/* style.css -- merged from per-tier scene CSS by wizard2.stages.build_deploy */
/* Scene root must fill its positioning container. */
.scn { position: absolute; inset: 0; }

/* ============ tier U ============ */
/* per-scene blocks (EXP step_scenes) */
.scn-conversion-experience {
  background: linear-gradient(180deg, #2c1a0c 0%, #4a2c1a 30%, #1a0e06 100%),
              radial-gradient(ellipse at 50% 50%, #ff8c42 0%, transparent 60%);
}
.scn-conversion-experience .bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #1a0e06 0%, #2c1a0c 40%, #0d0804 100%);
  animation: ce-bg 15s ease-in-out infinite alternate;
}
.scn-conversion-experience .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #5c3a1a 0%, #3e2310 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.7);
}
.scn-conversion-experience .desk {
  position: absolute; bottom: 30%; left: 50%; width: 140px; height: 25px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #8b5a2b 0%, #5a3617 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
}
.scn-conversion-experience .lamp {
  position: absolute; bottom: 55%; left: 40%; width: 12px; height: 40px;
  background: linear-gradient(180deg, #b8860b 0%, #8b6508 100%);
  border-radius: 20% 20% 40% 40%;
}
.scn-conversion-experience .light-cone {
  position: absolute; bottom: 35%; left: 38%; width: 80px; height: 120px;
  background: radial-gradient(ellipse at 50% 0%, #ffd700 0%, transparent 100%);
  opacity: 0.3;
  animation: ce-light 4s ease-in-out infinite alternate;
}
.scn-conversion-experience .figure-kneel {
  position: absolute; bottom: 28%; left: 48%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e06 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ce-kneel 5s ease-in-out infinite;
}
.scn-conversion-experience .figure-stand {
  position: absolute; bottom: 28%; left: 58%; width: 20px; height: 60px;
  background: linear-gradient(180deg, #2a1a0c 0%, #0d0804 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ce-stand 6s ease-in-out infinite;
}
.scn-conversion-experience .book {
  position: absolute; bottom: 31%; left: 46%; width: 30px; height: 20px;
  background: #8b6508;
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation: ce-book 3s ease-in-out infinite alternate;
}
.scn-conversion-experience .window {
  position: absolute; top: 8%; left: 20%; width: 60px; height: 80px;
  background: radial-gradient(circle at 50% 50%, #ffe4b5 0%, #1a0e06 100%);
  border-radius: 10%;
  box-shadow: inset 0 0 30px rgba(255, 228, 181, 0.5);
  animation: ce-window 10s ease-in-out infinite alternate;
}
@keyframes ce-bg {
  0% { opacity: 0.7; }
  50% { opacity: 0.85; }
  100% { opacity: 0.75; }
}
@keyframes ce-light {
  0% { transform: scaleY(0.8); opacity: 0.25; }
  50% { transform: scaleY(1.1); opacity: 0.35; }
  100% { transform: scaleY(0.9); opacity: 0.3; }
}
@keyframes ce-kneel {
  0% { transform: translateY(0) rotate(-2deg); }
  25% { transform: translateY(-2px) rotate(1deg); }
  50% { transform: translateY(0) rotate(-1deg); }
  75% { transform: translateY(-1px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes ce-stand {
  0% { transform: translateY(0) rotate(1deg); }
  50% { transform: translateY(-1px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes ce-book {
  0% { transform: translateY(0) rotate(0deg); }
  100% { transform: translateY(-3px) rotate(2deg); }
}
@keyframes ce-window {
  0% { opacity: 0.5; }
  50% { opacity: 0.8; }
  100% { opacity: 0.6; }
}

/* Scene: psalm-107-rescue (warm, overcast) */

.scn-memorial-prayer {
  background: linear-gradient(180deg, #1e1a2e 0%, #2a223a 40%, #1e1a2e 100%),
              radial-gradient(ellipse at 50% 20%, #3a2e4e 0%, transparent 60%);
}
.scn-memorial-prayer .bg-wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #2a2240 0%, #1e1a2e 100%); }
.scn-memorial-prayer .window-sash { position:absolute; top:10%; left:50%; width:120px; height:180px; transform:translateX(-50%); border:8px solid #2e2636; border-radius:4px; background: linear-gradient(180deg, #4a4a6a 0%, #2a2a4a 100%); box-shadow: inset 0 0 30px rgba(0,0,0,.3); }
.scn-memorial-prayer .moonlight { position:absolute; top:10%; left:50%; width:100px; height:160px; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 30%, rgba(180,180,220,.3) 0%, transparent 70%); animation: mp-moon 12s ease-in-out infinite alternate; }
.scn-memorial-prayer .figure-kneel { position:absolute; bottom:22%; left:50%; width:40px; height:70px; transform:translateX(-50%); background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; animation: mp-kneel 8s ease-in-out infinite; }
.scn-memorial-prayer .candle { position:absolute; bottom:30%; left:40%; width:10px; height:30px; background: linear-gradient(180deg, #d4c0a0 0%, #a08860 100%); border-radius: 4px; }
.scn-memorial-prayer .flame { position:absolute; bottom:60%; left:40%; width:6px; height:12px; margin-left:2px; background: radial-gradient(circle, #ffd080 0%, #e89050 60%, transparent 100%); border-radius: 50%; box-shadow: 0 0 20px 6px #e89050, 0 0 40px 12px rgba(232,144,80,.3); animation: mp-flame 2s ease-in-out infinite alternate; }
.scn-memorial-prayer .rosary { position:absolute; bottom:18%; left:45%; width:50px; height:40px; background: radial-gradient(circle at 50% 50%, #504030 0%, transparent 100%); border-radius: 50%; filter: blur(2px); animation: mp-rosary 9s ease-in-out infinite; }
@keyframes mp-moon { 0% { opacity:.3 } 50% { opacity:.6 } 100% { opacity:.4 } }
@keyframes mp-kneel { 0% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-48%) translateY(-2px) } 100% { transform: translateX(-50%) translateY(0) } }
@keyframes mp-flame { 0% { transform: scaleY(1) translateY(0) } 100% { transform: scaleY(1.2) translateY(-3px) } }
@keyframes mp-rosary { 0% { transform: rotate(-5deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(-3deg) } }

.scn-memorial-summary {
  background: linear-gradient(180deg, #1e1e2e 0%, #26263a 50%, #1a1a2a 100%),
              radial-gradient(ellipse at 50% 70%, #2e2e44 0%, transparent 60%);
}
.scn-memorial-summary .bg-desk { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #2e2640 0%, #1e1e32 100%); }
.scn-memorial-summary .desk-top { position:absolute; bottom:30%; left:20%; right:20%; height:20%; background: linear-gradient(180deg, #4a3a2a 0%, #2e2218 100%); border-radius: 10% 10% 0 0 / 40% 40% 0 0; box-shadow: 0 8px 20px rgba(0,0,0,.4); }
.scn-memorial-summary .paper { position:absolute; bottom:42%; left:40%; width:80px; height:60px; background: linear-gradient(180deg, #e8dcc8 0%, #d0c4b0 100%); border-radius: 2px; transform: rotate(-3deg); box-shadow: 0 2px 8px rgba(0,0,0,.3); }
.scn-memorial-summary .quill { position:absolute; bottom:50%; left:35%; width:30px; height:50px; background: linear-gradient(180deg, #a08870 0%, #705840 100%); border-radius: 0 0 60% 60% / 0 0 80% 80%; transform: rotate(15deg); animation: ms-quill 4s ease-in-out infinite; }
.scn-memorial-summary .hand-write { position:absolute; bottom:35%; left:38%; width:24px; height:30px; background: linear-gradient(180deg, #c8b098 0%, #a08068 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom; animation: ms-hand 4s ease-in-out infinite; }
.scn-memorial-summary .inkwell { position:absolute; bottom:40%; right:40%; width:16px; height:20px; background: radial-gradient(circle, #1a1a2a 0%, #0e0e1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 2px 6px rgba(0,0,0,.5); }
.scn-memorial-summary .candle-sm { position:absolute; bottom:42%; left:30%; width:8px; height:24px; background: linear-gradient(180deg, #d4c0a0 0%, #a08860 100%); border-radius: 3px; }
@keyframes ms-quill { 0% { transform: rotate(15deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(15deg) } }
@keyframes ms-hand { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }

.scn-treasury-response {
  background: linear-gradient(180deg, #1a1a2e 0%, #22223a 50%, #1a1a2e 100%),
              radial-gradient(ellipse at 50% 80%, #2e2e4a 0%, transparent 60%);
}
.scn-treasury-response .bg-vault { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #2a2642 0%, #1e1e36 100%); }
.scn-treasury-response .table-heavy { position:absolute; bottom:20%; left:15%; right:15%; height:15%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 30% 30% 0 0 / 50% 50% 0 0; box-shadow: 0 10px 30px rgba(0,0,0,.5); }
.scn-treasury-response .coin { position:absolute; bottom:35%; left:50%; width:20px; height:20px; transform:translateX(-50%); background: radial-gradient(circle at 30% 30%, #d4b080 0%, #a08050 100%); border-radius: 50%; box-shadow: 0 6px 12px rgba(0,0,0,.4); animation: tr-coin 10s ease-in-out infinite alternate; }
.scn-treasury-response .hand-coin { position:absolute; bottom:38%; left:48%; width:28px; height:30px; background: linear-gradient(180deg, #c8b098 0%, #9e7e68 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom; animation: tr-hand 8s ease-in-out infinite; }
.scn-treasury-response .document-scroll { position:absolute; bottom:42%; right:30%; width:60px; height:30px; background: linear-gradient(180deg, #e8dcc8 0%, #d0c4b0 100%); border-radius: 0 20% 20% 0 / 0 40% 40% 0; transform: rotate(5deg); box-shadow: 2px 4px 8px rgba(0,0,0,.2); }
.scn-treasury-response .seal-wax { position:absolute; bottom:45%; right:30%; width:12px; height:12px; background: radial-gradient(circle at 40% 40%, #a0461a 0%, #5e1a1d 100%); border-radius: 50%; box-shadow: 0 2px 6px rgba(0,0,0,.4); }
.scn-treasury-response .shadow-stripe { position:absolute; inset:0; background: linear-gradient(90deg, transparent 40%, rgba(0,0,0,.15) 50%, transparent 60%); animation: tr-stripe 20s ease-in-out infinite alternate; }
@keyframes tr-coin { 0% { transform: translateX(-50%) rotate(0deg) } 50% { transform: translateX(-48%) rotate(15deg) } 100% { transform: translateX(-50%) rotate(0deg) } }
@keyframes tr-hand { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes tr-stripe { 0% { opacity:0 } 50% { opacity:.5 } 100% { opacity:0 } }

.scn-queen-petition {
  background: linear-gradient(180deg, #2e2018 0%, #4a3028 40%, #2e2018 100%),
              radial-gradient(ellipse at 50% 30%, #5a3a2e 0%, transparent 60%);
}
.scn-queen-petition .bg-throne { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #3a2820 0%, #2e1e18 100%); }
.scn-queen-petition .throne-back { position:absolute; bottom:30%; left:50%; width:100px; height:120px; transform:translateX(-50%); background: linear-gradient(180deg, #5a3a2a 0%, #3a2218 100%); border-radius: 20% 20% 10% 10% / 30% 30% 15% 15%; box-shadow: 0 8px 20px rgba(0,0,0,.5); }
.scn-queen-petition .figure-kneel-warm { position:absolute; bottom:20%; left:40%; width:35px; height:60px; background: linear-gradient(180deg, #2e1e18 0%, #1a0e0a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom; animation: qp-kneel 10s ease-in-out infinite; }
.scn-queen-petition .petition-scroll { position:absolute; bottom:25%; left:45%; width:50px; height:20px; background: linear-gradient(180deg, #e8dcc8 0%, #d0c4b0 100%); border-radius: 2px; transform: rotate(-5deg); }
.scn-queen-petition .fire-hearth { position:absolute; bottom:10%; left:20%; right:20%; height:30%; background: radial-gradient(ellipse at 50% 80%, #4a2a1a 0%, #1e0e0a 100%); border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%; }
.scn-queen-petition .fire-glow { position:absolute; bottom:10%; left:30%; right:30%; height:40%; background: radial-gradient(ellipse at 50% 60%, rgba(200,100,40,.4) 0%, transparent 60%); animation: qp-glow 3s ease-in-out infinite alternate; }
.scn-queen-petition .candle-queen { position:absolute; bottom:40%; right:30%; width:8px; height:28px; background: linear-gradient(180deg, #e0c090 0%, #a08050 100%); border-radius: 3px; }
@keyframes qp-kneel { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(-2deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes qp-glow { 0% { opacity:.4; transform: scale(1) } 50% { opacity:.7; transform: scale(1.1) } 100% { opacity:.5; transform: scale(1) } }

.scn-continued-hardships { background: linear-gradient(180deg, #0a0a14 0%, #1a1422 40%, #2a1a28 70%, #0a0a10 100%), radial-gradient(ellipse at 50% 40%, #3a2a34 0%, transparent 70%); }
.scn-continued-hardships .hold-wall { position:absolute; inset:0; background: linear-gradient(90deg, #1a1422 0%, #0a0a14 15%, #0a0a14 85%, #1a1422 100%); }
.scn-continued-hardships .hold-floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #2a1a28 0%, #0a0a14 100%); border-radius: 30% 70% 0 0; box-shadow: inset 0 8px 16px rgba(0,0,0,.6); }
.scn-continued-hardships .figure-shape { position:absolute; bottom:20%; left:30%; width:30px; height:50px; background: linear-gradient(180deg, #4a3a42 0%, #2a1a22 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: ch-sway 6s ease-in-out infinite; }
.scn-continued-hardships .figure-shape.second { left:55%; width:28px; height:48px; animation-delay: -3s; }
.scn-continued-hardships .glimmer { position:absolute; bottom:30%; left:45%; width:4px; height:4px; background: #6a4a3a; border-radius:50%; box-shadow: 0 0 12px 3px #6a4a3a, 0 0 24px 6px rgba(106,74,58,.4); animation: ch-glow 4s ease-in-out infinite alternate; }
.scn-continued-hardships .haze { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 60%, rgba(20,15,25,.8) 0%, transparent 70%); animation: ch-haze 12s ease-in-out infinite alternate; }
@keyframes ch-sway { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(4px) rotate(2deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes ch-glow { 0% { opacity:.3; transform: scale(.8); } 50% { opacity:.8; transform: scale(1.2); } 100% { opacity:.4; transform: scale(.9); } }
@keyframes ch-haze { 0% { opacity:.4; } 50% { opacity:.7; } 100% { opacity:.3; } }

.scn-quadrant-wonder { background: linear-gradient(180deg, #4a6a8a 0%, #7a9aba 40%, #c0d8e8 70%, #e0f0f0 100%), radial-gradient(ellipse at 50% 0%, #e0f0f0 0%, transparent 50%); }
.scn-quadrant-wonder .deck { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #8a7a5a 0%, #5a4a3a 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.5); }
.scn-quadrant-wonder .sea { position:absolute; bottom:30%; left:0; right:0; height:8%; background: linear-gradient(180deg, #2a5a7a 0%, #1a3a5a 100%); border-radius: 0 0 50% 50%; animation: qw-wave 10s ease-in-out infinite alternate; }
.scn-quadrant-wonder .sky { position:absolute; top:0; left:0; right:0; bottom:38%; background: linear-gradient(180deg, #8ab0d0 0%, #c0d8e8 100%); }
.scn-quadrant-wonder .sun { position:absolute; top:15%; right:20%; width:60px; height:60px; background: radial-gradient(circle, #ffe080 0%, #ffc040 40%, transparent 70%); border-radius:50%; box-shadow: 0 0 80px 30px #ffc040; animation: qw-sun 8s ease-in-out infinite alternate; }
.scn-quadrant-wonder .sailor-torso { position:absolute; bottom:30%; left:45%; width:40px; height:60px; background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; transform-origin: bottom center; animation: qw-torso 4s ease-in-out infinite; }
.scn-quadrant-wonder .sailor-arm { position:absolute; bottom:40%; left:52%; width:8px; height:40px; background: linear-gradient(180deg, #7a6a5a 0%, #4a3a2a 100%); border-radius: 40% 40% 20% 20%; transform-origin: top center; animation: qw-arm 4s ease-in-out infinite; }
.scn-quadrant-wonder .quadrant { position:absolute; bottom:42%; left:58%; width:20px; height:6px; background: #3a3a5a; border-radius: 10%; transform: rotate(30deg); box-shadow: 0 0 4px #a0a0c0; animation: qw-quad 4s ease-in-out infinite; }
@keyframes qw-wave { 0% { transform: translateX(0); } 50% { transform: translateX(10px); } 100% { transform: translateX(-10px); } }
@keyframes qw-sun { 0% { transform: scale(.95); opacity:.9; } 50% { transform: scale(1.05); opacity:1; } 100% { transform: scale(.95); opacity:.9; } }
@keyframes qw-torso { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(-5px) rotate(3deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes qw-arm { 0% { transform: rotate(0); } 50% { transform: rotate(20deg); } 100% { transform: rotate(0); } }
@keyframes qw-quad { 0% { transform: rotate(30deg) scale(1); } 50% { transform: rotate(40deg) scale(1.05); } 100% { transform: rotate(30deg) scale(1); } }

.scn-sight-of-barbadoes { background: linear-gradient(180deg, #4a7a9a 0%, #80aac0 40%, #c0d8e0 70%, #e0f0f0 100%), radial-gradient(ellipse at 50% 0%, #f0f8ff 0%, transparent 50%); }
.scn-sight-of-barbadoes .sea-bg { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #2a6a8a 0%, #1a3a5a 100%); border-radius: 40% 60% 0 0; animation: sb-sea 20s ease-in-out infinite alternate; }
.scn-sight-of-barbadoes .sky-bg { position:absolute; top:0; left:0; right:0; bottom:40%; background: linear-gradient(180deg, #9ac0d8 0%, #c8dce8 100%); }
.scn-sight-of-barbadoes .ship-hull { position:absolute; bottom:40%; left:20%; width:80px; height:40px; background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%); border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%; transform-origin: bottom center; animation: sb-ship 6s ease-in-out infinite; }
.scn-sight-of-barbadoes .ship-sail { position:absolute; bottom:55%; left:30%; width:10px; height:50px; background: linear-gradient(180deg, #f0e0c0 0%, #c0a880 100%); border-radius: 20% 20% 10% 10%; transform: skewX(-10deg); animation: sb-sail 6s ease-in-out infinite; }
.scn-sight-of-barbadoes .island { position:absolute; bottom:40%; right:15%; width:70px; height:50px; background: linear-gradient(180deg, #6a8a4a 0%, #3a5a2a 100%); border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%; box-shadow: inset 0 -10px 20px rgba(0,0,0,.3); animation: sb-island 15s ease-in-out infinite alternate; }
.scn-sight-of-barbadoes .small-ship { position:absolute; bottom:38%; left:5%; width:25px; height:15px; background: #4a3a2a; border-radius: 20%; transform-origin: bottom center; animation: sb-small 12s ease-in-out infinite; }
.scn-sight-of-barbadoes .small-ship.b { left:10%; bottom:36%; width:20px; height:12px; animation-delay: -5s; background: #3a2a1a; }
@keyframes sb-sea { 0% { transform: translateY(0); } 50% { transform: translateY(-5px); } 100% { transform: translateY(0); } }
@keyframes sb-ship { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(8px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes sb-sail { 0% { transform: skewX(-10deg) rotate(0); } 50% { transform: skewX(-5deg) rotate(-5deg); } 100% { transform: skewX(-10deg) rotate(0); } }
@keyframes sb-island { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes sb-small { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(10px) rotate(3deg); } 100% { transform: translateX(0) rotate(0); } }

.scn-examined-and-feared { background: linear-gradient(180deg, #1a1a2a 0%, #3a2a3a 30%, #5a4a4a 60%, #7a6a5a 100%), radial-gradient(ellipse at 50% 100%, #5a4a4a 0%, transparent 70%); }
.scn-examined-and-feared .dusk-sky { position:absolute; top:0; left:0; right:0; bottom:40%; background: linear-gradient(180deg, #4a3a4a 0%, #8a6a5a 80%); animation: ef-dusk 10s ease-in-out infinite alternate; }
.scn-examined-and-feared .land { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%); border-radius: 30% 70% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.6); }
.scn-examined-and-feared .examiner { position:absolute; bottom:40%; left:40%; width:30px; height:70px; background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: ef-examine 4s ease-in-out infinite; }
.scn-examined-and-feared .captive { position:absolute; bottom:40%; left:55%; width:28px; height:60px; background: linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: ef-jump 6s ease-in-out infinite; }
.scn-examined-and-feared .shadow-strip { position:absolute; bottom:40%; left:20%; right:20%; height:2px; background: #1a1a0a; filter: blur(2px); animation: ef-shadow 6s ease-in-out infinite; }
.scn-examined-and-feared .dust { position:absolute; top:30%; left:10%; width:4px; height:4px; background: rgba(200,180,160,.3); border-radius:50%; box-shadow: 0 0 6px 2px rgba(200,180,160,.2); animation: ef-dust 8s linear infinite; }
@keyframes ef-dusk { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.7; } }
@keyframes ef-examine { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(5px) rotate(3deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes ef-jump { 0% { transform: translateY(0) rotate(-2deg); } 25% { transform: translateY(-10px) rotate(0); } 50% { transform: translateY(0) rotate(2deg); } 75% { transform: translateY(-5px) rotate(0); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes ef-shadow { 0% { opacity:.5; } 50% { opacity:.8; } 100% { opacity:.5; } }
@keyframes ef-dust { 0% { transform: translate(0,0) scale(1); opacity:.3; } 50% { transform: translate(20px,-10px) scale(1.5); opacity:.6; } 100% { transform: translate(40px,-20px) scale(0); opacity:0; } }

/* ===== memorial-motive ===== */
.scn-memorial-motive {
  background: 
    linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 60%, #1a0a00 100%),
    radial-gradient(ellipse at 50% 30%, #4a3a2a 0%, transparent 80%);
}
.scn-memorial-motive .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); }
.scn-memorial-motive .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); }
.scn-memorial-motive .desk { position:absolute; bottom:20%; left:30%; width:40%; height:18%; background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%); border-radius: 4% 4% 0 0; box-shadow: 0 -4px 8px rgba(0,0,0,.6); }
.scn-memorial-motive .candle { position:absolute; bottom:36%; left:48%; width:2%; height:12%; background: linear-gradient(180deg, #f0d0a0 0%, #c0a080 50%, #806040 100%); border-radius: 20% 20% 10% 10%; animation: mm-candle 4s ease-in-out infinite alternate; }
.scn-memorial-motive .candle-glow { position:absolute; bottom:36%; left:48%; width:10%; height:15%; transform:translate(-50%,0); background: radial-gradient(circle, rgba(255,200,100,.8) 0%, rgba(255,200,100,0) 100%); animation: mm-glow 3s ease-in-out infinite alternate; }
.scn-memorial-motive .figure { position:absolute; bottom:22%; left:38%; width:12%; height:40%; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mm-figure 6s ease-in-out infinite; }
.scn-memorial-motive .window { position:absolute; top:15%; left:20%; width:30%; height:40%; background: radial-gradient(ellipse at 50% 50%, #7a6a5a 0%, #4a3a2a 100%); border: 6px solid #5a4a3a; border-radius: 4%; opacity:.7; }
.scn-memorial-motive .curtain { position:absolute; top:15%; left:18%; width:16%; height:42%; background: linear-gradient(90deg, #5a4a3a 0%, #4a3a2a 50%, #5a4a3a 100%); border-radius: 8% 0 0 8%; animation: mm-curtain 10s ease-in-out infinite alternate; }
@keyframes mm-candle { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.05) scaleX(.95); } 100% { transform: scaleY(1); } }
@keyframes mm-glow { 0% { opacity:.7; transform:translate(-50%,0) scale(.9); } 50% { opacity:1; transform:translate(-50%,-2%) scale(1.1); } 100% { opacity:.8; transform:translate(-50%,0) scale(1); } }
@keyframes mm-figure { 0% { transform: translateX(0) rotate(0); } 30% { transform: translateX(2%) rotate(1deg); } 60% { transform: translateX(-1%) rotate(-1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes mm-curtain { 0% { transform: translateX(0); } 100% { transform: translateX(4%); } }

/* ===== grove-letter ===== */
.scn-grove-letter {
  background: 
    linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 60%, #1a0a00 100%),
    radial-gradient(ellipse at 60% 40%, #4a3a2a 0%, transparent 70%);
}
.scn-grove-letter .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); }
.scn-grove-letter .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); }
.scn-grove-letter .desk { position:absolute; bottom:20%; left:25%; width:50%; height:16%; background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%); border-radius: 4% 4% 0 0; box-shadow: 0 -4px 8px rgba(0,0,0,.6); }
.scn-grove-letter .inkwell { position:absolute; bottom:34%; left:40%; width:4%; height:8%; background: linear-gradient(180deg, #3a3a3a 0%, #1a1a1a 100%); border-radius: 50% 50% 20% 20%; }
.scn-grove-letter .candle { position:absolute; bottom:36%; left:55%; width:2%; height:14%; background: linear-gradient(180deg, #f0d0a0 0%, #c0a080 50%, #806040 100%); border-radius: 20% 20% 10% 10%; animation: gl-candle 4s ease-in-out infinite alternate; }
.scn-grove-letter .candle-glow { position:absolute; bottom:36%; left:55%; width:12%; height:18%; transform:translate(-50%,0); background: radial-gradient(circle, rgba(255,200,100,.7) 0%, rgba(255,200,100,0) 100%); animation: gl-glow 3s ease-in-out infinite alternate; }
.scn-grove-letter .figure { position:absolute; bottom:22%; left:48%; width:14%; height:42%; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: gl-figure 7s ease-in-out infinite; }
.scn-grove-letter .letter-pile { position:absolute; bottom:26%; left:32%; width:12%; height:4%; background: linear-gradient(180deg, #c0b090 0%, #a09080 100%); border-radius: 8%; transform: rotate(-3deg); box-shadow: 0 2px 4px rgba(0,0,0,.5); }
@keyframes gl-candle { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.05) scaleX(.95); } 100% { transform: scaleY(1); } }
@keyframes gl-glow { 0% { opacity:.7; transform:translate(-50%,0) scale(.9); } 50% { opacity:1; transform:translate(-50%,-2%) scale(1.1); } 100% { opacity:.8; transform:translate(-50%,0) scale(1); } }
@keyframes gl-figure { 0% { transform: translateX(0) rotate(0); } 30% { transform: translateX(1%) rotate(.5deg); } 60% { transform: translateX(-1%) rotate(-.5deg); } 100% { transform: translateX(0) rotate(0); } }

/* ===== wallace-letter ===== */
.scn-wallace-letter {
  background: 
    linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 60%, #1a0a00 100%),
    radial-gradient(ellipse at 40% 50%, #4a3a2a 0%, transparent 75%);
}
.scn-wallace-letter .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); }
.scn-wallace-letter .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); }
.scn-wallace-letter .armchair { position:absolute; bottom:20%; left:20%; width:30%; height:35%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 20% 20% 10% 10%; box-shadow: -4px 0 8px rgba(0,0,0,.5); }
.scn-wallace-letter .candle { position:absolute; bottom:38%; left:60%; width:2%; height:14%; background: linear-gradient(180deg, #f0d0a0 0%, #c0a080 50%, #806040 100%); border-radius: 20% 20% 10% 10%; animation: wl-candle 4s ease-in-out infinite alternate; }
.scn-wallace-letter .candle-glow { position:absolute; bottom:38%; left:60%; width:14%; height:20%; transform:translate(-50%,0); background: radial-gradient(circle, rgba(255,200,100,.6) 0%, rgba(255,200,100,0) 100%); animation: wl-glow 3s ease-in-out infinite alternate; }
.scn-wallace-letter .figure { position:absolute; bottom:22%; left:38%; width:14%; height:40%; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: wl-figure 8s ease-in-out infinite; }
.scn-wallace-letter .bookshelf { position:absolute; top:10%; right:10%; width:20%; height:60%; background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); border-radius: 4% 4% 0 0; box-shadow: 2px 2px 8px rgba(0,0,0,.5); }
.scn-wallace-letter .book { position:absolute; top:18%; right:14%; width:6%; height:10%; background: #8a7a6a; border-radius: 4px; transform: rotate(5deg); box-shadow: 1px 1px 3px rgba(0,0,0,.4); animation: wl-book 12s ease-in-out infinite alternate; }
@keyframes wl-candle { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.05) scaleX(.95); } 100% { transform: scaleY(1); } }
@keyframes wl-glow { 0% { opacity:.7; transform:translate(-50%,0) scale(.9); } 50% { opacity:1; transform:translate(-50%,-2%) scale(1.1); } 100% { opacity:.8; transform:translate(-50%,0) scale(1); } }
@keyframes wl-figure { 0% { transform: translateX(0) rotate(0); } 30% { transform: translateX(1%) rotate(1deg); } 60% { transform: translateX(-1%) rotate(-1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes wl-book { 0% { transform: rotate(5deg) translateY(0); } 100% { transform: rotate(5deg) translateY(-2px); } }

/* ===== bishop-declines ===== */
.scn-bishop-declines {
  background: 
    linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 60%, #1a0a00 100%),
    radial-gradient(ellipse at 50% 35%, #4a3a2a 0%, transparent 80%);
}
.scn-bishop-declines .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); }
.scn-bishop-declines .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); }
.scn-bishop-declines .desk { position:absolute; bottom:20%; left:25%; width:50%; height:16%; background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%); border-radius: 4% 4% 0 0; box-shadow: 0 -4px 8px rgba(0,0,0,.6); }
.scn-bishop-declines .candle { position:absolute; bottom:36%; left:50%; width:2%; height:14%; background: linear-gradient(180deg, #f0d0a0 0%, #c0a080 50%, #806040 100%); border-radius: 20% 20% 10% 10%; animation: bd-candle 4s ease-in-out infinite alternate; }
.scn-bishop-declines .candle-glow { position:absolute; bottom:36%; left:50%; width:14%; height:20%; transform:translate(-50%,0); background: radial-gradient(circle, rgba(255,200,100,.6) 0%, rgba(255,200,100,0) 100%); animation: bd-glow 3s ease-in-out infinite alternate; }
.scn-bishop-declines .bishop-figure { position:absolute; bottom:22%; left:42%; width:16%; height:44%; background: linear-gradient(180deg, #2a2a2a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bd-bishop 5s ease-in-out infinite; }
.scn-bishop-declines .letter { position:absolute; bottom:28%; left:46%; width:10%; height:6%; background: linear-gradient(180deg, #c0b090 0%, #a09080 100%); border-radius: 4%; transform: rotate(-2deg); box-shadow: 1px 1px 3px rgba(0,0,0,.5); animation: bd-letter 6s ease-in-out infinite alternate; }
.scn-bishop-declines .cross { position:absolute; top:8%; left:50%; width:8%; height:20%; transform:translateX(-50%); background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%); border-radius: 10% 10% 0 0; box-shadow: 0 4px 8px rgba(0,0,0,.5); }
@keyframes bd-candle { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.05) scaleX(.95); } 100% { transform: scaleY(1); } }
@keyframes bd-glow { 0% { opacity:.7; transform:translate(-50%,0) scale(.9); } 50% { opacity:1; transform:translate(-50%,-2%) scale(1.1); } 100% { opacity:.8; transform:translate(-50%,0) scale(1); } }
@keyframes bd-bishop { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(1%) rotate(1deg); } 50% { transform: translateX(-1%) rotate(-1deg); } 75% { transform: translateX(1%) rotate(0); } 100% { transform: translateX(0) rotate(0); } }
@keyframes bd-letter { 0% { transform: rotate(-2deg) translateY(0); opacity:.9; } 100% { transform: rotate(-2deg) translateY(-2px); opacity:1; } }

.scn-gale-and-mast-cut {
  background: linear-gradient(180deg, #0b0e1a 0%, #1a2436 40%, #1f3442 100%), radial-gradient(ellipse at 50% 60%, #1f3442 0%, transparent 70%);
}
.scn-gale-and-mast-cut .sea { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #0f1a24 0%, #060a10 100%); animation: gmc-sea 8s ease-in-out infinite alternate; }
.scn-gale-and-mast-cut .sky { position:absolute; top:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #0b0e1a 0%, #1a2a3a 100%); }
.scn-gale-and-mast-cut .ship { position:absolute; bottom:38%; left:35%; width:120px; height:50px; background: linear-gradient(90deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 0 0 40% 40% / 0 0 60% 60%; transform-origin: center bottom; animation: gmc-ship 4s ease-in-out infinite; }
.scn-gale-and-mast-cut .mast-broken { position:absolute; bottom:55%; left:43%; width:8px; height:80px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 2px; transform-origin: bottom center; animation: gmc-mast 3s ease-in-out infinite; }
.scn-gale-and-mast-cut .wave-front { position:absolute; bottom:30%; left:-10%; width:120%; height:20%; background: linear-gradient(180deg, #1a303a 0%, #0a1018 100%); border-radius: 50% 50% 0 0; filter: blur(4px); animation: gmc-wave-f 6s ease-in-out infinite; }
.scn-gale-and-mast-cut .wave-back { position:absolute; bottom:40%; left:-5%; width:110%; height:15%; background: linear-gradient(180deg, #0f1a24 0%, #050a0e 100%); border-radius: 50% 50% 0 0; filter: blur(6px); animation: gmc-wave-b 8s ease-in-out infinite reverse; }
.scn-gale-and-mast-cut .lightning { position:absolute; top:10%; left:70%; width:4px; height:60px; background: #fff; filter: blur(1px); box-shadow: 0 0 30px 15px rgba(255,255,255,.3); opacity:0; animation: gmc-lightning 12s ease-in-out infinite; }
@keyframes gmc-sea { 0% { transform: translateY(0) } 50% { transform: translateY(8px) } 100% { transform: translateY(-4px) } }
@keyframes gmc-ship { 0% { transform: rotate(-2deg) translateY(0) } 50% { transform: rotate(2deg) translateY(-3px) } 100% { transform: rotate(-1deg) translateY(0) } }
@keyframes gmc-mast { 0% { transform: rotate(-5deg) translateX(0) } 50% { transform: rotate(7deg) translateX(2px) } 100% { transform: rotate(-3deg) translateX(0) } }
@keyframes gmc-wave-f { 0% { transform: translateX(0) scaleY(1) } 50% { transform: translateX(-20px) scaleY(1.1) } 100% { transform: translateX(0) scaleY(1) } }
@keyframes gmc-wave-b { 0% { transform: translateX(0) scaleY(1) } 50% { transform: translateX(15px) scaleY(0.9) } 100% { transform: translateX(0) scaleY(1) } }
@keyframes gmc-lightning { 0%,90%,100% { opacity:0 } 5% { opacity:1 } 10% { opacity:0.3 } 15% { opacity:0.1 } }

.scn-buoy-rescue {
  background: linear-gradient(180deg, #0e121a 0%, #1a2530 50%, #2a3a4a 100%), radial-gradient(ellipse at 50% 80%, #2a3a4a 0%, transparent 60%);
}
.scn-buoy-rescue .water { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #0a1520 0%, #04080e 100%); animation: brs-water 7s ease-in-out infinite alternate; }
.scn-buoy-rescue .sky { position:absolute; top:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #0e121a 0%, #1a2530 100%); }
.scn-buoy-rescue .rescue-boat { position:absolute; bottom:40%; left:20%; width:80px; height:30px; background: linear-gradient(90deg, #2a1a0a 0%, #3a2a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: center bottom; animation: brs-boat 5s ease-in-out infinite; }
.scn-buoy-rescue .buoy { position:absolute; bottom:45%; right:25%; width:20px; height:20px; background: radial-gradient(circle, #cc5533 0%, #882211 70%); border-radius: 50%; box-shadow: 0 0 8px 2px rgba(200,80,40,.4); animation: brs-buoy 6s ease-in-out infinite; }
.scn-buoy-rescue .figure.kneeling { position:absolute; bottom:35%; left:30%; width:16px; height:30px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a12 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: brs-figure1 4s ease-in-out infinite; }
.scn-buoy-rescue .figure.standing { position:absolute; bottom:40%; left:45%; width:14px; height:36px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a12 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: brs-figure2 4.5s ease-in-out infinite; }
.scn-buoy-rescue .rope { position:absolute; bottom:42%; left:22%; width:50px; height:3px; background: linear-gradient(90deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 2px; transform-origin: left center; animation: brs-rope 3s ease-in-out infinite; }
@keyframes brs-water { 0% { transform: translateY(0) } 50% { transform: translateY(6px) } 100% { transform: translateY(-3px) } }
@keyframes brs-boat { 0% { transform: rotate(-3deg) translateY(0) } 50% { transform: rotate(3deg) translateY(-2px) } 100% { transform: rotate(-2deg) translateY(0) } }
@keyframes brs-buoy { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-4px) rotate(20deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes brs-figure1 { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(2px) rotate(0) } 50% { transform: translateX(4px) rotate(2deg) } 75% { transform: translateX(2px) rotate(0) } 100% { transform: translateX(0) rotate(-2deg) } }
@keyframes brs-figure2 { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(-3px) rotate(3deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes brs-rope { 0% { transform: scaleX(1) translateY(0) } 50% { transform: scaleX(1.2) translateY(2px) } 100% { transform: scaleX(1) translateY(0) } }

.scn-arrival-new-providence {
  background: linear-gradient(180deg, #8fc0e0 0%, #b0d8f0 40%, #f0d8a0 100%), radial-gradient(ellipse at 80% 30%, #ffe080 0%, transparent 60%);
}
.scn-arrival-new-providence .sky-warm { position:absolute; top:0; left:0; right:0; height:60%; background: linear-gradient(180deg, #70a0c0 0%, #b0d0e8 100%); animation: anp-sky 12s ease-in-out infinite alternate; }
.scn-arrival-new-providence .sea { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #2a6a8a 0%, #1a4a6a 100%); animation: anp-sea 8s ease-in-out infinite alternate; }
.scn-arrival-new-providence .land { position:absolute; bottom:30%; right:15%; width:40%; height:35%; background: linear-gradient(180deg, #6a9a5a 0%, #4a7a3a 100%); border-radius: 60% 40% 0 0 / 80% 60% 0 0; box-shadow: inset 0 8px 20px rgba(0,40,0,.3); }
.scn-arrival-new-providence .ship { position:absolute; bottom:35%; left:20%; width:100px; height:40px; background: linear-gradient(90deg, #5a3a2a 0%, #3a2a1a 100%); border-radius: 0 0 30% 30% / 0 0 50% 50%; transform-origin: center bottom; animation: anp-ship 10s ease-in-out infinite; }
.scn-arrival-new-providence .dock { position:absolute; bottom:28%; left:50%; width:60px; height:10px; background: linear-gradient(90deg, #6a4a3a 0%, #4a3a2a 100%); border-radius: 2px; }
.scn-arrival-new-providence .sun { position:absolute; top:15%; right:20%; width:40px; height:40px; background: radial-gradient(circle, #ffe080 0%, #ffcc55 60%, #ffa030 100%); border-radius: 50%; box-shadow: 0 0 60px 30px rgba(255,200,80,.5), 0 0 120px 60px rgba(255,200,80,.2); animation: anp-sun 6s ease-in-out infinite alternate; }
.scn-arrival-new-providence .figures { position:absolute; bottom:27%; left:45%; width:20px; height:25px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: anp-figures 4s ease-in-out infinite; }
@keyframes anp-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes anp-sea { 0% { transform: translateY(0) } 50% { transform: translateY(4px) } 100% { transform: translateY(-2px) } }
@keyframes anp-ship { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-3px) rotate(1deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes anp-sun { 0% { transform: scale(1) } 50% { transform: scale(1.05) } 100% { transform: scale(.98) } }
@keyframes anp-figures { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }

.scn-merchant-sloop-offer {
  background: linear-gradient(180deg, #c0dff0 0%, #e0f0ff 50%, #c8e8f8 100%), radial-gradient(ellipse at 60% 40%, #d0e8f0 0%, transparent 60%);
}
.scn-merchant-sloop-offer .calm-water { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #4a9ac0 0%, #2a7aa0 100%); animation: mso-water 12s ease-in-out infinite alternate; }
.scn-merchant-sloop-offer .calm-sky { position:absolute; top:0; left:0; right:0; height:60%; background: linear-gradient(180deg, #90c8e0 0%, #c0e0f0 100%); }
.scn-merchant-sloop-offer .sloop { position:absolute; bottom:35%; left:30%; width:110px; height:35px; background: linear-gradient(90deg, #6a4a3a 0%, #4a3a2a 100%); border-radius: 0 0 40% 40% / 0 0 50% 50%; transform-origin: center bottom; animation: mso-sloop 8s ease-in-out infinite; }
.scn-merchant-sloop-offer .sail-main { position:absolute; bottom:50%; left:38%; width:50px; height:60px; background: linear-gradient(180deg, #f0e8d0 0%, #d0c8b0 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: mso-sail 6s ease-in-out infinite; }
.scn-merchant-sloop-offer .merchant { position:absolute; bottom:30%; left:25%; width:16px; height:34px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mso-merchant 5s ease-in-out infinite; }
.scn-merchant-sloop-offer .dock { position:absolute; bottom:28%; right:20%; width:50px; height:8px; background: linear-gradient(90deg, #6a5a4a 0%, #5a4a3a 100%); border-radius: 2px; }
.scn-merchant-sloop-offer .cargo { position:absolute; bottom:26%; right:15%; width:24px; height:12px; background: linear-gradient(180deg, #8a7040 0%, #6a5030 100%); border-radius: 4px; box-shadow: 0 2px 4px rgba(0,0,0,.3); animation: mso-cargo 10s ease-in-out infinite; }
@keyframes mso-water { 0% { transform: translateY(0) } 50% { transform: translateY(3px) } 100% { transform: translateY(-1px) } }
@keyframes mso-sloop { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes mso-sail { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.08) } 100% { transform: scaleX(1) } }
@keyframes mso-merchant { 0% { transform: translateX(0) } 50% { transform: translateX(3px) } 100% { transform: translateX(0) } }
@keyframes mso-cargo { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-1px) scaleY(1.05) } 100% { transform: translateY(0) scaleY(1) } }

.scn-quakers-free-school {
  background:
    linear-gradient(180deg, #fce4b8 0%, #e8c88a 60%, #c8a070 100%),
    radial-gradient(ellipse at 20% 80%, #ffe8c0 0%, transparent 70%);
}
.scn-quakers-free-school .sky {
  position:absolute; inset:0 0 35% 0;
  background: linear-gradient(180deg, #b8d4f0 0%, #e8f4ff 70%, transparent 100%);
  animation: qfs-sky 15s ease-in-out infinite alternate;
}
.scn-quakers-free-school .window {
  position:absolute; top:10%; left:20%; width:30%; height:55%;
  background: linear-gradient(135deg, #f0e8d0 0%, #d0c8a0 100%);
  border: 8px solid #a08060; border-radius: 6px; box-shadow: inset 0 0 30px rgba(255,220,150,0.5);
  animation: qfs-window 8s ease-in-out infinite alternate;
}
.scn-quakers-free-school .sunbeam {
  position:absolute; top:10%; left:25%; width:20%; height:80%;
  background: linear-gradient(180deg, rgba(255,240,190,0.4) 0%, transparent 90%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  animation: qfs-beam 6s ease-in-out infinite alternate;
}
.scn-quakers-free-school .desk {
  position:absolute; bottom:20%; left:15%; right:15%; height:12%;
  background: linear-gradient(180deg, #b09070 0%, #8a6a4e 100%);
  border-radius: 4px 4px 0 0; box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: qfs-desk 12s ease-in-out infinite alternate;
}
.scn-quakers-free-school .book {
  position:absolute; bottom:28%; left:30%; width:10%; height:8%;
  background: linear-gradient(135deg, #d4b888 0%, #b09060 100%);
  border-radius: 1px; transform: rotate(-5deg);
  animation: qfs-book 20s ease-in-out infinite;
}
.scn-quakers-free-school .child {
  position:absolute; bottom:22%; left:40%; width:12%; height:20%;
  background: linear-gradient(180deg, #4a3a28 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: qfs-figure 5s ease-in-out infinite;
}
.scn-quakers-free-school .teacher {
  position:absolute; bottom:22%; left:55%; width:14%; height:28%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: qfs-teacher 4s ease-in-out infinite alternate;
}
@keyframes qfs-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes qfs-window { 0% { box-shadow: inset 0 0 30px rgba(255,220,150,0.5); } 50% { box-shadow: inset 0 0 60px rgba(255,230,170,0.8); } 100% { box-shadow: inset 0 0 40px rgba(255,220,150,0.6); } }
@keyframes qfs-beam { 0% { opacity: 0.3; transform: scaleX(1); } 50% { opacity: 0.7; transform: scaleX(1.05); } 100% { opacity: 0.4; transform: scaleX(0.95); } }
@keyframes qfs-desk { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes qfs-book { 0% { transform: rotate(-5deg); } 50% { transform: rotate(3deg); } 100% { transform: rotate(-5deg); } }
@keyframes qfs-figure { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(8px) rotate(2deg); } 75% { transform: translateX(-4px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes qfs-teacher { 0% { transform: translateY(0) rotate(1deg); } 50% { transform: translateY(-3px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0); } }

.scn-address-to-quakers {
  background:
    linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 50%, #1a0a00 100%),
    radial-gradient(ellipse at 50% 30%, #5a3a2a 0%, transparent 70%);
}
.scn-address-to-quakers .wall {
  position:absolute; inset:0;
  background: linear-gradient(180deg, transparent 60%, rgba(0,0,0,0.4) 100%);
}
.scn-address-to-quakers .candle {
  position:absolute; bottom:40%; left:30%; width:4%; height:25%;
  background: linear-gradient(180deg, #d4b888 0%, #a08060 100%);
  border-radius: 2px; box-shadow: 0 0 10px rgba(255,200,100,0.3);
}
.scn-address-to-quakers .flame {
  position:absolute; bottom:63%; left:31%; width:3%; height:10%;
  background: radial-gradient(ellipse, #ffd060 0%, #ff8040 50%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 20px 8px #ff8040;
  animation: atq-flame 2s ease-in-out infinite alternate;
}
.scn-address-to-quakers .speaker {
  position:absolute; bottom:25%; left:45%; width:15%; height:30%;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0000 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: atq-speak 4s ease-in-out infinite;
}
.scn-address-to-quakers .audience {
  position:absolute; bottom:30%; left:60%; right:10%; height:20%;
  background: linear-gradient(180deg, #1a0a00 0%, #0a0000 100%);
  border-radius: 40% 40% 0 0;
  animation: atq-audience 10s ease-in-out infinite alternate;
}
.scn-address-to-quakers .table {
  position:absolute; bottom:22%; left:35%; width:30%; height:6%;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%);
  border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: atq-table 15s ease-in-out infinite alternate;
}
@keyframes atq-flame { 0% { transform: scaleY(1) rotate(-3deg); } 50% { transform: scaleY(1.15) rotate(2deg); } 100% { transform: scaleY(0.9) rotate(-1deg); } }
@keyframes atq-speak { 0% { transform: translateY(0) rotate(0); } 25% { transform: translateY(-2px) rotate(2deg); } 75% { transform: translateY(-1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes atq-audience { 0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.7; } }
@keyframes atq-table { 0% { box-shadow: 0 4px 8px rgba(0,0,0,0.5); } 50% { box-shadow: 0 6px 12px rgba(0,0,0,0.6); } 100% { box-shadow: 0 4px 8px rgba(0,0,0,0.5); } }

.scn-address-continued {
  background:
    linear-gradient(135deg, #3a2010 0%, #1a0a00 60%, #0a0000 100%),
    radial-gradient(ellipse at 40% 50%, #5a2a1a 0%, transparent 80%);
}
.scn-address-continued .bg-dark {
  position:absolute; inset:0;
  background: linear-gradient(180deg, transparent 50%, rgba(0,0,0,0.6) 100%);
}
.scn-address-continued .candle {
  position:absolute; bottom:45%; left:20%; width:5%; height:20%;
  background: linear-gradient(180deg, #d4b888 0%, #a08060 100%);
  border-radius: 2px; box-shadow: 0 0 10px rgba(255,200,100,0.3);
}
.scn-address-continued .flame {
  position:absolute; bottom:63%; left:21.5%; width:3%; height:12%;
  background: radial-gradient(ellipse, #ffd060 0%, #ff8040 60%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 25px 10px #ff8040;
  animation: ac-flame 1.8s ease-in-out infinite alternate;
}
.scn-address-continued .book-open {
  position:absolute; bottom:25%; left:30%; width:40%; height:20%;
  background: linear-gradient(135deg, #d4b888 0%, #a08060 100%);
  border-radius: 4px; box-shadow: 0 6px 12px rgba(0,0,0,0.5);
  animation: ac-book 20s ease-in-out infinite;
}
.scn-address-continued .hand {
  position:absolute; bottom:40%; left:35%; width:12%; height:18%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 40% 20% 20% 40% / 60% 30% 30% 60%;
  transform-origin: bottom left;
  animation: ac-hand 3s ease-in-out infinite alternate;
}
.scn-address-continued .page {
  position:absolute; bottom:30%; left:35%; width:25%; height:15%;
  background: linear-gradient(135deg, #f0e0c0 0%, #d0b890 100%);
  border-radius: 2px; transform: skewX(-5deg);
  animation: ac-page 12s ease-in-out infinite alternate;
}
@keyframes ac-flame { 0% { transform: scaleY(1) rotate(2deg); } 50% { transform: scaleY(1.2) rotate(-2deg); } 100% { transform: scaleY(0.95) rotate(1deg); } }
@keyframes ac-book { 0% { transform: perspective(800px) rotateY(0deg); } 50% { transform: perspective(800px) rotateY(5deg); } 100% { transform: perspective(800px) rotateY(0deg); } }
@keyframes ac-hand { 0% { transform: translateY(0) rotate(5deg); } 50% { transform: translateY(-3px) rotate(0deg); } 100% { transform: translateY(0) rotate(5deg); } }
@keyframes ac-page { 0% { opacity: 0.6; transform: skewX(-5deg); } 50% { opacity: 0.9; transform: skewX(0deg); } 100% { opacity: 0.6; transform: skewX(-5deg); } }

.scn-quakers-reception {
  background:
    linear-gradient(180deg, #4a3020 0%, #2a1a0a 50%, #1a0a00 100%),
    radial-gradient(ellipse at 50% 20%, #6a4a2a 0%, transparent 70%);
}
.scn-quakers-reception .bg-warm {
  position:absolute; inset:0;
  background: linear-gradient(180deg, transparent 40%, rgba(0,0,0,0.5) 100%);
}
.scn-quakers-reception .altar {
  position:absolute; bottom:10%; left:40%; width:20%; height:50%;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%);
  border-radius: 8px 8px 0 0; box-shadow: 0 4px 10px rgba(0,0,0,0.5);
  animation: qr-altar 20s ease-in-out infinite alternate;
}
.scn-quakers-reception .couple {
  position:absolute; bottom:30%; left:45%; width:12%; height:30%;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0000 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: qr-couple 8s ease-in-out infinite;
}
.scn-quakers-reception .minister {
  position:absolute; bottom:28%; left:55%; width:10%; height:35%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: qr-minister 6s ease-in-out infinite alternate;
}
.scn-quakers-reception .window {
  position:absolute; top:15%; left:15%; width:25%; height:40%;
  background: linear-gradient(135deg, #f0e8d0 0%, #d0c8a0 100%);
  border: 6px solid #6a4a2a; border-radius: 4px; box-shadow: inset 0 0 20px rgba(255,220,150,0.3);
  animation: qr-window 10s ease-in-out infinite alternate;
}
.scn-quakers-reception .flowers {
  position:absolute; bottom:35%; left:30%; width:10%; height:15%;
  background: radial-gradient(circle at 50% 30%, #b87878 0%, #702243 100%);
  border-radius: 50% 50% 20% 20%; box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: qr-flowers 14s ease-in-out infinite alternate;
}
.scn-quakers-reception .pew {
  position:absolute; bottom:5%; left:10%; right:10%; height:15%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%);
  border-radius: 4px; box-shadow: 0 2px 4px rgba(0,0,0,0.4);
  animation: qr-pew 12s ease-in-out infinite alternate;
}
@keyframes qr-altar { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes qr-couple { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(3px) rotate(1deg); } 75% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes qr-minister { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes qr-window { 0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.7; } }
@keyframes qr-flowers { 0% { transform: scale(1); } 50% { transform: scale(1.05); } 100% { transform: scale(0.95); } }
@keyframes qr-pew { 0% { box-shadow: 0 2px 4px rgba(0,0,0,0.4); } 50% { box-shadow: 0 4px 8px rgba(0,0,0,0.5); } 100% { box-shadow: 0 2px 4px rgba(0,0,0,0.4); } }

/* comparative-suffering */
.scn-comparative-suffering {
  background: linear-gradient(180deg, #3a2a1a 0%, #5a3a1a 30%, #2a1a0a 100%),
              radial-gradient(ellipse at 50% 80%, #8a6a3a 0%, transparent 60%);
}
.scn-comparative-suffering .cs-wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #5a4a2a 0%, #3a2a1a 100%); box-shadow: inset 0 0 40px rgba(0,0,0,0.5); }
.scn-comparative-suffering .cs-window { position:absolute; top:10%; left:50%; width:80px; height:100px; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 50%, #d0b080 0%, #806040 100%); border:4px solid #2a1a0a; border-radius:4px; box-shadow: inset 0 0 20px #a08050; }
.scn-comparative-suffering .cs-desk { position:absolute; bottom:30%; left:30%; right:30%; height:12%; background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%); border-radius:2px; box-shadow: 0 4px 8px rgba(0,0,0,0.6); }
.scn-comparative-suffering .cs-paper { position:absolute; bottom:38%; left:35%; width:30%; height:8%; background: #e0d0b0; border-radius:1px; transform:rotate(-2deg); box-shadow: 0 2px 4px rgba(0,0,0,0.3); animation: cs-paper 8s ease-in-out infinite; }
.scn-comparative-suffering .cs-hand { position:absolute; bottom:38%; left:42%; width:12px; height:20px; background: linear-gradient(180deg, #c8a07a 0%, #a08060 100%); border-radius:50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cs-hand 4s ease-in-out infinite; }
.scn-comparative-suffering .cs-candle { position:absolute; bottom:40%; left:48%; width:10px; height:30px; background: linear-gradient(180deg, #e0c080 0%, #806040 100%); border-radius:2px; box-shadow: 0 0 6px rgba(200,160,80,0.5); }
.scn-comparative-suffering .cs-flame { position:absolute; bottom:70%; left:50%; width:8px; height:14px; transform:translateX(-50%); background: radial-gradient(circle, #ffd080 0%, #ffa040 50%, transparent 100%); border-radius:50% 50% 20% 20% / 60% 60% 40% 40%; animation: cs-flame 1s ease-in-out infinite alternate; }
.scn-comparative-suffering .cs-glow { position:absolute; bottom:40%; left:40%; right:40%; height:30%; background: radial-gradient(ellipse at 50% 0%, rgba(255,200,100,0.2) 0%, transparent 60%); animation: cs-glow 3s ease-in-out infinite alternate; }
@keyframes cs-paper { 0% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(1deg) translateY(-1px); } 100% { transform: rotate(-2deg) translateY(0); } }
@keyframes cs-hand { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(8px) rotate(5deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes cs-flame { 0% { opacity:0.8; transform:translateX(-50%) scale(0.9); } 50% { opacity:1; transform:translateX(-50%) scale(1.1); } 100% { opacity:0.9; transform:translateX(-50%) scale(0.95); } }
@keyframes cs-glow { 0% { opacity:0.3; } 50% { opacity:0.6; } 100% { opacity:0.2; } }

/* publication-motive */
.scn-publication-motive {
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%),
              radial-gradient(ellipse at 50% 50%, #8a6a4a 0%, transparent 70%);
}
.scn-publication-motive .pm-wall { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); box-shadow: inset 0 0 30px rgba(0,0,0,0.4); }
.scn-publication-motive .pm-desk { position:absolute; bottom:20%; left:20%; right:20%; height:15%; background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%); border-radius:2px; box-shadow: 0 4px 10px rgba(0,0,0,0.6); }
.scn-publication-motive .pm-book { position:absolute; bottom:28%; left:30%; width:30%; height:12%; background: linear-gradient(180deg, #a08060 0%, #806040 100%); border-radius:2px; transform:rotate(-1deg); box-shadow: 0 2px 6px rgba(0,0,0,0.4); }
.scn-publication-motive .pm-inkwell { position:absolute; bottom:32%; left:55%; width:14px; height:16px; background: #2a1a0a; border-radius:50% 50% 20% 20% / 60% 60% 40% 40%; box-shadow: 0 0 8px rgba(0,0,0,0.5); }
.scn-publication-motive .pm-figure { position:absolute; bottom:22%; left:40%; width:20px; height:40px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pm-figure 3s ease-in-out infinite; }
.scn-publication-motive .pm-lamp { position:absolute; bottom:42%; left:60%; width:16px; height:24px; background: linear-gradient(180deg, #c0a080 0%, #806040 100%); border-radius:4px 4px 2px 2px; }
.scn-publication-motive .pm-lamp-glow { position:absolute; bottom:42%; left:55%; width:40px; height:40px; background: radial-gradient(circle, rgba(255,200,100,0.25) 0%, transparent 70%); animation: pm-lamp-glow 2s ease-in-out infinite alternate; }
.scn-publication-motive .pm-inkdrop { position:absolute; bottom:30%; left:58%; width:4px; height:6px; background: #1a0a0a; border-radius:50%; animation: pm-inkdrop 5s linear infinite; }
@keyframes pm-figure { 0% { transform: rotate(0); } 30% { transform: rotate(2deg); } 60% { transform: rotate(-1deg); } 100% { transform: rotate(0); } }
@keyframes pm-lamp-glow { 0% { opacity:0.5; transform:scale(1); } 100% { opacity:0.9; transform:scale(1.2); } }
@keyframes pm-inkdrop { 0% { transform: translateY(0) scale(1); opacity:1; } 80% { opacity:0.6; } 100% { transform: translateY(20px) scale(0.5); opacity:0; } }

/* geography-of-guinea */
.scn-geography-of-guinea {
  background: linear-gradient(180deg, #87CEEB 0%, #b0d4f1 40%, #f0e68c 100%),
              radial-gradient(ellipse at 70% 20%, #fff4c0 0%, transparent 50%);
}
.scn-geography-of-guinea .gg-sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #b0d4f1 0%, #87CEEB 100%); animation: gg-sky 20s ease-in-out infinite alternate; }
.scn-geography-of-guinea .gg-sun { position:absolute; top:10%; right:20%; width:50px; height:50px; background: radial-gradient(circle, #fff4c0 0%, #ffd700 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 40px 10px rgba(255,215,0,0.3); animation: gg-sun 30s ease-in-out infinite; }
.scn-geography-of-guinea .gg-sea { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #4682B4 0%, #2a6496 100%); }
.scn-geography-of-guinea .gg-coastline { position:absolute; bottom:45%; left:0; right:20%; height:8%; background: linear-gradient(180deg, #c2b280 0%, #a09060 100%); border-radius: 0 60% 0 0 / 0 80% 0 0; box-shadow: inset 0 4px 8px rgba(0,0,0,0.2); }
.scn-geography-of-guinea .gg-ship { position:absolute; bottom:35%; left:60%; width:40px; height:20px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:20% 20% 10% 10%; transform-origin: center; animation: gg-ship 12s ease-in-out infinite; }
.scn-geography-of-guinea .gg-cloud1 { position:absolute; top:15%; left:10%; width:80px; height:20px; background: rgba(255,255,255,0.6); border-radius:50%; filter: blur(6px); animation: gg-cloud1 40s linear infinite; }
.scn-geography-of-guinea .gg-cloud2 { position:absolute; top:25%; right:10%; width:60px; height:15px; background: rgba(255,255,255,0.4); border-radius:50%; filter: blur(5px); animation: gg-cloud2 50s linear infinite reverse; }
@keyframes gg-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes gg-sun { 0% { transform: translate(0,0); } 50% { transform: translate(5px,-3px); } 100% { transform: translate(0,0); } }
@keyframes gg-ship { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(10px) rotate(2deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes gg-cloud1 { 0% { transform: translateX(-20px); } 100% { transform: translateX(100vw); } }
@keyframes gg-cloud2 { 0% { transform: translateX(0); } 100% { transform: translateX(-80vw); } }

/* kingdom-of-benin */
.scn-kingdom-of-benin {
  background: linear-gradient(180deg, #f5deb3 0%, #d2b48c 40%, #8fbc8f 100%),
              radial-gradient(ellipse at 60% 30%, #fffacd 0%, transparent 60%);
}
.scn-kingdom-of-benin .kb-sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #f5deb3 0%, #d2b48c 100%); }
.scn-kingdom-of-benin .kb-hills { position:absolute; bottom:30%; left:0; right:0; height:25%; background: linear-gradient(180deg, #6b8e23 0%, #556b2f 100%); border-radius: 40% 60% 0 0 / 80% 70% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.2); animation: kb-hills 18s ease-in-out infinite alternate; }
.scn-kingdom-of-benin .kb-river { position:absolute; bottom:40%; left:10%; right:70%; height:6%; background: linear-gradient(180deg, #5f9ea0 0%, #4682b4 100%); border-radius:0 0 20% 20%; box-shadow: 0 4px 6px rgba(0,0,0,0.1); transform:rotate(-5deg); animation: kb-river 10s ease-in-out infinite; }
.scn-kingdom-of-benin .kb-huts { position:absolute; bottom:38%; left:40%; width:30px; height:20px; background: linear-gradient(180deg, #d2b48c 0%, #a08060 100%); border-radius:50% 50% 10% 10% / 60% 60% 20% 20%; box-shadow: 0 2px 4px rgba(0,0,0,0.3); }
.scn-kingdom-of-benin .kb-trees { position:absolute; bottom:35%; left:20%; width:20px; height:30px; background: linear-gradient(180deg, #228b22 0%, #006400 100%); border-radius:50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: kb-trees 6s ease-in-out infinite; }
.scn-kingdom-of-benin .kb-path { position:absolute; bottom:25%; left:30%; right:30%; height:10%; background: linear-gradient(180deg, #bdb76b 0%, #9acd32 100%); border-radius:20% 20% 0 0 / 80% 80% 0 0; opacity:0.6; }
.scn-kingdom-of-benin .kb-sun { position:absolute; top:15%; right:25%; width:40px; height:40px; background: radial-gradient(circle, #ffd700 0%, #ff8c00 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 30px 10px rgba(255,215,0,0.3); animation: kb-sun 20s ease-in-out infinite alternate; }
@keyframes kb-hills { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes kb-river { 0% { transform: rotate(-5deg) scaleY(1); } 50% { transform: rotate(-4deg) scaleY(1.05); } 100% { transform: rotate(-5deg) scaleY(1); } }
@keyframes kb-trees { 0% { transform: rotate(0); } 30% { transform: rotate(4deg); } 70% { transform: rotate(-3deg); } 100% { transform: rotate(0); } }
@keyframes kb-sun { 0% { transform: translate(0,0); opacity:0.9; } 100% { transform: translate(5px,-5px); opacity:1; } }

.scn-reference-to-clarkson {
  background: linear-gradient(180deg, #e8d8b0 0%, #c8b08a 40%, #a08860 100%), radial-gradient(ellipse at 70% 30%, #d0c0a0 0%, transparent 60%);
  background-blend-mode: overlay;
}
.scn-reference-to-clarkson .wall { position:absolute; inset:0 0 20% 0; background: linear-gradient(90deg, #d8c8a8 0%, #c0b090 50%, #a89878 100%); }
.scn-reference-to-clarkson .window { position:absolute; top:8%; left:60%; width:30%; height:45%; background: linear-gradient(135deg, #b0d0e0 0%, #80a0c0 100%); border: 4px solid #8a7050; border-radius:4%; box-shadow: inset 0 0 30px rgba(255,255,255,.2); animation: rc-window 12s ease-in-out infinite alternate; }
.scn-reference-to-clarkson .desk { position:absolute; bottom:15%; left:20%; width:65%; height:14%; background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%); border-radius:4% 4% 0 0; box-shadow: 0 8px 16px rgba(0,0,0,.3); }
.scn-reference-to-clarkson .book { position:absolute; bottom:20%; left:40%; width:18%; height:8%; background: linear-gradient(90deg, #b08050 0%, #906030 100%); border-radius:2px; transform: rotate(-5deg); box-shadow: 2px 2px 4px rgba(0,0,0,.2); }
.scn-reference-to-clarkson .candle { position:absolute; bottom:30%; left:35%; width:3%; height:12%; background: linear-gradient(180deg, #e0c080 0%, #c0a060 100%); border-radius:40%; }
.scn-reference-to-clarkson .candle::after { content:''; position:absolute; top:-10%; left:20%; width:60%; height:15%; background: radial-gradient(circle, #ffd070 0%, #ffa020 70%, transparent 100%); border-radius:50%; animation: rc-candle 2s ease-in-out infinite alternate; }
.scn-reference-to-clarkson .figure { position:absolute; bottom:15%; left:28%; width:14%; height:40%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rc-figure 8s ease-in-out infinite; }
.scn-reference-to-clarkson .shadow { position:absolute; bottom:13%; left:25%; width:20%; height:6%; background: rgba(0,0,0,.3); border-radius:50%; filter: blur(6px); animation: rc-shadow 8s ease-in-out infinite; }
@keyframes rc-window { 0% { opacity:.6; transform: scaleY(1) } 50% { opacity:.8; transform: scaleY(1.02) } 100% { opacity:.7; transform: scaleY(.98) } }
@keyframes rc-candle { 0% { transform: scale(1); opacity:.7 } 50% { transform: scale(1.2); opacity:1 } 100% { transform: scale(.9); opacity:.8 } }
@keyframes rc-figure { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(2px) rotate(2deg) } 50% { transform: translateX(4px) rotate(-1deg) } 75% { transform: translateX(2px) rotate(1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes rc-shadow { 0% { transform: scale(1); opacity:.3 } 50% { transform: scale(1.1); opacity:.4 } 100% { transform: scale(.95); opacity:.25 } }

.scn-climate-and-complexion {
  background: linear-gradient(180deg, #f0e8d0 0%, #d8c8a0 50%, #b8a078 100%), radial-gradient(ellipse at 30% 60%, #e8d8b8 0%, transparent 70%);
  background-blend-mode: screen;
}
.scn-climate-and-complexion .bg { position:absolute; inset:0 30% 0 0; background: linear-gradient(180deg, #b8a080 0%, #907050 100%); border-radius:0 20% 20% 0; }
.scn-climate-and-complexion .ray { position:absolute; top:0; left:10%; width:4%; height:100%; background: rgba(255,215,140,.4); transform-origin: bottom; animation: cc-ray 6s ease-in-out infinite; }
.scn-climate-and-complexion .ray-a { left:20%; animation-delay: -.5s; }
.scn-climate-and-complexion .ray-b { left:35%; width:6%; animation-delay: -2s; }
.scn-climate-and-complexion .column { position:absolute; bottom:20%; left:20%; width:12%; height:60%; background: linear-gradient(90deg, #c0a080 0%, #a08060 50%, #d0b090 100%); border-radius:4%; box-shadow: 4px 0 8px rgba(0,0,0,.1); }
.scn-climate-and-complexion .hand { position:absolute; bottom:30%; width:10%; height:20%; background: linear-gradient(180deg, #e0c0a0 0%, #c0a080 100%); border-radius:40% 40% 30% 30% / 50% 50% 30% 30%; }
.scn-climate-and-complexion .hand-left { left:40%; transform: rotate(10deg); }
.scn-climate-and-complexion .hand-right { right:25%; background: linear-gradient(180deg, #b08060 0%, #906040 100%); transform: rotate(-10deg); }
.scn-climate-and-complexion .base { position:absolute; bottom:15%; left:15%; right:15%; height:6%; background: linear-gradient(90deg, #8a7050 0%, #6a5030 50%, #8a7050 100%); border-radius:10%; box-shadow: 0 4px 8px rgba(0,0,0,.2); }
@keyframes cc-ray { 0% { transform: rotate(-10deg) scaleY(.8); opacity:.3 } 50% { transform: rotate(-5deg) scaleY(1); opacity:.6 } 100% { transform: rotate(-15deg) scaleY(.9); opacity:.4 } }

.scn-slavery-depresses-mind {
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 50%, #1a1a2a 100%), radial-gradient(ellipse at 50% 20%, #6a6a7a 0%, transparent 70%);
  background-blend-mode: overlay;
}
.scn-slavery-depresses-mind .cell { position:absolute; inset:0 10% 10% 10%; background: linear-gradient(180deg, #5a5a6a 0%, #3a3a4a 100%); border-radius:4%; box-shadow: inset 0 0 30px rgba(0,0,0,.5); }
.scn-slavery-depresses-mind .bars { position:absolute; top:10%; left:15%; right:15%; bottom:10%; border: 8px solid #5a4a3a; border-radius:4%; box-shadow: 0 0 20px rgba(0,0,0,.6); }
.scn-slavery-depresses-mind .bars::before { content:''; position:absolute; top:10%; left:10%; right:10%; bottom:10%; border: 8px solid #5a4a3a; border-radius:4%; }
.scn-slavery-depresses-mind .figure { position:absolute; bottom:20%; left:40%; width:20%; height:40%; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius:50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: sd-figure 3s ease-in-out infinite; }
.scn-slavery-depresses-mind .chain { position:absolute; bottom:15%; left:35%; right:35%; height:4%; background: repeating-linear-gradient(90deg, #6a5a4a 0px, #6a5a4a 8px, transparent 8px, transparent 16px); border-radius:2px; animation: sd-chain 2s ease-in-out infinite; }
.scn-slavery-depresses-mind .shadow { position:absolute; bottom:18%; left:38%; width:24%; height:8%; background: rgba(0,0,0,.5); border-radius:50%; filter: blur(8px); animation: sd-shadow 3s ease-in-out infinite; }
.scn-slavery-depresses-mind .light { position:absolute; top:10%; left:40%; width:20%; height:15%; background: radial-gradient(circle, rgba(255,220,150,.8) 0%, rgba(255,200,100,.3) 50%, transparent 100%); filter: blur(10px); animation: sd-light 2s ease-in-out infinite alternate; }
@keyframes sd-figure { 0% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(4px) rotate(3deg) } 50% { transform: translateY(8px) rotate(-2deg) } 75% { transform: translateY(4px) rotate(2deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes sd-chain { 0% { transform: translateY(0) } 50% { transform: translateY(2px) } 100% { transform: translateY(0) } }
@keyframes sd-shadow { 0% { transform: scale(1); opacity:.5 } 50% { transform: scale(1.2); opacity:.6 } 100% { transform: scale(.9); opacity:.4 } }
@keyframes sd-light { 0% { opacity:.2; transform: scale(1) } 50% { opacity:.6; transform: scale(1.1) } 100% { opacity:.3; transform: scale(.95) } }

.scn-ancestors-were-barbarous {
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 50%, #2a1a0a 100%), radial-gradient(ellipse at 30% 20%, #8a6a4a 0%, transparent 70%);
  background-blend-mode: hard-light;
}
.scn-ancestors-were-barbarous .stone { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%); border-radius:0 0 20% 20%; }
.scn-ancestors-were-barbarous .fireplace { position:absolute; bottom:25%; left:40%; width:20%; height:40%; background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%); border-radius:10% 10% 4% 4%; box-shadow: inset 0 -10px 20px rgba(0,0,0,.6); }
.scn-ancestors-were-barbarous .fireplace::after { content:''; position:absolute; top:50%; left:10%; width:80%; height:30%; background: #1a0a00; border-radius:10%; }
.scn-ancestors-were-barbarous .fire { position:absolute; bottom:45%; left:42%; width:16%; height:20%; background: radial-gradient(circle, #ff8030 0%, #cc5a20 30%, #8a3010 60%, transparent 100%); filter: blur(4px); animation: aw-fire 2s ease-in-out infinite alternate; }
.scn-ancestors-were-barbarous .statue { position:absolute; bottom:20%; left:30%; width:14%; height:45%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: aw-statue 10s ease-in-out infinite; }
.scn-ancestors-were-barbarous .shadow { position:absolute; bottom:18%; left:28%; width:18%; height:6%; background: rgba(0,0,0,.4); border-radius:50%; filter: blur(6px); }
.scn-ancestors-were-barbarous .glow { position:absolute; bottom:40%; left:36%; width:28%; height:30%; background: radial-gradient(circle, rgba(255,180,80,.5) 0%, transparent 70%); filter: blur(12px); animation: aw-glow 3s ease-in-out infinite alternate; }
@keyframes aw-fire { 0% { transform: scaleY(.8) translateY(2px); opacity:.7 } 50% { transform: scaleY(1.1) translateY(-2px); opacity:1 } 100% { transform: scaleY(.9) translateY(1px); opacity:.8 } }
@keyframes aw-statue { 0% { transform: rotate(0deg) } 25% { transform: rotate(1deg) } 50% { transform: rotate(-1deg) } 75% { transform: rotate(2deg) } 100% { transform: rotate(0deg) } }
@keyframes aw-glow { 0% { opacity:.4; transform: scale(1) } 50% { opacity:.7; transform: scale(1.1) } 100% { opacity:.5; transform: scale(.95) } }

.scn-return-and-heat {
  background:
    linear-gradient(180deg, #ffcc66 0%, #ff9933 40%, #cc6600 70%, #8b4513 100%),
    radial-gradient(ellipse at 50% 0%, #ffd700 0%, transparent 60%);
}
.scn-return-and-heat .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #ffe0a0 0%, #ffaa44 100%);
  animation: rh-sky 8s ease-in-out infinite alternate;
}
.scn-return-and-heat .sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #2d5a88 0%, #1a3a55 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.3);
}
.scn-return-and-heat .sun {
  position: absolute; top: 8%; left: 50%; width: 60px; height: 60px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #fff5cc 0%, #ffdd44 60%, #ffaa00 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px #ffdd44, 0 0 80px 40px rgba(255,204,0,0.4);
  animation: rh-sun 6s ease-in-out infinite alternate;
}
.scn-return-and-heat .ship {
  position: absolute; bottom: 28%; left: 30%; width: 120px; height: 50px;
  background: linear-gradient(180deg, #5c3a1e 0%, #3b2210 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: rh-rock 12s ease-in-out infinite;
}
.scn-return-and-heat .figure-left {
  position: absolute; bottom: 32%; left: 30%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0d0d1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rh-gesture 4s ease-in-out infinite;
}
.scn-return-and-heat .figure-right {
  position: absolute; bottom: 32%; left: 46%; width: 22px; height: 52px;
  background: linear-gradient(180deg, #2a1a0e 0%, #1a0e06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rh-gesture 4s ease-in-out infinite reverse;
}
.scn-return-and-heat .glare {
  position: absolute; top: 0; left: 0; right: 0; bottom: 50%;
  background: linear-gradient(180deg, rgba(255,255,200,0.4) 0%, transparent 100%);
  pointer-events: none;
  animation: rh-glare 2s ease-in-out infinite alternate;
}
@keyframes rh-sky {
  0% { filter: brightness(1); }
  50% { filter: brightness(1.1); }
  100% { filter: brightness(0.95); }
}
@keyframes rh-sun {
  0% { transform: translateX(-50%) scale(1); }
  50% { transform: translateX(-50%) scale(1.08); }
  100% { transform: translateX(-50%) scale(0.98); }
}
@keyframes rh-rock {
  0%, 100% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(-2px) rotate(-1deg); }
  50% { transform: translateX(0) rotate(0deg); }
  75% { transform: translateX(2px) rotate(1deg); }
}
@keyframes rh-gesture {
  0% { transform: translateY(0) rotate(0deg); }
  30% { transform: translateY(-2px) rotate(3deg); }
  60% { transform: translateY(0) rotate(-2deg); }
  100% { transform: translateY(1px) rotate(0deg); }
}
@keyframes rh-glare {
  0% { opacity: 0.3; }
  100% { opacity: 0.7; }
}

/* ---- second-escape-attempt ---- */
.scn-second-escape-attempt {
  background:
    linear-gradient(180deg, #ffd699 0%, #ffaa44 50%, #cc7a22 100%),
    radial-gradient(ellipse at 30% 80%, #fff3cc 0%, transparent 50%);
}
.scn-second-escape-attempt .ocean {
  position: absolute; inset: 0 0 0 0;
  background: linear-gradient(180deg, #2e6b8a 0%, #1a4258 100%);
  animation: sea-move 15s linear infinite;
}
.scn-second-escape-attempt .canoe {
  position: absolute; bottom: 30%; left: 20%; width: 70px; height: 20px;
  background: linear-gradient(180deg, #6b4226 0%, #3d2414 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: sea-bob 4s ease-in-out infinite;
}
.scn-second-escape-attempt .paddler {
  position: absolute; bottom: 38%; left: 20%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0d0d1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sea-paddle 2s ease-in-out infinite;
}
.scn-second-escape-attempt .wave-1 {
  position: absolute; bottom: 35%; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, rgba(255,255,255,0.2) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(3px);
  animation: sea-wave 5s ease-in-out infinite;
}
.scn-second-escape-attempt .wave-2 {
  position: absolute; bottom: 40%; left: 0; right: 0; height: 10%;
  background: linear-gradient(180deg, rgba(255,255,255,0.15) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(2px);
  animation: sea-wave 7s ease-in-out infinite reverse;
}
.scn-second-escape-attempt .chaser {
  position: absolute; bottom: 28%; right: 12%; width: 100px; height: 60px;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%);
  border-radius: 10% 10% 30% 30%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.5);
  animation: sea-sway 10s ease-in-out infinite;
}
@keyframes sea-move {
  0% { background-position: 0% 0%; }
  100% { background-position: 20% 10%; }
}
@keyframes sea-bob {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-5px); }
}
@keyframes sea-paddle {
  0% { transform: rotate(-10deg); }
  50% { transform: rotate(10deg); }
  100% { transform: rotate(-10deg); }
}
@keyframes sea-wave {
  0% { transform: translateX(-10%); }
  50% { transform: translateX(10%); }
  100% { transform: translateX(-10%); }
}
@keyframes sea-sway {
  0% { transform: rotate(0deg); }
  25% { transform: rotate(-2deg); }
  50% { transform: rotate(0deg); }
  75% { transform: rotate(2deg); }
  100% { transform: rotate(0deg); }
}

/* ---- safe-ashore ---- */
.scn-safe-ashore {
  background:
    linear-gradient(180deg, #f9e6b3 0%, #e6c68a 40%, #c9a56d 100%),
    radial-gradient(ellipse at 70% 0%, #fff8dc 0%, transparent 60%);
}
.scn-safe-ashore .beach-sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #b3d4f0 0%, #d4eaf7 50%, #fdf5e6 100%);
  animation: sa-sky 20s ease-in-out infinite alternate;
}
.scn-safe-ashore .sand {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #e8c99b 0%, #d4b07a 100%);
}
.scn-safe-ashore .sea-calm {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #5a8a9a 0%, #4a7a8a 100%);
  border-radius: 0 0 50% 50% / 0 0 100% 100%;
  animation: sa-sea 12s ease-in-out infinite alternate;
}
.scn-safe-ashore .figure-kneeling {
  position: absolute; bottom: 25%; left: 40%; width: 24px; height: 44px;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sa-kneel 10s ease-in-out infinite;
}
.scn-safe-ashore .palm {
  position: absolute; bottom: 35%; right: 15%; width: 40px; height: 120px;
  background: linear-gradient(180deg, #4a3a1a 0%, #2a1a0a 100%);
  border-radius: 30% 30% 20% 20%;
  transform-origin: bottom center;
  animation: sa-palm 25s ease-in-out infinite alternate;
}
.scn-safe-ashore .shadow {
  position: absolute; bottom: 20%; left: 35%; width: 40px; height: 10px;
  background: rgba(0,0,0,0.2);
  border-radius: 50%;
  filter: blur(4px);
  animation: sa-shadow 10s ease-in-out infinite;
}
.scn-safe-ashore .light-shimmer {
  position: absolute; top: 0; left: 0; right: 0; bottom: 0;
  background: radial-gradient(ellipse at 60% 20%, rgba(255,255,200,0.4) 0%, transparent 70%);
  pointer-events: none;
  animation: sa-shimmer 5s ease-in-out infinite alternate;
}
@keyframes sa-sky {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes sa-sea {
  0% { transform: translateY(0); }
  50% { transform: translateY(2px); }
  100% { transform: translateY(0); }
}
@keyframes sa-kneel {
  0% { transform: translateY(0) rotate(2deg); }
  50% { transform: translateY(-2px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(2deg); }
}
@keyframes sa-palm {
  0% { transform: rotate(-2deg); }
  50% { transform: rotate(3deg); }
  100% { transform: rotate(-2deg); }
}
@keyframes sa-shadow {
  0% { transform: scaleX(1); }
  50% { transform: scaleX(1.2); }
  100% { transform: scaleX(1); }
}
@keyframes sa-shimmer {
  0% { opacity: 0.3; }
  100% { opacity: 0.6; }
}

/* ---- indian-corn-and-chief ---- */
.scn-indian-corn-and-chief {
  background:
    linear-gradient(180deg, #a8d8a8 0%, #88b888 40%, #6a9a6a 100%),
    radial-gradient(ellipse at 50% 0%, #c8e8c8 0%, transparent 70%);
}
.scn-indian-corn-and-chief .clearing {
  position: absolute; inset: 0 0 0 0;
  background: linear-gradient(180deg, #b8d8b0 0%, #90b880 100%);
}
.scn-indian-corn-and-chief .chief {
  position: absolute; bottom: 15%; left: 30%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: icc-chief 6s ease-in-out infinite;
}
.scn-indian-corn-and-chief .corn {
  position: absolute; bottom: 20%; left: 36%; width: 14px; height: 32px;
  background: linear-gradient(180deg, #d4a84a 0%, #b88a2a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.2);
  animation: icc-corn 8s ease-in-out infinite alternate;
}
.scn-indian-corn-and-chief .hut-left {
  position: absolute; bottom: 10%; left: 10%; width: 80px; height: 70px;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 20% 20%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.3);
  animation: icc-hut 20s ease-in-out infinite;
}
.scn-indian-corn-and-chief .hut-right {
  position: absolute; bottom: 12%; right: 15%; width: 70px; height: 60px;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 20% 20%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.3);
  animation: icc-hut 25s ease-in-out infinite reverse;
}
.scn-indian-corn-and-chief .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 18%;
  background: linear-gradient(180deg, #6a5a2a 0%, #4a3a1a 100%);
  border-radius: 20% 20% 0 0;
  animation: icc-ground 12s ease-in-out infinite alternate;
}
@keyframes icc-chief {
  0% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
  100% { transform: translateY(0); }
}
@keyframes icc-corn {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(3deg); }
  100% { transform: rotate(0deg); }
}
@keyframes icc-hut {
  0% { filter: brightness(1); }
  50% { filter: brightness(1.05); }
  100% { filter: brightness(0.95); }
}
@keyframes icc-ground {
  0% { background-position: 0% 0%; }
  100% { background-position: 10% 5%; }
}

.scn-barbadoes-stats {
  background:
    linear-gradient(180deg, #1a1810 0%, #2c2418 40%, #1f1a10 100%),
    radial-gradient(ellipse at 50% 60%, rgba(60,45,20,0.6) 0%, transparent 70%);
}
.scn-barbadoes-stats .room-wall {
  position: absolute; inset: 0; background:
    linear-gradient(135deg, #2b2216 0%, #1f1710 50%, #14100a 100%);
  filter: blur(2px); animation: bds-wall 20s ease-in-out infinite;
}
.scn-barbadoes-stats .window-light {
  position: absolute; top: 12%; left: 28%; width: 50px; height: 70px;
  background: radial-gradient(ellipse at 50% 50%, rgba(180,130,70,0.4) 0%, transparent 80%);
  border: 4px solid #3a2a1a; border-radius: 4px;
  box-shadow: 0 0 60px 20px rgba(160,120,60,0.2);
  animation: bds-window 8s ease-in-out infinite alternate;
}
.scn-barbadoes-stats .desk {
  position: absolute; bottom: 22%; left: 30%; width: 140px; height: 50px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e12 100%);
  border-radius: 6px; box-shadow: 0 -4px 12px rgba(0,0,0,0.8);
  transform: perspective(600px) rotateX(10deg);
}
.scn-barbadoes-stats .figure-scribe {
  position: absolute; bottom: 28%; left: 40%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #1f1812 0%, #0f0a06 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bds-scribe 4s ease-in-out infinite alternate;
}
.scn-barbadoes-stats .candle {
  position: absolute; bottom: 38%; left: 44%; width: 8px; height: 28px;
  background: linear-gradient(180deg, #d4a060 0%, #a07030 80%, #604020 100%);
  border-radius: 2px;
  box-shadow: 0 0 16px 4px rgba(200,140,50,0.6), 0 0 30px 10px rgba(200,140,50,0.3);
  animation: bds-candle 3s ease-in-out infinite;
}
.scn-barbadoes-stats .ledger {
  position: absolute; bottom: 25%; left: 38%; width: 40px; height: 26px;
  background: linear-gradient(180deg, #e8d8b8 0%, #c0a870 100%);
  border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  transform: rotate(-5deg);
}
@keyframes bds-wall { 0%,100% { opacity: 0.9 } 50% { opacity: 1 } }
@keyframes bds-window { 0% { opacity: 0.5; transform: scaleY(0.95) } 100% { opacity: 0.8; transform: scaleY(1.05) } }
@keyframes bds-scribe { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(2deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes bds-candle { 0%,100% { transform: scaleY(1) scaleX(1); opacity: 0.8 } 50% { transform: scaleY(1.1) scaleX(0.9); opacity: 1 } }

.scn-emmanuel-sankey {
  background:
    linear-gradient(180deg, #0a0a12 0%, #181420 40%, #100e1a 100%),
    radial-gradient(ellipse at 50% 80%, #1a1628 0%, transparent 70%);
}
.scn-emmanuel-sankey .hold-dark {
  position: absolute; inset: 0;
  background: repeating-linear-gradient(0deg, #0f0d1a 0px, #0f0d1a 4px, #1a1628 4px, #1a1628 8px);
  animation: ems-hold 30s linear infinite;
}
.scn-emmanuel-sankey .crate-left {
  position: absolute; bottom: 20%; left: 15%; width: 80px; height: 60px;
  background: linear-gradient(135deg, #2a2016 0%, #1a140e 100%);
  border-radius: 4px; box-shadow: 4px 4px 8px rgba(0,0,0,0.8);
  transform: perspective(300px) rotateY(10deg);
}
.scn-emmanuel-sankey .crate-right {
  position: absolute; bottom: 24%; right: 20%; width: 70px; height: 50px;
  background: linear-gradient(225deg, #241a12 0%, #18100a 100%);
  border-radius: 4px; box-shadow: -4px 4px 8px rgba(0,0,0,0.8);
  transform: perspective(300px) rotateY(-15deg);
}
.scn-emmanuel-sankey .figure-crouch {
  position: absolute; bottom: 18%; left: 30%; width: 34px; height: 42px;
  background: linear-gradient(180deg, #1a141a 0%, #0e0a0e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ems-figure 6s ease-in-out infinite;
}
.scn-emmanuel-sankey .lantern-beam {
  position: absolute; top: 10%; left: 45%; width: 30px; height: 120px;
  background: linear-gradient(180deg, rgba(180,140,80,0.6) 0%, rgba(180,140,80,0.1) 60%, transparent 100%);
  border-radius: 20px; filter: blur(8px);
  animation: ems-beam 5s ease-in-out infinite alternate;
}
.scn-emmanuel-sankey .lantern-body {
  position: absolute; top: 8%; left: 47%; width: 20px; height: 24px;
  background: radial-gradient(circle at 50% 50%, #b08850 0%, #604828 100%);
  border-radius: 4px; box-shadow: 0 0 30px 6px rgba(180,140,80,0.5);
}
@keyframes ems-hold { 0% { background-position: 0 0 } 100% { background-position: 0 40px } }
@keyframes ems-figure { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 50% { transform: translateX(4px) translateY(-1px) rotate(1deg) } 100% { transform: translateX(-4px) translateY(0) rotate(-1deg) } }
@keyframes ems-beam { 0% { opacity: 0.4; transform: scaleX(1) } 100% { opacity: 0.7; transform: scaleX(1.2) } }

.scn-brandings-tortures {
  background:
    linear-gradient(180deg, #1c1410 0%, #2a1e18 40%, #1a100c 100%),
    radial-gradient(ellipse at 50% 40%, #3a2818 0%, transparent 70%);
}
.scn-brandings-tortures .post {
  position: absolute; bottom: 10%; left: 55%; width: 16px; height: 80px;
  background: linear-gradient(180deg, #4a3a28 0%, #2a1a10 100%);
  border-radius: 4px; box-shadow: 2px 0 8px rgba(0,0,0,0.7);
}
.scn-brandings-tortures .figure-victim {
  position: absolute; bottom: 18%; left: 48%; width: 30px; height: 55px;
  background: linear-gradient(180deg, #1a1412 0%, #0e0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(5deg); transform-origin: bottom center;
  animation: brt-victim 4s ease-in-out infinite alternate;
}
.scn-brandings-tortures .figure-overseer {
  position: absolute; bottom: 20%; left: 36%; width: 28px; height: 60px;
  background: linear-gradient(180deg, #1e1612 0%, #100c08 100%);
  border-radius: 50% 50% 30% 30% / 60% 50% 40% 40%;
  transform: rotate(-10deg);
  animation: brt-overseer 5s ease-in-out infinite;
}
.scn-brandings-tortures .branding-iron {
  position: absolute; bottom: 32%; left: 38%; width: 14px; height: 26px;
  background: linear-gradient(180deg, #d46622 0%, #a04010 100%);
  border-radius: 2px;
  box-shadow: 0 0 20px 6px rgba(200,80,20,0.5), 0 0 40px 10px rgba(200,80,20,0.2);
  animation: brt-iron 3s ease-in-out infinite;
}
.scn-brandings-tortures .chain-neck {
  position: absolute; bottom: 42%; left: 52%; width: 20px; height: 6px;
  background: repeating-linear-gradient(90deg, #4a4038 0px, #4a4038 4px, #605048 4px, #605048 8px);
  border-radius: 2px; transform: rotate(-20deg);
}
.scn-brandings-tortures .chain-floor {
  position: absolute; bottom: 10%; left: 54%; width: 40px; height: 4px;
  background: repeating-linear-gradient(90deg, #4a4038 0px, #4a4038 4px, #605048 4px, #605048 8px);
  border-radius: 2px; transform: rotate(15deg);
}
@keyframes brt-victim { 0% { transform: rotate(5deg) translateY(0) } 100% { transform: rotate(7deg) translateY(-2px) } }
@keyframes brt-overseer { 0%,100% { transform: rotate(-10deg) translateX(0) } 50% { transform: rotate(-8deg) translateX(2px) } }
@keyframes brt-iron { 0% { opacity: 0.8; transform: rotate(0deg) } 50% { opacity: 1; transform: rotate(5deg) } 100% { opacity: 0.7; transform: rotate(-5deg) } }

.scn-theft-from-slaves {
  background:
    linear-gradient(180deg, #1a1618 0%, #2a2022 40%, #181214 100%),
    radial-gradient(ellipse at 50% 30%, #2c2024 0%, transparent 70%);
}
.scn-theft-from-slaves .ground-dark {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #2c2420 0%, #1a1410 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
}
.scn-theft-from-slaves .figure-slave {
  position: absolute; bottom: 22%; left: 44%; width: 32px; height: 58px;
  background: linear-gradient(180deg, #1a1416 0%, #0e0a0c 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-5deg); transform-origin: bottom center;
  animation: tfs-slave 6s ease-in-out infinite;
}
.scn-theft-from-slaves .figure-master {
  position: absolute; bottom: 24%; left: 30%; width: 30px; height: 62px;
  background: linear-gradient(180deg, #221e1a 0%, #14100e 100%);
  border-radius: 50% 50% 30% 30% / 60% 50% 40% 40%;
  transform: rotate(8deg);
  animation: tfs-master 4s ease-in-out infinite alternate;
}
.scn-theft-from-slaves .whip {
  position: absolute; bottom: 40%; left: 25%; width: 8px; height: 60px;
  background: linear-gradient(180deg, #4a3a30 0%, #2a1e18 100%);
  border-radius: 2px; transform-origin: top left; transform: rotate(-20deg);
  animation: tfs-whip 2s ease-in-out infinite;
}
.scn-theft-from-slaves .sack {
  position: absolute; bottom: 20%; left: 55%; width: 28px; height: 20px;
  background: radial-gradient(ellipse at 50% 30%, #4a3a30 0%, #2a1e18 100%);
  border-radius: 30% 30% 40% 40% / 50% 50% 30% 30%;
  transform: rotate(10deg);
}
.scn-theft-from-slaves .chain-wrist {
  position: absolute; bottom: 42%; left: 48%; width: 16px; height: 4px;
  background: repeating-linear-gradient(90deg, #4a4038 0px, #4a4038 3px, #605048 3px, #605048 6px);
  border-radius: 2px; transform: rotate(30deg);
}
@keyframes tfs-slave { 0% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(-3deg) translateY(-2px) } 100% { transform: rotate(-5deg) translateY(0) } }
@keyframes tfs-master { 0% { transform: rotate(8deg) translateX(0) } 100% { transform: rotate(6deg) translateX(3px) } }
@keyframes tfs-whip { 0%,100% { transform: rotate(-20deg) } 50% { transform: rotate(-30deg) } }

/* learning-to-read */
.scn-learning-to-read { background: linear-gradient(135deg, #6b4a2e 0%, #4a2e1a 50%, #2e1a0e 100%), radial-gradient(ellipse at 60% 20%, #e8c88a 0%, transparent 70%); }
.scn-learning-to-read .wall { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #c9b49a 0%, #a58a70 100%); border-radius: 0 0 30% 30% / 0 0 10% 10%; }
.scn-learning-to-read .window-frame { position:absolute; top:8%; left:60%; width:90px; height:110px; border:6px solid #5a3a22; border-radius:4%; background: radial-gradient(ellipse at 50% 50%, #e8d4b0 0%, #bfa680 70%); box-shadow: inset 0 0 30px rgba(232,200,138,0.3); }
.scn-learning-to-read .desk { position:absolute; bottom:22%; left:20%; right:20%; height:18%; background: linear-gradient(180deg, #6a4a2e 0%, #4a2e1a 100%); border-radius: 4% 4% 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,0.3); }
.scn-learning-to-read .book-open { position:absolute; bottom:28%; left:35%; width:80px; height:60px; background: linear-gradient(135deg, #f0e0c0 0%, #d4c0a0 100%); border-radius: 0 8% 8% 0 / 0 12% 12% 0; transform: rotate(-10deg); box-shadow: 2px 4px 8px rgba(0,0,0,0.4); animation: lr-book 6s ease-in-out infinite; }
.scn-learning-to-read .lamp-glow { position:absolute; bottom:26%; left:48%; width:20px; height:30px; background: radial-gradient(circle, #ffd080 0%, #e8a840 70%); border-radius: 50% 50% 20% 20%; box-shadow: 0 0 40px 20px rgba(232,168,64,0.5), 0 0 80px 40px rgba(232,168,64,0.2); animation: lr-lamp 4s ease-in-out infinite alternate; }
.scn-learning-to-read .reader { position:absolute; bottom:18%; left:33%; width:30px; height:50px; background: linear-gradient(180deg, #2a1a0e 0%, #1a0e06 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lr-reader 5s ease-in-out infinite; }
.scn-learning-to-read .shadow-shelf { position:absolute; top:35%; left:10%; width:25%; height:8%; background: linear-gradient(180deg, #5a3a22 0%, #3a2212 100%); border-radius: 2%; box-shadow: 0 4px 10px rgba(0,0,0,0.3); }
@keyframes lr-book { 0% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-8deg) translateY(-2px); } 100% { transform: rotate(-10deg) translateY(0); } }
@keyframes lr-lamp { 0% { opacity: 0.8; transform: scale(1); } 50% { opacity: 1; transform: scale(1.05); } 100% { opacity: 0.85; transform: scale(0.98); } }
@keyframes lr-reader { 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); } }

/* desire-for-baptism */
.scn-desire-for-baptism { background: linear-gradient(180deg, #b0a898 0%, #8a7e72 40%, #5a4e42 100%), radial-gradient(ellipse at 70% 30%, #e0d8c8 0%, transparent 70%); }
.scn-desire-for-baptism .room-bg { position:absolute; inset:0; background: linear-gradient(135deg, #8a7e72 0%, #6a5e52 100%); }
.scn-desire-for-baptism .lightbeam { position:absolute; top:0; left:55%; width:40%; height:100%; background: linear-gradient(180deg, rgba(255,255,220,0.4) 0%, rgba(255,255,220,0.1) 100%); clip-path: polygon(40% 0%, 60% 0%, 70% 100%, 30% 100%); animation: db-beam 8s ease-in-out infinite alternate; }
.scn-desire-for-baptism .figure-kneeling { position:absolute; bottom:15%; left:38%; width:32px; height:60px; background: linear-gradient(180deg, #2a1e1a 0%, #1a0e0a 100%); border-radius: 50% 50% 40% 40% / 60% 50% 40% 40%; transform-origin: bottom center; animation: db-kneel 4s ease-in-out infinite; }
.scn-desire-for-baptism .cross-symbol { position:absolute; top:18%; left:55%; width:8px; height:60px; background: #5a3a2a; border-radius: 2px; transform: translateX(-50%); box-shadow: 0 0 20px rgba(90,58,42,0.6); }
.scn-desire-for-baptism .cross-symbol::before { content:''; position:absolute; top:15px; left:-18px; width:44px; height:8px; background: #5a3a2a; border-radius: 2px; }
.scn-desire-for-baptism .door-frame { position:absolute; bottom:0; left:10%; width:80px; height:90%; background: linear-gradient(180deg, #4a3e32 0%, #2a1e12 100%); border-radius: 6% 6% 0 0; border: 4px solid #3a2a1a; }
.scn-desire-for-baptism .dust-motes { position:absolute; top:30%; left:50%; width:100%; height:100%; background: radial-gradient(circle at 30% 40%, rgba(255,255,200,0.4) 0%, transparent 30%), radial-gradient(circle at 70% 60%, rgba(255,255,200,0.3) 0%, transparent 25%); mix-blend-mode: screen; animation: db-motes 12s ease-in-out infinite; }
.scn-desire-for-baptism .shadow-figure { position:absolute; bottom:20%; right:12%; width:25px; height:50px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; opacity:0.7; animation: db-shadow 6s ease-in-out infinite alternate; }
@keyframes db-beam { 0% { opacity:0.3; transform: scaleX(0.9); } 50% { opacity:0.7; transform: scaleX(1.1); } 100% { opacity:0.4; transform: scaleX(0.95); } }
@keyframes db-kneel { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(-3deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(1px) rotate(3deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes db-motes { 0% { background-position: 0% 0%, 0% 0%; } 50% { background-position: 10% 5%, -5% 10%; } 100% { background-position: 0% 0%, 0% 0%; } }
@keyframes db-shadow { 0% { transform: scaleX(1) translateX(0); } 50% { transform: scaleX(1.2) translateX(-5px); } 100% { transform: scaleX(1) translateX(0); } }

/* godmother-and-book */
.scn-godmother-and-book { background: linear-gradient(180deg, #c9b49a 0%, #a58a70 40%, #7a624a 100%), radial-gradient(ellipse at 40% 50%, #f0dcc0 0%, transparent 70%); }
.scn-godmother-and-book .interior-bg { position:absolute; inset:0 0 30% 0; background: linear-gradient(135deg, #d4c0a8 0%, #b8a088 100%); border-radius: 0 0 40% 40% / 0 0 20% 20%; }
.scn-godmother-and-book .table-cloth { position:absolute; bottom:22%; left:25%; right:25%; height:20%; background: linear-gradient(180deg, #e8dcc8 0%, #c8b8a0 100%); border-radius: 6% 6% 0 0; box-shadow: 0 -6px 20px rgba(0,0,0,0.15); }
.scn-godmother-and-book .book-gift { position:absolute; bottom:26%; left:42%; width:50px; height:40px; background: linear-gradient(135deg, #b04020 0%, #802820 100%); border-radius: 4%; box-shadow: 2px 4px 10px rgba(0,0,0,0.3); transform: rotate(-5deg); animation: gb-book 5s ease-in-out infinite; }
.scn-godmother-and-book .godmother { position:absolute; bottom:18%; right:35%; width:40px; height:80px; background: linear-gradient(180deg, #6a4a32 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: gb-figure 6s ease-in-out infinite; }
.scn-godmother-and-book .child { position:absolute; bottom:20%; left:40%; width:28px; height:45px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: gb-child 4s ease-in-out infinite alternate; }
.scn-godmother-and-book .treat-plate { position:absolute; bottom:28%; left:48%; width:30px; height:8px; background: linear-gradient(180deg, #f0e0c0 0%, #d0c0a0 100%); border-radius: 50%; box-shadow: 0 2px 6px rgba(0,0,0,0.2); }
.scn-godmother-and-book .warm-glow { position:absolute; top:40%; left:35%; width:30%; height:50%; background: radial-gradient(ellipse at 50% 50%, rgba(255,200,150,0.4) 0%, transparent 70%); mix-blend-mode: screen; animation: gb-glow 7s ease-in-out infinite alternate; }
@keyframes gb-book { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-2px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes gb-figure { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(2deg); } 50% { transform: translateY(0) rotate(-2deg); } 75% { transform: translateY(-1px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes gb-child { 0% { transform: translateX(0) scaleY(1); } 50% { transform: translateX(8px) scaleY(1.02); } 100% { transform: translateX(0) scaleY(1); } }
@keyframes gb-glow { 0% { opacity:0.5; transform: scale(0.9); } 50% { opacity:0.8; transform: scale(1.1); } 100% { opacity:0.6; transform: scale(1); } }

/* playing-at-bridge-stairs */
.scn-playing-at-bridge-stairs { background: linear-gradient(180deg, #7aa8c8 0%, #5a88a8 40%, #3a6888 100%), radial-gradient(ellipse at 50% 0%, #c0d8e8 0%, transparent 70%); }
.scn-playing-at-bridge-stairs .sky-bg { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #b0d0e8 0%, #80a8c0 100%); }
.scn-playing-at-bridge-stairs .bridge-arch { position:absolute; bottom:35%; left:0; right:0; height:30%; background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%); border-radius: 50% 50% 0 0 / 100% 100% 0 0; box-shadow: 0 -8px 30px rgba(0,0,0,0.4); }
.scn-playing-at-bridge-stairs .stair-steps { position:absolute; bottom:10%; left:20%; right:20%; height:40%; background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%); background-size: 100% 14%; background-repeat: repeat-y; border-radius: 4% 4% 0 0; animation: bs-stairs 12s linear infinite; }
.scn-playing-at-bridge-stairs .water-surface { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #4a7a9a 0%, #2a5a7a 100%); animation: bs-water 8s ease-in-out infinite alternate; }
.scn-playing-at-bridge-stairs .wherry-boat { position:absolute; bottom:18%; left:45%; width:60px; height:20px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 0 30% 30% 0 / 0 50% 50% 0; transform: rotate(2deg); animation: bs-boat 6s ease-in-out infinite; }
.scn-playing-at-bridge-stairs .boy-playing { position:absolute; bottom:22%; left:48%; width:20px; height:30px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e06 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bs-boy 4s ease-in-out infinite; }
.scn-playing-at-bridge-stairs .sun-sparkles { position:absolute; top:30%; left:0; right:0; height:20%; background: radial-gradient(circle at 20% 40%, rgba(255,255,200,0.6) 0%, transparent 15%), radial-gradient(circle at 80% 60%, rgba(255,255,200,0.4) 0%, transparent 12%); mix-blend-mode: overlay; animation: bs-sparkles 10s ease-in-out infinite alternate; }
@keyframes bs-stairs { 0% { background-position: 0 0; } 100% { background-position: 0 14%; } }
@keyframes bs-water { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes bs-boat { 0% { transform: rotate(2deg) translateX(0); } 25% { transform: rotate(4deg) translateX(5px); } 50% { transform: rotate(1deg) translateX(0); } 75% { transform: rotate(-2deg) translateX(-5px); } 100% { transform: rotate(2deg) translateX(0); } }
@keyframes bs-boy { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-5px) rotate(-5deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-3px) rotate(5deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes bs-sparkles { 0% { opacity:0.3; background-size: 100% 100%; } 50% { opacity:0.8; background-size: 110% 110%; } 100% { opacity:0.4; background-size: 100% 100%; } }

.scn-meeting-a-black-boy {
  background: linear-gradient(180deg, #f9d482 0%, #e8b050 50%, #c8853a 100%),
              radial-gradient(ellipse at 30% 40%, #fcf2d0 0%, transparent 50%);
}
.scn-meeting-a-black-boy .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #fceab8 0%, #f9d482 40%, transparent 100%);
  animation: mbb-sky 12s ease-in-out infinite alternate;
}
.scn-meeting-a-black-boy .field {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #7a9a4a 0%, #4a6a2a 100%);
  border-radius: 60% 40% 0 0 / 30% 20% 0 0;
  box-shadow: inset 0 6px 20px rgba(0,0,0,0.3);
}
.scn-meeting-a-black-boy .house {
  position: absolute; bottom: 50%; left: 15%; width: 80px; height: 60px;
  background: linear-gradient(180deg, #c8a06a 0%, #a07840 100%);
  border-radius: 4px 4px 2px 2px;
  box-shadow: 2px 4px 8px rgba(0,0,0,0.4);
  animation: mbb-house 8s ease-in-out infinite;
}
.scn-meeting-a-black-boy .tree {
  position: absolute; bottom: 50%; left: 75%; width: 24px; height: 70px;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2a0a 100%);
  border-radius: 40% 40% 20% 20% / 80% 80% 20% 20%;
  box-shadow: 0 0 0 12px rgba(80,120,40,0.4);
}
.scn-meeting-a-black-boy .figure-boy {
  position: absolute; bottom: 40%; left: 30%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #704a2a 0%, #4a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: mbb-walk 5s ease-in-out infinite;
}
.scn-meeting-a-black-boy .figure-me {
  position: absolute; bottom: 40%; left: 60%; width: 20px; height: 42px;
  background: linear-gradient(180deg, #3a4a5a 0%, #1a2a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: mbb-walk 5s ease-in-out infinite reverse;
}
.scn-meeting-a-black-boy .grass {
  position: absolute; bottom: 35%; left: 0; right: 0; height: 8px;
  background: repeating-linear-gradient(90deg, #5a7a2a 0px 2px, transparent 2px 6px);
  filter: blur(1px);
  animation: mbb-grass 4s ease-in-out infinite alternate;
}
@keyframes mbb-sky   { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes mbb-house { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-3px) } }
@keyframes mbb-walk  { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(6px) rotate(2deg) } 50% { transform: translateX(12px) rotate(0deg) } 75% { transform: translateX(18px) rotate(-2deg) } 100% { transform: translateX(24px) rotate(0deg) } }
@keyframes mbb-grass { 0% { transform: translateX(0) } 100% { transform: translateX(4px) } }

.scn-providential-interposition {
  background: linear-gradient(180deg, #f2e8d0 0%, #dcc8a8 100%),
              radial-gradient(circle at 60% 30%, #fff8e8 0%, transparent 70%);
}
.scn-providential-interposition .wall {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #e8d8b8 0%, #c8b898 50%, #a89878 100%);
  animation: pi-wall 10s ease-in-out infinite alternate;
}
.scn-providential-interposition .window {
  position: absolute; top: 20%; left: 35%; width: 120px; height: 100px;
  background: linear-gradient(135deg, #fff8e0 0%, #e0d0b0 100%);
  border: 8px solid #8a7a5a;
  border-radius: 4px;
  box-shadow: 0 0 40px 20px rgba(255,240,200,0.5);
  animation: pi-window 6s ease-in-out infinite alternate;
}
.scn-providential-interposition .light-beam {
  position: absolute; top: 20%; left: 35%; width: 120px; height: 200px;
  background: linear-gradient(180deg, rgba(255,240,200,0.6) 0%, transparent 100%);
  clip-path: polygon(10% 0, 90% 0, 70% 100%, 30% 100%);
  animation: pi-beam 4s ease-in-out infinite alternate;
}
.scn-providential-interposition .figure {
  position: absolute; bottom: 25%; left: 45%; width: 28px; height: 80px;
  background: linear-gradient(180deg, #3a4a5a 0%, #1a2a3a 100%);
  border-radius: 50% 50% 40% 40% / 40% 40% 60% 60%;
  transform: rotate(5deg);
  animation: pi-figure 7s ease-in-out infinite;
}
.scn-providential-interposition .book {
  position: absolute; bottom: 22%; left: 42%; width: 24px; height: 30px;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%);
  border-radius: 2px;
  box-shadow: 2px 2px 4px rgba(0,0,0,0.3);
  animation: pi-book 5s ease-in-out infinite alternate;
}
.scn-providential-interposition .dust {
  position: absolute; top: 30%; left: 50%; width: 4px; height: 4px;
  background: radial-gradient(circle, rgba(255,240,200,0.8), transparent);
  border-radius: 50%;
  box-shadow: 20px 30px 0 2px rgba(255,240,200,0.4), -10px 60px 0 1px rgba(255,240,200,0.3);
  animation: pi-dust 12s linear infinite;
}
@keyframes pi-wall   { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.95 } }
@keyframes pi-window { 0% { box-shadow: 0 0 30px 10px rgba(255,240,200,0.4) } 50% { box-shadow: 0 0 50px 25px rgba(255,240,200,0.7) } 100% { box-shadow: 0 0 35px 15px rgba(255,240,200,0.5) } }
@keyframes pi-beam   { 0% { opacity:0.5 } 50% { opacity:0.8 } 100% { opacity:0.6 } }
@keyframes pi-figure { 0%,100% { transform: rotate(5deg) translateY(0) } 50% { transform: rotate(3deg) translateY(-4px) } }
@keyframes pi-book   { 0% { transform: rotate(0deg) } 100% { transform: rotate(6deg) } }
@keyframes pi-dust   { 0% { transform: translateY(0) scale(1); opacity:1 } 50% { transform: translateY(-30px) scale(1.5); opacity:0.6 } 100% { transform: translateY(-60px) scale(0.5); opacity:0 } }

.scn-mondles-dream-warning {
  background: linear-gradient(180deg, #3a4a6a 0%, #2a3a5a 30%, #1a2a4a 60%, #0a1a3a 100%),
              radial-gradient(ellipse at 50% 80%, #4a5a7a 0%, transparent 70%);
}
.scn-mondles-dream-warning .cabin-wall {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, #2a3a4a 0%, #3a4a5a 50%, #2a3a4a 100%);
  border-radius: 8px;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.6);
}
.scn-mondles-dream-warning .bunk {
  position: absolute; bottom: 25%; left: 20%; right: 20%; height: 30%;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 6px 6px 2px 2px;
  box-shadow: 0 -4px 8px rgba(0,0,0,0.5);
}
.scn-mondles-dream-warning .figure-sitting {
  position: absolute; bottom: 28%; left: 45%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform: rotate(-10deg);
  animation: mdw-sit 2s ease-in-out infinite alternate;
}
.scn-mondles-dream-warning .dawn-light {
  position: absolute; top: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, rgba(200,180,150,0.3) 0%, transparent 100%);
  animation: mdw-dawn 8s ease-in-out infinite alternate;
}
.scn-mondles-dream-warning .shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.6) 100%);
  animation: mdw-shadow 5s ease-in-out infinite alternate;
}
.scn-mondles-dream-warning .lamp {
  position: absolute; bottom: 35%; left: 55%; width: 10px; height: 14px;
  background: radial-gradient(circle, #c8a060 0%, #8a6a30 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 20px 8px rgba(200,160,96,0.4);
  animation: mdw-lamp 3s ease-in-out infinite;
}
.scn-mondles-dream-warning .blanket {
  position: absolute; bottom: 26%; left: 25%; right: 35%; height: 10%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 0 0;
  animation: mdw-blanket 4s ease-in-out infinite alternate;
}
@keyframes mdw-sit    { 0% { transform: rotate(-10deg) translateY(0) } 50% { transform: rotate(-8deg) translateY(-2px) } 100% { transform: rotate(-12deg) translateY(1px) } }
@keyframes mdw-dawn   { 0% { opacity:0.2 } 50% { opacity:0.5 } 100% { opacity:0.3 } }
@keyframes mdw-shadow { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes mdw-lamp   { 0% { box-shadow: 0 0 10px 4px rgba(200,160,96,0.3) } 50% { box-shadow: 0 0 25px 12px rgba(200,160,96,0.6) } 100% { box-shadow: 0 0 15px 6px rgba(200,160,96,0.4) } }
@keyframes mdw-blanket{ 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-2px) scaleY(1.02) } 100% { transform: translateY(1px) scaleY(0.98) } }

.scn-collision-with-lynne {
  background: linear-gradient(180deg, #f2e8c0 0%, #d8c08a 50%, #b8a070 100%),
              radial-gradient(ellipse at 50% 70%, #fcf0d0 0%, transparent 60%);
}
.scn-collision-with-lynne .sky-bright {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #fef8e0 0%, #f2e8c0 40%, transparent 100%);
  animation: cl-sky 8s ease-in-out infinite alternate;
}
.scn-collision-with-lynne .deck {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%);
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.4);
}
.scn-collision-with-lynne .ship-rail {
  position: absolute; bottom: 40%; left: 0; right: 0; height: 10px;
  background: linear-gradient(90deg, #6a5a3a 0%, #8a7a5a 50%, #6a5a3a 100%);
  border-radius: 2px;
  box-shadow: 0 -2px 4px rgba(0,0,0,0.3);
}
.scn-collision-with-lynne .figure-run {
  position: absolute; bottom: 35%; left: 20%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #a0855a 0%, #7a6040 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: cl-run 1.5s ease-in-out infinite;
}
.scn-collision-with-lynne .figure-cry {
  position: absolute; bottom: 35%; right: 30%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(20deg);
  animation: cl-cry 2s ease-in-out infinite alternate;
}
.scn-collision-with-lynne .wave-spray {
  position: absolute; bottom: 38%; left: 10%; right: 10%; height: 20px;
  background: linear-gradient(180deg, rgba(255,255,255,0.6) 0%, transparent 100%);
  filter: blur(4px);
  animation: cl-spray 0.8s ease-in-out infinite alternate;
}
.scn-collision-with-lynne .mast {
  position: absolute; bottom: 40%; left: 50%; width: 8px; height: 120px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  transform: translateX(-50%) rotate(-5deg);
  animation: cl-mast 3s ease-in-out infinite;
}
.scn-collision-with-lynne .sail-fill {
  position: absolute; bottom: 60%; left: 45%; width: 60px; height: 50px;
  background: linear-gradient(135deg, #fcf0d0 0%, #e8d0a0 100%);
  clip-path: polygon(0% 100%, 50% 0%, 100% 100%);
  animation: cl-sail 4s ease-in-out infinite alternate;
}
@keyframes cl-sky   { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.95 } }
@keyframes cl-run   { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(10px) rotate(5deg) } 50% { transform: translateX(20px) rotate(0deg) } 75% { transform: translateX(30px) rotate(-5deg) } 100% { transform: translateX(40px) rotate(0deg) } }
@keyframes cl-cry   { 0% { transform: rotate(20deg) } 50% { transform: rotate(25deg) } 100% { transform: rotate(18deg) } }
@keyframes cl-spray  { 0% { transform: translateY(0) scaleY(1); opacity:0.7 } 50% { transform: translateY(-5px) scaleY(1.5); opacity:1 } 100% { transform: translateY(0) scaleY(1); opacity:0.7 } }
@keyframes cl-mast   { 0%,100% { transform: translateX(-50%) rotate(-5deg) } 50% { transform: translateX(-50%) rotate(-8deg) } }
@keyframes cl-sail   { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.1) } 100% { transform: scaleX(0.9) } }

/* ===== spiritual-conflict (sc) ===== */
.scn-spiritual-conflict {
  background:
    linear-gradient(180deg, #1a1620 0%, #2a2430 30%, #1f1a28 70%, #12101a 100%),
    radial-gradient(ellipse at 70% 80%, rgba(80,60,100,0.3) 0%, transparent 60%);
}
.scn-spiritual-conflict .wall {
  position:absolute; inset:0 0 20% 0;
  background: linear-gradient(90deg, #1e1a26 0%, #2a2433 50%, #1e1a26 100%);
}
.scn-spiritual-conflict .cell-floor {
  position:absolute; bottom:0; left:0; right:0; height:20%;
  background: linear-gradient(180deg, #2a2430 0%, #1a1622 100%);
}
.scn-spiritual-conflict .window-light {
  position:absolute; top:15%; right:12%; width:40px; height:60px;
  background: radial-gradient(circle at center, #b09870 0%, #6a5a4a 70%, transparent 100%);
  border-radius:4% 4% 8% 8%; opacity:0.6;
  box-shadow: 0 0 30px 10px rgba(176,152,112,0.3), 0 0 60px 20px rgba(100,80,60,0.2);
  animation: sc-win-gl 6s ease-in-out infinite alternate;
}
.scn-spiritual-conflict .figure-kneeling {
  position:absolute; bottom:22%; left:35%; width:30px; height:60px;
  background: linear-gradient(180deg, #1a1a24 0%, #0e0e16 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sc-fig 8s ease-in-out infinite;
}
.scn-spiritual-conflict .chain {
  position:absolute; bottom:25%; left:38%; width:4px; height:20px;
  background: #4a3a3a; border-radius:10%; opacity:0.7;
  box-shadow: 0 4px 6px rgba(0,0,0,0.5);
  animation: sc-chain 4s ease-in-out infinite;
}
.scn-spiritual-conflict .shadow-move {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: radial-gradient(ellipse at 30% 100%, rgba(0,0,0,0.6) 0%, transparent 70%);
  animation: sc-shad 14s ease-in-out infinite alternate;
}
/* keyframes for sc */
@keyframes sc-win-gl { 0% { opacity:0.4; transform:scaleY(1); } 50% { opacity:0.8; transform:scaleY(1.08); } 100% { opacity:0.5; transform:scaleY(0.95); } }
@keyframes sc-fig { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 25% { transform: translateX(4px) translateY(-3px) rotate(2deg); } 50% { transform: translateX(-2px) translateY(2px) rotate(-1deg); } 75% { transform: translateX(6px) translateY(-1px) rotate(1deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes sc-chain { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(4px) rotate(4deg); } }
@keyframes sc-shad { 0% { opacity:0.7; } 50% { opacity:0.4; } 100% { opacity:0.8; } }

/* ===== seeking-godly-company (sg) ===== */
.scn-seeking-godly-company {
  background:
    linear-gradient(180deg, #f5e8d0 0%, #e6d5b8 50%, #d4bfa0 100%),
    radial-gradient(ellipse at 40% 20%, rgba(255,230,180,0.6) 0%, transparent 70%);
}
.scn-seeking-godly-company .room-bg {
  position:absolute; inset:0;
  background: linear-gradient(180deg, #f0e2cc 0%, #dccbb0 100%);
}
.scn-seeking-godly-company .windowsill {
  position:absolute; top:10%; left:20%; width:60px; height:8px;
  background: #c4b094; border-radius:4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.15);
}
.scn-seeking-godly-company .window-glow {
  position:absolute; top:4%; left:22%; width:50px; height:70px;
  background: linear-gradient(180deg, #ffedc0 0%, #fadc9a 40%, #e8b86a 100%);
  border-radius:2% 2% 8% 8%;
  box-shadow: 0 0 40px 20px rgba(255,235,180,0.5), 0 0 80px 30px rgba(240,200,150,0.3);
  animation: sg-glow 10s ease-in-out infinite alternate;
}
.scn-seeking-godly-company .figure-praying {
  position:absolute; bottom:20%; left:40%; width:24px; height:60px;
  background: linear-gradient(180deg, #4a3e2e 0%, #2a2218 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sg-pray 12s ease-in-out infinite;
}
.scn-seeking-godly-company .book-open {
  position:absolute; bottom:20%; left:50%; width:30px; height:12px;
  background: #6a5a3a; border-radius:50% 50% 10% 10%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: sg-book 8s ease-in-out infinite alternate;
}
.scn-seeking-godly-company .chair-back {
  position:absolute; bottom:18%; left:36%; width:10px; height:40px;
  background: #8a7a5a; border-radius:8%;
  box-shadow: 0 6px 10px rgba(0,0,0,0.2);
}
.scn-seeking-godly-company .dust-mote {
  position:absolute; top:20%; left:30%; width:4px; height:4px;
  background: rgba(255,220,180,0.8); border-radius:50%;
  filter: blur(2px);
  animation: sg-mote 18s linear infinite;
}
@keyframes sg-glow { 0% { opacity:0.6; transform:scaleX(1); } 50% { opacity:0.9; transform:scaleX(1.12) scaleY(1.05); } 100% { opacity:0.7; transform:scaleX(0.95); } }
@keyframes sg-pray { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 25% { transform: translateX(3px) translateY(-4px) rotate(3deg); } 50% { transform: translateX(-2px) translateY(0) rotate(-1deg); } 75% { transform: translateX(5px) translateY(-2px) rotate(2deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes sg-book { 0% { transform: rotate(0deg); } 50% { transform: rotate(5deg) translateX(2px); } 100% { transform: rotate(-3deg); } }
@keyframes sg-mote { 0% { transform: translateX(0) translateY(0) scale(1); opacity:0; } 10% { opacity:1; } 90% { opacity:1; } 100% { transform: translateX(80vw) translateY(-40px) scale(0.5); opacity:0; } }

/* ===== meeting-old-seafarer (mo) ===== */
.scn-meeting-old-seafarer {
  background:
    linear-gradient(180deg, #3a2a1a 0%, #5a4030 30%, #4a3525 70%, #2a1a10 100%),
    radial-gradient(ellipse at 60% 50%, rgba(180,120,60,0.4) 0%, transparent 60%);
}
.scn-meeting-old-seafarer .inn-wall {
  position:absolute; inset:0 0 10% 0;
  background: linear-gradient(90deg, #3a2a1a 0%, #5a4530 50%, #3a2a1a 100%);
}
.scn-meeting-old-seafarer .table-wood {
  position:absolute; bottom:8%; left:15%; right:15%; height:8%;
  background: #6a4a30; border-radius:20% 20% 4% 4%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
}
.scn-meeting-old-seafarer .lantern-glow {
  position:absolute; top:20%; left:50%; width:20px; height:30px;
  background: radial-gradient(circle at 50% 60%, #ffd090 0%, #c08040 60%, transparent 100%);
  border-radius:50%;
  box-shadow: 0 0 40px 15px rgba(200,140,60,0.5), 0 0 80px 30px rgba(160,110,40,0.3);
  animation: mo-lantern 5s ease-in-out infinite alternate;
}
.scn-meeting-old-seafarer .old-seafarer {
  position:absolute; bottom:16%; left:25%; width:28px; height:60px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mo-old 8s ease-in-out infinite;
}
.scn-meeting-old-seafarer .young-visitor {
  position:absolute; bottom:16%; right:25%; width:22px; height:56px;
  background: linear-gradient(180deg, #6a5a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mo-young 10s ease-in-out infinite;
}
.scn-meeting-old-seafarer .map-roll {
  position:absolute; bottom:12%; left:38%; width:30px; height:6px;
  background: #b09a70; border-radius:50%;
  transform: rotate(-15deg);
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: mo-map 14s linear infinite;
}
.scn-meeting-old-seafarer .tankard {
  position:absolute; bottom:9%; left:45%; width:10px; height:14px;
  background: #8a7a5a; border-radius:30% 30% 10% 10%;
  box-shadow: 0 3px 5px rgba(0,0,0,0.5);
  animation: mo-tank 6s ease-in-out infinite alternate;
}
@keyframes mo-lantern { 0% { transform:scale(1) rotate(0deg); opacity:0.8; } 50% { transform:scale(1.05) rotate(3deg); opacity:1; } 100% { transform:scale(0.95) rotate(-3deg); opacity:0.9; } }
@keyframes mo-old { 0%,100% { transform: translateX(0) translateY(0) rotate(0deg); } 50% { transform: translateX(-3px) translateY(-2px) rotate(2deg); } }
@keyframes mo-young { 0%,100% { transform: translateX(0) translateY(0) rotate(0deg); } 50% { transform: translateX(4px) translateY(-1px) rotate(-1deg); } }
@keyframes mo-map { 0% { transform: rotate(-15deg) translateX(0); } 50% { transform: rotate(-10deg) translateX(5px); } 100% { transform: rotate(-15deg) translateX(0); } }
@keyframes mo-tank { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(5deg); } 100% { transform: translateY(0) rotate(-3deg); } }

/* ===== meeting-dissenting-minister (md) ===== */
.scn-meeting-dissenting-minister {
  background:
    linear-gradient(180deg, #5a4a3a 0%, #7a6a5a 30%, #5a4a3a 70%, #3a2a1a 100%),
    radial-gradient(ellipse at 30% 30%, rgba(200,170,130,0.3) 0%, transparent 60%);
}
.scn-meeting-dissenting-minister .study-wall {
  position:absolute; inset:0 0 15% 0;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
}
.scn-meeting-dissenting-minister .desk-ledge {
  position:absolute; bottom:12%; left:10%; right:10%; height:6%;
  background: #5a4030; border-radius:10% 10% 4% 4%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-meeting-dissenting-minister .candle-light {
  position:absolute; top:20%; left:50%; width:14px; height:30px;
  background: radial-gradient(ellipse at 50% 0%, #ffe090 0%, #d09040 50%, transparent 100%);
  border-radius:50% 50% 8% 8%;
  box-shadow: 0 0 30px 12px rgba(220,160,80,0.5), 0 0 60px 25px rgba(180,120,60,0.3);
  animation: md-candle 4s ease-in-out infinite;
}
.scn-meeting-dissenting-minister .minister-figure {
  position:absolute; bottom:18%; left:20%; width:24px; height:64px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: md-min 10s ease-in-out infinite;
}
.scn-meeting-dissenting-minister .questioner-silhouette {
  position:absolute; bottom:18%; right:22%; width:20px; height:58px;
  background: #2a1a10;
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: md-ques 12s ease-in-out infinite;
}
.scn-meeting-dissenting-minister .book-shelf {
  position:absolute; top:10%; left:8%; width:12px; height:70px;
  background: #7a5a3a; border-radius:4%;
  box-shadow: 0 0 6px rgba(0,0,0,0.3);
}
.scn-meeting-dissenting-minister .parchment {
  position:absolute; bottom:14%; left:38%; width:20px; height:16px;
  background: #c8b090; border-radius:2% 4% 4% 2%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: md-parch 16s linear infinite;
}
@keyframes md-candle { 0%,100% { transform: scaleY(1) translateY(0); opacity:0.9; } 50% { transform: scaleY(1.08) translateY(-2px); opacity:1; } }
@keyframes md-min { 0%,100% { transform: translateX(0) translateY(0) rotate(0deg); } 50% { transform: translateX(2px) translateY(-3px) rotate(2deg); } }
@keyframes md-ques { 0%,100% { transform: translateX(0) translateY(0) rotate(0deg); } 50% { transform: translateX(-3px) translateY(-2px) rotate(-1deg); } }
@keyframes md-parch { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(4px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }

/* population-imagination */
.scn-population-imagination {
  background: linear-gradient(135deg, #1a1410 0%, #2a1e18 50%, #1e1612 100%), radial-gradient(ellipse at 50% 60%, #3a2a1e 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-population-imagination .wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #2a221c 0%, #1a1410 100%);
  animation: pi-wall 15s ease-in-out infinite alternate;
}
.scn-population-imagination .desk {
  position: absolute; bottom: 12%; left: 10%; right: 10%; height: 18%;
  background: linear-gradient(180deg, #4a3524 0%, #2a1e14 100%);
  border-radius: 4% 4% 0 0 / 8% 8% 0 0; box-shadow: 0 -6px 18px rgba(0,0,0,.6);
  animation: pi-desk 8s ease-in-out infinite;
}
.scn-population-imagination .book-stack {
  position: absolute; bottom: 26%; left: 30%; width: 12%; height: 14%;
  background: linear-gradient(90deg, #5e3a24 0%, #7a5038 30%, #5e3a24 100%);
  border-radius: 2px; box-shadow: 2px 4px 8px rgba(0,0,0,.5);
  animation: pi-books 10s ease-in-out infinite alternate;
}
.scn-population-imagination .candle {
  position: absolute; bottom: 30%; left: 52%; width: 8px; height: 40px;
  background: linear-gradient(180deg, #f0e0c0 0%, #c8a878 100%);
  border-radius: 4px 4px 2px 2px; box-shadow: inset -2px 0 6px rgba(0,0,0,.4);
  animation: pi-candle 6s ease-in-out infinite;
}
.scn-population-imagination .flame {
  position: absolute; bottom: 56%; left: 52.5%; width: 12px; height: 20px;
  background: radial-gradient(circle at 50% 60%, #ffd060 0%, #ff8020 40%, transparent 70%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  box-shadow: 0 0 30px 10px #ff8020, 0 0 60px 20px rgba(255,128,32,.4);
  animation: pi-flame 2s ease-in-out infinite alternate;
}
.scn-population-imagination .figure-profile {
  position: absolute; bottom: 16%; left: 15%; width: 12%; height: 28%;
  background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%);
  border-radius: 70% 40% 50% 50% / 90% 70% 50% 50%;
  transform-origin: bottom center;
  animation: pi-figure 5s ease-in-out infinite;
}
.scn-population-imagination .globe {
  position: absolute; bottom: 20%; right: 20%; width: 14%; height: 14%;
  background: radial-gradient(circle at 35% 35%, #5e7a5e 0%, #3a4a3a 50%, #1a2a1a 100%);
  border-radius: 50%; box-shadow: 0 6px 12px rgba(0,0,0,.5);
  animation: pi-globe 20s linear infinite;
}
@keyframes pi-wall { 0% { opacity: .9 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes pi-desk { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes pi-books { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes pi-candle { 0%,100% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-1px) scaleY(1.02) } }
@keyframes pi-flame { 0% { transform: scaleX(.9) scaleY(.85); opacity: .9 } 50% { transform: scaleX(1) scaleY(1); opacity: 1 } 100% { transform: scaleX(.95) scaleY(.9); opacity: .92 } }
@keyframes pi-figure { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(2px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes pi-globe { 0% { transform: rotate(0deg) } 100% { transform: rotate(360deg) } }

/* final-reflection */
.scn-final-reflection {
  background: linear-gradient(180deg, #1e1612 0%, #2a201a 30%, #1a120e 100%), radial-gradient(ellipse at 40% 70%, #3a2820 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-final-reflection .shelf-back {
  position: absolute; top: 10%; left: 5%; right: 5%; bottom: 40%;
  background: linear-gradient(180deg, #3a2a1e 0%, #2a1e14 100%);
  border-radius: 2px; box-shadow: inset 0 4px 12px rgba(0,0,0,.5);
  animation: fr-shelf 12s ease-in-out infinite alternate;
}
.scn-final-reflection .armchair {
  position: absolute; bottom: 10%; left: 20%; right: 20%; height: 30%;
  background: linear-gradient(180deg, #5e3a24 0%, #3a2216 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%;
  box-shadow: 0 -8px 20px rgba(0,0,0,.5);
  animation: fr-chair 8s ease-in-out infinite;
}
.scn-final-reflection .table-lamp {
  position: absolute; bottom: 36%; left: 35%; width: 6%; height: 12%;
  background: linear-gradient(180deg, #c8a878 0%, #8a6a48 100%);
  border-radius: 4px 4px 0 0; box-shadow: inset -2px 0 6px rgba(0,0,0,.4);
  animation: fr-lamp 7s ease-in-out infinite;
}
.scn-final-reflection .lamp-glow {
  position: absolute; bottom: 44%; left: 33%; width: 10%; height: 10%;
  background: radial-gradient(circle, #ffd060 0%, #ff8020 30%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 15px #ff8020, 0 0 80px 30px rgba(255,128,32,.3);
  animation: fr-glow 3s ease-in-out infinite alternate;
}
.scn-final-reflection .figure-sitting {
  position: absolute; bottom: 16%; left: 30%; width: 14%; height: 24%;
  background: linear-gradient(180deg, #1e1612 0%, #0e0a08 100%);
  border-radius: 40% 40% 30% 30% / 70% 70% 40% 40%;
  transform-origin: bottom center;
  animation: fr-figure 6s ease-in-out infinite;
}
.scn-final-reflection .open-book {
  position: absolute; bottom: 14%; left: 38%; width: 20%; height: 10%;
  background: linear-gradient(180deg, #f0e0c8 0%, #d4c0a8 100%);
  border-radius: 4% 4% 2% 2% / 20% 20% 10% 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,.4);
  animation: fr-book 10s ease-in-out infinite alternate;
}
.scn-final-reflection .quill {
  position: absolute; bottom: 20%; right: 32%; width: 4px; height: 20px;
  background: linear-gradient(180deg, #e0d0c0 0%, #b0a090 100%);
  border-radius: 2px 2px 0 0; transform-origin: bottom center;
  animation: fr-quill 4s ease-in-out infinite;
}
@keyframes fr-shelf { 0% { opacity: .9 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes fr-chair { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-3px) } }
@keyframes fr-lamp { 0%,100% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-1px) scaleY(1.02) } }
@keyframes fr-glow { 0% { opacity: .8; transform: scale(.95) } 50% { opacity: 1; transform: scale(1.05) } 100% { opacity: .85; transform: scale(1) } }
@keyframes fr-figure { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(1px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes fr-book { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-2px) rotate(2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes fr-quill { 0%,100% { transform: rotate(-10deg) } 50% { transform: rotate(10deg) } }

/* lesson-of-providence */
.scn-lesson-of-providence {
  background: linear-gradient(180deg, #14101a 0%, #1a1422 50%, #0e0a12 100%), radial-gradient(ellipse at 50% 80%, #2a1e2a 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-lesson-of-providence .room-wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #1e1822 0%, #120e16 100%);
  animation: lp-wall 14s ease-in-out infinite alternate;
}
.scn-lesson-of-providence .window-frame {
  position: absolute; top: 12%; left: 20%; right: 20%; bottom: 40%;
  background: linear-gradient(180deg, #3a2a3a 0%, #2a1e2a 100%);
  border-radius: 10% 10% 4% 4% / 20% 20% 8% 8%;
  box-shadow: 0 0 30px rgba(0,0,0,.6);
  animation: lp-frame 9s ease-in-out infinite;
}
.scn-lesson-of-providence .pane {
  position: absolute; top: 14%; left: 22%; right: 22%; bottom: 42%;
  background: linear-gradient(180deg, #1a2030 0%, #0e1420 100%);
  border-radius: 8% 8% 3% 3% / 16% 16% 6% 6%;
  opacity: .8;
  animation: lp-pane 12s ease-in-out infinite alternate;
}
.scn-lesson-of-providence .outside-sky {
  position: absolute; top: 14%; left: 23%; right: 23%; bottom: 46%;
  background: linear-gradient(180deg, #2a3040 0%, #1a2030 50%, #0e141e 100%);
  border-radius: 6% 6% 2% 2%;
  animation: lp-sky 20s ease-in-out infinite;
}
.scn-lesson-of-providence .outside-trees {
  position: absolute; top: 56%; left: 18%; right: 18%; bottom: 42%;
  background: 
    radial-gradient(ellipse 20% 80% at 30% 100%, #1a2a1a 0%, transparent 70%),
    radial-gradient(ellipse 15% 60% at 50% 100%, #1a2a1a 0%, transparent 70%),
    radial-gradient(ellipse 25% 90% at 70% 100%, #1a2a1a 0%, transparent 70%);
  background-size: 30% 100%, 25% 100%, 35% 100%;
  background-repeat: no-repeat;
  background-position: 20% 100%, 50% 100%, 70% 100%;
  border-radius: 50%;
  animation: lp-trees 15s ease-in-out infinite alternate;
}
.scn-lesson-of-providence .figure-standing {
  position: absolute; bottom: 16%; left: 40%; width: 10%; height: 32%;
  background: linear-gradient(180deg, #1e1822 0%, #0e0a12 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lp-figure 6s ease-in-out infinite;
}
.scn-lesson-of-providence .ledge {
  position: absolute; bottom: 14%; left: 15%; right: 15%; height: 4%;
  background: linear-gradient(180deg, #3a2a3a 0%, #2a1e2a 100%);
  border-radius: 2px; box-shadow: 0 -4px 8px rgba(0,0,0,.5);
  animation: lp-ledge 10s ease-in-out infinite;
}
@keyframes lp-wall { 0% { opacity: .9 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes lp-frame { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes lp-pane { 0% { opacity: .75 } 50% { opacity: .85 } 100% { opacity: .7 } }
@keyframes lp-sky { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes lp-trees { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(.98) } }
@keyframes lp-figure { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(2px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes lp-ledge { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }

.scn-food-safety-ritual {
  background: linear-gradient(180deg, #f5e6c8 0%, #d4b88a 60%, #c9a06a 100%),
              radial-gradient(ellipse at 40% 20%, #fff8e0 0%, transparent 60%);
}
.scn-food-safety-ritual .wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #e8d5b0 0%, #cfb48a 100%); box-shadow: inset 0 -4px 8px rgba(0,0,0,0.1); }
.scn-food-safety-ritual .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #b8976a 0%, #9a7b52 100%); border-radius: 10% 10% 0 0 / 5% 5% 0 0; }
.scn-food-safety-ritual .table { position:absolute; bottom:18%; left:50%; width:120px; height:40px; transform:translateX(-50%); background: linear-gradient(180deg, #7a5c3a 0%, #5a3f22 100%); border-radius: 4px; box-shadow: 0 6px 12px rgba(0,0,0,0.3); animation: fsr-table 8s ease-in-out infinite; }
.scn-food-safety-ritual .seller { position:absolute; bottom:25%; left:38%; width:30px; height:70px; background: linear-gradient(180deg, #8a6e4a 0%, #5a452e 100%); border-radius: 40% 40% 35% 35% / 55% 55% 45% 45%; transform-origin: bottom center; animation: fsr-sway 6s ease-in-out infinite; }
.scn-food-safety-ritual .buyer { position:absolute; bottom:25%; right:38%; width:28px; height:68px; background: linear-gradient(180deg, #7a5e3e 0%, #4a3520 100%); border-radius: 40% 40% 35% 35% / 55% 55% 45% 45%; transform-origin: bottom center; animation: fsr-sway 7s ease-in-out infinite 0.5s; }
.scn-food-safety-ritual .food { position:absolute; bottom:23%; left:50%; width:20px; height:15px; transform:translateX(-50%); background: radial-gradient(circle at 30% 30%, #c09a60 0%, #8a6a30 100%); border-radius: 50%; box-shadow: 0 2px 6px rgba(0,0,0,0.2); animation: fsr-food 4s ease-in-out infinite alternate; }
.scn-food-safety-ritual .light-shaft { position:absolute; top:0; left:30%; width:40%; height:100%; background: linear-gradient(180deg, rgba(255,240,200,0.4) 0%, transparent 70%); filter: blur(12px); animation: fsr-light 9s ease-in-out infinite alternate; }
@keyframes fsr-table { 0%,100% { transform:translateX(-50%) translateY(0); } 50% { transform:translateX(-50%) translateY(-2px); } }
@keyframes fsr-sway { 0%,100% { transform: rotate(-1deg); } 50% { transform: rotate(1deg); } }
@keyframes fsr-food { 0% { transform:translateX(-50%) scale(1); opacity:0.9; } 50% { transform:translateX(-50%) scale(1.05); opacity:1; } 100% { transform:translateX(-50%) scale(1); opacity:0.9; } }
@keyframes fsr-light { 0% { opacity:0.3; transform: scaleY(0.95); } 50% { opacity:0.6; transform: scaleY(1.05); } 100% { opacity:0.4; transform: scaleY(1); } }

.scn-ominous-snakes {
  background: linear-gradient(180deg, #1a1428 0%, #2c1f3a 40%, #1f1028 100%),
              radial-gradient(ellipse at 50% 70%, #3a2848 0%, transparent 60%);
}
.scn-ominous-snakes .room-bg { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #2c1f3a 0%, #1a1428 100%); box-shadow: inset 0 6px 20px rgba(0,0,0,0.6); }
.scn-ominous-snakes .bed { position:absolute; bottom:20%; left:50%; width:140px; height:60px; transform:translateX(-50%); background: linear-gradient(180deg, #4a3a2a 0%, #2a1e14 100%); border-radius: 8px 8px 20px 20px; box-shadow: 0 8px 16px rgba(0,0,0,0.5); animation: os-bed 12s ease-in-out infinite; }
.scn-ominous-snakes .mother-figure { position:absolute; bottom:28%; left:32%; width:32px; height:50px; background: linear-gradient(180deg, #3a2a1e 0%, #1a0e08 100%); border-radius: 45% 45% 40% 40% / 55% 55% 45% 45%; transform-origin: bottom center; animation: os-figure 5s ease-in-out infinite; }
.scn-ominous-snakes .child-figure { position:absolute; bottom:28%; left:42%; width:22px; height:38px; background: linear-gradient(180deg, #3a2a1e 0%, #1a0e08 100%); border-radius: 45% 45% 40% 40% / 55% 55% 45% 45%; transform-origin: bottom center; animation: os-figure 5s ease-in-out infinite 0.3s; }
.scn-ominous-snakes .snake-1 { position:absolute; bottom:15%; left:20%; width:80px; height:8px; background: linear-gradient(90deg, #4a3a2a 0%, #6a4a3a 30%, #4a3a2a 100%); border-radius: 50%; filter: blur(1px); transform-origin: left center; animation: os-slither 7s ease-in-out infinite; }
.scn-ominous-snakes .snake-2 { position:absolute; bottom:22%; right:15%; width:60px; height:7px; background: linear-gradient(90deg, #4a3a2a 0%, #5a4030 40%, #4a3a2a 100%); border-radius: 50%; filter: blur(1px); transform-origin: right center; animation: os-slither 9s ease-in-out infinite 1s; }
.scn-ominous-snakes .candle-glow { position:absolute; top:15%; left:15%; width:30px; height:30px; background: radial-gradient(circle, #ffa060 0%, #ff8030 40%, transparent 70%); box-shadow: 0 0 40px 20px rgba(255,160,96,0.3); animation: os-flicker 2s ease-in-out infinite alternate; }
@keyframes os-bed { 0%,100% { transform:translateX(-50%) translateY(0); } 50% { transform:translateX(-50%) translateY(-3px); } }
@keyframes os-figure { 0%,100% { transform: rotate(0deg) scaleY(1); } 25% { transform: rotate(-2deg) scaleY(1.02); } 75% { transform: rotate(2deg) scaleY(0.98); } }
@keyframes os-slither { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(10px) rotate(5deg); } 50% { transform: translateX(-5px) rotate(-3deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes os-flicker { 0% { opacity:0.6; transform: scale(1); } 50% { opacity:0.9; transform: scale(1.1); } 100% { opacity:0.7; transform: scale(0.95); } }

.scn-poisonous-snake-omen {
  background: linear-gradient(180deg, #87ceeb 0%, #b0d4f0 30%, #f5e6c0 70%, #d4b88a 100%),
              radial-gradient(ellipse at 60% 100%, #fff8e0 0%, transparent 50%);
}
.scn-poisonous-snake-omen .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #a0c8e8 0%, #c8e0f0 100%); animation: pso-sky 15s ease-in-out infinite alternate; }
.scn-poisonous-snake-omen .road { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #c8b090 0%, #a08860 100%); clip-path: polygon(0% 100%, 100% 100%, 90% 0%, 10% 0%); box-shadow: inset 0 8px 20px rgba(0,0,0,0.2); }
.scn-poisonous-snake-omen .figure { position:absolute; bottom:25%; left:50%; width:30px; height:80px; transform:translateX(-50%); background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 45% 45% 35% 35% / 55% 55% 45% 45%; box-shadow: 0 4px 12px rgba(0,0,0,0.4); animation: pso-stand 6s ease-in-out infinite; }
.scn-poisonous-snake-omen .snake { position:absolute; bottom:20%; left:48%; width:100px; height:10px; background: linear-gradient(90deg, #4a5a3a 0%, #6a7a4a 50%, #4a5a3a 100%); border-radius: 50%; transform-origin: left center; filter: blur(1px); animation: pso-slither 4s ease-in-out infinite; }
.scn-poisonous-snake-omen .shadow-figure { position:absolute; bottom:25%; left:52%; width:30px; height:80px; background: linear-gradient(180deg, rgba(0,0,0,0.4) 0%, rgba(0,0,0,0.2) 100%); border-radius: 45% 45% 35% 35% / 55% 55% 45% 45%; transform: skewX(10deg); opacity:0.4; animation: pso-shadow 6s ease-in-out infinite; }
.scn-poisonous-snake-omen .shadow-snake { position:absolute; bottom:18%; left:50%; width:100px; height:10px; background: linear-gradient(90deg, rgba(0,0,0,0.3) 0%, rgba(0,0,0,0.15) 100%); border-radius: 50%; transform: skewX(10deg); opacity:0.3; animation: pso-shadow-slither 4s ease-in-out infinite; }
@keyframes pso-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes pso-stand { 0%,100% { transform:translateX(-50%) translateY(0); } 50% { transform:translateX(-50%) translateY(-3px) rotate(1deg); } }
@keyframes pso-slither { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(15px) rotate(-5deg); } 50% { transform: translateX(5px) rotate(3deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes pso-shadow { 0%,100% { transform: skewX(10deg) translateY(0); } 50% { transform: skewX(10deg) translateY(-2px); } }
@keyframes pso-shadow-slither { 0% { transform: skewX(10deg) translateX(0); } 25% { transform: skewX(10deg) translateX(12px); } 50% { transform: skewX(10deg) translateX(4px); } 100% { transform: skewX(10deg) translateX(0); } }

.scn-analogy-with-jews {
  background: linear-gradient(180deg, #f0e4d0 0%, #d8c8a8 50%, #c8b090 100%),
              radial-gradient(ellipse at 30% 10%, #fff8ee 0%, transparent 60%);
}
.scn-analogy-with-jews .wall-bg { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #d8c8a8 0%, #c0b090 100%); box-shadow: inset 0 -6px 12px rgba(0,0,0,0.1); }
.scn-analogy-with-jews .desk { position:absolute; bottom:15%; left:30%; width:120px; height:50px; background: linear-gradient(180deg, #6a5030 0%, #4a3820 100%); border-radius: 6px; box-shadow: 0 8px 16px rgba(0,0,0,0.3); animation: aj-desk 10s ease-in-out infinite; }
.scn-analogy-with-jews .chair { position:absolute; bottom:18%; left:35%; width:50px; height:60px; background: linear-gradient(180deg, #5a4030 0%, #3a2a1a 100%); border-radius: 20% 20% 40% 40% / 10% 10% 50% 50%; box-shadow: 0 6px 10px rgba(0,0,0,0.2); transform-origin: bottom center; animation: aj-chair 8s ease-in-out infinite; }
.scn-analogy-with-jews .figure-writer { position:absolute; bottom:22%; left:37%; width:28px; height:60px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1e14 100%); border-radius: 45% 45% 35% 35% / 55% 55% 45% 45%; transform-origin: bottom center; animation: aj-writer 6s ease-in-out infinite 0.5s; }
.scn-analogy-with-jews .paper { position:absolute; bottom:18%; left:55%; width:40px; height:50px; background: linear-gradient(180deg, #f0e8d8 0%, #ddd0b8 100%); border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.1); transform: rotate(5deg); animation: aj-paper 9s ease-in-out infinite; }
.scn-analogy-with-jews .inkwell { position:absolute; bottom:20%; left:52%; width:12px; height:15px; background: radial-gradient(circle at 50% 30%, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50%; box-shadow: 0 2px 4px rgba(0,0,0,0.3); animation: aj-ink 7s ease-in-out infinite; }
.scn-analogy-with-jews .window-light { position:absolute; top:10%; left:15%; width:60px; height:80px; background: linear-gradient(135deg, rgba(255,255,220,0.5) 0%, transparent 70%); filter: blur(8px); animation: aj-light 12s ease-in-out infinite alternate; }
@keyframes aj-desk { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes aj-chair { 0%,100% { transform: rotate(0deg); } 25% { transform: rotate(-1deg); } 75% { transform: rotate(1deg); } }
@keyframes aj-writer { 0%,100% { transform: rotate(0deg) translateY(0); } 33% { transform: rotate(2deg) translateY(-2px); } 66% { transform: rotate(-1deg) translateY(-1px); } }
@keyframes aj-paper { 0% { transform: rotate(5deg) scale(1); } 50% { transform: rotate(6deg) scale(1.02); } 100% { transform: rotate(4deg) scale(1); } }
@keyframes aj-ink { 0% { transform: scale(1); opacity:0.9; } 50% { transform: scale(1.1); opacity:1; } 100% { transform: scale(0.95); opacity:0.9; } }
@keyframes aj-light { 0% { opacity:0.3; transform: scaleX(0.9); } 50% { opacity:0.6; transform: scaleX(1.1); } 100% { opacity:0.4; transform: scaleX(1); } }

/* essaka-vale */
.scn-essaka-vale {
  background: linear-gradient(180deg, #f0d8a0 0%, #d4b86a 30%, #9a8a50 60%, #7a6a3a 100%),
              radial-gradient(ellipse at 50% 20%, #fce8b0 0%, transparent 70%);
}
.scn-essaka-vale .sky    { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #b8d4f0 0%, #e8f0d8 100%); animation: ev-sky 15s ease-in-out infinite alternate; }
.scn-essaka-vale .sun    { position:absolute; top:8%; right:20%; width:40px; height:40px; background: radial-gradient(circle, #ffd080 0%, #f0a030 100%); border-radius:50%; box-shadow: 0 0 60px 30px rgba(255,200,80,0.5); animation: ev-sun 20s linear infinite; }
.scn-essaka-vale .hills  { position:absolute; bottom:30%; left:0; right:0; height:20%; background: linear-gradient(180deg, #6a7a4a 0%, #4a5a2a 100%); border-radius: 60% 40% 0 0 / 80% 60% 0 0; box-shadow: inset 0 -10px 30px rgba(0,0,0,0.3); animation: ev-hills 12s ease-in-out infinite; }
.scn-essaka-vale .hut-a  { position:absolute; bottom:28%; left:25%; width:70px; height:50px; background: linear-gradient(180deg, #c0a060 0%, #8a6a30 100%); border-radius: 30% 30% 10% 10%; box-shadow: 2px 4px 10px rgba(0,0,0,0.4); transform: scaleX(1.1); animation: ev-hut 8s ease-in-out infinite alternate; }
.scn-essaka-vale .hut-b  { position:absolute; bottom:27%; right:20%; width:60px; height:45px; background: linear-gradient(180deg, #b89050 0%, #7a5a20 100%); border-radius: 30% 30% 10% 10%; box-shadow: 2px 4px 8px rgba(0,0,0,0.3); animation: ev-hut 9s ease-in-out infinite alternate-reverse; }
.scn-essaka-vale .tree   { position:absolute; bottom:32%; left:55%; width:20px; height:70px; background: linear-gradient(180deg, #5a3a1a 0%, #3a2a0a 100%); border-radius: 20% 20% 10% 10%; transform-origin: bottom center; animation: ev-tree 10s ease-in-out infinite; }
.scn-essaka-vale .path   { position:absolute; bottom:0; left:10%; right:10%; height:28%; background: linear-gradient(180deg, #b0a060 0%, #9a8a50 50%, #7a6a3a 100%); border-radius: 40% 60% 0 0 / 60% 40% 0 0; animation: ev-path 6s ease-in-out infinite; }
.scn-essaka-vale .cloud  { position:absolute; top:12%; left:10%; width:90px; height:20px; background: linear-gradient(180deg, rgba(255,255,240,0.6) 0%, rgba(255,255,240,0.1) 100%); border-radius:50%; filter: blur(5px); animation: ev-drift 40s linear infinite; }
@keyframes ev-sky    { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes ev-sun    { 0% { transform: translate(0,0) scale(1) } 50% { transform: translate(10px,-5px) scale(1.05) } 100% { transform: translate(0,0) scale(1) } }
@keyframes ev-hills  { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(0) } }
@keyframes ev-hut    { 0% { transform: scaleX(1.1) translateY(0) } 50% { transform: scaleX(1.12) translateY(-2px) } 100% { transform: scaleX(1.1) translateY(0) } }
@keyframes ev-tree   { 0% { transform: rotate(-1deg) } 25% { transform: rotate(1deg) } 50% { transform: rotate(-2deg) } 75% { transform: rotate(2deg) } 100% { transform: rotate(-1deg) } }
@keyframes ev-path   { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes ev-drift  { 0% { transform: translateX(-30px) } 100% { transform: translateX(120vw) } }

/* simple-government */
.scn-simple-government {
  background: linear-gradient(180deg, #e8d0a0 0%, #d4b070 40%, #b89050 80%, #a07840 100%),
              radial-gradient(ellipse at 30% 70%, #f0e0c0 0%, transparent 60%);
}
.scn-simple-government .roof       { position:absolute; top:0; left:15%; right:15%; height:30%; background: linear-gradient(180deg, #5a3a1a 0%, #3a2a0a 100%); border-radius: 20% 20% 0 0; box-shadow: 0 8px 20px rgba(0,0,0,0.5); animation: sg-roof 10s ease-in-out infinite alternate; }
.scn-simple-government .pillar-l   { position:absolute; bottom:20%; left:20%; width:12px; height:50%; background: linear-gradient(180deg, #8a6a30 0%, #5a3a10 100%); border-radius: 4px; box-shadow: 2px 0 6px rgba(0,0,0,0.3); }
.scn-simple-government .pillar-r   { position:absolute; bottom:20%; right:20%; width:12px; height:50%; background: linear-gradient(180deg, #8a6a30 0%, #5a3a10 100%); border-radius: 4px; box-shadow: -2px 0 6px rgba(0,0,0,0.3); }
.scn-simple-government .floor      { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #b89850 0%, #7a5a20 100%); border-radius: 10% 10% 0 0; }
.scn-simple-government .elder-a    { position:absolute; bottom:10%; left:30%; width:20px; height:45px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom; animation: sg-figure 6s ease-in-out infinite; }
.scn-simple-government .elder-b    { position:absolute; bottom:10%; right:30%; width:18px; height:40px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transformation-origin: bottom; animation: sg-figure 7s ease-in-out infinite 0.5s; }
.scn-simple-government .light-beam { position:absolute; top:5%; left:40%; width:20%; height:80%; background: linear-gradient(180deg, rgba(255,240,200,0.4) 0%, rgba(255,240,200,0) 100%); transform: skewX(-15deg); animation: sg-beam 8s ease-in-out infinite alternate; }
@keyframes sg-roof   { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes sg-figure { 0% { transform: rotate(0deg) } 25% { transform: rotate(2deg) } 50% { transform: rotate(-1deg) } 75% { transform: rotate(1deg) } 100% { transform: rotate(0deg) } }
@keyframes sg-beam   { 0% { opacity:0.6 } 50% { opacity:1 } 100% { opacity:0.5 } }

/* embrenche-mark */
.scn-embrenche-mark {
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 50%, #1a0a00 100%),
              radial-gradient(ellipse at 50% 60%, #b06030 0%, transparent 70%);
}
.scn-embrenche-mark .bg-wall  { position:absolute; inset:0; background: linear-gradient(135deg, #4a3828 0%, #2a1a0a 100%); animation: em-wall 12s ease-in-out infinite alternate; }
.scn-embrenche-mark .head-sil { position:absolute; bottom:35%; left:30%; width:30px; height:36px; background: #1a0a00; border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; box-shadow: 0 0 20px rgba(0,0,0,0.8); animation: em-head 8s ease-in-out infinite; }
.scn-embrenche-mark .hand     { position:absolute; bottom:38%; left:38%; width:24px; height:14px; background: #3a2010; border-radius: 50% 50% 30% 30%; transform: rotate(20deg); animation: em-hand 5s ease-in-out infinite; }
.scn-embrenche-mark .blade    { position:absolute; bottom:42%; left:42%; width:2px; height:16px; background: #c0b0a0; border-radius: 1px; box-shadow: 0 0 4px rgba(200,180,160,0.6); animation: em-blade 3s ease-in-out infinite; }
.scn-embrenche-mark .flame    { position:absolute; bottom:45%; left:35%; width:8px; height:16px; background: radial-gradient(ellipse at bottom, #ff8030 0%, #ff4010 50%, transparent 100%); border-radius: 50% 50% 30% 30%; animation: em-flame 1.5s ease-in-out infinite alternate; }
.scn-embrenche-mark .glow     { position:absolute; bottom:40%; left:30%; width:40px; height:40px; background: radial-gradient(circle, rgba(255,120,40,0.4) 0%, transparent 70%); animation: em-glow 2s ease-in-out infinite alternate; }
@keyframes em-wall  { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes em-head  { 0% { transform: translate(0,0) rotate(-2deg) } 50% { transform: translate(2px,-1px) rotate(0deg) } 100% { transform: translate(0,0) rotate(2deg) } }
@keyframes em-hand  { 0% { transform: rotate(15deg) } 50% { transform: rotate(25deg) } 100% { transform: rotate(15deg) } }
@keyframes em-blade { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes em-flame { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.3) } 100% { transform: scaleY(1) } }
@keyframes em-glow  { 0% { opacity:0.3 } 50% { opacity:0.6 } 100% { opacity:0.3 } }

/* justice-and-retaliation */
.scn-justice-and-retaliation {
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 50%, #1a0a00 100%),
              radial-gradient(ellipse at 40% 60%, #a07030 0%, transparent 70%);
}
.scn-justice-and-retaliation .chamber   { position:absolute; inset:0; background: linear-gradient(135deg, #4a3828 0%, #2a1a0a 100%); animation: jr-chamber 10s ease-in-out infinite alternate; }
.scn-justice-and-retaliation .seat      { position:absolute; bottom:20%; left:40%; width:40px; height:30px; background: #5a3a1a; border-radius: 10% 10% 0 0; box-shadow: 0 4px 10px rgba(0,0,0,0.6); animation: jr-seat 8s ease-in-out infinite; }
.scn-justice-and-retaliation .accused   { position:absolute; bottom:18%; left:25%; width:20px; height:48px; background: #1a0a00; border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform: skewX(-5deg); animation: jr-accused 4s ease-in-out infinite; }
.scn-justice-and-retaliation .judge     { position:absolute; bottom:22%; right:25%; width:22px; height:50px; background: #3a2a1a; border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform: skewX(5deg); animation: jr-judge 5s ease-in-out infinite; }
.scn-justice-and-retaliation .shadow-a  { position:absolute; bottom:10%; left:15%; width:60px; height:20px; background: rgba(0,0,0,0.5); border-radius: 50%; filter: blur(4px); animation: jr-shadow 7s ease-in-out infinite; }
.scn-justice-and-retaliation .shadow-b  { position:absolute; bottom:12%; right:15%; width:50px; height:18px; background: rgba(0,0,0,0.4); border-radius: 50%; filter: blur(3px); animation: jr-shadow 8s ease-in-out infinite reverse; }
.scn-justice-and-retaliation .weapon    { position:absolute; bottom:25%; left:35%; width:4px; height:20px; background: #a08868; border-radius: 2px; transform: rotate(15deg); animation: jr-weapon 3s ease-in-out infinite; }
.scn-justice-and-retaliation .spark     { position:absolute; bottom:30%; left:37%; width:6px; height:6px; background: #ffa040; border-radius:50%; box-shadow: 0 0 12px 3px rgba(255,160,64,0.6); animation: jr-spark 2s ease-in-out infinite alternate; }
@keyframes jr-chamber { 0% { opacity:0.95 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes jr-seat    { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes jr-accused { 0% { transform: translateX(0) rotate(-3deg) } 25% { transform: translateX(4px) rotate(0deg) } 50% { transform: translateX(8px) rotate(3deg) } 75% { transform: translateX(4px) rotate(0deg) } 100% { transform: translateX(0) rotate(-3deg) } }
@keyframes jr-judge   { 0% { transform: translateX(0) rotate(2deg) } 25% { transform: translateX(-3px) rotate(-1deg) } 50% { transform: translateX(-6px) rotate(-2deg) } 75% { transform: translateX(-3px) rotate(-1deg) } 100% { transform: translateX(0) rotate(2deg) } }
@keyframes jr-shadow  { 0% { transform: scale(1) } 50% { transform: scale(1.1) } 100% { transform: scale(1) } }
@keyframes jr-weapon  { 0% { transform: rotate(10deg) } 50% { transform: rotate(20deg) } 100% { transform: rotate(10deg) } }
@keyframes jr-spark   { 0% { opacity:0.4 } 50% { opacity:1 } 100% { opacity:0.4 } }

.scn-adultery-punishment {
  background: linear-gradient(135deg, #f5e6c8 0%, #c9a87c 40%, #8b6f4a 100%), radial-gradient(ellipse at 80% 30%, #f8d5a0 10%, transparent 50%);
}
.scn-adultery-punishment .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #6b4e2e 0%, #4f371e 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.3);
}
.scn-adultery-punishment .wall {
  position: absolute; top: 0; left: 0; right: 0; bottom: 35%;
  background: linear-gradient(180deg, #e8d3b0 0%, #c9a87c 100%);
}
.scn-adultery-punishment .window {
  position: absolute; top: 12%; left: 50%; width: 70px; height: 90px;
  transform: translateX(-50%);
  background: radial-gradient(circle at 50% 70%, #fef8e0 0%, #e8d28b 60%, #8b6f4a 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 20px #f0d080, 0 0 30px rgba(240,208,128,0.4);
  animation: adp-window 6s ease-in-out infinite alternate;
}
.scn-adultery-punishment .judge {
  position: absolute; bottom: 35%; left: 20%; width: 50px; height: 75px;
  background: linear-gradient(180deg, #5e3a1e 0%, #3a2010 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: adp-judge 4s ease-in-out infinite;
}
.scn-adultery-punishment .accused {
  position: absolute; bottom: 35%; left: 55%; width: 45px; height: 70px;
  background: linear-gradient(180deg, #6b4e2e 0%, #3a2510 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  transform-origin: bottom center;
  animation: adp-accused 3s ease-in-out infinite;
}
.scn-adultery-punishment .guard {
  position: absolute; bottom: 35%; left: 75%; width: 40px; height: 72px;
  background: linear-gradient(180deg, #4f371e 0%, #2e1f0e 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  transform-origin: bottom center;
  animation: adp-guard 5s ease-in-out infinite alternate;
}
.scn-adultery-punishment .shadow-stripe {
  position: absolute; bottom: 35%; left: 0; right: 0; height: 8%;
  background: linear-gradient(90deg, transparent 10%, #3a2510 20%, transparent 80%);
  filter: blur(3px);
  animation: adp-stripe 8s ease-in-out infinite alternate;
}
@keyframes adp-window { 0% { opacity:0.8; box-shadow: inset 0 0 15px #d0a050; } 50% { opacity:1; box-shadow: inset 0 0 30px #f0d080, 0 0 40px rgba(240,208,128,0.5); } 100% { opacity:0.7; } }
@keyframes adp-judge { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(2px) rotate(1deg); } }
@keyframes adp-accused { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(3px) rotate(3deg); } 100% { transform: translateX(-3px) rotate(-2deg); } }
@keyframes adp-guard { 0% { transform: translateX(0) scaleY(1); } 50% { transform: translateX(-2px) scaleY(1.02); } 100% { transform: translateX(2px) scaleY(0.98); } }
@keyframes adp-stripe { 0% { opacity:0.3; } 50% { opacity:0.6; } 100% { opacity:0.2; } }

.scn-sparing-the-mother {
  background: linear-gradient(180deg, #1a1a2a 0%, #2c1c2c 40%, #0e0e18 100%), radial-gradient(ellipse at 50% 80%, #2c1c2c 20%, transparent 70%);
}
.scn-sparing-the-mother .bg-dark {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, transparent 60%, #1a1a2a 100%);
  animation: spm-bg 12s ease-in-out infinite alternate;
}
.scn-sparing-the-mother .floor-dark {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a12 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.6);
}
.scn-sparing-the-mother .mother {
  position: absolute; bottom: 25%; left: 40%; width: 50px; height: 68px;
  background: linear-gradient(180deg, #3a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: spm-mother 4s ease-in-out infinite;
}
.scn-sparing-the-mother .infant {
  position: absolute; bottom: 30%; left: 45%; width: 20px; height: 20px;
  background: radial-gradient(circle, #6a4a4a 0%, #3a2a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  filter: blur(1px);
  animation: spm-infant 3s ease-in-out infinite alternate;
}
.scn-sparing-the-mother .executioner {
  position: absolute; bottom: 25%; left: 65%; width: 55px; height: 80px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0e0e0e 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  transform-origin: bottom center;
  animation: spm-exec 5s ease-in-out infinite alternate;
}
.scn-sparing-the-mother .torch-glow {
  position: absolute; bottom: 35%; left: 20%; width: 30px; height: 30px;
  background: radial-gradient(circle, #ffb060 0%, #803000 60%, transparent 100%);
  border-radius: 50%;
  filter: blur(5px);
  animation: spm-torch 2s ease-in-out infinite alternate;
}
.scn-sparing-the-mother .chain {
  position: absolute; bottom: 40%; left: 55%; width: 8px; height: 50px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 2px;
  box-shadow: 0 0 4px #5a4a3a;
  animation: spm-chain 6s ease-in-out infinite;
}
@keyframes spm-bg { 0% { opacity:0.3; } 50% { opacity:0.6; } 100% { opacity:0.2; } }
@keyframes spm-mother { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-2px) rotate(-2deg); } 100% { transform: translateX(2px) rotate(1deg); } }
@keyframes spm-infant { 0% { transform: scale(1) translateY(0); } 50% { transform: scale(1.05) translateY(-1px); } 100% { transform: scale(0.95) translateY(1px); } }
@keyframes spm-exec { 0% { transform: translateX(0) scaleY(1); } 50% { transform: translateX(2px) scaleY(1.03); } 100% { transform: translateX(-2px) scaleY(0.97); } }
@keyframes spm-torch { 0% { opacity:0.5; transform: scale(0.9); } 100% { opacity:1; transform: scale(1.2); } }
@keyframes spm-chain { 0% { transform: rotate(0deg); } 50% { transform: rotate(3deg); } 100% { transform: rotate(-3deg); } }

.scn-marriage-customs {
  background: linear-gradient(180deg, #87ceeb 0%, #f0e68c 40%, #f5deb3 100%), radial-gradient(ellipse at 50% 0%, #fff8dc 20%, transparent 80%);
}
.scn-marriage-customs .sky-sun {
  position: absolute; top: 0; left: 0; right: 0; bottom: 40%;
  background: linear-gradient(180deg, #87ceeb 0%, #b0e0e6 60%, #f0e68c 100%);
  animation: mrc-sky 20s ease-in-out infinite alternate;
}
.scn-marriage-customs .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #8fbc8f 0%, #6b8e23 100%);
  border-radius: 30% 70% 0 0 / 50% 100% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,50,0,0.2);
}
.scn-marriage-customs .groom {
  position: absolute; bottom: 40%; left: 30%; width: 40px; height: 65px;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2010 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mrc-groom 4s ease-in-out infinite;
}
.scn-marriage-customs .bride {
  position: absolute; bottom: 40%; left: 50%; width: 42px; height: 66px;
  background: linear-gradient(180deg, #c0a080 0%, #8b6f4e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mrc-bride 4s ease-in-out infinite reverse;
}
.scn-marriage-customs .guest-left {
  position: absolute; bottom: 40%; left: 15%; width: 35px; height: 60px;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a321a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  animation: mrc-guest1 6s ease-in-out infinite;
}
.scn-marriage-customs .guest-right {
  position: absolute; bottom: 40%; left: 70%; width: 35px; height: 60px;
  background: linear-gradient(180deg, #6b4e3a 0%, #3a2510 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  animation: mrc-guest2 7s ease-in-out infinite alternate;
}
.scn-marriage-customs .feast-table {
  position: absolute; bottom: 35%; left: 40%; width: 20%; height: 8%;
  background: linear-gradient(180deg, #8b6f4e 0%, #5a3a1a 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 10% 10%;
  transform-origin: bottom center;
  animation: mrc-table 8s ease-in-out infinite;
}
.scn-marriage-customs .flower-scatter {
  position: absolute; bottom: 38%; left: 20%; width: 60%; height: 8%;
  background: radial-gradient(circle at 20% 50%, #f8c8c8 2px, transparent 2px),
              radial-gradient(circle at 40% 30%, #fff0c0 3px, transparent 3px),
              radial-gradient(circle at 60% 70%, #f8c8c8 2px, transparent 2px);
  filter: blur(1px);
  animation: mrc-flowers 10s ease-in-out infinite alternate;
}
@keyframes mrc-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes mrc-groom { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(1px) rotate(-1deg); } 100% { transform: translateX(-1px) rotate(1deg); } }
@keyframes mrc-bride { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-1px) rotate(1deg); } 100% { transform: translateX(1px) rotate(-1deg); } }
@keyframes mrc-guest1 { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes mrc-guest2 { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-1px) scaleY(1.02); } 100% { transform: translateY(1px) scaleY(0.98); } }
@keyframes mrc-table { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.03); } 100% { transform: scaleY(0.97); } }
@keyframes mrc-flowers { 0% { opacity:0.3; } 50% { opacity:0.7; } 100% { opacity:0.4; } }

.scn-marriage-proclamation {
  background: linear-gradient(180deg, #fdf5e6 0%, #f5deb3 40%, #d2b48c 100%), radial-gradient(ellipse at 50% 0%, #fff8dc 30%, transparent 80%);
}
.scn-marriage-proclamation .sky-proc {
  position: absolute; top: 0; left: 0; right: 0; bottom: 45%;
  background: linear-gradient(180deg, #b0e0e6 0%, #f0e68c 100%);
  animation: mrp-sky 15s ease-in-out infinite alternate;
}
.scn-marriage-proclamation .ground-proc {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #9acd32 0%, #6b8e23 100%);
  border-radius: 40% 60% 0 0 / 60% 80% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,50,0,0.15);
}
.scn-marriage-proclamation .bride-proc {
  position: absolute; bottom: 45%; left: 35%; width: 45px; height: 68px;
  background: linear-gradient(180deg, #c0a080 0%, #8b6f4e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mrp-bride 5s ease-in-out infinite;
}
.scn-marriage-proclamation .retinue {
  position: absolute; bottom: 45%; left: 55%; width: 120px; height: 60px;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a321a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  transform-origin: bottom center;
  animation: mrp-retinue 8s ease-in-out infinite alternate;
}
.scn-marriage-proclamation .proclamation-banner {
  position: absolute; bottom: 55%; left: 75%; width: 60px; height: 80px;
  background: linear-gradient(180deg, #f0e68c 0%, #d2b48c 100%);
  border-radius: 10% 10% 0 0 / 30% 30% 0 0;
  transform-origin: top left;
  animation: mrp-banner 6s ease-in-out infinite;
}
.scn-marriage-proclamation .sunburst {
  position: absolute; top: 5%; left: 50%; width: 100px; height: 100px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #fff8dc 0%, #f0e68c 30%, transparent 70%);
  border-radius: 50%;
  filter: blur(10px);
  animation: mrp-sunburst 10s ease-in-out infinite alternate;
}
@keyframes mrp-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes mrp-bride { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-2px) rotate(2deg); } 100% { transform: translateX(2px) rotate(-1deg); } }
@keyframes mrp-retinue { 0% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(-3px) scaleX(1.02); } 100% { transform: translateX(3px) scaleX(0.98); } }
@keyframes mrp-banner { 0% { transform: rotate(0deg) scaleY(1); } 50% { transform: rotate(5deg) scaleY(1.05); } 100% { transform: rotate(-3deg) scaleY(0.95); } }
@keyframes mrp-sunburst { 0% { opacity:0.4; transform: translateX(-50%) scale(0.9); } 50% { opacity:0.7; transform: translateX(-50%) scale(1.1); } 100% { opacity:0.5; transform: translateX(-50%) scale(1); } }

.scn-friendship-with-dick {
  background: linear-gradient(180deg, #e8c88a 0%, #d4a862 40%, #b87c3a 100%),
              radial-gradient(ellipse at 30% 60%, #f0d8a0 0%, transparent 70%);
}
.scn-friendship-with-dick .bg-warm { position:absolute; inset:0; background: linear-gradient(135deg, #dbb47a 0%, #c6924d 100%); }
.scn-friendship-with-dick .cabin-wall { position:absolute; left:5%; top:10%; width:90%; height:75%; background: linear-gradient(180deg, #b9874c 0%, #9d6f3a 100%); border-radius: 2% 2% 0 0; box-shadow: inset 0 20px 40px rgba(0,0,0,.15); }
.scn-friendship-with-dick .table { position:absolute; bottom:18%; left:30%; width:40%; height:8%; background: linear-gradient(180deg, #6e4d2a 0%, #4f331b 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.4); animation: fwd-table 6s ease-in-out infinite; }
.scn-friendship-with-dick .figure-left { position:absolute; bottom:18%; left:25%; width:12%; height:28%; background: radial-gradient(ellipse 70% 100% at 50% 100%, #2b1e12 0%, #140e08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fwd-fig-l 12s ease-in-out infinite; }
.scn-friendship-with-dick .figure-right { position:absolute; bottom:18%; right:25%; width:14%; height:30%; background: radial-gradient(ellipse 70% 100% at 50% 100%, #2b1e12 0%, #140e08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fwd-fig-r 14s ease-in-out infinite; }
.scn-friendship-with-dick .lamp-glow { position:absolute; top:35%; left:45%; width:8%; height:12%; background: radial-gradient(circle, #ffe8b0 0%, #f0c060 50%, transparent 100%); border-radius: 50%; box-shadow: 0 0 60px 30px rgba(240,192,96,.5); animation: fwd-lamp 4s ease-in-out infinite alternate; }
.scn-friendship-with-dick .book-stack { position:absolute; bottom:20%; left:42%; width:8%; height:6%; background: linear-gradient(180deg, #7a5530 0%, #4d321a 100%); border-radius: 2px; box-shadow: 1px 1px 3px rgba(0,0,0,.5); animation: fwd-book 10s ease-in-out infinite; }

@keyframes fwd-table { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes fwd-fig-l { 0% { transform: rotate(-2deg) translateY(0) } 25% { transform: rotate(0deg) translateY(-3px) } 50% { transform: rotate(2deg) translateY(0) } 75% { transform: rotate(0deg) translateY(-2px) } 100% { transform: rotate(-1deg) translateY(0) } }
@keyframes fwd-fig-r { 0% { transform: rotate(2deg) translateY(0) } 33% { transform: rotate(-1deg) translateY(-4px) } 66% { transform: rotate(3deg) translateY(-1px) } 100% { transform: rotate(0deg) translateY(0) } }
@keyframes fwd-lamp { 0% { opacity:.85; transform: scale(1) } 100% { opacity:1; transform: scale(1.15) } }
@keyframes fwd-book { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-1px) rotate(2deg) } 100% { transform: translateY(0) rotate(0deg) } }

.scn-dick-eaten-joke {
  background: linear-gradient(180deg, #2a221a 0%, #1a1410 40%, #0e0a08 100%),
              radial-gradient(ellipse at 60% 70%, #3a2c20 0%, transparent 70%);
}
.scn-dick-eaten-joke .bg-dim { position:absolute; inset:0; background: linear-gradient(135deg, #2f241b 0%, #1c140f 100%); }
.scn-dick-eaten-joke .table-low { position:absolute; bottom:15%; left:20%; width:60%; height:6%; background: linear-gradient(180deg, #3b2a1a 0%, #1f140a 100%); border-radius: 4px 4px 0 0; box-shadow: 0 -2px 6px rgba(0,0,0,.6); animation: dej-table 8s ease-in-out infinite; }
.scn-dick-eaten-joke .master-seated { position:absolute; bottom:15%; left:55%; width:15%; height:30%; background: radial-gradient(ellipse 60% 100% at 50% 100%, #2a1d14 0%, #110a06 100%); border-radius: 50% 40% 40% 50% / 60% 50% 50% 60%; transform-origin: bottom center; animation: dej-master 12s ease-in-out infinite; }
.scn-dick-eaten-joke .servant-standing { position:absolute; bottom:15%; left:18%; width:10%; height:40%; background: radial-gradient(ellipse 60% 100% at 50% 80%, #1a1010 0%, #0a0505 100%); border-radius: 30% 40% 40% 30% / 50% 60% 60% 50%; transform-origin: bottom center; animation: dej-servant 10s ease-in-out infinite; }
.scn-dick-eaten-joke .candle { position:absolute; top:30%; left:45%; width:3%; height:15%; background: linear-gradient(180deg, #eed4a0 0%, #c89650 60%, #7a4a1a 100%); border-radius: 2px/4px; box-shadow: 0 0 30px 15px rgba(240,200,100,.4); animation: dej-candle 3s ease-in-out infinite alternate; }
.scn-dick-eaten-joke .shadow-pool { position:absolute; bottom:0; left:10%; width:80%; height:20%; background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,.5) 0%, transparent 70%); animation: dej-shadow 6s ease-in-out infinite; }
.scn-dick-eaten-joke .knife { position:absolute; bottom:16%; left:50%; width:10%; height:2%; background: linear-gradient(90deg, #655040 0%, #8a6a50 50%, #3a2a1a 100%); border-radius: 3px; transform: rotate(-15deg); box-shadow: 0 2px 4px rgba(0,0,0,.5); animation: dej-knife 5s ease-in-out infinite alternate; }

@keyframes dej-table { 0%,100% { transform: translateY(0) } 50% { transform: translateY(1px) } }
@keyframes dej-master { 0% { transform: rotate(0deg) translateY(0) } 30% { transform: rotate(3deg) translateY(-2px) } 70% { transform: rotate(-2deg) translateY(-1px) } 100% { transform: rotate(0deg) translateY(0) } }
@keyframes dej-servant { 0% { transform: rotate(2deg) translateX(0) } 50% { transform: rotate(-3deg) translateX(-3px) } 100% { transform: rotate(2deg) translateX(0) } }
@keyframes dej-candle { 0% { opacity:.85; transform: scaleY(1) } 100% { opacity:1; transform: scaleY(1.1) translateY(-2px) } }
@keyframes dej-shadow { 0%,100% { opacity:.6 } 50% { opacity:.8 } }
@keyframes dej-knife { 0% { transform: rotate(-15deg) translateX(0) } 100% { transform: rotate(-10deg) translateX(5px) } }

.scn-man-overboard-fear {
  background: linear-gradient(180deg, #0f1420 0%, #141c2a 40%, #1a2430 100%),
              radial-gradient(ellipse at 70% 20%, #2a3a50 0%, transparent 70%);
}
.scn-man-overboard-fear .night-sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #0c1118 0%, #1a2430 100%); animation: mof-sky 20s ease-in-out infinite alternate; }
.scn-man-overboard-fear .moon { position:absolute; top:8%; left:70%; width:10%; height:10%; background: radial-gradient(circle, #e0e8f0 0%, #b0bcc8 100%); border-radius: 50%; box-shadow: 0 0 40px 20px rgba(176,188,200,.3); animation: mof-moon 30s linear infinite; }
.scn-man-overboard-fear .ship-deck { position:absolute; bottom:30%; left:10%; width:80%; height:15%; background: linear-gradient(180deg, #2c2218 0%, #1a140e 100%); border-radius: 2% 2% 0 0; box-shadow: inset 0 -5px 15px rgba(0,0,0,.6); animation: mof-deck 4s ease-in-out infinite; }
.scn-man-overboard-fear .railing { position:absolute; bottom:30%; left:10%; width:80%; height:2%; background: linear-gradient(90deg, #3a2e22 0%, #4a3c2e 50%, #3a2e22 100%); border-radius: 1px; box-shadow: 0 2px 4px rgba(0,0,0,.5); animation: mof-rail 4s ease-in-out infinite; }
.scn-man-overboard-fear .dark-water { position:absolute; bottom:0; left:0; width:100%; height:35%; background: linear-gradient(180deg, #0e1418 0%, #060a0c 100%); animation: mof-water 8s ease-in-out infinite alternate; }
.scn-man-overboard-fear .overboard-figure { position:absolute; bottom:5%; left:45%; width:4%; height:8%; background: radial-gradient(ellipse 50% 100% at 50% 100%, #16202a 0%, #080c10 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; animation: mof-figure 3s ease-in-out infinite; }
.scn-man-overboard-fear .wave-tip { position:absolute; bottom:20%; left:30%; width:15%; height:3%; background: radial-gradient(ellipse at 50% 0%, #305070 0%, transparent 100%); animation: mof-wave 2s ease-in-out infinite alternate; }

@keyframes mof-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes mof-moon { 0% { transform: translateX(0) } 100% { transform: translateX(5vw) } }
@keyframes mof-deck { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes mof-rail { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes mof-water { 0% { transform: translateY(0) } 100% { transform: translateY(3px) } }
@keyframes mof-figure { 0% { transform: translateY(0) rotate(0deg) } 30% { transform: translateY(-10px) rotate(10deg) } 60% { transform: translateY(-5px) rotate(-5deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes mof-wave { 0% { opacity:.3; transform: scaleX(1) } 100% { opacity:.6; transform: scaleX(1.2) } }

.scn-grampusses-fish {
  background: linear-gradient(180deg, #4a3a2a 0%, #6b4e30 30%, #8a6a40 60%, #5a4630 100%),
              radial-gradient(ellipse at 60% 30%, #c08050 0%, transparent 70%);
}
.scn-grampusses-fish .dusk-sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #3a2a20 0%, #6a5038 40%, #a08060 100%); animation: grm-sky 15s ease-in-out infinite alternate; }
.scn-grampusses-fish .sunset-glow { position:absolute; top:10%; left:60%; width:20%; height:20%; background: radial-gradient(circle, #e09040 0%, #c07030 40%, transparent 100%); border-radius: 50%; box-shadow: 0 0 80px 40px rgba(192,112,48,.3); animation: grm-glow 8s ease-in-out infinite alternate; }
.scn-grampusses-fish .ship-bow { position:absolute; bottom:25%; left:15%; width:70%; height:12%; background: linear-gradient(180deg, #3a2a1a 0%, #1c140c 100%); border-radius: 30% 0 0 30% / 80% 0 0 80%; box-shadow: inset -5px 0 10px rgba(0,0,0,.5); animation: grm-bow 6s ease-in-out infinite; }
.scn-grampusses-fish .sea-surface { position:absolute; bottom:0; left:0; width:100%; height:30%; background: linear-gradient(180deg, #4a5a5a 0%, #2a3a3a 100%); animation: grm-sea 10s ease-in-out infinite alternate; }
.scn-grampusses-fish .fish-1 { position:absolute; bottom:15%; left:20%; width:20%; height:6%; background: radial-gradient(ellipse 90% 100% at 50% 50%, #2a3a3a 0%, #1a2a2a 70%, transparent 100%); border-radius: 50%; filter: blur(3px); animation: grm-fish1 8s ease-in-out infinite; }
.scn-grampusses-fish .fish-2 { position:absolute; bottom:20%; right:10%; width:25%; height:5%; background: radial-gradient(ellipse 90% 100% at 50% 50%, #2a3a3a 0%, #1a2a2a 70%, transparent 100%); border-radius: 50%; filter: blur(3px); animation: grm-fish2 12s ease-in-out infinite reverse; }
.scn-grampusses-fish .spray { position:absolute; bottom:28%; left:50%; width:8%; height:4%; background: radial-gradient(ellipse 50% 100% at 50% 0%, rgba(200,220,230,.4) 0%, transparent 100%); animation: grm-spray 2s ease-in-out infinite alternate; }

@keyframes grm-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes grm-glow { 0% { transform: scale(1); opacity:.7 } 100% { transform: scale(1.1); opacity:1 } }
@keyframes grm-bow { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-3px) } }
@keyframes grm-sea { 0% { transform: translateY(0) } 100% { transform: translateY(4px) } }
@keyframes grm-fish1 { 0% { transform: translateX(0) scaleX(1) } 50% { transform: translateX(-5px) scaleX(.95) } 100% { transform: translateX(0) scaleX(1) } }
@keyframes grm-fish2 { 0% { transform: translateX(0) scaleX(1) } 50% { transform: translateX(8px) scaleX(1.05) } 100% { transform: translateX(0) scaleX(1) } }
@keyframes grm-spray { 0% { opacity:.2; transform: translateY(0) scaleY(1) } 100% { opacity:.5; transform: translateY(-5px) scaleY(1.5) } }

.scn-abuses-by-agent { background: linear-gradient(180deg, #2a1f1a 0%, #1f1512 60%, #140e0b 100%), radial-gradient(ellipse at 50% 30%, #3a2a20 0%, transparent 70%); }
.scn-abuses-by-agent .wall { position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #1f1610 0%, #2a1f18 100%); box-shadow: inset 0 -20px 30px rgba(0,0,0,.6); }
.scn-abuses-by-agent .floor { position: absolute; bottom: 0; left: 0; right: 0; height: 40%; background: linear-gradient(0deg, #1a120e 0%, #2c2018 100%); box-shadow: inset 0 10px 15px rgba(0,0,0,.4); }
.scn-abuses-by-agent .desk { position: absolute; bottom: 25%; left: 35%; width: 30%; height: 18%; background: linear-gradient(135deg, #3d2b20 0%, #261a14 100%); border-radius: 2% 2% 0 0; box-shadow: 0 8px 12px rgba(0,0,0,.5); transform: perspective(500px) rotateX(5deg); }
.scn-abuses-by-agent .document { position: absolute; bottom: 32%; left: 42%; width: 12%; height: 6%; background: linear-gradient(135deg, #8a7560 0%, #5c4c3c 100%); border-radius: 1px; box-shadow: 0 2px 4px rgba(0,0,0,.3); animation: ab-doc 6s ease-in-out infinite; }
.scn-abuses-by-agent .lantern-glow { position: absolute; bottom: 28%; left: 30%; width: 8%; height: 12%; background: radial-gradient(circle, #ffd080 0%, #d49a4a 40%, transparent 70%); box-shadow: 0 0 30px 15px rgba(212,154,74,.5), 0 0 60px 30px rgba(212,154,74,.2); animation: ab-glow 3s ease-in-out infinite alternate; }
.scn-abuses-by-agent .agent-figure { position: absolute; bottom: 22%; left: 25%; width: 14%; height: 30%; background: linear-gradient(180deg, #1a1512 0%, #0f0c0a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; box-shadow: -5px 0 10px rgba(0,0,0,.7); animation: ab-agent 8s ease-in-out infinite; }
.scn-abuses-by-agent .shadow-figure { position: absolute; bottom: 22%; right: 20%; width: 12%; height: 28%; background: linear-gradient(180deg, #0d0a08 0%, #050302 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; opacity: 0.7; box-shadow: 0 0 20px rgba(0,0,0,.8); animation: ab-shadow 10s ease-in-out infinite; }
@keyframes ab-doc { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } }
@keyframes ab-glow { 0% { opacity: 0.7; box-shadow: 0 0 20px 10px rgba(212,154,74,.3), 0 0 40px 20px rgba(212,154,74,.1); } 100% { opacity: 1; box-shadow: 0 0 40px 20px rgba(212,154,74,.5), 0 0 80px 40px rgba(212,154,74,.2); } }
@keyframes ab-agent { 0%,100% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(2px) rotate(1deg); } 50% { transform: translateX(0) rotate(2deg); } 75% { transform: translateX(-2px) rotate(-1deg); } }
@keyframes ab-shadow { 0%,100% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(3px) scaleY(0.95); } }
.scn-poor-people-suffer { background: linear-gradient(180deg, #1a1a2e 0%, #12121f 50%, #0a0a14 100%), radial-gradient(ellipse at 30% 50%, #222243 0%, transparent 70%); }
.scn-poor-people-suffer .hull-wall { position: absolute; inset: 0 0 45% 0; background: linear-gradient(180deg, #1a1a28 0%, #13131c 100%); box-shadow: inset 0 -15px 25px rgba(0,0,0,.5); }
.scn-poor-people-suffer .floor-planks { position: absolute; bottom: 0; left: 0; right: 0; height: 45%; background: linear-gradient(0deg, #0f0f18 0%, #1a1a2a 100%); box-shadow: inset 0 8px 12px rgba(0,0,0,.6); }
.scn-poor-people-suffer .hammock { position: absolute; top: 20%; width: 20%; height: 25%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 30% 30% / 70% 70% 40% 40%; box-shadow: 0 0 15px rgba(0,0,0,.4); animation: pp-hammock 12s ease-in-out infinite; }
.scn-poor-people-suffer .hammock.left { left: 20%; animation-delay: 0s; }
.scn-poor-people-suffer .hammock.right { left: 60%; animation-delay: -4s; }
.scn-poor-people-suffer .figure-sleeping { position: absolute; top: 22%; left: 42%; width: 16%; height: 18%; background: linear-gradient(180deg, #1c1c2c 0%, #0c0c1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-5deg); box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: pp-fig 15s ease-in-out infinite; }
.scn-poor-people-suffer .dim-lantern { position: absolute; top: 10%; left: 50%; width: 6%; height: 8%; background: radial-gradient(circle, #6a5a3a 0%, #3a2a1a 60%, transparent 100%); border-radius: 50%; box-shadow: 0 0 20px 8px rgba(106,90,58,.4); animation: pp-lantern 6s ease-in-out infinite alternate; }
.scn-poor-people-suffer .blanket { position: absolute; top: 30%; left: 38%; width: 24%; height: 12%; background: linear-gradient(135deg, #2a2a3e 0%, #1a1a2e 100%); border-radius: 20% 20% 10% 10% / 50% 50% 30% 30%; box-shadow: 0 2px 4px rgba(0,0,0,.5); animation: pp-blanket 8s ease-in-out infinite; }
@keyframes pp-hammock { 0%,100% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(4px) rotate(2deg); } }
@keyframes pp-fig { 0%,100% { transform: translateY(0) rotate(-5deg); } 50% { transform: translateY(2px) rotate(-3deg); } }
@keyframes pp-lantern { 0% { opacity: 0.4; box-shadow: 0 0 10px 4px rgba(106,90,58,.2); } 100% { opacity: 0.8; box-shadow: 0 0 25px 10px rgba(106,90,58,.5); } }
@keyframes pp-blanket { 0%,100% { transform: scaleX(1) translateX(0); } 50% { transform: scaleX(1.02) translateX(2px); } }
.scn-inform-commissioners { background: linear-gradient(180deg, #1a1517 0%, #211c1e 40%, #0e0b0d 100%), radial-gradient(ellipse at 60% 40%, #2c2224 0%, transparent 70%); }
.scn-inform-commissioners .wall-panel { position: absolute; inset: 0 0 45% 0; background: linear-gradient(180deg, #1f181a 0%, #141012 100%); box-shadow: inset 0 -15px 20px rgba(0,0,0,.5); }
.scn-inform-commissioners .desk-surface { position: absolute; bottom: 25%; left: 20%; width: 60%; height: 20%; background: linear-gradient(135deg, #2a1f20 0%, #1a1314 100%); border-radius: 2% 2% 0 0; box-shadow: 0 8px 12px rgba(0,0,0,.6); transform: perspective(500px) rotateX(10deg); }
.scn-inform-commissioners .paper-stack { position: absolute; bottom: 32%; left: 35%; width: 16%; height: 10%; background: linear-gradient(135deg, #7a6a5c 0%, #4c3f36 100%); border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,.3); animation: ic-paper 5s ease-in-out infinite; }
.scn-inform-commissioners .candle { position: absolute; bottom: 30%; left: 55%; width: 4%; height: 14%; background: linear-gradient(180deg, #d4b080 0%, #a08460 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 0 8px rgba(200,160,100,.3); }
.scn-inform-commissioners .flame-glow { position: absolute; bottom: 40%; left: 54%; width: 8%; height: 12%; background: radial-gradient(circle, #ffd080 0%, #d49a4a 30%, transparent 70%); box-shadow: 0 0 30px 15px rgba(212,154,74,.4), 0 0 60px 30px rgba(212,154,74,.15); animation: ic-flame 2s ease-in-out infinite alternate; }
.scn-inform-commissioners .figure-profile { position: absolute; bottom: 22%; left: 30%; width: 15%; height: 35%; background: linear-gradient(180deg, #1a1415 0%, #0c090a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform: rotateY(10deg) perspective(200px); box-shadow: -5px 0 15px rgba(0,0,0,.7); animation: ic-figure 9s ease-in-out infinite; }
.scn-inform-commissioners .commissioner-shadow { position: absolute; bottom: 22%; right: 10%; width: 20%; height: 35%; background: linear-gradient(180deg, #0d0a0b 0%, #050303 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; opacity: 0.6; box-shadow: 0 0 25px rgba(0,0,0,.8); animation: ic-shad 12s ease-in-out infinite; }
@keyframes ic-paper { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-1px) rotate(1deg); } }
@keyframes ic-flame { 0% { opacity: 0.6; transform: scale(0.9); } 100% { opacity: 1; transform: scale(1.1); } }
@keyframes ic-figure { 0%,100% { transform: rotateY(10deg) translateY(0); } 25% { transform: rotateY(12deg) translateY(-2px); } 75% { transform: rotateY(8deg) translateY(1px); } }
@keyframes ic-shad { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(0.95); } }
.scn-expedition-failure { background: linear-gradient(180deg, #0a0a1a 0%, #10102a 40%, #050510 100%), radial-gradient(ellipse at 50% 80%, #12122a 0%, transparent 60%); }
.scn-expedition-failure .night-sky { position: absolute; inset: 0 0 50% 0; background: linear-gradient(180deg, #0a0a1a 0%, #14142e 100%); box-shadow: inset 0 -20px 30px rgba(0,0,0,.6); }
.scn-expedition-failure .barren-ground { position: absolute; bottom: 0; left: 0; right: 0; height: 50%; background: linear-gradient(0deg, #0d0d1a 0%, #1a1a30 100%); box-shadow: inset 0 10px 20px rgba(0,0,0,.5); }
.scn-expedition-failure .ship-mast { position: absolute; bottom: 40%; left: 20%; width: 3%; height: 40%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 10% 10% 0 0; box-shadow: 2px 0 8px rgba(0,0,0,.6); transform: rotate(-3deg); animation: ef-mast 20s ease-in-out infinite; }
.scn-expedition-failure .lascar-figure { position: absolute; bottom: 20%; width: 8%; height: 15%; background: linear-gradient(180deg, #12121e 0%, #08080f 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; box-shadow: 0 0 10px rgba(0,0,0,.5); animation: ef-figure 12s ease-in-out infinite; }
.scn-expedition-failure .lascar-figure.one { left: 35%; animation-delay: 0s; }
.scn-expedition-failure .lascar-figure.two { left: 55%; animation-delay: -6s; }
.scn-expedition-failure .faint-star { position: absolute; top: 15%; left: 70%; width: 2%; height: 2%; background: radial-gradient(circle, #a0a0d0 0%, transparent 70%); border-radius: 50%; box-shadow: 0 0 8px 2px rgba(160,160,208,.4); animation: ef-star 8s ease-in-out infinite alternate; }
.scn-expedition-failure .exhausted-forms { position: absolute; bottom: 15%; left: 25%; width: 50%; height: 10%; background: linear-gradient(180deg, #141422 0%, #0a0a14 100%); border-radius: 30% 30% 20% 20% / 60% 60% 30% 30%; box-shadow: 0 0 10px rgba(0,0,0,.6); animation: ef-forms 15s ease-in-out infinite; }
@keyframes ef-mast { 0%,100% { transform: rotate(-3deg); } 50% { transform: rotate(2deg); } }
@keyframes ef-figure { 0%,100% { transform: translateY(0) scale(1); } 50% { transform: translateY(3px) scale(0.95); } }
@keyframes ef-star { 0% { opacity: 0.3; transform: scale(0.8); } 50% { opacity: 0.6; transform: scale(1.2); } 100% { opacity: 0.4; transform: scale(1); } }
@keyframes ef-forms { 0%,100% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(2px) scaleX(0.98); } }

.scn-return-to-guernsey {
  background: linear-gradient(180deg, #87ceeb 0%, #f0e68c 30%, #ffd700 60%, #b8860b 100%),
              radial-gradient(ellipse at 50% 100%, #b8860b 0%, transparent 60%);
}
.scn-return-to-guernsey .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #b0e0e6 0%, #87ceeb 80%); animation: rtg-sky 20s ease-in-out infinite alternate; }
.scn-return-to-guernsey .sea { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #4682b4 0%, #2e5e8e 100%); animation: rtg-sea 8s ease-in-out infinite alternate; }
.scn-return-to-guernsey .sun { position:absolute; top:15%; right:20%; width:60px; height:60px; background: radial-gradient(circle, #ffd700 0%, #ffa500 70%); border-radius:50%; box-shadow: 0 0 40px 20px rgba(255,215,0,0.5); animation: rtg-sun 12s ease-in-out infinite alternate; }
.scn-return-to-guernsey .house { position:absolute; bottom:28%; left:25%; width:120px; height:80px; background: linear-gradient(180deg, #deb887 0%, #cd853f 100%); border-radius:10% 10% 5% 5%; box-shadow: 0 4px 8px rgba(0,0,0,0.3); animation: rtg-house 9s ease-in-out infinite; }
.scn-return-to-guernsey .woman { position:absolute; bottom:25%; left:32%; width:20px; height:40px; background: linear-gradient(180deg, #8b4513 0%, #5a2d0e 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rtg-figure 5s ease-in-out infinite; }
.scn-return-to-guernsey .child { position:absolute; bottom:25%; left:29%; width:14px; height:28px; background: linear-gradient(180deg, #a0522d 0%, #6b3a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rtg-figure 5s ease-in-out infinite 0.5s; }
.scn-return-to-guernsey .path { position:absolute; bottom:20%; left:20%; right:30%; height:10px; background: linear-gradient(90deg, #d2b48c, #c8a87c); border-radius:50%; transform: scaleY(0.3); animation: rtg-path 4s ease-in-out infinite alternate; }
@keyframes rtg-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes rtg-sea { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-5px) scaleY(1.05) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes rtg-sun { 0% { transform: scale(0.95); box-shadow: 0 0 30px 15px rgba(255,215,0,0.4) } 50% { transform: scale(1.05); box-shadow: 0 0 50px 25px rgba(255,215,0,0.7) } 100% { transform: scale(0.98); box-shadow: 0 0 35px 18px rgba(255,215,0,0.5) } }
@keyframes rtg-house { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes rtg-figure { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(5px) rotate(2deg) } 50% { transform: translateX(10px) rotate(-1deg) } 75% { transform: translateX(15px) rotate(1deg) } 100% { transform: translateX(20px) rotate(0deg) } }
@keyframes rtg-path { 0% { opacity:0.6; transform: scaleY(0.2) } 50% { opacity:0.8; transform: scaleY(0.35) } 100% { opacity:0.6; transform: scaleY(0.2) } }

.scn-portsmouth-joy-peace {
  background: linear-gradient(180deg, #87cefa 0%, #f0e68c 40%, #ffd700 70%, #b8860b 100%),
              radial-gradient(ellipse at 50% 0%, #ffd700 0%, transparent 60%);
}
.scn-portsmouth-joy-peace .sky { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #b0e0e6 0%, #87cefa 80%); animation: pjp-sky 25s ease-in-out infinite alternate; }
.scn-portsmouth-joy-peace .sea { position:absolute; bottom:0; left:0; right:0; height:60%; background: linear-gradient(180deg, #4682b4 0%, #2e5e8e 100%); animation: pjp-sea 6s ease-in-out infinite alternate; }
.scn-portsmouth-joy-peace .ship-hull { position:absolute; bottom:35%; left:20%; width:150px; height:60px; background: linear-gradient(180deg, #8b4513 0%, #5a2d0e 100%); border-radius:20% 20% 10% 10%; box-shadow: 0 4px 8px rgba(0,0,0,0.3); animation: pjp-hull 8s ease-in-out infinite; }
.scn-portsmouth-joy-peace .sail-fore { position:absolute; bottom:55%; left:25%; width:30px; height:70px; background: linear-gradient(180deg, #f5deb3 0%, #d2b48c 100%); border-radius:20% 20% 10% 10%; transform: skewX(-10deg); animation: pjp-sail 10s ease-in-out infinite alternate; }
.scn-portsmouth-joy-peace .sail-aft { position:absolute; bottom:55%; left:60%; width:40px; height:60px; background: linear-gradient(180deg, #f5deb3 0%, #d2b48c 100%); border-radius:20% 20% 10% 10%; transform: skewX(10deg); animation: pjp-sail 10s ease-in-out infinite alternate-reverse; }
.scn-portsmouth-joy-peace .flag-1 { position:absolute; bottom:66%; left:18%; width:8px; height:6px; background: #a0522d; border-radius:2px; box-shadow: 0 0 4px 2px rgba(160,82,45,0.5); animation: pjp-flag 3s ease-in-out infinite; }
.scn-portsmouth-joy-peace .flag-2 { position:absolute; bottom:66%; left:50%; width:8px; height:6px; background: #5a2d0e; border-radius:2px; animation: pjp-flag 3s ease-in-out infinite 0.5s; }
.scn-portsmouth-joy-peace .sun { position:absolute; top:10%; right:10%; width:80px; height:80px; background: radial-gradient(circle, #ffd700 0%, #ffa500 70%); border-radius:50%; box-shadow: 0 0 60px 30px rgba(255,215,0,0.6); animation: pjp-sun 15s ease-in-out infinite alternate; }
@keyframes pjp-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes pjp-sea { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-8px) scaleY(1.08) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes pjp-hull { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-3px) rotate(1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes pjp-sail { 0% { transform: skewX(-10deg) scaleY(1) } 50% { transform: skewX(-8deg) scaleY(1.05) } 100% { transform: skewX(-12deg) scaleY(0.95) } }
@keyframes pjp-flag { 0% { transform: rotate(-5deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(-5deg) } }
@keyframes pjp-sun { 0% { transform: scale(0.95) rotate(0deg) } 50% { transform: scale(1.08) rotate(10deg) } 100% { transform: scale(1) rotate(0deg) } }

.scn-desire-education {
  background: linear-gradient(180deg, #1a1a1a 0%, #2d1c0e 40%, #4a2c1a 100%),
              radial-gradient(ellipse at 50% 30%, #8b4513 0%, transparent 70%);
}
.scn-desire-education .wall { position:absolute; inset:0; background: linear-gradient(180deg, #3a2a1a 0%, #1a1a1a 100%); animation: de-wall 15s ease-in-out infinite alternate; }
.scn-desire-education .desk { position:absolute; bottom:20%; left:15%; right:15%; height:15%; background: linear-gradient(180deg, #5a3a1a 0%, #3a2a1a 100%); border-radius:5%; box-shadow: 0 4px 8px rgba(0,0,0,0.6); }
.scn-desire-education .book { position:absolute; bottom:25%; left:30%; width:40%; height:10%; background: linear-gradient(180deg, #a07040 0%, #704020 100%); border-radius:3%; transform: rotate(-5deg); animation: de-book 5s ease-in-out infinite alternate; }
.scn-desire-education .candle { position:absolute; bottom:35%; left:25%; width:8px; height:30%; background: linear-gradient(180deg, #deb887 0%, #cd853f 100%); border-radius:10% 10% 5% 5%; animation: de-candle 6s ease-in-out infinite; }
.scn-desire-education .flame { position:absolute; bottom:65%; left:24.5%; width:10px; height:15%; background: radial-gradient(circle, #ffd700 0%, #ff4500 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 30px 15px rgba(255,165,0,0.6); animation: de-flame 2s ease-in-out infinite alternate; }
.scn-desire-education .figure { position:absolute; bottom:25%; left:40%; width:18%; height:40%; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: de-figure 4s ease-in-out infinite; }
.scn-desire-education .hand { position:absolute; bottom:28%; left:43%; width:6%; height:8%; background: linear-gradient(180deg, #2d1c0e 0%, #1a1a1a 100%); border-radius:40%; animation: de-hand 3s ease-in-out infinite alternate; }
@keyframes de-wall { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.95 } }
@keyframes de-book { 0% { transform: rotate(-5deg) scaleY(1) } 50% { transform: rotate(-3deg) scaleY(1.02) } 100% { transform: rotate(-5deg) scaleY(1) } }
@keyframes de-candle { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.05) } 100% { transform: scaleY(1) } }
@keyframes de-flame { 0% { transform: scale(0.8) rotate(-10deg); opacity:0.8 } 50% { transform: scale(1.2) rotate(5deg); opacity:1 } 100% { transform: scale(0.9) rotate(-5deg); opacity:0.85 } }
@keyframes de-figure { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(2px) rotate(1deg) } 50% { transform: translateX(0) rotate(0deg) } 75% { transform: translateX(-2px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes de-hand { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(3px) rotate(5deg) } 100% { transform: translateX(0) rotate(0deg) } }

.scn-daniel-queen-friendship {
  background: linear-gradient(180deg, #2a1a0a 0%, #3a2a1a 50%, #4a3a2a 100%),
              radial-gradient(ellipse at 50% 30%, #8b6914 0%, transparent 70%);
}
.scn-daniel-queen-friendship .room { position:absolute; inset:0; background: linear-gradient(180deg, #2a1a0a 0%, #1a0f05 100%); animation: dqf-room 20s ease-in-out infinite alternate; }
.scn-daniel-queen-friendship .table { position:absolute; bottom:15%; left:20%; right:20%; height:12%; background: linear-gradient(180deg, #5a3a1a 0%, #3a2a1a 100%); border-radius:10%; box-shadow: 0 4px 8px rgba(0,0,0,0.5); }
.scn-daniel-queen-friendship .lamp { position:absolute; bottom:40%; left:15%; width:12px; height:20%; background: linear-gradient(180deg, #b8860b 0%, #8b6914 100%); border-radius:10% 10% 5% 5%; animation: dqf-lamp 7s ease-in-out infinite; }
.scn-daniel-queen-friendship .daniel { position:absolute; bottom:20%; left:25%; width:18%; height:45%; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dqf-figure 5s ease-in-out infinite; }
.scn-daniel-queen-friendship .friend { position:absolute; bottom:20%; right:25%; width:18%; height:45%; background: linear-gradient(180deg, #2d1c0e 0%, #1a1a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dqf-figure 5s ease-in-out infinite 0.3s; }
.scn-daniel-queen-friendship .mug-a { position:absolute; bottom:22%; left:40%; width:8%; height:10%; background: linear-gradient(180deg, #a07040 0%, #704020 100%); border-radius:20% 20% 10% 10%; animation: dqf-mug 4s ease-in-out infinite alternate; }
.scn-daniel-queen-friendship .mug-b { position:absolute; bottom:22%; right:35%; width:8%; height:10%; background: linear-gradient(180deg, #a07040 0%, #704020 100%); border-radius:20% 20% 10% 10%; animation: dqf-mug 4s ease-in-out infinite alternate 0.5s; }
@keyframes dqf-room { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.95 } }
@keyframes dqf-lamp { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.03) } 100% { transform: scaleY(1) } }
@keyframes dqf-figure { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(3px) rotate(2deg) } 50% { transform: translateX(0) rotate(0deg) } 75% { transform: translateX(-3px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes dqf-mug { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-3px) rotate(5deg) } 100% { transform: translateY(0) rotate(0deg) } }

.scn-anchor-dropped-magic { background: linear-gradient(180deg, #4a8fbf 0%, #87ceeb 40%, #f0e68c 100%), radial-gradient(ellipse at 30% 20%, #fff8b0 0%, transparent 50%); }
.scn-anchor-dropped-magic .ocean { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #2c5a7a 0%, #1a3a5a 100%); border-radius: 0 0 30% 30% / 0 0 10% 10%; box-shadow: inset 0 8px 20px rgba(0,20,40,.5); animation: adm-ocean 8s ease-in-out infinite alternate; }
.scn-anchor-dropped-magic .sky-glow { position:absolute; top:0; left:20%; right:20%; height:30%; background: radial-gradient(ellipse at 50% 0, #ffecb0 0%, transparent 70%); opacity:.6; animation: adm-skyglow 6s ease-in-out infinite alternate; }
.scn-anchor-dropped-magic .ship { position:absolute; bottom:38%; left:55%; width:160px; height:70px; transform:translateX(-50%); background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%); border-radius: 20% 20% 5% 5% / 40% 40% 10% 10%; box-shadow: 0 8px 16px rgba(0,0,0,.4); animation: adm-ship 12s ease-in-out infinite alternate; }
.scn-anchor-dropped-magic .anchor-chain { position:absolute; bottom:30%; left:60%; width:4px; height:60%; background: linear-gradient(180deg, #b0a080 0%, #806040 100%); transform-origin: top center; animation: adm-chain 4s ease-in-out infinite; }
.scn-anchor-dropped-magic .anchor { position:absolute; bottom:10%; left:60%; width:30px; height:40px; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 30%, #8a7050 0%, #4a3a2a 100%); border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%; box-shadow: 0 4px 8px rgba(0,0,0,.6); animation: adm-anchor 4s ease-in-out infinite; }
.scn-anchor-dropped-magic .ripple { position:absolute; bottom:15%; left:55%; width:80px; height:8px; background: radial-gradient(ellipse at 50% 50%, rgba(255,255,255,.3) 0%, transparent 70%); border-radius:50%; animation: adm-ripple 3s ease-out infinite; filter: blur(2px); }
.scn-anchor-dropped-magic .seagull { position:absolute; top:15%; right:10%; width:20px; height:10px; background: radial-gradient(ellipse at 50% 50%, #2a2a2a 0%, #121212 100%); border-radius: 50% 50% 0 0 / 100% 100% 0 0; transform:rotate(-10deg); animation: adm-gull 15s linear infinite; filter: blur(1px); }
@keyframes adm-ocean   { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(2px); } }
@keyframes adm-skyglow { 0% { opacity:.4; } 50% { opacity:.7; } 100% { opacity:.5; } }
@keyframes adm-ship    { 0% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(-1deg); } 100% { transform: translateX(-50%) rotate(1deg); } }
@keyframes adm-chain   { 0% { height:60%; } 50% { height:55%; } 100% { height:60%; } }
@keyframes adm-anchor  { 0% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(8px); } 100% { transform: translateX(-50%) translateY(0); } }
@keyframes adm-ripple  { 0% { transform: scale(1); opacity:.6; } 100% { transform: scale(3); opacity:0; } }
@keyframes adm-gull    { 0% { transform: translateX(0) rotate(-10deg); } 100% { transform: translateX(-120vw) rotate(10deg); } }

.scn-all-under-deck { background: linear-gradient(180deg, #0e0e1e 0%, #1a1a2e 40%, #2a1a1a 100%), radial-gradient(ellipse at 50% 80%, #3a2a2a 0%, transparent 80%); }
.scn-all-under-deck .hold-dark { position:absolute; inset:0; background: repeating-linear-gradient(0deg, #0a0a1a 0px, #0a0a1a 4px, #12122a 4px, #12122a 8px); opacity:.4; animation: aud-hold 10s ease-in-out infinite alternate; }
.scn-all-under-deck .beam-left { position:absolute; top:10%; left:5%; width:8%; height:85%; background: linear-gradient(90deg, #3a2a1a 0%, #1a1a0a 100%); border-radius: 20% 10% 10% 20% / 10% 5% 5% 10%; box-shadow: 4px 0 8px rgba(0,0,0,.6); animation: aud-beam1 15s ease-in-out infinite alternate; }
.scn-all-under-deck .beam-right { position:absolute; top:10%; right:5%; width:8%; height:85%; background: linear-gradient(90deg, #1a1a0a 0%, #3a2a1a 100%); border-radius: 10% 20% 20% 10% / 5% 10% 10% 5%; box-shadow: -4px 0 8px rgba(0,0,0,.6); animation: aud-beam2 15s ease-in-out infinite alternate-reverse; }
.scn-all-under-deck .figures-left { position:absolute; bottom:20%; left:18%; width:30%; height:35%; background: radial-gradient(ellipse at 50% 60%, #1a1a2e 0%, #0a0a1a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform: scaleX(-1); animation: aud-fig 8s ease-in-out infinite alternate; }
.scn-all-under-deck .figures-right { position:absolute; bottom:20%; right:18%; width:30%; height:35%; background: radial-gradient(ellipse at 50% 60%, #1a1a2e 0%, #0a0a1a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; animation: aud-fig 8s ease-in-out infinite alternate-reverse; }
.scn-all-under-deck .chain { position:absolute; bottom:15%; left:50%; width:4px; height:50%; background: repeating-linear-gradient(0deg, #4a3a2a 0px, #4a3a2a 4px, #2a1a1a 4px, #2a1a1a 8px); transform: translateX(-50%); animation: aud-chain 6s ease-in-out infinite; }
.scn-all-under-deck .glimmer { position:absolute; top:5%; left:50%; width:12px; height:12px; background: radial-gradient(circle, #c0b0a0 0%, transparent 70%); border-radius:50%; box-shadow: 0 0 20px 6px rgba(192,176,160,.3); transform: translateX(-50%); animation: aud-glimmer 4s ease-in-out infinite alternate; }
@keyframes aud-hold    { 0% { opacity:.3; } 50% { opacity:.5; } 100% { opacity:.35; } }
@keyframes aud-beam1   { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-3px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes aud-beam2   { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(3px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes aud-fig     { 0% { transform: scaleX(-1) translateY(0); } 50% { transform: scaleX(-1) translateY(-5px); } 100% { transform: scaleX(-1) translateY(0); } }
@keyframes aud-chain   { 0% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(2deg); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes aud-glimmer { 0% { opacity:.2; transform: translateX(-50%) scale(1); } 50% { opacity:.6; transform: translateX(-50%) scale(1.4); } 100% { opacity:.3; transform: translateX(-50%) scale(1); } }

.scn-crowded-and-suffocating { background: linear-gradient(180deg, #0a0a16 0%, #1a1a2e 50%, #2a1a1a 100%), radial-gradient(ellipse at 50% 30%, #3a2a2a 0%, transparent 70%); }
.scn-crowded-and-suffocating .hold-walls { position:absolute; inset:0; background: linear-gradient(90deg, #12121e 0%, transparent 20%, transparent 80%, #12121e 100%); animation: cas-walls 12s ease-in-out infinite alternate; }
.scn-crowded-and-suffocating .bodies-fore { position:absolute; bottom:0; left:10%; right:10%; height:60%; background: radial-gradient(ellipse at 50% 80%, #1a1a2e 0%, #0a0a1a 100%); border-radius: 30% 30% 0 0 / 50% 50% 0 0; opacity:.8; animation: cas-bodies1 8s ease-in-out infinite alternate; }
.scn-crowded-and-suffocating .bodies-mid { position:absolute; bottom:20%; left:15%; right:15%; height:50%; background: radial-gradient(ellipse at 50% 70%, #1a1428 0%, #12101e 100%); border-radius: 50% 50% 0 0 / 40% 40% 0 0; opacity:.6; animation: cas-bodies2 10s ease-in-out infinite alternate-reverse; }
.scn-crowded-and-suffocating .arm-1 { position:absolute; bottom:30%; left:25%; width:20%; height:8%; background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1a 100%); border-radius: 40% 40% 20% 20% / 80% 80% 40% 40%; transform: rotate(-30deg); animation: cas-arm1 5s ease-in-out infinite; }
.scn-crowded-and-suffocating .arm-2 { position:absolute; bottom:25%; right:30%; width:18%; height:6%; background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1a 100%); border-radius: 40% 40% 20% 20% / 80% 80% 40% 40%; transform: rotate(20deg); animation: cas-arm2 5s ease-in-out infinite; }
.scn-crowded-and-suffocating .face-profile { position:absolute; bottom:45%; left:45%; width:12%; height:15%; background: radial-gradient(ellipse at 50% 40%, #2a2a3e 0%, #1a1a2e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 50% 50%; box-shadow: 2px 0 6px rgba(0,0,0,.5); animation: cas-face 6s ease-in-out infinite alternate; }
.scn-crowded-and-suffocating .sweat-drops { position:absolute; top:30%; left:20%; width:100%; height:100%; background: radial-gradient(circle at 30% 20%, rgba(200,200,255,.15) 0%, transparent 5%), radial-gradient(circle at 60% 40%, rgba(200,200,255,.1) 0%, transparent 4%), radial-gradient(circle at 80% 15%, rgba(200,200,255,.12) 0%, transparent 6%); animation: cas-sweat 3s ease-in-out infinite; }
@keyframes cas-walls   { 0% { opacity:.5; } 50% { opacity:.7; } 100% { opacity:.5; } }
@keyframes cas-bodies1 { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(0); } }
@keyframes cas-bodies2 { 0% { transform: translateY(0); } 50% { transform: translateY(3px); } 100% { transform: translateY(0); } }
@keyframes cas-arm1    { 0% { transform: rotate(-30deg); } 50% { transform: rotate(-20deg); } 100% { transform: rotate(-30deg); } }
@keyframes cas-arm2    { 0% { transform: rotate(20deg); } 50% { transform: rotate(10deg); } 100% { transform: rotate(20deg); } }
@keyframes cas-face    { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.8; } }
@keyframes cas-sweat   { 0% { opacity:.2; } 50% { opacity:.4; } 100% { opacity:.2; } }

.scn-chains-and-filth { background: linear-gradient(180deg, #0a0a12 0%, #14101a 40%, #1a1212 100%), radial-gradient(ellipse at 50% 90%, #2a1a1a 0%, transparent 70%); }
.scn-chains-and-filth .floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: repeating-linear-gradient(90deg, #1a1212 0px, #1a1212 8px, #12100e 8px, #12100e 16px); border-radius: 10% 10% 0 0 / 20% 20% 0 0; animation: caf-floor 20s linear infinite; }
.scn-chains-and-filth .tub { position:absolute; bottom:10%; left:40%; width:20%; height:25%; background: radial-gradient(ellipse at 50% 40%, #3a2a1a 0%, #1a1212 100%); border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%; box-shadow: inset 0 8px 12px rgba(0,0,0,.6), 0 4px 8px rgba(0,0,0,.4); animation: caf-tub 10s ease-in-out infinite alternate; }
.scn-chains-and-filth .chain-left { position:absolute; bottom:25%; left:15%; width:4px; height:40%; background: repeating-linear-gradient(0deg, #4a3a2a 0px, #4a3a2a 3px, #2a1a1a 3px, #2a1a1a 6px); transform: rotate(10deg); animation: caf-chain1 6s ease-in-out infinite; }
.scn-chains-and-filth .chain-right { position:absolute; bottom:25%; right:15%; width:4px; height:40%; background: repeating-linear-gradient(0deg, #4a3a2a 0px, #4a3a2a 3px, #2a1a1a 3px, #2a1a1a 6px); transform: rotate(-10deg); animation: caf-chain2 6s ease-in-out infinite reverse; }
.scn-chains-and-filth .figure-crouch { position:absolute; bottom:8%; left:30%; width:25%; height:40%; background: radial-gradient(ellipse at 50% 70%, #1a1a2e 0%, #0a0a1a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: caf-figure 8s ease-in-out infinite alternate; }
.scn-chains-and-filth .child { position:absolute; bottom:2%; left:55%; width:15%; height:20%; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: caf-child 5s ease-in-out infinite; }
.scn-chains-and-filth .drip { position:absolute; top:10%; left:50%; width:4px; height:20%; background: linear-gradient(180deg, rgba(200,180,160,.2) 0%, transparent 100%); border-radius: 0 0 50% 50% / 0 0 100% 100%; animation: caf-drip 3s ease-in-out infinite; }
@keyframes caf-floor { 0% { background-position: 0 0; } 100% { background-position: 32px 0; } }
@keyframes caf-tub  { 0% { transform: translateX(0); } 50% { transform: translateX(5px); } 100% { transform: translateX(0); } }
@keyframes caf-chain1 { 0% { transform: rotate(10deg); } 50% { transform: rotate(15deg); } 100% { transform: rotate(10deg); } }
@keyframes caf-chain2 { 0% { transform: rotate(-10deg); } 50% { transform: rotate(-15deg); } 100% { transform: rotate(-10deg); } }
@keyframes caf-figure { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-6px) scaleY(.95); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes caf-child  { 0% { transform: translateX(0); } 50% { transform: translateX(8px); } 100% { transform: translateX(0); } }
@keyframes caf-drip   { 0% { transform: scaleY(1); opacity:.6; } 50% { transform: scaleY(1.5); opacity:.3; } 100% { transform: scaleY(1); opacity:.6; } }

/* reflection-expedition */
.scn-reflection-expedition { background: linear-gradient(180deg, #1a1a1a 0%, #2a2420 40%, #3a3028 100%), radial-gradient(ellipse at 50% 80%, #4a3a2a 0%, transparent 70%); }
.scn-reflection-expedition .wall { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #3a3028 0%, #1a1814 100%); opacity:0.6; animation: re-wall 12s ease-in-out infinite alternate; }
.scn-reflection-expedition .desk { position:absolute; bottom:10%; left:15%; right:15%; height:20%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%); border-radius: 4px 4px 0 0; box-shadow: 0 -4px 10px rgba(0,0,0,0.6); }
.scn-reflection-expedition .paper { position:absolute; bottom:22%; left:30%; width:40%; height:15%; background: linear-gradient(135deg, #d4c8a0 0%, #c0b48a 100%); border-radius: 2px; box-shadow: 2px 2px 6px rgba(0,0,0,0.5); transform: rotate(-2deg); animation: re-paper 6s ease-in-out infinite alternate; }
.scn-reflection-expedition .quill { position:absolute; bottom:30%; left:55%; width:4%; height:20%; background: linear-gradient(180deg, #e0d0b0 0%, #b8a48a 60%, #8a7a6a 100%); border-radius: 50% 50% 10% 10% / 60% 60% 20% 20%; transform: rotate(15deg); transform-origin: bottom center; animation: re-quill 4s ease-in-out infinite alternate; }
.scn-reflection-expedition .inkwell { position:absolute; bottom:18%; left:50%; width:6%; height:8%; background: radial-gradient(circle at 50% 30%, #2a2a2a 0%, #1a1a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; box-shadow: 0 2px 4px rgba(0,0,0,0.7); }
.scn-reflection-expedition .candle { position:absolute; bottom:24%; left:70%; width:3%; height:18%; background: linear-gradient(180deg, #e8dcb0 0%, #c8b88a 100%); border-radius: 4px; box-shadow: inset 0 -4px 6px rgba(0,0,0,0.4); }
.scn-reflection-expedition .flame { position:absolute; bottom:40%; left:70.8%; width:1.5%; height:6%; background: radial-gradient(circle, #ffe080 0%, #ffa040 50%, transparent 100%); border-radius: 50%; filter: blur(2px); animation: re-flame 2s ease-in-out infinite alternate; }
.scn-reflection-expedition .shadow { position:absolute; bottom:10%; left:20%; width:60%; height:10%; background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.5) 0%, transparent 70%); animation: re-shadow 8s ease-in-out infinite alternate; }
@keyframes re-wall { 0% { opacity:0.5; } 50% { opacity:0.7; } 100% { opacity:0.6; } }
@keyframes re-paper { 0% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(-1deg) translateY(-2px); } 100% { transform: rotate(-3deg) translateY(0); } }
@keyframes re-quill { 0% { transform: rotate(15deg) scaleY(1); } 50% { transform: rotate(12deg) scaleY(0.95); } 100% { transform: rotate(18deg) scaleY(1); } }
@keyframes re-flame { 0% { transform: scaleY(0.8) rotate(-5deg); } 50% { transform: scaleY(1.1) rotate(2deg); } 100% { transform: scaleY(0.9) rotate(-2deg); } }
@keyframes re-shadow { 0% { opacity:0.3; } 50% { opacity:0.6; } 100% { opacity:0.4; } }

/* integrity-assertion */
.scn-integrity-assertion { background: linear-gradient(180deg, #201c18 0%, #302a24 50%, #181410 100%), radial-gradient(ellipse at 50% 70%, #3a3028 0%, transparent 60%); }
.scn-integrity-assertion .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #2a2420 0%, #1a1612 100%); opacity:0.7; animation: ia-wall 10s ease-in-out infinite alternate; }
.scn-integrity-assertion .desk { position:absolute; bottom:12%; left:10%; right:10%; height:22%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%); border-radius: 6px 6px 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,0.7); }
.scn-integrity-assertion .figure { position:absolute; bottom:22%; left:40%; width:15%; height:40%; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%; transform: rotate(5deg); transform-origin: bottom center; animation: ia-figure 6s ease-in-out infinite alternate; }
.scn-integrity-assertion .tablet { position:absolute; bottom:26%; left:42%; width:8%; height:12%; background: linear-gradient(180deg, #b8a88a 0%, #9a8a6a 100%); border-radius: 4px; transform: rotate(-3deg); animation: ia-tablet 8s ease-in-out infinite alternate; }
.scn-integrity-assertion .lantern { position:absolute; bottom:30%; left:70%; width:5%; height:12%; background: linear-gradient(180deg, #c8b08a 0%, #8a7a5a 100%); border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%; box-shadow: 0 0 8px 2px rgba(200,160,80,0.3); animation: ia-lantern 4s ease-in-out infinite alternate; }
.scn-integrity-assertion .glow { position:absolute; bottom:32%; left:68%; width:8%; height:15%; background: radial-gradient(circle, rgba(255,200,100,0.4) 0%, transparent 70%); filter: blur(6px); animation: ia-glow 3s ease-in-out infinite alternate; }
.scn-integrity-assertion .cloth { position:absolute; bottom:15%; left:55%; width:20%; height:8%; background: linear-gradient(135deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 20% 50% 10% 40% / 40% 30% 60% 20%; transform: rotate(-5deg); box-shadow: 0 2px 4px rgba(0,0,0,0.5); animation: ia-cloth 7s ease-in-out infinite alternate; }
@keyframes ia-wall { 0% { opacity:0.6; } 50% { opacity:0.8; } 100% { opacity:0.7; } }
@keyframes ia-figure { 0% { transform: rotate(5deg) translateY(0); } 50% { transform: rotate(3deg) translateY(-3px); } 100% { transform: rotate(6deg) translateY(0); } }
@keyframes ia-tablet { 0% { transform: rotate(-3deg) scale(1); } 50% { transform: rotate(-1deg) scale(0.97); } 100% { transform: rotate(-4deg) scale(1); } }
@keyframes ia-lantern { 0% { transform: rotate(0deg) scaleY(1); } 50% { transform: rotate(2deg) scaleY(1.05); } 100% { transform: rotate(-1deg) scaleY(1); } }
@keyframes ia-glow { 0% { opacity:0.3; transform: scale(0.9); } 50% { opacity:0.7; transform: scale(1.1); } 100% { opacity:0.4; transform: scale(1); } }
@keyframes ia-cloth { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-2px); } 100% { transform: rotate(-6deg) translateY(0); } }

/* treasury-memorial */
.scn-treasury-memorial { background: linear-gradient(180deg, #201c18 0%, #2a2420 40%, #181410 100%), radial-gradient(ellipse at 80% 60%, #3a3028 0%, transparent 70%); }
.scn-treasury-memorial .wall { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #2a2420 0%, #1a1612 100%); opacity:0.5; animation: tm-wall 15s ease-in-out infinite alternate; }
.scn-treasury-memorial .shelf { position:absolute; bottom:40%; left:10%; right:10%; height:6%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%); border-radius: 2px; box-shadow: 0 4px 6px rgba(0,0,0,0.6); }
.scn-treasury-memorial .scroll { position:absolute; bottom:32%; left:25%; width:50%; height:12%; background: linear-gradient(180deg, #d4c8a0 0%, #c0b48a 100%); border-radius: 0 0 20px 20px / 0 0 10px 10px; box-shadow: 0 2px 8px rgba(0,0,0,0.5); transform: rotate(1deg); animation: tm-scroll 8s ease-in-out infinite alternate; }
.scn-treasury-memorial .seal { position:absolute; bottom:34%; left:48%; width:8%; height:8%; background: radial-gradient(circle at 40% 30%, #a08060 0%, #705040 100%); border-radius: 50%; box-shadow: 0 0 6px 2px rgba(100,60,30,0.4); animation: tm-seal 5s ease-in-out infinite alternate; }
.scn-treasury-memorial .ribbon { position:absolute; bottom:33%; left:45%; width:6%; height:22%; background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%); border-radius: 2px; transform: rotate(-20deg); transform-origin: top center; animation: tm-ribbon 4s ease-in-out infinite alternate; }
.scn-treasury-memorial .candle-left { position:absolute; bottom:30%; left:15%; width:3%; height:15%; background: linear-gradient(180deg, #e8dcb0 0%, #c8b88a 100%); border-radius: 4px; box-shadow: inset 0 -4px 6px rgba(0,0,0,0.4); animation: tm-candle-left 3s ease-in-out infinite alternate; }
.scn-treasury-memorial .flame-left { position:absolute; bottom:44%; left:16.2%; width:1.5%; height:6%; background: radial-gradient(circle, #ffe080 0%, #ffa040 50%, transparent 100%); border-radius: 50%; filter: blur(2px); animation: tm-flame-left 2.5s ease-in-out infinite alternate; }
.scn-treasury-memorial .candle-right { position:absolute; bottom:30%; right:15%; width:3%; height:15%; background: linear-gradient(180deg, #e8dcb0 0%, #c8b88a 100%); border-radius: 4px; box-shadow: inset 0 -4px 6px rgba(0,0,0,0.4); animation: tm-candle-right 3.5s ease-in-out infinite alternate-reverse; }
.scn-treasury-memorial .flame-right { position:absolute; bottom:44%; right:16.2%; width:1.5%; height:6%; background: radial-gradient(circle, #ffe080 0%, #ffa040 50%, transparent 100%); border-radius: 50%; filter: blur(2px); animation: tm-flame-right 2.8s ease-in-out infinite alternate-reverse; }
@keyframes tm-wall { 0% { opacity:0.4; } 50% { opacity:0.6; } 100% { opacity:0.5; } }
@keyframes tm-scroll { 0% { transform: rotate(1deg) translateY(0); } 50% { transform: rotate(0deg) translateY(-2px); } 100% { transform: rotate(2deg) translateY(0); } }
@keyframes tm-seal { 0% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.05) rotate(3deg); } 100% { transform: scale(0.95) rotate(-2deg); } }
@keyframes tm-ribbon { 0% { transform: rotate(-20deg) scaleY(1); } 50% { transform: rotate(-18deg) scaleY(0.95); } 100% { transform: rotate(-22deg) scaleY(1); } }
@keyframes tm-candle-left { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.97); } 100% { transform: scaleY(1.02); } }
@keyframes tm-flame-left { 0% { transform: scaleY(0.8) rotate(-3deg); } 50% { transform: scaleY(1.15) rotate(3deg); } 100% { transform: scaleY(0.9) rotate(-1deg); } }
@keyframes tm-candle-right { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.03); } 100% { transform: scaleY(0.97); } }
@keyframes tm-flame-right { 0% { transform: scaleY(0.85) rotate(2deg); } 50% { transform: scaleY(1.1) rotate(-2deg); } 100% { transform: scaleY(0.95) rotate(1deg); } }

/* memorial-continues */
.scn-memorial-continues { background: linear-gradient(180deg, #1a1a1a 0%, #282420 40%, #181410 100%), radial-gradient(ellipse at 30% 70%, #3a3028 0%, transparent 70%); }
.scn-memorial-continues .wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #2a2420 0%, #1a1612 100%); opacity:0.6; animation: mc-wall 14s ease-in-out infinite alternate; }
.scn-memorial-continues .table { position:absolute; bottom:10%; left:5%; right:5%; height:25%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%); border-radius: 8px 8px 0 0; box-shadow: 0 -4px 10px rgba(0,0,0,0.7); }
.scn-memorial-continues .letter { position:absolute; bottom:25%; left:20%; width:60%; height:20%; background: linear-gradient(135deg, #d4c8a0 0%, #c0b48a 100%); border-radius: 2px; box-shadow: 1px 2px 8px rgba(0,0,0,0.5); transform: rotate(-1deg); animation: mc-letter 7s ease-in-out infinite alternate; }
.scn-memorial-continues .broken-seal { position:absolute; bottom:30%; left:45%; width:6%; height:6%; background: radial-gradient(circle at 40% 30%, #a08060 0%, #705040 100%); border-radius: 50% 50% 20% 50% / 50% 40% 60% 50%; transform: rotate(30deg); box-shadow: 0 0 4px 1px rgba(100,60,30,0.3); animation: mc-broken-seal 6s ease-in-out infinite alternate; }
.scn-memorial-continues .ink-bottle { position:absolute; bottom:22%; left:15%; width:5%; height:7%; background: radial-gradient(circle at 50% 30%, #2a2a2a 0%, #1a1a1a 100%); border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%; box-shadow: 0 2px 4px rgba(0,0,0,0.6); }
.scn-memorial-continues .quill-stand { position:absolute; bottom:22%; right:18%; width:4%; height:10%; background: linear-gradient(180deg, #c0b08a 0%, #8a7a5a 100%); border-radius: 20% 20% 10% 10% / 40% 40% 10% 10%; transform: rotate(10deg); animation: mc-quill-stand 5s ease-in-out infinite alternate; }
.scn-memorial-continues .candle { position:absolute; bottom:28%; right:30%; width:3%; height:18%; background: linear-gradient(180deg, #e8dcb0 0%, #c8b88a 100%); border-radius: 4px; box-shadow: inset 0 -4px 6px rgba(0,0,0,0.4); }
.scn-memorial-continues .flame { position:absolute; bottom:45%; right:31.2%; width:1.5%; height:6%; background: radial-gradient(circle, #ffe080 0%, #ffa040 50%, transparent 100%); border-radius: 50%; filter: blur(2px); animation: mc-flame 2.2s ease-in-out infinite alternate; }
@keyframes mc-wall { 0% { opacity:0.5; } 50% { opacity:0.7; } 100% { opacity:0.6; } }
@keyframes mc-letter { 0% { transform: rotate(-1deg) translateY(0); } 50% { transform: rotate(0deg) translateY(-2px); } 100% { transform: rotate(-2deg) translateY(0); } }
@keyframes mc-broken-seal { 0% { transform: rotate(30deg) scale(1); } 50% { transform: rotate(25deg) scale(0.95); } 100% { transform: rotate(35deg) scale(1.02); } }
@keyframes mc-quill-stand { 0% { transform: rotate(10deg) scaleY(1); } 50% { transform: rotate(8deg) scaleY(0.97); } 100% { transform: rotate(12deg) scaleY(1); } }
@keyframes mc-flame { 0% { transform: scaleY(0.85) rotate(-4deg); } 50% { transform: scaleY(1.1) rotate(3deg); } 100% { transform: scaleY(0.9) rotate(-1deg); } }

.scn-subscriber-list-q-r { background: linear-gradient(180deg, #f5e6d3 0%, #e8d5b8 50%, #d4bfa0 100%), radial-gradient(ellipse at 50% 20%, #fff8f0 0%, transparent 60%); }
.scn-subscriber-list-q-r .wall { position:absolute; inset:0; background: linear-gradient(180deg, #f0e0c8 0%, #dcc9ad 100%); }
.scn-subscriber-list-q-r .bookshelf { position:absolute; top:8%; left:5%; right:5%; height:30%; background: linear-gradient(180deg, #8b6f47 0%, #6b5436 100%); border-radius:4px; box-shadow: inset 0 10px 20px rgba(0,0,0,.3), 0 4px 8px rgba(0,0,0,.2); }
.scn-subscriber-list-q-r .desk { position:absolute; bottom:8%; left:10%; right:10%; height:22%; background: linear-gradient(180deg, #a0825a 0%, #7a6545 100%); border-radius:6px; box-shadow: 0 -4px 8px rgba(0,0,0,.3); }
.scn-subscriber-list-q-r .book-open { position:absolute; bottom:20%; left:35%; width:25%; height:20%; background: linear-gradient(135deg, #d4b896 0%, #b89e78 100%); border-radius:4px; transform: rotate(-3deg); box-shadow: 0 6px 12px rgba(0,0,0,.3); animation: slqr-book 8s ease-in-out infinite alternate; }
.scn-subscriber-list-q-r .quill { position:absolute; bottom:28%; left:48%; width:8px; height:40px; background: linear-gradient(180deg, #f0e0c0 0%, #c0a880 100%); border-radius:4px 4px 0 0; transform-origin: bottom center; animation: slqr-quill 5s ease-in-out infinite; }
.scn-subscriber-list-q-r .inkwell { position:absolute; bottom:24%; left:46%; width:16px; height:20px; background: radial-gradient(circle at 50% 30%, #2a2a2a 0%, #151515 100%); border-radius:50% 50% 30% 30%; box-shadow: 0 4px 6px rgba(0,0,0,.5); }
.scn-subscriber-list-q-r .window-glow { position:absolute; top:2%; right:10%; width:20%; height:35%; background: radial-gradient(ellipse at 50% 50%, rgba(255,240,200,.6) 0%, transparent 70%); animation: slqr-glow 6s ease-in-out infinite alternate; }
.scn-subscriber-list-q-r .reader { position:absolute; bottom:14%; left:20%; width:40px; height:60px; background: linear-gradient(180deg, #3a2a2a 0%, #1a1515 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: slqr-reader 10s ease-in-out infinite; }
.scn-subscriber-list-q-r .lamp { position:absolute; bottom:25%; left:15%; width:10px; height:25px; background: linear-gradient(180deg, #c0a060 0%, #8a7040 100%); border-radius:4px; box-shadow: 0 0 20px 6px rgba(255,200,100,.5); animation: slqr-lamp 4s ease-in-out infinite alternate; }
@keyframes slqr-book { 0% { transform: rotate(-3deg) scale(1); } 50% { transform: rotate(-1deg) scale(1.02); } 100% { transform: rotate(-3deg) scale(1); } }
@keyframes slqr-quill { 0% { transform: rotate(0deg) translateY(0); } 25% { transform: rotate(8deg) translateY(-4px); } 50% { transform: rotate(-5deg) translateY(-2px); } 75% { transform: rotate(4deg) translateY(-6px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes slqr-glow { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes slqr-reader { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(3px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes slqr-lamp { 0% { box-shadow: 0 0 15px 4px rgba(255,200,100,.5); transform: scaleY(1); } 50% { box-shadow: 0 0 30px 10px rgba(255,200,100,.7); transform: scaleY(1.02); } 100% { box-shadow: 0 0 15px 4px rgba(255,200,100,.5); transform: scaleY(1); } }

.scn-subscriber-list-s { background: linear-gradient(180deg, #e8dac0 0%, #d4c4a8 50%, #c0ae90 100%), radial-gradient(ellipse at 50% 30%, #fff8e0 0%, transparent 70%); }
.scn-subscriber-list-s .wall { position:absolute; inset:0; background: linear-gradient(180deg, #e8d8b8 0%, #d4c0a0 100%); }
.scn-subscriber-list-s .bookshelf-left { position:absolute; top:10%; left:5%; width:40%; height:35%; background: linear-gradient(180deg, #7a6538 0%, #5e4a2a 100%); border-radius:4px; box-shadow: inset 0 10px 20px rgba(0,0,0,.3); }
.scn-subscriber-list-s .bookshelf-right { position:absolute; top:10%; right:5%; width:40%; height:45%; background: linear-gradient(180deg, #7a6538 0%, #5e4a2a 100%); border-radius:4px; box-shadow: inset 0 10px 20px rgba(0,0,0,.3); }
.scn-subscriber-list-s .desk { position:absolute; bottom:8%; left:15%; right:15%; height:18%; background: linear-gradient(180deg, #8a7045 0%, #6b5535 100%); border-radius:6px; box-shadow: 0 -4px 8px rgba(0,0,0,.3); }
.scn-subscriber-list-s .letter { position:absolute; bottom:18%; left:40%; width:20%; height:14%; background: linear-gradient(135deg, #f5e6d0 0%, #dcc8ac 100%); border-radius:2px; transform: rotate(2deg); box-shadow: 0 4px 8px rgba(0,0,0,.2); animation: sls-letter 12s ease-in-out infinite alternate; }
.scn-subscriber-list-s .seal { position:absolute; bottom:20%; left:48%; width:12px; height:12px; background: radial-gradient(circle, #c06040 0%, #8a3a20 100%); border-radius:50%; box-shadow: 0 2px 4px rgba(0,0,0,.3); animation: sls-seal 3s ease-in-out infinite; }
.scn-subscriber-list-s .candle { position:absolute; bottom:22%; left:30%; width:8px; height:35px; background: linear-gradient(180deg, #f0e0c0 0%, #d4b880 100%); border-radius:4px; box-shadow: 0 0 12px 4px rgba(255,180,80,.5); animation: sls-candle 5s ease-in-out infinite alternate; }
.scn-subscriber-list-s .reader { position:absolute; bottom:12%; left:25%; width:36px; height:55px; background: linear-gradient(180deg, #2a2020 0%, #151010 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sls-reader 9s ease-in-out infinite; }
@keyframes sls-letter { 0% { transform: rotate(2deg) scale(1); } 50% { transform: rotate(0deg) scale(1.03); } 100% { transform: rotate(2deg) scale(1); } }
@keyframes sls-seal { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(1.1); } 100% { transform: translateY(0) scale(1); } }
@keyframes sls-candle { 0% { box-shadow: 0 0 10px 3px rgba(255,180,80,.6); } 50% { box-shadow: 0 0 20px 6px rgba(255,180,80,.8); } 100% { box-shadow: 0 0 10px 3px rgba(255,180,80,.6); } }
@keyframes sls-reader { 0% { transform: translateX(0) rotate(0deg); } 33% { transform: translateX(2px) rotate(1deg); } 66% { transform: translateX(-1px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }

.scn-subscriber-list-v-w { background: linear-gradient(180deg, #e0d0b0 0%, #d0be9e 50%, #bca88a 100%), radial-gradient(ellipse at 40% 20%, #fff4e0 0%, transparent 60%); }
.scn-subscriber-list-v-w .wall { position:absolute; inset:0; background: linear-gradient(180deg, #e0ccac 0%, #cbb696 100%); }
.scn-subscriber-list-v-w .window { position:absolute; top:5%; right:8%; width:25%; height:40%; background: radial-gradient(ellipse at 50% 50%, rgba(255,240,200,.7) 0%, rgba(200,180,150,.4) 70%, transparent 100%); border:6px solid #5e4a2a; border-radius:4px; box-shadow: inset 0 0 30px rgba(255,240,200,.3); animation: slvw-window 10s ease-in-out infinite alternate; }
.scn-subscriber-list-v-w .desk { position:absolute; bottom:6%; left:10%; right:10%; height:20%; background: linear-gradient(180deg, #8a7040 0%, #6a5530 100%); border-radius:4px; box-shadow: 0 -4px 8px rgba(0,0,0,.3); }
.scn-subscriber-list-v-w .ledger { position:absolute; bottom:16%; left:35%; width:22%; height:18%; background: linear-gradient(135deg, #d8c8a8 0%, #bca88a 100%); border-radius:3px; transform: rotate(1deg); box-shadow: 0 4px 8px rgba(0,0,0,.2); animation: slvw-ledger 14s ease-in-out infinite alternate; }
.scn-subscriber-list-v-w .quill { position:absolute; bottom:24%; left:42%; width:6px; height:35px; background: linear-gradient(180deg, #f0dcc0 0%, #c8b090 100%); border-radius:3px 3px 0 0; transform-origin: bottom center; animation: slvw-quill 6s ease-in-out infinite; }
.scn-subscriber-list-v-w .inkwell { position:absolute; bottom:20%; left:40%; width:14px; height:18px; background: radial-gradient(circle at 50% 30%, #2a2a2a 0%, #101010 100%); border-radius:50% 50% 30% 30%; box-shadow: 0 4px 6px rgba(0,0,0,.5); }
.scn-subscriber-list-v-w .reader { position:absolute; bottom:10%; left:22%; width:34px; height:52px; background: linear-gradient(180deg, #2a1e1a 0%, #1a1010 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: slvw-reader 11s ease-in-out infinite; }
.scn-subscriber-list-v-w .lamp { position:absolute; bottom:20%; left:16%; width:8px; height:22px; background: linear-gradient(180deg, #c8a060 0%, #8a6a3a 100%); border-radius:3px; box-shadow: 0 0 18px 5px rgba(255,200,100,.5); animation: slvw-lamp 4s ease-in-out infinite alternate; }
.scn-subscriber-list-v-w .papers { position:absolute; bottom:12%; left:55%; width:15%; height:10%; background: linear-gradient(135deg, #f0e0c8 0%, #d4c0a0 100%); border-radius:2px; transform: rotate(-4deg); box-shadow: 0 2px 4px rgba(0,0,0,.2); animation: slvw-papers 7s ease-in-out infinite; }
@keyframes slvw-window { 0% { opacity:0.6; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes slvw-ledger { 0% { transform: rotate(1deg) scale(1); } 50% { transform: rotate(3deg) scale(1.02); } 100% { transform: rotate(1deg) scale(1); } }
@keyframes slvw-quill { 0% { transform: rotate(-5deg) translateY(0); } 25% { transform: rotate(2deg) translateY(-3px); } 50% { transform: rotate(-8deg) translateY(-1px); } 75% { transform: rotate(4deg) translateY(-5px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes slvw-reader { 0% { transform: translateX(0) rotate(0deg); } 33% { transform: translateX(2px) rotate(1deg); } 66% { transform: translateX(-1px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes slvw-lamp { 0% { box-shadow: 0 0 12px 3px rgba(255,200,100,.5); } 50% { box-shadow: 0 0 24px 8px rgba(255,200,100,.7); } 100% { box-shadow: 0 0 12px 3px rgba(255,200,100,.5); } }
@keyframes slvw-papers { 0% { transform: rotate(-4deg) translateX(0); } 50% { transform: rotate(-2deg) translateX(4px); } 100% { transform: rotate(-4deg) translateX(0); } }

.scn-chapter-summaries-part-1 { background: linear-gradient(180deg, #f0e0c8 0%, #e0ceb4 50%, #cbb698 100%), radial-gradient(ellipse at 50% 40%, #fff8ee 0%, transparent 70%); }
.scn-chapter-summaries-part-1 .wall { position:absolute; inset:0; background: linear-gradient(180deg, #f0ddc0 0%, #dbc8a8 100%); }
.scn-chapter-summaries-part-1 .window { position:absolute; top:4%; left:8%; width:30%; height:45%; background: radial-gradient(ellipse at 50% 50%, rgba(255,245,220,.6) 0%, rgba(200,180,150,.3) 70%, transparent 100%); border:5px solid #5e4a2a; border-radius:4px; box-shadow: inset 0 0 40px rgba(255,245,220,.3); animation: csp1-window 12s ease-in-out infinite alternate; }
.scn-chapter-summaries-part-1 .desk { position:absolute; bottom:6%; left:12%; right:12%; height:22%; background: linear-gradient(180deg, #8a6f45 0%, #6a5432 100%); border-radius:6px; box-shadow: 0 -4px 8px rgba(0,0,0,.3); }
.scn-chapter-summaries-part-1 .open-book { position:absolute; bottom:18%; left:30%; width:28%; height:22%; background: linear-gradient(135deg, #e8d4b4 0%, #c8b090 100%); border-radius:2px; transform: rotate(-2deg); box-shadow: 0 6px 12px rgba(0,0,0,.3); animation: csp1-book 9s ease-in-out infinite alternate; }
.scn-chapter-summaries-part-1 .page-shadow { position:absolute; bottom:18%; left:33%; width:22%; height:20%; background: linear-gradient(180deg, transparent 20%, rgba(0,0,0,.1) 40%, transparent 60%); border-radius:2px; transform: rotate(-2deg); animation: csp1-shadow 6s ease-in-out infinite; }
.scn-chapter-summaries-part-1 .quill { position:absolute; bottom:28%; left:44%; width:6px; height:38px; background: linear-gradient(180deg, #f0d8b8 0%, #c0a880 100%); border-radius:3px 3px 0 0; transform-origin: bottom center; animation: csp1-quill 5s ease-in-out infinite; }
.scn-chapter-summaries-part-1 .inkwell { position:absolute; bottom:24%; left:42%; width:14px; height:20px; background: radial-gradient(circle at 50% 30%, #1a1a1a 0%, #0a0a0a 100%); border-radius:50% 50% 30% 30%; box-shadow: 0 4px 6px rgba(0,0,0,.5); }
.scn-chapter-summaries-part-1 .reader-hand { position:absolute; bottom:12%; left:38%; width:12px; height:35px; background: linear-gradient(180deg, #c8a080 0%, #8a6040 100%); border-radius:50% 50% 30% 30% / 40% 40% 30% 30%; transform-origin: bottom center; animation: csp1-hand 4s ease-in-out infinite; }
.scn-chapter-summaries-part-1 .candle { position:absolute; bottom:20%; left:18%; width:8px; height:30px; background: linear-gradient(180deg, #f0dcb8 0%, #d0b888 100%); border-radius:4px; box-shadow: 0 0 14px 4px rgba(255,180,80,.5); animation: csp1-candle 7s ease-in-out infinite alternate; }
@keyframes csp1-window { 0% { opacity:0.5; } 50% { opacity:0.9; } 100% { opacity:0.6; } }
@keyframes csp1-book { 0% { transform: rotate(-2deg) scale(1); } 50% { transform: rotate(0deg) scale(1.03); } 100% { transform: rotate(-2deg) scale(1); } }
@keyframes csp1-shadow { 0% { opacity:0.3; } 50% { opacity:0.6; } 100% { opacity:0.3; } }
@keyframes csp1-quill { 0% { transform: rotate(-3deg) translateY(0); } 25% { transform: rotate(6deg) translateY(-4px); } 50% { transform: rotate(-8deg) translateY(-2px); } 75% { transform: rotate(4deg) translateY(-6px); } 100% { transform: rotate(-3deg) translateY(0); } }
@keyframes csp1-hand { 0% { transform: translateX(0) rotate(0deg); } 33% { transform: translateX(3px) rotate(2deg); } 66% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes csp1-candle { 0% { box-shadow: 0 0 10px 3px rgba(255,180,80,.4); transform: scaleY(1); } 50% { box-shadow: 0 0 22px 7px rgba(255,180,80,.7); transform: scaleY(1.03); } 100% { box-shadow: 0 0 10px 3px rgba(255,180,80,.4); transform: scaleY(1); } }

/* Scene: after-collision-rescue (acr) */
.scn-after-collision-rescue { background: linear-gradient(180deg, #f5e6c8 0%, #c8b08a 30%, #7a5a3a 100%), radial-gradient(ellipse at 50% 0%, #f5c882 0%, transparent 60%); }
.scn-after-collision-rescue .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #e8d4b0 0%, #b8906a 100%); animation: acr-sky 6s ease-in-out infinite alternate; }
.scn-after-collision-rescue .sea { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #3a5a6a 0%, #1a3a4a 100%); animation: acr-sea 4s ease-in-out infinite alternate; }
.scn-after-collision-rescue .ship-left { position:absolute; bottom:30%; left:5%; width:35%; height:45%; background: linear-gradient(90deg, #4a2a1a 0%, #6a3a2a 100%); border-radius: 80% 0% 20% 0% / 60% 0% 40% 0%; box-shadow: inset 0 -20px 30px rgba(0,0,0,.6); animation: acr-sway 3s ease-in-out infinite; }
.scn-after-collision-rescue .ship-right { position:absolute; bottom:32%; right:5%; width:30%; height:40%; background: linear-gradient(270deg, #3a2010 0%, #5a2a1a 100%); border-radius: 0% 80% 0% 20% / 0% 60% 0% 40%; box-shadow: inset 0 -20px 30px rgba(0,0,0,.6); animation: acr-sway 3s ease-in-out infinite reverse; }
.scn-after-collision-rescue .grapple { position:absolute; bottom:45%; left:40%; width:20%; height:8%; background: linear-gradient(180deg, #555 0%, #333 100%); clip-path: polygon(0 40%, 100% 40%, 80% 100%, 20% 100%); animation: acr-jerk 2s ease-in-out infinite; }
.scn-after-collision-rescue .fire { position:absolute; bottom:38%; left:38%; width:12%; height:15%; background: radial-gradient(circle, #e8a050 0%, #c07030 40%, transparent 70%); animation: acr-fire 1.5s ease-in-out infinite alternate; }
.scn-after-collision-rescue .figure-left { position:absolute; bottom:35%; left:20%; width:6%; height:12%; background: linear-gradient(180deg, #2a1a0a 0%, #0a0502 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: acr-reach 4s ease-in-out infinite; }
.scn-after-collision-rescue .figure-right { position:absolute; bottom:37%; right:20%; width:5%; height:11%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: acr-reach 4s ease-in-out infinite 2s; }
@keyframes acr-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes acr-sea { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(0) } }
@keyframes acr-sway { 0% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-2deg) } }
@keyframes acr-jerk { 0% { transform: translateY(0) } 30% { transform: translateY(-6px) } 60% { transform: translateY(2px) } 100% { transform: translateY(0) } }
@keyframes acr-fire { 0% { transform: scale(1) rotate(-5deg); opacity:0.6 } 50% { transform: scale(1.3) rotate(5deg); opacity:1 } 100% { transform: scale(1) rotate(-5deg); opacity:0.7 } }
@keyframes acr-reach { 0% { transform: translateY(0) rotate(-5deg) } 50% { transform: translateY(-10px) rotate(10deg) } 100% { transform: translateY(0) rotate(-5deg) } }

/* Scene: providence-reflections (pr) */
.scn-providence-reflections { background: linear-gradient(180deg, #2c1e12 0%, #1a1008 40%, #0d0804 100%), radial-gradient(ellipse at 30% 50%, #4a3520 0%, transparent 70%); }
.scn-providence-reflections .wall { position:absolute; inset:0; background: linear-gradient(90deg, #2a1a0a 0%, #3a2a1a 50%, #2a1a0a 100%); animation: pr-wall 10s ease-in-out infinite alternate; }
.scn-providence-reflections .window { position:absolute; top:20%; left:20%; width:25%; height:40%; background: linear-gradient(135deg, #6a5a3a 0%, #8a7a5a 100%); border: 4px solid #3a2a1a; border-radius: 4px; box-shadow: inset 0 0 0 6px #4a3a2a; }
.scn-providence-reflections .light-beam { position:absolute; top:20%; left:20%; width:25%; height:40%; background: linear-gradient(135deg, rgba(255,220,160,0.4) 0%, rgba(255,220,160,0.2) 40%, transparent 100%); clip-path: polygon(0 0, 100% 0, 80% 100%, 0% 100%); animation: pr-beam 8s ease-in-out infinite alternate; }
.scn-providence-reflections .figure { position:absolute; bottom:20%; left:30%; width:6%; height:15%; background: linear-gradient(180deg, #1a1008 0%, #0a0502 100%); border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%; box-shadow: 2px 2px 8px rgba(0,0,0,.8); animation: pr-kneel 12s ease-in-out infinite; }
.scn-providence-reflections .candle { position:absolute; bottom:25%; left:38%; width:2%; height:8%; background: linear-gradient(180deg, #d0a050 0%, #8a6020 100%); border-radius: 2px; box-shadow: 0 0 12px 4px #ffc860; animation: pr-candle 3s ease-in-out infinite alternate; }
.scn-providence-reflections .book { position:absolute; bottom:20%; left:42%; width:6%; height:8%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 2px; transform: rotate(-10deg); box-shadow: 1px 1px 4px rgba(0,0,0,.6); animation: pr-book 15s ease-in-out infinite; }
.scn-providence-reflections .dust { position:absolute; top:60%; left:10%; width:80%; height:30%; background: repeating-radial-gradient(circle at 30% 50%, rgba(255,220,160,0.03) 0%, transparent 5%); filter: blur(2px); animation: pr-dust 20s linear infinite; }
@keyframes pr-wall { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes pr-beam { 0% { opacity:0.2; transform: scaleX(1) } 50% { opacity:0.5; transform: scaleX(1.1) } 100% { opacity:0.3; transform: scaleX(0.9) } }
@keyframes pr-kneel { 0% { transform: translateY(0) rotate(2deg) } 50% { transform: translateY(-2px) rotate(-2deg) } 100% { transform: translateY(0) rotate(2deg) } }
@keyframes pr-candle { 0% { transform: scaleY(1) rotate(-1deg); opacity:0.9 } 50% { transform: scaleY(1.1) rotate(2deg); opacity:1 } 100% { transform: scaleY(1) rotate(-1deg); opacity:0.8 } }
@keyframes pr-book { 0% { transform: rotate(-10deg) translateY(0) } 50% { transform: rotate(-8deg) translateY(-3px) } 100% { transform: rotate(-10deg) translateY(0) } }
@keyframes pr-dust { 0% { background-position: 0 0 } 100% { background-position: 200px 200px } }

/* Scene: landing-belle-isle (lb) */
.scn-landing-belle-isle { background: linear-gradient(180deg, #f0e0c0 0%, #d0b890 30%, #8a7050 100%), radial-gradient(ellipse at 50% 100%, #a08060 0%, transparent 70%); }
.scn-landing-belle-isle .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #e8d8b8 0%, #b89870 100%); animation: lb-sky 8s ease-in-out infinite alternate; }
.scn-landing-belle-isle .cliffs { position:absolute; bottom:45%; left:0; right:30%; height:30%; background: linear-gradient(180deg, #7a6a4a 0%, #4a3a2a 100%); border-radius: 0 40% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.4); animation: lb-cliffs 12s ease-in-out infinite; }
.scn-landing-belle-isle .sea { position:absolute; bottom:20%; left:0; right:0; height:40%; background: linear-gradient(180deg, #4a7a8a 0%, #2a5a6a 100%); animation: lb-sea 5s ease-in-out infinite alternate; }
.scn-landing-belle-isle .beach { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #c8b080 0%, #a08050 100%); border-radius: 20% 10% 0 0; }
.scn-landing-belle-isle .boat-left { position:absolute; bottom:18%; left:10%; width:20%; height:10%; background: linear-gradient(90deg, #5a3a2a 0%, #3a2212 100%); border-radius: 30% 0% 0% 30% / 50% 0% 0% 50%; animation: lb-row 3s ease-in-out infinite; }
.scn-landing-belle-isle .boat-right { position:absolute; bottom:22%; right:15%; width:18%; height:9%; background: linear-gradient(270deg, #5a3a2a 0%, #3a2212 100%); border-radius: 0% 30% 30% 0% / 0% 50% 50% 0%; animation: lb-row 3s ease-in-out infinite 1.5s; }
.scn-landing-belle-isle .soldiers { position:absolute; bottom:20%; left:15%; width:8%; height:12%; background: linear-gradient(180deg, #1a120a 0%, #0a0804 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 2px 0 4px rgba(0,0,0,.5); animation: lb-march 6s ease-in-out infinite; }
.scn-landing-belle-isle .flag { position:absolute; bottom:28%; right:20%; width:2%; height:10%; background: #4a2a1a; transform-origin: bottom; animation: lb-flag 4s ease-in-out infinite alternate; }
.scn-landing-belle-isle .flag::after { content:""; position:absolute; top:0; left:0; width:250%; height:60%; background: linear-gradient(90deg, #c05030 0%, #a04020 100%); clip-path: polygon(0 0, 100% 0, 100% 100%, 0% 100%); animation: lb-flag-wave 2s ease-in-out infinite alternate; }
@keyframes lb-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.75 } }
@keyframes lb-cliffs { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(0) } }
@keyframes lb-sea { 0% { transform: translateY(0) } 50% { transform: translateY(-5px) } 100% { transform: translateY(0) } }
@keyframes lb-row { 0% { transform: translateY(0) rotate(-3deg) } 50% { transform: translateY(-4px) rotate(3deg) } 100% { transform: translateY(0) rotate(-3deg) } }
@keyframes lb-march { 0% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-4px) rotate(5deg) } 50% { transform: translateY(0) rotate(0deg) } 75% { transform: translateY(-4px) rotate(-5deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes lb-flag { 0% { transform: rotate(-10deg) } 50% { transform: rotate(10deg) } 100% { transform: rotate(-10deg) } }
@keyframes lb-flag-wave { 0% { transform: skewX(-10deg) } 100% { transform: skewX(10deg) } }

/* Scene: near-citadel-danger (nd) */
.scn-near-citadel-danger { background: linear-gradient(180deg, #e0c8a0 0%, #b89870 30%, #6a5030 100%), radial-gradient(ellipse at 50% 0%, #f0d080 0%, transparent 60%); }
.scn-near-citadel-danger .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #e8d0a8 0%, #b09060 100%); animation: nd-sky 7s ease-in-out infinite alternate; }
.scn-near-citadel-danger .ground { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #5a4030 0%, #3a2818 100%); border-radius: 10% 10% 0 0; }
.scn-near-citadel-danger .mortar { position:absolute; bottom:20%; left:20%; width:20%; height:30%; background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 8px 20px rgba(0,0,0,.6); animation: nd-recoil 2s ease-in-out infinite; }
.scn-near-citadel-danger .figure { position:absolute; bottom:30%; left:45%; width:6%; height:14%; background: linear-gradient(180deg, #1a1008 0%, #0a0502 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(10deg); animation: nd-crouch 4s ease-in-out infinite; }
.scn-near-citadel-danger .shell-trail-1 { position:absolute; bottom:35%; left:30%; width:30%; height:2%; background: linear-gradient(90deg, #c08040 0%, transparent 100%); animation: nd-trail1 2s ease-out infinite; }
.scn-near-citadel-danger .shell-trail-2 { position:absolute; bottom:30%; left:25%; width:25%; height:2%; background: linear-gradient(90deg, #c08040 0%, transparent 100%); animation: nd-trail2 2.5s ease-out infinite 1s; }
.scn-near-citadel-danger .explosion { position:absolute; bottom:45%; right:20%; width:10%; height:15%; background: radial-gradient(circle, #f0a050 0%, #c07030 40%, transparent 70%); animation: nd-boom 1.5s ease-in-out infinite; }
@keyframes nd-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes nd-recoil { 0% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-8px) rotate(-3deg) } 50% { transform: translateY(0) rotate(0deg) } 75% { transform: translateY(-8px) rotate(3deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes nd-crouch { 0% { transform: rotate(10deg) translateY(0) } 50% { transform: rotate(5deg) translateY(-5px) } 100% { transform: rotate(10deg) translateY(0) } }
@keyframes nd-trail1 { 0% { transform: translateX(0) scaleY(1); opacity:1 } 100% { transform: translateX(100px) scaleY(0.5); opacity:0 } }
@keyframes nd-trail2 { 0% { transform: translateX(0) scaleY(1); opacity:1 } 100% { transform: translateX(80px) scaleY(0.5); opacity:0 } }
@keyframes nd-boom { 0% { transform: scale(0.5); opacity:0.3 } 50% { transform: scale(1.5); opacity:1 } 100% { transform: scale(0.8); opacity:0.5 } }

/* circumcision-and-naming - bright interior, calm, ritual */
.scn-circumcision-and-naming {
  background: linear-gradient(180deg, #f5e6d0 0%, #e8d5b8 40%, #d4c0a0 100%),
              radial-gradient(ellipse at 50% 100%, #f0e0c0 0%, transparent 70%);
}
.scn-circumcision-and-naming .bg-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #e8d5b8 0%, #d4c0a0 100%);
  animation: cn-wall 20s ease-in-out infinite alternate;
}
.scn-circumcision-and-naming .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #c4a878 0%, #b89568 100%);
  border-radius: 20% 80% 0 0 / 10% 30% 0 0;
}
.scn-circumcision-and-naming .altar {
  position: absolute; bottom: 22%; left: 50%; transform: translateX(-50%);
  width: 80px; height: 50px;
  background: linear-gradient(180deg, #8b6b4d 0%, #6b4f3a 100%);
  border-radius: 6px; box-shadow: 0 4px 12px rgba(0,0,0,0.3);
  animation: cn-altar 6s ease-in-out infinite;
}
.scn-circumcision-and-naming .priest {
  position: absolute; bottom: 27%; left: 40%; width: 22px; height: 45px;
  background: linear-gradient(180deg, #6b4f3a 0%, #3e2c1f 100%);
  border-radius: 40% 40% 50% 50% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cn-priest 8s ease-in-out infinite;
}
.scn-circumcision-and-naming .child {
  position: absolute; bottom: 26%; left: 54%; width: 16px; height: 30px;
  background: linear-gradient(180deg, #c8a878 0%, #a87c50 100%);
  border-radius: 45% 45% 50% 50% / 60% 60% 40% 40%;
  animation: cn-child 6s ease-in-out infinite alternate;
}
.scn-circumcision-and-naming .flame {
  position: absolute; bottom: 22%; left: 50%; transform: translateX(-50%);
  width: 8px; height: 14px;
  background: radial-gradient(circle, #ffd060 0%, #e8a020 50%, transparent 100%);
  border-radius: 50% 50% 0 0;
  box-shadow: 0 0 18px 6px rgba(255,208,96,0.6);
  animation: cn-flame 3s ease-in-out infinite;
}
.scn-circumcision-and-naming .dust {
  position: absolute; top: 20%; left: 20%; width: 4px; height: 4px;
  background: rgba(200,180,150,0.8); border-radius: 50%; filter: blur(2px);
  animation: cn-dust 15s linear infinite;
}
@keyframes cn-wall { 0% { opacity: 0.85 } 50% { opacity: 1 } 100% { opacity: 0.9 } }
@keyframes cn-altar { 0%,100% { transform: translateX(-50%) scale(1) } 50% { transform: translateX(-50%) scale(1.02) translateY(-2px) } }
@keyframes cn-priest { 0%,100% { transform: translateX(0) translateY(0) rotate(-2deg) } 50% { transform: translateX(3px) translateY(-2px) rotate(2deg) } }
@keyframes cn-child { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(2px) rotate(3deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes cn-flame { 0% { transform: translateX(-50%) scaleY(1) rotate(-5deg) } 50% { transform: translateX(-50%) scaleY(1.2) rotate(5deg) } 100% { transform: translateX(-50%) scaleY(0.9) rotate(-2deg) } }
@keyframes cn-dust { 0% { transform: translateY(0) translateX(0) scale(0.8); opacity: 0.6 } 50% { transform: translateY(-20px) translateX(10px) scale(1.2); opacity: 1 } 100% { transform: translateY(-40px) translateX(-5px) scale(0.6); opacity: 0 } }

/* reverence-and-cleanliness - bright interior, clean, reverent */
.scn-reverence-and-cleanliness {
  background: linear-gradient(180deg, #e0e8f0 0%, #c8d4e0 40%, #b0c0d0 100%),
              radial-gradient(ellipse at 50% 0%, #f0f4ff 0%, transparent 60%);
}
.scn-reverence-and-cleanliness .bg-wash {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #d0dce8 0%, #c0d0e0 100%);
  animation: rev-bg 15s ease-in-out infinite alternate;
}
.scn-reverence-and-cleanliness .bg-veil {
  position: absolute; top: 0; left: 30%; width: 40%; height: 60%;
  background: linear-gradient(180deg, rgba(255,255,255,0.3) 0%, transparent 100%);
  border-radius: 30% 70% 50% 50% / 40% 60% 40% 60%;
  filter: blur(8px);
  animation: rev-veil 12s ease-in-out infinite;
}
.scn-reverence-and-cleanliness .figure-pray {
  position: absolute; bottom: 25%; left: 48%; transform: translateX(-50%);
  width: 24px; height: 50px;
  background: linear-gradient(180deg, #5a6a78 0%, #3a4a58 100%);
  border-radius: 40% 40% 50% 50% / 60% 60% 40% 40%;
  animation: rev-fig 6s ease-in-out infinite;
}
.scn-reverence-and-cleanliness .hands {
  position: absolute; bottom: 50%; left: 48%; transform: translateX(-50%);
  width: 12px; height: 10px;
  background: linear-gradient(180deg, #6a7a88 0%, #4a5a68 100%);
  border-radius: 40% 40% 0 0;
  animation: rev-hands 4s ease-in-out infinite alternate;
}
.scn-reverence-and-cleanliness .vessel {
  position: absolute; bottom: 18%; left: 50%; transform: translateX(-50%);
  width: 20px; height: 24px;
  background: linear-gradient(180deg, #8a9aa8 0%, #6a7a88 100%);
  border-radius: 20% 20% 30% 30%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
  animation: rev-vessel 8s ease-in-out infinite;
}
.scn-reverence-and-cleanliness .light-ray {
  position: absolute; top: 0; left: 35%; width: 30%; height: 100%;
  background: linear-gradient(180deg, rgba(200,220,255,0.4) 0%, rgba(200,220,255,0.1) 50%, transparent 100%);
  filter: blur(10px);
  animation: rev-ray 10s ease-in-out infinite alternate;
}
@keyframes rev-bg { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes rev-veil { 0%,100% { transform: translateX(0) scale(1) } 50% { transform: translateX(5px) scale(1.05) } }
@keyframes rev-fig { 0% { transform: translateX(-50%) translateY(0) rotate(-1deg) } 50% { transform: translateX(-50%) translateY(-3px) rotate(1deg) } 100% { transform: translateX(-50%) translateY(0) rotate(-1deg) } }
@keyframes rev-hands { 0% { transform: translateX(-50%) scaleY(1) } 50% { transform: translateX(-50%) scaleY(1.2) } 100% { transform: translateX(-50%) scaleY(1) } }
@keyframes rev-vessel { 0%,100% { transform: translateX(-50%) scale(1) } 50% { transform: translateX(-50%) scale(1.03) translateY(1px) } }
@keyframes rev-ray { 0% { opacity: 0.3 } 50% { opacity: 0.6 } 100% { opacity: 0.3 } }

/* purifications-and-washings - dim interior, calm, washing */
.scn-purifications-and-washings {
  background: linear-gradient(180deg, #1a2a3a 0%, #2a3a4a 40%, #3a4a5a 100%),
              radial-gradient(ellipse at 50% 80%, #4a5a6a 0%, transparent 70%);
}
.scn-purifications-and-washings .bg-pool {
  position: absolute; inset: 40% 0 0 0;
  background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%);
  border-radius: 10% 90% 0 0 / 20% 80% 0 0;
  animation: pw-pool 12s ease-in-out infinite alternate;
}
.scn-purifications-and-washings .pool-base {
  position: absolute; bottom: 10%; left: 10%; right: 10%; height: 60%;
  background: radial-gradient(ellipse at 50% 50%, #2a4a5a 0%, #1a2a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  filter: blur(4px);
}
.scn-purifications-and-washings .figure-wash {
  position: absolute; bottom: 25%; left: 45%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #4a5a6a 0%, #2a3a4a 100%);
  border-radius: 45% 45% 50% 50% / 60% 60% 40% 40%;
  animation: pw-fig 8s ease-in-out infinite;
}
.scn-purifications-and-washings .water-ripple {
  position: absolute; bottom: 30%; left: 40%; width: 30px; height: 8px;
  background: radial-gradient(ellipse, rgba(100,150,200,0.4) 0%, transparent 100%);
  border-radius: 50%; filter: blur(2px);
  animation: pw-ripple 5s ease-in-out infinite;
}
.scn-purifications-and-washings .lamp {
  position: absolute; top: 20%; left: 20%; width: 12px; height: 16px;
  background: radial-gradient(circle, #d0a060 0%, #a07030 50%, transparent 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 24px 8px rgba(160,112,48,0.5);
  animation: pw-lamp 4s ease-in-out infinite alternate;
}
.scn-purifications-and-washings .shadow {
  position: absolute; bottom: 20%; left: 42%; width: 30px; height: 12px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 100%);
  border-radius: 50%;
  animation: pw-shadow 6s ease-in-out infinite;
}
.scn-purifications-and-washings .steam {
  position: absolute; top: 25%; left: 48%; width: 6px; height: 10px;
  background: rgba(200,220,240,0.3); border-radius: 50%; filter: blur(3px);
  animation: pw-steam 10s linear infinite;
}
@keyframes pw-pool { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.7 } }
@keyframes pw-fig { 0%,100% { transform: translateX(0) translateY(0) rotate(0) } 50% { transform: translateX(2px) translateY(-2px) rotate(2deg) } }
@keyframes pw-ripple { 0% { transform: scale(1) opacity(0.6) } 50% { transform: scale(1.5) opacity(0.3) } 100% { transform: scale(2) opacity(0) } }
@keyframes pw-lamp { 0% { box-shadow: 0 0 18px 4px rgba(160,112,48,0.4); opacity: 0.85 } 50% { box-shadow: 0 0 30px 10px rgba(200,150,80,0.7); opacity: 1 } 100% { box-shadow: 0 0 20px 6px rgba(160,112,48,0.45); opacity: 0.9 } }
@keyframes pw-shadow { 0%,100% { transform: scale(1) translateX(0) } 50% { transform: scale(0.8) translateX(5px) } }
@keyframes pw-steam { 0% { transform: translateY(0) translateX(0) scale(1); opacity: 0.5 } 50% { transform: translateY(-20px) translateX(5px) scale(1.2); opacity: 0.3 } 100% { transform: translateY(-40px) translateX(-3px) scale(0.8); opacity: 0 } }

/* women-isolation - dim interior, quiet, separation */
.scn-women-isolation {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 40%, #3a3a4e 100%),
              radial-gradient(ellipse at 50% 0%, #2a2a3e 0%, transparent 60%);
}
.scn-women-isolation .bg-hut {
  position: absolute; inset: 20% 10% 10% 10%;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%);
  border-radius: 40% 60% 50% 50% / 60% 40% 50% 50%;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.5);
  animation: wi-hut 18s ease-in-out infinite alternate;
}
.scn-women-isolation .bg-night {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #0a0a1e 0%, #1a1a2e 100%);
  animation: wi-night 25s ease-in-out infinite;
}
.scn-women-isolation .doorway {
  position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%);
  width: 30px; height: 50px;
  background: linear-gradient(180deg, #0a0a1e 0%, #1a1a2e 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.8);
  animation: wi-door 8s ease-in-out infinite;
}
.scn-women-isolation .woman {
  position: absolute; bottom: 25%; left: 38%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #4a4a5e 0%, #2a2a3e 100%);
  border-radius: 45% 45% 50% 50% / 60% 60% 40% 40%;
  animation: wi-woman 6s ease-in-out infinite;
}
.scn-women-isolation .child-reach {
  position: absolute; bottom: 30%; left: 52%; width: 14px; height: 28px;
  background: linear-gradient(180deg, #5a5a6e 0%, #3a3a4e 100%);
  border-radius: 45% 45% 50% 50% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: wi-child 5s ease-in-out infinite alternate;
}
.scn-women-isolation .hearth {
  position: absolute; bottom: 15%; left: 20%;
  width: 20px; height: 12px;
  background: radial-gradient(ellipse, #6a3a1a 0%, #3a1a0a 100%);
  border-radius: 50%;
  box-shadow: 0 0 16px 4px rgba(106,58,26,0.5);
  animation: wi-hearth 4s ease-in-out infinite;
}
.scn-women-isolation .smoke {
  position: absolute; bottom: 20%; left: 22%; width: 8px; height: 20px;
  background: rgba(100,80,60,0.3); border-radius: 50%; filter: blur(4px);
  animation: wi-smoke 12s linear infinite;
}
@keyframes wi-hut { 0% { transform: scale(1) } 50% { transform: scale(1.02) } 100% { transform: scale(1) } }
@keyframes wi-night { 0%,100% { opacity: 0.8 } 50% { opacity: 1 } }
@keyframes wi-door { 0%,100% { transform: translateX(-50%) scaleY(1) } 50% { transform: translateX(-50%) scaleY(1.05) } }
@keyframes wi-woman { 0% { transform: translateX(0) translateY(0) rotate(0) } 50% { transform: translateX(-2px) translateY(-2px) rotate(-2deg) } 100% { transform: translateX(0) translateY(0) rotate(0) } }
@keyframes wi-child { 0% { transform: translateX(0) translateY(0) } 50% { transform: translateX(3px) translateY(-1px) } 100% { transform: translateX(0) translateY(0) } }
@keyframes wi-hearth { 0% { box-shadow: 0 0 12px 2px rgba(106,58,26,0.4); opacity: 0.9 } 50% { box-shadow: 0 0 20px 6px rgba(200,100,40,0.6); opacity: 1 } 100% { box-shadow: 0 0 14px 3px rgba(106,58,26,0.45); opacity: 0.9 } }
@keyframes wi-smoke { 0% { transform: translateY(0) translateX(0) scale(1); opacity: 0.4 } 50% { transform: translateY(-30px) translateX(5px) scale(1.5); opacity: 0.2 } 100% { transform: translateY(-60px) translateX(-5px) scale(2); opacity: 0 } }

.scn-rock-imminent-wreck {
  background:
    linear-gradient(180deg, #0d0d1a 0%, #1a1a2e 40%, #2a2a44 70%, #1a1a2e 100%),
    radial-gradient(ellipse at 30% 100%, #2a3a4a 0%, transparent 60%);
}
.scn-rock-imminent-wreck .sky-storm {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #060612 0%, #1a1a2e 60%, transparent 100%);
  animation: riw-sky 10s ease-in-out infinite alternate;
}
.scn-rock-imminent-wreck .sea-wrath {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 50%, #020a1a 100%);
  border-radius: 60% 40% 0 0 / 30% 20% 0 0;
  box-shadow: inset 0 20px 40px rgba(0,0,0,.6);
  animation: riw-sea 6s ease-in-out infinite alternate;
}
.scn-rock-imminent-wreck .ship-bow {
  position: absolute; bottom: 35%; left: 20%; width: 140px; height: 50px;
  background: linear-gradient(135deg, #3a2a1a 0%, #1a1a0a 100%);
  clip-path: polygon(0 20%, 100% 0, 100% 100%, 20% 100%);
  border-radius: 0 20% 20% 0 / 0 40% 40% 0;
  box-shadow: 0 8px 20px rgba(0,0,0,.5);
  animation: riw-ship 4s ease-in-out infinite;
}
.scn-rock-imminent-wreck .rocks-dark {
  position: absolute; bottom: 28%; right: 10%; width: 120px; height: 90px;
  background: linear-gradient(135deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%;
  box-shadow: inset 0 0 30px rgba(0,0,0,.8);
  animation: riw-rocks 8s ease-in-out infinite alternate;
}
.scn-rock-imminent-wreck .lantern-glow {
  position: absolute; bottom: 42%; left: 22%; width: 8px; height: 8px;
  background: radial-gradient(circle, #ffa050 0%, #e08040 30%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 24px 6px rgba(255,160,80,.5), 0 0 48px 12px rgba(224,128,64,.2);
  animation: riw-lantern 3s ease-in-out infinite alternate;
}
.scn-rock-imminent-wreck .spray {
  position: absolute; bottom: 30%; left: 50%; width: 80px; height: 30px;
  background: radial-gradient(ellipse, rgba(180,200,220,.3) 0%, transparent 70%);
  filter: blur(4px);
  animation: riw-spray 2s ease-in-out infinite alternate;
}
.scn-rock-imminent-wreck .cloud-rip {
  position: absolute; top: 10%; left: 60%; width: 100px; height: 20px;
  background: radial-gradient(ellipse, rgba(80,80,120,.4) 0%, transparent 70%);
  filter: blur(6px);
  animation: riw-cloud 20s linear infinite;
}
@keyframes riw-sky { 0% { opacity: .7 } 50% { opacity: 1 } 100% { opacity: .6 } }
@keyframes riw-sea { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-4px) scaleY(1.02) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes riw-ship { 0%,100% { transform: translateX(0) rotate(-1deg) } 50% { transform: translateX(-2px) rotate(2deg) } }
@keyframes riw-rocks { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-3px) scale(1.02) } 100% { transform: translateY(0) scale(1) } }
@keyframes riw-lantern { 0% { opacity: .7; transform: scale(.9) } 50% { opacity: 1; transform: scale(1.1) } 100% { opacity: .8; transform: scale(1) } }
@keyframes riw-spray { 0% { opacity: .2; transform: translateY(0) } 100% { opacity: .6; transform: translateY(-10px) } }
@keyframes riw-cloud { 0% { transform: translateX(0) } 100% { transform: translateX(150px) } }

.scn-shipwreck-horror {
  background:
    linear-gradient(180deg, #03030a 0%, #0a0a1a 30%, #0d1a1a 60%, #030a0a 100%),
    radial-gradient(ellipse at 50% 0, #0a1a2a 0%, transparent 70%);
}
.scn-shipwreck-horror .ocean-deep {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #060612 0%, #0a1a1a 40%, #020a0a 100%);
  animation: sh-ocean 12s ease-in-out infinite alternate;
}
.scn-shipwreck-horror .mast-splinter {
  position: absolute; bottom: 25%; left: 30%; width: 12px; height: 100px;
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%);
  border-radius: 2px;
  transform: rotate(-15deg);
  box-shadow: 0 4px 8px rgba(0,0,0,.6);
  animation: sh-mast 6s ease-in-out infinite;
}
.scn-shipwreck-horror .figure-sub {
  position: absolute; bottom: 10%; left: 50%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%) rotate(20deg);
  animation: sh-figure 8s ease-in-out infinite;
}
.scn-shipwreck-horror .debris-a {
  position: absolute; bottom: 5%; left: 15%; width: 40px; height: 15px;
  background: linear-gradient(90deg, #2a2a1a 0%, #1a1a0a 100%);
  border-radius: 2px;
  transform: rotate(45deg);
  animation: sh-debris-a 5s ease-in-out infinite alternate;
}
.scn-shipwreck-horror .debris-b {
  position: absolute; bottom: 12%; right: 20%; width: 30px; height: 10px;
  background: linear-gradient(90deg, #1a1a0a 0%, #2a2a1a 100%);
  border-radius: 2px;
  transform: rotate(-30deg);
  animation: sh-debris-b 7s ease-in-out infinite alternate;
}
.scn-shipwreck-horror .bubble-rise {
  position: absolute; bottom: 0; left: 40%; width: 8px; height: 8px;
  background: radial-gradient(circle, rgba(100,140,160,.5) 0%, transparent 70%);
  border-radius: 50%;
  animation: sh-bubble 4s ease-in-out infinite;
}
.scn-shipwreck-horror .light-fade {
  position: absolute; top: 20%; left: 50%; width: 40px; height: 40px;
  background: radial-gradient(circle, rgba(60,100,120,.15) 0%, transparent 70%);
  filter: blur(10px);
  animation: sh-light 10s ease-in-out infinite alternate;
}
@keyframes sh-ocean { 0% { opacity: .9 } 50% { opacity: 1 } 100% { opacity: .8 } }
@keyframes sh-mast { 0%,100% { transform: rotate(-15deg) } 50% { transform: rotate(-12deg) } }
@keyframes sh-figure { 0%,100% { transform: translateX(-50%) rotate(20deg) } 50% { transform: translateX(-50%) rotate(25deg) translateY(-3px) } }
@keyframes sh-debris-a { 0% { transform: rotate(45deg) translateX(0) } 100% { transform: rotate(40deg) translateX(5px) } }
@keyframes sh-debris-b { 0% { transform: rotate(-30deg) translateX(0) } 100% { transform: rotate(-25deg) translateX(-4px) } }
@keyframes sh-bubble { 0% { opacity: 0; transform: translateY(0) scale(.5) } 50% { opacity: 1; transform: translateY(-40px) scale(1.2) } 100% { opacity: 0; transform: translateY(-80px) scale(.5) } }
@keyframes sh-light { 0% { opacity: .2 } 50% { opacity: .5 } 100% { opacity: .2 } }

.scn-shipwreck-prayer {
  background:
    linear-gradient(180deg, #0a0a1a 0%, #14142a 30%, #1a1a2e 60%, #0d0d1a 100%),
    radial-gradient(ellipse at 50% 80%, #14142a 0%, transparent 70%);
}
.scn-shipwreck-prayer .sea-dark {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #0d1a1a 0%, #050a0a 100%);
  border-radius: 50% 50% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,.5);
  animation: sp-sea 8s ease-in-out infinite alternate;
}
.scn-shipwreck-prayer .sky-gloom {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #050512 0%, #14142a 50%, transparent 100%);
  animation: sp-sky 12s ease-in-out infinite alternate;
}
.scn-shipwreck-prayer .figure-kneel {
  position: absolute; bottom: 35%; left: 50%; width: 24px; height: 40px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%) rotate(-10deg);
  animation: sp-figure 6s ease-in-out infinite;
}
.scn-shipwreck-prayer .rock-shelf {
  position: absolute; bottom: 30%; left: 30%; width: 100px; height: 30px;
  background: linear-gradient(135deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 40% 60% 20% 20% / 80% 80% 20% 20%;
  box-shadow: inset 0 0 20px rgba(0,0,0,.7);
  animation: sp-rock 10s ease-in-out infinite alternate;
}
.scn-shipwreck-prayer .lightning-flash {
  position: absolute; top: 10%; left: 40%; width: 80px; height: 4px;
  background: linear-gradient(90deg, transparent, rgba(200,220,240,.6), transparent);
  filter: blur(2px);
  animation: sp-lightning 4s ease-in-out infinite;
}
.scn-shipwreck-prayer .foam-edge {
  position: absolute; bottom: 42%; left: 25%; width: 120px; height: 10px;
  background: radial-gradient(ellipse, rgba(200,210,220,.2) 0%, transparent 70%);
  filter: blur(3px);
  animation: sp-foam 3s ease-in-out infinite alternate;
}
.scn-shipwreck-prayer .cloud-veil {
  position: absolute; top: 15%; right: 5%; width: 70px; height: 14px;
  background: radial-gradient(ellipse, rgba(40,40,60,.3) 0%, transparent 70%);
  filter: blur(5px);
  animation: sp-cloud 30s linear infinite;
}
@keyframes sp-sea { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes sp-sky { 0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .7 } }
@keyframes sp-figure { 0%,100% { transform: translateX(-50%) rotate(-10deg) translateY(0) } 50% { transform: translateX(-50%) rotate(-10deg) translateY(-2px) } }
@keyframes sp-rock { 0% { transform: scale(1) } 50% { transform: scale(1.02) } 100% { transform: scale(1) } }
@keyframes sp-lightning { 0%,80%,100% { opacity: 0 } 10%,70% { opacity: .8 } 20%,60% { opacity: 0 } 30%,50% { opacity: .6 } 40% { opacity: 0 } }
@keyframes sp-foam { 0% { opacity: .3; transform: scaleX(1) } 100% { opacity: .6; transform: scaleX(1.1) } }
@keyframes sp-cloud { 0% { transform: translateX(0) } 100% { transform: translateX(-100px) } }

.scn-hatches-disobeyed {
  background:
    linear-gradient(180deg, #0a0a12 0%, #1a1a24 40%, #0d0d16 100%),
    radial-gradient(ellipse at 50% 90%, #2a2a36 0%, transparent 70%);
}
.scn-hatches-disobeyed .hold-dark {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #0a0a12 0%, #14141e 40%, #05050a 100%);
  animation: hd-hold 10s ease-in-out infinite alternate;
}
.scn-hatches-disobeyed .beam-left {
  position: absolute; top: 0; left: 20%; width: 12px; height: 100%;
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%);
  border-radius: 2px;
  transform: skewX(-10deg);
  box-shadow: 2px 0 8px rgba(0,0,0,.5);
  animation: hd-beam-l 6s ease-in-out infinite;
}
.scn-hatches-disobeyed .beam-right {
  position: absolute; top: 0; right: 20%; width: 12px; height: 100%;
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%);
  border-radius: 2px;
  transform: skewX(10deg);
  box-shadow: -2px 0 8px rgba(0,0,0,.5);
  animation: hd-beam-r 6s ease-in-out infinite reverse;
}
.scn-hatches-disobeyed .hatch-above {
  position: absolute; top: 5%; left: 30%; width: 40%; height: 8px;
  background: linear-gradient(90deg, #3a3a2a 0%, #2a2a1a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,.7);
  animation: hd-hatch 8s ease-in-out infinite alternate;
}
.scn-hatches-disobeyed .figure-fallen {
  position: absolute; bottom: 20%; left: 50%; width: 28px; height: 36px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%) rotate(15deg);
  animation: hd-figure 5s ease-in-out infinite;
}
.scn-hatches-disobeyed .light-trickle {
  position: absolute; top: 8%; left: 35%; width: 30px; height: 60px;
  background: linear-gradient(180deg, rgba(180,170,140,.1) 0%, transparent 100%);
  filter: blur(3px);
  animation: hd-light 4s ease-in-out infinite alternate;
}
.scn-hatches-disobeyed .chain-coil {
  position: absolute; bottom: 15%; left: 35%; width: 40px; height: 10px;
  background: radial-gradient(ellipse, #3a3a2a 0%, #1a1a0a 100%);
  border-radius: 50%;
  box-shadow: 0 2px 6px rgba(0,0,0,.6);
  animation: hd-chain 7s ease-in-out infinite alternate;
}
@keyframes hd-hold { 0% { opacity: .9 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes hd-beam-l { 0%,100% { transform: skewX(-10deg) } 50% { transform: skewX(-8deg) } }
@keyframes hd-beam-r { 0%,100% { transform: skewX(10deg) } 50% { transform: skewX(8deg) } }
@keyframes hd-hatch { 0% { opacity: .7; transform: translateY(0) } 100% { opacity: 1; transform: translateY(-2px) } }
@keyframes hd-figure { 0%,100% { transform: translateX(-50%) rotate(15deg) translateY(0) } 50% { transform: translateX(-50%) rotate(12deg) translateY(-2px) } }
@keyframes hd-light { 0% { opacity: .2 } 50% { opacity: .5 } 100% { opacity: .3 } }
@keyframes hd-chain { 0% { transform: rotate(0) } 100% { transform: rotate(10deg) } }

.scn-hiding-from-grampusses { background: linear-gradient(135deg, #1a1a2e 0%, #2a1a3a 50%, #0e0e1a 100%), radial-gradient(ellipse at 30% 70%, #2a1a4a 0%, transparent 60%); }
.scn-hiding-from-grampusses .beam-left { position:absolute; left:5%; top:0; width:8%; height:100%; background: linear-gradient(90deg, #3a2a1a 0%, #1a0e0a 100%); border-radius:0 4% 4% 0; box-shadow: 2px 0 8px rgba(0,0,0,.8); animation: hfg-beam 3s ease-in-out infinite; }
.scn-hiding-from-grampusses .beam-right { position:absolute; right:5%; top:0; width:8%; height:100%; background: linear-gradient(270deg, #3a2a1a 0%, #1a0e0a 100%); border-radius:4% 0 0 4%; box-shadow: -2px 0 8px rgba(0,0,0,.8); animation: hfg-beam 3s ease-in-out infinite reverse; }
.scn-hiding-from-grampusses .planks { position:absolute; left:15%; right:15%; top:0; height:100%; background: repeating-linear-gradient(0deg, #2a1a0a 0px, #2a1a0a 6px, #1a0e0a 6px, #1a0e0a 8px); filter: blur(1px); }
.scn-hiding-from-grampusses .figure-crouch { position:absolute; bottom:20%; left:45%; width:24px; height:50px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a12 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hfg-shake 1.5s ease-in-out infinite; }
.scn-hiding-from-grampusses .peephole { position:absolute; top:38%; left:50%; width:14px; height:10px; background: radial-gradient(circle, #b0d0e0 0%, #7090a0 40%, transparent 60%); border-radius:50%; box-shadow: 0 0 12px 4px rgba(112,144,160,.5); animation: hfg-scan 6s ease-in-out infinite; }
.scn-hiding-from-grampusses .shadow { position:absolute; bottom:15%; left:35%; width:60%; height:40%; background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,.8) 0%, transparent 70%); }
.scn-hiding-from-grampusses .glow-crack { position:absolute; top:38%; left:48%; width:5%; height:12%; background: linear-gradient(180deg, rgba(176,208,224,.3) 0%, transparent 100%); filter: blur(4px); animation: hfg-flicker 2s ease-in-out infinite; }
@keyframes hfg-beam { 0% { opacity:.9; } 50% { opacity:1; transform:scaleX(1.02); } 100% { opacity:.9; } }
@keyframes hfg-shake { 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 hfg-scan { 0% { opacity:.3; box-shadow:0 0 8px 2px rgba(112,144,160,.3); } 25% { opacity:1; box-shadow:0 0 16px 6px rgba(112,144,160,.7); } 50% { opacity:.4; box-shadow:0 0 10px 3px rgba(112,144,160,.4); } 75% { opacity:.9; box-shadow:0 0 14px 5px rgba(112,144,160,.6); } 100% { opacity:.3; } }
@keyframes hfg-flicker { 0% { opacity:.2; transform:scaleY(1); } 30% { opacity:.5; transform:scaleY(1.1); } 60% { opacity:.1; transform:scaleY(.8); } 100% { opacity:.2; } }

.scn-pitch-barrel-play { background: linear-gradient(180deg, #1a1a2e 0%, #2a1a3e 60%, #0a0a12 100%), radial-gradient(ellipse at 70% 50%, #3a1a0a 0%, transparent 80%); }
.scn-pitch-barrel-play .deck { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0e0a 100%); border-radius:20% 20% 0 0 / 10% 10% 0 0; box-shadow: inset 0 12px 20px rgba(0,0,0,.8); }
.scn-pitch-barrel-play .railing { position:absolute; bottom:35%; left:0; right:0; height:4%; background: linear-gradient(90deg, #3a2a1a 0%, #1a0e0a 50%, #3a2a1a 100%); box-shadow: 0 4px 8px rgba(0,0,0,.6); }
.scn-pitch-barrel-play .barrel { position:absolute; bottom:25%; left:60%; width:40px; height:55px; background: linear-gradient(90deg, #4a3a2a 0%, #2a1a0e 50%, #4a3a2a 100%); border-radius:15% 15% 10% 10%; box-shadow: 0 6px 12px rgba(0,0,0,.7); animation: pbp-float 4s ease-in-out infinite; }
.scn-pitch-barrel-play .fire { position:absolute; bottom:50%; left:60%; width:30px; height:40px; background: radial-gradient(ellipse at 50% 100%, #ffa060 0%, #d04010 50%, transparent 70%), radial-gradient(ellipse at 50% 50%, #ffd080 0%, transparent 60%); animation: pbp-fire 1.5s ease-in-out infinite; }
.scn-pitch-barrel-play .captain { position:absolute; bottom:40%; left:45%; width:20px; height:50px; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a12 100%); border-radius:40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: pbp-lean 5s ease-in-out infinite; }
.scn-pitch-barrel-play .fish { position:absolute; bottom:38%; right:15%; width:40px; height:14px; background: linear-gradient(90deg, #3a4a5a 0%, #5a7a8a 50%, #3a4a5a 100%); border-radius:50%; box-shadow: 0 2px 6px rgba(0,0,0,.5); animation: pbp-swim 8s linear infinite; }
.scn-pitch-barrel-play .smoke { position:absolute; top:20%; left:55%; width:60px; height:40px; background: radial-gradient(ellipse at 50% 100%, rgba(200,180,160,.3) 0%, transparent 70%); filter: blur(8px); animation: pbp-smoke 6s ease-in-out infinite; }
@keyframes pbp-float { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes pbp-fire { 0% { opacity:.7; transform: scaleY(1); } 25% { opacity:1; transform: scaleY(1.15) scaleX(1.05); } 50% { opacity:.8; transform: scaleY(.9) scaleX(1.1); } 75% { opacity:1; transform: scaleY(1.2) scaleX(.95); } 100% { opacity:.7; } }
@keyframes pbp-lean { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2px) rotate(2deg); } 50% { transform: translateX(0) rotate(-2deg); } 75% { transform: translateX(-2px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes pbp-swim { 0% { transform: translateX(0); } 100% { transform: translateX(-60vw); } }
@keyframes pbp-smoke { 0% { transform: translateY(0) scale(1); opacity:.3; } 50% { transform: translateY(-10px) scale(1.5); opacity:.1; } 100% { transform: translateY(0) scale(1); opacity:.3; } }

.scn-landing-at-falmouth { background: linear-gradient(180deg, #4a8ab0 0%, #7ab8d8 40%, #c8e8f0 70%), radial-gradient(ellipse at 80% 30%, #f0d0a0 0%, transparent 60%); }
.scn-landing-at-falmouth .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #4a8ab0 0%, #7ab8d8 40%, #c8e8f0 70%); animation: laf-sky 12s ease-in-out infinite alternate; }
.scn-landing-at-falmouth .sea { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #2a5a7a 0%, #1a3a5a 100%); animation: laf-sea 8s ease-in-out infinite alternate; }
.scn-landing-at-falmouth .hull { position:absolute; bottom:40%; left:15%; width:50%; height:40%; background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0e 100%); border-radius: 40% 10% 0 0 / 80% 20% 0 0; box-shadow: 0 8px 16px rgba(0,0,0,.4); animation: laf-hull 5s ease-in-out infinite; }
.scn-landing-at-falmouth .sails { position:absolute; bottom:55%; left:30%; width:15%; height:50%; background: linear-gradient(180deg, #e8e0d0 0%, #b0a898 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 4px 8px rgba(0,0,0,.2); animation: laf-sails 10s ease-in-out infinite; }
.scn-landing-at-falmouth .shore { position:absolute; bottom:15%; right:5%; width:30%; height:30%; background: linear-gradient(180deg, #8a7a5a 0%, #5a4a3a 100%); border-radius: 60% 40% 0 0 / 80% 60% 0 0; }
.scn-landing-at-falmouth .buildings { position:absolute; bottom:15%; right:10%; width:18%; height:25%; background: linear-gradient(0deg, #b0a090 0%, #d0c0b0 100%); border-radius: 4% 4% 0 0; box-shadow: 2px 0 6px rgba(0,0,0,.3); animation: laf-build 3s ease-in-out infinite; }
.scn-landing-at-falmouth .sun { position:absolute; top:12%; left:65%; width:30px; height:30px; background: radial-gradient(circle, #ffd080 0%, #f0a050 80%); border-radius:50%; box-shadow: 0 0 40px 20px rgba(240,160,80,.6); animation: laf-sun 9s ease-in-out infinite; }
@keyframes laf-sky { 0% { opacity:.9; } 50% { opacity:1; } 100% { opacity:.8; } }
@keyframes laf-sea { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(0); } }
@keyframes laf-hull { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(1deg); } 50% { transform: translateY(0) rotate(-1deg); } 75% { transform: translateY(-2px) rotate(0deg); } 100% { transform: translateY(0); } }
@keyframes laf-sails { 0% { opacity:.8; transform: scaleX(1); } 50% { opacity:1; transform: scaleX(1.05); } 100% { opacity:.8; transform: scaleX(1); } }
@keyframes laf-build { 0% { opacity:.9; transform: scaleY(1); } 50% { opacity:1; transform: scaleY(1.02); } 100% { opacity:.9; } }
@keyframes laf-sun { 0% { transform: scale(1); } 50% { transform: scale(1.08); } 100% { transform: scale(1); } }

.scn-arrival-in-england { background: linear-gradient(180deg, #b89870 0%, #d0b898 40%, #e8d0b8 100%), radial-gradient(ellipse at 60% 40%, #f0e0c8 0%, transparent 70%); }
.scn-arrival-in-england .wall { position:absolute; left:0; top:0; width:30%; height:100%; background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%); border-radius:0 20% 20% 0 / 0 10% 10% 0; box-shadow: 4px 0 12px rgba(0,0,0,.3); }
.scn-arrival-in-england .window-frame { position:absolute; left:25%; top:10%; width:30%; height:50%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%); border-radius: 4% 4% 4% 4%; box-shadow: inset 0 0 20px rgba(0,0,0,.4); }
.scn-arrival-in-england .street-view { position:absolute; left:28%; top:13%; width:24%; height:44%; background: linear-gradient(180deg, #b8a898 0%, #9a8a7a 100%); border-radius: 2%; overflow:hidden; animation: aie-street 6s ease-in-out infinite alternate; }
.scn-arrival-in-england .buildings-outside { position:absolute; left:30%; top:15%; width:20%; height:30%; background: linear-gradient(180deg, #c8b8a8 0%, #a89888 100%); border-radius: 2% 2% 0 0; box-shadow: 2px 0 6px rgba(0,0,0,.2); animation: aie-buildings 4s ease-in-out infinite; }
.scn-arrival-in-england .pavement { position:absolute; left:28%; bottom:10%; width:24%; height:8%; background: repeating-linear-gradient(90deg, #8a7a6a 0px, #8a7a6a 10px, #7a6a5a 10px, #7a6a5a 12px); animation: aie-pave 7s linear infinite; }
.scn-arrival-in-england .figure-boy { position:absolute; bottom:20%; left:35%; width:16px; height:40px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e0a 100%); border-radius:50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: aie-turn 8s ease-in-out infinite; }
.scn-arrival-in-england .light-ray { position:absolute; top:12%; left:30%; width:20%; height:10%; background: linear-gradient(180deg, rgba(255,240,220,.4) 0%, transparent 100%); filter: blur(6px); animation: aie-ray 5s ease-in-out infinite; }
@keyframes aie-street { 0% { opacity:.9; } 50% { opacity:1; } 100% { opacity:.85; } }
@keyframes aie-buildings { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(1); } }
@keyframes aie-pave { 0% { background-position:0 0; } 100% { background-position:60px 0; } }
@keyframes aie-turn { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(4px) rotate(2deg); } 50% { transform: translateX(8px) rotate(-2deg); } 75% { transform: translateX(4px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes aie-ray { 0% { opacity:.3; transform: scaleY(1); } 33% { opacity:.6; transform: scaleY(1.2); } 66% { opacity:.2; transform: scaleY(.8); } 100% { opacity:.3; } }

/* Scene 1: false-alarm-ambuscade – tense, dusk, two ships */
.scn-false-alarm-ambuscade {
  background:
    linear-gradient(180deg, #2a1e3c 0%, #4a3e5c 30%, #6a5a4c 60%, #5a4a3c 100%),
    radial-gradient(ellipse at 50% 100%, #6a5a4c 0%, transparent 70%);
}
.scn-false-alarm-ambuscade .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #3a2e5c 0%, #6a5a4c 100%);
  animation: sc2-sky 10s ease-in-out infinite alternate;
}
.scn-false-alarm-ambuscade .sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%);
  animation: sc2-waves 6s ease-in-out infinite;
}
.scn-false-alarm-ambuscade .ship-left {
  position: absolute; bottom: 35%; left: 15%; width: 80px; height: 30px;
  background: linear-gradient(90deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 30% 30%; transform: skewY(-2deg);
  animation: sc2-heave 4s ease-in-out infinite;
}
.scn-false-alarm-ambuscade .ship-right {
  position: absolute; bottom: 33%; right: 10%; width: 70px; height: 28px;
  background: linear-gradient(90deg, #2a1a0a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 30% 30%; transform: skewY(2deg);
  animation: sc2-heave 5s ease-in-out infinite 0.5s;
}
.scn-false-alarm-ambuscade .mast-left {
  position: absolute; bottom: 42%; left: 25%; width: 4px; height: 60px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  transform: rotate(-3deg);
}
.scn-false-alarm-ambuscade .mast-right {
  position: absolute; bottom: 40%; right: 20%; width: 4px; height: 55px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  transform: rotate(2deg);
}
.scn-false-alarm-ambuscade .flag-right {
  position: absolute; bottom: 75%; right: 18%; width: 20px; height: 14px;
  background: linear-gradient(135deg, #3a5a7a 0%, #2a4a6a 100%);
  clip-path: polygon(0 0, 100% 0, 100% 100%, 0 80%);
  animation: sc2-flag 1.5s ease-in-out infinite alternate;
}
.scn-false-alarm-ambuscade .cannon-flash {
  position: absolute; bottom: 38%; left: 22%; width: 12px; height: 12px;
  background: radial-gradient(circle, #ffd070 0%, #c08030 40%, transparent 70%);
  border-radius: 50%; opacity: 0;
  animation: sc2-flash 0.6s ease-out infinite;
}
.scn-false-alarm-ambuscade .smoke {
  position: absolute; bottom: 45%; left: 18%; width: 30px; height: 20px;
  background: radial-gradient(ellipse, rgba(180,160,140,0.6) 0%, transparent 70%);
  filter: blur(4px); opacity: 0;
  animation: sc2-smoke 2s ease-out infinite 0.3s;
}

@keyframes sc2-sky { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.7 } }
@keyframes sc2-waves { 0% { transform: translateY(0) } 50% { transform: translateY(4px) } 100% { transform: translateY(0) } }
@keyframes sc2-heave { 0% { transform: translateY(0) skewY(-2deg) } 50% { transform: translateY(-3px) skewY(0deg) } 100% { transform: translateY(0) skewY(-2deg) } }
@keyframes sc2-flag { 0% { transform: rotate(-5deg) scaleX(1) } 100% { transform: rotate(5deg) scaleX(0.95) } }
@keyframes sc2-flash { 0% { opacity: 1; transform: scale(1) } 100% { opacity: 0; transform: scale(3) } }
@keyframes sc2-smoke { 0% { opacity: 0.6; transform: scale(0.5) translateY(0) } 50% { opacity: 0.4; transform: scale(1.2) translateY(-10px) } 100% { opacity: 0; transform: scale(2) translateY(-20px) } }

/* Scene 2: returned-to-portsmouth – calm, dim interior, ship cabin */
.scn-returned-to-portsmouth {
  background:
    linear-gradient(135deg, #2a2a2a 0%, #3a3a3a 50%, #2a2a2a 100%),
    radial-gradient(ellipse at 30% 50%, #4a4a4a 0%, transparent 70%);
}
.scn-returned-to-portsmouth .wall-left {
  position: absolute; top: 0; bottom: 0; left: 0; width: 30%;
  background: linear-gradient(90deg, #1a1a1a 0%, #2a2a2a 100%);
}
.scn-returned-to-portsmouth .wall-right {
  position: absolute; top: 0; bottom: 0; right: 0; width: 30%;
  background: linear-gradient(90deg, #2a2a2a 0%, #1a1a1a 100%);
}
.scn-returned-to-portsmouth .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  clip-path: polygon(0 30%, 100% 20%, 100% 100%, 0 100%);
}
.scn-returned-to-portsmouth .window {
  position: absolute; top: 20%; left: 35%; width: 30%; height: 40%;
  background: linear-gradient(180deg, #4a5a6a 0%, #3a4a5a 100%);
  border: 4px solid #1a1a2a; box-shadow: inset 0 0 20px rgba(0,0,0,0.6);
  animation: sc3-window 8s ease-in-out infinite alternate;
}
.scn-returned-to-portsmouth .table {
  position: absolute; bottom: 32%; left: 25%; width: 50%; height: 10%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 4% 4% 0 0; box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-returned-to-portsmouth .mug {
  position: absolute; bottom: 42%; left: 45%; width: 12px; height: 16px;
  background: linear-gradient(180deg, #6a6a6a 0%, #4a4a4a 100%);
  border-radius: 20% 20% 10% 10%;
  animation: sc3-steam 5s ease-in-out infinite;
}
.scn-returned-to-portsmouth .figure {
  position: absolute; bottom: 28%; left: 35%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sc3-figure 6s ease-in-out infinite;
}

@keyframes sc3-window { 0% { opacity: 0.6 } 50% { opacity: 1 } 100% { opacity: 0.7 } }
@keyframes sc3-steam { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-8px) scale(1.2) } 100% { transform: translateY(0) scale(1) } }
@keyframes sc3-figure { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(5px) rotate(2deg) } 100% { transform: translateX(0) rotate(0) } }

/* Scene 3: london-at-last – warm, bright interior in a waggon */
.scn-london-at-last {
  background:
    linear-gradient(180deg, #4a3a2a 0%, #6a5a4a 30%, #8a7a6a 60%, #7a6a5a 100%),
    radial-gradient(ellipse at 50% 0%, #9a8a7a 0%, transparent 70%);
}
.scn-london-at-last .sky-out {
  position: absolute; top: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #6a8a9a 0%, #5a7a8a 100%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  animation: sc4-sky 12s ease-in-out infinite alternate;
}
.scn-london-at-last .waggon-roof {
  position: absolute; top: 10%; left: 10%; right: 10%; height: 40%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  clip-path: polygon(0 0, 100% 0, 90% 100%, 10% 100%);
  border-radius: 10% 10% 0 0;
}
.scn-london-at-last .waggon-side {
  position: absolute; bottom: 0; left: 5%; right: 5%; height: 70%;
  background: linear-gradient(90deg, #6a5a4a 0%, #7a6a5a 30%, #6a5a4a 100%);
  border-radius: 0 0 8% 8%;
}
.scn-london-at-last .seat {
  position: absolute; bottom: 30%; left: 20%; right: 20%; height: 12%;
  background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%);
  border-radius: 6% 6% 0 0;
  box-shadow: 0 4px 10px rgba(0,0,0,0.4);
}
.scn-london-at-last .figure-left {
  position: absolute; bottom: 42%; left: 25%; width: 18px; height: 38px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sc4-sit 4s ease-in-out infinite;
}
.scn-london-at-last .figure-right {
  position: absolute; bottom: 42%; right: 25%; width: 18px; height: 36px;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sc4-sit 4.5s ease-in-out infinite 0.5s;
}
.scn-london-at-last .sunbeam {
  position: absolute; top: 20%; left: 30%; width: 40%; height: 60%;
  background: linear-gradient(180deg, rgba(255,230,180,0.3) 0%, transparent 100%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  animation: sc4-beam 6s ease-in-out infinite alternate;
}
.scn-london-at-last .dust {
  position: absolute; top: 30%; left: 35%; width: 8px; height: 8px;
  background: radial-gradient(circle, rgba(255,240,200,0.6) 0%, transparent 70%);
  border-radius: 50%;
  animation: sc4-dust 8s linear infinite;
}

@keyframes sc4-sky { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.7 } }
@keyframes sc4-sit { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes sc4-beam { 0% { opacity: 0.5; transform: scaleX(1) } 100% { opacity: 1; transform: scaleX(1.1) } }
@keyframes sc4-dust { 0% { transform: translateY(0) scale(1); opacity: 0.4 } 50% { transform: translateY(-20px) scale(1.5); opacity: 0.8 } 100% { transform: translateY(-40px) scale(0.5); opacity: 0 } }

/* Scene 4: chilblains-and-hospital – dark, dim interior, hospital bed */
.scn-chilblains-and-hospital {
  background:
    linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 50%, #1a1a2a 100%),
    radial-gradient(ellipse at 30% 50%, #2a2a3a 0%, transparent 70%);
}
.scn-chilblains-and-hospital .back-wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
}
.scn-chilblains-and-hospital .bed-frame {
  position: absolute; bottom: 15%; left: 10%; right: 10%; height: 50%;
  background: transparent;
  border: 4px solid #3a3a3a;
  border-radius: 6% 6% 0 0;
}
.scn-chilblains-and-hospital .mattress {
  position: absolute; bottom: 18%; left: 12%; right: 12%; height: 40%;
  background: linear-gradient(180deg, #3a3a3a 0%, #2a2a2a 100%);
  border-radius: 4% 4% 20% 20%;
}
.scn-chilblains-and-hospital .blanket {
  position: absolute; bottom: 25%; left: 15%; right: 15%; height: 30%;
  background: linear-gradient(135deg, #4a3a4a 0%, #3a2a3a 100%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  animation: sc5-cover 12s ease-in-out infinite alternate;
}
.scn-chilblains-and-hospital .pillow {
  position: absolute; bottom: 55%; left: 20%; width: 25%; height: 12%;
  background: linear-gradient(180deg, #4a4a4a 0%, #3a3a3a 100%);
  border-radius: 30% 30% 20% 20%;
}
.scn-chilblains-and-hospital .patient-shape {
  position: absolute; bottom: 30%; left: 25%; width: 50%; height: 40%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: sc5-breathe 3s ease-in-out infinite;
}
.scn-chilblains-and-hospital .candle {
  position: absolute; top: 30%; right: 20%; width: 8px; height: 20px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 10% 10% 0 0;
}
.scn-chilblains-and-hospital .flame-glow {
  position: absolute; top: 28%; right: 19%; width: 14px; height: 14px;
  background: radial-gradient(circle, #ffc060 0%, #c08030 40%, transparent 70%);
  border-radius: 50%;
  animation: sc5-flame 2s ease-in-out infinite alternate;
}

@keyframes sc5-cover { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.6 } }
@keyframes sc5-breathe { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(1) } }
@keyframes sc5-flame { 0% { transform: scale(1) rotate(-5deg) } 50% { transform: scale(1.2) rotate(5deg) } 100% { transform: scale(0.9) rotate(-5deg) } }

/* ============================================= */
/* scene: close-call-at-dusk (tense, dusk)       */
/* ============================================= */
.scn-close-call-at-dusk {
  background:
    linear-gradient(180deg, #1a1a3e 0%, #2c2244 30%, #4a3a5e 60%, #6a4a3a 100%),
    radial-gradient(ellipse at 50% 70%, #3a2a1a 0%, transparent 70%);
}
.scn-close-call-at-dusk .ccad-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #2a2a4e 0%, #4a3a4e 40%, #6a5a3a 100%);
  animation: ccad-sky-pulse 6s ease-in-out infinite alternate;
}
.scn-close-call-at-dusk .ccad-sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%);
  animation: ccad-sea-swell 4s ease-in-out infinite alternate;
}
.scn-close-call-at-dusk .ccad-ship-1 {
  position: absolute; bottom: 30%; left: 20%; width: 140px; height: 80px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 0 0 20% 20% / 0 0 40% 40%;
  clip-path: polygon(0% 40%, 100% 30%, 95% 100%, 5% 100%);
  animation: ccad-ship-drift 3s ease-in-out infinite;
}
.scn-close-call-at-dusk .ccad-ship-2 {
  position: absolute; bottom: 32%; right: 15%; width: 160px; height: 90px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 0 0 20% 20% / 0 0 40% 40%;
  clip-path: polygon(5% 30%, 100% 40%, 95% 100%, 0% 100%);
  animation: ccad-ship-drift 3.5s ease-in-out infinite reverse;
}
.scn-close-call-at-dusk .ccad-cannon {
  position: absolute; bottom: 34%; left: 28%; width: 18px; height: 8px;
  background: #4a3a2a; border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(200,50,30,0.4);
  animation: ccad-cannon-flash 2s ease-in-out infinite;
}
.scn-close-call-at-dusk .ccad-flag {
  position: absolute; bottom: 48%; left: 22%; width: 6px; height: 14px;
  background: #5e1a1d; /* burgundy, not bright red */
  border-radius: 0 40% 20% 0;
  animation: ccad-flag-wave 0.5s ease-in-out infinite alternate;
}
.scn-close-call-at-dusk .ccad-cloud {
  position: absolute; top: 12%; left: 60%; width: 70px; height: 14px;
  background: linear-gradient(180deg, rgba(200,180,160,0.45) 0%, rgba(200,180,160,0.1) 100%);
  border-radius: 50%; filter: blur(4px);
  animation: ccad-cloud-drift 30s linear infinite alternate;
}
@keyframes ccad-sky-pulse { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.75 } }
@keyframes ccad-sea-swell { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(2px) } }
@keyframes ccad-ship-drift { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(4px) rotate(1deg) } 100% { transform: translateX(-2px) rotate(-1deg) } }
@keyframes ccad-cannon-flash { 0%,100% { opacity: 0.3; box-shadow: 0 0 4px 1px rgba(200,50,30,0.2); } 50% { opacity: 1; box-shadow: 0 0 20px 8px rgba(240,80,40,0.7); } }
@keyframes ccad-flag-wave { 0% { transform: skewX(0deg) } 100% { transform: skewX(8deg) } }
@keyframes ccad-cloud-drift { 0% { transform: translateX(-20px) } 100% { transform: translateX(40px) } }

/* ============================================= */
/* scene: return-to-st-helens (calm, sunset)     */
/* ============================================= */
.scn-return-to-st-helens {
  background:
    linear-gradient(180deg, #4a3550 0%, #6a4a3a 30%, #b08040 60%, #d0a060 100%),
    radial-gradient(ellipse at 50% 60%, #c09050 0%, transparent 60%);
}
.scn-return-to-st-helens .rtsh-sky {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #6a4a3a 0%, #c09050 60%, #e0b070 100%);
  animation: rtsh-sky-fade 12s ease-in-out infinite alternate;
}
.scn-return-to-st-helens .rtsh-water {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #3a4a5a 0%, #2a3a4a 100%);
  animation: rtsh-water-breathe 8s ease-in-out infinite;
}
.scn-return-to-st-helens .rtsh-ship {
  position: absolute; bottom: 18%; left: 40%; width: 100px; height: 60px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 0 0 30% 30% / 0 0 50% 50%;
  transform: rotate(3deg); /* aground tilt */
  animation: rtsh-ship-tilt 15s ease-in-out infinite;
}
.scn-return-to-st-helens .rtsh-shore {
  position: absolute; bottom: 28%; left: 0; right: 60%; height: 20%;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%);
  border-radius: 0 60% 0 0;
}
.scn-return-to-st-helens .rtsh-sun {
  position: absolute; top: 20%; left: 50%; width: 40px; height: 40px;
  background: radial-gradient(circle, #ffc060 0%, #ff9040 70%);
  border-radius: 50%;
  box-shadow: 0 0 60px 30px #ff9040, 0 0 120px 60px rgba(255,144,64,0.3);
  animation: rtsh-sun-set 20s linear infinite alternate;
}
.scn-return-to-st-helens .rtsh-cloud {
  position: absolute; top: 12%; left: 20%; width: 90px; height: 16px;
  background: linear-gradient(180deg, rgba(240,200,160,0.5) 0%, rgba(240,200,160,0.1) 100%);
  border-radius: 50%; filter: blur(5px);
  animation: rtsh-cloud-drift 40s linear infinite reverse;
}
.scn-return-to-st-helens .rtsh-light {
  position: absolute; bottom: 28%; left: 38%; width: 4px; height: 4px;
  background: #f0c060;
  border-radius: 50%;
  box-shadow: 0 0 12px 4px #f0c060;
  animation: rtsh-light-pulse 3s ease-in-out infinite alternate;
}
@keyframes rtsh-sky-fade { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes rtsh-water-breathe { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(1px) } }
@keyframes rtsh-ship-tilt { 0% { transform: rotate(3deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(4deg) } }
@keyframes rtsh-sun-set { 0% { transform: translateY(0) scale(1); opacity: 1; } 50% { transform: translateY(20px) scale(0.95); opacity: 0.9; } 100% { transform: translateY(40px) scale(0.9); opacity: 0.8; } }
@keyframes rtsh-cloud-drift { 0% { transform: translateX(-40px) } 100% { transform: translateX(60px) } }
@keyframes rtsh-light-pulse { 0% { opacity: 0.5 } 100% { opacity: 1 } }

/* ============================================= */
/* scene: baptized-in-february (warm, bright-interior) */
/* ============================================= */
.scn-baptized-in-february {
  background:
    linear-gradient(180deg, #6a4a3a 0%, #8a6a4a 30%, #a08050 60%, #c0a060 100%),
    radial-gradient(ellipse at 50% 80%, #d0b080 0%, transparent 60%);
}
.scn-baptized-in-february .bif-room {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #5a3a2a 0%, #7a5a3a 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 60px rgba(0,0,0,0.3);
}
.scn-baptized-in-february .bif-window {
  position: absolute; top: 15%; left: 30%; width: 120px; height: 160px;
  background: linear-gradient(180deg, #d0e0f0 0%, #a0c0e0 70%);
  border: 6px solid #3a2a1a;
  border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(255,255,200,0.5);
  animation: bif-window-glow 6s ease-in-out infinite alternate;
}
.scn-baptized-in-february .bif-fire {
  position: absolute; bottom: 10%; right: 15%; width: 80px; height: 100px;
  background: radial-gradient(ellipse at center bottom, #ff9040 0%, #c06020 40%, #5a2a0a 80%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 0 80px 40px #ff9040, 0 0 160px 80px rgba(255,144,64,0.3);
  animation: bif-fire-flicker 1.5s ease-in-out infinite alternate;
}
.scn-baptized-in-february .bif-figure {
  position: absolute; bottom: 15%; left: 45%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bif-figure-rock 4s ease-in-out infinite;
}
.scn-baptized-in-february .bif-book {
  position: absolute; bottom: 22%; left: 50%; width: 40px; height: 30px;
  background: #4a3a2a;
  border-radius: 2px;
  box-shadow: 2px 2px 6px rgba(0,0,0,0.5);
  transform: rotate(-10deg);
  animation: bif-book-shift 8s ease-in-out infinite;
}
.scn-baptized-in-february .bif-cat {
  position: absolute; bottom: 20%; left: 60%; width: 20px; height: 14px;
  background: #3a2a1a;
  border-radius: 50% 50% 40% 40% / 40% 40% 60% 60%;
  animation: bif-cat-stretch 5s ease-in-out infinite;
}
@keyframes bif-window-glow { 0% { opacity: 0.8 } 100% { opacity: 1 } }
@keyframes bif-fire-flicker { 0% { opacity: 0.9; transform: scaleY(1) } 50% { opacity: 1; transform: scaleY(1.1) } 100% { opacity: 0.95; transform: scaleY(0.95) } }
@keyframes bif-figure-rock { 0% { transform: rotate(0) } 25% { transform: rotate(2deg) } 50% { transform: rotate(0) } 75% { transform: rotate(-2deg) } 100% { transform: rotate(0) } }
@keyframes bif-book-shift { 0% { transform: rotate(-10deg) translateX(0) } 50% { transform: rotate(-8deg) translateX(2px) } 100% { transform: rotate(-10deg) translateX(0) } }
@keyframes bif-cat-stretch { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.2) } 100% { transform: scaleX(0.9) } }

/* ============================================= */
/* scene: fear-wears-away (calm, bright-interior) */
/* ============================================= */
.scn-fear-wears-away {
  background:
    linear-gradient(180deg, #d0c0a0 0%, #e0d0b0 30%, #f0e0c0 70%, #fff0d0 100%),
    radial-gradient(ellipse at 50% 40%, #f0e0c0 0%, transparent 60%);
}
.scn-fear-wears-away .fwa-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #c0b090 0%, #d0c0a0 100%);
  box-shadow: inset 0 0 80px rgba(0,0,0,0.08);
}
.scn-fear-wears-away .fwa-window {
  position: absolute; top: 10%; left: 20%; width: 200px; height: 160px;
  background: linear-gradient(180deg, #e8f0ff 0%, #c0d8f0 70%);
  border: 8px solid #8a7a6a;
  border-radius: 6px;
  box-shadow: inset 0 0 40px rgba(255,255,255,0.6);
  animation: fwa-window-bright 8s ease-in-out infinite alternate;
}
.scn-fear-wears-away .fwa-table {
  position: absolute; bottom: 8%; left: 15%; width: 250px; height: 16px;
  background: linear-gradient(180deg, #8a6a4a 0%, #6a4a2a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 10px rgba(0,0,0,0.3);
}
.scn-fear-wears-away .fwa-chair-1 {
  position: absolute; bottom: 10%; left: 35%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%);
  border-radius: 20% 20% 10% 10%;
  transform: rotate(-2deg);
}
.scn-fear-wears-away .fwa-chair-2 {
  position: absolute; bottom: 10%; right: 30%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%);
  border-radius: 20% 20% 10% 10%;
  transform: rotate(2deg);
}
.scn-fear-wears-away .fwa-figure-1 {
  position: absolute; bottom: 18%; left: 25%; width: 28px; height: 60px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fwa-figure-nod 6s ease-in-out infinite;
}
.scn-fear-wears-away .fwa-figure-2 {
  position: absolute; bottom: 18%; right: 35%; width: 28px; height: 56px;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fwa-figure-nod 7s ease-in-out infinite 2s;
}
.scn-fear-wears-away .fwa-light-rays {
  position: absolute; top: 10%; left: 20%; width: 200px; height: 160px;
  background: linear-gradient(135deg, rgba(255,255,240,0.2) 0%, transparent 60%);
  pointer-events: none;
  animation: fwa-rays-sweep 15s linear infinite;
}
@keyframes fwa-window-bright { 0% { opacity: 0.9 } 100% { opacity: 1 } }
@keyframes fwa-figure-nod { 0% { transform: rotate(0) } 25% { transform: rotate(1deg) } 50% { transform: rotate(0) } 75% { transform: rotate(-1deg) } 100% { transform: rotate(0) } }
@keyframes fwa-rays-sweep { 0% { opacity: 0.6; transform: translateX(0) } 50% { opacity: 1; transform: translateX(10px) } 100% { opacity: 0.6; transform: translateX(0) } }

/* poem-reflections */
.scn-poem-reflections { background: linear-gradient(180deg, #1a1423 0%, #2c1f33 40%, #3d2833 100%), radial-gradient(ellipse at 50% 60%, #4a2e3b 0%, transparent 70%); }
.scn-poem-reflections .room-wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #2a1f2e 0%, #1a1423 100%); animation: pr-wall 20s ease-in-out infinite alternate; }
.scn-poem-reflections .window-sash { position:absolute; top:15%; left:35%; width:30%; height:40%; background: radial-gradient(ellipse at 50% 50%, #3a4a5a 0%, #1a1a2a 100%); border: 4px solid #2a1f2e; border-radius: 6%; box-shadow: inset 0 0 20px #0a0a1a; animation: pr-window 8s ease-in-out infinite alternate; }
.scn-poem-reflections .desk { position:absolute; bottom:20%; left:25%; width:50%; height:12%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 4% 4% 0 0; box-shadow: 0 6px 10px rgba(0,0,0,.6); animation: pr-desk 15s ease-in-out infinite; }
.scn-poem-reflections .candle { position:absolute; bottom:30%; left:45%; width:8px; height:40px; background: linear-gradient(180deg, #f0e0c0 0%, #c0a080 100%); border-radius: 40% 40% 10% 10%; box-shadow: 0 0 18px 6px #ffd080, 0 0 36px 12px rgba(255,208,128,.4); animation: pr-candle-glow 3s ease-in-out infinite alternate; }
.scn-poem-reflections .figure-silhouette { position:absolute; bottom:22%; left:38%; width:24%; height:35%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: pr-figure 6s ease-in-out infinite; }
.scn-poem-reflections .paper { position:absolute; bottom:26%; left:42%; width:16%; height:8%; background: linear-gradient(180deg, #e8dcc8 0%, #c8b898 100%); border-radius: 4%; box-shadow: 0 2px 6px rgba(0,0,0,.3); animation: pr-paper 10s ease-in-out infinite alternate; }
.scn-poem-reflections .shadow-drift { position:absolute; inset:0; background: radial-gradient(ellipse at 30% 80%, rgba(0,0,0,.3) 0%, transparent 60%); animation: pr-shift 12s ease-in-out infinite alternate; }
@keyframes pr-wall { 0% { opacity: .7; } 50% { opacity: .9; } 100% { opacity: .8; } }
@keyframes pr-window { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.02); } 100% { transform: scaleX(.98); } }
@keyframes pr-desk { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes pr-candle-glow { 0% { box-shadow: 0 0 12px 4px #ffd080, 0 0 24px 8px rgba(255,208,128,.3); opacity: .8; } 50% { box-shadow: 0 0 24px 8px #ffd080, 0 0 48px 16px rgba(255,208,128,.5); opacity: 1; } 100% { box-shadow: 0 0 16px 5px #ffd080, 0 0 30px 10px rgba(255,208,128,.4); opacity: .9; } }
@keyframes pr-figure { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(1deg); } 50% { transform: translateY(-1px) rotate(-1deg); } 75% { transform: translateY(-3px) rotate(0deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes pr-paper { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(3px) rotate(1deg); } 100% { transform: translateX(-2px) rotate(-1deg); } }
@keyframes pr-shift { 0% { opacity: .5; } 100% { opacity: .3; } }

/* new-voyage-cadiz-again */
.scn-new-voyage-cadiz-again { background: linear-gradient(180deg, #87ceeb 0%, #b0e0e6 30%, #f0e68c 60%, #ffd70080 100%), radial-gradient(ellipse at 80% 20%, #fffde0 0%, transparent 60%); }
.scn-new-voyage-cadiz-again .sky-sea { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #7ec8e3 0%, #a4d8f0 40%, #f0e68c 100%); animation: nv-sky 20s ease-in-out infinite alternate; }
.scn-new-voyage-cadiz-again .sun { position:absolute; top:10%; right:15%; width:80px; height:80px; background: radial-gradient(circle, #fff8c0 0%, #ffd700 60%, transparent 100%); box-shadow: 0 0 60px 20px #ffd700, 0 0 120px 40px rgba(255,215,0,.3); animation: nv-sun 30s linear infinite; }
.scn-new-voyage-cadiz-again .ship-hull { position:absolute; bottom:28%; left:20%; width:40%; height:20%; background: linear-gradient(180deg, #5a3a1a 0%, #3a1a0a 100%); border-radius: 20% 20% 60% 60%; box-shadow: 0 8px 12px rgba(0,0,0,.5); animation: nv-ship 10s ease-in-out infinite; }
.scn-new-voyage-cadiz-again .ship-sail-fore { position:absolute; bottom:35%; left:28%; width:15%; height:30%; background: linear-gradient(135deg, #e8dcc0 0%, #c8b898 100%); border-radius: 30% 10% 60% 20%; transform-origin: bottom center; animation: nv-sail-f 6s ease-in-out infinite alternate; }
.scn-new-voyage-cadiz-again .ship-sail-aft { position:absolute; bottom:35%; right:28%; width:20%; height:35%; background: linear-gradient(135deg, #e8dcc0 0%, #c8b898 100%); border-radius: 10% 30% 20% 60%; transform-origin: bottom center; animation: nv-sail-a 8s ease-in-out infinite alternate; }
.scn-new-voyage-cadiz-again .wave-crest-1 { position:absolute; bottom:25%; left:0; right:0; height:15%; background: linear-gradient(180deg, #b0e0e6 0%, transparent 100%); border-radius: 40% 30% 0 0; filter: blur(3px); animation: nv-wave1 8s ease-in-out infinite alternate; }
.scn-new-voyage-cadiz-again .wave-crest-2 { position:absolute; bottom:22%; left:0; right:0; height:10%; background: linear-gradient(180deg, #d4f0f0 0%, transparent 100%); border-radius: 60% 50% 0 0; filter: blur(5px); animation: nv-wave2 12s ease-in-out infinite alternate-reverse; }
.scn-new-voyage-cadiz-again .seagull { position:absolute; top:15%; left:50%; width:20px; height:8px; background: linear-gradient(180deg, #fff 0%, #ddd 100%); border-radius: 50%; filter: blur(1px); animation: nv-gull 25s linear infinite; }
@keyframes nv-sky { 0% { opacity: .7; } 50% { opacity: .9; } 100% { opacity: .8; } }
@keyframes nv-sun { 0% { transform: translate(0,0) scale(1); } 50% { transform: translate(5px,-5px) scale(1.02); } 100% { transform: translate(0,0) scale(1); } }
@keyframes nv-ship { 0%,100% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-5px) rotate(1deg); } }
@keyframes nv-sail-f { 0% { transform: rotate(-5deg) scaleX(1); } 50% { transform: rotate(0deg) scaleX(1.1); } 100% { transform: rotate(5deg) scaleX(1); } }
@keyframes nv-sail-a { 0% { transform: rotate(5deg) scaleX(1); } 50% { transform: rotate(0deg) scaleX(1.08); } 100% { transform: rotate(-5deg) scaleX(1); } }
@keyframes nv-wave1 { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-5px) scaleY(1.1); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes nv-wave2 { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(3px) scaleY(1.2); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes nv-gull { 0% { transform: translateX(-50px) translateY(0); } 25% { transform: translateX(30px) translateY(-10px); } 50% { transform: translateX(80px) translateY(5px); } 75% { transform: translateX(130px) translateY(-8px); } 100% { transform: translateX(200px) translateY(0); } }

/* malaga-and-priest */
.scn-malaga-and-priest { background: linear-gradient(180deg, #e8c88a 0%, #c8a060 50%, #a08040 100%), radial-gradient(ellipse at 30% 50%, #d8b868 0%, transparent 70%); }
.scn-malaga-and-priest .plaza-ground { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #c8a060 0%, #a08040 100%); border-radius: 40% 40% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.4); animation: mp-ground 15s ease-in-out infinite alternate; }
.scn-malaga-and-priest .bull-shadow { position:absolute; bottom:25%; left:35%; width:30%; height:40%; background: radial-gradient(ellipse at 50% 100%, #3a2a1a 0%, transparent 60%); opacity: .6; animation: mp-bullsh 8s ease-in-out infinite; }
.scn-malaga-and-priest .bull-body { position:absolute; bottom:30%; left:38%; width:22%; height:20%; background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%); border-radius: 60% 40% 30% 40% / 50% 50% 40% 40%; box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: mp-bull 4s ease-in-out infinite; }
.scn-malaga-and-priest .priest-silhouette { position:absolute; bottom:20%; right:25%; width:12%; height:35%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 40% 30% 30% 40% / 60% 50% 40% 40%; transform-origin: bottom center; animation: mp-priest 6s ease-in-out infinite; }
.scn-malaga-and-priest .crowd-left { position:absolute; bottom:15%; left:5%; width:20%; height:25%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 30% 30% 50% 50%; animation: mp-crowd1 10s ease-in-out infinite alternate; }
.scn-malaga-and-priest .crowd-right { position:absolute; bottom:15%; right:5%; width:20%; height:25%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 30% 30% 50% 50%; animation: mp-crowd2 12s ease-in-out infinite alternate-reverse; }
.scn-malaga-and-priest .dust-swirl { position:absolute; bottom:20%; left:30%; width:15%; height:10%; background: radial-gradient(ellipse at 50% 50%, #d8b868 0%, transparent 100%); filter: blur(4px); animation: mp-dust 7s ease-in-out infinite; }
@keyframes mp-ground { 0% { transform: scaleY(1); } 50% { transform: scaleY(.98); } 100% { transform: scaleY(1); } }
@keyframes mp-bullsh { 0% { transform: scale(1) translateX(0); } 50% { transform: scale(1.1) translateX(5px); } 100% { transform: scale(1) translateX(0); } }
@keyframes mp-bull { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-3px) rotate(2deg); } 50% { transform: translateY(-1px) rotate(-2deg); } 75% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes mp-priest { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-1px) rotate(3deg); } 50% { transform: translateY(-2px) rotate(-2deg); } 75% { transform: translateY(-1px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes mp-crowd1 { 0% { transform: translateX(0) scaleY(1); } 50% { transform: translateX(5px) scaleY(1.05); } 100% { transform: translateX(0) scaleY(1); } }
@keyframes mp-crowd2 { 0% { transform: translateX(0) scaleY(1); } 50% { transform: translateX(-5px) scaleY(1.03); } 100% { transform: translateX(0) scaleY(1); } }
@keyframes mp-dust { 0% { transform: translate(0,0) scale(1) rotate(0deg); } 50% { transform: translate(5px,-5px) scale(1.5) rotate(180deg); } 100% { transform: translate(0,0) scale(1) rotate(360deg); } }

/* rescue-of-eleven-men */
.scn-rescue-of-eleven-men { background: linear-gradient(180deg, #87ceeb 0%, #b0e0e6 30%, #e0f0f0 60%, #c8e8e8 100%), radial-gradient(ellipse at 60% 70%, #d4f0f0 0%, transparent 70%); }
.scn-rescue-of-eleven-men .ocean-deep { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #6ab0d0 0%, #3a7a9a 50%, #1a4a6a 100%); animation: re-ocean 20s ease-in-out infinite alternate; }
.scn-rescue-of-eleven-men .sky-rescue { position:absolute; top:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #b0e0e6 0%, #e0f0f0 100%); animation: re-sky 25s ease-in-out infinite alternate; }
.scn-rescue-of-eleven-men .rescue-ship { position:absolute; bottom:25%; left:15%; width:35%; height:15%; background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%); border-radius: 30% 30% 50% 50%; box-shadow: 0 6px 10px rgba(0,0,0,.4); animation: re-ship 10s ease-in-out infinite; }
.scn-rescue-of-eleven-men .lifeboat { position:absolute; bottom:18%; left:45%; width:15%; height:8%; background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%); border-radius: 30% 30% 40% 40%; animation: re-lifeboat 12s ease-in-out infinite alternate; }
.scn-rescue-of-eleven-men .clinging-men { position:absolute; bottom:14%; left:48%; width:10%; height:10%; background: radial-gradient(ellipse at 50% 100%, #1a1a2a 0%, transparent 70%); border-radius: 50% 50% 30% 30%; animation: re-men 8s ease-in-out infinite; }
.scn-rescue-of-eleven-men .rope-line { position:absolute; bottom:20%; left:30%; width:20%; height:2px; background: linear-gradient(90deg, #c8b898 0%, #a08060 100%); transform-origin: left center; animation: re-rope 6s ease-in-out infinite; }
.scn-rescue-of-eleven-men .wave-foam { position:absolute; bottom:15%; left:0; right:0; height:8%; background: linear-gradient(180deg, #e0f0f0 0%, transparent 100%); border-radius: 50% 40% 0 0; filter: blur(4px); animation: re-foam 9s ease-in-out infinite alternate; }
@keyframes re-ocean { 0% { opacity: .7; } 50% { opacity: .9; } 100% { opacity: .8; } }
@keyframes re-sky { 0% { opacity: .8; } 50% { opacity: 1; } 100% { opacity: .85; } }
@keyframes re-ship { 0%,100% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-3px) rotate(1deg); } }
@keyframes re-lifeboat { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-2px) scaleX(1.02); } 100% { transform: translateY(0) scaleX(1); } }
@keyframes re-men { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(1.05); } 100% { transform: translateY(0) scale(1); } }
@keyframes re-rope { 0% { transform: rotate(-5deg) scaleY(1); } 50% { transform: rotate(0deg) scaleY(1.1); } 100% { transform: rotate(5deg) scaleY(1); } }
@keyframes re-foam { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-3px) scaleX(1.05); } 100% { transform: translateY(0) scaleX(1); } }

.scn-learning-arithmetic { background: linear-gradient(180deg, #e8dcc8 0%, #c8b898 50%, #a08060 100%), radial-gradient(ellipse at 30% 50%, #f0e0c0 0%, transparent 60%); }
.scn-learning-arithmetic .wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #d4c4a8 0%, #b8a080 100%); box-shadow: inset 0 0 60px rgba(120,80,40,.2); }
.scn-learning-arithmetic .desk { position:absolute; bottom:10%; left:20%; right:20%; height:28%; background: linear-gradient(180deg, #7a5a3a 0%, #4a3018 100%); border-radius: 4px 4px 0 0; box-shadow: 0 6px 12px rgba(0,0,0,.4); animation: la-desk 8s ease-in-out infinite alternate; }
.scn-learning-arithmetic .book-stack { position:absolute; bottom:28%; left:30%; width:24%; height:14%; background: linear-gradient(180deg, #b06030 0%, #804020 50%, #603020 100%); border-radius: 2px; box-shadow: 2px 2px 6px rgba(0,0,0,.3); animation: la-book 12s ease-in-out infinite; }
.scn-learning-arithmetic .window-out { position:absolute; top:10%; right:10%; width:30%; height:40%; background: radial-gradient(ellipse at center, #c0d8f0 0%, #a0b8d0 70%); border: 6px solid #6a4a2a; border-radius: 4px; box-shadow: inset 0 0 30px rgba(160,180,200,.5); }
.scn-learning-arithmetic .window-glass { position:absolute; top:10%; right:10%; width:30%; height:40%; background: linear-gradient(180deg, rgba(180,210,240,.2) 0%, rgba(200,220,240,.1) 100%); border: 6px solid #6a4a2a; border-radius: 4px; animation: la-glass 6s ease-in-out infinite alternate; }
.scn-learning-arithmetic .scholar { position:absolute; bottom:10%; left:35%; width:15%; height:35%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: la-scholar 4s ease-in-out infinite; }
.scn-learning-arithmetic .lamp-glow { position:absolute; bottom:35%; left:55%; width:12%; height:15%; background: radial-gradient(circle, #f0d080 0%, #e0b060 40%, transparent 70%); border-radius: 50%; box-shadow: 0 0 40px 20px rgba(224,176,96,.5); animation: la-lamp 3s ease-in-out infinite alternate; }
.scn-learning-arithmetic .pencil { position:absolute; bottom:12%; left:55%; width:8%; height:2%; background: linear-gradient(90deg, #c08040 0%, #d0a060 40%, #302010 40%, #302010 100%); border-radius: 2px; transform: rotate(-20deg); animation: la-pencil 7s linear infinite; }
@keyframes la-desk { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes la-book { 0% { transform: translateY(0); } 25% { transform: translateY(-3px); } 50% { transform: translateY(0); } 75% { transform: translateY(2px); } 100% { transform: translateY(0); } }
@keyframes la-glass { 0% { opacity: .3; } 50% { opacity: .6; } 100% { opacity: .2; } }
@keyframes la-scholar { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(3px) rotate(2deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes la-lamp { 0% { opacity: .7; } 50% { opacity: 1; } 100% { opacity: .8; } }
@keyframes la-pencil { 0% { transform: rotate(-20deg) translateX(0); } 50% { transform: rotate(-15deg) translateX(5px); } 100% { transform: rotate(-20deg) translateX(0); } }

.scn-dr-irving-kindness { background: linear-gradient(180deg, #b8a080 0%, #8a6a4a 40%, #5a3a2a 100%), radial-gradient(ellipse at 70% 60%, #d0b090 0%, transparent 60%); }
.scn-dr-irving-kindness .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #5a3a2a 0%, #3a2010 100%); box-shadow: inset 0 8px 20px rgba(0,0,0,.5); }
.scn-dr-irving-kindness .fireplace { position:absolute; bottom:30%; left:50%; width:40%; height:50%; transform: translateX(-50%); background: linear-gradient(180deg, #4a2a1a 0%, #2a1508 100%); border-radius: 20px 20px 8px 8px; box-shadow: 0 0 30px rgba(200,120,40,.2); }
.scn-dr-irving-kindness .mantel-shelf { position:absolute; bottom:55%; left:50%; width:44%; height:4%; transform: translateX(-50%); background: linear-gradient(180deg, #6a4a2a 0%, #4a2a10 100%); border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,.4); }
.scn-dr-irving-kindness .fire-glow { position:absolute; bottom:30%; left:50%; width:20%; height:20%; transform: translateX(-50%); background: radial-gradient(circle, #f0a040 0%, #d07030 40%, transparent 70%); border-radius: 50%; box-shadow: 0 0 60px 30px rgba(240,160,64,.5); animation: di-glow 2s ease-in-out infinite alternate; }
.scn-dr-irving-kindness .teacher { position:absolute; bottom:30%; left:30%; width:12%; height:45%; background: linear-gradient(180deg, #2a1a10 0%, #150a05 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: di-teacher 5s ease-in-out infinite; }
.scn-dr-irving-kindness .student { position:absolute; bottom:30%; right:30%; width:10%; height:35%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: di-student 6s ease-in-out infinite; }
.scn-dr-irving-kindness .book-open { position:absolute; bottom:32%; left:45%; width:14%; height:8%; background: linear-gradient(180deg, #c0a080 0%, #a08060 100%); border-radius: 2px; box-shadow: 2px 2px 4px rgba(0,0,0,.3); transform: rotate(-5deg); animation: di-book 8s ease-in-out infinite; }
.scn-dr-irving-kindness .candle { position:absolute; bottom:56%; left:45%; width:2%; height:8%; background: linear-gradient(180deg, #e8d0a0 0%, #c8a870 100%); border-radius: 50% 50% 20% 20%; box-shadow: 0 0 12px 4px rgba(200,168,112,.4); animation: di-candle 4s ease-in-out infinite alternate; }
@keyframes di-glow { 0% { opacity: .6; } 50% { opacity: 1; } 100% { opacity: .7; } }
@keyframes di-teacher { 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 di-student { 0% { transform: translateX(0) translateY(0); } 30% { transform: translateX(-3px) translateY(-2px); } 60% { transform: translateX(2px) translateY(-1px); } 100% { transform: translateX(0) translateY(0); } }
@keyframes di-book { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-2px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes di-candle { 0% { opacity: .7; } 50% { opacity: 1; } 100% { opacity: .8; } }

.scn-ship-delawar-italy-turkey { background: linear-gradient(180deg, #4a7a9a 0%, #2a5a7a 40%, #1a3a5a 100%), radial-gradient(ellipse at 50% 30%, #6a9aba 0%, transparent 70%); }
.scn-ship-delawar-italy-turkey .sea-bg { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #1a4a6a 0%, #0a2a4a 100%); }
.scn-ship-delawar-italy-turkey .sea-mid { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, transparent 0%, rgba(30,80,120,.3) 60%, rgba(20,60,100,.5) 100%); animation: st-sea 12s ease-in-out infinite alternate; }
.scn-ship-delawar-italy-turkey .ship-hull { position:absolute; bottom:38%; left:30%; width:45%; height:12%; background: linear-gradient(180deg, #5a3a2a 0%, #3a2010 100%); border-radius: 0 0 40% 40% / 0 0 60% 60%; box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: st-hull 8s ease-in-out infinite; }
.scn-ship-delawar-italy-turkey .ship-mast { position:absolute; bottom:48%; left:40%; width:2%; height:30%; background: linear-gradient(180deg, #4a2a1a 0%, #2a1508 100%); transform-origin: bottom center; animation: st-mast 8s ease-in-out infinite; }
.scn-ship-delawar-italy-turkey .sail-main { position:absolute; bottom:48%; left:35%; width:18%; height:22%; background: linear-gradient(180deg, #e8e0c0 0%, #c0b090 100%); border-radius: 20% 80% 20% 80% / 40% 60% 40% 60%; box-shadow: 2px 2px 6px rgba(0,0,0,.2); animation: st-sail1 10s ease-in-out infinite; }
.scn-ship-delawar-italy-turkey .sail-jib { position:absolute; bottom:38%; left:20%; width:10%; height:15%; background: linear-gradient(180deg, #f0e8d0 0%, #d0c0a0 100%); border-radius: 80% 20% 80% 20% / 60% 40% 60% 40%; transform: rotate(10deg); animation: st-sail2 12s ease-in-out infinite; }
.scn-ship-delawar-italy-turkey .sun-glare { position:absolute; top:10%; left:60%; width:20%; height:20%; background: radial-gradient(circle, #f0e080 0%, #e0c060 30%, transparent 70%); border-radius: 50%; box-shadow: 0 0 80px 40px rgba(240,224,128,.3); animation: st-sun 6s ease-in-out infinite alternate; }
.scn-ship-delawar-italy-turkey .cloud-layer { position:absolute; top:5%; left:0; right:0; height:30%; background: linear-gradient(180deg, rgba(200,220,240,.3) 0%, transparent 100%); filter: blur(8px); animation: st-cloud 40s linear infinite; }
@keyframes st-sea { 0% { opacity: .6; } 50% { opacity: .9; } 100% { opacity: .5; } }
@keyframes st-hull { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes st-mast { 0% { transform: rotate(-1deg); } 50% { transform: rotate(1deg); } 100% { transform: rotate(-1deg); } }
@keyframes st-sail1 { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.05) translateX(-2px); } 100% { transform: scaleX(1); } }
@keyframes st-sail2 { 0% { transform: rotate(10deg) scaleX(1); } 50% { transform: rotate(5deg) scaleX(1.08); } 100% { transform: rotate(10deg) scaleX(1); } }
@keyframes st-sun { 0% { opacity: .5; } 50% { opacity: 1; } 100% { opacity: .7; } }
@keyframes st-cloud { 0% { transform: translateX(0); } 100% { transform: translateX(-30vw); } }

.scn-italy-villa-franca-nice { background: linear-gradient(180deg, #c8d8e8 0%, #a0b8d0 40%, #80a0b8 100%), radial-gradient(ellipse at 50% 100%, #b0c0d0 0%, transparent 60%); }
.scn-italy-villa-franca-nice .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #d8e8f0 0%, #b0c8e0 100%); animation: if-sky 20s ease-in-out infinite alternate; }
.scn-italy-villa-franca-nice .hill-bg { position:absolute; bottom:30%; left:0; right:0; height:30%; background: linear-gradient(180deg, #6a8a6a 0%, #4a6a4a 100%); border-radius: 50% 30% 0 0 / 60% 40% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,.2); animation: if-hill 18s ease-in-out infinite alternate; }
.scn-italy-villa-franca-nice .villa { position:absolute; bottom:40%; left:35%; width:35%; height:25%; background: linear-gradient(180deg, #d0c0a0 0%, #b0a080 100%); border-radius: 4px 4px 0 0; box-shadow: 0 6px 12px rgba(0,0,0,.3); animation: if-villa 12s ease-in-out infinite; }
.scn-italy-villa-franca-nice .villa-windows { position:absolute; bottom:42%; left:40%; width:8%; height:12%; background: radial-gradient(circle, #c8a070 0%, #a08050 80%); border: 2px solid #5a3a2a; border-radius: 2px; box-shadow: inset 0 0 10px rgba(160,128,80,.5); animation: if-window 6s ease-in-out infinite alternate; }
.scn-italy-villa-franca-nice .tree-left { position:absolute; bottom:35%; left:15%; width:15%; height:40%; background: linear-gradient(180deg, #3a6a3a 0%, #2a4a2a 100%); border-radius: 50% 20% 0 0 / 60% 30% 0 0; box-shadow: 0 4px 8px rgba(0,0,0,.2); animation: if-tree-l 15s ease-in-out infinite; }
.scn-italy-villa-franca-nice .tree-right { position:absolute; bottom:35%; right:15%; width:12%; height:35%; background: linear-gradient(180deg, #4a7a4a 0%, #2a5a2a 100%); border-radius: 30% 50% 0 0 / 40% 60% 0 0; animation: if-tree-r 18s ease-in-out infinite reverse; }
.scn-italy-villa-franca-nice .fruits { position:absolute; bottom:55%; left:20%; width:6%; height:6%; background: radial-gradient(circle, #c86850 0%, #a04830 80%); border-radius: 50%; box-shadow: 0 0 10px 4px rgba(200,104,80,.3); animation: if-fruit 3s ease-in-out infinite alternate; }
.scn-italy-villa-franca-nice .path { position:absolute; bottom:0; left:30%; right:30%; height:10%; background: linear-gradient(180deg, #a08060 0%, #806040 100%); border-radius: 50% 50% 0 0 / 100% 100% 0 0; animation: if-path 20s ease-in-out infinite alternate; }
@keyframes if-sky { 0% { opacity: .8; } 50% { opacity: 1; } 100% { opacity: .9; } }
@keyframes if-hill { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes if-villa { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes if-window { 0% { opacity: .6; } 50% { opacity: .9; } 100% { opacity: .7; } }
@keyframes if-tree-l { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.03); } 100% { transform: scaleY(1); } }
@keyframes if-tree-r { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(1); } }
@keyframes if-fruit { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(1.1); } 100% { transform: translateY(0) scale(1); } }
@keyframes if-path { 0% { opacity: .7; } 50% { opacity: .9; } 100% { opacity: .8; } }

.scn-scholarly-opinions {
  background:
    linear-gradient(180deg, #f5ecd6 0%, #e6d8b8 50%, #c9b896 100%),
    radial-gradient(ellipse at 40% 60%, #fff5e0 0%, transparent 70%);
}
.scn-scholarly-opinions .wall {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #e8ddd0 0%, #d9cdba 100%);
  animation: soWall 30s ease-in-out infinite alternate;
}
.scn-scholarly-opinions .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #b8a78c 0%, #8f7c64 100%);
  box-shadow: inset 0 20px 30px rgba(0,0,0,0.15);
}
.scn-scholarly-opinions .desk {
  position: absolute; bottom: 18%; left: 25%; width: 50%; height: 22%;
  background: linear-gradient(180deg, #8b6f47 0%, #6a5232 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 8px 16px rgba(0,0,0,0.3);
  transform-origin: center;
  animation: soDesk 12s ease-in-out infinite;
}
.scn-scholarly-opinions .book-open {
  position: absolute; bottom: 30%; left: 42%; width: 20%; height: 14%;
  background: linear-gradient(180deg, #f5eed0 0%, #f0e6c0 100%);
  border-radius: 3px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.2), inset 0 0 0 1px #d4c8a0;
  transform: skewX(-2deg) scaleY(1.02);
  animation: soBook 20s ease-in-out infinite alternate;
}
.scn-scholarly-opinions .book-stack {
  position: absolute; bottom: 24%; left: 30%; width: 14%; height: 12%;
  background: linear-gradient(180deg, #7a6040 0%, #5a4328 100%);
  border-radius: 2px;
  box-shadow: 0 4px 6px rgba(0,0,0,0.4);
  transform: rotate(-5deg);
  animation: soStack 18s ease-in-out infinite alternate;
}
.scn-scholarly-opinions .hand {
  position: absolute; bottom: 28%; left: 62%; width: 6%; height: 10%;
  background: linear-gradient(180deg, #d4b090 0%, #c09878 100%);
  border-radius: 60% 60% 40% 40% / 40% 40% 60% 60%;
  transform-origin: 50% 80%;
  animation: soHand 4s ease-in-out infinite;
}
.scn-scholarly-opinions .glow-lamp {
  position: absolute; bottom: 42%; left: 58%; width: 8%; height: 12%;
  background: radial-gradient(circle at 50% 30%, #fff0b0 0%, #d4c080 60%);
  border-radius: 50%;
  box-shadow: 0 0 40px 30px rgba(255,240,176,0.4);
  animation: soGlow 6s ease-in-out infinite alternate;
}
@keyframes soWall  { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes soDesk  { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes soBook  { 0% { transform: skewX(-2deg) scaleY(1.02) } 50% { transform: skewX(-1deg) scaleY(1.04) } 100% { transform: skewX(0deg) scaleY(1.02) } }
@keyframes soStack { 0% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(-4deg) translateY(-1px) } 100% { transform: rotate(-6deg) translateY(0) } }
@keyframes soHand  { 0% { transform: rotate(0deg) } 25% { transform: rotate(10deg) } 50% { transform: rotate(5deg) } 75% { transform: rotate(12deg) } 100% { transform: rotate(0deg) } }
@keyframes soGlow  { 0% { box-shadow: 0 0 30px 20px rgba(255,240,176,0.3) } 50% { box-shadow: 0 0 50px 35px rgba(255,240,176,0.6) } 100% { box-shadow: 0 0 40px 25px rgba(255,240,176,0.4) } }

.scn-scripture-chronology {
  background:
    linear-gradient(180deg, #f2ead0 0%, #e2d6b8 50%, #d1c3a0 100%),
    radial-gradient(ellipse at 60% 40%, #fff8e8 0%, transparent 70%);
}
.scn-scripture-chronology .wall-bookshelf {
  position: absolute; inset: 0 0 45% 0;
  background: repeating-linear-gradient(180deg, #b8a080 0px, #b8a080 12px, #a48c6c 12px, #a48c6c 14px);
  animation: scShelf 40s linear infinite;
}
.scn-scripture-chronology .desk-long {
  position: absolute; bottom: 15%; left: 15%; width: 70%; height: 25%;
  background: linear-gradient(180deg, #9a7c5a 0%, #7a6040 100%);
  border-radius: 6px 6px 0 0;
  box-shadow: 0 6px 14px rgba(0,0,0,0.3);
}
.scn-scripture-chronology .scroll {
  position: absolute; bottom: 30%; left: 40%; width: 22%; height: 18%;
  background: linear-gradient(180deg, #f0e0b8 0%, #d8c89a 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  box-shadow: 0 2px 10px rgba(0,0,0,0.2);
  transform: rotate(-3deg);
  animation: scScroll 22s ease-in-out infinite alternate;
}
.scn-scripture-chronology .candle {
  position: absolute; bottom: 38%; left: 72%; width: 3%; height: 12%;
  background: linear-gradient(90deg, #e8d0a0 0%, #f5e8c0 50%, #e0c890 100%);
  border-radius: 8% 8% 20% 20%;
  box-shadow: 0 0 6px rgba(200,150,50,0.3);
  animation: scCandle 8s ease-in-out infinite;
}
.scn-scripture-chronology .candle-glow {
  position: absolute; bottom: 48%; left: 73%; width: 8%; height: 12%;
  background: radial-gradient(circle, #ffec90 0%, transparent 70%);
  border-radius: 50%;
  animation: scCandleGlow 5s ease-in-out infinite alternate;
}
.scn-scripture-chronology .inkwell {
  position: absolute; bottom: 24%; left: 50%; width: 8%; height: 6%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0e04 100%);
  border-radius: 40%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation: scInk 15s ease-in-out infinite;
}
.scn-scripture-chronology .quill {
  position: absolute; bottom: 28%; left: 55%; width: 2%; height: 16%;
  background: linear-gradient(180deg, #d8c090 0%, #a88860 100%);
  border-radius: 0 0 30% 30% / 0 0 60% 60%;
  transform: rotate(20deg);
  transform-origin: bottom center;
  animation: scQuill 3s ease-in-out infinite;
}
@keyframes scShelf      { 0% { background-position-y:0 } 100% { background-position-y:40px } }
@keyframes scScroll     { 0% { transform: rotate(-3deg) translateY(0) } 50% { transform: rotate(-2deg) translateY(-2px) } 100% { transform: rotate(-4deg) translateY(0) } }
@keyframes scCandle     { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.03) } 100% { transform: scaleY(0.98) } }
@keyframes scCandleGlow { 0% { opacity:0.6; transform: scale(1) } 50% { opacity:0.9; transform: scale(1.2) } 100% { opacity:0.7; transform: scale(0.9) } }
@keyframes scInk        { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(1px) } }
@keyframes scQuill      { 0% { transform: rotate(20deg) } 50% { transform: rotate(25deg) } 100% { transform: rotate(18deg) } }

.scn-law-of-retaliation {
  background:
    linear-gradient(180deg, #ebe0c8 0%, #d6caa8 50%, #bfb28a 100%),
    radial-gradient(ellipse at 50% 50%, #fffcf0 0%, transparent 60%);
}
.scn-law-of-retaliation .wall-panel {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(90deg, #d4c0a0 0%, #c8b490 50%, #d0bca0 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,0.1);
  animation: lrWall 25s ease-in-out infinite alternate;
}
.scn-law-of-retaliation .table {
  position: absolute; bottom: 20%; left: 20%; width: 60%; height: 18%;
  background: linear-gradient(180deg, #9a7c5a 0%, #7a6040 100%);
  border-radius: 6px 6px 0 0;
  box-shadow: 0 8px 20px rgba(0,0,0,0.3);
}
.scn-law-of-retaliation .scales {
  position: absolute; bottom: 32%; left: 50%; width: 30%; height: 18%;
  background: radial-gradient(ellipse at 50% 30%, #c8b090 0%, #a08870 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  transform: translateX(-50%);
  box-shadow: 0 4px 12px rgba(0,0,0,0.3);
  animation: lrScales 16s ease-in-out infinite;
}
.scn-law-of-retaliation .scale-pan-left {
  position: absolute; bottom: 28%; left: 38%; width: 12%; height: 6%;
  background: linear-gradient(180deg, #b89870 0%, #9a7c58 100%);
  border-radius: 20% 20% 40% 40%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: lrPanLeft 10s ease-in-out infinite;
}
.scn-law-of-retaliation .scale-pan-right {
  position: absolute; bottom: 28%; left: 50%; width: 12%; height: 6%;
  background: linear-gradient(180deg, #b89870 0%, #9a7c58 100%);
  border-radius: 20% 20% 40% 40%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: lrPanRight 10s ease-in-out infinite reverse;
}
.scn-law-of-retaliation .scales-stand {
  position: absolute; bottom: 30%; left: 49.5%; width: 1%; height: 18%;
  background: linear-gradient(180deg, #8a7050 0%, #6a5030 100%);
  border-radius: 20% 20% 0 0;
}
.scn-law-of-retaliation .glow-spot {
  position: absolute; bottom: 50%; left: 45%; width: 20%; height: 20%;
  background: radial-gradient(circle, #fffbe0 0%, transparent 70%);
  border-radius: 50%;
  animation: lrGlow 8s ease-in-out infinite alternate;
}
@keyframes lrWall      { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.95 } }
@keyframes lrScales    { 0% { transform: translateX(-50%) rotate(0deg) } 50% { transform: translateX(-50%) rotate(-2deg) } 100% { transform: translateX(-50%) rotate(2deg) } }
@keyframes lrPanLeft   { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes lrPanRight  { 0% { transform: translateY(0) } 50% { transform: translateY(3px) } 100% { transform: translateY(0) } }
@keyframes lrGlow      { 0% { opacity:0.4; transform: scale(1) } 50% { opacity:0.7; transform: scale(1.1) } 100% { opacity:0.5; transform: scale(0.9) } }

.scn-difference-of-colour {
  background:
    linear-gradient(180deg, #f0e8d0 0%, #e0d4b8 50%, #c8bc9a 100%),
    radial-gradient(ellipse at 30% 30%, #fff8e0 0%, transparent 70%);
}
.scn-difference-of-colour .window-frame {
  position: absolute; inset: 8% 10% 40% 10%;
  background: linear-gradient(90deg, #a89070 0%, #c8b090 50%, #a89070 100%);
  border: 6px solid #8a7050;
  border-radius: 2px;
  box-shadow: inset 0 0 0 2px #6a5030;
  animation: dcWindow 30s ease-in-out infinite alternate;
}
.scn-difference-of-colour .window-glass {
  position: absolute; inset: 12% 14% 44% 14%;
  background: linear-gradient(135deg, #d0e4f0 0%, #b0c8d8 50%, #90b0c8 100%);
  border-radius: 0 0 8px 8px;
  opacity: 0.6;
  box-shadow: inset 0 0 30px rgba(255,255,255,0.3);
  animation: dcGlass 12s ease-in-out infinite;
}
.scn-difference-of-colour .light-ray {
  position: absolute; top: 12%; left: 30%; width: 40%; height: 50%;
  background: linear-gradient(135deg, rgba(255,255,200,0.3) 0%, transparent 70%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  animation: dcRay 8s ease-in-out infinite alternate;
}
.scn-difference-of-colour .sill {
  position: absolute; bottom: 40%; left: 8%; width: 84%; height: 3%;
  background: linear-gradient(180deg, #b09878 0%, #8a7050 100%);
  border-radius: 0 0 4px 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
}
.scn-difference-of-colour .book-small {
  position: absolute; bottom: 36%; left: 44%; width: 12%; height: 8%;
  background: linear-gradient(180deg, #7a6040 0%, #5a4328 100%);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  transform: rotate(-10deg);
  animation: dcBook 15s ease-in-out infinite alternate;
}
.scn-difference-of-colour .shadow-figure {
  position: absolute; bottom: 24%; left: 50%; width: 12%; height: 24%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e04 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  box-shadow: 0 6px 12px rgba(0,0,0,0.4);
  animation: dcFigure 10s ease-in-out infinite;
}
.scn-difference-of-colour .dust-mote {
  position: absolute; bottom: 50%; left: 35%; width: 2%; height: 2%;
  background: rgba(255,255,220,0.6);
  border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(255,255,200,0.4);
  animation: dcDust 20s linear infinite;
}
@keyframes dcWindow { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes dcGlass  { 0% { opacity:0.5; transform: scale(1) } 50% { opacity:0.7; transform: scale(1.01) } 100% { opacity:0.6; transform: scale(0.98) } }
@keyframes dcRay    { 0% { opacity:0.2; transform: rotate(-2deg) } 50% { opacity:0.5; transform: rotate(2deg) } 100% { opacity:0.3; transform: rotate(0deg) } }
@keyframes dcBook   { 0% { transform: rotate(-10deg) translateY(0) } 50% { transform: rotate(-8deg) translateY(-1px) } 100% { transform: rotate(-12deg) translateY(0) } }
@keyframes dcFigure { 0% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-2px) } 100% { transform: translateX(-50%) translateY(0) } }
@keyframes dcDust   { 0% { transform: translate(0, 0) scale(1); opacity:0.6 } 25% { transform: translate(15px, -10px) scale(1.3); opacity:0.8 } 50% { transform: translate(30px, -5px) scale(1); opacity:0.5 } 75% { transform: translate(10px, -20px) scale(1.2); opacity:0.7 } 100% { transform: translate(0, 0) scale(1); opacity:0.6 } }

.scn-shippment-to-cadiz {
  background:
    linear-gradient(180deg, #f6e8c8 0%, #d4c4a0 30%, #9ab8d4 50%, #7a9eb8 70%, #5a7a9a 100%),
    radial-gradient(ellipse at 70% 30%, #fef0d0 0%, transparent 60%);
}
.scn-shippment-to-cadiz .sky-sun {
  position:absolute; inset:0 0 55% 0;
  background: linear-gradient(180deg, #fef5e0 0%, #e8d8b8 40%, #b8c8d8 100%);
  animation: sc-sky 20s ease-in-out infinite alternate;
}
.scn-shippment-to-cadiz .sea {
  position:absolute; bottom:0; left:0; right:0; height:55%;
  background: linear-gradient(180deg, #6a8aaa 0%, #4a6a8a 50%, #3a5a7a 100%);
  animation: sc-sea 12s ease-in-out infinite alternate;
}
.scn-shippment-to-cadiz .deck {
  position:absolute; bottom:18%; left:10%; right:10%; height:12%;
  background: linear-gradient(180deg, #b89878 0%, #8a7050 100%);
  border-radius: 2% 2% 0 0;
  box-shadow: inset 0 4px 12px rgba(0,0,0,.3);
  animation: sc-deck 8s ease-in-out infinite alternate;
}
.scn-shippment-to-cadiz .hull {
  position:absolute; bottom:28%; left:15%; width:70%; height:20%;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 30% 30% 10% 10% / 80% 80% 20% 20%;
  box-shadow: inset 0 -6px 12px rgba(0,0,0,.6), 2px 0 8px rgba(0,0,0,.3);
}
.scn-shippment-to-cadiz .mast {
  position:absolute; bottom:38%; left:50%; width:4px; height:45%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  transform-origin: bottom center;
  animation: sc-mast 14s ease-in-out infinite alternate;
}
.scn-shippment-to-cadiz .sail-main {
  position:absolute; bottom:48%; left:42%; width:22%; height:30%;
  background: linear-gradient(135deg, #f8f0e0 0%, #d8c8b0 50%, #b8a890 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  filter: drop-shadow(2px 4px 6px rgba(0,0,0,.2));
  transform-origin: bottom center;
  animation: sc-sail 16s ease-in-out infinite alternate;
}
.scn-shippment-to-cadiz .sail-jib {
  position:absolute; bottom:52%; left:28%; width:14%; height:25%;
  background: linear-gradient(145deg, #f0e8d8 0%, #d0c0a8 50%, #b0a090 100%);
  border-radius: 60% 40% 40% 60% / 80% 60% 40% 20%;
  filter: drop-shadow(1px 3px 5px rgba(0,0,0,.15));
  transform-origin: bottom right;
  animation: sc-jib 18s ease-in-out infinite alternate;
}
.scn-shippment-to-cadiz .horizon-line {
  position:absolute; bottom:55%; left:0; right:0; height:2px;
  background: rgba(255,255,240,.5);
  box-shadow: 0 0 8px 2px rgba(255,255,240,.2);
  animation: sc-horizon 25s ease-in-out infinite alternate;
}
@keyframes sc-sky { 0% { opacity:.85; } 50% { opacity:1; } 100% { opacity:.9; } }
@keyframes sc-sea { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-3px) scaleY(1.02); } 100% { transform: translateY(2px) scaleY(.98); } }
@keyframes sc-deck { 0% { transform: rotate(-.5deg) translateY(0); } 50% { transform: rotate(.3deg) translateY(-1px); } 100% { transform: rotate(-.2deg) translateY(1px); } }
@keyframes sc-mast { 0% { transform: rotate(-.8deg); } 50% { transform: rotate(.5deg); } 100% { transform: rotate(-.3deg); } }
@keyframes sc-sail { 0% { transform: scaleX(1) rotate(-1deg); } 50% { transform: scaleX(1.05) rotate(.5deg) translateX(-2px); } 100% { transform: scaleX(.98) rotate(-.5deg) translateX(1px); } }
@keyframes sc-jib { 0% { transform: scaleY(1) rotate(0deg); } 50% { transform: scaleY(1.03) rotate(-1deg) translateX(1px); } 100% { transform: scaleY(.97) rotate(.5deg) translateX(-1px); } }
@keyframes sc-horizon { 0% { opacity:.4; } 50% { opacity:.7; } 100% { opacity:.5; } }

.scn-voyage-to-cadiz {
  background:
    linear-gradient(180deg, #fef0d8 0%, #f0dcc0 30%, #c8b898 60%, #8a7a6a 100%),
    radial-gradient(ellipse at 30% 20%, #fff8e8 0%, transparent 60%);
}
.scn-voyage-to-cadiz .bg-port {
  position:absolute; inset:0;
  background: linear-gradient(180deg, #e8dcc8 0%, #c8b8a0 40%, #a09080 70%, #7a6a5a 100%);
  animation: vc-bg 30s ease-in-out infinite alternate;
}
.scn-voyage-to-cadiz .galleon-a {
  position:absolute; bottom:25%; left:8%; width:28%; height:32%;
  background: linear-gradient(135deg, #6a4a2a 0%, #4a3020 50%, #2a1a10 100%);
  border-radius: 40% 30% 20% 20% / 70% 50% 30% 30%;
  filter: drop-shadow(2px 0 6px rgba(0,0,0,.3));
  animation: vc-galon-a 45s ease-in-out infinite alternate;
}
.scn-voyage-to-cadiz .galleon-b {
  position:absolute; bottom:20%; right:5%; width:22%; height:28%;
  background: linear-gradient(145deg, #5a3a1a 0%, #3a2210 60%, #2a1a08 100%);
  border-radius: 35% 35% 15% 15% / 65% 55% 25% 25%;
  filter: drop-shadow(-1px 0 4px rgba(0,0,0,.25));
  transform: scale(.85);
  animation: vc-galon-b 55s ease-in-out infinite alternate;
}
.scn-voyage-to-cadiz .quay {
  position:absolute; bottom:0; left:0; right:0; height:22%;
  background: linear-gradient(180deg, #b8a080 0%, #988060 30%, #786050 60%, #5a4030 100%);
  border-radius: 20% 20% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 6px 16px rgba(0,0,0,.4);
  animation: vc-quay 16s ease-in-out infinite alternate;
}
.scn-voyage-to-cadiz .figure-seated {
  position:absolute; bottom:20%; left:48%; width:24px; height:40px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: vc-figure 8s ease-in-out infinite alternate;
}
.scn-voyage-to-cadiz .book-open {
  position:absolute; bottom:18%; left:52%; width:20px; height:14px;
  background: linear-gradient(135deg, #f0e8d0 0%, #c8b898 50%, #a09070 100%);
  border-radius: 4% 4% 30% 30% / 4% 4% 40% 40%;
  transform: skewX(-5deg);
  box-shadow: 0 2px 6px rgba(0,0,0,.3);
  animation: vc-book 10s ease-in-out infinite alternate;
}
.scn-voyage-to-cadiz .sunburst {
  position:absolute; top:8%; left:30%; width:60px; height:60px;
  background: radial-gradient(circle, #fff8e0 0%, #f0d8a0 30%, transparent 70%);
  border-radius: 50%;
  filter: blur(2px);
  animation: vc-sun 20s ease-in-out infinite alternate;
}
@keyframes vc-bg { 0% { opacity:.92; } 50% { opacity:1; } 100% { opacity:.95; } }
@keyframes vc-galon-a { 0% { transform: translateY(0) rotate(-.5deg); } 50% { transform: translateY(-4px) rotate(.3deg) scale(1.01); } 100% { transform: translateY(2px) rotate(-.2deg) scale(.99); } }
@keyframes vc-galon-b { 0% { transform: translateY(0) rotate(.3deg) scale(.85); } 50% { transform: translateY(-3px) rotate(-.2deg) scale(.86); } 100% { transform: translateY(2px) rotate(.1deg) scale(.84); } }
@keyframes vc-quay { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(1px); } }
@keyframes vc-figure { 0% { transform: rotate(-2deg) translateX(0); } 50% { transform: rotate(1deg) translateX(2px); } 100% { transform: rotate(-1deg) translateX(-1px); } }
@keyframes vc-book { 0% { transform: skewX(-5deg) rotate(-1deg); } 50% { transform: skewX(-3deg) rotate(2deg) translateY(-1px); } 100% { transform: skewX(-6deg) rotate(0deg); } }
@keyframes vc-sun { 0% { opacity:.6; transform: scale(.95); } 50% { opacity:1; transform: scale(1.05); } 100% { opacity:.8; transform: scale(1); } }

.scn-conversion-experience {
  background:
    linear-gradient(180deg, #1a1210 0%, #2a1a18 30%, #3a2218 60%, #1a1008 100%),
    radial-gradient(ellipse at 50% 60%, #4a3020 0%, transparent 70%);
}
.scn-conversion-experience .room-dark {
  position:absolute; inset:0;
  background: linear-gradient(135deg, #1a1210 0%, #0e0a08 50%, #1a1210 100%);
  animation: ce-room 25s ease-in-out infinite alternate;
}
.scn-conversion-experience .floor-planks {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a10 50%, #1a0e08 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,.6);
  animation: ce-floor 20s ease-in-out infinite alternate;
}
.scn-conversion-experience .figure-kneeling {
  position:absolute; bottom:16%; left:50%; width:34px; height:48px;
  background: linear-gradient(180deg, #1a1210 0%, #0e0a08 50%, #080606 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 0 0 20px 4px rgba(200,160,80,.15);
  animation: ce-kneel 6s ease-in-out infinite alternate;
}
.scn-conversion-experience .glow-supernatural {
  position:absolute; top:20%; left:30%; width:120px; height:140px;
  background: radial-gradient(circle at 50% 30%, #c8a060 0%, #8a6030 35%, #3a2010 60%, transparent 80%);
  border-radius: 50%;
  filter: blur(12px);
  mix-blend-mode: screen;
  animation: ce-glow 5s ease-in-out infinite alternate;
}
.scn-conversion-experience .light-beam {
  position:absolute; top:10%; left:35%; width:80px; height:70%;
  background: linear-gradient(180deg, rgba(200,160,80,.25) 0%, rgba(200,160,80,.08) 40%, transparent 70%);
  clip-path: polygon(30% 0%, 70% 0%, 55% 100%, 45% 100%);
  filter: blur(6px);
  animation: ce-beam 8s ease-in-out infinite alternate;
}
.scn-conversion-experience .shadow-cross {
  position:absolute; top:25%; left:38%; width:60px; height:80px;
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,.6) 0%, transparent 70%);
  filter: blur(8px);
  animation: ce-cross 12s ease-in-out infinite alternate;
}
@keyframes ce-room { 0% { opacity:.95; } 50% { opacity:1; } 100% { opacity:.9; } }
@keyframes ce-floor { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(1px); } }
@keyframes ce-kneel { 0% { transform: rotate(-3deg) translateY(0) scale(1); } 50% { transform: rotate(2deg) translateY(-3px) scale(1.02); } 100% { transform: rotate(-1deg) translateY(1px) scale(.98); } }
@keyframes ce-glow { 0% { opacity:.5; transform: scale(.9) translateX(-3px); } 50% { opacity:1; transform: scale(1.1) translateX(2px); } 100% { opacity:.7; transform: scale(.95) translateX(-1px); } }
@keyframes ce-beam { 0% { opacity:.3; transform: skewX(-3deg) translateX(0); } 50% { opacity:.7; transform: skewX(2deg) translateX(4px); } 100% { opacity:.4; transform: skewX(-1deg) translateX(-2px); } }
@keyframes ce-cross { 0% { opacity:.3; transform: scale(.95); } 50% { opacity:.6; transform: scale(1.08); } 100% { opacity:.4; transform: scale(1); } }

.scn-continued-instruction {
  background:
    linear-gradient(180deg, #e8dcc8 0%, #d0c4a8 30%, #b8a888 60%, #9a8a6a 100%),
    radial-gradient(ellipse at 60% 30%, #fef8e8 0%, transparent 50%);
}
.scn-continued-instruction .church-wall {
  position:absolute; inset:0;
  background: linear-gradient(135deg, #e0d4c0 0%, #c8bca8 50%, #b0a490 100%);
  animation: ci-wall 30s ease-in-out infinite alternate;
}
.scn-continued-instruction .pulpit {
  position:absolute; bottom:20%; left:30%; width:50px; height:70px;
  background: linear-gradient(180deg, #6a5030 0%, #4a3820 50%, #2a2010 100%);
  border-radius: 10% 10% 5% 5% / 20% 20% 5% 5%;
  box-shadow: 4px 0 12px rgba(0,0,0,.2);
  transform: perspective(300px) rotateY(-5deg);
  animation: ci-pulpit 14s ease-in-out infinite alternate;
}
.scn-continued-instruction .figure-preacher {
  position:absolute; bottom:38%; left:34%; width:22px; height:38px;
  background: linear-gradient(180deg, #2a1a10 0%, #1a0e08 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 40% 40%;
  transform-origin: bottom center;
  animation: ci-preach 8s ease-in-out infinite alternate;
}
.scn-continued-instruction .figure-preacher::after {
  content: ''; position:absolute; top:-20%; left:20%; width:60%; height:40%;
  background: radial-gradient(ellipse, #3a2a1a 0%, #1a1008 100%);
  border-radius: 50%;
}
.scn-continued-instruction .window-light {
  position:absolute; top:10%; right:15%; width:70px; height:90px;
  background: radial-gradient(ellipse at 50% 40%, #fef8e0 0%, #f0e0b8 40%, #d8c8a0 70%, #8a7a5a 100%);
  border-radius: 40% 40% 10% 10% / 50% 50% 10% 10%;
  box-shadow: inset 0 0 24px 8px rgba(255,240,200,.3);
  filter: blur(1px);
  animation: ci-window 18s ease-in-out infinite alternate;
}
.scn-continued-instruction .pew-row {
  position:absolute; bottom:8%; left:10%; right:10%; height:18%;
  background: repeating-linear-gradient(90deg, #7a6a4a 0%, #7a6a4a 12px, #6a5a3a 12px, #6a5a3a 24px);
  border-radius: 4% 4% 0 0;
  box-shadow: inset 0 4px 12px rgba(0,0,0,.15);
  transform: perspective(400px) rotateX(3deg);
  animation: ci-pew 20s ease-in-out infinite alternate;
}
.scn-continued-instruction .book-rest {
  position:absolute; bottom:44%; left:28%; width:30px; height:6px;
  background: linear-gradient(135deg, #8a7a5a 0%, #6a5a3a 100%);
  border-radius: 20%;
  box-shadow: 0 2px 4px rgba(0,0,0,.2);
  animation: ci-book 12s ease-in-out infinite alternate;
}
@keyframes ci-wall { 0% { opacity:.92; } 50% { opacity:1; } 100% { opacity:.95; } }
@keyframes ci-pulpit { 0% { transform: perspective(300px) rotateY(-5deg) translateY(0); } 50% { transform: perspective(300px) rotateY(-3deg) translateY(-2px); } 100% { transform: perspective(300px) rotateY(-6deg) translateY(1px); } }
@keyframes ci-preach { 0% { transform: rotate(-2deg) translateX(0); } 50% { transform: rotate(1deg) translateX(3px) translateY(-1px); } 100% { transform: rotate(-1deg) translateX(-1px) translateY(0); } }
@keyframes ci-window { 0% { opacity:.7; transform: scale(.95) translateX(-2px); } 50% { opacity:1; transform: scale(1.02) translateX(1px); } 100% { opacity:.85; transform: scale(.98) translateX(0); } }
@keyframes ci-pew { 0% { transform: perspective(400px) rotateX(3deg) translateY(0); } 50% { transform: perspective(400px) rotateX(2deg) translateY(-1px); } 100% { transform: perspective(400px) rotateX(4deg) translateY(1px); } }
@keyframes ci-book { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(1px) rotate(0deg); } }

.scn-indian-queen-sighting {
  background: linear-gradient(180deg, #7a7a84 0%, #9a9aa0 40%, #8a8a90 100%),
              radial-gradient(ellipse at 60% 30%, #b0b0b8 0%, transparent 70%);
}
.scn-indian-queen-sighting .sky-overcast {
  position:absolute; inset:0 0 45% 0;
  background: linear-gradient(180deg, #9a9aaa 0%, #b0b0ba 100%);
  animation: iqs-sky 20s ease-in-out infinite alternate;
}
.scn-indian-queen-sighting .sea-brackish {
  position:absolute; bottom:0; left:0; right:0; height:50%;
  background: linear-gradient(180deg, #5a5a5e 0%, #3a4a3e 100%);
  border-radius: 30% 70% 0 0 / 60% 80% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.3);
  animation: iqs-sea 15s ease-in-out infinite;
}
.scn-indian-queen-sighting .sloop-hull {
  position:absolute; bottom:30%; left:40%; width:120px; height:40px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 0 0 30% 30% / 0 0 60% 60%;
  transform: translateX(-50%);
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: iqs-hull 6s ease-in-out infinite;
}
.scn-indian-queen-sighting .sloop-mast {
  position:absolute; bottom:42%; left:40%; width:6px; height:80px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  transform: translateX(-50%);
  border-radius: 2px;
}
.scn-indian-queen-sighting .sloop-sail {
  position:absolute; bottom:42%; left:40%; width:70px; height:50px;
  background: linear-gradient(180deg, #c0c0c8 0%, #a0a0a8 100%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  transform: translateX(-50%) rotate(-5deg);
  animation: iqs-sail 12s ease-in-out infinite alternate;
}
.scn-indian-queen-sighting .alligator-swim {
  position:absolute; bottom:18%; left:20%; width:40px; height:8px;
  background: linear-gradient(90deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40%;
  filter: blur(1px);
  animation: iqs-alligator 25s linear infinite;
}
.scn-indian-queen-sighting .ripples-1 {
  position:absolute; bottom:25%; left:25%; width:80px; height:4px;
  background: radial-gradient(ellipse, rgba(180,180,190,0.3) 0%, transparent 100%);
  filter: blur(2px);
  animation: iqs-ripple 8s ease-in-out infinite;
}
.scn-indian-queen-sighting .ripples-2 {
  position:absolute; bottom:20%; right:20%; width:60px; height:3px;
  background: radial-gradient(ellipse, rgba(180,180,190,0.2) 0%, transparent 100%);
  filter: blur(2px);
  animation: iqs-ripple 10s ease-in-out infinite reverse;
}
@keyframes iqs-sky { 0% { opacity:0.7; } 50% { opacity:0.9; } 100% { opacity:0.7; } }
@keyframes iqs-sea { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-2px) scaleX(1.02); } 100% { transform: translateY(0) scaleX(1); } }
@keyframes iqs-hull { 0%, 100% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) translateY(-2px) rotate(1deg); } }
@keyframes iqs-sail { 0% { transform: translateX(-50%) rotate(-5deg); } 50% { transform: translateX(-50%) rotate(0deg); } 100% { transform: translateX(-50%) rotate(-5deg); } }
@keyframes iqs-alligator { 0% { transform: translateX(0) translateY(0); } 25% { transform: translateX(20px) translateY(2px); } 50% { transform: translateX(40px) translateY(-1px); } 75% { transform: translateX(60px) translateY(1px); } 100% { transform: translateX(80px) translateY(0); } }
@keyframes iqs-ripple { 0% { transform: scaleX(0.8); opacity:0; } 50% { opacity:0.5; transform: scaleX(1.2); } 100% { transform: scaleX(0.8); opacity:0; } }

.scn-baker-promises {
  background: linear-gradient(180deg, #808080 0%, #9a9a9a 50%, #707070 100%),
              radial-gradient(ellipse at 50% 60%, #a0a0a0 0%, transparent 70%);
}
.scn-baker-promises .dock-planks {
  position:absolute; bottom:10%; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a1a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.4);
  animation: bkp-dock 30s ease-in-out infinite;
}
.scn-baker-promises .figure-baker {
  position:absolute; bottom:22%; left:35%; width:28px; height:60px;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 0 0 10px rgba(0,0,0,0.3);
  animation: bkp-baker 5s ease-in-out infinite;
}
.scn-baker-promises .figure-free-man {
  position:absolute; bottom:22%; left:52%; width:24px; height:56px;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bkp-free 6s ease-in-out infinite reverse;
}
.scn-baker-promises .gesture-hand {
  position:absolute; bottom:35%; left:42%; width:10px; height:14px;
  background: #3a2a2a;
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform: rotate(20deg);
  animation: bkp-hand 4s ease-in-out infinite;
}
.scn-baker-promises .promise-glow {
  position:absolute; bottom:30%; left:44%; width:20px; height:20px;
  background: radial-gradient(circle, rgba(220,200,180,0.6) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(8px);
  animation: bkp-glow 7s ease-in-out infinite alternate;
}
.scn-baker-promises .mist-tendrils {
  position:absolute; bottom:40%; left:20%; width:120px; height:30px;
  background: linear-gradient(90deg, transparent 0%, rgba(180,180,180,0.2) 30%, rgba(180,180,180,0.1) 70%, transparent 100%);
  filter: blur(10px);
  animation: bkp-mist 18s linear infinite;
}
@keyframes bkp-dock { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.01); } 100% { transform: scaleY(1); } }
@keyframes bkp-baker { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-2px) rotate(-2deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(2px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes bkp-free { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2px) rotate(2deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-2px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes bkp-hand { 0% { transform: rotate(20deg); } 50% { transform: rotate(30deg) translateY(-5px); } 100% { transform: rotate(20deg); } }
@keyframes bkp-glow { 0% { opacity:0.3; transform: scale(0.8); } 50% { opacity:0.8; transform: scale(1.2); } 100% { opacity:0.3; transform: scale(0.8); } }
@keyframes bkp-mist { 0% { transform: translateX(-30px); } 100% { transform: translateX(140vw); } }

.scn-refused-and-sailed {
  background: linear-gradient(180deg, #606060 0%, #808080 50%, #606060 100%),
              radial-gradient(ellipse at 30% 40%, #909090 0%, transparent 70%);
}
.scn-refused-and-sailed .vessel-hull {
  position:absolute; bottom:25%; left:25%; width:140px; height:35px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 0 0 40% 40% / 0 0 60% 60%;
  transform: translateX(-50%);
  box-shadow: 0 6px 12px rgba(0,0,0,0.5);
  animation: rfs-hull 8s ease-in-out infinite;
}
.scn-refused-and-sailed .sail-taut {
  position:absolute; bottom:35%; left:25%; width:60px; height:55px;
  background: linear-gradient(180deg, #b0b0b8 0%, #909098 100%);
  clip-path: polygon(0 0, 100% 0, 90% 100%, 10% 100%);
  transform: translateX(-50%) rotate(10deg);
  animation: rfs-sail 4s ease-in-out infinite alternate;
}
.scn-refused-and-sailed .figure-captain {
  position:absolute; bottom:25%; left:38%; width:22px; 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: rfs-captain 3s ease-in-out infinite;
}
.scn-refused-and-sailed .figure-free-man {
  position:absolute; bottom:25%; left:48%; width:20px; height:48px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rfs-free 4s ease-in-out infinite reverse;
}
.scn-refused-and-sailed .wave-wash {
  position:absolute; bottom:20%; left:10%; width:120px; height:20px;
  background: linear-gradient(180deg, rgba(100,100,100,0.2) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(4px);
}
.scn-refused-and-sailed .w1 {
  animation: rfs-wave 12s ease-in-out infinite;
}
.scn-refused-and-sailed .w2 {
  bottom:18%; left:40%;
  animation: rfs-wave 14s ease-in-out infinite reverse;
}
.scn-refused-and-sailed .compass-needle {
  position:absolute; top:15%; right:15%; width:4px; height:30px;
  background: linear-gradient(180deg, #c0c0c0 50%, #a00000 50%);
  border-radius: 2px;
  transform-origin: center bottom;
  animation: rfs-compass 2s ease-in-out infinite;
}
@keyframes rfs-hull { 0%, 100% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) translateY(2px) rotate(-2deg); } }
@keyframes rfs-sail { 0% { transform: translateX(-50%) rotate(10deg); } 50% { transform: translateX(-50%) rotate(5deg); } 100% { transform: translateX(-50%) rotate(15deg); } }
@keyframes rfs-captain { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(4px) rotate(3deg); } 60% { transform: translateX(-2px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes rfs-free { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(-3px) rotate(-3deg); } 60% { transform: translateX(2px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes rfs-wave { 0% { transform: scaleX(0.9) translateY(0); opacity:0.2; } 50% { transform: scaleX(1.1) translateY(-3px); opacity:0.4; } 100% { transform: scaleX(0.9) translateY(0); opacity:0.2; } }
@keyframes rfs-compass { 0% { transform: rotate(-10deg); } 50% { transform: rotate(10deg); } 100% { transform: rotate(-10deg); } }

.scn-onto-indian-queen {
  background: linear-gradient(180deg, #7a7a7a 0%, #9a9a9a 40%, #7a7a7a 100%),
              radial-gradient(ellipse at 70% 40%, #a0a0a0 0%, transparent 70%);
}
.scn-onto-indian-queen .large-ship {
  position:absolute; bottom:20%; right:10%; width:160px; height:50px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 0 0 40% 30% / 0 0 60% 50%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.4);
  animation: oiq-large 12s ease-in-out infinite;
}
.scn-onto-indian-queen .small-boat {
  position:absolute; bottom:22%; left:30%; width:60px; height:18px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%);
  border-radius: 0 0 50% 50% / 0 0 80% 80%;
  transform: translateX(-50%);
  animation: oiq-small 8s ease-in-out infinite alternate;
}
.scn-onto-indian-queen .rower-figure {
  position:absolute; bottom:28%; left:28%; width:16px; height:36px;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: oiq-row 3s ease-in-out infinite;
}
.scn-onto-indian-queen .rower-oar {
  position:absolute; bottom:30%; left:24%; width:4px; height:40px;
  background: #3a2a1a;
  border-radius: 2px;
  transform: rotate(-30deg);
  transform-origin: bottom center;
  animation: oiq-oar 3s ease-in-out infinite;
}
.scn-onto-indian-queen .north-pole-shipmate {
  position:absolute; bottom:26%; left:38%; width:14px; height:32px;
  background: linear-gradient(180deg, #3a2a3a 0%, #1a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: oiq-mate 5s ease-in-out infinite;
}
.scn-onto-indian-queen .water-disturbance {
  position:absolute; bottom:18%; left:28%; width:80px; height:10px;
  background: radial-gradient(ellipse at 50% 50%, rgba(150,150,160,0.3) 0%, transparent 100%);
  filter: blur(4px);
  animation: oiq-water 7s ease-in-out infinite alternate;
}
.scn-onto-indian-queen .cloud-layer {
  position:absolute; top:12%; left:0; right:0; height:30%;
  background: linear-gradient(180deg, rgba(120,120,130,0.4) 0%, transparent 100%);
  filter: blur(20px);
  animation: oiq-cloud 30s linear infinite;
}
@keyframes oiq-large { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-3px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes oiq-small { 0% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-3px); } 100% { transform: translateX(-50%) translateY(0); } }
@keyframes oiq-row { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(3px) rotate(10deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-3px) rotate(-10deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes oiq-oar { 0% { transform: rotate(-30deg); } 50% { transform: rotate(30deg); } 100% { transform: rotate(-30deg); } }
@keyframes oiq-mate { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(2px) rotate(5deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes oiq-water { 0% { transform: scaleX(0.9) scaleY(1); opacity:0.3; } 50% { transform: scaleX(1.1) scaleY(1.2); opacity:0.6; } 100% { transform: scaleX(0.9) scaleY(1); opacity:0.3; } }
@keyframes oiq-cloud { 0% { transform: translateX(0); } 100% { transform: translateX(-80px); } }

.scn-slave-conditions { background: linear-gradient(180deg, #5b8cbf 0%, #a3c3e0 50%, #d6e4f0 100%), radial-gradient(ellipse at 70% 20%, #fce08a 0%, transparent 60%); }
.scn-slave-conditions .sky    { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #4f7ec0 0%, #8ab4e0 40%, #f0e6c0 100%); }
.scn-slave-conditions .sun    { position:absolute; top:8%; right:20%; width:40px; height:40px; background:radial-gradient(circle, #ffedb0 0%, #f0c060 60%, transparent 100%); border-radius:50%; box-shadow:0 0 60px 30px rgba(240,192,96,0.3); animation: sc-sun-pulse 4s ease-in-out infinite; }
.scn-slave-conditions .field  { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #6b4e2e 0%, #4a3a1e 60%, #2a1a0e 100%); border-radius: 30% 70% 0 0 / 20% 40% 0 0; }
.scn-slave-conditions .fence  { position:absolute; bottom:42%; left:10%; right:10%; height:8px; background: #3a2a1a; border-radius:2px; box-shadow:0 0 6px rgba(0,0,0,0.4); }
.scn-slave-conditions .slave1 { position:absolute; bottom:40%; left:25%; width:14px; height:32px; background: linear-gradient(180deg, #1a0e08 0%, #0a0502 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: sc-bend 3s ease-in-out infinite; }
.scn-slave-conditions .slave2 { position:absolute; bottom:38%; left:45%; width:14px; height:30px; background: linear-gradient(180deg, #1a0e08 0%, #0a0502 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: sc-bend 3.5s ease-in-out infinite; animation-delay: -1.5s; }
.scn-slave-conditions .shadow1{ position:absolute; bottom:36%; left:22%; width:20px; height:6px; background:rgba(0,0,0,0.3); border-radius:50%; filter:blur(2px); animation: sc-shadow 3s ease-in-out infinite; }
.scn-slave-conditions .shadow2{ position:absolute; bottom:34%; left:42%; width:20px; height:6px; background:rgba(0,0,0,0.3); border-radius:50%; filter:blur(2px); animation: sc-shadow 3.5s ease-in-out infinite; animation-delay: -1.5s; }
@keyframes sc-sun-pulse { 0% { transform: scale(1); opacity:0.9; box-shadow:0 0 40px 20px rgba(240,192,96,0.3); } 50% { transform: scale(1.05); opacity:1; box-shadow:0 0 80px 40px rgba(240,192,96,0.5); } 100% { transform: scale(0.95); opacity:0.85; box-shadow:0 0 30px 15px rgba(240,192,96,0.25); } }
@keyframes sc-bend { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes sc-shadow { 0%,100% { transform: scaleX(1); opacity:0.3; } 50% { transform: scaleX(1.3); opacity:0.5; } }

.scn-mr-king-kindness { background: linear-gradient(180deg, #87CEEB 0%, #b0d4f1 40%, #e0f0ff 100%), radial-gradient(ellipse at 50% 100%, #f5deb3 0%, transparent 70%); }
.scn-mr-king-kindness .sky { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #7ab8e0 0%, #b8daee 40%, #eaf4fa 100%); }
.scn-mr-king-kindness .sea { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #4a7a9a 0%, #3a6a8a 50%, #2a5a7a 100%); animation: mk-sea 8s ease-in-out infinite alternate; }
.scn-mr-king-kindness .hull { position:absolute; bottom:25%; left:55%; width:80px; height:30px; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius: 30% 30% 10% 10% / 80% 80% 20% 20%; }
.scn-mr-king-kindness .sail { position:absolute; bottom:40%; left:55%; width:40px; height:50px; background: linear-gradient(135deg, #f0e8d8 0%, #e0d8c8 100%); border-radius: 20% 20% 0 0 / 60% 60% 40% 40%; transform-origin: bottom center; animation: mk-sail-sway 6s ease-in-out infinite; }
.scn-mr-king-kindness .dock { position:absolute; bottom:22%; left:10%; right:20%; height:10px; background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%); border-radius:4px; }
.scn-mr-king-kindness .barrel{ position:absolute; bottom:25%; left:18%; width:16px; height:20px; background: linear-gradient(90deg, #6a4a3a 0%, #5a3a2a 70%, #6a4a3a 100%); border-radius:30%; box-shadow: 0 2px 4px rgba(0,0,0,0.3); }
.scn-mr-king-kindness .figure-man{ position:absolute; bottom:22%; left:28%; width:14px; height:36px; background: linear-gradient(180deg, #e0d8c0 0%, #c0b8a0 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: mk-idle 5s ease-in-out infinite; }
.scn-mr-king-kindness .figure-slave{ position:absolute; bottom:22%; left:34%; width:12px; height:32px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: mk-idle 5.5s ease-in-out infinite; animation-delay: -2s; }
@keyframes mk-sea { 0% { background-position: 0 0; } 100% { background-position: 20px 0; } }
@keyframes mk-sail-sway { 0%,100% { transform: rotate(-2deg); } 50% { transform: rotate(3deg); } }
@keyframes mk-idle { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-1px) rotate(0.5deg); } }

.scn-value-of-slave { background: linear-gradient(180deg, #3a2a1a 0%, #4a3a2a 30%, #5a4a3a 100%), radial-gradient(ellipse at 50% 30%, #e0b070 0%, transparent 70%); }
.scn-value-of-slave .wall { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); }
.scn-value-of-slave .floor{ position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%); border-radius: 50% 50% 0 0 / 20% 20% 0 0; }
.scn-value-of-slave .table{ position:absolute; bottom:18%; left:30%; right:30%; height:8px; background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%); border-radius:4px; box-shadow:0 2px 6px rgba(0,0,0,0.5); }
.scn-value-of-slave .candle{ position:absolute; bottom:28%; left:48%; width:6px; height:20px; background: linear-gradient(180deg, #eed8a0 0%, #c8b080 100%); border-radius: 50% 50% 20% 20% / 40% 40% 20% 20%; }
.scn-value-of-slave .glow  { position:absolute; bottom:30%; left:44%; width:40px; height:50px; background:radial-gradient(ellipse, rgba(255,200,100,0.5) 0%, transparent 70%); border-radius:50%; animation: vs-glow 3s ease-in-out infinite; }
.scn-value-of-slave .book  { position:absolute; bottom:18%; left:35%; width:16px; height:6px; background: #3a2a1a; border-radius: 2px; box-shadow:0 1px 2px rgba(0,0,0,0.4); }
.scn-value-of-slave .figure{ position:absolute; bottom:15%; left:42%; width:20px; height:40px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: vs-read 6s ease-in-out infinite; }
@keyframes vs-glow { 0%,100% { opacity:0.6; transform: scale(1); } 50% { opacity:1; transform: scale(1.2); } }
@keyframes vs-read { 0%,100% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(1deg); } 50% { transform: translateY(-1px) rotate(-1deg); } 75% { transform: translateY(-3px) rotate(1.5deg); } }

.scn-witness-cruelties { background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 50%, #3a3a4e 100%), radial-gradient(ellipse at 30% 60%, #4a3a2a 0%, transparent 80%); }
.scn-witness-cruelties .dark-room { position:absolute; inset:0; background: linear-gradient(135deg, #1a1a2e 0%, #0a0a1e 100%); }
.scn-witness-cruelties .window-bars { position:absolute; top:20%; left:20%; width:60%; height:40%; background: #2a2a3e; border: 6px solid #3a3a4e; box-shadow: inset 0 0 20px rgba(0,0,0,0.8); border-radius: 10px; overflow:hidden; }
.scn-witness-cruelties .outside-sky { position:absolute; top:22%; left:22%; width:56%; height:36%; background: linear-gradient(180deg, #6a6a7e 0%, #8a8a9e 100%); }
.scn-witness-cruelties .victim { position:absolute; bottom:30%; left:35%; width:16px; height:34px; background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: wc-cower 4s ease-in-out infinite; }
.scn-witness-cruelties .overseer { position:absolute; bottom:30%; left:55%; width:18px; height:38px; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: wc-raise 3s ease-in-out infinite; }
.scn-witness-cruelties .whip  { position:absolute; bottom:45%; left:52%; width:20px; height:3px; background: #4a3a2a; transform-origin: left center; animation: wc-whip 2s ease-in-out infinite; }
.scn-witness-cruelties .lantern { position:absolute; top:25%; left:15%; width:8px; height:12px; background: radial-gradient(ellipse, #ffd080 0%, #b08030 100%); border-radius: 20%; box-shadow:0 0 30px 10px rgba(255,208,128,0.3); animation: wc-lantern 5s ease-in-out infinite; }
@keyframes wc-cower { 0%,100% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-2px) scaleY(0.95); } }
@keyframes wc-raise { 0%,100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-3px) rotate(5deg); } }
@keyframes wc-whip { 0% { transform: rotate(0deg) scaleX(1); } 25% { transform: rotate(-20deg) scaleX(1.2); } 50% { transform: rotate(10deg) scaleX(0.8); } 75% { transform: rotate(-10deg) scaleX(1.1); } 100% { transform: rotate(0deg) scaleX(1); } }
@keyframes wc-lantern { 0%,100% { opacity:0.8; box-shadow:0 0 20px 5px rgba(255,208,128,0.2); } 50% { opacity:1; box-shadow:0 0 40px 15px rgba(255,208,128,0.5); } }

.scn-fall-into-thames {
  background: linear-gradient(180deg, #f0d8b0 0%, #c8a870 50%, #a07850 100%),
              radial-gradient(ellipse at 50% 80%, #ffe080 0%, transparent 60%);
}
.scn-fall-into-thames .sky {
  position:absolute; inset:0 0 55% 0;
  background: linear-gradient(180deg, #fce4c0 0%, #d4b080 100%);
  animation: ft-sky 8s ease-in-out infinite alternate;
}
.scn-fall-into-thames .water {
  position:absolute; bottom:0; left:0; right:0; height:55%;
  background: linear-gradient(180deg, #6a8a9a 0%, #3a5a6a 100%);
  animation: ft-water 12s ease-in-out infinite;
}
.scn-fall-into-thames .boat-left {
  position:absolute; bottom:40%; left:10%; width:80px; height:30px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%);
  border-radius: 0 50% 50% 0 / 0 80% 80% 0;
  box-shadow: 2px 4px 8px rgba(0,0,0,0.4);
  animation: ft-boat-l 4s ease-in-out infinite;
}
.scn-fall-into-thames .boat-right {
  position:absolute; bottom:35%; right:8%; width:70px; height:25px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%);
  border-radius: 50% 0 0 50% / 80% 0 0 80%;
  box-shadow: -2px 4px 8px rgba(0,0,0,0.4);
  animation: ft-boat-r 5s ease-in-out infinite;
}
.scn-fall-into-thames .figure-falling {
  position:absolute; bottom:45%; left:35%; width:16px; height:40px;
  background: linear-gradient(180deg,#2a2a3a 0%,#1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(20deg);
  animation: ft-fall 0.6s ease-in-out infinite alternate;
}
.scn-fall-into-thames .splash {
  position:absolute; bottom:42%; left:34%; width:40px; height:20px;
  background: radial-gradient(ellipse, rgba(255,255,255,0.7) 0%, transparent 70%);
  border-radius: 50%;
  animation: ft-splash 0.8s ease-out infinite;
}
.scn-fall-into-thames .ripple-1 {
  position:absolute; bottom:44%; left:32%; width:60px; height:6px;
  background: rgba(255,255,255,0.3);
  border-radius: 50%;
  filter: blur(2px);
  animation: ft-ripple 3s ease-in-out infinite;
  animation-delay: 0s;
}
.scn-fall-into-thames .ripple-2 {
  position:absolute; bottom:43%; left:36%; width:50px; height:5px;
  background: rgba(255,255,255,0.2);
  border-radius: 50%;
  filter: blur(2px);
  animation: ft-ripple 3s ease-in-out infinite;
  animation-delay: 1.5s;
}
.scn-fall-into-thames .sun-reflect {
  position:absolute; top:10%; right:15%; width:50px; height:50px;
  background: radial-gradient(circle, #ffe0a0 0%, #d4b060 40%, transparent 70%);
  border-radius: 50%;
  filter: blur(4px);
  animation: ft-sun 6s ease-in-out infinite alternate;
}
@keyframes ft-sky { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes ft-water { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(0) } }
@keyframes ft-boat-l { 0% { transform: translateX(0) rotate(-2deg) } 50% { transform: translateX(6px) rotate(2deg) } 100% { transform: translateX(0) rotate(-1deg) } }
@keyframes ft-boat-r { 0% { transform: translateX(0) rotate(2deg) } 50% { transform: translateX(-5px) rotate(-2deg) } 100% { transform: translateX(0) rotate(1deg) } }
@keyframes ft-fall { 0% { transform: rotate(20deg) translateY(0) } 100% { transform: rotate(30deg) translateY(8px) } }
@keyframes ft-splash { 0% { opacity:0.8; transform: scale(1) } 50% { opacity:1; transform: scale(1.3) } 100% { opacity:0; transform: scale(1.6) } }
@keyframes ft-ripple { 0% { transform: scale(1); opacity:0.5 } 50% { transform: scale(2); opacity:0.2 } 100% { transform: scale(3); opacity:0 } }
@keyframes ft-sun { 0% { transform: scale(0.9); opacity:0.7 } 50% { transform: scale(1.1); opacity:1 } 100% { transform: scale(1); opacity:0.8 } }

.scn-leave-school {
  background: linear-gradient(180deg, #f5ecd8 0%, #e0d4b8 50%, #c8b890 100%),
              radial-gradient(ellipse at 50% 30%, #fff0d0 0%, transparent 70%);
}
.scn-leave-school .wall {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(90deg, #e0d0b0 0%, #d0c0a0 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,0.1);
  animation: ls-wall 15s ease-in-out infinite alternate;
}
.scn-leave-school .floor {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #b8a880 0%, #9a8a6a 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.2);
}
.scn-leave-school .window {
  position:absolute; top:15%; left:15%; width:80px; height:100px;
  background: linear-gradient(180deg, #b0c8e0 0%, #8a9ab0 100%);
  border-radius: 4px;
  box-shadow: 0 0 20px rgba(200,220,240,0.3);
  animation: ls-window 10s ease-in-out infinite;
}
.scn-leave-school .door {
  position:absolute; bottom:30%; right:10%; width:60px; height:100px;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 4px 0 8px rgba(0,0,0,0.2);
  animation: ls-door 12s ease-in-out infinite alternate;
}
.scn-leave-school .schoolmaster {
  position:absolute; bottom:30%; left:40%; width:20px; height:50px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  animation: ls-master 6s ease-in-out infinite;
}
.scn-leave-school .figure-leaving {
  position:absolute; bottom:30%; left:20%; width:18px; height:48px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 50% 50% 30% 30%;
  animation: ls-leave 8s ease-in-out infinite;
}
.scn-leave-school .desk {
  position:absolute; bottom:35%; left:55%; width:40px; height:20px;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a2a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 6px rgba(0,0,0,0.3);
  animation: ls-desk 20s linear infinite;
}
@keyframes ls-wall { 0% { opacity:0.95 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes ls-window { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes ls-door { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.02) } 100% { transform: scaleX(1) } }
@keyframes ls-master { 0% { transform: translateY(0) rotate(2deg) } 50% { transform: translateY(-2px) rotate(-2deg) } 100% { transform: translateY(0) rotate(1deg) } }
@keyframes ls-leave { 0% { transform: translateX(0) } 25% { transform: translateX(8px) } 50% { transform: translateX(16px) } 75% { transform: translateX(8px) } 100% { transform: translateX(0) } }
@keyframes ls-desk { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }

.scn-sail-to-mediterranean {
  background: linear-gradient(180deg, #b0d0f0 0%, #80a8d0 40%, #4078a0 100%),
              radial-gradient(ellipse at 50% 80%, #fff5e0 0%, transparent 60%);
}
.scn-sail-to-mediterranean .sky {
  position:absolute; inset:0 0 40% 0;
  background: linear-gradient(180deg, #c8e0f8 0%, #a0c0e0 100%);
  animation: sm-sky 20s ease-in-out infinite alternate;
}
.scn-sail-to-mediterranean .sea {
  position:absolute; bottom:0; left:0; right:0; height:40%;
  background: linear-gradient(180deg, #286090 0%, #104070 100%);
  animation: sm-sea 15s ease-in-out infinite;
}
.scn-sail-to-mediterranean .ship-left {
  position:absolute; bottom:30%; left:8%; width:100px; height:40px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 0 60% 0 0 / 0 80% 0 0;
  box-shadow: 4px 6px 12px rgba(0,0,0,0.3);
  animation: sm-ship-l 10s ease-in-out infinite;
}
.scn-sail-to-mediterranean .ship-right {
  position:absolute; bottom:25%; right:10%; width:120px; height:45px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 60% 0 0 0 / 80% 0 0 0;
  box-shadow: -4px 6px 12px rgba(0,0,0,0.3);
  animation: sm-ship-r 12s ease-in-out infinite;
}
.scn-sail-to-mediterranean .sail-1 {
  position:absolute; bottom:38%; left:12%; width:40px; height:60px;
  background: linear-gradient(180deg, #f0e8d0 0%, #d0c0a0 100%);
  border-radius: 0 40% 40% 0 / 0 60% 60% 0;
  animation: sm-sail1 8s ease-in-out infinite alternate;
}
.scn-sail-to-mediterranean .sail-2 {
  position:absolute; bottom:33%; right:15%; width:50px; height:70px;
  background: linear-gradient(180deg, #f0e8d0 0%, #d0c0a0 100%);
  border-radius: 40% 0 0 40% / 60% 0 0 60%;
  animation: sm-sail2 9s ease-in-out infinite alternate;
}
.scn-sail-to-mediterranean .sun {
  position:absolute; top:12%; left:50%; width:60px; height:60px;
  background: radial-gradient(circle, #ffe080 0%, #ffc040 50%, transparent 70%);
  border-radius: 50%;
  filter: blur(3px);
  animation: sm-sun 6s ease-in-out infinite alternate;
}
.scn-sail-to-mediterranean .cloud-1 {
  position:absolute; top:8%; left:20%; width:100px; height:20px;
  background: rgba(255,255,255,0.5);
  border-radius: 50%;
  filter: blur(8px);
  animation: sm-cloud 50s linear infinite;
  animation-delay: 0s;
}
.scn-sail-to-mediterranean .cloud-2 {
  position:absolute; top:15%; right:25%; width:80px; height:16px;
  background: rgba(255,255,255,0.4);
  border-radius: 50%;
  filter: blur(6px);
  animation: sm-cloud 40s linear infinite reverse;
  animation-delay: 5s;
}
@keyframes sm-sky { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes sm-sea { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes sm-ship-l { 0% { transform: translateX(0) rotate(-2deg) } 50% { transform: translateX(4px) rotate(2deg) } 100% { transform: translateX(0) rotate(-1deg) } }
@keyframes sm-ship-r { 0% { transform: translateX(0) rotate(2deg) } 50% { transform: translateX(-5px) rotate(-2deg) } 100% { transform: translateX(0) rotate(1deg) } }
@keyframes sm-sail1 { 0% { transform: rotate(0deg) scaleX(1) } 50% { transform: rotate(5deg) scaleX(1.02) } 100% { transform: rotate(-2deg) scaleX(0.98) } }
@keyframes sm-sail2 { 0% { transform: rotate(0deg) scaleX(1) } 50% { transform: rotate(-4deg) scaleX(1.02) } 100% { transform: rotate(2deg) scaleX(0.98) } }
@keyframes sm-sun { 0% { transform: scale(0.95); opacity:0.8 } 50% { transform: scale(1.05); opacity:1 } 100% { transform: scale(1); opacity:0.9 } }
@keyframes sm-cloud { 0% { transform: translateX(0) } 50% { transform: translateX(40px) } 100% { transform: translateX(80px) } }

.scn-false-hope-of-sister {
  background: linear-gradient(180deg, #f0e8d0 0%, #d8c8a8 50%, #b8a080 100%),
              radial-gradient(ellipse at 50% 20%, #fff0d0 0%, transparent 70%);
}
.scn-false-hope-of-sister .wall {
  position:absolute; inset:0 0 25% 0;
  background: linear-gradient(90deg, #d0b890 0%, #c0a880 100%);
  box-shadow: inset 0 0 30px rgba(0,0,0,0.1);
  animation: fh-wall 18s ease-in-out infinite alternate;
}
.scn-false-hope-of-sister .floor {
  position:absolute; bottom:0; left:0; right:0; height:25%;
  background: linear-gradient(180deg, #9a8a6a 0%, #7a6a4a 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.3);
}
.scn-false-hope-of-sister .window {
  position:absolute; top:10%; left:10%; width:70px; height:90px;
  background: linear-gradient(180deg, #d0e0f0 0%, #a0b8d0 100%);
  border-radius: 4px;
  box-shadow: 0 0 15px rgba(160,180,200,0.2);
  animation: fh-window 12s ease-in-out infinite;
}
.scn-false-hope-of-sister .figure-narrator {
  position:absolute; bottom:25%; left:30%; width:20px; height:50px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  animation: fh-narr 5s ease-in-out infinite;
}
.scn-false-hope-of-sister .figure-listener {
  position:absolute; bottom:25%; right:30%; width:20px; height:48px;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  animation: fh-list 7s ease-in-out infinite;
}
.scn-false-hope-of-sister .table {
  position:absolute; bottom:30%; left:42%; width:60px; height:16px;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a2a 100%);
  border-radius: 6px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: fh-table 20s linear infinite;
}
.scn-false-hope-of-sister .candle {
  position:absolute; bottom:38%; left:50%; width:8px; height:24px;
  background: linear-gradient(180deg, #f0e0b0 0%, #c8b080 100%);
  border-radius: 2px;
  box-shadow: 0 0 16px 4px rgba(255,200,100,0.7);
  animation: fh-candle 3s ease-in-out infinite alternate;
}
@keyframes fh-wall { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes fh-window { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes fh-narr { 0% { transform: translateY(0) rotate(2deg) } 50% { transform: translateY(-2px) rotate(-2deg) } 100% { transform: translateY(0) rotate(1deg) } }
@keyframes fh-list { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-1px) rotate(1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes fh-table { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes fh-candle { 0% { transform: scaleY(0.9); opacity:0.8 } 50% { transform: scaleY(1.1); opacity:1 } 100% { transform: scaleY(0.95); opacity:0.9 } }

/* named-gustavus-vassa */
.scn-named-gustavus-vassa {
  background:
    linear-gradient(180deg, #87CEEB 0%, #f0e68c 40%, #b0c4de 100%),
    radial-gradient(ellipse at 50% 0%, #fff8dc 0%, transparent 60%);
}
.scn-named-gustavus-vassa .sea {
  position: absolute; inset: auto 0 0 0; height: 45%;
  background: linear-gradient(180deg, #4682b4 0%, #1e3a5f 100%);
  animation: gv-sea 8s ease-in-out infinite alternate;
}
.scn-named-gustavus-vassa .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #87CEFA 0%, #fdf5e6 100%);
}
.scn-named-gustavus-vassa .sun {
  position: absolute; bottom: 60%; left: 70%; width: 50px; height: 50px;
  background: radial-gradient(circle, #ffd700 0%, #ff8c00 60%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 80px 30px rgba(255,215,0,0.4);
  animation: gv-sun 20s ease-in-out infinite alternate;
}
.scn-named-gustavus-vassa .ship-rail {
  position: absolute; bottom: 42%; left: 5%; right: 5%; height: 8px;
  background: linear-gradient(180deg, #8b4513 0%, #5c2e0e 100%);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
}
.scn-named-gustavus-vassa .figure-profile {
  position: absolute; bottom: 42%; left: 30%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #2c1810 0%, #1a0f0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gv-figure 4s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 4px rgba(0,0,0,0.3));
  /* profile head shape */
}
.scn-named-gustavus-vassa .figure-profile::before {
  content: ''; position: absolute; top: 0; left: 2px; width: 28px; height: 30px;
  background: inherit; border-radius: 50% 40% 40% 40%;
}
.scn-named-gustavus-vassa .cloud-gv-a {
  position: absolute; top: 15%; left: 10%; width: 100px; height: 25px;
  background: linear-gradient(180deg, rgba(255,255,255,0.6) 0%, rgba(255,255,255,0.1) 100%);
  border-radius: 50px; filter: blur(4px);
  animation: gv-cloud-a 40s linear infinite;
}
.scn-named-gustavus-vassa .cloud-gv-b {
  position: absolute; top: 25%; right: 20%; width: 70px; height: 18px;
  background: linear-gradient(180deg, rgba(255,255,255,0.5) 0%, transparent 100%);
  border-radius: 40px; filter: blur(5px);
  animation: gv-cloud-b 55s linear infinite reverse;
}
.scn-named-gustavus-vassa .seagull {
  position: absolute; top: 20%; left: 50%; width: 20px; height: 10px;
  background: #2c2c2c;
  clip-path: polygon(0% 50%, 40% 0%, 60% 0%, 100% 50%, 60% 100%, 40% 100%);
  transform-origin: 50% 50%;
  animation: gv-gull 6s ease-in-out infinite alternate;
}

@keyframes gv-sea     { 0% { opacity:0.9; transform: translateY(0); } 50% { opacity:1; transform: translateY(-2px); } 100% { opacity:0.9; transform: translateY(0); } }
@keyframes gv-sun     { 0% { opacity:0.8; transform: scale(0.95); } 50% { opacity:1; transform: scale(1.05); } 100% { opacity:0.9; transform: scale(1); } }
@keyframes gv-figure  { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(2px) rotate(1deg); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes gv-cloud-a { 0% { transform: translateX(-30px); } 50% { transform: translateX(50px); } 100% { transform: translateX(120vw); } }
@keyframes gv-cloud-b { 0% { transform: translateX(0); } 50% { transform: translateX(-80px); } 100% { transform: translateX(-100vw); } }
@keyframes gv-gull    { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-5px) rotate(3deg); } 100% { transform: translateY(0) rotate(-2deg); } }

/* short-allowance */
.scn-short-allowance {
  background:
    linear-gradient(180deg, #d2b48c 0%, #c4a882 50%, #a0856e 100%),
    radial-gradient(ellipse at 50% 100%, #3e2723 0%, transparent 70%);
}
.scn-short-allowance .bg-table {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #8d6e63 0%, #5d4037 100%);
  border-radius: 0 0 10% 10%;
}
.scn-short-allowance .bowl {
  position: absolute; bottom: 40%; left: 50%; width: 70px; height: 30px;
  background: radial-gradient(ellipse at 50% 30%, #efebe9 0%, #bcaaa4 100%);
  border-radius: 50% 50% 30% 30%;
  transform: translateX(-50%);
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
}
.scn-short-allowance .bread {
  position: absolute; bottom: 45%; left: 40%; width: 25px; height: 15px;
  background: linear-gradient(135deg, #d7ccc8 0%, #a1887f 100%);
  border-radius: 30% 30% 10% 10%;
  transform: rotate(-10deg);
  animation: sa-bread 3s ease-in-out infinite alternate;
}
.scn-short-allowance .water-cup {
  position: absolute; bottom: 38%; right: 38%; width: 18px; height: 28px;
  background: linear-gradient(180deg, #e0e0e0 0%, #90a4ae 100%);
  border-radius: 0 0 20% 20%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
  transform: rotate(5deg);
}
.scn-short-allowance .hand-bread {
  position: absolute; bottom: 48%; left: 42%; width: 30px; height: 12px;
  background: linear-gradient(135deg, #6d4c41 0%, #3e2723 100%);
  border-radius: 40% 40% 20% 20%;
  transform-origin: right center;
  animation: sa-hand 2s ease-in-out infinite alternate;
}
.scn-short-allowance .hand-cup {
  position: absolute; bottom: 42%; right: 36%; width: 25px; height: 10px;
  background: linear-gradient(180deg, #5d4037 0%, #3e2723 100%);
  border-radius: 30% 30% 10% 10%;
  transform-origin: left center;
  animation: sa-hand-cup 2.5s ease-in-out infinite alternate;
}
.scn-short-allowance .shadow {
  position: absolute; bottom: 32%; left: 30%; right: 30%; height: 30px;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.3) 0%, transparent 70%);
  animation: sa-shadow 4s ease-in-out infinite alternate;
}

@keyframes sa-bread { 0% { transform: rotate(-10deg) scale(1); } 50% { transform: rotate(-5deg) scale(1.05); } 100% { transform: rotate(-12deg) scale(0.95); } }
@keyframes sa-hand { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(3deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes sa-hand-cup { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-1px) rotate(-2deg); } 100% { transform: translateY(0) rotate(1deg); } }
@keyframes sa-shadow { 0% { opacity:0.7; } 50% { opacity:0.9; } 100% { opacity:0.7; } }

/* shark-caught */
.scn-shark-caught {
  background:
    linear-gradient(180deg, #b0c4de 0%, #6495ed 40%, #1e3a5f 100%),
    radial-gradient(ellipse at 50% 100%, #0a2638 0%, transparent 60%);
}
.scn-shark-caught .sea-sc {
  position: absolute; inset: auto 0 0 0; height: 55%;
  background: linear-gradient(180deg, #1e90ff 0%, #0b3d5e 100%);
  animation: sc-sea 6s ease-in-out infinite alternate;
}
.scn-shark-caught .sky-sc {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #87CEEB 0%, #e0f7fa 100%);
}
.scn-shark-caught .boat-edge {
  position: absolute; bottom: 50%; left: 10%; right: 70%; height: 30px;
  background: linear-gradient(180deg, #8b4513 0%, #5c2e0e 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
}
.scn-shark-caught .figure-holding {
  position: absolute; bottom: 50%; left: 15%; width: 25px; height: 60px;
  background: linear-gradient(180deg, #2c2c2c 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sc-figure 3s ease-in-out infinite alternate;
}
.scn-shark-caught .figure-holding::after {
  content: ''; position: absolute; top: 20px; left: -15px; width: 30px; height: 4px;
  background: #3e2723; border-radius: 2px;
  transform: rotate(20deg);
  animation: sc-arm 3s ease-in-out infinite alternate;
}
.scn-shark-caught .line {
  position: absolute; bottom: 50%; left: 18%; right: 10%; height: 2px;
  background: #5d4037;
  transform-origin: left center;
  animation: sc-line 4s ease-in-out infinite alternate;
}
.scn-shark-caught .shark-fin {
  position: absolute; bottom: 35%; left: 60%; width: 40px; height: 30px;
  background: linear-gradient(180deg, #455a64 0%, #263238 100%);
  clip-path: polygon(0% 100%, 50% 0%, 100% 100%);
  transform-origin: bottom center;
  animation: sc-shark-fin 1.5s ease-in-out infinite alternate;
  filter: drop-shadow(0 0 6px rgba(0,0,0,0.3));
}
.scn-shark-caught .wave-sc-a {
  position: absolute; bottom: 45%; left: 0; right: 0; height: 20px;
  background: linear-gradient(180deg, rgba(255,255,255,0.3) 0%, transparent 100%);
  filter: blur(3px);
  animation: sc-wave-a 8s linear infinite;
}
.scn-shark-caught .wave-sc-b {
  position: absolute; bottom: 40%; left: 0; right: 0; height: 15px;
  background: linear-gradient(180deg, rgba(255,255,255,0.2) 0%, transparent 100%);
  filter: blur(4px);
  animation: sc-wave-b 10s linear infinite reverse;
}

@keyframes sc-sea        { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes sc-figure     { 0% { transform: rotate(0deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-1deg); } }
@keyframes sc-arm        { 0% { transform: rotate(20deg) translateY(0); } 50% { transform: rotate(25deg) translateY(-2px); } 100% { transform: rotate(18deg) translateY(0); } }
@keyframes sc-line       { 0% { transform: rotate(0deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-2deg); } }
@keyframes sc-shark-fin  { 0% { transform: rotate(0deg) scaleY(1); } 50% { transform: rotate(3deg) scaleY(1.05); } 100% { transform: rotate(-2deg) scaleY(0.95); } }
@keyframes sc-wave-a     { 0% { transform: translateX(0); } 50% { transform: translateX(10px); } 100% { transform: translateX(-20px); } }
@keyframes sc-wave-b     { 0% { transform: translateX(0); } 50% { transform: translateX(-15px); } 100% { transform: translateX(20px); } }

/* friend-dick-baker */
.scn-friend-dick-baker {
  background:
    linear-gradient(180deg, #f5e6d3 0%, #e0c9a6 100%),
    radial-gradient(ellipse at 50% 50%, #fff8e7 0%, #d4b896 100%);
}
.scn-friend-dick-baker .cabin-wall {
  position: absolute; inset: 10% 10% 15% 5%;
  background: linear-gradient(180deg, #c9a882 0%, #a5835e 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.2), 0 4px 12px rgba(0,0,0,0.3);
}
.scn-friend-dick-baker .porthole {
  position: absolute; top: 20%; right: 15%; width: 60px; height: 60px;
  background: radial-gradient(circle, #87CEEB 0%, #4682b4 60%, #2c3e50 100%);
  border-radius: 50%;
  border: 6px solid #4e342e;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.3);
  animation: db-sky 12s ease-in-out infinite alternate;
}
.scn-friend-dick-baker .warm-light {
  position: absolute; top: 30%; left: 40%; width: 120px; height: 120px;
  background: radial-gradient(circle, rgba(255,183,77,0.4) 0%, transparent 70%);
  border-radius: 50%;
  animation: db-light 5s ease-in-out infinite alternate;
}
.scn-friend-dick-baker .figure-db-young {
  position: absolute; bottom: 25%; left: 20%; width: 35px; height: 80px;
  background: linear-gradient(180deg, #4e342e 0%, #3e2723 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: db-young 3s ease-in-out infinite alternate;
}
.scn-friend-dick-baker .figure-db-young::before {
  content: ''; position: absolute; top: 0; left: 5px; width: 25px; height: 30px;
  background: #5d4037; border-radius: 50%;
}
.scn-friend-dick-baker .figure-db-older {
  position: absolute; bottom: 25%; left: 50%; width: 40px; height: 90px;
  background: linear-gradient(180deg, #3e2723 0%, #2c1a12 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: db-older 4s ease-in-out infinite alternate;
}
.scn-friend-dick-baker .figure-db-older::before {
  content: ''; position: absolute; top: 0; left: 8px; width: 24px; height: 32px;
  background: #4e342e; border-radius: 50%;
}
.scn-friend-dick-baker .book {
  position: absolute; bottom: 28%; left: 35%; width: 40px; height: 30px;
  background: linear-gradient(135deg, #8d6e63 0%, #6d4c41 100%);
  border-radius: 5% 5% 10% 10%;
  transform: rotate(-10deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: db-book 6s ease-in-out infinite alternate;
}
.scn-friend-dick-baker .table {
  position: absolute; bottom: 18%; left: 20%; right: 20%; height: 12px;
  background: linear-gradient(180deg, #7b5b3a 0%, #5c3e24 100%);
  border-radius: 4px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
}

@keyframes db-sky   { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes db-light { 0% { opacity:0.6; transform: scale(0.9); } 50% { opacity:1; transform: scale(1.1); } 100% { opacity:0.7; transform: scale(1); } }
@keyframes db-young { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes db-older { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes db-book  { 0% { transform: rotate(-10deg) scale(1); } 50% { transform: rotate(-6deg) scale(1.02); } 100% { transform: rotate(-12deg) scale(0.98); } }

/* general-cruelty */
.scn-general-cruelty {
  background: linear-gradient(180deg, #0a0a12 0%, #1a1418 40%, #2a1e20 100%), radial-gradient(ellipse at 30% 60%, #2a1e20 0%, transparent 70%);
}
.scn-general-cruelty .cell-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #1c1414 0%, #2a1e1e 100%);
  box-shadow: inset 0 8px 12px rgba(0,0,0,0.7);
}
.scn-general-cruelty .cell-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(135deg, #1a1216 0%, #2a1c20 50%, #1e1418 100%);
}
.scn-general-cruelty .cell-chain {
  position: absolute; bottom: 35%; left: 38%; width: 4px; height: 80px;
  background: linear-gradient(0deg, #4a3a3a 0%, #2a2222 100%);
  border-radius: 2px;
  transform-origin: top center;
  animation: gc-chain 2.5s ease-in-out infinite alternate;
}
.scn-general-cruelty .cell-crate {
  position: absolute; bottom: 32%; left: 20%; width: 60px; height: 40px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 3px;
  box-shadow: 0 4px 6px rgba(0,0,0,0.5);
  animation: gc-breathe 6s ease-in-out infinite;
}
.scn-general-cruelty .cell-figure {
  position: absolute; bottom: 30%; left: 50%; width: 20px; height: 50px;
  background: radial-gradient(ellipse 70% 50% at 50% 30%, #1a1216, #0a0608 80%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform: translateX(-50%);
  animation: gc-slump 4s ease-in-out infinite;
}
.scn-general-cruelty .cell-lamp {
  position: absolute; top: 12%; left: 50%; width: 14px; height: 20px;
  background: radial-gradient(circle at 50% 50%, #6a4220 0%, #3a2010 60%);
  border-radius: 30% 30% 10% 10%;
  transform: translateX(-50%);
  box-shadow: 0 0 30px 8px rgba(106,66,32,0.5), 0 0 60px 15px rgba(106,66,32,0.2);
  animation: gc-glow 3s ease-in-out infinite alternate;
}
.scn-general-cruelty .cell-bars {
  position: absolute; inset: 0;
  background: repeating-linear-gradient(0deg, transparent 0px, transparent 10px, rgba(0,0,0,0.3) 10px, rgba(0,0,0,0.3) 12px);
  pointer-events: none;
}
@keyframes gc-chain {
  0% { transform: rotate(-2deg); }
  50% { transform: rotate(2deg); }
  100% { transform: rotate(-2deg); }
}
@keyframes gc-breathe {
  0% { transform: scale(1); }
  50% { transform: scale(1.02); }
  100% { transform: scale(1); }
}
@keyframes gc-slump {
  0% { transform: translateX(-50%) translateY(0) rotate(-1deg); }
  50% { transform: translateX(-50%) translateY(2px) rotate(2deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(-1deg); }
}
@keyframes gc-glow {
  0% { box-shadow: 0 0 20px 4px rgba(106,66,32,0.3), 0 0 40px 8px rgba(106,66,32,0.1); opacity: 0.7; }
  50% { box-shadow: 0 0 40px 12px rgba(106,66,32,0.6), 0 0 80px 20px rgba(106,66,32,0.25); opacity: 1; }
  100% { box-shadow: 0 0 25px 5px rgba(106,66,32,0.35), 0 0 50px 10px rgba(106,66,32,0.15); opacity: 0.8; }
}

/* brimstone-hill */
.scn-brimstone-hill {
  background: linear-gradient(180deg, #7ab0d4 0%, #b0d8e8 30%, #f0e8c0 70%, #d4c090 100%), radial-gradient(ellipse at 50% 100%, #f0e8c0 0%, transparent 60%);
}
.scn-brimstone-hill .bh-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #4a8ec4 0%, #a0d4f0 60%, #f0e8c0 100%);
  animation: bh-sky 15s ease-in-out infinite alternate;
}
.scn-brimstone-hill .bh-sun {
  position: absolute; top: 12%; left: 20%; width: 50px; height: 50px;
  background: radial-gradient(circle, #fff8c0 0%, #f0d080 40%, #d0a050 70%);
  border-radius: 50%;
  box-shadow: 0 0 80px 20px #f0d080, 0 0 120px 40px rgba(240,208,128,0.4);
  animation: bh-sunrise 20s ease-in-out infinite alternate;
}
.scn-brimstone-hill .bh-mountain {
  position: absolute; bottom: 30%; left: 20%; right: 10%; height: 40%;
  background: linear-gradient(180deg, #8a7a4a 0%, #5a4a2a 100%);
  clip-path: polygon(0% 100%, 20% 20%, 40% 40%, 60% 10%, 80% 30%, 100% 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.3);
  animation: bh-hill 12s ease-in-out infinite alternate;
}
.scn-brimstone-hill .bh-ridge {
  position: absolute; bottom: 40%; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a1a 100%);
  border-radius: 60% 40% 0 0 / 80% 60% 0 0;
  animation: bh-hill 12s ease-in-out infinite alternate;
}
.scn-brimstone-hill .bh-cloud-a {
  position: absolute; top: 18%; left: 10%; width: 100px; height: 20px;
  background: linear-gradient(180deg, rgba(255,255,255,0.7) 0%, rgba(255,255,255,0.1) 100%);
  border-radius: 50%;
  filter: blur(6px);
  animation: bh-drift-a 40s linear infinite;
}
.scn-brimstone-hill .bh-cloud-b {
  position: absolute; top: 25%; right: 5%; width: 80px; height: 16px;
  background: linear-gradient(180deg, rgba(255,255,255,0.5) 0%, rgba(255,255,255,0.05) 100%);
  border-radius: 50%;
  filter: blur(4px);
  animation: bh-drift-b 35s linear infinite reverse;
}
.scn-brimstone-hill .bh-tree {
  position: absolute; bottom: 38%; left: 45%; width: 8px; height: 40px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 2px;
  transform-origin: bottom center;
  animation: bh-sway 8s ease-in-out infinite;
}
.scn-brimstone-hill .bh-tree::after {
  content: ''; position: absolute; top: -20px; left: -10px; width: 28px; height: 30px;
  background: radial-gradient(ellipse, #4a6a3a 0%, #2a4a2a 70%);
  border-radius: 50%;
}
@keyframes bh-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes bh-sunrise {
  0% { transform: translateX(0) translateY(0); box-shadow: 0 0 60px 15px #f0d080; }
  50% { transform: translateX(10px) translateY(-5px); box-shadow: 0 0 100px 30px #fff0a0; }
  100% { transform: translateX(-5px) translateY(0); box-shadow: 0 0 70px 18px #f0d080; }
}
@keyframes bh-hill {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.01); }
  100% { transform: scaleY(1); }
}
@keyframes bh-drift-a {
  0% { transform: translateX(-30px); }
  100% { transform: translateX(110vw); }
}
@keyframes bh-drift-b {
  0% { transform: translateX(0); }
  100% { transform: translateX(-100vw); }
}
@keyframes bh-sway {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(3deg); }
  100% { transform: rotate(-2deg); }
}

/* captain-farmer */
.scn-captain-farmer {
  background: linear-gradient(180deg, #2a5a8a 0%, #4a8aba 40%, #8abaee 70%, #c0e0f0 100%), radial-gradient(ellipse at 50% 20%, #8abaee 0%, transparent 60%);
}
.scn-captain-farmer .cf-sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #3a7aaa 0%, #1a4a6a 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.4);
  animation: cf-sea 10s ease-in-out infinite alternate;
}
.scn-captain-farmer .cf-ship {
  position: absolute; bottom: 35%; left: 50%; width: 120px; height: 30px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 30% 30% / 40% 40% 10% 10%;
  transform: translateX(-50%);
  box-shadow: 0 6px 10px rgba(0,0,0,0.5);
  animation: cf-float 5s ease-in-out infinite;
}
.scn-captain-farmer .cf-sail-fore {
  position: absolute; bottom: 48%; left: 38%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #f0e8d0 0%, #d0c0a0 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 10% 10%;
  transform: skewX(-5deg);
  box-shadow: 2px 0 4px rgba(0,0,0,0.2);
  animation: cf-sail 6s ease-in-out infinite;
}
.scn-captain-farmer .cf-sail-aft {
  position: absolute; bottom: 48%; right: 36%; width: 25px; height: 40px;
  background: linear-gradient(180deg, #e8e0c0 0%, #c0b08a 100%);
  border-radius: 10% 10% 10% 10% / 20% 20% 10% 10%;
  transform: skewX(5deg);
  box-shadow: -2px 0 4px rgba(0,0,0,0.2);
  animation: cf-sail 6s ease-in-out infinite reverse;
}
.scn-captain-farmer .cf-captain {
  position: absolute; bottom: 42%; left: 45%; width: 14px; height: 30px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: cf-stand 4s ease-in-out infinite;
}
.scn-captain-farmer .cf-flag {
  position: absolute; top: 16%; left: 52%; width: 20px; height: 14px;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%);
  clip-path: polygon(0% 0%, 100% 20%, 100% 80%, 0% 100%);
  animation: cf-flagwave 3s ease-in-out infinite;
}
.scn-captain-farmer .cf-wave {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 20px;
  background: linear-gradient(180deg, rgba(58,122,170,0.5) 0%, rgba(26,74,106,0.3) 100%);
  border-radius: 50%;
  filter: blur(2px);
  animation: cf-wave 7s ease-in-out infinite alternate;
}
@keyframes cf-sea {
  0% { background-position: 0 0; background-size: 100% 100%; }
  50% { background-position: 0 5px; background-size: 100% 100%; }
  100% { background-position: 0 0; }
}
@keyframes cf-float {
  0% { transform: translateX(-50%) translateY(0) rotate(0deg); }
  50% { transform: translateX(-50%) translateY(-3px) rotate(1deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(0deg); }
}
@keyframes cf-sail {
  0% { transform: skewX(-5deg) rotate(0deg); }
  50% { transform: skewX(-8deg) rotate(2deg); }
  100% { transform: skewX(-5deg) rotate(0deg); }
}
@keyframes cf-stand {
  0% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
  100% { transform: translateY(0); }
}
@keyframes cf-flagwave {
  0% { clip-path: polygon(0% 0%, 100% 20%, 100% 80%, 0% 100%); }
  50% { clip-path: polygon(0% 0%, 100% 30%, 100% 70%, 0% 100%); }
  100% { clip-path: polygon(0% 0%, 100% 20%, 100% 80%, 0% 100%); }
}
@keyframes cf-wave {
  0% { transform: translateY(0) scaleX(1); }
  100% { transform: translateY(3px) scaleX(1.02); }
}

/* commence-merchant */
.scn-commence-merchant {
  background: linear-gradient(180deg, #c8d8e8 0%, #e0e8f0 30%, #f0e8c0 60%, #d4c090 100%), radial-gradient(ellipse at 50% 0%, #f0e8c0 0%, transparent 70%);
}
.scn-commence-merchant .cm-backdrop {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #a0b8d0 0%, #d0dce8 60%, #f0e8c0 100%);
  animation: cm-sky 12s ease-in-out infinite alternate;
}
.scn-commence-merchant .cm-stall-canopy {
  position: absolute; top: 15%; left: 25%; right: 25%; height: 20%;
  background: linear-gradient(180deg, #d4a070 0%, #c08050 100%);
  border-radius: 30% 30% 10% 10% / 60% 60% 10% 10%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.3);
  animation: cm-canopy 8s ease-in-out infinite;
}
.scn-commence-merchant .cm-table {
  position: absolute; bottom: 30%; left: 30%; right: 30%; height: 10%;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a0a 100%);
  border-radius: 5px;
  box-shadow: 0 4px 6px rgba(0,0,0,0.4);
}
.scn-commence-merchant .cm-goods {
  position: absolute; bottom: 32%; left: 35%; width: 20px; height: 20px;
  background: radial-gradient(circle, #8a6a4a 0%, #5a3a2a 70%);
  border-radius: 30% 30% 10% 10% / 40% 40% 10% 10%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: cm-bounce 4s ease-in-out infinite;
}
.scn-commence-merchant .cm-merchant {
  position: absolute; bottom: 25%; left: 42%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: cm-bow 5s ease-in-out infinite;
}
.scn-commence-merchant .cm-coins {
  position: absolute; bottom: 33%; left: 55%; width: 30px; height: 6px;
  background: radial-gradient(circle, #d0b060 0%, #a08030 70%);
  border-radius: 50%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
  animation: cm-sparkle 2.5s ease-in-out infinite alternate;
}
.scn-commence-merchant .cm-sunlight {
  position: absolute; top: 0; left: 20%; right: 20%; height: 100%;
  background: linear-gradient(180deg, rgba(255,255,200,0.3) 0%, transparent 60%);
  pointer-events: none;
  animation: cm-ray 6s ease-in-out infinite alternate;
}
@keyframes cm-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes cm-canopy {
  0% { transform: scaleX(1) rotate(0deg); }
  50% { transform: scaleX(1.02) rotate(1deg); }
  100% { transform: scaleX(1) rotate(0deg); }
}
@keyframes cm-bounce {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes cm-bow {
  0% { transform: rotate(0deg); }
  25% { transform: rotate(-5deg); }
  75% { transform: rotate(5deg); }
  100% { transform: rotate(0deg); }
}
@keyframes cm-sparkle {
  0% { opacity: 0.6; transform: scale(1); }
  100% { opacity: 1; transform: scale(1.1); }
}
@keyframes cm-ray {
  0% { opacity: 0.2; }
  100% { opacity: 0.5; }
}

/* admiral-quits-ship */
.scn-admiral-quits-ship {
  background: linear-gradient(180deg, #4a90c4 0%, #7ab8e8 40%, #d4b97a 100%),
              radial-gradient(ellipse at 20% 60%, #f0d090 0%, transparent 60%);
}
.scn-admiral-quits-ship .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #5ba0d0 0%, #9ac8e8 60%, transparent 100%);
  animation: aqs-sky 12s ease-in-out infinite alternate;
}
.scn-admiral-quits-ship .sun {
  position: absolute; top: 10%; right: 8%;
  width: 60px; height: 60px;
  background: radial-gradient(circle, #fff6c0 0%, #f0c060 50%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 60px 40px rgba(240,192,96,0.4);
  animation: aqs-sunch 10s ease-in-out infinite alternate;
}
.scn-admiral-quits-ship .cliff {
  position: absolute; bottom: 20%; left: 0; right: 60%;
  height: 45%;
  background: linear-gradient(180deg, #a08050 0%, #806030 40%, #604020 100%);
  border-radius: 0 30% 0 0 / 0 50% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.5);
  animation: aqs-cliff 20s ease-in-out infinite;
}
.scn-admiral-quits-ship .shipwreck {
  position: absolute; bottom: 22%; left: 65%;
  width: 120px; height: 80px;
  background: linear-gradient(90deg, #4a3628 0%, #3a2a1a 30%, #2a1a0a 100%);
  border-radius: 10% 40% 40% 10% / 60% 40% 40% 60%;
  transform: rotate(-8deg);
  box-shadow: 0 10px 20px rgba(0,0,0,0.6);
  animation: aqs-wreck 15s ease-in-out infinite alternate;
}
.scn-admiral-quits-ship .admiral {
  position: absolute; bottom: 20%; left: 50%;
  width: 16px; height: 40px;
  background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: aqs-walk 5s ease-in-out infinite;
}
.scn-admiral-quits-ship .flame-1 {
  position: absolute; bottom: 30%; left: 67%;
  width: 20px; height: 30px;
  background: radial-gradient(circle at 50% 80%, #ff8030 0%, #ff4020 40%, transparent 70%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  animation: aqs-flame 0.8s ease-in-out infinite alternate;
}
.scn-admiral-quits-ship .flame-2 {
  position: absolute; bottom: 32%; left: 72%;
  width: 14px; height: 22px;
  background: radial-gradient(circle at 50% 80%, #ffa050 0%, #ff6030 40%, transparent 70%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  animation: aqs-flame 0.6s ease-in-out infinite alternate-reverse;
}
.scn-admiral-quits-ship .seagull {
  position: absolute; top: 14%; left: 20%;
  width: 40px; height: 8px;
  background: linear-gradient(90deg, transparent 0%, #fff 30%, #fff 60%, transparent 100%);
  border-radius: 50%;
  filter: blur(1px);
  animation: aqs-bird 25s linear infinite;
}
@keyframes aqs-sky { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.7 } }
@keyframes aqs-sunch { 0% { transform: scale(0.95); box-shadow: 0 0 40px 20px rgba(240,192,96,0.3); } 100% { transform: scale(1.05); box-shadow: 0 0 80px 60px rgba(240,192,96,0.6); } }
@keyframes aqs-cliff { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(0); } }
@keyframes aqs-wreck { 0% { transform: rotate(-8deg) translateY(0); } 50% { transform: rotate(-6deg) translateY(-3px); } 100% { transform: rotate(-8deg) translateY(0); } }
@keyframes aqs-walk { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 25% { transform: translateX(10px) translateY(-2px) rotate(2deg); } 50% { transform: translateX(20px) translateY(0) rotate(0deg); } 75% { transform: translateX(30px) translateY(-2px) rotate(-2deg); } 100% { transform: translateX(40px) translateY(0) rotate(0deg); } }
@keyframes aqs-flame { 0% { transform: scaleY(1) scaleX(0.9); opacity: 0.8; } 100% { transform: scaleY(1.4) scaleX(0.7); opacity: 1; } }
@keyframes aqs-bird { 0% { transform: translateX(-50px) scaleX(1); } 50% { transform: translateX(80vw) scaleX(1); } 51% { transform: translateX(80vw) scaleX(-1); } 100% { transform: translateX(-50px) scaleX(-1); } }

/* explosion-ocean */
.scn-explosion-ocean {
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a3a 40%, #0a0a2a 100%),
              radial-gradient(ellipse at 50% 30%, #2a2a5a 0%, transparent 60%);
}
.scn-explosion-ocean .sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #0a1a2a 0%, #050a15 100%);
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.6);
  animation: exo-sea 20s ease-in-out infinite alternate;
}
.scn-explosion-ocean .stars {
  position: absolute; inset: 0 0 60% 0;
  background: radial-gradient(1px 1px at 20% 10%, #fff 0%, transparent 100%),
              radial-gradient(1px 1px at 60% 5%, #fff 0%, transparent 100%),
              radial-gradient(1px 1px at 80% 20%, #fff 0%, transparent 100%),
              radial-gradient(1px 1px at 40% 30%, #fff 0%, transparent 100%);
  animation: exo-stars 15s linear infinite;
}
.scn-explosion-ocean .ship-hull {
  position: absolute; bottom: 40%; left: 50%;
  width: 140px; height: 60px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 0 0 30% 30% / 0 0 50% 50%;
  transform: translateX(-50%) rotate(5deg);
  box-shadow: 0 10px 20px rgba(0,0,0,0.6);
  animation: exo-hull 4s ease-in-out infinite alternate;
}
.scn-explosion-ocean .explosion-burst {
  position: absolute; top: 25%; left: 50%;
  width: 180px; height: 180px;
  background: radial-gradient(circle, #fff 0%, #ffc080 30%, #ff6020 50%, #a02010 70%, transparent 90%);
  border-radius: 50%;
  transform: translate(-50%, -50%) scale(0.8);
  box-shadow: 0 0 100px 60px rgba(255,100,20,0.5), 0 0 200px 100px rgba(255,200,100,0.3);
  animation: exo-boom 0.6s ease-in-out infinite alternate;
}
.scn-explosion-ocean .debris-1 {
  position: absolute; top: 30%; left: 30%;
  width: 20px; height: 8px;
  background: #2a1a0a;
  border-radius: 2px;
  transform: rotate(45deg);
  animation: exo-debris 1.2s ease-in-out infinite;
}
.scn-explosion-ocean .debris-2 {
  position: absolute; top: 35%; left: 70%;
  width: 14px; height: 6px;
  background: #4a3a2a;
  border-radius: 2px;
  transform: rotate(-30deg);
  animation: exo-debris 1.5s ease-in-out infinite reverse;
}
.scn-explosion-ocean .smoke-clound {
  position: absolute; top: 10%; left: 40%;
  width: 200px; height: 80px;
  background: radial-gradient(circle at 50% 50%, rgba(200,200,200,0.3) 0%, transparent 80%);
  filter: blur(10px);
  animation: exo-smoke 4s ease-in-out infinite alternate;
}
@keyframes exo-sea { 0% { transform: translateY(0); } 50% { transform: translateY(-5px); } 100% { transform: translateY(3px); } }
@keyframes exo-stars { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes exo-hull { 0% { transform: translateX(-50%) rotate(5deg) translateY(0); } 100% { transform: translateX(-50%) rotate(3deg) translateY(-2px); } }
@keyframes exo-boom { 0% { transform: translate(-50%, -50%) scale(0.7); opacity: 0.8; } 50% { transform: translate(-50%, -50%) scale(1); opacity: 1; } 100% { transform: translate(-50%, -50%) scale(0.9); opacity: 0.9; } }
@keyframes exo-debris { 0% { transform: rotate(0deg) translateY(0) scale(1); } 50% { transform: rotate(180deg) translateY(-30px) scale(0.8); } 100% { transform: rotate(360deg) translateY(0) scale(1); } }
@keyframes exo-smoke { 0% { transform: scale(1) translateY(0); opacity: 0.3; } 100% { transform: scale(1.5) translateY(-20px); opacity: 0.6; } }

/* my-station-fight */
.scn-my-station-fight {
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 40%, #3a2a1a 100%),
              radial-gradient(circle at 30% 40%, #4a3a2a 0%, transparent 70%);
}
.scn-my-station-fight .deck-back {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  box-shadow: inset 0 20px 30px rgba(0,0,0,0.7);
  animation: msf-deck 20s ease-in-out infinite alternate;
}
.scn-my-station-fight .cannon {
  position: absolute; bottom: 10%; left: 60%;
  width: 100px; height: 40px;
  background: linear-gradient(180deg, #4a4a3a 0%, #3a3a2a 100%);
  border-radius: 20% 20% 40% 40% / 30% 30% 60% 60%;
  box-shadow: 0 5px 15px rgba(0,0,0,0.5);
  animation: msf-cannon 8s ease-in-out infinite alternate;
}
.scn-my-station-fight .powder-box {
  position: absolute; bottom: 12%; left: 25%;
  width: 40px; height: 30px;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a2a 100%);
  border-radius: 4px;
  box-shadow: inset 0 2px 5px rgba(0,0,0,0.4);
  animation: msf-box 10s ease-in-out infinite;
}
.scn-my-station-fight .figure-1 {
  position: absolute; bottom: 8%; left: 30%;
  width: 18px; height: 42px;
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: msf-fall 2s ease-in-out infinite alternate;
}
.scn-my-station-fight .figure-2 {
  position: absolute; bottom: 8%; left: 50%;
  width: 16px; height: 38px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: msf-cover 3s ease-in-out infinite;
}
.scn-my-station-fight .muzzle-flash {
  position: absolute; bottom: 18%; left: 65%;
  width: 30px; height: 40px;
  background: radial-gradient(circle at 50% 50%, #fff0a0 0%, #ff8030 50%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(255,128,48,0.6);
  animation: msf-flash 0.3s ease-in-out infinite alternate;
}
.scn-my-station-fight .blood-splatter {
  position: absolute; bottom: 6%; left: 40%;
  width: 60px; height: 20px;
  background: radial-gradient(circle at 50% 50%, #702243 0%, transparent 70%);
  filter: blur(2px);
  animation: msf-blood 4s ease-in-out infinite alternate;
}
@keyframes msf-deck { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes msf-cannon { 0% { transform: translateX(0); } 50% { transform: translateX(-5px) rotate(-1deg); } 100% { transform: translateX(0); } }
@keyframes msf-box { 0% { transform: scale(1); } 50% { transform: scale(0.95) translateY(2px); } 100% { transform: scale(1); } }
@keyframes msf-fall { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-10px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes msf-cover { 0% { transform: translateX(0) scale(1); } 50% { transform: translateX(-5px) scale(0.9); } 100% { transform: translateX(0) scale(1); } }
@keyframes msf-flash { 0% { transform: scale(0.8); opacity: 0.5; } 100% { transform: scale(1.3); opacity: 1; } }
@keyframes msf-blood { 0% { opacity: 0.3; transform: scale(1); } 100% { opacity: 0.7; transform: scale(1.2); } }

/* risk-of-blowing-up */
.scn-risk-of-blowing-up {
  background: linear-gradient(180deg, #0a0a0a 0%, #1a1510 40%, #0a0a0a 100%),
              radial-gradient(circle at 50% 60%, #2a1a10 0%, transparent 70%);
}
.scn-risk-of-blowing-up .hold-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a1a0a 0%, #151005 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.8);
  animation: rbu-floor 30s ease-in-out infinite alternate;
}
.scn-risk-of-blowing-up .lantern {
  position: absolute; top: 20%; left: 50%;
  width: 18px; height: 30px;
  background: radial-gradient(circle at 50% 30%, #ffd080 0%, #c08040 60%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 30px 10px rgba(192,128,64,0.6), 0 0 60px 20px rgba(192,128,64,0.3);
  animation: rbu-lamp 4s ease-in-out infinite alternate;
}
.scn-risk-of-blowing-up .powder-pile {
  position: absolute; bottom: 10%; left: 30%;
  width: 60px; height: 20px;
  background: radial-gradient(circle at 50% 50%, #8a7a5a 0%, #6a5a3a 100%);
  border-radius: 50%;
  filter: blur(2px);
  animation: rbu-powder 10s linear infinite;
}
.scn-risk-of-blowing-up .figure-a {
  position: absolute; bottom: 8%; left: 40%;
  width: 16px; height: 40px;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rbu-crouch 3s ease-in-out infinite alternate;
}
.scn-risk-of-blowing-up .figure-b {
  position: absolute; bottom: 8%; left: 55%;
  width: 16px; height: 38px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rbu-dodge 4s ease-in-out infinite;
}
.scn-risk-of-blowing-up .spark {
  position: absolute; top: 30%; left: 60%;
  width: 4px; height: 4px;
  background: #ffc080;
  border-radius: 50%;
  box-shadow: 0 0 8px 4px rgba(255,192,128,0.8);
  animation: rbu-spark 0.5s ease-in-out infinite alternate;
}
.scn-risk-of-blowing-up .shadow {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 70%, transparent 0%, #000 70%);
  animation: rbu-shadow 8s ease-in-out infinite alternate;
}
@keyframes rbu-floor { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes rbu-lamp { 0% { box-shadow: 0 0 20px 5px rgba(192,128,64,0.4); } 50% { box-shadow: 0 0 40px 15px rgba(255,208,128,0.7); } 100% { box-shadow: 0 0 20px 5px rgba(192,128,64,0.4); } }
@keyframes rbu-powder { 0% { opacity: 0.6; transform: scale(1); } 50% { opacity: 0.9; transform: scale(1.05); } 100% { opacity: 0.6; transform: scale(1); } }
@keyframes rbu-crouch { 0% { transform: translateY(0) rotate(-3deg); } 50% { transform: translateY(-5px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes rbu-dodge { 0% { transform: translateX(0) scale(1); } 50% { transform: translateX(-8px) scale(0.85); } 100% { transform: translateX(0) scale(1); } }
@keyframes rbu-spark { 0% { transform: translate(0,0) scale(0.8); opacity: 0.5; } 100% { transform: translate(10px,-15px) scale(1.2); opacity: 1; } }
@keyframes rbu-shadow { 0% { opacity: 0.3; } 50% { opacity: 0.6; } 100% { opacity: 0.3; } }

/* near-fire-on-ship */
.scn-near-fire-on-ship { background: linear-gradient(180deg, #1a0e0a 0%, #2b140e 40%, #4a1e14 70%, #1a0e0a 100%), radial-gradient(ellipse at 50% 30%, #c65b2a 0%, transparent 60%); }
.scn-near-fire-on-ship .bg-deck { position:absolute; inset:0; background: linear-gradient(135deg, #1a0e0a 0%, #2d1611 50%, #1a0e0a 100%); }
.scn-near-fire-on-ship .beams   { position:absolute; top:0; left:5%; right:5%; height:6%; background: linear-gradient(180deg, #3a2018 0%, #21120e 100%); border-radius:4px; box-shadow:0 4px 8px rgba(0,0,0,.6); animation:nfo-beam 6s ease-in-out infinite; }
.scn-near-fire-on-ship .fire    { position:absolute; bottom:30%; left:35%; width:30%; height:35%; background: radial-gradient(ellipse at 50% 100%, #ff8c3a 0%, #d94a1a 50%, transparent 70%); animation:nfo-fire .8s ease-in-out infinite alternate; }
.scn-near-fire-on-ship .smoke   { position:absolute; border-radius:50%; filter:blur(8px); background: radial-gradient(circle, rgba(60,40,30,.7) 0%, transparent 70%); }
.scn-near-fire-on-ship .smoke-a { width:20%; height:25%; top:10%; left:20%; animation:nfo-smoke-a 12s ease-in-out infinite; }
.scn-near-fire-on-ship .smoke-b { width:15%; height:20%; top:15%; right:15%; animation:nfo-smoke-b 16s ease-in-out infinite reverse; }
.scn-near-fire-on-ship .pan     { position:absolute; bottom:22%; left:40%; width:12%; height:6%; background: radial-gradient(ellipse, #3a1e14 0%, #1a0e0a 100%); border-radius:20%; box-shadow:0 2px 6px rgba(0,0,0,.5); animation:nfo-pan 3s ease-in-out infinite; }
.scn-near-fire-on-ship .figure  { position:absolute; bottom:14%; left:50%; width:14%; height:22%; background: linear-gradient(180deg, #0d0806 0%, #1a0e0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation:nfo-figure 2s ease-in-out infinite; }
.scn-near-fire-on-ship .glow    { position:absolute; inset:0; background: radial-gradient(ellipse at 45% 50%, rgba(255,140,58,.15) 0%, transparent 60%); animation:nfo-glow 1.2s ease-in-out infinite alternate; }
@keyframes nfo-beam     { 0%,100% { transform:scaleY(1) } 50% { transform:scaleY(1.05) } }
@keyframes nfo-fire     { 0% { transform:scaleY(1) scaleX(1); opacity:.9 } 50% { transform:scaleY(1.15) scaleX(1.05); opacity:1 } 100% { transform:scaleY(.95) scaleX(.98); opacity:.85 } }
@keyframes nfo-smoke-a   { 0%,100% { transform:translate(0,0) scale(1); opacity:.3 } 50% { transform:translate(8%,-15%) scale(1.3); opacity:.6 } }
@keyframes nfo-smoke-b   { 0%,100% { transform:translate(0,0) scale(1); opacity:.2 } 50% { transform:translate(-10%,-20%) scale(1.4); opacity:.5 } }
@keyframes nfo-pan      { 0%,100% { transform:rotate(0) translateY(0) } 50% { transform:rotate(-5deg) translateY(-2px) } }
@keyframes nfo-figure   { 0%,100% { transform:translateX(0) rotate(0) } 33% { transform:translateX(5%) rotate(-2deg) } 66% { transform:translateX(-3%) rotate(1deg) } }
@keyframes nfo-glow     { 0% { opacity:.6 } 50% { opacity:1 } 100% { opacity:.7 } }

/* west-indies-again */
.scn-west-indies-again { background: linear-gradient(180deg, #4a82b0 0%, #87c0d8 40%, #b8dce8 65%, #f0e6d0 100%), radial-gradient(ellipse at 70% 20%, #fffbe0 0%, transparent 50%); }
.scn-west-indies-again .sky     { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #5a92c0 0%, #a0d0e8 100%); }
.scn-west-indies-again .sun     { position:absolute; top:14%; right:18%; width:10%; height:12%; background: radial-gradient(circle, #fff8d0 0%, #f8d890 60%, transparent 100%); animation:wia-sun 14s ease-in-out infinite; }
.scn-west-indies-again .cloud   { position:absolute; background: radial-gradient(ellipse, rgba(255,255,255,.6) 0%, rgba(255,255,255,.1) 100%); filter:blur(6px); border-radius:50%; }
.scn-west-indies-again .cloud-a { width:25%; height:8%; top:8%; left:5%; animation:wia-cloud-a 45s linear infinite; }
.scn-west-indies-again .cloud-b { width:20%; height:6%; top:16%; right:10%; animation:wia-cloud-b 55s linear infinite reverse; }
.scn-west-indies-again .sea     { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #206090 0%, #103050 100%); }
.scn-west-indies-again .ship    { position:absolute; bottom:16%; left:40%; width:20%; height:10%; background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%); border-radius:5% 5% 40% 40%; box-shadow:0 4px 8px rgba(0,0,0,.4); animation:wia-ship 8s ease-in-out infinite; }
.scn-west-indies-again .sail    { position:absolute; bottom:20%; background: linear-gradient(180deg, #f0e8d8 0%, #d0c8b0 100%); border-radius:30% 30% 20% 20%; }
.scn-west-indies-again .sail-fore { left:38%; width:8%; height:16%; transform:skewX(-5deg); animation:wia-sail-fore 6s ease-in-out infinite; }
.scn-west-indies-again .sail-aft  { left:50%; width:10%; height:20%; transform:skewX(5deg); animation:wia-sail-aft 7s ease-in-out infinite; }
.scn-west-indies-again .wave    { position:absolute; bottom:2%; left:-10%; width:120%; height:12%; background: radial-gradient(ellipse at 30% 50%, #2070a0 0%, transparent 70%); animation:wia-wave 3s ease-in-out infinite; }
@keyframes wia-sun       { 0%,100% { opacity:.7 } 50% { opacity:1 } }
@keyframes wia-cloud-a   { 0% { transform:translateX(-30%) } 100% { transform:translateX(120%) } }
@keyframes wia-cloud-b   { 0% { transform:translateX(0%) } 100% { transform:translateX(-110%) } }
@keyframes wia-ship      { 0%,100% { transform:translateY(0) rotate(0) } 25% { transform:translateY(-2px) rotate(.5deg) } 75% { transform:translateY(1px) rotate(-.5deg) } }
@keyframes wia-sail-fore { 0%,100% { transform:skewX(-5deg) scaleY(1) } 50% { transform:skewX(-8deg) scaleY(1.05) } }
@keyframes wia-sail-aft  { 0%,100% { transform:skewX(5deg) scaleY(1) } 50% { transform:skewX(8deg) scaleY(1.05) } }
@keyframes wia-wave      { 0%,100% { transform:translateX(0) scaleY(1) } 50% { transform:translateX(5%) scaleY(1.1) } }

/* near-explosion */
.scn-near-explosion { background: linear-gradient(180deg, #0e0a0a 0%, #1a1212 40%, #2a1a14 70%, #0e0a0a 100%), radial-gradient(ellipse at 40% 50%, #d9661a 0%, transparent 70%); }
.scn-near-explosion .bg-hold     { position:absolute; inset:0; background: linear-gradient(135deg, #0e0a0a 0%, #1e1412 100%); }
.scn-near-explosion .powder-keg  { position:absolute; bottom:25%; left:30%; width:25%; height:20%; background: linear-gradient(180deg, #5a3a28 0%, #3a2218 100%); border-radius:15% 15% 25% 25%; box-shadow:0 6px 10px rgba(0,0,0,.7); animation:nex-keg 4s ease-in-out infinite; }
.scn-near-explosion .flame       { position:absolute; bottom:44%; left:35%; width:5%; height:10%; background: radial-gradient(ellipse at 50% 100%, #ffaa40 0%, #d94a1a 60%, transparent 100%); animation:nex-flame .6s ease-in-out infinite alternate; }
.scn-near-explosion .spark       { position:absolute; width:1.5%; height:1.5%; background: radial-gradient(circle, #ffee88 0%, #ffa040 80%); border-radius:50%; animation:nex-spark 1.2s ease-in-out infinite; }
.scn-near-explosion .spark-a     { top:18%; left:40%; animation-delay:0s; }
.scn-near-explosion .spark-b     { top:25%; left:48%; animation-delay:.6s; }
.scn-near-explosion .hands       { position:absolute; bottom:28%; left:42%; width:12%; height:8%; background: linear-gradient(180deg, #2a1a14 0%, #1a0e0a 100%); border-radius:30% 30% 20% 20%; transform:rotate(10deg); animation:nex-hands 1.5s ease-in-out infinite; }
.scn-near-explosion .shadow      { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 60%, rgba(0,0,0,.4) 0%, transparent 80%); animation:nex-shadow 3s ease-in-out infinite; }
@keyframes nex-keg   { 0%,100% { transform:rotate(0) } 50% { transform:rotate(2deg) } }
@keyframes nex-flame { 0% { transform:scaleY(1) scaleX(1); opacity:.9 } 50% { transform:scaleY(1.3) scaleX(1.1); opacity:1 } 100% { transform:scaleY(.9) scaleX(.95); opacity:.8 } }
@keyframes nex-spark { 0% { transform:translate(0,0) scale(1); opacity:0 } 30% { opacity:1 } 70% { transform:translate(10px,-20px) scale(1.5); opacity:1 } 100% { transform:translate(20px,-40px) scale(.5); opacity:0 } }
@keyframes nex-hands { 0%,100% { transform:rotate(10deg) translateY(0) } 50% { transform:rotate(15deg) translateY(-3px) } }
@keyframes nex-shadow { 0%,100% { opacity:.5 } 50% { opacity:.8 } }

/* jamaica-cruelties */
.scn-jamaica-cruelties { background: linear-gradient(180deg, #c0b090 0%, #a88c70 40%, #8a6e56 70%, #5a4230 100%), radial-gradient(ellipse at 50% 0%, #dcc8b0 0%, transparent 70%); }
.scn-jamaica-cruelties .sky-harsh        { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #e8dcc8 0%, #c0b090 100%); }
.scn-jamaica-cruelties .ground           { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #8a6e56 0%, #5a3e2c 100%); }
.scn-jamaica-cruelties .figure-silhouette { position:absolute; bottom:10%; left:45%; width:14%; height:35%; background: linear-gradient(180deg, #2a1a10 0%, #0d0806 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation:jcr-figure 12s ease-in-out infinite; }
.scn-jamaica-cruelties .chain            { position:absolute; bottom:8%; left:40%; width:20%; height:2%; background: repeating-linear-gradient(90deg, #6a4e3a 0px, #6a4e3a 8px, #4a3220 8px, #4a3220 16px); border-radius:2px; animation:jcr-chain 8s linear infinite; }
.scn-jamaica-cruelties .whip             { position:absolute; bottom:12%; left:30%; width:25%; height:1.5%; background: linear-gradient(90deg, #3a2218 0%, #5a3a28 40%, transparent 100%); border-radius:2px; transform:rotate(-15deg); animation:jcr-whip 6s ease-in-out infinite; }
.scn-jamaica-cruelties .shadow-fig       { position:absolute; bottom:0; left:40%; width:20%; height:12%; background: radial-gradient(ellipse, rgba(0,0,0,.5) 0%, transparent 70%); animation:jcr-shadow 14s ease-in-out infinite; }
.scn-jamaica-cruelties .dust             { position:absolute; bottom:0; left:0; right:0; height:10%; background: radial-gradient(ellipse at 30% 100%, rgba(180,150,120,.3) 0%, transparent 70%); animation:jcr-dust 20s ease-in-out infinite; }
@keyframes jcr-figure { 0%,100% { transform:translateY(0) rotate(0) } 25% { transform:translateY(-2px) rotate(-1deg) } 75% { transform:translateY(1px) rotate(1deg) } }
@keyframes jcr-chain  { 0% { transform:translateX(0) } 100% { transform:translateX(8%) } }
@keyframes jcr-whip   { 0%,100% { transform:rotate(-15deg) translateX(0) } 50% { transform:rotate(-10deg) translateX(2%) } }
@keyframes jcr-shadow { 0%,100% { opacity:.4 } 50% { opacity:.7 } }
@keyframes jcr-dust   { 0%,100% { opacity:.3 } 50% { opacity:.6 } }

.scn-snow-wonder {
  background:
    linear-gradient(180deg, #c8e0ff 0%, #eaf4ff 30%, #f0f8ff 60%, #d9e6f2 100%),
    radial-gradient(ellipse at 50% 100%, #ffffff33 0%, transparent 60%);
}
.scn-snow-wonder .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #b0d4f0 0%, #d0e8ff 100%);
  animation: s1-sky 12s ease-in-out infinite alternate;
}
.scn-snow-wonder .deck {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #8b7355 0%, #6b5b3e 30%, #4a3d2a 100%);
  border-radius: 40% 60% 0 0 / 20% 30% 0 0;
  box-shadow: inset 0 20px 30px rgba(0,0,0,0.3);
  animation: s1-deck 8s ease-in-out infinite;
}
.scn-snow-wonder .snow-layer {
  position: absolute; bottom: 45%; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, rgba(255,255,255,0.8) 0%, rgba(255,255,255,0.2) 100%);
  filter: blur(2px);
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  animation: s1-snow-drift 20s ease-in-out infinite alternate;
}
.scn-snow-wonder .sailor {
  position: absolute; bottom: 35%; left: 35%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 70%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  box-shadow: 2px 2px 6px rgba(0,0,0,0.4);
  animation: s1-figure 5s ease-in-out infinite;
}
.scn-snow-wonder .snowflakes {
  position: absolute; top: 0; left: 0; right: 0; height: 100%;
  background-image: radial-gradient(2px 2px at 20% 10%, #ffffffcc 0%, transparent 100%),
                    radial-gradient(2px 2px at 70% 30%, #ffffffaa 0%, transparent 100%),
                    radial-gradient(3px 3px at 40% 50%, #ffffffee 0%, transparent 100%),
                    radial-gradient(2px 2px at 80% 70%, #ffffffcc 0%, transparent 100%),
                    radial-gradient(3px 3px at 10% 80%, #ffffffaa 0%, transparent 100%);
  background-size: 200% 200%;
  animation: s1-fall 25s linear infinite;
}
.scn-snow-wonder .mast {
  position: absolute; bottom: 40%; left: 50%; width: 6px; height: 80px;
  background: linear-gradient(180deg, #5b4a30 0%, #3d2f1e 100%);
  transform: translateX(-50%);
  border-radius: 3px;
}
.scn-snow-wonder .railing {
  position: absolute; bottom: 43%; left: 20%; right: 20%; height: 4px;
  background: #4a3d2a;
  border-radius: 2px;
  box-shadow: 0 8px 0 #3d2f1e;
}
@keyframes s1-sky { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes s1-deck { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes s1-snow-drift { 0% { transform: translateX(-5px); } 50% { transform: translateX(5px); } 100% { transform: translateX(-5px); } }
@keyframes s1-figure { 0% { transform: translateX(0) translateY(0) rotate(-1deg); } 25% { transform: translateX(6px) translateY(-1px) rotate(1deg); } 50% { transform: translateX(12px) translateY(0) rotate(-1deg); } 75% { transform: translateX(18px) translateY(-1px) rotate(1deg); } 100% { transform: translateX(24px) translateY(0) rotate(0deg); } }
@keyframes s1-fall { 0% { background-position: 0% 0%; } 100% { background-position: 100% 100%; } }

.scn-church-and-worship {
  background:
    linear-gradient(180deg, #2a1a0e 0%, #1a1008 50%, #0d0804 100%),
    radial-gradient(ellipse at 50% 70%, #4a3020 0%, transparent 70%);
}
.scn-church-and-worship .wall {
  position: absolute; inset: 0 0 10% 0;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0e 100%);
  border-radius: 5% 5% 0 0;
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.6);
}
.scn-church-and-worship .pews {
  position: absolute; bottom: 15%; left: 5%; right: 5%; height: 20%;
  background: linear-gradient(180deg, #5a3a20 0%, #4a2e14 100%);
  border-radius: 0 0 10% 10%;
  box-shadow: 0 -4px 10px rgba(0,0,0,0.5);
  animation: ch-pews 6s ease-in-out infinite;
}
.scn-church-and-worship .altar {
  position: absolute; bottom: 25%; left: 35%; right: 35%; height: 25%;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a3020 100%);
  border-radius: 0 0 20% 20% / 0 0 30% 30%;
  box-shadow: 0 10px 20px rgba(0,0,0,0.6);
  animation: ch-altar 4s ease-in-out infinite alternate;
}
.scn-church-and-worship .stained-glass {
  position: absolute; top: 15%; left: 35%; right: 35%; height: 30%;
  background: linear-gradient(135deg, #402080 0%, #802060 30%, #a05030 60%, #306080 100%);
  opacity: 0.6;
  border-radius: 10% 10% 50% 50% / 20% 20% 80% 80%;
  box-shadow: inset 0 0 30px rgba(128,64,32,0.5);
  animation: ch-glass 10s ease-in-out infinite alternate;
}
.scn-church-and-worship .candle-glow {
  position: absolute; bottom: 30%; left: 48%; width: 10px; height: 30px;
  background: linear-gradient(180deg, #ffd080 0%, #ffa030 60%, transparent 100%);
  border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%;
  box-shadow: 0 0 30px 10px #ffa030, 0 0 60px 20px rgba(255,160,48,0.4);
  animation: ch-candle 3s ease-in-out infinite alternate;
}
.scn-church-and-worship .figure-kneeling {
  position: absolute; bottom: 10%; left: 40%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #1a1010 0%, #0a0808 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: ch-kneel 5s ease-in-out infinite;
}
.scn-church-and-worship .shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.7) 100%);
  animation: ch-shadow 8s ease-in-out infinite alternate;
}
@keyframes ch-pews { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.98); } 100% { transform: scaleY(1); } }
@keyframes ch-altar { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes ch-glass { 0% { opacity: 0.5; filter: brightness(0.8); } 50% { opacity: 0.7; filter: brightness(1); } 100% { opacity: 0.5; filter: brightness(0.9); } }
@keyframes ch-candle { 0% { opacity: 0.9; transform: scale(1); } 50% { opacity: 1; transform: scale(1.1); } 100% { opacity: 0.9; transform: scale(1); } }
@keyframes ch-kneel { 0% { transform: translateY(0) rotate(1deg); } 25% { transform: translateY(-2px) rotate(-1deg); } 50% { transform: translateY(0) rotate(1deg); } 75% { transform: translateY(-2px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes ch-shadow { 0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.7; } }

.scn-dick-interpreter {
  background:
    linear-gradient(180deg, #f5e6c8 0%, #e8d4aa 40%, #c8a880 100%),
    radial-gradient(ellipse at 30% 50%, #fff0d0 0%, transparent 60%);
}
.scn-dick-interpreter .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #a08060 0%, #806040 100%);
  border-radius: 30% 30% 0 0 / 50% 50% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.2);
  animation: di-floor 8s ease-in-out infinite;
}
.scn-dick-interpreter .wall {
  position: absolute; top: 0; left: 0; right: 0; bottom: 30%;
  background: linear-gradient(180deg, #f0d8b8 0%, #e0c8a0 100%);
  box-shadow: inset 0 20px 40px rgba(180,120,60,0.3);
  animation: di-wall 10s ease-in-out infinite alternate;
}
.scn-dick-interpreter .table {
  position: absolute; bottom: 25%; left: 30%; right: 30%; height: 15%;
  background: linear-gradient(180deg, #8a6a4a 0%, #6a4a2a 100%);
  border-radius: 0 0 10% 10% / 0 0 30% 30%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.3);
  animation: di-table 5s ease-in-out infinite alternate;
}
.scn-dick-interpreter .dick {
  position: absolute; bottom: 30%; left: 35%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #4a3828 0%, #2a1a10 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  box-shadow: 2px 2px 6px rgba(0,0,0,0.4);
  animation: di-dick 4s ease-in-out infinite;
}
.scn-dick-interpreter .narrator {
  position: absolute; bottom: 30%; left: 55%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  box-shadow: 2px 2px 6px rgba(0,0,0,0.4);
  animation: di-narrator 4.5s ease-in-out infinite reverse;
}
.scn-dick-interpreter .lamp {
  position: absolute; top: 30%; left: 20%; width: 16px; height: 24px;
  background: radial-gradient(circle, #ffe0a0 0%, #ffb040 60%, transparent 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 40px 15px #ffb040, 0 0 80px 30px rgba(255,176,64,0.3);
  animation: di-lamp 3s ease-in-out infinite alternate;
}
.scn-dick-interpreter .book {
  position: absolute; bottom: 35%; left: 44%; width: 12px; height: 18px;
  background: linear-gradient(135deg, #6a4a2a 0%, #4a2a10 100%);
  border-radius: 2px;
  transform: rotate(10deg);
  box-shadow: 1px 1px 3px rgba(0,0,0,0.3);
  animation: di-book 6s ease-in-out infinite;
}
.scn-dick-interpreter .window-lit {
  position: absolute; top: 20%; right: 15%; width: 40px; height: 50px;
  background: linear-gradient(135deg, #b0d0f0 0%, #8090b0 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: inset 0 0 20px rgba(255,255,255,0.5), 0 0 30px rgba(176,208,240,0.4);
  animation: di-window 7s ease-in-out infinite alternate;
}
@keyframes di-floor { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.98); } 100% { transform: scaleY(1); } }
@keyframes di-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes di-table { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(1.01); } 100% { transform: translateY(0) scale(1); } }
@keyframes di-dick { 0% { transform: translateX(0) rotate(2deg); } 25% { transform: translateX(3px) rotate(-2deg); } 50% { transform: translateX(6px) rotate(2deg); } 75% { transform: translateX(3px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes di-narrator { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(-3px) rotate(2deg); } 50% { transform: translateX(-6px) rotate(-2deg); } 75% { transform: translateX(-3px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes di-lamp { 0% { opacity: 0.9; transform: scale(1); } 50% { opacity: 1; transform: scale(1.05); } 100% { opacity: 0.9; transform: scale(1); } }
@keyframes di-book { 0% { transform: rotate(8deg) translateY(0); } 50% { transform: rotate(12deg) translateY(-2px); } 100% { transform: rotate(8deg) translateY(0); } }
@keyframes di-window { 0% { opacity: 0.7; filter: brightness(0.9); } 50% { opacity: 1; filter: brightness(1.1); } 100% { opacity: 0.7; filter: brightness(0.9); } }

.scn-desire-to-read {
  background:
    linear-gradient(180deg, #d8e8f0 0%, #f0f8ff 30%, #e0e8f0 70%, #c8d8e8 100%),
    radial-gradient(ellipse at 60% 40%, #ffffff80 0%, transparent 60%);
}
.scn-desire-to-read .room {
  position: absolute; inset: 0 0 10% 0;
  background: linear-gradient(180deg, #e8f0f8 0%, #d0dce8 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
  box-shadow: inset 0 30px 50px rgba(0,0,0,0.05);
}
.scn-desire-to-read .bookshelf {
  position: absolute; top: 15%; left: 10%; width: 25%; height: 60%;
  background: linear-gradient(180deg, #8a7050 0%, #6a5030 100%);
  border-radius: 5% 5% 0 0 / 5% 5% 0 0;
  box-shadow: 0 8px 20px rgba(0,0,0,0.2);
  animation: dr-shelf 12s ease-in-out infinite alternate;
}
.scn-desire-to-read .narrator-figure {
  position: absolute; bottom: 20%; left: 40%; width: 24px; height: 55px;
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  box-shadow: 2px 2px 6px rgba(0,0,0,0.3);
  animation: dr-figure 6s ease-in-out infinite;
}
.scn-desire-to-read .book-open {
  position: absolute; bottom: 30%; left: 48%; width: 20px; height: 14px;
  background: linear-gradient(135deg, #c8a880 0%, #a08060 100%);
  border-radius: 10% 10% 20% 20% / 30% 30% 20% 20%;
  transform: perspective(20px) rotateX(10deg);
  box-shadow: 2px 2px 8px rgba(0,0,0,0.2);
  animation: dr-book 5s ease-in-out infinite alternate;
}
.scn-desire-to-read .window-light {
  position: absolute; top: 20%; right: 15%; width: 30px; height: 40px;
  background: linear-gradient(135deg, #c0d8ff 0%, #a0b8e0 100%);
  border-radius: 10% 10% 20% 20% / 15% 15% 25% 25%;
  box-shadow: inset 0 0 15px rgba(255,255,255,0.8), 0 0 30px rgba(192,216,255,0.4);
  animation: dr-window 8s ease-in-out infinite alternate;
}
.scn-desire-to-read .curtain {
  position: absolute; top: 15%; right: 10%; width: 12%; height: 70%;
  background: linear-gradient(180deg, #b0a090 0%, #908070 100%);
  border-radius: 20% 0 0 20% / 10% 0 0 10%;
  box-shadow: inset -5px 0 10px rgba(0,0,0,0.2);
  animation: dr-curtain 10s ease-in-out infinite;
}
@keyframes dr-shelf { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.98); } 100% { transform: scaleY(1); } }
@keyframes dr-figure { 0% { transform: translateX(0) rotate(-1deg); } 25% { transform: translateX(4px) rotate(1deg); } 50% { transform: translateX(8px) rotate(-1deg); } 75% { transform: translateX(4px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes dr-book { 0% { transform: perspective(20px) rotateX(8deg) translateY(0); } 50% { transform: perspective(20px) rotateX(12deg) translateY(-2px); } 100% { transform: perspective(20px) rotateX(8deg) translateY(0); } }
@keyframes dr-window { 0% { opacity: 0.8; filter: brightness(0.9); } 50% { opacity: 1; filter: brightness(1.1); } 100% { opacity: 0.8; filter: brightness(0.9); } }
@keyframes dr-curtain { 0% { transform: scaleX(1); } 50% { transform: scaleX(0.95); } 100% { transform: scaleX(1); } }

/* ========== separation-of-families ========== */
.scn-separation-of-families {
  background: 
    radial-gradient(ellipse at 70% 60%, #4a3a2a 0%, #1a1814 70%),
    linear-gradient(180deg, #2a201a 0%, #1c1410 100%);
}
.scn-separation-of-families .hold-bg { position:absolute; inset:0; background: linear-gradient(135deg, #2a2218 0%, #1e1812 100%); }
.scn-separation-of-families .wall-left { position:absolute; left:0; top:0; width:30%; height:100%; background: linear-gradient(180deg, #3a2a1a 0%, #1e1810 100%); border-right: 4px solid #2c1e14; }
.scn-separation-of-families .wall-right { position:absolute; right:0; top:0; width:30%; height:100%; background: linear-gradient(180deg, #3a2a1a 0%, #1e1810 100%); border-left: 4px solid #2c1e14; }
.scn-separation-of-families .partition { position:absolute; left:35%; top:15%; width:30%; height:70%; background: linear-gradient(90deg, #4a3828 0%, #3a2a1a 100%); border-radius: 4px; box-shadow: inset 0 0 20px rgba(0,0,0,.7); transform: perspective(600px) rotateY(-3deg); animation: sofs-part 8s ease-in-out infinite alternate; }
.scn-separation-of-families .figures-left { position:absolute; left:8%; bottom:20%; width:20%; height:50%; background: repeating-linear-gradient(90deg, #2e1e14 0px, #2e1e14 6px, transparent 6px, transparent 18px); clip-path: polygon(0 0,100% 0,80% 100%,0% 100%); animation: sofs-figures 6s ease-in-out infinite; }
.scn-separation-of-families .figures-right { position:absolute; right:8%; bottom:20%; width:20%; height:50%; background: repeating-linear-gradient(90deg, #3a2a1a 0px, #3a2a1a 6px, transparent 6px, transparent 18px); clip-path: polygon(0 0,100% 0,100% 100%,20% 100%); animation: sofs-figures 6s ease-in-out infinite reverse; }
.scn-separation-of-families .lantern { position:absolute; top:25%; left:45%; width:20px; height:30px; background: radial-gradient(circle, #b8785a 0%, #8a5040 70%); border-radius: 30% 30% 10% 10%; box-shadow: 0 0 40px 15px #b8785a40, 0 0 80px 30px #b8785a20; animation: sofs-lantern 4s ease-in-out infinite alternate; }
@keyframes sofs-part { 0% { transform: perspective(600px) rotateY(-3deg) translateX(0); } 50% { transform: perspective(600px) rotateY(2deg) translateX(2px); } 100% { transform: perspective(600px) rotateY(-3deg) translateX(0); } }
@keyframes sofs-figures { 0% { opacity: .7; transform: translateY(0); } 50% { opacity: 1; transform: translateY(-2px); } 100% { opacity: .7; transform: translateY(0); } }
@keyframes sofs-lantern { 0% { box-shadow: 0 0 30px 10px #b8785a30, 0 0 60px 20px #b8785a10; } 50% { box-shadow: 0 0 60px 20px #b8785a50, 0 0 100px 30px #b8785a30; } 100% { box-shadow: 0 0 30px 10px #b8785a30, 0 0 60px 20px #b8785a10; } }

/* ========== plea-to-christians ========== */
.scn-plea-to-christians {
  background: 
    radial-gradient(ellipse at 50% 30%, #4a3a2a 0%, #1a1814 80%),
    linear-gradient(0deg, #14100c 0%, #2a2018 100%);
}
.scn-plea-to-christians .backdrop { position:absolute; inset:0; background: linear-gradient(0deg, #1a1410 0%, #2e2218 50%, #1c1612 100%); }
.scn-plea-to-christians .window { position:absolute; top:10%; left:50%; width:80px; height:120px; transform: translateX(-50%); background: radial-gradient(ellipse at center, #e8c070 0%, #b89050 60%, transparent 100%); border-radius: 10%; box-shadow: 0 0 60px 20px #b8905060, 0 0 120px 40px #b8905030; animation: pchr-window 5s ease-in-out infinite alternate; }
.scn-plea-to-christians .figure-silhouette { position:absolute; bottom:20%; left:50%; width:60px; height:140px; transform: translateX(-50%); background: linear-gradient(180deg, #14100e 0%, #0a0806 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: pchr-figure 3s ease-in-out infinite; }
.scn-plea-to-christians .arms { position:absolute; bottom:60%; left:50%; width:80px; height:20px; transform: translate(-50%,0); background: linear-gradient(90deg, #1a1412 0%, #0e0a08 100%); border-radius: 40%; clip-path: polygon(0 0,100% 0,90% 100%,10% 100%); animation: pchr-arms 2s ease-in-out infinite alternate; }
.scn-plea-to-christians .chain-link { position:absolute; bottom:28%; left:40%; width:20px; height:60px; background: repeating-linear-gradient(0deg, #4a3a2a 0px, #4a3a2a 4px, transparent 4px, transparent 8px); opacity: .6; transform: rotate(15deg); animation: pchr-chain 4s ease-in-out infinite; }
.scn-plea-to-christians .light-ray { position:absolute; top:0; left:30%; width:40%; height:100%; background: linear-gradient(180deg, rgba(200,160,80,.25) 0%, transparent 80%); pointer-events: none; animation: pchr-ray 6s ease-in-out infinite alternate; }
@keyframes pchr-window { 0% { opacity: .8; transform: translateX(-50%) scale(1); } 50% { opacity: 1; transform: translateX(-50%) scale(1.02); } 100% { opacity: .8; transform: translateX(-50%) scale(1); } }
@keyframes pchr-figure { 0% { transform: translateX(-50%) translateY(0) rotate(0deg); } 50% { transform: translateX(-50%) translateY(-3px) rotate(2deg); } 100% { transform: translateX(-50%) translateY(0) rotate(0deg); } }
@keyframes pchr-arms { 0% { transform: translate(-50%,0) rotate(-5deg) scaleY(1); } 50% { transform: translate(-50%,0) rotate(5deg) scaleY(1.1); } 100% { transform: translate(-50%,0) rotate(-5deg) scaleY(1); } }
@keyframes pchr-chain { 0% { transform: rotate(15deg) translateY(0); } 50% { transform: rotate(18deg) translateY(-2px); } 100% { transform: rotate(15deg) translateY(0); } }
@keyframes pchr-ray { 0% { opacity: .3; } 50% { opacity: .7; } 100% { opacity: .3; } }

/* ========== parents-and-children-parting ========== */
.scn-parents-and-children-parting {
  background: 
    radial-gradient(ellipse at 40% 50%, #3a2a1e 0%, #14100c 80%),
    linear-gradient(0deg, #0e0a08 0%, #221a14 100%);
}
.scn-parents-and-children-parting .floor { position:absolute; bottom:0; left:0; width:100%; height:30%; background: linear-gradient(180deg, #2a1e14 0%, #1a120e 100%); border-radius: 20% 20% 0 0; }
.scn-parents-and-children-parting .wall { position:absolute; left:0; top:0; width:100%; height:70%; background: linear-gradient(180deg, #2a221a 0%, #1e1610 100%); }
.scn-parents-and-children-parting .mother { position:absolute; left:25%; bottom:30%; width:40px; height:100px; background: linear-gradient(180deg, #3a2a1a 0%, #1e1410 100%); border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%; transform: rotate(5deg); animation: papc-mother 4s ease-in-out infinite; }
.scn-parents-and-children-parting .child { position:absolute; left:35%; bottom:30%; width:28px; height:60px; background: linear-gradient(180deg, #4a382a 0%, #2a1e14 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: papc-child 4s ease-in-out infinite alternate; }
.scn-parents-and-children-parting .guard { position:absolute; right:25%; bottom:30%; width:50px; height:120px; background: linear-gradient(180deg, #1e1a16 0%, #0a0806 100%); border-radius: 40% 40% 30% 30% / 70% 70% 30% 30%; transform: scaleX(-1); animation: papc-guard 6s ease-in-out infinite; }
.scn-parents-and-children-parting .chain { position:absolute; left:38%; bottom:40%; width:60px; height:6px; background: repeating-linear-gradient(90deg, #5a3e2a 0px, #5a3e2a 4px, transparent 4px, transparent 8px); transform: rotate(-20deg); animation: papc-chain 3s ease-in-out infinite alternate; }
.scn-parents-and-children-parting .lamp { position:absolute; top:15%; left:50%; width:16px; height:24px; transform: translateX(-50%); background: radial-gradient(circle, #d09050 0%, #a06030 70%); border-radius: 30% 30% 10% 10%; box-shadow: 0 0 40px 15px #d0905040, 0 0 80px 25px #d0905020; animation: papc-lamp 5s ease-in-out infinite alternate; }
@keyframes papc-mother { 0% { transform: rotate(5deg) translateY(0); } 50% { transform: rotate(3deg) translateY(-2px); } 100% { transform: rotate(5deg) translateY(0); } }
@keyframes papc-child { 0% { transform: translateX(0) translateY(0); } 50% { transform: translateX(3px) translateY(-2px); } 100% { transform: translateX(0) translateY(0); } }
@keyframes papc-guard { 0% { transform: scaleX(-1) translateY(0); } 50% { transform: scaleX(-1) translateY(-3px); } 100% { transform: scaleX(-1) translateY(0); } }
@keyframes papc-chain { 0% { transform: rotate(-20deg) translateX(0); } 50% { transform: rotate(-25deg) translateX(2px); } 100% { transform: rotate(-20deg) translateX(0); } }
@keyframes papc-lamp { 0% { box-shadow: 0 0 30px 10px #d0905030, 0 0 60px 20px #d0905010; } 50% { box-shadow: 0 0 60px 20px #d0905050, 0 0 120px 30px #d0905030; } 100% { box-shadow: 0 0 30px 10px #d0905030, 0 0 60px 20px #d0905010; } }

/* ========== carried-to-virginia ========== */
.scn-carried-to-virginia {
  background: 
    radial-gradient(ellipse at 50% 80%, #2a1e14 0%, #0e0a08 90%),
    linear-gradient(0deg, #14100c 0%, #221a14 100%);
}
.scn-carried-to-virginia .hold-back { position:absolute; inset:0; background: linear-gradient(180deg, #1c1410 0%, #0e0a08 100%); }
.scn-carried-to-virginia .hold-floor { position:absolute; bottom:0; left:0; width:100%; height:25%; background: linear-gradient(180deg, #2a1e14 0%, #1a120e 100%); border-radius: 10% 10% 0 0; }
.scn-carried-to-virginia .hatch-opening { position:absolute; top:0; left:50%; width:60px; height:40px; transform: translateX(-50%); background: radial-gradient(ellipse at center, #b09050 0%, #7a6030 60%, transparent 100%); border-radius: 0 0 30% 30%; box-shadow: 0 0 30px 10px #b0905040; animation: cavi-hatch 8s ease-in-out infinite alternate; }
.scn-carried-to-virginia .light-beam { position:absolute; top:30px; left:35%; width:30%; height:70%; background: linear-gradient(180deg, rgba(200,160,80,.15) 0%, transparent 100%); clip-path: polygon(30% 0,70% 0,85% 100%,15% 100%); animation: cavi-beam 10s ease-in-out infinite alternate; }
.scn-carried-to-virginia .figure-crouch { position:absolute; bottom:25%; left:50%; width:50px; height:90px; transform: translateX(-50%); background: linear-gradient(180deg, #1e1612 0%, #0a0806 100%); border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%; animation: cavi-figure 6s ease-in-out infinite; }
.scn-carried-to-virginia .chain-pile { position:absolute; bottom:15%; left:20%; width:40px; height:20px; background: repeating-linear-gradient(-30deg, #5a3e2a 0px, #5a3e2a 3px, transparent 3px, transparent 7px); border-radius: 40%; opacity: .5; transform: rotate(10deg); animation: cavi-chain 7s ease-in-out infinite alternate; }
@keyframes cavi-hatch { 0% { opacity: .7; transform: translateX(-50%) scale(1); } 50% { opacity: 1; transform: translateX(-50%) scale(1.02); } 100% { opacity: .7; transform: translateX(-50%) scale(1); } }
@keyframes cavi-beam { 0% { opacity: .3; transform: skewX(0deg); } 50% { opacity: .6; transform: skewX(3deg); } 100% { opacity: .3; transform: skewX(0deg); } }
@keyframes cavi-figure { 0% { transform: translateX(-50%) translateY(0) rotate(0deg); } 50% { transform: translateX(-50%) translateY(-3px) rotate(2deg); } 100% { transform: translateX(-50%) translateY(0) rotate(0deg); } }
@keyframes cavi-chain { 0% { transform: rotate(10deg) translateY(0); } 50% { transform: rotate(15deg) translateY(-2px); } 100% { transform: rotate(10deg) translateY(0); } }

.scn-petition-continues { background: linear-gradient(180deg, #3a2a1a 0%, #5a3a2a 60%, #2a1a0a 100%), radial-gradient(ellipse at 70% 50%, #b08040 0%, transparent 70%); }
.scn-petition-continues .room { position: absolute; inset: 30% 5% 0 5%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 4% 4% 0 0; }
.scn-petition-continues .window { position: absolute; top: 10%; left: 65%; width: 20%; height: 30%; background: linear-gradient(180deg, #1a2a3a 0%, #2a3a4a 100%); border: 4px solid #4a3a2a; border-radius: 6px; box-shadow: inset 0 0 20px rgba(180,120,60,.2); animation: pc-window 10s ease-in-out infinite alternate; }
.scn-petition-continues .desk { position: absolute; bottom: 15%; left: 20%; right: 20%; height: 10%; background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%); border-radius: 4px; box-shadow: 0 -4px 10px rgba(0,0,0,.5); }
.scn-petition-continues .candle { position: absolute; bottom: 35%; left: 55%; width: 8px; height: 30px; background: linear-gradient(180deg, #e0c080 0%, #a08050 100%); border-radius: 4px 4px 2px 2px; box-shadow: 0 0 30px 10px #ffa050; animation: pc-candle 4s ease-in-out infinite; }
.scn-petition-continues .figure-writer { position: absolute; bottom: 20%; left: 30%; width: 40px; 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: pc-writer 6s ease-in-out infinite; }
.scn-petition-continues .paper { position: absolute; bottom: 20%; left: 48%; width: 40px; height: 30px; background: linear-gradient(135deg, #f0e0c0 0%, #d0b080 100%); border-radius: 2px; transform: rotate(-5deg); box-shadow: 2px 2px 6px rgba(0,0,0,.4); animation: pc-paper 8s ease-in-out infinite; }
@keyframes pc-window { 0% { opacity: 0.6; } 50% { opacity: 0.9; } 100% { opacity: 0.5; } }
@keyframes pc-candle { 0% { transform: scaleY(1); opacity: 0.8; } 25% { transform: scaleY(0.95); opacity: 0.9; } 50% { transform: scaleY(1); opacity: 1; } 75% { transform: scaleY(0.95); opacity: 0.9; } 100% { transform: scaleY(1); opacity: 0.8; } }
@keyframes pc-writer { 0% { transform: translateX(0) rotate(-2deg); } 30% { transform: translateX(4px) rotate(1deg); } 60% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes pc-paper { 0% { transform: rotate(-5deg) scaleX(1); } 50% { transform: rotate(-3deg) scaleX(1.02); } 100% { transform: rotate(-5deg) scaleX(1); } }

.scn-petition-plea { background: linear-gradient(180deg, #4a2a1a 0%, #6a3a2a 60%, #2a1a0a 100%), radial-gradient(ellipse at 50% 40%, #c08040 0%, transparent 70%); }
.scn-petition-plea .desk-top { position: absolute; bottom: 0; left: 0; right: 0; height: 40%; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius: 20% 20% 0 0; }
.scn-petition-plea .document { position: absolute; bottom: 30%; left: 25%; width: 50%; height: 40%; background: linear-gradient(135deg, #f0d8b0 0%, #d0b080 100%); border-radius: 2px; box-shadow: 4px 4px 12px rgba(0,0,0,.4); transform: rotate(2deg); animation: pp-doc 12s ease-in-out infinite; }
.scn-petition-plea .quill { position: absolute; bottom: 45%; left: 40%; width: 6px; height: 60px; background: linear-gradient(180deg, #8a6a4a 0%, #c0a080 50%, #ffffff 100%); border-radius: 0 0 50% 50% / 0 0 100% 100%; transform-origin: bottom center; animation: pp-quill 3s ease-in-out infinite; }
.scn-petition-plea .hand { position: absolute; bottom: 35%; left: 30%; width: 30px; height: 40px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 50% 50% 50% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: pp-hand 4s ease-in-out infinite; }
.scn-petition-plea .inkwell { position: absolute; bottom: 25%; left: 60%; width: 20px; height: 16px; background: linear-gradient(180deg, #2a2a2a 0%, #0a0a0a 100%); border-radius: 50%; box-shadow: 0 2px 6px rgba(0,0,0,.6); }
.scn-petition-plea .candle { position: absolute; bottom: 35%; left: 15%; width: 8px; height: 40px; background: linear-gradient(180deg, #e8c880 0%, #a08050 100%); border-radius: 4px; box-shadow: 0 0 30px 10px #ffa050; animation: pp-candle 5s ease-in-out infinite; }
@keyframes pp-doc { 0% { transform: rotate(2deg) scale(1); } 50% { transform: rotate(0deg) scale(1.02); } 100% { transform: rotate(2deg) scale(1); } }
@keyframes pp-quill { 0% { transform: rotate(-10deg); } 25% { transform: rotate(-5deg); } 50% { transform: rotate(0deg); } 75% { transform: rotate(-5deg); } 100% { transform: rotate(-10deg); } }
@keyframes pp-hand { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(5px) rotate(5deg); } 50% { transform: translateX(10px) rotate(10deg); } 75% { transform: translateX(5px) rotate(5deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes pp-candle { 0% { transform: scaleY(1) translateY(0); opacity: 0.85; } 50% { transform: scaleY(0.92) translateY(-2px); opacity: 1; } 100% { transform: scaleY(1) translateY(0); opacity: 0.85; } }

.scn-petition-blessing { background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 50%, #0a0a1a 100%), radial-gradient(ellipse at 50% 0%, #f0e0c0 0%, transparent 60%); }
.scn-petition-blessing .wall-bg { position: absolute; inset: 0 0 30% 0; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 0 0 30% 30%; }
.scn-petition-blessing .floor { position: absolute; bottom: 0; left: 0; right: 0; height: 30%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); }
.scn-petition-blessing .shaft { position: absolute; top: 0; left: 35%; width: 30%; height: 60%; background: linear-gradient(180deg, rgba(255,235,200,0.8) 0%, rgba(255,200,150,0.1) 100%); mask-image: linear-gradient(180deg, transparent 0%, #fff 30%, #fff 70%, transparent 100%); animation: pb-shaft 8s ease-in-out infinite alternate; }
.scn-petition-blessing .figure-kneel { position: absolute; bottom: 25%; left: 40%; width: 40px; height: 60px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 60% 60% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pb-kneel 6s ease-in-out infinite; }
.scn-petition-blessing .hands-raised { position: absolute; bottom: 45%; left: 42%; width: 20px; height: 30px; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius: 50% 50% 40% 40%; transform: rotate(20deg); animation: pb-hands 4s ease-in-out infinite; }
.scn-petition-blessing .candle-floor { position: absolute; bottom: 18%; left: 30%; width: 6px; height: 20px; background: linear-gradient(180deg, #e0c080 0%, #a08050 100%); border-radius: 3px; box-shadow: 0 0 20px 6px #ffa050; animation: pb-candle 5s ease-in-out infinite; }
@keyframes pb-shaft { 0% { opacity: 0.5; transform: scaleY(0.9); } 50% { opacity: 1; transform: scaleY(1); } 100% { opacity: 0.7; transform: scaleY(1.05); } }
@keyframes pb-kneel { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes pb-hands { 0% { transform: rotate(20deg) translateX(0); } 50% { transform: rotate(25deg) translateX(5px); } 100% { transform: rotate(20deg) translateX(0); } }
@keyframes pb-candle { 0% { transform: scaleY(1); opacity: 0.8; } 30% { transform: scaleY(0.95); opacity: 0.9; } 60% { transform: scaleY(1.02); opacity: 1; } 100% { transform: scaleY(1); opacity: 0.8; } }

.scn-jamaica-act { background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%), radial-gradient(ellipse at 50% 50%, #6a4a2a 0%, transparent 80%); }
.scn-jamaica-act .table-top { position: absolute; inset: 10% 5% 5% 5%; background: linear-gradient(135deg, #5a3a2a 0%, #3a2a1a 100%); border-radius: 10px; box-shadow: inset 0 0 30px rgba(0,0,0,.5); }
.scn-jamaica-act .paper-left { position: absolute; top: 20%; left: 10%; width: 35%; height: 30%; background: linear-gradient(135deg, #f0d8b0 0%, #d0b080 100%); border-radius: 3px; transform: rotate(-8deg); box-shadow: 2px 2px 8px rgba(0,0,0,.4); animation: ja-paper 12s ease-in-out infinite; }
.scn-jamaica-act .paper-right { position: absolute; top: 25%; right: 10%; width: 35%; height: 35%; background: linear-gradient(135deg, #f0d8b0 0%, #d0b080 100%); border-radius: 3px; transform: rotate(6deg); box-shadow: 2px 2px 8px rgba(0,0,0,.4); animation: ja-paper 14s ease-in-out infinite reverse; }
.scn-jamaica-act .hand-left { position: absolute; top: 35%; left: 15%; width: 30px; height: 40px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 50% 50% 50% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: ja-hand-left 4s ease-in-out infinite; }
.scn-jamaica-act .hand-right { position: absolute; top: 30%; right: 20%; width: 30px; height: 40px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 50% 50% 50% 40% / 60% 60% 40% 40%; transform-origin: bottom; transform: scaleX(-1); animation: ja-hand-right 5s ease-in-out infinite; }
.scn-jamaica-act .candle { position: absolute; top: 8%; left: 45%; width: 8px; height: 40px; background: linear-gradient(180deg, #e8c880 0%, #a08050 100%); border-radius: 4px; box-shadow: 0 0 30px 10px #ffa050; animation: ja-candle 6s ease-in-out infinite; }
.scn-jamaica-act .quill { position: absolute; top: 15%; left: 48%; width: 4px; height: 50px; background: linear-gradient(180deg, #8a6a4a 0%, #c0a080 50%, #ffffff 100%); border-radius: 0 0 50% 50%; transform-origin: bottom center; transform: rotate(30deg); animation: ja-quill 3s ease-in-out infinite; }
.scn-jamaica-act .seal { position: absolute; top: 60%; left: 45%; width: 24px; height: 24px; background: radial-gradient(circle, #c8553d 0%, #a0461a 100%); border-radius: 50%; box-shadow: 0 0 8px rgba(200,85,61,.6); animation: ja-seal 10s ease-in-out infinite; }
@keyframes ja-paper { 0% { transform: rotate(-8deg) scale(1); } 50% { transform: rotate(-5deg) scale(1.02); } 100% { transform: rotate(-8deg) scale(1); } }
@keyframes ja-hand-left { 0% { transform: translate(0, 0) rotate(0deg); } 30% { transform: translate(5px, -5px) rotate(10deg); } 60% { transform: translate(10px, -10px) rotate(20deg); } 100% { transform: translate(0, 0) rotate(0deg); } }
@keyframes ja-hand-right { 0% { transform: scaleX(-1) translate(0, 0) rotate(0deg); } 30% { transform: scaleX(-1) translate(-5px, -5px) rotate(-10deg); } 60% { transform: scaleX(-1) translate(-10px, -10px) rotate(-20deg); } 100% { transform: scaleX(-1) translate(0, 0) rotate(0deg); } }
@keyframes ja-candle { 0% { transform: scaleY(1); opacity: 0.8; } 40% { transform: scaleY(0.9); opacity: 1; } 80% { transform: scaleY(1.02); opacity: 0.9; } 100% { transform: scaleY(1); opacity: 0.8; } }
@keyframes ja-quill { 0% { transform: rotate(30deg) scaleY(1); } 50% { transform: rotate(25deg) scaleY(0.95); } 100% { transform: rotate(30deg) scaleY(1); } }
@keyframes ja-seal { 0% { transform: scale(1); opacity: 0.8; } 50% { transform: scale(1.1); opacity: 1; } 100% { transform: scale(1); opacity: 0.8; } }

/* === one-blood (warm bright-interior, reading scene) === */
.scn-one-blood {
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 40%, #1a1208 100%),
              radial-gradient(ellipse at 30% 60%, #c08040 0%, transparent 70%);
}
.scn-one-blood .room-wall {
  position:absolute; inset:0; background: linear-gradient(180deg, #8a6a4a 0%, #5a3a1a 100%);
  animation: ob-wall 20s ease-in-out infinite alternate;
}
.scn-one-blood .window-frame {
  position:absolute; top:10%; left:15%; width:30%; height:40%;
  border:8px solid #3a2a1a; border-radius:6px; box-shadow:inset 0 0 40px rgba(255,200,120,.2);
  background: transparent;
}
.scn-one-blood .window-light {
  position:absolute; top:10%; left:15%; width:30%; height:40%;
  background: radial-gradient(ellipse, #ffe8b0 0%, #d0a060 60%, transparent 80%);
  opacity:.6; animation: ob-glow 5s ease-in-out infinite alternate;
}
.scn-one-blood .desk {
  position:absolute; bottom:8%; left:10%; width:60%; height:15%;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 4px; box-shadow: 0 6px 15px rgba(0,0,0,.6);
}
.scn-one-blood .book {
  position:absolute; bottom:18%; left:20%; width:30%; height:12%;
  background: linear-gradient(180deg, #b8996a 0%, #8a6a4a 100%);
  border-radius: 2px; transform: perspective(400px) rotateX(20deg);
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
}
.scn-one-blood .candle {
  position:absolute; bottom:18%; left:55%; width:6px; height:20%;
  background: linear-gradient(0deg, #c08040 0%, #f0e0c0 60%, #fff8e0 80%, transparent 100%);
  border-radius: 2px; box-shadow: 0 0 20px 10px #ffd080;
  animation: ob-candle 3s ease-in-out infinite alternate;
}
.scn-one-blood .reader-silhouette {
  position:absolute; bottom:4%; left:25%; width:16%; height:50%;
  background: linear-gradient(180deg, #1a1208 0%, #0a0804 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: ob-reader 12s ease-in-out infinite alternate;
}
.scn-one-blood .dust-mote {
  position:absolute; top:30%; left:40%; width:4px; height:4px;
  background: #ffe0a0; border-radius:50%; filter: blur(1px);
  animation: ob-dust 18s linear infinite;
}
@keyframes ob-wall { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes ob-glow { 0% { opacity:.5; transform: scale(1) } 50% { opacity:.8; transform: scale(1.05) } 100% { opacity:.6; transform: scale(1) } }
@keyframes ob-candle { 0% { transform: translateY(0) scaleY(1); opacity:.9 } 50% { transform: translateY(-4px) scaleY(1.1); opacity:1 } 100% { transform: translateY(0) scaleY(1); opacity:.95 } }
@keyframes ob-reader { 0% { transform: rotate(-2deg) scaleY(1) } 50% { transform: rotate(1deg) scaleY(1.02) } 100% { transform: rotate(0deg) scaleY(1) } }
@keyframes ob-dust { 0% { transform: translate(0,0) rotate(0deg); opacity:0 } 10% { opacity:1 } 90% { opacity:1 } 100% { transform: translate(-40px,-60px) rotate(360deg); opacity:0 } }

/* === second-chapter-heading (calm bright-interior, ship cabin) === */
.scn-second-chapter-heading {
  background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 50%, #2a1a0a 100%),
              radial-gradient(ellipse at 80% 60%, #c0a080 0%, transparent 60%);
}
.scn-second-chapter-heading .cabin-wall {
  position:absolute; inset:0; background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
}
.scn-second-chapter-heading .porthole {
  position:absolute; top:20%; right:10%; width:22%; height:28%;
  border:10px solid #2a1a0a; border-radius:50%;
  background: transparent; box-shadow:inset 0 0 30px rgba(200,180,140,.3);
}
.scn-second-chapter-heading .porthole-light {
  position:absolute; top:20%; right:10%; width:22%; height:28%;
  border-radius:50%;
  background: radial-gradient(circle, #f0e0c0 0%, #b0a080 40%, transparent 80%);
  opacity:.5; animation: sch-light 7s ease-in-out infinite alternate;
}
.scn-second-chapter-heading .bunk {
  position:absolute; bottom:8%; left:5%; width:60%; height:20%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 6px; box-shadow: 0 4px 8px rgba(0,0,0,.5);
}
.scn-second-chapter-heading .child-figure {
  position:absolute; bottom:15%; left:35%; width:12%; height:35%;
  background: linear-gradient(180deg, #1a1208 0%, #0a0804 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: sch-child 9s ease-in-out infinite;
}
.scn-second-chapter-heading .chain {
  position:absolute; bottom:30%; left:38%; width:3px; height:15%;
  background: #6a5a4a; border-radius:2px; box-shadow:0 2px 4px rgba(0,0,0,.3);
  animation: sch-chain 4s ease-in-out infinite alternate;
}
.scn-second-chapter-heading .water-reflection {
  position:absolute; bottom:0; left:0; right:0; height:20%;
  background: linear-gradient(0deg, #3a4a5a 0%, transparent 70%);
  opacity:.4; animation: sch-water 12s ease-in-out infinite alternate;
}
@keyframes sch-light { 0% { opacity:.4; transform: scale(1) } 50% { opacity:.7; transform: scale(1.1) } 100% { opacity:.5; transform: scale(1) } }
@keyframes sch-child { 0% { transform: translateX(0) rotate(-3deg) } 25% { transform: translateX(4px) rotate(1deg) } 50% { transform: translateX(0) rotate(2deg) } 75% { transform: translateX(-4px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes sch-chain { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(3px) rotate(5deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes sch-water { 0% { opacity:.3; background-position: 0 0 } 50% { opacity:.5; background-position: 10% 0 } 100% { opacity:.4; background-position: 0 0 } }

/* === introduction-to-childhood (warm bright-interior, hearth scene) === */
.scn-introduction-to-childhood {
  background: linear-gradient(180deg, #5a2a0a 0%, #3a1a0a 40%, #1a0a04 100%),
              radial-gradient(ellipse at 50% 70%, #c06020 0%, transparent 60%);
}
.scn-introduction-to-childhood .hearth-wall {
  position:absolute; inset:0; background: linear-gradient(180deg, #6a3a1a 0%, #4a2a0a 100%);
}
.scn-introduction-to-childhood .fireplace {
  position:absolute; bottom:0; left:20%; width:60%; height:45%;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0804 100%);
  border-radius: 60% 60% 0 0 / 80% 80% 0 0;
  box-shadow: inset 0 20px 40px rgba(0,0,0,.7);
}
.scn-introduction-to-childhood .fire-glow {
  position:absolute; bottom:10%; left:30%; width:40%; height:30%;
  background: radial-gradient(ellipse, #ff8030 0%, #c04010 40%, transparent 70%);
  animation: ic-fire 2s ease-in-out infinite alternate;
}
.scn-introduction-to-childhood .armchair {
  position:absolute; bottom:8%; left:5%; width:25%; height:30%;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 10% 10%;
  box-shadow: 0 8px 15px rgba(0,0,0,.5);
}
.scn-introduction-to-childhood .parent-silhouette {
  position:absolute; bottom:12%; left:7%; width:20%; height:60%;
  background: linear-gradient(180deg, #1a0a04 0%, #0a0400 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: ic-parent 15s ease-in-out infinite;
}
.scn-introduction-to-childhood .child-silhouette {
  position:absolute; bottom:10%; left:2%; width:10%; height:30%;
  background: #0a0400;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ic-child 8s ease-in-out infinite alternate;
}
.scn-introduction-to-childhood .woven-basket {
  position:absolute; bottom:8%; right:15%; width:15%; height:12%;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
}
.scn-introduction-to-childhood .clay-pot {
  position:absolute; bottom:8%; right:5%; width:10%; height:15%;
  background: linear-gradient(180deg, #c08040 0%, #8a6020 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  box-shadow: 0 4px 6px rgba(0,0,0,.4);
}
@keyframes ic-fire { 0% { transform: scale(1); opacity:.8 } 50% { transform: scale(1.15); opacity:1 } 100% { transform: scale(1); opacity:.85 } }
@keyframes ic-parent { 0% { transform: rotate(-1deg) translateY(0) } 25% { transform: rotate(1deg) translateY(-2px) } 50% { transform: rotate(0deg) translateY(0) } 75% { transform: rotate(-2deg) translateY(-1px) } 100% { transform: rotate(0deg) translateY(0) } }
@keyframes ic-child { 0% { transform: rotate(0deg) scaleY(1) } 50% { transform: rotate(3deg) scaleY(1.05) } 100% { transform: rotate(0deg) scaleY(1) } }

/* === family-and-favoritism (warm bright-interior, crowded hut) === */
.scn-family-and-favoritism {
  background: linear-gradient(180deg, #4a2a0a 0%, #2a1a0a 50%, #0a0602 100%),
              radial-gradient(ellipse at 60% 50%, #c06020 0%, transparent 60%);
}
.scn-family-and-favoritism .hut-wall {
  position:absolute; inset:0; background: linear-gradient(180deg, #5a3a1a 0%, #3a1a0a 100%);
}
.scn-family-and-favoritism .cooking-fire {
  position:absolute; bottom:5%; left:35%; width:20%; height:25%;
  background: radial-gradient(ellipse, #ff8030 0%, #c04010 30%, #8a2000 60%, transparent 80%);
  border-radius: 50%; animation: ff-fire 2.5s ease-in-out infinite alternate;
}
.scn-family-and-favoritism .fire-light {
  position:absolute; bottom:0; left:0; right:0; height:40%;
  background: linear-gradient(0deg, rgba(255,128,48,.15) 0%, transparent 100%);
  animation: ff-firelight 4s ease-in-out infinite alternate;
}
.scn-family-and-favoritism .long-table {
  position:absolute; bottom:12%; left:5%; width:90%; height:8%;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 4px; box-shadow: 0 6px 12px rgba(0,0,0,.5);
}
.scn-family-and-favoritism .adult-figures {
  position:absolute; bottom:20%; left:10%; width:25%; height:50%;
  background: linear-gradient(180deg, #0a0602 0%, #040200 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ff-adult 10s ease-in-out infinite;
}
.scn-family-and-favoritism .child-figures {
  position:absolute; bottom:15%; left:38%; width:15%; height:35%;
  background: #040200;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ff-child 6s ease-in-out infinite alternate;
}
.scn-family-and-favoritism .baby-cradle {
  position:absolute; bottom:10%; right:10%; width:18%; height:16%;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 40% 40% / 30% 30% 50% 50%;
  box-shadow: 0 4px 6px rgba(0,0,0,.4);
}
.scn-family-and-favoritism .hanging-lantern {
  position:absolute; top:10%; left:50%; width:8px; height:15%;
  background: linear-gradient(180deg, #c08040 0%, #e0a060 40%, #f0c080 60%, transparent 80%);
  border-radius: 4px; box-shadow: 0 0 30px 10px #ffd080;
  animation: ff-lantern 5s ease-in-out infinite alternate;
}
@keyframes ff-fire { 0% { transform: scale(1); opacity:.8 } 50% { transform: scale(1.2); opacity:1 } 100% { transform: scale(1); opacity:.9 } }
@keyframes ff-firelight { 0% { opacity:.5 } 50% { opacity:.8 } 100% { opacity:.6 } }
@keyframes ff-adult { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(3px) rotate(1deg) } 50% { transform: translateX(6px) rotate(0deg) } 75% { transform: translateX(3px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes ff-child { 0% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-1px) rotate(3deg) } 50% { transform: translateY(0) rotate(0deg) } 75% { transform: translateY(-1px) rotate(-3deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes ff-lantern { 0% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(5deg) translateY(-3px) } 100% { transform: rotate(-3deg) translateY(0) } }

/* subscriber-list-k */
.scn-subscriber-list-k {
  background: linear-gradient(180deg, #fef6e4 0%, #f5e6d0 40%, #e3d0b0 100%),
              radial-gradient(ellipse at 80% 20%, #fff5e0 0%, transparent 70%);
}
.scn-subscriber-list-k .book-spine {
  position: absolute; bottom: 40%; left: 30%; width: 8%; height: 30%;
  background: linear-gradient(90deg, #b8a080, #d4c0a0);
  border-radius: 4px; box-shadow: 2px 0 6px rgba(0,0,0,0.15);
  animation: k-book 8s ease-in-out infinite alternate;
}
.scn-subscriber-list-k .book-page {
  position: absolute; bottom: 38%; left: 32%; width: 36%; height: 34%;
  background: linear-gradient(135deg, #fcf3e0, #f0e0c8);
  border-radius: 2px 8px 8px 2px;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.05), 4px 4px 12px rgba(0,0,0,0.1);
  transform-origin: left center;
  animation: k-page 12s ease-in-out infinite alternate;
}
.scn-subscriber-list-k .text-lines {
  position: absolute; bottom: 42%; left: 35%; width: 28%; height: 26%;
  background: repeating-linear-gradient(0deg, #5a4a3a 0px, #5a4a3a 2px, transparent 2px, transparent 6px);
  opacity: 0.4;
  animation: k-text 6s ease-in-out infinite alternate;
}
.scn-subscriber-list-k .quill {
  position: absolute; bottom: 44%; left: 62%; width: 3%; height: 18%;
  background: linear-gradient(180deg, #e8dcc0 0%, #c4b096 100%);
  border-radius: 50% 50% 10% 10% / 80% 80% 20% 20%;
  transform-origin: bottom center;
  animation: k-quill 4s ease-in-out infinite;
}
.scn-subscriber-list-k .inkwell {
  position: absolute; bottom: 36%; left: 58%; width: 6%; height: 8%;
  background: radial-gradient(circle at 50% 30%, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
}
.scn-subscriber-list-k .desk-surface {
  position: absolute; bottom: 30%; left: 10%; right: 10%; height: 12%;
  background: linear-gradient(180deg, #c8b898, #a89478);
  border-radius: 4px;
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.1);
}
.scn-subscriber-list-k .candle-body {
  position: absolute; bottom: 32%; left: 20%; width: 3%; height: 14%;
  background: linear-gradient(180deg, #f0e0c8, #d4c0a8);
  border-radius: 4px 4px 2px 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
}
.scn-subscriber-list-k .candle-flame {
  position: absolute; bottom: 46%; left: 20.5%; width: 2%; height: 8%;
  background: radial-gradient(circle at 50% 20%, #fff5d0 0%, #f0a040 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 12px 4px #f0a040, 0 0 24px 8px rgba(240,160,64,0.3);
  animation: k-flame 2s ease-in-out infinite alternate;
}
@keyframes k-book { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes k-page { 0% { transform: rotateY(0deg); } 50% { transform: rotateY(-6deg); } 100% { transform: rotateY(0deg); } }
@keyframes k-text { 0% { opacity: 0.35; } 50% { opacity: 0.5; } 100% { opacity: 0.35; } }
@keyframes k-quill { 0%,100% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(2deg) translateY(-4px); } }
@keyframes k-flame { 0% { transform: scaleY(0.9) translateY(0); opacity: 0.9; } 50% { transform: scaleY(1.1) translateY(-2px); opacity: 1; } 100% { transform: scaleY(0.95) translateY(0); opacity: 0.85; } }

/* subscriber-list-l */
.scn-subscriber-list-l {
  background: linear-gradient(180deg, #f5efe5 0%, #e8dcc8 60%, #d0b898 100%),
              radial-gradient(ellipse at 60% 30%, #fff8e0 0%, transparent 60%);
}
.scn-subscriber-list-l .window-frame {
  position: absolute; top: 10%; left: 10%; width: 30%; height: 50%;
  background: linear-gradient(180deg, #c4b4a0, #a89880);
  border-radius: 4px;
  box-shadow: inset 0 0 8px rgba(0,0,0,0.2);
}
.scn-subscriber-list-l .sunbeam {
  position: absolute; top: 10%; left: 20%; width: 20%; height: 60%;
  background: linear-gradient(135deg, rgba(255,248,224,0.4) 0%, transparent 100%);
  clip-path: polygon(0 0, 100% 0, 60% 100%, 0 100%);
  animation: l-beam 20s ease-in-out infinite alternate;
}
.scn-subscriber-list-l .bookshelf {
  position: absolute; top: 20%; right: 8%; width: 25%; height: 70%;
  background: linear-gradient(90deg, #8a7a6a, #6a5a4a);
  border-radius: 4px;
  box-shadow: -4px 0 8px rgba(0,0,0,0.15);
}
.scn-subscriber-list-l .books {
  position: absolute; top: 22%; right: 11%; width: 18%; height: 64%;
  background: repeating-linear-gradient(0deg, #d4c0a8, #d4c0a8 6px, #b8a088 6px, #b8a088 12px, #c8b898 12px, #c8b898 18px);
  border-radius: 2px;
  box-shadow: inset 2px 0 4px rgba(0,0,0,0.1);
  animation: l-books 30s linear infinite alternate;
}
.scn-subscriber-list-l .desk {
  position: absolute; bottom: 20%; left: 20%; width: 50%; height: 14%;
  background: linear-gradient(180deg, #b8a088, #9a8870);
  border-radius: 6px;
  box-shadow: 0 6px 12px rgba(0,0,0,0.2);
}
.scn-subscriber-list-l .chair {
  position: absolute; bottom: 18%; left: 45%; width: 12%; height: 20%;
  background: linear-gradient(180deg, #6a5a4a, #4a3a2a);
  border-radius: 20% 20% 10% 10% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: l-chair 10s ease-in-out infinite alternate;
}
.scn-subscriber-list-l .papers {
  position: absolute; bottom: 24%; left: 30%; width: 30%; height: 8%;
  background: linear-gradient(135deg, #fcf3e0, #f0e0c8);
  border-radius: 2px;
  box-shadow: 2px 2px 6px rgba(0,0,0,0.1);
  animation: l-papers 8s ease-in-out infinite alternate;
}
.scn-subscriber-list-l .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #c8b8a0, #b0a088);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
}
@keyframes l-beam { 0% { transform: translateX(-5px) scaleX(0.95); opacity: 0.6; } 50% { transform: translateX(5px) scaleX(1.05); opacity: 1; } 100% { transform: translateX(-3px) scaleX(0.98); opacity: 0.7; } }
@keyframes l-books { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
@keyframes l-chair { 0% { transform: rotate(-1deg) translateY(0); } 50% { transform: rotate(1deg) translateY(-2px); } 100% { transform: rotate(-0.5deg) translateY(0); } }
@keyframes l-papers { 0% { transform: scale(1) translateX(0); } 50% { transform: scale(1.01) translateX(2px); } 100% { transform: scale(1) translateX(-1px); } }

/* subscriber-list-m */
.scn-subscriber-list-m {
  background: linear-gradient(180deg, #f8f0e4 0%, #ede0cc 50%, #d8c8b0 100%),
              radial-gradient(ellipse at 50% 40%, #fff8e8 0%, transparent 60%);
}
.scn-subscriber-list-m .desk-top {
  position: absolute; bottom: 20%; left: 5%; right: 5%; height: 50%;
  background: linear-gradient(135deg, #c8b898, #a89478);
  border-radius: 6px;
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.15), 0 8px 16px rgba(0,0,0,0.2);
}
.scn-subscriber-list-m .letters {
  position: absolute; bottom: 55%; left: 20%; width: 40%; height: 18%;
  background: linear-gradient(135deg, #fcf3e0, #f0e0c8);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.1);
  transform: rotate(-4deg);
  animation: m-letters 12s ease-in-out infinite alternate;
}
.scn-subscriber-list-m .magnifying-glass {
  position: absolute; bottom: 50%; left: 60%; width: 12%; height: 10%;
  background: radial-gradient(circle at 50% 40%, #b8d8f0 60%, #d0e4f4 61%, #e0ecf8 70%, transparent 80%);
  border: 2px solid #8a7a6a;
  border-radius: 50%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.2);
  animation: m-glass 8s ease-in-out infinite;
}
.scn-subscriber-list-m .seal {
  position: absolute; bottom: 58%; left: 30%; width: 6%; height: 8%;
  background: radial-gradient(circle at 40% 30%, #c8553d, #a0461a);
  border-radius: 50%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
  animation: m-seal 6s ease-in-out infinite alternate;
}
.scn-subscriber-list-m .lamp-glow {
  position: absolute; bottom: 60%; left: 75%; width: 10%; height: 20%;
  background: radial-gradient(circle at 50% 40%, #fff5d0 0%, #f0c080 40%, transparent 70%);
  box-shadow: 0 0 30px 10px rgba(240,192,128,0.4);
  animation: m-lamp 4s ease-in-out infinite alternate;
}
.scn-subscriber-list-m .lamp-base {
  position: absolute; bottom: 55%; left: 77%; width: 6%; height: 15%;
  background: linear-gradient(180deg, #8a7a6a, #5a4a3a);
  border-radius: 10% 10% 4% 4%;
  transform: rotate(-8deg);
}
.scn-subscriber-list-m .shadow-left {
  position: absolute; bottom: 20%; left: 0; width: 50%; height: 30%;
  background: linear-gradient(90deg, rgba(0,0,0,0.1), transparent);
}
.scn-subscriber-list-m .shadow-right {
  position: absolute; bottom: 20%; right: 0; width: 50%; height: 30%;
  background: linear-gradient(270deg, rgba(0,0,0,0.08), transparent);
}
@keyframes m-letters { 0% { transform: rotate(-4deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-2px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes m-glass { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(8px) rotate(10deg); } 50% { transform: translateX(0) rotate(5deg); } 75% { transform: translateX(-6px) rotate(-5deg); } }
@keyframes m-seal { 0% { transform: scale(1) translateY(0); } 50% { transform: scale(1.05) translateY(-2px); } 100% { transform: scale(0.98) translateY(0); } }
@keyframes m-lamp { 0% { opacity: 0.85; transform: scaleY(0.95); } 50% { opacity: 1; transform: scaleY(1.05); } 100% { opacity: 0.9; transform: scaleY(0.98); } }

/* subscriber-list-n-o */
.scn-subscriber-list-n-o {
  background: linear-gradient(180deg, #f0e8dc 0%, #e0d4c0 50%, #c8b8a0 100%),
              radial-gradient(ellipse at 30% 60%, #fff8e8 0%, transparent 60%);
}
.scn-subscriber-list-n-o .wall {
  position: absolute; inset: 0 50% 0 0;
  background: linear-gradient(135deg, #e8dcc8, #d4c0a8);
  border-right: 2px solid #b0a088;
}
.scn-subscriber-list-n-o .picture-frame {
  position: absolute; top: 15%; left: 5%; width: 30%; height: 35%;
  background: linear-gradient(135deg, #8a7a6a, #6a5a4a);
  border-radius: 4px;
  box-shadow: 2px 2px 8px rgba(0,0,0,0.2);
}
.scn-subscriber-list-n-o .globe {
  position: absolute; bottom: 50%; right: 20%; width: 18%; height: 20%;
  background: radial-gradient(circle at 40% 30%, #6a8a7a 0%, #4a6a5a 60%, #3a5a4a 100%);
  border-radius: 50%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
  transform: rotate(-20deg);
  animation: no-globe 30s linear infinite;
}
.scn-subscriber-list-n-o .book-pile {
  position: absolute; bottom: 25%; right: 8%; width: 22%; height: 25%;
  background: repeating-linear-gradient(0deg, #8a7a6a 0px, #8a7a6a 4px, #b8a088 4px, #b8a088 8px, #6a5a4a 8px, #6a5a4a 12px);
  border-radius: 4px;
  box-shadow: 4px 4px 8px rgba(0,0,0,0.2);
  animation: no-pile 8s ease-in-out infinite alternate;
}
.scn-subscriber-list-n-o .standing-lamp {
  position: absolute; bottom: 20%; left: 10%; width: 4%; height: 40%;
  background: linear-gradient(180deg, #8a7a6a, #5a4a3a);
  border-radius: 4px;
  transform: rotate(2deg);
}
.scn-subscriber-list-n-o .rug {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 18%;
  background: linear-gradient(135deg, #b8a088 0%, #a89078 50%, #9a7a64 100%);
  border-radius: 30% 30% 0 0 / 40% 40% 0 0;
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.1);
  animation: no-rug 12s ease-in-out infinite alternate;
}
.scn-subscriber-list-n-o .shadow-corner {
  position: absolute; bottom: 0; right: 0; width: 30%; height: 20%;
  background: linear-gradient(135deg, transparent, rgba(0,0,0,0.08));
}
@keyframes no-globe { 0% { transform: rotate(-20deg) translateY(0); } 50% { transform: rotate(20deg) translateY(-2px); } 100% { transform: rotate(-20deg) translateY(0); } }
@keyframes no-pile { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-3px) scale(1.01); } 100% { transform: translateY(0) scale(1); } }
@keyframes no-rug { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(1); } }

/* snake-fears: dark moonlit forest */
.scn-snake-fears {
  background: 
    linear-gradient(180deg, #0d0d2b 0%, #1a1a3e 30%, #14142e 70%, #080818 100%),
    radial-gradient(ellipse at 70% 10%, #2a3a4a 0%, transparent 50%),
    radial-gradient(ellipse at 30% 20%, #334455 0%, transparent 30%);
}
.scn-snake-fears .moon {
  position: absolute; top: 8%; left: 72%; width: 50px; height: 50px;
  background: radial-gradient(circle, #d0d8e0 0%, #b0b8c0 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 10px rgba(180,190,200,0.3), 0 0 80px 20px rgba(160,170,180,0.15);
  animation: sf-moon 14s ease-in-out infinite alternate;
}
.scn-snake-fears .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #1a1a2e 0%, #0f0f1a 100%);
  border-radius: 20% 40% 0 0 / 30% 50% 0 0;
}
.scn-snake-fears .tree-left {
  position: absolute; bottom: 30%; left: 10%; width: 18px; height: 55%;
  background: linear-gradient(180deg, #2a2a3a 0%, #15151e 100%);
  border-radius: 30% 30% 0 0;
  transform: scale(0.9) rotate(2deg);
}
.scn-snake-fears .tree-right {
  position: absolute; bottom: 28%; right: 15%; width: 14px; height: 60%;
  background: linear-gradient(180deg, #22223a 0%, #12121a 100%);
  border-radius: 40% 40% 0 0;
  transform: scale(0.85) rotate(-3deg);
}
.scn-snake-fears .snake1 {
  position: absolute; bottom: 36%; left: 28%; width: 60px; height: 8px;
  background: linear-gradient(90deg, #3a4a3a 0%, #2a3a2a 50%, #3a4a3a 100%);
  border-radius: 50%;
  filter: blur(1px);
  animation: sf-slither1 7s ease-in-out infinite;
}
.scn-snake-fears .snake2 {
  position: absolute; bottom: 34%; left: 55%; width: 45px; height: 6px;
  background: linear-gradient(90deg, #2a3a2a 0%, #1a2a1a 50%, #2a3a2a 100%);
  border-radius: 50%;
  filter: blur(1px);
  animation: sf-slither2 9s ease-in-out infinite 2s;
}
.scn-snake-fears .leaf1 {
  position: absolute; top: 35%; left: 40%; width: 30px; height: 14px;
  background: radial-gradient(ellipse, #43644c 0%, #1f3325 100%);
  border-radius: 50%;
  filter: blur(1px);
  animation: sf-leaf 12s linear infinite;
}
.scn-snake-fears .leaf2 {
  position: absolute; top: 42%; right: 30%; width: 25px; height: 10px;
  background: radial-gradient(ellipse, #3d5e45 0%, #1b2f21 100%);
  border-radius: 50%;
  filter: blur(1px);
  animation: sf-leaf 15s linear infinite 5s;
}
@keyframes sf-moon {
  0% { opacity: 0.85; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.02); }
  100% { opacity: 0.9; transform: scale(0.98); }
}
@keyframes sf-slither1 {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(8px) rotate(5deg); }
  50% { transform: translateX(15px) rotate(-3deg); }
  75% { transform: translateX(8px) rotate(4deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes sf-slither2 {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(-6px) rotate(-4deg); }
  50% { transform: translateX(-12px) rotate(2deg); }
  75% { transform: translateX(-6px) rotate(-3deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes sf-leaf {
  0% { transform: translateY(0) rotate(0deg) scale(1); opacity: 0.5; }
  50% { transform: translateY(-20px) rotate(15deg) scale(0.9); opacity: 0.8; }
  100% { transform: translateY(0) rotate(0deg) scale(1); opacity: 0.5; }
}

/* discovered-in-ashes: tense dawn interior */
.scn-discovered-in-ashes {
  background: 
    linear-gradient(180deg, #3a3a4a 0%, #4a4a5e 20%, #5a5a6e 40%, #4a4a5e 70%, #2a2a3a 100%),
    radial-gradient(ellipse at 80% 30%, #c8b090 0%, transparent 60%);
}
.scn-discovered-in-ashes .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #5a5a6e 0%, #4a4a5e 100%);
  border-bottom: 2px solid #3a3a4a;
}
.scn-discovered-in-ashes .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #3a3a2a 0%, #4a4a3a 100%);
  box-shadow: inset 0 8px 12px rgba(0,0,0,0.4);
}
.scn-discovered-in-ashes .fireplace {
  position: absolute; bottom: 20%; left: 15%; width: 100px; height: 80px;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 -12px 20px rgba(0,0,0,0.6);
}
.scn-discovered-in-ashes .ashes {
  position: absolute; bottom: 20%; left: 22%; width: 40px; height: 30px;
  background: radial-gradient(ellipse at 50% 100%, #a08870 0%, #504030 70%, transparent 100%);
  border-radius: 50%;
  animation: da-ashes 6s ease-in-out infinite alternate;
}
.scn-discovered-in-ashes .figure {
  position: absolute; bottom: 28%; left: 40%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 70%, #1a1a2a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: da-figure 4s ease-in-out infinite alternate;
}
.scn-discovered-in-ashes .window {
  position: absolute; bottom: 50%; right: 12%; width: 40px; height: 60px;
  border: 4px solid #2a2a3a;
  background: linear-gradient(180deg, #c0a080 0%, #e0c0a0 50%, #f0d0b0 100%);
  border-radius: 4px;
  box-shadow: 0 0 20px 6px rgba(200,160,100,0.3);
  animation: da-window 8s ease-in-out infinite alternate;
}
.scn-discovered-in-ashes .sunbeam {
  position: absolute; bottom: 30%; right: 10%; width: 80px; height: 200px;
  background: linear-gradient(180deg, rgba(240,200,160,0.25) 0%, transparent 100%);
  transform-origin: top right;
  animation: da-beam 10s ease-in-out infinite alternate;
  filter: blur(4px);
}
@keyframes da-ashes {
  0% { transform: scale(1); opacity: 0.6; }
  50% { transform: scale(1.05); opacity: 0.8; }
  100% { transform: scale(1); opacity: 0.7; }
}
@keyframes da-figure {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes da-window {
  0% { opacity: 0.8; box-shadow: 0 0 15px 4px rgba(200,160,100,0.2); }
  50% { opacity: 1; box-shadow: 0 0 30px 10px rgba(220,180,120,0.4); }
  100% { opacity: 0.9; box-shadow: 0 0 20px 6px rgba(200,160,100,0.3); }
}
@keyframes da-beam {
  0% { transform: rotate(-5deg) scaleY(1); opacity: 0.3; }
  50% { transform: rotate(2deg) scaleY(1.1); opacity: 0.5; }
  100% { transform: rotate(-5deg) scaleY(1); opacity: 0.3; }
}

/* daughter-dies-sale: dim interior, mourning */
.scn-daughter-dies-sale {
  background: 
    linear-gradient(180deg, #1a1a1e 0%, #2a2a32 30%, #1e1e26 60%, #14141a 100%),
    radial-gradient(ellipse at 50% 80%, #3a2a1a 0%, transparent 60%);
}
.scn-daughter-dies-sale .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #2a2a32 0%, #1e1e26 100%);
  border-bottom: 1px solid #1a1a1e;
}
.scn-daughter-dies-sale .bed {
  position: absolute; bottom: 25%; left: 20%; width: 120px; height: 50px;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-daughter-dies-sale .figure {
  position: absolute; bottom: 30%; left: 25%; width: 28px; height: 60px;
  background: linear-gradient(180deg, #3a3a44 0%, #2a2a34 70%, #1a1a24 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dd-figure 5s ease-in-out infinite alternate;
}
.scn-daughter-dies-sale .window {
  position: absolute; bottom: 50%; right: 15%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border: 3px solid #1a1a2a;
  border-radius: 2px;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.6);
}
.scn-daughter-dies-sale .candle {
  position: absolute; bottom: 42%; left: 45%; width: 12px; height: 40px;
  background: linear-gradient(180deg, #b08050 0%, #a07040 50%, #906030 100%);
  border-radius: 20% 20% 10% 10%;
  transform-origin: bottom center;
  animation: dd-candle 4s ease-in-out infinite;
}
.scn-daughter-dies-sale .shadow {
  position: absolute; bottom: 25%; left: 40%; width: 50px; height: 20px;
  background: radial-gradient(ellipse, rgba(10,10,15,0.6) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(6px);
  animation: dd-shadow 6s ease-in-out infinite alternate;
}
@keyframes dd-figure {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes dd-candle {
  0% { transform: scaleY(1) rotate(0deg); opacity: 0.7; }
  25% { transform: scaleY(1.02) rotate(1deg); opacity: 0.9; }
  50% { transform: scaleY(0.98) rotate(-1deg); opacity: 0.8; }
  75% { transform: scaleY(1.01) rotate(0.5deg); opacity: 0.9; }
  100% { transform: scaleY(1) rotate(0deg); opacity: 0.7; }
}
@keyframes dd-shadow {
  0% { transform: translateX(0) scale(1); }
  50% { transform: translateX(5px) scale(1.1); }
  100% { transform: translateX(0) scale(1); }
}

/* travelling-trade-route: sunlit calm road */
.scn-travelling-trade-route {
  background: 
    linear-gradient(180deg, #87ceeb 0%, #b0e0f0 30%, #f0e0c0 60%, #e0c090 100%),
    radial-gradient(ellipse at 60% 20%, #fff8e0 0%, transparent 50%);
}
.scn-travelling-trade-route .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #c0e8f0 0%, #e0f0f8 100%);
}
.scn-travelling-trade-route .road {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 35%;
  background: linear-gradient(180deg, #c8b090 0%, #b09870 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
}
.scn-travelling-trade-route .horizon {
  position: absolute; bottom: 45%; left: 0; right: 0; height: 10%;
  background: linear-gradient(180deg, #a0c0a0 0%, #80a080 100%);
  border-radius: 30% 70% 0 0 / 50% 50% 0 0;
}
.scn-travelling-trade-route .tree1 {
  position: absolute; bottom: 42%; left: 12%; width: 20px; height: 80px;
  background: linear-gradient(180deg, #4a7a3a 0%, #3a5a2a 100%);
  border-radius: 40% 40% 0 0;
  transform: scale(0.95);
  animation: tr-sway 8s ease-in-out infinite alternate;
}
.scn-travelling-trade-route .tree2 {
  position: absolute; bottom: 40%; right: 18%; width: 16px; height: 70px;
  background: linear-gradient(180deg, #3a6a3a 0%, #2a4a2a 100%);
  border-radius: 30% 30% 0 0;
  transform: scale(0.9);
  animation: tr-sway 10s ease-in-out infinite alternate-reverse;
}
.scn-travelling-trade-route .figure1 {
  position: absolute; bottom: 30%; left: 35%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #5a4a3a 0%, #4a3a2a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  animation: tr-walk 6s ease-in-out infinite;
}
.scn-travelling-trade-route .figure2 {
  position: absolute; bottom: 32%; left: 45%; width: 20px; height: 45px;
  background: linear-gradient(180deg, #4a5a3a 0%, #3a4a2a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  animation: tr-walk 7s ease-in-out infinite 3s;
}
.scn-travelling-trade-route .sun {
  position: absolute; top: 10%; left: 60%; width: 60px; height: 60px;
  background: radial-gradient(circle, #fff4d0 0%, #ffdd80 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px rgba(255,220,100,0.3), 0 0 120px 40px rgba(255,200,80,0.15);
  animation: tr-sun 20s ease-in-out infinite alternate;
}
@keyframes tr-sway {
  0% { transform: rotate(0deg) scale(0.95); }
  50% { transform: rotate(2deg) scale(0.96); }
  100% { transform: rotate(0deg) scale(0.95); }
}
@keyframes tr-walk {
  0% { transform: translateX(0) translateY(0) rotate(-1deg); }
  25% { transform: translateX(6px) translateY(-1px) rotate(1deg); }
  50% { transform: translateX(12px) translateY(0) rotate(-1deg); }
  75% { transform: translateX(6px) translateY(-1px) rotate(1deg); }
  100% { transform: translateX(0) translateY(0) rotate(-1deg); }
}
@keyframes tr-sun {
  0% { transform: translateY(0) scale(1); opacity: 0.9; }
  50% { transform: translateY(-10px) scale(1.02); opacity: 1; }
  100% { transform: translateY(0) scale(1); opacity: 0.9; }
}

/* philedelphia-venture */
.scn-philedelphia-venture { background: linear-gradient(180deg, #87ceeb 0%, #b0e0e6 40%, #f5deb3 80%), radial-gradient(ellipse at 50% 0%, #ffd700 0%, transparent 60%); height:100%; }
.scn-philedelphia-venture .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #87ceeb 0%, #b0e0e6 100%); animation: pv-sky 8s ease-in-out infinite alternate; }
.scn-philedelphia-venture .sun { position:absolute; top:10%; left:55%; width:60px; height:60px; background: radial-gradient(circle, #ffd700 0%, #ffa500 60%, transparent 80%); border-radius:50%; box-shadow: 0 0 80px 20px #ffd700; animation: pv-sun 4s ease-in-out infinite alternate; }
.scn-philedelphia-venture .water { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #4682b4 0%, #2e5b8a 100%); animation: pv-water 6s ease-in-out infinite alternate; }
.scn-philedelphia-venture .ship-hull { position:absolute; bottom:20%; left:15%; width:180px; height:60px; background: linear-gradient(180deg, #5c4033 0%, #3e2723 100%); border-radius: 0 0 40% 40% / 0 0 80% 80%; box-shadow: 0 8px 20px rgba(0,0,0,.3); animation: pv-hull 5s ease-in-out infinite; }
.scn-philedelphia-venture .mast { position:absolute; bottom:38%; left:25%; width:8px; height:100px; background: linear-gradient(180deg, #8b6914 0%, #5c4033 100%); border-radius: 10% 10% 20% 20%; transform-origin: bottom center; animation: pv-mast 7s ease-in-out infinite; }
.scn-philedelphia-venture .sail { position:absolute; bottom:42%; left:22%; width:50px; height:70px; background: linear-gradient(180deg, #f5deb3 0%, #d2b48c 100%); border-radius: 30% 30% 10% 10% / 40% 40% 20% 20%; transform-origin: top left; animation: pv-sail 3s ease-in-out infinite alternate; }
.scn-philedelphia-venture .dock { position:absolute; bottom:0; left:0; right:60%; height:25%; background: linear-gradient(180deg, #8b4513 0%, #5c4033 100%); border-radius: 0 20% 0 0; box-shadow: inset 0 -10px 20px rgba(0,0,0,.2); }
.scn-philedelphia-venture .figure { position:absolute; bottom:10%; left:30%; width:16px; height:40px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: pv-figure 4s ease-in-out infinite; }
@keyframes pv-sky { 0%{opacity:.8} 50%{opacity:1} 100%{opacity:.9} }
@keyframes pv-sun { 0%{transform:scale(1); box-shadow:0 0 60px 15px #ffd700} 50%{transform:scale(1.05); box-shadow:0 0 100px 30px #ffd700} 100%{transform:scale(1); box-shadow:0 0 70px 20px #ffd700} }
@keyframes pv-water { 0%{transform:translateY(0)} 50%{transform:translateY(-4px)} 100%{transform:translateY(0)} }
@keyframes pv-hull { 0%{transform:rotate(-1deg)} 50%{transform:rotate(1deg)} 100%{transform:rotate(-1deg)} }
@keyframes pv-mast { 0%{transform:rotate(-2deg)} 50%{transform:rotate(2deg)} 100%{transform:rotate(-2deg)} }
@keyframes pv-sail { 0%{transform:rotate(-5deg) scaleX(1)} 50%{transform:rotate(5deg) scaleX(0.95)} 100%{transform:rotate(-5deg)} }
@keyframes pv-figure { 0%{transform:translateX(0) rotate(0)} 25%{transform:translateX(8px) rotate(-3deg)} 50%{transform:translateX(0) rotate(0)} 75%{transform:translateX(-8px) rotate(3deg)} 100%{transform:translateX(0) rotate(0)} }

/* mrs-davis-revelation */
.scn-mrs-davis-revelation { background: linear-gradient(180deg, #2c1e16 0%, #4a2e1a 50%, #1a0f0a 100%), radial-gradient(ellipse at 50% 70%, #4a2e1a 0%, transparent 70%); height:100%; }
.scn-mrs-davis-revelation .room-bg { position:absolute; inset:0; background: linear-gradient(180deg, #2c1e16 0%, #1a0f0a 100%); animation: mdr-bg 10s ease-in-out infinite alternate; }
.scn-mrs-davis-revelation .table { position:absolute; bottom:15%; left:25%; right:25%; height:30%; background: linear-gradient(180deg, #5c4033 0%, #3e2723 100%); border-radius: 20% 20% 5% 5% / 40% 40% 10% 10%; box-shadow: 0 8px 30px rgba(0,0,0,.5); }
.scn-mrs-davis-revelation .candle { position:absolute; bottom:38%; left:40%; width:10px; height:40px; background: linear-gradient(180deg, #f5deb3 0%, #d2b48c 100%); border-radius: 20% 20% 5% 5%; animation: mdr-candle 2s ease-in-out infinite alternate; }
.scn-mrs-davis-revelation .candle-glow { position:absolute; bottom:44%; left:38%; width:30px; height:30px; background: radial-gradient(circle, #ffd700 0%, #ff8c00 50%, transparent 80%); border-radius:50%; box-shadow: 0 0 60px 30px #ff8c00; animation: mdr-glow 2s ease-in-out infinite alternate; }
.scn-mrs-davis-revelation .figure { position:absolute; bottom:10%; left:35%; width:20px; height:50px; background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mdr-figure 6s ease-in-out infinite; }
.scn-mrs-davis-revelation .book { position:absolute; bottom:20%; left:30%; width:30px; height:20px; background: linear-gradient(180deg, #8b4513 0%, #5c4033 100%); border-radius: 10% 10% 20% 20%; box-shadow: 0 2px 6px rgba(0,0,0,.4); transform: rotate(-10deg); }
.scn-mrs-davis-revelation .shadow { position:absolute; bottom:5%; left:20%; right:20%; height:20%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.6) 100%); border-radius:50%; filter: blur(10px); }
@keyframes mdr-bg { 0%{opacity:.8} 50%{opacity:1} 100%{opacity:.7} }
@keyframes mdr-candle { 0%{height:38px; opacity:.9} 50%{height:42px; opacity:1} 100%{height:38px; opacity:.9} }
@keyframes mdr-glow { 0%{box-shadow:0 0 40px 20px #ff8c00; opacity:.8} 50%{box-shadow:0 0 80px 40px #ffa500; opacity:1} 100%{box-shadow:0 0 50px 25px #ff8c00; opacity:.8} }
@keyframes mdr-figure { 0%{transform:rotate(2deg)} 25%{transform:rotate(-3deg) translateX(2px)} 50%{transform:rotate(1deg)} 75%{transform:rotate(-2deg)} 100%{transform:rotate(2deg)} }

/* fever-and-ague */
.scn-fever-and-ague { background: linear-gradient(180deg, #1a1a3e 0%, #2c2244 50%, #0a0a1a 100%), radial-gradient(ellipse at 50% 60%, #2c2244 0%, transparent 70%); height:100%; }
.scn-fever-and-ague .bedroom-bg { position:absolute; inset:0; background: linear-gradient(180deg, #1a1a3e 0%, #0a0a1a 100%); animation: fa-bg 8s ease-in-out infinite alternate; }
.scn-fever-and-ague .bed { position:absolute; bottom:10%; left:10%; right:10%; height:35%; background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%); border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%; box-shadow: 0 8px 30px rgba(0,0,0,.5); }
.scn-fever-and-ague .blanket { position:absolute; bottom:12%; left:12%; right:12%; height:25%; background: linear-gradient(180deg, #b0c4b0 0%, #8a9a8a 100%); border-radius: 20% 20% 60% 60% / 40% 40% 80% 80%; animation: fa-blanket 3s ease-in-out infinite alternate; }
.scn-fever-and-ague .figure { position:absolute; bottom:14%; left:20%; width:18px; height:50px; background: linear-gradient(180deg, #f5deb3 0%, #d2b48c 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fa-figure 2s ease-in-out infinite; }
.scn-fever-and-ague .pillow { position:absolute; bottom:38%; left:22%; width:30px; height:20px; background: linear-gradient(180deg, #f5f5dc 0%, #e8e0c0 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 2px 6px rgba(0,0,0,.3); }
.scn-fever-and-ague .sweat { position:absolute; top:30%; left:25%; width:4px; height:4px; background: #b0e0e6; border-radius:50%; box-shadow: 10px 5px 0 #b0e0e6, -8px 12px 0 #b0e0e6, 15px -3px 0 #b0e0e6, -5px 20px 0 #b0e0e6; animation: fa-sweat 4s ease-in-out infinite; }
.scn-fever-and-ague .window-light { position:absolute; top:5%; right:10%; width:40px; height:30px; background: radial-gradient(circle, rgba(176,224,230,.6) 0%, transparent 70%); border-radius: 10% 10% 20% 20%; animation: fa-light 5s ease-in-out infinite alternate; }
@keyframes fa-bg { 0%{opacity:.7} 50%{opacity:1} 100%{opacity:.8} }
@keyframes fa-blanket { 0%{transform:translateY(0)} 50%{transform:translateY(-5px)} 100%{transform:translateY(0)} }
@keyframes fa-figure { 0%{transform:rotate(-2deg) scale(1)} 25%{transform:rotate(3deg) scale(1.02)} 50%{transform:rotate(-2deg) scale(1)} 75%{transform:rotate(2deg) scale(0.98)} 100%{transform:rotate(-2deg) scale(1)} }
@keyframes fa-sweat { 0%{opacity:0; transform:translateY(0)} 50%{opacity:1; transform:translateY(-10px)} 100%{opacity:0; transform:translateY(-20px)} }
@keyframes fa-light { 0%{opacity:.3; box-shadow:0 0 20px 5px rgba(176,224,230,.3)} 50%{opacity:.8; box-shadow:0 0 40px 15px rgba(176,224,230,.5)} 100%{opacity:.4; box-shadow:0 0 25px 8px rgba(176,224,230,.3)} }

/* charleston-imposition */
.scn-charleston-imposition { background: linear-gradient(180deg, #87ceeb 0%, #b0e0e6 30%, #f5deb3 60%, #d2b48c 100%), radial-gradient(ellipse at 50% 0%, #ffd700 0%, transparent 40%); height:100%; }
.scn-charleston-imposition .sky { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #87ceeb 0%, #b0e0e6 100%); animation: ci-sky 10s ease-in-out infinite alternate; }
.scn-charleston-imposition .sun { position:absolute; top:5%; left:75%; width:70px; height:70px; background: radial-gradient(circle, #ffd700 0%, #ff8c00 50%, transparent 75%); border-radius:50%; box-shadow: 0 0 100px 30px #ffd700; animation: ci-sun 6s ease-in-out infinite alternate; }
.scn-charleston-imposition .sea { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #2e5b8a 0%, #1a3a5a 100%); animation: ci-sea 5s ease-in-out infinite alternate; }
.scn-charleston-imposition .ship { position:absolute; bottom:20%; left:10%; width:200px; height:50px; background: linear-gradient(180deg, #5c4033 0%, #3e2723 100%); border-radius: 0 0 30% 30% / 0 0 60% 60%; box-shadow: 0 8px 20px rgba(0,0,0,.4); animation: ci-ship 4s ease-in-out infinite; }
.scn-charleston-imposition .deck { position:absolute; bottom:22%; left:12%; right:10%; height:10%; background: linear-gradient(180deg, #8b4513 0%, #5c4033 100%); border-radius: 30% 30% 0 0; }
.scn-charleston-imposition .figures-row { position:absolute; bottom:24%; left:15%; right:15%; height:20%; display:flex; justify-content:space-between; }
.scn-charleston-imposition .figures-row:before, .scn-charleston-imposition .figures-row:after { content:''; width:12px; height:35px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; display:inline-block; animation: ci-figure 3s ease-in-out infinite; }
.scn-charleston-imposition .shadow-harsh { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.5) 100%); }
.scn-charleston-imposition .chain { position:absolute; bottom:30%; left:40%; width:60px; height:4px; background: #8b8b8b; border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,.3); animation: ci-chain 2s ease-in-out infinite; }
@keyframes ci-sky { 0%{opacity:.8} 50%{opacity:1} 100%{opacity:.9} }
@keyframes ci-sun { 0%{transform:scale(1); box-shadow:0 0 80px 20px #ffd700} 50%{transform:scale(1.1); box-shadow:0 0 120px 40px #ffd700} 100%{transform:scale(1); box-shadow:0 0 90px 25px #ffd700} }
@keyframes ci-sea { 0%{transform:translateY(0)} 50%{transform:translateY(-3px)} 100%{transform:translateY(0)} }
@keyframes ci-ship { 0%{transform:rotate(-1deg)} 50%{transform:rotate(1.5deg)} 100%{transform:rotate(-1deg)} }
@keyframes ci-figure { 0%{transform:translateY(0) rotate(0)} 25%{transform:translateY(-3px) rotate(2deg)} 50%{transform:translateY(0) rotate(0)} 75%{transform:translateY(2px) rotate(-2deg)} 100%{transform:translateY(0) rotate(0)} }
@keyframes ci-chain { 0%{transform:translateX(0)} 50%{transform:translateX(5px)} 100%{transform:translateX(0)} }

.scn-forced-into-barge {
  background: linear-gradient(180deg, #0b0b1a 0%, #1a1a3a 40%, #2a2a5a 100%),
              radial-gradient(ellipse at 50% 100%, #3a4a5a 0%, transparent 70%);
}
.scn-forced-into-barge .sky {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #0e0e2e 0%, #1a1a4a 100%);
  animation: fi-sky 8s ease-in-out infinite alternate;
}
.scn-forced-into-barge .water {
  position: absolute; bottom: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(0deg, #0a1a2a 0%, #122a3a 50%, #1a3a5a 100%);
  animation: fi-water 6s ease-in-out infinite alternate;
}
.scn-forced-into-barge .barge {
  position: absolute; bottom: 22%; left: 20%; width: 55%; height: 12%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1a0a 100%);
  border-radius: 0 0 40% 40% / 0 0 60% 60%;
  box-shadow: 0 4px 12px rgba(0,0,0,.6);
  animation: fi-barge 4s ease-in-out infinite;
}
.scn-forced-into-barge .figure-oarsman {
  position: absolute; bottom: 32%; left: 22%; width: 16px; height: 28px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1e 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: fi-rowing 2s ease-in-out infinite alternate;
}
.scn-forced-into-barge .figure-master {
  position: absolute; bottom: 33%; left: 55%; width: 18px; height: 32px;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fi-stand 3s ease-in-out infinite;
}
.scn-forced-into-barge .lantern {
  position: absolute; bottom: 38%; left: 45%; width: 8px; height: 10px;
  background: radial-gradient(circle, #f0a040 0%, #c07030 60%);
  border-radius: 20%;
  box-shadow: 0 0 20px 6px #f0a040, 0 0 40px 12px rgba(240,160,64,.4);
  animation: fi-lantern 3s ease-in-out infinite alternate;
}
.scn-forced-into-barge .mist {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 60%, rgba(200,220,255,0.05) 0%, transparent 70%);
  animation: fi-mist 12s ease-in-out infinite;
}
@keyframes fi-sky { 0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.6; } }
@keyframes fi-water { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(0); } }
@keyframes fi-barge { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes fi-rowing { 0% { transform: translateX(0) rotate(-8deg); } 100% { transform: translateX(5px) rotate(8deg); } }
@keyframes fi-stand { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes fi-lantern { 0% { box-shadow: 0 0 12px 3px #f0a040, 0 0 24px 6px rgba(240,160,64,.3); } 50% { box-shadow: 0 0 24px 8px #f0b050, 0 0 48px 16px rgba(240,176,80,.5); } 100% { box-shadow: 0 0 16px 4px #f0a040, 0 0 32px 8px rgba(240,160,64,.35); } }
@keyframes fi-mist { 0% { opacity: 0.2; } 50% { opacity: 0.5; } 100% { opacity: 0.2; } }

.scn-sold-to-captain-doran {
  background: linear-gradient(180deg, #10102e 0%, #20204a 40%, #30305a 100%),
              radial-gradient(ellipse at 50% 100%, #2a3a4a 0%, transparent 70%);
}
.scn-sold-to-captain-doran .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #0e0e2a 0%, #1a1a3a 100%);
  animation: sd-sky 10s ease-in-out infinite alternate;
}
.scn-sold-to-captain-doran .sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(0deg, #0a1a2a 0%, #122a3a 50%, #1a3a5a 100%);
  animation: sd-sea 5s ease-in-out infinite alternate;
}
.scn-sold-to-captain-doran .ship-left {
  position: absolute; bottom: 25%; left: 5%; width: 35%; height: 45%;
  background: linear-gradient(90deg, #2a1a1a 0%, #3a2a1a 50%, #2a1a1a 100%);
  border-radius: 0 20% 30% 0 / 0 40% 30% 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,.5);
  animation: sd-sway 8s ease-in-out infinite;
}
.scn-sold-to-captain-doran .ship-right {
  position: absolute; bottom: 25%; right: 5%; width: 35%; height: 45%;
  background: linear-gradient(90deg, #1a2a1a 0%, #2a3a2a 50%, #1a2a1a 100%);
  border-radius: 20% 0 0 30% / 40% 0 0 30%;
  box-shadow: inset 0 0 20px rgba(0,0,0,.5);
  animation: sd-sway 8s ease-in-out infinite reverse;
}
.scn-sold-to-captain-doran .gangplank {
  position: absolute; bottom: 42%; left: 38%; width: 24%; height: 4%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 2px;
  transform: rotate(-4deg);
  box-shadow: 0 2px 6px rgba(0,0,0,.5);
  animation: sd-plank 6s ease-in-out infinite;
}
.scn-sold-to-captain-doran .figure-boy {
  position: absolute; bottom: 40%; left: 48%; width: 14px; height: 26px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1e 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: sd-walk 4s ease-in-out infinite;
}
.scn-sold-to-captain-doran .figure-master {
  position: absolute; bottom: 41%; left: 55%; width: 18px; height: 32px;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sd-stand 5s ease-in-out infinite;
}
.scn-sold-to-captain-doran .lantern-left {
  position: absolute; bottom: 48%; left: 30%; width: 8px; height: 10px;
  background: radial-gradient(circle, #f0a040 0%, #c07030 60%);
  border-radius: 20%;
  box-shadow: 0 0 16px 5px #f0a040, 0 0 32px 10px rgba(240,160,64,.3);
  animation: sd-lantern 3s ease-in-out infinite alternate;
}
.scn-sold-to-captain-doran .lantern-right {
  position: absolute; bottom: 48%; right: 28%; width: 8px; height: 10px;
  background: radial-gradient(circle, #f0a040 0%, #c07030 60%);
  border-radius: 20%;
  box-shadow: 0 0 16px 5px #f0a040, 0 0 32px 10px rgba(240,160,64,.3);
  animation: sd-lantern 3s ease-in-out infinite alternate 1.5s;
}
@keyframes sd-sky { 0% { opacity: 0.6; } 50% { opacity: 0.9; } 100% { opacity: 0.7; } }
@keyframes sd-sea { 0% { transform: translateY(0); } 50% { transform: translateY(-5px); } 100% { transform: translateY(0); } }
@keyframes sd-sway { 0% { transform: rotate(-1deg); } 50% { transform: rotate(1deg); } 100% { transform: rotate(-1deg); } }
@keyframes sd-plank { 0% { transform: rotate(-4deg) translateY(0); } 50% { transform: rotate(-2deg) translateY(-2px); } 100% { transform: rotate(-4deg) translateY(0); } }
@keyframes sd-walk { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(8px) rotate(2deg); } 50% { transform: translateX(16px) rotate(-2deg); } 75% { transform: translateX(24px) rotate(2deg); } 100% { transform: translateX(32px) rotate(0deg); } }
@keyframes sd-stand { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes sd-lantern { 0% { box-shadow: 0 0 12px 3px #f0a040, 0 0 24px 6px rgba(240,160,64,.3); } 50% { box-shadow: 0 0 24px 8px #f0b050, 0 0 48px 16px rgba(240,176,80,.5); } 100% { box-shadow: 0 0 16px 4px #f0a040, 0 0 32px 8px rgba(240,160,64,.35); } }

.scn-despair-new-slavery {
  background: linear-gradient(180deg, #0a0a1a 0%, #151525 60%, #1a1a2a 100%),
              radial-gradient(ellipse at 50% 20%, #3a4a5a 0%, transparent 70%);
}
.scn-despair-new-slavery .wall {
  position: absolute; inset: 0 0 0 0;
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 40%, #2a2a3a 100%);
  animation: ds-wall 15s ease-in-out infinite alternate;
}
.scn-despair-new-slavery .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(0deg, #0a0a0a 0%, #1a1a1a 100%);
  box-shadow: inset 0 4px 12px rgba(0,0,0,.8);
}
.scn-despair-new-slavery .figure-crouch {
  position: absolute; bottom: 8%; left: 35%; width: 22px; height: 40px;
  background: linear-gradient(180deg, #0a0a14 0%, #1a1a2e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  transform: scale(0.8) translateX(0);
  animation: ds-crouch 4s ease-in-out infinite;
}
.scn-despair-new-slavery .shackle-anchor {
  position: absolute; bottom: 18%; left: 45%; width: 6px; height: 14px;
  background: linear-gradient(180deg, #6a5a3a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: 0 0 4px rgba(0,0,0,.5);
  animation: ds-shackle 6s ease-in-out infinite;
}
.scn-despair-new-slavery .window-light {
  position: absolute; top: 20%; left: 42%; width: 16px; height: 22px;
  background: radial-gradient(circle, #c0b080 0%, #a09060 60%);
  border-radius: 10% 10% 20% 20% / 20% 20% 30% 30%;
  box-shadow: 0 0 30px 10px rgba(192,176,128,0.4), 0 0 60px 20px rgba(192,176,128,0.15);
  animation: ds-window 5s ease-in-out infinite alternate;
}
.scn-despair-new-slavery .grate-shadow {
  position: absolute; top: 20%; left: 42%; width: 16px; height: 22px;
  background: repeating-linear-gradient(0deg, transparent 0px, transparent 3px, #0a0a1a 3px, #0a0a1a 5px);
  opacity: 0.7;
  border-radius: 10% 10% 20% 20% / 20% 20% 30% 30%;
  animation: ds-grate 8s ease-in-out infinite;
}
@keyframes ds-wall { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes ds-crouch { 0% { transform: scale(0.8) translateX(0) rotate(0deg); } 50% { transform: scale(0.85) translateX(-4px) rotate(3deg); } 100% { transform: scale(0.8) translateX(0) rotate(0deg); } }
@keyframes ds-shackle { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(5deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes ds-window { 0% { box-shadow: 0 0 20px 5px rgba(192,176,128,0.3), 0 0 40px 10px rgba(192,176,128,0.1); } 50% { box-shadow: 0 0 40px 15px rgba(192,176,128,0.5), 0 0 80px 25px rgba(192,176,128,0.2); } 100% { box-shadow: 0 0 25px 8px rgba(192,176,128,0.35), 0 0 50px 15px rgba(192,176,128,0.15); } }
@keyframes ds-grate { 0% { opacity: 0.6; } 50% { opacity: 0.8; } 100% { opacity: 0.6; } }

.scn-onboard-charming-sally {
  background: linear-gradient(180deg, #f2c8a0 0%, #d4a878 40%, #b88a60 100%),
              radial-gradient(ellipse at 70% 20%, #ffe0c0 0%, transparent 70%);
}
.scn-onboard-charming-sally .sky-dawn {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #f0d0b0 0%, #d4a878 100%);
  animation: oc-sky 20s ease-in-out infinite alternate;
}
.scn-onboard-charming-sally .deck {
  position: absolute; bottom: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(0deg, #6a4a2a 0%, #9a7a5a 30%, #b89a7a 70%, #d4b89a 100%);
  box-shadow: inset 0 4px 12px rgba(0,0,0,.3);
  animation: oc-deck 6s ease-in-out infinite;
}
.scn-onboard-charming-sally .mast {
  position: absolute; bottom: 40%; left: 30%; width: 6px; height: 50%;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2a0a 100%);
  border-radius: 2px;
  transform-origin: bottom center;
  animation: oc-mast 8s ease-in-out infinite;
}
.scn-onboard-charming-sally .rope {
  position: absolute; bottom: 55%; left: 30%; width: 20%; height: 3px;
  background: linear-gradient(90deg, #4a3a1a 0%, #6a5a3a 100%);
  border-radius: 2px;
  transform: rotate(15deg);
  transform-origin: left center;
  animation: oc-rope 5s ease-in-out infinite alternate;
}
.scn-onboard-charming-sally .figure-boy {
  position: absolute; bottom: 15%; left: 42%; width: 16px; height: 28px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1e 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: oc-boy 4s ease-in-out infinite;
}
.scn-onboard-charming-sally .figure-master {
  position: absolute; bottom: 16%; left: 52%; width: 20px; height: 36px;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: oc-master 5s ease-in-out infinite;
}
.scn-onboard-charming-sally .barrel {
  position: absolute; bottom: 10%; left: 18%; width: 20px; height: 24px;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%);
  border-radius: 30% 30% 30% 30% / 40% 40% 30% 30%;
  box-shadow: inset 0 2px 6px rgba(0,0,0,.5);
  animation: oc-barrel 7s ease-in-out infinite;
}
@keyframes oc-sky { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes oc-deck { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes oc-mast { 0% { transform: rotate(-1deg); } 50% { transform: rotate(1deg); } 100% { transform: rotate(-1deg); } }
@keyframes oc-rope { 0% { transform: rotate(15deg) scaleX(1); } 50% { transform: rotate(12deg) scaleX(1.05); } 100% { transform: rotate(15deg) scaleX(1); } }
@keyframes oc-boy { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(6px) rotate(2deg); } 50% { transform: translateX(12px) rotate(-2deg); } 75% { transform: translateX(18px) rotate(2deg); } 100% { transform: translateX(24px) rotate(0deg); } }
@keyframes oc-master { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes oc-barrel { 0% { transform: rotate(-3deg); } 50% { transform: rotate(3deg); } 100% { transform: rotate(-3deg); } }

.scn-languages-learned { background: linear-gradient(180deg, #f5e6c8 0%, #d9c5a0 50%, #b89570 100%), radial-gradient(ellipse at 50% 0%, #fff6e0 0%, transparent 70%); }
.scn-languages-learned .window-frame { position:absolute; top:8%; left:10%; width:80%; height:55%; border:8px solid #7a5a3a; border-radius:6px; background: transparent; box-shadow: inset 0 0 60px rgba(180,140,100,0.3); animation: lg-frame 12s ease-in-out infinite alternate; }
.scn-languages-learned .pane-left { position:absolute; top:10%; left:12%; width:36%; height:50%; background: linear-gradient(135deg, rgba(255,255,230,0.5) 0%, rgba(200,180,150,0.3) 100%); border-radius:2px; box-shadow: inset 0 0 30px rgba(255,220,180,0.4); animation: lg-pane 8s ease-in-out infinite alternate; }
.scn-languages-learned .pane-right { position:absolute; top:10%; right:12%; width:36%; height:50%; background: linear-gradient(225deg, rgba(255,255,230,0.5) 0%, rgba(200,180,150,0.3) 100%); border-radius:2px; box-shadow: inset 0 0 30px rgba(255,220,180,0.4); animation: lg-pane 8s ease-in-out infinite alternate-reverse; }
.scn-languages-learned .desk { position:absolute; bottom:18%; left:20%; width:60%; height:20%; background: linear-gradient(180deg, #b08050 0%, #8a6040 50%, #6a4020 100%); border-radius:4px; box-shadow: 0 8px 20px rgba(0,0,0,0.3); animation: lg-desk 15s ease-in-out infinite; }
.scn-languages-learned .book { position:absolute; bottom:28%; left:35%; width:30%; height:12%; background: linear-gradient(135deg, #d4a870 0%, #b88a50 50%, #9a6a30 100%); border-radius:2px; transform: rotate(-2deg); box-shadow: 0 4px 8px rgba(0,0,0,0.2); animation: lg-book 6s ease-in-out infinite; }
.scn-languages-learned .figure { position:absolute; bottom:20%; left:42%; width:16%; height:35%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lg-figure 5s ease-in-out infinite; }
.scn-languages-learned .candle { position:absolute; bottom:32%; left:55%; width:4%; height:15%; background: linear-gradient(180deg, #f0d080 0%, #c8a060 50%, #8a6a40 100%); border-radius: 50% 50% 30% 30%; box-shadow: 0 0 30px 10px rgba(255,200,100,0.5); animation: lg-candle 3s ease-in-out infinite alternate; }
.scn-languages-learned .dust { position:absolute; inset:0; background: radial-gradient(ellipse at 30% 40%, rgba(255,240,200,0.08) 0%, transparent 70%); filter: blur(8px); animation: lg-dust 20s linear infinite; }
@keyframes lg-frame { 0% { opacity:0.9; transform:scale(1); } 50% { opacity:1; transform:scale(1.01); } 100% { opacity:0.95; transform:scale(1); } }
@keyframes lg-pane { 0% { opacity:0.6; } 50% { opacity:0.8; } 100% { opacity:0.7; } }
@keyframes lg-desk { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes lg-book { 0% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(-1deg) translateY(-3px); } 100% { transform: rotate(-2deg) translateY(0); } }
@keyframes lg-figure { 0% { transform: translateY(0) rotate(-1deg); } 25% { transform: translateY(-2px) rotate(1deg); } 50% { transform: translateY(0) rotate(-0.5deg); } 75% { transform: translateY(-1px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes lg-candle { 0% { opacity:0.8; box-shadow:0 0 20px 5px rgba(255,200,100,0.4); } 50% { opacity:1; box-shadow:0 0 40px 15px rgba(255,220,120,0.7); } 100% { opacity:0.85; box-shadow:0 0 25px 8px rgba(255,200,100,0.5); } }
@keyframes lg-dust { 0% { transform: translateY(0); } 100% { transform: translateY(-40px); } }

.scn-sister-reunited { background: linear-gradient(180deg, #b06540 0%, #8a4a30 40%, #5a2a1a 100%), radial-gradient(ellipse at 50% 100%, #d08050 0%, transparent 70%); }
.scn-sister-reunited .doorway { position:absolute; top:15%; left:30%; width:40%; height:70%; background: #2a1a0a; border-radius: 50% 50% 0 0 / 40% 40% 0 0; box-shadow: inset 0 0 60px rgba(200,100,50,0.3); animation: sr-doorway 10s ease-in-out infinite; }
.scn-sister-reunited .wall-left { position:absolute; top:0; left:0; width:30%; height:100%; background: linear-gradient(90deg, #5a3a2a 0%, #7a4a3a 100%); animation: sr-wall 15s ease-in-out infinite alternate; }
.scn-sister-reunited .wall-right { position:absolute; top:0; right:0; width:30%; height:100%; background: linear-gradient(90deg, #7a4a3a 0%, #5a3a2a 100%); animation: sr-wall 15s ease-in-out infinite alternate-reverse; }
.scn-sister-reunited .figure-a { position:absolute; bottom:20%; left:38%; width:12%; height:40%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 50% 45% 40% 40% / 55% 50% 40% 40%; transform-origin: bottom center; animation: sr-figure-a 6s ease-in-out infinite; }
.scn-sister-reunited .figure-b { position:absolute; bottom:20%; right:38%; width:12%; height:38%; background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%); border-radius: 45% 50% 40% 40% / 50% 55% 40% 40%; transform-origin: bottom center; animation: sr-figure-b 6s ease-in-out infinite; }
.scn-sister-reunited .lantern { position:absolute; top:40%; left:48%; width:6%; height:12%; background: linear-gradient(180deg, #d0a060 0%, #b08040 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 0 40px 15px rgba(200,150,80,0.6); animation: sr-lantern 4s ease-in-out infinite alternate; }
.scn-sister-reunited .glow { position:absolute; top:35%; left:45%; width:10%; height:20%; background: radial-gradient(circle, rgba(255,200,100,0.4) 0%, transparent 70%); filter: blur(8px); animation: sr-glow 5s ease-in-out infinite alternate; }
.scn-sister-reunited .shadow { position:absolute; bottom:0; left:20%; width:60%; height:30%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.4) 100%); animation: sr-shadow 12s ease-in-out infinite; }
@keyframes sr-doorway { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes sr-wall { 0% { opacity:0.7; } 50% { opacity:0.9; } 100% { opacity:0.75; } }
@keyframes sr-figure-a { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 30% { transform: translateX(-8px) translateY(-4px) rotate(2deg); } 60% { transform: translateX(-3px) translateY(-2px) rotate(-1deg); } 100% { transform: translateX(0) translateY(0) rotate(-2deg); } }
@keyframes sr-figure-b { 0% { transform: translateX(0) translateY(0) rotate(2deg); } 30% { transform: translateX(8px) translateY(-3px) rotate(-2deg); } 60% { transform: translateX(3px) translateY(-1px) rotate(1deg); } 100% { transform: translateX(0) translateY(0) rotate(2deg); } }
@keyframes sr-lantern { 0% { transform: rotate(-5deg); opacity:0.7; } 50% { transform: rotate(5deg); opacity:1; } 100% { transform: rotate(-3deg); opacity:0.8; } }
@keyframes sr-glow { 0% { opacity:0.3; transform: scale(0.9); } 50% { opacity:0.6; transform: scale(1.1); } 100% { opacity:0.4; transform: scale(0.95); } }
@keyframes sr-shadow { 0% { opacity:0.4; } 50% { opacity:0.6; } 100% { opacity:0.45; } }

.scn-sympathetic-kidnappers { background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 40%, #1a0a00 100%), radial-gradient(ellipse at 50% 80%, #4a3a2a 0%, transparent 70%); }
.scn-sympathetic-kidnappers .fire { position:absolute; bottom:5%; left:20%; width:15%; height:25%; background: radial-gradient(ellipse at 50% 100%, #d08050 0%, #a05030 50%, transparent 100%); border-radius: 0 0 40% 40%; box-shadow: 0 -20px 60px 20px rgba(200,100,50,0.5); animation: sk-fire 3s ease-in-out infinite alternate; }
.scn-sympathetic-kidnappers .circle { position:absolute; bottom:2%; left:10%; width:80%; height:50%; background: radial-gradient(ellipse at 50% 100%, #4a3a2a 0%, transparent 80%); border-radius: 50%; filter: blur(15px); animation: sk-circle 10s ease-in-out infinite; }
.scn-sympathetic-kidnappers .figure-captive { position:absolute; bottom:12%; left:30%; width:10%; height:35%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sk-captive 7s ease-in-out infinite; }
.scn-sympathetic-kidnappers .figure-captor { position:absolute; bottom:10%; right:35%; width:12%; height:38%; background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 50% 60% 40% 40%; transform-origin: bottom center; animation: sk-captor 7s ease-in-out infinite; }
.scn-sympathetic-kidnappers .blanket { position:absolute; bottom:8%; left:28%; width:18%; height:20%; background: linear-gradient(135deg, #6a4a3a 0%, #5a3a2a 50%, #4a2a1a 100%); border-radius: 10% 10% 30% 30%; transform: rotate(-5deg); box-shadow: 0 4px 10px rgba(0,0,0,0.5); animation: sk-blanket 8s ease-in-out infinite alternate; }
.scn-sympathetic-kidnappers .pot { position:absolute; bottom:5%; left:12%; width:8%; height:10%; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius: 0 0 40% 40%; box-shadow: 0 0 15px 5px rgba(200,100,50,0.2); animation: sk-pot 12s linear infinite; }
.scn-sympathetic-kidnappers .smoke { position:absolute; bottom:30%; left:16%; width:4%; height:15%; background: radial-gradient(circle, rgba(200,100,50,0.3) 0%, transparent 80%); filter: blur(5px); animation: sk-smoke 5s ease-out infinite; }
@keyframes sk-fire { 0% { transform: translateY(0) scaleX(1); opacity:0.7; } 50% { transform: translateY(-5px) scaleX(1.1); opacity:1; } 100% { transform: translateY(0) scaleX(1); opacity:0.8; } }
@keyframes sk-circle { 0% { opacity:0.3; transform: scale(0.95); } 50% { opacity:0.5; transform: scale(1.05); } 100% { opacity:0.35; transform: scale(0.95); } }
@keyframes sk-captive { 0% { transform: translateY(0) rotate(-2deg); } 25% { transform: translateY(-3px) rotate(1deg); } 50% { transform: translateY(-1px) rotate(-1deg); } 75% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes sk-captor { 0% { transform: translateY(0) rotate(2deg); } 25% { transform: translateY(-2px) rotate(-1deg); } 50% { transform: translateY(-1px) rotate(1deg); } 75% { transform: translateY(-3px) rotate(-1deg); } 100% { transform: translateY(0) rotate(2deg); } }
@keyframes sk-blanket { 0% { transform: rotate(-5deg) translateX(0); } 50% { transform: rotate(-3deg) translateX(5px); } 100% { transform: rotate(-5deg) translateX(0); } }
@keyframes sk-pot { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes sk-smoke { 0% { transform: translateY(0) scale(1); opacity:0.5; } 50% { transform: translateY(-30px) scale(2); opacity:0.2; } 100% { transform: translateY(-60px) scale(3); opacity:0; } }

.scn-eternal-separation { background: linear-gradient(180deg, #1a1a3e 0%, #2a2a5e 30%, #3a2a4e 100%), radial-gradient(ellipse at 50% 0%, #4a3a6a 0%, transparent 80%); }
.scn-eternal-separation .sky { position:absolute; top:0; left:0; width:100%; height:60%; background: linear-gradient(180deg, #4a3a6a 0%, #7a6a9a 50%, #a090a0 100%); animation: es-sky 15s ease-in-out infinite alternate; }
.scn-eternal-separation .sea { position:absolute; bottom:0; left:0; width:100%; height:50%; background: linear-gradient(180deg, #2a2a5e 0%, #1a1a3e 100%); box-shadow: inset 0 10px 30px rgba(0,0,0,0.5); animation: es-sea 20s ease-in-out infinite; }
.scn-eternal-separation .ship { position:absolute; bottom:35%; right:20%; width:20%; height:15%; background: linear-gradient(180deg, #3a2a4a 0%, #2a1a2a 100%); border-radius: 0 20% 40% 40%; transform: skewX(-10deg); box-shadow: 0 0 30px rgba(0,0,0,0.4); animation: es-ship 8s ease-in-out infinite alternate; }
.scn-eternal-separation .shore { position:absolute; bottom:20%; left:0; width:40%; height:30%; background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 100%); border-radius: 0 40% 0 0; box-shadow: inset 0 -10px 20px rgba(0,0,0,0.3); animation: es-shore 12s ease-in-out infinite; }
.scn-eternal-separation .figure-alone { position:absolute; bottom:15%; left:15%; width:8%; height:30%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: es-figure 6s ease-in-out infinite; }
.scn-eternal-separation .rock { position:absolute; bottom:10%; left:12%; width:15%; height:12%; background: linear-gradient(135deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 30% 30% 20% 20%; box-shadow: 0 0 15px rgba(0,0,0,0.5); animation: es-rock 18s ease-in-out infinite; }
.scn-eternal-separation .wave { position:absolute; bottom:0; left:0; width:100%; height:20%; background: Radial-gradient(ellipse at 100% 80%, transparent 60%, rgba(100,100,140,0.2) 100%); filter: blur(4px); animation: es-wave 5s ease-in-out infinite; }
@keyframes es-sky { 0% { opacity:0.7; } 50% { opacity:0.9; } 100% { opacity:0.75; } }
@keyframes es-sea { 0% { transform: translateX(0) scaleY(1); } 50% { transform: translateX(-10px) scaleY(1.02); } 100% { transform: translateX(0) scaleY(1); } }
@keyframes es-ship { 0% { transform: skewX(-10deg) translateX(0) translateY(0); } 50% { transform: skewX(-8deg) translateX(-5px) translateY(-3px); } 100% { transform: skewX(-10deg) translateX(0) translateY(0); } }
@keyframes es-shore { 0% { opacity:0.8; border-radius:0 40% 0 0; } 50% { opacity:1; border-radius:0 45% 0 0; } 100% { opacity:0.85; border-radius:0 40% 0 0; } }
@keyframes es-figure { 0% { transform: translateY(0) rotate(-2deg); } 25% { transform: translateY(-3px) rotate(1deg); } 50% { transform: translateY(-1px) rotate(-1deg); } 75% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes es-rock { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes es-wave { 0% { opacity:0.3; transform: scaleX(1); } 50% { opacity:0.5; transform: scaleX(1.05); } 100% { opacity:0.3; transform: scaleX(1); } }

.scn-st-eustatia-assault {
  background:
    linear-gradient(180deg, #87ceeb 0%, #f0d080 40%, #c08040 70%, #5a3a1a 100%),
    radial-gradient(ellipse at 70% 30%, #ffdb80 0%, transparent 60%);
}
.scn-st-eustatia-assault .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #b0d0e0 0%, #87ceeb 60%, transparent);
  animation: sea-sky 20s ease-in-out infinite alternate;
}
.scn-st-eustatia-assault .sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #2a5a6a 0%, #1a3a4a 100%);
  animation: sea-wave 8s ease-in-out infinite;
}
.scn-st-eustatia-assault .deck {
  position: absolute; bottom: 20%; left: 5%; right: 5%; height: 8%;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.4);
}
.scn-st-eustatia-assault .mast {
  position: absolute; bottom: 28%; left: 50%; width: 8px; height: 40%;
  background: linear-gradient(180deg, #1a1a1a 0%, #3a2a1a 100%);
  transform: translateX(-50%);
  border-radius: 2px;
}
.scn-st-eustatia-assault .sail {
  position: absolute; bottom: 50%; left: 50%; width: 60px; height: 40px;
  background: linear-gradient(135deg, #f0e8d0 0%, #c0b090 100%);
  border-radius: 80% 20% 60% 40% / 60% 40% 80% 20%;
  transform: translateX(-80%) rotate(8deg);
  animation: sea-swell 12s ease-in-out infinite;
}
.scn-st-eustatia-assault .figure-depredator {
  position: absolute; bottom: 25%; left: 30%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sea-walk 6s ease-in-out infinite;
}
.scn-st-eustatia-assault .figure-merchant {
  position: absolute; bottom: 25%; right: 25%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sea-back 9s ease-in-out infinite;
}
.scn-st-eustatia-assault .shadow-hard {
  position: absolute; bottom: 18%; left: 25%; right: 20%; height: 10%;
  background: linear-gradient(135deg, rgba(0,0,0,0.6) 0%, transparent 100%);
  animation: sea-shadow 5s ease-in-out infinite alternate;
}
.scn-st-eustatia-assault .sun-glint {
  position: absolute; top: 10%; right: 20%; width: 30px; height: 30px;
  background: radial-gradient(circle, #fff0b0 0%, transparent 70%);
  border-radius: 50%;
  animation: sea-glint 10s ease-in-out infinite;
}
@keyframes sea-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.6; } }
@keyframes sea-wave { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(2px); } }
@keyframes sea-swell { 0% { transform: translateX(-80%) rotate(8deg) scaleY(1); } 50% { transform: translateX(-70%) rotate(10deg) scaleY(1.05); } 100% { transform: translateX(-80%) rotate(8deg) scaleY(1); } }
@keyframes sea-walk { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(8px) rotate(2deg); } 50% { transform: translateX(12px) rotate(-1deg); } 75% { transform: translateX(6px) rotate(1deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes sea-back { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(-6px) rotate(3deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes sea-shadow { 0% { opacity: 0.3; } 100% { opacity: 0.7; } }
@keyframes sea-glint { 0% { opacity: 0.2; transform: scale(0.8); } 50% { opacity: 0.9; transform: scale(1.2); } 100% { opacity: 0.3; transform: scale(0.9); } }

.scn-barbados-act {
  background:
    linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 30%, #0a0505 100%),
    radial-gradient(ellipse at 35% 40%, #5a3a2a 0%, transparent 80%);
}
.scn-barbados-act .wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 80px 20px rgba(0,0,0,0.8);
  animation: bar-wall 60s ease-in-out infinite;
}
.scn-barbados-act .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  box-shadow: inset 0 8px 12px rgba(0,0,0,0.5);
}
.scn-barbados-act .window-bar {
  position: absolute; top: 15%; right: 20%; width: 60px; height: 80px;
  border: 4px solid #1a1a1a;
  background: linear-gradient(135deg, #2a3a4a 0%, #4a5a6a 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 30px 5px rgba(100,150,200,0.3);
  animation: bar-window 30s ease-in-out infinite alternate;
}
.scn-barbados-act .figure-slave {
  position: absolute; bottom: 18%; left: 25%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bar-slave 12s ease-in-out infinite;
}
.scn-barbados-act .figure-captor {
  position: absolute; bottom: 18%; right: 30%; width: 24px; height: 48px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bar-captor 8s ease-in-out infinite;
}
.scn-barbados-act .candle-glow {
  position: absolute; bottom: 50%; left: 15%; width: 12px; height: 12px;
  background: radial-gradient(circle, #ffa060 0%, #804020 60%, transparent);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(255,160,96,0.3);
  animation: bar-candle 4s ease-in-out infinite alternate;
}
.scn-barbados-act .chain {
  position: absolute; bottom: 18%; left: 28%; right: 32%; height: 4px;
  background: repeating-linear-gradient(90deg, #5a4a3a 0px, #5a4a3a 6px, transparent 6px, transparent 12px);
  animation: bar-chain 6s ease-in-out infinite;
}
@keyframes bar-wall { 0% { opacity: 0.9; } 50% { opacity: 0.7; } 100% { opacity: 0.85; } }
@keyframes bar-window { 0% { box-shadow: inset 0 0 30px 5px rgba(100,150,200,0.3); } 50% { box-shadow: inset 0 0 50px 10px rgba(100,150,200,0.5); } 100% { box-shadow: inset 0 0 30px 5px rgba(100,150,200,0.3); } }
@keyframes bar-slave { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(2deg); } 50% { transform: translateY(-1px) rotate(-3deg); } 75% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes bar-captor { 0% { transform: translateX(0); } 50% { transform: translateX(-10px); } 100% { transform: translateX(0); } }
@keyframes bar-candle { 0% { opacity: 0.6; transform: scale(0.9); } 100% { opacity: 1; transform: scale(1.1); } }
@keyframes bar-chain { 0% { transform: translateY(0); } 50% { transform: translateY(2px); } 100% { transform: translateY(0); } }

.scn-weighing-slaves {
  background:
    linear-gradient(180deg, #1a1a10 0%, #2a2a1a 30%, #1a1a0a 100%),
    radial-gradient(ellipse at 50% 40%, #4a4a2a 0%, transparent 80%);
}
.scn-weighing-slaves .room-back {
  position: absolute; inset: 0; background: linear-gradient(180deg, #2a2a1a 0%, #0a0a00 100%);
  border-radius: 6px;
  box-shadow: inset 0 0 60px 15px rgba(0,0,0,0.6);
  animation: wei-back 30s ease-in-out infinite alternate;
}
.scn-weighing-slaves .scale-beam {
  position: absolute; top: 30%; left: 10%; right: 10%; height: 8px;
  background: linear-gradient(90deg, #3a2a1a 0%, #6a5a3a 50%, #3a2a1a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: wei-beam 6s ease-in-out infinite;
}
.scn-weighing-slaves .scale-pan-left {
  position: absolute; top: 40%; left: 15%; width: 50px; height: 30px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 0 0 30% 30%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.4);
  animation: wei-pan-left 7s ease-in-out infinite alternate;
}
.scn-weighing-slaves .scale-pan-right {
  position: absolute; top: 40%; right: 15%; width: 50px; height: 30px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 0 0 30% 30%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.4);
  animation: wei-pan-right 7s ease-in-out infinite alternate;
}
.scn-weighing-slaves .figure-merchant {
  position: absolute; bottom: 25%; right: 10%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: wei-merchant 12s ease-in-out infinite;
}
.scn-weighing-slaves .figure-slave {
  position: absolute; bottom: 10%; left: 20%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #1a0a00 0%, #0a0500 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: wei-slave 9s ease-in-out infinite;
}
.scn-weighing-slaves .weight {
  position: absolute; top: 42%; left: 12%; width: 16px; height: 24px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%);
  border-radius: 8px;
  box-shadow: 2px 4px 6px rgba(0,0,0,0.5);
  animation: wei-weight 5s ease-in-out infinite alternate;
}
.scn-weighing-slaves .spotlight {
  position: absolute; top: 0; left: 30%; right: 30%; height: 60%;
  background: radial-gradient(ellipse at 50% 0%, rgba(200,180,120,0.3) 0%, transparent 70%);
  border-radius: 50%;
  animation: wei-spotlight 10s ease-in-out infinite;
}
@keyframes wei-back { 0% { opacity: 0.8; } 100% { opacity: 0.6; } }
@keyframes wei-beam { 0% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-2deg); } }
@keyframes wei-pan-left { 0% { transform: translateY(0); } 50% { transform: translateY(8px); } 100% { transform: translateY(0); } }
@keyframes wei-pan-right { 0% { transform: translateY(0); } 50% { transform: translateY(-8px); } 100% { transform: translateY(0); } }
@keyframes wei-merchant { 0% { transform: translateX(0) rotate(1deg); } 33% { transform: translateX(-4px) rotate(-2deg); } 66% { transform: translateX(2px) rotate(0deg); } 100% { transform: translateX(0) rotate(1deg); } }
@keyframes wei-slave { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-6px) rotate(3deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes wei-weight { 0% { transform: translateY(0); } 100% { transform: translateY(10px); } }
@keyframes wei-spotlight { 0% { opacity: 0.4; } 50% { opacity: 0.7; } 100% { opacity: 0.3; } }

.scn-creole-fisherman {
  background:
    linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 30%, #0a0a1a 100%),
    radial-gradient(ellipse at 50% 70%, #4a4a5a 0%, transparent 80%);
}
.scn-creole-fisherman .hut-wall {
  position: absolute; inset: 15% 10% 10% 10%; background: linear-gradient(135deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 8px;
  box-shadow: inset 0 0 40px 10px rgba(0,0,0,0.7);
  animation: cre-wall 40s ease-in-out infinite alternate;
}
.scn-creole-fisherman .hut-roof {
  position: absolute; top: 8%; left: 5%; right: 5%; height: 15%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  clip-path: polygon(10% 100%, 50% 0%, 90% 100%);
  animation: cre-roof 20s ease-in-out infinite;
}
.scn-creole-fisherman .lantern {
  position: absolute; top: 30%; left: 25%; width: 10px; height: 14px; background: radial-gradient(circle, #ffe080 0%, #b08040 60%);
  border-radius: 30%;
  box-shadow: 0 0 30px 10px rgba(255,224,128,0.5);
  animation: cre-lantern 4s ease-in-out infinite alternate;
}
.scn-creole-fisherman .figure-fisher {
  position: absolute; bottom: 20%; left: 30%; width: 20px; height: 42px;
  background: linear-gradient(180deg, #2a1a0a 0%, #160a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cre-fisher 8s ease-in-out infinite;
}
.scn-creole-fisherman .net {
  position: absolute; bottom: 18%; left: 35%; width: 80px; height: 50px;
  background: radial-gradient(circle at 30% 50%, transparent 0%, rgba(200,180,160,0.1) 10%, transparent 20%);
  border: 1px solid rgba(200,180,160,0.2);
  border-radius: 50%;
  animation: cre-net 15s ease-in-out infinite;
}
.scn-creole-fisherman .basket {
  position: absolute; bottom: 12%; right: 20%; width: 30px; height: 20px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 0 0 30% 30%;
  box-shadow: 0 4px 6px rgba(0,0,0,0.3);
  animation: cre-basket 10s ease-in-out infinite;
}
.scn-creole-fisherman .fish-shadow {
  position: absolute; bottom: 16%; left: 50%; width: 14px; height: 6px;
  background: rgba(0,0,0,0.4);
  border-radius: 50%;
  transform: rotate(-20deg);
  animation: cre-fish 12s ease-in-out infinite;
}
@keyframes cre-wall { 0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.6; } }
@keyframes cre-roof { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes cre-lantern { 0% { opacity: 0.7; transform: scale(0.9) rotate(-5deg); } 100% { opacity: 1; transform: scale(1.1) rotate(5deg); } }
@keyframes cre-fisher { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(4px) rotate(2deg) scaleY(1.02); } 50% { transform: translateX(-2px) rotate(-1deg) scaleY(0.98); } 75% { transform: translateX(3px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes cre-net { 0% { transform: rotate(0deg) scaleX(1); } 50% { transform: rotate(10deg) scaleX(0.95); } 100% { transform: rotate(0deg) scaleX(1); } }
@keyframes cre-basket { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes cre-fish { 0% { transform: rotate(-20deg) translateY(0); } 50% { transform: rotate(-15deg) translateY(-3px); } 100% { transform: rotate(-20deg) translateY(0); } }

.scn-lagoon-crossing-alone {
  background: linear-gradient(180deg, #687482 0%, #4a5a66 35%, #2c3a44 70%, #1a242b 100%),
              radial-gradient(ellipse at 50% 100%, #3a4a55 0%, transparent 70%);
}
.scn-lagoon-crossing-alone .sky-overcast { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #8a9ba8 0%, #5a6b78 100%); animation: lca-sky 14s ease-in-out infinite alternate; }
.scn-lagoon-crossing-alone .water-dark { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #3a4a55 0%, #1a242b 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 6px 20px rgba(0,0,0,.3); animation: lca-water 8s ease-in-out infinite alternate; }
.scn-lagoon-crossing-alone .shore-far { position:absolute; bottom:50%; left:10%; width:30%; height:8%; background: linear-gradient(180deg, #5a6b5a 0%, #3a4a3a 100%); border-radius: 60% 40% 0 0; box-shadow: 0 -2px 6px rgba(0,0,0,.2); }
.scn-lagoon-crossing-alone .canoe { position:absolute; bottom:32%; left:45%; width:100px; height:18px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 60% 60% 20% 20%; transform: translate(-50%,0) rotate(-3deg); box-shadow: 0 2px 8px rgba(0,0,0,.5); animation: lca-canoe 4s ease-in-out infinite alternate; }
.scn-lagoon-crossing-alone .figure-bent { position:absolute; bottom:40%; left:48%; width:20px; height:32px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); border-radius: 40% 40% 50% 50% / 40% 40% 30% 30%; transform-origin: bottom center; transform: rotate(15deg); animation: lca-figure 2s ease-in-out infinite alternate; }
.scn-lagoon-crossing-alone .paddle { position:absolute; bottom:42%; left:50%; width:4px; height:40px; background: #5a4a3a; border-radius: 30%; transform-origin: 50% 100%; transform: rotate(30deg); animation: lca-paddle 0.6s ease-in-out infinite alternate; }
.scn-lagoon-crossing-alone .cloud-lca1 { position:absolute; top:15%; left:20%; width:90px; height:16px; background: linear-gradient(180deg, rgba(200,210,220,.5) 0%, rgba(200,210,220,.1) 100%); border-radius: 50%; filter: blur(5px); animation: lca-drift1 40s linear infinite; }
.scn-lagoon-crossing-alone .cloud-lca2 { position:absolute; top:25%; right:10%; width:70px; height:12px; background: linear-gradient(180deg, rgba(200,210,220,.4) 0%, rgba(200,210,220,.05) 100%); border-radius: 50%; filter: blur(4px); animation: lca-drift2 55s linear infinite reverse; }
.scn-lagoon-crossing-alone .ripple { position:absolute; bottom:30%; left:40%; width:80px; height:4px; background: rgba(180,200,210,.2); border-radius: 50%; filter: blur(1px); animation: lca-ripple 3s ease-in-out infinite alternate; }
@keyframes lca-sky { 0% { opacity:0.5 } 50% { opacity:0.8 } 100% { opacity:0.6 } }
@keyframes lca-water { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(1px) } }
@keyframes lca-canoe { 0% { transform: translate(-50%,0) rotate(-4deg) } 50% { transform: translate(-48%,-2px) rotate(-2deg) } 100% { transform: translate(-52%,0) rotate(-3deg) } }
@keyframes lca-figure { 0% { transform: rotate(10deg) translateY(0) } 50% { transform: rotate(20deg) translateY(-1px) } 100% { transform: rotate(15deg) translateY(0) } }
@keyframes lca-paddle { 0% { transform: rotate(20deg) } 50% { transform: rotate(35deg) } 100% { transform: rotate(25deg) } }
@keyframes lca-drift1 { 0% { transform: translateX(-40px) } 100% { transform: translateX(120vw) } }
@keyframes lca-drift2 { 0% { transform: translateX(0) } 100% { transform: translateX(-100vw) } }
@keyframes lca-ripple { 0% { transform: scaleX(1); opacity:0.3 } 50% { transform: scaleX(1.5); opacity:0.6 } 100% { transform: scaleX(1); opacity:0.4 } }

.scn-admiral-dwelling {
  background: linear-gradient(180deg, #2a1a0e 0%, #3a2a1a 40%, #2a1a0e 100%),
              radial-gradient(ellipse at 30% 50%, #5a3a1a 0%, transparent 60%);
}
.scn-admiral-dwelling .wall-dark { position:absolute; inset:0; background: linear-gradient(135deg, #2a1a0e 0%, #3a2a1a 50%, #2a1a0e 100%); }
.scn-admiral-dwelling .floor-dirt { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 4px 12px rgba(0,0,0,.5); }
.scn-admiral-dwelling .window-dull { position:absolute; top:20%; left:60%; width:60px; height:80px; background: linear-gradient(180deg, #8a7a5a 0%, #5a4a3a 100%); border-radius: 4px; box-shadow: inset 0 0 30px rgba(0,0,0,.3), 0 0 20px rgba(200,180,120,.1); animation: adm-window 10s ease-in-out infinite alternate; }
.scn-admiral-dwelling .table-rough { position:absolute; bottom:25%; left:30%; width:120px; height:12px; background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%); border-radius: 4px; box-shadow: 0 2px 8px rgba(0,0,0,.4); transform: rotate(1deg); }
.scn-admiral-dwelling .lantern-glow { position:absolute; bottom:40%; left:45%; width:20px; height:30px; background: radial-gradient(circle, #d0a040 0%, #a07030 60%, transparent 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 0 40px 10px #a07030, 0 0 80px 20px rgba(160,112,48,.3); animation: adm-glow 4s ease-in-out infinite alternate; }
.scn-admiral-dwelling .figure-seated { position:absolute; bottom:28%; left:35%; width:28px; height:40px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: adm-seated 6s ease-in-out infinite; }
.scn-admiral-dwelling .cup-clay { position:absolute; bottom:30%; left:42%; width:14px; height:16px; background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%); border-radius: 20% 20% 30% 30%; transform: rotate(-5deg); animation: adm-cup 7s ease-in-out infinite alternate; }
@keyframes adm-window { 0% { opacity:0.3; transform: scaleX(1); } 50% { opacity:0.6; transform: scaleX(0.98); } 100% { opacity:0.4; transform: scaleX(1); } }
@keyframes adm-glow { 0% { transform: scale(1); opacity:0.6; box-shadow: 0 0 30px 8px #a07030, 0 0 60px 15px rgba(160,112,48,.2); } 50% { transform: scale(1.1); opacity:1; box-shadow: 0 0 60px 15px #c09040, 0 0 100px 25px rgba(192,144,64,.4); } 100% { transform: scale(0.9); opacity:0.7; box-shadow: 0 0 35px 10px #a07030, 0 0 70px 18px rgba(160,112,48,.25); } }
@keyframes adm-seated { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(2deg); } 50% { transform: translateY(0) rotate(-1deg); } 75% { transform: translateY(-1px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes adm-cup { 0% { transform: rotate(-6deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-1px); } 100% { transform: rotate(-7deg) translateY(0); } }

.scn-indians-act-christianlike {
  background: linear-gradient(180deg, #7a6a4a 0%, #5a4a2a 40%, #3a2a1a 100%),
              radial-gradient(ellipse at 50% 0%, #9a8a6a 0%, transparent 60%);
}
.scn-indians-act-christianlike .ground-ochre { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #6a5a3a 0%, #4a3a1a 100%); border-radius: 30% 30% 0 0; }
.scn-indians-act-christianlike .hut-warm { position:absolute; bottom:25%; left:15%; width:100px; height:70px; background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%); border-radius: 40% 40% 10% 10%; box-shadow: 0 6px 16px rgba(0,0,0,.3); transform: scale(0.95); }
.scn-indians-act-christianlike .canoe-beach { position:absolute; bottom:18%; left:50%; width:140px; height:16px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 40% 40% 20% 20%; transform: translateX(-50%) rotate(-2deg); box-shadow: 0 2px 6px rgba(0,0,0,.4); }
.scn-indians-act-christianlike .figure-indian1 { position:absolute; bottom:30%; left:35%; width:22px; height:38px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 45% 45% 35% 35% / 60% 60% 40% 40%; transform-origin: bottom center; animation: iac-fig1 5s ease-in-out infinite; }
.scn-indians-act-christianlike .figure-indian2 { position:absolute; bottom:30%; left:42%; width:22px; height:38px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 45% 45% 35% 35% / 60% 60% 40% 40%; transform-origin: bottom center; animation: iac-fig2 6s ease-in-out infinite; }
.scn-indians-act-christianlike .figure-visitor { position:absolute; bottom:28%; left:55%; width:24px; height:42px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: iac-fig3 5.5s ease-in-out infinite alternate; }
.scn-indians-act-christianlike .fire-glow { position:absolute; bottom:20%; left:48%; width:30px; height:30px; background: radial-gradient(circle, #d0a040 0%, #a07030 50%, transparent 100%); border-radius: 50%; box-shadow: 0 0 50px 20px #b08040, 0 0 100px 40px rgba(176,128,64,.3); animation: iac-fire 3s ease-in-out infinite alternate; }
.scn-indians-act-christianlike .cloud-iac1 { position:absolute; top:12%; left:20%; width:80px; height:16px; background: linear-gradient(180deg, rgba(240,230,200,.5) 0%, rgba(240,230,200,.1) 100%); border-radius: 50%; filter: blur(5px); animation: iac-drift1 45s linear infinite; }
.scn-indians-act-christianlike .cloud-iac2 { position:absolute; top:20%; right:15%; width:60px; height:12px; background: linear-gradient(180deg, rgba(240,230,200,.4) 0%, rgba(240,230,200,.05) 100%); border-radius: 50%; filter: blur(4px); animation: iac-drift2 60s linear infinite reverse; }
@keyframes iac-fig1 { 0% { transform: translateY(0) rotate(1deg); } 25% { transform: translateY(-3px) rotate(2deg); } 50% { transform: translateY(0) rotate(-1deg); } 75% { transform: translateY(-2px) rotate(0deg); } 100% { transform: translateY(0) rotate(1deg); } }
@keyframes iac-fig2 { 0% { transform: translateY(0) rotate(-1deg); } 25% { transform: translateY(-2px) rotate(0deg); } 50% { transform: translateY(0) rotate(2deg); } 75% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes iac-fig3 { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-4px) rotate(3deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes iac-fire { 0% { transform: scale(0.9); opacity:0.7; box-shadow: 0 0 30px 10px #a07030, 0 0 60px 20px rgba(160,112,48,.2); } 50% { transform: scale(1.2); opacity:1; box-shadow: 0 0 60px 20px #d0a040, 0 0 120px 40px rgba(208,160,64,.4); } 100% { transform: scale(1); opacity:0.8; box-shadow: 0 0 40px 15px #b08040, 0 0 80px 30px rgba(176,128,64,.3); } }
@keyframes iac-drift1 { 0% { transform: translateX(-50px) } 100% { transform: translateX(120vw) } }
@keyframes iac-drift2 { 0% { transform: translateX(0) } 100% { transform: translateX(-100vw) } }

.scn-journey-with-indians {
  background: linear-gradient(180deg, #7a8a8a 0%, #5a6a6a 40%, #3a4a4a 100%),
              radial-gradient(ellipse at 50% 100%, #5a6a6a 0%, transparent 70%);
}
.scn-journey-with-indians .sea-calm { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #4a5a5a 0%, #2a3a3a 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.3); animation: jwi-sea 10s ease-in-out infinite alternate; }
.scn-journey-with-indians .shore-line { position:absolute; bottom:45%; left:0; right:0; height:10%; background: linear-gradient(180deg, #6a6a5a 0%, #4a4a3a 100%); border-radius: 40% 60% 0 0; }
.scn-journey-with-indians .canoe-large { position:absolute; bottom:35%; left:50%; width:140px; height:20px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 20% 20%; transform: translateX(-50%) rotate(-2deg); box-shadow: 0 3px 10px rgba(0,0,0,.4); animation: jwi-canoe 6s ease-in-out infinite alternate; }
.scn-journey-with-indians .figure-paddler1 { position:absolute; bottom:40%; left:38%; width:20px; height:34px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 45% 45% 35% 35% / 60% 60% 40% 40%; transform-origin: bottom center; transform: rotate(5deg); animation: jwi-pad1 2s ease-in-out infinite alternate; }
.scn-journey-with-indians .figure-paddler2 { position:absolute; bottom:40%; left:44%; width:20px; height:34px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 45% 45% 35% 35% / 60% 60% 40% 40%; transform-origin: bottom center; transform: rotate(-3deg); animation: jwi-pad2 2.2s ease-in-out infinite alternate; }
.scn-journey-with-indians .figure-paddler3 { position:absolute; bottom:40%; left:50%; width:20px; height:34px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 45% 45% 35% 35% / 60% 60% 40% 40%; transform-origin: bottom center; transform: rotate(2deg); animation: jwi-pad3 1.9s ease-in-out infinite alternate; }
.scn-journey-with-indians .figure-paddler4 { position:absolute; bottom:40%; left:56%; width:20px; height:34px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 45% 45% 35% 35% / 60% 60% 40% 40%; transform-origin: bottom center; transform: rotate(-4deg); animation: jwi-pad4 2.3s ease-in-out infinite alternate; }
.scn-journey-with-indians .figure-paddler5 { position:absolute; bottom:40%; left:62%; width:20px; height:34px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 45% 45% 35% 35% / 60% 60% 40% 40%; transform-origin: bottom center; transform: rotate(3deg); animation: jwi-pad5 2.1s ease-in-out infinite alternate; }
.scn-journey-with-indians .spray-fine { position:absolute; bottom:42%; left:45%; width:60px; height:6px; background: rgba(200,220,220,.2); border-radius: 50%; filter: blur(3px); animation: jwi-spray 3s ease-in-out infinite alternate; }
@keyframes jwi-sea { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(2px) } }
@keyframes jwi-canoe { 0% { transform: translateX(-50%) rotate(-3deg) translateY(0); } 50% { transform: translateX(-48%) rotate(-1deg) translateY(-2px); } 100% { transform: translateX(-52%) rotate(-2deg) translateY(1px); } }
@keyframes jwi-pad1 { 0% { transform: rotate(3deg) translateY(0); } 50% { transform: rotate(8deg) translateY(-1px); } 100% { transform: rotate(5deg) translateY(0); } }
@keyframes jwi-pad2 { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(0deg) translateY(-1px); } 100% { transform: rotate(-3deg) translateY(0); } }
@keyframes jwi-pad3 { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(5deg) translateY(-1px); } 100% { transform: rotate(2deg) translateY(0); } }
@keyframes jwi-pad4 { 0% { transform: rotate(-6deg) translateY(0); } 50% { transform: rotate(-2deg) translateY(-1px); } 100% { transform: rotate(-4deg) translateY(0); } }
@keyframes jwi-pad5 { 0% { transform: rotate(1deg) translateY(0); } 50% { transform: rotate(6deg) translateY(-1px); } 100% { transform: rotate(3deg) translateY(0); } }
@keyframes jwi-spray { 0% { opacity:0; transform: translateY(0) scaleX(1); } 50% { opacity:0.8; transform: translateY(-2px) scaleX(1.2); } 100% { opacity:0; transform: translateY(-4px) scaleX(1); } }

/* mother-tomb-oblations – moonlit, somber */
.scn-mother-tomb-oblations {
  background: linear-gradient(180deg, #0b0e1a 0%, #1a1f33 40%, #2a2f4a 70%, #1a1f22 100%),
              radial-gradient(ellipse at 50% 0%, #2a3a5a 0%, transparent 60%);
}
.scn-mother-tomb-oblations .mtb-sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #12172a 0%, transparent 100%); animation: mtb-sky 20s ease-in-out infinite alternate; }
.scn-mother-tomb-oblations .mtb-moon { position:absolute; top:6%; left:70%; width:50px; height:50px; background: radial-gradient(circle, #c8d0e0 0%, #a0a8c0 60%, transparent 80%); border-radius:50%; box-shadow: 0 0 40px 15px rgba(160,168,192,.3); animation: mtb-moon 30s linear infinite; }
.scn-mother-tomb-oblations .mtb-stars { position:absolute; top:0; left:0; right:0; bottom:60%; background: radial-gradient(2px 2px at 15% 30%, #fff 0%, transparent 100%), radial-gradient(1px 1px at 50% 20%, #fff 0%, transparent 100%), radial-gradient(3px 3px at 80% 45%, #fff 0%, transparent 100%); animation: mtb-stars 5s ease-in-out infinite alternate; }
.scn-mother-tomb-oblations .mtb-ground { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #1e2a1e 0%, #0d120d 100%); border-radius: 30% 70% 0 0 / 20% 40% 0 0; animation: mtb-ground 15s ease-in-out infinite alternate; }
.scn-mother-tomb-oblations .mtb-house { position:absolute; bottom:30%; left:25%; width:80px; height:60px; background: linear-gradient(180deg, #3a3020 0%, #1e1810 100%); border-radius: 4px 4px 0 0; box-shadow: 0 4px 10px rgba(0,0,0,.5); }
.scn-mother-tomb-oblations .mtb-roof { position:absolute; bottom:46%; left:23%; width:90px; height:25px; background: linear-gradient(180deg, #4a3a20 0%, #2a1a0a 100%); clip-path: polygon(10% 100%, 50% 0%, 90% 100%); animation: mtb-roof 10s ease-in-out infinite alternate; }
.scn-mother-tomb-oblations .mtb-tomb { position:absolute; bottom:20%; left:50%; width:30px; height:40px; background: linear-gradient(180deg, #4a5050 0%, #2a3030 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 2px 6px rgba(0,0,0,.6); }
.scn-mother-tomb-oblations .mtb-mother { position:absolute; bottom:25%; left:40%; width:16px; height:40px; background: linear-gradient(180deg, #0a0e1a 0%, #05080f 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: mtb-mother 8s ease-in-out infinite; }
.scn-mother-tomb-oblations .mtb-libation { position:absolute; bottom:22%; left:38%; width:8px; height:8px; background: radial-gradient(circle, #8088a0 0%, transparent 70%); border-radius:50%; box-shadow: 0 0 12px 4px rgba(128,136,160,.5); animation: mtb-libation 4s ease-in-out infinite alternate; }

@keyframes mtb-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes mtb-moon { 0% { transform: translateX(0) } 50% { transform: translateX(8px) } 100% { transform: translateX(0) } }
@keyframes mtb-stars { 0% { opacity:.6 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes mtb-ground { 0% { transform: scaleY(1) } 50% { transform: scaleY(.97) } 100% { transform: scaleY(1) } }
@keyframes mtb-roof { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes mtb-mother { 0% { transform: rotate(0deg) translateY(0) } 25% { transform: rotate(-4deg) translateY(-2px) } 75% { transform: rotate(4deg) translateY(-1px) } 100% { transform: rotate(0deg) translateY(0) } }
@keyframes mtb-libation { 0% { opacity:.3; transform: scale(1) } 50% { opacity:1; transform: scale(1.3) } 100% { opacity:.5; transform: scale(1) } }

/* new-year-celebration – warm dusk, festive */
.scn-new-year-celebration {
  background: linear-gradient(180deg, #4a2e1a 0%, #7a4a2e 30%, #b07440 55%, #d09850 70%, #a07440 100%),
              radial-gradient(ellipse at 50% 0%, #d09850 0%, transparent 60%);
}
.scn-new-year-celebration .nyc-sky { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #6a3a20 0%, #d09850 50%, transparent 100%); animation: nyc-sky 12s ease-in-out infinite alternate; }
.scn-new-year-celebration .nyc-sun { position:absolute; top:40%; left:80%; width:80px; height:80px; background: radial-gradient(circle, #f0b060 0%, #d09040 40%, #a06020 70%, transparent 100%); border-radius:50%; box-shadow: 0 0 60px 30px rgba(240,176,96,.4); animation: nyc-sun 25s ease-in-out infinite; }
.scn-new-year-celebration .nyc-ground { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #5a3a20 0%, #3a2210 100%); border-radius: 50% 50% 0 0 / 30% 30% 0 0; }
.scn-new-year-celebration .nyc-hut1 { position:absolute; bottom:20%; left:10%; width:60px; height:45px; background: linear-gradient(180deg, #7a5a30 0%, #4a2a10 100%); border-radius: 4px 4px 0 0; box-shadow: 0 4px 8px rgba(0,0,0,.4); }
.scn-new-year-celebration .nyc-hut2 { position:absolute; bottom:20%; left:40%; width:70px; height:50px; background: linear-gradient(180deg, #8a6a3a 0%, #5a3a1a 100%); border-radius: 4px 4px 0 0; box-shadow: 0 4px 8px rgba(0,0,0,.4); }
.scn-new-year-celebration .nyc-figures-group1 { position:absolute; bottom:15%; left:20%; width:30px; height:40px; background: radial-gradient(ellipse at 50% 100%, #2a1a0a 0%, transparent 70%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: nyc-figures1 4s ease-in-out infinite; }
.scn-new-year-celebration .nyc-figures-group2 { position:absolute; bottom:15%; left:55%; width:40px; height:45px; background: radial-gradient(ellipse at 50% 100%, #1a100a 0%, transparent 70%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: nyc-figures2 5s ease-in-out infinite 1s; }
.scn-new-year-celebration .nyc-rattles { position:absolute; bottom:25%; left:25%; width:6px; height:6px; background: #c87040; border-radius:50%; box-shadow: 0 0 8px 2px rgba(200,112,64,.6); animation: nyc-rattles .8s ease-in-out infinite alternate; }
.scn-new-year-celebration .nyc-bonfire { position:absolute; bottom:10%; left:70%; width:40px; height:30px; background: radial-gradient(circle, #f0a040 0%, #c06020 50%, transparent 80%); border-radius:50%; filter: blur(4px); animation: nyc-fire 3s ease-in-out infinite alternate; }

@keyframes nyc-sky { 0% { opacity:.6 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes nyc-sun { 0% { transform: translateY(0) scale(1); opacity:.9 } 50% { transform: translateY(-6px) scale(1.05); opacity:1 } 100% { transform: translateY(0) scale(1); opacity:.9 } }
@keyframes nyc-figures1 { 0% { transform: rotate(0deg) translateX(0) } 25% { transform: rotate(5deg) translateX(4px) } 50% { transform: rotate(-3deg) translateX(0) } 75% { transform: rotate(4deg) translateX(-4px) } 100% { transform: rotate(0deg) translateX(0) } }
@keyframes nyc-figures2 { 0% { transform: rotate(0deg) translateX(0) } 25% { transform: rotate(-5deg) translateX(-3px) } 50% { transform: rotate(3deg) translateX(0) } 75% { transform: rotate(-4deg) translateX(3px) } 100% { transform: rotate(0deg) translateX(0) } }
@keyframes nyc-rattles { 0% { transform: scale(1) rotate(0deg) } 50% { transform: scale(1.5) rotate(20deg) } 100% { transform: scale(1) rotate(0deg) } }
@keyframes nyc-fire { 0% { opacity:.5; transform: scale(1) } 50% { opacity:1; transform: scale(1.1) } 100% { opacity:.7; transform: scale(1) } }

/* offerings-and-fortune-children – dawn, hopeful */
.scn-offerings-and-fortune-children {
  background: linear-gradient(180deg, #7a5a3a 0%, #b88850 30%, #d8a868 50%, #e8c888 70%, #b89068 100%),
              radial-gradient(ellipse at 50% 0%, #e8c888 0%, transparent 60%);
}
.scn-offerings-and-fortune-children .ofc-sky { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #c8a060 0%, #e8c888 40%, transparent 100%); animation: ofc-sky 18s ease-in-out infinite alternate; }
.scn-offerings-and-fortune-children .ofc-sun { position:absolute; top:30%; left:20%; width:70px; height:70px; background: radial-gradient(circle, #f0d080 0%, #d8a850 40%, transparent 70%); border-radius:50%; box-shadow: 0 0 50px 20px rgba(240,208,128,.3); animation: ofc-sun 30s linear infinite; }
.scn-offerings-and-fortune-children .ofc-ground { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #8a6a38 0%, #4a3218 100%); border-radius: 40% 60% 0 0 / 20% 30% 0 0; }
.scn-offerings-and-fortune-children .ofc-table { position:absolute; bottom:25%; left:35%; width:70px; height:20px; background: linear-gradient(180deg, #6a4a28 0%, #3a2210 100%); border-radius: 4px; box-shadow: 0 2px 6px rgba(0,0,0,.3); }
.scn-offerings-and-fortune-children .ofc-offerings { position:absolute; bottom:29%; left:38%; width:20px; height:15px; background: radial-gradient(circle, #c89040 0%, #a06020 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; animation: ofc-offerings 8s ease-in-out infinite alternate; }
.scn-offerings-and-fortune-children .ofc-children { position:absolute; bottom:20%; left:20%; width:12px; height:30px; background: linear-gradient(180deg, #4a3020 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: ofc-children 6s ease-in-out infinite; }
.scn-offerings-and-fortune-children .ofc-adults { position:absolute; bottom:20%; left:50%; width:18px; height:36px; background: linear-gradient(180deg, #5a3a28 0%, #3a2010 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: ofc-adults 7s ease-in-out infinite 2s; }
.scn-offerings-and-fortune-children .ofc-glow { position:absolute; bottom:28%; left:30%; width:30px; height:30px; background: radial-gradient(circle, #f0d090 0%, transparent 70%); border-radius:50%; filter: blur(8px); animation: ofc-glow 5s ease-in-out infinite alternate; }

@keyframes ofc-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes ofc-sun { 0% { transform: translateX(0) scale(1) } 50% { transform: translateX(10px) scale(1.03) } 100% { transform: translateX(0) scale(1) } }
@keyframes ofc-offerings { 0% { transform: scale(1) rotate(0deg) } 50% { transform: scale(1.2) rotate(5deg) } 100% { transform: scale(1) rotate(0deg) } }
@keyframes ofc-children { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(3px) rotate(-3deg) } 50% { transform: translateX(0) rotate(0deg) } 75% { transform: translateX(-3px) rotate(3deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes ofc-adults { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes ofc-glow { 0% { opacity:.4; transform: scale(1) } 50% { opacity:.8; transform: scale(1.2) } 100% { opacity:.5; transform: scale(1) } }

/* family-sacrifices – bright interior, calm */
.scn-family-sacrifices {
  background: linear-gradient(180deg, #d0b090 0%, #c09870 30%, #a08060 60%, #806050 100%),
              radial-gradient(ellipse at 50% 0%, #e0c8a8 0%, transparent 60%);
}
.scn-family-sacrifices .fsc-wall { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #c0a080 0%, #a08060 100%); }
.scn-family-sacrifices .fsc-window { position:absolute; top:10%; left:65%; width:60px; height:70px; background: linear-gradient(180deg, #e8d8b8 0%, #d0c0a0 100%); border: 6px solid #6a5040; box-shadow: inset 0 0 20px rgba(0,0,0,.2); }
.scn-family-sacrifices .fsc-light { position:absolute; top:10%; left:65%; width:60px; height:70px; background: radial-gradient(circle at 30% 30%, #fff8e0 0%, transparent 70%); animation: fsc-light 12s ease-in-out infinite alternate; }
.scn-family-sacrifices .fsc-table { position:absolute; bottom:22%; left:20%; width:60%; height:25px; background: linear-gradient(180deg, #8a6a4a 0%, #5a3a20 100%); border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,.3); }
.scn-family-sacrifices .fsc-bowls { position:absolute; bottom:25%; left:25%; width:20px; height:12px; background: radial-gradient(circle, #b88860 0%, #806040 100%); border-radius: 50% 50% 20% 20% / 60% 60% 40% 40%; }

/* Scene: tillage-common (calm, sunlit) */
.scn-tillage-common {
  background: linear-gradient(180deg, #87ceeb 0%, #b0e0e6 40%, #f5deb3 100%),
              radial-gradient(ellipse at 70% 30%, #ffd700 0%, transparent 60%);
}
.scn-tillage-common .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #87ceeb 0%, #b0e0e6 100%);
  animation: tco-sky 20s ease-in-out infinite alternate;
}
.scn-tillage-common .sun {
  position: absolute; top: 10%; left: 70%; width: 60px; height: 60px;
  background: radial-gradient(circle, #ffe066 0%, #ffb300 100%);
  border-radius: 50%; box-shadow: 0 0 40px 15px rgba(255, 179, 0, 0.4);
  animation: tco-sun 25s linear infinite;
}
.scn-tillage-common .field {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #8fbf60 0%, #5a7a3a 100%);
  border-radius: 30% 70% 0 0 / 20% 40% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.2);
}
.scn-tillage-common .figure-a {
  position: absolute; bottom: 20%; left: 30%; width: 16px; height: 36px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tco-figure 6s ease-in-out infinite;
}
.scn-tillage-common .figure-b {
  position: absolute; bottom: 22%; left: 50%; width: 14px; height: 32px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tco-figure 6s ease-in-out infinite 2s;
}
.scn-tillage-common .tool-a {
  position: absolute; bottom: 24%; left: 32%; width: 4px; height: 20px;
  background: #5a3a1a; border-radius: 10%;
  transform: rotate(15deg);
  animation: tco-tool 6s ease-in-out infinite;
}
.scn-tillage-common .tool-b {
  position: absolute; bottom: 26%; left: 52%; width: 4px; height: 18px;
  background: #5a3a1a; border-radius: 10%;
  transform: rotate(-10deg);
  animation: tco-tool 6s ease-in-out infinite 2s;
}
.scn-tillage-common .crop {
  position: absolute; bottom: 10%; left: 20%; right: 20%; height: 15%;
  background: repeating-linear-gradient(90deg, #6a9a3a 0px, #6a9a3a 2px, transparent 2px, transparent 8px);
  mask-image: linear-gradient(180deg, transparent 20%, #000 60%);
  animation: tco-crop 4s ease-in-out infinite alternate;
}
@keyframes tco-sky { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.9 } }
@keyframes tco-sun { 0% { transform: translateX(0) translateY(0) } 50% { transform: translateX(10px) translateY(-5px) } 100% { transform: translateX(0) translateY(0) } }
@keyframes tco-figure { 0% { transform: translateY(0) rotate(-1deg) } 25% { transform: translateY(-2px) rotate(1deg) } 50% { transform: translateY(0) rotate(0deg) } 75% { transform: translateY(-1px) rotate(-1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes tco-tool { 0%,100% { transform: rotate(15deg) } 50% { transform: rotate(20deg) } }
@keyframes tco-crop { 0% { opacity: 0.6 } 100% { opacity: 1 } }

/* Scene: war-and-guarding-fields (tense, sunlit) */
.scn-war-and-guarding-fields {
  background: linear-gradient(180deg, #4682b4 0%, #87ceeb 30%, #b0c4de 70%, #d2b48c 100%),
              radial-gradient(ellipse at 60% 20%, #ffd700 0%, transparent 50%);
}
.scn-war-and-guarding-fields .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #4682b4 0%, #87ceeb 100%);
  animation: wgf-sky 15s ease-in-out infinite alternate;
}
.scn-war-and-guarding-fields .sun {
  position: absolute; top: 8%; left: 65%; width: 50px; height: 50px;
  background: radial-gradient(circle, #ffcc00 0%, #e6a800 100%);
  border-radius: 50%; box-shadow: 0 0 30px 10px rgba(230,168,0,0.3);
  animation: wgf-sun 20s linear infinite;
}
.scn-war-and-guarding-fields .field {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #7a9a4a 0%, #4a6a2a 100%);
  border-radius: 20% 80% 0 0 / 30% 50% 0 0;
  box-shadow: inset 0 6px 15px rgba(0,0,0,0.3);
}
.scn-war-and-guarding-fields .palisade {
  position: absolute; bottom: 20%; left: 15%; width: 70%; height: 25%;
  background: repeating-linear-gradient(90deg, #5a3a1a 0px, #5a3a1a 8px, transparent 8px, transparent 12px);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 -4px 10px rgba(0,0,0,0.4);
}
.scn-war-and-guarding-fields .guard-1 {
  position: absolute; bottom: 18%; left: 25%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0a00 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: wgf-guard 4s ease-in-out infinite;
}
.scn-war-and-guarding-fields .guard-2 {
  position: absolute; bottom: 20%; right: 30%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0a00 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: wgf-guard 4s ease-in-out infinite 1.5s;
}
.scn-war-and-guarding-fields .spear-1 {
  position: absolute; bottom: 24%; left: 27%; width: 3px; height: 28px;
  background: #5a3a1a; border-radius: 10%;
  transform: rotate(10deg);
  animation: wgf-spear 3s ease-in-out infinite;
}
.scn-war-and-guarding-fields .spear-2 {
  position: absolute; bottom: 26%; right: 32%; width: 3px; height: 28px;
  background: #5a3a1a; border-radius: 10%;
  transform: rotate(-8deg);
  animation: wgf-spear 3s ease-in-out infinite 1.5s;
}
.scn-war-and-guarding-fields .flag {
  position: absolute; bottom: 35%; left: 50%; width: 20px; height: 14px;
  background: linear-gradient(90deg, #c8553d 0%, #a0461a 100%);
  border-radius: 0 30% 30% 0;
  transform: translateX(-50%);
  animation: wgf-flag 2s ease-in-out infinite alternate;
}
@keyframes wgf-sky { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes wgf-sun { 0% { transform: translateX(0) } 50% { transform: translateX(12px) } 100% { transform: translateX(0) } }
@keyframes wgf-guard { 0% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-3px) rotate(2deg) } 50% { transform: translateY(0) rotate(0deg) } 75% { transform: translateY(-2px) rotate(-2deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes wgf-spear { 0%,100% { transform: rotate(10deg) } 50% { transform: rotate(15deg) } }
@keyframes wgf-flag { 0% { transform: translateX(-50%) rotate(-5deg) } 100% { transform: translateX(-50%) rotate(5deg) } }

/* Scene: battles-for-prisoners (tense, sunlit) */
.scn-battles-for-prisoners {
  background: linear-gradient(180deg, #3a5a7a 0%, #7a9aba 40%, #c0d0e0 70%, #b09070 100%),
              radial-gradient(ellipse at 40% 15%, #ffd700 0%, transparent 40%);
}
.scn-battles-for-prisoners .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #3a5a7a 0%, #7a9aba 100%);
  animation: bfp-sky 15s ease-in-out infinite alternate;
}
.scn-battles-for-prisoners .sun {
  position: absolute; top: 5%; left: 45%; width: 70px; height: 70px;
  background: radial-gradient(circle, #ffcc44 0%, #cc8800 100%);
  border-radius: 50%; box-shadow: 0 0 40px 20px rgba(204,136,0,0.3);
  animation: bfp-sun 30s linear infinite;
}
.scn-battles-for-prisoners .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #6a7a3a 0%, #3a4a1a 100%);
  border-radius: 10% 90% 0 0 / 20% 60% 0 0;
  box-shadow: inset 0 4px 10px rgba(0,0,0,0.5);
}
.scn-battles-for-prisoners .fighter-1 {
  position: absolute; bottom: 10%; left: 30%; width: 20px; height: 42px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0a00 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bfp-fight 2s ease-in-out infinite;
}
.scn-battles-for-prisoners .fighter-2 {
  position: absolute; bottom: 12%; right: 35%; width: 20px; height: 42px;
  background: linear-gradient(180deg, #1a1a2a 0%, #00001a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bfp-fight 2s ease-in-out infinite 0.5s;
}
.scn-battles-for-prisoners .weapon-1 {
  position: absolute; bottom: 16%; left: 32%; width: 4px; height: 24px;
  background: #5a3a1a; border-radius: 10%;
  transform: rotate(-30deg);
  animation: bfp-weapon 1.5s ease-in-out infinite;
}
.scn-battles-for-prisoners .weapon-2 {
  position: absolute; bottom: 18%; right: 37%; width: 4px; height: 24px;
  background: #5a3a1a; border-radius: 10%;
  transform: rotate(25deg);
  animation: bfp-weapon 1.5s ease-in-out infinite 0.75s;
}
.scn-battles-for-prisoners .prisoner {
  position: absolute; bottom: 8%; left: 50%; width: 16px; height: 30px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform: translateX(-50%) rotate(-5deg);
  animation: bfp-prison 3s ease-in-out infinite;
}
.scn-battles-for-prisoners .dust {
  position: absolute; bottom: 5%; left: 30%; right: 30%; height: 10%;
  background: radial-gradient(ellipse at 50% 100%, rgba(180,150,100,0.5) 0%, transparent 100%);
  filter: blur(8px);
  animation: bfp-dust 2s ease-in-out infinite alternate;
}
@keyframes bfp-sky { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes bfp-sun { 0% { transform: translateY(0) } 50% { transform: translateY(-8px) } 100% { transform: translateY(0) } }
@keyframes bfp-fight { 0% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-5px) rotate(5deg) scale(1.02) } 50% { transform: translateY(-2px) rotate(-2deg) } 75% { transform: translateY(-4px) rotate(3deg) scale(0.98) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes bfp-weapon { 0% { transform: rotate(-30deg) } 50% { transform: rotate(-10deg) } 100% { transform: rotate(-30deg) } }
@keyframes bfp-prison { 0%,100% { transform: translateX(-50%) rotate(-5deg) } 50% { transform: translateX(-50%) rotate(5deg) } }
@keyframes bfp-dust { 0% { opacity: 0.3; transform: scaleY(1) } 100% { opacity: 0.6; transform: scaleY(1.2) } }

/* Scene: chief-avarice (tense, bright-interior) */
.scn-chief-avarice {
  background: linear-gradient(180deg, #4a2010 0%, #6a3020 30%, #8a5040 60%, #a06040 100%),
              radial-gradient(ellipse at 50% 30%, #ffb040 0%, transparent 50%);
}
.scn-chief-avarice .tent {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #4a2010 0%, #6a3020 50%, #3a1810 100%);
  clip-path: polygon(0% 0%, 100% 0%, 100% 80%, 50% 100%, 0% 80%);
  animation: cav-tent 4s ease-in-out infinite alternate;
}
.scn-chief-avarice .table {
  position: absolute; bottom: 30%; left: 25%; right: 25%; height: 8%;
  background: linear-gradient(180deg, #5a3a20 0%, #3a2010 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 -2px 6px rgba(0,0,0,0.5);
  animation: cav-table 3s ease-in-out infinite;
}
.scn-chief-avarice .goods {
  position: absolute; bottom: 35%; left: 30%; width: 40%; height: 10%;
  background: linear-gradient(90deg, #b08050 0%, #d0a070 50%, #b08050 100%);
  border-radius: 20%;
  animation: cav-goods 2s ease-in-out infinite alternate;
}
.scn-chief-avarice .chief {
  position: absolute; bottom: 10%; left: 20%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #5a3018 0%, #2a1808 100%);
  border-radius: 45% 45% 35% 35% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cav-chief 5s ease-in-out infinite;
}
.scn-chief-avarice .trader {
  position: absolute; bottom: 15%; right: 20%; width: 20px; height: 44px;
  background: linear-gradient(180deg, #2a1a2a 0%, #100810 100%);
  border-radius: 40% 40% 30% 30% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: cav-trader 5s ease-in-out infinite 0.5s;
}
.scn-chief-avarice .slave {
  position: absolute; bottom: 8%; left: 50%; width: 14px; height: 28px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform: translateX(-50%) rotate(-3deg);
  animation: cav-slave 4s ease-in-out infinite;
}
.scn-chief-avarice .fire {
  position: absolute; bottom: 40%; left: 50%; width: 20px; height: 30px;
  background: radial-gradient(ellipse at 50% 100%, #ffa040 0%, #ff6000 60%, transparent 100%);
  border-radius: 50%;
  transform: translateX(-50%);
  filter: blur(4px);
  animation: cav-fire 1.5s ease-in-out infinite alternate;
}
.scn-chief-avarice .glow {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 50%, transparent 30%, rgba(255,160,64,0.15) 60%, transparent 100%);
  animation: cav-glow 3s ease-in-out infinite alternate;
}
@keyframes cav-tent { 0% { opacity: 0.9 } 100% { opacity: 1 } }
@keyframes cav-table { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes cav-goods { 0% { opacity: 0.7; transform: scale(0.98) } 100% { opacity: 1; transform: scale(1.02) } }
@keyframes cav-chief { 0% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-3px) rotate(2deg) } 50% { transform: translateY(0) rotate(-1deg) } 75% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes cav-trader { 0% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-2px) rotate(-2deg) } 50% { transform: translateY(0) rotate(1deg) } 75% { transform: translateY(-3px) rotate(0deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes cav-slave { 0%,100% { transform: translateX(-50%) rotate(-3deg) } 50% { transform: translateX(-50%) rotate(3deg) translateY(2px) } }
@keyframes cav-fire { 0% { transform: translateX(-50%) scaleY(1); opacity: 0.8 } 100% { transform: translateX(-50%) scaleY(1.15); opacity: 1 } }
@keyframes cav-glow { 0% { opacity: 0.7 } 100% { opacity: 1 } }

.scn-doctor-perkins-assault {
  background:
    linear-gradient(180deg, #0f0f1a 0%, #1a1a2e 40%, #2a1e1e 100%),
    radial-gradient(ellipse at 50% 80%, #3a2a2a 0%, transparent 70%);
}
.scn-doctor-perkins-assault .bg-sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #1a1a2e 0%, #0f0f1a 100%);
  animation: aslt-sky 20s ease-in-out infinite alternate;
}
.scn-doctor-perkins-assault .bg-fence {
  position: absolute; bottom: 20%; left: 10%; right: 10%;
  height: 30%;
  background:
    repeating-linear-gradient(90deg, #2a1a1a 0px, #2a1a1a 8px, transparent 8px, transparent 16px);
  border-top: 4px solid #1a0f0f;
  box-shadow: inset 0 -20px 30px rgba(0,0,0,.6);
  animation: aslt-fence 30s ease-in-out infinite;
}
.scn-doctor-perkins-assault .figure-doctor {
  position: absolute; bottom: 22%; left: 35%;
  width: 24px; height: 50px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1212 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom;
  animation: aslt-doctor 8s ease-in-out infinite;
}
.scn-doctor-perkins-assault .figure-crouch {
  position: absolute; bottom: 18%; left: 48%;
  width: 20px; height: 30px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0f0808 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform: skewX(-5deg);
  animation: aslt-crouch 6s ease-in-out infinite;
}
.scn-doctor-perkins-assault .lantern-glow {
  position: absolute; bottom: 30%; left: 30%;
  width: 10px; height: 10px;
  background: radial-gradient(circle, #d4a060 0%, #b08040 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(212, 160, 96, .4);
  animation: aslt-lantern 4s ease-in-out infinite alternate;
}
.scn-doctor-perkins-assault .ground-dark {
  position: absolute; bottom: 0; left: 0; right: 0;
  height: 20%;
  background: linear-gradient(0deg, #0a0606 0%, #1a1212 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,.8);
}
.scn-doctor-perkins-assault .chain {
  position: absolute; bottom: 24%; left: 44%;
  width: 12px; height: 18px;
  background: repeating-linear-gradient(90deg, #5a4a4a 0px, #5a4a4a 3px, transparent 3px, transparent 6px);
  border-radius: 2px;
  animation: aslt-chain 3s linear infinite;
}
@keyframes aslt-sky { 0% { opacity: .6 } 50% { opacity: 1 } 100% { opacity: .7 } }
@keyframes aslt-fence { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes aslt-doctor { 0%,100% { transform: translateX(0) rotate(0) } 50% { transform: translateX(2px) rotate(-2deg) } }
@keyframes aslt-crouch { 0%,100% { transform: skewX(-5deg) scale(1) } 50% { transform: skewX(2deg) scale(1.02) } }
@keyframes aslt-lantern { 0% { opacity: .7; box-shadow: 0 0 20px 6px rgba(212,160,96,.3) } 100% { opacity: 1; box-shadow: 0 0 40px 15px rgba(212,160,96,.5) } }
@keyframes aslt-chain { 0% { transform: translateY(0) } 50% { transform: translateY(2px) } 100% { transform: translateY(0) } }

.scn-prophetic-dream-repeated {
  background:
    linear-gradient(180deg, #0a0a1a 0%, #161632 50%, #1a1a3e 100%),
    radial-gradient(circle at 80% 20%, #2a2a5e 0%, transparent 60%);
}
.scn-prophetic-dream-repeated .bg-night {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #12122a 0%, #0a0a1a 100%);
  animation: drp-night 15s ease-in-out infinite alternate;
}
.scn-prophetic-dream-repeated .figure-sleeping {
  position: absolute; bottom: 15%; left: 35%;
  width: 28px; height: 40px;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2a 100%);
  border-radius: 40% 40% 25% 25% / 50% 50% 20% 20%;
  transform: rotate(-10deg);
  animation: drp-sleep 10s ease-in-out infinite;
}
.scn-prophetic-dream-repeated .bed-frame {
  position: absolute; bottom: 10%; left: 25%; right: 25%;
  height: 25%;
  background: #1a1a2a;
  border-radius: 5px;
  box-shadow: inset 0 5px 10px rgba(0,0,0,.5);
  border: 2px solid #2a2a3e;
}
.scn-prophetic-dream-repeated .ghost-ship {
  position: absolute; top: 10%; left: 20%;
  width: 100px; height: 60px;
  background: linear-gradient(180deg, rgba(100, 120, 150, .3) 0%, transparent 100%);
  clip-path: polygon(0% 80%, 20% 20%, 40% 30%, 60% 10%, 80% 25%, 100% 60%, 80% 80%, 60% 60%, 40% 70%, 20% 90%);
  filter: blur(3px);
  animation: drp-ship 20s ease-in-out infinite alternate;
}
.scn-prophetic-dream-repeated .wave-dream {
  position: absolute; bottom: 20%; left: 0; right: 0;
  height: 30%;
  background:
    repeating-linear-gradient(90deg, transparent 0px, transparent 20px, rgba(50, 80, 120, .2) 20px, rgba(50, 80, 120, .2) 40px);
  animation: drp-wave 8s linear infinite;
}
.scn-prophetic-dream-repeated .stars-dream {
  position: absolute; top: 0; left: 0; right: 0;
  height: 70%;
  background-image: radial-gradient(2px 2px at 20% 30%, #ffffff 100%, transparent),
    radial-gradient(2px 2px at 50% 15%, #ffffff 100%, transparent),
    radial-gradient(2px 2px at 80% 40%, #ffffff 100%, transparent);
  background-size: 100% 100%;
  background-repeat: no-repeat;
  animation: drp-stars 30s linear infinite;
}
.scn-prophetic-dream-repeated .fog-dream {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, rgba(15,15,30,.5) 0%, transparent 30%, transparent 70%, rgba(15,15,30,.5) 100%);
  filter: blur(10px);
  animation: drp-fog 12s ease-in-out infinite alternate;
}
@keyframes drp-night { 0% { opacity: .5 } 50% { opacity: 1 } 100% { opacity: .6 } }
@keyframes drp-sleep { 0%,100% { transform: rotate(-10deg) translateX(0) } 50% { transform: rotate(-8deg) translateX(3px) } }
@keyframes drp-ship { 0% { transform: translateX(-20px) scale(0.9); opacity: .3 } 50% { transform: translateX(10px) scale(1.1); opacity: .6 } 100% { transform: translateX(-20px) scale(0.9); opacity: .3 } }
@keyframes drp-wave { 0% { background-position: 0 0 } 100% { background-position: 80px 0 } }
@keyframes drp-stars { 0% { opacity: .6 } 50% { opacity: 1 } 100% { opacity: .6 } }
@keyframes drp-fog { 0% { opacity: .3 } 50% { opacity: .6 } 100% { opacity: .3 } }

.scn-rock-grampus-mistake {
  background:
    linear-gradient(180deg, #0a0a1a 0%, #0d0d24 40%, #1a1a3a 100%),
    radial-gradient(ellipse at 30% 90%, #2a2a4a 0%, transparent 70%);
}
.scn-rock-grampus-mistake .sea-dark {
  position: absolute; bottom: 0; left: 0; right: 0;
  height: 50%;
  background: linear-gradient(180deg, #0a0a2a 0%, #12123a 100%);
  animation: grm-sea 12s linear infinite;
}
.scn-rock-grampus-mistake .sky-starlit {
  position: absolute; top: 0; left: 0; right: 0;
  height: 50%;
  background:
    radial-gradient(2px 2px at 10% 20%, #ffffff 100%, transparent),
    radial-gradient(2px 2px at 30% 60%, #ffffff 100%, transparent),
    radial-gradient(2px 2px at 60% 10%, #ffffff 100%, transparent),
    radial-gradient(2px 2px at 80% 40%, #ffffff 100%, transparent),
    radial-gradient(2px 2px at 90% 70%, #ffffff 100%, transparent);
  background-size: 100% 100%;
  background-repeat: no-repeat;
  animation: grm-stars 25s linear infinite;
}
.scn-rock-grampus-mistake .rock-shape {
  position: absolute; bottom: 30%; left: 30%;
  width: 60px; height: 50px;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2a 100%);
  border-radius: 60% 50% 40% 30% / 60% 40% 50% 30%;
  clip-path: polygon(0% 100%, 20% 40%, 50% 20%, 80% 30%, 100% 70%, 80% 100%);
  box-shadow: 0 5px 15px rgba(0,0,0,.6);
  animation: grm-rock 18s ease-in-out infinite;
}
.scn-rock-grampus-mistake .ship-silhouette {
  position: absolute; bottom: 40%; right: 5%;
  width: 80px; height: 40px;
  background: #0a0a1a;
  clip-path: polygon(20% 100%, 10% 50%, 30% 30%, 50% 20%, 70% 30%, 90% 50%, 80% 100%, 60% 80%, 40% 80%);
  filter: drop-shadow(0 0 5px rgba(0,0,0,.8));
  animation: grm-ship 25s linear infinite;
}
.scn-rock-grampus-mistake .helm-figure {
  position: absolute; bottom: 42%; right: 25%;
  width: 10px; height: 20px;
  background: #0a0a1a;
  border-radius: 40% 40% 20% 20% / 50% 50% 20% 20%;
  transform: rotate(5deg);
  animation: grm-helm 5s ease-in-out infinite alternate;
}
.scn-rock-grampus-mistake .spray-mist {
  position: absolute; bottom: 32%; left: 28%;
  width: 60px; height: 20px;
  background: linear-gradient(90deg, rgba(150, 180, 220, .2) 0%, transparent 100%);
  filter: blur(7px);
  animation: grm-spray 6s ease-in-out infinite;
}
.scn-rock-grampus-mistake .star-twinkle {
  position: absolute; top: 15%; left: 50%;
  width: 4px; height: 4px;
  background: white;
  border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(255,255,255,.5);
  animation: grm-twinkle 3s ease-in-out infinite;
}
@keyframes grm-sea { 0% { background-position: 0 0 } 100% { background-position: -50px 0 } }
@keyframes grm-stars { 0% { opacity: .6; transform: translateY(0) } 50% { opacity: 1; transform: translateY(-5px) } 100% { opacity: .6; transform: translateY(0) } }
@keyframes grm-rock { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-3px) rotate(2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes grm-ship { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(-5px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes grm-helm { 0% { transform: rotate(3deg) } 100% { transform: rotate(-3deg) } }
@keyframes grm-spray { 0% { opacity: .2; transform: scale(1) } 50% { opacity: .5; transform: scale(1.3) } 100% { opacity: .2; transform: scale(1) } }
@keyframes grm-twinkle { 0% { opacity: .3; transform: scale(0.8) } 50% { opacity: 1; transform: scale(1.2) } 100% { opacity: .3; transform: scale(0.8) } }

.scn-rock-danger-captain-roused {
  background:
    linear-gradient(180deg, #0a0a1a 0%, #12122a 40%, #1a1a3a 100%),
    radial-gradient(ellipse at 50% 70%, #2a2a4a 0%, transparent 70%);
}
.scn-rock-danger-captain-roused .deck-dark {
  position: absolute; bottom: 0; left: 0; right: 0;
  height: 45%;
  background: linear-gradient(0deg, #0a0a1a 0%, #15152e 100%);
  clip-path: polygon(0% 30%, 10% 0%, 90% 0%, 100% 30%, 100% 100%, 0% 100%);
  animation: dan-deck 8s ease-in-out infinite alternate;
}
.scn-rock-danger-captain-roused .captain-figure {
  position: absolute; bottom: 35%; left: 42%;
  width: 18px; height: 36px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 20% 20%;
  transform: rotate(-5deg);
  animation: dan-captain 6s ease-in-out infinite;
}
.scn-rock-danger-captain-roused .compass-glow {
  position: absolute; bottom: 38%; left: 48%;
  width: 8px; height: 8px;
  background: radial-gradient(circle, #a0c0e0 0%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 15px 4px rgba(160, 192, 224, .4);
  animation: dan-compass 4s ease-in-out infinite alternate;
}
.scn-rock-danger-captain-roused .railing {
  position: absolute; bottom: 30%; left: 5%; right: 5%;
  height: 5px;
  background: #1a1a2e;
  border-radius: 2px;
  box-shadow: 0 3px 6px rgba(0,0,0,.5);
  animation: dan-rail 10s linear infinite;
}
.scn-rock-danger-captain-roused .wind-sweep {
  position: absolute; top: 10%; left: 0; right: 0;
  height: 30%;
  background: repeating-linear-gradient(45deg, transparent 0px, transparent 30px, rgba(200, 220, 255, .05) 30px, rgba(200, 220, 255, .05) 60px);
  filter: blur(4px);
  animation: dan-wind 5s linear infinite;
}
.scn-rock-danger-captain-roused .mast-silhouette {
  position: absolute; bottom: 40%; left: 30%; right: 30%;
  height: 40%;
  background: #0a0a1a;
  clip-path: polygon(45% 0%, 55% 0%, 52% 100%, 48% 100%);
  animation: dan-mast 12s ease-in-out infinite alternate;
}
.scn-rock-danger-captain-roused .lamp-swing {
  position: absolute; bottom: 36%; left: 50%;
  width: 6px; height: 6px;
  background: radial-gradient(circle, #d4b080 0%, transparent 60%);
  border-radius: 50%;
  box-shadow: 0 0 12px 3px rgba(212, 176, 128, .4);
  animation: dan-lamp 3s ease-in-out infinite alternate;
}
@keyframes dan-deck { 0% { transform: translateY(0) } 50% { transform: translateY(-5px) } 100% { transform: translateY(0) } }
@keyframes dan-captain { 0% { transform: rotate(-5deg) translateX(0) } 50% { transform: rotate(0deg) translateX(3px) } 100% { transform: rotate(-5deg) translateX(0) } }
@keyframes dan-compass { 0% { opacity: .5; box-shadow: 0 0 10px 2px rgba(160,192,224,.2) } 100% { opacity: 1; box-shadow: 0 0 25px 8px rgba(160,192,224,.6) } }
@keyframes dan-rail { 0% { transform: translateX(0) } 50% { transform: translateX(-10px) } 100% { transform: translateX(0) } }
@keyframes dan-wind { 0% { background-position: 0 0 } 100% { background-position: -60px 0 } }
@keyframes dan-mast { 0% { transform: rotate(0) } 50% { transform: rotate(2deg) } 100% { transform: rotate(0) } }
@keyframes dan-lamp { 0% { transform: rotate(-5deg) translateY(0) } 100% { transform: rotate(5deg) translateY(-2px) } }

.scn-love-feast-chapel { background: linear-gradient(160deg, #3a2a1a 0%, #6a4a2a 40%, #8a6a3a 70%, #4a3a1a 100%), radial-gradient(ellipse at 30% 70%, #c09050 0%, #2a1a0a 80%); }
.scn-love-feast-chapel .wall-back { position:absolute; inset:0 0 0 0; background: linear-gradient(180deg, #5a3a1a 0%, #7a5a2a 50%, #5a3a1a 100%); opacity:0.8; }
.scn-love-feast-chapel .arch-left { position:absolute; bottom:20%; left:0%; width:30%; height:70%; background: linear-gradient(160deg, #6a4a2a 0%, #3a2a1a 100%); border-radius: 80% 80% 0 0 / 120% 120% 0 0; box-shadow: inset -8px 0 20px rgba(0,0,0,0.6); transform-origin:bottom left; animation: lfc-arch-l 12s ease-in-out infinite alternate; }
.scn-love-feast-chapel .arch-right { position:absolute; bottom:20%; right:0%; width:30%; height:70%; background: linear-gradient(200deg, #6a4a2a 0%, #3a2a1a 100%); border-radius: 80% 80% 0 0 / 120% 120% 0 0; box-shadow: inset 8px 0 20px rgba(0,0,0,0.6); transform-origin:bottom right; animation: lfc-arch-r 14s ease-in-out infinite alternate; }
.scn-love-feast-chapel .altar { position:absolute; bottom:18%; left:50%; width:60px; height:30px; transform:translateX(-50%); background: linear-gradient(180deg, #8a6a3a 0%, #5a3a1a 100%); border-radius: 8% 8% 2% 2%; box-shadow: 0 6px 14px rgba(0,0,0,0.7); }
.scn-love-feast-chapel .candle-glow { position:absolute; bottom:32%; left:50%; width:20px; height:20px; transform:translateX(-50%); background: radial-gradient(circle, #ffd080 0%, #c08040 50%, transparent 100%); border-radius:50%; box-shadow: 0 0 40px 20px #c08040, 0 0 80px 40px rgba(192,128,64,0.3); animation: lfc-cglow 3s ease-in-out infinite alternate; }
.scn-love-feast-chapel .candle-flame { position:absolute; bottom:34%; left:50%; width:8px; height:14px; transform:translateX(-50%); background: linear-gradient(0deg, #ffd080 0%, #ff8a40 70%, #ff6000 100%); border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%; box-shadow: 0 0 10px 4px #ffa040; animation: lfc-flame 1.5s ease-in-out infinite alternate; }
.scn-love-feast-chapel .figure-worshipper { position:absolute; bottom:16%; left:38%; width:16px; height:40px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: lfc-walk 6s ease-in-out infinite; }
.scn-love-feast-chapel .ray-beam { position:absolute; top:0%; left:30%; width:40%; height:50%; background: linear-gradient(180deg, rgba(255,240,200,0.3) 0%, rgba(255,240,200,0.05) 100%); clip-path: polygon(0% 0%, 100% 0%, 70% 100%, 30% 100%); animation: lfc-ray1 8s ease-in-out infinite alternate; }
.scn-love-feast-chapel .ray-shaft { position:absolute; top:0%; left:45%; width:10%; height:60%; background: linear-gradient(180deg, rgba(255,250,220,0.2) 0%, rgba(255,250,220,0) 100%); transform:skewX(-10deg); animation: lfc-ray2 10s ease-in-out infinite alternate; }
@keyframes lfc-arch-l { 0% { transform:scaleX(1) translateY(0); } 50% { transform:scaleX(0.98) translateY(-2px); } 100% { transform:scaleX(1) translateY(0); } }
@keyframes lfc-arch-r { 0% { transform:scaleX(1) translateY(0); } 50% { transform:scaleX(0.98) translateY(-2px); } 100% { transform:scaleX(1) translateY(0); } }
@keyframes lfc-cglow { 0% { box-shadow:0 0 30px 15px #c08040, 0 0 60px 30px rgba(192,128,64,0.2); opacity:0.8; } 50% { box-shadow:0 0 50px 25px #e0a050, 0 0 100px 50px rgba(224,160,80,0.4); opacity:1; } 100% { box-shadow:0 0 35px 18px #c08040, 0 0 70px 35px rgba(192,128,64,0.25); opacity:0.85; } }
@keyframes lfc-flame { 0% { transform:translateX(-50%) scaleY(1) rotate(-2deg); } 50% { transform:translateX(-50%) scaleY(1.15) rotate(0deg); } 100% { transform:translateX(-50%) scaleY(0.9) rotate(2deg); } }
@keyframes lfc-walk { 0% { transform:translateX(0) translateY(0) rotate(-1deg); } 25% { transform:translateX(5px) translateY(-1px) rotate(1deg); } 50% { transform:translateX(10px) translateY(0) rotate(-1deg); } 75% { transform:translateX(15px) translateY(-1px) rotate(1deg); } 100% { transform:translateX(20px) translateY(0) rotate(0); } }
@keyframes lfc-ray1 { 0% { opacity:0.3; transform:scaleY(1); } 50% { opacity:0.6; transform:scaleY(1.05); } 100% { opacity:0.3; transform:scaleY(1); } }
@keyframes lfc-ray2 { 0% { opacity:0.2; transform:skewX(-10deg) scaleY(1); } 50% { opacity:0.5; transform:skewX(-8deg) scaleY(1.1); } 100% { opacity:0.2; transform:skewX(-10deg) scaleY(1); } }

.scn-friendship-with-mr-c { background: linear-gradient(170deg, #c8a86a 0%, #e8c88a 40%, #f0d8a0 70%, #d0b070 100%), radial-gradient(ellipse at 40% 30%, #ffeca0 0%, #b09050 80%); }
.scn-friendship-with-mr-c .wall-warm { position:absolute; inset:0 0 0 0; background: linear-gradient(180deg, #e8c88a 0%, #d0b070 50%, #c0a060 100%); }
.scn-friendship-with-mr-c .window-frame { position:absolute; top:8%; left:55%; width:30%; height:50%; background: #8a6a3a; border-radius: 4% 4% 2% 2%; box-shadow: inset 0 0 0 6px #6a4a2a, 0 6px 18px rgba(0,0,0,0.3); }
.scn-friendship-with-mr-c .window-light { position:absolute; top:10%; left:57%; width:26%; height:46%; background: linear-gradient(160deg, #fff0c0 0%, #ffe8a0 100%); border-radius: 2%; box-shadow: 0 0 40px 20px rgba(255,240,180,0.5); animation: fmc-wlight 6s ease-in-out infinite alternate; }
.scn-friendship-with-mr-c .loom-frame { position:absolute; bottom:10%; left:15%; width:35%; height:55%; background: linear-gradient(180deg, #7a5a2a 0%, #5a3a1a 100%); border-radius: 4% 4% 2% 2%; box-shadow: 0 8px 20px rgba(0,0,0,0.4); }
.scn-friendship-with-mr-c .loom-threads { position:absolute; bottom:15%; left:18%; width:29%; height:45%; background: repeating-linear-gradient(0deg, #c8a86a 0px, #c8a86a 3px, #e8c88a 3px, #e8c88a 6px); opacity:0.7; animation: fmc-threads 4s ease-in-out infinite alternate; }
.scn-friendship-with-mr-c .figure-left { position:absolute; bottom:8%; left:28%; width:18px; height:48px; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 55% 55% 45% 45%; transform:rotate(5deg); animation: fmc-fig-l 5s ease-in-out infinite alternate; }
.scn-friendship-with-mr-c .figure-right { position:absolute; bottom:8%; right:22%; width:18px; height:48px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 55% 55% 45% 45%; transform:rotate(-5deg); animation: fmc-fig-r 5s ease-in-out infinite alternate; }
.scn-friendship-with-mr-c .table-cups { position:absolute; bottom:4%; left:50%; width:40px; height:16px; transform:translateX(-50%); background: linear-gradient(180deg, #8a6a3a 0%, #5a3a1a 100%); border-radius: 20% 20% 8% 8%; box-shadow: 0 4px 8px rgba(0,0,0,0.3); }
@keyframes fmc-wlight { 0% { opacity:0.9; transform:scale(1); } 50% { opacity:1; transform:scale(1.02); } 100% { opacity:0.85; transform:scale(0.98); } }
@keyframes fmc-threads { 0% { transform:translateY(0); } 50% { transform:translateY(-2px); } 100% { transform:translateY(0); } }
@keyframes fmc-fig-l { 0% { transform:rotate(5deg) translateY(0); } 50% { transform:rotate(7deg) translateY(-2px); } 100% { transform:rotate(5deg) translateY(0); } }
@keyframes fmc-fig-r { 0% { transform:rotate(-5deg) translateY(0); } 50% { transform:rotate(-7deg) translateY(-2px); } 100% { transform:rotate(-5deg) translateY(0); } }

.scn-doctrinal-puzzles { background: linear-gradient(160deg, #2a2a3a 0%, #3a3a4a 40%, #4a4a5a 70%, #2a2a3a 100%), radial-gradient(ellipse at 60% 20%, #606080 0%, #1a1a2a 80%); }
.scn-doctrinal-puzzles .room-dark { position:absolute; inset:0 0 0 0; background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 50%, #1a1a2a 100%); }
.scn-doctrinal-puzzles .desk-wide { position:absolute; bottom:10%; left:10%; width:80%; height:20%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 6% 6% 2% 2%; box-shadow: 0 6px 16px rgba(0,0,0,0.6); }
.scn-doctrinal-puzzles .book-stack { position:absolute; bottom:22%; left:15%; width:30px; height:30px; background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%); border-radius: 4% 4% 2% 2%; box-shadow: 2px 2px 8px rgba(0,0,0,0.5); animation: dp-stack 7s ease-in-out infinite alternate; }
.scn-doctrinal-puzzles .book-open { position:absolute; bottom:20%; left:50%; width:50px; height:30px; transform:translateX(-50%); background: linear-gradient(170deg, #e8d8b0 0%, #c8b890 100%); border-radius: 4% 4% 2% 2%; box-shadow: 0 4px 12px rgba(0,0,0,0.4); animation: dp-book 10s ease-in-out infinite; }
.scn-doctrinal-puzzles .figure-sitting { position:absolute; bottom:10%; left:32%; width:22px; height:52px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 55% 55% 45% 45%; transform-origin:bottom center; animation: dp-sit 4s ease-in-out infinite alternate; }
.scn-doctrinal-puzzles .figure-shadow { position:absolute; bottom:8%; left:30%; width:40px; height:16px; background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 100%); border-radius:50%; animation: dp-shadow 4s ease-in-out infinite alternate; }
.scn-doctrinal-puzzles .lamp-bright { position:absolute; top:10%; left:45%; width:30px; height:40px; background: radial-gradient(circle at 50% 100%, #ffe0a0 0%, #c08040 60%, #4a3a1a 100%); border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%; box-shadow: 0 0 60px 30px rgba(255,224,160,0.3), 0 0 120px 60px rgba(255,224,160,0.1); }
.scn-doctrinal-puzzles .lamp-flare { position:absolute; top:8%; left:48%; width:6px; height:12px; background: linear-gradient(0deg, #ffe0a0 0%, #ffb060 100%); border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%; box-shadow: 0 0 20px 8px #ffb060; animation: dp-flare 2s ease-in-out infinite alternate; }
.scn-doctrinal-puzzles .particle-drift { position:absolute; top:0%; left:0%; width:100%; height:100%; background: radial-gradient(circle at 20% 30%, rgba(255,255,255,0.05) 0%, transparent 50%), radial-gradient(circle at 80% 60%, rgba(255,255,255,0.03) 0%, transparent 50%); pointer-events:none; animation: dp-particle 20s linear infinite; }
@keyframes dp-stack { 0% { transform:translateY(0) scale(1); } 50% { transform:translateY(-2px) scale(1.02); } 100% { transform:translateY(0) scale(1); } }
@keyframes dp-book { 0% { transform:translateX(-50%) rotate(0deg); } 25% { transform:translateX(-50%) rotate(1deg); } 75% { transform:translateX(-50%) rotate(-1deg); } 100% { transform:translateX(-50%) rotate(0deg); } }
@keyframes dp-sit { 0% { transform:translateY(0) rotate(-2deg); } 50% { transform:translateY(-3px) rotate(0deg); } 100% { transform:translateY(0) rotate(2deg); } }
@keyframes dp-shadow { 0% { transform:scaleX(1) scaleY(1); opacity:0.5; } 50% { transform:scaleX(0.9) scaleY(0.8); opacity:0.3; } 100% { transform:scaleX(1) scaleY(1); opacity:0.5; } }
@keyframes dp-flare { 0% { transform:scaleY(1) rotate(-3deg); opacity:0.8; } 50% { transform:scaleY(1.2) rotate(0deg); opacity:1; } 100% { transform:scaleY(0.8) rotate(3deg); opacity:0.7; } }
@keyframes dp-particle { 0% { transform:translateX(0) translateY(0); } 50% { transform:translateX(20px) translateY(-20px); } 100% { transform:translateX(0) translateY(0); } }

.scn-examination-for-communion { background: linear-gradient(170deg, #6a5a4a 0%, #8a7a6a 40%, #9a8a7a 70%, #6a5a4a 100%), radial-gradient(ellipse at 50% 10%, #c0b0a0 0%, #4a3a2a 80%); }
.scn-examination-for-communion .nave-bg { position:absolute; inset:0 0 0 0; background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 50%, #4a3a2a 100%); }
.scn-examination-for-communion .pew-row { position:absolute; bottom:20%; left:5%; width:90%; height:18%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 4% 4% 2% 2%; box-shadow: 0 4px 12px rgba(0,0,0,0.5); }
.scn-examination-for-communion .pew-back { position:absolute; bottom:32%; left:8%; width:84%; height:14%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 6% 6% 2% 2%; box-shadow: 0 2px 8px rgba(0,0,0,0.4); }
.scn-examination-for-communion .pulpit { position:absolute; bottom:8%; left:50%; width:40px; height:60px; transform:translateX(-50%); background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%); border-radius: 8% 8% 4% 4%; box-shadow: 0 8px 20px rgba(0,0,0,0.5); }
.scn-examination-for-communion .figure-preacher { position:absolute; bottom:22%; left:50%; width:20px; height:50px; transform:translateX(-50%); background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 55% 55% 45% 45%; animation: ec-preacher 6s ease-in-out infinite alternate; }
.scn-examination-for-communion .figure-congregant-a { position:absolute; bottom:14%; left:22%; width:16px; height:40px; background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%); border-radius: 50% 50% 40% 40% / 55% 55% 45% 45%; transform:rotate(3deg); animation: ec-cong-a 5s ease-in-out infinite alternate; }
.scn-examination-for-communion .figure-congregant-b { position:absolute; bottom:14%; right:22%; width:16px; height:40px; background: linear-gradient(180deg, #4a3a3a 0%, #2a2a3a 100%); border-radius: 50% 50% 40% 40% / 55% 55% 45% 45%; transform:rotate(-3deg); animation: ec-cong-b 5s ease-in-out infinite alternate; }
.scn-examination-for-communion .overhead-light { position:absolute; top:0%; left:40%; width:20%; height:40%; background: linear-gradient(180deg, rgba(255,255,240,0.2) 0%, rgba(255,255,240,0) 100%); clip-path: polygon(40% 0%, 60% 0%, 70% 100%, 30% 100%); animation: ec-light 7s ease-in-out infinite alternate; }
.scn-examination-for-communion .altar-table { position:absolute; bottom:12%; left:50%; width:50px; height:20px; transform:translateX(-50%); background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius: 6% 6% 2% 2%; box-shadow: 0 4px 10px rgba(0,0,0,0.4); }
@keyframes ec-preacher { 0% { transform:translateX(-50%) rotate(-1deg) translateY(0); } 50% { transform:translateX(-50%) rotate(0deg) translateY(-2px); } 100% { transform:translateX(-50%) rotate(1deg) translateY(0); } }
@keyframes ec-cong-a { 0% { transform:rotate(3deg) translateY(0); } 50% { transform:rotate(4deg) translateY(-1px); } 100% { transform:rotate(3deg) translateY(0); } }
@keyframes ec-cong-b { 0% { transform:rotate(-3deg) translateY(0); } 50% { transform:rotate(-4deg) translateY(-1px); } 100% { transform:rotate(-3deg) translateY(0); } }
@keyframes ec-light { 0% { opacity:0.2; transform:scaleY(1); } 50% { opacity:0.4; transform:scaleY(1.05); } 100% { opacity:0.2; transform:scaleY(1); } }

/* revived-by-black-men */
.scn-revived-by-black-men {
  background: linear-gradient(180deg, #1a1010 0%, #2a1a15 40%, #3a2218 100%),
              radial-gradient(ellipse at 50% 30%, #5a3a28 0%, transparent 60%);
}
.scn-revived-by-black-men .floor {
  position: absolute; bottom:0; left:0; right:0; height:35%;
  background: linear-gradient(0deg, #1f1412 0%, #2a1c16 100%);
  border-radius: 20% 20% 0 0;
}
.scn-revived-by-black-men .wall-left {
  position: absolute; top:0; left:0; bottom:35%; width:30%;
  background: linear-gradient(180deg, #2e1e1a 0%, #1f1410 100%);
  border-radius: 0 0 30% 0;
  transform: scale(0.95); opacity: 0.8;
}
.scn-revived-by-black-men .wall-right {
  position: absolute; top:0; right:0; bottom:35%; width:30%;
  background: linear-gradient(180deg, #2e1e1a 0%, #1f1410 100%);
  border-radius: 0 0 0 30%;
  transform: scale(0.95); opacity: 0.8;
}
.scn-revived-by-black-men .lantern-glow {
  position: absolute; top:20%; left:50%; width:60px; height:80px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse, #d4a050 0%, #b07020 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px rgba(212,160,80,0.3);
  animation: rbn-glow 3s ease-in-out infinite alternate;
}
.scn-revived-by-black-men .figure-lying {
  position: absolute; bottom:20%; left:35%; width:100px; height:40px;
  background: linear-gradient(180deg, #3d2b23 0%, #2a1c16 100%);
  border-radius: 40% 40% 60% 60% / 80% 80% 40% 40%;
  transform: rotate(-5deg);
  animation: rbn-breathe 4s ease-in-out infinite;
}
.scn-revived-by-black-men .figure-standing-a {
  position: absolute; bottom:30%; left:15%; width:45px; height:110px;
  background: linear-gradient(180deg, #3a2620 0%, #251814 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: rbn-stand 8s ease-in-out infinite;
}
.scn-revived-by-black-men .figure-standing-b {
  position: absolute; bottom:32%; right:18%; width:40px; height:100px;
  background: linear-gradient(180deg, #3a2620 0%, #251814 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: rbn-stand 8s ease-in-out infinite reverse;
}
.scn-revived-by-black-men .shadows {
  position: absolute; inset:0;
  background: radial-gradient(ellipse at 30% 70%, rgba(0,0,0,0.5) 0%, transparent 60%),
              radial-gradient(ellipse at 70% 60%, rgba(0,0,0,0.4) 0%, transparent 50%);
  animation: rbn-fade 12s ease-in-out infinite alternate;
}
@keyframes rbn-glow {
  0% { opacity: 0.7; transform: translateX(-50%) scale(1); }
  50% { opacity: 1; transform: translateX(-50%) scale(1.05); }
  100% { opacity: 0.8; transform: translateX(-50%) scale(0.98); }
}
@keyframes rbn-breathe {
  0% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(-5deg) translateY(-3px); }
  100% { transform: rotate(-5deg) translateY(0); }
}
@keyframes rbn-stand {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes rbn-fade {
  0% { opacity: 0.3; }
  50% { opacity: 0.6; }
  100% { opacity: 0.2; }
}

/* first-taste-of-liquor */
.scn-first-taste-of-liquor {
  background: linear-gradient(135deg, #0d0d0d 0%, #1a1412 50%, #2a1c18 100%),
              radial-gradient(ellipse at 70% 60%, #4a2a1a 0%, transparent 70%);
}
.scn-first-taste-of-liquor .bg-dark {
  position: absolute; inset:0;
  background: linear-gradient(180deg, #0a0808 0%, #14100e 100%);
  opacity: 0.9;
}
.scn-first-taste-of-liquor .table-edge {
  position: absolute; bottom:25%; left:20%; right:20%; height:8px;
  background: linear-gradient(90deg, #2a1a14 0%, #3a241d 50%, #2a1a14 100%);
  border-radius: 4px;
}
.scn-first-taste-of-liquor .cup {
  position: absolute; bottom:30%; left:55%; width:30px; height:40px;
  background: linear-gradient(180deg, #b08050 0%, #704020 100%);
  border-radius: 0 0 30% 30%;
  transform-origin: bottom center;
  animation: fst-cup 4s ease-in-out infinite;
}
.scn-first-taste-of-liquor .hand {
  position: absolute; bottom:28%; left:60%; width:35px; height:20px;
  background: linear-gradient(180deg, #4a332a 0%, #2a1c16 100%);
  border-radius: 30% 30% 10% 10%;
  transform: rotate(10deg);
  animation: fst-hand 4s ease-in-out infinite;
}
.scn-first-taste-of-liquor .drinker-silhouette {
  position: absolute; bottom:20%; left:38%; width:60px; height:120px;
  background: linear-gradient(180deg, #1a1412 0%, #0d0a08 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: fst-sway 6s ease-in-out infinite;
}
.scn-first-taste-of-liquor .light-spot {
  position: absolute; top:15%; left:55%; width:80px; height:100px;
  background: radial-gradient(ellipse, #d4a050 0%, transparent 60%);
  border-radius: 50%;
  opacity: 0.4;
  animation: fst-light 3s ease-in-out infinite alternate;
}
.scn-first-taste-of-liquor .splash {
  position: absolute; bottom:38%; left:57%; width:12px; height:4px;
  background: #c08030;
  border-radius: 50%;
  opacity: 0;
  animation: fst-splash 4s ease-in-out infinite;
}
@keyframes fst-cup {
  0% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(8deg) translateY(-2px); }
  100% { transform: rotate(-5deg) translateY(0); }
}
@keyframes fst-hand {
  0% { transform: rotate(10deg) translateY(0); }
  50% { transform: rotate(15deg) translateY(-3px); }
  100% { transform: rotate(10deg) translateY(0); }
}
@keyframes fst-sway {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(5px) rotate(2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes fst-light {
  0% { opacity: 0.3; }
  50% { opacity: 0.6; }
  100% { opacity: 0.2; }
}
@keyframes fst-splash {
  0%, 90% { opacity: 0; }
  45% { opacity: 1; transform: scale(1.5); }
}

/* despair-on-ship */
.scn-despair-on-ship {
  background: linear-gradient(180deg, #0f0f1a 0%, #1a141a 50%, #2a1a1a 100%),
              radial-gradient(ellipse at 30% 80%, #3a2a2a 0%, transparent 60%);
}
.scn-despair-on-ship .hold-floor {
  position: absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(0deg, #1a1212 0%, #2a1a16 100%);
  border-radius: 30% 30% 0 0;
}
.scn-despair-on-ship .beam {
  position: absolute; top:25%; left:0; right:0; height:12px;
  background: linear-gradient(90deg, #3a2822 0%, #4c3228 50%, #3a2822 100%);
  border-radius: 6px;
  animation: dos-rock 10s ease-in-out infinite;
}
.scn-despair-on-ship .chain {
  position: absolute; top:30%; left:40%; width:4px; height:30px;
  background: repeating-linear-gradient(0deg, #6a5a4a 0px, #6a5a4a 4px, #4a3a2a 4px, #4a3a2a 8px);
  border-radius: 2px;
  transform-origin: top center;
  animation: dos-chain 5s ease-in-out infinite;
}
.scn-despair-on-ship .figure-sitting {
  position: absolute; bottom:20%; left:35%; width:80px; height:70px;
  background: linear-gradient(180deg, #2a1e1a 0%, #1a1210 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 40% 40%;
  transform: translateY(0);
  animation: dos-sit 6s ease-in-out infinite;
}
.scn-despair-on-ship .porthole {
  position: absolute; top:15%; right:15%; width:40px; height:40px;
  border: 6px solid #3a2a22;
  border-radius: 50%;
  background: #1a1a2a;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.8);
}
.scn-despair-on-ship .porthole-glow {
  position: absolute; top:15%; right:15%; width:40px; height:40px;
  border-radius: 50%;
  background: radial-gradient(circle, #6080b0 0%, #304060 60%, transparent 80%);
  opacity: 0.4;
  animation: dos-glow 4s ease-in-out infinite alternate;
}
.scn-despair-on-ship .rat {
  position: absolute; bottom:10%; left:20%; width:20px; height:8px;
  background: #3a2a22;
  border-radius: 50% 50% 20% 20%;
  animation: dos-scuttle 12s linear infinite;
}
@keyframes dos-rock {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes dos-chain {
  0% { transform: rotate(-5deg); }
  50% { transform: rotate(5deg); }
  100% { transform: rotate(-5deg); }
}
@keyframes dos-sit {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(3px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes dos-glow {
  0% { opacity: 0.2; }
  50% { opacity: 0.6; }
  100% { opacity: 0.3; }
}
@keyframes dos-scuttle {
  0% { transform: translateX(0); }
  100% { transform: translateX(300px); }
}

/* flogged-for-not-eating */
.scn-flogged-for-not-eating {
  background: linear-gradient(180deg, #1a1015 0%, #2a1a1a 40%, #3a2018 100%),
              radial-gradient(ellipse at 60% 70%, #4a2a20 0%, transparent 70%);
}
.scn-flogged-for-not-eating .deck-floor {
  position: absolute; bottom:0; left:0; right:0; height:25%;
  background: linear-gradient(0deg, #1f1412 0%, #2e1e18 100%);
  border-radius: 10% 10% 0 0;
}
.scn-flogged-for-not-eating .windlass {
  position: absolute; bottom:22%; left:30%; right:30%; height:20px;
  background: linear-gradient(90deg, #3a2a1a 0%, #4c3822 50%, #3a2a1a 100%);
  border-radius: 10px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-flogged-for-not-eating .victim {
  position: absolute; bottom:20%; left:35%; width:80px; height:40px;
  background: linear-gradient(180deg, #2a1e1a 0%, #1a1210 100%);
  border-radius: 40% 40% 20% 20% / 80% 80% 40% 40%;
  transform: rotate(-5deg);
  animation: fne-struggle 3s ease-in-out infinite;
}
.scn-flogged-for-not-eating .flogger {
  position: absolute; bottom:30%; right:25%; width:50px; height:90px;
  background: linear-gradient(180deg, #2a1e1a 0%, #1a1210 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: fne-arm 2s ease-in-out infinite;
}
.scn-flogged-for-not-eating .whip {
  position: absolute; bottom:40%; right:28%; width:60px; height:4px;
  background: #4a3a2a;
  border-radius: 2px;
  transform-origin: 100% 50%;
  animation: fne-whip 2s ease-in-out infinite;
}
.scn-flogged-for-not-eating .rope {
  position: absolute; top:15%; left:38%; width:4px; height:50px;
  background: #5a4a3a;
  transform: rotate(10deg);
  animation: fne-rope 4s ease-in-out infinite;
}
.scn-flogged-for-not-eating .shadow-cast {
  position: absolute; inset:0;
  background: radial-gradient(ellipse at 40% 80%, rgba(0,0,0,0.6) 0%, transparent 70%);
  animation: fne-shadow 5s ease-in-out infinite alternate;
}
@keyframes fne-struggle {
  0% { transform: rotate(-5deg) translateX(0); }
  50% { transform: rotate(0deg) translateX(5px); }
  100% { transform: rotate(-5deg) translateX(0); }
}
@keyframes fne-arm {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(-30deg); }
  100% { transform: rotate(0deg); }
}
@keyframes fne-whip {
  0% { transform: rotate(0deg) scaleX(1); }
  50% { transform: rotate(-40deg) scaleX(1.2); }
  100% { transform: rotate(0deg) scaleX(1); }
}
@keyframes fne-rope {
  0% { transform: rotate(10deg) translateY(0); }
  50% { transform: rotate(15deg) translateY(2px); }
  100% { transform: rotate(10deg) translateY(0); }
}
@keyframes fne-shadow {
  0% { opacity: 0.3; }
  50% { opacity: 0.7; }
  100% { opacity: 0.4; }
}

.scn-item-watch {
  background:
    radial-gradient(ellipse at 50% 60%, #c8a84a 0%, transparent 50%),
    radial-gradient(ellipse at 50% 100%, #3a2a1a 0%, transparent 70%),
    linear-gradient(180deg, #6a4a2a 0%, #8a6a3a 40%, #4a3a1a 100%);
}
.scn-item-watch .wall-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%);
  animation: siw-wall 20s ease-in-out infinite;
}
.scn-item-watch .table {
  position: absolute; bottom: 28%; left: 50%;
  width: 140px; height: 12px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #8a6a3a 0%, #5a3a1a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 12px rgba(0,0,0,.5);
}
.scn-item-watch .table-leg {
  position: absolute; bottom: 18%; width: 8px; height: 60px;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a12 100%);
  border-radius: 2px;
}
.scn-item-watch .leg-l { left: 36%; }
.scn-item-watch .leg-r { left: 58%; }
.scn-item-watch .object-watch {
  position: absolute; bottom: 36%; left: 50%;
  width: 28px; height: 32px;
  transform: translateX(-50%);
  background: radial-gradient(circle at 50% 40%, #e8d080 0%, #a08040 60%, #604020 100%);
  border-radius: 50% 50% 40% 40%;
  box-shadow: 0 0 20px 6px rgba(200,168,74,.5), 0 0 40px 12px rgba(200,168,74,.2);
  animation: siw-glow 3s ease-in-out infinite alternate;
}
.scn-item-watch .figure-shadow {
  position: absolute; bottom: 20%; left: 30%;
  width: 120px; height: 200px;
  background: linear-gradient(180deg, rgba(20,15,10,.8) 0%, transparent 100%);
  border-radius: 40% 40% 30% 30%;
  filter: blur(12px);
  animation: siw-shadow 6s ease-in-out infinite alternate;
}
.scn-item-watch .glow-spot {
  position: absolute; top: 20%; left: 55%;
  width: 80px; height: 80px;
  background: radial-gradient(circle, rgba(255,220,160,.15) 0%, transparent 70%);
  border-radius: 50%;
  animation: siw-spot 8s ease-in-out infinite alternate;
}
.scn-item-watch .dust {
  position: absolute; inset: 0;
  background:
    radial-gradient(circle at 20% 30%, rgba(255,220,180,.12) 0%, transparent 2%),
    radial-gradient(circle at 60% 50%, rgba(255,220,180,.08) 0%, transparent 1.5%),
    radial-gradient(circle at 80% 25%, rgba(255,220,180,.1) 0%, transparent 2%),
    radial-gradient(circle at 40% 70%, rgba(255,220,180,.06) 0%, transparent 1%);
  animation: siw-dust 15s ease-in-out infinite alternate;
}
@keyframes siw-wall { 0%,100% { opacity: .9 } 50% { opacity: 1 } }
@keyframes siw-glow { 0% { box-shadow: 0 0 15px 4px rgba(200,168,74,.4), 0 0 30px 8px rgba(200,168,74,.2); transform: translateX(-50%) scale(1); } 50% { box-shadow: 0 0 30px 10px rgba(200,168,74,.7), 0 0 60px 20px rgba(200,168,74,.3); transform: translateX(-50%) scale(1.03); } 100% { box-shadow: 0 0 20px 6px rgba(200,168,74,.5), 0 0 40px 12px rgba(200,168,74,.2); transform: translateX(-50%) scale(1); } }
@keyframes siw-shadow { 0% { transform: translateX(-10px) scaleX(.9); opacity: .6; } 50% { transform: translateX(5px) scaleX(1); opacity: .8; } 100% { transform: translateX(-10px) scaleX(.9); opacity: .6; } }
@keyframes siw-spot { 0% { opacity: .3; transform: translate(0, 0); } 50% { opacity: .7; transform: translate(10px, -8px); } 100% { opacity: .4; transform: translate(5px, 3px); } }
@keyframes siw-dust { 0% { opacity: .2; transform: translate(0, 0); } 50% { opacity: .5; transform: translate(-5px, -10px); } 100% { opacity: .3; transform: translate(8px, 5px); } }

.scn-called-jacob {
  background:
    radial-gradient(ellipse at 50% 30%, #5a4a3a 0%, transparent 60%),
    radial-gradient(ellipse at 50% 100%, #1a1210 0%, #2a1a12 100%);
}
.scn-called-jacob .wall-dark {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #3a2a1a 0%, #4a3a2a 50%, #2a1a0a 100%);
  animation: scj-wall 20s ease-in-out infinite;
}
.scn-called-jacob .floor-boards {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(90deg, #4a3a2a 0%, #5a4a3a 50%, #3a2a1a 100%);
  box-shadow: inset 0 20px 30px rgba(0,0,0,.5);
}
.scn-called-jacob .doorway {
  position: absolute; bottom: 30%; left: 15%;
  width: 80px; height: 140px;
  background: linear-gradient(180deg, #1a0a0a 0%, #0a0505 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,.8);
}
.scn-called-jacob .door-open {
  position: absolute; bottom: 30%; left: calc(15% + 80px);
  width: 70px; height: 140px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  transform-origin: left center;
  transform: perspective(400px) rotateY(15deg);
  border-radius: 0 4px 4px 0;
  box-shadow: -10px 0 20px rgba(0,0,0,.5);
  animation: scj-door 8s ease-in-out infinite;
}
.scn-called-jacob .figure-back {
  position: absolute; bottom: 18%; left: 50%;
  width: 60px; height: 160px;
  background: linear-gradient(180deg, #1a1210 0%, #0a0808 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: scj-figure 6s ease-in-out infinite alternate;
}
.scn-called-jacob .lamp-hanging {
  position: absolute; top: 15%; left: 60%;
  width: 8px; height: 30px;
  background: linear-gradient(180deg, #6a5a3a 0%, #3a2a1a 100%);
  border-radius: 2px;
}
.scn-called-jacob .lamp-glow {
  position: absolute; top: 25%; left: 60%;
  width: 40px; height: 50px;
  transform: translate(-50%, -10%);
  background: radial-gradient(ellipse at 50% 30%, #e8c060 0%, #c8a040 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px rgba(232,192,96,.3);
  animation: scj-lamp 4s ease-in-out infinite alternate;
}
.scn-called-jacob .shadow-pool {
  position: absolute; bottom: 10%; left: 35%;
  width: 140px; height: 60px;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,.6) 0%, transparent 70%);
  border-radius: 50%;
  animation: scj-pool 6s ease-in-out infinite alternate;
}
@keyframes scj-wall { 0%,100% { opacity: .9 } 50% { opacity: 1 } }
@keyframes scj-door { 0% { transform: perspective(400px) rotateY(15deg); } 50% { transform: perspective(400px) rotateY(20deg); } 100% { transform: perspective(400px) rotateY(15deg); } }
@keyframes scj-figure { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(8px) rotate(2deg); } 100% { transform: translateX(-4px) rotate(-1deg); } }
@keyframes scj-lamp { 0% { opacity: .6; transform: translate(-50%, -10%) scale(1); } 50% { opacity: .9; transform: translate(-50%, -10%) scale(1.05); } 100% { opacity: .7; transform: translate(-50%, -10%) scale(1); } }
@keyframes scj-pool { 0% { transform: scaleX(1); opacity: .6; } 50% { transform: scaleX(1.1); opacity: .8; } 100% { transform: scaleX(1); opacity: .6; } }

.scn-purchased-by-captain-pascal {
  background:
    radial-gradient(ellipse at 50% 40%, #c8a060 0%, transparent 60%),
    linear-gradient(180deg, #7a5a3a 0%, #9a7a4a 40%, #5a3a1a 100%);
}
.scn-purchased-by-captain-pascal .room-warm {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #8a6a3a 0%, #6a4a2a 50%, #4a2a12 100%);
  animation: scp-wall 20s ease-in-out infinite;
}
.scn-purchased-by-captain-pascal .fireplace {
  position: absolute; bottom: 20%; left: 50%;
  width: 120px; height: 100px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%);
  border-radius: 20px 20px 8px 8px;
  box-shadow: inset 0 -20px 30px rgba(0,0,0,.6);
}
.scn-purchased-by-captain-pascal .fireplace::before {
  content: '';
  position: absolute; bottom: 10px; left: 20px; right: 20px; height: 30px;
  background: radial-gradient(ellipse at 50% 100%, #e86020 0%, #c04010 40%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(232,96,32,.4);
  animation: scp-fire 3s ease-in-out infinite alternate;
}
.scn-purchased-by-captain-pascal .mantel {
  position: absolute; bottom: calc(20% + 100px); left: 50%;
  width: 140px; height: 8px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a12 100%);
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,.4);
}
.scn-purchased-by-captain-pascal .figure-seated {
  position: absolute; bottom: 15%; left: 25%;
  width: 70px; height: 150px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1210 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: scp-seated 8s ease-in-out infinite alternate;
}
.scn-purchased-by-captain-pascal .figure-standing {
  position: absolute; bottom: 15%; left: 60%;
  width: 65px; height: 170px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: scp-standing 6s ease-in-out infinite alternate;
}
.scn-purchased-by-captain-pascal .table-small {
  position: absolute; bottom: 22%; left: 42%;
  width: 60px; height: 8px;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a2a12 100%);
  border-radius: 2px;
  box-shadow: 0 3px 8px rgba(0,0,0,.4);
}
.scn-purchased-by-captain-pascal .candle-light {
  position: absolute; bottom: 28%; left: 44%;
  width: 6px; height: 20px;
  background: linear-gradient(180deg, #f0e0c0 0%, #e8c060 60%, #c8a040 100%);
  border-radius: 2px;
  box-shadow: 0 0 30px 10px rgba(232,192,96,.5), 0 0 60px 20px rgba(232,192,96,.2);
  animation: scp-candle 4s ease-in-out infinite alternate;
}
.scn-purchased-by-captain-pascal .rug-pattern {
  position: absolute; bottom: 5%; left: 15%; right: 15%; height: 12%;
  background: linear-gradient(90deg, #6a3a2a 0%, #8a5a3a 20%, #6a3a2a 40%, #8a5a3a 60%, #6a3a2a 80%, #8a5a3a 100%);
  border-radius: 20% 20% 0 0;
  opacity: .6;
  animation: scp-rug 15s ease-in-out infinite;
}
@keyframes scp-wall { 0%,100% { opacity: .9 } 50% { opacity: 1 } }
@keyframes scp-fire { 0% { opacity: .6; transform: scaleY(1); } 50% { opacity: .9; transform: scaleY(1.1); } 100% { opacity: .7; transform: scaleY(.95); } }
@keyframes scp-seated { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(3px) rotate(1deg); } 100% { transform: translateX(-2px) rotate(-1deg); } }
@keyframes scp-standing { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-4px) rotate(-1deg); } 100% { transform: translateX(2px) rotate(1deg); } }
@keyframes scp-candle { 0% { opacity: .7; transform: scale(1, 1); } 50% { opacity: 1; transform: scale(1.02, 1.05); } 100% { opacity: .8; transform: scale(1, 1); } }
@keyframes scp-rug { 0%,100% { opacity: .5 } 50% { opacity: .7 } }

.scn-sent-to-england {
  background:
    radial-gradient(ellipse at 50% 0%, #b0d0e8 0%, transparent 60%),
    radial-gradient(ellipse at 50% 100%, #8a9a5a 0%, transparent 70%),
    linear-gradient(180deg, #7ab0d0 0%, #c0d8e8 30%, #b0c8a0 60%, #8a9a6a 100%);
}
.scn-sent-to-england .sky-bright {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #6aa0c0 0%, #8ac0e0 40%, #b0d8f0 100%);
  animation: ste-sky 30s ease-in-out infinite alternate;
}
.scn-sent-to-england .horizon-line {
  position: absolute; bottom: 45%; left: 0; right: 0; height: 2px;
  background: linear-gradient(90deg, transparent 0%, #6a8a5a 50%, transparent 100%);
}
.scn-sent-to-england .road-dust {
  position: absolute; bottom: 18%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #8a7a5a 0%, #7a6a4a 50%, #6a5a3a 100%);
  border-radius: 40% 60% 0 0 / 20% 30% 0 0;
}
.scn-sent-to-england .horse-figure {
  position: absolute; bottom: 25%; left: 35%;
  width: 90px; height: 80px;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a2a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: ste-horse 4s ease-in-out infinite;
}
.scn-sent-to-england .rider {
  position: absolute; bottom: 48%; left: 37%;
  width: 40px; height: 60px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1210 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: ste-rider 4s ease-in-out infinite;
}
.scn-sent-to-england .escort {
  position: absolute; bottom: 26%; left: 55%;
  width: 80px; height: 70px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: ste-escort 5s ease-in-out infinite;
}
.scn-sent-to-england .tree-silhouette {
  position: absolute; bottom: 40%; width: 40px; height: 100px;
  background: linear-gradient(180deg, #3a4a2a 0%, #2a3a1a 100%);
  border-radius: 50% 50% 10% 10% / 60% 60% 20% 20%;
}
.scn-sent-to-england .tree-a { left: 10%; height: 120px; animation: ste-tree-a 40s ease-in-out infinite alternate; }
.scn-sent-to-england .tree-b { right: 8%; height: 90px; animation: ste-tree-b 50s ease-in-out infinite alternate; }
.scn-sent-to-england .bird-distant {
  position: absolute; top: 15%; right: 30%;
  width: 20px; height: 12px;
  background: radial-gradient(circle at 50% 50%, #4a4a3a 0%, transparent 100%);
  border-radius: 50%;
  animation: ste-bird 20s linear infinite;
}
@keyframes ste-sky { 0% { opacity: .8; } 50% { opacity: 1; } 100% { opacity: .9; } }
@keyframes ste-horse { 0% { transform: translateX(0) translateY(0); } 25% { transform: translateX(4px) translateY(-2px); } 50% { transform: translateX(8px) translateY(-1px); } 75% { transform: translateX(4px) translateY(-2px); } 100% { transform: translateX(0) translateY(0); } }
@keyframes ste-rider { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 25% { transform: translateX(4px) translateY(-3px) rotate(2deg); } 50% { transform: translateX(8px) translateY(-1px) rotate(0deg); } 75% { transform: translateX(4px) translateY(-3px) rotate(-2deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes ste-escort { 0% { transform: translateX(0) translateY(0); } 25% { transform: translateX(-3px) translateY(-1px); } 50% { transform: translateX(-6px) translateY(-2px); } 75% { transform: translateX(-3px) translateY(-1px); } 100% { transform: translateX(0) translateY(0); } }
@keyframes ste-tree-a { 0% { transform: translateX(0) scale(1); } 100% { transform: translateX(-5px) scale(1.02); } }
@keyframes ste-tree-b { 0% { transform: translateX(0) scale(1); } 100% { transform: translateX(5px) scale(.98); } }
@keyframes ste-bird { 0% { transform: translateX(0) translateY(0); opacity: .6; } 50% { transform: translateX(-60px) translateY(-10px); opacity: .8; } 100% { transform: translateX(-120px) translateY(0); opacity: .6; } }

/* return-to-dr-irving */
.scn-return-to-dr-irving {
  background: linear-gradient(180deg, #f5e6d3 0%, #d4b896 60%, #b8916a 100%),
              radial-gradient(ellipse at 70% 30%, #ffebc2 0%, transparent 60%);
}
.scn-return-to-dr-irving .wall {
  position: absolute; inset: 0; background: linear-gradient(135deg, #e8d5b0 0%, #cba882 100%);
}
.scn-return-to-dr-irving .window {
  position: absolute; top: 12%; left: 60%; width: 30%; height: 40%;
  background: linear-gradient(180deg, #b8d4e8 0%, #e2f0ff 60%);
  border-radius: 4px; box-shadow: inset 0 0 30px rgba(255,245,220,0.5), 0 8px 20px rgba(0,0,0,0.2);
  animation: rdi-window 8s ease-in-out infinite alternate;
}
.scn-return-to-dr-irving .window-frame {
  position: absolute; top: 12%; left: 60%; width: 30%; height: 40%;
  border: 8px solid #8b6f4a; border-radius: 6px; box-sizing: border-box;
}
.scn-return-to-dr-irving .desk {
  position: absolute; bottom: 18%; left: 20%; width: 55%; height: 8%;
  background: linear-gradient(180deg, #7a5e3c 0%, #5c4428 100%);
  border-radius: 4px; box-shadow: 0 4px 12px rgba(0,0,0,0.4);
}
.scn-return-to-dr-irving .papers {
  position: absolute; bottom: 30%; left: 35%; width: 18%; height: 14%;
  background: #f5e8d0; border-radius: 2px; transform: rotate(-2deg);
  box-shadow: 0 2px 6px rgba(0,0,0,0.2);
  animation: rdi-paper 12s ease-in-out infinite;
}
.scn-return-to-dr-irving .figure {
  position: absolute; bottom: 18%; left: 30%; width: 10%; height: 30%;
  background: linear-gradient(180deg, #4a3c2a 0%, #2a1e10 100%);
  border-radius: 40% 40% 35% 35% / 50% 50% 40% 40%; transform-origin: bottom center;
  animation: rdi-figure 5s ease-in-out infinite alternate;
}
.scn-return-to-dr-irving .lamp {
  position: absolute; bottom: 35%; left: 22%; width: 6%; height: 12%;
  background: radial-gradient(circle, #ffd080 0%, #c89040 60%);
  border-radius: 50%; box-shadow: 0 0 30px 10px rgba(255,200,80,0.4);
  animation: rdi-lamp 3s ease-in-out infinite alternate;
}
@keyframes rdi-window { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes rdi-paper { 0% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(0deg) translateY(-3px); } 100% { transform: rotate(-2deg) translateY(0); } }
@keyframes rdi-figure { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-2px) rotate(0deg); } 100% { transform: translateY(0) rotate(1deg); } }
@keyframes rdi-lamp { 0% { opacity:0.6; box-shadow: 0 0 20px 6px rgba(255,200,80,0.3); } 50% { opacity:0.9; box-shadow: 0 0 40px 15px rgba(255,200,80,0.5); } 100% { opacity:0.7; box-shadow: 0 0 25px 8px rgba(255,200,80,0.35); } }

/* arctic-expedition */
.scn-arctic-expedition {
  background: linear-gradient(180deg, #d8c8a0 0%, #b8a080 40%, #907050 100%),
              radial-gradient(ellipse at 50% 20%, #ffeec2 0%, transparent 70%);
}
.scn-arctic-expedition .cabin-wall {
  position: absolute; inset: 0; background: linear-gradient(135deg, #c5b08a 0%, #9a7d5a 100%);
}
.scn-arctic-expedition .table {
  position: absolute; bottom: 15%; left: 10%; width: 80%; height: 10%;
  background: linear-gradient(180deg, #7a6040 0%, #5a4020 100%);
  border-radius: 4px; box-shadow: 0 6px 15px rgba(0,0,0,0.5);
}
.scn-arctic-expedition .map {
  position: absolute; bottom: 28%; left: 20%; width: 40%; height: 20%;
  background: #f0dbb8; border-radius: 2px; transform: rotate(3deg);
  box-shadow: 0 3px 8px rgba(0,0,0,0.2);
  animation: ae-map 20s ease-in-out infinite alternate;
}
.scn-arctic-expedition .globe {
  position: absolute; bottom: 30%; left: 68%; width: 14%; height: 22%;
  background: radial-gradient(circle at 30% 30%, #5a7a9a 0%, #2a4a6a 60%, #1a2a3a 100%);
  border-radius: 50%; box-shadow: 0 5px 15px rgba(0,0,0,0.4);
  animation: ae-globe 30s linear infinite;
}
.scn-arctic-expedition .figure {
  position: absolute; bottom: 15%; left: 40%; width: 12%; height: 35%;
  background: linear-gradient(180deg, #3a2e1c 0%, #1e1408 100%);
  border-radius: 40% 40% 35% 35% / 50% 50% 40% 40%; transform-origin: bottom center;
  animation: ae-figure 6s ease-in-out infinite alternate;
}
.scn-arctic-expedition .ship-model {
  position: absolute; bottom: 32%; left: 55%; width: 16%; height: 12%;
  background: linear-gradient(180deg, #5a4030 0%, #382820 100%);
  clip-path: polygon(0% 100%, 15% 0%, 85% 0%, 100% 100%, 70% 80%, 30% 80%);
  animation: ae-ship 10s ease-in-out infinite;
}
.scn-arctic-expedition .lamp-glow {
  position: absolute; top: 15%; left: 50%; width: 20%; height: 20%;
  background: radial-gradient(circle, #ffd080 0%, transparent 70%);
  opacity: 0.5; animation: ae-lamp 4s ease-in-out infinite alternate;
}
@keyframes ae-map { 0% { transform: rotate(3deg) scale(1); } 50% { transform: rotate(-3deg) scale(1.02); } 100% { transform: rotate(3deg) scale(1); } }
@keyframes ae-globe { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }
@keyframes ae-figure { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes ae-ship { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-4px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes ae-lamp { 0% { opacity:0.4; } 50% { opacity:0.6; } 100% { opacity:0.5; } }

/* near-fire-in-cabin */
.scn-near-fire-in-cabin {
  background: linear-gradient(180deg, #1f1210 0%, #3a1e14 40%, #5a2a18 100%),
              radial-gradient(ellipse at 50% 100%, #8a3a1a 0%, transparent 70%);
}
.scn-near-fire-in-cabin .cabin-dark {
  position: absolute; inset: 0; background: linear-gradient(135deg, #0f0806 0%, #1a0e0a 100%);
  animation: nfc-dark 8s ease-in-out infinite alternate;
}
.scn-near-fire-in-cabin .fire {
  position: absolute; bottom: 15%; left: 10%; width: 20%; height: 30%;
  background: radial-gradient(circle at 50% 70%, #ff5500 0%, #cc3300 40%, #881100 70%, #330800 100%);
  border-radius: 40% 40% 30% 30%; filter: blur(3px);
  animation: nfc-fire 2s ease-in-out infinite alternate;
}
.scn-near-fire-in-cabin .desk {
  position: absolute; bottom: 20%; left: 35%; width: 50%; height: 8%;
  background: linear-gradient(180deg, #4a2e1e 0%, #2a180e 100%);
  border-radius: 4px; box-shadow: 0 4px 15px rgba(0,0,0,0.6);
}
.scn-near-fire-in-cabin .journal {
  position: absolute; bottom: 32%; left: 45%; width: 16%; height: 20%;
  background: #d4c0a0; border-radius: 2px; transform: rotate(-5deg);
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: nfc-journal 3s ease-in-out infinite;
}
.scn-near-fire-in-cabin .figure-hunched {
  position: absolute; bottom: 20%; left: 40%; width: 14%; height: 35%;
  background: linear-gradient(180deg, #2a1a10 0%, #0f0804 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%; transform-origin: bottom center;
  animation: nfc-figure 5s ease-in-out infinite alternate;
}
.scn-near-fire-in-cabin .quill {
  position: absolute; bottom: 40%; left: 52%; width: 2%; height: 18%;
  background: #d4a06a; border-radius: 50% 50% 0 0; transform: rotate(15deg);
  animation: nfc-quill 2s ease-in-out infinite;
}
.scn-near-fire-in-cabin .shadow {
  position: absolute; bottom: 18%; left: 30%; width: 40%; height: 6%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 100%);
  animation: nfc-shadow 3s ease-in-out infinite alternate;
}
@keyframes nfc-dark { 0% { opacity:0.9; } 50% { opacity:0.6; } 100% { opacity:0.9; } }
@keyframes nfc-fire { 0% { transform: scale(1) translateY(0); opacity:0.8; } 50% { transform: scale(1.05) translateY(-5px); opacity:1; } 100% { transform: scale(0.95) translateY(0); opacity:0.7; } }
@keyframes nfc-journal { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-2px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes nfc-figure { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(-2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes nfc-quill { 0% { transform: rotate(15deg) scaleY(1); } 50% { transform: rotate(20deg) scaleY(1.1); } 100% { transform: rotate(15deg) scaleY(1); } }
@keyframes nfc-shadow { 0% { transform: scaleX(1) translateX(0); opacity:0.4; } 50% { transform: scaleX(1.2) translateX(10px); opacity:0.6; } 100% { transform: scaleX(1) translateX(0); opacity:0.4; } }

/* arctic-ice-and-whales */
.scn-arctic-ice-and-whales {
  background: linear-gradient(180deg, #d8e8f0 0%, #b0c8d8 50%, #8098a8 100%),
              radial-gradient(ellipse at 50% 80%, #e0f0ff 0%, transparent 60%);
}
.scn-arctic-ice-and-whales .sky {
  position: absolute; inset: 0 0 30% 0; background: linear-gradient(180deg, #c8dce8 0%, #e0f0ff 80%);
  animation: aiw-sky 30s ease-in-out infinite alternate;
}
.scn-arctic-ice-and-whales .ice-floe {
  position: absolute; bottom: 20%; left: 5%; width: 40%; height: 15%;
  background: linear-gradient(180deg, #e8f4ff 0%, #b8d0e0 100%);
  border-radius: 60% 40% 20% 20% / 80% 60% 20% 20%; box-shadow: 0 4px 12px rgba(0,0,0,0.1);
  animation: aiw-ice 20s ease-in-out infinite alternate;
}
.scn-arctic-ice-and-whales .ship-rail {
  position: absolute; bottom: 30%; left: 50%; width: 35%; height: 4%;
  background: #5a4030; border-radius: 2px; transform: translateX(-50%);
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: aiw-rail 8s ease-in-out infinite alternate;
}
.scn-arctic-ice-and-whales .whale-tail {
  position: absolute; bottom: 10%; left: 70%; width: 20%; height: 20%;
  background: radial-gradient(circle at 50% 100%, #3a5a7a 0%, #1a2a3a 100%);
  clip-path: polygon(0% 100%, 40% 0%, 60% 0%, 100% 100%, 70% 80%, 30% 80%);
  transform: rotate(10deg);
  animation: aiw-tail 12s ease-in-out infinite;
}
.scn-arctic-ice-and-whales .spray {
  position: absolute; bottom: 28%; left: 75%; width: 6%; height: 12%;
  background: radial-gradient(circle, #ffffff 0%, transparent 80%);
  animation: aiw-spray 4s ease-in-out infinite;
}
.scn-arctic-ice-and-whales .sun-glint {
  position: absolute; top: 15%; left: 30%; width: 10%; height: 10%;
  background: radial-gradient(circle, #fff8d0 0%, transparent 70%);
  opacity: 0.6; animation: aiw-glint 6s ease-in-out infinite alternate;
}
.scn-arctic-ice-and-whales .cloud {
  position: absolute; top: 10%; left: 60%; width: 25%; height: 8%;
  background: linear-gradient(180deg, rgba(255,255,255,0.7) 0%, rgba(255,255,255,0.1) 100%);
  filter: blur(6px); border-radius: 50%;
  animation: aiw-cloud 50s linear infinite;
}
@keyframes aiw-sky { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes aiw-ice { 0% { transform: translateX(0) scale(1); } 50% { transform: translateX(-5px) scale(1.02); } 100% { transform: translateX(0) scale(1); } }
@keyframes aiw-rail { 0% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(2deg); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes aiw-tail { 0% { transform: rotate(10deg) translateY(0); } 50% { transform: rotate(-5deg) translateY(-8px); } 100% { transform: rotate(10deg) translateY(0); } }
@keyframes aiw-spray { 0% { transform: translateY(0) scale(1); opacity:0.7; } 50% { transform: translateY(-15px) scale(1.3); opacity:0.3; } 100% { transform: translateY(0) scale(1); opacity:0.7; } }
@keyframes aiw-glint { 0% { opacity:0.4; transform: scale(1); } 50% { opacity:0.8; transform: scale(1.5); } 100% { opacity:0.4; transform: scale(1); } }
@keyframes aiw-cloud { 0% { transform: translateX(0); } 100% { transform: translateX(-120vw); } }

.scn-smith-master { background: linear-gradient(180deg, #4a3a2a 0%, #6a4a2a 40%, #8a5a2a 70%, #4a2a1a 100%), radial-gradient(ellipse at 50% 80%, #d08030 0%, transparent 60%); }
.scn-smith-master .forge-fire { position: absolute; bottom: 15%; left: 40%; width: 80px; height: 60px; background: radial-gradient(circle, #ffa040 0%, #c06020 50%, #402010 100%); border-radius: 50% 50% 20% 20%; box-shadow: 0 0 40px 20px #ff8020; animation: smm-fire 5s ease-in-out infinite alternate; }
.scn-smith-master .anvil { position: absolute; bottom: 10%; left: 50%; width: 100px; height: 20px; transform: translateX(-50%); background: linear-gradient(180deg, #6a6a6a 0%, #3a3a3a 100%); border-radius: 10% 10% 0 0; }
.scn-smith-master .bellows { position: absolute; bottom: 20%; left: 30%; width: 40px; height: 50px; background: linear-gradient(180deg, #8a6a4a 0%, #5a3a1a 100%); border-radius: 30% 30% 10% 10%; animation: smm-bellows 3s ease-in-out infinite; }
.scn-smith-master .figure-arm { position: absolute; bottom: 22%; left: 32%; width: 12px; height: 30px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 40% 40% 20% 20%; transform-origin: bottom center; animation: smm-arm 3s ease-in-out infinite; }
.scn-smith-master .sparks { position: absolute; width: 4px; height: 4px; background: #ffc080; border-radius: 50%; box-shadow: 0 0 6px 2px #ffa040; }
.scn-smith-master .spark-a { top: 50%; left: 45%; animation: smm-sparka 6s linear infinite; }
.scn-smith-master .spark-b { top: 45%; left: 50%; animation: smm-sparkb 8s linear infinite; }
.scn-smith-master .beam { position: absolute; top: 0; left: 42%; width: 60px; height: 100%; background: linear-gradient(180deg, rgba(255,160,64,0.3) 0%, rgba(255,160,64,0) 100%); transform: skewX(-5deg); pointer-events: none; }
@keyframes smm-fire { 0% { box-shadow: 0 0 30px 15px #ff8020; opacity: 0.8; } 50% { box-shadow: 0 0 50px 25px #ffa040; opacity: 1; } 100% { box-shadow: 0 0 30px 15px #ff8020; opacity: 0.85; } }
@keyframes smm-bellows { 0%,100% { transform: translateY(0) scaleY(1); } 25% { transform: translateY(-5px) scaleY(1.1); } 50% { transform: translateY(0) scaleY(1); } 75% { transform: translateY(3px) scaleY(0.9); } }
@keyframes smm-arm { 0%,100% { transform: rotate(0deg); } 25% { transform: rotate(5deg) translateY(-2px); } 50% { transform: rotate(0deg); } 75% { transform: rotate(-5deg) translateY(2px); } }
@keyframes smm-sparka { 0% { transform: translate(0,0) scale(1); opacity: 1; } 100% { transform: translate(30px, -60px) scale(0); opacity: 0; } }
@keyframes smm-sparkb { 0% { transform: translate(0,0) scale(1); opacity: 1; } 100% { transform: translate(-20px, -70px) scale(0.5); opacity: 0; } }

.scn-gold-working { background: linear-gradient(180deg, #f0d080 0%, #d0a050 40%, #b08030 70%, #6a4a1a 100%), radial-gradient(ellipse at 50% 70%, #ffe080 0%, transparent 70%); }
.scn-gold-working .workbench { position: absolute; bottom: 10%; left: 20%; width: 60%; height: 25%; background: linear-gradient(180deg, #8a6a3a 0%, #4a2a10 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 8px 12px rgba(0,0,0,0.3); }
.scn-gold-working .gold-wire { position: absolute; bottom: 30%; left: 35%; width: 80px; height: 4px; background: linear-gradient(90deg, #ffd080 0%, #ffc060 50%, #b08020 100%); border-radius: 50%; transform: rotate(15deg); animation: gw-shine 4s ease-in-out infinite alternate; }
.scn-gold-working .tools { position: absolute; bottom: 25%; left: 25%; width: 20px; height: 40px; background: linear-gradient(180deg, #4a4a4a 0%, #1a1a1a 100%); border-radius: 10% 10% 20% 20%; transform: rotate(20deg); }
.scn-gold-working .glow { position: absolute; bottom: 20%; left: 30%; width: 100px; height: 100px; background: radial-gradient(circle, rgba(255,224,128,0.4) 0%, transparent 60%); pointer-events: none; animation: gw-glow 6s ease-in-out infinite alternate; }
.scn-gold-working .hand { position: absolute; bottom: 28%; left: 42%; width: 16px; height: 24px; background: linear-gradient(180deg, #c0a080 0%, #8a6a4a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: gw-hand 5s ease-in-out infinite; }
.scn-gold-working .ornament { position: absolute; bottom: 32%; left: 55%; width: 20px; height: 20px; background: radial-gradient(circle, #ffd080 0%, #b08020 100%); border-radius: 50%; box-shadow: 0 0 10px 3px #ffc060; animation: gw-ornament 7s ease-in-out infinite; }
@keyframes gw-shine { 0% { opacity: 0.7; transform: rotate(15deg) scaleX(1); } 50% { opacity: 1; transform: rotate(17deg) scaleX(1.2); } 100% { opacity: 0.8; transform: rotate(13deg) scaleX(1); } }
@keyframes gw-glow { 0% { opacity: 0.3; transform: scale(0.9); } 50% { opacity: 0.6; transform: scale(1.1); } 100% { opacity: 0.4; transform: scale(0.95); } }
@keyframes gw-hand { 0%,100% { transform: rotate(0deg) translateX(0); } 30% { transform: rotate(5deg) translateX(4px); } 60% { transform: rotate(-3deg) translateX(-2px); } }
@keyframes gw-ornament { 0%,100% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-3px) rotate(5deg); } 75% { transform: translateY(2px) rotate(-5deg); } }

.scn-escape-plan { background: linear-gradient(180deg, #1a1a3a 0%, #2a2a5a 30%, #4a2a5a 60%, #6a3a2a 80%, #8a5a3a 100%), radial-gradient(ellipse at 50% 0%, #8a5a3a 0%, transparent 60%); }
.scn-escape-plan .sky { position: absolute; inset: 0 0 35% 0; background: linear-gradient(180deg, #1a1a3a 0%, #3a2a4a 60%, #6a4a3a 100%); animation: ep-sky 15s ease-in-out infinite alternate; }
.scn-escape-plan .horizon { position: absolute; bottom: 35%; left: 0; right: 0; height: 4px; background: linear-gradient(90deg, transparent 0%, #8a5a3a 50%, transparent 100%); }
.scn-escape-plan .house-far { position: absolute; bottom: 36%; left: 20%; width: 30px; height: 25px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 10% 10% 0 0; }
.scn-escape-plan .figure-escape { position: absolute; bottom: 30%; left: 50%; width: 16px; height: 40px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ep-figure 4s ease-in-out infinite; }
.scn-escape-plan .path { position: absolute; bottom: 0; left: 45%; width: 10%; height: 35%; background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 50%, #2a1a0a 100%); border-radius: 0 0 20% 20%; clip-path: polygon(40% 0%, 60% 0%, 80% 100%, 20% 100%); }
.scn-escape-plan .fence { position: absolute; bottom: 35%; left: 30%; width: 40%; height: 8px; background: linear-gradient(90deg, #4a3a2a 0%, #2a1a0a 100%); }
@keyframes ep-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes ep-figure { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(5px) rotate(2deg) translateY(-2px); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-5px) rotate(-2deg) translateY(-1px); } }

.scn-chicken-killing-accident { background: linear-gradient(180deg, #b0c0a0 0%, #90a080 40%, #6a7a5a 70%, #4a5a3a 100%), radial-gradient(ellipse at 50% 80%, #d0d0b0 0%, transparent 60%); }
.scn-chicken-killing-accident .yard { position: absolute; bottom: 0; left: 0; right: 0; height: 50%; background: linear-gradient(180deg, #8a9a7a 0%, #5a6a4a 100%); }
.scn-chicken-killing-accident .block { position: absolute; bottom: 20%; left: 40%; width: 40px; height: 30px; background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius: 10% 10% 0 0; }
.scn-chicken-killing-accident .chicken { position: absolute; bottom: 25%; left: 45%; width: 25px; height: 20px; background: radial-gradient(ellipse at 60% 40%, #c0a080 0%, #8a6a4a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; animation: cka-chicken 3s ease-in-out infinite; }
.scn-chicken-killing-accident .feathers { position: absolute; width: 6px; height: 10px; background: linear-gradient(180deg, #d0c0a0 0%, #a09070 100%); border-radius: 50% 50% 20% 20%; }
.scn-chicken-killing-accident .feather-a { bottom: 28%; left: 50%; animation: cka-feather1 2s ease-out infinite; }
.scn-chicken-killing-accident .feather-b { bottom: 30%; left: 42%; animation: cka-feather2 2.5s ease-out infinite 0.3s; }
.scn-chicken-killing-accident .figure-recoil { position: absolute; bottom: 15%; left: 35%; width: 18px; height: 45px; background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cka-recoil 1.5s ease-in-out infinite; }
@keyframes cka-chicken { 0%,100% { transform: rotate(0deg) translateY(0); } 20% { transform: rotate(-10deg) translateY(5px); } 40% { transform: rotate(10deg) translateY(-3px); } 60% { transform: rotate(-5deg) translateY(2px); } 80% { transform: rotate(5deg) translateY(-1px); } }
@keyframes cka-feather1 { 0% { transform: translate(0,0) rotate(0deg) scale(1); opacity: 1; } 100% { transform: translate(30px, -20px) rotate(180deg) scale(0.3); opacity: 0; } }
@keyframes cka-feather2 { 0% { transform: translate(0,0) rotate(0deg) scale(1); opacity: 1; } 100% { transform: translate(-25px, -15px) rotate(-150deg) scale(0.4); opacity: 0; } }
@keyframes cka-recoil { 0%,100% { transform: rotate(0deg) translateX(0); } 20% { transform: rotate(15deg) translateX(-12px); } 40% { transform: rotate(-10deg) translateX(8px); } 60% { transform: rotate(5deg) translateX(-4px); } 80% { transform: rotate(-3deg) translateX(2px); } }

.scn-image-rivetted { background: linear-gradient(180deg, #1a1420 0%, #2a1e28 30%, #1a1420 70%), radial-gradient(ellipse at 50% 80%, #3c2a34 0%, transparent 60%); }
.scn-image-rivetted .wall-dark { position:absolute; inset:0; background: linear-gradient(135deg, #2a1e28 0%, #1a1420 100%); opacity:0.5; }
.scn-image-rivetted .wall-light { position:absolute; left:20%; right:20%; top:10%; bottom:10%; background: radial-gradient(ellipse at 50% 50%, #4a3a44 0%, transparent 70%); }
.scn-image-rivetted .table { position:absolute; bottom:15%; left:35%; width:30%; height:8%; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius:4% 4% 0 0; box-shadow: 0 4px 12px rgba(0,0,0,0.6); }
.scn-image-rivetted .candle { position:absolute; bottom:23%; left:38%; width:4%; height:12%; background: linear-gradient(180deg, #f0d080 0%, #c8a060 100%); border-radius:20% 20% 10% 10%; box-shadow: 0 0 20px 6px #e0b060; animation: ir-candle 4s ease-in-out infinite alternate; }
.scn-image-rivetted .frame { position:absolute; top:20%; left:35%; width:30%; height:40%; background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%); border-radius:4%; border: 4px solid #8a6a3a; box-shadow: 0 8px 24px rgba(0,0,0,0.7); }
.scn-image-rivetted .portrait-glow { position:absolute; top:24%; left:38%; width:24%; height:32%; background: radial-gradient(circle, #f0e0b0 0%, #c8a860 60%, transparent 100%); border-radius:4%; animation: ir-glow 3s ease-in-out infinite alternate; }
.scn-image-rivetted .hand { position:absolute; bottom:20%; left:48%; width:8%; height:14%; background: linear-gradient(180deg, #3a2a24 0%, #1a1410 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ir-hand 5s ease-in-out infinite; }
@keyframes ir-candle { 0% { transform: scaleY(1) rotate(-1deg); box-shadow: 0 0 15px 4px #e0b060; } 50% { transform: scaleY(1.05) rotate(1deg); box-shadow: 0 0 25px 8px #f0c070; } 100% { transform: scaleY(0.95) rotate(-0.5deg); box-shadow: 0 0 18px 5px #d0a050; } }
@keyframes ir-glow { 0% { opacity:0.7; box-shadow: 0 0 30px 8px #c8a860; } 50% { opacity:1; box-shadow: 0 0 50px 16px #f0d080; } 100% { opacity:0.8; box-shadow: 0 0 35px 10px #d8b070; } }
@keyframes ir-hand { 0% { transform: translateX(0) rotate(2deg); } 33% { transform: translateX(-3px) rotate(-1deg); } 66% { transform: translateX(2px) rotate(1deg); } 100% { transform: translateX(0) rotate(0); } }

.scn-tinnah-coconuts { background: linear-gradient(180deg, #87ceeb 0%, #b0e0e6 40%, #f5deb3 100%), radial-gradient(ellipse at 50% 0%, #f0c060 0%, transparent 70%); }
.scn-tinnah-coconuts .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #87ceeb 0%, #b0e0e6 100%); }
.scn-tinnah-coconuts .sun { position:absolute; top:8%; right:20%; width:12%; height:12%; background: radial-gradient(circle, #fffacd 0%, #ffd700 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 40px 20px #ffd700; animation: tc-sun 12s ease-in-out infinite alternate; }
.scn-tinnah-coconuts .cloud-a { position:absolute; top:12%; left:10%; width:30%; height:8%; background: rgba(255,255,255,0.6); border-radius:50%; filter: blur(6px); animation: tc-cloud-a 40s linear infinite; }
.scn-tinnah-coconuts .cloud-b { position:absolute; top:18%; right:15%; width:20%; height:6%; background: rgba(255,255,255,0.5); border-radius:50%; filter: blur(5px); animation: tc-cloud-b 50s linear infinite; }
.scn-tinnah-coconuts .hills { position:absolute; bottom:30%; left:0; right:0; height:20%; background: linear-gradient(180deg, #556b2f 0%, #3b4d20 100%); border-radius: 60% 40% 0 0 / 80% 70% 0 0; box-shadow: inset 0 8px 12px rgba(0,0,0,0.2); }
.scn-tinnah-coconuts .palmtree { position:absolute; bottom:30%; left:25%; width:4%; height:35%; background: linear-gradient(180deg, #8b5a2b 0%, #5a3a1a 100%); border-radius: 4px 4px 10px 10px; transform-origin: bottom center; animation: tc-palm 6s ease-in-out infinite; }
.scn-tinnah-coconuts .palmtree::before { content:''; position:absolute; top:-20%; left:-100%; width:300%; height:30%; background: radial-gradient(ellipse at 50% 100%, #228b22 0%, transparent 70%); filter: blur(2px); }
.scn-tinnah-coconuts .hut { position:absolute; bottom:30%; right:30%; width:12%; height:15%; background: linear-gradient(180deg, #c8a876 0%, #a08050 100%); border-radius: 30% 30% 5% 5% / 40% 40% 5% 5%; box-shadow: 0 4px 8px rgba(0,0,0,0.3); }
.scn-tinnah-coconuts .path { position:absolute; bottom:0; left:40%; width:20%; height:30%; background: linear-gradient(180deg, #d2b48c 0%, #b09060 100%); clip-path: polygon(10% 0%, 90% 0%, 60% 100%, 40% 100%); }
.scn-tinnah-coconuts .figure { position:absolute; bottom:28%; left:48%; width:3%; height:8%; background: linear-gradient(180deg, #2a1a10 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: tc-figure 5s ease-in-out infinite; }
@keyframes tc-sun { 0% { transform: translateY(0) scale(1); box-shadow: 0 0 35px 18px #ffd700; } 50% { transform: translateY(-5px) scale(1.05); box-shadow: 0 0 50px 25px #ffe066; } 100% { transform: translateY(0) scale(0.95); box-shadow: 0 0 30px 15px #ffcc00; } }
@keyframes tc-cloud-a { 0% { transform: translateX(-30px); } 100% { transform: translateX(120vw); } }
@keyframes tc-cloud-b { 0% { transform: translateX(0); } 100% { transform: translateX(-100vw); } }
@keyframes tc-palm { 0% { transform: rotate(-2deg); } 25% { transform: rotate(2deg); } 50% { transform: rotate(-1deg); } 75% { transform: rotate(3deg); } 100% { transform: rotate(-2deg); } }
@keyframes tc-figure { 0% { transform: translateX(0) rotate(2deg); } 50% { transform: translateX(10px) rotate(-1deg); } 100% { transform: translateX(20px) rotate(1deg); } }

.scn-sugar-cane-and-shells { background: linear-gradient(180deg, #f5deb3 0%, #deb887 50%, #c8a876 100%), radial-gradient(ellipse at 50% 70%, #e0c090 0%, transparent 60%); }
.scn-sugar-cane-and-shells .bg { position:absolute; inset:0; background: linear-gradient(135deg, #e8d0a0 0%, #d0b080 100%); opacity:0.4; }
.scn-sugar-cane-and-shells .table { position:absolute; bottom:0; left:10%; right:10%; height:40%; background: linear-gradient(180deg, #b09050 0%, #806030 100%); border-radius: 20% 20% 0 0 / 10% 10% 0 0; box-shadow: inset 0 -10px 20px rgba(0,0,0,0.3); }
.scn-sugar-cane-and-shells .cane-a { position:absolute; bottom:40%; left:20%; width:4%; height:35%; background: linear-gradient(180deg, #8b8b00 0%, #6b6b00 100%); border-radius: 2px; transform-origin: bottom center; animation: sc-cane 8s ease-in-out infinite; }
.scn-sugar-cane-and-shells .cane-b { position:absolute; bottom:40%; left:38%; width:5%; height:30%; background: linear-gradient(180deg, #9b9b00 0%, #7b7b00 100%); border-radius: 2px; transform-origin: bottom center; animation: sc-cane 9s ease-in-out infinite; }
.scn-sugar-cane-and-shells .shells { position:absolute; bottom:20%; left:55%; width:6%; height:6%; background: radial-gradient(circle, #ffffff 0%, #e8e0d0 100%); border-radius: 50%; box-shadow: 0 2px 6px rgba(0,0,0,0.2); animation: sc-shell 10s ease-in-out infinite alternate; }
.scn-sugar-cane-and-shells .hand { position:absolute; bottom:25%; right:40%; width:8%; height:12%; background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sc-hand 6s ease-in-out infinite; }
@keyframes sc-cane { 0% { transform: rotate(-3deg) scaleY(1); } 50% { transform: rotate(3deg) scaleY(1.05); } 100% { transform: rotate(-2deg) scaleY(1); } }
@keyframes sc-shell { 0% { transform: translate(0,0) scale(1); opacity:0.8; } 50% { transform: translate(-5px, -3px) scale(1.1); opacity:1; } 100% { transform: translate(2px, -1px) scale(0.95); opacity:0.9; } }
@keyframes sc-hand { 0% { transform: translateX(0) rotate(5deg); } 33% { transform: translateX(-4px) rotate(-3deg); } 66% { transform: translateX(3px) rotate(2deg); } 100% { transform: translateX(0) rotate(0); } }

.scn-widow-house-rivulets { background: linear-gradient(180deg, #87ceeb 0%, #b0e0e6 30%, #f0e68c 100%), radial-gradient(ellipse at 50% 0%, #fff8dc 0%, transparent 70%); }
.scn-widow-house-rivulets .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #87ceeb 0%, #b0e0e6 100%); }
.scn-widow-house-rivulets .sun { position:absolute; top:10%; left:15%; width:10%; height:10%; background: radial-gradient(circle, #fffacd 0%, #ffd700 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 30px 15px #ffd700; animation: wh-sun 14s ease-in-out infinite alternate; }
.scn-widow-house-rivulets .cloud { position:absolute; top:20%; left:5%; width:35%; height:8%; background: rgba(255,255,255,0.7); border-radius:50%; filter: blur(8px); animation: wh-drift 45s linear infinite; }
.scn-widow-house-rivulets .hills { position:absolute; bottom:35%; left:0; right:0; height:25%; background: linear-gradient(180deg, #7cba6e 0%, #5a9a4a 100%); border-radius: 50% 50% 0 0 / 70% 70% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,0.15); }
.scn-widow-house-rivulets .house { position:absolute; bottom:35%; left:35%; width:20%; height:25%; background: linear-gradient(180deg, #d2b48c 0%, #b09060 100%); border-radius: 10% 10% 5% 5% / 15% 15% 5% 5%; box-shadow: 0 8px 16px rgba(0,0,0,0.3); }
.scn-widow-house-rivulets .stream { position:absolute; bottom:0; left:20%; right:20%; height:35%; background: linear-gradient(90deg, #4682b4 0%, #5a9ad4 50%, #4682b4 100%); border-radius: 0 0 20% 20%; box-shadow: inset 0 10px 20px rgba(0,0,0,0.2); animation: wh-stream 20s ease-in-out infinite; }
.scn-widow-house-rivulets .tree { position:absolute; bottom:35%; right:25%; width:6%; height:40%; background: linear-gradient(180deg, #8b5a2b 0%, #5a3a1a 100%); border-radius: 4px; transform-origin: bottom center; animation: wh-tree 6s ease-in-out infinite; }
.scn-widow-house-rivulets .figure { position:absolute; bottom:30%; left:43%; width:3%; height:9%; background: linear-gradient(180deg, #2a1a10 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: wh-figure 7s ease-in-out infinite; }
@keyframes wh-sun { 0% { transform: translate(0,0) scale(1); box-shadow: 0 0 25px 12px #ffd700; } 50% { transform: translate(8px,-4px) scale(1.03); box-shadow: 0 0 40px 20px #ffe066; } 100% { transform: translate(-4px,2px) scale(0.97); box-shadow: 0 0 30px 15px #ffcc00; } }
@keyframes wh-drift { 0% { transform: translateX(-50px); } 100% { transform: translateX(120vw); } }
@keyframes wh-stream { 0% { background-position: 0% 50%; } 50% { background-position: 100% 50%; } 100% { background-position: 0% 50%; } }
@keyframes wh-tree { 0% { transform: rotate(-3deg); } 50% { transform: rotate(3deg); } 100% { transform: rotate(-2deg); } }
@keyframes wh-figure { 0% { transform: translateY(0) rotate(2deg); } 33% { transform: translateY(-3px) rotate(-1deg); } 66% { transform: translateY(1px) rotate(0deg); } 100% { transform: translateY(0) rotate(1deg); } }

/* scene: consumption-increase */
.scn-consumption-increase {
  background:
    linear-gradient(180deg, #1e1a16 0%, #2b231c 40%, #3a3028 100%),
    radial-gradient(ellipse at 50% 90%, #4a3a2a 0%, transparent 70%);
}
.scn-consumption-increase .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2b231c 0%, #1e1a16 100%);
  animation: ci-wall 12s ease-in-out infinite alternate;
}
.scn-consumption-increase .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #3a3028 0%, #1e1a16 100%);
  border-radius: 30% 70% 0 0 / 50% 50% 0 0;
  animation: ci-floor 18s ease-in-out infinite alternate;
}
.scn-consumption-increase .fire-glow {
  position: absolute; bottom: 22%; left: 50%; width: 120px; height: 120px;
  transform: translateX(-50%);
  background: radial-gradient(circle, rgba(200, 130, 60, 0.4) 0%, transparent 70%);
  border-radius: 50%;
  animation: ci-fireglow 3s ease-in-out infinite alternate;
}
.scn-consumption-increase .fire {
  position: absolute; bottom: 20%; left: 50%; width: 30px; height: 40px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 100%, #e8a040 0%, #b06020 60%, transparent 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  box-shadow: 0 0 40px 20px rgba(200, 130, 60, 0.5);
  animation: ci-fire 0.8s ease-in-out infinite alternate;
}
.scn-consumption-increase .figure {
  position: absolute; bottom: 28%; left: 40%; width: 24px; height: 48px;
  background: linear-gradient(180deg, #2a221c 0%, #1a1410 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ci-figure 4s ease-in-out infinite;
}
.scn-consumption-increase .cloth {
  position: absolute; bottom: 30%; left: 36%; width: 40px; height: 16px;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%);
  border-radius: 10% 10% 40% 40% / 20% 20% 60% 60%;
  transform: rotate(-10deg);
  animation: ci-cloth 6s ease-in-out infinite alternate;
}
@keyframes ci-wall { 0% { opacity: .9 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes ci-floor { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes ci-fireglow { 0% { opacity: .7; transform: translateX(-50%) scale(1) } 50% { opacity: 1; transform: translateX(-50%) scale(1.1) } 100% { opacity: .8; transform: translateX(-50%) scale(0.95) } }
@keyframes ci-fire { 0% { transform: translateX(-50%) scaleY(1) } 50% { transform: translateX(-50%) scaleY(1.3) } 100% { transform: translateX(-50%) scaleY(0.9) } }
@keyframes ci-figure { 0% { transform: translateX(0) translateY(0) rotate(-1deg) } 25% { transform: translateX(4px) translateY(-1px) rotate(1deg) } 50% { transform: translateX(8px) translateY(0) rotate(-1deg) } 75% { transform: translateX(4px) translateY(-1px) rotate(0deg) } 100% { transform: translateX(0) translateY(0) rotate(0) } }
@keyframes ci-cloth { 0% { transform: rotate(-10deg) translateX(0) } 50% { transform: rotate(-5deg) translateX(2px) } 100% { transform: rotate(-12deg) translateX(0) } }

/* scene: manufacturing-interest */
.scn-manufacturing-interest {
  background:
    linear-gradient(180deg, #1a1a1f 0%, #282830 50%, #383840 100%),
    radial-gradient(ellipse at 50% 80%, #3a3a48 0%, transparent 70%);
}
.scn-manufacturing-interest .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #282830 0%, #1a1a1f 100%);
  animation: mi-wall 15s ease-in-out infinite alternate;
}
.scn-manufacturing-interest .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #383840 0%, #1a1a1f 100%);
  border-radius: 20% 80% 0 0 / 40% 60% 0 0;
  animation: mi-floor 20s ease-in-out infinite alternate;
}
.scn-manufacturing-interest .table {
  position: absolute; bottom: 28%; left: 30%; width: 140px; height: 40px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: mi-table 6s ease-in-out infinite;
}
.scn-manufacturing-interest .candle {
  position: absolute; bottom: 34%; left: 42%; width: 8px; height: 24px;
  background: linear-gradient(180deg, #e8d8a8 0%, #c8b880 100%);
  border-radius: 4px;
  animation: mi-candle 3s ease-in-out infinite alternate;
}
.scn-manufacturing-interest .candle-glow {
  position: absolute; bottom: 32%; left: 42%; width: 40px; height: 40px;
  transform: translate(-50%, 0);
  background: radial-gradient(circle, rgba(240, 220, 160, 0.4) 0%, transparent 70%);
  border-radius: 50%;
  animation: mi-candle-glow 2s ease-in-out infinite alternate;
}
.scn-manufacturing-interest .papers {
  position: absolute; bottom: 30%; left: 34%; width: 50px; height: 30px;
  background: linear-gradient(180deg, #c8b880 0%, #a89870 100%);
  border-radius: 2px;
  box-shadow: 2px 2px 4px rgba(0,0,0,0.3);
  animation: mi-papers 10s ease-in-out infinite alternate;
}
.scn-manufacturing-interest .scale {
  position: absolute; bottom: 30%; left: 52%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 10% 10% / 60% 60% 10% 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: mi-scale 7s ease-in-out infinite;
}
@keyframes mi-wall { 0% { opacity: .85 } 50% { opacity: 1 } 100% { opacity: .9 } }
@keyframes mi-floor { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes mi-table { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes mi-candle { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.15) } 100% { transform: scaleY(0.95) } }
@keyframes mi-candle-glow { 0% { opacity: .7; transform: translate(-50%,0) scale(1) } 50% { opacity: 1; transform: translate(-50%,0) scale(1.2) } 100% { opacity: .8; transform: translate(-50%,0) scale(0.9) } }
@keyframes mi-papers { 0% { transform: rotate(-2deg) translateX(0) } 50% { transform: rotate(0deg) translateX(2px) } 100% { transform: rotate(2deg) translateX(0) } }
@keyframes mi-scale { 0% { transform: rotate(-5deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(-5deg) } }

/* scene: hidden-treasures */
.scn-hidden-treasures {
  background:
    linear-gradient(180deg, #0f0f1a 0%, #1a1a2e 40%, #2a2a3e 100%),
    radial-gradient(ellipse at 50% 100%, #3a3a4e 0%, transparent 70%);
}
.scn-hidden-treasures .cave-back {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #1a1a2e 0%, #0f0f1a 100%);
  border-radius: 0 0 40% 60% / 0 0 20% 30%;
  animation: ht-caveback 20s ease-in-out infinite alternate;
}
.scn-hidden-treasures .cave-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #2a2a3e 0%, #0f0f1a 100%);
  border-radius: 60% 40% 0 0 / 30% 20% 0 0;
  animation: ht-cavefloor 25s ease-in-out infinite alternate;
}
.scn-hidden-treasures .lantern {
  position: absolute; bottom: 30%; left: 50%; width: 14px; height: 24px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #c8a060 0%, #a08040 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 10% 10%;
  animation: ht-lantern 4s ease-in-out infinite alternate;
}
.scn-hidden-treasures .lantern-glow {
  position: absolute; bottom: 26%; left: 50%; width: 100px; height: 100px;
  transform: translate(-50%, 0);
  background: radial-gradient(circle, rgba(200, 160, 80, 0.35) 0%, transparent 70%);
  border-radius: 50%;
  animation: ht-lantern-glow 3s ease-in-out infinite alternate;
}
.scn-hidden-treasures .chest {
  position: absolute; bottom: 18%; left: 40%; width: 40px; height: 28px;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 8% 8% 4% 4% / 10% 10% 4% 4%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
  animation: ht-chest 8s ease-in-out infinite;
}
.scn-hidden-treasures .gems {
  position: absolute; bottom: 20%; left: 44%; width: 20px; height: 20px;
  background: radial-gradient(circle, #60c0a0 0%, #308060 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 12px 4px rgba(60, 200, 160, 0.4);
  animation: ht-gems 2s ease-in-out infinite alternate;
}
.scn-hidden-treasures .pickaxe {
  position: absolute; bottom: 26%; left: 32%; width: 6px; height: 40px;
  background: linear-gradient(180deg, #8a7a6a 0%, #4a3a2a 100%);
  transform: rotate(20deg);
  border-radius: 2px;
  animation: ht-pickaxe 7s ease-in-out infinite;
}
@keyframes ht-caveback { 0% { opacity: .8 } 50% { opacity: .9 } 100% { opacity: .7 } }
@keyframes ht-cavefloor { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes ht-lantern { 0% { transform: translateX(-50%) rotate(-3deg) } 50% { transform: translateX(-50%) rotate(3deg) } 100% { transform: translateX(-50%) rotate(-2deg) } }
@keyframes ht-lantern-glow { 0% { opacity: .6; transform: translate(-50%,0) scale(1) } 50% { opacity: .9; transform: translate(-50%,0) scale(1.15) } 100% { opacity: .7; transform: translate(-50%,0) scale(0.95) } }
@keyframes ht-chest { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes ht-gems { 0% { opacity: .5; transform: scale(0.8) } 50% { opacity: 1; transform: scale(1.2) } 100% { opacity: .6; transform: scale(0.9) } }
@keyframes ht-pickaxe { 0% { transform: rotate(20deg) translateX(0) } 50% { transform: rotate(25deg) translateX(2px) } 100% { transform: rotate(20deg) translateX(0) } }

/* scene: torture-instruments */
.scn-torture-instruments {
  background:
    linear-gradient(180deg, #0a0a0f 0%, #1a1410 50%, #2a1a1a 100%),
    radial-gradient(ellipse at 50% 90%, #3a2020 0%, transparent 70%);
}
.scn-torture-instruments .wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #1a1410 0%, #0a0a0f 100%);
  animation: ti-wall 18s ease-in-out infinite alternate;
}
.scn-torture-instruments .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0f 100%);
  border-radius: 30% 70% 0 0 / 50% 50% 0 0;
  animation: ti-floor 22s ease-in-out infinite alternate;
}
.scn-torture-instruments .torch {
  position: absolute; bottom: 32%; left: 50%; width: 10px; height: 30px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #a06040 0%, #5a3020 100%);
  border-radius: 4px;
  animation: ti-torch 2s ease-in-out infinite alternate;
}
.scn-torture-instruments .torch-glow {
  position: absolute; bottom: 28%; left: 50%; width: 80px; height: 80px;
  transform: translate(-50%, 0);
  background: radial-gradient(circle, rgba(180, 100, 40, 0.4) 0%, transparent 70%);
  border-radius: 50%;
  animation: ti-torch-glow 1.5s ease-in-out infinite alternate;
}
.scn-torture-instruments .chains {
  position: absolute; bottom: 30%; left: 30%; width: 6px; height: 70px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 2px;
  transform: rotate(5deg);
  animation: ti-chains 9s ease-in-out infinite;
}
.scn-torture-instruments .rack {
  position: absolute; bottom: 22%; left: 40%; width: 80px; height: 30px;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%);
  border-radius: 6px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.7);
  animation: ti-rack 12s ease-in-out infinite;
}
.scn-torture-instruments .shadow {
  position: absolute; bottom: 22%; left: 55%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #0a0a0f 0%, #1a1410 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  opacity: 0.6;
  animation: ti-shadow 5s ease-in-out infinite alternate;
}
@keyframes ti-wall { 0% { opacity: .85 } 50% { opacity: .95 } 100% { opacity: .8 } }
@keyframes ti-floor { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes ti-torch { 0% { transform: translateX(-50%) scaleY(1) } 50% { transform: translateX(-50%) scaleY(1.2) } 100% { transform: translateX(-50%) scaleY(0.95) } }
@keyframes ti-torch-glow { 0% { opacity: .5; transform: translate(-50%,0) scale(1) } 50% { opacity: .8; transform: translate(-50%,0) scale(1.2) } 100% { opacity: .6; transform: translate(-50%,0) scale(0.9) } }
@keyframes ti-chains { 0% { transform: rotate(5deg) translateX(0) } 50% { transform: rotate(3deg) translateX(2px) } 100% { transform: rotate(5deg) translateX(0) } }
@keyframes ti-rack { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes ti-shadow { 0% { opacity: .4; transform: scaleX(1) } 50% { opacity: .6; transform: scaleX(1.05) } 100% { opacity: .45; transform: scaleX(1) } }

/* markets-and-oye-eboe */
.scn-markets-and-oye-eboe {
  background: linear-gradient(180deg, #fecc8c 0%, #fbba72 30%, #e8a34a 70%), radial-gradient(ellipse at 30% 100%, #f0c060 0%, transparent 70%);
}
.scn-markets-and-oye-eboe .sunny-sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #87ceeb 0%, #b0e0e6 60%, #ffe4b5 100%);
  animation: mkt-sky 14s ease-in-out infinite alternate;
}
.scn-markets-and-oye-eboe .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #c8a96e 0%, #9c7b43 100%);
  border-radius: 30% 70% 0 0 / 20% 40% 0 0;
  box-shadow: inset 0 6px 12px rgba(0,0,0,.2);
}
.scn-markets-and-oye-eboe .market-stall {
  position: absolute; bottom: 30%; left: 45%; width: 80px; height: 90px;
  background: linear-gradient(180deg, #d4a76a 0%, #b8864a 100%);
  border-radius: 5% 5% 0 0;
  box-shadow: 6px 0 12px rgba(0,0,0,.3);
  transform: perspective(200px) rotateX(2deg);
  animation: mkt-stall 9s ease-in-out infinite;
}
.scn-markets-and-oye-eboe .trader-figure {
  position: absolute; bottom: 24%; left: 38%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #a0522d 0%, #6b3e1f 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mkt-figure 4s ease-in-out infinite;
}
.scn-markets-and-oye-eboe .produce-basket {
  position: absolute; bottom: 28%; left: 52%; width: 30px; height: 26px;
  background: radial-gradient(circle at 30% 30%, #f0c070 0%, #c09040 100%);
  border-radius: 40%;
  box-shadow: 0 4px 6px rgba(0,0,0,.3);
  animation: mkt-basket 6s ease-in-out infinite;
}
.scn-markets-and-oye-eboe .sun-rays {
  position: absolute; top: 0; left: 0; width: 100%; height: 100%;
  background: repeating-linear-gradient(45deg, transparent 0%, rgba(255,220,120,.1) 1%, transparent 2%);
  mix-blend-mode: overlay;
  animation: mkt-rays 20s linear infinite;
}
.scn-markets-and-oye-eboe .distant-fig {
  position: absolute; bottom: 35%; left: 20%; width: 14px; height: 32px;
  background: linear-gradient(180deg, #8b6333 0%, #5a3e20 100%);
  border-radius: 50%;
  transform: scale(0.7);
  animation: mkt-distant 7s ease-in-out infinite alternate;
}
@keyframes mkt-sky { 0% { opacity: .9 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes mkt-stall { 0%,100% { transform: perspective(200px) rotateX(2deg) translateY(0) } 50% { transform: perspective(200px) rotateX(1deg) translateY(-2px) } }
@keyframes mkt-figure { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(4px) rotate(1deg) } 50% { transform: translateX(8px) rotate(-1deg) } 75% { transform: translateX(12px) rotate(2deg) } 100% { transform: translateX(16px) rotate(0) } }
@keyframes mkt-basket { 0%,100% { transform: scale(1) translateY(0) } 50% { transform: scale(1.03) translateY(-1px) } }
@keyframes mkt-rays { 0% { background-position: 0 0 } 100% { background-position: 200% 0 } }
@keyframes mkt-distant { 0% { transform: scale(0.7) translateX(0) } 100% { transform: scale(0.7) translateX(5px) } }

/* slave-trade-inland */
.scn-slave-trade-inland {
  background: linear-gradient(180deg, #b0c4de 0%, #6b8e23 40%, #d2b48c 100%), radial-gradient(ellipse at 80% 80%, #a0522d 0%, transparent 60%);
}
.scn-slave-trade-inland .harsh-sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #f0e68c 0%, #ffd700 30%, #f4a460 100%);
  animation: slt-sky 15s ease-in-out infinite alternate;
}
.scn-slave-trade-inland .dusty-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #c4956a 0%, #8b7355 100%);
  border-radius: 20% 80% 0 0 / 30% 50% 0 0;
  box-shadow: inset 0 8px 16px rgba(0,0,0,.4);
}
.scn-slave-trade-inland .procession-line {
  position: absolute; bottom: 28%; left: 20%; width: 60%; height: 4px;
  background: repeating-linear-gradient(90deg, #4a3b2c 0px, #4a3b2c 8px, transparent 8px, transparent 12px);
  animation: slt-line 6s linear infinite;
}
.scn-slave-trade-inland .bound-figure1 {
  position: absolute; bottom: 22%; left: 30%; width: 20px; height: 45px;
  background: linear-gradient(180deg, #3e2723 0%, #1b0f0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: slt-fig1 3s ease-in-out infinite alternate;
}
.scn-slave-trade-inland .bound-figure2 {
  position: absolute; bottom: 22%; left: 50%; width: 20px; height: 45px;
  background: linear-gradient(180deg, #3e2723 0%, #1b0f0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: slt-fig2 3.2s ease-in-out infinite alternate;
  animation-delay: 1s;
}
.scn-slave-trade-inland .guard-spear {
  position: absolute; bottom: 20%; left: 60%; width: 4px; height: 60px;
  background: linear-gradient(180deg, #7a5c3a 0%, #3a2a1a 100%);
  transform-origin: bottom center;
  animation: slt-spear 2s ease-in-out infinite alternate;
}
.scn-slave-trade-inland .chain-link {
  position: absolute; bottom: 30%; left: 38%; width: 30px; height: 10px;
  background: radial-gradient(circle at 30% 50%, #808080 0%, #404040 100%);
  border-radius: 20%;
  animation: slt-chain 5s ease-in-out infinite;
}
@keyframes slt-sky { 0% { opacity: .85; filter: brightness(1) } 50% { opacity: 1; filter: brightness(1.1) } 100% { opacity: .9; filter: brightness(.95) } }
@keyframes slt-line { 0% { transform: translateX(-20%) } 100% { transform: translateX(20%) } }
@keyframes slt-fig1 { 0% { transform: translateX(0) rotate(-3deg) } 100% { transform: translateX(8px) rotate(3deg) } }
@keyframes slt-fig2 { 0% { transform: translateX(0) rotate(2deg) } 100% { transform: translateX(-8px) rotate(-2deg) } }
@keyframes slt-spear { 0% { transform: rotate(-5deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(-5deg) } }
@keyframes slt-chain { 0%,100% { transform: translateY(0) scaleX(1) } 50% { transform: translateY(2px) scaleX(1.1) } }

/* sacks-for-kidnapping */
.scn-sacks-for-kidnapping {
  background: linear-gradient(180deg, #2c1e10 0%, #1a0f05 100%), radial-gradient(ellipse at 30% 20%, #8b4513 0%, transparent 70%);
}
.scn-sacks-for-kidnapping .dark-wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(90deg, #1a0f05 0%, #3a2a1a 50%, #1a0f05 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,.8);
  animation: sck-wall 12s ease-in-out infinite alternate;
}
.scn-sacks-for-kidnapping .floor-plank {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: repeating-linear-gradient(90deg, #4a3020 0px, #4a3020 20px, #3a2212 20px, #3a2212 40px);
  transform: perspective(300px) rotateX(20deg);
  transform-origin: bottom;
  box-shadow: inset 0 10px 20px rgba(0,0,0,.6);
}
.scn-sacks-for-kidnapping .table-rough {
  position: absolute; bottom: 15%; left: 25%; width: 50%; height: 15%;
  background: linear-gradient(180deg, #6b4a2a 0%, #4a3020 100%);
  border-radius: 4%;
  box-shadow: 0 4px 12px rgba(0,0,0,.7);
}
.scn-sacks-for-kidnapping .sack-left {
  position: absolute; bottom: 22%; left: 30%; width: 35px; height: 40px;
  background: radial-gradient(ellipse at 60% 30%, #b8956a 0%, #7a5a3a 100%);
  border-radius: 30% 30% 60% 60% / 40% 40% 60% 60%;
  box-shadow: inset -4px -4px 8px rgba(0,0,0,.5);
  transform: rotate(-10deg);
  animation: sck-sack1 5s ease-in-out infinite;
}
.scn-sacks-for-kidnapping .sack-right {
  position: absolute; bottom: 20%; left: 55%; width: 40px; height: 45px;
  background: radial-gradient(ellipse at 50% 20%, #b8956a 0%, #7a5a3a 100%);
  border-radius: 30% 30% 60% 60% / 40% 40% 60% 60%;
  box-shadow: inset -4px -4px 8px rgba(0,0,0,.5);
  transform: rotate(8deg);
  animation: sck-sack2 5.5s ease-in-out infinite alternate;
}
.scn-sacks-for-kidnapping .lantern-glow {
  position: absolute; top: 15%; left: 45%; width: 50px; height: 60px;
  background: radial-gradient(circle at 50% 50%, #ffd700 0%, #cc8800 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(255,215,0,.3);
  animation: sck-glow 3s ease-in-out infinite alternate;
}
.scn-sacks-for-kidnapping .shadow-hand {
  position: absolute; bottom: 18%; right: 20%; width: 30px; height: 40px;
  background: #0a0502;
  border-radius: 60% 60% 40% 40% / 70% 70% 30% 30%;
  transform: rotate(30deg);
  opacity: 0.6;
  animation: sck-hand 4s ease-in-out infinite alternate;
}
@keyframes sck-wall { 0% { opacity: .7 } 50% { opacity: .9 } 100% { opacity: .8 } }
@keyframes sck-sack1 { 0%,100% { transform: rotate(-10deg) translateY(0) } 50% { transform: rotate(-8deg) translateY(-3px) } }
@keyframes sck-sack2 { 0% { transform: rotate(8deg) translateY(0) } 100% { transform: rotate(10deg) translateY(-4px) } }
@keyframes sck-glow { 0% { opacity: .8; box-shadow: 0 0 30px 15px rgba(255,215,0,.2) } 50% { opacity: 1; box-shadow: 0 0 60px 30px rgba(255,215,0,.4) } 100% { opacity: .9; box-shadow: 0 0 40px 20px rgba(255,215,0,.3) } }
@keyframes sck-hand { 0% { transform: rotate(25deg) scale(1) } 100% { transform: rotate(35deg) scale(1.05) } }

/* rich-land-and-produce */
.scn-rich-land-and-produce {
  background: linear-gradient(180deg, #87ceeb 0%, #b0e0e6 30%, #90ee90 70%, #228b22 100%), radial-gradient(ellipse at 20% 80%, #ffd700 0%, transparent 60%);
}
.scn-rich-land-and-produce .sky-wide {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #4a90d9 0%, #87ceeb 50%, #fef5e7 100%);
  animation: rch-sky 20s ease-in-out infinite alternate;
}
.scn-rich-land-and-produce .fields-rows {
  position: absolute; bottom: 10%; left: 0; right: 0; height: 60%;
  background: repeating-linear-gradient(90deg, #6b8e23 0px, #6b8e23 40px, #556b2f 40px, #556b2f 80px);
  border-radius: 40% 60% 0 0 / 30% 40% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,.3);
  transform: perspective(400px) rotateX(10deg);
  transform-origin: bottom;
}
.scn-rich-land-and-produce .corn-stalks {
  position: absolute; bottom: 20%; left: 10%; width: 50px; height: 80px;
  background: linear-gradient(180deg, #556b2f 0%, #228b22 100%);
  border-radius: 30% 30% 0 0;
  box-shadow: 2px 0 6px rgba(0,0,0,.2);
  transform: rotate(-5deg);
  animation: rch-corn 7s ease-in-out infinite;
}
.scn-rich-land-and-produce .corn-stalks::before {
  content: ''; display: block; position: absolute; top: -10px; left: 10px; width: 10px; height: 20px;
  background: linear-gradient(180deg, #ffd700 0%, #daa520 100%);
  border-radius: 50%;
  animation: rch-corn-ear 3s ease-in-out infinite alternate;
}
.scn-rich-land-and-produce .cotton-bolls {
  position: absolute; bottom: 15%; left: 35%; width: 40px; height: 35px;
  background: radial-gradient(circle at 50% 40%, #f5f5dc 0%, #d2b48c 100%);
  border-radius: 50%;
  box-shadow: 0 4px 8px rgba(0,0,0,.2), inset 0 -2px 4px rgba(0,0,0,.1);
  animation: rch-cotton 8s ease-in-out infinite alternate;
}
.scn-rich-land-and-produce .pineapple-cluster {
  position: absolute; bottom: 15%; left: 55%; width: 60px; height: 70px;
  background: radial-gradient(ellipse at 50% 50%, #c0a040 0%, #8b6914 100%);
  border-radius: 30% 30% 60% 60% / 40% 40% 60% 60%;
  box-shadow: 0 6px 12px rgba(0,0,0,.3);
  animation: rch-pine 10s ease-in-out infinite;
}
.scn-rich-land-and-produce .farmer-silhouette {
  position: absolute; bottom: 12%; left: 22%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #1a1a0e 0%, #0d0d06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rch-farmer 5s ease-in-out infinite alternate;
}
.scn-rich-land-and-produce .sun-burst {
  position: absolute; top: 0; left: 30%; width: 100px; height: 100px;
  background: radial-gradient(circle at 50% 50%, #fff5c0 0%, transparent 70%);
  border-radius: 50%;
  mix-blend-mode: screen;
  animation: rch-sun 25s linear infinite;
}
.scn-rich-land-and-produce .tobacco-leaves {
  position: absolute; bottom: 8%; left: 70%; width: 50px; height: 30px;
  background: linear-gradient(180deg, #4a6b2a 0%, #2a4a1a 100%);
  border-radius: 80% 20% 80% 20% / 50% 50% 50% 50%;
  box-shadow: 0 4px 6px rgba(0,0,0,.3);
  transform: rotate(-15deg);
  animation: rch-tobacco 9s ease-in-out infinite alternate;
}
@keyframes rch-sky { 0% { opacity: .9 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes rch-corn { 0%,100% { transform: rotate(-5deg) } 50% { transform: rotate(-3deg) translateY(-2px) } }
@keyframes rch-corn-ear { 0% { transform: scaleY(1) } 100% { transform: scaleY(1.2) } }
@keyframes rch-cotton { 0% { transform: scale(1) } 100% { transform: scale(1.05) } }
@keyframes rch-pine { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-3px) } }
@keyframes rch-farmer { 0% { transform: translateX(0) } 100% { transform: translateX(8px) } }
@keyframes rch-sun { 0% { transform: rotate(0deg) scale(1) } 50% { transform: rotate(10deg) scale(1.1) } 100% { transform: rotate(20deg) scale(1) } }
@keyframes rch-tobacco { 0% { transform: rotate(-15deg) } 100% { transform: rotate(-10deg) } }

.scn-arctic-bears-and-seahorses {
  background: linear-gradient(180deg, #b8d4e8 0%, #8ab4d4 40%, #6a9ec0 100%), radial-gradient(ellipse at 50% 100%, #6a9ec0 0%, transparent 70%);
}
.scn-arctic-bears-and-seahorses .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #ffe8b0 0%, #b8d4e8 100%);
  animation: abs-sky 12s ease-in-out infinite alternate;
}
.scn-arctic-bears-and-seahorses .ice-field {
  position: absolute; bottom: 35%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #e0f0f8 0%, #c8e0ec 100%);
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  box-shadow: inset 0 -10px 20px rgba(100,150,180,0.3);
  animation: abs-ice 15s ease-in-out infinite alternate;
}
.scn-arctic-bears-and-seahorses .water {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #4a7a9a 0%, #2a5a7a 100%);
  animation: abs-water 20s linear infinite;
}
.scn-arctic-bears-and-seahorses .ship {
  position: absolute; bottom: 28%; left: 20%; width: 40px; height: 30px;
  background: linear-gradient(90deg, #5a3a2a 0%, #3a1a0a 50%, #5a3a2a 100%);
  border-radius: 10% 10% 40% 40%;
  transform: scale(0.8);
  animation: abs-ship 8s ease-in-out infinite;
}
.scn-arctic-bears-and-seahorses .bear {
  position: absolute; bottom: 22%; width: 24px; height: 32px;
  background: radial-gradient(ellipse at 50% 30%, #f0e8d0 0%, #c0b090 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: inset 0 -6px 6px rgba(0,0,0,0.2);
}
.scn-arctic-bears-and-seahorses .bear-a {
  left: 55%;
  animation: abs-bear-a 6s ease-in-out infinite;
}
.scn-arctic-bears-and-seahorses .bear-b {
  left: 70%;
  animation: abs-bear-b 7s ease-in-out infinite 1s;
}
.scn-arctic-bears-and-seahorses .cloud {
  position: absolute; top: 12%; left: 30%; width: 70px; height: 16px;
  background: linear-gradient(90deg, rgba(255,255,240,0.6) 0%, rgba(255,255,240,0.2) 100%);
  border-radius: 50%;
  filter: blur(5px);
  animation: abs-cloud 40s linear infinite;
}
@keyframes abs-sky { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes abs-ice { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes abs-water { 0% { background-position: 0% 100%; } 100% { background-position: 200% 100%; } }
@keyframes abs-ship { 0%,100% { transform: translateX(0) scale(0.8); } 50% { transform: translateX(4px) scale(0.82); } }
@keyframes abs-bear-a { 0% { transform: translateX(0) rotate(0deg); } 33% { transform: translateX(8px) rotate(2deg); } 66% { transform: translateX(-4px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes abs-bear-b { 0% { transform: translateX(0) rotate(0deg) scale(0.95); } 50% { transform: translateX(-6px) rotate(-2deg) scale(1); } 100% { transform: translateX(0) rotate(0deg) scale(0.95); } }
@keyframes abs-cloud { 0% { transform: translateX(-40px); } 100% { transform: translateX(120vw); } }

.scn-trapped-in-ice {
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 40%, #0e0e1e 100%), radial-gradient(ellipse at 50% 100%, #1a1a2e 0%, transparent 70%);
}
.scn-trapped-in-ice .sky-dark {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #4a4a5e 0%, #2a2a3e 100%);
  animation: tii-sky 15s ease-in-out infinite alternate;
}
.scn-trapped-in-ice .ice-sheet {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #d0d8e0 0%, #b0b8c0 100%);
  border-radius: 60% 40% 0 0 / 80% 80% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.5);
  animation: tii-ice 12s ease-in-out infinite alternate;
}
.scn-trapped-in-ice .ship-hull {
  position: absolute; bottom: 28%; left: 50%; width: 80px; height: 40px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 30% 30%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.6);
  animation: tii-hull 8s ease-in-out infinite;
}
.scn-trapped-in-ice .mast {
  position: absolute; bottom: 42%; left: 50%; width: 4px; height: 60px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 2px;
  animation: tii-mast 10s ease-in-out infinite;
}
.scn-trapped-in-ice .rope {
  position: absolute; bottom: 50%; left: 44%; width: 30px; height: 2px;
  background: #2a1a0a;
  transform: rotate(20deg);
  transform-origin: left center;
  animation: tii-rope 6s ease-in-out infinite;
}
.scn-trapped-in-ice .lantern-dim {
  position: absolute; bottom: 46%; left: 48%; width: 10px; height: 14px;
  background: radial-gradient(circle, #c08040 0%, #603010 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 15px 3px rgba(160,80,40,0.3);
  animation: tii-lantern 4s ease-in-out infinite alternate;
}
.scn-trapped-in-ice .ice-crack {
  position: absolute; bottom: 38%; left: 10%; width: 80%; height: 4px;
  background: linear-gradient(90deg, transparent 0%, #e8f0f8 20%, #c8d8e0 50%, #e8f0f8 80%, transparent 100%);
  filter: blur(2px);
  animation: tii-crack 18s linear infinite;
}
@keyframes tii-sky { 0% { opacity: 0.6; } 50% { opacity: 0.8; } 100% { opacity: 0.5; } }
@keyframes tii-ice { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-3px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes tii-hull { 0%,100% { transform: translateX(-50%) rotate(0deg); } 25% { transform: translateX(-49%) rotate(-1deg); } 75% { transform: translateX(-51%) rotate(1deg); } }
@keyframes tii-mast { 0%,100% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(0.5deg); } }
@keyframes tii-rope { 0% { transform: rotate(20deg); } 50% { transform: rotate(25deg); } 100% { transform: rotate(20deg); } }
@keyframes tii-lantern { 0% { box-shadow: 0 0 10px 2px rgba(160,80,40,0.2); } 50% { box-shadow: 0 0 20px 5px rgba(200,100,50,0.4); } 100% { box-shadow: 0 0 12px 3px rgba(160,80,40,0.3); } }
@keyframes tii-crack { 0% { transform: translateX(-20px); opacity: 0.4; } 50% { transform: translateX(20px); opacity: 0.8; } 100% { transform: translateX(-20px); opacity: 0.4; } }

.scn-escape-from-ice {
  background: linear-gradient(180deg, #6a7a8a 0%, #4a5a6a 40%, #3a4a5a 100%), radial-gradient(ellipse at 50% 0%, #8a9aaa 0%, transparent 60%);
}
.scn-escape-from-ice .sky-overcast {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #8a9aa8 0%, #6a7a88 100%);
  animation: efi-sky 14s ease-in-out infinite alternate;
}
.scn-escape-from-ice .ice-broken {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #c8d8e0 0%, #a8b8c0 100%);
  border-radius: 30% 70% 0 0 / 50% 90% 0 0;
  box-shadow: inset 0 6px 15px rgba(0,0,0,0.4);
  animation: efi-ice 10s ease-in-out infinite alternate;
}
.scn-escape-from-ice .ship-moving {
  position: absolute; bottom: 20%; left: 40%; width: 70px; height: 35px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 40% 40%;
  transform: scale(0.9);
  animation: efi-ship 6s ease-in-out infinite;
}
.scn-escape-from-ice .sail {
  position: absolute; bottom: 32%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #d8c8b0 0%, #b8a890 100%);
  border-radius: 10% 10% 40% 40%;
}
.scn-escape-from-ice .sail-1 {
  left: 44%;
  transform: rotate(10deg);
  animation: efi-sail1 7s ease-in-out infinite;
}
.scn-escape-from-ice .sail-2 {
  left: 52%;
  transform: rotate(-5deg);
  animation: efi-sail2 8s ease-in-out infinite 0.5s;
}
.scn-escape-from-ice .wave {
  position: absolute; bottom: 10%; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #4a6a7a 0%, #2a4a5a 100%);
  border-radius: 40% 60% 0 0 / 100% 100% 0 0;
  animation: efi-wave 4s ease-in-out infinite alternate;
}
.scn-escape-from-ice .spray {
  position: absolute; bottom: 22%; left: 60%; width: 30px; height: 20px;
  background: radial-gradient(ellipse at 50% 100%, rgba(200,220,230,0.6) 0%, transparent 100%);
  filter: blur(4px);
  animation: efi-spray 3s ease-in-out infinite;
}
@keyframes efi-sky { 0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.75; } }
@keyframes efi-ice { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-2px) scaleX(1.01); } 100% { transform: translateY(0) scaleX(1); } }
@keyframes efi-ship { 0%,100% { transform: translateX(0) scale(0.9); } 25% { transform: translateX(3px) scale(0.91); } 75% { transform: translateX(-3px) scale(0.89); } }
@keyframes efi-sail1 { 0%,100% { transform: rotate(10deg) scaleY(1); } 33% { transform: rotate(12deg) scaleY(1.02); } 66% { transform: rotate(8deg) scaleY(0.98); } }
@keyframes efi-sail2 { 0%,100% { transform: rotate(-5deg) scaleY(1); } 50% { transform: rotate(-8deg) scaleY(1.03); } }
@keyframes efi-wave { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-3px) scaleY(1.05); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes efi-spray { 0% { transform: translate(0,0) scale(1); opacity: 0.6; } 50% { transform: translate(5px,-5px) scale(1.2); opacity: 1; } 100% { transform: translate(0,0) scale(1); opacity: 0.6; } }

.scn-return-from-arctic {
  background: linear-gradient(180deg, #6a7a6a 0%, #4a5a4a 40%, #3a4a3a 100%), radial-gradient(ellipse at 50% 60%, #8a9a8a 0%, transparent 70%);
}
.scn-return-from-arctic .sky-storm {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #5a6a5a 0%, #3a4a3a 100%);
  animation: rfa-sky 18s ease-in-out infinite alternate;
}
.scn-return-from-arctic .sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%);
  animation: rfa-sea 5s ease-in-out infinite alternate;
}
.scn-return-from-arctic .ship-rolling {
  position: absolute; bottom: 30%; left: 50%; width: 80px; height: 40px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 30% 30%;
  box-shadow: 0 6px 15px rgba(0,0,0,0.6);
  animation: rfa-ship 4s ease-in-out infinite;
}
.scn-return-from-arctic .sail-fore {
  position: absolute; bottom: 42%; left: 42%; width: 22px; height: 35px;
  background: linear-gradient(180deg, #c8b8a0 0%, #a89880 100%);
  border-radius: 10% 10% 40% 40%;
  transform: rotate(15deg);
  animation: rfa-sail 6s ease-in-out infinite;
}
.scn-return-from-arctic .wave-big {
  position: absolute; bottom: 10%; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #2a4a2a 0%, #1a2a1a 100%);
  border-radius: 60% 40% 0 0 / 100% 100% 0 0;
  animation: rfa-wave 3s ease-in-out infinite alternate;
}
.scn-return-from-arctic .spray-storm {
  position: absolute; bottom: 28%; left: 55%; width: 40px; height: 25px;
  background: radial-gradient(ellipse at 50% 100%, rgba(180,200,180,0.5) 0%, transparent 100%);
  filter: blur(5px);
  animation: rfa-spray 2s ease-in-out infinite;
}
.scn-return-from-arctic .cloud-storm {
  position: absolute; top: 10%; width: 60px; height: 16px;
  background: linear-gradient(90deg, rgba(80,100,80,0.4) 0%, rgba(80,100,80,0.1) 100%);
  border-radius: 50%;
  filter: blur(4px);
}
.scn-return-from-arctic .cloud-a {
  left: 20%;
  animation: rfa-cloud-a 35s linear infinite;
}
.scn-return-from-arctic .cloud-b {
  right: 10%;
  animation: rfa-cloud-b 40s linear infinite reverse;
}
@keyframes rfa-sky { 0% { opacity: 0.5; } 33% { opacity: 0.7; } 66% { opacity: 0.6; } 100% { opacity: 0.8; } }
@keyframes rfa-sea { 0% { transform: translateY(0); } 50% { transform: translateY(4px); } 100% { transform: translateY(0); } }
@keyframes rfa-ship { 0%,100% { transform: translateX(-50%) rotate(0deg); } 25% { transform: translateX(-48%) rotate(-3deg); } 75% { transform: translateX(-52%) rotate(3deg); } }
@keyframes rfa-sail { 0%,100% { transform: rotate(15deg) scaleY(1); } 33% { transform: rotate(18deg) scaleY(1.1); } 66% { transform: rotate(12deg) scaleY(0.9); } }
@keyframes rfa-wave { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-5px) scaleY(1.2); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes rfa-spray { 0% { transform: translate(0,0) scale(1); opacity: 0.5; } 50% { transform: translate(8px,-8px) scale(1.4); opacity: 1; } 100% { transform: translate(0,0) scale(1); opacity: 0.5; } }
@keyframes rfa-cloud-a { 0% { transform: translateX(-30px); } 100% { transform: translateX(120vw); } }
@keyframes rfa-cloud-b { 0% { transform: translateX(0); } 100% { transform: translateX(-100vw); } }

.scn-priests-and-magicians {
  background:
    linear-gradient(180deg, #f5e6c8 0%, #d9c29e 40%, #b8936a 100%),
    radial-gradient(ellipse at 50% 50%, rgba(255,220,180,0.3) 0%, transparent 70%);
}

.scn-priests-and-magicians .wall-bg {
  position: absolute; inset: 0 0 0 0;
  background: linear-gradient(135deg, #e8d5b0 0%, #c4a882 50%, #a08060 100%);
  animation: pm-wall 20s ease-in-out infinite alternate;
}

.scn-priests-and-magicians .arch {
  position: absolute; bottom: 20%; left: 50%; width: 220px; height: 260px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #8a6e4a 0%, #6a5030 100%);
  border-radius: 50% 50% 8% 8% / 60% 60% 8% 8%;
  box-shadow: inset 0 -20px 40px rgba(0,0,0,0.3), 0 4px 12px rgba(0,0,0,0.2);
}

.scn-priests-and-magicians .wise-man {
  position: absolute; bottom: 22%; left: 50%; width: 48px; height: 120px;
  transform: translateX(calc(-50% + 2px));
  background: linear-gradient(180deg, #d4a878 0%, #b8845a 40%, #8a6040 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  animation: pm-breathe 6s ease-in-out infinite;
}

.scn-priests-and-magicians .wise-robe {
  position: absolute; bottom: 22%; left: 50%; width: 70px; height: 100px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 60%, #2a1a0a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.4);
}

.scn-priests-and-magicians .staff {
  position: absolute; bottom: 22%; left: calc(50% + 32px); width: 6px; height: 130px;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a10 100%);
  border-radius: 20%;
  transform-origin: bottom center;
  animation: pm-staff 8s ease-in-out infinite;
}

.scn-priests-and-magicians .glow-orb {
  position: absolute; bottom: 60%; left: calc(50% + 34px); width: 14px; height: 14px;
  background: radial-gradient(circle, #ffe8a0 0%, #d4a040 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 8px rgba(255,232,160,0.5), 0 0 40px 16px rgba(212,160,64,0.3);
  animation: pm-orb 4s ease-in-out infinite alternate;
}

.scn-priests-and-magicians .scroll {
  position: absolute; bottom: 30%; left: calc(50% - 30px); width: 20px; height: 28px;
  background: linear-gradient(180deg, #f0e0c0 0%, #d0b890 100%);
  border-radius: 10% 10% 20% 20%;
  transform: rotate(-15deg);
  box-shadow: 1px 2px 6px rgba(0,0,0,0.2);
  animation: pm-scroll 12s ease-in-out infinite;
}

.scn-priests-and-magicians .dust {
  position: absolute; inset: 0 0 0 0;
  background: transparent;
  pointer-events: none;
  animation: pm-dust 20s linear infinite;
}

.scn-priests-and-magicians .dust::before {
  content: '';
  position: absolute; top: 20%; left: 20%; width: 2px; height: 2px;
  background: rgba(200,170,130,0.4); border-radius: 50%;
  box-shadow: 30px 50px 0 1px rgba(200,170,130,0.3), 60px 20px 0 0 rgba(200,170,130,0.25), 90px 70px 0 1px rgba(200,170,130,0.2), 120px 40px 0 0 rgba(200,170,130,0.35);
}

@keyframes pm-wall { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes pm-breathe { 0% { transform: translateX(calc(-50% + 2px)) scaleY(1); } 50% { transform: translateX(calc(-50% + 2px)) scaleY(1.01); } 100% { transform: translateX(calc(-50% + 2px)) scaleY(1); } }
@keyframes pm-staff { 0% { transform: rotate(0deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(0deg); } }
@keyframes pm-orb { 0% { box-shadow: 0 0 16px 6px rgba(255,232,160,0.4), 0 0 32px 12px rgba(212,160,64,0.2); } 50% { box-shadow: 0 0 28px 12px rgba(255,232,160,0.6), 0 0 48px 20px rgba(212,160,64,0.4); } 100% { box-shadow: 0 0 20px 8px rgba(255,232,160,0.5), 0 0 40px 16px rgba(212,160,64,0.3); } }
@keyframes pm-scroll { 0% { transform: rotate(-15deg) translateY(0); } 50% { transform: rotate(-13deg) translateY(-2px); } 100% { transform: rotate(-15deg) translateY(0); } }
@keyframes pm-dust { 0% { transform: translateY(0); opacity: 0.3; } 50% { transform: translateY(-20px); opacity: 0.6; } 100% { transform: translateY(0); opacity: 0.3; } }

.scn-funeral-customs {
  background:
    linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 30%, #0e0e1a 60%, #08080e 100%),
    radial-gradient(ellipse at 50% 120%, #1a1a3e 0%, transparent 70%);
}

.scn-funeral-customs .dusk-sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #3a3040 0%, #2a2030 40%, #1a1020 80%, transparent 100%);
  animation: fc-sky 15s ease-in-out infinite alternate;
}

.scn-funeral-customs .grave-mound {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 40%, #0a1a0a 100%);
  border-radius: 60% 40% 0 0 / 80% 60% 0 0;
  box-shadow: inset 0 12px 30px rgba(0,0,0,0.6);
}

.scn-funeral-customs .corpse-wrap {
  position: absolute; bottom: 32%; left: 50%; width: 100px; height: 60px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  box-shadow: 0 4px 20px rgba(0,0,0,0.5);
  animation: fc-corpse 20s ease-in-out infinite;
}

.scn-funeral-customs .funeral-pipe {
  position: absolute; bottom: 42%; left: calc(50% - 30px); width: 8px; height: 24px;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a10 100%);
  border-radius: 20% 20% 40% 40%;
  transform: rotate(25deg);
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
}

.scn-funeral-customs .offering-pot {
  position: absolute; bottom: 35%; left: calc(50% + 40px); width: 28px; height: 24px;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a1a 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: fc-pot 14s ease-in-out infinite;
}

.scn-funeral-customs .mourner {
  position: absolute; bottom: 20%; width: 30px; height: 80px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
}

.scn-funeral-customs .mourner-a {
  left: 22%; animation: fc-mourn-a 8s ease-in-out infinite;
}

.scn-funeral-customs .mourner-b {
  right: 22%; animation: fc-mourn-b 9s ease-in-out infinite 2s;
}

.scn-funeral-customs .ember {
  position: absolute; width: 4px; height: 4px;
  border-radius: 50%;
  background: radial-gradient(circle, #c08040 0%, #804020 60%, transparent 100%);
  box-shadow: 0 0 6px 2px rgba(192,128,64,0.4);
}

.scn-funeral-customs .ember-a {
  bottom: 50%; left: 30%;
  animation: fc-ember 6s ease-in-out infinite;
}

.scn-funeral-customs .ember-b {
  bottom: 45%; right: 28%;
  animation: fc-ember 8s ease-in-out infinite 3s;
}

@keyframes fc-sky { 0% { opacity: 0.6; } 50% { opacity: 0.8; } 100% { opacity: 0.5; } }
@keyframes fc-corpse { 0% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-2px); } 100% { transform: translateX(-50%) translateY(0); } }
@keyframes fc-pot { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes fc-mourn-a { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes fc-mourn-b { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(-2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes fc-ember { 0% { transform: translateY(0) scale(1); opacity: 0.6; } 50% { transform: translateY(-8px) scale(1.2); opacity: 1; } 100% { transform: translateY(0) scale(1); opacity: 0.6; } }

.scn-medicine-and-poison-test {
  background:
    linear-gradient(180deg, #2a1a0e 0%, #1a0e06 40%, #0e0602 100%),
    radial-gradient(ellipse at 50% 60%, #3a2a1a 0%, transparent 70%);
}

.scn-medicine-and-poison-test .chamber-wall {
  position: absolute; inset: 0 0 0 0;
  background: linear-gradient(135deg, #3a2a1a 0%, #1a0e06 50%, #0e0602 100%);
  animation: mtp-wall 18s ease-in-out infinite alternate;
}

.scn-medicine-and-poison-test .table-stone {
  position: absolute; bottom: 20%; left: 50%; width: 160px; height: 20px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 4% 4% 2% 2%;
  box-shadow: 0 4px 20px rgba(0,0,0,0.6), inset 0 2px 4px rgba(100,80,60,0.2);
}

.scn-medicine-and-poison-test .mortal {
  position: absolute; bottom: 30%; left: 50%; width: 44px; height: 70px;
  transform: translateX(calc(-50% - 18px));
  background: linear-gradient(180deg, #6a5040 0%, #4a3020 50%, #2a1a0a 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 45% 45%;
  animation: mtp-breathe 5s ease-in-out infinite;
}

.scn-medicine-and-poison-test .poison-vial {
  position: absolute; bottom: 28%; left: calc(50% + 20px); width: 10px; height: 22px;
  background: linear-gradient(180deg, #5a6a3a 0%, #3a4a1a 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 0 8px 2px rgba(90,106,58,0.3);
  transform: rotate(10deg);
  animation: mtp-vial 9s ease-in-out infinite;
}

.scn-medicine-and-poison-test .antidote-cup {
  position: absolute; bottom: 26%; left: calc(50% + 45px); width: 16px; height: 14px;
  background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
}

.scn-medicine-and-poison-test .shadow-hand {
  position: absolute; bottom: 26%; left: calc(50% - 40px); width: 40px; height: 36px;
  background: linear-gradient(180deg, #1a0e06 0%, #0e0602 80%);
  border-radius: 50% 50% 30% 30% / 40% 40% 60% 60%;
  transform: rotate(-20deg);
  filter: blur(1px);
  animation: mtp-hand 7s ease-in-out infinite alternate;
}

.scn-medicine-and-poison-test .candle-flicker {
  position: absolute; bottom: 45%; right: 20%; width: 6px; height: 18px;
  background: linear-gradient(180deg, #e0c080 0%, #c08040 60%, #4a2a10 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 20px 8px rgba(224,192,128,0.4), 0 0 40px 16px rgba(192,128,64,0.2);
  animation: mtp-candle 3s ease-in-out infinite alternate;
}

.scn-medicine-and-poison-test .smoke-wisp {
  position: absolute; bottom: 52%; right: 22%; width: 12px; height: 40px;
  background: linear-gradient(180deg, rgba(160,140,120,0.3) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(3px);
  animation: mtp-smoke 10s ease-in-out infinite;
}

@keyframes mtp-wall { 0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.7; } }
@keyframes mtp-breathe { 0% { transform: translateX(calc(-50% - 18px)) scaleY(1); } 50% { transform: translateX(calc(-50% - 18px)) scaleY(1.02); } 100% { transform: translateX(calc(-50% - 18px)) scaleY(1); } }
@keyframes mtp-vial { 0% { transform: rotate(10deg) translateY(0); } 50% { transform: rotate(8deg) translateY(-2px); } 100% { transform: rotate(10deg) translateY(0); } }
@keyframes mtp-hand { 0% { transform: rotate(-20deg) translateY(0); } 50% { transform: rotate(-18deg) translateY(-3px); } 100% { transform: rotate(-20deg) translateY(0); } }
@keyframes mtp-candle { 0% { box-shadow: 0 0 16px 6px rgba(224,192,128,0.3), 0 0 32px 12px rgba(192,128,64,0.15); opacity: 0.8; } 50% { box-shadow: 0 0 28px 12px rgba(224,192,128,0.5), 0 0 48px 20px rgba(192,128,64,0.3); opacity: 1; } 100% { box-shadow: 0 0 20px 8px rgba(224,192,128,0.4), 0 0 40px 16px rgba(192,128,64,0.2); opacity: 0.9; } }
@keyframes mtp-smoke { 0% { transform: translateY(0) scaleX(1); opacity: 0.4; } 50% { transform: translateY(-12px) scaleX(1.3); opacity: 0.2; } 100% { transform: translateY(0) scaleX(1); opacity: 0.4; } }

.scn-poison-discovery-corpse {
  background:
    linear-gradient(180deg, #0a0a14 0%, #141422 30%, #0e0e1a 60%, #06060e 100%),
    radial-gradient(ellipse at 50% 50%, rgba(20,20,40,0.5) 0%, transparent 70%);
}

.scn-poison-discovery-corpse .night-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #141a14 0%, #0a0e0a 40%, #040604 100%);
  border-radius: 30% 70% 0 0 / 40% 60% 0 0;
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.7);
}

.scn-poison-discovery-corpse .corpse-shroud {
  position: absolute; bottom: 30%; left: 50%; width: 80px; height: 50px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a2a2a 0%, #1a0e0e 100%);
  border-radius: 20% 20% 15% 15% / 30% 30% 25% 25%;
  box-shadow: 0 4px 16px rgba(0,0,0,0.6);
  animation: pdc-shroud 12s ease-in-out infinite;
}

.scn-poison-discovery-corpse .bearer {
  position: absolute; bottom: 18%; width: 36px; height: 90px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a16 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
}

.scn-poison-discovery-corpse .bearer-a {
  left: 34%; animation: pdc-bearer-a 3s ease-in-out infinite;
}

.scn-poison-discovery-corpse .bearer-b {
  left: 46%; animation: pdc-bearer-b 3.2s ease-in-out infinite 0.4s;
}

.scn-poison-discovery-corpse .bearer-c {
  right: 28%; animation: pdc-bearer-c 3.5s ease-in-out infinite 0.8s;
}

.scn-poison-discovery-corpse .torch {
  position: absolute; bottom: 30%; width: 8px; height: 24px;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a10 100%);
  border-radius: 20% 20% 10% 10%;
}

.scn-poison-discovery-corpse .torch-a {
  left: 30%; animation: pdc-torch-a 4s ease-in-out infinite alternate;
}

.scn-poison-discovery-corpse .torch-b {
  right: 24%; animation: pdc-torch-b 4.5s ease-in-out infinite alternate 1s;
}

.scn-poison-discovery-corpse .torch::before {
  content: '';
  position: absolute; top: -10px; left: 50%; width: 12px; height: 12px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #d08040 0%, #a06020 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 16px 6px rgba(208,128,64,0.4), 0 0 32px 12px rgba(160,96,32,0.2);
}

.scn-poison-discovery-corpse .shudder-wave {
  position: absolute; bottom: 22%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, transparent 0%, rgba(20,30,40,0.3) 50%, transparent 100%);
  filter: blur(8px);
  animation: pdc-wave 5s ease-in-out infinite;
}

@keyframes pdc-shroud { 0% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(1deg) translateY(-2px); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes pdc-bearer-a { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-4px) rotate(3deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes pdc-bearer-b { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(-2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes pdc-bearer-c { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-5px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes pdc-torch-a { 0% { transform: rotate(-5deg); } 50% { transform: rotate(0deg); } 100% { transform: rotate(5deg); } }
@keyframes pdc-torch-b { 0% { transform: rotate(3deg); } 50% { transform: rotate(-2deg); } 100% { transform: rotate(0deg); } }
@keyframes pdc-wave { 0% { transform: translateY(0) scaleY(1); opacity: 0.3; } 50% { transform: translateY(-6px) scaleY(1.2); opacity: 0.6; } 100% { transform: translateY(0) scaleY(1); opacity: 0.3; } }

/* slave-habitats – dim interior, calm mood */
.scn-slave-habitats {
  background: linear-gradient(135deg, #2e2a1f 0%, #3d3628 60%, #4a4231 100%) padding-box,
              radial-gradient(ellipse at 30% 80%, #5a4f36 0%, transparent 70%) border-box;
}
.scn-slave-habitats .wall-back {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #4a4231 0%, #3d3628 40%, #2e2a1f 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.5);
  border-bottom: 3px solid #6e6043;
}
.scn-slave-habitats .wall-left {
  position: absolute; top: 0; left: 0; bottom: 25%; width: 30%;
  background: linear-gradient(90deg, #3d3628 0%, #4a4231 50%, #5a4f36 100%);
  box-shadow: inset -8px 0 15px rgba(0,0,0,0.4);
  clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%, 5% 0);
}
.scn-slave-habitats .wall-right {
  position: absolute; top: 0; right: 0; bottom: 25%; width: 30%;
  background: linear-gradient(270deg, #3d3628 0%, #4a4231 50%, #5a4f36 100%);
  box-shadow: inset 8px 0 15px rgba(0,0,0,0.4);
  clip-path: polygon(0 0, 100% 0, 95% 100%, 0 100%, 0 0);
}
.scn-slave-habitats .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #3a3428 0%, #2a2418 100%);
  box-shadow: inset 0 8px 12px rgba(0,0,0,0.6);
}
.scn-slave-habitats .doorway {
  position: absolute; bottom: 25%; left: 45%; width: 15%; height: 50%;
  background: linear-gradient(180deg, #1c1812 0%, #0d0a06 100%);
  border-radius: 30% 30% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.8);
  animation: sh-doorway 8s ease-in-out infinite alternate;
}
.scn-slave-habitats .figure-sitting {
  position: absolute; bottom: 25%; left: 35%; width: 12%; height: 20%;
  background: radial-gradient(ellipse at 50% 100%, #2a2418 0%, #1a1612 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sh-figure 6s ease-in-out infinite;
}
.scn-slave-habitats .lantern {
  position: absolute; bottom: 55%; left: 55%; width: 4%; height: 4%;
  background: radial-gradient(circle, #d49a5a 0%, #b8753a 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(212,154,90,0.4), 0 0 60px 20px rgba(212,154,90,0.2);
  animation: sh-lantern 4s ease-in-out infinite alternate;
}
.scn-slave-habitats .basket {
  position: absolute; bottom: 25%; right: 25%; width: 8%; height: 10%;
  background: linear-gradient(135deg, #6e6043 0%, #8a7a5a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%;
  box-shadow: inset 0 -4px 8px rgba(0,0,0,0.4);
  animation: sh-basket 10s ease-in-out infinite alternate;
}
@keyframes sh-doorway {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes sh-figure {
  0% { transform: rotate(0deg); }
  25% { transform: rotate(2deg); }
  50% { transform: rotate(-1deg); }
  75% { transform: rotate(1deg); }
  100% { transform: rotate(0deg); }
}
@keyframes sh-lantern {
  0% { box-shadow: 0 0 20px 5px rgba(212,154,90,0.3), 0 0 40px 10px rgba(212,154,90,0.15); opacity: 0.8; }
  100% { box-shadow: 0 0 40px 15px rgba(212,154,90,0.5), 0 0 80px 25px rgba(212,154,90,0.25); opacity: 1; }
}
@keyframes sh-basket {
  0% { transform: scale(1) rotate(0deg); }
  50% { transform: scale(1.03) rotate(2deg); }
  100% { transform: scale(0.97) rotate(-1deg); }
}

/* beds-and-coverings – dim interior, calm mood */
.scn-beds-and-coverings {
  background: linear-gradient(180deg, #2f2b24 0%, #3c372e 50%, #4a4438 100%),
              radial-gradient(ellipse at 50% 30%, #5a5243 0%, transparent 80%);
}
.scn-beds-and-coverings .mat-wall {
  position: absolute; top: 0; left: 5%; right: 5%; bottom: 40%;
  background: repeating-linear-gradient(90deg, #5a5243 0px, #5a5243 8px, #6e6555 8px, #6e6555 16px);
  border-radius: 0 0 10% 10% / 0 0 30% 30%;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.5);
  animation: bc-mat-wall 15s linear infinite;
}
.scn-beds-and-coverings .mat-floor {
  position: absolute; bottom: 0; left: 5%; right: 5%; height: 40%;
  background: repeating-linear-gradient(180deg, #4a4438 0px, #4a4438 8px, #3c372e 8px, #3c372e 16px);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
  box-shadow: inset 0 -8px 20px rgba(0,0,0,0.6);
}
.scn-beds-and-coverings .platform-bed {
  position: absolute; bottom: 30%; left: 20%; width: 60%; height: 12%;
  background: linear-gradient(180deg, #4a3d2a 0%, #3a3020 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 8px 12px rgba(0,0,0,0.5);
}
.scn-beds-and-coverings .bedding {
  position: absolute; bottom: 35%; left: 22%; width: 56%; height: 8%;
  background: linear-gradient(180deg, #7a6a4a 0%, #5a4a3a 100%);
  border-radius: 30% 30% 20% 20% / 60% 60% 40% 40%;
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.3);
  animation: bc-bedding 8s ease-in-out infinite alternate;
}
.scn-beds-and-coverings .skin {
  position: absolute; bottom: 38%; left: 30%; width: 20%; height: 6%;
  background: radial-gradient(ellipse, #8a7a5a 0%, #6e6043 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  box-shadow: inset 0 2px 4px rgba(0,0,0,0.2);
  animation: bc-skin 12s ease-in-out infinite;
}
.scn-beds-and-coverings .plantain {
  position: absolute; bottom: 35%; left: 52%; width: 8%; height: 12%;
  background: linear-gradient(180deg, #6e8240 0%, #4a5c2a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform: rotate(-15deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: bc-plantain 6s ease-in-out infinite alternate;
}
.scn-beds-and-coverings .drape {
  position: absolute; bottom: 40%; right: 15%; width: 10%; height: 20%;
  background: linear-gradient(180deg, #b8a880 0%, #8a7a5a 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%;
  filter: blur(1px);
  box-shadow: inset 0 0 8px rgba(0,0,0,0.3);
  animation: bc-drape 10s ease-in-out infinite alternate;
}
@keyframes bc-mat-wall {
  0% { background-position: 0 0; }
  100% { background-position: 16px 0; }
}
@keyframes bc-bedding {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.05); }
  100% { transform: scaleY(0.95); }
}
@keyframes bc-skin {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes bc-plantain {
  0% { transform: rotate(-15deg) scale(1); }
  50% { transform: rotate(-10deg) scale(1.05); }
  100% { transform: rotate(-20deg) scale(0.95); }
}
@keyframes bc-drape {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(2deg); }
  100% { transform: translateY(1px) rotate(-1deg); }
}

/* house-building-communal – sunlit, warm mood */
.scn-house-building-communal {
  background: linear-gradient(180deg, #87ceeb 0%, #b0d8e8 40%, #e0f0d0 100%) padding-box,
              radial-gradient(ellipse at 70% 20%, #faf0d8 0%, transparent 60%) border-box;
}
.scn-house-building-communal .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #87ceeb 0%, #b0d8e8 100%);
  animation: hc-sky 12s ease-in-out infinite alternate;
}
.scn-house-building-communal .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #4a6e3a 0%, #2e4a1e 100%);
  border-radius: 30% 70% 0 0 / 50% 60% 0 0;
  box-shadow: inset 0 8px 30px rgba(0,0,0,0.3);
}
.scn-house-building-communal .framing-left {
  position: absolute; bottom: 30%; left: 15%; width: 4%; height: 50%;
  background: linear-gradient(180deg, #8a6a3a 0%, #5a4a2a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 2px 0 6px rgba(0,0,0,0.3);
  animation: hc-framing-left 8s ease-in-out infinite alternate;
}
.scn-house-building-communal .framing-right {
  position: absolute; bottom: 30%; right: 15%; width: 4%; height: 50%;
  background: linear-gradient(180deg, #8a6a3a 0%, #5a4a2a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: -2px 0 6px rgba(0,0,0,0.3);
  animation: hc-framing-right 8s ease-in-out infinite alternate;
}
.scn-house-building-communal .beam-cross {
  position: absolute; bottom: 55%; left: 10%; width: 80%; height: 3%;
  background: linear-gradient(90deg, #7a5a32 0%, #5a4a2a 100%);
  border-radius: 10% 10% 10% 10% / 50% 50% 50% 50%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.4);
  animation: hc-beam 6s ease-in-out infinite;
}
.scn-house-building-communal .figure-lift {
  position: absolute; bottom: 32%; left: 35%; width: 8%; height: 25%;
  background: radial-gradient(ellipse at 50% 80%, #3a2a1a 0%, #1a1208 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hc-figure-lift 4s ease-in-out infinite;
}
.scn-house-building-communal .figure-hand {
  position: absolute; bottom: 40%; left: 42%; width: 6%; height: 10%;
  background: radial-gradient(ellipse, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform: rotate(30deg);
  animation: hc-hand 2s ease-in-out infinite alternate;
}
.scn-house-building-communal .festival-light {
  position: absolute; top: 15%; left: 50%; width: 6%; height: 6%;
  background: radial-gradient(circle, #ffe080 0%, #ffcc50 40%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 15px rgba(255,224,128,0.5), 0 0 80px 30px rgba(255,224,128,0.2);
  animation: hc-festival 3s ease-in-out infinite alternate;
}
@keyframes hc-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes hc-framing-left {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes hc-framing-right {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes hc-beam {
  0% { transform: scaleX(1); }
  25% { transform: scaleX(1.02); }
  75% { transform: scaleX(0.98); }
  100% { transform: scaleX(1); }
}
@keyframes hc-figure-lift {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-3px) rotate(5deg); }
  50% { transform: translateY(-1px) rotate(-2deg); }
  75% { transform: translateY(-4px) rotate(3deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes hc-hand {
  0% { transform: rotate(30deg) translateY(0); }
  100% { transform: rotate(20deg) translateY(-2px); }
}
@keyframes hc-festival {
  0% { box-shadow: 0 0 30px 10px rgba(255,224,128,0.4), 0 0 60px 20px rgba(255,224,128,0.2); opacity: 0.7; }
  100% { box-shadow: 0 0 50px 20px rgba(255,224,128,0.6), 0 0 100px 40px rgba(255,224,128,0.3); opacity: 1; }
}

/* few-manufactures – bright interior, calm mood */
.scn-few-manufactures {
  background: linear-gradient(135deg, #e8e0c8 0%, #d8d0b8 50%, #c8b8a0 100%) padding-box,
              radial-gradient(ellipse at 30% 50%, #f0e8d0 0%, transparent 70%) border-box;
}
.scn-few-manufactures .counter {
  position: absolute; bottom: 20%; left: 5%; right: 5%; height: 25%;
  background: linear-gradient(180deg, #b8a888 0%, #a09070 100%);
  border-radius: 5% 5% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.2), 0 4px 8px rgba(0,0,0,0.3);
}
.scn-few-manufactures .pot {
  position: absolute; bottom: 40%; left: 30%; width: 12%; height: 18%;
  background: radial-gradient(ellipse at 50% 30%, #c8703a 0%, #a05830 60%, #704020 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  box-shadow: inset 0 -6px 12px rgba(0,0,0,0.4);
  animation: fm-pot 8s ease-in-out infinite alternate;
}
.scn-few-manufactures .cloth {
  position: absolute; bottom: 35%; left: 50%; width: 20%; height: 15%;
  background: linear-gradient(135deg, #e8d8b0 0%, #d0c8a0 50%, #c0b890 100%);
  border-radius: 10% 10% 20% 20% / 20% 20% 30% 30%;
  filter: blur(1px);
  transform: rotate(5deg);
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
  animation: fm-cloth 12s ease-in-out infinite;
}
.scn-few-manufactures .tool-stand {
  position: absolute; bottom: 20%; right: 25%; width: 8%; height: 40%;
  background: linear-gradient(180deg, #6a5a42 0%, #4a3a2a 100%);
  border-radius: 5% 5% 0 0;
  box-shadow: 0 4px 6px rgba(0,0,0,0.3);
  animation: fm-tool-stand 10s ease-in-out infinite alternate;
}
.scn-few-manufactures .ornament {
  position: absolute; bottom: 55%; right: 30%; width: 6%; height: 6%;
  background: radial-gradient(circle, #c8a060 0%, #a08040 100%);
  border-radius: 50%;
  box-shadow: 0 0 12px 4px rgba(200,160,96,0.3);
  animation: fm-ornament 6s ease-in-out infinite;
}
.scn-few-manufactures .bright-window {
  position: absolute; top: 5%; left: 35%; width: 25%; height: 50%;
  background: linear-gradient(180deg, #f0e8d0 0%, #e0d8c0 100%);
  border-radius: 5% 5% 0 0;
  box-shadow: inset 0 0 30px rgba(255,255,220,0.5);
  animation: fm-window 9s ease-in-out infinite alternate;
}
.scn-few-manufactures .shadow-figure {
  position: absolute; bottom: 25%; left: 15%; width: 10%; height: 30%;
  background: radial-gradient(ellipse at 50% 100%, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  opacity: 0.6;
  animation: fm-figure 7s ease-in-out infinite;
}
@keyframes fm-pot {
  0% { transform: scale(1) rotate(0deg); }
  50% { transform: scale(1.02) rotate(1deg); }
  100% { transform: scale(0.98) rotate(-1deg); }
}
@keyframes fm-cloth {
  0% { transform: rotate(5deg) translateY(0); }
  50% { transform: rotate(8deg) translateY(-2px); }
  100% { transform: rotate(3deg) translateY(0); }
}
@keyframes fm-tool-stand {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.02); }
  100% { transform: scaleY(0.98); }
}
@keyframes fm-ornament {
  0% { opacity: 0.8; transform: rotate(0deg); }
  25% { opacity: 1; transform: rotate(15deg); }
  50% { opacity: 0.9; transform: rotate(0deg); }
  75% { opacity: 1; transform: rotate(-15deg); }
  100% { opacity: 0.8; transform: rotate(0deg); }
}
@keyframes fm-window {
  0% { opacity: 0.7; box-shadow: inset 0 0 20px rgba(255,255,220,0.4); }
  50% { opacity: 1; box-shadow: inset 0 0 40px rgba(255,255,220,0.7); }
  100% { opacity: 0.8; box-shadow: inset 0 0 25px rgba(255,255,220,0.5); }
}
@keyframes fm-figure {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-2px) rotate(2deg); }
  50% { transform: translateY(0) rotate(-1deg); }
  75% { transform: translateY(-1px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}

.scn-stay-providence-friends { background: linear-gradient(180deg, #f5d6a0 0%, #cfa768 40%, #8b6b3a 100%), radial-gradient(ellipse at 50% 30%, #fad48b 0%, transparent 60%); }
.scn-stay-providence-friends .sky { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #b8d4e0 0%, #e1c99e 100%); animation: spf-sky 12s ease-in-out infinite alternate; }
.scn-stay-providence-friends .sun { position:absolute; top:8%; left:70%; width:50px; height:50px; background: radial-gradient(circle, #ffe066 0%, #f5a623 80%); border-radius:50%; box-shadow: 0 0 40px 20px rgba(245,166,35,0.6); animation: spf-sun 8s ease-in-out infinite; }
.scn-stay-providence-friends .hills { position:absolute; bottom:35%; left:0; right:0; height:20%; background: linear-gradient(135deg, #5a7a4a 0%, #3a5a2a 100%); border-radius: 60% 40% 0 0 / 70% 80% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.3); animation: spf-hills 15s ease-in-out infinite alternate; }
.scn-stay-providence-friends .town { position:absolute; bottom:38%; left:15%; width:200px; height:80px; background: linear-gradient(0deg, #8b6b3a 0%, #6a4a2a 100%); border-radius: 10% 10% 0 0; box-shadow: 0 4px 12px rgba(0,0,0,0.4); animation: spf-town 12s ease-in-out infinite; }
.scn-stay-providence-friends .window { position:absolute; bottom:50%; left:30%; width:14px; height:18px; background: radial-gradient(circle, #ffe484 0%, #d4a04a 70%); border-radius: 4px; box-shadow: 0 0 20px 6px rgba(212,160,74,0.5); animation: spf-glow 3s ease-in-out infinite alternate; }
.scn-stay-providence-friends .figures { position:absolute; bottom:32%; left:40%; width:24px; height:40px; background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: scaleX(0.9); animation: spf-figures 6s ease-in-out infinite; }
.scn-stay-providence-friends .cloud-a { position:absolute; top:8%; left:-60px; 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(6px); animation: spf-drift-a 40s linear infinite; }
.scn-stay-providence-friends .cloud-b { position:absolute; top:16%; right:-40px; width:60px; height:14px; background: linear-gradient(180deg, rgba(255,255,255,0.5) 0%, rgba(255,255,255,0.05) 100%); border-radius: 50%; filter: blur(5px); animation: spf-drift-b 50s linear infinite reverse; }
@keyframes spf-sky { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes spf-sun { 0% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.08) rotate(5deg); } 100% { transform: scale(1) rotate(0deg); } }
@keyframes spf-hills { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(0); } }
@keyframes spf-town { 0% { transform: scale(1); } 50% { transform: scale(1.02) translateY(-2px); } 100% { transform: scale(1); } }
@keyframes spf-glow { 0% { box-shadow: 0 0 15px 4px rgba(212,160,74,0.4); opacity:0.8; } 50% { box-shadow: 0 0 30px 10px rgba(255,228,132,0.7); opacity:1; } 100% { box-shadow: 0 0 20px 6px rgba(212,160,74,0.5); opacity:0.9; } }
@keyframes spf-figures { 0% { transform: scaleX(0.9) translateY(0) rotate(-1deg); } 25% { transform: scaleX(0.95) translateY(-1px) rotate(1deg); } 50% { transform: scaleX(0.9) translateY(0) rotate(0deg); } 75% { transform: scaleX(0.95) translateY(-1px) rotate(-1deg); } 100% { transform: scaleX(0.9) translateY(0) rotate(1deg); } }
@keyframes spf-drift-a { 0% { transform: translateX(0); } 100% { transform: translateX(140vw); } }
@keyframes spf-drift-b { 0% { transform: translateX(0); } 100% { transform: translateX(-140vw); } }

.scn-captain-phillips-sloop { background: linear-gradient(180deg, #a8c9d4 0%, #7ba3b3 50%, #4a6b7a 100%), radial-gradient(ellipse at 70% 40%, #c2d8e0 0%, transparent 70%); }
.scn-captain-phillips-sloop .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #c4dce8 0%, #98b8c8 100%); animation: cps-sky 14s ease-in-out infinite alternate; }
.scn-captain-phillips-sloop .sea { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #3d6b7a 0%, #1e3b47 100%); border-radius: 60% 40% 0 0 / 30% 50% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,0.3); animation: cps-sea 10s ease-in-out infinite alternate; }
.scn-captain-phillips-sloop .hull { position:absolute; bottom:32%; left:20%; width:140px; height:45px; background: linear-gradient(180deg, #5a3a2a 0%, #3a221a 100%); border-radius: 30% 30% 50% 50% / 50% 50% 40% 40%; transform: rotate(-2deg); box-shadow: 0 4px 10px rgba(0,0,0,0.5); animation: cps-hull 8s ease-in-out infinite; }
.scn-captain-phillips-sloop .sail-main { position:absolute; bottom:48%; left:25%; width:50px; height:70px; background: linear-gradient(135deg, #e8d8b0 0%, #c8a87a 100%); border-radius: 10% 10% 20% 20% / 30% 30% 40% 40%; transform: rotate(8deg) scaleX(0.6); box-shadow: -2px 0 8px rgba(0,0,0,0.3); animation: cps-main-sail 10s ease-in-out infinite; }
.scn-captain-phillips-sloop .sail-jib { position:absolute; bottom:38%; left:25%; width:35px; height:50px; background: linear-gradient(135deg, #e4d4ac 0%, #c4a47a 100%); border-radius: 5% 5% 15% 15% / 20% 20% 30% 30%; transform: rotate(15deg) scaleX(0.5); box-shadow: -2px 0 6px rgba(0,0,0,0.3); animation: cps-jib 10s ease-in-out infinite; }
.scn-captain-phillips-sloop .wave-1 { position:absolute; bottom:20%; left:0; right:0; height:15%; background: linear-gradient(180deg, rgba(100,170,200,0.4) 0%, rgba(30,80,110,0.1) 100%); border-radius: 50%; filter: blur(4px); animation: cps-wave1 6s ease-in-out infinite; }
.scn-captain-phillips-sloop .wave-2 { position:absolute; bottom:10%; left:5%; right:-5%; height:12%; background: linear-gradient(180deg, rgba(100,170,200,0.3) 0%, rgba(30,80,110,0.05) 100%); border-radius: 50%; filter: blur(3px); animation: cps-wave2 8s ease-in-out infinite; animation-delay: -3s; }
@keyframes cps-sky { 0% { opacity:0.9; background-position: 0% 0%; } 50% { opacity:1; background-position: 20% 0%; } 100% { opacity:0.85; background-position: 0% 0%; } }
@keyframes cps-sea { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-5px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes cps-hull { 0% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(-1deg) translateY(-3px); } 100% { transform: rotate(-2deg) translateY(0); } }
@keyframes cps-main-sail { 0% { transform: rotate(8deg) scaleX(0.6); } 50% { transform: rotate(12deg) scaleX(0.62); } 100% { transform: rotate(8deg) scaleX(0.6); } }
@keyframes cps-jib { 0% { transform: rotate(15deg) scaleX(0.5); } 50% { transform: rotate(20deg) scaleX(0.52); } 100% { transform: rotate(15deg) scaleX(0.5); } }
@keyframes cps-wave1 { 0% { transform: translateX(0) scaleY(1); } 50% { transform: translateX(15px) scaleY(1.1); } 100% { transform: translateX(0) scaleY(1); } }
@keyframes cps-wave2 { 0% { transform: translateX(0) scaleY(1); } 50% { transform: translateX(-10px) scaleY(1.08); } 100% { transform: translateX(0) scaleY(1); } }

.scn-sloop-wrecked-again { background: linear-gradient(180deg, #4a5b6b 0%, #2c3a44 50%, #1a222a 100%), radial-gradient(ellipse at 40% 30%, #6b8b9b 0%, transparent 60%); }
.scn-sloop-wrecked-again .storm-sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #6a8494 0%, #3a4a54 80%); animation: swa-sky 6s ease-in-out infinite alternate; }
.scn-sloop-wrecked-again .sea { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #2c4a54 0%, #142a32 100%); border-radius: 50% 50% 0 0 / 40% 40% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,0.5); animation: swa-sea 3s ease-in-out infinite alternate; }
.scn-sloop-wrecked-again .hull { position:absolute; bottom:30%; left:10%; width:120px; height:50px; background: linear-gradient(180deg, #4a2a1a 0%, #2a1a10 100%); border-radius: 20% 20% 60% 60% / 50% 50% 30% 30%; transform: rotate(-8deg); box-shadow: 0 6px 14px rgba(0,0,0,0.6); animation: swa-hull 2.5s ease-in-out infinite; }
.scn-sloop-wrecked-again .sail-torn { position:absolute; bottom:40%; left:25%; width:40px; height:60px; background: linear-gradient(135deg, #d8c8a0 0%, #a8885a 100%); border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%; transform: rotate(20deg) scaleX(0.5); box-shadow: -3px 0 10px rgba(0,0,0,0.4); animation: swa-sail 1.5s ease-in-out infinite; clip-path: polygon(0 0, 100% 0, 100% 80%, 70% 100%, 90% 60%, 40% 90%, 0 70%); }
.scn-sloop-wrecked-again .spray { position:absolute; bottom:40%; left:5%; width:40px; height:30px; background: radial-gradient(ellipse at 50% 100%, rgba(200,220,240,0.6) 0%, transparent 80%); border-radius: 50%; filter: blur(2px); animation: swa-spray 2s ease-in-out infinite; }
.scn-sloop-wrecked-again .wave-1 { position:absolute; bottom:20%; left:-10%; right:10%; height:18%; background: linear-gradient(180deg, rgba(140,200,220,0.5) 0%, rgba(40,100,130,0.1) 100%); border-radius: 50%; filter: blur(5px); animation: swa-wave1 4s ease-in-out infinite; }
.scn-sloop-wrecked-again .wave-2 { position:absolute; bottom:10%; left:5%; right:-5%; height:14%; background: linear-gradient(180deg, rgba(140,200,220,0.4) 0%, rgba(40,100,130,0.05) 100%); border-radius: 50%; filter: blur(4px); animation: swa-wave2 5s ease-in-out infinite; animation-delay: -2s; }
@keyframes swa-sky { 0% { opacity:0.6; } 50% { opacity:0.9; } 100% { opacity:0.5; } }
@keyframes swa-sea { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(10px) scaleY(1.05); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes swa-hull { 0% { transform: rotate(-8deg) translateY(0); } 50% { transform: rotate(-12deg) translateY(6px); } 100% { transform: rotate(-8deg) translateY(0); } }
@keyframes swa-sail { 0% { transform: rotate(20deg) scaleX(0.5); } 50% { transform: rotate(30deg) scaleX(0.55); } 100% { transform: rotate(20deg) scaleX(0.5); } }
@keyframes swa-spray { 0% { transform: translateY(0) scale(1); opacity:0.7; } 50% { transform: translateY(-10px) scale(1.2); opacity:1; } 100% { transform: translateY(0) scale(1); opacity:0.7; } }
@keyframes swa-wave1 { 0% { transform: translateX(0) scaleY(1); } 50% { transform: translateX(30px) scaleY(1.15); } 100% { transform: translateX(0) scaleY(1); } }
@keyframes swa-wave2 { 0% { transform: translateX(0) scaleY(1); } 50% { transform: translateX(-20px) scaleY(1.1); } 100% { transform: translateX(0) scaleY(1); } }

.scn-final-departure-to-georgia { background: linear-gradient(180deg, #f0db9a 0%, #d4b87a 40%, #9a7a4a 100%), radial-gradient(ellipse at 60% 20%, #fce4b8 0%, transparent 60%); }
.scn-final-departure-to-georgia .sky { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #c8dce8 0%, #e8d4a8 100%); animation: fdg-sky 15s ease-in-out infinite alternate; }
.scn-final-departure-to-georgia .sun { position:absolute; top:10%; right:10%; width:60px; height:60px; background: radial-gradient(circle, #ffe066 0%, #f5a623 80%); border-radius:50%; box-shadow: 0 0 50px 25px rgba(245,166,35,0.5); animation: fdg-sun 10s ease-in-out infinite; }
.scn-final-departure-to-georgia .sea { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #4a7a8a 0%, #2a4a5a 100%); border-radius: 40% 60% 0 0 / 20% 30% 0 0; box-shadow: inset 0 8px 16px rgba(0,0,0,0.3); animation: fdg-sea 12s ease-in-out infinite alternate; }
.scn-final-departure-to-georgia .hull { position:absolute; bottom:28%; right:20%; width:150px; height:50px; background: linear-gradient(180deg, #5a3a2a 0%, #3a221a 100%); border-radius: 30% 30% 50% 50% / 50% 50% 40% 40%; transform: rotate(2deg); box-shadow: 0 4px 10px rgba(0,0,0,0.5); animation: fdg-hull 9s ease-in-out infinite; }
.scn-final-departure-to-georgia .sail-main { position:absolute; bottom:42%; right:30%; width:55px; height:80px; background: linear-gradient(135deg, #e8d8b0 0%, #c8a87a 100%); border-radius: 10% 10% 20% 20% / 30% 30% 40% 40%; transform: rotate(-8deg) scaleX(0.6); box-shadow: 2px 0 8px rgba(0,0,0,0.3); animation: fdg-main-sail 11s ease-in-out infinite; }
.scn-final-departure-to-georgia .sail-jib { position:absolute; bottom:34%; right:30%; width:40px; height:60px; background: linear-gradient(135deg, #e4d4ac 0%, #c4a47a 100%); border-radius: 5% 5% 15% 15% / 20% 20% 30% 30%; transform: rotate(-15deg) scaleX(0.5); box-shadow: 2px 0 6px rgba(0,0,0,0.3); animation: fdg-jib 11s ease-in-out infinite; }
.scn-final-departure-to-georgia .wave-1 { position:absolute; bottom:15%; left:0; right:0; height:12%; background: linear-gradient(180deg, rgba(100,170,200,0.4) 0%, rgba(30,80,110,0.1) 100%); border-radius: 50%; filter: blur(4px); animation: fdg-wave1 7s ease-in-out infinite; }
@keyframes fdg-sky { 0% { opacity:0.9; background-position: 0% 0%; } 50% { opacity:1; background-position: 15% 0%; } 100% { opacity:0.85; background-position: 0% 0%; } }
@keyframes fdg-sun { 0% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.06) rotate(-3deg); } 100% { transform: scale(1) rotate(0deg); } }
@keyframes fdg-sea { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-4px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes fdg-hull { 0% { transform: rotate(2deg) translateY(0); } 50% { transform: rotate(1deg) translateY(-2px); } 100% { transform: rotate(2deg) translateY(0); } }
@keyframes fdg-main-sail { 0% { transform: rotate(-8deg) scaleX(0.6); } 50% { transform: rotate(-12deg) scaleX(0.62); } 100% { transform: rotate(-8deg) scaleX(0.6); } }
@keyframes fdg-jib { 0% { transform: rotate(-15deg) scaleX(0.5); } 50% { transform: rotate(-20deg) scaleX(0.52); } 100% { transform: rotate(-15deg) scaleX(0.5); } }
@keyframes fdg-wave1 { 0% { transform: translateX(0) scaleY(1); } 50% { transform: translateX(-12px) scaleY(1.08); } 100% { transform: translateX(0) scaleY(1); } }

.scn-attempted-rescue-fails {
  background: 
    linear-gradient(180deg, #87ceeb 0%, #f0e68c 60%, #fddc67 100%),
    linear-gradient(180deg, #68a8d9 0%, transparent 50%);
}
.scn-attempted-rescue-fails .sky-rfs { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #78b5e0 0%, #cce0ff 100%); animation: rfs-sky 15s ease-in-out infinite alternate; }
.scn-attempted-rescue-fails .sun-rfs { position:absolute; top:8%; right:20%; width:60px; height:60px; background: radial-gradient(circle at 40% 40%, #ffe599 0%, #ffcc66 40%, #ffb347 70%, transparent 100%); border-radius:50%; box-shadow: 0 0 50px 20px rgba(255,200,80,0.4); animation: rfs-sun 8s ease-in-out infinite; }
.scn-attempted-rescue-fails .house-rfs { position:absolute; bottom:40%; left:10%; width:80px; height:60px; background: linear-gradient(180deg, #c8a87a 0%, #b89466 100%); border-radius:4% 4% 2% 2%; box-shadow: -2px 0 12px rgba(0,0,0,0.3); animation: rfs-house 12s ease-in-out infinite; }
.scn-attempted-rescue-fails .road-rfs { position:absolute; bottom:20%; left:0; right:0; height:30%; background: linear-gradient(135deg, #b89870 0%, #9a7a5a 30%, #8c6c4c 70%, #7c5c3c 100%); clip-path: polygon(30% 0%, 70% 0%, 100% 100%, 0% 100%); animation: rfs-road 20s ease-in-out infinite; }
.scn-attempted-rescue-fails .figure-rfs { position:absolute; bottom:32%; left:20%; width:16px; height:40px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1208 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: rfs-walk 3s cubic-bezier(0.4,0,0.6,1) infinite; }
.scn-attempted-rescue-fails .shadow-rfs { position:absolute; bottom:30%; left:18%; width:30px; height:10px; background: rgba(0,0,0,0.25); border-radius:50%; filter: blur(3px); animation: rfs-shadow 3s cubic-bezier(0.4,0,0.6,1) infinite; }
.scn-attempted-rescue-fails .cloud1 { position:absolute; top:15%; left:5%; width:90px; height:20px; background:rgba(255,255,255,0.5); border-radius:50%; filter: blur(6px); animation: rfs-drift-a 40s linear infinite; }
.scn-attempted-rescue-fails .cloud2 { position:absolute; top:25%; left:70%; width:70px; height:16px; background:rgba(255,255,255,0.4); border-radius:50%; filter: blur(5px); animation: rfs-drift-b 50s linear infinite reverse; }

@keyframes rfs-sky   { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes rfs-sun   { 0% { transform: scale(1) } 50% { transform: scale(1.05) } 100% { transform: scale(1) } }
@keyframes rfs-house { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes rfs-road  { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(1) } }
@keyframes rfs-walk  { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 25% { transform: translateX(4px) translateY(-1px) rotate(1deg) } 50% { transform: translateX(8px) translateY(0) rotate(-1deg) } 75% { transform: translateX(12px) translateY(-1px) rotate(2deg) } 100% { transform: translateX(16px) translateY(0) rotate(0) } }
@keyframes rfs-shadow { 0% { transform: translateX(0) scale(1) } 25% { transform: translateX(4px) scale(0.95) } 50% { transform: translateX(8px) scale(1) } 75% { transform: translateX(12px) scale(0.95) } 100% { transform: translateX(16px) scale(1) } }
@keyframes rfs-drift-a { 0% { transform: translateX(-50px) } 100% { transform: translateX(120vw) } }
@keyframes rfs-drift-b { 0% { transform: translateX(0) } 100% { transform: translateX(-100vw) } }

.scn-in-the-sack {
  background: linear-gradient(180deg, #0a0a14 0%, #12101c 50%, #1e1828 100%);
}
.scn-in-the-sack .bg-deep-sak { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 80%, #2a2040 0%, transparent 80%); animation: sak-bg 20s ease-in-out infinite alternate; }
.scn-in-the-sack .bg-mid-sak { position:absolute; inset:30% 10% 20% 10%; background: linear-gradient(180deg, #1a1428 0%, #0e0c1a 100%); border-radius:30% 30% 20% 20%; box-shadow: inset 0 0 30px rgba(0,0,0,0.8); }
.scn-in-the-sack .figure1-sak { position:absolute; bottom:35%; left:30%; width:40px; height:50px; background: linear-gradient(180deg, #2a2040 0%, #1a1028 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform: rotate(-10deg); animation: sak-fig1 5s ease-in-out infinite; }
.scn-in-the-sack .figure2-sak { position:absolute; bottom:35%; right:30%; width:40px; height:50px; background: linear-gradient(180deg, #2a2040 0%, #1a1028 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform: rotate(10deg); animation: sak-fig2 5s ease-in-out infinite 0.3s; }
.scn-in-the-sack .rope-sak { position:absolute; bottom:40%; left:28%; width:44%; height:3px; background: linear-gradient(90deg, transparent 0%, #705040 20%, #503020 50%, #705040 80%, transparent 100%); border-radius:2px; box-shadow: 0 2px 4px rgba(0,0,0,0.5); animation: sak-rope 4s ease-in-out infinite; }
.scn-in-the-sack .light-sak { position:absolute; top:20%; left:40%; width:40px; height:40px; background: radial-gradient(circle, rgba(200,180,120,0.2) 0%, transparent 70%); border-radius:50%; animation: sak-light 7s ease-in-out infinite alternate; }

@keyframes sak-bg   { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.6 } }
@keyframes sak-fig1 { 0% { transform: rotate(-10deg) translateY(0) } 50% { transform: rotate(-15deg) translateY(-3px) } 100% { transform: rotate(-10deg) translateY(0) } }
@keyframes sak-fig2 { 0% { transform: rotate(10deg) translateY(0) } 50% { transform: rotate(15deg) translateY(-3px) } 100% { transform: rotate(10deg) translateY(0) } }
@keyframes sak-rope { 0% { transform: scaleX(1) } 50% { transform: scaleX(0.95) translateY(-1px) } 100% { transform: scaleX(1) } }
@keyframes sak-light { 0% { opacity:0.3; transform: scale(0.8) } 50% { opacity:0.6; transform: scale(1.2) } 100% { opacity:0.4; transform: scale(0.9) } }

.scn-sister-separated {
  background: 
    linear-gradient(180deg, #0c1220 0%, #2a3444 40%, #6b7c8a 70%, #9aa2b0 100%);
}
.scn-sister-separated .sky-ssp { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #1a2450 0%, #4a5a70 80%); animation: ssp-sky 10s ease-in-out infinite alternate; }
.scn-sister-separated .ground-ssp { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #2c2a2a 0%, #1a1818 100%); border-radius: 50% 50% 0 0 / 30% 30% 0 0; animation: ssp-ground 15s ease-in-out infinite; }
.scn-sister-separated .figure-left-ssp { position:absolute; bottom:30%; left:20%; width:50px; height:60px; background: linear-gradient(180deg, #201a28 0%, #0e0a14 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: ssp-left 6s ease-in-out infinite; }
.scn-sister-separated .figure-right-ssp { position:absolute; bottom:30%; right:20%; width:50px; height:60px; background: linear-gradient(180deg, #1a1820 0%, #0a0810 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: ssp-right 6s ease-in-out infinite 0.2s; }
.scn-sister-separated .arm-left-ssp { position:absolute; bottom:45%; left:30%; width:40px; height:8px; background: #201a28; border-radius: 50% 50% 30% 30% / 50% 50% 40% 40%; transform-origin: right center; animation: ssp-arml 5s ease-in-out infinite; }
.scn-sister-separated .arm-right-ssp { position:absolute; bottom:45%; right:30%; width:40px; height:8px; background: #1a1820; border-radius: 50% 50% 30% 30% / 50% 50% 40% 40%; transform-origin: left center; animation: ssp-armr 5s ease-in-out infinite 0.2s; }
.scn-sister-separated .tear-ssp { position:absolute; bottom:25%; left:38%; width:6px; height:12px; background: radial-gradient(circle, rgba(200,210,240,0.6) 0%, transparent 100%); border-radius:50% 50% 60% 60% / 40% 40% 60% 60%; filter: blur(2px); animation: ssp-tear 4s ease-in-out infinite 0.5s; }

@keyframes ssp-sky   { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes ssp-ground { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes ssp-left  { 0% { transform: translateX(0) } 25% { transform: translateX(5px) } 50% { transform: translateX(0) } 75% { transform: translateX(-5px) } 100% { transform: translateX(0) } }
@keyframes ssp-right { 0% { transform: translateX(0) } 25% { transform: translateX(-5px) } 50% { transform: translateX(0) } 75% { transform: translateX(5px) } 100% { transform: translateX(0) } }
@keyframes ssp-arml  { 0% { transform: rotate(-30deg) } 50% { transform: rotate(-10deg) } 100% { transform: rotate(-30deg) } }
@keyframes ssp-armr  { 0% { transform: rotate(30deg) } 50% { transform: rotate(10deg) } 100% { transform: rotate(30deg) } }
@keyframes ssp-tear  { 0% { opacity:0.4; transform: translateY(0) scale(1) } 50% { opacity:0.7; transform: translateY(-8px) scale(0.8) } 100% { opacity:0; transform: translateY(-16px) scale(0.3) } }

.scn-grief-and-fasting {
  background: 
    linear-gradient(180deg, #3a2a1a 0%, #5a3a2a 40%, #8a5a3a 100%);
}
.scn-grief-and-fasting .wall-gft { position:absolute; inset:0; background: linear-gradient(90deg, #2a1a0a 0%, #4a2a1a 30%, #3a1a0a 70%, #1a0a00 100%); animation: gft-wall 20s ease-in-out infinite alternate; }
.scn-grief-and-fasting .window-gft { position:absolute; top:25%; left:35%; width:100px; height:130px; background: #1a0a00; border:8px solid #6a4a2a; border-radius:4% 4% 6% 6% / 6% 6% 8% 8%; box-shadow: inset 0 0 0 4px #50301a; animation: gft-window 10s ease-in-out infinite; }
.scn-grief-and-fasting .light-beam-gft { position:absolute; top:25%; left:35%; width:100px; height:200px; background: linear-gradient(180deg, rgba(255,220,150,0.25) 0%, rgba(255,200,100,0.1) 50%, transparent 100%); clip-path: polygon(0% 0%, 100% 0%, 85% 100%, 15% 100%); animation: gft-beam 5s ease-in-out infinite alternate; }
.scn-grief-and-fasting .floor-gft { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #5a3a2a 0%, #3a2212 100%); border-radius: 10% 10% 0 0 / 20% 20% 0 0; animation: gft-floor 15s ease-in-out infinite; }
.scn-grief-and-fasting .figure-gft { position:absolute; bottom:20%; left:45%; width:40px; height:60px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: translateX(-50%); animation: gft-figure 6s ease-in-out infinite; }
.scn-grief-and-fasting .bowl-gft { position:absolute; bottom:18%; left:42%; width:30px; height:20px; background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; animation: gft-bowl 4s ease-in-out infinite; }
.scn-grief-and-fasting .shadow-gft { position:absolute; bottom:18%; left:40%; width:50px; height:10px; background: rgba(0,0,0,0.3); border-radius:50%; filter: blur(4px); animation: gft-shadow 6s ease-in-out infinite; }

@keyframes gft-wall   { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes gft-window { 0% { box-shadow: inset 0 0 0 4px #50301a, 0 0 0 0 rgba(255,200,100,0) } 50% { box-shadow: inset 0 0 0 4px #50301a, 0 0 20px 8px rgba(255,200,100,0.2) } 100% { box-shadow: inset 0 0 0 4px #50301a, 0 0 0 0 rgba(255,200,100,0) } }
@keyframes gft-beam  { 0% { opacity:0.3 } 50% { opacity:0.6 } 100% { opacity:0.4 } }
@keyframes gft-floor { 0% { transform: scaleY(1) } 50% { transform: scaleY(0.98) } 100% { transform: scaleY(1) } }
@keyframes gft-figure { 0% { transform: translateX(-50%) translateY(0) rotate(-1deg) } 25% { transform: translateX(-50%) translateY(-3px) rotate(1deg) } 50% { transform: translateX(-50%) translateY(0) rotate(-2deg) } 75% { transform: translateX(-50%) translateY(-2px) rotate(1deg) } 100% { transform: translateX(-50%) translateY(0) rotate(0) } }
@keyframes gft-bowl  { 0% { transform: scale(1) } 50% { transform: scale(0.95) } 100% { transform: scale(1) } }
@keyframes gft-shadow { 0% { opacity:0.5; transform: scale(1) } 50% { opacity:0.3; transform: scale(0.9) } 100% { opacity:0.5; transform: scale(1) } }

/* farewell-to-king — warm interior, two figures parting */
.scn-farewell-to-king { background: linear-gradient(180deg, #c8a87a 0%, #b8905a 40%, #a07848 100%), radial-gradient(ellipse at 40% 30%, #e0c090 0%, transparent 70%); }
.scn-farewell-to-king .wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(90deg, #b89868 0%, #d4b078 50%, #b89868 100%); animation: fk-wall 12s ease-in-out infinite alternate; }
.scn-farewell-to-king .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #7a6040 0%, #5a4028 100%); border-radius: 20% 20% 0 0 / 10% 10% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.3); }
.scn-farewell-to-king .window-frame { position:absolute; top:10%; right:15%; width:120px; height:160px; background: linear-gradient(180deg, #6a5030 0%, #4a3820 100%); border-radius: 8px 8px 4px 4px; box-shadow: 0 4px 12px rgba(0,0,0,.4); animation: fk-frame 8s ease-in-out infinite; }
.scn-farewell-to-king .window-glass { position:absolute; top:13%; right:18%; width:102px; height:140px; background: linear-gradient(135deg, #e8e0c0 0%, #c8c0a0 50%, #a8a080 100%); border-radius: 4px; box-shadow: inset 0 0 30px rgba(255,255,220,.3); animation: fk-glass 6s ease-in-out infinite alternate; }
.scn-farewell-to-king .sunbeam { position:absolute; top:16%; right:22%; width:60px; height:100px; background: linear-gradient(135deg, rgba(255,240,200,.4) 0%, transparent 100%); transform: skewX(-8deg); filter: blur(8px); animation: fk-beam 9s ease-in-out infinite alternate; }
.scn-farewell-to-king .figure-left { position:absolute; bottom:30%; left:25%; width:40px; height:80px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fk-bow 5s ease-in-out infinite; }
.scn-farewell-to-king .figure-right { position:absolute; bottom:30%; left:45%; width:44px; height:88px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fk-embrace 5s ease-in-out infinite; }
.scn-farewell-to-king .table { position:absolute; bottom:25%; left:28%; width:80px; height:24px; background: linear-gradient(180deg, #7a5a3a 0%, #5a3a20 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.3); }
.scn-farewell-to-king .inkwell { position:absolute; bottom:28%; left:34%; width:16px; height:20px; background: linear-gradient(180deg, #2a2a2a 0%, #0a0a0a 100%); border-radius: 50% 50% 30% 30% / 40% 40% 20% 20%; box-shadow: 0 2px 4px rgba(0,0,0,.5); animation: fk-ink 4s ease-in-out infinite alternate; }
@keyframes fk-wall { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes fk-frame { 0%,100% { transform: scale(1) } 50% { transform: scale(1.01) } }
@keyframes fk-glass { 0% { opacity:.7 } 50% { opacity:.9 } 100% { opacity:.75 } }
@keyframes fk-beam { 0% { transform: skewX(-10deg) translateX(-2px); opacity:.4 } 50% { transform: skewX(-6deg) translateX(2px); opacity:.6 } 100% { transform: skewX(-10deg) translateX(-2px); opacity:.4 } }
@keyframes fk-bow { 0% { transform: translateX(0) rotate(0) } 20% { transform: translateX(2px) rotate(-3deg) } 40% { transform: translateX(0) rotate(0) } 60% { transform: translateX(-2px) rotate(2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes fk-embrace { 0% { transform: translateX(0) rotate(0) } 30% { transform: translateX(-4px) rotate(2deg) } 60% { transform: translateX(2px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes fk-ink { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }

/* certificate-from-king — bright interior, hands presenting paper */
.scn-certificate-from-king { background: linear-gradient(180deg, #d8c8a8 0%, #c0b090 50%, #a89878 100%), radial-gradient(ellipse at 50% 40%, #e8dcc0 0%, transparent 70%); }
.scn-certificate-from-king .bg-office { position:absolute; inset:0; background: linear-gradient(135deg, #c8b898 0%, #b0a080 50%, #a09070 100%); animation: ck-wave 15s ease-in-out infinite alternate; }
.scn-certificate-from-king .desk { position:absolute; bottom:0; left:10%; right:10%; height:45%; background: linear-gradient(180deg, #8a7050 0%, #6a5030 100%); border-radius: 30% 30% 0 0 / 20% 20% 0 0; box-shadow: 0 -4px 20px rgba(0,0,0,.3); }
.scn-certificate-from-king .paper { position:absolute; bottom:25%; left:50%; width:120px; height:160px; transform:translateX(-50%); background: linear-gradient(135deg, #f0e8d8 0%, #e0d8c0 50%, #d0c8b0 100%); border-radius: 2px; box-shadow: 0 8px 24px rgba(0,0,0,.3), inset 0 0 20px rgba(200,180,140,.3); animation: ck-paper 8s ease-in-out infinite; }
.scn-certificate-from-king .seal { position:absolute; bottom:22%; left:50%; width:30px; height:30px; transform:translateX(-50%); background: radial-gradient(circle at 40% 40%, #c8553d 0%, #a0461a 60%, #702243 100%); border-radius: 50%; box-shadow: 0 2px 6px rgba(0,0,0,.3); animation: ck-seal 3s ease-in-out infinite alternate; }
.scn-certificate-from-king .ink-line { position:absolute; bottom:32%; left:50%; width:80px; height:2px; transform:translateX(-50%); background: linear-gradient(90deg, transparent 0%, #2a1a0a 20%, #2a1a0a 80%, transparent 100%); animation: ck-line 6s ease-in-out infinite; }
.scn-certificate-from-king .hand-left { position:absolute; bottom:18%; left:30%; width:36px; height:60px; background: linear-gradient(180deg, #d4a878 0%, #b88858 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: ck-hand-l 7s ease-in-out infinite; }
.scn-certificate-from-king .hand-right { position:absolute; bottom:18%; right:30%; width:36px; height:60px; background: linear-gradient(180deg, #c89868 0%, #a87848 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: ck-hand-r 7s ease-in-out infinite; }
.scn-certificate-from-king .quill { position:absolute; bottom:30%; right:32%; width:4px; height:50px; background: linear-gradient(180deg, #d4c8a0 0%, #a89870 100%); transform: rotate(25deg); transform-origin: bottom center; border-radius: 2px; box-shadow: 0 0 4px rgba(0,0,0,.2); animation: ck-quill 5s ease-in-out infinite alternate; }
@keyframes ck-wave { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes ck-paper { 0%,100% { transform: translateX(-50%) rotate(0) } 50% { transform: translateX(-50%) rotate(.5deg) translateY(-2px) } }
@keyframes ck-seal { 0% { transform: translateX(-50%) scale(1); opacity:.9 } 50% { transform: translateX(-50%) scale(1.05); opacity:1 } 100% { transform: translateX(-50%) scale(1); opacity:.9 } }
@keyframes ck-line { 0% { opacity:.5 } 50% { opacity:.8 } 100% { opacity:.5 } }
@keyframes ck-hand-l { 0% { transform: translateX(0) rotate(0) } 30% { transform: translateX(4px) rotate(-2deg) } 70% { transform: translateX(-2px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes ck-hand-r { 0% { transform: translateX(0) rotate(0) } 30% { transform: translateX(-4px) rotate(2deg) } 70% { transform: translateX(2px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes ck-quill { 0% { transform: rotate(20deg) } 50% { transform: rotate(30deg) } 100% { transform: rotate(22deg) } }

/* farewell-to-montserrat — wide horizon, ship sailing away */
.scn-farewell-to-montserrat { background: linear-gradient(180deg, #87c0d0 0%, #b0d8e0 40%, #c8e8f0 100%), radial-gradient(ellipse at 30% 20%, #d0e8f0 0%, transparent 70%); }
.scn-farewell-to-montserrat .bg-sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #78b0c0 0%, #a8d0e0 60%, #c8e0e8 100%); animation: fm-sky 14s ease-in-out infinite alternate; }
.scn-farewell-to-montserrat .bg-sea { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #3a7a8a 0%, #2a5a6a 50%, #1a3a4a 100%); box-shadow: inset 0 20px 40px rgba(0,0,0,.2); animation: fm-sea 18s ease-in-out infinite; }
.scn-farewell-to-montserrat .ship-hull { position:absolute; bottom:38%; left:50%; width:100px; height:30px; transform:translateX(-50%); background: linear-gradient(180deg, #5a3a1a 0%, #3a2010 100%); border-radius: 30% 30% 40% 40% / 50% 50% 60% 60%; box-shadow: 0 4px 8px rgba(0,0,0,.3); animation: fm-hull 6s ease-in-out infinite; }
.scn-farewell-to-montserrat .ship-mast { position:absolute; bottom:42%; left:50%; width:4px; height:80px; transform:translateX(-50%); background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 2px; animation: fm-mast 6s ease-in-out infinite; }
.scn-farewell-to-montserrat .sail-main { position:absolute; bottom:48%; left:52%; width:50px; height:60px; background: linear-gradient(135deg, #d8c8a0 0%, #c0b088 50%, #a89870 100%); border-radius: 0 40% 0 40% / 0 60% 0 60%; box-shadow: 0 2px 8px rgba(0,0,0,.2); transform-origin: bottom left; animation: fm-sail 8s ease-in-out infinite alternate; }
.scn-farewell-to-montserrat .sail-jib { position:absolute; bottom:45%; left:42%; width:35px; height:45px; background: linear-gradient(225deg, #d8c8a0 0%, #b8a888 100%); border-radius: 40% 0 40% 0 / 60% 0 60% 0; transform-origin: bottom right; animation: fm-jib 8s ease-in-out infinite alternate; }
.scn-farewell-to-montserrat .flag { position:absolute; top:20%; left:50%; width:20px; height:14px; transform:translateX(-50%); background: linear-gradient(180deg, #b87878 0%, #8a5858 100%); border-radius: 0 4px 4px 0; animation: fm-flag 4s ease-in-out infinite; }
.scn-farewell-to-montserrat .wave-left { position:absolute; bottom:35%; left:0; width:100%; height:20px; background: linear-gradient(90deg, transparent 0%, rgba(255,255,255,.15) 30%, transparent 60%, rgba(255,255,255,.1) 100%); filter: blur(4px); animation: fm-wave-l 12s linear infinite; }
.scn-farewell-to-montserrat .wave-right { position:absolute; bottom:32%; right:0; width:100%; height:16px; background: linear-gradient(270deg, transparent 0%, rgba(255,255,255,.12) 40%, transparent 70%, rgba(255,255,255,.08) 100%); filter: blur(3px); animation: fm-wave-r 15s linear infinite reverse; }
@keyframes fm-sky { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes fm-sea { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes fm-hull { 0% { transform: translateX(-50%) rotate(0) } 25% { transform: translateX(-50%) rotate(-1deg) translateY(-1px) } 50% { transform: translateX(-50%) rotate(0) } 75% { transform: translateX(-50%) rotate(1deg) translateY(-1px) } 100% { transform: translateX(-50%) rotate(0) } }
@keyframes fm-mast { 0%,100% { transform: translateX(-50%) rotate(0) } 50% { transform: translateX(-50%) rotate(.5deg) } }
@keyframes fm-sail { 0% { transform: scale(1) rotate(0) } 50% { transform: scale(1.02) rotate(2deg) } 100% { transform: scale(1) rotate(0) } }
@keyframes fm-jib { 0% { transform: scale(1) rotate(0) } 50% { transform: scale(1.02) rotate(-2deg) } 100% { transform: scale(1) rotate(0) } }
@keyframes fm-flag { 0% { transform: translateX(-50%) rotate(-3deg) } 25% { transform: translateX(-50%) rotate(4deg) } 50% { transform: translateX(-50%) rotate(-2deg) } 75% { transform: translateX(-50%) rotate(5deg) } 100% { transform: translateX(-50%) rotate(-3deg) } }
@keyframes fm-wave-l { 0% { transform: translateX(-100px) } 100% { transform: translateX(100vw) } }
@keyframes fm-wave-r { 0% { transform: translateX(100px) } 100% { transform: translateX(-100vw) } }

/* voyage-to-london — arriving at London river */
.scn-voyage-to-london { background: linear-gradient(180deg, #a0c8d8 0%, #b8d8e0 40%, #d0e8f0 100%), radial-gradient(ellipse at 60% 30%, #d8e8f0 0%, transparent 70%); }
.scn-voyage-to-london .sky-london { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #88b8c8 0%, #b0d0d8 50%, #c8e0e8 100%); animation: vl-sky 16s ease-in-out infinite alternate; }
.scn-voyage-to-london .river { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #4a7a8a 0%, #3a6a7a 50%, #2a4a5a 100%); box-shadow: inset 0 10px 30px rgba(0,0,0,.2); animation: vl-river 20s ease-in-out infinite; }
.scn-voyage-to-london .bridge { position:absolute; top:30%; left:10%; right:10%; height:20px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 4px; box-shadow: 0 4px 12px rgba(0,0,0,.3); animation: vl-bridge 12s ease-in-out infinite alternate; }
.scn-voyage-to-london .church-spire { position:absolute; top:6%; left:25%; width:10px; height:80px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 2px; transform: skewX(-1deg); box-shadow: 0 0 8px rgba(0,0,0,.2); animation: vl-spire 10s ease-in-out infinite; }
.scn-voyage-to-london .ship-arriving { position:absolute; bottom:32%; left:50%; width:120px; height:36px; transform:translateX(-50%); background: linear-gradient(180deg, #6a4a2a 0%, #4a2a10 100%); border-radius: 30% 30% 40% 40% / 50% 50% 60% 60%; box-shadow: 0 4px 12px rgba(0,0,0,.3); animation: vl-ship 8s ease-in-out infinite; }
.scn-voyage-to-london .sail-lateen { position:absolute; bottom:38%; left:55%; width:45px; height:55px; background: linear-gradient(135deg, #d8c8a0 0%, #b8a888 50%, #a09070 100%); border-radius: 0 50% 0 50% / 0 60% 0 60%; transform-origin: bottom left; animation: vl-sail 9s ease-in-out infinite alternate; }
.scn-voyage-to-london .rowboat { position:absolute; bottom:28%; left:30%; width:40px; height:12px; background: linear-gradient(180deg, #5a3a20 0%, #3a2010 100%); border-radius: 20% 20% 30% 30% / 40% 40% 50% 50%; animation: vl-rowboat 7s ease-in-out infinite; }
.scn-voyage-to-london .ripple-left { position:absolute; bottom:30%; left:0; width:100%; height:12px; background: linear-gradient(90deg, transparent 0%, rgba(255,255,255,.12) 20%, transparent 50%, rgba(255,255,255,.08) 80%, transparent 100%); filter: blur(3px); animation: vl-ripple-l 14s linear infinite; }
.scn-voyage-to-london .ripple-right { position:absolute; bottom:27%; right:0; width:100%; height:10px; background: linear-gradient(270deg, transparent 0%, rgba(255,255,255,.1) 30%, transparent 60%, rgba(255,255,255,.06) 100%); filter: blur(2px); animation: vl-ripple-r 18s linear infinite reverse; }
@keyframes vl-sky { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes vl-river { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes vl-bridge { 0% { opacity:.8; transform: scaleY(1) } 50% { opacity:1; transform: scaleY(1.02) } 100% { opacity:.8; transform: scaleY(1) } }
@keyframes vl-spire { 0%,100% { transform: skewX(-1deg) } 50% { transform: skewX(1deg) } }
@keyframes vl-ship { 0% { transform: translateX(-50%) rotate(0) } 25% { transform: translateX(-50%) rotate(-.5deg) translateY(-1px) } 50% { transform: translateX(-50%) rotate(0) } 75% { transform: translateX(-50%) rotate(.5deg) translateY(-1px) } 100% { transform: translateX(-50%) rotate(0) } }
@keyframes vl-sail { 0% { transform: scale(1) rotate(0) } 50% { transform: scale(1.02) rotate(2deg) } 100% { transform: scale(1) rotate(0) } }
@keyframes vl-rowboat { 0% { transform: translateX(0) rotate(0) } 30% { transform: translateX(6px) rotate(-2deg) } 70% { transform: translateX(-4px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes vl-ripple-l { 0% { transform: translateX(-80px) } 100% { transform: translateX(100vw) } }
@keyframes vl-ripple-r { 0% { transform: translateX(80px) } 100% { transform: translateX(-100vw) } }

/* mosquito-governor-riot */
.scn-mosquito-governor-riot { background: linear-gradient(180deg, #87ceeb 0%, #f4d03f 50%, #c0392b 100%), radial-gradient(ellipse at 60% 20%, #fff4d0 0%, transparent 60%); }
.scn-mosquito-governor-riot .bg-sky             { position:absolute; inset:0 0 60% 0; background: linear-gradient(180deg, #2980b9 0%, #f39c12 100%); animation: mg-skyPulse 6s ease-in-out infinite alternate; }
.scn-mosquito-governor-riot .bg-ground          { position:absolute; bottom:0; left:0; right:0; height:60%; background: linear-gradient(180deg, #d35400 0%, #873600 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 -20px 30px rgba(0,0,0,.3); }
.scn-mosquito-governor-riot .sun                { position:absolute; top:12%; left:55%; width:60px; height:60px; background: radial-gradient(circle, #fff 0%, #f1c40f 60%, transparent 80%); border-radius:50%; box-shadow: 0 0 60px 30px rgba(241,196,15,.5), 0 0 120px 60px rgba(241,196,15,.2); animation: mg-sunGlow 3s ease-in-out infinite alternate; }
.scn-mosquito-governor-riot .mob-figures        { position:absolute; bottom:25%; left:10%; right:10%; height:35%; background: repeating-linear-gradient(90deg, transparent 0, transparent 12px, #2c3e50 12px, #2c3e50 18px, transparent 18px); filter: blur(1px); animation: mg-mobSway 0.6s ease-in-out infinite alternate; }
.scn-mosquito-governor-riot .governor-figure    { position:absolute; bottom:40%; left:50%; width:24px; height:50px; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 30%, #c0392b 0%, #641e16 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 0 20px 5px rgba(192,57,43,.4); animation: mg-governorTremble 0.3s ease-in-out infinite; }
.scn-mosquito-governor-riot .plundered-goods    { position:absolute; bottom:18%; left:30%; right:30%; height:12%; background: linear-gradient(90deg, #d35400 0%, #e67e22 20%, #d35400 40%, #c0392b 60%, #e67e22 80%, #d35400 100%); border-radius: 50%; filter: blur(2px); animation: mg-goodsShake 1.2s ease-in-out infinite alternate; }
@keyframes mg-skyPulse         { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes mg-sunGlow          { 0% { transform:scale(0.9); box-shadow: 0 0 40px 15px rgba(241,196,15,.3) } 100% { transform:scale(1.1); box-shadow: 0 0 80px 35px rgba(241,196,15,.6) } }
@keyframes mg-mobSway          { 0% { transform:translateX(-8px) } 50% { transform:translateX(5px) } 100% { transform:translateX(-3px) } }
@keyframes mg-governorTremble  { 0% { transform:translateX(-50%) rotate(-2deg) } 33% { transform:translateX(-48%) rotate(1deg) } 66% { transform:translateX(-52%) rotate(-1deg) } 100% { transform:translateX(-50%) rotate(2deg) } }
@keyframes mg-goodsShake       { 0% { transform:translateX(-5px) scale(0.95) } 50% { transform:translateX(3px) scale(1.05) } 100% { transform:translateX(-2px) scale(1) } }

/* mosquito-feast-tourrie */
.scn-mosquito-feast-tourrie { background: linear-gradient(180deg, #fdf4e3 0%, #f5d6a8 50%, #e8b87a 100%), radial-gradient(ellipse at 50% 100%, #f5d6a8 0%, transparent 60%); }
.scn-mosquito-feast-tourrie .bg-sky          { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #f9e4b7 0%, #f5d6a8 100%); animation: mf-skyDrift 12s ease-in-out infinite alternate; }
.scn-mosquito-feast-tourrie .bg-ground       { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #a0845c 0%, #7b5f3e 100%); border-radius: 30% 70% 0 0 / 50% 50% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.15); }
.scn-mosquito-feast-tourrie .feast-bowl      { position:absolute; bottom:30%; left:50%; width:80px; height:40px; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 40%, #d4a373 0%, #b87c4a 60%, #7b5f3e 100%); border-radius: 50%; box-shadow: 0 10px 20px rgba(0,0,0,.3); animation: mf-bowlSway 4s ease-in-out infinite; }
.scn-mosquito-feast-tourrie .figure-left     { position:absolute; bottom:32%; left:28%; width:20px; height:50px; background: linear-gradient(180deg, #8b4513 0%, #5a2e0e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mf-figureDance 3s ease-in-out infinite; }
.scn-mosquito-feast-tourrie .figure-right    { position:absolute; bottom:32%; right:28%; width:20px; height:50px; background: linear-gradient(180deg, #a0522d 0%, #6b3a1f 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mf-figureDance 3s ease-in-out infinite alternate-reverse; animation-delay: -1.5s; }
.scn-mosquito-feast-tourrie .drink-cup       { position:absolute; bottom:38%; left:38%; width:12px; height:16px; background: radial-gradient(ellipse at 50% 30%, #f5d6a8 0%, #c9a87c 100%); border-radius: 20% 20% 40% 40%; transform-origin: bottom center; }
.scn-mosquito-feast-tourrie .left-cup        { animation: mf-cupSlosh 2.5s ease-in-out infinite; }
.scn-mosquito-feast-tourrie .right-cup       { right:38%; left:auto; animation: mf-cupSlosh 2.5s ease-in-out infinite alternate; animation-delay: -1.2s; }
@keyframes mf-skyDrift       { 0% { background-position: 0% 0% } 50% { background-position: 10% 5% } 100% { background-position: -5% -2% } }
@keyframes mf-bowlSway       { 0% { transform:translateX(-50%) rotate(-2deg) } 50% { transform:translateX(-48%) rotate(3deg) } 100% { transform:translateX(-52%) rotate(-1deg) } }
@keyframes mf-figureDance    { 0% { transform:translateX(0) rotate(-3deg) } 25% { transform:translateX(8px) rotate(2deg) } 50% { transform:translateX(0) rotate(4deg) } 75% { transform:translateX(-6px) rotate(-2deg) } 100% { transform:translateX(0) rotate(-3deg) } }
@keyframes mf-cupSlosh       { 0% { transform:rotate(-5deg) } 50% { transform:rotate(5deg) translateY(-2px) } 100% { transform:rotate(-5deg) } }

/* leaving-mosquito-shore */
.scn-leaving-mosquito-shore { background: linear-gradient(180deg, #4a6fa5 0%, #8bb0d0 40%, #6c8ea0 100%), radial-gradient(ellipse at 30% 80%, #9ac4e0 0%, transparent 70%); }
.scn-leaving-mosquito-shore .bg-sky          { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #3b5998 0%, #6a8fb0 100%); animation: lms-skyPulse 8s ease-in-out infinite alternate; }
.scn-leaving-mosquito-shore .bg-clouds       { position:absolute; top:8%; left:0; right:0; height:20%; background: radial-gradient(ellipse at 70% 50%, #6c8ea0 0%, transparent 70%), radial-gradient(ellipse at 30% 50%, #7a9ab5 0%, transparent 60%); filter: blur(8px); animation: lms-cloudDrift 25s linear infinite; }
.scn-leaving-mosquito-shore .rain-1          { position:absolute; top:0; left:10%; width:2px; height:80%; background: linear-gradient(180deg, transparent 0%, #bed9f0 50%, transparent 100%); opacity:0.4; animation: lms-rainFall 0.8s linear infinite; }
.scn-leaving-mosquito-shore .rain-2          { left:40%; width:3px; animation: lms-rainFall 1s linear infinite; animation-delay: -0.4s; }
.scn-leaving-mosquito-shore .river           { position:absolute; bottom:25%; left:0; right:0; height:25%; background: linear-gradient(180deg, #3b5e8a 0%, #5a7ea0 100%); border-radius: 40% 60% 0 0 / 30% 20% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.4); animation: lms-waterFlow 6s ease-in-out infinite alternate; }
.scn-leaving-mosquito-shore .canoe           { position:absolute; bottom:35%; left:50%; width:60px; height:20px; transform:translateX(-50%); background: linear-gradient(180deg, #8b5e3c 0%, #5a3a1e 100%); border-radius: 0 0 40% 40% / 0 0 80% 80%; box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: lms-canoeRock 2s ease-in-out infinite alternate; }
.scn-leaving-mosquito-shore .figure-canoe    { position:absolute; bottom:37%; left:48%; width:14px; height:30px; background: linear-gradient(180deg, #2c3e50 0%, #1a252f 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lms-figureSway 2s ease-in-out infinite alternate; }
.scn-leaving-mosquito-shore .flooded-ground  { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #a07850 0%, #6b4f30 100%); border-radius: 60% 40% 0 0 / 40% 30% 0 0; box-shadow: inset 0 5px 15px rgba(0,0,0,.5); }
@keyframes lms-skyPulse       { 0% { opacity:0.7 } 50% { opacity:0.9 } 100% { opacity:0.8 } }
@keyframes lms-cloudDrift     { 0% { transform:translateX(-10%) } 50% { transform:translateX(20%) } 100% { transform:translateX(-10%) } }
@keyframes lms-rainFall       { 0% { transform:translateY(-100%) } 50% { transform:translateY(50%) } 100% { transform:translateY(100%) } }
@keyframes lms-waterFlow      { 0% { background-position:0% 0% } 50% { background-position:20% 10% } 100% { background-position:5% -5% } }
@keyframes lms-canoeRock      { 0% { transform:translateX(-50%) rotate(-3deg) } 50% { transform:translateX(-48%) rotate(3deg) } 100% { transform:translateX(-52%) rotate(-1deg) } }
@keyframes lms-figureSway     { 0% { transform:rotate(-5deg) translateY(0) } 50% { transform:rotate(5deg) translateY(-2px) } 100% { transform:rotate(-5deg) translateY(0) } }

/* departure-from-doctor */
.scn-departure-from-doctor { background: linear-gradient(180deg, #b0bcc0 0%, #87949e 50%, #606c74 100%), radial-gradient(ellipse at 50% 30%, #a0aab0 0%, transparent 70%); }
.scn-departure-from-doctor .bg-sky          { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #9ca8b0 0%, #b8c4c8 100%); animation: dd-skyDrift 10s ease-in-out infinite alternate; }
.scn-departure-from-doctor .bg-water        { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #607080 0%, #3a4a5a 100%); border-radius: 30% 70% 0 0 / 20% 30% 0 0; box-shadow: inset 0 10px 25px rgba(0,0,0,.4); animation: dd-waterFlow 8s ease-in-out infinite alternate; }
.scn-departure-from-doctor .canoe           { position:absolute; bottom:25%; left:40%; width:70px; height:22px; background: linear-gradient(180deg, #7a5a3a 0%, #4a3020 100%); border-radius: 0 0 50% 50% / 0 0 80% 80%; box-shadow: 0 6px 12px rgba(0,0,0,.5); animation: dd-canoeSway 3s ease-in-out infinite alternate; }
.scn-departure-from-doctor .figure-canoe    { position:absolute; bottom:28%; left:43%; width:16px; height:34px; background: linear-gradient(180deg, #2c3e50 0%, #1a252f 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dd-figureSit 3s ease-in-out infinite alternate; }
.scn-departure-from-doctor .doctor-figure   { position:absolute; bottom:18%; right:20%; width:20px; height:50px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dd-figureWave 3s ease-in-out infinite; }
.scn-departure-from-doctor .slaves          { position:absolute; bottom:15%; right:30%; width:15px; height:40px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dd-slavesSway 4s ease-in-out infinite alternate; }
.scn-departure-from-doctor .wave-left       { position:absolute; bottom:10%; left:10%; width:80px; height:10px; background: rgba(255,255,255,.15); border-radius: 50%; filter: blur(3px); animation: dd-waveDrift 5s ease-in-out infinite alternate; }
.scn-departure-from-doctor .wave-right      { bottom:15%; right:15%; width:60px; animation: dd-waveDrift 5s ease-in-out infinite alternate-reverse; animation-delay: -2.5s; }
@keyframes dd-skyDrift        { 0% { opacity:0.85 } 50% { opacity:0.95 } 100% { opacity:0.9 } }
@keyframes dd-waterFlow       { 0% { background-position:0% 0% } 50% { background-position:15% 8% } 100% { background-position:5% -3% } }
@keyframes dd-canoeSway       { 0% { transform:rotate(-2deg) translateX(0) } 50% { transform:rotate(3deg) translateX(5px) } 100% { transform:rotate(-2deg) translateX(-2px) } }
@keyframes dd-figureSit       { 0% { transform:rotate(-3deg) } 50% { transform:rotate(3deg) translateY(-2px) } 100% { transform:rotate(-3deg) } }
@keyframes dd-figureWave      { 0% { transform:rotate(-10deg) } 25% { transform:rotate(10deg) } 50% { transform:rotate(-10deg) } 75% { transform:rotate(10deg) } 100% { transform:rotate(-10deg) } }
@keyframes dd-slavesSway      { 0% { transform:translateX(0) rotate(-2deg) } 50% { transform:translateX(8px) rotate(2deg) } 100% { transform:translateX(-5px) rotate(-2deg) } }
@keyframes dd-waveDrift       { 0% { transform:translateX(-10px) } 50% { transform:translateX(15px) } 100% { transform:translateX(-5px) } }

/* master-gentleman-daughter */
.scn-master-gentleman-daughter {
  background:
    linear-gradient(180deg, #f5e6d3 0%, #d4b896 40%, #b8926a 70%, #8a6a4e 100%),
    radial-gradient(ellipse at 50% 60%, #fff5e6 0%, transparent 70%);
}
.scn-master-gentleman-daughter .room-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #eedcc9 0%, #c9ad8a 80%, #a07d5c 100%);
  border-radius: 4% 4% 0 0; animation: mgd-bg 16s ease-in-out infinite alternate;
}
.scn-master-gentleman-daughter .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%; background: linear-gradient(0deg, #7a5c3c 0%, #a8825e 100%);
  border-radius: 20% 20% 0 0; box-shadow: inset 0 8px 15px rgba(0,0,0,.3);
}
.scn-master-gentleman-daughter .window {
  position: absolute; top: 12%; right: 15%; width: 100px; height: 120px;
  background: linear-gradient(135deg, #b8d0e0 0%, #e6f0f8 60%, #fff 100%);
  border: 6px solid #6a4a2e; border-radius: 4px; box-shadow: inset 0 0 20px rgba(255,255,200,.4);
  animation: mgd-window 8s ease-in-out infinite alternate;
}
.scn-master-gentleman-daughter .fireplace {
  position: absolute; bottom: 18%; left: 8%; width: 80px; height: 100px;
  background: linear-gradient(180deg, #5e3a2a 0%, #3a1e0e 100%);
  border-radius: 20% 20% 10% 10%; box-shadow: inset 0 -10px 20px #1a0a00;
}
.scn-master-gentleman-daughter .table {
  position: absolute; bottom: 24%; left: 30%; width: 120px; height: 20px;
  background: linear-gradient(90deg, #8a6a4e 0%, #b08a6a 50%, #8a6a4e 100%);
  border-radius: 10px; box-shadow: 0 4px 8px rgba(0,0,0,.3);
}
.scn-master-gentleman-daughter .figure-gent {
  position: absolute; bottom: 24%; left: 55%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e12 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: mgd-figure 4s ease-in-out infinite;
}
.scn-master-gentleman-daughter .figure-daughter {
  position: absolute; bottom: 24%; left: 42%; width: 22px; height: 40px;
  background: linear-gradient(180deg, #b8a090 0%, #907a6a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: mgd-figure 3s ease-in-out infinite;
}
.scn-master-gentleman-daughter .glow-fire {
  position: absolute; bottom: 20%; left: 8%; width: 80px; height: 80px;
  background: radial-gradient(circle, #ff9933 0%, #ff6600 50%, transparent 70%);
  border-radius: 50%; filter: blur(12px); animation: mgd-glow 2s ease-in-out infinite alternate;
}
@keyframes mgd-bg {
  0% { opacity: .85; } 50% { opacity: 1; } 100% { opacity: .9; }
}
@keyframes mgd-window {
  0% { box-shadow: inset 0 0 20px rgba(255,255,200,.3); }
  50% { box-shadow: inset 0 0 35px rgba(255,255,200,.6); }
  100% { box-shadow: inset 0 0 20px rgba(255,255,200,.3); }
}
@keyframes mgd-figure {
  0% { transform: translateY(0) rotate(-1deg); }
  25% { transform: translateY(-2px) rotate(2deg); }
  50% { transform: translateY(0) rotate(-1deg); }
  75% { transform: translateY(-1px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes mgd-glow {
  0% { opacity: .6; transform: scale(.9); }
  100% { opacity: 1; transform: scale(1.1); }
}

/* fear-of-betrothal */
.scn-fear-of-betrothal {
  background:
    linear-gradient(180deg, #fce8d0 0%, #e3c4a8 50%, #c49a78 100%),
    radial-gradient(ellipse at 30% 70%, #fff5e0 0%, transparent 60%);
}
.scn-fear-of-betrothal .room-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #fce8d0 0%, #e3c4a8 70%, #c49a78 100%);
  animation: fob-bg 20s ease-in-out infinite alternate;
}
.scn-fear-of-betrothal .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%; background: linear-gradient(0deg, #8a6a50 0%, #b09070 100%);
  border-radius: 30% 30% 0 0;
}
.scn-fear-of-betrothal .table {
  position: absolute; bottom: 22%; left: 20%; width: 140px; height: 18px;
  background: linear-gradient(90deg, #ac8e72 0%, #c0a88a 50%, #ac8e72 100%);
  border-radius: 8px; box-shadow: 0 4px 10px rgba(0,0,0,.2);
}
.scn-fear-of-betrothal .cushion {
  position: absolute; bottom: 30%; left: 28%; width: 40px; height: 20px;
  background: radial-gradient(ellipse, #d4624a 0%, #b84530 100%);
  border-radius: 50%; transform: rotate(10deg); box-shadow: 0 2px 6px rgba(0,0,0,.3);
  animation: fob-cushion 5s ease-in-out infinite;
}
.scn-fear-of-betrothal .ring {
  position: absolute; bottom: 35%; left: 32%; width: 14px; height: 14px;
  background: radial-gradient(circle, #ffd700 0%, #d4a800 60%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 12px 2px #ffd700;
  animation: fob-ring 3s ease-in-out infinite;
}
.scn-fear-of-betrothal .figure-boy {
  position: absolute; bottom: 20%; left: 15%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #3a2a1e 0%, #1a100a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: fob-walk 4s ease-in-out infinite;
}
.scn-fear-of-betrothal .figure-girl {
  position: absolute; bottom: 22%; left: 60%; width: 24px; height: 48px;
  background: linear-gradient(180deg, #c8a090 0%, #a08070 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: fob-walk 5s ease-in-out infinite reverse;
}
.scn-fear-of-betrothal .veil {
  position: absolute; bottom: 30%; left: 35%; width: 50px; height: 30px;
  background: radial-gradient(ellipse at 50% 0%, rgba(255,255,240,.6) 0%, transparent 70%);
  filter: blur(5px); border-radius: 50% 50% 30% 30%;
  animation: fob-veil 7s ease-in-out infinite alternate;
}
@keyframes fob-bg { 0% { opacity: .9; } 50% { opacity: 1; } 100% { opacity: .95; } }
@keyframes fob-cushion {
  0% { transform: rotate(10deg) translateY(0); }
  50% { transform: rotate(-5deg) translateY(-3px); }
  100% { transform: rotate(10deg) translateY(0); }
}
@keyframes fob-ring {
  0% { transform: scale(1) rotate(0deg); opacity: .8; }
  50% { transform: scale(1.3) rotate(20deg); opacity: 1; }
  100% { transform: scale(1) rotate(0deg); opacity: .8; }
}
@keyframes fob-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(8px) translateY(-1px) rotate(0deg); }
  100% { transform: translateX(0) translateY(0) rotate(0); }
}
@keyframes fob-veil {
  0% { transform: translateY(0) scaleX(1); opacity: .3; }
  50% { transform: translateY(-8px) scaleX(1.2); opacity: .6; }
  100% { transform: translateY(0) scaleX(1); opacity: .3; }
}

/* guernsey-family */
.scn-guernsey-family {
  background:
    linear-gradient(180deg, #e6d4bf 0%, #c4a78a 40%, #9e7d60 70%, #7a5c42 100%),
    radial-gradient(ellipse at 60% 30%, #fff5e0 0%, transparent 70%);
}
.scn-guernsey-family .room-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #e6d4bf 0%, #c4a78a 70%, #a08060 100%);
  animation: gf-bg 18s ease-in-out infinite alternate;
}
.scn-guernsey-family .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 22%; background: linear-gradient(0deg, #6a5038 0%, #8a7058 100%);
  border-radius: 15% 15% 0 0;
}
.scn-guernsey-family .window-sea {
  position: absolute; top: 8%; right: 10%; width: 110px; height: 130px;
  background: linear-gradient(180deg, #6a9ec4 0%, #8abae0 40%, #b8d8f0 100%);
  border: 6px solid #5a3c28; border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(180,220,255,.5);
  animation: gf-sea 14s ease-in-out infinite alternate;
}
.scn-guernsey-family .fireplace {
  position: absolute; bottom: 15%; left: 8%; width: 70px; height: 90px;
  background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0e 100%);
  border-radius: 15% 15% 8% 8%; box-shadow: inset 0 -8px 15px #1a0a00;
}
.scn-guernsey-family .table {
  position: absolute; bottom: 22%; left: 35%; width: 100px; height: 16px;
  background: linear-gradient(90deg, #7a5c42 0%, #9a7a62 50%, #7a5c42 100%);
  border-radius: 8px; box-shadow: 0 3px 6px rgba(0,0,0,.2);
}
.scn-guernsey-family .figure-father {
  position: absolute; bottom: 20%; left: 50%; width: 32px; height: 60px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e12 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: gf-figures 5s ease-in-out infinite;
}
.scn-guernsey-family .figure-mother {
  position: absolute; bottom: 20%; left: 38%; width: 28px; height: 55px;
  background: linear-gradient(180deg, #6a5a48 0%, #4a3a28 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: gf-figures 6s ease-in-out infinite reverse;
}
.scn-guernsey-family .figure-daughter {
  position: absolute; bottom: 22%; left: 28%; width: 18px; height: 35px;
  background: linear-gradient(180deg, #b8a090 0%, #907a6a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: gf-figures 4s ease-in-out infinite;
}
.scn-guernsey-family .toy-boat {
  position: absolute; bottom: 24%; left: 45%; width: 30px; height: 12px;
  background: linear-gradient(90deg, #a06040 0%, #c08060 100%);
  border-radius: 20% 20% 40% 40%; transform: rotate(-10deg);
  animation: gf-boat 8s ease-in-out infinite;
}
@keyframes gf-bg { 0% { opacity: .85; } 50% { opacity: 1; } 100% { opacity: .9; } }
@keyframes gf-sea {
  0% { background: linear-gradient(180deg, #6a9ec4 0%, #8abae0 40%, #b8d8f0 100%); }
  50% { background: linear-gradient(180deg, #7aaad0 0%, #94c4e6 40%, #c4e0f4 100%); }
  100% { background: linear-gradient(180deg, #6a9ec4 0%, #8abae0 40%, #b8d8f0 100%); }
}
@keyframes gf-figures {
  0% { transform: translateY(0) rotate(-1deg); }
  25% { transform: translateY(-2px) rotate(2deg); }
  50% { transform: translateY(0) rotate(-1deg); }
  75% { transform: translateY(-1px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes gf-boat {
  0% { transform: rotate(-10deg) translateX(0); }
  50% { transform: rotate(5deg) translateX(10px); }
  100% { transform: rotate(-10deg) translateX(0); }
}

/* kind-treatment */
.scn-kind-treatment {
  background:
    linear-gradient(180deg, #f0dfc8 0%, #d4b896 40%, #b8926a 70%, #8a6a4e 100%),
    radial-gradient(ellipse at 40% 50%, #fff5e6 0%, transparent 70%);
}
.scn-kind-treatment .room-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #f0dfc8 0%, #d4b896 70%, #b8926a 100%);
  animation: kt-bg 16s ease-in-out infinite alternate;
}
.scn-kind-treatment .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%; background: linear-gradient(0deg, #7a5c3c 0%, #a8825e 100%);
  border-radius: 20% 20% 0 0;
}
.scn-kind-treatment .window {
  position: absolute; top: 12%; left: 12%; width: 90px; height: 110px;
  background: linear-gradient(135deg, #b8d0e0 0%, #e6f0f8 60%, #fff 100%);
  border: 5px solid #6a4a2e; border-radius: 4px; box-shadow: inset 0 0 20px rgba(255,255,200,.4);
  animation: kt-window 10s ease-in-out infinite alternate;
}
.scn-kind-treatment .chair {
  position: absolute; bottom: 22%; left: 40%; width: 30px; height: 45px;
  background: linear-gradient(180deg, #5a402c 0%, #3a281a 100%);
  border-radius: 10% 10% 20% 20%; transform: skewX(-5deg);
}
.scn-kind-treatment .table {
  position: absolute; bottom: 24%; left: 50%; width: 80px; height: 14px;
  background: linear-gradient(90deg, #8a6a4e 0%, #b08a6a 50%, #8a6a4e 100%);
  border-radius: 6px; box-shadow: 0 2px 6px rgba(0,0,0,.2);
}
.scn-kind-treatment .figure-woman {
  position: absolute; bottom: 20%; left: 58%; width: 28px; height: 55px;
  background: linear-gradient(180deg, #6a5a48 0%, #4a3a28 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: kt-figures 5s ease-in-out infinite;
}
.scn-kind-treatment .figure-child {
  position: absolute; bottom: 22%; left: 38%; width: 18px; height: 35px;
  background: linear-gradient(180deg, #b8a090 0%, #907a6a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: kt-figures 4s ease-in-out infinite reverse;
}
.scn-kind-treatment .book-stack {
  position: absolute; bottom: 26%; left: 48%; width: 40px; height: 20px;
  background: linear-gradient(180deg, #c04040 0%, #a03030 100%); /* use mulberry */
  border-radius: 4px; box-shadow: 0 2px 4px rgba(0,0,0,.3);
  animation: kt-book 7s ease-in-out infinite;
}
.scn-kind-treatment .candle {
  position: absolute; bottom: 32%; left: 53%; width: 6px; height: 20px;
  background: linear-gradient(180deg, #ffe680 0%, #ffcc40 100%);
  border-radius: 50% 50% 20% 20%; box-shadow: 0 0 16px 4px #ffcc40;
  animation: kt-candle 3s ease-in-out infinite alternate;
}
@keyframes kt-bg { 0% { opacity: .85; } 50% { opacity: 1; } 100% { opacity: .9; } }
@keyframes kt-window {
  0% { box-shadow: inset 0 0 20px rgba(255,255,200,.3); }
  50% { box-shadow: inset 0 0 35px rgba(255,255,200,.6); }
  100% { box-shadow: inset 0 0 20px rgba(255,255,200,.3); }
}
@keyframes kt-figures {
  0% { transform: translateY(0) rotate(-1deg); }
  25% { transform: translateY(-2px) rotate(2deg); }
  50% { transform: translateY(0) rotate(-1deg); }
  75% { transform: translateY(-1px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes kt-book {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.1); }
  100% { transform: scaleY(1); }
}
@keyframes kt-candle {
  0% { opacity: .7; transform: scaleY(.95); }
  100% { opacity: 1; transform: scaleY(1.05); }
}

/* training-in-war */
.scn-training-in-war { background: linear-gradient(180deg, #b0d0ff 0%, #ffd68a 60%, #e8a050 100%), radial-gradient(ellipse at 80% 20%, #fff2c0 0%, transparent 60%); }
.scn-training-in-war .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #9ac8ff 0%, #b0d0ff 40%, transparent 100%); animation: tw1-sky 12s ease-in-out infinite alternate; }
.scn-training-in-war .sun { position:absolute; top:8%; left:75%; width:60px; height:60px; background: radial-gradient(circle, #ffe080 0%, #ffc060 80%); border-radius:50%; box-shadow: 0 0 80px 40px rgba(255,192,96,.6), 0 0 120px 60px rgba(255,192,96,.3); animation: tw1-sun 20s ease-in-out infinite alternate; }
.scn-training-in-war .ground { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(0deg, #6b4a2a 0%, #9a7a4a 40%, #b89a5a 100%); border-radius: 0 0 30% 20% / 0 0 10% 10%; }
.scn-training-in-war .figure { position:absolute; bottom:38%; left:30%; width:30px; height:60px; background: linear-gradient(135deg, #2a1a0a 0%, #4a3010 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: tw1-throw 2.5s ease-in-out infinite; }
.scn-training-in-war .javelin { position:absolute; bottom:52%; left:45%; width:80px; height:4px; background: linear-gradient(90deg, #6a4a2a 0%, #402818 100%); border-radius: 2px; transform-origin: right center; animation: tw1-javelin 2.5s ease-in-out infinite; }
.scn-training-in-war .target { position:absolute; bottom:35%; right:15%; width:40px; height:60px; background: radial-gradient(circle at 40% 40%, #c8553d 0%, #8a3018 70%); border-radius: 30% 30% 20% 20%; box-shadow: inset 0 -4px 8px rgba(0,0,0,.4); animation: tw1-target 3s ease-in-out infinite alternate; }
.scn-training-in-war .emblem-a { position:absolute; top:25%; left:20%; width:20px; height:20px; background: radial-gradient(circle, #ffc860 0%, transparent 70%); border-radius: 50%; filter: blur(2px); animation: tw1-emblems 8s linear infinite; }
.scn-training-in-war .emblem-b { position:absolute; top:30%; left:60%; width:16px; height:16px; background: radial-gradient(circle, #ffc860 0%, transparent 70%); border-radius: 50%; filter: blur(2px); animation: tw1-emblems 10s linear infinite reverse; }
@keyframes tw1-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes tw1-sun { 0%,100% { transform: scale(.95) translate(0,0) } 50% { transform: scale(1.05) translate(5px,-3px) } }
@keyframes tw1-throw { 0%,100% { transform: translateX(-10px) rotate(15deg) scaleX(1); } 40% { transform: translateX(20px) rotate(-10deg) scaleX(0.95); } 60% { transform: translateX(35px) rotate(5deg) scaleX(1.1); } 80% { transform: translateX(40px) rotate(0deg) scaleX(1); } }
@keyframes tw1-javelin { 0%,100% { transform: translate(0,0) rotate(-30deg) scaleX(1); } 30% { transform: translate(0,-10px) rotate(10deg) scaleX(1.2); } 50% { transform: translate(30px,-5px) rotate(45deg) scaleX(1); } 70% { transform: translate(60px,0) rotate(60deg) scaleX(0.8); } 90% { transform: translate(80px,10px) rotate(70deg) scaleX(0.6); } }
@keyframes tw1-target { 0% { transform: scaleX(1) translateY(0) } 50% { transform: scaleX(0.9) translateY(-2px) } 100% { transform: scaleX(1.05) translateY(2px) } }
@keyframes tw1-emblems { 0% { opacity:.3; transform: translateX(0) rotate(0deg) scale(1); } 33% { opacity:1; transform: translateX(20px) rotate(120deg) scale(1.2); } 66% { opacity:.6; transform: translateX(40px) rotate(240deg) scale(.8); } 100% { opacity:.4; transform: translateX(60px) rotate(360deg) scale(1); } }

/* alarm-at-kidnapper */
.scn-alarm-at-kidnapper { background: linear-gradient(180deg, #c0d8ff 0%, #ffe0a0 50%, #d0a050 100%), radial-gradient(ellipse at 50% 30%, #fff4e0 0%, transparent 70%); }
.scn-alarm-at-kidnapper .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #b8d4ff 0%, #e0f0ff 30%, transparent 100%); animation: ak2-sky 15s ease-in-out infinite alternate; }
.scn-alarm-at-kidnapper .tree-trunk { position:absolute; bottom:30%; left:20%; width:16px; height:45%; background: linear-gradient(90deg, #4a3018 0%, #6a4828 40%, #4a3018 100%); border-radius: 4px; box-shadow: 4px 0 8px rgba(0,0,0,.3); animation: ak2-tree 10s ease-in-out infinite; }
.scn-alarm-at-kidnapper .tree-foliage { position:absolute; bottom:55%; left:12%; width:80px; height:60px; background: radial-gradient(ellipse at 40% 60%, #3a6a2a 0%, #1a3a0a 80%); border-radius: 60% 40% 50% 50%; filter: blur(3px); animation: ak2-foliage 8s ease-in-out infinite alternate; }
.scn-alarm-at-kidnapper .child-figure { position:absolute; bottom:55%; left:22%; width:18px; height:40px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: ak2-point 3s ease-in-out infinite; }
.scn-alarm-at-kidnapper .kidnapper { position:absolute; bottom:28%; right:25%; width:40px; height:55px; background: linear-gradient(170deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%; transform-origin: bottom center; animation: ak2-creep 12s ease-in-out infinite; }
.scn-alarm-at-kidnapper .fence { position:absolute; bottom:30%; left:0; right:0; height:30%; background: repeating-linear-gradient(90deg, #3a2a1a 0px, #3a2a1a 8px, transparent 8px, transparent 20px); border-top: 4px solid #5a4020; }
.scn-alarm-at-kidnapper .alarm-waves { position:absolute; bottom:55%; left:30%; width:100px; height:100px; background: radial-gradient(ellipse, rgba(255,200,100,.4) 0%, transparent 70%); border-radius: 50%; animation: ak2-alarm 1.5s ease-out infinite; }
@keyframes ak2-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes ak2-tree { 0%,100% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) } }
@keyframes ak2-foliage { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-3px) scale(1.05) } 100% { transform: translateY(2px) scale(0.95) } }
@keyframes ak2-point { 0%,100% { transform: translateX(0) rotate(0deg) skewX(0deg) } 30% { transform: translateX(3px) rotate(-5deg) skewX(10deg) } 60% { transform: translateX(-2px) rotate(5deg) skewX(-10deg) } }
@keyframes ak2-creep { 0% { transform: translateX(0) scaleX(1) } 33% { transform: translateX(-15px) scaleX(0.9) } 50% { transform: translateX(-20px) scaleX(1.1) } 66% { transform: translateX(-10px) scaleX(0.95) } 100% { transform: translateX(0) scaleX(1) } }
@keyframes ak2-alarm { 0% { transform: scale(0.2); opacity:1 } 50% { transform: scale(1.2); opacity:0.3 } 100% { transform: scale(1.5); opacity:0 } }

/* kidnapping-of-siblings */
.scn-kidnapping-of-siblings { background: linear-gradient(180deg, #d0e8ff 0%, #ffdeb0 40%, #d09040 100%), radial-gradient(ellipse at 60% 40%, #fff8e0 0%, transparent 50%); }
.scn-kidnapping-of-siblings .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #c0dcff 0%, #e0f0ff 30%, transparent 100%); animation: ks3-sky 14s ease-in-out infinite alternate; }
.scn-kidnapping-of-siblings .sunlight { position:absolute; top:10%; left:50%; width:80px; height:80px; background: radial-gradient(circle, #ffd060 0%, #ffe080 30%, transparent 70%); border-radius: 50%; animation: ks3-sun 20s ease-in-out infinite alternate; }
.scn-kidnapping-of-siblings .field { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(0deg, #6a8a3a 0%, #8aaa5a 30%, #b0c870 60%); border-radius: 30% 70% 0 0 / 40% 60% 0 0; }
.scn-kidnapping-of-siblings .victim { position:absolute; bottom:30%; left:40%; width:24px; height:48px; background: linear-gradient(135deg, #2a1a0a 0%, #4a3010 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: ks3-struggle 2s ease-in-out infinite; }
.scn-kidnapping-of-siblings .abductor { position:absolute; bottom:30%; left:50%; width:30px; height:55px; background: linear-gradient(170deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 45% 45% 20% 20% / 60% 60% 20% 20%; transform-origin: bottom center; animation: ks3-drag 4s ease-in-out infinite; }
.scn-kidnapping-of-siblings .shadow-stretch { position:absolute; bottom:0; left:35%; width:80px; height:60px; background: rgba(0,0,0,.25); border-radius: 50% 50% 20% 20%; filter: blur(10px); animation: ks3-shadow 6s ease-in-out infinite alternate; }
.scn-kidnapping-of-siblings .rope { position:absolute; bottom:38%; left:45%; width:30px; height:4px; background: #5a3a20; border-radius: 2px; transform: rotate(20deg); animation: ks3-rope 2.5s ease-in-out infinite; }
@keyframes ks3-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes ks3-sun { 0%,100% { transform: scale(1) translate(0,0) } 50% { transform: scale(1.1) translate(4px,-2px) } }
@keyframes ks3-struggle { 0%,100% { transform: translateX(0) rotate(0deg) scaleY(1) } 25% { transform: translateX(4px) rotate(-8deg) scaleY(0.9) } 50% { transform: translateX(-4px) rotate(6deg) scaleY(1.1) } 75% { transform: translateX(2px) rotate(-3deg) scaleY(1) } }
@keyframes ks3-drag { 0% { transform: translateX(0) scaleX(1) } 25% { transform: translateX(10px) scaleX(0.95) } 50% { transform: translateX(20px) scaleX(1.05) } 75% { transform: translateX(30px) scaleX(0.9) } 100% { transform: translateX(40px) scaleX(1) } }
@keyframes ks3-shadow { 0% { transform: scaleX(1) translateX(0) } 50% { transform: scaleX(1.3) translateX(20px) } 100% { transform: scaleX(0.8) translateX(-10px) } }
@keyframes ks3-rope { 0%,100% { transform: rotate(20deg) translateY(0) } 50% { transform: rotate(15deg) translateY(2px) } }

/* tied-and-carried */
.scn-tied-and-carried { background: linear-gradient(180deg, #4a3040 0%, #6a4260 40%, #8a5a70 100%), radial-gradient(ellipse at 30% 60%, #a06070 0%, transparent 70%); }
.scn-tied-and-carried .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(0deg, #3a2040 0%, #5a3050 40%, #6a4060 100%); animation: tc4-sky 20s ease-in-out infinite alternate; }
.scn-tied-and-carried .house { position:absolute; bottom:15%; right:10%; width:70px; height:50px; background: linear-gradient(135deg, #2a1a20 0%, #1a0a10 100%); border-radius: 4px 4px 0 0; box-shadow: 0 0 20px 4px rgba(180,120,100,.3); animation: tc4-house 12s ease-in-out infinite alternate; }
.scn-tied-and-carried .ground { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(0deg, #2a1a10 0%, #3a2a1a 50%, #4a3a2a 100%); border-radius: 30% 70% 0 0 / 40% 60% 0 0; }
.scn-tied-and-carried .bound-figure { position:absolute; bottom:28%; left:45%; width:22px; height:40px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 35% 35% 25% 25% / 50% 50% 25% 25%; transform-origin: bottom center; animation: tc4-carry 6s ease-in-out infinite; }
.scn-tied-and-carried .captor-left { position:absolute; bottom:28%; left:38%; width:30px; height:50px; background: linear-gradient(170deg, #4a3020 0%, #2a1a10 100%); border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%; transform-origin: bottom center; animation: tc4-walk 8s ease-in-out infinite; }
.scn-tied-and-carried .captor-right { position:absolute; bottom:28%; left:52%; width:30px; height:50px; background: linear-gradient(170deg, #4a3020 0%, #2a1a10 100%); border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%; transform-origin: bottom center; animation: tc4-walk 8s ease-in-out infinite reverse; animation-delay: -3s; }
.scn-tied-and-carried .bindings { position:absolute; bottom:38%; left:43%; width:50px; height:6px; background: #3a2a10; border-radius: 3px; filter: blur(1px); animation: tc4-bind 3s ease-in-out infinite alternate; }
@keyframes tc4-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes tc4-house { 0%,100% { transform: translateY(0) scale(1) } 50% { transform: translateY(-2px) scale(1.02) } }
@keyframes tc4-carry { 0%,100% { transform: translateX(0) rotate(0deg) scaleY(1) } 25% { transform: translateX(-2px) rotate(-3deg) scaleY(0.95) } 50% { transform: translateX(2px) rotate(3deg) scaleY(1.05) } 75% { transform: translateX(-1px) rotate(-1deg) scaleY(1) } }
@keyframes tc4-walk { 0%,100% { transform: translateX(0) rotate(0deg) scaleY(1) } 25% { transform: translateX(4px) rotate(3deg) scaleY(0.95) } 50% { transform: translateX(0) rotate(0deg) scaleY(1.05) } 75% { transform: translateX(-4px) rotate(-3deg) scaleY(0.95) } }
@keyframes tc4-bind { 0% { transform: scaleX(1) translateX(0) } 50% { transform: scaleX(1.1) translateX(3px) } 100% { transform: scaleX(0.9) translateX(-2px) } }

.scn-smyrna-turkey { background: linear-gradient(180deg, #87CEEB 0%, #B0D4E8 30%, #E8D5A3 60%, #C2A56E 100%), radial-gradient(ellipse at 50% 100%, #D4B078 0%, transparent 70%); }
.scn-smyrna-turkey .sea { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #3B7DBD 0%, #2A5F8F 40%, #1A3F5F 100%); animation: st-sea 8s ease-in-out infinite alternate; }
.scn-smyrna-turkey .sky-warm { position:absolute; top:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #FCE4B8 0%, #F5D08A 40%, #B0D4E8 100%); animation: st-sky 12s ease-in-out infinite alternate; }
.scn-smyrna-turkey .sun { position:absolute; top:15%; right:25%; width:60px; height:60px; background: radial-gradient(circle, #FFF5D0 0%, #FCE4B8 30%, #F5D08A 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 80px 40px rgba(252,228,184,0.4); animation: st-sun 20s ease-in-out infinite alternate; }
.scn-smyrna-turkey .city-wall { position:absolute; bottom:40%; left:10%; right:10%; height:15%; background: linear-gradient(180deg, #C2A56E 0%, #A08050 50%, #7A6030 100%); border-radius: 10% 10% 0 0 / 30% 30% 0 0; box-shadow: inset 0 -4px 12px rgba(0,0,0,0.3); }
.scn-smyrna-turkey .house-stone { position:absolute; bottom:45%; left:18%; width:40px; height:35px; background: linear-gradient(180deg, #D4B078 0%, #B09060 100%); border-radius:6% 6% 0 0; box-shadow: 2px 0 6px rgba(0,0,0,0.2); animation: st-house 6s ease-in-out infinite; }
.scn-smyrna-turkey .house-stone-b { position:absolute; bottom:43%; right:22%; width:50px; height:40px; background: linear-gradient(180deg, #C8A868 0%, #A08050 100%); border-radius:5% 5% 0 0; box-shadow: -2px 0 6px rgba(0,0,0,0.2); animation: st-house-b 6s ease-in-out infinite 2s; }
.scn-smyrna-turkey .grave-mound { position:absolute; bottom:44%; left:30%; width:18px; height:14px; background: linear-gradient(180deg, #8A7A5A 0%, #6A5A3A 100%); border-radius:50% 50% 40% 40%; animation: st-grave 15s ease-in-out infinite alternate; }
.scn-smyrna-turkey .grave-mound-b { position:absolute; bottom:42%; right:30%; width:15px; height:12px; background: linear-gradient(180deg, #7A6A4A 0%, #5A4A2A 100%); border-radius:50% 50% 40% 40%; animation: st-grave-b 15s ease-in-out infinite alternate 5s; }
.scn-smyrna-turkey .sail-boat { position:absolute; bottom:38%; left:5%; width:70px; height:40px; transform-origin: center; animation: st-boat 25s ease-in-out infinite; }
.scn-smyrna-turkey .sail-boat::before { content:''; position:absolute; bottom:0; left:15px; width:30px; height:6px; background: linear-gradient(90deg, #5A3A1A 0%, #3A2A0A 100%); border-radius:30%; }
.scn-smyrna-turkey .sail-boat::after { content:''; position:absolute; bottom:2px; left:18px; width:2px; height:30px; background:#3A2A0A; transform:rotate(10deg); }
@keyframes st-sea { 0% { transform:translateY(0) } 50% { transform:translateY(-4px) } 100% { transform:translateY(2px) } }
@keyframes st-sky { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes st-sun { 0% { transform:scale(0.95); box-shadow:0 0 60px 30px rgba(252,228,184,0.3) } 50% { transform:scale(1.05); box-shadow:0 0 100px 50px rgba(252,228,184,0.5) } 100% { transform:scale(0.98); box-shadow:0 0 70px 35px rgba(252,228,184,0.35) } }
@keyframes st-house { 0%,100% { transform:translateY(0) } 50% { transform:translateY(-3px) } }
@keyframes st-house-b { 0%,100% { transform:translateY(0) } 50% { transform:translateY(-2px) } }
@keyframes st-grave { 0% { transform:scale(1) } 50% { transform:scale(1.03) } 100% { transform:scale(0.98) } }
@keyframes st-grave-b { 0% { transform:scale(1) } 50% { transform:scale(0.97) } 100% { transform:scale(1.02) } }
@keyframes st-boat { 0% { transform:translateX(0) } 50% { transform:translateX(30px) rotate(2deg) } 100% { transform:translateX(60px) rotate(-1deg) } }

.scn-oporto-inquisition { background: linear-gradient(180deg, #B0D4E8 0%, #D4E8F0 30%, #E8D5A3 60%, #C2A56E 100%), radial-gradient(ellipse at 50% 100%, #D4B078 0%, transparent 70%); }
.scn-oporto-inquisition .river { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #4A8FC7 0%, #2A6FA7 50%, #1A4F7F 100%); animation: oi-river 10s ease-in-out infinite alternate; }
.scn-oporto-inquisition .sky-port { position:absolute; top:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #FCE4B8 0%, #E8D5A3 50%, #B0D4E8 100%); animation: oi-sky 14s ease-in-out infinite alternate; }
.scn-oporto-inquisition .ship-hull { position:absolute; bottom:40%; left:25%; width:140px; height:40px; background: linear-gradient(180deg, #6A4A2A 0%, #4A2A1A 50%, #2A1A0A 100%); border-radius: 20% 40% 10% 10% / 40% 60% 20% 20%; box-shadow: 0 6px 12px rgba(0,0,0,0.5); animation: oi-hull 6s ease-in-out infinite; }
.scn-oporto-inquisition .mast { position:absolute; bottom:55%; left:38%; width:3px; height:50px; background: linear-gradient(180deg, #3A2A1A 0%, #2A1A0A 100%); transform-origin: bottom center; animation: oi-mast 6s ease-in-out infinite; }
.scn-oporto-inquisition .sail-port { position:absolute; bottom:52%; left:32%; width:45px; height:35px; background: linear-gradient(180deg, #E8D5A3 0%, #C8B888 50%, #A89868 100%); border-radius: 10% 60% 20% 20% / 20% 40% 20% 20%; transform:rotate(-8deg); box-shadow: -2px 2px 6px rgba(0,0,0,0.3); animation: oi-sail 6s ease-in-out infinite; }
.scn-oporto-inquisition .dock { position:absolute; bottom:35%; right:5%; width:60px; height:20px; background: linear-gradient(180deg, #7A5A3A 0%, #5A3A1A 100%); border-radius: 10% 10% 0 0; box-shadow: 0 4px 8px rgba(0,0,0,0.4); animation: oi-dock 8s ease-in-out infinite alternate; }
.scn-oporto-inquisition .banner { position:absolute; bottom:55%; right:12%; width:4px; height:30px; background:#4A2A1A; transform-origin: top center; animation: oi-banner 3s ease-in-out infinite; }
.scn-oporto-inquisition .banner::after { content:''; position:absolute; top:0; left:-8px; width:20px; height:14px; background: linear-gradient(180deg, #C8553D 0%, #A0461A 100%); border-radius:0 60% 20% 20%; animation: oi-banner-fabric 3s ease-in-out infinite; }
.scn-oporto-inquisition .figure-sailor { position:absolute; bottom:36%; left:20%; width:14px; height:28px; background: linear-gradient(180deg, #3A2A1A 0%, #1A1A1A 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: oi-figure 4s ease-in-out infinite; }
.scn-oporto-inquisition .ripple { position:absolute; bottom:38%; left:15%; width:80px; height:8px; background: rgba(255,255,255,0.15); border-radius:50%; filter: blur(2px); animation: oi-ripple 5s ease-in-out infinite; }
@keyframes oi-river { 0% { transform:translateY(0) } 50% { transform:translateY(-3px) } 100% { transform:translateY(2px) } }
@keyframes oi-sky { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes oi-hull { 0%,100% { transform:translateY(0) rotate(0deg) } 50% { transform:translateY(-4px) rotate(1deg) } }
@keyframes oi-mast { 0%,100% { transform:rotate(0deg) } 50% { transform:rotate(1deg) } }
@keyframes oi-sail { 0%,100% { transform:rotate(-8deg) scale(1) } 50% { transform:rotate(-5deg) scale(1.02) } }
@keyframes oi-dock { 0% { transform:translateY(0) } 50% { transform:translateY(-2px) } 100% { transform:translateY(1px) } }
@keyframes oi-banner { 0%,100% { transform:rotate(-3deg) } 50% { transform:rotate(3deg) } }
@keyframes oi-banner-fabric { 0%,100% { transform:rotate(0deg) } 50% { transform:rotate(8deg) } }
@keyframes oi-figure { 0% { transform:translateX(0) } 25% { transform:translateX(4px) translateY(-1px) } 50% { transform:translateX(8px) } 75% { transform:translateX(12px) translateY(-1px) } 100% { transform:translateX(16px) } }
@keyframes oi-ripple { 0% { transform:scaleX(1); opacity:0.6 } 50% { transform:scaleX(1.3); opacity:0.3 } 100% { transform:scaleX(0.9); opacity:0.5 } }

.scn-genoa-and-naples { background: linear-gradient(180deg, #87CEEB 0%, #B0D4E8 40%, #D4E8F0 70%, #E8D5A3 100%), radial-gradient(ellipse at 50% 0%, #FCE4B8 0%, transparent 70%); }
.scn-genoa-and-naples .sky-genoa { position:absolute; top:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #FCE4B8 0%, #E8D5A3 40%, #B0D4E8 100%); animation: gn-sky 16s ease-in-out infinite alternate; }
.scn-genoa-and-naples .palace { position:absolute; bottom:10%; left:20%; right:20%; height:60%; background: linear-gradient(180deg, #E8D5A3 0%, #C8B888 40%, #A89868 100%); border-radius: 10% 10% 4% 4% / 20% 20% 4% 4%; box-shadow: 0 8px 24px rgba(0,0,0,0.3); animation: gn-palace 8s ease-in-out infinite alternate; }
.scn-genoa-and-naples .marble-column { position:absolute; bottom:15%; left:28%; width:12px; height:55%; background: linear-gradient(180deg, #E8E0D0 0%, #C8C0B0 50%, #A8A090 100%); border-radius:10% 10% 0 0; box-shadow: 2px 0 4px rgba(0,0,0,0.1); animation: gn-column 6s ease-in-out infinite; }
.scn-genoa-and-naples .marble-column-b { position:absolute; bottom:15%; right:28%; width:12px; height:55%; background: linear-gradient(180deg, #E8E0D0 0%, #C8C0B0 50%, #A8A090 100%); border-radius:10% 10% 0 0; box-shadow: -2px 0 4px rgba(0,0,0,0.1); animation: gn-column-b 6s ease-in-out infinite 2s; }
.scn-genoa-and-naples .fountain-basin { position:absolute; bottom:12%; left:40%; right:40%; height:12%; background: linear-gradient(180deg, #8A9A8A 0%, #6A7A6A 100%); border-radius:50% 50% 10% 10% / 60% 60% 10% 10%; box-shadow: 0 4px 12px rgba(0,0,0,0.3); animation: gn-basin 10s ease-in-out infinite alternate; }
.scn-genoa-and-naples .fountain-jet { position:absolute; bottom:22%; left:48%; width:4%; height:18%; background: linear-gradient(180deg, rgba(255,255,255,0.6) 0%, rgba(200,220,240,0.3) 100%); border-radius:50% 50% 20% 20% / 60% 60% 20% 20%; transform-origin: bottom center; animation: gn-jet 3s ease-in-out infinite; }
.scn-genoa-and-naples .statue { position:absolute; bottom:22%; left:46%; width:8%; height:20%; background: linear-gradient(180deg, #D8D0C0 0%, #B8B0A0 50%, #989080 100%); border-radius:50% 50% 40% 40% / 30% 30% 40% 40%; animation: gn-statue 5s ease-in-out infinite; }
.scn-genoa-and-naples .shadow-arch { position:absolute; bottom:15%; left:22%; right:22%; height:10%; background: linear-gradient(180deg, rgba(0,0,0,0.1) 0%, transparent 100%); border-radius:40% 40% 0 0; animation: gn-arch 12s ease-in-out infinite alternate; }
@keyframes gn-sky { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes gn-palace { 0% { transform:translateY(0) } 50% { transform:translateY(-4px) } 100% { transform:translateY(2px) } }
@keyframes gn-column { 0%,100% { transform:scaleY(1) } 50% { transform:scaleY(1.02) } }
@keyframes gn-column-b { 0%,100% { transform:scaleY(1) } 50% { transform:scaleY(1.02) } }
@keyframes gn-basin { 0% { transform:scaleX(1) } 50% { transform:scaleX(1.03) } 100% { transform:scaleX(0.97) } }
@keyframes gn-jet { 0%,100% { transform:scaleY(1) rotate(0deg) } 25% { transform:scaleY(1.05) rotate(2deg) } 50% { transform:scaleY(1.1) rotate(0deg) } 75% { transform:scaleY(1.05) rotate(-2deg) } }
@keyframes gn-statue { 0%,100% { transform:translateY(0) } 50% { transform:translateY(-3px) } }
@keyframes gn-arch { 0% { opacity:0.3 } 50% { opacity:0.5 } 100% { opacity:0.2 } }

.scn-smyrna-second-visit { background: linear-gradient(180deg, #FCE4B8 0%, #E8D5A3 30%, #C8A868 60%, #A08050 100%), radial-gradient(ellipse at 50% 100%, #C2A56E 0%, transparent 70%); }
.scn-smyrna-second-visit .desert-sky { position:absolute; top:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #B0D4E8 0%, #E8D5A3 50%, #F5D08A 100%); animation: sv-sky 18s ease-in-out infinite alternate; }
.scn-smyrna-second-visit .dune { position:absolute; bottom:15%; left:0; right:30%; height:45%; background: linear-gradient(180deg, #C8A868 0%, #A08050 50%, #7A6030 100%); border-radius:0 50% 0 0 / 0 80% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.2); animation: sv-dune 14s ease-in-out infinite alternate; }
.scn-smyrna-second-visit .dune-b { position:absolute; bottom:10%; right:0; left:40%; height:50%; background: linear-gradient(180deg, #D4B078 0%, #B09060 50%, #8A6A40 100%); border-radius:50% 0 0 0 / 80% 0 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.15); animation: sv-dune-b 14s ease-in-out infinite alternate 4s; }
.scn-smyrna-second-visit .caravan-camel { position:absolute; bottom:28%; left:10%; width:70px; height:55px; transform-origin: bottom center; animation: sv-camel 8s ease-in-out infinite; }
.scn-smyrna-second-visit .caravan-camel::before { content:''; position:absolute; bottom:0; left:5px; width:60px; height:35px; background: linear-gradient(180deg, #7A5A3A 0%, #5A3A1A 100%); border-radius:40% 40% 30% 30% / 50% 50% 30% 30%; }
.scn-smyrna-second-visit .caravan-camel::after { content:''; position:absolute; bottom:20px; left:10px; width:8px; height:30px; background: linear-gradient(180deg, #5A3A1A 0%, #3A1A0A 100%); border-radius:30%; transform:rotate(10deg); }
.scn-smyrna-second-visit .caravan-camel-b { position:absolute; bottom:30%; left:28%; width:65px; height:50px; transform-origin: bottom center; animation: sv-camel-b 8s ease-in-out infinite 2s; }
.scn-smyrna-second-visit .caravan-camel-b::before { content:''; position:absolute; bottom:0; left:3px; width:55px; height:32px; background: linear-gradient(180deg, #8A6A4A 0%, #6A4A2A 100%); border-radius:40% 40% 30% 30% / 50% 50% 30% 30%; }
.scn-smyrna-second-visit .caravan-camel-b::after { content:''; position:absolute; bottom:18px; left:8px; width:7px; height:28px; background: linear-gradient(180deg, #6A4A2A 0%, #4A2A0A 100%); border-radius:30%; transform:rotate(8deg); }
.scn-smyrna-second-visit .merchant { position:absolute; bottom:32%; left:15%; width:12px; height:22px; background: linear-gradient(180deg, #3A2A1A 0%, #1A1A1A 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sv-merchant 4s ease-in-out infinite; }
.scn-smyrna-second-visit .dust-puff { position:absolute; bottom:25%; left:8%; width:20px; height:10px; background: rgba(200,168,104,0.4); border-radius:50%; filter: blur(3px); animation: sv-dust 6s ease-in-out infinite; }
.scn-smyrna-second-visit .dust-puff-b { position:absolute; bottom:22%; left:25%; width:25px; height:12px; background: rgba(200,168,104,0.3); border-radius:50%; filter: blur(4px); animation: sv-dust-b 6s ease-in-out infinite 3s; }
@keyframes sv-sky { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes sv-dune { 0% { transform:translateX(0) } 50% { transform:translateX(-4px) } 100% { transform:translateX(2px) } }
@keyframes sv-dune-b { 0% { transform:translateX(0) } 50% { transform:translateX(3px) } 100% { transform:translateX(-2px) } }
@keyframes sv-camel { 0% { transform:translateX(0) } 25% { transform:translateX(8px) translateY(-2px) } 50% { transform:translateX(16px) } 75% { transform:translateX(24px) translateY(-2px) } 100% { transform:translateX(32px) } }
@keyframes sv-camel-b { 0% { transform:translateX(0) } 25% { transform:translateX(7px) translateY(-1px) } 50% { transform:translateX(14px) } 75% { transform:translateX(21px) translateY(-1px) } 100% { transform:translateX(28px) } }
@keyframes sv-merchant { 0% { transform:translateX(0) } 25% { transform:translateX(5px) } 50% { transform:translateX(10px) } 75% { transform:translateX(15px) } 100% { transform:translateX(20px) } }
@keyframes sv-dust { 0% { transform:scale(1) translateX(0); opacity:0.5 } 50% { transform:scale(1.5) translateX(10px); opacity:0.2 } 100% { transform:scale(0.8) translateX(20px); opacity:0 } }
@keyframes sv-dust-b { 0% { transform:scale(1) translateX(0); opacity:0.4 } 50% { transform:scale(1.4) translateX(8px); opacity:0.15 } 100% { transform:scale(0.7) translateX(16px); opacity:0 } }

/* morning-prayer */
.scn-morning-prayer {
  background: linear-gradient(180deg, #ffe6d0 0%, #ffccb0 20%, #f0aa80 50%, #c88060 80%, #a05840 100%),
              radial-gradient(ellipse at 30% 20%, #ffddc0 0%, transparent 60%);
}
.scn-morning-prayer .sky-dawn {
  position: absolute; top: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #ffd0a0 0%, #ffb080 40%, #e89060 100%);
  animation: mp-sky 15s ease-in-out infinite alternate;
}
.scn-morning-prayer .cabin-wall {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 70%;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.6);
}
.scn-morning-prayer .window {
  position: absolute; top: 10%; left: 35%; width: 80px; height: 100px;
  background: radial-gradient(ellipse at 50% 30%, #ffd0a0 0%, #e8a070 60%, #a06040 100%);
  border: 6px solid #2a1a0a;
  border-radius: 10% 10% 8% 8%;
  box-shadow: inset 0 0 20px #ffd0a0, 0 0 60px 15px rgba(255,200,150,0.3);
}
.scn-morning-prayer .figure-kneeling {
  position: absolute; bottom: 16%; left: 50%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform: translateX(-50%) rotate(2deg);
  animation: mp-kneel 6s ease-in-out infinite;
}
.scn-morning-prayer .prayer-book {
  position: absolute; bottom: 14%; left: 48%; width: 16px; height: 24px;
  background: #8a6a3a;
  border-radius: 4%;
  transform: skewY(-5deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation: mp-book 6s ease-in-out infinite alternate;
}
.scn-morning-prayer .light-beam {
  position: absolute; top: 5%; left: 32%; width: 120px; height: 140px;
  background: linear-gradient(135deg, rgba(255,220,170,0.15) 0%, transparent 70%);
  clip-path: polygon(0 0, 100% 0, 60% 100%, 20% 100%);
  filter: blur(8px);
  animation: mp-beam 12s linear infinite alternate;
}
.scn-morning-prayer .dust-mote {
  position: absolute; top: 20%; left: 40%; width: 4px; height: 4px;
  background: rgba(255,230,180,0.6);
  border-radius: 50%;
  filter: blur(2px);
  animation: mp-dust 20s linear infinite;
}
@keyframes mp-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes mp-kneel {
  0% { transform: translateX(-50%) rotate(2deg) translateY(0); }
  50% { transform: translateX(-50%) rotate(0deg) translateY(-2px); }
  100% { transform: translateX(-50%) rotate(1deg) translateY(0); }
}
@keyframes mp-book {
  0% { transform: skewY(-5deg) rotate(-2deg); }
  50% { transform: skewY(-3deg) rotate(0deg); }
  100% { transform: skewY(-6deg) rotate(1deg); }
}
@keyframes mp-beam {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(5px) rotate(2deg); }
  100% { transform: translateX(-3px) rotate(-1deg); }
}
@keyframes mp-dust {
  0% { transform: translate(0, 0) scale(1); opacity: 0.4; }
  25% { transform: translate(30px, -20px) scale(1.5); opacity: 0.7; }
  50% { transform: translate(60px, -10px) scale(0.8); opacity: 0.3; }
  75% { transform: translate(90px, -35px) scale(1.2); opacity: 0.6; }
  100% { transform: translate(120px, -20px) scale(1); opacity: 0.4; }
}

/* released-and-mr-cox */
.scn-released-and-mr-cox {
  background: linear-gradient(180deg, #b8a088 0%, #806858 30%, #584838 60%, #302828 100%),
              radial-gradient(ellipse at 50% 30%, #c8b098 0%, transparent 60%);
}
.scn-released-and-mr-cox .sea-sky {
  position: absolute; top: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #ffcc99 0%, #dda87a 30%, #a07050 100%);
  animation: rm-sky 14s ease-in-out infinite alternate;
}
.scn-released-and-mr-cox .ship-deck {
  position: absolute; bottom: 20%; left: 10%; right: 10%; height: 30%;
  background: linear-gradient(180deg, #6a5040 0%, #4a3828 100%);
  border-radius: 0 0 20% 20%;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.5);
}
.scn-released-and-mr-cox .anchor-chain {
  position: absolute; bottom: 22%; left: 25%; width: 6px; height: 40px;
  background: #605040;
  border-radius: 2px;
  transform: rotate(15deg);
  animation: rm-chain 4s ease-in-out infinite;
}
.scn-released-and-mr-cox .sail-hoist {
  position: absolute; top: 5%; left: 30%; width: 80px; height: 60px;
  background: linear-gradient(135deg, #d0c0b0 0%, #a09080 100%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  filter: blur(2px);
  animation: rm-sail 8s ease-in-out infinite alternate;
}
.scn-released-and-mr-cox .figure-lowered {
  position: absolute; bottom: 25%; left: 40%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: center top;
  animation: rm-lower 5s ease-in-out infinite;
}
.scn-released-and-mr-cox .mr-cox {
  position: absolute; bottom: 23%; left: 58%; width: 28px; height: 48px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%);
  border-radius: 45% 55% 40% 40% / 55% 65% 35% 35%;
  animation: rm-cox 3s ease-in-out infinite alternate;
}
.scn-released-and-mr-cox .rope-coil {
  position: absolute; bottom: 20%; left: 65%; width: 30px; height: 10px;
  background: #a08060;
  border-radius: 50%;
  filter: blur(2px);
  animation: rm-rope 6s linear infinite;
}
.scn-released-and-mr-cox .dawn-horizon {
  position: absolute; bottom: 40%; left: 0; right: 0; height: 4px;
  background: linear-gradient(90deg, transparent 0%, #ffd0a0 50%, transparent 100%);
  filter: blur(3px);
  animation: rm-horizon 20s linear infinite alternate;
}
@keyframes rm-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes rm-chain {
  0% { transform: rotate(15deg) translateY(0); }
  50% { transform: rotate(18deg) translateY(-3px); }
  100% { transform: rotate(12deg) translateY(0); }
}
@keyframes rm-sail {
  0% { transform: scaleX(1) skewY(-5deg); }
  50% { transform: scaleX(1.05) skewY(0deg); }
  100% { transform: scaleX(0.95) skewY(5deg); }
}
@keyframes rm-lower {
  0% { transform: translateY(0) rotate(0deg); }
  30% { transform: translateY(-8px) rotate(-2deg); }
  60% { transform: translateY(4px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes rm-cox {
  0% { transform: translateX(0) rotate(-1deg); }
  50% { transform: translateX(6px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes rm-rope {
  0% { transform: scale(1); opacity: 0.6; }
  50% { transform: scale(1.2, 0.8); opacity: 1; }
  100% { transform: scale(1); opacity: 0.6; }
}
@keyframes rm-horizon {
  0% { opacity: 0.3; }
  50% { opacity: 0.7; }
  100% { opacity: 0.4; }
}

/* cox-intervenes */
.scn-cox-intervenes {
  background: linear-gradient(135deg, #4a3a2a 0%, #2a1a10 40%, #1a100a 100%),
              radial-gradient(circle at 30% 50%, #6a5a4a 0%, transparent 70%);
}
.scn-cox-intervenes .interior-back {
  position: absolute; top: 0; left: 0; right: 0; bottom: 0;
  background: radial-gradient(ellipse at 50% 40%, #3a2a1a 0%, #1a0a00 100%);
  animation: ci-back 10s ease-in-out infinite alternate;
}
.scn-cox-intervenes .captain-silhouette {
  position: absolute; bottom: 20%; left: 25%; width: 50px; height: 80px;
  background: linear-gradient(180deg, #0a0a0a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform: rotate(5deg);
  animation: ci-captain 4s ease-in-out infinite;
}
.scn-cox-intervenes .cox-arm {
  position: absolute; bottom: 30%; left: 55%; width: 8px; height: 40px;
  background: #3a2a1a;
  border-radius: 50% 50% 20% 20%;
  transform-origin: bottom center;
  animation: ci-arm 2s ease-in-out infinite alternate;
}
.scn-cox-intervenes .cox-body {
  position: absolute; bottom: 15%; left: 60%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 55% 55% 35% 35%;
  transform: rotate(-3deg);
  animation: ci-body 3s ease-in-out infinite alternate;
}
.scn-cox-intervenes .door-frame {
  position: absolute; top: 10%; right: 15%; width: 60px; height: 100px;
  border: 8px solid #2a1a0a;
  border-radius: 10% 10% 0 0;
  background: #1a1008;
  box-shadow: inset 0 0 20px rgba(255,200,100,0.1);
}
.scn-cox-intervenes .light-streak {
  position: absolute; top: 15%; left: 10%; width: 20px; height: 3px;
  background: #ddccaa;
  filter: blur(4px);
  animation: ci-light 7s linear infinite;
}
.scn-cox-intervenes .shadow-line {
  position: absolute; bottom: 0; left: 0; right: 0; height: 10%;
  background: linear-gradient(180deg, transparent 0%, #0a0500 100%);
}
@keyframes ci-back { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes ci-captain {
  0% { transform: rotate(5deg) translateY(0); }
  50% { transform: rotate(7deg) translateY(-2px); }
  100% { transform: rotate(3deg) translateY(0); }
}
@keyframes ci-arm {
  0% { transform: rotate(-20deg); }
  50% { transform: rotate(10deg); }
  100% { transform: rotate(-15deg); }
}
@keyframes ci-body {
  0% { transform: rotate(-3deg) scaleX(1); }
  50% { transform: rotate(0deg) scaleX(1.03); }
  100% { transform: rotate(-5deg) scaleX(0.97); }
}
@keyframes ci-light {
  0% { transform: translateX(0) scaleX(1); opacity: 0.3; }
  50% { transform: translateX(40px) scaleX(2); opacity: 0.1; }
  100% { transform: translateX(80px) scaleX(1); opacity: 0.4; }
}

/* canoe-escape-threat */
.scn-canoe-escape-threat {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a4e 25%, #1a2a3a 50%, #0a1a2a 100%),
              radial-gradient(ellipse at 50% 80%, #3a4a5e 0%, transparent 70%);
}
.scn-canoe-escape-threat .water-dark {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #0a1a2a 0%, #0a0a1a 100%);
  animation: cet-water 12s ease-in-out infinite alternate;
}
.scn-canoe-escape-threat .dawn-sky {
  position: absolute; top: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #3a2a2a 0%, #6a4a3a 40%, #b08060 70%, #d0a080 100%);
  animation: cet-sky 20s linear infinite alternate;
}
.scn-canoe-escape-threat .ship-hull {
  position: absolute; bottom: 40%; left: 60%; width: 100px; height: 80px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  clip-path: polygon(30% 0, 70% 0, 90% 100%, 10% 100%);
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.6);
}
.scn-canoe-escape-threat .tyrant-figure {
  position: absolute; bottom: 50%; left: 68%; width: 30px; height: 60px;
  background: #0a0a0a;
  border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%;
  transform: rotate(10deg);
  animation: cet-tyrant 3s ease-in-out infinite;
}
.scn-canoe-escape-threat .musket-barrel {
  position: absolute; bottom: 57%; left: 58%; width: 30px; height: 8px;
  background: #3a3a3a;
  border-radius: 2px 50% 50% 2px;
  transform-origin: right center;
  animation: cet-musket 1.5s ease-in-out infinite;
}
.scn-canoe-escape-threat .canoe-hull {
  position: absolute; bottom: 22%; left: 20%; width: 60px; height: 20px;
  background: #2a1a0a;
  border-radius: 40% 40% 20% 20%;
  box-shadow: inset 0 2px 4px rgba(0,0,0,0.5);
  animation: cet-canoe 4s ease-in-out infinite;
}
.scn-canoe-escape-threat .paddle-stroke {
  position: absolute; bottom: 26%; left: 32%; width: 6px; height: 30px;
  background: #3a2a1a;
  border-radius: 2px;
  transform-origin: bottom center;
  animation: cet-paddle 2s ease-in-out infinite;
}
.scn-canoe-escape-threat .spray {
  position: absolute; bottom: 25%; left: 28%; width: 20px; height: 10px;
  background: radial-gradient(circle, rgba(200,220,255,0.3) 0%, transparent 80%);
  filter: blur(3px);
  animation: cet-spray 1.5s ease-out infinite;
}
.scn-canoe-escape-threat .mist {
  position: absolute; bottom: 30%; left: 40%; right: 10%; height: 40%;
  background: linear-gradient(90deg, transparent 0%, rgba(100,120,140,0.15) 50%, transparent 100%);
  filter: blur(10px);
  animation: cet-mist 25s linear infinite alternate;
}
@keyframes cet-water { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(0.98); } }
@keyframes cet-sky { 0% { opacity: 0.5; } 50% { opacity: 0.8; } 100% { opacity: 0.6; } }
@keyframes cet-tyrant { 0% { transform: rotate(10deg) translateY(0); } 50% { transform: rotate(8deg) translateY(-3px); } 100% { transform: rotate(12deg) translateY(0); } }
@keyframes cet-musket { 0% { transform: rotate(-5deg); } 50% { transform: rotate(15deg); } 100% { transform: rotate(-5deg); } }
@keyframes cet-canoe { 0% { transform: translateX(0) rotate(-1deg); } 50% { transform: translateX(8px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes cet-paddle { 0% { transform: rotate(20deg); } 50% { transform: rotate(-20deg); } 100% { transform: rotate(20deg); } }
@keyframes cet-spray { 0% { transform: scale(0.5) translateY(0); opacity: 0.6; } 50% { transform: scale(1.5) translateY(-10px); opacity: 0.3; } 100% { transform: scale(0.5) translateY(0); opacity: 0; } }
@keyframes cet-mist { 0% { transform: translateX(0); } 50% { transform: translateX(15px); } 100% { transform: translateX(-20px); } }

/* wild-horse-escape: tense + sunlit */
.scn-wild-horse-escape {
  background: linear-gradient(180deg, #f9d87a 0%, #f0c060 30%, #d4a040 70%, #b08030 100%),
              radial-gradient(ellipse at 20% 30%, #ffe080 0%, transparent 70%);
}
.scn-wild-horse-escape .sky {
  position:absolute; inset:0 0 55% 0;
  background: linear-gradient(180deg, #fef0c0 0%, #f8d070 40%, transparent 100%);
  animation: wh-sky 12s ease-in-out infinite alternate;
}
.scn-wild-horse-escape .sun {
  position:absolute; top:10%; left:15%; width:40px; height:40px;
  background: radial-gradient(circle, #fff8e0 0%, #f8d070 60%, transparent 100%);
  border-radius:50%; box-shadow: 0 0 80px 30px #f8d070;
  animation: wh-sun 8s ease-in-out infinite;
}
.scn-wild-horse-escape .mountains {
  position:absolute; bottom:40%; left:0; right:0; height:35%;
  background: linear-gradient(180deg, #8a6a3a 0%, #6a4a2a 80%);
  border-radius: 60% 40% 0 0 / 70% 50% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,.3);
  animation: wh-mountains 20s ease-in-out infinite alternate;
}
.scn-wild-horse-escape .field {
  position:absolute; bottom:0; left:0; right:0; height:40%;
  background: linear-gradient(180deg, #b89050 0%, #9a7838 100%);
  border-radius: 20% 30% 0 0 / 40% 50% 0 0;
  animation: wh-field 6s ease-in-out infinite alternate;
}
.scn-wild-horse-escape .horse {
  position:absolute; bottom:18%; left:20%; width:60px; height:40px;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2210 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 2px 8px 12px rgba(0,0,0,.4);
  animation: wh-horse 1.2s ease-in-out infinite;
}
.scn-wild-horse-escape .dust-cloud {
  position:absolute; bottom:16%; left:10%; width:80px; height:20px;
  background: rgba(180,140,70,.4);
  border-radius: 50%; filter: blur(10px);
  animation: wh-dust 1.8s ease-in-out infinite;
}
.scn-wild-horse-escape .shadow {
  position:absolute; bottom:16%; left:20%; width:60px; height:8px;
  background: rgba(0,0,0,.3); border-radius: 50%;
  animation: wh-shadow 1.2s ease-in-out infinite;
}
.scn-wild-horse-escape .fence {
  position:absolute; bottom:22%; left:0; right:0; height:4px;
  background: #4a2a1a; box-shadow: 0 6px 0 #4a2a1a, 0 12px 0 #4a2a1a;
  animation: wh-fence 10s ease-in-out infinite alternate;
}
@keyframes wh-sky {
  0% { opacity:.8; transform:scaleY(1) }
  50% { opacity:1; transform:scaleY(1.05) }
  100% { opacity:.85; transform:scaleY(.95) }
}
@keyframes wh-sun {
  0% { transform:scale(1); box-shadow:0 0 60px 20px #f8d070 }
  50% { transform:scale(1.08); box-shadow:0 0 100px 40px #fce090 }
  100% { transform:scale(.95); box-shadow:0 0 50px 15px #f0c060 }
}
@keyframes wh-mountains {
  0% { transform:translateY(0) }
  50% { transform:translateY(-4px) scaleY(1.02) }
  100% { transform:translateY(0) }
}
@keyframes wh-field {
  0% { transform:translateY(0) }
  50% { transform:translateY(-3px) }
  100% { transform:translateY(2px) }
}
@keyframes wh-horse {
  0% { transform:translateX(0) translateY(0) rotate(-3deg) }
  25% { transform:translateX(8px) translateY(-8px) rotate(2deg) }
  50% { transform:translateX(16px) translateY(0) rotate(-2deg) }
  75% { transform:translateX(8px) translateY(-6px) rotate(3deg) }
  100% { transform:translateX(0) translateY(0) rotate(-1deg) }
}
@keyframes wh-dust {
  0% { transform:translateX(-10px) scale(1); opacity:.5 }
  50% { transform:translateX(20px) scale(1.3); opacity:.2 }
  100% { transform:translateX(-5px) scale(1); opacity:.4 }
}
@keyframes wh-shadow {
  0% { transform:translateX(0) scaleX(1); opacity:.3 }
  50% { transform:translateX(8px) scaleX(1.2); opacity:.2 }
  100% { transform:translateX(0) scaleX(1); opacity:.3 }
}
@keyframes wh-fence {
  0% { transform:translateY(0) }
  50% { transform:translateY(-2px) }
  100% { transform:translateY(1px) }
}

/* citadel-surrender: calm + sunlit */
.scn-citadel-surrender {
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 50%, #4a3a2a 100%),
              radial-gradient(ellipse at 50% 30%, #b0a060 0%, transparent 70%);
}
.scn-citadel-surrender .rock-wall {
  position:absolute; inset:20% 10% 20% 10%;
  background: linear-gradient(135deg, #7a6a4a 0%, #5a4a2a 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%;
  box-shadow: inset 0 0 40px rgba(0,0,0,.5), 0 0 30px rgba(0,0,0,.2);
  animation: cs-wall 20s ease-in-out infinite alternate;
}
.scn-citadel-surrender .arch {
  position:absolute; top:22%; left:25%; width:50%; height:55%;
  background: linear-gradient(180deg, #5a4a2a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 10% 10% / 60% 60% 20% 20%;
  box-shadow: inset 0 10px 30px rgba(0,0,0,.6);
}
.scn-citadel-surrender .floor {
  position:absolute; bottom:10%; left:10%; right:10%; height:20%;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a1a 100%);
  border-radius: 0 0 20% 20% / 0 0 40% 40%;
  box-shadow: inset 0 5px 20px rgba(0,0,0,.4);
  animation: cs-floor 15s ease-in-out infinite alternate;
}
.scn-citadel-surrender .light-beam {
  position:absolute; top:15%; left:38%; width:24%; height:60%;
  background: linear-gradient(180deg, rgba(255,240,200,.6) 0%, rgba(255,240,200,.1) 100%);
  border-radius: 50% 50% 0 0 / 40% 40% 0 0;
  filter: blur(8px);
  animation: cs-beam 9s ease-in-out infinite alternate;
}
.scn-citadel-surrender .debris {
  position:absolute; bottom:14%; left:30%; width:40px; height:20px;
  background: #4a3a2a; border-radius: 10% 20% 30% 10%;
  box-shadow: 20px 8px 0 #3a2a1a, -10px 4px 0 #5a4a2a;
  animation: cs-debris 12s ease-in-out infinite alternate;
}
.scn-citadel-surrender .figure {
  position:absolute; bottom:12%; left:44%; width:16px; height:38px;
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cs-figure 6s ease-in-out infinite;
}
.scn-citadel-surrender .vignette {
  position:absolute; inset:0; pointer-events:none;
  background: radial-gradient(ellipse at 50% 40%, transparent 40%, rgba(0,0,0,.5) 100%);
  animation: cs-vignette 14s ease-in-out infinite alternate;
}
@keyframes cs-wall {
  0% { transform:rotateX(0deg) }
  50% { transform:rotateX(2deg) scale(1.01) }
  100% { transform:rotateX(0deg) }
}
@keyframes cs-floor {
  0% { transform:translateY(0) }
  50% { transform:translateY(-3px) }
  100% { transform:translateY(0) }
}
@keyframes cs-beam {
  0% { opacity:.3; transform:scaleX(.9) }
  50% { opacity:.7; transform:scaleX(1.1) translateX(2px) }
  100% { opacity:.4; transform:scaleX(.95) }
}
@keyframes cs-debris {
  0% { transform:translate(0,0) rotate(0deg) }
  50% { transform:translate(3px,-2px) rotate(4deg) }
  100% { transform:translate(0,0) rotate(0deg) }
}
@keyframes cs-figure {
  0% { transform:translateY(0) rotate(0deg) }
  50% { transform:translateY(-2px) rotate(1deg) }
  100% { transform:translateY(0) rotate(0deg) }
}
@keyframes cs-vignette {
  0% { opacity:.8 }
  50% { opacity:.6 }
  100% { opacity:.7 }
}

/* blockade-basse-road: calm + sunlit */
.scn-blockade-basse-road {
  background: linear-gradient(180deg, #b0d8f0 0%, #80b8d8 40%, #6098b8 70%, #408098 100%),
              radial-gradient(ellipse at 30% 20%, #d0f0ff 0%, transparent 70%);
}
.scn-blockade-basse-road .sky {
  position:absolute; inset:0 0 45% 0;
  background: linear-gradient(180deg, #d0e8f8 0%, #a0c8e0 100%);
  animation: bb-sky 18s ease-in-out infinite alternate;
}
.scn-blockade-basse-road .sun {
  position:absolute; top:8%; right:20%; width:50px; height:50px;
  background: radial-gradient(circle, #fff8e0 0%, #f8d070 60%, transparent 100%);
  border-radius:50%; box-shadow: 0 0 100px 40px #f8d070;
  animation: bb-sun 10s ease-in-out infinite;
}
.scn-blockade-basse-road .ocean {
  position:absolute; bottom:0; left:0; right:0; height:45%;
  background: linear-gradient(180deg, #6098b8 0%, #306080 100%);
  border-radius: 0 0 30% 30% / 0 0 60% 60%;
  animation: bb-ocean 25s ease-in-out infinite alternate;
}
.scn-blockade-basse-road .ship-fore {
  position:absolute; bottom:25%; left:10%; width:80px; height:50px;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 40% 40% / 20% 20% 60% 60%;
  transform-origin: bottom center;
  box-shadow: 0 4px 12px rgba(0,0,0,.3);
  animation: bb-ship 8s ease-in-out infinite alternate;
}
.scn-blockade-basse-road .ship-mid {
  position:absolute; bottom:28%; left:50%; width:60px; height:35px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2010 100%);
  border-radius: 10% 10% 40% 40% / 20% 20% 60% 60%;
  transform-origin: bottom center;
  animation: bb-ship 9s ease-in-out infinite alternate;
  animation-delay: -2s;
}
.scn-blockade-basse-road .sail-fore {
  position:absolute; bottom:35%; left:15%; width:30px; height:40px;
  background: linear-gradient(180deg, #f0e8d0 0%, #c8b898 100%);
  border-radius: 0 30% 20% 0 / 0 50% 30% 0;
  transform-origin: bottom left;
  animation: bb-sail 6s ease-in-out infinite alternate;
}
.scn-blockade-basse-road .sail-mid {
  position:absolute; bottom:38%; left:53%; width:22px; height:32px;
  background: linear-gradient(180deg, #f0e8d0 0%, #c8b898 100%);
  border-radius: 0 30% 20% 0 / 0 50% 30% 0;
  transform-origin: bottom left;
  animation: bb-sail 7s ease-in-out infinite alternate;
  animation-delay: -1.5s;
}
.scn-blockade-basse-road .wave-set {
  position:absolute; bottom:0; left:0; right:0; height:20%;
  background: repeating-linear-gradient(90deg, transparent 0px, transparent 20px, rgba(255,255,255,.1) 20px, rgba(255,255,255,.1) 40px);
  animation: bb-waves 4s ease-in-out infinite;
}
@keyframes bb-sky {
  0% { opacity:.9; transform:scaleY(1) }
  50% { opacity:1; transform:scaleY(1.03) }
  100% { opacity:.85; transform:scaleY(.98) }
}
@keyframes bb-sun {
  0% { transform:scale(1) rotate(0deg) }
  50% { transform:scale(1.05) rotate(5deg) }
  100% { transform:scale(.95) rotate(0deg) }
}
@keyframes bb-ocean {
  0% { transform:translateY(0) }
  50% { transform:translateY(4px) }
  100% { transform:translateY(-2px) }
}
@keyframes bb-ship {
  0% { transform:translateX(0) rotate(-1deg) }
  50% { transform:translateX(6px) rotate(1deg) }
  100% { transform:translateX(-2px) rotate(-.5deg) }
}
@keyframes bb-sail {
  0% { transform:rotate(0deg) }
  50% { transform:rotate(6deg) scaleX(1.05) }
  100% { transform:rotate(-2deg) }
}
@keyframes bb-waves {
  0% { transform:translateX(0) }
  50% { transform:translateX(-20px) }
  100% { transform:translateX(0) }
}

/* voyage-to-spain: calm + sunlit */
.scn-voyage-to-spain {
  background: linear-gradient(180deg, #b8d8f0 0%, #88b8d8 40%, #6098b8 70%, #408098 100%),
              radial-gradient(ellipse at 70% 20%, #d8f0ff 0%, transparent 70%);
}
.scn-voyage-to-spain .sky {
  position:absolute; inset:0 0 50% 0;
  background: linear-gradient(180deg, #d8e8f8 0%, #a8c8e0 100%);
  animation: vs-sky 20s ease-in-out infinite alternate;
}
.scn-voyage-to-spain .sun {
  position:absolute; top:12%; left:25%; width:45px; height:45px;
  background: radial-gradient(circle, #fff8e0 0%, #f8d070 60%, transparent 100%);
  border-radius:50%; box-shadow: 0 0 90px 35px #f8d070;
  animation: vs-sun 12s ease-in-out infinite;
}
.scn-voyage-to-spain .sea {
  position:absolute; bottom:0; left:0; right:0; height:50%;
  background: linear-gradient(180deg, #6098b8 0%, #306080 100%);
  border-radius: 0 0 40% 40% / 0 0 60% 60%;
  animation: vs-sea 30s ease-in-out infinite alternate;
}
.scn-voyage-to-spain .ship {
  position:absolute; bottom:30%; left:45%; width:90px; height:45px;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 40% 40% / 20% 20% 60% 60%;
  transform-origin: bottom center;
  box-shadow: 0 4px 12px rgba(0,0,0,.3);
  animation: vs-ship 10s ease-in-out infinite alternate;
}
.scn-voyage-to-spain .sail-main {
  position:absolute; bottom:42%; left:48%; width:28px; height:48px;
  background: linear-gradient(180deg, #f0e8d0 0%, #c8b898 100%);
  border-radius: 0 30% 20% 0 / 0 50% 30% 0;
  transform-origin: bottom left;
  animation: vs-sail 8s ease-in-out infinite alternate;
}
.scn-voyage-to-spain .sail-jib {
  position:absolute; bottom:40%; left:38%; width:18px; height:36px;
  background: linear-gradient(180deg, #f0e8d0 0%, #c8b898 100%);
  border-radius: 30% 0 0 20% / 50% 0 0 30%;
  transform-origin: bottom right;
  animation: vs-sail 7s ease-in-out infinite alternate;
  animation-delay: -2s;
}
.scn-voyage-to-spain .wake {
  position:absolute; bottom:28%; left:38%; width:40px; height:8px;
  background: rgba(255,255,255,.15);
  border-radius: 50%; filter: blur(4px);
  animation: vs-wake 3s ease-in-out infinite;
}
.scn-voyage-to-spain .cloud-a {
  position:absolute; top:15%; left:10%; width:100px; height:20px;
  background: rgba(255,255,255,.4); border-radius: 50%; filter: blur(6px);
  animation: vs-cloud 40s linear infinite;
}
.scn-voyage-to-spain .cloud-b {
  position:absolute; top:25%; right:5%; width:70px; height:14px;
  background: rgba(255,255,255,.3); border-radius: 50%; filter: blur(5px);
  animation: vs-cloud 55s linear infinite reverse;
}
@keyframes vs-sky {
  0% { opacity:.9; transform:scaleY(1) }
  50% { opacity:1; transform:scaleY(1.02) }
  100% { opacity:.85; transform:scaleY(.98) }
}
@keyframes vs-sun {
  0% { transform:scale(1) rotate(0deg) }
  50% { transform:scale(1.04) rotate(3deg) }
  100% { transform:scale(.97) rotate(0deg) }
}
@keyframes vs-sea {
  0% { transform:translateY(0) }
  50% { transform:translateY(5px) }
  100% { transform:translateY(-3px) }
}
@keyframes vs-ship {
  0% { transform:translateX(0) rotate(-1deg) }
  50% { transform:translateX(4px) rotate(1deg) }
  100% { transform:translateX(-2px) rotate(-.5deg) }
}
@keyframes vs-sail {
  0% { transform:rotate(0deg) }
  50% { transform:rotate(5deg) scaleX(1.05) }
  100% { transform:rotate(-2deg) }
}
@keyframes vs-wake {
  0% { transform:scaleX(1); opacity:.3 }
  50% { transform:scaleX(1.5); opacity:.1 }
  100% { transform:scaleX(1); opacity:.3 }
}
@keyframes vs-cloud {
  0% { transform:translateX(-20px) }
  100% { transform:translateX(120vw) }
}

/* scene: namur-appointment */
.scn-namur-appointment {
  background: linear-gradient(180deg, #f5e6c8 0%, #d4b88a 50%, #b89a6a 100%),
              radial-gradient(ellipse at 30% 20%, rgba(255,255,220,0.4) 0%, transparent 60%);
}
.scn-namur-appointment .room {
  position: absolute; inset: 0; background: linear-gradient(135deg, #c8ab7e 0%, #a8895e 100%);
  box-shadow: inset 0 0 60px rgba(80,50,20,0.3);
}
.scn-namur-appointment .window {
  position: absolute; top: 8%; left: 60%; width: 25%; height: 35%;
  background: linear-gradient(180deg, #87ceeb 0%, #6ba5d9 40%, #3a6eaa 100%);
  border-radius: 4px; box-shadow: inset 0 0 20px rgba(0,0,0,0.2);
  animation: na-window 12s ease-in-out infinite alternate;
}
.scn-namur-appointment .sea {
  position: absolute; top: 28%; left: 60%; width: 25%; height: 15%;
  background: linear-gradient(180deg, #4a7aa8 0%, #2a5a7a 100%);
  border-radius: 0 0 4px 4px; animation: na-sea 8s ease-in-out infinite;
}
.scn-namur-appointment .table {
  position: absolute; bottom: 18%; left: 20%; width: 30%; height: 5%;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%);
  border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  transform: skewX(-3deg);
}
.scn-namur-appointment .chair {
  position: absolute; bottom: 12%; left: 22%; width: 12%; height: 16%;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2a0a 100%);
  border-radius: 20% 20% 4% 4%; box-shadow: 2px 4px 6px rgba(0,0,0,0.5);
  animation: na-chair 5s ease-in-out infinite alternate;
}
.scn-namur-appointment .figure {
  position: absolute; bottom: 18%; left: 30%; width: 8%; height: 18%;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: na-figure 6s ease-in-out infinite;
}
.scn-namur-appointment .lantern {
  position: absolute; bottom: 26%; left: 45%; width: 5%; height: 6%;
  background: radial-gradient(circle, #ffe680 0%, #d4a040 70%);
  border-radius: 50%; box-shadow: 0 0 30px 10px #ffe680, 0 0 60px 20px rgba(255,230,128,0.3);
  animation: na-lantern 3s ease-in-out infinite alternate;
}
@keyframes na-window {
  0% { opacity: 0.7; transform: scaleX(1); }
  50% { opacity: 1; transform: scaleX(1.02) translateY(-2px); }
  100% { opacity: 0.8; transform: scaleX(0.98); }
}
@keyframes na-sea {
  0% { transform: translateY(0); }
  50% { transform: translateY(3px); }
  100% { transform: translateY(0); }
}
@keyframes na-chair {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes na-figure {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(4px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes na-lantern {
  0% { box-shadow: 0 0 20px 5px #ffe680, 0 0 40px 10px rgba(255,230,128,0.2); opacity: 0.8; }
  50% { box-shadow: 0 0 40px 12px #ffd060, 0 0 80px 25px rgba(255,208,96,0.4); opacity: 1; }
  100% { box-shadow: 0 0 25px 8px #ffe680, 0 0 50px 15px rgba(255,230,128,0.3); opacity: 0.9; }
}

/* scene: fleet-assembled */
.scn-fleet-assembled {
  background: linear-gradient(180deg, #87ceeb 0%, #f0e6d0 40%, #add8e6 100%),
              radial-gradient(ellipse at 50% 0%, rgba(255,255,200,0.3) 0%, transparent 70%);
}
.scn-fleet-assembled .sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #6eb8e0 0%, #b0d4f0 70%, transparent 100%);
  animation: fa-sky 20s ease-in-out infinite alternate;
}
.scn-fleet-assembled .sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #3a7a9a 0%, #1a4a6a 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.5);
  animation: fa-sea 6s ease-in-out infinite;
}
.scn-fleet-assembled .ship-fore {
  position: absolute; bottom: 20%; left: 10%; width: 20%; height: 12%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%);
  border-radius: 10% 10% 0 0; box-shadow: 2px 4px 8px rgba(0,0,0,0.6);
  animation: fa-ship-fore 4s ease-in-out infinite;
}
.scn-fleet-assembled .ship-mid {
  position: absolute; bottom: 22%; left: 35%; width: 18%; height: 10%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 8% 8% 0 0; box-shadow: 1px 3px 6px rgba(0,0,0,0.5);
  animation: fa-ship-mid 5s ease-in-out infinite 0.5s;
}
.scn-fleet-assembled .ship-back {
  position: absolute; bottom: 24%; left: 60%; width: 15%; height: 8%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 6% 6% 0 0; box-shadow: 1px 2px 4px rgba(0,0,0,0.4);
  animation: fa-ship-back 6s ease-in-out infinite 1s;
}
.scn-fleet-assembled .sail-fore {
  position: absolute; bottom: 30%; left: 12%; width: 8%; height: 14%;
  background: radial-gradient(ellipse at 50% 100%, #e8dcc8 0%, #c0b098 100%);
  border-radius: 30% 30% 10% 10%; transform: skewX(-5deg);
  animation: fa-sail-fore 3s ease-in-out infinite alternate;
}
.scn-fleet-assembled .sail-mid {
  position: absolute; bottom: 31%; left: 38%; width: 6%; height: 12%;
  background: radial-gradient(ellipse at 50% 100%, #d8ccb8 0%, #b0a090 100%);
  border-radius: 30% 30% 10% 10%; transform: skewX(5deg);
  animation: fa-sail-mid 3.5s ease-in-out infinite alternate 0.5s;
}
.scn-fleet-assembled .flag {
  position: absolute; bottom: 28%; left: 16%; width: 4%; height: 6%;
  background: linear-gradient(90deg, #8a4040 0%, #c06050 50%, #8a4040 100%);
  border-radius: 0 40% 40% 0; transform-origin: left bottom;
  animation: fa-flag 2s ease-in-out infinite alternate;
}
@keyframes fa-sky {
  0% { opacity: 0.6; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes fa-sea {
  0% { transform: translateY(0); }
  50% { transform: translateY(4px); }
  100% { transform: translateY(0); }
}
@keyframes fa-ship-fore {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(3px) rotate(2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes fa-ship-mid {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(-2px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes fa-ship-back {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(2px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes fa-sail-fore {
  0% { transform: scaleX(1) translateY(0); }
  50% { transform: scaleX(1.05) translateY(-2px); }
  100% { transform: scaleX(0.95) translateY(0); }
}
@keyframes fa-sail-mid {
  0% { transform: scaleX(1) translateY(0); }
  50% { transform: scaleX(1.03) translateY(-1px); }
  100% { transform: scaleX(0.97) translateY(0); }
}
@keyframes fa-flag {
  0% { transform: rotate(-5deg); }
  50% { transform: rotate(8deg); }
  100% { transform: rotate(-5deg); }
}

/* scene: driven-to-teneriffe */
.scn-driven-to-teneriffe {
  background: linear-gradient(180deg, #b0d4f0 0%, #e0f0ff 30%, #f5f0e0 70%, #d0c8b0 100%),
              radial-gradient(ellipse at 50% 0%, rgba(255,255,240,0.4) 0%, transparent 60%);
}
.scn-driven-to-teneriffe .sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #8ab8d8 0%, #d0e4f0 60%, transparent 100%);
  animation: dt-sky 18s ease-in-out infinite alternate;
}
.scn-driven-to-teneriffe .sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #5a8aa8 0%, #2a5a7a 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.4);
  animation: dt-sea 8s ease-in-out infinite;
}
.scn-driven-to-teneriffe .peak {
  position: absolute; bottom: 30%; left: 50%; width: 12%; height: 50%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #d0c0a0 0%, #a09070 40%, #706050 100%);
  clip-path: polygon(20% 100%, 35% 0%, 65% 0%, 80% 100%);
  box-shadow: 0 0 30px rgba(0,0,0,0.3);
  animation: dt-peak 20s ease-in-out infinite alternate;
}
.scn-driven-to-teneriffe .snow {
  position: absolute; bottom: 72%; left: 50%; width: 10%; height: 8%;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 100%, #ffffff 0%, #e8e0d0 60%, transparent 100%);
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  animation: dt-snow 12s ease-in-out infinite alternate;
}
.scn-driven-to-teneriffe .ship {
  position: absolute; bottom: 26%; left: 30%; width: 14%; height: 6%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 0 0; box-shadow: 1px 2px 6px rgba(0,0,0,0.6);
  animation: dt-ship 8s ease-in-out infinite;
}
.scn-driven-to-teneriffe .cloud-a {
  position: absolute; top: 12%; left: 15%; width: 18%; height: 6%;
  background: radial-gradient(ellipse, rgba(255,255,255,0.6) 0%, transparent 70%);
  filter: blur(4px); animation: dt-cloud-a 40s linear infinite;
}
.scn-driven-to-teneriffe .cloud-b {
  position: absolute; top: 20%; right: 10%; width: 14%; height: 4%;
  background: radial-gradient(ellipse, rgba(255,255,255,0.5) 0%, transparent 70%);
  filter: blur(3px); animation: dt-cloud-b 50s linear infinite reverse;
}
@keyframes dt-sky {
  0% { opacity: 0.6; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes dt-sea {
  0% { transform: translateY(0); }
  50% { transform: translateY(4px); }
  100% { transform: translateY(0); }
}
@keyframes dt-peak {
  0% { transform: translateX(-50%) translateY(0); }
  50% { transform: translateX(-50%) translateY(-4px); }
  100% { transform: translateX(-50%) translateY(0); }
}
@keyframes dt-snow {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes dt-ship {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(2px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes dt-cloud-a {
  0% { transform: translateX(-20px); }
  100% { transform: translateX(120vw); }
}
@keyframes dt-cloud-b {
  0% { transform: translateX(0); }
  100% { transform: translateX(-100vw); }
}

/* scene: joined-by-wolfe */
.scn-joined-by-wolfe {
  background: linear-gradient(180deg, #f5e0c0 0%, #d4b88a 50%, #c8a070 100%),
              radial-gradient(ellipse at 30% 20%, rgba(255,200,100,0.5) 0%, transparent 60%);
}
.scn-joined-by-wolfe .cabin {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #c8a87a 0%, #a88860 100%);
  box-shadow: inset 0 0 80px rgba(60,40,20,0.4);
}
.scn-joined-by-wolfe .table {
  position: absolute; bottom: 20%; left: 20%; width: 40%; height: 4%;
  background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%);
  border-radius: 2px; box-shadow: 0 6px 12px rgba(0,0,0,0.5);
}
.scn-joined-by-wolfe .map {
  position: absolute; bottom: 24%; left: 22%; width: 30%; height: 18%;
  background: linear-gradient(180deg, #e8dcc8 0%, #c0b098 100%);
  border-radius: 4px; box-shadow: 0 2px 8px rgba(0,0,0,0.3);
  transform: rotate(2deg); animation: jb-map 8s ease-in-out infinite alternate;
}
.scn-joined-by-wolfe .candle {
  position: absolute; bottom: 28%; left: 50%; width: 2%; height: 8%;
  background: linear-gradient(180deg, #f0e0c0 0%, #d4b88a 100%);
  border-radius: 10% 10% 40% 40%; box-shadow: 0 0 20px 8px #ffd060;
  animation: jb-candle 4s ease-in-out infinite;
}
.scn-joined-by-wolfe .figure-wolfe {
  position: absolute; bottom: 18%; left: 30%; width: 10%; height: 20%;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: jb-wolfe 6s ease-in-out infinite;
}
.scn-joined-by-wolfe .figure-officer {
  position: absolute; bottom: 18%; left: 55%; width: 9%; height: 19%;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: jb-officer 6.5s ease-in-out infinite 0.5s;
}
.scn-joined-by-wolfe .window {
  position: absolute; top: 10%; right: 8%; width: 20%; height: 30%;
  background: linear-gradient(180deg, #ffc080 0%, #e8a060 100%);
  border-radius: 4px; box-shadow: inset 0 0 10px rgba(0,0,0,0.3);
  animation: jb-window 12s ease-in-out infinite alternate;
}
@keyframes jb-map {
  0% { transform: rotate(2deg) translateY(0); }
  50% { transform: rotate(3deg) translateY(-2px); }
  100% { transform: rotate(1deg) translateY(0); }
}
@keyframes jb-candle {
  0% { transform: scaleY(1) translateY(0); opacity: 0.7; }
  50% { transform: scaleY(1.05) translateY(-1px); opacity: 1; }
  100% { transform: scaleY(0.95) translateY(0); opacity: 0.8; }
}
@keyframes jb-wolfe {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(4px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes jb-officer {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(-3px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes jb-window {
  0% { opacity: 0.6; transform: scaleX(1); }
  50% { opacity: 1; transform: scaleX(1.02); }
  100% { opacity: 0.7; transform: scaleX(0.98); }
}

/* rich-soil-along-way */
.scn-rich-soil-along-way { background: linear-gradient(180deg, #f7e8c8 0%, #b8a080 40%, #6a8a50 100%), radial-gradient(ellipse at 50% 100%, #4a6a2a 0%, transparent 60%); }
.scn-rich-soil-along-way .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #b8d0e8 0%, #e8d8b0 100%); animation: rs-sky 12s ease-in-out infinite; }
.scn-rich-soil-along-way .sun { position:absolute; top:10%; left:60%; width:60px; height:60px; background: radial-gradient(circle, #fff0c0 0%, #f0c850 60%, transparent 70%); border-radius:50%; box-shadow: 0 0 80px 30px #f0c850, 0 0 120px 50px rgba(240,200,80,.3); animation: rs-sun 8s ease-in-out infinite alternate; }
.scn-rich-soil-along-way .cloud-a { position:absolute; top:18%; left:-20%; width:120px; height:30px; background: rgba(220,230,250,.9); border-radius:50%; filter: blur(8px); animation: rs-cloud 40s linear infinite; }
.scn-rich-soil-along-way .ground { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #6a8a50 0%, #3a5a2a 100%); border-radius: 30% 70% 0 0 / 60% 80% 0 0; }
.scn-rich-soil-along-way .path { position:absolute; bottom:20%; left:10%; width:30%; height:18px; background: linear-gradient(90deg, #c8b080 0%, #a88860 40%, #c8b080 100%); border-radius:30%; transform: perspective(40px) rotateX(30deg); animation: rs-path 5s ease-in-out infinite; }
.scn-rich-soil-along-way .tree { position:absolute; bottom:35%; left:25%; width:16px; height:60px; background: linear-gradient(180deg, #5a3a1a 0%, #3a2210 100%); border-radius: 20% 20% 10% 10%; animation: rs-tree 7s ease-in-out infinite alternate; }
.scn-rich-soil-along-way .figure { position:absolute; bottom:28%; left:15%; width:12px; height:30px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0e04 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; animation: rs-walk 4s ease-in-out infinite; }
@keyframes rs-sky { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes rs-sun { 0% { transform: scale(1); opacity:.9 } 50% { transform: scale(1.08); opacity:1 } 100% { transform: scale(.96); opacity:.88 } }
@keyframes rs-cloud { 0% { transform: translateX(-120px) } 100% { transform: translateX(100vw) } }
@keyframes rs-path { 0%,100% { opacity:1 } 50% { opacity:.7 } }
@keyframes rs-tree { 0% { transform: rotate(-1deg) } 50% { transform: rotate(2deg) translateY(2px) } 100% { transform: rotate(-1deg) } }
@keyframes rs-walk { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(8px) rotate(2deg) } 50% { transform: translateX(16px) rotate(0) } 75% { transform: translateX(24px) rotate(-2deg) } 100% { transform: translateX(32px) rotate(0) } }

/* first-sight-of-sea */
.scn-first-sight-of-sea { background: linear-gradient(180deg, #1a2a4a 0%, #0a1a2a 40%, #102030 100%), radial-gradient(ellipse at 50% 0%, #305080 0%, transparent 70%); }
.scn-first-sight-of-sea .sky { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #c8d8e8 0%, #e8e8d0 60%, #d8c8a0 100%); animation: fs-sky 10s ease-in-out infinite alternate; }
.scn-first-sight-of-sea .sun-glare { position:absolute; top:10%; left:75%; width:50px; height:50px; background: radial-gradient(circle, #fff8e0 0%, #f0d060 60%, transparent 80%); border-radius:50%; box-shadow: 0 0 100px 40px #f0d060; animation: fs-sun 6s ease-in-out infinite alternate; }
.scn-first-sight-of-sea .ocean { position:absolute; bottom:0; left:0; right:0; height:65%; background: linear-gradient(180deg, #1a3a4a 0%, #0a1a22 100%); border-radius: 60% 40% 0 0 / 30% 20% 0 0; animation: fs-ocean 8s ease-in-out infinite alternate; }
.scn-first-sight-of-sea .ship-hull { position:absolute; bottom:45%; left:30%; width:120px; height:30px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a04 100%); border-radius: 20% 30% 50% 50% / 50% 40% 60% 60%; transform: rotate(-5deg); animation: fs-ship 4s ease-in-out infinite; }
.scn-first-sight-of-sea .sail { position:absolute; bottom:60%; left:38%; width:8px; height:70px; background: linear-gradient(180deg, #e8e0d0 0%, #b0a898 100%); border-radius: 30% 30% 20% 20%; transform: rotate(4deg); animation: fs-sail 5s ease-in-out infinite; }
.scn-first-sight-of-sea .wave1 { position:absolute; bottom:40%; left:0; width:100%; height:12px; background: linear-gradient(90deg, transparent 0%, #2a4a5a 30%, #3a5a6a 50%, #2a4a5a 70%, transparent 100%); filter: blur(3px); animation: fs-wave1 6s ease-in-out infinite; }
.scn-first-sight-of-sea .wave2 { position:absolute; bottom:35%; left:0; width:100%; height:10px; background: linear-gradient(90deg, transparent 0%, #1a3a4a 20%, #2a4a5a 50%, #1a3a4a 80%, transparent 100%); filter: blur(4px); animation: fs-wave2 8s ease-in-out infinite reverse; }
.scn-first-sight-of-sea .crew-figure { position:absolute; bottom:58%; left:42%; width:10px; height:26px; background: #1a0e08; border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; animation: fs-figure 3s ease-in-out infinite; }
@keyframes fs-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.75 } }
@keyframes fs-sun { 0% { box-shadow: 0 0 80px 30px #f0d060; transform: scale(1) } 50% { box-shadow: 0 0 120px 40px #f0d060; transform: scale(1.1) } 100% { box-shadow: 0 0 80px 30px #f0d060; transform: scale(.95) } }
@keyframes fs-ocean { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(0) } }
@keyframes fs-ship { 0% { transform: rotate(-5deg) translate(0,0) } 25% { transform: rotate(-4deg) translate(2px,-2px) } 50% { transform: rotate(-6deg) translate(-2px,0) } 75% { transform: rotate(-4deg) translate(2px,2px) } 100% { transform: rotate(-5deg) translate(0,0) } }
@keyframes fs-sail { 0%,100% { transform: rotate(4deg) } 50% { transform: rotate(6deg) translateY(-3px) } }
@keyframes fs-wave1 { 0% { transform: translateX(0) } 50% { transform: translateX(-20px) } 100% { transform: translateX(0) } }
@keyframes fs-wave2 { 0% { transform: translateX(0) } 50% { transform: translateX(20px) } 100% { transform: translateX(0) } }
@keyframes fs-figure { 0% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-3px) rotate(5deg) } 50% { transform: translateY(0) rotate(0) } 75% { transform: translateY(3px) rotate(-5deg) } 100% { transform: translateY(0) rotate(0) } }

/* white-men-as-spirits */
.scn-white-men-as-spirits { background: linear-gradient(180deg, #1a1a2a 0%, #2a1a1a 50%, #3a2a1a 100%), radial-gradient(ellipse at 50% 0%, #4a3a2a 0%, transparent 70%); }
.scn-white-men-as-spirits .wall-bg { position:absolute; inset:0 10%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1a0a 100%); border-radius: 10% 10% 0 0; }
.scn-white-men-as-spirits .floor { position:absolute; bottom:0; left:10%; right:10%; height:20%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0e04 100%); border-radius: 50% 50% 0 0 / 20% 20% 0 0; }
.scn-white-men-as-spirits .window-light { position:absolute; top:15%; left:50%; width:80px; height:100px; background: radial-gradient(ellipse, #fff8e0 0%, #f0e0a0 60%, transparent 80%); transform: translateX(-50%); border-radius: 10% 10% 0 0; animation: wm-light 3s ease-in-out infinite alternate; }
.scn-white-men-as-spirits .spirit-1 { position:absolute; bottom:25%; left:20%; width:14px; height:40px; background: linear-gradient(180deg, #e0d8c8 0%, #c8c0b0 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform: rotate(10deg); animation: wm-spirit1 5s ease-in-out infinite; }
.scn-white-men-as-spirits .spirit-2 { position:absolute; bottom:22%; right:25%; width:16px; height:44px; background: linear-gradient(180deg, #e0d8c8 0%, #c8c0b0 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform: rotate(-8deg); animation: wm-spirit2 6s ease-in-out infinite; }
.scn-white-men-as-spirits .shadow-1 { position:absolute; bottom:0; left:15%; width:30%; height:30%; background: radial-gradient(ellipse, #0a0a0a 0%, transparent 70%); animation: wm-shadow1 8s ease-in-out infinite alternate; }
.scn-white-men-as-spirits .shadow-2 { position:absolute; bottom:0; right:20%; width:25%; height:25%; background: radial-gradient(ellipse, #0a0a0a 0%, transparent 70%); animation: wm-shadow2 10s ease-in-out infinite alternate; }
@keyframes wm-light { 0% { opacity:.7; transform: translateX(-50%) scale(1) } 50% { opacity:1; transform: translateX(-50%) scale(1.05) } 100% { opacity:.8; transform: translateX(-50%) scale(.98) } }
@keyframes wm-spirit1 { 0% { transform: rotate(10deg) translateY(0) } 25% { transform: rotate(12deg) translateY(-4px) } 50% { transform: rotate(8deg) translateY(0) } 75% { transform: rotate(11deg) translateY(2px) } 100% { transform: rotate(10deg) translateY(0) } }
@keyframes wm-spirit2 { 0% { transform: rotate(-8deg) translateY(0) } 30% { transform: rotate(-10deg) translateY(-5px) } 60% { transform: rotate(-6deg) translateY(0) } 100% { transform: rotate(-8deg) translateY(2px) } }
@keyframes wm-shadow1 { 0% { opacity:0 } 50% { opacity:.6 } 100% { opacity:.3 } }
@keyframes wm-shadow2 { 0% { opacity:.4 } 50% { opacity:0 } 100% { opacity:.6 } }

/* furnace-and-chains */
.scn-furnace-and-chains { background: linear-gradient(180deg, #1a0a0a 0%, #2a1a0a 50%, #0a0a0a 100%), radial-gradient(ellipse at 30% 60%, #5a3a1a 0%, transparent 70%); }
.scn-furnace-and-chains .hold-wall { position:absolute; inset:5% 10% 10% 10%; background: linear-gradient(90deg, #2a1a0a 0%, #3a2a1a 50%, #2a1a0a 100%); border-radius: 5%; }
.scn-furnace-and-chains .furnace { position:absolute; bottom:40%; left:20%; width:80px; height:60px; background: radial-gradient(circle at 50% 30%, #e8a060 0%, #a0461a 60%, #3a1a0a 100%); border-radius: 20% 20% 40% 40%; animation: fc-furnace 4s ease-in-out infinite alternate; }
.scn-furnace-and-chains .furnace-glow { position:absolute; bottom:45%; left:22%; width:100px; height:80px; background: radial-gradient(circle, #f0c080 0%, #b06030 40%, transparent 70%); filter: blur(8px); animation: fc-glow 3s ease-in-out infinite alternate; }
.scn-furnace-and-chains .chain-left { position:absolute; bottom:30%; left:35%; width:4px; height:60px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 10%; transform: rotate(5deg); animation: fc-chain1 2s ease-in-out infinite; }
.scn-furnace-and-chains .chain-right { position:absolute; bottom:30%; right:35%; width:4px; height:60px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 10%; transform: rotate(-5deg); animation: fc-chain2 2.5s ease-in-out infinite reverse; }
.scn-furnace-and-chains .fig-one { position:absolute; bottom:15%; left:30%; width:12px; height:30px; background: linear-gradient(180deg, #1a0e04 0%, #0a0602 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform: rotate(3deg); animation: fc-fig1 6s ease-in-out infinite; }
.scn-furnace-and-chains .fig-two { position:absolute; bottom:12%; right:28%; width:12px; height:28px; background: linear-gradient(180deg, #1a0e04 0%, #0a0602 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform: rotate(-2deg); animation: fc-fig2 7s ease-in-out infinite; }
.scn-furnace-and-chains .floor { position:absolute; bottom:0; left:10%; right:10%; height:10%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0e04 100%); border-radius: 40% 60% 0 0 / 30% 40% 0 0; }
@keyframes fc-furnace { 0% { opacity:.8 } 50% { opacity:1; transform: scale(1.02) } 100% { opacity:.75 } }
@keyframes fc-glow { 0% { opacity:.6; transform: scale(1) } 50% { opacity:1; transform: scale(1.1) } 100% { opacity:.7; transform: scale(.95) } }
@keyframes fc-chain1 { 0% { transform: rotate(5deg) translateY(0) } 25% { transform: rotate(7deg) translateY(3px) } 50% { transform: rotate(3deg) translateY(0) } 75% { transform: rotate(6deg) translateY(-2px) } 100% { transform: rotate(5deg) translateY(0) } }
@keyframes fc-chain2 { 0% { transform: rotate(-5deg) translateY(0) } 25% { transform: rotate(-7deg) translateY(-3px) } 50% { transform: rotate(-3deg) translateY(0) } 75% { transform: rotate(-6deg) translateY(2px) } 100% { transform: rotate(-5deg) translateY(0) } }
@keyframes fc-fig1 { 0% { transform: rotate(3deg) translateY(0) } 20% { transform: rotate(1deg) translateY(2px) } 40% { transform: rotate(4deg) translateY(0) } 60% { transform: rotate(2deg) translateY(-3px) } 80% { transform: rotate(3deg) translateY(2px) } 100% { transform: rotate(3deg) translateY(0) } }
@keyframes fc-fig2 { 0% { transform: rotate(-2deg) translateY(0) } 30% { transform: rotate(-4deg) translateY(-2px) } 60% { transform: rotate(-1deg) translateY(4px) } 100% { transform: rotate(-2deg) translateY(0) } }

/* Scene 1: indian-queen-south */
.scn-indian-queen-south {
  background: 
    linear-gradient(180deg, #4a5a6a 0%, #3a4a5a 40%, #2a3a4a 100%),
    radial-gradient(ellipse at 50% 20%, #5a6a7a 0%, transparent 60%);
}
.scn-indian-queen-south .sky-overcast {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #6a7a8a 0%, #3a4a5a 100%);
  animation: iq-sky 12s ease-in-out infinite alternate;
}
.scn-indian-queen-south .sea-deep {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 50%, #0a1a2a 100%);
  animation: iq-sea 8s ease-in-out infinite alternate;
}
.scn-indian-queen-south .ship-hull {
  position: absolute; bottom: 30%; left: 35%; width: 30%; height: 12%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%);
  border-radius: 0 0 40% 40% / 0 0 60% 60%;
  box-shadow: 0 4px 12px rgba(0,0,0,.5);
  animation: iq-heave 6s ease-in-out infinite;
}
.scn-indian-queen-south .sail-main {
  position: absolute; bottom: 42%; left: 42%; width: 16%; height: 20%;
  background: linear-gradient(135deg, #8a7a6a 0%, #6a5a4a 100%);
  clip-path: polygon(0% 100%, 50% 0%, 100% 100%);
  animation: iq-sway 9s ease-in-out infinite alternate;
}
.scn-indian-queen-south .sail-jib {
  position: absolute; bottom: 38%; left: 28%; width: 10%; height: 16%;
  background: linear-gradient(135deg, #9a8a7a 0%, #7a6a5a 100%);
  clip-path: polygon(0% 100%, 100% 0%, 100% 100%);
  animation: iq-sway 9s ease-in-out infinite alternate-reverse;
  transform-origin: bottom left;
}
.scn-indian-queen-south .spray-left {
  position: absolute; bottom: 30%; left: 25%; width: 8%; height: 6%;
  background: radial-gradient(ellipse at 50% 0%, rgba(180,200,210,.5) 0%, transparent 100%);
  filter: blur(3px);
  animation: iq-spray 4s ease-in-out infinite;
}
.scn-indian-queen-south .spray-right {
  position: absolute; bottom: 28%; right: 28%; width: 8%; height: 6%;
  background: radial-gradient(ellipse at 50% 0%, rgba(180,200,210,.4) 0%, transparent 100%);
  filter: blur(3px);
  animation: iq-spray 4s ease-in-out infinite 2s;
}
.scn-indian-queen-south .horizon-fog {
  position: absolute; bottom: 45%; left: 0; right: 0; height: 10%;
  background: linear-gradient(180deg, rgba(120,140,160,.3) 0%, transparent 100%);
  filter: blur(8px);
  animation: iq-fog 20s ease-in-out infinite alternate;
}
@keyframes iq-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes iq-sea {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes iq-heave {
  0% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
  100% { transform: translateY(0); }
}
@keyframes iq-sway {
  0% { transform: rotate(-2deg); }
  50% { transform: rotate(2deg); }
  100% { transform: rotate(-2deg); }
}
@keyframes iq-spray {
  0% { transform: translateY(0) scale(1); opacity: 0.6; }
  50% { transform: translateY(-6px) scale(1.2); opacity: 1; }
  100% { transform: translateY(0) scale(0.9); opacity: 0.4; }
}
@keyframes iq-fog {
  0% { opacity: 0.3; }
  50% { opacity: 0.6; }
  100% { opacity: 0.2; }
}

/* Scene 2: stoker-beautiful-night */
.scn-stoker-beautiful-night {
  background:
    linear-gradient(180deg, #0a0a1a 0%, #12122a 30%, #1a1a3a 60%, #0a0a1a 100%),
    radial-gradient(ellipse at 50% 80%, #1a2a4a 0%, transparent 60%);
}
.scn-stoker-beautiful-night .night-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #0a0a22 0%, #1a1a3a 100%);
  animation: sb-sky 15s ease-in-out infinite alternate;
}
.scn-stoker-beautiful-night .moon-dim {
  position: absolute; top: 10%; right: 20%; width: 30px; height: 30px;
  background: radial-gradient(circle, #2a3a5a 0%, #1a2a4a 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 10px rgba(30,50,80,.3);
  animation: sb-moon 20s ease-in-out infinite alternate;
}
.scn-stoker-beautiful-night .boat-dark {
  position: absolute; bottom: 30%; left: 30%; width: 35%; height: 12%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 0 0 50% 50% / 0 0 80% 80%;
  box-shadow: 0 4px 8px rgba(0,0,0,.6);
  animation: sb-rock 6s ease-in-out infinite alternate;
}
.scn-stoker-beautiful-night .rower-1 {
  position: absolute; bottom: 33%; left: 38%; width: 8%; height: 14%;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sb-row 2s ease-in-out infinite;
}
.scn-stoker-beautiful-night .rower-2 {
  position: absolute; bottom: 33%; left: 58%; width: 8%; height: 14%;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sb-row 2s ease-in-out infinite 1s;
}
.scn-stoker-beautiful-night .stoker-figure {
  position: absolute; bottom: 33%; left: 48%; width: 7%; height: 12%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sb-cower 4s ease-in-out infinite;
}
.scn-stoker-beautiful-night .oar-left {
  position: absolute; bottom: 30%; left: 32%; width: 12%; height: 2%;
  background: #2a2a2a;
  transform: rotate(-20deg);
  transform-origin: right center;
  animation: sb-oar 2s ease-in-out infinite alternate;
}
.scn-stoker-beautiful-night .oar-right {
  position: absolute; bottom: 30%; left: 60%; width: 12%; height: 2%;
  background: #2a2a2a;
  transform: rotate(20deg);
  transform-origin: left center;
  animation: sb-oar 2s ease-in-out infinite alternate-reverse;
}
.scn-stoker-beautiful-night .water-ripple {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 8%;
  background: radial-gradient(ellipse at 50% 50%, rgba(20,40,60,.2) 0%, transparent 100%);
  filter: blur(4px);
  animation: sb-ripple 5s ease-in-out infinite alternate;
}
@keyframes sb-sky {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.6; }
}
@keyframes sb-moon {
  0% { transform: translateY(0) scale(1); box-shadow: 0 0 20px 5px rgba(30,50,80,.2); }
  50% { transform: translateY(-3px) scale(1.05); box-shadow: 0 0 60px 15px rgba(30,50,80,.5); }
  100% { transform: translateY(2px) scale(0.95); box-shadow: 0 0 30px 8px rgba(30,50,80,.3); }
}
@keyframes sb-rock {
  0% { transform: rotate(-2deg); }
  50% { transform: rotate(2deg); }
  100% { transform: rotate(-1deg); }
}
@keyframes sb-row {
  0% { transform: translateY(0) rotate(-5deg); }
  25% { transform: translateY(-2px) rotate(0deg); }
  50% { transform: translateY(0) rotate(5deg); }
  75% { transform: translateY(-2px) rotate(0deg); }
  100% { transform: translateY(0) rotate(-5deg); }
}
@keyframes sb-cower {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-1px) rotate(3deg); }
  50% { transform: translateY(0) rotate(0deg); }
  75% { transform: translateY(-1px) rotate(-3deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes sb-oar {
  0% { transform: rotate(-20deg); }
  50% { transform: rotate(10deg); }
  100% { transform: rotate(-20deg); }
}
@keyframes sb-ripple {
  0% { opacity: 0.3; transform: scaleY(1); }
  50% { opacity: 0.7; transform: scaleY(1.2); }
  100% { opacity: 0.2; transform: scaleY(0.9); }
}

/* Scene 3: stoker-blanket */
.scn-stoker-blanket {
  background:
    linear-gradient(180deg, #1a1015 0%, #2a2025 40%, #1a1015 100%),
    radial-gradient(ellipse at 50% 30%, #3a2a30 0%, transparent 70%);
}
.scn-stoker-blanket .deck-shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #0a0508 0%, #000 100%);
  animation: sk-shadow 10s ease-in-out infinite alternate;
}
.scn-stoker-blanket .bulkhead {
  position: absolute; bottom: 40%; left: 20%; width: 60%; height: 30%;
  background: linear-gradient(180deg, #3a2a20 0%, #2a1a15 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: inset 0 4px 8px rgba(0,0,0,.4);
  animation: sk-bulk 12s ease-in-out infinite alternate;
}
.scn-stoker-blanket .captain-sleeping {
  position: absolute; bottom: 42%; left: 25%; width: 14%; height: 10%;
  background: linear-gradient(180deg, #2a1a15 0%, #1a0a05 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sk-sleep 6s ease-in-out infinite;
}
.scn-stoker-blanket .negro-1 {
  position: absolute; bottom: 30%; left: 35%; width: 8%; height: 18%;
  background: linear-gradient(180deg, #4a3a30 0%, #2a1a15 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sk-walk 4s ease-in-out infinite;
}
.scn-stoker-blanket .negro-2 {
  position: absolute; bottom: 30%; left: 55%; width: 8%; height: 18%;
  background: linear-gradient(180deg, #4a3a30 0%, #2a1a15 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sk-walk 4s ease-in-out infinite 2s;
}
.scn-stoker-blanket .blanket-fold {
  position: absolute; bottom: 32%; left: 40%; width: 25%; height: 6%;
  background: linear-gradient(135deg, #8a6a5a 0%, #6a4a3a 100%);
  border-radius: 20% 20% 30% 30% / 50% 50% 40% 40%;
  box-shadow: 0 2px 6px rgba(0,0,0,.5);
  animation: sk-blanket 4s ease-in-out infinite alternate;
}
.scn-stoker-blanket .stoker-prone {
  position: absolute; bottom: 30%; left: 45%; width: 6%; height: 10%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 40% 40% 60% 60%;
  transform: rotate(-10deg);
  transform-origin: bottom center;
  animation: sk-prone 8s ease-in-out infinite;
}
.scn-stoker-blanket .lantern-hook {
  position: absolute; top: 15%; left: 50%; width: 8px; height: 8px;
  background: radial-gradient(circle, #b08040 0%, #804020 70%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px #804020, 0 0 40px 12px rgba(128,64,32,.3);
  animation: sk-lantern 5s ease-in-out infinite alternate;
}
@keyframes sk-shadow {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.6; }
}
@keyframes sk-bulk {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.02); }
  100% { transform: scaleY(0.98); }
}
@keyframes sk-sleep {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-1px) rotate(2deg); }
  50% { transform: translateY(0) rotate(0deg); }
  75% { transform: translateY(-1px) rotate(-2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes sk-walk {
  0% { transform: translateX(0) rotate(-2deg); }
  25% { transform: translateX(3px) rotate(2deg); }
  50% { transform: translateX(6px) rotate(-2deg); }
  75% { transform: translateX(9px) rotate(2deg); }
  100% { transform: translateX(12px) rotate(-1deg); }
}
@keyframes sk-blanket {
  0% { transform: translateY(0) rotate(-5deg); }
  50% { transform: translateY(-2px) rotate(5deg); }
  100% { transform: translateY(0) rotate(-5deg); }
}
@keyframes sk-prone {
  0% { transform: rotate(-10deg) translateY(0); }
  25% { transform: rotate(-8deg) translateY(-1px); }
  50% { transform: rotate(-10deg) translateY(0); }
  75% { transform: rotate(-12deg) translateY(1px); }
  100% { transform: rotate(-10deg) translateY(0); }
}
@keyframes sk-lantern {
  0% { box-shadow: 0 0 10px 3px #804020, 0 0 20px 6px rgba(128,64,32,.2); opacity: 0.7; }
  50% { box-shadow: 0 0 30px 10px #b08040, 0 0 60px 20px rgba(176,128,64,.5); opacity: 1; }
  100% { box-shadow: 0 0 15px 5px #804020, 0 0 30px 10px rgba(128,64,32,.3); opacity: 0.8; }
}

/* Scene 4: stoker-drowning */
.scn-stoker-drowning {
  background:
    linear-gradient(180deg, #2a3035 0%, #1a2025 40%, #0a1015 100%),
    radial-gradient(ellipse at 50% 80%, #1a2a30 0%, transparent 60%);
}
.scn-stoker-drowning .overcast-sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #4a5a60 0%, #2a3a40 100%);
  animation: sd-sky 14s ease-in-out infinite alternate;
}
.scn-stoker-drowning .angry-sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #1a2a30 0%, #0a151a 50%, #050a0e 100%);
  animation: sd-sea 6s ease-in-out infinite alternate;
}
.scn-stoker-drowning .ship-bow {
  position: absolute; bottom: 40%; left: 55%; width: 25%; height: 20%;
  background: linear-gradient(135deg, #3a2a20 0%, #1a100a 100%);
  clip-path: polygon(0% 80%, 20% 0%, 100% 0%, 100% 100%);
  animation: sd-pitch 8s ease-in-out infinite alternate;
}
.scn-stoker-drowning .drowning-figure {
  position: absolute; bottom: 15%; left: 30%; width: 6%; height: 12%;
  background: linear-gradient(180deg, #4a3a30 0%, #2a1a15 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sd-drown 4s ease-in-out infinite;
}
.scn-stoker-drowning .wave-crest-1 {
  position: absolute; bottom: 20%; left: 10%; width: 20%; height: 6%;
  background: radial-gradient(ellipse at 50% 0%, rgba(80,120,140,.4) 0%, transparent 100%);
  filter: blur(3px);
  animation: sd-wave 5s ease-in-out infinite;
}
.scn-stoker-drowning .wave-crest-2 {
  position: absolute; bottom: 18%; right: 15%; width: 25%; height: 7%;
  background: radial-gradient(ellipse at 50% 0%, rgba(80,120,140,.3) 0%, transparent 100%);
  filter: blur(3px);
  animation: sd-wave 5s ease-in-out infinite 2.5s;
}
.scn-stoker-drowning .bubble-trail {
  position: absolute; bottom: 15%; left: 32%; width: 2%; height: 8%;
  background: radial-gradient(circle, rgba(200,220,230,.2) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(2px);
  animation: sd-bubbles 3s ease-out infinite;
}
.scn-stoker-drowning .distant-ship {
  position: absolute; bottom: 45%; left: 15%; width: 12%; height: 8%;
  background: linear-gradient(180deg, #2a1a15 0%, #15100e 100%);
  clip-path: polygon(0% 80%, 30% 0%, 100% 0%, 100% 100%);
  opacity: 0.6;
  animation: sd-distant 20s ease-in-out infinite alternate;
}
@keyframes sd-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes sd-sea {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes sd-pitch {
  0% { transform: rotate(-3deg) translateY(0); }
  50% { transform: rotate(3deg) translateY(-3px); }
  100% { transform: rotate(-2deg) translateY(0); }
}
@keyframes sd-drown {
  0% { transform: translateY(0) rotate(0deg); opacity: 1; }
  25% { transform: translateY(-5px) rotate(10deg); opacity: 0.8; }
  50% { transform: translateY(-10px) rotate(20deg); opacity: 0.5; }
  75% { transform: translateY(-15px) rotate(30deg); opacity: 0.3; }
  100% { transform: translateY(-20px) rotate(40deg); opacity: 0; }
}
@keyframes sd-wave {
  0% { transform: scaleX(1) translateY(0); opacity: 0.5; }
  50% { transform: scaleX(1.2) translateY(-4px); opacity: 0.8; }
  100% { transform: scaleX(0.9) translateY(0); opacity: 0.4; }
}
@keyframes sd-bubbles {
  0% { transform: translateY(0) scale(1); opacity: 0.6; }
  50% { transform: translateY(-10px) scale(0.8); opacity: 0.3; }
  100% { transform: translateY(-20px) scale(0.5); opacity: 0; }
}
@keyframes sd-distant {
  0% { transform: translateX(0) scale(1); opacity: 0.4; }
  50% { transform: translateX(-5px) scale(0.95); opacity: 0.7; }
  100% { transform: translateX(0) scale(1); opacity: 0.4; }
}

/* Scene: sloop-departure-tears (sdt) */
.scn-sloop-departure-tears {
  background: linear-gradient(180deg, #6b7b8d 0%, #4a5b6e 50%, #2c3e50 100%), radial-gradient(ellipse at 50% 0%, #8a9fb0 0%, transparent 70%);
  overflow: hidden;
}
.scn-sloop-departure-tears .sky-overcast {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #8a9fb0 0%, #6b7b8d 60%, #4a5b6e 100%);
  animation: sdt-sky 20s ease-in-out infinite alternate;
}
.scn-sloop-departure-tears .river {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #3a4a5e 0%, #2a3a4a 100%);
  animation: sdt-river 8s ease-in-out infinite;
}
.scn-sloop-departure-tears .sloop-hull {
  position: absolute; bottom: 25%; left: 30%; width: 120px; height: 30px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 0 30% 50% 40% / 0 50% 50% 30%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
  animation: sdt-rock 6s ease-in-out infinite;
}
.scn-sloop-departure-tears .sloop-mast {
  position: absolute; bottom: 50%; left: 37%; width: 6px; height: 80px;
  background: linear-gradient(90deg, #3a2a1a, #5a4a3a);
  transform-origin: bottom center;
  animation: sdt-rock 6s ease-in-out infinite reverse;
}
.scn-sloop-departure-tears .sloop-sail {
  position: absolute; bottom: 45%; left: 28%; width: 60px; height: 50px;
  background: linear-gradient(135deg, #d4d4d4 0%, #a0a0a0 50%, #7a7a7a 100%);
  border-radius: 0 50% 30% 0 / 0 80% 40% 0;
  clip-path: polygon(0% 0%, 100% 0%, 100% 80%, 50% 100%, 0% 60%);
  animation: sdt-sail 8s ease-in-out infinite;
}
.scn-sloop-departure-tears .figure-sdt {
  position: absolute; bottom: 26%; left: 15%; width: 16px; height: 40px;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: sdt-walk 5s ease-in-out infinite;
}
.scn-sloop-departure-tears .cloud-sdt {
  position: absolute; height: 20px; background: linear-gradient(180deg, rgba(200,210,220,0.6), rgba(200,210,220,0.1));
  border-radius: 50%; filter: blur(8px);
}
.scn-sloop-departure-tears .cloud-sdt-a {
  top: 15%; left: -10%; width: 80px;
  animation: sdt-cloud 45s linear infinite;
}
.scn-sloop-departure-tears .cloud-sdt-b {
  top: 25%; left: -5%; width: 60px;
  animation: sdt-cloud 55s linear infinite 10s;
}
@keyframes sdt-sky {
  0% { opacity: 0.7; }
  50% { opacity: 0.9; }
  100% { opacity: 0.75; }
}
@keyframes sdt-river {
  0% { transform: translateY(0); }
  50% { transform: translateY(3px); }
  100% { transform: translateY(0); }
}
@keyframes sdt-rock {
  0% { transform: rotate(-1deg); }
  50% { transform: rotate(1deg); }
  100% { transform: rotate(-1deg); }
}
@keyframes sdt-sail {
  0% { transform: rotate(-2deg) scaleX(1); }
  50% { transform: rotate(2deg) scaleX(1.02); }
  100% { transform: rotate(-2deg) scaleX(1); }
}
@keyframes sdt-walk {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(5px) rotate(2deg); }
  50% { transform: translateX(10px) rotate(0deg); }
  75% { transform: translateX(5px) rotate(-2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes sdt-cloud {
  0% { transform: translateX(-100px); }
  100% { transform: translateX(calc(100vw + 100px)); }
}

/* Scene: lagoon-hughes-request (lhr) */
.scn-lagoon-hughes-request {
  background: linear-gradient(180deg, #0a1128 0%, #1a1a3a 60%, #0a0a1a 100%), radial-gradient(ellipse at 50% 100%, #0a0a1a 0%, transparent 80%);
  overflow: hidden;
}
.scn-lagoon-hughes-request .night-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #0a1128 0%, #1a1a3a 50%, #0a0a1a 100%);
  animation: lhr-sky 12s ease-in-out infinite alternate;
}
.scn-lagoon-hughes-request .lagoon-water {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #0a0a1a 0%, #050510 100%);
  animation: lhr-water 10s ease-in-out infinite;
}
.scn-lagoon-hughes-request .sloop-dark {
  position: absolute; bottom: 20%; left: 20%; width: 100px; height: 30px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 0 20% 40% 30%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.8);
  animation: lhr-sway 8s ease-in-out infinite;
}
.scn-lagoon-hughes-request .schooner-dark {
  position: absolute; bottom: 22%; right: 15%; width: 120px; height: 35px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 0 25% 50% 40%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.8);
  animation: lhr-sway 8s ease-in-out infinite 2s;
}
.scn-lagoon-hughes-request .lantern-lhr {
  position: absolute; width: 8px; height: 12px; background: radial-gradient(circle, #ffd060 0%, #cc8800 60%, transparent 100%);
  border-radius: 20%;
  box-shadow: 0 0 20px 6px #cc8800, 0 0 40px 12px rgba(204,136,0,0.4);
  animation: lhr-flicker 2s ease-in-out infinite;
}
.scn-lagoon-hughes-request .lantern-lhr-a {
  bottom: 24%; left: 28%;
}
.scn-lagoon-hughes-request .lantern-lhr-b {
  bottom: 26%; right: 22%;
  animation-delay: -1s;
}
.scn-lagoon-hughes-request .figure-lhr {
  position: absolute; bottom: 21%; left: 22%; width: 12px; height: 30px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: lhr-stand 6s ease-in-out infinite;
}
.scn-lagoon-hughes-request .reflection-lhr {
  position: absolute; bottom: 5%; left: 25%; width: 40px; height: 15px;
  background: radial-gradient(ellipse, rgba(204,136,0,0.3) 0%, transparent 100%);
  filter: blur(4px);
  animation: lhr-reflect 4s ease-in-out infinite alternate;
}
@keyframes lhr-sky {
  0% { opacity: 0.6; }
  50% { opacity: 0.9; }
  100% { opacity: 0.7; }
}
@keyframes lhr-water {
  0% { transform: translateY(-2px); }
  50% { transform: translateY(2px); }
  100% { transform: translateY(-2px); }
}
@keyframes lhr-sway {
  0% { transform: rotate(-2deg); }
  50% { transform: rotate(2deg); }
  100% { transform: rotate(-2deg); }
}
@keyframes lhr-flicker {
  0% { opacity: 0.8; box-shadow: 0 0 15px 4px #cc8800, 0 0 30px 10px rgba(204,136,0,0.3); }
  50% { opacity: 1; box-shadow: 0 0 25px 8px #ffd060, 0 0 50px 18px rgba(255,208,96,0.5); }
  100% { opacity: 0.8; box-shadow: 0 0 15px 4px #cc8800, 0 0 30px 10px rgba(204,136,0,0.3); }
}
@keyframes lhr-stand {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes lhr-reflect {
  0% { opacity: 0.3; transform: scaleX(1); }
  50% { opacity: 0.5; transform: scaleX(1.1); }
  100% { opacity: 0.3; transform: scaleX(1); }
}

/* Scene: hughes-abuse (hab) */
.scn-hughes-abuse {
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 60%, #000000 100%), radial-gradient(ellipse at 30% 40%, #2a2a1a 0%, transparent 70%);
  overflow: hidden;
}
.scn-hughes-abuse .deck-dark {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: repeating-linear-gradient(90deg, #2a2a2a 0px, #1a1a1a 10px, #2a2a2a 20px);
  animation: hab-deck 12s linear infinite;
}
.scn-hughes-abuse .lantern-hab {
  position: absolute; top: 30%; left: 20%; width: 10px; height: 14px;
  background: radial-gradient(circle, #ffd060 0%, #b8783c 60%, transparent 100%);
  border-radius: 20%;
  box-shadow: 0 0 30px 10px #b8783c, 0 0 60px 20px rgba(184,120,60,0.4);
  animation: hab-flicker 2.5s ease-in-out infinite;
}
.scn-hughes-abuse .figure-hughes {
  position: absolute; bottom: 20%; left: 40%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: hab-lunge 6s ease-in-out infinite;
}
.scn-hughes-abuse .figure-narrator {
  position: absolute; bottom: 20%; left: 20%; width: 16px; height: 45px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: hab-cower 8s ease-in-out infinite;
}
.scn-hughes-abuse .hand-abuse {
  position: absolute; bottom: 45%; left: 35%; width: 8px; height: 20px;
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%);
  border-radius: 40% 40% 50% 50%;
  transform-origin: bottom center;
  animation: hab-point 4s ease-in-out infinite;
}
.scn-hughes-abuse .shadow-hab {
  position: absolute; bottom: 0; left: 30%; width: 40%; height: 30px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.8) 0%, transparent 100%);
  filter: blur(6px);
  animation: hab-shadow 8s ease-in-out infinite;
}
@keyframes hab-deck {
  0% { background-position: 0 0; }
  100% { background-position: 20px 0; }
}
@keyframes hab-flicker {
  0% { opacity: 0.6; box-shadow: 0 0 20px 6px #b8783c, 0 0 40px 12px rgba(184,120,60,0.3); }
  50% { opacity: 1; box-shadow: 0 0 35px 12px #ffd060, 0 0 70px 24px rgba(255,208,96,0.5); }
  100% { opacity: 0.6; box-shadow: 0 0 20px 6px #b8783c, 0 0 40px 12px rgba(184,120,60,0.3); }
}
@keyframes hab-lunge {
  0% { transform: rotate(0deg) translateX(0); }
  30% { transform: rotate(10deg) translateX(10px); }
  60% { transform: rotate(-5deg) translateX(-5px); }
  100% { transform: rotate(0deg) translateX(0); }
}
@keyframes hab-cower {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(3px) scale(0.95); }
  100% { transform: translateY(0) scale(1); }
}
@keyframes hab-point {
  0% { transform: rotate(20deg) translateY(0); }
  50% { transform: rotate(40deg) translateY(-5px); }
  100% { transform: rotate(20deg) translateY(0); }
}
@keyframes hab-shadow {
  0% { opacity: 0.5; transform: scaleX(1); }
  50% { opacity: 0.8; transform: scaleX(1.2); }
  100% { opacity: 0.5; transform: scaleX(1); }
}

/* Scene: forced-to-schooner (fts) */
.scn-forced-to-schooner {
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 50%, #0a0a1a 100%), radial-gradient(ellipse at 50% 0%, #2a2a4a 0%, transparent 80%);
  overflow: hidden;
}
.scn-forced-to-schooner .sea-dark {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #0a0a1a 0%, #050510 100%);
  animation: fts-sea 10s ease-in-out infinite;
}
.scn-forced-to-schooner .sloop-side {
  position: absolute; bottom: 20%; left: 10%; width: 130px; height: 40px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 0 0 30% 20%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.8);
  animation: fts-sway 8s ease-in-out infinite;
}
.scn-forced-to-schooner .schooner-side {
  position: absolute; bottom: 20%; right: 10%; width: 150px; height: 45px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 0 0 20% 30%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.8);
  animation: fts-sway 8s ease-in-out infinite 3s;
}
.scn-forced-to-schooner .gangplank {
  position: absolute; bottom: 28%; left: 30%; width: 60px; height: 6px;
  background: linear-gradient(90deg, #2a1a1a, #3a2a2a);
  border-radius: 2px;
  transform: rotate(-5deg);
  animation: fts-plank 6s ease-in-out infinite;
}
.scn-forced-to-schooner .figure-forced {
  position: absolute; bottom: 26%; left: 32%; width: 14px; height: 40px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: fts-walk 5s ease-in-out infinite;
}
.scn-forced-to-schooner .figure-hughes-fts {
  position: absolute; bottom: 26%; left: 25%; width: 16px; height: 42px;
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: fts-stand 6s ease-in-out infinite;
}
.scn-forced-to-schooner .lantern-fts {
  position: absolute; bottom: 32%; left: 15%; width: 8px; height: 10px;
  background: radial-gradient(circle, #ffd060 0%, #b8783c 60%, transparent 100%);
  box-shadow: 0 0 20px 6px #b8783c, 0 0 40px 12px rgba(184,120,60,0.4);
  animation: fts-flicker 2s ease-in-out infinite;
}
.scn-forced-to-schooner .water-stir {
  position: absolute; bottom: 10%; left: 20%; width: 30px; height: 8px;
  background: radial-gradient(ellipse, rgba(255,255,255,0.1) 0%, transparent 100%);
  filter: blur(4px);
  animation: fts-stir 7s ease-in-out infinite;
}
@keyframes fts-sea {
  0%, 100% { transform: translateY(-3px); }
  50% { transform: translateY(3px); }
}
@keyframes fts-sway {
  0%, 100% { transform: rotate(-2deg); }
  50% { transform: rotate(2deg); }
}
@keyframes fts-plank {
  0%, 100% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(-7deg) translateY(2px); }
}
@keyframes fts-walk {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(8px) rotate(2deg); }
  50% { transform: translateX(16px) rotate(0deg); }
  75% { transform: translateX(8px) rotate(-2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes fts-stand {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
}
@keyframes fts-flicker {
  0% { opacity: 0.7; box-shadow: 0 0 15px 4px #b8783c, 0 0 30px 10px rgba(184,120,60,0.3); }
  50% { opacity: 1; box-shadow: 0 0 25px 8px #ffd060, 0 0 50px 18px rgba(255,208,96,0.5); }
  100% { opacity: 0.7; box-shadow: 0 0 15px 4px #b8783c, 0 0 30px 10px rgba(184,120,60,0.3); }
}
@keyframes fts-stir {
  0%, 100% { opacity: 0.4; transform: scaleX(1); }
  50% { opacity: 0.6; transform: scaleX(1.3); }
}

/* prisoner-fate */
.scn-prisoner-fate {
  background: linear-gradient(180deg, #f7c270 0%, #e09a40 30%, #b66a30 60%, #4a2a1a 100%), radial-gradient(ellipse at 50% 0%, #ffd580 0%, transparent 70%);
}
.scn-prisoner-fate .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #8ab8d0 0%, #f7c580 100%);
  animation: pf-sky 6s ease-in-out infinite alternate;
}
.scn-prisoner-fate .sun {
  position: absolute; top: 8%; left: 60%; width: 60px; height: 60px;
  background: radial-gradient(circle, #ffe080 0%, #f0b040 60%, transparent 80%);
  border-radius: 50%; box-shadow: 0 0 60px 20px #e09030;
  animation: pf-sun 4s ease-in-out infinite alternate;
}
.scn-prisoner-fate .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 42%;
  background: linear-gradient(180deg, #5a3a22 0%, #3a2212 100%);
  border-radius: 30% 0 0 0 / 20% 0 0 0;
}
.scn-prisoner-fate .post {
  position: absolute; bottom: 30%; left: 45%; width: 8px; height: 90px;
  background: #2a1a0a; border-radius: 2px; transform: rotate(0deg);
  box-shadow: 2px 0 6px rgba(0,0,0,0.4);
}
.scn-prisoner-fate .figure {
  position: absolute; bottom: 24%; left: 42%; width: 22px; height: 48px;
  background: #1a0a00;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pf-figure 3s ease-in-out infinite;
}
.scn-prisoner-fate .chains {
  position: absolute; bottom: 36%; left: 44%; width: 30px; height: 6px;
  background: linear-gradient(90deg, transparent 0%, #5a4a3a 50%, transparent 100%);
  border-radius: 4px; animation: pf-chains 2s ease-in-out infinite alternate;
}
.scn-prisoner-fate .chain-link {
  position: absolute; bottom: 42%; left: 46%; width: 8px; height: 8px;
  background: #6a5a4a; border-radius: 50%;
  box-shadow: 10px 0 0 #6a5a4a, 20px 0 0 #6a5a4a;
  animation: pf-links 3s linear infinite;
}
@keyframes pf-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.6; }
}
@keyframes pf-sun {
  0% { transform: scale(0.9) translateY(0); box-shadow: 0 0 40px 15px #e09030; }
  50% { transform: scale(1.1) translateY(-4px); box-shadow: 0 0 80px 30px #ffc040; }
  100% { transform: scale(1) translateY(2px); box-shadow: 0 0 50px 20px #d08020; }
}
@keyframes pf-figure {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(2px) rotate(2deg); }
  50% { transform: translateX(0) rotate(-2deg); }
  75% { transform: translateX(-2px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes pf-chains {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(4deg); }
  100% { transform: translateY(1px) rotate(-3deg); }
}
@keyframes pf-links {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(180deg); }
  100% { transform: rotate(360deg); }
}

/* weapons-training */
.scn-weapons-training {
  background: linear-gradient(180deg, #b0c4d8 0%, #d4ab5a 30%, #8a6a2a 60%, #4a2a0a 100%), radial-gradient(ellipse at 50% 0%, #ffe080 0%, transparent 60%);
}
.scn-weapons-training .sky {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #7a9ab0 0%, #c8b060 100%);
  animation: wt-sky 8s ease-in-out infinite alternate;
}
.scn-weapons-training .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #4a3a1a 0%, #2a1a0a 100%);
  border-radius: 20% 60% 0 0 / 30% 40% 0 0;
}
.scn-weapons-training .sun {
  position: absolute; top: 10%; right: 20%; width: 40px; height: 40px;
  background: radial-gradient(circle, #ffe880 0%, #e0a030 60%, transparent 80%);
  border-radius: 50%; box-shadow: 0 0 40px 15px #d09020;
  animation: wt-sun 5s ease-in-out infinite;
}
.scn-weapons-training .warrior-a {
  position: absolute; bottom: 22%; left: 30%; width: 24px; height: 56px;
  background: #1a1a08;
  border-radius: 50% 40% 40% 50% / 60% 50% 50% 60%;
  transform: rotate(5deg);
  animation: wt-warrior-a 1.5s ease-in-out infinite alternate;
}
.scn-weapons-training .warrior-b {
  position: absolute; bottom: 22%; right: 30%; width: 24px; height: 56px;
  background: #1a1a08;
  border-radius: 40% 50% 50% 40% / 60% 50% 50% 60%;
  transform: rotate(-5deg);
  animation: wt-warrior-b 1.8s ease-in-out infinite alternate;
}
.scn-weapons-training .shield-a {
  position: absolute; bottom: 28%; left: 32%; width: 18px; height: 28px;
  background: #5a3a1a; border-radius: 20%; box-shadow: inset 0 0 0 3px #3a2a0a;
  transform-origin: center;
  animation: wt-shield-a 0.8s ease-in-out infinite alternate;
}
.scn-weapons-training .shield-b {
  position: absolute; bottom: 28%; right: 32%; width: 18px; height: 28px;
  background: #5a3a1a; border-radius: 20%; box-shadow: inset 0 0 0 3px #3a2a0a;
  transform-origin: center;
  animation: wt-shield-b 0.9s ease-in-out infinite alternate;
}
.scn-weapons-training .sword-a {
  position: absolute; bottom: 30%; left: 26%; width: 4px; height: 34px;
  background: #c0c0c0; border-radius: 0 0 4px 4px;
  transform-origin: bottom center;
  animation: wt-sword-a 0.6s ease-in-out infinite alternate;
}
.scn-weapons-training .sword-b {
  position: absolute; bottom: 30%; right: 26%; width: 4px; height: 34px;
  background: #c0c0c0; border-radius: 0 0 4px 4px;
  transform-origin: bottom center;
  animation: wt-sword-b 0.7s ease-in-out infinite alternate;
}
@keyframes wt-sky {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes wt-sun {
  0% { transform: scale(0.9); opacity: 0.8; }
  50% { transform: scale(1.1); opacity: 1; }
  100% { transform: scale(1); opacity: 0.9; }
}
@keyframes wt-warrior-a {
  0% { transform: rotate(3deg) translateX(0); }
  50% { transform: rotate(-2deg) translateX(3px); }
  100% { transform: rotate(5deg) translateX(0); }
}
@keyframes wt-warrior-b {
  0% { transform: rotate(-3deg) translateX(0); }
  50% { transform: rotate(2deg) translateX(-3px); }
  100% { transform: rotate(-5deg) translateX(0); }
}
@keyframes wt-shield-a {
  0% { transform: translateY(0) scaleX(1); }
  50% { transform: translateY(-2px) scaleX(0.95); }
  100% { transform: translateY(0) scaleX(1); }
}
@keyframes wt-shield-b {
  0% { transform: translateY(0) scaleX(1); }
  50% { transform: translateY(-2px) scaleX(0.95); }
  100% { transform: translateY(0) scaleX(1); }
}
@keyframes wt-sword-a {
  0% { transform: rotate(30deg); }
  50% { transform: rotate(-10deg); }
  100% { transform: rotate(20deg); }
}
@keyframes wt-sword-b {
  0% { transform: rotate(-30deg); }
  50% { transform: rotate(10deg); }
  100% { transform: rotate(-20deg); }
}

/* red-flag-battle */
.scn-red-flag-battle {
  background: linear-gradient(180deg, #b8c8d0 0%, #d4a050 30%, #7a4a2a 60%, #3a1a0a 100%), radial-gradient(ellipse at 50% 0%, #ffd870 0%, transparent 60%);
}
.scn-red-flag-battle .sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #6a8a9a 0%, #c8a860 100%);
  animation: rfb-sky 10s ease-in-out infinite alternate;
}
.scn-red-flag-battle .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #5a3a1a 0%, #2a1a0a 100%);
  border-radius: 40% 60% 0 0 / 20% 30% 0 0;
}
.scn-red-flag-battle .tree-trunk {
  position: absolute; bottom: 20%; left: 70%; width: 10px; height: 80px;
  background: #3a2a12; border-radius: 3px;
  transform: rotate(-2deg);
}
.scn-red-flag-battle .tree-top {
  position: absolute; bottom: 50%; left: 68%; width: 50px; height: 40px;
  background: radial-gradient(ellipse, #2a4a1a 0%, #1a3a0a 60%, transparent 80%);
  border-radius: 50%;
  animation: rfb-tree 8s ease-in-out infinite alternate;
}
.scn-red-flag-battle .flagpole {
  position: absolute; bottom: 15%; left: 20%; width: 6px; height: 120px;
  background: #4a3a2a; transform: rotate(3deg);
}
.scn-red-flag-battle .flag {
  position: absolute; bottom: 60%; left: 20%; width: 40px; height: 24px;
  background: #c8553d; /* terracotta */
  border-radius: 0 8px 8px 0;
  transform-origin: left center;
  animation: rfb-flag 1.2s ease-in-out infinite alternate;
}
.scn-red-flag-battle .dust-a {
  position: absolute; bottom: 18%; left: 40%; width: 10px; height: 10px;
  background: rgba(180,140,80,0.4); border-radius: 50%;
  filter: blur(2px);
  animation: rfb-dust-a 4s linear infinite;
}
.scn-red-flag-battle .dust-b {
  position: absolute; bottom: 22%; left: 55%; width: 8px; height: 8px;
  background: rgba(180,140,80,0.3); border-radius: 50%;
  filter: blur(2px);
  animation: rfb-dust-b 5s linear infinite 1s;
}
.scn-red-flag-battle .dust-c {
  position: absolute; bottom: 20%; left: 30%; width: 6px; height: 6px;
  background: rgba(180,140,80,0.3); border-radius: 50%;
  filter: blur(2px);
  animation: rfb-dust-c 6s linear infinite 2s;
}
@keyframes rfb-sky {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes rfb-tree {
  0% { transform: rotate(-2deg) scaleY(1); }
  50% { transform: rotate(2deg) scaleY(0.95); }
  100% { transform: rotate(-1deg) scaleY(1); }
}
@keyframes rfb-flag {
  0% { transform: rotate(-10deg); }
  50% { transform: rotate(15deg); }
  100% { transform: rotate(-5deg); }
}
@keyframes rfb-dust-a {
  0% { transform: translateY(0) translateX(0) scale(1); opacity: 0.4; }
  50% { transform: translateY(-20px) translateX(10px) scale(1.5); opacity: 0.1; }
  100% { transform: translateY(-40px) translateX(20px) scale(2); opacity: 0; }
}
@keyframes rfb-dust-b {
  0% { transform: translateY(0) translateX(0) scale(1); opacity: 0.3; }
  50% { transform: translateY(-15px) translateX(-8px) scale(1.3); opacity: 0.1; }
  100% { transform: translateY(-30px) translateX(-16px) scale(1.8); opacity: 0; }
}
@keyframes rfb-dust-c {
  0% { transform: translateY(0) translateX(0) scale(1); opacity: 0.3; }
  50% { transform: translateY(-25px) translateX(12px) scale(1.4); opacity: 0.1; }
  100% { transform: translateY(-50px) translateX(24px) scale(2); opacity: 0; }
}

/* victory-and-prisoner-chief */
.scn-victory-and-prisoner-chief {
  background: linear-gradient(180deg, #d0c090 0%, #b89850 30%, #8a6a30 60%, #4a2a0a 100%), radial-gradient(ellipse at 70% 20%, #ffd080 0%, transparent 60%);
}
.scn-victory-and-prisoner-chief .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #7a8a7a 0%, #c0a060 100%);
  animation: vpc-sky 7s ease-in-out infinite alternate;
}
.scn-victory-and-prisoner-chief .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #5a4a2a 0%, #2a1a0a 100%);
  border-radius: 20% 80% 0 0 / 30% 40% 0 0;
}
.scn-victory-and-prisoner-chief .sun {
  position: absolute; top: 15%; right: 25%; width: 30px; height: 30px;
  background: radial-gradient(circle, #ffe880 0%, #d09020 70%, transparent 85%);
  border-radius: 50%; box-shadow: 0 0 30px 10px #c08020;
  animation: vpc-sun 6s ease-in-out infinite alternate;
}
.scn-victory-and-prisoner-chief .victor {
  position: absolute; bottom: 20%; left: 55%; width: 26px; height: 60px;
  background: #1a1a0a;
  border-radius: 50% 40% 45% 50% / 60% 50% 50% 60%;
  transform: rotate(5deg);
  animation: vpc-victor 2s ease-in-out infinite alternate;
}
.scn-victory-and-prisoner-chief .victor-arm {
  position: absolute; bottom: 40%; left: 68%; width: 8px; height: 20px;
  background: #1a1a0a; border-radius: 40% 40% 20% 20%;
  transform-origin: right bottom;
  animation: vpc-arm 0.8s ease-in-out infinite alternate;
}
.scn-victory-and-prisoner-chief .prisoner {
  position: absolute; bottom: 18%; left: 35%; width: 22px; height: 52px;
  background: #0a0a00;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-10deg);
  animation: vpc-prisoner 3s ease-in-out infinite alternate;
}
.scn-victory-and-prisoner-chief .rope {
  position: absolute; bottom: 22%; left: 38%; width: 24px; height: 4px;
  background: #3a2a1a; border-radius: 10px;
  transform: rotate(-15deg);
  animation: vpc-rope 2s ease-in-out infinite alternate;
}
.scn-victory-and-prisoner-chief .knife {
  position: absolute; bottom: 46%; left: 72%; width: 4px; height: 16px;
  background: #c0c0b0; border-radius: 0 0 6px 6px;
  transform: rotate(-30deg);
  animation: vpc-knife 0.6s ease-in-out infinite alternate;
}
@keyframes vpc-sky {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes vpc-sun {
  0% { transform: scale(0.95); opacity: 0.9; }
  50% { transform: scale(1.1); opacity: 1; }
  100% { transform: scale(1); opacity: 0.95; }
}
@keyframes vpc-victor {
  0% { transform: rotate(3deg) translateX(0); }
  50% { transform: rotate(7deg) translateX(2px); }
  100% { transform: rotate(2deg) translateX(0); }
}
@keyframes vpc-arm {
  0% { transform: rotate(-10deg); }
  50% { transform: rotate(20deg); }
  100% { transform: rotate(-5deg); }
}
@keyframes vpc-prisoner {
  0% { transform: rotate(-8deg) translateY(0); }
  50% { transform: rotate(-12deg) translateY(-2px); }
  100% { transform: rotate(-8deg) translateY(0); }
}
@keyframes vpc-rope {
  0% { transform: rotate(-13deg) translateY(0); }
  50% { transform: rotate(-18deg) translateY(-1px); }
  100% { transform: rotate(-15deg) translateY(0); }
}
@keyframes vpc-knife {
  0% { transform: rotate(-25deg); }
  50% { transform: rotate(-35deg); }
  100% { transform: rotate(-30deg); }
}

.scn-death-of-dick { background: linear-gradient(180deg, #1a1210 0%, #2a1e1a 40%, #1c1412 100%), radial-gradient(ellipse at 30% 60%, #3a2a22 0%, transparent 70%); }
.scn-death-of-dick .wall-bg { position:absolute; inset:0; background: linear-gradient(135deg, #2a201c 0%, #1a1412 50%, #221814 100%); animation: dod-wall 20s ease-in-out infinite; }
.scn-death-of-dick .wall-shadow { position:absolute; inset:0; background: radial-gradient(ellipse at 40% 50%, transparent 50%, rgba(0,0,0,.6) 100%); animation: dod-shadow 12s ease-in-out infinite alternate; }
.scn-death-of-dick .table-plank { position:absolute; bottom:18%; left:25%; width:55%; height:8%; background: linear-gradient(180deg, #3a2a20 0%, #2a1e14 40%, #1c1008 100%); border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,.7); transform: perspective(400px) rotateX(5deg); animation: dod-table 8s ease-in-out infinite; }
.scn-death-of-dick .candle-wax { position:absolute; bottom:36%; left:38%; width:4px; height:22px; background: linear-gradient(180deg, #e8d8b8 0%, #c8b090 60%, #8a7050 100%); border-radius: 2px 2px 0 0; box-shadow: 0 0 6px rgba(200,176,144,.3); transform-origin: bottom center; animation: dod-wax 9s ease-in-out infinite alternate; }
.scn-death-of-dick .candle-flame { position:absolute; bottom:58%; left:38.4%; width:6px; height:16px; background: radial-gradient(ellipse at 50% 80%, #ffd060 0%, #e09830 50%, #c06020 80%, transparent 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; box-shadow: 0 0 20px 8px rgba(224,152,48,.6), 0 0 40px 16px rgba(192,96,32,.3); animation: dod-flame 2s ease-in-out infinite alternate; }
.scn-death-of-dick .figure-seated { position:absolute; bottom:20%; left:48%; width:40px; height:60px; background: linear-gradient(180deg, #1a1412 0%, #0e0a08 50%, #060404 100%); border-radius: 40% 40% 30% 30% / 50% 50% 35% 35%; transform-origin: bottom center; box-shadow: 0 2px 6px rgba(0,0,0,.5); animation: dod-figure 6s ease-in-out infinite; }
.scn-death-of-dick .figure-shadow { position:absolute; bottom:20%; left:46%; width:50px; height:20px; background: radial-gradient(ellipse, rgba(0,0,0,.7) 0%, transparent 100%); border-radius: 50%; filter: blur(4px); animation: dod-figshadow 6s ease-in-out infinite; }
.scn-death-of-dick .doorway { position:absolute; right:12%; top:15%; width:50px; height:65%; background: linear-gradient(180deg, #0e0a08 0%, #1a1410 60%, #0a0806 100%); border-radius: 30% 30% 0 0 / 40% 40% 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,.8); transform: skewY(2deg); opacity: .6; animation: dod-door 15s ease-in-out infinite alternate; }
@keyframes dod-wall { 0%,100% { opacity: .85 } 50% { opacity: 1 } }
@keyframes dod-shadow { 0% { opacity: .7 } 50% { opacity: 1 } 100% { opacity: .8 } }
@keyframes dod-table { 0%,100% { transform: perspective(400px) rotateX(5deg) translateY(0) } 50% { transform: perspective(400px) rotateX(5deg) translateY(-1px) } }
@keyframes dod-wax { 0% { transform: rotate(0) scaleY(1) } 50% { transform: rotate(.5deg) scaleY(1.02) } 100% { transform: rotate(-.5deg) scaleY(.98) } }
@keyframes dod-flame { 0% { transform: scaleY(1) scaleX(1) translateX(0); opacity: .9 } 25% { transform: scaleY(1.15) scaleX(.9) translateX(1px); opacity: 1 } 50% { transform: scaleY(.95) scaleX(1.05) translateX(-1px); opacity: .95 } 75% { transform: scaleY(1.1) scaleX(.85) translateX(2px); opacity: 1 } 100% { transform: scaleY(1) scaleX(1) translateX(0); opacity: .9 } }
@keyframes dod-figure { 0%,100% { transform: translateX(0) rotate(0) } 25% { transform: translateX(2px) rotate(1deg) } 50% { transform: translateX(-1px) rotate(-1deg) } 75% { transform: translateX(1px) rotate(0) } }
@keyframes dod-figshadow { 0%,100% { transform: scaleX(1); opacity:.7 } 50% { transform: scaleX(1.05); opacity:.5 } }
@keyframes dod-door { 0% { transform: skewY(2deg); opacity:.6 } 50% { transform: skewY(0); opacity:.5 } 100% { transform: skewY(-2deg); opacity:.7 } }

.scn-strange-sights-at-gibraltar { background: linear-gradient(180deg, #c8d8e8 0%, #90aac0 40%, #6a80a0 100%), radial-gradient(ellipse at 50% 0%, #e8f0f8 0%, transparent 60%); }
.scn-strange-sights-at-gibraltar .sky-blaze { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #f0f8ff 0%, #b0c8e0 50%, #8098b8 100%); animation: sib-sky 14s ease-in-out infinite alternate; }
.scn-strange-sights-at-gibraltar .sea-line { position:absolute; bottom:28%; left:0; right:0; height:2px; background: linear-gradient(90deg, transparent 0%, #304050 50%, transparent 100%); box-shadow: 0 1px 4px rgba(48,64,80,.3); animation: sib-sea 8s ease-in-out infinite; }
.scn-strange-sights-at-gibraltar .mole-wall { position:absolute; bottom:10%; left:10%; right:20%; height:22%; background: linear-gradient(180deg, #8a7860 0%, #6a5a48 40%, #4a3e30 100%); border-radius: 4px 4px 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,.3), inset 0 4px 8px rgba(200,180,140,.3); animation: sib-mole 12s ease-in-out infinite alternate; }
.scn-strange-sights-at-gibraltar .soldier-hanged { position:absolute; bottom:32%; left:30%; width:14px; height:42px; background: linear-gradient(180deg, #8a3030 0%, #682828 40%, #3a1818 100%); border-radius: 30% 30% 40% 40% / 40% 40% 30% 30%; transform-origin: top center; box-shadow: 0 2px 6px rgba(0,0,0,.4); animation: sib-soldier 4s ease-in-out infinite; }
.scn-strange-sights-at-gibraltar .soldier-rope { position:absolute; top:28%; left:30.5%; width:2px; height:8%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2e20 100%); transform-origin: top center; animation: sib-rope 4s ease-in-out infinite; }
.scn-strange-sights-at-gibraltar .ship-mast { position:absolute; bottom:30%; right:22%; width:6px; height:50%; background: linear-gradient(180deg, #4a3e30 0%, #2a2218 100%); border-radius: 2px; transform-origin: bottom center; animation: sib-mast 10s ease-in-out infinite alternate; }
.scn-strange-sights-at-gibraltar .flag-pennant { position:absolute; top:18%; right:20%; width:28px; height:10px; background: linear-gradient(180deg, #c04040 0%, #a03030 40%, #702020 100%); border-radius: 0 50% 50% 0 / 0 50% 50% 0; transform-origin: left center; box-shadow: 0 0 6px rgba(192,64,64,.3); animation: sib-flag 3s ease-in-out infinite; }
.scn-strange-sights-at-gibraltar .sun-corona { position:absolute; top:6%; right:16%; width:50px; height:50px; background: radial-gradient(circle, #ffe8b0 0%, #e8c880 40%, rgba(232,200,128,.3) 70%, transparent 100%); border-radius: 50%; box-shadow: 0 0 60px 20px rgba(232,200,128,.5), 0 0 120px 40px rgba(232,200,128,.2); animation: sib-sun 7s ease-in-out infinite alternate; }
@keyframes sib-sky { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes sib-sea { 0%,100% { transform: scaleY(1); opacity:.6 } 50% { transform: scaleY(1.3); opacity:.8 } }
@keyframes sib-mole { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes sib-soldier { 0%,100% { transform: rotate(0) } 25% { transform: rotate(2deg) } 50% { transform: rotate(-2deg) } 75% { transform: rotate(1deg) } }
@keyframes sib-rope { 0%,100% { transform: rotate(0) scaleY(1) } 50% { transform: rotate(2deg) scaleY(1.02) } }
@keyframes sib-mast { 0% { transform: rotate(-.5deg) } 50% { transform: rotate(0) } 100% { transform: rotate(.5deg) } }
@keyframes sib-flag { 0% { transform: rotate(-5deg) scaleX(1) } 25% { transform: rotate(0) scaleX(1.05) } 50% { transform: rotate(8deg) scaleX(.95) } 75% { transform: rotate(3deg) scaleX(1.02) } 100% { transform: rotate(-5deg) scaleX(1) } }
@keyframes sib-sun { 0% { transform: scale(1); opacity:.9 } 50% { transform: scale(1.05); opacity:1 } 100% { transform: scale(.98); opacity:.85 } }

.scn-terrible-gale { background: linear-gradient(180deg, #0a0e14 0%, #141a22 40%, #1c222e 100%), radial-gradient(ellipse at 50% 100%, #1a2230 0%, transparent 70%); }
.scn-terrible-gale .storm-sky { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #1e2838 0%, #0a0e18 50%, #141c2a 100%); animation: tg-sky 4s ease-in-out infinite alternate; }
.scn-terrible-gale .wave-mountain { position:absolute; bottom:15%; left:-10%; right:-10%; height:45%; background: linear-gradient(180deg, #1a2a3a 0%, #0e1824 40%, #060a12 100%); border-radius: 30% 70% 50% 50% / 20% 60% 40% 60%; box-shadow: inset 0 12px 24px rgba(0,0,0,.6); animation: tg-wavem 6s ease-in-out infinite; }
.scn-terrible-gale .wave-trough { position:absolute; bottom:5%; left:-5%; right:-5%; height:30%; background: linear-gradient(180deg, #0e1824 0%, #060a12 50%, #020408 100%); border-radius: 60% 40% 50% 50% / 40% 30% 60% 50%; box-shadow: inset 0 8px 16px rgba(0,0,0,.5); animation: tg-wavet 8s ease-in-out infinite reverse; }
.scn-terrible-gale .ship-hull { position:absolute; bottom:38%; left:42%; width:80px; height:24px; background: linear-gradient(180deg, #2a1e14 0%, #1a100a 40%, #0a0604 100%); border-radius: 30% 30% 50% 50% / 40% 40% 30% 30%; box-shadow: 0 4px 12px rgba(0,0,0,.7); transform-origin: center 80%; animation: tg-hull 3s ease-in-out infinite; }
.scn-terrible-gale .ship-rail { position:absolute; bottom:48%; left:44%; width:60px; height:4px; background: linear-gradient(90deg, #3a2a1a 0%, #2a1e10 50%, #3a2a1a 100%); border-radius: 1px; box-shadow: 0 2px 4px rgba(0,0,0,.5); animation: tg-rail 3s ease-in-out infinite; }
.scn-terrible-gale .spray-burst { position:absolute; bottom:50%; left:48%; width:30px; height:40px; background: radial-gradient(ellipse at 50% 100%, rgba(180,200,220,.6) 0%, rgba(180,200,220,.1) 50%, transparent 100%); filter: blur(3px); border-radius: 50%; animation: tg-spray 1.5s ease-in-out infinite; }
.scn-terrible-gale .lightning-flash { position:absolute; top:10%; left:50%; width:2px; height:30%; background: linear-gradient(180deg, #e0e8f0 0%, #8090b0 60%, transparent 100%); box-shadow: 0 0 20px 10px rgba(224,232,240,.5); opacity: 0; animation: tg-lightning 6s ease-in-out infinite; }
.scn-terrible-gale .gun-port { position:absolute; bottom:40%; left:48%; width:10px; height:6px; background: #0a0e14; border-radius: 2px; box-shadow: inset 0 0 4px rgba(0,0,0,.8), 0 0 4px rgba(0,0,0,.4); animation: tg-port 3s ease-in-out infinite; }
@keyframes tg-sky { 0% { opacity:.7 } 30% { opacity:.9 } 70% { opacity:1 } 100% { opacity:.8 } }
@keyframes tg-wavem { 0% { transform: translateY(0) scaleX(1) rotate(0) } 25% { transform: translateY(-8px) scaleX(1.02) rotate(1deg) } 50% { transform: translateY(4px) scaleX(.98) rotate(-1deg) } 75% { transform: translateY(-4px) scaleX(1.01) rotate(.5deg) } 100% { transform: translateY(0) scaleX(1) rotate(0) } }
@keyframes tg-wavet { 0% { transform: translateY(0) scaleX(1) } 30% { transform: translateY(6px) scaleX(1.03) } 60% { transform: translateY(-6px) scaleX(.97) } 100% { transform: translateY(0) scaleX(1) } }
@keyframes tg-hull { 0% { transform: rotate(0) translateY(0) } 20% { transform: rotate(8deg) translateY(-4px) } 40% { transform: rotate(-6deg) translateY(2px) } 60% { transform: rotate(10deg) translateY(-6px) } 80% { transform: rotate(-4deg) translateY(3px) } 100% { transform: rotate(0) translateY(0) } }
@keyframes tg-rail { 0%,100% { transform: rotate(0) } 50% { transform: rotate(6deg) } }
@keyframes tg-spray { 0% { transform: scale(.8) translateY(0); opacity:.7 } 25% { transform: scale(1.3) translateY(-12px); opacity:1 } 50% { transform: scale(1.1) translateY(-6px); opacity:.5 } 75% { transform: scale(1.4) translateY(-18px); opacity:.8 } 100% { transform: scale(.8) translateY(0); opacity:.7 } }
@keyframes tg-lightning { 0%,92%,100% { opacity:0 } 93% { opacity:1 } 95% { opacity:.3 } 96% { opacity:1 } 98% { opacity:0 } }
@keyframes tg-port { 0%,100% { transform: scaleX(1) } 50% { transform: scaleX(.8) } }

.scn-watering-at-barcelona { background: linear-gradient(180deg, #d0dce0 0%, #a0b8c8 40%, #8098b0 100%), radial-gradient(ellipse at 60% 0%, #e8f0f0 0%, transparent 50%); }
.scn-watering-at-barcelona .sky-clear { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #e0ecf0 0%, #c0d0e0 50%, #a0b8c8 100%); animation: wb-sky 20s ease-in-out infinite alternate; }
.scn-watering-at-barcelona .harbor-water { position:absolute; bottom:0; left:0; right:0; height:38%; background: linear-gradient(180deg, #8aa8c0 0%, #6080a0 40%, #4a6888 100%); box-shadow: inset 0 8px 16px rgba(0,0,0,.15); animation: wb-water 12s ease-in-out infinite; }
.scn-watering-at-barcelona .quay-stone { position:absolute; bottom:32%; left:5%; right:5%; height:12%; background: linear-gradient(180deg, #b0a890 0%, #8a7e6a 40%, #6a5e4e 100%); border-radius: 2px 2px 0 0; box-shadow: 0 -2px 6px rgba(0,0,0,.2), inset 0 4px 8px rgba(200,190,170,.3); animation: wb-quay 15s ease-in-out infinite alternate; }
.scn-watering-at-barcelona .barrel-row { position:absolute; bottom:36%; left:18%; width:60px; height:20px; background: linear-gradient(180deg, #8a6a4a 0%, #6a4e34 40%, #4a3624 100%); border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%; box-shadow: 0 2px 6px rgba(0,0,0,.3), inset 0 2px 4px rgba(180,140,100,.2); animation: wb-barrel 8s ease-in-out infinite; }
.scn-watering-at-barcelona .figure-carrier { position:absolute; bottom:30%; left:40%; width:18px; height:40px; background: linear-gradient(180deg, #b09880 0%, #8a7860 40%, #6a5a48 100%); border-radius: 30% 30% 40% 40% / 40% 40% 30% 30%; transform-origin: bottom center; box-shadow: 0 2px 4px rgba(0,0,0,.3); animation: wb-carrier 6s ease-in-out infinite; }
.scn-watering-at-barcelona .figure-officer { position:absolute; bottom:30%; left:58%; width:16px; height:38px; background: linear-gradient(180deg, #284060 0%, #1a2e48 40%, #0e1a30 100%); border-radius: 30% 30% 40% 40% / 40% 40% 30% 30%; transform-origin: bottom center; box-shadow: 0 2px 4px rgba(0,0,0,.3); animation: wb-officer 7s ease-in-out infinite alternate; }
.scn-watering-at-barcelona .silk-bale { position:absolute; bottom:34%; left:70%; width:30px; height:22px; background: linear-gradient(180deg, #a06850 0%, #785038 40%, #583828 100%); border-radius: 10% 10% 20% 20% / 20% 20% 30% 30%; box-shadow: 0 2px 6px rgba(0,0,0,.3); animation: wb-silk 10s ease-in-out infinite; }
.scn-watering-at-barcelona .shimmer-air { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 40%, rgba(255,255,240,.3) 0%, transparent 50%); animation: wb-shimmer 8s ease-in-out infinite alternate; pointer-events: none; }
@keyframes wb-sky { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes wb-water { 0% { transform: translateY(0) scaleY(1) } 25% { transform: translateY(-2px) scaleY(1.005) } 50% { transform: translateY(0) scaleY(.995) } 75% { transform: translateY(1px) scaleY(1.002) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes wb-quay { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes wb-barrel { 0%,100% { transform: translateX(0) rotate(0) } 25% { transform: translateX(2px) rotate(.5deg) } 50% { transform: translateX(-1px) rotate(-.5deg) } 75% { transform: translateX(1px) rotate(0) } }
@keyframes wb-carrier { 0% { transform: translateX(0) } 25% { transform: translateX(6px) } 50% { transform: translateX(10px) } 75% { transform: translateX(4px) } 100% { transform: translateX(0) } }
@keyframes wb-officer { 0% { transform: rotate(0) } 50% { transform: rotate(2deg) } 100% { transform: rotate(0) } }
@keyframes wb-silk { 0%,100% { transform: scale(1) } 50% { transform: scale(1.02) } }
@keyframes wb-shimmer { 0% { opacity:.3 } 50% { opacity:.6 } 100% { opacity:.3 } }

/* Louisbourgh taken - harbour scene */
.scn-louisbourgh-taken {
  background: linear-gradient(180deg, #f9d9aa 0%, #e8b77a 40%, #c9955a 100%), radial-gradient(ellipse at 60% 20%, #ffe8b0 0%, transparent 60%);
}
.scn-louisbourgh-taken .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #b0d0f0 0%, #f0d8b0 100%);
  animation: lb-sky 14s ease-in-out infinite alternate;
}
.scn-louisbourgh-taken .sun {
  position: absolute; top: 20%; left: 70%; width: 50px; height: 50px;
  background: radial-gradient(circle, #fff4c0 0%, #f0c060 80%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px #f0c060;
  animation: lb-sun 10s ease-in-out infinite alternate;
}
.scn-louisbourgh-taken .water {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #5a7a8a 0%, #3a5a6a 100%);
  animation: lb-water 8s ease-in-out infinite alternate;
}
.scn-louisbourgh-taken .ship-hull {
  position: absolute; bottom: 35%; left: 30%; width: 80px; height: 30px;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 0 0 30% 30% / 0 0 50% 50%;
  transform: rotate(-2deg);
  animation: lb-bob 6s ease-in-out infinite;
}
.scn-louisbourgh-taken .ship-sail {
  position: absolute; bottom: 43%; left: 35%; width: 50px; height: 60px;
  background: linear-gradient(180deg, #f8f0e0 0%, #d8c8a0 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 40% 40%;
  transform: skewX(-5deg);
  box-shadow: 2px 0 6px rgba(0,0,0,.2);
  animation: lb-sail 9s ease-in-out infinite alternate;
}
.scn-louisbourgh-taken .shore {
  position: absolute; bottom: 45%; left: 5%; right: 70%; height: 12%;
  background: linear-gradient(180deg, #a07a4a 0%, #7a5a2a 100%);
  border-radius: 0 40% 0 0;
  animation: lb-shore 20s ease-in-out infinite alternate;
}
.scn-louisbourgh-taken .flag {
  position: absolute; bottom: 50%; left: 33%; width: 12px; height: 20px;
  background: linear-gradient(0deg, #a0461a 0%, #c8553d 50%, #e8a060 100%);
  border-radius: 2px;
  transform-origin: bottom left;
  animation: lb-flag 4s ease-in-out infinite;
}
.scn-louisbourgh-taken .seagull {
  position: absolute; top: 15%; right: 20%; width: 20px; height: 10px;
  background: linear-gradient(180deg, #ffffff 0%, #d0d0d0 100%);
  border-radius: 50% 50% 0 0;
  clip-path: polygon(0% 50%, 50% 0%, 100% 50%);
  animation: lb-gull 12s linear infinite;
}
@keyframes lb-sky {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes lb-sun {
  0% { transform: translateY(0) scale(1); opacity: 0.9; }
  50% { transform: translateY(-4px) scale(1.02); opacity: 1; }
  100% { transform: translateY(0) scale(1); opacity: 0.95; }
}
@keyframes lb-water {
  0% { transform: translateY(0); background-position: 0 0; }
  50% { transform: translateY(3px); }
  100% { transform: translateY(1px); }
}
@keyframes lb-bob {
  0%, 100% { transform: rotate(-2deg) translateY(0); }
  50% { transform: rotate(0deg) translateY(-3px); }
}
@keyframes lb-sail {
  0% { transform: skewX(-5deg) scaleY(1); }
  50% { transform: skewX(-2deg) scaleY(1.03); }
  100% { transform: skewX(-5deg) scaleY(1); }
}
@keyframes lb-shore {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes lb-flag {
  0%, 100% { transform: rotate(5deg); }
  50% { transform: rotate(-5deg); }
}
@keyframes lb-gull {
  0% { transform: translateX(-20px); }
  100% { transform: translateX(110vw); }
}

/* French governor dines - celebration on deck */
.scn-french-governor-dines {
  background: linear-gradient(180deg, #f0dbc0 0%, #d4b88a 40%, #b89860 100%), radial-gradient(ellipse at 50% 30%, #ffeca0 0%, transparent 70%);
}
.scn-french-governor-dines .sky {
  position: absolute; inset: 0 0 70% 0;
  background: linear-gradient(180deg, #80b0d0 0%, #d0c8a0 100%);
  animation: fg-sky 18s ease-in-out infinite alternate;
}
.scn-french-governor-dines .deck {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 20% 20% 0 0;
}
.scn-french-governor-dines .mast {
  position: absolute; bottom: 20%; left: 50%; width: 8px; height: 80px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1a0a 100%);
  transform: translateX(-50%);
  border-radius: 2px;
  animation: fg-mast 12s ease-in-out infinite alternate;
}
.scn-french-governor-dines .flag-colours {
  position: absolute; bottom: 60%; left: 50%; width: 60px; height: 30px;
  background: linear-gradient(90deg, #a0461a 0%, #a0461a 33%, #f0e0c0 33%, #f0e0c0 66%, #4a6a8a 66%, #4a6a8a 100%);
  transform: translateX(-50%) rotate(5deg);
  border-radius: 2px;
  box-shadow: 0 2px 8px rgba(0,0,0,.3);
  animation: fg-flag 3s ease-in-out infinite alternate;
}
.scn-french-governor-dines .cannon {
  position: absolute; bottom: 15%; left: 20%; width: 30px; height: 12px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 30% 30% / 40% 40% 20% 20%;
  transform: rotate(10deg);
  animation: fg-cannon 5s ease-in-out infinite;
}
.scn-french-governor-dines .smoke {
  position: absolute; bottom: 25%; left: 22%; width: 30px; height: 30px;
  background: radial-gradient(circle, rgba(255,255,255,.6) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(8px);
  animation: fg-smoke 4s ease-out infinite;
}
.scn-french-governor-dines .table {
  position: absolute; bottom: 18%; left: 60%; width: 60px; height: 8px;
  background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%);
  border-radius: 4px;
  box-shadow: 0 2px 4px rgba(0,0,0,.4);
  transform: perspective(200px) rotateX(10deg);
}
.scn-french-governor-dines .figure1 {
  position: absolute; bottom: 16%; left: 48%; width: 16px; height: 32px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fg-figure 8s ease-in-out infinite;
}
.scn-french-governor-dines .figure2 {
  position: absolute; bottom: 16%; left: 62%; width: 14px; height: 30px;
  background: linear-gradient(180deg, #8a6a5a 0%, #4a3a2a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fg-figure 8s ease-in-out infinite 1s;
}
@keyframes fg-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes fg-mast {
  0%, 100% { transform: translateX(-50%) rotate(0deg); }
  50% { transform: translateX(-50%) rotate(1deg); }
}
@keyframes fg-flag {
  0% { transform: translateX(-50%) rotate(5deg) scaleX(1); }
  50% { transform: translateX(-50%) rotate(-3deg) scaleX(1.1); }
  100% { transform: translateX(-50%) rotate(5deg) scaleX(1); }
}
@keyframes fg-cannon {
  0%, 100% { transform: rotate(10deg) translateY(0); }
  50% { transform: rotate(12deg) translateY(-2px); }
}
@keyframes fg-smoke {
  0% { transform: scale(0.5); opacity: 1; }
  50% { transform: scale(1.5); opacity: 0.5; }
  100% { transform: scale(2); opacity: 0; }
}
@keyframes fg-figure {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(2deg); }
}

/* Sailing for England - calm dusk */
.scn-sailing-for-england {
  background: linear-gradient(180deg, #6a7a8a 0%, #8a9aaa 30%, #b0b8c0 100%), radial-gradient(ellipse at 50% 20%, #d0c0a0 0%, transparent 60%);
}
.scn-sailing-for-england .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #8a7a6a 0%, #d0b890 50%, #e8d0b0 100%);
  animation: se-sky 20s ease-in-out infinite alternate;
}
.scn-sailing-for-england .sunset {
  position: absolute; top: 15%; left: 40%; width: 40px; height: 40px;
  background: radial-gradient(circle, #f0c068 0%, #d08838 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 50px 20px #d08838;
  animation: se-sun 15s ease-in-out infinite alternate;
}
.scn-sailing-for-england .sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #4a6a7a 0%, #2a4a5a 100%);
  animation: se-sea 9s ease-in-out infinite alternate;
}
.scn-sailing-for-england .ship-hull-far {
  position: absolute; bottom: 35%; left: 20%; width: 60px; height: 20px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%);
  border-radius: 0 0 30% 30%;
  transform: scale(0.8);
  animation: se-bob 10s ease-in-out infinite;
}
.scn-sailing-for-england .ship-sail-far {
  position: absolute; bottom: 42%; left: 23%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #d0c0a0 0%, #a09070 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 40% 40%;
  transform: skewX(-3deg);
  animation: se-sail 12s ease-in-out infinite alternate;
}
.scn-sailing-for-england .cloud-drift-a {
  position: absolute; top: 10%; left: 10%; width: 100px; height: 20px;
  background: linear-gradient(180deg, rgba(255,255,255,.5) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(8px);
  animation: se-drift 40s linear infinite;
}
.scn-sailing-for-england .cloud-drift-b {
  position: absolute; top: 25%; left: 60%; width: 80px; height: 16px;
  background: linear-gradient(180deg, rgba(255,255,255,.4) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(6px);
  animation: se-drift 60s linear infinite reverse;
}
.scn-sailing-for-england .bird {
  position: absolute; top: 30%; left: 5%; width: 16px; height: 8px;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 0 0;
  clip-path: polygon(0% 50%, 50% 0%, 100% 50%);
  animation: se-bird 25s linear infinite;
}
@keyframes se-sky {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes se-sun {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-3px) scale(1.02); }
  100% { transform: translateY(0) scale(1); }
}
@keyframes se-sea {
  0% { transform: translateY(0); }
  50% { transform: translateY(2px); }
  100% { transform: translateY(0); }
}
@keyframes se-bob {
  0%, 100% { transform: scale(0.8) translateY(0); }
  50% { transform: scale(0.8) translateY(-2px); }
}
@keyframes se-sail {
  0% { transform: skewX(-3deg) scaleY(1); }
  50% { transform: skewX(-1deg) scaleY(1.02); }
  100% { transform: skewX(-3deg) scaleY(1); }
}
@keyframes se-drift {
  0% { transform: translateX(0); }
  100% { transform: translateX(120vw); }
}
@keyframes se-bird {
  0% { transform: translateX(-20px); }
  100% { transform: translateX(110vw); }
}

/* Mistaken identity - tense dusk */
.scn-mistaken-identity {
  background: linear-gradient(180deg, #2a2a3a 0%, #3a3a4a 40%, #4a4a5a 100%), radial-gradient(ellipse at 50% 20%, #8a7a6a 0%, transparent 70%);
}
.scn-mistaken-identity .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #4a3a3a 0%, #6a5a5a 50%, #8a7a6a 100%);
  animation: mi-sky 10s ease-in-out infinite alternate;
}
.scn-mistaken-identity .dark-water {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%);
  animation: mi-water 5s ease-in-out infinite alternate;
}
.scn-mistaken-identity .ship-a-hull {
  position: absolute; bottom: 30%; left: 20%; width: 90px; height: 30px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 0 0 40% 40% / 0 0 60% 60%;
  transform: rotate(2deg);
  box-shadow: 0 4px 8px rgba(0,0,0,.6);
  animation: mi-ship 4s ease-in-out infinite alternate;
}
.scn-mistaken-identity .ship-a-sails {
  position: absolute; bottom: 40%; left: 25%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 40% 40%;
  transform: skewX(-8deg);
  animation: mi-sail 4s ease-in-out infinite alternate;
}
.scn-mistaken-identity .ship-b-hull {
  position: absolute; bottom: 28%; right: 15%; width: 80px; height: 28px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 0 0 40% 40% / 0 0 60% 60%;
  transform: rotate(-3deg);
  box-shadow: 0 4px 8px rgba(0,0,0,.6);
  animation: mi-ship 5s ease-in-out infinite alternate 0.5s;
}
.scn-mistaken-identity .ship-b-sails {
  position: absolute; bottom: 38%; right: 20%; width: 35px; height: 45px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 40% 40%;
  transform: skewX(7deg);
  animation: mi-sail 5s ease-in-out infinite alternate 0.5s;
}
.scn-mistaken-identity .muzzle-flash {
  position: absolute; bottom: 32%; left: 25%; width: 12px; height: 12px;
  background: radial-gradient(circle, #f0a040 0%, #b05020 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px #b05020;
  animation: mi-flash 2s ease-in-out infinite;
}
.scn-mistaken-identity .shadow-figure {
  position: absolute; bottom: 18%; left: 45%; width: 14px; height: 28px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mi-figure 3s ease-in-out infinite;
}
@keyframes mi-sky {
  0% { opacity: 0.7; }
  50% { opacity: 0.9; }
  100% { opacity: 0.8; }
}
@keyframes mi-water {
  0% { transform: translateY(0); }
  50% { transform: translateY(4px); }
  100% { transform: translateY(2px); }
}
@keyframes mi-ship {
  0% { transform: rotate(2deg) translateY(0); }
  50% { transform: rotate(0deg) translateY(-4px); }
  100% { transform: rotate(2deg) translateY(0); }
}
@keyframes mi-sail {
  0% { transform: skewX(-8deg) scaleY(1); }
  50% { transform: skewX(-2deg) scaleY(1.05); }
  100% { transform: skewX(-8deg) scaleY(1); }
}
@keyframes mi-flash {
  0%, 100% { transform: scale(0); opacity: 0; }
  20% { transform: scale(1.5); opacity: 1; }
  50% { transform: scale(0.8); opacity: 0.6; }
  80% { transform: scale(1.2); opacity: 0.3; }
}
@keyframes mi-figure {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  30% { transform: translateY(-2px) rotate(3deg); }
  60% { transform: translateY(1px) rotate(-2deg); }
}

.scn-surf-dangers {
  background:
    linear-gradient(180deg, #f4d9a0 0%, #e8c47a 15%, #b8d4e8 30%, #6a9ec4 60%, #2a5a7a 100%),
    radial-gradient(ellipse at 30% 20%, #fae6b0 0%, transparent 50%);
}
.scn-surf-dangers .sky  { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #f4d9a0 0%, #b8d4e8 70%); }
.scn-surf-dangers .sun  { position:absolute; top:8%; left:72%; width:44px; height:44px; background: radial-gradient(circle, #fff8e0 0%, #f4c842 60%, transparent 72%); border-radius:50%; box-shadow: 0 0 60px 20px rgba(244,200,66,.5), 0 0 120px 40px rgba(244,200,66,.2); animation: sd-sun 18s ease-in-out infinite alternate; }
.scn-surf-dangers .sea-bg { position:absolute; bottom:0; left:0; right:0; height:60%; background: linear-gradient(180deg, #3a7a9a 0%, #1a4a6a 100%); animation: sd-sea 8s ease-in-out infinite; }
.scn-surf-dangers .wave-close { position:absolute; bottom:10%; left:0; right:0; height:28%; background: linear-gradient(180deg, #4a8aaa 0%, #2a5a7a 50%, #1a3a5a 100%); border-radius: 60% 40% 0 0 / 80% 60% 0 0; box-shadow: inset 0 12px 30px rgba(0,0,0,.3); animation: sd-wave 6s ease-in-out infinite alternate; }
.scn-surf-dangers .swimmer { position:absolute; bottom:20%; left:35%; width:20px; height:28px; background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius: 40% 40% 50% 50% / 30% 30% 50% 50%; transform-origin: 50% 80%; animation: sd-swim 2.4s ease-in-out infinite; box-shadow: 0 4px 10px rgba(0,0,0,.4); }
.scn-surf-dangers .foam { position:absolute; bottom:12%; left:0; right:0; height:10%; background: linear-gradient(90deg, rgba(255,255,255,.6) 0%, rgba(255,255,255,.9) 20%, rgba(255,255,255,.4) 50%, rgba(255,255,255,.8) 80%, rgba(255,255,255,.3) 100%); filter: blur(3px); border-radius: 0 0 40% 40% / 0 0 60% 60%; animation: sd-foam 3s ease-in-out infinite alternate; }
.scn-surf-dangers .rock { position:absolute; bottom:28%; left:68%; width:35px; height:22px; background: linear-gradient(135deg, #5a4a3a 0%, #2a1a0a 100%); border-radius: 30% 40% 20% 40% / 40% 50% 30% 50%; box-shadow: 0 6px 12px rgba(0,0,0,.5); transform: rotate(12deg); animation: sd-rock 14s ease-in-out infinite; }
@keyframes sd-sun { 0% { transform: scale(1); opacity:.9; box-shadow: 0 0 60px 20px rgba(244,200,66,.5); } 50% { transform: scale(1.06); opacity:1; box-shadow: 0 0 80px 30px rgba(244,200,66,.6); } 100% { transform: scale(.98); opacity:.85; box-shadow: 0 0 50px 15px rgba(244,200,66,.4); } }
@keyframes sd-sea { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(2px); } }
@keyframes sd-wave { 0% { transform: translateX(-8px) translateY(0) scaleX(1); } 50% { transform: translateX(4px) translateY(-6px) scaleX(1.02); } 100% { transform: translateX(-4px) translateY(2px) scaleX(.98); } }
@keyframes sd-swim { 0% { transform: translateX(0) translateY(0) rotate(-6deg); } 25% { transform: translateX(6px) translateY(-3px) rotate(3deg); } 50% { transform: translateX(12px) translateY(0) rotate(-4deg); } 75% { transform: translateX(18px) translateY(-2px) rotate(4deg); } 100% { transform: translateX(24px) translateY(0) rotate(-2deg); } }
@keyframes sd-foam { 0% { opacity:.7; transform: scaleY(1) translateX(-6px); } 50% { opacity:1; transform: scaleY(1.3) translateX(0); } 100% { opacity:.6; transform: scaleY(.8) translateX(6px); } }
@keyframes sd-rock { 0% { transform: rotate(10deg) translateY(0); } 50% { transform: rotate(14deg) translateY(-2px); } 100% { transform: rotate(8deg) translateY(0); } }

.scn-joseph-clipson-kidnap {
  background:
    linear-gradient(180deg, #d4c4a0 0%, #a08060 20%, #4a3a2a 50%, #1a1a1a 100%),
    radial-gradient(ellipse at 40% 30%, #e8d8b0 0%, transparent 60%);
}
.scn-joseph-clipson-kidnap .sky-bg { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #d4c4a0 0%, #b89870 50%, #8a7040 100%); }
.scn-joseph-clipson-kidnap .ship-deck { position:absolute; bottom:20%; left:0; right:0; height:40%; background: linear-gradient(180deg, #6a5030 0%, #3a2a1a 100%); border-radius: 0 0 20% 20% / 0 0 10% 10%; box-shadow: inset 0 10px 30px rgba(0,0,0,.5); animation: jc-rock 6s ease-in-out infinite; }
.scn-joseph-clipson-kidnap .hull { position:absolute; bottom:12%; left:5%; right:5%; height:30%; background: linear-gradient(180deg, #4a3020 0%, #2a1a0a 100%); border-radius: 0 0 30% 40% / 0 0 50% 60%; box-shadow: 0 -6px 20px rgba(0,0,0,.4); }
.scn-joseph-clipson-kidnap .sail-fore { position:absolute; top:10%; right:18%; width:70px; height:90px; background: linear-gradient(135deg, #eee8d8 0%, #c8b898 50%, #a08868 100%); clip-path: polygon(50% 0%, 0% 100%, 100% 100%); opacity:.85; animation: jc-sail 8s ease-in-out infinite; }
.scn-joseph-clipson-kidnap .figure-kidnapper { position:absolute; bottom:30%; right:30%; width:28px; height:50px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 60%, #0a0a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 20% 20%; box-shadow: 0 4px 12px rgba(0,0,0,.6); animation: jc-fig-lunge 3.6s ease-in-out infinite; }
.scn-joseph-clipson-kidnap .figure-victim { position:absolute; bottom:30%; left:36%; width:24px; height:48px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 60%, #2a1a0a 100%); border-radius: 45% 40% 30% 35% / 55% 50% 20% 25%; transform-origin: bottom center; animation: jc-fig-reel 4.2s ease-in-out infinite; }
.scn-joseph-clipson-kidnap .chain { position:absolute; bottom:32%; left:38%; right:40%; height:4px; background: linear-gradient(90deg, #5a4a3a 0%, #8a7050 20%, #5a4a3a 40%, #8a7050 60%, #5a4a3a 80%, #8a7050 100%); border-radius: 2px; filter: blur(1px); animation: jc-chain 2s ease-in-out infinite; }
.scn-joseph-clipson-kidnap .mast { position:absolute; bottom:20%; left:50%; width:8px; height:70%; transform:translateX(-50%); background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 2px; box-shadow: 2px 0 8px rgba(0,0,0,.3); }
@keyframes jc-rock { 0% { transform: rotate(-1deg) translateY(0); } 25% { transform: rotate(0) translateY(-2px); } 50% { transform: rotate(1.5deg) translateY(0); } 75% { transform: rotate(0) translateY(-3px); } 100% { transform: rotate(-1deg) translateY(0); } }
@keyframes jc-sail { 0% { transform: translateX(0) skewX(0); } 50% { transform: translateX(4px) skewX(2deg); } 100% { transform: translateX(-2px) skewX(-1deg); } }
@keyframes jc-fig-lunge { 0% { transform: translateX(0) translateY(0) rotate(0); } 20% { transform: translateX(-14px) translateY(-4px) rotate(-6deg); } 40% { transform: translateX(-4px) translateY(0) rotate(2deg); } 60% { transform: translateX(-12px) translateY(-2px) rotate(-4deg); } 80% { transform: translateX(-2px) translateY(-1px) rotate(0); } 100% { transform: translateX(0) translateY(0) rotate(0); } }
@keyframes jc-fig-reel { 0% { transform: translateX(0) rotate(0); } 30% { transform: translateX(-8px) rotate(-8deg); } 60% { transform: translateX(-2px) rotate(4deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes jc-chain { 0% { opacity:.6; transform: scaleX(1); } 50% { opacity:1; transform: scaleX(1.08) translateY(1px); } 100% { opacity:.5; transform: scaleX(.95) translateY(-1px); } }

.scn-learn-navigation {
  background:
    linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 40%, #0a0a1a 80%, #050510 100%),
    radial-gradient(ellipse at 50% 60%, #3a3a4a 0%, transparent 70%);
}
.scn-learn-navigation .wall { position:absolute; inset:0; background: linear-gradient(135deg, #2a2a3a 0%, #1a1a28 50%, #0a0a18 100%); }
.scn-learn-navigation .desk { position:absolute; bottom:8%; left:10%; right:10%; height:30%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 6% 6% 0 0 / 12% 12% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.5), 0 -4px 15px rgba(0,0,0,.3); }
.scn-learn-navigation .candle { position:absolute; bottom:35%; left:48%; width:12px; height:28px; background: linear-gradient(180deg, #f4e0c0 0%, #c8a880 100%); border-radius: 3px 3px 4px 4px; box-shadow: 0 0 20px 6px rgba(244,200,100,.5); animation: ln-candle 4s ease-in-out infinite; }
.scn-learn-navigation .candle::before { content:''; position:absolute; top:-8px; left:50%; transform:translateX(-50%); width:8px; height:12px; background: radial-gradient(circle, #ffd060 0%, #f4a030 50%, transparent 100%); border-radius:50%; animation: ln-flame 2.2s ease-in-out infinite; }
.scn-learn-navigation .map-scroll { position:absolute; bottom:18%; left:22%; width:55%; height:18%; background: linear-gradient(135deg, #d4c8a8 0%, #b8a888 50%, #a09070 100%); border-radius: 2% 2% 8% 8% / 4% 4% 10% 10%; box-shadow: 0 4px 12px rgba(0,0,0,.5); transform: rotate(-.5deg); animation: ln-map 12s ease-in-out infinite alternate; }
.scn-learn-navigation .compass { position:absolute; bottom:22%; left:40%; width:20px; height:20px; background: radial-gradient(circle, #c8a070 0%, #8a6a4a 60%, #5a4a3a 100%); border-radius:50%; box-shadow: 0 0 12px 3px rgba(200,160,112,.3); border:2px solid #6a5a4a; animation: ln-compass 20s linear infinite; }
.scn-learn-navigation .shadow-fig { position:absolute; bottom:8%; left:60%; width:30px; height:55px; background: linear-gradient(180deg, rgba(20,20,30,.7) 0%, rgba(10,10,20,.9) 100%); border-radius: 40% 40% 30% 30% / 50% 50% 20% 20%; box-shadow: 0 0 20px 5px rgba(0,0,0,.4); animation: ln-shadow 6s ease-in-out infinite; }
.scn-learn-navigation .window-glow { position:absolute; top:12%; right:10%; width:60px; height:70px; background: radial-gradient(ellipse, rgba(100,140,200,.15) 0%, transparent 70%); border-radius:10% 10% 20% 20%; box-shadow: 0 0 40px 10px rgba(100,140,200,.08); animation: ln-win 14s ease-in-out infinite alternate; }
@keyframes ln-candle { 0% { box-shadow: 0 0 20px 6px rgba(244,200,100,.5); } 50% { box-shadow: 0 0 28px 10px rgba(244,200,100,.6); } 100% { box-shadow: 0 0 18px 4px rgba(244,200,100,.4); } }
@keyframes ln-flame { 0% { transform: translateX(-50%) scale(1) rotate(0); opacity:.9; } 25% { transform: translateX(-50%) scale(1.1) rotate(-2deg); opacity:1; } 50% { transform: translateX(-50%) scale(.95) rotate(0); opacity:.85; } 75% { transform: translateX(-50%) scale(1.05) rotate(2deg); opacity:.95; } 100% { transform: translateX(-50%) scale(1) rotate(0); opacity:.9; } }
@keyframes ln-map { 0% { transform: rotate(-.5deg) translateY(0); } 50% { transform: rotate(.3deg) translateY(-2px); } 100% { transform: rotate(-.8deg) translateY(0); } }
@keyframes ln-compass { 0% { transform: rotate(0); } 100% { transform: rotate(360deg); } }
@keyframes ln-shadow { 0% { transform: translateX(0) rotate(0); opacity:.6; } 50% { transform: translateX(4px) rotate(2deg); opacity:.8; } 100% { transform: translateX(0) rotate(0); opacity:.6; } }
@keyframes ln-win { 0% { opacity:.3; } 50% { opacity:.6; } 100% { opacity:.2; } }

.scn-sailing-providence {
  background:
    linear-gradient(180deg, #f0d4a0 0%, #d4b880 20%, #8ab8d4 40%, #5a8aaa 60%, #2a5a7a 100%),
    radial-gradient(ellipse at 60% 25%, #fae6b0 0%, transparent 50%);
}
.scn-sailing-providence .sky-clear { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #f0d4a0 0%, #8ab8d4 80%); }
.scn-sailing-providence .sun-disk { position:absolute; top:6%; right:18%; width:50px; height:50px; background: radial-gradient(circle, #fff4d0 0%, #f0c842 50%, transparent 80%); border-radius:50%; box-shadow: 0 0 80px 30px rgba(240,200,66,.4), 0 0 160px 60px rgba(240,200,66,.15); animation: sp-sun 20s ease-in-out infinite alternate; }
.scn-sailing-providence .sea { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #5a8aaa 0%, #3a6a8a 50%, #1a4a6a 100%); animation: sp-sea 10s ease-in-out infinite; }
.scn-sailing-providence .ship { position:absolute; bottom:20%; left:30%; width:70px; height:40px; background: linear-gradient(180deg, #6a5030 0%, #3a2a1a 100%); border-radius: 0 0 30% 40% / 0 0 60% 70%; box-shadow: 0 6px 20px rgba(0,0,0,.4); animation: sp-ship 8s ease-in-out infinite; }
.scn-sailing-providence .sail-main { position:absolute; bottom:32%; left:36%; width:36px; height:60px; background: linear-gradient(135deg, #f0e8d8 0%, #d0c0a8 50%, #b0a088 100%); clip-path: polygon(100% 0, 0% 100%, 100% 100%); opacity:.9; animation: sp-sail-m 10s ease-in-out infinite; }
.scn-sailing-providence .sail-jib { position:absolute; bottom:36%; left:22%; width:30px; height:50px; background: linear-gradient(135deg, #eee8d8 0%, #c8b898 50%, #a08868 100%); clip-path: polygon(0 0, 100% 100%, 0% 100%); opacity:.85; animation: sp-sail-j 12s ease-in-out infinite; }
.scn-sailing-providence .wake { position:absolute; bottom:14%; left:20%; right:0; height:8%; background: linear-gradient(90deg, rgba(255,255,255,.5) 0%, rgba(200,220,240,.3) 40%, transparent 100%); border-radius: 0 50% 50% 0 / 0 60% 60% 0; filter: blur(2px); animation: sp-wake 4s ease-in-out infinite; }
.scn-sailing-providence .gull { position:absolute; top:20%; left:50%; width:16px; height:10px; background: linear-gradient(135deg, #e8e0d0 0%, #c8c0b0 100%); clip-path: polygon(0 50%, 30% 0, 50% 40%, 70% 0, 100% 50%, 70% 100%, 50% 60%, 30% 100%); animation: sp-gull 18s linear infinite; }
@keyframes sp-sun { 0% { transform: scale(1); opacity:.9; box-shadow: 0 0 80px 30px rgba(240,200,66,.4); } 50% { transform: scale(1.04); opacity:1; box-shadow: 0 0 100px 40px rgba(240,200,66,.5); } 100% { transform: scale(.98); opacity:.85; box-shadow: 0 0 60px 20px rgba(240,200,66,.3); } }
@keyframes sp-sea { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(3px); } }
@keyframes sp-ship { 0% { transform: translateX(0) rotate(-.5deg); } 25% { transform: translateX(4px) rotate(0); } 50% { transform: translateX(0) rotate(.8deg); } 75% { transform: translateX(-3px) rotate(0); } 100% { transform: translateX(0) rotate(-.5deg); } }
@keyframes sp-sail-m { 0% { transform: skewX(0); } 50% { transform: skewX(3deg); } 100% { transform: skewX(-1deg); } }
@keyframes sp-sail-j { 0% { transform: skewX(0) translateY(0); } 50% { transform: skewX(-2deg) translateY(-2px); } 100% { transform: skewX(1deg) translateY(0); } }
@keyframes sp-wake { 0% { transform: scaleX(1) translateX(0); opacity:.5; } 50% { transform: scaleX(1.2) translateX(10px); opacity:.7; } 100% { transform: scaleX(.9) translateX(0); opacity:.4; } }
@keyframes sp-gull { 0% { transform: translateX(-20px) translateY(0) scale(1); } 25% { transform: translateX(40px) translateY(-8px) scale(1.05); } 50% { transform: translateX(100px) translateY(0) scale(.95); } 75% { transform: translateX(160px) translateY(-5px) scale(1); } 100% { transform: translateX(200px) translateY(0) scale(.9); } }

.scn-savannah-watch-house {
  background:
    linear-gradient(135deg, #1e1a2e 0%, #2a2438 40%, #3d2f44 100%),
    radial-gradient(ellipse at 30% 80%, #2a1a2a 0%, transparent 70%);
}

.scn-savannah-watch-house .wall-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #1e1a2e 0%, #2a2438 50%, #1a1625 100%);
  animation: swh-wall 20s ease-in-out infinite alternate;
}
.scn-savannah-watch-house .wall-side {
  position: absolute; top: 5%; left: 5%; right: 5%; bottom: 0;
  background: linear-gradient(135deg, #2e2844 0%, #1e1a2e 100%);
  clip-path: polygon(0 0, 100% 0, 95% 100%, 5% 100%);
  box-shadow: inset 0 0 30px rgba(0,0,0,0.8);
}
.scn-savannah-watch-house .window-night {
  position: absolute; top: 20%; left: 65%; width: 60px; height: 70px;
  background: linear-gradient(180deg, #0a0a20 0%, #141430 100%);
  border: 4px solid #4a3a2a; border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(255,255,200,0.1);
  animation: swh-window 12s ease-in-out infinite alternate;
}
.scn-savannah-watch-house .lamp-glow {
  position: absolute; bottom: 45%; left: 30%; transform: translate(-50%,50%);
  width: 80px; height: 80px;
  background: radial-gradient(circle, #ffd080 0%, #c07030 40%, transparent 80%);
  animation: swh-lampglow 4s ease-in-out infinite alternate;
}
.scn-savannah-watch-house .lamp-body {
  position: absolute; bottom: 42%; left: 30%; transform: translateX(-50%);
  width: 24px; height: 40px;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.6);
}
.scn-savannah-watch-house .table-silhouette {
  position: absolute; bottom: 20%; left: 20%; right: 20%; height: 20px;
  background: #1a1220; border-radius: 4px 4px 0 0;
  box-shadow: 0 8px 20px rgba(0,0,0,0.7);
  animation: swh-table 6s ease-in-out infinite alternate;
}
.scn-savannah-watch-house .figure-sitting {
  position: absolute; bottom: 15%; left: 40%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: swh-figure 6s ease-in-out infinite;
}
.scn-savannah-watch-house .shadow-shape {
  position: absolute; bottom: 10%; left: 35%; right: 30%; height: 15px;
  background: rgba(0,0,0,0.6); filter: blur(5px);
  border-radius: 50%;
  animation: swh-shadow 6s ease-in-out infinite alternate;
}

@keyframes swh-wall { 0% { opacity: 0.6; } 50% { opacity: 0.9; } 100% { opacity: 0.7; } }
@keyframes swh-window { 0% { box-shadow: inset 0 0 10px rgba(255,255,200,0.05); } 100% { box-shadow: inset 0 0 40px rgba(255,255,200,0.15); } }
@keyframes swh-lampglow { 0% { opacity: 0.5; transform: translate(-50%,50%) scale(0.9); } 100% { opacity: 1; transform: translate(-50%,50%) scale(1.1); } }
@keyframes swh-table { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes swh-figure { 0% { transform: translateX(0) rotate(-1deg); } 25% { transform: translateX(4px) rotate(2deg); } 50% { transform: translateX(0) rotate(0); } 75% { transform: translateX(-4px) rotate(1deg); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes swh-shadow { 0% { transform: scaleX(1); } 100% { transform: scaleX(1.2); } }

/* ---- SCENE 2: watch-house-flogging-threat ---- */
.scn-watch-house-flogging-threat {
  background:
    linear-gradient(180deg, #1a1218 0%, #2a1a22 30%, #1f1218 100%),
    radial-gradient(ellipse at 50% 20%, #3a1a22 0%, transparent 60%);
}

.scn-watch-house-flogging-threat .cell-back {
  position: absolute; inset: 0; background: linear-gradient(180deg, #1a1218 0%, #251a20 60%, #120a10 100%);
  animation: whf-cell 15s ease-in-out infinite alternate;
}
.scn-watch-house-flogging-threat .cell-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #2a1a20 0%, #1a0a10 100%);
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.8);
}
.scn-watch-house-flogging-threat .lantern-harsh {
  position: absolute; top: 20%; left: 60%; transform: translateX(-50%);
  width: 30px; height: 50px;
  background: radial-gradient(circle at 50% 30%, #d08050 0%, #a06030 40%, transparent 80%);
  border-radius: 20px;
  box-shadow: 0 0 50px 10px #c07040, 0 0 100px 20px rgba(192,112,64,0.3);
  animation: whf-lamp 3s ease-in-out infinite alternate;
}
.scn-watch-house-flogging-threat .silhouette-whip {
  position: absolute; bottom: 25%; left: 40%; width: 60px; height: 90px;
  background: linear-gradient(180deg, #2a1a22 0%, #100a10 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom left;
  animation: whf-whip 2s ease-in-out infinite;
}
.scn-watch-house-flogging-threat .silhouette-cower {
  position: absolute; bottom: 25%; left: 60%; width: 50px; height: 70px;
  background: linear-gradient(180deg, #1a1218 0%, #0a0608 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 20% 20%;
  transform-origin: bottom center;
  animation: whf-cower 3s ease-in-out infinite;
}
.scn-watch-house-flogging-threat .silhouette-woman {
  position: absolute; bottom: 25%; left: 20%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #1a141a 0%, #0a0608 100%);
  border-radius: 50% 50% 35% 35% / 60% 60% 20% 20%;
  animation: whf-woman 4s ease-in-out infinite alternate;
}
.scn-watch-house-flogging-threat .chain-detail {
  position: absolute; bottom: 30%; left: 35%; width: 40px; height: 8px;
  background: #3a2a2a; border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
  animation: whf-chain 2s ease-in-out infinite;
}
.scn-watch-house-flogging-threat .dirt-splash {
  position: absolute; bottom: 22%; left: 45%; width: 20px; height: 20px;
  background: radial-gradient(circle, #3a2a2a 0%, #1a1218 100%);
  border-radius: 50%;
  filter: blur(2px);
  animation: whf-dirt 4s ease-in-out infinite alternate;
}

@keyframes whf-cell { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes whf-lamp { 0% { transform: translateX(-50%) scale(0.9); opacity: 0.6; } 100% { transform: translateX(-50%) scale(1.05); opacity: 1; } }
@keyframes whf-whip { 0% { transform: rotate(-10deg) scaleY(1); } 50% { transform: rotate(20deg) scaleY(1.2); } 100% { transform: rotate(-10deg) scaleY(1); } }
@keyframes whf-cower { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(-5px) rotate(-5deg) scale(0.95); } 100% { transform: translateX(0) rotate(0); } }
@keyframes whf-woman { 0% { transform: translateX(0) rotate(0); } 100% { transform: translateX(3px) rotate(2deg); } }
@keyframes whf-chain { 0% { transform: translateY(0); } 50% { transform: translateY(2px); } 100% { transform: translateY(0); } }
@keyframes whf-dirt { 0% { opacity: 0.3; } 100% { opacity: 0.7; } }

/* ---- SCENE 3: kidnapping-attempt ---- */
.scn-kidnapping-attempt {
  background:
    linear-gradient(180deg, #f5e6c0 0%, #e8d4a0 40%, #c8b080 100%),
    radial-gradient(ellipse at 80% 10%, #fff5d0 0%, transparent 60%);
}

.scn-kidnapping-attempt .sky-bright {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #f0e0c0 0%, #e0c8a0 100%);
  animation: kid-sky 15s ease-in-out infinite alternate;
}
.scn-kidnapping-attempt .sun-ball {
  position: absolute; top: 5%; right: 20%; width: 80px; height: 80px;
  background: radial-gradient(circle, #fff8e0 0%, #f0d090 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 100px 30px rgba(240,208,144,0.5);
  animation: kid-sun 10s ease-in-out infinite alternate;
}
.scn-kidnapping-attempt .ground-dusty {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #b8a080 0%, #8a7050 100%);
  border-radius: 60% 40% 0 0 / 30% 40% 0 0;
}
.scn-kidnapping-attempt .road-line {
  position: absolute; bottom: 15%; left: 10%; right: 10%; height: 4px;
  background: #a08060; border-radius: 2px;
  box-shadow: 0 8px 20px rgba(0,0,0,0.3);
  animation: kid-road 8s ease-in-out infinite alternate;
}
.scn-kidnapping-attempt .man-foreground {
  position: absolute; bottom: 8%; left: 45%; width: 50px; height: 100px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: kid-man-f 4s ease-in-out infinite;
}
.scn-kidnapping-attempt .man-back-left {
  position: absolute; bottom: 12%; left: 30%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: kid-man-l 3s ease-in-out infinite alternate;
}
.scn-kidnapping-attempt .man-back-right {
  position: absolute; bottom: 12%; left: 55%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: kid-man-r 3.5s ease-in-out infinite alternate;
}
.scn-kidnapping-attempt .shadow-hard-1 {
  position: absolute; bottom: 5%; left: 28%; width: 50px; height: 15px;
  background: rgba(0,0,0,0.3); filter: blur(3px);
  border-radius: 50%;
  animation: kid-shadow1 3s ease-in-out infinite alternate;
}
.scn-kidnapping-attempt .shadow-hard-2 {
  position: absolute; bottom: 5%; left: 50%; width: 60px; height: 15px;
  background: rgba(0,0,0,0.3); filter: blur(3px);
  border-radius: 50%;
  animation: kid-shadow2 3.5s ease-in-out infinite alternate;
}

@keyframes kid-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes kid-sun { 0% { transform: translateY(0) scale(0.95); } 100% { transform: translateY(-5px) scale(1.05); } }
@keyframes kid-road { 0% { width: 80%; } 100% { width: 85%; } }
@keyframes kid-man-f { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(-8px) rotate(-2deg); } 50% { transform: translateX(5px) rotate(2deg); } 75% { transform: translateX(-3px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes kid-man-l { 0% { transform: translateX(0) rotate(0); } 100% { transform: translateX(10px) rotate(5deg); } }
@keyframes kid-man-r { 0% { transform: translateX(0) rotate(0); } 100% { transform: translateX(-10px) rotate(-5deg); } }
@keyframes kid-shadow1 { 0% { transform: scaleX(1); } 100% { transform: scaleX(1.3); } }
@keyframes kid-shadow2 { 0% { transform: scaleX(1); } 100% { transform: scaleX(1.2); } }

/* ---- SCENE 4: funeral-service ---- */
.scn-funeral-service {
  background:
    linear-gradient(180deg, #b8d4e8 0%, #e0e8f0 40%, #c8d8e0 100%),
    radial-gradient(ellipse at 70% 20%, #f0f4ff 0%, transparent 60%);
}

.scn-funeral-service .sky-clear {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #c0d8e8 0%, #e0e8f0 100%);
  animation: fun-sky 20s ease-in-out infinite alternate;
}
.scn-funeral-service .clouds-soft {
  position: absolute; top: 5%; left: 10%; right: 70%; height: 30px;
  background: rgba(255,255,255,0.7); filter: blur(8px);
  border-radius: 50%;
  animation: fun-cloud 50s linear infinite;
}
.scn-funeral-service .ground-grass {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #7a9a6a 0%, #5a7a4a 100%);
  border-radius: 30% 70% 0 0 / 20% 40% 0 0;
}
.scn-funeral-service .grave-mound {
  position: absolute; bottom: 28%; left: 50%; transform: translateX(-50%);
  width: 120px; height: 40px;
  background: linear-gradient(180deg, #6a8a5a 0%, #4a6a3a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.2);
  animation: fun-mound 5s ease-in-out infinite alternate;
}
.scn-funeral-service .coffin-wood {
  position: absolute; bottom: 30%; left: 50%; transform: translateX(-50%);
  width: 90px; height: 30px;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%);
  border-radius: 8% 8% 20% 20% / 30% 30% 10% 10%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.4);
  animation: fun-coffin 6s ease-in-out infinite;
}
.scn-funeral-service .minister-figure {
  position: absolute; bottom: 18%; left: 35%; width: 40px; height: 100px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%;
  transform-origin: bottom center;
  animation: fun-minister 6s ease-in-out infinite;
}
.scn-funeral-service .mourner-line {
  position: absolute; bottom: 18%; left: 45%; right: 10%; height: 80px;
  display: flex; gap: 5px; /* but no text allowed, just shapes */
  /* we'll use multiple divs for mourners, but scene id must have 5-9 divs. Already have 9. So mourner-line will be a single shape representing a group. */
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%;
  /* not ideal, but fine */
}
.scn-funeral-service .flower-wreath {
  position: absolute; bottom: 40%; left: 48%; transform: translateX(-50%);
  width: 30px; height: 30px;
  background: radial-gradient(circle, #f0d0a0 0%, #c09060 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 5px rgba(240,208,160,0.4);
  animation: fun-flower 8s ease-in-out infinite alternate;
}
.scn-funeral-service .tree-branch {
  position: absolute; top: 20%; left: 5%; width: 80px; height: 120px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  clip-path: polygon(0 0, 30% 10%, 20% 40%, 70% 60%, 50% 80%, 80% 100%, 0 100%);
  animation: fun-tree 12s ease-in-out infinite alternate;
}

@keyframes fun-sky { 0% { opacity: 0.8; } 100% { opacity: 1; } }
@keyframes fun-cloud { 0% { transform: translateX(-30px); } 100% { transform: translateX(120vw); } }
@keyframes fun-mound { 0% { transform: translateX(-50%) scale(1); } 100% { transform: translateX(-50%) scale(1.02); } }
@keyframes fun-coffin { 0% { transform: translateX(-50%) rotate(0); } 50% { transform: translateX(-50%) rotate(1deg); } 100% { transform: translateX(-50%) rotate(0); } }
@keyframes fun-minister { 0% { transform: translateX(0) rotate(-0.5deg); } 50% { transform: translateX(2px) rotate(0.5deg); } 100% { transform: translateX(0) rotate(-0.5deg); } }
@keyframes fun-flower { 0% { opacity: 0.7; transform: translateX(-50%) scale(0.9); } 100% { opacity: 1; transform: translateX(-50%) scale(1.1); } }
@keyframes fun-tree { 0% { transform: rotate(-2deg); } 100% { transform: rotate(2deg); } }

/* Scene: sail-west-indies – dark dawn at sea */
.scn-sail-west-indies {
  background: linear-gradient(180deg, #1a1a3e 0%, #2c2244 30%, #4a3a6e 70%, #6a5a8e 100%), radial-gradient(ellipse at 30% 0%, #8a7aae 0%, transparent 60%);
}
.scn-sail-west-indies .swi-sky {
  position:absolute; inset:0 0 40% 0;
  background: linear-gradient(180deg, #2a1a4e 0%, #4a3a6e 40%, #7a6a9e 100%);
  animation: swi-sky 15s ease-in-out infinite alternate;
}
.scn-sail-west-indies .swi-sun {
  position:absolute; top:15%; left:20%;
  width:40px; height:40px;
  background: radial-gradient(circle, #ffc080 0%, #e09050 40%, transparent 70%);
  border-radius:50%;
  box-shadow: 0 0 60px 20px rgba(255,192,128,.4), 0 0 120px 40px rgba(255,192,128,.2);
  animation: swi-sunrise 20s ease-in-out infinite alternate;
}
.scn-sail-west-indies .swi-sea {
  position:absolute; bottom:0; left:0; right:0; height:42%;
  background: linear-gradient(0deg, #0a1a2a 0%, #1a2a4a 50%, #2a3a5a 100%);
  animation: swi-waves 8s ease-in-out infinite;
}
.scn-sail-west-indies .swi-ship {
  position:absolute; bottom:28%; left:50%;
  width:120px; height:40px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 30% 30% 10% 10% / 60% 60% 20% 20%;
  box-shadow: 0 4px 12px rgba(0,0,0,.6);
  animation: swi-rock 6s ease-in-out infinite;
}
.scn-sail-west-indies .swi-sail-fore {
  position:absolute; bottom:40%; left:44%;
  width:2px; height:50px;
  background: #8a7a6a;
  border-radius: 20%;
  box-shadow: -10px -10px 0 0 #d0c0a0, -15px -15px 0 0 #e0d0b0;
  transform-origin: bottom center;
  animation: swi-sail 4s ease-in-out infinite;
}
.scn-sail-west-indies .swi-sail-aft {
  position:absolute; bottom:38%; left:55%;
  width:2px; height:45px;
  background: #8a7a6a;
  border-radius: 20%;
  box-shadow: 8px -8px 0 0 #c0b090, 12px -12px 0 0 #d0c0a0;
  transform-origin: bottom center;
  animation: swi-sail 5s ease-in-out infinite reverse;
}
.scn-sail-west-indies .swi-figure {
  position:absolute; bottom:30%; left:46%;
  width:14px; height:30px;
  background: #1a1a2a;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: swi-figure 4s ease-in-out infinite;
}
.scn-sail-west-indies .swi-cloud-a {
  position:absolute; top:10%; left:60%;
  width:70px; height:15px;
  background: rgba(200,180,160,.3);
  filter: blur(5px);
  border-radius:50%;
  animation: swi-cloud 40s linear infinite;
}
.scn-sail-west-indies .swi-cloud-b {
  position:absolute; top:20%; left:10%;
  width:50px; height:10px;
  background: rgba(200,180,160,.2);
  filter: blur(4px);
  border-radius:50%;
  animation: swi-cloud 55s linear infinite reverse;
}
@keyframes swi-sky { 0%{opacity:.8} 50%{opacity:1} 100%{opacity:.7} }
@keyframes swi-sunrise { 0%{transform:translateY(0) scale(1); opacity:.7} 50%{transform:translateY(-10px) scale(1.1); opacity:1} 100%{transform:translateY(5px) scale(.95); opacity:.8} }
@keyframes swi-waves { 0%{transform:scaleY(1)} 50%{transform:scaleY(1.03)} 100%{transform:scaleY(1)} }
@keyframes swi-rock { 0%{transform:translateX(-50%) rotate(-2deg)} 50%{transform:translateX(-50%) rotate(2deg)} 100%{transform:translateX(-50%) rotate(-2deg)} }
@keyframes swi-sail { 0%{transform:rotate(-5deg)} 50%{transform:rotate(5deg)} 100%{transform:rotate(-5deg)} }
@keyframes swi-figure { 0%{transform:translateY(0) rotate(-2deg)} 50%{transform:translateY(-3px) rotate(2deg)} 100%{transform:translateY(0) rotate(-2deg)} }
@keyframes swi-cloud { 0%{transform:translateX(0)} 50%{transform:translateX(40px)} 100%{transform:translateX(80px)} }

/* Scene: arrive-montserrat – dark sunlit arrival at island */
.scn-arrive-montserrat {
  background: linear-gradient(180deg, #2a4a6a 0%, #4a6a8a 30%, #8a9aaa 70%, #aabbcc 100%), radial-gradient(ellipse at 70% 20%, #fff0c0 0%, transparent 50%);
}
.scn-arrive-montserrat .am-sky {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(180deg, #4a6a8a 0%, #8a9aa0 100%);
  animation: am-sky 12s ease-in-out infinite alternate;
}
.scn-arrive-montserrat .am-sun {
  position:absolute; top:15%; right:20%;
  width:50px; height:50px;
  background: radial-gradient(circle, #ffd090 0%, #e0a050 40%, transparent 70%);
  border-radius:50%;
  box-shadow: 0 0 80px 30px rgba(255,208,144,.5), 0 0 160px 60px rgba(255,208,144,.3);
  animation: am-sun 10s ease-in-out infinite alternate;
}
.scn-arrive-montserrat .am-island {
  position:absolute; bottom:20%; left:20%; right:40%;
  height:35%;
  background: linear-gradient(180deg, #5a7a4a 0%, #3a5a2a 50%, #1a3a0a 100%);
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,.4);
  animation: am-island 20s ease-in-out infinite alternate;
}
.scn-arrive-montserrat .am-sea {
  position:absolute; bottom:0; left:0; right:0; height:35%;
  background: linear-gradient(0deg, #1a2a4a 0%, #2a4a6a 50%, #3a5a7a 100%);
  animation: am-sea 8s ease-in-out infinite;
}
.scn-arrive-montserrat .am-ship {
  position:absolute; bottom:20%; left:55%;
  width:100px; height:35px;
  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 10px rgba(0,0,0,.6);
  animation: am-rock 6s ease-in-out infinite;
}
.scn-arrive-montserrat .am-sail {
  position:absolute; bottom:26%; left:57%;
  width:2px; height:40px;
  background: #8a7a5a;
  border-radius: 20%;
  box-shadow: -12px -12px 0 0 #c0a880, -18px -18px 0 0 #d0b090;
  transform-origin: bottom center;
  animation: am-sail 4s ease-in-out infinite;
}
.scn-arrive-montserrat .am-figure {
  position:absolute; bottom:22%; left:54%;
  width:12px; height:28px;
  background: #1a1a2a;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: am-figure 5s ease-in-out infinite;
}
.scn-arrive-montserrat .am-cloud {
  position:absolute; top:12%; left:10%;
  width:60px; height:12px;
  background: rgba(200,190,180,.3);
  filter: blur(4px);
  border-radius:50%;
  animation: am-cloud 45s linear infinite;
}
@keyframes am-sky { 0%{opacity:.8} 50%{opacity:1} 100%{opacity:.9} }
@keyframes am-sun { 0%{transform:scale(1); opacity:.8} 50%{transform:scale(1.1); opacity:1} 100%{transform:scale(.95); opacity:.9} }
@keyframes am-island { 0%{transform:translateY(0)} 50%{transform:translateY(-5px)} 100%{transform:translateY(0)} }
@keyframes am-sea { 0%{transform:scaleY(1)} 50%{transform:scaleY(1.02)} 100%{transform:scaleY(1)} }
@keyframes am-rock { 0%{transform:translateX(-50%) rotate(-2deg)} 50%{transform:translateX(-50%) rotate(2deg)} 100%{transform:translateX(-50%) rotate(-2deg)} }
@keyframes am-sail { 0%{transform:rotate(-6deg)} 50%{transform:rotate(6deg)} 100%{transform:rotate(-6deg)} }
@keyframes am-figure { 0%{transform:translateY(0) rotate(-3deg)} 50%{transform:translateY(-2px) rotate(3deg)} 100%{transform:translateY(0) rotate(-3deg)} }
@keyframes am-cloud { 0%{transform:translateX(0)} 50%{transform:translateX(30px)} 100%{transform:translateX(60px)} }

/* Scene: meet-robert-king – tense sunlit meeting ashore */
.scn-meet-robert-king {
  background: linear-gradient(180deg, #6a8aaa 0%, #8aaabb 30%, #aabbcc 70%, #ccddcc 100%), radial-gradient(ellipse at 50% 30%, #fff0c0 0%, transparent 60%);
}
.scn-meet-robert-king .mrk-sky {
  position:absolute; inset:0 0 35% 0;
  background: linear-gradient(180deg, #8aaabb 0%, #aabbcc 100%);
  animation: mrk-sky 8s ease-in-out infinite alternate;
}
.scn-meet-robert-king .mrk-ground {
  position:absolute; bottom:0; left:0; right:0; height:40%;
  background: linear-gradient(0deg, #5a7a4a 0%, #6a8a5a 50%, #7a9a6a 100%);
  border-radius: 80% 60% 0 0 / 100% 80% 0 0;
  box-shadow: inset 0 20px 30px rgba(0,0,0,.3);
  animation: mrk-ground 10s ease-in-out infinite alternate;
}
.scn-meet-robert-king .mrk-building {
  position:absolute; bottom:30%; left:15%;
  width:120px; height:80px;
  background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%);
  border-radius: 4% 4% 2% 2%;
  box-shadow: 0 8px 20px rgba(0,0,0,.5);
  animation: mrk-building 6s ease-in-out infinite;
}
.scn-meet-robert-king .mrk-door {
  position:absolute; bottom:30%; left:25%;
  width:30px; height:50px;
  background: #3a2a1a;
  border-radius: 10% 10% 5% 5%;
  box-shadow: inset 0 0 10px rgba(0,0,0,.6);
  animation: mrk-door 4s ease-in-out infinite alternate;
}
.scn-meet-robert-king .mrk-tree {
  position:absolute; bottom:35%; left:5%;
  width:40px; height:70px;
  background: linear-gradient(180deg, #3a5a2a 0%, #1a3a0a 100%);
  border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%;
  box-shadow: 0 0 20px rgba(0,0,0,.3);
  animation: mrk-tree 7s ease-in-out infinite;
}
.scn-meet-robert-king .mrk-figure {
  position:absolute; bottom:25%; left:50%;
  width:18px; height:40px;
  background: #1a1a2a;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mrk-figure 3s ease-in-out infinite;
}
.scn-meet-robert-king .mrk-shadow {
  position:absolute; bottom:20%; left:48%;
  width:30px; height:8px;
  background: rgba(0,0,0,.4);
  border-radius:50%;
  filter: blur(3px);
  animation: mrk-shadow 3s ease-in-out infinite alternate;
}
@keyframes mrk-sky { 0%{opacity:.9} 50%{opacity:1} 100%{opacity:.8} }
@keyframes mrk-ground { 0%{transform:translateY(0)} 50%{transform:translateY(-3px)} 100%{transform:translateY(0)} }
@keyframes mrk-building { 0%{transform:translateY(0) scale(1)} 50%{transform:translateY(-2px) scale(1.02)} 100%{transform:translateY(0) scale(1)} }
@keyframes mrk-door { 0%{opacity:.7; box-shadow: inset 0 0 5px rgba(0,0,0,.4)} 50%{opacity:1; box-shadow: inset 0 0 15px rgba(0,0,0,.7)} 100%{opacity:.8; box-shadow: inset 0 0 8px rgba(0,0,0,.5)} }
@keyframes mrk-tree { 0%{transform:rotate(-2deg)} 50%{transform:rotate(2deg)} 100%{transform:rotate(-2deg)} }
@keyframes mrk-figure { 0%{transform:translateY(0) rotate(-1deg)} 50%{transform:translateY(-4px) rotate(1deg); opacity:.9} 100%{transform:translateY(0) rotate(-1deg)} }
@keyframes mrk-shadow { 0%{transform:scaleX(1); opacity:.4} 50%{transform:scaleX(1.2); opacity:.6} 100%{transform:scaleX(1); opacity:.4} }

/* Scene: life-with-mr-king – warm sunlit domestic peace */
.scn-life-with-mr-king {
  background: linear-gradient(180deg, #7a9a7a 0%, #aabb99 30%, #ccddaa 70%, #ddeebb 100%), radial-gradient(ellipse at 80% 20%, #ffdd88 0%, transparent 50%);
}
.scn-life-with-mr-king .lmk-sky {
  position:absolute; inset:0 0 25% 0;
  background: linear-gradient(180deg, #aabb99 0%, #ccddaa 100%);
  animation: lmk-sky 15s ease-in-out infinite alternate;
}
.scn-life-with-mr-king .lmk-sun {
  position:absolute; top:10%; right:15%;
  width:45px; height:45px;
  background: radial-gradient(circle, #ffe080 0%, #ffcc60 40%, transparent 70%);
  border-radius:50%;
  box-shadow: 0 0 70px 30px rgba(255,224,128,.5), 0 0 140px 60px rgba(255,224,128,.3);
  animation: lmk-sun 12s ease-in-out infinite alternate;
}
.scn-life-with-mr-king .lmk-house {
  position:absolute; bottom:20%; left:30%;
  width:100px; height:70px;
  background: linear-gradient(180deg, #c0a06a 0%, #8a704a 100%);
  border-radius: 6% 6% 3% 3%;
  box-shadow: 0 8px 20px rgba(0,0,0,.3);
  animation: lmk-house 8s ease-in-out infinite;
}
.scn-life-with-mr-king .lmk-window {
  position:absolute; bottom:28%; left:35%;
  width:20px; height:20px;
  background: radial-gradient(circle, #ffe8b0 0%, #ddc080 70%);
  border-radius: 10%;
  box-shadow: 0 0 20px 6px #ffe8b0, 0 0 40px 12px rgba(255,232,176,.3);
  animation: lmk-window 4s ease-in-out infinite alternate;
}
.scn-life-with-mr-king .lmk-garden {
  position:absolute; bottom:5%; left:20%; right:20%;
  height:30%;
  background: linear-gradient(0deg, #4a7a3a 0%, #5a8a4a 50%, #6a9a5a 100%);
  border-radius: 60% 40% 0 0 / 80% 60% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,.2);
  animation: lmk-garden 10s ease-in-out infinite alternate;
}
.scn-life-with-mr-king .lmk-figure {
  position:absolute; bottom:15%; left:50%;
  width:16px; height:36px;
  background: #2a1a0a;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lmk-figure 6s ease-in-out infinite;
}
.scn-life-with-mr-king .lmk-tree {
  position:absolute; bottom:30%; left:60%;
  width:30px; height:60px;
  background: linear-gradient(180deg, #3a5a2a 0%, #1a3a0a 100%);
  border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%;
  box-shadow: 0 0 15px rgba(0,0,0,.2);
  animation: lmk-tree 9s ease-in-out infinite;
}
.scn-life-with-mr-king .lmk-flower-a {
  position:absolute; bottom:8%; left:40%;
  width:8px; height:8px;
  background: radial-gradient(circle, #b87878 0%, #8a5a5a 100%);
  border-radius:50%;
  box-shadow: 0 0 6px 2px rgba(184,120,120,.4);
  animation: lmk-flower 5s ease-in-out infinite alternate;
}
.scn-life-with-mr-king .lmk-flower-b {
  position:absolute; bottom:10%; left:55%;
  width:7px; height:7px;
  background: radial-gradient(circle, #c8a070 0%, #a08050 100%);
  border-radius:50%;
  box-shadow: 0 0 5px 2px rgba(200,160,112,.4);
  animation: lmk-flower 7s ease-in-out infinite alternate;
}
@keyframes lmk-sky { 0%{opacity:.8} 50%{opacity:1} 100%{opacity:.9} }
@keyframes lmk-sun { 0%{transform:scale(1); opacity:.8} 50%{transform:scale(1.08); opacity:1} 100%{transform:scale(1); opacity:.9} }
@keyframes lmk-house { 0%{transform:translateY(0) scale(1)} 50%{transform:translateY(-2px) scale(1.01)} 100%{transform:translateY(0) scale(1)} }
@keyframes lmk-window { 0%{box-shadow: 0 0 15px 4px #ffe8b0, 0 0 30px 8px rgba(255,232,176,.2); opacity:.8} 50%{box-shadow: 0 0 25px 8px #ffe8b0, 0 0 50px 16px rgba(255,232,176,.4); opacity:1} 100%{box-shadow: 0 0 18px 5px #ffe8b0, 0 0 35px 10px rgba(255,232,176,.3); opacity:.9} }
@keyframes lmk-garden { 0%{transform:translateY(0)} 50%{transform:translateY(-3px)} 100%{transform:translateY(0)} }
@keyframes lmk-figure { 0%{transform:translateY(0) rotate(-2deg)} 50%{transform:translateY(-3px) rotate(2deg)} 100%{transform:translateY(0) rotate(-2deg)} }
@keyframes lmk-tree { 0%{transform:rotate(-1deg)} 50%{transform:rotate(1deg)} 100%{transform:rotate(-1deg)} }
@keyframes lmk-flower { 0%{transform:scale(1); opacity:.7} 50%{transform:scale(1.3); opacity:1} 100%{transform:scale(1); opacity:.8} }

/* forgetting-slavery */
.scn-forgetting-slavery { background: linear-gradient(180deg, #d4b48c 0%, #b8906a 30%, #8a6a4a 70%, #5a3a2a 100%), radial-gradient(circle at 50% 60%, #e0c888 0%, transparent 60%); }
.scn-forgetting-slavery .room-bg { position:absolute; inset:0 0 35% 0; background: linear-gradient(135deg, #d4b48c 0%, #c8a070 50%, #a08060 100%); border-radius: 0 0 20% 20% / 0 0 10% 10%; box-shadow: inset 0 -20px 40px rgba(0,0,0,.15); }
.scn-forgetting-slavery .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #6a4a30 0%, #4a3020 100%); box-shadow: inset 0 8px 20px rgba(0,0,0,.4); }
.scn-forgetting-slavery .table { position:absolute; bottom:22%; left:20%; right:20%; height:16%; background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%); border-radius: 4px; box-shadow: 0 4px 12px rgba(0,0,0,.3); }
.scn-forgetting-slavery .figure-host { position:absolute; bottom:28%; left:30%; width:20px; height:40px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fs-fig-host 6s ease-in-out infinite; }
.scn-forgetting-slavery .figure-guest { position:absolute; bottom:28%; right:30%; width:18px; height:38px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fs-fig-guest 8s ease-in-out infinite; }
.scn-forgetting-slavery .hearth-glow { position:absolute; bottom:18%; left:8%; width:40px; height:40px; background: radial-gradient(circle, #ff8844 0%, #cc5500 40%, transparent 70%); border-radius: 50%; box-shadow: 0 0 60px 20px rgba(255,136,68,.4); animation: fs-hearth 3s ease-in-out infinite alternate; }
.scn-forgetting-slavery .window-light { position:absolute; top:12%; right:15%; width:60px; height:70px; background: linear-gradient(135deg, rgba(255,230,180,.8) 0%, rgba(255,200,120,.3) 100%); border-radius: 4px; box-shadow: 0 0 40px 10px rgba(255,200,120,.5); animation: fs-window 9s ease-in-out infinite alternate; }
.scn-forgetting-slavery .dust-mote-a { position:absolute; top:20%; left:40%; width:4px; height:4px; background: rgba(255,220,180,.6); border-radius: 50%; filter: blur(1px); animation: fs-dust-a 12s linear infinite; }
.scn-forgetting-slavery .dust-mote-b { position:absolute; top:30%; left:60%; width:3px; height:3px; background: rgba(255,220,180,.5); border-radius: 50%; filter: blur(1px); animation: fs-dust-b 18s linear infinite reverse; }
@keyframes fs-fig-host { 0%,100% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(4px) rotate(2deg); } }
@keyframes fs-fig-guest { 0%,100% { transform: translateX(0) rotate(3deg); } 50% { transform: translateX(-4px) rotate(-1deg); } }
@keyframes fs-hearth { 0% { opacity:.7; transform: scale(1); } 50% { opacity:1; transform: scale(1.05); } 100% { opacity:.8; transform: scale(.95); } }
@keyframes fs-window { 0% { opacity:.6; transform: scaleX(1); } 50% { opacity:1; transform: scaleX(1.02); } 100% { opacity:.7; transform: scaleX(.98); } }
@keyframes fs-dust-a { 0% { transform: translate(0, 0) scale(1); opacity:0; } 10% { opacity:.6; } 90% { opacity:.6; } 100% { transform: translate(20px, -30px) scale(2); opacity:0; } }
@keyframes fs-dust-b { 0% { transform: translate(0, 0) scale(1); opacity:0; } 10% { opacity:.5; } 90% { opacity:.5; } 100% { transform: translate(-15px, -20px) scale(1.5); opacity:0; } }

/* delusion-vanished */
.scn-delusion-vanished { background: linear-gradient(180deg, #2a2a4a 0%, #4a3a5a 30%, #8a6a7a 60%, #c8a090 85%, #e0c0a0 100%), radial-gradient(ellipse at 50% 20%, #e8d0b0 0%, transparent 60%); }
.scn-delusion-vanished .dawn-sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #2a2a4a 0%, #6a5a6a 40%, #b09080 70%, #e0c0a0 100%); animation: dv-sky 15s ease-in-out infinite alternate; }
.scn-delusion-vanished .horizon-fade { position:absolute; bottom:40%; left:0; right:0; height:8%; background: linear-gradient(180deg, #c8a890 0%, transparent 100%); opacity:.6; }
.scn-delusion-vanished .ground-path { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 60% 40% 0 0 / 40% 20% 0 0; box-shadow: inset 0 20px 40px rgba(0,0,0,.5); }
.scn-delusion-vanished .figure-stand { position:absolute; bottom:25%; left:50%; width:22px; height:44px; 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,.6); animation: dv-figure 8s ease-in-out infinite; }
.scn-delusion-vanished .distant-house { position:absolute; bottom:32%; right:20%; width:30px; height:25px; background: linear-gradient(180deg, #3a3a2a 0%, #1a1a0a 100%); border-radius: 10% 10% 4% 4%; box-shadow: 0 0 10px rgba(0,0,0,.4); animation: dv-house 12s ease-in-out infinite alternate; }
.scn-delusion-vanished .cloud-shred { position:absolute; top:15%; left:10%; width:120px; height:20px; background: linear-gradient(180deg, rgba(200,180,160,.5) 0%, rgba(200,180,160,.1) 100%); border-radius: 50%; filter: blur(8px); animation: dv-cloud 60s linear infinite; }
.scn-delusion-vanished .shadow-stretch { position:absolute; bottom:0; left:40%; width:20%; height:25%; background: linear-gradient(180deg, rgba(0,0,0,.3) 0%, rgba(0,0,0,.7) 100%); border-radius: 50% 50% 0 0 / 100% 100% 0 0; transform-origin: bottom center; animation: dv-shadow 9s ease-in-out infinite alternate; }
@keyframes dv-sky { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.7; } }
@keyframes dv-figure { 0%,100% { transform: translateX(-50%) translateY(0) rotate(0deg); } 25% { transform: translateX(-50%) translateY(-2px) rotate(1deg); } 75% { transform: translateX(-50%) translateY(-1px) rotate(-1deg); } }
@keyframes dv-house { 0% { transform: scale(1) translateY(0); opacity:.7; } 50% { transform: scale(.95) translateY(2px); opacity:.5; } 100% { transform: scale(1) translateY(0); opacity:.7; } }
@keyframes dv-cloud { 0% { transform: translateX(-60px); } 100% { transform: translateX(120vw); } }
@keyframes dv-shadow { 0% { transform: scaleX(1) scaleY(1); opacity:.6; } 50% { transform: scaleX(1.2) scaleY(1.3); opacity:.8; } 100% { transform: scaleX(1) scaleY(1); opacity:.6; } }

/* sudden-transition-to-horror */
.scn-sudden-transition-to-horror { background: linear-gradient(180deg, #c8a070 0%, #6a4a3a 30%, #2a1a2a 60%, #0a0a1a 100%), radial-gradient(ellipse at 50% 10%, #e0b880 0%, transparent 50%); }
.scn-sudden-transition-to-horror .shaft-bg { position:absolute; inset:0; background: linear-gradient(180deg, transparent 0%, #1a0a1a 40%, #0a0a0a 100%); }
.scn-sudden-transition-to-horror .dawn-aperture { position:absolute; top:0; left:40%; right:40%; height:4%; background: radial-gradient(ellipse at 50% 100%, #e8d0b0 0%, transparent 80%); box-shadow: 0 0 40px 20px rgba(232,208,176,.3); animation: st-aperture 5s ease-in-out infinite alternate; }
.scn-sudden-transition-to-horror .dawn-beam { position:absolute; top:0; left:35%; right:35%; height:40%; background: linear-gradient(180deg, rgba(232,208,176,.3) 0%, transparent 100%); clip-path: polygon(30% 0%, 70% 0%, 55% 100%, 45% 100%); animation: st-beam 7s ease-in-out infinite alternate; }
.scn-sudden-transition-to-horror .figure-fall { position:absolute; top:15%; left:50%; width:18px; height:36px; transform: translateX(-50%); background: linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 0 20px rgba(0,0,0,.8); animation: st-fall 6s ease-in-out infinite; }
.scn-sudden-transition-to-horror .chain-a { position:absolute; top:0; left:45%; width:2px; height:50%; background: linear-gradient(180deg, #8a7a6a 0%, transparent 100%); transform-origin: top center; animation: st-chain-a 4s ease-in-out infinite alternate; }
.scn-sudden-transition-to-horror .chain-b { position:absolute; top:10%; right:45%; width:2px; height:40%; background: linear-gradient(180deg, #8a7a6a 0%, transparent 100%); transform-origin: top center; animation: st-chain-b 5s ease-in-out infinite alternate-reverse; }
.scn-sudden-transition-to-horror .particle-drift { position:absolute; top:20%; left:30%; width:4px; height:4px; background: rgba(232,208,176,.6); border-radius: 50%; filter: blur(2px); animation: st-particle 8s linear infinite; }
@keyframes st-aperture { 0% { opacity:.6; transform: scaleY(1); } 50% { opacity:1; transform: scaleY(1.5); } 100% { opacity:.7; transform: scaleY(1); } }
@keyframes st-beam { 0% { opacity:.3; transform: rotate(-2deg); } 50% { opacity:.6; transform: rotate(1deg); } 100% { opacity:.4; transform: rotate(-1deg); } }
@keyframes st-fall { 0% { transform: translateX(-50%) translateY(0) rotate(0deg); opacity:1; } 25% { transform: translateX(-50%) translateY(20px) rotate(10deg); opacity:.8; } 50% { transform: translateX(-50%) translateY(40px) rotate(20deg); opacity:.6; } 75% { transform: translateX(-50%) translateY(60px) rotate(30deg); opacity:.4; } 100% { transform: translateX(-50%) translateY(80px) rotate(40deg); opacity:.2; } }
@keyframes st-chain-a { 0% { transform: rotate(5deg); } 50% { transform: rotate(-5deg); } 100% { transform: rotate(3deg); } }
@keyframes st-chain-b { 0% { transform: rotate(-8deg); } 50% { transform: rotate(8deg); } 100% { transform: rotate(-4deg); } }
@keyframes st-particle { 0% { transform: translate(0, 0) scale(1); opacity:0; } 10% { opacity:.8; } 90% { opacity:.8; } 100% { transform: translate(10px, 60px) scale(0); opacity:0; } }

/* foreign-people-and-habits */
.scn-foreign-people-and-habits { background: linear-gradient(180deg, #f0e6d0 0%, #d4c4a8 30%, #a08870 60%, #705848 100%), radial-gradient(ellipse at 50% 0%, #fff0e0 0%, transparent 60%); }
.scn-foreign-people-and-habits .sky-blaze { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #a0c8e0 0%, #f0e6d0 60%, #e8d8c0 100%); animation: fph-sky 12s ease-in-out infinite alternate; }
.scn-foreign-people-and-habits .ground-plane { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #c8b898 0%, #a08870 50%, #705848 100%); box-shadow: inset 0 30px 60px rgba(0,0,0,.3); }
.scn-foreign-people-and-habits .arch-left { position:absolute; top:5%; left:5%; width:25%; height:60%; background: linear-gradient(135deg, #b8a080 0%, #907060 100%); clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%); border-radius: 20% 20% 0 0 / 40% 40% 0 0; box-shadow: 0 10px 30px rgba(0,0,0,.2); }
.scn-foreign-people-and-habits .arch-right { position:absolute; top:5%; right:5%; width:25%; height:60%; background: linear-gradient(225deg, #b8a080 0%, #907060 100%); clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%); border-radius: 20% 20% 0 0 / 40% 40% 0 0; box-shadow: 0 10px 30px rgba(0,0,0,.2); }
.scn-foreign-people-and-habits .figure-merchant { position:absolute; bottom:25%; left:20%; width:22px; height:46px; background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fph-merchant 4s ease-in-out infinite; }
.scn-foreign-people-and-habits .figure-stranger-a { position:absolute; bottom:22%; right:35%; width:24px; height:50px; background: linear-gradient(180deg, #3a4a3a 0%, #1a2a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; box-shadow: 0 0 15px rgba(0,0,0,.3); animation: fph-stranger-a 6s ease-in-out infinite; }
.scn-foreign-people-and-habits .figure-stranger-b { position:absolute; bottom:20%; left:55%; width:20px; height:42px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 0 15px rgba(0,0,0,.3); animation: fph-stranger-b 7s ease-in-out infinite reverse; }
.scn-foreign-people-and-habits .crate-stack { position:absolute; bottom:15%; right:15%; width:30px; height:30px; background: linear-gradient(180deg, #8a7050 0%, #6a5030 100%); border-radius: 4px; box-shadow: 0 4px 10px rgba(0,0,0,.4); animation: fph-crate 9s ease-in-out infinite alternate; }
.scn-foreign-people-and-habits .shadow-sharp { position:absolute; bottom:0; left:10%; width:80%; height:15%; background: linear-gradient(180deg, rgba(0,0,0,.15) 0%, rgba(0,0,0,.4) 100%); clip-path: polygon(10% 0%, 90% 0%, 70% 100%, 30% 100%); animation: fph-shadow 5s ease-in-out infinite alternate; }
@keyframes fph-sky { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.9; } }
@keyframes fph-merchant { 0%,100% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(3px) rotate(1deg); } 75% { transform: translateX(-3px) rotate(-1deg); } }
@keyframes fph-stranger-a { 0%,100% { transform: translateX(0) scale(1); } 25% { transform: translateX(5px) scale(1.02); } 75% { transform: translateX(-5px) scale(.98); } }
@keyframes fph-stranger-b { 0%,100% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(8px) rotate(3deg); } }
@keyframes fph-crate { 0% { transform: scale(1) translateY(0); } 50% { transform: scale(1.02) translateY(-2px); } 100% { transform: scale(.98) translateY(1px); } }
@keyframes fph-shadow { 0% { transform: skewX(0deg); opacity:.6; } 50% { transform: skewX(5deg); opacity:.8; } 100% { transform: skewX(-3deg); opacity:.7; } }

.scn-swamps-and-musquitos {
  background: 
    linear-gradient(180deg, #4a5a4a 0%, #2a3a2a 40%, #1a2a1a 100%),
    radial-gradient(ellipse at 50% 80%, #3a4a3a 0%, transparent 70%);
}
.scn-swamps-and-musquitos .sky { position:absolute; inset:0 0 50% 0; background:linear-gradient(180deg, #5a6a5a 0%, #3a4a3a 60%, transparent 100%); animation:sw-sky 14s ease-in-out infinite alternate; }
.scn-swamps-and-musquitos .treeline { position:absolute; bottom:50%; left:0; right:0; height:18%; background:linear-gradient(180deg,#2a3a1a 0%,#1a2a0a 100%); border-radius:30% 70% 0 0 / 60% 80% 0 0; box-shadow:inset 0 6px 12px rgba(0,0,0,.5); animation:sw-trees 10s ease-in-out infinite alternate; }
.scn-swamps-and-musquitos .water { position:absolute; bottom:25%; left:0; right:0; height:30%; background:linear-gradient(180deg,#2a4a3a 0%,#1a3a2a 100%); box-shadow:inset 0 4px 12px rgba(0,20,10,.6); animation:sw-water 8s ease-in-out infinite alternate; }
.scn-swamps-and-musquitos .mudbank { position:absolute; bottom:0; left:0; right:0; height:28%; background:linear-gradient(180deg,#3a2a1a 0%,#2a1a0a 100%); border-radius: 20% 40% 0 0 / 30% 50% 0 0; }
.scn-swamps-and-musquitos .reeds { position:absolute; bottom:30%; left:12%; width:8px; height:40px; background:linear-gradient(180deg,#4a5a2a 0%,#2a3a0a 100%); border-radius:0 0 50% 50%; transform-origin:bottom; animation:sw-reed 3s ease-in-out infinite; }
.scn-swamps-and-musquitos .reeds::after { content:''; position:absolute; top:-8px; left:-4px; width:16px; height:16px; background:radial-gradient(circle,#5a6a3a 0%,transparent 70%); border-radius:50%; }
.scn-swamps-and-musquitos .swarm { position:absolute; top:40%; left:30%; width:120px; height:80px; background:radial-gradient(ellipse,rgba(100,80,50,.4) 0%,transparent 70%); filter:blur(8px); animation:sw-swarm 4s ease-in-out infinite; }
.scn-swamps-and-musquitos .musquito-a { position:absolute; top:35%; left:25%; width:10px; height:6px; background:#4a3a2a; border-radius:50% 50% 0 0; box-shadow:0 0 4px rgba(80,60,40,.6); animation:sw-buzz-a .3s linear infinite; }
.scn-swamps-and-musquitos .musquito-b { position:absolute; top:38%; left:45%; width:10px; height:6px; background:#4a3a2a; border-radius:50% 50% 0 0; box-shadow:0 0 4px rgba(80,60,40,.6); animation:sw-buzz-b .35s linear infinite .1s; }
@keyframes sw-sky { 0% { opacity:.7; } 50% { opacity:1; } 100% { opacity:.8; } }
@keyframes sw-trees { 0% { transform:scaleY(1); } 50% { transform:scaleY(1.02); } 100% { transform:scaleY(.98); } }
@keyframes sw-water { 0% { transform:rotate(0) translateY(0); } 30% { transform:rotate(.5deg) translateY(-1px); } 70% { transform:rotate(-.5deg) translateY(1px); } 100% { transform:rotate(0) translateY(0); } }
@keyframes sw-reed { 0%,100% { transform:rotate(-5deg); } 50% { transform:rotate(5deg); } }
@keyframes sw-swarm { 0%,100% { transform:translate(0,0) scale(1); opacity:.5; } 25% { transform:translate(10px,-8px) scale(1.1); opacity:.8; } 50% { transform:translate(-5px,12px) scale(.9); opacity:.6; } 75% { transform:translate(8px,4px) scale(1.05); opacity:.7; } }
@keyframes sw-buzz-a { 0% { transform:translate(0,0) rotate(0); } 25% { transform:translate(2px,-2px) rotate(15deg); } 50% { transform:translate(-1px,1px) rotate(-10deg); } 75% { transform:translate(3px,0) rotate(5deg); } 100% { transform:translate(0,0) rotate(0); } }
@keyframes sw-buzz-b { 0% { transform:translate(0,0) rotate(0); } 25% { transform:translate(-2px,1px) rotate(-15deg); } 50% { transform:translate(1px,-1px) rotate(10deg); } 75% { transform:translate(-3px,0) rotate(-5deg); } 100% { transform:translate(0,0) rotate(0); } }

.scn-sloop-mahogany-work {
  background: 
    linear-gradient(180deg, #5a6a6a 0%, #3a4a4a 50%, #2a3a3a 100%),
    radial-gradient(ellipse at 50% 30%, #4a5a5a 0%, transparent 60%);
}
.scn-sloop-mahogany-work .sky-overcast { position:absolute; inset:0 0 40% 0; background:linear-gradient(180deg,#6a7a7a 0%,#4a5a5a 60%,transparent 100%); animation:sl-sky 12s ease-in-out infinite alternate; }
.scn-sloop-mahogany-work .sea-calm { position:absolute; bottom:0; left:0; right:0; height:45%; background:linear-gradient(180deg,#3a5a5a 0%,#2a4a4a 100%); box-shadow:inset 0 6px 20px rgba(0,0,0,.3); animation:sl-sea 16s ease-in-out infinite; }
.scn-sloop-mahogany-work .hull { position:absolute; bottom:30%; left:50%; width:160px; height:40px; transform:translateX(-50%); background:linear-gradient(90deg,#4a3a2a 0%,#5a4a3a 50%,#3a2a1a 100%); border-radius:0 0 30% 30% / 0 0 80% 80%; box-shadow:0 8px 16px rgba(0,0,0,.5); animation:sl-hull 8s ease-in-out infinite alternate; }
.scn-sloop-mahogany-work .mast { position:absolute; bottom:38%; left:50%; width:6px; height:70px; transform:translateX(-50%); background:linear-gradient(180deg,#2a1a0a 0%,#4a3a2a 100%); border-radius:4px; animation:sl-mast 10s ease-in-out infinite; }
.scn-sloop-mahogany-work .sail { position:absolute; bottom:46%; left:50%; width:50px; height:40px; transform:translateX(-50%); background:linear-gradient(180deg,#7a7a6a 0%,#5a5a4a 100%); border-radius:20% 80% 20% 80% / 30% 30% 70% 70%; box-shadow:-2px -2px 6px rgba(0,0,0,.2); animation:sl-sail 6s ease-in-out infinite alternate; }
.scn-sloop-mahogany-work .cargo { position:absolute; bottom:28%; left:45%; width:40px; height:16px; background:linear-gradient(90deg,#5a3a1a 0%,#7a5a2a 100%); border-radius:4px 4px 0 0; box-shadow:0 4px 6px rgba(0,0,0,.4); animation:sl-cargo 12s ease-in-out infinite; }
.scn-sloop-mahogany-work .figure-sailor { position:absolute; bottom:33%; left:40%; width:14px; height:28px; background:linear-gradient(180deg,#3a3a4a 0%,#1a1a2a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation:sl-figure 4s ease-in-out infinite alternate; }
.scn-sloop-mahogany-work .wave-ripple { position:absolute; bottom:20%; left:20%; width:80px; height:10px; background:radial-gradient(ellipse,rgba(120,140,140,.4) 0%,transparent 100%); filter:blur(4px); animation:sl-ripple 7s ease-in-out infinite; }
@keyframes sl-sky { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.7; } }
@keyframes sl-sea { 0% { transform:translateY(0) rotate(0); } 30% { transform:translateY(-2px) rotate(.3deg); } 60% { transform:translateY(1px) rotate(-.3deg); } 100% { transform:translateY(0) rotate(0); } }
@keyframes sl-hull { 0%,100% { transform:translateX(-50%) rotate(0); } 30% { transform:translateX(-50%) rotate(-1deg) translateY(-1px); } 70% { transform:translateX(-50%) rotate(1deg) translateY(1px); } }
@keyframes sl-mast { 0%,100% { transform:translateX(-50%) rotate(0); } 50% { transform:translateX(-50%) rotate(.5deg); } }
@keyframes sl-sail { 0% { transform:translateX(-50%) scaleX(1); } 50% { transform:translateX(-50%) scaleX(1.05) scaleY(.95); } 100% { transform:translateX(-50%) scaleX(1); } }
@keyframes sl-cargo { 0%,100% { transform:translateY(0); } 50% { transform:translateY(-2px); } }
@keyframes sl-figure { 0% { transform:translateY(0) rotate(-2deg); } 50% { transform:translateY(-3px) rotate(2deg); } 100% { transform:translateY(0) rotate(-2deg); } }
@keyframes sl-ripple { 0% { transform:scale(1) translate(0,0); opacity:.6; } 50% { transform:scale(1.2) translate(10px,-2px); opacity:.3; } 100% { transform:scale(1) translate(0,0); opacity:.6; } }

.scn-mahogany-and-patience {
  background: 
    linear-gradient(180deg, #3a4a3a 0%, #2a3a2a 60%, #1a2a1a 100%),
    radial-gradient(ellipse at 50% 100%, #2a3a2a 0%, transparent 60%);
}
.scn-mahogany-and-patience .bg-forest { position:absolute; inset:0; background:linear-gradient(180deg,#2a3a2a 0%,#1a2a1a 100%); animation:mp-bg 20s ease-in-out infinite alternate; }
.scn-mahogany-and-patience .trunk { position:absolute; bottom:20%; left:50%; width:20px; height:140px; transform:translateX(-50%); background:linear-gradient(90deg,#4a3a2a 0%,#6a5a3a 50%,#4a3a2a 100%); border-radius:4px; box-shadow:inset 0 0 8px rgba(0,0,0,.5), 0 6px 12px rgba(0,0,0,.3); animation:mp-trunk 14s ease-in-out infinite; }
.scn-mahogany-and-patience .saw { position:absolute; bottom:30%; left:38%; width:60px; height:4px; background:#7a6a4a; border-radius:2px; box-shadow:0 -2px 4px rgba(0,0,0,.3); transform-origin:left; animation:mp-saw .8s ease-in-out infinite; }
.scn-mahogany-and-patience .woodpile { position:absolute; bottom:18%; left:60%; width:40px; height:20px; background:linear-gradient(90deg,#5a4a2a 0%,#7a5a3a 100%); border-radius:2px; box-shadow:0 4px 8px rgba(0,0,0,.4); animation:mp-pile 6s ease-in-out infinite alternate; }
.scn-mahogany-and-patience .figure-cutter { position:absolute; bottom:22%; left:32%; width:20px; height:36px; background:linear-gradient(180deg,#3a3a2a 0%,#1a1a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation:mp-figure 2s ease-in-out infinite; }
.scn-mahogany-and-patience .ax-handle { position:absolute; bottom:26%; left:28%; width:28px; height:4px; background:#5a4a2a; border-radius:2px; transform-origin:50% 0; animation:mp-ax .4s ease-in-out infinite; }
.scn-mahogany-and-patience .chip { position:absolute; bottom:24%; left:44%; width:8px; height:6px; background:#8a7a4a; border-radius:2px; animation:mp-chip .6s ease-in-out infinite; }
@keyframes mp-bg { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.7; } }
@keyframes mp-trunk { 0%,100% { transform:translateX(-50%) scaleY(1); } 50% { transform:translateX(-50%) scaleY(1.005); } }
@keyframes mp-saw { 0% { transform:rotate(-10deg); } 25% { transform:rotate(5deg); } 50% { transform:rotate(-8deg); } 75% { transform:rotate(10deg); } 100% { transform:rotate(-10deg); } }
@keyframes mp-pile { 0% { transform:translateY(0); } 50% { transform:translateY(-1px); } 100% { transform:translateY(0); } }
@keyframes mp-figure { 0%,100% { transform:translateY(0) rotate(0); } 30% { transform:translateY(-2px) rotate(3deg); } 60% { transform:translateY(1px) rotate(-2deg); } }
@keyframes mp-ax { 0% { transform:rotate(-20deg); } 50% { transform:rotate(20deg); } 100% { transform:rotate(-20deg); } }
@keyframes mp-chip { 0%,100% { transform:translate(0,0) rotate(0); opacity:1; } 50% { transform:translate(6px,-8px) rotate(90deg); opacity:0; } }

.scn-manatee-and-alligators {
  background: 
    linear-gradient(180deg, #3a4a5a 0%, #2a3a4a 50%, #1a2a3a 100%),
    radial-gradient(ellipse at 50% 80%, #2a3a4a 0%, transparent 60%);
}
.scn-manatee-and-alligators .water-surface { position:absolute; inset:0 0 20% 0; background:linear-gradient(180deg,#4a5a6a 0%,#2a3a4a 80%, transparent 100%); animation:ma-surface 12s ease-in-out infinite alternate; }
.scn-manatee-and-alligators .boat { position:absolute; top:30%; left:50%; width:100px; height:24px; transform:translateX(-50%); background:linear-gradient(90deg,#4a3a2a 0%,#5a4a3a 50%,#3a2a1a 100%); border-radius:0 0 40% 40% / 0 0 80% 80%; box-shadow:0 6px 10px rgba(0,0,0,.4); animation:ma-boat 6s ease-in-out infinite; }
.scn-manatee-and-alligators .manatee-shadow { position:absolute; bottom:35%; left:30%; width:80px; height:30px; background:radial-gradient(ellipse,#3a4a3a 0%,transparent 70%); filter:blur(6px); opacity:.6; animation:ma-manatee 10s ease-in-out infinite; }
.scn-manatee-and-alligators .turtle-1 { position:absolute; bottom:40%; left:60%; width:30px; height:20px; background:#4a5a3a; border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow:0 0 8px rgba(0,0,0,.3); animation:ma-turtle1 8s ease-in-out infinite; }
.scn-manatee-and-alligators .turtle-2 { position:absolute; bottom:45%; left:20%; width:24px; height:16px; background:#3a4a2a; border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow:0 0 6px rgba(0,0,0,.3); animation:ma-turtle2 9s ease-in-out infinite 1s; }
.scn-manatee-and-alligators .ripple-a { position:absolute; bottom:25%; left:35%; width:60px; height:8px; background:radial-gradient(ellipse,rgba(150,170,190,.3) 0%,transparent 100%); filter:blur(3px); animation:ma-ripple1 5s ease-in-out infinite; }
.scn-manatee-and-alligators .ripple-b { position:absolute; bottom:30%; left:55%; width:50px; height:6px; background:radial-gradient(ellipse,rgba(150,170,190,.25) 0%,transparent 100%); filter:blur(2px); animation:ma-ripple2 6s ease-in-out infinite 2s; }
.scn-manatee-and-alligators .net { position:absolute; bottom:28%; left:42%; width:30px; height:20px; border:2px solid rgba(100,120,130,.4); border-radius:10px; transform:rotate(20deg); background:linear-gradient(45deg,transparent 30%,rgba(100,120,130,.2) 30%,transparent 40%); animation:ma-net 14s ease-in-out infinite; }
@keyframes ma-surface { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.7; } }
@keyframes ma-boat { 0%,100% { transform:translateX(-50%) rotate(0); } 30% { transform:translateX(-50%) rotate(-1deg) translateY(-2px); } 70% { transform:translateX(-50%) rotate(1deg) translateY(2px); } }
@keyframes ma-manatee { 0%,100% { transform:translateX(0) scale(1); opacity:.5; } 50% { transform:translateX(20px) scaleX(.95); opacity:.7; } }
@keyframes ma-turtle1 { 0%,100% { transform:translateY(0) rotate(0); } 25% { transform:translateY(-8px) rotate(-5deg); } 50% { transform:translateY(0) rotate(0); } 75% { transform:translateY(-5px) rotate(5deg); } }
@keyframes ma-turtle2 { 0%,100% { transform:translateY(0) rotate(0); } 30% { transform:translateY(-6px) rotate(4deg); } 60% { transform:translateY(0) rotate(0); } 90% { transform:translateY(-3px) rotate(-3deg); } }
@keyframes ma-ripple1 { 0% { transform:scale(.8) translate(0,0); opacity:.4; } 50% { transform:scale(1.3) translate(10px,-5px); opacity:.1; } 100% { transform:scale(.8) translate(0,0); opacity:.4; } }
@keyframes ma-ripple2 { 0% { transform:scale(.8) translate(0,0); opacity:.3; } 50% { transform:scale(1.2) translate(-8px,4px); opacity:.1; } 100% { transform:scale(.8) translate(0,0); opacity:.3; } }
@keyframes ma-net { 0%,100% { transform:rotate(20deg) translateY(0); } 50% { transform:rotate(25deg) translateY(-4px); } }

.scn-subscriber-list-intro-a {
  background:
    linear-gradient(180deg, #f5e6d0 0%, #e8d4b8 30%, #d9c0a0 70%, #c8a880 100%),
    radial-gradient(ellipse at 70% 30%, #fff8e8 0%, transparent 60%);
}
.scn-subscriber-list-intro-a .wall {
  position: absolute; inset: 0; background: linear-gradient(135deg, #e8d4b8 0%, #d9c0a0 100%);
  box-shadow: inset 0 -20px 40px rgba(0,0,0,0.1);
  animation: ia-wall 20s ease-in-out infinite alternate;
}
.scn-subscriber-list-intro-a .window {
  position: absolute; left: 5%; top: 10%; width: 30%; height: 50%;
  background: linear-gradient(180deg, #b0d4e8 0%, #89b8d1 60%, #7aa3bc 100%);
  border-radius: 4px; box-shadow: 0 0 60px 20px rgba(137,184,209,0.5), inset 0 0 20px rgba(255,255,255,0.3);
  animation: ia-window 8s ease-in-out infinite alternate;
}
.scn-subscriber-list-intro-a .desk {
  position: absolute; right: 5%; bottom: 8%; width: 45%; height: 20%;
  background: linear-gradient(180deg, #8b6f47 0%, #6d5636 100%);
  border-radius: 4px; box-shadow: 0 -4px 12px rgba(0,0,0,0.3);
  transform: perspective(600px) rotateX(5deg);
}
.scn-subscriber-list-intro-a .bookshelf {
  position: absolute; left: 38%; top: 15%; width: 25%; height: 65%;
  background: linear-gradient(180deg, #a08060 0%, #806040 100%);
  border-radius: 4px; box-shadow: inset 0 0 20px rgba(0,0,0,0.2);
}
.scn-subscriber-list-intro-a .lamp {
  position: absolute; right: 22%; bottom: 30%; width: 12px; height: 50px;
  background: linear-gradient(180deg, #c9a96e 0%, #a08050 100%);
  border-radius: 4px 4px 0 0; transform-origin: bottom center;
  animation: ia-lamp 6s ease-in-out infinite alternate;
}
.scn-subscriber-list-intro-a .lamp::after {
  content: ''; position: absolute; top: -20px; left: -10px; width: 32px; height: 24px;
  background: radial-gradient(circle at 50% 30%, #ffd080 0%, #e8a040 60%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 40px 10px #e8a040;
}
.scn-subscriber-list-intro-a .chair {
  position: absolute; right: 22%; bottom: 5%; width: 80px; height: 90px;
  background: linear-gradient(180deg, #6d5636 0%, #4d3a22 100%);
  border-radius: 10% 10% 40% 40% / 20% 20% 60% 60%;
  transform: perspective(300px) rotateX(10deg);
}
.scn-subscriber-list-intro-a .scroll {
  position: absolute; right: 20%; bottom: 12%; width: 100px; height: 30px;
  background: linear-gradient(180deg, #f5e6d0 0%, #e0ccb0 100%);
  border-radius: 80% 80% 10% 10% / 100% 100% 30% 30%;
  box-shadow: 0 4px 6px rgba(0,0,0,0.2);
  animation: ia-scroll 7s ease-in-out infinite alternate;
}
.scn-subscriber-list-intro-a .dust-1, .scn-subscriber-list-intro-a .dust-2 {
  position: absolute; width: 8px; height: 8px;
  background: radial-gradient(circle, rgba(255,255,240,0.4) 0%, transparent 70%);
  border-radius: 50%; animation: ia-dust 30s linear infinite;
}
.scn-subscriber-list-intro-a .dust-1 { left: 30%; top: 20%; animation-duration: 35s; }
.scn-subscriber-list-intro-a .dust-2 { left: 60%; top: 40%; animation-duration: 45s; animation-delay: -15s; }
@keyframes ia-wall { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes ia-window { 0% { opacity: 0.7; transform: scale(1) } 50% { opacity: 1; transform: scale(1.02) } 100% { opacity: 0.8; transform: scale(0.98) } }
@keyframes ia-lamp { 0% { transform: rotate(-2deg) } 50% { transform: rotate(4deg) } 100% { transform: rotate(-1deg) } }
@keyframes ia-scroll { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(-0.5deg) } }
@keyframes ia-dust { 0% { transform: translateY(0) translateX(0) scale(1) } 25% { transform: translateY(-10px) translateX(5px) scale(1.2) } 50% { transform: translateY(-20px) translateX(-3px) scale(0.9) } 75% { transform: translateY(-30px) translateX(8px) scale(1.1) } 100% { transform: translateY(-40px) translateX(0) scale(1) } }

.scn-subscriber-list-b {
  background:
    linear-gradient(180deg, #e8dcc8 0%, #d4c4a8 40%, #bfac8c 80%, #a88e6e 100%),
    radial-gradient(ellipse at 30% 40%, #fff8f0 0%, transparent 70%);
}
.scn-subscriber-list-b .desktop {
  position: absolute; left: 10%; bottom: 5%; width: 80%; height: 25%;
  background: linear-gradient(180deg, #8b6f47 0%, #6d5636 100%);
  border-radius: 6px; box-shadow: 0 -6px 18px rgba(0,0,0,0.3);
  transform: perspective(400px) rotateX(10deg);
}
.scn-subscriber-list-b .paper {
  position: absolute; left: 30%; bottom: 20%; width: 40%; height: 18%;
  background: linear-gradient(180deg, #f5e6d0 0%, #e0ccb0 100%);
  border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.15);
  transform: rotate(1deg);
  animation: lb-paper 6s ease-in-out infinite alternate;
}
.scn-subscriber-list-b .quill {
  position: absolute; left: 55%; bottom: 22%; width: 8px; height: 70px;
  background: linear-gradient(180deg, #f0e0c0 0%, #c8a070 50%, #5a3a1a 100%);
  border-radius: 50% 50% 10% 10% / 60% 60% 20% 20%;
  transform-origin: bottom center; transform: rotate(-15deg);
  animation: lb-quill 4s ease-in-out infinite alternate;
}
.scn-subscriber-list-b .inkwell {
  position: absolute; left: 25%; bottom: 20%; width: 30px; height: 28px;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%);
  border-radius: 50% 50% 30% 30% / 80% 80% 30% 30%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
}
.scn-subscriber-list-b .candle {
  position: absolute; left: 70%; bottom: 22%; width: 16px; height: 40px;
  background: linear-gradient(180deg, #f5e0c0 0%, #e8c898 100%);
  border-radius: 4px 4px 2px 2px;
  box-shadow: 0 0 20px 6px #e8a040;
  animation: lb-candle-glow 3s ease-in-out infinite alternate;
}
.scn-subscriber-list-b .hand {
  position: absolute; left: 45%; bottom: 22%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #d4b898 0%, #b89a78 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: lb-hand 5s ease-in-out infinite alternate;
}
.scn-subscriber-list-b .wick {
  position: absolute; left: 70.5%; bottom: 42%; width: 2px; height: 8px;
  background: #2a1a10;
  border-radius: 50%;
}
@keyframes lb-paper { 0% { transform: rotate(1deg) translateY(0) } 50% { transform: rotate(0.5deg) translateY(-1px) } 100% { transform: rotate(1.2deg) translateY(0) } }
@keyframes lb-quill { 0% { transform: rotate(-15deg) } 50% { transform: rotate(-12deg) } 100% { transform: rotate(-17deg) } }
@keyframes lb-candle-glow { 0% { box-shadow: 0 0 15px 4px #e8a040; opacity: 0.9 } 50% { box-shadow: 0 0 30px 10px #f0b850; opacity: 1 } 100% { box-shadow: 0 0 20px 6px #d88a30; opacity: 0.85 } }
@keyframes lb-hand { 0% { transform: translateX(0) rotate(-2deg) } 50% { transform: translateX(3px) rotate(0deg) } 100% { transform: translateX(-1px) rotate(1deg) } }

.scn-subscriber-list-b-remaining {
  background:
    linear-gradient(180deg, #3a2a1a 0%, #4a3828 30%, #5a4838 60%, #3a2a1a 100%),
    radial-gradient(ellipse at 50% 80%, #6a5848 0%, transparent 70%);
}
.scn-subscriber-list-b-remaining .bookshelf-back {
  position: absolute; left: 15%; top: 5%; width: 70%; height: 85%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2218 100%);
  border-radius: 4px; box-shadow: inset 0 0 30px rgba(0,0,0,0.5);
}
.scn-subscriber-list-b-remaining .bookshelf-front {
  position: absolute; left: 15%; top: 5%; width: 70%; height: 85%;
  background: linear-gradient(180deg, transparent 0%, transparent 10%, #806040 10%, #806040 12%, transparent 12%, transparent 30%, #806040 30%, #806040 32%, transparent 32%, transparent 50%, #806040 50%, #806040 52%, transparent 52%, transparent 70%, #806040 70%, #806040 72%, transparent 72%);
  border-radius: 4px;
}
.scn-subscriber-list-b-remaining .book-spine {
  position: absolute; left: 20%; top: 12%; width: 12px; height: 12%;
  background: linear-gradient(180deg, #a04030 0%, #702030 100%);
  border-radius: 2px; box-shadow: 2px 0 4px rgba(0,0,0,0.3);
  animation: lr-book 10s ease-in-out infinite alternate;
}
.scn-subscriber-list-b-remaining .ladder {
  position: absolute; left: 70%; top: 10%; width: 20px; height: 70%;
  background: linear-gradient(90deg, #6a4a3a 0%, #8a6a5a 50%, #6a4a3a 100%);
  border-radius: 4px; transform: skewX(-5deg);
  animation: lr-ladder 12s ease-in-out infinite alternate;
}
.scn-subscriber-list-b-remaining .reading-lamp {
  position: absolute; left: 40%; top: 30%; width: 20px; height: 20px;
  background: radial-gradient(circle at 50% 30%, #f0c060 0%, #c08030 60%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 30px 10px #c08030, 0 0 60px 20px rgba(192,128,48,0.3);
  animation: lr-lamp-glow 4s ease-in-out infinite alternate;
}
.scn-subscriber-list-b-remaining .window-light {
  position: absolute; left: 5%; top: 5%; width: 25%; height: 35%;
  background: linear-gradient(135deg, rgba(180,200,220,0.5) 0%, transparent 100%);
  border-radius: 4px;
  animation: lr-window-light 15s ease-in-out infinite alternate;
}
.scn-subscriber-list-b-remaining .shadow {
  position: absolute; left: 0; bottom: 0; width: 100%; height: 40%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.3) 100%);
}
@keyframes lr-book { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-2px) scaleY(1.02) } 100% { transform: translateY(0) scaleY(0.98) } }
@keyframes lr-ladder { 0% { transform: skewX(-5deg) translateY(0) } 50% { transform: skewX(-4deg) translateY(-2px) } 100% { transform: skewX(-6deg) translateY(0) } }
@keyframes lr-lamp-glow { 0% { opacity: 0.7; transform: scale(1) } 50% { opacity: 1; transform: scale(1.1) } 100% { opacity: 0.8; transform: scale(0.95) } }
@keyframes lr-window-light { 0% { opacity: 0.3 } 50% { opacity: 0.6 } 100% { opacity: 0.4 } }

.scn-subscriber-list-c {
  background:
    linear-gradient(180deg, #d4c4a8 0%, #c0b098 40%, #a89880 80%, #8a7a64 100%),
    radial-gradient(ellipse at 50% 50%, #f0e8d8 0%, transparent 70%);
}
.scn-subscriber-list-c .desk-surface {
  position: absolute; left: 5%; top: 10%; width: 90%; height: 80%;
  background: linear-gradient(135deg, #8b6f47 0%, #7a5e3a 50%, #6a4e2e 100%);
  border-radius: 8px; box-shadow: inset 0 0 40px rgba(0,0,0,0.2);
  transform: perspective(500px) rotateX(40deg);
}
.scn-subscriber-list-c .book {
  position: absolute; left: 20%; top: 35%; width: 35%; height: 25%;
  background: linear-gradient(135deg, #a08060 0%, #806040 100%);
  border-radius: 4px; box-shadow: 0 4px 12px rgba(0,0,0,0.3);
  transform: rotate(-5deg);
  animation: lc-book 8s ease-in-out infinite alternate;
}
.scn-subscriber-list-c .quill {
  position: absolute; left: 60%; top: 30%; width: 6px; height: 60px;
  background: linear-gradient(180deg, #f0e0c0 0%, #c8a070 60%, #5a3a1a 100%);
  border-radius: 50% 50% 10% 10% / 60% 60% 20% 20%;
  transform: rotate(10deg);
  transform-origin: bottom center;
  animation: lc-quill 5s ease-in-out infinite alternate;
}
.scn-subscriber-list-c .inkwell {
  position: absolute; left: 55%; top: 40%; width: 28px; height: 26px;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%);
  border-radius: 50% 50% 30% 30% / 80% 80% 30% 30%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
}
.scn-subscriber-list-c .candle-ring {
  position: absolute; left: 75%; top: 30%; width: 30px; height: 30px;
  background: transparent;
  border: 3px solid #a08050;
  border-radius: 50%;
  box-shadow: inset 0 0 10px #c09040, 0 0 15px 5px #e8a040;
  animation: lc-candle-ring 4s ease-in-out infinite alternate;
}
.scn-subscriber-list-c .paper-stack {
  position: absolute; left: 25%; top: 50%; width: 25%; height: 10%;
  background: linear-gradient(180deg, #f5e6d0 0%, #e0ccb0 100%);
  border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.15);
  transform: rotate(2deg);
  animation: lc-paper 7s ease-in-out infinite alternate;
}
.scn-subscriber-list-c .hand {
  position: absolute; left: 35%; top: 42%; width: 28px; height: 34px;
  background: linear-gradient(180deg, #d4b898 0%, #b89a78 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: lc-hand 6s ease-in-out infinite alternate;
}
@keyframes lc-book { 0% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(-3deg) translateY(-2px) } 100% { transform: rotate(-6deg) translateY(0) } }
@keyframes lc-quill { 0% { transform: rotate(10deg) } 50% { transform: rotate(7deg) } 100% { transform: rotate(12deg) } }
@keyframes lc-candle-ring { 0% { box-shadow: inset 0 0 10px #c09040, 0 0 15px 5px #e8a040; opacity: 0.8 } 50% { box-shadow: inset 0 0 15px #d0a050, 0 0 25px 8px #f0b850; opacity: 1 } 100% { box-shadow: inset 0 0 10px #c09040, 0 0 15px 5px #e8a040; opacity: 0.85 } }
@keyframes lc-paper { 0% { transform: rotate(2deg) translateY(0) } 50% { transform: rotate(1deg) translateY(-1px) } 100% { transform: rotate(3deg) translateY(0) } }
@keyframes lc-hand { 0% { transform: translateX(0) rotate(1deg) } 50% { transform: translateX(2px) rotate(0deg) } 100% { transform: translateX(-1px) rotate(2deg) } }

/* charmed-with-barcelona - warm sunlit market */
.scn-charmed-with-barcelona {
  background: linear-gradient(180deg, #87ceeb 0%, #f0d9b5 50%, #d4a373 100%),
              radial-gradient(ellipse at 30% 100%, #e6c9a8 0%, transparent 70%);
}
.scn-charmed-with-barcelona .sky-cb {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #b0d4e8 0%, #f4e4c1 70%, transparent);
  animation: cb-sky 12s ease-in-out infinite alternate;
}
.scn-charmed-with-barcelona .sea-cb {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #5b8ca8 0%, #3a6680 100%);
  border-radius: 40% 30% 0 0 / 20% 15% 0 0;
  animation: cb-sea 8s ease-in-out infinite alternate;
}
.scn-charmed-with-barcelona .hill-cb {
  position: absolute; bottom: 42%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #6b8e5a 0%, #4a6b3a 100%);
  border-radius: 60% 40% 0 0 / 80% 70% 0 0;
  box-shadow: inset 0 5px 15px rgba(0,0,0,.3);
}
.scn-charmed-with-barcelona .stall-cb {
  position: absolute; bottom: 30%; left: 25%; width: 120px; height: 60px;
  background: linear-gradient(135deg, #d4a373 0%, #b08050 100%);
  border-radius: 5% 5% 8% 8%;
  box-shadow: 2px 4px 8px rgba(0,0,0,.4);
  transform: skewX(-5deg);
  animation: cb-stall 6s ease-in-out infinite;
}
.scn-charmed-with-barcelona .fruit-cb {
  position: absolute; bottom: 34%; left: 30%; width: 40px; height: 25px;
  background: radial-gradient(circle, #f4a261 0%, #e07a5f 60%, #c8553d 100%);
  border-radius: 50%;
  box-shadow: 0 2px 4px rgba(0,0,0,.3);
  animation: cb-fruit 4s ease-in-out infinite alternate;
}
.scn-charmed-with-barcelona .jug-cb {
  position: absolute; bottom: 32%; left: 50%; width: 16px; height: 30px;
  background: linear-gradient(180deg, #c2a878 0%, #a08060 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: cb-jug 5s ease-in-out infinite;
}
.scn-charmed-with-barcelona .figure-cb {
  position: absolute; bottom: 28%; left: 65%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cb-figure 7s ease-in-out infinite;
}
@keyframes cb-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes cb-sea { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes cb-stall { 0% { transform: skewX(-5deg) translateY(0) } 50% { transform: skewX(-5deg) translateY(-2px) } 100% { transform: skewX(-5deg) translateY(0) } }
@keyframes cb-fruit { 0% { transform: scale(1) } 50% { transform: scale(1.1) } 100% { transform: scale(1) } }
@keyframes cb-jug { 0% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-2deg) } }
@keyframes cb-figure { 0% { transform: translateX(0) } 25% { transform: translateX(8px) rotate(1deg) } 50% { transform: translateX(16px) } 75% { transform: translateX(8px) rotate(-1deg) } 100% { transform: translateX(0) } }

/* cruise-off-toulon - tense sunlit naval */
.scn-cruise-off-toulon {
  background: linear-gradient(180deg, #6ab0d0 0%, #c8e4f0 30%, #4a7a9a 70%, #1a2a3a 100%),
              radial-gradient(ellipse at 50% 80%, #8ab8d8 0%, transparent 60%);
}
.scn-cruise-off-toulon .sky-ct {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #7cc0e0 0%, #c8e4f0 50%, transparent);
  animation: ct-sky 15s ease-in-out infinite alternate;
}
.scn-cruise-off-toulon .sea-ct {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #1a4a6a 0%, #0a2a3a 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,.5);
  animation: ct-sea 6s ease-in-out infinite alternate;
}
.scn-cruise-off-toulon .frigate-fore-ct {
  position: absolute; bottom: 28%; left: 15%; width: 100px; height: 50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1a0a 100%);
  border-radius: 10% 10% 20% 20% / 30% 30% 40% 40%;
  box-shadow: 0 4px 6px rgba(0,0,0,.6);
  animation: ct-frigate-fore 8s ease-in-out infinite;
}
.scn-cruise-off-toulon .frigate-aft-ct {
  position: absolute; bottom: 25%; right: 10%; width: 80px; height: 45px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0a00 100%);
  border-radius: 10% 10% 20% 20% / 30% 30% 40% 40%;
  box-shadow: 0 4px 6px rgba(0,0,0,.6);
  animation: ct-frigate-aft 10s ease-in-out infinite alternate;
}
.scn-cruise-off-toulon .sail-fore-ct {
  position: absolute; bottom: 35%; left: 22%; width: 30px; height: 45px;
  background: linear-gradient(135deg, #e0d0b0 0%, #b0a080 100%);
  border-radius: 10% 30% 10% 30% / 20% 40% 20% 40%;
  transform: rotate(8deg);
  animation: ct-sail-fore 4s ease-in-out infinite alternate;
}
.scn-cruise-off-toulon .sail-aft-ct {
  position: absolute; bottom: 32%; right: 18%; width: 25px; height: 35px;
  background: linear-gradient(135deg, #d0c0a0 0%, #a09070 100%);
  border-radius: 10% 30% 10% 30% / 20% 40% 20% 40%;
  transform: rotate(-5deg);
  animation: ct-sail-aft 3.5s ease-in-out infinite alternate;
}
.scn-cruise-off-toulon .cannon-ct {
  position: absolute; bottom: 30%; left: 30%; width: 8px; height: 6px;
  background: radial-gradient(circle, #ffa060 0%, #c04020 70%);
  border-radius: 50%;
  box-shadow: 0 0 12px 4px rgba(255,160,96,.6);
  animation: ct-cannon 2s ease-in-out infinite;
}
.scn-cruise-off-toulon .wave-ct {
  position: absolute; bottom: 15%; left: 0; right: 0; height: 8%;
  background: radial-gradient(ellipse, #4a7a9a 0%, transparent 70%);
  filter: blur(3px);
  animation: ct-wave 4s ease-in-out infinite alternate;
}
@keyframes ct-sky { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes ct-sea { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes ct-frigate-fore { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes ct-frigate-aft { 0% { transform: translateY(0) rotate(1deg) } 50% { transform: translateY(-2px) rotate(-1deg) } 100% { transform: translateY(0) rotate(1deg) } }
@keyframes ct-sail-fore { 0% { transform: rotate(8deg) scaleX(1) } 50% { transform: rotate(8deg) scaleX(1.05) } 100% { transform: rotate(8deg) scaleX(1) } }
@keyframes ct-sail-aft { 0% { transform: rotate(-5deg) scaleX(1) } 50% { transform: rotate(-5deg) scaleX(1.05) } 100% { transform: rotate(-5deg) scaleX(1) } }
@keyframes ct-cannon { 0% { opacity:0.3; transform: scale(1) } 25% { opacity:1; transform: scale(2) } 50% { opacity:0.3; transform: scale(1) } 100% { opacity:0.3 } }
@keyframes ct-wave { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-4px) scaleY(1.2) } 100% { transform: translateY(0) scaleY(1) } }

/* frigate-sunk - tense aftermath */
.scn-frigate-sunk {
  background: linear-gradient(180deg, #4a6a7a 0%, #8aaac0 30%, #1a2a3a 70%, #0a1a2a 100%),
              radial-gradient(ellipse at 70% 50%, #6a8a9a 0%, transparent 60%);
}
.scn-frigate-sunk .sky-fs {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #5a7a8a 0%, #8aaac0 50%, transparent);
  animation: fs-sky 18s ease-in-out infinite alternate;
}
.scn-frigate-sunk .sea-fs {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #1a3a4a 0%, #0a1a2a 100%);
  box-shadow: inset 0 8px 16px rgba(0,0,0,.5);
  animation: fs-sea 5s ease-in-out infinite alternate;
}
.scn-frigate-sunk .wreck-fs {
  position: absolute; bottom: 30%; left: 20%; width: 120px; height: 40px;
  background: linear-gradient(170deg, #3a2a1a 0%, #1a1a0a 100%);
  border-radius: 20% 60% 40% 40% / 30% 50% 30% 50%;
  transform: rotate(15deg);
  box-shadow: 0 4px 8px rgba(0,0,0,.7);
  animation: fs-wreck 9s ease-in-out infinite;
}
.scn-frigate-sunk .mast-fs {
  position: absolute; bottom: 45%; left: 30%; width: 6px; height: 60px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 2px;
  transform: rotate(-10deg);
  transform-origin: bottom;
  animation: fs-mast 7s ease-in-out infinite alternate;
}
.scn-frigate-sunk .smoke-fs {
  position: absolute; top: 15%; right: 15%; width: 80px; height: 40px;
  background: radial-gradient(ellipse, rgba(80,80,80,0.6) 0%, rgba(40,40,40,0.3) 60%, transparent);
  filter: blur(8px);
  animation: fs-smoke 20s ease-in-out infinite alternate;
}
.scn-frigate-sunk .escapee-fs {
  position: absolute; bottom: 20%; left: 50%; width: 14px; height: 20px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: fs-escapee 3s ease-in-out infinite;
}
.scn-frigate-sunk .wave-fs {
  position: absolute; bottom: 10%; left: 0; right: 0; height: 6%;
  background: radial-gradient(ellipse, #3a6a7a 0%, transparent 70%);
  filter: blur(2px);
  animation: fs-wave 4s ease-in-out infinite alternate;
}
@keyframes fs-sky { 0% { opacity:0.6 } 50% { opacity:0.8 } 100% { opacity:0.5 } }
@keyframes fs-sea { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes fs-wreck { 0% { transform: rotate(15deg) translateY(0) } 50% { transform: rotate(15deg) translateY(-3px) } 100% { transform: rotate(15deg) translateY(0) } }
@keyframes fs-mast { 0% { transform: rotate(-10deg) scaleY(1) } 50% { transform: rotate(-10deg) scaleY(0.95) } 100% { transform: rotate(-10deg) scaleY(1) } }
@keyframes fs-smoke { 0% { transform: translateX(0) scale(1); opacity:0.4 } 50% { transform: translateX(-15px) scale(1.2); opacity:0.6 } 100% { transform: translateX(0) scale(1); opacity:0.4 } }
@keyframes fs-escapee { 0% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-3px) rotate(-5deg) } 50% { transform: translateY(0) rotate(0) } 75% { transform: translateY(-3px) rotate(5deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes fs-wave { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-2px) scaleY(1.1) } 100% { transform: translateY(0) scaleY(1) } }

/* alarm-french-fleet-out - tense dusk harbor */
.scn-alarm-french-fleet-out {
  background: linear-gradient(180deg, #1a1a3a 0%, #3a2a5a 30%, #6a5a7a 60%, #8a7a6a 100%),
              radial-gradient(ellipse at 30% 80%, #c0a060 0%, transparent 50%);
}
.scn-alarm-french-fleet-out .sky-af {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #2a2a4a 0%, #6a5a7a 50%, #c0a060 100%);
  animation: af-sky 20s ease-in-out infinite alternate;
}
.scn-alarm-french-fleet-out .sea-af {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%);
  box-shadow: inset 0 6px 12px rgba(0,0,0,.5);
  animation: af-sea 7s ease-in-out infinite alternate;
}
.scn-alarm-french-fleet-out .hill-af {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #3a4a3a 0%, #2a3a2a 100%);
  border-radius: 30% 70% 0 0 / 40% 80% 0 0;
  box-shadow: inset 0 4px 8px rgba(0,0,0,.4);
}
.scn-alarm-french-fleet-out .ship-af {
  position: absolute; bottom: 20%; left: 20%; width: 80px; height: 35px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 10% 10% 20% 20% / 20% 20% 30% 30%;
  box-shadow: 0 2px 4px rgba(0,0,0,.6);
  animation: af-ship 12s ease-in-out infinite;
}
.scn-alarm-french-fleet-out .mast-af {
  position: absolute; bottom: 35%; left: 25%; width: 4px; height: 40px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 2px;
  transform-origin: bottom;
  animation: af-mast 6s ease-in-out infinite alternate;
}
.scn-alarm-french-fleet-out .officer-af {
  position: absolute; bottom: 18%; left: 10%; width: 16px; height: 30px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: af-officer 5s ease-in-out infinite;
}
@keyframes af-sky { 0% { opacity:0.7 } 50% { opacity:0.9 } 100% { opacity:0.6 } }
@keyframes af-sea { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes af-ship { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-1px) rotate(1deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes af-mast { 0% { transform: rotate(-2deg) scaleY(1) } 50% { transform: rotate(2deg) scaleY(0.97) } 100% { transform: rotate(-2deg) scaleY(1) } }
@keyframes af-officer { 0% { transform: translateY(0) rotate(-2deg) } 25% { transform: translateY(-2px) rotate(0) } 50% { transform: translateY(0) rotate(2deg) } 75% { transform: translateY(-2px) rotate(0) } 100% { transform: translateY(0) rotate(-2deg) } }

/* bahama-key-flamingoes */
.scn-bahama-key-flamingoes {
  background: linear-gradient(180deg, #7ec8e3 0%, #4fa4c0 40%), radial-gradient(ellipse at 50% 100%, #f5d6b8 20%, transparent 60%);
}
.scn-bahama-key-flamingoes .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #b0e0f0 0%, #7ec8e3 100%); animation: bf-sky 8s ease-in-out infinite alternate; }
.scn-bahama-key-flamingoes .sun { position:absolute; top:8%; left:70%; width:50px; height:50px; background: radial-gradient(circle, #fff5cc 0%, #ffec80 50%, transparent 70%); border-radius:50%; animation: bf-sun 6s ease-in-out infinite alternate; }
.scn-bahama-key-flamingoes .ocean { position:absolute; bottom:30%; left:0; right:0; height:40%; background: linear-gradient(180deg, #3a9eb0 0%, #1e7a8a 100%); border-radius:30% 70% 0 0 / 60% 40% 0 0; animation: bf-ocean 12s ease-in-out infinite; }
.scn-bahama-key-flamingoes .beach { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #f5e6c0 0%, #d9c89a 100%); border-radius:50% 50% 0 0 / 30% 30% 0 0; }
.scn-bahama-key-flamingoes .palm1 { position:absolute; bottom:20%; left:15%; width:8px; height:60px; background: linear-gradient(180deg, #6b4f3a 0%, #3d2c1e 100%); border-radius:4px; transform-origin:bottom center; animation: bf-palm 4s ease-in-out infinite; }
.scn-bahama-key-flamingoes .palm2 { position:absolute; bottom:22%; right:20%; width:10px; height:70px; background: linear-gradient(180deg, #6b4f3a 0%, #3d2c1e 100%); border-radius:5px; transform-origin:bottom center; animation: bf-palm 5s ease-in-out infinite alternate; }
.scn-bahama-key-flamingoes .flamingo1 { position:absolute; bottom:15%; left:30%; width:20px; height:35px; background: radial-gradient(ellipse at 50% 30%, #f7b8c8 0%, #e07a9a 100%); border-radius:50% 50% 40% 40% / 60% 60% 50% 50%; transform-origin: bottom center; animation: bf-flamingo 3s ease-in-out infinite; }
.scn-bahama-key-flamingoes .flamingo2 { position:absolute; bottom:12%; left:50%; width:18px; height:30px; background: radial-gradient(ellipse at 50% 30%, #f7b8c8 0%, #e07a9a 100%); border-radius:50% 50% 40% 40% / 60% 60% 50% 50%; transform-origin: bottom center; animation: bf-flamingo 4s ease-in-out infinite reverse; }
.scn-bahama-key-flamingoes .cloud { position:absolute; top:6%; left:-10%; width:120px; 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: bf-cloud 40s linear infinite; }
@keyframes bf-sky { 0%{opacity:0.9} 50%{opacity:1} 100%{opacity:0.8} }
@keyframes bf-sun { 0%{transform:scale(1) translate(0,0)} 50%{transform:scale(1.05) translate(2px,-2px)} 100%{transform:scale(0.95) translate(-2px,2px)} }
@keyframes bf-ocean { 0%{transform:translateY(0)} 50%{transform:translateY(-2px)} 100%{transform:translateY(1px)} }
@keyframes bf-palm { 0%{transform:rotate(-3deg)} 50%{transform:rotate(3deg)} 100%{transform:rotate(-3deg)} }
@keyframes bf-flamingo { 0%{transform:translateX(0) rotate(-2deg)} 50%{transform:translateX(15px) rotate(3deg)} 100%{transform:translateX(30px) rotate(0deg)} }
@keyframes bf-cloud { 0%{transform:translateX(-30px)} 100%{transform:translateX(110vw)} }

/* key-resources-turtles */
.scn-key-resources-turtles {
  background: linear-gradient(180deg, #9dd5e8 0%, #6abbd4 50%), radial-gradient(ellipse at 50% 0%, #f9e4b0 0%, transparent 50%);
}
.scn-key-resources-turtles .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #c4e8f0 0%, #9dd5e8 100%); animation: kt-sky 10s ease-in-out infinite alternate; }
.scn-key-resources-turtles .sun { position:absolute; top:10%; left:20%; width:45px; height:45px; background: radial-gradient(circle, #fff7cc 0%, #ffe680 50%, transparent 70%); border-radius:50%; animation: kt-sun 7s ease-in-out infinite; }
.scn-key-resources-turtles .ocean { position:absolute; bottom:25%; left:0; right:0; height:45%; background: linear-gradient(180deg, #40a8c0 0%, #1e7a8a 100%); border-radius:40% 60% 0 0 / 70% 50% 0 0; animation: kt-ocean 15s ease-in-out infinite; }
.scn-key-resources-turtles .sand { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #e8d4a8 0%, #c4b080 100%); border-radius:60% 40% 0 0 / 40% 50% 0 0; }
.scn-key-resources-turtles .turtle1 { position:absolute; bottom:20%; left:25%; width:40px; height:24px; background: radial-gradient(ellipse at 50% 40%, #7a8a5a 0%, #4e603a 100%); border-radius:50% 50% 40% 40%; transform-origin: center; animation: kt-turtle1 5s ease-in-out infinite; }
.scn-key-resources-turtles .turtle2 { position:absolute; bottom:18%; left:60%; width:28px; height:18px; background: radial-gradient(ellipse at 50% 40%, #7a8a5a 0%, #4e603a 100%); border-radius:50% 50% 40% 40%; transform-origin: center; animation: kt-turtle2 6s ease-in-out infinite alternate; }
.scn-key-resources-turtles .coral { position:absolute; bottom:10%; left:10%; width:60px; height:30px; background: radial-gradient(circle at 30% 50%, #d97a6a 0%, #b85a4a 100%); border-radius:40% 60% 50% 50% / 30% 40% 60% 70%; filter:blur(2px); animation: kt-coral 8s ease-in-out infinite; }
.scn-key-resources-turtles .fish { position:absolute; bottom:30%; left:70%; width:10px; height:6px; background: radial-gradient(circle at 30% 50%, #f0b060 0%, #d09040 100%); border-radius:50%; filter:blur(1px); animation: kt-fish 4s ease-in-out infinite; }
@keyframes kt-sky { 0%{opacity:0.9} 50%{opacity:1} 100%{opacity:0.85} }
@keyframes kt-sun { 0%{transform:translate(0,0) scale(1)} 50%{transform:translate(3px,-2px) scale(1.03)} 100%{transform:translate(-2px,1px) scale(0.98)} }
@keyframes kt-ocean { 0%{transform:translateY(0)} 50%{transform:translateY(-3px)} 100%{transform:translateY(2px)} }
@keyframes kt-turtle1 { 0%{transform:translateX(0) rotate(0deg)} 50%{transform:translateX(20px) rotate(5deg)} 100%{transform:translateX(40px) rotate(-3deg)} }
@keyframes kt-turtle2 { 0%{transform:translateX(0) rotate(0deg)} 100%{transform:translateX(-30px) rotate(-4deg)} }
@keyframes kt-coral { 0%{transform:scale(1) rotate(0deg)} 50%{transform:scale(1.02) rotate(2deg)} 100%{transform:scale(0.98) rotate(-1deg)} }
@keyframes kt-fish { 0%{transform:translate(0,0)} 50%{transform:translate(10px,-2px)} 100%{transform:translate(20px,1px)} }

/* tents-and-boat-repair */
.scn-tents-and-boat-repair {
  background: linear-gradient(180deg, #b8d8e8 0%, #8cbcc8 50%), linear-gradient(180deg, #f0e4c0 0%, #d4c8a0 100%);
}
.scn-tents-and-boat-repair .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #d4ecf0 0%, #b8d8e8 100%); animation: tb-sky 9s ease-in-out infinite alternate; }
.scn-tents-and-boat-repair .ground { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #e8dcc0 0%, #c8b890 100%); border-radius:60% 40% 0 0 / 50% 30% 0 0; }
.scn-tents-and-boat-repair .tent { position:absolute; bottom:30%; left:20%; width:100px; height:60px; background: linear-gradient(180deg, #f5e8d0 0%, #dfd0b0 100%); clip-path: polygon(5% 100%, 95% 100%, 80% 20%, 50% 0%, 20% 20%); box-shadow: 0 4px 8px rgba(0,0,0,0.2); animation: tb-tent 6s ease-in-out infinite; }
.scn-tents-and-boat-repair .boat { position:absolute; bottom:12%; left:55%; width:70px; height:30px; background: linear-gradient(180deg, #a08868 0%, #7a6040 100%); border-radius:40% 40% 20% 20% / 60% 60% 30% 30%; transform:rotate(-5deg); animation: tb-boat 8s ease-in-out infinite alternate; }
.scn-tents-and-boat-repair .bench { position:absolute; bottom:18%; left:30%; width:50px; height:8px; background: linear-gradient(90deg, #b09878 0%, #8a7050 100%); border-radius:2px; box-shadow: 0 2px 4px rgba(0,0,0,0.3); animation: tb-bench 5s ease-in-out infinite; }
.scn-tents-and-boat-repair .tool { position:absolute; bottom:16%; left:38%; width:12px; height:20px; background: linear-gradient(180deg, #7a6a5a 0%, #504030 100%); border-radius:50% 50% 10% 10%; transform:rotate(30deg); animation: tb-tool 4s ease-in-out infinite; }
.scn-tents-and-boat-repair .figure { position:absolute; bottom:20%; left:45%; width:16px; height:28px; background: linear-gradient(180deg, #3a4a5a 0%, #1a2a3a 100%); border-radius:50% 50% 40% 40% / 60% 60% 50% 50%; transform-origin: bottom center; animation: tb-figure 4s ease-in-out infinite; }
.scn-tents-and-boat-repair .cloud { position:absolute; top:10%; right:-10%; width:100px; height:16px; background: linear-gradient(180deg, rgba(255,255,255,0.5) 0%, rgba(255,255,255,0.1) 100%); border-radius:50%; filter:blur(6px); animation: tb-cloud 35s linear infinite; }
@keyframes tb-sky { 0%{opacity:0.9} 50%{opacity:1} 100%{opacity:0.85} }
@keyframes tb-tent { 0%{transform:translateY(0)} 50%{transform:translateY(-2px)} 100%{transform:translateY(0)} }
@keyframes tb-boat { 0%{transform:translateY(0) rotate(-5deg)} 50%{transform:translateY(-3px) rotate(-7deg)} 100%{transform:translateY(1px) rotate(-4deg)} }
@keyframes tb-bench { 0%{transform:translateX(0)} 50%{transform:translateX(2px)} 100%{transform:translateX(-1px)} }
@keyframes tb-tool { 0%{transform:rotate(30deg) translate(0,0)} 50%{transform:rotate(35deg) translate(1px,-1px)} 100%{transform:rotate(28deg) translate(-1px,1px)} }
@keyframes tb-figure { 0%{transform:translateX(0) rotate(0deg)} 50%{transform:translateX(5px) rotate(2deg)} 100%{transform:translateX(10px) rotate(-1deg)} }
@keyframes tb-cloud { 0%{transform:translateX(0)} 100%{transform:translateX(-120vw)} }

/* obbico-island-thirst */
.scn-obbico-island-thirst {
  background: linear-gradient(180deg, #d4c8a0 0%, #b8a880 50%), radial-gradient(ellipse at 50% 0%, #fff0d0 0%, transparent 60%);
}
.scn-obbico-island-thirst .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #c4b890 0%, #b0a078 100%); animation: oi-sky 10s ease-in-out infinite alternate; }
.scn-obbico-island-thirst .sun { position:absolute; top:5%; left:45%; width:60px; height:60px; background: radial-gradient(circle, #fff8e0 0%, #f0d8a0 60%, transparent 80%); border-radius:50%; box-shadow: 0 0 40px 20px rgba(240,216,160,0.4); animation: oi-sun 8s ease-in-out infinite; }
.scn-obbico-island-thirst .ground { position:absolute; bottom:0; left:0; right:0; height:60%; background: linear-gradient(180deg, #9a8a6a 0%, #7a6a4a 100%); border-radius:70% 30% 0 0 / 60% 40% 0 0; }
.scn-obbico-island-thirst .well { position:absolute; bottom:25%; left:30%; width:40px; height:30px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:40% 40% 10% 10%; box-shadow: inset 0 6px 10px rgba(0,0,0,0.6); animation: oi-well 6s ease-in-out infinite; }
.scn-obbico-island-thirst .figure { position:absolute; bottom:20%; left:50%; width:18px; height:32px; background: linear-gradient(180deg, #2a3a3a 0%, #0a1a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 50% 50%; transform-origin: bottom center; animation: oi-figure 4s ease-in-out infinite; }
.scn-obbico-island-thirst .canteen { position:absolute; bottom:22%; left:45%; width:8px; height:12px; background: radial-gradient(ellipse at 50% 30%, #6a5a4a 0%, #4a3a2a 100%); border-radius:30% 30% 20% 20%; transform:rotate(15deg); animation: oi-canteen 3s ease-in-out infinite alternate; }
.scn-obbico-island-thirst .distant { position:absolute; bottom:35%; right:10%; width:40px; height:20px; background: linear-gradient(180deg, #6a7a5a 0%, #4a5a3a 100%); border-radius:40% 40% 20% 20% / 50% 50% 30% 30%; filter:blur(3px); opacity:0.6; animation: oi-distant 12s ease-in-out infinite; }
.scn-obbico-island-thirst .shadow { position:absolute; inset:0; background: linear-gradient(180deg, rgba(0,0,0,0.3) 0%, transparent 50%, rgba(0,0,0,0.5) 100%); animation: oi-shadow 5s ease-in-out infinite alternate; }
@keyframes oi-sky { 0%{opacity:0.9} 50%{opacity:1} 100%{opacity:0.8} }
@keyframes oi-sun { 0%{transform:scale(1) translate(0,0)} 50%{transform:scale(1.1) translate(3px,-3px)} 100%{transform:scale(0.9) translate(-2px,2px)} }
@keyframes oi-well { 0%{transform:translateY(0)} 50%{transform:translateY(-2px)} 100%{transform:translateY(1px)} }
@keyframes oi-figure { 0%{transform:translateX(0) rotate(-2deg) scaleY(1)} 50%{transform:translateX(5px) rotate(3deg) scaleY(0.98)} 100%{transform:translateX(10px) rotate(0deg) scaleY(1)} }
@keyframes oi-canteen { 0%{transform:rotate(15deg) translate(0,0)} 100%{transform:rotate(20deg) translate(2px,-2px)} }
@keyframes oi-distant { 0%{transform:translateY(0)} 50%{transform:translateY(-3px)} 100%{transform:translateY(2px)} }
@keyframes oi-shadow { 0%{opacity:0.5} 50%{opacity:0.8} 100%{opacity:0.4} }

/* desperate-thirst-key – dark mood, sunlit key */
.scn-desperate-thirst-key {
  background: linear-gradient(180deg, #f5d88a 0%, #e2a85c 30%, #d4813f 60%, #8b5e2a 100%), radial-gradient(ellipse at 70% 20%, #ffe599 0%, transparent 60%);
}
.scn-desperate-thirst-key .sky {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #ffe0b2 0%, #ffcc80 40%, transparent 100%);
  animation: dtk-sky 8s ease-in-out infinite alternate;
}
.scn-desperate-thirst-key .sun {
  position: absolute; top: 10%; left: 70%; width: 60px; height: 60px;
  background: radial-gradient(circle, #fff7d4 0%, #ffd680 50%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px rgba(255,214,128,0.5);
  animation: dtk-sun 6s ease-in-out infinite alternate;
}
.scn-desperate-thirst-key .ocean {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #2b5e7a 0%, #1a3c52 50%, #0f2533 100%);
  animation: dtk-ocean 12s ease-in-out infinite alternate;
}
.scn-desperate-thirst-key .key {
  position: absolute; bottom: 25%; left: 20%; width: 60%; height: 30%;
  background: linear-gradient(180deg, #c9a96e 0%, #a07d4e 50%, #6b4e2e 100%);
  border-radius: 60% 40% 30% 20% / 80% 70% 40% 50%;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.4);
  animation: dtk-key 15s ease-in-out infinite alternate;
}
.scn-desperate-thirst-key .figure {
  position: absolute; bottom: 32%; left: 45%; width: 16px; height: 38px;
  background: linear-gradient(180deg, #2a1f18 0%, #1a0f08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dtk-figure 4s ease-in-out infinite;
}
.scn-desperate-thirst-key .leaves {
  position: absolute; bottom: 30%; left: 30%; width: 40px; height: 20px;
  background: #4a6b3a;
  border-radius: 80% 20% 80% 20% / 50% 60% 40% 50%;
  filter: blur(1px);
  animation: dtk-leaves 5s ease-in-out infinite alternate;
}
.scn-desperate-thirst-key .water-pool {
  position: absolute; bottom: 28%; left: 50%; width: 18px; height: 6px;
  background: radial-gradient(circle, #5b8baa 0%, #3b5a72 60%);
  border-radius: 50%/30%;
  box-shadow: 0 2px 8px rgba(0,0,0,0.3);
  animation: dtk-pool 4s ease-in-out infinite alternate;
}
@keyframes dtk-sky { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes dtk-sun { 0% { transform: scale(0.95); } 50% { transform: scale(1.05); } 100% { transform: scale(1); } }
@keyframes dtk-ocean { 0% { transform: translateY(0); } 50% { transform: translateY(4px); } 100% { transform: translateY(2px); } }
@keyframes dtk-key { 0% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.01) rotate(1deg); } 100% { transform: scale(0.98) rotate(-0.5deg); } }
@keyframes dtk-figure { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 25% { transform: translateX(3px) translateY(-2px) rotate(2deg); } 50% { transform: translateX(6px) translateY(0) rotate(-1deg); } 75% { transform: translateX(9px) translateY(-1px) rotate(1deg); } 100% { transform: translateX(12px) translateY(0) rotate(0); } }
@keyframes dtk-leaves { 0% { transform: scale(1) rotate(0); } 50% { transform: scale(1.1) rotate(10deg); } 100% { transform: scale(0.9) rotate(-5deg); } }
@keyframes dtk-pool { 0% { opacity: 0.6; transform: scaleX(1); } 50% { opacity: 0.8; transform: scaleX(1.2); } 100% { opacity: 0.7; transform: scaleX(0.9); } }

/* meeting-wrecker-sloop – warm mood, sunlit sloop */
.scn-meeting-wrecker-sloop {
  background: linear-gradient(180deg, #fce4b8 0%, #f5d08a 30%, #dba560 60%, #b8823a 100%), radial-gradient(ellipse at 50% 20%, #fff4c4 0%, transparent 70%);
}
.scn-meeting-wrecker-sloop .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #ffe8c8 0%, #ffd499 40%, transparent 100%);
  animation: mws-sky 10s ease-in-out infinite alternate;
}
.scn-meeting-wrecker-sloop .sun-haze {
  position: absolute; top: 12%; left: 60%; width: 80px; height: 60px;
  background: radial-gradient(ellipse, #fff7e0 0%, #ffe099 30%, transparent 80%);
  border-radius: 50%;
  filter: blur(10px);
  animation: mws-haze 8s ease-in-out infinite alternate;
}
.scn-meeting-wrecker-sloop .sea {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #3d7a9a 0%, #1d4a6a 50%, #0e2a3e 100%);
  animation: mws-sea 14s ease-in-out infinite alternate;
}
.scn-meeting-wrecker-sloop .sloop-hull {
  position: absolute; bottom: 30%; left: 35%; width: 120px; height: 40px;
  background: linear-gradient(180deg, #6a5128 0%, #4a3518 100%);
  border-radius: 20% 30% 50% 50% / 60% 60% 40% 40%;
  box-shadow: inset 0 -5px 10px rgba(0,0,0,0.5);
  animation: mws-hull 6s ease-in-out infinite alternate;
}
.scn-meeting-wrecker-sloop .sail-main {
  position: absolute; bottom: 45%; left: 40%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #f2e0c0 0%, #d4b888 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 10% 10%;
  transform-origin: bottom center;
  animation: mws-sail 4s ease-in-out infinite alternate;
}
.scn-meeting-wrecker-sloop .sail-jib {
  position: absolute; bottom: 40%; left: 30%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #e8d4ac 0%, #c8a878 100%);
  border-radius: 30% 10% 5% 5% / 50% 20% 10% 10%;
  transform-origin: bottom center;
  animation: mws-jib 3.5s ease-in-out infinite alternate;
}
.scn-meeting-wrecker-sloop .people-deck {
  position: absolute; bottom: 33%; left: 38%; width: 80px; height: 10px;
  background: transparent;
  display: flex;
  justify-content: space-around;
}
/* We'll simulate people with pseudo-elements in the actual code, but here we need a single div. Instead, use a series of small dots. But rule: no text. We'll use a div with multiple gradients to simulate heads. */
.scn-meeting-wrecker-sloop .people-deck {
  position: absolute; bottom: 33%; left: 42%; width: 60px; height: 14px;
  background: radial-gradient(circle at 20% 50%, #2a1f18 0%, transparent 40%),
              radial-gradient(circle at 50% 50%, #1a0f08 0%, transparent 40%),
              radial-gradient(circle at 80% 50%, #2a1f18 0%, transparent 40%);
  background-size: 30% 100%, 30% 100%, 30% 100%;
  background-repeat: no-repeat;
  animation: mws-people 3s ease-in-out infinite alternate;
}
.scn-meeting-wrecker-sloop .flag {
  position: absolute; bottom: 58%; left: 45%; width: 12px; height: 8px;
  background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%);
  clip-path: polygon(0 0, 100% 0, 80% 50%, 100% 100%, 0 100%);
  animation: mws-flag 2.5s ease-in-out infinite alternate;
}
@keyframes mws-sky { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.9 } }
@keyframes mws-haze { 0% { transform: scale(1); opacity: 0.6 } 50% { transform: scale(1.2); opacity: 0.8 } 100% { transform: scale(0.9); opacity: 0.7 } }
@keyframes mws-sea { 0% { transform: translateY(0); } 50% { transform: translateY(3px); } 100% { transform: translateY(-2px); } }
@keyframes mws-hull { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(2px) rotate(1deg); } 100% { transform: translateY(-1px) rotate(-1deg); } }
@keyframes mws-sail { 0% { transform: scaleY(1) rotate(0); } 50% { transform: scaleY(1.05) rotate(3deg); } 100% { transform: scaleY(0.98) rotate(-2deg); } }
@keyframes mws-jib { 0% { transform: scaleY(1) rotate(0); } 50% { transform: scaleY(1.08) rotate(5deg); } 100% { transform: scaleY(0.95) rotate(-3deg); } }
@keyframes mws-people { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(1px); } }
@keyframes mws-flag { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.2); } 100% { transform: scaleX(0.9); } }

/* wrecker-agreement – calm mood, sunlit cabin interior */
.scn-wrecker-agreement {
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 40%, #1a0e04 100%), radial-gradient(ellipse at 30% 50%, #5a3a20 0%, transparent 60%);
}
.scn-wrecker-agreement .cabin-wall {
  position: absolute; inset: 10% 5% 10% 5%;
  background: linear-gradient(180deg, #4a3520 0%, #3a2510 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.6);
}
.scn-wrecker-agreement .table {
  position: absolute; bottom: 20%; left: 25%; width: 50%; height: 20%;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a3018 100%);
  border-radius: 4px;
  box-shadow: 0 8px 20px rgba(0,0,0,0.5);
  animation: wka-table 10s ease-in-out infinite alternate;
}
.scn-wrecker-agreement .figure-left {
  position: absolute; bottom: 22%; left: 30%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #2a1f18 0%, #1a0f08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: wka-fig-left 6s ease-in-out infinite alternate;
}
.scn-wrecker-agreement .figure-right {
  position: absolute; bottom: 22%; left: 55%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #2a1f18 0%, #1a0f08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: wka-fig-right 6s ease-in-out infinite alternate;
}
.scn-wrecker-agreement .lantern {
  position: absolute; top: 28%; left: 45%; width: 20px; height: 30px;
  background: radial-gradient(circle at 50% 40%, #ffd680 0%, #b08040 70%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 40px 10px #c08040, 0 0 80px 20px rgba(192,128,64,0.3);
  animation: wka-lantern 4s ease-in-out infinite alternate;
}
.scn-wrecker-agreement .paper {
  position: absolute; bottom: 25%; left: 40%; width: 30px; height: 22px;
  background: #e0d0a0;
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  transform: rotate(5deg);
  animation: wka-paper 8s ease-in-out infinite alternate;
}
.scn-wrecker-agreement .window-port {
  position: absolute; top: 15%; left: 70%; width: 30px; height: 30px;
  background: radial-gradient(circle, #99bbdd 0%, #3a5a7a 70%);
  border-radius: 50%;
  box-shadow: inset 0 0 10px #aaccee, 0 0 20px rgba(100,150,200,0.4);
  animation: wka-window 12s ease-in-out infinite alternate;
}
@keyframes wka-table { 0% { transform: translateY(0); } 50% { transform: translateY(2px); } 100% { transform: translateY(0); } }
@keyframes wka-fig-left { 0% { transform: rotate(0); } 50% { transform: rotate(5deg) translateY(-2px); } 100% { transform: rotate(-2deg) translateY(0); } }
@keyframes wka-fig-right { 0% { transform: rotate(0); } 50% { transform: rotate(-5deg) translateY(-2px); } 100% { transform: rotate(2deg) translateY(0); } }
@keyframes wka-lantern { 0% { opacity: 0.7; transform: scale(0.95); } 50% { opacity: 1; transform: scale(1.05); } 100% { opacity: 0.8; transform: scale(1); } }
@keyframes wka-paper { 0% { transform: rotate(5deg) translateY(0); } 50% { transform: rotate(2deg) translateY(-3px); } 100% { transform: rotate(6deg) translateY(1px); } }
@keyframes wka-window { 0% { opacity: 0.6; } 50% { opacity: 0.9; } 100% { opacity: 0.7; } }

/* journey-to-new-providence – tense mood, sunlit mast scene */
.scn-journey-to-new-providence {
  background: linear-gradient(180deg, #e8d090 0%, #c8a050 30%, #a07830 60%, #684818 100%), radial-gradient(ellipse at 50% 15%, #ffe8a0 0%, transparent 60%);
}
.scn-journey-to-new-providence .sky-strip {
  position: absolute; inset: 0 0 70% 0;
  background: linear-gradient(180deg, #ffe0a0 0%, #ffcc70 30%, transparent 100%);
  animation: jnp-sky 7s ease-in-out infinite alternate;
}
.scn-journey-to-new-providence .sun-blaze {
  position: absolute; top: 8%; left: 50%; width: 50px; height: 50px;
  background: radial-gradient(circle, #fff4c0 0%, #ffd070 40%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 80px 30px rgba(255,208,112,0.6);
  animation: jnp-sun 4s ease-in-out infinite alternate;
}
.scn-journey-to-new-providence .mast {
  position: absolute; bottom: 20%; left: 50%; width: 8px; height: 60%;
  background: linear-gradient(180deg, #4a3018 0%, #2a1a0a 100%);
  transform: translateX(-50%);
  border-radius: 2px;
  animation: jnp-mast 8s ease-in-out infinite alternate;
}
.scn-journey-to-new-providence .sail-mains {
  position: absolute; bottom: 30%; left: 50%; width: 50px; height: 80px;
  background: linear-gradient(180deg, #f0d8b0 0%, #d0b080 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 10% 10%;
  transform: translateX(-50%);
  transform-origin: bottom center;
  animation: jnp-sail 2.5s ease-in-out infinite alternate;
}
.scn-journey-to-new-providence .rigging {
  position: absolute; bottom: 20%; left: 50%; width: 100px; height: 2px;
  background: repeating-linear-gradient(90deg, #5a4a3a 0px, #5a4a3a 2px, transparent 2px, transparent 10px);
  transform: translateX(-50%) rotate(-30deg);
  transform-origin: left center;
  animation: jnp-rig 6s ease-in-out infinite alternate;
}
.scn-journey-to-new-providence .sailor-climb {
  position: absolute; bottom: 40%; left: 50%; width: 12px; height: 28px;
  background: linear-gradient(180deg, #2a1f18 0%, #1a0f08 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform: translateX(-50%);
  animation: jnp-sailor 3s ease-in-out infinite;
}
.scn-journey-to-new-providence .horizon-line {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 2px;
  background: linear-gradient(90deg, #2a4a5a 0%, #4a6a7a 50%, #2a4a5a 100%);
  box-shadow: 0 1px 4px rgba(0,0,0,0.5);
  animation: jnp-horizon 12s ease-in-out infinite alternate;
}
.scn-journey-to-new-providence .waves {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 12%;
  background: repeating-linear-gradient(90deg, transparent 0px, transparent 20px, #3a6a8a 20px, #3a6a8a 22px, transparent 22px, transparent 40px);
  opacity: 0.4;
  animation: jnp-waves 4s ease-in-out infinite alternate;
}
@keyframes jnp-sky { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes jnp-sun { 0% { transform: scale(0.9); } 50% { transform: scale(1.1); } 100% { transform: scale(0.95); } }
@keyframes jnp-mast { 0% { transform: translateX(-50%) rotate(-1deg); } 50% { transform: translateX(-50%) rotate(0deg); } 100% { transform: translateX(-50%) rotate(1deg); } }
@keyframes jnp-sail { 0% { transform: translateX(-50%) scaleY(1) rotate(-2deg); } 50% { transform: translateX(-50%) scaleY(1.06) rotate(2deg); } 100% { transform: translateX(-50%) scaleY(0.96) rotate(-1deg); } }
@keyframes jnp-rig { 0% { transform: translateX(-50%) rotate(-30deg) scaleX(1); } 50% { transform: translateX(-50%) rotate(-28deg) scaleX(1.02); } 100% { transform: translateX(-50%) rotate(-32deg) scaleX(0.98); } }
@keyframes jnp-sailor { 0% { transform: translateX(-50%) translateY(0) rotate(0); } 25% { transform: translateX(-50%) translateY(-10px) rotate(-5deg); } 50% { transform: translateX(-50%) translateY(-20px) rotate(0); } 75% { transform: translateX(-50%) translateY(-10px) rotate(5deg); } 100% { transform: translateX(-50%) translateY(0) rotate(0); } }
@keyframes jnp-horizon { 0% { opacity: 0.5 } 50% { opacity: 0.8 } 100% { opacity: 0.6 } }
@keyframes jnp-waves { 0% { transform: translateX(0); } 50% { transform: translateX(-10px); } 100% { transform: translateX(5px); } }

.scn-slaves-drowned {
  background: linear-gradient(180deg, #5a7a8a 0%, #7a9a9a 30%, #c0b080 100%), linear-gradient(90deg, #4a5a6a 0%, transparent 70%);
}
.scn-slaves-drowned .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #b0c0c0 0%, #8a9a9a 100%); animation: sd-sky 12s ease-in-out infinite alternate; }
.scn-slaves-drowned .sun { position:absolute; top:10%; left:60%; width:40px; height:40px; background: radial-gradient(circle, #f0e0a0 0%, #d0c080 60%, transparent 100%); border-radius:50%; animation: sd-sun 8s ease-in-out infinite; }
.scn-slaves-drowned .ocean { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #4a6a7a 0%, #2a4a5a 100%); animation: sd-ocean 6s ease-in-out infinite alternate; }
.scn-slaves-drowned .canoe { position:absolute; bottom:30%; left:35%; width:80px; height:12px; background: linear-gradient(90deg, #6a4a3a 0%, #8a6a5a 50%, #6a4a3a 100%); border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%; transform-origin: bottom center; animation: sd-canoe 4s ease-in-out infinite; }
.scn-slaves-drowned .figure1 { position:absolute; bottom:25%; left:38%; width:10px; height:18px; background: #2a2a3a; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: sd-fig 5s ease-in-out infinite; }
.scn-slaves-drowned .figure2 { position:absolute; bottom:22%; left:48%; width:10px; height:18px; background: #3a3a4a; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: sd-fig 5.5s ease-in-out infinite 0.5s; }
@keyframes sd-sky { 0% { opacity:0.7 } 50% { opacity:0.9 } 100% { opacity:0.7 } }
@keyframes sd-sun { 0% { opacity:0.8; transform: scale(1) } 50% { opacity:1; transform: scale(1.1) } 100% { opacity:0.8; transform: scale(0.95) } }
@keyframes sd-ocean { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(2px) } }
@keyframes sd-canoe { 0% { transform: rotate(-2deg) } 50% { transform: rotate(3deg) translateY(-2px) } 100% { transform: rotate(-1deg) } }
@keyframes sd-fig { 0% { transform: translateX(0) translateY(0) } 25% { transform: translateX(3px) translateY(-2px) } 50% { transform: translateX(-2px) translateY(0) } 75% { transform: translateX(4px) translateY(-3px) } 100% { transform: translateX(0) translateY(0) } }

.scn-kingston-wages-denied {
  background: linear-gradient(180deg, #b0c8d0 0%, #e0d8c0 30%, #c0a880 100%), radial-gradient(ellipse at 70% 30%, #f0e0a0 0%, transparent 60%);
}
.scn-kingston-wages-denied .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #c0d0d0 0%, #e0d0b0 100%); animation: kw-sky 7s ease-in-out infinite alternate; }
.scn-kingston-wages-denied .water { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #3a5a6a 0%, #2a4a5a 100%); animation: kw-water 4s ease-in-out infinite; }
.scn-kingston-wages-denied .dock { position:absolute; bottom:25%; left:0; width:100%; height:10%; background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%); border-radius: 0 0 10% 10%; }
.scn-kingston-wages-denied .captain { position:absolute; bottom:30%; left:60%; width:30px; height:70px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%; transform-origin: bottom; animation: kw-captain 3s ease-in-out infinite; }
.scn-kingston-wages-denied .captain::before { content:''; position:absolute; top:0; left:50%; transform:translateX(-50%); width:20px; height:20px; background:#2a2a3a; border-radius:50%; }
.scn-kingston-wages-denied .sailor { position:absolute; bottom:30%; left:45%; width:24px; height:60px; background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%); border-radius: 20% 20% 10% 10% / 50% 50% 20% 20%; animation: kw-sailor 4s ease-in-out infinite; }
.scn-kingston-wages-denied .sailor::before { content:''; position:absolute; top:0; left:50%; transform:translateX(-50%); width:16px; height:16px; background:#3a3a4a; border-radius:50%; }
.scn-kingston-wages-denied .coin { position:absolute; bottom:30%; left:52%; width:8px; height:4px; background: radial-gradient(circle, #d0a040 0%, #a08030 100%); border-radius: 50%; box-shadow: 0 0 6px 2px rgba(200,160,50,0.6); animation: kw-coin 2s ease-in-out infinite; }
@keyframes kw-sky { 0% { opacity:0.9; transform: scale(1) } 50% { opacity:1; transform: scale(1.02) } 100% { opacity:0.85; transform: scale(1) } }
@keyframes kw-water { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(1px) } }
@keyframes kw-captain { 0% { transform: rotate(0) } 25% { transform: rotate(2deg) translateY(-1px) } 50% { transform: rotate(-1deg) } 75% { transform: rotate(1deg) } 100% { transform: rotate(0) } }
@keyframes kw-sailor { 0% { transform: translateX(0) translateY(0) } 25% { transform: translateX(5px) translateY(-1px) } 50% { transform: translateX(-2px) translateY(0) } 75% { transform: translateX(3px) translateY(-2px) } 100% { transform: translateX(0) translateY(0) } }
@keyframes kw-coin { 0% { opacity:0.7; transform: translateY(0) scale(1) } 50% { opacity:1; transform: translateY(-8px) scale(1.5) } 100% { opacity:0.7; transform: translateY(0) scale(1) } }

.scn-magistrates-refuse {
  background: linear-gradient(270deg, #6a5a4a 0%, #8a7a6a 20%, #a09080 40%, #8a7a6a 60%, #6a5a4a 100%), radial-gradient(ellipse at 50% 30%, #c0b0a0 0%, transparent 70%);
}
.scn-magistrates-refuse .wall { position:absolute; inset:0; background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%); opacity:0.8; }
.scn-magistrates-refuse .columns { position:absolute; top:0; left:0; right:0; height:100%; display:flex; justify-content:space-around; }
.scn-magistrates-refuse .columns::before,
.scn-magistrates-refuse .columns::after { content:''; width:10px; height:100%; background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); box-shadow: 0 0 8px rgba(0,0,0,0.3); }
.scn-magistrates-refuse .columns::before { position:absolute; left:10%; }
.scn-magistrates-refuse .columns::after { position:absolute; right:10%; }
.scn-magistrates-refuse .bench { position:absolute; bottom:25%; left:10%; right:10%; height:15%; background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); border-radius: 4% 4% 0 0; box-shadow: inset 0 4px 6px rgba(0,0,0,0.5); }
.scn-magistrates-refuse .magistrate1 { position:absolute; bottom:35%; left:20%; width:20px; height:40px; background: #3a3a4a; border-radius: 30% 30% 20% 20% / 60% 60% 20% 20%; animation: mr-magistrate 6s ease-in-out infinite; }
.scn-magistrates-refuse .magistrate2 { position:absolute; bottom:35%; left:45%; width:20px; height:40px; background: #4a4a5a; border-radius: 30% 30% 20% 20% / 60% 60% 20% 20%; animation: mr-magistrate 6s ease-in-out infinite 1s; }
.scn-magistrates-refuse .magistrate3 { position:absolute; bottom:35%; right:20%; width:20px; height:40px; background: #2a2a3a; border-radius: 30% 30% 20% 20% / 60% 60% 20% 20%; animation: mr-magistrate 6s ease-in-out infinite 2s; }
.scn-magistrates-refuse .paper { position:absolute; bottom:30%; left:50%; width:12px; height:16px; background: #d0c0a0; border-radius: 2px; transform:translateX(-50%); box-shadow: 0 2px 4px rgba(0,0,0,0.3); animation: mr-paper 3s ease-in-out infinite; }
@keyframes mr-magistrate { 0% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-2px) rotate(1deg) } 50% { transform: translateY(0) rotate(0) } 75% { transform: translateY(-1px) rotate(-1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes mr-paper { 0% { transform: translateX(-50%) translateY(0) scale(1) } 50% { transform: translateX(-50%) translateY(-3px) scale(0.9) } 100% { transform: translateX(-50%) translateY(0) scale(1) } }

.scn-douglas-protection {
  background: linear-gradient(180deg, #b0c0d0 0%, #e0d8c0 40%, #c0a880 100%), radial-gradient(ellipse at 60% 20%, #f0e0a0 0%, transparent 60%);
}
.scn-douglas-protection .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #c0d0e0 0%, #e0d8c0 100%); animation: dp-sky 10s ease-in-out infinite alternate; }
.scn-douglas-protection .sun { position:absolute; top:10%; right:30%; width:50px; height:50px; background: radial-gradient(circle, #f0e0a0 0%, #e0c080 50%, transparent 100%); border-radius:50%; animation: dp-sun 5s ease-in-out infinite; }
.scn-douglas-protection .ship-hull { position:absolute; bottom:25%; left:20%; width:160px; height:60px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; box-shadow: 0 6px 12px rgba(0,0,0,0.5); animation: dp-ship 4s ease-in-out infinite; }
.scn-douglas-protection .mast { position:absolute; bottom:30%; left:35%; width:6px; height:120px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); transform-origin: bottom center; animation: dp-mast 3s ease-in-out infinite; }
.scn-douglas-protection .captain { position:absolute; bottom:45%; left:25%; width:20px; height:50px; background: #2a2a3a; border-radius: 30% 30% 20% 20% / 60% 60% 20% 20%; animation: dp-captain 2s ease-in-out infinite; }
.scn-douglas-protection .captain::before { content:''; position:absolute; top:-10px; left:50%; transform:translateX(-50%); width:18px; height:18px; background:#2a2a3a; border-radius:50%; }
.scn-douglas-protection .irving { position:absolute; bottom:45%; left:38%; width:18px; height:50px; background: #3a3a4a; border-radius: 30% 30% 20% 20% / 60% 60% 20% 20%; animation: dp-irving 3s ease-in-out infinite; }
.scn-douglas-protection .irving::before { content:''; position:absolute; top:-10px; left:50%; transform:translateX(-50%); width:16px; height:16px; background:#3a3a4a; border-radius:50%; }
@keyframes dp-sky { 0% { opacity:0.85; transform: scale(1) } 50% { opacity:1; transform: scale(1.03) } 100% { opacity:0.9; transform: scale(1) } }
@keyframes dp-sun { 0% { transform: scale(1) rotate(0deg); opacity:0.8 } 50% { transform: scale(1.1) rotate(5deg); opacity:1 } 100% { transform: scale(0.95) rotate(0deg); opacity:0.8 } }
@keyframes dp-ship { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-3px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes dp-mast { 0% { transform: rotate(0) } 25% { transform: rotate(1deg) } 50% { transform: rotate(-1deg) } 75% { transform: rotate(0.5deg) } 100% { transform: rotate(0) } }
@keyframes dp-captain { 0% { transform: translateY(0) } 25% { transform: translateY(-2px) } 50% { transform: translateY(0) } 75% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes dp-irving { 0% { transform: translateX(0) translateY(0) } 25% { transform: translateX(3px) translateY(-1px) } 50% { transform: translateX(-2px) translateY(0) } 75% { transform: translateX(2px) translateY(-1px) } 100% { transform: translateX(0) translateY(0) } }

/* reflection-on-salvation */
.scn-reflection-on-salvation {
  background: linear-gradient(180deg, #4a3b3a 0%, #3a2d2c 50%, #2a1f1e 100%),
              radial-gradient(ellipse at 50% 30%, #6b4f3e 0%, transparent 80%);
}
.scn-reflection-on-salvation .room-bg {
  position: absolute; inset: 0; background: linear-gradient(135deg, #3a2d2c 0%, #2a1f1e 80%); animation: rs-bg 20s ease-in-out infinite alternate;
}
.scn-reflection-on-salvation .window {
  position: absolute; top: 10%; left: 15%; width: 30%; height: 40%; background: radial-gradient(ellipse at 50% 50%, #d4b88a 0%, #b09060 70%); border-radius: 4px; box-shadow: inset 0 0 30px rgba(255,200,130,.4); animation: rs-window 6s ease-in-out infinite alternate;
}
.scn-reflection-on-salvation .desk {
  position: absolute; bottom: 8%; left: 10%; width: 60%; height: 12%; background: linear-gradient(180deg, #5e4635 0%, #3d2b1f 100%); border-radius: 40% 40% 0 0 / 100% 100% 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,.6); animation: rs-desk 12s ease infinite;
}
.scn-reflection-on-salvation .candle {
  position: absolute; bottom: 16%; left: 45%; width: 4%; height: 20%; background: linear-gradient(180deg, #f0d0a0 0%, #c89a60 50%, #8a6020 100%); border-radius: 10% 10% 50% 50%; box-shadow: 0 0 20px 6px #e0b060; animation: rs-candle 3s ease-in-out infinite alternate;
}
.scn-reflection-on-salvation .figure {
  position: absolute; bottom: 6%; left: 35%; width: 14%; height: 40%; background: linear-gradient(180deg, #1f1a18 0%, #0e0c0b 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rs-figure 8s ease-in-out infinite;
}
.scn-reflection-on-salvation .book {
  position: absolute; bottom: 10%; left: 22%; width: 10%; height: 6%; background: linear-gradient(135deg, #4a2e1a 0%, #2d1b0e 100%); border-radius: 4px 8px 4px 8px; transform: rotate(-5deg); animation: rs-book 6s ease-in-out infinite alternate;
}
.scn-reflection-on-salvation .shadow {
  position: absolute; bottom: 0; left: 0; width: 100%; height: 50%; background: linear-gradient(180deg, transparent 0%, #1a1412 100%); filter: blur(8px); animation: rs-shadow 10s ease-in-out infinite alternate;
}
@keyframes rs-bg { 0% { opacity: .9; } 50% { opacity: 1; } 100% { opacity: .85; } }
@keyframes rs-window { 0% { opacity: .6; transform: scaleX(1); } 50% { opacity: 1; transform: scaleX(1.03); } 100% { opacity: .7; transform: scaleX(.98); } }
@keyframes rs-desk { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes rs-candle { 0% { transform: scaleY(1) translateY(0); box-shadow: 0 0 20px 6px #e0b060; } 50% { transform: scaleY(1.08) translateY(-2px); box-shadow: 0 0 30px 10px #f0c080; } 100% { transform: scaleY(.95) translateY(1px); box-shadow: 0 0 22px 7px #d0a050; } }
@keyframes rs-figure { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(2%) rotate(-3deg); } 50% { transform: translateX(0) rotate(0); } 75% { transform: translateX(-1%) rotate(2deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes rs-book { 0% { transform: rotate(-5deg); } 50% { transform: rotate(-8deg) translateY(-1px); } 100% { transform: rotate(-4deg); } }
@keyframes rs-shadow { 0% { opacity: .7; } 50% { opacity: .9; } 100% { opacity: .6; } }

/* seeking-religion */
.scn-seeking-religion {
  background: linear-gradient(180deg, #5a4a3a 0%, #4a3a2a 40%, #3a2a1a 100%),
              radial-gradient(ellipse at 50% 20%, #c8a870 0%, transparent 70%);
}
.scn-seeking-religion .room {
  position: absolute; inset: 0; background: linear-gradient(135deg, #4a3a2a 0%, #3a2a1a 80%); animation: sr-room 25s ease-in-out infinite alternate;
}
.scn-seeking-religion .window-light {
  position: absolute; top: 8%; left: 20%; width: 35%; height: 45%; background: radial-gradient(ellipse at 50% 50%, #f0dba0 0%, #d4b080 60%, transparent 100%); filter: blur(4px); animation: sr-light 5s ease-in-out infinite alternate;
}
.scn-seeking-religion .cross-light {
  position: absolute; top: 15%; left: 48%; width: 2%; height: 30%; background: linear-gradient(180deg, #f0e0c0 0%, transparent 100%); transform: rotate(0); animation: sr-cross 4s ease-in-out infinite alternate;
}
.scn-seeking-religion .figure-kneeling {
  position: absolute; bottom: 5%; left: 50%; width: 16%; height: 35%; background: linear-gradient(180deg, #1a1612 0%, #0e0a08 100%); border-radius: 50% 50% 10% 10% / 60% 60% 20% 20%; transform-origin: bottom center; animation: sr-kneel 9s ease-in-out infinite;
}
.scn-seeking-religion .prayer-book {
  position: absolute; bottom: 8%; left: 44%; width: 10%; height: 5%; background: linear-gradient(135deg, #3d2b1a 0%, #2a1a0e 100%); border-radius: 2px 4px 4px 2px; transform: rotate(10deg); animation: sr-book 7s ease-in-out infinite alternate;
}
.scn-seeking-religion .dust-motes {
  position: absolute; top: 20%; left: 0; width: 100%; height: 100%; background: radial-gradient(circle at 30% 40%, rgba(255,230,180,.15) 0%, transparent 50%), radial-gradient(circle at 70% 60%, rgba(255,230,180,.1) 0%, transparent 40%); filter: blur(2px); animation: sr-dust 30s linear infinite;
}
.scn-seeking-religion .intense-shadow {
  position: absolute; bottom: 0; left: 0; width: 100%; height: 60%; background: linear-gradient(180deg, transparent 0%, #221a12 100%); animation: sr-shadow 12s ease-in-out infinite alternate;
}
@keyframes sr-room { 0% { opacity: .85; } 50% { opacity: 1; } 100% { opacity: .8; } }
@keyframes sr-light { 0% { opacity: .5; transform: scale(1); } 50% { opacity: 1; transform: scale(1.05); } 100% { opacity: .6; transform: scale(.98); } }
@keyframes sr-cross { 0% { opacity: .3; transform: rotate(-1deg); } 50% { opacity: 1; transform: rotate(2deg); } 100% { opacity: .4; transform: rotate(0); } }
@keyframes sr-kneel { 0% { transform: translateY(0) rotate(0); } 25% { transform: translateY(-3px) rotate(2deg); } 50% { transform: translateY(0) rotate(0); } 75% { transform: translateY(-1px) rotate(-3deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes sr-book { 0% { transform: rotate(10deg) translateY(0); } 50% { transform: rotate(14deg) translateY(-1px); } 100% { transform: rotate(8deg) translateY(0); } }
@keyframes sr-dust { 0% { transform: translateY(0); } 50% { transform: translateY(-10px); } 100% { transform: translateY(0); } }
@keyframes sr-shadow { 0% { opacity: .6; } 50% { opacity: .9; } 100% { opacity: .5; } }

/* deciding-for-turkey */
.scn-deciding-for-turkey {
  background: linear-gradient(180deg, #87ceeb 0%, #6bb5d4 30%, #3a7ca5 100%),
              radial-gradient(ellipse at 50% 0%, #f8d070 0%, transparent 60%);
}
.scn-deciding-for-turkey .sea-sky {
  position: absolute; inset: 0; background: linear-gradient(180deg, #b0d8f0 0%, #80b8d8 40%, #5a90b0 100%); animation: dt-sky 30s ease-in-out infinite alternate;
}
.scn-deciding-for-turkey .sun {
  position: absolute; top: 5%; left: 60%; width: 10%; height: 10%; background: radial-gradient(circle, #ffe680 0%, #f0c040 60%, transparent 100%); filter: blur(6px); animation: dt-sun 45s linear infinite;
}
.scn-deciding-for-turkey .ship {
  position: absolute; bottom: 20%; left: 30%; width: 30%; height: 20%; background: linear-gradient(180deg, #5a3a2a 0%, #3a2212 100%); clip-path: polygon(10% 100%, 90% 100%, 85% 20%, 15% 20%); animation: dt-ship 8s ease-in-out infinite;
}
.scn-deciding-for-turkey .sail-fore {
  position: absolute; bottom: 30%; left: 35%; width: 12%; height: 25%; background: linear-gradient(135deg, #f0e6d0 0%, #d4c4a0 100%); clip-path: polygon(50% 0%, 100% 100%, 0% 100%); animation: dt-sail 6s ease-in-out infinite alternate;
}
.scn-deciding-for-turkey .sail-aft {
  position: absolute; bottom: 30%; left: 55%; width: 14%; height: 30%; background: linear-gradient(135deg, #f0e6d0 0%, #d4c4a0 100%); clip-path: polygon(50% 0%, 100% 100%, 0% 100%); animation: dt-sail 8s ease-in-out infinite alternate-reverse;
}
.scn-deciding-for-turkey .waves {
  position: absolute; bottom: 0; left: 0; width: 100%; height: 25%; background: linear-gradient(180deg, #4a8bac 0%, #2a6a8a 100%); animation: dt-wave 4s ease-in-out infinite alternate;
}
.scn-deciding-for-turkey .harbor-bg {
  position: absolute; bottom: 18%; left: 0; width: 100%; height: 10%; background: linear-gradient(180deg, #6a8a6a 0%, #4a6a4a 100%); border-radius: 30% 70% 0 0 / 100% 100% 0 0; filter: blur(2px); animation: dt-harbor 20s ease-in-out infinite alternate;
}
.scn-deciding-for-turkey .seagull {
  position: absolute; top: 10%; left: 20%; width: 4%; height: 3%; background: radial-gradient(circle, #f0e8e0 20%, transparent 70%); border-radius: 50%; filter: blur(1px); animation: dt-gull 18s ease-in-out infinite;
}
@keyframes dt-sky { 0% { opacity: .8; } 50% { opacity: 1; } 100% { opacity: .9; } }
@keyframes dt-sun { 0% { transform: translateX(0) scale(1); } 50% { transform: translateX(30px) scale(1.05); } 100% { transform: translateX(-20px) scale(.95); } }
@keyframes dt-ship { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(-5px) rotate(2deg); } 100% { transform: translateX(5px) rotate(-1deg); } }
@keyframes dt-sail { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.1) translateY(-2px); } 100% { transform: scaleX(.95); } }
@keyframes dt-wave { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes dt-harbor { 0% { opacity: .7; } 50% { opacity: 1; transform: scaleY(1.02); } 100% { opacity: .8; transform: scaleY(.98); } }
@keyframes dt-gull { 0% { transform: translate(0,0); } 25% { transform: translate(20px, -10px); } 50% { transform: translate(40px, -5px); } 75% { transform: translate(60px, -15px); } 100% { transform: translate(80px, 0); } }

/* kidnapping-of-annis */
.scn-kidnapping-of-annis {
  background: linear-gradient(180deg, #b0c8d8 0%, #8098a8 30%, #506878 100%),
              radial-gradient(ellipse at 40% 60%, #d0b880 0%, transparent 70%);
}
.scn-kidnapping-of-annis .deck {
  position: absolute; bottom: 0; left: 0; width: 100%; height: 40%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 10% 10% 0 0 / 20% 20% 0 0; box-shadow: inset 0 20px 40px rgba(0,0,0,.5); animation: ka-deck 15s ease-in-out infinite alternate;
}
.scn-kidnapping-of-annis .sail-shadow {
  position: absolute; top: 5%; left: 30%; width: 20%; height: 50%; background: linear-gradient(135deg, #4a5a6a 0%, #2a3a4a 100%); clip-path: polygon(50% 0%, 100% 100%, 0% 100%); filter: blur(4px); animation: ka-sail 8s ease-in-out infinite alternate;
}
.scn-kidnapping-of-annis .figure-male {
  position: absolute; bottom: 20%; left: 40%; width: 15%; height: 30%; background: linear-gradient(180deg, #2a2218 0%, #1a120a 100%); border-radius: 50% 50% 20% 20% / 60% 60% 30% 30%; transform-origin: bottom center; animation: ka-figure 5s ease-in-out infinite;
}
.scn-kidnapping-of-annis .figure-annis {
  position: absolute; bottom: 15%; left: 25%; width: 12%; height: 25%; background: linear-gradient(180deg, #3a2a2a 0%, #1a1212 100%); border-radius: 50% 50% 10% 10% / 60% 60% 20% 20%; transform-origin: bottom center; animation: ka-figure2 7s ease-in-out infinite;
}
.scn-kidnapping-of-annis .rope {
  position: absolute; bottom: 22%; left: 30%; width: 8%; height: 2%; background: #5a4a3a; border-radius: 2px; transform: rotate(-20deg); animation: ka-rope 6s ease-in-out infinite alternate;
}
.scn-kidnapping-of-annis .ship-rail {
  position: absolute; bottom: 38%; left: 10%; width: 80%; height: 2%; background: linear-gradient(90deg, #5a4a3a 0%, #7a6a5a 50%, #5a4a3a 100%); box-shadow: 0 2px 4px rgba(0,0,0,.3); animation: ka-rail 12s ease-in-out infinite alternate;
}
.scn-kidnapping-of-annis .sea-bg {
  position: absolute; bottom: 0; left: 0; width: 100%; height: 30%; background: linear-gradient(180deg, #4a6a7a 0%, #2a4a5a 100%); animation: ka-sea 4s ease-in-out infinite alternate;
}
@keyframes ka-deck { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(.98); } }
@keyframes ka-sail { 0% { transform: scaleX(1) rotate(0); } 50% { transform: scaleX(1.1) rotate(3deg); } 100% { transform: scaleX(.95) rotate(-2deg); } }
@keyframes ka-figure { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(10px) rotate(-5deg); } 50% { transform: translateX(0) rotate(0); } 75% { transform: translateX(-5px) rotate(4deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes ka-figure2 { 0% { transform: translateX(0) translateY(0); } 25% { transform: translateX(-8px) translateY(-2px); } 50% { transform: translateX(0) translateY(0); } 75% { transform: translateX(6px) translateY(-1px); } 100% { transform: translateX(0) translateY(0); } }
@keyframes ka-rope { 0% { transform: rotate(-20deg) translateY(0); } 50% { transform: rotate(-25deg) translateY(-2px); } 100% { transform: rotate(-18deg) translateY(0); } }
@keyframes ka-rail { 0% { opacity: .8; } 50% { opacity: 1; } 100% { opacity: .9; } }
@keyframes ka-sea { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(0); } }

.scn-joe-diamond-incident {
  background: linear-gradient(180deg, #87CEEB 0%, #FFFACD 40%, #FFD700 80%), radial-gradient(circle at 70% 20%, #FFFFE0 0%, transparent 60%);
}
.scn-joe-diamond-incident .sky { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #B0E0FF 0%, #FFFACD 100%); animation: jdi-sky 12s ease-in-out infinite alternate; }
.scn-joe-diamond-incident .sun { position:absolute; top:10%; right:20%; width:50px; height:50px; background:radial-gradient(circle, #FFE066 0%, #FFD700 40%, transparent 70%); border-radius:50%; filter:blur(3px); animation:jdi-sun 20s ease-in-out infinite; }
.scn-joe-diamond-incident .ground { position:absolute; bottom:0; left:0; right:0; height:45%; background:linear-gradient(180deg, #A08870 0%, #7A6840 100%); box-shadow:inset 0 8px 12px rgba(0,0,0,.3); animation:jdi-ground 15s ease-in-out infinite; }
.scn-joe-diamond-incident .wall { position:absolute; bottom:30%; left:10%; width:120px; height:80px; background:linear-gradient(180deg, #C0A080 0%, #8B6B40 100%); border-radius:4%; box-shadow:4px 4px 10px rgba(0,0,0,.5); animation:jdi-wall 8s ease-in-out infinite; }
.scn-joe-diamond-incident .figure1 { position:absolute; bottom:28%; left:38%; width:20px; height:50px; background:linear-gradient(180deg, #5E3A1E 0%, #3A2010 100%); border-radius:50% 50% 40% 40%/60% 60% 40% 40%; transform-origin:bottom; animation:jdi-fig1 4s ease-in-out infinite; }
.scn-joe-diamond-incident .figure2 { position:absolute; bottom:28%; left:55%; width:18px; height:48px; background:linear-gradient(180deg, #4A2E1A 0%, #2A180A 100%); border-radius:50% 50% 40% 40%/60% 60% 40% 40%; transform-origin:bottom; animation:jdi-fig2 5s ease-in-out infinite; }
.scn-joe-diamond-incident .whip { position:absolute; bottom:45%; left:42%; width:40px; height:4px; background:linear-gradient(90deg, #8B4513, #5C2E0A); border-radius:50%; transform-origin:left center; animation:jdi-whip 0.8s ease-in-out infinite; }
.scn-joe-diamond-incident .shadow { position:absolute; bottom:24%; left:35%; width:50px; height:6px; background:rgba(0,0,0,0.3); border-radius:50%; filter:blur(4px); animation:jdi-shadow 4s ease-in-out infinite; }
@keyframes jdi-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes jdi-sun { 0% { transform:scale(1) } 50% { transform:scale(1.1) translateY(-5px) } 100% { transform:scale(1) } }
@keyframes jdi-ground { 0% { transform:translateY(0) } 50% { transform:translateY(-2px) } 100% { transform:translateY(0) } }
@keyframes jdi-wall { 0% { transform:translate(0,0) } 50% { transform:translate(2px,-2px) } 100% { transform:translate(0,0) } }
@keyframes jdi-fig1 { 0% { transform:rotate(-3deg) } 50% { transform:rotate(5deg) translateX(3px) } 100% { transform:rotate(-3deg) } }
@keyframes jdi-fig2 { 0% { transform:translateX(0) rotate(0) } 25% { transform:translateX(-6px) rotate(-2deg) } 50% { transform:translateX(-12px) rotate(-4deg) } 75% { transform:translateX(-6px) rotate(-2deg) } 100% { transform:translateX(0) rotate(0) } }
@keyframes jdi-whip { 0% { transform:rotate(0deg) scaleX(1) } 25% { transform:rotate(-30deg) scaleX(1.2) } 50% { transform:rotate(10deg) scaleX(0.8) } 75% { transform:rotate(-20deg) scaleX(1.1) } 100% { transform:rotate(0deg) scaleX(1) } }
@keyframes jdi-shadow { 0% { opacity:.3; transform:translateX(0) } 50% { opacity:.5; transform:translateX(8px) } 100% { opacity:.3; transform:translateX(0) } }

.scn-seek-vessel-england {
  background: linear-gradient(180deg, #87CEEB 0%, #B0E0FF 40%, #E0F0FF 80%), radial-gradient(ellipse at 30% 10%, #FFFFE0 0%, transparent 50%);
}
.scn-seek-vessel-england .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #B0E0FF 0%, #D6F0FF 100%); animation:sve-sky 20s ease-in-out infinite alternate; }
.scn-seek-vessel-england .sun { position:absolute; top:8%; left:25%; width:60px; height:60px; background:radial-gradient(circle, #FFE680 0%, #FFD700 30%, transparent 60%); border-radius:50%; filter:blur(5px); animation:sve-sun 30s ease-in-out infinite; }
.scn-seek-vessel-england .sea { position:absolute; bottom:0; left:0; right:0; height:50%; background:linear-gradient(180deg, #2D7AB5 0%, #1A5A8A 100%); box-shadow:inset 0 10px 20px rgba(0,0,0,.2); animation:sve-sea 15s ease-in-out infinite; }
.scn-seek-vessel-england .ship { position:absolute; bottom:35%; left:40%; width:100px; height:40px; background:linear-gradient(180deg, #5C3A1A 0%, #3A2010 100%); border-radius:10% 10% 20% 20% / 30% 30% 50% 50%; animation:sve-ship 12s ease-in-out infinite; }
.scn-seek-vessel-england .sail1 { position:absolute; bottom:45%; left:45%; width:24px; height:30px; background:linear-gradient(180deg, #F0E8D0 0%, #D0C0A0 100%); border-radius:30% 30% 40% 40% / 70% 70% 40% 40%; box-shadow:2px 0 6px rgba(0,0,0,.2); animation:sve-sail1 8s ease-in-out infinite alternate; }
.scn-seek-vessel-england .sail2 { position:absolute; bottom:45%; left:52%; width:20px; height:24px; background:linear-gradient(180deg, #F0E8D0 0%, #D0C0A0 100%); border-radius:30% 30% 40% 40% / 60% 60% 40% 40%; animation:sve-sail2 8s ease-in-out infinite alternate; }
.scn-seek-vessel-england .wave1 { position:absolute; bottom:10%; left:0; right:0; height:20px; background:linear-gradient(180deg, rgba(255,255,255,.2) 0%, transparent 100%); border-radius:50%; filter:blur(3px); animation:sve-wave1 5s ease-in-out infinite; }
.scn-seek-vessel-england .wave2 { position:absolute; bottom:20%; left:0; right:0; height:15px; background:linear-gradient(180deg, rgba(255,255,255,.15) 0%, transparent 100%); border-radius:50%; filter:blur(2px); animation:sve-wave2 7s ease-in-out infinite reverse; }
.scn-seek-vessel-england .bird { position:absolute; top:20%; right:20%; width:12px; height:8px; background:rgba(0,0,0,0.2); border-radius:50% 50% 0 0; transform:rotate(-20deg); animation:sve-bird 14s linear infinite; }
@keyframes sve-sky { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes sve-sun { 0% { transform:scale(1) } 50% { transform:scale(1.05) translateY(-3px) } 100% { transform:scale(1) } }
@keyframes sve-sea { 0% { transform:translateY(0) } 50% { transform:translateY(-3px) } 100% { transform:translateY(0) } }
@keyframes sve-ship { 0% { transform:translate(-50%,0) rotate(-1deg) } 50% { transform:translate(-50%,-2px) rotate(1deg) } 100% { transform:translate(-50%,0) rotate(-1deg) } }
@keyframes sve-sail1 { 0% { transform:rotate(-5deg) } 50% { transform:rotate(0deg) } 100% { transform:rotate(5deg) } }
@keyframes sve-sail2 { 0% { transform:rotate(5deg) } 50% { transform:rotate(0deg) } 100% { transform:rotate(-5deg) } }
@keyframes sve-wave1 { 0% { transform:translateY(0) scaleX(1) } 50% { transform:translateY(-4px) scaleX(1.1) } 100% { transform:translateY(0) scaleX(1) } }
@keyframes sve-wave2 { 0% { transform:translateY(0) scaleX(1) } 50% { transform:translateY(3px) scaleX(0.9) } 100% { transform:translateY(0) scaleX(1) } }
@keyframes sve-bird { 0% { transform:translateX(0) rotate(-20deg) } 100% { transform:translateX(-120px) rotate(-20deg) } }

.scn-irving-death {
  background: linear-gradient(180deg, #1A1A3A 0%, #2E2A4A 30%, #4A4260 70%, #0A0A1A 100%), radial-gradient(ellipse at 50% 50%, #4A4260 0%, transparent 70%);
}
.scn-irving-death .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #2E2A4A 0%, #1A1A3A 100%); animation:id-sky 10s ease-in-out infinite alternate; }
.scn-irving-death .stormcloud { position:absolute; top:5%; left:-10%; width:120%; height:40%; background:linear-gradient(180deg, #3A364A 0%, #2A263A 40%, #1A1A2A 100%); border-radius:0 0 50% 50%; filter:blur(8px); animation:id-cloud 18s linear infinite; }
.scn-irving-death .sea { position:absolute; bottom:0; left:0; right:0; height:40%; background:linear-gradient(180deg, #1A2A3A 0%, #0A1A2A 100%); box-shadow:inset 0 -10px 20px rgba(0,0,0,.5); animation:id-sea 8s ease-in-out infinite; }
.scn-irving-death .ship { position:absolute; bottom:25%; left:45%; width:80px; height:30px; background:linear-gradient(180deg, #3A2A1A 0%, #1A1008 100%); border-radius:10% 10% 20% 20% / 40% 40% 60% 60%; transform:rotate(-5deg); animation:id-ship 4s ease-in-out infinite; }
.scn-irving-death .wave1 { position:absolute; bottom:10%; left:0; right:0; height:25px; background:linear-gradient(180deg, rgba(255,255,255,.1) 0%, transparent 100%); border-radius:50%; filter:blur(4px); animation:id-wave1 3s ease-in-out infinite; }
.scn-irving-death .wave2 { position:absolute; bottom:20%; left:0; right:0; height:18px; background:linear-gradient(180deg, rgba(255,255,255,.08) 0%, transparent 100%); border-radius:50%; filter:blur(3px); animation:id-wave2 4.5s ease-in-out infinite reverse; }
.scn-irving-death .lightning { position:absolute; top:15%; left:30%; width:4px; height:60px; background:linear-gradient(180deg, #FFFFFF 0%, #B0C4FF 100%); filter:blur(1px); animation:id-lightning 6s ease-in-out infinite; }
.scn-irving-death .figure { position:absolute; bottom:28%; left:48%; width:16px; height:36px; background:linear-gradient(180deg, #2A2A3A 0%, #0A0A1A 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animate:id-figure 7s ease-in-out infinite; }
@keyframes id-sky { 0% { opacity:.6 } 50% { opacity:.8 } 100% { opacity:.5 } }
@keyframes id-cloud { 0% { transform:translateX(0) } 100% { transform:translateX(80px) } }
@keyframes id-sea { 0% { transform:translateY(0) } 50% { transform:translateY(4px) } 100% { transform:translateY(0) } }
@keyframes id-ship { 0% { transform:rotate(-5deg) translateY(0) } 50% { transform:rotate(-3deg) translateY(-3px) } 100% { transform:rotate(-5deg) translateY(0) } }
@keyframes id-wave1 { 0% { transform:translateY(0) scaleX(1) } 50% { transform:translateY(-6px) scaleX(1.2) } 100% { transform:translateY(0) scaleX(1) } }
@keyframes id-wave2 { 0% { transform:translateY(0) scaleX(1) } 50% { transform:translateY(5px) scaleX(0.8) } 100% { transform:translateY(0) scaleX(1) } }
@keyframes id-lightning { 0% { opacity:0; transform:scaleY(0) } 10% { opacity:1; transform:scaleY(1) } 15% { opacity:0; transform:scaleY(0.5) } 20% { opacity:1; transform:scaleY(1) } 100% { opacity:0; transform:scaleY(0) } }
@keyframes id-figure { 0% { transform:translateY(0) } 50% { transform:translateY(-4px) } 100% { transform:translateY(0) } }

.scn-plymouth-arrival {
  background: linear-gradient(180deg, #B0B8C8 0%, #D0D8E0 40%, #E8EFF5 80%), radial-gradient(ellipse at 50% 0%, #E8EFF5 0%, transparent 70%);
}
.scn-plymouth-arrival .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #C8D0DC 0%, #E0E8F0 100%); animation:pa-sky 30s ease-in-out infinite alternate; }
.scn-plymouth-arrival .sea { position:absolute; bottom:0; left:0; right:0; height:50%; background:linear-gradient(180deg, #6B8AA8 0%, #4A6A8A 100%); animation:pa-sea 20s ease-in-out infinite; }
.scn-plymouth-arrival .land { position:absolute; bottom:35%; left:10%; width:180px; height:60px; background:linear-gradient(180deg, #7A8A6A 0%, #5A6A4A 100%); border-radius:20% 20% 0 0; box-shadow:inset 0 6px 12px rgba(0,0,0,.2); animation:pa-land 18s ease-in-out infinite; }
.scn-plymouth-arrival .pier { position:absolute; bottom:38%; left:30%; width:40px; height:8px; background:linear-gradient(90deg, #8A7A5A 0%, #6A5A3A 100%); border-radius:2px; animation:pa-pier 15s ease-in-out infinite; }
.scn-plymouth-arrival .ship { position:absolute; bottom:40%; left:55%; width:70px; height:28px; background:linear-gradient(180deg, #5A4A3A 0%, #3A2A1A 100%); border-radius:10% 10% 20% 20% / 30% 30% 50% 50%; animation:pa-ship 12s ease-in-out infinite; }
.scn-plymouth-arrival .figure { position:absolute; bottom:36%; left:35%; width:14px; height:34px; background:linear-gradient(180deg, #4A3A2A 0%, #2A1A0A 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation:pa-figure 8s ease-in-out infinite; }
.scn-plymouth-arrival .cloud1 { position:absolute; top:12%; left:20%; width:70px; height:16px; background:linear-gradient(180deg, rgba(255,255,255,.5) 0%, rgba(255,255,255,.1) 100%); border-radius:50%; filter:blur(6px); animation:pa-cloud1 40s linear infinite; }
.scn-plymouth-arrival .cloud2 { position:absolute; top:18%; right:15%; width:50px; height:12px; background:linear-gradient(180deg, rgba(255,255,255,.4) 0%, rgba(255,255,255,.08) 100%); border-radius:50%; filter:blur(5px); animation:pa-cloud2 50s linear infinite reverse; }
@keyframes pa-sky { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes pa-sea { 0% { transform:translateY(0) } 50% { transform:translateY(-2px) } 100% { transform:translateY(0) } }
@keyframes pa-land { 0% { transform:translateY(0) } 50% { transform:translateY(-1px) } 100% { transform:translateY(0) } }
@keyframes pa-pier { 0% { transform:scaleX(1) } 50% { transform:scaleX(1.02) } 100% { transform:scaleX(1) } }
@keyframes pa-ship { 0% { transform:translate(-50%,0) rotate(-1deg) } 50% { transform:translate(-50%,-2px) rotate(1deg) } 100% { transform:translate(-50%,0) rotate(-1deg) } }
@keyframes pa-figure { 0% { transform:translateY(0) } 50% { transform:translateY(-3px) } 100% { transform:translateY(0) } }
@keyframes pa-cloud1 { 0% { transform:translateX(-40px) } 100% { transform:translateX(120vw) } }
@keyframes pa-cloud2 { 0% { transform:translateX(0) } 100% { transform:translateX(-100vw) } }

/* ---------- gunpowder-barrel ---------- */
.scn-gunpowder-barrel {
  background:
    linear-gradient(180deg, #0a0500 0%, #1a0f08 40%, #2a1a0f 70%, #1f140c 100%),
    radial-gradient(ellipse at 50% 75%, #3d2210 0%, transparent 70%);
}
.scn-gunpowder-barrel .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #0f0804 0%, #1a0f08 100%);
  animation: gb-sky 15s ease-in-out infinite alternate;
}
.scn-gunpowder-barrel .deck {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: repeating-linear-gradient(90deg, #2a1a0f 0px, #2a1a0f 12px, #1f140c 12px, #1f140c 24px);
  box-shadow: inset 0 6px 20px rgba(0,0,0,.6);
  animation: gb-deck 6s ease-in-out infinite alternate;
}
.scn-gunpowder-barrel .barrel {
  position: absolute; bottom: 20%; left: 50%; width: 70px; height: 80px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3d2415 0%, #2a1a0f 30%, #1f140c 100%);
  border-radius: 10% 10% 8% 8%;
  box-shadow: 0 8px 20px rgba(0,0,0,.7), inset 0 2px 4px rgba(255,153,51,.15);
  animation: gb-barrel 4s ease-in-out infinite;
}
.scn-gunpowder-barrel .stick {
  position: absolute; bottom: 32%; left: 45%; width: 8px; height: 50px;
  transform-origin: bottom center;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2210 100%);
  border-radius: 2px;
  animation: gb-stick 2.5s ease-in-out infinite;
}
.scn-gunpowder-barrel .fire {
  position: absolute; bottom: 55%; left: 44%; width: 16px; height: 16px;
  background: radial-gradient(circle, #ff9933 0%, #ff6600 50%, #cc3300 80%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px #ff6600, 0 0 60px 20px rgba(255,102,0,.4);
  animation: gb-fire .8s ease-in-out infinite alternate;
}
.scn-gunpowder-barrel .shadow {
  position: absolute; bottom: 0; left: 20%; width: 50px; height: 80px;
  background: linear-gradient(180deg, rgba(10,5,0,.8) 0%, transparent 100%);
  border-radius: 40% 40% 0 0;
  animation: gb-shadow 3s ease-in-out infinite alternate;
}
.scn-gunpowder-barrel .sparks {
  position: absolute; top: 30%; left: 35%; width: 6px; height: 6px;
  background: radial-gradient(circle, #ffcc66 0%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 12px 4px #ff9933;
  animation: gb-spark 2s ease-in-out infinite;
}
@keyframes gb-sky { 0% { opacity: .6; } 50% { opacity: .9; } 100% { opacity: .7; } }
@keyframes gb-deck { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes gb-barrel { 0%,100% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(2deg) translateY(-3px); } }
@keyframes gb-stick { 0% { transform: rotate(-5deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-5deg); } }
@keyframes gb-fire { 0% { transform: scale(.8); opacity: .7; } 50% { transform: scale(1.2); opacity: 1; } 100% { transform: scale(.9); opacity: .8; } }
@keyframes gb-shadow { 0% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(5px) scaleX(.95); } 100% { transform: translateX(-2px) scaleX(1); } }
@keyframes gb-spark { 0% { transform: translate(0,0) scale(.5); opacity: 0; } 20% { opacity: 1; } 100% { transform: translate(-30px, -40px) scale(0); opacity: 0; } }

/* ---------- axe-between ---------- */
.scn-axe-between {
  background:
    linear-gradient(180deg, #0d0703 0%, #1a0f08 40%, #2a1a0f 70%, #1f140c 100%),
    radial-gradient(ellipse at 60% 70%, #3d2210 0%, transparent 65%);
}
.scn-axe-between .deck {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: repeating-linear-gradient(90deg, #2a1a0f 0px, #2a1a0f 12px, #1f140c 12px, #1f140c 24px);
  box-shadow: inset 0 6px 20px rgba(0,0,0,.6);
  animation: ab-deck 5s ease-in-out infinite alternate;
}
.scn-axe-between .barrel {
  position: absolute; bottom: 18%; left: 40%; width: 70px; height: 80px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3d2415 0%, #2a1a0f 30%, #1f140c 100%);
  border-radius: 10% 10% 8% 8%;
  box-shadow: 0 8px 20px rgba(0,0,0,.7), inset 0 2px 4px rgba(255,153,51,.15);
  animation: ab-barrel 3s ease-in-out infinite;
}
.scn-axe-between .axe-blade {
  position: absolute; bottom: 40%; left: 48%; width: 50px; height: 50px;
  transform-origin: 30% 80%;
  background: radial-gradient(ellipse at 40% 30%, #6a5a50 0%, #3a2a20 60%, #1a1010 100%);
  border-radius: 40% 50% 30% 50%;
  box-shadow: 0 4px 12px rgba(0,0,0,.8);
  animation: ab-axe 1.2s ease-in-out infinite alternate;
}
.scn-axe-between .axe-handle {
  position: absolute; bottom: 20%; left: 50%; width: 8px; height: 80px;
  transform-origin: bottom center;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2210 100%);
  border-radius: 2px;
  animation: ab-handle 1.2s ease-in-out infinite alternate;
}
.scn-axe-between .hand {
  position: absolute; bottom: 22%; left: 44%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #2a1a10 0%, #1a0f08 100%);
  border-radius: 40% 40% 20% 20%;
  transform: rotate(15deg);
  animation: ab-hand 1.5s ease-in-out infinite;
}
.scn-axe-between .fire {
  position: absolute; bottom: 50%; left: 25%; width: 20px; height: 20px;
  background: radial-gradient(circle, #ff9933 0%, #ff6600 50%, #cc3300 80%);
  border-radius: 50%;
  box-shadow: 0 0 40px 15px #ff6600, 0 0 80px 30px rgba(255,102,0,.3);
  animation: ab-fire 1s ease-in-out infinite alternate;
}
.scn-axe-between .spark {
  position: absolute; bottom: 60%; left: 55%; width: 4px; height: 4px;
  background: radial-gradient(circle, #ffcc66 0%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 8px 2px #ff9933;
  animation: ab-spark 1.5s ease-in-out infinite;
}
@keyframes ab-deck { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes ab-barrel { 0%,100% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(3deg) translateY(-2px); } }
@keyframes ab-axe { 0% { transform: rotate(-5deg) scale(1); } 50% { transform: rotate(15deg) scale(1.05); } 100% { transform: rotate(-5deg) scale(1); } }
@keyframes ab-handle { 0% { transform: rotate(-5deg); } 50% { transform: rotate(15deg); } 100% { transform: rotate(-5deg); } }
@keyframes ab-hand { 0% { transform: rotate(10deg) translateX(0); } 50% { transform: rotate(20deg) translateX(5px); } 100% { transform: rotate(10deg) translateX(0); } }
@keyframes ab-fire { 0% { transform: scale(.9); opacity: .8; } 50% { transform: scale(1.3); opacity: 1; } 100% { transform: scale(1); opacity: .9; } }
@keyframes ab-spark { 0% { transform: translate(0,0) scale(1); opacity: 0; } 30% { opacity: 1; } 100% { transform: translate(-40px, -50px) scale(0); opacity: 0; } }

/* ---------- scripture-buoys-hope ---------- */
.scn-scripture-buoys-hope {
  background:
    linear-gradient(180deg, #0a0500 0%, #1a0f08 30%, #2a1a0f 60%, #1f140c 100%),
    radial-gradient(ellipse at 50% 80%, #3d2a18 0%, transparent 70%);
}
.scn-scripture-buoys-hope .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #0f0804 0%, #1a0f08 100%);
  animation: sbh-sky 20s ease-in-out infinite alternate;
}
.scn-scripture-buoys-hope .water {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #1a1310 0%, #0d0703 100%);
  border-radius: 0 0 20% 20%;
  animation: sbh-water 8s ease-in-out infinite alternate;
}
.scn-scripture-buoys-hope .figure {
  position: absolute; bottom: 25%; left: 38%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #2a1a10 0%, #1a0f08 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: sbh-figure 6s ease-in-out infinite;
}
.scn-scripture-buoys-hope .book {
  position: absolute; bottom: 22%; left: 42%; width: 30px; height: 20px;
  background: linear-gradient(135deg, #3d2a18 0%, #2a1a10 100%);
  border-radius: 4px;
  box-shadow: 0 2px 6px rgba(0,0,0,.5);
  animation: sbh-book 4s ease-in-out infinite;
}
.scn-scripture-buoys-hope .glow {
  position: absolute; bottom: 28%; left: 40%; width: 50px; height: 50px;
  background: radial-gradient(circle, #ffcc66 0%, #ff9933 30%, transparent 70%);
  border-radius: 50%;
  opacity: .6;
  animation: sbh-glow 3s ease-in-out infinite alternate;
}
.scn-scripture-buoys-hope .buoy-1 {
  position: absolute; bottom: 40%; left: 15%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 40% 40% 20% 20%;
  box-shadow: 0 0 10px 2px rgba(255,153,51,.3);
  animation: sbh-buoy1 12s ease-in-out infinite;
}
.scn-scripture-buoys-hope .buoy-2 {
  position: absolute; bottom: 38%; right: 20%; width: 16px; height: 24px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 40% 40% 20% 20%;
  box-shadow: 0 0 8px 1px rgba(255,153,51,.2);
  animation: sbh-buoy2 15s ease-in-out infinite reverse;
}
@keyframes sbh-sky { 0% { opacity: .7; } 50% { opacity: .9; } 100% { opacity: .8; } }
@keyframes sbh-water { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes sbh-figure { 0% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(4px) rotate(2deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes sbh-book { 0%,100% { transform: rotate(0deg) scale(1); } 50% { transform: rotate(3deg) scale(1.02); } }
@keyframes sbh-glow { 0% { opacity: .4; transform: scale(.8); } 50% { opacity: .7; transform: scale(1.1); } 100% { opacity: .5; transform: scale(.9); } }
@keyframes sbh-buoy1 { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-8px) rotate(5deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes sbh-buoy2 { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-6px) rotate(-4deg); } 100% { transform: translateY(0) rotate(0deg); } }

/* ---------- bible-verses ---------- */
.scn-bible-verses {
  background:
    linear-gradient(180deg, #0a0500 0%, #1a0f08 30%, #2a1a0f 60%, #1f140c 100%),
    radial-gradient(ellipse at 50% 60%, #4a2a18 0%, transparent 65%);
}
.scn-bible-verses .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #1a0f08 0%, #0d0703 100%);
  animation: bv-wall 20s ease-in-out infinite alternate;
}
.scn-bible-verses .table {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 40%;
  background: linear-gradient(180deg, #2a1a0f 0%, #1f140c 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.5);
  animation: bv-table 8s ease-in-out infinite alternate;
}
.scn-bible-verses .book {
  position: absolute; bottom: 15%; left: 50%; width: 40px; height: 30px;
  transform: translateX(-50%) perspective(60px) rotateX(10deg);
  background: linear-gradient(135deg, #4a3520 0%, #2a1a10 50%, #1a0f08 100%);
  border-radius: 4px;
  box-shadow: 0 4px 12px rgba(0,0,0,.7);
  animation: bv-book 5s ease-in-out infinite;
}
.scn-bible-verses .hands {
  position: absolute; bottom: 20%; left: 42%; width: 30px; height: 20px;
  background: linear-gradient(180deg, #2a1a10 0%, #1a0f08 100%);
  border-radius: 30% 30% 10% 10%;
  transform: rotate(-10deg);
  animation: bv-hands 4s ease-in-out infinite;
}
.scn-bible-verses .candle {
  position: absolute; bottom: 35%; left: 30%; width: 12px; height: 40px;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2210 100%);
  border-radius: 4px;
  animation: bv-candle 6s ease-in-out infinite;
}
.scn-bible-verses .flame {
  position: absolute; bottom: 48%; left: 31%; width: 10px; height: 14px;
  background: radial-gradient(circle at 50% 100%, #ffcc66 0%, #ff6600 50%, #cc3300 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 20px 8px #ff6600, 0 0 40px 15px rgba(255,102,0,.4);
  animation: bv-flame .9s ease-in-out infinite alternate;
}
.scn-bible-verses .light-ray {
  position: absolute; top: 0; left: 25%; width: 50%; height: 50%;
  background: radial-gradient(ellipse at 50% 0%, rgba(255,204,102,.15) 0%, transparent 70%);
  opacity: .6;
  animation: bv-ray 12s ease-in-out infinite alternate;
}
@keyframes bv-wall { 0% { opacity: .8; } 50% { opacity: 1; } 100% { opacity: .9; } }
@keyframes bv-table { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes bv-book { 0%,100% { transform: translateX(-50%) perspective(60px) rotateX(8deg); } 50% { transform: translateX(-50%) perspective(60px) rotateX(12deg) scale(1.02); } }
@keyframes bv-hands { 0% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-5deg) translateY(-2px); } 100% { transform: rotate(-10deg) translateY(0); } }
@keyframes bv-candle { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes bv-flame { 0% { transform: scale(.8) rotate(-3deg); opacity: .8; } 50% { transform: scale(1.2) rotate(3deg); opacity: 1; } 100% { transform: scale(.9) rotate(0deg); opacity: .9; } }
@keyframes bv-ray { 0% { transform: scaleY(.8); opacity: .4; } 50% { transform: scaleY(1.1); opacity: .7; } 100% { transform: scaleY(.9); opacity: .5; } }

/* harmony-ship-philadelphia – sunlit calm ship at sea with broken foremast */
.scn-harmony-ship-philadelphia {
  background:
    linear-gradient(180deg, #e8f0ff 0%, #c4d8f0 30%, #94b8d8 60%, #7a9ec0 100%),
    radial-gradient(ellipse at 30% 20%, #fff8e8 0%, transparent 60%);
  overflow: hidden;
}
.scn-harmony-ship-philadelphia .sky {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #d0e4ff 0%, #b8d4f0 50%, transparent 100%);
  animation: shp-sky 14s ease-in-out infinite alternate;
}
.scn-harmony-ship-philadelphia .sun {
  position: absolute; top: 12%; left: 28%;
  width: 60px; height: 60px;
  background: radial-gradient(circle, #fff6d0 0%, #fce8a0 40%, rgba(252,232,160,0) 70%);
  border-radius: 50%;
  box-shadow: 0 0 80px 40px rgba(252,232,160,0.5), 0 0 140px 60px rgba(252,232,160,0.2);
  animation: shp-sun 20s ease-in-out infinite alternate;
}
.scn-harmony-ship-philadelphia .clouds-left {
  position: absolute; top: 8%; left: 5%;
  width: 140px; height: 30px;
  background: radial-gradient(ellipse at 40% 50%, rgba(255,255,255,0.6) 0%, rgba(200,220,240,0.2) 70%, transparent 100%);
  filter: blur(5px);
  border-radius: 50%;
  animation: shp-drift-l 40s linear infinite;
}
.scn-harmony-ship-philadelphia .clouds-right {
  position: absolute; top: 16%; right: 8%;
  width: 110px; height: 24px;
  background: radial-gradient(ellipse at 50% 50%, rgba(255,255,255,0.5) 0%, rgba(200,220,240,0.15) 70%, transparent 100%);
  filter: blur(4px);
  border-radius: 50%;
  animation: shp-drift-r 55s linear infinite reverse;
}
.scn-harmony-ship-philadelphia .sea-bg {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #6090b8 0%, #4a78a0 30%, #2c5a7a 70%, #1a3a5a 100%);
  animation: shp-sea-bg 8s ease-in-out infinite alternate;
}
.scn-harmony-ship-philadelphia .sea-fg {
  position: absolute; bottom: 0; left: 0; right: 0; height: 24%;
  background: linear-gradient(180deg, #4a7a9a 0%, #2c6078 50%, #1a4060 100%);
  border-radius: 30% 70% 0 0 / 40% 60% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.3);
  animation: shp-sea-fg 6s ease-in-out infinite alternate;
}
.scn-harmony-ship-philadelphia .hull {
  position: absolute; bottom: 18%; left: 50%; width: 160px; height: 60px;
  transform: translateX(-50%);
  background: linear-gradient(170deg, #6a4a2a 0%, #3a2a1a 50%, #1a100a 100%);
  border-radius: 0 0 30% 40% / 0 0 80% 80%;
  box-shadow: 0 -4px 12px rgba(0,0,0,0.4);
  animation: shp-rock 7s ease-in-out infinite;
}
.scn-harmony-ship-philadelphia .deck {
  position: absolute; bottom: calc(18% + 55px); left: 50%;
  width: 140px; height: 10px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #8a6a42 0%, #6a4a2a 100%);
  border-radius: 4px;
  animation: shp-rock 7s ease-in-out infinite;
}
.scn-harmony-ship-philadelphia .mast-broken {
  position: absolute; bottom: calc(18% + 60px); left: calc(50% - 30px);
  width: 8px; height: 80px;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a3220 100%);
  border-radius: 2px;
  transform-origin: bottom center;
  transform: rotate(-12deg);
  box-shadow: 2px 0 6px rgba(0,0,0,0.3);
  animation: shp-mast 9s ease-in-out infinite;
}
.scn-harmony-ship-philadelphia .sail-rag {
  position: absolute; bottom: calc(18% + 90px); left: calc(50% - 38px);
  width: 40px; height: 50px;
  background: linear-gradient(135deg, #c8b8a0 0%, #a08870 50%, #807060 100%);
  border-radius: 20% 60% 40% 40% / 30% 70% 40% 60%;
  transform-origin: top left;
  transform: rotate(-8deg) scale(0.7);
  opacity: 0.8;
  animation: shp-sail 11s ease-in-out infinite alternate;
}
@keyframes shp-sky {
  0% { opacity: 0.85; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes shp-sun {
  0% { transform: scale(1); opacity: 0.9; }
  50% { transform: scale(1.08); opacity: 1; }
  100% { transform: scale(0.96); opacity: 0.85; }
}
@keyframes shp-drift-l {
  0% { transform: translateX(0); }
  100% { transform: translateX(120vw); }
}
@keyframes shp-drift-r {
  0% { transform: translateX(0); }
  100% { transform: translateX(-100vw); }
}
@keyframes shp-sea-bg {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-3px) scaleY(1.02); }
  100% { transform: translateY(2px) scaleY(0.98); }
}
@keyframes shp-sea-fg {
  0% { transform: translateY(0) skewX(0deg); }
  33% { transform: translateY(-4px) skewX(1deg); }
  66% { transform: translateY(2px) skewX(-1deg); }
  100% { transform: translateY(-1px) skewX(0.5deg); }
}
@keyframes shp-rock {
  0% { transform: translateX(-50%) rotate(-1deg); }
  25% { transform: translateX(-48%) rotate(0deg); }
  50% { transform: translateX(-50%) rotate(1.2deg); }
  75% { transform: translateX(-52%) rotate(0deg); }
  100% { transform: translateX(-50%) rotate(-1deg); }
}
@keyframes shp-mast {
  0% { transform: rotate(-12deg); }
  50% { transform: rotate(-8deg); }
  100% { transform: rotate(-15deg); }
}
@keyframes shp-sail {
  0% { transform: rotate(-8deg) scale(0.7) skewX(0deg); }
  50% { transform: rotate(-5deg) scale(0.75) skewX(3deg); }
  100% { transform: rotate(-12deg) scale(0.65) skewX(-2deg); }
}

/* sierra-leone-plan – warm dim interior, planning with maps, philanthropic plan */
.scn-sierra-leone-plan {
  background:
    linear-gradient(180deg, #3a2a1a 0%, #5a3a2a 30%, #4a3020 60%, #2a1a10 100%),
    radial-gradient(ellipse at 50% 30%, #8a6030 0%, transparent 70%);
  overflow: hidden;
}
.scn-sierra-leone-plan .wall-bg {
  position: absolute; inset: 0 0 18% 0;
  background: linear-gradient(135deg, #6a4a2a 0%, #4a3020 50%, #3a2215 100%);
  animation: slp-wall 16s ease-in-out infinite alternate;
}
.scn-sierra-leone-plan .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 22%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 50% 50% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.6);
}
.scn-sierra-leone-plan .table {
  position: absolute; bottom: 18%; left: 50%;
  width: 180px; height: 16px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #8a6a42 0%, #6a4a2a 100%);
  border-radius: 6px;
  box-shadow: 0 6px 16px rgba(0,0,0,0.5);
  animation: slp-table 10s ease-in-out infinite;
}
.scn-sierra-leone-plan .map {
  position: absolute; bottom: calc(18% + 10px); left: calc(50% - 40px);
  width: 80px; height: 50px;
  background: linear-gradient(135deg, #c8b080 0%, #a08860 50%, #887050 100%);
  border-radius: 4px;
  transform: rotate(-2deg);
  box-shadow: 0 2px 8px rgba(0,0,0,0.4);
  animation: slp-map 14s ease-in-out infinite alternate;
}
.scn-sierra-leone-plan .figure-left {
  position: absolute; bottom: 16%; left: 30%;
  width: 24px; height: 50px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: slp-fig-l 6s ease-in-out infinite;
}
.scn-sierra-leone-plan .figure-right {
  position: absolute; bottom: 16%; right: 30%;
  width: 26px; height: 52px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: slp-fig-r 7s ease-in-out infinite;
}
.scn-sierra-leone-plan .lamp-glow {
  position: absolute; top: 15%; left: 50%;
  width: 100px; height: 100px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #f0c860 0%, #d0a040 40%, rgba(208,160,64,0.15) 70%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 100px 40px rgba(240,200,96,0.3);
  animation: slp-lamp 4s ease-in-out infinite alternate;
}
.scn-sierra-leone-plan .paper-stack {
  position: absolute; bottom: calc(18% + 14px); left: calc(50% + 20px);
  width: 30px; height: 6px;
  background: linear-gradient(180deg, #e8d0b0 0%, #c0a880 100%);
  border-radius: 2px;
  box-shadow: 0 1px 4px rgba(0,0,0,0.3);
  animation: slp-paper 9s ease-in-out infinite alternate;
}
@keyframes slp-wall {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes slp-table {
  0% { transform: translateX(-50%) translateY(0); }
  50% { transform: translateX(-50%) translateY(-1px); }
  100% { transform: translateX(-50%) translateY(1px); }
}
@keyframes slp-map {
  0% { transform: rotate(-2deg) translateY(0); }
  50% { transform: rotate(0deg) translateY(-1px); }
  100% { transform: rotate(-3deg) translateY(1px); }
}
@keyframes slp-fig-l {
  0% { transform: translateX(0) translateY(0) rotate(-2deg); }
  33% { transform: translateX(3px) translateY(-1px) rotate(1deg); }
  66% { transform: translateX(-2px) translateY(0) rotate(-1deg); }
  100% { transform: translateX(2px) translateY(-1px) rotate(2deg); }
}
@keyframes slp-fig-r {
  0% { transform: translateX(0) translateY(0) rotate(2deg); }
  50% { transform: translateX(-3px) translateY(-1px) rotate(-1deg); }
  100% { transform: translateX(2px) translateY(0) rotate(1deg); }
}
@keyframes slp-lamp {
  0% { opacity: 0.7; transform: translateX(-50%) scale(0.95); }
  50% { opacity: 1; transform: translateX(-50%) scale(1.05); }
  100% { opacity: 0.8; transform: translateX(-50%) scale(0.98); }
}
@keyframes slp-paper {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(2deg); }
  100% { transform: translateY(1px) rotate(-1deg); }
}

/* committee-asks – calm dim interior, seated committee asking a figure to go to Africa */
.scn-committee-asks {
  background:
    linear-gradient(180deg, #2a2218 0%, #3a2a1a 35%, #2a1a10 70%, #1a0a08 100%),
    radial-gradient(ellipse at 40% 50%, #4a3a2a 0%, transparent 60%);
  overflow: hidden;
}
.scn-committee-asks .room-bg {
  position: absolute; inset: 0 0 15% 0;
  background: linear-gradient(135deg, #4a3a2a 0%, #3a2a1a 50%, #2a1a10 100%);
  animation: ca-room 20s ease-in-out infinite alternate;
}
.scn-committee-asks .wall-panel {
  position: absolute; top: 10%; left: 10%; right: 10%; bottom: 25%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 40px rgba(0,0,0,0.4);
  opacity: 0.6;
  animation: ca-panel 18s ease-in-out infinite alternate;
}
.scn-committee-asks .desk {
  position: absolute; bottom: 15%; left: 50%;
  width: 200px; height: 14px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #7a5a3a 0%, #5a3a22 100%);
  border-radius: 4px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.5);
  animation: ca-desk 9s ease-in-out infinite;
}
.scn-committee-asks .chair-left {
  position: absolute; bottom: 14%; left: 28%;
  width: 20px; height: 32px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 10% 10%;
  transform-origin: bottom center;
  animation: ca-chair-l 12s ease-in-out infinite;
}
.scn-committee-asks .chair-right {
  position: absolute; bottom: 14%; right: 28%;
  width: 22px; height: 34px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a10 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 10% 10%;
  transform-origin: bottom center;
  animation: ca-chair-r 13s ease-in-out infinite;
}
.scn-committee-asks .figure-standing {
  position: absolute; bottom: 12%; left: 50%;
  width: 22px; height: 56px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ca-stand 5s ease-in-out infinite;
}
.scn-committee-asks .figure-seated {
  position: absolute; bottom: 12%; left: 26%;
  width: 26px; height: 40px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ca-seated-l 6s ease-in-out infinite;
}
.scn-committee-asks .window {
  position: absolute; top: 8%; right: 14%;
  width: 40px; height: 56px;
  background: linear-gradient(180deg, #2a4a6a 0%, #1a2a4a 100%);
  border: 3px solid #6a5a3a;
  border-radius: 2px;
  box-shadow: inset 0 0 20px rgba(0,20,40,0.3), 0 0 10px rgba(0,0,0,0.3);
  animation: ca-window 15s ease-in-out infinite alternate;
}
@keyframes ca-room {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes ca-panel {
  0% { opacity: 0.5; transform: scaleY(1); }
  50% { opacity: 0.65; transform: scaleY(1.02); }
  100% { opacity: 0.55; transform: scaleY(0.98); }
}
@keyframes ca-desk {
  0% { transform: translateX(-50%) translateY(0); }
  50% { transform: translateX(-50%) translateY(-1px); }
  100% { transform: translateX(-50%) translateY(1px); }
}
@keyframes ca-chair-l {
  0% { transform: rotate(0deg) translateY(0); }
  50% { transform: rotate(-1deg) translateY(-2px); }
  100% { transform: rotate(1deg) translateY(0); }
}
@keyframes ca-chair-r {
  0% { transform: rotate(0deg) translateY(0); }
  50% { transform: rotate(1deg) translateY(-2px); }
  100% { transform: rotate(-1deg) translateY(0); }
}
@keyframes ca-stand {
  0% { transform: translateX(-50%) translateY(0) rotate(-1deg); }
  25% { transform: translateX(-48%) translateY(-2px) rotate(0deg); }
  50% { transform: translateX(-50%) translateY(0) rotate(1deg); }
  75% { transform: translateX(-52%) translateY(-1px) rotate(0deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(-1deg); }
}
@keyframes ca-seated-l {
  0% { transform: rotate(0deg) translateY(0); }
  33% { transform: rotate(1deg) translateY(-1px); }
  66% { transform: rotate(-1deg) translateY(0); }
  100% { transform: rotate(0deg) translateY(-1px); }
}
@keyframes ca-window {
  0% { opacity: 0.6; box-shadow: inset 0 0 20px rgba(0,20,40,0.3); }
  50% { opacity: 0.8; box-shadow: inset 0 0 30px rgba(0,20,40,0.5); }
  100% { opacity: 0.7; box-shadow: inset 0 0 15px rgba(0,20,40,0.2); }
}

/* navy-commission – calm dim interior, naval office with commission paperwork */
.scn-navy-commission {
  background:
    linear-gradient(180deg, #1a2218 0%, #2a2a1a 30%, #1a1a10 70%, #0a0a08 100%),
    radial-gradient(ellipse at 60% 40%, #3a4a3a 0%, transparent 60%);
  overflow: hidden;
}
.scn-navy-commission .office-bg {
  position: absolute; inset: 0 0 12% 0;
  background: linear-gradient(135deg, #3a4a3a 0%, #2a3a2a 50%, #1a2a1a 100%);
  animation: nc-office 18s ease-in-out infinite alternate;
}
.scn-navy-commission .shelf {
  position: absolute; top: 10%; left: 8%; right: 8%; height: 8%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a20 100%);
  border-radius: 2px;
  box-shadow: 0 4px 10px rgba(0,0,0,0.4);
  animation: nc-shelf 20s ease-in-out infinite alternate;
}
.scn-navy-commission .desk-large {
  position: absolute; bottom: 12%; left: 50%;
  width: 220px; height: 18px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 4px;
  box-shadow: 0 6px 18px rgba(0,0,0,0.5);
  animation: nc-desk 10s ease-in-out infinite;
}
.scn-navy-commission .ledger {
  position: absolute; bottom: calc(12% + 12px); left: calc(50% - 30px);
  width: 60px; height: 40px;
  background: linear-gradient(135deg, #c8b898 0%, #a09070 50%, #887858 100%);
  border-radius: 2px;
  transform: rotate(-1deg);
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: nc-ledger 12s ease-in-out infinite alternate;
}
.scn-navy-commission .seal {
  position: absolute; bottom: calc(12% + 20px); left: calc(50% + 40px);
  width: 14px; height: 14px;
  background: radial-gradient(circle, #c83030 0%, #8a2020 60%, #5a1010 100%);
  border-radius: 50%;
  box-shadow: 0 0 8px 4px rgba(200,48,48,0.3);
  animation: nc-seal 8s ease-in-out infinite alternate;
}
.scn-navy-commission .figure-clerk {
  position: absolute; bottom: 10%; left: 32%;
  width: 20px; height: 44px;
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: nc-clerk 6s ease-in-out infinite;
}
.scn-navy-commission .figure-officer {
  position: absolute; bottom: 10%; right: 30%;
  width: 24px; height: 50px;
  background: linear-gradient(180deg, #1a2a2a 0%, #0a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: nc-officer 7s ease-in-out infinite;
}
.scn-navy-commission .candle {
  position: absolute; bottom: calc(12% + 12px); left: calc(50% - 8px);
  width: 8px; height: 24px;
  background: linear-gradient(180deg, #e8d0a0 0%, #c0a080 60%, #a08860 100%);
  border-radius: 2px 2px 0 0;
  animation: nc-candle 5s ease-in-out infinite alternate;
}
.scn-navy-commission .candle-glow {
  position: absolute; bottom: calc(12% + 30px); left: calc(50% - 20px);
  width: 40px; height: 40px;
  background: radial-gradient(circle, #f0c860 0%, #d0a040 30%, rgba(208,160,64,0.1) 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 60px 30px rgba(240,200,96,0.2);
  animation: nc-candle-glow 3s ease-in-out infinite alternate;
}
@keyframes nc-office {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes nc-shelf {
  0% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
  100% { transform: translateY(1px); }
}
@keyframes nc-desk {
  0% { transform: translateX(-50%) translateY(0); }
  50% { transform: translateX(-50%) translateY(-1px); }
  100% { transform: translateX(-50%) translateY(1px); }
}
@keyframes nc-ledger {
  0% { transform: rotate(-1deg) translateY(0); }
  33% { transform: rotate(0deg) translateY(-1px); }
  66% { transform: rotate(-2deg) translateY(1px); }
  100% { transform: rotate(-1deg) translateY(0); }
}
@keyframes nc-seal {
  0% { opacity: 0.5; transform: scale(0.95); }
  50% { opacity: 0.9; transform: scale(1.05); }
  100% { opacity: 0.6; transform: scale(0.98); }
}
@keyframes nc-clerk {
  0% { transform: translateX(0) translateY(0) rotate(-1deg); }
  33% { transform: translateX(2px) translateY(-1px) rotate(1deg); }
  66% { transform: translateX(-1px) translateY(0) rotate(-1deg); }
  100% { transform: translateX(1px) translateY(-1px) rotate(0deg); }
}
@keyframes nc-officer {
  0% { transform: translateX(0) translateY(0) rotate(1deg); }
  50% { transform: translateX(-2px) translateY(-1px) rotate(-1deg); }
  100% { transform: translateX(1px) translateY(0) rotate(0deg); }
}
@keyframes nc-candle {
  0% { opacity: 0.7; transform: scaleY(1); }
  50% { opacity: 1; transform: scaleY(1.05); }
  100% { opacity: 0.8; transform: scaleY(0.96); }
}
@keyframes nc-candle-glow {
  0% { opacity: 0.5; transform: scale(0.95); }
  50% { opacity: 0.9; transform: scale(1.08); }
  100% { opacity: 0.6; transform: scale(0.98); }
}

.scn-pacified-by-old-slaves {
  background: linear-gradient(180deg, #0c1a2e 0%, #1b2a44 50%, #2c3e5e 100%);
  position: relative;
  overflow: hidden;
}
.scn-pacified-by-old-slaves .sky-stars {
  position: absolute;
  inset: 0 0 35% 0;
  background: radial-gradient(circle at 20% 15%, #ffffff 1px, transparent 1px),
              radial-gradient(circle at 55% 10%, #ffffff 1.5px, transparent 1.5px),
              radial-gradient(circle at 80% 25%, #ffffff 0.8px, transparent 0.8px),
              radial-gradient(circle at 10% 40%, #ffffff 1.2px, transparent 1.2px),
              radial-gradient(circle at 65% 35%, #ffffff 1px, transparent 1px),
              radial-gradient(circle at 90% 5%, #ffffff 0.6px, transparent 0.6px),
              radial-gradient(circle at 40% 20%, #ffffff 0.9px, transparent 0.9px);
  background-size: 200px 200px, 300px 300px, 150px 150px, 250px 250px, 180px 180px, 120px 120px, 220px 220px;
  animation: paf-stars 40s linear infinite alternate;
}
.scn-pacified-by-old-slaves .moon {
  position: absolute;
  top: 8%;
  right: 20%;
  width: 40px;
  height: 40px;
  background: radial-gradient(circle, #d4e8ff 0%, #b0ccf0 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px rgba(180, 210, 255, 0.3);
  animation: paf-moon 12s ease-in-out infinite alternate;
}
.scn-pacified-by-old-slaves .landmass {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 40%;
  background: linear-gradient(180deg, #1e3a3a 0%, #142828 100%);
  border-radius: 60% 40% 0 0 / 30% 50% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.6);
  animation: paf-land 18s ease-in-out infinite;
}
.scn-pacified-by-old-slaves .figures-group {
  position: absolute;
  bottom: 32%;
  left: 25%;
  width: 50%;
  height: 20%;
  background:
    radial-gradient(ellipse at 20% 80%, #1a2a2a 0%, transparent 40%) no-repeat,
    radial-gradient(ellipse at 40% 85%, #1a2a2a 0%, transparent 35%) no-repeat,
    radial-gradient(ellipse at 60% 78%, #1a2a2a 0%, transparent 38%) no-repeat,
    radial-gradient(ellipse at 80% 82%, #1a2a2a 0%, transparent 42%) no-repeat;
  background-size: 25% 100%, 30% 100%, 20% 100%, 25% 100%;
  background-position: 0% 0%, 25% 0%, 55% 0%, 75% 0%;
  filter: blur(1px);
  animation: paf-figures 8s ease-in-out infinite alternate;
}
.scn-pacified-by-old-slaves .ships {
  position: absolute;
  bottom: 40%;
  left: 10%;
  width: 60px;
  height: 20px;
  background: linear-gradient(90deg, #3a2a1a 0%, #4a3a2a 50%, #3a2a1a 100%);
  border-radius: 0 0 60% 60% / 0 0 100% 100%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: paf-ship 20s linear infinite;
}
.scn-pacified-by-old-slaves .boats {
  left: 70%;
  width: 50px;
  height: 15px;
  animation-duration: 25s;
  animation-delay: -7s;
}
.scn-pacified-by-old-slaves .glow-firefly {
  position: absolute;
  bottom: 45%;
  left: 35%;
  width: 6px;
  height: 6px;
  background: #d0f0c0;
  border-radius: 50%;
  box-shadow: 0 0 20px 8px rgba(200, 240, 180, 0.5);
  animation: paf-firefly 4s ease-in-out infinite alternate;
}
.scn-pacified-by-old-slaves .mist {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 15%;
  background: linear-gradient(0deg, rgba(40,60,80,0.3) 0%, transparent 100%);
  filter: blur(8px);
  animation: paf-mist 15s ease-in-out infinite alternate;
}
@keyframes paf-stars {
  0% { opacity: 0.8; transform: translateY(0); }
  50% { opacity: 1; transform: translateY(-2px); }
  100% { opacity: 0.7; transform: translateY(2px); }
}
@keyframes paf-moon {
  0% { transform: scale(1) translateY(0); box-shadow: 0 0 60px 20px rgba(180,210,255,0.3); }
  50% { transform: scale(1.02) translateY(-3px); box-shadow: 0 0 80px 30px rgba(180,210,255,0.4); }
  100% { transform: scale(0.98) translateY(1px); box-shadow: 0 0 50px 15px rgba(180,210,255,0.25); }
}
@keyframes paf-land {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-2px) scaleY(1.005); }
  100% { transform: translateY(0) scaleY(1); }
}
@keyframes paf-figures {
  0% { transform: translateX(0) scaleY(1); opacity: 0.9; }
  50% { transform: translateX(5px) scaleY(1.01); opacity: 1; }
  100% { transform: translateX(-3px) scaleY(0.98); opacity: 0.85; }
}
@keyframes paf-ship {
  0% { transform: translateX(-10px) rotate(0deg); }
  50% { transform: translateX(110vw) rotate(2deg); }
  100% { transform: translateX(-10px) rotate(0deg); }
}
@keyframes paf-firefly {
  0% { transform: translate(0, 0) scale(1); opacity: 0.6; }
  25% { transform: translate(15px, -10px) scale(1.3); opacity: 1; }
  50% { transform: translate(30px, -5px) scale(0.9); opacity: 0.8; }
  75% { transform: translate(10px, -15px) scale(1.2); opacity: 1; }
  100% { transform: translate(0, 0) scale(1); opacity: 0.6; }
}
@keyframes paf-mist {
  0% { opacity: 0.3; transform: scaleX(1); }
  50% { opacity: 0.5; transform: scaleX(1.02); }
  100% { opacity: 0.2; transform: scaleX(0.98); }
}

.scn-wonder-at-houses {
  background: linear-gradient(180deg, #f5e6c8 0%, #ead5b0 100%), radial-gradient(ellipse at 70% 10%, #fff8e0 0%, transparent 60%);
  position: relative;
  overflow: hidden;
}
.scn-wonder-at-houses .sky-sun {
  position: absolute;
  inset: 0 0 55% 0;
  background: linear-gradient(180deg, #ffdfa0 0%, #f5d080 100%);
  animation: won-sky 10s ease-in-out infinite alternate;
}
.scn-wonder-at-houses .houses-row {
  position: absolute;
  bottom: 25%;
  left: 10%;
  right: 10%;
  height: 40%;
  background:
    /* first house */
    linear-gradient(90deg, #b08868 0%, #c89a78 30%, #b08868 30%, transparent 30.5%) no-repeat,
    linear-gradient(90deg, #a07050 0%, #b08060 30%, #a07050 30%, transparent 30.5%) no-repeat,
    linear-gradient(90deg, #b08868 0%, #c89a78 30%, #b08868 30%, transparent 30.5%) no-repeat;
  background-size: 30% 100%, 30% 100%, 30% 100%;
  background-position: 0% 0%, 35% 0%, 70% 0%;
  border-radius: 2% 2% 0 0;
  box-shadow: inset 0 -5px 15px rgba(0,0,0,0.2), 0 5px 20px rgba(0,0,0,0.3);
  transform: perspective(200px) rotateX(5deg);
  animation: won-houses 8s ease-in-out infinite;
}
.scn-wonder-at-houses .horses-shadow {
  position: absolute;
  bottom: 20%;
  left: 15%;
  width: 40px;
  height: 30px;
  background: #8a7a6a;
  border-radius: 30% 10% 40% 20% / 30% 20% 30% 20%;
  box-shadow: -8px 0 0 #7a6a5a;
  animation: won-horse 3s ease-in-out infinite alternate;
}
.scn-wonder-at-houses .figure-wonder {
  position: absolute;
  bottom: 22%;
  left: 55%;
  width: 20px;
  height: 45px;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: won-figure 2s ease-in-out infinite;
}
.scn-wonder-at-houses .dust {
  position: absolute;
  bottom: 18%;
  left: 30%;
  width: 40px;
  height: 15px;
  background: radial-gradient(ellipse, #d4c0a0 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(3px);
  opacity: 0.4;
  animation: won-dust 6s ease-in-out infinite;
}
.scn-wonder-at-houses .shadow-slice {
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, rgba(0,0,0,0.15) 0%, transparent 50%, rgba(0,0,0,0.1) 100%);
  pointer-events: none;
  animation: won-shadow 5s ease-in-out infinite alternate;
}
@keyframes won-sky {
  0% { opacity: 0.9; transform: scaleY(1); }
  50% { opacity: 1; transform: scaleY(1.01); }
  100% { opacity: 0.85; transform: scaleY(0.99); }
}
@keyframes won-houses {
  0% { transform: perspective(200px) rotateX(5deg) translateY(0); }
  50% { transform: perspective(200px) rotateX(6deg) translateY(-2px); }
  100% { transform: perspective(200px) rotateX(4deg) translateY(1px); }
}
@keyframes won-horse {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(5px) rotate(2deg); }
  100% { transform: translateX(-3px) rotate(-1deg); }
}
@keyframes won-figure {
  0% { transform: translateX(0) rotate(-2deg); }
  25% { transform: translateX(4px) rotate(2deg); }
  50% { transform: translateX(8px) rotate(-1deg); }
  75% { transform: translateX(4px) rotate(3deg); }
  100% { transform: translateX(0) rotate(-2deg); }
}
@keyframes won-dust {
  0% { transform: translateX(0) scale(1); opacity: 0.3; }
  50% { transform: translateX(15px) scale(1.5); opacity: 0.5; }
  100% { transform: translateX(-10px) scale(0.8); opacity: 0.2; }
}
@keyframes won-shadow {
  0% { opacity: 0.6; }
  50% { opacity: 0.8; }
  100% { opacity: 0.4; }
}

.scn-horses-in-africa {
  background: linear-gradient(180deg, #e8d5b0 0%, #d4b890 100%);
  position: relative;
  overflow: hidden;
}
.scn-horses-in-africa .interior-wall {
  position: absolute;
  inset: 0 30% 0 0;
  background: linear-gradient(180deg, #c8a880 0%, #b49870 100%);
  border-right: 4px solid #8a7050;
  box-shadow: inset -10px 0 20px rgba(0,0,0,0.2);
  animation: hor-wall 10s ease-in-out infinite alternate;
}
.scn-horses-in-africa .window-out {
  position: absolute;
  top: 20%;
  left: 60%;
  width: 30%;
  height: 50%;
  background: linear-gradient(180deg, #a0c8e0 0%, #80b0d0 100%);
  border: 8px solid #8a7050;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(80,120,160,0.3), 0 5px 15px rgba(0,0,0,0.3);
  animation: hor-window 6s ease-in-out infinite;
}
.scn-horses-in-africa .table-wood {
  position: absolute;
  bottom: 15%;
  left: 5%;
  width: 40%;
  height: 8%;
  background: linear-gradient(90deg, #6a5030 0%, #8a7050 50%, #6a5030 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  transform: perspective(100px) rotateX(5deg);
  animation: hor-table 12s ease-in-out infinite;
}
.scn-horses-in-africa .figures-seated {
  position: absolute;
  bottom: 23%;
  left: 12%;
  width: 30%;
  height: 20%;
  background:
    radial-gradient(ellipse at 20% 80%, #3a2a1a 0%, transparent 40%) no-repeat,
    radial-gradient(ellipse at 60% 85%, #3a2a1a 0%, transparent 35%) no-repeat;
  background-size: 40% 100%, 40% 100%;
  background-position: 10% 0%, 60% 0%;
  filter: blur(1px);
  animation: hor-figures 8s ease-in-out infinite alternate;
}
.scn-horses-in-africa .horse-outside {
  position: absolute;
  bottom: 30%;
  right: 5%;
  width: 30px;
  height: 25px;
  background: #5a4a3a;
  border-radius: 30% 10% 40% 20% / 30% 20% 30% 20%;
  box-shadow: -6px 0 0 #4a3a2a;
  animation: hor-horse 4s ease-in-out infinite alternate;
}
.scn-horses-in-africa .lamp-glow {
  position: absolute;
  top: 15%;
  left: 25%;
  width: 10px;
  height: 10px;
  background: radial-gradient(circle, #ffd080 0%, #e0a050 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(255,200,100,0.5);
  animation: hor-lamp 3s ease-in-out infinite alternate;
}
.scn-horses-in-africa .curtains {
  position: absolute;
  top: 18%;
  left: 58%;
  width: 8%;
  height: 55%;
  background: linear-gradient(180deg, #a08060 0%, #806040 100%);
  border-radius: 4px;
  box-shadow: 2px 0 5px rgba(0,0,0,0.2);
  animation: hor-curtains 8s ease-in-out infinite alternate;
}
@keyframes hor-wall {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes hor-window {
  0% { transform: scale(1) translateY(0); box-shadow: inset 0 0 20px rgba(80,120,160,0.3), 0 5px 15px rgba(0,0,0,0.3); }
  50% { transform: scale(1.01) translateY(-2px); box-shadow: inset 0 0 25px rgba(80,120,160,0.4), 0 8px 20px rgba(0,0,0,0.4); }
  100% { transform: scale(0.99) translateY(1px); box-shadow: inset 0 0 15px rgba(80,120,160,0.2), 0 3px 10px rgba(0,0,0,0.2); }
}
@keyframes hor-table {
  0% { transform: perspective(100px) rotateX(5deg) translateY(0); }
  50% { transform: perspective(100px) rotateX(6deg) translateY(-1px); }
  100% { transform: perspective(100px) rotateX(4deg) translateY(1px); }
}
@keyframes hor-figures {
  0% { transform: translateX(0) scaleY(1); opacity: 0.9; }
  50% { transform: translateX(3px) scaleY(1.02); opacity: 1; }
  100% { transform: translateX(-2px) scaleY(0.98); opacity: 0.85; }
}
@keyframes hor-horse {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(4px) rotate(2deg); }
  100% { transform: translateX(-2px) rotate(-1deg); }
}
@keyframes hor-lamp {
  0% { transform: scale(1); opacity: 0.8; box-shadow: 0 0 30px 10px rgba(255,200,100,0.5); }
  50% { transform: scale(1.05); opacity: 1; box-shadow: 0 0 40px 15px rgba(255,200,100,0.6); }
  100% { transform: scale(0.95); opacity: 0.7; box-shadow: 0 0 20px 5px rgba(255,200,100,0.4); }
}
@keyframes hor-curtains {
  0% { transform: translateX(0); }
  50% { transform: translateX(3px); }
  100% { transform: translateX(-2px); }
}

.scn-sale-of-slaves {
  background: linear-gradient(180deg, #d4b080 0%, #b89060 100%);
  position: relative;
  overflow: hidden;
}
.scn-sale-of-slaves .yard-floor {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 35%;
  background: linear-gradient(180deg, #a08050 0%, #8a7040 100%);
  box-shadow: inset 0 10px 25px rgba(0,0,0,0.4);
  animation: sal-floor 7s ease-in-out infinite;
}
.scn-sale-of-slaves .fence-posts {
  position: absolute;
  bottom: 35%;
  left: 5%;
  right: 5%;
  height: 10%;
  background:
    radial-gradient(ellipse at 10% 100%, #6a5030 0%, transparent 30%) no-repeat,
    radial-gradient(ellipse at 30% 100%, #6a5030 0%, transparent 30%) no-repeat,
    radial-gradient(ellipse at 50% 100%, #6a5030 0%, transparent 30%) no-repeat,
    radial-gradient(ellipse at 70% 100%, #6a5030 0%, transparent 30%) no-repeat,
    radial-gradient(ellipse at 90% 100%, #6a5030 0%, transparent 30%) no-repeat;
  background-size: 8% 100%, 8% 100%, 8% 100%, 8% 100%, 8% 100%;
  background-position: 0% 0%, 20% 0%, 40% 0%, 60% 0%, 80% 0%;
  filter: blur(1px);
  animation: sal-fence 9s ease-in-out infinite alternate;
}
.scn-sale-of-slaves .buyers-rush {
  position: absolute;
  bottom: 25%;
  right: 10%;
  width: 40%;
  height: 25%;
  background:
    radial-gradient(ellipse at 10% 60%, #3a2a1a 0%, transparent 35%) no-repeat,
    radial-gradient(ellipse at 30% 70%, #4a3a2a 0%, transparent 30%) no-repeat,
    radial-gradient(ellipse at 50% 55%, #3a2a1a 0%, transparent 35%) no-repeat,
    radial-gradient(ellipse at 70% 65%, #4a3a2a 0%, transparent 30%) no-repeat,
    radial-gradient(ellipse at 90% 60%, #3a2a1a 0%, transparent 35%) no-repeat;
  background-size: 20% 100%, 20% 100%, 20% 100%, 20% 100%, 20% 100%;
  background-position: 0% 0%, 20% 0%, 40% 0%, 60% 0%, 80% 0%;
  filter: blur(1px);
  animation: sal-buyers 2s ease-in-out infinite alternate;
}
.scn-sale-of-slaves .slaves-crouch {
  position: absolute;
  bottom: 15%;
  left: 10%;
  width: 30%;
  height: 30%;
  background:
    radial-gradient(ellipse at 20% 50%, #2a1a10 0%, transparent 35%) no-repeat,
    radial-gradient(ellipse at 50% 55%, #2a1a10 0%, transparent 30%) no-repeat,
    radial-gradient(ellipse at 80% 45%, #2a1a10 0%, transparent 35%) no-repeat;
  background-size: 25% 100%, 30% 100%, 25% 100%;
  background-position: 5% 0%, 35% 0%, 65% 0%;
  filter: blur(1px);
  animation: sal-slaves 4s ease-in-out infinite;
}
.scn-sale-of-slaves .drum {
  position: absolute;
  bottom: 33%;
  left: 20%;
  width: 20px;
  height: 14px;
  background: linear-gradient(180deg, #8a6040 0%, #6a4830 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: sal-drum 1s steps(2) infinite;
}
.scn-sale-of-slaves .sun-light-rays {
  position: absolute;
  top: 0;
  left: 40%;
  width: 20%;
  height: 100%;
  background: linear-gradient(180deg, rgba(255,200,100,0.4) 0%, transparent 100%);
  clip-path: polygon(50% 0%, 30% 100%, 70% 100%);
  animation: sal-rays 5s ease-in-out infinite alternate;
}
.scn-sale-of-slaves .dust-storm {
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at 50% 80%, rgba(180,150,100,0.15) 0%, transparent 70%);
  filter: blur(10px);
  animation: sal-dust 6s ease-in-out infinite alternate;
}
@keyframes sal-floor {
  0% { transform: translateY(0); opacity: 0.9; }
  50% { transform: translateY(-2px); opacity: 1; }
  100% { transform: translateY(1px); opacity: 0.8; }
}
@keyframes sal-fence {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-2px) scaleY(1.02); }
  100% { transform: translateY(1px) scaleY(0.98); }
}
@keyframes sal-buyers {
  0% { transform: translateX(0) scaleX(1); }
  50% { transform: translateX(15px) scaleX(1.05); }
  100% { transform: translateX(-10px) scaleX(0.95); }
}
@keyframes sal-slaves {
  0% { transform: translateY(0) scaleY(1); opacity: 0.8; }
  50% { transform: translateY(-2px) scaleY(1.02); opacity: 0.9; }
  100% { transform: translateY(2px) scaleY(0.98); opacity: 0.7; }
}
@keyframes sal-drum {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(0.9); }
  100% { transform: scaleY(1); }
}
@keyframes sal-rays {
  0% { opacity: 0.3; transform: scale(1); }
  50% { opacity: 0.6; transform: scale(1.1); }
  100% { opacity: 0.2; transform: scale(0.9); }
}
@keyframes sal-dust {
  0% { opacity: 0.2; transform: translateX(0); }
  50% { opacity: 0.4; transform: translateX(10px); }
  100% { opacity: 0.1; transform: translateX(-5px); }
}

.scn-landing-at-louisbourgh {
  background: 
    linear-gradient(180deg, #87CEEB 0%, #F0C060 60%, #E8A020 100%),
    radial-gradient(ellipse at 30% 60%, #F0D080 20%, transparent 50%);
}
.scn-landing-at-louisbourgh .ln-sky {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(135,206,235,0.6) 0%, transparent 100%);
  animation: ln-sky 20s ease-in-out infinite alternate;
}
.scn-landing-at-louisbourgh .ln-sun {
  position: absolute; top: 12%; left: 70%;
  width: 60px; height: 60px;
  background: radial-gradient(circle, #FFE0A0 0%, #FFC860 60%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 80px 40px rgba(255,200,96,0.5);
  animation: ln-sun 8s ease-in-out infinite alternate;
}
.scn-landing-at-louisbourgh .ln-cliffs {
  position: absolute; bottom: 40%; left: 0; right: 70%;
  height: 20%;
  background: linear-gradient(180deg, #5A4A3A 0%, #3A2A1A 100%);
  border-radius: 0 40% 0 0 / 0 80% 0 0;
  box-shadow: inset 0 8px 15px rgba(0,0,0,0.6);
  animation: ln-cliffs 12s ease-in-out infinite alternate;
}
.scn-landing-at-louisbourgh .ln-water {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #2A6A8A 0%, #1A4A6A 40%, #0A2A4A 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.3);
  animation: ln-water 5s ease-in-out infinite alternate;
}
.scn-landing-at-louisbourgh .ln-boat {
  position: absolute; bottom: 25%; left: 15%;
  width: 70px; height: 20px;
  background: linear-gradient(180deg, #6A4A2A 0%, #3A2A1A 100%);
  border-radius: 0 40% 20% 0;
  transform-origin: center bottom;
  animation: ln-boat 4s ease-in-out infinite;
}
.scn-landing-at-louisbourgh .ln-soldier-a {
  position: absolute; bottom: 22%; left: 20%;
  width: 12px; height: 28px;
  background: linear-gradient(180deg, #2A2A3A 0%, #1A1A2A 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ln-soldier 6s ease-in-out infinite;
}
.scn-landing-at-louisbourgh .ln-soldier-b {
  position: absolute; bottom: 21%; left: 26%;
  width: 12px; height: 28px;
  background: linear-gradient(180deg, #2A2A3A 0%, #1A1A2A 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ln-soldier 6s ease-in-out 1s infinite;
}
.scn-landing-at-louisbourgh .ln-smoke {
  position: absolute; top: 30%; left: 50%;
  width: 80px; height: 40px;
  background: radial-gradient(ellipse, rgba(200,180,160,0.6) 0%, transparent 70%);
  filter: blur(12px);
  animation: ln-smoke 25s linear infinite;
}
@keyframes ln-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes ln-sun { 0% { transform: translate(0,0) scale(1); box-shadow: 0 0 80px 40px rgba(255,200,96,0.3); } 50% { transform: translate(5px, -3px) scale(1.02); box-shadow: 0 0 100px 50px rgba(255,200,96,0.6); } 100% { transform: translate(-5px, 2px) scale(0.98); box-shadow: 0 0 60px 30px rgba(255,200,96,0.4); } }
@keyframes ln-cliffs { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-2px) scaleY(1.01); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes ln-water { 0% { background-position: 0% 0%; } 50% { background-position: 10% 5%; } 100% { background-position: -10% 0%; } }
@keyframes ln-boat { 0% { transform: translate(0,0) rotate(-2deg); } 50% { transform: translate(8px, -2px) rotate(2deg); } 100% { transform: translate(0,0) rotate(-2deg); } }
@keyframes ln-soldier { 0% { transform: translate(0,0); } 30% { transform: translate(4px, -1px); } 60% { transform: translate(8px, 0); } 100% { transform: translate(12px, 0); } }
@keyframes ln-smoke { 0% { transform: translateX(0) scale(1); opacity: 0.5; } 50% { transform: translateX(60px) scale(1.3); opacity: 0.3; } 100% { transform: translateX(120px) scale(1.6); opacity: 0; } }

.scn-musket-ball-through-mouth {
  background: 
    linear-gradient(180deg, #8AB4D0 0%, #E8C070 60%, #C89040 100%),
    radial-gradient(ellipse at 50% 30%, #FFE0A0 0%, transparent 50%);
}
.scn-musket-ball-through-mouth .mb-sky {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(200,180,140,0.4) 0%, transparent 100%);
  animation: mb-sky 15s ease-in-out infinite alternate;
}
.scn-musket-ball-through-mouth .mb-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #4A7A3A 0%, #2A5A1A 100%);
  border-radius: 20% 80% 0 0 / 30% 60% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.4);
}
.scn-musket-ball-through-mouth .mb-officer {
  position: absolute; bottom: 28%; left: 45%;
  width: 30px; height: 50px;
  background: linear-gradient(180deg, #2A2A3A 0%, #1A1A2A 100%);
  border-radius: 40% 50% 30% 30% / 60% 70% 40% 30%;
  transform: rotate(10deg);
  animation: mb-officer 2s ease-in-out infinite;
}
.scn-musket-ball-through-mouth .mb-mouth {
  position: absolute; bottom: 45%; left: 49%;
  width: 10px; height: 6px;
  background: #1A1A1A;
  border-radius: 50% 50% 0 0;
  transform: scaleX(0.8);
  animation: mb-mouth 0.5s steps(2) infinite;
}
.scn-musket-ball-through-mouth .mb-ball {
  position: absolute; bottom: 50%; left: 20%;
  width: 8px; height: 8px;
  background: radial-gradient(circle, #C08040 0%, #5A3A1A 100%);
  border-radius: 50%;
  box-shadow: 0 0 4px 2px rgba(192,128,64,0.6);
  animation: mb-ball 1.5s linear infinite;
}
.scn-musket-ball-through-mouth .mb-trail {
  position: absolute; bottom: 50%; left: 22%; height: 2px; width: 60px;
  background: linear-gradient(90deg, transparent 0%, rgba(200,180,160,0.6) 30%, transparent 100%);
  transform: rotate(-10deg);
  transform-origin: left center;
  animation: mb-trail 1.5s linear infinite;
}
.scn-musket-ball-through-mouth .mb-soldiers {
  position: absolute; bottom: 25%; left: 55%;
  width: 40px; height: 40px;
  background: linear-gradient(180deg, #2A2A3A 0%, #1A1A2A 100%);
  clip-path: polygon(0% 100%, 20% 50%, 40% 100%, 60% 50%, 80% 100%, 100% 50%, 80% 0%, 20% 0%, 0% 50%);
  opacity: 0.6;
  animation: mb-soldiers 8s ease-in-out infinite alternate;
}
@keyframes mb-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes mb-officer { 0% { transform: rotate(10deg) translate(0,0); } 50% { transform: rotate(-5deg) translate(-3px, -2px); } 100% { transform: rotate(10deg) translate(0,0); } }
@keyframes mb-mouth { 0% { transform: scaleX(0.8) scaleY(1); } 50% { transform: scaleX(1.2) scaleY(1.3); } 100% { transform: scaleX(0.8) scaleY(1); } }
@keyframes mb-ball { 0% { left: 20%; bottom: 50%; opacity: 1; } 30% { left: 48%; bottom: 48%; } 50% { left: 48%; bottom: 48%; opacity: 1; } 51% { opacity: 0; } 100% { left: 70%; bottom: 46%; opacity: 0; } }
@keyframes mb-trail { 0% { transform: rotate(-10deg) scaleX(0.5); opacity: 0; } 20% { opacity: 0.7; } 50% { opacity: 0.7; } 70% { opacity: 0; } }
@keyframes mb-soldiers { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-2px) scaleY(0.95); } 100% { transform: translateY(0) scaleY(1); } }

.scn-siege-of-louisbourgh {
  background: 
    linear-gradient(180deg, #8AB8D0 0%, #D0A860 60%, #B08830 100%),
    radial-gradient(ellipse at 40% 70%, #E8C880 20%, transparent 60%);
}
.scn-siege-of-louisbourgh .sl-sky {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(255,200,120,0.3) 0%, transparent 100%);
  animation: sl-sky 18s ease-in-out infinite alternate;
}
.scn-siege-of-louisbourgh .sl-walls {
  position: absolute; bottom: 30%; left: 10%; right: 10%;
  height: 30%;
  background: linear-gradient(180deg, #6A5A4A 0%, #3A2A1A 100%);
  clip-path: polygon(0% 100%, 5% 20%, 10% 100%, 20% 25%, 30% 100%, 40% 20%, 50% 100%, 60% 25%, 70% 100%, 80% 20%, 90% 100%, 100% 25%, 100% 100%);
  box-shadow: inset 0 10px 15px rgba(0,0,0,0.5);
  animation: sl-walls 15s ease-in-out infinite alternate;
}
.scn-siege-of-louisbourgh .sl-battery {
  position: absolute; bottom: 38%; left: 5%;
  width: 30%; height: 5%;
  background: linear-gradient(90deg, #4A3A2A 0%, #3A2A1A 100%);
  border-radius: 10% 30% 0 0;
  box-shadow: inset 0 3px 6px rgba(0,0,0,0.6);
}
.scn-siege-of-louisbourgh .sl-cannon {
  position: absolute; bottom: 41%; left: 8%;
  width: 40px; height: 12px;
  background: linear-gradient(180deg, #5A4A3A 0%, #2A1A0A 100%);
  border-radius: 20% 70% 20% 20%;
  transform-origin: right center;
  animation: sl-cannon 4s ease-in-out infinite;
}
.scn-siege-of-louisbourgh .sl-ship {
  position: absolute; bottom: 20%; right: 15%;
  width: 80px; height: 30px;
  background: linear-gradient(180deg, #3A2A1A 0%, #1A1A1A 100%);
  border-radius: 0 0 30% 30%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: sl-ship 12s ease-in-out infinite alternate;
}
.scn-siege-of-louisbourgh .sl-smoke-1 {
  position: absolute; bottom: 55%; left: 15%;
  width: 50px; height: 30px;
  background: radial-gradient(ellipse, rgba(200,180,160,0.5) 0%, transparent 70%);
  filter: blur(8px);
  animation: sl-smoke-1 10s linear infinite alternate;
}
.scn-siege-of-louisbourgh .sl-smoke-2 {
  position: absolute; bottom: 50%; left: 35%;
  width: 60px; height: 35px;
  background: radial-gradient(ellipse, rgba(200,180,160,0.4) 0%, transparent 70%);
  filter: blur(10px);
  animation: sl-smoke-2 15s linear infinite alternate;
}
.scn-siege-of-louisbourgh .sl-flash {
  position: absolute; bottom: 42%; left: 12%;
  width: 20px; height: 20px;
  background: radial-gradient(circle, #FFE0A0 0%, #FFC040 50%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 30px 15px rgba(255,192,64,0.7);
  animation: sl-flash 0.8s steps(2) infinite;
}
@keyframes sl-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes sl-walls { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes sl-cannon { 0% { transform: rotate(-10deg) translate(0,0); } 25% { transform: rotate(-25deg) translate(0,-2px); } 50% { transform: rotate(-10deg) translate(0,0); } 75% { transform: rotate(5deg) translate(0,-1px); } 100% { transform: rotate(-10deg) translate(0,0); } }
@keyframes sl-ship { 0% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(-5px) rotate(2deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes sl-smoke-1 { 0% { transform: translateX(0) scale(1); opacity: 0.4; } 50% { transform: translateX(30px) scale(1.3); opacity: 0.2; } 100% { transform: translateX(60px) scale(1.6); opacity: 0; } }
@keyframes sl-smoke-2 { 0% { transform: translateX(0) scale(1); opacity: 0.3; } 50% { transform: translateX(-20px) scale(1.2); opacity: 0.2; } 100% { transform: translateX(-40px) scale(1.5); opacity: 0; } }
@keyframes sl-flash { 0% { opacity: 0; } 30% { opacity: 1; transform: scale(1.5); } 50% { opacity: 1; } 70% { opacity: 0; } }

.scn-boats-attack {
  background: 
    linear-gradient(180deg, #4A3A5A 0%, #6A4A6A 30%, #A06050 70%, #C07040 100%),
    radial-gradient(ellipse at 60% 30%, #E08040 0%, transparent 50%);
}
.scn-boats-attack .ba-sky {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(100,80,120,0.5) 0%, transparent 100%);
  animation: ba-sky 20s ease-in-out infinite alternate;
}
.scn-boats-attack .ba-water {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #1A3A5A 0%, #0A1A2A 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.5);
  animation: ba-water 6s ease-in-out infinite alternate;
}
.scn-boats-attack .ba-frigate {
  position: absolute; bottom: 15%; right: 10%;
  width: 100px; height: 50px;
  background: linear-gradient(180deg, #3A2A1A 0%, #1A1A0A 100%);
  border-radius: 0 0 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: ba-frigate 10s ease-in-out infinite alternate;
}
.scn-boats-attack .ba-attacker {
  position: absolute; bottom: 18%; left: 20%;
  width: 50px; height: 18px;
  background: linear-gradient(180deg, #4A3A2A 0%, #2A1A0A 100%);
  border-radius: 10% 50% 20% 10%;
  transform-origin: left center;
  animation: ba-attacker 5s ease-in-out infinite;
}
.scn-boats-attack .ba-fire {
  position: absolute; bottom: 25%; right: 20%;
  width: 30px; height: 40px;
  background: radial-gradient(ellipse at 50% 70%, #FF8020 0%, #D04010 40%, transparent 70%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 40px 20px rgba(255,128,32,0.6), 0 0 80px 40px rgba(200,60,20,0.3);
  animation: ba-fire 2s ease-in-out infinite alternate;
}
.scn-boats-attack .ba-smoke {
  position: absolute; bottom: 40%; right: 15%;
  width: 60px; height: 40px;
  background: radial-gradient(ellipse, rgba(120,100,80,0.5) 0%, transparent 70%);
  filter: blur(10px);
  animation: ba-smoke 12s linear infinite alternate;
}
.scn-boats-attack .ba-wave-1 {
  position: absolute; bottom: 5%; left: 0; right: 0; height: 10%;
  background: linear-gradient(180deg, transparent 0%, rgba(20,60,100,0.6) 50%, transparent 100%);
  animation: ba-wave-1 4s ease-in-out infinite alternate;
}
.scn-boats-attack .ba-wave-2 {
  position: absolute; bottom: 0; left: 0; right: 0; height: 10%;
  background: linear-gradient(180deg, transparent 0%, rgba(20,60,100,0.4) 50%, transparent 100%);
  animation: ba-wave-2 5s ease-in-out 1s infinite alternate;
}
@keyframes ba-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes ba-water { 0% { background-position: 0% 0%; } 50% { background-position: 8% 3%; } 100% { background-position: -8% 0%; } }
@keyframes ba-frigate { 0% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(-8px) rotate(2deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes ba-attacker { 0% { transform: translate(0,0) rotate(5deg); } 30% { transform: translate(15px, -2px) rotate(-3deg); } 60% { transform: translate(30px, 0) rotate(2deg); } 100% { transform: translate(60px, 0) rotate(-5deg); } }
@keyframes ba-fire { 0% { transform: scaleY(1) rotate(0deg); box-shadow: 0 0 40px 20px rgba(255,128,32,0.4), 0 0 80px 40px rgba(200,60,20,0.2); } 50% { transform: scaleY(1.2) rotate(5deg); box-shadow: 0 0 60px 30px rgba(255,128,32,0.7), 0 0 100px 50px rgba(200,60,20,0.4); } 100% { transform: scaleY(0.9) rotate(-5deg); box-shadow: 0 0 30px 15px rgba(255,128,32,0.3), 0 0 60px 30px rgba(200,60,20,0.15); } }
@keyframes ba-smoke { 0% { transform: translateY(0) scale(1); opacity: 0.4; } 50% { transform: translateY(-10px) scale(1.2); opacity: 0.2; } 100% { transform: translateY(-20px) scale(1.5); opacity: 0; } }
@keyframes ba-wave-1 { 0% { transform: translateX(0) scaleY(1); } 50% { transform: translateX(20px) scaleY(1.3); } 100% { transform: translateX(0) scaleY(1); } }
@keyframes ba-wave-2 { 0% { transform: translateX(0) scaleY(1); } 50% { transform: translateX(-15px) scaleY(1.2); } 100% { transform: translateX(0) scaleY(1); } }

.scn-reunion-miss-guerins {
  background:
    linear-gradient(180deg, #fcd89a 0%, #b8d4f0 40%, #7ab6e0 100%),
    linear-gradient(180deg, #8bc34a 0%, #4caf50 100%);
}
.scn-reunion-miss-guerins .sky {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #b8d4f0 0%, #fcd89a 60%, transparent 100%);
  animation: rg-sky 12s ease-in-out infinite alternate;
}
.scn-reunion-miss-guerins .sun {
  position: absolute; top: 12%; right: 20%; width: 50px; height: 50px;
  background: radial-gradient(circle, #fff7b0 0%, #fcd89a 50%, transparent 100%);
  border-radius: 50%;
  animation: rg-sun 20s ease-in-out infinite;
}
.scn-reunion-miss-guerins .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #6d9e3d 0%, #3f7a28 100%);
  border-radius: 30% 20% 0 0 / 40% 30% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.15);
  animation: rg-ground 8s ease-in-out infinite alternate;
}
.scn-reunion-miss-guerins .figure-left,
.scn-reunion-miss-guerins .figure-right {
  position: absolute; bottom: 28%; width: 22px; height: 50px;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
}
.scn-reunion-miss-guerins .figure-left {
  left: 38%; background: linear-gradient(180deg, #5a3d2e 0%, #3a2218 100%);
  transform-origin: bottom center;
  animation: rg-walk-l 4s ease-in-out infinite;
}
.scn-reunion-miss-guerins .figure-right {
  left: 46%; background: linear-gradient(180deg, #7a5a4a 0%, #4a3028 100%);
  transform-origin: bottom center;
  animation: rg-walk-r 4s ease-in-out infinite 0.5s;
}
.scn-reunion-miss-guerins .bush-a,
.scn-reunion-miss-guerins .bush-b {
  position: absolute; bottom: 18%; width: 80px; height: 40px;
  background: radial-gradient(ellipse at 50% 100%, #3f7a28 0%, #1a4a12 100%);
  border-radius: 50%; filter: blur(3px);
}
.scn-reunion-miss-guerins .bush-a { left: 5%; animation: rg-bush 10s ease-in-out infinite; }
.scn-reunion-miss-guerins .bush-b { right: 5%; width: 100px; height: 50px; animation: rg-bush 12s ease-in-out infinite 2s; }
@keyframes rg-sky { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.75 } }
@keyframes rg-sun { 0% { transform: translate(0, 0) scale(1); opacity: 0.9 } 33% { transform: translate(5px, -3px) scale(1.05); opacity: 1 } 66% { transform: translate(-2px, 2px) scale(0.98); opacity: 0.85 } 100% { transform: translate(0, 0) scale(1); opacity: 0.9 } }
@keyframes rg-ground { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes rg-walk-l { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(4px) rotate(2deg); } 50% { transform: translateX(0) rotate(0); } 75% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes rg-walk-r { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(-3px) rotate(-1deg); } 50% { transform: translateX(0) rotate(0); } 75% { transform: translateX(2px) rotate(1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes rg-bush { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.97) scaleX(1.02); } 100% { transform: scaleY(1); } }

.scn-meeting-pascal {
  background:
    linear-gradient(180deg, #fde8c0 0%, #d4b68a 50%, #b88c5a 100%),
    radial-gradient(ellipse at 60% 30%, #fff5e0 0%, transparent 60%);
}
.scn-meeting-pascal .wall {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #d4b68a 0%, #b88c5a 100%);
  box-shadow: inset 0 0 30px rgba(0,0,0,.2);
}
.scn-meeting-pascal .window-l {
  position: absolute; top: 15%; left: 10%; width: 40%; height: 50%;
  background: linear-gradient(180deg, #fff7e0 0%, #e8d4b0 100%);
  border: 4px solid #8b5e3c;
  box-shadow: inset 0 0 20px rgba(255,247,224,.6);
  animation: mp-window 6s ease-in-out infinite alternate;
}
.scn-meeting-pascal .shadow {
  position: absolute; top: 0; right: 0; width: 45%; height: 100%;
  background: linear-gradient(90deg, transparent 0%, rgba(0,0,0,.15) 100%);
  animation: mp-shadow 8s ease-in-out infinite alternate;
}
.scn-meeting-pascal .figure-a,
.scn-meeting-pascal .figure-b {
  position: absolute; bottom: 22%; width: 28px; height: 60px;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
}
.scn-meeting-pascal .figure-a {
  left: 25%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  animation: mp-figure-a 4s ease-in-out infinite;
}
.scn-meeting-pascal .figure-b {
  right: 25%; background: linear-gradient(180deg, #5a3a2a 0%, #2a1a10 100%);
  animation: mp-figure-b 5s ease-in-out infinite 0.5s;
}
.scn-meeting-pascal .table {
  position: absolute; bottom: 12%; left: 30%; right: 30%; height: 10%;
  background: linear-gradient(180deg, #a07040 0%, #6a4020 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 6px 12px rgba(0,0,0,.4);
  animation: mp-table 7s ease-in-out infinite alternate;
}
@keyframes mp-window { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.75; } }
@keyframes mp-shadow { 0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.6; } }
@keyframes mp-figure-a { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(3px) rotate(0deg); } 50% { transform: translateX(0) rotate(2deg); } 75% { transform: translateX(-3px) rotate(0deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes mp-figure-b { 0% { transform: translateX(0) rotate(2deg); } 25% { transform: translateX(-2px) rotate(0deg); } 50% { transform: translateX(0) rotate(-2deg); } 75% { transform: translateX(2px) rotate(0deg); } 100% { transform: translateX(0) rotate(2deg); } }
@keyframes mp-table { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }

.scn-learning-hairdressing {
  background:
    linear-gradient(180deg, #fff3e0 0%, #fce4d6 40%, #e8c8b0 100%),
    radial-gradient(ellipse at 50% 80%, #fff3e0 0%, transparent 70%);
}
.scn-learning-hairdressing .room {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #fce4d6 0%, #e8c8b0 100%);
}
.scn-learning-hairdressing .chair {
  position: absolute; bottom: 20%; left: 40%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #b08060 0%, #8a6040 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 8px 12px rgba(0,0,0,.2);
  animation: hd-chair 6s ease-in-out infinite alternate;
}
.scn-learning-hairdressing .client {
  position: absolute; bottom: 45%; left: 43%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #7a6050 0%, #4a3828 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hd-client 8s ease-in-out infinite;
}
.scn-learning-hairdressing .stylist {
  position: absolute; bottom: 38%; right: 35%; width: 22px; height: 55px;
  background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hd-stylist 10s ease-in-out infinite 1s;
}
.scn-learning-hairdressing .mirror {
  position: absolute; top: 10%; left: 35%; width: 80px; height: 100px;
  background: linear-gradient(180deg, #d0d8e0 0%, #b0b8c0 100%);
  border: 4px solid #6a5040;
  box-shadow: inset 0 0 20px rgba(255,255,255,.4);
  animation: hd-mirror 12s ease-in-out infinite alternate;
}
.scn-learning-hairdressing .light {
  position: absolute; top: 0; left: 50%; width: 60px; height: 120px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #fff8e0 0%, transparent 100%);
  filter: blur(8px);
  animation: hd-light 5s ease-in-out infinite alternate;
}
@keyframes hd-chair { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes hd-client { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(2px) rotate(1deg); } 50% { transform: translateX(0) rotate(0); } 75% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes hd-stylist { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(-2px) rotate(-1deg); } 50% { transform: translateX(0) rotate(0); } 75% { transform: translateX(2px) rotate(1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes hd-mirror { 0% { box-shadow: inset 0 0 20px rgba(255,255,255,.3); } 50% { box-shadow: inset 0 0 30px rgba(255,255,255,.6); } 100% { box-shadow: inset 0 0 20px rgba(255,255,255,.3); } }
@keyframes hd-light { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.5; } }

.scn-learning-french-horn {
  background:
    linear-gradient(180deg, #f5d0a0 0%, #d4a870 40%, #b08050 100%),
    radial-gradient(ellipse at 50% 100%, #f5d0a0 0%, transparent 70%);
}
.scn-learning-french-horn .backdrop {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #d4a870 0%, #b08050 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,.15);
}
.scn-learning-french-horn .player {
  position: absolute; bottom: 20%; left: 40%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fh-player 4s ease-in-out infinite;
}
.scn-learning-french-horn .horn-body {
  position: absolute; bottom: 35%; left: 45%; width: 100px; height: 20px;
  background: linear-gradient(90deg, #c8943a 0%, #a0722a 50%, #c8943a 100%);
  border-radius: 10px;
  transform: rotate(-15deg);
  box-shadow: 0 4px 6px rgba(0,0,0,.3);
  animation: fh-horn-body 6s ease-in-out infinite alternate;
}
.scn-learning-french-horn .horn-bell {
  position: absolute; bottom: 25%; left: 38%; width: 40px; height: 50px;
  background: radial-gradient(ellipse at 30% 50%, #e8b84a 0%, #c8943a 50%, #805a1a 100%);
  border-radius: 50% 30% 30% 50% / 50% 40% 40% 50%;
  transform: rotate(10deg);
  box-shadow: 0 0 20px rgba(200,148,58,.4);
  animation: fh-horn-bell 8s ease-in-out infinite alternate;
}
.scn-learning-french-horn .music-a,
.scn-learning-french-horn .music-b,
.scn-learning-french-horn .music-c {
  position: absolute; width: 12px; height: 12px;
  background: radial-gradient(circle, #f0d080 0%, #d0a040 100%);
  border-radius: 50%;
  filter: blur(2px);
  animation: fh-music 5s ease-in-out infinite;
}
.scn-learning-french-horn .music-a { top: 20%; left: 20%; animation-delay: 0s; }
.scn-learning-french-horn .music-b { top: 30%; left: 55%; animation-delay: 0.8s; width: 8px; height: 8px; }
.scn-learning-french-horn .music-c { top: 40%; left: 35%; animation-delay: 1.6s; width: 10px; height: 10px; }
@keyframes fh-player { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(2px) rotate(2deg); } 50% { transform: translateX(0) rotate(0); } 75% { transform: translateX(-2px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes fh-horn-body { 0% { transform: rotate(-15deg) scaleY(1); } 50% { transform: rotate(-12deg) scaleY(0.95); } 100% { transform: rotate(-15deg) scaleY(1); } }
@keyframes fh-horn-bell { 0% { transform: rotate(10deg) scale(1); } 50% { transform: rotate(8deg) scale(1.02); } 100% { transform: rotate(10deg) scale(1); } }
@keyframes fh-music { 0% { transform: translateY(0) scale(1); opacity: 0.7; } 25% { transform: translateY(-20px) scale(1.2); opacity: 1; } 50% { transform: translateY(-40px) scale(0.8); opacity: 0.5; } 75% { transform: translateY(-60px) scale(1.1); opacity: 0.8; } 100% { transform: translateY(-80px) scale(0.6); opacity: 0; } }

.scn-small-pox {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a1a1a 50%, #1a0a0a 100%),
              radial-gradient(ellipse at 50% 80%, #3a2a1a 0%, transparent 70%);
}
.scn-small-pox .bg { position:absolute; inset:0; background: linear-gradient(135deg, #1e1e2a 0%, #2a1a1a 100%); animation: sp-bg 12s ease-in-out infinite alternate; }
.scn-small-pox .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: repeating-linear-gradient(90deg, #3a2a1a 0px, #4a3a2a 2px, #3a2a1a 4px); box-shadow: inset 0 10px 20px rgba(0,0,0,.6); }
.scn-small-pox .cot { position:absolute; bottom:18%; left:20%; width:55%; height:30%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 8px 8px 4px 4px; box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: sp-cot 8s ease-in-out infinite; }
.scn-small-pox .figure { position:absolute; bottom:20%; left:35%; width:16%; height:20%; background: linear-gradient(180deg, #d4c4a8 0%, #a89878 60%, #8a7a5a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sp-figure 4s ease-in-out infinite; }
.scn-small-pox .pillow { position:absolute; bottom:37%; left:30%; width:10%; height:6%; background: radial-gradient(ellipse, #e8dcc8 0%, #c8b8a0 100%); border-radius: 50%; box-shadow: 0 2px 4px rgba(0,0,0,.3); animation: sp-pillow 5s ease-in-out infinite alternate; }
.scn-small-pox .window { position:absolute; top:15%; right:15%; width:12%; height:20%; background: linear-gradient(135deg, #4a6a8a 0%, #2a4a6a 100%); border: 3px solid #3a2a1a; border-radius: 4px; box-shadow: inset 0 0 20px rgba(120,180,220,.3); animation: sp-window 6s ease-in-out infinite alternate; }
.scn-small-pox .beam { position:absolute; top:0; right:15%; width:3%; height:70%; background: linear-gradient(180deg, rgba(220,240,255,.15) 0%, transparent 80%); transform-origin: top right; animation: sp-beam 8s ease-in-out infinite alternate; }
@keyframes sp-bg { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes sp-cot { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes sp-figure { 0%,100% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-3px) rotate(1deg) } 75% { transform: translateY(-1px) rotate(-1deg) } }
@keyframes sp-pillow { 0% { transform: scale(1) } 50% { transform: scale(1.05) } 100% { transform: scale(.95) } }
@keyframes sp-window { 0% { box-shadow: inset 0 0 10px rgba(120,180,220,.2); opacity:.6 } 50% { box-shadow: inset 0 0 30px rgba(120,180,220,.4); opacity:.8 } 100% { box-shadow: inset 0 0 15px rgba(120,180,220,.25); opacity:.7 } }
@keyframes sp-beam { 0% { transform: rotate(-5deg) scaleY(1); opacity:.5 } 50% { transform: rotate(2deg) scaleY(1.2); opacity:1 } 100% { transform: rotate(-3deg) scaleY(.9); opacity:.6 } }

.scn-judgment-of-god {
  background: linear-gradient(180deg, #f5e8d0 0%, #e0d0b0 50%, #c0a880 100%),
              radial-gradient(ellipse at 70% 30%, #fff8e0 0%, transparent 60%);
}
.scn-judgment-of-god .bg { position:absolute; inset:0; background: linear-gradient(135deg, #f0e0c0 0%, #d8c8a8 100%); animation: jg-bg 15s ease-in-out infinite alternate; }
.scn-judgment-of-god .deck { position:absolute; bottom:0; left:0; right:0; height:25%; background: repeating-linear-gradient(90deg, #8a7a5a 0px, #9a8a6a 3px, #8a7a5a 6px); box-shadow: inset 0 8px 20px rgba(0,0,0,.3); }
.scn-judgment-of-god .mast { position:absolute; bottom:25%; left:45%; width:3%; height:60%; background: linear-gradient(180deg, #6a5a3a 0%, #4a3a1a 100%); border-radius: 2px; box-shadow: 0 4px 6px rgba(0,0,0,.4); animation: jg-mast 4s ease-in-out infinite; }
.scn-judgment-of-god .figure { position:absolute; bottom:22%; left:48%; width:10%; height:25%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: jg-figure 3s ease-in-out infinite; }
.scn-judgment-of-god .beam { position:absolute; top:0; left:40%; width:20%; height:100%; background: linear-gradient(180deg, rgba(255,245,200,.6) 0%, rgba(255,245,200,.1) 70%); transform-origin: top center; animation: jg-beam 10s ease-in-out infinite alternate; }
.scn-judgment-of-god .shadow { position:absolute; bottom:22%; left:45%; width:15%; height:8%; background: radial-gradient(ellipse, rgba(0,0,0,.4) 0%, transparent 70%); animation: jg-shadow 3s ease-in-out infinite alternate; }
@keyframes jg-bg { 0% { opacity:.95 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes jg-mast { 0%,100% { transform: rotate(0) } 50% { transform: rotate(1deg) } }
@keyframes jg-figure { 0%,100% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-2px) rotate(-2deg) } 75% { transform: translateY(1px) rotate(2deg) } }
@keyframes jg-beam { 0% { transform: translateX(-5%) rotate(-2deg); opacity:.7 } 50% { transform: translateX(5%) rotate(2deg); opacity:1 } 100% { transform: translateX(0) rotate(-1deg); opacity:.8 } }
@keyframes jg-shadow { 0% { transform: scaleX(1); opacity:.5 } 50% { transform: scaleX(1.2); opacity:.8 } 100% { transform: scaleX(.9); opacity:.4 } }

.scn-royal-george-appointment {
  background: linear-gradient(180deg, #87CEEB 0%, #f0e68c 50%, #ffd700 100%),
              radial-gradient(ellipse at 50% 0%, #fffacd 0%, transparent 70%);
}
.scn-royal-george-appointment .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #b0e0ff 0%, #87CEEB 60%, transparent 100%); animation: rga-sky 20s ease-in-out infinite alternate; }
.scn-royal-george-appointment .sea { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #4a90d9 0%, #1e6dc7 100%); animation: rga-sea 8s ease-in-out infinite alternate; }
.scn-royal-george-appointment .ship { position:absolute; bottom:30%; left:20%; width:40%; height:35%; background: linear-gradient(180deg, #5a3a1a 0%, #3a1a0a 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 -4px 10px rgba(0,0,0,.3); animation: rga-ship 6s ease-in-out infinite; }
.scn-royal-george-appointment .rail { position:absolute; bottom:48%; left:22%; width:36%; height:3%; background: linear-gradient(90deg, #4a2a0a 0%, #6a4a2a 50%, #4a2a0a 100%); border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,.5); }
.scn-royal-george-appointment .master { position:absolute; bottom:45%; left:30%; width:8%; height:18%; background: linear-gradient(180deg, #8a6a4a 0%, #5a3a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: rga-master 4s ease-in-out infinite; }
.scn-royal-george-appointment .servant { position:absolute; bottom:44%; left:42%; width:7%; height:16%; background: linear-gradient(180deg, #7a5a3a 0%, #4a2a0a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: rga-servant 5s ease-in-out infinite; }
.scn-royal-george-appointment .flag { position:absolute; top:8%; left:30%; width:15%; height:8%; background: linear-gradient(180deg, #e8c800 0%, #b89a00 100%); clip-path: polygon(0 0, 100% 0, 80% 50%, 100% 100%, 0 100%); animation: rga-flag 3s ease-in-out infinite alternate; }
.scn-royal-george-appointment .cloud { position:absolute; top:10%; left:60%; width:20%; height:8%; background: linear-gradient(180deg, rgba(255,255,255,.8) 0%, rgba(255,255,255,.2) 100%); border-radius: 50%; filter: blur(4px); animation: rga-cloud 30s linear infinite; }
@keyframes rga-sky { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes rga-sea { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes rga-ship { 0%,100% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-2px) rotate(.5deg) } }
@keyframes rga-master { 0%,100% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-1px) rotate(1deg) } }
@keyframes rga-servant { 0%,100% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-1px) rotate(-1deg) } 75% { transform: translateY(1px) rotate(1deg) } }
@keyframes rga-flag { 0% { transform: skewX(-5deg) } 50% { transform: skewX(5deg) } 100% { transform: skewX(-3deg) } }
@keyframes rga-cloud { 0% { transform: translateX(0) } 100% { transform: translateX(-120vw) } }

.scn-royal-george-size {
  background: linear-gradient(180deg, #6bb3f0 0%, #b0e0ff 30%, #87CEEB 60%, #4682b4 100%),
              radial-gradient(ellipse at 50% 0%, #fff0b0 0%, transparent 60%);
}
.scn-royal-george-size .sky { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #a0d0ff 0%, transparent 100%); animation: rgs-sky 25s ease-in-out infinite alternate; }
.scn-royal-george-size .sea { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #3a7ac0 0%, #1a4a7a 100%); animation: rgs-sea 10s ease-in-out infinite alternate; }
.scn-royal-george-size .hull { position:absolute; bottom:25%; left:5%; width:90%; height:45%; background: linear-gradient(180deg, #4a2a0a 0%, #2a1a0a 100%); border-radius: 40% 40% 20% 20% / 50% 50% 20% 20%; box-shadow: 0 -10px 20px rgba(0,0,0,.4); animation: rgs-hull 7s ease-in-out infinite; }
.scn-royal-george-size .deck { position:absolute; bottom:40%; left:8%; width:84%; height:5%; background: linear-gradient(90deg, #5a3a1a 0%, #8a6a3a 50%, #5a3a1a 100%); border-radius: 2px; box-shadow: inset 0 2px 4px rgba(255,255,200,.2); }
.scn-royal-george-size .cannon { position:absolute; bottom:30%; left:15%; width:10%; height:20%; background: linear-gradient(180deg, #b8860b 0%, #8a6508 50%, #5c4306 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: rgs-cannon 12s ease-in-out infinite alternate; }
.scn-royal-george-size .crowd { position:absolute; bottom:35%; left:20%; width:60%; height:10%; background: radial-gradient(circle at 10% 50%, #3a2a1a 2px, transparent 2px), radial-gradient(circle at 20% 60%, #4a3a2a 2px, transparent 2px), radial-gradient(circle at 30% 45%, #2a1a0a 2px, transparent 2px), radial-gradient(circle at 40% 55%, #5a4a3a 2px, transparent 2px), radial-gradient(circle at 50% 50%, #3a2a1a 2px, transparent 2px), radial-gradient(circle at 60% 60%, #4a3a2a 2px, transparent 2px), radial-gradient(circle at 70% 45%, #2a1a0a 2px, transparent 2px), radial-gradient(circle at 80% 55%, #5a4a3a 2px, transparent 2px); background-size: 12px 12px; animation: rgs-crowd 4s ease-in-out infinite alternate; }
.scn-royal-george-size .mast { position:absolute; bottom:40%; left:50%; width:2%; height:50%; background: linear-gradient(180deg, #5a3a1a 0%, #3a1a0a 100%); border-radius: 1px; box-shadow: 0 2px 4px rgba(0,0,0,.4); transform-origin: bottom center; animation: rgs-mast 5s ease-in-out infinite; }
@keyframes rgs-sky { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes rgs-sea { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes rgs-hull { 0%,100% { transform: rotate(0) } 50% { transform: rotate(.5deg) } }
@keyframes rgs-cannon { 0% { transform: rotate(0) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-2deg) } }
@keyframes rgs-crowd { 0% { opacity:.7; background-position: 0 0 } 50% { opacity:1; background-position: 4px 2px } 100% { opacity:.8; background-position: -2px -1px } }
@keyframes rgs-mast { 0%,100% { transform: rotate(0) } 50% { transform: rotate(1deg) } }

.scn-dedication-to-lords { background: linear-gradient(180deg, #f5e6c8 0%, #d4b896 100%), radial-gradient(ellipse at 50% 30%, #fff5e0 0%, transparent 70%); }
.scn-dedication-to-lords .bg-layer { position:absolute; inset:0; background: linear-gradient(180deg, #e8d5b0 0%, #c4a882 100%); animation: dl-bg 20s ease-in-out infinite alternate; }
.scn-dedication-to-lords .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #8b6f4e 0%, #6b4f2e 100%); border-radius: 20% 20% 0 0; }
.scn-dedication-to-lords .desk { position:absolute; bottom:25%; left:30%; width:40%; height:12%; background: linear-gradient(180deg, #7a5d3a 0%, #5a3d1a 100%); border-radius: 4px; box-shadow: 0 6px 12px rgba(0,0,0,.3); }
.scn-dedication-to-lords .book { position:absolute; bottom:30%; left:42%; width:16%; height:8%; background: linear-gradient(135deg, #8b4513 0%, #5a2d0e 100%); border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,.4); transform: rotate(-2deg); animation: dl-book 8s ease-in-out infinite alternate; }
.scn-dedication-to-lords .candle { position:absolute; bottom:37%; left:35%; width:6px; height:20px; background: linear-gradient(180deg, #ffe0b0 0%, #c8a060 100%); border-radius: 3px 3px 0 0; }
.scn-dedication-to-lords .flame-glow { position:absolute; bottom:54%; left:35%; width:20px; height:30px; transform: translate(-50%,0); background: radial-gradient(circle, #ffd080 0%, #ffa030 40%, transparent 70%); box-shadow: 0 0 30px 10px #ffa030; animation: dl-flame 2s ease-in-out infinite alternate; }
.scn-dedication-to-lords .figure { position:absolute; bottom:24%; left:20%; width:20px; height:50px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dl-bow 6s ease-in-out infinite; }
.scn-dedication-to-lords .shadow { position:absolute; bottom:22%; left:18%; width:40px; height:10px; background: rgba(0,0,0,.2); border-radius: 50%; filter: blur(4px); animation: dl-shadow 6s ease-in-out infinite; }
@keyframes dl-bg { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.95 } }
@keyframes dl-book { 0% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-1deg) } }
@keyframes dl-flame { 0% { transform: translate(-50%,0) scale(1) } 50% { transform: translate(-50%,-2px) scale(1.1) } 100% { transform: translate(-50%,0) scale(0.95) } }
@keyframes dl-bow { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(5px) rotate(3deg) } 50% { transform: translateX(0) rotate(5deg) } 75% { transform: translateX(-5px) rotate(3deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes dl-shadow { 0% { transform: scale(1) } 50% { transform: scale(1.2) } 100% { transform: scale(1) } }

.scn-dedication-providence { background: linear-gradient(180deg, #f0e0c0 0%, #d0b890 100%), radial-gradient(ellipse at 70% 50%, #fff5e0 0%, transparent 70%); }
.scn-dedication-providence .bg-layer { position:absolute; inset:0; background: linear-gradient(180deg, #e0c8a8 0%, #b89870 100%); animation: dp-bg 25s ease-in-out infinite alternate; }
.scn-dedication-providence .window { position:absolute; top:8%; left:40%; width:20%; height:30%; background: linear-gradient(180deg, #fff9e0 0%, #f0d080 100%); border-radius: 5% 5% 0 0; box-shadow: 0 0 40px 10px rgba(255,240,180,0.5); animation: dp-window 10s ease-in-out infinite alternate; }
.scn-dedication-providence .light-beam { position:absolute; top:10%; left:35%; width:30%; height:70%; background: linear-gradient(180deg, rgba(255,255,220,0.25) 0%, rgba(255,255,220,0) 100%); transform: skewX(-15deg); animation: dp-beam 12s ease-in-out infinite alternate; }
.scn-dedication-providence .floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #8b7050 0%, #604828 100%); border-radius: 30% 30% 0 0; }
.scn-dedication-providence .figure { position:absolute; bottom:22%; left:38%; width:24px; height:40px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 40% 40% 20% 20% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dp-kneel 8s ease-in-out infinite alternate; }
.scn-dedication-providence .book { position:absolute; bottom:24%; left:46%; width:18px; height:12px; background: linear-gradient(135deg, #6b4f2e 0%, #4a3018 100%); border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,.3); transform: rotate(5deg); animation: dp-book 12s ease-in-out infinite alternate; }
.scn-dedication-providence .halo { position:absolute; top:18%; left:35%; width:40px; height:40px; background: radial-gradient(circle, rgba(255,240,180,0.4) 0%, transparent 70%); border-radius: 50%; transform: translate(-50%, -50%); animation: dp-halo 8s ease-in-out infinite alternate; }
@keyframes dp-bg { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes dp-window { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes dp-beam { 0% { opacity:0.2 } 50% { opacity:0.5 } 100% { opacity:0.3 } }
@keyframes dp-kneel { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-3px) rotate(2deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes dp-book { 0% { transform: rotate(5deg) } 50% { transform: rotate(-3deg) } 100% { transform: rotate(2deg) } }
@keyframes dp-halo { 0% { transform: translate(-50%,-50%) scale(1) } 50% { transform: translate(-50%,-50%) scale(1.3) } 100% { transform: translate(-50%,-50%) scale(0.9) } }

.scn-dedication-pardon-request { background: linear-gradient(180deg, #f2dbb0 0%, #c9a470 100%), radial-gradient(ellipse at 50% 40%, #fff5e0 0%, transparent 70%); }
.scn-dedication-pardon-request .bg-layer { position:absolute; inset:0; background: linear-gradient(180deg, #e0c098 0%, #b88858 100%); animation: dpr-bg 22s ease-in-out infinite alternate; }
.scn-dedication-pardon-request .desk { position:absolute; bottom:20%; left:20%; width:60%; height:15%; background: linear-gradient(180deg, #7a5d3a 0%, #5a3d1a 100%); border-radius: 4px; box-shadow: 0 6px 12px rgba(0,0,0,.3); }
.scn-dedication-pardon-request .manuscript { position:absolute; bottom:27%; left:38%; width:22%; height:10%; background: linear-gradient(135deg, #f5e6c8 0%, #d4b896 100%); border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,.2); transform: rotate(-1deg); animation: dpr-paper 10s ease-in-out infinite alternate; }
.scn-dedication-pardon-request .quill { position:absolute; bottom:32%; left:48%; width:4px; height:24px; background: linear-gradient(180deg, #c8a060 0%, #8b6f4e 100%); border-radius: 2px 2px 0 0; transform: rotate(15deg); transform-origin: bottom center; animation: dpr-quill 6s ease-in-out infinite alternate; }
.scn-dedication-pardon-request .inkwell { position:absolute; bottom:28%; left:52%; width:10px; height:12px; background: linear-gradient(180deg, #3a2020 0%, #1a0a0a 100%); border-radius: 50%; box-shadow: 0 2px 4px rgba(0,0,0,.4); }
.scn-dedication-pardon-request .hand { position:absolute; bottom:28%; left:44%; width:14px; height:22px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 40% 40% 20% 20% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dpr-hand 8s ease-in-out infinite; }
.scn-dedication-pardon-request .candle { position:absolute; bottom:38%; left:30%; width:6px; height:18px; background: linear-gradient(180deg, #ffe0b0 0%, #c8a060 100%); border-radius: 3px 3px 0 0; }
.scn-dedication-pardon-request .flame-glow { position:absolute; bottom:53%; left:30%; width:18px; height:28px; transform: translate(-50%,0); background: radial-gradient(circle, #ffd080 0%, #ffa030 40%, transparent 70%); box-shadow: 0 0 25px 8px #ffa030; animation: dpr-flame 2.5s ease-in-out infinite alternate; }
@keyframes dpr-bg { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.95 } }
@keyframes dpr-paper { 0% { transform: rotate(-1deg) } 50% { transform: rotate(3deg) } 100% { transform: rotate(-2deg) } }
@keyframes dpr-quill { 0% { transform: rotate(15deg) } 50% { transform: rotate(20deg) } 100% { transform: rotate(12deg) } }
@keyframes dpr-hand { 0% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(2px) rotate(-2deg) } 50% { transform: translateY(0) rotate(2deg) } 75% { transform: translateY(1px) rotate(-1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes dpr-flame { 0% { transform: translate(-50%,0) scale(1) } 50% { transform: translate(-50%,-2px) scale(1.15) } 100% { transform: translate(-50%,0) scale(0.9) } }

.scn-dedication-signature { background: linear-gradient(180deg, #f0dbb0 0%, #c9a070 100%), radial-gradient(ellipse at 50% 20%, #fff5e0 0%, transparent 70%); }
.scn-dedication-signature .bg-layer { position:absolute; inset:0; background: linear-gradient(180deg, #e0c098 0%, #b88858 100%); animation: ds-bg 24s ease-in-out infinite alternate; }
.scn-dedication-signature .desk { position:absolute; bottom:20%; left:15%; width:70%; height:14%; background: linear-gradient(180deg, #7a5d3a 0%, #5a3d1a 100%); border-radius: 4px; box-shadow: 0 6px 12px rgba(0,0,0,.3); }
.scn-dedication-signature .document { position:absolute; bottom:26%; left:30%; width:30%; height:12%; background: linear-gradient(135deg, #f5e6c8 0%, #d4b896 100%); border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,.2); transform: rotate(0.5deg); animation: ds-doc 14s ease-in-out infinite alternate; }
.scn-dedication-signature .quill { position:absolute; bottom:30%; left:54%; width:4px; height:22px; background: linear-gradient(180deg, #c8a060 0%, #8b6f4e 100%); border-radius: 2px 2px 0 0; transform: rotate(-10deg); transform-origin: bottom center; animation: ds-quill 5s ease-in-out infinite alternate; }
.scn-dedication-signature .hand { position:absolute; bottom:27%; left:50%; width:16px; height:24px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 40% 40% 20% 20% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ds-hand 7s ease-in-out infinite; }
.scn-dedication-signature .seal { position:absolute; bottom:25%; left:42%; width:12px; height:12px; background: radial-gradient(circle, #a0461a 0%, #702243 100%); border-radius: 50%; box-shadow: 0 0 6px 2px rgba(160,70,26,0.4); animation: ds-seal 12s ease-in-out infinite alternate; }
.scn-dedication-signature .light-glow { position:absolute; top:10%; left:35%; width:30%; height:20%; background: radial-gradient(ellipse at center, rgba(255,240,200,0.2) 0%, transparent 70%); animation: ds-light 8s ease-in-out infinite alternate; }
.scn-dedication-signature .shadow { position:absolute; bottom:18%; left:25%; width:50%; height:8px; background: rgba(0,0,0,.15); border-radius: 50%; filter: blur(6px); animation: ds-shadow 10s ease-in-out infinite alternate; }
@keyframes ds-bg { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.95 } }
@keyframes ds-doc { 0% { transform: rotate(0.5deg) } 50% { transform: rotate(-1deg) } 100% { transform: rotate(0.5deg) } }
@keyframes ds-quill { 0% { transform: rotate(-10deg) } 50% { transform: rotate(-15deg) } 100% { transform: rotate(-8deg) } }
@keyframes ds-hand { 0% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(2px) rotate(-2deg) } 50% { transform: translateY(0) rotate(2deg) } 75% { transform: translateY(1px) rotate(-1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes ds-seal { 0% { transform: scale(1) } 50% { transform: scale(1.1) } 100% { transform: scale(0.95) } }
@keyframes ds-light { 0% { opacity:0.3 } 50% { opacity:0.6 } 100% { opacity:0.4 } }
@keyframes ds-shadow { 0% { transform: scale(1) } 50% { transform: scale(1.1) } 100% { transform: scale(0.9) } }

.scn-press-gang-fear {
  background: 
    linear-gradient(180deg, #f7e3c0 0%, #c9a96e 50%, #8b6e4a 100%),
    radial-gradient(ellipse at 30% 60%, #f0d6a0 0%, transparent 70%);
}
.scn-press-gang-fear .sky {
  position: absolute;
  inset: 0 0 55% 0;
  background: linear-gradient(180deg, #ffeedd 0%, #fad5a0 100%);
  animation: pfg-sky 8s ease-in-out infinite alternate;
}
.scn-press-gang-fear .deck {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 55%;
  background: linear-gradient(0deg, #6a4a2e 0%, #8b6e4a 40%, #a8885a 100%);
  clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,.5);
}
.scn-press-gang-fear .mast {
  position: absolute;
  bottom: 50%;
  left: 50%;
  width: 10px;
  height: 45%;
  background: linear-gradient(90deg, #5a3a1a 0%, #7a5a2a 50%, #5a3a1a 100%);
  transform: translateX(-50%);
  border-radius: 4px;
  box-shadow: 2px 0 6px rgba(0,0,0,.3);
}
.scn-press-gang-fear .barrel {
  position: absolute;
  bottom: 20%;
  left: 35%;
  width: 40px;
  height: 45px;
  background: radial-gradient(ellipse at 40% 30%, #a8885a 0%, #6a4a2e 70%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,.6);
  animation: pfg-barrel 3s ease-in-out infinite;
}
.scn-press-gang-fear .figure {
  position: absolute;
  bottom: 18%;
  left: 37%;
  width: 22px;
  height: 40px;
  background: linear-gradient(180deg, #2a1a0e 0%, #1a0e08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pfg-figure 2s ease-in-out infinite;
}
.scn-press-gang-fear .lantern {
  position: absolute;
  bottom: 52%;
  right: 25%;
  width: 14px;
  height: 20px;
  background: radial-gradient(circle, #ffd070 0%, #c08040 70%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 0 20px 6px #c08040, 0 0 40px 12px rgba(192,128,64,.5);
  animation: pfg-lantern 4s ease-in-out infinite alternate;
}
.scn-press-gang-fear .shadow {
  position: absolute;
  bottom: 10%;
  left: 30%;
  width: 60px;
  height: 30px;
  background: rgba(0,0,0,.35);
  border-radius: 50%;
  filter: blur(8px);
  animation: pfg-shadow 3s ease-in-out infinite;
}
@keyframes pfg-sky {
  0% { opacity: .75; }
  50% { opacity: 1; }
  100% { opacity: .8; }
}
@keyframes pfg-barrel {
  0%, 100% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(-2px) rotate(-2deg); }
  50% { transform: translateX(1px) rotate(2deg); }
  75% { transform: translateX(-1px) rotate(-1deg); }
}
@keyframes pfg-figure {
  0%, 100% { transform: translate(0, 0) rotate(0deg) scale(1); }
  30% { transform: translate(2px, -2px) rotate(-3deg) scale(0.98); }
  60% { transform: translate(-1px, -1px) rotate(2deg) scale(1.01); }
}
@keyframes pfg-lantern {
  0% { box-shadow: 0 0 15px 4px #c08040, 0 0 30px 8px rgba(192,128,64,.4); }
  50% { box-shadow: 0 0 25px 8px #ffd060, 0 0 50px 15px rgba(255,208,96,.6); }
  100% { box-shadow: 0 0 18px 5px #c08040, 0 0 35px 10px rgba(192,128,64,.45); }
}
@keyframes pfg-shadow {
  0%, 100% { opacity: 0.4; transform: scale(1); }
  50% { opacity: 0.6; transform: scale(1.05); }
}

.scn-found-and-sport {
  background:
    linear-gradient(180deg, #f0d5a8 0%, #d6b07a 50%, #b88c50 100%),
    radial-gradient(ellipse at 50% 80%, #e8c080 0%, transparent 60%);
}
.scn-found-and-sport .bg-wall {
  position: absolute;
  inset: 0 0 15% 0;
  background: linear-gradient(0deg, #c6a06a 0%, #e8c898 100%);
  clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%);
  box-shadow: inset 0 0 30px rgba(0,0,0,.2);
}
.scn-found-and-sport .floor {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 15%;
  background: linear-gradient(0deg, #6a4a2e 0%, #8b6e4a 100%);
  box-shadow: inset 0 12px 20px rgba(0,0,0,.5);
}
.scn-found-and-sport .figure-victim {
  position: absolute;
  bottom: 28%;
  left: 45%;
  width: 20px;
  height: 50px;
  background: linear-gradient(180deg, #2a1a0e 0%, #1a0e08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: 50% 100%;
  animation: fas-victim 1.5s ease-in-out infinite;
}
.scn-found-and-sport .figure-holder {
  position: absolute;
  bottom: 30%;
  left: 50%;
  width: 28px;
  height: 60px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0e 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%;
  transform: translateX(-50%);
  box-shadow: 2px 0 8px rgba(0,0,0,.4);
  animation: fas-holder 2s ease-in-out infinite;
}
.scn-found-and-sport .onlooker-left {
  position: absolute;
  bottom: 20%;
  left: 15%;
  width: 22px;
  height: 45px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0e 100%);
  border-radius: 50% 50% 40% 40% / 55% 55% 35% 35%;
  box-shadow: -2px 0 6px rgba(0,0,0,.3);
  animation: fas-onlooker 3s ease-in-out infinite;
}
.scn-found-and-sport .onlooker-right {
  position: absolute;
  bottom: 22%;
  right: 12%;
  width: 22px;
  height: 40px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0e 100%);
  border-radius: 50% 50% 40% 40% / 55% 55% 35% 35%;
  box-shadow: 2px 0 6px rgba(0,0,0,.3);
  animation: fas-onlooker 3.5s ease-in-out infinite;
  animation-delay: 1s;
}
.scn-found-and-sport .lamp-light {
  position: absolute;
  bottom: 60%;
  left: 60%;
  width: 20px;
  height: 24px;
  background: radial-gradient(circle, #ffe080 0%, #d09050 70%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 0 30px 8px #d09050, 0 0 60px 18px rgba(208,144,80,.5);
  animation: fas-lamp 3s ease-in-out infinite alternate;
}
@keyframes fas-victim {
  0%, 100% { transform: rotate(0deg) scaleY(1); }
  25% { transform: rotate(8deg) scaleY(1.05); }
  50% { transform: rotate(-5deg) scaleY(0.95); }
  75% { transform: rotate(3deg) scaleY(1.02); }
}
@keyframes fas-holder {
  0%, 100% { transform: translateX(-50%) translateY(0); }
  50% { transform: translateX(-50%) translateY(-3px) rotate(2deg); }
}
@keyframes fas-onlooker {
  0%, 100% { transform: rotate(0deg); }
  50% { transform: rotate(4deg) translateY(-2px); }
}
@keyframes fas-lamp {
  0% { box-shadow: 0 0 20px 5px #d09050, 0 0 40px 12px rgba(208,144,80,.4); }
  50% { box-shadow: 0 0 35px 10px #ffe080, 0 0 70px 20px rgba(255,224,128,.6); }
  100% { box-shadow: 0 0 25px 7px #d09050, 0 0 50px 15px rgba(208,144,80,.45); }
}

.scn-aboard-roebuck {
  background:
    linear-gradient(180deg, #b8d0e8 0%, #f0e8c0 40%, #d0c098 70%, #a08860 100%),
    radial-gradient(ellipse at 50% 30%, #f0f8ff 0%, transparent 60%);
}
.scn-aboard-roebuck .sky-sea {
  position: absolute;
  inset: 0 0 35% 0;
  background: linear-gradient(180deg, #c8ddf0 0%, #e8f0e0 50%, #b0c8a0 100%);
  animation: abr-skysea 15s ease-in-out infinite alternate;
}
.scn-aboard-roebuck .deck {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 35%;
  background: linear-gradient(0deg, #8a6a4a 0%, #b09060 40%, #d0b880 100%);
  box-shadow: inset 0 10px 30px rgba(0,0,0,.3);
  animation: abr-deck 20s ease-in-out infinite;
}
.scn-aboard-roebuck .mast {
  position: absolute;
  bottom: 40%;
  left: 55%;
  width: 8px;
  height: 50%;
  background: linear-gradient(90deg, #5a3a1a 0%, #7a5a2a 50%, #5a3a1a 100%);
  transform: translateX(-50%);
  border-radius: 4px;
  animation: abr-mast 12s ease-in-out infinite;
}
.scn-aboard-roebuck .sail-fore {
  position: absolute;
  bottom: 55%;
  left: 58%;
  width: 60px;
  height: 40px;
  background: linear-gradient(135deg, #f0ece0 0%, #e0d0b0 70%);
  clip-path: polygon(10% 0%, 90% 0%, 100% 100%, 0% 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 10% 10%;
  box-shadow: 0 4px 10px rgba(0,0,0,.15);
  animation: abr-sail 8s ease-in-out infinite;
}
.scn-aboard-roebuck .sail-aft {
  position: absolute;
  bottom: 50%;
  left: 40%;
  width: 50px;
  height: 50px;
  background: linear-gradient(225deg, #f0ece0 0%, #d8c8a8 70%);
  clip-path: polygon(15% 0%, 85% 0%, 100% 100%, 0% 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 10% 10%;
  box-shadow: 0 4px 10px rgba(0,0,0,.15);
  animation: abr-sail 10s ease-in-out infinite;
  animation-delay: 4s;
}
.scn-aboard-roebuck .figure-master {
  position: absolute;
  bottom: 28%;
  left: 25%;
  width: 24px;
  height: 50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 2px 0 8px rgba(0,0,0,.3);
  animation: abr-figure 6s ease-in-out infinite;
}
.scn-aboard-roebuck .figure-boy {
  position: absolute;
  bottom: 25%;
  left: 35%;
  width: 18px;
  height: 36px;
  background: linear-gradient(180deg, #2a1a0e 0%, #1a0e08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: abr-figure 7s ease-in-out infinite;
  animation-delay: 2s;
}
.scn-aboard-roebuck .flag {
  position: absolute;
  bottom: 80%;
  right: 12%;
  width: 30px;
  height: 20px;
  background: linear-gradient(45deg, #6a4a2e 0%, #a08050 50%, #6a4a2e 100%);
  clip-path: polygon(0% 0%, 100% 30%, 100% 70%, 0% 100%);
  animation: abr-flag 10s ease-in-out infinite;
}
@keyframes abr-skysea {
  0% { opacity: .9; }
  50% { opacity: 1; }
  100% { opacity: .95; }
}
@keyframes abr-deck {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
}
@keyframes abr-mast {
  0%, 100% { transform: translateX(-50%) rotate(0deg); }
  50% { transform: translateX(-50%) rotate(1deg); }
}
@keyframes abr-sail {
  0%, 100% { transform: scale(1) rotate(0deg); }
  50% { transform: scale(1.02) rotate(2deg); }
}
@keyframes abr-figure {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-1px) rotate(1deg); }
}
@keyframes abr-flag {
  0%, 100% { transform: scaleX(1) skewX(0deg); }
  50% { transform: scaleX(0.95) skewX(5deg); }
}

.scn-longing-for-battle {
  background:
    linear-gradient(180deg, #f0e0b0 0%, #d0b880 30%, #a89060 100%),
    radial-gradient(ellipse at 40% 60%, #ffe0a0 0%, transparent 70%);
}
.scn-longing-for-battle .sky {
  position: absolute;
  inset: 0 0 40% 0;
  background: linear-gradient(180deg, #fce4c0 0%, #f0c898 60%, #d0a870 100%);
  animation: lfb-sky 12s ease-in-out infinite alternate;
}
.scn-longing-for-battle .sea {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 40%;
  background: linear-gradient(0deg, #7a9a8a 0%, #a8b8a0 50%, #c0c8b0 100%);
  box-shadow: inset 0 10px 30px rgba(0,0,0,.3);
  animation: lfb-sea 6s ease-in-out infinite;
}
.scn-longing-for-battle .deck {
  position: absolute;
  bottom: 15%;
  left: 10%;
  right: 10%;
  height: 35%;
  background: linear-gradient(0deg, #8a6a4a 0%, #b09060 100%);
  clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%);
  box-shadow: inset 0 10px 30px rgba(0,0,0,.4);
}
.scn-longing-for-battle .cannon-left {
  position: absolute;
  bottom: 18%;
  left: 20%;
  width: 40px;
  height: 20px;
  background: radial-gradient(ellipse at 50% 50%, #4a3a2a 0%, #2a1a0e 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  box-shadow: 0 4px 10px rgba(0,0,0,.6);
  animation: lfb-cannon 5s ease-in-out infinite;
}
.scn-longing-for-battle .cannon-right {
  position: absolute;
  bottom: 22%;
  right: 25%;
  width: 40px;
  height: 20px;
  background: radial-gradient(ellipse at 50% 50%, #4a3a2a 0%, #2a1a0e 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  box-shadow: 0 4px 10px rgba(0,0,0,.6);
  animation: lfb-cannon 5s ease-in-out infinite;
  animation-delay: 2.5s;
}
.scn-longing-for-battle .figure-boy {
  position: absolute;
  bottom: 30%;
  left: 50%;
  width: 22px;
  height: 48px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  box-shadow: 2px 0 8px rgba(0,0,0,.4);
  animation: lfb-boy 3s ease-in-out infinite;
}
.scn-longing-for-battle .flag {
  position: absolute;
  bottom: 75%;
  right: 10%;
  width: 35px;
  height: 25px;
  background: linear-gradient(45deg, #5a3a1a 0%, #8a6a3a 50%, #5a3a1a 100%);
  clip-path: polygon(0% 0%, 100% 20%, 100% 80%, 0% 100%);
  animation: lfb-flag 4s ease-in-out infinite;
}
.scn-longing-for-battle .clouds {
  position: absolute;
  top: 5%;
  left: -10%;
  width: 120%;
  height: 30%;
  background: linear-gradient(180deg, rgba(255,255,240,0.4) 0%, transparent 100%);
  filter: blur(10px);
  animation: lfb-clouds 40s linear infinite;
}
@keyframes lfb-sky {
  0% { opacity: .8; }
  50% { opacity: 1; }
  100% { opacity: .85; }
}
@keyframes lfb-sea {
  0%, 100% { transform: translateY(0) scaleY(1); }
  25% { transform: translateY(-2px) scaleY(1.02); }
  50% { transform: translateY(1px) scaleY(0.98); }
  75% { transform: translateY(-1px) scaleY(1.01); }
}
@keyframes lfb-cannon {
  0%, 100% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(3px) rotate(-3deg); }
}
@keyframes lfb-boy {
  0%, 100% { transform: translateX(-50%) translateY(0) rotate(0deg); }
  30% { transform: translateX(-50%) translateY(-2px) rotate(2deg) scale(1.02); }
  60% { transform: translateX(-50%) translateY(-1px) rotate(-1deg) scale(0.98); }
}
@keyframes lfb-flag {
  0%, 100% { transform: scaleX(1) skewX(0deg); }
  25% { transform: scaleX(1.08) skewX(-5deg); }
  50% { transform: scaleX(0.95) skewX(4deg); }
  75% { transform: scaleX(1.05) skewX(-3deg); }
}
@keyframes lfb-clouds {
  0% { transform: translateX(-20%); }
  100% { transform: translateX(20%); }
}

.scn-hughes-christians { background: linear-gradient(180deg, #0d0d1a 0%, #1a1a2e 40%, #2a1a1a 100%), radial-gradient(ellipse at 30% 20%, #3a2a1a 0%, transparent 60%); }
.scn-hughes-christians .sky-night { position:absolute; inset:0 0 60% 0; background: linear-gradient(180deg, #0d0d1a 0%, #1a1a2e 100%); animation: hc-sky 15s ease-in-out infinite alternate; }
.scn-hughes-christians .ocean { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #0a2a2a 0%, #051515 100%); border-radius: 80% 20% 0 0; animation: hc-ocean 8s ease-in-out infinite; }
.scn-hughes-christians .ship-hull { position:absolute; bottom:30%; left:20%; width:60%; height:20%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0f0a 100%); border-radius: 10% 10% 30% 30% / 40% 40% 20% 20%; box-shadow: inset 0 4px 8px rgba(0,0,0,.6); }
.scn-hughes-christians .ship-deck { position:absolute; bottom:calc(30% + 18%); left:22%; width:56%; height:8%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:4px; box-shadow:0 2px 4px rgba(0,0,0,.5); }
.scn-hughes-christians .captain-figure { position:absolute; bottom:calc(30% + 26%); left:45%; width:16px; height:36px; background: linear-gradient(180deg, #1a0f0a 0%, #0a0500 100%); border-radius: 50% 40% 40% 40% / 60% 50% 50% 40%; transform-origin: bottom; animation: hc-captain 3s ease-in-out infinite; }
.scn-hughes-christians .crew-figure { position:absolute; bottom:calc(30% + 24%); left:55%; width:14px; height:30px; background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%); border-radius: 50% 40% 40% 40% / 60% 50% 50% 40%; animation: hc-crew 4s ease-in-out infinite alternate; }
.scn-hughes-christians .mast { position:absolute; bottom:calc(30% + 16%); left:38%; width:6px; height:80px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0f0a 100%); border-radius:2px; transform:rotate(-2deg); }
.scn-hughes-christians .rope { position:absolute; bottom:calc(30% + 20%); left:38%; width:2px; height:40px; background:#4a3a2a; transform-origin:top; animation: hc-rope 2s ease-in-out infinite; }
@keyframes hc-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes hc-ocean { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(2px) } }
@keyframes hc-captain { 0% { transform: translateX(0) rotate(-5deg) } 50% { transform: translateX(2px) rotate(5deg) } 100% { transform: translateX(0) rotate(-5deg) } }
@keyframes hc-crew { 0% { transform: translateX(0) } 50% { transform: translateX(-3px) } 100% { transform: translateX(2px) } }
@keyframes hc-rope { 0% { transform: rotate(0deg) } 50% { transform: rotate(3deg) } 100% { transform: rotate(-2deg) } }

.scn-tied-and-hoisted { background: linear-gradient(180deg, #0a0a0d 0%, #12121a 50%, #1a1a24 100%), radial-gradient(ellipse at 50% 10%, #2a2a3a 0%, transparent 70%); }
.scn-tied-and-hoisted .bg-darkwood { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 80%, #1a1a24 0%, #0a0a0d 100%); }
.scn-tied-and-hoisted .beam { position:absolute; top:5%; left:15%; right:15%; height:6%; background: linear-gradient(180deg, #3a2a2a 0%, #1a1010 100%); border-radius:4px; box-shadow:0 2px 6px rgba(0,0,0,.7); }
.scn-tied-and-hoisted .rope-l { position:absolute; top:11%; left:38%; width:3px; height:35%; background: #4a3a3a; transform-origin: top; animation: th-rope-l 3s ease-in-out infinite; }
.scn-tied-and-hoisted .rope-r { position:absolute; top:11%; right:38%; width:3px; height:35%; background: #4a3a3a; transform-origin: top; animation: th-rope-r 3s ease-in-out infinite; }
.scn-tied-and-hoisted .body-hanging { position:absolute; top:44%; left:50%; width:20px; height:40px; transform:translateX(-50%); background: linear-gradient(180deg, #1a1010 0%, #0a0505 100%); border-radius: 50% 40% 30% 30% / 60% 50% 40% 40%; animation: th-body 4s ease-in-out infinite; }
.scn-tied-and-hoisted .shadow { position:absolute; bottom:10%; left:40%; width:20%; height:4%; background: rgba(0,0,0,.5); border-radius:50%; filter:blur(3px); animation: th-shadow 4s ease-in-out infinite alternate; }
.scn-tied-and-hoisted .light-source { position:absolute; bottom:15%; left:20%; width:12px; height:12px; background: radial-gradient(circle, #b08040 0%, #5a3a1a 70%, transparent 100%); border-radius:50%; box-shadow: 0 0 20px 8px rgba(176,128,64,.3); animation: th-light 2s ease-in-out infinite alternate; }
@keyframes th-rope-l { 0%,100% { transform: rotate(0deg) } 50% { transform: rotate(4deg) } }
@keyframes th-rope-r { 0%,100% { transform: rotate(0deg) } 50% { transform: rotate(-4deg) } }
@keyframes th-body { 0% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-4px) } 100% { transform: translateX(-50%) translateY(4px) } }
@keyframes th-shadow { 0% { opacity:.3; transform: scale(1) } 100% { opacity:.6; transform: scale(1.1) } }
@keyframes th-light { 0% { opacity:.6; box-shadow: 0 0 12px 4px rgba(176,128,64,.3) } 100% { opacity:1; box-shadow: 0 0 28px 10px rgba(176,128,64,.5) } }

.scn-musket-threat { background: linear-gradient(180deg, #0d0d0d 0%, #1a1212 50%, #2a1a1a 100%), radial-gradient(ellipse at 40% 60%, #2a1a1a 0%, transparent 70%); }
.scn-musket-threat .bg-cabin { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 80%, #1a1212 0%, #0a0606 100%); }
.scn-musket-threat .table { position:absolute; bottom:10%; left:25%; right:25%; height:8%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0f0a 100%); border-radius:4px; box-shadow:0 -2px 6px rgba(0,0,0,.6); }
.scn-musket-threat .musket-barrel { position:absolute; bottom:18%; left:48%; width:4px; height:40%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); transform-origin: bottom; transform: rotate(-20deg); border-radius:2px; box-shadow:0 0 4px rgba(0,0,0,.5); animation: mt-musket 2s ease-in-out infinite alternate; }
.scn-musket-threat .tyrant-figure { position:absolute; bottom:20%; left:45%; width:18px; height:45px; background: linear-gradient(180deg, #1a0f0a 0%, #0a0500 100%); border-radius: 50% 40% 40% 40% / 60% 50% 50% 40%; transform-origin: bottom; animation: mt-tyrant 3s ease-in-out infinite; }
.scn-musket-threat .protagonist-figure { position:absolute; bottom:8%; left:35%; width:16px; height:28px; background: linear-gradient(180deg, #1a0a0a 0%, #0a0000 100%); border-radius: 50% 40% 40% 40% / 60% 50% 50% 40%; transform: scaleY(0.6); animation: mt-protagonist 2s ease-in-out infinite alternate; }
.scn-musket-threat .chains { position:absolute; bottom:5%; left:33%; width:20px; height:3px; background: #5a4a4a; border-radius:2px; animation: mt-chains 3s ease-in-out infinite; }
.scn-musket-threat .cabin-light { position:absolute; top:15%; right:20%; width:10px; height:10px; background: radial-gradient(circle, #c08040 0%, #5a3a1a 70%, transparent 100%); border-radius:50%; box-shadow:0 0 16px 6px rgba(192,128,64,.4); animation: mt-light 2s ease-in-out infinite alternate; }
@keyframes mt-musket { 0% { transform: rotate(-20deg) } 50% { transform: rotate(-15deg) } 100% { transform: rotate(-20deg) } }
@keyframes mt-tyrant { 0% { transform: translateX(0) } 50% { transform: translateX(2px) } 100% { transform: translateX(0) } }
@keyframes mt-protagonist { 0% { transform: scaleY(0.6) translateX(0) } 100% { transform: scaleY(0.55) translateX(-2px) } }
@keyframes mt-chains { 0% { transform: translateX(0) } 50% { transform: translateX(3px) } 100% { transform: translateX(0) } }
@keyframes mt-light { 0% { opacity:.5; box-shadow: 0 0 10px 3px rgba(192,128,64,.3) } 100% { opacity:1; box-shadow: 0 0 24px 8px rgba(192,128,64,.6) } }

.scn-slaves-slacken-rope { background: linear-gradient(180deg, #0d0d12 0%, #14141e 40%, #1a1a28 100%), radial-gradient(ellipse at 20% 30%, #2a2a3a 0%, transparent 60%); }
.scn-slaves-slacken-rope .bg-night { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 80%, #1a1a28 0%, #0a0a12 100%); }
.scn-slaves-slacken-rope .beam-sr { position:absolute; top:8%; left:20%; right:20%; height:5%; background: linear-gradient(180deg, #3a2a2a 0%, #1a1010 100%); border-radius:4px; box-shadow:0 2px 6px rgba(0,0,0,.7); }
.scn-slaves-slacken-rope .rope-tight { position:absolute; top:13%; left:45%; width:3px; height:30%; background: #4a3a3a; transform-origin: top; animation: sr-rope-tight 2s ease-in-out infinite; }
.scn-slaves-slacken-rope .hanging-body { position:absolute; top:42%; left:50%; width:18px; height:36px; transform:translateX(-50%); background: linear-gradient(180deg, #1a1010 0%, #0a0505 100%); border-radius: 50% 40% 30% 30% / 60% 50% 40% 40%; animation: sr-body 6s ease-in-out infinite; }
.scn-slaves-slacken-rope .slave-figure-1 { position:absolute; bottom:20%; left:35%; width:15px; height:32px; background: linear-gradient(180deg, #2a1a1a 0%, #0a0500 100%); border-radius: 50% 40% 40% 40% / 60% 50% 50% 40%; transform-origin: bottom; animation: sr-slave1 4s ease-in-out infinite alternate; }
.scn-slaves-slacken-rope .slave-figure-2 { position:absolute; bottom:20%; right:35%; width:15px; height:32px; background: linear-gradient(180deg, #2a1a1a 0%, #0a0500 100%); border-radius: 50% 40% 40% 40% / 60% 50% 50% 40%; transform-origin: bottom; animation: sr-slave2 4s ease-in-out infinite alternate; animation-delay:1s; }
.scn-slaves-slacken-rope .slack-rope { position:absolute; top:40%; left:43%; width:14%; height:3px; background: #4a3a3a; border-radius:2px; transform: rotate(5deg); animation: sr-slack 3s ease-in-out infinite; }
.scn-slaves-slacken-rope .moonlight { position:absolute; top:5%; right:15%; width:20px; height:20px; background: radial-gradient(circle, rgba(180,180,220,0.6) 0%, transparent 70%); border-radius:50%; box-shadow:0 0 30px 15px rgba(180,180,220,0.3); animation: sr-moonlight 10s ease-in-out infinite alternate; }
@keyframes sr-rope-tight { 0%,100% { transform: rotate(0deg) } 50% { transform: rotate(10deg) } }
@keyframes sr-body { 0% { transform: translateX(-50%) translateY(0) rotate(0deg) } 30% { transform: translateX(-50%) translateY(-6px) rotate(-2deg) } 70% { transform: translateX(-50%) translateY(2px) rotate(3deg) } 100% { transform: translateX(-50%) translateY(0) rotate(0deg) } }
@keyframes sr-slave1 { 0% { transform: translateY(0) } 100% { transform: translateY(-8px) } }
@keyframes sr-slave2 { 0% { transform: translateY(0) } 100% { transform: translateY(-8px) } }
@keyframes sr-slack { 0% { transform: rotate(5deg) scaleX(1) } 50% { transform: rotate(15deg) scaleX(1.1) } 100% { transform: rotate(5deg) scaleX(1) } }
@keyframes sr-moonlight { 0% { opacity:.3; transform: scale(1) } 100% { opacity:.7; transform: scale(1.2) } }

.scn-waiting-for-daybreak { background: linear-gradient(180deg, #0f0f2a 0%, #1a1a3e 50%, #2a1a3a 100%), radial-gradient(ellipse at 50% 100%, #3a2a4a 0%, transparent 70%); position: relative; overflow: hidden; }
.scn-waiting-for-daybreak .sky { position: absolute; inset: 0 0 45% 0; background: linear-gradient(180deg, #141430 0%, #1e1e3e 100%); animation: wfd-sky 8s ease-in-out infinite alternate; }
.scn-waiting-for-daybreak .sea { position: absolute; bottom: 0; left: 0; right: 0; height: 45%; background: linear-gradient(180deg, #1a2a3a 0%, #0f1a2a 100%); border-radius: 30% 40% 0 0 / 20% 30% 0 0; animation: wfd-sea 12s ease-in-out infinite alternate; }
.scn-waiting-for-daybreak .boat { position: absolute; bottom: 35%; left: 20%; width: 120px; height: 40px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 20% 20% 40% 40% / 30% 30% 60% 60%; transform-origin: center bottom; animation: wfd-boat 6s ease-in-out infinite; }
.scn-waiting-for-daybreak .figure-left { position: absolute; bottom: 36%; left: 25%; width: 18px; height: 35px; background: linear-gradient(180deg, #2a2a2a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: wfd-figure1 4s ease-in-out infinite; }
.scn-waiting-for-daybreak .figure-right { position: absolute; bottom: 36%; left: 35%; width: 18px; height: 35px; background: linear-gradient(180deg, #2a2a2a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: wfd-figure2 3.5s ease-in-out infinite 1s; }
.scn-waiting-for-daybreak .lantern { position: absolute; bottom: 40%; left: 30%; width: 8px; height: 8px; background: radial-gradient(circle, #e0a060 0%, #b07040 70%); border-radius: 50%; box-shadow: 0 0 20px 6px #c08040, 0 0 40px 12px rgba(192,128,64,0.4); animation: wfd-lantern 2s ease-in-out infinite alternate; }
.scn-waiting-for-daybreak .cloud-a { position: absolute; top: 20%; left: 10%; width: 80px; height: 16px; background: linear-gradient(180deg, rgba(200,200,220,0.3) 0%, rgba(200,200,220,0.05) 100%); border-radius: 50%; filter: blur(4px); animation: wfd-drift 40s linear infinite; }
.scn-waiting-for-daybreak .cloud-b { position: absolute; top: 28%; right: 15%; width: 60px; height: 12px; background: linear-gradient(180deg, rgba(200,200,220,0.2) 0%, rgba(200,200,220,0.02) 100%); border-radius: 50%; filter: blur(3px); animation: wfd-drift 50s linear infinite reverse; }
@keyframes wfd-sky { 0% { opacity: 0.6; } 50% { opacity: 0.8; } 100% { opacity: 0.5; } }
@keyframes wfd-sea { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-4px) scaleY(0.98); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes wfd-boat { 0% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(2deg) translateY(-3px); } 100% { transform: rotate(-2deg) translateY(0); } }
@keyframes wfd-figure1 { 0% { transform: rotate(-3deg) translateY(0); } 50% { transform: rotate(4deg) translateY(-2px); } 100% { transform: rotate(-3deg) translateY(0); } }
@keyframes wfd-figure2 { 0% { transform: rotate(5deg) translateX(2px); } 50% { transform: rotate(-5deg) translateX(-2px); } 100% { transform: rotate(5deg) translateX(2px); } }
@keyframes wfd-lantern { 0% { box-shadow: 0 0 14px 4px #c08040, 0 0 28px 8px rgba(192,128,64,0.3); opacity: 0.8; } 50% { box-shadow: 0 0 22px 8px #ffb060, 0 0 44px 16px rgba(255,176,96,0.5); opacity: 1; } 100% { box-shadow: 0 0 16px 5px #c08040, 0 0 32px 10px rgba(192,128,64,0.35); opacity: 0.85; } }
@keyframes wfd-drift { 0% { transform: translateX(0) translateY(0); } 50% { transform: translateX(20vw) translateY(2px); } 100% { transform: translateX(40vw) translateY(0); } }

.scn-reef-boat-struggle { background: linear-gradient(180deg, #4a8ac0 0%, #6ab0e0 40%, #8ac8f0 70%, #b0d8f8 100%), radial-gradient(ellipse at 50% 100%, #e0f0ff 0%, transparent 70%); position: relative; overflow: hidden; }
.scn-reef-boat-struggle .sky { position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #58a0d0 0%, #7ab8e0 100%); animation: rbs-sky 10s ease-in-out infinite alternate; }
.scn-reef-boat-struggle .sea { position: absolute; bottom: 0; left: 0; right: 0; height: 50%; background: linear-gradient(180deg, #3a7a9a 0%, #1a4a6a 100%); border-radius: 50% 60% 0 0 / 30% 40% 0 0; animation: rbs-sea 8s ease-in-out infinite alternate; }
.scn-reef-boat-struggle .reef-left { position: absolute; bottom: 40%; left: 10%; width: 80px; height: 30px; background: radial-gradient(ellipse at 50% 100%, #6a4a2a 0%, #3a2a1a 100%); border-radius: 50% 50% 0 0 / 70% 70% 0 0; transform: rotate(10deg); animation: rbs-reef 15s ease-in-out infinite; }
.scn-reef-boat-struggle .reef-right { position: absolute; bottom: 42%; right: 15%; width: 90px; height: 25px; background: radial-gradient(ellipse at 50% 100%, #7a5a3a 0%, #4a3a2a 100%); border-radius: 50% 50% 0 0 / 60% 60% 0 0; transform: rotate(-8deg); animation: rbs-reef 13s ease-in-out infinite 3s; }
.scn-reef-boat-struggle .boat { position: absolute; bottom: 32%; left: 35%; width: 100px; height: 35px; background: linear-gradient(180deg, #5a3a1a 0%, #2a1a0a 100%); border-radius: 20% 20% 40% 40% / 40% 40% 60% 60%; transform-origin: center bottom; animation: rbs-boat 5s ease-in-out infinite; }
.scn-reef-boat-struggle .figure-push { position: absolute; bottom: 33%; left: 40%; width: 20px; height: 38px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rbs-push 3s ease-in-out infinite; }
.scn-reef-boat-struggle .figure-pull { position: absolute; bottom: 33%; left: 48%; width: 20px; height: 38px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rbs-pull 3.2s ease-in-out infinite 0.5s; }
.scn-reef-boat-struggle .wave-1 { position: absolute; bottom: 20%; left: 0; right: 0; height: 15%; background: linear-gradient(180deg, rgba(255,255,255,0.3) 0%, rgba(255,255,255,0.05) 100%); border-radius: 50% 50% 30% 30% / 80% 80% 40% 40%; filter: blur(3px); animation: rbs-wave 4s ease-in-out infinite; }
.scn-reef-boat-struggle .wave-2 { position: absolute; bottom: 12%; left: 0; right: 0; height: 10%; background: linear-gradient(180deg, rgba(255,255,255,0.2) 0%, transparent 100%); border-radius: 50% 50% 20% 20% / 60% 60% 30% 30%; filter: blur(2px); animation: rbs-wave 5s ease-in-out infinite 1s; }
@keyframes rbs-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes rbs-sea { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-5px) scaleY(0.97); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes rbs-reef { 0% { transform: rotate(10deg) scaleY(1); } 50% { transform: rotate(8deg) scaleY(0.95); } 100% { transform: rotate(10deg) scaleY(1); } }
@keyframes rbs-boat { 0% { transform: rotate(-3deg) translateY(0); } 50% { transform: rotate(2deg) translateY(-4px); } 100% { transform: rotate(-3deg) translateY(0); } }
@keyframes rbs-push { 0% { transform: translateX(0) rotate(-5deg); } 50% { transform: translateX(8px) rotate(5deg); } 100% { transform: translateX(0) rotate(-5deg); } }
@keyframes rbs-pull { 0% { transform: translateX(0) rotate(5deg); } 50% { transform: translateX(-8px) rotate(-5deg); } 100% { transform: translateX(0) rotate(5deg); } }
@keyframes rbs-wave { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-6px) scaleX(0.95); } 100% { transform: translateY(0) scaleX(1); } }

.scn-skin-torn-hands { background: linear-gradient(180deg, #b0c8d0 0%, #d0e0e8 40%, #a0b8c0 100%), radial-gradient(ellipse at 50% 80%, #e8f0f8 0%, transparent 80%); position: relative; overflow: hidden; }
.scn-skin-torn-hands .sky { position: absolute; inset: 0 0 50% 0; background: linear-gradient(180deg, #c8d8e0 0%, #e0ecf0 100%); animation: sth-sky 12s ease-in-out infinite alternate; }
.scn-skin-torn-hands .sea { position: absolute; bottom: 0; left: 0; right: 0; height: 55%; background: linear-gradient(180deg, #608090 0%, #30506a 100%); border-radius: 40% 60% 0 0 / 30% 40% 0 0; animation: sth-sea 10s ease-in-out infinite alternate; }
.scn-skin-torn-hands .boat { position: absolute; bottom: 35%; left: 10%; width: 140px; height: 45px; background: linear-gradient(180deg, #5a3a1a 0%, #2a1a0a 100%); border-radius: 20% 20% 40% 40% / 35% 35% 60% 60%; transform-origin: center bottom; animation: sth-boat 6s ease-in-out infinite; }
.scn-skin-torn-hands .hand-left { position: absolute; bottom: 38%; left: 18%; width: 30px; height: 50px; background: linear-gradient(180deg, #b87878 0%, #8a5a5a 100%); border-radius: 40% 40% 50% 50% / 30% 30% 60% 60%; transform-origin: bottom center; animation: sth-hand-l 3s ease-in-out infinite; }
.scn-skin-torn-hands .hand-right { position: absolute; bottom: 38%; right: 20%; width: 30px; height: 50px; background: linear-gradient(180deg, #b87878 0%, #8a5a5a 100%); border-radius: 40% 40% 50% 50% / 30% 30% 60% 60%; transform-origin: bottom center; animation: sth-hand-r 3.2s ease-in-out infinite 0.4s; }
.scn-skin-torn-hands .rope { position: absolute; bottom: 45%; left: 20%; right: 22%; height: 4px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 2px; transform-origin: center; animation: sth-rope 4s ease-in-out infinite; }
.scn-skin-torn-hands .oar { position: absolute; bottom: 40%; left: 25%; width: 80px; height: 8px; background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%); border-radius: 50% / 100% 100% 0 0; transform: rotate(-20deg); transform-origin: left center; animation: sth-oar 3.5s ease-in-out infinite; }
@keyframes sth-sky { 0% { opacity: 0.6; } 50% { opacity: 0.9; } 100% { opacity: 0.7; } }
@keyframes sth-sea { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-3px) scaleY(0.98); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes sth-boat { 0% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(1deg) translateY(-2px); } 100% { transform: rotate(-2deg) translateY(0); } }
@keyframes sth-hand-l { 0% { transform: translateY(0) rotate(5deg); } 50% { transform: translateY(-8px) rotate(-5deg); } 100% { transform: translateY(0) rotate(5deg); } }
@keyframes sth-hand-r { 0% { transform: translateY(0) rotate(-5deg); } 50% { transform: translateY(-8px) rotate(5deg); } 100% { transform: translateY(0) rotate(-5deg); } }
@keyframes sth-rope { 0% { transform: scaleX(1); } 50% { transform: scaleX(0.9); } 100% { transform: scaleX(1); } }
@keyframes sth-oar { 0% { transform: rotate(-20deg) translateX(0); } 50% { transform: rotate(-15deg) translateX(5px); } 100% { transform: rotate(-20deg) translateX(0); } }

.scn-all-saved-thirty-two { background: linear-gradient(180deg, #f0d0a0 0%, #f8e0c0 40%, #e8c088 100%), radial-gradient(ellipse at 50% 80%, #ffddbb 0%, transparent 70%); position: relative; overflow: hidden; }
.scn-all-saved-thirty-two .sky { position: absolute; inset: 0 0 45% 0; background: linear-gradient(180deg, #f8d8a8 0%, #ffe0b0 100%); animation: ast-sky 14s ease-in-out infinite alternate; }
.scn-all-saved-thirty-two .shore { position: absolute; bottom: 0; left: 0; right: 0; height: 30%; background: linear-gradient(180deg, #d0a870 0%, #c09050 100%); border-radius: 40% 60% 0 0 / 50% 70% 0 0; animation: ast-shore 8s ease-in-out infinite alternate; }
.scn-all-saved-thirty-two .sea { position: absolute; bottom: 30%; left: 0; right: 0; height: 35%; background: linear-gradient(180deg, #70a0b0 0%, #508090 100%); animation: ast-sea 10s ease-in-out infinite alternate; }
.scn-all-saved-thirty-two .boat { position: absolute; bottom: 32%; left: 30%; width: 100px; height: 35px; background: linear-gradient(180deg, #5a3a1a 0%, #2a1a0a 100%); border-radius: 20% 20% 40% 40% / 40% 40% 60% 60%; transform-origin: center bottom; animation: ast-boat 6s ease-in-out infinite; }
.scn-all-saved-thirty-two .figure-arm { position: absolute; bottom: 34%; left: 35%; width: 18px; height: 36px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ast-figure1 4s ease-in-out infinite; }
.scn-all-saved-thirty-two .figure-embrace { position: absolute; bottom: 34%; left: 42%; width: 18px; height: 36px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ast-figure2 4.2s ease-in-out infinite 0.5s; }
.scn-all-saved-thirty-two .flag { position: absolute; bottom: 45%; left: 45%; width: 14px; height: 20px; background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%); border-radius: 20% 20% 40% 40% / 30% 30% 50% 50%; transform-origin: bottom center; animation: ast-flag 3s ease-in-out infinite; }
.scn-all-saved-thirty-two .wave-1 { position: absolute; bottom: 20%; left: 0; right: 0; height: 12%; background: linear-gradient(180deg, rgba(255,255,255,0.2) 0%, transparent 100%); border-radius: 50% 50% 20% 20% / 70% 70% 30% 30%; filter: blur(2px); animation: ast-wave 6s ease-in-out infinite; }
.scn-all-saved-thirty-two .wave-2 { position: absolute; bottom: 10%; left: 0; right: 0; height: 8%; background: linear-gradient(180deg, rgba(255,255,255,0.15) 0%, transparent 100%); border-radius: 50% 50% 10% 10% / 50% 50% 20% 20%; filter: blur(2px); animation: ast-wave 7s ease-in-out infinite 2s; }
@keyframes ast-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes ast-shore { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-2px) scaleY(0.98); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes ast-sea { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-4px) scaleY(0.97); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes ast-boat { 0% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(1deg) translateY(-3px); } 100% { transform: rotate(-2deg) translateY(0); } }
@keyframes ast-figure1 { 0% { transform: rotate(-10deg) translateX(0); } 50% { transform: rotate(10deg) translateX(5px); } 100% { transform: rotate(-10deg) translateX(0); } }
@keyframes ast-figure2 { 0% { transform: rotate(10deg) translateX(0); } 50% { transform: rotate(-10deg) translateX(-5px); } 100% { transform: rotate(10deg) translateX(0); } }
@keyframes ast-flag { 0% { transform: rotate(-15deg) scaleY(1); } 50% { transform: rotate(15deg) scaleY(1.1); } 100% { transform: rotate(-15deg) scaleY(1); } }
@keyframes ast-wave { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-5px) scaleX(0.9); } 100% { transform: translateY(0) scaleX(1); } }

/* --- fear-of-flogging --- */
.scn-fear-of-flogging {
  background: linear-gradient(180deg, #d4a574 0%, #8b5a3a 40%, #4a2a1a 100%),
              radial-gradient(ellipse at 30% 50%, #f0d080 0%, transparent 60%);
}
.scn-fear-of-flogging .wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(90deg, #b08050 0%, #c09060 30%, #a07040 100%);
  animation: fof-wall 10s ease-in-out infinite alternate;
}
.scn-fear-of-flogging .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2010 100%);
}
.scn-fear-of-flogging .window {
  position: absolute; top: 12%; left: 30%; width: 50px; height: 60px;
  background: radial-gradient(circle, #ffe0a0 0%, #d0a050 70%);
  border-radius: 4px; box-shadow: 0 0 30px 10px rgba(255,200,100,.6);
  animation: fof-glow 3s ease-in-out infinite alternate;
}
.scn-fear-of-flogging .lightbeam {
  position: absolute; top: 30%; left: 35%; width: 30px; height: 50%;
  background: linear-gradient(180deg, rgba(255,220,150,.35) 0%, transparent 100%);
  transform: skewX(-8deg); filter: blur(6px);
  animation: fof-beam 4s ease-in-out infinite alternate;
}
.scn-fear-of-flogging .figure-fof {
  position: absolute; bottom: 18%; left: 55%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: fof-cower 1.5s ease-in-out infinite;
}
.scn-fear-of-flogging .overseer {
  position: absolute; bottom: 20%; left: 20%; width: 28px; height: 70px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: fof-threat 3s ease-in-out infinite;
}
.scn-fear-of-flogging .whip {
  position: absolute; bottom: 40%; left: 18%; width: 4px; height: 40px;
  background: linear-gradient(180deg, #8a6030 0%, #4a2a10 100%);
  border-radius: 50%; transform-origin: top center;
  animation: fof-crack 0.6s ease-in-out infinite;
}
@keyframes fof-wall {
  0% { opacity: 0.9; filter: brightness(1); }
  50% { opacity: 1; filter: brightness(1.05); }
  100% { opacity: 0.85; filter: brightness(0.95); }
}
@keyframes fof-glow {
  0% { box-shadow: 0 0 20px 6px rgba(255,200,100,.5); opacity: 0.8; }
  50% { box-shadow: 0 0 40px 15px rgba(255,220,150,.8); opacity: 1; }
  100% { box-shadow: 0 0 25px 8px rgba(255,200,100,.6); opacity: 0.85; }
}
@keyframes fof-beam {
  0% { transform: skewX(-8deg) scaleX(1); opacity: 0.3; }
  50% { transform: skewX(-6deg) scaleX(1.1); opacity: 0.5; }
  100% { transform: skewX(-10deg) scaleX(0.9); opacity: 0.2; }
}
@keyframes fof-cower {
  0% { transform: translateX(0) translateY(0) scale(1); }
  50% { transform: translateX(-2px) translateY(-3px) scale(0.95); }
  100% { transform: translateX(0) translateY(0) scale(1); }
}
@keyframes fof-threat {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(4px) rotate(3deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes fof-crack {
  0% { transform: rotate(0deg) scaleY(1); }
  25% { transform: rotate(20deg) scaleY(1.2); }
  50% { transform: rotate(-30deg) scaleY(1.5); }
  75% { transform: rotate(10deg) scaleY(0.8); }
  100% { transform: rotate(0deg) scaleY(1); }
}

/* --- hiding-in-thicket --- */
.scn-hiding-in-thicket {
  background: linear-gradient(180deg, #e08040 0%, #c06030 30%, #804020 60%, #2a1a0a 100%),
              radial-gradient(ellipse at 50% 0%, #f0a080 0%, transparent 60%);
}
.scn-hiding-in-thicket .sky-hit {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #e07850 0%, #d06040 50%, #a04030 100%);
  animation: hit-sky 12s ease-in-out infinite alternate;
}
.scn-hiding-in-thicket .sun {
  position: absolute; top: 10%; left: 70%; width: 40px; height: 40px;
  background: radial-gradient(circle, #ffd080 0%, #e08040 70%);
  border-radius: 50%; box-shadow: 0 0 50px 20px rgba(224,128,64,.6);
  animation: hit-sun 20s ease-in-out infinite;
}
.scn-hiding-in-thicket .bush-back {
  position: absolute; bottom: 40%; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #4a6030 0%, #2a4018 100%);
  border-radius: 60% 40% 0 0 / 80% 70% 0 0; filter: blur(2px);
  animation: hit-sway 8s ease-in-out infinite alternate;
}
.scn-hiding-in-thicket .bush-mid {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #3a5020 0%, #1a2a10 100%);
  border-radius: 50% 60% 0 0 / 90% 80% 0 0;
  animation: hit-sway 9s ease-in-out infinite alternate reverse;
}
.scn-hiding-in-thicket .figure-hit {
  position: absolute; bottom: 30%; left: 45%; width: 22px; height: 40px;
  background: linear-gradient(180deg, #1a1a1a 0%, #050505 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  animation: hit-peek 4s ease-in-out infinite;
}
.scn-hiding-in-thicket .leaf-left {
  position: absolute; bottom: 35%; left: 30%; width: 12px; height: 6px;
  background: #5a7030; border-radius: 50% 0 50% 0;
  animation: hit-leaf 3s ease-in-out infinite alternate;
}
.scn-hiding-in-thicket .leaf-right {
  position: absolute; bottom: 32%; right: 25%; width: 10px; height: 5px;
  background: #4a6020; border-radius: 0 50% 0 50%;
  animation: hit-leaf 3.5s ease-in-out infinite alternate-reverse;
}
@keyframes hit-sky {
  0% { opacity: 0.8; filter: brightness(1); }
  50% { opacity: 1; filter: brightness(1.1); }
  100% { opacity: 0.7; filter: brightness(0.9); }
}
@keyframes hit-sun {
  0% { transform: translateY(0) scale(1); opacity: 0.9; }
  50% { transform: translateY(-5px) scale(1.05); opacity: 1; }
  100% { transform: translateY(0) scale(1); opacity: 0.85; }
}
@keyframes hit-sway {
  0% { transform: translateX(0) scale(1); }
  50% { transform: translateX(3px) scale(1.02); }
  100% { transform: translateX(-3px) scale(0.98); }
}
@keyframes hit-peek {
  0% { transform: translateY(0) rotate(0deg); opacity: 0.7; }
  50% { transform: translateY(-2px) rotate(2deg); opacity: 1; }
  100% { transform: translateY(0) rotate(0deg); opacity: 0.6; }
}
@keyframes hit-leaf {
  0% { transform: rotate(0deg) translateX(0); }
  50% { transform: rotate(10deg) translateX(2px); }
  100% { transform: rotate(-10deg) translateX(-2px); }
}

/* --- hopes-dashed --- */
.scn-hopes-dashed {
  background: linear-gradient(180deg, #1a1a3e 0%, #2a2050 40%, #3a3060 80%, #1a1020 100%),
              radial-gradient(ellipse at 50% 100%, #4a3a6e 0%, transparent 70%);
}
.scn-hopes-dashed .sky-hod {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #2a2a5e 0%, #1a1a3e 50%, #0a0a1a 100%);
  animation: hod-sky 15s ease-in-out infinite alternate;
}
.scn-hopes-dashed .ground-hod {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #2a3a20 0%, #0a1a0a 100%);
  border-radius: 30% 70% 0 0 / 50% 50% 0 0;
}
.scn-hopes-dashed .tree-hod {
  position: absolute; bottom: 25%; left: 50%; width: 12px; height: 80px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  transform: translateX(-50%); border-radius: 20% 20% 0 0;
  animation: hod-tree 12s ease-in-out infinite;
}
.scn-hopes-dashed .foliage {
  position: absolute; bottom: 65%; left: 30%; width: 60px; height: 40px;
  background: radial-gradient(ellipse, #2a4a20 0%, #0a1a0a 70%);
  border-radius: 50%; filter: blur(3px);
  animation: hod-sway 8s ease-in-out infinite alternate;
}
.scn-hopes-dashed .figure-hod {
  position: absolute; bottom: 12%; left: 48%; width: 24px; height: 36px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hod-despond 5s ease-in-out infinite;
}
.scn-hopes-dashed .path {
  position: absolute; bottom: 5%; left: 35%; width: 40px; height: 4px;
  background: #3a4a2a; border-radius: 50%;
  filter: blur(1px); animation: hod-fade 7s ease-in-out infinite alternate;
}
.scn-hopes-dashed .shadow-tree {
  position: absolute; bottom: 0; left: 40%; width: 70px; height: 20px;
  background: rgba(0,0,0,.3); border-radius: 50%;
  filter: blur(5px); animation: hod-shade 10s ease-in-out infinite;
}
@keyframes hod-sky {
  0% { opacity: 0.6; filter: brightness(0.9); }
  50% { opacity: 0.85; filter: brightness(1); }
  100% { opacity: 0.5; filter: brightness(0.8); }
}
@keyframes hod-tree {
  0% { transform: translateX(-50%) rotate(0deg); }
  50% { transform: translateX(-50%) rotate(2deg); }
  100% { transform: translateX(-50%) rotate(-2deg); }
}
@keyframes hod-sway {
  0% { transform: translateX(0) scale(1); }
  50% { transform: translateX(4px) scale(1.03); }
  100% { transform: translateX(-4px) scale(0.97); }
}
@keyframes hod-despond {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(-3deg) scale(0.95); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes hod-fade {
  0% { opacity: 0.4; }
  50% { opacity: 0.7; }
  100% { opacity: 0.3; }
}
@keyframes hod-shade {
  0% { transform: scaleX(1); opacity: 0.3; }
  50% { transform: scaleX(1.1); opacity: 0.5; }
  100% { transform: scaleX(0.9); opacity: 0.2; }
}

/* --- deer-like-hunted --- */
.scn-deer-like-hunted {
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a3e 40%, #2a2a5e 70%, #0a0a1a 100%),
              radial-gradient(ellipse at 50% 60%, #3a3a6e 0%, transparent 70%);
}
.scn-deer-like-hunted .moon-sky {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #1a1a3e 0%, #0a0a1a 100%);
  animation: dlh-sky 20s ease-in-out infinite alternate;
}
.scn-deer-like-hunted .moon {
  position: absolute; top: 10%; left: 70%; width: 50px; height: 50px;
  background: radial-gradient(circle, #e0e8f0 0%, #a0b0c0 70%);
  border-radius: 50%; box-shadow: 0 0 60px 25px rgba(160,176,192,.5);
  animation: dlh-moon 8s ease-in-out infinite alternate;
}
.scn-deer-like-hunted .tree-left {
  position: absolute; bottom: 15%; left: 5%; width: 15px; height: 100px;
  background: linear-gradient(180deg, #0a0a1a 0%, #05050a 100%);
  transform: skewX(-5deg); border-radius: 10%;
  animation: dlh-tree 9s ease-in-out infinite alternate;
}
.scn-deer-like-hunted .tree-right {
  position: absolute; bottom: 20%; right: 10%; width: 12px; height: 80px;
  background: linear-gradient(180deg, #0a0a1a 0%, #05050a 100%);
  transform: skewX(8deg); border-radius: 10%;
  animation: dlh-tree 10s ease-in-out infinite alternate-reverse;
}
.scn-deer-like-hunted .figure-dlh {
  position: absolute; bottom: 12%; left: 35%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #0a0a1a 0%, #000005 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: dlh-run 1.2s ease-in-out infinite;
}
.scn-deer-like-hunted .grass {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #0a1a0a 0%, #050a05 100%);
  clip-path: polygon(0% 60%, 10% 40%, 20% 60%, 30% 30%, 40% 60%, 50% 35%, 60% 55%, 70% 40%, 80% 60%, 90% 45%, 100% 60%, 100% 100%, 0% 100%);
  animation: dlh-grass 3s ease-in-out infinite alternate;
}
.scn-deer-like-hunted .moonbeam {
  position: absolute; top: 0; left: 50%; width: 80px; height: 100%;
  background: linear-gradient(180deg, rgba(160,176,192,.1) 0%, transparent 80%);
  transform: skewX(-20deg); filter: blur(10px);
  animation: dlh-beam 6s ease-in-out infinite alternate;
}
@keyframes dlh-sky {
  0% { opacity: 0.7; filter: brightness(0.9); }
  50% { opacity: 0.9; filter: brightness(1.05); }
  100% { opacity: 0.6; filter: brightness(0.85); }
}
@keyframes dlh-moon {
  0% { box-shadow: 0 0 50px 20px rgba(160,176,192,.4); opacity: 0.9; }
  50% { box-shadow: 0 0 80px 35px rgba(180,200,220,.6); opacity: 1; }
  100% { box-shadow: 0 0 40px 15px rgba(160,176,192,.3); opacity: 0.8; }
}
@keyframes dlh-tree {
  0% { transform: skewX(-5deg) scaleY(1); }
  50% { transform: skewX(-5deg) scaleY(1.05) translateX(2px); }
  100% { transform: skewX(-5deg) scaleY(0.95) translateX(-2px); }
}
@keyframes dlh-run {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  20% { transform: translateX(8px) translateY(-2px) rotate(5deg); }
  40% { transform: translateX(16px) translateY(0) rotate(0deg); }
  60% { transform: translateX(24px) translateY(-3px) rotate(-5deg); }
  80% { transform: translateX(32px) translateY(0) rotate(0deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes dlh-grass {
  0% { transform: skewX(0deg); }
  50% { transform: skewX(2deg); }
  100% { transform: skewX(-2deg); }
}
@keyframes dlh-beam {
  0% { transform: skewX(-20deg) scaleX(1); opacity: 0.1; }
  50% { transform: skewX(-18deg) scaleX(1.2); opacity: 0.3; }
  100% { transform: skewX(-22deg) scaleX(0.8); opacity: 0.15; }
}

/* immodest-women – tense, bright-interior */
.scn-immodest-women {
  background: 
    linear-gradient(135deg, #fff8e0 0%, #e8d4b8 40%, #a08060 100%),
    radial-gradient(ellipse at 20% 30%, rgba(255,248,224,.6) 0%, transparent 70%);
}
.scn-immodest-women .im-bgroom { position:absolute; inset:0; background: linear-gradient(90deg, #e8d4b8 0%, #c8b098 100%); animation: im-room 12s ease-in-out infinite alternate; }
.scn-immodest-women .im-light { position:absolute; top:10%; left:15%; width:30%; height:50%; background: radial-gradient(circle, #fff8e0 0%, transparent 70%); filter: blur(20px); animation: im-glow 4s ease-in-out infinite alternate; }
.scn-immodest-women .im-figure { position:absolute; bottom:20%; left:45%; width:30px; height:80px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: im-fig 3s ease-in-out infinite; }
.scn-immodest-women .im-arm-left { position:absolute; bottom:48%; left:38%; width:12px; height:35px; background: #2a1a0a; border-radius: 30% 30% 40% 40%; transform-origin: top center; animation: im-arm-l 2.5s ease-in-out infinite; }
.scn-immodest-women .im-arm-right { position:absolute; bottom:48%; right:38%; width:12px; height:35px; background: #2a1a0a; border-radius: 30% 30% 40% 40%; transform-origin: top center; animation: im-arm-r 2.5s ease-in-out infinite; }
.scn-immodest-women .im-ornament { position:absolute; bottom:52%; left:40%; width:8px; height:8px; background: radial-gradient(circle, #d4a060 0%, #8a6a3a 100%); border-radius:50%; box-shadow: 0 0 6px 2px #d4a060; animation: im-orn 5s ease-in-out infinite; }
.scn-immodest-women .im-shadow { position:absolute; bottom:10%; left:30%; width:40%; height:6%; background: rgba(0,0,0,.4); border-radius: 50%; filter: blur(4px); animation: im-shade 6s ease-in-out infinite; }

@keyframes im-room { 0% { opacity: .9; } 50% { opacity: 1; } 100% { opacity: .85; } }
@keyframes im-glow { 0% { transform: scale(1) rotate(0deg); opacity: .6; } 50% { transform: scale(1.15) rotate(5deg); opacity: 1; } 100% { transform: scale(1.05) rotate(-3deg); opacity: .7; } }
@keyframes im-fig { 0% { transform: translateX(0) rotate(-1deg) scaleY(1); } 25% { transform: translateX(4px) rotate(1deg) scaleY(1.02); } 50% { transform: translateX(0) rotate(0) scaleY(1); } 75% { transform: translateX(-3px) rotate(-1deg) scaleY(1.01); } 100% { transform: translateX(0) rotate(-1deg) scaleY(1); } }
@keyframes im-arm-l { 0% { transform: rotate(20deg) translateY(0); } 50% { transform: rotate(-10deg) translateY(5px); } 100% { transform: rotate(20deg) translateY(0); } }
@keyframes im-arm-r { 0% { transform: rotate(-15deg) translateY(0); } 50% { transform: rotate(10deg) translateY(3px); } 100% { transform: rotate(-15deg) translateY(0); } }
@keyframes im-orn { 0% { transform: translate(0,0) scale(1); opacity: .8; } 30% { transform: translate(2px,-4px) scale(1.2); opacity: 1; } 60% { transform: translate(-1px,2px) scale(.9); opacity: .7; } 100% { transform: translate(0,0) scale(1); opacity: .8; } }
@keyframes im-shade { 0% { transform: scaleX(1) translateX(0); opacity: .4; } 50% { transform: scaleX(1.1) translateX(-5px); opacity: .5; } 100% { transform: scaleX(1) translateX(0); opacity: .4; } }

/* great-river-canoes – tense, sunlit */
.scn-great-river-canoes {
  background:
    linear-gradient(180deg, #4a8cbf 0%, #7bb8e8 40%, #b0d8f0 100%),
    radial-gradient(ellipse at 80% 20%, rgba(255,230,180,.5) 0%, transparent 60%);
}
.scn-great-river-canoes .gr-sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #4a8cbf 0%, #a0d0f0 100%); animation: gr-sky 20s ease-in-out infinite alternate; }
.scn-great-river-canoes .gr-sun { position:absolute; top:8%; right:18%; width:40px; height:40px; background: radial-gradient(circle, #ffe8a0 0%, #ffd060 50%, transparent 80%); border-radius:50%; box-shadow: 0 0 30px 10px rgba(255,208,96,.4); animation: gr-sun 12s ease-in-out infinite alternate; }
.scn-great-river-canoes .gr-river { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #2a6a8a 0%, #3a8aaa 50%, #5aaaca 100%); animation: gr-water 15s ease-in-out infinite; }
.scn-great-river-canoes .gr-bank { position:absolute; bottom:40%; left:0; right:0; height:15%; background: linear-gradient(180deg, #6a7a3a 0%, #4a5a2a 100%); border-radius: 40% 60% 0 0 / 80% 70% 0 0; box-shadow: inset 0 4px 10px rgba(0,0,0,.3); animation: gr-bank 25s ease-in-out infinite alternate; }
.scn-great-river-canoes .gr-canoe-1 { position:absolute; bottom:50%; left:20%; width:50px; height:12px; background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%); border-radius: 40% 40% 20% 20%; transform-origin: center center; animation: gr-canoe 5s ease-in-out infinite; }
.scn-great-river-canoes .gr-canoe-2 { position:absolute; bottom:45%; right:30%; width:40px; height:10px; background: linear-gradient(180deg, #7a5a3a 0%, #4a3a2a 100%); border-radius: 40% 40% 20% 20%; animation: gr-canoe 5.8s ease-in-out infinite 1.2s; }
.scn-great-river-canoes .gr-canoe-3 { position:absolute; bottom:55%; left:55%; width:35px; height:9px; background: linear-gradient(180deg, #5a4a2a 0%, #2a1a0a 100%); border-radius: 40% 40% 20% 20%; animation: gr-canoe 4.3s ease-in-out infinite 0.7s; }
.scn-great-river-canoes .gr-ripples { position:absolute; bottom:30%; left:0; right:0; height:40%; background: repeating-linear-gradient(90deg, transparent 0px, rgba(255,255,255,.1) 3px, transparent 6px); animation: gr-ripple 8s linear infinite; }

@keyframes gr-sky { 0% { opacity: .8; } 50% { opacity: 1; } 100% { opacity: .75; } }
@keyframes gr-sun { 0% { transform: scale(1) rotate(0deg); opacity: .9; } 50% { transform: scale(1.15) rotate(5deg); opacity: 1; } 100% { transform: scale(1.05) rotate(-2deg); opacity: .85; } }
@keyframes gr-water { 0% { background-position: 0 0; } 50% { background-position: 10% 5%; } 100% { background-position: 0 0; } }
@keyframes gr-bank { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-4px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes gr-canoe { 0% { transform: translateX(0) rotate(0deg) scaleX(1); } 25% { transform: translateX(3px) rotate(2deg) scaleX(1.02); } 50% { transform: translateX(0) rotate(-1deg) scaleX(1); } 75% { transform: translateX(-3px) rotate(2deg) scaleX(1.01); } 100% { transform: translateX(0) rotate(0deg) scaleX(1); } }
@keyframes gr-ripple { 0% { transform: translateX(0); } 100% { transform: translateX(12px); } }

/* river-journey – calm, sunset */
.scn-river-journey {
  background:
    linear-gradient(180deg, #7a4a6a 0%, #c87060 40%, #e8a860 70%, #f0d090 100%),
    radial-gradient(ellipse at 50% 100%, #f0d090 0%, transparent 80%);
}
.scn-river-journey .rj-sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #6a3a5a 0%, #c87060 50%, transparent 100%); animation: rj-sky 25s ease-in-out infinite alternate; }
.scn-river-journey .rj-sun { position:absolute; top:15%; left:45%; width:50px; height:30px; background: radial-gradient(ellipse at center, #f0a050 0%, #d08050 60%, transparent 80%); border-radius: 50%; box-shadow: 0 0 40px 15px rgba(208,128,80,.5); animation: rj-sun 30s ease-in-out infinite alternate; }
.scn-river-journey .rj-water { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #3a4a5a 0%, #4a6a7a 50%, #6a8a9a 100%); animation: rj-water 20s ease-in-out infinite; }
.scn-river-journey .rj-bank { position:absolute; bottom:35%; left:10%; right:10%; height:15%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 30% 30% 0 0 / 60% 60% 0 0; box-shadow: inset 0 4px 12px rgba(0,0,0,.4); animation: rj-bank 30s ease-in-out infinite alternate; }
.scn-river-journey .rj-fire { position:absolute; bottom:28%; left:30%; width:14px; height:20px; background: radial-gradient(circle, #ffc060 0%, #e08040 60%, transparent 80%); border-radius: 50% 50% 30% 30%; box-shadow: 0 0 20px 8px rgba(224,128,64,.4); animation: rj-fire 3s ease-in-out infinite; }
.scn-river-journey .rj-tent { position:absolute; bottom:30%; left:55%; width:0; height:0; border-left: 20px solid transparent; border-right: 20px solid transparent; border-bottom: 25px solid #5a4a3a; filter: drop-shadow(0 2px 4px rgba(0,0,0,.3)); animation: rj-tent 20s ease-in-out infinite; }
.scn-river-journey .rj-canoe { position:absolute; bottom:30%; left:15%; width:40px; height:10px; background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%); border-radius: 40% 40% 20% 20%; transform-origin: bottom center; animation: rj-canoe 8s ease-in-out infinite; }
.scn-river-journey .rj-figures { position:absolute; bottom:27%; left:40%; width:20px; height:25px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rj-fig 10s ease-in-out infinite; }

@keyframes rj-sky { 0% { opacity: .85; } 50% { opacity: 1; } 100% { opacity: .8; } }
@keyframes rj-sun { 0% { transform: translateY(0) scale(1); opacity: .9; } 50% { transform: translateY(-5px) scale(1.1); opacity: 1; } 100% { transform: translateY(0) scale(1); opacity: .85; } }
@keyframes rj-water { 0% { background-position: 0 0; } 50% { background-position: 5% 3%; } 100% { background-position: 0 0; } }
@keyframes rj-bank { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-2px) scaleY(1.01); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes rj-fire { 0% { transform: scaleY(1) rotate(0deg); opacity: .8; } 25% { transform: scaleY(1.2) rotate(-3deg); opacity: 1; } 50% { transform: scaleY(1) rotate(2deg); opacity: .9; } 75% { transform: scaleY(1.15) rotate(-1deg); opacity: 1; } 100% { transform: scaleY(1) rotate(0deg); opacity: .8; } }
@keyframes rj-tent { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes rj-canoe { 0% { transform: translateX(0) rotate(0deg) scaleX(1); } 30% { transform: translateX(3px) rotate(-2deg) scaleX(1.02); } 60% { transform: translateX(0) rotate(1deg) scaleX(1); } 100% { transform: translateX(0) rotate(0deg) scaleX(1); } }
@keyframes rj-fig { 0% { transform: translateX(0) rotate(0deg) scaleY(1); } 25% { transform: translateX(2px) rotate(1deg) scaleY(1.01); } 50% { transform: translateX(0) rotate(-1deg) scaleY(1); } 75% { transform: translateX(-2px) rotate(0deg) scaleY(1.01); } 100% { transform: translateX(0) rotate(0deg) scaleY(1); } }

/* swimming-women – calm, sunlit */
.scn-swimming-women {
  background:
    linear-gradient(180deg, #80c0e0 0%, #b0e0f0 50%, #d0f0ff 100%),
    radial-gradient(ellipse at 50% 100%, #d0f0ff 0%, transparent 70%);
}
.scn-swimming-women .sw-sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #80c0e0 0%, #c0e8f8 100%); animation: sw-sky 20s ease-in-out infinite alternate; }
.scn-swimming-women .sw-water { position:absolute; top:30%; left:0; right:0; bottom:0; background: linear-gradient(180deg, #4a9aca 0%, #6abada 50%, #8ad0e8 100%); animation: sw-water 18s ease-in-out infinite; }
.scn-swimming-women .sw-surface { position:absolute; top:30%; left:0; right:0; height:8px; background: linear-gradient(90deg, transparent 0%, rgba(255,255,255,.6) 50%, transparent 100%); filter: blur(2px); animation: sw-surface 12s linear infinite; }
.scn-swimming-women .sw-figure-1 { position:absolute; top:45%; left:25%; width:16px; height:30px; background: linear-gradient(180deg, #c8a080 0%, #a08060 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: center top; animation: sw-fig 7s ease-in-out infinite; }
.scn-swimming-women .sw-figure-2 { position:absolute; top:50%; right:30%; width:14px; height:28px; background: linear-gradient(180deg, #d0b090 0%, #b09070 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: center top; animation: sw-fig 8.5s ease-in-out infinite 2s; }
.scn-swimming-women .sw-figure-3 { position:absolute; top:35%; left:50%; width:12px; height:25px; background: linear-gradient(180deg, #b89878 0%, #987858 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: center top; animation: sw-fig 6s ease-in-out infinite 1.5s; }
.scn-swimming-women .sw-splash { position:absolute; top:42%; left:35%; width:20px; height:16px; background: radial-gradient(circle, rgba(255,255,255,.8) 0%, transparent 70%); border-radius: 50%; filter: blur(3px); animation: sw-splash 4s ease-in-out infinite; }
.scn-swimming-women .sw-ripples { position:absolute; top:35%; left:0; right:0; height:45%; background: repeating-linear-gradient(90deg, transparent 0px, rgba(255,255,255,.15) 4px, transparent 8px); animation: sw-ripple 10s linear infinite; }

@keyframes sw-sky { 0% { opacity: .9; } 50% { opacity: 1; } 100% { opacity: .85; } }
@keyframes sw-water { 0% { background-position: 0 0; } 50% { background-position: 8% 4%; } 100% { background-position: 0 0; } }
@keyframes sw-surface { 0% { transform: translateX(-10%); opacity: .6; } 50% { transform: translateX(10%); opacity: .8; } 100% { transform: translateX(-10%); opacity: .6; } }
@keyframes sw-fig { 0% { transform: translateY(0) rotate(0deg) scaleY(1); } 25% { transform: translateY(-6px) rotate(-5deg) scaleY(1.05); } 50% { transform: translateY(0) rotate(2deg) scaleY(1); } 75% { transform: translateY(-3px) rotate(-2deg) scaleY(1.03); } 100% { transform: translateY(0) rotate(0deg) scaleY(1); } }
@keyframes sw-splash { 0% { transform: scale(1); opacity: .7; } 50% { transform: scale(1.5); opacity: 0; } 100% { transform: scale(1); opacity: .7; } }
@keyframes sw-ripple { 0% { transform: translateX(0); } 100% { transform: translateX(10px); } }

.scn-santa-cruz-fruit-theft {
  background:
    linear-gradient(180deg, #87CEEB 0%, #F0E68C 60%, #CD853F 100%),
    radial-gradient(ellipse at 70% 20%, rgba(255,215,0,0.3) 0%, transparent 50%);
  overflow: hidden;
}
.scn-santa-cruz-fruit-theft .sky-wash {
  position: absolute; inset: 0; 
  background: linear-gradient(180deg, rgba(135,206,235,0.4) 0%, rgba(240,230,140,0.2) 100%);
  animation: scf-sky 12s ease-in-out infinite alternate;
}
.scn-santa-cruz-fruit-theft .sun-disc {
  position: absolute; top: 8%; left: 72%; width: 60px; height: 60px;
  background: radial-gradient(circle, #FFF8DC 0%, #FFD700 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 80px 20px rgba(255,215,0,0.5), 0 0 160px 40px rgba(255,215,0,0.2);
  animation: scf-sun 6s ease-in-out infinite alternate;
}
.scn-santa-cruz-fruit-theft .deck-plank {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #8B6914 0%, #6B4F12 40%, #4A3710 100%);
  border-radius: 30% 10% 0 0 / 20% 8% 0 0;
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.5);
  transform: perspective(800px) rotateX(5deg);
  animation: scf-deck 8s ease-in-out infinite;
}
.scn-santa-cruz-fruit-theft .ship-rail {
  position: absolute; bottom: 44%; left: 0; right: 0; height: 8px;
  background: linear-gradient(90deg, transparent 0%, #5C4033 20%, #3A2518 50%, #5C4033 80%, transparent 100%);
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
}
.scn-santa-cruz-fruit-theft .crate-stack {
  position: absolute; bottom: 40%; left: 18%; width: 50px; height: 40px;
  background: linear-gradient(135deg, #A0784C 0%, #7A5A30 100%);
  border: 2px solid #5C3F20;
  border-radius: 2px;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.2);
  animation: scf-crate 3s ease-in-out infinite alternate;
}
.scn-santa-cruz-fruit-theft .figure-a {
  position: absolute; bottom: 38%; left: 35%; width: 28px; height: 56px;
  background: linear-gradient(180deg, #2B1810 0%, #1A0E08 60%, #0D0704 100%);
  border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: -4px 0 8px rgba(0,0,0,0.3);
  animation: scf-figA 2s ease-in-out infinite;
}
.scn-santa-cruz-fruit-theft .figure-b {
  position: absolute; bottom: 37%; left: 48%; width: 26px; height: 54px;
  background: linear-gradient(180deg, #3A2518 0%, #201510 60%, #100A08 100%);
  border-radius: 50% 50% 40% 40% / 55% 55% 45% 45%;
  transform-origin: bottom center;
  box-shadow: 4px 0 8px rgba(0,0,0,0.3);
  animation: scf-figB 2.4s ease-in-out infinite 0.3s;
}
.scn-santa-cruz-fruit-theft .knife-flash {
  position: absolute; bottom: 45%; left: 44%; width: 4px; height: 12px;
  background: linear-gradient(180deg, #F5F5DC 0%, #B0C4DE 100%);
  border-radius: 0 0 50% 50%;
  box-shadow: 0 0 12px 4px rgba(176,196,222,0.6), inset 0 0 4px #fff;
  transform: rotate(-20deg);
  animation: scf-knife 1.5s ease-in-out infinite;
}
.scn-santa-cruz-fruit-theft .shadow-slice {
  position: absolute; bottom: 30%; left: 20%; right: 50%; height: 30%;
  background: linear-gradient(180deg, rgba(0,0,0,0.25) 0%, transparent 100%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 0 100%);
  animation: scf-shadow 4s ease-in-out infinite alternate;
}
@keyframes scf-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes scf-sun { 0% { transform: scale(1) translate(0,0); box-shadow: 0 0 60px 15px rgba(255,215,0,0.4); } 50% { transform: scale(1.1) translate(2px,-4px); box-shadow: 0 0 100px 25px rgba(255,215,0,0.6); } 100% { transform: scale(0.95) translate(-1px,2px); box-shadow: 0 0 70px 18px rgba(255,215,0,0.45); } }
@keyframes scf-deck { 0% { transform: perspective(800px) rotateX(5deg) translateY(0); } 50% { transform: perspective(800px) rotateX(4deg) translateY(-3px); } 100% { transform: perspective(800px) rotateX(5.5deg) translateY(0); } }
@keyframes scf-crate { 0% { transform: translate(0,0) rotate(0deg); } 50% { transform: translate(-2px,-1px) rotate(0.5deg); } 100% { transform: translate(1px,2px) rotate(-0.5deg); } }
@keyframes scf-figA { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 25% { transform: translateX(4px) translateY(-1px) rotate(1deg); } 50% { transform: translateX(8px) translateY(0) rotate(-1deg); } 75% { transform: translateX(12px) translateY(-1px) rotate(2deg); } 100% { transform: translateX(16px) translateY(0) rotate(0deg); } }
@keyframes scf-figB { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 25% { transform: translateX(-3px) translateY(-1px) rotate(-1deg); } 50% { transform: translateX(-6px) translateY(0) rotate(1deg); } 75% { transform: translateX(-9px) translateY(-1px) rotate(-2deg); } 100% { transform: translateX(-12px) translateY(0) rotate(0deg); } }
@keyframes scf-knife { 0% { transform: rotate(-20deg) translate(0,0) scale(1); opacity: 0.3; } 20% { transform: rotate(-15deg) translate(3px,-5px) scale(1.2); opacity: 1; } 40% { transform: rotate(-25deg) translate(-2px,2px) scale(0.9); opacity: 0.5; } 60% { transform: rotate(-18deg) translate(1px,-3px) scale(1.1); opacity: 0.8; } 80% { transform: rotate(-22deg) translate(-1px,1px) scale(0.95); opacity: 0.6; } 100% { transform: rotate(-20deg) translate(0,0) scale(1); opacity: 0.4; } }
@keyframes scf-shadow { 0% { opacity: 0.2; transform: skewX(0deg); } 50% { opacity: 0.5; transform: skewX(-5deg); } 100% { opacity: 0.3; transform: skewX(3deg); } }

.scn-buying-bible {
  background:
    linear-gradient(180deg, #3E2723 0%, #4E342E 30%, #5D4037 60%, #3E2723 100%),
    radial-gradient(ellipse at 50% 60%, #5D4037 0%, transparent 70%);
  overflow: hidden;
}
.scn-buying-bible .wall-back {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #4A3230 0%, #3E2723 50%, #2E1B18 100%);
  animation: bb-wall 15s ease-in-out infinite alternate;
}
.scn-buying-bible .counter-top {
  position: absolute; bottom: 15%; left: 10%; right: 10%; height: 30%;
  background: linear-gradient(180deg, #6D4C41 0%, #4E342E 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 -8px 20px rgba(0,0,0,0.5), inset 0 4px 10px rgba(0,0,0,0.3);
  transform: perspective(600px) rotateX(2deg);
}
.scn-buying-bible .book-stack {
  position: absolute; bottom: 38%; left: 20%; width: 30px; height: 45px;
  background: linear-gradient(180deg, #8D6E63 0%, #5D4037 80%, #3E2723 100%);
  border-radius: 2px 6px 6px 2px;
  box-shadow: 4px 4px 8px rgba(0,0,0,0.4), inset -2px 0 4px rgba(0,0,0,0.2);
  transform: rotate(2deg);
  animation: bb-stack 6s ease-in-out infinite alternate;
}
.scn-buying-bible .book-open {
  position: absolute; bottom: 40%; left: 42%; width: 50px; height: 60px;
  background: linear-gradient(180deg, #D7CCC8 0%, #BCAAA4 60%, #A1887F 100%);
  border-radius: 4px 12px 12px 4px;
  box-shadow: 6px 6px 12px rgba(0,0,0,0.5), inset 0 0 20px rgba(255,255,255,0.1);
  transform: perspective(400px) rotateY(-10deg) rotateX(5deg);
  animation: bb-book 4s ease-in-out infinite;
}
.scn-buying-bible .hand-reach {
  position: absolute; bottom: 32%; left: 48%; width: 18px; height: 30px;
  background: linear-gradient(180deg, #D7CCC8 0%, #A1887F 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  transform: rotate(-15deg) scale(1.1);
  box-shadow: 2px 2px 6px rgba(0,0,0,0.3);
  animation: bb-hand 3s ease-in-out infinite;
}
.scn-buying-bible .coin-pile {
  position: absolute; bottom: 34%; left: 70%; width: 24px; height: 10px;
  background: radial-gradient(ellipse, #D4AF37 0%, #B8860B 50%, #8B6914 100%);
  border-radius: 50%;
  box-shadow: 0 4px 6px rgba(0,0,0,0.5), inset 0 2px 4px rgba(255,215,0,0.3);
  animation: bb-coin 2s ease-in-out infinite alternate;
}
.scn-buying-bible .lamp-glow {
  position: absolute; top: 20%; left: 55%; width: 80px; height: 80px;
  background: radial-gradient(circle, #FFD54F 0%, #FFB300 30%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 80px 30px rgba(255,179,0,0.3), 0 0 160px 60px rgba(255,179,0,0.1);
  animation: bb-lamp 5s ease-in-out infinite alternate;
}
.scn-buying-bible .door-slit {
  position: absolute; top: 10%; right: 8%; width: 40px; height: 70%;
  background: linear-gradient(180deg, #1B0E08 0%, #2E1B18 100%);
  border-left: 3px solid #5D4037;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.6);
  animation: bb-door 10s ease-in-out infinite;
}
@keyframes bb-wall { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes bb-stack { 0% { transform: rotate(2deg) translateY(0); } 50% { transform: rotate(-1deg) translateY(-2px); } 100% { transform: rotate(3deg) translateY(1px); } }
@keyframes bb-book { 0% { transform: perspective(400px) rotateY(-10deg) rotateX(5deg) translateY(0); } 50% { transform: perspective(400px) rotateY(-8deg) rotateX(6deg) translateY(-2px); } 100% { transform: perspective(400px) rotateY(-12deg) rotateX(4deg) translateY(1px); } }
@keyframes bb-hand { 0% { transform: rotate(-15deg) translate(0,0) scale(1.1); } 25% { transform: rotate(-12deg) translate(3px,-2px) scale(1.15); } 50% { transform: rotate(-18deg) translate(6px,0) scale(1.05); } 75% { transform: rotate(-14deg) translate(9px,-1px) scale(1.12); } 100% { transform: rotate(-15deg) translate(12px,0) scale(1.1); } }
@keyframes bb-coin { 0% { transform: scale(1) rotate(0deg); opacity: 0.8; } 50% { transform: scale(1.15) rotate(5deg); opacity: 1; } 100% { transform: scale(0.9) rotate(-3deg); opacity: 0.9; } }
@keyframes bb-lamp { 0% { transform: scale(1); opacity: 0.7; box-shadow: 0 0 60px 20px rgba(255,179,0,0.2); } 50% { transform: scale(1.1); opacity: 1; box-shadow: 0 0 100px 40px rgba(255,179,0,0.4); } 100% { transform: scale(0.95); opacity: 0.8; box-shadow: 0 0 70px 25px rgba(255,179,0,0.25); } }
@keyframes bb-door { 0% { transform: translateX(0); } 25% { transform: translateX(3px); } 50% { transform: translateX(-2px); } 75% { transform: translateX(1px); } 100% { transform: translateX(0); } }

.scn-marriage-on-water {
  background:
    linear-gradient(180deg, #87CEEB 0%, #B0E0E6 30%, #F0E68C 60%, #CD853F 100%),
    radial-gradient(ellipse at 30% 20%, rgba(255,215,0,0.3) 0%, transparent 50%);
  overflow: hidden;
}
.scn-marriage-on-water .sea-horizon {
  position: absolute; inset: 0; top: auto; height: 60%;
  background: linear-gradient(180deg, #4682B4 0%, #5F9EA0 40%, #6B8E23 100%);
  border-radius: 0 0 30% 30% / 0 0 10% 10%;
  animation: mw-sea 12s ease-in-out infinite alternate;
}
.scn-marriage-on-water .sun-path {
  position: absolute; top: 5%; left: 50%; width: 120px; height: 120px;
  background: radial-gradient(circle, #FFF8DC 0%, #FFD700 30%, transparent 70%);
  border-radius: 50%;
  transform: translateX(-50%);
  box-shadow: 0 0 100px 30px rgba(255,215,0,0.5), 0 0 200px 60px rgba(255,215,0,0.2);
  animation: mw-sun 8s ease-in-out infinite;
}
.scn-marriage-on-water .church-spire {
  position: absolute; bottom: 35%; left: 25%; width: 16px; height: 80px;
  background: linear-gradient(180deg, #D2B48C 0%, #A0784C 100%);
  border-radius: 2px 2px 4px 4px;
  transform-origin: bottom center;
  box-shadow: 2px 0 8px rgba(0,0,0,0.2);
  animation: mw-spire 4s ease-in-out infinite alternate;
}
.scn-marriage-on-water .door-arch {
  position: absolute; bottom: 28%; left: 24%; width: 24px; height: 40px;
  background: linear-gradient(180deg, #4A3728 0%, #2E1B18 100%);
  border-radius: 50% 50% 10% 10% / 60% 60% 10% 10%;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.5);
  transform: perspective(300px) rotateY(-5deg);
  animation: mw-arch 5s ease-in-out infinite;
}
.scn-marriage-on-water .couple-form {
  position: absolute; bottom: 25%; left: 48%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #1A1A2E 0%, #0D0D1A 100%);
  border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 4px 0 12px rgba(0,0,0,0.3);
  animation: mw-couple 3s ease-in-out infinite;
}
.scn-marriage-on-water .veil-lift {
  position: absolute; bottom: 50%; left: 50%; width: 28px; height: 20px;
  background: radial-gradient(ellipse, rgba(255,255,255,0.6) 0%, rgba(255,255,255,0.1) 100%);
  border-radius: 50%;
  filter: blur(2px);
  transform: translateX(-50%);
  animation: mw-veil 5s ease-in-out infinite;
}
.scn-marriage-on-water .parasol {
  position: absolute; bottom: 48%; left: 58%; width: 30px; height: 12px;
  background: linear-gradient(135deg, #FFE4B5 0%, #DEB887 100%);
  border-radius: 80% 80% 10% 10% / 100% 100% 20% 20%;
  transform: rotate(-10deg);
  box-shadow: 2px 2px 6px rgba(0,0,0,0.2);
  animation: mw-parasol 4s ease-in-out infinite alternate;
}
.scn-marriage-on-water .wave-curl {
  position: absolute; bottom: 28%; left: 10%; right: 10%; height: 12px;
  background: radial-gradient(ellipse at 30% 50%, rgba(100,149,237,0.4) 0%, transparent 70%);
  filter: blur(3px);
  animation: mw-wave 6s ease-in-out infinite;
}
@keyframes mw-sea { 0% { opacity: 0.8; transform: translateY(0); } 50% { opacity: 1; transform: translateY(-3px); } 100% { opacity: 0.9; transform: translateY(2px); } }
@keyframes mw-sun { 0% { transform: translateX(-50%) scale(1) translateY(0); } 33% { transform: translateX(-50%) scale(1.05) translateY(-3px); } 66% { transform: translateX(-50%) scale(0.95) translateY(2px); } 100% { transform: translateX(-50%) scale(1.02) translateY(-1px); } }
@keyframes mw-spire { 0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.02) translateY(-2px); } 100% { transform: scaleY(0.98) translateY(1px); } }
@keyframes mw-arch { 0% { opacity: 0.8; } 50% { opacity: 1; box-shadow: inset 0 0 15px rgba(0,0,0,0.6); } 100% { opacity: 0.9; } }
@keyframes mw-couple { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 25% { transform: translateX(2px) translateY(-2px) rotate(1deg); } 50% { transform: translateX(4px) translateY(0) rotate(-1deg); } 75% { transform: translateX(6px) translateY(-1px) rotate(2deg); } 100% { transform: translateX(8px) translateY(0) rotate(0deg); } }
@keyframes mw-veil { 0% { transform: translateX(-50%) scale(1) rotate(0deg); opacity: 0.4; } 50% { transform: translateX(-50%) scale(1.3) rotate(8deg); opacity: 0.8; } 100% { transform: translateX(-50%) scale(0.9) rotate(-4deg); opacity: 0.3; } }
@keyframes mw-parasol { 0% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-8deg) translateY(-3px); } 100% { transform: rotate(-12deg) translateY(2px); } }
@keyframes mw-wave { 0% { transform: translateX(0) scale(1); opacity: 0.3; } 50% { transform: translateX(10px) scale(1.2); opacity: 0.6; } 100% { transform: translateX(-10px) scale(0.8); opacity: 0.2; } }

.scn-thoughts-of-freedom {
  background:
    linear-gradient(180deg, #1A1A2E 0%, #2A2A3E 30%, #1A1A2E 100%),
    radial-gradient(ellipse at 50% 30%, #3A2A4E 0%, transparent 60%);
  overflow: hidden;
}
.scn-thoughts-of-freedom .wall-dark {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #1A1A2E 0%, #12121E 50%, #0A0A12 100%);
  animation: tof-wall 20s ease-in-out infinite;
}
.scn-thoughts-of-freedom .window-bars {
  position: absolute; top: 8%; left: 12%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #2E2E4E 0%, #1A1A3E 100%);
  border: 3px solid #4A4A6E;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.8), 0 0 10px rgba(74,74,110,0.3);
  animation: tof-window 5s ease-in-out infinite alternate;
}
.scn-thoughts-of-freedom .light-shaft {
  position: absolute; top: 5%; left: 12%; width: 40px; height: 55%;
  background: linear-gradient(180deg, rgba(255,255,220,0.15) 0%, rgba(255,255,220,0.05) 50%, transparent 100%);
  clip-path: polygon(0 0, 100% 0, 60% 100%, 40% 100%);
  animation: tof-light 8s ease-in-out infinite alternate;
}
.scn-thoughts-of-freedom .chair-form {
  position: absolute; bottom: 18%; left: 25%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #3E2723 0%, #2E1B18 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 4px 4px 8px rgba(0,0,0,0.5);
  animation: tof-chair 6s ease-in-out infinite;
}
.scn-thoughts-of-freedom .figure-slump {
  position: absolute; bottom: 20%; left: 30%; width: 32px; height: 50px;
  background: linear-gradient(180deg, #2E1B18 0%, #1A0E08 60%, #0D0704 100%);
  border-radius: 50% 50% 45% 45% / 60% 60% 35% 35%;
  transform-origin: bottom center;
  transform: rotate(10deg);
  box-shadow: -4px 0 8px rgba(0,0,0,0.4);
  animation: tof-figure 4s ease-in-out infinite;
}
.scn-thoughts-of-freedom .letters-fall {
  position: absolute; top: 10%; left: 50%; width: 8px; height: 10px;
  background: linear-gradient(180deg, #D7CCC8 0%, #BCAAA4 100%);
  border-radius: 1px;
  box-shadow: 2px 2px 4px rgba(0,0,0,0.3);
  animation: tof-letter 15s linear infinite;
}
.scn-thoughts-of-freedom .dust-mote {
  position: absolute; top: 30%; left: 40%; width: 4px; height: 4px;
  background: rgba(255,255,220,0.4);
  border-radius: 50%;
  filter: blur(1px);
  animation: tof-dust 12s ease-in-out infinite alternate;
}
.scn-thoughts-of-freedom .door-crack {
  position: absolute; top: 20%; right: 10%; width: 2px; height: 60%;
  background: linear-gradient(180deg, rgba(255,255,220,0.2) 0%, transparent 100%);
  box-shadow: 0 0 6px 2px rgba(255,255,220,0.05);
  animation: tof-door 7s ease-in-out infinite;
}
.scn-thoughts-of-freedom .clock-pend {
  position: absolute; top: 5%; right: 35%; width: 4px; height: 30px;
  background: linear-gradient(180deg, #B8860B 0%, #8B6914 100%);
  border-radius: 0 0 50% 50%;
  transform-origin: top center;
  animation: tof-clock 2s ease-in-out infinite alternate;
}
@keyframes tof-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.95; } }
@keyframes tof-window { 0% { box-shadow: inset 0 0 20px rgba(0,0,0,0.8), 0 0 10px rgba(74,74,110,0.3); opacity: 0.8; } 50% { box-shadow: inset 0 0 30px rgba(0,0,0,0.9), 0 0 15px rgba(74,74,110,0.5); opacity: 1; } 100% { box-shadow: inset 0 0 20px rgba(0,0,0,0.8), 0 0 8px rgba(74,74,110,0.2); opacity: 0.85; } }
@keyframes tof-light { 0% { opacity: 0.2; transform: scaleX(1); } 50% { opacity: 0.6; transform: scaleX(1.2); } 100% { opacity: 0.3; transform: scaleX(0.8); } }
@keyframes tof-chair { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(1px) rotate(-1deg); } }
@keyframes tof-figure { 0% { transform: rotate(10deg) translateY(0) scale(1); } 25% { transform: rotate(8deg) translateY(-2px) scale(1.02); } 50% { transform: rotate(12deg) translateY(1px) scale(0.98); } 75% { transform: rotate(9deg) translateY(-1px) scale(1.01); } 100% { transform: rotate(10deg) translateY(0) scale(1); } }
@keyframes tof-letter { 0% { transform: translateY(-20px) rotate(0deg); opacity: 1; } 25% { transform: translateY(20vh) rotate(90deg); opacity: 0.7; } 50% { transform: translateY(40vh) rotate(180deg); opacity: 0.4; } 75% { transform: translateY(60vh) rotate(270deg); opacity: 0.2; } 100% { transform: translateY(80vh) rotate(360deg); opacity: 0; } }
@keyframes tof-dust { 0% { transform: translate(0,0) scale(1); opacity: 0.2; } 33% { transform: translate(5px,-8px) scale(1.5); opacity: 0.6; } 66% { transform: translate(-3px,4px) scale(0.8); opacity: 0.4; } 100% { transform: translate(2px,-2px) scale(1.2); opacity: 0.5; } }
@keyframes tof-door { 0% { opacity: 0.3; } 50% { opacity: 0.6; box-shadow: 0 0 10px 4px rgba(255,255,220,0.1); } 100% { opacity: 0.2; } }
@keyframes tof-clock { 0% { transform: rotate(-15deg); } 50% { transform: rotate(15deg); } 100% { transform: rotate(-15deg); } }

.scn-cruises-and-holland {
  background: linear-gradient(180deg, #60a8e0 0%, #a8d8f0 45%, #f8e4b0 100%), radial-gradient(ellipse 60% 30% at 50% 10%, #fff0c0 0%, transparent 70%);
}
.scn-cruises-and-holland .ch-sky { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #b8d4f0 0%, #f0e4b0 50%, #ffe8a0 100%); animation:ch-sky 30s ease-in-out infinite alternate; }
.scn-cruises-and-holland .ch-sun { position:absolute; top:6%; left:75%; width:40px; height:40px; background:radial-gradient(circle, #fff8d0 0%, #ffd580 50%, transparent 80%); border-radius:50%; box-shadow:0 0 60px 30px rgba(255,220,120,.4); animation:ch-sun 50s linear infinite; }
.scn-cruises-and-holland .ch-sea { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #3080b0 0%, #1a5a80 100%); animation:ch-sea 8s ease-in-out infinite; }
.scn-cruises-and-holland .ch-hull { position:absolute; bottom:28%; left:20%; width:160px; height:30px; background:linear-gradient(180deg, #5a3a2a 0%, #3a2210 100%); border-radius:0 0 30% 30% / 0 0 60% 60%; }
.scn-cruises-and-holland .ch-deck { position:absolute; bottom:32%; left:22%; width:140px; height:8px; background:linear-gradient(90deg, #6a4a2a, #8a6a3a); border-radius:2px; }
.scn-cruises-and-holland .ch-mast { position:absolute; bottom:32%; left:46%; width:4px; height:120px; background:linear-gradient(180deg, #3a2a1a, #2a1a0a); transform-origin:bottom; animation:ch-rock 12s ease-in-out infinite; }
.scn-cruises-and-holland .ch-sail { position:absolute; bottom:40%; left:38%; width:50px; height:70px; background:linear-gradient(180deg, #f8f0e0 0%, #d0c8b0 100%); border-radius:10% 10% 20% 20%; clip-path:polygon(50% 0%,0% 80%,100% 80%); animation:ch-billow 6s ease-in-out infinite; }
.scn-cruises-and-holland .ch-figure1, .scn-cruises-and-holland .ch-figure2 { position:absolute; bottom:31%; width:10px; height:20px; background:#1a1a1a; border-radius:40% 40% 30% 30%; }
.scn-cruises-and-holland .ch-figure1 { left:30%; animation:ch-fight 4s ease-in-out infinite; }
.scn-cruises-and-holland .ch-figure2 { left:55%; animation:ch-fight 4s ease-in-out 2s infinite; }
@keyframes ch-sky { 0%{opacity:.9} 50%{opacity:1} 100%{opacity:.8} }
@keyframes ch-sun { 0%{transform:translateX(0)} 100%{transform:translateX(-80vw)} }
@keyframes ch-sea { 0%{transform:translateY(0)} 50%{transform:translateY(-3px)} 100%{transform:translateY(0)} }
@keyframes ch-rock { 0%,100%{transform:rotate(1deg)} 50%{transform:rotate(-1deg)} }
@keyframes ch-billow { 0%,100%{transform:scaleX(.95)} 50%{transform:scaleX(1.1)} }
@keyframes ch-fight { 0%,100%{transform:translateX(0) rotate(0)} 25%{transform:translateX(3px) rotate(10deg)} 75%{transform:translateX(-3px) rotate(-10deg)} }

.scn-first-fight-with-white-boy {
  background: linear-gradient(180deg, #4090c0 0%, #80b8e0 40%, #d0b070 100%), radial-gradient(ellipse at 50% 80%, #b09050 0%, transparent 70%);
}
.scn-first-fight-with-white-boy .fw-sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #4090c0 0%, #a0d0f0 60%, #f0d890 100%); animation:fw-sky 20s ease-in-out infinite alternate; }
.scn-first-fight-with-white-boy .fw-ground { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #c09850 0%, #806030 100%); border-radius:20% 20% 0 0; }
.scn-first-fight-with-white-boy .fw-fighter1 { position:absolute; bottom:36%; left:20%; width:30px; height:70px; background:linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius:40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin:center bottom; animation:fw-punch 1.5s ease-in-out infinite; }
.scn-first-fight-with-white-boy .fw-fighter2 { position:absolute; bottom:36%; right:20%; width:30px; height:70px; background:linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%); border-radius:40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin:center bottom; animation:fw-punch 1.5s ease-in-out .75s infinite; }
.scn-first-fight-with-white-boy .fw-impact { position:absolute; bottom:52%; left:45%; width:10px; height:10px; background:radial-gradient(circle, #d08040 0%, transparent 70%); border-radius:50%; animation:fw-flash .5s ease-in-out infinite; }
.scn-first-fight-with-white-boy .fw-dust { position:absolute; bottom:36%; left:30%; width:40px; height:20px; background:radial-gradient(ellipse, rgba(180,140,90,.5) 0%, transparent 100%); filter:blur(4px); animation:fw-dust 2s ease-in-out infinite; }
.scn-first-fight-with-white-boy .fw-shadow1 { position:absolute; bottom:36%; left:12%; width:40px; height:10px; background:rgba(0,0,0,.3); filter:blur(3px); animation:fw-shadow 1.5s ease-in-out infinite; }
.scn-first-fight-with-white-boy .fw-shadow2 { position:absolute; bottom:36%; right:12%; width:40px; height:10px; background:rgba(0,0,0,.3); filter:blur(3px); animation:fw-shadow 1.5s ease-in-out .75s infinite; }
@keyframes fw-sky { 0%{opacity:.8} 50%{opacity:1} 100%{opacity:.7} }
@keyframes fw-punch { 0%{transform:rotate(0) translateY(0)} 30%{transform:rotate(-15deg) translateY(-5px)} 60%{transform:rotate(15deg) translateY(-3px)} 100%{transform:rotate(0) translateY(0)} }
@keyframes fw-flash { 0%{opacity:0;transform:scale(.5)} 50%{opacity:1;transform:scale(2)} 100%{opacity:0;transform:scale(.5)} }
@keyframes fw-dust { 0%{opacity:.6;transform:translateX(0)} 50%{opacity:1;transform:translateX(10px)} 100%{opacity:.6;transform:translateX(0)} }
@keyframes fw-shadow { 0%{transform:scaleX(1)} 50%{transform:scaleX(1.5)} 100%{transform:scaleX(1)} }

.scn-leith-and-orkneys {
  background: linear-gradient(180deg, #6098b0 0%, #b8c8d8 50%, #f0d0a0 100%), radial-gradient(ellipse at 50% 15%, #ffe8c0 0%, transparent 80%);
}
.scn-leith-and-orkneys .lo-sky { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #70a8c0 0%, #d8e0e8 50%, #f8d8a0 100%); animation:lo-sky 30s ease-in-out infinite alternate; }
.scn-leith-and-orkneys .lo-sun { position:absolute; top:10%; left:40%; width:50px; height:50px; background:radial-gradient(circle, #fff4d0 0%, #f0c070 60%, transparent 100%); border-radius:50%; box-shadow:0 0 80px 40px rgba(240,192,112,.3); animation:lo-sun 60s linear infinite; }
.scn-leith-and-orkneys .lo-sea { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #4078a0 0%, #205070 100%); animation:lo-sea 10s ease-in-out infinite; }
.scn-leith-and-orkneys .lo-ship { position:absolute; bottom:30%; left:30%; width:140px; height:25px; background:linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:0 0 30% 30% / 0 0 60% 60%; }
.scn-leith-and-orkneys .lo-mast { position:absolute; bottom:30%; left:42%; width:4px; height:130px; background:linear-gradient(180deg, #3a2a1a, #1a0a00); transform-origin:bottom; animation:lo-rock 15s ease-in-out infinite; }
.scn-leith-and-orkneys .lo-sail1 { position:absolute; bottom:38%; left:32%; width:60px; height:80px; background:linear-gradient(180deg, #f0e8d0 0%, #d0c8b0 100%); clip-path:polygon(50% 0%,0% 90%,100% 90%); animation:lo-billow 8s ease-in-out infinite; }
.scn-leith-and-orkneys .lo-sail2 { position:absolute; bottom:38%; left:46%; width:50px; height:70px; background:linear-gradient(180deg, #f0e8d0 0%, #d0c8b0 100%); clip-path:polygon(50% 0%,0% 90%,100% 90%); animation:lo-billow 8s ease-in-out 4s infinite; }
.scn-leith-and-orkneys .lo-island { position:absolute; bottom:30%; right:8%; width:80px; height:40px; background:linear-gradient(180deg, #5a6a5a 0%, #3a4a3a 100%); border-radius:40% 40% 20% 20% / 60% 60% 20% 20%; }
.scn-leith-and-orkneys .lo-cloud { position:absolute; top:14%; left:15%; width:70px; height:15px; background:rgba(255,255,255,.4); border-radius:50%; filter:blur(5px); animation:lo-cloud 40s linear infinite; }
@keyframes lo-sky { 0%{opacity:.85} 50%{opacity:1} 100%{opacity:.75} }
@keyframes lo-sun { 0%{transform:translateX(0)} 100%{transform:translateX(30vw)} }
@keyframes lo-sea { 0%{transform:translateY(0)} 50%{transform:translateY(-2px)} 100%{transform:translateY(0)} }
@keyframes lo-rock { 0%,100%{transform:rotate(.5deg)} 50%{transform:rotate(-.5deg)} }
@keyframes lo-billow { 0%,100%{transform:scaleX(.95)} 50%{transform:scaleX(1.1)} }
@keyframes lo-cloud { 0%{transform:translateX(0)} 100%{transform:translateX(-90vw)} }

.scn-learning-to-fire-guns {
  background: linear-gradient(180deg, #203050 0%, #406090 30%, #d08050 70%, #805030 100%), radial-gradient(ellipse at 50% 10%, #e0a060 0%, transparent 80%);
}
.scn-learning-to-fire-guns .lg-sky { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #203050 0%, #406090 50%, #d08050 100%); animation:lg-sky 25s ease-in-out infinite alternate; }
.scn-learning-to-fire-guns .lg-sea { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #1a3a50 0%, #102030 100%); animation:lg-sea 8s ease-in-out infinite; }
.scn-learning-to-fire-guns .lg-deck { position:absolute; bottom:26%; left:10%; width:80%; height:12px; background:linear-gradient(90deg, #3a2a1a, #5a4a2a); border-radius:2px; }
.scn-learning-to-fire-guns .lg-cannon { position:absolute; bottom:26%; left:30%; width:60px; height:18px; background:linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius:30% 30% 10% 10%; transform-origin:right center; animation:lg-recoil 3s ease-in-out infinite; }
.scn-learning-to-fire-guns .lg-figure { position:absolute; bottom:28%; left:20%; width:16px; height:30px; background:linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius:40% 40% 30% 30% / 50% 50% 30% 30%; animation:lg-load 3s ease-in-out infinite; }
.scn-learning-to-fire-guns .lg-flash { position:absolute; bottom:32%; left:50%; width:40px; height:40px; background:radial-gradient(circle, #fff0a0 0%, #f0a040 40%, transparent 100%); border-radius:50%; animation:lg-flash 3s ease-in-out infinite; }
.scn-learning-to-fire-guns .lg-smoke { position:absolute; bottom:34%; left:48%; width:60px; height:30px; background:radial-gradient(ellipse, rgba(200,180,160,.5) 0%, transparent 100%); filter:blur(6px); animation:lg-smoke 3s ease-in-out infinite; }
.scn-learning-to-fire-guns .lg-enemy { position:absolute; bottom:22%; right:5%; width:100px; height:30px; background:linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%); clip-path:polygon(0% 20%, 30% 0%, 100% 0%, 100% 100%, 30% 100%, 0% 80%); animation:lg-enemy 20s ease-in-out infinite; }
@keyframes lg-sky { 0%{opacity:.7} 50%{opacity:.9} 100%{opacity:.6} }
@keyframes lg-sea { 0%{transform:translateY(0)} 50%{transform:translateY(-2px)} 100%{transform:translateY(0)} }
@keyframes lg-recoil { 0%,100%{transform:translateX(0) rotate(0)} 30%{transform:translateX(-10px) rotate(-5deg)} 60%{transform:translateX(0) rotate(0)} }
@keyframes lg-load { 0%,100%{transform:translateY(0) rotate(0)} 20%{transform:translateY(-4px) rotate(-3deg)} 50%{transform:translateY(0) rotate(3deg)} 70%{transform:translateY(-2px) rotate(-2deg)} }
@keyframes lg-flash { 0%{opacity:0;transform:scale(.5)} 15%{opacity:1;transform:scale(1.5)} 30%{opacity:0;transform:scale(1)} 100%{opacity:0} }
@keyframes lg-smoke { 0%{opacity:0;transform:scale(.5) translateY(0)} 30%{opacity:1;transform:scale(1.2) translateY(-10px)} 100%{opacity:0;transform:scale(1.5) translateY(-20px)} }
@keyframes lg-enemy { 0%{transform:translateX(0)} 50%{transform:translateX(-3px)} 100%{transform:translateX(0)} }

/* shipped-to-north-america */
.scn-shipped-to-north-america { background: linear-gradient(180deg, #5fa8d3 0%, #89c2d9 40%, #cbe4f0 70%), radial-gradient(ellipse at 50% 80%, #ffe066 0%, transparent 70%); }
.scn-shipped-to-north-america .sky-sna   { position:absolute; inset:0 0 60% 0; background: linear-gradient(180deg, #b2dfee 0%, #ffffff 100%); animation: sna-skydim 20s ease-in-out infinite alternate; }
.scn-shipped-to-north-america .sea-sna   { position:absolute; bottom:0; left:0; right:0; height:60%; background: linear-gradient(180deg, #2176ae 0%, #105a8a 100%); box-shadow: inset 0 10px 30px rgba(0,0,0,0.3); }
.scn-shipped-to-north-america .sun-sna   { position:absolute; top:20%; right:15%; width:60px; height:60px; background: radial-gradient(circle, #fff7b0 0%, #ffe066 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 80px 30px rgba(255,224,102,0.4); animation: sna-sunpulse 6s ease-in-out infinite; }
.scn-shipped-to-north-america .ship-sna  { position:absolute; bottom:35%; left:40%; width:100px; height:40px; background: linear-gradient(180deg, #6b4226 0%, #4a2c14 100%); border-radius:20% 20% 40% 40%/40% 40% 60% 60%; transform: rotate(-2deg); animation: sna-shipbob 8s ease-in-out infinite; }
.scn-shipped-to-north-america .sail-sna  { position:absolute; bottom:45%; left:44%; width:30px; height:50px; background: linear-gradient(180deg, #fdfbf7 0%, #e8e4d8 100%); border-radius:0 30% 30% 0; transform-origin: bottom left; animation: sna-sailswell 10s ease-in-out infinite; }
.scn-shipped-to-north-america .wave-sna  { position:absolute; bottom:0; left:-10%; width:120%; height:8%; background: linear-gradient(180deg, transparent 0%, rgba(255,255,255,0.2) 50%, transparent 100%); border-radius:50%; filter: blur(2px); }
.scn-shipped-to-north-america .wave1-sna { animation: sna-wave1 6s ease-in-out infinite; }
.scn-shipped-to-north-america .wave2-sna { bottom:5%; animation: sna-wave2 9s ease-in-out infinite 1s; }
.scn-shipped-to-north-america .cloud-sna { position:absolute; top:10%; width:80px; height:20px; background: linear-gradient(180deg, rgba(255,255,255,0.6) 0%, rgba(255,255,255,0.1) 100%); border-radius:50%; filter: blur(6px); }
.scn-shipped-to-north-america .cloud1-sna { left:20%; animation: sna-cloud1 40s linear infinite; }
.scn-shipped-to-north-america .cloud2-sna { top:18%; left:60%; width:60px; height:14px; animation: sna-cloud2 50s linear infinite 10s; }
@keyframes sna-skydim { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes sna-sunpulse { 0% { transform:scale(1); opacity:0.9 } 50% { transform:scale(1.1); opacity:1 } 100% { transform:scale(0.95); opacity:0.85 } }
@keyframes sna-shipbob { 0%,100% { transform:rotate(-2deg) translateY(0) } 50% { transform:rotate(-2deg) translateY(-4px) } }
@keyframes sna-sailswell { 0%,100% { transform:rotate(0deg) scaleX(1) } 50% { transform:rotate(5deg) scaleX(0.95) } }
@keyframes sna-wave1 { 0%,100% { transform:translateX(0) } 50% { transform:translateX(20px) } }
@keyframes sna-wave2 { 0%,100% { transform:translateX(0) } 50% { transform:translateX(-25px) } }
@keyframes sna-cloud1 { 0% { transform:translateX(-100px) } 100% { transform:translateX(120vw) } }
@keyframes sna-cloud2 { 0% { transform:translateX(0) } 100% { transform:translateX(-130vw) } }

/* solitary-in-virginia */
.scn-solitary-in-virginia { background: linear-gradient(180deg, #f0e6d3 0%, #d9cbb3 50%, #a68a64 100%), radial-gradient(ellipse at 50% 0%, #fef9ef 0%, transparent 70%); }
.scn-solitary-in-virginia .sky-siv    { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #e5f5ff 0%, #cce0ff 100%); animation: siv-skyshift 15s ease-in-out infinite; }
.scn-solitary-in-virginia .field-siv  { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #7a9e6b 0%, #5c7a4e 100%); }
.scn-solitary-in-virginia .hills-siv  { position:absolute; bottom:40%; left:0; right:0; height:20%; background: linear-gradient(180deg, #7a8b6a 0%, #4a5a3a 100%); border-radius:60% 40% 0 0/80% 60% 0 0; box-shadow: inset 0 5px 10px rgba(0,0,0,0.2); }
.scn-solitary-in-virginia .figure-siv { position:absolute; bottom:25%; left:50%; width:14px; height:28px; background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%); border-radius:50% 50% 40% 40%/60% 60% 40% 40%; transform-origin: bottom center; animation: siv-bend 12s ease-in-out infinite; }
.scn-solitary-in-virginia .stones-siv { position:absolute; bottom:22%; left:30%; width:20px; height:12px; background:#6a5a4a; border-radius:40%; box-shadow: 4px 8px 0 #5a4a3a; animation: siv-stonemove 20s linear infinite; }
.scn-solitary-in-virginia .plant-siv  { position:absolute; bottom:30%; width:8px; height:20px; background: linear-gradient(180deg, #3a5a2a 0%, #2a4a1a 100%); border-radius:50% 50% 0 0; transform-origin: bottom center; }
.scn-solitary-in-virginia .plant1-siv { left:20%; animation: siv-plantsway 8s ease-in-out infinite -2s; }
.scn-solitary-in-virginia .plant2-siv { left:70%; width:10px; height:25px; animation: siv-plantsway 10s ease-in-out infinite -4s; }
.scn-solitary-in-virginia .tree-siv   { position:absolute; bottom:45%; right:15%; width:6px; height:40px; background: #3a2a1a; border-radius:10%; box-shadow: 0 0 0 0 #000; animation: siv-treebreath 8s ease-in-out infinite; }
@keyframes siv-skyshift { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes siv-bend { 0%,100% { transform:translateX(0) translateY(0) rotate(0deg) } 25% { transform:translateX(3px) translateY(-1px) rotate(5deg) } 75% { transform:translateX(-3px) translateY(-2px) rotate(-3deg) } }
@keyframes siv-stonemove { 0% { transform:translate(0,0) } 50% { transform:translate(-2px,2px) } 100% { transform:translate(0,0) } }
@keyframes siv-plantsway { 0%,100% { transform:rotate(0deg) } 50% { transform:rotate(8deg) } }
@keyframes siv-treebreath { 0%,100% { transform:scaleY(1) } 50% { transform:scaleY(0.98) } }

/* fanning-the-gentleman */
.scn-fanning-the-gentleman { background: linear-gradient(180deg, #d4c4a8 0%, #b8a48c 50%, #8c7a64 100%), radial-gradient(ellipse at 30% 60%, #ffeaa7 0%, transparent 50%); }
.scn-fanning-the-gentleman .wall-ftg    { position:absolute; inset:0; background: linear-gradient(180deg, #e8ddd0 0%, #cbbca8 100%); }
.scn-fanning-the-gentleman .window-ftg  { position:absolute; top:10%; left:35%; width:30%; height:45%; background: linear-gradient(180deg, #fef9c3 0%, #fce38a 100%); border:4px solid #6a5a4a; border-radius:4px; box-shadow: 0 0 40px 10px rgba(253,242,160,0.5); animation: ftg-windowpulse 7s ease-in-out infinite; }
.scn-fanning-the-gentleman .bed-ftg     { position:absolute; bottom:18%; left:20%; width:60%; height:20%; background: linear-gradient(180deg, #8b6f5c 0%, #6a4f3e 100%); border-radius:10% 10% 30% 30%/20% 20% 60% 60%; box-shadow: 0 4px 15px rgba(0,0,0,0.3); }
.scn-fanning-the-gentleman .gentleman-ftg { position:absolute; bottom:25%; left:30%; width:30%; height:12%; background: linear-gradient(180deg, #d4b89c 0%, #b89a7a 100%); border-radius:40% 40% 30% 30%/60% 60% 40% 40%; transform-origin: bottom center; animation: ftg-breath 8s ease-in-out infinite; }
.scn-fanning-the-gentleman .fan-ftg     { position:absolute; bottom:50%; left:60%; }
.scn-fanning-the-gentleman .fanblade-ftg { width:50px; height:50px; background: repeating-conic-gradient(#e8d5b0 0% 10%, transparent 10% 20%); border-radius:50%; animation: ftg-fanspin 2s linear infinite; }
.scn-fanning-the-gentleman .fanbase-ftg { width:12px; height:20px; background: #5a4a3a; border-radius:20%; left:19px; top:45px; }
.scn-fanning-the-gentleman .shadow-ftg  { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, transparent, rgba(0,0,0,0.4)); animation: ftg-shadowcreep 15s ease-in-out infinite; }
.scn-fanning-the-gentleman .curtain-ftg { position:absolute; top:0; right:10%; width:15%; height:100%; background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%); border-radius:0 10% 10% 0; animation: ftg-curtainsway 12s ease-in-out infinite; }
@keyframes ftg-windowpulse { 0%,100% { opacity:0.9; box-shadow: 0 0 40px 10px rgba(253,242,160,0.5); } 50% { opacity:1; box-shadow: 0 0 60px 20px rgba(253,242,160,0.7); } }
@keyframes ftg-breath { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } }
@keyframes ftg-fanspin { from { transform: rotate(0deg) } to { transform: rotate(360deg) } }
@keyframes ftg-shadowcreep { 0% { opacity:0.4 } 50% { opacity:0.6 } 100% { opacity:0.4 } }
@keyframes ftg-curtainsway { 0%,100% { transform: translateX(0) } 50% { transform: translateX(-5px) } }

/* iron-muzzle */
.scn-iron-muzzle { background: linear-gradient(180deg, #1a1a24 0%, #2a2a3a 50%, #3a3a4a 100%), radial-gradient(ellipse at 50% 0%, #4a4a5a 0%, transparent 60%); }
.scn-iron-muzzle .bg-imz    { position:absolute; inset:0; background: linear-gradient(180deg, #2a2a34 0%, #1a1a22 100%); animation: imz-flickenv 12s ease-in-out infinite; }
.scn-iron-muzzle .table-imz { position:absolute; bottom:20%; left:20%; width:60%; height:8%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:10% 10% 0 0; box-shadow: 0 -4px 8px rgba(0,0,0,0.6); }
.scn-iron-muzzle .muzzle-imz { position:absolute; bottom:30%; left:40%; width:20%; height:12%; background: repeating-linear-gradient(90deg, #5a4a3a 0px, #5a4a3a 4px, transparent 4px, transparent 8px); border:3px solid #6a5a4a; border-radius:20% / 30%; box-shadow: 0 0 20px rgba(0,0,0,0.5); animation: imz-muzzlecreak 18s ease-in-out infinite; }
.scn-iron-muzzle .figure-imz { position:absolute; bottom:28%; left:25%; width:20%; height:15%; background: linear-gradient(180deg, #151520 0%, #0a0a10 100%); border-radius:50% 50% 40% 40%/60% 60% 40% 40%; transform-origin: bottom center; animation: imz-sleepbreath 10s ease-in-out infinite; }
.scn-iron-muzzle .fan-imz   { position:absolute; bottom:30%; right:25%; width:30px; height:30px; background: #3a2a1a; border-radius:50%; box-shadow: inset 2px 2px 4px #1a0a00; animation: imz-fanstill 6s ease-in-out infinite; }
.scn-iron-muzzle .candle-imz { position:absolute; bottom:35%; left:35%; width:8px; height:20px; background: #7a6a4a; border-radius:30%; box-shadow: 0 -8px 12px rgba(255,180,50,0.3); }
.scn-iron-muzzle .flame-imz  { position:absolute; bottom:55%; left:35.5%; width:6px; height:15px; background: radial-gradient(ellipse, #ffaa40 0%, #ffd060 40%, transparent 100%); border-radius:50%; animation: imz-flameflicker 3s ease-in-out infinite; }
.scn-iron-muzzle .shadow-imz { position:absolute; left:30%; bottom:0; width:40%; height:30%; background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.6) 0%, transparent 70%); animation: imz-shadowmorph 20s ease-in-out infinite; }
@keyframes imz-flickenv { 0% { opacity:0.8 } 50% { opacity:0.95 } 100% { opacity:0.85 } }
@keyframes imz-muzzlecreak { 0%,100% { transform:rotate(0deg) scale(1) } 25% { transform:rotate(2deg) scale(1.01) } 75% { transform:rotate(-1deg) scale(0.99) } }
@keyframes imz-sleepbreath { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } }
@keyframes imz-fanstill { 0%,100% { transform: rotate(0deg) } 50% { transform: rotate(3deg) } }
@keyframes imz-flameflicker { 0%,100% { transform: scale(1) opacity(0.9) } 25% { transform: scale(1.1) opacity(1) } 75% { transform: scale(0.9) opacity(0.7) } }
@keyframes imz-shadowmorph { 0% { transform:translateX(0) } 50% { transform:translateX(10px) scaleX(1.1) } 100% { transform:translateX(0) } }

/* dr-irving-mosquito-shore */
.scn-dr-irving-mosquito-shore {
  background: linear-gradient(180deg, #b0d4e8 0%, #76a9c9 30%, #3b6a8a 60%), radial-gradient(ellipse at 80% 20%, #fcebb0 0%, transparent 40%);
}
.scn-dr-irving-mosquito-shore .sky-ims {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #d4e8f0 0%, #a0c8e0 100%);
  animation: ims-sky 20s ease-in-out infinite alternate;
}
.scn-dr-irving-mosquito-shore .sea-ims {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #3a7a8a 0%, #1a5a6a 100%);
  animation: ims-sea 6s ease-in-out infinite alternate;
}
.scn-dr-irving-mosquito-shore .sloop-hull-ims {
  position: absolute; bottom: 40%; left: 30%; width: 120px; height: 40px;
  background: linear-gradient(135deg, #6a4a2a 0%, #4a2a1a 50%, #3a1a0a 100%);
  border-radius: 10% 10% 40% 40% / 20% 20% 60% 60%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.4);
  animation: ims-sloop 8s ease-in-out infinite;
}
.scn-dr-irving-mosquito-shore .sloop-mast-ims {
  position: absolute; bottom: 68%; left: 38%; width: 4px; height: 80px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2212 100%);
  transform-origin: bottom center;
  animation: ims-mast 8s ease-in-out infinite;
}
.scn-dr-irving-mosquito-shore .sloop-sail-fore-ims {
  position: absolute; bottom: 55%; left: 32%; width: 50px; height: 60px;
  background: linear-gradient(180deg, #f0e8d0 0%, #d8c8a0 100%);
  border-radius: 20% 20% 10% 10% / 60% 60% 40% 40%;
  clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%);
  animation: ims-sail 5s ease-in-out infinite alternate;
}
.scn-dr-irving-mosquito-shore .sloop-sail-aft-ims {
  position: absolute; bottom: 52%; left: 38%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #e8dcc0 0%, #c8b890 100%);
  border-radius: 20% 20% 10% 10% / 60% 60% 40% 40%;
  clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%);
  animation: ims-sail 5s ease-in-out infinite alternate-reverse;
  animation-delay: -2.5s;
}
.scn-dr-irving-mosquito-shore .shore-ims {
  position: absolute; bottom: 32%; left: 5%; right: 60%; height: 12%;
  background: linear-gradient(180deg, #c8b080 0%, #a08860 100%);
  border-radius: 30% 30% 0 0 / 80% 80% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.2);
}
.scn-dr-irving-mosquito-shore .mosquito-ims {
  position: absolute; width: 6px; height: 6px;
  background: radial-gradient(circle, #f0e8d0 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(1px);
  animation: ims-mosquito 12s linear infinite;
}
.scn-dr-irving-mosquito-shore .mosquito-a-ims { top: 20%; left: 10%; animation-delay: 0s; }
.scn-dr-irving-mosquito-shore .mosquito-b-ims { top: 35%; left: 70%; animation-delay: -6s; }
.scn-dr-irving-mosquito-shore .sun-ims {
  position: absolute; top: 5%; right: 15%; width: 80px; height: 80px;
  background: radial-gradient(circle, #fff4c0 0%, #fce0a0 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 80px 40px rgba(252,224,160,0.3);
  animation: ims-sun 4s ease-in-out infinite alternate;
}

@keyframes ims-sky     { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes ims-sea     { 0% { transform: translateY(0); } 50% { transform: translateY(3px); } 100% { transform: translateY(-2px); } }
@keyframes ims-sloop   { 0%, 100% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(2deg) translateY(-2px); } }
@keyframes ims-mast    { 0%, 100% { transform: rotate(0deg); } 50% { transform: rotate(1.5deg); } }
@keyframes ims-sail    { 0% { transform: scaleX(1); } 50% { transform: scaleX(0.95) translateX(2px); } 100% { transform: scaleX(1); } }
@keyframes ims-mosquito { 0% { transform: translate(0, 0) scale(0.8); opacity: 0.6; } 25% { transform: translate(30px, -20px) scale(1.2); opacity: 1; } 50% { transform: translate(70px, 5px) scale(0.9); opacity: 0.8; } 75% { transform: translate(40px, -10px) scale(1); opacity: 0.9; } 100% { transform: translate(0, 0) scale(0.8); opacity: 0.6; } }
@keyframes ims-sun     { 0% { box-shadow: 0 0 60px 30px rgba(252,224,160,0.3); transform: scale(1); } 50% { box-shadow: 0 0 100px 50px rgba(252,224,160,0.5); transform: scale(1.05); } 100% { box-shadow: 0 0 70px 35px rgba(252,224,160,0.35); transform: scale(1); } }

/* jamaica-slave-purchase */
.scn-jamaica-slave-purchase {
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 40%, #1a0a00 100%), radial-gradient(ellipse at 50% 100%, #4a3a2a 0%, transparent 60%);
}
.scn-jamaica-slave-purchase .bg-interior-jsp {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #4a3a2a 0%, #2a1a0a 100%);
  animation: jsp-bg 12s ease-in-out infinite alternate;
}
.scn-jamaica-slave-purchase .deck-planks-jsp {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: repeating-linear-gradient(90deg, #5a4a2a 0px, #5a4a2a 2px, #3a2a1a 2px, #3a2a1a 4px);
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.6);
}
.scn-jamaica-slave-purchase .hatch-glow-jsp {
  position: absolute; top: 10%; left: 40%; width: 40px; height: 50px;
  background: radial-gradient(ellipse at 50% 50%, #f0d0a0 0%, #d0b080 40%, transparent 70%);
  border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%;
  box-shadow: 0 0 60px 30px rgba(200,160,100,0.4);
  animation: jsp-hatch 3s ease-in-out infinite alternate;
}
.scn-jamaica-slave-purchase .figure-trader-jsp {
  position: absolute; bottom: 20%; left: 25%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: jsp-figure 5s ease-in-out infinite;
}
.scn-jamaica-slave-purchase .figure-slave1-jsp {
  position: absolute; bottom: 22%; left: 48%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0000 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: jsp-figure 5s ease-in-out infinite -1s;
}
.scn-jamaica-slave-purchase .figure-slave2-jsp {
  position: absolute; bottom: 25%; left: 62%; width: 20px; height: 42px;
  background: linear-gradient(180deg, #1a0a00 0%, #0a0000 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: jsp-figure 5s ease-in-out infinite -2s;
}
.scn-jamaica-slave-purchase .chain-bar-jsp {
  position: absolute; bottom: 45%; left: 20%; right: 30%; height: 3px;
  background: repeating-linear-gradient(90deg, #4a3a2a 0px, #4a3a2a 4px, transparent 4px, transparent 6px);
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation: jsp-chain 4s ease-in-out infinite alternate;
}
.scn-jamaica-slave-purchase .lantern-halo-jsp {
  position: absolute; top: 15%; right: 20%; width: 8px; height: 8px;
  background: radial-gradient(circle, #ffd080 0%, #b08040 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 15px rgba(200,140,60,0.5);
  animation: jsp-lantern 3s ease-in-out infinite alternate;
}

@keyframes jsp-bg    { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes jsp-hatch { 0% { transform: scaleY(0.8); opacity: 0.6; } 50% { transform: scaleY(1.1); opacity: 1; } 100% { transform: scaleY(0.9); opacity: 0.8; } }
@keyframes jsp-figure { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 25% { transform: translateX(4px) translateY(-1px) rotate(1deg); } 50% { transform: translateX(8px) translateY(0) rotate(2deg); } 75% { transform: translateX(4px) translateY(-1px) rotate(-1deg); } 100% { transform: translateX(0) translateY(0) rotate(-2deg); } }
@keyframes jsp-chain { 0% { transform: translateY(0); } 50% { transform: translateY(2px); } 100% { transform: translateY(-1px); } }
@keyframes jsp-lantern { 0% { box-shadow: 0 0 20px 10px rgba(200,140,60,0.3); opacity: 0.8; } 50% { box-shadow: 0 0 40px 20px rgba(200,140,60,0.6); opacity: 1; } 100% { box-shadow: 0 0 25px 12px rgba(200,140,60,0.35); opacity: 0.9; } }

/* mosquito-shore-plantation */
.scn-mosquito-shore-plantation {
  background: linear-gradient(180deg, #a0c8d8 0%, #6a9ab0 35%, #3a6a7a 70%, #1a4a5a 100%), radial-gradient(ellipse at 80% 30%, #d0e8f0 0%, transparent 50%);
}
.scn-mosquito-shore-plantation .sky-msp {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #c8dce8 0%, #90b8c8 100%);
  animation: msp-sky 15s ease-in-out infinite alternate;
}
.scn-mosquito-shore-plantation .hills-msp {
  position: absolute; bottom: 35%; left: 0; right: 0; height: 20%;
  background: linear-gradient(135deg, #4a6a3a 0%, #2a4a2a 100%);
  border-radius: 40% 60% 0 0 / 70% 80% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.3);
  animation: msp-hills 18s ease-in-out infinite alternate;
}
.scn-mosquito-shore-plantation .lagoon-msp {
  position: absolute; bottom: 10%; left: 5%; right: 5%; height: 30%;
  background: linear-gradient(135deg, #3a8a9a 0%, #1a5a6a 100%);
  border-radius: 0 0 30% 30% / 0 0 50% 50%;
  box-shadow: inset 0 -10px 30px rgba(0,20,30,0.4);
  animation: msp-lagoon 10s ease-in-out infinite alternate;
}
.scn-mosquito-shore-plantation .river-msp {
  position: absolute; bottom: 18%; left: 20%; width: 40px; height: 200px;
  background: linear-gradient(180deg, #4a9aaa 0%, #2a7a8a 100%);
  border-radius: 0 0 50% 50% / 0 0 80% 80%;
  transform: rotate(-10deg);
  transform-origin: top center;
  animation: msp-river 7s ease-in-out infinite alternate;
}
.scn-mosquito-shore-plantation .tortoise-msp {
  position: absolute; bottom: 18%; left: 65%; width: 24px; height: 14px;
  background: radial-gradient(ellipse at 50% 50%, #5a4a2a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: inset 0 2px 6px rgba(0,0,0,0.4);
  animation: msp-tortoise 9s ease-in-out infinite;
}
.scn-mosquito-shore-plantation .fish-msp {
  position: absolute; width: 12px; height: 6px;
  background: radial-gradient(ellipse at 30% 50%, #d0d8c0 0%, #809080 100%);
  border-radius: 50%;
  animation: msp-fish 10s linear infinite;
}
.scn-mosquito-shore-plantation .fish-a-msp { bottom: 22%; left: 30%; animation-delay: 0s; }
.scn-mosquito-shore-plantation .fish-b-msp { bottom: 16%; left: 55%; animation-delay: -5s; }
.scn-mosquito-shore-plantation .house-msp {
  position: absolute; bottom: 28%; left: 40%; width: 60px; height: 40px;
  background: linear-gradient(135deg, #6a4a2a 0%, #4a2a1a 100%);
  border-radius: 4% 4% 8% 8% / 6% 6% 10% 10%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.4);
  animation: msp-house 8s ease-in-out infinite;
}
.scn-mosquito-shore-plantation .tree-left-msp {
  position: absolute; bottom: 25%; left: 10%; width: 8px; height: 100px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 0 0 10% 10%;
  transform-origin: bottom center;
  animation: msp-tree 12s ease-in-out infinite;
}

@keyframes msp-sky    { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes msp-hills  { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes msp-lagoon { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.97); } 100% { transform: scaleY(1); } }
@keyframes msp-river  { 0% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-8deg) translateY(-2px); } 100% { transform: rotate(-10deg) translateY(0); } }
@keyframes msp-tortoise { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(5px) rotate(2deg); } 50% { transform: translateX(10px) rotate(0deg); } 75% { transform: translateX(15px) rotate(-1deg); } 100% { transform: translateX(20px) rotate(0deg); } }
@keyframes msp-fish   { 0% { transform: translateX(0) scaleX(1); } 25% { transform: translateX(30px) scaleX(0.9); } 50% { transform: translateX(60px) scaleX(1.1); } 75% { transform: translateX(20px) scaleX(0.95); } 100% { transform: translateX(0) scaleX(1); } }
@keyframes msp-house  { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes msp-tree   { 0% { transform: rotate(0deg); } 50% { transform: rotate(3deg); } 100% { transform: rotate(0deg); } }

/* mosquito-indian-ways */
.scn-mosquito-indian-ways {
  background: linear-gradient(180deg, #e0a060 0%, #c08040 30%, #906030 60%, #5a3a1a 100%), radial-gradient(ellipse at 50% 0%, #f0c080 0%, transparent 50%);
}
.scn-mosquito-indian-ways .sky-miw {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #f0c080 0%, #c09050 100%);
  animation: miw-sky 16s ease-in-out infinite alternate;
}
.scn-mosquito-indian-ways .river-miw {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 35%;
  background: linear-gradient(135deg, #3a7a6a 0%, #1a5a4a 100%);
  border-radius: 40% 40% 0 0 / 60% 60% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.3);
  animation: miw-river 8s ease-in-out infinite alternate;
}
.scn-mosquito-indian-ways .shore-miw {
  position: absolute; bottom: 25%; left: 5%; right: 60%; height: 10%;
  background: linear-gradient(135deg, #a08050 0%, #806030 100%);
  border-radius: 0 60% 0 0 / 0 80% 0 0;
  box-shadow: inset 0 6px 12px rgba(0,0,0,0.2);
}
.scn-mosquito-indian-ways .palm-left-miw {
  position: absolute; bottom: 18%; left: 3%; width: 8px; height: 90px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 0 0 10% 10%;
  transform-origin: bottom center;
  animation: miw-palm 10s ease-in-out infinite;
}
.scn-mosquito-indian-ways .palm-right-miw {
  position: absolute; bottom: 20%; right: 5%; width: 6px; height: 70px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0000 100%);
  border-radius: 0 0 10% 10%;
  transform-origin: bottom center;
  animation: miw-palm 12s ease-in-out infinite -3s;
}
.scn-mosquito-indian-ways .canoe-miw {
  position: absolute; bottom: 40%; left: 35%; width: 80px; height: 20px;
  background: linear-gradient(135deg, #5a3a1a 0%, #3a1a0a 100%);
  border-radius: 30% 30% 50% 50% / 40% 40% 60% 60%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: miw-canoe 6s ease-in-out infinite alternate;
}
.scn-mosquito-indian-ways .indian-miw {
  position: absolute; bottom: 40%; left: 48%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #1a0a00 0%, #0a0000 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: miw-indian 3s ease-in-out infinite;
}
.scn-mosquito-indian-ways .turtle-miw {
  position: absolute; bottom: 18%; left: 65%; width: 20px; height: 12px;
  background: radial-gradient(ellipse at 50% 50%, #5a4a2a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: miw-turtle 14s linear infinite;
}
.scn-mosquito-indian-ways .basket-miw {
  position: absolute; bottom: 22%; left: 70%; width: 16px; height: 14px;
  background: radial-gradient(ellipse at 50% 50%, #6a4a2a 0%, #4a2a1a 100%);
  border-radius: 20% 20% 40% 40% / 30% 30% 50% 50%;
  box-shadow: inset 0 2px 6px rgba(0,0,0,0.3);
  animation: miw-basket 5s ease-in-out infinite alternate;
}
.scn-mosquito-indian-ways .shell-miw {
  position: absolute; bottom: 20%; left: 75%; width: 8px; height: 6px;
  background: radial-gradient(ellipse at 50% 50%, #b09870 0%, #907050 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: miw-shell 7s ease-in-out infinite alternate-reverse;
}

@keyframes miw-sky    { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes miw-river  { 0% { transform: translateY(0); } 50% { transform: translateY(2px); } 100% { transform: translateY(-1px); } }
@keyframes miw-palm   { 0% { transform: rotate(0deg); } 50% { transform: rotate(4deg); } 100% { transform: rotate(0deg); } }
@keyframes miw-canoe  { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes miw-indian { 0% { transform: translateY(0) rotate(-2deg); } 25% { transform: translateY(-1px) rotate(1deg); } 50% { transform: translateY(0) rotate(2deg); } 75% { transform: translateY(-1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes miw-turtle { 0% { transform: translateX(0); } 25% { transform: translateX(10px); } 50% { transform: translateX(20px); } 75% { transform: translateX(30px); } 100% { transform: translateX(40px); } }
@keyframes miw-basket { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.05); } 100% { transform: scaleY(1); } }
@keyframes miw-shell  { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(3px) rotate(10deg); } 100% { transform: translateX(0) rotate(0deg); } }

.scn-fish-jumps-aboard {
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 50%, #1a0a00 100%),
              radial-gradient(ellipse at 50% 60%, rgba(200,150,80,.25) 0%, transparent 60%);
}
.scn-fish-jumps-aboard .wall { position:absolute; inset:0; background: linear-gradient(135deg, #4a3a2a 0%, #3a2a1a 100%); }
.scn-fish-jumps-aboard .porthole { position:absolute; top:22%; left:12%; width:40px; height:40px; border-radius:50%; background: radial-gradient(circle at 35% 35%, #6080a0 0%, #1a2a3a 100%); box-shadow: inset 0 0 8px #0008, 0 0 0 4px #5a4a3a; animation: fja-porthole 6s ease-in-out infinite alternate; }
.scn-fish-jumps-aboard .table { position:absolute; bottom:22%; left:35%; width:100px; height:14px; background: linear-gradient(180deg, #5a3a1a 0%, #3a2a0a 100%); border-radius:4px; box-shadow: 0 4px 6px rgba(0,0,0,.6); }
.scn-fish-jumps-aboard .lantern { position:absolute; top:32%; left:55%; width:16px; height:24px; border-radius:20% 20% 10% 10%; background: radial-gradient(circle at 50% 40%, #c08040 0%, #5a2a0a 100%); box-shadow: 0 0 20px 6px #c08060, 0 0 40px 12px rgba(192,128,96,.4); animation: fja-lantern 3s ease-in-out infinite; }
.scn-fish-jumps-aboard .fish { position:absolute; bottom:30%; left:45%; width:40px; height:16px; border-radius:50% 50% 50% 50% / 60% 60% 40% 40%; background: linear-gradient(180deg, #6a5a3a 0%, #4a3a1a 100%); transform-origin: center bottom; animation: fja-fish 4s ease-in-out infinite; }
.scn-fish-jumps-aboard .figure { position:absolute; bottom:18%; left:30%; width:20px; height:44px; border-radius:40% 40% 50% 50% / 50% 50% 40% 40%; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); transform-origin: bottom center; animation: fja-figure 6s ease-in-out infinite; }
@keyframes fja-porthole { 0% { opacity:.7; transform:scale(1); } 50% { opacity:.9; transform:scale(1.02); } 100% { opacity:.75; transform:scale(.98); } }
@keyframes fja-lantern { 0% { box-shadow:0 0 16px 4px #c08060, 0 0 32px 8px rgba(192,128,96,.3); } 50% { box-shadow:0 0 28px 8px #e0a060, 0 0 48px 14px rgba(224,160,96,.5); } 100% { box-shadow:0 0 18px 5px #c08060, 0 0 36px 10px rgba(192,128,96,.35); } }
@keyframes fja-fish { 0% { transform:translate(0,0) rotate(-3deg); } 30% { transform:translate(4px,-3px) rotate(2deg); } 60% { transform:translate(-2px,-1px) rotate(-1deg); } 100% { transform:translate(0,0) rotate(0); } }
@keyframes fja-figure { 0% { transform:translate(0,0) rotate(1deg); } 40% { transform:translate(2px,-1px) rotate(-2deg); } 70% { transform:translate(-1px,0) rotate(1deg); } 100% { transform:translate(0,0) rotate(0); } }

.scn-large-fish-appears {
  background: linear-gradient(180deg, #0a0a2a 0%, #1a1a3a 40%, #0a2a4a 100%),
              radial-gradient(ellipse at 50% 15%, #2a3a5a 0%, transparent 60%);
}
.scn-large-fish-appears .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #1a1a3a 0%, #0a0a2a 100%); animation: lfa-sky 12s ease-in-out infinite alternate; }
.scn-large-fish-appears .moon { position:absolute; top:8%; right:20%; width:30px; height:30px; border-radius:50%; background: radial-gradient(circle at 40% 40%, #e0e0c0 0%, #8080a0 100%); box-shadow: 0 0 30px 10px #c0c0d0, 0 0 60px 20px rgba(128,128,160,.4); animation: lfa-moon 8s ease-in-out infinite alternate; }
.scn-large-fish-appears .ocean { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #0a1a2a 0%, #0a0a1a 100%); animation: lfa-waves 15s ease-in-out infinite; }
.scn-large-fish-appears .ship-deck { position:absolute; bottom:38%; left:20%; right:20%; height:8%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius:4px; box-shadow: 0 -4px 8px rgba(0,0,0,.5); }
.scn-large-fish-appears .railing { position:absolute; bottom:45%; left:18%; right:18%; height:4px; background: #4a3a2a; border-radius:2px; }
.scn-large-fish-appears .figure { position:absolute; bottom:32%; left:35%; width:18px; height:36px; border-radius:40% 40% 50% 50% / 50% 50% 40% 40%; background: linear-gradient(180deg, #1a0a1a 0%, #0a000a 100%); transform-origin: bottom center; animation: lfa-figure 9s ease-in-out infinite; }
.scn-large-fish-appears .fish { position:absolute; bottom:30%; left:50%; width:80px; height:30px; border-radius:50% 70% 50% 50% / 60% 60% 40% 40%; background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%); transform-origin: center right; animation: lfa-fish 12s ease-in-out infinite; }
@keyframes lfa-sky { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.7; } }
@keyframes lfa-moon { 0% { box-shadow:0 0 20px 8px #c0c0d0, 0 0 40px 15px rgba(128,128,160,.3); } 50% { box-shadow:0 0 35px 12px #d0d0e0, 0 0 60px 20px rgba(128,128,160,.5); } 100% { box-shadow:0 0 25px 10px #c0c0d0, 0 0 50px 18px rgba(128,128,160,.35); } }
@keyframes lfa-waves { 0% { transform:translateX(0) translateY(0); } 50% { transform:translateX(-10px) translateY(-2px); } 100% { transform:translateX(0) translateY(0); } }
@keyframes lfa-figure { 0% { transform:translate(0,0) rotate(1deg); } 30% { transform:translate(2px,-1px) rotate(-1deg); } 60% { transform:translate(-1px,0) rotate(2deg); } 100% { transform:translate(0,0) rotate(0); } }
@keyframes lfa-fish { 0% { transform:translateX(0) scaleX(1); } 50% { transform:translateX(-20px) scaleX(1.1); } 100% { transform:translateX(0) scaleX(1); } }

.scn-fish-captain-greed {
  background: linear-gradient(180deg, #0a0a2a 0%, #1a1a3a 40%, #0a2a4a 100%),
              radial-gradient(ellipse at 30% 20%, #2a3a5a 0%, transparent 60%);
}
.scn-fish-captain-greed .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #1a1a3a 0%, #0a0a2a 100%); }
.scn-fish-captain-greed .moon { position:absolute; top:12%; left:15%; width:28px; height:28px; border-radius:50%; background: radial-gradient(circle at 40% 40%, #d0d0c0 0%, #8080a0 100%); box-shadow: 0 0 25px 8px #b0b0c0, 0 0 50px 16px rgba(128,128,160,.3); animation: fcg-moon 8s ease-in-out infinite alternate; }
.scn-fish-captain-greed .ocean { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #0a1a2a 0%, #0a0a1a 100%); animation: fcg-waves 15s ease-in-out infinite; }
.scn-fish-captain-greed .deck { position:absolute; bottom:38%; left:15%; right:15%; height:8%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius:4px; box-shadow: 0 -4px 8px rgba(0,0,0,.5); }
.scn-fish-captain-greed .figure-narrator { position:absolute; bottom:32%; left:40%; width:18px; height:36px; border-radius:40% 40% 50% 50% / 50% 50% 40% 40%; background: linear-gradient(180deg, #1a0a1a 0%, #0a000a 100%); transform-origin: bottom center; animation: fcg-narrator 7s ease-in-out infinite; }
.scn-fish-captain-greed .figure-captain { position:absolute; bottom:32%; left:55%; width:20px; height:38px; border-radius:40% 40% 50% 50% / 50% 50% 40% 40%; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); transform-origin: bottom center; animation: fcg-captain 5s ease-in-out infinite; }
.scn-fish-captain-greed .fish { position:absolute; bottom:30%; left:42%; width:30px; height:12px; border-radius:50% 50% 30% 30% / 60% 60% 40% 40%; background: linear-gradient(180deg, #6a5a3a 0%, #4a3a1a 100%); transform-origin: center; animation: fcg-fish 4s ease-in-out infinite; }
.scn-fish-captain-greed .lantern { position:absolute; top:28%; left:50%; width:14px; height:20px; border-radius:20% 20% 10% 10%; background: radial-gradient(circle at 50% 40%, #c08040 0%, #5a2a0a 100%); box-shadow: 0 0 18px 5px #c08060, 0 0 36px 10px rgba(192,128,96,.4); animation: fcg-lantern 3s ease-in-out infinite; }
@keyframes fcg-moon { 0% { box-shadow:0 0 20px 6px #b0b0c0, 0 0 40px 12px rgba(128,128,160,.3); } 50% { box-shadow:0 0 30px 10px #c0c0d0, 0 0 55px 18px rgba(128,128,160,.5); } 100% { box-shadow:0 0 22px 8px #b0b0c0, 0 0 45px 14px rgba(128,128,160,.35); } }
@keyframes fcg-waves { 0% { transform:translateX(0) translateY(0); } 50% { transform:translateX(-8px) translateY(-2px); } 100% { transform:translateX(0) translateY(0); } }
@keyframes fcg-narrator { 0% { transform:translate(0,0) rotate(0); } 40% { transform:translate(2px,-1px) rotate(2deg); } 70% { transform:translate(-1px,0) rotate(-1deg); } 100% { transform:translate(0,0) rotate(0); } }
@keyframes fcg-captain { 0% { transform:translate(0,0) rotate(0); } 25% { transform:translate(-2px,0) rotate(-3deg); } 50% { transform:translate(0,0) rotate(1deg); } 75% { transform:translate(1px,0) rotate(2deg); } 100% { transform:translate(0,0) rotate(0); } }
@keyframes fcg-fish { 0% { transform:translate(0,0) rotate(-5deg); } 40% { transform:translate(3px,-2px) rotate(5deg); } 70% { transform:translate(-2px,-1px) rotate(-3deg); } 100% { transform:translate(0,0) rotate(0); } }
@keyframes fcg-lantern { 0% { box-shadow:0 0 14px 4px #c08060, 0 0 28px 8px rgba(192,128,96,.3); } 50% { box-shadow:0 0 24px 7px #e0a060, 0 0 42px 12px rgba(224,160,96,.5); } 100% { box-shadow:0 0 16px 5px #c08060, 0 0 32px 10px rgba(192,128,96,.35); } }

.scn-burning-stick-abuse {
  background: linear-gradient(180deg, #0a0000 0%, #1a0a0a 50%, #2a0a00 100%),
              radial-gradient(ellipse at 50% 70%, #4a1a00 0%, transparent 60%);
}
.scn-burning-stick-abuse .bg-dark { position:absolute; inset:0; background: linear-gradient(135deg, #0a0000 0%, #1a0a0a 100%); }
.scn-burning-stick-abuse .fire { position:absolute; bottom:40%; left:50%; width:40px; height:50px; transform:translateX(-50%); border-radius:50% 50% 20% 20% / 60% 60% 20% 20%; background: radial-gradient(circle at 50% 70%, #ff8040 0%, #cc4400 50%, #5a1a00 100%); box-shadow: 0 0 40px 15px #ff6020, 0 0 80px 30px rgba(255,96,32,.4); animation: bsa-fire .8s ease-in-out infinite; }
.scn-burning-stick-abuse .captain { position:absolute; bottom:12%; left:55%; width:24px; height:50px; border-radius:40% 40% 50% 50% / 50% 50% 40% 40%; background: linear-gradient(180deg, #1a0a0a 0%, #0a0000 100%); transform-origin: bottom center; animation: bsa-captain 1.2s ease-in-out infinite; }
.scn-burning-stick-abuse .victim { position:absolute; bottom:10%; left:35%; width:18px; height:32px; border-radius:40% 40% 50% 50% / 50% 50% 40% 40%; background: linear-gradient(180deg, #2a0a0a 0%, #0a0000 100%); transform-origin: bottom center; animation: bsa-victim 1.5s ease-in-out infinite; }
.scn-burning-stick-abuse .stick { position:absolute; bottom:38%; left:58%; width:4px; height:30px; background: linear-gradient(180deg, #5a3a1a 0%, #3a2a0a 100%); border-radius:2px; transform-origin: bottom center; animation: bsa-stick .5s ease-in-out infinite; }
.scn-burning-stick-abuse .shadow { position:absolute; bottom:8%; left:40%; width:60px; height:10px; background: radial-gradient(ellipse, #0a0000 0%, transparent 70%); border-radius:50%; animation: bsa-shadow 2s ease-in-out infinite; }
@keyframes bsa-fire { 0% { transform:translateX(-50%) scale(1) rotate(-2deg); } 25% { transform:translateX(-50%) scale(1.05) rotate(1deg); } 50% { transform:translateX(-50%) scale(.95) rotate(-1deg); } 75% { transform:translateX(-50%) scale(1.02) rotate(2deg); } 100% { transform:translateX(-50%) scale(1) rotate(-3deg); } }
@keyframes bsa-captain { 0% { transform:translate(0,0) rotate(0); } 20% { transform:translate(0,-2px) rotate(-5deg); } 40% { transform:translate(0,-1px) rotate(3deg); } 60% { transform:translate(0,-3px) rotate(-2deg); } 80% { transform:translate(0,-1px) rotate(4deg); } 100% { transform:translate(0,0) rotate(0); } }
@keyframes bsa-victim { 0% { transform:translate(0,0) scale(1); } 30% { transform:translate(-3px,0) scale(1.05); } 60% { transform:translate(2px,0) scale(.95); } 100% { transform:translate(0,0) scale(1); } }
@keyframes bsa-stick { 0% { transform:rotate(-10deg) translateY(0); } 50% { transform:rotate(15deg) translateY(-2px); } 100% { transform:rotate(-10deg) translateY(0); } }
@keyframes bsa-shadow { 0% { opacity:.5; transform:scale(1); } 50% { opacity:.3; transform:scale(1.1); } 100% { opacity:.5; transform:scale(1); } }

/* spoils-of-war — tense, sunlit */
.scn-spoils-of-war {
  background:
    linear-gradient(180deg, #f0d4a0 0%, #d4b080 30%, #a07040 60%, #604020 100%),
    radial-gradient(ellipse at 50% 0%, #ffe8b0 0%, transparent 60%);
}
.scn-spoils-of-war .sky-hot {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #f0c868 0%, #d09840 60%, #a06820 100%);
  animation: sw-sky 10s ease-in-out infinite alternate;
}
.scn-spoils-of-war .ground-dust {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #806030 0%, #604020 40%, #402810 100%);
  border-radius: 30% 70% 0 0 / 20% 40% 0 0;
  box-shadow: inset 0 12px 30px rgba(0,0,0,.6);
  animation: sw-ground 15s ease-in-out infinite alternate;
}
.scn-spoils-of-war .warrior-a {
  position: absolute; bottom: 35%; left: 25%;
  width: 28px; height: 50px;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: sw-figures 4s ease-in-out infinite;
}
.scn-spoils-of-war .warrior-b {
  position: absolute; bottom: 33%; left: 45%;
  width: 30px; height: 52px;
  background: linear-gradient(180deg, #3a2010 0%, #1a0c04 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: sw-figures 4s ease-in-out infinite 1.2s;
}
.scn-spoils-of-war .spoils-pile {
  position: absolute; bottom: 28%; left: 60%;
  width: 60px; height: 30px;
  background:
    radial-gradient(ellipse at 50% 100%, #c09850 0%, transparent 100%),
    linear-gradient(180deg, #b09050 0%, #706030 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%;
  box-shadow: 0 4px 12px rgba(0,0,0,.5);
  animation: sw-pile 12s ease-in-out infinite alternate;
}
.scn-spoils-of-war .prisoner {
  position: absolute; bottom: 30%; right: 18%;
  width: 22px; height: 44px;
  background: linear-gradient(180deg, #5a4030 0%, #2a1a10 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: sw-cower 6s ease-in-out infinite;
}
.scn-spoils-of-war .weapon-stuck {
  position: absolute; bottom: 38%; left: 38%;
  width: 4px; height: 36px;
  background: linear-gradient(180deg, #706050 0%, #403020 100%);
  border-radius: 2px;
  transform: rotate(-15deg);
  box-shadow: 2px 0 6px rgba(0,0,0,.4);
  animation: sw-weapon 8s ease-in-out infinite alternate;
}
.scn-spoils-of-war .shadow-harsh {
  position: absolute; bottom: 28%; left: 20%; right: 20%; height: 18%;
  background: linear-gradient(180deg, rgba(0,0,0,.5) 0%, transparent 100%);
  border-radius: 30% 70% 0 0;
  animation: sw-shadow 10s ease-in-out infinite alternate;
}
.scn-spoils-of-war .dust-drift {
  position: absolute; bottom: 40%; left: 10%;
  width: 120px; height: 40px;
  background: radial-gradient(ellipse at 50% 50%, rgba(200,160,80,.15) 0%, transparent 70%);
  filter: blur(8px);
  animation: sw-dust 25s linear infinite;
}
@keyframes sw-sky {
  0% { opacity: .85; filter: brightness(1); }
  50% { opacity: 1; filter: brightness(1.05); }
  100% { opacity: .8; filter: brightness(.95); }
}
@keyframes sw-ground {
  0% { transform: translateY(0); }
  50% { transform: translateY(-4px); }
  100% { transform: translateY(0); }
}
@keyframes sw-figures {
  0% { transform: translateX(0) rotate(-2deg); }
  25% { transform: translateX(3px) rotate(1deg); }
  50% { transform: translateX(0) rotate(2deg); }
  75% { transform: translateX(-3px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(-2deg); }
}
@keyframes sw-pile {
  0% { transform: scale(1); box-shadow: 0 4px 12px rgba(0,0,0,.5); }
  50% { transform: scale(1.03); box-shadow: 0 6px 20px rgba(0,0,0,.6); }
  100% { transform: scale(.97); box-shadow: 0 2px 8px rgba(0,0,0,.4); }
}
@keyframes sw-cower {
  0% { transform: scale(1) translateY(0); opacity: .9; }
  50% { transform: scale(.95) translateY(2px); opacity: .7; }
  100% { transform: scale(1) translateY(0); opacity: .9; }
}
@keyframes sw-weapon {
  0% { transform: rotate(-15deg) translateY(0); }
  50% { transform: rotate(-10deg) translateY(-2px); }
  100% { transform: rotate(-15deg) translateY(0); }
}
@keyframes sw-shadow {
  0% { opacity: .6; }
  50% { opacity: .8; }
  100% { opacity: .5; }
}
@keyframes sw-dust {
  0% { transform: translateX(-40px) scale(1); opacity: .4; }
  50% { transform: translateX(20px) scale(1.2); opacity: .6; }
  100% { transform: translateX(80px) scale(1); opacity: .3; }
}

/* slaves-with-slaves — calm, bright-interior */
.scn-slaves-with-slaves {
  background:
    linear-gradient(180deg, #e8d4b0 0%, #c8a880 30%, #a08060 70%, #705040 100%),
    radial-gradient(ellipse at 50% 30%, #f0e0c8 0%, transparent 60%);
}
.scn-slaves-with-slaves .wall-bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #d8c4a8 0%, #b09870 80%);
  box-shadow: inset 0 20px 40px rgba(80,50,30,.2);
  animation: ss-wall 20s ease-in-out infinite alternate;
}
.scn-slaves-with-slaves .floor-mat {
  position: absolute; bottom: 0; left: 5%; right: 5%; height: 32%;
  background: linear-gradient(180deg, #b09870 0%, #806048 60%, #604030 100%);
  border-radius: 10% 10% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.3);
  animation: ss-floor 25s ease-in-out infinite alternate;
}
.scn-slaves-with-slaves .overseer {
  position: absolute; bottom: 28%; left: 35%;
  width: 26px; height: 48px;
  background: linear-gradient(180deg, #705030 0%, #403020 100%);
  border-radius: 40% 40% 30% 30% / 55% 55% 30% 30%;
  transform-origin: bottom center;
  box-shadow: -2px 0 8px rgba(0,0,0,.3);
  animation: ss-stand 8s ease-in-out infinite;
}
.scn-slaves-with-slaves .slave-a {
  position: absolute; bottom: 26%; left: 50%;
  width: 22px; height: 40px;
  background: linear-gradient(180deg, #8a6a50 0%, #5a3a28 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: ss-bow 6s ease-in-out infinite;
}
.scn-slaves-with-slaves .slave-b {
  position: absolute; bottom: 24%; left: 62%;
  width: 20px; height: 38px;
  background: linear-gradient(180deg, #7a5a40 0%, #4a2a18 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: ss-bow 6s ease-in-out infinite 2.5s;
}
.scn-slaves-with-slaves .property-bundle {
  position: absolute; bottom: 20%; left: 72%;
  width: 30px; height: 20px;
  background: linear-gradient(180deg, #a08860 0%, #706040 100%);
  border-radius: 20% 20% 30% 30% / 30% 30% 30% 30%;
  box-shadow: 0 3px 8px rgba(0,0,0,.3);
  animation: ss-bundle 14s ease-in-out infinite alternate;
}
.scn-slaves-with-slaves .window-light {
  position: absolute; top: 8%; left: 50%; transform: translateX(-50%);
  width: 60px; height: 44px;
  background: linear-gradient(180deg, #f0e8d8 0%, #c8b898 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 0 0 30px 10px rgba(200,180,140,.4), inset 0 0 20px rgba(240,230,210,.6);
  animation: ss-window 12s ease-in-out infinite alternate;
}
.scn-slaves-with-slaves .hearth-glow {
  position: absolute; bottom: 12%; left: 12%;
  width: 16px; height: 20px;
  background: radial-gradient(circle at 50% 100%, #d08030 0%, #a06020 50%, #604010 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 10% 10%;
  box-shadow: 0 0 24px 6px rgba(180,100,30,.5), 0 0 60px 20px rgba(180,100,30,.2);
  animation: ss-hearth 4s ease-in-out infinite alternate;
}
@keyframes ss-wall {
  0% { opacity: .9; filter: brightness(1); }
  50% { opacity: 1; filter: brightness(1.04); }
  100% { opacity: .92; filter: brightness(.98); }
}
@keyframes ss-floor {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes ss-stand {
  0% { transform: translateY(0) rotate(0); opacity: .95; }
  50% { transform: translateY(-1px) rotate(1deg); opacity: 1; }
  100% { transform: translateY(0) rotate(0); opacity: .95; }
}
@keyframes ss-bow {
  0% { transform: translateY(0) rotate(0); }
  25% { transform: translateY(1px) rotate(3deg); }
  50% { transform: translateY(2px) rotate(5deg); }
  75% { transform: translateY(1px) rotate(3deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes ss-bundle {
  0% { transform: scale(1) translateY(0); }
  50% { transform: scale(1.02) translateY(-1px); }
  100% { transform: scale(.98) translateY(0); }
}
@keyframes ss-window {
  0% { box-shadow: 0 0 20px 6px rgba(200,180,140,.3), inset 0 0 20px rgba(240,230,210,.5); opacity: .9; }
  50% { box-shadow: 0 0 40px 14px rgba(200,180,140,.5), inset 0 0 30px rgba(240,230,210,.7); opacity: 1; }
  100% { box-shadow: 0 0 24px 8px rgba(200,180,140,.35), inset 0 0 20px rgba(240,230,210,.5); opacity: .92; }
}
@keyframes ss-hearth {
  0% { transform: scale(1) rotate(-2deg); box-shadow: 0 0 20px 4px rgba(180,100,30,.4), 0 0 50px 16px rgba(180,100,30,.15); }
  50% { transform: scale(1.08) rotate(3deg); box-shadow: 0 0 30px 10px rgba(200,120,40,.6), 0 0 70px 24px rgba(200,120,40,.25); }
  100% { transform: scale(.95) rotate(-1deg); box-shadow: 0 0 18px 3px rgba(160,80,20,.35), 0 0 45px 14px rgba(160,80,20,.12); }
}

/* religion-creator — calm, bright-interior */
.scn-religion-creator {
  background:
    linear-gradient(180deg, #f0e0c0 0%, #d4bc94 40%, #a88860 80%, #806040 100%),
    radial-gradient(ellipse at 50% 20%, #f8ecc8 0%, transparent 70%);
}
.scn-religion-creator .room-deep {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #e8d8b8 0%, #c8b090 80%);
  box-shadow: inset 0 30px 50px rgba(80,50,20,.15);
  animation: rc-room 24s ease-in-out infinite alternate;
}
.scn-religion-creator .sun-disk {
  position: absolute; top: 10%; left: 50%; transform: translateX(-50%);
  width: 70px; height: 70px;
  background: radial-gradient(circle at 50% 50%, #f8e8a0 0%, #d8b860 50%, #a08030 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 12px rgba(200,160,60,.5), 0 0 80px 30px rgba(200,160,60,.2);
  animation: rc-sun 16s ease-in-out infinite alternate;
}
.scn-religion-creator .sun-belt {
  position: absolute; top: 10%; left: 50%; transform: translateX(-50%);
  width: 90px; height: 16px;
  border: 6px solid #c09840;
  border-radius: 50% / 40%;
  background: transparent;
  box-shadow: 0 0 20px 4px rgba(180,140,60,.3);
  animation: rc-belt 20s ease-in-out infinite alternate;
}
.scn-religion-creator .ray-left {
  position: absolute; top: 18%; left: 30%;
  width: 80px; height: 6px;
  background: linear-gradient(90deg, rgba(200,160,60,.4) 0%, transparent 100%);
  transform-origin: right center;
  animation: rc-rays 14s ease-in-out infinite alternate;
}
.scn-religion-creator .ray-right {
  position: absolute; top: 18%; right: 30%;
  width: 80px; height: 6px;
  background: linear-gradient(270deg, rgba(200,160,60,.4) 0%, transparent 100%);
  transform-origin: left center;
  animation: rc-rays 14s ease-in-out infinite alternate-reverse;
}
.scn-religion-creator .worshiper-a {
  position: absolute; bottom: 26%; left: 30%;
  width: 24px; height: 44px;
  background: linear-gradient(180deg, #6a4a30 0%, #3a2210 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: rc-kneel 8s ease-in-out infinite;
}
.scn-religion-creator .worshiper-b {
  position: absolute; bottom: 26%; right: 30%;
  width: 24px; height: 44px;
  background: linear-gradient(180deg, #6a4a30 0%, #3a2210 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: rc-kneel 8s ease-in-out infinite 3s;
}
.scn-religion-creator .altar-stone {
  position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%);
  width: 50px; height: 16px;
  background: linear-gradient(180deg, #b0a080 0%, #807060 100%);
  border-radius: 10% 10% 20% 20% / 30% 30% 20% 20%;
  box-shadow: 0 4px 12px rgba(0,0,0,.3);
  animation: rc-altar 30s ease-in-out infinite alternate;
}
.scn-religion-creator .incense-curl {
  position: absolute; bottom: 25%; left: 50%; transform: translateX(-50%);
  width: 8px; height: 30px;
  background: radial-gradient(ellipse at 50% 0%, rgba(200,180,140,.3) 0%, transparent 80%);
  filter: blur(4px);
  animation: rc-curl 6s ease-in-out infinite;
}
@keyframes rc-room {
  0% { opacity: .92; filter: brightness(1); }
  50% { opacity: 1; filter: brightness(1.03); }
  100% { opacity: .94; filter: brightness(.98); }
}
@keyframes rc-sun {
  0% { transform: translateX(-50%) scale(1); box-shadow: 0 0 30px 8px rgba(200,160,60,.4), 0 0 60px 20px rgba(200,160,60,.15); }
  50% { transform: translateX(-50%) scale(1.04); box-shadow: 0 0 50px 18px rgba(200,160,60,.6), 0 0 100px 40px rgba(200,160,60,.25); }
  100% { transform: translateX(-50%) scale(.97); box-shadow: 0 0 35px 10px rgba(200,160,60,.45), 0 0 70px 24px rgba(200,160,60,.18); }
}
@keyframes rc-belt {
  0% { transform: translateX(-50%) rotate(-2deg); opacity: .85; }
  50% { transform: translateX(-50%) rotate(0deg); opacity: 1; }
  100% { transform: translateX(-50%) rotate(2deg); opacity: .85; }
}
@keyframes rc-rays {
  0% { transform: scaleX(.8); opacity: .5; }
  50% { transform: scaleX(1.1); opacity: .8; }
  100% { transform: scaleX(.85); opacity: .55; }
}
@keyframes rc-kneel {
  0% { transform: translateY(0) rotate(0); }
  25% { transform: translateY(1px) rotate(2deg); }
  50% { transform: translateY(3px) rotate(4deg); }
  75% { transform: translateY(1px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes rc-altar {
  0% { transform: translateX(-50%) scale(1); box-shadow: 0 4px 12px rgba(0,0,0,.3); }
  50% { transform: translateX(-50%) scale(1.02); box-shadow: 0 6px 18px rgba(0,0,0,.35); }
  100% { transform: translateX(-50%) scale(.98); box-shadow: 0 2px 8px rgba(0,0,0,.25); }
}
@keyframes rc-curl {
  0% { transform: translateY(0) translateX(-2px) scaleY(1); opacity: .5; }
  33% { transform: translateY(-8px) translateX(3px) scaleY(1.2); opacity: .7; }
  66% { transform: translateY(-16px) translateX(-1px) scaleY(.9); opacity: .5; }
  100% { transform: translateY(-24px) translateX(2px) scaleY(.6); opacity: .2; }
}

/* guardian-spirits — dark, dim-interior */
.scn-guardian-spirits {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #2a2a44 30%, #3a3050 60%, #1e1a28 100%),
    radial-gradient(ellipse at 50% 80%, #4a3a5a 0%, transparent 70%);
}
.scn-guardian-spirits .chamber-dark {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #1e1a30 0%, #2a2240 60%, #3a2e4e 100%);
  box-shadow: inset 0 20px 60px rgba(0,0,0,.8);
  animation: gs-chamber 30s ease-in-out infinite alternate;
}
.scn-guardian-spirits .guardian-left {
  position: absolute; bottom: 22%; left: 20%;
  width: 30px; height: 60px;
  background: linear-gradient(180deg, #3a3a5a 0%, #1e1e3a 100%);
  border-radius: 40% 40% 30% 30% / 55% 55% 30% 30%;
  box-shadow: 0 0 20px 4px rgba(100,80,140,.3);
  transform-origin: bottom center;
  animation: gs-guard 9s ease-in-out infinite;
}
.scn-guardian-spirits .guardian-right {
  position: absolute; bottom: 22%; right: 20%;
  width: 30px; height: 60px;
  background: linear-gradient(180deg, #3a3a5a 0%, #1e1e3a 100%);
  border-radius: 40% 40% 30% 30% / 55% 55% 30% 30%;
  box-shadow: 0 0 20px 4px rgba(100,80,140,.3);
  transform-origin: bottom center;
  animation: gs-guard 9s ease-in-out infinite 3s;
}
.scn-guardian-spirits .figure-kneeling {
  position: absolute; bottom: 18%; left: 50%; transform: translateX(-50%);
  width: 22px; height: 40px;
  background: linear-gradient(180deg, #4a3a2e 0%, #2a1e14 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: gs-figure 8s ease-in-out infinite;
}
.scn-guardian-spirits .offering-bowl {
  position: absolute; bottom: 14%; left: 50%; transform: translateX(-50%);
  width: 24px; height: 10px;
  background: linear-gradient(180deg, #6a5040 0%, #3a2818 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 10% 10%;
  box-shadow: inset 0 -2px 6px rgba(0,0,0,.4);
  animation: gs-bowl 12s ease-in-out infinite alternate;
}
.scn-guardian-spirits .spirit-foe {
  position: absolute; top: 30%; right: 12%;
  width: 24px; height: 34px;
  background: linear-gradient(180deg, rgba(80,40,60,.7) 0%, rgba(40,20,30,.4) 100%);
  border-radius: 40% 40% 30% 30% / 40% 40% 30% 30%;
  filter: blur(4px);
  animation: gs-foe 7s ease-in-out infinite;
}
.scn-guardian-spirits .wisp-warm {
  position: absolute; bottom: 20%; left: 38%;
  width: 6px; height: 6px;
  background: radial-gradient(circle, #d0a050 0%, rgba(180,120,40,.3) 70%);
  border-radius: 50%;
  box-shadow: 0 0 12px 4px rgba(180,120,40,.5), 0 0 30px 10px rgba(180,120,40,.2);
  animation: gs-wisp-w 5s ease-in-out infinite alternate;
}
.scn-guardian-spirits .wisp-cool {
  position: absolute; bottom: 20%; right: 38%;
  width: 6px; height: 6px;
  background: radial-gradient(circle, #6090c0 0%, rgba(60,100,160,.3) 70%);
  border-radius: 50%;
  box-shadow: 0 0 12px 4px rgba(60,100,160,.5), 0 0 30px 10px rgba(60,100,160,.2);
  animation: gs-wisp-c 6s ease-in-out infinite alternate 1.5s;
}
@keyframes gs-chamber {
  0% { opacity: .9; filter: brightness(.95); }
  50% { opacity: 1; filter: brightness(1.05); }
  100% { opacity: .92; filter: brightness(.98); }
}
@keyframes gs-guard {
  0% { transform: translateY(0) rotate(-1deg); box-shadow: 0 0 16px 4px rgba(100,80,140,.3); }
  33% { transform: translateY(-2px) rotate(1deg); box-shadow: 0 0 24px 6px rgba(100,80,140,.4); }
  66% { transform: translateY(0) rotate(0); box-shadow: 0 0 20px 5px rgba(100,80,140,.35); }
  100% { transform: translateY(-1px) rotate(-1deg); box-shadow: 0 0 16px 4px rgba(100,80,140,.3); }
}
@keyframes gs-figure {
  0% { transform: translateX(-50%) translateY(0) rotate(0); }
  33% { transform: translateX(-50%) translateY(1px) rotate(2deg); }
  66% { transform: translateX(-50%) translateY(0) rotate(-1deg); }
  100% { transform: translateX(-50%) translateY(-1px) rotate(0); }
}
@keyframes gs-bowl {
  0% { transform: translateX(-50%) scale(1); box-shadow: inset 0 -2px 6px rgba(0,0,0,.4); }
  50% { transform: translateX(-50%) scale(1.03); box-shadow: inset 0 -2px 8px rgba(0,0,0,.5); }
  100% { transform: translateX(-50%) scale(.97); box-shadow: inset 0 -2px 4px rgba(0,0,0,.35); }
}
@keyframes gs-foe {
  0% { transform: translateX(0) translateY(0) scale(1); opacity: .3; }
  25% { transform: translateX(-4px) translateY(-3px) scale(1.05); opacity: .5; }
  50% { transform: translateX(2px) translateY(2px) scale(.95); opacity: .25; }
  75% { transform: translateX(-2px) translateY(-1px) scale(1.02); opacity: .4; }
  100% { transform: translateX(0) translateY(0) scale(1); opacity: .3; }
}
@keyframes gs-wisp-w {
  0% { transform: translate(0, 0) scale(1); box-shadow: 0 0 10px 3px rgba(180,120,40,.4), 0 0 25px 8px rgba(180,120,40,.15); opacity: .7; }
  50% { transform: translate(4px, -3px) scale(1.3); box-shadow: 0 0 16px 6px rgba(200,140,50,.6), 0 0 40px 14px rgba(200,140,50,.25); opacity: 1; }
  100% { transform: translate(-2px, 1px) scale(.9); box-shadow: 0 0 8px 2px rgba(160,100,30,.3), 0 0 20px 6px rgba(160,100,30,.1); opacity: .6; }
}
@keyframes gs-wisp-c {
  0% { transform: translate(0, 0) scale(1); box-shadow: 0 0 10px 3px rgba(60,100,160,.4), 0 0 25px 8px rgba(60,100,160,.15); opacity: .7; }
  50% { transform: translate(-4px, -3px) scale(1.3); box-shadow: 0 0 16px 6px rgba(80,120,180,.6), 0 0 40px 14px rgba(80,120,180,.25); opacity: 1; }
  100% { transform: translate(2px, 1px) scale(.9); box-shadow: 0 0 8px 2px rgba(40,80,140,.3), 0 0 20px 6px rgba(40,80,140,.1); opacity: .6; }
}

.scn-fellow-countrymen-found { background: linear-gradient(180deg, #1a1a2e 0%, #2a1a1a 50%, #1a0e0a 100%), radial-gradient(ellipse at 50% 0%, #3a2a1a 0%, transparent 60%); }
.scn-fellow-countrymen-found .hold-bg { position:absolute; inset:0; background: linear-gradient(180deg, #0d0d15 0%, #1f1a14 100%); }
.scn-fellow-countrymen-found .hold-planks { position:absolute; bottom:0; left:0; right:0; height:15%; background: repeating-linear-gradient(90deg, #2b221c 0px, #3a2e24 4px, #2b221c 8px); border-radius: 20% 20% 0 0 / 10% 10% 0 0; }
.scn-fellow-countrymen-found .lantern-fcf { position:absolute; top:20%; right:25%; width:12px; height:18px; background: radial-gradient(circle, #ffd080 0%, #b08030 60%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 20px 6px #b08030, 0 0 40px 12px rgba(176,128,48,0.3); animation: fcf-flicker 2s ease-in-out infinite; }
.scn-fellow-countrymen-found .chain-left { position:absolute; bottom:20%; left:10%; width:4px; height:60%; background: repeating-linear-gradient(0deg, #4a4040 0px, #5a5050 3px, #4a4040 6px); border-radius: 2px; transform-origin: top center; animation: fcf-sway 4s ease-in-out infinite; }
.scn-fellow-countrymen-found .chain-right { position:absolute; bottom:20%; right:10%; width:4px; height:60%; background: repeating-linear-gradient(0deg, #4a4040 0px, #5a5050 3px, #4a4040 6px); border-radius: 2px; transform-origin: top center; animation: fcf-sway 4s ease-in-out 2s infinite; }
.scn-fellow-countrymen-found .figure-fcf-1 { position:absolute; bottom:15%; left:20%; width:18px; height:32px; background: linear-gradient(180deg, #1a1414 0%, #0a0606 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: fcf-shift 6s ease-in-out infinite; }
.scn-fellow-countrymen-found .figure-fcf-2 { position:absolute; bottom:16%; left:40%; width:20px; height:35px; background: linear-gradient(180deg, #1a1414 0%, #0a0606 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: fcf-shift 6s ease-in-out 1.5s infinite; }
.scn-fellow-countrymen-found .figure-fcf-3 { position:absolute; bottom:14%; left:60%; width:16px; height:30px; background: linear-gradient(180deg, #1a1414 0%, #0a0606 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: fcf-shift 6s ease-in-out 3s infinite; }
@keyframes fcf-flicker { 0% { opacity:0.7; box-shadow:0 0 15px 4px #b08030; } 50% { opacity:1; box-shadow:0 0 25px 8px #ffd080; } 100% { opacity:0.75; box-shadow:0 0 18px 5px #c09040; } }
@keyframes fcf-sway { 0%,100% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(2deg) translateY(-2px); } }
@keyframes fcf-shift { 0%,100% { transform: translateX(0) translateY(0) rotate(-1deg); } 33% { transform: translateX(2px) translateY(-1px) rotate(1deg); } 66% { transform: translateX(-1px) translateY(1px) rotate(-1deg); } }

.scn-white-man-flogged-dead { background: linear-gradient(180deg, #1a1a2a 0%, #0f0f1a 50%, #0a0a10 100%), radial-gradient(ellipse at 50% 100%, #1a1a2a 0%, transparent 70%); }
.scn-white-man-flogged-dead .deck-bg { position:absolute; inset:0; background: linear-gradient(180deg, #161624 0%, #0c0c14 100%); }
.scn-white-man-flogged-dead .deck-floor { position:absolute; bottom:10%; left:0; right:0; height:20%; background: repeating-linear-gradient(90deg, #2a2424 0px, #3c3434 6px, #2a2424 12px); border-radius: 10% 10% 0 0; }
.scn-white-man-flogged-dead .mast { position:absolute; bottom:30%; left:50%; width:8px; height:50%; background: linear-gradient(180deg, #4a4040 0%, #2a2222 100%); border-radius: 4px 4px 0 0; transform: translateX(-50%); }
.scn-white-man-flogged-dead .rope { position:absolute; bottom:35%; left:5%; width:40%; height:3px; background: #4a4040; transform-origin: left center; transform: rotate(-20deg); animation: wfm-flog 1.5s ease-in-out infinite; }
.scn-white-man-flogged-dead .figure-wfm-1 { position:absolute; bottom:20%; left:25%; width:20px; height:35px; background: linear-gradient(180deg, #2a1a1a 0%, #0f0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: wfm-bend 3s ease-in-out infinite; }
.scn-white-man-flogged-dead .figure-wfm-2 { position:absolute; bottom:22%; right:30%; width:18px; height:30px; background: linear-gradient(180deg, #2a1a1a 0%, #0f0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: wfm-strike 1.5s ease-in-out infinite; }
.scn-white-man-flogged-dead .sea-wfm { position:absolute; bottom:0; left:0; right:0; height:15%; background: linear-gradient(180deg, #1a2a3a 0%, #0f1a2a 100%); animation: wfm-wave 8s ease-in-out infinite; }
@keyframes wfm-flog { 0%,100% { transform: rotate(-20deg); } 50% { transform: rotate(10deg); } }
@keyframes wfm-bend { 0%,100% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(15deg) translateY(-2px); } }
@keyframes wfm-strike { 0%,100% { transform: rotate(-30deg) translateX(0); } 50% { transform: rotate(30deg) translateX(10px); } }
@keyframes wfm-wave { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.1); } 100% { transform: scaleY(1); } }

.scn-questions-about-ship { background: linear-gradient(180deg, #1a1a24 0%, #1f1f2e 50%, #0f0f18 100%), radial-gradient(ellipse at 50% 0%, #2a2a3a 0%, transparent 60%); }
.scn-questions-about-ship .cabin-bg { position:absolute; inset:0; background: linear-gradient(180deg, #14141e 0%, #0e0e16 100%); }
.scn-questions-about-ship .cabin-wall { position:absolute; top:0; left:0; right:0; height:70%; background: linear-gradient(180deg, #2a2a38 0%, #1a1a26 100%); border-radius: 0 0 30% 30% / 0 0 20% 20%; }
.scn-questions-about-ship .porthole { position:absolute; top:20%; left:50%; width:20px; height:20px; background: radial-gradient(circle, #3a5a7a 0%, #1a2a3a 70%); border-radius: 50%; border: 3px solid #4a4a5a; box-shadow: inset 0 2px 6px rgba(0,0,0,0.5); transform: translateX(-50%); animation: qas-glow 4s ease-in-out infinite; }
.scn-questions-about-ship .figure-qas-1 { position:absolute; bottom:25%; left:20%; width:22px; height:36px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: qas-turn 8s ease-in-out infinite; }
.scn-questions-about-ship .figure-qas-2 { position:absolute; bottom:27%; right:25%; width:20px; height:32px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: scaleX(-1); animation: qas-listen 6s ease-in-out infinite; }
.scn-questions-about-ship .table { position:absolute; bottom:20%; left:50%; width:40px; height:6px; background: linear-gradient(90deg, #3a302a 0%, #4a3a30 50%, #3a302a 100%); border-radius: 3px; transform: translateX(-50%); animation: qas-shake 6s ease-in-out infinite; }
@keyframes qas-glow { 0%,100% { box-shadow: 0 0 4px 2px rgba(58,90,122,0.3); } 50% { box-shadow: 0 0 8px 4px rgba(58,90,122,0.6); } }
@keyframes qas-turn { 0%,100% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(4px) rotate(5deg); } }
@keyframes qas-listen { 0%,100% { transform: scaleX(-1) translateX(0); } 33% { transform: scaleX(-1) translateX(-2px); } 66% { transform: scaleX(-1) translateX(2px); } }
@keyframes qas-shake { 0%,100% { transform: translateX(-50%) rotate(0deg); } 25% { transform: translateX(-50%) rotate(1deg); } 75% { transform: translateX(-50%) rotate(-1deg); } }

.scn-desire-to-escape { background: linear-gradient(180deg, #1a1a2e 0%, #0f0f1a 50%, #0a0a10 100%), radial-gradient(ellipse at 50% 100%, #1a1a2e 0%, transparent 70%); }
.scn-desire-to-escape .deck-dte-bg { position:absolute; inset:0; background: linear-gradient(180deg, #12121c 0%, #0a0a12 100%); }
.scn-desire-to-escape .sea-dte { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #1a2a3a 0%, #0f1a2a 100%); animation: dte-wave 10s ease-in-out infinite; }
.scn-desire-to-escape .rail { position:absolute; bottom:30%; left:0; right:0; height:5px; background: linear-gradient(90deg, #3a3a4a 0%, #4a4a5e 50%, #3a3a4a 100%); border-radius: 2px; }
.scn-desire-to-escape .figure-dte-1 { position:absolute; bottom:30%; left:30%; width:18px; height:34px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: dte-lean 5s ease-in-out infinite; }
.scn-desire-to-escape .chain-dte { position:absolute; bottom:28%; left:20%; width:4px; height:50%; background: repeating-linear-gradient(0deg, #4a4040 0px, #5a5050 3px, #4a4040 6px); transform-origin: top center; animation: dte-chain 4s ease-in-out infinite; }
.scn-desire-to-escape .guard { position:absolute; bottom:30%; right:15%; width:20px; height:36px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: dte-guard 7s ease-in-out infinite; }
.scn-desire-to-escape .sky-dte { position:absolute; top:0; left:0; right:0; height:70%; background: linear-gradient(180deg, #1a1a3a 0%, #0f0f1a 100%); opacity:0.5; }
@keyframes dte-wave { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(1.05); } }
@keyframes dte-lean { 0%,100% { transform: rotate(0deg) translateX(0); } 50% { transform: rotate(5deg) translateX(6px); } }
@keyframes dte-chain { 0%,100% { transform: rotate(-3deg); } 50% { transform: rotate(3deg); } }
@keyframes dte-guard { 0%,100% { transform: translateX(0); } 50% { transform: translateX(-2px); } }

.scn-set-out-to-sea { background: linear-gradient(180deg, #0a0a1a 0%, #141428 40%, #1a1a2e 100%), radial-gradient(ellipse at 50% 80%, #1a1a3e 0%, transparent 70%); }
.scn-set-out-to-sea .sky { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #0e0e1f 0%, #1a1a30 100%); animation: ss-sky 15s ease-in-out infinite alternate; }
.scn-set-out-to-sea .sea { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #0a0a1a 0%, #050510 100%); animation: ss-sea 20s ease-in-out infinite; }
.scn-set-out-to-sea .ship { position:absolute; bottom:30%; left:40%; width:120px; height:40px; background: linear-gradient(180deg, #2a1a1a 0%, #100a0a 100%); border-radius:10% 10% 5% 5%; box-shadow: 0 4px 8px rgba(0,0,0,.8); animation: ss-sway 6s ease-in-out infinite; }
.scn-set-out-to-sea .mast { position:absolute; bottom:30%; left:46%; width:6px; height:80px; background: #201510; transform-origin: bottom center; animation: ss-roll 8s ease-in-out infinite; }
.scn-set-out-to-sea .lights { position:absolute; bottom:55%; left:43%; width:4px; height:4px; background: #ffd080; border-radius:50%; box-shadow: 0 0 12px 6px #ffd080, 0 0 24px 12px rgba(255,208,128,.4); animation: ss-glow 3s ease-in-out infinite alternate; }
.scn-set-out-to-sea .rowboat { position:absolute; bottom:10%; left:20%; width:40px; height:10px; background: #1a1510; border-radius:50% 50% 20% 20%; animation: ss-drift 12s linear infinite; }
.scn-set-out-to-sea .lantern-glow { position:absolute; bottom:28%; left:35%; width:8px; height:8px; background: #ffb060; border-radius:50%; box-shadow: 0 0 20px 10px #ffb060; animation: ss-lantern 4s ease-in-out infinite alternate; }
@keyframes ss-sky { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.6 } }
@keyframes ss-sea { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes ss-sway { 0% { transform: rotate(-1deg) translateX(0) } 50% { transform: rotate(1deg) translateX(2px) } 100% { transform: rotate(-1deg) translateX(0) } }
@keyframes ss-roll { 0% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-2deg) } }
@keyframes ss-glow { 0% { opacity:0.8; box-shadow: 0 0 8px 4px #ffd080 } 50% { opacity:1; box-shadow: 0 0 16px 8px #ffd080 } 100% { opacity:0.9; box-shadow: 0 0 10px 5px #ffd080 } }
@keyframes ss-drift { 0% { transform: translateX(0) } 100% { transform: translateX(200px) } }
@keyframes ss-lantern { 0% { opacity:0.7; transform: scale(0.9) } 50% { opacity:1; transform: scale(1.1) } 100% { opacity:0.8; transform: scale(1) } }

.scn-night-chase { background: linear-gradient(180deg, #0a0a18 0%, #12122a 50%, #060610 100%), radial-gradient(ellipse at 30% 60%, #1a1a30 0%, transparent 60%); }
.scn-night-chase .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #0e0e1e 0%, #1a1a32 100%); animation: nc-sky 12s ease-in-out infinite alternate; }
.scn-night-chase .sea { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #0a0a1a 0%, #030308 100%); animation: nc-sea 18s ease-in-out infinite; }
.scn-night-chase .chaser { position:absolute; bottom:25%; left:20%; width:90px; height:30px; background: linear-gradient(180deg, #2a1a1a 0%, #120a0a 100%); border-radius:10% 10% 5% 5%; animation: nc-chase 8s linear infinite; }
.scn-night-chase .prey { position:absolute; bottom:25%; left:70%; width:80px; height:28px; background: linear-gradient(180deg, #1a1212 0%, #0a0606 100%); border-radius:10% 10% 5% 5%; animation: nc-flee 8s linear infinite; }
.scn-night-chase .flash { position:absolute; bottom:35%; left:30%; width:20px; height:20px; background: radial-gradient(circle, #ffd080 0%, rgba(255,208,128,0) 100%); border-radius:50%; animation: nc-flash 4s ease-in-out infinite; }
.scn-night-chase .sail-chaser { position:absolute; bottom:28%; left:22%; width:20px; height:50px; background: #e8e0d0; clip-path: polygon(0% 0%, 100% 50%, 0% 100%); animation: nc-sail 8s ease-in-out infinite; }
.scn-night-chase .sail-prey { position:absolute; bottom:28%; left:72%; width:18px; height:45px; background: #d8d0c0; clip-path: polygon(100% 0%, 0% 50%, 100% 100%); animation: nc-sail2 8s ease-in-out infinite; }
@keyframes nc-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes nc-sea { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes nc-chase { 0% { transform: translateX(0) scale(1) } 50% { transform: translateX(10px) scale(1.05) } 100% { transform: translateX(0) scale(1) } }
@keyframes nc-flee { 0% { transform: translateX(0) } 50% { transform: translateX(-10px) } 100% { transform: translateX(0) } }
@keyframes nc-flash { 0% { opacity:0; transform: scale(0.5) } 30% { opacity:1; transform: scale(1.5) } 60% { opacity:0.5; transform: scale(1) } 100% { opacity:0; transform: scale(0.5) } }
@keyframes nc-sail { 0% { transform: rotate(0deg) scaleY(1) } 50% { transform: rotate(5deg) scaleY(1.1) } 100% { transform: rotate(0deg) scaleY(1) } }
@keyframes nc-sail2 { 0% { transform: rotate(0deg) scaleY(1) } 50% { transform: rotate(-5deg) scaleY(1.1) } 100% { transform: rotate(0deg) scaleY(1) } }

.scn-pass-by-enemy-line { background: linear-gradient(180deg, #4a90d0 0%, #87ceeb 40%, #a0d0f0 100%), radial-gradient(ellipse at 50% 0%, #ffe080 0%, transparent 60%); }
.scn-pass-by-enemy-line .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #6ab0e0 0%, #a0d8f0 100%); animation: pe-sky 20s ease-in-out infinite alternate; }
.scn-pass-by-enemy-line .sea { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #1a5a7a 0%, #0a2a4a 100%); animation: pe-sea 15s ease-in-out infinite; }
.scn-pass-by-enemy-line .our-ship { position:absolute; bottom:20%; left:10%; width:150px; height:50px; background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%); border-radius:10% 10% 5% 5%; animation: pe-surge 8s ease-in-out infinite; }
.scn-pass-by-enemy-line .enemy-a { position:absolute; bottom:20%; left:35%; width:100px; height:40px; background: linear-gradient(180deg, #5a3a2a 0%, #2a1a12 100%); border-radius:10% 10% 5% 5%; animation: pe-pass-a 12s linear infinite; }
.scn-pass-by-enemy-line .enemy-b { position:absolute; bottom:20%; left:52%; width:100px; height:40px; background: linear-gradient(180deg, #5a3a2a 0%, #2a1a12 100%); border-radius:10% 10% 5% 5%; animation: pe-pass-b 12s linear infinite; animation-delay: -4s; }
.scn-pass-by-enemy-line .enemy-c { position:absolute; bottom:20%; left:69%; width:100px; height:40px; background: linear-gradient(180deg, #5a3a2a 0%, #2a1a12 100%); border-radius:10% 10% 5% 5%; animation: pe-pass-c 12s linear infinite; animation-delay: -8s; }
.scn-pass-by-enemy-line .cannon-smoke { position:absolute; bottom:35%; left:30%; width:60px; height:30px; background: rgba(200,200,200,0.7); filter: blur(8px); border-radius:50%; animation: pe-smoke 6s ease-in-out infinite; }
.scn-pass-by-enemy-line .sun-glow { position:absolute; top:10%; right:20%; width:40px; height:40px; background: radial-gradient(circle, #ffe080 0%, rgba(255,224,128,0) 100%); animation: pe-sun 10s ease-in-out infinite alternate; }
@keyframes pe-sky { 0% { background: linear-gradient(180deg, #6ab0e0 0%, #a0d8f0 100%); } 50% { background: linear-gradient(180deg, #7ac0e0 0%, #b0e0f0 100%); } 100% { background: linear-gradient(180deg, #5aa0d0 0%, #90c8e0 100%); } }
@keyframes pe-sea { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes pe-surge { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(20px) rotate(1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes pe-pass-a { 0% { transform: translateX(0) } 100% { transform: translateX(200px) } }
@keyframes pe-pass-b { 0% { transform: translateX(0) } 100% { transform: translateX(200px) } }
@keyframes pe-pass-c { 0% { transform: translateX(0) } 100% { transform: translateX(200px) } }
@keyframes pe-smoke { 0% { opacity:0.5; transform: scale(1) } 50% { opacity:1; transform: scale(1.5) } 100% { opacity:0; transform: scale(0.5) } }
@keyframes pe-sun { 0% { transform: scale(1) translateX(0) } 50% { transform: scale(1.2) translateX(10px) } 100% { transform: scale(1) translateX(0) } }

.scn-engagement-begins { background: linear-gradient(180deg, #4a80c0 0%, #7ab8e0 40%, #a0d8f0 100%), radial-gradient(ellipse at 80% 20%, #ffe080 0%, transparent 60%); }
.scn-engagement-begins .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #6ab0e0 0%, #a0d8f0 100%); animation: eb-sky 12s ease-in-out infinite alternate; }
.scn-engagement-begins .sea { position:absolute; bottom:0; left:0; right:0; height:60%; background: linear-gradient(180deg, #1a4a6a 0%, #0a2a4a 100%); animation: eb-sea 10s ease-in-out infinite; }
.scn-engagement-begins .hull-left { position:absolute; bottom:10%; left:5%; width:200px; height:80px; background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%); border-radius:15% 15% 5% 5%; box-shadow: 0 8px 16px rgba(0,0,0,0.6); animation: eb-rock 6s ease-in-out infinite; }
.scn-engagement-begins .hull-right { position:absolute; bottom:10%; right:5%; width:200px; height:80px; background: linear-gradient(180deg, #5a3a2a 0%, #2a1a12 100%); border-radius:15% 15% 5% 5%; box-shadow: 0 8px 16px rgba(0,0,0,0.6); animation: eb-rock 6s ease-in-out infinite reverse; }
.scn-engagement-begins .cannon-flash { position:absolute; bottom:30%; left:30%; width:30px; height:30px; background: radial-gradient(circle, #ffd080 0%, rgba(255,208,128,0) 100%); border-radius:50%; animation: eb-flash 3s ease-in-out infinite; }
.scn-engagement-begins .smoke { position:absolute; bottom:35%; left:20%; width:80px; height:40px; background: rgba(180,180,180,0.6); filter: blur(12px); border-radius:50%; animation: eb-smoke 5s ease-in-out infinite alternate; }
.scn-engagement-begins .rigging { position:absolute; bottom:30%; left:20%; width:100px; height:60px; background: repeating-linear-gradient(90deg, rgba(50,40,30,0.8) 0px, rgba(50,40,30,0.8) 2px, transparent 2px, transparent 8px); animation: eb-rig 8s ease-in-out infinite; }
@keyframes eb-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes eb-sea { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes eb-rock { 0% { transform: rotate(0deg) translateY(0) } 25% { transform: rotate(2deg) translateY(-2px) } 50% { transform: rotate(0deg) translateY(0) } 75% { transform: rotate(-2deg) translateY(-2px) } 100% { transform: rotate(0deg) translateY(0) } }
@keyframes eb-flash { 0% { opacity:0; transform: scale(0.3) } 20% { opacity:1; transform: scale(1.5) } 40% { opacity:0.8; transform: scale(1) } 100% { opacity:0; transform: scale(0.3) } }
@keyframes eb-smoke { 0% { transform: scale(1) translateX(0) } 100% { transform: scale(1.5) translateX(30px) } }
@keyframes eb-rig { 0% { transform: rotate(-3deg) } 50% { transform: rotate(3deg) } 100% { transform: rotate(-3deg) } }

.scn-appeal-to-sentiment { background: linear-gradient(180deg, #1a1a3e 0%, #12122a 60%, #0a0a1a 100%), radial-gradient(ellipse at 50% 30%, rgba(200,220,255,0.1) 0%, transparent 60%); }
.scn-appeal-to-sentiment .window { position:absolute; top:10%; left:20%; width:40%; height:50%; background: linear-gradient(135deg, #3a4a6a 0%, #1a2a4a 100%); border-radius:4px; box-shadow:inset 0 0 20px rgba(0,0,0,.5); animation:as-win 30s ease-in-out infinite alternate; }
.scn-appeal-to-sentiment .moonlight { position:absolute; top:10%; left:30%; width:20%; height:30%; background:linear-gradient(135deg,rgba(180,200,255,0.3),rgba(180,200,255,0.1)); filter:blur(10px); animation:as-moon 8s ease-in-out infinite alternate; }
.scn-appeal-to-sentiment .desk { position:absolute; bottom:15%; left:15%; right:15%; height:20%; background:linear-gradient(180deg,#3a2a1a,#2a1a0a); border-radius:4px 4px 0 0; box-shadow:0 -4px 8px rgba(0,0,0,.5); animation:as-desk 25s ease-in-out infinite alternate; }
.scn-appeal-to-sentiment .figure { position:absolute; bottom:15%; left:40%; width:12%; height:30%; background:linear-gradient(180deg,#1a1a2a,#0a0a1a); border-radius:50% 50% 30% 30%/60% 60% 40% 40%; animation:as-fig 10s ease-in-out infinite alternate; }
.scn-appeal-to-sentiment .paper { position:absolute; bottom:20%; left:50%; width:15%; height:10%; background:#2a2a1a; border-radius:2px; transform:rotate(-5deg); animation:as-paper 6s ease-in-out infinite alternate; }
.scn-appeal-to-sentiment .quill { position:absolute; bottom:25%; left:55%; width:2%; height:15%; background:linear-gradient(180deg,#c8c8c8,#8a8a8a); border-radius:50% 50% 0 0; transform:rotate(15deg); animation:as-quill 4s ease-in-out infinite; }
.scn-appeal-to-sentiment .inkwell { position:absolute; bottom:18%; left:45%; width:4%; height:6%; background:radial-gradient(circle,#1a1a1a,#0a0a0a); border-radius:50%; box-shadow:0 2px 4px rgba(0,0,0,.5); animation:as-ink 20s ease-in-out infinite alternate; }

@keyframes as-win { 0% { opacity:.8; } 50% { opacity:.95; } 100% { opacity:.8; } }
@keyframes as-moon { 0% { opacity:.6; transform:translateX(0); } 50% { opacity:.9; transform:translateX(-5px); } 100% { opacity:.6; transform:translateX(0); } }
@keyframes as-desk { 0% { transform:translateY(0); } 50% { transform:translateY(-2px); } 100% { transform:translateY(0); } }
@keyframes as-fig { 0% { transform:translateY(0) rotate(-2deg); } 50% { transform:translateY(-3px) rotate(2deg); } 100% { transform:translateY(0) rotate(-2deg); } }
@keyframes as-paper { 0% { transform:rotate(-5deg) translateX(0); } 50% { transform:rotate(-3deg) translateX(2px); } 100% { transform:rotate(-5deg) translateX(0); } }
@keyframes as-quill { 0% { transform:rotate(15deg) translateY(0); } 50% { transform:rotate(20deg) translateY(-2px); } 100% { transform:rotate(15deg) translateY(0); } }
@keyframes as-ink { 0% { transform:scale(1); } 50% { transform:scale(1.02); } 100% { transform:scale(1); } }

.scn-praise-to-abolitionists { background: linear-gradient(180deg, #2a1a1a 0%, #1a0f0a 60%, #0f0505 100%), radial-gradient(ellipse at 50% 70%, rgba(255,160,50,0.15) 0%, transparent 50%); }
.scn-praise-to-abolitionists .torch { position:absolute; bottom:10%; left:50%; width:4%; height:25%; background:linear-gradient(180deg,#5a3a1a,#2a1a0a); border-radius:20% 20% 0 0; transform:translateX(-50%); animation:pa-torch 0s; }
.scn-praise-to-abolitionists .flame { position:absolute; bottom:30%; left:50%; width:6%; height:20%; background:radial-gradient(ellipse,#ffd050 0%,#ff8020 50%,#ff4000 100%); border-radius:50% 50% 20% 20%; transform:translateX(-50%); animation:pa-flame .5s ease-in-out infinite alternate; }
.scn-praise-to-abolitionists .figure-1 { position:absolute; bottom:10%; left:20%; width:10%; height:30%; background:linear-gradient(180deg,#1a0a0a,#0a0505); border-radius:50% 50% 40% 40%/60% 60% 40% 40%; animation:pa-fig 8s ease-in-out infinite alternate; }
.scn-praise-to-abolitionists .figure-2 { position:absolute; bottom:10%; left:45%; width:10%; height:30%; background:linear-gradient(180deg,#1a0a0a,#0a0505); border-radius:50% 50% 40% 40%/60% 60% 40% 40%; animation:pa-fig 8s ease-in-out infinite alternate 2s; }
.scn-praise-to-abolitionists .figure-3 { position:absolute; bottom:10%; right:20%; width:10%; height:30%; background:linear-gradient(180deg,#1a0a0a,#0a0505); border-radius:50% 50% 40% 40%/60% 60% 40% 40%; animation:pa-fig 8s ease-in-out infinite alternate 4s; }
.scn-praise-to-abolitionists .light-halo { position:absolute; bottom:20%; left:50%; width:30%; height:40%; background:radial-gradient(ellipse,rgba(255,200,100,0.2),transparent 70%); transform:translateX(-50%) translateY(-10%); filter:blur(20px); animation:pa-halo 6s ease-in-out infinite alternate; }

@keyframes pa-flame { 0% { transform:translateX(-50%) scaleY(1); opacity:.9; } 50% { transform:translateX(-50%) scaleY(1.1); opacity:1; } 100% { transform:translateX(-50%) scaleY(1); opacity:.9; } }
@keyframes pa-fig { 0% { transform:translateY(0) rotate(-1deg); } 50% { transform:translateY(-5px) rotate(1deg); } 100% { transform:translateY(0) rotate(-1deg); } }
@keyframes pa-halo { 0% { opacity:.4; transform:translateX(-50%) translateY(-10%) scale(1); } 50% { opacity:.7; transform:translateX(-50%) translateY(-10%) scale(1.1); } 100% { opacity:.4; transform:translateX(-50%) translateY(-10%) scale(1); } }

.scn-blessings-on-compassionate { background: linear-gradient(180deg, #2a1a2a 0%, #1a0f1a 60%, #0f050f 100%), radial-gradient(ellipse at 50% 20%, rgba(255,220,150,0.15) 0%, transparent 50%); }
.scn-blessings-on-compassionate .figure { position:absolute; bottom:5%; left:40%; width:20%; height:40%; background:linear-gradient(180deg,#1a0a1a,#0a050a); border-radius:50% 50% 40% 40%/60% 60% 40% 40%; animation:bc-fig 12s ease-in-out infinite alternate; }
.scn-blessings-on-compassionate .arms { position:absolute; bottom:20%; left:42%; width:16%; height:10%; background:linear-gradient(180deg,#1a0a1a,#0a050a); border-radius:50% 50% 0 0; transform:rotate(-10deg); animation:bc-arms 6s ease-in-out infinite alternate; }
.scn-blessings-on-compassionate .light-beam { position:absolute; top:0; left:35%; width:30%; height:60%; background:linear-gradient(180deg,rgba(255,220,150,0.1),transparent); filter:blur(10px); animation:bc-beam 8s ease-in-out infinite alternate; }
.scn-blessings-on-compassionate .halo { position:absolute; top:5%; left:45%; width:10%; height:10%; background:radial-gradient(circle,rgba(255,200,100,0.3),transparent 70%); border-radius:50%; filter:blur(5px); animation:bc-halo 4s ease-in-out infinite alternate; }
.scn-blessings-on-compassionate .book { position:absolute; bottom:10%; left:45%; width:10%; height:5%; background:#3a2a1a; border-radius:2px; box-shadow:0 2px 4px rgba(0,0,0,.5); animation:bc-book 10s ease-in-out infinite alternate; }

@keyframes bc-fig { 0% { transform:translateY(0) rotate(-2deg); } 50% { transform:translateY(-10px) rotate(0); } 100% { transform:translateY(0) rotate(2deg); } }
@keyframes bc-arms { 0% { transform:rotate(-10deg) translateX(0); } 50% { transform:rotate(-5deg) translateX(2px); } 100% { transform:rotate(-10deg) translateX(0); } }
@keyframes bc-beam { 0% { opacity:.2; transform:translateY(0); } 50% { opacity:.6; transform:translateY(-5px); } 100% { opacity:.2; transform:translateY(0); } }
@keyframes bc-halo { 0% { opacity:.3; transform:scale(1); } 50% { opacity:.6; transform:scale(1.2); } 100% { opacity:.3; transform:scale(1); } }
@keyframes bc-book { 0% { transform:rotate(-2deg); } 50% { transform:rotate(2deg); } 100% { transform:rotate(-2deg); } }

.scn-commerce-and-abolition { background: linear-gradient(180deg, #1a1a2e 0%, #12122a 60%, #0a0a1a 100%), radial-gradient(ellipse at 50% 30%, rgba(180,200,255,0.1) 0%, transparent 60%); }
.scn-commerce-and-abolition .desk { position:absolute; bottom:10%; left:10%; right:10%; height:20%; background:linear-gradient(180deg,#2a2a3a,#1a1a2a); border-radius:4px 4px 0 0; box-shadow:0 -4px 8px rgba(0,0,0,.5); animation:ca-desk 25s ease-in-out infinite alternate; }
.scn-commerce-and-abolition .map { position:absolute; bottom:15%; left:25%; width:30%; height:15%; background:linear-gradient(135deg,#3a3a4a,#2a2a3a); border-radius:2px; transform:rotate(3deg); animation:ca-map 15s ease-in-out infinite alternate; }
.scn-commerce-and-abolition .globe { position:absolute; bottom:20%; left:55%; width:12%; height:15%; background:radial-gradient(circle,#4a6a4a,#2a4a2a); border-radius:50%; box-shadow:0 2px 6px rgba(0,0,0,.3); animation:ca-globe 20s linear infinite; }
.scn-commerce-and-abolition .quill { position:absolute; bottom:25%; left:40%; width:2%; height:12%; background:linear-gradient(180deg,#c8c8c8,#8a8a8a); border-radius:50% 50% 0 0; transform:rotate(-10deg); animation:ca-quill 5s ease-in-out infinite; }
.scn-commerce-and-abolition .candle { position:absolute; bottom:15%; left:70%; width:3%; height:15%; background:linear-gradient(180deg,#e0e0e0,#a0a0a0); border-radius:20% 20% 0 0; animation:ca-candle 20s ease-in-out infinite alternate; }
.scn-commerce-and-abolition .candle-light { position:absolute; bottom:25%; left:68%; width:6%; height:15%; background:radial-gradient(ellipse,rgba(200,220,255,0.2),transparent 70%); filter:blur(10px); animation:ca-candlelight 4s ease-in-out infinite alternate; }

@keyframes ca-desk { 0% { transform:translateY(0); } 50% { transform:translateY(-1px); } 100% { transform:translateY(0); } }
@keyframes ca-map { 0% { transform:rotate(3deg) translateX(0); } 50% { transform:rotate(5deg) translateX(2px); } 100% { transform:rotate(3deg) translateX(0); } }
@keyframes ca-globe { 0% { transform:rotate(0deg) scale(1); } 50% { transform:rotate(5deg) scale(1.02); } 100% { transform:rotate(0deg) scale(1); } }
@keyframes ca-quill { 0% { transform:rotate(-10deg) translateY(0); } 50% { transform:rotate(-15deg) translateY(-2px); } 100% { transform:rotate(-10deg) translateY(0); } }
@keyframes ca-candle { 0% { opacity:.7; transform:scaleY(1); } 50% { opacity:1; transform:scaleY(1.02); } 100% { opacity:.7; transform:scaleY(1); } }
@keyframes ca-candlelight { 0% { opacity:.3; transform:scale(1); } 50% { opacity:.7; transform:scale(1.1); } 100% { opacity:.3; transform:scale(1); } }

.scn-governor-mission-proposal { background: linear-gradient(180deg, #2a1e14 0%, #1a120c 100%), radial-gradient(ellipse at 50% 60%, #3a2a1a 0%, transparent 70%); }
.scn-governor-mission-proposal .wall { position:absolute; inset:0; background: linear-gradient(180deg, #3a2a1a 0%, #1a120c 100%); }
.scn-governor-mission-proposal .table { position:absolute; bottom:20%; left:15%; right:15%; height:20%; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius: 4px; box-shadow: 0 -4px 12px rgba(0,0,0,.6); }
.scn-governor-mission-proposal .candle { position:absolute; bottom:40%; left:50%; width:10px; height:20px; transform:translateX(-50%); background: linear-gradient(180deg, #e8d8b0 0%, #c8b090 100%); border-radius: 2px; }
.scn-governor-mission-proposal .flame { position:absolute; bottom:42%; left:50%; width:12px; height:18px; transform:translateX(-50%); background: radial-gradient(circle, #ffd080 0%, #ffa040 40%, transparent 70%); border-radius: 50%; animation: gmp-flame 2s ease-in-out infinite alternate; }
.scn-governor-mission-proposal .glow { position:absolute; bottom:35%; left:45%; width:100px; height:80px; background: radial-gradient(ellipse, rgba(255,200,100,.3) 0%, transparent 70%); border-radius: 50%; animation: gmp-glow 3s ease-in-out infinite alternate; }
.scn-governor-mission-proposal .governor { position:absolute; bottom:25%; left:30%; width:40px; height:60px; background: linear-gradient(180deg, #2a1e14 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: gmp-figure 6s ease-in-out infinite; }
.scn-governor-mission-proposal .narrator { position:absolute; bottom:25%; right:30%; width:36px; height:56px; background: linear-gradient(180deg, #1a120c 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: gmp-figure 6s ease-in-out infinite reverse; }
.scn-governor-mission-proposal .shadow-left { position:absolute; bottom:20%; left:10%; width:80px; height:40px; background: rgba(0,0,0,.4); border-radius: 50%; filter: blur(8px); animation: gmp-shadow 8s ease-in-out infinite alternate; }
.scn-governor-mission-proposal .shadow-right { position:absolute; bottom:20%; right:10%; width:80px; height:40px; background: rgba(0,0,0,.4); border-radius: 50%; filter: blur(8px); animation: gmp-shadow 8s ease-in-out infinite alternate-reverse; }
@keyframes gmp-flame { 0% { transform: translateX(-50%) scaleY(1) rotate(-2deg); opacity:.9; } 50% { transform: translateX(-50%) scaleY(1.2) rotate(2deg); opacity:1; } 100% { transform: translateX(-50%) scaleY(0.9) rotate(-1deg); opacity:.85; } }
@keyframes gmp-glow { 0% { opacity:.5; transform: scale(1); } 50% { opacity:.7; transform: scale(1.1); } 100% { opacity:.4; transform: scale(0.95); } }
@keyframes gmp-figure { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes gmp-shadow { 0% { opacity:.3; transform: scaleX(1); } 50% { opacity:.5; transform: scaleX(1.2); } 100% { opacity:.2; transform: scaleX(0.9); } }

.scn-consent-to-mission { background: linear-gradient(180deg, #1a1410 0%, #0f0c08 100%), radial-gradient(ellipse at 50% 70%, #2a1e14 0%, transparent 60%); }
.scn-consent-to-mission .desk { position:absolute; bottom:15%; left:10%; right:10%; height:25%; background: linear-gradient(180deg, #4a3020 0%, #2a1e14 100%); border-radius: 4px; box-shadow: 0 -4px 12px rgba(0,0,0,.6); }
.scn-consent-to-mission .paper { position:absolute; bottom:25%; left:40%; width:80px; height:50px; background: linear-gradient(135deg, #f0e8d0 0%, #d8c8a0 100%); border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,.3); transform: rotate(-2deg); animation: ctm-paper 12s ease-in-out infinite alternate; }
.scn-consent-to-mission .inkwell { position:absolute; bottom:32%; left:55%; width:14px; height:18px; background: linear-gradient(180deg, #2a1e14 0%, #0f0c08 100%); border-radius: 50% 50% 30% 30%; box-shadow: 0 2px 4px rgba(0,0,0,.5); }
.scn-consent-to-mission .quill { position:absolute; bottom:35%; left:50%; width:8px; height:30px; background: linear-gradient(180deg, #e8d8b0 0%, #b8a080 100%); border-radius: 2px; transform: rotate(-20deg); transform-origin: bottom; animation: ctm-quill 4s ease-in-out infinite; }
.scn-consent-to-mission .hand { position:absolute; bottom:30%; left:45%; width:20px; height:30px; background: linear-gradient(180deg, #c8b090 0%, #a08060 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-15deg); animation: ctm-hand 4s ease-in-out infinite; }
.scn-consent-to-mission .candle { position:absolute; bottom:35%; left:70%; width:8px; height:16px; background: linear-gradient(180deg, #e0d0b0 0%, #c0a880 100%); border-radius: 2px; }
.scn-consent-to-mission .flame { position:absolute; bottom:37%; left:70%; width:10px; height:14px; transform:translateX(-50%); background: radial-gradient(circle, #ffd080 0%, #ffa040 40%, transparent 70%); border-radius: 50%; animation: ctm-flame 2.5s ease-in-out infinite alternate; }
.scn-consent-to-mission .glow { position:absolute; bottom:30%; left:65%; width:120px; height:100px; background: radial-gradient(ellipse, rgba(255,200,100,.25) 0%, transparent 70%); border-radius: 50%; animation: ctm-glow 3s ease-in-out infinite alternate; }
@keyframes ctm-paper { 0% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(0deg) translateY(-1px); } 100% { transform: rotate(-2deg) translateY(0); } }
@keyframes ctm-quill { 0% { transform: rotate(-20deg) translateY(0); } 50% { transform: rotate(-15deg) translateY(-2px); } 100% { transform: rotate(-20deg) translateY(0); } }
@keyframes ctm-hand { 0% { transform: rotate(-15deg) translateY(0); } 50% { transform: rotate(-10deg) translateY(-1px); } 100% { transform: rotate(-15deg) translateY(0); } }
@keyframes ctm-flame { 0% { transform: translateX(-50%) scaleY(1) rotate(-1deg); } 50% { transform: translateX(-50%) scaleY(1.15) rotate(1deg); } 100% { transform: translateX(-50%) scaleY(0.9) rotate(-1deg); } }
@keyframes ctm-glow { 0% { opacity:.4; transform: scale(1); } 50% { opacity:.65; transform: scale(1.1); } 100% { opacity:.3; transform: scale(0.95); } }

.scn-memorial-to-bishop { background: linear-gradient(180deg, #1a1410 0%, #0f0c08 100%), radial-gradient(ellipse at 50% 80%, #2a1e14 0%, transparent 50%); }
.scn-memorial-to-bishop .parchment { position:absolute; bottom:20%; left:20%; right:20%; height:55%; background: linear-gradient(135deg, #f0e8d0 0%, #d8c8a0 50%, #c0b090 100%); border-radius: 4px; box-shadow: 0 4px 12px rgba(0,0,0,.5); transform: rotate(1deg); animation: mtb-parchment 15s ease-in-out infinite alternate; }
.scn-memorial-to-bishop .text-lines { position:absolute; bottom:30%; left:25%; right:25%; height:35%; background: repeating-linear-gradient(180deg, #3a2a1a 0px, #3a2a1a 2px, transparent 2px, transparent 8px); opacity: .3; animation: mtb-lines 10s ease-in-out infinite alternate; }
.scn-memorial-to-bishop .seal { position:absolute; bottom:25%; left:50%; width:20px; height:20px; transform:translateX(-50%); background: radial-gradient(circle, #c85050 0%, #a03030 100%); border-radius: 50%; box-shadow: 0 2px 4px rgba(0,0,0,.4); animation: mtb-seal 8s ease-in-out infinite; }
.scn-memorial-to-bishop .candle { position:absolute; bottom:25%; left:80%; width:8px; height:16px; background: linear-gradient(180deg, #e0d0b0 0%, #c0a880 100%); border-radius: 2px; }
.scn-memorial-to-bishop .flame { position:absolute; bottom:27%; left:80%; width:10px; height:14px; transform:translateX(-50%); background: radial-gradient(circle, #ffd080 0%, #ffa040 40%, transparent 70%); border-radius: 50%; animation: mtb-flame 2s ease-in-out infinite alternate; }
.scn-memorial-to-bishop .glow { position:absolute; bottom:20%; left:75%; width:100px; height:120px; background: radial-gradient(ellipse, rgba(255,200,100,.2) 0%, transparent 70%); border-radius: 50%; animation: mtb-glow 3s ease-in-out infinite alternate; }
.scn-memorial-to-bishop .shadow { position:absolute; bottom:20%; left:15%; width:120px; height:30px; background: rgba(0,0,0,.3); border-radius: 50%; filter: blur(10px); animation: mtb-shadow 10s ease-in-out infinite alternate; }
@keyframes mtb-parchment { 0% { transform: rotate(1deg) translateY(0); } 50% { transform: rotate(0.5deg) translateY(-1px); } 100% { transform: rotate(1deg) translateY(0); } }
@keyframes mtb-lines { 0% { opacity:.25; } 50% { opacity:.35; } 100% { opacity:.25; } }
@keyframes mtb-seal { 0% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.05); } 100% { transform: translateX(-50%) scale(1); } }
@keyframes mtb-flame { 0% { transform: translateX(-50%) scaleY(1) rotate(-1deg); } 50% { transform: translateX(-50%) scaleY(1.2) rotate(2deg); } 100% { transform: translateX(-50%) scaleY(0.9) rotate(-1deg); } }
@keyframes mtb-glow { 0% { opacity:.3; transform: scale(1); } 50% { opacity:.6; transform: scale(1.1); } 100% { opacity:.3; transform: scale(0.95); } }
@keyframes mtb-shadow { 0% { opacity:.2; transform: scaleX(1); } 50% { opacity:.4; transform: scaleX(1.3); } 100% { opacity:.2; transform: scaleX(1); } }

.scn-memorial-continued { background: linear-gradient(180deg, #1a1410 0%, #0f0c08 100%), radial-gradient(ellipse at 50% 70%, #2a1e14 0%, transparent 60%); }
.scn-memorial-continued .wall { position:absolute; inset:0; background: linear-gradient(180deg, #3a2a1a 0%, #1a120c 100%); }
.scn-memorial-continued .desk { position:absolute; bottom:15%; left:15%; right:15%; height:20%; background: linear-gradient(180deg, #4a3020 0%, #2a1e14 100%); border-radius: 4px; box-shadow: 0 -4px 12px rgba(0,0,0,.6); }
.scn-memorial-continued .paper-pile { position:absolute; bottom:25%; left:35%; width:60px; height:30px; background: linear-gradient(180deg, #d8c8a0 0%, #c0b090 100%); border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,.3); transform: rotate(-1deg); animation: mtc-pile 10s ease-in-out infinite alternate; }
.scn-memorial-continued .paper-top { position:absolute; bottom:28%; left:38%; width:50px; height:20px; background: linear-gradient(135deg, #f0e8d0 0%, #e0d0b0 100%); border-radius: 2px; box-shadow: 0 1px 3px rgba(0,0,0,.2); transform: rotate(2deg); animation: mtc-top 8s ease-in-out infinite alternate; }
.scn-memorial-continued .candle { position:absolute; bottom:30%; left:70%; width:8px; height:16px; background: linear-gradient(180deg, #e0d0b0 0%, #c0a880 100%); border-radius: 2px; }
.scn-memorial-continued .flame { position:absolute; bottom:32%; left:70%; width:10px; height:14px; transform:translateX(-50%); background: radial-gradient(circle, #ffd080 0%, #ffa040 40%, transparent 70%); border-radius: 50%; animation: mtc-flame 2s ease-in-out infinite alternate; }
.scn-memorial-continued .glow { position:absolute; bottom:25%; left:65%; width:120px; height:100px; background: radial-gradient(ellipse, rgba(255,200,100,.25) 0%, transparent 70%); border-radius: 50%; animation: mtc-glow 3s ease-in-out infinite alternate; }
.scn-memorial-continued .figure { position:absolute; bottom:20%; left:20%; width:36px; height:56px; background: linear-gradient(180deg, #1a120c 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mtc-figure 6s ease-in-out infinite; }
.scn-memorial-continued .hand { position:absolute; bottom:28%; left:22%; width:18px; height:24px; background: linear-gradient(180deg, #c8b090 0%, #a08060 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-10deg); animation: mtc-hand 4s ease-in-out infinite; }
@keyframes mtc-pile { 0% { transform: rotate(-1deg) translateY(0); } 50% { transform: rotate(0deg) translateY(-1px); } 100% { transform: rotate(-1deg) translateY(0); } }
@keyframes mtc-top { 0% { transform: rotate(2deg) translateY(0); } 50% { transform: rotate(0deg) translateY(-2px); } 100% { transform: rotate(2deg) translateY(0); } }
@keyframes mtc-flame { 0% { transform: translateX(-50%) scaleY(1) rotate(-1deg); } 50% { transform: translateX(-50%) scaleY(1.15) rotate(2deg); } 100% { transform: translateX(-50%) scaleY(0.9) rotate(-1deg); } }
@keyframes mtc-glow { 0% { opacity:.4; transform: scale(1); } 50% { opacity:.65; transform: scale(1.1); } 100% { opacity:.3; transform: scale(0.95); } }
@keyframes mtc-figure { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes mtc-hand { 0% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-5deg) translateY(-1px); } 100% { transform: rotate(-10deg) translateY(0); } }

.scn-arrival-martinico { background: linear-gradient(180deg, #6ba3d4 0%, #b4d7f0 40%, #f7e8c0 70%, #f4c975 100%), radial-gradient(ellipse at 50% 30%, rgba(255,215,0,0.2) 0%, transparent 60%); }
.scn-arrival-martinico .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #87ceeb 0%, #f0e68c 100%); animation: am-sky 12s ease-in-out infinite alternate; }
.scn-arrival-martinico .sea { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #2e6b8a 0%, #1a3f54 100%); animation: am-sea 8s ease-in-out infinite alternate; }
.scn-arrival-martinico .sun { position:absolute; top:22%; left:72%; width:60px; height:60px; background: radial-gradient(circle, #fff7b0 0%, #ffd700 60%, transparent 80%); border-radius:50%; box-shadow: 0 0 40px 10px #ffd700; animation: am-sun 6s ease-in-out infinite alternate; }
.scn-arrival-martinico .ship { position:absolute; bottom:42%; left:15%; width:80px; height:35px; background: linear-gradient(180deg, #5c3a21 0%, #3b2110 100%); border-radius: 0 0 30% 30% / 0 0 60% 60%; transform-origin: bottom center; animation: am-ship 4s ease-in-out infinite; }
.scn-arrival-martinico .sail { position:absolute; bottom:48%; left:19%; width:35px; height:45px; background: linear-gradient(180deg, #fdf5e6 0%, #e8d5b0 100%); border-radius: 50% 50% 0 0 / 80% 80% 0 0; transform-origin: bottom center; animation: am-sail 5s ease-in-out infinite; }
.scn-arrival-martinico .cloud1 { position:absolute; top:10%; left:10%; width:100px; height:20px; background: rgba(255,255,255,0.6); border-radius:50%; filter: blur(8px); animation: am-cloud1 30s linear infinite; }
.scn-arrival-martinico .cloud2 { position:absolute; top:15%; right:15%; width:80px; height:15px; background: rgba(255,255,255,0.5); border-radius:50%; filter: blur(6px); animation: am-cloud2 40s linear infinite reverse; animation-delay: -10s; }
@keyframes am-sky { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes am-sea { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(3px) scaleY(1.02) } 100% { transform: translateY(-2px) scaleY(0.98) } }
@keyframes am-sun { 0% { transform: scale(1); box-shadow: 0 0 30px 10px #ffd700; } 50% { transform: scale(1.05); box-shadow: 0 0 50px 15px #ffe066; } 100% { transform: scale(0.95); box-shadow: 0 0 20px 8px #ffd700; } }
@keyframes am-ship { 0% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-2deg); } }
@keyframes am-sail { 0% { transform: rotate(-3deg) scaleX(0.95); } 50% { transform: rotate(0deg) scaleX(1.05); } 100% { transform: rotate(3deg) scaleX(0.95); } }
@keyframes am-cloud1 { 0% { transform: translateX(-10px); } 100% { transform: translateX(120vw); } }
@keyframes am-cloud2 { 0% { transform: translateX(0); } 100% { transform: translateX(-120vw); } }

.scn-delayed-by-captain { background: linear-gradient(180deg, #3a2a1a 0%, #5a4030 50%, #3a2a1a 100%), radial-gradient(ellipse at 50% 20%, rgba(255,180,80,0.25) 0%, transparent 60%); }
.scn-delayed-by-captain .bg { position:absolute; inset:0; background: repeating-linear-gradient(0deg, #4a3520 0px, #4a3520 2px, #5a4530 2px, #5a4530 4px); animation: dc-bg 15s linear infinite; }
.scn-delayed-by-captain .desk { position:absolute; bottom:10%; left:20%; right:20%; height:20%; background: linear-gradient(180deg, #6b4a2a 0%, #4a2a10 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.5); }
.scn-delayed-by-captain .captain { position:absolute; bottom:20%; left:65%; width:30px; height:60px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: dc-captain 3s ease-in-out infinite; }
.scn-delayed-by-captain .protagonist { position:absolute; bottom:20%; left:35%; width:25px; height:55px; background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: dc-protagonist 4s ease-in-out infinite; }
.scn-delayed-by-captain .coin { position:absolute; bottom:12%; left:45%; width:12px; height:12px; background: radial-gradient(circle, #ffd700 0%, #b8860b 100%); border-radius:50%; box-shadow: 0 0 16px 4px #ffd700; animation: dc-coin 2s ease-in-out infinite alternate; }
.scn-delayed-by-captain .window { position:absolute; top:10%; left:70%; width:40px; height:50px; background: radial-gradient(ellipse, #ffe8a0 0%, #6688aa 80%); border: 4px solid #3a2a1a; box-shadow: inset 0 0 20px rgba(255,200,100,0.3); animation: dc-window 6s ease-in-out infinite alternate; }
.scn-delayed-by-captain .paper { position:absolute; bottom:15%; left:55%; width:20px; height:15px; background: #e8d5b0; border-radius: 2px; transform: rotate(10deg); animation: dc-paper 5s ease-in-out infinite alternate; }
@keyframes dc-bg { 0% { background-position: 0 0; } 100% { background-position: 10px 0; } }
@keyframes dc-coin { 0% { box-shadow: 0 0 8px 2px #ffd700; } 50% { box-shadow: 0 0 20px 6px #ffd700; } 100% { box-shadow: 0 0 12px 3px #ffd700; } }
@keyframes dc-captain { 0% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(2deg) translateY(-2px); } 100% { transform: rotate(-1deg) translateY(0); } }
@keyframes dc-protagonist { 0% { transform: translateY(0) rotate(0); } 30% { transform: translateY(-3px) rotate(-3deg); } 60% { transform: translateY(0) rotate(2deg); } 100% { transform: translateY(-1px) rotate(0); } }
@keyframes dc-window { 0% { opacity:0.8; box-shadow: inset 0 0 10px rgba(255,200,100,0.2); } 50% { opacity:1; box-shadow: inset 0 0 30px rgba(255,200,100,0.5); } 100% { opacity:0.85; box-shadow: inset 0 0 15px rgba(255,200,100,0.3); } }
@keyframes dc-paper { 0% { transform: rotate(8deg) translateX(0); } 50% { transform: rotate(12deg) translateX(2px); } 100% { transform: rotate(8deg) translateX(0); } }

.scn-escape-from-grenades { background: linear-gradient(180deg, #87ceeb 0%, #f0e68c 60%, #ffa500 100%), radial-gradient(ellipse at 50% 80%, rgba(255,165,0,0.2) 0%, transparent 60%); }
.scn-escape-from-grenades .sky { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #9fd0f0 0%, #f5de9a 100%); animation: eg-sky 15s ease-in-out infinite alternate; }
.scn-escape-from-grenades .sea { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #2a6b8a 0%, #1a3f54 100%); animation: eg-sea 4s ease-in-out infinite alternate; }
.scn-escape-from-grenades .ship { position:absolute; bottom:30%; left:10%; width:90px; height:40px; background: linear-gradient(180deg, #6a4020 0%, #3a2010 100%); border-radius: 0 0 30% 30% / 0 0 50% 50%; transform-origin: bottom center; animation: eg-ship 3s ease-in-out infinite; }
.scn-escape-from-grenades .sail { position:absolute; bottom:35%; left:16%; width:30px; height:50px; background: linear-gradient(180deg, #fdf5e6 0%, #d4c5a9 100%); border-radius: 50% 50% 0 0 / 80% 80% 0 0; transform-origin: bottom center; animation: eg-sail 4s ease-in-out infinite; }
.scn-escape-from-grenades .flag { position:absolute; bottom:38%; left:8%; width:25px; height:15px; background: linear-gradient(180deg, #5a7a3a 0%, #3a5a1a 100%); border-radius: 0 4px 4px 0; transform-origin: left center; animation: eg-flag 2s ease-in-out infinite alternate; }
.scn-escape-from-grenades .cannon { position:absolute; bottom:28%; left:30%; width:35px; height:10px; background: #2a2a2a; border-radius: 4px; transform-origin: left center; animation: eg-cannon 5s ease-in-out infinite; }
.scn-escape-from-grenades .smoke { position:absolute; bottom:35%; left:28%; width:40px; height:40px; background: rgba(220,220,220,0.4); border-radius:50%; filter: blur(10px); animation: eg-smoke 3s ease-out infinite; }
@keyframes eg-sky { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes eg-sea { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(5px) scaleY(1.03); } 100% { transform: translateY(-3px) scaleY(0.97); } }
@keyframes eg-ship { 0% { transform: rotate(-3deg); } 50% { transform: rotate(3deg); } 100% { transform: rotate(-3deg); } }
@keyframes eg-sail { 0% { transform: rotate(-4deg) scaleX(0.9); } 50% { transform: rotate(0deg) scaleX(1.1); } 100% { transform: rotate(4deg) scaleX(0.9); } }
@keyframes eg-flag { 0% { transform: rotate(-15deg); } 100% { transform: rotate(15deg); } }
@keyframes eg-cannon { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(-8px) rotate(-4deg); } 50% { transform: translateX(0) rotate(2deg); } 75% { transform: translateX(5px) rotate(0deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes eg-smoke { 0% { transform: scale(1) translateY(0); opacity:0.7; } 100% { transform: scale(2) translateY(-30px); opacity:0; } }

.scn-reunion-montserrat { background: linear-gradient(180deg, #f0c27f 0%, #f5deb3 40%, #87ceeb 80%), radial-gradient(ellipse at 50% 30%, rgba(255,180,50,0.2) 0%, transparent 60%); }
.scn-reunion-montserrat .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #b0d4e8 0%, #f7e8b0 100%); animation: rm-sky 12s ease-in-out infinite alternate; }
.scn-reunion-montserrat .sea { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #3a7a9a 0%, #1a4a6a 100%); animation: rm-sea 8s ease-in-out infinite alternate; }
.scn-reunion-montserrat .dock { position:absolute; bottom:35%; left:0; right:0; height:8px; background: #4a3a2a; border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.3); }
.scn-reunion-montserrat .ship { position:absolute; bottom:30%; right:-20%; width:100px; height:45px; background: linear-gradient(180deg, #7a5020 0%, #4a2a10 100%); border-radius: 0 0 30% 30% / 0 0 50% 50%; animation: rm-ship 20s linear infinite; }
.scn-reunion-montserrat .figure1 { position:absolute; bottom:20%; left:45%; width:20px; height:50px; background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: rm-figure1 5s ease-in-out infinite; }
.scn-reunion-montserrat .figure2 { position:absolute; bottom:20%; left:55%; width:20px; height:48px; background: linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: rm-figure2 5.5s ease-in-out infinite; }
.scn-reunion-montserrat .palm { position:absolute; bottom:25%; left:15%; width:8px; height:70px; background: linear-gradient(180deg, #4a6a3a 0%, #2a4a1a 100%); border-radius: 4px; transform-origin: bottom center; animation: rm-palm 6s ease-in-out infinite; }
.scn-reunion-montserrat .palm::before { content:''; position:absolute; top:-15px; left:-15px; width:40px; height:30px; background: radial-gradient(ellipse, #5a8a4a 0%, #2a5a1a 100%); border-radius:50%; transform: rotate(20deg); }
.scn-reunion-montserrat .sun { position:absolute; top:15%; left:20%; width:50px; height:50px; background: radial-gradient(circle, #ffe680 0%, #ffb347 70%, transparent 85%); border-radius:50%; box-shadow: 0 0 40px 10px #ffb347; animation: rm-sun 8s ease-in-out infinite alternate; }
@keyframes rm-sky { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes rm-sea { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(2px) scaleY(1.01); } 100% { transform: translateY(-2px) scaleY(0.99); } }
@keyframes rm-ship { 0% { transform: translateX(0); } 100% { transform: translateX(-150vw); } }
@keyframes rm-figure1 { 0% { transform: translateY(0) rotate(0); } 30% { transform: translateY(-5px) rotate(5deg); } 60% { transform: translateY(0) rotate(-3deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes rm-figure2 { 0% { transform: translateY(0) rotate(0); } 25% { transform: translateY(-4px) rotate(-5deg); } 50% { transform: translateY(0) rotate(3deg); } 75% { transform: translateY(-2px) rotate(-2deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes rm-palm { 0% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-2deg); } }
@keyframes rm-sun { 0% { transform: scale(1); box-shadow: 0 0 30px 8px #ffb347; } 50% { transform: scale(1.08); box-shadow: 0 0 50px 15px #ffcc66; } 100% { transform: scale(0.95); box-shadow: 0 0 20px 5px #ffb347; } }

.scn-subscriber-list-d-e { background: linear-gradient(180deg, #fff8e0 0%, #f5e6c8 50%, #e0c8a0 100%), radial-gradient(ellipse at 50% 100%, #d4b080 0%, transparent 70%); }
.scn-subscriber-list-d-e .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #fef7e0 0%, #f0e0c0 100%); }
.scn-subscriber-list-d-e .desk { position:absolute; bottom:0; left:5%; right:5%; height:30%; background: linear-gradient(180deg, #8b6f47 0%, #6b4f2f 100%); border-radius:10% 10% 0 0; box-shadow:0 -4px 10px rgba(0,0,0,.2); }
.scn-subscriber-list-d-e .book { position:absolute; bottom:18%; left:50%; width:120px; height:80px; transform:translateX(-50%); background:linear-gradient(180deg, #c8a87a 0%, #a08060 100%); border-radius:4px 4px 8px 8px; box-shadow:0 4px 8px rgba(0,0,0,.3); animation:sl1-book 6s ease-in-out infinite; }
.scn-subscriber-list-d-e .page { position:absolute; bottom:20%; left:50%; width:100px; height:60px; transform:translateX(-50%); background:repeating-linear-gradient(90deg, #f0e0c0 0, #f0e0c0 1px, transparent 1px, transparent 15px); background-size:15px 100%; background-position:0 0; border-radius:2px; box-shadow:inset 0 0 8px rgba(0,0,0,.1); animation:sl1-page 20s linear infinite; }
.scn-subscriber-list-d-e .quill { position:absolute; bottom:25%; left:40%; width:8px; height:40px; background:linear-gradient(180deg, #e8e0d0 0%, #b0a090 100%); border-radius:50% 50% 20% 20%/60% 60% 40% 40%; transform-origin:bottom center; animation:sl1-quill 4s ease-in-out infinite; }
.scn-subscriber-list-d-e .inkwell { position:absolute; bottom:15%; left:38%; width:16px; height:20px; background:radial-gradient(circle, #3a3a3a 0%, #1a1a1a 100%); border-radius:30% 30% 40% 40%; box-shadow:0 2px 4px rgba(0,0,0,.5); animation:sl1-ink 8s ease-in-out infinite; }
.scn-subscriber-list-d-e .candle { position:absolute; bottom:22%; right:30%; width:12px; height:30px; background:linear-gradient(180deg, #f0d090 0%, #d0a070 100%); border-radius:4px; box-shadow:0 0 16px 6px rgba(255,200,100,.4); animation:sl1-candle 3s ease-in-out infinite; }
@keyframes sl1-book { 0%,100% { transform:translateX(-50%) translateY(0); } 50% { transform:translateX(-50%) translateY(-2px); } }
@keyframes sl1-page { 0% { background-position:0 0; } 100% { background-position:-15px 0; } }
@keyframes sl1-quill { 0% { transform:rotate(-5deg); } 50% { transform:rotate(5deg); } 100% { transform:rotate(-5deg); } }
@keyframes sl1-ink { 0% { transform:scale(1); } 50% { transform:scale(1.05); } 100% { transform:scale(1); } }
@keyframes sl1-candle { 0% { opacity:.8; box-shadow:0 0 12px 4px rgba(255,200,100,.3); } 50% { opacity:1; box-shadow:0 0 20px 8px rgba(255,200,100,.6); } 100% { opacity:.85; box-shadow:0 0 14px 5px rgba(255,200,100,.4); } }

.scn-subscriber-list-e-remaining { background: linear-gradient(180deg, #faf5e6 0%, #eee0c8 50%, #dcc8a8 100%), radial-gradient(ellipse at 50% 100%, #c8b090 0%, transparent 70%); }
.scn-subscriber-list-e-remaining .desk-top { position:absolute; bottom:0; left:0; right:0; height:40%; background:linear-gradient(180deg, #a89070 0%, #8a7050 100%); border-radius:20% 20% 0 0; box-shadow:0 -6px 15px rgba(0,0,0,.2); }
.scn-subscriber-list-e-remaining .paper-main { position:absolute; bottom:8%; left:25%; width:50%; height:30%; background:linear-gradient(135deg, #fcf5e8 0%, #eee0c8 100%); border-radius:2px; transform:rotate(-2deg); box-shadow:0 4px 12px rgba(0,0,0,.15); animation:sl2-paper 12s ease-in-out infinite; }
.scn-subscriber-list-e-remaining .paper-side { position:absolute; bottom:12%; left:45%; width:35%; height:20%; background:linear-gradient(135deg, #fcf5e8 0%, #eee0c8 100%); border-radius:2px; transform:rotate(3deg); box-shadow:0 2px 8px rgba(0,0,0,.1); animation:sl2-side 15s ease-in-out infinite; }
.scn-subscriber-list-e-remaining .inkwell { position:absolute; bottom:25%; right:20%; width:20px; height:24px; background:radial-gradient(circle, #2e2e2e 0%, #0a0a0a 100%); border-radius:30% 30% 40% 40%; box-shadow:0 2px 6px rgba(0,0,0,.5); animation:sl2-ink 10s ease-in-out infinite; }
.scn-subscriber-list-e-remaining .quill-dip { position:absolute; bottom:30%; right:25%; width:6px; height:36px; background:linear-gradient(180deg, #ece4d0 0%, #b8a890 100%); border-radius:50% 50% 20% 20%/60% 60% 40% 40%; transform-origin:bottom center; animation:sl2-quill 7s ease-in-out infinite; }
.scn-subscriber-list-e-remaining .ink-drop { position:absolute; bottom:22%; right:21%; width:4px; height:6px; background:#2a1a0a; border-radius:50%; opacity:0; animation:sl2-drop 8s ease-in-out infinite 2s; }
@keyframes sl2-paper { 0% { transform:rotate(-2deg) translateY(0); } 50% { transform:rotate(-1deg) translateY(-2px); } 100% { transform:rotate(-2deg) translateY(0); } }
@keyframes sl2-side { 0% { transform:rotate(3deg) translateY(0); } 50% { transform:rotate(4deg) translateY(-1px); } 100% { transform:rotate(3deg) translateY(0); } }
@keyframes sl2-ink { 0% { transform:scale(1); box-shadow:0 2px 6px rgba(0,0,0,.5); } 50% { transform:scale(1.03); box-shadow:0 2px 10px rgba(0,0,0,.6); } 100% { transform:scale(1); box-shadow:0 2px 6px rgba(0,0,0,.5); } }
@keyframes sl2-quill { 0% { transform:rotate(-8deg); } 50% { transform:rotate(2deg); } 100% { transform:rotate(-8deg); } }
@keyframes sl2-drop { 0% { opacity:0; transform:translateY(0); } 20% { opacity:.6; } 40% { opacity:0; transform:translateY(10px); } 100% { opacity:0; } }

.scn-subscriber-list-g { background: linear-gradient(180deg, #fdf6e3 0%, #f0e0c0 50%, #dcc8a0 100%), radial-gradient(ellipse at 50% 0%, #e8d0b0 0%, transparent 80%); }
.scn-subscriber-list-g .wall { position:absolute; inset:0 0 40% 0; background:linear-gradient(180deg, #f5efe0 0%, #e8dcc0 100%); }
.scn-subscriber-list-g .shelf { position:absolute; bottom:40%; left:10%; right:10%; height:4px; background:#7a6a4a; box-shadow:0 2px 4px rgba(0,0,0,.3); }
.scn-subscriber-list-g .books { position:absolute; bottom:45%; left:12%; right:12%; height:30%; background:repeating-linear-gradient(90deg, #b09878 2px, #a08868 2px, #a08868 8px, #8a7050 8px, #8a7050 16px); border-radius:2px; box-shadow:0 4px 8px rgba(0,0,0,.2); animation:sl3-books 25s linear infinite; }
.scn-subscriber-list-g .ladder { position:absolute; bottom:10%; left:15%; width:6px; height:55%; background:linear-gradient(90deg, #6a5a3a 0%, #8a7050 100%); border-radius:10px; transform:rotate(10deg); transform-origin:bottom center; box-shadow:2px 0 6px rgba(0,0,0,.2); }
.scn-subscriber-list-g .figure { position:absolute; bottom:15%; left:17%; width:14px; height:35px; background:linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:50% 50% 40% 40%/60% 60% 40% 40%; transform-origin:bottom center; animation:sl3-fig 6s ease-in-out infinite; }
.scn-subscriber-list-g .window-light { position:absolute; top:10%; right:20%; width:40px; height:50px; background:radial-gradient(ellipse at 50% 50%, #ffe8b0 0%, transparent 70%); opacity:.3; border-radius:20% 20% 10% 10%; box-shadow:0 0 30px 15px rgba(255,232,176,.2); animation:sl3-light 9s ease-in-out infinite; }
@keyframes sl3-books { 0% { background-position:0 0; } 100% { background-position:-16px 0; } }
@keyframes sl3-fig { 0% { transform:translateY(0) rotate(0deg); } 50% { transform:translateY(-3px) rotate(2deg); } 100% { transform:translateY(0) rotate(0deg); } }
@keyframes sl3-light { 0% { opacity:.2; box-shadow:0 0 20px 10px rgba(255,232,176,.1); } 50% { opacity:.5; box-shadow:0 0 40px 20px rgba(255,232,176,.3); } 100% { opacity:.2; box-shadow:0 0 20px 10px rgba(255,232,176,.1); } }

.scn-subscriber-list-h { background: linear-gradient(180deg, #fff5e6 0%, #f0e0c0 40%, #dcc8a0 100%), radial-gradient(ellipse at 50% 100%, #c8a888 0%, transparent 70%); }
.scn-subscriber-list-h .arch { position:absolute; top:0; left:20%; right:20%; bottom:30%; border-top-left-radius:50%; border-top-right-radius:50%; background:linear-gradient(180deg, #8a7050 0%, #b08860 100%); box-shadow:0 8px 20px rgba(0,0,0,.3); }
.scn-subscriber-list-h .wall-back { position:absolute; top:5%; left:23%; right:23%; bottom:35%; background:linear-gradient(180deg, #f5efe0 0%, #e8dcc0 100%); border-radius:40% 40% 0 0; }
.scn-subscriber-list-h .window { position:absolute; top:8%; left:35%; right:35%; height:25%; background:linear-gradient(180deg, #b0d0e0 0%, #8ab0c0 100%); border-radius:2px; box-shadow:inset 0 0 20px rgba(255,255,200,.3); animation:sl4-window 14s ease-in-out infinite; }
.scn-subscriber-list-h .desk { position:absolute; bottom:8%; left:25%; right:25%; height:20%; background:linear-gradient(180deg, #9a8060 0%, #7a6040 100%); border-radius:4px; box-shadow:0 4px 10px rgba(0,0,0,.2); }
.scn-subscriber-list-h .chair { position:absolute; bottom:8%; left:10%; width:40px; height:50px; background:linear-gradient(180deg, #6a5040 0%, #4a3020 100%); border-radius:20% 20% 30% 30%; animation:sl4-chair 5s ease-in-out infinite; }
.scn-subscriber-list-h .lamp { position:absolute; bottom:18%; right:30%; width:10px; height:20px; background:linear-gradient(180deg, #d0b080 0%, #a08060 100%); border-radius:4px; box-shadow:0 0 12px 4px rgba(255,200,100,.5), 0 0 24px 8px rgba(255,200,100,.3); animation:sl4-lamp 2s ease-in-out infinite; }
@keyframes sl4-window { 0% { opacity:.7; } 50% { opacity:1; } 100% { opacity:.7; } }
@keyframes sl4-chair { 0% { transform:translateY(0) rotate(0deg); } 50% { transform:translateY(-1px) rotate(1deg); } 100% { transform:translateY(0) rotate(0deg); } }
@keyframes sl4-lamp { 0% { opacity:.8; box-shadow:0 0 10px 3px rgba(255,200,100,.4), 0 0 20px 6px rgba(255,200,100,.2); } 50% { opacity:1; box-shadow:0 0 16px 6px rgba(255,200,100,.6), 0 0 32px 12px rgba(255,200,100,.4); } 100% { opacity:.8; box-shadow:0 0 10px 3px rgba(255,200,100,.4), 0 0 20px 6px rgba(255,200,100,.2); } }

.scn-dowry-and-property {
  background:
    linear-gradient(180deg, #f5e6c8 0%, #e8d4a8 30%, #c9a87c 60%, #a8845a 100%),
    radial-gradient(ellipse at 50% 0%, #fff7e0 0%, transparent 60%);
}
.scn-dowry-and-property .ceremony-sky {
  position: absolute;
  inset: 0 0 55% 0;
  background: linear-gradient(180deg, #fff9e6 0%, #f0ddb8 40%, #dcc49a 100%);
  animation: dp-sky 15s ease-in-out infinite alternate;
}
.scn-dowry-and-property .temple-arch {
  position: absolute;
  bottom: 42%;
  left: 50%;
  width: 260px;
  height: 120px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #e8d0a8 0%, #c8a878 50%, #a88858 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  box-shadow: inset 0 -20px 40px rgba(0,0,0,0.15);
  animation: dp-arch 18s ease-in-out infinite;
}
.scn-dowry-and-property .altar {
  position: absolute;
  bottom: 36%;
  left: 50%;
  width: 60px;
  height: 16px;
  transform: translateX(-50%);
  background: linear-gradient(90deg, #b89060 0%, #d4a870 50%, #b89060 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
  animation: dp-altar 12s ease-in-out infinite alternate;
}
.scn-dowry-and-property .bride-figure {
  position: absolute;
  bottom: 28%;
  left: 44%;
  width: 22px;
  height: 52px;
  background: linear-gradient(180deg, #f0dcc0 20%, #d4b890 50%, #c8a070 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 35% 35%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.2);
  animation: dp-figure-b 5s ease-in-out infinite alternate;
}
.scn-dowry-and-property .bride-figure::before {
  content: '';
  position: absolute;
  top: -8px;
  left: 50%;
  width: 20px;
  height: 14px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 30%, #f0e0c8 20%, #dcc4a0 70%);
  border-radius: 50%;
}
.scn-dowry-and-property .groom-figure {
  position: absolute;
  bottom: 28%;
  left: 53%;
  width: 24px;
  height: 54px;
  background: linear-gradient(180deg, #e8d0a8 20%, #c8a878 50%, #a88858 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 35% 35%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.2);
  animation: dp-figure-g 5s ease-in-out infinite alternate-reverse;
}
.scn-dowry-and-property .gift-stack {
  position: absolute;
  bottom: 30%;
  left: 30%;
  width: 28px;
  height: 24px;
  background: linear-gradient(180deg, #d4a060 0%, #b88440 50%, #a07030 100%);
  border-radius: 4px;
  box-shadow: 4px 4px 0 #c09050, -2px -2px 0 rgba(255,255,200,0.3);
  animation: dp-gift 7s ease-in-out infinite;
}
.scn-dowry-and-property .elder-figure {
  position: absolute;
  bottom: 28%;
  left: 62%;
  width: 20px;
  height: 48px;
  background: linear-gradient(180deg, #dcc8a8 20%, #b8a080 60%, #a08060 100%);
  border-radius: 35% 35% 25% 25% / 55% 55% 30% 30%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.15);
  animation: dp-elder 6s ease-in-out infinite alternate;
}
.scn-dowry-and-property .sunburst {
  position: absolute;
  top: 8%;
  left: 50%;
  width: 100px;
  height: 100px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #fff8e0 0%, #ffe8a0 25%, #ffd060 50%, transparent 80%);
  border-radius: 50%;
  filter: blur(4px);
  opacity: 0.7;
  animation: dp-sun 8s ease-in-out infinite alternate;
}
@keyframes dp-sky { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes dp-arch { 0% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(1.02); } 100% { transform: translateX(-50%) scaleY(0.98); } }
@keyframes dp-altar { 0% { transform: translateX(-50%) translateY(0); } 100% { transform: translateX(-50%) translateY(-2px); } }
@keyframes dp-figure-b { 0% { transform: translate(0, 0) rotate(-2deg); } 50% { transform: translate(3px, -2px) rotate(1deg); } 100% { transform: translate(1px, -1px) rotate(-1deg); } }
@keyframes dp-figure-g { 0% { transform: translate(0, 0) rotate(2deg); } 50% { transform: translate(-3px, -2px) rotate(-1deg); } 100% { transform: translate(-1px, -1px) rotate(1deg); } }
@keyframes dp-gift { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-4px) scale(1.05); } 100% { transform: translateY(0) scale(0.98); } }
@keyframes dp-elder { 0% { transform: translate(0, 0) rotate(1deg); } 50% { transform: translate(2px, -1px) rotate(-1deg); } 100% { transform: translate(0, 0) rotate(0); } }
@keyframes dp-sun { 0% { opacity: 0.5; transform: translateX(-50%) scale(1); } 50% { opacity: 0.85; transform: translateX(-50%) scale(1.1); } 100% { opacity: 0.6; transform: translateX(-50%) scale(0.95); } }

.scn-dancers-musicians-poets {
  background:
    linear-gradient(180deg, #ffe8c8 0%, #f5d4a8 35%, #d4a878 65%, #b88858 100%),
    radial-gradient(ellipse at 50% 0%, #fff4d8 0%, transparent 70%);
}
.scn-dancers-musicians-poets .festival-sky {
  position: absolute;
  inset: 0 0 45% 0;
  background: linear-gradient(180deg, #fff0d0 0%, #f0d8b0 40%, #e0c090 100%);
  animation: dmp-sky 20s ease-in-out infinite alternate;
}
.scn-dancers-musicians-poets .stage-floor {
  position: absolute;
  bottom: 18%;
  left: 0;
  right: 0;
  height: 30%;
  background: linear-gradient(180deg, #c8a070 0%, #a88050 40%, #906840 100%);
  border-radius: 30% 70% 0 0 / 40% 60% 0 0;
  box-shadow: inset 0 12px 30px rgba(0,0,0,0.25);
  animation: dmp-floor 12s ease-in-out infinite alternate;
}
.scn-dancers-musicians-poets .dancer-left {
  position: absolute;
  bottom: 20%;
  left: 22%;
  width: 26px;
  height: 62px;
  background: linear-gradient(180deg, #f0dcc0 20%, #dcc4a0 50%, #c0a880 100%);
  border-radius: 40% 40% 35% 35% / 55% 55% 40% 40%;
  transform-origin: bottom center;
  animation: dmp-dance-l 3s ease-in-out infinite;
}
.scn-dancers-musicians-poets .dancer-left::before {
  content: '';
  position: absolute;
  top: -10px;
  left: 50%;
  width: 18px;
  height: 16px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 30%, #f0dcc0 20%, #dcc4a0 70%);
  border-radius: 50%;
}
.scn-dancers-musicians-poets .dancer-right {
  position: absolute;
  bottom: 20%;
  left: 35%;
  width: 24px;
  height: 58px;
  background: linear-gradient(180deg, #e8d0b0 20%, #d4b890 50%, #b89870 100%);
  border-radius: 40% 40% 35% 35% / 55% 55% 40% 40%;
  transform-origin: bottom center;
  animation: dmp-dance-r 3.2s ease-in-out infinite alternate;
}
.scn-dancers-musicians-poets .dancer-right::before {
  content: '';
  position: absolute;
  top: -9px;
  left: 50%;
  width: 16px;
  height: 14px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 30%, #e8d0b0 20%, #d4b890 70%);
  border-radius: 50%;
}
.scn-dancers-musicians-poets .drummer {
  position: absolute;
  bottom: 18%;
  left: 52%;
  width: 28px;
  height: 56px;
  background: linear-gradient(180deg, #dcc8a8 20%, #c0a880 50%, #a88860 100%);
  border-radius: 40% 40% 30% 30% / 55% 55% 35% 35%;
  animation: dmp-drummer 4s ease-in-out infinite alternate;
}
.scn-dancers-musicians-poets .drummer::before {
  content: '';
  position: absolute;
  top: -6px;
  left: 50%;
  width: 14px;
  height: 12px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 30%, #dcc8a8 20%, #c0a880 70%);
  border-radius: 50%;
}
.scn-dancers-musicians-poets .drummer::after {
  content: '';
  position: absolute;
  bottom: 6px;
  left: -10px;
  width: 20px;
  height: 18px;
  background: radial-gradient(ellipse at 50% 50%, #c8a060 0%, #a88040 70%);
  border-radius: 50%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: dmp-drum 1.5s ease-in-out infinite;
}
.scn-dancers-musicians-poets .string-player {
  position: absolute;
  bottom: 18%;
  left: 66%;
  width: 22px;
  height: 54px;
  background: linear-gradient(180deg, #e8d4b8 20%, #d0b890 50%, #b09870 100%);
  border-radius: 40% 40% 30% 30% / 55% 55% 35% 35%;
  animation: dmp-string 3.5s ease-in-out infinite alternate;
}
.scn-dancers-musicians-poets .string-player::before {
  content: '';
  position: absolute;
  top: -7px;
  left: 50%;
  width: 15px;
  height: 13px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 30%, #e8d4b8 20%, #d0b890 70%);
  border-radius: 50%;
}
.scn-dancers-musicians-poets .string-player::after {
  content: '';
  position: absolute;
  bottom: 8px;
  left: -8px;
  width: 8px;
  height: 28px;
  background: linear-gradient(180deg, #c8a060 0%, #a08040 100%);
  border-radius: 4px;
  transform: rotate(15deg);
  transform-origin: bottom center;
  animation: dmp-strum 1.8s ease-in-out infinite;
}
.scn-dancers-musicians-poets .crowd-silhouette {
  position: absolute;
  bottom: 18%;
  right: 8%;
  width: 80px;
  height: 40px;
  background: linear-gradient(180deg, rgba(100,70,40,0.6) 0%, rgba(80,55,30,0.4) 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  filter: blur(3px);
  animation: dmp-crowd 8s ease-in-out infinite alternate;
}
.scn-dancers-musicians-poets .banner-flow {
  position: absolute;
  top: 12%;
  left: 10%;
  width: 60px;
  height: 10px;
  background: linear-gradient(90deg, #e8c080 0%, #f0d4a0 50%, #e8c080 100%);
  border-radius: 40% 60% 60% 40% / 50% 50% 50% 50%;
  filter: blur(1px);
  opacity: 0.6;
  animation: dmp-banner 7s ease-in-out infinite alternate;
}
.scn-dancers-musicians-poets .mote-dust {
  position: absolute;
  top: 15%;
  left: 45%;
  width: 8px;
  height: 8px;
  background: radial-gradient(circle, #fff0c0 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(2px);
  animation: dmp-mote 5s ease-in-out infinite;
  box-shadow: 20px 30px 0 2px rgba(255,240,200,0.3), -15px 45px 0 1px rgba(255,240,200,0.2), 40px 20px 0 3px rgba(255,240,200,0.25);
}
@keyframes dmp-sky { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes dmp-floor { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes dmp-dance-l { 0% { transform: rotate(-5deg) translateX(0); } 25% { transform: rotate(3deg) translateX(6px); } 50% { transform: rotate(-4deg) translateX(12px); } 75% { transform: rotate(2deg) translateX(6px); } 100% { transform: rotate(-5deg) translateX(0); } }
@keyframes dmp-dance-r { 0% { transform: rotate(4deg) translateX(0); } 50% { transform: rotate(-3deg) translateX(-8px); } 100% { transform: rotate(4deg) translateX(0); } }
@keyframes dmp-drummer { 0% { transform: translate(0, 0) rotate(2deg); } 50% { transform: translate(2px, -3px) rotate(-1deg); } 100% { transform: translate(0, 0) rotate(0); } }
@keyframes dmp-drum { 0% { transform: scale(1); } 25% { transform: scale(1.1) translateY(-2px); } 50% { transform: scale(0.95); } 75% { transform: scale(1.05) translateY(-1px); } 100% { transform: scale(1); } }
@keyframes dmp-string { 0% { transform: translate(0, 0) rotate(-1deg); } 50% { transform: translate(-3px, -2px) rotate(2deg); } 100% { transform: translate(0, 0) rotate(-1deg); } }
@keyframes dmp-strum { 0% { transform: rotate(15deg) scaleY(1); } 50% { transform: rotate(10deg) scaleY(1.05); } 100% { transform: rotate(15deg) scaleY(1); } }
@keyframes dmp-crowd { 0% { transform: translateY(0) scaleX(1); opacity: 0.5; } 50% { transform: translateY(-3px) scaleX(1.02); opacity: 0.7; } 100% { transform: translateY(0) scaleX(1); opacity: 0.5; } }
@keyframes dmp-banner { 0% { transform: translateX(0) rotate(-3deg); } 50% { transform: translateX(15px) rotate(2deg); } 100% { transform: translateX(5px) rotate(-1deg); } }
@keyframes dmp-mote { 0% { transform: translate(0, 0) scale(1); opacity: 0.3; } 50% { transform: translate(10px, -20px) scale(1.2); opacity: 0.8; } 100% { transform: translate(-5px, -10px) scale(0.9); opacity: 0.4; } }

.scn-four-dance-divisions {
  background:
    linear-gradient(180deg, #f0dcc0 0%, #e0c8a0 30%, #c8a878 60%, #a88858 100%),
    radial-gradient(ellipse at 50% 0%, #fff0d0 0%, transparent 70%);
}
.scn-four-dance-divisions .field-sky {
  position: absolute;
  inset: 0 0 50% 0;
  background: linear-gradient(180deg, #fff0d0 0%, #f0d8b0 40%, #dcc49a 100%);
  animation: fdd-sky 18s ease-in-out infinite alternate;
}
.scn-four-dance-divisions .ground-tier {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 52%;
  background: linear-gradient(180deg, #c8a070 0%, #b08850 30%, #987040 60%, #806030 100%);
  border-radius: 20% 80% 0 0 / 30% 70% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.2);
  animation: fdd-ground 14s ease-in-out infinite alternate;
}
.scn-four-dance-divisions .married-men-row {
  position: absolute;
  bottom: 42%;
  left: 10%;
  width: 200px;
  height: 28px;
  background: linear-gradient(90deg, #c8a878 0%, #d4b890 40%, #c0a070 70%, #b89060 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.15);
  animation: fdd-row-1 5s ease-in-out infinite alternate;
}
.scn-four-dance-divisions .married-men-row::before {
  content: '';
  position: absolute;
  top: -12px;
  left: 10%;
  width: 12px;
  height: 14px;
  background: radial-gradient(ellipse at 50% 30%, #d4b890 20%, #c0a070 70%);
  border-radius: 50%;
  box-shadow: 30px 0 0 0 #d4b890, 60px 0 0 0 #c0a070, 90px 0 0 0 #d4b890, 120px 0 0 0 #c0a070, 150px 0 0 0 #d4b890;
}
.scn-four-dance-divisions .married-women-row {
  position: absolute;
  bottom: 34%;
  left: 15%;
  width: 180px;
  height: 26px;
  background: linear-gradient(90deg, #e0c8a8 0%, #e8d4b8 40%, #dcc4a0 70%, #d0b890 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.12);
  animation: fdd-row-2 5.5s ease-in-out infinite alternate-reverse;
}
.scn-four-dance-divisions .married-women-row::before {
  content: '';
  position: absolute;
  top: -10px;
  left: 12%;
  width: 10px;
  height: 12px;
  background: radial-gradient(ellipse at 50% 30%, #e8d4b8 20%, #dcc4a0 70%);
  border-radius: 50%;
  box-shadow: 25px 0 0 0 #e0c8a8, 50px 0 0 0 #e8d4b8, 75px 0 0 0 #dcc4a0, 100px 0 0 0 #e0c8a8, 125px 0 0 0 #e8d4b8;
}
.scn-four-dance-divisions .young-men-row {
  position: absolute;
  bottom: 26%;
  left: 8%;
  width: 220px;
  height: 24px;
  background: linear-gradient(90deg, #b89870 0%, #c8a878 40%, #b08850 70%, #a08050 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.18);
  animation: fdd-row-3 4.8s ease-in-out infinite alternate;
}
.scn-four-dance-divisions .young-men-row::before {
  content: '';
  position: absolute;
  top: -11px;
  left: 8%;
  width: 11px;
  height: 13px;
  background: radial-gradient(ellipse at 50% 30%, #c8a878 20%, #b08850 70%);
  border-radius: 50%;
  box-shadow: 28px 0 0 0 #b89870, 56px 0 0 0 #c8a878, 84px 0 0 0 #b08850, 112px 0 0 0 #b89870, 140px 0 0 0 #c8a878, 168px 0 0 0 #b08850;
}
.scn-four-dance-divisions .maidens-row {
  position: absolute;
  bottom: 18%;
  left: 12%;
  width: 190px;
  height: 22px;
  background: linear-gradient(90deg, #e8d4b8 0%, #f0dcc0 40%, #e0c8a8 70%, #d8c098 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.1);
  animation: fdd-row-4 6s ease-in-out infinite alternate-reverse;
}
.scn-four-dance-divisions .maidens-row::before {
  content: '';
  position: absolute;
  top: -9px;
  left: 10%;
  width: 9px;
  height: 11px;
  background: radial-gradient(ellipse at 50% 30%, #f0dcc0 20%, #e0c8a8 70%);
  border-radius: 50%;
  box-shadow: 24px 0 0 0 #e8d4b8, 48px 0 0 0 #f0dcc0, 72px 0 0 0 #e0c8a8, 96px 0 0 0 #d8c098, 120px 0 0 0 #e8d4b8, 144px 0 0 0 #f0dcc0;
}
.scn-four-dance-divisions .dust-sparkle {
  position: absolute;
  top: 20%;
  left: 40%;
  width: 6px;
  height: 6px;
  background: radial-gradient(circle, #fff0c0 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(2px);
  animation: fdd-sparkle 7s ease-in-out infinite;
  box-shadow: 30px 50px 0 1px rgba(255,240,200,0.25), -20px 70px 0 2px rgba(255,240,200,0.2), 60px 40px 0 1px rgba(255,240,200,0.3), -40px 90px 0 1px rgba(255,240,200,0.15);
}
@keyframes fdd-sky { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes fdd-ground { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes fdd-row-1 { 0% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(6px) scaleX(1.02); } 100% { transform: translateX(0) scaleX(0.98); } }
@keyframes fdd-row-2 { 0% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(-5px) scaleX(1.01); } 100% { transform: translateX(3px) scaleX(0.99); } }
@keyframes fdd-row-3 { 0% { transform: translateX(0) scaleY(1); } 50% { transform: translateX(8px) scaleY(1.03); } 100% { transform: translateX(0) scaleY(0.97); } }
@keyframes fdd-row-4 { 0% { transform: translateX(0) scaleY(1); } 50% { transform: translateX(-4px) scaleY(1.02); } 100% { transform: translateX(2px) scaleY(0.98); } }
@keyframes fdd-sparkle { 0% { transform: translate(0, 0) scale(1); opacity: 0.2; } 50% { transform: translate(15px, -30px) scale(1.3); opacity: 0.7; } 100% { transform: translate(-8px, -15px) scale(0.8); opacity: 0.3; } }

.scn-musical-instruments {
  background:
    linear-gradient(180deg, #e8d0a8 0%, #d4b890 30%, #b89870 60%, #a08050 100%),
    radial-gradient(ellipse at 50% 20%, #f0dcc0 0%, transparent 60%);
}
.scn-musical-instruments .stage-shadow {
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at 50% 80%, rgba(80,50,20,0.3) 0%, transparent 60%);
  animation: mi-shadow 12s ease-in-out infinite alternate;
}
.scn-musical-instruments .drum-large {
  position: absolute;
  bottom: 14%;
  left: 18%;
  width: 80px;
  height: 60px;
  background: linear-gradient(180deg, #c8a060 0%, #a88040 40%, #886830 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.3), inset 0 -10px 20px rgba(0,0,0,0.2);
  animation: mi-drum-big 4s ease-in-out infinite;
}
.scn-musical-instruments .drum-large::before {
  content: '';
  position: absolute;
  top: -8px;
  left: 10%;
  width: 65px;
  height: 14px;
  background: linear-gradient(180deg, #d4b070 0%, #b89040 100%);
  border-radius: 50%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.2);
}
.scn-musical-instruments .guitar-figure {
  position: absolute;
  bottom: 16%;
  left: 38%;
  width: 22px;
  height: 50px;
  background: linear-gradient(180deg, #e0c8a8 20%, #c8a878 50%, #b08850 100%);
  border-radius: 40% 40% 30% 30% / 55% 55% 35% 35%;
  animation: mi-guitarist 5s ease-in-out infinite alternate;
}
.scn-musical-instruments .guitar-figure::before {
  content: '';
  position: absolute;
  top: -7px;
  left: 50%;
  width: 14px;
  height: 12px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 30%, #e0c8a8 20%, #c8a878 70%);
  border-radius: 50%;
}
.scn-musical-instruments .guitar-figure::after {
  content: '';
  position: absolute;
  bottom: 4px;
  left: -10px;
  width: 10px;
  height: 30px;
  background: linear-gradient(180deg, #c8a060 0%, #a08040 100%);
  border-radius: 4px 4px 8px 8px;
  transform: rotate(20deg);
  transform-origin: bottom center;
  animation: mi-guitar 2s ease-in-out infinite;
}
.scn-musical-instruments .stickado-player {
  position: absolute;
  bottom: 16%;
  left: 56%;
  width: 20px;
  height: 48px;
  background: linear-gradient(180deg, #dcc4a0 20%, #c0a070 50%, #a08050 100%);
  border-radius: 40% 40% 30% 30% / 55% 55% 35% 35%;
  animation: mi-stickado 5.5s ease-in-out infinite alternate-reverse;
}
.scn-musical-instruments .stickado-player::before {
  content: '';
  position: absolute;
  top: -6px;
  left: 50%;
  width: 13px;
  height: 11px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 30%, #dcc4a0 20%, #c0a070 70%);
  border-radius: 50%;
}
.scn-musical-instruments .stickado-player::after {
  content: '';
  position: absolute;
  bottom: 6px;
  left: 10px;
  width: 6px;
  height: 34px;
  background: linear-gradient(180deg, #b89050 0%, #987030 100%);
  border-radius: 3px;
  transform: rotate(-10deg);
  transform-origin: bottom center;
  animation: mi-stick 1.5s ease-in-out infinite alternate;
}
.scn-musical-instruments .drum-small {
  position: absolute;
  bottom: 18%;
  left: 72%;
  width: 40px;
  height: 34px;
  background: linear-gradient(180deg, #d4a870 0%, #b89050 50%, #a07830 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.25), inset 0 -6px 12px rgba(0,0,0,0.15);
  animation: mi-drum-small 3s ease-in-out infinite;
}
.scn-musical-instruments .drum-small::before {
  content: '';
  position: absolute;
  top: -4px;
  left: 8%;
  width: 34px;
  height: 8px;
  background: linear-gradient(180deg, #e0c088 0%, #c8a060 100%);
  border-radius: 50%;
  box-shadow: 0 1px 4px rgba(0,0,0,0.15);
}
.scn-musical-instruments .hand-strike {
  position: absolute;
  bottom: 38%;
  left: 20%;
  width: 18px;
  height: 10px;
  background: radial-gradient(ellipse at 50% 50%, #e8d4b8 20%, #c8a878 70%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: mi-hand 1.2s ease-in-out infinite;
}
.scn-musical-instruments .resonance-ring {
  position: absolute;
  bottom: 20%;
  left: 20%;
  width: 60px;
  height: 40px;
  border: 2px solid rgba(200,160,80,0.2);
  border-radius: 50%;
  transform: translate(-10%, -20%);
  animation: mi-ring 2s ease-out infinite;
}
.scn-musical-instruments .warm-glow {
  position: absolute;
  top: 12%;
  left: 40%;
  width: 120px;
  height: 120px;
  background: radial-gradient(circle, rgba(255,240,200,0.15) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(10px);
  animation: mi-glow 8s ease-in-out infinite alternate;
}
@keyframes mi-shadow { 0% { opacity: 0.5; } 50% { opacity: 0.8; } 100% { opacity: 0.6; } }
@keyframes mi-drum-big { 0% { transform: scaleY(1) translateY(0); } 25% { transform: scaleY(0.98) translateY(-2px); } 50% { transform: scaleY(1) translateY(0); } 75% { transform: scaleY(0.97) translateY(-3px); } 100% { transform: scaleY(1) translateY(0); } }
@keyframes mi-guitarist { 0% { transform: translate(0, 0) rotate(2deg); } 50% { transform: translate(2px, -3px) rotate(-1deg); } 100% { transform: translate(0, 0) rotate(0); } }
@keyframes mi-guitar { 0% { transform: rotate(20deg) scaleX(1); } 50% { transform: rotate(15deg) scaleX(1.05); } 100% { transform: rotate(20deg) scaleX(1); } }
@keyframes mi-stickado { 0% { transform: translate(0, 0) rotate(-2deg); } 50% { transform: translate(-3px, -2px) rotate(1deg); } 100% { transform: translate(0, 0) rotate(-2deg); } }
@keyframes mi-stick { 0% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-6deg) translateY(-4px); } 100% { transform: rotate(-10deg) translateY(0); } }
@keyframes mi-drum-small { 0% { transform: scaleY(1); } 33% { transform: scaleY(0.96) translateY(-2px); } 66% { transform: scaleY(1.02) translateY(-1px); } 100% { transform: scaleY(1); } }
@keyframes mi-hand { 0% { transform: translate(0, 0) scale(1); opacity: 0.7; } 50% { transform: translate(-5px, -8px) scale(1.1); opacity: 1; } 100% { transform: translate(0, 0) scale(1); opacity: 0.7; } }
@keyframes mi-ring { 0% { transform: translate(-10%, -20%) scale(0.8); opacity: 0.6; } 100% { transform: translate(-10%, -20%) scale(1.5); opacity: 0; } }
@keyframes mi-glow { 0% { opacity: 0.3; transform: scale(1); } 50% { opacity: 0.7; transform: scale(1.1); } 100% { opacity: 0.4; transform: scale(0.95); } }

.scn-death-wish { background: linear-gradient(180deg, #0a0a1a 0%, #0f0f2b 30%, #050510 70%, #000000 100%), radial-gradient(ellipse at 50% 100%, #1a1a3a 0%, transparent 70%); }
.scn-death-wish .dw-sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #0f0f2b 0%, #0a0a1a 100%); animation: dw-sky 12s ease-in-out infinite alternate; }
.scn-death-wish .dw-stars { position:absolute; top:0; left:0; right:0; bottom:55%; background: radial-gradient(2px 2px at 10% 20%, #fff, transparent), radial-gradient(2px 2px at 30% 40%, #fff, transparent), radial-gradient(1px 1px at 50% 10%, #fff, transparent), radial-gradient(1px 1px at 70% 30%, #fff, transparent), radial-gradient(2px 2px at 90% 15%, #fff, transparent), radial-gradient(1px 1px at 20% 60%, #fff, transparent), radial-gradient(2px 2px at 60% 70%, #fff, transparent), radial-gradient(1px 1px at 80% 50%, #fff, transparent); animation: dw-stars 4s ease-in-out infinite alternate; }
.scn-death-wish .dw-sea { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #0a1128 0%, #030614 50%, #010208 100%); box-shadow: inset 0 20px 40px rgba(0,0,0,.6); animation: dw-sea 8s ease-in-out infinite alternate; }
.scn-death-wish .dw-ship { position:absolute; bottom:45%; left:25%; right:25%; height:12%; background: linear-gradient(90deg, #1a1008 0%, #2a1a10 50%, #1a1008 100%); border-radius: 30% 30% 0 0; box-shadow: 0 -8px 20px rgba(0,0,0,.5); }
.scn-death-wish .dw-rigging { position:absolute; top:5%; left:30%; right:30%; height:2px; background: rgba(255,255,255,.15); box-shadow: 0 15px 0 rgba(255,255,255,.1), 0 30px 0 rgba(255,255,255,.05); animation: dw-rig 9s ease-in-out infinite alternate; }
.scn-death-wish .dw-figure { position:absolute; bottom:45%; left:48%; width:14px; height:34px; background: linear-gradient(180deg, #0a0a0a 0%, #1a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dw-figure 6s ease-in-out infinite; }
.scn-death-wish .dw-shackles { position:absolute; bottom:47%; left:52%; width:6px; height:6px; background: #556; border-radius: 20%; box-shadow: 0 0 4px rgba(200,200,255,.2); animation: dw-shackle 4s ease-in-out infinite alternate; }
@keyframes dw-sky { 0% { opacity: .7 } 50% { opacity: 1 } 100% { opacity: .8 } }
@keyframes dw-stars { 0% { opacity: .3 } 50% { opacity: .7 } 100% { opacity: .5 } }
@keyframes dw-sea { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-4px) scaleY(1.02) } 100% { transform: translateY(2px) scaleY(.98) } }
@keyframes dw-rig { 0% { transform: rotate(-1deg) } 50% { transform: rotate(0deg) } 100% { transform: rotate(1deg) } }
@keyframes dw-figure { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(2px) rotate(2deg) } 50% { transform: translateX(0) rotate(0deg) } 75% { transform: translateX(-2px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes dw-shackle { 0% { transform: translate(0, 0) rotate(0deg) } 50% { transform: translate(1px, 2px) rotate(5deg) } 100% { transform: translate(-1px, 0) rotate(-3deg) } }

.scn-fish-tossed-overboard { background: linear-gradient(180deg, #f8f0d0 0%, #d0d8e8 40%, #4a6a8a 80%, #1a2a4a 100%), radial-gradient(ellipse at 80% 100%, #4a6a8a 0%, transparent 50%); }
.scn-fish-tossed-overboard .ft-sun { position:absolute; top:12%; right:15%; width:70px; height:70px; background: radial-gradient(circle, #fff 0%, #f8d070 70%, #d08840 100%); border-radius: 50%; box-shadow: 0 0 80px 40px rgba(248,208,112,.5), 0 0 160px 80px rgba(248,208,112,.2); animation: ft-sun 10s ease-in-out infinite alternate; }
.scn-fish-tossed-overboard .ft-glare { position:absolute; top:0; left:0; right:0; bottom:60%; background: linear-gradient(160deg, rgba(255,255,240,.4) 0%, transparent 50%); animation: ft-glare 12s ease-in-out infinite alternate; }
.scn-fish-tossed-overboard .ft-sea { position:absolute; bottom:0; left:0; right:0; height:48%; background: linear-gradient(180deg, #2a4a6a 0%, #1a2a4a 60%, #0a1a2a 100%); box-shadow: inset 0 20px 40px rgba(0,0,0,.4); animation: ft-sea 7s ease-in-out infinite alternate; }
.scn-fish-tossed-overboard .ft-deck { position:absolute; bottom:42%; left:0; right:0; height:22%; background: linear-gradient(0deg, #3a2a1a 0%, #5a3a2a 50%, #3a2a1a 100%); border-radius: 10% 10% 0 0; box-shadow: 0 -8px 20px rgba(0,0,0,.3); }
.scn-fish-tossed-overboard .ft-captor { position:absolute; bottom:45%; left:32%; width:20px; height:42px; background: linear-gradient(180deg, #2a1a10 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: ft-captor 5s ease-in-out infinite; }
.scn-fish-tossed-overboard .ft-captive { position:absolute; bottom:44%; left:58%; width:16px; height:38px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: ft-captive 6s ease-in-out infinite; }
.scn-fish-tossed-overboard .ft-fish { position:absolute; bottom:52%; left:45%; width:24px; height:10px; background: radial-gradient(ellipse at 30% 50%, #a0b0c0 0%, #607080 80%); border-radius: 50%; transform: rotate(-30deg); box-shadow: 0 0 6px rgba(255,255,255,.3); animation: ft-fish 4s ease-in-out infinite; }
.scn-fish-tossed-overboard .ft-splash { position:absolute; bottom:42%; left:52%; width:40px; height:16px; background: radial-gradient(ellipse, rgba(200,220,255,.6) 0%, transparent 70%); border-radius: 50%; filter: blur(3px); animation: ft-splash 2.5s ease-out infinite; }
@keyframes ft-sun { 0% { transform: scale(1) translateY(0); box-shadow: 0 0 80px 40px rgba(248,208,112,.5); } 50% { transform: scale(1.02) translateY(-3px); box-shadow: 0 0 100px 60px rgba(248,208,112,.6); } 100% { transform: scale(.98) translateY(2px); box-shadow: 0 0 60px 30px rgba(248,208,112,.4); } }
@keyframes ft-glare { 0% { opacity: .5 } 50% { opacity: 1 } 100% { opacity: .6 } }
@keyframes ft-sea { 0% { transform: translateY(0) } 50% { transform: translateY(-5px) } 100% { transform: translateY(3px) } }
@keyframes ft-captor { 0%,100% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(4px) rotate(2deg) } }
@keyframes ft-captive { 0%,100% { transform: translateX(0) scaleY(1) } 50% { transform: translateX(-3px) scaleY(.95) } }
@keyframes ft-fish { 0% { transform: rotate(-30deg) translateY(0) } 25% { transform: rotate(-15deg) translateY(-20px) } 50% { transform: rotate(0deg) translateY(0) } 75% { transform: rotate(15deg) translateY(-10px) } 100% { transform: rotate(30deg) translateY(0) } }
@keyframes ft-splash { 0% { opacity: 1; transform: scale(.5) } 50% { opacity: .8; transform: scale(1.2) } 100% { opacity: 0; transform: scale(1.5) } }

.scn-jumping-overboard { background: linear-gradient(180deg, #f0e8c0 0%, #c0c8d0 50%, #2a4a6a 80%, #0a1a2a 100%), radial-gradient(ellipse at 50% 0%, #fff 0%, transparent 60%); }
.scn-jumping-overboard .jo-sun { position:absolute; top:8%; left:50%; width:90px; height:90px; background: radial-gradient(circle, #fff 0%, #f0d080 60%, #c09050 100%); border-radius: 50%; transform: translateX(-50%); box-shadow: 0 0 100px 60px rgba(240,208,128,.5), 0 0 200px 100px rgba(240,208,128,.2); animation: jo-sun 12s ease-in-out infinite alternate; }
.scn-jumping-overboard .jo-sea { position:absolute; bottom:0; left:0; right:0; height:52%; background: linear-gradient(180deg, #1a3a5a 0%, #0a1a2a 60%, #050a12 100%); box-shadow: inset 0 20px 40px rgba(0,0,0,.5); animation: jo-sea 7s ease-in-out infinite alternate; }
.scn-jumping-overboard .jo-nettings { position:absolute; top:0; left:0; right:0; bottom:0; background: repeating-linear-gradient(0deg, transparent, transparent 3px, rgba(100,80,60,.25) 3px, rgba(100,80,60,.25) 4px), repeating-linear-gradient(90deg, transparent, transparent 3px, rgba(100,80,60,.25) 3px, rgba(100,80,60,.25) 4px); animation: jo-net 8s ease-in-out infinite alternate; }
.scn-jumping-overboard .jo-rail { position:absolute; bottom:48%; left:0; right:0; height:12px; background: linear-gradient(90deg, #3a2a1a 0%, #5a3a2a 50%, #3a2a1a 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.3); }
.scn-jumping-overboard .jo-leaper-a { position:absolute; bottom:60%; left:35%; width:16px; height:32px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: jo-leap-a 4s ease-in-out infinite; }
.scn-jumping-overboard .jo-leaper-b { position:absolute; bottom:62%; left:43%; width:16px; height:32px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: jo-leap-b 4s ease-in-out infinite .15s; }
.scn-jumping-overboard .jo-chain { position:absolute; bottom:50%; left:40%; width:4px; height:20px; background: repeating-linear-gradient(180deg, #888 0px, #888 2px, #555 2px, #555 4px); border-radius: 10%; transform-origin: top center; animation: jo-chain 2s ease-in-out infinite alternate; }
.scn-jumping-overboard .jo-observer { position:absolute; bottom:46%; left:60%; width:15px; height:36px; background: linear-gradient(180deg, #2a1a10 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: jo-observe 6s ease-in-out infinite; }
@keyframes jo-sun { 0% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.03) translateY(-2px); } 100% { transform: translateX(-50%) scale(.98); } }
@keyframes jo-sea { 0% { transform: translateY(0) } 50% { transform: translateY(-6px) } 100% { transform: translateY(4px) } }
@keyframes jo-net { 0% { opacity: .6 } 50% { opacity: 1 } 100% { opacity: .7 } }
@keyframes jo-leap-a { 0% { transform: translateY(0) rotate(0deg) } 30% { transform: translateY(-16px) rotate(15deg) } 60% { transform: translateY(-8px) rotate(-5deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes jo-leap-b { 0% { transform: translateY(0) rotate(0deg) } 30% { transform: translateY(-14px) rotate(-10deg) } 60% { transform: translateY(-6px) rotate(8deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes jo-chain { 0% { transform: rotate(0deg) } 50% { transform: rotate(8deg) } 100% { transform: rotate(-8deg) } }
@keyframes jo-observe { 0%,100% { transform: translateX(0) } 50% { transform: translateX(3px) } }

.scn-captured-and-flogged { background: linear-gradient(180deg, #f0d8a0 0%, #c0a080 40%, #4a3a2a 80%, #1a1008 100%), radial-gradient(ellipse at 50% 0%, #fff 0%, transparent 60%); }
.scn-captured-and-flogged .cf-sun { position:absolute; top:5%; left:50%; width:80px; height:80px; background: radial-gradient(circle, #fff 0%, #f0d088 60%, #c09858 100%); border-radius: 50%; transform: translateX(-50%); box-shadow: 0 0 80px 40px rgba(240,208,136,.4), 0 0 160px 80px rgba(240,208,136,.15); animation: cf-sun 10s ease-in-out infinite alternate; }
.scn-captured-and-flogged .cf-deck { position:absolute; bottom:30%; left:0; right:0; height:35%; background: linear-gradient(0deg, #3a2010 0%, #5a3020 50%, #4a2010 100%); border-top: 4px solid #2a1508; box-shadow: inset 0 20px 40px rgba(0,0,0,.3); }
.scn-captured-and-flogged .cf-mast { position:absolute; bottom:55%; left:20%; width:10px; height:50%; background: linear-gradient(90deg, #2a1a0a 0%, #4a2a1a 50%, #2a1a0a 100%); border-radius: 2px; box-shadow: 0 0 10px rgba(0,0,0,.4); }
.scn-captured-and-flogged .cf-struggler { position:absolute; bottom:40%; left:30%; width:18px; height:38px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cf-struggle .4s ease-in-out infinite alternate; }
.scn-captured-and-flogged .cf-subduer { position:absolute; bottom:42%; left:40%; width:22px; height:44px; background: linear-gradient(180deg, #3a2010 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: cf-subdue 1s ease-in-out infinite; }
.scn-captured-and-flogged .cf-lash { position:absolute; bottom:55%; left:42%; width:70px; height:4px; background: repeating-linear-gradient(90deg, #5a3020 0px, #5a3020 3px, transparent 3px, transparent 6px); transform-origin: left center; border-radius: 2px; animation: cf-lash .5s ease-in-out infinite; }
.scn-captured-and-flogged .cf-boat { position:absolute; bottom:35%; right:10%; width:50px; height:18px; background: linear-gradient(180deg, #5a3a2a 0%, #3a2010 100%); border-radius: 0 0 50% 50% / 0 0 100% 100%; box-shadow: 0 4px 8px rgba(0,0,0,.3); animation: cf-boat 8s ease-in-out infinite alternate; }
.scn-captured-and-flogged .cf-wretch { position:absolute; bottom:38%; right:14%; width:14px; height:30px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: cf-wretch 4s ease-in-out infinite; }
@keyframes cf-sun { 0% { transform: translateX(-50%) scale(1) } 50% { transform: translateX(-50%) scale(1.02) translateY(-2px) } 100% { transform: translateX(-50%) scale(.98) } }
@keyframes cf-struggle { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(3px) rotate(5deg) } 50% { transform: translateX(-2px) rotate(-3deg) } 75% { transform: translateX(1px) rotate(2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes cf-subdue { 0%,100% { transform: translateX(0) } 50% { transform: translateX(-4px) } }
@keyframes cf-lash { 0% { transform: rotate(0deg) } 25% { transform: rotate(60deg) } 50% { transform: rotate(0deg) } 75% { transform: rotate(-45deg) } 100% { transform: rotate(10deg) } }
@keyframes cf-boat { 0% { transform: translateY(0) } 50% { transform: translateY(-8px) } 100% { transform: translateY(2px) } }
@keyframes cf-wretch { 0%,100% { transform: translateX(0) scaleY(1) } 50% { transform: translateX(-4px) scaleY(.95) } }

/* SCENE: fury-subsides (calm + dawn) */
.scn-fury-subsides {
  background: linear-gradient(180deg, #1a1a3e 0%, #3a2a4e 40%, #7a5a6a 70%, #c88a5a 100%), radial-gradient(ellipse at 50% 100%, #e8b87a 0%, transparent 80%);
}
.scn-fury-subsides .sky { position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #2a2a4e 0%, #6a4a6a 80%, transparent 100%); animation: fs-sky 12s ease-in-out infinite alternate; }
.scn-fury-subsides .sun-glow { position: absolute; bottom: 45%; left: 50%; width: 40%; height: 30%; transform: translateX(-50%); background: radial-gradient(ellipse, rgba(232,184,122,.4) 0%, transparent 70%); border-radius: 50%; animation: fs-glow 8s ease-in-out infinite alternate; }
.scn-fury-subsides .sun-core { position: absolute; bottom: 42%; left: 50%; width: 60px; height: 60px; transform: translateX(-50%); background: radial-gradient(circle, #fce4c0 0%, #e8b87a 60%, transparent 100%); border-radius: 50%; box-shadow: 0 0 60px 20px rgba(232,184,122,.5); animation: fs-sunrise 15s ease-in-out infinite alternate; }
.scn-fury-subsides .cloud-bank { position: absolute; bottom: 45%; left: -10%; right: -10%; height: 15%; background: linear-gradient(180deg, rgba(232,184,122,.5) 0%, rgba(122,90,106,.6) 50%, transparent 100%); border-radius: 50% 50% 0 0; filter: blur(8px); animation: fs-drift 40s linear infinite; }
.scn-fury-subsides .sea-mist { position: absolute; bottom: 25%; left: 0; right: 0; height: 20%; background: linear-gradient(0deg, rgba(42,58,74,.8) 0%, transparent 100%); filter: blur(4px); animation: fs-mist 18s ease-in-out infinite alternate; }
.scn-fury-subsides .sea { position: absolute; bottom: 0; left: 0; right: 0; height: 35%; background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%); border-radius: 0 0 60% 40%; animation: fs-sea 6s ease-in-out infinite alternate; }
.scn-fury-subsides .ship-silhouette { position: absolute; bottom: 30%; left: 35%; width: 80px; height: 50px; background: radial-gradient(ellipse at 50% 100%, #0a0a1a 0%, transparent 100%); border-radius: 0 0 80% 80%; transform: translateX(-50%); animation: fs-ship 20s ease-in-out infinite; }
.scn-fury-subsides .ship-silhouette::after { content: ''; position: absolute; bottom: 70%; left: 50%; width: 2px; height: 40px; background: #0a0a1a; transform: translateX(-50%); border-radius: 0; }
.scn-fury-subsides .reflection { position: absolute; bottom: 12%; left: 30%; width: 120px; height: 60px; background: linear-gradient(180deg, rgba(232,184,122,.3) 0%, transparent 100%); border-radius: 50%; filter: blur(6px); animation: fs-refl 8s ease-in-out infinite alternate; }
@keyframes fs-sky { 0% { opacity: .7; } 50% { opacity: 1; } 100% { opacity: .8; } }
@keyframes fs-glow { 0% { transform: translateX(-50%) scale(.95); opacity: .6; } 50% { transform: translateX(-50%) scale(1.05); opacity: .9; } 100% { transform: translateX(-50%) scale(1); opacity: .75; } }
@keyframes fs-sunrise { 0% { transform: translateX(-50%) translateY(10px); box-shadow: 0 0 30px 10px rgba(232,184,122,.4); } 50% { transform: translateX(-50%) translateY(0); box-shadow: 0 0 80px 30px rgba(232,184,122,.7); } 100% { transform: translateX(-50%) translateY(-5px); box-shadow: 0 0 50px 15px rgba(232,184,122,.5); } }
@keyframes fs-drift { 0% { transform: translateX(-10%); } 50% { transform: translateX(10%); } 100% { transform: translateX(-10%); } }
@keyframes fs-mist { 0% { opacity: .5; transform: scaleY(1); } 50% { opacity: .8; transform: scaleY(1.1); } 100% { opacity: .6; transform: scaleY(.95); } }
@keyframes fs-sea { 0% { transform: translateY(0); border-radius: 0 0 60% 40%; } 50% { transform: translateY(-3px); border-radius: 0 0 50% 50%; } 100% { transform: translateY(2px); border-radius: 0 0 70% 30%; } }
@keyframes fs-ship { 0% { transform: translateX(-50%) rotate(-2deg); } 50% { transform: translateX(-50%) rotate(2deg); } 100% { transform: translateX(-50%) rotate(-1deg); } }
@keyframes fs-refl { 0% { opacity: .3; transform: scaleY(.9); } 50% { opacity: .7; transform: scaleY(1.1); } 100% { opacity: .5; transform: scaleY(1); } }

/* SCENE: doctor-irving-sloop (calm + sunlit) */
.scn-doctor-irving-sloop {
  background: linear-gradient(180deg, #4a9ad8 0%, #7ab8e8 40%, #c8e4f0 70%, #f8e088 100%), radial-gradient(ellipse at 50% 0%, #ffffff 0%, transparent 80%);
}
.scn-doctor-irving-sloop .sky-bright { position: absolute; inset: 0 0 45% 0; background: linear-gradient(180deg, #3a8ac8 0%, #8ac8e8 100%); animation: dis-sky 10s ease-in-out infinite alternate; }
.scn-doctor-irving-sloop .sun-rays { position: absolute; top: -10%; left: 50%; width: 100%; height: 60%; background: linear-gradient(135deg, rgba(255,255,255,.6) 0%, transparent 50%, rgba(255,255,255,.3) 100%); transform: translateX(-50%) rotate(20deg); animation: dis-rays 12s ease-in-out infinite alternate; }
.scn-doctor-irving-sloop .sea-calm { position: absolute; bottom: 0; left: 0; right: 0; height: 50%; background: linear-gradient(180deg, #2a7a9a 0%, #1a5a7a 50%, #0a3a5a 100%); border-radius: 0 0 40% 60%; box-shadow: inset 0 10px 30px rgba(0,0,0,.3); animation: dis-sea 8s ease-in-out infinite alternate; }
.scn-doctor-irving-sloop .sloop-hull { position: absolute; bottom: 28%; left: 50%; width: 140px; height: 30px; transform: translateX(-50%); background: linear-gradient(180deg, #5e1a1d 0%, #3a0a0c 100%); border-radius: 40% 10% 60% 20%; box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: dis-hull 6s ease-in-out infinite; }
.scn-doctor-irving-sloop .sloop-deck { position: absolute; bottom: 30%; left: 50%; width: 100px; height: 8px; transform: translateX(-50%); background: linear-gradient(180deg, #c8a87a 0%, #8a6a4a 100%); border-radius: 20% 20% 0 0; }
.scn-doctor-irving-sloop .sloop-sail-main { position: absolute; bottom: 32%; left: 53%; width: 60px; height: 80px; background: linear-gradient(180deg, #f8f0e0 0%, #e8dcc8 100%); border-radius: 0 60% 0 80%; box-shadow: 2px 0 4px rgba(0,0,0,.2); animation: dis-sail 6s ease-in-out infinite; }
.scn-doctor-irving-sloop .sloop-sail-jib { position: absolute; bottom: 30%; left: 40%; width: 40px; height: 60px; background: linear-gradient(180deg, #fdf8f0 0%, #e8dcc8 100%); border-radius: 60% 0 80% 0; box-shadow: -2px 0 4px rgba(0,0,0,.2); animation: dis-sail 6s ease-in-out infinite reverse; }
.scn-doctor-irving-sloop .sea-foam { position: absolute; bottom: 25%; left: 10%; right: 10%; height: 6px; background: linear-gradient(90deg, transparent, rgba(255,255,255,.5), transparent); border-radius: 50%; filter: blur(3px); animation: dis-foam 4s ease-in-out infinite alternate; }
.scn-doctor-irving-sloop .seagull { position: absolute; top: 15%; left: 20%; width: 12px; height: 12px; background: radial-gradient(circle at 30% 50%, #fff 0%, #fff 40%, transparent 50%); transform: rotate(-20deg); animation: dis-gull 15s linear infinite; }
@keyframes dis-sky { 0% { opacity: .8; } 50% { opacity: 1; } 100% { opacity: .9; } }
@keyframes dis-rays { 0% { opacity: .5; transform: translateX(-50%) rotate(15deg) scale(1); } 50% { opacity: .8; transform: translateX(-50%) rotate(25deg) scale(1.1); } 100% { opacity: .6; transform: translateX(-50%) rotate(20deg) scale(.95); } }
@keyframes dis-sea { 0% { transform: translateY(0); border-radius: 0 0 40% 60%; } 50% { transform: translateY(-2px); border-radius: 0 0 50% 50%; } 100% { transform: translateY(1px); border-radius: 0 0 30% 70%; } }
@keyframes dis-hull { 0% { transform: translateX(-50%) rotate(-1deg) translateY(0); } 50% { transform: translateX(-50%) rotate(2deg) translateY(-1px); } 100% { transform: translateX(-50%) rotate(-1deg) translateY(1px); } }
@keyframes dis-sail { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.05); } 100% { transform: scaleX(.95); } }
@keyframes dis-foam { 0% { opacity: .3; transform: scaleX(.8); } 50% { opacity: .7; transform: scaleX(1.2); } 100% { opacity: .5; transform: scaleX(1); } }
@keyframes dis-gull { 0% { transform: translateX(-50px) translateY(0) rotate(-20deg); } 25% { transform: translateX(50px) translateY(-20px) rotate(-15deg); } 50% { transform: translateX(150px) translateY(10px) rotate(-25deg); } 75% { transform: translateX(250px) translateY(-10px) rotate(-10deg); } 100% { transform: translateX(350px) translateY(5px) rotate(-20deg); } }

/* SCENE: letter-to-irving (dark + sunlit) */
.scn-letter-to-irving {
  background: linear-gradient(180deg, #0d0b0c 0%, #1a100e 30%, #2b1e16 70%, #1a100e 100%), radial-gradient(ellipse at 50% 0%, #c8a87a 0%, transparent 70%);
}
.scn-letter-to-irving .room-dark { position: absolute; inset: 0; background: linear-gradient(135deg, #0d0b0c 0%, #1a1412 100%); animation: lti-room 15s ease-in-out infinite alternate; }
.scn-letter-to-irving .window-edge { position: absolute; top: 0; left: 20%; right: 50%; bottom: 40%; background: linear-gradient(180deg, #c8a87a 0%, #8a6a4a 100%); border-radius: 0 0 20% 0; box-shadow: inset 0 0 20px rgba(0,0,0,.5); }
.scn-letter-to-irving .light-beam { position: absolute; top: 0; left: 20%; right: 30%; bottom: 20%; background: linear-gradient(135deg, rgba(245,230,211,.4) 0%, rgba(200,168,122,.1) 100%); transform: skewX(-10deg); transform-origin: top left; filter: blur(2px); animation: lti-beam 8s ease-in-out infinite alternate; }
.scn-letter-to-irving .table-desk { position: absolute; bottom: 0; left: 5%; right: 5%; height: 35%; background: linear-gradient(180deg, #2b1e16 0%, #1a100e 100%); border-radius: 10% 10% 0 0; box-shadow: 0 -10px 30px rgba(0,0,0,.8); }
.scn-letter-to-irving .letter-sheet { position: absolute; bottom: 18%; left: 35%; width: 120px; height: 80px; background: linear-gradient(135deg, #fdf8f0 0%, #e8dcc8 50%, #d4c4a8 100%); border-radius: 2% 8% 5% 3%; box-shadow: 0 4px 12px rgba(0,0,0,.6); transform: rotate(2deg); animation: lti-letter 12s ease-in-out infinite; }
.scn-letter-to-irving .hand-writing { position: absolute; bottom: 20%; left: 60%; width: 40px; height: 50px; background: radial-gradient(ellipse at 50% 80%, #1a1412 0%, #0d0b0c 100%); border-radius: 40% 40% 20% 20%; transform: rotate(15deg); transform-origin: bottom center; animation: lti-hand 4s ease-in-out infinite alternate; }
.scn-letter-to-irving .inkwell { position: absolute; bottom: 22%; left: 25%; width: 20px; height: 24px; background: linear-gradient(180deg, #2a2a2a 0%, #0a0a0a 100%); border-radius: 40% 40% 20% 20%; box-shadow: 0 2px 4px rgba(0,0,0,.8); }
.scn-letter-to-irving .dust-mote { position: absolute; top: 30%; left: 30%; width: 4px; height: 4px; background: rgba(245,230,211,.6); border-radius: 50%; filter: blur(1px); animation: lti-dust 6s ease-in-out infinite alternate; }
.scn-letter-to-irving .dust-mote:nth-child(8) { left: 40%; top: 20%; animation-delay: -2s; width: 6px; height: 6px; }
@keyframes lti-room { 0% { opacity: .9; } 50% { opacity: 1; } 100% { opacity: .85; } }
@keyframes lti-beam { 0% { opacity: .3; filter: blur(1px); } 50% { opacity: .7; filter: blur(3px); } 100% { opacity: .5; filter: blur(2px); } }
@keyframes lti-letter { 0% { transform: rotate(2deg) translateY(0); } 50% { transform: rotate(2deg) translateY(-2px); } 100% { transform: rotate(2deg) translateY(1px); } }
@keyframes lti-hand { 0% { transform: rotate(15deg) translateX(0) translateY(0); } 50% { transform: rotate(12deg) translateX(-4px) translateY(-2px); } 100% { transform: rotate(18deg) translateX(2px) translateY(1px); } }
@keyframes lti-dust { 0% { transform: translateY(0) translateX(0) scale(1); opacity: .2; } 50% { transform: translateY(-20px) translateX(10px) scale(1.5); opacity: .8; } 100% { transform: translateY(10px) translateX(-5px) scale(.8); opacity: .4; } }

/* SCENE: overseer-cruelty (dark + sunlit) */
.scn-overseer-cruelty {
  background: linear-gradient(180deg, #f0e6c8 0%, #d4c4a8 30%, #c8b88a 70%, #a08a6a 100%), radial-gradient(ellipse at 50% 0%, #fff4d6 0%, transparent 80%);
}
.scn-overseer-cruelty .sky-blazing { position: absolute; inset: 0 0 50% 0; background: linear-gradient(180deg, #fff4d6 0%, #f0e6c8 50%, #d4c4a8 100%); animation: oc-sky 8s ease-in-out infinite alternate; }
.scn-overseer-cruelty .sun-harsh { position: absolute; top: 0; left: 50%; width: 120px; height: 120px; transform: translateX(-50%); background: radial-gradient(circle, #ffffff 0%, #f0e6c8 50%, transparent 100%); border-radius: 50%; box-shadow: 0 0 100px 40px rgba(240,230,200,.6); animation: oc-sun 12s ease-in-out infinite alternate; }
.scn-overseer-cruelty .field-dirt { position: absolute; bottom: 0; left: 0; right: 0; height: 55%; background: linear-gradient(180deg, #8a7a5a 0%, #5a4a3a 100%); border-radius: 40% 60% 0 0 / 30% 40% 0 0; }
.scn-overseer-cruelty .crop-rows { position: absolute; bottom: 20%; left: 0; right: 0; height: 40%; background: repeating-linear-gradient(90deg, #6a5a4a 0px, #6a5a4a 4px, transparent 4px, transparent 30px); opacity: .6; animation: oc-crops 15s linear infinite; }
.scn-overseer-cruelty .overseer-figure { position: absolute; bottom: 30%; left: 50%; width: 60px; height: 100px; transform: translateX(-50%); background: radial-gradient(ellipse at 50% 30%, #1a1a1a 0%, #0a0a0a 100%); border-radius: 40% 40% 30% 30%; box-shadow: 0 10px 20px rgba(0,0,0,.5); animation: oc-overseer 6s ease-in-out infinite; }
.scn-overseer-cruelty .overseer-figure::before { content: ''; position: absolute; top: 10%; left: 50%; width: 50px; height: 20px; background: #1a1a1a; border-radius: 50% 50% 0 0; transform: translateX(-50%); }
.scn-overseer-cruelty .overseer-whip { position: absolute; bottom: 50%; left: 65%; width: 80px; height: 4px; background: linear-gradient(90deg, #2a2a2a 0%, #4a4a4a 100%); border-radius: 2px; transform-origin: left center; transform: rotate(45deg); animation: oc-whip 2s ease-in-out infinite; }
.scn-overseer-cruelty .laborer-one { position: absolute; bottom: 22%; left: 25%; width: 30px; height: 50px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 30% 30% 40% 40%; transform: rotate(15deg); transform-origin: bottom center; animation: oc-labor 8s ease-in-out infinite; }
.scn-overseer-cruelty .laborer-two { position: absolute; bottom: 22%; left: 70%; width: 30px; height: 50px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 30% 30% 40% 40%; transform: rotate(-10deg); transform-origin: bottom center; animation: oc-labor 8s ease-in-out infinite -3s; }
.scn-overseer-cruelty .heat-haze { position: absolute; inset: 0; background: linear-gradient(180deg, transparent 0%, rgba(200,200,180,.1) 50%, transparent 100%); filter: blur(20px); animation: oc-haze 6s ease-in-out infinite alternate; }
@keyframes oc-sky { 0% { opacity: .9; } 50% { opacity: 1; } 100% { opacity: .8; } }
@keyframes oc-sun { 0% { transform: translateX(-50%) scale(1); box-shadow: 0 0 80px 20px rgba(240,230,200,.5); } 50% { transform: translateX(-50%) scale(1.05); box-shadow: 0 0 120px 50px rgba(240,230,200,.8); } 100% { transform: translateX(-50%) scale(.98); box-shadow: 0 0 100px 30px rgba(240,230,200,.6); } }
@keyframes oc-crops { 0% { transform: translateX(0); } 100% { transform: translateX(30px); } }
@keyframes oc-overseer { 0% { transform: translateX(-50%) translateY(0) rotate(-2deg); } 50% { transform: translateX(-50%) translateY(-2px) rotate(1deg); } 100% { transform: translateX(-50%) translateY(1px) rotate(-1deg); } }
@keyframes oc-whip { 0% { transform: rotate(30deg) scaleX(1); } 25% { transform: rotate(60deg) scaleX(1.2); } 50% { transform: rotate(80deg) scaleX(1.5); } 75% { transform: rotate(60deg) scaleX(1.2); } 100% { transform: rotate(30deg) scaleX(1); } }
@keyframes oc-labor { 0% { transform: rotate(15deg) translateY(0); } 50% { transform: rotate(10deg) translateY(-3px); } 100% { transform: rotate(20deg) translateY(2px); } }
@keyframes oc-haze { 0% { opacity: .3; transform: scaleY(1); } 50% { opacity: .7; transform: scaleY(1.1); } 100% { opacity: .5; transform: scaleY(.9); } }

.scn-exposed-to-shots {
  background: linear-gradient(180deg, #1a1010 0%, #2a1a1a 50%, #0d0808 100%),
              radial-gradient(ellipse at 50% 30%, #4a2a1a 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-exposed-to-shots .ship-interior {
  position: absolute; inset: 0; 
  background: linear-gradient(180deg, transparent 0%, #1a1010 60%, #0a0505 100%);
  box-shadow: inset 0 0 80px rgba(0,0,0,0.8);
}
.scn-exposed-to-shots .beam {
  position: absolute; top: 20%; width: 100%; height: 8px; 
  background: linear-gradient(90deg, transparent, #4a2a1a, transparent);
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
}
.scn-exposed-to-shots .beam-left { left: -10%; transform: rotate(-5deg); }
.scn-exposed-to-shots .beam-right { left: 10%; transform: rotate(5deg); }
.scn-exposed-to-shots .figure-carrying {
  position: absolute; bottom: 30%; left: 40%; width: 16px; height: 36px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0f0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ets-walk 3s ease-in-out infinite;
}
.scn-exposed-to-shots .powder-keg {
  position: absolute; bottom: 28%; left: 45%; width: 12px; height: 14px;
  background: radial-gradient(ellipse, #5a3a1a, #2a1a0a);
  border-radius: 30%;
  animation: ets-carry 3s ease-in-out infinite;
}
.scn-exposed-to-shots .flash {
  position: absolute; top: 10%; width: 60px; height: 60px;
  background: radial-gradient(circle, #ffcc66 0%, #cc8800 40%, transparent 70%);
  border-radius: 50%;
  animation: ets-flash 2s ease-in-out infinite alternate;
}
.scn-exposed-to-shots .flash-1 { left: 10%; animation-delay: 0s; }
.scn-exposed-to-shots .flash-2 { right: 20%; animation-delay: 1s; }
.scn-exposed-to-shots .port-hole {
  position: absolute; top: 25%; left: 30%; width: 20px; height: 20px;
  background: radial-gradient(circle, #886633, #2a1a0a);
  border-radius: 50%;
  box-shadow: inset 0 0 8px rgba(0,0,0,0.8);
}
.scn-exposed-to-shots .shadow-layer {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, rgba(0,0,0,0.6) 0%, transparent 50%);
  pointer-events: none;
}
@keyframes ets-walk {
  0% { transform: translateX(0) rotate(-2deg); }
  50% { transform: translateX(15px) rotate(2deg); }
  100% { transform: translateX(30px) rotate(-2deg); }
}
@keyframes ets-carry {
  0% { transform: translate(0, 0) scale(1); }
  50% { transform: translate(7px, -2px) scale(0.95); }
  100% { transform: translate(15px, 0) scale(1); }
}
@keyframes ets-flash {
  0% { opacity: 0; transform: scale(0.5); }
  50% { opacity: 1; transform: scale(1); }
  100% { opacity: 0; transform: scale(0.5); }
}

.scn-ship-damaged {
  background: linear-gradient(180deg, #87ceeb 0%, #b0e0e6 30%, #f0f8ff 60%, #e0f0e8 100%),
              radial-gradient(ellipse at 50% 80%, #a0d0e0 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-ship-damaged .sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #4a90d9 0%, #1a5f8a 100%);
  animation: shp-sea 8s ease-in-out infinite alternate;
}
.scn-ship-damaged .ship-hull {
  position: absolute; bottom: 30%; left: 30%; width: 120px; height: 50px;
  background: linear-gradient(180deg, #6b4226, #3e2210);
  border-radius: 20% 20% 40% 40% / 60% 60% 30% 30%;
  transform: rotate(-5deg);
}
.scn-ship-damaged .broken-mast {
  position: absolute; bottom: 60%; left: 35%; width: 6px; height: 80px;
  background: linear-gradient(180deg, #5a3a1a, #2a1a0a);
  transform: rotate(15deg);
  transform-origin: bottom center;
  animation: shp-mast 4s ease-in-out infinite;
}
.scn-ship-damaged .main-yard {
  position: absolute; bottom: 70%; left: 25%; width: 60px; height: 4px;
  background: #3a2a1a;
  transform: rotate(-20deg);
  transform-origin: left center;
  animation: shp-yard 3s ease-in-out infinite;
}
.scn-ship-damaged .rigging {
  position: absolute; bottom: 75%; width: 2px; height: 100px;
  background: #2a1a0a;
  border-radius: 2px;
}
.scn-ship-damaged .rigging-1 { left: 30%; transform: rotate(10deg); animation: shp-rig 2s ease-in-out infinite; }
.scn-ship-damaged .rigging-2 { left: 50%; transform: rotate(-15deg); animation: shp-rig 2.5s ease-in-out infinite reverse; }
.scn-ship-damaged .sun-beam {
  position: absolute; top: 10%; left: 40%; width: 80px; height: 40px;
  background: radial-gradient(ellipse, rgba(255,255,200,0.4), transparent);
  border-radius: 50%;
  animation: shp-sun 10s ease-in-out infinite alternate;
}
.scn-ship-damaged .wave {
  position: absolute; bottom: 20%; width: 200%; height: 30px;
  background: repeating-linear-gradient(90deg, rgba(255,255,255,0.1) 0px, transparent 20px);
  border-radius: 50%;
  animation: shp-wave 5s linear infinite;
}
.scn-ship-damaged .wave-1 { left: -50%; animation-duration: 5s; }
.scn-ship-damaged .wave-2 { left: -30%; bottom: 25%; animation-duration: 7s; animation-delay: 2s; }
@keyframes shp-sea { 0% { background-position: 0 0; } 50% { background-position: 0 5px; } 100% { background-position: 0 10px; } }
@keyframes shp-mast { 0%,100% { transform: rotate(15deg); } 50% { transform: rotate(10deg); } }
@keyframes shp-yard { 0%,100% { transform: rotate(-20deg); } 50% { transform: rotate(-15deg); } }
@keyframes shp-rig { 0% { transform: rotate(10deg) scaleY(1); } 50% { transform: rotate(5deg) scaleY(1.1); } 100% { transform: rotate(10deg) scaleY(1); } }
@keyframes shp-sun { 0% { opacity: 0.6; transform: scale(0.9); } 50% { opacity: 0.8; transform: scale(1); } 100% { opacity: 1; transform: scale(1.1); } }
@keyframes shp-wave { 0% { transform: translateX(0); } 50% { transform: translateX(-25%); } 100% { transform: translateX(-50%); } }

.scn-captain-of-aetna {
  background: linear-gradient(180deg, #87ceeb 0%, #b0e0e6 40%, #f0f8ff 100%),
              radial-gradient(ellipse at 30% 50%, #e0f0ff 0%, transparent 60%);
  position: relative;
  overflow: hidden;
}
.scn-captain-of-aetna .sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #5a9fd4 0%, #1a5f8a 100%);
  animation: ca-sea 6s ease-in-out infinite alternate;
}
.scn-captain-of-aetna .small-ship {
  position: absolute; bottom: 30%; left: 35%; width: 90px; height: 40px;
  background: linear-gradient(180deg, #7a5a3a, #4a2a1a);
  border-radius: 10% 10% 30% 30% / 40% 40% 20% 20%;
  transform: rotate(-2deg);
}
.scn-captain-of-aetna .deck {
  position: absolute; bottom: 35%; left: 38%; width: 70px; height: 8px;
  background: linear-gradient(180deg, #8a6a4a, #5a3a1a);
  border-radius: 2px;
}
.scn-captain-of-aetna .captain-figure {
  position: absolute; bottom: 40%; left: 42%; width: 12px; height: 28px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0f05 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom;
  animation: ca-captain 4s ease-in-out infinite;
}
.scn-captain-of-aetna .steward-figure {
  position: absolute; bottom: 39%; left: 48%; width: 11px; height: 24px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: ca-steward 3s ease-in-out infinite;
}
.scn-captain-of-aetna .flag {
  position: absolute; bottom: 45%; left: 38%; width: 20px; height: 12px;
  background: linear-gradient(180deg, #b0302a, #8a2010);
  border-radius: 2px;
  transform-origin: left center;
  animation: ca-flag 2s ease-in-out infinite alternate;
}
.scn-captain-of-aetna .sun {
  position: absolute; top: 10%; right: 20%; width: 40px; height: 40px;
  background: radial-gradient(circle, #fff0b0, #ffd080 40%, transparent 70%);
  border-radius: 50%;
  animation: ca-sun 12s ease-in-out infinite alternate;
}
.scn-captain-of-aetna .cloud {
  position: absolute; top: 15%; left: 10%; width: 80px; height: 20px;
  background: linear-gradient(180deg, rgba(255,255,255,0.7) 0%, rgba(200,220,255,0.2) 100%);
  border-radius: 50%;
  filter: blur(4px);
  animation: ca-cloud 30s linear infinite;
}
@keyframes ca-sea { 0% { background-position: 0 0; } 50% { background-position: 0 4px; } 100% { background-position: 0 8px; } }
@keyframes ca-captain { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(2deg); } }
@keyframes ca-steward { 0% { transform: translateY(0) rotate(0deg); } 33% { transform: translateY(-1px) rotate(-1deg); } 66% { transform: translateY(1px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes ca-flag { 0% { transform: rotate(-10deg); } 50% { transform: rotate(10deg); } 100% { transform: rotate(-10deg); } }
@keyframes ca-sun { 0% { transform: scale(0.9); opacity: 0.8; } 50% { transform: scale(1); opacity: 0.9; } 100% { transform: scale(1.1); opacity: 1; } }
@keyframes ca-cloud { 0% { transform: translateX(-100px); } 50% { transform: translateX(50vw); } 100% { transform: translateX(120vw); } }

.scn-spithead-cowes {
  background: linear-gradient(180deg, #87ceeb 0%, #b0e0e6 40%, #f0f8ff 60%, #e0f0e8 100%),
              radial-gradient(ellipse at 40% 30%, #d0e8f0 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-spithead-cowes .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #b0d0e0 0%, #d0e8f0 100%);
  animation: shw-sky 15s ease-in-out infinite alternate;
}
.scn-spithead-cowes .harbor-water {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #4a90d9 0%, #3a6f8a 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.2);
}
.scn-spithead-cowes .quay {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #6a5a4a, #4a3a2a);
  border-radius: 5% 5% 0 0;
  box-shadow: 0 -4px 8px rgba(0,0,0,0.3);
}
.scn-spithead-cowes .warship {
  position: absolute; bottom: 30%; left: 20%; width: 140px; height: 60px;
  background: linear-gradient(180deg, #5a4a3a, #3a2a1a);
  border-radius: 10% 10% 30% 30% / 50% 50% 20% 20%;
  transform: rotate(-3deg);
}
.scn-spithead-cowes .small-ship {
  position: absolute; bottom: 28%; right: 15%; width: 80px; height: 35px;
  background: linear-gradient(180deg, #7a6a5a, #5a4a3a);
  border-radius: 10% 10% 30% 30% / 40% 40% 20% 20%;
  transform: rotate(2deg);
  animation: shw-small 6s ease-in-out infinite;
}
.scn-spithead-cowes .fort {
  position: absolute; bottom: 35%; left: 5%; width: 60px; height: 50px;
  background: linear-gradient(180deg, #8a7a6a, #5a4a3a);
  border-radius: 10% 10% 5% 5% / 20% 20% 10% 10%;
  box-shadow: 0 8px 12px rgba(0,0,0,0.4);
}
.scn-spithead-cowes .flagpole {
  position: absolute; bottom: 30%; left: 12%; width: 4px; height: 60px;
  background: linear-gradient(180deg, #6a5a4a, #3a2a1a);
  border-radius: 2px;
}
.scn-spithead-cowes .seagull {
  position: absolute; top: 20%; width: 14px; height: 10px;
  background: radial-gradient(ellipse at 30% 50%, #fff 0%, #ccc 60%, transparent 70%);
  border-radius: 50%;
  animation: shw-gull 12s ease-in-out infinite;
}
.scn-spithead-cowes .gull-1 { left: 20%; animation-delay: 0s; }
.scn-spithead-cowes .gull-2 { left: 60%; animation-delay: 4s; }
@keyframes shw-sky { 0% { opacity: 0.7; } 50% { opacity: 0.85; } 100% { opacity: 1; } }
@keyframes shw-small { 0%,100% { transform: rotate(2deg) translateY(0); } 50% { transform: rotate(0deg) translateY(-2px); } }
@keyframes shw-gull { 0% { transform: translateX(0) translateY(0); } 25% { transform: translateX(20px) translateY(-10px); } 50% { transform: translateX(40px) translateY(0); } 75% { transform: translateX(20px) translateY(-5px); } 100% { transform: translateX(0) translateY(0); } }

.scn-chapter-summaries-part-2 {
  background: linear-gradient(180deg, #f5e6d0 0%, #e0cbb0 50%, #c9b494 100%),
              radial-gradient(ellipse at 20% 30%, #fff5e6 0%, transparent 60%);
}
.scn-chapter-summaries-part-2 .wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #f5e6d0 0%, #e0cbb0 100%);
}
.scn-chapter-summaries-part-2 .window {
  position: absolute; top: 8%; left: 10%; width: 120px; height: 160px;
  background: linear-gradient(180deg, #a0c4e8 0%, #d4e4f0 100%);
  border: 6px solid #8b6b4a; border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(255,255,200,0.3);
  animation: cs2-window 8s ease-in-out infinite alternate;
}
.scn-chapter-summaries-part-2 .desk {
  position: absolute; bottom: 5%; left: 5%; right: 5%; height: 30%;
  background: linear-gradient(180deg, #8b6b4a 0%, #5a3e2a 100%);
  border-radius: 4px 4px 0 0; box-shadow: 0 -4px 8px rgba(0,0,0,0.2);
}
.scn-chapter-summaries-part-2 .map {
  position: absolute; bottom: 25%; left: 15%; width: 40%; height: 18%;
  background: linear-gradient(135deg, #f4e4c1 25%, #d4b88a 50%, #f4e4c1 75%);
  border: 2px solid #8b6b4a; border-radius: 2px;
  transform: rotate(-2deg); opacity: 0.9;
  animation: cs2-map 6s ease-in-out infinite alternate;
}
.scn-chapter-summaries-part-2 .candle {
  position: absolute; bottom: 18%; left: 70%; width: 12px; height: 35px;
  background: linear-gradient(180deg, #f0e0c0 0%, #d0b080 100%);
  border-radius: 2px 2px 0 0;
}
.scn-chapter-summaries-part-2 .flame {
  position: absolute; bottom: calc(18% + 35px); left: 70%; width: 14px; height: 20px;
  background: radial-gradient(circle at 50% 40%, #ffd060 0%, #ff8840 50%, #ff4400 100%);
  border-radius: 50%; opacity: 0.9;
  animation: cs2-flame 0.8s ease-in-out infinite alternate;
  transform-origin: center bottom;
}
.scn-chapter-summaries-part-2 .book {
  position: absolute; bottom: 18%; left: 30%; width: 60px; height: 45px;
  background: linear-gradient(180deg, #7a4a2a 0%, #5a2a0a 100%);
  border: 2px solid #3a1a0a; border-radius: 2px;
  transform: rotate(3deg);
  animation: cs2-book 10s ease-in-out infinite alternate;
}
.scn-chapter-summaries-part-2 .quill {
  position: absolute; bottom: 28%; left: 50%; width: 3px; height: 50px;
  background: linear-gradient(180deg, #f0e0c0 0%, #d0b080 100%);
  transform: rotate(-20deg); transform-origin: bottom center;
  animation: cs2-quill 2s ease-in-out infinite alternate;
}
@keyframes cs2-window { 0% { opacity: 0.8; transform: scale(1); } 50% { opacity: 1; transform: scale(1.02); } 100% { opacity: 0.9; transform: scale(0.98); } }
@keyframes cs2-map { 0% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(-1deg) translateY(-2px); } 100% { transform: rotate(-3deg) translateY(0); } }
@keyframes cs2-flame { 0% { transform: scaleY(1) rotate(-2deg); } 50% { transform: scaleY(1.1) rotate(2deg); } 100% { transform: scaleY(0.9) rotate(-1deg); } }
@keyframes cs2-book { 0% { transform: rotate(3deg) translateY(0); } 50% { transform: rotate(2deg) translateY(-1px); } 100% { transform: rotate(4deg) translateY(0); } }
@keyframes cs2-quill { 0% { transform: rotate(-20deg) translateY(0); } 50% { transform: rotate(-18deg) translateY(-2px); } 100% { transform: rotate(-22deg) translateY(0); } }

.scn-chapter-summaries-part-3 {
  background: linear-gradient(180deg, #e8dcc0 0%, #cbb28a 50%, #a68b64 100%),
              radial-gradient(ellipse at 30% 50%, #fff8ed 0%, transparent 50%);
}
.scn-chapter-summaries-part-3 .bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #e8dcc0 0%, #cbb28a 100%);
}
.scn-chapter-summaries-part-3 .window.wide {
  position: absolute; top: 10%; left: 5%; width: 45%; height: 60%;
  background: linear-gradient(180deg, #a0c4e8 0%, #d4e4f0 100%);
  border: 8px solid #8b6b4a; border-radius: 6px;
  box-shadow: inset 0 0 40px rgba(255,255,200,0.4);
  animation: cs3-window 12s ease-in-out infinite alternate;
}
.scn-chapter-summaries-part-3 .figure.silhouette {
  position: absolute; bottom: 5%; right: 10%; width: 80px; height: 180px;
  background: #1a1a2a;
  border-radius: 40% 40% 30% 30% / 50% 50% 20% 20%;
  transform-origin: bottom center;
  animation: cs3-figure 6s ease-in-out infinite alternate;
}
.scn-chapter-summaries-part-3 .drum {
  position: absolute; bottom: 5%; left: 25%; width: 50px; height: 40px;
  background: linear-gradient(180deg, #a0522a 0%, #6a3010 100%);
  border-radius: 5px 5px 0 0;
  box-shadow: inset 0 -4px 8px rgba(0,0,0,0.3);
  animation: cs3-drum 4s ease-in-out infinite alternate;
}
.scn-chapter-summaries-part-3 .spear {
  position: absolute; bottom: 10%; left: 40%; width: 4px; height: 120px;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a1a0a 100%);
  transform: rotate(10deg); transform-origin: bottom center;
  animation: cs3-spear 3s ease-in-out infinite alternate;
}
.scn-chapter-summaries-part-3 .vessel {
  position: absolute; bottom: 5%; left: 55%; width: 35px; height: 50px;
  background: linear-gradient(180deg, #b8833a 0%, #8a5a2a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%;
  animation: cs3-vessel 8s ease-in-out infinite alternate;
}
@keyframes cs3-window { 0% { opacity: 0.7; box-shadow: inset 0 0 30px rgba(255,255,200,0.3); } 50% { opacity: 1; box-shadow: inset 0 0 50px rgba(255,255,200,0.5); } 100% { opacity: 0.8; box-shadow: inset 0 0 35px rgba(255,255,200,0.4); } }
@keyframes cs3-figure { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes cs3-drum { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-1px) scale(1.02); } 100% { transform: translateY(0) scale(0.98); } }
@keyframes cs3-spear { 0% { transform: rotate(10deg) translateY(0); } 50% { transform: rotate(8deg) translateY(-2px); } 100% { transform: rotate(12deg) translateY(0); } }
@keyframes cs3-vessel { 0% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-1deg); } }

.scn-opening-modesty {
  background: linear-gradient(180deg, #f0e0c8 0%, #d4c0a0 50%, #b8a080 100%),
              radial-gradient(ellipse at 50% 30%, #fff8e8 0%, transparent 70%);
}
.scn-opening-modesty .wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #f0e0c8 0%, #d4c0a0 100%);
}
.scn-opening-modesty .desk {
  position: absolute; bottom: 5%; left: 5%; right: 5%; height: 25%;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%);
  border-radius: 4px 4px 0 0; box-shadow: 0 -4px 8px rgba(0,0,0,0.3);
}
.scn-opening-modesty .paper.stacked {
  position: absolute; bottom: 22%; left: 30%; width: 100px; height: 50px;
  background: linear-gradient(180deg, #fff8e0 0%, #e8d8b0 100%);
  border: 1px solid #c0a880; border-radius: 2px;
  transform: rotate(-2deg);
  animation: opm-paper 8s ease-in-out infinite alternate;
}
.scn-opening-modesty .inkwell {
  position: absolute; bottom: 20%; left: 20%; width: 20px; height: 15px;
  background: #2a1a0a; border-radius: 50% 50% 0 0;
  box-shadow: 0 2px 4px rgba(0,0,0,0.4);
}
.scn-opening-modesty .hand {
  position: absolute; bottom: 25%; left: 45%; width: 15px; height: 40px;
  background: #1a1a2a;
  border-radius: 40% 40% 20% 20% / 50% 50% 20% 20%;
  transform: rotate(20deg); transform-origin: bottom center;
  animation: opm-hand 2s ease-in-out infinite alternate;
}
.scn-opening-modesty .candle {
  position: absolute; bottom: 15%; right: 25%; width: 12px; height: 30px;
  background: linear-gradient(180deg, #f0e0c0 0%, #d0b080 100%);
  border-radius: 2px 2px 0 0;
}
.scn-opening-modesty .flame {
  position: absolute; bottom: calc(15% + 30px); right: 25%; width: 14px; height: 18px;
  background: radial-gradient(circle at 50% 40%, #ffd060 0%, #ff8840 50%, #ff4400 100%);
  border-radius: 50%; opacity: 0.9;
  animation: opm-flame 0.8s ease-in-out infinite alternate;
  transform-origin: center bottom;
}
.scn-opening-modesty .glow {
  position: absolute; bottom: 20%; left: 25%; width: 150px; height: 100px;
  background: radial-gradient(ellipse at 50% 50%, rgba(255,240,180,0.4) 0%, transparent 70%);
  animation: opm-glow 4s ease-in-out infinite alternate;
}
@keyframes opm-paper { 0% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(-1deg) translateY(-2px); } 100% { transform: rotate(-3deg) translateY(0); } }
@keyframes opm-hand { 0% { transform: rotate(20deg) translateX(0); } 50% { transform: rotate(22deg) translateX(3px); } 100% { transform: rotate(18deg) translateX(0); } }
@keyframes opm-glow { 0% { opacity: 0.3; } 50% { opacity: 0.6; } 100% { opacity: 0.4; } }
@keyframes opm-flame { 0% { transform: scaleY(1) rotate(-2deg); } 50% { transform: scaleY(1.1) rotate(2deg); } 100% { transform: scaleY(0.9) rotate(-1deg); } }

.scn-memoirs-worth-reading {
  background: linear-gradient(180deg, #d4c4a8 0%, #b8a488 50%, #9a8468 100%),
              radial-gradient(ellipse at 50% 30%, #f0e0c8 0%, transparent 60%);
}
.scn-memoirs-worth-reading .bg {
  position: absolute; inset: 0;
  background: linear-gradient(140deg, #cbb28a 0%, #a68b64 100%);
}
.scn-memoirs-worth-reading .bookshelf {
  position: absolute; top: 5%; left: 5%; right: 5%; height: 55%;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 4px;
  box-shadow: inset 0 20px 0 rgba(139,107,74,0.3), inset 0 40px 0 rgba(139,107,74,0.2), inset 0 60px 0 rgba(139,107,74,0.1);
}
.scn-memoirs-worth-reading .book.glow {
  position: absolute; top: 20%; left: 40%; width: 50px; height: 70px;
  background: linear-gradient(180deg, #c8483e 0%, #a03028 100%);
  border: 2px solid #801a10; border-radius: 4px;
  box-shadow: 0 0 30px 10px rgba(200,72,62,0.6);
  animation: mwr-glow 3s ease-in-out infinite alternate;
}
.scn-memoirs-worth-reading .book.spine {
  position: absolute; top: 35%; left: 25%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #3a7a5a 0%, #2a5a3a 100%);
  border: 2px solid #1a3a2a; border-radius: 2px;
  transform: rotate(-5deg);
  animation: mwr-spine 6s ease-in-out infinite alternate;
}
.scn-memoirs-worth-reading .figure.reading {
  position: absolute; bottom: 5%; right: 10%; width: 60px; height: 150px;
  background: #1a1a2a;
  border-radius: 40% 40% 30% 30% / 60% 60% 20% 20%;
  transform-origin: bottom center;
  animation: mwr-figure 5s ease-in-out infinite alternate;
}
.scn-memoirs-worth-reading .lamplight {
  position: absolute; bottom: 15%; left: 30%; width: 150px; height: 120px;
  background: radial-gradient(ellipse at 50% 0%, rgba(255,220,150,0.5) 0%, transparent 70%);
  animation: mwr-lamplight 4s ease-in-out infinite alternate;
}
@keyframes mwr-glow { 0% { box-shadow: 0 0 20px 5px rgba(200,72,62,0.4); opacity: 0.9; } 50% { box-shadow: 0 0 40px 15px rgba(200,72,62,0.7); opacity: 1; } 100% { box-shadow: 0 0 25px 8px rgba(200,72,62,0.5); opacity: 0.95; } }
@keyframes mwr-spine { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-4deg) translateY(-2px); } 100% { transform: rotate(-6deg) translateY(0); } }
@keyframes mwr-figure { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes mwr-lamplight { 0% { opacity: 0.5; } 50% { opacity: 0.8; } 100% { opacity: 0.6; } }

/* palm-wine */
.scn-palm-wine { background: linear-gradient(180deg, #ffd580 0%, #87CEEB 50%, #b0e0e6 100%), radial-gradient(ellipse at 50% 0%, #fff3c4 0%, transparent 70%); }
.scn-palm-wine .pw-sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #ffd580 0%, #87CEEB 100%); animation: pw-sky 10s ease-in-out infinite; }
.scn-palm-wine .pw-ground { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #8B7355 0%, #5C4033 100%); border-radius: 40% 0 0 0; }
.scn-palm-wine .pw-tree { position:absolute; bottom:35%; left:10%; width:20%; height:60%; background: linear-gradient(90deg, #4a2c1a 0%, #3a1e0e 100%); border-radius: 10% 10% 30% 30%; transform-origin: bottom center; animation: pw-tree 6s ease-in-out infinite; }
.scn-palm-wine .pw-gourd { position:absolute; bottom:55%; left:30%; width:15%; height:25%; background: radial-gradient(ellipse at 40% 40%, #8B7355, #5C4033); border-radius: 50%; box-shadow: 0 5px 15px rgba(0,0,0,.3); animation: pw-gourd 4s ease-in-out infinite; }
.scn-palm-wine .pw-drip { position:absolute; bottom:48%; left:33%; width:2%; height:2%; background: radial-gradient(circle, #fff, #ffd700); border-radius: 50%; animation: pw-drip 1.5s ease-in infinite; }
.scn-palm-wine .pw-leaf { position:absolute; top:15%; left:25%; width:8%; height:12%; background: radial-gradient(ellipse at 50% 50%, #4a8c2a, #2e6b1a); border-radius: 50% 50% 50% 50%; transform-origin: bottom left; animation: pw-leaf 5s ease-in-out infinite alternate; }
.scn-palm-wine .pw-glare { position:absolute; top:20%; left:50%; width:10%; height:10%; background: radial-gradient(circle, rgba(255,255,200,.6) 0%, transparent 100%); border-radius: 50%; animation: pw-glare 3s ease-in-out infinite alternate; }
@keyframes pw-sky { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.9; } }
@keyframes pw-tree { 0% { transform: rotate(0deg); } 50% { transform: rotate(1.5deg); } 100% { transform: rotate(-0.5deg); } }
@keyframes pw-gourd { 0% { transform: rotate(-2deg) translateX(0); } 50% { transform: rotate(3deg) translateX(2px); } 100% { transform: rotate(-2deg) translateX(0); } }
@keyframes pw-drip { 0% { transform: translateY(0); opacity:1; } 50% { transform: translateY(30px); opacity:.7; } 100% { transform: translateY(80px); opacity:0; } }
@keyframes pw-leaf { 0% { transform: rotate(0deg) scale(1); } 50% { transform: rotate(10deg) scale(1.1); } 100% { transform: rotate(-5deg) scale(.95); } }
@keyframes pw-glare { 0% { transform: scale(1); opacity:.4; } 50% { transform: scale(1.3); opacity:.7; } 100% { transform: scale(.9); opacity:.4; } }

/* nuts-oil-perfumes */
.scn-nuts-oil-perfumes { background: linear-gradient(180deg, #f5deb3 0%, #deb887 50%, #d2b48c 100%), radial-gradient(ellipse at 50% 80%, #fff8dc 0%, transparent 70%); }
.scn-nuts-oil-perfumes .no-wall { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #deb887, #c4a882); }
.scn-nuts-oil-perfumes .no-window { position:absolute; top:10%; left:50%; width:30%; height:40%; background: radial-gradient(ellipse at 50% 50%, #fff, #87CEEB); border: 4px solid #8B4513; border-radius: 5%; box-shadow: inset 0 0 20px rgba(255,255,255,.3); animation: no-light 8s ease-in-out infinite; }
.scn-nuts-oil-perfumes .no-table { position:absolute; bottom:20%; left:10%; right:10%; height:10%; background: linear-gradient(180deg, #8B4513, #5C4033); border-radius: 2% 2% 0 0; }
.scn-nuts-oil-perfumes .no-wood { position:absolute; bottom:30%; left:20%; width:5%; height:15%; background: linear-gradient(180deg, #4a2c1a, #3a1e0e); border-radius: 20% 20% 40% 40%; transform-origin: bottom center; animation: no-wood 6s ease-in-out infinite; }
.scn-nuts-oil-perfumes .no-hearth { position:absolute; bottom:20%; left:70%; width:15%; height:10%; background: linear-gradient(180deg, #8B0000, #5C0000); border-radius: 50% 50% 0 0; animation: no-fire 3s ease-in-out infinite; }
.scn-nuts-oil-perfumes .no-smoke { position:absolute; bottom:30%; left:72%; width:6%; height:12%; background: radial-gradient(ellipse at 50% 50%, rgba(200,200,200,.4), transparent); border-radius: 50%; animation: no-smoke 10s linear infinite; }
.scn-nuts-oil-perfumes .no-jar { position:absolute; bottom:25%; left:40%; width:8%; height:12%; background: radial-gradient(ellipse at 50% 50%, #f0c040, #b08020); border-radius: 20% 20% 10% 10%; box-shadow: 0 2px 5px rgba(0,0,0,.2); animation: no-pulse 5s ease-in-out infinite; }
@keyframes no-light { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.85; } }
@keyframes no-wood { 0% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-2deg); } }
@keyframes no-fire { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.1); } 100% { transform: scaleY(1); } }
@keyframes no-smoke { 0% { transform: translateY(0) scale(1); opacity:.5; } 50% { transform: translateY(-20px) scale(1.1); opacity:.3; } 100% { transform: translateY(-40px) scale(1.5); opacity:0; } }
@keyframes no-pulse { 0% { transform: scale(1); } 50% { transform: scale(1.05); } 100% { transform: scale(1); } }

/* buildings-architecture */
.scn-buildings-architecture { background: linear-gradient(180deg, #87CEEB 0%, #b0e0e6 50%, #f0f8ff 100%), radial-gradient(ellipse at 50% 0%, #fff8dc 0%, transparent 70%); }
.scn-buildings-architecture .ba-sky { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #87CEEB, #b0e0e6); animation: ba-sky 15s ease-in-out infinite; }
.scn-buildings-architecture .ba-ground { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #8B7355, #6B4226); border-radius: 0 0 10% 10%; }
.scn-buildings-architecture .ba-wall { position:absolute; bottom:30%; left:5%; right:5%; height:30%; background: linear-gradient(180deg, #c8553d, #a0461a); border-radius: 0 0 5% 5%; box-shadow: inset 0 10px 20px rgba(0,0,0,.3); animation: ba-wall 12s ease-in-out infinite; }
.scn-buildings-architecture .ba-moat { position:absolute; bottom:30%; left:0; right:0; height:10%; background: linear-gradient(180deg, #4682B4, #1E90FF); border-radius: 50% 50% 0 0; animation: ba-moat 20s linear infinite; }
.scn-buildings-architecture .ba-house { position:absolute; bottom:40%; left:40%; width:20%; height:25%; background: linear-gradient(180deg, #deb887, #c4a882); border-radius: 10% 10% 0 0; box-shadow: 0 -5px 10px rgba(0,0,0,.2); animation: ba-house 8s ease-in-out infinite; }
.scn-buildings-architecture .ba-fence { position:absolute; bottom:30%; left:10%; right:10%; height:5%; background: linear-gradient(90deg, #8B4513, #5C4033); border-radius: 20px; animation: ba-fence 18s ease-in-out infinite; }
.scn-buildings-architecture .ba-tree { position:absolute; bottom:35%; left:15%; width:10%; height:35%; background: linear-gradient(180deg, #2e6b1a, #1a4a0e); border-radius: 40% 40% 10% 10%; transform-origin: bottom center; animation: ba-tree 6s ease-in-out infinite; }
@keyframes ba-sky { 0% { opacity:.9; } 50% { opacity:1; } 100% { opacity:.92; } }
@keyframes ba-wall { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes ba-moat { 0% { transform: translateX(0); } 50% { transform: translateX(5px); } 100% { transform: translateX(0); } }
@keyframes ba-house { 0% { transform: scale(1); } 50% { transform: scale(1.02); } 100% { transform: scale(1); } }
@keyframes ba-fence { 0% { transform: rotate(0deg); } 50% { transform: rotate(1deg); } 100% { transform: rotate(0deg); } }
@keyframes ba-tree { 0% { transform: rotate(0deg) scale(1); } 50% { transform: rotate(2deg) scale(1.02); } 100% { transform: rotate(-1deg) scale(.98); } }

/* master-houses */
.scn-master-houses { background: linear-gradient(180deg, #2c2c2c 0%, #1a1a1a 50%, #0d0d0d 100%), radial-gradient(ellipse at 50% 50%, #4a4a4a 0%, transparent 70%); }
.scn-master-houses .mh-back { position:absolute; inset:0; background: linear-gradient(180deg, #3a3a3a, #2a2a2a); }
.scn-master-houses .mh-floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #4a3a2a, #3a2a1a); border-radius: 0 0 5% 5%; }
.scn-master-houses .mh-wall { position:absolute; top:0; left:10%; right:10%; height:70%; background: linear-gradient(180deg, #5a4a3a, #4a3a2a); border-radius: 0 0 5% 5%; box-shadow: inset 0 0 30px rgba(0,0,0,.5); }
.scn-master-houses .mh-window { position:absolute; top:20%; left:35%; width:30%; height:35%; background: radial-gradient(ellipse at 50% 50%, #ffe4b5, #8B7355); border: 3px solid #3a2a1a; box-shadow: 0 0 20px rgba(255,228,181,.3); animation: mh-window 10s ease-in-out infinite; }
.scn-master-houses .mh-lamp { position:absolute; top:40%; left:50%; width:5%; height:8%; background: radial-gradient(circle, #ffd700, #ff8c00); border-radius: 50%; box-shadow: 0 0 30px 10px #ffa500; animation: mh-lamp 3s ease-in-out infinite; }
.scn-master-houses .mh-figure { position:absolute; bottom:30%; left:20%; width:10%; height:25%; background: linear-gradient(180deg, #1a1a2a, #0a0a1a); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mh-figure 6s ease-in-out infinite; }
.scn-master-houses .mh-shadow { position:absolute; bottom:20%; left:15%; right:30%; height:10%; background: radial-gradient(ellipse, rgba(0,0,0,.5), transparent); animation: mh-shadow 8s ease-in-out infinite; }
@keyframes mh-window { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.85; } }
@keyframes mh-lamp { 0% { transform: scale(1); } 50% { transform: scale(1.1) translateY(-2px); } 100% { transform: scale(1); } }
@keyframes mh-figure { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes mh-shadow { 0% { transform: translateX(0); opacity:.5; } 50% { transform: translateX(5px); opacity:.6; } 100% { transform: translateX(0); opacity:.5; } }

.scn-conclusion-start { background: linear-gradient(180deg, #2a2218 0%, #1a1410 100%), radial-gradient(ellipse at 30% 50%, #3a2a1a 0%, transparent 70%); }
.scn-conclusion-start .wall { position:absolute; inset:0; background: linear-gradient(180deg, #2a2218 0%, #1a1410 100%); animation: cs1-wall 12s ease-in-out infinite; }
.scn-conclusion-start .desk { position:absolute; bottom:0; left:10%; right:10%; height:25%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:4px 4px 0 0; box-shadow: 0 -4px 8px rgba(0,0,0,0.5); }
.scn-conclusion-start .papers { position:absolute; bottom:20%; left:20%; width:30%; height:8%; background: linear-gradient(180deg, #d4c0a0 0%, #b8a080 100%); border-radius:2px; transform: rotate(-2deg); box-shadow: 0 2px 4px rgba(0,0,0,0.3); animation: cs1-papers 8s ease-in-out infinite; }
.scn-conclusion-start .candle { position:absolute; bottom:17%; left:55%; width:8px; height:30px; background: linear-gradient(180deg, #c8a880 0%, #a08060 100%); border-radius:2px; box-shadow: 0 4px 6px rgba(0,0,0,0.4); }
.scn-conclusion-start .flame { position:absolute; bottom:40%; left:55%; width:6px; height:12px; transform:translate(1px, -2px); background: radial-gradient(circle, #ffb060 0%, #ff8020 70%); border-radius:50% 50% 50% 50% / 60% 60% 40% 40%; box-shadow: 0 0 12px 4px #ff8020; animation: cs1-flame 2s ease-in-out infinite; }
.scn-conclusion-start .window { position:absolute; top:10%; right:10%; width:40%; height:40%; background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 100%); border: 2px solid #2a1a1a; border-radius:4px; box-shadow: inset 0 0 20px rgba(0,0,0,0.8), 0 0 10px rgba(255,200,100,0.2); }
.scn-conclusion-start .curtain { position:absolute; top:0; right:15%; width:20%; height:50%; background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%); border-radius:0 0 20% 20%; transform: skewX(-5deg); animation: cs1-curtain 15s ease-in-out infinite; }
@keyframes cs1-wall { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes cs1-papers { 0%,100% { transform: rotate(-2deg) translateY(0) } 50% { transform: rotate(-1deg) translateY(-2px) } }
@keyframes cs1-flame { 0% { transform: translate(1px, -2px) scale(1,1) } 50% { transform: translate(1px, -4px) scale(1,1.3) } 100% { transform: translate(1px, -2px) scale(1,1) } }
@keyframes cs1-curtain { 0% { transform: skewX(-5deg) translateX(0) } 50% { transform: skewX(-3deg) translateX(2px) } 100% { transform: skewX(-5deg) translateX(0) } }

.scn-life-uniform { background: linear-gradient(180deg, #1e2228 0%, #121418 100%), radial-gradient(ellipse at 50% 80%, #2a2e36 0%, transparent 70%); }
.scn-life-uniform .wallpaper { position:absolute; inset:0; background: repeating-linear-gradient(0deg, #2a2e36 0px, #2a2e36 2px, #1e2228 2px, #1e2228 4px); opacity:0.3; animation: lif-wallpaper 30s linear infinite; }
.scn-life-uniform .clock { position:absolute; top:15%; left:50%; transform:translateX(-50%); width:30px; height:30px; border-radius:50%; background: radial-gradient(circle, #a08060 0%, #302010 100%); border:2px solid #4a3020; box-shadow: 0 2px 4px rgba(0,0,0,0.5); }
.scn-life-uniform .clock-hand { position:absolute; top:calc(15% + 3px); left:calc(50% + 11px); width:2px; height:12px; background:#1a1a1a; transform-origin: 50% 100%; border-radius:1px; animation: lif-clock-hand 60s linear infinite; }
.scn-life-uniform .window-bg { position:absolute; top:10%; left:10%; width:30%; height:40%; background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 100%); box-shadow: inset 0 0 10px rgba(0,0,0,0.8); animation: lif-window 20s ease-in-out infinite; }
.scn-life-uniform .window-bars { position:absolute; top:10%; left:10%; width:30%; height:40%; border-left:2px solid #2a2a2a; border-right:2px solid #2a2a2a; box-shadow: inset 0 0 0 1px #2a2a2a; }
.scn-life-uniform .chair { position:absolute; bottom:20%; left:20%; width:30px; height:40px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius:20% 20% 10% 10%; box-shadow: 0 2px 4px rgba(0,0,0,0.6); }
.scn-life-uniform .figure { position:absolute; bottom:30%; left:22%; width:20px; 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: lif-figure 10s ease-in-out infinite; }
.scn-life-uniform .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #2a2020 0%, #1a1010 100%); }
.scn-life-uniform .desk { position:absolute; bottom:15%; left:15%; right:15%; height:10%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:2px; }
@keyframes lif-wallpaper { 0% { background-position: 0 0; } 50% { background-position: 0 2px; } 100% { background-position: 0 4px; } }
@keyframes lif-clock-hand { 0% { transform: rotate(0deg); } 50% { transform: rotate(180deg); } 100% { transform: rotate(360deg); } }
@keyframes lif-figure { 0%,100% { transform: translateY(0) scale(1,1); } 50% { transform: translateY(-2px) scale(1,1.02); } }
@keyframes lif-window { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }

.scn-white-negro-woman { background: linear-gradient(180deg, #1e1818 0%, #0e0e0e 100%), radial-gradient(ellipse at 50% 50%, #2a1a1a 0%, transparent 70%); }
.scn-white-negro-woman .wall { position:absolute; inset:0; background: linear-gradient(180deg, #1e1818 0%, #0e0e0e 100%); animation: wno-wall 15s ease-in-out infinite; }
.scn-white-negro-woman .figure-left { position:absolute; bottom:20%; left:20%; width:25px; height:70px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: wno-fig-left 12s ease-in-out infinite; }
.scn-white-negro-woman .figure-right { position:absolute; bottom:20%; right:20%; width:25px; height:70px; background: linear-gradient(180deg, #c8b8a0 0%, #a89078 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: wno-fig-right 12s ease-in-out infinite; animation-delay: -4s; }
.scn-white-negro-woman .table { position:absolute; bottom:25%; left:30%; right:30%; height:8%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:2px; box-shadow: 0 -2px 4px rgba(0,0,0,0.5); }
.scn-white-negro-woman .candle { position:absolute; bottom:28%; left:50%; width:6px; height:20px; transform:translateX(-50%); background: linear-gradient(180deg, #c8a880 0%, #a08060 100%); border-radius:1px; box-shadow: 0 2px 4px rgba(0,0,0,0.4); }
.scn-white-negro-woman .flame { position:absolute; bottom:42%; left:50%; width:5px; height:10px; transform:translateX(-50%); background: radial-gradient(circle, #ffe0a0 0%, #ffa050 70%); border-radius:50% 50% 50% 50% / 60% 60% 40% 40%; box-shadow: 0 0 10px 3px #ffa050; animation: wno-flame 2.5s ease-in-out infinite; }
.scn-white-negro-woman .window { position:absolute; top:10%; right:10%; width:35%; height:45%; background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 100%); border:1px solid #2a1a1a; box-shadow: inset 0 0 15px rgba(0,0,0,0.8); animation: wno-window 20s ease-in-out infinite; }
@keyframes wno-wall { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes wno-fig-left { 0%,100% { transform: translateX(0) rotate(0) } 50% { transform: translateX(2px) rotate(1deg) } }
@keyframes wno-fig-right { 0%,100% { transform: translateX(0) rotate(0) } 50% { transform: translateX(-2px) rotate(-1deg) } }
@keyframes wno-flame { 0% { transform: translateX(-50%) scale(1,1) } 50% { transform: translateX(-48%) scale(1,1.3) } 100% { transform: translateX(-50%) scale(1,1) } }
@keyframes wno-window { 0% { opacity:0.6 } 50% { opacity:1 } 100% { opacity:0.7 } }

.scn-governor-macnamara-religion { background: linear-gradient(180deg, #1c1810 0%, #100c08 100%), radial-gradient(ellipse at 50% 60%, #2a2010 0%, transparent 70%); }
.scn-governor-macnamara-religion .floor { position:absolute; bottom:0; left:0; right:0; height:15%; background: linear-gradient(180deg, #2a2010 0%, #1a1008 100%); }
.scn-governor-macnamara-religion .wall { position:absolute; inset:0; background: linear-gradient(180deg, #1c1810 0%, #100c08 100%); animation: gov-wall 18s ease-in-out infinite; }
.scn-governor-macnamara-religion .kneeling-figure { position:absolute; bottom:15%; left:25%; width:20px; height:40px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; transform: rotate(15deg) scale(0.8); animation: gov-kneel 8s ease-in-out infinite; }
.scn-governor-macnamara-religion .standing-figure { position:absolute; bottom:15%; right:30%; width:22px; height:70px; background: linear-gradient(180deg, #2a1a1a 0%, #0a0000 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: gov-stand 10s ease-in-out infinite; }
.scn-governor-macnamara-religion .bible { position:absolute; bottom:25%; left:42%; width:18px; height:24px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius:1px; box-shadow: 0 2px 4px rgba(0,0,0,0.5); transform: rotate(-5deg); animation: gov-bible 12s ease-in-out infinite; }
.scn-governor-macnamara-religion .candle { position:absolute; bottom:22%; left:50%; width:6px; height:18px; transform:translateX(-50%); background: linear-gradient(180deg, #c8a880 0%, #a08060 100%); border-radius:1px; box-shadow: 0 2px 4px rgba(0,0,0,0.4); }
.scn-governor-macnamara-religion .flame { position:absolute; bottom:35%; left:50%; width:5px; height:8px; transform:translateX(-50%); background: radial-gradient(circle, #ffe0a0 0%, #ffa050 70%); border-radius:50% 50% 50% 50% / 60% 60% 40% 40%; box-shadow: 0 0 8px 3px #ffa050; animation: gov-flame 2s ease-in-out infinite; }
.scn-governor-macnamara-religion .cross { position:absolute; bottom:30%; left:60%; width:4px; height:30px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); transform-origin: top center; animation: gov-cross 20s ease-in-out infinite; }
.scn-governor-macnamara-religion .cross-bar { position:absolute; bottom:45%; left:58%; width:16px; height:3px; background: #4a3a2a; transform-origin: left center; transform: translateY(-50%); animation: gov-cross 20s ease-in-out infinite; }
@keyframes gov-wall { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes gov-kneel { 0%,100% { transform: rotate(15deg) scale(0.8) } 50% { transform: rotate(10deg) scale(0.85) } }
@keyframes gov-stand { 0%,100% { transform: rotate(0) } 50% { transform: rotate(2deg) } }
@keyframes gov-bible { 0%,100% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(-3deg) translateY(-1px) } }
@keyframes gov-flame { 0% { transform: translateX(-50%) scale(1,1) } 50% { transform: translateX(-48%) scale(1,1.2) } 100% { transform: translateX(-50%) scale(1,1) } }
@keyframes gov-cross { 0% { transform: rotate(0) } 50% { transform: rotate(2deg) } 100% { transform: rotate(0) } }

.scn-agriculture-and-industry {
  background: linear-gradient(180deg, #a2d5f2 0%, #f5e6ca 50%, #d4a373 100%),
              radial-gradient(ellipse at 50% 20%, rgba(255,255,200,0.4) 0%, transparent 50%);
}
.scn-agriculture-and-industry .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, rgba(255,255,255,0.2) 0%, transparent 100%);
  animation: agr-sky 10s ease-in-out infinite alternate;
}
.scn-agriculture-and-industry .sun {
  position: absolute; top: 8%; left: 50%; width: 60px; height: 60px;
  border-radius: 50%;
  background: radial-gradient(circle, #ffeda4 0%, #f6c700 50%, transparent 70%);
  box-shadow: 0 0 40px 10px #f6c700;
  animation: agr-sun 6s ease-in-out infinite alternate;
}
.scn-agriculture-and-industry .field-back {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #7b9e5a 0%, #4c7a3a 100%);
  border-radius: 40% 40% 0 0;
  animation: agr-field-back 20s ease-in-out infinite alternate;
}
.scn-agriculture-and-industry .field-front {
  position: absolute; bottom: 8%; left: 0; right: 0; height: 18%;
  background: linear-gradient(180deg, #8cb36b 0%, #5e8c42 100%);
  animation: agr-field-front 15s ease-in-out infinite alternate;
}
.scn-agriculture-and-industry .figure {
  position: absolute; bottom: 18%; left: 30%; width: 14px; height: 30px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: agr-figure 8s ease-in-out infinite;
}
.scn-agriculture-and-industry .tree {
  position: absolute; bottom: 18%; left: 60%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #5a3a1a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 20% 20%;
  animation: agr-tree 12s ease-in-out infinite alternate;
}
.scn-agriculture-and-industry .cloud {
  position: absolute; top: 12%; left: 20%; width: 80px; height: 20px;
  background: rgba(255,255,255,0.6);
  border-radius: 50%;
  filter: blur(8px);
  animation: agr-cloud 40s linear infinite;
}
@keyframes agr-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes agr-sun { 0% { transform: scale(0.95); box-shadow: 0 0 30px 5px #f6c700; } 50% { transform: scale(1.05); box-shadow: 0 0 50px 15px #f6c700; } 100% { transform: scale(0.98); box-shadow: 0 0 35px 8px #f6c700; } }
@keyframes agr-field-back { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(0); } }
@keyframes agr-field-front { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes agr-figure { 0% { transform: translateX(0) rotate(-1deg); } 25% { transform: translateX(5px) rotate(2deg); } 50% { transform: translateX(8px) rotate(-1deg); } 75% { transform: translateX(12px) rotate(1deg); } 100% { transform: translateX(15px) rotate(0); } }
@keyframes agr-tree { 0% { transform: rotate(-1deg) scale(1); } 50% { transform: rotate(2deg) scale(1.02); } 100% { transform: rotate(-1deg) scale(1); } }
@keyframes agr-cloud { 0% { transform: translateX(-100px); } 100% { transform: translateX(120vw); } }

.scn-slave-preference {
  background: linear-gradient(180deg, #faf3e0 0%, #e8dcc4 50%, #c9b99a 100%),
              radial-gradient(ellipse at 30% 60%, #fff7e6 0%, transparent 70%);
}
.scn-slave-preference .wall {
  position: absolute; top: 0; left: 0; right: 0; bottom: 30%;
  background: linear-gradient(180deg, #f5efe6 0%, #e1d4c0 100%);
  animation: slv-wall 15s ease-in-out infinite alternate;
}
.scn-slave-preference .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #b3a287 0%, #8c7a68 100%);
  animation: slv-floor 12s ease-in-out infinite alternate;
}
.scn-slave-preference .window {
  position: absolute; top: 20%; left: 10%; width: 80px; height: 100px;
  background: radial-gradient(circle, #feebd6 0%, #c7e2f5 80%);
  border: 4px solid #b59a7a;
  box-shadow: 0 0 30px 10px rgba(255,235,200,0.4);
  animation: slv-window 6s ease-in-out infinite alternate;
}
.scn-slave-preference .desk {
  position: absolute; bottom: 30%; left: 25%; width: 120px; height: 20px;
  background: linear-gradient(180deg, #8b5e3c 0%, #5a3d26 100%);
  border-radius: 4px;
  animation: slv-desk 10s ease-in-out infinite;
}
.scn-slave-preference .document {
  position: absolute; bottom: 34%; left: 30%; width: 60px; height: 40px;
  background: linear-gradient(180deg, #fdf5e6 0%, #f5e6d3 100%);
  transform: rotate(-5deg);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
  animation: slv-doc 8s ease-in-out infinite alternate;
}
.scn-slave-preference .figure {
  position: absolute; bottom: 30%; left: 35%; width: 16px; height: 40px;
  background: linear-gradient(180deg, #2a1a0e 0%, #0e0804 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: slv-figure 5s ease-in-out infinite alternate;
}
.scn-slave-preference .lantern {
  position: absolute; bottom: 36%; left: 28%; width: 10px; height: 10px;
  background: radial-gradient(circle, #ffc857 0%, #f39c12 60%, transparent 80%);
  box-shadow: 0 0 20px 6px #f39c12;
  animation: slv-lantern 3s ease-in-out infinite alternate;
}
@keyframes slv-wall { 0% { opacity: 0.95; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes slv-floor { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes slv-window { 0% { opacity: 0.8; box-shadow: 0 0 20px 5px rgba(255,235,200,0.3); } 50% { opacity: 1; box-shadow: 0 0 40px 15px rgba(255,235,200,0.5); } 100% { opacity: 0.9; box-shadow: 0 0 30px 8px rgba(255,235,200,0.4); } }
@keyframes slv-desk { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes slv-doc { 0% { transform: rotate(-5deg); } 50% { transform: rotate(-2deg); } 100% { transform: rotate(-5deg); } }
@keyframes slv-figure { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes slv-lantern { 0% { transform: scale(0.9); box-shadow: 0 0 15px 3px #f39c12; } 50% { transform: scale(1.1); box-shadow: 0 0 25px 8px #f39c12; } 100% { transform: scale(0.95); box-shadow: 0 0 18px 4px #f39c12; } }

.scn-relative-beauty {
  background: linear-gradient(180deg, #f2ece4 0%, #e3d8c8 50%, #ccc0b0 100%),
              radial-gradient(ellipse at 50% 40%, #fff9f0 0%, transparent 60%);
}
.scn-relative-beauty .wall {
  position: absolute; top: 0; left: 0; right: 0; bottom: 25%;
  background: linear-gradient(180deg, #f5f0e8, #e0d5c5);
  animation: rel-wall 14s ease-in-out infinite;
}
.scn-relative-beauty .mirror {
  position: absolute; top: 15%; left: 35%; width: 120px; height: 160px;
  background: linear-gradient(180deg, #e0d8c8 0%, #b8a898 100%);
  border: 6px solid #8a7a6a;
  border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(255,255,255,0.3), 0 0 20px rgba(0,0,0,0.1);
  animation: rel-mirror 8s ease-in-out infinite alternate;
}
.scn-relative-beauty .fig-a {
  position: absolute; bottom: 25%; left: 20%; width: 12px; height: 28px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: rel-fig-a 9s ease-in-out infinite;
}
.scn-relative-beauty .fig-b {
  position: absolute; bottom: 25%; left: 28%; width: 12px; height: 28px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: rel-fig-b 10s ease-in-out infinite;
}
.scn-relative-beauty .fig-c {
  position: absolute; bottom: 25%; left: 36%; width: 12px; height: 28px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: rel-fig-c 11s ease-in-out infinite;
}
.scn-relative-beauty .fig-d {
  position: absolute; bottom: 25%; left: 44%; width: 10px; height: 24px;
  background: linear-gradient(180deg, #b8a898 0%, #8a7a6a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: rel-fig-d 8s ease-in-out infinite;
}
.scn-relative-beauty .rays {
  position: absolute; top: 0; left: 0; right: 0; bottom: 0;
  background: linear-gradient(135deg, rgba(255,255,230,0.15) 0%, transparent 40%, rgba(255,255,230,0.1) 70%, transparent 100%);
  pointer-events: none;
  animation: rel-rays 20s ease-in-out infinite alternate;
}
@keyframes rel-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.95; } }
@keyframes rel-mirror { 0% { box-shadow: inset 0 0 20px rgba(255,255,255,0.2), 0 0 15px rgba(0,0,0,0.1); } 50% { box-shadow: inset 0 0 40px rgba(255,255,255,0.4), 0 0 25px rgba(0,0,0,0.15); } 100% { box-shadow: inset 0 0 25px rgba(255,255,255,0.25), 0 0 18px rgba(0,0,0,0.12); } }
@keyframes rel-fig-a { 0% { transform: translateX(0) translateY(0); } 25% { transform: translateX(3px) translateY(-1px); } 50% { transform: translateX(0) translateY(0); } 75% { transform: translateX(-2px) translateY(-1px); } 100% { transform: translateX(0) translateY(0); } }
@keyframes rel-fig-b { 0% { transform: translateX(0) translateY(0); } 25% { transform: translateX(-2px) translateY(-1px); } 50% { transform: translateX(0) translateY(0); } 75% { transform: translateX(3px) translateY(-1px); } 100% { transform: translateX(0) translateY(0); } }
@keyframes rel-fig-c { 0% { transform: translateX(0) translateY(0); } 25% { transform: translateX(4px) translateY(-1px); } 50% { transform: translateX(2px) translateY(0); } 75% { transform: translateX(0) translateY(-1px); } 100% { transform: translateX(0) translateY(0); } }
@keyframes rel-fig-d { 0% { transform: translateX(0) translateY(0) scale(1); } 50% { transform: translateX(-5px) translateY(-2px) scale(0.95); } 100% { transform: translateX(0) translateY(0) scale(1); } }
@keyframes rel-rays { 0% { opacity: 0.5; } 50% { opacity: 0.8; } 100% { opacity: 0.5; } }

.scn-cheerfulness-and-affability {
  background: linear-gradient(180deg, #fde68a 0%, #f59e0b 40%, #f97316 70%, #b45309 100%),
              radial-gradient(ellipse at 50% 30%, #fffbeb 0%, transparent 60%);
}
.scn-cheerfulness-and-affability .sky {
  position: absolute; top: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(180deg, rgba(255,235,200,0.4) 0%, transparent 100%);
  animation: cheer-sky 14s ease-in-out infinite;
}
.scn-cheerfulness-and-affability .sun {
  position: absolute; top: 15%; left: 50%; width: 70px; height: 70px;
  border-radius: 50%;
  background: radial-gradient(circle, #ffeda4 0%, #f6c700 50%, transparent 70%);
  box-shadow: 0 0 50px 20px #f6c700;
  animation: cheer-sun 10s ease-in-out infinite;
}
.scn-cheerfulness-and-affability .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #a7c957 0%, #6a994e 100%);
  border-radius: 50% 50% 0 0 / 30% 30% 0 0;
  animation: cheer-ground 16s ease-in-out infinite;
}
.scn-cheerfulness-and-affability .figure-left {
  position: absolute; bottom: 35%; left: 30%; width: 18px; 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: cheer-fig-left 4s ease-in-out infinite;
}
.scn-cheerfulness-and-affability .figure-right {
  position: absolute; bottom: 35%; left: 55%; width: 18px; 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: cheer-fig-right 4.2s ease-in-out infinite;
}
.scn-cheerfulness-and-affability .sparkle-a {
  position: absolute; top: 30%; left: 20%; width: 8px; height: 8px;
  background: radial-gradient(circle, #ffd700 0%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 12px 4px #ffd700;
  animation: cheer-sparkle-a 2s ease-in-out infinite;
}
.scn-cheerfulness-and-affability .sparkle-b {
  position: absolute; top: 40%; left: 70%; width: 6px; height: 6px;
  background: radial-gradient(circle, #ffd700 0%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 10px 3px #ffd700;
  animation: cheer-sparkle-b 2.5s ease-in-out infinite;
}
.scn-cheerfulness-and-affability .cloud {
  position: absolute; top: 10%; left: 5%; width: 90px; height: 22px;
  background: rgba(255, 255, 255, 0.5);
  border-radius: 50%;
  filter: blur(10px);
  animation: cheer-cloud 30s linear infinite;
}
@keyframes cheer-sky { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes cheer-sun { 0% { transform: scale(0.95); box-shadow: 0 0 40px 10px #f6c700; } 50% { transform: scale(1.1); box-shadow: 0 0 70px 25px #f6c700; } 100% { transform: scale(1); box-shadow: 0 0 50px 15px #f6c700; } }
@keyframes cheer-ground { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes cheer-fig-left { 0% { transform: translateY(0) rotate(-2deg); } 20% { transform: translateY(-5px) rotate(3deg); } 40% { transform: translateY(-2px) rotate(-1deg); } 60% { transform: translateY(-4px) rotate(4deg); } 80% { transform: translateY(-1px) rotate(-3deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes cheer-fig-right { 0% { transform: translateY(0) rotate(2deg); } 25% { transform: translateY(-6px) rotate(-2deg); } 50% { transform: translateY(-3px) rotate(3deg); } 75% { transform: translateY(-5px) rotate(0deg); } 100% { transform: translateY(0) rotate(1deg); } }
@keyframes cheer-sparkle-a { 0% { transform: scale(0.8); opacity: 0.5; } 50% { transform: scale(1.3); opacity: 1; } 100% { transform: scale(0.8); opacity: 0.5; } }
@keyframes cheer-sparkle-b { 0% { transform: scale(0.9); opacity: 0.6; } 50% { transform: scale(1.2); opacity: 1; } 100% { transform: scale(0.9); opacity: 0.6; } }
@keyframes cheer-cloud { 0% { transform: translateX(-100px); } 100% { transform: translateX(120vw); } }

/* simple-dress */
.scn-simple-dress {
  background:
    linear-gradient(180deg, #e6d7b4 0%, #f2e8d0 40%, #d9c7a1 100%),
    radial-gradient(ellipse at 50% 0%, #fdf6e3 0%, transparent 70%);
}
.scn-simple-dress .sky {
  position: absolute;
  inset: 0 0 40% 0;
  background: linear-gradient(180deg, #86b5d8 0%, #e6d7b4 80%);
  animation: sd-sky 20s ease-in-out infinite alternate;
}
.scn-simple-dress .sun {
  position: absolute;
  top: 12%;
  left: 70%;
  width: 50px;
  height: 50px;
  background: radial-gradient(circle, #fff8dc 0%, #f0d060 50%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 12px rgba(240,208,96,0.5), 0 0 80px 24px rgba(240,208,96,0.25);
  animation: sd-sun 8s ease-in-out infinite alternate;
}
.scn-simple-dress .hills {
  position: absolute;
  bottom: 30%;
  left: 0;
  right: 0;
  height: 25%;
  background: linear-gradient(180deg, #7a8b5a 0%, #4a5a3a 100%);
  border-radius: 50% 60% 0 0 / 70% 60% 0 0;
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.3);
  animation: sd-hills 15s ease-in-out infinite alternate;
}
.scn-simple-dress .tree {
  position: absolute;
  bottom: 32%;
  left: 10%;
  width: 30px;
  height: 60px;
  background: linear-gradient(180deg, #2f4030 0%, #0e1e0e 100%);
  border-radius: 60% 40% 20% 20% / 80% 70% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  transform-origin: bottom center;
  animation: sd-tree 18s ease-in-out infinite alternate;
}
.scn-simple-dress .figure {
  position: absolute;
  bottom: 24%;
  left: 45%;
  width: 26px;
  height: 52px;
  background: linear-gradient(180deg, #3a5a8a 0%, #1a2a5a 100%);
  border-radius: 40% 45% 20% 25% / 60% 55% 20% 25%;
  transform: translateX(-50%);
  animation: sd-figure 8s ease-in-out infinite alternate;
}
.scn-simple-dress .shadow {
  position: absolute;
  bottom: 20%;
  left: 44%;
  width: 28px;
  height: 8px;
  background: rgba(0,0,0,0.15);
  border-radius: 50%;
  animation: sd-shadow 8s ease-in-out infinite alternate;
}
.scn-simple-dress .cloud {
  position: absolute;
  top: 22%;
  left: 20%;
  width: 70px;
  height: 16px;
  background: linear-gradient(180deg, rgba(255,255,255,0.7) 0%, rgba(255,255,255,0.1) 100%);
  border-radius: 50%;
  filter: blur(6px);
  animation: sd-cloud 40s linear infinite;
}

@keyframes sd-sky { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes sd-sun { 0% { box-shadow: 0 0 30px 10px rgba(240,208,96,0.4), 0 0 60px 20px rgba(240,208,96,0.2); } 50% { box-shadow: 0 0 48px 16px rgba(255,224,112,0.6), 0 0 90px 32px rgba(255,224,112,0.3); } 100% { box-shadow: 0 0 28px 8px rgba(240,208,96,0.35), 0 0 56px 18px rgba(240,208,96,0.15); } }
@keyframes sd-hills { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-3px) scale(1.01); } 100% { transform: translateY(0) scale(1); } }
@keyframes sd-tree { 0% { transform: rotate(-0.5deg); } 50% { transform: rotate(1.5deg); } 100% { transform: rotate(-0.5deg); } }
@keyframes sd-figure { 0% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(1.02); } 100% { transform: translateX(-50%) scaleY(1); } }
@keyframes sd-shadow { 0% { opacity: 0.12; } 50% { opacity: 0.2; } 100% { opacity: 0.12; } }
@keyframes sd-cloud { 0% { transform: translateX(-30px); } 100% { transform: translateX(120vw); } }

/* women-ornaments-work */
.scn-women-ornaments-work {
  background:
    linear-gradient(180deg, #c8b896 0%, #e3d6b3 50%, #a08a60 100%),
    radial-gradient(ellipse at 20% 20%, #fff8e7 0%, transparent 50%);
}
.scn-women-ornaments-work .bg-wall {
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, #b0976a 0%, #d4c09e 40%, #8c7450 100%);
  animation: wo-wall 25s ease-in-out infinite alternate;
}
.scn-women-ornaments-work .window-light {
  position: absolute;
  top: 5%;
  left: 10%;
  width: 40%;
  height: 30%;
  background: radial-gradient(ellipse at 50% 50%, #fffbe0 0%, #f5e6c0 40%, transparent 80%);
  box-shadow: 0 0 60px 20px rgba(255,248,200,0.3);
  animation: wo-window 12s ease-in-out infinite alternate;
}
.scn-women-ornaments-work .loom-frame {
  position: absolute;
  bottom: 15%;
  left: 30%;
  width: 30%;
  height: 50%;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%);
  border: 4px solid #4a2a1a;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.4), 0 6px 12px rgba(0,0,0,0.5);
  border-radius: 6% 6% 2% 2%;
}
.scn-women-ornaments-work .loom-threads {
  position: absolute;
  bottom: 15%;
  left: 32%;
  width: 26%;
  height: 48%;
  background: repeating-linear-gradient(180deg, #d8c4a0 0px, #d8c4a0 2px, transparent 2px, transparent 6px);
  opacity: 0.6;
  animation: wo-threads 10s ease-in-out infinite alternate;
}
.scn-women-ornaments-work .figure {
  position: absolute;
  bottom: 24%;
  left: 55%;
  width: 24px;
  height: 36px;
  background: linear-gradient(180deg, #7a5a4a 0%, #3a1a1a 100%);
  border-radius: 40% 45% 20% 25% / 55% 50% 20% 25%;
  transform: translateX(-50%);
  animation: wo-figure 9s ease-in-out infinite alternate;
}
.scn-women-ornaments-work .left-arm {
  position: absolute;
  bottom: 32%;
  left: 50%;
  width: 10px;
  height: 26px;
  background: linear-gradient(180deg, #7a5a4a 0%, #3a1a1a 100%);
  border-radius: 50%;
  transform-origin: top center;
  animation: wo-larm 6s ease-in-out infinite;
  box-shadow: 0 0 14px 3px rgba(240,180,50,0.6);
}
.scn-women-ornaments-work .right-arm {
  position: absolute;
  bottom: 32%;
  left: 62%;
  width: 10px;
  height: 26px;
  background: linear-gradient(180deg, #7a5a4a 0%, #3a1a1a 100%);
  border-radius: 50%;
  transform-origin: top center;
  animation: wo-rarm 6s ease-in-out infinite 1.5s;
  box-shadow: 0 0 14px 3px rgba(240,180,50,0.6);
}
.scn-women-ornaments-work .spinning-wheel {
  position: absolute;
  bottom: 10%;
  left: 75%;
  width: 40px;
  height: 40px;
  background: radial-gradient(circle at 30% 30%, #c8a060 0%, #6a4010 80%);
  border-radius: 50%;
  box-shadow: 0 0 0 4px #4a3010, 0 6px 12px rgba(0,0,0,0.4);
  animation: wo-wheel 14s linear infinite;
}

@keyframes wo-wall { 0% { filter: brightness(1); } 50% { filter: brightness(1.05); } 100% { filter: brightness(1); } }
@keyframes wo-window { 0% { opacity: 0.7; transform: scale(1); } 50% { opacity: 1; transform: scale(1.02); } 100% { opacity: 0.7; transform: scale(1); } }
@keyframes wo-threads { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes wo-figure { 0% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-1px); } 100% { transform: translateX(-50%) translateY(0); } }
@keyframes wo-larm { 0% { transform: rotate(-20deg); } 50% { transform: rotate(10deg); } 100% { transform: rotate(-20deg); } }
@keyframes wo-rarm { 0% { transform: rotate(15deg); } 50% { transform: rotate(-10deg); } 100% { transform: rotate(15deg); } }
@keyframes wo-wheel { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }

/* plain-living */
.scn-plain-living {
  background:
    linear-gradient(180deg, #d4b896 0%, #f0e0c0 40%, #b89870 100%),
    radial-gradient(circle at 30% 20%, #fff8e0 0%, transparent 50%);
}
.scn-plain-living .bg-wall {
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, #c0a870 0%, #e8d8b0 60%);
  animation: pl-wall 22s ease-in-out infinite alternate;
}
.scn-plain-living .door-light {
  position: absolute;
  top: 10%;
  left: 50%;
  width: 35%;
  height: 45%;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 50%, #fffde0 0%, #f8ecc0 40%, transparent 80%);
  box-shadow: 0 0 50px 15px rgba(255,248,180,0.3);
  animation: pl-door 9s ease-in-out infinite alternate;
}
.scn-plain-living .table {
  position: absolute;
  bottom: 20%;
  left: 25%;
  right: 25%;
  height: 12%;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%);
  border-radius: 4% 4% 2% 2%;
  box-shadow: 0 6px 10px rgba(0,0,0,0.5);
  animation: pl-table 14s ease-in-out infinite alternate;
}
.scn-plain-living .bowl {
  position: absolute;
  bottom: 32%;
  left: 38%;
  width: 40px;
  height: 20px;
  background: radial-gradient(circle at 50% 30%, #f0d080 0%, #b08040 80%);
  border-radius: 0 0 50% 50% / 0 0 60% 60%;
  box-shadow: inset 0 -4px 6px rgba(0,0,0,0.3), 0 4px 8px rgba(0,0,0,0.3);
  animation: pl-bowl 10s ease-in-out infinite alternate;
}
.scn-plain-living .goat {
  position: absolute;
  bottom: 20%;
  left: 15%;
  width: 24px;
  height: 28px;
  background: linear-gradient(180deg, #4a3a2a 0%, #1a100a 100%);
  border-radius: 50% 50% 20% 20% / 70% 70% 20% 20%;
  transform-origin: bottom center;
  animation: pl-goat 7s ease-in-out infinite alternate;
}
.scn-plain-living .chicken {
  position: absolute;
  bottom: 22%;
  right: 15%;
  width: 16px;
  height: 14px;
  background: linear-gradient(180deg, #6a5a3a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  transform-origin: bottom center;
  animation: pl-chicken 4s ease-in-out infinite alternate 1s;
}
.scn-plain-living .table-shadow {
  position: absolute;
  bottom: 18%;
  left: 20%;
  right: 20%;
  height: 6px;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.2) 0%, transparent 80%);
  animation: pl-shadow 10s ease-in-out infinite alternate;
}

@keyframes pl-wall { 0% { filter: brightness(0.98); } 50% { filter: brightness(1.05); } 100% { filter: brightness(0.98); } }
@keyframes pl-door { 0% { opacity: 0.6; transform: translateX(-50%) scale(1); } 50% { opacity: 0.9; transform: translateX(-50%) scale(1.03); } 100% { opacity: 0.6; transform: translateX(-50%) scale(1); } }
@keyframes pl-table { 0% { filter: drop-shadow(0 4px 6px rgba(0,0,0,0.4)); } 50% { filter: drop-shadow(0 6px 10px rgba(0,0,0,0.5)); } 100% { filter: drop-shadow(0 4px 6px rgba(0,0,0,0.4)); } }
@keyframes pl-bowl { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes pl-goat { 0% { transform: rotate(-2deg) translateX(0); } 50% { transform: rotate(3deg) translateX(3px); } 100% { transform: rotate(-2deg) translateX(0); } }
@keyframes pl-chicken { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(0); } }
@keyframes pl-shadow { 0% { opacity: 0.1; } 50% { opacity: 0.2; } 100% { opacity: 0.1; } }

/* vegetables-and-cleanliness */
.scn-vegetables-and-cleanliness {
  background:
    linear-gradient(180deg, #e0cca0 0%, #f3e4be 50%, #bc9e6e 100%),
    radial-gradient(ellipse at 60% 30%, #fff9e6 0%, transparent 50%);
}
.scn-vegetables-and-cleanliness .bg-room {
  position: absolute;
  inset: 0;
  background: linear-gradient(135deg, #b89a70 0%, #d2ba90 50%, #8c6e50 100%);
  animation: vc-room 20s ease-in-out infinite alternate;
}
.scn-vegetables-and-cleanliness .window-pane {
  position: absolute;
  top: 8%;
  right: 10%;
  width: 35%;
  height: 30%;
  background: radial-gradient(ellipse at 70% 30%, #fffce0 0%, #f0e0b0 50%, transparent 80%);
  box-shadow: 0 0 40px 12px rgba(255,240,180,0.35);
  animation: vc-window 13s ease-in-out infinite alternate;
}
.scn-vegetables-and-cleanliness .table {
  position: absolute;
  bottom: 18%;
  left: 20%;
  right: 20%;
  height: 14%;
  background: linear-gradient(180deg, #7a5630 0%, #4e3020 100%);
  border-radius: 4% 4% 2% 2%;
  box-shadow: 0 8px 12px rgba(0,0,0,0.4);
  animation: vc-table 16s ease-in-out infinite alternate;
}
.scn-vegetables-and-cleanliness .basin {
  position: absolute;
  bottom: 29%;
  left: 35%;
  width: 60px;
  height: 30px;
  background: radial-gradient(ellipse at 50% 60%, #d0e8f8 0%, #8abad0 70%, #5a7a90 100%);
  border-radius: 0 0 50% 50% / 0 0 70% 70%;
  box-shadow: inset 0 -4px 8px rgba(0,0,0,0.2), 0 4px 8px rgba(0,0,0,0.3);
  animation: vc-basin 11s ease-in-out infinite alternate;
}
.scn-vegetables-and-cleanliness .plantain {
  position: absolute;
  bottom: 22%;
  left: 28%;
  width: 22px;
  height: 12px;
  background: linear-gradient(180deg, #f5d060 0%, #c88020 100%);
  border-radius: 40% 60% 30% 50% / 50% 80% 20% 50%;
  transform: rotate(-15deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
  animation: vc-plantain 8s ease-in-out infinite alternate 0.5s;
}
.scn-vegetables-and-cleanliness .yam {
  position: absolute;
  bottom: 20%;
  left: 52%;
  width: 18px;
  height: 28px;
  background: linear-gradient(180deg, #c07840 0%, #8a3a10 100%);
  border-radius: 40% 50% 30% 50% / 60% 70% 30% 40%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: vc-yam 9s ease-in-out infinite alternate 1.2s;
}
.scn-vegetables-and-cleanliness .left-hand {
  position: absolute;
  bottom: 34%;
  left: 42%;
  width: 10px;
  height: 16px;
  background: linear-gradient(180deg, #b08860 0%, #6a4020 100%);
  border-radius: 50% 50% 30% 30% / 60% 70% 30% 30%;
  transform-origin: top center;
  animation: vc-lhand 6s ease-in-out infinite;
}
.scn-vegetables-and-cleanliness .right-hand {
  position: absolute;
  bottom: 34%;
  left: 52%;
  width: 10px;
  height: 16px;
  background: linear-gradient(180deg, #b08860 0%, #6a4020 100%);
  border-radius: 50% 50% 30% 30% / 60% 70% 30% 30%;
  transform-origin: top center;
  animation: vc-rhand 6s ease-in-out infinite 2.5s;
}
.scn-vegetables-and-cleanliness .splash {
  position: absolute;
  bottom: 36%;
  left: 47%;
  width: 6px;
  height: 6px;
  background: radial-gradient(circle, #ffffff 0%, #a0d0e8 60%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 8px 2px rgba(255,255,255,0.8);
  animation: vc-splash 3s ease-in-out infinite;
}

@keyframes vc-room { 0% { filter: brightness(1); } 50% { filter: brightness(1.06); } 100% { filter: brightness(1); } }
@keyframes vc-window { 0% { opacity: 0.65; transform: scale(1); } 50% { opacity: 0.95; transform: scale(1.02); } 100% { opacity: 0.65; transform: scale(1); } }
@keyframes vc-table { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes vc-basin { 0% { background-position: 0% 0%; } 50% { background-position: 2px 2px; } 100% { background-position: 0% 0%; } }
@keyframes vc-plantain { 0% { transform: rotate(-15deg) translateY(0); } 50% { transform: rotate(-13deg) translateY(-1px); } 100% { transform: rotate(-15deg) translateY(0); } }
@keyframes vc-yam { 0% { transform: rotate(2deg); } 50% { transform: rotate(-2deg); } 100% { transform: rotate(2deg); } }
@keyframes vc-lhand { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(8deg) translateY(-2px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes vc-rhand { 0% { transform: rotate(5deg) translateY(0); } 50% { transform: rotate(-4deg) translateY(-1px); } 100% { transform: rotate(5deg) translateY(0); } }
@keyframes vc-splash { 0% { opacity: 0; transform: scale(0.8) translateY(0); } 50% { opacity: 1; transform: scale(1.2) translateY(-3px); } 100% { opacity: 0; transform: scale(0.8) translateY(0); } }

/* confusion-and-preparedness – dusk, tense, rough sea */
.scn-confusion-and-preparedness { background: linear-gradient(180deg, #1b123a 0%, #4a2c5a 40%, #c76d4a 100%), radial-gradient(ellipse at 50% 80%, rgba(200,120,60,0.3) 0%, transparent 70%); }
.scn-confusion-and-preparedness .sky { position:absolute; inset:0 0 60% 0; background:linear-gradient(180deg, #2a1b3d, transparent); animation:cap-sky 8s infinite alternate; }
.scn-confusion-and-preparedness .cloud-a { position:absolute; top:10%; left:10%; width:90px; height:20px; background:rgba(255,255,255,0.2); border-radius:50%; filter:blur(8px); animation:cap-cloud-a 20s linear infinite; }
.scn-confusion-and-preparedness .cloud-b { position:absolute; top:18%; right:15%; width:70px; height:15px; background:rgba(255,255,255,0.15); border-radius:50%; filter:blur(6px); animation:cap-cloud-b 25s linear infinite reverse; }
.scn-confusion-and-preparedness .sea { position:absolute; bottom:0; left:0; right:0; height:45%; background:linear-gradient(180deg, #1e3b4d, #0c1a24); animation:cap-sea 6s ease-in-out infinite alternate; }
.scn-confusion-and-preparedness .wave-1 { position:absolute; bottom:10%; left:0; width:120%; height:50px; background:radial-gradient(ellipse at 30% 50%, rgba(255,255,255,0.15) 0%, transparent 70%); border-radius:40%; animation:cap-wave 4s ease-in-out infinite; animation-delay:0s; }
.scn-confusion-and-preparedness .wave-2 { position:absolute; bottom:16%; left:0; width:120%; height:40px; background:radial-gradient(ellipse at 30% 50%, rgba(255,255,255,0.12) 0%, transparent 70%); border-radius:40%; animation:cap-wave 4s ease-in-out infinite; animation-delay:2s; }
.scn-confusion-and-preparedness .ship { position:absolute; bottom:30%; left:60%; width:40px; height:25px; background:#0e0e1a; border-radius:10% 10% 30% 30% / 50% 50% 20% 20%; box-shadow:0 4px 8px rgba(0,0,0,0.6); animation:cap-ship-roll 5s ease-in-out infinite; }
.scn-confusion-and-preparedness .lantern { position:absolute; bottom:34%; left:63%; width:4px; height:4px; background:radial-gradient(circle, #ffcc70, #b85c20); border-radius:50%; box-shadow:0 0 10px 2px rgba(255,200,80,0.6); animation:cap-lantern 2s ease-in-out infinite alternate; }
@keyframes cap-sky { 0%{opacity:.7} 50%{opacity:1} 100%{opacity:.7} }
@keyframes cap-cloud-a { 0%{transform:translateX(-30px)} 100%{transform:translateX(110vw)} }
@keyframes cap-cloud-b { 0%{transform:translateX(0)} 100%{transform:translateX(-100vw)} }
@keyframes cap-sea { 0%{transform:translateY(0)} 50%{transform:translateY(4px)} 100%{transform:translateY(0)} }
@keyframes cap-wave { 0%{transform:translateX(-10%) scaleY(1) rotate(0deg)} 25%{transform:translateX(0) scaleY(1.2) rotate(2deg)} 50%{transform:translateX(10%) scaleY(1) rotate(0deg)} 75%{transform:translateX(0) scaleY(1.2) rotate(-2deg)} 100%{transform:translateX(-10%) scaleY(1) rotate(0deg)} }
@keyframes cap-ship-roll { 0%,100%{transform:rotate(0deg) translateY(0)} 25%{transform:rotate(2deg) translateY(-1px)} 75%{transform:rotate(-2deg) translateY(1px)} }
@keyframes cap-lantern { 0%{opacity:.6; transform:scale(1)} 100%{opacity:1; transform:scale(1.3)} }

/* chase-all-night – moonlit, tense, night pursuit */
.scn-chase-all-night { background: linear-gradient(180deg, #050a18 0%, #13263b 40%, #1a3348 100%), radial-gradient(ellipse at 50% 90%, rgba(80,130,160,0.15) 0%, transparent 70%); }
.scn-chase-all-night .sky { position:absolute; inset:0; background:radial-gradient(circle at 30% 20%, rgba(255,255,255,0.1) 0%, transparent 60%), linear-gradient(180deg, #0a1226, transparent); animation:ca-sky 10s infinite alternate; }
.scn-chase-all-night .moon { position:absolute; top:5%; left:20%; width:30px; height:30px; background:radial-gradient(circle, #e6f0ff 0%, #a0c8e0 60%, transparent 70%); border-radius:50%; box-shadow:0 0 40px 10px rgba(180,210,240,0.4); animation:ca-moon 8s ease-in-out infinite alternate; }
.scn-chase-all-night .sea { position:absolute; bottom:0; left:0; right:0; height:50%; background:linear-gradient(180deg, #132b3f, #0b1a28); animation:ca-sea 7s infinite alternate; }
.scn-chase-all-night .wave-1 { position:absolute; bottom:8%; left:0; width:120%; height:40px; background:linear-gradient(90deg, rgba(200,220,240,0.2), transparent); border-radius:50% / 100%; animation:ca-wave 5s ease-in-out infinite; animation-delay:0s; }
.scn-chase-all-night .wave-2 { position:absolute; bottom:14%; left:0; width:120%; height:35px; background:linear-gradient(90deg, rgba(200,220,240,0.15), transparent); border-radius:50% / 100%; animation:ca-wave 5s ease-in-out infinite; animation-delay:2.5s; }
.scn-chase-all-night .ship { position:absolute; bottom:25%; left:45%; width:50px; height:30px; background:#0a0a14; border-radius:20% 20% 40% 40% / 50% 50% 30% 30%; box-shadow:0 0 8px rgba(0,0,0,0.8); animation:ca-ship-roll 6s ease-in-out infinite; }
.scn-chase-all-night .sail { position:absolute; bottom:35%; left:48%; width:6px; height:20px; background:radial-gradient(ellipse at 50% 0%, rgba(230,245,255,0.9) 0%, rgba(180,210,240,0.6) 100%); border-radius:40% 40% 0 0 / 80% 80% 0 0; transform-origin:bottom center; animation:ca-sail-flap 3s ease-in-out infinite; }
@keyframes ca-sky { 0%{opacity:.8} 50%{opacity:1} 100%{opacity:.8} }
@keyframes ca-moon { 0%{opacity:.8; transform:scale(.95)} 100%{opacity:1; transform:scale(1.05)} }
@keyframes ca-sea { 0%{transform:translateY(0)} 50%{transform:translateY(3px)} 100%{transform:translateY(0)} }
@keyframes ca-wave { 0%{transform:translateX(-8%) rotate(0deg)} 50%{transform:translateX(8%) rotate(2deg)} 100%{transform:translateX(-8%) rotate(0deg)} }
@keyframes ca-ship-roll { 0%,100%{transform:rotate(0deg)} 25%{transform:rotate(1.5deg)} 75%{transform:rotate(-1.5deg)} }
@keyframes ca-sail-flap { 0%,100%{transform:scaleY(1) rotate(0deg)} 50%{transform:scaleY(1.15) rotate(2deg)} }

/* chasing-at-daylight – dawn, tense, day chase */
.scn-chasing-at-daylight { background: linear-gradient(180deg, #f9d3a4 0%, #f6a67c 40%, #5b8fb7 100%), radial-gradient(ellipse at 50% 90%, rgba(80,150,200,0.2) 0%, transparent 70%); }
.scn-chasing-at-daylight .sky { position:absolute; inset:0 0 55% 0; background:linear-gradient(180deg, #fce1b6, transparent); animation:cdl-sky 12s infinite alternate; }
.scn-chasing-at-daylight .sun { position:absolute; top:20%; left:30%; width:50px; height:50px; background:radial-gradient(circle, #fff9e6 0%, #ffd370 40%, rgba(255,200,100,0.2) 70%); border-radius:50%; box-shadow:0 0 60px 20px rgba(255,210,100,0.5); animation:cdl-sun-rise 8s ease-in-out infinite alternate; }
.scn-chasing-at-daylight .sea { position:absolute; bottom:0; left:0; right:0; height:50%; background:linear-gradient(180deg, #2c6280, #173d54); animation:cdl-sea 6s infinite alternate; }
.scn-chasing-at-daylight .wave-1 { position:absolute; bottom:10%; left:0; width:120%; height:45px; background:linear-gradient(90deg, rgba(255,255,255,0.2), transparent); border-radius:50% / 100%; animation:cdl-wave 4s ease-in-out infinite; animation-delay:0s; }
.scn-chasing-at-daylight .wave-2 { position:absolute; bottom:17%; left:0; width:120%; height:40px; background:linear-gradient(90deg, rgba(255,255,255,0.12), transparent); border-radius:50% / 100%; animation:cdl-wave 4s ease-in-out infinite; animation-delay:2s; }
.scn-chasing-at-daylight .ship-fore { position:absolute; bottom:20%; left:40%; width:60px; height:35px; background:#3a2a1a; border-radius:15% 15% 30% 30% / 40% 40% 20% 20%; box-shadow:inset 0 2px 6px rgba(0,0,0,0.5); animation:cdl-ship-sway 7s ease-in-out infinite; }
.scn-chasing-at-daylight .ship-aft { position:absolute; bottom:30%; left:10%; width:20px; height:12px; background:#2a2018; border-radius:20% 20% 30% 30% / 40% 40% 20% 20%; animation:cdl-ship-distant 10s ease-in-out infinite; }
.scn-chasing-at-daylight .cloud-a { position:absolute; top:8%; left:20%; width:100px; height:25px; background:rgba(255,255,255,0.3); border-radius:50%; filter:blur(8px); animation:cdl-cloud-drift 30s linear infinite; }
.scn-chasing-at-daylight .cloud-b { position:absolute; top:16%; right:10%; width:80px; height:20px; background:rgba(255,255,255,0.22); border-radius:50%; filter:blur(6px); animation:cdl-cloud-drift 35s linear infinite reverse; }
@keyframes cdl-sky { 0%{opacity:.8} 50%{opacity:1} 100%{opacity:.8} }
@keyframes cdl-sun-rise { 0%{transform:translateY(15px) scale(.95)} 100%{transform:translateY(-5px) scale(1.05)} }
@keyframes cdl-sea { 0%{transform:translateY(0)} 50%{transform:translateY(3px)} 100%{transform:translateY(0)} }
@keyframes cdl-wave { 0%{transform:translateX(-5%) scaleY(1)} 50%{transform:translateX(5%) scaleY(1.1)} 100%{transform:translateX(-5%) scaleY(1)} }
@keyframes cdl-ship-sway { 0%,100%{transform:rotate(0deg) translateY(0)} 25%{transform:rotate(1.5deg) translateY(-1px)} 75%{transform:rotate(-1.5deg) translateY(1px)} }
@keyframes cdl-ship-distant { 0%{transform:translateX(0)} 50%{transform:translateX(8px)} 100%{transform:translateX(0)} }
@keyframes cdl-cloud-drift { 0%{transform:translateX(-30px)} 100%{transform:translateX(110vw)} }

/* somerset-cheers – sunset, tense, ships cheering */
.scn-somerset-cheers { background: linear-gradient(180deg, #f47b46 0%, #f9c26d 30%, #f2d87d 60%, #3b5c7a 100%), radial-gradient(ellipse at 50% 70%, rgba(255,200,100,0.4) 0%, transparent 70%); }
.scn-somerset-cheers .sky { position:absolute; inset:0 0 60% 0; background:linear-gradient(180deg, #f9a15c, transparent); animation:sc-sky 10s infinite alternate; }
.scn-somerset-cheers .sun { position:absolute; top:15%; left:60%; width:70px; height:70px; background:radial-gradient(circle, #fff3d4 0%, #ffbc4d 50%, rgba(255,180,60,0.2) 80%); border-radius:50%; box-shadow:0 0 80px 30px rgba(255,200,80,0.5); animation:sc-sun-set 9s ease-in-out infinite alternate; }
.scn-somerset-cheers .sea { position:absolute; bottom:0; left:0; right:0; height:45%; background:linear-gradient(180deg, #3b6b8a, #1d3b52); animation:sc-sea 6s infinite alternate; }
.scn-somerset-cheers .wave-1 { position:absolute; bottom:12%; left:0; width:120%; height:40px; background:linear-gradient(90deg, rgba(255,220,140,0.15), transparent); border-radius:50% / 100%; animation:sc-wave 5s ease-in-out infinite; animation-delay:0s; }
.scn-somerset-cheers .wave-2 { position:absolute; bottom:19%; left:0; width:120%; height:35px; background:linear-gradient(90deg, rgba(255,220,140,0.08), transparent); border-radius:50% / 100%; animation:sc-wave 5s ease-in-out infinite; animation-delay:2.5s; }
.scn-somerset-cheers .ship-main { position:absolute; bottom:22%; left:45%; width:55px; height:30px; background:#3a2c18; border-radius:10% 10% 35% 35% / 50% 50% 20% 20%; box-shadow:0 2px 10px rgba(0,0,0,0.6); animation:sc-ship-rock 7s ease-in-out infinite; }
.scn-somerset-cheers .ship-aft { position:absolute; bottom:32%; left:72%; width:25px; height:14px; background:#2e2212; border-radius:15% 15% 30% 30%; animation:sc-ship-distant 11s ease-in-out infinite; }
.scn-somerset-cheers .flag { position:absolute; bottom:36%; left:48%; width:8px; height:15px; background:linear-gradient(180deg, #ffb347 0%, #e68a2e 100%); border-radius:10% 10% 0 0; transform-origin:bottom center; animation:sc-flag-wave 2s ease-in-out infinite; }
.scn-somerset-cheers .glow { position:absolute; bottom:30%; left:50%; width:20px; height:20px; background:radial-gradient(circle, rgba(255,240,180,0.4) 0%, transparent 70%); border-radius:50%; mix-blend-mode:screen; animation:sc-glow-pulse 4s ease-in-out infinite alternate; }
@keyframes sc-sky { 0%{opacity:.8} 100%{opacity:1} }
@keyframes sc-sun-set { 0%{transform:translateY(10px) scale(.98)} 100%{transform:translateY(-5px) scale(1.02)} }
@keyframes sc-sea { 0%{transform:translateY(0)} 50%{transform:translateY(3px)} 100%{transform:translateY(0)} }
@keyframes sc-wave { 0%{transform:translateX(-5%) rotate(0deg)} 50%{transform:translateX(5%) rotate(1deg)} 100%{transform:translateX(-5%) rotate(0deg)} }
@keyframes sc-ship-rock { 0%,100%{transform:rotate(0deg)} 25%{transform:rotate(1deg)} 75%{transform:rotate(-1deg)} }
@keyframes sc-ship-distant { 0%{transform:translateX(0)} 50%{transform:translateX(5px)} 100%{transform:translateX(0)} }
@keyframes sc-flag-wave { 0%,100%{transform:rotateY(0deg)} 50%{transform:rotateY(12deg)} }
@keyframes sc-glow-pulse { 0%{opacity:.5; transform:scale(.9)} 100%{opacity:.9; transform:scale(1.1)} }

.scn-nobleman-militia { background: linear-gradient(180deg, #b0b5bd 0%, #8c929a 60%, #6b727a 100%), radial-gradient(ellipse at 50% 80%, rgba(255,255,255,0.15) 0%, transparent 70%); }
.scn-nobleman-militia .sky { position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #c5c9cf 0%, transparent 100%); animation: nm-sky-glow 20s ease-in-out infinite alternate; }
.scn-nobleman-militia .cloud-a { position: absolute; top: 12%; left: -60px; width: 80px; height: 18px; background: linear-gradient(180deg, rgba(255,255,255,0.4), rgba(255,255,255,0.05)); border-radius: 50%; filter: blur(5px); animation: nm-cloud-drifter 40s linear infinite; }
.scn-nobleman-militia .hills { position: absolute; bottom: 28%; left: 0; right: 0; height: 30%; background: linear-gradient(180deg, #6b7a6b 0%, #3a4a3a 100%); border-radius: 60% 40% 0 0 / 70% 60% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,0.3); animation: nm-hills-breathe 18s ease-in-out infinite alternate; }
.scn-nobleman-militia .tent-a { position: absolute; bottom: 34%; left: 30%; width: 40px; height: 32px; background: linear-gradient(180deg, #8b7b6b 0%, #5e4e3e 100%); border-radius: 40% 40% 10% 10%; animation: nm-tent-sway 7s ease-in-out infinite alternate; }
.scn-nobleman-militia .tent-b { position: absolute; bottom: 32%; left: 52%; width: 36px; height: 28px; background: linear-gradient(180deg, #7a6b5b 0%, #4e3e2e 100%); border-radius: 42% 42% 12% 12%; }
.scn-nobleman-militia .pole { position: absolute; bottom: 34%; left: 56%; width: 2px; height: 60px; background: #4a4a3a; }
.scn-nobleman-militia .flag { position: absolute; bottom: 54%; left: 57%; width: 14px; height: 9px; background: #6b7b8b; transform-origin: left bottom; animation: nm-flag-wave 3s ease-in-out infinite alternate; }
.scn-nobleman-militia .figure { position: absolute; bottom: 30%; left: 18%; width: 12px; height: 24px; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: nm-walk 14s ease-in-out infinite alternate; }
.scn-nobleman-militia .lantern { position: absolute; bottom: 35%; left: 26%; width: 6px; height: 6px; background: radial-gradient(circle, #ffe699 0%, #ccaa33 80%); border-radius: 50%; box-shadow: 0 0 14px 3px rgba(255,230,150,0.6); animation: nm-lantern-glow 2.5s ease-in-out infinite alternate; }
@keyframes nm-sky-glow { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes nm-cloud-drifter { 0% { transform: translateX(-80px); } 100% { transform: translateX(120vw); } }
@keyframes nm-hills-breathe { 0% { transform: scaleY(0.98); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(0.98); } }
@keyframes nm-tent-sway { 0% { transform: rotate(-0.5deg); } 50% { transform: rotate(0.5deg); } 100% { transform: rotate(-0.5deg); } }
@keyframes nm-flag-wave { 0% { transform: rotate(-4deg); } 50% { transform: rotate(6deg); } 100% { transform: rotate(-4deg); } }
@keyframes nm-walk { 0% { transform: translateX(0) translateY(0); } 25% { transform: translateX(15px) translateY(-1px) rotate(1deg); } 50% { transform: translateX(35px) translateY(0) rotate(-1deg); } 75% { transform: translateX(55px) translateY(-1px) rotate(1deg); } 100% { transform: translateX(75px) translateY(0) rotate(0); } }
@keyframes nm-lantern-glow { 0% { opacity: 0.7; box-shadow: 0 0 12px 2px rgba(255,230,150,0.4); } 50% { opacity: 1; box-shadow: 0 0 18px 6px rgba(255,230,150,0.7); } 100% { opacity: 0.7; box-shadow: 0 0 12px 2px rgba(255,230,150,0.4); } }

.scn-london-ship-new-york { background: linear-gradient(180deg, #5ca0d0 0%, #8ec5e8 50%, #d4eaff 100%), radial-gradient(circle at 80% 20%, rgba(255,240,180,0.8) 0%, transparent 60%); }
.scn-london-ship-new-york .sky { position: absolute; inset: 0 0 55% 0; background: radial-gradient(circle at 80% 30%, rgba(255,240,150,0.7) 0%, transparent 65%); animation: ls-sun-glow 8s ease-in-out infinite alternate; }
.scn-london-ship-new-york .cloud-a { position: absolute; top: 10%; left: -50px; width: 90px; height: 20px; background: linear-gradient(180deg, rgba(255,255,255,0.7), rgba(255,255,255,0.15)); border-radius: 50%; filter: blur(6px); animation: ls-cloud-drift-a 45s linear infinite; }
.scn-london-ship-new-york .cloud-b { position: absolute; top: 25%; right: -40px; width: 70px; height: 16px; background: linear-gradient(180deg, rgba(255,255,255,0.6), rgba(255,255,255,0.1)); border-radius: 50%; filter: blur(5px); animation: ls-cloud-drift-b 55s linear infinite reverse; }
.scn-london-ship-new-york .sea { position: absolute; bottom: 0; left: 0; right: 0; height: 34%; background: linear-gradient(180deg, #1e5173, #16415b, #0e2e42); animation: ls-sea-shimmer 8s ease-in-out infinite alternate; }
.scn-london-ship-new-york .ship-hull { position: absolute; bottom: 18%; left: 42%; width: 65px; height: 18px; background: linear-gradient(180deg, #3d2b1f 0%, #2a1e18 100%); border-radius: 12% 12% 35% 40% / 20% 50% 50% 20%; box-shadow: 0 4px 8px rgba(0,0,0,0.4); animation: ls-ship-bob 4s ease-in-out infinite alternate; }
.scn-london-ship-new-york .mast { position: absolute; bottom: 28%; left: 49%; width: 3px; height: 55px; background: #5c3a21; }
.scn-london-ship-new-york .sail-fore { position: absolute; bottom: 45%; left: 46%; width: 20px; height: 32px; background: linear-gradient(135deg, #fdfaf6, #e3dac9); transform: skewX(-7deg); transform-origin: bottom center; border-radius: 4% 40% 10% 10%; animation: ls-sail-sway-fore 5s ease-in-out infinite alternate; }
.scn-london-ship-new-york .sail-aft { position: absolute; bottom: 37%; left: 62%; width: 16px; height: 24px; background: linear-gradient(135deg, #fdfaf6, #d5c7b0); transform: skewX(-4deg); transform-origin: bottom center; border-radius: 4% 30% 8% 8%; animation: ls-sail-sway-aft 5.5s ease-in-out infinite alternate; }
.scn-london-ship-new-york .flag { position: absolute; bottom: 56%; left: 50%; width: 0; height: 0; border-left: 5px solid transparent; border-right: 5px solid transparent; border-bottom: 10px solid #8b3a3a; animation: ls-flag-flap 1.2s ease-in-out infinite alternate; }
@keyframes ls-sun-glow { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes ls-cloud-drift-a { 0% { transform: translateX(-100px); } 100% { transform: translateX(110vw); } }
@keyframes ls-cloud-drift-b { 0% { transform: translateX(0); } 100% { transform: translateX(-110vw); } }
@keyframes ls-sea-shimmer { 0% { background-position: 0 0; } 50% { background-position: 0 4px; } 100% { background-position: 0 0; } }
@keyframes ls-ship-bob { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-3px) rotate(0.5deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes ls-sail-sway-fore { 0% { transform: skewX(-7deg) rotate(-1deg); } 50% { transform: skewX(-7deg) rotate(2deg); } 100% { transform: skewX(-7deg) rotate(-1deg); } }
@keyframes ls-sail-sway-aft { 0% { transform: skewX(-4deg) rotate(-0.5deg); } 50% { transform: skewX(-4deg) rotate(1.5deg); } 100% { transform: skewX(-4deg) rotate(-0.5deg); } }
@keyframes ls-flag-flap { 0% { transform: rotate(-5deg); } 50% { transform: rotate(8deg); } 100% { transform: rotate(-5deg); } }

.scn-philadelphia-arrival { background: linear-gradient(180deg, #f9d56e 0%, #f5a623 50%, #e56b22 100%), radial-gradient(ellipse at 30% 20%, rgba(255,255,200,0.7) 0%, transparent 60%); }
.scn-philadelphia-arrival .sky { position: absolute; inset: 0 0 45% 0; background: radial-gradient(ellipse at 30% 30%, rgba(255,240,180,0.8) 0%, transparent 70%); animation: pa-sky-glow 12s ease-in-out infinite alternate; }
.scn-philadelphia-arrival .cloud-a { position: absolute; top: 15%; left: -60px; width: 85px; height: 16px; background: linear-gradient(180deg, rgba(255,255,255,0.55) 0%, rgba(255,255,255,0.1) 100%); border-radius: 50%; filter: blur(5px); animation: pa-cloud-drift-a 50s linear infinite; }
.scn-philadelphia-arrival .cloud-b { position: absolute; top: 28%; right: -40px; width: 70px; height: 14px; background: linear-gradient(180deg, rgba(255,255,255,0.45) 0%, rgba(255,255,255,0.05) 100%); border-radius: 50%; filter: blur(4px); animation: pa-cloud-drift-b 60s linear infinite reverse; }
.scn-philadelphia-arrival .city { position: absolute; bottom: 32%; left: 0; right: 0; height: 18%; background: #1e1e32; box-shadow: 30px -12px 0 0 #1e1e32, 70px -24px 0 0 #1e1e32, 110px -6px 0 0 #1e1e32, 150px -32px 0 0 #1e1e32, 190px -16px 0 0 #1e1e32, 230px -28px 0 0 #1e1e32, 270px -8px 0 0 #1e1e32; animation: pa-city-breathe 18s ease-in-out infinite alternate; }
.scn-philadelphia-arrival .sea { position: absolute; bottom: 0; left: 0; right: 0; height: 26%; background: linear-gradient(180deg, #2a4d6e 0%, #162b3d 100%); animation: pa-sea-swell 8s ease-in-out infinite alternate; }
.scn-philadelphia-arrival .ship-hull { position: absolute; bottom: 12%; left: 62%; width: 45px; height: 15px; background: linear-gradient(180deg, #2c2c1a 0%, #1a1a10 100%); border-radius: 10% 20% 30% 40% / 20% 50% 50% 20%; box-shadow: 0 3px 6px rgba(0,0,0,0.3); animation: pa-ship-bob 4.5s ease-in-out infinite alternate; }
.scn-philadelphia-arrival .mast { position: absolute; bottom: 20%; left: 67%; width: 2px; height: 38px; background: #4a3a2a; }
.scn-philadelphia-arrival .sail { position: absolute; bottom: 28%; left: 63%; width: 18px; height: 28px; background: linear-gradient(160deg, #fdf6e0 0%, #d4c8a8 100%); transform: skewX(-6deg); border-radius: 5% 30% 10% 10%; transform-origin: bottom center; animation: pa-sail-sway 5s ease-in-out infinite alternate; }
@keyframes pa-sky-glow { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes pa-cloud-drift-a { 0% { transform: translateX(-80px); } 100% { transform: translateX(110vw); } }
@keyframes pa-cloud-drift-b { 0% { transform: translateX(0); } 100% { transform: translateX(-110vw); } }
@keyframes pa-city-breathe { 0% { transform: scaleY(0.99); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(0.99); } }
@keyframes pa-sea-swell { 0% { background-position: 0 0; } 50% { background-position: 0 3px; } 100% { background-position: 0 0; } }
@keyframes pa-ship-bob { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-3px) rotate(0.8deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes pa-sail-sway { 0% { transform: skewX(-6deg) rotate(-1deg); } 50% { transform: skewX(-6deg) rotate(2deg); } 100% { transform: skewX(-6deg) rotate(-1deg); } }

.scn-ship-collision { background: linear-gradient(180deg, #0b1429 0%, #152033 60%, #1e2e45 100%), radial-gradient(ellipse at 20% 20%, rgba(120,160,210,0.3) 0%, transparent 70%); }
.scn-ship-collision .sky { position: absolute; top: 0; left: 0; right: 0; height: 55%; background: radial-gradient(circle at 20% 20%, rgba(140,190,230,0.25) 0%, transparent 70%); animation: sc-sky-pulse 10s ease-in-out infinite alternate; }
.scn-ship-collision .moon { position: absolute; top: 12%; right: 22%; width: 28px; height: 28px; background: radial-gradient(circle, #eef4ff 0%, #aac4de 70%, transparent 80%); border-radius: 50%; box-shadow: 0 0 32px 12px rgba(170,200,240,0.5); animation: sc-moon-glow 4s ease-in-out infinite alternate; }
.scn-ship-collision .cloud { position: absolute; top: 25%; left: -60px; width: 80px; height: 14px; background: linear-gradient(180deg, rgba(255,255,255,0.35), rgba(255,255,255,0.05)); border-radius: 50%; filter: blur(6px); animation: sc-cloud-rush 8s linear infinite; }
.scn-ship-collision .sea { position: absolute; bottom: 0; left: 0; right: 0; height: 35%; background: linear-gradient(180deg, #0c1c2e 0%, #051020 100%); animation: sc-sea-storm 2s ease-in-out infinite alternate; }
.scn-ship-collision .ship1 { position: absolute; bottom: 18%; left: 28%; width: 45px; height: 16px; background: linear-gradient(180deg, #1e2b40 0%, #111826 100%); border-radius: 10% 20% 30% 10% / 20% 60% 30% 20%; transform: rotate(-4deg); animation: sc-ship1-rock 1.5s ease-in-out infinite alternate; }
.scn-ship-collision .lantern { position: absolute; bottom: 24%; left: 38%; width: 5px; height: 5px; background: radial-gradient(circle, #ffd280 0%, #cc8800 80%); border-radius: 50%; box-shadow: 0 0 16px 5px rgba(255,200,100,0.65); animation: sc-lantern-flicker 0.6s ease-in-out infinite alternate; }
.scn-ship-collision .ship2 { position: absolute; bottom: 15%; right: -50px; width: 40px; height: 14px; background: linear-gradient(180deg, #0d1525 0%, #060a14 100%); border-radius: 12% 10% 40% 30% / 20% 50% 50% 30%; transform: rotate(5deg); animation: sc-ship2-pass 7s linear infinite; }
.scn-ship-collision .spray { position: absolute; bottom: 12%; left: 48%; width: 10px; height: 14px; background: radial-gradient(ellipse at 50% 50%, rgba(255,255,255,0.6) 0%, transparent 70%); border-radius: 50%; animation: sc-spray 1s ease-in-out infinite alternate; }
.scn-ship-collision .debris { position: absolute; bottom: 6%; left: 72%; width: 8px; height: 8px; background: #2a3a4a; transform: rotate(45deg); animation: sc-debris-drift 3s ease-in-out infinite alternate; }
@keyframes sc-sky-pulse { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes sc-moon-glow { 0% { box-shadow: 0 0 28px 10px rgba(170,200,240,0.4); } 50% { box-shadow: 0 0 40px 16px rgba(170,200,240,0.6); } 100% { box-shadow: 0 0 28px 10px rgba(170,200,240,0.4); } }
@keyframes sc-cloud-rush { 0% { transform: translateX(-80px); } 100% { transform: translateX(115vw); } }
@keyframes sc-sea-storm { 0% { transform: scaleY(1.01) translateY(1px); } 50% { transform: scaleY(0.99) translateY(-1px); } 100% { transform: scaleY(1.01) translateY(1px); } }
@keyframes sc-ship1-rock { 0% { transform: rotate(-4deg) translateY(0); } 50% { transform: rotate(-2deg) translateY(-2px); } 100% { transform: rotate(-4deg) translateY(0); } }
@keyframes sc-lantern-flicker { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.5; } }
@keyframes sc-ship2-pass { 0% { transform: translateX(0) rotate(5deg); } 100% { transform: translateX(-130vw) rotate(5deg); } }
@keyframes sc-spray { 0% { opacity: 0.5; transform: scale(0.8) translateY(0); } 50% { opacity: 1; transform: scale(1.2) translateY(-3px); } 100% { opacity: 0.5; transform: scale(0.8) translateY(0); } }
@keyframes sc-debris-drift { 0% { transform: translate(0, 0) rotate(45deg); } 50% { transform: translate(12px, -6px) rotate(90deg); } 100% { transform: translate(-5px, 4px) rotate(20deg); } }

.scn-family-sacrifices {
  background:
    linear-gradient(180deg, #d4c8a0 0%, #b8a880 100%),
    radial-gradient(circle at 30% 40%, rgba(255,220,150,0.3) 0%, transparent 60%);
}
.scn-family-sacrifices .wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #c2b694 0%, #a89774 100%);
  animation: fs-wall 30s ease-in-out infinite alternate;
}
.scn-family-sacrifices .window-light {
  position: absolute; top: 10%; left: 15%; width: 30%; height: 45%;
  background: radial-gradient(ellipse at 50% 50%, rgba(255,235,180,0.6) 0%, transparent 70%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 0 60px 30px rgba(255,220,150,0.3);
  animation: fs-glow 6s ease-in-out infinite alternate;
}
.scn-family-sacrifices .table {
  position: absolute; bottom: 18%; left: 20%; right: 20%; height: 8%;
  background: linear-gradient(90deg, #6b5b44 0%, #8a7654 50%, #6b5b44 100%);
  border-radius: 4px;
  box-shadow: 0 6px 12px rgba(0,0,0,0.2);
  animation: fs-table 10s ease-in-out infinite;
}
.scn-family-sacrifices .bowl {
  position: absolute; bottom: 26%; left: 35%; width: 12%; height: 10%;
  background: radial-gradient(ellipse at 50% 40%, #b89060 0%, #8a6e40 60%, #5a4220 100%);
  border-radius: 50% 50% 40% 40%;
  box-shadow: inset 0 -4px 8px rgba(0,0,0,0.3);
  animation: fs-bowl 8s ease-in-out infinite alternate;
}
.scn-family-sacrifices .herbs {
  position: absolute; bottom: 27%; left: 40%; width: 8%; height: 12%;
  background: linear-gradient(180deg, #6a8a4a 0%, #4a6a2a 100%);
  border-radius: 60% 40% 30% 30% / 70% 50% 40% 40%;
  clip-path: polygon(20% 0%, 80% 5%, 70% 40%, 90% 30%, 60% 60%, 80% 80%, 50% 70%, 30% 90%, 40% 60%, 10% 70%, 30% 30%, 10% 20%);
  animation: fs-herbs 4s ease-in-out infinite;
}
.scn-family-sacrifices .figure {
  position: absolute; bottom: 15%; left: 50%; width: 12%; height: 30%;
  background: linear-gradient(180deg, #3a3228 0%, #1a1410 100%);
  border-radius: 50% 50% 40% 40% / 60% 55% 40% 40%;
  transform: translateX(-50%);
  animation: fs-figure 9s ease-in-out infinite;
}
.scn-family-sacrifices .glow {
  position: absolute; inset: 0;
  background: radial-gradient(circle at 20% 30%, rgba(255,235,180,0.2) 0%, transparent 60%);
  pointer-events: none;
  animation: fs-glow 6s ease-in-out infinite alternate;
}
@keyframes fs-wall {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes fs-glow {
  0% { opacity: 0.7; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.03); }
  100% { opacity: 0.8; transform: scale(0.98); }
}
@keyframes fs-table {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
}
@keyframes fs-bowl {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-1px) rotate(2deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes fs-herbs {
  0% { transform: rotate(-3deg) scaleY(1); }
  50% { transform: rotate(2deg) scaleY(1.05); }
  100% { transform: rotate(-4deg) scaleY(0.98); }
}
@keyframes fs-figure {
  0% { transform: translateX(-50%) translateY(0) rotate(0deg); }
  33% { transform: translateX(-50%) translateY(-2px) rotate(1deg); }
  66% { transform: translateX(-50%) translateY(0) rotate(-1deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(0deg); }
}
.scn-tinmah-coconuts {
  background:
    linear-gradient(180deg, #7ab8d4 0%, #f0c890 40%, #e8b070 100%),
    radial-gradient(circle at 70% 30%, rgba(255,200,100,0.4) 0%, transparent 60%);
}
.scn-tinmah-coconuts .sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #6bb8d4 0%, transparent 100%);
  animation: tm-sky 20s ease-in-out infinite alternate;
}
.scn-tinmah-coconuts .sun {
  position: absolute; top: 18%; left: 65%; width: 12%; height: 12%;
  background: radial-gradient(circle, #ffdd88 0%, #f0b860 50%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 80px 40px rgba(255,200,100,0.5);
  animation: tm-sun 12s ease-in-out infinite;
}
.scn-tinmah-coconuts .town-silhouette {
  position: absolute; bottom: 30%; left: 10%; right: 10%; height: 20%;
  background: linear-gradient(180deg, #4a3a28 0%, #2a1a10 100%);
  border-radius: 10% 10% 0 0;
  clip-path: polygon(0% 100%, 5% 60%, 15% 65%, 20% 45%, 30% 55%, 35% 35%, 45% 50%, 50% 30%, 55% 45%, 65% 35%, 70% 50%, 80% 40%, 85% 55%, 95% 50%, 100% 100%);
  animation: tm-town 30s ease-in-out infinite alternate;
}
.scn-tinmah-coconuts .palm-left {
  position: absolute; bottom: 28%; left: 8%; width: 8%; height: 50%;
  background: linear-gradient(180deg, #5a7a3a 0%, #3a5a1a 100%);
  border-radius: 40% 40% 20% 20%;
  transform-origin: bottom center;
  animation: tm-palm-left 6s ease-in-out infinite;
}
.scn-tinmah-coconuts .palm-right {
  position: absolute; bottom: 25%; right: 12%; width: 7%; height: 55%;
  background: linear-gradient(180deg, #6a8a4a 0%, #3a5a1a 100%);
  border-radius: 30% 50% 15% 15%;
  transform-origin: bottom center;
  animation: tm-palm-right 8s ease-in-out infinite;
}
.scn-tinmah-coconuts .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #7a9a5a 0%, #5a7a3a 50%, #4a6a2a 100%);
  border-radius: 20% 30% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.1);
  animation: tm-ground 15s ease-in-out infinite alternate;
}
.scn-tinmah-coconuts .cloud {
  position: absolute; top: 15%; right: 20%; width: 20%; height: 8%;
  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: tm-cloud 40s linear infinite;
}
.scn-tinmah-coconuts .bird {
  position: absolute; top: 22%; left: 20%; width: 6%; height: 3%;
  background: radial-gradient(ellipse at 50% 50%, #2a2218 0%, #1a1208 100%);
  border-radius: 50%;
  clip-path: polygon(0% 50%, 40% 0%, 60% 0%, 100% 50%, 60% 100%, 40% 100%);
  animation: tm-bird 6s ease-in-out infinite alternate;
}
@keyframes tm-sky {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes tm-sun {
  0% { transform: scale(1) translate(0,0); box-shadow: 0 0 60px 30px rgba(255,200,100,0.4); }
  50% { transform: scale(1.05) translate(5px,-3px); box-shadow: 0 0 80px 40px rgba(255,200,100,0.6); }
  100% { transform: scale(0.98) translate(-2px,2px); box-shadow: 0 0 70px 35px rgba(255,200,100,0.5); }
}
@keyframes tm-town {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes tm-palm-left {
  0% { transform: rotate(0deg) scaleY(1); }
  25% { transform: rotate(5deg) scaleY(1.02); }
  50% { transform: rotate(-3deg) scaleY(0.98); }
  75% { transform: rotate(4deg) scaleY(1.01); }
  100% { transform: rotate(0deg) scaleY(1); }
}
@keyframes tm-palm-right {
  0% { transform: rotate(0deg) scaleY(1); }
  33% { transform: rotate(-4deg) scaleY(1.03); }
  66% { transform: rotate(6deg) scaleY(0.97); }
  100% { transform: rotate(0deg) scaleY(1); }
}
@keyframes tm-ground {
  0% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
  100% { transform: translateY(0); }
}
@keyframes tm-cloud {
  0% { transform: translateX(0); }
  50% { transform: translateX(-40px); }
  100% { transform: translateX(-80px); }
}
@keyframes tm-bird {
  0% { transform: translate(0,0) rotate(0deg); }
  33% { transform: translate(20px,-5px) rotate(5deg); }
  66% { transform: translate(10px,-2px) rotate(-5deg); }
  100% { transform: translate(0,0) rotate(0deg); }
}

.scn-family-sacrifices {
  background: 
    linear-gradient(180deg, #fdf5e6 0%, #f5e6d0 40%, #e0c9a0 100%),
    radial-gradient(ellipse at 50% 50%, #fff8dc 0%, transparent 70%);
}
.scn-family-sacrifices .wall {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, #f9f0e0 0%, #ede0c8 100%);
  opacity: 0.9;
  animation: fs-wall 15s ease-in-out infinite alternate;
}
.scn-family-sacrifices .floor {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 30%;
  background: linear-gradient(0deg, #8b5e3c 0%, #a07050 30%, #c09070 100%);
  border-radius: 0 0 8% 8%;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.2);
  animation: fs-floor 20s linear infinite;
}
.scn-family-sacrifices .table {
  position: absolute;
  bottom: 12%;
  left: 30%;
  right: 30%;
  height: 18%;
  background: linear-gradient(180deg, #c8a878 0%, #b09060 100%);
  border-radius: 4% 4% 0 0 / 30% 30% 0 0;
  box-shadow: 0 8px 16px rgba(0,0,0,0.3);
  transform-origin: bottom center;
  animation: fs-table 25s ease-in-out infinite alternate;
}
.scn-family-sacrifices .bowl {
  position: absolute;
  bottom: 20%;
  left: 38%;
  width: 12%;
  height: 10%;
  background: radial-gradient(circle at 40% 50%, #d4b896 0%, #b08a60 70%, #8a6a40 100%);
  border-radius: 50%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: fs-bowl 10s ease-in-out infinite alternate;
}
.scn-family-sacrifices .herbs {
  position: absolute;
  bottom: 25%;
  left: 42%;
  width: 6%;
  height: 6%;
  background: radial-gradient(circle at 30% 40%, #7a9a4a 0%, #5a7a2a 60%, #3a5a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-15deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
  animation: fs-herbs 6s ease-in-out infinite alternate;
}
.scn-family-sacrifices .candle {
  position: absolute;
  bottom: 24%;
  left: 50%;
  width: 2%;
  height: 12%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #f0e4d0 0%, #d4b89a 50%, #b08a6a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: fs-candle 4s ease-in-out infinite alternate;
}
.scn-family-sacrifices .candle-glow {
  position: absolute;
  bottom: 30%;
  left: 50%;
  width: 10%;
  height: 12%;
  transform: translateX(-50%);
  background: radial-gradient(circle at 50% 30%, #ffdf80 0%, #ffc040 40%, transparent 70%);
  filter: blur(6px);
  opacity: 0.7;
  animation: fs-glow 3s ease-in-out infinite alternate;
}
@keyframes fs-wall {
  0% { opacity: 0.88; }
  50% { opacity: 0.93; }
  100% { opacity: 0.88; }
}
@keyframes fs-floor {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes fs-table {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-1px) scaleY(1.005); }
  100% { transform: translateY(0) scaleY(1); }
}
@keyframes fs-bowl {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-1px) rotate(0deg); }
  100% { transform: translateY(0) rotate(1deg); }
}
@keyframes fs-herbs {
  0% { transform: rotate(-15deg) scale(1); }
  50% { transform: rotate(-12deg) scale(1.03); }
  100% { transform: rotate(-15deg) scale(1); }
}
@keyframes fs-candle {
  0% { transform: translateX(-50%) scaleY(1); opacity: 0.9; }
  50% { transform: translateX(-50%) scaleY(1.02); opacity: 1; }
  100% { transform: translateX(-50%) scaleY(0.98); opacity: 0.9; }
}
@keyframes fs-glow {
  0% { opacity: 0.6; transform: translateX(-50%) scale(0.95); }
  50% { opacity: 0.85; transform: translateX(-50%) scale(1.05); }
  100% { opacity: 0.6; transform: translateX(-50%) scale(0.95); }
}
/* end per-scene blocks */

/* auto-stub: parent tag-classes flagged by CSS audit */
.bank { position: absolute; pointer-events: none; }
.bodies { position: absolute; pointer-events: none; }
.cloud-fr { position: absolute; pointer-events: none; }
.drink { position: absolute; pointer-events: none; }
.fighter { position: absolute; pointer-events: none; }
.reef { position: absolute; pointer-events: none; }
.scn { position: absolute; pointer-events: none; }
.soft { position: absolute; pointer-events: none; }
.spirit { position: absolute; pointer-events: none; }
.wave-gp { position: absolute; pointer-events: none; }
.writing { position: absolute; pointer-events: none; }

/* ============ tier A ============ */
/* per-scene blocks (EXP step_scenes) */
.scn-conversion-experience {
  background: linear-gradient(180deg, #2c1a0c 0%, #4a2c1a 30%, #1a0e06 100%),
              radial-gradient(ellipse at 50% 50%, #ff8c42 0%, transparent 60%);
}
.scn-conversion-experience .bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #1a0e06 0%, #2c1a0c 40%, #0d0804 100%);
  animation: ce-bg 15s ease-in-out infinite alternate;
}
.scn-conversion-experience .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #5c3a1a 0%, #3e2310 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.7);
}
.scn-conversion-experience .desk {
  position: absolute; bottom: 30%; left: 50%; width: 140px; height: 25px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #8b5a2b 0%, #5a3617 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
}
.scn-conversion-experience .lamp {
  position: absolute; bottom: 55%; left: 40%; width: 12px; height: 40px;
  background: linear-gradient(180deg, #b8860b 0%, #8b6508 100%);
  border-radius: 20% 20% 40% 40%;
}
.scn-conversion-experience .light-cone {
  position: absolute; bottom: 35%; left: 38%; width: 80px; height: 120px;
  background: radial-gradient(ellipse at 50% 0%, #ffd700 0%, transparent 100%);
  opacity: 0.3;
  animation: ce-light 4s ease-in-out infinite alternate;
}
.scn-conversion-experience .figure-kneel {
  position: absolute; bottom: 28%; left: 48%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e06 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ce-kneel 5s ease-in-out infinite;
}
.scn-conversion-experience .figure-stand {
  position: absolute; bottom: 28%; left: 58%; width: 20px; height: 60px;
  background: linear-gradient(180deg, #2a1a0c 0%, #0d0804 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ce-stand 6s ease-in-out infinite;
}
.scn-conversion-experience .book {
  position: absolute; bottom: 31%; left: 46%; width: 30px; height: 20px;
  background: #8b6508;
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation: ce-book 3s ease-in-out infinite alternate;
}
.scn-conversion-experience .window {
  position: absolute; top: 8%; left: 20%; width: 60px; height: 80px;
  background: radial-gradient(circle at 50% 50%, #ffe4b5 0%, #1a0e06 100%);
  border-radius: 10%;
  box-shadow: inset 0 0 30px rgba(255, 228, 181, 0.5);
  animation: ce-window 10s ease-in-out infinite alternate;
}
@keyframes ce-bg {
  0% { opacity: 0.7; }
  50% { opacity: 0.85; }
  100% { opacity: 0.75; }
}
@keyframes ce-light {
  0% { transform: scaleY(0.8); opacity: 0.25; }
  50% { transform: scaleY(1.1); opacity: 0.35; }
  100% { transform: scaleY(0.9); opacity: 0.3; }
}
@keyframes ce-kneel {
  0% { transform: translateY(0) rotate(-2deg); }
  25% { transform: translateY(-2px) rotate(1deg); }
  50% { transform: translateY(0) rotate(-1deg); }
  75% { transform: translateY(-1px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes ce-stand {
  0% { transform: translateY(0) rotate(1deg); }
  50% { transform: translateY(-1px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes ce-book {
  0% { transform: translateY(0) rotate(0deg); }
  100% { transform: translateY(-3px) rotate(2deg); }
}
@keyframes ce-window {
  0% { opacity: 0.5; }
  50% { opacity: 0.8; }
  100% { opacity: 0.6; }
}

/* Scene: psalm-107-rescue (warm, overcast) */

/* Scene: final-plea – dim interior, candlelit desk with writing figure */
.scn-final-plea {
  background:
    linear-gradient(180deg, #1c1410 0%, #2a1e18 30%, #3d2a20 60%, #2a1e18 100%),
    radial-gradient(ellipse at 50% 80%, #4a3525 0%, transparent 60%);
  overflow: hidden;
}
.scn-final-plea .bg {
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at 45% 70%, rgba(180,120,70,0.15) 0%, transparent 50%);
  animation: fp-ambient 20s ease-in-out infinite alternate;
}
.scn-final-plea .table {
  position: absolute;
  bottom: 10%;
  left: 10%;
  width: 80%;
  height: 20%;
  background: linear-gradient(180deg, #4a3520 0%, #2a1c10 100%);
  border-radius: 2% 2% 0 0;
  box-shadow: 0 -6px 20px rgba(0,0,0,0.6);
  transform: perspective(400px) rotateX(2deg);
}
.scn-final-plea .candle {
  position: absolute;
  bottom: 28%;
  left: 30%;
  width: 12px;
  height: 50px;
  background: linear-gradient(180deg, #e8c490 0%, #b88860 40%, #8a6040 100%);
  border-radius: 3px 3px 2px 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-final-plea .flame {
  position: absolute;
  bottom: 55%;
  left: 30%;
  width: 12px;
  height: 20px;
  margin-left: 0; /* centered on candle */
  background: radial-gradient(ellipse at 50% 30%, #ffeecc 0%, #ffcc66 40%, #cc8833 70%, transparent 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  filter: blur(1px);
  animation: fp-flame 0.6s ease-in-out infinite alternate;
}
.scn-final-plea .glow {
  position: absolute;
  bottom: 25%;
  left: 15%;
  width: 220px;
  height: 220px;
  background: radial-gradient(circle, rgba(255,200,100,0.25) 0%, rgba(255,180,80,0.1) 40%, transparent 70%);
  border-radius: 50%;
  pointer-events: none;
  animation: fp-glow 3s ease-in-out infinite alternate;
}
.scn-final-plea .paper {
  position: absolute;
  bottom: 16%;
  left: 48%;
  width: 90px;
  height: 56px;
  background: linear-gradient(180deg, #f2e6d0 0%, #dcc8a8 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  transform: rotate(2deg);
  animation: fp-paper 8s ease-in-out infinite;
}
.scn-final-plea .quill {
  position: absolute;
  bottom: 20%;
  left: 58%;
  width: 8px;
  height: 60px;
  background: linear-gradient(180deg, #e8dcc0 0%, #c8b898 40%, #a09070 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 10% 10%;
  transform: rotate(30deg);
  transform-origin: bottom center;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: fp-quill 4s ease-in-out infinite;
}
.scn-final-plea .inkwell {
  position: absolute;
  bottom: 14%;
  left: 56%;
  width: 20px;
  height: 16px;
  background: radial-gradient(circle at 50% 30%, #3a2a1a 0%, #1a1008 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
  box-shadow: inset 0 2px 4px rgba(0,0,0,0.6);
}
.scn-final-plea .figure {
  position: absolute;
  bottom: 12%;
  left: 34%;
  width: 50px;
  height: 100px;
  background: linear-gradient(180deg, #3a2a20 0%, #1c1410 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fp-figure 5s ease-in-out infinite alternate;
}

@keyframes fp-ambient {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes fp-flame {
  0% { transform: scaleY(1) scaleX(0.9); opacity: 0.9; }
  50% { transform: scaleY(1.15) scaleX(1.05); opacity: 1; }
  100% { transform: scaleY(0.95) scaleX(0.85); opacity: 0.85; }
}
@keyframes fp-glow {
  0% { transform: scale(1); opacity: 0.7; }
  50% { transform: scale(1.08); opacity: 0.9; }
  100% { transform: scale(0.98); opacity: 0.75; }
}
@keyframes fp-paper {
  0% { transform: rotate(2deg) translateY(0); }
  50% { transform: rotate(0deg) translateY(-1px); }
  100% { transform: rotate(2deg) translateY(0); }
}
@keyframes fp-quill {
  0% { transform: rotate(28deg) scaleY(1); }
  50% { transform: rotate(32deg) scaleY(1.02); }
  100% { transform: rotate(28deg) scaleY(1); }
}
@keyframes fp-figure {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(0.5deg); }
  100% { transform: translateY(0) rotate(0deg); }
}

/* thames-fall scene */
.scn-thames-fall {
  background: linear-gradient(180deg, #87CEEB 0%, #f5deb3 40%, #f0c27a 70%, #e6b35a 100%);
  position: relative; overflow: hidden;
}
.scn-thames-fall .sky { position: absolute; inset: 0 0 50% 0; background: linear-gradient(180deg, #4da6ff 0%, #87CEEB 60%, transparent); animation: thf-sky 15s ease-in-out infinite alternate; }
.scn-thames-fall .sun { position: absolute; top: 8%; left: 30%; width: 60px; height: 60px; background: radial-gradient(circle, #ffd700 0%, #ff8c00 60%, transparent 80%); border-radius: 50%; box-shadow: 0 0 80px 20px #ffd700; animation: thf-sun 6s ease-in-out infinite; }
.scn-thames-fall .water { position: absolute; bottom: 0; left: 0; right: 0; height: 50%; background: linear-gradient(180deg, #2e8b57 0%, #1e6b3a 30%, #0a3a1a 100%); }
.scn-thames-fall .boat { position: absolute; bottom: 25%; left: 40%; width: 120px; height: 30px; background: linear-gradient(90deg, #8b4513 0%, #a0522d 50%, #8b4513 100%); border-radius: 0 0 50% 50% / 0 0 100% 100%; transform-origin: bottom center; animation: thf-boat 4s ease-in-out infinite; }
.scn-thames-fall .child { position: absolute; bottom: 28%; left: 38%; width: 20px; height: 25px; background: linear-gradient(180deg, #f5deb3 0%, #deb887 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(15deg); animation: thf-fall 2s ease-in-out infinite; }
.scn-thames-fall .splash { position: absolute; bottom: 22%; left: 41%; width: 40px; height: 20px; background: radial-gradient(ellipse, rgba(255,255,255,0.8) 0%, transparent 70%); border-radius: 50%; animation: thf-splash 1.5s ease-out infinite; }
.scn-thames-fall .ripple1 { position: absolute; bottom: 18%; left: 30%; width: 80px; height: 10px; border: 2px solid rgba(255,255,255,0.3); border-radius: 50%; transform: scale(1); animation: thf-ripple 4s linear infinite; }
.scn-thames-fall .ripple2 { position: absolute; bottom: 20%; left: 50%; width: 60px; height: 8px; border: 2px solid rgba(255,255,255,0.2); border-radius: 50%; transform: scale(0.8); animation: thf-ripple 5s linear infinite reverse; }

@keyframes thf-sky { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.7 } }
@keyframes thf-sun { 0% { transform: scale(0.95); box-shadow: 0 0 60px 15px #ffd700 } 50% { transform: scale(1.05); box-shadow: 0 0 100px 25px #ffd700 } 100% { transform: scale(0.95); box-shadow: 0 0 60px 15px #ffd700 } }
@keyframes thf-boat { 0% { transform: rotate(-2deg) } 50% { transform: rotate(3deg) } 100% { transform: rotate(-2deg) } }
@keyframes thf-fall { 0% { transform: rotate(15deg) translateY(0) } 50% { transform: rotate(-10deg) translateY(10px) } 100% { transform: rotate(15deg) translateY(0) } }
@keyframes thf-splash { 0% { opacity: 1; transform: scale(1) } 100% { opacity: 0; transform: scale(3) } }
@keyframes thf-ripple { 0% { opacity: 0.6; transform: scale(0.5) } 100% { opacity: 0; transform: scale(2) } }

/* gibraltar-search scene */
.scn-gibraltar-search {
  background: linear-gradient(180deg, #f5deb3 0%, #e6c87a 40%, #d4a059 70%, #c08040 100%);
  position: relative; overflow: hidden;
}
.scn-gibraltar-search .sky { position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #87CEEB 0%, #b0e0e6 50%, transparent); animation: gis-sky 20s ease-in-out infinite alternate; }
.scn-gibraltar-search .sun { position: absolute; top: 5%; left: 60%; width: 50px; height: 50px; background: radial-gradient(circle, #ffd700 0%, #ff8c00 60%, transparent 80%); border-radius: 50%; box-shadow: 0 0 100px 30px #ffd700; animation: gis-sun 10s ease-in-out infinite; }
.scn-gibraltar-search .wall { position: absolute; bottom: 20%; left: 0; right: 0; height: 50%; background: linear-gradient(180deg, #c2a076 0%, #9e7a56 50%, #6b4a2e 100%); border-radius: 10% 10% 0 0; }
.scn-gibraltar-search .arch { position: absolute; bottom: 35%; left: 30%; width: 80px; height: 60px; background: radial-gradient(ellipse at 50% 0%, #d4a059 0%, #6b4a2e 70%); border-radius: 50% 50% 0 0 / 100% 100% 0 0; }
.scn-gibraltar-search .fruit-stand { position: absolute; bottom: 30%; left: 50%; width: 70px; height: 40px; background: linear-gradient(180deg, #a0522d 0%, #8b4513 100%); border-radius: 10px; box-shadow: 0 4px 8px rgba(0,0,0,0.3); }
.scn-gibraltar-search .figure { position: absolute; bottom: 28%; left: 45%; width: 20px; height: 40px; background: linear-gradient(180deg, #5c3a1e 0%, #3a2210 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: gis-walk 4s ease-in-out infinite; }
.scn-gibraltar-search .sister { position: absolute; bottom: 28%; left: 55%; width: 18px; height: 36px; background: linear-gradient(180deg, #c8553d 0%, #8b3020 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: gis-walk 5s ease-in-out infinite reverse; }
.scn-gibraltar-search .shadow { position: absolute; bottom: 22%; left: 42%; width: 80px; height: 20px; background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 70%); border-radius: 50%; animation: gis-shadow 4s ease-in-out infinite; }

@keyframes gis-sky { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes gis-sun { 0% { transform: scale(0.95) } 50% { transform: scale(1.05) } 100% { transform: scale(0.95) } }
@keyframes gis-walk { 0% { transform: translateX(0) } 50% { transform: translateX(20px) } 100% { transform: translateX(0) } }
@keyframes gis-shadow { 0% { transform: scale(1) } 50% { transform: scale(1.1) } 100% { transform: scale(1) } }

/* dick-death scene */
.scn-dick-death {
  background: linear-gradient(180deg, #b0c4de 0%, #8fa0b0 30%, #6b7b8b 60%, #2c3e50 100%);
  position: relative; overflow: hidden;
}
.scn-dick-death .sky { position: absolute; inset: 0 0 45% 0; background: linear-gradient(180deg, #d4e6f1 0%, #8fa0b0 60%, transparent); animation: did-sky 12s ease-in-out infinite alternate; }
.scn-dick-death .deck { position: absolute; bottom: 30%; left: 0; right: 0; height: 20%; background: linear-gradient(180deg, #5c4033 0%, #3e2723 100%); border-radius: 5% 5% 0 0; }
.scn-dick-death .chest { position: absolute; bottom: 32%; left: 40%; width: 50px; height: 30px; background: linear-gradient(180deg, #4e342e 0%, #3e2723 100%); border: 3px solid #795548; border-radius: 5px; box-shadow: 0 2px 6px rgba(0,0,0,0.5); animation: did-chest 8s ease-in-out infinite; }
.scn-dick-death .sailor { position: absolute; bottom: 28%; left: 50%; width: 22px; height: 40px; background: linear-gradient(180deg, #1a237e 0%, #0d1b3e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-10deg); animation: did-sailor 4s ease-in-out infinite; }
.scn-dick-death .flag { position: absolute; top: 8%; left: 45%; width: 40px; height: 25px; background: linear-gradient(180deg, #1a237e 0%, #0d1b3e 100%); }
.scn-dick-death .halyard { position: absolute; top: 5%; left: 48%; width: 2px; height: 60px; background: #5d4037; }
.scn-dick-death .gull { position: absolute; top: 15%; left: 20%; width: 30px; height: 10px; background: radial-gradient(ellipse at 30% 50%, #f5f5f5 0%, #bdbdbd 100%); border-radius: 50%; animation: did-gull 15s linear infinite; }

@keyframes did-sky { 0% { opacity: 0.7 } 50% { opacity: 0.9 } 100% { opacity: 0.6 } }
@keyframes did-chest { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes did-sailor { 0% { transform: rotate(-10deg) } 50% { transform: rotate(0deg) } 100% { transform: rotate(-10deg) } }
@keyframes did-gull { 0% { transform: translateX(0) } 100% { transform: translateX(200px) } }

/* gibraltar-punishments scene */
.scn-gibraltar-punishments {
  background: linear-gradient(180deg, #b0c4de 0%, #7f8c8d 30%, #5d6d7e 60%, #2c3e50 100%);
  position: relative; overflow: hidden;
}
.scn-gibraltar-punishments .sky { position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #d4e6f1 0%, #aab7c4 60%, transparent); animation: gip-sky 10s ease-in-out infinite alternate; }
.scn-gibraltar-punishments .fortress { position: absolute; bottom: 20%; left: 0; right: 0; height: 50%; background: linear-gradient(180deg, #a0522d 0%, #7b3f00 50%, #3e2723 100%); }
.scn-gibraltar-punishments .grating { position: absolute; bottom: 30%; left: 20%; width: 60px; height: 40px; background: linear-gradient(180deg, #5d4037 0%, #3e2723 100%); border: 2px solid #795548; border-radius: 5px; }
.scn-gibraltar-punishments .hanged { position: absolute; bottom: 38%; left: 25%; width: 20px; height: 30px; background: linear-gradient(180deg, #2c3e50 0%, #1a252f 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(180deg); animation: gip-hanged 3s ease-in-out infinite; }
.scn-gibraltar-punishments .sailor { position: absolute; bottom: 25%; left: 50%; width: 22px; height: 40px; background: linear-gradient(180deg, #1a237e 0%, #0d1b3e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; }
.scn-gibraltar-punishments .yardarm { position: absolute; bottom: 40%; left: 40%; width: 80px; height: 4px; background: #5d4037; }
.scn-gibraltar-punishments .flag { position: absolute; top: 8%; left: 45%; width: 40px; height: 20px; background: linear-gradient(180deg, #c0392b 0%, #a93226 100%); } /* muted red */

@keyframes gip-sky { 0% { opacity: 0.6 } 50% { opacity: 0.8 } 100% { opacity: 0.5 } }
@keyframes gip-hanged { 0% { transform: rotate(180deg) } 50% { transform: rotate(175deg) } 100% { transform: rotate(180deg) } }

.scn-emanuel-sankey {
  background: linear-gradient(180deg, #4a6a8a 0%, #7a9aba 40%, #b0c8d8 100%), radial-gradient(ellipse at 30% 60%, #c8a060 0%, transparent 70%);
}
.scn-emanuel-sankey .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #6a8aaa 0%, #a0c0d0 100%); animation: es-sky 15s ease-in-out infinite alternate; }
.scn-emanuel-sankey .sunrays { position:absolute; top:10%; left:20%; width:200%; height:60%; background: linear-gradient(135deg, rgba(200,160,80,0.4) 0%, transparent 50%, rgba(200,160,80,0.2) 100%); transform-origin: left top; animation: es-rays 8s ease-in-out infinite; }
.scn-emanuel-sankey .deck { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(0deg, #5a3a2a 0%, #7a5a3a 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,0.5); }
.scn-emanuel-sankey .mast { position:absolute; bottom:40%; left:50%; width:8px; height:60%; background: linear-gradient(90deg, #3a2a1a, #5a3a2a, #3a2a1a); transform: translateX(-50%); border-radius: 2px; }
.scn-emanuel-sankey .sail { position:absolute; bottom:70%; left:45%; width:80px; height:50px; background: linear-gradient(135deg, #c8b8a0 0%, #a09080 100%); clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 80%); transform: rotate(10deg); animation: es-sail 12s ease-in-out infinite; }
.scn-emanuel-sankey .barrel { position:absolute; bottom:15%; left:35%; width:30px; height:40px; background: linear-gradient(135deg, #7a5a3a, #4a2a1a); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: inset 0 -5px 10px rgba(0,0,0,0.6); }
.scn-emanuel-sankey .figure { position:absolute; bottom:18%; left:36%; width:16px; height:30px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: es-figure 6s ease-in-out infinite; }
.scn-emanuel-sankey .shadow { position:absolute; bottom:14%; left:35%; width:40px; height:8px; background: rgba(0,0,0,0.4); border-radius: 50%; filter: blur(4px); animation: es-shadow 6s ease-in-out infinite; }

@keyframes es-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes es-rays { 0% { transform: rotate(-5deg) } 50% { transform: rotate(3deg) } 100% { transform: rotate(-5deg) } }
@keyframes es-sail { 0%,100% { transform: rotate(10deg) translateX(0) } 50% { transform: rotate(14deg) translateX(2px) } }
@keyframes es-figure { 0% { transform: translateX(0) rotate(-2deg) } 30% { transform: translateX(4px) rotate(1deg) } 60% { transform: translateX(8px) rotate(-1deg) } 100% { transform: translateX(12px) rotate(0) } }
@keyframes es-shadow { 0% { transform: translateX(0) scaleX(1) } 50% { transform: translateX(4px) scaleX(0.9) } 100% { transform: translateX(8px) scaleX(1) } }

.scn-sealing-wax-torture {
  background: linear-gradient(180deg, #1a1a1a 0%, #3a2a1a 50%, #4a3a2a 100%), radial-gradient(ellipse at 50% 20%, #a06020 0%, transparent 60%);
}
.scn-sealing-wax-torture .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #2a1a1a, #3a2a1a); }
.scn-sealing-wax-torture .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(0deg, #1a0a0a, #2a1a1a); }
.scn-sealing-wax-torture .table { position:absolute; bottom:20%; left:20%; width:60%; height:8%; background: linear-gradient(135deg, #5a3a2a, #3a2a1a); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.7); }
.scn-sealing-wax-torture .victim { position:absolute; bottom:20%; left:30%; width:20px; height:40px; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform: rotate(-10deg); transform-origin: bottom center; animation: sw-victim 5s ease-in-out infinite; }
.scn-sealing-wax-torture .master { position:absolute; bottom:25%; left:55%; width:22px; height:50px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%); border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%; }
.scn-sealing-wax-torture .candle { position:absolute; bottom:40%; left:60%; width:10px; height:30px; background: linear-gradient(180deg, #c8a080, #8a6040); border-radius: 2px; box-shadow: 0 0 20px 4px rgba(200,160,80,0.6); animation: sw-candle 4s ease-in-out infinite alternate; }
.scn-sealing-wax-torture .drip1 { position:absolute; bottom:38%; left:58%; width:6px; height:6px; background: #a06020; border-radius: 50%; box-shadow: 0 0 8px 2px rgba(160,96,32,0.5); animation: sw-drip1 2s ease-in-out infinite; }
.scn-sealing-wax-torture .drip2 { position:absolute; bottom:35%; left:62%; width:4px; height:4px; background: #a06020; border-radius: 50%; box-shadow: 0 0 6px 2px rgba(160,96,32,0.5); animation: sw-drip2 3s ease-in-out infinite 0.5s; }

@keyframes sw-victim { 0%,100% { transform: rotate(-10deg) translateY(0) } 50% { transform: rotate(-8deg) translateY(-2px) } }
@keyframes sw-candle { 0% { opacity:0.9; transform: scaleY(1) } 50% { opacity:1; transform: scaleY(1.02) } 100% { opacity:0.9; transform: scaleY(1) } }
@keyframes sw-drip1 { 0% { transform: translateY(0) } 50% { transform: translateY(10px) } 100% { transform: translateY(0) } }
@keyframes sw-drip2 { 0% { transform: translateY(0) } 50% { transform: translateY(15px) } 100% { transform: translateY(0) } }

.scn-wooden-box-torture {
  background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 50%, #1a1a2a 100%), radial-gradient(ellipse at 50% 50%, #4a4a5a 0%, transparent 80%);
}
.scn-wooden-box-torture .room { position:absolute; inset:0; background: linear-gradient(180deg, #1a1a2a, #0a0a1a); }
.scn-wooden-box-torture .box { position:absolute; bottom:10%; left:20%; width:60%; height:40%; background: linear-gradient(135deg, #3a2a1a, #2a1a0a); border-radius: 2% 2% 0 0; box-shadow: inset 0 5px 15px rgba(0,0,0,0.8), 0 8px 20px rgba(0,0,0,0.6); }
.scn-wooden-box-torture .lid { position:absolute; bottom:45%; left:20%; width:60%; height:5%; background: linear-gradient(90deg, #4a3a2a, #5a4a3a); transform-origin: left; animation: wb-lid 10s ease-in-out infinite; }
.scn-wooden-box-torture .figure { position:absolute; bottom:15%; left:35%; width:18px; height:40px; background: linear-gradient(180deg, #3a2a1a, #1a0a0a); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform: rotate(15deg); transform-origin: bottom center; animation: wb-figure 6s ease-in-out infinite; }
.scn-wooden-box-torture .chain1 { position:absolute; bottom:20%; left:25%; width:2px; height:30px; background: #6a6a6a; border-radius: 1px; box-shadow: 0 0 4px #6a6a6a; animation: wb-chain1 4s ease-in-out infinite; }
.scn-wooden-box-torture .chain2 { position:absolute; bottom:20%; right:30%; width:2px; height:25px; background: #6a6a6a; border-radius: 1px; box-shadow: 0 0 4px #6a6a6a; animation: wb-chain2 5s ease-in-out infinite 1s; }
.scn-wooden-box-torture .light { position:absolute; top:10%; left:45%; width:30px; height:30px; background: radial-gradient(circle, rgba(180,160,100,0.3), transparent); animation: wb-light 8s ease-in-out infinite alternate; }

@keyframes wb-lid { 0%,100% { transform: rotate(0deg) } 50% { transform: rotate(30deg) } }
@keyframes wb-figure { 0% { transform: rotate(15deg) translateX(0) } 50% { transform: rotate(10deg) translateX(5px) } 100% { transform: rotate(15deg) translateX(0) } }
@keyframes wb-chain1 { 0%,100% { transform: translateY(0) } 50% { transform: translateY(5px) } }
@keyframes wb-chain2 { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-4px) } }
@keyframes wb-light { 0% { opacity:0.3 } 50% { opacity:0.6 } 100% { opacity:0.4 } }

.scn-branding-and-iron {
  background: linear-gradient(180deg, #1a0a0a 0%, #2a1a0a 50%, #1a0a0a 100%), radial-gradient(ellipse at 50% 30%, #600000 0%, transparent 60%);
}
.scn-branding-and-iron .bg { position:absolute; inset:0; background: linear-gradient(180deg, #1a0a0a, #2a1a0a); }
.scn-branding-and-iron .anvil { position:absolute; bottom:15%; left:30%; width:80px; height:40px; background: linear-gradient(135deg, #4a4a4a, #2a2a2a); border-radius: 20% 20% 0 0; box-shadow: 0 6px 12px rgba(0,0,0,0.8); }
.scn-branding-and-iron .iron { position:absolute; bottom:45%; left:35%; width:10px; height:30px; background: linear-gradient(180deg, #ff4020, #a02010); border-radius: 2px; box-shadow: 0 0 20px 6px rgba(255,64,32,0.8); transform-origin: bottom center; animation: bi-iron 4s ease-in-out infinite; }
.scn-branding-and-iron .body { position:absolute; bottom:10%; left:45%; width:24px; height:50px; background: linear-gradient(180deg, #3a2a1a, #1a0a0a); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-5deg); transform-origin: bottom center; }
.scn-branding-and-iron .arm { position:absolute; bottom:25%; left:38%; width:6px; height:20px; background: linear-gradient(180deg, #3a2a1a, #1a0a0a); border-radius: 2px; transform: rotate(30deg); transform-origin: top left; animation: bi-arm 3s ease-in-out infinite; }
.scn-branding-and-iron .glow { position:absolute; bottom:40%; left:30%; width:60px; height:60px; background: radial-gradient(circle, rgba(255,64,32,0.3), transparent); animation: bi-glow 5s ease-in-out infinite alternate; }
.scn-branding-and-iron .sparks { position:absolute; bottom:55%; left:35%; width:40px; height:40px; background: radial-gradient(circle, rgba(255,200,50,0.6) 0%, transparent 70%); border-radius: 50%; animation: bi-sparks 2s ease-in-out infinite; }

@keyframes bi-iron { 0%,100% { transform: rotate(-10deg) scaleY(1) } 50% { transform: rotate(10deg) scaleY(1.05) } }
@keyframes bi-arm { 0%,100% { transform: rotate(30deg) } 50% { transform: rotate(45deg) } }
@keyframes bi-glow { 0% { opacity:0.5 } 50% { opacity:1 } 100% { opacity:0.6 } }
@keyframes bi-sparks { 0%,100% { transform: scale(1) translate(0,0) } 25% { transform: scale(1.2) translate(5px,-5px) } 50% { transform: scale(1) translate(10px,0) } 75% { transform: scale(1.1) translate(5px,5px) } }

/* scene 1: item-book-talking — dim interior, funny */
.scn-item-book-talking {
  background: linear-gradient(180deg, #2b1f1a 0%, #1a1210 40%, #0e0a08 100%),
              radial-gradient(ellipse at 50% 70%, #4a352a 0%, transparent 70%);
}
.scn-item-book-talking .back-wall {
  position: absolute; inset: 0; 
  background: linear-gradient(90deg, #2b1f1a 0%, #3d2b22 50%, #2b1f1a 100%);
  animation: ib-wall 12s ease-in-out infinite alternate;
}
.scn-item-book-talking .candle-glow {
  position: absolute; bottom: 42%; left: 48%; width: 120px; height: 160px;
  background: radial-gradient(circle, rgba(255, 200, 140, 0.4) 0%, rgba(255, 200, 140, 0.1) 50%, transparent 70%);
  filter: blur(8px); animation: ib-glow 3s ease-in-out infinite alternate;
}
.scn-item-book-talking .table {
  position: absolute; bottom: 20%; left: 10%; width: 80%; height: 12%;
  background: linear-gradient(180deg, #5c3a28 0%, #3d261a 100%);
  border-radius: 4px 4px 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,0.6);
  transform: perspective(600px) rotateX(10deg); animation: ib-table 5s ease-in-out infinite;
}
.scn-item-book-talking .book {
  position: absolute; bottom: 34%; left: 38%; width: 60px; height: 44px;
  background: linear-gradient(135deg, #8a6a3a 0%, #6a4a1a 100%);
  border-radius: 2px; box-shadow: 2px 4px 8px rgba(0,0,0,0.5);
  transform: rotate(-5deg); animation: ib-book 4s ease-in-out infinite alternate;
}
.scn-item-book-talking .figure {
  position: absolute; bottom: 28%; left: 44%; width: 24px; height: 48px;
  background: linear-gradient(180deg, #2a1e16 0%, #1c120c 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; 
  transform-origin: bottom center; animation: ib-figure 6s ease-in-out infinite;
}
.scn-item-book-talking .candle {
  position: absolute; bottom: 34%; left: 60%; width: 8px; height: 24px;
  background: linear-gradient(180deg, #f0c060 0%, #c08030 100%);
  border-radius: 4px 4px 0 0; box-shadow: 0 -2px 10px #f0c060;
  animation: ib-candle 2s ease-in-out infinite alternate;
}
.scn-item-book-talking .speech-bubble {
  position: absolute; top: 30%; left: 55%; width: 50px; height: 30px;
  background: rgba(255, 240, 200, 0.25);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  filter: blur(4px); animation: ib-bubble 4s ease-in-out infinite;
}
@keyframes ib-wall { 0% { opacity: 0.7 } 50% { opacity: 0.9 } 100% { opacity: 0.8 } }
@keyframes ib-glow { 0% { opacity: 0.6; transform: scale(0.95) } 50% { opacity: 1; transform: scale(1.05) } 100% { opacity: 0.7; transform: scale(0.98) } }
@keyframes ib-table { 0%,100% { transform: perspective(600px) rotateX(10deg) translateY(0) } 50% { transform: perspective(600px) rotateX(11deg) translateY(-2px) } }
@keyframes ib-book { 0% { transform: rotate(-5deg) translateY(0) } 100% { transform: rotate(5deg) translateY(-3px) } }
@keyframes ib-figure { 0% { transform: translateY(0) rotate(-2deg) } 25% { transform: translateY(-2px) rotate(0deg) } 50% { transform: translateY(0) rotate(3deg) } 75% { transform: translateY(-2px) rotate(0deg) } 100% { transform: translateY(0) rotate(-2deg) } }
@keyframes ib-candle { 0% { opacity: 0.7; transform: scaleY(1) } 100% { opacity: 1; transform: scaleY(1.03) } }
@keyframes ib-bubble { 0%,100% { opacity: 0.15; transform: scale(0.9) } 50% { opacity: 0.4; transform: scale(1.1) } }

/* scene 2: falmouth-daughter — window-lit warm */
.scn-falmouth-daughter {
  background: linear-gradient(180deg, #c8a878 0%, #a08050 40%, #705838 100%),
              radial-gradient(ellipse at 60% 40%, #e0c080 0%, transparent 60%);
}
.scn-falmouth-daughter .wall {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #b89a68 0%, #9a7c4a 100%);
  animation: fd-wall 10s ease-in-out infinite alternate;
}
.scn-falmouth-daughter .window-frame {
  position: absolute; top: 15%; left: 30%; width: 40%; height: 45%;
  border: 12px solid #5a3a1a; border-radius: 8px;
  background: transparent; box-shadow: inset 0 0 20px rgba(0,0,0,0.3);
  animation: fd-frame 15s ease-in-out infinite;
}
.scn-falmouth-daughter .window-light {
  position: absolute; top: 18%; left: 34%; width: 32%; height: 38%;
  background: radial-gradient(ellipse at center, #fae8b0 0%, #e0c080 40%, transparent 70%);
  filter: blur(10px); animation: fd-light 4s ease-in-out infinite alternate;
}
.scn-falmouth-daughter .girl {
  position: absolute; bottom: 23%; left: 38%; width: 18px; height: 28px;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a12 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: fd-girl 6s ease-in-out infinite;
}
.scn-falmouth-daughter .equiano {
  position: absolute; bottom: 20%; left: 50%; width: 22px; height: 42px;
  background: linear-gradient(180deg, #2a1e16 0%, #1c120c 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom; animation: fd-equiano 7s ease-in-out infinite alternate;
}
.scn-falmouth-daughter .table-food {
  position: absolute; bottom: 15%; left: 36%; width: 28%; height: 8%;
  background: linear-gradient(180deg, #7a5a32 0%, #5a3a1a 100%);
  border-radius: 8px; box-shadow: 0 4px 10px rgba(0,0,0,0.4);
  animation: fd-table 8s ease-in-out infinite;
}
.scn-falmouth-daughter .curtain {
  position: absolute; top: 12%; left: 28%; width: 14%; height: 50%;
  background: linear-gradient(90deg, #8a6a42 0%, #a08050 50%, #8a6a42 100%);
  border-radius: 0 0 40% 40% / 0 0 60% 60%;
  filter: drop-shadow(4px 0 6px rgba(0,0,0,0.3));
  animation: fd-curtain 12s ease-in-out infinite alternate;
}
@keyframes fd-wall { 0% { opacity: 0.85 } 100% { opacity: 1 } }
@keyframes fd-frame { 0%,100% { transform: scale(1) } 50% { transform: scale(1.01) } }
@keyframes fd-light { 0% { opacity: 0.6; transform: scale(0.95) } 50% { opacity: 1; transform: scale(1.05) } 100% { opacity: 0.7; transform: scale(0.98) } }
@keyframes fd-girl { 0%,100% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-2px) rotate(2deg) } }
@keyframes fd-equiano { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-1px) rotate(1deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes fd-table { 0%,100% { transform: scale(1) } 50% { transform: scale(1.02) translateY(-1px) } }
@keyframes fd-curtain { 0% { transform: translateX(0) } 100% { transform: translateX(3px) } }

/* scene 3: guernsey-family — window-lit, warm home */
.scn-guernsey-family {
  background: linear-gradient(180deg, #8a6e4a 0%, #6a5232 40%, #4a3622 100%),
              radial-gradient(ellipse at 70% 60%, #b09062 0%, transparent 60%);
}
.scn-guernsey-family .hearth {
  position: absolute; bottom: 12%; left: 10%; width: 30%; height: 20%;
  background: linear-gradient(180deg, #5a3a22 0%, #3a2212 100%);
  border-radius: 40% 40% 12% 12% / 60% 60% 20% 20%;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.5);
  animation: gf-hearth 9s ease-in-out infinite alternate;
}
.scn-guernsey-family .fire {
  position: absolute; bottom: 18%; left: 18%; width: 60px; height: 40px;
  background: radial-gradient(ellipse at 50% 100%, #f08040 0%, #d06020 30%, #b04010 60%, transparent 80%);
  filter: blur(4px); animation: gf-fire 2s ease-in-out infinite alternate;
}
.scn-guernsey-family .family-group {
  position: absolute; bottom: 20%; left: 40%; width: 100px; height: 60px;
  display: flex; gap: 4px;
  /* compose from children via pseudo? Instead use three separate divs, but keep count low. Use one div with multiple silhouettes via gradient? Simpler: use one div for group as a combined shape. */
  background: transparent;
  /* We'll represent group with layered box-shadows for multiple figures (pseudo-elements not allowed). Instead, use child divs inside? We only have 7 top-level. So use .family-group as container, but we cannot nest. So create three figure divs in the HTML. But we need to keep total 5-9. We can add two more figures directly: .parent1, .parent2, .child. Let's adjust HTML: instead of single family-group, use three explicit figure divs. We'll update the JS entry accordingly. But we already defined JS above. We'll change JS to have separate figures. Let's rewrite JS quickly. In CSS block we can define .parent-fig, .child-fig, etc. I'll modify JS now. Better to keep original JSON consistent with CSS. Let's replace .family-group with three separate divs: .parent-a, .parent-b, .child. I'll edit JS entry for guernsey-family. */
}
/* Actually I'll fix JS entry in the answer: replace .family-group with .parent-a .parent-b .child. But I'm writing final answer now. I'll adjust JS below in the CSS block? No, must match. I'll edit the JS block above accordingly. Let's regenerate JS block with correct divs for scene 3. We'll add: .parent-a, .parent-b, .child, .equiano-small, .pot, .chair, .rug -> that's 7. Good. Need to adjust CSS accordingly. I'll rewrite JS and CSS together. */

/* I'll produce corrected JS below in the final answer. For now, continue with CSS for scene 3 using .family-group but then later we change. Let me rewrite the entire answer cleanly. Given constraints, I'll output the corrected version. */

/* Final corrected JS and CSS will be in the answer. */

.scn-verses-intro {
  background:
    radial-gradient(ellipse at 30% 60%, #2a1a0e 0%, #0d0804 70%),
    linear-gradient(180deg, #1a1008 0%, #0f0a04 100%);
}
.scn-verses-intro .wall {
  position:absolute; inset:0 0 40% 0;
  background: linear-gradient(180deg, #2a1a0e 0%, #1a0f06 100%);
  animation: vi1-wall 10s ease-in-out infinite alternate;
}
.scn-verses-intro .floor {
  position:absolute; bottom:0; left:0; right:0; height:40%;
  background: linear-gradient(0deg, #1a0f06 0%, #2a1a0e 50%, #3a2514 100%);
  border-radius: 40% 40% 0 0;
}
.scn-verses-intro .window {
  position:absolute; top:15%; left:20%; width:30%; height:40%;
  background: radial-gradient(ellipse at 50% 30%, #bfa080 0%, #604020 60%, transparent 80%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: inset 0 0 40px #1a0f06;
  animation: vi1-window 8s ease-in-out infinite alternate;
}
.scn-verses-intro .desk {
  position:absolute; bottom:25%; left:40%; width:30%; height:5%;
  background: linear-gradient(180deg, #4a2a18 0%, #2a1a0e 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
}
.scn-verses-intro .figure {
  position:absolute; bottom:30%; left:45%; width:14%; height:30%;
  background: linear-gradient(180deg, #1a0f06 0%, #0d0804 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: vi1-figure 6s ease-in-out infinite;
}
.scn-verses-intro .candle {
  position:absolute; bottom:28%; left:52%; width:3%; height:8%;
  background: linear-gradient(180deg, #a08060 0%, #4a2a18 100%);
  border-radius: 2px;
  animation: vi1-candle 4s ease-in-out infinite alternate;
}
.scn-verses-intro .glow {
  position:absolute; bottom:30%; left:48%; width:10%; height:10%;
  background: radial-gradient(circle, #d4a060 0%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px #b08040, 0 0 60px 20px rgba(176,128,64,0.3);
  animation: vi1-glow 3s ease-in-out infinite alternate;
}

@keyframes vi1-wall { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes vi1-window { 0% { opacity:0.4; transform: scaleX(1) } 50% { opacity:0.6; transform: scaleX(1.05) } 100% { opacity:0.5; transform: scaleX(0.95) } }
@keyframes vi1-figure { 0% { transform: translateX(0) translateY(0) rotate(-1deg) } 33% { transform: translateX(2%) translateY(-2%) rotate(1deg) } 66% { transform: translateX(-1%) translateY(1%) rotate(-0.5deg) } 100% { transform: translateX(0) translateY(0) rotate(0) } }
@keyframes vi1-candle { 0% { height:8%; opacity:0.8 } 50% { height:9%; opacity:1 } 100% { height:7%; opacity:0.7 } }
@keyframes vi1-glow { 0% { opacity:0.7; transform: scale(0.9) } 50% { opacity:1; transform: scale(1.1) } 100% { opacity:0.8; transform: scale(1) } }

.scn-verses-continued {
  background:
    linear-gradient(180deg, #120a06 0%, #1a0f06 40%, #0d0804 100%),
    radial-gradient(ellipse at 50% 80%, #2a1a0e 0%, transparent 70%);
}
.scn-verses-continued .bg-wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #1a0f06 0%, #0f0a04 100%); box-shadow: inset 0 0 40px #0d0804 }
.scn-verses-continued .bg-floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(0deg, #0d0804 0%, #1a0f06 100%); border-radius: 30% 30% 0 0; }
.scn-verses-continued .corridor-left { position:absolute; top:0; bottom:30%; left:0; width:20%; background: linear-gradient(90deg, #0d0804 0%, transparent 100%); }
.scn-verses-continued .corridor-right { position:absolute; top:0; bottom:30%; right:0; width:20%; background: linear-gradient(270deg, #0d0804 0%, transparent 100%); }
.scn-verses-continued .figure-walk {
  position:absolute; bottom:30%; left:40%; width:12%; height:35%;
  background: linear-gradient(180deg, #1a0f06 0%, #0d0804 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  animation: vc1-walk 6s ease-in-out infinite;
}
.scn-verses-continued .chain {
  position:absolute; bottom:45%; left:38%; width:4%; height:15%;
  background: linear-gradient(180deg, #4a3018 0%, #1a1008 100%);
  border-radius: 2px;
  animation: vc1-chain 10s ease-in-out infinite;
}
.scn-verses-continued .lantern {
  position:absolute; bottom:50%; left:42%; width:6%; height:8%;
  background: radial-gradient(circle, #b08040 0%, #4a2a18 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 0 20px 5px #b08040;
  animation: vc1-lantern 4s ease-in-out infinite alternate;
}
.scn-verses-continued .shadow {
  position:absolute; bottom:30%; left:20%; width:40%; height:20%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 100%);
  animation: vc1-shadow 8s ease-in-out infinite alternate;
}

@keyframes vc1-walk { 0% { transform: translateX(0) translateY(0) rotate(-1deg) } 25% { transform: translateX(5%) translateY(-2%) rotate(1deg) } 50% { transform: translateX(10%) translateY(0) rotate(-1deg) } 75% { transform: translateX(15%) translateY(-1%) rotate(1deg) } 100% { transform: translateX(20%) translateY(0) rotate(0) } }
@keyframes vc1-chain { 0%,100% { transform: rotate(0deg) } 50% { transform: rotate(10deg) } }
@keyframes vc1-lantern { 0% { opacity:0.7; transform: scale(0.9) } 50% { opacity:1; transform: scale(1.1) } 100% { opacity:0.8; transform: scale(1) } }
@keyframes vc1-shadow { 0% { opacity:0.6; transform: scaleX(1) } 50% { opacity:0.8; transform: scaleX(1.2) } 100% { opacity:0.5; transform: scaleX(0.9) } }

.scn-verses-continued-2 {
  background:
    radial-gradient(ellipse at 50% 70%, #1a0f06 0%, #0d0804 70%),
    linear-gradient(180deg, #0f0a04 0%, #1a1008 100%);
}
.scn-verses-continued-2 .chamber { position:absolute; inset:0; background: linear-gradient(180deg, #0f0a04 0%, #1a0f06 100%); }
.scn-verses-continued-2 .stone-floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(0deg, #120a06 0%, #1a0f06 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 8px 12px rgba(0,0,0,0.5); }
.scn-verses-continued-2 .kneeling-figure {
  position:absolute; bottom:25%; left:45%; width:10%; height:35%;
  background: linear-gradient(180deg, #1a0f06 0%, #0d0804 100%);
  border-radius: 50% 50% 30% 30% / 60% 50% 40% 50%;
  animation: vc2-kneel 12s ease-in-out infinite;
}
.scn-verses-continued-2 .cross-shadow {
  position:absolute; top:10%; left:46%; width:8%; height:50%;
  background: linear-gradient(180deg, rgba(50,40,30,0.6) 0%, transparent 100%);
  border-radius: 5%;
  transform: rotate(2deg);
  animation: vc2-cross 15s ease-in-out infinite alternate;
}
.scn-verses-continued-2 .light-beam {
  position:absolute; top:0; left:40%; width:20%; height:60%;
  background: linear-gradient(180deg, rgba(200,170,130,0.2) 0%, transparent 100%);
  filter: blur(8px);
  animation: vc2-beam 8s ease-in-out infinite;
}
.scn-verses-continued-2 .dust {
  position:absolute; top:30%; left:35%; width:30%; height:20%;
  background: radial-gradient(circle, rgba(180,160,120,0.15) 0%, transparent 100%);
  filter: blur(4px);
  animation: vc2-dust 20s ease-in-out infinite;
}

@keyframes vc2-kneel { 0% { transform: translateY(0) rotate(-2deg) } 33% { transform: translateY(-3%) rotate(1deg) } 66% { transform: translateY(-1%) rotate(-1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes vc2-cross { 0% { opacity:0.3; transform: rotate(0deg) scaleY(1) } 50% { opacity:0.6; transform: rotate(3deg) scaleY(1.05) } 100% { opacity:0.4; transform: rotate(-1deg) scaleY(0.95) } }
@keyframes vc2-beam { 0% { opacity:0.2; transform: scaleX(1) } 50% { opacity:0.4; transform: scaleX(1.2) translateY(-5%) } 100% { opacity:0.3; transform: scaleX(0.9) } }
@keyframes vc2-dust { 0% { opacity:0.1; transform: scale(1) } 50% { opacity:0.3; transform: scale(1.2) translateX(5%) } 100% { opacity:0.15; transform: scale(0.8) } }

.scn-verses-continued-3 {
  background:
    linear-gradient(180deg, #0d0804 0%, #1a0f06 50%, #120a06 100%),
    radial-gradient(ellipse at 50% 30%, #2a1a0e 0%, transparent 60%);
}
.scn-verses-continued-3 .void { position:absolute; inset:0; background: linear-gradient(180deg, #0d0804 0%, #1a0f06 100%); }
.scn-verses-continued-3 .figure-tormented {
  position:absolute; bottom:20%; left:45%; width:12%; height:40%;
  background: linear-gradient(180deg, #1a0f06 0%, #0d0804 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  animation: vc3-figure 5s ease-in-out infinite;
}
.scn-verses-continued-3 .tendril-1 {
  position:absolute; bottom:30%; left:35%; width:20%; height:8%;
  background: linear-gradient(90deg, transparent 0%, rgba(40,30,20,0.3) 100%);
  border-radius: 50%;
  filter: blur(3px);
  animation: vc3-tend1 12s ease-in-out infinite;
}
.scn-verses-continued-3 .tendril-2 {
  position:absolute; bottom:40%; right:30%; width:25%; height:10%;
  background: linear-gradient(270deg, transparent 0%, rgba(50,40,30,0.2) 100%);
  border-radius: 50%;
  filter: blur(4px);
  animation: vc3-tend2 15s ease-in-out infinite reverse;
}
.scn-verses-continued-3 .tendril-3 {
  position:absolute; bottom:50%; left:20%; width:15%; height:6%;
  background: linear-gradient(90deg, transparent 0%, rgba(60,50,40,0.25) 100%);
  border-radius: 50%;
  filter: blur(2px);
  animation: vc3-tend3 18s ease-in-out infinite alternate;
}
.scn-verses-continued-3 .eye-glow {
  position:absolute; top:30%; left:45%; width:4%; height:4%;
  background: radial-gradient(circle, #d4a060 0%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px #b08040;
  animation: vc3-eye 3s ease-in-out infinite alternate;
}

@keyframes vc3-figure { 0% { transform: translateX(0) translateY(0) rotate(-2deg) scale(1) } 25% { transform: translateX(3%) translateY(-2%) rotate(1deg) scale(1.02) } 50% { transform: translateX(-2%) translateY(1%) rotate(-1deg) scale(0.98) } 75% { transform: translateX(4%) translateY(-1%) rotate(2deg) scale(1.01) } 100% { transform: translateX(0) translateY(0) rotate(0) scale(1) } }
@keyframes vc3-tend1 { 0% { transform: translateX(0) rotate(0deg); opacity:0.5 } 33% { transform: translateX(-10%) rotate(10deg); opacity:0.8 } 66% { transform: translateX(5%) rotate(-5deg); opacity:0.6 } 100% { transform: translateX(0) rotate(0); opacity:0.5 } }
@keyframes vc3-tend2 { 0% { transform: translateX(0) rotate(0); opacity:0.4 } 50% { transform: translateX(10%) rotate(-15deg); opacity:0.7 } 100% { transform: translateX(-5%) rotate(5deg); opacity:0.4 } }
@keyframes vc3-tend3 { 0% { transform: scale(0.8); opacity:0.3 } 50% { transform: scale(1.3); opacity:0.6 } 100% { transform: scale(0.9); opacity:0.3 } }
@keyframes vc3-eye { 0% { opacity:0.5; transform: scale(1) } 50% { opacity:1; transform: scale(1.5) } 100% { opacity:0.7; transform: scale(0.8) } }

.scn-memorial-treasury {
  background: linear-gradient(180deg, #2a1f1a 0%, #3a2a22 30%, #1a1512 80%), radial-gradient(ellipse at 50% 10%, #4a3a30 0%, transparent 70%);
}
.scn-memorial-treasury .wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(135deg, #4a3a2e 0%, #2a2018 100%); border-radius:0 0 40% 40%/0 0 20% 20%; box-shadow: inset 0 12px 30px rgba(0,0,0,.6); }
.scn-memorial-treasury .desk { position:absolute; bottom:8%; left:20%; right:20%; height:30%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:2% 2% 10% 10%; box-shadow: 0 -8px 16px rgba(0,0,0,.4); }
.scn-memorial-treasury .paper { position:absolute; bottom:28%; left:35%; width:20%; height:14%; background: linear-gradient(135deg, #d4c8b8 0%, #b8a890 60%, #9a8a78 100%); border-radius:2%; box-shadow: 0 4px 8px rgba(0,0,0,.5); transform: rotate(-3deg); }
.scn-memorial-treasury .inkwell { position:absolute; bottom:37%; left:62%; width:8%; height:6%; background: radial-gradient(ellipse at 50% 40%, #6a5a4a 0%, #3a2a1a 100%); border-radius:50% 50% 40% 40%; box-shadow: 0 4px 8px rgba(0,0,0,.5); }
.scn-memorial-treasury .quill { position:absolute; bottom:39%; left:55%; width:4%; height:20%; background: linear-gradient(180deg, #b8a890 0%, #8a7a6a 50%, #5a4a3a 100%); border-radius:50% 50% 10% 10%; transform: rotate(20deg); transform-origin: bottom center; animation: mt-quill 6s ease-in-out infinite alternate; }
.scn-memorial-treasury .figure { position:absolute; bottom:15%; left:30%; width:12%; height:35%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:50% 50% 40% 40%/60% 60% 40% 40%; box-shadow: 0 4px 8px rgba(0,0,0,.6); animation: mt-figure 12s ease-in-out infinite; }
.scn-memorial-treasury .candle { position:absolute; bottom:42%; left:72%; width:3%; height:8%; background: linear-gradient(180deg, #e8d8c8 0%, #c0a890 100%); border-radius:10% 10% 50% 50%; box-shadow: 0 -8px 16px rgba(200,180,160,.3); }
.scn-memorial-treasury .window { position:absolute; top:10%; right:8%; width:25%; height:40%; background: linear-gradient(180deg, #4a5a6a 0%, #2a3a4a 100%); border-radius:4% 4% 10% 10%; box-shadow: inset 0 0 30px rgba(100,120,140,.5); }
.scn-memorial-treasury .moonlight { position:absolute; top:5%; left:5%; right:5%; height:60%; background: linear-gradient(135deg, rgba(180,200,220,.15) 0%, transparent 60%); filter: blur(20px); animation: mt-moon 20s ease-in-out infinite alternate; }
@keyframes mt-quill { 0% { transform: rotate(15deg) translateY(0); } 50% { transform: rotate(25deg) translateY(-4px); } 100% { transform: rotate(15deg) translateY(0); } }
@keyframes mt-figure { 0%,100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-6px) rotate(-2deg); } }
@keyframes mt-moon { 0% { opacity:.4; } 50% { opacity:.7; } 100% { opacity:.3; } }

.scn-petition-granted {
  background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 40%, #3a3a4a 80%), radial-gradient(ellipse at 50% 20%, #4a4a5a 0%, transparent 70%);
}
.scn-petition-granted .table { position:absolute; bottom:5%; left:10%; right:10%; height:25%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:4% 4% 20% 20%; box-shadow: 0 -8px 16px rgba(0,0,0,.5); }
.scn-petition-granted .purse { position:absolute; bottom:20%; left:45%; width:12%; height:10%; background: linear-gradient(135deg, #8a7a5a 0%, #5a4a3a 100%); border-radius:30% 30% 40% 40%; box-shadow: 0 4px 8px rgba(0,0,0,.6); transform: rotate(5deg); animation: pg-purse 8s ease-in-out infinite; }
.scn-petition-granted .coin-1 { position:absolute; bottom:18%; left:48%; width:4%; height:4%; background: radial-gradient(circle, #c8a860 0%, #a08040 100%); border-radius:50%; box-shadow: 0 2px 4px rgba(0,0,0,.4); animation: pg-coin1 6s ease-in-out infinite; }
.scn-petition-granted .coin-2 { position:absolute; bottom:22%; left:52%; width:4%; height:4%; background: radial-gradient(circle, #b8a050 0%, #907030 100%); border-radius:50%; box-shadow: 0 2px 4px rgba(0,0,0,.4); animation: pg-coin2 7s ease-in-out infinite alternate; }
.scn-petition-granted .hand { position:absolute; bottom:20%; left:35%; width:10%; height:18%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:40% 40% 20% 20%; transform: rotate(-10deg); transform-origin: bottom center; animation: pg-hand 10s ease-in-out infinite; }
.scn-petition-granted .seal { position:absolute; bottom:28%; right:35%; width:6%; height:5%; background: radial-gradient(circle, #c04040 0%, #802020 100%); border-radius:50%; box-shadow: 0 0 12px rgba(192,64,64,.4); } /* desaturated red, not crimson */
.scn-petition-granted .shadow { position:absolute; inset:0; background: linear-gradient(180deg, rgba(0,0,0,.6) 0%, transparent 50%); pointer-events:none; animation: pg-shadow 15s ease-in-out infinite; }
@keyframes pg-purse { 0%,100% { transform: translateY(0) rotate(5deg); } 50% { transform: translateY(-4px) rotate(8deg); } }
@keyframes pg-coin1 { 0%,100% { transform: translateY(0) scale(1); } 50% { transform: translateY(-6px) scale(1.1); } }
@keyframes pg-coin2 { 0% { transform: translateY(0) rotate(0); } 100% { transform: translateY(-3px) rotate(360deg); } }
@keyframes pg-hand { 0%,100% { transform: rotate(-10deg) translateX(0); } 50% { transform: rotate(-15deg) translateX(8px); } }
@keyframes pg-shadow { 0% { opacity:.5; } 50% { opacity:.3; } 100% { opacity:.6; } }

.scn-petition-queen {
  background: linear-gradient(180deg, #2a1a12 0%, #3a2a1a 30%, #1a0e08 70%), radial-gradient(ellipse at 30% 50%, #6a4a2a 0%, transparent 60%);
}
.scn-petition-queen .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%); border-radius:30% 70% 0 0/60% 40% 0 0; }
.scn-petition-queen .throne { position:absolute; bottom:20%; left:55%; width:20%; height:50%; background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%); border-radius:30% 30% 10% 10%; box-shadow: 0 8px 16px rgba(0,0,0,.6); }
.scn-petition-queen .queen-shadow { position:absolute; bottom:30%; left:58%; width:14%; height:25%; background: #1a0e08; border-radius:50% 50% 40% 40%/70% 70% 30% 30%; filter: blur(4px); }
.scn-petition-queen .petition { position:absolute; bottom:28%; left:40%; width:12%; height:6%; background: linear-gradient(135deg, #e8d8c0 0%, #c8b8a0 100%); border-radius:2%; transform: rotate(-5deg); box-shadow: 0 2px 4px rgba(0,0,0,.4); }
.scn-petition-queen .kneeling-figure { position:absolute; bottom:14%; left:38%; width:10%; height:28%; background: linear-gradient(180deg, #2a1a12 0%, #0a0604 100%); border-radius:50% 50% 30% 30%/60% 60% 30% 30%; transform-origin: bottom center; animation: pq-kneel 8s ease-in-out infinite; }
.scn-petition-queen .fire-glow { position:absolute; bottom:15%; left:15%; width:20%; height:30%; background: radial-gradient(ellipse at 50% 100%, rgba(255,180,80,.6) 0%, rgba(255,120,40,.2) 50%, transparent 80%); filter: blur(30px); animation: pq-fire 5s ease-in-out infinite alternate; }
.scn-petition-queen .chandelier { position:absolute; top:5%; left:35%; right:35%; height:12%; background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%); clip-path: polygon(40% 0, 60% 0, 100% 100%, 0 100%); box-shadow: 0 4px 8px rgba(0,0,0,.3); }
@keyframes pq-kneel { 0%,100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-4px) rotate(2deg); } }
@keyframes pq-fire { 0% { opacity:.6; transform: scale(1); } 50% { opacity:.8; transform: scale(1.05); } 100% { opacity:.5; transform: scale(.95); } }

.scn-commerce-argument {
  background: linear-gradient(180deg, #c8d8e0 0%, #a0b8c8 30%, #8090a0 70%), radial-gradient(ellipse at 60% 20%, #f8f0d0 0%, transparent 50%);
}
.scn-commerce-argument .sunbeam { position:absolute; top:0; left:20%; width:4%; height:100%; background: linear-gradient(180deg, rgba(255,255,200,.4) 0%, rgba(255,255,200,.1) 100%); transform: skewX(-10deg); filter: blur(8px); animation: ca-sunbeam 12s ease-in-out infinite alternate; }
.scn-commerce-argument .table { position:absolute; bottom:5%; left:5%; right:5%; height:25%; background: linear-gradient(180deg, #a09080 0%, #706050 100%); border-radius:2% 2% 10% 10%; box-shadow: 0 -4px 8px rgba(0,0,0,.2); }
.scn-commerce-argument .map { position:absolute; bottom:15%; left:15%; right:15%; height:20%; background: linear-gradient(135deg, #d8c8a0 0%, #b0a080 40%, #908060 100%); border-radius:2%; transform: rotate(2deg); box-shadow: 0 4px 8px rgba(0,0,0,.3); }
.scn-commerce-argument .quill { position:absolute; bottom:28%; left:22%; width:3%; height:18%; background: linear-gradient(180deg, #e8d8c8 0%, #a09080 100%); border-radius:50% 50% 10% 10%; transform: rotate(15deg); transform-origin: bottom center; animation: ca-quill 4s ease-in-out infinite alternate; }
.scn-commerce-argument .inkwell { position:absolute; bottom:25%; left:30%; width:6%; height:5%; background: radial-gradient(ellipse at 50% 40%, #5a4a3a 0%, #2a1a0a 100%); border-radius:50% 50% 40% 40%; }
.scn-commerce-argument .compass { position:absolute; bottom:18%; right:22%; width:8%; height:8%; background: radial-gradient(circle, #e8d8c0 0%, #a09080 60%); border-radius:50%; border: 2px solid #706050; box-shadow: 0 2px 4px rgba(0,0,0,.3); animation: ca-compass 30s linear infinite; }
.scn-commerce-argument .sail-ship { position:absolute; bottom:5%; left:60%; width:25%; height:12%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius:40% 40% 10% 10%; transform: rotate(5deg); animation: ca-ship 20s ease-in-out infinite; }
.scn-commerce-argument .wave { position:absolute; bottom:3%; left:0; right:0; height:8%; background: linear-gradient(180deg, #4a6a7a 0%, #2a4a5a 100%); border-radius:60% 40% 0 0; animation: ca-wave 8s ease-in-out infinite; }
@keyframes ca-sunbeam { 0% { opacity:.3; transform: translateX(-10px) skewX(-10deg); } 50% { opacity:.6; transform: translateX(10px) skewX(-10deg); } 100% { opacity:.4; transform: translateX(0) skewX(-10deg); } }
@keyframes ca-quill { 0% { transform: rotate(10deg) translateY(0); } 50% { transform: rotate(20deg) translateY(-4px); } 100% { transform: rotate(10deg) translateY(0); } }
@keyframes ca-compass { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }
@keyframes ca-ship { 0%,100% { transform: translateX(0) rotate(5deg); } 50% { transform: translateX(10px) rotate(8deg); } }
@keyframes ca-wave { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }

.scn-inquisition-fear { background: linear-gradient(180deg, #f0d8b0 0%, #d4b080 40%, #b8926a 100%), radial-gradient(ellipse at 50% 30%, #ffecb0 0%, transparent 60%); }
.scn-inquisition-fear .sunbeam { position:absolute; top:0; left:35%; width:30%; height:100%; background: linear-gradient(180deg, rgba(255,230,150,0.2) 0%, rgba(255,230,150,0) 100%); clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%); animation: if-beam 6s ease-in-out infinite alternate; }
.scn-inquisition-fear .wall   { position:absolute; top:0; left:0; right:0; bottom:30%; background: linear-gradient(180deg, #c9a87a 0%, #a5835a 100%); border-radius:0 0 10% 10%/0 0 20% 20%; }
.scn-inquisition-fear .table  { position:absolute; bottom:20%; left:25%; width:50%; height:8%; background: linear-gradient(180deg, #8c6a4a 0%, #5a3e2a 100%); border-radius:4px; box-shadow:0 4px 8px rgba(0,0,0,0.4); }
.scn-inquisition-fear .bible  { position:absolute; bottom:25%; left:42%; width:6%; height:8%; background: #6a3a2a; border-radius:2px; transform:rotate(-5deg); box-shadow:1px 2px 4px rgba(0,0,0,0.5); animation: if-bible 8s ease-in-out infinite; }
.scn-inquisition-fear .chain  { position:absolute; bottom:18%; left:28%; width:44%; height:2px; background: repeating-linear-gradient(90deg, #5a4a3a 0px, #5a4a3a 6px, transparent 6px, transparent 10px); top:auto; }
.scn-inquisition-fear .figure-silhouette { position:absolute; bottom:15%; left:48%; width:12%; height:40%; background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%); border-radius:40% 40% 30% 30%/60% 60% 30% 30%; transform:translateX(-50%); animation: if-figure 4s ease-in-out infinite; }
.scn-inquisition-fear .dust   { position:absolute; top:10%; left:20%; width:10px; height:10px; background:rgba(255,220,150,0.3); border-radius:50%; filter:blur(2px); animation: if-dust 12s linear infinite; }
@keyframes if-beam   {0%{opacity:0.4;transform:skewX(-2deg)}50%{opacity:0.8;transform:skewX(1deg)}100%{opacity:0.5;transform:skewX(-1deg)}}
@keyframes if-bible  {0%{transform:rotate(-5deg) translateY(0)}50%{transform:rotate(-3deg) translateY(-2px)}100%{transform:rotate(-5deg) translateY(0)}}
@keyframes if-figure {0%{transform:translateX(-50%) rotate(0deg)}25%{transform:translateX(-48%) rotate(2deg)}75%{transform:translateX(-52%) rotate(-2deg)}100%{transform:translateX(-50%) rotate(0deg)}}
@keyframes if-dust   {0%{transform:translate(0,0);opacity:0.2}50%{transform:translate(30px,-20px);opacity:0.6}100%{transform:translate(60px,-40px);opacity:0}}

.scn-genoa-arrival { background: linear-gradient(180deg, #b0d8f0 0%, #7ab8d4 50%, #4a90b8 100%), radial-gradient(ellipse at 20% 100%, #f0e0b0 0%, transparent 50%); }
.scn-genoa-arrival .sky   { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #c0e4ff 0%, #a0cce0 100%); animation: ga-sky 30s ease-in-out infinite alternate; }
.scn-genoa-arrival .sea   { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #2a6a8a 0%, #1a4a6a 100%); animation: ga-sea 15s ease-in-out infinite; }
.scn-genoa-arrival .city-hills { position:absolute; bottom:35%; left:5%; right:5%; height:20%; background: linear-gradient(180deg, #b0986a 0%, #8a7a5a 100%); border-radius:30% 40% 0 0; animation: ga-hills 20s ease-in-out infinite alternate; }
.scn-genoa-arrival .ship  { position:absolute; bottom:30%; left:20%; width:15%; height:12%; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius:0 0 20% 20%; transform:translateX(-50%); animation: ga-ship 10s ease-in-out infinite; }
.scn-genoa-arrival .sail-main { position:absolute; bottom:34%; left:19%; width:10%; height:18%; background: linear-gradient(135deg, #f0e8d0 0%, #d0c8a0 100%); clip-path: polygon(50% 0%, 100% 100%, 0% 100%); animation: ga-sail 12s ease-in-out infinite; }
.scn-genoa-arrival .sail-jib  { position:absolute; bottom:34%; left:24%; width:8%; height:14%; background: linear-gradient(135deg, #f0e8d0 0%, #c8b890 100%); clip-path: polygon(0% 0%, 100% 100%, 0% 100%); animation: ga-sail 12s ease-in-out infinite reverse; }
.scn-genoa-arrival .sun-glow  { position:absolute; top:8%; right:15%; width:16%; height:16%; background: radial-gradient(circle, #fff8b0 0%, rgba(255,248,176,0) 70%); border-radius:50%; animation: ga-sun 8s ease-in-out infinite; }
.scn-genoa-arrival .gulls { position:absolute; top:12%; left:30%; width:20px; height:6px; background: #4a4a4a; border-radius:50% 50% 0 0; filter:blur(1px); animation: ga-gulls 25s linear infinite; }
@keyframes ga-sky {0%{opacity:0.8}50%{opacity:1}100%{opacity:0.9}}
@keyframes ga-sea {0%{background-position:0 0}50%{background-position:20px 0}100%{background-position:0 0}}
@keyframes ga-hills {0%{transform:scaleY(1) translateY(0)}50%{transform:scaleY(1.02) translateY(-2px)}100%{transform:scaleY(1) translateY(0)}}
@keyframes ga-ship {0%{transform:translateX(-50%) rotate(0deg)}50%{transform:translateX(-50%) rotate(1deg) translateY(-1px)}100%{transform:translateX(-50%) rotate(0deg)}}
@keyframes ga-sail {0%{transform:rotate(0deg)}50%{transform:rotate(3deg)}100%{transform:rotate(0deg)}}
@keyframes ga-sun {0%{box-shadow:0 0 40px 10px rgba(255,248,176,0.3);opacity:0.7}50%{box-shadow:0 0 60px 20px rgba(255,248,176,0.5);opacity:1}100%{box-shadow:0 0 40px 10px rgba(255,248,176,0.3);opacity:0.8}}
@keyframes ga-gulls {0%{transform:translateX(0)}100%{transform:translateX(-200px)}}

.scn-galley-slaves-genoa { background: linear-gradient(180deg, #d4b88a 0%, #b8986a 40%, #8a7050 100%), radial-gradient(ellipse at 50% 0%, #fff4c0 0%, transparent 40%); }
.scn-galley-slaves-genoa .deck   { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%); border-radius:50% 50% 0 0/20% 20% 0 0; }
.scn-galley-slaves-genoa .oars   { position:absolute; bottom:20%; left:10%; width:80%; height:4px; background: repeating-linear-gradient(90deg, #4a3a2a 0px, #4a3a2a 8px, transparent 8px, transparent 20px); top:auto; }
.scn-galley-slaves-genoa .slave-row { position:absolute; bottom:18%; height:12%; width:20%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius:40% 40% 30% 30%; }
.scn-galley-slaves-genoa .front  { left:15%; animation: gs-slave 6s ease-in-out infinite; }
.scn-galley-slaves-genoa .back   { right:15%; animation: gs-slave 6s ease-in-out infinite reverse; animation-delay:3s; }
.scn-galley-slaves-genoa .chain-bar { position:absolute; bottom:15%; left:5%; width:90%; height:3px; background: #5a4a3a; box-shadow:0 2px 4px rgba(0,0,0,0.5); }
.scn-galley-slaves-genoa .sun-strike { position:absolute; top:0; left:45%; width:20%; height:70%; background: linear-gradient(180deg, rgba(255,240,180,0.3) 0%, rgba(255,240,180,0) 100%); clip-path: polygon(50% 0%, 100% 100%, 0% 100%); animation: gs-strike 8s ease-in-out infinite alternate; }
.scn-galley-slaves-genoa .shadow-stripe { position:absolute; top:0; left:20%; width:30%; height:100%; background: linear-gradient(180deg, rgba(0,0,0,0.1) 0%, rgba(0,0,0,0.3) 100%); animation: gs-shadow 12s ease-in-out infinite; }
@keyframes gs-slave {0%{transform:translateY(0) rotate(0deg)}25%{transform:translateY(-3px) rotate(5deg)}75%{transform:translateY(3px) rotate(-5deg)}100%{transform:translateY(0) rotate(0deg)}}
@keyframes gs-strike {0%{opacity:0.2}50%{opacity:0.7}100%{opacity:0.3}}
@keyframes gs-shadow {0%{opacity:0.3}50%{opacity:0.5}100%{opacity:0.3}}

.scn-vesuvius-eruption { background: linear-gradient(180deg, #1a0a0a 0%, #3a1a0a 40%, #5a2a0a 100%), radial-gradient(ellipse at 50% 60%, #b84a0a 0%, transparent 60%); }
.scn-vesuvius-eruption .night-sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #0a0a1a 0%, #2a0a0a 100%); animation: ve-sky 20s ease-in-out infinite alternate; }
.scn-vesuvius-eruption .volcano   { position:absolute; bottom:30%; left:30%; width:40%; height:50%; background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%); clip-path: polygon(20% 100%, 80% 100%, 60% 0%, 40% 0%); }
.scn-vesuvius-eruption .eruption-column { position:absolute; bottom:55%; left:45%; width:10%; height:30%; background: linear-gradient(0deg, #e06a0a 0%, #c05a0a 30%, #8a3a0a 60%, transparent 100%); border-radius:0 0 40% 40%; transform:translateX(-50%); animation: ve-column 2s ease-in-out infinite alternate; }
.scn-vesuvius-eruption .ash-cloud { position:absolute; top:10%; left:20%; width:60%; height:30%; background: radial-gradient(ellipse, #5a3a2a 0%, rgba(90,58,42,0) 70%); filter:blur(8px); animation: ve-ash 10s ease-in-out infinite; }
.scn-vesuvius-eruption .lava-flow { position:absolute; bottom:40%; left:35%; width:30%; height:10%; background: linear-gradient(90deg, #d06a0a 0%, #b85a0a 50%, #8a3a0a 100%); border-radius:0 0 50% 50%; animation: ve-lava 4s ease-in-out infinite; }
.scn-vesuvius-eruption .ship-deck { position:absolute; bottom:0; left:10%; width:80%; height:20%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius:30% 30% 0 0; }
.scn-vesuvius-eruption .debris   { position:absolute; top:20%; left:40%; width:8px; height:8px; background: #8a4a2a; border-radius:50%; filter:blur(1px); animation: ve-debris 3s linear infinite; }
@keyframes ve-sky {0%{opacity:0.5}50%{opacity:0.8}100%{opacity:0.6}}
@keyframes ve-column {0%{height:25%;opacity:0.7}100%{height:35%;opacity:1}}
@keyframes ve-ash {0%{transform:scale(1);opacity:0.3}50%{transform:scale(1.2);opacity:0.6}100%{transform:scale(0.9);opacity:0.4}}
@keyframes ve-lava {0%{width:25%}50%{width:35%}100%{width:25%}}
@keyframes ve-debris {0%{transform:translate(0,0);opacity:1}100%{transform:translate(-40px,-80px);opacity:0}}

/* scene: joseph-clipson (dark + sunlit) */
.scn-joseph-clipson {
  background: linear-gradient(180deg, #5b7fa0 0%, #b0cce0 40%, #c8dce8 70%, #e0ecf4 100%),
              radial-gradient(ellipse at 40% 30%, #fff4e0 0%, transparent 60%);
}
.scn-joseph-clipson .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #8ab4d4 0%, #c0d8e8 60%, transparent 100%);
  animation: jc-sky 18s ease-in-out infinite alternate;
}
.scn-joseph-clipson .sea {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #2a4a5a 0%, #3a6a7a 50%, #4a7a8a 100%);
  border-radius: 40% 60% 0 0 / 60% 50% 0 0;
  animation: jc-sea 12s ease-in-out infinite alternate;
}
.scn-joseph-clipson .deck {
  position: absolute; bottom: 12%; left: 10%; right: 10%; height: 20%;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.5);
}
.scn-joseph-clipson .rail {
  position: absolute; bottom: 30%; left: 10%; right: 10%; height: 4px;
  background: #3a2a1a;
  box-shadow: 0 -2px 6px rgba(0,0,0,0.4);
}
.scn-joseph-clipson .figure-kneeling {
  position: absolute; bottom: 14%; left: 35%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: jc-kneel 4s ease-in-out infinite;
}
.scn-joseph-clipson .captain {
  position: absolute; bottom: 18%; left: 55%; width: 32px; height: 56px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  animation: jc-captain 6s ease-in-out infinite;
}
.scn-joseph-clipson .shackle {
  position: absolute; bottom: 16%; left: 40%; width: 8px; height: 12px;
  background: #5a4a3a;
  border-radius: 20%;
  box-shadow: 0 0 6px rgba(0,0,0,0.6);
  animation: jc-shackle 2s ease-in-out infinite alternate;
}
.scn-joseph-clipson .cloud-jc {
  position: absolute; top: 8%; left: 20%; width: 100px; height: 20px;
  background: linear-gradient(90deg, rgba(255,255,240,0.5) 0%, rgba(255,255,240,0.1) 100%);
  filter: blur(8px);
  border-radius: 50%;
  animation: jc-cloud 40s linear infinite;
}
@keyframes jc-sky { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.7 } }
@keyframes jc-sea { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(2px) } }
@keyframes jc-kneel { 0%,100% { transform: translateX(0) rotate(0) } 25% { transform: translateX(-4px) rotate(-2deg) } 75% { transform: translateX(2px) rotate(1deg) } }
@keyframes jc-captain { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-3px) scale(1.02) } }
@keyframes jc-shackle { 0% { transform: translateY(0) rotate(0) } 100% { transform: translateY(2px) rotate(15deg) } }
@keyframes jc-cloud { 0% { transform: translateX(-30px) } 100% { transform: translateX(120vw) } }

/* scene: free-negro-fears (dark + sunlit) */
.scn-free-negro-fears {
  background: linear-gradient(180deg, #6a7a8a 0%, #9ab0c0 40%, #c0d4e0 70%, #e0e8f0 100%),
              radial-gradient(ellipse at 70% 20%, #fff8e8 0%, transparent 50%);
}
.scn-free-negro-fears .sky-fn {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #8a9aaa 0%, #b0c8d8 60%, transparent 100%);
  animation: fn-sky 20s ease-in-out infinite alternate;
}
.scn-free-negro-fears .ground-fn {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #5a5a4a 0%, #3a3a2a 100%);
  border-radius: 30% 70% 0 0 / 40% 60% 0 0;
}
.scn-free-negro-fears .back-street {
  position: absolute; bottom: 25%; left: 10%; right: 20%; height: 20%;
  background: linear-gradient(90deg, #4a4a3a 0%, #6a5a4a 50%, #5a4a3a 100%);
  border-radius: 20% 80% 0 0 / 30% 70% 0 0;
  box-shadow: inset 0 -4px 10px rgba(0,0,0,0.3);
  animation: fn-street 15s ease-in-out infinite alternate;
}
.scn-free-negro-fears .figure-fn {
  position: absolute; bottom: 18%; left: 45%; width: 28px; height: 48px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: fn-figure 6s ease-in-out infinite;
}
.scn-free-negro-fears .hand-papers {
  position: absolute; bottom: 28%; left: 48%; width: 12px; height: 16px;
  background: #d0c0a0;
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.4);
  transform-origin: bottom left;
  animation: fn-papers 4s ease-in-out infinite;
}
.scn-free-negro-fears .shadow-follower {
  position: absolute; bottom: 10%; left: 30%; width: 40px; height: 60px;
  background: radial-gradient(ellipse at center, #2a2a2a 0%, transparent 70%);
  filter: blur(6px);
  animation: fn-shadow 8s ease-in-out infinite alternate;
}
.scn-free-negro-fears .dust-fn {
  position: absolute; bottom: 30%; left: 20%; width: 6px; height: 6px;
  background: #c0b0a0;
  border-radius: 50%;
  filter: blur(2px);
  animation: fn-dust 5s ease-in-out infinite;
}
@keyframes fn-sky { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes fn-street { 0% { transform: skewX(0) } 50% { transform: skewX(-2deg) } 100% { transform: skewX(1deg) } }
@keyframes fn-figure { 0%,100% { transform: translateX(0) rotate(0) } 25% { transform: translateX(6px) rotate(2deg) } 50% { transform: translateX(0) rotate(-1deg) } 75% { transform: translateX(-4px) rotate(1deg) } }
@keyframes fn-papers { 0%,100% { transform: rotate(0) } 50% { transform: rotate(10deg) } }
@keyframes fn-shadow { 0% { transform: scale(1) translateX(0) } 100% { transform: scale(1.2) translateX(20px) } }
@keyframes fn-dust { 0%,100% { transform: translateY(0) scale(1) } 50% { transform: translateY(-10px) scale(1.5) opacity(0.5) } }

/* scene: liberty-poem (warm + sunlit) */
.scn-liberty-poem {
  background: linear-gradient(180deg, #ffd080 0%, #ffe8b0 30%, #fff0d0 60%, #fff8e8 100%),
              radial-gradient(ellipse at 50% 0%, #fff8f0 0%, transparent 70%);
}
.scn-liberty-poem .sky-lp {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #ffe0a0 0%, #fff0d0 70%, transparent 100%);
  animation: lp-sky 25s ease-in-out infinite alternate;
}
.scn-liberty-poem .sunburst {
  position: absolute; top: 5%; left: 35%; width: 80px; height: 80px;
  background: radial-gradient(circle, #fff8e0 0%, #ffd080 40%, transparent 70%);
  filter: blur(8px);
  animation: lp-sun 10s ease-in-out infinite alternate;
}
.scn-liberty-poem .plinth {
  position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%);
  width: 60px; height: 30px;
  background: linear-gradient(180deg, #c0a080 0%, #a08060 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
}
.scn-liberty-poem .figure-liberty {
  position: absolute; bottom: 35%; left: 50%; transform: translateX(-50%);
  width: 40px; height: 80px;
  background: linear-gradient(180deg, #d0b090 0%, #b09070 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  animation: lp-liberty 8s ease-in-out infinite;
}
.scn-liberty-poem .torch {
  position: absolute; bottom: 55%; left: 55%; width: 6px; height: 30px;
  background: #4a3a2a;
  border-radius: 2px;
  transform-origin: bottom center;
  animation: lp-torch 4s ease-in-out infinite alternate;
}
.scn-liberty-poem .flame-glow {
  position: absolute; bottom: 78%; left: 55%; width: 20px; height: 30px;
  background: radial-gradient(ellipse, #ffe040 0%, #ffa000 50%, transparent 70%);
  filter: blur(6px);
  animation: lp-flame 3s ease-in-out infinite alternate;
}
.scn-liberty-poem .rays {
  position: absolute; top: 10%; left: 30%; right: 10%; height: 60%;
  background: linear-gradient(135deg, rgba(255,240,200,0.3) 0%, transparent 20%);
  filter: blur(4px);
  animation: lp-rays 12s linear infinite;
}
@keyframes lp-sky { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.9 } }
@keyframes lp-sun { 0% { transform: scale(1) } 100% { transform: scale(1.1) } }
@keyframes lp-liberty { 0%,100% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-4px) } }
@keyframes lp-torch { 0% { transform: rotate(-5deg) } 100% { transform: rotate(5deg) } }
@keyframes lp-flame { 0% { transform: scale(1) opacity(0.8) } 100% { transform: scale(1.3) opacity(1) } }
@keyframes lp-rays { 0% { transform: rotate(0deg) } 100% { transform: rotate(360deg) } }

/* scene: navigation-learning (warm + dim-interior) */
.scn-navigation-learning {
  background: linear-gradient(180deg, #1a1a1a 0%, #2a2218 30%, #3a2a1a 60%, #2a1a0a 100%),
              radial-gradient(ellipse at 50% 30%, #4a3a1a 0%, transparent 60%);
}
.scn-navigation-learning .wall-nl {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, #1a1208 0%, #2a1a0a 30%, #1a1208 100%);
  animation: nl-wall 20s ease-in-out infinite alternate;
}
.scn-navigation-learning .table-nl {
  position: absolute; bottom: 15%; left: 20%; right: 20%; height: 15%;
  background: linear-gradient(180deg, #4a2a0a 0%, #3a1a0a 100%);
  border-radius: 5% 5% 0 0;
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.6);
}
.scn-navigation-learning .map-nl {
  position: absolute; bottom: 22%; left: 30%; width: 60px; height: 40px;
  background: #c8b898;
  border-radius: 2px;
  transform: rotate(-2deg);
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: nl-map 8s ease-in-out infinite;
}
.scn-navigation-learning .candle {
  position: absolute; bottom: 25%; left: 25%; width: 8px; height: 30px;
  background: linear-gradient(180deg, #d0b080 0%, #a08060 100%);
  border-radius: 2px;
  box-shadow: 0 0 10px 2px #ffa000;
}
.scn-navigation-learning .flame-nl {
  position: absolute; bottom: 48%; left: 25%; width: 12px; height: 16px;
  background: radial-gradient(ellipse, #ffe080 0%, #ff8000 50%, transparent 70%);
  filter: blur(3px);
  animation: nl-flame 2s ease-in-out infinite alternate;
}
.scn-navigation-learning .figure-nl {
  position: absolute; bottom: 20%; left: 55%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: nl-figure 7s ease-in-out infinite;
}
.scn-navigation-learning .compass {
  position: absolute; bottom: 24%; left: 48%; width: 14px; height: 14px;
  background: radial-gradient(circle, #c0a060 0%, #806030 60%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 8px rgba(0,0,0,0.5);
  animation: nl-compass 6s linear infinite;
}
.scn-navigation-learning .shadow-nl {
  position: absolute; bottom: 10%; left: 30%; right: 20%; height: 20%;
  background: radial-gradient(ellipse at center, #0a0a0a 0%, transparent 70%);
  filter: blur(8px);
  animation: nl-shadow 10s ease-in-out infinite alternate;
}
@keyframes nl-wall { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.9 } }
@keyframes nl-map { 0%,100% { transform: rotate(-2deg) translateX(0) } 50% { transform: rotate(0deg) translateX(4px) } }
@keyframes nl-flame { 0% { transform: scale(1) } 100% { transform: scale(1.2) } }
@keyframes nl-figure { 0%,100% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-2px) rotate(2deg) } }
@keyframes nl-compass { 0% { transform: rotate(0deg) } 100% { transform: rotate(360deg) } }
@keyframes nl-shadow { 0% { transform: scale(1) } 100% { transform: scale(1.1) } }

.scn-conclusion-treatment {
  background:
    linear-gradient(180deg, #87CEEB 0%, #FFF8DC 40%, #F4A460 80%, #8B4513 100%),
    radial-gradient(ellipse at 50% 100%, #F4A460 0%, transparent 60%);
  position: relative;
  min-height: 100vh;
  overflow: hidden;
}
.scn-conclusion-treatment .sky {
  position: absolute;
  inset: 0 0 40% 0;
  background: linear-gradient(180deg, #87CEEB 0%, #FFF8DC 100%);
  animation: ct-sky 20s ease-in-out infinite alternate;
}
.scn-conclusion-treatment .sun {
  position: absolute;
  top: 15%;
  left: 60%;
  width: 60px;
  height: 60px;
  background: radial-gradient(circle, #FFD700 0%, #FFA500 50%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 80px 40px rgba(255, 215, 0, 0.5);
  animation: ct-sun-pulse 8s ease-in-out infinite;
}
.scn-conclusion-treatment .horizon {
  position: absolute;
  bottom: 28%;
  left: 0;
  right: 0;
  height: 5%;
  background: linear-gradient(90deg, #8B4513 0%, #A0522D 50%, #8B4513 100%);
  border-radius: 50% / 100% 100% 0 0;
  transform: scaleY(2);
}
.scn-conclusion-treatment .figure {
  position: absolute;
  bottom: 18%;
  left: 50%;
  transform: translateX(-50%);
  width: 30px;
  height: 80px;
  background: linear-gradient(180deg, #2F1B0E 0%, #1A0F08 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  animation: ct-figure 12s ease-in-out infinite;
}
.scn-conclusion-treatment .book {
  position: absolute;
  bottom: 16%;
  left: 45%;
  width: 40px;
  height: 30px;
  background: linear-gradient(135deg, #D2B48C 0%, #8B4513 100%);
  border-radius: 5%;
  box-shadow: 2px 2px 6px rgba(0,0,0,0.4);
  transform: rotate(-10deg);
  animation: ct-book 10s ease-in-out infinite alternate;
}
.scn-conclusion-treatment .light-beam {
  position: absolute;
  top: 0;
  left: 55%;
  width: 80px;
  height: 100%;
  background: linear-gradient(180deg, rgba(255, 215, 0, 0.3) 0%, transparent 80%);
  transform: skewX(-5deg);
  filter: blur(8px);
  animation: ct-beam 6s ease-in-out infinite alternate;
}
@keyframes ct-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes ct-sun-pulse { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.05); } }
@keyframes ct-figure { 0%, 100% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-3px); } }
@keyframes ct-book { 0% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-8deg) translateY(-2px); } 100% { transform: rotate(-10deg) translateY(0); } }
@keyframes ct-beam { 0% { opacity: 0.3; } 50% { opacity: 0.6; } 100% { opacity: 0.4; } }

.scn-brimstone-hill {
  background:
    linear-gradient(180deg, #F4A460 0%, #D2691E 30%, #8B4513 70%, #2F1B0E 100%),
    radial-gradient(ellipse at 50% 100%, #D2691E 0%, transparent 70%);
  position: relative;
  min-height: 100vh;
  overflow: hidden;
}
.scn-brimstone-hill .sky {
  position: absolute;
  inset: 0 0 45% 0;
  background: linear-gradient(180deg, #FFD700 0%, #F4A460 60%, transparent 100%);
  animation: bh-sky 18s ease-in-out infinite alternate;
}
.scn-brimstone-hill .cliffs {
  position: absolute;
  bottom: 35%;
  left: 0;
  right: 0;
  height: 30%;
  background: linear-gradient(180deg, #8B4513 0%, #654321 50%, #3E2723 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.6);
}
.scn-brimstone-hill .pond {
  position: absolute;
  bottom: 20%;
  left: 20%;
  width: 60px;
  height: 30px;
  border-radius: 50%;
  filter: blur(2px);
}
.scn-brimstone-hill .pond-yellow {
  left: 20%;
  background: radial-gradient(circle, #FFFF00 0%, #DAA520 100%);
  animation: bh-pond1 10s ease-in-out infinite alternate;
}
.scn-brimstone-hill .pond-green {
  left: 55%;
  background: radial-gradient(circle, #9ACD32 0%, #556B2F 100%);
  animation: bh-pond2 12s ease-in-out infinite alternate;
}
.scn-brimstone-hill .pond-orange {
  left: 75%;
  background: radial-gradient(circle, #FF8C00 0%, #D2691E 100%);
  animation: bh-pond3 9s ease-in-out infinite alternate;
}
.scn-brimstone-hill .steam {
  position: absolute;
  bottom: 35%;
  left: 20%;
  width: 40px;
  height: 60px;
  background: radial-gradient(ellipse at 50% 100%, rgba(255,255,255,0.4) 0%, transparent 70%);
  filter: blur(6px);
  animation: bh-steam 6s ease-in-out infinite;
}
.scn-brimstone-hill .figure-small {
  position: absolute;
  bottom: 25%;
  left: 45%;
  width: 12px;
  height: 25px;
  background: #2F1B0E;
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: bh-figure 14s ease-in-out infinite;
}
@keyframes bh-sky { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes bh-pond1 { 0% { transform: scale(1); } 50% { transform: scale(1.1) translateY(-3px); } 100% { transform: scale(1); } }
@keyframes bh-pond2 { 0% { transform: scale(1) translateX(0); } 50% { transform: scale(1.05) translateX(5px); } 100% { transform: scale(1); } }
@keyframes bh-pond3 { 0% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.1) rotate(5deg); } 100% { transform: scale(1); } }
@keyframes bh-steam { 0% { transform: translateY(0) scale(1); opacity: 0.5; } 50% { transform: translateY(-15px) scale(1.5); opacity: 0.2; } 100% { transform: translateY(0) scale(1); opacity: 0.5; } }
@keyframes bh-figure { 0%, 100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(8px) rotate(5deg); } 50% { transform: translateX(16px) rotate(0deg); } 75% { transform: translateX(8px) rotate(-5deg); } }

.scn-sailor-useful {
  background:
    linear-gradient(180deg, #87CEEB 0%, #B0E0E6 30%, #4682B4 70%, #2C3E50 100%),
    radial-gradient(ellipse at 50% 0%, #FFF8DC 0%, transparent 70%);
  position: relative;
  min-height: 100vh;
  overflow: hidden;
}
.scn-sailor-useful .sky {
  position: absolute;
  inset: 0 0 50% 0;
  background: linear-gradient(180deg, #FFF8DC 0%, #87CEEB 60%, transparent 100%);
  animation: su-sky 20s ease-in-out infinite alternate;
}
.scn-sailor-useful .sea {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 50%;
  background: linear-gradient(180deg, #4682B4 0%, #1C3A5C 100%);
  border-radius: 0 0 20% 20% / 0 0 10% 10%;
  animation: su-sea 8s ease-in-out infinite;
}
.scn-sailor-useful .ship-hull {
  position: absolute;
  bottom: 25%;
  left: 50%;
  transform: translateX(-50%);
  width: 160px;
  height: 40px;
  background: linear-gradient(180deg, #5D4037 0%, #3E2723 100%);
  border-radius: 0 0 30% 30% / 0 0 100% 100%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: su-hull 12s ease-in-out infinite;
}
.scn-sailor-useful .sail {
  position: absolute;
  bottom: 50%;
  left: 50%;
  transform: translateX(-50%);
  width: 20px;
  height: 60px;
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  background: #FFF8DC;
  box-shadow: 2px 0 4px rgba(0,0,0,0.3);
}
.scn-sailor-useful .sail-fore {
  left: 40%;
  animation: su-sail1 10s ease-in-out infinite alternate;
}
.scn-sailor-useful .sail-aft {
  left: 60%;
  animation: su-sail2 10s ease-in-out infinite alternate;
  animation-delay: 2s;
}
.scn-sailor-useful .mast {
  position: absolute;
  bottom: 35%;
  left: 50%;
  transform: translateX(-50%);
  width: 8px;
  height: 120px;
  background: #3E2723;
  border-radius: 2px;
}
.scn-sailor-useful .figure-deck {
  position: absolute;
  bottom: 23%;
  left: 48%;
  width: 14px;
  height: 28px;
  background: #2F1B0E;
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: su-figure 9s ease-in-out infinite;
}
@keyframes su-sky { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes su-sea { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
@keyframes su-hull { 0%, 100% { transform: translateX(-50%) rotate(0deg); } 25% { transform: translateX(-50%) rotate(2deg); } 75% { transform: translateX(-50%) rotate(-2deg); } }
@keyframes su-sail1 { 0% { transform: skewX(0deg); } 50% { transform: skewX(5deg); } 100% { transform: skewX(-5deg); } }
@keyframes su-sail2 { 0% { transform: skewX(0deg); } 50% { transform: skewX(-5deg); } 100% { transform: skewX(5deg); } }
@keyframes su-figure { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }

.scn-trading-begins {
  background:
    linear-gradient(180deg, #FFF8DC 0%, #F4A460 40%, #D2691E 80%, #8B4513 100%),
    radial-gradient(ellipse at 50% 0%, #FFD700 0%, transparent 60%);
  position: relative;
  min-height: 100vh;
  overflow: hidden;
}
.scn-trading-begins .table {
  position: absolute;
  bottom: 10%;
  left: 10%;
  right: 10%;
  height: 40%;
  background: linear-gradient(180deg, #8B4513 0%, #5D4037 100%);
  border-radius: 10% 10% 5% 5% / 20% 20% 5% 5%;
  box-shadow: 0 -10px 30px rgba(0,0,0,0.5);
  animation: tb-table 20s ease-in-out infinite alternate;
}
.scn-trading-begins .tumbler {
  position: absolute;
  bottom: 35%;
  width: 14px;
  height: 20px;
  background: linear-gradient(180deg, rgba(255,255,255,0.8) 0%, rgba(200,200,200,0.3) 100%);
  border-radius: 0 0 30% 30% / 0 0 50% 50%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
}
.scn-trading-begins .tumbler-1 {
  left: 30%;
  animation: tb-tumbler1 8s ease-in-out infinite alternate;
}
.scn-trading-begins .tumbler-2 {
  left: 50%;
  animation: tb-tumbler2 8s ease-in-out infinite alternate;
  animation-delay: 3s;
}
.scn-trading-begins .jug {
  position: absolute;
  bottom: 25%;
  left: 40%;
  width: 30px;
  height: 40px;
  background: linear-gradient(180deg, #D2691E 0%, #8B4513 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 15% 15%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: tb-jug 15s ease-in-out infinite;
}
.scn-trading-begins .hand {
  position: absolute;
  bottom: 38%;
  width: 30px;
  height: 20px;
  background: #C68642;
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  transform: rotate(-10deg);
}
.scn-trading-begins .hand-left {
  left: 25%;
  animation: tb-handL 12s ease-in-out infinite;
}
.scn-trading-begins .hand-right {
  left: 60%;
  animation: tb-handR 12s ease-in-out infinite;
  animation-delay: 2s;
}
.scn-trading-begins .coin {
  position: absolute;
  bottom: 42%;
  left: 45%;
  width: 16px;
  height: 16px;
  background: radial-gradient(circle, #FFD700 0%, #DAA520 100%);
  border-radius: 50%;
  box-shadow: 0 0 8px rgba(255, 215, 0, 0.6);
  animation: tb-coin 6s ease-in-out infinite alternate;
}
@keyframes tb-table { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes tb-tumbler1 { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-5px) rotate(5deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes tb-tumbler2 { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-5px) rotate(-5deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes tb-jug { 0%, 100% { transform: rotate(0deg); } 50% { transform: rotate(2deg); } }
@keyframes tb-handL { 0%, 100% { transform: rotate(-10deg); } 50% { transform: rotate(-5deg) translateX(5px); } }
@keyframes tb-handR { 0%, 100% { transform: rotate(-10deg) scaleX(-1) rotate(10deg); } 50% { transform: rotate(-5deg) scaleX(-1) rotate(5deg) translateX(-5px); } }
@keyframes tb-coin { 0% { transform: scale(1); opacity: 0.8; } 50% { transform: scale(1.2); opacity: 1; } 100% { transform: scale(1); opacity: 0.9; } }

.scn-boat-repair {
  background: linear-gradient(180deg, #f9e6c1 0%, #cba87a 40%, #8a6b4a 100%),
              radial-gradient(ellipse at 60% 20%, #ffdfa0 0%, transparent 60%);
}
.scn-boat-repair .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #b3d9ff 0%, #e6f0fa 60%, transparent 100%);
  animation: br-sky 14s ease-in-out infinite alternate;
}
.scn-boat-repair .sun {
  position: absolute; top: 8%; left: 70%; width: 60px; height: 60px;
  background: radial-gradient(circle, #fff7b0 0%, #f5c542 50%, transparent 70%);
  border-radius: 50%; box-shadow: 0 0 80px 40px #f5c542;
  animation: br-sun 20s ease-in-out infinite;
}
.scn-boat-repair .sea {
  position: absolute; bottom: 28%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #4488aa 0%, #2a5a77 100%);
  animation: br-sea 8s ease-in-out infinite alternate;
}
.scn-boat-repair .sand {
  position: absolute; bottom: 0; left: 0; right: 0; height: 28%;
  background: linear-gradient(180deg, #d4b98a 0%, #b89a6a 40%, #8a6b4a 100%);
  border-radius: 20% 10% 0 0 / 60% 40% 0 0;
}
.scn-boat-repair .boat-hull {
  position: absolute; bottom: 30%; left: 30%; width: 120px; height: 50px;
  background: linear-gradient(90deg, #6b4226 0%, #8b5e3c 50%, #6b4226 100%);
  border-radius: 40% 40% 20% 20%;
  transform: rotate(-8deg);
  animation: br-boat 6s ease-in-out infinite;
}
.scn-boat-repair .mast {
  position: absolute; bottom: 48%; left: 38%; width: 6px; height: 90px;
  background: linear-gradient(180deg, #4a3322 0%, #3a2a1a 100%);
  border-radius: 20%; transform: rotate(-5deg);
}
.scn-boat-repair .worker-a {
  position: absolute; bottom: 42%; left: 26%; width: 16px; height: 32px;
  background: linear-gradient(180deg, #c8a882 0%, #8b6b4a 100%);
  border-radius: 50% 50% 40% 40%;
  animation: br-work-a 4s ease-in-out infinite;
}
.scn-boat-repair .worker-b {
  position: absolute; bottom: 44%; left: 48%; width: 14px; height: 28px;
  background: linear-gradient(180deg, #b89870 0%, #7a5a3a 100%);
  border-radius: 50% 50% 40% 40%;
  animation: br-work-b 5s ease-in-out infinite;
}
@keyframes br-sky { 0% { opacity: 0.85 } 50% { opacity: 1 } 100% { opacity: 0.9 } }
@keyframes br-sun { 0%,100% { transform: translateX(0) scale(1) } 50% { transform: translateX(-10px) scale(1.05) } }
@keyframes br-sea { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes br-boat { 0%,100% { transform: rotate(-8deg) translateY(0) } 50% { transform: rotate(-6deg) translateY(-4px) } }
@keyframes br-work-a { 0%,100% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(4px) rotate(2deg) } 50% { transform: translateX(8px) rotate(-2deg) } 75% { transform: translateX(12px) rotate(1deg) } }
@keyframes br-work-b { 0%,100% { transform: translateX(0) scaleY(1) } 50% { transform: translateX(-5px) scaleY(1.05) } }

.scn-obbico-island {
  background: linear-gradient(180deg, #c4dfe6 0%, #f2d8a7 40%, #b58e5a 100%),
              radial-gradient(ellipse at 80% 10%, #fff2b0 0%, transparent 50%);
}
.scn-obbico-island .sky-island {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #8ab8d4 0%, #dae8f0 60%, transparent 100%);
}
.scn-obbico-island .hot-sun {
  position: absolute; top: 10%; right: 10%; width: 70px; height: 70px;
  background: radial-gradient(circle, #ffe680 0%, #f0b030 50%, transparent 70%);
  border-radius: 50%; box-shadow: 0 0 60px 30px #f0b030;
  animation: ob-sun 25s linear infinite alternate;
}
.scn-obbico-island .rocky-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #a07c4a 0%, #6b5638 60%, #3d2c1a 100%);
  border-radius: 10% 30% 0 0 / 20% 50% 0 0;
}
.scn-obbico-island .hills-distant {
  position: absolute; bottom: 42%; left: -10%; right: -10%; height: 20%;
  background: linear-gradient(180deg, #7a6340 0%, #4d3b24 100%);
  border-radius: 40% 30% 0 0;
  filter: blur(6px);
  animation: ob-hills 20s ease-in-out infinite alternate;
}
.scn-obbico-island .boat-beached {
  position: absolute; bottom: 12%; left: 20%; width: 100px; height: 40px;
  background: linear-gradient(90deg, #4d2f1a 0%, #6b4526 50%, #4d2f1a 100%);
  border-radius: 30% 30% 10% 10%;
  transform: rotate(5deg);
  animation: ob-boat 8s ease-in-out infinite;
}
.scn-obbico-island .figure-search {
  position: absolute; bottom: 22%; left: 48%; width: 14px; height: 30px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 40% 40% 30% 30%;
  animation: ob-figure 5s ease-in-out infinite;
}
.scn-obbico-island .palm-tree {
  position: absolute; bottom: 30%; right: 15%; width: 8px; height: 70px;
  background: linear-gradient(180deg, #3a2a10 0%, #2a1a08 100%);
  border-radius: 20%;
  transform: rotate(-10deg);
}
.scn-obbico-island .palm-tree::before {
  content: ''; position: absolute; top: -18px; left: -24px; width: 50px; height: 30px;
  background: radial-gradient(ellipse at 50% 100%, #4a7a2a 0%, #2a5a1a 60%, transparent 70%);
  border-radius: 60% 60% 0 0;
}
@keyframes ob-sun { 0% { transform: translateX(0) scale(1) } 100% { transform: translateX(-20px) scale(1.03) } }
@keyframes ob-hills { 0% { transform: translateY(0) scaleX(1) } 50% { transform: translateY(-4px) scaleX(1.02) } 100% { transform: translateY(0) } }
@keyframes ob-boat { 0%,100% { transform: rotate(5deg) translateY(0) } 50% { transform: rotate(3deg) translateY(-3px) } }
@keyframes ob-figure { 0%,100% { transform: translateX(0) rotate(-3deg) } 30% { transform: translateX(4px) rotate(1deg) } 60% { transform: translateX(8px) rotate(-2deg) } 100% { transform: translateX(0) } }

.scn-no-water {
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1030 40%, #0a0515 100%),
              radial-gradient(ellipse at 50% 80%, #2a1a30 0%, transparent 70%);
}
.scn-no-water .night-sky {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #050515 0%, #12102a 60%, transparent 100%);
  animation: nw-night 20s linear infinite alternate;
}
.scn-no-water .fire {
  position: absolute; bottom: 25%; left: 40%; width: 40px; height: 50px;
  background: radial-gradient(ellipse at 50% 80%, #ffa040 0%, #e06020 40%, transparent 70%);
  border-radius: 40% 40% 20% 20%;
  box-shadow: 0 0 40px 20px #e06020, 0 0 100px 50px rgba(200,80,20,0.3);
  animation: nw-fire 1.5s ease-in-out infinite alternate;
}
.scn-no-water .dark-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(180deg, #151025 0%, #0a0512 100%);
  border-radius: 30% 20% 0 0;
}
.scn-no-water .tent {
  position: absolute; bottom: 30%; left: 20%; width: 60px; height: 40px;
  background: linear-gradient(135deg, #2a202a 0%, #1a101a 100%);
  clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
  animation: nw-tent 12s ease-in-out infinite;
}
.scn-no-water .figure-sitting {
  position: absolute; bottom: 23%; left: 34%; width: 16px; height: 26px;
  background: linear-gradient(180deg, #1a102a 0%, #0a051a 100%);
  border-radius: 50% 50% 40% 40%;
  animation: nw-sit 6s ease-in-out infinite;
}
.scn-no-water .figure-standing {
  position: absolute; bottom: 28%; left: 56%; width: 14px; height: 32px;
  background: linear-gradient(180deg, #2a1a2a 0%, #120a1a 100%);
  border-radius: 45% 45% 35% 35%;
  animation: nw-stand 8s ease-in-out infinite;
}
.scn-no-water .boat-shadow {
  position: absolute; bottom: 10%; left: 55%; width: 90px; height: 30px;
  background: linear-gradient(90deg, #0a0a1a 0%, #15102a 50%, #0a0a1a 100%);
  border-radius: 30% 30% 10% 10%;
  opacity: 0.8;
  animation: nw-boat 10s ease-in-out infinite;
}
@keyframes nw-night { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes nw-fire { 0% { transform: scale(1) translateY(0) } 50% { transform: scale(1.1) translateY(-4px) } 100% { transform: scale(0.95) translateY(2px) } }
@keyframes nw-tent { 0%,100% { transform: translateY(0) scaleX(1) } 50% { transform: translateY(-3px) scaleX(1.03) } }
@keyframes nw-sit { 0%,100% { transform: translateX(0) rotate(-2deg) } 40% { transform: translateX(3px) rotate(2deg) } 70% { transform: translateX(6px) rotate(-1deg) } }
@keyframes nw-stand { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-5px) } }
@keyframes nw-boat { 0%,100% { transform: translateX(0) rotate(0) } 50% { transform: translateX(-4px) rotate(-2deg) } }

.scn-famishing {
  background: linear-gradient(180deg, #3a1a2a 0%, #6a3a4a 30%, #2a1020 100%),
              radial-gradient(ellipse at 50% 40%, #8a4a4a 0%, transparent 60%);
}
.scn-famishing .dusk-sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #4a2a3a 0%, #2a1020 60%, transparent 100%);
  animation: fa-dusk 18s ease-in-out infinite alternate;
}
.scn-famishing .dark-sea {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #1a0a12 0%, #0a0508 100%);
  animation: fa-sea 12s ease-in-out infinite alternate;
}
.scn-famishing .shore {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 15% 25% 0 0;
}
.scn-famishing .figure-collapsed {
  position: absolute; bottom: 16%; left: 30%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #3a1a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40%;
  transform: rotate(-20deg);
  animation: fa-collapse 8s ease-in-out infinite;
}
.scn-famishing .figure-kneeling {
  position: absolute; bottom: 20%; left: 55%; width: 16px; height: 28px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 40% 40% 30% 30%;
  transform: rotate(10deg);
  animation: fa-kneel 10s ease-in-out infinite;
}
.scn-famishing .boat-abandoned {
  position: absolute; bottom: 8%; left: 10%; width: 80px; height: 35px;
  background: linear-gradient(90deg, #3a1a1a 0%, #5a2a2a 50%, #3a1a1a 100%);
  border-radius: 30% 30% 10% 10%;
  transform: rotate(8deg);
  animation: fa-boat 14s ease-in-out infinite;
}
.scn-famishing .rock {
  position: absolute; bottom: 12%; left: 70%; width: 40px; height: 30px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 30% 40% 0 0;
  transform: rotate(-5deg);
}
@keyframes fa-dusk { 0% { opacity: 0.8 } 50% { opacity: 0.6 } 100% { opacity: 0.5 } }
@keyframes fa-sea { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-3px) scaleY(1.02) } 100% { transform: translateY(0) } }
@keyframes fa-collapse { 0%,100% { transform: rotate(-20deg) translateY(0) } 50% { transform: rotate(-18deg) translateY(-2px) } }
@keyframes fa-kneel { 0%,100% { transform: rotate(10deg) translateY(0) } 50% { transform: rotate(8deg) translateY(-3px) } }
@keyframes fa-boat { 0%,100% { transform: rotate(8deg) translateY(0) } 50% { transform: rotate(10deg) translateY(-4px) } }

/* scene: fidelity-rewarded */
.scn-fidelity-rewarded {
  background: linear-gradient(180deg, #87CEEB 0%, #f0d9b5 50%, #e0c090 100%),
              radial-gradient(ellipse at 80% 20%, #fff9e6 0%, transparent 60%);
  position: relative; overflow: hidden;
}
.scn-fidelity-rewarded .deck {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(0deg, #8B5E3C 0%, #6a4020 100%);
  border-radius: 10% 10% 0 0;
}
.scn-fidelity-rewarded .mast {
  position: absolute; bottom: 35%; left: 50%; width: 8px; height: 50%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e0a 100%);
  transform: translateX(-50%);
}
.scn-fidelity-rewarded .sail {
  position: absolute; bottom: 45%; left: 50%; width: 60px; height: 70px;
  background: linear-gradient(135deg, #f5e6d0 0%, #d4c4a0 100%);
  clip-path: polygon(0 0, 100% 0, 100% 100%, 50% 80%, 0 100%);
  transform: translateX(-50%);
  animation: fr-sail 8s ease-in-out infinite;
}
.scn-fidelity-rewarded .captain {
  position: absolute; bottom: 30%; left: 60%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #2a4a6a 0%, #1a2a4a 100%);
  border-radius: 45% 45% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: fr-captain 6s ease-in-out infinite;
}
.scn-fidelity-rewarded .figure-fr {
  position: absolute; bottom: 30%; left: 40%; width: 18px; height: 38px;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: fr-figure 5s ease-in-out infinite;
}
.scn-fidelity-rewarded .sun-fr {
  position: absolute; top: 10%; right: 15%; width: 60px; height: 60px;
  background: radial-gradient(circle, #fff4c0 0%, #e0a840 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(224,168,64,0.5);
  animation: fr-sun 12s ease-in-out infinite alternate;
}
.scn-fidelity-rewarded .cloud-fr-a {
  position: absolute; top: 8%; left: 0; width: 100px; height: 30px;
  background: rgba(255,255,240,0.6); filter: blur(8px);
  border-radius: 50%;
  animation: fr-cloudA 25s linear infinite;
}
.scn-fidelity-rewarded .cloud-fr-b {
  position: absolute; top: 15%; right: -50px; width: 80px; height: 25px;
  background: rgba(255,255,240,0.4); filter: blur(6px);
  border-radius: 50%;
  animation: fr-cloudB 30s linear infinite reverse;
}
@keyframes fr-sail {
  0%, 100% { transform: translateX(-50%) rotate(-2deg); }
  50% { transform: translateX(-50%) rotate(2deg) scale(1.02); }
}
@keyframes fr-captain {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
}
@keyframes fr-figure {
  0% { transform: translateX(0) translateY(0); }
  25% { transform: translateX(8px) translateY(-1px); }
  50% { transform: translateX(16px) translateY(0); }
  75% { transform: translateX(24px) translateY(-1px); }
  100% { transform: translateX(32px) translateY(0); }
}
@keyframes fr-sun {
  0% { opacity: 0.9; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.05); }
  100% { opacity: 0.85; transform: scale(0.95); }
}
@keyframes fr-cloudA {
  0% { transform: translateX(-120px); }
  100% { transform: translateX(120vw); }
}
@keyframes fr-cloudB {
  0% { transform: translateX(0); }
  100% { transform: translateX(-120vw); }
}

/* scene: georgia-philadelphia */
.scn-georgia-philadelphia {
  background: linear-gradient(180deg, #b0d4f0 0%, #e8c8a0 40%, #a07040 100%),
              radial-gradient(ellipse at 50% 100%, #c89550 0%, transparent 70%);
  position: relative; overflow: hidden;
}
.scn-georgia-philadelphia .water {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #6a9ab5 0%, #3a6a8a 100%);
  animation: gp-water 10s ease-in-out infinite alternate;
}
.scn-georgia-philadelphia .dock {
  position: absolute; bottom: 45%; left: 10%; width: 30%; height: 8px;
  background: linear-gradient(90deg, #6a4020 0%, #4a2a10 100%);
  border-radius: 2px;
}
.scn-georgia-philadelphia .ship-gp {
  position: absolute; bottom: 30%; left: 40%; width: 80px; height: 60px;
  background: linear-gradient(180deg, #8B5E3C 0%, #4a2a1a 100%);
  clip-path: polygon(0 20%, 100% 20%, 100% 100%, 70% 90%, 30% 90%, 0 100%);
  animation: gp-ship 14s ease-in-out infinite;
}
.scn-georgia-philadelphia .crates {
  position: absolute; bottom: 44%; left: 5%; width: 40px; height: 20px;
  background: linear-gradient(135deg, #a07040 0%, #6a4020 100%);
  border-radius: 2px; box-shadow: 2px 2px 4px rgba(0,0,0,0.3);
}
.scn-georgia-philadelphia .figure-gp {
  position: absolute; bottom: 40%; left: 18%; width: 16px; height: 34px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 50% 50% 35% 35% / 60% 60% 35% 35%;
  animation: gp-figure 5s ease-in-out infinite;
}
.scn-georgia-philadelphia .wave-gp-1 {
  position: absolute; bottom: 15%; left: 0; width: 200%; height: 20px;
  background: rgba(100,160,200,0.4);
  border-radius: 50%;
  filter: blur(4px);
  animation: gp-wave1 8s linear infinite;
}
.scn-georgia-philadelphia .wave-gp-2 {
  position: absolute; bottom: 10%; left: -50%; width: 200%; height: 15px;
  background: rgba(100,160,200,0.3);
  border-radius: 50%;
  filter: blur(3px);
  animation: gp-wave2 12s linear infinite reverse;
}
.scn-georgia-philadelphia .seagull {
  position: absolute; top: 10%; left: 30%; width: 20px; height: 10px;
  background: transparent;
  border-radius: 50%;
  box-shadow: 0 0 0 2px #fff, 8px -4px 0 0 #fff;
  animation: gp-gull 20s linear infinite;
}
@keyframes gp-water {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes gp-ship {
  0%, 100% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-3px) rotate(1deg); }
}
@keyframes gp-figure {
  0% { transform: translateX(0); }
  25% { transform: translateX(5px); }
  50% { transform: translateX(10px); }
  75% { transform: translateX(5px); }
  100% { transform: translateX(0); }
}
@keyframes gp-wave1 {
  0% { transform: translateX(0) scaleX(1); }
  100% { transform: translateX(-50%) scaleX(1.05); }
}
@keyframes gp-wave2 {
  0% { transform: translateX(0) scaleX(1); }
  100% { transform: translateX(50%) scaleX(1.03); }
}
@keyframes gp-gull {
  0% { transform: translate(0, 0); }
  25% { transform: translate(50px, -10px); }
  50% { transform: translate(100px, 5px); }
  75% { transform: translate(150px, -5px); }
  100% { transform: translate(200px, 0); }
}

/* scene: mr-king-suspects */
.scn-mr-king-suspects {
  background: linear-gradient(180deg, #6a7a8a 0%, #4a5a6a 30%, #2a3a4a 100%),
              radial-gradient(circle at 20% 40%, #f0d080 0%, transparent 60%);
  position: relative; overflow: hidden;
}
.scn-mr-king-suspects .cabin-walls {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #4a3a2a 0%, #2a1a0a 100%);
  clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
  opacity: 0.4;
}
.scn-mr-king-suspects .table {
  position: absolute; bottom: 20%; left: 25%; width: 50%; height: 8px;
  background: linear-gradient(90deg, #5a3a1a 0%, #3a2a0a 100%);
  border-radius: 2px;
  box-shadow: 0 4px 6px rgba(0,0,0,0.6);
}
.scn-mr-king-suspects .master-mks {
  position: absolute; bottom: 24%; left: 30%; width: 22px; height: 46px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 45% 45% 30% 30% / 50% 50% 30% 30%;
  animation: mks-master 4s ease-in-out infinite;
}
.scn-mr-king-suspects .captain-mks {
  position: absolute; bottom: 24%; right: 30%; width: 20px; height: 44px;
  background: linear-gradient(180deg, #2a4a6a 0%, #1a2a4a 100%);
  border-radius: 45% 45% 30% 30% / 50% 50% 30% 30%;
  animation: mks-captain 3s ease-in-out infinite alternate;
}
.scn-mr-king-suspects .window-mks {
  position: absolute; top: 15%; left: 10%; width: 30px; height: 40px;
  background: radial-gradient(circle at 50% 30%, #e8c880 0%, #c8a060 100%);
  border: 2px solid #3a2a1a;
  border-radius: 4px;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.5);
  animation: mks-window 5s ease-in-out infinite alternate;
}
.scn-mr-king-suspects .shadow-mks {
  position: absolute; bottom: 20%; left: 35%; width: 30%; height: 40%;
  background: linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,0.5) 100%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  animation: mks-shadow 6s ease-in-out infinite;
}
@keyframes mks-master {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(3deg); }
}
@keyframes mks-captain {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-1px) rotate(-2deg); }
  100% { transform: translateY(1px) rotate(1deg); }
}
@keyframes mks-window {
  0% { opacity: 0.7; box-shadow: inset 0 0 5px rgba(0,0,0,0.8); }
  50% { opacity: 1; box-shadow: inset 0 0 20px rgba(255,200,100,0.5); }
  100% { opacity: 0.8; box-shadow: inset 0 0 10px rgba(0,0,0,0.6); }
}
@keyframes mks-shadow {
  0%, 100% { transform: scaleY(1); opacity: 0.4; }
  50% { transform: scaleY(1.1); opacity: 0.6; }
}

/* scene: freedom-offer */
.scn-freedom-offer {
  background: linear-gradient(180deg, #fce4b0 0%, #e8c080 40%, #d0a060 100%),
              radial-gradient(circle at 70% 30%, #fff8e0 0%, transparent 60%);
  position: relative; overflow: hidden;
}
.scn-freedom-offer .cabin-fo {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #6a5040 0%, #3a2a1a 100%);
  clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
  opacity: 0.3;
}
.scn-freedom-offer .desk {
  position: absolute; bottom: 25%; left: 20%; width: 60%; height: 10px;
  background: linear-gradient(90deg, #7a5a3a 0%, #5a3a1a 100%);
  border-radius: 3px;
  box-shadow: 0 6px 8px rgba(0,0,0,0.5);
}
.scn-freedom-offer .master-fo {
  position: absolute; bottom: 30%; left: 25%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%);
  border-radius: 45% 45% 30% 30% / 50% 50% 30% 30%;
  animation: fo-master 5s ease-in-out infinite;
}
.scn-freedom-offer .equiano-fo {
  position: absolute; bottom: 30%; right: 25%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: fo-equiano 6s ease-in-out infinite;
}
.scn-freedom-offer .paper {
  position: absolute; bottom: 28%; left: 45%; width: 20px; height: 14px;
  background: linear-gradient(135deg, #f0e0c0 0%, #d0c0a0 100%);
  border: 1px solid #8a7a5a;
  border-radius: 1px;
  transform: rotate(-5deg);
  animation: fo-paper 4s ease-in-out infinite alternate;
}
.scn-freedom-offer .lamp {
  position: absolute; bottom: 50%; left: 50%; width: 12px; height: 18px;
  background: radial-gradient(circle at 50% 30%, #ffe080 0%, #c8a050 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 20px 8px rgba(255,200,80,0.6);
  animation: fo-lamp 3s ease-in-out infinite alternate;
}
.scn-freedom-offer .warm-glow {
  position: absolute; bottom: 20%; left: 30%; width: 40%; height: 30%;
  background: radial-gradient(ellipse at center, rgba(255,200,100,0.3) 0%, transparent 100%);
  animation: fo-glow 7s ease-in-out infinite alternate;
}
@keyframes fo-master {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(2deg); }
}
@keyframes fo-equiano {
  0% { transform: translateX(0) translateY(0); }
  25% { transform: translateX(4px) translateY(-1px); }
  50% { transform: translateX(8px) translateY(0); }
  75% { transform: translateX(4px) translateY(-1px); }
  100% { transform: translateX(0) translateY(0); }
}
@keyframes fo-paper {
  0% { transform: rotate(-5deg) scale(1); }
  50% { transform: rotate(2deg) scale(1.03); }
  100% { transform: rotate(-3deg) scale(0.98); }
}
@keyframes fo-lamp {
  0% { opacity: 0.8; box-shadow: 0 0 15px 5px rgba(255,200,80,0.4); }
  50% { opacity: 1; box-shadow: 0 0 30px 12px rgba(255,200,80,0.7); }
  100% { opacity: 0.9; box-shadow: 0 0 20px 8px rgba(255,200,80,0.5); }
}
@keyframes fo-glow {
  0% { opacity: 0.3; transform: scale(1); }
  50% { opacity: 0.5; transform: scale(1.1); }
  100% { opacity: 0.4; transform: scale(0.95); }
}

.scn-verses-continued-4 { background: linear-gradient(135deg, #1a150e 0%, #2a1f14 30%, #0d0b07 70%, #1a120c 100%), radial-gradient(ellipse at 30% 80%, #3a2a1a 0%, transparent 70%); }
.scn-verses-continued-4 .wall-left { position:absolute; top:0; left:0; width:45%; height:100%; background: linear-gradient(90deg, #2c1e12 0%, #1a100a 100%); box-shadow: inset -8px 0 15px rgba(0,0,0,0.7); }
.scn-verses-continued-4 .wall-right { position:absolute; top:0; right:0; width:35%; height:100%; background: linear-gradient(90deg, #1e140c 0%, #0d0905 100%); box-shadow: inset 8px 0 15px rgba(0,0,0,0.7); }
.scn-verses-continued-4 .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #1e120a 0%, #0a0603 100%); box-shadow: inset 0 12px 20px rgba(0,0,0,0.5); }
.scn-verses-continued-4 .figure { position:absolute; bottom:28%; left:40%; width:16px; height:44px; background: linear-gradient(180deg, #0f0c0a 0%, #050302 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: vc4-figure 6s ease-in-out infinite; }
.scn-verses-continued-4 .candle { position:absolute; bottom:22%; left:52%; width:8px; height:20px; background: linear-gradient(180deg, #e8d8b0 0%, #c8b080 40%, #8a6a3a 100%); border-radius: 2px 2px 4px 4px; box-shadow: 0 0 8px rgba(200,176,128,0.4); }
.scn-verses-continued-4 .flame { position:absolute; bottom:40%; left:52.5%; width:6px; height:14px; background: radial-gradient(circle, #ffe680 0%, #f0a040 50%, #802000 100%); border-radius: 50% 50% 20% 20%; transform: translateX(-50%); box-shadow: 0 0 20px 6px #f0a040, 0 0 40px 12px rgba(240,160,64,0.4); animation: vc4-flame 2s ease-in-out infinite alternate; }
.scn-verses-continued-4 .crack { position:absolute; top:15%; left:50%; width:2px; height:55%; background: linear-gradient(180deg, #2a1a0e 0%, #0d0804 100%); transform: rotate(8deg); transform-origin: top; animation: vc4-crack 20s ease-in-out infinite; }
.scn-verses-continued-4 .shadow { position:absolute; bottom:28%; left:38%; width:40px; height:4px; background: rgba(0,0,0,0.6); filter: blur(6px); border-radius: 50%; animation: vc4-shadow 6s ease-in-out infinite; }
@keyframes vc4-figure { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(4px) rotate(1deg); } 50% { transform: translateX(8px) rotate(-1deg); } 75% { transform: translateX(4px) rotate(2deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes vc4-flame { 0% { transform: translateX(-50%) scaleY(1) scaleX(1); opacity:0.8; } 30% { transform: translateX(-48%) scaleY(1.1) scaleX(0.9); opacity:1; } 60% { transform: translateX(-52%) scaleY(0.9) scaleX(1.1); opacity:0.9; } 100% { transform: translateX(-50%) scaleY(1) scaleX(1); opacity:0.8; } }
@keyframes vc4-crack { 0%,100% { transform: rotate(8deg) scaleX(1); } 50% { transform: rotate(12deg) scaleX(1.1); } }
@keyframes vc4-shadow { 0%,100% { transform: scaleX(1) translateX(0); opacity:0.8; } 50% { transform: scaleX(1.2) translateX(3px); opacity:0.9; } }

.scn-verses-continued-5 { background: linear-gradient(135deg, #121012 0%, #1a151a 40%, #0a080a 70%, #1e181e 100%), radial-gradient(ellipse at 40% 60%, #2a1e2a 0%, transparent 70%); }
.scn-verses-continued-5 .window-frame { position:absolute; top:10%; left:20%; width:60%; height:65%; border: 8px solid #2a2018; background: transparent; box-shadow: inset 0 0 20px rgba(0,0,0,0.6); border-radius: 4px; }
.scn-verses-continued-5 .window-glass { position:absolute; top:12%; left:22%; width:56%; height:61%; background: linear-gradient(180deg, #3a2e3a 0%, #1e161e 50%, #2a202a 100%); opacity:0.7; }
.scn-verses-continued-5 .cloud.a { position:absolute; top:18%; left:5%; width:80px; height:24px; background: linear-gradient(180deg, rgba(60,50,60,0.9) 0%, rgba(30,20,30,0.5) 100%); border-radius: 50%; filter: blur(8px); animation: vc5-cloud-a 40s linear infinite; }
.scn-verses-continued-5 .cloud.b { position:absolute; top:25%; right:10%; width:100px; height:20px; background: linear-gradient(180deg, rgba(50,40,50,0.8) 0%, rgba(20,10,20,0.4) 100%); border-radius: 50%; filter: blur(10px); animation: vc5-cloud-b 50s linear infinite reverse; }
.scn-verses-continued-5 .figure-silhouette { position:absolute; bottom:20%; left:40%; width:18px; height:50px; background: linear-gradient(180deg, #0f0a0f 0%, #050305 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: scaleX(-1); animation: vc5-figure 8s ease-in-out infinite; }
.scn-verses-continued-5 .desk { position:absolute; bottom:12%; left:30%; width:40%; height:8%; background: linear-gradient(180deg, #2a1e18 0%, #1a100c 100%); border-radius: 2px 2px 0 0; box-shadow: 0 4px 8px rgba(0,0,0,0.5); }
.scn-verses-continued-5 .lamp { position:absolute; bottom:20%; left:55%; width:6px; height:18px; background: #3a2a20; border-radius: 2px; box-shadow: 0 0 10px rgba(180,140,80,0.3); }
@keyframes vc5-cloud-a { 0% { transform: translateX(-100px); } 100% { transform: translateX(120vw); } }
@keyframes vc5-cloud-b { 0% { transform: translateX(0); } 100% { transform: translateX(-130vw); } }
@keyframes vc5-figure { 0% { transform: scaleX(-1) translateY(0) rotate(-1deg); } 30% { transform: scaleX(-1) translateY(-2px) rotate(1deg); } 60% { transform: scaleX(-1) translateY(0) rotate(-1deg); } 100% { transform: scaleX(-1) translateY(-1px) rotate(1deg); } }

.scn-verses-continued-6 { background: linear-gradient(180deg, #0f0808 0%, #1a1010 30%, #080404 70%, #120a0a 100%), radial-gradient(ellipse at 20% 90%, #2a1820 0%, transparent 70%); }
.scn-verses-continued-6 .cell-wall { position:absolute; left:0; top:0; width:30%; height:100%; background: linear-gradient(90deg, #1a1210 0%, #0e0808 100%); box-shadow: inset -10px 0 20px rgba(0,0,0,0.8); }
.scn-verses-continued-6 .cell-floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #121010 0%, #060404 100%); }
.scn-verses-continued-6 .kneeling-figure { position:absolute; bottom:30%; left:45%; width:20px; height:40px; background: linear-gradient(180deg, #100a0a 0%, #050303 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: vc6-kneel 10s ease-in-out infinite; }
.scn-verses-continued-6 .chain { position:absolute; bottom:45%; left:42%; width:30px; height:4px; background: linear-gradient(90deg, #605050 0%, #403030 50%, #605050 100%); border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.5); animation: vc6-chain 12s ease-in-out infinite; }
.scn-verses-continued-6 .manacle { position:absolute; bottom:48%; left:40%; width:8px; height:12px; background: #504040; border-radius: 4px; box-shadow: 0 0 6px rgba(0,0,0,0.6); animation: vc6-manacle 12s ease-in-out infinite; }
.scn-verses-continued-6 .light-shaft { position:absolute; top:0; left:20%; width:60%; height:100%; background: linear-gradient(180deg, rgba(200,180,120,0.08) 0%, rgba(200,180,120,0.03) 40%, transparent 70%); transform: skewX(-10deg); animation: vc6-light 15s ease-in-out infinite alternate; }
.scn-verses-continued-6 .dust { position:absolute; top:10%; left:30%; width:4px; height:4px; background: rgba(200,180,140,0.15); border-radius: 50%; filter: blur(2px); animation: vc6-dust 8s linear infinite; }
@keyframes vc6-kneel { 0% { transform: translateY(0) rotate(2deg); } 25% { transform: translateY(-3px) rotate(-1deg); } 50% { transform: translateY(0) rotate(2deg); } 75% { transform: translateY(-2px) rotate(0deg); } 100% { transform: translateY(0) rotate(2deg); } }
@keyframes vc6-chain { 0%,100% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(1px) rotate(3deg); } 50% { transform: translateY(-2px) rotate(-3deg); } 75% { transform: translateY(1px) rotate(2deg); } }
@keyframes vc6-manacle { 0%,100% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(2px) rotate(4deg); } 50% { transform: translateY(-1px) rotate(-3deg); } 75% { transform: translateY(1px) rotate(2deg); } }
@keyframes vc6-light { 0% { opacity:0.2; } 50% { opacity:0.6; } 100% { opacity:0.2; } }
@keyframes vc6-dust { 0% { transform: translateY(0) translateX(30px); opacity:0; } 20% { opacity:0.6; } 100% { transform: translateY(-40px) translateX(10px); opacity:0; } }

.scn-verses-continued-7 { background: linear-gradient(90deg, #0a0608 0%, #161012 30%, #0c080a 70%, #0e0a0c 100%), radial-gradient(ellipse at 50% 30%, #2a2028 0%, transparent 70%); }
.scn-verses-continued-7 .bar.left { position:absolute; left:20%; top:0; width:6px; height:100%; background: linear-gradient(180deg, #3a3028 0%, #1a1410 100%); box-shadow: 2px 0 6px rgba(0,0,0,0.6); animation: vc7-bar 12s ease-in-out infinite; }
.scn-verses-continued-7 .bar.middle { position:absolute; left:48%; top:0; width:6px; height:100%; background: linear-gradient(180deg, #3a3028 0%, #1a1410 100%); box-shadow: 2px 0 6px rgba(0,0,0,0.6); animation: vc7-bar 12s 0.5s ease-in-out infinite; }
.scn-verses-continued-7 .bar.right { position:absolute; right:20%; top:0; width:6px; height:100%; background: linear-gradient(180deg, #3a3028 0%, #1a1410 100%); box-shadow: -2px 0 6px rgba(0,0,0,0.6); animation: vc7-bar 12s 1s ease-in-out infinite; }
.scn-verses-continued-7 .prisoner { position:absolute; bottom:20%; left:43%; width:20px; height:50px; background: linear-gradient(180deg, #0f0a0c 0%, #050304 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: vc7-prisoner 8s ease-in-out infinite; }
.scn-verses-continued-7 .shackle { position:absolute; bottom:48%; left:41%; width:12px; height:6px; background: #504040; border-radius: 3px; box-shadow: 0 0 4px rgba(0,0,0,0.7); animation: vc7-shackle 8s ease-in-out infinite; }
.scn-verses-continued-7 .ground { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #1a1012 0%, #0a0608 100%); box-shadow: inset 0 8px 16px rgba(0,0,0,0.5); }
.scn-verses-continued-7 .shadow-bar { position:absolute; left:18%; top:0; width:10px; height:100%; background: linear-gradient(180deg, rgba(0,0,0,0.2) 0%, rgba(0,0,0,0.4) 100%); filter: blur(8px); animation: vc7-shadow-bar 12s ease-in-out infinite; }
@keyframes vc7-bar { 0%,100% { transform: scaleY(1); } 25% { transform: scaleY(1.01) translateX(1px); } 50% { transform: scaleY(1); } 75% { transform: scaleY(0.99) translateX(-1px); } }
@keyframes vc7-prisoner { 0% { transform: translateY(0) rotate(-1deg); } 20% { transform: translateY(-2px) rotate(1deg); } 40% { transform: translateY(1px) rotate(-1deg); } 60% { transform: translateY(-1px) rotate(2deg); } 80% { transform: translateY(2px) rotate(0deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes vc7-shackle { 0%,100% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(1px) rotate(3deg); } 50% { transform: translateY(-2px) rotate(-3deg); } 75% { transform: translateY(1px) rotate(2deg); } }
@keyframes vc7-shadow-bar { 0%,100% { transform: scaleY(1); } 25% { transform: scaleY(1.02); } 50% { transform: scaleY(1); } 75% { transform: scaleY(0.98); } }

.scn-benin-houses {
  background:
    linear-gradient(180deg, #ffeecc 0%, #ffd699 40%, #d9a668 70%, #b5834a 100%),
    radial-gradient(ellipse at 50% 100%, #f0c87a 0%, transparent 60%);
}
.scn-benin-houses .sky {
  position:absolute; inset:0 0 55% 0;
  background: linear-gradient(180deg, #b7d9f0 0%, #fee3b0 100%);
  animation: bh-sky 12s ease-in-out infinite alternate;
}
.scn-benin-houses .ground {
  position:absolute; bottom:0; left:0; right:0; height:55%;
  background: linear-gradient(180deg, #d9a668 0%, #b5834a 50%, #8c6a38 100%);
  border-radius:30% 0 0 0;
}
.scn-benin-houses .enclosure-wall {
  position:absolute; bottom:30%; width:8%; height:35%;
  background: linear-gradient(180deg, #a67c4e 0%, #7a5a34 100%);
  border-radius:8% 8% 0 0;
  box-shadow: inset -4px 0 10px rgba(0,0,0,.3);
}
.scn-benin-houses .wall-left { left:15%; }
.scn-benin-houses .wall-right { right:15%; }
.scn-benin-houses .house-main {
  position:absolute; bottom:22%; left:35%; width:30%; height:28%;
  background: linear-gradient(180deg, #bd8f5c 0%, #9b733f 100%);
  border-radius:6% 6% 0 0;
  box-shadow: 0 4px 8px rgba(0,0,0,.3);
  animation: bh-house 8s ease-in-out infinite;
}
.scn-benin-houses .roof-thatch {
  position:absolute; bottom:45%; left:32%; width:36%; height:14%;
  background: linear-gradient(180deg, #c2a46e 0%, #947a4a 100%);
  border-radius:50% 50% 0 0;
  box-shadow: 0 -4px 8px rgba(0,0,0,.15);
  animation: bh-roof 10s ease-in-out infinite alternate;
}
.scn-benin-houses .raised-bed {
  position:absolute; bottom:18%; left:40%; width:20%; height:8%;
  background: linear-gradient(180deg, #c4a87a 0%, #a68555 100%);
  border-radius:8%;
  box-shadow: 0 3px 6px rgba(0,0,0,.2);
  animation: bh-bed 6s ease-in-out infinite;
}
.scn-benin-houses .bench {
  position:absolute; bottom:12%; left:53%; width:16%; height:5%;
  background: linear-gradient(90deg, #8c6a38 0%, #a67c4e 50%, #8c6a38 100%);
  border-radius:4%;
  box-shadow: 0 2px 4px rgba(0,0,0,.3);
  animation: bh-bench 9s ease-in-out infinite alternate;
}
.scn-benin-houses .figure-sit {
  position:absolute; bottom:14%; left:58%; width:5%; height:10%;
  background: linear-gradient(180deg, #5a3e2a 0%, #3a2518 100%);
  border-radius:50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bh-figure 4s ease-in-out infinite;
}
@keyframes bh-sky { 0%{opacity:.8} 50%{opacity:1} 100%{opacity:.85} }
@keyframes bh-house { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-2px)} }
@keyframes bh-roof { 0%{transform:scaleY(1)} 50%{transform:scaleY(1.03)} 100%{transform:scaleY(1)} }
@keyframes bh-bed { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-1px)} }
@keyframes bh-bench { 0%{opacity:.9} 50%{opacity:1} 100%{opacity:.95} }
@keyframes bh-figure { 0%,100%{transform:translateY(0) rotate(0)} 50%{transform:translateY(-1px) rotate(2deg)} }

.scn-benin-trade {
  background:
    linear-gradient(180deg, #ffe8c0 0%, #fccf8a 40%, #e0a860 70%, #c48840 100%),
    radial-gradient(ellipse at 30% 60%, #ffe8b0 0%, transparent 50%),
    radial-gradient(ellipse at 70% 40%, #ffe0a0 0%, transparent 50%);
}
.scn-benin-trade .sky {
  position:absolute; inset:0 0 50% 0;
  background: linear-gradient(180deg, #aad0f0 0%, #fce3b0 100%);
  animation: bt-sky 15s ease-in-out infinite alternate;
}
.scn-benin-trade .market-ground {
  position:absolute; bottom:0; left:0; right:0; height:50%;
  background: linear-gradient(180deg, #d9a668 0%, #b5834a 40%, #8c6a38 100%);
}
.scn-benin-trade .stall {
  position:absolute; bottom:20%; width:14%; height:25%;
  background: linear-gradient(180deg, #b38b5a 0%, #8c6a38 100%);
  border-radius:6% 6% 0 0;
  box-shadow: inset 0 4px 8px rgba(0,0,0,.2);
}
.scn-benin-trade .stall-a { left:18%; }
.scn-benin-trade .stall-b { right:18%; }
.scn-benin-trade .goods-pots {
  position:absolute; bottom:32%; left:24%; width:10%; height:10%;
  background: radial-gradient(circle, #c87533 0%, #a55a28 60%, #7a3d1a 100%);
  border-radius:50% 50% 40% 40%;
  box-shadow: 0 2px 6px rgba(0,0,0,.4);
  animation: bt-pots 4s ease-in-out infinite alternate;
}
.scn-benin-trade .goods-calico {
  position:absolute; bottom:30%; right:24%; width:12%; height:14%;
  background: linear-gradient(90deg, #e8d8b8 0%, #d4b88a 50%, #e8d8b8 100%);
  border-radius:8% 8% 20% 20%;
  box-shadow: 0 2px 4px rgba(0,0,0,.2);
  animation: bt-calico 7s ease-in-out infinite;
}
.scn-benin-trade .trader {
  position:absolute; bottom:18%; width:6%; height:16%;
  background: linear-gradient(180deg, #4d3320 0%, #2e1c10 100%);
  border-radius:50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
}
.scn-benin-trade .trader-left { left:32%; animation: bt-trader-l 5s ease-in-out infinite; }
.scn-benin-trade .trader-right { right:32%; animation: bt-trader-r 5s ease-in-out infinite 2.5s; }
.scn-benin-trade .coin-anchor {
  position:absolute; bottom:35%; left:48%; width:4%; height:4%;
  background: radial-gradient(circle, #f0d080 0%, #c8a040 70%, #a08030 100%);
  border-radius:50%;
  box-shadow: 0 0 8px 2px #f0d080;
  animation: bt-coin 3s ease-in-out infinite;
}
@keyframes bt-sky { 0%{opacity:.85} 50%{opacity:1} 100%{opacity:.9} }
@keyframes bt-pots { 0%{transform:scale(1)} 50%{transform:scale(1.05)} 100%{transform:scale(1)} }
@keyframes bt-calico { 0%,100%{transform:translateX(0)} 50%{transform:translateX(-2px)} }
@keyframes bt-trader-l { 0%,100%{transform:translateY(0) rotate(0)} 50%{transform:translateY(-2px) rotate(-3deg)} }
@keyframes bt-trader-r { 0%,100%{transform:translateY(0) rotate(0)} 50%{transform:translateY(-1px) rotate(4deg)} }
@keyframes bt-coin { 0%,100%{opacity:.7; transform:rotate(-5deg)} 50%{opacity:1; transform:rotate(5deg) scale(1.1)} }

.scn-benin-agriculture {
  background:
    linear-gradient(180deg, #e8f4d8 0%, #d4e8b0 30%, #b8d48a 60%, #8cb85a 100%),
    radial-gradient(ellipse at 50% 80%, #d4e8b0 0%, transparent 60%);
}
.scn-benin-agriculture .sky-field {
  position:absolute; inset:0 0 45% 0;
  background: linear-gradient(180deg, #89c4e0 0%, #b8e0f0 100%);
  animation: ba-sky 14s ease-in-out infinite alternate;
}
.scn-benin-agriculture .field-bg {
  position:absolute; bottom:0; left:0; right:0; height:45%;
  background: linear-gradient(180deg, #7a9a4a 0%, #5a7a2a 100%);
  border-radius:20% 20% 0 0;
}
.scn-benin-agriculture .crop-row {
  position:absolute; bottom:10%; height:20%; width:100%;
  background: repeating-linear-gradient(90deg, #6a8a3a 0px, #6a8a3a 4px, transparent 4px, transparent 12px);
  animation: ba-crops 6s ease-in-out infinite alternate;
}
.scn-benin-agriculture .row-1 { bottom:28%; transform:scaleX(.9); }
.scn-benin-agriculture .row-2 { bottom:16%; transform:scaleX(.95); }
.scn-benin-agriculture .row-3 { bottom:4%; transform:scaleX(1); }
.scn-benin-agriculture .worker-farmer {
  position:absolute; bottom:12%; left:35%; width:7%; height:18%;
  background: linear-gradient(180deg, #5a3e2a 0%, #3a2518 100%);
  border-radius:50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ba-worker 4s ease-in-out infinite;
}
.scn-benin-agriculture .hoe-tool {
  position:absolute; bottom:18%; left:30%; width:1.5%; height:14%;
  background: linear-gradient(180deg, #7a5a2a 0%, #4a3018 100%);
  border-radius:10%;
  transform:rotate(-30deg);
  transform-origin: bottom center;
  animation: ba-hoe 4s ease-in-out infinite alternate;
}
.scn-benin-agriculture .sun-ball {
  position:absolute; top:8%; right:15%; width:8%; height:8%;
  background: radial-gradient(circle, #fff4c0 0%, #fcd080 40%, #f0a040 70%, transparent 100%);
  border-radius:50%;
  box-shadow: 0 0 40px 10px #fcd080;
  animation: ba-sun 12s ease-in-out infinite;
}
@keyframes ba-sky { 0%{opacity:.8} 50%{opacity:1} 100%{opacity:.85} }
@keyframes ba-crops { 0%{opacity:.6} 50%{opacity:.9} 100%{opacity:.7} }
@keyframes ba-worker { 0%,100%{transform:translateY(0) rotate(0)} 50%{transform:translateY(-2px) rotate(3deg)} }
@keyframes ba-hoe { 0%{transform:rotate(-30deg)} 50%{transform:rotate(-20deg)} 100%{transform:rotate(-30deg)} }
@keyframes ba-sun { 0%,100%{transform:scale(1)} 50%{transform:scale(1.05); box-shadow:0 0 50px 15px #fcd080} }

.scn-benin-agriculture-detail {
  background:
    linear-gradient(180deg, #e0f0c8 0%, #c8e0a8 30%, #a8c880 60%, #80b05a 100%),
    radial-gradient(ellipse at 50% 100%, #e0f0c8 0%, transparent 60%);
}
.scn-benin-agriculture-detail .sky-detail {
  position:absolute; inset:0 0 40% 0;
  background: linear-gradient(180deg, #94c8e0 0%, #c0e0f0 100%);
  animation: bd-sky 16s ease-in-out infinite alternate;
}
.scn-benin-agriculture-detail .field-detail {
  position:absolute; bottom:0; left:0; right:0; height:40%;
  background: linear-gradient(180deg, #6a8a3a 0%, #4a6a2a 100%);
  border-radius:30% 30% 0 0;
}
.scn-benin-agriculture-detail .furrow {
  position:absolute; bottom:20%; height:6%; width:100%;
  background: repeating-linear-gradient(90deg, #5a7a2a 0px, #5a7a2a 5px, transparent 5px, transparent 15px);
  animation: bd-furrow 8s ease-in-out infinite alternate;
}
.scn-benin-agriculture-detail .f1 { bottom:30%; }
.scn-benin-agriculture-detail .f2 { bottom:20%; }
.scn-benin-agriculture-detail .f3 { bottom:10%; }
.scn-benin-agriculture-detail .child-fig {
  position:absolute; bottom:6%; width:5%; height:12%;
  background: linear-gradient(180deg, #6a4e38 0%, #4a3020 100%);
  border-radius:50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
}
.scn-benin-agriculture-detail .tawny-a { left:20%; animation: bd-child 5s ease-in-out infinite; }
.scn-benin-agriculture-detail .tawny-b { left:35%; animation: bd-child 5s ease-in-out infinite 1.2s; }
.scn-benin-agriculture-detail .tawny-c { left:50%; animation: bd-child 5s ease-in-out infinite 2.4s; }
.scn-benin-agriculture-detail .white-child {
  left:65%;
  background: linear-gradient(180deg, #b8a08c 0%, #8a7a6a 100%);
  animation: bd-child 5s ease-in-out infinite 3.6s;
}
@keyframes bd-sky { 0%{opacity:.8} 50%{opacity:1} 100%{opacity:.85} }
@keyframes bd-furrow { 0%{opacity:.5} 50%{opacity:.8} 100%{opacity:.6} }
@keyframes bd-child { 0%,100%{transform:translateY(0) rotate(0)} 50%{transform:translateY(-2px) rotate(4deg)} }

/* SCENE: item-pocket-bible */
.scn-item-pocket-bible {
  background: linear-gradient(180deg, #1f1a12 0%, #2a2218 40%, #3b2e22 70%, #4a3828 100%),
              radial-gradient(ellipse at 50% 90%, #5a4530 0%, transparent 70%);
}
.scn-item-pocket-bible .wall-back {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #2a1f15 0%, #3a2a1a 60%);
  animation: pb-wall 20s ease-in-out infinite alternate;
}
.scn-item-pocket-bible .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1f150a 100%);
  border-radius: 30% 70% 0 0 / 20% 40% 0 0;
}
.scn-item-pocket-bible .window-shape {
  position: absolute; top: 12%; left: 8%; width: 70px; height: 90px;
  background: linear-gradient(135deg, #5a4a35 0%, #3a2a1a 100%);
  border-radius: 6px; box-shadow: inset 0 0 20px rgba(0,0,0,0.6);
  animation: pb-window 8s ease-in-out infinite;
}
.scn-item-pocket-bible .candle-glow {
  position: absolute; bottom: 48%; left: 20%; width: 12px; height: 20px;
  background: radial-gradient(circle, #f0c060 0%, #c08030 60%, transparent 80%);
  border-radius: 50%; box-shadow: 0 0 40px 15px #c08030, 0 0 80px 30px rgba(192,128,48,0.4);
  animation: pb-candle 3s ease-in-out infinite alternate;
}
.scn-item-pocket-bible .table {
  position: absolute; bottom: 30%; left: 12%; width: 120px; height: 18px;
  background: linear-gradient(180deg, #4a3828 0%, #2a1f15 100%);
  border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: pb-table 12s ease-in-out infinite;
}
.scn-item-pocket-bible .bible {
  position: absolute; bottom: 32%; left: 22%; width: 28px; height: 36px;
  background: linear-gradient(180deg, #5a4030 0%, #3a2818 100%);
  border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,0.6);
  transform-origin: center bottom;
  animation: pb-bible 6s ease-in-out infinite;
}
.scn-item-pocket-bible .hand-giving {
  position: absolute; bottom: 30%; left: 32%; width: 22px; height: 30px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom left;
  animation: pb-hand 4s ease-in-out infinite alternate;
}
.scn-item-pocket-bible .prayer-shadow {
  position: absolute; bottom: 20%; right: 10%; width: 40px; height: 60px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.3) 0%, transparent 80%);
  border-radius: 50%;
  animation: pb-shadow 10s ease-in-out infinite;
}
@keyframes pb-wall { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes pb-window { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(1) } }
@keyframes pb-candle { 0% { box-shadow: 0 0 30px 10px #c08030; opacity: 0.8 } 50% { box-shadow: 0 0 50px 20px #f0c060; opacity: 1 } 100% { box-shadow: 0 0 35px 12px #c08030; opacity: 0.9 } }
@keyframes pb-table { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes pb-bible { 0%,100% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-3px) rotate(2deg) } }
@keyframes pb-hand { 0% { transform: translateX(0) rotate(5deg) } 100% { transform: translateX(2px) rotate(-2deg) } }
@keyframes pb-shadow { 0%,100% { opacity: 0.3 } 50% { opacity: 0.5 } }

/* SCENE: cadiz-arrival */
.scn-cadiz-arrival {
  background: linear-gradient(180deg, #7abaff 0%, #b0d8ff 30%, #ffdd88 50%, #ffc060 70%, #e0a050 100%),
              radial-gradient(ellipse at 50% 30%, #ffe080 0%, transparent 60%);
}
.scn-cadiz-arrival .sky-grad {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #8ac4ff 0%, #ffe080 100%);
  animation: ca-sky 15s ease-in-out infinite alternate;
}
.scn-cadiz-arrival .sun-disc {
  position: absolute; top: 20%; left: 60%; width: 60px; height: 60px;
  background: radial-gradient(circle, #fff0b0 0%, #ffd060 40%, transparent 70%);
  border-radius: 50%; box-shadow: 0 0 80px 30px #ffc040, 0 0 160px 60px rgba(255,192,64,0.4);
  animation: ca-sun 6s ease-in-out infinite alternate;
}
.scn-cadiz-arrival .sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 48%;
  background: linear-gradient(180deg, #3a7a9a 0%, #2a5a7a 100%);
  animation: ca-sea 10s linear infinite;
}
.scn-cadiz-arrival .galleon-hull {
  position: absolute; bottom: 22%; left: 20%; width: 90px; height: 30px;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2210 100%);
  border-radius: 30% 30% 20% 20% / 60% 60% 40% 40%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.5);
  animation: ca-hull 8s ease-in-out infinite;
}
.scn-cadiz-arrival .galleon-mast {
  position: absolute; bottom: 42%; left: 28%; width: 6px; height: 60px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a150a 100%);
  border-radius: 2px;
  animation: ca-mast 8s ease-in-out infinite;
}
.scn-cadiz-arrival .galleon-sail {
  position: absolute; bottom: 45%; left: 24%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #f0e0c0 0%, #d0b080 100%);
  border-radius: 40% 60% 40% 60% / 60% 40% 60% 40%;
  animation: ca-sail 6s ease-in-out infinite;
}
.scn-cadiz-arrival .wave-front {
  position: absolute; bottom: 10%; left: 0; right: 0; height: 18px;
  background: radial-gradient(ellipse at 30% 50%, #4a8aaa 0%, transparent 70%);
  border-radius: 50%;
  animation: ca-wave1 4s ease-in-out infinite alternate;
}
.scn-cadiz-arrival .wave-back {
  position: absolute; bottom: 18%; left: 0; right: 0; height: 14px;
  background: radial-gradient(ellipse at 70% 50%, #3a6a8a 0%, transparent 70%);
  border-radius: 50%;
  animation: ca-wave2 5s ease-in-out infinite alternate;
  animation-delay: 1s;
}
.scn-cadiz-arrival .seagull {
  position: absolute; top: 15%; right: 30%; width: 16px; height: 8px;
  background: radial-gradient(ellipse, #fff 0%, #ccc 100%);
  border-radius: 50%;
  animation: ca-gull 30s linear infinite;
}
@keyframes ca-sky { 0% { background-position: 0 0 } 50% { background-position: 0 5% } 100% { background-position: 0 0 } }
@keyframes ca-sun { 0% { transform: scale(1) } 50% { transform: scale(1.05) } 100% { transform: scale(0.95) } }
@keyframes ca-sea { 0% { background-position: 0 0 } 100% { background-position: 0 20% } }
@keyframes ca-hull { 0%,100% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-4px) rotate(1deg) } }
@keyframes ca-mast { 0%,100% { transform: rotate(0) } 50% { transform: rotate(1deg) } }
@keyframes ca-sail { 0%,100% { transform: scaleX(1) } 50% { transform: scaleX(1.05) scaleY(0.98) } }
@keyframes ca-wave1 { 0% { transform: translateX(0) scaleY(1) } 100% { transform: translateX(10px) scaleY(1.2) } }
@keyframes ca-wave2 { 0% { transform: translateX(0) scaleY(1) } 100% { transform: translateX(-10px) scaleY(1.15) } }
@keyframes ca-gull { 0% { transform: translateX(0) } 100% { transform: translateX(-120vw) } }

/* SCENE: conversion-experience */
.scn-conversion-experience {
  background: linear-gradient(180deg, #1a1410 0%, #2a2018 40%, #3a2a1a 70%, #4a3020 100%),
              radial-gradient(ellipse at 50% 60%, #5a4030 0%, transparent 70%);
}
.scn-conversion-experience .room-shadow {
  position: absolute; inset: 0 0 0 0;
  background: linear-gradient(180deg, #1a1410 0%, #2a2018 70%, #1a1410 100%);
  animation: ce-shadow 15s ease-in-out infinite alternate;
}
.scn-conversion-experience .beam-top {
  position: absolute; top: 0; left: 40%; width: 20%; height: 25%;
  background: linear-gradient(180deg, #e0c080 0%, #c0a060 60%, transparent 100%);
  clip-path: polygon(20% 0, 80% 0, 60% 100%, 40% 100%);
  animation: ce-beam 6s ease-in-out infinite alternate;
}
.scn-conversion-experience .figure-kneel {
  position: absolute; bottom: 25%; left: 42%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #2a2218 0%, #1a1410 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ce-kneel 5s ease-in-out infinite;
}
.scn-conversion-experience .cross-light {
  position: absolute; top: 10%; left: 45%; width: 40px; height: 60px;
  background: radial-gradient(ellipse at 50% 30%, #f0d080 0%, #c0a050 40%, transparent 70%);
  border-radius: 10px;
  box-shadow: 0 0 60px 20px rgba(192,160,80,0.4);
  animation: ce-cross 4s ease-in-out infinite alternate;
}
.scn-conversion-experience .floor-line {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 2px;
  background: linear-gradient(90deg, transparent 0%, #4a3828 50%, transparent 100%);
  animation: ce-floor 12s linear infinite;
}
.scn-conversion-experience .tear-drop {
  position: absolute; bottom: 30%; left: 48%; width: 4px; height: 8px;
  background: radial-gradient(circle, #b0a0a0 0%, transparent 80%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  animation: ce-tear 2s ease-in-out infinite;
}
.scn-conversion-experience .sparkle {
  position: absolute; top: 20%; left: 50%; width: 6px; height: 6px;
  background: radial-gradient(circle, #ffe080 0%, transparent 70%);
  border-radius: 50%;
  animation: ce-spark 3s ease-in-out infinite alternate;
}
@keyframes ce-shadow { 0% { opacity: 0.7 } 50% { opacity: 0.9 } 100% { opacity: 0.75 } }
@keyframes ce-beam { 0% { opacity: 0.6; transform: scaleY(1) } 50% { opacity: 1; transform: scaleY(1.05) } 100% { opacity: 0.7; transform: scaleY(0.98) } }
@keyframes ce-kneel { 0%,100% { transform: translateY(0) rotate(-2deg) } 25% { transform: translateY(-3px) rotate(1deg) } 50% { transform: translateY(-6px) rotate(0) } 75% { transform: translateY(-2px) rotate(-1deg) } }
@keyframes ce-cross { 0% { box-shadow: 0 0 40px 10px rgba(192,160,80,0.3); opacity: 0.8 } 100% { box-shadow: 0 0 80px 30px rgba(192,160,80,0.6); opacity: 1 } }
@keyframes ce-floor { 0% { opacity: 0.3 } 50% { opacity: 0.6 } 100% { opacity: 0.3 } }
@keyframes ce-tear { 0%,100% { transform: translateY(0) scaleY(1); opacity: 0.5 } 50% { transform: translateY(-8px) scaleY(1.5); opacity: 0.8 } }
@keyframes ce-spark { 0% { transform: scale(0.5); opacity: 0 } 100% { transform: scale(2); opacity: 1 } }

/* SCENE: conversion-joy */
.scn-conversion-joy {
  background: linear-gradient(180deg, #2a2218 0%, #3a2a1a 30%, #5a4030 60%, #7a5040 100%),
              radial-gradient(ellipse at 50% 40%, #c0a060 0%, transparent 70%);
}
.scn-conversion-joy .room-glow {
  position: absolute; inset: 0 0 0 0;
  background: linear-gradient(180deg, #3a2a1a 0%, #5a4030 40%, #3a2a1a 100%);
  animation: cj-glow 20s ease-in-out infinite alternate;
}
.scn-conversion-joy .light-ray {
  position: absolute; top: 0; left: 30%; width: 40%; height: 60%;
  background: linear-gradient(180deg, #f0d080 0%, #e0b060 50%, transparent 100%);
  clip-path: polygon(30% 0, 70% 0, 55% 100%, 45% 100%);
  animation: cj-ray 7s ease-in-out infinite alternate;
}
.scn-conversion-joy .figure-arms {
  position: absolute; bottom: 20%; left: 42%; width: 35px; height: 60px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1f15 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cj-arms 4s ease-in-out infinite;
}
.scn-conversion-joy .joy-burst {
  position: absolute; top: 30%; left: 45%; width: 50px; height: 50px;
  background: radial-gradient(circle, #ffe080 0%, #d0a050 40%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px rgba(208,160,80,0.5);
  animation: cj-burst 3s ease-in-out infinite alternate;
}
.scn-conversion-joy .tear-stream {
  position: absolute; bottom: 25%; left: 48%; width: 3px; height: 20px;
  background: linear-gradient(180deg, #b0a0a0 0%, transparent 100%);
  border-radius: 2px;
  animation: cj-tear 2s ease-in-out infinite;
}
.scn-conversion-joy .shadow-lift {
  position: absolute; bottom: 0; left: 30%; width: 60px; height: 20px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 70%);
  border-radius: 50%;
  animation: cj-lift 8s ease-in-out infinite alternate;
}
.scn-conversion-joy .peace-ring {
  position: absolute; top: 25%; left: 35%; width: 40px; height: 40px;
  border: 2px solid rgba(240,208,128,0.3);
  border-radius: 50%;
  animation: cj-ring 10s linear infinite;
}
@keyframes cj-glow { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes cj-ray { 0% { opacity: 0.5; transform: scaleY(1) } 50% { opacity: 1; transform: scaleY(1.08) } 100% { opacity: 0.6; transform: scaleY(0.95) } }
@keyframes cj-arms { 0%,100% { transform: translateY(0) rotate(-5deg) } 25% { transform: translateY(-4px) rotate(3deg) } 50% { transform: translateY(-8px) rotate(0) } 75% { transform: translateY(-3px) rotate(-3deg) } }
@keyframes cj-burst { 0% { transform: scale(0.8); opacity: 0.7 } 100% { transform: scale(1.3); opacity: 1 } }
@keyframes cj-tear { 0%,100% { transform: translateY(0) scaleY(1); opacity: 0.4 } 50% { transform: translateY(-12px) scaleY(1.5); opacity: 0.8 } }
@keyframes cj-lift { 0% { transform: scaleY(1) translateY(0) } 100% { transform: scaleY(0.6) translateY(-10px) } }
@keyframes cj-ring { 0% { transform: rotate(0deg) scale(1); opacity: 0.4 } 50% { transform: rotate(180deg) scale(1.1); opacity: 0.8 } 100% { transform: rotate(360deg) scale(1); opacity: 0.4 } }

.scn-slave-ship-terror {
  background: radial-gradient(ellipse at 40% 60%, #4a2210 0%, #1a0a04 70%, #050201 100%);
}
.scn-slave-ship-terror .deck {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #3a1a0a 0%, #1a0802 100%);
  border-radius: 60% 40% 0 0 / 30% 20% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.7);
  animation: st-deck 15s ease-in-out infinite alternate;
}
.scn-slave-ship-terror .wall-deep {
  position: absolute; top: 0; left: 0; right: 0; bottom: 30%;
  background: linear-gradient(180deg, #0d0503 0%, #2a1208 40%, #3a1a0a 70%, #1a0802 100%);
  animation: st-wall 20s ease-in-out infinite alternate;
}
.scn-slave-ship-terror .furnace-glow {
  position: absolute; bottom: 28%; left: 20%; width: 28%; height: 40%;
  background: radial-gradient(ellipse at 50% 100%, #ff8c40 0%, #c85a20 30%, transparent 70%);
  opacity: .65;
  mix-blend-mode: screen;
  animation: st-furnace 4s ease-in-out infinite alternate;
}
.scn-slave-ship-terror .chains {
  position: absolute; bottom: 25%; left: 10%; right: 10%; height: 10%;
  background: repeating-linear-gradient(90deg, #5e3a2a 0px, #5e3a2a 4px, transparent 4px, transparent 12px);
  filter: drop-shadow(0 2px 4px rgba(0,0,0,.8));
  animation: st-chains 6s ease-in-out infinite;
}
.scn-slave-ship-terror .figure-silhouette {
  position: absolute; bottom: 25%; left: 42%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #0a0402 0%, #1a0804 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  box-shadow: 0 0 12px 2px rgba(200,80,30,.2);
  animation: st-terror-figure 5s ease-in-out infinite;
}
.scn-slave-ship-terror .figure-fallen {
  position: absolute; bottom: 20%; left: 35%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #120804 0%, #080402 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 20% 20%;
  transform: rotate(-30deg);
  animation: st-fallen 7s ease-in-out infinite;
}
.scn-slave-ship-terror .porthole {
  position: absolute; top: 15%; left: 65%; width: 40px; height: 40px;
  border-radius: 50%;
  background: radial-gradient(circle at 50% 50%, #1a0a04 0%, #0d0503 100%);
  border: 6px solid #3a1a0a;
  box-shadow: inset 0 0 20px 5px #050201;
  animation: st-porthole 12s ease-in-out infinite alternate;
}
@keyframes st-deck { 0% { opacity:.8; transform: translateY(0) } 50% { opacity:1; transform: translateY(-2px) } 100% { opacity:.85; transform: translateY(0) } }
@keyframes st-wall { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes st-furnace { 0% { opacity:.5; transform: scale(1) } 50% { opacity:.8; transform: scale(1.05) } 100% { opacity:.6; transform: scale(1) } }
@keyframes st-chains { 0% { transform: translateX(0) } 50% { transform: translateX(2px) } 100% { transform: translateX(0) } }
@keyframes st-terror-figure { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 25% { transform: translateX(4px) translateY(-1px) rotate(2deg) } 50% { transform: translateX(8px) translateY(0) rotate(-1deg) } 75% { transform: translateX(4px) translateY(-1px) rotate(1deg) } 100% { transform: translateX(0) translateY(0) rotate(0) } }
@keyframes st-fallen { 0% { transform: rotate(-30deg) translateY(0) } 50% { transform: rotate(-28deg) translateY(1px) } 100% { transform: rotate(-30deg) translateY(0) } }
@keyframes st-porthole { 0% { box-shadow: inset 0 0 20px 5px #050201 } 50% { box-shadow: inset 0 0 30px 8px #0f0603 } 100% { box-shadow: inset 0 0 20px 5px #050201 } }

.scn-slave-ship-fear {
  background: radial-gradient(ellipse at 50% 40%, #2a1408 0%, #0d0603 70%, #020100 100%);
}
.scn-slave-ship-fear .hold-wall {
  position: absolute; top: 0; left: 0; right: 0; bottom: 0;
  background: linear-gradient(135deg, #1a0c06 0%, #0a0502 50%, #1a0c06 100%);
  animation: sf-wall 18s ease-in-out infinite alternate;
}
.scn-slave-ship-fear .figure-kneeling {
  position: absolute; bottom: 25%; left: 35%; width: 24px; height: 48px;
  background: linear-gradient(180deg, #0d0603 0%, #1a0c06 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform: scaleX(-1);
  animation: sf-kneel 4s ease-in-out infinite;
}
.scn-slave-ship-fear .hand-offering {
  position: absolute; bottom: 30%; left: 48%; width: 16px; height: 20px;
  background: #2a1408;
  border-radius: 40% 40% 10% 10% / 50% 50% 10% 10%;
  transform: rotate(30deg);
  animation: sf-hand 3s ease-in-out infinite alternate;
}
.scn-slave-ship-fear .cup {
  position: absolute; bottom: 28%; left: 50%; width: 14px; height: 18px;
  background: linear-gradient(180deg, #4a2a18 0%, #2a1408 100%);
  border-radius: 20% 20% 30% 30% / 20% 20% 40% 40%;
  box-shadow: 0 2px 6px rgba(0,0,0,.8);
  animation: sf-cup 5s ease-in-out infinite;
}
.scn-slave-ship-fear .chain-link {
  position: absolute; bottom: 22%; left: 20%; width: 6px; height: 30px;
  background: repeating-linear-gradient(90deg, #5e3a2a 0px, #5e3a2a 3px, transparent 3px, transparent 8px);
  border-radius: 50%;
  animation: sf-chain 8s ease-in-out infinite;
}
.scn-slave-ship-fear .shadow-beams {
  position: absolute; top: 30%; left: 10%; width: 80%; height: 40%;
  background: repeating-linear-gradient(45deg, transparent 0px, transparent 20px, rgba(0,0,0,.3) 20px, rgba(0,0,0,.3) 22px);
  animation: sf-beams 12s linear infinite;
}
@keyframes sf-wall { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes sf-kneel { 0% { transform: translateX(0) translateY(0) rotate(-1deg) } 25% { transform: translateX(3px) translateY(-1px) rotate(1deg) } 50% { transform: translateX(6px) translateY(0) rotate(-1deg) } 75% { transform: translateX(3px) translateY(-1px) rotate(1deg) } 100% { transform: translateX(0) translateY(0) rotate(0) } }
@keyframes sf-hand { 0% { transform: rotate(30deg) translateY(0) } 50% { transform: rotate(32deg) translateY(-2px) } 100% { transform: rotate(30deg) translateY(0) } }
@keyframes sf-cup { 0% { opacity:.9; transform: translateY(0) } 50% { opacity:1; transform: translateY(-1px) } 100% { opacity:.85; transform: translateY(0) } }
@keyframes sf-chain { 0% { transform: rotate(0) } 50% { transform: rotate(5deg) } 100% { transform: rotate(0) } }
@keyframes sf-beams { 0% { background-position: 0 0 } 100% { background-position: 40px 40px } }

.scn-slave-ship-flogging {
  background: radial-gradient(ellipse at 30% 50%, #1a0804 0%, #050201 70%, #000000 100%);
}
.scn-slave-ship-flogging .hull-curve {
  position: absolute; top: 0; left: 0; right: 0; bottom: 0;
  background: linear-gradient(180deg, #0d0503 0%, #1a0a04 40%, #0d0503 100%);
  border-radius: 0 0 30% 30% / 0 0 20% 20%;
  animation: sfl-hull 20s ease-in-out infinite alternate;
}
.scn-slave-ship-flogging .victim-back {
  position: absolute; bottom: 25%; left: 38%; width: 26px; height: 40px;
  background: linear-gradient(180deg, #2a1208 0%, #1a0a04 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 20% 20%;
  transform: rotate(10deg);
  animation: sfl-victim 5s ease-in-out infinite;
}
.scn-slave-ship-flogging .arm-holding {
  position: absolute; bottom: 30%; left: 44%; width: 10px; height: 30px;
  background: #1a0a04;
  border-radius: 30% 30% 20% 20%;
  transform: rotate(-20deg);
  animation: sfl-arm 3s ease-in-out infinite alternate;
}
.scn-slave-ship-flogging .whip {
  position: absolute; bottom: 38%; left: 50%; width: 4px; height: 60px;
  background: linear-gradient(180deg, #2a1408 0%, #1a0a04 50%, transparent 100%);
  border-radius: 50% 50% 0 0;
  transform-origin: top left;
  animation: sfl-whip 2s ease-in-out infinite;
}
.scn-slave-ship-flogging .flogger-shadow {
  position: absolute; bottom: 30%; left: 56%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #0a0402 0%, #050201 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  opacity: .8;
  animation: sfl-flogger 4s ease-in-out infinite;
}
.scn-slave-ship-flogging .blood-drop {
  position: absolute; bottom: 22%; left: 36%; width: 4px; height: 6px;
  background: #5e1a1d;
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  animation: sfl-blood 6s ease-in-out infinite;
}
.scn-slave-ship-flogging .straw-bed {
  position: absolute; bottom: 0; left: 10%; right: 20%; height: 8%;
  background: linear-gradient(180deg, #3a2a18 0%, #2a1a0e 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 4px 8px rgba(0,0,0,.5);
  animation: sfl-straw 12s ease-in-out infinite alternate;
}
@keyframes sfl-hull { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes sfl-victim { 0% { transform: rotate(10deg) translateY(0) } 50% { transform: rotate(12deg) translateY(1px) } 100% { transform: rotate(10deg) translateY(0) } }
@keyframes sfl-arm { 0% { transform: rotate(-20deg) translateY(0) } 50% { transform: rotate(-22deg) translateY(-2px) } 100% { transform: rotate(-20deg) translateY(0) } }
@keyframes sfl-whip { 0% { transform: rotate(-40deg) } 50% { transform: rotate(-20deg) } 100% { transform: rotate(-40deg) } }
@keyframes sfl-flogger { 0% { transform: translateX(0) } 50% { transform: translateX(3px) } 100% { transform: translateX(0) } }
@keyframes sfl-blood { 0% { opacity:.6; transform: translateY(0) } 50% { opacity:.8; transform: translateY(2px) } 100% { opacity:.6; transform: translateY(0) } }
@keyframes sfl-straw { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }

.scn-slave-ship-companions {
  background: radial-gradient(ellipse at 50% 30%, #2a140a 0%, #0a0502 60%, #020100 100%);
}
.scn-slave-ship-companions .hold-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #1a0c06 0%, #0a0502 100%);
  border-radius: 40% 60% 0 0 / 20% 30% 0 0;
  animation: sc-floor 18s ease-in-out infinite alternate;
}
.scn-slave-ship-companions .group-figures {
  position: absolute; bottom: 22%; left: 30%; width: 60px; height: 50px;
  background: linear-gradient(180deg, #0d0603 0%, #1a0c06 50%, #0d0603 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 20% 20%;
  box-shadow: 0 0 10px 2px rgba(0,0,0,.6);
  animation: sc-group 8s ease-in-out infinite;
}
.scn-slave-ship-companions .shoulder-touch {
  position: absolute; bottom: 30%; left: 42%; width: 8px; height: 12px;
  background: #1a0c06;
  border-radius: 40% 40% 20% 20%;
  transform: rotate(15deg);
  animation: sc-touch 3s ease-in-out infinite alternate;
}
.scn-slave-ship-companions .chain-collective {
  position: absolute; bottom: 18%; left: 25%; right: 25%; height: 8%;
  background: repeating-linear-gradient(90deg, #5e3a2a 0px, #5e3a2a 3px, transparent 3px, transparent 10px);
  filter: drop-shadow(0 2px 4px rgba(0,0,0,.7));
  animation: sc-chain 10s ease-in-out infinite;
}
.scn-slave-ship-companions .dim-lantern {
  position: absolute; top: 20%; left: 45%; width: 12px; height: 16px;
  background: #c8553d;
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%;
  box-shadow: 0 0 20px 6px rgba(200,85,61,.5);
  animation: sc-lantern 6s ease-in-out infinite alternate;
}
.scn-slave-ship-companions .murmur-breathe {
  position: absolute; bottom: 40%; left: 35%; width: 20px; height: 10px;
  background: rgba(255,255,255,.05);
  border-radius: 50%;
  filter: blur(6px);
  animation: sc-breathe 5s ease-in-out infinite;
}
@keyframes sc-floor { 0% { opacity:.8; transform: translateY(0) } 50% { opacity:1; transform: translateY(-2px) } 100% { opacity:.85; transform: translateY(0) } }
@keyframes sc-group { 0% { transform: translateX(0) rotate(-1deg) } 25% { transform: translateX(2px) rotate(1deg) } 50% { transform: translateX(4px) rotate(-1deg) } 75% { transform: translateX(2px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes sc-touch { 0% { transform: rotate(15deg) translateY(0) } 50% { transform: rotate(17deg) translateY(-1px) } 100% { transform: rotate(15deg) translateY(0) } }
@keyframes sc-chain { 0% { transform: translateX(0) } 50% { transform: translateX(3px) } 100% { transform: translateX(0) } }
@keyframes sc-lantern { 0% { opacity:.6; box-shadow: 0 0 15px 4px rgba(200,85,61,.3) } 50% { opacity:.9; box-shadow: 0 0 25px 8px rgba(200,85,61,.6) } 100% { opacity:.7; box-shadow: 0 0 15px 4px rgba(200,85,61,.3) } }
@keyframes sc-breathe { 0% { opacity:.4; transform: scale(1) } 50% { opacity:.7; transform: scale(1.2) } 100% { opacity:.4; transform: scale(1) } }

.scn-people-pleading {
  background: linear-gradient(180deg, #fcd89a 0%, #e8b664 40%, #c8923a 100%), radial-gradient(ellipse at 50% 0%, #fff4d6 0%, transparent 60%);
}
.scn-people-pleading .sky {
  position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #b8d8f0 0%, #fce4b0 60%, transparent 100%); animation: pp-sky 14s ease-in-out infinite alternate;
}
.scn-people-pleading .sun {
  position:absolute; top:8%; left:68%; width:60px; height:60px; background: radial-gradient(circle, #ffe8a0 0%, #ffcc70 40%, rgba(255,200,80,0.2) 70%); border-radius:50%; box-shadow: 0 0 40px 20px #ffd060, 0 0 80px 40px rgba(255,200,80,0.3); animation: pp-sun 6s ease-in-out infinite;
}
.scn-people-pleading .mast {
  position:absolute; bottom:40%; left:35%; width:6px; height:80px; background: linear-gradient(180deg, #4a3520, #2d1f12); border-radius:2px; transform-origin: bottom center; animation: pp-mast 9s ease-in-out infinite;
}
.scn-people-pleading .sail {
  position:absolute; bottom:52%; width:38px; height:45px; background: radial-gradient(ellipse at 50% 100%, #f5e6c8 0%, #d4b88a 100%); border-radius: 60% 60% 20% 20%; transform-origin: bottom center; box-shadow: 0 4px 8px rgba(0,0,0,0.2);
}
.scn-people-pleading .sail.left { left:30%; animation: pp-sail-left 7s ease-in-out infinite alternate; }
.scn-people-pleading .sail.right { left:38%; animation: pp-sail-right 7s ease-in-out infinite alternate; }
.scn-people-pleading .figures {
  position:absolute; bottom:34%; left:40%; width:40px; height:30px; background: radial-gradient(ellipse at 50% 100%, #4a3520 0%, #2d1f12 100%); border-radius: 50% 50% 30% 30%; box-shadow: 0 2px 6px rgba(0,0,0,0.3); animation: pp-figures 5s ease-in-out infinite;
}
.scn-people-pleading .dock {
  position:absolute; bottom:28%; left:10%; width:80%; height:8px; background: linear-gradient(180deg, #7a5a3a, #5a3a1a); border-radius:2px; box-shadow: 0 4px 8px rgba(0,0,0,0.3); animation: pp-dock 12s ease-in-out infinite;
}
.scn-people-pleading .water {
  position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #4a7a9a 0%, #2a5a7a 100%); animation: pp-water 8s ease-in-out infinite alternate;
}
@keyframes pp-sky { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.75 } }
@keyframes pp-sun { 0%,100% { transform: translateY(0) scale(1); } 50% { transform: translateY(-4px) scale(1.05); } }
@keyframes pp-mast { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(1deg); } }
@keyframes pp-sail-left { 0% { transform: rotate(-5deg) scaleX(1); } 50% { transform: rotate(-2deg) scaleX(1.1); } 100% { transform: rotate(-5deg) scaleX(1); } }
@keyframes pp-sail-right { 0% { transform: rotate(5deg) scaleX(1); } 50% { transform: rotate(2deg) scaleX(1.1); } 100% { transform: rotate(5deg) scaleX(1); } }
@keyframes pp-figures { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-2px) scaleY(1.05); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes pp-dock { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes pp-water { 0% { background-position: 0% 0%; } 100% { background-position: 10% 5%; } }

.scn-entered-as-sailor {
  background: linear-gradient(180deg, #b8d8f0 0%, #f2d89a 40%, #c8a060 100%), radial-gradient(ellipse at 50% 0%, #fff7e0 0%, transparent 70%);
}
.scn-entered-as-sailor .bg {
  position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #a0c8e0 0%, #e0c898 60%, transparent 100%); animation: es-bg 15s ease-in-out infinite alternate;
}
.scn-entered-as-sailor .deck {
  position:absolute; bottom:30%; left:20%; width:60%; height:12px; background: linear-gradient(180deg, #6a4a2a, #4a2a0a); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.4); animation: es-deck 8s ease-in-out infinite;
}
.scn-entered-as-sailor .mast {
  position:absolute; bottom:42%; width:5px; background: linear-gradient(180deg, #3a2a1a, #1a0a00); border-radius:2px; transform-origin: bottom center;
}
.scn-entered-as-sailor .mast.main { left:40%; height:90px; animation: es-mast-main 10s ease-in-out infinite; }
.scn-entered-as-sailor .mast.fore { left:55%; height:60px; animation: es-mast-fore 12s ease-in-out infinite; }
.scn-entered-as-sailor .sail {
  position:absolute; bottom:52%; width:40px; height:40px; background: radial-gradient(ellipse at 50% 100%, #f5e6c8 0%, #d4b88a 100%); border-radius: 60% 60% 20% 20%; transform-origin: bottom center;
}
.scn-entered-as-sailor .sail.fore-sail { left:50%; animation: es-sail-fore 7s ease-in-out infinite alternate; }
.scn-entered-as-sailor .sail.main-sail { left:35%; width:50px; height:50px; animation: es-sail-main 8s ease-in-out infinite alternate; }
.scn-entered-as-sailor .figure {
  position:absolute; bottom:28%; left:46%; width:16px; height:30px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: es-walk 4s ease-in-out infinite;
}
.scn-entered-as-sailor .flag {
  position:absolute; top:5%; right:30%; width:20px; height:12px; background: linear-gradient(90deg, #c8553d 0%, #a0461a 100%); border-radius: 0 4px 4px 0; animation: es-flag 3s ease-in-out infinite alternate;
}
@keyframes es-bg { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes es-deck { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-1px); } }
@keyframes es-mast-main { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(0.5deg); } }
@keyframes es-mast-fore { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(0.8deg); } }
@keyframes es-sail-fore { 0% { transform: rotate(-8deg) scaleX(1); } 50% { transform: rotate(-3deg) scaleX(1.1); } 100% { transform: rotate(-8deg) scaleX(1); } }
@keyframes es-sail-main { 0% { transform: rotate(-4deg) scaleX(1); } 50% { transform: rotate(0deg) scaleX(1.15); } 100% { transform: rotate(-4deg) scaleX(1); } }
@keyframes es-walk { 0% { transform: translateX(0) translateY(0) rotate(-1deg); } 25% { transform: translateX(4px) translateY(-1px) rotate(1deg); } 50% { transform: translateX(8px) translateY(0) rotate(-1deg); } 75% { transform: translateX(4px) translateY(-1px) rotate(1deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes es-flag { 0% { transform: rotate(-10deg); } 100% { transform: rotate(10deg); } }

.scn-sailing-to-savannah {
  background: linear-gradient(180deg, #b8e0ff 0%, #d0f0d0 40%, #a0c8a0 100%), radial-gradient(ellipse at 50% 0%, #fffde0 0%, transparent 70%);
}
.scn-sailing-to-savannah .sea-sky {
  position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #b0d8f0 0%, #e0f0e0 70%, transparent 100%); animation: ss-sea-sky 16s ease-in-out infinite alternate;
}
.scn-sailing-to-savannah .sun-glow {
  position:absolute; top:12%; right:20%; width:50px; height:50px; background: radial-gradient(circle, #ffe0a0 0%, #ffc070 50%, rgba(255,192,96,0.2) 80%); border-radius:50%; box-shadow: 0 0 30px 15px #ffd070, 0 0 60px 30px rgba(255,200,80,0.3); animation: ss-sun 7s ease-in-out infinite;
}
.scn-sailing-to-savannah .horizon {
  position:absolute; bottom:35%; left:0; right:0; height:2px; background: linear-gradient(90deg, transparent, #ffd8a0 20%, #a0c8d0 80%, transparent); animation: ss-horizon 10s ease-in-out infinite;
}
.scn-sailing-to-savannah .hull {
  position:absolute; bottom:28%; left:30%; width:80px; height:20px; background: linear-gradient(180deg, #5a3a1a, #3a1a00); border-radius: 0 0 40% 40%; box-shadow: 0 4px 12px rgba(0,0,0,0.4); animation: ss-hull 9s ease-in-out infinite;
}
.scn-sailing-to-savannah .sail-1 {
  position:absolute; bottom:38%; left:33%; width:35px; height:45px; background: radial-gradient(ellipse at 50% 100%, #f5e6c8, #d4b88a); border-radius: 60% 60% 20% 20%; transform-origin: bottom center; animation: ss-s1 7s ease-in-out infinite alternate;
}
.scn-sailing-to-savannah .sail-2 {
  position:absolute; bottom:40%; left:42%; width:30px; height:35px; background: radial-gradient(ellipse at 50% 100%, #f0d8b0, #c8a87a); border-radius: 60% 60% 20% 20%; transform-origin: bottom center; animation: ss-s2 8s ease-in-out infinite alternate;
}
.scn-sailing-to-savannah .wave {
  position:absolute; bottom:0; left:0; right:0; height:30%; background: radial-gradient(ellipse at 50% 0%, #4080a0 0%, transparent 60%); border-radius: 50% 50% 0 0;
}
.scn-sailing-to-savannah .wave.a { bottom:2%; animation: ss-wave-a 5s ease-in-out infinite; }
.scn-sailing-to-savannah .wave.b { bottom:0; height:35%; opacity:0.6; animation: ss-wave-b 7s ease-in-out infinite reverse; }
.scn-sailing-to-savannah .gull {
  position:absolute; top:8%; left:10%; width:12px; height:6px; background: radial-gradient(ellipse at 50% 50%, #fff 50%, transparent 50%); border-radius: 50%; filter: drop-shadow(0 2px 2px rgba(0,0,0,0.1)); animation: ss-gull 14s linear infinite;
}
@keyframes ss-sea-sky { 0% { opacity:0.85; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes ss-sun { 0%,100% { transform: translateY(0) scale(1); } 50% { transform: translateY(-3px) scale(1.03); } }
@keyframes ss-horizon { 0% { transform: translateY(0); } 50% { transform: translateY(1px); } 100% { transform: translateY(0); } }
@keyframes ss-hull { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-1px) rotate(1deg); } }
@keyframes ss-s1 { 0% { transform: rotate(-6deg) scaleX(1); } 50% { transform: rotate(-2deg) scaleX(1.1); } 100% { transform: rotate(-6deg) scaleX(1); } }
@keyframes ss-s2 { 0% { transform: rotate(4deg) scaleX(1); } 50% { transform: rotate(0deg) scaleX(1.1); } 100% { transform: rotate(4deg) scaleX(1); } }
@keyframes ss-wave-a { 0% { transform: translateY(0); } 50% { transform: translateY(3px); } 100% { transform: translateY(0); } }
@keyframes ss-wave-b { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes ss-gull { 0% { transform: translateX(-20px) rotate(0deg); } 50% { transform: translateX(100px) rotate(5deg); } 100% { transform: translateX(200px) rotate(-5deg); } }

.scn-alligators-and-slave {
  background: linear-gradient(180deg, #1a1a3e 0%, #2c2244 40%, #4a2a3a 100%), radial-gradient(ellipse at 50% 100%, #6a3a4a 0%, transparent 70%);
}
.scn-alligators-and-slave .river-sky {
  position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #2a2a4e 0%, #3a2a3a 60%, transparent 100%); animation: as-sky 12s ease-in-out infinite alternate;
}
.scn-alligators-and-slave .tree {
  position:absolute; bottom:20%; left:5%; width:80px; height:120px; background: linear-gradient(180deg, #1a3a1a 0%, #0a1a0a 100%); border-radius: 50% 50% 30% 30% / 30% 30% 60% 60%; transform-origin: bottom center; animation: as-tree 15s ease-in-out infinite;
}
.scn-alligators-and-slave .water {
  position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #2a3a5a 0%, #1a2a3a 100%); animation: as-water 9s ease-in-out infinite alternate;
}
.scn-alligators-and-slave .boat {
  position:absolute; bottom:30%; left:35%; width:60px; height:15px; background: linear-gradient(180deg, #4a2a1a, #2a1a0a); border-radius: 20% 20% 40% 40%; box-shadow: 0 4px 8px rgba(0,0,0,0.5); animation: as-boat 8s ease-in-out infinite;
}
.scn-alligators-and-slave .alligator {
  position:absolute; bottom:25%; left:55%; width:40px; height:12px; background: linear-gradient(180deg, #3a5a3a 0%, #1a3a1a 100%); border-radius: 50% 50% 30% 30%; transform-origin: center bottom; animation: as-gator 6s ease-in-out infinite;
}
.scn-alligators-and-slave .figure {
  position:absolute; bottom:28%; left:42%; width:14px; height:28px; background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: as-figure 4s ease-in-out infinite;
}
.scn-alligators-and-slave .reeds {
  position:absolute; bottom:10%; right:10%; width:40px; height:60px; background: linear-gradient(180deg, #2a4a2a 0%, #1a3a1a 100%); border-radius: 10% 10% 40% 40%; transform: skewX(-10deg); animation: as-reeds 7s ease-in-out infinite alternate;
}
@keyframes as-sky { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes as-tree { 0%,100% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } }
@keyframes as-water { 0% { background-position: 0% 0%; } 100% { background-position: 5% 3%; } }
@keyframes as-boat { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(2px) rotate(1deg); } }
@keyframes as-gator { 0% { transform: translateY(0) scaleY(1) rotate(0deg); } 25% { transform: translateY(2px) scaleY(1.1) rotate(3deg); } 50% { transform: translateY(0) scaleY(1) rotate(0deg); } 75% { transform: translateY(-2px) scaleY(1.1) rotate(-3deg); } 100% { transform: translateY(0) scaleY(1) rotate(0deg); } }
@keyframes as-figure { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 25% { transform: translateX(3px) translateY(-1px) rotate(2deg); } 50% { transform: translateX(6px) translateY(0) rotate(-2deg); } 75% { transform: translateX(3px) translateY(-1px) rotate(2deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes as-reeds { 0% { transform: skewX(-10deg) scaleY(1); } 50% { transform: skewX(-5deg) scaleY(1.05); } 100% { transform: skewX(-10deg) scaleY(1); } }

.scn-baker-threat {
  background: 
    linear-gradient(180deg, #feebc0 0%, #f9d48e 40%, #e0b060 100%),
    radial-gradient(ellipse at 30% 80%, #f9d48e 0%, transparent 60%);
}
.scn-baker-threat .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #b8d4f0 0%, #8ab8e0 100%); animation: bt-sky 10s ease-in-out infinite alternate; }
.scn-baker-threat .ship { position:absolute; bottom:38%; left:60%; width:120px; height:60px; background: linear-gradient(180deg, #6b4a3a 0%, #3a2a1a 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 -6px 10px rgba(0,0,0,0.3); transform: scale(0.8); animation: bt-ship 8s ease-in-out infinite alternate; }
.scn-baker-threat .deck { position:absolute; bottom:30%; left:0; right:0; height:20%; background: linear-gradient(180deg, #a0744a 0%, #6b4a30 100%); border-radius: 40% 40% 0 0; box-shadow: inset 0 4px 8px rgba(0,0,0,0.2); }
.scn-baker-threat .baker { position:absolute; bottom:28%; left:30%; width:36px; height:60px; background: linear-gradient(180deg, #5e3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bt-baker 3s ease-in-out infinite; }
.scn-baker-threat .equiano { position:absolute; bottom:28%; left:46%; width:24px; height:40px; background: linear-gradient(180deg, #4a3a2a 0%, #1a120a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: scale(0.7); animation: bt-equiano 4s ease-in-out infinite alternate; }
.scn-baker-threat .protector { position:absolute; bottom:26%; left:52%; width:26px; height:48px; background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: scale(0.9); animation: bt-protector 5s ease-in-out infinite; }
.scn-baker-threat .shadow { position:absolute; bottom:25%; left:28%; width:60px; height:10px; background: rgba(0,0,0,0.2); border-radius: 50%; filter: blur(4px); animation: bt-shadow 3s ease-in-out infinite alternate; }
@keyframes bt-sky { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes bt-ship { 0% { transform: scale(0.8) translateY(0); } 50% { transform: scale(0.8) translateY(-2px); } 100% { transform: scale(0.8) translateY(0); } }
@keyframes bt-baker { 0% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(4px) rotate(2deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes bt-equiano { 0% { transform: scale(0.7) translateX(0) translateY(0); } 50% { transform: scale(0.7) translateX(-3px) translateY(-1px); } 100% { transform: scale(0.7) translateX(0) translateY(0); } }
@keyframes bt-protector { 0% { transform: scale(0.9) translateX(0); } 50% { transform: scale(0.9) translateX(2px); } 100% { transform: scale(0.9) translateX(0); } }
@keyframes bt-shadow { 0% { opacity: 0.3; transform: scaleX(1); } 100% { opacity: 0.6; transform: scaleX(1.2); } }

.scn-leaving-jamaica {
  background: 
    linear-gradient(180deg, #b8c8d8 0%, #8090a0 40%, #506070 100%),
    radial-gradient(ellipse at 50% 100%, #607080 0%, transparent 70%);
}
.scn-leaving-jamaica .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #d0d8e0 0%, #9098a0 100%); animation: lj-sky 15s ease-in-out infinite alternate; }
.scn-leaving-jamaica .ocean { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #708090 0%, #405060 100%); }
.scn-leaving-jamaica .ship { position:absolute; bottom:40%; left:20%; width:100px; height:50px; background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 -4px 6px rgba(0,0,0,0.3); animation: lj-ship 20s ease-in-out infinite alternate; }
.scn-leaving-jamaica .sail { position:absolute; bottom:46%; left:22%; width:30px; height:40px; background: #f0e8d0; border-radius: 50% 50% 0 0; transform: skewX(-10deg); animation: lj-sail 12s ease-in-out infinite alternate; }
.scn-leaving-jamaica .privateer { position:absolute; bottom:30%; right:15%; width:70px; height:30px; background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius: 10% 10% 0 0; transform: rotate(15deg); animation: lj-privateer 8s ease-in-out infinite; }
.scn-leaving-jamaica .flames { position:absolute; bottom:32%; right:18%; width:20px; height:30px; background: radial-gradient(circle, #f0a030 0%, #c07020 50%, #804010 100%); border-radius: 50%; filter: blur(4px); animation: lj-flame 3s ease-in-out infinite alternate; }
.scn-leaving-jamaica .wave { position:absolute; bottom:20%; left:0; right:0; height:15px; background: linear-gradient(90deg, transparent 0%, #8090a0 20%, transparent 40%, #8090a0 60%, transparent 80%, #8090a0 100%); background-size: 200% 100%; animation: lj-wave 6s linear infinite; }
@keyframes lj-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.6; } }
@keyframes lj-ship { 0% { transform: translateX(0) translateY(0); } 50% { transform: translateX(10px) translateY(-2px); } 100% { transform: translateX(0) translateY(0); } }
@keyframes lj-sail { 0% { transform: skewX(-10deg) scaleY(1); } 50% { transform: skewX(-10deg) scaleY(1.1); } 100% { transform: skewX(-10deg) scaleY(1); } }
@keyframes lj-privateer { 0% { transform: rotate(15deg) translateX(0); } 50% { transform: rotate(15deg) translateX(5px); } 100% { transform: rotate(15deg) translateX(0); } }
@keyframes lj-flame { 0% { opacity: 0.6; transform: scale(1); } 50% { opacity: 1; transform: scale(1.3); } 100% { opacity: 0.7; transform: scale(1); } }
@keyframes lj-wave { 0% { background-position: 0 0; } 100% { background-position: -200% 0; } }

.scn-plymouth-return {
  background: 
    linear-gradient(180deg, #b0b8c0 0%, #9098a0 40%, #707880 100%),
    radial-gradient(ellipse at 70% 30%, #c0c8d0 0%, transparent 60%);
}
.scn-plymouth-return .sky { position:absolute; inset:0 0 60% 0; background: linear-gradient(180deg, #c8c8c8 0%, #a0a0a8 100%); animation: pr-sky 18s ease-in-out infinite alternate; }
.scn-plymouth-return .sea { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #809090 0%, #607070 100%); }
.scn-plymouth-return .pier { position:absolute; bottom:28%; left:10%; right:40%; height:20px; background: linear-gradient(90deg, #8a7a6a 0%, #6a5a4a 100%); border-radius: 4px; box-shadow: 0 2px 4px rgba(0,0,0,0.2); }
.scn-plymouth-return .buildings { position:absolute; bottom:32%; left:5%; width:80px; height:60px; background: linear-gradient(180deg, #b0a090 0%, #807060 100%); border-radius: 8% 8% 0 0; box-shadow: inset 0 -6px 10px rgba(0,0,0,0.2); animation: pr-buildings 10s ease-in-out infinite alternate; }
.scn-plymouth-return .equiano { position:absolute; bottom:24%; left:20%; width:22px; height:38px; background: linear-gradient(180deg, #4a3a2a 0%, #1a120a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: scale(0.8); animation: pr-equiano 5s ease-in-out infinite; }
.scn-plymouth-return .church { position:absolute; bottom:32%; left:20%; width:30px; height:70px; background: linear-gradient(180deg, #c0b0a0 0%, #908070 100%); border-radius: 10% 10% 0 0; box-shadow: 0 4px 6px rgba(0,0,0,0.2); transform: skewX(-2deg); animation: pr-church 12s ease-in-out infinite alternate; }
@keyframes pr-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes pr-buildings { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes pr-equiano { 0% { transform: scale(0.8) translateX(0) rotate(0); } 50% { transform: scale(0.8) translateX(5px) rotate(3deg); } 100% { transform: scale(0.8) translateX(0) rotate(0); } }
@keyframes pr-church { 0% { transform: skewX(-2deg) translateY(0); } 50% { transform: skewX(-2deg) translateY(-1px); } 100% { transform: skewX(-2deg) translateY(0); } }

.scn-life-uniform {
  background: 
    linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 40%, #2a1a0a 100%),
    radial-gradient(ellipse at 50% 60%, #8a6a4a 0%, transparent 70%);
}
.scn-life-uniform .wall { position:absolute; inset:0; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); }
.scn-life-uniform .desk { position:absolute; bottom:20%; left:25%; right:25%; height:30px; background: linear-gradient(180deg, #8a6a4a 0%, #6a4a2a 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.3); animation: lu-desk 8s ease-in-out infinite alternate; }
.scn-life-uniform .candle { position:absolute; bottom:32%; left:40%; width:8px; height:24px; background: linear-gradient(180deg, #f0d080 0%, #c0a060 100%); border-radius: 4px; box-shadow: 0 0 20px 6px #d0a040; animation: lu-candle 4s ease-in-out infinite alternate; }
.scn-life-uniform .book { position:absolute; bottom:22%; left:35%; width:40px; height:12px; background: linear-gradient(180deg, #c8b8a8 0%, #a89888 100%); border-radius: 2px; transform: rotate(-5deg); animation: lu-book 6s ease-in-out infinite; }
.scn-life-uniform .figure { position:absolute; bottom:18%; left:55%; width:26px; height:50px; background: linear-gradient(180deg, #4a3a2a 0%, #1a120a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: scale(0.8); animation: lu-figure 7s ease-in-out infinite alternate; }
.scn-life-uniform .window { position:absolute; top:15%; left:10%; width:60px; height:80px; background: linear-gradient(180deg, #b0a090 0%, #907060 100%); border-radius: 10% 10% 5% 5%; box-shadow: inset 0 0 20px rgba(0,0,0,0.4); animation: lu-window 12s ease-in-out infinite; }
@keyframes lu-desk { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes lu-candle { 0% { box-shadow: 0 0 20px 6px #d0a040; opacity: 0.8; } 50% { box-shadow: 0 0 30px 10px #f0c060; opacity: 1; } 100% { box-shadow: 0 0 20px 6px #d0a040; opacity: 0.9; } }
@keyframes lu-book { 0% { transform: rotate(-5deg) translateX(0); } 50% { transform: rotate(-5deg) translateX(2px); } 100% { transform: rotate(-5deg) translateX(0); } }
@keyframes lu-figure { 0% { transform: scale(0.8) translateX(0); } 50% { transform: scale(0.8) translateX(-2px); } 100% { transform: scale(0.8) translateX(0); } }
@keyframes lu-window { 0% { opacity: 0.5; } 50% { opacity: 0.7; } 100% { opacity: 0.5; } }

.scn-slave-trade-war {
  background:
    linear-gradient(180deg, #f9d68c 0%, #e8b86a 50%, #7a5a3a 100%),
    radial-gradient(ellipse at 50% 0%, #fff5e0 0%, transparent 70%);
}
.scn-slave-trade-war .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #c4834a 0%, #f0c878 50%, transparent 100%);
  animation: stw-sky 12s ease-in-out infinite alternate;
}
.scn-slave-trade-war .sun {
  position: absolute; top: 12%; left: 70%; width: 60px; height: 60px;
  background: radial-gradient(circle, #fff8e0 0%, #f0c040 40%, transparent 70%);
  border-radius: 50%; box-shadow: 0 0 80px 30px rgba(240,192,64,.3);
  animation: stw-sun 20s linear infinite;
}
.scn-slave-trade-war .ship {
  position: absolute; bottom: 30%; left: 30%; width: 140px; height: 50px;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%);
  border-radius: 0 0 40% 40% / 0 0 60% 60%;
  box-shadow: 0 8px 20px rgba(0,0,0,.5);
  animation: stw-ship 8s ease-in-out infinite;
}
.scn-slave-trade-war .chain-1,
.scn-slave-trade-war .chain-2 {
  position: absolute; bottom: 28%; width: 4px; height: 12px;
  background: #6a4a2a; border-radius: 2px; box-shadow: 0 0 4px #3a2a1a;
}
.scn-slave-trade-war .chain-1 { left: 38%; animation: stw-chain 2s ease-in-out infinite; }
.scn-slave-trade-war .chain-2 { left: 42%; animation: stw-chain 2s ease-in-out 1s infinite; }
.scn-slave-trade-war .figure {
  position: absolute; bottom: 26%; left: 36%; width: 14px; height: 28px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: stw-figure 4s ease-in-out infinite;
}
.scn-slave-trade-war .water {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #4a6a8a 0%, #2a3a5a 100%);
  border-radius: 30% 70% 0 0 / 20% 40% 0 0;
  animation: stw-water 15s ease-in-out infinite alternate;
}
.scn-slave-trade-war .cloud {
  position: absolute; top: 8%; left: 10%; width: 90px; height: 20px;
  background: linear-gradient(180deg, rgba(255,255,240,.6) 0%, rgba(255,255,240,.1) 100%);
  border-radius: 50%; filter: blur(5px);
  animation: stw-cloud 40s linear infinite;
}
@keyframes stw-sky { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.6 } }
@keyframes stw-sun { 0% { transform: translateY(0) } 50% { transform: translateY(-8px) scale(1.02) } 100% { transform: translateY(0) } }
@keyframes stw-ship { 0%,100% { transform: translateX(0) rotate(0) } 25% { transform: translateX(3px) rotate(-1deg) } 75% { transform: translateX(-3px) rotate(1deg) } }
@keyframes stw-chain { 0%,100% { transform: rotate(0) } 50% { transform: rotate(8deg) } }
@keyframes stw-figure { 0%,100% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-4px) rotate(2deg) } }
@keyframes stw-water { 0% { transform: translateY(0) } 100% { transform: translateY(5px) } }
@keyframes stw-cloud { 0% { transform: translateX(-10vw) } 100% { transform: translateX(110vw) } }

.scn-weighing-slaves {
  background:
    linear-gradient(180deg, #d4a56a 0%, #b8854a 50%, #6a4a2a 100%),
    radial-gradient(ellipse at 50% 0%, #fff5d0 0%, transparent 60%);
}
.scn-weighing-slaves .bg-market {
  position: absolute; inset: 40% 0 0 50%; background: linear-gradient(90deg, #8a6a3a, #5a3a1a);
  border-radius: 0 60% 0 0;
}
.scn-weighing-slaves .scale-beam {
  position: absolute; bottom: 35%; left: 50%; width: 120px; height: 6px;
  transform: translateX(-50%);
  background: linear-gradient(90deg, #7a5a2a, #9a7a4a, #7a5a2a);
  border-radius: 3px; box-shadow: 0 4px 8px rgba(0,0,0,.4);
  animation: ws-beam 6s ease-in-out infinite alternate;
}
.scn-weighing-slaves .figure-slave {
  position: absolute; bottom: 30%; left: 40%; width: 16px; height: 24px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: ws-figure 6s ease-in-out infinite alternate;
}
.scn-weighing-slaves .weight-1,
.scn-weighing-slaves .weight-2 {
  position: absolute; bottom: 35%; width: 18px; height: 18px;
  background: linear-gradient(135deg, #6a4a2a, #3a2a1a);
  border-radius: 4px; box-shadow: 0 2px 6px rgba(0,0,0,.5);
}
.scn-weighing-slaves .weight-1 { left: 60%; animation: ws-weight 6s ease-in-out infinite alternate; }
.scn-weighing-slaves .weight-2 { left: 30%; animation: ws-weight 6s ease-in-out 3s infinite alternate; }
.scn-weighing-slaves .sunbeam {
  position: absolute; top: 0; left: 45%; width: 20px; height: 50%;
  background: linear-gradient(180deg, rgba(255,240,180,.4) 0%, transparent 100%);
  filter: blur(4px); transform: rotate(-10deg);
  animation: ws-beam 8s ease-in-out infinite alternate;
}
.scn-weighing-slaves .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #4a3a2a, #2a1a0a);
  border-radius: 40% 60% 0 0 / 20% 30% 0 0;
}
@keyframes ws-beam { 0% { transform: translateX(-10px) rotate(-5deg); } 100% { transform: translateX(10px) rotate(5deg); } }
@keyframes ws-figure { 0% { transform: scaleY(1); } 100% { transform: scaleY(0.8); } }
@keyframes ws-weight { 0% { transform: translateY(0); } 100% { transform: translateY(6px); } }

.scn-family-separations {
  background:
    linear-gradient(180deg, #e8c878 0%, #c49a5a 50%, #7a5a3a 100%),
    radial-gradient(ellipse at 50% 0%, #fff8e0 0%, transparent 60%);
}
.scn-family-separations .bg-plain {
  position: absolute; inset: 35% 0 0 0;
  background: linear-gradient(180deg, #8a7a5a, #5a4a2a);
}
.scn-family-separations .father {
  position: absolute; bottom: 25%; left: 30%; width: 20px; height: 32px;
  background: linear-gradient(180deg, #2a1a0a, #1a0a00);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: fs-reach 5s ease-in-out infinite;
}
.scn-family-separations .mother {
  position: absolute; bottom: 25%; right: 30%; width: 18px; height: 30px;
  background: linear-gradient(180deg, #3a2a1a, #1a0a00);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: fs-reach 5s ease-in-out 1s infinite;
}
.scn-family-separations .child {
  position: absolute; bottom: 27%; left: 50%; width: 12px; height: 20px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a3a2a, #2a1a0a);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: fs-child 5s ease-in-out infinite;
}
.scn-family-separations .overseer {
  position: absolute; bottom: 25%; left: 50%; width: 22px; height: 36px;
  transform: translateX(-50vw);
  background: linear-gradient(180deg, #5a3a1a, #3a2a0a);
  border-radius: 10% 10% 20% 20% / 30% 30% 20% 20%;
  box-shadow: 0 4px 10px rgba(0,0,0,.6);
  animation: fs-overseer 8s ease-in-out infinite;
}
.scn-family-separations .chain-links {
  position: absolute; bottom: 28%; left: 48%; width: 30px; height: 4px;
  background: repeating-linear-gradient(90deg, #6a4a2a 0px, #6a4a2a 4px, transparent 4px, transparent 8px);
  animation: fs-chain 3s linear infinite;
}
.scn-family-separations .dust {
  position: absolute; bottom: 10%; left: 20%; width: 40px; height: 20px;
  background: radial-gradient(ellipse at center, rgba(100,80,40,.4) 0%, transparent 70%);
  filter: blur(6px);
  animation: fs-dust 12s ease-in-out infinite alternate;
}
@keyframes fs-reach { 0%,100% { transform: translateY(0) rotate(0); } 25% { transform: translateY(-5px) rotate(-10deg); } 50% { transform: translateY(0) rotate(0); } 75% { transform: translateY(-5px) rotate(10deg); } }
@keyframes fs-child { 0%,100% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.1); } }
@keyframes fs-overseer { 0%,100% { transform: translateX(-50vw) rotate(0); } 50% { transform: translateX(40vw) rotate(5deg); } }
@keyframes fs-chain { 0% { background-position: 0 0; } 100% { background-position: -30px 0; } }
@keyframes fs-dust { 0% { opacity: 0.2; transform: translateX(0); } 100% { opacity: 0.8; transform: translateX(30px); } }

.scn-parting-scene {
  background:
    linear-gradient(180deg, #4a5a7a 0%, #6a7a9a 30%, #b08a6a 70%, #6a4a2a 100%),
    radial-gradient(ellipse at 50% 0%, #c8a878 0%, transparent 60%);
}
.scn-parting-scene .water {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #4a6a7a 0%, #2a3a5a 100%);
  border-radius: 40% 60% 0 0 / 20% 30% 0 0;
  animation: ps-water 15s ease-in-out infinite alternate;
}
.scn-parting-scene .sky-dusk {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #3a4a6a 0%, #6a7a8a 40%, #b09070 70%, #d4b080 100%);
  animation: ps-sky 18s ease-in-out infinite alternate;
}
.scn-parting-scene .vessel {
  position: absolute; bottom: 35%; left: 70%; width: 80px; height: 40px;
  background: linear-gradient(180deg, #2a1a0a, #1a0a00);
  border-radius: 0 0 30% 30% / 0 0 50% 50%;
  box-shadow: 0 6px 12px rgba(0,0,0,.5);
  animation: ps-vessel 25s linear infinite;
}
.scn-parting-scene .figure-left {
  position: absolute; bottom: 28%; left: 20%; width: 16px; height: 30px;
  background: linear-gradient(180deg, #1a1a2a, #0a0a1a);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ps-figure 5s ease-in-out infinite;
}
.scn-parting-scene .figure-right {
  position: absolute; bottom: 28%; left: 35%; width: 14px; height: 28px;
  background: linear-gradient(180deg, #1a1a2a, #0a0a1a);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ps-figure 5s ease-in-out 1s infinite;
}
.scn-parting-scene .sunset-glow {
  position: absolute; top: 10%; left: 40%; width: 120px; height: 80px;
  background: radial-gradient(ellipse, rgba(200,140,80,.5) 0%, transparent 70%);
  filter: blur(10px);
  animation: ps-glow 8s ease-in-out infinite alternate;
}
.scn-parting-scene .wave {
  position: absolute; bottom: 15%; left: 10%; width: 60px; height: 10px;
  background: rgba(100,130,150,.3);
  border-radius: 50%; filter: blur(3px);
  animation: ps-wave 4s ease-in-out infinite;
}
.scn-parting-scene .tear {
  position: absolute; bottom: 25%; left: 48%; width: 4px; height: 8px;
  background: radial-gradient(circle, #a0b8d0, #708090);
  border-radius: 50%;
  animation: ps-tear 2s ease-in-out infinite;
}
@keyframes ps-water { 0% { transform: translateY(0); } 100% { transform: translateY(6px); } }
@keyframes ps-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes ps-vessel { 0% { transform: translateX(0); } 100% { transform: translateX(-100vw); } }
@keyframes ps-figure { 0%,100% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-5px) rotate(2deg); } }
@keyframes ps-glow { 0% { opacity: 0.5; transform: scale(0.9); } 100% { opacity: 1; transform: scale(1.1); } }
@keyframes ps-wave { 0%,100% { transform: translateX(0) scaleY(1); } 50% { transform: translateX(10px) scaleY(1.2); } }
@keyframes ps-tear { 0% { opacity: 0; transform: translateY(0); } 50% { opacity: 1; } 100% { opacity: 0; transform: translateY(15px); } }

.scn-leaving-england {
  background:
    linear-gradient(180deg, #3b3b4a 0%, #2a2a35 40%, #1a1a22 100%),
    radial-gradient(ellipse at 50% 30%, #4a4a5a 0%, transparent 70%);
}
.scn-leaving-england .le-sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #5a5a6a 0%, #3a3a4a 60%, transparent 100%);
  animation: le-sky-drift 25s ease-in-out infinite alternate;
}
.scn-leaving-england .le-cloud {
  position: absolute; height: 15%; width: 20%;
  background: linear-gradient(90deg, rgba(90,90,100,0.6), rgba(70,70,80,0.3));
  border-radius: 50%; filter: blur(8px);
}
.scn-leaving-england .le-c1 {
  top: 8%; left: 10%;
  animation: le-cloud-drift 40s linear infinite;
}
.scn-leaving-england .le-c2 {
  top: 18%; right: 5%; width: 25%;
  animation: le-cloud-drift 55s linear infinite;
  animation-delay: -20s;
}
.scn-leaving-england .le-sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #2a2a35 0%, #1a1a22 50%, #0f0f15 100%);
  animation: le-sea-sway 12s ease-in-out infinite alternate;
}
.scn-leaving-england .le-ship {
  position: absolute; bottom: 28%; left: 40%; width: 22%; height: 18%;
  background: linear-gradient(90deg, #1a1a22 0%, #2a2a35 50%, #1a1a22 100%);
  clip-path: polygon(10% 30%, 90% 30%, 100% 100%, 0% 100%);
  border-radius: 0 0 30% 30%;
  animation: le-ship-bob 9s ease-in-out infinite;
}
.scn-leaving-england .le-figure {
  position: absolute; bottom: 38%; left: 52%; width: 4%; height: 8%;
  background: linear-gradient(180deg, #0f0f15 0%, #1a1a22 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: le-figure-turn 14s ease-in-out infinite;
}
.scn-leaving-england .le-wake {
  position: absolute; bottom: 30%; left: 35%; width: 30%; height: 1%;
  background: rgba(60,60,70,0.3); border-radius: 50%;
  filter: blur(2px);
  animation: le-wake-spread 7s ease-in-out infinite alternate;
}
@keyframes le-sky-drift {
  0% { opacity: 0.7; }
  50% { opacity: 0.9; }
  100% { opacity: 0.6; }
}
@keyframes le-cloud-drift {
  0% { transform: translateX(0) scaleX(1); }
  50% { transform: translateX(30px) scaleX(1.1); }
  100% { transform: translateX(-20px) scaleX(1); }
}
@keyframes le-sea-sway {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-2px) scaleY(1.02); }
  100% { transform: translateY(1px) scaleY(0.98); }
}
@keyframes le-ship-bob {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-3px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes le-figure-turn {
  0% { transform: translateX(0) rotate(0deg); }
  30% { transform: translateX(-4px) rotate(-3deg); }
  70% { transform: translateX(2px) rotate(2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes le-wake-spread {
  0% { width: 25%; opacity: 0.3; }
  50% { width: 35%; opacity: 0.5; }
  100% { width: 28%; opacity: 0.2; }
}

.scn-montserrat-sight {
  background:
    linear-gradient(180deg, #87CEEB 0%, #4a90d9 30%, #2c5f8a 70%, #1a3a5a 100%),
    radial-gradient(ellipse at 30% 20%, #ffd700 0%, transparent 50%);
}
.scn-montserrat-sight .ms-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #b0d4f1 0%, #6ca6e0 50%, transparent 100%);
  animation: ms-sky-glow 20s ease-in-out infinite alternate;
}
.scn-montserrat-sight .ms-sun {
  position: absolute; top: 8%; left: 25%; width: 12%; height: 18%;
  background: radial-gradient(circle, #fff3c4 0%, #ffcc00 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 60px 30px rgba(255,204,0,0.3);
  animation: ms-sun-pulse 8s ease-in-out infinite;
}
.scn-montserrat-sight .ms-island {
  position: absolute; bottom: 30%; right: 10%; width: 35%; height: 40%;
  background: linear-gradient(180deg, #2d5a27 0%, #1a3a15 60%, #0f260c 100%);
  clip-path: polygon(0% 20%, 100% 0%, 100% 100%, 0% 100%);
  border-radius: 0 40% 0 0 / 0 60% 0 0;
}
.scn-montserrat-sight .ms-mast {
  position: absolute; bottom: 40%; left: 45%; width: 2%; height: 35%;
  background: linear-gradient(180deg, #3a2a1a, #1a1008);
  border-radius: 2px;
}
.scn-montserrat-sight .ms-figure {
  position: absolute; bottom: 62%; left: 47%; width: 3%; height: 6%;
  background: linear-gradient(180deg, #0a0a0a, #1a1a1a);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ms-figure-climb 18s ease-in-out infinite;
}
.scn-montserrat-sight .ms-horizon {
  position: absolute; bottom: 40%; left: 0; right: 0; height: 1%;
  background: rgba(0,0,0,0.2);
  filter: blur(1px);
}
.scn-montserrat-sight .ms-cloud {
  position: absolute; top: 12%; right: 20%; width: 15%; height: 8%;
  background: linear-gradient(90deg, rgba(255,255,255,0.5), rgba(255,255,255,0.1));
  border-radius: 50%; filter: blur(6px);
  animation: ms-cloud-scud 45s linear infinite;
}
@keyframes ms-sky-glow {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes ms-sun-pulse {
  0% { transform: scale(1); box-shadow: 0 0 50px 20px rgba(255,204,0,0.3); }
  50% { transform: scale(1.05); box-shadow: 0 0 80px 30px rgba(255,204,0,0.5); }
  100% { transform: scale(1); box-shadow: 0 0 60px 25px rgba(255,204,0,0.4); }
}
@keyframes ms-figure-climb {
  0% { transform: translateY(0) rotate(0deg); }
  30% { transform: translateY(-2px) rotate(2deg); }
  60% { transform: translateY(-1px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes ms-cloud-scud {
  0% { transform: translateX(0); }
  50% { transform: translateX(-40px); }
  100% { transform: translateX(20px); }
}

.scn-montserrat-arrival {
  background:
    linear-gradient(180deg, #87CEEB 0%, #6cb8e8 30%, #3a7eb5 70%, #1e4d6b 100%),
    radial-gradient(ellipse at 80% 60%, #ffe4b5 0%, transparent 50%);
}
.scn-montserrat-arrival .ma-sky {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #a8d8f0 0%, #7bbde6 50%, transparent 100%);
  animation: ma-sky-fade 15s ease-in-out infinite alternate;
}
.scn-montserrat-arrival .ma-water {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #2a6b8a 0%, #1a4d66 50%, #0f2e40 100%);
  animation: ma-water-ripple 12s ease-in-out infinite alternate;
}
.scn-montserrat-arrival .ma-ship {
  position: absolute; bottom: 25%; left: 20%; width: 25%; height: 20%;
  background: linear-gradient(90deg, #4a3a2a, #5a4a3a, #4a3a2a);
  clip-path: polygon(10% 20%, 90% 20%, 100% 100%, 0% 100%);
  border-radius: 0 0 20% 20%;
}
.scn-montserrat-arrival .ma-dock {
  position: absolute; bottom: 20%; right: 10%; width: 30%; height: 8%;
  background: linear-gradient(90deg, #6a5a4a, #8a7a6a);
  border-radius: 4px;
  box-shadow: inset 0 2px 4px rgba(0,0,0,0.3);
}
.scn-montserrat-arrival .ma-worker1 {
  position: absolute; bottom: 23%; left: 35%; width: 4%; height: 10%;
  background: linear-gradient(180deg, #4a3a2a, #2a1a0a);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  animation: ma-worker-stoop 9s ease-in-out infinite;
}
.scn-montserrat-arrival .ma-worker2 {
  position: absolute; bottom: 23%; left: 50%; width: 4%; height: 10%;
  background: linear-gradient(180deg, #4a3a2a, #2a1a0a);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  animation: ma-worker-stoop 9s ease-in-out infinite;
  animation-delay: -4.5s;
}
.scn-montserrat-arrival .ma-cargo {
  position: absolute; bottom: 22%; left: 55%; width: 6%; height: 6%;
  background: linear-gradient(135deg, #7a6a5a, #5a4a3a);
  border-radius: 4px;
  box-shadow: 2px 2px 4px rgba(0,0,0,0.4);
}
.scn-montserrat-arrival .ma-glimmer {
  position: absolute; bottom: 28%; left: 58%; width: 2%; height: 2%;
  background: radial-gradient(circle, #ffd700, transparent);
  border-radius: 50%;
  filter: blur(2px);
  animation: ma-glimmer-pulse 3s ease-in-out infinite alternate;
}
@keyframes ma-sky-fade {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes ma-water-ripple {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-2px) scaleY(1.01); }
  100% { transform: translateY(1px) scaleY(0.99); }
}
@keyframes ma-worker-stoop {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(3deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes ma-glimmer-pulse {
  0% { transform: scale(1); opacity: 0.5; }
  50% { transform: scale(1.5); opacity: 1; }
  100% { transform: scale(1); opacity: 0.6; }
}

.scn-mr-king-purchase {
  background:
    linear-gradient(180deg, #87CEEB 0%, #b0d4f1 30%, #d4e8f8 60%, #ffffff 100%),
    radial-gradient(ellipse at 70% 90%, #fff3c4 0%, transparent 60%);
}
.scn-mr-king-purchase .mk-sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #cde4f7 0%, #eaf3fc 50%, transparent 100%);
  animation: mk-sky-bright 20s ease-in-out infinite alternate;
}
.scn-mr-king-purchase .mk-deck {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 50%, #4a3a2a 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
}
.scn-mr-king-purchase .mk-rail {
  position: absolute; bottom: 38%; left: 0; right: 0; height: 2%;
  background: linear-gradient(90deg, #5a4a3a, #7a6a5a, #5a4a3a);
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
}
.scn-mr-king-purchase .mk-figure-king {
  position: absolute; bottom: 30%; left: 30%; width: 6%; height: 14%;
  background: linear-gradient(180deg, #3a3a4a, #2a2a3a);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: mk-figure-talk 12s ease-in-out infinite;
}
.scn-mr-king-purchase .mk-figure-eq {
  position: absolute; bottom: 30%; left: 45%; width: 5%; height: 13%;
  background: linear-gradient(180deg, #2a1a0a, #1a0a00);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: mk-figure-listen 12s ease-in-out infinite;
  animation-delay: -6s;
}
.scn-mr-king-purchase .mk-book {
  position: absolute; bottom: 34%; left: 37%; width: 4%; height: 3%;
  background: linear-gradient(135deg, #5a3a2a, #3a2a1a);
  border-radius: 2px;
  box-shadow: 1px 1px 2px rgba(0,0,0,0.4);
}
.scn-mr-king-purchase .mk-sunbeam {
  position: absolute; top: 0; left: 20%; width: 3%; height: 100%;
  background: linear-gradient(180deg, rgba(255,255,200,0.3), transparent 80%);
  filter: blur(4px);
  animation: mk-sunbeam-sweep 25s ease-in-out infinite alternate;
}
@keyframes mk-sky-bright {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes mk-figure-talk {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-1px) rotate(2deg); }
  50% { transform: translateY(-2px) rotate(-1deg); }
  75% { transform: translateY(-1px) rotate(3deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes mk-figure-listen {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(1px) rotate(-1deg); }
  50% { transform: translateY(0) rotate(1deg); }
  75% { transform: translateY(1px) rotate(-2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes mk-sunbeam-sweep {
  0% { transform: translateX(0) scaleX(1); opacity: 0.2; }
  50% { transform: translateX(20px) scaleX(1.2); opacity: 0.4; }
  100% { transform: translateX(-10px) scaleX(1); opacity: 0.2; }
}

/* greenland-ice */
.scn-greenland-ice { background: linear-gradient(180deg, #ffe9b0 0%, #b0d0f0 40%, #8ab4d8 70%, #4a6a8a 100%), radial-gradient(ellipse at 30% 80%, #fff5d0 0%, transparent 60%); }
.scn-greenland-ice .sun { position: absolute; left: 20%; top: 12%; width: 60px; height: 60px; background: radial-gradient(circle, #ffe070 0%, #ffcc40 50%, transparent 70%); border-radius: 50%; box-shadow: 0 0 30px 10px #ffcc40; animation: gi-sun 12s ease-in-out infinite alternate; }
.scn-greenland-ice .sky { position: absolute; inset: 0 0 50% 0; background: linear-gradient(180deg, #d8e8ff 0%, #b0d0f0 60%, transparent 100%); }
.scn-greenland-ice .mountains { position: absolute; bottom: 40%; left: 0; right: 0; height: 30%; background: linear-gradient(135deg, #d0e4f0 0%, #a0bcc8 50%, #688898 100%); border-radius: 70% 80% 0 0 / 60% 70% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,.2); animation: gi-mountains 18s ease-in-out infinite; }
.scn-greenland-ice .sea { position: absolute; bottom: 0; left: 0; right: 0; height: 40%; background: linear-gradient(180deg, #2a4a6a 0%, #1a2a3a 100%); animation: gi-sea 15s ease-in-out infinite alternate; }
.scn-greenland-ice .ship { position: absolute; bottom: 22%; left: 40%; width: 80px; height: 40px; background: linear-gradient(90deg, #3a2a1a 0%, #5a3a2a 40%, #3a2a1a 100%); border-radius: 0 0 20% 20%; transform-origin: bottom center; animation: gi-ship 8s ease-in-out infinite; }
.scn-greenland-ice .whale-spout { position: absolute; bottom: 36%; left: 65%; width: 20px; height: 40px; background: radial-gradient(ellipse at 50% 0%, rgba(255,255,255,.6) 0%, transparent 70%); filter: blur(3px); animation: gi-spout 4s ease-in-out infinite; }
.scn-greenland-ice .cloud { position: absolute; background: linear-gradient(180deg, rgba(255,255,255,.5) 0%, rgba(255,255,255,.1) 100%); border-radius: 50%; filter: blur(5px); }
.scn-greenland-ice .c1 { top: 8%; left: 60%; width: 100px; height: 20px; animation: gi-drift 40s linear infinite; }
.scn-greenland-ice .c2 { top: 16%; left: 25%; width: 70px; height: 14px; animation: gi-drift 55s linear infinite reverse; }
@keyframes gi-sun { 0% { transform: scale(1) translateY(0); opacity: .9; } 50% { transform: scale(1.1) translateY(-5px); opacity: 1; } 100% { transform: scale(1) translateY(0); opacity: .85; } }
@keyframes gi-mountains { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-4px) scale(1.02); } 100% { transform: translateY(0) scale(1); } }
@keyframes gi-sea { 0% { opacity: .75; background-position: 0 0; } 50% { opacity: .85; background-position: 0 5%; } 100% { opacity: .75; background-position: 0 0; } }
@keyframes gi-ship { 0%, 100% { transform: translateX(0) rotate(0); } 25% { transform: translateX(3px) rotate(1deg); } 50% { transform: translateX(-2px) rotate(-1deg); } 75% { transform: translateX(3px) rotate(1deg); } }
@keyframes gi-spout { 0% { transform: scaleY(1); opacity: .5; } 50% { transform: scaleY(1.3); opacity: 1; } 100% { transform: scaleY(1); opacity: .5; } }
@keyframes gi-drift { 0% { transform: translateX(0); } 100% { transform: translateX(100vw); } }

/* ice-peril */
.scn-ice-peril { background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 30%, #1a1a2a 70%, #0a0a1a 100%), radial-gradient(ellipse at 50% 100%, #3a4a5a 0%, transparent 80%); }
.scn-ice-peril .dark-sky { position: absolute; inset: 0 0 55% 0; background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%); animation: ip-sky 20s ease-in-out infinite alternate; }
.scn-ice-peril .ice-floe { position: absolute; bottom: 30%; left: 0; right: 0; height: 15%; background: linear-gradient(90deg, #b0c8d8 0%, #d0e0e8 30%, #a0b8c8 70%, #b0c8d8 100%); border-radius: 0 0 30% 30% / 0 0 50% 50%; box-shadow: inset 0 5px 15px rgba(0,0,0,.4); animation: ip-floe 12s ease-in-out infinite; }
.scn-ice-peril .boat { position: absolute; bottom: 28%; left: 35%; width: 60px; height: 30px; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 0 0 30% 30%; transform-origin: bottom center; animation: ip-boat 3s ease-in-out infinite; }
.scn-ice-peril .sea-horse { position: absolute; bottom: 26%; right: 30%; width: 40px; height: 50px; background: linear-gradient(180deg, #4a5a4a 0%, #2a3a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-10deg); animation: ip-sea-horse 2s ease-in-out infinite; }
.scn-ice-peril .oar { position: absolute; bottom: 32%; left: 42%; width: 8px; height: 45px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 20%; transform-origin: bottom; animation: ip-oar 1.5s ease-in-out infinite; }
.scn-ice-peril .wave { position: absolute; height: 8px; background: rgba(80,120,160,.4); border-radius: 50%; filter: blur(2px); }
.scn-ice-peril .w1 { bottom: 26%; left: 10%; width: 120px; animation: ip-wave1 4s ease-in-out infinite; }
.scn-ice-peril .w2 { bottom: 23%; right: 15%; width: 80px; animation: ip-wave2 5s ease-in-out infinite reverse; }
@keyframes ip-sky { 0% { opacity: .8; } 50% { opacity: 1; } 100% { opacity: .7; } }
@keyframes ip-floe { 0% { transform: translateY(0); } 50% { transform: translateY(5px); } 100% { transform: translateY(0); } }
@keyframes ip-boat { 0%, 100% { transform: translateX(0) rotate(0); } 25% { transform: translateX(-4px) rotate(-5deg); } 50% { transform: translateX(0) rotate(0); } 75% { transform: translateX(4px) rotate(5deg); } }
@keyframes ip-sea-horse { 0% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(5deg) translateY(-5px); } 100% { transform: rotate(-10deg) translateY(0); } }
@keyframes ip-oar { 0% { transform: rotate(0); } 25% { transform: rotate(15deg); } 75% { transform: rotate(-15deg); } 100% { transform: rotate(0); } }
@keyframes ip-wave1 { 0% { transform: translateX(0) scaleX(1); opacity: .4; } 50% { transform: translateX(20px) scaleX(1.2); opacity: .6; } 100% { transform: translateX(0) scaleX(1); opacity: .4; } }
@keyframes ip-wave2 { 0% { transform: translateX(0) scaleX(1); opacity: .3; } 50% { transform: translateX(-15px) scaleX(1.1); opacity: .5; } 100% { transform: translateX(0) scaleX(1); opacity: .3; } }

/* ice-pond-near-drowning */
.scn-ice-pond-near-drowning { background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 40%, #1a1a2a 100%), radial-gradient(ellipse at 50% 50%, #2a3a4a 0%, transparent 70%); }
.scn-ice-pond-near-drowning .bg { position: absolute; inset: 0; background: radial-gradient(ellipse at 50% 60%, #1a2a3a 0%, #0a0a1a 100%); }
.scn-ice-pond-near-drowning .pond-edge { position: absolute; bottom: 40%; left: 0; right: 0; height: 10%; background: linear-gradient(180deg, #b0c8d8 0%, #8098a8 100%); border-radius: 50% 50% 0 0 / 100% 100% 0 0; box-shadow: 0 -5px 15px rgba(0,0,0,.5); }
.scn-ice-pond-near-drowning .water { position: absolute; bottom: 0; left: 0; right: 0; height: 40%; background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%); animation: ipn-water 6s ease-in-out infinite alternate; }
.scn-ice-pond-near-drowning .figure { position: absolute; bottom: 35%; left: 45%; width: 24px; height: 40px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(15deg); animation: ipn-figure 2s ease-in-out infinite; }
.scn-ice-pond-near-drowning .hand { position: absolute; bottom: 38%; left: 48%; width: 10px; height: 20px; background: #2a2a3a; border-radius: 50% 50% 30% 30%; transform: rotate(30deg); animation: ipn-hand 1.5s ease-in-out infinite; }
.scn-ice-pond-near-drowning .ice-chunk { position: absolute; background: linear-gradient(135deg, #c0d8e8 0%, #90b0c8 100%); border-radius: 30% 50% 20% 40%; box-shadow: inset 0 3px 8px rgba(0,0,0,.3); }
.scn-ice-pond-near-drowning .c1 { bottom: 38%; left: 30%; width: 30px; height: 20px; animation: ipn-ice1 5s ease-in-out infinite; }
.scn-ice-pond-near-drowning .c2 { bottom: 35%; right: 25%; width: 20px; height: 25px; animation: ipn-ice2 7s ease-in-out infinite reverse; }
@keyframes ipn-water { 0% { opacity: .8; } 50% { opacity: 1; } 100% { opacity: .7; } }
@keyframes ipn-figure { 0% { transform: rotate(15deg) translateY(0); } 50% { transform: rotate(10deg) translateY(-5px); } 100% { transform: rotate(15deg) translateY(0); } }
@keyframes ipn-hand { 0% { transform: rotate(30deg) translateY(0); } 25% { transform: rotate(20deg) translateY(-3px); } 50% { transform: rotate(30deg) translateY(0); } 75% { transform: rotate(40deg) translateY(-3px); } 100% { transform: rotate(30deg) translateY(0); } }
@keyframes ipn-ice1 { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(10px) rotate(10deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes ipn-ice2 { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(-8px) rotate(-15deg); } 100% { transform: translateX(0) rotate(0); } }

/* return-from-arctic */
.scn-return-from-arctic { background: linear-gradient(180deg, #ffe0a0 0%, #f0d090 30%, #a0c0e0 60%, #4a6a8a 100%), radial-gradient(ellipse at 70% 10%, #ffd080 0%, transparent 50%); }
.scn-return-from-arctic .sun { position: absolute; right: 15%; top: 8%; width: 50px; height: 50px; background: radial-gradient(circle, #ffe070 0%, #ffcc40 50%, transparent 70%); border-radius: 50%; box-shadow: 0 0 25px 8px #ffcc40; animation: ra-sun 14s ease-in-out infinite alternate; }
.scn-return-from-arctic .sky { position: absolute; inset: 0 0 50% 0; background: linear-gradient(180deg, #ffe0b0 0%, #c0d8f0 50%, transparent 100%); }
.scn-return-from-arctic .distant-land { position: absolute; bottom: 42%; left: 5%; width: 30%; height: 20%; background: linear-gradient(180deg, #5a7a4a 0%, #3a5a2a 100%); border-radius: 0 80% 0 0 / 0 100% 0 0; animation: ra-land 20s ease-in-out infinite; }
.scn-return-from-arctic .sea { position: absolute; bottom: 0; left: 0; right: 0; height: 45%; background: linear-gradient(180deg, #3a5a7a 0%, #1a2a3a 100%); animation: ra-sea 15s ease-in-out infinite alternate; }
.scn-return-from-arctic .ship { position: absolute; bottom: 18%; left: 50%; width: 90px; height: 45px; background: linear-gradient(90deg, #4a2a1a 0%, #6a3a2a 40%, #4a2a1a 100%); border-radius: 0 0 25% 25%; transform: translateX(-50%); animation: ra-ship 12s ease-in-out infinite; }
.scn-return-from-arctic .sail { position: absolute; bottom: 28%; left: 52%; width: 30px; height: 45px; background: linear-gradient(135deg, #d0c0a0 0%, #b0a080 100%); border-radius: 20% 20% 10% 10%; transform: skewX(-5deg); animation: ra-sail 8s ease-in-out infinite; }
.scn-return-from-arctic .bird { position: absolute; background: linear-gradient(90deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50%; width: 12px; height: 6px; }
.scn-return-from-arctic .b1 { top: 20%; left: 30%; animation: ra-bird1 6s ease-in-out infinite; }
.scn-return-from-arctic .b2 { top: 25%; left: 70%; width: 10px; height: 5px; animation: ra-bird2 7s ease-in-out infinite reverse; }
@keyframes ra-sun { 0% { transform: scale(1) translateY(0); opacity: .9; } 50% { transform: scale(1.15) translateY(-4px); opacity: 1; } 100% { transform: scale(1) translateY(0); opacity: .85; } }
@keyframes ra-land { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.05); } 100% { transform: scaleY(1); } }
@keyframes ra-sea { 0% { opacity: .75; background-position: 0 0; } 50% { opacity: .9; background-position: 2% 5%; } 100% { opacity: .75; background-position: 0 0; } }
@keyframes ra-ship { 0% { transform: translateX(-50%) rotate(0); } 25% { transform: translateX(-48%) rotate(2deg); } 50% { transform: translateX(-52%) rotate(-2deg); } 75% { transform: translateX(-48%) rotate(2deg); } 100% { transform: translateX(-50%) rotate(0); } }
@keyframes ra-sail { 0% { transform: skewX(-5deg) rotate(0); } 50% { transform: skewX(-2deg) rotate(3deg); } 100% { transform: skewX(-5deg) rotate(0); } }
@keyframes ra-bird1 { 0% { transform: translate(0, 0) rotate(0); } 50% { transform: translate(30px, -10px) rotate(5deg); } 100% { transform: translate(0, 0) rotate(0); } }
@keyframes ra-bird2 { 0% { transform: translate(0, 0) rotate(0); } 50% { transform: translate(-20px, -8px) rotate(-5deg); } 100% { transform: translate(0, 0) rotate(0); } }

.scn-jamaica-cruelty {
  background:
    linear-gradient(180deg, #a8b8c8 0%, #6a8090 40%, #2a3a4a 100%),
    radial-gradient(ellipse at 50% 0%, rgba(255,255,240,0.3) 0%, transparent 60%);
}
.scn-jamaica-cruelty .deck {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 0 0 50% 50% / 0 0 10% 10%;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.5);
}
.scn-jamaica-cruelty .sun {
  position: absolute; top: 5%; right: 15%; width: 50px; height: 50px;
  background: radial-gradient(circle, #fff8d0 0%, #f0c860 40%, #d0a030 70%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(240,200,96,0.4);
  animation: jc-sun 6s ease-in-out infinite alternate;
}
.scn-jamaica-cruelty .mast {
  position: absolute; bottom: 30%; left: 50%; width: 4px; height: 50%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 2px;
  transform: translateX(-50%);
  animation: jc-sway 8s ease-in-out infinite;
}
.scn-jamaica-cruelty .hanged {
  position: absolute; bottom: 38%; left: 48%; width: 20px; height: 60px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%) rotate(5deg);
  animation: jc-swing 4s ease-in-out infinite;
}
.scn-jamaica-cruelty .flogger {
  position: absolute; bottom: 38%; left: 55%; width: 18px; height: 50px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30%;
  transform: translateX(-50%);
  animation: jc-strike 1.5s ease-in-out infinite;
}
.scn-jamaica-cruelty .weight {
  position: absolute; bottom: 15%; left: 48%; width: 14px; height: 14px;
  background: linear-gradient(135deg, #4a4a5a 0%, #2a2a3a 100%);
  border-radius: 50%;
  box-shadow: 0 2px 4px rgba(0,0,0,.5);
  animation: jc-weight 4s ease-in-out infinite;
}
.scn-jamaica-cruelty .shadow-stripe {
  position: absolute; top: 0; left: 0; right: 0; bottom: 0;
  background: repeating-linear-gradient(
    0deg,
    transparent 0px,
    transparent 10px,
    rgba(0,0,0,0.1) 10px,
    rgba(0,0,0,0.1) 12px
  );
  animation: jc-shadows 12s linear infinite;
}
@keyframes jc-sun { 0% { transform: scale(1); opacity: 0.9; } 50% { transform: scale(1.05); opacity: 1; } 100% { transform: scale(0.95); opacity: 0.8; } }
@keyframes jc-sway { 0% { transform: translateX(-50%) rotate(-2deg); } 50% { transform: translateX(-50%) rotate(3deg); } 100% { transform: translateX(-50%) rotate(-2deg); } }
@keyframes jc-swing { 0% { transform: translateX(-50%) rotate(3deg); } 25% { transform: translateX(-50%) rotate(-4deg); } 50% { transform: translateX(-50%) rotate(2deg); } 75% { transform: translateX(-50%) rotate(-3deg); } 100% { transform: translateX(-50%) rotate(3deg); } }
@keyframes jc-strike { 0% { transform: translateX(-50%) rotate(0deg) translateY(0); } 25% { transform: translateX(-50%) rotate(-15deg) translateY(-5px); } 50% { transform: translateX(-50%) rotate(10deg) translateY(0); } 75% { transform: translateX(-50%) rotate(-10deg) translateY(-5px); } 100% { transform: translateX(-50%) rotate(0deg) translateY(0); } }
@keyframes jc-weight { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes jc-shadows { 0% { background-position: 0 0; } 100% { background-position: 0 12px; } }

.scn-kingston-sundays {
  background:
    linear-gradient(180deg, #b8c8d8 0%, #80a0b0 50%, #507080 100%),
    radial-gradient(ellipse at 50% 0%, rgba(255,255,200,0.4) 0%, transparent 70%);
}
.scn-kingston-sundays .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #c0d0e0 0%, transparent 100%);
  animation: ks-sky 10s ease-in-out infinite alternate;
}
.scn-kingston-sundays .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #5a7a5a 0%, #3a5a3a 100%);
  border-radius: 40% 60% 0 0 / 80% 70% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.3);
  animation: ks-ground 15s ease-in-out infinite alternate;
}
.scn-kingston-sundays .crowd {
  position: absolute; bottom: 40%; left: 10%; right: 10%; height: 30%;
  display: flex; justify-content: space-around; align-items: flex-end;
  animation: ks-crowd 8s ease-in-out infinite;
}
.scn-kingston-sundays .crowd::before,
.scn-kingston-sundays .crowd::after {
  content: '';
  display: block;
  width: 12px; height: 40px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
}
.scn-kingston-sundays .crowd::before { transform: rotate(-5deg); animation: ks-figure 3s ease-in-out infinite; }
.scn-kingston-sundays .crowd::after { transform: rotate(5deg); animation: ks-figure 3.5s ease-in-out infinite; }
.scn-kingston-sundays .overseer {
  position: absolute; bottom: 45%; left: 55%; width: 20px; height: 55px;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30%;
  transform: translateX(-50%);
  animation: ks-overseer 4s ease-in-out infinite;
}
.scn-kingston-sundays .whip {
  position: absolute; bottom: 52%; left: 60%; width: 2px; height: 30px;
  background: #4a3a2a;
  transform-origin: top center;
  animation: ks-whip 1s ease-in-out infinite;
}
.scn-kingston-sundays .sun-rays {
  position: absolute; top: 0; left: 0; right: 0; bottom: 0;
  background: radial-gradient(ellipse at 30% 0%, rgba(255,240,180,0.2) 0%, transparent 60%);
  pointer-events: none;
  animation: ks-rays 6s linear infinite;
}
.scn-kingston-sundays .distant-tree {
  position: absolute; bottom: 40%; left: 70%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #3a5a3a 0%, #1a3a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform: scale(0.7);
  animation: ks-tree 20s ease-in-out infinite alternate;
}
@keyframes ks-sky { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes ks-ground { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes ks-crowd { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes ks-figure { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(5deg) translateY(-2px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes ks-overseer { 0% { transform: translateX(-50%) rotate(0deg); } 25% { transform: translateX(-50%) rotate(-3deg) translateY(-2px); } 50% { transform: translateX(-50%) rotate(0deg); } 75% { transform: translateX(-50%) rotate(3deg) translateY(-2px); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes ks-whip { 0% { transform: rotate(0deg) scaleY(1); } 20% { transform: rotate(-20deg) scaleY(1.3); } 40% { transform: rotate(10deg) scaleY(0.8); } 60% { transform: rotate(-30deg) scaleY(1.2); } 80% { transform: rotate(0deg) scaleY(1); } 100% { transform: rotate(0deg) scaleY(1); } }
@keyframes ks-rays { 0% { opacity: 0.3; } 50% { opacity: 0.6; } 100% { opacity: 0.3; } }
@keyframes ks-tree { 0% { transform: scale(0.7) rotate(-2deg); } 50% { transform: scale(0.75) rotate(2deg); } 100% { transform: scale(0.7) rotate(-2deg); } }

.scn-back-to-irving {
  background:
    linear-gradient(180deg, #3a2a1a 0%, #5a4a3a 50%, #2a1a0a 100%),
    radial-gradient(ellipse at 50% 60%, rgba(200,180,140,0.3) 0%, transparent 70%);
}
.scn-back-to-irving .room-wall {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, #2a1a0a 0%, transparent 20%, transparent 80%, #2a1a0a 100%);
  animation: bi-wall 10s ease-in-out infinite alternate;
}
.scn-back-to-irving .table {
  position: absolute; bottom: 20%; left: 20%; right: 20%; height: 5px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 2px;
  box-shadow: 0 -2px 6px rgba(0,0,0,.3);
  animation: bi-table 8s ease-in-out infinite alternate;
}
.scn-back-to-irving .apparatus {
  position: absolute; bottom: 25%; left: 35%; width: 50px; height: 40px;
  background: linear-gradient(135deg, #7a6a5a 0%, #5a4a3a 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: inset 0 0 10px rgba(0,0,0,.4);
  animation: bi-app 6s ease-in-out infinite;
}
.scn-back-to-irving .figure-left {
  position: absolute; bottom: 22%; left: 25%; width: 18px; height: 45px;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-5deg);
  animation: bi-figure 12s ease-in-out infinite;
}
.scn-back-to-irving .figure-right {
  position: absolute; bottom: 22%; right: 25%; width: 18px; height: 45px;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(5deg);
  animation: bi-figure 12s ease-in-out infinite;
}
.scn-back-to-irving .lamp {
  position: absolute; bottom: 60%; left: 50%; width: 12px; height: 20px;
  background: radial-gradient(ellipse, #f0d0a0 0%, #b08050 60%, transparent 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 0 30px 10px rgba(240,208,160,0.5);
  transform: translateX(-50%);
  animation: bi-lamp 4s ease-in-out infinite alternate;
}
.scn-back-to-irving .steam {
  position: absolute; bottom: 55%; left: 38%; width: 40px; height: 30px;
  background: radial-gradient(ellipse, rgba(220,200,180,0.3) 0%, transparent 70%);
  filter: blur(4px);
  animation: bi-steam 6s ease-in-out infinite;
}
@keyframes bi-wall { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes bi-table { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes bi-app { 0% { transform: rotate(0deg); } 50% { transform: rotate(3deg) scale(1.02); } 100% { transform: rotate(0deg); } }
@keyframes bi-figure { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(5deg) translateY(-3px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes bi-lamp { 0% { box-shadow: 0 0 20px 8px rgba(240,208,160,0.4); opacity: 0.9; } 50% { box-shadow: 0 0 40px 15px rgba(240,208,160,0.7); opacity: 1; } 100% { box-shadow: 0 0 20px 8px rgba(240,208,160,0.4); opacity: 0.9; } }
@keyframes bi-steam { 0% { transform: translateY(0) scale(1); opacity: 0.3; } 50% { transform: translateY(-10px) scale(1.3); opacity: 0.5; } 100% { transform: translateY(0) scale(1); opacity: 0.3; } }

.scn-arctic-expedition-start {
  background:
    linear-gradient(180deg, #0a1a2a 0%, #1a2a3a 50%, #0a0a1a 100%),
    radial-gradient(ellipse at 50% 80%, rgba(255,180,60,0.2) 0%, transparent 60%);
}
.scn-arctic-expedition-start .cabin-wall {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #1a1a2a 0%, transparent 30%, transparent 70%, #1a1a2a 100%);
  animation: ae-wall 15s ease-in-out infinite alternate;
}
.scn-arctic-expedition-start .candle {
  position: absolute; bottom: 30%; left: 40%; width: 6px; height: 20px;
  background: linear-gradient(180deg, #d0a050 0%, #a08030 100%);
  border-radius: 2px;
  animation: ae-candle 3s ease-in-out infinite;
}
.scn-arctic-expedition-start .spark {
  position: absolute; bottom: 50%; left: 42%; width: 4px; height: 4px;
  background: radial-gradient(circle, #ffd080 0%, #ffa030 100%);
  border-radius: 50%;
  box-shadow: 0 0 6px 3px #ffa030;
  animation: ae-spark 0.8s ease-in-out infinite;
}
.scn-arctic-expedition-start .fire {
  position: absolute; bottom: 25%; left: 35%; right: 35%; height: 30%;
  background: radial-gradient(ellipse at 50% 100%, #ff8040 0%, #c04020 40%, transparent 70%);
  border-radius: 50% 50% 0 0;
  animation: ae-fire 2s ease-in-out infinite alternate;
}
.scn-arctic-expedition-start .smoke {
  position: absolute; bottom: 55%; left: 40%; right: 40%; height: 30%;
  background: radial-gradient(ellipse, rgba(100,100,100,0.4) 0%, transparent 70%);
  filter: blur(6px);
  animation: ae-smoke 5s ease-in-out infinite;
}
.scn-arctic-expedition-start .blanket {
  position: absolute; bottom: 10%; left: 30%; width: 80px; height: 6px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 3px;
  transform: rotate(-10deg);
  animation: ae-blanket 4s ease-in-out infinite;
}
.scn-arctic-expedition-start .figure {
  position: absolute; bottom: 15%; left: 50%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%) rotate(3deg);
  animation: ae-figure 6s ease-in-out infinite;
}
@keyframes ae-wall { 0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.7; } }
@keyframes ae-candle { 0% { transform: rotate(-2deg); opacity: 0.8; } 25% { transform: rotate(3deg); opacity: 1; } 50% { transform: rotate(-1deg); opacity: 0.9; } 75% { transform: rotate(4deg); opacity: 1; } 100% { transform: rotate(-2deg); opacity: 0.8; } }
@keyframes ae-spark { 0% { transform: scale(1) translateY(0); opacity: 1; } 50% { transform: scale(1.5) translateY(-5px); opacity: 0; } 51% { transform: scale(0.5) translateY(10px); opacity: 0; } 100% { transform: scale(1) translateY(0); opacity: 1; } }
@keyframes ae-fire { 0% { transform: scale(1); opacity: 0.7; } 25% { transform: scale(1.1) rotate(-3deg); opacity: 0.9; } 50% { transform: scale(0.95); opacity: 0.8; } 75% { transform: scale(1.05) rotate(3deg); opacity: 1; } 100% { transform: scale(1); opacity: 0.7; } }
@keyframes ae-smoke { 0% { transform: translateY(0) scale(1); opacity: 0.4; } 50% { transform: translateY(-15px) scale(1.5); opacity: 0.2; } 100% { transform: translateY(0) scale(1); opacity: 0.4; } }
@keyframes ae-blanket { 0% { transform: rotate(-10deg) translateX(0); } 50% { transform: rotate(-5deg) translateX(5px); } 100% { transform: rotate(-10deg) translateX(0); } }
@keyframes ae-figure { 0% { transform: translateX(-50%) rotate(3deg) translateY(0); } 50% { transform: translateX(-50%) rotate(-2deg) translateY(-2px); } 100% { transform: translateX(-50%) rotate(3deg) translateY(0); } }

/* feast-end */
.scn-feast-end {
  background: linear-gradient(180deg, #0a0a1a 0%, #12102a 50%, #1a1833 100%), radial-gradient(ellipse at 50% 100%, #1a1833 0%, transparent 60%);
}
.scn-feast-end .feast-bg {
  position:absolute; inset:0; background: linear-gradient(180deg, transparent 0%, #0e0e1f 40%, #05050f 100%);
  animation: fe-bg 20s ease-in-out infinite alternate;
}
.scn-feast-end .feast-wall {
  position:absolute; left:20%; right:20%; bottom:20%; top:10%;
  background: linear-gradient(180deg, #1f1f3a 0%, #14142b 100%);
  border-radius: 4% 4% 2% 2%;
  box-shadow: inset 0 0 40px rgba(0,0,0,0.6);
}
.scn-feast-end .feast-window {
  position:absolute; left:25%; right:25%; top:15%; bottom:45%;
  background: linear-gradient(180deg, #1a2035 0%, #0f1425 100%);
  border-radius: 10%;
  overflow: hidden;
}
.scn-feast-end .feast-rain {
  position:absolute; left:0; right:0; top:0; bottom:0;
  background: repeating-linear-gradient(45deg, transparent, transparent 3px, rgba(255,255,255,0.02) 3px, rgba(255,255,255,0.02) 4px);
  animation: fe-rain 0.8s linear infinite;
}
.scn-feast-end .feast-table {
  position:absolute; left:30%; right:30%; bottom:8%; height:10%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 6% 6% 4% 4%;
  box-shadow: 0 -4px 10px rgba(0,0,0,0.5);
  transform: perspective(500px) rotateX(10deg);
}
.scn-feast-end .feast-candle {
  position:absolute; left:48%; bottom:16%; width:6px; height:18px;
  background: linear-gradient(180deg, #f0d080 0%, #d0a050 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 12px 6px #d0a050, 0 0 24px 12px rgba(208,160,80,0.3);
  animation: fe-candle 5s ease-in-out infinite alternate;
}
.scn-feast-end .feast-figure {
  position:absolute; left:15%; bottom:18%; width:16px; height:40px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fe-figure 8s ease-in-out infinite;
}
.scn-feast-end .feast-shadow {
  position:absolute; left:10%; right:10%; bottom:6%; height:20px;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.5) 0%, transparent 70%);
  animation: fe-shadow 8s ease-in-out infinite alternate;
}
@keyframes fe-bg { 0% {opacity:0.9} 50%{opacity:1} 100%{opacity:0.8} }
@keyframes fe-rain { 0% {transform:translateY(-20px)} 100%{transform:translateY(0)} }
@keyframes fe-candle { 0% {opacity:0.7;transform:scaleY(0.9)} 50%{opacity:1;transform:scaleY(1.1)} 100%{opacity:0.8;transform:scaleY(0.95)} }
@keyframes fe-figure { 0% {transform:translateX(0) translateY(0) rotate(-1deg)} 25%{transform:translateX(2px) translateY(1px) rotate(1deg)} 50%{transform:translateX(0) translateY(0) rotate(-0.5deg)} 75%{transform:translateX(-2px) translateY(1px) rotate(0.5deg)} 100%{transform:translateX(0) translateY(0) rotate(1deg)} }
@keyframes fe-shadow { 0% {opacity:0.4;transform:scaleX(0.9)} 50%{opacity:0.6;transform:scaleX(1.1)} 100%{opacity:0.5;transform:scaleX(1)} }

/* request-discharge */
.scn-request-discharge {
  background: linear-gradient(180deg, #fae8d0 0%, #d4b890 50%, #9a7a5a 100%), radial-gradient(ellipse at 50% 0%, #fff8e0 0%, transparent 60%);
}
.scn-request-discharge .req-sky {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(180deg, #87ceeb 0%, #d4e0f0 60%, transparent 100%);
  animation: rd-sky 12s ease-in-out infinite alternate;
}
.scn-request-discharge .req-sun {
  position:absolute; top:10%; right:20%; width:50px; height:50px;
  background: radial-gradient(circle, #fff4a0 0%, #f0d080 50%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px #f0d080, 0 0 120px 40px rgba(240,208,128,0.3);
  animation: rd-sun 15s ease-in-out infinite;
}
.scn-request-discharge .req-sea {
  position:absolute; bottom:0; left:0; right:0; height:35%;
  background: linear-gradient(180deg, #3a6b8a 0%, #1a3b5a 100%);
  animation: rd-sea 10s ease-in-out infinite alternate;
}
.scn-request-discharge .req-ship {
  position:absolute; bottom:35%; left:10%; width:70px; height:40px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%);
  border-radius: 20% 20% 10% 10%;
  animation: rd-ship 25s linear infinite;
}
.scn-request-discharge .req-fig-dr {
  position:absolute; left:45%; bottom:30%; width:16px; height:42px;
  background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rd-fig1 4s ease-in-out infinite alternate;
}
.scn-request-discharge .req-fig-eq {
  position:absolute; left:55%; bottom:30%; width:16px; 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: rd-fig2 4s ease-in-out infinite alternate;
  animation-delay: 0.5s;
}
.scn-request-discharge .req-sand {
  position:absolute; bottom:28%; left:30%; right:30%; height:2%;
  background: linear-gradient(180deg, #b09070 0%, #8a7050 100%);
  border-radius: 50%;
  transform: perspective(300px) rotateX(10deg);
  animation: rd-sand 20s ease-in-out infinite;
}
@keyframes rd-sky { 0% {opacity:0.8} 50%{opacity:1} 100%{opacity:0.9} }
@keyframes rd-sun { 0% {transform:scale(0.9);opacity:0.8} 50%{transform:scale(1.1);opacity:1} 100%{transform:scale(0.95);opacity:0.9} }
@keyframes rd-sea { 0% {transform:translateY(0)} 50%{transform:translateY(2px)} 100%{transform:translateY(-1px)} }
@keyframes rd-ship { 0% {transform:translateX(-20px)} 50%{transform:translateX(10px)} 100%{transform:translateX(80vw)} }
@keyframes rd-fig1 { 0% {transform:translateY(0) rotate(2deg)} 50%{transform:translateY(-2px) rotate(-1deg)} 100%{transform:translateY(0) rotate(0)} }
@keyframes rd-fig2 { 0% {transform:translateY(0) rotate(-2deg)} 50%{transform:translateY(-2px) rotate(1deg)} 100%{transform:translateY(0) rotate(0)} }
@keyframes rd-sand { 0% {opacity:0.5;transform:perspective(300px) rotateX(10deg) scaleY(0.9)} 50%{opacity:0.8;transform:perspective(300px) rotateX(10deg) scaleY(1.1)} 100%{opacity:0.6;transform:perspective(300px) rotateX(10deg) scaleY(1)} }

/* leave-taking */
.scn-leave-taking {
  background: linear-gradient(180deg, #e0f0e0 0%, #a0d0a0 40%, #609060 100%), radial-gradient(ellipse at 50% 0%, #ffffff 0%, transparent 50%);
}
.scn-leave-taking .leave-sky {
  position:absolute; inset:0 0 20% 0;
  background: linear-gradient(180deg, #c0e6ff 0%, #e0f0ff 60%, transparent 100%);
  animation: lt-sky 15s ease-in-out infinite alternate;
}
.scn-leave-taking .leave-river {
  position:absolute; bottom:0; left:0; right:0; height:25%;
  background: linear-gradient(180deg, #3a7a5a 0%, #1a5a3a 100%);
  animation: lt-river 10s ease-in-out infinite alternate;
}
.scn-leave-taking .leave-canoe {
  position:absolute; left:30%; bottom:10%; width:60px; height:14px;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a1a0a 100%);
  border-radius: 0 0 50% 50% / 0 0 100% 100%;
  animation: lt-canoe 8s ease-in-out infinite;
}
.scn-leave-taking .leave-fig-eq {
  position:absolute; left:33%; bottom:12%; width:14px; height:36px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lt-fig1 6s ease-in-out infinite;
}
.scn-leave-taking .leave-fig-indian {
  position:absolute; left:40%; bottom:12%; width:14px; height:34px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lt-fig2 6s ease-in-out infinite;
  animation-delay: 0.3s;
}
.scn-leave-taking .leave-tree {
  position:absolute; left:10%; bottom:20%; width:20px; height:50px;
  background: linear-gradient(180deg, #3a5a2a 0%, #1a3a0a 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  animation: lt-tree 12s ease-in-out infinite alternate;
}
.scn-leave-taking .leave-sun {
  position:absolute; top:5%; right:15%; width:40px; height:40px;
  background: radial-gradient(circle, #fff0a0 0%, #e0c060 50%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 15px #e0c060, 0 0 80px 30px rgba(224,192,96,0.3);
  animation: lt-sun 20s ease-in-out infinite;
}
.scn-leave-taking .leave-cloud {
  position:absolute; top:15%; left:40%; width:70px; height:16px;
  background: linear-gradient(180deg, rgba(255,255,255,0.6) 0%, rgba(255,255,255,0.2) 100%);
  border-radius: 50%;
  filter: blur(4px);
  animation: lt-cloud 40s linear infinite;
}
@keyframes lt-sky { 0% {opacity:0.85} 50%{opacity:1} 100%{opacity:0.9} }
@keyframes lt-river { 0% {transform:translateY(0)} 50%{transform:translateY(2px)} 100%{transform:translateY(-1px)} }
@keyframes lt-canoe { 0% {transform:translateX(0) translateY(0) rotate(-2deg)} 25%{transform:translateX(5px) translateY(-1px) rotate(1deg)} 50%{transform:translateX(10px) translateY(0) rotate(-1deg)} 75%{transform:translateX(15px) translateY(-1px) rotate(2deg)} 100%{transform:translateX(20px) translateY(0) rotate(0)} }
@keyframes lt-fig1 { 0% {transform:translateY(0) rotate(1deg)} 50%{transform:translateY(-2px) rotate(-1deg)} 100%{transform:translateY(0) rotate(0)} }
@keyframes lt-fig2 { 0% {transform:translateY(0) rotate(-1deg)} 50%{transform:translateY(-1px) rotate(1deg)} 100%{transform:translateY(0) rotate(0)} }
@keyframes lt-tree { 0% {transform:rotate(0)} 50%{transform:rotate(2deg)} 100%{transform:rotate(-2deg)} }
@keyframes lt-sun { 0% {transform:scale(0.95);opacity:0.9} 50%{transform:scale(1.05);opacity:1} 100%{transform:scale(1);opacity:0.95} }
@keyframes lt-cloud { 0% {transform:translateX(-40px)} 100%{transform:translateX(120vw)} }

/* agreement-hughes */
.scn-agreement-hughes {
  background: linear-gradient(180deg, #d0e0f0 0%, #a0bcd0 50%, #7090a0 100%), radial-gradient(ellipse at 50% 0%, #e0f0ff 0%, transparent 60%);
}
.scn-agreement-hughes .agree-sky {
  position:absolute; inset:0 0 25% 0;
  background: linear-gradient(180deg, #b0d4f0 0%, #d0e8ff 60%, transparent 100%);
  animation: ah-sky 15s ease-in-out infinite alternate;
}
.scn-agreement-hughes .agree-ship {
  position:absolute; left:50%; bottom:20%; width:80px; height:50px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 5% 5%;
  transform: translateX(-50%);
  animation: ah-ship 30s linear infinite;
}
.scn-agreement-hughes .agree-dock {
  position:absolute; left:5%; right:5%; bottom:15%; height:6px;
  background: linear-gradient(90deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 2px;
  animation: ah-dock 20s ease-in-out infinite;
}
.scn-agreement-hughes .agree-fig-hughes {
  position:absolute; left:35%; bottom:18%; width:16px; height:40px;
  background: linear-gradient(180deg, #2a3a3a 0%, #1a2a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ah-fig1 5s ease-in-out infinite alternate;
}
.scn-agreement-hughes .agree-fig-eq {
  position:absolute; left:50%; bottom:18%; width:16px; height:38px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ah-fig2 5s ease-in-out infinite alternate;
  animation-delay: 0.4s;
}
.scn-agreement-hughes .agree-crates {
  position:absolute; left:15%; bottom:17%; width:20px; height:14px;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a1a 100%);
  border-radius: 6%;
  box-shadow: 2px 2px 4px rgba(0,0,0,0.3);
  animation: ah-crates 12s ease-in-out infinite alternate;
}
.scn-agreement-hughes .agree-sunbeam {
  position:absolute; top:0; left:40%; width:2px; height:60%;
  background: linear-gradient(180deg, rgba(255,255,200,0.3) 0%, transparent 100%);
  filter: blur(3px);
  animation: ah-beam 10s ease-in-out infinite alternate;
}
@keyframes ah-sky { 0% {opacity:0.9} 50%{opacity:1} 100%{opacity:0.85} }
@keyframes ah-ship { 0% {transform:translateX(-50%) translateY(0)} 50%{transform:translateX(-50%) translateY(2px)} 100%{transform:translateX(-50%) translateY(-1px)} }
@keyframes ah-dock { 0% {opacity:0.7;transform:scaleY(0.9)} 50%{opacity:1;transform:scaleY(1.1)} 100%{opacity:0.8;transform:scaleY(1)} }
@keyframes ah-fig1 { 0% {transform:translateY(0) rotate(0)} 50%{transform:translateY(-2px) rotate(2deg)} 100%{transform:translateY(0) rotate(-1deg)} }
@keyframes ah-fig2 { 0% {transform:translateY(0) rotate(0)} 50%{transform:translateY(-2px) rotate(-2deg)} 100%{transform:translateY(0) rotate(1deg)} }
@keyframes ah-crates { 0% {transform:translateX(0) translateY(0)} 50%{transform:translateX(2px) translateY(-1px)} 100%{transform:translateX(0) translateY(0)} }
@keyframes ah-beam { 0% {opacity:0.3;transform:scaleY(0.8)} 50%{opacity:0.7;transform:scaleY(1.2)} 100%{opacity:0.4;transform:scaleY(0.9)} }

.scn-author-preface { background: linear-gradient(180deg, #1e1a2e 0%, #2a2436 40%, #3a2c3e 100%), radial-gradient(ellipse at 50% 40%, #4a3a4a 0%, transparent 70%); }
.scn-author-preface .bg-wall { position:absolute; inset:0; background: linear-gradient(135deg, #1e1a2e 0%, #2a2436 50%, #1e1a2e 100%); animation: ap-wall 12s ease-in-out infinite alternate; }
.scn-author-preface .desk { position:absolute; bottom:10%; left:5%; right:5%; height:20%; background: linear-gradient(180deg, #4a2e2a 0%, #3a1e1a 100%); border-radius: 4px; box-shadow: 0 -4px 20px rgba(0,0,0,0.6); }
.scn-author-preface .paper { position:absolute; bottom:15%; left:25%; width:40%; height:12%; background: linear-gradient(135deg, #d4c8a8 0%, #c0b090 100%); border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,0.3); }
.scn-author-preface .inkwell { position:absolute; bottom:16%; left:70%; width:12px; height:16px; background: radial-gradient(ellipse at 50% 30%, #2a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 30% 30%; }
.scn-author-preface .candle { position:absolute; bottom:18%; left:50%; width:8px; height:30px; background: linear-gradient(180deg, #d0b080 0%, #a08060 100%); border-radius: 4px 4px 2px 2px; }
.scn-author-preface .flame { position:absolute; bottom:48%; left:50%; width:16px; height:24px; transform:translate(-50%,0); background: radial-gradient(ellipse at 50% 100%, #ffd080 0%, #c07030 50%, transparent 100%); border-radius: 50% 50% 20% 20%; box-shadow: 0 0 40px 10px #c07030, 0 0 80px 20px rgba(192,112,48,0.4); animation: ap-flame 1.5s ease-in-out infinite alternate; }
.scn-author-preface .hand { position:absolute; bottom:14%; left:30%; width:20px; height:30px; background: linear-gradient(180deg, #c0a088 0%, #a08068 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform: rotate(-15deg); animation: ap-hand 4s ease-in-out infinite; }
.scn-author-preface .shadow-drape { position:absolute; inset:0; background: linear-gradient(180deg, transparent 40%, rgba(10,8,12,0.7) 100%); pointer-events: none; animation: ap-shadow 8s ease-in-out infinite alternate; }
@keyframes ap-wall { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes ap-flame { 0% { transform:translate(-50%,0) scale(1) rotate(-3deg); opacity:0.8 } 50% { transform:translate(-50%,-3px) scale(1.1) rotate(3deg); opacity:1 } 100% { transform:translate(-50%,0) scale(0.95) rotate(0); opacity:0.85 } }
@keyframes ap-hand { 0% { transform: rotate(-15deg) translate(0,0) } 50% { transform: rotate(-12deg) translate(2px,-2px) } 100% { transform: rotate(-15deg) translate(0,0) } }
@keyframes ap-shadow { 0% { opacity:0.5 } 50% { opacity:0.7 } 100% { opacity:0.4 } }

.scn-benin-birthplace { background: linear-gradient(180deg, #87ceeb 0%, #c0e0f0 40%, #f0e8d0 100%), radial-gradient(ellipse at 50% 100%, #e8d8b0 0%, transparent 80%); }
.scn-benin-birthplace .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #a0d0e8 0%, #d0e8f0 100%); animation: bb-sky 20s ease-in-out infinite alternate; }
.scn-benin-birthplace .ground { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #d4b898 0%, #b09070 100%); border-radius: 30% 70% 0 0 / 50% 60% 0 0; }
.scn-benin-birthplace .compound-wall { position:absolute; bottom:25%; left:15%; width:30%; height:20%; background: linear-gradient(180deg, #c0a080 0%, #a08060 100%); border-radius: 8% 8% 0 0; box-shadow: inset 0 -4px 10px rgba(0,0,0,0.2); }
.scn-benin-birthplace .tree { position:absolute; bottom:30%; left:55%; width:60px; height:120px; background: linear-gradient(180deg, #4a7a3a 0%, #2a5a1a 100%); border-radius: 50% 50% 30% 30% / 40% 40% 60% 60%; box-shadow: 0 10px 20px rgba(0,0,0,0.15); animation: bb-tree 8s ease-in-out infinite; }
.scn-benin-birthplace .chief-figure { position:absolute; bottom:20%; left:35%; width:28px; height:60px; background: linear-gradient(180deg, #c07040 0%, #8a5030 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform: rotate(5deg); animation: bb-chief 6s ease-in-out infinite; }
.scn-benin-birthplace .chief-figure::before { content:''; position:absolute; top:-10px; left:50%; width:20px; height:20px; transform:translateX(-50%); background: radial-gradient(circle, #c09060 0%, #a07050 100%); border-radius:50%; box-shadow: 0 2px 4px rgba(0,0,0,0.3); } /* head */
.scn-benin-birthplace .child-figure { position:absolute; bottom:18%; left:45%; width:18px; height:40px; background: linear-gradient(180deg, #d0a080 0%, #b08060 100%); border-radius: 50% 50% 40% 40% / 50% 50% 30% 30%; transform: scale(0.8); animation: bb-child 7s ease-in-out infinite; }
.scn-benin-birthplace .sun-rays { position:absolute; top:10%; left:30%; width:200px; height:200px; background: radial-gradient(ellipse, rgba(255,240,180,0.4) 0%, transparent 70%); animation: bb-sun 30s linear infinite; }
.scn-benin-birthplace .cloud { position:absolute; top:15%; left:5%; width:90px; height:25px; background: linear-gradient(180deg, rgba(255,255,255,0.7) 0%, rgba(255,255,255,0.2) 100%); border-radius:50%; filter: blur(4px); animation: bb-cloud 45s linear infinite; }
@keyframes bb-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes bb-tree { 0% { transform:scale(1) rotate(-1deg) } 50% { transform:scale(1.02) rotate(1deg) } 100% { transform:scale(1) rotate(0) } }
@keyframes bb-chief { 0% { transform:rotate(5deg) translateY(0) } 50% { transform:rotate(8deg) translateY(-2px) } 100% { transform:rotate(5deg) translateY(0) } }
@keyframes bb-child { 0% { transform:scale(0.8) translate(0,0) } 50% { transform:scale(0.85) translate(3px,-1px) } 100% { transform:scale(0.8) translate(0,0) } }
@keyframes bb-sun { 0% { transform:translate(0,0) scale(1) } 50% { transform:translate(10px,-5px) scale(1.05) } 100% { transform:translate(0,0) scale(1) } }
@keyframes bb-cloud { 0% { transform:translateX(-30px) } 100% { transform:translateX(120vw) } }

.scn-benin-cultural-celebrations { background: linear-gradient(180deg, #87ceeb 0%, #c0e0f0 30%, #f0e0c0 100%), radial-gradient(ellipse at 50% 100%, #e8d0a0 0%, transparent 70%); }
.scn-benin-cultural-celebrations .bg-sky { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #a0d0e8 0%, #d4e8f0 100%); animation: bc-sky 15s ease-in-out infinite alternate; }
.scn-benin-cultural-celebrations .ground-dance { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #c8b090 0%, #a08060 100%); border-radius: 60% 40% 0 0 / 40% 50% 0 0; }
.scn-benin-cultural-celebrations .drum { position:absolute; bottom:18%; left:25%; width:30px; height:40px; background: linear-gradient(180deg, #8a6030 0%, #6a4020 100%); border-radius: 50% 50% 10% 10%; box-shadow: 0 4px 8px rgba(0,0,0,0.3); animation: bc-drum 2s ease-in-out infinite; }
.scn-benin-cultural-celebrations .dancer-woman { position:absolute; bottom:12%; left:40%; width:22px; height:50px; background: linear-gradient(180deg, #d09070 0%, #b07050 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform: rotate(-8deg); animation: bc-dancer-w 3s ease-in-out infinite; }
.scn-benin-cultural-celebrations .dancer-man { position:absolute; bottom:14%; left:55%; width:24px; height:55px; background: linear-gradient(180deg, #c07850 0%, #a05830 100%); border-radius: 50% 50% 40% 40% / 55% 55% 35% 35%; transform: rotate(6deg); animation: bc-dancer-m 3.5s ease-in-out infinite; }
.scn-benin-cultural-celebrations .musician { position:absolute; bottom:16%; left:18%; width:20px; height:40px; background: linear-gradient(180deg, #b08060 0%, #906040 100%); border-radius: 50% 50% 40% 40% / 50% 50% 30% 30%; transform: scale(0.9); animation: bc-musician 4s ease-in-out infinite alternate; }
.scn-benin-cultural-celebrations .sun-burst { position:absolute; top:5%; left:50%; width:300px; height:300px; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 0%, rgba(255,220,120,0.4) 0%, transparent 70%); animation: bc-sun 20s linear infinite; }
.scn-benin-cultural-celebrations .shadow-band { position:absolute; bottom:0; left:0; right:0; height:10%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.15) 100%); animation: bc-shadow 10s ease-in-out infinite; }
@keyframes bc-sky { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes bc-drum { 0% { transform:scale(1) translateY(0) } 50% { transform:scale(1.05) translateY(-2px) } 100% { transform:scale(1) translateY(0) } }
@keyframes bc-dancer-w { 0% { transform:rotate(-8deg) translateX(0) } 50% { transform:rotate(-5deg) translateX(4px) } 100% { transform:rotate(-8deg) translateX(0) } }
@keyframes bc-dancer-m { 0% { transform:rotate(6deg) translate(0,0) } 50% { transform:rotate(10deg) translate(-3px,-2px) } 100% { transform:rotate(6deg) translate(0,0) } }
@keyframes bc-musician { 0% { transform:scale(0.9) rotate(-2deg) } 50% { transform:scale(0.95) rotate(2deg) } 100% { transform:scale(0.9) rotate(-2deg) } }
@keyframes bc-sun { 0% { transform:translateX(-50%) scale(1) } 50% { transform:translateX(-45%) scale(1.05) } 100% { transform:translateX(-50%) scale(1) } }
@keyframes bc-shadow { 0% { opacity:0.2 } 50% { opacity:0.4 } 100% { opacity:0.2 } }

.scn-benin-food-and-drink { background: linear-gradient(180deg, #d4c0a0 0%, #c0a880 40%, #a08860 100%), radial-gradient(ellipse at 50% 60%, #e0c8a0 0%, transparent 70%); }
.scn-benin-food-and-drink .wall { position:absolute; inset:0; background: linear-gradient(135deg, #b09878 0%, #a08060 100%); animation: bf-wall 15s ease-in-out infinite alternate; }
.scn-benin-food-and-drink .table { position:absolute; bottom:10%; left:10%; right:10%; height:18%; background: linear-gradient(180deg, #6a5030 0%, #4a3820 100%); border-radius: 8px; box-shadow: 0 -4px 12px rgba(0,0,0,0.3); }
.scn-benin-food-and-drink .bowl { position:absolute; bottom:14%; left:40%; width:36px; height:16px; background: linear-gradient(180deg, #b09070 0%, #8a7050 100%); border-radius: 50% 50% 20% 20%; box-shadow: 0 2px 4px rgba(0,0,0,0.2); }
.scn-benin-food-and-drink .hand { position:absolute; bottom:14%; left:30%; width:18px; height:24px; background: linear-gradient(180deg, #c0a080 0%, #a08060 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform: rotate(20deg); animation: bf-hand 4s ease-in-out infinite; }
.scn-benin-food-and-drink .libation-stream { position:absolute; bottom:22%; left:68%; width:4px; height:30px; background: linear-gradient(180deg, #d0c0a0 0%, transparent 100%); border-radius: 2px; animation: bf-libation 6s linear infinite; }
.scn-benin-food-and-drink .steam { position:absolute; bottom:22%; left:42%; width:20px; height:30px; background: radial-gradient(ellipse at 50% 100%, rgba(255,255,255,0.3) 0%, transparent 70%); filter: blur(3px); animation: bf-steam 5s ease-in-out infinite; }
.scn-benin-food-and-drink .roof-cover { position:absolute; top:0; left:10%; right:10%; height:30%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 0 0 40% 40% / 0 0 30% 30%; box-shadow: 0 4px 20px rgba(0,0,0,0.4); }
@keyframes bf-wall { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes bf-hand { 0% { transform:rotate(20deg) translate(0,0) } 50% { transform:rotate(25deg) translate(2px,-2px) } 100% { transform:rotate(20deg) translate(0,0) } }
@keyframes bf-libation { 0% { transform:scaleY(1); opacity:0.8 } 50% { transform:scaleY(1.3); opacity:1 } 100% { transform:scaleY(1); opacity:0.5 } }
@keyframes bf-steam { 0% { transform:translate(0,0) scale(1); opacity:0.5 } 50% { transform:translate(2px,-8px) scale(1.2); opacity:0.8 } 100% { transform:translate(0,0) scale(1); opacity:0.3 } }

.scn-new-birth-question {
  background:
    radial-gradient(ellipse at 50% 60%, #3a2a1a 0%, #1a0e0a 70%),
    linear-gradient(180deg, #2a1a10 0%, #1a0e0a 100%);
}
.scn-new-birth-question .bg-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a10 100%);
  animation: nbq-wall 12s ease-in-out infinite alternate;
}
.scn-new-birth-question .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #2a1a10 0%, #3a2a1a 100%);
  animation: nbq-floor 12s ease-in-out infinite alternate;
}
.scn-new-birth-question .reverend {
  position: absolute; bottom: 24%; left: 30%; width: 28px; height: 44px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: nbq-rev 6s ease-in-out infinite;
}
.scn-new-birth-question .equiano {
  position: absolute; bottom: 24%; right: 28%; width: 22px; 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: nbq-equ 6s ease-in-out infinite alternate;
}
.scn-new-birth-question .lamp {
  position: absolute; bottom: 34%; left: 48%; width: 10px; height: 14px;
  background: radial-gradient(circle, #c08040 0%, #804020 70%);
  border-radius: 30% 30% 50% 50%;
  box-shadow: 0 0 20px 6px #c08040, 0 0 40px 12px rgba(192,128,64,0.4);
  animation: nbq-lamp 3s ease-in-out infinite alternate;
}
.scn-new-birth-question .glow {
  position: absolute; bottom: 36%; left: 46%; width: 60px; height: 60px;
  background: radial-gradient(circle, rgba(192,128,64,0.3) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(10px);
  animation: nbq-glow 3s ease-in-out infinite alternate;
}
.scn-new-birth-question .book {
  position: absolute; bottom: 26%; left: 42%; width: 18px; height: 12px;
  background: linear-gradient(135deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 20% 20%;
  transform: rotate(-5deg);
  box-shadow: 2px 2px 4px rgba(0,0,0,0.5);
  animation: nbq-book 8s ease-in-out infinite;
}
@keyframes nbq-wall { 0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.7; } }
@keyframes nbq-floor { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes nbq-rev {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes nbq-equ {
  0% { transform: translateY(0) rotate(1deg); }
  50% { transform: translateY(-1px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes nbq-lamp {
  0% { box-shadow: 0 0 18px 4px #c08040, 0 0 36px 8px rgba(192,128,64,0.3); opacity: 0.85; }
  50% { box-shadow: 0 0 30px 10px #d09050, 0 0 50px 16px rgba(208,144,80,0.5); opacity: 1; }
  100% { box-shadow: 0 0 22px 6px #c08040, 0 0 40px 12px rgba(192,128,64,0.35); opacity: 0.9; }
}
@keyframes nbq-glow { 0% { transform: scale(1); } 50% { transform: scale(1.1); } 100% { transform: scale(1); } }
@keyframes nbq-book {
  0% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(-4deg) translateY(-1px); }
  100% { transform: rotate(-5deg) translateY(0); }
}

.scn-law-schoolmaster {
  background:
    radial-gradient(ellipse at 50% 90%, #4a3a2a 0%, #2a1a10 70%),
    linear-gradient(180deg, #3a2a1a 0%, #1a0e0a 100%);
}
.scn-law-schoolmaster .room {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a10 100%);
  animation: lsm-room 20s ease-in-out infinite alternate;
}
.scn-law-schoolmaster .table {
  position: absolute; bottom: 20%; left: 20%; right: 20%; height: 14px;
  background: linear-gradient(0deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 6px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  transform: scale(1.02);
  animation: lsm-table 10s ease-in-out infinite;
}
.scn-law-schoolmaster .interpreter {
  position: absolute; bottom: 28%; left: 18%; width: 20px; height: 36px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lsm-interp 8s ease-in-out infinite;
}
.scn-law-schoolmaster .equiano {
  position: absolute; bottom: 28%; right: 22%; width: 20px; height: 36px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lsm-equ 8s ease-in-out infinite alternate;
}
.scn-law-schoolmaster .friend {
  position: absolute; bottom: 28%; left: 44%; width: 22px; height: 38px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lsm-friend 8s ease-in-out infinite;
}
.scn-law-schoolmaster .scroll {
  position: absolute; bottom: 34%; left: 46%; width: 30px; height: 8px;
  background: linear-gradient(90deg, #d0c0a0 0%, #b0a080 50%, #d0c0a0 100%);
  border-radius: 3px;
  transform: rotate(-2deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.4);
  animation: lsm-scroll 12s ease-in-out infinite;
}
.scn-law-schoolmaster .candle {
  position: absolute; bottom: 36%; left: 50%; width: 6px; height: 14px;
  background: linear-gradient(180deg, #c0a080 0%, #806040 100%);
  border-radius: 2px 2px 50% 50%;
  transform: translateX(-50%);
  animation: lsm-candle 4s ease-in-out infinite;
}
.scn-law-schoolmaster .flicker {
  position: absolute; bottom: 48%; left: 50%; width: 10px; height: 10px;
  background: radial-gradient(circle, #ffd080 0%, #c08040 70%);
  border-radius: 50%;
  transform: translateX(-50%);
  box-shadow: 0 0 16px 6px #c08040, 0 0 30px 10px rgba(192,128,64,0.4);
  animation: lsm-flicker 1.5s ease-in-out infinite alternate;
}
@keyframes lsm-room { 0% { opacity: 0.8; } 50% { opacity: 0.95; } 100% { opacity: 0.8; } }
@keyframes lsm-table { 0% { transform: scale(1.02) translateY(0); } 50% { transform: scale(1) translateY(-1px); } 100% { transform: scale(1.02) translateY(0); } }
@keyframes lsm-interp { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes lsm-equ { 0% { transform: translateY(0) rotate(1deg); } 50% { transform: translateY(-1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes lsm-friend { 0% { transform: translateY(0) rotate(0); } 33% { transform: translateY(-2px) rotate(1deg); } 66% { transform: translateY(-1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes lsm-scroll { 0% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(-1deg) translateY(-1px); } 100% { transform: rotate(-2deg) translateY(0); } }
@keyframes lsm-candle { 0% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(1.05); } 100% { transform: translateX(-50%) scaleY(1); } }
@keyframes lsm-flicker { 0% { opacity: 0.8; transform: translateX(-50%) scale(1); } 50% { opacity: 1; transform: translateX(-50%) scale(1.2); } 100% { opacity: 0.85; transform: translateX(-50%) scale(0.95); } }

.scn-forgiveness-question {
  background:
    radial-gradient(ellipse at 50% 70%, #1a0e0a 0%, #0a0605 70%),
    linear-gradient(180deg, #1a0e0a 0%, #0a0605 100%);
}
.scn-forgiveness-question .bg-dark {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #1a0e0a 0%, #0a0605 100%);
  animation: fq-bg 15s ease-in-out infinite alternate;
}
.scn-forgiveness-question .equiano-shadow {
  position: absolute; bottom: 20%; left: 18%; width: 24px; height: 42px;
  background: linear-gradient(180deg, #0a0605 0%, #030202 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  filter: blur(2px);
  animation: fq-shadow 8s ease-in-out infinite;
}
.scn-forgiveness-question .mr-ld {
  position: absolute; bottom: 24%; right: 24%; width: 26px; height: 44px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fq-ld 6s ease-in-out infinite;
}
.scn-forgiveness-question .lamp-tight {
  position: absolute; bottom: 38%; left: 48%; width: 8px; height: 12px;
  background: radial-gradient(circle, #d09050 0%, #804020 70%);
  border-radius: 30% 30% 50% 50%;
  box-shadow: 0 0 14px 4px #d09050, 0 0 28px 8px rgba(208,144,80,0.3);
  animation: fq-lamp 2s ease-in-out infinite alternate;
}
.scn-forgiveness-question .halo {
  position: absolute; bottom: 38%; left: 46%; width: 40px; height: 40px;
  background: radial-gradient(circle, rgba(208,144,80,0.2) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(6px);
  animation: fq-halo 2s ease-in-out infinite alternate;
}
.scn-forgiveness-question .hand {
  position: absolute; bottom: 32%; right: 38%; width: 10px; height: 16px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform: rotate(15deg);
  transform-origin: bottom center;
  animation: fq-hand 4s ease-in-out infinite;
}
@keyframes fq-bg { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.95; } }
@keyframes fq-shadow { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(0.95); } 100% { transform: translateY(0) scale(1); } }
@keyframes fq-ld {
  0% { transform: translateY(0) rotate(0); }
  30% { transform: translateY(-3px) rotate(1deg); }
  60% { transform: translateY(-1px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes fq-lamp {
  0% { box-shadow: 0 0 12px 2px #d09050, 0 0 24px 6px rgba(208,144,80,0.2); opacity: 0.8; }
  50% { box-shadow: 0 0 20px 6px #e0a060, 0 0 36px 12px rgba(224,160,96,0.5); opacity: 1; }
  100% { box-shadow: 0 0 14px 3px #d09050, 0 0 28px 8px rgba(208,144,80,0.3); opacity: 0.85; }
}
@keyframes fq-halo { 0% { transform: scale(1); opacity: 0.4; } 50% { transform: scale(1.2); opacity: 0.6; } 100% { transform: scale(1); opacity: 0.4; } }
@keyframes fq-hand { 0% { transform: rotate(15deg) translateY(0); } 50% { transform: rotate(10deg) translateY(-2px); } 100% { transform: rotate(15deg) translateY(0); } }

.scn-westminster-chapel {
  background:
    radial-gradient(ellipse at 30% 20%, #d0c0a0 0%, #8a7a5a 50%, #3a2a1a 90%),
    linear-gradient(180deg, #d0c0a0 0%, #7a6a4a 30%, #2a1a10 100%);
}
.scn-westminster-chapel .chancel {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #c0b090 0%, #8a7a5a 100%);
  animation: wc-chancel 20s ease-in-out infinite alternate;
}
.scn-westminster-chapel .window {
  position: absolute; top: 5%; left: 10%; width: 80px; height: 100px;
  background: radial-gradient(ellipse at 50% 40%, #ffe0a0 0%, #d0b080 60%, #8a7a5a 100%);
  border-radius: 30% 30% 0 0;
  box-shadow: inset 0 0 20px 10px rgba(255,224,160,0.3);
  animation: wc-window 10s ease-in-out infinite;
}
.scn-westminster-chapel .light-beam {
  position: absolute; top: 5%; left: 10%; width: 80px; height: 120px;
  background: linear-gradient(180deg, rgba(255,224,160,0.3) 0%, transparent 100%);
  filter: blur(8px);
  animation: wc-beam 15s ease-in-out infinite alternate;
}
.scn-westminster-chapel .pulpit {
  position: absolute; bottom: 20%; left: 40%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 10% 10% 30% 30%;
  box-shadow: 2px 0 6px rgba(0,0,0,0.4);
  animation: wc-pulpit 12s ease-in-out infinite;
}
.scn-westminster-chapel .preacher {
  position: absolute; bottom: 32%; left: 42%; width: 18px; height: 34px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: wc-preacher 8s ease-in-out infinite;
}
.scn-westminster-chapel .equiano-pew {
  position: absolute; bottom: 15%; right: 20%; width: 20px; height: 32px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: wc-equ 8s ease-in-out infinite alternate;
}
.scn-westminster-chapel .pew {
  position: absolute; bottom: 12%; right: 14%; width: 60px; height: 10px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 0 0 10% 10%;
  box-shadow: 0 4px 6px rgba(0,0,0,0.3);
  animation: wc-pew 16s ease-in-out infinite;
}
@keyframes wc-chancel { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes wc-window {
  0% { box-shadow: inset 0 0 20px 10px rgba(255,224,160,0.3); }
  50% { box-shadow: inset 0 0 30px 15px rgba(255,224,160,0.5); }
  100% { box-shadow: inset 0 0 20px 10px rgba(255,224,160,0.3); }
}
@keyframes wc-beam { 0% { opacity: 0.4; transform: scaleY(1); } 50% { opacity: 0.7; transform: scaleY(1.1); } 100% { opacity: 0.4; transform: scaleY(1); } }
@keyframes wc-pulpit { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes wc-preacher { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes wc-equ { 0% { transform: translateY(0) rotate(1deg); } 50% { transform: translateY(-1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes wc-pew { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }

.scn-minister-examination { background: linear-gradient(135deg, #c8b89a 0%, #e0d4b8 40%, #f5efd8 100%), radial-gradient(ellipse at 30% 20%, #fff2d0 0%, transparent 60%); }
.scn-minister-examination .bg-room { position:absolute; inset:0; background: linear-gradient(180deg, #e0d4b8 0%, #c8b89a 50%, #b0a080 100%); }
.scn-minister-examination .window { position:absolute; top:8%; left:10%; width:30%; height:40%; background: linear-gradient(180deg, #aad0e8 0%, #c8e0f0 50%, #e8f4ff 100%); border-radius: 4px 4px 8% 8%; box-shadow: inset 0 0 20px rgba(255,255,220,0.3), 0 4px 8px rgba(0,0,0,0.2); animation: ex-window 10s ease-in-out infinite alternate; }
.scn-minister-examination .sunbeam { position:absolute; top:18%; left:12%; width:15%; height:20%; background: linear-gradient(135deg, rgba(255,250,200,0.4) 0%, rgba(255,250,200,0.05) 100%); filter: blur(12px); transform: skewX(-10deg) rotate(5deg); animation: ex-beam 8s ease-in-out infinite alternate; }
.scn-minister-examination .minister { position:absolute; bottom:30%; left:30%; width:40px; height:100px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 40% 40% 30% 30% / 70% 70% 30% 30%; box-shadow: 0 2px 6px rgba(0,0,0,0.3); animation: ex-minister 6s ease-in-out infinite; }
.scn-minister-examination .equiano { position:absolute; bottom:28%; left:55%; width:36px; height:90px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ex-equiano 8s ease-in-out infinite; }
.scn-minister-examination .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #9a8a6a 0%, #7a6a4a 100%); }
.scn-minister-examination .book-stand { position:absolute; bottom:32%; left:45%; width:20px; height:24px; background: linear-gradient(180deg, #6a5a3a 0%, #4a3a1a 100%); border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.3); }
@keyframes ex-window { 0% { opacity:0.7; filter: brightness(0.9); } 50% { opacity:1; filter: brightness(1.1); } 100% { opacity:0.8; filter: brightness(1); } }
@keyframes ex-beam { 0% { opacity:0.2; transform: skewX(-10deg) rotate(5deg) translateX(0); } 50% { opacity:0.5; transform: skewX(-8deg) rotate(7deg) translateX(5px); } 100% { opacity:0.3; transform: skewX(-12deg) rotate(3deg) translateX(-3px); } }
@keyframes ex-minister { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-3px) rotate(2deg); } 60% { transform: translateY(0) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes ex-equiano { 0% { transform: translateX(0) translateY(0); } 25% { transform: translateX(4px) translateY(-2px); } 50% { transform: translateX(0) translateY(0); } 75% { transform: translateX(-2px) translateY(-1px); } 100% { transform: translateX(0) translateY(0); } }

/* minister-advice */
.scn-minister-advice { background: linear-gradient(180deg, #d4c8a8 0%, #c4b898 40%, #b0a080 100%), radial-gradient(ellipse at 70% 30%, #f0e8c8 0%, transparent 50%); }
.scn-minister-advice .bg-study { position:absolute; inset:0; background: linear-gradient(180deg, #c4b898 0%, #a09070 50%, #807050 100%); }
.scn-minister-advice .window-lattice { position:absolute; top:5%; right:8%; width:25%; height:45%; background: linear-gradient(180deg, #a0c8d8 0%, #c8e0e8 50%, #e0f0f8 100%); border: 4px solid #6a5a3a; border-radius: 4px; box-shadow: inset 0 0 12px rgba(255,255,220,0.3); animation: ad-window 12s ease-in-out infinite alternate; }
.scn-minister-advice .desk { position:absolute; bottom:25%; left:25%; width:50%; height:8%; background: linear-gradient(180deg, #7a6a4a 0%, #5a4a2a 100%); border-radius: 2px 2px 0 0; }
.scn-minister-advice .minister-seated { position:absolute; bottom:30%; left:30%; width:44px; height:80px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%; transform-origin: bottom center; animation: ad-minister 7s ease-in-out infinite; }
.scn-minister-advice .equiano-standing { position:absolute; bottom:26%; left:55%; width:34px; height:96px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ad-equiano 9s ease-in-out infinite; }
.scn-minister-advice .bible { position:absolute; bottom:33%; left:38%; width:12px; height:16px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 1px; box-shadow: 0 2px 4px rgba(0,0,0,0.4); }
.scn-minister-advice .chair { position:absolute; bottom:30%; left:28%; width:52px; height:6px; background: #5a4a2a; border-radius: 2px; }
@keyframes ad-window { 0% { opacity:0.6; filter: brightness(0.9); } 50% { opacity:1; filter: brightness(1.1); } 100% { opacity:0.7; filter: brightness(1); } }
@keyframes ad-minister { 0% { transform: translateY(0) rotate(0deg); } 40% { transform: translateY(-2px) rotate(2deg); } 70% { transform: translateY(0) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes ad-equiano { 0% { transform: translateX(0) translateY(0); } 30% { transform: translateX(-3px) translateY(-2px); } 60% { transform: translateX(3px) translateY(0); } 100% { transform: translateX(0) translateY(0); } }

/* hope-ship */
.scn-hope-ship { background: linear-gradient(135deg, #1a2a3a 0%, #2a3a4a 40%, #0a1a2a 100%), radial-gradient(ellipse at 30% 50%, #2a4a5a 0%, transparent 70%); }
.scn-hope-ship .bg-hold { position:absolute; inset:0; background: linear-gradient(180deg, #0a1a2a 0%, #000a0a 100%); }
.scn-hope-ship .porthole { position:absolute; top:20%; left:60%; width:40px; height:40px; background: radial-gradient(circle, #4a6a8a 0%, #2a4a6a 60%, transparent 70%); border: 6px solid #3a4a5a; border-radius:50%; box-shadow: inset 0 0 20px rgba(100,150,200,0.3); animation: ho-porthole 10s ease-in-out infinite alternate; }
.scn-hope-ship .moonlight { position:absolute; top:22%; left:62%; width:60px; height:80px; background: linear-gradient(135deg, rgba(180,220,255,0.3) 0%, rgba(180,220,255,0.02) 100%); filter: blur(10px); transform: rotate(-15deg); animation: ho-moonlight 15s ease-in-out infinite alternate; }
.scn-hope-ship .figure-silhouette { position:absolute; bottom:30%; left:50%; width:28px; height:70px; background: linear-gradient(180deg, #050a10 0%, #000005 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ho-figure 6s ease-in-out infinite; }
.scn-hope-ship .stern-railing { position:absolute; bottom:30%; left:0; right:0; height:4px; background: #2a3a4a; }
.scn-hope-ship .lamp-distant { position:absolute; top:35%; left:20%; width:6px; height:6px; background: radial-gradient(circle, #ffd080 0%, #a08040 100%); border-radius:50%; box-shadow: 0 0 12px 4px rgba(255,208,128,0.5); animation: ho-lamp 4s ease-in-out infinite alternate; }
.scn-hope-ship .shadow-pool { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,10,0.6) 100%); }
@keyframes ho-porthole { 0% { box-shadow: inset 0 0 15px rgba(100,150,200,0.2); } 50% { box-shadow: inset 0 0 25px rgba(100,150,200,0.5); } 100% { box-shadow: inset 0 0 20px rgba(100,150,200,0.3); } }
@keyframes ho-moonlight { 0% { opacity:0.3; transform: rotate(-15deg) translateX(0); } 50% { opacity:0.6; transform: rotate(-10deg) translateX(5px); } 100% { opacity:0.4; transform: rotate(-20deg) translateX(-3px); } }
@keyframes ho-figure { 0% { transform: translateY(0) rotate(0deg); } 40% { transform: translateY(-2px) rotate(2deg); } 70% { transform: translateY(0) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes ho-lamp { 0% { opacity:0.7; box-shadow: 0 0 8px 2px rgba(255,208,128,0.4); } 50% { opacity:1; box-shadow: 0 0 16px 6px rgba(255,208,128,0.7); } 100% { opacity:0.8; box-shadow: 0 0 10px 3px rgba(255,208,128,0.5); } }

/* fear-death */
.scn-fear-death { background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 40%, #000005 100%), radial-gradient(ellipse at 50% 30%, #2a1a2a 0%, transparent 60%); }
.scn-fear-death .bg-darkroom { position:absolute; inset:0; background: linear-gradient(180deg, #0a0a1a 0%, #000005 100%); }
.scn-fear-death .kneeling-figure { position:absolute; bottom:18%; left:40%; width:36px; height:78px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fe-kneel 7s ease-in-out infinite; }
.scn-fear-death .praying-hands { position:absolute; bottom:28%; left:43%; width:16px; height:20px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 40% 40% 20% 20% / 60% 60% 40% 40%; animation: fe-hands 5s ease-in-out infinite; }
.scn-fear-death .captain-silhouette { position:absolute; bottom:20%; left:70%; width:34px; height:85px; background: linear-gradient(180deg, #0a0a10 0%, #000000 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fe-captain 9s ease-in-out infinite; }
.scn-fear-death .lantern-glow { position:absolute; top:25%; left:60%; width:8px; height:8px; background: radial-gradient(circle, #ffd080 0%, #b08040 100%); border-radius:50%; box-shadow: 0 0 20px 8px rgba(255,208,128,0.5), 0 0 40px 16px rgba(255,208,128,0.2); animation: fe-lantern 4s ease-in-out infinite alternate; }
.scn-fear-death .bible-open { position:absolute; bottom:22%; left:48%; width:20px; height:14px; background: linear-gradient(135deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 2px; transform: rotate(-5deg); }
.scn-fear-death .door-frame { position:absolute; top:0; bottom:0; right:0; width:20%; background: linear-gradient(180deg, #1a1a22 0%, #0a0a12 100%); border-left: 4px solid #2a2a3a; }
@keyframes fe-kneel { 0% { transform: translateY(0) rotate(0deg); } 40% { transform: translateY(-2px) rotate(2deg); } 70% { transform: translateY(0) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes fe-hands { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-2px) scaleY(1.05); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes fe-captain { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(-3px) rotate(2deg); } 60% { transform: translateX(0) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes fe-lantern { 0% { opacity:0.6; box-shadow: 0 0 12px 4px rgba(255,208,128,0.3), 0 0 24px 8px rgba(255,208,128,0.1); } 50% { opacity:1; box-shadow: 0 0 24px 10px rgba(255,208,128,0.6), 0 0 48px 20px rgba(255,208,128,0.3); } 100% { opacity:0.7; box-shadow: 0 0 16px 6px rgba(255,208,128,0.4), 0 0 32px 12px rgba(255,208,128,0.2); } }

.scn-boat-preparation {
  background: 
    linear-gradient(180deg, #2a2a5e 0%, #4a3a5e 30%, #c8a060 60%, #f0d090 80%, #ffe0b0 100%),
    radial-gradient(ellipse at 70% 30%, #e0b070 0%, transparent 60%);
}
.scn-boat-preparation .sky-dawn { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #2a2a5e 0%, #6a5a7e 40%, #d0a060 70%, transparent); animation: bp-sky 18s ease-in-out infinite alternate; }
.scn-boat-preparation .sea { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #3a4a5e 0%, #0a1a2a 100%); border-radius: 40% 60% 0 0 / 30% 40% 0 0; animation: bp-sea 8s ease-in-out infinite alternate; }
.scn-boat-preparation .boat { position:absolute; bottom:35%; left:30%; width:100px; height:30px; background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%); border-radius: 10% 10% 30% 30% / 40% 40% 20% 20%; transform-origin: center bottom; animation: bp-boat 6s ease-in-out infinite; }
.scn-boat-preparation .pump { position:absolute; bottom:38%; left:34%; width:10px; height:22px; background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius: 20%; transform: rotate(-10deg); animation: bp-pump 2s ease-in-out infinite; }
.scn-boat-preparation .figure-work { position:absolute; bottom:35%; left:28%; width:18px; height:30px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bp-figure 4s ease-in-out infinite; }
.scn-boat-preparation .rock-island { position:absolute; bottom:30%; right:15%; width:40px; height:25px; background: linear-gradient(180deg, #4a4a3a 0%, #2a2a1a 100%); border-radius: 40% 40% 20% 20%; filter: blur(1px); animation: bp-rock 12s ease-in-out infinite; }
.scn-boat-preparation .mist { position:absolute; top:10%; left:0; right:0; height:30%; background: linear-gradient(180deg, rgba(200,180,160,.6) 0%, transparent 100%); filter: blur(12px); animation: bp-mist 9s ease-in-out infinite alternate; }
.scn-boat-preparation .seabird { position:absolute; top:12%; left:60%; width:8px; height:4px; background: #2a2a2a; border-radius: 50%; filter: blur(1px); animation: bp-bird 15s linear infinite; }
@keyframes bp-sky { 0% { opacity: .7; } 50% { opacity: 1; } 100% { opacity: .8; } }
@keyframes bp-sea { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-4px) scale(1.02); } 100% { transform: translateY(0) scale(1); } }
@keyframes bp-boat { 0%,100% { transform: rotate(0deg) translateX(0); } 25% { transform: rotate(-2deg) translateX(2px); } 75% { transform: rotate(2deg) translateX(-2px); } }
@keyframes bp-pump { 0%,100% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-15deg) translateY(-6px); } }
@keyframes bp-figure { 0%,100% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(4px) rotate(2deg); } 75% { transform: translateX(-4px) rotate(-2deg); } }
@keyframes bp-rock { 0%,100% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(.95); } }
@keyframes bp-mist { 0% { opacity: .4; filter: blur(8px); } 100% { opacity: .8; filter: blur(14px); } }
@keyframes bp-bird { 0% { transform: translateX(0) translateY(0); } 25% { transform: translateX(-30px) translateY(-5px); } 75% { transform: translateX(30px) translateY(5px); } 100% { transform: translateX(0) translateY(0); } }

.scn-safe-to-shore {
  background: 
    linear-gradient(180deg, #87ceeb 0%, #f0e68c 40%, #f4a460 70%, #deb887 100%),
    radial-gradient(ellipse at 50% 0%, #fff8dc 0%, transparent 50%);
}
.scn-safe-to-shore .beach-sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #b0d4f0 0%, #f4e1b0 100%); animation: ss-sky 20s ease-in-out infinite alternate; }
.scn-safe-to-shore .ocean { position:absolute; bottom:20%; left:0; right:0; height:60%; background: linear-gradient(180deg, #4a7a9a 0%, #2a4a6a 100%); border-radius: 50% 50% 0 0 / 20% 20% 0 0; animation: ss-ocean 10s ease-in-out infinite alternate; }
.scn-safe-to-shore .sand { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #e0c080 0%, #c0a060 100%); border-radius: 30% 70% 0 0; }
.scn-safe-to-shore .boat-shore { position:absolute; bottom:22%; left:20%; width:90px; height:25px; background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%); border-radius: 10% 10% 30% 30%; transform: rotate(5deg); animation: ss-boat 4s ease-in-out infinite; }
.scn-safe-to-shore .figure-carry { position:absolute; bottom:18%; left:40%; width:20px; height:36px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: ss-carry 3s ease-in-out infinite; }
.scn-safe-to-shore .figure-drunk { position:absolute; bottom:24%; left:45%; width:18px; height:30px; background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(20deg); animation: ss-drunk 2s ease-in-out infinite; }
.scn-safe-to-shore .surf { position:absolute; bottom:23%; left:0; right:0; height:8px; background: linear-gradient(180deg, rgba(255,255,255,.8) 0%, transparent 100%); border-radius: 50%; filter: blur(3px); animation: ss-surf 5s ease-in-out infinite alternate; }
.scn-safe-to-shore .shadow-line { position:absolute; bottom:15%; left:10%; right:10%; height:2px; background: rgba(0,0,0,.3); filter: blur(4px); animation: ss-shadow 6s ease-in-out infinite; }
@keyframes ss-sky { 0% { opacity: .8; } 50% { opacity: 1; } 100% { opacity: .9; } }
@keyframes ss-ocean { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-3px) scaleX(1.01); } 100% { transform: translateY(0) scaleX(1); } }
@keyframes ss-boat { 0%,100% { transform: rotate(5deg) translateX(0); } 50% { transform: rotate(3deg) translateX(2px); } }
@keyframes ss-carry { 0%,100% { transform: translateX(0) translateY(0) rotate(0deg); } 25% { transform: translateX(8px) translateY(-2px) rotate(3deg); } 75% { transform: translateX(-8px) translateY(2px) rotate(-3deg); } }
@keyframes ss-drunk { 0%,100% { transform: rotate(20deg) translateX(0); } 50% { transform: rotate(15deg) translateX(5px) translateY(3px); } }
@keyframes ss-surf { 0% { opacity: .5; transform: translateY(0); } 100% { opacity: 1; transform: translateY(-5px); } }
@keyframes ss-shadow { 0%,100% { opacity: .3; } 50% { opacity: .6; } }

.scn-on-the-key {
  background: 
    linear-gradient(180deg, #87cefa 0%, #f0e68c 40%, #8fbc8f 70%, #deb887 100%),
    radial-gradient(ellipse at 50% 0%, #ffd700 0%, transparent 50%);
}
.scn-on-the-key .key-sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #b0e0f0 0%, #f5deb3 100%); animation: ok-sky 30s ease-in-out infinite alternate; }
.scn-on-the-key .key-ocean { position:absolute; bottom:25%; left:0; right:0; height:75%; background: linear-gradient(180deg, #4a7a9a 0%, #1a3a5a 100%); border-radius: 40% 60% 0 0 / 50% 40% 0 0; animation: ok-ocean 12s ease-in-out infinite alternate; }
.scn-on-the-key .key-sand { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #e8d0a0 0%, #c0a070 100%); border-radius: 20% 80% 0 0; }
.scn-on-the-key .palm-tree { position:absolute; bottom:28%; left:20%; width:12px; height:60px; background: linear-gradient(180deg, #5a3a1a 0%, #2a1a0a 100%); border-radius: 20%; transform-origin: bottom; animation: ok-palm 8s ease-in-out infinite; }
.scn-on-the-key .figure-chief { position:absolute; bottom:18%; left:50%; width:22px; height:38px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: ok-chief 6s ease-in-out infinite; }
.scn-on-the-key .sapling { position:absolute; bottom:20%; left:55%; width:4px; height:16px; background: #3a5a2a; border-radius: 40%; transform-origin: bottom; animation: ok-sapling 10s ease-in-out infinite; }
.scn-on-the-key .butterfly { position:absolute; top:20%; left:40%; width:6px; height:4px; background: #c08060; border-radius: 50%; filter: blur(0.5px); animation: ok-butterfly 7s linear infinite; }
.scn-on-the-key .sunflare { position:absolute; top:5%; left:30%; width:30px; height:30px; background: radial-gradient(circle, rgba(255,215,0,.8) 0%, transparent 70%); filter: blur(8px); animation: ok-flare 9s ease-in-out infinite alternate; }
@keyframes ok-sky { 0% { opacity: .9; } 50% { opacity: 1; } 100% { opacity: .95; } }
@keyframes ok-ocean { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-2px) scaleX(1.01); } 100% { transform: translateY(0) scaleX(1); } }
@keyframes ok-palm { 0%,100% { transform: rotate(0deg) scaleY(1); } 50% { transform: rotate(-3deg) scaleY(1.05); } }
@keyframes ok-chief { 0%,100% { transform: translateX(0) translateY(0) rotate(0deg); } 25% { transform: translateX(3px) translateY(-2px) rotate(2deg); } 75% { transform: translateX(-3px) translateY(0) rotate(-2deg); } }
@keyframes ok-sapling { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-1px) rotate(5deg); } }
@keyframes ok-butterfly { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 25% { transform: translateX(20px) translateY(-10px) rotate(10deg); } 75% { transform: translateX(-10px) translateY(10px) rotate(-5deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes ok-flare { 0% { opacity: .5; transform: scale(1); } 100% { opacity: 1; transform: scale(1.2); } }

.scn-flamingoes-mistake {
  background: 
    linear-gradient(180deg, #ffe4b5 0%, #ffb6c1 30%, #87ceeb 60%, #f0e68c 100%),
    radial-gradient(ellipse at 30% 50%, #fff0f5 0%, transparent 50%);
}
.scn-flamingoes-mistake .flam-sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #ffe4b5 0%, #87ceeb 100%); animation: fm-sky 15s ease-in-out infinite alternate; }
.scn-flamingoes-mistake .flam-water { position:absolute; bottom:20%; left:0; right:0; height:70%; background: linear-gradient(180deg, #4a7a9a 0%, #1a3a5a 100%); border-radius: 50% 50% 0 0 / 30% 30% 0 0; animation: fm-water 10s ease-in-out infinite alternate; }
.scn-flamingoes-mistake .punchbowl-rock { position:absolute; bottom:35%; left:25%; width:50px; height:30px; background: linear-gradient(180deg, #7a7a6a 0%, #4a4a3a 100%); border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%; box-shadow: inset 0 5px 10px rgba(0,0,0,.3); animation: fm-rock 8s ease-in-out infinite; }
.scn-flamingoes-mistake .turtle { position:absolute; bottom:28%; left:60%; width:20px; height:12px; background: linear-gradient(180deg, #5a6a3a 0%, #3a4a2a 100%); border-radius: 50% 50% 30% 30%; transform-origin: center; animation: fm-turtle 6s ease-in-out infinite; }
.scn-flamingoes-mistake .flamingo-flock { position:absolute; bottom:40%; left:10%; width:14px; height:10px; background: #b87878; border-radius: 50% 50% 20% 20%; filter: blur(1px); animation: fm-flock 3s ease-in-out infinite; }
.scn-flamingoes-mistake .flamingo-b { position:absolute; bottom:45%; left:30%; width:12px; height:8px; background: #c06060; border-radius: 50% 50% 20% 20%; filter: blur(1px); animation: fm-flock2 4s ease-in-out infinite alternate; }
.scn-flamingoes-mistake .fish-splash { position:absolute; bottom:32%; left:45%; width:6px; height:16px; background: radial-gradient(circle, #f0f0f0 0%, transparent 100%); border-radius: 50%; filter: blur(2px); animation: fm-fish 2s ease-in-out infinite; }
.scn-flamingoes-mistake .shadow-cloud { position:absolute; top:5%; right:10%; width:60px; height:12px; background: rgba(0,0,0,.1); filter: blur(10px); animation: fm-cloud 20s linear infinite reverse; }
@keyframes fm-sky { 0% { opacity: .8; } 50% { opacity: 1; } 100% { opacity: .9; } }
@keyframes fm-water { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-3px) scaleX(1.02); } 100% { transform: translateY(0) scaleX(1); } }
@keyframes fm-rock { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(5deg); } }
@keyframes fm-turtle { 0%,100% { transform: translateX(0) translateY(0) rotate(0deg); } 25% { transform: translateX(5px) translateY(-1px) rotate(3deg); } 75% { transform: translateX(-5px) translateY(1px) rotate(-3deg); } }
@keyframes fm-flock { 0% { transform: translateX(0) translateY(0) scale(1); } 25% { transform: translateX(20px) translateY(-10px) scale(1.1); } 50% { transform: translateX(40px) translateY(-20px) scale(.9); } 75% { transform: translateX(60px) translateY(-10px) scale(1); } 100% { transform: translateX(80px) translateY(0) scale(1); } }
@keyframes fm-flock2 { 0% { transform: translateX(0) translateY(0) scale(1); } 100% { transform: translateX(10px) translateY(-5px) scale(1.1); } }
@keyframes fm-fish { 0%,100% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-6px) scaleY(1.5); } }
@keyframes fm-cloud { 0% { transform: translateX(0) } 100% { transform: translateX(-100vw) } }

.scn-governor-missionary {
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 60%, #1a0e04 100%),
              radial-gradient(ellipse at 50% 40%, #4a3828 0%, transparent 70%);
}
.scn-governor-missionary .wall-bg {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-bottom: 2px solid #1a0e04;
}
.scn-governor-missionary .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e04 100%);
}
.scn-governor-missionary .desk {
  position: absolute; bottom: 30%; left: 35%; width: 28%; height: 18%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 0 0 6% 6%; box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-governor-missionary .candle {
  position: absolute; bottom: 47%; left: 48%; width: 4px; height: 14px;
  background: linear-gradient(180deg, #c8a878 0%, #8a6a4a 100%);
  border-radius: 2px; transform: translateX(-50%);
  animation: gm-candle 2s ease-in-out infinite alternate;
}
.scn-governor-missionary .candle::after {
  content: ''; position: absolute; top: -8px; left: 50%; transform: translateX(-50%);
  width: 8px; height: 10px; background: radial-gradient(circle, #ffd080 0%, #e8a040 60%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 16px 6px rgba(255,208,128,0.6);
  animation: gm-flame 0.8s ease-in-out infinite alternate;
}
.scn-governor-missionary .governor-sil {
  position: absolute; bottom: 33%; left: 50%; width: 18%; height: 40%;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 40% 40%;
  transform-origin: bottom center; animation: gm-gov 4s ease-in-out infinite;
}
.scn-governor-missionary .equiano-sil {
  position: absolute; bottom: 33%; left: 30%; width: 15%; height: 36%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 40% 50% 35% 35% / 60% 70% 40% 40%;
  transform-origin: bottom center; animation: gm-equ 4s ease-in-out infinite reverse;
}
.scn-governor-missionary .papers {
  position: absolute; bottom: 35%; left: 40%; width: 12%; height: 6%;
  background: linear-gradient(135deg, #e8dcc8 0%, #d4c4a8 100%);
  transform: rotate(-5deg); border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: gm-paper 6s ease-in-out infinite;
}
.scn-governor-missionary .inkwell {
  position: absolute; bottom: 36%; left: 54%; width: 4%; height: 5%;
  background: radial-gradient(circle at 50% 30%, #2a2a2a 0%, #0a0a0a 100%);
  border-radius: 50%; box-shadow: 0 2px 4px rgba(0,0,0,0.5);
}
@keyframes gm-candle { 0% { transform: translateX(-50%) scaleY(1); } 100% { transform: translateX(-50%) scaleY(1.05); } }
@keyframes gm-flame { 0% { transform: translateX(-50%) scale(0.8); opacity: 0.7; } 100% { transform: translateX(-50%) scale(1.2); opacity: 1; } }
@keyframes gm-gov { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes gm-equ { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes gm-paper { 0% { transform: rotate(-5deg) scaleX(1); } 50% { transform: rotate(-4deg) scaleX(1.02); } 100% { transform: rotate(-5deg) scaleX(1); } }

.scn-memorial-bishop {
  background: linear-gradient(180deg, #2a2218 0%, #1a1208 60%, #0e0a04 100%),
              radial-gradient(ellipse at 70% 30%, #3a2a1a 0%, transparent 70%);
}
.scn-memorial-bishop .wood-panel {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(90deg, #3a2a1a 0%, #2a1a0a 50%, #3a2a1a 100%);
  box-shadow: inset 0 0 20px rgba(0,0,0,0.4);
}
.scn-memorial-bishop .table {
  position: absolute; bottom: 28%; left: 25%; width: 50%; height: 8%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 4% 4% 0 0; box-shadow: 0 4px 8px rgba(0,0,0,0.6);
}
.scn-memorial-bishop .paper-mb {
  position: absolute; bottom: 32%; left: 38%; width: 20%; height: 10%;
  background: linear-gradient(135deg, #d4c4a8 0%, #c0b098 100%);
  border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: mb-paper 8s ease-in-out infinite;
}
.scn-memorial-bishop .ink-mb {
  position: absolute; bottom: 30%; left: 58%; width: 4%; height: 6%;
  background: radial-gradient(circle at 50% 30%, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50%; box-shadow: 0 2px 4px rgba(0,0,0,0.5);
}
.scn-memorial-bishop .equiano-writing {
  position: absolute; bottom: 30%; left: 30%; width: 16%; height: 42%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0e04 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 40% 40%;
  transform-origin: bottom center;
  animation: mb-write 5s ease-in-out infinite;
}
.scn-memorial-bishop .candle-mb {
  position: absolute; bottom: 36%; left: 60%; width: 4px; height: 16px;
  background: linear-gradient(180deg, #c8a878 0%, #7a5a3a 100%);
  border-radius: 2px; transform: translateX(-50%);
  animation: mb-candle 3s ease-in-out infinite alternate;
}
.scn-memorial-bishop .candle-mb::after {
  content: ''; position: absolute; top: -8px; left: 50%; transform: translateX(-50%);
  width: 10px; height: 12px; background: radial-gradient(circle, #ffd080 0%, #e8a040 60%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 20px 8px rgba(255,208,128,0.5);
  animation: mb-flame 0.6s ease-in-out infinite alternate;
}
.scn-memorial-bishop .quill {
  position: absolute; bottom: 32%; left: 54%; width: 2%; height: 12%;
  background: linear-gradient(180deg, #c8b8a0 0%, #a89880 100%);
  transform: rotate(-30deg); transform-origin: bottom center;
  border-radius: 2px 2px 50% 50%;
  animation: mb-quill 4s ease-in-out infinite;
}
@keyframes mb-paper { 0%,100% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.02) translateY(-1px); } }
@keyframes mb-write { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2px) rotate(0.5deg); } 75% { transform: translateX(-2px) rotate(-0.5deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes mb-candle { 0% { transform: translateX(-50%) scaleY(1); } 100% { transform: translateX(-50%) scaleY(1.06); } }
@keyframes mb-flame { 0% { transform: translateX(-50%) scale(0.7); opacity: 0.6; } 100% { transform: translateX(-50%) scale(1.3); opacity: 1; } }
@keyframes mb-quill { 0% { transform: rotate(-30deg) scaleY(1); } 50% { transform: rotate(-25deg) scaleY(1.05); } 100% { transform: rotate(-30deg) scaleY(1); } }

.scn-wallace-letter {
  background: linear-gradient(180deg, #2a2018 0%, #1a120a 60%, #0e0804 100%),
              radial-gradient(ellipse at 30% 50%, #3a2a1a 0%, transparent 70%);
}
.scn-wallace-letter .room-back {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(90deg, #3a2a1a 0%, #2a1a0a 50%, #3a2a1a 100%);
}
.scn-wallace-letter .shelf-wl {
  position: absolute; top: 12%; left: 10%; width: 80%; height: 4%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.4);
  animation: wl-shelf 20s ease-in-out infinite;
}
.scn-wallace-letter .writing-desk {
  position: absolute; bottom: 25%; left: 20%; width: 60%; height: 12%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 0 0 8px 8px; box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-wallace-letter .letter-wl {
  position: absolute; bottom: 33%; left: 38%; width: 18%; height: 8%;
  background: linear-gradient(135deg, #d4c4a8 0%, #c0b098 100%);
  border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  transform: rotate(2deg); animation: wl-letter 6s ease-in-out infinite;
}
.scn-wallace-letter .wallace-fig {
  position: absolute; bottom: 26%; left: 30%; width: 14%; height: 40%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0e04 100%);
  border-radius: 40% 50% 35% 35% / 60% 70% 40% 40%;
  transform-origin: bottom center; animation: wl-fig 5s ease-in-out infinite;
}
.scn-wallace-letter .lamp-wl {
  position: absolute; bottom: 38%; left: 55%; width: 6px; height: 10px;
  background: linear-gradient(180deg, #c8a878 0%, #9a7a5a 100%);
  border-radius: 2px; transform: translateX(-50%);
  animation: wl-lamp 2s ease-in-out infinite alternate;
}
.scn-wallace-letter .lamp-wl::after {
  content: ''; position: absolute; top: -6px; left: 50%; transform: translateX(-50%);
  width: 12px; height: 14px; background: radial-gradient(circle, #ffd080 0%, #d09040 60%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 24px 10px rgba(255,208,128,0.4);
  animation: wl-glow 0.5s ease-in-out infinite alternate;
}
.scn-wallace-letter .inkpot-wl {
  position: absolute; bottom: 28%; left: 58%; width: 4%; height: 5%;
  background: radial-gradient(circle at 50% 30%, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50%; box-shadow: 0 2px 4px rgba(0,0,0,0.5);
}
@keyframes wl-shelf { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-1px); } }
@keyframes wl-letter { 0% { transform: rotate(2deg) scaleX(1); } 50% { transform: rotate(3deg) scaleX(1.02); } 100% { transform: rotate(2deg) scaleX(1); } }
@keyframes wl-fig { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-1px) rotate(0.5deg); } 75% { transform: translateY(0) rotate(-0.5deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes wl-lamp { 0% { transform: translateX(-50%) scaleY(1); } 100% { transform: translateX(-50%) scaleY(1.08); } }
@keyframes wl-glow { 0% { transform: translateX(-50%) scale(0.6); opacity: 0.5; } 100% { transform: translateX(-50%) scale(1.4); opacity: 1; } }

.scn-bishop-rejection {
  background: linear-gradient(180deg, #1a1410 0%, #0e0a06 60%, #050302 100%),
              radial-gradient(ellipse at 50% 70%, #1a0e04 0%, transparent 70%);
}
.scn-bishop-rejection .deep-bg {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(135deg, #0e0806 0%, #1a1008 50%, #0e0806 100%);
  box-shadow: inset 0 -20px 40px rgba(0,0,0,0.6);
}
.scn-bishop-rejection .throne-shadow {
  position: absolute; bottom: 30%; right: 20%; width: 25%; height: 50%;
  background: linear-gradient(180deg, rgba(30,18,10,0.8) 0%, transparent 100%);
  border-radius: 30% 30% 0 0; transform: skewX(-10deg);
  filter: blur(6px); animation: br-throne 12s ease-in-out infinite alternate;
}
.scn-bishop-rejection .door-br {
  position: absolute; bottom: 22%; left: 10%; width: 15%; height: 55%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 6% 0 0 6%; box-shadow: inset -4px 0 8px rgba(0,0,0,0.5);
  animation: br-door 8s ease-in-out infinite;
}
.scn-bishop-rejection .figure-leaving {
  position: absolute; bottom: 24%; left: 28%; width: 12%; height: 38%;
  background: linear-gradient(180deg, #1a140e 0%, #0e0a06 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 40% 40%;
  transform-origin: bottom center;
  animation: br-walk 6s ease-in-out infinite;
}
.scn-bishop-rejection .light-shaft {
  position: absolute; bottom: 20%; left: 48%; width: 8%; height: 60%;
  background: linear-gradient(180deg, rgba(200,170,120,0.08) 0%, transparent 100%);
  filter: blur(8px); transform: skewX(-8deg);
  animation: br-shaft 10s ease-in-out infinite alternate;
}
.scn-bishop-rejection .floor-br {
  position: absolute; bottom: 0; left: 0; right: 0; height: 22%;
  background: linear-gradient(180deg, #1a0e06 0%, #080402 100%);
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.5);
}
.scn-bishop-rejection .candle-br {
  position: absolute; bottom: 26%; left: 60%; width: 4px; height: 14px;
  background: linear-gradient(180deg, #8a6a4a 0%, #4a2a1a 100%);
  border-radius: 2px; transform: translateX(-50%);
  animation: br-candle 2.5s ease-in-out infinite alternate;
}
.scn-bishop-rejection .candle-br::after {
  content: ''; position: absolute; top: -6px; left: 50%; transform: translateX(-50%);
  width: 8px; height: 10px; background: radial-gradient(circle, #c09050 0%, #a07030 60%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 12px 4px rgba(192,144,80,0.3);
  animation: br-flame 0.7s ease-in-out infinite alternate;
}
.scn-bishop-rejection .letter-drop {
  position: absolute; bottom: 18%; left: 40%; width: 8%; height: 4%;
  background: linear-gradient(135deg, #b8a888 0%, #9a8a6a 100%);
  border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  transform: rotate(15deg);
  animation: br-letter 8s ease-in-out infinite;
}
@keyframes br-throne { 0% { transform: skewX(-10deg) scaleX(1); } 100% { transform: skewX(-10deg) scaleX(1.03); } }
@keyframes br-door { 0%,100% { transform: translateX(0); } 50% { transform: translateX(-2px); } }
@keyframes br-walk { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(8px) rotate(1deg); } 50% { transform: translateX(16px) rotate(0deg); } 75% { transform: translateX(8px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes br-shaft { 0% { opacity: 0.3; transform: skewX(-8deg) scaleY(1); } 100% { opacity: 0.6; transform: skewX(-8deg) scaleY(1.05); } }
@keyframes br-candle { 0% { transform: translateX(-50%) scaleY(0.9); } 100% { transform: translateX(-50%) scaleY(1.1); } }
@keyframes br-flame { 0% { transform: translateX(-50%) scale(0.6); opacity: 0.4; } 100% { transform: translateX(-50%) scale(1.2); opacity: 1; } }
@keyframes br-letter { 0% { transform: rotate(15deg) translateY(0); } 50% { transform: rotate(15deg) translateY(-2px); } 100% { transform: rotate(15deg) translateY(0); } }

.scn-horse-incident { background: linear-gradient(180deg, #87CEEB 0%, #4a7faa 40%, #3a5f7a 100%), radial-gradient(ellipse at 50% 30%, #ffddaa 0%, transparent 60%); }
.scn-horse-incident .sky { position: absolute; inset: 0 0 50% 0; background: linear-gradient(180deg, #b8d4f0 0%, #87CEEB 100%); animation: hi-sky 6s ease-in-out infinite alternate; }
.scn-horse-incident .cliff { position: absolute; bottom: 0; right: 0; width: 45%; height: 60%; background: linear-gradient(135deg, #7a5a3a 0%, #4a3a2a 50%, #2a1a0a 100%); border-radius: 60% 0 0 0 / 80% 0 0 0; box-shadow: inset 0 12px 20px rgba(0,0,0,.5); animation: hi-cliff 9s ease-in-out infinite; }
.scn-horse-incident .horse { position: absolute; bottom: 25%; left: 20%; width: 80px; height: 60px; background: linear-gradient(180deg, #a08060 0%, #705040 100%); border-radius: 60% 40% 40% 60% / 70% 50% 50% 70%; transform-origin: bottom center; animation: hi-horse 2s ease-in-out infinite; box-shadow: 4px 8px 8px rgba(0,0,0,.3); }
.scn-horse-incident .rider { position: absolute; bottom: 40%; left: 22%; width: 20px; height: 30px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hi-rider 2s ease-in-out infinite; }
.scn-horse-incident .dust-a { position: absolute; bottom: 20%; left: 15%; width: 40px; height: 30px; background: radial-gradient(circle, #c0a080 0%, transparent 100%); filter: blur(6px); animation: hi-dust 1.5s ease-in-out infinite; }
.scn-horse-incident .dust-b { position: absolute; bottom: 18%; left: 28%; width: 30px; height: 20px; background: radial-gradient(circle, #b09070 0%, transparent 100%); filter: blur(4px); animation: hi-dust 2.2s ease-in-out infinite 0.5s; }
.scn-horse-incident .sun-glare { position: absolute; top: 5%; left: 30%; width: 60px; height: 60px; background: radial-gradient(circle, #fff8d0 0%, #ffddaa 40%, transparent 100%); border-radius: 50%; filter: blur(8px); animation: hi-glare 4s ease-in-out infinite alternate; }
@keyframes hi-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.75; } }
@keyframes hi-cliff { 0% { transform: translateX(0); } 50% { transform: translateX(-4px); } 100% { transform: translateX(2px); } }
@keyframes hi-horse { 0% { transform: rotate(-5deg) scaleX(0.95); } 50% { transform: rotate(8deg) scaleX(1.05); } 100% { transform: rotate(-3deg) scaleX(0.98); } }
@keyframes hi-rider { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-8px) rotate(15deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes hi-dust { 0% { opacity: 0.6; transform: translateY(0) scale(1); } 50% { opacity: 1; transform: translateY(-12px) scale(1.5); } 100% { opacity: 0; transform: translateY(-25px) scale(2); } }
@keyframes hi-glare { 0% { opacity: 0.3; transform: scale(0.8); } 50% { opacity: 0.9; transform: scale(1.2); } 100% { opacity: 0.5; transform: scale(1); } }

.scn-citadel-fall { background: linear-gradient(180deg, #6b8eb5 0%, #4c6a8a 40%, #2a3d5a 100%), radial-gradient(ellipse at 70% 30%, #8aadc4 0%, transparent 60%); }
.scn-citadel-fall .sky { position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #8ab4d4 0%, #6b8eb5 100%); animation: cf-sky 10s ease-in-out infinite alternate; }
.scn-citadel-fall .wall-front { position: absolute; bottom: 20%; left: 10%; width: 70%; height: 50%; background: linear-gradient(180deg, #7a7a6a 0%, #5a5a4a 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 8px 16px rgba(0,0,0,.4); animation: cf-wall 15s ease-in-out infinite; }
.scn-citadel-fall .wall-back { position: absolute; bottom: 30%; left: 15%; width: 50%; height: 40%; background: linear-gradient(180deg, #6a6a5a 0%, #4a4a3a 100%); border-radius: 8% 8% 0 0; box-shadow: inset 0 6px 12px rgba(0,0,0,.5); animation: cf-wall 20s ease-in-out infinite 2s; }
.scn-citadel-fall .breach { position: absolute; bottom: 30%; left: 30%; width: 30px; height: 60px; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius: 0 0 10% 10%; box-shadow: 0 4px 8px rgba(0,0,0,.3); animation: cf-breach 12s ease-in-out infinite; }
.scn-citadel-fall .cannon { position: absolute; bottom: 45%; left: 55%; width: 40px; height: 16px; background: linear-gradient(90deg, #3a3a2a 0%, #5a5a4a 50%, #3a3a2a 100%); border-radius: 20% 20% 40% 40%; transform-origin: right center; animation: cf-cannon 8s ease-in-out infinite; }
.scn-citadel-fall .flag { position: absolute; bottom: 55%; left: 12%; width: 4px; height: 30px; background: #4a3a2a; transform-origin: top center; animation: cf-flag 4s ease-in-out infinite; }
.scn-citadel-fall .flag::after { content: ''; position: absolute; top: 0; left: 0; width: 20px; height: 14px; background: #5a7a5a; border-radius: 0 50% 50% 0; animation: cf-flag-tail 4s ease-in-out infinite; }
.scn-citadel-fall .haze { position: absolute; bottom: 20%; left: 20%; width: 60%; height: 30%; background: radial-gradient(ellipse, rgba(255,255,240,0.15) 0%, transparent 100%); filter: blur(10px); animation: cf-haze 25s linear infinite; }
@keyframes cf-sky { 0% { opacity: 0.7; } 50% { opacity: 0.95; } 100% { opacity: 0.8; } }
@keyframes cf-wall { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes cf-breach { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.95); } 100% { transform: scaleY(1.02); } }
@keyframes cf-cannon { 0% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-1deg); } }
@keyframes cf-flag { 0% { transform: rotate(3deg); } 50% { transform: rotate(-5deg); } 100% { transform: rotate(2deg); } }
@keyframes cf-flag-tail { 0% { transform: rotate(0deg); } 50% { transform: rotate(30deg); } 100% { transform: rotate(10deg); } }
@keyframes cf-haze { 0% { transform: translateX(0); } 100% { transform: translateX(60px); } }

.scn-guernsey-return { background: linear-gradient(180deg, #f7dda0 0%, #d4b070 30%, #80a8b0 70%, #507080 100%), radial-gradient(ellipse at 50% 100%, #709090 0%, transparent 70%); }
.scn-guernsey-return .sea { position: absolute; bottom: 0; left: 0; right: 0; height: 55%; background: linear-gradient(180deg, #80a8b0 0%, #507080 100%); animation: gr-sea 6s ease-in-out infinite alternate; }
.scn-guernsey-return .sky-glow { position: absolute; top: 0; left: 0; right: 0; height: 45%; background: linear-gradient(180deg, #ffdf80 0%, #f7dda0 100%); animation: gr-sky 8s ease-in-out infinite alternate; }
.scn-guernsey-return .hull { position: absolute; bottom: 35%; left: 30%; width: 100px; height: 40px; background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%); border-radius: 30% 30% 10% 10%; transform-origin: center bottom; animation: gr-hull 4s ease-in-out infinite; }
.scn-guernsey-return .sail { position: absolute; bottom: 40%; left: 35%; width: 50px; height: 60px; background: linear-gradient(180deg, #f5f0e0 0%, #d0c8b0 100%); border-radius: 20% 20% 30% 30%; transform-origin: bottom center; animation: gr-sail 5s ease-in-out infinite; }
.scn-guernsey-return .dock { position: absolute; bottom: 25%; left: 50%; width: 40%; height: 15px; background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%); border-radius: 10% 10% 0 0; box-shadow: 0 -4px 8px rgba(0,0,0,.2); animation: gr-dock 10s ease-in-out infinite; }
.scn-guernsey-return .figure-waving { position: absolute; bottom: 35%; left: 65%; width: 16px; height: 40px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: gr-wave 1.5s ease-in-out infinite; }
.scn-guernsey-return .gull-a { position: absolute; top: 20%; left: 20%; width: 30px; height: 6px; background: linear-gradient(90deg, rgba(255,255,255,0.8) 0%, transparent 100%); border-radius: 50%; filter: blur(2px); animation: gr-gull 8s linear infinite; }
.scn-guernsey-return .gull-b { position: absolute; top: 25%; left: 60%; width: 20px; height: 4px; background: linear-gradient(90deg, rgba(255,255,255,0.6) 0%, transparent 100%); border-radius: 50%; filter: blur(1px); animation: gr-gull 12s linear infinite 4s; }
@keyframes gr-sea { 0% { background-position: 0 0; } 50% { background-position: 10px 2px; } 100% { background-position: 0 0; } }
@keyframes gr-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes gr-hull { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes gr-sail { 0% { transform: scaleX(1) rotate(-2deg); } 50% { transform: scaleX(1.05) rotate(3deg); } 100% { transform: scaleX(0.95) rotate(-1deg); } }
@keyframes gr-dock { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes gr-wave { 0% { transform: rotate(0deg); } 25% { transform: rotate(-15deg); } 75% { transform: rotate(10deg); } 100% { transform: rotate(0deg); } }
@keyframes gr-gull { 0% { transform: translateX(0); } 100% { transform: translateX(120vw); } }

.scn-daniel-queen { background: linear-gradient(180deg, #1a1a2a 0%, #2a1e14 50%, #0d0d0a 100%), radial-gradient(ellipse at 30% 50%, #4a2a14 0%, transparent 80%); }
.scn-daniel-queen .cabin-wall { position: absolute; inset: 0; background: linear-gradient(135deg, #2a1e14 0%, #1a120a 100%); animation: dq-wall 20s ease-in-out infinite alternate; }
.scn-daniel-queen .table { position: absolute; bottom: 20%; left: 30%; width: 40%; height: 10px; background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: dq-table 12s ease-in-out infinite; }
.scn-daniel-queen .book { position: absolute; bottom: 30%; left: 38%; width: 24px; height: 32px; background: linear-gradient(135deg, #c8b090 0%, #a08060 50%, #806040 100%); border-radius: 4px 4px 2px 2px; transform: rotate(-5deg); box-shadow: 2px 2px 6px rgba(0,0,0,.3); animation: dq-book 8s ease-in-out infinite; }
.scn-daniel-queen .candle { position: absolute; bottom: 40%; left: 32%; width: 6px; height: 20px; background: linear-gradient(180deg, #f0d0a0 0%, #c8a070 100%); border-radius: 40% 40% 10% 10%; transform-origin: bottom center; animation: dq-candle 3s ease-in-out infinite alternate; }
.scn-daniel-queen .glow-ring { position: absolute; bottom: 38%; left: 30%; width: 50px; height: 50px; background: radial-gradient(circle, #ffd070 0%, #b08040 40%, transparent 100%); border-radius: 50%; filter: blur(8px); animation: dq-glow 4s ease-in-out infinite alternate; }
.scn-daniel-queen .silhouette-teacher { position: absolute; bottom: 25%; left: 25%; width: 22px; height: 50px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dq-teacher 6s ease-in-out infinite; }
.scn-daniel-queen .silhouette-student { position: absolute; bottom: 25%; left: 45%; width: 18px; height: 40px; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dq-student 6s ease-in-out infinite 1s; }
.scn-daniel-queen .window-night { position: absolute; top: 15%; right: 20%; width: 40px; height: 50px; background: linear-gradient(180deg, #0a1a2a 0%, #1a2a3a 100%); border-radius: 4px; box-shadow: inset 0 0 12px rgba(100,150,200,0.2); animation: dq-window 15s ease-in-out infinite; }
@keyframes dq-wall { 0% { opacity: 0.8; } 50% { opacity: 0.95; } 100% { opacity: 0.85; } }
@keyframes dq-table { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes dq-book { 0% { transform: rotate(-5deg); } 50% { transform: rotate(2deg) translateY(-2px); } 100% { transform: rotate(-4deg); } }
@keyframes dq-candle { 0% { transform: rotate(-2deg) scaleY(0.98); } 50% { transform: rotate(3deg) scaleY(1.02); } 100% { transform: rotate(-1deg) scaleY(1); } }
@keyframes dq-glow { 0% { opacity: 0.5; transform: scale(0.9); } 50% { opacity: 0.9; transform: scale(1.15); } 100% { opacity: 0.6; transform: scale(1); } }
@keyframes dq-teacher { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(-2deg) translateY(-2px); } 100% { transform: rotate(1deg) translateY(0); } }
@keyframes dq-student { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(3deg) translateY(-1px); } 100% { transform: rotate(-1deg) translateY(0); } }
@keyframes dq-window { 0% { opacity: 0.3; } 50% { opacity: 0.6; } 100% { opacity: 0.35; } }

/* indian-women – calm sunlit scene */
.scn-indian-women {
  background:
    linear-gradient(180deg, #f9e4bc 0%, #e8c49a 40%, #c8a67a 70%, #b8926e 100%),
    radial-gradient(ellipse at 50% 100%, #f0d4b0 0%, transparent 80%);
}
.scn-indian-women .iw-sky {
  position:absolute; inset:0 0 40% 0;
  background: linear-gradient(180deg, #fef6e6 0%, #fbe8ce 40%, #f4d7b5 100%);
  animation: iw-sky-pulse 15s ease-in-out infinite alternate;
}
.scn-indian-women .iw-ground {
  position:absolute; bottom:0; left:0; right:0; height:45%;
  background: linear-gradient(180deg, #b88a5a 0%, #9e6f44 50%, #7a5533 100%);
  border-radius: 60% 40% 0 0 / 30% 20% 0 0;
  animation: iw-ground-slow 20s ease-in-out infinite alternate;
}
.scn-indian-women .iw-tree {
  position:absolute; bottom:38%; left:20%; width:24px; height:100px;
  background: linear-gradient(180deg, #8b6a4a 0%, #5a3d2a 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%;
  transform-origin: bottom center;
  animation: iw-tree-sway 8s ease-in-out infinite;
}
.scn-indian-women .iw-woman1 {
  position:absolute; bottom:30%; left:30%; width:20px; height:44px;
  background: radial-gradient(ellipse at 50% 30%, #c49a7a 0%, #a87a5a 60%, #7a5533 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: iw-figure-squat 6s ease-in-out infinite;
}
.scn-indian-women .iw-woman2 {
  position:absolute; bottom:30%; left:48%; width:20px; height:44px;
  background: radial-gradient(ellipse at 50% 30%, #c49a7a 0%, #a87a5a 60%, #7a5533 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: iw-figure-squat 6s ease-in-out infinite 3s;
}
.scn-indian-women .iw-load {
  position:absolute; bottom:34%; left:36%; width:16px; height:12px;
  background: linear-gradient(180deg, #9c7a5a 0%, #7a5a3a 100%);
  border-radius: 20% 20% 10% 10%;
  animation: iw-load-bob 6s ease-in-out infinite 1.5s;
}
.scn-indian-women .iw-beads {
  position:absolute; bottom:42%; left:31%; width:22px; height:6px;
  background: repeating-linear-gradient(90deg, #c0a060 0px 2px, #e0c080 2px 4px, #b09050 4px 6px);
  border-radius: 50%;
  filter: blur(0.5px);
  animation: iw-beads-gleam 4s ease-in-out infinite alternate;
}
@keyframes iw-sky-pulse { 0% { opacity:0.85; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes iw-ground-slow { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(0); } }
@keyframes iw-tree-sway { 0% { transform: rotate(0deg); } 25% { transform: rotate(1deg); } 75% { transform: rotate(-1deg); } 100% { transform: rotate(0deg); } }
@keyframes iw-figure-squat { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-2px) scaleY(0.95); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes iw-load-bob { 0% { transform: translateY(0); } 50% { transform: translateY(-3px) rotate(5deg); } 100% { transform: translateY(0); } }
@keyframes iw-beads-gleam { 0% { opacity:0.6; } 100% { opacity:1; } }

/* indian-manners – calm interaction with minimal ornament */
.scn-indian-manners {
  background:
    linear-gradient(180deg, #f9e4bc 0%, #e8c49a 40%, #c8a67a 70%, #b8926e 100%),
    radial-gradient(ellipse at 50% 100%, #f0d4b0 0%, transparent 80%);
}
.scn-indian-manners .im-sky {
  position:absolute; inset:0 0 50% 0;
  background: linear-gradient(180deg, #fef6e6 0%, #fbe8ce 60%, #f4d7b5 100%);
  animation: im-sky-glow 14s ease-in-out infinite alternate;
}
.scn-indian-manners .im-hut {
  position:absolute; bottom:20%; left:30%; width:80px; height:60px;
  background: linear-gradient(180deg, #c49a7a 0%, #9a7a5a 100%);
  border-radius: 30% 30% 5% 5% / 50% 50% 10% 10%;
  box-shadow: 0 6px 10px rgba(0,0,0,0.2);
  animation: im-hut-settle 12s ease-in-out infinite alternate;
}
.scn-indian-manners .im-ground {
  position:absolute; bottom:0; left:0; right:0; height:25%;
  background: linear-gradient(180deg, #b88a5a 0%, #9e6f44 50%, #7a5533 100%);
  border-radius: 30% 70% 0 0 / 20% 30% 0 0;
  animation: im-ground-soft 18s ease-in-out infinite alternate;
}
.scn-indian-manners .im-figure1 {
  position:absolute; bottom:18%; left:50%; width:18px; height:40px;
  background: radial-gradient(ellipse at 50% 30%, #c49a7a 0%, #a87a5a 60%, #7a5533 100%);
  border-radius: 50% 50% 35% 35% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: im-figure-bow 8s ease-in-out infinite;
}
.scn-indian-manners .im-figure2 {
  position:absolute; bottom:18%; left:42%; width:18px; height:40px;
  background: radial-gradient(ellipse at 50% 30%, #c49a7a 0%, #a87a5a 60%, #7a5533 100%);
  border-radius: 50% 50% 35% 35% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: im-figure-bow 8s ease-in-out infinite 4s;
}
.scn-indian-manners .im-rug {
  position:absolute; bottom:17%; left:45%; width:30px; height:8px;
  background: linear-gradient(90deg, #d4b08a 0%, #b89470 50%, #a07850 100%);
  border-radius: 20%;
  animation: im-rug-shift 12s ease-in-out infinite alternate;
}
@keyframes im-sky-glow { 0% { opacity:0.85; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes im-hut-settle { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes im-ground-soft { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes im-figure-bow { 0% { transform: rotate(0deg); } 30% { transform: rotate(10deg) translateY(-2px); } 50% { transform: rotate(-5deg); } 70% { transform: rotate(5deg) translateY(-1px); } 100% { transform: rotate(0deg); } }
@keyframes im-rug-shift { 0% { transform: translateX(0); } 50% { transform: translateX(2px); } 100% { transform: translateX(0); } }

/* indian-character – proud warlike figure with pineapple rum */
.scn-indian-character {
  background:
    linear-gradient(180deg, #f9e4bc 0%, #e8c49a 40%, #c8a67a 70%, #b8926e 100%),
    radial-gradient(ellipse at 50% 0%, #fdefd8 0%, transparent 80%);
}
.scn-indian-character .ic-sky {
  position:absolute; inset:0 0 40% 0;
  background: linear-gradient(180deg, #fef6e6 0%, #fbe8ce 40%, #f4d7b5 100%);
  animation: ic-sky-breathe 16s ease-in-out infinite alternate;
}
.scn-indian-character .ic-horizon {
  position:absolute; bottom:35%; left:0; right:0; height:10%;
  background: linear-gradient(180deg, #b88a5a 0%, #a87a5a 100%);
  border-radius: 40% 60% 0 0 / 80% 70% 0 0;
  animation: ic-horizon-shimmer 20s ease-in-out infinite alternate;
}
.scn-indian-character .ic-figure {
  position:absolute; bottom:25%; left:50%; width:30px; height:70px;
  background: radial-gradient(ellipse at 50% 20%, #c49a7a 0%, #a87a5a 50%, #7a5533 100%);
  border-radius: 50% 50% 35% 35% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: ic-figure-proud 10s ease-in-out infinite;
}
.scn-indian-character .ic-spear {
  position:absolute; bottom:30%; left:48%; width:3px; height:50px;
  background: linear-gradient(180deg, #8b6a4a 0%, #5a3d2a 100%);
  border-radius: 2px;
  transform-origin: bottom center;
  animation: ic-spear-sway 12s ease-in-out infinite;
}
.scn-indian-character .ic-pineapple {
  position:absolute; bottom:35%; left:55%; width:14px; height:16px;
  background: radial-gradient(ellipse at 50% 30%, #e8c870 0%, #c09850 70%, #a07830 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  animation: ic-pineapple-bob 6s ease-in-out infinite;
}
.scn-indian-character .ic-drink {
  position:absolute; bottom:30%; left:58%; width:10px; height:12px;
  background: linear-gradient(180deg, #d4a87a 0%, #b08050 100%);
  border-radius: 20% 20% 10% 10%;
  animation: ic-drink-tilt 8s ease-in-out infinite alternate;
}
.scn-indian-character .ic-hut-door {
  position:absolute; bottom:28%; right:15%; width:16px; height:24px;
  background: #7a5a3a;
  border-radius: 10% 10% 5% 5% / 30% 30% 10% 10%;
  box-shadow: inset 0 2px 4px rgba(0,0,0,0.3);
  animation: ic-door-breathe 15s ease-in-out infinite alternate;
}
@keyframes ic-sky-breathe { 0% { opacity:0.85; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes ic-horizon-shimmer { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes ic-figure-proud { 0% { transform: scaleY(1); } 25% { transform: scaleY(1.02) rotate(1deg); } 75% { transform: scaleY(0.98) rotate(-1deg); } 100% { transform: scaleY(1); } }
@keyframes ic-spear-sway { 0% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-2deg); } }
@keyframes ic-pineapple-bob { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes ic-drink-tilt { 0% { transform: rotate(0deg); } 100% { transform: rotate(10deg); } }
@keyframes ic-door-breathe { 0% { transform: scaleX(1); } 100% { transform: scaleX(1.02); } }

/* indian-governor – judge with stick, feast scene */
.scn-indian-governor {
  background:
    linear-gradient(180deg, #f9e4bc 0%, #e8c49a 40%, #c8a67a 70%, #b8926e 100%),
    radial-gradient(ellipse at 50% 100%, #f0d4b0 0%, transparent 80%);
}
.scn-indian-governor .ig-sky {
  position:absolute; inset:0 0 45% 0;
  background: linear-gradient(180deg, #fef6e6 0%, #fbe8ce 50%, #f4d7b5 100%);
  animation: ig-sky-soft 18s ease-in-out infinite alternate;
}
.scn-indian-governor .ig-ground {
  position:absolute; bottom:0; left:0; right:0; height:40%;
  background: linear-gradient(180deg, #b88a5a 0%, #9e6f44 50%, #7a5533 100%);
  border-radius: 50% 50% 0 0 / 20% 20% 0 0;
  animation: ig-ground-sway 22s ease-in-out infinite alternate;
}
.scn-indian-governor .ig-platform {
  position:absolute; bottom:28%; left:45%; width:60px; height:14px;
  background: linear-gradient(180deg, #a87a5a 0%, #8a5a3a 100%);
  border-radius: 10% 10% 5% 5% / 30% 30% 10% 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
  animation: ig-platform-settle 12s ease-in-out infinite alternate;
}
.scn-indian-governor .ig-governor {
  position:absolute; bottom:32%; left:50%; width:24px; height:50px;
  background: radial-gradient(ellipse at 50% 20%, #c49a7a 0%, #a87a5a 60%, #7a5533 100%);
  border-radius: 50% 50% 35% 35% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: ig-governor-judge 10s ease-in-out infinite;
}
.scn-indian-governor .ig-stick {
  position:absolute; bottom:34%; left:46%; width:2px; height:30px;
  background: #5a3d2a;
  border-radius: 1px;
  transform-origin: bottom center;
  animation: ig-stick-point 8s ease-in-out infinite alternate;
}
.scn-indian-governor .ig-figures {
  position:absolute; bottom:26%; left:30%; width:40px; height:30px;
  background: radial-gradient(ellipse at 50% 30%, #c49a7a 0%, #a87a5a 60%, #7a5533 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%;
  animation: ig-figures-mingle 14s ease-in-out infinite;
}
.scn-indian-governor .ig-feast {
  position:absolute; bottom:20%; left:55%; width:28px; height:12px;
  background: linear-gradient(90deg, #d4a87a 0%, #b08050 50%, #a07040 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 15% 15%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.15);
  animation: ig-feast-glow 6s ease-in-out infinite alternate;
}
@keyframes ig-sky-soft { 0% { opacity:0.85; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes ig-ground-sway { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes ig-platform-settle { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes ig-governor-judge { 0% { transform: rotate(0deg) translateY(0); } 25% { transform: rotate(5deg) translateY(-2px); } 50% { transform: rotate(-3deg) translateY(-1px); } 75% { transform: rotate(2deg) translateY(-3px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes ig-stick-point { 0% { transform: rotate(10deg); } 100% { transform: rotate(-10deg); } }
@keyframes ig-figures-mingle { 0% { transform: translateX(0) scale(1); } 50% { transform: translateX(4px) scale(0.95); } 100% { transform: translateX(0) scale(1); } }
@keyframes ig-feast-glow { 0% { box-shadow: 0 0 6px 2px rgba(200,160,100,0.4); } 100% { box-shadow: 0 0 12px 4px rgba(200,160,100,0.7); } }

/* prayer-to-god */
.scn-prayer-to-god {
  background: linear-gradient(180deg, #5b7fa0 0%, #8bb4d0 40%, #c6d8e0 70%, #e8c88a 100%),
              radial-gradient(ellipse at 50% 0%, #fff7d0 0%, transparent 60%);
}
.scn-prayer-to-god .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #4a6e8a 0%, #7aa6c0 50%, #b0c8d8 100%); }
.scn-prayer-to-god .sun { position:absolute; top:8%; left:70%; width:120px; height:120px; background: radial-gradient(circle, #ffe680 0%, #ffd060 40%, transparent 70%); border-radius:50%; filter: blur(12px); animation: ptg-sun 8s ease-in-out infinite alternate; }
.scn-prayer-to-god .sea { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #2a5a7a 0%, #1a3a5a 60%, #0a1a2a 100%); }
.scn-prayer-to-god .ship { position:absolute; bottom:45%; left:30%; width:120px; height:50px; background: linear-gradient(90deg, #4a3a2a 0%, #3a2a1a 100%); border-radius: 0 60% 40% 60% / 0 80% 20% 80%; box-shadow: 2px 4px 6px rgba(0,0,0,0.4); animation: ptg-ship 12s ease-in-out infinite; }
.scn-prayer-to-god .mast { position:absolute; bottom:50%; left:35%; width:6px; height:80px; background: #3a2a1a; transform-origin: bottom center; animation: ptg-mast 12s ease-in-out infinite; }
.scn-prayer-to-god .sail { position:absolute; bottom:65%; left:33%; width:40px; height:50px; background: linear-gradient(180deg, #d8c8a0 0%, #b8a888 100%); border-radius: 0 40% 30% 0; transform-origin: bottom left; animation: ptg-sail 12s ease-in-out infinite; }
.scn-prayer-to-god .figure { position:absolute; bottom:48%; left:33%; width:16px; height:30px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: ptg-figure 4s ease-in-out infinite; }
.scn-prayer-to-god .rays { position:absolute; top:5%; left:65%; width:200px; height:200px; background: radial-gradient(ellipse at 30% 30%, rgba(255,230,128,0.3) 0%, transparent 60%); filter: blur(8px); animation: ptg-rays 6s ease-in-out infinite alternate; }
@keyframes ptg-sun { 0%,100% { transform: scale(1); opacity:0.9; } 50% { transform: scale(1.08); opacity:1; } }
@keyframes ptg-ship { 0%,100% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-4px) rotate(1deg); } }
@keyframes ptg-mast { 0%,100% { transform: rotate(0); } 50% { transform: rotate(1deg); } }
@keyframes ptg-sail { 0%,100% { transform: rotate(0) scaleX(1); } 50% { transform: rotate(2deg) scaleX(0.95); } }
@keyframes ptg-figure { 0%,100% { transform: translateX(0) translateY(0) rotate(-2deg); } 25% { transform: translateX(2px) translateY(-2px) rotate(2deg); } 50% { transform: translateX(0) translateY(-3px) rotate(-1deg); } 75% { transform: translateX(-2px) translateY(-2px) rotate(1deg); } }
@keyframes ptg-rays { 0% { opacity:0.4; transform: scale(0.9); } 100% { opacity:0.7; transform: scale(1.1); } }

/* georgia-arrival-watch */
.scn-georgia-arrival-watch {
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2e 30%, #2a2a3e 60%, #1a1a2e 100%),
              radial-gradient(ellipse at 50% 100%, #2a2a3e 0%, transparent 70%);
}
.scn-georgia-arrival-watch .room { position:absolute; inset:10% 10% 10% 10%; background: #1a1a2e; border-radius:8px; box-shadow: inset 0 0 40px rgba(0,0,0,0.6); }
.scn-georgia-arrival-watch .wall { position:absolute; top:0; left:0; right:0; height:70%; background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%); border-radius:8px 8px 0 0; }
.scn-georgia-arrival-watch .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%); border-radius:0 0 8px 8px; }
.scn-georgia-arrival-watch .window { position:absolute; top:15%; right:15%; width:50px; height:40px; background: radial-gradient(ellipse, #4a6a8a 0%, #2a3a5a 100%); border:3px solid #3a3a4a; border-radius:4px; animation: gaw-window 10s ease-in-out infinite alternate; }
.scn-georgia-arrival-watch .lantern { position:absolute; top:30%; left:20%; width:12px; height:16px; background: radial-gradient(circle, #ffd080 0%, #c08040 70%); border-radius:2px; box-shadow: 0 0 30px 8px #c08040, 0 0 60px 20px rgba(192,128,64,0.3); animation: gaw-lantern 3s ease-in-out infinite alternate; }
.scn-georgia-arrival-watch .figure-in { position:absolute; bottom:32%; left:20%; width:18px; height:36px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: gaw-figure-in 6s ease-in-out infinite; }
.scn-georgia-arrival-watch .figure-out { position:absolute; bottom:38%; right:25%; width:20px; height:38px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: gaw-figure-out 8s ease-in-out infinite; }
.scn-georgia-arrival-watch .shadow { position:absolute; top:0; left:0; right:0; bottom:0; background: radial-gradient(ellipse at 20% 30%, rgba(0,0,0,0) 0%, rgba(0,0,0,0.6) 100%); animation: gaw-shadow 12s ease-in-out infinite alternate; }
@keyframes gaw-window { 0% { opacity:0.6; } 50% { opacity:0.8; } 100% { opacity:0.5; } }
@keyframes gaw-lantern { 0%,100% { transform: scale(1) rotate(-2deg); box-shadow: 0 0 25px 6px #c08040; } 50% { transform: scale(1.1) rotate(2deg); box-shadow: 0 0 40px 12px #d09050; } }
@keyframes gaw-figure-in { 0%,100% { transform: translateX(0); } 25% { transform: translateX(2px); } 50% { transform: translateX(0) translateY(-2px); } 75% { transform: translateX(-2px); } }
@keyframes gaw-figure-out { 0%,100% { transform: translateX(0) rotate(0); } 30% { transform: translateX(5px) rotate(2deg); } 60% { transform: translateX(-3px) rotate(-1deg); } }
@keyframes gaw-shadow { 0% { opacity:0.3; } 50% { opacity:0.7; } 100% { opacity:0.5; } }

/* watch-house-threat */
.scn-watch-house-threat {
  background: linear-gradient(180deg, #0e0e1a 0%, #1a1a2e 30%, #2a2a3e 60%, #0a0a1a 100%),
              radial-gradient(ellipse at 50% 50%, #2a2a3e 0%, transparent 70%);
}
.scn-watch-house-threat .bg { position:absolute; inset:5% 5% 5% 5%; background: #1a1a2e; border-radius:4px; box-shadow: inset 0 0 30px rgba(0,0,0,0.8); }
.scn-watch-house-threat .wall-dark { position:absolute; top:0; left:0; right:0; height:65%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); }
.scn-watch-house-threat .floor-dark { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); }
.scn-watch-house-threat .post { position:absolute; bottom:35%; left:40%; width:10px; height:50px; background: #2a2a3a; border-radius:2px; box-shadow: 2px 0 4px rgba(0,0,0,0.5); }
.scn-watch-house-threat .victim { position:absolute; bottom:36%; left:42%; width:16px; height:28px; background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: wht-victim 2s ease-in-out infinite; }
.scn-watch-house-threat .flogger1 { position:absolute; bottom:36%; left:30%; width:18px; height:34px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: wht-flogger1 3s ease-in-out infinite; }
.scn-watch-house-threat .flogger2 { position:absolute; bottom:36%; right:30%; width:18px; height:34px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: wht-flogger2 3s ease-in-out infinite 1.5s; }
.scn-watch-house-threat .chains { position:absolute; bottom:35%; left:38%; width:20px; height:4px; background: #4a4a5a; border-radius:2px; animation: wht-chains 4s ease-in-out infinite; }
@keyframes wht-victim { 0%,100% { transform: translateY(0) rotate(-3deg); } 25% { transform: translateY(-2px) rotate(0); } 50% { transform: translateY(0) rotate(3deg); } 75% { transform: translateY(-2px) rotate(0); } }
@keyframes wht-flogger1 { 0%,100% { transform: translateX(0) rotate(0); } 30% { transform: translateX(4px) rotate(10deg); } 60% { transform: translateX(-2px) rotate(-5deg); } }
@keyframes wht-flogger2 { 0%,100% { transform: translateX(0) rotate(0); } 30% { transform: translateX(-4px) rotate(-10deg); } 60% { transform: translateX(2px) rotate(5deg); } }
@keyframes wht-chains { 0%,100% { transform: translateY(0); } 50% { transform: translateY(2px); } }

/* kidnapping-attempt */
.scn-kidnapping-attempt {
  background: linear-gradient(180deg, #6a8eb0 0%, #8ab4d0 40%, #b0c8d8 70%, #d8c080 100%),
              radial-gradient(ellipse at 50% 0%, #fff0c0 0%, transparent 50%);
}
.scn-kidnapping-attempt .sky-bright { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #7aa6c0 0%, #a0c8d8 50%, #c8d8e0 100%); }
.scn-kidnapping-attempt .sun-glare { position:absolute; top:5%; left:60%; width:150px; height:150px; background: radial-gradient(circle, #ffe080 0%, #ffd060 30%, transparent 60%); border-radius:50%; filter: blur(10px); animation: kat-sun 6s ease-in-out infinite alternate; }
.scn-kidnapping-attempt .ground { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #b09868 0%, #8a7850 100%); border-radius: 40% 40% 0 0 / 30% 30% 0 0; }
.scn-kidnapping-attempt .equiano { position:absolute; bottom:36%; left:25%; width:18px; height:36px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: kat-eq 5s ease-in-out infinite; }
.scn-kidnapping-attempt .stick { position:absolute; bottom:48%; left:23%; width:30px; height:4px; background: #4a3a2a; border-radius:2px; transform-origin: left center; animation: kat-stick 5s ease-in-out infinite; }
.scn-kidnapping-attempt .man1 { position:absolute; bottom:36%; left:50%; width:20px; height:38px; background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: kat-man1 8s ease-in-out infinite; }
.scn-kidnapping-attempt .man2 { position:absolute; bottom:36%; left:62%; width:18px; height:36px; background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: kat-man2 8s ease-in-out infinite 4s; }
.scn-kidnapping-attempt .tree { position:absolute; bottom:30%; left:80%; width:30px; height:70px; background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); border-radius:20px 20px 0 0; box-shadow: inset -4px 0 8px rgba(0,0,0,0.3); }
@keyframes kat-sun { 0%,100% { transform: scale(0.95); opacity:0.8; } 50% { transform: scale(1.05); opacity:1; } }
@keyframes kat-eq { 0%,100% { transform: translateX(0) rotate(0); } 25% { transform: translateX(2px) rotate(2deg); } 50% { transform: translateX(0) rotate(-1deg); } 75% { transform: translateX(-2px) rotate(1deg); } }
@keyframes kat-stick { 0%,100% { transform: rotate(20deg) scaleX(1); } 50% { transform: rotate(-10deg) scaleX(1.1); } }
@keyframes kat-man1 { 0%,100% { transform: translateX(0) rotate(0); } 30% { transform: translateX(-4px) rotate(5deg); } 60% { transform: translateX(2px) rotate(-3deg); } }
@keyframes kat-man2 { 0%,100% { transform: translateX(0) rotate(0); } 30% { transform: translateX(4px) rotate(-5deg); } 60% { transform: translateX(-2px) rotate(3deg); } }

.scn-neglect-consequences {
  background:
    linear-gradient(180deg, #4a5a6a 0%, #8a9a8a 30%, #6a7a5a 60%, #3a3a2a 100%),
    radial-gradient(ellipse at 50% 20%, #aabbaa 0%, transparent 60%);
}
.scn-neglect-consequences .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #7a8a9a 0%, #aabbaa 60%, transparent 100%);
  animation: nc-sky 12s ease-in-out infinite alternate;
}
.scn-neglect-consequences .field {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #5a6a4a 0%, #3a4a2a 100%);
  border-radius: 40% 30% 0 0 / 20% 15% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,.5);
}
.scn-neglect-consequences .tree {
  position: absolute; bottom: 35%; left: 30%; width: 40px; height: 100px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1a0a 100%);
  border-radius: 10% 10% 30% 30% / 20% 20% 60% 60%;
  transform-origin: bottom center;
  animation: nc-tree 6s ease-in-out infinite;
}
.scn-neglect-consequences .figure-a {
  position: absolute; bottom: 40%; left: 50%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: nc-figure-a 4s ease-in-out infinite;
}
.scn-neglect-consequences .figure-b {
  position: absolute; bottom: 38%; left: 60%; width: 18px; height: 48px;
  background: linear-gradient(180deg, #3a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: nc-figure-b 5s ease-in-out infinite;
  animation-delay: -2s;
}
.scn-neglect-consequences .chain {
  position: absolute; bottom: 44%; left: 55%; width: 30px; height: 4px;
  background: #6a5a4a;
  border-radius: 2px;
  box-shadow: 0 2px 2px rgba(0,0,0,.3);
  animation: nc-chain 3s ease-in-out infinite;
}
.scn-neglect-consequences .sun {
  position: absolute; top: 10%; right: 20%; width: 40px; height: 40px;
  background: radial-gradient(circle, #f0d0a0 0%, #d0b080 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px rgba(240,208,160,.4);
  animation: nc-sun 10s ease-in-out infinite alternate;
}
.scn-neglect-consequences .cloud {
  position: absolute; top: 15%; left: 10%; width: 100px; height: 20px;
  background: linear-gradient(180deg, rgba(200,200,210,.6) 0%, rgba(200,200,210,.1) 100%);
  border-radius: 50%;
  filter: blur(8px);
  animation: nc-cloud 40s linear infinite;
}
@keyframes nc-sky {
  0% { opacity: .8; background-position: 0% 0%; }
  50% { opacity: 1; background-position: 10% 0%; }
  100% { opacity: .7; background-position: 0% 0%; }
}
@keyframes nc-tree {
  0%, 100% { transform: rotate(0deg); }
  50% { transform: rotate(2deg); }
}
@keyframes nc-figure-a {
  0% { transform: translateX(0) translateY(0) rotate(-2deg); }
  25% { transform: translateX(5px) translateY(-2px) rotate(1deg); }
  50% { transform: translateX(10px) translateY(0) rotate(-1deg); }
  75% { transform: translateX(5px) translateY(-1px) rotate(2deg); }
  100% { transform: translateX(0) translateY(0) rotate(0); }
}
@keyframes nc-figure-b {
  0% { transform: translateX(0) translateY(0) rotate(1deg); }
  33% { transform: translateX(-3px) translateY(-1px) rotate(-2deg); }
  66% { transform: translateX(3px) translateY(0) rotate(1deg); }
  100% { transform: translateX(0) translateY(0) rotate(0); }
}
@keyframes nc-chain {
  0%, 100% { transform: scaleX(1); }
  50% { transform: scaleX(1.1); }
}
@keyframes nc-sun {
  0% { box-shadow: 0 0 40px 15px rgba(240,208,160,.3); }
  50% { box-shadow: 0 0 80px 30px rgba(240,208,160,.6); }
  100% { box-shadow: 0 0 50px 20px rgba(240,208,160,.4); }
}
@keyframes nc-cloud {
  0% { transform: translateX(-120px); }
  100% { transform: translateX(120vw); }
}

.scn-humane-gentlemen {
  background:
    linear-gradient(180deg, #c8d8c0 0%, #a0c0a0 40%, #7a9a7a 60%, #5a7a5a 100%),
    radial-gradient(ellipse at 60% 30%, #e0f0d0 0%, transparent 70%);
}
.scn-humane-gentlemen .horizon {
  position: absolute; bottom: 45%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #8aaa8a 0%, #6a8a6a 100%);
  border-radius: 30% 40% 0 0 / 10% 15% 0 0;
  box-shadow: inset 0 5px 15px rgba(0,0,0,.2);
}
.scn-humane-gentlemen .estate {
  position: absolute; bottom: 40%; right: 15%; width: 120px; height: 80px;
  background: linear-gradient(180deg, #b0a090 0%, #8a7a6a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 8px 20px rgba(0,0,0,.3);
  animation: hg-estate 8s ease-in-out infinite;
}
.scn-humane-gentlemen .gentleman {
  position: absolute; bottom: 35%; left: 40%; width: 22px; height: 60px;
  background: linear-gradient(180deg, #c8b8a8 0%, #a09080 30%, #8a7a6a 60%, #6a5a4a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hg-gentleman 5s ease-in-out infinite;
}
.scn-humane-gentlemen .slave {
  position: absolute; bottom: 38%; left: 55%; width: 18px; height: 50px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hg-slave 4s ease-in-out infinite;
  animation-delay: -1s;
}
.scn-humane-gentlemen .tree {
  position: absolute; bottom: 20%; left: 10%; width: 30px; height: 120px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 30% 30% / 20% 20% 60% 60%;
  animation: hg-tree 6s ease-in-out infinite;
}
.scn-humane-gentlemen .sunlight {
  position: absolute; top: 0; left: 0; right: 0; bottom: 0;
  background: radial-gradient(ellipse at 70% 20%, rgba(255,240,200,.3) 0%, transparent 60%);
  animation: hg-sunlight 5s ease-in-out infinite alternate;
}
.scn-humane-gentlemen .fence {
  position: absolute; bottom: 42%; left: 5%; width: 50%; height: 6px;
  background: #6a5a4a;
  border-radius: 2px;
  box-shadow: 0 8px 0 #5a4a3a, 0 16px 0 #4a3a2a;
  animation: hg-fence 12s ease-in-out infinite;
}
.scn-humane-gentlemen .grass {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #7a9a6a 0%, #5a7a4a 100%);
  border-radius: 40% 60% 0 0 / 20% 30% 0 0;
}
@keyframes hg-estate {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.02); }
}
@keyframes hg-gentleman {
  0% { transform: translateX(0) rotate(-1deg); }
  25% { transform: translateX(8px) rotate(2deg); }
  50% { transform: translateX(12px) rotate(-1deg); }
  75% { transform: translateX(4px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes hg-slave {
  0% { transform: translateX(0) translateY(0) rotate(1deg); }
  33% { transform: translateX(-4px) translateY(-1px) rotate(-2deg); }
  66% { transform: translateX(4px) translateY(0) rotate(1deg); }
  100% { transform: translateX(0) translateY(0) rotate(0); }
}
@keyframes hg-tree {
  0%, 100% { transform: rotate(0deg); }
  50% { transform: rotate(3deg); }
}
@keyframes hg-sunlight {
  0% { opacity: .6; }
  50% { opacity: 1; }
  100% { opacity: .7; }
}
@keyframes hg-fence {
  0%, 100% { transform: scaleX(1); }
  50% { transform: scaleX(1.05); }
}

.scn-barbadoes-example {
  background:
    linear-gradient(180deg, #a0c0d0 0%, #70a0b0 40%, #406070 80%, #203040 100%),
    radial-gradient(ellipse at 50% 60%, #c8e0e8 0%, transparent 80%);
}
.scn-barbadoes-example .ocean {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #5090a0 0%, #306070 100%);
  animation: be-ocean 15s ease-in-out infinite alternate;
}
.scn-barbadoes-example .island {
  position: absolute; bottom: 25%; left: 20%; width: 60%; height: 35%;
  background: linear-gradient(180deg, #b0c0a0 0%, #809070 100%);
  border-radius: 50% 50% 0 0 / 40% 40% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,.3);
  animation: be-island 10s ease-in-out infinite;
}
.scn-barbadoes-example .house {
  position: absolute; bottom: 50%; left: 50%; width: 80px; height: 60px;
  background: linear-gradient(180deg, #c8b098 0%, #a08870 100%);
  border-radius: 10% 10% 5% 5%;
  transform: translateX(-50%);
  box-shadow: 0 6px 15px rgba(0,0,0,.4);
  animation: be-house 8s ease-in-out infinite;
}
.scn-barbadoes-example .palm {
  position: absolute; bottom: 55%; left: 20%; width: 20px; height: 80px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 30% 30% / 20% 20% 60% 60%;
  transform-origin: bottom center;
  animation: be-palm 6s ease-in-out infinite;
}
.scn-barbadoes-example .workers {
  position: absolute; bottom: 35%; left: 35%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: be-workers 5s ease-in-out infinite;
}
.scn-barbadoes-example .boat {
  position: absolute; bottom: 20%; right: 5%; width: 60px; height: 15px;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a4a2a 100%);
  border-radius: 0 0 40% 40% / 0 0 60% 60%;
  animation: be-boat 20s linear infinite;
}
.scn-barbadoes-example .sun {
  position: absolute; top: 8%; right: 15%; width: 50px; height: 50px;
  background: radial-gradient(circle, #f0e0c0 0%, #d0c0a0 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 70px 25px rgba(240,224,192,.5);
  animation: be-sun 12s ease-in-out infinite alternate;
}
.scn-barbadoes-example .cloud {
  position: absolute; top: 12%; left: 5%; width: 80px; height: 18px;
  background: linear-gradient(180deg, rgba(255,255,255,.5) 0%, rgba(255,255,255,.1) 100%);
  border-radius: 50%;
  filter: blur(6px);
  animation: be-cloud 45s linear infinite;
}
@keyframes be-ocean {
  0% { background-position: 0% 0%; }
  100% { background-position: 10% 5%; }
}
@keyframes be-island {
  0%, 100% { transform: scale(1) translateY(0); }
  50% { transform: scale(1.01) translateY(-3px); }
}
@keyframes be-house {
  0%, 100% { transform: translateX(-50%) scale(1); }
  50% { transform: translateX(-50%) scale(1.02); }
}
@keyframes be-palm {
  0%, 100% { transform: rotate(0deg); }
  50% { transform: rotate(4deg); }
}
@keyframes be-workers {
  0% { transform: translateX(0) translateY(0); }
  25% { transform: translateX(8px) translateY(-1px); }
  50% { transform: translateX(16px) translateY(0); }
  75% { transform: translateX(8px) translateY(-1px); }
  100% { transform: translateX(0) translateY(0); }
}
@keyframes be-boat {
  0% { transform: translateX(0) translateY(0); }
  25% { transform: translateX(-30px) translateY(-5px); }
  50% { transform: translateX(-60px) translateY(0); }
  75% { transform: translateX(-30px) translateY(3px); }
  100% { transform: translateX(0) translateY(0); }
}
@keyframes be-sun {
  0% { box-shadow: 0 0 50px 20px rgba(240,224,192,.4); }
  50% { box-shadow: 0 0 90px 35px rgba(240,224,192,.6); }
  100% { box-shadow: 0 0 60px 25px rgba(240,224,192,.5); }
}
@keyframes be-cloud {
  0% { transform: translateX(-100px); }
  100% { transform: translateX(110vw); }
}

.scn-treatise-usage {
  background:
    linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 40%, #1a1a2a 100%),
    radial-gradient(ellipse at 50% 30%, #4a4a5a 0%, transparent 80%);
}
.scn-treatise-usage .study-wall {
  position: absolute; top: 0; left: 0; right: 0; bottom: 0;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  opacity: .6;
  animation: tu-wall 12s ease-in-out infinite alternate;
}
.scn-treatise-usage .desk {
  position: absolute; bottom: 30%; left: 10%; width: 80%; height: 25%;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 5% 5% 0 0;
  box-shadow: 0 10px 30px rgba(0,0,0,.5);
  animation: tu-desk 8s ease-in-out infinite;
}
.scn-treatise-usage .book {
  position: absolute; bottom: 40%; left: 30%; width: 60px; height: 80px;
  background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%);
  border-radius: 5% 5% 10% 10% / 10% 10% 5% 5%;
  box-shadow: inset 0 5px 10px rgba(0,0,0,.4), 0 8px 15px rgba(0,0,0,.6);
  transform: rotate(-5deg);
  animation: tu-book 6s ease-in-out infinite alternate;
}
.scn-treatise-usage .inkwell {
  position: absolute; bottom: 45%; left: 55%; width: 20px; height: 25px;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
  animation: tu-inkwell 10s ease-in-out infinite;
}
.scn-treatise-usage .quill {
  position: absolute; bottom: 55%; left: 60%; width: 4px; height: 60px;
  background: linear-gradient(180deg, #d0c0a0 0%, #a09070 100%);
  border-radius: 0 0 50% 50% / 0 0 70% 70%;
  transform: rotate(-20deg);
  transform-origin: bottom center;
  animation: tu-quill 4s ease-in-out infinite alternate;
}
.scn-treatise-usage .candle {
  position: absolute; bottom: 50%; left: 20%; width: 12px; height: 35px;
  background: linear-gradient(180deg, #e0d0a0 0%, #c0b080 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 0 30px 10px rgba(255,200,150,.3);
  animation: tu-candle 3s ease-in-out infinite alternate;
}
.scn-treatise-usage .window {
  position: absolute; top: 10%; right: 10%; width: 60px; height: 80px;
  border: 4px solid #5a4a3a;
  background: radial-gradient(ellipse at 50% 30%, #b0c0d0 0%, #7090a0 100%);
  border-radius: 5% 5% 10% 10%;
  box-shadow: inset 0 0 20px rgba(0,0,0,.3);
  animation: tu-window 15s ease-in-out infinite;
}
.scn-treatise-usage .shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,10,.6) 100%);
  animation: tu-shadow 7s ease-in-out infinite alternate;
}
@keyframes tu-wall {
  0% { opacity: .5; }
  50% { opacity: .7; }
  100% { opacity: .6; }
}
@keyframes tu-desk {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.01); }
}
@keyframes tu-book {
  0% { transform: rotate(-5deg) scale(1); }
  50% { transform: rotate(-3deg) scale(1.02); }
  100% { transform: rotate(-5deg) scale(1); }
}
@keyframes tu-inkwell {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
}
@keyframes tu-quill {
  0% { transform: rotate(-20deg); }
  50% { transform: rotate(-15deg); }
  100% { transform: rotate(-20deg); }
}
@keyframes tu-candle {
  0% { box-shadow: 0 0 20px 5px rgba(255,200,150,.2); }
  50% { box-shadow: 0 0 40px 15px rgba(255,200,150,.5); }
  100% { box-shadow: 0 0 20px 5px rgba(255,200,150,.2); }
}
@keyframes tu-window {
  0% { opacity: .8; }
  50% { opacity: 1; }
  100% { opacity: .9; }
}
@keyframes tu-shadow {
  0% { opacity: .3; }
  50% { opacity: .6; }
  100% { opacity: .4; }
}

.scn-quaker-wedding {
  background: 
    linear-gradient(180deg, #d4b89a 0%, #c9a87b 40%, #b8926a 100%),
    radial-gradient(ellipse at 30% 70%, #e8d4b0 0%, transparent 60%);
}
.scn-quaker-wedding .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #e3cfb5 0%, #c9aa87 100%);
  animation: qw-wall 15s ease-in-out infinite alternate;
}
.scn-quaker-wedding .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #8b6f50 0%, #5a4530 100%);
  border-radius: 20% 20% 0 0;
}
.scn-quaker-wedding .window {
  position: absolute; top: 15%; left: 50%; width: 90px; height: 110px;
  transform: translateX(-50%);
  background: linear-gradient(135deg, #ffe8c8 0%, #f5d6a0 50%, #e0b880 100%);
  border-radius: 4px 4px 8px 8px;
  box-shadow: inset 0 0 20px rgba(255,220,160,0.8), 0 0 40px rgba(255,200,120,0.4);
  animation: qw-windowglow 5s ease-in-out infinite alternate;
}
.scn-quaker-wedding .couple {
  position: absolute; bottom: 32%; width: 28px; height: 50px;
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
}
.scn-quaker-wedding .woman {
  left: 40%; background: linear-gradient(180deg, #8c6e5e 0%, #4a3328 100%);
  animation: qw-couple 4s ease-in-out infinite alternate;
}
.scn-quaker-wedding .man {
  left: 48%; background: linear-gradient(180deg, #5a4a3a 0%, #2a1e14 100%);
  animation: qw-couple 4s ease-in-out infinite alternate-reverse;
}
.scn-quaker-wedding .table {
  position: absolute; bottom: 28%; left: 42%; width: 70px; height: 10px;
  background: linear-gradient(90deg, #6a4a30, #4a3020, #6a4a30);
  border-radius: 2px;
  box-shadow: 0 4px 6px rgba(0,0,0,0.3);
}
.scn-quaker-wedding .register {
  position: absolute; bottom: 29%; left: 45%; width: 24px; height: 6px;
  background: #3a2a1a; border-radius: 1px;
  animation: qw-register 6s ease-in-out infinite;
}
.scn-quaker-wedding .witness {
  position: absolute; bottom: 30%; left: 56%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #4a3a2a 0%, #1a1410 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  animation: qw-witness 7s ease-in-out infinite;
}
@keyframes qw-wall {
  0% { opacity: 0.85; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes qw-windowglow {
  0% { box-shadow: inset 0 0 15px rgba(255,220,160,0.7), 0 0 30px rgba(255,200,120,0.3); }
  50% { box-shadow: inset 0 0 30px rgba(255,230,180,1), 0 0 50px rgba(255,210,140,0.6); }
  100% { box-shadow: inset 0 0 20px rgba(255,220,160,0.8), 0 0 40px rgba(255,200,120,0.4); }
}
@keyframes qw-couple {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes qw-register {
  0%,100% { transform: scaleX(1) translateY(0); }
  50% { transform: scaleX(1.1) translateY(-1px); }
}
@keyframes qw-witness {
  0% { transform: translateX(0) rotate(0); }
  25% { transform: translateX(2px) rotate(-2deg); }
  50% { transform: translateX(-1px) rotate(1deg); }
  75% { transform: translateX(1px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0); }
}

.scn-sierra-leone-appointment {
  background: 
    linear-gradient(180deg, #1e2530 0%, #2a3340 40%, #1a2028 100%),
    radial-gradient(ellipse at 50% 60%, #3a4a5a 0%, transparent 70%);
}
.scn-sierra-leone-appointment .room-bg {
  position: absolute; inset: 0 0 10% 0;
  background: linear-gradient(180deg, #2c3846 0%, #1e2530 100%);
  animation: sa-bg 20s ease-in-out infinite alternate;
}
.scn-sierra-leone-appointment .desk {
  position: absolute; bottom: 20%; left: 20%; width: 120px; height: 12px;
  background: linear-gradient(90deg, #4a3a2a, #2a1a14, #4a3a2a);
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
}
.scn-sierra-leone-appointment .paper {
  position: absolute; bottom: 23%; left: 28%; width: 30px; height: 20px;
  background: linear-gradient(135deg, #e8dcc8 0%, #c8b898 100%);
  border-radius: 1px;
  animation: sa-paper 8s ease-in-out infinite alternate;
}
.scn-sierra-leone-appointment .lamp {
  position: absolute; top: 30%; left: 28%; width: 18px; height: 24px;
  background: radial-gradient(circle at 50% 30%, #f0d080 0%, #c09040 60%, #805020 100%);
  border-radius: 40% 40% 20% 20%;
  box-shadow: 0 0 30px 8px rgba(200,150,60,0.3);
  animation: sa-lampflicker 3s ease-in-out infinite alternate;
}
.scn-sierra-leone-appointment .figure-commissary {
  position: absolute; bottom: 18%; left: 22%; width: 22px; height: 42px;
  background: linear-gradient(180deg, #2a2a3a 0%, #101018 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: sa-figure 6s ease-in-out infinite alternate;
}
.scn-sierra-leone-appointment .figures-committee {
  position: absolute; bottom: 18%; left: 38%; width: 50px; height: 40px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a14 100%);
  border-radius: 30% 30% 40% 40% / 50% 50% 40% 40%;
  animation: sa-committee 10s ease-in-out infinite alternate;
}
@keyframes sa-bg {
  0% { opacity: 0.8; }
  50% { opacity: 0.95; }
  100% { opacity: 0.85; }
}
@keyframes sa-paper {
  0% { transform: translateY(0) rotate(0); }
  50% { transform: translateY(-2px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes sa-lampflicker {
  0% { box-shadow: 0 0 20px 5px rgba(200,150,60,0.2); opacity: 0.8; }
  50% { box-shadow: 0 0 40px 12px rgba(200,150,60,0.5); opacity: 1; }
  100% { box-shadow: 0 0 25px 6px rgba(200,150,60,0.3); opacity: 0.9; }
}
@keyframes sa-figure {
  0% { transform: translateX(0) rotate(-1deg); }
  50% { transform: translateX(3px) rotate(1deg); }
  100% { transform: translateX(0) rotate(-1deg); }
}
@keyframes sa-committee {
  0% { transform: scaleX(1); }
  50% { transform: scaleX(0.98); }
  100% { transform: scaleX(1); }
}

.scn-agent-abuses {
  background: 
    linear-gradient(180deg, #1a1424 0%, #2a1e32 40%, #0e0a14 100%),
    radial-gradient(ellipse at 30% 50%, #3a2840 0%, transparent 60%);
}
.scn-agent-abuses .floor-dark {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #1a141e 0%, #0a060c 100%);
  border-radius: 10% 10% 0 0;
}
.scn-agent-abuses .wall-dark {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #201a2a 0%, #14101a 100%);
  animation: aa-wall 12s ease-in-out infinite alternate;
}
.scn-agent-abuses .shadow {
  position: absolute; top: 10%; left: 10%; width: 80%; height: 80%;
  background: radial-gradient(ellipse at 60% 30%, rgba(0,0,0,0.4) 0%, transparent 60%);
  animation: aa-shadow 5s ease-in-out infinite alternate;
}
.scn-agent-abuses .agent {
  position: absolute; bottom: 32%; right: 20%; width: 24px; height: 48px;
  background: linear-gradient(180deg, #3a2a3a 0%, #1a101a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: aa-agent 0.8s ease-in-out infinite alternate;
}
.scn-agent-abuses .poor-people {
  position: absolute; bottom: 28%; left: 15%; width: 40px; height: 36px;
  background: linear-gradient(180deg, #1a1420 0%, #0a0610 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: aa-tremble 1.2s ease-in-out infinite;
}
.scn-agent-abuses .empty-bed {
  position: absolute; bottom: 22%; left: 40%; width: 50px; height: 14px;
  background: linear-gradient(90deg, #2a202a, #141014, #2a202a);
  border-radius: 2px;
  box-shadow: inset 0 -2px 4px rgba(0,0,0,0.5);
  animation: aa-bed 4s ease-in-out infinite;
}
.scn-agent-abuses .chest {
  position: absolute; bottom: 20%; right: 35%; width: 30px; height: 20px;
  background: linear-gradient(180deg, #2a1a1a 0%, #140a0a 100%);
  border-radius: 4px;
  animation: aa-chest 6s ease-in-out infinite alternate;
}
@keyframes aa-wall {
  0% { opacity: 0.7; }
  50% { opacity: 0.9; }
  100% { opacity: 0.75; }
}
@keyframes aa-shadow {
  0% { transform: translate(0, 0) scale(1); }
  50% { transform: translate(10px, -5px) scale(1.1); }
  100% { transform: translate(0, 0) scale(1); }
}
@keyframes aa-agent {
  0% { transform: translateX(0) rotate(0); }
  100% { transform: translateX(4px) rotate(2deg); }
}
@keyframes aa-tremble {
  0% { transform: translate(0, 0); }
  25% { transform: translate(1px, -1px); }
  50% { transform: translate(-1px, 1px); }
  75% { transform: translate(2px, 0); }
  100% { transform: translate(0, 0); }
}
@keyframes aa-bed {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
}
@keyframes aa-chest {
  0% { transform: scaleX(1) translateY(0); }
  50% { transform: scaleX(1.05) translateY(-1px); }
  100% { transform: scaleX(1) translateY(0); }
}

.scn-expedition-failure {
  background: 
    linear-gradient(180deg, #2a3035 0%, #1c2126 40%, #0e1114 100%),
    radial-gradient(ellipse at 50% 30%, #3a454a 0%, transparent 70%);
}
.scn-expedition-failure .sky-overcast {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #465055 0%, #2a3035 100%);
  animation: ef-sky 20s ease-in-out infinite alternate;
}
.scn-expedition-failure .sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #1a2228 0%, #0e141a 100%);
  border-radius: 60% 40% 0 0;
  animation: ef-sea 6s ease-in-out infinite alternate;
}
.scn-expedition-failure .ship {
  position: absolute; bottom: 30%; left: 30%; width: 80px; height: 40px;
  background: linear-gradient(180deg, #3a3030 0%, #1a1414 100%);
  border-radius: 10% 10% 40% 40% / 20% 20% 30% 30%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.5);
  animation: ef-ship 4s ease-in-out infinite alternate;
}
.scn-expedition-failure .rain {
  position: absolute; inset: 0;
  background: repeating-linear-gradient(0deg, transparent, transparent 4px, rgba(180,200,220,0.08) 4px, rgba(180,200,220,0.08) 6px);
  animation: ef-rain 1s linear infinite;
}
.scn-expedition-failure .sick-figure {
  position: absolute; bottom: 26%; left: 45%; width: 18px; height: 30px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  animation: ef-sick 3s ease-in-out infinite;
}
.scn-expedition-failure .crate {
  position: absolute; bottom: 22%; left: 35%; width: 20px; height: 16px;
  background: linear-gradient(180deg, #2a2020 0%, #14100e 100%);
  border-radius: 2px;
  animation: ef-crate 8s ease-in-out infinite alternate;
}
@keyframes ef-sky {
  0% { opacity: 0.8; }
  50% { opacity: 0.95; }
  100% { opacity: 0.85; }
}
@keyframes ef-sea {
  0% { transform: translateY(0); }
  50% { transform: translateY(3px); }
  100% { transform: translateY(0); }
}
@keyframes ef-ship {
  0% { transform: rotate(-2deg) translateY(0); }
  50% { transform: rotate(2deg) translateY(-3px); }
  100% { transform: rotate(-2deg) translateY(0); }
}
@keyframes ef-rain {
  0% { background-position: 0 0; }
  100% { background-position: 0 20px; }
}
@keyframes ef-sick {
  0% { transform: translateY(0) rotate(0); }
  50% { transform: translateY(2px) rotate(3deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes ef-crate {
  0% { transform: translateY(0) scaleX(1); }
  50% { transform: translateY(-2px) scaleX(1.1); }
  100% { transform: translateY(0) scaleX(1); }
}

.scn-wales-coal-pit {
  background: 
    linear-gradient(180deg, #1a1010 0%, #2a1a1a 40%, #1a0e08 100%),
    radial-gradient(ellipse at 30% 50%, #3a2a1a 0%, transparent 80%);
}
.scn-wales-coal-pit .cave-bg { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 60%, #2a1a12 0%, #0e0808 100%); animation: wcp-breathe 8s ease-in-out infinite; }
.scn-wales-coal-pit .cave-wall-left { position:absolute; top:0; left:0; bottom:20%; width:20%; background: linear-gradient(90deg, #1a1010 0%, #2a1a14 40%, transparent 100%); border-radius: 0 40% 40% 0 / 0 30% 30% 0; animation: wcp-wall-shift 12s ease-in-out infinite; }
.scn-wales-coal-pit .cave-wall-right { position:absolute; top:10%; right:0; bottom:25%; width:25%; background: linear-gradient(270deg, #1a1010 0%, #2a1a14 40%, transparent 100%); border-radius: 40% 0 0 40% / 30% 0 0 30%; }
.scn-wales-coal-pit .coal-seam { position:absolute; top:55%; left:25%; right:25%; height:8%; background: linear-gradient(180deg, #0a0a0a 0%, #1a1a1a 50%, #0a0a0a 100%); border-radius: 10px; box-shadow: 0 0 8px rgba(255,255,255,0.05); animation: wcp-coal-glimmer 6s ease-in-out infinite alternate; }
.scn-wales-coal-pit .lantern { position:absolute; bottom:30%; left:40%; width:12px; height:18px; background: radial-gradient(circle at 50% 60%, #ffcc66 0%, #cc8844 70%); border-radius: 20% 20% 30% 30%; box-shadow: 0 0 20px 8px rgba(255,204,102,0.6); animation: wcp-lantern 2s ease-in-out infinite alternate; }
.scn-wales-coal-pit .figure { position:absolute; bottom:28%; left:45%; width:16px; height:40px; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: wcp-figure 10s ease-in-out infinite; }
.scn-wales-coal-pit .falling-rock { position:absolute; top:15%; left:55%; width:14px; height:14px; background: #3a2a1a; border-radius: 30% 30% 20% 20%; box-shadow: inset 0 2px 4px rgba(0,0,0,0.8); animation: wcp-rock-fall 4s ease-in infinite; }
.scn-wales-coal-pit .dust { position:absolute; bottom:20%; left:30%; right:30%; height:30%; background: radial-gradient(ellipse at 50% 0%, rgba(180,150,100,0.15) 0%, transparent 70%); animation: wcp-dust 7s ease-in-out infinite; }

@keyframes wcp-breathe { 0%,100% { opacity:0.9; } 50% { opacity:1; } }
@keyframes wcp-wall-shift { 0%,100% { transform: translateX(0); } 50% { transform: translateX(4px); } }
@keyframes wcp-coal-glimmer { 0%,100% { opacity:0.3; } 50% { opacity:0.7; } }
@keyframes wcp-lantern { 0% { box-shadow: 0 0 15px 4px rgba(255,204,102,0.5); transform: scale(1); } 50% { box-shadow: 0 0 30px 12px rgba(255,204,102,0.8); transform: scale(1.1); } 100% { box-shadow: 0 0 20px 6px rgba(255,204,102,0.6); transform: scale(0.95); } }
@keyframes wcp-figure { 0%,100% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(2deg); } 50% { transform: translateY(0) rotate(-1deg); } 75% { transform: translateY(-1px) rotate(3deg); } }
@keyframes wcp-rock-fall { 0% { top:15%; opacity:1; transform: rotate(0deg); } 80% { opacity:1; } 100% { top:65%; opacity:0.3; transform: rotate(180deg); } }
@keyframes wcp-dust { 0%,100% { opacity:0; } 50% { opacity:0.6; } }

.scn-new-york-execution {
  background: 
    linear-gradient(180deg, #87ceeb 0%, #f0e68c 60%, #f5deb3 100%),
    radial-gradient(ellipse at 70% 30%, #fff8dc 0%, transparent 80%);
}
.scn-new-york-execution .sky { position:absolute; inset:0; background: linear-gradient(180deg, #b0e0e6 0%, #fff8dc 100%); animation: nye-sky-pulse 15s ease-in-out infinite; }
.scn-new-york-execution .sun { position:absolute; top:5%; right:20%; width:40px; height:40px; background: radial-gradient(circle, #fff 0%, #ffeb3b 40%, transparent 70%); border-radius:50%; animation: nye-sun-drift 30s linear infinite; }
.scn-new-york-execution .gallows { position:absolute; bottom:10%; left:30%; width:12px; height:60%; background: linear-gradient(180deg, #5c4033 0%, #3e2723 100%); border-radius:4px 4px 0 0; transform-origin: bottom center; animation: nye-gallows-sway 6s ease-in-out infinite; }
.scn-new-york-execution .rope { position:absolute; bottom:60%; left:calc(30% + 6px); width:4px; height:30%; background: #4a3a2a; transform-origin: top center; animation: nye-rope-sway 3s ease-in-out infinite alternate; }
.scn-new-york-execution .malefactor { position:absolute; bottom:28%; left:calc(30% + 2px); width:16px; height:38px; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: nye-malefactor 2s ease-in-out infinite alternate; }
.scn-new-york-execution .woman { position:absolute; bottom:15%; left:50%; width:14px; height:36px; background: linear-gradient(180deg, #f0e0d0 0%, #d0b8a0 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: nye-woman-approach 8s ease-in-out infinite; }
.scn-new-york-execution .crowd { position:absolute; bottom:5%; left:45%; right:5%; height:20%; background: repeating-linear-gradient(90deg, #3a2a1a 0px, #3a2a1a 6px, transparent 6px, transparent 12px); opacity:0.4; animation: nye-crowd-move 12s linear infinite; }
.scn-new-york-execution .shadow { position:absolute; bottom:0; left:20%; right:20%; height:15%; background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.5) 0%, transparent 80%); animation: nye-shadow-lengthen 10s ease-in-out infinite alternate; }

@keyframes nye-sky-pulse { 0%,100% { opacity:0.8; } 50% { opacity:1; } }
@keyframes nye-sun-drift { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(10px) rotate(5deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes nye-gallows-sway { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(2deg); } }
@keyframes nye-rope-sway { 0% { transform: rotate(-3deg); } 100% { transform: rotate(3deg); } }
@keyframes nye-malefactor { 0% { transform: translateY(0) rotate(0deg); } 100% { transform: translateY(3px) rotate(2deg); } }
@keyframes nye-woman-approach { 0%,100% { transform: translateX(0); } 50% { transform: translateX(-15px); } }
@keyframes nye-crowd-move { 0% { background-position: 0 0; } 100% { background-position: 24px 0; } }
@keyframes nye-shadow-lengthen { 0% { transform: scaleY(1); opacity:0.5; } 100% { transform: scaleY(1.5); opacity:0.3; } }

.scn-philadelphia-return {
  background: 
    linear-gradient(180deg, #ffd580 0%, #ffb347 40%, #f08080 70%, #4a6741 100%),
    radial-gradient(ellipse at 50% 70%, #ffa500 0%, transparent 60%);
}
.scn-philadelphia-return .harbor-sky { position:absolute; inset:0; background: linear-gradient(180deg, #ffcc80 0%, #ff8c00 50%, #8b4513 100%); animation: phr-sky-change 20s ease-in-out infinite; }
.scn-philadelphia-return .sunset-glow { position:absolute; top:0; left:20%; width:60%; height:40%; background: radial-gradient(ellipse at 50% 60%, #ffeb3b 0%, #ff8c00 40%, transparent 70%); animation: phr-glow 5s ease-in-out infinite alternate; }
.scn-philadelphia-return .ship-hull { position:absolute; bottom:20%; left:20%; width:50%; height:15%; background: linear-gradient(180deg, #5c4033 0%, #3e2723 100%); border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%; box-shadow: inset 0 -4px 8px rgba(0,0,0,0.5); animation: phr-ship-bob 4s ease-in-out infinite; }
.scn-philadelphia-return .ship-mast { position:absolute; bottom:35%; left:35%; width:6px; height:30%; background: #4a3a2a; transform-origin: bottom center; animation: phr-mast-sway 3s ease-in-out infinite; }
.scn-philadelphia-return .sail { position:absolute; bottom:40%; left:33%; width:20%; height:20%; background: linear-gradient(135deg, #f5deb3 0%, #d2b48c 100%); clip-path: polygon(0 0, 100% 0, 100% 100%, 0 80%); animation: phr-sail-billow 6s ease-in-out infinite; }
.scn-philadelphia-return .water-front { position:absolute; bottom:5%; left:0; right:0; height:15%; background: linear-gradient(180deg, #5b8c5a 0%, #3b6f4a 100%); border-radius: 40% 40% 0 0 / 20% 20% 0 0; animation: phr-water1 8s ease-in-out infinite; }
.scn-philadelphia-return .water-back { position:absolute; bottom:0; left:0; right:0; height:10%; background: linear-gradient(180deg, #3b6f4a 0%, #2a5a3a 100%); animation: phr-water2 10s ease-in-out infinite; animation-delay: -3s; }
.scn-philadelphia-return .seagull-a { position:absolute; top:15%; left:10%; width:12px; height:8px; background: #fff; clip-path: polygon(0 50%, 50% 0, 100% 50%, 50% 100%); animation: phr-seagull 12s linear infinite; }
.scn-philadelphia-return .seagull-b { position:absolute; top:25%; right:15%; width:10px; height:6px; background: #fff; clip-path: polygon(0 50%, 50% 0, 100% 50%, 50% 100%); animation: phr-seagull-reverse 15s linear infinite; }

@keyframes phr-sky-change { 0%,100% { opacity:0.8; } 50% { opacity:1; } }
@keyframes phr-glow { 0% { transform: scale(1); opacity:0.7; } 100% { transform: scale(1.1); opacity:1; } }
@keyframes phr-ship-bob { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(1deg); } }
@keyframes phr-mast-sway { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(2deg); } }
@keyframes phr-sail-billow { 0%,100% { transform: scaleX(1); } 50% { transform: scaleX(1.15); } }
@keyframes phr-water1 { 0%,100% { transform: translateX(0); } 50% { transform: translateX(5px); } }
@keyframes phr-water2 { 0%,100% { transform: translateX(0); } 50% { transform: translateX(-5px); } }
@keyframes phr-seagull { 0% { transform: translateX(-20px); } 100% { transform: translateX(110vw); } }
@keyframes phr-seagull-reverse { 0% { transform: translateX(0) scaleX(-1); } 100% { transform: translateX(-110vw) scaleX(-1); } }

.scn-quaker-address {
  background: 
    linear-gradient(180deg, #c8a882 0%, #8b6f4e 40%, #6b4f3a 100%),
    radial-gradient(ellipse at 50% 30%, #d4b896 0%, transparent 70%);
}
.scn-quaker-address .meeting-room { position:absolute; inset:0; background: linear-gradient(135deg, #b89a78 0%, #8b6f4e 100%); animation: qad-room-breathe 12s ease-in-out infinite; }
.scn-quaker-address .back-wall { position:absolute; top:5%; left:10%; right:10%; height:60%; background: linear-gradient(135deg, #a08060 0%, #7a5c3a 100%); border-radius: 10px; box-shadow: inset 0 0 30px rgba(0,0,0,0.3); }
.scn-quaker-address .window { position:absolute; top:20%; left:20%; width:20%; height:30%; background: linear-gradient(180deg, #ffe0b0 0%, #f0c080 100%); border: 4px solid #5c4033; border-radius: 4px; box-shadow: inset 0 0 20px #ffd700, 0 0 30px rgba(255,215,0,0.4); animation: qad-window-glow 4s ease-in-out infinite alternate; }
.scn-quaker-address .pulpit { position:absolute; bottom:15%; left:25%; width:12%; height:25%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%); border-radius: 10% 10% 0 0; transform-origin: bottom center; animation: qad-pulpit-solid 1s none; }
.scn-quaker-address .speaker { position:absolute; bottom:22%; left:27%; width:14px; height:45px; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: qad-speaker-gesture 7s ease-in-out infinite; }
.scn-quaker-address .listener-a { position:absolute; bottom:12%; left:10%; width:13px; height:38px; background: linear-gradient(180deg, #3a3a3a 0%, #2a2a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: qad-listener-nod 5s ease-in-out infinite; }
.scn-quaker-address .listener-b { position:absolute; bottom:14%; right:15%; width:13px; height:38px; background: linear-gradient(180deg, #3a3a3a 0%, #2a2a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: qad-listener-nod 5s ease-in-out infinite; animation-delay: -2.5s; }
.scn-quaker-address .light-beam { position:absolute; top:20%; left:20%; width:20%; height:50%; background: linear-gradient(180deg, rgba(255,255,200,0.2) 0%, transparent 100%); clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%); animation: qad-beam-sweep 12s ease-in-out infinite alternate; }

@keyframes qad-room-breathe { 0%,100% { opacity:0.9; } 50% { opacity:1; } }
@keyframes qad-window-glow { 0% { box-shadow: inset 0 0 10px #ffd700, 0 0 20px rgba(255,215,0,0.3); } 100% { box-shadow: inset 0 0 30px #ffd700, 0 0 50px rgba(255,215,0,0.6); } }
@keyframes qad-speaker-gesture { 0%,100% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(5deg) translateY(-2px); } }
@keyframes qad-listener-nod { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(2deg); } }
@keyframes qad-beam-sweep { 0% { transform: translateX(0) skewX(0deg); } 100% { transform: translateX(20px) skewX(5deg); } }

/* useful-to-master */
.scn-useful-to-master {
  background:
    linear-gradient(180deg, #f2d5a0 0%, #e8b870 40%, #c68748 100%),
    radial-gradient(ellipse at 70% 20%, #ffddaa 0%, transparent 70%);
}
.scn-useful-to-master .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(135deg, #dbb585 0%, #c48b5a 100%);
  animation: um-wall 12s ease-in-out infinite alternate;
}
.scn-useful-to-master .floor {
  position: absolute; inset: 65% 0 0 0;
  background: linear-gradient(180deg, #8b5a2a 0%, #5e3a1a 100%);
  border-radius: 30% 0 0 0 / 20% 0 0 0;
}
.scn-useful-to-master .window {
  position: absolute; top: 8%; right: 12%; width: 22%; height: 45%;
  background: radial-gradient(ellipse at center, #ffebb0 0%, #ffe080 40%, #e8c050 100%);
  box-shadow: 0 0 60px 30px rgba(255,235,176,0.4);
  border-radius: 8% 8% 4% 4%;
  animation: um-sunbeam 8s ease-in-out infinite alternate;
}
.scn-useful-to-master .master {
  position: absolute; bottom: 32%; left: 18%; width: 80px; height: 110px;
  background: linear-gradient(135deg, #4a3520 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: inset -4px 0 8px rgba(0,0,0,0.3);
}
.scn-useful-to-master .chair {
  position: absolute; bottom: 28%; left: 15%; width: 50px; height: 70px;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2210 100%);
  border-radius: 8% 8% 20% 20%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.5);
}
.scn-useful-to-master .slave {
  position: absolute; bottom: 30%; left: 32%; width: 50px; height: 100px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e05 100%);
  border-radius: 40% 40% 30% 30% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: um-slave 6s ease-in-out infinite;
}
.scn-useful-to-master .razor {
  position: absolute; bottom: 55%; left: 36%; width: 14px; height: 6px;
  background: #d4c8b0;
  border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(212,200,176,0.6);
  animation: um-razor 2s ease-in-out infinite;
}
.scn-useful-to-master .sunbeam {
  position: absolute; top: 0; right: 8%; width: 30%; height: 80%;
  background: linear-gradient(135deg, transparent 0%, rgba(255,235,176,0.15) 40%, transparent 80%);
  filter: blur(20px);
  animation: um-beam 12s ease-in-out infinite alternate;
}
@keyframes um-wall { 0% { opacity:0.85; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes um-sunbeam { 0% { box-shadow:0 0 40px 20px rgba(255,235,176,0.3); } 50% { box-shadow:0 0 80px 40px rgba(255,235,176,0.6); } 100% { box-shadow:0 0 50px 25px rgba(255,235,176,0.4); } }
@keyframes um-slave { 0%,100% { transform: translateX(0) translateY(0) rotate(0deg); } 25% { transform: translateX(2px) translateY(-1px) rotate(1deg); } 50% { transform: translateX(0) translateY(0) rotate(-1deg); } 75% { transform: translateX(-2px) translateY(-1px) rotate(1deg); } }
@keyframes um-razor { 0%,100% { transform: translate(0,0) rotate(-5deg); } 50% { transform: translate(2px,-2px) rotate(5deg); } }
@keyframes um-beam { 0% { transform: scaleX(0.9) translateY(0); opacity:0.6; } 50% { transform: scaleX(1.1) translateY(-5px); opacity:1; } 100% { transform: scaleX(0.95) translateY(2px); opacity:0.7; } }

/* refusal-to-sell */
.scn-refusal-to-sell {
  background:
    linear-gradient(180deg, #f7e5c0 0%, #d9b978 50%, #a57a4a 100%),
    radial-gradient(ellipse at 40% 60%, #fff3d0 0%, transparent 60%);
}
.scn-refusal-to-sell .ground {
  position: absolute; inset: 65% 0 0 0;
  background: linear-gradient(180deg, #8a6a3a 0%, #5a4020 100%);
  border-radius: 40% 30% 0 0;
}
.scn-refusal-to-sell .sky {
  position: absolute; inset: 0 0 65% 0;
  background: linear-gradient(180deg, #c1d4e8 0%, #e0c8a0 100%);
  animation: rs-sky 15s ease-in-out infinite alternate;
}
.scn-refusal-to-sell .counter {
  position: absolute; bottom: 35%; left: 20%; width: 120px; height: 30px;
  background: linear-gradient(180deg, #6a4a2a 0%, #402810 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.4);
}
.scn-refusal-to-sell .merchant {
  position: absolute; bottom: 30%; left: 15%; width: 60px; height: 90px;
  background: linear-gradient(135deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 55% 55% 35% 35%;
  transform: rotate(5deg);
  animation: rs-merchant 8s ease-in-out infinite;
}
.scn-refusal-to-sell .coinsack {
  position: absolute; bottom: 33%; left: 22%; width: 30px; height: 20px;
  background: radial-gradient(ellipse, #b89870 0%, #8a6a40 100%);
  border-radius: 50%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: rs-sack 5s ease-in-out infinite alternate;
}
.scn-refusal-to-sell .master-refuse {
  position: absolute; bottom: 30%; right: 20%; width: 70px; height: 100px;
  background: linear-gradient(180deg, #3a2510 0%, #1a0e05 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rs-master 6s ease-in-out infinite;
}
.scn-refusal-to-sell .slave-behind {
  position: absolute; bottom: 28%; right: 10%; width: 45px; height: 85px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  opacity: 0.8;
  animation: rs-slave 10s ease-in-out infinite;
}
.scn-refusal-to-sell .shadow {
  position: absolute; bottom: 30%; left: 10%; width: 140px; height: 20px;
  background: rgba(0,0,0,0.2);
  border-radius: 50%;
  filter: blur(10px);
  animation: rs-shad 7s ease-in-out infinite alternate;
}
@keyframes rs-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes rs-merchant { 0%,100% { transform: rotate(5deg) translateX(0); } 50% { transform: rotate(8deg) translateX(4px); } }
@keyframes rs-sack { 0% { transform: translateY(0) scale(1); } 100% { transform: translateY(-3px) scale(1.05); } }
@keyframes rs-master { 0%,100% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(-3px) rotate(2deg); } }
@keyframes rs-slave { 0%,100% { transform: translateY(0) scale(0.98); } 50% { transform: translateY(-2px) scale(1); } }
@keyframes rs-shad { 0% { transform: scaleX(1); opacity:0.15; } 100% { transform: scaleX(1.2); opacity:0.25; } }

/* cruelties-witnessed */
.scn-cruelties-witnessed {
  background:
    linear-gradient(180deg, #8fa8b8 0%, #506070 40%, #2a3038 100%),
    radial-gradient(ellipse at 30% 20%, #c0d0e0 0%, transparent 60%);
}
.scn-cruelties-witnessed .deck {
  position: absolute; inset: 60% 0 0 0;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 20% 10% 0 0;
}
.scn-cruelties-witnessed .railing {
  position: absolute; top: 55%; left: 0; right: 0; height: 8px;
  background: linear-gradient(90deg, #3a2a1a 0%, #5a4a3a 50%, #3a2a1a 100%);
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-cruelties-witnessed .pole {
  position: absolute; bottom: 40%; left: 60%; width: 10px; height: 80px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  box-shadow: 2px 0 6px rgba(0,0,0,0.4);
  animation: cw-pole 10s ease-in-out infinite alternate;
}
.scn-cruelties-witnessed .slave-chained {
  position: absolute; bottom: 30%; left: 55%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  transform: rotate(-10deg);
  animation: cw-slave 5s ease-in-out infinite;
}
.scn-cruelties-witnessed .overseer {
  position: absolute; bottom: 30%; right: 20%; width: 50px; height: 90px;
  background: linear-gradient(135deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 40% 40%;
  transform-origin: bottom center;
  animation: cw-overseer 7s ease-in-out infinite;
}
.scn-cruelties-witnessed .ship-side {
  position: absolute; bottom: 30%; left: 0; width: 30%; height: 50%;
  background: linear-gradient(90deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 0 20% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.5);
}
.scn-cruelties-witnessed .sun {
  position: absolute; top: 5%; left: 70%; width: 80px; height: 80px;
  background: radial-gradient(circle, #fff5e0 0%, #ffd080 40%, transparent 100%);
  box-shadow: 0 0 100px 40px rgba(255,208,128,0.5);
  border-radius: 50%;
  animation: cw-sun 20s ease-in-out infinite alternate;
}
@keyframes cw-pole { 0% { transform: rotate(0deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-1deg); } }
@keyframes cw-slave { 0%,100% { transform: rotate(-10deg) translateY(0); } 25% { transform: rotate(-8deg) translateY(-2px); } 50% { transform: rotate(-12deg) translateY(0); } 75% { transform: rotate(-9deg) translateY(-1px); } }
@keyframes cw-overseer { 0%,100% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(5px) rotate(3deg); } }
@keyframes cw-sun { 0% { transform: scale(0.95) translateY(0); opacity:0.8; } 50% { transform: scale(1.05) translateY(-5px); opacity:1; } 100% { transform: scale(0.98) translateY(2px); opacity:0.85; } }

/* montserrat-torture */
.scn-montserrat-torture {
  background:
    linear-gradient(180deg, #9a8060 0%, #5a4a3a 50%, #2a1a0a 100%),
    radial-gradient(ellipse at 50% 30%, #d4c090 0%, transparent 70%);
}
.scn-montserrat-torture .ground-dirt {
  position: absolute; inset: 50% 0 0 0;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 30% 20% 0 0;
}
.scn-montserrat-torture .stake {
  position: absolute; bottom: 30%; left: 45%; width: 12px; height: 90px;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2210 100%);
  border-radius: 4px;
  box-shadow: 2px 0 8px rgba(0,0,0,0.5);
  animation: mt-stake 8s ease-in-out infinite alternate;
}
.scn-montserrat-torture .figure-staked {
  position: absolute; bottom: 18%; left: 40%; width: 60px; height: 80px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e05 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 35% 35%;
  transform: rotate(15deg) translateX(-10px);
  animation: mt-fig 5s ease-in-out infinite;
}
.scn-montserrat-torture .rope-a {
  position: absolute; bottom: 30%; left: 38%; width: 20px; height: 4px;
  background: #8a6a40;
  border-radius: 2px;
  transform: rotate(-30deg);
  animation: mt-rope-a 4s ease-in-out infinite alternate;
}
.scn-montserrat-torture .rope-b {
  position: absolute; bottom: 30%; left: 52%; width: 20px; height: 4px;
  background: #8a6a40;
  border-radius: 2px;
  transform: rotate(30deg);
  animation: mt-rope-b 4s ease-in-out infinite alternate-reverse;
}
.scn-montserrat-torture .shadow-fig {
  position: absolute; bottom: 15%; left: 38%; width: 70px; height: 20px;
  background: rgba(0,0,0,0.3);
  border-radius: 50%;
  filter: blur(8px);
  animation: mt-shadow 6s ease-in-out infinite alternate;
}
.scn-montserrat-torture .sun-harsh {
  position: absolute; top: 5%; left: 60%; width: 100px; height: 100px;
  background: radial-gradient(circle, #ffe0a0 0%, #ffc060 30%, #d08040 60%, transparent 100%);
  box-shadow: 0 0 80px 30px rgba(255,192,96,0.6);
  border-radius: 50%;
  animation: mt-sun 20s ease-in-out infinite alternate;
}
@keyframes mt-stake { 0% { transform: rotate(-1deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(0deg); } }
@keyframes mt-fig { 0%,100% { transform: rotate(15deg) translateX(-10px) translateY(0); } 25% { transform: rotate(14deg) translateX(-8px) translateY(-2px); } 50% { transform: rotate(16deg) translateX(-12px) translateY(0); } 75% { transform: rotate(13deg) translateX(-9px) translateY(-2px); } }
@keyframes mt-rope-a { 0% { transform: rotate(-30deg) scaleX(1); } 100% { transform: rotate(-25deg) scaleX(1.1); } }
@keyframes mt-rope-b { 0% { transform: rotate(30deg) scaleX(1); } 100% { transform: rotate(25deg) scaleX(1.1); } }
@keyframes mt-shadow { 0% { transform: scaleX(1); opacity:0.2; } 100% { transform: scaleX(1.3); opacity:0.35; } }
@keyframes mt-sun { 0% { transform: scale(0.9) translateY(0); opacity:0.7; } 50% { transform: scale(1.05) translateY(-4px); opacity:1; } 100% { transform: scale(0.95) translateY(2px); opacity:0.8; } }

.scn-tinmah-widow {
  background: linear-gradient(180deg, #f5e6d3 0%, #d4c4a8 30%, #b89b7a 100%),
              radial-gradient(ellipse at 70% 20%, #ffe0b0 0%, transparent 60%);
}
.scn-tinmah-widow .wall     { position:absolute; inset:0 0 30% 0; background: linear-gradient(90deg, #e8d5b8 0%, #d4be9e 50%, #e0c8a6 100%); }
.scn-tinmah-widow .floor    { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #b89b7a 0%, #8a704e 100%); }
.scn-tinmah-widow .window   { position:absolute; top:20%; left:15%; width:40%; height:45%; background: linear-gradient(180deg, #ffeacc 0%, #f0d4a0 100%); border:8px solid #8a6e4e; border-radius:4px; box-shadow:inset 0 0 40px rgba(255,200,100,0.5); }
.scn-tinmah-widow .sunbeam  { position:absolute; top:10%; left:18%; width:20%; height:60%; background: linear-gradient(180deg, rgba(255,220,150,0.6) 0%, transparent 100%); transform:skewX(-10deg); animation: tin-wi-beam 8s ease-in-out infinite alternate; }
.scn-tinmah-widow .mistress { position:absolute; bottom:30%; left:45%; width:30px; height:60px; background: linear-gradient(180deg, #d4a878 0%, #b8804e 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform:rotate(-5deg); animation: tin-wi-woman 6s ease-in-out infinite; }
.scn-tinmah-widow .son      { position:absolute; bottom:30%; left:60%; width:22px; height:42px; background: linear-gradient(180deg, #e0b890 0%, #c09060 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: tin-wi-child 7s ease-in-out infinite; }
.scn-tinmah-widow .kneeling { position:absolute; bottom:30%; left:30%; width:28px; height:40px; background: linear-gradient(180deg, #6a5040 0%, #4a3020 100%); border-radius:50% 50% 30% 30% / 60% 60% 30% 30%; transform:scaleX(-1); animation: tin-wi-kneel 5s ease-in-out infinite; }
.scn-tinmah-widow .plate    { position:absolute; bottom:42%; left:52%; width:16px; height:8px; background: radial-gradient(circle, #f0d4a0 0%, #c8a070 100%); border-radius:50%; box-shadow:0 2px 4px rgba(0,0,0,0.2); animation: tin-wi-plate 10s ease-in-out infinite; }
@keyframes tin-wi-beam   { 0% { opacity:0.4; transform:skewX(-10deg) scaleY(1); } 50% { opacity:0.8; transform:skewX(-5deg) scaleY(1.2); } 100% { opacity:0.6; transform:skewX(-15deg) scaleY(0.9); } }
@keyframes tin-wi-woman  { 0% { transform:rotate(-5deg) translateY(0); } 50% { transform:rotate(0deg) translateY(-2px); } 100% { transform:rotate(-5deg) translateY(0); } }
@keyframes tin-wi-child  { 0% { transform:rotate(2deg) translateY(0); } 50% { transform:rotate(-1deg) translateY(-1px); } 100% { transform:rotate(2deg) translateY(0); } }
@keyframes tin-wi-kneel  { 0% { transform:scaleX(-1) translateY(0); } 50% { transform:scaleX(-1) translateY(-2px); } 100% { transform:scaleX(-1) translateY(0); } }
@keyframes tin-wi-plate  { 0% { transform:translateY(0) rotate(0deg); } 50% { transform:translateY(-1px) rotate(2deg); } 100% { transform:translateY(0) rotate(0deg); } }

.scn-tinmah-departure {
  background: linear-gradient(180deg, #2a2535 0%, #1a1a2a 40%, #3a3040 100%),
              radial-gradient(ellipse at 50% 100%, #4a3a4a 0%, transparent 60%);
}
.scn-tinmah-departure .darkness        { position:absolute; inset:0; background:linear-gradient(180deg, transparent 0%, #0a0a14 100%); opacity:0.6; animation: tin-de-dark 20s ease-in-out infinite alternate; }
.scn-tinmah-departure .dawn-horizon    { position:absolute; bottom:35%; left:0; right:0; height:8%; background:linear-gradient(90deg, #4a4a5a 0%, #b09880 30%, #d4b890 50%, #b09880 70%, #4a4a5a 100%); filter:blur(3px); animation: tin-de-dawn 15s ease-in-out infinite alternate; }
.scn-tinmah-departure .sleeping-master { position:absolute; bottom:25%; left:20%; width:50px; height:30px; background:linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%); border-radius:50% 50% 20% 20%; transform:rotate(-10deg); animation: tin-de-sleep 12s ease-in-out infinite; }
.scn-tinmah-departure .door            { position:absolute; left:50%; bottom:20%; width:40px; height:80px; background:linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); border-radius:3px; box-shadow:inset 0 0 10px #0a0a0a; animation: tin-de-door 25s ease-in-out infinite; }
.scn-tinmah-departure .guard           { position:absolute; bottom:25%; left:55%; width:24px; height:50px; background:linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius:40% 40% 30% 30% / 60% 60% 30% 30%; transform:rotate(5deg); animation: tin-de-guard 8s ease-in-out infinite; }
.scn-tinmah-departure .figure-leaving  { position:absolute; bottom:25%; left:70%; width:22px; height:48px; background:linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 100%); border-radius:40% 40% 30% 30% / 60% 60% 30% 30%; transform:rotate(3deg); animation: tin-de-leave 6s ease-in-out infinite; }
.scn-tinmah-departure .shadow          { position:absolute; bottom:25%; left:60%; width:40px; height:10px; background:radial-gradient(ellipse, #0a0a1a 0%, transparent 100%); border-radius:50%; opacity:0.4; animation: tin-de-shadow 9s ease-in-out infinite; }
@keyframes tin-de-dark  { 0% { opacity:0.5; } 50% { opacity:0.8; } 100% { opacity:0.4; } }
@keyframes tin-de-dawn  { 0% { background-position:0 0; } 50% { background-position:20px 0; } 100% { background-position:0 0; } }
@keyframes tin-de-sleep { 0%,100% { transform:rotate(-10deg) scaleY(1); } 50% { transform:rotate(-8deg) scaleY(1.05); } }
@keyframes tin-de-door  { 0% { transform:rotateY(0); } 50% { transform:rotateY(20deg); } 100% { transform:rotateY(0); } }
@keyframes tin-de-guard { 0% { transform:rotate(5deg) translateX(0); } 50% { transform:rotate(2deg) translateX(4px); } 100% { transform:rotate(5deg) translateX(0); } }
@keyframes tin-de-leave { 0% { transform:rotate(3deg) translateX(0); } 25% { transform:rotate(5deg) translateX(8px); } 50% { transform:rotate(2deg) translateX(16px); } 75% { transform:rotate(4deg) translateX(24px); } 100% { transform:rotate(3deg) translateX(32px); } }
@keyframes tin-de-shadow { 0% { transform:scaleX(1) translateX(0); opacity:0.3; } 50% { transform:scaleX(1.3) translateX(20px); opacity:0.5; } 100% { transform:scaleX(1) translateX(0); opacity:0.3; } }

.scn-river-canoes {
  background: linear-gradient(180deg, #7ab8e0 0%, #4a8ab0 40%, #3a6a8a 100%),
              radial-gradient(ellipse at 50% 0%, #ffd080 0%, transparent 50%);
}
.scn-river-canoes .sky          { position:absolute; inset:0 0 50% 0; background:linear-gradient(180deg, #8ac8e8 0%, #5a9ac0 100%); animation: riv-ca-sky 30s ease-in-out infinite alternate; }
.scn-river-canoes .sun          { position:absolute; top:8%; left:25%; width:50px; height:50px; background:radial-gradient(circle, #ffe0a0 0%, #d0a040 50%, transparent 100%); border-radius:50%; animation: riv-ca-sun 20s ease-in-out infinite alternate; }
.scn-river-canoes .river        { position:absolute; bottom:0; left:0; right:0; height:50%; background:linear-gradient(180deg, #2a6a8a 0%, #1a4a6a 50%, #2a5a7a 100%); animation: riv-ca-river 12s ease-in-out infinite; }
.scn-river-canoes .far-bank     { position:absolute; bottom:45%; left:0; right:0; height:10%; background:linear-gradient(180deg, #4a6a4a 0%, #2a4a2a 100%); border-radius:30% 70% 0 0 / 80% 60% 0 0; }
.scn-river-canoes .canoe-fore   { position:absolute; bottom:20%; left:20%; width:80px; height:14px; background:linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%); border-radius:40% 40% 10% 10%; transform:rotate(-5deg); animation: riv-ca-canoe-f 4s ease-in-out infinite; }
.scn-river-canoes .canoe-mid    { position:absolute; bottom:35%; left:50%; width:60px; height:10px; background:linear-gradient(180deg, #5a3a1a 0%, #2a1a0a 100%); border-radius:40% 40% 10% 10%; transform:rotate(3deg); opacity:0.7; animation: riv-ca-canoe-m 6s ease-in-out infinite; }
.scn-river-canoes .paddler-fore { position:absolute; bottom:18%; left:30%; width:16px; height:30px; background:linear-gradient(180deg, #8a6a4a 0%, #4a2a0a 100%); border-radius:50% 50% 30% 30% / 60% 60% 30% 30%; transform:rotate(-10deg); animation: riv-ca-paddle-f 3s ease-in-out infinite; }
.scn-river-canoes .paddler-mid  { position:absolute; bottom:33%; left:55%; width:14px; height:26px; background:linear-gradient(180deg, #7a5a3a 0%, #3a1a0a 100%); border-radius:50% 50% 30% 30% / 60% 60% 30% 30%; transform:rotate(5deg); opacity:0.7; animation: riv-ca-paddle-m 5s ease-in-out infinite; }
@keyframes riv-ca-sky       { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes riv-ca-sun       { 0% { transform:translateY(0) scale(1); } 50% { transform:translateY(-4px) scale(1.1); } 100% { transform:translateY(0) scale(1); } }
@keyframes riv-ca-river     { 0% { background-position:0 0; } 50% { background-position:-20px 0; } 100% { background-position:0 0; } }
@keyframes riv-ca-canoe-f   { 0% { transform:rotate(-5deg) translateY(0); } 50% { transform:rotate(-3deg) translateY(-3px); } 100% { transform:rotate(-5deg) translateY(0); } }
@keyframes riv-ca-canoe-m   { 0% { transform:rotate(3deg) translateY(0); } 50% { transform:rotate(5deg) translateY(-2px); } 100% { transform:rotate(3deg) translateY(0); } }
@keyframes riv-ca-paddle-f  { 0% { transform:rotate(-10deg) translateY(0); } 25% { transform:rotate(-20deg) translateY(-2px); } 50% { transform:rotate(-10deg) translateY(0); } 75% { transform:rotate(0deg) translateY(-2px); } 100% { transform:rotate(-10deg) translateY(0); } }
@keyframes riv-ca-paddle-m  { 0% { transform:rotate(5deg) translateY(0); } 25% { transform:rotate(15deg) translateY(-1px); } 50% { transform:rotate(5deg) translateY(0); } 75% { transform:rotate(-5deg) translateY(-1px); } 100% { transform:rotate(5deg) translateY(0); } }

.scn-slave-ship-arrival {
  background: linear-gradient(180deg, #c8d8e8 0%, #8ab0c8 30%, #4a7a9a 100%),
              radial-gradient(ellipse at 50% 0%, #ffecb0 0%, transparent 40%);
}
.scn-slave-ship-arrival .sky          { position:absolute; inset:0 0 55% 0; background:linear-gradient(180deg, #d0e0f0 0%, #90b8d0 100%); animation: sla-sh-sky 25s ease-in-out infinite alternate; }
.scn-slave-ship-arrival .sea          { position:absolute; bottom:0; left:0; right:0; height:55%; background:linear-gradient(180deg, #3a6a8a 0%, #1a4a6a 50%, #2a5a7a 100%); animation: sla-sh-sea 18s ease-in-out infinite; }
.scn-slave-ship-arrival .shore        { position:absolute; bottom:20%; left:0; width:30%; height:15%; background:linear-gradient(180deg, #d4b890 0%, #a08060 100%); border-radius:0 60% 0 0 / 0 80% 0 0; }
.scn-slave-ship-arrival .ship         { position:absolute; bottom:25%; left:40%; width:120px; height:50px; background:linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:10% 10% 20% 20% / 30% 30% 40% 40%; transform:rotate(-2deg); animation: sla-sh-ship 8s ease-in-out infinite; }
.scn-slave-ship-arrival .sails        { position:absolute; bottom:40%; left:50%; width:50px; height:60px; background:linear-gradient(180deg, #e8dcc8 0%, #c8b8a0 100%); border-radius:3px; transform:skewY(5deg); animation: sla-sh-sails 12s ease-in-out infinite; }
.scn-slave-ship-arrival .figure-shore { position:absolute; bottom:20%; left:15%; width:18px; height:36px; background:linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: sla-sh-figure 5s ease-in-out infinite; }
.scn-slave-ship-arrival .wave-1       { position:absolute; bottom:10%; left:0; right:0; height:12%; background:radial-gradient(ellipse at 30% 50%, #5a8aaa 0%, transparent 60%); filter:blur(2px); animation: sla-sh-wave1 6s ease-in-out infinite; }
.scn-slave-ship-arrival .wave-2       { position:absolute; bottom:5%; left:0; right:0; height:10%; background:radial-gradient(ellipse at 60% 50%, #4a7a9a 0%, transparent 50%); filter:blur(3px); animation: sla-sh-wave2 8s ease-in-out infinite reverse; }
@keyframes sla-sh-sky    { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes sla-sh-sea    { 0% { background-position:0 0; } 50% { background-position:30px 0; } 100% { background-position:0 0; } }
@keyframes sla-sh-ship   { 0% { transform:rotate(-2deg) translateY(0); } 50% { transform:rotate(0deg) translateY(-3px); } 100% { transform:rotate(-2deg) translateY(0); } }
@keyframes sla-sh-sails  { 0% { transform:skewY(5deg) scaleX(1); } 50% { transform:skewY(8deg) scaleX(1.1); } 100% { transform:skewY(5deg) scaleX(1); } }
@keyframes sla-sh-figure { 0% { transform:translateX(0) scaleY(1); } 25% { transform:translateX(4px) scaleY(1.03); } 50% { transform:translateX(0) scaleY(1); } 75% { transform:translateX(-4px) scaleY(1.03); } 100% { transform:translateX(0) scaleY(1); } }
@keyframes sla-sh-wave1  { 0% { transform:translateX(0); } 50% { transform:translateX(-20px); } 100% { transform:translateX(0); } }
@keyframes sla-sh-wave2  { 0% { transform:translateX(0); } 50% { transform:translateX(15px); } 100% { transform:translateX(0); } }

.scn-doctor-perkins-attack {
  background: linear-gradient(180deg, #fce4b8 0%, #e8c68a 40%, #b8a080 100%), radial-gradient(ellipse at 50% 0%, #fff6d0 0%, transparent 60%);
}
.scn-doctor-perkins-attack .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #d4c4a8 0%, #f0dbb0 60%, #ffe8c0 100%);
  animation: dtk-glare 8s ease-in-out infinite alternate;
}
.scn-doctor-perkins-attack .sun {
  position: absolute; top: 8%; left: 70%; width: 50px; height: 50px;
  background: radial-gradient(circle, #fffbe0 0%, #ffe088 50%, #d4a060 100%);
  border-radius: 50%; box-shadow: 0 0 40px 15px #ffe088;
  animation: dtk-sunpulse 6s ease-in-out infinite;
}
.scn-doctor-perkins-attack .ground {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #4a4028 0%, #2a1e10 100%);
  border-radius: 30% 70% 0 0 / 40% 60% 0 0;
  animation: dtk-ground 12s ease-in-out infinite alternate;
}
.scn-doctor-perkins-attack .bars {
  position: absolute; bottom: 10%; left: 10%; width: 4px; height: 60%;
  background: #1a1008; box-shadow: 30px 0 #1a1008, 60px 0 #1a1008, 90px 0 #1a1008, 120px 0 #1a1008;
  opacity: 0.4; animation: dtk-bars 15s linear infinite;
}
.scn-doctor-perkins-attack .attacker {
  position: absolute; bottom: 25%; right: 25%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #1a160e 0%, #0e0a04 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dtk-attack 3s ease-in-out infinite alternate;
}
.scn-doctor-perkins-attack .attacker::after {
  content: ''; position: absolute; top: -10px; left: 50%; transform: translateX(-50%);
  width: 12px; height: 16px; background: #2a1e10;
  border-radius: 50% 50% 0 0;
}
.scn-doctor-perkins-attack .victim {
  position: absolute; bottom: 20%; left: 30%; width: 50px; height: 20px;
  background: #2a1e10; border-radius: 20% 80% 50% 50% / 30% 70% 30% 70%;
  transform: rotate(-10deg); animation: dtk-fall 4s ease-in-out infinite;
}
.scn-doctor-perkins-attack .shadow-overlay {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 30% 50%, transparent 40%, rgba(0,0,0,0.6) 100%);
  animation: dtk-shadow 5s ease-in-out infinite alternate;
}
@keyframes dtk-glare { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes dtk-sunpulse { 0% { transform: scale(1); } 50% { transform: scale(1.1); } 100% { transform: scale(0.95); } }
@keyframes dtk-ground { 0% { transform: translateY(0); } 50% { transform: translateY(3px); } 100% { transform: translateY(-2px); } }
@keyframes dtk-bars { 0% { opacity: 0.3; } 50% { opacity: 0.6; } 100% { opacity: 0.2; } }
@keyframes dtk-attack { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-6px) rotate(3deg); } 100% { transform: translateY(2px) rotate(-1deg); } }
@keyframes dtk-fall { 0% { transform: rotate(-10deg) translateX(0); } 50% { transform: rotate(-15deg) translateX(4px); } 100% { transform: rotate(-5deg) translateX(-2px); } }
@keyframes dtk-shadow { 0% { opacity: 0.6; } 50% { opacity: 0.8; } 100% { opacity: 0.5; } }

.scn-recovery {
  background: linear-gradient(180deg, #4a3020 0%, #3a2210 50%, #2a1a0a 100%), radial-gradient(ellipse at 50% 70%, #5a4030 0%, transparent 70%);
}
.scn-recovery .bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(60,40,20,0.6) 0%, transparent 100%);
  animation: rec-bg 12s ease-in-out infinite alternate;
}
.scn-recovery .bed {
  position: absolute; bottom: 15%; left: 30%; width: 120px; height: 50px;
  background: linear-gradient(180deg, #6a5040 0%, #3a2818 100%);
  border-radius: 10% 10% 5% 5%; box-shadow: 0 8px 20px rgba(0,0,0,0.6);
}
.scn-recovery .bed::before {
  content: ''; position: absolute; top: -20px; left: -10px; right: -10px; height: 25px;
  background: linear-gradient(180deg, #7a5a40 0%, #5a3a28 100%);
  border-radius: 20% 20% 0 0;
}
.scn-recovery .figure {
  position: absolute; bottom: 18%; left: 40%; width: 40px; height: 30px;
  background: linear-gradient(180deg, #6a5040 0%, #4a3020 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  animation: rec-breathe 4s ease-in-out infinite;
}
.scn-recovery .nurse {
  position: absolute; bottom: 20%; right: 25%; width: 30px; height: 55px;
  background: linear-gradient(180deg, #6a5040 0%, #3a2818 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: rec-bend 6s ease-in-out infinite;
}
.scn-recovery .lamp {
  position: absolute; top: 30%; left: 15%; width: 15px; height: 20px;
  background: radial-gradient(circle, #ffd480 0%, #b08030 70%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 40px 10px #ffd480, 0 0 80px 20px rgba(255,212,128,0.4);
  animation: rec-lamp 3s ease-in-out infinite alternate;
}
.scn-recovery .window {
  position: absolute; top: 15%; right: 10%; width: 60px; height: 80px;
  background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 100%);
  border: 4px solid #3a2818; border-radius: 4%;
  box-shadow: inset 0 0 20px rgba(255,255,200,0.2);
  animation: rec-window 10s ease-in-out infinite alternate;
}
@keyframes rec-bg { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes rec-breathe { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.03); } 100% { transform: scaleY(1); } }
@keyframes rec-bend { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-4px) rotate(2deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes rec-lamp { 0% { opacity: 0.9; transform: scale(1); } 50% { opacity: 1; transform: scale(1.1); } 100% { opacity: 0.85; transform: scale(0.95); } }
@keyframes rec-window { 0% { box-shadow: inset 0 0 20px rgba(255,255,200,0.1); } 50% { box-shadow: inset 0 0 40px rgba(255,255,200,0.3); } 100% { box-shadow: inset 0 0 15px rgba(255,255,200,0.15); } }

.scn-volume-two-start {
  background: linear-gradient(180deg, #1a2a3a 0%, #2a3a4a 50%, #1a2a3a 100%), radial-gradient(ellipse at 50% 20%, #3a4a5a 0%, transparent 70%);
}
.scn-volume-two-start .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #2a3a4a 0%, #3a4a5a 60%, #4a5a6a 100%);
  animation: vts-sky 15s ease-in-out infinite alternate;
}
.scn-volume-two-start .water {
  position: absolute; bottom: 10%; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%);
  border-radius: 60% 40% 0 0 / 50% 50% 0 0;
  animation: vts-water 20s ease-in-out infinite alternate;
}
.scn-volume-two-start .ship {
  position: absolute; bottom: 28%; left: 45%; width: 60px; height: 40px;
  background: linear-gradient(180deg, #3a2818 0%, #1a1008 100%);
  border-radius: 20% 20% 30% 30% / 40% 40% 30% 30%;
  transform: translateX(-50%);
  animation: vts-rock 8s ease-in-out infinite;
}
.scn-volume-two-start .sail {
  position: absolute; bottom: 40%; left: 48%; width: 25px; height: 40px;
  background: linear-gradient(180deg, #d4c4a8 0%, #a8a090 100%);
  border-radius: 0 60% 30% 0 / 20% 80% 50% 50%;
  transform: skew(-10deg);
  animation: vts-sail 6s ease-in-out infinite alternate;
}
.scn-volume-two-start .light-beam {
  position: absolute; top: 10%; left: 20%; width: 30%; height: 60%;
  background: linear-gradient(135deg, rgba(255,255,240,0.3) 0%, transparent 70%);
  clip-path: polygon(0 0, 100% 0, 70% 100%, 0 100%);
  animation: vts-light 5s ease-in-out infinite alternate;
}
.scn-volume-two-start .cloud {
  position: absolute; top: 12%; left: 60%; width: 80px; height: 16px;
  background: linear-gradient(180deg, rgba(255,255,255,0.2) 0%, transparent 100%);
  border-radius: 50%; filter: blur(4px);
  animation: vts-cloud 30s linear infinite;
}
@keyframes vts-sky { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes vts-water { 0% { transform: translateY(0); } 50% { transform: translateY(4px); } 100% { transform: translateY(-2px); } }
@keyframes vts-rock { 0% { transform: translateX(-50%) rotate(-2deg); } 50% { transform: translateX(-48%) rotate(2deg); } 100% { transform: translateX(-50%) rotate(-1deg); } }
@keyframes vts-sail { 0% { transform: skew(-10deg) scaleX(1); } 50% { transform: skew(-5deg) scaleX(1.1); } 100% { transform: skew(-12deg) scaleX(0.9); } }
@keyframes vts-light { 0% { opacity: 0.3; } 50% { opacity: 0.6; } 100% { opacity: 0.2; } }
@keyframes vts-cloud { 0% { transform: translateX(0); } 100% { transform: translateX(-120vw); } }

.scn-philadelphia-quakers {
  background: linear-gradient(180deg, #c8d4d8 0%, #a0b0b8 40%, #809090 100%), radial-gradient(ellipse at 50% 0%, #e0e8ec 0%, transparent 60%);
}
.scn-philadelphia-quakers .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #e0e8ec 0%, #b0c0c8 100%);
  animation: phq-sky 10s ease-in-out infinite alternate;
}
.scn-philadelphia-quakers .building {
  position: absolute; bottom: 18%; left: 20%; width: 40%; height: 50%;
  background: linear-gradient(180deg, #a09080 0%, #706050 100%);
  border-radius: 2% 2% 0 0; box-shadow: 0 -6px 20px rgba(0,0,0,0.3);
}
.scn-philadelphia-quakers .door {
  position: absolute; bottom: 22%; left: 37%; width: 15%; height: 30%;
  background: linear-gradient(180deg, #4a3828 0%, #2a1a0a 100%);
  border-radius: 10% 10% 0 0; box-shadow: inset 0 0 10px rgba(255,255,200,0.1);
  animation: phq-door 8s ease-in-out infinite alternate;
}
.scn-philadelphia-quakers .figure-a {
  position: absolute; bottom: 20%; left: 30%; width: 25px; height: 55px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: phq-walk 6s ease-in-out infinite;
}
.scn-philadelphia-quakers .figure-b {
  position: absolute; bottom: 22%; left: 45%; width: 25px; height: 50px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: phq-gesture 4s ease-in-out infinite alternate;
}
.scn-philadelphia-quakers .goods {
  position: absolute; bottom: 18%; right: 10%; width: 60px; height: 30px;
  background: linear-gradient(180deg, #6a5030 0%, #3a2810 100%);
  border-radius: 10%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.3);
  animation: phq-stack 12s ease-in-out infinite;
}
.scn-philadelphia-quakers .tree-shadow {
  position: absolute; bottom: 0; left: 10%; width: 30%; height: 20%;
  background: rgba(0,0,0,0.15);
  border-radius: 50% 50% 0 0; filter: blur(8px);
  animation: phq-shadow 20s ease-in-out infinite alternate;
}
@keyframes phq-sky { 0% { opacity: 0.95; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes phq-door { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(0.98); } }
@keyframes phq-walk { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(5px) rotate(2deg); } 50% { transform: translateX(10px) rotate(-1deg); } 75% { transform: translateX(5px) rotate(1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes phq-gesture { 0% { transform: rotate(-3deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-2deg); } }
@keyframes phq-stack { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes phq-shadow { 0% { opacity: 0.1; } 50% { opacity: 0.2; } 100% { opacity: 0.12; } }

/* iron-muzzle – dim interior, dark mood */
.scn-iron-muzzle {
  background:
    radial-gradient(ellipse at 50% 60%, #1f1a15 0%, #0d0a07 60%, #050302 100%),
    linear-gradient(180deg, #2a221c 0%, #140f0b 40%, #080604 100%);
}
.scn-iron-muzzle .bg-wall {
  position:absolute; inset:0; background:linear-gradient(180deg, #2e261f 0%, transparent 70%); opacity:0.6;
}
.scn-iron-muzzle .chains {
  position:absolute; top:30%; left:25%; width:60px; height:120px;
  background: repeating-linear-gradient(0deg, #5a4a3a 0px, #5a4a3a 5px, transparent 5px, transparent 8px);
  border-left:3px solid #6c5b4a; border-right:3px solid #3a2e24;
  border-radius:10%; box-shadow:inset 0 0 12px #000; animation:im-chains 18s ease-in-out infinite;
}
.scn-iron-muzzle .muzzle {
  position:absolute; top:40%; left:35%; width:70px; height:40px;
  background:linear-gradient(135deg, #8a6e5a 0%, #5a3e2e 100%);
  border-radius:50% 50% 20% 20% / 60% 60% 40% 40%;
  box-shadow:0 4px 20px rgba(0,0,0,0.8); transform:rotate(-10deg); animation:im-muzzle 8s ease-in-out infinite alternate;
}
.scn-iron-muzzle .figure-silhouette {
  position:absolute; bottom:20%; left:10%; width:70px; height:130px;
  background:radial-gradient(ellipse at 50% 30%, #2a2018 0%, #0a0705 100%);
  border-radius:40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin:bottom center; animation:im-figure 6s ease-in-out infinite;
}
.scn-iron-muzzle .lantern-glow {
  position:absolute; top:20%; right:15%; width:12px; height:12px;
  background:radial-gradient(circle, #c07a40 0%, #7a4a20 50%, transparent 100%);
  border-radius:50%; box-shadow:0 0 30px 15px rgba(192,122,64,0.4);
  animation:im-lantern 4s ease-in-out infinite alternate;
}
.scn-iron-muzzle .shadow-stripe {
  position:absolute; top:0; left:40%; width:20%; height:100%;
  background:linear-gradient(90deg, transparent 0%, rgba(0,0,0,0.3) 50%, transparent 100%);
  animation:im-stripe 12s linear infinite;
}
@keyframes im-chains {
  0% { transform:translateY(0); } 50% { transform:translateY(3px); } 100% { transform:translateY(0); }
}
@keyframes im-muzzle {
  0% { transform:rotate(-12deg) translateX(0); } 50% { transform:rotate(-8deg) translateX(2px); } 100% { transform:rotate(-10deg) translateX(0); }
}
@keyframes im-figure {
  0% { transform:translateY(0) rotate(1deg); } 50% { transform:translateY(-2px) rotate(-1deg); } 100% { transform:translateY(0) rotate(0); }
}
@keyframes im-lantern {
  0% { opacity:0.7; box-shadow:0 0 20px 8px rgba(192,122,64,0.3); } 50% { opacity:1; box-shadow:0 0 40px 20px rgba(192,122,64,0.6); } 100% { opacity:0.8; box-shadow:0 0 25px 10px rgba(192,122,64,0.4); }
}
@keyframes im-stripe {
  0% { transform:translateX(-20%); } 50% { transform:translateX(20%); } 100% { transform:translateX(-20%); }
}

/* suicide-attempts – sunlit, harsh, figures in irons on deck */
.scn-suicide-attempts {
  background:
    linear-gradient(180deg, #a7c2e0 0%, #d4e5f0 30%, #f0e8d0 60%, #c8b890 100%);
}
.scn-suicide-attempts .sky-bright {
  position:absolute; inset:0 0 60% 0; background:linear-gradient(180deg, #e0edf5 0%, #b8d0e0 100%); animation:sa-sky 30s ease-in-out infinite alternate;
}
.scn-suicide-attempts .sea-dark {
  position:absolute; bottom:0; left:0; right:0; height:55%;
  background:linear-gradient(180deg, #2c5a7a 0%, #1a3b5a 100%); box-shadow:inset 0 10px 40px rgba(0,0,0,0.4);
}
.scn-suicide-attempts .deck-planks {
  position:absolute; bottom:20%; left:10%; right:10%; height:15%;
  background:repeating-linear-gradient(90deg, #6a5840 0px, #6a5840 8px, #4a3828 8px, #4a3828 10px);
  border-radius:20% 20% 0 0; animation:sa-deck 6s ease-in-out infinite;
}
.scn-suicide-attempts .irons {
  position:absolute; bottom:32%; left:30%; width:30px; height:40px;
  background:radial-gradient(circle at 50% 20%, #8c7660 0%, #4a3828 100%);
  border-radius:20% 20% 30% 30% / 30% 30% 50% 50%;
  box-shadow:0 2px 6px rgba(0,0,0,0.6); animation:sa-irons 10s ease-in-out infinite;
}
.scn-suicide-attempts .figure-bound {
  position:absolute; bottom:18%; left:15%; width:50px; height:100px;
  background:radial-gradient(ellipse at 50% 40%, #3a3028 0%, #1a1410 100%);
  border-radius:40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin:bottom center; animation:sa-figure1 8s ease-in-out infinite;
}
.scn-suicide-attempts .figure-aghast {
  position:absolute; bottom:20%; right:20%; width:45px; height:95px;
  background:radial-gradient(ellipse at 50% 30%, #4a3e34 0%, #221a14 100%);
  border-radius:40% 40% 30% 30% / 60% 60% 40% 40%;
  transform:scaleX(-1); animation:sa-figure2 9s ease-in-out infinite alternate;
}
.scn-suicide-attempts .shackle-pair {
  position:absolute; bottom:30%; left:20%; width:20px; height:15px;
  background:linear-gradient(180deg, #7a6248 0%, #4a3828 100%);
  border-radius:30%; box-shadow:2px 2px 4px rgba(0,0,0,0.5); animation:sa-shackle 12s ease-in-out infinite;
}
@keyframes sa-sky {
  0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.85; }
}
@keyframes sa-deck {
  0% { transform:translateY(0); } 50% { transform:translateY(-2px); } 100% { transform:translateY(0); }
}
@keyframes sa-irons {
  0% { transform:rotate(0) translateY(0); } 50% { transform:rotate(5deg) translateY(-1px); } 100% { transform:rotate(0) translateY(0); }
}
@keyframes sa-figure1 {
  0% { transform:translateY(0) rotate(1deg); } 33% { transform:translateY(-3px) rotate(-2deg); } 66% { transform:translateY(1px) rotate(2deg); } 100% { transform:translateY(0) rotate(0); }
}
@keyframes sa-figure2 {
  0% { transform:scaleX(-1) translateY(0); } 50% { transform:scaleX(-1) translateY(-2px); } 100% { transform:scaleX(-1) translateY(0); }
}
@keyframes sa-shackle {
  0% { transform:translateX(0); } 50% { transform:translateX(3px); } 100% { transform:translateX(0); }
}

/* starvation-overboard – sunlit, action: figure jumping, flogging */
.scn-starvation-overboard {
  background:
    linear-gradient(180deg, #f5e8d0 0%, #d4c4a0 30%, #8ab0c0 60%, #2c5a7a 100%);
}
.scn-starvation-overboard .sky-harsh {
  position:absolute; inset:0 0 50% 0; background:linear-gradient(180deg, #ffe8c0 0%, #c8b080 100%); animation:so-sky 30s ease-in-out infinite alternate;
}
.scn-starvation-overboard .sea-waves {
  position:absolute; bottom:0; left:0; right:0; height:45%;
  background:linear-gradient(180deg, #3a7a8a 0%, #1a4050 100%); 
  animation:so-sea 8s linear infinite;
}
.scn-starvation-overboard .deck-edge {
  position:absolute; bottom:30%; left:0; right:40%; height:12%;
  background:repeating-linear-gradient(90deg, #6a5038 0px, #6a5038 10px, #4a3824 10px, #4a3824 12px);
  border-radius:0 20% 0 0; box-shadow:0 -4px 12px rgba(0,0,0,0.4);
}
.scn-starvation-overboard .sail-fore {
  position:absolute; top:10%; left:5%; width:80px; height:100px;
  background:linear-gradient(135deg, #e8dcc0 0%, #c4b498 50%, #a08870 100%);
  border-radius:30% 50% 50% 30% / 40% 40% 60% 60%;
  box-shadow:0 4px 20px rgba(0,0,0,0.3); transform:rotate(15deg); animation:so-sail 14s ease-in-out infinite alternate;
}
.scn-starvation-overboard .figure-leaping {
  position:absolute; bottom:20%; left:60%; width:35px; height:70px;
  background:radial-gradient(ellipse at 50% 40%, #2a1e14 0%, #0a0604 100%);
  border-radius:40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin:bottom center; animation:so-leap 4s ease-in-out infinite;
}
.scn-starvation-overboard .whip-crack {
  position:absolute; bottom:30%; right:20%; width:4px; height:60px;
  background:linear-gradient(180deg, #8c6a4a 0%, #4a3020 100%);
  border-radius:50%; transform:rotate(30deg); box-shadow:0 0 6px rgba(0,0,0,0.5); animation:so-whip 2s ease-in-out infinite;
}
.scn-starvation-overboard .figure-prone {
  position:absolute; bottom:25%; left:20%; width:60px; height:30px;
  background:radial-gradient(ellipse at 50% 50%, #3a2820 0%, #1a0e0a 100%);
  border-radius:40% 40% 30% 30% / 60% 60% 40% 40%;
  transform:rotate(5deg); animation:so-prone 10s ease-in-out infinite alternate;
}
@keyframes so-sky {
  0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.8; }
}
@keyframes so-sea {
  0% { background-position:0 0; } 100% { background-position:0 30px; }
}
@keyframes so-sail {
  0% { transform:rotate(12deg) scale(1); } 50% { transform:rotate(18deg) scale(1.02); } 100% { transform:rotate(12deg) scale(1); }
}
@keyframes so-leap {
  0% { transform:translateY(0) rotate(0); } 25% { transform:translateY(-20px) rotate(-15deg); } 50% { transform:translateY(-10px) rotate(-10deg); } 75% { transform:translateY(-30px) rotate(-20deg); } 100% { transform:translateY(0) rotate(0); }
}
@keyframes so-whip {
  0% { transform:rotate(25deg) scaleY(1); } 50% { transform:rotate(35deg) scaleY(1.1); } 100% { transform:rotate(25deg) scaleY(1); }
}
@keyframes so-prone {
  0% { transform:rotate(3deg) translateX(0); } 50% { transform:rotate(7deg) translateX(-2px); } 100% { transform:rotate(3deg) translateX(0); }
}

/* property-oppression – sunlit, wide plantation landscape */
.scn-property-oppression {
  background:
    linear-gradient(180deg, #b8d0e0 0%, #d4e8f0 20%, #f0e8d0 50%, #705a40 100%);
}
.scn-property-oppression .sky-open {
  position:absolute; inset:0 0 45% 0; background:linear-gradient(180deg, #d4e8f0 0%, #c0d0e0 100%); animation:po-sky 40s ease-in-out infinite alternate;
}
.scn-property-oppression .sun-glare {
  position:absolute; top:5%; left:60%; width:80px; height:80px;
  background:radial-gradient(circle, #ffe8a0 0%, transparent 100%);
  border-radius:50%; opacity:0.6; animation:po-sun 50s linear infinite;
}
.scn-property-oppression .field-stripes {
  position:absolute; bottom:0; left:0; right:0; height:55%;
  background:repeating-linear-gradient(0deg, #7a6a4a 0px, #7a6a4a 6px, #5a4a30 6px, #5a4a30 12px);
  animation:po-field 20s ease-in-out infinite;
}
.scn-property-oppression .overseer-horse {
  position:absolute; bottom:35%; left:65%; width:90px; height:60px;
  background:radial-gradient(ellipse at 50% 30%, #5a4030 0%, #2a1a10 100%);
  border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; 
  transform:scale(1.2); box-shadow:0 6px 20px rgba(0,0,0,0.3); animation:po-horse 12s ease-in-out infinite;
}
.scn-property-oppression .slave-bent {
  position:absolute; bottom:20%; left:20%; width:40px; height:70px;
  background:radial-gradient(ellipse at 50% 20%, #4a3828 0%, #241a12 100%);
  border-radius:40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin:bottom center; animation:po-slave1 8s ease-in-out infinite alternate;
}
.scn-property-oppression .slave-bent2 {
  position:absolute; bottom:22%; left:35%; width:40px; height:70px;
  background:radial-gradient(ellipse at 50% 20%, #4a3828 0%, #241a12 100%);
  border-radius:40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin:bottom center; animation:po-slave2 9s ease-in-out infinite alternate;
  animation-delay:2s;
}
.scn-property-oppression .crop-row {
  position:absolute; bottom:15%; left:10%; right:10%; height:4px;
  background:repeating-linear-gradient(90deg, #6a8a3a 0px, #6a8a3a 5px, transparent 5px, transparent 12px);
  opacity:0.6; animation:po-crop 15s linear infinite;
}
@keyframes po-sky {
  0% { opacity:0.85; } 50% { opacity:1; } 100% { opacity:0.9; }
}
@keyframes po-sun {
  0% { transform:translate(0,0); } 50% { transform:translate(10px,5px); } 100% { transform:translate(0,0); }
}
@keyframes po-field {
  0% { transform:translateY(0); } 50% { transform:translateY(-3px); } 100% { transform:translateY(0); }
}
@keyframes po-horse {
  0% { transform:scale(1.2) translateY(0); } 50% { transform:scale(1.2) translateY(-2px); } 100% { transform:scale(1.2) translateY(0); }
}
@keyframes po-slave1 {
  0% { transform:rotate(0) translateY(0); } 50% { transform:rotate(5deg) translateY(-1px); } 100% { transform:rotate(0) translateY(0); }
}
@keyframes po-slave2 {
  0% { transform:rotate(0) translateY(0); } 50% { transform:rotate(-5deg) translateY(1px); } 100% { transform:rotate(0) translateY(0); }
}
@keyframes po-crop {
  0% { background-position:0 0; } 100% { background-position:50px 0; }
}

.scn-captain-axe {
  background: linear-gradient(180deg, #1a0e08 0%, #2b1709 40%, #4a2a14 100%), radial-gradient(ellipse at 30% 60%, #8b4513 0%, transparent 70%);
}
.scn-captain-axe .bg-wall { position:absolute; inset:0; background: linear-gradient(90deg, #2e1a0a 0%, #3d2412 50%, #261507 100%); animation: ca-wall 10s ease-in-out infinite; }
.scn-captain-axe .fire-glow { position:absolute; top:50%; left:25%; width:120px; height:140px; background: radial-gradient(circle, #fea333 0%, #cc5500 40%, transparent 70%); filter: blur(12px); animation: ca-fire 1.5s ease-in-out infinite alternate; }
.scn-captain-axe .captain-fig { position:absolute; bottom:10%; left:30%; width:40px; height:100px; background: linear-gradient(180deg, #1a1a1a 0%, #0c0c0c 60%, #1a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ca-raging 3s ease-in-out infinite; }
.scn-captain-axe .burning-stick { position:absolute; bottom:45%; left:38%; width:6px; height:50px; background: linear-gradient(0deg, #8b4513 0%, #d2691e 40%, #ff8c00 70%, #ffd700 100%); border-radius: 2px; animation: ca-stick 2s ease-in-out infinite alternate; }
.scn-captain-axe .axe { position:absolute; bottom:15%; left:55%; width:30px; height:20px; background: linear-gradient(135deg, #3a3a3a 0%, #1a1a1a 100%); clip-path: polygon(0 0, 100% 50%, 100% 100%);
  filter: drop-shadow(0 0 6px #222); animation: ca-axe 0.8s ease-in-out infinite alternate; }
.scn-captain-axe .powder-barrel { position:absolute; bottom:5%; right:20%; width:40px; height:45px; background: linear-gradient(90deg, #5c3a1a 0%, #7a4f2a 50%, #5c3a1a 100%); border-radius: 30% 30% 20% 20%; box-shadow: inset 0 -4px 0 #3d2610; animation: ca-barrel 6s ease-in-out infinite; }
.scn-captain-axe .equiano-silhouette { position:absolute; bottom:10%; left:55%; width:35px; height:95px; background: linear-gradient(180deg, #0c0c0c 0%, #1a1a1a 50%, #0c0c0c 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ca-equiano 3s ease-in-out infinite; }
@keyframes ca-wall { 0%,100% { opacity:0.8; } 50% { opacity:1; } }
@keyframes ca-fire { 0% { transform: scale(1) translate(0,0); opacity:0.7; } 50% { transform: scale(1.1) translate(-5px,-3px); opacity:1; } 100% { transform: scale(0.95) translate(2px,2px); opacity:0.75; } }
@keyframes ca-raging { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 50% { transform: translateX(-5px) translateY(-2px) rotate(4deg); } 100% { transform: translateX(0) translateY(0) rotate(-1deg); } }
@keyframes ca-stick { 0% { transform: rotate(-10deg) scaleY(1); opacity:0.9; } 50% { transform: rotate(5deg) scaleY(1.05); opacity:1; } 100% { transform: rotate(-5deg) scaleY(0.95); opacity:0.85; } }
@keyframes ca-axe { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(-15deg) translateY(-3px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes ca-barrel { 0%,100% { transform: scale(1); } 50% { transform: scale(1.02) rotate(1deg); } }
@keyframes ca-equiano { 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); } }

.scn-scripture-recall {
  background: linear-gradient(180deg, #0d1b2a 0%, #1b2838 40%, #2c4251 100%), radial-gradient(ellipse at 70% 30%, #5f7a9a 0%, transparent 60%);
}
.scn-scripture-recall .bg-cabin { position:absolute; inset:0; background: linear-gradient(180deg, #141e2b 0%, #0a1118 100%); }
.scn-scripture-recall .moonlight-window { position:absolute; top:5%; right:10%; width:60px; height:80px; background: linear-gradient(135deg, #a3c2e0 0%, #668bb0 100%); border-radius: 4px; box-shadow: 0 0 30px 8px rgba(120,180,220,0.5); animation: sr-window 8s ease-in-out infinite alternate; }
.scn-scripture-recall .open-book { position:absolute; bottom:25%; left:30%; width:50px; height:65px; background: linear-gradient(180deg, #e8dcc8 0%, #c4b59a 100%); border-radius: 2px; transform: rotate(5deg); box-shadow: 2px 2px 6px rgba(0,0,0,0.4); animation: sr-book 10s ease-in-out infinite; }
.scn-scripture-recall .equiano-kneeling { position:absolute; bottom:10%; left:35%; width:30px; height:70px; background: linear-gradient(180deg, #1c1c2a 0%, #0e0e16 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: sr-kneel 4s ease-in-out infinite; }
.scn-scripture-recall .light-rays { position:absolute; top:2%; left:25%; width:100px; height:200px; background: linear-gradient(135deg, rgba(200,230,255,0.2) 0%, transparent 70%); clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%); filter: blur(3px); animation: sr-rays 6s ease-in-out infinite; }
.scn-scripture-recall .shadow-cross { position:absolute; top:5%; left:20%; width:20px; height:40px; background: rgba(0,0,0,0.3); clip-path: polygon(40% 0, 60% 0, 60% 40%, 100% 40%, 100% 60%, 60% 60%, 60% 100%, 40% 100%, 40% 60%, 0 60%, 0 40%, 40% 40%); filter: blur(1px); animation: sr-cross 9s ease-in-out infinite alternate; }
@keyframes sr-window { 0% { opacity:0.6; transform: scaleY(1); } 50% { opacity:1; transform: scaleY(1.02); } 100% { opacity:0.7; transform: scaleY(0.98); } }
@keyframes sr-book { 0%,100% { transform: rotate(5deg) translateY(0); } 50% { transform: rotate(7deg) translateY(-2px); } }
@keyframes sr-kneel { 0% { transform: rotate(0deg) translateY(0); } 25% { transform: rotate(3deg) translateY(-1px); } 50% { transform: rotate(0deg) translateY(0); } 75% { transform: rotate(-2deg) translateY(-1px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes sr-rays { 0% { opacity:0.3; transform: scale(1) rotate(0deg); } 50% { opacity:0.7; transform: scale(1.1) rotate(2deg); } 100% { opacity:0.4; transform: scale(0.9) rotate(-1deg); } }
@keyframes sr-cross { 0% { opacity:0.2; transform: translateX(0); } 50% { opacity:0.5; transform: translateX(3px); } 100% { opacity:0.3; transform: translateX(-2px); } }

.scn-letter-to-irving {
  background: linear-gradient(180deg, #f5e6c8 0%, #dcc4a0 40%, #c8ac80 100%), radial-gradient(ellipse at 80% 20%, #ffe0b0 0%, transparent 60%);
}
.scn-letter-to-irving .bg-room { position:absolute; inset:0; background: linear-gradient(180deg, #b8a080 0%, #8c7050 100%); }
.scn-letter-to-irving .sunlit-window { position:absolute; top:5%; left:10%; width:70px; height:90px; background: linear-gradient(135deg, #fff9e0 0%, #ffe0a0 100%); border-radius: 4px; box-shadow: 0 0 40px 12px rgba(255,230,150,0.6); animation: li-window 6s ease-in-out infinite alternate; }
.scn-letter-to-irving .desk { position:absolute; bottom:15%; left:20%; right:20%; height:30px; background: linear-gradient(180deg, #6b4a2a 0%, #4d3220 100%); border-radius: 8px 8px 0 0; box-shadow: inset 0 4px 6px rgba(0,0,0,0.3); animation: li-desk 12s ease-in-out infinite; }
.scn-letter-to-irving .letter-paper { position:absolute; bottom:30%; left:35%; width:55px; height:40px; background: linear-gradient(135deg, #fef7e0 0%, #f0e1c0 100%); border-radius: 2px; transform: rotate(2deg); box-shadow: 1px 1px 4px rgba(0,0,0,0.2); animation: li-letter 4s ease-in-out infinite; }
.scn-letter-to-irving .rum-bottle { position:absolute; bottom:20%; right:25%; width:14px; height:35px; background: linear-gradient(180deg, #2a1a0a 0%, #4a2a14 50%, #2a1a0a 100%); border-radius: 30% 30% 10% 10%; box-shadow: 2px 2px 4px rgba(0,0,0,0.3); animation: li-bottle 8s ease-in-out infinite; }
.scn-letter-to-irving .sugar-bowl { position:absolute; bottom:18%; right:40%; width:20px; height:16px; background: linear-gradient(180deg, #e0d0b0 0%, #c0b090 100%); border-radius: 40% 40% 10% 10%; box-shadow: 0 2px 4px rgba(0,0,0,0.2); animation: li-sugar 10s ease-in-out infinite; }
.scn-letter-to-irving .equiano-writing { position:absolute; bottom:12%; left:38%; width:28px; height:65px; background: linear-gradient(180deg, #1c1a18 0%, #2a2620 50%, #1c1a18 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: li-write 2s ease-in-out infinite; }
@keyframes li-window { 0% { opacity:0.8; transform: scaleX(1); } 50% { opacity:1; transform: scaleX(1.03); } 100% { opacity:0.85; transform: scaleX(0.97); } }
@keyframes li-desk { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-1px); } }
@keyframes li-letter { 0% { transform: rotate(2deg) translateY(0); } 25% { transform: rotate(3deg) translateY(-2px); } 50% { transform: rotate(1deg) translateY(0); } 75% { transform: rotate(3deg) translateY(-1px); } 100% { transform: rotate(2deg) translateY(0); } }
@keyframes li-bottle { 0% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-2deg); } }
@keyframes li-sugar { 0%,100% { transform: scale(1); } 50% { transform: scale(1.02); } }
@keyframes li-write { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2px) rotate(3deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-2px) rotate(-3deg); } 100% { transform: translateX(0) rotate(0deg); } }

.scn-kingston-arrival {
  background: linear-gradient(180deg, #4a8bc2 0%, #7fb3d0 30%, #b8d4e8 70%, #e8f0f4 100%), radial-gradient(ellipse at 50% 0%, #a0c8e0 0%, transparent 50%);
}
.scn-kingston-arrival .sky-bg { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #87ceeb 0%, #c7e3f0 100%); animation: ka-sky 15s ease-in-out infinite alternate; }
.scn-kingston-arrival .sea-bg { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #3478a0 0%, #1b4d6e 100%); animation: ka-sea 8s ease-in-out infinite alternate; }
.scn-kingston-arrival .ship-hull { position:absolute; bottom:25%; left:20%; width:120px; height:45px; background: linear-gradient(180deg, #5c3a1a 0%, #3d2610 100%); border-radius: 0 0 30% 30% / 0 0 60% 60%; clip-path: polygon(0 20%, 100% 20%, 90% 100%, 10% 100%); animation: ka-hull 4s ease-in-out infinite; }
.scn-kingston-arrival .ship-sail { position:absolute; bottom:55%; left:22%; width:60px; height:80px; background: linear-gradient(135deg, #f0e8d8 0%, #d0c4b0 100%); clip-path: polygon(50% 0, 100% 80%, 0 80%); transform-origin: bottom center; animation: ka-sail 6s ease-in-out infinite; }
.scn-kingston-arrival .dock-buildings { position:absolute; bottom:10%; right:15%; width:100px; height:70px; background: linear-gradient(0deg, #a08060 0%, #c0b0a0 100%); border-radius: 4px; box-shadow: -2px 0 6px rgba(0,0,0,0.3); animation: ka-buildings 12s ease-in-out infinite; }
.scn-kingston-arrival .figure-captain { position:absolute; bottom:15%; left:35%; width:20px; height:50px; background: linear-gradient(180deg, #1a1a1a 0%, #0c0c0c 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: ka-captain 3s ease-in-out infinite; }
.scn-kingston-arrival .figure-equiano { position:absolute; bottom:14%; left:42%; width:18px; height:48px; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: ka-equiano 3.5s ease-in-out infinite; }
.scn-kingston-arrival .cloud-slow { position:absolute; top:10%; left:5%; width:90px; height:20px; background: linear-gradient(90deg, rgba(255,255,255,0.5) 0%, rgba(255,255,255,0.1) 100%); border-radius: 50%; filter: blur(8px); animation: ka-cloud 40s linear infinite; }
@keyframes ka-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes ka-sea { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes ka-hull { 0% { transform: rotate(-1deg) translateY(0); } 50% { transform: rotate(1deg) translateY(-2px); } 100% { transform: rotate(-1deg) translateY(0); } }
@keyframes ka-sail { 0% { transform: rotate(-2deg) scaleY(1); } 50% { transform: rotate(2deg) scaleY(1.02); } 100% { transform: rotate(-2deg) scaleY(1); } }
@keyframes ka-buildings { 0%,100% { transform: scale(1); } 50% { transform: scale(1.01); } }
@keyframes ka-captain { 0% { transform: rotate(0deg) translateY(0); } 25% { transform: rotate(3deg) translateY(-1px); } 50% { transform: rotate(0deg) translateY(0); } 75% { transform: rotate(-3deg) translateY(-1px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes ka-equiano { 0% { transform: rotate(0deg) translateY(0); } 25% { transform: rotate(-2deg) translateY(-1px); } 50% { transform: rotate(0deg) translateY(0); } 75% { transform: rotate(2deg) translateY(-1px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes ka-cloud { 0% { transform: translateX(-30px); } 100% { transform: translateX(120vw); } }

/* benin-warfare – tense sunlit battlefield */
.scn-benin-warfare {
  background: linear-gradient(180deg, #f0d8a0 0%, #b8c8e0 40%, #8898b0 100%),
              radial-gradient(ellipse at 40% 30%, #ffe080 0%, transparent 60%);
}
.scn-benin-warfare .sun-disk {
  position: absolute; top: 8%; left: 70%; width: 60px; height: 60px;
  background: radial-gradient(circle, #fff6d0 0%, #f0c050 70%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 80px 20px #f0c050, 0 0 160px 40px rgba(240,192,80,.3);
  animation: bw-sunpulse 6s ease-in-out infinite alternate;
}
.scn-benin-warfare .warrior {
  position: absolute; bottom: 24%; left: 45%; width: 40px; height: 90px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bw-warrior 3s ease-in-out infinite;
}
.scn-benin-warfare .shield {
  position: absolute; bottom: 28%; left: 42%; width: 32px; height: 52px;
  background: linear-gradient(135deg, #7a5a3a 0%, #5a3a1a 70%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  box-shadow: -4px 0 8px rgba(0,0,0,.5), inset 0 2px 4px rgba(255,255,255,.2);
  animation: bw-shield 3s ease-in-out infinite;
}
.scn-benin-warfare .spear {
  position: absolute; bottom: 32%; left: 52%; width: 4px; height: 80px;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a1a 100%);
  border-radius: 0 0 2px 2px;
  transform-origin: bottom center;
  animation: bw-spear 3s ease-in-out infinite;
}
.scn-benin-warfare .dust-a {
  position: absolute; bottom: 18%; left: 20%; width: 40px; height: 14px;
  background: rgba(200,180,140,.4); border-radius: 50%; filter: blur(4px);
  animation: bw-dust 5s linear infinite;
}
.scn-benin-warfare .dust-b {
  position: absolute; bottom: 15%; right: 30%; width: 30px; height: 10px;
  background: rgba(200,180,140,.3); border-radius: 50%; filter: blur(3px);
  animation: bw-dust 7s linear infinite reverse;
}
.scn-benin-warfare .shadow {
  position: absolute; bottom: 20%; left: 43%; width: 50px; height: 10px;
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,.4) 0%, transparent 100%);
  transform: skewX(-20deg); filter: blur(2px);
  animation: bw-shadow 3s ease-in-out infinite;
}
@keyframes bw-sunpulse { 0% { opacity: .8; transform: scale(.95); } 50% { opacity: 1; transform: scale(1.05); } 100% { opacity: .85; transform: scale(.98); } }
@keyframes bw-warrior { 0%,100% { transform: translateX(0) translateY(0) rotate(-1deg); } 50% { transform: translateX(4px) translateY(-2px) rotate(1deg); } }
@keyframes bw-shield { 0%,100% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(-3px) rotate(2deg); } }
@keyframes bw-spear { 0%,100% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } }
@keyframes bw-dust { 0% { transform: translateX(0); opacity: 0; } 20% { opacity: .5; } 80% { opacity: .3; } 100% { transform: translateX(80px); opacity: 0; } }
@keyframes bw-shadow { 0%,100% { transform: skewX(-20deg) scaleX(1); opacity: .6; } 50% { transform: skewX(-25deg) scaleX(1.2); opacity: .8; } }

/* benin-battle – tense sunlit close combat */
.scn-benin-battle {
  background: linear-gradient(180deg, #f2dbb0 0%, #c4d4e8 35%, #7a90a8 100%),
              radial-gradient(ellipse at 30% 25%, #fff0c0 0%, transparent 70%);
}
.scn-benin-battle .tree-branch {
  position: absolute; top: 12%; left: 10%; width: 120px; height: 14px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 20px; transform: rotate(-10deg); box-shadow: inset 0 2px 4px rgba(255,255,255,.2);
  animation: bb-branch 8s ease-in-out infinite;
}
.scn-benin-battle .warrior-left {
  position: absolute; bottom: 20%; left: 30%; width: 38px; height: 85px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bb-fight-l 2s ease-in-out infinite;
}
.scn-benin-battle .warrior-right {
  position: absolute; bottom: 20%; right: 30%; width: 38px; height: 85px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bb-fight-r 2s ease-in-out infinite;
}
.scn-benin-battle .spear-l {
  position: absolute; bottom: 28%; left: 32%; width: 4px; height: 75px;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a1a 100%);
  border-radius: 0 0 2px 2px; transform: rotate(15deg);
  animation: bb-spear-l 2s ease-in-out infinite;
}
.scn-benin-battle .spear-r {
  position: absolute; bottom: 28%; right: 32%; width: 4px; height: 75px;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a1a 100%);
  border-radius: 0 0 2px 2px; transform: rotate(-15deg);
  animation: bb-spear-r 2s ease-in-out infinite;
}
.scn-benin-battle .arrow {
  position: absolute; bottom: 40%; left: 40%; width: 25px; height: 3px;
  background: #6a5a4a; border-radius: 2px; transform: rotate(30deg);
  box-shadow: 0 1px 2px rgba(0,0,0,.5);
  animation: bb-arrow 3s linear infinite;
}
.scn-benin-battle .impact-flash {
  position: absolute; bottom: 35%; left: 48%; width: 14px; height: 14px;
  background: radial-gradient(circle, #ffe080 0%, transparent 100%);
  border-radius: 50%; animation: bb-flash 0.5s ease-in-out infinite alternate;
}
.scn-benin-battle .dust-cloud {
  position: absolute; bottom: 12%; left: 40%; width: 80px; height: 20px;
  background: rgba(210,190,160,.4); border-radius: 50%; filter: blur(6px);
  animation: bb-dust 4s ease-in-out infinite;
}
@keyframes bb-branch { 0%,100% { transform: rotate(-10deg); } 50% { transform: rotate(-8deg); } }
@keyframes bb-fight-l { 0%,100% { transform: translateX(0) rotate(5deg); } 50% { transform: translateX(-8px) rotate(-5deg); } }
@keyframes bb-fight-r { 0%,100% { transform: translateX(0) rotate(-5deg); } 50% { transform: translateX(8px) rotate(5deg); } }
@keyframes bb-spear-l { 0%,100% { transform: rotate(15deg); } 50% { transform: rotate(20deg); } }
@keyframes bb-spear-r { 0%,100% { transform: rotate(-15deg); } 50% { transform: rotate(-20deg); } }
@keyframes bb-arrow { 0% { transform: translateX(0) rotate(30deg); opacity: 1; } 100% { transform: translateX(60px) rotate(30deg); opacity: 0; } }
@keyframes bb-flash { 0% { opacity: .3; transform: scale(.5); } 100% { opacity: 1; transform: scale(1.5); } }
@keyframes bb-dust { 0%,100% { transform: translateY(0) scaleX(1); opacity: .4; } 50% { transform: translateY(-8px) scaleX(1.3); opacity: .6; } }

/* benin-warfare-aftermath – dark overcast marketplace */
.scn-benin-warfare-aftermath {
  background: linear-gradient(180deg, #6a6a7a 0%, #4a4a5a 50%, #2a2a3a 100%),
              radial-gradient(ellipse at 50% 0%, #8a8a9a 0%, transparent 70%);
}
.scn-benin-warfare-aftermath .overcast-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, rgba(100,100,120,.5) 0%, transparent 60%);
  animation: ba-fade 12s ease-in-out infinite alternate;
}
.scn-benin-warfare-aftermath .market-stall {
  position: absolute; bottom: 20%; left: 40%; width: 80px; height: 50px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 8% 8% 4% 4%; box-shadow: 0 6px 12px rgba(0,0,0,.6);
  animation: ba-stall 9s ease-in-out infinite;
}
.scn-benin-warfare-aftermath .severed-arm {
  position: absolute; bottom: 32%; left: 48%; width: 10px; height: 30px;
  background: linear-gradient(180deg, #7a5a4a 0%, #4a3a2a 100%);
  border-radius: 20% 20% 40% 40% / 30% 30% 50% 50%;
  transform: rotate(-20deg); box-shadow: 0 4px 8px rgba(0,0,0,.5);
  animation: ba-arm 6s ease-in-out infinite;
}
.scn-benin-warfare-aftermath .slave-figures {
  position: absolute; bottom: 16%; left: 20%; width: 50px; height: 60px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  filter: blur(1px); opacity: .8; transform: scale(0.8);
  animation: ba-slave 10s ease-in-out infinite;
}
.scn-benin-warfare-aftermath .chain {
  position: absolute; bottom: 18%; left: 22%; width: 20px; height: 4px;
  background: #6a6a6a; border-radius: 2px; filter: drop-shadow(0 1px 2px #444);
  animation: ba-chain 3s ease-in-out infinite;
}
.scn-benin-warfare-aftermath .ground-stain {
  position: absolute; bottom: 12%; left: 35%; width: 120px; height: 14px;
  background: radial-gradient(ellipse at 50% 50%, #4a3a3a 0%, transparent 100%);
  filter: blur(4px); animation: ba-stain 8s ease-in-out infinite alternate;
}
.scn-benin-warfare-aftermath .crow {
  position: absolute; top: 20%; left: 60%; width: 14px; height: 10px;
  background: #2a2a2a; border-radius: 50% 50% 20% 20%;
  transform: rotate(10deg); animation: ba-crow 4s ease-in-out infinite;
}
@keyframes ba-fade { 0% { opacity: .7; } 50% { opacity: .9; } 100% { opacity: .6; } }
@keyframes ba-stall { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
@keyframes ba-arm { 0%,100% { transform: rotate(-20deg); opacity: .7; } 50% { transform: rotate(-25deg); opacity: 1; } }
@keyframes ba-slave { 0%,100% { transform: scale(0.8) translateY(0); } 50% { transform: scale(0.85) translateY(-2px); } }
@keyframes ba-chain { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-4px); } }
@keyframes ba-stain { 0% { opacity: .3; transform: scaleX(1); } 100% { opacity: .6; transform: scaleX(1.2); } }
@keyframes ba-crow { 0%,100% { transform: rotate(10deg) translateX(0); } 50% { transform: rotate(5deg) translateX(5px); } }

/* benin-religion – calm sunlit worship scene */
.scn-benin-religion {
  background: linear-gradient(180deg, #f8e8c0 0%, #d8d0b0 50%, #a09880 100%),
              radial-gradient(ellipse at 50% 30%, #fff5e0 0%, transparent 60%);
}
.scn-benin-religion .sky-glow {
  position: absolute; inset: 0 0 50% 0;
  background: radial-gradient(ellipse at 50% 0%, #fff8e0 0%, transparent 100%);
  animation: br-sky 15s ease-in-out infinite alternate;
}
.scn-benin-religion .sun-god {
  position: absolute; top: 8%; left: 50%; width: 80px; height: 80px;
  background: radial-gradient(circle, #fff4c0 0%, #f0c860 60%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 100px 30px #f0c860, 0 0 200px 60px rgba(240,200,96,.3);
  transform: translateX(-50%);
  animation: br-sun 8s ease-in-out infinite alternate;
}
.scn-benin-religion .belt-glow {
  position: absolute; top: 28%; left: 50%; width: 90px; height: 6px;
  background: linear-gradient(90deg, transparent, #ffd080, transparent);
  transform: translateX(-50%); filter: blur(2px);
  animation: br-belt 8s ease-in-out infinite alternate;
}
.scn-benin-religion .worshipper {
  position: absolute; bottom: 24%; left: 50%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: br-worship 6s ease-in-out infinite;
}
.scn-benin-religion .offering {
  position: absolute; bottom: 20%; left: 46%; width: 20px; height: 8px;
  background: #8a7a6a; border-radius: 20% 20% 10% 10%;
  box-shadow: 0 2px 4px rgba(0,0,0,.3);
  animation: br-offering 6s ease-in-out infinite;
}
.scn-benin-religion .spirit-orb-a {
  position: absolute; top: 40%; left: 20%; width: 12px; height: 12px;
  background: radial-gradient(circle, #fff0c0 0%, transparent 100%);
  border-radius: 50%; filter: blur(3px);
  animation: br-orb-a 12s linear infinite;
}
.scn-benin-religion .spirit-orb-b {
  position: absolute; top: 35%; right: 25%; width: 10px; height: 10px;
  background: radial-gradient(circle, #fff0c0 0%, transparent 100%);
  border-radius: 50%; filter: blur(2px);
  animation: br-orb-b 16s linear infinite reverse;
}
.scn-benin-religion .ground-haze {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(0deg, rgba(200,190,170,.3) 0%, transparent 100%);
  animation: br-haze 10s ease-in-out infinite alternate;
}
@keyframes br-sky { 0% { opacity: .8; } 50% { opacity: 1; } 100% { opacity: .7; } }
@keyframes br-sun { 0% { transform: translateX(-50%) scale(.98); box-shadow: 0 0 80px 20px #f0c860; } 50% { transform: translateX(-50%) scale(1.02); box-shadow: 0 0 120px 40px #f0c860; } 100% { transform: translateX(-50%) scale(.99); box-shadow: 0 0 90px 25px #f0c860; } }
@keyframes br-belt { 0% { opacity: .6; width: 80px; } 50% { opacity: 1; width: 100px; } 100% { opacity: .7; width: 85px; } }
@keyframes br-worship { 0%,100% { transform: translateX(-50%) rotate(0deg); } 25% { transform: translateX(-50%) rotate(-3deg); } 75% { transform: translateX(-50%) rotate(3deg); } }
@keyframes br-offering { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes br-orb-a { 0% { transform: translateX(0) translateY(0); opacity: .3; } 25% { transform: translateX(30px) translateY(-10px); opacity: .7; } 50% { transform: translateX(60px) translateY(5px); opacity: .4; } 75% { transform: translateX(90px) translateY(-5px); opacity: .6; } 100% { transform: translateX(120px) translateY(0); opacity: .3; } }
@keyframes br-orb-b { 0% { transform: translateX(0) translateY(0); opacity: .4; } 25% { transform: translateX(-20px) translateY(8px); opacity: .6; } 50% { transform: translateX(-40px) translateY(-3px); opacity: .3; } 75% { transform: translateX(-60px) translateY(10px); opacity: .7; } 100% { transform: translateX(-80px) translateY(0); opacity: .4; } }
@keyframes br-haze { 0% { opacity: .2; } 50% { opacity: .5; } 100% { opacity: .3; } }

.scn-escape-to-shore {
  background: linear-gradient(180deg, #1a1a3e 0%, #4a2a3e 30%, #c86a3a 60%, #e8a050 100%), radial-gradient(ellipse at 70% 10%, #ffd080 0%, transparent 50%);
  position: relative; overflow: hidden;
}
.scn-escape-to-shore .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #2a2a4e 0%, #8a4a3e 60%, #d08040 100%); animation: esc-sky 10s ease-in-out infinite alternate; }
.scn-escape-to-shore .sea { position:absolute; bottom:20%; left:0; right:0; height:60%; background: linear-gradient(180deg, #2a4a5a 0%, #1a2a3a 100%); border-radius: 0 0 40% 60%; animation: esc-sea 8s ease-in-out infinite alternate; }
.scn-escape-to-shore .shore { position:absolute; bottom:20%; left:60%; width:50%; height:40%; background: linear-gradient(180deg, #c8784a 0%, #8a6030 100%); border-radius: 50% 0 0 50% / 60% 0 0 40%; box-shadow: inset 0 -10px 20px rgba(0,0,0,.3); animation: esc-shore 12s ease-in-out infinite alternate; }
.scn-escape-to-shore .ship { position:absolute; bottom:35%; left:10%; width:60px; height:40px; background: linear-gradient(180deg, #5a3a1a 0%, #3a2a0a 100%); border-radius: 20% 20% 40% 40%; transform: rotate(-10deg); animation: esc-ship 6s ease-in-out infinite alternate; }
.scn-escape-to-shore .ship::after { content:''; position:absolute; top:-25px; left:10px; width:40px; height:30px; background: linear-gradient(135deg, #ddd 0%, #aaa 100%); clip-path: polygon(0 0, 100% 50%, 0 100%); }
.scn-escape-to-shore .figure { position:absolute; bottom:22%; left:68%; width:14px; height:28px; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: esc-walk 4s ease-in-out infinite; }
.scn-escape-to-shore .rock { position:absolute; bottom:23%; left:55%; width:30px; height:20px; background: radial-gradient(circle at 30% 30%, #6a5a4a 0%, #4a3a2a 100%); border-radius: 50% 50% 30% 30%; transform: rotate(15deg); animation: esc-rock 9s ease-in-out infinite alternate; }
.scn-escape-to-shore .sunray { position:absolute; top:5%; left:20%; width:80%; height:40%; background: linear-gradient(135deg, rgba(255,220,120,.6) 0%, transparent 70%); transform: rotate(-20deg); animation: esc-ray 14s ease-in-out infinite alternate; }
.scn-escape-to-shore .cloud { position:absolute; top:12%; right:20%; width:70px; height:16px; background: rgba(200,150,100,.4); border-radius: 50%; filter: blur(5px); animation: esc-cloud 30s linear infinite; }
@keyframes esc-sky { 0% { opacity:.8; background-position:0% 0%; } 50% { opacity:1; background-position:50% 10%; } 100% { opacity:.7; background-position:100% 0%; } }
@keyframes esc-sea { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-3px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes esc-shore { 0% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(-5px) scaleX(1.01); } 100% { transform: translateX(0) scaleX(1); } }
@keyframes esc-ship { 0% { transform: rotate(-10deg) translateX(0); } 50% { transform: rotate(-8deg) translateX(3px); } 100% { transform: rotate(-10deg) translateX(0); } }
@keyframes esc-walk { 0% { transform: translateX(0) translateY(0) rotate(-1deg); } 25% { transform: translateX(6px) translateY(-2px) rotate(1deg); } 50% { transform: translateX(12px) translateY(0) rotate(-1deg); } 75% { transform: translateX(18px) translateY(-2px) rotate(1deg); } 100% { transform: translateX(24px) translateY(0) rotate(0); } }
@keyframes esc-rock { 0% { transform: rotate(15deg) scale(1); } 50% { transform: rotate(18deg) scale(1.05); } 100% { transform: rotate(15deg) scale(1); } }
@keyframes esc-ray { 0% { opacity:.3; transform: rotate(-20deg) scale(1); } 50% { opacity:.7; transform: rotate(-15deg) scale(1.1); } 100% { opacity:.4; transform: rotate(-25deg) scale(1); } }
@keyframes esc-cloud { 0% { transform: translateX(0); } 100% { transform: translateX(-120vw); } }

.scn-to-admiral {
  background: linear-gradient(180deg, #6a8aaa 0%, #9ab8d0 40%, #d0d8a0 100%), radial-gradient(ellipse at 80% 20%, #ffe0a0 0%, transparent 50%);
  position: relative; overflow: hidden;
}
.scn-to-admiral .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #8ab0d0 0%, #c0d8e0 60%, #e0e0b0 100%); animation: tad-sky 14s ease-in-out infinite alternate; }
.scn-to-admiral .lagoon { position:absolute; bottom:20%; left:0; right:0; height:60%; background: linear-gradient(180deg, #3a6a6a 0%, #2a5a5a 100%); border-radius: 0 0 30% 50%; animation: tad-lagoon 10s ease-in-out infinite alternate; }
.scn-to-admiral .shore { position:absolute; bottom:20%; left:30%; width:40%; height:30%; background: linear-gradient(180deg, #b0a070 0%, #8a8050 100%); border-radius: 60% 40% 0 0 / 80% 60% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.2); animation: tad-shore 16s ease-in-out infinite alternate; }
.scn-to-admiral .palm { position:absolute; bottom:28%; left:40%; width:8px; height:50px; background: linear-gradient(180deg, #5a4a2a 0%, #3a2a0a 100%); border-radius: 20%; transform-origin: bottom center; animation: tad-palm 8s ease-in-out infinite alternate; }
.scn-to-admiral .palm::after { content:''; position:absolute; top:-25px; left:-30px; width:70px; height:30px; background: linear-gradient(180deg, #4a7a3a 0%, #2a5a2a 100%); border-radius: 50% 50% 0 0; transform: rotate(-15deg); }
.scn-to-admiral .canoe { position:absolute; bottom:25%; left:15%; width:50px; height:12px; background: linear-gradient(180deg, #6a4a2a 0%, #4a3018 100%); border-radius: 30% 30% 20% 20%; transform: rotate(-5deg); animation: tad-canoe 12s ease-in-out infinite; }
.scn-to-admiral .figure { position:absolute; bottom:24%; left:20%; width:12px; height:24px; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: tad-figure 5s ease-in-out infinite; }
.scn-to-admiral .sun { position:absolute; top:10%; right:20%; width:40px; height:40px; background: radial-gradient(circle, #ffe080 0%, #ffc040 60%, transparent 100%); border-radius: 50%; animation: tad-sun 25s linear infinite; }
@keyframes tad-sky { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.7; } }
@keyframes tad-lagoon { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-2px) scaleY(1.01); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes tad-shore { 0% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(3px) scaleX(1.02); } 100% { transform: translateX(0) scaleX(1); } }
@keyframes tad-palm { 0% { transform: rotate(-3deg); } 50% { transform: rotate(3deg); } 100% { transform: rotate(-3deg); } }
@keyframes tad-canoe { 0% { transform: rotate(-5deg) translateX(0); } 50% { transform: rotate(-3deg) translateX(5px); } 100% { transform: rotate(-5deg) translateX(0); } }
@keyframes tad-figure { 0% { transform: translateX(0) translateY(0) rotate(0); } 50% { transform: translateX(2px) translateY(-1px) rotate(1deg); } 100% { transform: translateX(0) translateY(0) rotate(0); } }
@keyframes tad-sun { 0% { transform: translateX(0); } 100% { transform: translateX(-30vw); } }

.scn-admiral-request {
  background: linear-gradient(180deg, #2a2a4e 0%, #4a3a5a 30%, #6a4a3a 70%, #3a2a1a 100%), radial-gradient(ellipse at 50% 100%, #4a3a2a 0%, transparent 60%);
  position: relative; overflow: hidden;
}
.scn-admiral-request .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #4a4a6a 0%, #8a6a4a 60%, #a08050 100%); animation: areq-sky 12s ease-in-out infinite alternate; }
.scn-admiral-request .ground { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 30% 70% 0 0 / 20% 40% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.5); animation: areq-ground 18s ease-in-out infinite alternate; }
.scn-admiral-request .hut { position:absolute; bottom:30%; left:10%; width:80px; height:60px; background: linear-gradient(180deg, #6a5a3a 0%, #4a3a1a 100%); border-radius: 8% 8% 4% 4%; box-shadow: 2px 6px 12px rgba(0,0,0,.4); animation: areq-hut 9s ease-in-out infinite; }
.scn-admiral-request .fire { position:absolute; bottom:30%; left:60%; width:20px; height:30px; background: radial-gradient(circle, #ffa040 0%, #ff6030 60%, transparent 100%); border-radius: 50%; box-shadow: 0 0 30px 10px rgba(255,160,64,.6); animation: areq-fire 3s ease-in-out infinite alternate; }
.scn-admiral-request .figure-a { position:absolute; bottom:28%; left:15%; width:16px; height:32px; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: areq-figure-a 6s ease-in-out infinite alternate; }
.scn-admiral-request .figure-b { position:absolute; bottom:28%; left:55%; width:18px; height:34px; background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: areq-figure-b 7s ease-in-out infinite alternate; }
.scn-admiral-request .canoe { position:absolute; bottom:18%; left:70%; width:60px; height:14px; background: linear-gradient(180deg, #6a4a2a 0%, #4a3018 100%); border-radius: 30% 30% 20% 20%; transform: rotate(5deg); animation: areq-canoe 15s ease-in-out infinite; }
@keyframes areq-sky { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.7; } }
@keyframes areq-ground { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-2px) scaleY(1.01); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes areq-hut { 0%,100% { transform: translateX(0); } 50% { transform: translateX(2px) translateY(-1px); } }
@keyframes areq-fire { 0% { transform: scale(1); opacity:.8; } 50% { transform: scale(1.2); opacity:1; } 100% { transform: scale(.9); opacity:.7; } }
@keyframes areq-figure-a { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 50% { transform: translateX(2px) translateY(-1px) rotate(1deg); } 100% { transform: translateX(0) translateY(0) rotate(0); } }
@keyframes areq-figure-b { 0% { transform: translateX(0) translateY(0) rotate(2deg); } 50% { transform: translateX(-2px) translateY(-1px) rotate(-1deg); } 100% { transform: translateX(0) translateY(0) rotate(0); } }
@keyframes areq-canoe { 0% { transform: rotate(5deg) translateX(0); } 50% { transform: rotate(3deg) translateX(-3px); } 100% { transform: rotate(5deg) translateX(0); } }

.scn-canoe-journey {
  background: linear-gradient(180deg, #6a8aaa 0%, #8ab0d0 40%, #d0d8a0 100%), radial-gradient(ellipse at 50% 30%, #ffe0a0 0%, transparent 60%);
  position: relative; overflow: hidden;
}
.scn-canoe-journey .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #8ab0d0 0%, #c0d8e0 60%, #e0e0b0 100%); animation: caj-sky 10s ease-in-out infinite alternate; }
.scn-canoe-journey .sea { position:absolute; bottom:10%; left:0; right:0; height:70%; background: linear-gradient(180deg, #2a5a5a 0%, #1a3a3a 100%); border-radius: 0 0 40% 60%; animation: caj-sea 6s ease-in-out infinite alternate; }
.scn-canoe-journey .waves { position:absolute; bottom:25%; left:0; right:0; height:20%; background: repeating-linear-gradient(90deg, transparent 0px, transparent 20px, rgba(255,255,255,.1) 20px, rgba(255,255,255,.1) 22px); animation: caj-waves 4s ease-in-out infinite; }
.scn-canoe-journey .canoe { position:absolute; bottom:30%; left:30%; width:60px; height:14px; background: linear-gradient(180deg, #6a4a2a 0%, #4a3018 100%); border-radius: 30% 30% 20% 20%; transform: rotate(-10deg); animation: caj-canoe 3s ease-in-out infinite alternate; }
.scn-canoe-journey .figure { position:absolute; bottom:30%; left:35%; width:14px; height:28px; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: caj-figure 2s ease-in-out infinite alternate; }
.scn-canoe-journey .swamp { position:absolute; bottom:15%; right:5%; width:60px; height:40px; background: radial-gradient(ellipse, #3a5a2a 0%, #1a3a1a 100%); border-radius: 50% 50% 30% 30%; filter: blur(3px); animation: caj-swamp 20s ease-in-out infinite alternate; }
.scn-canoe-journey .sun { position:absolute; top:5%; right:30%; width:40px; height:40px; background: radial-gradient(circle, #ffe080 0%, #ffc040 60%, transparent 100%); border-radius: 50%; animation: caj-sun 30s linear infinite; }
.scn-canoe-journey .mosquito { position:absolute; bottom:35%; left:50%; width:4px; height:4px; background: #4a3a2a; border-radius: 50%; box-shadow: 0 0 4px rgba(0,0,0,.3); animation: caj-mosquito 5s ease-in-out infinite alternate; }
@keyframes caj-sky { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.7; } }
@keyframes caj-sea { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-4px) scaleY(1.03); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes caj-waves { 0% { opacity:.3; } 50% { opacity:.7; } 100% { opacity:.3; } }
@keyframes caj-canoe { 0% { transform: rotate(-10deg) translateX(0) translateY(0); } 50% { transform: rotate(-8deg) translateX(2px) translateY(-2px); } 100% { transform: rotate(-10deg) translateX(0) translateY(0); } }
@keyframes caj-figure { 0% { transform: translateX(0) translateY(0) rotate(-5deg); } 50% { transform: translateX(1px) translateY(-1px) rotate(2deg); } 100% { transform: translateX(0) translateY(0) rotate(0); } }
@keyframes caj-swamp { 0% { transform: scale(1) translateX(0); } 50% { transform: scale(1.05) translateX(-5px); } 100% { transform: scale(1) translateX(0); } }
@keyframes caj-sun { 0% { transform: translateX(0); } 100% { transform: translateX(-30vw); } }
@keyframes caj-mosquito { 0% { transform: translate(0,0) scale(1); } 50% { transform: translate(10px,-5px) scale(1.5); } 100% { transform: translate(-10px,5px) scale(1); } }

.scn-creole-negro-fisher {
  background: linear-gradient(180deg, #f9d88c 0%, #cba04a 30%, #7a5e2a 70%, #3d2f15 100%),
              radial-gradient(ellipse at 50% 50%, #f9d88c 0%, transparent 60%);
}
.scn-creole-negro-fisher .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #8fcbff 0%, #f9d88c 80%);
  animation: cnf-sky 12s ease-in-out infinite alternate;
}
.scn-creole-negro-fisher .sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #3b5a3b 0%, #1e2f1e 100%);
  border-radius: 40% 60% 0 0 / 30% 40% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,.5);
  animation: cnf-sea 8s ease-in-out infinite alternate;
}
.scn-creole-negro-fisher .boat {
  position: absolute; bottom: 38%; left: 20%; width: 60px; height: 18px;
  background: linear-gradient(90deg, #4a2e1a 0%, #2d1b0d 100%);
  border-radius: 30% 30% 10% 10% / 60% 60% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,.6);
  animation: cnf-rock 6s ease-in-out infinite;
}
.scn-creole-negro-fisher .figure {
  position: absolute; bottom: 38%; left: 22%; width: 14px; height: 28px;
  background: linear-gradient(180deg, #3e2c1a 0%, #20140a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cnf-fisher 8s ease-in-out infinite;
}
.scn-creole-negro-fisher .rod {
  position: absolute; bottom: 40%; left: 28%; width: 2px; height: 30px;
  background: #4a3020;
  transform: rotate(30deg);
  transform-origin: bottom left;
  animation: cnf-cast 5s ease-in-out infinite;
}
.scn-creole-negro-fisher .fish {
  position: absolute; bottom: 34%; left: 35%; width: 10px; height: 5px;
  background: #a08060;
  border-radius: 50% 30% 30% 50%;
  box-shadow: 0 0 4px 2px rgba(160,128,96,.4);
  animation: cnf-fish 4s ease-in-out infinite alternate;
}
.scn-creole-negro-fisher .sun {
  position: absolute; top: 8%; right: 15%; width: 30px; height: 30px;
  background: radial-gradient(circle, #ffe066 0%, #f9d88c 60%, transparent 90%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(255,224,102,.5);
  animation: cnf-sun 20s linear infinite;
}
.scn-creole-negro-fisher .shadow {
  position: absolute; bottom: 45%; left: 19%; width: 40px; height: 6px;
  background: rgba(0,0,0,.3);
  border-radius: 50%;
  filter: blur(6px);
  animation: cnf-sink 6s ease-in-out infinite;
}
@keyframes cnf-sky { 0% { opacity: .8; } 50% { opacity: 1; } 100% { opacity: .75; } }
@keyframes cnf-sea { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-3px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes cnf-rock { 0% { transform: translate(0, 0) rotate(0deg); } 25% { transform: translate(2px, -1px) rotate(2deg); } 50% { transform: translate(0, -2px) rotate(0deg); } 75% { transform: translate(-2px, -1px) rotate(-2deg); } 100% { transform: translate(0, 0) rotate(0deg); } }
@keyframes cnf-fisher { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-1px) rotate(2deg); } 50% { transform: translateY(-2px) rotate(0deg); } 75% { transform: translateY(-1px) rotate(-2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes cnf-cast { 0% { transform: rotate(30deg); } 50% { transform: rotate(20deg); } 100% { transform: rotate(30deg); } }
@keyframes cnf-fish { 0% { transform: translateX(0) rotate(0deg); opacity: .6; } 50% { transform: translateX(4px) rotate(5deg); opacity: 1; } 100% { transform: translateX(0) rotate(0deg); opacity: .6; } }
@keyframes cnf-sun { 0% { transform: translateX(-20px) scale(1); opacity: .9; } 50% { transform: translateX(10px) scale(1.05); opacity: 1; } 100% { transform: translateX(-20px) scale(1); opacity: .9; } }
@keyframes cnf-sink { 0% { transform: scale(1); opacity: .3; } 50% { transform: scale(1.2); opacity: .5; } 100% { transform: scale(1); opacity: .3; } }

.scn-stolen-fish {
  background: linear-gradient(180deg, #d9b066 0%, #a67a3a 40%, #604020 100%),
              radial-gradient(ellipse at 50% 80%, #d9b066 0%, transparent 70%);
}
.scn-stolen-fish .bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #d9b066 0%, #bf8f4a 50%, #8b5e26 100%);
  animation: sf-bg 15s ease-in-out infinite alternate;
}
.scn-stolen-fish .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(0deg, #4a3520 0%, #7a5a30 100%);
  border-radius: 20% 30% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,.4);
}
.scn-stolen-fish .figure-fisher {
  position: absolute; bottom: 25%; left: 35%; width: 16px; height: 32px;
  background: linear-gradient(180deg, #3e2c1a 0%, #20140a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sf-reach 6s ease-in-out infinite;
}
.scn-stolen-fish .hand-master {
  position: absolute; bottom: 40%; left: 55%; width: 14px; height: 10px;
  background: #4a3520;
  border-radius: 50% 40% 30% 50%;
  transform: rotate(-20deg);
  animation: sf-grab 5s ease-in-out infinite alternate;
}
.scn-stolen-fish .fish {
  position: absolute; bottom: 30%; left: 45%; width: 12px; height: 6px;
  background: #a08060;
  border-radius: 50% 30% 30% 50%;
  box-shadow: 0 0 6px 2px rgba(160,128,96,.5);
  animation: sf-fish 4s ease-in-out infinite;
}
.scn-stolen-fish .shadow-master {
  position: absolute; bottom: 25%; left: 50%; width: 30px; height: 8px;
  background: rgba(0,0,0,.3);
  border-radius: 50%;
  filter: blur(8px);
  animation: sf-shadow 6s ease-in-out infinite alternate;
}
.scn-stolen-fish .ripple {
  position: absolute; bottom: 35%; left: 42%; width: 20px; height: 4px;
  background: rgba(160,128,96,.2);
  border-radius: 50%;
  filter: blur(3px);
  animation: sf-ripple 3s ease-in-out infinite;
}
@keyframes sf-bg { 0% { opacity: .8; } 50% { opacity: 1; } 100% { opacity: .7; } }
@keyframes sf-reach { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(3deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-1px) rotate(-2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes sf-grab { 0% { transform: rotate(-20deg) translateX(0); } 50% { transform: rotate(-10deg) translateX(5px); } 100% { transform: rotate(-20deg) translateX(0); } }
@keyframes sf-fish { 0% { transform: translateX(0) rotate(0deg); opacity: .7; } 25% { transform: translateX(-3px) rotate(-5deg); opacity: 1; } 50% { transform: translateX(0) rotate(0deg); opacity: .7; } 75% { transform: translateX(3px) rotate(5deg); opacity: 1; } 100% { transform: translateX(0) rotate(0deg); opacity: .7; } }
@keyframes sf-shadow { 0% { transform: scaleX(1); opacity: .3; } 50% { transform: scaleX(1.3); opacity: .5; } 100% { transform: scaleX(1); opacity: .3; } }
@keyframes sf-ripple { 0% { transform: scale(1); opacity: .2; } 50% { transform: scale(1.5); opacity: .4; } 100% { transform: scale(1); opacity: .2; } }

.scn-creole-negro-words {
  background: linear-gradient(180deg, #f2d78a 0%, #c49a3a 30%, #7a5920 70%, #3d2a0e 100%),
              radial-gradient(ellipse at 50% 0%, #f2d78a 0%, transparent 60%);
}
.scn-creole-negro-words .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #8fcbff 0%, #f2d78a 70%);
  animation: cnw-sky 14s ease-in-out infinite alternate;
}
.scn-creole-negro-words .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(0deg, #4a3520 0%, #7a5a30 100%);
  border-radius: 30% 40% 0 0;
  box-shadow: inset 0 12px 24px rgba(0,0,0,.4);
}
.scn-creole-negro-words .figure-kneeling {
  position: absolute; bottom: 25%; left: 50%; transform: translateX(-50%);
  width: 20px; height: 36px;
  background: linear-gradient(180deg, #3e2c1a 0%, #20140a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cnw-kneel 8s ease-in-out infinite;
}
.scn-creole-negro-words .arms-up {
  position: absolute; bottom: 40%; left: 50%; transform: translateX(-50%);
  width: 6px; height: 20px;
  background: #3e2c1a;
  border-radius: 3px 3px 10px 10px;
  box-shadow: -6px -8px 0 #3e2c1a, 6px -8px 0 #3e2c1a;
  animation: cnw-arms 6s ease-in-out infinite;
}
.scn-creole-negro-words .rays {
  position: absolute; top: 5%; left: 50%; transform: translateX(-50%);
  width: 80px; height: 80px;
  background: radial-gradient(ellipse at 50% 50%, rgba(255,240,180,.8) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(2px);
  animation: cnw-rays 20s linear infinite;
}
.scn-creole-negro-words .halo {
  position: absolute; top: 8%; left: 50%; transform: translateX(-50%);
  width: 40px; height: 40px;
  background: radial-gradient(circle, #fff8c0 0%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 30px 15px rgba(255,248,192,.4);
  animation: cnw-glow 4s ease-in-out infinite alternate;
}
.scn-creole-negro-words .shadow {
  position: absolute; bottom: 22%; left: 48%; width: 30px; height: 8px;
  background: rgba(0,0,0,.3);
  border-radius: 50%;
  filter: blur(6px);
  animation: cnw-shadow 8s ease-in-out infinite;
}
@keyframes cnw-sky { 0% { opacity: .8; } 50% { opacity: 1; } 100% { opacity: .75; } }
@keyframes cnw-kneel { 0% { transform: translateX(-50%) translateY(0) rotate(0deg); } 25% { transform: translateX(-50%) translateY(-2px) rotate(2deg); } 50% { transform: translateX(-50%) translateY(-4px) rotate(0deg); } 75% { transform: translateX(-50%) translateY(-2px) rotate(-2deg); } 100% { transform: translateX(-50%) translateY(0) rotate(0deg); } }
@keyframes cnw-arms { 0% { transform: translateX(-50%) rotate(0deg); } 25% { transform: translateX(-50%) rotate(-5deg) translateY(-2px); } 50% { transform: translateX(-50%) rotate(0deg) translateY(-4px); } 75% { transform: translateX(-50%) rotate(5deg) translateY(-2px); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes cnw-rays { 0% { transform: translateX(-50%) scale(1) rotate(0deg); opacity: .6; } 50% { transform: translateX(-50%) scale(1.1) rotate(180deg); opacity: .9; } 100% { transform: translateX(-50%) scale(1) rotate(360deg); opacity: .6; } }
@keyframes cnw-glow { 0% { box-shadow: 0 0 20px 10px rgba(255,248,192,.3); opacity: .7; } 50% { box-shadow: 0 0 40px 20px rgba(255,248,192,.6); opacity: 1; } 100% { box-shadow: 0 0 20px 10px rgba(255,248,192,.3); opacity: .7; } }
@keyframes cnw-shadow { 0% { transform: scaleX(1); opacity: .3; } 50% { transform: scaleX(1.2); opacity: .5; } 100% { transform: scaleX(1); opacity: .3; } }

.scn-moses-redress {
  background: linear-gradient(180deg, #f2d78a 0%, #d9b066 50%, #8b5e26 100%),
              radial-gradient(ellipse at 50% 10%, #f2d78a 0%, transparent 70%);
}
.scn-moses-redress .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #8fcbff 0%, #f2d78a 70%);
  animation: mr-sky 16s ease-in-out infinite alternate;
}
.scn-moses-redress .desert {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(0deg, #5a3a1a 0%, #8a5a2a 30%, #a67a3a 100%);
  border-radius: 20% 40% 0 0;
  box-shadow: inset 0 8px 16px rgba(0,0,0,.3);
}
.scn-moses-redress .figure-moses {
  position: absolute; bottom: 28%; left: 30%; width: 20px; height: 38px;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a0e 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mr-moses 6s ease-in-out infinite;
}
.scn-moses-redress .figure-egyptian {
  position: absolute; bottom: 28%; left: 50%; width: 22px; height: 38px;
  background: linear-gradient(180deg, #5a3520 0%, #3a2010 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mr-egyptian 6s ease-in-out infinite;
}
.scn-moses-redress .figure-brother {
  position: absolute; bottom: 28%; left: 65%; width: 18px; height: 34px;
  background: linear-gradient(180deg, #3e2c1a 0%, #20140a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mr-brother 6s ease-in-out infinite;
}
.scn-moses-redress .staff {
  position: absolute; bottom: 30%; left: 32%; width: 3px; height: 40px;
  background: #4a3020;
  transform: rotate(10deg);
  transform-origin: bottom left;
  animation: mr-staff 4s ease-in-out infinite;
}
.scn-moses-redress .sunburst {
  position: absolute; top: 5%; left: 50%; transform: translateX(-50%);
  width: 100px; height: 100px;
  background: radial-gradient(ellipse at 50% 50%, rgba(255,240,180,.7) 0%, transparent 60%);
  border-radius: 50%;
  filter: blur(4px);
  animation: mr-sunburst 25s linear infinite;
}
.scn-moses-redress .dust {
  position: absolute; bottom: 40%; left: 40%; width: 10px; height: 10px;
  background: rgba(200,170,120,.2);
  border-radius: 50%;
  filter: blur(5px);
  animation: mr-dust 8s ease-in-out infinite;
}
@keyframes mr-sky { 0% { opacity: .8; } 50% { opacity: 1; } 100% { opacity: .75; } }
@keyframes mr-moses { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(2deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-1px) rotate(-2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes mr-egyptian { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-1px) rotate(-3deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-2px) rotate(3deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes mr-brother { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(3deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-1px) rotate(-2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes mr-staff { 0% { transform: rotate(10deg); } 50% { transform: rotate(20deg); } 100% { transform: rotate(10deg); } }
@keyframes mr-sunburst { 0% { transform: translateX(-50%) scale(1) rotate(0deg); opacity: .6; } 50% { transform: translateX(-50%) scale(1.1) rotate(180deg); opacity: .9; } 100% { transform: translateX(-50%) scale(1) rotate(360deg); opacity: .6; } }
@keyframes mr-dust { 0% { transform: translate(0, 0) scale(1); opacity: .2; } 25% { transform: translate(5px, -5px) scale(1.5); opacity: .5; } 50% { transform: translate(10px, 0) scale(1); opacity: .3; } 75% { transform: translate(5px, 5px) scale(1.2); opacity: .4; } 100% { transform: translate(0, 0) scale(1); opacity: .2; } }

/* sold-again – dark mood, sunlit */
.scn-sold-again {
  background: 
    linear-gradient(180deg, #9a7a5a 0%, #d4b78a 30%, #e8d4b0 60%, #c8a87a 100%),
    radial-gradient(ellipse at 50% 100%, #6a4a2a 0%, transparent 70%);
}
.scn-sold-again .sky-wi {
  position: absolute;
  inset: 0 0 55% 0;
  background: linear-gradient(180deg, #a08060 0%, #e0c8a0 60%, #f0dcc0 100%);
  animation: sa1-sky 12s ease-in-out infinite alternate;
}
.scn-sold-again .sun-blaze {
  position: absolute;
  top: 10%;
  left: 60%;
  width: 40px;
  height: 40px;
  background: radial-gradient(circle, #ffdd88 0%, #eebb55 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 80px 30px rgba(255, 220, 100, 0.4);
  animation: sa1-sun 8s ease-in-out infinite alternate;
}
.scn-sold-again .hills-dust {
  position: absolute;
  bottom: 40%;
  left: 0;
  right: 0;
  height: 20%;
  background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%);
  border-radius: 60% 40% 0 0 / 80% 50% 0 0;
  filter: blur(3px);
  animation: sa1-hill 18s ease-in-out infinite;
}
.scn-sold-again .road-worn {
  position: absolute;
  bottom: 22%;
  left: 0;
  right: 0;
  height: 18%;
  background: linear-gradient(180deg, #8a6a4a 0%, #6a4a2a 50%, #4a2a0a 100%);
  clip-path: polygon(0% 0%, 100% 0%, 85% 100%, 15% 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.5);
  animation: sa1-road 10s ease-in-out infinite alternate;
}
.scn-sold-again .figure-march {
  position: absolute;
  bottom: 24%;
  left: 30%;
  width: 18px;
  height: 36px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sa1-walk 4s ease-in-out infinite;
}
.scn-sold-again .chain-link {
  position: absolute;
  bottom: 28%;
  left: 28%;
  width: 40px;
  height: 6px;
  background: repeating-linear-gradient(90deg, #5a3a2a 0px 4px, transparent 4px 10px);
  border-radius: 4px;
  transform: rotate(-10deg);
  animation: sa1-chain 3s ease-in-out infinite;
}
.scn-sold-again .shadow-stretch {
  position: absolute;
  bottom: 20%;
  left: 25%;
  width: 60px;
  height: 20px;
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.3) 0%, transparent 70%);
  filter: blur(5px);
  animation: sa1-shadow 6s ease-in-out infinite alternate;
}
@keyframes sa1-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes sa1-sun { 0% { transform: scale(0.95) translateY(-2px); box-shadow: 0 0 60px 20px rgba(255, 220, 100, 0.3); } 100% { transform: scale(1.05) translateY(2px); box-shadow: 0 0 100px 40px rgba(255, 220, 100, 0.5); } }
@keyframes sa1-hill { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-4px) scaleX(1.02); } 100% { transform: translateY(0) scaleX(1); } }
@keyframes sa1-road { 0% { opacity: 0.8; } 100% { opacity: 1; } }
@keyframes sa1-walk { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(8px) rotate(2deg); } 50% { transform: translateX(16px) rotate(-2deg); } 75% { transform: translateX(24px) rotate(2deg); } 100% { transform: translateX(32px) rotate(0deg); } }
@keyframes sa1-chain { 0% { transform: rotate(-12deg) translateX(0); } 50% { transform: rotate(-8deg) translateX(2px); } 100% { transform: rotate(-12deg) translateX(0); } }
@keyframes sa1-shadow { 0% { transform: scaleX(0.8); opacity: 0.4; } 100% { transform: scaleX(1.2); opacity: 0.7; } }

/* reunion-sister – warm mood, dusk */
.scn-reunion-sister {
  background: 
    linear-gradient(180deg, #3a1a1a 0%, #6a2a2a 20%, #9a5a3a 50%, #c88a5a 100%),
    radial-gradient(ellipse at 50% 30%, #e8a85a 0%, transparent 60%);
}
.scn-reunion-sister .room-bg {
  position: absolute;
  inset: 0 30% 0 0;
  background: linear-gradient(180deg, #4a2a1a 0%, #7a4a2a 60%, #5a3a1a 100%);
  border-radius: 0 20% 0 0;
  animation: rs2-room 10s ease-in-out infinite alternate;
}
.scn-reunion-sister .door-frame {
  position: absolute;
  bottom: 0;
  right: 20%;
  width: 40%;
  height: 90%;
  border: 4px solid #4a2a1a;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 8% 8% 0 0;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.5);
  animation: rs2-door 6s ease-in-out infinite;
}
.scn-reunion-sister .window-dusk {
  position: absolute;
  top: 10%;
  right: 10%;
  width: 50px;
  height: 70px;
  background: radial-gradient(ellipse at 50% 30%, #ffaa55 0%, #cc8833 60%, transparent 100%);
  border-radius: 4px;
  box-shadow: 0 0 40px 15px rgba(255, 170, 85, 0.3);
  animation: rs2-window 4s ease-in-out infinite alternate;
}
.scn-reunion-sister .sister-left {
  position: absolute;
  bottom: 12%;
  left: 38%;
  width: 20px;
  height: 40px;
  background: linear-gradient(180deg, #6a3a2a 0%, #4a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom right;
  animation: rs2-embrace-l 3s ease-in-out infinite;
}
.scn-reunion-sister .sister-right {
  position: absolute;
  bottom: 12%;
  left: 48%;
  width: 20px;
  height: 40px;
  background: linear-gradient(180deg, #5a2a1a 0%, #3a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom left;
  animation: rs2-embrace-r 3s ease-in-out infinite;
}
.scn-reunion-sister .embrace-glow {
  position: absolute;
  bottom: 20%;
  left: 40%;
  width: 50px;
  height: 30px;
  background: radial-gradient(ellipse at 50% 50%, rgba(255, 200, 100, 0.4) 0%, transparent 70%);
  filter: blur(8px);
  animation: rs2-glow 3s ease-in-out infinite;
}
@keyframes rs2-room { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes rs2-door { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.98); } 100% { transform: scaleY(1); } }
@keyframes rs2-window { 0% { box-shadow: 0 0 30px 10px rgba(255, 170, 85, 0.2); opacity: 0.8; } 100% { box-shadow: 0 0 60px 25px rgba(255, 170, 85, 0.5); opacity: 1; } }
@keyframes rs2-embrace-l { 0% { transform: translate(0, 0) rotate(10deg); } 50% { transform: translate(2px, -1px) rotate(15deg); } 100% { transform: translate(0, 0) rotate(10deg); } }
@keyframes rs2-embrace-r { 0% { transform: translate(0, 0) rotate(-10deg); } 50% { transform: translate(-2px, -1px) rotate(-15deg); } 100% { transform: translate(0, 0) rotate(-10deg); } }
@keyframes rs2-glow { 0% { opacity: 0.3; transform: scale(0.9); } 50% { opacity: 0.7; transform: scale(1.1); } 100% { opacity: 0.3; transform: scale(0.9); } }

/* sister-separation-forever – dark mood, dawn */
.scn-sister-separation-forever {
  background: 
    linear-gradient(180deg, #1a1a2a 0%, #2a2a4a 30%, #4a4a6a 60%, #6a5a4a 100%),
    radial-gradient(ellipse at 50% 20%, #e8d4a0 0%, transparent 70%);
}
.scn-sister-separation-forever .dawn-skies {
  position: absolute;
  inset: 0 0 40% 0;
  background: linear-gradient(180deg, #4a3a5a 0%, #7a6a5a 40%, #c8a87a 70%, #e8d4a0 100%);
  animation: ss3-sky 15s ease-in-out infinite alternate;
}
.scn-sister-separation-forever .horizon-line {
  position: absolute;
  bottom: 38%;
  left: 0;
  right: 0;
  height: 4%;
  background: linear-gradient(90deg, #8a7a6a, #c8b08a, #8a7a6a);
  filter: blur(2px);
  animation: ss3-horizon 8s ease-in-out infinite;
}
.scn-sister-separation-forever .figure-bound {
  position: absolute;
  bottom: 20%;
  left: 30%;
  width: 16px;
  height: 34px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ss3-left 4s ease-in-out infinite;
}
.scn-sister-separation-forever .figure-holding {
  position: absolute;
  bottom: 20%;
  left: 48%;
  width: 16px;
  height: 34px;
  background: linear-gradient(180deg, #3a1a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ss3-right 4s ease-in-out infinite;
}
.scn-sister-separation-forever .tear-drop {
  position: absolute;
  bottom: 30%;
  left: 42%;
  width: 4px;
  height: 8px;
  background: radial-gradient(circle, #aaccff 0%, transparent 100%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  filter: blur(1px);
  animation: ss3-tear 2s ease-in-out infinite;
}
.scn-sister-separation-forever .shadow-hand {
  position: absolute;
  bottom: 25%;
  left: 55%;
  width: 30px;
  height: 40px;
  background: linear-gradient(180deg, #1a1a1a 0%, #2a2a2a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform: rotate(-20deg);
  animation: ss3-hand 4s ease-in-out infinite alternate;
}
@keyframes ss3-sky { 0% { opacity: 0.5; } 50% { opacity: 0.8; } 100% { opacity: 0.6; } }
@keyframes ss3-horizon { 0% { opacity: 0.6; transform: scaleX(1); } 50% { opacity: 1; transform: scaleX(1.05); } 100% { opacity: 0.6; transform: scaleX(1); } }
@keyframes ss3-left { 0% { transform: translate(0, 0) rotate(-2deg); } 25% { transform: translate(-4px, 1px) rotate(-5deg); } 50% { transform: translate(-8px, 2px) rotate(-8deg); } 75% { transform: translate(-4px, 1px) rotate(-5deg); } 100% { transform: translate(0, 0) rotate(-2deg); } }
@keyframes ss3-right { 0% { transform: translate(0, 0) rotate(2deg); } 25% { transform: translate(4px, 1px) rotate(5deg); } 50% { transform: translate(8px, 2px) rotate(8deg); } 75% { transform: translate(4px, 1px) rotate(5deg); } 100% { transform: translate(0, 0) rotate(2deg); } }
@keyframes ss3-tear { 0% { transform: translateY(0) scale(1); opacity: 0.8; } 100% { transform: translateY(8px) scale(0.8); opacity: 0; } }
@keyframes ss3-hand { 0% { transform: rotate(-20deg) translateX(0); } 100% { transform: rotate(-15deg) translateX(5px); } }

/* tinmah-country – warm mood, sunlit */
.scn-tinmah-country {
  background: 
    linear-gradient(180deg, #4a8a5a 0%, #6aaa7a 30%, #8acc9a 60%, #aaddaa 100%),
    radial-gradient(ellipse at 50% 10%, #ffdd88 0%, transparent 60%);
}
.scn-tinmah-country .tropic-sky {
  position: absolute;
  inset: 0 0 40% 0;
  background: linear-gradient(180deg, #6aaa7a 0%, #8acc9a 50%, #aaddaa 100%);
  animation: tc4-sky 15s ease-in-out infinite alternate;
}
.scn-tinmah-country .sun-high {
  position: absolute;
  top: 8%;
  left: 75%;
  width: 50px;
  height: 50px;
  background: radial-gradient(circle, #ffee88 0%, #ffcc44 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 100px 40px rgba(255, 204, 68, 0.4);
  animation: tc4-sun 10s ease-in-out infinite alternate;
}
.scn-tinmah-country .palm-trees {
  position: absolute;
  bottom: 30%;
  left: 10%;
  width: 30px;
  height: 80px;
  background: linear-gradient(180deg, #2a5a2a 0%, #1a3a1a 100%);
  border-radius: 20% 20% 10% 10% / 90% 90% 30% 30%;
  transform: rotate(-15deg);
  box-shadow: inset 0 4px 10px rgba(0,0,0,0.3);
  animation: tc4-palm 6s ease-in-out infinite;
}
.scn-tinmah-country .hut-round {
  position: absolute;
  bottom: 20%;
  left: 55%;
  width: 80px;
  height: 50px;
  background: linear-gradient(180deg, #c8a86a 0%, #a08050 100%);
  border-radius: 60% 60% 10% 10% / 80% 80% 20% 20%;
  box-shadow: 0 8px 15px rgba(0,0,0,0.4);
  animation: tc4-hut 12s ease-in-out infinite alternate;
}
.scn-tinmah-country .coconut-cluster {
  position: absolute;
  bottom: 50%;
  left: 8%;
  width: 20px;
  height: 20px;
  background: radial-gradient(circle, #5a3a1a 0%, #3a2a0a 100%);
  border-radius: 50%;
  box-shadow: 10px -5px 0 rgba(90, 58, 26, 0.8), -5px -8px 0 rgba(90, 58, 26, 0.6);
  animation: tc4-coconut 4s ease-in-out infinite;
}
.scn-tinmah-country .widow-figure {
  position: absolute;
  bottom: 22%;
  left: 70%;
  width: 20px;
  height: 40px;
  background: linear-gradient(180deg, #5a3a3a 0%, #3a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tc4-widow 5s ease-in-out infinite;
}
.scn-tinmah-country .child-speaker {
  position: absolute;
  bottom: 22%;
  left: 50%;
  width: 16px;
  height: 32px;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tc4-child 5s ease-in-out infinite;
}
@keyframes tc4-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes tc4-sun { 0% { transform: scale(0.95) translateY(-3px); box-shadow: 0 0 80px 30px rgba(255, 204, 68, 0.3); } 100% { transform: scale(1.05) translateY(3px); box-shadow: 0 0 120px 50px rgba(255, 204, 68, 0.5); } }
@keyframes tc4-palm { 0% { transform: rotate(-15deg) translateY(0); } 50% { transform: rotate(-13deg) translateY(-2px); } 100% { transform: rotate(-15deg) translateY(0); } }
@keyframes tc4-hut { 0% { transform: scale(1); } 50% { transform: scale(0.98); } 100% { transform: scale(1); } }
@keyframes tc4-coconut { 0% { transform: translate(0, 0) rotate(0deg); } 50% { transform: translate(2px, -2px) rotate(10deg); } 100% { transform: translate(0, 0) rotate(0deg); } }
@keyframes tc4-widow { 0% { transform: translate(0, 0) rotate(0deg); } 50% { transform: translate(3px, -1px) rotate(3deg); } 100% { transform: translate(0, 0) rotate(0deg); } }
@keyframes tc4-child { 0% { transform: translate(0, 0) rotate(0deg); } 50% { transform: translate(-2px, -1px) rotate(-3deg); } 100% { transform: translate(0, 0) rotate(0deg); } }

/* master-betrayal – dark overcast barge scene */
.scn-master-betrayal {
  background: linear-gradient(180deg, #2b3a4a 0%, #1e2a36 40%, #121a22 100%),
              radial-gradient(ellipse at 50% 0%, #3c4d5e 0%, transparent 60%);
}
.scn-master-betrayal .sky-overcast {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #4a5a6a 0%, #2b3a4a 60%, #1e2a36 100%);
  animation: mb-sky 15s ease-in-out infinite alternate;
}
.scn-master-betrayal .water-dark {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #1a2a3a 0%, #0f1a25 60%, #050a10 100%);
  border-radius: 60% 40% 0 0 / 20% 10% 0 0;
  animation: mb-water 10s ease-in-out infinite;
}
.scn-master-betrayal .barge {
  position: absolute; bottom: 20%; left: 30%; width: 120px; height: 40px;
  background: linear-gradient(90deg, #4a3a2a 0%, #5a4a3a 50%, #3a2a1a 100%);
  border-radius: 0 0 30% 30% / 0 0 60% 60%;
  box-shadow: 0 -4px 10px rgba(0,0,0,0.5);
  transform: scale(1, 0.8);
}
.scn-master-betrayal .figure-equal {
  position: absolute; bottom: 20%; left: 35%; width: 16px; height: 40px;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mb-equal 4s ease-in-out infinite;
}
.scn-master-betrayal .figure-master {
  position: absolute; bottom: 20%; left: 55%; width: 20px; height: 42px;
  background: linear-gradient(180deg, #3a3a3a 0%, #2a2a2a 60%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mb-master 3s ease-in-out infinite;
}
.scn-master-betrayal .blade {
  position: absolute; bottom: 35%; left: 58%; width: 4px; height: 30px;
  background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%);
  border-radius: 20% 20% 0 0;
  transform: rotate(15deg);
  animation: mb-blade 2s ease-in-out infinite alternate;
}
.scn-master-betrayal .mist { position: absolute; top: 20%; width: 120px; height: 60px; background: rgba(255,255,255,0.03); border-radius: 50%; filter: blur(15px); }
.scn-master-betrayal .mist-a { left: 10%; animation: mb-drift 40s linear infinite; }
.scn-master-betrayal .mist-b { right: 0; width: 160px; animation: mb-drift 55s linear infinite reverse; }
@keyframes mb-sky    { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.6 } }
@keyframes mb-water  { 0% { transform: translateY(0) } 50% { transform: translateY(4px) } 100% { transform: translateY(0) } }
@keyframes mb-equal  { 0% { transform: translateX(0) rotate(1deg) } 25% { transform: translateX(4px) rotate(-2deg) } 50% { transform: translateX(8px) rotate(1deg) } 75% { transform: translateX(12px) rotate(-1deg) } 100% { transform: translateX(16px) rotate(0) } }
@keyframes mb-master { 0% { transform: translateX(0) } 50% { transform: translateX(-2px) } 100% { transform: translateX(0) } }
@keyframes mb-blade  { 0% { transform: rotate(10deg) } 100% { transform: rotate(20deg) } }
@keyframes mb-drift  { 0% { transform: translateX(-30px) } 100% { transform: translateX(120vw) } }

/* forced-sale – tense dim interior sale scene */
.scn-forced-sale {
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 40%, #1a0a00 100%),
              radial-gradient(ellipse at 30% 50%, #5a4a2a 0%, transparent 70%);
}
.scn-forced-sale .wall-beam {
  position: absolute; inset: 0 0 20% 0;
  background: repeating-linear-gradient(0deg, #4a3a2a 0px, #4a3a2a 20px, #3a2a1a 20px, #3a2a1a 40px);
  border-radius: 0 0 10% 10%;
}
.scn-forced-sale .floor-plank {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(90deg, #2a1a0a 0%, #3a2a1a 50%, #2a1a0a 100%);
  border-top: 2px solid #1a0a00;
}
.scn-forced-sale .lantern-glow {
  position: absolute; top: 15%; left: 15%; width: 30px; height: 40px;
  background: radial-gradient(circle, #c08040 0%, #8a5a20 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 40px 20px rgba(192,128,64,0.6);
  animation: fs-lantern 3s ease-in-out infinite alternate;
}
.scn-forced-sale .captain-doran {
  position: absolute; bottom: 20%; left: 40%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fs-captain 5s ease-in-out infinite;
}
.scn-forced-sale .figure-eq {
  position: absolute; bottom: 20%; left: 55%; width: 18px; height: 44px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: fs-eq 6s ease-in-out infinite;
}
.scn-forced-sale .chain {
  position: absolute; bottom: 30%; left: 47%; width: 10px; height: 30px;
  background: repeating-linear-gradient(0deg, #7a5a3a 0px, #7a5a3a 4px, #5a3a1a 4px, #5a3a1a 8px);
  border-radius: 2px;
  transform-origin: top center;
  animation: fs-chain 2s ease-in-out infinite;
}
.scn-forced-sale .shadow-sale {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, rgba(0,0,0,0.6) 0%, transparent 100%);
}
.scn-forced-sale .dust { position: absolute; width: 6px; height: 6px; background: rgba(255,200,100,0.4); border-radius: 50%; }
.scn-forced-sale .mote-a { top: 30%; left: 30%; animation: fs-dust 12s ease-in-out infinite; }
.scn-forced-sale .mote-b { top: 50%; left: 60%; width: 4px; height: 4px; animation: fs-dust 18s ease-in-out infinite reverse; }
@keyframes fs-lantern { 0% { opacity: 0.8; box-shadow: 0 0 30px 15px rgba(192,128,64,0.4); } 50% { opacity: 1; box-shadow: 0 0 50px 30px rgba(192,128,64,0.7); } 100% { opacity: 0.9; box-shadow: 0 0 35px 20px rgba(192,128,64,0.5); } }
@keyframes fs-captain { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(-2px) rotate(2deg); } 50% { transform: translateX(0) rotate(0); } 75% { transform: translateX(2px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes fs-eq { 0% { transform: translateX(0) translateY(0); } 33% { transform: translateX(-3px) translateY(-2px); } 66% { transform: translateX(3px) translateY(-1px); } 100% { transform: translateX(0) translateY(0); } }
@keyframes fs-chain { 0% { transform: rotate(0); } 50% { transform: rotate(5deg); } 100% { transform: rotate(0); } }
@keyframes fs-dust { 0% { transform: translate(0, 0); opacity: 0.3; } 50% { transform: translate(10px, -20px); opacity: 0.6; } 100% { transform: translate(-5px, -40px); opacity: 0; } }

/* on-charming-sally – dark deck scene with prostrate figure */
.scn-on-charming-sally {
  background: linear-gradient(180deg, #0a0f1a 0%, #141a2a 30%, #1e2440 60%, #0a0f1a 100%),
              radial-gradient(ellipse at 50% 20%, #2a3a5a 0%, transparent 60%);
}
.scn-on-charming-sally .night-sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #0a0f1a 0%, #141a2a 60%, #1e2440 100%);
  animation: cs-sky 20s ease-in-out infinite alternate;
}
.scn-on-charming-sally .deck-planks {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: repeating-linear-gradient(90deg, #2a1a0a 0px, #2a1a0a 15px, #1a0a00 15px, #1a0a00 30px);
  border-top: 4px solid #0a0000;
}
.scn-on-charming-sally .ship-rail {
  position: absolute; bottom: 45%; left: 5%; right: 5%; height: 8px;
  background: linear-gradient(90deg, #3a2a1a, #4a3a2a, #3a2a1a);
  border-radius: 2px;
}
.scn-on-charming-sally .prostrate-figure {
  position: absolute; bottom: 10%; left: 50%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 30% 30% 40% 40% / 30% 30% 50% 50%;
  transform: translateX(-50%) rotate(80deg);
  transform-origin: bottom center;
  animation: cs-figure 6s ease-in-out infinite;
}
.scn-on-charming-sally .coat {
  position: absolute; bottom: 20%; left: 52%; width: 16px; height: 24px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 20% 20% 30% 30% / 40% 40% 20% 20%;
  transform: translateX(-50%) rotate(10deg);
  animation: cs-coat 4s ease-in-out infinite;
}
.scn-on-charming-sally .coins {
  position: absolute; bottom: 15%; left: 40%; width: 12px; height: 12px;
  background: radial-gradient(circle, #b0a060 0%, #7a6a3a 100%);
  border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(176,160,96,0.4);
  animation: cs-coins 8s ease-in-out infinite;
}
.scn-on-charming-sally .rigging {
  position: absolute; top: 5%; width: 2px; height: 40px;
  background: linear-gradient(180deg, #3a3a3a 0%, #1a1a1a 100%);
  transform-origin: top;
}
.scn-on-charming-sally .rig-a { left: 20%; transform: rotate(10deg); animation: cs-rig 15s ease-in-out infinite; }
.scn-on-charming-sally .rig-b { left: 70%; transform: rotate(-8deg); animation: cs-rig 20s ease-in-out infinite reverse; }
@keyframes cs-sky { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes cs-figure { 0% { transform: translateX(-50%) rotate(80deg) scale(1); } 50% { transform: translateX(-50%) rotate(75deg) scale(0.95); } 100% { transform: translateX(-50%) rotate(85deg) scale(1); } }
@keyframes cs-coat { 0% { transform: translateX(-50%) rotate(10deg) translateY(0); } 50% { transform: translateX(-50%) rotate(8deg) translateY(-2px); } 100% { transform: translateX(-50%) rotate(12deg) translateY(0); } }
@keyframes cs-coins { 0% { transform: scale(1); opacity: 0.8; } 50% { transform: scale(1.1); opacity: 1; } 100% { transform: scale(1); opacity: 0.8; } }
@keyframes cs-rig { 0% { transform: rotate(10deg) scaleY(1); } 50% { transform: rotate(12deg) scaleY(0.9); } 100% { transform: rotate(8deg) scaleY(1); } }

/* gosport-friends – tense sunlit quayside */
.scn-gosport-friends {
  background: linear-gradient(180deg, #c8d8e0 0%, #a0b8c8 40%, #7a96a8 100%),
              radial-gradient(ellipse at 60% 20%, #e0f0ff 0%, transparent 50%);
}
.scn-gosport-friends .sun-sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #d8e8f0 0%, #a0b8c8 60%, #708898 100%);
  animation: gf-sky 20s ease-in-out infinite alternate;
}
.scn-gosport-friends .quay-stones {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(0deg, #5a6a6a 0%, #7a8a8a 20%, #4a5a5a 100%);
  border-radius: 10% 10% 0 0 / 5% 5% 0 0;
}
.scn-gosport-friends .building {
  position: absolute; bottom: 35%; left: 10%; width: 40%; height: 40%;
  background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%);
  box-shadow: -4px 0 8px rgba(0,0,0,0.3);
  border-radius: 2% 2% 0 0;
}
.scn-gosport-friends .lady-gosport {
  position: absolute; bottom: 38%; left: 55%; width: 18px; height: 46px;
  background: linear-gradient(180deg, #a0a0a0 0%, #707070 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gf-lady 5s ease-in-out infinite;
}
.scn-gosport-friends .master-figure {
  position: absolute; bottom: 38%; left: 65%; width: 20px; height: 48px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: gf-master 4s ease-in-out infinite;
}
.scn-gosport-friends .oranges {
  position: absolute; bottom: 45%; left: 48%; width: 10px; height: 10px;
  background: radial-gradient(circle, #d08040 0%, #a06020 100%);
  border-radius: 50%;
  box-shadow: 0 0 8px 2px rgba(208,128,64,0.5);
  animation: gf-orange 6s ease-in-out infinite;
}
.scn-gosport-friends .shadow-hard {
  position: absolute; bottom: 35%; left: 50%; width: 40px; height: 10px;
  background: rgba(0,0,0,0.3);
  border-radius: 50%;
  transform: skewX(-20deg);
  animation: gf-shadow 5s ease-in-out infinite;
}
.scn-gosport-friends .seagull {
  position: absolute; width: 16px; height: 8px;
  background: linear-gradient(180deg, #d0d0d0 0%, #a0a0a0 100%);
  border-radius: 50% 50% 0 0;
  filter: blur(1px);
}
.scn-gosport-friends .gull-a { top: 10%; left: 20%; animation: gf-gull 12s linear infinite; }
.scn-gosport-friends .gull-b { top: 15%; left: 70%; width: 12px; height: 6px; animation: gf-gull 18s linear infinite reverse; }
@keyframes gf-sky { 0% { background-position: 0% 0%; } 50% { background-position: 5% 10%; } 100% { background-position: -5% -5%; } }
@keyframes gf-lady { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(2px) rotate(3deg); } 50% { transform: translateX(0) rotate(0); } 75% { transform: translateX(-2px) rotate(-3deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes gf-master { 0% { transform: translateX(0) rotate(0); } 33% { transform: translateX(3px) rotate(-2deg); } 66% { transform: translateX(-2px) rotate(2deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes gf-orange { 0% { opacity: 0.7; transform: scale(1); } 50% { opacity: 1; transform: scale(1.2); } 100% { opacity: 0.7; transform: scale(1); } }
@keyframes gf-shadow { 0% { transform: skewX(-20deg) scaleX(1); } 50% { transform: skewX(-18deg) scaleX(0.9); } 100% { transform: skewX(-22deg) scaleX(1); } }
@keyframes gf-gull { 0% { transform: translateX(-30px); } 100% { transform: translateX(120vw); } }

/* Scene 1: slave-ship-fish */
.scn-slave-ship-fish {
  background: linear-gradient(180deg, #1a2a3a 0%, #3a5a6a 40%, #2a4a5a 70%, #0a1a2a 100%),
              radial-gradient(ellipse at 80% 20%, #ffeaa0 0%, transparent 40%);
}
.scn-slave-ship-fish .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #5a7a9a 0%, #2a4a5a 60%, transparent 100%);
  animation: ssf-sky 12s ease-in-out infinite alternate;
}
.scn-slave-ship-fish .sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #2a5a6a 0%, #0a2a3a 60%, #061a22 100%);
  box-shadow: inset 0 40px 30px rgba(0,0,0,0.5);
  animation: ssf-sea 10s ease-in-out infinite alternate;
}
.scn-slave-ship-fish .ship-rail {
  position: absolute; bottom: 45%; left: 10%; right: 10%; height: 8%;
  background: linear-gradient(90deg, #4a2a1a 0%, #5a3a2a 50%, #3a1a0a 100%);
  border-radius: 4px; box-shadow: 0 -4px 10px rgba(0,0,0,0.6);
  animation: ssf-rail 8s ease-in-out infinite;
}
.scn-slave-ship-fish .chained-figure {
  position: absolute; bottom: 48%; left: 35%; width: 20px; height: 36px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-5deg);
  animation: ssf-figure 6s ease-in-out infinite;
}
.scn-slave-ship-fish .fish {
  position: absolute;
  background: radial-gradient(circle, #4a8a6a 0%, #2a5a3a 100%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
}
.scn-slave-ship-fish .flying-fish {
  bottom: 40%; left: 60%; width: 18px; height: 8px;
  transform: rotate(-20deg);
  box-shadow: 0 0 6px rgba(100,200,180,0.4);
  animation: ssf-flyfish 5s ease-in-out infinite;
}
.scn-slave-ship-fish .discarded {
  bottom: 30%; left: 20%; width: 14px; height: 6px;
  background: radial-gradient(circle, #7a6a5a 0%, #4a3a2a 100%);
  border-radius: 40%;
  transform: rotate(15deg);
  animation: ssf-discard 7s ease-in-out infinite;
}
.scn-slave-ship-fish .sun {
  position: absolute; top: 12%; right: 18%; width: 30px; height: 30px;
  background: radial-gradient(circle, #ffeaa0 0%, #ffcc7070 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(255,234,160,0.5);
  animation: ssf-sun 20s ease-in-out infinite alternate;
}
.scn-slave-ship-fish .shadow {
  position: absolute; bottom: 48%; left: 30%; right: 50%; height: 4px;
  background: linear-gradient(90deg, rgba(0,0,0,0.5) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(2px);
  animation: ssf-shadow 6s ease-in-out infinite;
}
@keyframes ssf-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes ssf-sea { 0% { transform: translateY(0); } 50% { transform: translateY(4px); } 100% { transform: translateY(-2px); } }
@keyframes ssf-rail { 0% { transform: translateY(0); } 50% { transform: translateY(2px); } 100% { transform: translateY(0); } }
@keyframes ssf-figure { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-2px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes ssf-flyfish { 0% { transform: translate(0,0) rotate(-20deg); } 50% { transform: translate(10px, -8px) rotate(-15deg); } 100% { transform: translate(20px, -2px) rotate(-20deg); } }
@keyframes ssf-discard { 0% { transform: translate(0,0) rotate(15deg) scale(1); } 50% { transform: translate(-8px, 6px) rotate(10deg) scale(0.9); } 100% { transform: translate(0,0) rotate(15deg) scale(1); } }
@keyframes ssf-sun { 0% { box-shadow: 0 0 40px 20px rgba(255,234,160,0.5); } 50% { box-shadow: 0 0 60px 30px rgba(255,234,160,0.8); } 100% { box-shadow: 0 0 40px 20px rgba(255,234,160,0.5); } }
@keyframes ssf-shadow { 0% { opacity: 0.6; } 50% { opacity: 0.3; } 100% { opacity: 0.6; } }

/* Scene 2: item-quadrant */
.scn-item-quadrant {
  background: linear-gradient(180deg, #4a7a9a 0%, #7aaaca 40%, #9acaea 70%, #c0e0f0 100%),
              radial-gradient(ellipse at 70% 20%, #ffdd80 0%, transparent 50%);
}
.scn-item-quadrant .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #7ab0d0 0%, #f0f8ff 80%);
  animation: iq-sky 20s ease-in-out infinite alternate;
}
.scn-item-quadrant .sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #3a7a8a 0%, #1a4a5a 100%);
  box-shadow: inset 0 20px 30px rgba(0,0,0,0.3);
  animation: iq-sea 8s ease-in-out infinite alternate;
}
.scn-item-quadrant .deck {
  position: absolute; bottom: 35%; left: 5%; right: 5%; height: 12%;
  background: linear-gradient(90deg, #6a4a2a 0%, #8a6a4a 50%, #5a3a1a 100%);
  border-radius: 6px; box-shadow: 0 -4px 10px rgba(0,0,0,0.3);
  animation: iq-deck 12s ease-in-out infinite;
}
.scn-item-quadrant .figure-profile {
  position: absolute; bottom: 38%; left: 30%; width: 18px; height: 32px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 60% 40% 40% / 50% 70% 40% 50%;
  transform: rotate(5deg);
  animation: iq-profile 7s ease-in-out infinite;
}
.scn-item-quadrant .quadrant {
  position: absolute; bottom: 45%; left: 40%; width: 22px; height: 16px;
  background: linear-gradient(180deg, #c0a060 0%, #8a6a30 100%);
  border-radius: 30% 30% 10% 10%;
  transform: rotate(30deg);
  box-shadow: 0 0 8px rgba(200,180,100,0.6);
  animation: iq-quadrant 5s ease-in-out infinite;
}
.scn-item-quadrant .flying-fish {
  position: absolute; bottom: 50%; right: 10%; width: 16px; height: 6px;
  background: radial-gradient(circle, #90d0c0 0%, #60a090 100%);
  border-radius: 50%;
  transform: rotate(-25deg);
  animation: iq-fish 4s ease-in-out infinite;
}
.scn-item-quadrant .cloud {
  position: absolute; top: 15%; left: 10%; width: 60px; height: 12px;
  background: rgba(255,255,255,0.4);
  border-radius: 50%;
  filter: blur(8px);
  animation: iq-cloud 30s linear infinite;
}
@keyframes iq-sky { 0% { background-position: 0 0; } 50% { background-position: 0 10%; } 100% { background-position: 0 0; } }
@keyframes iq-sea { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes iq-deck { 0% { transform: translateX(0); } 50% { transform: translateX(2px); } 100% { transform: translateX(0); } }
@keyframes iq-profile { 0% { transform: rotate(5deg) translateY(0); } 50% { transform: rotate(3deg) translateY(-2px); } 100% { transform: rotate(5deg) translateY(0); } }
@keyframes iq-quadrant { 0% { transform: rotate(30deg) scale(1); } 50% { transform: rotate(25deg) scale(1.05); } 100% { transform: rotate(30deg) scale(1); } }
@keyframes iq-fish { 0% { transform: translate(0,0) rotate(-25deg); } 50% { transform: translate(12px, -6px) rotate(-20deg); } 100% { transform: translate(24px, -2px) rotate(-25deg); } }
@keyframes iq-cloud { 0% { transform: translateX(0); } 100% { transform: translateX(80vw); } }

/* Scene 3: barbadoes-arrival */
.scn-barbadoes-arrival {
  background: linear-gradient(180deg, #2a1a3a 0%, #5a3a5a 30%, #8a5a6a 60%, #b08060 100%),
              radial-gradient(ellipse at 50% 80%, #ff9966 0%, transparent 60%);
}
.scn-barbadoes-arrival .sky-dusk {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #4a2a4a 0%, #8a5a6a 50%, #c08060 100%);
  animation: ba-sky 15s ease-in-out infinite alternate;
}
.scn-barbadoes-arrival .land {
  position: absolute; bottom: 25%; left: 10%; right: 10%; height: 20%;
  background: linear-gradient(180deg, #5a6a3a 0%, #3a4a2a 100%);
  border-radius: 40% 50% 0 0 / 60% 70% 0 0;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.4);
  animation: ba-land 20s ease-in-out infinite alternate;
}
.scn-barbadoes-arrival .ship {
  position: absolute; bottom: 35%; left: 15%; width: 80px; height: 40px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%);
  border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.6);
  animation: ba-ship 10s ease-in-out infinite;
}
.scn-barbadoes-arrival .slaves-huddle {
  position: absolute; bottom: 35%; left: 30%; width: 30px; height: 20px;
  background: radial-gradient(ellipse, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 50%;
  filter: blur(2px);
  animation: ba-huddle 6s ease-in-out infinite;
}
.scn-barbadoes-arrival .planter {
  position: absolute; bottom: 38%; right: 20%; width: 18px; height: 34px;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a1a 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%;
  transform: rotate(-5deg);
  animation: ba-planter 8s ease-in-out infinite;
}
.scn-barbadoes-arrival .lantern {
  position: absolute; bottom: 40%; left: 25%; width: 8px; height: 8px;
  background: radial-gradient(circle, #ffcc70 0%, #ff8830 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 8px rgba(255,136,48,0.6);
  animation: ba-lantern 3s ease-in-out infinite alternate;
}
.scn-barbadoes-arrival .wave {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 8%;
  background: linear-gradient(180deg, #2a5a6a 0%, transparent 100%);
  border-radius: 0 0 40% 40%;
  filter: blur(2px);
  animation: ba-wave 5s ease-in-out infinite;
}
@keyframes ba-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes ba-land { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.05); } 100% { transform: scaleY(1); } }
@keyframes ba-ship { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes ba-huddle { 0% { transform: translateX(0); } 50% { transform: translateX(2px); } 100% { transform: translateX(0); } }
@keyframes ba-planter { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-2px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes ba-lantern { 0% { box-shadow: 0 0 15px 5px rgba(255,136,48,0.4); } 100% { box-shadow: 0 0 30px 12px rgba(255,136,48,0.8); } }
@keyframes ba-wave { 0% { transform: translateY(0); } 50% { transform: translateY(4px); } 100% { transform: translateY(0); } }

/* Scene 4: barbadoes-yard */
.scn-barbadoes-yard {
  background: linear-gradient(180deg, #7aa0c0 0%, #8ab0d0 30%, #f0e8d0 60%, #c0b090 100%),
              radial-gradient(ellipse at 60% 30%, #ffddb0 0%, transparent 50%);
}
.scn-barbadoes-yard .sky-sun {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #6a8aaa 0%, #b0d0e0 100%);
  animation: by-sky 18s ease-in-out infinite alternate;
}
.scn-barbadoes-yard .wall {
  position: absolute; bottom: 0; left: 0; right: 0; height: 70%;
  background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%);
  box-shadow: inset 0 20px 30px rgba(0,0,0,0.3);
  border-radius: 5% 5% 0 0 / 10% 10% 0 0;
  animation: by-wall 12s ease-in-out infinite;
}
.scn-barbadoes-yard .house {
  position: absolute; bottom: 45%; left: 10%; width: 50px; height: 40px;
  background: linear-gradient(180deg, #c0a080 0%, #a08060 100%);
  border-radius: 4px; box-shadow: 0 8px 16px rgba(0,0,0,0.4);
  animation: by-house 15s ease-in-out infinite;
}
.scn-barbadoes-yard .horse {
  position: absolute; bottom: 40%; right: 20%; width: 24px; height: 18px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 50% 30% 30% / 50% 60% 20% 20%;
  transform: scale(0.9);
  animation: by-horse 9s ease-in-out infinite;
}
.scn-barbadoes-yard .slave-group {
  position: absolute; bottom: 30%; left: 30%; width: 40px; height: 30px;
  background: radial-gradient(ellipse, #4a3a2a 0%, #1a0a0a 100%);
  border-radius: 50%;
  filter: blur(3px);
  animation: by-group 7s ease-in-out infinite;
}
.scn-barbadoes-yard .speaker {
  position: absolute; bottom: 35%; left: 50%; width: 16px; height: 28px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform: rotate(5deg);
  animation: by-speaker 4s ease-in-out infinite;
}
.scn-barbadoes-yard .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.2);
  animation: by-ground 20s ease-in-out infinite alternate;
}
@keyframes by-sky { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes by-wall { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(1); } }
@keyframes by-house { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes by-horse { 0% { transform: translateX(0) scale(0.9); } 50% { transform: translateX(4px) scale(0.92); } 100% { transform: translateX(0) scale(0.9); } }
@keyframes by-group { 0% { transform: translateX(0); } 50% { transform: translateX(3px); } 100% { transform: translateX(0); } }
@keyframes by-speaker { 0% { transform: rotate(5deg) translateY(0); } 50% { transform: rotate(8deg) translateY(-2px); } 100% { transform: rotate(5deg) translateY(0); } }
@keyframes by-ground { 0% { background-position: 0 0; } 100% { background-position: 0 5%; } }

/* new-voyage */
.scn-new-voyage {
  background:
    linear-gradient(180deg, #87ceeb 0%, #f0e68c 40%, #ffd700 60%, #ff8c00 100%),
    radial-gradient(ellipse at 50% 0%, #ffdead 0%, transparent 70%);
  background-blend-mode: overlay;
}
.scn-new-voyage .sky-sunrise {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #ffdead 0%, #ffd700 30%, #ff8c00 60%, transparent 100%);
  animation: nv-sky 10s ease-in-out infinite alternate;
}
.scn-new-voyage .sea {
  position: absolute; inset: 55% 0 0 0;
  background: linear-gradient(180deg, #1e90ff 0%, #104e8b 50%, #0a2f5a 100%);
  border-top: 2px solid #87ceeb;
  animation: nv-sea 6s ease-in-out infinite;
}
.scn-new-voyage .sun {
  position: absolute; top: 15%; left: 60%;
  width: 60px; height: 60px;
  background: radial-gradient(circle, #fff8dc 0%, #ffd700 40%, #ff8c00 80%);
  border-radius: 50%;
  box-shadow: 0 0 80px 30px #ff8c00, 0 0 160px 60px rgba(255,140,0,0.3);
  animation: nv-sun 8s ease-in-out infinite alternate;
}
.scn-new-voyage .ship-hull {
  position: absolute; bottom: 42%; left: 35%;
  width: 140px; height: 40px;
  background: linear-gradient(180deg, #4a2c1a 0%, #2a1a0a 100%);
  border-radius: 20% 60% 20% 20% / 100% 80% 40% 40%;
  box-shadow: 0 8px 12px rgba(0,0,0,0.4);
  transform-origin: bottom center;
  animation: nv-sway 7s ease-in-out infinite;
}
.scn-new-voyage .mast {
  position: absolute; bottom: 45%; left: 38%;
  width: 6px; height: 60px;
  background: linear-gradient(180deg, #8b5e3c 0%, #5a3a20 100%);
  border-radius: 2px;
  transform-origin: bottom center;
  animation: nv-sway 7s ease-in-out infinite;
}
.scn-new-voyage .sail-main {
  position: absolute; bottom: 55%; left: 32%;
  width: 80px; height: 50px;
  background: linear-gradient(135deg, #f5deb3 0%, #d2b48c 40%, #c4a882 100%);
  border-radius: 30% 10% 30% 30% / 60% 20% 60% 40%;
  clip-path: polygon(20% 0%, 80% 0%, 95% 100%, 5% 100%);
  box-shadow: -4px 4px 8px rgba(0,0,0,0.3);
  animation: nv-billow 5s ease-in-out infinite alternate;
}
.scn-new-voyage .sail-jib {
  position: absolute; bottom: 60%; left: 45%;
  width: 40px; height: 30px;
  background: linear-gradient(135deg, #f5deb3 0%, #deb887 100%);
  border-radius: 10% 30% 10% 30% / 20% 40% 20% 40%;
  clip-path: polygon(10% 0%, 70% 0%, 90% 100%, 0% 100%);
  animation: nv-billow 5s ease-in-out infinite alternate-reverse;
}
.scn-new-voyage .cloud-drift.a {
  position: absolute; top: 8%; left: 10%;
  width: 100px; height: 25px;
  background: linear-gradient(180deg, rgba(255,255,255,0.6) 0%, rgba(255,255,255,0.1) 100%);
  border-radius: 50%;
  filter: blur(6px);
  animation: nv-drift-a 30s linear infinite;
}
.scn-new-voyage .cloud-drift.b {
  position: absolute; top: 18%; right: -20%;
  width: 80px; height: 20px;
  background: linear-gradient(180deg, rgba(255,255,255,0.4) 0%, rgba(255,255,255,0.05) 100%);
  border-radius: 50%;
  filter: blur(5px);
  animation: nv-drift-b 40s linear infinite reverse;
}
@keyframes nv-sky { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes nv-sea { 0% { transform: translateY(0); } 50% { transform: translateY(4px); } 100% { transform: translateY(0); } }
@keyframes nv-sun { 0% { transform: scale(0.95); opacity:0.9; } 50% { transform: scale(1.05); opacity:1; } 100% { transform: scale(0.95); opacity:0.9; } }
@keyframes nv-sway { 0% { transform: rotate(-1deg); } 50% { transform: rotate(1deg); } 100% { transform: rotate(-1deg); } }
@keyframes nv-billow { 0% { transform: scaleX(0.8); } 50% { transform: scaleX(1.2); } 100% { transform: scaleX(0.9); } }
@keyframes nv-drift-a { 0% { transform: translateX(-30px); } 100% { transform: translateX(120vw); } }
@keyframes nv-drift-b { 0% { transform: translateX(0); } 100% { transform: translateX(-100vw); } }

/* wreck-dream */
.scn-wreck-dream {
  background:
    linear-gradient(180deg, #0a0a2e 0%, #1a1a3e 40%, #2a2a5a 100%),
    radial-gradient(ellipse at 50% 80%, #3a3a6a 0%, transparent 70%);
}
.scn-wreck-dream .night-sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #050515 0%, #15152e 50%, #2a2a5a 100%);
  animation: wd-sky 12s ease-in-out infinite alternate;
}
.scn-wreck-dream .moon {
  position: absolute; top: 10%; left: 70%;
  width: 50px; height: 50px;
  background: radial-gradient(circle, #b0c4de 0%, #8a9ab5 40%, #5a6a8a 80%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px #8a9ab5, 0 0 80px 40px rgba(138,154,181,0.3);
  animation: wd-moon 20s ease-in-out infinite alternate;
}
.scn-wreck-dream .storm-clouds {
  position: absolute; top: 5%; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #3a3a5a 0%, #1a1a3a 60%);
  border-radius: 40% 60% 20% 40% / 80% 50% 70% 60%;
  filter: blur(8px);
  animation: wd-clouds 15s ease-in-out infinite alternate;
}
.scn-wreck-dream .shattered-ship {
  position: absolute; bottom: 40%; left: 30%;
  width: 120px; height: 60px;
  background: linear-gradient(135deg, #2a1a0a 0%, #0a0505 60%, #1a0a0a 100%);
  border-radius: 30% 10% 10% 10% / 60% 20% 20% 20%;
  transform: rotate(15deg);
  box-shadow: inset 0 -4px 8px rgba(255,255,255,0.1);
  animation: wd-ship 6s ease-in-out infinite;
}
.scn-wreck-dream .wave-spume {
  position: absolute; bottom: 35%; left: 20%; right: 20%;
  height: 15%;
  background: radial-gradient(ellipse at 50% 100%, rgba(200,220,255,0.4) 0%, transparent 70%);
  filter: blur(4px);
  animation: wd-spume 4s ease-in-out infinite alternate;
}
.scn-wreck-dream .lightning-flash {
  position: absolute; top: 5%; left: 50%;
  width: 4px; height: 120px;
  background: linear-gradient(180deg, #fff 0%, #b0c4de 50%, transparent 100%);
  border-radius: 2px;
  box-shadow: 0 0 20px 10px #b0c4de, 0 0 60px 30px rgba(176,196,222,0.3);
  opacity: 0;
  animation: wd-lightning 8s ease-in-out infinite;
}
.scn-wreck-dream .debris {
  position: absolute; bottom: 30%; left: 60%;
  width: 30px; height: 15px;
  background: #1a0a0a;
  border-radius: 20% 40% 20% 40%;
  box-shadow: 0 4px 6px rgba(0,0,0,0.5);
  animation: wd-debris 7s ease-in-out infinite;
}
@keyframes wd-sky { 0% { opacity:0.6; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes wd-moon { 0% { transform: translateX(-10px); } 50% { transform: translateX(10px); } 100% { transform: translateX(-5px); } }
@keyframes wd-clouds { 0% { transform: translateX(0); } 50% { transform: translateX(20px); } 100% { transform: translateX(-10px); } }
@keyframes wd-ship { 0% { transform: rotate(10deg) translateX(0); } 50% { transform: rotate(20deg) translateX(-5px); } 100% { transform: rotate(12deg) translateX(2px); } }
@keyframes wd-spume { 0% { opacity:0.3; transform: scaleY(0.5); } 50% { opacity:0.8; transform: scaleY(1.2); } 100% { opacity:0.4; transform: scaleY(0.6); } }
@keyframes wd-lightning { 0%, 90%, 100% { opacity:0; } 45% { opacity:1; } 50% { opacity:0.8; } 55% { opacity:1; } 60% { opacity:0; } }
@keyframes wd-debris { 0% { transform: translate(0,0) rotate(0deg); } 25% { transform: translate(10px,-5px) rotate(20deg); } 50% { transform: translate(20px,0) rotate(40deg); } 75% { transform: translate(10px,5px) rotate(20deg); } 100% { transform: translate(0,0) rotate(0deg); } }

/* collision-rock */
.scn-collision-rock {
  background:
    linear-gradient(180deg, #0a0a1a 0%, #10102e 40%, #1a1a3a 100%),
    radial-gradient(ellipse at 50% 120%, #1f1f3f 0%, transparent 80%);
}
.scn-collision-rock .dark-sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #050510 0%, #151530 60%, transparent 100%);
  animation: cr-sky 15s ease-in-out infinite alternate;
}
.scn-collision-rock .cliff-face {
  position: absolute; bottom: 0; left: 10%; right: 0;
  height: 60%;
  background: linear-gradient(135deg, #2a1a0a 0%, #0a0500 50%, #1a0a05 100%);
  border-radius: 30% 0 0 0 / 50% 0 0 0;
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.8);
  animation: cr-cliff 8s ease-in-out infinite;
}
.scn-collision-rock .ship-bow {
  position: absolute; bottom: 30%; left: 40%;
  width: 100px; height: 40px;
  background: linear-gradient(180deg, #3a2215 0%, #1a0d05 100%);
  border-radius: 20% 40% 10% 10% / 80% 60% 30% 30%;
  transform: rotate(-10deg);
  box-shadow: 0 8px 12px rgba(0,0,0,0.6);
  animation: cr-ship 5s ease-in-out infinite;
}
.scn-collision-rock .rock-spike {
  position: absolute; bottom: 25%; left: 55%;
  width: 30px; height: 80px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%);
  border-radius: 40% 40% 20% 20% / 30% 30% 10% 10%;
  clip-path: polygon(20% 0%, 80% 0%, 100% 80%, 0% 80%);
  transform: rotate(15deg);
  animation: cr-spike 6s ease-in-out infinite alternate;
}
.scn-collision-rock .froth {
  position: absolute; bottom: 35%; left: 45%;
  width: 60px; height: 20px;
  background: radial-gradient(ellipse, rgba(200,220,255,0.5) 0%, transparent 70%);
  filter: blur(3px);
  animation: cr-froth 3s ease-in-out infinite alternate;
}
.scn-collision-rock .mast-cracked {
  position: absolute; bottom: 40%; left: 42%;
  width: 4px; height: 60px;
  background: linear-gradient(180deg, #8b5e3c 0%, #3a2215 100%);
  border-radius: 2px;
  transform: rotate(5deg);
  transform-origin: bottom center;
  animation: cr-mast 7s ease-in-out infinite;
}
.scn-collision-rock .alarm-light {
  position: absolute; top: 20%; left: 20%;
  width: 8px; height: 8px;
  background: radial-gradient(circle, #ff6347 0%, #ff4500 50%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px #ff4500, 0 0 60px 20px rgba(255,69,0,0.3);
  animation: cr-alarm 2s ease-in-out infinite;
}
@keyframes cr-sky { 0% { opacity:0.5; } 50% { opacity:0.8; } 100% { opacity:0.6; } }
@keyframes cr-cliff { 0% { transform: translateX(0); } 50% { transform: translateX(5px); } 100% { transform: translateX(-3px); } }
@keyframes cr-ship { 0% { transform: rotate(-12deg) translateX(0); } 50% { transform: rotate(-8deg) translateX(3px); } 100% { transform: rotate(-14deg) translateX(-2px); } }
@keyframes cr-spike { 0% { transform: rotate(10deg); } 50% { transform: rotate(20deg); } 100% { transform: rotate(12deg); } }
@keyframes cr-froth { 0% { opacity:0.2; transform: scale(0.5); } 50% { opacity:0.8; transform: scale(1.5); } 100% { opacity:0.3; transform: scale(0.6); } }
@keyframes cr-mast { 0% { transform: rotate(3deg); } 50% { transform: rotate(8deg); } 100% { transform: rotate(4deg); } }
@keyframes cr-alarm { 0%,100% { opacity:0.1; transform: scale(0.8); } 50% { opacity:1; transform: scale(1.5); } }

/* hatches-nailing */
.scn-hatches-nailing {
  background:
    linear-gradient(0deg, #0a0a1a 0%, #15152e 50%, #1a1a3a 100%),
    radial-gradient(ellipse at 50% 0%, #2a2a4e 0%, transparent 60%);
}
.scn-hatches-nailing .deck-planks {
  position: absolute; bottom: 0; left: 0; right: 0;
  height: 40%;
  background: linear-gradient(180deg, #1a0d05 0%, #0a0500 100%);
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.9);
  animation: hn-planks 10s ease-in-out infinite alternate;
}
.scn-hatches-nailing .hatch-cover {
  position: absolute; bottom: 20%; left: 35%;
  width: 120px; height: 30px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%);
  border: 2px solid #3a2a1a;
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.7);
  transform: perspective(200px) rotateX(10deg);
  animation: hn-hatch 6s ease-in-out infinite;
}
.scn-hatches-nailing .narrator-arm {
  position: absolute; bottom: 30%; left: 32%;
  width: 12px; height: 30px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0d05 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 20% 20%;
  transform: rotate(20deg);
  transform-origin: bottom center;
  animation: hn-arm 4s ease-in-out infinite;
}
.scn-hatches-nailing .captain-figure {
  position: absolute; bottom: 25%; left: 55%;
  width: 20px; height: 50px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 4px 6px rgba(0,0,0,0.5);
  animation: hn-captain 8s ease-in-out infinite;
}
.scn-hatches-nailing .lantern-glow {
  position: absolute; bottom: 35%; left: 40%;
  width: 10px; height: 10px;
  background: radial-gradient(circle, #ffa07a 0%, #ff6347 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 15px #ff6347, 0 0 60px 30px rgba(255,99,71,0.2);
  animation: hn-lantern 3s ease-in-out infinite alternate;
}
.scn-hatches-nailing .chains {
  position: absolute; bottom: 15%; left: 20%;
  width: 60px; height: 4px;
  background: repeating-linear-gradient(90deg, #5a5a5a 0px, #5a5a5a 4px, #2a2a2a 4px, #2a2a2a 8px);
  border-radius: 2px;
  animation: hn-chains 12s linear infinite;
}
.scn-hatches-nailing .shadow-stripe {
  position: absolute; bottom: 0; left: 0; right: 0;
  height: 100%;
  background: linear-gradient(180deg, transparent 60%, rgba(0,0,0,0.4) 100%);
  pointer-events: none;
  animation: hn-shadow 8s ease-in-out infinite alternate;
}
@keyframes hn-planks { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes hn-hatch { 0% { transform: perspective(200px) rotateX(8deg) translateY(0); } 50% { transform: perspective(200px) rotateX(12deg) translateY(2px); } 100% { transform: perspective(200px) rotateX(10deg) translateY(0); } }
@keyframes hn-arm { 0% { transform: rotate(15deg); } 50% { transform: rotate(25deg); } 100% { transform: rotate(18deg); } }
@keyframes hn-captain { 0% { transform: translateX(0) rotate(-1deg); } 50% { transform: translateX(4px) rotate(1deg); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes hn-lantern { 0% { opacity:0.7; transform: scale(0.9); } 50% { opacity:1; transform: scale(1.2); } 100% { opacity:0.8; transform: scale(1); } }
@keyframes hn-chains { 0% { background-position: 0 0; } 100% { background-position: -60px 0; } }
@keyframes hn-shadow { 0% { opacity:0.3; } 50% { opacity:0.6; } 100% { opacity:0.4; } }

/* scene: turkish-markets - calm sunlit market */
.scn-turkish-markets {
  background: linear-gradient(180deg, #87CEEB 0%, #F0E68C 50%, #D2B48C 100%), radial-gradient(circle at 30% 20%, #FFF8DC 0%, transparent 60%);
}
.scn-turkish-markets .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #87CEEB 0%, #B0E0E6 100%); animation: tm-sky-breathe 20s ease-in-out infinite alternate; }
.scn-turkish-markets .sun { position:absolute; top:6%; left:70%; width:60px; height:60px; background: radial-gradient(circle, #FFF8DC 0%, #FFD700 40%, transparent 70%); border-radius:50%; box-shadow: 0 0 80px 30px rgba(255,215,0,0.5); animation: tm-sun-pulse 7s ease-in-out infinite alternate; }
.scn-turkish-markets .mosque-dome { position:absolute; bottom:40%; left:20%; width:120px; height:80px; background: linear-gradient(180deg, #D2B48C 0%, #A0522D 100%); border-radius: 0 0 50% 50% / 0 0 80% 80%; box-shadow: inset 0 -10px 20px rgba(0,0,0,0.3); animation: tm-dome-sway 15s ease-in-out infinite; }
.scn-turkish-markets .awning { position:absolute; bottom:30%; right:10%; width:100px; height:40px; background: linear-gradient(180deg, #F4A460 0%, #DEB887 100%); border-radius: 10% 10% 0 0; transform-origin: top left; animation: tm-awning-flap 5s ease-in-out infinite alternate; }
.scn-turkish-markets .stall { position:absolute; bottom:22%; right:8%; width:110px; height:50px; background: linear-gradient(180deg, #8B4513 0%, #5C3A1E 100%); border-radius:4%; box-shadow: 2px 4px 8px rgba(0,0,0,0.4); }
.scn-turkish-markets .figure-shopper { position:absolute; bottom:24%; left:45%; width:16px; height:40px; background: linear-gradient(180deg, #2F1B14 0%, #1A0E0A 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: tm-walk 6s ease-in-out infinite; }
.scn-turkish-markets .dust-mote { position:absolute; top:18%; left:15%; width:4px; height:4px; background: rgba(255,255,200,0.6); border-radius:50%; filter: blur(2px); animation: tm-dust 12s linear infinite; }
.scn-turkish-markets .shadow { position:absolute; bottom:20%; left:42%; width:40px; height:8px; background: rgba(0,0,0,0.2); border-radius:50%; filter: blur(3px); animation: tm-shadow 6s ease-in-out infinite; }
@keyframes tm-sky-breathe { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes tm-sun-pulse { 0% { transform: scale(0.95); box-shadow: 0 0 60px 20px rgba(255,215,0,0.4); } 50% { transform: scale(1.05); box-shadow: 0 0 100px 40px rgba(255,215,0,0.6); } 100% { transform: scale(0.98); box-shadow: 0 0 70px 25px rgba(255,215,0,0.45); } }
@keyframes tm-dome-sway { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(2px) rotate(1deg); } 100% { transform: translateX(-2px) rotate(-1deg); } }
@keyframes tm-awning-flap { 0% { transform: rotate(0deg); } 50% { transform: rotate(3deg); } 100% { transform: rotate(-2deg); } }
@keyframes tm-walk { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 25% { transform: translateX(15px) translateY(-2px) rotate(2deg); } 50% { transform: translateX(30px) translateY(0) rotate(0deg); } 75% { transform: translateX(45px) translateY(-2px) rotate(-2deg); } 100% { transform: translateX(60px) translateY(0) rotate(0deg); } }
@keyframes tm-dust { 0% { transform: translate(0,0); opacity:0; } 10% { opacity:0.6; } 90% { opacity:0.3; } 100% { transform: translate(20px, -20px); opacity:0; } }
@keyframes tm-shadow { 0% { transform: translateX(0); opacity:0.2; } 50% { transform: translateX(15px); opacity:0.4; } 100% { transform: translateX(30px); opacity:0.1; } }

/* scene: ship-fire-incident - tense dim-interior */
.scn-ship-fire-incident {
  background: linear-gradient(180deg, #1A1A1A 0%, #2E1A1A 50%, #1A0A0A 100%), radial-gradient(circle at 50% 60%, #3A1A1A 0%, transparent 70%);
}
.scn-ship-fire-incident .deck-floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #3A2A1A 0%, #1A100A 100%); box-shadow: inset 0 8px 15px rgba(0,0,0,0.8); }
.scn-ship-fire-incident .beam { position:absolute; top:0; left:50%; width:12px; height:100%; background: linear-gradient(180deg, #4A3A2A 0%, #2A1A0A 100%); transform: translateX(-50%); box-shadow: 2px 0 10px rgba(0,0,0,0.6); }
.scn-ship-fire-incident .bulkhead { position:absolute; top:0; right:0; width:30%; height:100%; background: linear-gradient(90deg, #2A1A1A 0%, #1A0A0A 100%); border-left: 2px solid #3A2A2A; }
.scn-ship-fire-incident .fire-flames { position:absolute; bottom:20%; left:40%; width:50px; height:70px; background: radial-gradient(ellipse at 50% 100%, #C8553D 0%, #FF8C42 40%, #FFD700 70%, transparent 100%); border-radius: 50% 50% 20% 20%; box-shadow: 0 0 40px 20px rgba(200,85,61,0.6), 0 0 80px 30px rgba(255,140,66,0.3); animation: sf-flame-flicker 0.5s ease-in-out infinite alternate; }
.scn-ship-fire-incident .pan { position:absolute; bottom:25%; left:40%; width:40px; height:15px; background: linear-gradient(180deg, #5A4A3A 0%, #3A2A1A 100%); border-radius: 0 0 50% 50%; transform-origin: left center; animation: sf-pan-tilt 0.8s ease-in-out infinite alternate; }
.scn-ship-fire-incident .cook-figure { position:absolute; bottom:15%; left:25%; width:20px; height:50px; background: linear-gradient(180deg, #2A1A0A 0%, #1A0A00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sf-cook-recoil 1.2s ease-in-out infinite; }
.scn-ship-fire-incident .smoke { position:absolute; top:5%; left:35%; width:80px; height:40px; background: rgba(100,80,60,0.4); filter: blur(10px); border-radius: 50%; animation: sf-smoke-rise 5s linear infinite; }
@keyframes sf-flame-flicker { 0% { transform: scaleY(1) translateY(0); opacity:0.9; } 25% { transform: scaleY(1.1) translateY(-2px); opacity:1; } 50% { transform: scaleY(0.9) translateY(1px); opacity:0.8; } 75% { transform: scaleY(1.05) translateY(-1px); opacity:1; } 100% { transform: scaleY(0.95) translateY(0); opacity:0.9; } }
@keyframes sf-pan-tilt { 0% { transform: rotate(0deg); } 25% { transform: rotate(10deg); } 50% { transform: rotate(-5deg); } 75% { transform: rotate(8deg); } 100% { transform: rotate(2deg); } }
@keyframes sf-cook-recoil { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(-8px) rotate(-5deg); } 60% { transform: translateX(5px) rotate(3deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes sf-smoke-rise { 0% { transform: translateY(0) scale(0.8); opacity:0.4; } 50% { transform: translateY(-30px) scale(1.2); opacity:0.2; } 100% { transform: translateY(-60px) scale(1.5); opacity:0; } }

/* scene: grenada-planter - dark mood, sunlit harsh */
.scn-grenada-planter {
  background: linear-gradient(180deg, #FFFACD 0%, #FFD700 30%, #DAA520 60%, #B8860B 100%), radial-gradient(ellipse at 50% 0%, #FFFFE0 0%, transparent 50%);
}
.scn-grenada-planter .sky-glare { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #FFFACD 0%, #FFD700 100%); animation: gp-glare-pulse 15s ease-in-out infinite alternate; }
.scn-grenada-planter .sun-harsh { position:absolute; top:2%; left:50%; width:80px; height:80px; background: radial-gradient(circle, #FFFFE0 0%, #FFF8DC 30%, #FFD700 60%, transparent 80%); border-radius:50%; box-shadow: 0 0 200px 60px rgba(255,215,0,0.4); animation: gp-sun-flash 8s ease-in-out infinite; }
.scn-grenada-planter .ship-railing { position:absolute; bottom:30%; left:10%; right:10%; height:20px; background: linear-gradient(90deg, #8B4513 0%, #A0522D 50%, #8B4513 100%); border-radius: 2px; box-shadow: 0 4px 6px rgba(0,0,0,0.5); }
.scn-grenada-planter .deck-planks { position:absolute; bottom:0; left:0; right:0; height:35%; background: repeating-linear-gradient(90deg, #8B4513 0px, #8B4513 4px, #A0522D 4px, #A0522D 8px); box-shadow: inset 0 10px 20px rgba(0,0,0,0.5); }
.scn-grenada-planter .sail { position:absolute; top:10%; left:20%; width:100px; height:120px; background: linear-gradient(180deg, #F5DEB3 0%, #D2B48C 100%); clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%); transform-origin: top center; animation: gp-sail-flap 6s ease-in-out infinite alternate; }
.scn-grenada-planter .figure-equiano { position:absolute; bottom:25%; left:40%; width:16px; height:45px; background: linear-gradient(180deg, #1A1A0A 0%, #0A0A00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: gp-figure-sway 4s ease-in-out infinite; }
.scn-grenada-planter .figure-islander { position:absolute; bottom:27%; left:55%; width:18px; height:40px; background: linear-gradient(180deg, #D2B48C 0%, #A0522D 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: gp-islander-walk 5s ease-in-out infinite; }
.scn-grenada-planter .shadow-sharp { position:absolute; bottom:15%; left:38%; width:40px; height:4px; background: rgba(0,0,0,0.7); border-radius:30%; filter: blur(2px); animation: gp-shadow-stretch 4s ease-in-out infinite; }
@keyframes gp-glare-pulse { 0% { opacity:0.85; } 50% { opacity:1; } 100% { opacity:0.75; } }
@keyframes gp-sun-flash { 0% { transform: scale(0.9); opacity:0.8; } 50% { transform: scale(1.1); opacity:1; } 100% { transform: scale(0.95); opacity:0.85; } }
@keyframes gp-sail-flap { 0% { transform: rotate(0deg); } 50% { transform: rotate(8deg); } 100% { transform: rotate(-5deg); } }
@keyframes gp-figure-sway { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(5px) rotate(-2deg); } 60% { transform: translateX(-3px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes gp-islander-walk { 0% { transform: translateX(0) translateY(0); } 25% { transform: translateX(10px) translateY(-1px); } 50% { transform: translateX(20px) translateY(0); } 75% { transform: translateX(30px) translateY(-1px); } 100% { transform: translateX(40px) translateY(0); } }
@keyframes gp-shadow-stretch { 0% { transform: scaleX(1); opacity:0.7; } 50% { transform: scaleX(1.5); opacity:0.9; } 100% { transform: scaleX(1); opacity:0.6; } }

/* scene: candle-gunpowder - tense dim-interior */
.scn-candle-gunpowder {
  background: linear-gradient(180deg, #1A100F 0%, #2A1A15 50%, #0F0A08 100%), radial-gradient(circle at 60% 50%, #3A2A20 0%, transparent 60%);
}
.scn-candle-gunpowder .wall-dark { position:absolute; inset:0; background: linear-gradient(90deg, #2A1A15 0%, #1A100F 50%, #0F0A08 100%); }
.scn-candle-gunpowder .floor-dark { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #2A1A15 0%, #0F0A08 100%); box-shadow: inset 0 8px 12px rgba(0,0,0,0.8); }
.scn-candle-gunpowder .barrel { position:absolute; bottom:12%; left:55%; width:50px; height:45px; background: linear-gradient(180deg, #4A3A2A 0%, #2A1A0A 100%); border-radius: 10% 10% 20% 20%; box-shadow: 0 4px 8px rgba(0,0,0,0.6); animation: cg-barrel-tilt 6s ease-in-out infinite; }
.scn-candle-gunpowder .candle { position:absolute; bottom:28%; left:62%; width:6px; height:30px; background: linear-gradient(180deg, #F5DEB3 0%, #D2B48C 100%); border-radius: 2px; transform-origin: bottom center; animation: cg-candle-sway 3s ease-in-out infinite; }
.scn-candle-gunpowder .flame { position:absolute; bottom:58%; left:62%; width:8px; height:12px; background: radial-gradient(ellipse at 50% 100%, #FFD700 0%, #FF8C42 40%, #C8553D 70%, transparent 100%); border-radius: 50% 50% 0 0; box-shadow: 0 0 15px 8px rgba(255,140,66,0.6), 0 0 30px 15px rgba(200,85,61,0.3); animation: cg-flame-flicker 0.4s ease-in-out infinite alternate; }
.scn-candle-gunpowder .hand-reach { position:absolute; bottom:22%; left:56%; width:30px; height:20px; background: linear-gradient(180deg, #2A1A0A 0%, #1A0E0A 100%); border-radius: 40% 60% 30% 50% / 50% 50% 40% 60%; transform-origin: right center; animation: cg-hand-reach 2s ease-in-out infinite; }
.scn-candle-gunpowder .shadow-reaching { position:absolute; bottom:10%; left:50%; width:60px; height:10px; background: rgba(0,0,0,0.5); border-radius:50%; filter: blur(3px); animation: cg-shadow-move 2s ease-in-out infinite; }
@keyframes cg-barrel-tilt { 0% { transform: rotate(0deg); } 50% { transform: rotate(-3deg); } 100% { transform: rotate(2deg); } }
@keyframes cg-candle-sway { 0% { transform: rotate(0deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-4deg); } }
@keyframes cg-flame-flicker { 0% { transform: scaleY(1) rotate(0deg); opacity:0.9; } 25% { transform: scaleY(1.15) rotate(3deg); opacity:1; } 50% { transform: scaleY(0.85) rotate(-2deg); opacity:0.8; } 75% { transform: scaleY(1.05) rotate(1deg); opacity:1; } 100% { transform: scaleY(0.9) rotate(0deg); opacity:0.85; } }
@keyframes cg-hand-reach { 0% { transform: translateX(0) rotate(0deg); } 40% { transform: translateX(-15px) rotate(-15deg); } 60% { transform: translateX(-10px) rotate(-10deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes cg-shadow-move { 0% { transform: translateX(0) scaleX(1); opacity:0.5; } 50% { transform: translateX(-8px) scaleX(1.2); opacity:0.8; } 100% { transform: translateX(0) scaleX(1); opacity:0.4; } }

.scn-buoy-rescue {
  background: linear-gradient(180deg, #0b1020 0%, #16203a 40%, #1a2a3a 100%),
              radial-gradient(ellipse at 50% 0%, #1a2a3a 0%, transparent 70%);
}
.scn-buoy-rescue .sea {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 60%;
  background: linear-gradient(180deg, #0e2030 0%, #0a1420 100%);
  box-shadow: inset 0 20px 30px rgba(0,0,0,.6);
  animation: br-sea 20s ease-in-out infinite;
}
.scn-buoy-rescue .sky {
  position: absolute;
  top: 0; left: 0; right: 0; bottom: 40%;
  background: linear-gradient(180deg, #0a1020 0%, #1a2a40 100%);
  animation: br-sky 12s ease-in-out infinite alternate;
}
.scn-buoy-rescue .stars {
  position: absolute;
  top: 5%; left: 10%; width: 80%; height: 30%;
  background: radial-gradient(2px 2px at 20% 30%, white 0%, transparent 100%),
              radial-gradient(2px 2px at 50% 10%, white 0%, transparent 100%),
              radial-gradient(1px 1px at 70% 20%, white 0%, transparent 100%),
              radial-gradient(2px 2px at 85% 40%, white 0%, transparent 100%),
              radial-gradient(1px 1px at 15% 60%, white 0%, transparent 100%);
  animation: br-twinkle 4s ease-in-out infinite alternate;
}
.scn-buoy-rescue .buoy {
  position: absolute;
  bottom: 50%; left: 60%;
  width: 24px; height: 30px;
  background: linear-gradient(90deg, #4a4020 0%, #6a5a30 50%, #4a4020 100%);
  border-radius: 40% 40% 30% 30%;
  transform-origin: bottom center;
  animation: br-buoy 3s ease-in-out infinite;
}
.scn-buoy-rescue .buoy-light {
  position: absolute;
  bottom: 66%; left: 62%;
  width: 12px; height: 12px;
  background: radial-gradient(circle, #ffdd80 0%, #cc8800 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px #cc8800, 0 0 40px 12px rgba(204,136,0,.4);
  animation: br-light 1.5s ease-in-out infinite alternate;
}
.scn-buoy-rescue .punt {
  position: absolute;
  bottom: 40%; left: 20%;
  width: 80px; height: 16px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 10% 10% 30% 30%;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
  animation: br-punt 5s ease-in-out infinite;
}
.scn-buoy-rescue .rope {
  position: absolute;
  bottom: 45%; left: 30%; right: 55%;
  height: 3px;
  background: #5a4a30;
  transform-origin: left center;
  border-radius: 2px;
  animation: br-rope 1.8s ease-in-out infinite alternate;
}
.scn-buoy-rescue .wave-crest {
  position: absolute;
  bottom: 10%; left: 0; right: 0;
  height: 30%;
  background: radial-gradient(ellipse 30% 80% at 30% 20%, rgba(60,120,160,.4) 0%, transparent 100%),
              radial-gradient(ellipse 40% 70% at 70% 40%, rgba(40,100,140,.3) 0%, transparent 100%);
  animation: br-wave 8s ease-in-out infinite;
}
@keyframes br-sea {
  0% { transform: translateY(0) }
  50% { transform: translateY(-3px) }
  100% { transform: translateY(0) }
}
@keyframes br-sky {
  0% { opacity: .8 }
  50% { opacity: 1 }
  100% { opacity: .7 }
}
@keyframes br-twinkle {
  0% { opacity: .5 }
  50% { opacity: 1 }
  100% { opacity: .6 }
}
@keyframes br-buoy {
  0%,100% { transform: rotate(0deg) translateY(0) }
  25% { transform: rotate(3deg) translateY(-2px) }
  75% { transform: rotate(-3deg) translateY(1px) }
}
@keyframes br-light {
  0% { box-shadow: 0 0 15px 4px #cc8800; opacity: .8 }
  50% { box-shadow: 0 0 25px 8px #ffdd80; opacity: 1 }
  100% { box-shadow: 0 0 18px 5px #cc8800; opacity: .9 }
}
@keyframes br-punt {
  0%,100% { transform: translateY(0) rotate(0deg) }
  25% { transform: translateY(-2px) rotate(-2deg) }
  75% { transform: translateY(1px) rotate(2deg) }
}
@keyframes br-rope {
  0% { transform: scaleX(1) }
  50% { transform: scaleX(1.05) }
  100% { transform: scaleX(0.95) }
}
@keyframes br-wave {
  0%,100% { opacity: .3 }
  50% { opacity: .6 }
}

.scn-deliverance-joy {
  background: linear-gradient(180deg, #87ceeb 0%, #b0e0f0 30%, #f0e68c 80%, #ffd700 100%),
              radial-gradient(ellipse at 50% 100%, #f0e68c 0%, transparent 60%);
}
.scn-deliverance-joy .sea-bright {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 50%;
  background: linear-gradient(180deg, #1c86ee 0%, #0066cc 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,.3);
  animation: dj-sea 10s ease-in-out infinite alternate;
}
.scn-deliverance-joy .sky-bright {
  position: absolute;
  top: 0; left: 0; right: 0; bottom: 50%;
  background: linear-gradient(180deg, #87ceeb 0%, #b0e0f0 40%, transparent 100%);
}
.scn-deliverance-joy .sun {
  position: absolute;
  top: 15%; left: 70%;
  width: 40px; height: 40px;
  background: radial-gradient(circle, #fffaf0 0%, #ffd700 50%, #ffaa00 100%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px #ffd700, 0 0 120px 40px rgba(255,215,0,.3);
  animation: dj-sun 6s ease-in-out infinite alternate;
}
.scn-deliverance-joy .ship {
  position: absolute;
  bottom: 35%; left: 30%;
  width: 140px; height: 30px;
  background: linear-gradient(180deg, #6b3a2a 0%, #4a2a1a 100%);
  border-radius: 10% 70% 40% 40%;
  box-shadow: 0 4px 12px rgba(0,0,0,.4);
  animation: dj-ship 8s ease-in-out infinite;
}
.scn-deliverance-joy .mast {
  position: absolute;
  bottom: 55%; left: 38%;
  width: 6px; height: 80px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2212 100%);
  transform-origin: bottom center;
  animation: dj-mast 6s ease-in-out infinite;
}
.scn-deliverance-joy .sail {
  position: absolute;
  bottom: 50%; left: 35%;
  width: 60px; height: 50px;
  background: linear-gradient(180deg, #f5f5dc 0%, #e0d8c0 100%);
  border-radius: 50% 20% 30% 50%;
  box-shadow: inset -4px -4px 8px rgba(0,0,0,.1);
  animation: dj-sail 7s ease-in-out infinite alternate;
}
.scn-deliverance-joy .anchor {
  position: absolute;
  bottom: 32%; left: 55%;
  width: 20px; height: 30px;
  background: linear-gradient(180deg, #6a6a5a 0%, #4a4a3a 100%);
  border-radius: 40% 40% 20% 20%;
  transform: rotate(15deg);
  animation: dj-anchor 12s ease-in-out infinite;
}
.scn-deliverance-joy .seagull {
  position: absolute;
  top: 20%; left: 10%;
  width: 20px; height: 10px;
  background: radial-gradient(ellipse 80% 100% at 50% 0%, white 0%, transparent 100%);
  border-radius: 50%;
  animation: dj-gull 18s linear infinite;
}
@keyframes dj-sea {
  0% { background-position: 0 0 }
  50% { background-position: 0 -5px }
  100% { background-position: 0 0 }
}
@keyframes dj-sun {
  0% { transform: scale(1) rotate(0deg) }
  50% { transform: scale(1.05) rotate(5deg) }
  100% { transform: scale(0.95) rotate(-5deg) }
}
@keyframes dj-ship {
  0%,100% { transform: translateY(0) rotate(0deg) }
  25% { transform: translateY(-3px) rotate(-2deg) }
  75% { transform: translateY(2px) rotate(2deg) }
}
@keyframes dj-mast {
  0%,100% { transform: rotate(0deg) }
  25% { transform: rotate(2deg) }
  75% { transform: rotate(-2deg) }
}
@keyframes dj-sail {
  0% { transform: scaleX(1) }
  50% { transform: scaleX(1.1) scaleY(1.05) }
  100% { transform: scaleX(0.9) }
}
@keyframes dj-anchor {
  0% { transform: rotate(15deg) translateY(0) }
  50% { transform: rotate(18deg) translateY(-2px) }
  100% { transform: rotate(12deg) translateY(0) }
}
@keyframes dj-gull {
  0% { transform: translateX(-30px) translateY(0) }
  50% { transform: translateX(calc(100vw + 30px)) translateY(-20px) }
  100% { transform: translateX(-30px) translateY(0) }
}

.scn-new-providence-kindness {
  background: linear-gradient(180deg, #87cefa 0%, #b0e0ff 30%, #90ee90 100%),
              radial-gradient(ellipse at 50% 100%, #90ee90 0%, transparent 60%);
}
.scn-new-providence-kindness .sky-warm {
  position: absolute;
  top: 0; left: 0; right: 0; bottom: 40%;
  background: linear-gradient(180deg, #87cefa 0%, #b0e0ff 100%);
}
.scn-new-providence-kindness .sea-warm {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 45%;
  background: linear-gradient(180deg, #1e90ff 0%, #0066cc 100%);
  animation: np-sea 14s ease-in-out infinite alternate;
}
.scn-new-providence-kindness .shore {
  position: absolute;
  bottom: 30%; left: 0; right: 60%;
  height: 25%;
  background: linear-gradient(180deg, #f5deb3 0%, #deb887 100%);
  border-radius: 0 40% 0 0 / 0 80% 0 0;
}
.scn-new-providence-kindness .dock {
  position: absolute;
  bottom: 35%; left: 20%;
  width: 120px; height: 12px;
  background: linear-gradient(180deg, #8b7355 0%, #6b5335 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,.3);
}
.scn-new-providence-kindness .ship-friendly {
  position: absolute;
  bottom: 38%; left: 40%;
  width: 100px; height: 40px;
  background: linear-gradient(180deg, #8b4513 0%, #5a2d0c 100%);
  border-radius: 10% 60% 40% 40%;
  box-shadow: 0 4px 12px rgba(0,0,0,.4);
  animation: np-ship 9s ease-in-out infinite;
}
.scn-new-providence-kindness .figure-a {
  position: absolute;
  bottom: 32%; left: 25%;
  width: 20px; height: 40px;
  background: linear-gradient(180deg, #f5cba7 0%, #deb887 50%, #8b4513 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: np-fig 5s ease-in-out infinite;
}
.scn-new-providence-kindness .figure-b {
  position: absolute;
  bottom: 32%; left: 45%;
  width: 20px; height: 40px;
  background: linear-gradient(180deg, #d2b48c 0%, #bc8f8f 50%, #5a3a2a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: np-fig 5s ease-in-out infinite reverse;
  animation-delay: -2s;
}
.scn-new-providence-kindness .crate {
  position: absolute;
  bottom: 36%; left: 35%;
  width: 30px; height: 20px;
  background: linear-gradient(180deg, #a0522d 0%, #8b4513 100%);
  border-radius: 4px;
  border: 2px solid #5a2d0c;
  animation: np-crate 7s ease-in-out infinite alternate;
}
@keyframes np-sea {
  0% { background-position: 0 0 }
  50% { background-position: 0 -4px }
  100% { background-position: 0 0 }
}
@keyframes np-ship {
  0%,100% { transform: translateY(0) rotate(0deg) }
  25% { transform: translateY(-2px) rotate(-1deg) }
  75% { transform: translateY(1px) rotate(1deg) }
}
@keyframes np-fig {
  0% { transform: translateX(0) rotate(0deg) }
  50% { transform: translateX(8px) rotate(3deg) }
  100% { transform: translateX(0) rotate(0deg) }
}
@keyframes np-crate {
  0% { transform: translateY(0) scale(1) }
  50% { transform: translateY(-3px) scale(1.02) }
  100% { transform: translateY(0) scale(0.98) }
}

.scn-return-providence {
  background: linear-gradient(180deg, #2f4f4f 0%, #696969 30%, #a9a9a9 100%),
              radial-gradient(ellipse at 50% 0%, #a9a9a9 0%, transparent 60%);
}
.scn-return-providence .sky-storm {
  position: absolute;
  top: 0; left: 0; right: 0; bottom: 40%;
  background: linear-gradient(180deg, #2f4f4f 0%, #5a5a5a 50%, #808080 100%);
  animation: rp-sky 8s ease-in-out infinite alternate;
}
.scn-return-providence .sea-storm {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 60%;
  background: linear-gradient(180deg, #0a1a2a 0%, #001a2a 100%);
  box-shadow: inset 0 20px 30px rgba(0,0,0,.6);
  animation: rp-sea 4s ease-in-out infinite;
}
.scn-return-providence .sloop {
  position: absolute;
  bottom: 35%; left: 25%;
  width: 120px; height: 25px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 10% 70% 30% 30%;
  box-shadow: 0 6px 12px rgba(0,0,0,.5);
  animation: rp-sloop 2s ease-in-out infinite;
}
.scn-return-providence .sail-storm {
  position: absolute;
  bottom: 45%; left: 30%;
  width: 60px; height: 40px;
  background: linear-gradient(180deg, #c0c0c0 0%, #808080 100%);
  border-radius: 40% 20% 20% 40%;
  filter: blur(1px);
  animation: rp-sail 3s ease-in-out infinite alternate;
}
.scn-return-providence .wave-crash {
  position: absolute;
  bottom: 20%; left: 0; right: 0;
  height: 30%;
  background: radial-gradient(ellipse 40% 80% at 20% 30%, rgba(100,150,200,.4) 0%, transparent 100%),
              radial-gradient(ellipse 30% 70% at 70% 50%, rgba(80,130,180,.3) 0%, transparent 100%);
  animation: rp-wave 3s ease-in-out infinite;
}
.scn-return-providence .spray {
  position: absolute;
  bottom: 50%; left: 40%;
  width: 30px; height: 20px;
  background: radial-gradient(circle, rgba(200,200,220,.4) 0%, transparent 100%);
  filter: blur(4px);
  animation: rp-spray 1.5s ease-in-out infinite alternate;
}
.scn-return-providence .mast-crack {
  position: absolute;
  bottom: 50%; left: 38%;
  width: 4px; height: 60px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  transform: rotate(8deg);
  transform-origin: bottom center;
  animation: rp-mast 4s ease-in-out infinite;
}
@keyframes rp-sky {
  0% { opacity: .8 }
  50% { opacity: 1 }
  100% { opacity: .7 }
}
@keyframes rp-sea {
  0% { transform: translateY(0) }
  25% { transform: translateY(-5px) }
  75% { transform: translateY(3px) }
  100% { transform: translateY(0) }
}
@keyframes rp-sloop {
  0%,100% { transform: translateY(0) rotate(0deg) }
  25% { transform: translateY(-4px) rotate(-4deg) }
  75% { transform: translateY(3px) rotate(4deg) }
}
@keyframes rp-sail {
  0% { transform: scaleX(1) rotate(0deg) }
  50% { transform: scaleX(1.2) rotate(-5deg) }
  100% { transform: scaleX(0.8) rotate(5deg) }
}
@keyframes rp-wave {
  0%,100% { opacity: .4 }
  50% { opacity: .8 }
}
@keyframes rp-spray {
  0% { transform: translateY(0) scale(1) }
  100% { transform: translateY(-10px) scale(1.2) }
}
@keyframes rp-mast {
  0%,100% { transform: rotate(8deg) }
  50% { transform: rotate(12deg) }
}

/* one block per scene id. Append to style.css. */
.scn-smyrna-turkey {
  background: 
    linear-gradient(180deg, #87CEEB 0%, #F0E68C 40%, #FFD700 70%, #FFA07A 100%),
    radial-gradient(ellipse at 70% 20%, #FFD700 0%, transparent 50%);
  background-blend-mode: overlay;
}
.scn-smyrna-turkey .sky-dome { position:absolute; inset:0 0 60% 0; background: linear-gradient(180deg, #B0E0E6 0%, transparent 100%); animation: st1-sky 14s ease-in-out infinite alternate; }
.scn-smyrna-turkey .sun-glow { position:absolute; top:8%; right:20%; width:60px; height:60px; background: radial-gradient(circle, #FFD700 0%, #FFA500 40%, transparent 70%); border-radius:50%; box-shadow: 0 0 80px 20px rgba(255,215,0,0.5); animation: st1-sun 6s ease-in-out infinite alternate; }
.scn-smyrna-turkey .harbor-sea { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #4682B4 0%, #1E90FF 50%, #000080 100%); animation: st1-sea 12s linear infinite; }
.scn-smyrna-turkey .stone-house-a { position:absolute; bottom:35%; left:15%; width:70px; height:60px; background: linear-gradient(180deg, #C2B280 0%, #8B7355 100%); border-radius: 4% 4% 8% 8%; box-shadow: 0 4px 6px rgba(0,0,0,.3); }
.scn-smyrna-turkey .stone-house-b { position:absolute; bottom:32%; left:35%; width:55px; height:70px; background: linear-gradient(180deg, #BC8F8F 0%, #A0522D 100%); border-radius: 8% 8% 4% 4%; box-shadow: 0 4px 8px rgba(0,0,0,.4); transform: scale(0.9); }
.scn-smyrna-turkey .minaret { position:absolute; bottom:28%; left:60%; width:12px; height:90px; background: linear-gradient(180deg, #DEB887 0%, #8B7355 100%); border-radius: 10% 10% 4% 4%; }
.scn-smyrna-turkey .minaret::after { content:''; position:absolute; top:0; left:-4px; width:20px; height:10px; background: #FFD700; border-radius:50%; }
.scn-smyrna-turkey .walking-figure { position:absolute; bottom:25%; left:50%; width:16px; height:35px; background: linear-gradient(180deg, #8B4513 0%, #5C3317 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: st1-walk 5s ease-in-out infinite; }
.scn-smyrna-turkey .cloud-puff { position:absolute; top:12%; left:10%; width:70px; height:20px; background: linear-gradient(180deg, rgba(255,255,255,.6) 0%, rgba(255,255,255,.1) 100%); border-radius:50%; filter: blur(6px); animation: st1-cloud 40s linear infinite; }

@keyframes st1-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes st1-sun { 0% { transform: scale(1); box-shadow: 0 0 60px 15px rgba(255,215,0,0.4); } 50% { transform: scale(1.1); box-shadow: 0 0 100px 25px rgba(255,215,0,0.6); } 100% { transform: scale(1); box-shadow: 0 0 70px 18px rgba(255,215,0,0.45); } }
@keyframes st1-sea { 0% { background-position: 0 0; } 50% { background-position: 0 5px; } 100% { background-position: 0 0; } }
@keyframes st1-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(-1px) rotate(1deg); } 100% { transform: translateX(32px) translateY(0) rotate(0deg); } }
@keyframes st1-cloud { 0% { transform: translateX(-40px); } 100% { transform: translateX(120vw); } }

.scn-turkish-women {
  background: 
    linear-gradient(180deg, #FFF8DC 0%, #FAEBD7 30%, #DEB887 60%, #D2B48C 100%),
    radial-gradient(ellipse at 20% 30%, #F5DEB3 0%, transparent 60%);
  background-blend-mode: overlay;
}
.scn-turkish-women .soft-sky { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #E6E6FA 0%, #FFF8DC 100%); animation: tw1-sky 18s ease-in-out infinite alternate; }
.scn-turkish-women .warm-sun { position:absolute; top:5%; left:25%; width:50px; height:50px; background: radial-gradient(circle, #FFD700 0%, #FFA500 40%, transparent 70%); border-radius:50%; box-shadow: 0 0 60px 15px rgba(255,165,0,0.4); animation: tw1-sun 8s ease-in-out infinite alternate; }
.scn-turkish-women .courtyard-wall { position:absolute; bottom:20%; left:0; right:0; height:50%; background: linear-gradient(180deg, #D2B48C 0%, #B8860B 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.3); }
.scn-turkish-women .stone-arch { position:absolute; bottom:30%; left:35%; width:80px; height:90px; background: linear-gradient(180deg, #C2B280 0%, #8B7355 100%); border-radius: 40% 40% 10% 10% / 60% 60% 20% 20%; box-shadow: 0 4px 10px rgba(0,0,0,.4); }
.scn-turkish-women .veiled-woman { position:absolute; bottom:18%; left:50%; width:20px; height:45px; background: linear-gradient(180deg, #4682B4 0%, #2F4F4F 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: tw1-woman 12s ease-in-out infinite; }
.scn-turkish-women .shadow-pool { position:absolute; bottom:0; left:45%; width:40px; height:10px; background: rgba(0,0,0,.2); border-radius:50%; transform: skewX(-20deg); animation: tw1-shadow 12s ease-in-out infinite; }
.scn-turkish-women .olive-bough { position:absolute; top:20%; right:15%; width:60px; height:40px; background: radial-gradient(ellipse at 50% 100%, #556B2F 0%, transparent 70%); border-radius: 50%; filter: blur(2px); animation: tw1-bough 20s linear infinite; }

@keyframes tw1-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes tw1-sun { 0% { transform: scale(1); box-shadow: 0 0 40px 10px rgba(255,165,0,0.3); } 50% { transform: scale(1.05); box-shadow: 0 0 60px 15px rgba(255,165,0,0.5); } 100% { transform: scale(1); box-shadow: 0 0 45px 12px rgba(255,165,0,0.35); } }
@keyframes tw1-woman { 0% { transform: translateX(0) rotate(-1deg); } 25% { transform: translateX(4px) rotate(1deg); } 50% { transform: translateX(0) rotate(2deg); } 75% { transform: translateX(-4px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes tw1-shadow { 0% { transform: skewX(-20deg) scaleX(1); opacity:.3; } 50% { transform: skewX(-20deg) scaleX(1.2); opacity:.5; } 100% { transform: skewX(-20deg) scaleX(1); opacity:.3; } }
@keyframes tw1-bough { 0% { transform: translateY(0) rotate(-5deg); } 50% { transform: translateY(-3px) rotate(5deg); } 100% { transform: translateY(0) rotate(-5deg); } }

.scn-sheep-tails {
  background: 
    linear-gradient(180deg, #87CEEB 0%, #98FB98 50%, #3CB371 100%),
    radial-gradient(ellipse at 50% 100%, #98FB98 0%, transparent 70%);
  background-blend-mode: overlay;
}
.scn-sheep-tails .bright-sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #B0E0E6 0%, #98FB98 100%); animation: sh1-sky 20s ease-in-out infinite alternate; }
.scn-sheep-tails .green-meadow { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #7CCD7C 0%, #2E8B57 100%); border-radius: 30% 30% 0 0; animation: sh1-meadow 10s ease-in-out infinite; }
.scn-sheep-tails .sheep-body { position:absolute; bottom:28%; left:38%; width:50px; height:35px; background: radial-gradient(ellipse at 50% 40%, #FFFFF0 0%, #F5F5DC 60%, #D3D3D3 100%); border-radius: 50%; box-shadow: 0 4px 8px rgba(0,0,0,.2); animation: sh1-body 5s ease-in-out infinite; }
.scn-sheep-tails .sheep-head { position:absolute; bottom:38%; left:50%; width:20px; height:22px; background: #FAF0E6; border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform: rotate(-10deg); animation: sh1-head 5s ease-in-out infinite; }
.scn-sheep-tails .huge-tail { position:absolute; bottom:20%; left:30%; width:40px; height:30px; background: radial-gradient(ellipse at 50% 50%, #FFF8DC 0%, #FAF0E6 50%, #D3D3D3 100%); border-radius: 50%; border: 2px solid #D2B48C; box-shadow: 0 4px 12px rgba(0,0,0,.3); transform: rotate(20deg); animation: sh1-tail 2s ease-in-out infinite alternate; }
.scn-sheep-tails .fence-post { position:absolute; bottom:30%; left:15%; width:8px; height:40px; background: #8B4513; border-radius:10%; box-shadow: 4px 0 0 #8B4513, 8px 0 0 #8B4513; }
.scn-sheep-tails .bouncing-cloud { position:absolute; top:10%; right:10%; width:50px; height:15px; background: rgba(255,255,255,.6); border-radius:50%; filter: blur(4px); animation: sh1-cloud 15s ease-in-out infinite; }

@keyframes sh1-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes sh1-meadow { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(0) } }
@keyframes sh1-body { 0% { transform: translateY(0) scale(1); } 25% { transform: translateY(-3px) scale(1.02); } 50% { transform: translateY(0) scale(1); } 75% { transform: translateY(-2px) scale(0.98); } 100% { transform: translateY(0) scale(1); } }
@keyframes sh1-head { 0% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-5deg) translateY(-2px); } 100% { transform: rotate(-10deg) translateY(0); } }
@keyframes sh1-tail { 0% { transform: rotate(20deg) scaleX(1); } 50% { transform: rotate(30deg) scaleX(1.2); } 100% { transform: rotate(20deg) scaleX(1); } }
@keyframes sh1-cloud { 0% { transform: translateX(0) translateY(0); } 25% { transform: translateX(10px) translateY(-5px); } 50% { transform: translateX(20px) translateY(0); } 75% { transform: translateX(10px) translateY(3px); } 100% { transform: translateX(0) translateY(0); } }

.scn-oporto-carnival {
  background: 
    linear-gradient(180deg, #FF7F50 0%, #FFA07A 30%, #F0E68C 60%, #DAA520 100%),
    radial-gradient(ellipse at 60% 20%, #FFB347 0%, transparent 50%);
  background-blend-mode: overlay;
}
.scn-oporto-carnival .golden-sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #FFD700 0%, #FF8C00 100%); animation: op1-sky 12s ease-in-out infinite alternate; }
.scn-oporto-carnival .sea-waves { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #1E90FF 0%, #000080 100%); border-radius: 50% 50% 0 0 / 20% 20% 0 0; animation: op1-sea 8s linear infinite; }
.scn-oporto-carnival .ship-hull { position:absolute; bottom:30%; left:20%; width:100px; height:40px; background: linear-gradient(180deg, #8B4513 0%, #5C3317 100%); border-radius: 20% 20% 40% 40% / 30% 30% 60% 60%; box-shadow: 0 4px 10px rgba(0,0,0,.5); animation: op1-ship 6s ease-in-out infinite; }
.scn-oporto-carnival .ship-mast { position:absolute; bottom:50%; left:32%; width:8px; height:70px; background: #3E2723; border-radius:10%; }
.scn-oporto-carnival .carnival-flag { position:absolute; top:18%; left:28%; width:20px; height:14px; background: linear-gradient(180deg, #D2691E 0%, #CD853F 100%); clip-path: polygon(0 0, 100% 0, 100% 100%, 0 60%); animation: op1-flag 2s ease-in-out infinite alternate; }
.scn-oporto-carnival .dancing-figure { position:absolute; bottom:22%; left:55%; width:18px; height:40px; background: #8B008B; border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: op1-dance 4s ease-in-out infinite; }
.scn-oporto-carnival .confetti-dot { position:absolute; top:15%; left:50%; width:8px; height:8px; background: #FF4500; border-radius:50%; box-shadow: 12px 20px 0 #FFD700, -8px 30px 0 #7B68EE, 20px 10px 0 #FFB6C1; animation: op1-confetti 10s linear infinite; }

@keyframes op1-sky { 0% { opacity:.8; filter: hue-rotate(0deg); } 50% { opacity:1; filter: hue-rotate(5deg); } 100% { opacity:.85; filter: hue-rotate(0deg); } }
@keyframes op1-sea { 0% { background-position: 0 0; } 50% { background-position: 0 8px; } 100% { background-position: 0 0; } }
@keyframes op1-ship { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(2deg) translateY(-3px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes op1-flag { 0% { transform: skewX(0deg); } 50% { transform: skewX(-10deg); } 100% { transform: skewX(0deg); } }
@keyframes op1-dance { 0% { transform: translateX(0) rotate(-3deg); } 20% { transform: translateX(8px) rotate(3deg); } 40% { transform: translateX(12px) rotate(-3deg); } 60% { transform: translateX(4px) rotate(2deg); } 80% { transform: translateX(10px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes op1-confetti { 0% { transform: translateY(0) rotate(0deg); opacity:1; } 25% { transform: translateY(50px) rotate(90deg); opacity:.8; } 50% { transform: translateY(100px) rotate(180deg); opacity:.6; } 75% { transform: translateY(150px) rotate(270deg); opacity:.4; } 100% { transform: translateY(200px) rotate(360deg); opacity:0; } }

.scn-board-jenning {
  background: linear-gradient(180deg, #87CEEB 0%, #b0d4f0 30%, #f0e6b0 70%, #c8b070 100%);
  position: relative; overflow: hidden;
}
.scn-board-jenning .bj-sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #5b9bd5 0%, #9bc9f0 50%, #f7e3a0 100%);
  animation: bj-sky 12s ease-in-out infinite alternate;
}
.scn-board-jenning .bj-sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #2a6b9a 0%, #1a4a6a 100%);
  border-radius: 60% 40% 0 0 / 20% 15% 0 0;
  animation: bj-sea 8s ease-in-out infinite alternate;
}
.scn-board-jenning .bj-sun {
  position: absolute; top: 10%; right: 25%; width: 60px; height: 60px;
  background: radial-gradient(circle, #ffe680 0%, #ffd34d 50%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 16px rgba(255, 211, 77, 0.5);
  animation: bj-sun 6s ease-in-out infinite;
}
.scn-board-jenning .bj-ship-hull {
  position: absolute; bottom: 38%; left: 30%; width: 120px; height: 40px;
  background: linear-gradient(180deg, #6b4226 0%, #3a2214 100%);
  border-radius: 0 0 30% 30%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.4);
  animation: bj-rock 5s ease-in-out infinite;
}
.scn-board-jenning .bj-sail-main {
  position: absolute; bottom: 44%; left: 34%; width: 80px; height: 90px;
  background: linear-gradient(180deg, #f5f0e0 0%, #e0d6b8 100%);
  border-radius: 30% 70% 50% 50% / 60% 40% 60% 40%;
  transform-origin: bottom center;
  animation: bj-sail 7s ease-in-out infinite alternate;
}
.scn-board-jenning .bj-sail-jib {
  position: absolute; bottom: 44%; left: 24%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #f0ecdc 0%, #d6ccae 100%);
  border-radius: 20% 80% 30% 70% / 50% 50% 50% 50%;
  transform-origin: bottom center;
  animation: bj-sail 6s ease-in-out infinite alternate-reverse;
}
.scn-board-jenning .bj-figure {
  position: absolute; bottom: 39%; left: 34%; width: 18px; height: 30px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1e140a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: bj-figure 4s ease-in-out infinite;
}
.scn-board-jenning .bj-cloud-a {
  position: absolute; top: 18%; left: 10%; width: 100px; height: 30px;
  background: radial-gradient(circle at 30% 50%, rgba(255,255,255,0.6) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(8px);
  animation: bj-drift-a 40s linear infinite;
}
.scn-board-jenning .bj-cloud-b {
  position: absolute; top: 25%; right: 15%; width: 80px; height: 25px;
  background: radial-gradient(circle at 50% 50%, rgba(255,255,255,0.4) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(6px);
  animation: bj-drift-b 50s linear infinite reverse;
}
@keyframes bj-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes bj-sea { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(0); } }
@keyframes bj-sun { 0% { transform: scale(1); opacity: 0.9; } 50% { transform: scale(1.05); opacity: 1; } 100% { transform: scale(0.95); opacity: 0.85; } }
@keyframes bj-rock { 0% { transform: rotate(0deg); } 25% { transform: rotate(1deg) translateY(-1px); } 75% { transform: rotate(-1deg) translateY(1px); } 100% { transform: rotate(0deg); } }
@keyframes bj-sail { 0% { transform: rotate(-2deg) scaleX(1); } 50% { transform: rotate(2deg) scaleX(1.02); } 100% { transform: rotate(-1deg) scaleX(0.98); } }
@keyframes bj-figure { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes bj-drift-a { 0% { transform: translateX(-50px); } 100% { transform: translateX(120vw); } }
@keyframes bj-drift-b { 0% { transform: translateX(0); } 100% { transform: translateX(-100vw); } }

.scn-cutting-wood {
  background: linear-gradient(180deg, #6b8e9e 0%, #c8d8e0 40%, #a0825a 60%, #5a3a1a 100%);
  position: relative; overflow: hidden;
}
.scn-cutting-wood .cw-sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #4a6a7a 0%, #8ab0c0 60%, #d0b080 100%);
  animation: cw-sky 14s ease-in-out infinite alternate;
}
.scn-cutting-wood .cw-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #5a4a2a 0%, #3a2a12 100%);
  border-radius: 30% 70% 0 0 / 40% 60% 0 0;
}
.scn-cutting-wood .cw-tree {
  position: absolute; bottom: 40%; left: 40%; width: 30px; height: 100px;
  background: linear-gradient(180deg, #5a3a1a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 20% 20%;
  transform-origin: bottom center;
  animation: cw-tree 3s ease-in-out infinite;
}
.scn-cutting-wood .cw-figure {
  position: absolute; bottom: 30%; left: 36%; width: 22px; height: 44px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0e0a04 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cw-figure 2s ease-in-out infinite;
}
.scn-cutting-wood .cw-axe {
  position: absolute; bottom: 50%; left: 32%; width: 40px; height: 12px;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2214 100%);
  border-radius: 30% 70% 50% 50% / 50% 50% 50% 50%;
  transform-origin: right center;
  animation: cw-axe 2s ease-in-out infinite alternate;
}
.scn-cutting-wood .cw-stump {
  position: absolute; bottom: 34%; left: 42%; width: 40px; height: 20px;
  background: radial-gradient(ellipse at 50% 30%, #4a3a1a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.6);
}
.scn-cutting-wood .cw-cloud {
  position: absolute; top: 20%; left: 20%; width: 90px; height: 28px;
  background: radial-gradient(circle at 30% 50%, rgba(255,255,255,0.4) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(6px);
  animation: cw-drift 35s linear infinite;
}
@keyframes cw-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes cw-tree { 0% { transform: rotate(0deg); } 25% { transform: rotate(2deg); } 50% { transform: rotate(-1deg); } 100% { transform: rotate(0deg); } }
@keyframes cw-figure { 0% { transform: translateY(0) rotate(-1deg); } 25% { transform: translateY(-3px) rotate(2deg); } 50% { transform: translateY(0) rotate(-1deg); } 75% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes cw-axe { 0% { transform: rotate(30deg); } 50% { transform: rotate(-30deg); } 100% { transform: rotate(30deg); } }
@keyframes cw-drift { 0% { transform: translateX(-40px); } 100% { transform: translateX(110vw); } }

.scn-indian-queen {
  background: linear-gradient(180deg, #7fa8c0 0%, #b8d4e8 30%, #e8d8a0 60%, #c0a870 100%);
  position: relative; overflow: hidden;
}
.scn-indian-queen .iq-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #4a7a9a 0%, #8ab8d8 50%, #f0d890 100%);
  animation: iq-sky 10s ease-in-out infinite alternate;
}
.scn-indian-queen .iq-sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #2a6a8a 0%, #1a4a6a 100%);
  border-radius: 50% 50% 0 0 / 15% 15% 0 0;
  animation: iq-sea 9s ease-in-out infinite alternate;
}
.scn-indian-queen .iq-ship-hull {
  position: absolute; bottom: 35%; left: 40%; width: 100px; height: 35px;
  background: linear-gradient(180deg, #5a3a22 0%, #2a1a0e 100%);
  border-radius: 0 0 30% 30%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.4);
  animation: iq-rock 6s ease-in-out infinite;
}
.scn-indian-queen .iq-sail {
  position: absolute; bottom: 40%; left: 44%; width: 60px; height: 80px;
  background: linear-gradient(180deg, #f5f0e0 0%, #d6ccae 100%);
  border-radius: 40% 60% 50% 50% / 60% 40% 60% 40%;
  transform-origin: bottom center;
  animation: iq-sail 8s ease-in-out infinite alternate;
}
.scn-indian-queen .iq-flag {
  position: absolute; bottom: 62%; left: 42%; width: 24px; height: 16px;
  background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%);
  border-radius: 0 30% 30% 0;
  transform-origin: left center;
  animation: iq-flag 4s ease-in-out infinite alternate;
}
.scn-indian-queen .iq-turtle {
  position: absolute; bottom: 28%; left: 46%; width: 30px; height: 18px;
  background: radial-gradient(ellipse at 50% 40%, #6a8a5a 0%, #3a5a2a 100%);
  border-radius: 50% 50% 40% 40%;
  box-shadow: inset 0 2px 4px rgba(0,0,0,0.5);
  animation: iq-turtle 5s ease-in-out infinite;
}
.scn-indian-queen .iq-figure-captain {
  position: absolute; bottom: 36%; left: 42%; width: 16px; height: 28px;
  background: linear-gradient(180deg, #2a1a0e 0%, #0e0a04 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
}
.scn-indian-queen .iq-cloud {
  position: absolute; top: 15%; left: 30%; width: 120px; height: 32px;
  background: radial-gradient(circle at 40% 50%, rgba(255,255,255,0.5) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(8px);
  animation: iq-drift 45s linear infinite reverse;
}
@keyframes iq-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes iq-sea { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes iq-rock { 0% { transform: rotate(0deg); } 25% { transform: rotate(2deg) translateY(-1px); } 75% { transform: rotate(-2deg) translateY(1px); } 100% { transform: rotate(0deg); } }
@keyframes iq-sail { 0% { transform: rotate(-3deg) scaleX(1); } 50% { transform: rotate(3deg) scaleX(1.03); } 100% { transform: rotate(-2deg) scaleX(0.97); } }
@keyframes iq-flag { 0% { transform: rotate(0deg); } 50% { transform: rotate(15deg); } 100% { transform: rotate(-5deg); } }
@keyframes iq-turtle { 0% { transform: translateX(0); } 50% { transform: translateX(3px); } 100% { transform: translateX(0); } }
@keyframes iq-drift { 0% { transform: translateX(0); } 100% { transform: translateX(-120vw); } }

.scn-transfer-baker {
  background: linear-gradient(180deg, #5a7a8a 0%, #8ab8c8 30%, #c8b080 50%, #8a6a40 100%);
  position: relative; overflow: hidden;
}
.scn-transfer-baker .tb-sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #3a5a6a 0%, #7a9aaa 50%, #d0b070 100%);
  animation: tb-sky 8s ease-in-out infinite alternate;
}
.scn-transfer-baker .tb-sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #1a4a5a 0%, #0e2a36 100%);
  border-radius: 40% 60% 0 0 / 25% 30% 0 0;
  animation: tb-sea 7s ease-in-out infinite alternate;
}
.scn-transfer-baker .tb-ship-left {
  position: absolute; bottom: 32%; left: 15%; width: 90px; height: 32px;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0e 100%);
  border-radius: 0 0 25% 25%;
  box-shadow: 0 6px 14px rgba(0,0,0,0.5);
  animation: tb-rock-left 4s ease-in-out infinite;
}
.scn-transfer-baker .tb-ship-right {
  position: absolute; bottom: 30%; right: 20%; width: 110px; height: 36px;
  background: linear-gradient(180deg, #5a3a22 0%, #3a2214 100%);
  border-radius: 0 0 30% 30%;
  box-shadow: 0 6px 14px rgba(0,0,0,0.5);
  animation: tb-rock-right 5s ease-in-out infinite;
}
.scn-transfer-baker .tb-rope-ladder {
  position: absolute; bottom: 38%; left: 38%; width: 8px; height: 80px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 20%;
  transform-origin: top center;
  animation: tb-rope 3s ease-in-out infinite;
}
.scn-transfer-baker .tb-figure {
  position: absolute; bottom: 40%; left: 36%; width: 18px; height: 34px;
  background: linear-gradient(180deg, #1a1a0a 0%, #0a0a04 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tb-climb 2s ease-in-out infinite;
}
.scn-transfer-baker .tb-boat {
  position: absolute; bottom: 26%; left: 28%; width: 40px; height: 14px;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2214 100%);
  border-radius: 0 0 50% 50%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: tb-boat 6s ease-in-out infinite;
}
.scn-transfer-baker .tb-cloud {
  position: absolute; top: 12%; left: 40%; width: 100px; height: 30px;
  background: radial-gradient(circle at 50% 50%, rgba(255,255,255,0.4) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(7px);
  animation: tb-drift 30s linear infinite;
}
@keyframes tb-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes tb-sea { 0% { transform: translateY(0); } 50% { transform: translateY(-5px); } 100% { transform: translateY(0); } }
@keyframes tb-rock-left { 0% { transform: rotate(0deg); } 25% { transform: rotate(3deg) translateY(-2px); } 75% { transform: rotate(-3deg) translateY(2px); } 100% { transform: rotate(0deg); } }
@keyframes tb-rock-right { 0% { transform: rotate(0deg); } 25% { transform: rotate(2deg) translateY(-1px); } 75% { transform: rotate(-2deg) translateY(1px); } 100% { transform: rotate(0deg); } }
@keyframes tb-rope { 0% { transform: rotate(0deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-3deg); } }
@keyframes tb-climb { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-6px) rotate(2deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-4px) rotate(-2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes tb-boat { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes tb-drift { 0% { transform: translateX(0); } 100% { transform: translateX(-110vw); } }

.scn-jamaica-church {
  background: 
    linear-gradient(180deg, #f4e8c1 0%, #d4c49a 40%, #a89070 100%),
    radial-gradient(ellipse at 30% 20%, rgba(255,210,120,0.6) 0%, transparent 60%);
}
.scn-jamaica-church .sky {
  position:absolute; inset:0 0 55% 0;
  background: linear-gradient(180deg, #c4d8f0 0%, #e8e4c0 70%, transparent 100%);
  animation: jc-sky 12s ease-in-out infinite alternate;
}
.scn-jamaica-church .sunlight {
  position:absolute; top:0; left:0; width:100%; height:100%;
  background: radial-gradient(ellipse at 35% 15%, rgba(255,230,150,0.4) 0%, transparent 50%);
  animation: jc-sun 8s ease-in-out infinite alternate;
}
.scn-jamaica-church .church {
  position:absolute; bottom:30%; left:20%; width:120px; height:100px;
  background: linear-gradient(180deg, #c8a67a 0%, #9a7a5a 100%);
  border-radius: 10% 10% 4% 4%;
  box-shadow: 8px 8px 20px rgba(0,0,0,0.5);
  transform: perspective(400px) rotateY(-5deg);
  animation: jc-church 6s ease-in-out infinite alternate;
}
.scn-jamaica-church .door {
  position:absolute; bottom:30%; left:28%; width:20px; height:30px;
  background: linear-gradient(180deg, #5c3a2a 0%, #3a221a 100%);
  border-radius: 4px;
  box-shadow: 0 0 15px 5px rgba(200,150,80,0.3);
  animation: jc-door 3s ease-in-out infinite alternate;
}
.scn-jamaica-church .crowd {
  position:absolute; bottom:28%; left:30%; width:80px; height:40px;
  background: 
    radial-gradient(ellipse 6px 12px at 10% 40%, #4a3a2a 0%, transparent 100%),
    radial-gradient(ellipse 6px 12px at 30% 30%, #4a3a2a 0%, transparent 100%),
    radial-gradient(ellipse 6px 12px at 50% 35%, #3a2a1a 0%, transparent 100%),
    radial-gradient(ellipse 6px 12px at 70% 40%, #3a2a1a 0%, transparent 100%),
    radial-gradient(ellipse 6px 12px at 90% 30%, #4a3a2a 0%, transparent 100%);
  background-size: 100% 100%;
  animation: jc-crowd 4s ease-in-out infinite;
}
.scn-jamaica-church .water {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #7a9ab0 0%, #4a6a8a 100%);
  box-shadow: inset 0 4px 10px rgba(0,0,0,0.3);
  animation: jc-water 10s ease-in-out infinite alternate;
}
.scn-jamaica-church .shadow {
  position:absolute; bottom:28%; left:15%; width:130px; height:20px;
  background: rgba(0,0,0,0.3);
  border-radius: 50%;
  filter: blur(6px);
  animation: jc-shadow 6s ease-in-out infinite alternate;
}
@keyframes jc-sky { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes jc-sun { 0% { transform: scale(0.9); opacity:0.6 } 50% { transform: scale(1.1); opacity:1 } 100% { transform: scale(0.95); opacity:0.7 } }
@keyframes jc-church { 0% { transform: perspective(400px) rotateY(-5deg) translateY(0) } 50% { transform: perspective(400px) rotateY(-3deg) translateY(-2px) } 100% { transform: perspective(400px) rotateY(-5deg) translateY(0) } }
@keyframes jc-door { 0% { box-shadow: 0 0 10px 3px rgba(200,150,80,0.2); } 50% { box-shadow: 0 0 20px 8px rgba(220,180,100,0.6); } 100% { box-shadow: 0 0 12px 4px rgba(200,150,80,0.3); } }
@keyframes jc-crowd { 0% { transform: translateX(0) scaleY(1) } 25% { transform: translateX(3px) scaleY(0.97) } 50% { transform: translateX(0) scaleY(1) } 75% { transform: translateX(-3px) scaleY(0.97) } 100% { transform: translateX(0) scaleY(1) } }
@keyframes jc-water { 0% { background-position: 0% 0%; transform: scaleY(1) } 50% { background-position: 2% 2%; transform: scaleY(1.02) } 100% { background-position: 0% 0%; transform: scaleY(1) } }
@keyframes jc-shadow { 0% { transform: scaleX(1) scaleY(1); opacity:0.3 } 50% { transform: scaleX(1.05) scaleY(0.9); opacity:0.4 } 100% { transform: scaleX(1) scaleY(1); opacity:0.3 } }

.scn-musquito-shore-arrival {
  background: 
    linear-gradient(180deg, #f0d8a0 0%, #d4b870 40%, #a08050 100%),
    radial-gradient(ellipse at 70% 10%, rgba(255,220,120,0.7) 0%, transparent 50%);
}
.scn-musquito-shore-arrival .sky {
  position:absolute; inset:0 0 50% 0;
  background: linear-gradient(180deg, #b0c8e0 0%, #e8d4a0 70%, transparent 100%);
  animation: ms-sky 20s ease-in-out infinite alternate;
}
.scn-musquito-shore-arrival .sea {
  position:absolute; bottom:0; left:0; right:0; height:45%;
  background: linear-gradient(180deg, #6a9ab0 0%, #3a6a8a 100%);
  box-shadow: inset 0 2px 10px rgba(0,0,0,0.2);
  animation: ms-sea 14s ease-in-out infinite alternate;
}
.scn-musquito-shore-arrival .beach {
  position:absolute; bottom:40%; left:0; right:0; height:15%;
  background: linear-gradient(180deg, #e0c890 0%, #c0a870 100%);
  border-radius: 30% 70% 0 0 / 50% 90% 0 0;
  animation: ms-beach 8s ease-in-out infinite alternate;
}
.scn-musquito-shore-arrival .boat {
  position:absolute; bottom:48%; left:10%; width:80px; height:30px;
  background: linear-gradient(90deg, #7a5a3a 0%, #5a3a1a 100%);
  border-radius: 10% 10% 50% 50%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  transform: rotate(-5deg);
  animation: ms-boat 6s ease-in-out infinite;
}
.scn-musquito-shore-arrival .figures {
  position:absolute; bottom:43%; left:25%; width:60px; height:40px;
  background: 
    radial-gradient(ellipse 5px 12px at 20% 80%, #3a2a1a 0%, transparent 100%),
    radial-gradient(ellipse 5px 12px at 50% 90%, #4a3a2a 0%, transparent 100%),
    radial-gradient(ellipse 5px 12px at 80% 70%, #3a2a1a 0%, transparent 100%);
  animation: ms-figures 5s ease-in-out infinite alternate;
}
.scn-musquito-shore-arrival .palms {
  position:absolute; bottom:40%; left:60%; width:40px; height:70px;
  background: linear-gradient(180deg, #5a7a3a 0%, #3a5a1a 100%);
  border-radius: 50% 50% 10% 10%;
  transform: rotate(15deg);
  animation: ms-palms 8s ease-in-out infinite alternate;
}
.scn-musquito-shore-arrival .sun {
  position:absolute; top:8%; right:15%; width:50px; height:50px;
  background: radial-gradient(circle, #ffd080 0%, #e8a040 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 15px rgba(255,200,80,0.5);
  animation: ms-sun 10s ease-in-out infinite alternate;
}
.scn-musquito-shore-arrival .clouds {
  position:absolute; top:5%; left:5%; width:100px; height:20px;
  background: linear-gradient(180deg, rgba(255,255,255,0.6) 0%, rgba(255,255,255,0.1) 100%);
  border-radius: 50%;
  filter: blur(8px);
  animation: ms-clouds 30s linear infinite;
}
@keyframes ms-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes ms-sea { 0% { background-position: 0% 0%; transform: scaleY(1) } 50% { background-position: 2% 2%; transform: scaleY(1.01) } 100% { background-position: 0% 0%; transform: scaleY(1) } }
@keyframes ms-beach { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(0.5deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes ms-boat { 0% { transform: rotate(-5deg) translateX(0) } 25% { transform: rotate(-4deg) translateX(3px) } 50% { transform: rotate(-5deg) translateX(0) } 75% { transform: rotate(-6deg) translateX(-3px) } 100% { transform: rotate(-5deg) translateX(0) } }
@keyframes ms-figures { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes ms-palms { 0% { transform: rotate(15deg) scaleY(1) } 50% { transform: rotate(17deg) scaleY(1.02) } 100% { transform: rotate(15deg) scaleY(1) } }
@keyframes ms-sun { 0% { box-shadow: 0 0 20px 10px rgba(255,200,80,0.4); transform: scale(0.95) } 50% { box-shadow: 0 0 40px 20px rgba(255,200,80,0.7); transform: scale(1.05) } 100% { box-shadow: 0 0 25px 12px rgba(255,200,80,0.5); transform: scale(0.95) } }
@keyframes ms-clouds { 0% { transform: translateX(-30px) } 100% { transform: translateX(100vw) } }

.scn-plantation-start {
  background: 
    linear-gradient(180deg, #0a0a1a 0%, #1a1a3e 40%, #2a2a5e 100%),
    radial-gradient(ellipse at 50% 30%, rgba(60,40,80,0.5) 0%, transparent 70%);
}
.scn-plantation-start .night-sky {
  position:absolute; inset:0 0 40% 0;
  background: linear-gradient(180deg, #0a0a2a 0%, #1a1a4a 100%);
  animation: pl-sky 15s ease-in-out infinite alternate;
}
.scn-plantation-start .trees {
  position:absolute; bottom:35%; left:0; right:0; height:30%;
  background: 
    radial-gradient(ellipse 30px 50px at 10% 100%, #1a2a1a 0%, transparent 100%),
    radial-gradient(ellipse 20px 40px at 30% 80%, #2a3a2a 0%, transparent 100%),
    radial-gradient(ellipse 25px 45px at 60% 100%, #1a2a1a 0%, transparent 100%),
    radial-gradient(ellipse 30px 50px at 85% 90%, #2a3a2a 0%, transparent 100%);
  animation: pl-trees 12s ease-in-out infinite alternate;
}
.scn-plantation-start .river {
  position:absolute; bottom:15%; left:0; right:0; height:25%;
  background: linear-gradient(90deg, #1a2a3a 0%, #2a3a4a 50%, #1a2a3a 100%);
  border-radius: 0 0 50% 50% / 0 0 20% 20%;
  animation: pl-river 8s ease-in-out infinite alternate;
}
.scn-plantation-start .campfire {
  position:absolute; bottom:35%; left:45%; width:30px; height:40px;
  background: radial-gradient(ellipse at 50% 100%, #ffa040 0%, #d06020 40%, transparent 70%);
  border-radius: 50% 50% 0 0;
  box-shadow: 0 0 40px 20px rgba(255,160,64,0.5);
  animation: pl-fire 3s ease-in-out infinite infinite;
}
.scn-plantation-start .figure {
  position:absolute; bottom:30%; left:40%; width:20px; height:50px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: pl-figure 5s ease-in-out infinite alternate;
}
.scn-plantation-start .beast {
  position:absolute; bottom:32%; left:65%; width:30px; height:20px;
  background: radial-gradient(ellipse, #2a2a1a 0%, #1a1a0a 100%);
  border-radius: 50%;
  filter: blur(3px);
  animation: pl-beast 6s ease-in-out infinite alternate;
}
@keyframes pl-sky { 0% { opacity:0.6 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes pl-trees { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-2px) scaleY(0.98) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes pl-river { 0% { background-position: 0% 0%; opacity:0.8 } 50% { background-position: 2% 0%; opacity:1 } 100% { background-position: 0% 0%; opacity:0.8 } }
@keyframes pl-fire { 0% { transform: scaleY(0.9) scaleX(1) rotate(-2deg); opacity:0.8 } 25% { transform: scaleY(1.1) scaleX(0.9) rotate(2deg); opacity:1 } 50% { transform: scaleY(0.95) scaleX(1.05) rotate(-1deg); opacity:0.9 } 75% { transform: scaleY(1.05) scaleX(0.95) rotate(1deg); opacity:1 } 100% { transform: scaleY(0.9) scaleX(1) rotate(-2deg); opacity:0.8 } }
@keyframes pl-figure { 0% { transform: translateX(0) rotate(0deg) } 30% { transform: translateX(5px) rotate(2deg) } 60% { transform: translateX(0) rotate(0deg) } 100% { transform: translateX(-5px) rotate(-2deg) } }
@keyframes pl-beast { 0% { transform: translateX(0) scaleX(1) } 50% { transform: translateX(10px) scaleX(0.8) } 100% { transform: translateX(0) scaleX(1) } }

.scn-indian-life {
  background: 
    linear-gradient(180deg, #c8e0c0 0%, #a8c8a0 40%, #88a880 100%),
    radial-gradient(ellipse at 60% 20%, rgba(200,220,180,0.7) 0%, transparent 60%);
}
.scn-indian-life .sky {
  position:absolute; inset:0 0 50% 0;
  background: linear-gradient(180deg, #a0c8e0 0%, #d0e8c0 70%, transparent 100%);
  animation: il-sky 18s ease-in-out infinite alternate;
}
.scn-indian-life .ground {
  position:absolute; bottom:0; left:0; right:0; height:50%;
  background: linear-gradient(180deg, #7a9a6a 0%, #5a7a4a 100%);
  border-radius: 30% 70% 0 0 / 20% 40% 0 0;
  animation: il-ground 12s ease-in-out infinite alternate;
}
.scn-indian-life .hut {
  position:absolute; bottom:20%; left:20%; width:70px; height:60px;
  background: linear-gradient(180deg, #b09a7a 0%, #8a7a5a 100%);
  border-radius: 50% 50% 10% 10% / 60% 60% 10% 10%;
  box-shadow: 4px 4px 10px rgba(0,0,0,0.2);
  animation: il-hut 10s ease-in-out infinite alternate;
}
.scn-indian-life .hut2 {
  position:absolute; bottom:20%; left:50%; width:60px; height:50px;
  background: linear-gradient(180deg, #a89a7a 0%, #7a6a4a 100%);
  border-radius: 50% 50% 10% 10% / 60% 60% 10% 10%;
  box-shadow: 4px 4px 10px rgba(0,0,0,0.2);
  animation: il-hut2 12s ease-in-out infinite alternate;
}
.scn-indian-life .figure {
  position:absolute; bottom:18%; left:35%; width:16px; height:40px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: il-figure1 6s ease-in-out infinite;
}
.scn-indian-life .figure2 {
  position:absolute; bottom:18%; left:55%; width:16px; height:38px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: il-figure2 7s ease-in-out infinite;
}
.scn-indian-life .trees {
  position:absolute; bottom:35%; left:70%; width:30px; height:80px;
  background: linear-gradient(180deg, #4a6a3a 0%, #2a4a1a 100%);
  border-radius: 50% 50% 10% 10%;
  animation: il-trees 8s ease-in-out infinite alternate;
}
.scn-indian-life .silver {
  position:absolute; bottom:25%; left:30%; width:8px; height:8px;
  background: radial-gradient(circle, #c0c8d0 0%, #9098a0 100%);
  border-radius: 50%;
  box-shadow: 0 0 10px 3px rgba(192,200,208,0.6);
  animation: il-silver 4s ease-in-out infinite alternate;
}
@keyframes il-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes il-ground { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes il-hut { 0% { transform: scaleY(1) translateY(0) } 50% { transform: scaleY(1.02) translateY(-1px) } 100% { transform: scaleY(1) translateY(0) } }
@keyframes il-hut2 { 0% { transform: scaleY(1) translateY(0) } 50% { transform: scaleY(1.01) translateY(-1px) } 100% { transform: scaleY(1) translateY(0) } }
@keyframes il-figure1 { 0% { transform: translateX(0) rotate(0deg) } 30% { transform: translateX(4px) rotate(3deg) } 60% { transform: translateX(-2px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes il-figure2 { 0% { transform: translateX(0) rotate(0deg) } 20% { transform: translateX(-3px) rotate(-2deg) } 50% { transform: translateX(2px) rotate(2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes il-trees { 0% { transform: rotate(0deg) scaleY(1) } 50% { transform: rotate(2deg) scaleY(1.02) } 100% { transform: rotate(0deg) scaleY(1) } }
@keyframes il-silver { 0% { box-shadow: 0 0 8px 2px rgba(192,200,208,0.4); opacity:0.7 } 50% { box-shadow: 0 0 15px 5px rgba(192,200,208,0.8); opacity:1 } 100% { box-shadow: 0 0 10px 3px rgba(192,200,208,0.5); opacity:0.8 } }

.scn-act-criticism { background: linear-gradient(180deg, #0c0c1e 0%, #1a1a2e 60%, #2a2a3e 100%), radial-gradient(ellipse at 50% 70%, #1a1a2e 0%, transparent 80%); }
.scn-act-criticism .bg-wall    { position:absolute; inset:0; background: radial-gradient(ellipse at 40% 30%, #1e1e30 0%, #0a0a14 100%); }
.scn-act-criticism .desk       { position:absolute; bottom:18%; left:20%; right:20%; height:18%; background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%); border-radius:4px 4px 0 0; box-shadow: 0 -4px 8px rgba(0,0,0,.6); }
.scn-act-criticism .paper      { position:absolute; bottom:28%; left:30%; width:12%; height:14%; background: linear-gradient(135deg, #d4c8a0 0%, #b8a880 100%); border-radius:2px; transform: rotate(-2deg); box-shadow: 0 2px 6px rgba(0,0,0,.4); animation: ac-paper 6s ease-in-out infinite alternate; }
.scn-act-criticism .candle     { position:absolute; bottom:36%; left:35%; width:3%; height:12%; background: linear-gradient(180deg, #f0d8a8 0%, #c8a060 100%); border-radius:2px; box-shadow: 0 0 6px #c8a060; }
.scn-act-criticism .flame      { position:absolute; bottom:47%; left:35%; width:2%; height:6%; background: radial-gradient(circle, #ffdd80 0%, #ffa040 70%, transparent 100%); border-radius:50%; box-shadow: 0 0 12px 6px #ffa040, 0 0 24px 12px rgba(255,160,64,.3); animation: ac-flame 1.5s ease-in-out infinite alternate; }
.scn-act-criticism .reader     { position:absolute; bottom:20%; left:32%; width:10%; height:28%; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a18 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ac-reader 4s ease-in-out infinite; }
.scn-act-criticism .shadow     { position:absolute; bottom:18%; left:28%; width:8%; height:6%; background: radial-gradient(ellipse, rgba(0,0,0,.5) 0%, transparent 100%); border-radius:50%; animation: ac-shadow 2s ease-in-out infinite alternate; }
@keyframes ac-paper { 0% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(0deg) translateY(-2px); } 100% { transform: rotate(-2deg) translateY(0); } }
@keyframes ac-flame { 0% { transform: scaleY(1) scaleX(1); opacity:.9; } 30% { transform: scaleY(1.2) scaleX(0.8); opacity:1; } 60% { transform: scaleY(0.9) scaleX(1.1); opacity:.85; } 100% { transform: scaleY(1) scaleX(1); opacity:.9; } }
@keyframes ac-reader { 0% { transform: translateX(0) rotate(-1deg); } 25% { transform: translateX(3px) rotate(1deg); } 50% { transform: translateX(0) rotate(-1deg); } 75% { transform: translateX(-3px) rotate(1deg); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes ac-shadow { 0% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(4px) scaleX(1.2); } 100% { transform: translateX(0) scaleX(1); } }

.scn-act-evaluation { background: linear-gradient(180deg, #0a0a1a 0%, #181830 50%, #2a2a4a 100%), radial-gradient(ellipse at 60% 40%, #181830 0%, transparent 70%); }
.scn-act-evaluation .bg-chamber { position:absolute; inset:0; background: radial-gradient(ellipse at 30% 50%, #1e1e38 0%, #0a0a14 100%); }
.scn-act-evaluation .shelf      { position:absolute; top:15%; left:10%; right:60%; height:8%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:2px; box-shadow: 0 4px 8px rgba(0,0,0,.5); }
.scn-act-evaluation .book-a     { position:absolute; top:16%; left:14%; width:8%; height:6%; background: #4a2a3a; border-radius:1px; transform: rotate(3deg); animation: ae-book 5s ease-in-out infinite alternate; }
.scn-act-evaluation .book-b     { position:absolute; top:16%; left:23%; width:9%; height:5%; background: #3a2a4a; border-radius:1px; transform: rotate(-2deg); animation: ae-book 7s ease-in-out infinite alternate-reverse; }
.scn-act-evaluation .scroll     { position:absolute; bottom:30%; left:45%; width:10%; height:14%; background: linear-gradient(180deg, #d4c8a0 0%, #b8a880 100%); border-radius:30% 30% 10% 10% / 50% 50% 20% 20%; box-shadow: 0 2px 6px rgba(0,0,0,.4); animation: ae-scroll 8s ease-in-out infinite; }
.scn-act-evaluation .orator     { position:absolute; bottom:20%; left:35%; width:12%; height:34%; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a18 100%); border-radius: 45% 45% 35% 35% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ae-orator 6s ease-in-out infinite; }
.scn-act-evaluation .lamp       { position:absolute; bottom:50%; left:28%; width:4%; height:8%; background: radial-gradient(ellipse at 50% 30%, #ffdd80 0%, #c8a060 100%); border-radius:50%; box-shadow: 0 0 20px 10px rgba(200,160,96,.4), 0 0 40px 20px rgba(200,160,96,.2); animation: ae-lamp 3s ease-in-out infinite alternate; }
@keyframes ae-book { 0% { transform: rotate(3deg) translateY(0); } 50% { transform: rotate(-1deg) translateY(-2px); } 100% { transform: rotate(2deg) translateY(0); } }
@keyframes ae-scroll { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-4px) rotate(2deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes ae-orator { 0% { transform: translateX(0) rotate(-1deg); } 25% { transform: translateX(5px) rotate(2deg); } 50% { transform: translateX(0) rotate(-1deg); } 75% { transform: translateX(-5px) rotate(2deg); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes ae-lamp { 0% { opacity:.8; box-shadow: 0 0 15px 5px rgba(200,160,96,.3); } 50% { opacity:1; box-shadow: 0 0 30px 15px rgba(200,160,96,.5); } 100% { opacity:.85; box-shadow: 0 0 20px 8px rgba(200,160,96,.35); } }

.scn-french-planter-mulattoes { background: linear-gradient(180deg, #f7d29e 0%, #e8b870 30%, #c89850 60%, #a07030 100%), radial-gradient(ellipse at 50% 0%, #ffe8c0 0%, transparent 60%); }
.scn-french-planter-mulattoes .sky-warm { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #ffddb0 0%, #f0c080 100%), radial-gradient(ellipse at 70% 20%, #fff0d0 0%, transparent 70%); animation: fp-sky 20s ease-in-out infinite alternate; }
.scn-french-planter-mulattoes .field    { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #b08850 0%, #806030 100%); border-radius: 30% 30% 0 0 / 80% 80% 0 0; box-shadow: inset 0 20px 40px rgba(0,0,0,.3); }
.scn-french-planter-mulattoes .planter  { position:absolute; bottom:38%; left:20%; width:10%; height:30%; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 35% 35% 20% 20% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fp-planter 4s ease-in-out infinite; }
.scn-french-planter-mulattoes .slave-a  { position:absolute; bottom:20%; left:40%; width:8%; height:22%; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 30% 30% 25% 25% / 50% 50% 30% 30%; transform-origin: bottom center; animation: fp-slave 6s ease-in-out infinite; }
.scn-french-planter-mulattoes .slave-b  { position:absolute; bottom:20%; left:52%; width:8%; height:22%; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 30% 30% 25% 25% / 50% 50% 30% 30%; transform-origin: bottom center; animation: fp-slave 6s ease-in-out infinite 2s; }
.scn-french-planter-mulattoes .sun-glow { position:absolute; top:8%; left:60%; width:12%; height:12%; background: radial-gradient(circle, #fff0c0 0%, #ffd080 50%, transparent 100%); border-radius:50%; box-shadow: 0 0 60px 30px rgba(255,208,128,.4); animation: fp-sun 8s ease-in-out infinite alternate; }
.scn-french-planter-mulattoes .cane     { position:absolute; bottom:38%; left:30%; width:2%; height:18%; background: linear-gradient(180deg, #5a3a1a 0%, #3a220a 100%); border-radius:1px; transform: rotate(-15deg); animation: fp-cane 5s ease-in-out infinite; }
.scn-french-planter-mulattoes .planter-shadow { position:absolute; bottom:36%; left:18%; width:10%; height:4%; background: radial-gradient(ellipse, rgba(0,0,0,.4) 0%, transparent 100%); border-radius:50%; animation: fp-shadow 4s ease-in-out infinite; }
@keyframes fp-sky { 0% { opacity:.9; } 50% { opacity:1; } 100% { opacity:.85; } }
@keyframes fp-planter { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(5px) rotate(3deg); } 50% { transform: translateX(0) rotate(0); } 75% { transform: translateX(-5px) rotate(-3deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes fp-slave { 0% { transform: translateY(0) rotate(0); } 25% { transform: translateY(-3px) rotate(2deg); } 50% { transform: translateY(0) rotate(0); } 75% { transform: translateY(-2px) rotate(-2deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes fp-sun { 0% { transform: scale(1); opacity:.9; } 50% { transform: scale(1.1); opacity:1; } 100% { transform: scale(1); opacity:.9; } }
@keyframes fp-cane { 0% { transform: rotate(-15deg) translateY(0); } 50% { transform: rotate(-10deg) translateY(-2px); } 100% { transform: rotate(-15deg) translateY(0); } }
@keyframes fp-shadow { 0% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(5px) scaleX(1.2); } 100% { transform: translateX(0) scaleX(1); } }

.scn-moral-question { background: linear-gradient(180deg, #f5e6cc 0%, #e6d0a8 40%, #ccb080 100%), radial-gradient(ellipse at 50% 30%, #fff5e0 0%, transparent 70%); }
.scn-moral-question .bg-light    { position:absolute; inset:0; background: radial-gradient(ellipse at 60% 40%, #fff5e0 0%, #dcc8a0 100%); }
.scn-moral-question .ground      { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #b89868 0%, #8a7040 100%); border-radius: 20% 20% 0 0 / 60% 60% 0 0; }
.scn-moral-question .father      { position:absolute; bottom:20%; left:35%; width:12%; height:40%; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 45% 45% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mq-father 6s ease-in-out infinite; }
.scn-moral-question .child       { position:absolute; bottom:10%; left:48%; width:6%; height:20%; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 40% 40% 35% 35% / 50% 50% 35% 35%; transform-origin: bottom center; animation: mq-child 4s ease-in-out infinite; }
.scn-moral-question .light-beam  { position:absolute; top:0; left:30%; width:40%; height:100%; background: linear-gradient(180deg, rgba(255,240,200,0.15) 0%, rgba(255,240,200,0.05) 100%); clip-path: polygon(40% 0, 60% 0, 80% 100%, 20% 100%); animation: mq-beam 10s ease-in-out infinite alternate; }
.scn-moral-question .father-shadow { position:absolute; bottom:18%; left:32%; width:14%; height:6%; background: radial-gradient(ellipse, rgba(0,0,0,.3) 0%, transparent 100%); border-radius:50%; animation: mq-fshadow 4s ease-in-out infinite; }
.scn-moral-question .child-shadow { position:absolute; bottom:8%; left:46%; width:8%; height:4%; background: radial-gradient(ellipse, rgba(0,0,0,.3) 0%, transparent 100%); border-radius:50%; animation: mq-cshadow 4s ease-in-out infinite 0.5s; }
@keyframes mq-father { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(3px) rotate(2deg); } 50% { transform: translateX(0) rotate(0); } 75% { transform: translateX(-3px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes mq-child { 0% { transform: translateX(0) translateY(0) rotate(0); } 25% { transform: translateX(2px) translateY(-2px) rotate(1deg); } 50% { transform: translateX(0) translateY(0) rotate(0); } 75% { transform: translateX(-2px) translateY(-1px) rotate(-1deg); } 100% { transform: translateX(0) translateY(0) rotate(0); } }
@keyframes mq-beam { 0% { transform: translateX(0) scaleX(1); opacity:0.8; } 50% { transform: translateX(10px) scaleX(1.1); opacity:1; } 100% { transform: translateX(-5px) scaleX(0.95); opacity:0.8; } }
@keyframes mq-fshadow { 0% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(4px) scaleX(1.1); } 100% { transform: translateX(0) scaleX(1); } }
@keyframes mq-cshadow { 0% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(2px) scaleX(1.05); } 100% { transform: translateX(0) scaleX(1); } }

.scn-silver-coin-gift {
  background:
    linear-gradient(180deg, #f4e6c0 0%, #e0c080 40%, #9a7030 100%),
    radial-gradient(ellipse at 50% 0%, #fff5d0 0%, transparent 60%);
}
.scn-silver-coin-gift .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #aad0f0 0%, #80b0e0 100%); animation: scg-sky 20s ease-in-out infinite alternate; }
.scn-silver-coin-gift .sun { position:absolute; top:10%; left:20%; width:50px; height:50px; background: radial-gradient(circle, #fff8d0 0%, #f0c040 60%, transparent 80%); border-radius:50%; box-shadow: 0 0 60px 20px rgba(240,192,64,.5); animation: scg-sun 8s ease-in-out infinite; }
.scn-silver-coin-gift .sea { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #3a7a5a 0%, #2a5a3a 100%); animation: scg-sea 12s ease-in-out infinite alternate; }
.scn-silver-coin-gift .ship-hull { position:absolute; bottom:35%; left:30%; width:120px; height:40px; background: linear-gradient(90deg, #6a4a2a 0%, #4a2a1a 100%); border-radius:20% 5% 5% 20%; box-shadow: 0 10px 20px rgba(0,0,0,.4); animation: scg-hull 6s ease-in-out infinite; }
.scn-silver-coin-gift .sail { position:absolute; bottom:45%; left:32%; width:50px; height:80px; background: linear-gradient(180deg, #f0ecd8 0%, #c8c0a8 100%); border-radius:50% 50% 10% 10%; box-shadow: inset -5px 0 10px rgba(0,0,0,.1); animation: scg-sail 10s ease-in-out infinite alternate; }
.scn-silver-coin-gift .figure-equiano { position:absolute; bottom:33%; left:28%; width:20px; height:40px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius:50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: scg-figure-equiano 4s ease-in-out infinite; }
.scn-silver-coin-gift .figure-master { position:absolute; bottom:34%; left:45%; width:22px; height:42px; background: linear-gradient(180deg, #5a3a2a 0%, #3a2010 100%); border-radius:50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: scg-figure-master 4s ease-in-out infinite reverse; }
.scn-silver-coin-gift .coin { position:absolute; bottom:38%; left:36%; width:12px; height:12px; background: radial-gradient(circle, #fff8e0 0%, #d0c0a0 60%, #a09070 100%); border-radius:50%; box-shadow: 0 0 10px 3px rgba(208,192,160,.6); animation: scg-coin 2s ease-in-out infinite alternate; }
@keyframes scg-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes scg-sun { 0% { transform: scale(1) translate(0,0); opacity:.9 } 50% { transform: scale(1.05) translate(2px,-2px); opacity:1 } 100% { transform: scale(1) translate(0,0); opacity:.9 } }
@keyframes scg-sea { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(2px) } }
@keyframes scg-hull { 0% { transform: translate(0,0) rotate(-1deg) } 25% { transform: translate(2px,-1px) rotate(0) } 50% { transform: translate(0,0) rotate(1deg) } 75% { transform: translate(-2px,-1px) rotate(0) } 100% { transform: translate(0,0) rotate(-1deg) } }
@keyframes scg-sail { 0% { transform: rotate(-3deg) scaleX(1) } 50% { transform: rotate(2deg) scaleX(1.02) } 100% { transform: rotate(-3deg) scaleX(1) } }
@keyframes scg-figure-equiano { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(4px) rotate(2deg) } 50% { transform: translateX(8px) rotate(0) } 75% { transform: translateX(4px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes scg-figure-master { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(-3px) rotate(-1deg) } 50% { transform: translateX(-6px) rotate(0) } 75% { transform: translateX(-3px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes scg-coin { 0% { transform: translateY(0) scale(1); opacity:1 } 50% { transform: translateY(-5px) scale(1.2); opacity:.9 } 100% { transform: translateY(0) scale(1); opacity:1 } }

.scn-mrs-davis-dream {
  background:
    linear-gradient(180deg, #1a1a3a 0%, #2a2a5a 50%, #3a3a6a 100%),
    radial-gradient(ellipse at 50% 50%, #4a4a8a 0%, transparent 70%);
}
.scn-mrs-davis-dream .wall { position:absolute; inset:0; background: linear-gradient(135deg, #2a2a4a 0%, #1a1a2a 100%); animation: mdd-wall 20s ease-in-out infinite alternate; }
.scn-mrs-davis-dream .window { position:absolute; top:20%; left:20%; width:60px; height:80px; background: linear-gradient(180deg, #a0c8e0 0%, #6088b0 100%); border:4px solid #3a3a5a; border-radius:4px; box-shadow: 0 0 20px 4px rgba(160,200,224,.3); animation: mdd-window 15s ease-in-out infinite; }
.scn-mrs-davis-dream .bed { position:absolute; bottom:20%; left:15%; width:80px; height:40px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:10% 10% 5% 5%; box-shadow: 0 8px 16px rgba(0,0,0,.5); animation: mdd-bed 6s ease-in-out infinite alternate; }
.scn-mrs-davis-dream .figure-dreamer { position:absolute; bottom:30%; left:20%; width:18px; height:36px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mdd-figure-dreamer 5s ease-in-out infinite; }
.scn-mrs-davis-dream .figure-mrs-davis { position:absolute; bottom:30%; right:20%; width:20px; height:38px; background: linear-gradient(180deg, #5a4a6a 0%, #3a2a4a 100%); border-radius:50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: mdd-figure-mrs 7s ease-in-out infinite; }
.scn-mrs-davis-dream .glow-aura { position:absolute; top:30%; left:50%; width:80px; height:80px; background: radial-gradient(circle, rgba(200,220,255,.25) 0%, transparent 70%); border-radius:50%; animation: mdd-glow 10s ease-in-out infinite alternate; }
.scn-mrs-davis-dream .shadow-fade { position:absolute; inset:0; background: radial-gradient(ellipse at 60% 40%, transparent 40%, rgba(0,0,0,.6) 100%); animation: mdd-shadow 12s ease-in-out infinite alternate; }
@keyframes mdd-wall { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes mdd-window { 0% { transform: scale(1); box-shadow: 0 0 10px 2px rgba(160,200,224,.2); } 50% { transform: scale(1.02); box-shadow: 0 0 30px 8px rgba(160,200,224,.5); } 100% { transform: scale(1); box-shadow: 0 0 10px 2px rgba(160,200,224,.2); } }
@keyframes mdd-bed { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes mdd-figure-dreamer { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(3px) rotate(2deg) } 50% { transform: translateX(0) rotate(0) } 75% { transform: translateX(-3px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes mdd-figure-mrs { 0% { transform: translateX(0) rotate(0); opacity:.7 } 50% { transform: translateX(2px) rotate(1deg); opacity:1 } 100% { transform: translateX(0) rotate(0); opacity:.7 } }
@keyframes mdd-glow { 0% { opacity:.3; transform: scale(1) } 50% { opacity:.6; transform: scale(1.2) } 100% { opacity:.3; transform: scale(1) } }
@keyframes mdd-shadow { 0% { opacity:.4 } 50% { opacity:.6 } 100% { opacity:.4 } }

.scn-prophecy-belief {
  background:
    linear-gradient(180deg, #f0e8c0 0%, #c8a060 40%, #806030 100%),
    radial-gradient(ellipse at 50% 0%, #ffe080 0%, transparent 60%);
}
.scn-prophecy-belief .sky-tense { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #70a0d0 0%, #3060a0 100%); animation: prb-sky 15s ease-in-out infinite alternate; }
.scn-prophecy-belief .sun-harsh { position:absolute; top:8%; right:15%; width:45px; height:45px; background: radial-gradient(circle, #fff0a0 0%, #e8b040 70%, transparent 85%); border-radius:50%; box-shadow: 0 0 50px 15px rgba(232,176,64,.6); animation: prb-sun 6s ease-in-out infinite; }
.scn-prophecy-belief .sea-chop { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #2a5a4a 0%, #1a3a2a 100%); animation: prb-sea 8s ease-in-out infinite alternate; }
.scn-prophecy-belief .ship-deck { position:absolute; bottom:30%; left:20%; width:140px; height:30px; background: linear-gradient(90deg, #6a4a3a 0%, #4a2a1a 100%); border-radius:10% 10% 5% 5%; box-shadow: 0 8px 16px rgba(0,0,0,.5); animation: prb-deck 5s ease-in-out infinite; }
.scn-prophecy-belief .figure-sick { position:absolute; bottom:28%; left:25%; width:18px; height:35px; background: linear-gradient(180deg, #3a2a2a 0%, #1a1010 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: prb-figure-sick 3s ease-in-out infinite; }
.scn-prophecy-belief .figure-prophecy { position:absolute; bottom:30%; right:25%; width:20px; height:38px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: prb-figure-prophet 6s ease-in-out infinite; }
.scn-prophecy-belief .shadow-sharp { position:absolute; inset:0; background: radial-gradient(ellipse at 40% 50%, transparent 50%, rgba(0,0,0,.5) 100%); animation: prb-shadow 10s ease-in-out infinite alternate; }
.scn-prophecy-belief .wave-surge { position:absolute; bottom:15%; left:0; right:0; height:15%; background: linear-gradient(180deg, #2a6a5a 0%, #1a4a3a 100%); border-radius:50% 50% 30% 30% / 80% 80% 20% 20%; animation: prb-wave 4s ease-in-out infinite alternate; }
@keyframes prb-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.6 } }
@keyframes prb-sun { 0% { transform: scale(1) rotate(0) } 50% { transform: scale(1.08) rotate(5deg) } 100% { transform: scale(1) rotate(0) } }
@keyframes prb-sea { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(2px) } }
@keyframes prb-deck { 0% { transform: translate(0,0) rotate(-1deg) } 25% { transform: translate(3px,-1px) rotate(0) } 50% { transform: translate(0,0) rotate(1deg) } 75% { transform: translate(-3px,-1px) rotate(0) } 100% { transform: translate(0,0) rotate(-1deg) } }
@keyframes prb-figure-sick { 0% { transform: translateX(0) rotate(-2deg) } 50% { transform: translateX(2px) rotate(2deg) } 100% { transform: translateX(0) rotate(-2deg) } }
@keyframes prb-figure-prophet { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(4px) rotate(1deg) } 50% { transform: translateX(0) rotate(0) } 75% { transform: translateX(-4px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes prb-shadow { 0% { opacity:.5 } 50% { opacity:.8 } 100% { opacity:.5 } }
@keyframes prb-wave { 0% { transform: translateY(0) scaleX(1) } 50% { transform: translateY(-3px) scaleX(1.03) } 100% { transform: translateY(0) scaleX(1) } }

.scn-stamp-act-celebration {
  background:
    linear-gradient(180deg, #e8d8a0 0%, #b89860 40%, #806040 100%),
    radial-gradient(ellipse at 50% 0%, #ffe080 0%, transparent 60%);
}
.scn-stamp-act-celebration .sky-festive { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #80b8e0 0%, #4088c0 100%); animation: stm-sky 18s ease-in-out infinite alternate; }
.scn-stamp-act-celebration .sun-cheer { position:absolute; top:15%; left:10%; width:55px; height:55px; background: radial-gradient(circle, #fff8c0 0%, #f0d060 70%, transparent 85%); border-radius:50%; box-shadow: 0 0 70px 20px rgba(240,208,96,.5); animation: stm-sun 7s ease-in-out infinite; }
.scn-stamp-act-celebration .buildings { position:absolute; bottom:20%; left:10%; right:10%; height:30%; background: linear-gradient(0deg, #8a6a4a 0%, #5a3a2a 100%); border-radius:10% 10% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.3); animation: stm-buildings 12s ease-in-out infinite alternate; }
.scn-stamp-act-celebration .crowd { position:absolute; bottom:15%; left:20%; width:60%; height:10%; background: radial-gradient(ellipse at 50% 100%, #4a3a2a 0%, transparent 70%); animation: stm-crowd 9s ease-in-out infinite; }
.scn-stamp-act-celebration .barrel { position:absolute; bottom:8%; left:40%; width:30px; height:35px; background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius:20% 20% 15% 15%; box-shadow: 0 6px 12px rgba(0,0,0,.4); animation: stm-barrel 5s ease-in-out infinite; }
.scn-stamp-act-celebration .coin-copper { position:absolute; bottom:12%; left:48%; width:12px; height:12px; background: radial-gradient(circle, #e0b080 0%, #b08060 60%, #805040 100%); border-radius:50%; box-shadow: 0 0 8px 2px rgba(176,128,96,.5); animation: stm-coin 2s ease-in-out infinite alternate; }
.scn-stamp-act-celebration .banner { position:absolute; top:5%; left:50%; width:80px; height:20px; background: linear-gradient(90deg, #c8553d 0%, #a0461a 100%); border-radius:10% 10% 10% 10%; box-shadow: 0 4px 8px rgba(0,0,0,.3); transform-origin: left center; animation: stm-banner 8s ease-in-out infinite infinite; }
.scn-stamp-act-celebration .figure-merchant { position:absolute; bottom:12%; left:35%; width:18px; height:36px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: stm-figure 4s ease-in-out infinite; }
@keyframes stm-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes stm-sun { 0% { transform: translate(0,0) scale(1) } 50% { transform: translate(2px,-2px) scale(1.04) } 100% { transform: translate(0,0) scale(1) } }
@keyframes stm-buildings { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.01) } 100% { transform: scaleY(1) } }
@keyframes stm-crowd { 0% { transform: translateX(0) } 25% { transform: translateX(5px) } 50% { transform: translateX(0) } 75% { transform: translateX(-5px) } 100% { transform: translateX(0) } }
@keyframes stm-barrel { 0% { transform: translate(0,0) rotate(0) } 25% { transform: translate(1px,-1px) rotate(2deg) } 50% { transform: translate(0,0) rotate(0) } 75% { transform: translate(-1px,-1px) rotate(-2deg) } 100% { transform: translate(0,0) rotate(0) } }
@keyframes stm-coin { 0% { transform: translateY(0) scale(1); opacity:1 } 50% { transform: translateY(-6px) scale(1.3); opacity:.85 } 100% { transform: translateY(0) scale(1); opacity:1 } }
@keyframes stm-banner { 0% { transform: rotate(-5deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(-5deg) } }
@keyframes stm-figure { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(3px) rotate(2deg) } 50% { transform: translateX(0) rotate(0) } 75% { transform: translateX(-3px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0) } }

.scn-double-standard {
  background: linear-gradient(180deg, #4a3a2e 0%, #6a4a3a 30%, #c8a070 60%, #e8d0a0 100%),
              radial-gradient(ellipse at 30% 70%, #d0a070 0%, transparent 60%);
}
.scn-double-standard .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #c8b090 0%, #d8c0a0 100%); animation: ds-sky 12s ease-in-out infinite alternate; }
.scn-double-standard .ground { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius: 30% 70% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.5); }
.scn-double-standard .divide { position:absolute; top:0; bottom:0; left:50%; width:2px; background: linear-gradient(180deg, transparent 0%, #a08060 50%, transparent 100%); animation: ds-divide 8s ease-in-out infinite; }
.scn-double-standard .gallows { position:absolute; bottom:35%; left:15%; width:80px; height:120px; background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%); border-radius: 4% 4% 2% 2%; box-shadow: -4px 0 8px rgba(0,0,0,.4); }
.scn-double-standard .gallows::before { content:''; position:absolute; top:0; left:-10px; width:20px; height:6px; background:#3a2a1a; border-radius:2px; }
.scn-double-standard .hanged { position:absolute; bottom:35%; left:18%; width:16px; height:40px; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 50% 50% 30% 30%; transform-origin: top; animation: ds-hanged 5s ease-in-out infinite alternate; }
.scn-double-standard .free-couple { position:absolute; bottom:30%; right:20%; width:40px; height:50px; } /* container for two figures */
.scn-double-standard .free-couple::before { content:''; position:absolute; bottom:0; left:0; width:18px; height:40px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40%; animation: ds-dance1 3s ease-in-out infinite; }
.scn-double-standard .free-couple::after { content:''; position:absolute; bottom:0; left:22px; width:18px; height:40px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40%; animation: ds-dance2 3s ease-in-out infinite 0.5s; }
.scn-double-standard .fire { position:absolute; bottom:25%; left:10%; width:30px; height:40px; background: radial-gradient(ellipse at 50% 100%, #ff8040 0%, #ff6030 40%, transparent 70%); animation: ds-fire 2s ease-in-out infinite alternate; }
.scn-double-standard .smoke { position:absolute; bottom:45%; left:8%; width:40px; height:20px; background: radial-gradient(circle, rgba(180,160,140,0.6) 0%, transparent 70%); filter: blur(4px); animation: ds-smoke 6s ease-in-out infinite; }
@keyframes ds-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes ds-divide { 0%,100% { opacity:0.6; } 50% { opacity:1; } }
@keyframes ds-hanged { 0% { transform: rotate(0deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-3deg); } }
@keyframes ds-dance1 { 0%,100% { transform: translateY(0) rotate(-5deg); } 50% { transform: translateY(-4px) rotate(3deg); } }
@keyframes ds-dance2 { 0%,100% { transform: translateY(0) rotate(5deg); } 50% { transform: translateY(-3px) rotate(-2deg); } }
@keyframes ds-fire { 0% { transform: scaleY(1) scaleX(1); opacity:0.8; } 100% { transform: scaleY(1.2) scaleX(0.9); opacity:1; } }
@keyframes ds-smoke { 0% { transform: translateY(0) scale(1); opacity:0.5; } 50% { transform: translateY(-10px) scale(1.2); opacity:0.3; } 100% { transform: translateY(0) scale(0.8); opacity:0.2; } }

.scn-negro-burnt {
  background: linear-gradient(180deg, #5a4a3a 0%, #8a6a4a 40%, #c8a070 80%, #e0c0a0 100%),
              radial-gradient(ellipse at 50% 70%, #b08050 0%, transparent 50%);
}
.scn-negro-burnt .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #d0b090 0%, #e0c0a0 100%); animation: nb-sky 15s ease-in-out infinite alternate; }
.scn-negro-burnt .ground { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.6); }
.scn-negro-burnt .post { position:absolute; bottom:30%; left:50%; width:12px; height:90px; background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%); border-radius: 4px; transform: translateX(-50%); }
.scn-negro-burnt .figure { position:absolute; bottom:30%; left:50%; width:20px; height:50px; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 50% 50% 30% 30%; transform: translateX(-50%); animation: nb-hang 4s ease-in-out infinite alternate; }
.scn-negro-burnt .chain { position:absolute; bottom:50%; left:50%; width:4px; height:20px; background:#604840; transform: translateX(-50%); border-radius:2px; animation: nb-chain 2s ease-in-out infinite; }
.scn-negro-burnt .pile { position:absolute; bottom:20%; left:35%; width:60px; height:30px; background: radial-gradient(ellipse at 50% 100%, #ff8040 0%, #ff6030 30%, transparent 60%); animation: nb-fire 1.5s ease-in-out infinite alternate; }
.scn-negro-burnt .pile::before { content:''; position:absolute; top:-10px; left:10px; width:40px; height:20px; background: radial-gradient(ellipse, #ffa060 0%, transparent 80%); animation: nb-spark 2s ease-in-out infinite; }
.scn-negro-burnt .smoke { position:absolute; bottom:50%; left:30%; width:50px; height:30px; background: radial-gradient(circle, rgba(180,160,140,0.5) 0%, transparent 80%); filter: blur(6px); animation: nb-smoke 8s linear infinite; }
.scn-negro-burnt .spark { position:absolute; bottom:35%; left:60%; width:6px; height:6px; background:#ffd080; border-radius:50%; box-shadow: 0 0 8px #ffd080; animation: nb-spark-drift 3s ease-in-out infinite; }
@keyframes nb-sky { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes nb-hang { 0% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(3deg); } 100% { transform: translateX(-50%) rotate(-2deg); } }
@keyframes nb-chain { 0% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(1.1); } 100% { transform: translateX(-50%) scaleY(0.95); } }
@keyframes nb-fire { 0% { transform: scaleY(1) scaleX(1); opacity:0.7; } 100% { transform: scaleY(1.3) scaleX(0.9); opacity:1; } }
@keyframes nb-spark { 0% { transform: translateY(0) scale(1); opacity:0.6; } 50% { transform: translateY(-15px) scale(0.8); opacity:0.3; } 100% { transform: translateY(0) scale(1.2); opacity:0.7; } }
@keyframes nb-smoke { 0% { transform: translateY(0) scale(1); opacity:0.4; } 50% { transform: translateY(-20px) scale(1.5); opacity:0.2; } 100% { transform: translateY(0) scale(0.9); opacity:0.1; } }
@keyframes nb-spark-drift { 0% { transform: translate(0,0); opacity:1; } 50% { transform: translate(-10px, -15px); opacity:0.5; } 100% { transform: translate(5px, -20px); opacity:0; } }

.scn-overseers-cruelty {
  background: linear-gradient(180deg, #4a3a2e 0%, #6a4a3a 40%, #a08060 80%, #c8a070 100%),
              radial-gradient(ellipse at 40% 50%, #a08060 0%, transparent 60%);
}
.scn-overseers-cruelty .sky { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #c8b090 0%, #d8c0a0 100%); animation: oc-sky 10s ease-in-out infinite alternate; }
.scn-overseers-cruelty .ground { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%); border-radius: 40% 60% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.5); }
.scn-overseers-cruelty .overseer { position:absolute; bottom:30%; left:30%; width:30px; height:60px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); border-radius: 30% 30% 20% 20%; transform-origin: bottom; animation: oc-overseer 3s ease-in-out infinite; }
.scn-overseers-cruelty .overseer::before { content:''; position:absolute; top:-10px; left: -5px; width:40px; height:10px; background:#2a1a0a; border-radius:40% 40% 0 0; } /* hat */
.scn-overseers-cruelty .whip { position:absolute; bottom:35%; left:35%; width:60px; height:4px; background:#6a4a3a; transform-origin: left; border-radius:2px; animation: oc-whip 1s ease-in-out infinite; }
.scn-overseers-cruelty .slave { position:absolute; bottom:25%; left:55%; width:24px; height:40px; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40%; transform-origin: bottom; animation: oc-slave 2s ease-in-out infinite alternate; }
.scn-overseers-cruelty .blood { position:absolute; bottom:22%; left:52%; width:14px; height:8px; background:#7a3a2a; border-radius:50%; filter: blur(2px); animation: oc-blood 4s ease-in-out infinite; }
.scn-overseers-cruelty .manacles { position:absolute; bottom:30%; left:58%; width:8px; height:12px; background:#6a5a4a; border-radius:2px; animation: oc-manacles 2s ease-in-out infinite; }
@keyframes oc-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.6; } }
@keyframes oc-overseer { 0% { transform: rotate(0deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-2deg); } }
@keyframes oc-whip { 0% { transform: rotate(-20deg); } 50% { transform: rotate(30deg); } 100% { transform: rotate(-10deg); } }
@keyframes oc-slave { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(10deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes oc-blood { 0% { transform: scale(1); opacity:0.6; } 50% { transform: scale(1.3); opacity:0.3; } 100% { transform: scale(0.9); opacity:0.8; } }
@keyframes oc-manacles { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }

.scn-slaves-health {
  background: linear-gradient(180deg, #1a2a3a 0%, #2a3a4a 40%, #3a4a5a 80%, #4a5a6a 100%),
              radial-gradient(ellipse at 50% 30%, #2a3a4a 0%, transparent 70%);
}
.scn-slaves-health .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #1a2a3a 0%, #2a3a4a 100%); animation: sh-sky 20s ease-in-out infinite alternate; }
.scn-slaves-health .ground { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); border-radius: 60% 40% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.4); }
.scn-slaves-health .hut { position:absolute; bottom:25%; left:30%; width:100px; height:60px; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 6px 12px rgba(0,0,0,.5); }
.scn-slaves-health .hut-roof { position:absolute; bottom:45%; left:28%; width:110px; height:20px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 30% 30% 0 0; transform: rotate(-2deg); }
.scn-slaves-health .woman { position:absolute; bottom:20%; left:45%; width:20px; height:30px; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40%; transform-origin: bottom; animation: sh-woman 6s ease-in-out infinite alternate; }
.scn-slaves-health .woman::after { content:''; position:absolute; bottom:-5px; left:2px; width:16px; height:8px; background:#1a1a2a; border-radius:50%; } /* baby bump */
.scn-slaves-health .puddle { position:absolute; bottom:15%; left:35%; width:40px; height:8px; background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%); border-radius:50%; filter: blur(2px); animation: sh-puddle 8s ease-in-out infinite; }
.scn-slaves-health .rain { position:absolute; top:0; left:0; right:0; bottom:0; background: repeating-linear-gradient(180deg, transparent, transparent 8px, rgba(180,200,220,0.05) 8px, rgba(180,200,220,0.05) 10px); animation: sh-rain 3s linear infinite; }
@keyframes sh-sky { 0% { opacity:0.7; } 50% { opacity:0.9; } 100% { opacity:0.6; } }
@keyframes sh-woman { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes sh-puddle { 0% { transform: scaleX(1) scaleY(1); opacity:0.5; } 50% { transform: scaleX(1.2) scaleY(0.9); opacity:0.7; } 100% { transform: scaleX(0.9) scaleY(1.1); opacity:0.4; } }
@keyframes sh-rain { 0% { transform: translateY(0); } 100% { transform: translateY(-10px); } }

/* Scene: mr-king-character */
.scn-mr-king-character {
  background:
    linear-gradient(180deg, #f9e4b7 0%, #f0ca7a 40%, #b6844a 100%),
    radial-gradient(ellipse at 60% 10%, #fff4d6 0%, transparent 60%);
}
.scn-mr-king-character .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #b3d4e0 0%, #f9e4b7 100%);
  animation: mkc-sky 20s ease-in-out infinite alternate;
}
.scn-mr-king-character .sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #4a7c8c 0%, #2a4c5c 100%);
  border-radius: 30% 20% 0 0 / 40% 30% 0 0;
  animation: mkc-sea 12s ease-in-out infinite;
}
.scn-mr-king-character .ship {
  position: absolute; bottom: 35%; left: 15%; width: 100px; height: 40px;
  background: linear-gradient(90deg, #5a3a2a 0%, #3a1a0a 50%, #5a3a2a 100%);
  border-radius: 0 30% 60% 0 / 0 20% 40% 0;
  animation: mkc-ship 24s ease-in-out infinite;
}
.scn-mr-king-character .sail {
  position: absolute; bottom: 48%; left: 18%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #faf0e0 0%, #e0c898 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 30% 30%;
  animation: mkc-sail 8s ease-in-out infinite alternate;
}
.scn-mr-king-character .figure {
  position: absolute; bottom: 22%; left: 35%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mkc-figure 4s ease-in-out infinite;
}
.scn-mr-king-character .tear {
  position: absolute; bottom: 36%; left: 36%; width: 4px; height: 4px;
  background: radial-gradient(circle, #a0d0e0 0%, transparent 70%);
  border-radius: 50%;
  animation: mkc-tear 3s ease-in-out infinite;
}
.scn-mr-king-character .cloud.c-a {
  position: absolute; top: 12%; left: 5%; width: 72px; height: 18px;
  background: linear-gradient(180deg, rgba(255,255,240,0.6) 0%, rgba(255,255,240,0.1) 100%);
  border-radius: 50%;
  filter: blur(5px);
  animation: mkc-drift-a 40s linear infinite;
}
.scn-mr-king-character .cloud.c-b {
  position: absolute; top: 18%; right: 10%; width: 54px; height: 14px;
  background: linear-gradient(180deg, rgba(255,255,240,0.5) 0%, rgba(255,255,240,0.05) 100%);
  border-radius: 50%;
  filter: blur(4px);
  animation: mkc-drift-b 55s linear infinite reverse;
}
@keyframes mkc-sky { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes mkc-sea { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(2px); } }
@keyframes mkc-ship { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(8px) rotate(-1deg); } 50% { transform: translateX(16px) rotate(0deg); } 75% { transform: translateX(8px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes mkc-sail { 0% { transform: rotateY(0deg); } 50% { transform: rotateY(15deg); } 100% { transform: rotateY(-5deg); } }
@keyframes mkc-figure { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 25% { transform: translateX(3px) translateY(-1px) rotate(1deg); } 50% { transform: translateX(6px) translateY(0) rotate(0deg); } 75% { transform: translateX(3px) translateY(1px) rotate(-1deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes mkc-tear { 0% { opacity: 0; transform: translateY(0) scale(0.5); } 30% { opacity: 1; transform: translateY(8px) scale(1.2); } 60% { opacity: 1; transform: translateY(16px) scale(0.8); } 100% { opacity: 0; transform: translateY(24px) scale(0.3); } }
@keyframes mkc-drift-a { 0% { transform: translateX(-20px); } 100% { transform: translateX(120vw); } }
@keyframes mkc-drift-b { 0% { transform: translateX(0); } 100% { transform: translateX(-100vw); } }

/* Scene: mr-king-work */
.scn-mr-king-work {
  background:
    linear-gradient(180deg, #e8d8c0 0%, #c8b498 40%, #a09070 100%),
    radial-gradient(ellipse at 80% 50%, #fff8e0 0%, transparent 70%);
}
.scn-mr-king-work .wall {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, #c0a888 0%, #d8c0a0 50%, #b89878 100%);
  box-shadow: inset 0 0 80px rgba(0,0,0,0.15);
}
.scn-mr-king-work .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 28%;
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%);
}
.scn-mr-king-work .counter {
  position: absolute; bottom: 18%; left: 10%; width: 55%; height: 20%;
  background: linear-gradient(180deg, #b09870 0%, #8a724a 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 -4px 12px rgba(0,0,0,0.2);
}
.scn-mr-king-work .shelf {
  position: absolute; top: 28%; left: 10%; width: 50%; height: 8%;
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
}
.scn-mr-king-work .goods {
  position: absolute; top: 15%; left: 12%; width: 8%; height: 12%;
  background: radial-gradient(ellipse, #6a8a4a 0%, #4a6a2a 100%);
  border-radius: 30%;
  animation: mkw-bob 5s ease-in-out infinite;
}
.scn-mr-king-work .clerk {
  position: absolute; bottom: 20%; left: 50%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mkw-clerk 6s ease-in-out infinite alternate;
}
.scn-mr-king-work .window {
  position: absolute; top: 12%; right: 8%; width: 80px; height: 100px;
  background: radial-gradient(ellipse at 50% 30%, #c0d8e8 0%, #a0b8c8 60%, #8098a8 100%);
  border: 4px solid #5a4a3a;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(255,255,200,0.5), 0 0 30px rgba(255,255,200,0.3);
}
.scn-mr-king-work .light {
  position: absolute; top: 12%; right: 8%; width: 80px; height: 100px;
  background: radial-gradient(ellipse at 50% 30%, rgba(255,255,200,0.3) 0%, transparent 70%);
  animation: mkw-light 18s ease-in-out infinite alternate;
}
@keyframes mkw-bob { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes mkw-clerk { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(4px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes mkw-light { 0% { opacity: 0.4; } 50% { opacity: 0.8; } 100% { opacity: 0.5; } }

/* Scene: slave-treatment */
.scn-slave-treatment {
  background:
    linear-gradient(180deg, #dabb88 0%, #b89a6a 40%, #7a5a3a 100%),
    radial-gradient(ellipse at 30% 80%, #e8c098 0%, transparent 70%);
}
.scn-slave-treatment .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.4);
}
.scn-slave-treatment .sky-hot {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #f0d0a0 0%, #dab088 100%);
  animation: st-sky 15s ease-in-out infinite alternate;
}
.scn-slave-treatment .figure-beaten {
  position: absolute; bottom: 20%; left: 25%; width: 24px; height: 38px;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a0a00 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: st-beaten 3s ease-in-out infinite;
}
.scn-slave-treatment .overseer {
  position: absolute; bottom: 20%; left: 55%; width: 28px; height: 44px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 20% 20% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: st-overseer 4s ease-in-out infinite alternate;
}
.scn-slave-treatment .whip {
  position: absolute; bottom: 38%; left: 60%; width: 6px; height: 40px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 0 0 50% 50%;
  transform-origin: top left;
  animation: st-whip 1.5s ease-in-out infinite;
}
.scn-slave-treatment .shadow-long {
  position: absolute; bottom: 0; left: 20%; width: 80px; height: 30px;
  background: rgba(0,0,0,0.3);
  border-radius: 50% 50% 30% 30% / 100% 100% 0 0;
  filter: blur(6px);
  animation: st-shadow 5s ease-in-out infinite;
}
.scn-slave-treatment .dust {
  position: absolute; bottom: 30%; left: 40%; width: 10px; height: 10px;
  background: radial-gradient(circle, rgba(200,180,140,0.6) 0%, transparent 70%);
  border-radius: 50%;
  animation: st-dust 2s ease-in-out infinite;
}
.scn-slave-treatment .chain {
  position: absolute; bottom: 24%; left: 30%; width: 30px; height: 4px;
  background: repeating-linear-gradient(90deg, #6a5a4a 0px, #6a5a4a 4px, #8a7a5a 4px, #8a7a5a 8px);
  border-radius: 2px;
  animation: st-chain 6s linear infinite;
}
@keyframes st-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes st-beaten { 0% { transform: translateY(0) rotate(0deg); } 20% { transform: translateY(-4px) rotate(-5deg); } 40% { transform: translateY(0) rotate(5deg); } 60% { transform: translateY(-2px) rotate(-3deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes st-overseer { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(6px) rotate(5deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes st-whip { 0% { transform: rotate(0deg) scaleY(1); } 25% { transform: rotate(-30deg) scaleY(1.2); } 50% { transform: rotate(0deg) scaleY(0.8); } 75% { transform: rotate(20deg) scaleY(1.1); } 100% { transform: rotate(0deg) scaleY(1); } }
@keyframes st-shadow { 0% { transform: scaleX(1) scaleY(1); opacity: 0.3; } 50% { transform: scaleX(1.3) scaleY(0.8); opacity: 0.5; } 100% { transform: scaleX(1) scaleY(1); opacity: 0.3; } }
@keyframes st-dust { 0% { transform: translate(0,0) scale(1); opacity: 0; } 30% { transform: translate(8px,-12px) scale(1.5); opacity: 0.6; } 60% { transform: translate(16px,-24px) scale(2); opacity: 0.3; } 100% { transform: translate(24px,-36px) scale(2.5); opacity: 0; } }
@keyframes st-chain { 0% { background-position: 0 0; } 100% { background-position: -40px 0; } }

/* Scene: island-observations */
.scn-island-observations {
  background:
    linear-gradient(180deg, #b8d4e8 0%, #8ab0c8 40%, #5a8aa0 100%),
    radial-gradient(ellipse at 70% 20%, #c8e4f0 0%, transparent 60%);
}
.scn-island-observations .water {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #4a7a8a 0%, #2a5a6a 50%, #1a3a4a 100%);
  animation: io-water 14s ease-in-out infinite;
}
.scn-island-observations .wharf {
  position: absolute; bottom: 35%; left: 10%; width: 60%; height: 8%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 0 4px 4px 0;
  box-shadow: 0 -2px 8px rgba(0,0,0,0.3);
  animation: io-wharf 20s ease-in-out infinite alternate;
}
.scn-island-observations .vessel {
  position: absolute; bottom: 30%; right: 15%; width: 90px; height: 36px;
  background: linear-gradient(90deg, #5a3a2a 0%, #3a1a0a 50%, #5a3a2a 100%);
  border-radius: 0 20% 40% 0 / 0 15% 30% 0;
  transform-origin: bottom left;
  animation: io-vessel 22s ease-in-out infinite;
}
.scn-island-observations .figure-alone {
  position: absolute; bottom: 36%; left: 25%; width: 18px; height: 34px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: io-figure 8s ease-in-out infinite;
}
.scn-island-observations .empty-plate {
  position: absolute; bottom: 38%; left: 22%; width: 16px; height: 6px;
  background: radial-gradient(ellipse, #c8b898 0%, #a08868 100%);
  border-radius: 50%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: io-plate 6s ease-in-out infinite;
}
.scn-island-observations .sun {
  position: absolute; top: 8%; right: 12%; width: 30px; height: 30px;
  background: radial-gradient(circle, #ffe080 0%, #f0c060 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px rgba(240,192,96,0.4);
  animation: io-sun 30s ease-in-out infinite alternate;
}
.scn-island-observations .pelican {
  position: absolute; top: 20%; left: 20%; width: 20px; height: 14px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  transform-origin: 50% 100%;
  animation: io-pelican 12s ease-in-out infinite;
}
@keyframes io-water { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(2px); } }
@keyframes io-wharf { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.05); } 100% { transform: scaleY(0.95); } }
@keyframes io-vessel { 0% { transform: rotate(0deg) translateX(0); } 25% { transform: rotate(1deg) translateX(4px); } 50% { transform: rotate(0deg) translateX(8px); } 75% { transform: rotate(-1deg) translateX(4px); } 100% { transform: rotate(0deg) translateX(0); } }
@keyframes io-figure { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(3px) rotate(2deg); } 50% { transform: translateX(6px) rotate(0deg); } 75% { transform: translateX(3px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes io-plate { 0% { transform: scale(1); } 50% { transform: scale(1.1); } 100% { transform: scale(0.95); } }
@keyframes io-sun { 0% { transform: scale(1) translateY(0); opacity: 0.8; } 50% { transform: scale(1.05) translateY(-4px); opacity: 1; } 100% { transform: scale(0.95) translateY(2px); opacity: 0.7; } }
@keyframes io-pelican { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(20px) rotate(3deg); } 60% { transform: translateX(40px) rotate(0deg); } 100% { transform: translateX(0) rotate(0deg); } }

.scn-captain-intercedes {
  background: linear-gradient(180deg, #87CEEB 0%, #f0e68c 40%, #fdf5e6 70%), radial-gradient(ellipse at 50% 100%, #f0e68c 0%, transparent 60%);
}
.scn-captain-intercedes .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #87ceeb 0%, #fdf5e6 100%);
  animation: ci1-sky 8s ease-in-out infinite alternate;
}
.scn-captain-intercedes .sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1e90ff 0%, #4682b4 100%);
  border-radius: 0 0 20% 20% / 0 0 10% 10%;
  animation: ci1-sea 5s ease-in-out infinite alternate;
}
.scn-captain-intercedes .ship-deck {
  position: absolute; bottom: 25%; left: 5%; right: 5%; height: 18%;
  background: linear-gradient(180deg, #8B4513 0%, #A0522D 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 8px 12px rgba(0,0,0,0.3);
}
.scn-captain-intercedes .mast {
  position: absolute; bottom: 30%; left: 30%; width: 8px; height: 40%;
  background: linear-gradient(180deg, #5c4033 0%, #3e2723 100%);
  border-radius: 4px;
  transform-origin: bottom center;
  animation: ci1-mast 12s ease-in-out infinite alternate;
}
.scn-captain-intercedes .sail-fore {
  position: absolute; bottom: 35%; left: 20%; width: 60px; height: 50px;
  background: linear-gradient(135deg, #fdf5e6 0%, #f5deb3 100%);
  border-radius: 40% 10% 20% 60% / 30% 20% 60% 40%;
  box-shadow: -4px 4px 8px rgba(0,0,0,0.2);
  animation: ci1-sail 6s ease-in-out infinite alternate;
}
.scn-captain-intercedes .sail-aft {
  position: absolute; bottom: 35%; right: 25%; width: 50px; height: 55px;
  background: linear-gradient(225deg, #fdf5e6 0%, #deb887 100%);
  border-radius: 10% 40% 60% 20% / 20% 30% 40% 60%;
  box-shadow: 4px 4px 8px rgba(0,0,0,0.2);
  animation: ci1-sail 6s ease-in-out infinite alternate 1s;
}
.scn-captain-intercedes .figure-captain {
  position: absolute; bottom: 27%; left: 40%; width: 20px; height: 35px;
  background: linear-gradient(180deg, #2f4f4f 0%, #1a1a2e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 4px 0 6px rgba(0,0,0,0.4);
  animation: ci1-figure1 4s ease-in-out infinite;
}
.scn-captain-intercedes .figure-equiano {
  position: absolute; bottom: 27%; left: 50%; width: 18px; height: 34px;
  background: linear-gradient(180deg, #8B4513 0%, #5c3a21 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: -4px 0 6px rgba(0,0,0,0.4);
  animation: ci1-figure2 4s ease-in-out infinite 0.5s;
}
.scn-captain-intercedes .sun-glint {
  position: absolute; top: 10%; right: 15%; width: 40px; height: 40px;
  background: radial-gradient(circle, #ffd700 0%, transparent 70%);
  box-shadow: 0 0 30px 10px rgba(255,215,0,0.5);
  border-radius: 50%;
  animation: ci1-sun 10s ease-in-out infinite alternate;
}
@keyframes ci1-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes ci1-sea { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(0); } }
@keyframes ci1-mast { 0% { transform: rotate(-1deg); } 50% { transform: rotate(1deg); } 100% { transform: rotate(-0.5deg); } }
@keyframes ci1-sail { 0% { transform: scaleX(1) rotate(0deg); } 50% { transform: scaleX(0.95) rotate(3deg); } 100% { transform: scaleX(1) rotate(0deg); } }
@keyframes ci1-figure1 { 0% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(5px) rotate(2deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes ci1-figure2 { 0% { transform: translateX(0) rotate(1deg); } 50% { transform: translateX(-3px) rotate(-1deg); } 100% { transform: translateX(0) rotate(1deg); } }
@keyframes ci1-sun { 0% { transform: scale(0.8); box-shadow: 0 0 20px 5px rgba(255,215,0,0.4); } 50% { transform: scale(1.2); box-shadow: 0 0 40px 15px rgba(255,215,0,0.7); } 100% { transform: scale(0.9); box-shadow: 0 0 25px 8px rgba(255,215,0,0.5); } }

.scn-mr-read-reply {
  background: linear-gradient(180deg, #d2b48c 0%, #a0522d 100%), radial-gradient(ellipse at 50% 50%, #deb887 0%, transparent 70%);
}
.scn-mr-read-reply .room-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #c4a882 0%, #8b6f47 100%);
  border-radius: 10%;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.3);
}
.scn-mr-read-reply .window {
  position: absolute; top: 10%; left: 20%; width: 80px; height: 100px;
  background: linear-gradient(180deg, #87ceeb 0%, #b0e0e6 100%);
  border: 4px solid #5c4033;
  border-radius: 4px;
  box-shadow: inset 0 0 10px rgba(255,255,255,0.5);
  animation: mrr1-window 6s ease-in-out infinite alternate;
}
.scn-mr-read-reply .window-light {
  position: absolute; top: 10%; left: 20%; width: 80px; height: 100px;
  background: radial-gradient(ellipse at 50% 50%, rgba(255,255,200,0.4) 0%, transparent 70%);
  box-shadow: 0 0 30px 10px rgba(255,255,200,0.2);
  animation: mrr1-light 4s ease-in-out infinite alternate;
}
.scn-mr-read-reply .figure-read {
  position: absolute; bottom: 10%; left: 25%; width: 25px; height: 45px;
  background: linear-gradient(180deg, #2f4f4f 0%, #1a1a2e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: -6px 0 8px rgba(0,0,0,0.5);
  animation: mrr1-figure-r 3s ease-in-out infinite;
}
.scn-mr-read-reply .figure-captain {
  position: absolute; bottom: 10%; right: 25%; width: 22px; height: 42px;
  background: linear-gradient(180deg, #556b2f 0%, #3e5421 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 6px 0 8px rgba(0,0,0,0.5);
  animation: mrr1-figure-c 3s ease-in-out infinite 0.5s;
}
.scn-mr-read-reply .desk {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 15%;
  background: linear-gradient(180deg, #8b4513 0%, #6b3410 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 -2px 6px rgba(0,0,0,0.4);
}
.scn-mr-read-reply .chair {
  position: absolute; bottom: 12%; left: 12%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #5c4033 0%, #3e2723 100%);
  border-radius: 10% 10% 20% 20% / 30% 30% 20% 20%;
  transform: rotate(-10deg);
  animation: mrr1-chair 8s ease-in-out infinite alternate;
}
@keyframes mrr1-window { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes mrr1-light { 0% { opacity:0.5; } 50% { opacity:0.8; } 100% { opacity:0.4; } }
@keyframes mrr1-figure-r { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(-5px) rotate(-3deg); } 60% { transform: translateX(2px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes mrr1-figure-c { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(5px) rotate(3deg); } 60% { transform: translateX(-2px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes mrr1-chair { 0% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-8deg) translateY(-2px); } 100% { transform: rotate(-12deg) translateY(0); } }

.scn-promise-bullocks {
  background: linear-gradient(180deg, #f5deb3 0%, #fff8dc 40%, #ffefd5 70%), radial-gradient(ellipse at 50% 80%, #f5deb3 0%, transparent 70%);
}
.scn-promise-bullocks .field-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #87ceeb 0%, #b0e0e6 100%);
  animation: pb1-sky 10s ease-in-out infinite alternate;
}
.scn-promise-bullocks .field-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #7cfc00 0%, #228b22 100%);
  border-radius: 60% 40% 0 0 / 40% 30% 0 0;
  box-shadow: inset 0 8px 16px rgba(0,80,0,0.3);
  animation: pb1-ground 12s ease-in-out infinite alternate;
}
.scn-promise-bullocks .bullock-1 {
  position: absolute; bottom: 20%; left: 25%; width: 70px; height: 45px;
  background: linear-gradient(180deg, #a0522d 0%, #8b4513 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  box-shadow: 2px 2px 8px rgba(0,0,0,0.3);
  animation: pb1-bullock 5s ease-in-out infinite;
}
.scn-promise-bullocks .bullock-2 {
  position: absolute; bottom: 22%; right: 25%; width: 65px; height: 40px;
  background: linear-gradient(180deg, #cd853f 0%, #a0522d 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  box-shadow: -2px 2px 8px rgba(0,0,0,0.3);
  animation: pb1-bullock 5s ease-in-out infinite 2s;
}
.scn-promise-bullocks .figure-equiano {
  position: absolute; bottom: 15%; left: 45%; width: 20px; height: 38px;
  background: linear-gradient(180deg, #8b4513 0%, #5c3a21 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pb1-figure-e 4s ease-in-out infinite;
}
.scn-promise-bullocks .figure-captain {
  position: absolute; bottom: 15%; right: 40%; width: 22px; height: 40px;
  background: linear-gradient(180deg, #2f4f4f 0%, #1a1a2e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pb1-figure-c 4s ease-in-out infinite 1s;
}
.scn-promise-bullocks .sun-soft {
  position: absolute; top: 12%; left: 18%; width: 50px; height: 50px;
  background: radial-gradient(circle, #fffacd 0%, transparent 70%);
  box-shadow: 0 0 40px 15px rgba(255,250,205,0.6);
  border-radius: 50%;
  animation: pb1-sun 15s ease-in-out infinite alternate;
}
@keyframes pb1-sky { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes pb1-ground { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(1.01); } 100% { transform: translateY(0) scale(0.99); } }
@keyframes pb1-bullock { 0% { transform: translateY(0) rotate(-2deg); } 25% { transform: translateY(-4px) rotate(2deg); } 50% { transform: translateY(-2px) rotate(-1deg); } 75% { transform: translateY(-6px) rotate(1deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes pb1-figure-e { 0% { transform: translateX(0) rotate(0deg); } 33% { transform: translateX(-4px) rotate(-2deg); } 66% { transform: translateX(4px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes pb1-figure-c { 0% { transform: translateX(0) rotate(0deg); } 33% { transform: translateX(4px) rotate(2deg); } 66% { transform: translateX(-4px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes pb1-sun { 0% { transform: scale(0.9); box-shadow: 0 0 30px 10px rgba(255,250,205,0.5); } 50% { transform: scale(1.1); box-shadow: 0 0 50px 20px rgba(255,250,205,0.7); } 100% { transform: scale(1); box-shadow: 0 0 35px 12px rgba(255,250,205,0.6); } }

.scn-broken-promise {
  background: linear-gradient(180deg, #b0c4de 0%, #778899 40%, #2f4f4f 100%), radial-gradient(ellipse at 50% 80%, #d3d3d3 0%, transparent 60%);
}
.scn-broken-promise .dock-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #b0c4de 0%, #708090 100%);
  border-radius: 0 0 50% 50% / 0 0 20% 20%;
}
.scn-broken-promise .dock-planks {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #8b7355 0%, #5c4033 100%);
  border-radius: 2px;
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.5);
}
.scn-broken-promise .figure-captain {
  position: absolute; bottom: 15%; left: 30%; width: 24px; height: 44px;
  background: linear-gradient(180deg, #2f4f4f 0%, #1a1a2e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 6px 0 10px rgba(0,0,0,0.5);
  animation: bp1-fig-c 3s ease-in-out infinite;
}
.scn-broken-promise .figure-equiano {
  position: absolute; bottom: 15%; right: 30%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #8b4513 0%, #5c3a21 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: -6px 0 10px rgba(0,0,0,0.5);
  animation: bp1-fig-e 3.5s ease-in-out infinite 0.3s;
}
.scn-broken-promise .chain {
  position: absolute; bottom: 20%; left: 50%; width: 30px; height: 8px;
  background: repeating-linear-gradient(90deg, #696969 0px, #a9a9a9 4px, #696969 8px);
  border-radius: 2px;
  transform: translateX(-50%);
  animation: bp1-chain 2s ease-in-out infinite alternate;
}
.scn-broken-promise .shadow-sharp {
  position: absolute; bottom: 0; left: 20%; right: 20%; height: 8%;
  background: linear-gradient(180deg, rgba(0,0,0,0.6) 0%, transparent 100%);
  border-radius: 50%;
  animation: bp1-shadow 4s ease-in-out infinite alternate;
}
.scn-broken-promise .sail-hint {
  position: absolute; top: 10%; right: 10%; width: 40px; height: 60px;
  background: linear-gradient(135deg, #dcdcdc 0%, transparent 100%);
  border-radius: 30% 0 0 60% / 20% 0 0 40%;
  opacity: 0.3;
  animation: bp1-sail 8s ease-in-out infinite alternate;
}
.scn-broken-promise .water {
  position: absolute; bottom: 0; left: 0; right: 0; height: 12%;
  background: linear-gradient(180deg, #4682b4 0%, #1e90ff 100%);
  opacity: 0.5;
  border-radius: 40% 60% 0 0 / 20% 30% 0 0;
  animation: bp1-water 6s ease-in-out infinite alternate;
}
@keyframes bp1-fig-c { 0% { transform: translateX(0) rotate(-3deg); } 30% { transform: translateX(6px) rotate(3deg); } 60% { transform: translateX(-3px) rotate(-2deg); } 100% { transform: translateX(0) rotate(-3deg); } }
@keyframes bp1-fig-e { 0% { transform: translateX(0) rotate(2deg); } 30% { transform: translateX(-5px) rotate(-2deg); } 60% { transform: translateX(3px) rotate(2deg); } 100% { transform: translateX(0) rotate(2deg); } }
@keyframes bp1-chain { 0% { transform: translateX(-50%) rotate(-5deg); } 50% { transform: translateX(-50%) rotate(0deg); } 100% { transform: translateX(-50%) rotate(5deg); } }
@keyframes bp1-shadow { 0% { opacity:0.3; transform: scaleX(0.8); } 50% { opacity:0.7; transform: scaleX(1); } 100% { opacity:0.4; transform: scaleX(0.9); } }
@keyframes bp1-sail { 0% { transform: scaleY(1) rotate(0deg); opacity:0.2; } 50% { transform: scaleY(1.1) rotate(5deg); opacity:0.4; } 100% { transform: scaleY(0.9) rotate(-5deg); opacity:0.3; } }
@keyframes bp1-water { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }

/* Scene 1: roebuck-ship – warm sunlit ship at sea */
.scn-roebuck-ship {
  background: linear-gradient(180deg, #6ec8e0 0%, #f4c670 60%, #c89550 100%),
              radial-gradient(ellipse at 50% 0%, #fff5d0 0%, transparent 70%);
}
.scn-roebuck-ship .sky {
  position:absolute; inset:0 0 45% 0;
  background: linear-gradient(180deg, #8ad0e6 0%, #f9d97a 100%);
  animation: rb-sky 18s ease-in-out infinite alternate;
}
.scn-roebuck-ship .sea {
  position:absolute; bottom:0; left:0; right:0; height:45%;
  background: linear-gradient(180deg, #1f6a7a 0%, #0d3b4f 100%);
  animation: rb-sea 12s ease-in-out infinite alternate;
}
.scn-roebuck-ship .hull {
  position:absolute; bottom:30%; left:22%; width:56%; height:18%;
  background: linear-gradient(90deg, #5a3a1e 0%, #7a4f2e 50%, #4a2a0e 100%);
  border-radius: 40% 40% 8% 8% / 60% 60% 8% 8%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.5);
  animation: rb-hull 10s ease-in-out infinite;
}
.scn-roebuck-ship .sail-main {
  position:absolute; bottom:46%; left:38%; width:20%; height:30%;
  background: linear-gradient(135deg, #f8f0d6 0%, #d4c49a 100%);
  border-radius: 30% 30% 50% 50% / 80% 80% 40% 40%;
  transform-origin: bottom center;
  animation: rb-sail-main 8s ease-in-out infinite alternate;
}
.scn-roebuck-ship .sail-jib {
  position:absolute; bottom:38%; left:18%; width:14%; height:22%;
  background: linear-gradient(135deg, #f4e6c0 0%, #c8ae7a 100%);
  border-radius: 70% 0% 50% 50% / 80% 20% 50% 50%;
  transform-origin: left bottom;
  animation: rb-sail-jib 6s ease-in-out infinite alternate;
}
.scn-roebuck-ship .mast {
  position:absolute; bottom:30%; left:50%; width:6px; height:48%;
  background: linear-gradient(180deg, #3a2010 0%, #5a3520 100%);
  border-radius: 2px;
  transform: translateX(-50%);
  animation: rb-mast 9s ease-in-out infinite;
}
.scn-roebuck-ship .gunport {
  position:absolute; bottom:34%; left:30%; width:12px; height:12px;
  background: radial-gradient(circle, #ffb040 0%, #8a4a10 70%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px rgba(255,176,64,0.6);
  animation: rb-gunport 4s ease-in-out infinite alternate;
}
.scn-roebuck-ship .crew {
  position:absolute; bottom:32%; left:45%; width:14px; height:24px;
  background: linear-gradient(180deg, #2a1a0e 0%, #1a0e06 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  animation: rb-crew 5s ease-in-out infinite;
}
@keyframes rb-sky { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes rb-sea { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(0) } }
@keyframes rb-hull { 0% { transform: translateY(0) rotate(-0.5deg) } 50% { transform: translateY(-2px) rotate(0.5deg) } 100% { transform: translateY(0) rotate(-0.5deg) } }
@keyframes rb-sail-main { 0% { transform: rotate(-2deg) scaleX(1) } 50% { transform: rotate(2deg) scaleX(1.05) } 100% { transform: rotate(-3deg) scaleX(0.98) } }
@keyframes rb-sail-jib { 0% { transform: rotate(-4deg) } 50% { transform: rotate(4deg) } 100% { transform: rotate(-5deg) } }
@keyframes rb-mast { 0%,100% { transform: translateX(-50%) rotate(0) } 50% { transform: translateX(-50%) rotate(0.5deg) } }
@keyframes rb-gunport { 0% { box-shadow:0 0 15px 4px rgba(255,176,64,0.5); opacity:0.8 } 50% { box-shadow:0 0 30px 10px rgba(255,176,64,0.8); opacity:1 } 100% { box-shadow:0 0 20px 6px rgba(255,176,64,0.6); opacity:0.9 } }
@keyframes rb-crew { 0% { transform: translateX(0) translateY(0) } 25% { transform: translateX(4px) translateY(-2px) } 50% { transform: translateX(0) translateY(0) } 75% { transform: translateX(-3px) translateY(-1px) } 100% { transform: translateX(0) translateY(0) } }

/* Scene 2: holland-visit – warm sunlit deck with two boys fighting */
.scn-holland-visit {
  background: linear-gradient(180deg, #7cc0d8 0%, #e2b86b 50%, #c89040 100%),
              radial-gradient(ellipse at 50% 30%, #ffe4a0 0%, transparent 60%);
}
.scn-holland-visit .sky {
  position:absolute; inset:0 0 50% 0;
  background: linear-gradient(180deg, #a0d8ee 0%, #f7d58a 100%);
  animation: hl-sky 20s ease-in-out infinite alternate;
}
.scn-holland-visit .sea {
  position:absolute; bottom:0; left:0; right:0; height:50%;
  background: linear-gradient(180deg, #1f6a7a 0%, #0d3b4f 100%);
  animation: hl-sea 14s ease-in-out infinite alternate;
}
.scn-holland-visit .deck {
  position:absolute; bottom:22%; left:10%; width:80%; height:20%;
  background: linear-gradient(90deg, #6a4a2a 0%, #8a603a 50%, #5a3a1a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 -4px 8px rgba(0,0,0,0.3);
  animation: hl-deck 8s ease-in-out infinite;
}
.scn-holland-visit .figure-e {
  position:absolute; bottom:28%; left:38%; width:16px; height:28px;
  background: linear-gradient(180deg, #1a0e06 0%, #2a1a0e 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  animation: hl-fight-e 2s ease-in-out infinite;
}
.scn-holland-visit .figure-w {
  position:absolute; bottom:28%; left:52%; width:16px; height:28px;
  background: linear-gradient(180deg, #3a2a1e 0%, #4a3528 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  animation: hl-fight-w 2.2s ease-in-out infinite;
}
.scn-holland-visit .railing {
  position:absolute; bottom:24%; left:8%; width:84%; height:4px;
  background: #3a2010;
  border-radius: 2px;
  box-shadow: 0 4px 4px rgba(0,0,0,0.2);
  animation: hl-railing 11s ease-in-out infinite;
}
.scn-holland-visit .sail-bg {
  position:absolute; bottom:40%; right:15%; width:18%; height:28%;
  background: linear-gradient(135deg, #f0e0c0 0%, #c8b080 100%);
  border-radius: 60% 40% 20% 80% / 70% 60% 40% 30%;
  transform-origin: bottom right;
  animation: hl-sailbg 12s ease-in-out infinite alternate;
}
@keyframes hl-sky { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes hl-sea { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes hl-deck { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes hl-fight-e {
  0% { transform: translateX(0) translateY(0) rotate(0) }
  25% { transform: translateX(6px) translateY(-4px) rotate(-10deg) }
  50% { transform: translateX(12px) translateY(-2px) rotate(5deg) }
  75% { transform: translateX(6px) translateY(-3px) rotate(-5deg) }
  100% { transform: translateX(0) translateY(0) rotate(0) }
}
@keyframes hl-fight-w {
  0% { transform: translateX(0) translateY(0) rotate(0) }
  25% { transform: translateX(-6px) translateY(-3px) rotate(10deg) }
  50% { transform: translateX(-12px) translateY(-2px) rotate(-5deg) }
  75% { transform: translateX(-6px) translateY(-4px) rotate(5deg) }
  100% { transform: translateX(0) translateY(0) rotate(0) }
}
@keyframes hl-railing { 0%,100% { opacity:1 } 50% { opacity:0.6 } }
@keyframes hl-sailbg { 0% { transform: scale(1) rotate(0) } 50% { transform: scale(1.03) rotate(2deg) } 100% { transform: scale(0.98) rotate(-1deg) } }

/* Scene 3: french-frigate-encounter – tense dusk, two ships near */
.scn-french-frigate-encounter {
  background: linear-gradient(180deg, #1a2340 0%, #3d2240 40%, #5a3a2a 70%, #2a1a10 100%),
              radial-gradient(ellipse at 30% 20%, #8a5a3a 0%, transparent 50%);
}
.scn-french-frigate-encounter .sky-dusk {
  position:absolute; inset:0 0 40% 0;
  background: linear-gradient(180deg, #3a4a6a 0%, #6a4a3a 60%, #8a5a3a 100%);
  animation: ff-sky 16s ease-in-out infinite alternate;
}
.scn-french-frigate-encounter .sea-dark {
  position:absolute; bottom:0; left:0; right:0; height:40%;
  background: linear-gradient(180deg, #0a1a2a 0%, #050e1a 100%);
  animation: ff-sea 10s ease-in-out infinite alternate;
}
.scn-french-frigate-encounter .ship-fore {
  position:absolute; bottom:28%; left:20%; width:50%; height:20%;
  background: linear-gradient(90deg, #2a1a0e 0%, #4a3018 50%, #1a0e06 100%);
  border-radius: 40% 40% 8% 8% / 70% 70% 8% 8%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.7);
  animation: ff-ship-f 6s ease-in-out infinite;
}
.scn-french-frigate-encounter .ship-aft {
  position:absolute; bottom:30%; right:10%; width:35%; height:15%;
  background: linear-gradient(90deg, #1a1008 0%, #3a2010 50%, #0a0604 100%);
  border-radius: 30% 30% 8% 8% / 60% 60% 8% 8%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.6);
  animation: ff-ship-a 7.2s ease-in-out infinite 0.6s;
}
.scn-french-frigate-encounter .cannon {
  position:absolute; bottom:32%; left:35%; width:20px; height:8px;
  background: #3a2010;
  border-radius: 20%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation: ff-cannon 3s ease-in-out infinite alternate;
}
.scn-french-frigate-encounter .flag {
  position:absolute; bottom:44%; right:22%; width:12px; height:8px;
  background: linear-gradient(90deg, #c8553d 0%, #8a2a1a 100%);
  border-radius: 0 50% 50% 0;
  animation: ff-flag 2.5s ease-in-out infinite alternate;
}
.scn-french-frigate-encounter .mist {
  position:absolute; bottom:20%; left:0; right:0; height:30%;
  background: linear-gradient(180deg, rgba(200,180,160,0.2) 0%, rgba(100,80,60,0.1) 100%);
  filter: blur(8px);
  animation: ff-mist 20s linear infinite;
}
@keyframes ff-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes ff-sea { 0% { transform: translateY(0) } 50% { transform: translateY(-5px) } 100% { transform: translateY(0) } }
@keyframes ff-ship-f { 0% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-2px) rotate(1deg) } 50% { transform: translateY(0) rotate(0) } 75% { transform: translateY(-1px) rotate(-1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes ff-ship-a { 0% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-1px) rotate(-0.5deg) } 50% { transform: translateY(0) rotate(0) } 75% { transform: translateY(-2px) rotate(0.5deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes ff-cannon { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(8px) rotate(10deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes ff-flag { 0% { transform: rotate(0) scaleX(1) } 50% { transform: rotate(15deg) scaleX(1.2) } 100% { transform: rotate(-10deg) scaleX(0.9) } }
@keyframes ff-mist { 0% { transform: translateX(0) } 100% { transform: translateX(-30%) } }

/* Scene 4: london-arrival-health – dark dim hospital room */
.scn-london-arrival-health {
  background: linear-gradient(135deg, #1a1a2a 0%, #2a2a3a 50%, #3a2a2a 100%),
              radial-gradient(ellipse at 60% 40%, #3a2a2a 0%, transparent 70%);
}
.scn-london-arrival-health .wall {
  position:absolute; inset:0;
  background: linear-gradient(135deg, #2a2a3a 0%, #1a1a2a 50%, #0e0e1a 100%);
  animation: lon-wall 25s ease-in-out infinite alternate;
}
.scn-london-arrival-health .bedframe {
  position:absolute; bottom:20%; left:25%; width:50%; height:30%;
  border: 4px solid #3a2a1a;
  border-radius: 8px;
  background: transparent;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.5);
  animation: lon-bedframe 14s ease-in-out infinite;
}
.scn-london-arrival-health .blanket {
  position:absolute; bottom:22%; left:28%; width:44%; height:18%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%);
  border-radius: 10% 10% 20% 20% / 30% 30% 40% 40%;
  animation: lon-blanket 8s ease-in-out infinite;
}
.scn-london-arrival-health .pillow {
  position:absolute; bottom:44%; left:32%; width:20%; height:10%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 30% 30% 40% 40% / 50% 50% 30% 30%;
  animation: lon-pillow 12s ease-in-out infinite;
}
.scn-london-arrival-health .figure-ill {
  position:absolute; bottom:26%; left:38%; width:10%; height:16%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e06 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  animation: lon-figure 6s ease-in-out infinite;
}
.scn-london-arrival-health .window-dim {
  position:absolute; top:12%; right:20%; width:20%; height:20%;
  border: 4px solid #4a3a2a;
  border-radius: 6px;
  background: linear-gradient(135deg, rgba(100,80,60,0.2) 0%, rgba(60,40,20,0.1) 100%);
  box-shadow: inset 0 0 30px rgba(0,0,0,0.8);
  animation: lon-window 20s ease-in-out infinite alternate;
}
.scn-london-arrival-health .doctor {
  position:absolute; bottom:28%; left:55%; width:8%; height:22%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 30% 30% 20% 20% / 60% 60% 30% 30%;
  animation: lon-doctor 9s ease-in-out infinite;
}
@keyframes lon-wall { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes lon-bedframe { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes lon-blanket { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes lon-pillow { 0%,100% { transform: translateX(0) scale(1) } 50% { transform: translateX(2px) scale(1.02) } }
@keyframes lon-figure { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-4px) scaleY(1.04) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes lon-window { 0% { opacity:0.3 } 50% { opacity:0.6 } 100% { opacity:0.4 } }
@keyframes lon-doctor { 0% { transform: translateX(0) translateY(0) } 25% { transform: translateX(2px) translateY(-1px) } 50% { transform: translateX(0) translateY(0) } 75% { transform: translateX(-2px) translateY(-1px) } 100% { transform: translateX(0) translateY(0) } }

/* love-feast-experience */
.scn-love-feast-experience {
  background:
    linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 40%, #1a0a00 100%),
    radial-gradient(ellipse at 50% 80%, #4a3a2a 0%, transparent 70%);
}
.scn-love-feast-experience .bg-walls {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 30%, #6a4a2a 0%, #2a1a0a 100%);
  animation: lfe-walls 8s ease-in-out infinite alternate;
}
.scn-love-feast-experience .pew { position: absolute; bottom: 20%; width: 40%; height: 8%; background: #3a2a1a; border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.5); }
.scn-love-feast-experience .pew-left { left: 5%; transform: perspective(600px) rotateY(5deg); }
.scn-love-feast-experience .pew-right { right: 5%; transform: perspective(600px) rotateY(-5deg); }
.scn-love-feast-experience .pulpit {
  position: absolute; bottom: 22%; left: 50%; transform: translateX(-50%);
  width: 30px; height: 50px; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 10% 10%; box-shadow: 0 8px 16px rgba(0,0,0,0.6);
}
.scn-love-feast-experience .speaker {
  position: absolute; bottom: 28%; left: 50%; transform: translateX(-50%);
  width: 18px; height: 40px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: lfe-speaker 4s ease-in-out infinite;
}
.scn-love-feast-experience .window-light {
  position: absolute; top: 10%; left: 50%; transform: translateX(-50%);
  width: 80px; height: 100px; background: radial-gradient(ellipse at 50% 50%, #f0c060 0%, transparent 80%);
  opacity: 0.3; animation: lfe-winlight 6s ease-in-out infinite alternate;
}
.scn-love-feast-experience .candle {
  position: absolute; bottom: 32%; left: 45%; width: 4px; height: 16px;
  background: linear-gradient(180deg, #f0d080 0%, #c08040 100%);
  border-radius: 50% 50% 10% 10%; box-shadow: 0 0 20px 6px #f0c060, 0 0 40px 12px rgba(240,192,96,0.4);
  animation: lfe-candle 3s ease-in-out infinite alternate;
}
.scn-love-feast-experience .dust {
  position: absolute; width: 6px; height: 6px; background: rgba(200,180,160,0.4);
  border-radius: 50%; filter: blur(2px);
}
.scn-love-feast-experience .particle-a { top: 15%; left: 20%; animation: lfe-dust-a 12s linear infinite; }
.scn-love-feast-experience .particle-b { top: 25%; left: 70%; animation: lfe-dust-b 18s linear infinite reverse; }
@keyframes lfe-walls { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes lfe-speaker { 0% { transform: translateX(-50%) rotate(0deg); } 25% { transform: translateX(-48%) rotate(2deg); } 50% { transform: translateX(-50%) rotate(-1deg); } 75% { transform: translateX(-52%) rotate(1deg); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes lfe-winlight { 0% { opacity: 0.2; } 50% { opacity: 0.4; } 100% { opacity: 0.25; } }
@keyframes lfe-candle { 0% { transform: scaleY(1); opacity: 0.9; } 50% { transform: scaleY(1.05); opacity: 1; } 100% { transform: scaleY(0.95); opacity: 0.85; } }
@keyframes lfe-dust-a { 0% { transform: translate(0,0) scale(1); } 50% { transform: translate(10px,-5px) scale(1.5); } 100% { transform: translate(20px,0) scale(0.8); } }
@keyframes lfe-dust-b { 0% { transform: translate(0,0) scale(0.8); } 50% { transform: translate(-8px,-10px) scale(1.2); } 100% { transform: translate(-16px,0) scale(1); } }

/* buns-and-water */
.scn-buns-and-water {
  background:
    linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 60%, #1a0a00 100%),
    radial-gradient(ellipse at 50% 90%, #4a3a2a 0%, transparent 80%);
}
.scn-buns-and-water .bg-room {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 40%, #5a3a2a 0%, transparent 100%);
  animation: bns-room 10s ease-in-out infinite alternate;
}
.scn-buns-and-water .table {
  position: absolute; bottom: 25%; left: 50%; transform: translateX(-50%);
  width: 60%; height: 6%; background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%);
  border-radius: 4px; box-shadow: 0 4px 12px rgba(0,0,0,0.6);
}
.scn-buns-and-water .basket {
  position: absolute; bottom: 30%; width: 40px; height: 30px;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 10% 10%; box-shadow: inset 0 -4px 8px rgba(0,0,0,0.4);
}
.scn-buns-and-water .basket-left { left: 25%; animation: bns-basket 6s ease-in-out infinite; }
.scn-buns-and-water .basket-right { right: 25%; animation: bns-basket 6s ease-in-out infinite 3s; }
.scn-buns-and-water .mug {
  position: absolute; bottom: 28%; width: 14px; height: 20px;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 4px 4px 10px 10px;
}
.scn-buns-and-water .mug-a { left: 40%; animation: bns-mug 8s ease-in-out infinite; }
.scn-buns-and-water .mug-b { right: 40%; animation: bns-mug 8s ease-in-out infinite 4s; }
.scn-buns-and-water .hand {
  position: absolute; bottom: 27%; width: 14px; height: 24px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
}
.scn-buns-and-water .hand-left { left: 30%; animation: bns-hand 5s ease-in-out infinite; }
.scn-buns-and-water .hand-right { right: 30%; animation: bns-hand 5s ease-in-out infinite 2.5s; }
.scn-buns-and-water .steam {
  position: absolute; bottom: 35%; width: 10px; height: 20px;
  background: radial-gradient(ellipse at 50% 100%, rgba(240,220,200,0.3) 0%, transparent 100%);
  border-radius: 50%; filter: blur(4px);
}
.scn-buns-and-water .steam-1 { left: 42%; animation: bns-steam 4s ease-in-out infinite; }
@keyframes bns-room { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes bns-basket { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes bns-mug { 0% { transform: scale(1) rotate(0); } 50% { transform: scale(1.02) rotate(2deg); } 100% { transform: scale(0.98) rotate(-1deg); } }
@keyframes bns-hand { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(5px) rotate(5deg); } 50% { transform: translateX(0) rotate(-2deg); } 75% { transform: translateX(-5px) rotate(3deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes bns-steam { 0% { transform: translateY(0) scale(1); opacity: 0.3; } 50% { transform: translateY(-10px) scale(1.5); opacity: 0.6; } 100% { transform: translateY(0) scale(0.8); opacity: 0.2; } }

/* resolution-heaven */
.scn-resolution-heaven {
  background:
    linear-gradient(180deg, #1a0a00 0%, #0a0500 50%, #150a00 100%),
    radial-gradient(ellipse at 50% 0%, #4a2a0a 0%, transparent 70%);
}
.scn-resolution-heaven .bg-darkroom {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 80%, #2a1a0a 0%, transparent 100%);
  animation: rsl-bg 12s ease-in-out infinite alternate;
}
.scn-resolution-heaven .praying-figure {
  position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%);
  width: 20px; height: 50px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: rsl-figure 5s ease-in-out infinite;
}
.scn-resolution-heaven .heavenly-light {
  position: absolute; top: 0; left: 50%; transform: translateX(-50%);
  width: 120px; height: 200px; background: radial-gradient(ellipse at 50% 0%, #f0c060 0%, transparent 100%);
  opacity: 0.3; animation: rsl-light 7s ease-in-out infinite alternate;
}
.scn-resolution-heaven .discarded-card {
  position: absolute; bottom: 15%; left: 30%;
  width: 20px; height: 28px; background: linear-gradient(135deg, #5a3a3a 0%, #3a2a2a 100%);
  border-radius: 4px; transform: rotate(-20deg);
  animation: rsl-card 10s ease-in-out infinite;
}
.scn-resolution-heaven .shadow-arch {
  position: absolute; top: 10%; left: 10%; width: 80%; height: 50%;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.4) 0%, transparent 80%);
  animation: rsl-arch 15s ease-in-out infinite alternate;
}
.scn-resolution-heaven .candle-flicker {
  position: absolute; bottom: 30%; left: 20%; width: 4px; height: 12px;
  background: linear-gradient(180deg, #f0d080 0%, #c08040 100%);
  border-radius: 50% 50% 10% 10%; box-shadow: 0 0 12px 4px #f0c060;
  animation: rsl-candle 3s ease-in-out infinite alternate;
}
.scn-resolution-heaven .dust {
  position: absolute; width: 4px; height: 4px; background: rgba(200,180,160,0.4);
  border-radius: 50%; filter: blur(1px);
}
.scn-resolution-heaven .motes { top: 40%; left: 50%; animation: rsl-motes 20s linear infinite; }
@keyframes rsl-bg { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.95 } }
@keyframes rsl-figure { 0% { transform: translateX(-50%) rotate(0deg) translateY(0); } 25% { transform: translateX(-52%) rotate(3deg) translateY(-2px); } 50% { transform: translateX(-50%) rotate(-2deg) translateY(0); } 75% { transform: translateX(-48%) rotate(4deg) translateY(-1px); } 100% { transform: translateX(-50%) rotate(0deg) translateY(0); } }
@keyframes rsl-light { 0% { opacity: 0.2; } 50% { opacity: 0.4; } 100% { opacity: 0.25; } }
@keyframes rsl-card { 0% { transform: rotate(-20deg) translateY(0); } 50% { transform: rotate(-15deg) translateY(-3px); } 100% { transform: rotate(-25deg) translateY(0); } }
@keyframes rsl-arch { 0% { opacity: 0.6; } 50% { opacity: 0.8; } 100% { opacity: 0.5; } }
@keyframes rsl-candle { 0% { transform: scaleY(1); opacity: 0.9; } 50% { transform: scaleY(1.08); opacity: 1; } 100% { transform: scaleY(0.92); opacity: 0.8; } }
@keyframes rsl-motes { 0% { transform: translate(0,0) scale(1); } 50% { transform: translate(5px,-10px) scale(1.5); } 100% { transform: translate(10px,0) scale(0.8); } }

/* book-strengthens */
.scn-book-strengthens {
  background:
    linear-gradient(180deg, #2a1a0a 0%, #1a0a00 40%, #0a0500 100%),
    radial-gradient(ellipse at 50% 100%, #3a2a1a 0%, transparent 60%);
}
.scn-book-strengthens .bg-study {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 60%, #3a2a1a 0%, transparent 100%);
  animation: bks-bg 14s ease-in-out infinite alternate;
}
.scn-book-strengthens .desk {
  position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%);
  width: 50%; height: 6%; background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%);
  border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,0.6);
}
.scn-book-strengthens .book {
  position: absolute; bottom: 25%; left: 50%; transform: translateX(-50%);
  width: 36px; height: 24px; background: linear-gradient(135deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 2px; box-shadow: 2px 2px 6px rgba(0,0,0,0.5);
}
.scn-book-strengthens .open {
  width: 44px; height: 28px;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%);
  animation: bks-book 5s ease-in-out infinite;
}
.scn-book-strengthens .reader {
  position: absolute; bottom: 22%; left: 48%;
  width: 16px; height: 44px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: bks-reader 6s ease-in-out infinite;
}
.scn-book-strengthens .lamp {
  position: absolute; bottom: 30%; left: 60%;
  width: 8px; height: 12px; background: radial-gradient(circle, #f0c060 0%, #c08040 70%);
  border-radius: 50%; box-shadow: 0 0 20px 6px #f0c060, 0 0 40px 12px rgba(240,192,96,0.3);
  animation: bks-lamp 4s ease-in-out infinite alternate;
}
.scn-book-strengthens .window-arch {
  position: absolute; top: 5%; left: 50%; transform: translateX(-50%);
  width: 90px; height: 120px; border: 2px solid #2a1a0a; border-radius: 50% 50% 10% 10%;
  background: radial-gradient(ellipse at 50% 30%, rgba(240,200,160,0.2) 0%, transparent 80%);
  animation: bks-window 8s ease-in-out infinite alternate;
}
.scn-book-strengthens .curtain {
  position: absolute; top: 0; width: 20px; height: 100%;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%);
  border-radius: 10% 0 0 10%;
}
.scn-book-strengthens .curtain-l { left: 5%; animation: bks-curtain-l 12s ease-in-out infinite; }
.scn-book-strengthens .curtain-r { right: 5%; animation: bks-curtain-r 12s ease-in-out infinite reverse; }
.scn-book-strengthens .page-turn {
  position: absolute; bottom: 27%; left: 50%; transform: translateX(-50%);
  width: 10px; height: 16px; background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%);
  border-radius: 10% 10% 2px 2px; opacity: 0.6;
  animation: bks-page 3s ease-in-out infinite;
}
@keyframes bks-bg { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes bks-book { 0% { transform: translateX(-50%) rotate(0deg) scale(1); } 50% { transform: translateX(-48%) rotate(2deg) scale(1.02); } 100% { transform: translateX(-50%) rotate(-1deg) scale(0.98); } }
@keyframes bks-reader { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(-2px) rotate(3deg); } 50% { transform: translateX(1px) rotate(-2deg); } 75% { transform: translateX(-1px) rotate(2deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes bks-lamp { 0% { box-shadow: 0 0 15px 4px #f0c060; opacity: 0.9; } 50% { box-shadow: 0 0 25px 8px #f0c060; opacity: 1; } 100% { box-shadow: 0 0 18px 5px #f0c060; opacity: 0.85; } }
@keyframes bks-window { 0% { opacity: 0.2; } 50% { opacity: 0.4; } 100% { opacity: 0.25; } }
@keyframes bks-curtain-l { 0% { transform: translateX(0); } 50% { transform: translateX(2px); } 100% { transform: translateX(0); } }
@keyframes bks-curtain-r { 0% { transform: translateX(0); } 50% { transform: translateX(-2px); } 100% { transform: translateX(0); } }
@keyframes bks-page { 0% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-48%) scaleY(1.1); } 100% { transform: translateX(-50%) scaleY(0.9); } }

/* ========================================================= */
/* scn-field-slaves-grass                                    */
/* ========================================================= */
.scn-field-slaves-grass {
  background:
    linear-gradient(180deg, #d4a055 0%, #b07830 35%, #7a5a20 100%),
    radial-gradient(ellipse at 50% 0%, #e8c070 0%, transparent 60%);
}
.scn-field-slaves-grass .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #f0d080 0%, #d4a055 60%, transparent 100%);
  animation: fsg-sky 20s ease-in-out infinite alternate;
}
.scn-field-slaves-grass .field {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #6d4a1a 0%, #4a3010 100%);
  border-radius: 40% 60% 0 0 / 20% 30% 0 0;
  animation: fsg-field 12s ease-in-out infinite alternate;
}
.scn-field-slaves-grass .sun-rays {
  position: absolute; top: 0; left: 50%; width: 80%; height: 60%;
  background: radial-gradient(ellipse at 50% 0%, rgba(255,230,150,0.3) 0%, transparent 60%);
  transform-origin: top center;
  animation: fsg-sunrays 15s linear infinite;
}
.scn-field-slaves-grass .figure {
  position: absolute; bottom: 38%; left: 50%; width: 22px; height: 40px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: fsg-figure 5s ease-in-out infinite;
}
.scn-field-slaves-grass .bundle {
  position: absolute; bottom: 42%; width: 8px; height: 14px;
  background: linear-gradient(180deg, #5a4020 0%, #3a2810 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
}
.scn-field-slaves-grass .bundle.left { left: 38%; animation: fsg-bundle-shift 7s ease-in-out infinite; }
.scn-field-slaves-grass .bundle.right { left: 56%; animation: fsg-bundle-shift 7s ease-in-out infinite reverse; }
.scn-field-slaves-grass .grass-tuft {
  position: absolute; bottom: 44%; left: 30%; width: 4px; height: 20px;
  background: linear-gradient(180deg, #8a6a30 0%, #4a3010 100%);
  border-radius: 50%;
  animation: fsg-grass-sway 3s ease-in-out infinite;
}
@keyframes fsg-sky {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes fsg-field {
  0% { transform: translateY(0px); }
  50% { transform: translateY(3px); }
  100% { transform: translateY(1px); }
}
@keyframes fsg-sunrays {
  0% { transform: rotate(-5deg); opacity: 0.6; }
  50% { transform: rotate(0deg); opacity: 0.9; }
  100% { transform: rotate(5deg); opacity: 0.7; }
}
@keyframes fsg-figure {
  0% { transform: translateX(-50%) translateY(0) rotate(-2deg); }
  25% { transform: translateX(-52%) translateY(-2px) rotate(1deg); }
  50% { transform: translateX(-50%) translateY(0) rotate(0deg); }
  75% { transform: translateX(-48%) translateY(-1px) rotate(2deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(-2deg); }
}
@keyframes fsg-bundle-shift {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes fsg-grass-sway {
  0% { transform: rotate(-8deg); }
  50% { transform: rotate(8deg); }
  100% { transform: rotate(-8deg); }
}

/* ========================================================= */
/* scn-white-violence                                        */
/* ========================================================= */
.scn-white-violence {
  background:
    linear-gradient(180deg, #b89050 0%, #906830 35%, #604018 100%),
    radial-gradient(ellipse at 50% 0%, #d4a060 0%, transparent 60%);
}
.scn-white-violence .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #e0c080 0%, #b89050 60%, transparent 100%);
  animation: wv-sky 18s ease-in-out infinite alternate;
}
.scn-white-violence .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #4a3010 0%, #2a1a08 100%);
  border-radius: 50% 50% 0 0 / 20% 20% 0 0;
}
.scn-white-violence .attacker {
  position: absolute; bottom: 35%; left: 30%; width: 20px; height: 38px;
  background: linear-gradient(180deg, #3a3a3a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(10deg);
  animation: wv-attacker 2s ease-in-out infinite;
}
.scn-white-violence .victim {
  position: absolute; bottom: 35%; left: 55%; width: 18px; height: 34px;
  background: linear-gradient(180deg, #2a2a2a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-15deg);
  animation: wv-victim 2s ease-in-out infinite reverse;
}
.scn-white-violence .grab-hand {
  position: absolute; bottom: 50%; left: 42%; width: 12px; height: 6px;
  background: #4a3a2a;
  border-radius: 50% 30% 30% 50%;
  transform-origin: left center;
  animation: wv-grab 1.5s ease-in-out infinite;
}
.scn-white-violence .grass-bundle {
  position: absolute; bottom: 40%; left: 50%; width: 10px; height: 16px;
  background: linear-gradient(180deg, #6a5020 0%, #3a2810 100%);
  border-radius: 10% 10% 5% 5%;
  animation: wv-bundle 4s ease-in-out infinite alternate;
}
.scn-white-violence .shadow-line {
  position: absolute; bottom: 33%; left: 10%; right: 10%; height: 2px;
  background: rgba(0,0,0,0.4);
  filter: blur(2px);
  animation: wv-shadow 5s ease-in-out infinite;
}
@keyframes wv-sky {
  0% { opacity: 0.6; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes wv-attacker {
  0% { transform: translateY(0) rotate(10deg); }
  50% { transform: translateY(-3px) rotate(5deg); }
  100% { transform: translateY(0) rotate(10deg); }
}
@keyframes wv-victim {
  0% { transform: translateY(0) rotate(-15deg); }
  50% { transform: translateY(2px) rotate(-20deg); }
  100% { transform: translateY(0) rotate(-15deg); }
}
@keyframes wv-grab {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(-20deg); }
  100% { transform: rotate(0deg); }
}
@keyframes wv-bundle {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-2px) scale(1.1); }
  100% { transform: translateY(0) scale(1); }
}
@keyframes wv-shadow {
  0% { opacity: 0.3; }
  50% { opacity: 0.6; }
  100% { opacity: 0.3; }
}

/* ========================================================= */
/* scn-crying-sin                                            */
/* ========================================================= */
.scn-crying-sin {
  background:
    linear-gradient(180deg, #1a1028 0%, #2a1a38 40%, #3a2040 100%),
    radial-gradient(ellipse at 50% 0%, #3a2040 0%, transparent 70%);
}
.scn-crying-sin .bg-dark {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #0a0a1a 0%, #1a1028 100%);
  animation: cs-bg-pulse 15s ease-in-out infinite alternate;
}
.scn-crying-sin .light-beam {
  position: absolute; top: -10%; left: 40%; width: 20%; height: 60%;
  background: linear-gradient(180deg, rgba(230,200,150,0.2) 0%, transparent 100%);
  transform: rotate(10deg);
  animation: cs-beam 8s ease-in-out infinite alternate;
}
.scn-crying-sin .kneeling-figure {
  position: absolute; bottom: 28%; left: 50%; width: 24px; height: 36px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 50% 40% 40%;
  animation: cs-figure 6s ease-in-out infinite;
}
.scn-crying-sin .chain-arm {
  position: absolute; bottom: 42%; left: 35%; width: 20px; height: 4px;
  background: linear-gradient(90deg, #5a5040 0%, #3a3020 100%);
  border-radius: 2px;
  animation: cs-chain 4s ease-in-out infinite;
}
.scn-crying-sin .chain-leg {
  position: absolute; bottom: 20%; left: 45%; width: 6px; height: 14px;
  background: linear-gradient(180deg, #5a5040 0%, #3a3020 100%);
  border-radius: 2px;
  animation: cs-chain 4.5s ease-in-out infinite reverse;
}
.scn-crying-sin .ground-ash {
  position: absolute; bottom: 18%; left: 25%; right: 25%; height: 6px;
  background: linear-gradient(90deg, #2a1a10, #4a3020, #2a1a10);
  border-radius: 50%;
  filter: blur(2px);
  animation: cs-ash 20s linear infinite;
}
.scn-crying-sin .tear-drop {
  position: absolute; bottom: 52%; left: 48%; width: 4px; height: 8px;
  background: radial-gradient(circle, #80c0e0 0%, transparent 100%);
  border-radius: 50% 50% 50% 50% / 40% 40% 60% 60%;
  animation: cs-tear 3s ease-in-out infinite;
}
@keyframes cs-bg-pulse {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes cs-beam {
  0% { transform: rotate(8deg) scaleX(0.9); opacity: 0.3; }
  50% { transform: rotate(12deg) scaleX(1); opacity: 0.6; }
  100% { transform: rotate(8deg) scaleX(0.9); opacity: 0.3; }
}
@keyframes cs-figure {
  0% { transform: translateX(-50%) translateY(0) rotate(-3deg); }
  50% { transform: translateX(-50%) translateY(-4px) rotate(0deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(-3deg); }
}
@keyframes cs-chain {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(2px) rotate(5deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes cs-ash {
  0% { transform: translateX(-10%); }
  50% { transform: translateX(10%); }
  100% { transform: translateX(-10%); }
}
@keyframes cs-tear {
  0% { transform: translateY(0) scale(1); opacity: 0.8; }
  50% { transform: translateY(10px) scale(1.2); opacity: 0.4; }
  100% { transform: translateY(0) scale(1); opacity: 0.8; }
}

/* ========================================================= */
/* scn-chest-attack                                          */
/* ========================================================= */
.scn-chest-attack {
  background:
    linear-gradient(180deg, #c8a060 0%, #a08040 40%, #705028 100%),
    radial-gradient(ellipse at 50% 0%, #d8b070 0%, transparent 60%);
}
.scn-chest-attack .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #e8c890 0%, #c8a060 60%, transparent 100%);
  animation: ca-sky 12s ease-in-out infinite alternate;
}
.scn-chest-attack .ship-deck {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #5a4020 0%, #3a2810 100%);
  border-radius: 30% 70% 0 0 / 10% 20% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.5);
}
.scn-chest-attack .deck-rail {
  position: absolute; bottom: 48%; left: 5%; right: 5%; height: 6px;
  background: linear-gradient(90deg, #6a5040, #8a7050, #6a5040);
  border-radius: 3px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
}
.scn-chest-attack .attacker {
  position: absolute; bottom: 34%; left: 35%; width: 24px; height: 42px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(15deg) translateX(-10px);
  animation: ca-attacker 1.5s ease-in-out infinite;
}
.scn-chest-attack .defender {
  position: absolute; bottom: 34%; left: 55%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #2a1a10 0%, #0a0804 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-25deg) translateX(5px);
  animation: ca-defender 1.5s ease-in-out infinite alternate;
}
.scn-chest-attack .crate {
  position: absolute; bottom: 20%; left: 20%; width: 30px; height: 20px;
  background: linear-gradient(135deg, #8a6a40 0%, #5a4020 100%);
  border-radius: 2px;
  box-shadow: 2px 2px 4px rgba(0,0,0,0.4);
  animation: ca-crate 18s ease-in-out infinite;
}
.scn-chest-attack .fowl {
  position: absolute; bottom: 48%; left: 40%; width: 8px; height: 6px;
  background: radial-gradient(circle, #b08040 0%, #7a5a30 100%);
  border-radius: 50%;
  box-shadow: 0 0 2px rgba(0,0,0,0.3);
  animation: ca-fowl 3s ease-in-out infinite;
}
@keyframes ca-sky {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes ca-attacker {
  0% { transform: rotate(15deg) translateX(-10px); }
  50% { transform: rotate(10deg) translateX(-5px); }
  100% { transform: rotate(15deg) translateX(-10px); }
}
@keyframes ca-defender {
  0% { transform: rotate(-25deg) translateX(5px); }
  50% { transform: rotate(-30deg) translateX(0px); }
  100% { transform: rotate(-25deg) translateX(5px); }
}
@keyframes ca-crate {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes ca-fowl {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-4px) scale(1.1); }
  100% { transform: translateY(0) scale(1); }
}

/* mr-read-threat – dusk tense standoff */
.scn-mr-read-threat {
  background: linear-gradient(180deg, #3e2b5a 0%, #7a4e3a 40%, #d4905c 70%, #f2c88a 100%),
              radial-gradient(ellipse at 50% 30%, #f2c88a 0%, transparent 60%);
}
.scn-mr-read-threat .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #5a3a5a 0%, #d4905c 80%);
  animation: mrt-sky 8s ease-in-out infinite alternate;
}
.scn-mr-read-threat .sun {
  position: absolute; top: 18%; left: 55%; width: 40px; height: 40px;
  background: radial-gradient(circle, #f2c88a 0%, #e09050 60%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 40px 20px rgba(242,200,138,0.5);
  animation: mrt-sun 10s ease-in-out infinite alternate;
}
.scn-mr-read-threat .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(0deg, #2a1a2a 0%, #4a3a2a 100%);
  border-radius: 30% 50% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.6);
}
.scn-mr-read-threat .figure-left {
  position: absolute; bottom: 28%; left: 30%; width: 24px; height: 60px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: mrt-fig-left 3s ease-in-out infinite;
}
.scn-mr-read-threat .figure-right {
  position: absolute; bottom: 28%; right: 30%; width: 26px; height: 64px;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: mrt-fig-right 3.2s ease-in-out infinite;
}
.scn-mr-read-threat .ship {
  position: absolute; bottom: 36%; left: 8%; width: 80px; height: 40px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%);
  clip-path: polygon(0% 80%, 20% 40%, 60% 30%, 80% 60%, 100% 50%, 90% 80%, 60% 90%, 10% 95%);
  box-shadow: 0 4px 10px rgba(0,0,0,0.5);
  animation: mrt-ship 20s ease-in-out infinite;
}
.scn-mr-read-threat .cloud1 {
  position: absolute; top: 12%; left: 10%; width: 70px; height: 16px;
  background: linear-gradient(180deg, rgba(200,160,120,0.6) 0%, rgba(200,160,120,0.1) 100%);
  border-radius: 50%; filter: blur(5px);
  animation: mrt-cloud1 40s linear infinite;
}
.scn-mr-read-threat .cloud2 {
  position: absolute; top: 20%; right: 10%; width: 50px; height: 12px;
  background: linear-gradient(180deg, rgba(200,160,120,0.5) 0%, rgba(200,160,120,0.05) 100%);
  border-radius: 50%; filter: blur(4px);
  animation: mrt-cloud2 55s linear infinite reverse;
}
@keyframes mrt-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.6; } }
@keyframes mrt-sun { 0% { transform: scale(0.9); box-shadow: 0 0 30px 15px rgba(242,200,138,0.4); } 50% { transform: scale(1.05); box-shadow: 0 0 50px 25px rgba(242,200,138,0.6); } 100% { transform: scale(0.95); box-shadow: 0 0 35px 18px rgba(242,200,138,0.45); } }
@keyframes mrt-fig-left { 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 mrt-fig-right { 0% { transform: translateX(0) rotate(2deg); } 33% { transform: translateX(-3px) rotate(-1deg); } 66% { transform: translateX(2px) rotate(0deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes mrt-ship { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-4px) scale(1.02); } 100% { transform: translateY(0) scale(1); } }
@keyframes mrt-cloud1 { 0% { transform: translateX(-20px); } 50% { transform: translateX(20vw); } 100% { transform: translateX(80vw); } }
@keyframes mrt-cloud2 { 0% { transform: translateX(0); } 50% { transform: translateX(-30vw); } 100% { transform: translateX(-60vw); } }

/* captain-defends – dim interior tense */
.scn-captain-defends {
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 50%, #1a121a 100%),
              radial-gradient(ellipse at 50% 60%, #5a4a3a 0%, transparent 70%);
}
.scn-captain-defends .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 80%);
  box-shadow: inset 0 0 40px rgba(0,0,0,0.5);
}
.scn-captain-defends .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1210 100%);
  border-radius: 20% 20% 0 0;
}
.scn-captain-defends .table {
  position: absolute; bottom: 18%; left: 35%; width: 80px; height: 20px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 6px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: cd-table 6s ease-in-out infinite;
}
.scn-captain-defends .candle {
  position: absolute; bottom: 30%; left: 45%; width: 8px; height: 20px;
  background: linear-gradient(180deg, #d4905c 0%, #f2c88a 50%, #8a6030 100%);
  border-radius: 4px;
  box-shadow: 0 0 20px 8px rgba(242,200,138,0.4), 0 0 40px 15px rgba(242,200,138,0.2);
  animation: cd-candle 3s ease-in-out infinite alternate;
}
.scn-captain-defends .figure-captain {
  position: absolute; bottom: 20%; left: 28%; width: 26px; height: 60px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: cd-cap 4s ease-in-out infinite;
}
.scn-captain-defends .figure-equiano {
  position: absolute; bottom: 20%; left: 55%; width: 24px; height: 58px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: cd-equ 3.8s ease-in-out infinite;
}
.scn-captain-defends .door {
  position: absolute; bottom: 12%; right: 10%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%);
  border-radius: 4px;
  box-shadow: inset 0 2px 6px rgba(0,0,0,0.4);
  animation: cd-door 8s ease-in-out infinite;
}
@keyframes cd-table { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes cd-candle { 0% { transform: scaleY(0.9); opacity: 0.85; } 50% { transform: scaleY(1.05); opacity: 1; } 100% { transform: scaleY(0.95); opacity: 0.9; } }
@keyframes cd-cap { 0% { transform: rotate(-1deg) ; } 33% { transform: rotate(2deg) translateX(2px); } 66% { transform: rotate(-2deg) translateX(-1px); } 100% { transform: rotate(0deg); } }
@keyframes cd-equ { 0% { transform: rotate(1deg); } 33% { transform: rotate(-1deg) translateX(-2px); } 66% { transform: rotate(2deg) translateX(1px); } 100% { transform: rotate(0deg); } }
@keyframes cd-door { 0% { transform: scaleX(1); } 50% { transform: scaleX(0.98); } 100% { transform: scaleX(1); } }

/* free-negro-treatment – sunlit tense */
.scn-free-negro-treatment {
  background: linear-gradient(180deg, #67a0c8 0%, #c8d8e8 40%, #e8e0c0 70%, #f0d0a0 100%),
              radial-gradient(ellipse at 50% 0%, #f0d0a0 0%, transparent 60%);
}
.scn-free-negro-treatment .sky-bright {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #5a90b8 0%, #c8d8e8 80%);
  animation: fnt-sky 10s ease-in-out infinite alternate;
}
.scn-free-negro-treatment .sun-harsh {
  position: absolute; top: 5%; left: 70%; width: 50px; height: 50px;
  background: radial-gradient(circle, #ffe8a0 0%, #f0c070 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 60px 30px rgba(240,192,112,0.6);
  animation: fnt-sun 12s ease-in-out infinite alternate;
}
.scn-free-negro-treatment .ground-hard {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #d0b080 0%, #a08060 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.3);
  border-radius: 30% 20% 0 0;
}
.scn-free-negro-treatment .figure-main {
  position: absolute; bottom: 25%; left: 40%; width: 28px; height: 66px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 0 8px 20px rgba(0,0,0,0.5);
  animation: fnt-fig 4s ease-in-out infinite;
}
.scn-free-negro-treatment .shadow-figure {
  position: absolute; bottom: 18%; left: 40%; width: 28px; height: 20px;
  background: rgba(0,0,0,0.4);
  border-radius: 50%;
  filter: blur(4px);
  animation: fnt-shadow 4s ease-in-out infinite;
}
.scn-free-negro-treatment .jail-bars {
  position: absolute; bottom: 25%; left: 62%; width: 4px; height: 70px;
  background: #a08060;
  box-shadow: 10px 0 0 #a08060, 20px 0 0 #a08060, 30px 0 0 #a08060;
  opacity: 0.8;
  animation: fnt-bars 3s ease-in-out infinite alternate;
}
.scn-free-negro-treatment .crowd-silhouette {
  position: absolute; bottom: 20%; left: 15%; width: 50px; height: 40px;
  background: #2a2a2a;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  filter: blur(2px);
  animation: fnt-crowd 8s ease-in-out infinite;
}
@keyframes fnt-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes fnt-sun { 0% { transform: scale(0.9) rotate(0deg); box-shadow: 0 0 40px 20px rgba(240,192,112,0.4); } 50% { transform: scale(1.05) rotate(5deg); box-shadow: 0 0 70px 30px rgba(240,192,112,0.6); } 100% { transform: scale(0.95) rotate(-5deg); box-shadow: 0 0 50px 25px rgba(240,192,112,0.5); } }
@keyframes fnt-fig { 0% { transform: translateX(0) rotate(-1deg); } 33% { transform: translateX(3px) rotate(1deg); } 66% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes fnt-shadow { 0% { transform: scaleX(1); opacity: 0.4; } 33% { transform: scaleX(1.1); opacity: 0.45; } 66% { transform: scaleX(0.9); opacity: 0.4; } 100% { transform: scaleX(1); opacity: 0.4; } }
@keyframes fnt-bars { 0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.7; } }
@keyframes fnt-crowd { 0% { transform: translateX(0) scale(1); } 50% { transform: translateX(5px) scale(1.02); } 100% { transform: translateX(0) scale(1); } }

/* hiding-mr-dixon – dim interior tense */
.scn-hiding-mr-dixon {
  background: linear-gradient(180deg, #3a2a2a 0%, #1a121a 50%, #0a0a1a 100%),
              radial-gradient(ellipse at 50% 80%, #2a1a1a 0%, transparent 70%);
}
.scn-hiding-mr-dixon .wall-dark {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a121a 80%);
  box-shadow: inset 0 0 30px rgba(0,0,0,0.6);
}
.scn-hiding-mr-dixon .floor-dark {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #1a121a 0%, #0a0a0a 100%);
  border-radius: 10% 10% 0 0;
}
.scn-hiding-mr-dixon .doorway {
  position: absolute; bottom: 15%; left: 60%; width: 50px; height: 80px;
  background: #1a1a2a;
  border: 3px solid #3a2a2a;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.7);
  animation: hmd-doorway 6s ease-in-out infinite;
}
.scn-hiding-mr-dixon .figure-crouch {
  position: absolute; bottom: 18%; left: 30%; width: 22px; height: 40px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform: scaleY(0.5);
  transform-origin: bottom center;
  animation: hmd-crouch 4s ease-in-out infinite;
}
.scn-hiding-mr-dixon .beam-light {
  position: absolute; top: 0; left: 40%; width: 10px; height: 100%;
  background: linear-gradient(180deg, rgba(200,180,140,0.15) 0%, transparent 80%);
  filter: blur(2px);
  animation: hmd-beam 8s ease-in-out infinite alternate;
}
.scn-hiding-mr-dixon .crate {
  position: absolute; bottom: 14%; left: 20%; width: 40px; height: 30px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 4px;
  box-shadow: 2px 2px 6px rgba(0,0,0,0.5);
  animation: hmd-crate 10s ease-in-out infinite;
}
.scn-hiding-mr-dixon .dust {
  position: absolute; top: 40%; left: 30%; width: 8px; height: 8px;
  background: rgba(200,180,140,0.2);
  border-radius: 50%;
  filter: blur(2px);
  box-shadow: 20px 0 8px rgba(200,180,140,0.15), -15px 10px 6px rgba(200,180,140,0.1);
  animation: hmd-dust 15s linear infinite;
}
@keyframes hmd-doorway { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.98); } 100% { transform: scaleY(1); } }
@keyframes hmd-crouch { 0% { transform: translateY(0) scaleY(0.5); } 33% { transform: translateY(-2px) scaleY(0.52); } 66% { transform: translateY(1px) scaleY(0.48); } 100% { transform: translateY(0) scaleY(0.5); } }
@keyframes hmd-beam { 0% { opacity: 0.3; } 50% { opacity: 0.6; } 100% { opacity: 0.2; } }
@keyframes hmd-crate { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes hmd-dust { 0% { transform: translate(0,0) scale(1); } 33% { transform: translate(10px, -5px) scale(1.5); } 66% { transform: translate(-5px, 5px) scale(0.8); } 100% { transform: translate(0,0) scale(1); } }

.scn-water-marriage {
  background:
    linear-gradient(180deg, #ffd699 0%, #fbaa4e 30%, #88c6ed 70%, #2a6f96 100%);
}
.scn-water-marriage .sky {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #fbcb8b 0%, #faa55e 30%, transparent 100%);
  animation: wm-sky 15s ease-in-out infinite alternate;
}
.scn-water-marriage .sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(180deg, #2a6f96 0%, #1a4a6e 100%);
  animation: wm-sea 12s ease-in-out infinite;
}
.scn-water-marriage .sun {
  position: absolute; top: 15%; left: 70%; width: 80px; height: 80px;
  background: radial-gradient(circle, #fff4d6 0%, #ffd699 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px rgba(255, 214, 153, 0.5);
  animation: wm-sun 8s ease-in-out infinite alternate;
}
.scn-water-marriage .boat-left {
  position: absolute; bottom: 40%; left: 20%; width: 120px; height: 40px;
  background: linear-gradient(180deg, #7a4a2a 0%, #4a2a1a 100%);
  border-radius: 0 0 50% 50% / 0 0 100% 100%;
  transform-origin: bottom center;
  animation: wm-boat 6s ease-in-out infinite;
}
.scn-water-marriage .boat-right {
  position: absolute; bottom: 40%; left: 55%; width: 120px; height: 40px;
  background: linear-gradient(180deg, #7a4a2a 0%, #4a2a1a 100%);
  border-radius: 0 0 50% 50% / 0 0 100% 100%;
  transform-origin: bottom center;
  animation: wm-boat 6s ease-in-out infinite reverse;
}
.scn-water-marriage .bride {
  position: absolute; bottom: 42%; left: 25%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #f0d8b0 0%, #d4a878 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: wm-figure 4s ease-in-out infinite;
}
.scn-water-marriage .groom {
  position: absolute; bottom: 42%; left: 60%; width: 22px; height: 52px;
  background: linear-gradient(180deg, #c89a6a 0%, #a07040 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: wm-figure 4s ease-in-out infinite 0.5s;
}
.scn-water-marriage .cloud-a {
  position: absolute; top: 12%; left: 10%; width: 90px; height: 20px;
  background: rgba(255,255,255,0.4);
  border-radius: 50%;
  filter: blur(6px);
  animation: wm-cloud 40s linear infinite;
}
.scn-water-marriage .cloud-b {
  position: absolute; top: 20%; left: 50%; width: 70px; height: 16px;
  background: rgba(255,255,255,0.3);
  border-radius: 50%;
  filter: blur(5px);
  animation: wm-cloud 35s linear infinite reverse;
}

@keyframes wm-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes wm-sea {
  0% { transform: translateY(0); }
  50% { transform: translateY(-4px); }
  100% { transform: translateY(0); }
}
@keyframes wm-sun {
  0% { transform: scale(1) translateX(0); opacity: 0.8; }
  50% { transform: scale(1.05) translateX(5px); opacity: 1; }
  100% { transform: scale(0.95) translateX(-3px); opacity: 0.9; }
}
@keyframes wm-boat {
  0% { transform: rotate(-2deg) translateY(0); }
  50% { transform: rotate(2deg) translateY(-3px); }
  100% { transform: rotate(-2deg) translateY(0); }
}
@keyframes wm-figure {
  0% { transform: rotate(-1deg) translateY(0); }
  50% { transform: rotate(1deg) translateY(-2px); }
  100% { transform: rotate(-1deg) translateY(0); }
}
@keyframes wm-cloud {
  0% { transform: translateX(-40px); }
  100% { transform: translateX(120vw); }
}

.scn-liberty-desire {
  background:
    linear-gradient(180deg, #f0b454 0%, #d4882a 30%, #6e4a1e 70%, #3a2a0e 100%);
}
.scn-liberty-desire .sky-t {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #fccf7a 0%, #f5b44a 40%, transparent 100%);
  animation: ld-sky 10s ease-in-out infinite alternate;
}
.scn-liberty-desire .deck {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(0deg, #4a3020 0%, #6a4a30 30%, transparent 100%);
}
.scn-liberty-desire .mast {
  position: absolute; bottom: 30%; left: 50%; width: 8px; height: 80%;
  background: linear-gradient(0deg, #3a2a1a 0%, #5a3a1a 100%);
  transform: translateX(-50%);
  animation: ld-mast 18s ease-in-out infinite;
}
.scn-liberty-desire .sail {
  position: absolute; bottom: 40%; left: 48%; width: 60px; height: 90px;
  background: radial-gradient(ellipse at 50% 0%, #e8d8b8 0%, #c8b090 100%);
  border-radius: 0 60% 40% 0 / 0 50% 50% 0;
  transform-origin: left bottom;
  animation: ld-sail 5s ease-in-out infinite alternate;
}
.scn-liberty-desire .captain {
  position: absolute; bottom: 20%; left: 30%; width: 24px; height: 60px;
  background: linear-gradient(180deg, #4a3a1a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: ld-captain 3s ease-in-out infinite;
}
.scn-liberty-desire .narrator {
  position: absolute; bottom: 18%; left: 60%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ld-narrator 4s ease-in-out infinite;
}
.scn-liberty-desire .sun-glare {
  position: absolute; top: 10%; left: 20%; width: 50px; height: 50px;
  background: radial-gradient(circle, #fff0d0 0%, #fccf7a 50%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 40px 15px rgba(252,207,122,0.6);
  animation: ld-sun 6s ease-in-out infinite alternate;
}
.scn-liberty-desire .cloud-ld {
  position: absolute; top: 15%; right: 10%; width: 80px; height: 18px;
  background: rgba(255,255,255,0.4);
  border-radius: 50%;
  filter: blur(5px);
  animation: ld-cloud 45s linear infinite reverse;
}

@keyframes ld-sky {
  0% { opacity: 0.85; }
  50% { opacity: 1; }
  100% { opacity: 0.75; }
}
@keyframes ld-mast {
  0% { transform: translateX(-50%) rotate(-1deg); }
  50% { transform: translateX(-50%) rotate(1deg); }
  100% { transform: translateX(-50%) rotate(-1deg); }
}
@keyframes ld-sail {
  0% { transform: rotate(-3deg) scaleX(1); }
  50% { transform: rotate(0deg) scaleX(0.95); }
  100% { transform: rotate(3deg) scaleX(1); }
}
@keyframes ld-captain {
  0% { transform: rotate(-2deg) translateY(0); }
  50% { transform: rotate(2deg) translateY(-2px); }
  100% { transform: rotate(-2deg) translateY(0); }
}
@keyframes ld-narrator {
  0% { transform: translateX(0) rotate(-1deg); }
  50% { transform: translateX(3px) rotate(1deg); }
  100% { transform: translateX(0) rotate(-1deg); }
}
@keyframes ld-sun {
  0% { transform: scale(1); opacity: 0.8; }
  50% { transform: scale(1.1); opacity: 1; }
  100% { transform: scale(0.9); opacity: 0.7; }
}
@keyframes ld-cloud {
  0% { transform: translateX(0); }
  100% { transform: translateX(-100vw); }
}

.scn-captain-relents {
  background:
    linear-gradient(180deg, #f0c27f 0%, #d4a050 40%, #6e4a1e 100%);
}
.scn-captain-relents .sky-cr {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #fcdba6 0%, #f5b87a 30%, transparent 100%);
  animation: cr-sky 12s ease-in-out infinite alternate;
}
.scn-captain-relents .sea-cr {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(0deg, #2a6f96 0%, #4a8ea0 40%, transparent 100%);
  animation: cr-sea 14s ease-in-out infinite;
}
.scn-captain-relents .hull {
  position: absolute; bottom: 25%; left: 25%; width: 50%; height: 30%;
  background: linear-gradient(0deg, #5a3a1a 0%, #7a4a2a 100%);
  border-radius: 0 0 20% 20% / 0 0 30% 30%;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.4);
}
.scn-captain-relents .railing {
  position: absolute; bottom: 50%; left: 28%; width: 44%; height: 6px;
  background: #3a2a1a;
  border-radius: 2px;
  animation: cr-rail 8s ease-in-out infinite;
}
.scn-captain-relents .captain-cr {
  position: absolute; bottom: 45%; left: 35%; width: 24px; height: 60px;
  background: linear-gradient(180deg, #4a3a1a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: cr-fig 5s ease-in-out infinite;
}
.scn-captain-relents .narrator-cr {
  position: absolute; bottom: 45%; left: 55%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cr-fig 5s ease-in-out infinite -1s;
}
.scn-captain-relents .hands {
  position: absolute; bottom: 48%; left: 47%; width: 16px; height: 20px;
  background: #a08060;
  border-radius: 40% 40% 10% 10%;
  box-shadow: 0 0 10px rgba(0,0,0,0.3);
  animation: cr-hands 3s ease-in-out infinite;
}
.scn-captain-relents .cloud-cr {
  position: absolute; top: 12%; left: 40%; width: 90px; height: 16px;
  background: rgba(255,255,255,0.3);
  border-radius: 50%;
  filter: blur(4px);
  animation: cr-cloud 50s linear infinite;
}

@keyframes cr-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes cr-sea {
  0% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
  100% { transform: translateY(0); }
}
@keyframes cr-rail {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes cr-fig {
  0% { transform: rotate(-1deg) translateY(0); }
  50% { transform: rotate(1deg) translateY(-2px); }
  100% { transform: rotate(-1deg) translateY(0); }
}
@keyframes cr-hands {
  0% { transform: rotate(-2deg) translate(0,0); }
  50% { transform: rotate(2deg) translate(1px,-1px); }
  100% { transform: rotate(-2deg) translate(0,0); }
}
@keyframes cr-cloud {
  0% { transform: translateX(-30px); }
  100% { transform: translateX(120vw); }
}

.scn-surf-dangers {
  background:
    linear-gradient(180deg, #0a1628 0%, #1a2a4e 30%, #0a1220 100%);
}
.scn-surf-dangers .night-sky {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #1a2a4e 0%, #0a1628 100%);
  animation: sd-sky 20s ease-in-out infinite alternate;
}
.scn-surf-dangers .storm-sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(180deg, #1a3a5e 0%, #0a1a2a 100%);
  animation: sd-sea 8s ease-in-out infinite;
}
.scn-surf-dangers .wave-a {
  position: absolute; bottom: 30%; left: 0; width: 100%; height: 50px;
  background: radial-gradient(ellipse at 50% 100%, #2a6a9a 0%, transparent 80%);
  border-radius: 50%;
  animation: sd-wave 4s ease-in-out infinite;
}
.scn-surf-dangers .wave-b {
  position: absolute; bottom: 40%; left: 0; width: 100%; height: 40px;
  background: radial-gradient(ellipse at 30% 100%, #2a6a9a 0%, transparent 80%);
  border-radius: 50%;
  animation: sd-wave 5s ease-in-out infinite reverse;
}
.scn-surf-dangers .canoe {
  position: absolute; bottom: 35%; left: 40%; width: 80px; height: 20px;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a0a 100%);
  border-radius: 40% 40% 10% 10%;
  transform-origin: bottom center;
  animation: sd-canoe 2s ease-in-out infinite;
}
.scn-surf-dangers .figure-a {
  position: absolute; bottom: 36%; left: 38%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: sd-fig 1.5s ease-in-out infinite;
}
.scn-surf-dangers .figure-b {
  position: absolute; bottom: 34%; left: 55%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: sd-fig 1.8s ease-in-out infinite -0.5s;
}
.scn-surf-dangers .foam {
  position: absolute; bottom: 30%; left: 30%; width: 40%; height: 8px;
  background: rgba(200,230,255,0.4);
  border-radius: 50%;
  filter: blur(3px);
  animation: sd-foam 3s ease-in-out infinite alternate;
}

@keyframes sd-sky {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.6; }
}
@keyframes sd-sea {
  0% { transform: translateY(0); }
  50% { transform: translateY(-5px); }
  100% { transform: translateY(0); }
}
@keyframes sd-wave {
  0% { transform: translateX(-20px) scaleY(1); }
  50% { transform: translateX(0px) scaleY(1.3); }
  100% { transform: translateX(20px) scaleY(1); }
}
@keyframes sd-canoe {
  0% { transform: rotate(-20deg) translateX(0); }
  50% { transform: rotate(20deg) translateX(-5px); }
  100% { transform: rotate(-20deg) translateX(0); }
}
@keyframes sd-fig {
  0% { transform: rotate(-10deg) translateY(0); }
  50% { transform: rotate(15deg) translateY(-3px); }
  100% { transform: rotate(-10deg) translateY(0); }
}
@keyframes sd-foam {
  0% { transform: scale(1) translateX(0); opacity: 0.3; }
  50% { transform: scale(1.2) translateX(10px); opacity: 0.6; }
  100% { transform: scale(0.8) translateX(-10px); opacity: 0.2; }
}

/* slave-ship-questions */
.scn-slave-ship-questions {
  background: 
    linear-gradient(180deg, #1a1a2e 0%, #2a1a1a 40%, #1a0a0a 100%),
    radial-gradient(ellipse at 20% 60%, #4a2a1a 0%, transparent 60%);
}
.scn-slave-ship-questions .deck {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 0 0 20% 20% / 0 0 10% 10%;
  box-shadow: inset 0 20px 30px rgba(0,0,0,.7);
  animation: ssq-deck 6s ease-in-out infinite alternate;
}
.scn-slave-ship-questions .railing {
  position: absolute; bottom: 32%; left: 5%; right: 5%; height: 4%;
  background: #2a1a0a;
  border-radius: 2px;
  box-shadow: 0 -4px 6px rgba(0,0,0,.5);
}
.scn-slave-ship-questions .lantern-glow {
  position: absolute; bottom: 50%; left: 30%; width: 60px; height: 60px;
  background: radial-gradient(circle, #d0a050 0%, #b08030 30%, transparent 70%);
  border-radius: 50%;
  animation: ssq-lantern-glow 3s ease-in-out infinite alternate;
}
.scn-slave-ship-questions .lantern-body {
  position: absolute; bottom: 52%; left: 29%; width: 14px; height: 18px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 30% 30%;
  box-shadow: 0 0 12px #b08040;
}
.scn-slave-ship-questions .flogged-figure {
  position: absolute; bottom: 30%; left: 45%; width: 16px; height: 40px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: 50% 100%;
  animation: ssq-flog 1s ease-in-out infinite;
}
.scn-slave-ship-questions .falling-body {
  position: absolute; bottom: 60%; left: 65%; width: 20px; height: 30px;
  background: #1a1a2a;
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
  transform: rotate(-30deg);
  animation: ssq-fall 4s ease-in-out infinite;
}
.scn-slave-ship-questions .questioner {
  position: absolute; bottom: 30%; left: 25%; width: 18px; height: 42px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: 50% 100%;
  animation: ssq-question 3s ease-in-out infinite;
}
.scn-slave-ship-questions .ship-planks {
  position: absolute; bottom: 32%; left: 0; right: 0; height: 6%;
  background: repeating-linear-gradient(90deg, #2a1a0a 0%, #3a2a1a 10%, #2a1a0a 12%);
  border-radius: 2px;
}
.scn-slave-ship-questions .chain {
  position: absolute; bottom: 36%; left: 55%; width: 30px; height: 3px;
  background: #5a4a3a;
  border-radius: 2px;
  animation: ssq-chain 2s ease-in-out infinite alternate;
}
@keyframes ssq-deck { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes ssq-lantern-glow { 0% { opacity:.7; transform: scale(1) } 50% { opacity:1; transform: scale(1.1) } 100% { opacity:.8; transform: scale(.95) } }
@keyframes ssq-flog { 0% { transform: rotate(0) } 25% { transform: rotate(10deg) } 50% { transform: rotate(0) } 75% { transform: rotate(-10deg) } 100% { transform: rotate(0) } }
@keyframes ssq-fall { 0% { transform: rotate(-30deg) translateY(0) } 20% { transform: rotate(-40deg) translateY(-10px) } 40% { transform: rotate(-20deg) translateY(-20px) } 60% { transform: rotate(-10deg) translateY(-10px) } 80% { transform: rotate(-30deg) translateY(5px) } 100% { transform: rotate(-30deg) translateY(20px) opacity:0 } }
@keyframes ssq-question { 0% { transform: translateX(0) } 25% { transform: translateX(5px) } 50% { transform: translateX(0) } 75% { transform: translateX(-5px) } 100% { transform: translateX(0) } }
@keyframes ssq-chain { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }

/* slave-ship-magic */
.scn-slave-ship-magic {
  background: 
    linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 40%, #0a1a1a 100%),
    radial-gradient(ellipse at 80% 30%, #2a4a4a 0%, transparent 60%);
}
.scn-slave-ship-magic .sky-magic {
  position: absolute; top: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(180deg, #1a2a3e 0%, transparent 100%);
  animation: ssm-sky 12s ease-in-out infinite alternate;
}
.scn-slave-ship-magic .mast {
  position: absolute; bottom: 20%; left: 50%; width: 6px; height: 55%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  transform: translateX(-50%);
  border-radius: 2px;
  box-shadow: 2px 0 4px rgba(0,0,0,.5);
}
.scn-slave-ship-magic .sail-magic {
  position: absolute; bottom: 30%; left: 45%; width: 50px; height: 60px;
  background: linear-gradient(180deg, rgba(200,180,160,.4) 0%, rgba(200,180,160,.1) 100%);
  border-radius: 50% 20% 30% 30% / 40% 30% 50% 40%;
  transform: rotate(-5deg);
  animation: ssm-sail 8s ease-in-out infinite alternate;
}
.scn-slave-ship-magic .rope-coil {
  position: absolute; bottom: 25%; left: 40%; width: 20px; height: 20px;
  background: #3a2a1a;
  border-radius: 50%;
  box-shadow: inset 0 0 6px #1a0a0a;
  animation: ssm-rope 4s ease-in-out infinite;
}
.scn-slave-ship-magic .amazed-figure {
  position: absolute; bottom: 15%; left: 30%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: 50% 100%;
  animation: ssm-amaze 2s ease-in-out infinite;
}
.scn-slave-ship-magic .spirit-glow {
  position: absolute; bottom: 30%; left: 50%; width: 80px; height: 80px;
  background: radial-gradient(circle, rgba(200,200,255,.3) 0%, transparent 70%);
  border-radius: 50%;
  transform: translateX(-50%);
  animation: ssm-spirit 3s ease-in-out infinite alternate;
}
.scn-slave-ship-magic .woman-shadow {
  position: absolute; bottom: 20%; left: 60%; width: 16px; height: 38px;
  background: linear-gradient(180deg, #2a2a4a 0%, #0a0a2a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  opacity: .6;
  animation: ssm-woman 5s ease-in-out infinite;
}
.scn-slave-ship-magic .deck-magic {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 0 0 10% 10% / 0 0 5% 5%;
  box-shadow: inset 0 10px 20px rgba(0,0,0,.7);
}
@keyframes ssm-sky { 0% { opacity:.6 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes ssm-sail { 0% { transform: rotate(-5deg) scaleX(1) } 50% { transform: rotate(5deg) scaleX(1.05) } 100% { transform: rotate(-5deg) scaleX(1) } }
@keyframes ssm-rope { 0% { transform: rotate(0) } 25% { transform: rotate(90deg) } 50% { transform: rotate(180deg) } 75% { transform: rotate(270deg) } 100% { transform: rotate(360deg) } }
@keyframes ssm-amaze { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(3px) rotate(-3deg) } 50% { transform: translateX(0) rotate(0) } 75% { transform: translateX(-3px) rotate(3deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes ssm-spirit { 0% { opacity:.2; transform: translateX(-50%) scale(1) } 50% { opacity:.5; transform: translateX(-50%) scale(1.2) } 100% { opacity:.3; transform: translateX(-50%) scale(.9) } }
@keyframes ssm-woman { 0% { transform: translateY(0) } 25% { transform: translateY(-2px) } 50% { transform: translateY(0) } 75% { transform: translateY(-1px) } 100% { transform: translateY(0) } }

/* slave-ship-cargo */
.scn-slave-ship-cargo {
  background: 
    linear-gradient(180deg, #0a1a1a 0%, #1a2a2a 40%, #0a1a2a 100%),
    radial-gradient(ellipse at 40% 50%, #2a3a3a 0%, transparent 70%);
}
.scn-slave-ship-cargo .sea-cargo {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%);
  border-radius: 0 0 20% 20% / 0 0 10% 10%;
  animation: ssc-sea 8s ease-in-out infinite alternate;
}
.scn-slave-ship-cargo .ship-left {
  position: absolute; bottom: 30%; left: 10%; width: 60px; height: 50px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 0 0 20% 20% / 0 0 10% 10%;
  box-shadow: 2px -2px 6px rgba(0,0,0,.5);
  animation: ssc-ship-left 12s ease-in-out infinite;
}
.scn-slave-ship-cargo .ship-right-approaching {
  position: absolute; bottom: 28%; right: 15%; width: 70px; height: 55px;
  background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%);
  border-radius: 0 0 20% 20% / 0 0 10% 10%;
  box-shadow: -2px -2px 6px rgba(0,0,0,.5);
  animation: ssc-ship-right 15s ease-in-out infinite;
}
.scn-slave-ship-cargo .handshake-figures {
  position: absolute; bottom: 35%; left: 42%; width: 30px; height: 25px;
  display: flex; justify-content: space-between;
}
.scn-slave-ship-cargo .handshake-figures::before,
.scn-slave-ship-cargo .handshake-figures::after {
  content: ''; display: block; width: 12px; height: 25px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: 50% 100%;
}
.scn-slave-ship-cargo .handshake-figures::before {
  animation: ssc-hand-left 2s ease-in-out infinite;
}
.scn-slave-ship-cargo .handshake-figures::after {
  animation: ssc-hand-right 2s ease-in-out infinite;
}
.scn-slave-ship-cargo .captain-hat {
  position: absolute; bottom: 42%; left: 50%; width: 20px; height: 10px;
  background: #2a2a2a;
  border-radius: 50% 50% 0 0;
  transform: translateX(-50%);
  box-shadow: 0 2px 4px rgba(0,0,0,.5);
  animation: ssc-hat 4s ease-in-out infinite;
}
.scn-slave-ship-cargo .sail-cargo {
  position: absolute; bottom: 40%; left: 35%; width: 30px; height: 40px;
  background: linear-gradient(180deg, rgba(200,180,160,.5) 0%, rgba(200,180,160,.1) 100%);
  border-radius: 30% 20% 40% 20% / 40% 30% 40% 30%;
  animation: ssc-sailc 6s ease-in-out infinite alternate;
}
.scn-slave-ship-cargo .wave-cargo {
  position: absolute; bottom: 10%; left: 0; right: 0; height: 20%;
  background: repeating-linear-gradient(90deg, 
    transparent 0%, transparent 5%, 
    rgba(100,150,200,.3) 5%, rgba(100,150,200,.1) 10%);
  animation: ssc-wave 10s linear infinite;
}
.scn-slave-ship-cargo .anchor-chain {
  position: absolute; bottom: 20%; left: 20%; width: 4px; height: 30px;
  background: #3a2a1a;
  border-radius: 2px;
  animation: ssc-anchor 4s ease-in-out infinite alternate;
}
@keyframes ssc-sea { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes ssc-ship-left { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) } }
@keyframes ssc-ship-right { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) rotate(-1deg) } 100% { transform: translateY(0) } }
@keyframes ssc-hand-left { 0% { transform: rotate(0) } 25% { transform: rotate(10deg) } 50% { transform: rotate(0) } 75% { transform: rotate(-10deg) } 100% { transform: rotate(0) } }
@keyframes ssc-hand-right { 0% { transform: rotate(0) } 25% { transform: rotate(-10deg) } 50% { transform: rotate(0) } 75% { transform: rotate(10deg) } 100% { transform: rotate(0) } }
@keyframes ssc-hat { 0% { transform: translateX(-50%) rotate(0) } 25% { transform: translateX(-50%) rotate(5deg) } 50% { transform: translateX(-50%) rotate(0) } 75% { transform: translateX(-50%) rotate(-5deg) } 100% { transform: translateX(-50%) rotate(0) } }
@keyframes ssc-sailc { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.1) } 100% { transform: scaleX(1) } }
@keyframes ssc-wave { 0% { background-position: 0 0 } 100% { background-position: 200px 0 } }
@keyframes ssc-anchor { 0% { transform: translateY(0) } 50% { transform: translateY(-5px) } 100% { transform: translateY(0) } }

/* slave-ship-horrors */
.scn-slave-ship-horrors {
  background: 
    linear-gradient(180deg, #1a0a0a 0%, #0a0a0a 30%, #1a0a0a 100%),
    radial-gradient(ellipse at 50% 60%, #1a0a00 0%, transparent 70%);
}
.scn-slave-ship-horrors .hold-bg {
  position: absolute; inset: 0;
  background: 
    linear-gradient(180deg, #0a0a0a 0%, #1a0a0a 50%, #0a0a0a 100%),
    radial-gradient(ellipse at 50% 80%, #2a1a0a 0%, transparent 60%);
  animation: ssh-hold 8s ease-in-out infinite alternate;
}
.scn-slave-ship-horrors .chain-rail {
  position: absolute; top: 30%; left: 5%; right: 5%; height: 2%;
  background: repeating-linear-gradient(90deg, #5a4a3a 0%, #3a2a1a 5%, #5a4a3a 6%);
  border-radius: 2px;
  animation: ssh-chain 3s ease-in-out infinite alternate;
}
.scn-slave-ship-horrors .crouched-figure {
  position: absolute; bottom: 25%; left: 30%; width: 18px; height: 30px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform: rotate(15deg);
  animation: ssh-crouch 4s ease-in-out infinite;
}
.scn-slave-ship-horrors .tub-filth {
  position: absolute; bottom: 10%; left: 20%; width: 24px; height: 20px;
  background: #2a1a0a;
  border-radius: 0 0 30% 30% / 0 0 20% 20%;
  box-shadow: inset 0 4px 6px #0a0a0a;
  animation: ssh-tub 5s ease-in-out infinite;
}
.scn-slave-ship-horrors .heat-haze {
  position: absolute; top: 10%; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, rgba(100,50,20,.1) 0%, transparent 100%);
  animation: ssh-haze 6s ease-in-out infinite alternate;
}
.scn-slave-ship-horrors .shackle {
  position: absolute; bottom: 30%; left: 55%; width: 8px; height: 12px;
  background: #4a3a2a;
  border-radius: 4px;
  box-shadow: 0 0 2px #0a0a0a;
  animation: ssh-shackle 3s ease-in-out infinite;
}
.scn-slave-ship-horrors .groan-wave {
  position: absolute; bottom: 40%; left: 0; right: 0; height: 10%;
  background: repeating-linear-gradient(90deg, 
    transparent 0%, transparent 5%, 
    rgba(100,50,30,.15) 5%, rgba(100,50,30,.05) 10%);
  animation: ssh-groan 7s linear infinite;
}
.scn-slave-ship-horrors .sweat-drip {
  position: absolute; top: 20%; left: 50%; width: 2px; height: 10px;
  background: rgba(150,130,100,.3);
  border-radius: 50%;
  animation: ssh-drip 3s ease-in-out infinite;
}
@keyframes ssh-hold { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes ssh-chain { 0% { transform: translateY(0) } 25% { transform: translateY(1px) } 50% { transform: translateY(0) } 75% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes ssh-crouch { 0% { transform: rotate(15deg) translateY(0) } 20% { transform: rotate(10deg) translateY(-1px) } 40% { transform: rotate(20deg) translateY(1px) } 60% { transform: rotate(15deg) translateY(0) } 80% { transform: rotate(5deg) translateY(-1px) } 100% { transform: rotate(15deg) translateY(0) } }
@keyframes ssh-tub { 0% { transform: translateY(0) } 25% { transform: translateY(-2px) } 50% { transform: translateY(0) } 75% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes ssh-haze { 0% { opacity:.2 } 50% { opacity:.4 } 100% { opacity:.2 } }
@keyframes ssh-shackle { 0% { transform: rotate(0) } 25% { transform: rotate(10deg) } 50% { transform: rotate(0) } 75% { transform: rotate(-10deg) } 100% { transform: rotate(0) } }
@keyframes ssh-groan { 0% { background-position: 0 0 } 100% { background-position: 200px 0 } }
@keyframes ssh-drip { 0% { transform: translateY(0); opacity:0 } 10% { opacity:.6 } 90% { opacity:.6 } 100% { transform: translateY(20px); opacity:0 } }

.scn-hair-dressing-lessons {
  background: linear-gradient(180deg, #2a1a0a 0%, #4a2a1a 50%, #3a1a0a 100%), radial-gradient(ellipse at 50% 30%, #5a3a1a 0%, transparent 70%);
}
.scn-hair-dressing-lessons .bg { position:absolute; inset:0; background: linear-gradient(180deg, #1a0e06 0%, transparent 100%); animation: hdl-sky 12s ease-in-out infinite alternate; }
.scn-hair-dressing-lessons .desk { position:absolute; bottom:20%; left:20%; right:20%; height:10%; background: linear-gradient(180deg, #6a3a1a 0%, #3a1a0a 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: hdl-desk 9s ease-in-out infinite; }
.scn-hair-dressing-lessons .figure { position:absolute; bottom:24%; left:38%; 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: hdl-figure 4s ease-in-out infinite; }
.scn-hair-dressing-lessons .horn { position:absolute; bottom:28%; left:48%; width:50px; height:20px; background: linear-gradient(180deg, #c08040 0%, #a06020 100%); border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%; transform: rotate(-10deg); box-shadow: 0 2px 6px rgba(0,0,0,.3); animation: hdl-horn 6s ease-in-out infinite alternate; }
.scn-hair-dressing-lessons .book-a { position:absolute; bottom:22%; left:58%; width:18px; height:12px; background: linear-gradient(180deg, #7a5a2a 0%, #4a2a0a 100%); border-radius: 2px; transform: rotate(-5deg); box-shadow: 0 2px 4px rgba(0,0,0,.3); animation: hdl-book 10s ease-in-out infinite alternate; }
.scn-hair-dressing-lessons .book-b { position:absolute; bottom:21%; left:62%; width:14px; height:10px; background: linear-gradient(180deg, #5a3a1a 0%, #3a1a0a 100%); border-radius: 2px; transform: rotate(3deg); box-shadow: 0 2px 4px rgba(0,0,0,.3); animation: hdl-book 10s ease-in-out infinite alternate-reverse; }
.scn-hair-dressing-lessons .candle { position:absolute; bottom:26%; left:70%; width:4px; height:20px; background: linear-gradient(180deg, #e0c080 0%, #c08040 100%); border-radius: 2px; box-shadow: 0 0 8px 2px #d09050; animation: hdl-candle 3s ease-in-out infinite alternate; }
.scn-hair-dressing-lessons .glow { position:absolute; bottom:30%; left:68%; width:20px; height:20px; background: radial-gradient(circle, rgba(255,200,100,.6) 0%, transparent 80%); border-radius: 50%; filter: blur(4px); animation: hdl-glow 3s ease-in-out infinite alternate; }
@keyframes hdl-sky { 0% { opacity:.6 } 50% { opacity:.8 } 100% { opacity:.6 } }
@keyframes hdl-desk { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }
@keyframes hdl-figure { 0% { transform: translateX(0) translateY(0) rotate(-1deg) } 25% { transform: translateX(2px) translateY(-1px) rotate(1deg) } 50% { transform: translateX(4px) translateY(0) rotate(-1deg) } 75% { transform: translateX(6px) translateY(-1px) rotate(1deg) } 100% { transform: translateX(8px) translateY(0) rotate(0) } }
@keyframes hdl-horn { 0% { transform: rotate(-15deg) } 50% { transform: rotate(-5deg) } 100% { transform: rotate(-10deg) } }
@keyframes hdl-book { 0% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(-3deg) translateY(-1px) } 100% { transform: rotate(-5deg) translateY(0) } }
@keyframes hdl-candle { 0% { opacity:.7; box-shadow: 0 0 8px 2px #d09050 } 50% { opacity:1; box-shadow: 0 0 12px 4px #e0a060 } 100% { opacity:.8; box-shadow: 0 0 8px 2px #d09050 } }
@keyframes hdl-glow { 0% { transform: scale(.9); opacity:.5 } 50% { transform: scale(1.1); opacity:.8 } 100% { transform: scale(1); opacity:.6 } }

.scn-leaving-irving {
  background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 50%, #1a1a2a 100%), radial-gradient(ellipse at 50% 80%, #2a2a3a 0%, transparent 70%);
}
.scn-leaving-irving .bg { position:absolute; inset:0; background: linear-gradient(180deg, #0e0e1a 0%, transparent 100%); animation: lir-bg 15s ease-in-out infinite alternate; }
.scn-leaving-irving .door { position:absolute; bottom:15%; left:50%; width:50px; height:90px; transform:translateX(-50%); background: linear-gradient(180deg, #4a3a1a 0%, #2a1a0a 100%); border-radius: 4px 4px 0 0; box-shadow: 0 6px 12px rgba(0,0,0,.5); animation: lir-door 8s ease-in-out infinite alternate; }
.scn-leaving-irving .figure { position:absolute; bottom:18%; left:42%; width:18px; height:36px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lir-figure 6s ease-in-out infinite; }
.scn-leaving-irving .hat { position:absolute; bottom:38%; left:43%; width:12px; height:6px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 0 0; transform: rotate(-5deg); animation: lir-hat 4s ease-in-out infinite alternate; }
.scn-leaving-irving .trunk { position:absolute; bottom:10%; left:35%; width:30px; height:20px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.4); animation: lir-trunk 12s ease-in-out infinite alternate; }
.scn-leaving-irving .window { position:absolute; bottom:50%; left:60%; width:24px; height:30px; background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%); border-radius: 4px; box-shadow: inset 0 0 6px rgba(255,255,255,.1); animation: lir-window 10s ease-in-out infinite alternate; }
.scn-leaving-irving .light { position:absolute; bottom:50%; left:60%; width:20px; height:26px; background: radial-gradient(circle, rgba(200,180,160,.3) 0%, transparent 80%); border-radius: 4px; filter: blur(2px); animation: lir-light 10s ease-in-out infinite alternate; }
@keyframes lir-bg { 0% { opacity:.5 } 50% { opacity:.7 } 100% { opacity:.5 } }
@keyframes lir-door { 0% { transform: translateX(-50%) rotateY(0) } 50% { transform: translateX(-50%) rotateY(8deg) } 100% { transform: translateX(-50%) rotateY(0) } }
@keyframes lir-figure { 0% { transform: translateX(0) translateY(0) rotate(0) } 25% { transform: translateX(4px) translateY(-1px) rotate(1deg) } 50% { transform: translateX(8px) translateY(0) rotate(0) } 75% { transform: translateX(12px) translateY(-1px) rotate(1deg) } 100% { transform: translateX(16px) translateY(0) rotate(0) } }
@keyframes lir-hat { 0% { transform: rotate(-5deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(-5deg) } }
@keyframes lir-trunk { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes lir-window { 0% { opacity:.6 } 50% { opacity:.8 } 100% { opacity:.6 } }
@keyframes lir-light { 0% { transform: scale(.9); opacity:.4 } 50% { transform: scale(1.1); opacity:.7 } 100% { transform: scale(1); opacity:.5 } }

.scn-delawar-ship {
  background: linear-gradient(180deg, #87CEEB 0%, #f0d080 40%, #c09040 100%), radial-gradient(ellipse at 50% 20%, #fff4e0 0%, transparent 60%);
}
.scn-delawar-ship .bg-sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #b0d8f0 0%, #f0e0c0 100%); animation: dsh-sky 20s ease-in-out infinite alternate; }
.scn-delawar-ship .bg-sea { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #2a5a6a 0%, #1a3a4a 100%); border-radius: 0 0 20% 20%; box-shadow: inset 0 8px 20px rgba(0,0,0,.3); animation: dsh-sea 15s ease-in-out infinite alternate; }
.scn-delawar-ship .ship-hull { position:absolute; bottom:28%; left:40%; width:80px; height:30px; background: linear-gradient(180deg, #6a3a1a 0%, #3a1a0a 100%); border-radius: 20% 20% 40% 40%; box-shadow: 0 6px 12px rgba(0,0,0,.5); animation: dsh-hull 8s ease-in-out infinite; }
.scn-delawar-ship .sail-fore { position:absolute; bottom:42%; left:42%; width:10px; height:30px; background: linear-gradient(180deg, #f0e0c0 0%, #c0b090 100%); border-radius: 30% 30% 10% 10%; transform: rotate(5deg); box-shadow: 0 2px 6px rgba(0,0,0,.2); animation: dsh-sail 6s ease-in-out infinite alternate; }
.scn-delawar-ship .sail-aft { position:absolute; bottom:40%; left:52%; width:8px; height:26px; background: linear-gradient(180deg, #e0d0b0 0%, #b0a080 100%); border-radius: 30% 30% 10% 10%; transform: rotate(-5deg); box-shadow: 0 2px 6px rgba(0,0,0,.2); animation: dsh-sail 6s ease-in-out infinite alternate-reverse; }
.scn-delawar-ship .sun { position:absolute; top:15%; left:30%; width:40px; height:40px; background: radial-gradient(circle, #fff4e0 0%, #f0d080 60%, transparent 100%); border-radius: 50%; box-shadow: 0 0 40px 10px rgba(240,208,128,.5); animation: dsh-sun 4s ease-in-out infinite alternate; }
.scn-delawar-ship .wave-1 { position:absolute; bottom:20%; left:0; right:0; height:12px; background: linear-gradient(90deg, transparent 0%, #3a7a8a 20%, #2a5a6a 50%, #3a7a8a 80%, transparent 100%); border-radius: 50%; filter: blur(3px); animation: dsh-wave1 8s linear infinite; }
.scn-delawar-ship .wave-2 { position:absolute; bottom:30%; left:0; right:0; height:8px; background: linear-gradient(90deg, transparent 0%, #2a6a7a 20%, #1a4a5a 50%, #2a6a7a 80%, transparent 100%); border-radius: 50%; filter: blur(2px); animation: dsh-wave2 10s linear infinite; }
.scn-delawar-ship .cloud { position:absolute; top:20%; left:10%; width:50px; height:12px; background: linear-gradient(180deg, rgba(255,255,255,.6) 0%, rgba(255,255,255,.1) 100%); border-radius: 50%; filter: blur(6px); animation: dsh-cloud 45s linear infinite; }
@keyframes dsh-sky { 0% { background-position: 0% 0% } 50% { background-position: 10% 0% } 100% { background-position: 0% 0% } }
@keyframes dsh-sea { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes dsh-hull { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(2px) rotate(1deg) } 50% { transform: translateX(0) rotate(0) } 75% { transform: translateX(-2px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes dsh-sail { 0% { transform: rotate(5deg) scaleY(1) } 50% { transform: rotate(8deg) scaleY(1.05) } 100% { transform: rotate(5deg) scaleY(1) } }
@keyframes dsh-sun { 0% { transform: scale(1); opacity:.8 } 50% { transform: scale(1.1); opacity:1 } 100% { transform: scale(1); opacity:.9 } }
@keyframes dsh-wave1 { 0% { transform: translateX(-100%) } 100% { transform: translateX(200%) } }
@keyframes dsh-wave2 { 0% { transform: translateX(0) } 100% { transform: translateX(-150%) } }
@keyframes dsh-cloud { 0% { transform: translateX(-60px) } 100% { transform: translateX(120vw) } }

.scn-italy-wines {
  background: linear-gradient(180deg, #d0a050 0%, #c08030 50%, #a06020 100%), radial-gradient(ellipse at 70% 40%, #e0c060 0%, transparent 60%);
}
.scn-italy-wines .bg { position:absolute; inset:0; background: linear-gradient(180deg, #c09040 0%, #8a6a30 100%); animation: itw-bg 18s ease-in-out infinite alternate; }
.scn-italy-wines .table { position:absolute; bottom:15%; left:20%; right:20%; height:12%; background: linear-gradient(180deg, #6a4a2a 0%, #4a2a0a 100%); border-radius: 8px; box-shadow: 0 6px 12px rgba(0,0,0,.4); animation: itw-table 12s ease-in-out infinite; }
.scn-italy-wines .bottle { position:absolute; bottom:20%; left:38%; width:10px; height:40px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 30% 30% 0 0; box-shadow: 0 4px 8px rgba(0,0,0,.3); animation: itw-bottle 5s ease-in-out infinite alternate; }
.scn-italy-wines .glass { position:absolute; bottom:22%; left:45%; width:12px; height:18px; background: linear-gradient(180deg, rgba(255,255,255,.4) 0%, rgba(255,255,255,.1) 100%); border-radius: 0 0 30% 30%; box-shadow: inset 0 0 6px rgba(255,255,255,.2); animation: itw-glass 7s ease-in-out infinite alternate; }
.scn-italy-wines .fruit-bowl { position:absolute; bottom:20%; left:52%; width:30px; height:20px; background: linear-gradient(180deg, #8a5a2a 0%, #6a3a0a 100%); border-radius: 50% 50% 30% 30%; box-shadow: 0 4px 8px rgba(0,0,0,.4); animation: itw-bowl 9s ease-in-out infinite; }
.scn-italy-wines .wine-splash { position:absolute; bottom:28%; left:42%; width:6px; height:10px; background: radial-gradient(circle, #c03030 0%, #8a2020 100%); border-radius: 50%; box-shadow: 0 0 8px 2px rgba(192,48,48,.4); animation: itw-splash 4s ease-in-out infinite alternate; }
.scn-italy-wines .hill { position:absolute; top:10%; left:0; right:0; height:30%; background: linear-gradient(180deg, #6a8a3a 0%, #4a6a2a 100%); border-radius: 0 0 60% 40%; box-shadow: inset 0 8px 20px rgba(0,0,0,.3); animation: itw-hill 20s ease-in-out infinite alternate; }
.scn-italy-wines .sun { position:absolute; top:8%; right:15%; width:30px; height:30px; background: radial-gradient(circle, #fff4c0 0%, #f0d060 60%, transparent 100%); border-radius: 50%; box-shadow: 0 0 30px 8px rgba(240,208,96,.6); animation: itw-sun 6s ease-in-out infinite alternate; }
@keyframes itw-bg { 0% { opacity:.7 } 50% { opacity:.9 } 100% { opacity:.7 } }
@keyframes itw-table { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }
@keyframes itw-bottle { 0% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-2deg) } }
@keyframes itw-glass { 0% { opacity:.5; transform: scaleY(1) } 50% { opacity:.8; transform: scaleY(1.02) } 100% { opacity:.6; transform: scaleY(1) } }
@keyframes itw-bowl { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(2px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes itw-splash { 0% { transform: scale(1); opacity:.6 } 50% { transform: scale(1.3); opacity:1 } 100% { transform: scale(1); opacity:.7 } }
@keyframes itw-hill { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes itw-sun { 0% { transform: scale(1); opacity:.8 } 50% { transform: scale(1.15); opacity:1 } 100% { transform: scale(1); opacity:.9 } }

.scn-key-reunion { background: linear-gradient(180deg, #f7d794 0%, #f5b76e 40%, #e68a4d 100%), radial-gradient(ellipse at 30% 100%, #f5b76e 0%, transparent 70%); }
.scn-key-reunion .sky { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #fce4b8 0%, #f7d794 100%); animation: reunion-sky 14s ease-in-out infinite alternate; }
.scn-key-reunion .sun { position:absolute; top:12%; left:60%; width:50px; height:50px; background: radial-gradient(circle, #fff5c0 0%, #f7d794 50%, transparent 70%); border-radius:50%; box-shadow: 0 0 60px 20px #ffeb99, 0 0 120px 40px #f7d79444; animation: reunion-sun 20s ease-in-out infinite alternate; }
.scn-key-reunion .ocean { position:absolute; bottom:25%; left:0; right:0; height:45%; background: linear-gradient(180deg, #3b9fbb 0%, #1b6f8b 100%); border-radius: 50% 70% 0 0 / 60% 80% 0 0; animation: reunion-ocean 8s ease-in-out infinite alternate; }
.scn-key-reunion .beach { position:absolute; bottom:0; left:0; right:0; height:28%; background: linear-gradient(180deg, #e8c884 0%, #c9a468 30%, #a8834e 100%); border-radius: 30% 40% 0 0 / 50% 40% 0 0; box-shadow: inset 0 6px 15px rgba(0,0,0,.2); }
.scn-key-reunion .ship { position:absolute; bottom:37%; left:38%; width:80px; height:40px; background: linear-gradient(180deg, #5a3d2b 0%, #3a271a 100%); border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%; box-shadow: 0 4px 8px rgba(0,0,0,.4); animation: reunion-ship 6s ease-in-out infinite; }
.scn-key-reunion .figure1 { position:absolute; bottom:30%; left:52%; width:18px; height:40px; background: linear-gradient(180deg, #4a3528 0%, #2a1a10 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: reunion-figure1 4s ease-in-out infinite; }
.scn-key-reunion .figure2 { position:absolute; bottom:30%; left:56%; width:14px; height:36px; background: linear-gradient(180deg, #3a2a1e 0%, #1a0e06 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: reunion-figure2 4.5s ease-in-out infinite; }
.scn-key-reunion .palm1 { position:absolute; bottom:18%; left:10%; width:40px; height:60px; background: linear-gradient(180deg, #5a7a3a 0%, #3a5a22 100%); border-radius: 20% 80% 60% 40% / 30% 70% 40% 60%; transform: rotate(-5deg); animation: reunion-palm 25s ease-in-out infinite alternate; }
.scn-key-reunion .palm2 { position:absolute; bottom:20%; right:12%; width:35px; height:55px; background: linear-gradient(180deg, #4a6a2a 0%, #2a4a16 100%); border-radius: 20% 80% 60% 40% / 30% 70% 40% 60%; transform: rotate(8deg); animation: reunion-palm 20s ease-in-out infinite alternate-reverse; }
@keyframes reunion-sky { 0% { opacity: .8; } 50% { opacity: 1; } 100% { opacity: .85; } }
@keyframes reunion-sun { 0% { transform: translateX(-5px) scale(1); } 50% { transform: translateX(0) scale(1.02); } 100% { transform: translateX(3px) scale(.98); } }
@keyframes reunion-ocean { 0% { transform: translateX(-10px); } 50% { transform: translateX(5px); } 100% { transform: translateX(-5px); } }
@keyframes reunion-ship { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-4px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes reunion-figure1 { 0% { transform: translateX(0) rotate(-2deg); } 30% { transform: translateX(4px) rotate(1deg); } 60% { transform: translateX(8px) rotate(-1deg); } 100% { transform: translateX(12px) rotate(0); } }
@keyframes reunion-figure2 { 0% { transform: translateX(0) translateY(0) rotate(2deg); } 50% { transform: translateX(6px) translateY(-2px) rotate(-1deg); } 100% { transform: translateX(10px) translateY(0) rotate(0); } }
@keyframes reunion-palm { 0% { transform: rotate(-8deg) scale(1); } 50% { transform: rotate(0deg) scale(1.02); } 100% { transform: rotate(8deg) scale(1); } }

.scn-to-new-providence { background: linear-gradient(180deg, #aad4f5 0%, #6faedb 40%, #3b7aab 100%), radial-gradient(ellipse at 70% 20%, #ffffff44 0%, transparent 60%); }
.scn-to-new-providence .sky-bg { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #c1e3ff 0%, #8fc9f5 100%); animation: providence-sky 20s ease-in-out infinite alternate; }
.scn-to-new-providence .sun-glow { position:absolute; top:8%; left:50%; width:60px; height:60px; background: radial-gradient(circle, #fffbe0 0%, #ffe680 50%, transparent 70%); border-radius:50%; box-shadow: 0 0 50px 15px #ffe68088, 0 0 100px 30px #ffe68044; animation: providence-sun 25s ease-in-out infinite alternate; }
.scn-to-new-providence .sea { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #3e8fb5 0%, #1e5a7a 40%, #0a3a5a 100%); border-radius: 40% 60% 0 0 / 50% 70% 0 0; animation: providence-sea 10s ease-in-out infinite alternate; }
.scn-to-new-providence .ship-hull { position:absolute; bottom:32%; left:25%; width:90px; height:35px; background: linear-gradient(180deg, #5a3d2b 0%, #3a271a 100%); border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%; box-shadow: 0 3px 6px rgba(0,0,0,.3); animation: providence-hull 8s ease-in-out infinite; }
.scn-to-new-providence .sail-main { position:absolute; bottom:40%; left:32%; width:10px; height:50px; background: linear-gradient(180deg, #f0e6d0 0%, #d4c4a8 100%); border-radius: 20% 20% 10% 10%; transform: rotate(-5deg); box-shadow: 0 0 6px rgba(255,255,255,.2); animation: providence-sail 12s ease-in-out infinite alternate; }
.scn-to-new-providence .sail-jib { position:absolute; bottom:38%; left:24%; width:8px; height:30px; background: linear-gradient(180deg, #f0e6d0 0%, #d4c4a8 100%); border-radius: 20% 20% 10% 10%; transform: rotate(10deg); box-shadow: 0 0 4px rgba(255,255,255,.2); animation: providence-sail2 10s ease-in-out infinite alternate; }
.scn-to-new-providence .island { position:absolute; bottom:18%; right:15%; width:60px; height:40px; background: linear-gradient(180deg, #6a8a4a 0%, #3a5a22 100%); border-radius: 40% 60% 20% 20% / 50% 60% 30% 30%; box-shadow: inset 0 -8px 12px rgba(0,0,0,.3); animation: providence-island 16s ease-in-out infinite alternate; }
.scn-to-new-providence .cloud1 { position:absolute; top:12%; left:10%; width:80px; height:20px; background: linear-gradient(180deg, rgba(255,255,255,.5) 0%, rgba(255,255,255,.1) 100%); border-radius:50%; filter: blur(5px); animation: providence-cloud1 40s linear infinite; }
.scn-to-new-providence .cloud2 { position:absolute; top:20%; right:8%; width:60px; height:15px; background: linear-gradient(180deg, rgba(255,255,255,.4) 0%, rgba(255,255,255,.08) 100%); border-radius:50%; filter: blur(4px); animation: providence-cloud2 50s linear infinite reverse; }
@keyframes providence-sky { 0% { opacity: .9; } 50% { opacity: 1; } 100% { opacity: .85; } }
@keyframes providence-sun { 0% { transform: translateX(-8px) scale(1); } 50% { transform: translateX(0) scale(1.03); } 100% { transform: translateX(5px) scale(.97); } }
@keyframes providence-sea { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes providence-hull { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes providence-sail { 0% { transform: rotate(-8deg) scaleY(1); } 50% { transform: rotate(-3deg) scaleY(1.02); } 100% { transform: rotate(-8deg) scaleY(1); } }
@keyframes providence-sail2 { 0% { transform: rotate(12deg) scaleY(1); } 50% { transform: rotate(7deg) scaleY(1.03); } 100% { transform: rotate(12deg) scaleY(1); } }
@keyframes providence-island { 0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.02) translateY(-2px); } 100% { transform: scaleY(1) translateY(0); } }
@keyframes providence-cloud1 { 0% { transform: translateX(-50px); } 100% { transform: translateX(120vw); } }
@keyframes providence-cloud2 { 0% { transform: translateX(0); } 100% { transform: translateX(-120vw); } }

.scn-gale-at-sea { background: linear-gradient(180deg, #1a1a3a 0%, #2c2244 30%, #3a2a5a 70%, #1a1a2a 100%), radial-gradient(ellipse at 50% 100%, #2c2244 0%, transparent 70%); }
.scn-gale-at-sea .storm-sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #2a2a4a 0%, #1a1a3a 50%, #0a0a1a 100%); animation: gale-sky 8s ease-in-out infinite alternate; }
.scn-gale-at-sea .storm-sea { position:absolute; bottom:0; left:0; right:0; height:60%; background: linear-gradient(180deg, #1e2a3a 0%, #101a2a 50%, #0a121a 100%); border-radius: 30% 70% 0 0 / 40% 80% 0 0; animation: gale-sea 5s ease-in-out infinite alternate; }
.scn-gale-at-sea .ship-broken { position:absolute; bottom:25%; left:30%; width:80px; height:30px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e06 100%); border-radius: 10% 20% 10% 10% / 30% 40% 20% 20%; transform: rotate(-8deg); box-shadow: 0 4px 8px rgba(0,0,0,.6); animation: gale-ship 3s ease-in-out infinite; }
.scn-gale-at-sea .mast-fallen { position:absolute; bottom:25%; left:36%; width:6px; height:40px; background: linear-gradient(180deg, #5a3d2b 0%, #2a1a10 100%); border-radius: 20%; transform: rotate(70deg); transform-origin: bottom center; animation: gale-mast 6s ease-in-out infinite alternate; }
.scn-gale-at-sea .wave-high { position:absolute; bottom:35%; left:0; width:100%; height:40px; background: linear-gradient(180deg, #2a5a6a 0%, #1a3a4a 100%); border-radius: 60% 40% 0 0 / 80% 60% 0 0; filter: blur(3px); animation: gale-wave1 3s ease-in-out infinite alternate; }
.scn-gale-at-sea .wave-low { position:absolute; bottom:20%; left:0; width:100%; height:30px; background: linear-gradient(180deg, #1e4a5a 0%, #102a3a 100%); border-radius: 30% 70% 0 0 / 50% 80% 0 0; filter: blur(2px); animation: gale-wave2 4s ease-in-out infinite alternate-reverse; }
.scn-gale-at-sea .rain-sheet { position:absolute; inset:0; background: repeating-linear-gradient(45deg, rgba(255,255,255,.03) 0px, rgba(255,255,255,.03) 2px, transparent 2px, transparent 8px); pointer-events:none; animation: gale-rain 0.8s linear infinite; }
.scn-gale-at-sea .foam { position:absolute; bottom:28%; left:10%; width:40px; height:8px; background: rgba(255,255,255,.2); border-radius:50%; filter: blur(3px); animation: gale-foam 2s ease-in-out infinite; }
@keyframes gale-sky { 0% { opacity: .7; } 50% { opacity: .9; } 100% { opacity: .6; } }
@keyframes gale-sea { 0% { transform: translateX(-5px) translateY(0); } 50% { transform: translateX(3px) translateY(-4px); } 100% { transform: translateX(-5px) translateY(0); } }
@keyframes gale-ship { 0% { transform: rotate(-12deg) translateX(0); } 50% { transform: rotate(2deg) translateX(5px); } 100% { transform: rotate(-12deg) translateX(0); } }
@keyframes gale-mast { 0% { transform: rotate(60deg) scaleY(1); } 50% { transform: rotate(80deg) scaleY(1.05); } 100% { transform: rotate(60deg) scaleY(1); } }
@keyframes gale-wave1 { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-8px) scaleX(1.1); } 100% { transform: translateY(0) scaleX(1); } }
@keyframes gale-wave2 { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(5px) scaleX(.95); } 100% { transform: translateY(0) scaleX(1); } }
@keyframes gale-rain { 0% { background-position: 0 0; } 100% { background-position: 10px 10px; } }
@keyframes gale-foam { 0% { opacity: .1; transform: scale(.5); } 50% { opacity: .4; transform: scale(1.2); } 100% { opacity: .1; transform: scale(.5); } }

.scn-swimmers-to-buoy { background: linear-gradient(180deg, #0a0a1a 0%, #101a2a 40%, #0e1424 80%, #060c14 100%), radial-gradient(ellipse at 50% 100%, #101a2a 0%, transparent 70%); }
.scn-swimmers-to-buoy .night-sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #0a0a1a 0%, #14142a 40%, #1a1a2e 100%); animation: buoy-sky 18s ease-in-out infinite alternate; }
.scn-swimmers-to-buoy .night-sea { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #0a1420 0%, #060e18 50%, #02060c 100%); border-radius: 30% 70% 0 0 / 40% 80% 0 0; animation: buoy-sea 7s ease-in-out infinite alternate; }
.scn-swimmers-to-buoy .punt { position:absolute; bottom:30%; left:35%; width:50px; height:10px; background: linear-gradient(180deg, #2a1a0e 0%, #1a0e06 100%); border-radius: 20% 20% 10% 10% / 50% 50% 20% 20%; transform: rotate(-3deg); box-shadow: 0 2px 4px rgba(0,0,0,.5); animation: buoy-punt 3s ease-in-out infinite; }
.scn-swimmers-to-buoy .swimmer1 { position:absolute; bottom:30%; left:37%; width:12px; height:20px; background: linear-gradient(180deg, #2a1a0e 0%, #0e0602 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: buoy-swim1 2s ease-in-out infinite; }
.scn-swimmers-to-buoy .swimmer2 { position:absolute; bottom:30%; left:39%; width:10px; height:18px; background: linear-gradient(180deg, #2a1a0e 0%, #0e0602 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: buoy-swim2 2.5s ease-in-out infinite; }
.scn-swimmers-to-buoy .buoy { position:absolute; bottom:35%; left:55%; width:20px; height:20px; background: radial-gradient(circle, #5a3a2a 0%, #2a1a0e 100%); border-radius: 50%; box-shadow: 0 0 10px 2px rgba(255,200,100,.2); animation: buoy-bob 4s ease-in-out infinite; }
.scn-swimmers-to-buoy .buoy-light { position:absolute; bottom:36%; left:55%; width:6px; height:6px; background: radial-gradient(circle, #ffd080 0%, transparent 70%); border-radius:50%; box-shadow: 0 0 20px 8px #ffc04088; animation: buoy-lightpulse 1.5s ease-in-out infinite alternate; }
.scn-swimmers-to-buoy .star1 { position:absolute; top:10%; left:20%; width:3px; height:3px; background: #fff; border-radius:50%; animation: buoy-twinkle 4s ease-in-out infinite; }
.scn-swimmers-to-buoy .star2 { position:absolute; top:25%; right:30%; width:2px; height:2px; background: #fff; border-radius:50%; animation: buoy-twinkle 3s ease-in-out infinite 1s; }
@keyframes buoy-sky { 0% { opacity: .7; } 50% { opacity: .9; } 100% { opacity: .75; } }
@keyframes buoy-sea { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes buoy-punt { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(3deg) translateY(-2px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes buoy-swim1 { 0% { transform: translateY(0) rotate(-3deg); } 50% { transform: translateY(-4px) rotate(3deg); } 100% { transform: translateY(0) rotate(-3deg); } }
@keyframes buoy-swim2 { 0% { transform: translateY(0) rotate(2deg); } 50% { transform: translateY(-3px) rotate(-2deg); } 100% { transform: translateY(0) rotate(2deg); } }
@keyframes buoy-bob { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-5px) scale(1.02); } 100% { transform: translateY(0) scale(1); } }
@keyframes buoy-lightpulse { 0% { opacity: .5; box-shadow: 0 0 15px 5px #ffc04044; } 100% { opacity: 1; box-shadow: 0 0 25px 10px #ffc040aa; } }
@keyframes buoy-twinkle { 0% { opacity: .2; } 50% { opacity: 1; } 100% { opacity: .2; } }

.scn-shark-incident { background: linear-gradient(180deg, #87CEEB 0%, #FFF0C0 60%), radial-gradient(ellipse at 50% 100%, #E0A060 0%, transparent 50%); }
.scn-shark-incident .sky    { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #B0D4F0 0%, #FFF2D6 100%); animation: shk-sky 10s ease-in-out infinite; }
.scn-shark-incident .sea    { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #2E6B9C 0%, #1A3E5C 100%); animation: shk-sea 4s ease-in-out infinite alternate; }
.scn-shark-incident .ship-hull { position:absolute; bottom:46%; left:35%; width:30%; height:14%; background: linear-gradient(180deg, #6B4A3A 0%, #3F2A1C 100%); border-radius: 20% 20% 40% 40% / 30% 30% 60% 60%; transform-origin: center 100%; animation: shk-roll 6s ease-in-out infinite; }
.scn-shark-incident .captain{ position:absolute; bottom:50%; left:48%; width:16px; height:40px; background: linear-gradient(180deg, #2C2C2C 0%, #1A1A1A 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: shk-captain 2s ease-in-out infinite; }
.scn-shark-incident .shark  { position:absolute; bottom:48%; left:58%; width:50px; height:12px; background: linear-gradient(180deg, #4A4A4A 0%, #2E2E2E 100%); border-radius: 50% 50% 40% 40% / 80% 80% 20% 20%; transform: rotate(-10deg); animation: shk-shark 1.5s ease-in-out infinite alternate; }
.scn-shark-incident .knife  { position:absolute; bottom:52%; left:52%; width:4px; height:16px; background: radial-gradient(circle, #FFFFFF 0%, #C0C0C0 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 8px 2px rgba(255,255,255,0.8); animation: shk-gleam 0.8s ease-in-out infinite alternate; }
@keyframes shk-sky    { 0%,100% { opacity:0.9 } 50% { opacity:1 } }
@keyframes shk-sea    { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(2px) } }
@keyframes shk-roll   { 0%,100% { transform: rotate(0deg) } 50% { transform: rotate(2deg) } }
@keyframes shk-captain{ 0%,100% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(-2px) rotate(-3deg) } 75% { transform: translateX(2px) rotate(3deg) } }
@keyframes shk-shark  { 0% { transform: rotate(-12deg) translateY(0) } 50% { transform: rotate(-8deg) translateY(-2px) } 100% { transform: rotate(-14deg) translateY(1px) } }
@keyframes shk-gleam  { 0% { opacity:0.3 } 50% { opacity:1 } 100% { opacity:0.6 } }

.scn-sea-fears { background: linear-gradient(180deg, #8A9BA8 0%, #6B7B8D 50%), radial-gradient(ellipse at 50% 60%, #717D8A 0%, transparent 70%); }
.scn-sea-fears .sky      { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #A3B3C0 0%, #8595A5 100%); animation: sfr-sky 8s ease-in-out infinite alternate; }
.scn-sea-fears .sea      { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #4B5E6C 0%, #2E3B45 100%); animation: sfr-sea 5s ease-in-out infinite; }
.scn-sea-fears .deck     { position:absolute; bottom:42%; left:20%; width:60%; height:10%; background: linear-gradient(180deg, #5C4033 0%, #3F2A1F 100%); border-radius: 10% 10% 20% 20%; }
.scn-sea-fears .barrel   { position:absolute; bottom:44%; left:30%; width:20px; height:25px; background: linear-gradient(180deg, #6B4226 0%, #4A2B17 100%); border-radius: 30% 30% 40% 40%; box-shadow: inset 0 -4px 0 #3F2A1F; animation: sfr-barrel 7s ease-in-out infinite; }
.scn-sea-fears .equiano-hide { position:absolute; bottom:44%; left:32%; width:14px; height:30px; background: linear-gradient(180deg, #1A1A2A 0%, #0A0A1A 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sfr-crouch 3s ease-in-out infinite; }
.scn-sea-fears .grampus  { position:absolute; bottom:38%; left:55%; width:60px; height:20px; background: linear-gradient(180deg, #2E3A4B 0%, #1C2532 100%); border-radius: 50% 50% 30% 30% / 70% 70% 40% 40%; transform: translateY(20px); animation: sfr-grampus 10s ease-in-out infinite alternate; }
.scn-sea-fears .overboard{ position:absolute; bottom:45%; left:75%; width:8px; height:20px; background: linear-gradient(180deg, #3A4A5A 0%, #1A2A3A 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; animation: sfr-fall 4s ease-in-out infinite; }
@keyframes sfr-sky      { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes sfr-sea      { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-5px) } }
@keyframes sfr-barrel   { 0%,100% { transform: rotate(0) } 25% { transform: rotate(2deg) } 75% { transform: rotate(-2deg) } }
@keyframes sfr-crouch   { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(0.9) } }
@keyframes sfr-grampus  { 0% { transform: translateY(20px) scale(1) } 50% { transform: translateY(15px) scale(1.05) } 100% { transform: translateY(20px) scale(1) } }
@keyframes sfr-fall     { 0%,100% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-5px) rotate(5deg) } 75% { transform: translateY(2px) rotate(-5deg) } }

.scn-falmouth-arrival { background: linear-gradient(180deg, #E8D5B7 0%, #D1B894 50%), radial-gradient(ellipse at 50% 100%, #BFA780 0%, transparent 60%); }
.scn-falmouth-arrival .sky { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #EDE0CE 0%, #D4C2A6 100%); animation: far-sky 12s ease-in-out infinite; }
.scn-falmouth-arrival .ground-snow { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #F0EDE8 0%, #E2DCD0 100%); border-radius: 10% 10% 0 0 / 20% 20% 0 0; filter: blur(2px); }
.scn-falmouth-arrival .building-a { position:absolute; bottom:30%; left:25%; width:50px; height:80px; background: linear-gradient(180deg, #9C8A7C 0%, #7A685A 100%); border-radius: 4% 4% 0 0; box-shadow: 2px 0 6px rgba(0,0,0,0.2); animation: far-build 20s ease-in-out infinite; }
.scn-falmouth-arrival .building-b { position:absolute; bottom:30%; left:45%; width:40px; height:60px; background: linear-gradient(180deg, #B2A292 0%, #8F7F6F 100%); border-radius: 4% 4% 0 0; box-shadow: 2px 0 6px rgba(0,0,0,0.2); animation: far-build 22s ease-in-out infinite reverse; }
.scn-falmouth-arrival .equiano-fig { position:absolute; bottom:24%; left:36%; width:14px; height:32px; background: linear-gradient(180deg, #4A3C2C 0%, #2E2218 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: far-figure 6s ease-in-out infinite; }
.scn-falmouth-arrival .mate  { position:absolute; bottom:26%; left:40%; width:16px; height:34px; background: linear-gradient(180deg, #5C4A3A 0%, #3A2A1A 100%); border-radius: 50% 50% 35% 35% / 55% 55% 45% 45%; transform-origin: bottom center; animation: far-figure 6.5s ease-in-out infinite; }
.scn-falmouth-arrival .pavement { position:absolute; bottom:22%; left:20%; width:60%; height:4px; background: repeating-linear-gradient(90deg, #8C7A6C 0px, #8C7A6C 6px, #B0A090 6px, #B0A090 12px); transformation: scaleX(1.1); }
@keyframes far-sky   { 0%,100% { opacity:0.85 } 50% { opacity:1 } }
@keyframes far-build { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes far-figure{ 0%,100% { transform: translateX(0) } 25% { transform: translateX(3px) rotate(2deg) } 75% { transform: translateX(-2px) rotate(-1deg) } }

.scn-learning-god { background: linear-gradient(180deg, #3A2A1A 0%, #2A1A0A 60%), radial-gradient(ellipse at 50% 30%, #5A3A2A 0%, transparent 70%); }
.scn-learning-god .wall      { position:absolute; inset:0; background: linear-gradient(180deg, #4A3A2A 0%, #2A1A10 100%); }
.scn-learning-god .window-lit{ position:absolute; top:12%; left:38%; width:24%; height:30%; background: radial-gradient(circle, #E0C080 0%, #C8A860 70%, #A08050 100%); border-radius: 10% 10% 0 0; box-shadow: 0 0 40px 20px rgba(200,168,96,0.5); animation: lgn-window 8s ease-in-out infinite alternate; }
.scn-learning-god .pew       { position:absolute; bottom:20%; left:30%; width:40%; height:8%; background: linear-gradient(180deg, #4B3626 0%, #2D1C0E 100%); border-radius: 10% 10% 20% 20%; box-shadow: inset 0 -2px 0 #1A0E06; }
.scn-learning-god .dick      { position:absolute; bottom:22%; left:42%; width:14px; height:34px; background: linear-gradient(180deg, #1A1010 0%, #0A0606 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lgn-figure 10s ease-in-out infinite; }
.scn-learning-god .equiano-kneel { position:absolute; bottom:20%; left:50%; width:14px; height:30px; background: linear-gradient(180deg, #1A1010 0%, #0A0606 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lgn-figure 10.5s ease-in-out infinite; }
.scn-learning-god .light-beam{ position:absolute; top:12%; left:38%; width:24%; height:50%; background: linear-gradient(180deg, rgba(224,192,128,0.3) 0%, rgba(224,192,128,0.05) 100%); filter: blur(8px); transform-origin: top center; animation: lgn-beam 6s ease-in-out infinite; }
.scn-learning-god .cross     { position:absolute; top:16%; left:50%; width:4px; height:24px; background: #B0A090; transform: translateX(-50%); border-radius: 2px; box-shadow: 8px 10px 0 #A09080, -8px 10px 0 #A09080; }
@keyframes lgn-window { 0%,100% { opacity:0.8 } 50% { opacity:1 } }
@keyframes lgn-figure { 0%,100% { transform: translateX(0) rotate(0) } 50% { transform: translateX(2px) rotate(1deg) } }
@keyframes lgn-beam   { 0%,100% { opacity:0.2 } 50% { opacity:0.5 } }

.scn-benin-customs-conclusion { background: linear-gradient(180deg, #f9e4b7 0%, #d4a76a 40%, #8c6239 100%), radial-gradient(ellipse at 50% 100%, #ad7a4a 0%, transparent 70%); }
.scn-benin-customs-conclusion .sky { position:absolute; inset:0 0 60% 0; background: linear-gradient(180deg, #b8d4e8 0%, #e8d5a0 100%); animation: bc1-sky 16s ease-in-out infinite alternate; }
.scn-benin-customs-conclusion .sun { position:absolute; top:10%; left:70%; width:40px; height:40px; background: radial-gradient(circle at 30% 30%, #ffee88 0%, #f0c060 60%, #d09030 100%); border-radius:50%; box-shadow: 0 0 40px 15px #f0c060; animation: bc1-sun 20s ease-in-out infinite; }
.scn-benin-customs-conclusion .hills { position:absolute; bottom:30%; left:0; right:0; height:30%; background: linear-gradient(180deg, #6e8b4f 0%, #4a6b2e 100%); border-radius: 60% 40% 0 0 / 70% 80% 0 0; box-shadow: inset 0 4px 15px rgba(0,0,0,0.3); animation: bc1-hills 14s ease-in-out infinite alternate; }
.scn-benin-customs-conclusion .hut { position:absolute; bottom:32%; left:30%; width:60px; height:40px; background: linear-gradient(135deg, #8b5e3c 0%, #5c3a21 100%); border-radius: 60% 60% 10% 10% / 80% 80% 10% 10%; box-shadow: 0 8px 12px rgba(0,0,0,0.4); transform-origin: bottom center; animation: bc1-hut 6s ease-in-out infinite; }
.scn-benin-customs-conclusion .tree { position:absolute; bottom:30%; left:55%; width:30px; height:80px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 20% 20% 40% 40%; transform-origin: bottom center; animation: bc1-tree 8s ease-in-out infinite; }
.scn-benin-customs-conclusion .tree::before { content:''; position:absolute; top:-30px; left:-15px; width:60px; height:60px; background: radial-gradient(circle at 40% 40%, #5a8b4a 0%, #3a6b2a 100%); border-radius:50%; }
.scn-benin-customs-conclusion .cattle-a { position:absolute; bottom:28%; left:20%; width:25px; height:15px; background: #5c3a21; border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; animation: bc1-cattle 12s ease-in-out infinite; }
.scn-benin-customs-conclusion .cattle-b { position:absolute; bottom:30%; left:24%; width:22px; height:13px; background: #4a2a1a; border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; animation: bc1-cattle 12s ease-in-out infinite reverse; animation-delay: -4s; }
.scn-benin-customs-conclusion .grass { position:absolute; bottom:22%; left:0; right:0; height:8%; background: linear-gradient(180deg, #6e8b4f 0%, #4a6b2e 100%); filter: blur(2px); opacity:0.6; animation: bc1-grass 10s ease-in-out infinite alternate; }
@keyframes bc1-sky { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes bc1-sun { 0% { transform: translateX(0) scale(1); box-shadow: 0 0 30px 10px #f0c060; } 50% { transform: translateX(3px) scale(1.03); box-shadow: 0 0 50px 20px #ffd080; } 100% { transform: translateX(0) scale(1); box-shadow: 0 0 30px 10px #f0c060; } }
@keyframes bc1-hills { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-2px) scaleY(1.01); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes bc1-hut { 0% { transform: translateX(0) translateY(0) rotate(0); } 25% { transform: translateX(1px) translateY(-1px) rotate(0.5deg); } 50% { transform: translateX(0) translateY(0) rotate(0); } 75% { transform: translateX(-1px) translateY(-1px) rotate(-0.5deg); } 100% { transform: translateX(0) translateY(0) rotate(0); } }
@keyframes bc1-tree { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02) translateY(-2px); } 100% { transform: scaleY(1); } }
@keyframes bc1-cattle { 0% { transform: translateX(0) rotate(0); } 33% { transform: translateX(5px) rotate(2deg); } 66% { transform: translateX(2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes bc1-grass { 0% { opacity:0.5; filter: blur(3px); } 50% { opacity:0.8; filter: blur(1px); } 100% { opacity:0.5; filter: blur(3px); } }

.scn-benin-jewish-analogy { background: linear-gradient(180deg, #c9b99a 0%, #a68a6a 50%, #7a5a3a 100%), radial-gradient(ellipse at 60% 100%, #5a3a2a 0%, transparent 60%); }
.scn-benin-jewish-analogy .sky { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #d9cbb0 0%, #b8a080 100%); animation: bj2-sky 18s ease-in-out infinite alternate; }
.scn-benin-jewish-analogy .ground { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #7a5a3a 0%, #4a3a2a 100%); border-radius: 30% 70% 0 0 / 60% 80% 0 0; animation: bj2-ground 20s ease-in-out infinite alternate; }
.scn-benin-jewish-analogy .tree-old { position:absolute; bottom:30%; left:30%; width:60px; height:100px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); border-radius: 10% 10% 40% 40%; transform-origin: bottom center; animation: bj2-tree 12s ease-in-out infinite; }
.scn-benin-jewish-analogy .tree-old::before { content:''; position:absolute; top:-40px; left:-15px; width:90px; height:60px; background: radial-gradient(circle at 40% 30%, #5a7a4a 0%, #3a5a2a 100%); border-radius:50%; animation: bj2-foliage 8s ease-in-out infinite alternate; }
.scn-benin-jewish-analogy .elders { position:absolute; bottom:30%; left:50%; width:60px; height:80px; background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 70% 70% / 40% 40% 60% 60%; mask-image: radial-gradient(ellipse at 50% 80%, black 40%, transparent 70%); -webkit-mask-image: radial-gradient(ellipse at 50% 80%, black 40%, transparent 70%); animation: bj2-elders 10s ease-in-out infinite; }
.scn-benin-jewish-analogy .altar { position:absolute; bottom:20%; left:60%; width:40px; height:30px; background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%); border-radius: 10% 10% 30% 30%; box-shadow: 0 4px 10px rgba(0,0,0,0.5); animation: bj2-altar 6s ease-in-out infinite; }
.scn-benin-jewish-analogy .flame-glow { position:absolute; bottom:30%; left:62%; width:20px; height:20px; background: radial-gradient(circle, #ffaa40 0%, #c06020 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 30px 15px rgba(255,170,64,0.6); animation: bj2-glow 3s ease-in-out infinite alternate; }
.scn-benin-jewish-analogy .flame-inner { position:absolute; bottom:32%; left:62.5%; width:10px; height:15px; background: linear-gradient(180deg, #ffd060 0%, #ff8020 100%); border-radius: 50% 50% 20% 20%; transform-origin: bottom center; animation: bj2-flame 0.8s ease-in-out infinite alternate; }
@keyframes bj2-sky { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes bj2-ground { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-2px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes bj2-tree { 0% { transform: scaleY(1) rotate(0); } 50% { transform: scaleY(1.01) rotate(0.5deg); } 100% { transform: scaleY(1) rotate(0); } }
@keyframes bj2-foliage { 0% { transform: scale(1); } 50% { transform: scale(1.05); } 100% { transform: scale(1); } }
@keyframes bj2-elders { 0% { transform: translateX(0) rotate(0); } 33% { transform: translateX(2px) rotate(1deg); } 66% { transform: translateX(-1px) rotate(-0.5deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes bj2-altar { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(1); } }
@keyframes bj2-glow { 0% { opacity:0.7; box-shadow: 0 0 20px 10px rgba(255,170,64,0.4); } 50% { opacity:1; box-shadow: 0 0 40px 20px rgba(255,170,64,0.8); } 100% { opacity:0.8; box-shadow: 0 0 25px 12px rgba(255,170,64,0.5); } }
@keyframes bj2-flame { 0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.2) translateY(-2px); } 100% { transform: scaleY(0.9) translateY(1px); } }

.scn-benin-color-prejudice { background: linear-gradient(180deg, #f0e8d0 0%, #c0a070 50%, #806040 100%), radial-gradient(ellipse at 30% 100%, #a08060 0%, transparent 70%); }
.scn-benin-color-prejudice .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #c8d8e8 0%, #e8d8b0 100%); animation: bc3-sky 20s ease-in-out infinite alternate; }
.scn-benin-color-prejudice .sun-globe { position:absolute; top:10%; left:50%; width:50px; height:50px; background: radial-gradient(circle at 30% 20%, #fff0a0 0%, #e0b060 60%, #c08040 100%); border-radius:50%; box-shadow: 0 0 60px 25px #e0b060; animation: bc3-sun 24s ease-in-out infinite; }
.scn-benin-color-prejudice .figure-light { position:absolute; bottom:25%; left:35%; width:28px; height:50px; background: linear-gradient(180deg, #c8a080 0%, #a08060 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 2px 0 8px rgba(0,0,0,0.3); transform-origin: bottom center; animation: bc3-figure 10s ease-in-out infinite; }
.scn-benin-color-prejudice .figure-dark { position:absolute; bottom:25%; left:55%; width:28px; height:50px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: -2px 0 8px rgba(0,0,0,0.3); transform-origin: bottom center; animation: bc3-figure 10s ease-in-out infinite reverse; animation-delay: -3s; }
.scn-benin-color-prejudice .rays { position:absolute; top:12%; left:48%; width:60px; height:50px; background: radial-gradient(ellipse at 50% 0%, rgba(255,255,200,0.4) 0%, transparent 70%); filter: blur(8px); animation: bc3-rays 18s linear infinite; }
.scn-benin-color-prejudice .climate-belt { position:absolute; bottom:30%; left:20%; right:20%; height:15%; background: linear-gradient(90deg, transparent 0%, rgba(200,180,140,0.3) 30%, rgba(180,140,100,0.5) 50%, rgba(140,100,60,0.3) 70%, transparent 100%); border-radius:30%; filter: blur(5px); animation: bc3-belt 30s ease-in-out infinite alternate; }
@keyframes bc3-sky { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes bc3-sun { 0% { transform: translateX(0) scale(1); box-shadow: 0 0 40px 15px #e0b060; } 50% { transform: translateX(5px) scale(1.05); box-shadow: 0 0 70px 30px #f0c080; } 100% { transform: translateX(0) scale(1); box-shadow: 0 0 40px 15px #e0b060; } }
@keyframes bc3-figure { 0% { transform: translateX(0) rotate(0); } 33% { transform: translateX(3px) rotate(2deg); } 66% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes bc3-rays { 0% { transform: scaleX(1) rotate(0); opacity:0.5; } 50% { transform: scaleX(1.2) rotate(5deg); opacity:0.8; } 100% { transform: scaleX(1) rotate(0); opacity:0.5; } }
@keyframes bc3-belt { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-2px) scaleY(1.03); } 100% { transform: translateY(0) scaleY(1); } }

.scn-benin-equality-argument { background: linear-gradient(180deg, #e8d4b8 0%, #c4a882 50%, #9a7a5a 100%), radial-gradient(ellipse at 50% 0%, #d4b898 0%, transparent 70%); }
.scn-benin-equality-argument .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #b8c8d8 0%, #d8c8a8 100%); animation: be4-sky 22s ease-in-out infinite alternate; }
.scn-benin-equality-argument .platform { position:absolute; bottom:25%; left:30%; right:30%; height:8%; background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%); border-radius: 10% 10% 0 0; box-shadow: 0 4px 12px rgba(0,0,0,0.4); transform-origin: bottom center; animation: be4-platform 8s ease-in-out infinite; }
.scn-benin-equality-argument .speaker { position:absolute; bottom:30%; left:45%; width:30px; height:60px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: be4-speaker 6s ease-in-out infinite; }
.scn-benin-equality-argument .speaker::after { content:''; position:absolute; top:10%; left:-10px; width:20px; height:5px; background: #2a1a0a; border-radius: 50%; transform: rotate(-20deg); animation: be4-arm 4s ease-in-out infinite alternate; }
.scn-benin-equality-argument .crowd-a { position:absolute; bottom:20%; left:20%; width:15px; height:30px; background: #2a1a0a; border-radius: 50% 50% 30% 30%; animation: be4-crowd 12s ease-in-out infinite; }
.scn-benin-equality-argument .crowd-b { position:absolute; bottom:20%; left:25%; width:12px; height:28px; background: #3a2a1a; border-radius: 50% 50% 30% 30%; animation: be4-crowd 12s ease-in-out infinite reverse; animation-delay: -2s; }
.scn-benin-equality-argument .crowd-c { position:absolute; bottom:20%; left:60%; width:14px; height:32px; background: #1a0a0a; border-radius: 50% 50% 30% 30%; animation: be4-crowd 12s ease-in-out infinite; animation-delay: -6s; }
.scn-benin-equality-argument .banner { position:absolute; bottom:35%; left:50%; width:40px; height:20px; background: linear-gradient(90deg, #a08060, #c8a880, #a08060); border-radius: 10% 10% 30% 30%; transform: translateX(-50%); box-shadow: 0 2px 6px rgba(0,0,0,0.3); animation: be4-banner 9s ease-in-out infinite; }
.scn-benin-equality-argument .light-beam { position:absolute; top:5%; left:40%; right:40%; height:40%; background: linear-gradient(180deg, rgba(255,240,200,0.3) 0%, transparent 100%); filter: blur(20px); animation: be4-beam 15s ease-in-out infinite alternate; }
@keyframes be4-sky { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes be4-platform { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-1px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes be4-speaker { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(2px) rotate(2deg); } 50% { transform: translateX(0) rotate(0); } 75% { transform: translateX(-2px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes be4-arm { 0% { transform: rotate(-15deg); } 100% { transform: rotate(-40deg); } }
@keyframes be4-crowd { 0% { transform: translateY(0) scaleY(1); } 33% { transform: translateY(-2px) scaleY(1.05); } 66% { transform: translateY(1px) scaleY(0.95); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes be4-banner { 0% { transform: translateX(-50%) rotate(0); } 50% { transform: translateX(-50%) rotate(2deg); } 100% { transform: translateX(-50%) rotate(0); } }
@keyframes be4-beam { 0% { opacity:0.3; filter: blur(15px); } 50% { opacity:0.6; filter: blur(10px); } 100% { opacity:0.3; filter: blur(15px); } }

/* SCENE 1: staying-savannah (calm, sunlit) */
.scn-staying-savannah {
  background:
    linear-gradient(180deg, #f7d9a3 0%, #d4b07a 50%, #8a6e4e 100%),
    radial-gradient(ellipse at 60% 20%, #fff5d0 0%, transparent 70%);
}
.scn-staying-savannah .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #b8d4e3 0%, #f0d8a8 100%);
  animation: ss-sky 12s ease-in-out infinite;
}
.scn-staying-savannah .sun {
  position: absolute; top: 6%; left: 45%; width: 60px; height: 60px;
  background: radial-gradient(circle, #fff2b0 0%, #f7c35a 60%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 60px 30px rgba(247,195,90,0.5);
  animation: ss-sun 18s ease-in-out infinite alternate;
}
.scn-staying-savannah .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #7a6b4e 0%, #5a4a2e 100%);
  border-radius: 30% 70% 0 0 / 60% 40% 0 0;
}
.scn-staying-savannah .grave {
  position: absolute; bottom: 42%; left: 40%; width: 50px; height: 30px;
  background: radial-gradient(ellipse at 50% 100%, #4a3a2a 0%, #6a5a3a 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  box-shadow: inset 0 -8px 12px rgba(0,0,0,0.3);
  animation: ss-grave 20s ease-in-out infinite;
}
.scn-staying-savannah .figure {
  position: absolute; bottom: 36%; left: 46%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ss-figure 5s ease-in-out infinite;
}
.scn-staying-savannah .woman {
  position: absolute; bottom: 36%; left: 34%; width: 18px; height: 44px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 35% 35% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: ss-woman 6s ease-in-out infinite;
}
@keyframes ss-sky {
  0% { opacity: 0.7; background-position: 0 0; }
  50% { opacity: 1; background-position: 10% 10%; }
  100% { opacity: 0.8; background-position: 0 0; }
}
@keyframes ss-sun {
  0% { transform: scale(0.9) translate(0, 0); }
  50% { transform: scale(1.1) translate(5px, -5px); }
  100% { transform: scale(0.95) translate(-3px, 2px); }
}
@keyframes ss-grave {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes ss-figure {
  0% { transform: translateX(0) rotate(-2deg); }
  25% { transform: translateX(3px) rotate(2deg); }
  50% { transform: translateX(0) rotate(-1deg); }
  75% { transform: translateX(-2px) rotate(1deg); }
  100% { transform: translateX(0) rotate(-2deg); }
}
@keyframes ss-woman {
  0% { transform: translateX(0) translateY(0) rotate(0); }
  50% { transform: translateX(2px) translateY(-1px) rotate(3deg); }
  100% { transform: translateX(0) translateY(0) rotate(0); }
}

/* SCENE 2: chapter-martinico (calm, sunlit) */
.scn-chapter-martinico {
  background:
    linear-gradient(180deg, #7fb5c8 0%, #b2d8e8 40%, #f0e4c0 100%),
    radial-gradient(ellipse at 70% 30%, #fff7d0 0%, transparent 60%);
}
.scn-chapter-martinico .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #b2d8e8 0%, #e0f0ff 100%);
  animation: cm-sky 15s ease-in-out infinite alternate;
}
.scn-chapter-martinico .sun {
  position: absolute; top: 10%; right: 20%; width: 50px; height: 50px;
  background: radial-gradient(circle, #fff7b0 0%, #f5d080 60%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(245,208,128,0.6);
  animation: cm-sun 20s ease-in-out infinite;
}
.scn-chapter-martinico .sea {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #6fa8b8 0%, #4a7a8a 100%);
  border-radius: 0 0 40% 40% / 0 0 20% 20%;
  animation: cm-sea 8s ease-in-out infinite;
}
.scn-chapter-martinico .ship {
  position: absolute; bottom: 38%; left: 50%; transform: translateX(-50%); width: 100px; height: 30px;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%);
  border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%;
  box-shadow: 0 -4px 8px rgba(0,0,0,0.2);
  animation: cm-ship 12s ease-in-out infinite;
}
.scn-chapter-martinico .sail {
  position: absolute; bottom: 42%; left: 52%; transform: translateX(-50%); width: 0; height: 0;
  border-left: 20px solid transparent;
  border-right: 20px solid transparent;
  border-bottom: 50px solid #f0e4d0;
  filter: drop-shadow(2px 2px 4px rgba(0,0,0,0.2));
  animation: cm-sail 9s ease-in-out infinite;
}
.scn-chapter-martinico .dock {
  position: absolute; bottom: 28%; left: 10%; width: 120px; height: 12px;
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%);
  border-radius: 4px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: cm-dock 25s linear infinite;
}
.scn-chapter-martinico .figure {
  position: absolute; bottom: 27%; left: 18%; width: 14px; height: 32px;
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cm-figure 7s ease-in-out infinite;
}
@keyframes cm-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes cm-sun {
  0% { transform: scale(1); }
  50% { transform: scale(1.05) translate(3px, -3px); }
  100% { transform: scale(0.95); }
}
@keyframes cm-sea {
  0% { background-position: 0 0; transform: translateY(0); }
  50% { background-position: 5% 3%; transform: translateY(-2px); }
  100% { background-position: 0 0; transform: translateY(0); }
}
@keyframes cm-ship {
  0% { transform: translateX(-50%) rotate(-1deg); }
  50% { transform: translateX(-48%) rotate(1deg); }
  100% { transform: translateX(-50%) rotate(-1deg); }
}
@keyframes cm-sail {
  0% { transform: translateX(-50%) skewX(0); }
  50% { transform: translateX(-48%) skewX(3deg); }
  100% { transform: translateX(-50%) skewX(0); }
}
@keyframes cm-dock {
  0% { transform: translateX(0); }
  50% { transform: translateX(10px); }
  100% { transform: translateX(0); }
}
@keyframes cm-figure {
  0% { transform: translateX(0) rotate(-1deg); }
  50% { transform: translateX(4px) rotate(1deg); }
  100% { transform: translateX(0) rotate(-1deg); }
}

/* SCENE 3: martinico-difficulties (dark mood, sunlit) */
.scn-martinico-difficulties {
  background:
    linear-gradient(180deg, #c8a87a 0%, #d8c090 30%, #a89070 70%, #7a6a5a 100%),
    radial-gradient(ellipse at 80% 40%, #fff8e0 0%, transparent 50%);
}
.scn-martinico-difficulties .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #e8f0f8 0%, #c8d0d8 100%);
  animation: md-sky 14s ease-in-out infinite alternate;
}
.scn-martinico-difficulties .sun-flare {
  position: absolute; top: 8%; right: 15%; width: 70px; height: 70px;
  background: radial-gradient(circle, #fff8d0 0%, #ffe8a0 40%, transparent 70%);
  border-radius: 50%;
  filter: blur(8px);
  animation: md-flare 6s ease-in-out infinite;
}
.scn-martinico-difficulties .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 20% 80% 0 0 / 40% 60% 0 0;
  box-shadow: inset 0 12px 20px rgba(0,0,0,0.5);
}
.scn-martinico-difficulties .captain {
  position: absolute; bottom: 32%; left: 55%; width: 28px; height: 60px;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  filter: brightness(0.6);
  animation: md-captain 4s ease-in-out infinite;
}
.scn-martinico-difficulties .equiano {
  position: absolute; bottom: 30%; left: 32%; width: 22px; height: 54px;
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: -8px 0 16px rgba(0,0,0,0.4);
  animation: md-equiano 5s ease-in-out infinite;
}
.scn-martinico-difficulties .table {
  position: absolute; bottom: 28%; left: 38%; width: 80px; height: 14px;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a1a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: md-table 20s linear infinite;
}
.scn-martinico-difficulties .coins {
  position: absolute; bottom: 29%; left: 44%; width: 20px; height: 10px;
  background: #c8b878;
  border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(200,184,120,0.8);
  animation: md-coins 3s ease-in-out infinite;
}
@keyframes md-sky {
  0% { background-position: 0 0; }
  50% { background-position: 5% 5%; }
  100% { background-position: 0 0; }
}
@keyframes md-flare {
  0% { transform: scale(0.8); opacity: 0.6; }
  50% { transform: scale(1.2); opacity: 1; }
  100% { transform: scale(0.9); opacity: 0.7; }
}
@keyframes md-captain {
  0% { transform: translateX(0) rotate(-2deg); }
  50% { transform: translateX(-3px) rotate(2deg); }
  100% { transform: translateX(0) rotate(-2deg); }
}
@keyframes md-equiano {
  0% { transform: translateX(0) translateY(0); }
  50% { transform: translateX(2px) translateY(-3px); }
  100% { transform: translateX(0) translateY(0); }
}
@keyframes md-table {
  0% { transform: translateX(0); }
  50% { transform: translateX(-2px); }
  100% { transform: translateX(0); }
}
@keyframes md-coins {
  0% { transform: scale(1) rotate(0); box-shadow: 0 0 6px 2px rgba(200,184,120,0.8); }
  50% { transform: scale(1.1) rotate(10deg); box-shadow: 0 0 12px 4px rgba(200,184,120,0.6); }
  100% { transform: scale(1) rotate(0); box-shadow: 0 0 6px 2px rgba(200,184,120,0.8); }
}

/* SCENE 4: grenades-to-st-kitts (tense, sunlit) */
.scn-grenades-to-st-kitts {
  background:
    linear-gradient(180deg, #6fa8b8 0%, #a8c8d8 30%, #f0e4c0 70%, #c8a87a 100%),
    radial-gradient(ellipse at 40% 20%, #fff8d0 0%, transparent 60%);
}
.scn-grenades-to-st-kitts .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #b8d8e8 0%, #e0f0ff 100%);
  animation: gs-sky 10s ease-in-out infinite alternate;
}
.scn-grenades-to-st-kitts .sun {
  position: absolute; top: 5%; left: 25%; width: 55px; height: 55px;
  background: radial-gradient(circle, #fff5b0 0%, #f5c85a 60%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 50px 25px rgba(245,200,90,0.6);
  animation: gs-sun 16s ease-in-out infinite;
}
.scn-grenades-to-st-kitts .sea {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #4a7a8a 0%, #2a5a6a 100%);
  border-radius: 0 0 30% 70% / 0 0 20% 40%;
  animation: gs-sea 6s ease-in-out infinite;
}
.scn-grenades-to-st-kitts .ship {
  position: absolute; bottom: 30%; left: 40%; transform: translateX(-50%); width: 90px; height: 25px;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%;
  box-shadow: 0 -2px 6px rgba(0,0,0,0.3);
  animation: gs-ship 14s ease-in-out infinite;
}
.scn-grenades-to-st-kitts .dock {
  position: absolute; bottom: 22%; left: 60%; width: 100px; height: 10px;
  background: linear-gradient(180deg, #7a6a4a 0%, #5a4a2a 100%);
  border-radius: 3px;
  animation: gs-dock 22s linear infinite;
}
.scn-grenades-to-st-kitts .figure {
  position: absolute; bottom: 21%; left: 64%; width: 16px; height: 38px;
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gs-figure 3s ease-in-out infinite;
}
.scn-grenades-to-st-kitts .coins-sparkle {
  position: absolute; bottom: 23%; left: 58%; width: 12px; height: 12px;
  background: radial-gradient(circle, #f0e4a0 0%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 8px 4px rgba(240,228,160,0.8);
  animation: gs-sparkle 2s ease-in-out infinite;
}
@keyframes gs-sky {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes gs-sun {
  0% { transform: scale(1) translate(0, 0); }
  50% { transform: scale(1.08) translate(4px, -4px); }
  100% { transform: scale(0.95) translate(-2px, 2px); }
}
@keyframes gs-sea {
  0% { background-position: 0 0; transform: translateY(0); }
  50% { background-position: 5% 4%; transform: translateY(-3px); }
  100% { background-position: 0 0; transform: translateY(0); }
}
@keyframes gs-ship {
  0% { transform: translateX(-50%) rotate(-2deg); }
  50% { transform: translateX(-48%) rotate(2deg); }
  100% { transform: translateX(-50%) rotate(-2deg); }
}
@keyframes gs-dock {
  0% { transform: translateX(0); }
  50% { transform: translateX(8px); }
  100% { transform: translateX(0); }
}
@keyframes gs-figure {
  0% { transform: translateX(0) rotate(-3deg); }
  25% { transform: translateX(3px) rotate(3deg); }
  50% { transform: translateX(-2px) rotate(-1deg); }
  75% { transform: translateX(4px) rotate(2deg); }
  100% { transform: translateX(0) rotate(-3deg); }
}
@keyframes gs-sparkle {
  0% { transform: scale(0.5) rotate(0); opacity: 0.3; }
  50% { transform: scale(1.4) rotate(20deg); opacity: 1; }
  100% { transform: scale(0.6) rotate(40deg); opacity: 0.2; }
}

/* ------------- scene: future-imposition (fi) ------------- */
.scn-future-imposition {
  background:
    linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 60%, #1a0a00 100%),
    radial-gradient(ellipse at 50% 80%, #4a3a2a 0%, transparent 70%);
}
.scn-future-imposition .wall {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(120deg, #4a3a2a 0%, #2a1a0a 100%);
  animation: fi-wall 20s ease-in-out infinite alternate;
}
.scn-future-imposition .floor {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(0deg, #1a100a 0%, #2a1a0a 100%);
}
.scn-future-imposition .table {
  position:absolute; bottom:18%; left:20%; width:60%; height:8%;
  background: linear-gradient(135deg, #5a3a2a 0%, #3a1a0a 100%);
  border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.6);
  transform: perspective(300px) rotateX(10deg);
}
.scn-future-imposition .document {
  position:absolute; bottom:28%; left:35%; width:30%; height:14%;
  background: linear-gradient(135deg, #d4c4a0 0%, #b8a880 100%);
  border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,.4);
  animation: fi-doc 6s ease-in-out infinite;
}
.scn-future-imposition .figure {
  position:absolute; bottom:22%; left:50%; width:20px; height:40px;
  transform:translateX(-50%);
  background: linear-gradient(180deg, #1a0a00 0%, #0a0500 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 12px rgba(0,0,0,.5);
  animation: fi-figure 4s ease-in-out infinite;
}
.scn-future-imposition .lantern {
  position:absolute; bottom:30%; left:30%; width:8px; height:12px;
  background: radial-gradient(circle, #e8c870, #a08040);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 24px 6px #c09050, 0 0 48px 12px rgba(192,144,80,.3);
  animation: fi-lantern 3s ease-in-out infinite alternate;
}
.scn-future-imposition .shadow {
  position:absolute; bottom:18%; left:30%; width:40%; height:10%;
  background: radial-gradient(ellipse, rgba(0,0,0,.6) 0%, transparent 100%);
  animation: fi-shadow 6s ease-in-out infinite;
}
@keyframes fi-wall {
  0% { opacity:.8; }
  50% { opacity:1; }
  100% { opacity:.7; }
}
@keyframes fi-doc {
  0% { transform: scaleY(1); opacity:.9; }
  50% { transform: scaleY(1.05); opacity:1; }
  100% { transform: scaleY(1); opacity:.85; }
}
@keyframes fi-figure {
  0% { transform: translateX(-50%) translateY(0); }
  25% { transform: translateX(-50%) translateY(-2px) rotate(1deg); }
  50% { transform: translateX(-50%) translateY(0) rotate(-1deg); }
  75% { transform: translateX(-50%) translateY(-1px) rotate(1deg); }
  100% { transform: translateX(-50%) translateY(0); }
}
@keyframes fi-lantern {
  0% { box-shadow: 0 0 18px 4px #c09050; opacity:.8; }
  50% { box-shadow: 0 0 30px 8px #e8c870; opacity:1; }
  100% { box-shadow: 0 0 20px 5px #c09050; opacity:.9; }
}
@keyframes fi-shadow {
  0% { opacity:.5; transform: scaleX(1); }
  50% { opacity:.7; transform: scaleX(1.1); }
  100% { opacity:.6; transform: scaleX(1); }
}

/* ------------- scene: island-treatment-summary (its) ------------- */
.scn-island-treatment-summary {
  background:
    linear-gradient(180deg, #6a8a9a 0%, #4a6a7a 40%, #2a4a5a 100%),
    radial-gradient(ellipse at 50% 0%, #b0d0e0 0%, transparent 70%);
}
.scn-island-treatment-summary .sky {
  position:absolute; inset:0 0 40% 0;
  background: linear-gradient(180deg, #9ab8c8 0%, #4a6a7a 100%);
  animation: its-sky 15s ease-in-out infinite alternate;
}
.scn-island-treatment-summary .ocean {
  position:absolute; bottom:0; left:0; right:0; height:40%;
  background: linear-gradient(180deg, #2a4a5a 0%, #1a2a3a 100%);
  border-radius: 0 0 20% 20%;
  animation: its-ocean 8s ease-in-out infinite;
}
.scn-island-treatment-summary .sun {
  position:absolute; top:10%; left:40%; width:40px; height:40px;
  background: radial-gradient(circle, #f0e080 0%, #d0b060 70%);
  border-radius:50%;
  box-shadow: 0 0 60px 20px rgba(240,224,128,.5);
  animation: its-sun 20s linear infinite;
}
.scn-island-treatment-summary .island-a {
  position:absolute; bottom:38%; left:15%; width:80px; height:20px;
  background: linear-gradient(180deg, #7a6a4a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 0 0;
  box-shadow: 0 2px 6px rgba(0,0,0,.5);
  animation: its-island 12s ease-in-out infinite;
}
.scn-island-treatment-summary .island-b {
  position:absolute; bottom:38%; left:45%; width:60px; height:15px;
  background: linear-gradient(180deg, #7a6a4a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 0 0;
  box-shadow: 0 2px 6px rgba(0,0,0,.5);
  animation: its-island 15s ease-in-out infinite alternate;
}
.scn-island-treatment-summary .island-c {
  position:absolute; bottom:38%; right:10%; width:70px; height:18px;
  background: linear-gradient(180deg, #7a6a4a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 0 0;
  box-shadow: 0 2px 6px rgba(0,0,0,.5);
  animation: its-island 10s ease-in-out infinite reverse;
}
.scn-island-treatment-summary .figure-a {
  position:absolute; bottom:40%; left:20%; width:12px; height:24px;
  background: linear-gradient(180deg, #0a0a1a 0%, #05050a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: its-figure 5s ease-in-out infinite;
}
.scn-island-treatment-summary .figure-b {
  position:absolute; bottom:40%; left:50%; width:12px; height:24px;
  background: linear-gradient(180deg, #0a0a1a 0%, #05050a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: its-figure 6s ease-in-out infinite 1s;
}
.scn-island-treatment-summary .boat {
  position:absolute; bottom:32%; left:30%; width:20px; height:8px;
  background: linear-gradient(90deg, #4a2a1a, #2a1a0a);
  border-radius: 0 0 50% 50%;
  animation: its-boat 7s ease-in-out infinite;
}
@keyframes its-sky {
  0% { opacity:.8; background-position: 0 0; }
  50% { opacity:1; background-position: 10px 0; }
  100% { opacity:.9; background-position: 0 0; }
}
@keyframes its-ocean {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-5px) scaleY(1.02); }
  100% { transform: translateY(0) scaleY(1); }
}
@keyframes its-sun {
  0% { transform: translate(0,0); opacity:.9; }
  50% { transform: translate(5px,-5px); opacity:1; }
  100% { transform: translate(0,0); opacity:.85; }
}
@keyframes its-island {
  0% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
  100% { transform: translateY(0); }
}
@keyframes its-figure {
  0% { transform: translateY(0) rotate(0); }
  25% { transform: translateY(-2px) rotate(2deg); }
  50% { transform: translateY(0) rotate(0); }
  75% { transform: translateY(-1px) rotate(-2deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes its-boat {
  0% { transform: translateX(0) rotate(0); }
  50% { transform: translateX(10px) rotate(-2deg); }
  100% { transform: translateX(0) rotate(0); }
}

/* ------------- scene: equiano-condemnation (ec) ------------- */
.scn-equiano-condemnation {
  background:
    linear-gradient(180deg, #d0b060 0%, #8a6a3a 40%, #3a2a1a 100%),
    radial-gradient(ellipse at 50% 30%, #f0e080 0%, transparent 60%);
}
.scn-equiano-condemnation .sky {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(180deg, #e8d080 0%, #c0a060 60%, #8a6a3a 100%);
  animation: ec-sky 25s linear infinite alternate;
}
.scn-equiano-condemnation .sun {
  position:absolute; top:5%; left:60%; width:50px; height:50px;
  background: radial-gradient(circle, #ffe680 0%, #d0a040 70%);
  border-radius:50%;
  box-shadow: 0 0 80px 30px rgba(255,230,128,.5);
  animation: ec-sun 12s ease-in-out infinite;
}
.scn-equiano-condemnation .rock {
  position:absolute; bottom:25%; left:20%; width:120px; height:40px;
  background: linear-gradient(135deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 30% 30% 20% 20% / 60% 60% 40% 40%;
  box-shadow: 0 8px 12px rgba(0,0,0,.6);
  transform: perspective(400px) rotateX(15deg);
  animation: ec-rock 8s ease-in-out infinite;
}
.scn-equiano-condemnation .figure {
  position:absolute; bottom:28%; left:25%; width:18px; height:40px;
  background: linear-gradient(180deg, #0a0500 0%, #050200 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ec-figure 5s ease-in-out infinite;
}
.scn-equiano-condemnation .ray-1 {
  position:absolute; top:2%; left:55%; width:200%; height:10px;
  background: linear-gradient(90deg, rgba(255,230,128,.6) 0%, transparent 100%);
  transform: rotate(20deg); transform-origin: left center;
  filter: blur(4px);
  animation: ec-ray1 9s ease-in-out infinite alternate;
}
.scn-equiano-condemnation .ray-2 {
  position:absolute; top:5%; left:50%; width:150%; height:8px;
  background: linear-gradient(90deg, rgba(255,230,128,.4) 0%, transparent 100%);
  transform: rotate(35deg); transform-origin: left center;
  filter: blur(3px);
  animation: ec-ray2 11s ease-in-out infinite alternate;
}
.scn-equiano-condemnation .ground {
  position:absolute; bottom:0; left:0; right:0; height:25%;
  background: linear-gradient(0deg, #2a1a0a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 0 0;
}
@keyframes ec-sky {
  0% { opacity:.85; }
  50% { opacity:1; }
  100% { opacity:.9; }
}
@keyframes ec-sun {
  0% { transform: scale(1); opacity:.9; }
  50% { transform: scale(1.05); opacity:1; }
  100% { transform: scale(1); opacity:.95; }
}
@keyframes ec-rock {
  0% { transform: perspective(400px) rotateX(15deg) translateY(0); }
  50% { transform: perspective(400px) rotateX(15deg) translateY(-3px); }
  100% { transform: perspective(400px) rotateX(15deg) translateY(0); }
}
@keyframes ec-figure {
  0% { transform: translateY(0) rotate(0); }
  20% { transform: translateY(-3px) rotate(-3deg) scaleY(1.02); }
  40% { transform: translateY(-1px) rotate(2deg) scaleY(1); }
  60% { transform: translateY(-4px) rotate(-1deg) scaleY(1.03); }
  80% { transform: translateY(-2px) rotate(1deg) scaleY(1); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes ec-ray1 {
  0% { opacity:.5; transform: rotate(20deg) scaleY(1); }
  50% { opacity:.8; transform: rotate(22deg) scaleY(1.2); }
  100% { opacity:.6; transform: rotate(18deg) scaleY(1); }
}
@keyframes ec-ray2 {
  0% { opacity:.4; transform: rotate(35deg) scaleX(1); }
  50% { opacity:.7; transform: rotate(33deg) scaleX(1.1); }
  100% { opacity:.5; transform: rotate(37deg) scaleX(1); }
}

/* ------------- scene: equiano-arguments (ea) ------------- */
.scn-equiano-arguments {
  background:
    linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 60%, #1a0a00 100%),
    radial-gradient(ellipse at 50% 70%, #6a5a4a 0%, transparent 80%);
}
.scn-equiano-arguments .wall {
  position:absolute; inset:0 0 20% 0;
  background: linear-gradient(180deg, #7a6a5a 0%, #4a3a2a 100%);
  animation: ea-wall 18s ease-in-out infinite alternate;
}
.scn-equiano-arguments .desk {
  position:absolute; bottom:20%; left:10%; width:80%; height:12%;
  background: linear-gradient(135deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.6);
  transform: perspective(400px) rotateX(10deg);
}
.scn-equiano-arguments .book {
  position:absolute; bottom:28%; left:30%; width:40%; height:18%;
  background: linear-gradient(135deg, #a09070 0%, #7a6a4a 100%);
  border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,.5);
  animation: ea-book 7s ease-in-out infinite;
}
.scn-equiano-arguments .quill {
  position:absolute; bottom:32%; left:20%; width:4px; height:24px;
  background: linear-gradient(180deg, #c0b0a0 0%, #8a7a6a 100%);
  border-radius: 0 0 50% 50%;
  transform: rotate(15deg);
  transform-origin: bottom center;
  animation: ea-quill 4s ease-in-out infinite alternate;
}
.scn-equiano-arguments .inkwell {
  position:absolute; bottom:30%; left:22%; width:10px; height:10px;
  background: radial-gradient(circle, #0a0a1a 0%, #05050a 100%);
  border-radius: 50%;
  box-shadow: 0 2px 4px rgba(0,0,0,.4);
  animation: ea-inkwell 6s ease-in-out infinite;
}
.scn-equiano-arguments .hand {
  position:absolute; bottom:28%; left:25%; width:14px; height:22px;
  background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ea-hand 5s ease-in-out infinite;
}
.scn-equiano-arguments .candle {
  position:absolute; bottom:32%; left:70%; width:6px; height:18px;
  background: linear-gradient(180deg, #e8d0a0 0%, #b09060 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 0 16px 4px #d0a060;
}
.scn-equiano-arguments .glow {
  position:absolute; bottom:28%; left:65%; width:30px; height:30px;
  background: radial-gradient(circle, rgba(208,160,96,.4) 0%, transparent 100%);
  border-radius: 50%;
  animation: ea-glow 4s ease-in-out infinite alternate;
}
@keyframes ea-wall {
  0% { opacity:.9; }
  50% { opacity:1; }
  100% { opacity:.8; }
}
@keyframes ea-book {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-2px) scale(1.02); }
  100% { transform: translateY(0) scale(1); }
}
@keyframes ea-quill {
  0% { transform: rotate(15deg) translateY(0); }
  50% { transform: rotate(18deg) translateY(-2px); }
  100% { transform: rotate(12deg) translateY(0); }
}
@keyframes ea-inkwell {
  0% { transform: scale(1); opacity:.9; }
  50% { transform: scale(1.05); opacity:1; }
  100% { transform: scale(1); opacity:.9; }
}
@keyframes ea-hand {
  0% { transform: translateY(0) rotate(0); }
  25% { transform: translateY(-2px) rotate(3deg); }
  50% { transform: translateY(0) rotate(0); }
  75% { transform: translateY(-1px) rotate(-2deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes ea-glow {
  0% { opacity:.6; transform: scale(1); }
  50% { opacity:.9; transform: scale(1.2); }
  100% { opacity:.7; transform: scale(1); }
}

/* after-louisbourg */
.scn-after-louisbourg { background: linear-gradient(180deg, #87ceeb 0%, #f0e68c 40%, #ffd700 70%, #b8860b 100%), radial-gradient(ellipse at 60% 20%, #fff8dc 0%, transparent 60%); }
.scn-after-louisbourg .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #87ceeb 0%, #b0e0e6 60%, #ffd700 90%); animation: al-sky 12s ease-in-out infinite alternate; }
.scn-after-louisbourg .sea { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #2e8b57 0%, #1e5e3a 50%, #0b3d1f 100%); border-radius: 20% 30% 0 0 / 10% 15% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.3); animation: al-sea 8s ease-in-out infinite alternate; }
.scn-after-louisbourg .ship { position:absolute; bottom:35%; left:50%; width:120px; height:30px; transform:translateX(-50%); background: linear-gradient(90deg, #8b4513 0%, #a0522d 50%, #5c3317 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 4px 8px rgba(0,0,0,.4); animation: al-ship 6s ease-in-out infinite; }
.scn-after-louisbourg .flag-1 { position:absolute; bottom:58%; left:55%; width:6px; height:24px; background: #cd5c5c; border-radius: 0 6px 0 0; transform-origin: bottom center; animation: al-flag 0.6s ease-in-out infinite alternate; }
.scn-after-louisbourg .flag-2 { position:absolute; bottom:58%; left:59%; width:4px; height:18px; background: #4682b4; border-radius: 0 4px 0 0; transform-origin: bottom center; animation: al-flag 0.8s ease-in-out infinite alternate; }
.scn-after-louisbourg .cannon { position:absolute; bottom:40%; left:45%; width:8px; height:6px; background: #2f4f4f; border-radius: 50%; box-shadow: 0 0 0 2px #ff8c00, 0 0 20px 10px rgba(255,140,0,.5); animation: al-flash 1.2s steps(2) infinite; }
.scn-after-louisbourg .figure-officer { position:absolute; bottom:38%; left:46%; width:14px; height:28px; background: linear-gradient(180deg, #000080 0%, #00004d 50%, #000 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: al-walk 4s ease-in-out infinite; }
.scn-after-louisbourg .figure-lady { position:absolute; bottom:38%; left:53%; width:12px; height:24px; background: linear-gradient(180deg, #f0e68c 0%, #daa520 50%, #b8860b 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: al-walk-rev 4s ease-in-out infinite; }
.scn-after-louisbourg .smoke { position:absolute; bottom:45%; left:42%; width:30px; height:20px; background: radial-gradient(circle, rgba(200,200,200,.4) 0%, transparent 70%); filter: blur(4px); animation: al-smoke 3s ease-out infinite; }
@keyframes al-sky { 0% { opacity:.8; background-position: 0% 50%; } 50% { opacity:1; background-position: 100% 50%; } 100% { opacity:.9; background-position: 0% 50%; } }
@keyframes al-sea { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-4px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes al-ship { 0%,100% { transform: translateX(-50%) translateY(0) rotate(0deg); } 50% { transform: translateX(-50%) translateY(-3px) rotate(1deg); } }
@keyframes al-flag { 0% { transform: rotate(-10deg); } 100% { transform: rotate(10deg); } }
@keyframes al-flash { 0% { opacity:0; } 50% { opacity:1; box-shadow: 0 0 30px 15px rgba(255,140,0,.7); } 100% { opacity:0; } }
@keyframes al-walk { 0% { transform: translateX(0) translateY(0) rotate(-1deg); } 25% { transform: translateX(4px) translateY(-1px) rotate(1deg); } 50% { transform: translateX(8px) translateY(0) rotate(-1deg); } 75% { transform: translateX(12px) translateY(-1px) rotate(1deg); } 100% { transform: translateX(16px) translateY(0) rotate(0deg); } }
@keyframes al-walk-rev { 0% { transform: translateX(0) translateY(0) rotate(1deg); } 25% { transform: translateX(-4px) translateY(-1px) rotate(-1deg); } 50% { transform: translateX(-8px) translateY(0) rotate(1deg); } 75% { transform: translateX(-12px) translateY(-1px) rotate(-1deg); } 100% { transform: translateX(-16px) translateY(0) rotate(0deg); } }
@keyframes al-smoke { 0% { transform: translateY(0) scale(1); opacity:.6; } 50% { transform: translateY(-10px) scale(1.5); opacity:.3; } 100% { transform: translateY(-20px) scale(2); opacity:0; } }

/* chasing-french-fleet */
.scn-chasing-french-fleet { background: linear-gradient(180deg, #0a0a2e 0%, #1a1a4e 40%, #000 100%), radial-gradient(ellipse at 50% 60%, #2a2a5e 0%, transparent 70%); }
.scn-chasing-french-fleet .night-sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #0f0f3f 0%, #1a1a5e 50%, #000 100%); animation: cf-nightsky 30s linear infinite; }
.scn-chasing-french-fleet .moon { position:absolute; top:10%; right:20%; width:30px; height:30px; background: radial-gradient(circle, #e0e0ff 0%, #b0b0ff 50%, transparent 70%); border-radius:50%; box-shadow: 0 0 30px 10px rgba(176,176,255,.3), 0 0 60px 20px rgba(176,176,255,.1); animation: cf-moon 20s ease-in-out infinite alternate; }
.scn-chasing-french-fleet .sea-dark { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #0a1a2a 0%, #05111c 100%); border-radius: 30% 20% 0 0 / 15% 10% 0 0; box-shadow: inset 0 5px 15px rgba(0,0,0,.5); animation: cf-sea 8s ease-in-out infinite alternate; }
.scn-chasing-french-fleet .ship-pursuing { position:absolute; bottom:28%; left:30%; width:100px; height:25px; background: linear-gradient(90deg, #2c2c3a 0%, #1a1a28 50%, #0a0a14 100%); border-radius: 20% 20% 5% 5%; box-shadow: 0 2px 8px rgba(0,0,0,.6); animation: cf-ship 6s ease-in-out infinite; }
.scn-chasing-french-fleet .sail-torn { position:absolute; bottom:40%; left:32%; width:30px; height:50px; background: linear-gradient(180deg, #e0e0e0 0%, #b0b0b0 50%, #808080 100%); clip-path: polygon(0% 0%, 100% 0%, 90% 50%, 100% 100%, 0% 100%, 10% 50%); animation: cf-sail 2s ease-in-out infinite alternate; }
.scn-chasing-french-fleet .wave-crest { position:absolute; bottom:35%; left:0; right:0; height:8%; background: repeating-linear-gradient(90deg, rgba(100,150,200,.2) 0px, rgba(100,150,200,.4) 10px, transparent 10px, transparent 30px); animation: cf-wave 4s linear infinite; }
.scn-chasing-french-fleet .lantern-spot { position:absolute; bottom:35%; left:50%; width:6px; height:6px; background: #ffd700; border-radius:50%; box-shadow: 0 0 20px 8px rgba(255,215,0,.3), 0 0 40px 16px rgba(255,215,0,.1); animation: cf-lantern 3s ease-in-out infinite alternate; }
.scn-chasing-french-fleet .debris { position:absolute; bottom:25%; left:60%; width:15px; height:8px; background: #4a3a2a; border-radius: 30% 30% 0 0; transform: rotate(20deg); animation: cf-debris 10s linear infinite; }
@keyframes cf-nightsky { 0% { background-position: 0% 0%; } 100% { background-position: 100% 100%; } }
@keyframes cf-moon { 0% { transform: translateX(0) scale(1); } 50% { transform: translateX(-20px) scale(1.05); } 100% { transform: translateX(0) scale(0.95); } }
@keyframes cf-sea { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-3px) scaleY(1.01); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes cf-ship { 0%,100% { transform: translateX(0) translateY(0) rotate(0deg); } 50% { transform: translateX(10px) translateY(-2px) rotate(1deg); } }
@keyframes cf-sail { 0% { transform: rotate(-2deg) scaleX(1); } 25% { transform: rotate(0deg) scaleX(0.95); } 50% { transform: rotate(2deg) scaleX(1); } 75% { transform: rotate(0deg) scaleX(1.05); } 100% { transform: rotate(-2deg) scaleX(1); } }
@keyframes cf-wave { 0% { background-position: 0% 0%; } 100% { background-position: 50px 0%; } }
@keyframes cf-lantern { 0% { opacity:.6; transform: translate(0, 0); } 50% { opacity:1; transform: translate(3px, -2px); } 100% { opacity:.7; transform: translate(0, 0); } }
@keyframes cf-debris { 0% { transform: translateX(0) rotate(20deg); } 50% { transform: translateX(-30px) rotate(40deg); } 100% { transform: translateX(0) rotate(20deg); } }

/* england-three-years */
.scn-england-three-years { background: linear-gradient(180deg, #3a2a1a 0%, #2e1f10 30%, #1a0f0a 70%, #0a0503 100%), radial-gradient(ellipse at 50% 80%, #4a3a2a 0%, transparent 60%); }
.scn-england-three-years .room-bg { position:absolute; inset:0; background: linear-gradient(135deg, #4a3a2a 0%, #2e1f10 50%, #1a0f0a 100%); animation: e3-room 12s ease-in-out infinite alternate; }
.scn-england-three-years .wall-shadow { position:absolute; top:0; left:0; right:0; bottom:0; background: radial-gradient(ellipse at 60% 30%, transparent 40%, rgba(0,0,0,.3) 100%); animation: e3-shadow 8s ease-in-out infinite alternate; }
.scn-england-three-years .table { position:absolute; bottom:20%; left:50%; width:100px; height:20px; transform:translateX(-50%); background: linear-gradient(90deg, #5c3a1a 0%, #7a5020 50%, #4a2a0a 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: e3-table 6s ease-in-out infinite; }
.scn-england-three-years .candle { position:absolute; bottom:30%; left:50%; width:6px; height:25px; background: linear-gradient(180deg, #f0e68c 0%, #daa520 30%, #8b4513 100%); border-radius: 20% 20% 10% 10%; transform:translateX(-50%); box-shadow: 0 0 10px 5px rgba(218,165,32,.3), 0 0 20px 10px rgba(218,165,32,.1); animation: e3-candle 2s ease-in-out infinite alternate; }
.scn-england-three-years .chair-chair { position:absolute; bottom:22%; left:40%; width:40px; height:40px; background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%); border-radius: 10% 10% 50% 50% / 10% 10% 60% 60%; box-shadow: inset 0 -5px 10px rgba(0,0,0,.3); animation: e3-chair 10s ease-in-out infinite; }
.scn-england-three-years .figure-sitting { position:absolute; bottom:30%; left:42%; width:20px; height:40px; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 50%, #0a0505 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: e3-sit 4s ease-in-out infinite; }
.scn-england-three-years .window { position:absolute; top:15%; left:20%; width:60px; height:80px; background: linear-gradient(180deg, #4a6a8a 0%, #2a4a6a 50%, #1a2a4a 100%); border: 4px solid #2a1a0a; border-radius: 10% 10% 5% 5%; box-shadow: inset 0 0 20px rgba(100,150,200,.2); animation: e3-window 8s ease-in-out infinite alternate; }
.scn-england-three-years .light-beam { position:absolute; top:20%; left:22%; width:30px; height:150px; background: linear-gradient(180deg, rgba(200,220,255,.15) 0%, rgba(200,220,255,.05) 50%, transparent 100%); clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%); filter: blur(2px); animation: e3-beam 10s ease-in-out infinite alternate; }
.scn-england-three-years .books { position:absolute; bottom:25%; left:55%; width:40px; height:15px; background: repeating-linear-gradient(90deg, #8b4513 0px, #8b4513 8px, #a0522d 8px, #a0522d 16px, #5c3317 16px, #5c3317 24px, #6b3a1a 24px, #6b3a1a 32px, transparent 32px, transparent 40px); border-radius: 5%; box-shadow: 0 2px 4px rgba(0,0,0,.4); animation: e3-books 6s ease-in-out infinite; }
@keyframes e3-room { 0% { opacity:.9; } 50% { opacity:1; } 100% { opacity:.85; } }
@keyframes e3-shadow { 0% { opacity:.3; } 50% { opacity:.5; } 100% { opacity:.3; } }
@keyframes e3-table { 0%,100% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(0.5deg); } }
@keyframes e3-candle { 0% { transform: translateX(-50%) translateY(0) rotate(-1deg); } 50% { transform: translateX(-50%) translateY(-2px) rotate(1deg); box-shadow: 0 0 15px 8px rgba(218,165,32,.4); } 100% { transform: translateX(-50%) translateY(0) rotate(-1deg); } }
@keyframes e3-chair { 0% { transform: scale(1); } 50% { transform: scale(0.98); } 100% { transform: scale(1); } }
@keyframes e3-sit { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } }
@keyframes e3-window { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.85; } }
@keyframes e3-beam { 0% { transform: translateX(0) rotate(0deg); opacity:0; } 50% { transform: translateX(5px) rotate(2deg); opacity:1; } 100% { transform: translateX(0) rotate(0deg); opacity:0; } }
@keyframes e3-books { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-1px); } }

/* baptism-westminster */
.scn-baptism-westminster { background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 30%, #4a3a2a 70%, #2a1a0a 100%), radial-gradient(ellipse at 50% 30%, #b0a090 0%, transparent 60%); }
.scn-baptism-westminster .stone-wall { position:absolute; inset:0; background: repeating-linear-gradient(90deg, #6a5a4a 0px, #6a5a4a 40px, #5a4a3a 40px, #5a4a3a 80px); opacity:.5; animation: bw-wall 15s linear infinite; }
.scn-baptism-westminster .arch { position:absolute; top:10%; left:30%; width:200px; height:100px; border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; border: 4px solid #4a3a2a; background: radial-gradient(ellipse at 50% 40%, rgba(200,180,140,.1) 0%, transparent 70%); box-shadow: inset 0 -10px 20px rgba(0,0,0,.3); animation: bw-arch 8s ease-in-out infinite alternate; }
.scn-baptism-westminster .window-stained { position:absolute; top:20%; left:38%; width:80px; height:120px; background: linear-gradient(135deg, #cc6633 0%, #996633 25%, #6699cc 50%, #339966 75%, #cc9933 100%); border: 6px solid #332211; border-radius: 30% 30% 10% 10%; box-shadow: inset 0 0 30px rgba(255,200,100,.3); animation: bw-stained 10s ease-in-out infinite alternate; }
.scn-baptism-westminster .light-shaft { position:absolute; top:25%; left:42%; width:40px; height:200px; background: linear-gradient(180deg, rgba(255,240,200,.2) 0%, rgba(255,240,200,.1) 30%, transparent 100%); clip-path: polygon(0% 0%, 100% 0%, 70% 100%, 30% 100%); filter: blur(3px); animation: bw-shaft 12s ease-in-out infinite alternate; }
.scn-baptism-westminster .font { position:absolute; bottom:25%; left:45%; width:50px; height:30px; background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 50%, #4a3a2a 100%); border-radius: 50% 50% 20% 20% / 60% 60% 30% 30%; box-shadow: 0 4px 8px rgba(0,0,0,.4); animation: bw-font 6s ease-in-out infinite; }
.scn-baptism-westminster .figure-kneeling { position:absolute; bottom:25%; left:48%; width:16px; height:30px; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 70%, #0a0505 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bw-kneel 4s ease-in-out infinite; }
.scn-baptism-westminster .figure-priest { position:absolute; bottom:28%; left:52%; width:18px; height:36px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 50%, #000 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: bw-priest 5s ease-in-out infinite; }
.scn-baptism-westminster .dust-motes { position:absolute; top:30%; left:40%; width:60px; height:40px; background: radial-gradient(circle at 30% 40%, rgba(255,240,200,.15) 0%, transparent 70%); filter: blur(2px); animation: bw-dust 10s linear infinite; }
@keyframes bw-wall { 0% { background-position: 0% 0%; } 100% { background-position: 200% 0%; } }
@keyframes bw-arch { 0% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.01) rotate(1deg); } 100% { transform: scale(1) rotate(0deg); } }
@keyframes bw-stained { 0% { opacity:.8; } 50% { opacity:1; box-shadow: 0 0 40px 10px rgba(255,200,100,.2); } 100% { opacity:.85; } }
@keyframes bw-shaft { 0% { transform: translateX(0) rotate(0deg); opacity:.5; } 50% { transform: translateX(5px) rotate(2deg); opacity:1; } 100% { transform: translateX(0) rotate(0deg); opacity:.5; } }
@keyframes bw-font { 0%,100% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(1.02); } }
@keyframes bw-kneel { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(2deg) scale(1.01); } }
@keyframes bw-priest { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(-1deg) scale(1.02); } }
@keyframes bw-dust { 0% { transform: translateY(0) translateX(0); } 50% { transform: translateY(-10px) translateX(10px); } 100% { transform: translateY(0) translateX(0); } }

/* black-stuff-water */
.scn-black-stuff-water { background: linear-gradient(180deg, #f9e4c0 0%, #c9b28b 30%, #5a4a3a 60%, #1a1510 100%), radial-gradient(ellipse at 80% 20%, #ffe087 0%, transparent 50%); }
.scn-black-stuff-water .sky-bsw { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #ffe8c0 0%, #b8a080 60%, transparent 100%); border-radius:0 0 40% 40% / 0 0 20% 20%; animation: bsw-sky 12s ease-in-out infinite alternate; }
.scn-black-stuff-water .ground-bsw { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1f10 100%); box-shadow: inset 0 20px 30px rgba(0,0,0,.6); animation: bsw-ground 8s ease-in-out infinite alternate; }
.scn-black-stuff-water .hole-bsw { position:absolute; bottom:25%; left:10%; width:25%; height:12%; background: #1a1510; border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; box-shadow: inset 0 -6px 10px #0a0800; animation: bsw-hole 6s ease-in-out infinite alternate; }
.scn-black-stuff-water .puddle-bsw { position:absolute; bottom:23%; left:12%; width:18%; height:6%; background: radial-gradient(ellipse, #2a1a08 0%, #1a0a00 70%); border-radius: 50%; box-shadow: 0 0 30px 8px #2a1a08; animation: bsw-puddle 4s ease-in-out infinite alternate; }
.scn-black-stuff-water .figure-bsw { position:absolute; bottom:35%; left:30%; width:14%; height:24%; background: linear-gradient(180deg, #2a251a 0%, #0f0a05 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: bsw-figure 5s ease-in-out infinite; }
.scn-black-stuff-water .hand-bsw { position:absolute; bottom:28%; left:33%; width:4%; height:10%; background: #2a251a; border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%; transform-origin: top center; animation: bsw-hand 3s ease-in-out infinite; }
.scn-black-stuff-water .leaf-bsw { position:absolute; bottom:34%; left:17%; width:6%; height:3%; background: linear-gradient(135deg, #5a7a3a 0%, #3a5a1a 100%); border-radius: 80% 20% 50% 50% / 60% 40% 60% 40%; transform: rotate(20deg); animation: bsw-leaf 7s ease-in-out infinite alternate; }
.scn-black-stuff-water .speck-bsw { position:absolute; bottom:32%; left:16%; width:1.5%; height:1.5%; background: #f0e0c0; border-radius: 50%; box-shadow: 0 0 6px 2px #f0e0c0; animation: bsw-speck 2s ease-in-out infinite alternate; }
@keyframes bsw-sky { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes bsw-ground { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(1px) } }
@keyframes bsw-hole { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.05) } 100% { transform: scaleY(.95) } }
@keyframes bsw-puddle { 0% { transform: scale(.95) } 50% { transform: scale(1.05) } 100% { transform: scale(.95) } }
@keyframes bsw-figure { 0% { transform: translateX(0) translateY(0) rotate(-1deg) } 25% { transform: translateX(2%) translateY(-2%) rotate(1deg) } 50% { transform: translateX(4%) translateY(0) rotate(-1deg) } 75% { transform: translateX(2%) translateY(-1%) rotate(0deg) } 100% { transform: translateX(0) translateY(0) rotate(1deg) } }
@keyframes bsw-hand { 0% { transform: rotate(5deg) } 50% { transform: rotate(-5deg) } 100% { transform: rotate(5deg) } }
@keyframes bsw-leaf { 0% { transform: rotate(15deg) translateY(0) } 50% { transform: rotate(25deg) translateY(-2%) } 100% { transform: rotate(15deg) translateY(0) } }
@keyframes bsw-speck { 0% { opacity:.5 } 50% { opacity:1 } 100% { opacity:.6 } }

/* sail-sighted */
.scn-sail-sighted { background: linear-gradient(180deg, #a4d8f8 0%, #7cb8e8 20%, #f0e6c0 45%, #f8c888 70%, #d4a060 100%), radial-gradient(ellipse at 70% 5%, #fffac0 0%, transparent 60%); }
.scn-sail-sighted .sky-sai { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #b8e0ff 0%, #e8d0b0 50%, transparent 100%); animation: sai-sky 20s ease-in-out infinite alternate; }
.scn-sail-sighted .sun-sai { position:absolute; top:5%; right:20%; width:12%; height:12%; background: radial-gradient(circle, #fff5c0 0%, #ffd070 50%, transparent 70%); border-radius:50%; box-shadow: 0 0 60px 30px #ffd070, 0 0 120px 60px rgba(255,208,112,.3); animation: sai-sun 8s ease-in-out infinite alternate; }
.scn-sail-sighted .ocean-sai { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #2a6888 0%, #1a4868 100%); border-radius: 30% 70% 0 0 / 50% 40% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.3); animation: sai-ocean 15s ease-in-out infinite alternate; }
.scn-sail-sighted .hull-sai { position:absolute; bottom:18%; left:55%; width:22%; height:8%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 10% 30% 40% 40% / 60% 30% 30% 40%; box-shadow: 0 4px 8px rgba(0,0,0,.5); transform: rotate(-3deg); animation: sai-hull 6s ease-in-out infinite alternate; }
.scn-sail-sighted .sail-fore-sai { position:absolute; bottom:20%; left:57%; width:10%; height:18%; background: linear-gradient(135deg, #e8e0c0 0%, #c0b8a0 100%); clip-path: polygon(0% 0%, 100% 10%, 95% 100%, 5% 100%); filter: drop-shadow(2px 4px 6px rgba(0,0,0,.3)); animation: sai-sail-fore 4s ease-in-out infinite alternate; transform-origin: bottom center; }
.scn-sail-sighted .sail-aft-sai { position:absolute; bottom:19%; left:62%; width:12%; height:22%; background: linear-gradient(135deg, #e8dcc0 0%, #b8b0a0 100%); clip-path: polygon(0% 10%, 100% 0%, 100% 100%, 0% 95%); filter: drop-shadow(2px 4px 6px rgba(0,0,0,.3)); animation: sai-sail-aft 5s ease-in-out infinite alternate; transform-origin: bottom center; }
.scn-sail-sighted .boat-sai { position:absolute; bottom:8%; left:10%; width:16%; height:5%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 10% 30% 30% 10% / 40% 40% 40% 40%; box-shadow: 0 2px 4px rgba(0,0,0,.4); animation: sai-boat 3s ease-in-out infinite; }
.scn-sail-sighted .figure-sai { position:absolute; bottom:13%; left:12%; width:4%; height:7%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sai-figure 3s ease-in-out infinite; }
@keyframes sai-sky { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes sai-sun { 0% { transform: scale(1) } 50% { transform: scale(1.1) } 100% { transform: scale(.95) } }
@keyframes sai-ocean { 0% { transform: translateY(0) } 50% { transform: translateY(-3%) } 100% { transform: translateY(2%) } }
@keyframes sai-hull { 0% { transform: rotate(-3deg) } 50% { transform: rotate(-1deg) } 100% { transform: rotate(-3deg) } }
@keyframes sai-sail-fore { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.1) scaleY(1.05) } 100% { transform: scaleX(1) } }
@keyframes sai-sail-aft { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.15) scaleY(1.02) } 100% { transform: scaleX(1) } }
@keyframes sai-boat { 0% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-5%) rotate(2deg) } 100% { transform: translateY(0) rotate(-2deg) } }
@keyframes sai-figure { 0% { transform: translateY(0) rotate(-3deg) } 25% { transform: translateY(-5%) rotate(2deg) } 50% { transform: translateY(0) rotate(-1deg) } 75% { transform: translateY(-3%) rotate(3deg) } 100% { transform: translateY(0) rotate(-3deg) } }

/* boarding-sloop */
.scn-boarding-sloop { background: linear-gradient(180deg, #f0e8d0 0%, #c8b888 30%, #7a6a5a 60%, #2a2018 100%), radial-gradient(ellipse at 50% 0%, #fff0c0 0%, transparent 40%); }
.scn-boarding-sloop .sky-bsl { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #e8e0c0 0%, #b8a888 60%, transparent 100%); border-radius:0 0 30% 30% / 0 0 20% 20%; animation: bsl-sky 10s ease-in-out infinite alternate; }
.scn-boarding-sloop .sea-bsl { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #3a5a6a 0%, #1a3a4a 100%); border-radius: 20% 30% 0 0 / 40% 50% 0 0; animation: bsl-sea 12s ease-in-out infinite alternate; }
.scn-boarding-sloop .ship-left-bsl { position:absolute; bottom:15%; left:5%; width:45%; height:25%; background: linear-gradient(90deg, #4a3a2a 0%, #5a4a3a 50%, #3a2a1a 100%); border-radius: 20% 5% 20% 20% / 30% 10% 30% 30%; box-shadow: 4px 0 8px rgba(0,0,0,.5); transform: rotate(2deg); animation: bsl-ship-left 6s ease-in-out infinite alternate; }
.scn-boarding-sloop .ship-right-bsl { position:absolute; bottom:12%; right:5%; width:50%; height:28%; background: linear-gradient(90deg, #3a2a1a 0%, #5a4a3a 50%, #4a3a2a 100%); border-radius: 5% 20% 20% 20% / 10% 30% 30% 30%; box-shadow: -4px 0 8px rgba(0,0,0,.5); transform: rotate(-2deg); animation: bsl-ship-right 6s ease-in-out infinite alternate; }
.scn-boarding-sloop .plank-bsl { position:absolute; bottom:30%; left:48%; width:10%; height:3%; background: linear-gradient(90deg, #7a6a5a 0%, #5a4a3a 100%); border-radius: 2px; transform: rotate(5deg); box-shadow: 0 2px 4px rgba(0,0,0,.4); animation: bsl-plank 3s ease-in-out infinite alternate; }
.scn-boarding-sloop .figure-left-bsl { position:absolute; bottom:20%; left:20%; width:8%; height:15%; background: linear-gradient(180deg, #2a221a 0%, #0f0a05 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: bsl-figure-left 4s ease-in-out infinite; }
.scn-boarding-sloop .figure-right-bsl { position:absolute; bottom:18%; right:25%; width:8%; height:16%; background: linear-gradient(180deg, #2a221a 0%, #0f0a05 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: bsl-figure-right 4s ease-in-out infinite 2s; }
.scn-boarding-sloop .weapon-bsl { position:absolute; bottom:25%; left:22%; width:2%; height:12%; background: #1a1510; border-radius: 20% 20% 0 0; transform: rotate(-15deg); box-shadow: 0 0 4px rgba(0,0,0,.5); animation: bsl-weapon 2s ease-in-out infinite alternate; }
@keyframes bsl-sky { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes bsl-sea { 0% { transform: translateY(0) } 50% { transform: translateY(-2%) } 100% { transform: translateY(1%) } }
@keyframes bsl-ship-left { 0% { transform: rotate(2deg) } 50% { transform: rotate(0deg) } 100% { transform: rotate(2deg) } }
@keyframes bsl-ship-right { 0% { transform: rotate(-2deg) } 50% { transform: rotate(0deg) } 100% { transform: rotate(-2deg) } }
@keyframes bsl-plank { 0% { transform: rotate(5deg) translateX(0) } 50% { transform: rotate(3deg) translateX(-3%) } 100% { transform: rotate(5deg) translateX(0) } }
@keyframes bsl-figure-left { 0% { transform: translateY(0) rotate(-2deg) } 25% { transform: translateY(-4%) rotate(1deg) } 50% { transform: translateY(0) rotate(2deg) } 75% { transform: translateY(-2%) rotate(-1deg) } 100% { transform: translateY(0) rotate(-2deg) } }
@keyframes bsl-figure-right { 0% { transform: translateY(0) rotate(2deg) } 25% { transform: translateY(-4%) rotate(-1deg) } 50% { transform: translateY(0) rotate(-2deg) } 75% { transform: translateY(-2%) rotate(1deg) } 100% { transform: translateY(0) rotate(2deg) } }
@keyframes bsl-weapon { 0% { transform: rotate(-15deg) } 50% { transform: rotate(-10deg) } 100% { transform: rotate(-15deg) } }

/* wrecked-schooner */
.scn-wrecked-schooner { background: linear-gradient(180deg, #c8e0f0 0%, #a0c8e0 30%, #f0e8c0 50%, #d4b88a 70%, #a08060 100%), radial-gradient(ellipse at 70% 10%, #fff0c0 0%, transparent 60%); }
.scn-wrecked-schooner .sky-wsch { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #d0e8ff 0%, #e8d8b0 50%, transparent 100%); animation: wsch-sky 18s ease-in-out infinite alternate; }
.scn-wrecked-schooner .sun-wsch { position:absolute; top:8%; left:25%; width:10%; height:10%; background: radial-gradient(circle, #fff5d0 0%, #ffd880 50%, transparent 70%); border-radius:50%; box-shadow: 0 0 40px 20px #ffd880, 0 0 80px 40px rgba(255,216,128,.3); animation: wsch-sun 6s ease-in-out infinite alternate; }
.scn-wrecked-schooner .sea-wsch { position:absolute; bottom:0; left:0; right:0; height:38%; background: linear-gradient(180deg, #3a7a9a 0%, #1a5a7a 100%); border-radius: 40% 60% 0 0 / 50% 40% 0 0; animation: wsch-sea 14s ease-in-out infinite alternate; }
.scn-wrecked-schooner .wreck-hull-wsch { position:absolute; bottom:15%; right:15%; width:30%; height:12%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 20% 30% 40% 40% / 50% 40% 30% 30%; transform: rotate(5deg); box-shadow: 0 4px 8px rgba(0,0,0,.4); animation: wsch-hull 8s ease-in-out infinite alternate; }
.scn-wrecked-schooner .mast-wsch { position:absolute; bottom:16%; right:25%; width:3%; height:28%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0f05 100%); border-radius: 20% 20% 0 0; transform: rotate(8deg); box-shadow: 2px 0 4px rgba(0,0,0,.3); animation: wsch-mast 5s ease-in-out infinite alternate; }
.scn-wrecked-schooner .island-wsch { position:absolute; bottom:10%; left:5%; width:30%; height:15%; background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; box-shadow: inset 0 -8px 12px rgba(0,0,0,.3); animation: wsch-island 10s ease-in-out infinite alternate; }
.scn-wrecked-schooner .palm-wsch { position:absolute; bottom:18%; left:10%; width:5%; height:18%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0f05 100%); border-radius: 20% 20% 0 0; transform: rotate(-10deg); animation: wsch-palm 6s ease-in-out infinite alternate; }
.scn-wrecked-schooner .sloop-wsch { position:absolute; bottom:5%; right:5%; width:20%; height:7%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 10% 30% 30% 10% / 40% 40% 40% 40%; box-shadow: 0 2px 4px rgba(0,0,0,.4); animation: wsch-sloop 4s ease-in-out infinite alternate; }
@keyframes wsch-sky { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes wsch-sun { 0% { transform: scale(1) } 50% { transform: scale(1.08) } 100% { transform: scale(.95) } }
@keyframes wsch-sea { 0% { transform: translateY(0) } 50% { transform: translateY(-2%) } 100% { transform: translateY(1%) } }
@keyframes wsch-hull { 0% { transform: rotate(5deg) } 50% { transform: rotate(3deg) } 100% { transform: rotate(5deg) } }
@keyframes wsch-mast { 0% { transform: rotate(8deg) } 50% { transform: rotate(6deg) } 100% { transform: rotate(8deg) } }
@keyframes wsch-island { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-2%) scale(1.02) } 100% { transform: translateY(0) scale(1) } }
@keyframes wsch-palm { 0% { transform: rotate(-10deg) } 50% { transform: rotate(-8deg) } 100% { transform: rotate(-10deg) } }
@keyframes wsch-sloop { 0% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-3%) rotate(2deg) } 100% { transform: translateY(0) rotate(-2deg) } }

.scn-with-chieftain { background: linear-gradient(180deg, #d4c8a0 0%, #887a5a 60%, #4a3e2a 100%), radial-gradient(ellipse at 50% 0%, #f0e0b0 0%, transparent 60%); }
.scn-with-chieftain .bg-hut { position:absolute; inset:0; background: linear-gradient(135deg, #56482a 0%, #3a2e18 50%, #2a1e0e 100%); box-shadow: inset 0 0 60px rgba(0,0,0,.6); animation: wc-shade 12s ease-in-out infinite alternate; }
.scn-with-chieftain .forge-glow { position:absolute; bottom:30%; left:40%; width:30%; height:40%; background: radial-gradient(circle at 50% 30%, #ffb040 0%, #c07020 40%, transparent 70%); border-radius: 50%; opacity:.7; animation: wc-forge 3s ease-in-out infinite alternate; }
.scn-with-chieftain .anvil { position:absolute; bottom:28%; left:42%; width:50px; height:20px; background: linear-gradient(180deg, #5a4a3a 0%, #2e2216 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 3px 8px rgba(0,0,0,.5); transform: skewX(-5deg); animation: wc-anvil 9s ease-in-out infinite; }
.scn-with-chieftain .bellows { position:absolute; bottom:30%; left:55%; width:30px; height:40px; background: linear-gradient(180deg, #7a6a4a 0%, #4a3e28 100%); border-radius: 40% 40% 20% 20%; transform-origin: bottom; animation: wc-bellows 2s ease-in-out infinite; }
.scn-with-chieftain .chieftain { position:absolute; bottom:24%; left:48%; width:40px; height:80px; background: linear-gradient(180deg, #8a7a5a 0%, #5a4e32 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: scaleX(-1); animation: wc-walk 4s ease-in-out infinite alternate; }
.scn-with-chieftain .equiano { position:absolute; bottom:22%; left:35%; width:30px; height:60px; background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform: scale(.95); animation: wc-pump 2s ease-in-out infinite; }
.scn-with-chieftain .gold-glint { position:absolute; bottom:32%; left:52%; width:8px; height:8px; background: radial-gradient(circle, #ffe680 0%, #c07020 80%); border-radius: 50%; box-shadow: 0 0 20px 6px rgba(255,230,128,.6); animation: wc-glint 4s ease-in-out infinite; }
.scn-with-chieftain .sunray { position:absolute; top:0; left:30%; width:40%; height:100%; background: linear-gradient(180deg, rgba(255,240,200,.15) 0%, transparent 70%); clip-path: polygon(20% 0, 80% 0, 100% 100%, 0% 100%); animation: wc-sweep 20s linear infinite; }

@keyframes wc-shade { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.75 } }
@keyframes wc-forge { 0% { transform: scale(1) rotate(0); opacity:.6 } 50% { transform: scale(1.2) rotate(5deg); opacity:1 } 100% { transform: scale(1) rotate(-3deg); opacity:.7 } }
@keyframes wc-anvil { 0%,100% { transform: translateY(0) skewX(-5deg) } 50% { transform: translateY(-2px) skewX(-3deg) } }
@keyframes wc-bellows { 0% { transform: scaleY(.9) } 50% { transform: scaleY(1.1) } 100% { transform: scaleY(.9) } }
@keyframes wc-walk { 0% { transform: translateX(0) rotate(-2deg) } 50% { transform: translateX(8px) rotate(0) } 100% { transform: translateX(0) rotate(2deg) } }
@keyframes wc-pump { 0% { transform: translateY(0) rotate(5deg) } 50% { transform: translateY(-5px) rotate(-5deg) } 100% { transform: translateY(0) rotate(5deg) } }
@keyframes wc-glint { 0% { opacity:.3; transform: scale(.8) } 50% { opacity:1; transform: scale(1.3) } 100% { opacity:.5; transform: scale(.9) } }
@keyframes wc-sweep { 0% { transform: translateX(-10%) rotate(0) } 100% { transform: translateX(10%) rotate(5deg) } }

.scn-chicken-incident { background: linear-gradient(180deg, #b0a080 0%, #7a6a50 40%, #4a3a28 100%), radial-gradient(ellipse at 50% 0%, #f0d8a0 0%, transparent 70%); }
.scn-chicken-incident .bg-yard { position:absolute; inset:0; background: linear-gradient(180deg, #c0b090 0%, #887a60 50%, #4a3a28 100%); animation: ci-dazzle 10s linear infinite alternate; }
.scn-chicken-incident .sun-hard { position:absolute; top:0; right:10%; width:60px; height:60px; background: radial-gradient(circle, #fff0c0 0%, #f0d090 60%, transparent 80%); border-radius: 50%; box-shadow: 0 0 40px 20px rgba(240,200,120,.5); animation: ci-sun 8s ease-in-out infinite alternate; }
.scn-chicken-incident .woman-run { position:absolute; bottom:20%; left:25%; width:35px; height:70px; background: linear-gradient(180deg, #4a3a28 0%, #2a1e12 100%); border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%; transform-origin: bottom; animation: ci-charge 0.8s ease-in-out infinite; }
.scn-chicken-incident .chicken-1 { position:absolute; bottom:22%; right:30%; width:20px; height:15px; background: radial-gradient(ellipse 70% 60% at 30% 40%, #c07040 0%, #8a5030 100%); border-radius: 60% 60% 40% 40%; transform: rotate(-20deg); animation: ci-flap 0.4s ease-in-out infinite; }
.scn-chicken-incident .chicken-2 { position:absolute; bottom:20%; right:45%; width:18px; height:12px; background: radial-gradient(ellipse 70% 60% at 30% 40%, #b06040 0%, #7a4030 100%); border-radius: 60% 60% 40% 40%; transform: rotate(30deg); animation: ci-flap 0.45s ease-in-out infinite 0.2s; }
.scn-chicken-incident .pebble-fly { position:absolute; bottom:40%; left:40%; width:6px; height:6px; background: radial-gradient(circle, #b0a080 0%, #7a6a50 100%); border-radius: 50%; box-shadow: inset 0 0 2px rgba(0,0,0,.5); animation: ci-pebble 1.5s ease-in-out infinite; }
.scn-chicken-incident .shadow-woman { position:absolute; bottom:10%; left:20%; width:80px; height:40px; background: linear-gradient(180deg, rgba(0,0,0,.2) 0%, rgba(0,0,0,.5) 100%); border-radius: 50%; transform: skewX(-20deg); animation: ci-shadow 1.6s ease-in-out infinite; }

@keyframes ci-dazzle { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes ci-sun { 0% { transform: scale(1) translateY(0); opacity:.8 } 50% { transform: scale(1.1) translateY(-3px); opacity:1 } 100% { transform: scale(.95) translateY(0); opacity:.7 } }
@keyframes ci-charge { 0% { transform: translateX(0) rotate(5deg) } 25% { transform: translateX(10px) rotate(-3deg) } 50% { transform: translateX(20px) rotate(5deg) } 75% { transform: translateX(10px) rotate(-3deg) } 100% { transform: translateX(0) rotate(5deg) } }
@keyframes ci-flap { 0% { transform: rotate(-20deg) translateY(0) } 50% { transform: rotate(-15deg) translateY(-2px) } 100% { transform: rotate(-20deg) translateY(0) } }
@keyframes ci-pebble { 0% { transform: translate(0,0) scale(1) } 25% { transform: translate(30px,-20px) scale(1.3) } 50% { transform: translate(60px,-5px) scale(1) } 75% { transform: translate(90px,15px) scale(.8) } 100% { transform: translate(0,0) scale(1) } }
@keyframes ci-shadow { 0% { transform: scaleX(1) skewX(-20deg) } 25% { transform: scaleX(1.2) skewX(-15deg) } 50% { transform: scaleX(1) skewX(-20deg) } 75% { transform: scaleX(1.1) skewX(-18deg) } 100% { transform: scaleX(1) skewX(-20deg) } }

.scn-hiding-in-thicket { background: linear-gradient(180deg, #1a2a1a 0%, #0e1a0e 40%, #060a06 100%), radial-gradient(ellipse at 50% 0%, #1a2a1a 0%, transparent 70%); }
.scn-hiding-in-thicket .bg-forest { position:absolute; inset:0; background: linear-gradient(180deg, #0e1a0e 0%, #060e06 60%, #020402 100%); box-shadow: inset 0 0 40px rgba(0,0,0,.8); animation: ht-darken 10s ease-in-out infinite alternate; }
.scn-hiding-in-thicket .bushes-front { position:absolute; bottom:0; left:0; right:0; height:60%; background: linear-gradient(180deg, #142010 0%, #0a140a 100%); clip-path: polygon(0% 30%, 10% 20%, 20% 35%, 30% 15%, 40% 30%, 50% 10%, 60% 25%, 70% 5%, 80% 20%, 90% 15%, 100% 30%, 100% 100%, 0% 100%); animation: ht-breathe 6s ease-in-out infinite; }
.scn-hiding-in-thicket .equiano-crouch { position:absolute; bottom:35%; left:45%; width:25px; height:40px; background: linear-gradient(180deg, #1a1a0e 0%, #0a0a06 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform: scale(.9); animation: ht-crouch 3s ease-in-out infinite; }
.scn-hiding-in-thicket .searcher-leg { position:absolute; bottom:20%; left:70%; width:15px; height:50px; background: linear-gradient(180deg, #2a221a 0%, #1a120a 100%); border-radius: 10% 10% 20% 20%; transform: rotate(8deg); animation: ht-step 2s ease-in-out infinite; }
.scn-hiding-in-thicket .lantern-hint { position:absolute; top:25%; left:75%; width:8px; height:8px; background: radial-gradient(circle, #c09040 0%, #603020 60%, transparent 80%); border-radius: 50%; box-shadow: 0 0 30px 10px rgba(192,144,64,.3); animation: ht-lantern 8s ease-in-out infinite alternate; }
.scn-hiding-in-thicket .leaf-wind { position:absolute; bottom:50%; left:20%; width:10px; height:6px; background: #142010; border-radius: 0 50% 50% 0; transform: rotate(30deg); animation: ht-leaf 7s linear infinite; }

@keyframes ht-darken { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes ht-breathe { 0% { transform: scale(1) } 50% { transform: scale(1.02) translateY(-2px) } 100% { transform: scale(1) } }
@keyframes ht-crouch { 0% { transform: scale(.9) translateY(0) rotate(-3deg) } 50% { transform: scale(.85) translateY(-1px) rotate(2deg) } 100% { transform: scale(.9) translateY(0) rotate(-3deg) } }
@keyframes ht-step { 0% { transform: translateY(0) rotate(8deg) } 25% { transform: translateY(-5px) rotate(10deg) } 50% { transform: translateY(0) rotate(8deg) } 75% { transform: translateY(-3px) rotate(6deg) } 100% { transform: translateY(0) rotate(8deg) } }
@keyframes ht-lantern { 0% { opacity:.2; transform: scale(.8) } 50% { opacity:.6; transform: scale(1.1) } 100% { opacity:.3; transform: scale(.9) } }
@keyframes ht-leaf { 0% { transform: translateX(0) rotate(30deg) } 100% { transform: translateX(-20vw) rotate(70deg) } }

.scn-seeking-refuge { background: linear-gradient(180deg, #1a1612 0%, #0e0a08 40%, #040202 100%), radial-gradient(ellipse at 50% 0%, #2a221a 0%, transparent 60%); }
.scn-seeking-refuge .bg-kitchen { position:absolute; inset:0; background: linear-gradient(180deg, #1a1410 0%, #0a0806 60%, #020202 100%); box-shadow: inset 0 0 80px rgba(0,0,0,.9); animation: sr-shadow 12s ease-in-out infinite alternate; }
.scn-seeking-refuge .hearth-stone { position:absolute; bottom:0; left:20%; right:20%; height:15%; background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%); border-radius: 30% 30% 0 0; box-shadow: 0 -4px 10px rgba(0,0,0,.5); animation: sr-stone 15s ease-in-out infinite; }
.scn-seeking-refuge .ember-glow { position:absolute; bottom:12%; left:38%; width:60px; height:40px; background: radial-gradient(circle, #c05020 0%, #803010 40%, transparent 70%); border-radius: 50%; opacity:.6; animation: sr-ember 4s ease-in-out infinite alternate; }
.scn-seeking-refuge .equiano-lying { position:absolute; bottom:8%; left:30%; width:60px; height:15px; background: linear-gradient(180deg, #2a1a0e 0%, #1a0e06 100%); border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%; transform: rotate(-5deg); animation: sr-curl 6s ease-in-out infinite; }
.scn-seeking-refuge .old-woman { position:absolute; bottom:15%; right:20%; width:30px; height:60px; background: linear-gradient(180deg, #2a221a 0%, #1a120a 100%); border-radius: 40% 40% 30% 30% / 55% 55% 30% 30%; transform: scale(.9); animation: sr-still 8s ease-in-out infinite; }
.scn-seeking-refuge .ash-mound { position:absolute; bottom:0; left:35%; width:40px; height:10px; background: radial-gradient(ellipse 80% 60% at 50% 100%, #2a221a 0%, #0e0a08 100%); border-radius: 50%; box-shadow: inset 0 2px 4px rgba(0,0,0,.4); animation: sr-ash 10s linear infinite; }

@keyframes sr-shadow { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes sr-stone { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(1) } }
@keyframes sr-ember { 0% { opacity:.4; transform: scale(.8) rotate(0) } 50% { opacity:.7; transform: scale(1.1) rotate(5deg) } 100% { opacity:.5; transform: scale(.9) rotate(-3deg) } }
@keyframes sr-curl { 0% { transform: translateY(0) rotate(-5deg) scale(1) } 50% { transform: translateY(-2px) rotate(-8deg) scale(1.02) } 100% { transform: translateY(0) rotate(-5deg) scale(1) } }
@keyframes sr-still { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-1px) rotate(2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes sr-ash { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.05) } 100% { transform: scaleX(1) } }

/* Scene: barbadoes-sale */
.scn-barbadoes-sale {
  background: 
    linear-gradient(180deg, #f4a460 0%, #8b4513 40%, #4a2c0a 100%),
    radial-gradient(ellipse at 20% 30%, #f4a460 0%, transparent 60%);
}
.scn-barbadoes-sale .sun {
  position: absolute; top: 5%; right: 10%; width: 80px; height: 80px;
  background: radial-gradient(circle, #ffd700 0%, #ff8c00 50%, transparent 70%);
  border-radius: 50%; animation: bs-sun-pulse 6s ease-in-out infinite alternate;
}
.scn-barbadoes-sale .block {
  position: absolute; bottom: 30%; left: 50%; transform: translateX(-50%);
  width: 140px; height: 40px;
  background: linear-gradient(180deg, #6b3a2a 0%, #3a1a0a 100%);
  border-radius: 4px; box-shadow: 0 8px 15px rgba(0,0,0,.6);
}
.scn-barbadoes-sale .figure-up {
  position: absolute; bottom: 42%; left: 50%; transform: translateX(-50%);
  width: 30px; height: 50px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: bs-fig-still 4s ease-in-out infinite;
}
.scn-barbadoes-sale .crowd-left {
  position: absolute; bottom: 28%; left: 5%; width: 100px; height: 60px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 60% 40% 0 0 / 80% 60% 0 0;
  filter: blur(2px); animation: bs-crowd-sway 7s ease-in-out infinite alternate;
}
.scn-barbadoes-sale .crowd-right {
  position: absolute; bottom: 28%; right: 5%; width: 100px; height: 60px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 40% 60% 0 0 / 60% 80% 0 0;
  filter: blur(2px); animation: bs-crowd-sway 7s ease-in-out infinite alternate-reverse;
}
.scn-barbadoes-sale .chain {
  position: absolute; bottom: 35%; left: 20%; width: 60px; height: 10px;
  background: repeating-linear-gradient(90deg, #a0522d 0px, #a0522d 8px, transparent 8px, transparent 12px);
  border-radius: 50%; transform: rotate(-15deg); animation: bs-chain-swing 5s ease-in-out infinite;
}
.scn-barbadoes-sale .drum {
  position: absolute; bottom: 36%; left: 8%; width: 30px; height: 20px;
  background: linear-gradient(90deg, #8b4513, #5c2e0a);
  border-radius: 50%; box-shadow: 0 2px 6px rgba(0,0,0,.5);
}
.scn-barbadoes-sale .drum::after {
  content: ''; position: absolute; top: -10px; left: 14px;
  width: 4px; height: 14px; background: #3a1a0a; border-radius: 2px;
  transform: rotate(20deg); animation: bs-drum-beat 0.6s ease infinite;
}
@keyframes bs-sun-pulse { 0% { transform: scale(1); opacity: .9; } 50% { transform: scale(1.05); opacity: 1; } 100% { transform: scale(1); opacity: .85; } }
@keyframes bs-fig-still { 0%,100% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(2deg) translateY(-2px); } }
@keyframes bs-crowd-sway { 0% { transform: translateX(0); } 50% { transform: translateX(4px); } 100% { transform: translateX(-4px); } }
@keyframes bs-chain-swing { 0% { transform: rotate(-15deg); } 50% { transform: rotate(-10deg) translateY(-3px); } 100% { transform: rotate(-15deg); } }
@keyframes bs-drum-beat { 0%,100% { transform: rotate(20deg) translateY(0); } 50% { transform: rotate(20deg) translateY(-6px); } }

/* Scene: virginia-arrival */
.scn-virginia-arrival {
  background:
    linear-gradient(180deg, #87ceeb 0%, #add8e6 30%, #f0e68c 60%, #deb887 100%),
    radial-gradient(ellipse at 50% 80%, #f0e68c 0%, transparent 70%);
}
.scn-virginia-arrival .sun-horizon {
  position: absolute; bottom: 30%; left: 70%; width: 60px; height: 60px;
  background: radial-gradient(circle, #ffd700 0%, #ffa500 40%, transparent 60%);
  border-radius: 50%; animation: va-sunrise 15s ease-in-out infinite alternate;
}
.scn-virginia-arrival .ship {
  position: absolute; bottom: 28%; left: 20%; width: 120px; height: 100px;
  background: linear-gradient(180deg, #6b4226 0%, #3a1e0a 100%);
  border-radius: 30% 30% 0 0 / 20% 20% 0 0;
  clip-path: polygon(10% 100%, 90% 100%, 85% 30%, 60% 0, 40% 0, 15% 30%);
  animation: va-ship-sway 8s ease-in-out infinite;
}
.scn-virginia-arrival .sail {
  position: absolute; bottom: 55%; left: 40%; width: 50px; height: 70px;
  background: linear-gradient(135deg, #f5f5dc 0%, #d2b48c 100%);
  border-radius: 0 0 50% 50%;
  clip-path: polygon(50% 0, 100% 30%, 100% 100%, 0 100%, 0 30%);
  animation: va-sail-billow 7s ease-in-out infinite alternate;
}
.scn-virginia-arrival .figure-deck {
  position: absolute; bottom: 32%; left: 38%; width: 16px; height: 30px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: va-figure-watch 6s ease-in-out infinite;
}
.scn-virginia-arrival .shore {
  position: absolute; bottom: 20%; left: 65%; width: 90px; height: 30px;
  background: linear-gradient(180deg, #8b7355 0%, #556b2f 100%);
  border-radius: 60% 40% 0 0 / 100% 80% 0 0;
  animation: va-shore-glint 10s ease-in-out infinite alternate;
}
.scn-virginia-arrival .wave {
  position: absolute; bottom: 10%; left: 0; right: 0; height: 30px;
  background: linear-gradient(180deg, #4682b4 0%, transparent 100%);
  border-radius: 50%; filter: blur(3px); animation: va-wave-move 4s ease-in-out infinite alternate;
}
.scn-virginia-arrival .wave::after {
  content: ''; position: absolute; top: 10px; left: 10%; width: 80%; height: 20px;
  background: linear-gradient(180deg, rgba(70,130,180,.6), transparent);
  border-radius: 50%; animation: va-wave-swell 6s ease-in-out infinite alternate;
}
.scn-virginia-arrival .gull {
  position: absolute; top: 25%; right: 20%; width: 20px; height: 10px;
  background: linear-gradient(90deg, #fff, #ddd);
  border-radius: 50% 50% 0 0;
  clip-path: polygon(0% 100%, 30% 0%, 70% 0%, 100% 100%, 70% 50%, 30% 50%);
  animation: va-gull-soar 12s linear infinite;
}
@keyframes va-sunrise { 0% { transform: scale(1); opacity: .8; } 50% { transform: scale(1.1); opacity: 1; } 100% { transform: scale(1); opacity: .9; } }
@keyframes va-ship-sway { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(1deg); } }
@keyframes va-sail-billow { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.08); } 100% { transform: scaleX(1); } }
@keyframes va-figure-watch { 0%,100% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(3px) rotate(2deg); } }
@keyframes va-shore-glint { 0% { filter: brightness(1); } 50% { filter: brightness(1.2); } 100% { filter: brightness(1); } }
@keyframes va-wave-move { 0% { transform: translateX(0); } 100% { transform: translateX(20px); } }
@keyframes va-wave-swell { 0% { height: 20px; } 50% { height: 25px; } 100% { height: 20px; } }
@keyframes va-gull-soar { 0% { transform: translateX(0) translateY(0); } 50% { transform: translateX(-30px) translateY(-10px); } 100% { transform: translateX(0) translateY(0); } }

/* Scene: item-watch-picture */
.scn-item-watch-picture {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #16213e 50%, #0f3460 100%),
    radial-gradient(ellipse at 50% 60%, #ffd700 0%, transparent 50%);
}
.scn-item-watch-picture .table {
  position: absolute; bottom: 20%; left: 30%; right: 30%; height: 20px;
  background: linear-gradient(180deg, #5c4033 0%, #3a2518 100%);
  border-radius: 4px; box-shadow: 0 -4px 10px rgba(0,0,0,.7);
}
.scn-item-watch-picture .candle {
  position: absolute; bottom: 35%; left: 45%; width: 12px; height: 30px;
  background: linear-gradient(180deg, #f5deb3 0%, #d2b48c 100%);
  border-radius: 3px 3px 0 0;
}
.scn-item-watch-picture .candle::after {
  content: ''; position: absolute; top: -8px; left: 2px; width: 8px; height: 10px;
  background: radial-gradient(circle, #ffd700 0%, #ff8c00 50%, transparent 70%);
  border-radius: 50%; animation: iw-flame-flicker 0.2s ease infinite alternate;
}
.scn-item-watch-picture .watch {
  position: absolute; bottom: 40%; left: 30%; width: 30px; height: 30px;
  background: radial-gradient(circle, #ffd700 0%, #b8860b 70%);
  border-radius: 50%; border: 2px solid #8b6914;
  animation: iw-glow 4s ease-in-out infinite alternate;
}
.scn-item-watch-picture .watch::after {
  content: ''; position: absolute; top: -5px; left: 50%; width: 2px; height: 15px;
  background: #8b6914; transform: translateX(-50%);
  border-radius: 1px; animation: iw-chain-swing 3s ease-in-out infinite;
}
.scn-item-watch-picture .picture {
  position: absolute; bottom: 30%; right: 25%; width: 50px; height: 60px;
  background: linear-gradient(135deg, #2a1a0a 0%, #0a0500 100%);
  border: 3px solid #8b6914; border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(255,215,0,.3);
}
.scn-item-watch-picture .muzzle-woman {
  position: absolute; bottom: 15%; left: 15%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
}
.scn-item-watch-picture .muzzle-woman::before {
  content: ''; position: absolute; top: 7px; left: -8px; width: 20px; height: 6px;
  background: #444; border-radius: 2px;
  box-shadow: inset 0 2px 0 #666;
}
.scn-item-watch-picture .shadow {
  position: absolute; bottom: 18%; left: 20%; width: 100px; height: 40px;
  background: rgba(0,0,0,.5); filter: blur(8px);
  transform: skewX(-20deg); animation: iw-shadow-shift 5s ease-in-out infinite alternate;
}
@keyframes iw-flame-flicker { 0% { transform: scale(1); opacity: .8; } 100% { transform: scale(1.1); opacity: 1; } }
@keyframes iw-glow { 0% { box-shadow: 0 0 8px #ffd700; } 50% { box-shadow: 0 0 20px #ffd700, 0 0 30px rgba(255,215,0,.4); } 100% { box-shadow: 0 0 12px #ffd700; } }
@keyframes iw-chain-swing { 0%,100% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(15deg); } }
@keyframes iw-shadow-shift { 0% { transform: skewX(-20deg) translateX(0); } 100% { transform: skewX(-20deg) translateX(10px); } }

/* Scene: pascal-ship */
.scn-pascal-ship {
  background:
    linear-gradient(180deg, #2c2416 0%, #4a3828 40%, #3a2a1a 100%),
    radial-gradient(ellipse at 30% 40%, #6b5b3e 0%, transparent 60%);
}
.scn-pascal-ship .wall-panel {
  position: absolute; inset: 0;
  background: repeating-linear-gradient(90deg, transparent 0px, transparent 40px, rgba(0,0,0,.1) 40px, rgba(0,0,0,.1) 42px);
  animation: ps-panel-sway 10s ease-in-out infinite alternate;
}
.scn-pascal-ship .porthole {
  position: absolute; top: 20%; right: 20%; width: 50px; height: 50px;
  border: 8px solid #5c4033; border-radius: 50%;
  background: radial-gradient(circle, #1a3a5a 0%, #0a1a2a 100%);
  box-shadow: inset 0 0 20px rgba(0,0,0,.5);
}
.scn-pascal-ship .porthole::after {
  content: ''; position: absolute; top: 50%; left: 50%;
  width: 4px; height: 50px; background: rgba(0,0,0,.2);
  transform: translate(-50%, -50%);
}
.scn-pascal-ship .hammock {
  position: absolute; bottom: 25%; left: 10%; width: 50px; height: 70px;
  background: linear-gradient(135deg, #8b7355 0%, #5c4033 100%);
  border-radius: 50% 50% 30% 30% / 40% 40% 30% 30%;
  transform: rotate(10deg); animation: ps-hammock-sway 8s ease-in-out infinite;
}
.scn-pascal-ship .figure-kneel {
  position: absolute; bottom: 18%; left: 45%; width: 30px; height: 45px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-5deg); animation: ps-kneel-tremble 4s ease-in-out infinite;
}
.scn-pascal-ship .hand-cuff {
  position: absolute; bottom: 35%; left: 60%; width: 25px; height: 15px;
  background: #5c4033;
  border-radius: 4px; transform: rotate(-20deg);
  box-shadow: 0 2px 6px rgba(0,0,0,.5);
  animation: ps-hand-reach 6s ease-in-out infinite;
}
.scn-pascal-ship .hand-cuff::after {
  content: ''; position: absolute; top: -10px; left: 5px;
  width: 15px; height: 12px;
  background: linear-gradient(90deg, #8b4513, #5c2e0a);
  border-radius: 50% 50% 0 0;
}
.scn-pascal-ship .rope-coil {
  position: absolute; bottom: 10%; right: 15%; width: 40px; height: 15px;
  background: linear-gradient(180deg, #d2b48c 0%, #8b7355 100%);
  border-radius: 50%; filter: blur(1px);
  animation: ps-rope-uncoil 20s linear infinite;
}
@keyframes ps-panel-sway { 0% { transform: translateX(0); } 50% { transform: translateX(2px); } 100% { transform: translateX(-2px); } }
@keyframes ps-hammock-sway { 0%,100% { transform: rotate(10deg) translateY(0); } 50% { transform: rotate(10deg) translateY(-4px); } }
@keyframes ps-kneel-tremble { 0%,100% { transform: rotate(-5deg) translateX(0); } 30% { transform: rotate(-5deg) translateX(2px); } 60% { transform: rotate(-5deg) translateX(-2px); } }
@keyframes ps-hand-reach { 0% { transform: rotate(-20deg) translateX(0); } 50% { transform: rotate(-20deg) translateX(5px); } 100% { transform: rotate(-20deg) translateX(0); } }
@keyframes ps-rope-uncoil { 0% { transform: rotate(0deg) scaleX(1); } 50% { transform: rotate(180deg) scaleX(1.2); } 100% { transform: rotate(360deg) scaleX(1); } }

/* scene: london-return */
.scn-london-return {
  background: 
    linear-gradient(180deg, #ff9966 0%, #ffcc99 25%, #87ceeb 55%, #2a6496 100%),
    radial-gradient(ellipse at 50% 100%, #2a6496 0%, transparent 70%);
}
.scn-london-return .sky-lr {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #ffc275 0%, #ff9966 40%, #ffb380 100%);
  animation: lr-sky 12s ease-in-out infinite alternate;
}
.scn-london-return .water-lr {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #3a7ca5 0%, #1e4d6b 100%);
  animation: lr-water 8s ease-in-out infinite alternate;
}
.scn-london-return .shore-lr {
  position: absolute; bottom: 40%; left: 10%; right: 60%; height: 6%;
  background: linear-gradient(90deg, #6b4c3b 0%, #8b6c4b 100%);
  border-radius: 0 40% 0 0;
}
.scn-london-return .stairs-lr {
  position: absolute; bottom: 38%; left: 15%; width: 60px; height: 20px;
  background: repeating-linear-gradient(0deg, #6b4c3b 0px, #6b4c3b 4px, #9a7a5a 4px, #9a7a5a 8px);
  transform: skewX(-10deg);
}
.scn-london-return .ship-lr {
  position: absolute; bottom: 50%; left: 30%; width: 90px; height: 30px;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 20% 20%;
  animation: lr-bob 6s ease-in-out infinite;
}
.scn-london-return .sail-lr {
  position: absolute; bottom: 62%; left: 37%; width: 30px; height: 50px;
  background: linear-gradient(135deg, #f0f0e0 0%, #d0c8b0 100%);
  clip-path: polygon(0 0, 100% 0, 50% 100%);
  transform-origin: bottom center;
  animation: lr-sail 4s ease-in-out infinite alternate 0.5s;
}
.scn-london-return .figure-lr {
  position: absolute; bottom: 52%; left: 35%; width: 8px; height: 20px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0e07 100%);
  border-radius: 50% 50% 30% 30%;
  animation: lr-fig 5s ease-in-out infinite;
}
@keyframes lr-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes lr-water {
  0% { transform: translateY(0); }
  50% { transform: translateY(-4px); }
  100% { transform: translateY(0); }
}
@keyframes lr-bob {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(1deg); }
}
@keyframes lr-sail {
  0% { transform: rotate(0deg) scaleX(1); }
  50% { transform: rotate(3deg) scaleX(1.05); }
  100% { transform: rotate(-2deg) scaleX(0.95); }
}
@keyframes lr-fig {
  0%, 100% { transform: translateX(0) translateY(0); }
  50% { transform: translateX(4px) translateY(-1px); }
}

/* scene: meeting-pascal */
.scn-meeting-pascal {
  background: 
    linear-gradient(180deg, #5b8cb8 0%, #9fc5e8 40%, #c7e0b0 70%, #8fbc8f 100%),
    radial-gradient(ellipse at 50% 0%, #f5e6cc 0%, transparent 60%);
}
.scn-meeting-pascal .sky-mp {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #8fc1e0 0%, #b5d8ef 100%);
  animation: mp-sky 20s ease-in-out infinite alternate;
}
.scn-meeting-pascal .grass-mp {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #8fbc8f 0%, #6b9e6b 100%);
  border-radius: 30% 50% 0 0 / 20% 30% 0 0;
  animation: mp-grass 6s ease-in-out infinite alternate;
}
.scn-meeting-pascal .tree-l-mp {
  position: absolute; bottom: 30%; left: 8%; width: 50px; height: 120px;
  background: linear-gradient(180deg, #5c3a1e 0%, #3a2212 100%);
  border-radius: 30% 30% 10% 10%;
  transform-origin: bottom center;
  animation: mp-tree 8s ease-in-out infinite alternate;
}
.scn-meeting-pascal .tree-r-mp {
  position: absolute; bottom: 28%; right: 5%; width: 60px; height: 130px;
  background: linear-gradient(180deg, #6b462a 0%, #422816 100%);
  border-radius: 40% 40% 10% 10%;
  transform-origin: bottom center;
  animation: mp-tree 9s ease-in-out infinite alternate 0.3s;
}
.scn-meeting-pascal .fig1-mp {
  position: absolute; bottom: 10%; left: 40%; width: 12px; height: 40px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  animation: mp-fig1 4s ease-in-out infinite;
}
.scn-meeting-pascal .fig2-mp {
  position: absolute; bottom: 10%; left: 52%; width: 14px; height: 48px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e07 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  animation: mp-fig2 4.5s ease-in-out infinite;
}
.scn-meeting-pascal .cloud-mp {
  position: absolute; top: 15%; right: 20%; width: 80px; height: 20px;
  background: rgba(255,255,255,0.6);
  border-radius: 50%;
  filter: blur(8px);
  animation: mp-cloud 30s linear infinite;
}
@keyframes mp-sky {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes mp-grass {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.02); }
  100% { transform: scaleY(0.98); }
}
@keyframes mp-tree {
  0% { transform: rotate(-1deg); }
  50% { transform: rotate(2deg); }
  100% { transform: rotate(-1.5deg); }
}
@keyframes mp-fig1 {
  0%, 100% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(3px) rotate(-1.5deg); }
}
@keyframes mp-fig2 {
  0%, 100% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(-2px) rotate(1.5deg); }
}
@keyframes mp-cloud {
  0% { transform: translateX(0); }
  100% { transform: translateX(-120vw); }
}

/* scene: prize-money-demand */
.scn-prize-money-demand {
  background: 
    linear-gradient(180deg, #1a0e07 0%, #3a2212 40%, #1a0e07 80%),
    radial-gradient(ellipse at 30% 30%, #c88040 0%, transparent 60%);
}
.scn-prize-money-demand .wall-pm {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #2b1a0e 0%, #3d2b1f 100%);
  box-shadow: inset 0 0 30px rgba(0,0,0,0.5);
}
.scn-prize-money-demand .floor-pm {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #1a0e07 0%, #2b1a0e 100%);
}
.scn-prize-money-demand .window-pm {
  position: absolute; top: 12%; right: 15%; width: 60px; height: 80px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0e07 100%);
  border: 4px solid #4a2a1a;
  box-shadow: inset 0 0 15px rgba(0,0,0,0.8);
  animation: pm-window 6s ease-in-out infinite alternate;
}
.scn-prize-money-demand .candle-pm {
  position: absolute; top: 30%; left: 30%; width: 12px; height: 20px;
  background: linear-gradient(180deg, #ffcc66 0%, #e69933 100%);
  border-radius: 50% 50% 10% 10%;
  box-shadow: 0 0 20px 6px #ffaa33, 0 0 40px 12px rgba(255,170,51,0.5);
  animation: pm-candle 2s ease-in-out infinite alternate;
}
.scn-prize-money-demand .table-pm {
  position: absolute; bottom: 28%; left: 25%; right: 25%; height: 8%;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%);
  border-radius: 4px;
  box-shadow: 0 -4px 8px rgba(0,0,0,0.6);
}
.scn-prize-money-demand .fig1-pm {
  position: absolute; bottom: 28%; left: 30%; width: 14px; height: 42px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  animation: pm-fig 5s ease-in-out infinite;
}
.scn-prize-money-demand .fig2-pm {
  position: absolute; bottom: 28%; left: 55%; width: 16px; height: 46px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e07 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  animation: pm-fig2 5.5s ease-in-out infinite;
}
@keyframes pm-window {
  0% { opacity: 0.3; box-shadow: inset 0 0 10px rgba(0,0,0,0.9); }
  50% { opacity: 0.5; box-shadow: inset 0 0 20px rgba(0,0,0,0.7); }
  100% { opacity: 0.4; box-shadow: inset 0 0 15px rgba(0,0,0,0.8); }
}
@keyframes pm-candle {
  0% { transform: scaleY(1) scaleX(1); box-shadow: 0 0 18px 5px #ffaa33, 0 0 35px 10px rgba(255,170,51,0.4); }
  50% { transform: scaleY(1.05) scaleX(0.95); box-shadow: 0 0 25px 8px #ffcc66, 0 0 45px 14px rgba(255,204,102,0.6); }
  100% { transform: scaleY(0.98) scaleX(1.02); box-shadow: 0 0 20px 6px #ffaa33, 0 0 38px 11px rgba(255,170,51,0.5); }
}
@keyframes pm-fig {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
}
@keyframes pm-fig2 {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(1px) rotate(-1deg); }
}

/* scene: miss-guerins-help */
.scn-miss-guerins-help {
  background: 
    linear-gradient(180deg, #2b1a0e 0%, #4a3020 40%, #2b1a0e 100%),
    radial-gradient(ellipse at 50% 30%, #d9a35c 0%, transparent 55%);
}
.scn-miss-guerins-help .wall-mg {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #3d2b1f 0%, #2b1a0e 100%);
  box-shadow: inset 0 0 25px rgba(0,0,0,0.4);
}
.scn-miss-guerins-help .window-mg {
  position: absolute; top: 15%; left: 10%; width: 50px; height: 60px;
  background: linear-gradient(180deg, #1a0e07 0%, #2a1a0a 100%);
  border: 3px solid #5c4033;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.7);
}
.scn-miss-guerins-help .curtain-mg {
  position: absolute; top: 15%; left: 8%; width: 20px; height: 65px;
  background: linear-gradient(180deg, #6b4c3b 0%, #4a3020 100%);
  border-radius: 0 20% 20% 0;
  transform-origin: top left;
  animation: mg-curtain 7s ease-in-out infinite alternate;
}
.scn-miss-guerins-help .desk-mg {
  position: absolute; bottom: 22%; left: 20%; right: 35%; height: 10%;
  background: linear-gradient(180deg, #4a3020 0%, #2b1a0e 100%);
  border-radius: 4px;
}
.scn-miss-guerins-help .candle-mg {
  position: absolute; bottom: 32%; left: 25%; width: 10px; height: 18px;
  background: linear-gradient(180deg, #ffcc66 0%, #d9a35c 100%);
  border-radius: 50% 50% 10% 10%;
  box-shadow: 0 0 18px 5px #ffaa33, 0 0 35px 10px rgba(255,170,51,0.4);
  animation: mg-candle 3s ease-in-out infinite alternate;
}
.scn-miss-guerins-help .fig1-mg {
  position: absolute; bottom: 22%; left: 35%; width: 14px; height: 40px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e07 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  animation: mg-fig1 6s ease-in-out infinite;
}
.scn-miss-guerins-help .fig2-mg {
  position: absolute; bottom: 22%; left: 50%; width: 12px; height: 36px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  animation: mg-fig2 5s ease-in-out infinite;
}
@keyframes mg-curtain {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(3deg); }
  100% { transform: rotate(-2deg); }
}
@keyframes mg-candle {
  0% { transform: scaleY(1); box-shadow: 0 0 15px 4px #ffaa33, 0 0 30px 8px rgba(255,170,51,0.3); }
  50% { transform: scaleY(1.04); box-shadow: 0 0 22px 7px #ffcc66, 0 0 40px 12px rgba(255,204,102,0.5); }
  100% { transform: scaleY(0.97); box-shadow: 0 0 18px 5px #ffaa33, 0 0 32px 9px rgba(255,170,51,0.4); }
}
@keyframes mg-fig1 {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-1px) rotate(0.5deg); }
}
@keyframes mg-fig2 {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(1px) rotate(-0.5deg); }
}

/* montserrat-return */
.scn-montserrat-return {
  background:
    linear-gradient(180deg, #79b8ff 0%, #f8e8a0 40%, #e0c070 60%, #1b4d6b 100%),
    radial-gradient(ellipse at 80% 0%, #f0d080 0%, transparent 60%);
  position: relative;
}
.scn-montserrat-return .sun {
  position: absolute; top: 20%; right: 15%; width: 70px; height: 70px;
  background: radial-gradient(circle, #fff9c4 0%, #f0d060 40%, transparent 70%);
  border-radius: 50%; box-shadow: 0 0 50px 20px #f0d060;
  animation: mr-sun 12s ease-in-out infinite alternate;
}
.scn-montserrat-return .cloud-a {
  position: absolute; top: 10%; left: 10%; width: 120px; height: 30px;
  background: linear-gradient(180deg, rgba(255,255,255,0.6) 0%, rgba(255,255,255,0.1) 100%);
  border-radius: 50%; filter: blur(8px);
  animation: mr-cloud-a 40s linear infinite;
}
.scn-montserrat-return .cloud-b {
  position: absolute; top: 22%; left: 30%; width: 90px; height: 20px;
  background: linear-gradient(180deg, rgba(255,255,255,0.5) 0%, rgba(255,255,240,0.15) 100%);
  border-radius: 50%; filter: blur(6px);
  animation: mr-cloud-b 50s linear infinite reverse;
  animation-delay: -15s;
}
.scn-montserrat-return .ship-hull {
  position: absolute; bottom: 20%; left: 20%; width: 160px; height: 50px;
  background: linear-gradient(180deg, #5c3a1e 0%, #3a2210 100%);
  border-radius: 30% 30% 0 0 / 100% 100% 0 0;
  box-shadow: 0 8px 12px rgba(0,0,0,0.4);
  animation: mr-ship-bob 6s ease-in-out infinite;
}
.scn-montserrat-return .sail-1 {
  position: absolute; bottom: 40%; left: 20%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #f5f0e0 0%, #dcd0b0 100%);
  border-radius: 50% 50% 30% 30% / 80% 80% 30% 30%;
  transform-origin: bottom center;
  animation: mr-sail-flap 4s ease-in-out infinite alternate;
}
.scn-montserrat-return .sail-2 {
  position: absolute; bottom: 40%; left: 32%; width: 35px; height: 50px;
  background: linear-gradient(180deg, #f5f0e0 0%, #dcd0b0 100%);
  border-radius: 50% 50% 30% 30% / 80% 80% 30% 30%;
  transform-origin: bottom center;
  animation: mr-sail-flap 4s ease-in-out infinite alternate-reverse;
  animation-delay: -2s;
}
.scn-montserrat-return .wave-1 {
  position: absolute; bottom: 15%; left: 0; width: 100%; height: 20%;
  background: linear-gradient(180deg, #2a6a8a 0%, #1a4a6a 100%);
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  opacity: 0.5;
  animation: mr-wave 8s ease-in-out infinite alternate;
}
.scn-montserrat-return .wave-2 {
  position: absolute; bottom: 10%; left: 0; width: 100%; height: 18%;
  background: linear-gradient(180deg, #3a7a9a 0%, #2a5a7a 100%);
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  opacity: 0.4;
  animation: mr-wave 8s ease-in-out infinite alternate-reverse;
  animation-delay: -4s;
}
@keyframes mr-sun { 0% { transform: translate(0,0) scale(1); opacity:0.9; } 50% { transform: translate(-5px, -3px) scale(1.05); opacity:1; } 100% { transform: translate(2px, 2px) scale(0.95); opacity:0.8; } }
@keyframes mr-cloud-a { 0% { transform: translateX(-130px); } 100% { transform: translateX(100vw); } }
@keyframes mr-cloud-b { 0% { transform: translateX(0); } 100% { transform: translateX(-100vw); } }
@keyframes mr-ship-bob { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-5px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes mr-sail-flap { 0% { transform: scaleX(1) rotate(0deg); } 50% { transform: scaleX(0.8) rotate(3deg); } 100% { transform: scaleX(1) rotate(-3deg); } }
@keyframes mr-wave { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-8px) scaleY(1.1); } 100% { transform: translateY(0) scaleY(1); } }

/* mr-king-house-destroyed */
.scn-mr-king-house-destroyed {
  background:
    linear-gradient(180deg, #f0e0a0 0%, #c0a070 30%, #604030 60%, #201010 100%),
    radial-gradient(ellipse at 50% 0%, #ffd080 0%, transparent 70%);
  position: relative;
}
.scn-mr-king-house-destroyed .sky-harsh {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #e0d0a0 0%, #c0b080 40%, transparent 100%);
  animation: mkh-sky 8s ease-in-out infinite alternate;
}
.scn-mr-king-house-destroyed .land {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #5a4030 0%, #3a2818 100%);
  border-radius: 40% 60% 0 0 / 100% 100% 0 0;
  box-shadow: inset 0 10px 30px #1a0f08;
}
.scn-mr-king-house-destroyed .house-ruin {
  position: absolute; bottom: 25%; left: 35%; width: 100px; height: 80px;
  background: linear-gradient(180deg, #8a6050 0%, #4a3020 100%);
  clip-path: polygon(0% 0%, 20% 0%, 30% 40%, 50% 20%, 70% 50%, 80% 10%, 100% 10%, 100% 100%, 0% 100%);
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
  animation: mkh-ruin 5s ease-in-out infinite;
}
.scn-mr-king-house-destroyed .debris-1 {
  position: absolute; bottom: 30%; left: 20%; width: 30px; height: 15px;
  background: #4a3020; border-radius: 20% 60% 30% 50%;
  transform: rotate(30deg);
  animation: mkh-debris 7s ease-in-out infinite;
}
.scn-mr-king-house-destroyed .debris-2 {
  position: absolute; bottom: 35%; left: 55%; width: 40px; height: 12px;
  background: #3a2818; border-radius: 50% 30% 50% 30%;
  transform: rotate(-20deg);
  animation: mkh-debris 9s ease-in-out infinite -3s;
}
.scn-mr-king-house-destroyed .water-flood {
  position: absolute; bottom: 0; left: 0; width: 100%; height: 30%;
  background: linear-gradient(180deg, #3a5a6a 0%, #1a3a4a 100%);
  border-radius: 70% 30% 0 0 / 100% 100% 0 0;
  opacity: 0.8;
  animation: mkh-water 6s ease-in-out infinite alternate;
}
.scn-mr-king-house-destroyed .dark-cloud {
  position: absolute; top: 8%; left: 10%; width: 160px; height: 40px;
  background: linear-gradient(180deg, #2a2a30 0%, #151520 100%);
  border-radius: 50%; filter: blur(12px);
  animation: mkh-cloud 30s linear infinite;
}
.scn-mr-king-house-destroyed .sun-harsh {
  position: absolute; top: 12%; right: 20%; width: 50px; height: 50px;
  background: radial-gradient(circle, #fff0b0 0%, #e0c050 50%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 40px 15px #e0c050, 0 0 80px 30px rgba(224,192,80,0.3);
  animation: mkh-sun 15s ease-in-out infinite alternate;
}
@keyframes mkh-sky { 0% { opacity:0.6; } 50% { opacity:0.9; } 100% { opacity:0.5; } }
@keyframes mkh-ruin { 0% { transform: translateY(0) skewX(0deg); } 25% { transform: translateY(-3px) skewX(2deg); } 75% { transform: translateY(2px) skewX(-1deg); } 100% { transform: translateY(0) skewX(0deg); } }
@keyframes mkh-debris { 0% { transform: translate(0,0) rotate(0deg); } 50% { transform: translate(8px, -10px) rotate(45deg); } 100% { transform: translate(0,0) rotate(0deg); } }
@keyframes mkh-water { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-10px) scaleY(1.1); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes mkh-cloud { 0% { transform: translateX(-170px); } 100% { transform: translateX(100vw); } }
@keyframes mkh-sun { 0% { transform: scale(1); opacity:0.7; } 50% { transform: scale(1.1); opacity:1; } 100% { transform: scale(0.9); opacity:0.5; } }

/* equiano-declines */
.scn-equiano-declines {
  background:
    linear-gradient(135deg, #d4a060 0%, #b08040 50%, #806030 100%),
    radial-gradient(ellipse at 70% 30%, #f0c880 0%, transparent 60%);
  position: relative;
  overflow: hidden;
}
.scn-equiano-declines .window-light {
  position: absolute; top: 10%; left: 10%; width: 40%; height: 50%;
  background: radial-gradient(ellipse at center, #fff8e0 0%, #e0c070 40%, transparent 70%);
  border-radius: 10% / 20%; filter: blur(4px);
  animation: ed-window 6s ease-in-out infinite alternate;
}
.scn-equiano-declines .candle {
  position: absolute; bottom: 20%; left: 15%; width: 8px; height: 30px;
  background: linear-gradient(180deg, #f0c080 0%, #8a6030 100%);
  border-radius: 20% 20% 10% 10%; box-shadow: 0 0 12px 4px #f0c080;
  animation: ed-candle 3s ease-in-out infinite;
}
.scn-equiano-declines .candle-glow {
  position: absolute; bottom: 20%; left: 15%; width: 40px; height: 40px;
  background: radial-gradient(circle, #ffd080 0%, #e0a040 40%, transparent 70%);
  border-radius: 50%;
  animation: ed-glow 3s ease-in-out infinite alternate;
}
.scn-equiano-declines .figure-left {
  position: absolute; bottom: 10%; left: 25%; width: 30px; height: 80px;
  background: linear-gradient(180deg, #3a2518 0%, #1a0f08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ed-figure-left 4s ease-in-out infinite;
}
.scn-equiano-declines .figure-right {
  position: absolute; bottom: 10%; left: 50%; width: 28px; height: 78px;
  background: linear-gradient(180deg, #3a2015 0%, #1a0f08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ed-figure-right 4s ease-in-out infinite -2s;
}
.scn-equiano-declines .table {
  position: absolute; bottom: 8%; left: 25%; width: 55%; height: 12px;
  background: linear-gradient(90deg, #604020 0%, #8a5a30 50%, #604020 100%);
  border-radius: 10% 10% 40% 40% / 100% 100% 50% 50%;
  box-shadow: 0 4px 6px rgba(0,0,0,0.3);
}
.scn-equiano-declines .paper {
  position: absolute; bottom: 16%; left: 38%; width: 24px; height: 30px;
  background: linear-gradient(180deg, #f5f0d0 0%, #dcd0a0 100%);
  border-radius: 5% 15% 5% 15% / 10% 20% 10% 20%;
  transform: rotate(-5deg);
  animation: ed-paper 8s ease-in-out infinite alternate;
}
@keyframes ed-window { 0% { opacity:0.6; transform: scale(0.95); } 50% { opacity:0.9; transform: scale(1.05); } 100% { opacity:0.7; transform: scale(1); } }
@keyframes ed-candle { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-1px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes ed-glow { 0% { box-shadow: 0 0 10px 2px #f0a040; opacity:0.7; } 50% { box-shadow: 0 0 30px 8px #ffc060; opacity:1; } 100% { box-shadow: 0 0 15px 4px #f0a040; opacity:0.8; } }
@keyframes ed-figure-left { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 25% { transform: translateX(2px) translateY(-1px) rotate(1deg); } 75% { transform: translateX(-1px) translateY(1px) rotate(-1deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes ed-figure-right { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 25% { transform: translateX(-2px) translateY(-1px) rotate(-1deg); } 75% { transform: translateX(1px) translateY(1px) rotate(1deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes ed-paper { 0% { transform: rotate(-5deg) scale(1); } 50% { transform: rotate(2deg) scale(1.02); } 100% { transform: rotate(-5deg) scale(1); } }

/* final-departure */
.scn-final-departure {
  background:
    linear-gradient(180deg, #b8d4e8 0%, #f0d4a0 30%, #d0a060 50%, #2a6a8a 100%),
    radial-gradient(ellipse at 70% 0%, #ffe0a0 0%, transparent 60%);
  position: relative;
}
.scn-final-departure .sky-warm {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #c0d8e8 0%, #f0e0b0 50%, transparent 100%);
  animation: fd-sky 10s ease-in-out infinite alternate;
}
.scn-final-departure .ship-hull {
  position: absolute; bottom: 18%; left: 20%; width: 180px; height: 60px;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2210 100%);
  border-radius: 20% 40% 0 0 / 100% 100% 0 0;
  box-shadow: 0 10px 15px rgba(0,0,0,0.5);
  animation: fd-ship-bob 7s ease-in-out infinite;
}
.scn-final-departure .ship-sail {
  position: absolute; bottom: 42%; left: 21%; width: 50px; height: 80px;
  background: linear-gradient(180deg, #f5f0e0 0%, #dcd0b0 100%);
  border-radius: 60% 40% 30% 40% / 80% 70% 30% 30%;
  transform-origin: bottom left;
  animation: fd-sail 5s ease-in-out infinite alternate;
}
.scn-final-departure .flag-1 {
  position: absolute; bottom: 70%; left: 25%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%);
  clip-path: polygon(0% 0%, 100% 0%, 100% 70%, 0% 100%);
  animation: fd-flag 3s ease-in-out infinite alternate;
}
.scn-final-departure .flag-2 {
  position: absolute; bottom: 68%; left: 35%; width: 18px; height: 25px;
  background: linear-gradient(180deg, #3a6a9a 0%, #1a4a7a 100%);
  clip-path: polygon(0% 0%, 100% 0%, 100% 70%, 0% 100%);
  animation: fd-flag 3s ease-in-out infinite alternate-reverse;
  animation-delay: -1.5s;
}
.scn-final-departure .figure-1 {
  position: absolute; bottom: 10%; left: 50%; width: 24px; height: 70px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0f0808 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fd-dance 4s ease-in-out infinite;
}
.scn-final-departure .figure-2 {
  position: absolute; bottom: 10%; left: 58%; width: 22px; height: 65px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0f0808 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fd-dance 4s ease-in-out infinite -2s;
}
.scn-final-departure .wave {
  position: absolute; bottom: 5%; left: 0; width: 100%; height: 25%;
  background: linear-gradient(180deg, #2a6a8a 0%, #1a4a6a 100%);
  border-radius: 60% 40% 0 0 / 100% 100% 0 0;
  opacity: 0.6;
  animation: fd-wave 8s ease-in-out infinite alternate;
}
.scn-final-departure .sun {
  position: absolute; top: 15%; right: 10%; width: 60px; height: 60px;
  background: radial-gradient(circle, #fff9c4 0%, #f0d060 40%, transparent 70%);
  border-radius: 50%; box-shadow: 0 0 50px 20px #f0d060;
  animation: fd-sun 12s ease-in-out infinite alternate;
}
@keyframes fd-sky { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes fd-ship-bob { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-6px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes fd-sail { 0% { transform: rotate(0deg) scaleX(1); } 50% { transform: rotate(5deg) scaleX(0.9); } 100% { transform: rotate(-5deg) scaleX(1); } }
@keyframes fd-flag { 0% { transform: scaleX(1) rotate(0deg); } 50% { transform: scaleX(0.8) rotate(10deg); } 100% { transform: scaleX(1) rotate(0deg); } }
@keyframes fd-dance { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 25% { transform: translateX(4px) translateY(-3px) rotate(5deg); } 75% { transform: translateX(-2px) translateY(-1px) rotate(-5deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes fd-wave { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-12px) scaleY(1.2); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes fd-sun { 0% { transform: translate(0,0) scale(1); opacity:0.8; } 50% { transform: translate(-3px, -2px) scale(1.05); opacity:1; } 100% { transform: translate(2px, 1px) scale(0.95); opacity:0.7; } }

.scn-mondle-dream {
  background:
    linear-gradient(180deg, #0c0c1f 0%, #1a1a30 40%, #1f1f3a 70%, #15152a 100%),
    radial-gradient(ellipse at 50% 100%, #2a2a50 0%, transparent 60%);
  overflow: hidden;
}
.scn-mondle-dream .sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(0deg, #03040c 0%, #0f1123 40%, #1c2040 100%);
  animation: md-sea-swell 12s ease-in-out infinite alternate;
}
.scn-mondle-dream .sky-layer {
  position: absolute; top: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #06071a 0%, #12122c 60%, #1e1e3a 100%);
  animation: md-sky-pulse 18s ease-in-out infinite alternate;
}
.scn-mondle-dream .ship-hull {
  position: absolute; bottom: 30%; left: 30%; width: 35%; height: 12%;
  background: linear-gradient(180deg, #2a2320 0%, #1a1412 100%);
  border-radius: 30% 30% 10% 10% / 80% 80% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.7);
  animation: md-hull-rock 9s ease-in-out infinite;
}
.scn-mondle-dream .mast {
  position: absolute; bottom: 37%; left: 48%; width: 2%; height: 28%;
  background: linear-gradient(180deg, #1e1812 0%, #0d0a08 100%);
  transform-origin: bottom center;
  animation: md-mast-sway 7s ease-in-out infinite alternate;
}
.scn-mondle-dream .figure-silhouette {
  position: absolute; bottom: 38%; left: 44%; width: 3%; height: 7%;
  background: #0c0a0a;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: md-figure-tremble 4s ease-in-out infinite;
}
.scn-mondle-dream .lantern-ghost {
  position: absolute; bottom: 42%; left: 46%; width: 2%; height: 2%;
  background: radial-gradient(circle, #4a6a9a 0%, #1a2a4a 70%);
  border-radius: 50%;
  box-shadow: 0 0 16px 6px rgba(74,106,154,0.5), 0 0 32px 12px rgba(74,106,154,0.2);
  animation: md-lantern-flicker 3s ease-in-out infinite alternate;
}
.scn-mondle-dream .star {
  position: absolute; width: 1.2%; height: 1.2%;
  background: radial-gradient(circle, rgba(200,210,255,0.9) 0%, transparent 70%);
  border-radius: 50%;
}
.scn-mondle-dream .star-a {
  top: 12%; left: 20%;
  animation: md-star-twinkle 5s ease-in-out infinite alternate;
  animation-delay: 0s;
}
.scn-mondle-dream .star-b {
  top: 8%; left: 70%;
  animation: md-star-twinkle 5s ease-in-out infinite alternate;
  animation-delay: 2.5s;
}
@keyframes md-sea-swell {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(1px); }
}
@keyframes md-sky-pulse {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes md-hull-rock {
  0% { transform: rotate(-0.5deg); }
  50% { transform: rotate(0.5deg); }
  100% { transform: rotate(-0.3deg); }
}
@keyframes md-mast-sway {
  0% { transform: rotate(-0.8deg); }
  50% { transform: rotate(0.8deg); }
  100% { transform: rotate(-0.6deg); }
}
@keyframes md-figure-tremble {
  0% { transform: translateX(0) translateY(0) rotate(-1deg); }
  25% { transform: translateX(1px) translateY(-0.5px) rotate(1deg); }
  50% { transform: translateX(0) translateY(0) rotate(0); }
  75% { transform: translateX(-1px) translateY(0.5px) rotate(-1deg); }
  100% { transform: translateX(0) translateY(0) rotate(0); }
}
@keyframes md-lantern-flicker {
  0% { opacity: 0.6; box-shadow: 0 0 10px 3px rgba(74,106,154,0.4); }
  50% { opacity: 1; box-shadow: 0 0 20px 8px rgba(74,106,154,0.7); }
  100% { opacity: 0.7; box-shadow: 0 0 14px 5px rgba(74,106,154,0.5); }
}
@keyframes md-star-twinkle {
  0% { opacity: 0.2; transform: scale(0.8); }
  50% { opacity: 1; transform: scale(1.2); }
  100% { opacity: 0.3; transform: scale(0.9); }
}

.scn-collision-lynne {
  background:
    linear-gradient(180deg, #070812 0%, #14162e 40%, #1c1f3a 80%, #0a0b16 100%),
    radial-gradient(ellipse at 80% 100%, #2a2d4e 0%, transparent 70%);
  overflow: hidden;
}
.scn-collision-lynne .ocean-bg {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(0deg, #03040c 0%, #0f1123 50%, #1c2040 100%);
  animation: cl-ocean-swell 15s ease-in-out infinite alternate;
}
.scn-collision-lynne .ship-lynne {
  position: absolute; bottom: 25%; right: 15%; width: 40%; height: 18%;
  background: linear-gradient(180deg, #231e1c 0%, #12100e 100%);
  border-radius: 40% 30% 10% 10% / 80% 60% 20% 20%;
  transform: rotate(-5deg);
  animation: cl-lynne-ram 6s ease-in-out infinite alternate;
}
.scn-collision-lynne .ship-mondle {
  position: absolute; bottom: 30%; left: 10%; width: 35%; height: 15%;
  background: linear-gradient(180deg, #1c1816 0%, #0e0c0a 100%);
  border-radius: 30% 40% 10% 10% / 70% 80% 20% 20%;
  transform: rotate(3deg);
  animation: cl-mondle-crash 6s ease-in-out infinite alternate;
}
.scn-collision-lynne .impact-splash {
  position: absolute; bottom: 35%; left: 35%; width: 20%; height: 10%;
  background: radial-gradient(ellipse at 50% 0%, rgba(180,200,230,0.6) 0%, transparent 70%);
  border-radius: 50%;
  animation: cl-splash-flash 4s ease-in-out infinite;
}
.scn-collision-lynne .debris {
  position: absolute; width: 2%; height: 8%;
  background: #2a2520;
  border-radius: 20%;
  transform-origin: bottom center;
}
.scn-collision-lynne .debris-1 {
  bottom: 28%; left: 30%;
  animation: cl-debris-tumble-1 8s linear infinite;
}
.scn-collision-lynne .debris-2 {
  bottom: 32%; left: 55%;
  animation: cl-debris-tumble-2 9s linear infinite;
}
.scn-collision-lynne .escape-figure {
  position: absolute; bottom: 32%; left: 25%; width: 2.5%; height: 6%;
  background: #0c0a0a;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: cl-figure-run 5s ease-in-out infinite;
}
.scn-collision-lynne .sparks {
  position: absolute; bottom: 30%; left: 42%; width: 6%; height: 6%;
  background: radial-gradient(circle, rgba(200,180,120,0.9) 0%, transparent 60%);
  border-radius: 50%;
  animation: cl-spark-burst 2s ease-in-out infinite alternate;
}
@keyframes cl-ocean-swell {
  0% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
  100% { transform: translateY(1px); }
}
@keyframes cl-lynne-ram {
  0% { transform: rotate(-5deg) translateX(0); }
  50% { transform: rotate(-3deg) translateX(-8px); }
  100% { transform: rotate(-5deg) translateX(0); }
}
@keyframes cl-mondle-crash {
  0% { transform: rotate(3deg) translateX(0); }
  50% { transform: rotate(1deg) translateX(5px); }
  100% { transform: rotate(3deg) translateX(0); }
}
@keyframes cl-splash-flash {
  0% { opacity: 0.3; transform: scale(0.8); }
  50% { opacity: 0.8; transform: scale(1.3); }
  100% { opacity: 0.4; transform: scale(0.9); }
}
@keyframes cl-debris-tumble-1 {
  0% { transform: translateX(0) rotate(0deg) scaleY(1); }
  25% { transform: translateX(15px) rotate(90deg) scaleY(0.6); }
  50% { transform: translateX(30px) rotate(180deg) scaleY(0.3); }
  75% { transform: translateX(45px) rotate(270deg) scaleY(0.6); }
  100% { transform: translateX(60px) rotate(360deg) scaleY(1); }
}
@keyframes cl-debris-tumble-2 {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(-10px) rotate(-90deg); }
  50% { transform: translateX(-20px) rotate(-180deg); }
  75% { transform: translateX(-30px) rotate(-270deg); }
  100% { transform: translateX(-40px) rotate(-360deg); }
}
@keyframes cl-figure-run {
  0% { transform: translateX(0) translateY(0); }
  25% { transform: translateX(5px) translateY(-1px); }
  50% { transform: translateX(10px) translateY(0); }
  75% { transform: translateX(15px) translateY(-1px); }
  100% { transform: translateX(20px) translateY(0); }
}
@keyframes cl-spark-burst {
  0% { opacity: 0; transform: scale(0.5); }
  50% { opacity: 1; transform: scale(1.5); }
  100% { opacity: 0.5; transform: scale(1); }
}

.scn-providential-escapes {
  background:
    linear-gradient(180deg, #bfd4e6 0%, #e0edf7 40%, #faf9f0 80%, #e8e2cc 100%),
    radial-gradient(ellipse at 50% 100%, #f5f0e0 0%, transparent 60%);
  overflow: hidden;
}
.scn-providential-escapes .warm-sky {
  position: absolute; top: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #8fb3cc 0%, #c4def0 60%, #e5edf2 100%);
  animation: pe-sky-glow 20s ease-in-out infinite alternate;
}
.scn-providential-escapes .deck-platform {
  position: absolute; bottom: 15%; left: 0; right: 0; height: 35%;
  background: linear-gradient(0deg, #8b7355 0%, #b0976a 30%, #ccb58a 60%, #d6c8a0 100%);
  border-radius: 10% 10% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.2);
  animation: pe-deck-rock 10s ease-in-out infinite;
}
.scn-providential-escapes .mast-vertical {
  position: absolute; bottom: 40%; left: 50%; width: 1.5%; height: 35%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2e22 100%);
  transform-origin: bottom center;
  animation: pe-mast-sway 7s ease-in-out infinite alternate;
}
.scn-providential-escapes .falling-woman {
  position: absolute; top: 20%; left: 35%; width: 3%; height: 8%;
  background: linear-gradient(180deg, #8b6f5a 0%, #5a4435 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: pe-fall-w 4s ease-in-out infinite;
}
.scn-providential-escapes .falling-child {
  position: absolute; top: 28%; left: 42%; width: 2%; height: 5%;
  background: linear-gradient(180deg, #b08a6a 0%, #7a5e44 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: pe-fall-c 4s ease-in-out infinite;
  animation-delay: 1s;
}
.scn-providential-escapes .hatch-open {
  position: absolute; bottom: 25%; left: 38%; width: 10%; height: 6%;
  background: #4a3e30;
  border-radius: 5% 5% 20% 20% / 10% 10% 50% 50%;
  box-shadow: inset 0 -4px 8px rgba(0,0,0,0.5);
  animation: pe-hatch-blink 12s ease-in-out infinite;
}
.scn-providential-escapes .sunbeam {
  position: absolute; top: 10%; left: 20%; width: 8%; height: 60%;
  background: linear-gradient(180deg, rgba(255,250,220,0.4) 0%, rgba(255,250,220,0) 100%);
  transform: skewX(-5deg);
  filter: blur(6px);
  animation: pe-sunbeam-sway 15s ease-in-out infinite alternate;
}
.scn-providential-escapes .man-falling {
  position: absolute; top: 5%; left: 58%; width: 2.5%; height: 7%;
  background: #3a2e24;
  border-radius: 20% 20% 50% 50% / 20% 20% 60% 60%;
  transform: rotate(15deg);
  animation: pe-fall-m 5s ease-in-out infinite;
  animation-delay: 2s;
}
@keyframes pe-sky-glow {
  0% { opacity: 0.85; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes pe-deck-rock {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(0.3deg); }
  100% { transform: rotate(0deg); }
}
@keyframes pe-mast-sway {
  0% { transform: rotate(-0.5deg); }
  50% { transform: rotate(0.5deg); }
  100% { transform: rotate(-0.4deg); }
}
@keyframes pe-fall-w {
  0% { transform: translateY(-10px) rotate(5deg); opacity: 0.7; }
  30% { transform: translateY(10px) rotate(-3deg) scaleY(1.1); opacity: 0.9; }
  60% { transform: translateY(20px) rotate(4deg); opacity: 0.8; }
  100% { transform: translateY(40px) rotate(0deg) scaleY(1); opacity: 0.5; }
}
@keyframes pe-fall-c {
  0% { transform: translateY(-5px) rotate(-8deg); opacity: 0.7; }
  30% { transform: translateY(8px) rotate(6deg) scaleY(1.1); opacity: 0.9; }
  60% { transform: translateY(16px) rotate(-4deg); opacity: 0.8; }
  100% { transform: translateY(30px) rotate(0deg) scaleY(1); opacity: 0.5; }
}
@keyframes pe-hatch-blink {
  0%, 100% { box-shadow: inset 0 -4px 8px rgba(0,0,0,0.5); }
  50% { box-shadow: inset 0 -2px 4px rgba(0,0,0,0.3), 0 0 6px rgba(200,180,120,0.3); }
}
@keyframes pe-sunbeam-sway {
  0% { transform: skewX(-5deg) translateX(-10px); opacity: 0.6; }
  50% { transform: skewX(0deg) translateX(0); opacity: 0.9; }
  100% { transform: skewX(5deg) translateX(10px); opacity: 0.7; }
}
@keyframes pe-fall-m {
  0% { transform: translateY(-20px) rotate(15deg); opacity: 0.5; }
  30% { transform: translateY(10px) rotate(-10deg); opacity: 0.9; }
  60% { transform: translateY(30px) rotate(5deg); opacity: 0.8; }
  100% { transform: translateY(60px) rotate(-20deg); opacity: 0.2; }
}

.scn-belle-isle-battery {
  background:
    linear-gradient(180deg, #7aa1c4 0%, #a3c9e0 30%, #d4e6f2 60%, #eef5f8 90%, #e0dcc0 100%),
    radial-gradient(ellipse at 20% 100%, #f5e8c0 0%, transparent 60%);
  overflow: hidden;
}
.scn-belle-isle-battery .sunlit-sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(0deg, #7a9eb8 0%, #a3c9e0 40%, #c4def0 80%, #dce8f2 100%);
  animation: bb-sea-wave 14s ease-in-out infinite alternate;
}
.scn-belle-isle-battery .beach-sand {
  position: absolute; bottom: 25%; left: 10%; right: 10%; height: 15%;
  background: linear-gradient(180deg, #d4c8a0 0%, #c0b080 50%, #a89868 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  animation: bb-sand-shimmer 20s ease-in-out infinite alternate;
}
.scn-belle-isle-battery .battery-wall {
  position: absolute; bottom: 30%; left: 20%; width: 60%; height: 20%;
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 60%, #4a3c24 100%);
  border-radius: 5% 5% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 6px 12px rgba(0,0,0,0.4), 0 4px 8px rgba(0,0,0,0.3);
}
.scn-belle-isle-battery .cannon {
  position: absolute; bottom: 30%; height: 8%;
  width: 10%;
  background: linear-gradient(180deg, #3a3a3a 0%, #1a1a1a 100%);
  border-radius: 40% 40% 20% 20% / 80% 80% 20% 20%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
}
.scn-belle-isle-battery .cannon-left {
  left: 30%;
  transform: rotate(5deg);
  animation: bb-cannon-recoil 8s ease-in-out infinite;
}
.scn-belle-isle-battery .cannon-right {
  left: 55%;
  transform: rotate(-3deg);
  animation: bb-cannon-recoil 8s ease-in-out infinite;
  animation-delay: 4s;
}
.scn-belle-isle-battery .citadel-distant {
  position: absolute; bottom: 35%; right: 10%; width: 18%; height: 25%;
  background: linear-gradient(180deg, #a08a6a 0%, #7a644a 100%);
  border-radius: 10% 10% 0 0 / 30% 30% 0 0;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: bb-citadel-waver 12s ease-in-out infinite alternate;
}
.scn-belle-isle-battery .shell-burst {
  position: absolute; top: 20%; left: 45%; width: 12%; height: 12%;
  background: radial-gradient(circle, #f5e8c0 0%, #e0b080 40%, #c08040 70%, transparent 100%);
  border-radius: 50%;
  animation: bb-burst-pulse 3s ease-in-out infinite;
}
.scn-belle-isle-battery .smoke-puff {
  position: absolute; top: 25%; left: 45%; width: 8%; height: 8%;
  background: radial-gradient(circle, rgba(200,200,200,0.5) 0%, transparent 70%);
  filter: blur(8px);
  animation: bb-smoke-drift 6s ease-in-out infinite;
}
.scn-belle-isle-battery .figure-running {
  position: absolute; bottom: 35%; left: 22%; width: 2.5%; height: 7%;
  background: #2a2218;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: bb-figure-dash 4s ease-in-out infinite;
}
@keyframes bb-sea-wave {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(1px); }
}
@keyframes bb-sand-shimmer {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.95; }
}
@keyframes bb-cannon-recoil {
  0% { transform: rotate(5deg) translateX(0); }
  25% { transform: rotate(8deg) translateX(-5px); }
  50% { transform: rotate(5deg) translateX(0); }
  75% { transform: rotate(2deg) translateX(3px); }
  100% { transform: rotate(5deg) translateX(0); }
}
@keyframes bb-citadel-waver {
  0% { transform: scale(1); }
  50% { transform: scale(1.02); }
  100% { transform: scale(0.98); }
}
@keyframes bb-burst-pulse {
  0% { transform: scale(0.5); opacity: 0.7; }
  30% { transform: scale(1.3); opacity: 1; }
  60% { transform: scale(1.8); opacity: 0.8; }
  100% { transform: scale(2.2); opacity: 0; }
}
@keyframes bb-smoke-drift {
  0% { transform: translateY(0) translateX(0) scale(1); opacity: 0.5; }
  50% { transform: translateY(-10px) translateX(15px) scale(1.5); opacity: 0.3; }
  100% { transform: translateY(-20px) translateX(30px) scale(2); opacity: 0; }
}
@keyframes bb-figure-dash {
  0% { transform: translateX(0) translateY(0); }
  30% { transform: translateX(15px) translateY(-1px); }
  60% { transform: translateX(30px) translateY(0); }
  100% { transform: translateX(45px) translateY(-1px); }
}

.scn-baker-cruelty {
  background: linear-gradient(180deg, #f9e0c0 0%, #c89050 40%, #8a6020 100%),
              radial-gradient(ellipse at 50% 0%, #ffdd99 0%, transparent 60%);
}
.scn-baker-cruelty .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #ffe0a0 0%, #d0a060 60%, transparent 100%);
  animation: bc-sky 12s ease-in-out infinite alternate;
}
.scn-baker-cruelty .sun {
  position: absolute; top: 8%; left: 65%; width: 50px; height: 50px;
  background: radial-gradient(circle, #fff8d0 0%, #ffd060 40%, transparent 70%);
  border-radius: 50%; box-shadow: 0 0 40px 20px rgba(255,208,96,0.4);
  animation: bc-sun 6s ease-in-out infinite alternate;
}
.scn-baker-cruelty .deck {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #8b5e3c 0%, #5a3d24 100%);
  border-radius: 30% 30% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.5);
  animation: bc-deck 20s ease-in-out infinite;
}
.scn-baker-cruelty .sail-bg {
  position: absolute; bottom: 30%; left: 20%; width: 120px; height: 160px;
  background: linear-gradient(135deg, #f0d8b0 0%, #c0a070 50%, #a08050 100%);
  clip-path: polygon(0% 0%, 100% 10%, 90% 100%, 10% 90%);
  opacity: 0.6; animation: bc-sail 15s ease-in-out infinite alternate;
}
.scn-baker-cruelty .figure-baker {
  position: absolute; bottom: 35%; left: 25%; width: 28px; height: 60px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0e00 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bc-baker 4s ease-in-out infinite;
}
.scn-baker-cruelty .figure-stoker {
  position: absolute; bottom: 32%; left: 15%; width: 22px; height: 45px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: bc-stoker 3s ease-in-out infinite;
}
.scn-baker-cruelty .whip {
  position: absolute; bottom: 40%; left: 22%; width: 40px; height: 3px;
  background: linear-gradient(90deg, #8b5e3c 0%, #6a4020 100%);
  transform-origin: left center;
  animation: bc-whip 1.5s ease-in-out infinite;
}
.scn-baker-cruelty .shadow-deck {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.5) 100%);
  animation: bc-shadow 10s ease-in-out infinite alternate;
}
@keyframes bc-sky { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes bc-sun { 0% { transform: scale(0.95); box-shadow: 0 0 30px 15px rgba(255,208,96,0.3); } 50% { transform: scale(1.05); box-shadow: 0 0 50px 25px rgba(255,208,96,0.6); } 100% { transform: scale(1); box-shadow: 0 0 40px 20px rgba(255,208,96,0.4); } }
@keyframes bc-deck { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes bc-sail { 0% { transform: skewX(-1deg); } 50% { transform: skewX(1deg); } 100% { transform: skewX(-0.5deg); } }
@keyframes bc-baker { 0% { transform: translateY(0) rotate(-2deg); } 25% { transform: translateY(-2px) rotate(0deg); } 50% { transform: translateY(0) rotate(2deg); } 75% { transform: translateY(-1px) rotate(0deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes bc-stoker { 0% { transform: translateY(0) rotate(1deg) scaleY(1); } 30% { transform: translateY(-3px) rotate(-2deg) scaleY(0.95); } 60% { transform: translateY(0) rotate(1deg) scaleY(1); } 100% { transform: translateY(0) rotate(-1deg) scaleY(1); } }
@keyframes bc-whip { 0% { transform: rotate(-10deg); } 50% { transform: rotate(20deg); } 100% { transform: rotate(-5deg); } }
@keyframes bc-shadow { 0% { opacity: 0.6; } 50% { opacity: 0.8; } 100% { opacity: 0.6; } }

.scn-stoker-abandoned {
  background: linear-gradient(180deg, #0b0e2a 0%, #1a2340 40%, #2c3a5c 100%),
              radial-gradient(ellipse at 50% 0%, #1a2340 0%, transparent 70%);
}
.scn-stoker-abandoned .night-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #0b0e2a 0%, #151e3a 60%, transparent 100%);
  animation: sa-sky 20s ease-in-out infinite alternate;
}
.scn-stoker-abandoned .moon {
  position: absolute; top: 12%; left: 30%; width: 40px; height: 40px;
  background: radial-gradient(circle, #e8e8f0 0%, #b0b8d0 50%, transparent 80%);
  border-radius: 50%; box-shadow: 0 0 30px 10px rgba(200,210,240,0.3);
  animation: sa-moon 8s ease-in-out infinite alternate;
}
.scn-stoker-abandoned .stars {
  position: absolute; inset: 0 0 50% 0;
  background: radial-gradient(2px 2px at 20% 30%, #fff 0%, transparent 100%),
              radial-gradient(2px 2px at 50% 10%, #fff 0%, transparent 100%),
              radial-gradient(2px 2px at 70% 20%, #fff 0%, transparent 100%),
              radial-gradient(1px 1px at 40% 40%, #fff 0%, transparent 100%),
              radial-gradient(1px 1px at 85% 35%, #fff 0%, transparent 100%);
  filter: blur(0.5px);
  animation: sa-stars 30s linear infinite;
}
.scn-stoker-abandoned .sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #1a2a4a 0%, #0b101a 100%);
  clip-path: polygon(0% 15%, 10% 10%, 20% 20%, 30% 8%, 40% 18%, 50% 10%, 60% 20%, 70% 12%, 80% 18%, 90% 8%, 100% 15%, 100% 100%, 0% 100%);
  animation: sa-sea 12s ease-in-out infinite alternate;
}
.scn-stoker-abandoned .rowboat {
  position: absolute; bottom: 35%; left: 50%; width: 80px; height: 25px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e14 100%);
  border-radius: 50% 50% 30% 30%; box-shadow: 0 2px 8px rgba(0,0,0,0.6);
  transform: translateX(-50%);
  animation: sa-boat 6s ease-in-out infinite;
}
.scn-stoker-abandoned .figure-stoker {
  position: absolute; bottom: 40%; left: 46%; width: 18px; height: 30px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: sa-stoker 4s ease-in-out infinite;
}
.scn-stoker-abandoned .figure-negroes {
  position: absolute; bottom: 38%; left: 52%; width: 20px; height: 32px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0e0800 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: sa-negroes 4.5s ease-in-out infinite;
}
.scn-stoker-abandoned .blanket {
  position: absolute; bottom: 44%; left: 47%; width: 20px; height: 6px;
  background: linear-gradient(90deg, #6a4a3a 0%, #8a6040 50%, #6a4a3a 100%);
  border-radius: 20%; opacity: 0.8;
  animation: sa-blanket 5s ease-in-out infinite;
}
.scn-stoker-abandoned .key {
  position: absolute; bottom: 20%; right: 10%; width: 40px; height: 30px;
  background: linear-gradient(180deg, #3a4a3a 0%, #1a2a1a 100%);
  border-radius: 50% 50% 30% 30%; box-shadow: inset 0 4px 8px rgba(0,0,0,0.5);
  animation: sa-key 30s linear infinite;
}
@keyframes sa-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes sa-moon { 0% { transform: translateY(0) scale(0.95); } 50% { transform: translateY(-3px) scale(1.05); } 100% { transform: translateY(0) scale(1); } }
@keyframes sa-stars { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes sa-sea { 0% { transform: translateY(0); } 50% { transform: translateY(3px); } 100% { transform: translateY(0); } }
@keyframes sa-boat { 0% { transform: translateX(-50%) rotate(-2deg); } 25% { transform: translateX(-50%) rotate(2deg); } 50% { transform: translateX(-50%) rotate(-3deg); } 75% { transform: translateX(-50%) rotate(1deg); } 100% { transform: translateX(-50%) rotate(-1deg); } }
@keyframes sa-stoker { 0% { transform: translateY(0) rotate(-1deg); } 30% { transform: translateY(-2px) rotate(1deg); } 60% { transform: translateY(0) rotate(-1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes sa-negroes { 0% { transform: translateY(0) rotate(1deg); } 40% { transform: translateY(-2px) rotate(-1deg); } 80% { transform: translateY(0) rotate(1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes sa-blanket { 0% { opacity: 0.6; transform: translateY(0); } 50% { opacity: 1; transform: translateY(-1px); } 100% { opacity: 0.7; transform: translateY(0); } }
@keyframes sa-key { 0% { transform: translateX(0); } 100% { transform: translateX(-20px); } }

.scn-cocoa-nuts {
  background: linear-gradient(180deg, #87ceeb 0%, #6bb3d9 40%, #4a90b0 100%),
              radial-gradient(ellipse at 50% 0%, #b0e0f0 0%, transparent 70%);
}
.scn-cocoa-nuts .tropical-sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #a0d8f0 0%, #80c0e0 60%, transparent 100%);
  animation: cn-sky 15s ease-in-out infinite alternate;
}
.scn-cocoa-nuts .sun {
  position: absolute; top: 10%; left: 70%; width: 45px; height: 45px;
  background: radial-gradient(circle, #fff8d0 0%, #ffd060 40%, transparent 70%);
  border-radius: 50%; box-shadow: 0 0 40px 20px rgba(255,208,96,0.4);
  animation: cn-sun 6s ease-in-out infinite alternate;
}
.scn-cocoa-nuts .sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #5a9fb0 0%, #3a7a8a 100%);
  clip-path: polygon(0% 20%, 10% 15%, 20% 25%, 30% 10%, 40% 20%, 50% 15%, 60% 25%, 70% 10%, 80% 20%, 90% 15%, 100% 20%, 100% 100%, 0% 100%);
  animation: cn-sea 10s ease-in-out infinite alternate;
}
.scn-cocoa-nuts .island {
  position: absolute; bottom: 25%; left: 30%; width: 150px; height: 60px;
  background: linear-gradient(180deg, #d4b080 0%, #a08050 100%);
  border-radius: 50% 50% 30% 30%; box-shadow: inset 0 -5px 15px rgba(0,0,0,0.3);
  animation: cn-island 20s ease-in-out infinite;
}
.scn-cocoa-nuts .palm-left {
  position: absolute; bottom: 40%; left: 33%; width: 12px; height: 70px;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2010 100%);
  border-radius: 20% 20% 10% 10%;
  transform-origin: bottom center;
  animation: cn-palm 8s ease-in-out infinite alternate;
}
.scn-cocoa-nuts .palm-right {
  position: absolute; bottom: 38%; left: 38%; width: 10px; height: 60px;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2010 100%);
  border-radius: 20% 20% 10% 10%;
  transform-origin: bottom center;
  animation: cn-palm2 9s ease-in-out infinite alternate;
}
.scn-cocoa-nuts .boat {
  position: absolute; bottom: 20%; left: 55%; width: 70px; height: 20px;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a3018 100%);
  border-radius: 40% 40% 20% 20%; box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: cn-boat 7s ease-in-out infinite;
}
.scn-cocoa-nuts .figure-equiano {
  position: absolute; bottom: 22%; left: 57%; width: 16px; height: 28px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: cn-figure 4s ease-in-out infinite;
}
.scn-cocoa-nuts .coconuts {
  position: absolute; bottom: 42%; left: 30%; width: 16px; height: 18px;
  background: radial-gradient(circle at 40% 40%, #8a6a3a 0%, #5a3a1a 80%);
  border-radius: 50%; box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation: cn-coconuts 12s linear infinite;
}
@keyframes cn-sky { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes cn-sun { 0% { transform: scale(0.95); box-shadow: 0 0 30px 15px rgba(255,208,96,0.3); } 50% { transform: scale(1.05); box-shadow: 0 0 50px 25px rgba(255,208,96,0.6); } 100% { transform: scale(1); box-shadow: 0 0 40px 20px rgba(255,208,96,0.4); } }
@keyframes cn-sea { 0% { transform: translateY(0); } 50% { transform: translateY(2px); } 100% { transform: translateY(0); } }
@keyframes cn-island { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes cn-palm { 0% { transform: rotate(-3deg); } 50% { transform: rotate(3deg); } 100% { transform: rotate(-2deg); } }
@keyframes cn-palm2 { 0% { transform: rotate(2deg); } 50% { transform: rotate(-4deg); } 100% { transform: rotate(1deg); } }
@keyframes cn-boat { 0% { transform: translateY(0) rotate(-2deg); } 25% { transform: translateY(-1px) rotate(1deg); } 50% { transform: translateY(0) rotate(2deg); } 75% { transform: translateY(-1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes cn-figure { 0% { transform: translateY(0) rotate(-1deg); } 30% { transform: translateY(-2px) rotate(0deg); } 60% { transform: translateY(0) rotate(1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes cn-coconuts { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(5px) rotate(10deg); } 100% { transform: translateX(0) rotate(0deg); } }

.scn-fish-jumped {
  background: linear-gradient(180deg, #f5a080 0%, #d08060 40%, #a06040 100%),
              radial-gradient(ellipse at 50% 0%, #f5b090 0%, transparent 70%);
}
.scn-fish-jumped .dusk-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #f5a080 0%, #d07050 60%, transparent 100%);
  animation: fj-sky 15s ease-in-out infinite alternate;
}
.scn-fish-jumped .sunset {
  position: absolute; top: 5%; left: 55%; width: 60px; height: 60px;
  background: radial-gradient(circle, #ffcc80 0%, #ff8844 30%, #cc5533 60%, transparent 80%);
  border-radius: 50%; box-shadow: 0 0 50px 25px rgba(255,136,68,0.4);
  animation: fj-sunset 8s ease-in-out infinite alternate;
}
.scn-fish-jumped .deck {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.5);
  animation: fj-deck 18s ease-in-out infinite;
}
.scn-fish-jumped .rail {
  position: absolute; bottom: 30%; left: 10%; right: 10%; height: 8px;
  background: linear-gradient(90deg, #5a3a2a 0%, #7a4a3a 50%, #5a3a2a 100%);
  border-radius: 4px; box-shadow: 0 2px 4px rgba(0,0,0,0.4);
  animation: fj-rail 10s ease-in-out infinite alternate;
}
.scn-fish-jumped .fish {
  position: absolute; bottom: 20%; left: 40%; width: 40px; height: 20px;
  background: linear-gradient(135deg, #b0a0a0 0%, #908080 50%, #706060 100%);
  border-radius: 50% 50% 30% 30%; transform: rotate(-10deg);
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: fj-fish 4s ease-in-out infinite;
}
.scn-fish-jumped .figure-equiano {
  position: absolute; bottom: 18%; left: 35%; width: 20px; height: 36px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: fj-equiano 3s ease-in-out infinite;
}
.scn-fish-jumped .figure-captain {
  position: absolute; bottom: 20%; right: 25%; width: 24px; height: 40px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: fj-captain 5s ease-in-out infinite;
}
.scn-fish-jumped .water-rim {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #a06040 0%, #704030 100%);
  clip-path: polygon(0% 30%, 10% 20%, 20% 35%, 30% 15%, 40% 30%, 50% 20%, 60% 35%, 70% 15%, 80% 30%, 90% 20%, 100% 30%, 100% 100%, 0% 100%);
  animation: fj-water 12s ease-in-out infinite alternate;
}
@keyframes fj-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes fj-sunset { 0% { transform: scale(0.95) translateY(0); box-shadow: 0 0 40px 20px rgba(255,136,68,0.3); } 50% { transform: scale(1.05) translateY(-3px); box-shadow: 0 0 60px 30px rgba(255,136,68,0.6); } 100% { transform: scale(1) translateY(0); box-shadow: 0 0 50px 25px rgba(255,136,68,0.4); } }
@keyframes fj-deck { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes fj-rail { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.1); } 100% { transform: scaleY(1); } }
@keyframes fj-fish { 0% { transform: rotate(-10deg) translateY(0); } 30% { transform: rotate(-5deg) translateY(-3px); } 60% { transform: rotate(-12deg) translateY(0); } 100% { transform: rotate(-8deg) translateY(0); } }
@keyframes fj-equiano { 0% { transform: translateY(0) rotate(-1deg) scaleY(1); } 25% { transform: translateY(-2px) rotate(1deg) scaleY(0.97); } 50% { transform: translateY(0) rotate(-1deg) scaleY(1); } 75% { transform: translateY(-1px) rotate(1deg) scaleY(0.98); } 100% { transform: translateY(0) rotate(0) scaleY(1); } }
@keyframes fj-captain { 0% { transform: translateY(0) rotate(1deg); } 40% { transform: translateY(-2px) rotate(-1deg); } 80% { transform: translateY(0) rotate(1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes fj-water { 0% { transform: translateY(0); } 50% { transform: translateY(2px); } 100% { transform: translateY(0); } }

.scn-bible-companion {
  background: linear-gradient(180deg, #2b1d12 0%, #3d2817 40%, #4a3520 70%, #2a1a0e 100%),
              radial-gradient(ellipse at 30% 70%, #8a6a40 0%, transparent 60%);
}
.scn-bible-companion .cabin-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #3d2a1a 0%, #2a1a0e 100%);
  border-radius: 0 0 60% 60% / 0 0 30% 30%;
  animation: bc-wall 20s ease-in-out infinite alternate;
}
.scn-bible-companion .cabin-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #4a3520 0%, #2a1a0e 100%);
  border-radius: 40% 60% 0 0 / 20% 30% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.6);
  animation: bc-floor 10s ease-in-out infinite;
}
.scn-bible-companion .figure-kneeling {
  position: absolute; bottom: 18%; left: 40%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #4a3520 0%, #2a1a0e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: bc-figure 4s ease-in-out infinite;
}
.scn-bible-companion .bible-open {
  position: absolute; bottom: 28%; left: 46%; width: 24px; height: 16px;
  background: linear-gradient(135deg, #8a7a5a 0%, #6a5a3a 100%);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  transform: rotate(-5deg);
  animation: bc-bible 6s ease-in-out infinite alternate;
}
.scn-bible-companion .lantern {
  position: absolute; bottom: 40%; left: 55%; width: 12px; height: 18px;
  background: radial-gradient(circle, #d4a060 0%, #b08040 60%, #6a4a2a 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 0 20px 6px #c09050, 0 0 40px 12px rgba(192,144,80,0.5);
  animation: bc-lantern 3s ease-in-out infinite alternate;
}
.scn-bible-companion .porthole {
  position: absolute; top: 15%; right: 15%; width: 40px; height: 40px;
  background: radial-gradient(circle, #2a4a6a 0%, #1a2a3a 70%);
  border-radius: 50%;
  border: 6px solid #4a3a2a;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.8), 0 0 6px rgba(42,74,106,0.6);
  animation: bc-porthole 15s ease-in-out infinite alternate;
}
.scn-bible-companion .starlight {
  position: absolute; top: 10%; right: 22%; width: 4px; height: 4px;
  background: #f0e8c0;
  border-radius: 50%;
  box-shadow: 0 0 8px 2px rgba(240,232,192,0.8);
  animation: bc-star 3s ease-in-out infinite;
}
@keyframes bc-wall { 0% { opacity: 0.8; transform: scaleY(1); } 50% { opacity: 0.9; transform: scaleY(1.02); } 100% { opacity: 0.85; transform: scaleY(0.98); } }
@keyframes bc-floor { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.98) translateY(1px); } 100% { transform: scaleY(1) translateY(0); } }
@keyframes bc-figure { 0% { transform: translateY(0) rotate(-2deg); } 25% { transform: translateY(-2px) rotate(1deg) scale(0.98); } 50% { transform: translateY(1px) rotate(-1deg) scale(1.02); } 75% { transform: translateY(-1px) rotate(0deg) scale(0.99); } 100% { transform: translateY(0) rotate(0deg) scale(1); } }
@keyframes bc-bible { 0% { transform: rotate(-5deg) scaleX(1); } 50% { transform: rotate(-3deg) scaleX(1.02); } 100% { transform: rotate(-7deg) scaleX(0.98); } }
@keyframes bc-lantern { 0% { box-shadow: 0 0 16px 4px #c09050; opacity: 0.9; } 50% { box-shadow: 0 0 30px 10px #f0c080, 0 0 60px 20px rgba(240,192,128,0.4); opacity: 1; } 100% { box-shadow: 0 0 20px 5px #c09050; opacity: 0.85; } }
@keyframes bc-porthole { 0% { opacity: 0.6; transform: scale(1); } 50% { opacity: 0.9; transform: scale(1.05); } 100% { opacity: 0.7; transform: scale(0.95); } }
@keyframes bc-star { 0% { opacity: 0.3; transform: scale(0.8); } 50% { opacity: 1; transform: scale(1.2); } 100% { opacity: 0.5; transform: scale(0.9); } }

.scn-ebenezer {
  background: linear-gradient(180deg, #2a1a0e 0%, #3d2817 30%, #4a3520 60%, #2b1d12 100%),
              radial-gradient(ellipse at 60% 70%, #7a5a3a 0%, transparent 50%);
}
.scn-ebenezer .study-wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #3d2a1a 0%, #2a1a0e 100%);
  border-radius: 0 0 50% 50% / 0 0 20% 20%;
  animation: eb-wall 18s ease-in-out infinite alternate;
}
.scn-ebenezer .study-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #4a3520 0%, #2a1a0e 100%);
  border-radius: 30% 70% 0 0 / 15% 25% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.5);
  animation: eb-floor 12s ease-in-out infinite;
}
.scn-ebenezer .chair {
  position: absolute; bottom: 20%; left: 44%; width: 50px; height: 40px;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 8% 8%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.6);
  animation: eb-chair 8s ease-in-out infinite;
}
.scn-ebenezer .figure-sitting {
  position: absolute; bottom: 32%; left: 46%; width: 30px; height: 45px;
  background: linear-gradient(180deg, #4a3520 0%, #2a1a0e 100%);
  border-radius: 50% 50% 35% 35% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: eb-figure 5s ease-in-out infinite;
}
.scn-ebenezer .book-open {
  position: absolute; bottom: 28%; left: 48%; width: 20px; height: 14px;
  background: linear-gradient(135deg, #7a6a4a 0%, #5a4a2a 100%);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.4);
  transform: rotate(3deg);
  animation: eb-book 7s ease-in-out infinite alternate;
}
.scn-ebenezer .study-window {
  position: absolute; top: 12%; right: 10%; width: 50px; height: 60px;
  background: radial-gradient(ellipse at 50% 30%, #8a7a5a 0%, #3a2a1a 70%);
  border-radius: 6px;
  border: 4px solid #4a3520;
  box-shadow: inset 0 0 15px rgba(0,0,0,0.7);
  animation: eb-window 20s ease-in-out infinite alternate;
}
.scn-ebenezer .candle {
  position: absolute; bottom: 36%; left: 38%; width: 8px; height: 14px;
  background: linear-gradient(180deg, #d4a060 0%, #b08040 100%);
  border-radius: 4px 4px 2px 2px;
  box-shadow: 0 0 12px 3px #d4a060, 0 0 24px 8px rgba(212,160,96,0.4);
  animation: eb-candle 4s ease-in-out infinite alternate;
}
@keyframes eb-wall { 0% { opacity: 0.75; transform: scaleY(1); } 50% { opacity: 0.9; transform: scaleY(1.03); } 100% { opacity: 0.8; transform: scaleY(0.97); } }
@keyframes eb-floor { 0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(0.97) translateY(1px); } 100% { transform: scaleY(1) translateY(0); } }
@keyframes eb-chair { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes eb-figure { 0% { transform: translateY(0) rotate(0deg) scaleX(1); } 25% { transform: translateY(-1px) rotate(-1deg) scaleX(0.98); } 50% { transform: translateY(1px) rotate(0deg) scaleX(1.02); } 75% { transform: translateY(-0.5px) rotate(1deg) scaleX(0.99); } 100% { transform: translateY(0) rotate(0deg) scaleX(1); } }
@keyframes eb-book { 0% { transform: rotate(2deg) scaleX(1); } 50% { transform: rotate(5deg) scaleX(1.03); } 100% { transform: rotate(0deg) scaleX(0.97); } }
@keyframes eb-window { 0% { opacity: 0.5; transform: scale(1) translateX(0); } 50% { opacity: 0.8; transform: scale(1.04) translateX(2px); } 100% { opacity: 0.6; transform: scale(0.98) translateX(-1px); } }
@keyframes eb-candle { 0% { box-shadow: 0 0 8px 2px #d4a060; opacity: 0.85; } 50% { box-shadow: 0 0 18px 6px #f0c080, 0 0 36px 12px rgba(240,192,128,0.5); opacity: 1; } 100% { box-shadow: 0 0 10px 3px #d4a060; opacity: 0.9; } }

.scn-return-london-romaine {
  background: linear-gradient(180deg, #1a3a4a 0%, #2a5a6a 30%, #4a8a9a 60%, #6aaabc 100%),
              radial-gradient(ellipse at 50% 40%, #7abacc 0%, transparent 60%);
}
.scn-return-london-romaine .sky-sea {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #1a3a4a 0%, #3a7a8a 100%);
  animation: rlr-sky 25s ease-in-out infinite alternate;
}
.scn-return-london-romaine .ship-hull {
  position: absolute; bottom: 35%; left: 30%; width: 120px; height: 30px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 0 0 40% 40% / 0 0 60% 60%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.5);
  animation: rlr-hull 8s ease-in-out infinite;
}
.scn-return-london-romaine .sail-main {
  position: absolute; bottom: 60%; left: 35%; width: 50px; height: 70px;
  background: linear-gradient(135deg, #f0e8d0 0%, #d0c8b0 100%);
  border-radius: 20% 80% 80% 20% / 20% 20% 80% 80%;
  transform: rotate(-5deg);
  animation: rlr-sail 6s ease-in-out infinite alternate;
}
.scn-return-london-romaine .sail-jib {
  position: absolute; bottom: 50%; left: 20%; width: 30px; height: 50px;
  background: linear-gradient(135deg, #e8e0c8 0%, #c8c0a8 100%);
  border-radius: 0 80% 80% 0 / 20% 40% 60% 80%;
  transform: rotate(-10deg);
  animation: rlr-sail2 7s ease-in-out infinite alternate;
}
.scn-return-london-romaine .mast {
  position: absolute; bottom: 35%; left: 38%; width: 6px; height: 90px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 2px;
}
.scn-return-london-romaine .deck {
  position: absolute; bottom: 32%; left: 20%; width: 140px; height: 8px;
  background: linear-gradient(180deg, #5a4a3a 0%, #4a3a2a 100%);
  border-radius: 2px;
  animation: rlr-deck 10s ease-in-out infinite;
}
.scn-return-london-romaine .figure-on-deck {
  position: absolute; bottom: 38%; left: 40%; width: 16px; height: 30px;
  background: linear-gradient(180deg, #2a1a0e 0%, #1a0e06 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%;
  transform-origin: bottom center;
  animation: rlr-figure 5s ease-in-out infinite;
}
.scn-return-london-romaine .cloud-wisp {
  position: absolute; top: 12%; left: 10%; width: 60px; height: 12px;
  background: linear-gradient(180deg, rgba(255,255,255,0.4) 0%, rgba(255,255,255,0.05) 100%);
  border-radius: 50%;
  filter: blur(4px);
  animation: rlr-cloud 40s linear infinite;
}
@keyframes rlr-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes rlr-hull { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(-0.5deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes rlr-sail { 0% { transform: rotate(-5deg) scaleX(1); } 50% { transform: rotate(-2deg) scaleX(1.05); } 100% { transform: rotate(-8deg) scaleX(0.95); } }
@keyframes rlr-sail2 { 0% { transform: rotate(-10deg) scaleX(1); } 50% { transform: rotate(-6deg) scaleX(1.03); } 100% { transform: rotate(-12deg) scaleX(0.97); } }
@keyframes rlr-deck { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes rlr-figure { 0% { transform: translateY(0) rotate(-1deg); } 25% { transform: translateY(-1px) rotate(0deg) scale(0.98); } 50% { transform: translateY(0) rotate(1deg) scale(1.02); } 75% { transform: translateY(1px) rotate(-0.5deg) scale(0.99); } 100% { transform: translateY(0) rotate(0deg) scale(1); } }
@keyframes rlr-cloud { 0% { transform: translateX(-80px); } 100% { transform: translateX(120vw); } }

.scn-westminster-fellowship {
  background: linear-gradient(180deg, #2a1a0e 0%, #3a2a1a 40%, #4a3520 70%, #2b1d12 100%),
              radial-gradient(ellipse at 50% 40%, #7a5a3a 0%, transparent 60%);
}
.scn-westminster-fellowship .chapel-wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0e 100%);
  border-radius: 0 0 40% 40% / 0 0 10% 10%;
  animation: wf-wall 20s ease-in-out infinite alternate;
}
.scn-westminster-fellowship .pew {
  position: absolute; bottom: 28%; left: 20%; width: 100px; height: 20px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
  animation: wf-pew 10s ease-in-out infinite;
}
.scn-westminster-fellowship .pulpit {
  position: absolute; bottom: 30%; left: 55%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.5);
  animation: wf-pulpit 12s ease-in-out infinite;
}
.scn-westminster-fellowship .figure-romaine {
  position: absolute; bottom: 20%; left: 50%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #2a1a0e 0%, #1a0e06 100%);
  border-radius: 50% 50% 35% 35% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: wf-romaine 5s ease-in-out infinite;
}
.scn-westminster-fellowship .figure-friend {
  position: absolute; bottom: 20%; left: 35%; width: 20px; height: 38px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e06 100%);
  border-radius: 50% 50% 35% 35% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: wf-friend 5s ease-in-out infinite 0.3s;
}
.scn-westminster-fellowship .chapel-window {
  position: absolute; top: 8%; right: 28%; width: 50px; height: 70px;
  background: radial-gradient(ellipse at 50% 40%, #c0a070 0%, #4a3520 70%);
  border-radius: 8px;
  border: 6px solid #4a3520;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.7);
  animation: wf-window 25s ease-in-out infinite alternate;
}
.scn-westminster-fellowship .chapel-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #4a3520 0%, #2a1a0e 100%);
  border-radius: 20% 80% 0 0 / 10% 20% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.5);
  animation: wf-floor 8s ease-in-out infinite;
}
.scn-westminster-fellowship .light-shaft {
  position: absolute; top: 0; left: 35%; width: 40px; height: 80%;
  background: linear-gradient(180deg, rgba(240,220,180,0.15) 0%, rgba(240,220,180,0.05) 60%, transparent 100%);
  filter: blur(6px);
  animation: wf-shaft 15s ease-in-out infinite alternate;
}
@keyframes wf-wall { 0% { opacity: 0.8; transform: scaleY(1); } 50% { opacity: 0.9; transform: scaleY(1.02); } 100% { opacity: 0.85; transform: scaleY(0.98); } }
@keyframes wf-pew { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes wf-pulpit { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-2px) scaleX(1.02); } 100% { transform: translateY(0) scaleX(1); } }
@keyframes wf-romaine { 0% { transform: translateY(0) rotate(-1deg) scaleX(1); } 25% { transform: translateY(-1px) rotate(0deg) scaleX(0.98); } 50% { transform: translateY(0) rotate(1deg) scaleX(1.02); } 75% { transform: translateY(0.5px) rotate(0deg) scaleX(0.99); } 100% { transform: translateY(0) rotate(0deg) scaleX(1); } }
@keyframes wf-friend { 0% { transform: translateY(0) rotate(0deg) scaleX(1); } 25% { transform: translateY(-1px) rotate(0.5deg) scaleX(0.98); } 50% { transform: translateY(0) rotate(-0.5deg) scaleX(1.01); } 75% { transform: translateY(0.5px) rotate(0deg) scaleX(0.99); } 100% { transform: translateY(0) rotate(0deg) scaleX(1); } }
@keyframes wf-window { 0% { opacity: 0.4; transform: scale(1); } 50% { opacity: 0.7; transform: scale(1.04); } 100% { opacity: 0.5; transform: scale(0.97); } }
@keyframes wf-floor { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.98) translateY(1px); } 100% { transform: scaleY(1); } }
@keyframes wf-shaft { 0% { opacity: 0.2; transform: translateX(-10px) rotate(-2deg); } 50% { opacity: 0.5; transform: translateX(5px) rotate(1deg); } 100% { opacity: 0.3; transform: translateX(-5px) rotate(0deg); } }

.scn-british-seaman-intervenes {
  background: linear-gradient(180deg, #87ceeb 0%, #f0e68c 30%, #f4a460 60%, #6b4226 100%),
              radial-gradient(ellipse at 50% 0%, #ffffff30 0%, transparent 60%);
}
.scn-british-seaman-intervenes .sky {
  position: absolute; inset: 0 0 65% 0;
  background: linear-gradient(180deg, #87ceeb 0%, #b0e0e6 40%, #f0e68c 100%);
  animation: bsi-sky 15s ease-in-out infinite alternate;
}
.scn-british-seaman-intervenes .sea {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #4682b4 0%, #2e6b8a 50%, #1a4b6b 100%);
  animation: bsi-sea 8s ease-in-out infinite alternate;
}
.scn-british-seaman-intervenes .deck {
  position: absolute; bottom: 0; left: 5%; right: 5%; height: 30%;
  background: linear-gradient(180deg, #8b5e3c 0%, #5a3a1a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,.5);
}
.scn-british-seaman-intervenes .mast {
  position: absolute; bottom: 50%; left: 30%; width: 6px; height: 50%;
  background: linear-gradient(180deg, #3a2a1a 0%, #5a3a2a 100%);
  border-radius: 2px;
  transform-origin: bottom center;
  animation: bsi-mast-sway 12s ease-in-out infinite;
}
.scn-british-seaman-intervenes .sail {
  position: absolute; bottom: 60%; left: 26%; width: 70px; height: 50px;
  background: radial-gradient(ellipse at 50% 80%, #f5deb3 0%, #d2b48c 70%, #a08060 100%);
  border-radius: 0 50% 50% 0;
  animation: bsi-sail-billow 10s ease-in-out infinite alternate;
}
.scn-british-seaman-intervenes .figure-aggressor {
  position: absolute; bottom: 18%; left: 60%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #2c2c3c 0%, #18182a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bsi-aggressor 4s ease-in-out infinite;
}
.scn-british-seaman-intervenes .figure-defender {
  position: absolute; bottom: 18%; left: 40%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #3c3c2c 0%, #2a2a18 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bsi-defender 4s ease-in-out infinite alternate;
}
@keyframes bsi-sky { 0% { opacity:.8; background-position: 0 0; } 50% { opacity:1; background-position: 0 10%; } 100% { opacity:.9; background-position: 0 5%; } }
@keyframes bsi-sea { 0% { transform: translateX(0); } 50% { transform: translateX(-5px); } 100% { transform: translateX(5px); } }
@keyframes bsi-mast-sway { 0%,100% { transform: rotate(-1deg); } 50% { transform: rotate(2deg); } }
@keyframes bsi-sail-billow { 0% { transform: scaleX(0.9); border-radius: 0 40% 40% 0; } 50% { transform: scaleX(1.05); border-radius: 0 60% 60% 0; } 100% { transform: scaleX(0.95); border-radius: 0 50% 50% 0; } }
@keyframes bsi-aggressor { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(2px) rotate(1deg); } 50% { transform: translateX(0) rotate(-3deg); } 75% { transform: translateX(-2px) rotate(2deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes bsi-defender { 0% { transform: translateX(0) rotate(3deg) scaleY(1); } 50% { transform: translateX(-5px) rotate(0deg) scaleY(1.05); } 100% { transform: translateX(0) rotate(-2deg) scaleY(1); } }

.scn-life-threatened {
  background: linear-gradient(180deg, #f0e68c 0%, #ffd700 20%, #ff8c00 50%, #8b4513 100%),
              radial-gradient(ellipse at 50% 100%, #ff450030 0%, transparent 70%);
}
.scn-life-threatened .sky {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #87ceeb 0%, #b0e0e6 40%, #ffe4b5 100%);
  animation: lt-sky 12s ease-in-out infinite alternate;
}
.scn-life-threatened .sea {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #4682b4 0%, #2e6b8a 50%, #1a4b6b 100%);
  animation: lt-sea 7s ease-in-out infinite alternate;
}
.scn-life-threatened .sand {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #d2b48c 0%, #b8860b 50%, #8b4513 100%);
  border-radius: 20% 20% 0 0;
}
.scn-life-threatened .rock {
  position: absolute; bottom: 25%; left: 25%; width: 40px; height: 30px;
  background: linear-gradient(135deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 50% 50%;
  box-shadow: inset -4px -4px 8px rgba(0,0,0,.5);
  animation: lt-rock 20s ease-in-out infinite;
}
.scn-life-threatened .figure-threat {
  position: absolute; bottom: 18%; left: 45%; width: 20px; height: 35px;
  background: linear-gradient(180deg, #2c2c3c 0%, #18182a 100%);
  border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lt-threat-cower 3s ease-in-out infinite;
}
.scn-life-threatened .figure-gun {
  position: absolute; bottom: 18%; left: 60%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #3a3a2a 0%, #2a2a18 100%);
  border-radius: 50% 50% 35% 35% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lt-gunman 5s ease-in-out infinite;
}
.scn-life-threatened .gun-barrel {
  position: absolute; bottom: 55%; left: 65%; width: 20px; height: 4px;
  background: #4a4a3a;
  border-radius: 2px;
  transform: rotate(-15deg);
  animation: lt-barrel 5s ease-in-out infinite;
}
@keyframes lt-sky { 0% { opacity:.85; } 50% { opacity:1; } 100% { opacity:.9; } }
@keyframes lt-sea { 0% { transform: translateX(0); } 50% { transform: translateX(-3px); } 100% { transform: translateX(3px); } }
@keyframes lt-rock { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes lt-threat-cower { 0% { transform: translateX(0) scaleY(1); } 25% { transform: translateX(3px) scaleY(0.95); } 50% { transform: translateX(0) scaleY(1); } 75% { transform: translateX(-3px) scaleY(0.95); } 100% { transform: translateX(0) scaleY(1); } }
@keyframes lt-gunman { 0% { transform: rotate(-1deg) translateY(0); } 50% { transform: rotate(2deg) translateY(-2px); } 100% { transform: rotate(-1deg) translateY(0); } }
@keyframes lt-barrel { 0% { transform: rotate(-15deg); } 50% { transform: rotate(-18deg); } 100% { transform: rotate(-12deg); } }

.scn-barbadoes-act {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a1a1a 50%, #0a0a0f 100%),
              radial-gradient(ellipse at 50% 50%, #3a2a1a 0%, transparent 80%);
}
.scn-barbadoes-act .wall-back {
  position: absolute; inset: 0 0 15% 0;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  animation: ba-wall 20s ease-in-out infinite alternate;
}
.scn-barbadoes-act .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #1a0a0a 0%, #0a0505 100%);
}
.scn-barbadoes-act .desk {
  position: absolute; bottom: 15%; left: 20%; right: 20%; height: 30%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.6);
}
.scn-barbadoes-act .book {
  position: absolute; bottom: 30%; left: 35%; width: 60px; height: 40px;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%);
  border-radius: 4px;
  transform: rotate(-5deg);
  animation: ba-book-flicker 8s ease-in-out infinite alternate;
}
.scn-barbadoes-act .gavel {
  position: absolute; bottom: 25%; left: 55%; width: 8px; height: 30px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%);
  border-radius: 2px;
  transform: rotate(10deg);
  animation: ba-gavel 6s ease-in-out infinite;
}
.scn-barbadoes-act .candle {
  position: absolute; bottom: 28%; left: 28%; width: 10px; height: 25px;
  background: linear-gradient(180deg, #f0e68c 0%, #d2b48c 50%, #8b4513 100%);
  border-radius: 2px 2px 10% 10%;
  animation: ba-candle 4s ease-in-out infinite;
}
.scn-barbadoes-act .shadow-figure {
  position: absolute; bottom: 15%; left: 30%; width: 40px; height: 70px;
  background: radial-gradient(ellipse at 50% 30%, #00000060 0%, transparent 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  filter: blur(3px);
  animation: ba-shadow-move 12s ease-in-out infinite alternate;
}
@keyframes ba-wall { 0% { opacity:.9; } 50% { opacity:1; } 100% { opacity:.8; } }
@keyframes ba-book-flicker { 0% { opacity:.8; transform: rotate(-4deg) scale(1); } 50% { opacity:1; transform: rotate(-5deg) scale(1.02); } 100% { opacity:.85; transform: rotate(-6deg) scale(1); } }
@keyframes ba-gavel { 0%,100% { transform: rotate(10deg) translateY(0); } 25% { transform: rotate(12deg) translateY(-3px); } 75% { transform: rotate(8deg) translateY(-1px); } }
@keyframes ba-candle { 0% { height:25px; opacity:.9; } 50% { height:28px; opacity:1; } 100% { height:23px; opacity:.8; } }
@keyframes ba-shadow-move { 0% { transform: translateX(0) scale(1); } 50% { transform: translateX(10px) scale(1.05); } 100% { transform: translateX(-5px) scale(0.95); } }

.scn-barbadoes-act-2 {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a1a1a 30%, #0a0a0f 100%),
              radial-gradient(ellipse at 50% 80%, #3a2a1a 0%, transparent 70%);
}
.scn-barbadoes-act-2 .table-surface {
  position: absolute; inset: 20% 10% 0 10%; 
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 8px;
  box-shadow: inset 0 4px 12px rgba(0,0,0,.5);
}
.scn-barbadoes-act-2 .parchment {
  position: absolute; top: 30%; left: 25%; width: 100px; height: 70px;
  background: linear-gradient(135deg, #f5deb3 0%, #d2b48c 60%, #b8860b 100%);
  border-radius: 4px;
  transform: rotate(-2deg);
  animation: ba2-parchment 15s ease-in-out infinite alternate;
}
.scn-barbadoes-act-2 .quill {
  position: absolute; top: 25%; left: 60%; width: 4px; height: 60px;
  background: linear-gradient(180deg, #d2b48c 0%, #8b4513 100%);
  border-radius: 2px;
  transform: rotate(35deg);
  transform-origin: bottom left;
  animation: ba2-quill-write 10s ease-in-out infinite;
}
.scn-barbadoes-act-2 .inkwell {
  position: absolute; top: 35%; left: 70%; width: 16px; height: 14px;
  background: radial-gradient(circle, #1a1a2e 0%, #0a0a1a 100%);
  border-radius: 50%;
  box-shadow: 0 2px 6px rgba(0,0,0,.6);
}
.scn-barbadoes-act-2 .coin {
  position: absolute; top: 48%; left: 20%; width: 18px; height: 18px;
  background: radial-gradient(circle, #f0e68c 0%, #b8860b 70%, #8b4513 100%);
  border-radius: 50%;
  box-shadow: 0 2px 4px rgba(0,0,0,.4);
  animation: ba2-coin-shine 6s ease-in-out infinite alternate;
}
.scn-barbadoes-act-2 .hand-writing {
  position: absolute; top: 28%; left: 55%; width: 18px; height: 30px;
  background: radial-gradient(ellipse at 50% 60%, #2c2c3c 0%, #18182a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform: rotate(30deg);
  animation: ba2-hand 8s ease-in-out infinite;
}
@keyframes ba2-parchment { 0% { opacity:.85; transform: rotate(-2deg) scale(1); } 50% { opacity:1; transform: rotate(-1deg) scale(1.02); } 100% { opacity:.9; transform: rotate(-3deg) scale(0.98); } }
@keyframes ba2-quill-write { 0% { transform: rotate(35deg) translateY(0); } 25% { transform: rotate(30deg) translateY(4px); } 75% { transform: rotate(40deg) translateY(-2px); } 100% { transform: rotate(35deg) translateY(0); } }
@keyframes ba2-coin-shine { 0% { box-shadow: 0 2px 4px rgba(0,0,0,.4); } 50% { box-shadow: 0 2px 8px rgba(255,215,0,.6); } 100% { box-shadow: 0 2px 4px rgba(0,0,0,.4); } }
@keyframes ba2-hand { 0% { transform: rotate(30deg) scaleY(1); } 50% { transform: rotate(28deg) scaleY(0.95); } 100% { transform: rotate(32deg) scaleY(1); } }

/* captain-persuades – tense sunlit deck */
.scn-captain-persuades {
  background: linear-gradient(180deg, #6ba8d0 0%, #94c4e6 60%, #d4a86a 100%), radial-gradient(ellipse at 50% 0%, #fff3d6 0%, transparent 60%);
}
.scn-captain-persuades .sky { position: absolute; inset: 0 0 50% 0; background: linear-gradient(180deg, #7bbce6 0%, #c2dff0 100%); animation: cp-sky 12s ease-in-out infinite alternate; }
.scn-captain-persuades .sun { position: absolute; top: 10%; left: 70%; width: 60px; height: 60px; background: radial-gradient(circle, #ffecb3 0%, #ffd54f 40%, #ffb300 70%, transparent 100%); border-radius: 50%; box-shadow: 0 0 80px 30px rgba(255,213,79,.4); animation: cp-sun 8s ease-in-out infinite; }
.scn-captain-persuades .deck { position: absolute; bottom: 0; left: 0; right: 0; height: 50%; background: linear-gradient(180deg, #b58c5c 0%, #8b6c43 40%, #5e4a2e 100%); border-radius: 30% 70% 0 0 / 100% 100% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,.3); }
.scn-captain-persuades .rail { position: absolute; bottom: 45%; left: 5%; right: 5%; height: 6px; background: linear-gradient(90deg, #4a3a2a 0%, #6a503a 50%, #4a3a2a 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: cp-rail 3s ease-in-out infinite; }
.scn-captain-persuades .captain { position: absolute; bottom: 30%; left: 30%; width: 40px; height: 90px; background: linear-gradient(180deg, #2a3a3a 0%, #1a2a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cp-captain 4s ease-in-out infinite alternate; }
.scn-captain-persuades .mate { position: absolute; bottom: 30%; left: 55%; width: 36px; height: 84px; background: linear-gradient(180deg, #3a4a3a 0%, #2a3a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cp-mate 5s ease-in-out infinite alternate; }
.scn-captain-persuades .table { position: absolute; bottom: 35%; left: 42%; width: 40px; height: 20px; background: linear-gradient(180deg, #6a503a 0%, #4a3a2a 100%); border-radius: 10% 10% 4% 4%; box-shadow: 0 4px 8px rgba(0,0,0,.4); animation: cp-table 6s ease-in-out infinite; }
@keyframes cp-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes cp-sun { 0% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.08) rotate(10deg); } 100% { transform: scale(1) rotate(-10deg); } }
@keyframes cp-rail { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes cp-captain { 0% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(6px) rotate(1deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes cp-mate { 0% { transform: translateX(0) rotate(1deg); } 50% { transform: translateX(-4px) rotate(-1deg); } 100% { transform: translateX(0) rotate(1deg); } }
@keyframes cp-table { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-4px) scale(1.02); } 100% { transform: translateY(0) scale(1); } }

/* bullock-butts-captain – tense sunlit deck with bull */
.scn-bullock-butts-captain {
  background: linear-gradient(180deg, #6ba8d0 0%, #94c4e6 60%, #d4a86a 100%), radial-gradient(ellipse at 50% 0%, #fff3d6 0%, transparent 60%);
}
.scn-bullock-butts-captain .sky { position: absolute; inset: 0 0 50% 0; background: linear-gradient(180deg, #7bbce6 0%, #c2dff0 100%); animation: bc-sky 10s ease-in-out infinite alternate; }
.scn-bullock-butts-captain .sun { position: absolute; top: 12%; left: 65%; width: 55px; height: 55px; background: radial-gradient(circle, #ffecb3 0%, #ffd54f 40%, #ffb300 70%, transparent 100%); border-radius: 50%; box-shadow: 0 0 70px 25px rgba(255,213,79,.3); animation: bc-sun 6s ease-in-out infinite; }
.scn-bullock-butts-captain .deck { position: absolute; bottom: 0; left: 0; right: 0; height: 50%; background: linear-gradient(180deg, #b58c5c 0%, #8b6c43 40%, #5e4a2e 100%); border-radius: 30% 70% 0 0 / 100% 100% 0 0; }
.scn-bullock-butts-captain .bull-body { position: absolute; bottom: 15%; left: 45%; width: 80px; height: 50px; background: linear-gradient(180deg, #5e4a2e 0%, #3a2a1a 100%); border-radius: 40% 40% 30% 30%; transform-origin: center bottom; animation: bc-bull-body 1.5s ease-in-out infinite alternate; }
.scn-bullock-butts-captain .bull-head { position: absolute; bottom: 30%; left: 42%; width: 40px; height: 30px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 60% 60% 40% 40%; transform-origin: bottom center; animation: bc-bull-head 1.5s ease-in-out infinite alternate; }
.scn-bullock-butts-captain .horn-l { position: absolute; bottom: 48%; left: 40%; width: 8px; height: 18px; background: #4a3a2a; border-radius: 0 100% 0 100%; transform: rotate(-20deg); animation: bc-horn 1.5s ease-in-out infinite alternate; }
.scn-bullock-butts-captain .horn-r { position: absolute; bottom: 48%; left: 56%; width: 8px; height: 18px; background: #4a3a2a; border-radius: 100% 0 100% 0; transform: rotate(20deg); animation: bc-horn 1.5s ease-in-out infinite alternate; }
.scn-bullock-butts-captain .captain { position: absolute; bottom: 28%; left: 58%; width: 36px; height: 80px; background: linear-gradient(180deg, #2a3a3a 0%, #1a2a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bc-captain 2s ease-in-out infinite alternate; }
.scn-bullock-butts-captain .dust { position: absolute; bottom: 22%; left: 40%; width: 40px; height: 20px; background: radial-gradient(ellipse, rgba(200,170,120,.6) 0%, transparent 100%); filter: blur(3px); animation: bc-dust 1.5s ease-in-out infinite alternate; }
@keyframes bc-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes bc-sun { 0% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.05) rotate(5deg); } 100% { transform: scale(1) rotate(-5deg); } }
@keyframes bc-bull-body { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 50% { transform: translateX(8px) translateY(-10px) rotate(4deg); } 100% { transform: translateX(-4px) translateY(-4px) rotate(-1deg); } }
@keyframes bc-bull-head { 0% { transform: translateX(0) translateY(0) rotate(-5deg); } 50% { transform: translateX(10px) translateY(-12px) rotate(8deg); } 100% { transform: translateX(-2px) translateY(-6px) rotate(-3deg); } }
@keyframes bc-horn { 0% { transform: rotate(-25deg) translateY(0); } 50% { transform: rotate(-15deg) translateY(-4px); } 100% { transform: rotate(-25deg) translateY(0); } }
@keyframes bc-captain { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-15px) rotate(-10deg); } 100% { transform: translateX(-5px) rotate(-2deg); } }
@keyframes bc-dust { 0% { opacity: 0.3; transform: scale(1); } 50% { opacity: 0.8; transform: scale(1.5) translateX(10px); } 100% { opacity: 0.2; transform: scale(0.8) translateX(20px); } }

/* captain-illness – dark dim interior */
.scn-captain-illness {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 50%, #1e1e2a 100%), radial-gradient(ellipse at 50% 100%, #2a2a3e 0%, transparent 70%);
}
.scn-captain-illness .wall { position: absolute; inset: 0; background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%); }
.scn-captain-illness .bed { position: absolute; bottom: 20%; left: 20%; right: 20%; height: 35%; background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); border-radius: 12% 12% 6% 6%; box-shadow: inset 0 8px 20px rgba(0,0,0,.6); animation: ci-bed 8s ease-in-out infinite alternate; }
.scn-captain-illness .captain-bed { position: absolute; bottom: 25%; left: 25%; right: 25%; height: 18%; background: linear-gradient(180deg, #3a4a3a 0%, #2a3a2a 100%); border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%; animation: ci-captain-bed 10s ease-in-out infinite alternate; }
.scn-captain-illness .equiano { position: absolute; bottom: 20%; left: 55%; width: 30px; height: 70px; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ci-equiano 6s ease-in-out infinite alternate; }
.scn-captain-illness .candle { position: absolute; bottom: 45%; left: 30%; width: 6px; height: 30px; background: linear-gradient(180deg, #c08040 0%, #8a6020 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 12px 4px rgba(192,128,64,.5); animation: ci-candle 3s ease-in-out infinite alternate; }
.scn-captain-illness .candle-glow { position: absolute; bottom: 50%; left: 26%; width: 40px; height: 40px; background: radial-gradient(circle, rgba(255,200,100,.4) 0%, transparent 70%); filter: blur(6px); animation: ci-glow 4s ease-in-out infinite alternate; }
.scn-captain-illness .chair { position: absolute; bottom: 15%; left: 70%; width: 30px; height: 40px; background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); border-radius: 20% 20% 10% 10%; animation: ci-chair 12s ease-in-out infinite; }
@keyframes ci-bed { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(2px) scale(1.01); } 100% { transform: translateY(0) scale(1); } }
@keyframes ci-captain-bed { 0% { opacity: 0.8; transform: scaleY(1); } 50% { opacity: 1; transform: scaleY(1.02); } 100% { opacity: 0.85; transform: scaleY(0.98); } }
@keyframes ci-equiano { 0% { transform: translateX(0) rotate(-1deg); } 50% { transform: translateX(4px) rotate(1deg); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes ci-candle { 0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.05) translateY(-2px); } 100% { transform: scaleY(0.95) translateY(1px); } }
@keyframes ci-glow { 0% { opacity: 0.5; transform: scale(1); } 50% { opacity: 0.8; transform: scale(1.1); } 100% { opacity: 0.6; transform: scale(0.9); } }
@keyframes ci-chair { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }

/* captain-death – dark dim interior with mourning */
.scn-captain-death {
  background: linear-gradient(180deg, #0e0e1a 0%, #1a1a2e 60%, #12121c 100%), radial-gradient(ellipse at 50% 80%, #1a1a2e 0%, transparent 70%);
}
.scn-captain-death .wall { position: absolute; inset: 0; background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1a 100%); }
.scn-captain-death .bed { position: absolute; bottom: 20%; left: 20%; right: 20%; height: 40%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 12% 12% 6% 6%; box-shadow: inset 0 8px 20px rgba(0,0,0,.8); animation: cd-bed 10s ease-in-out infinite alternate; }
.scn-captain-death .captain-dead { position: absolute; bottom: 25%; left: 25%; right: 25%; height: 15%; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%; animation: cd-captain-dead 12s ease-in-out infinite alternate; }
.scn-captain-death .mourner { position: absolute; bottom: 18%; left: 55%; width: 28px; height: 65px; background: linear-gradient(180deg, #1a2a2a 0%, #0a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cd-mourner 8s ease-in-out infinite alternate; }
.scn-captain-death .candle { position: absolute; bottom: 45%; left: 35%; width: 5px; height: 25px; background: linear-gradient(180deg, #a07030 0%, #704a18 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 8px 2px rgba(160,112,48,.4); animation: cd-candle 4s ease-in-out infinite alternate; }
.scn-captain-death .candle-glow { position: absolute; bottom: 50%; left: 32%; width: 30px; height: 30px; background: radial-gradient(circle, rgba(200,150,80,.3) 0%, transparent 70%); filter: blur(5px); animation: cd-glow 5s ease-in-out infinite alternate; }
.scn-captain-death .cross { position: absolute; top: 15%; left: 50%; width: 4px; height: 40px; background: #4a3a2a; transform: translateX(-50%); border-radius: 2px; box-shadow: 0 0 10px 2px rgba(74,58,42,.5); animation: cd-cross 16s ease-in-out infinite; }
.scn-captain-death .cross::before { content: ''; position: absolute; top: 10px; left: -12px; width: 28px; height: 4px; background: #4a3a2a; border-radius: 2px; }
@keyframes cd-bed { 0% { transform: translateY(0); } 50% { transform: translateY(1px); } 100% { transform: translateY(0); } }
@keyframes cd-captain-dead { 0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.8; } }
@keyframes cd-mourner { 0% { transform: translateX(0) rotate(-1deg) scaleY(1); } 50% { transform: translateX(3px) rotate(2deg) scaleY(1.02); } 100% { transform: translateX(0) rotate(-1deg) scaleY(1); } }
@keyframes cd-candle { 0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.06) translateY(-3px); } 100% { transform: scaleY(0.94) translateY(1px); } }
@keyframes cd-glow { 0% { opacity: 0.4; transform: scale(1); } 50% { opacity: 0.7; transform: scale(1.15); } 100% { opacity: 0.3; transform: scale(0.85); } }
@keyframes cd-cross { 0% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(1deg); } 100% { transform: translateX(-50%) rotate(0deg); } }

/* Scene 1: musket-threat */
.scn-musket-threat {
  background: linear-gradient(180deg, #0b0e1a 0%, #1a1f2e 50%, #2a3a5a 100%),
              radial-gradient(ellipse at 50% 0%, #2a3a5a 0%, transparent 60%);
}
.scn-musket-threat .sky {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #0b0e1a 0%, transparent 100%);
  animation: mst-sky 12s ease-in-out infinite alternate;
}
.scn-musket-threat .sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #1a1f2e 0%, #0b0e1a 100%);
  animation: mst-sea 8s ease-in-out infinite alternate;
}
.scn-musket-threat .deck {
  position: absolute; bottom: 28%; left: 10%; right: 10%; height: 8%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1210 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 -4px 12px rgba(0,0,0,0.6);
}
.scn-musket-threat .mast {
  position: absolute; bottom: 36%; left: 50%; width: 4px; height: 30%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  transform: translateX(-50%);
}
.scn-musket-threat .sail {
  position: absolute; bottom: 40%; left: 48%; width: 40px; height: 50px;
  background: radial-gradient(ellipse 50% 100%, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 40% 40%;
  transform-origin: top center;
  animation: mst-sail 6s ease-in-out infinite;
}
.scn-musket-threat .figure-hughes {
  position: absolute; bottom: 32%; left: 40%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mst-hughes 3s ease-in-out infinite;
}
.scn-musket-threat .figure-equiano {
  position: absolute; bottom: 28%; left: 55%; width: 16px; height: 30px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mst-equiano 4s ease-in-out infinite;
}
.scn-musket-threat .musket-barrel {
  position: absolute; bottom: 34%; left: 42%; width: 30px; height: 3px;
  background: linear-gradient(90deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 2px;
  transform-origin: left center;
  animation: mst-musket 2.5s ease-in-out infinite alternate;
}
@keyframes mst-sky { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes mst-sea { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(2px) scale(1.01) } 100% { transform: translateY(-1px) scale(0.99) } }
@keyframes mst-sail { 0% { transform: rotate(-3deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-3deg) } }
@keyframes mst-hughes { 0% { transform: translate(0,0) rotate(-1deg) } 50% { transform: translate(2px,-1px) rotate(1deg) } 100% { transform: translate(-1px,1px) rotate(-1deg) } }
@keyframes mst-equiano { 0% { transform: translate(0,0) scaleY(1) } 50% { transform: translate(0,-2px) scaleY(0.95) } 100% { transform: translate(0,1px) scaleY(1) } }
@keyframes mst-musket { 0% { transform: rotate(0deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-2deg) } }

/* Scene 2: released-dawn */
.scn-released-dawn {
  background: linear-gradient(180deg, #2c1e3a 0%, #5a3a2a 40%, #c08a5a 100%),
              radial-gradient(ellipse at 50% 0%, #c08a5a 0%, transparent 70%);
}
.scn-released-dawn .sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2c1e3a 0%, #5a3a2a 100%);
  animation: rda-sky 15s ease-in-out infinite alternate;
}
.scn-released-dawn .pole {
  position: absolute; bottom: 20%; left: 50%; width: 6px; height: 60%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%);
  transform: translateX(-50%);
  border-radius: 2px;
}
.scn-released-dawn .rope {
  position: absolute; bottom: 50%; left: 50%; width: 2px; height: 30%;
  background: #4a3a2a;
  transform-origin: top center;
  animation: rda-rope 4s ease-in-out infinite;
}
.scn-released-dawn .figure-hung {
  position: absolute; bottom: 20%; left: 50%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  transform-origin: top center;
  animation: rda-hung 5s ease-in-out infinite;
}
.scn-released-dawn .slave-one {
  position: absolute; bottom: 12%; left: 30%; width: 16px; height: 30px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: rda-slave1 7s ease-in-out infinite alternate;
}
.scn-released-dawn .slave-two {
  position: absolute; bottom: 12%; left: 60%; width: 16px; height: 30px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: rda-slave2 7s ease-in-out infinite alternate;
  animation-delay: 1s;
}
.scn-released-dawn .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #1a1210 0%, #0a0806 100%);
  border-radius: 10% 10% 0 0;
}
.scn-released-dawn .moon {
  position: absolute; top: 10%; left: 70%; width: 20px; height: 20px;
  background: radial-gradient(circle, #ffe0b0 0%, #c08a5a 70%);
  border-radius: 50%;
  filter: blur(4px);
  animation: rda-moon 20s linear infinite;
}
@keyframes rda-sky { 0% { opacity:0.6 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes rda-rope { 0% { transform: rotate(0deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-2deg) } }
@keyframes rda-hung { 0% { transform: translateX(-50%) rotate(-1deg) } 50% { transform: translateX(-50%) rotate(1deg) translateY(2px) } 100% { transform: translateX(-50%) rotate(-1deg) } }
@keyframes rda-slave1 { 0% { transform: translate(0,0) } 50% { transform: translate(-2px,1px) } 100% { transform: translate(2px,-1px) } }
@keyframes rda-slave2 { 0% { transform: translate(0,0) } 50% { transform: translate(2px,-1px) } 100% { transform: translate(-2px,1px) } }
@keyframes rda-moon { 0% { transform: translateX(0) } 50% { transform: translateX(-20px) } 100% { transform: translateX(-40px) } }

/* Scene 3: canoe-escape */
.scn-canoe-escape {
  background: linear-gradient(180deg, #3a2a4a 0%, #6a4a3a 40%, #d0a05a 100%),
              radial-gradient(ellipse at 50% 0%, #d0a05a 0%, transparent 60%);
}
.scn-canoe-escape .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #3a2a4a 0%, #6a4a3a 100%);
  animation: can-sky 12s ease-in-out infinite alternate;
}
.scn-canoe-escape .sun {
  position: absolute; top: 12%; left: 20%; width: 30px; height: 30px;
  background: radial-gradient(circle, #ffe080 0%, #d0a05a 60%, transparent 100%);
  border-radius: 50%;
  filter: blur(2px);
  animation: can-sun 8s ease-in-out infinite alternate;
}
.scn-canoe-escape .water {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #3a4a5a 0%, #2a3a4a 100%);
  animation: can-water 5s ease-in-out infinite alternate;
}
.scn-canoe-escape .canoe {
  position: absolute; bottom: 40%; left: 30%; width: 60px; height: 14px;
  background: linear-gradient(90deg, #4a2a1a 0%, #6a3a2a 50%, #4a2a1a 100%);
  border-radius: 50% 50% 50% 50% / 20% 20% 20% 20%;
  transform-origin: center bottom;
  animation: can-canoe 4s ease-in-out infinite;
}
.scn-canoe-escape .paddler {
  position: absolute; bottom: 42%; left: 40%; width: 18px; height: 30px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: can-paddler 3s ease-in-out infinite;
}
.scn-canoe-escape .ship-hull {
  position: absolute; bottom: 20%; right: 5%; width: 80px; height: 40px;
  background: linear-gradient(90deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 10% 10% / 50% 50% 20% 20%;
  animation: can-ship 10s ease-in-out infinite;
}
.scn-canoe-escape .ship-sail {
  position: absolute; bottom: 30%; right: 15%; width: 30px; height: 40px;
  background: radial-gradient(ellipse 50% 100%, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: can-sail 6s ease-in-out infinite;
}
.scn-canoe-escape .hughes-figure {
  position: absolute; bottom: 30%; right: 15%; width: 18px; height: 35px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: can-hughes 3s ease-in-out infinite;
}
.scn-canoe-escape .musket-aim {
  position: absolute; bottom: 32%; right: 20%; width: 28px; height: 3px;
  background: linear-gradient(90deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 2px;
  transform-origin: right center;
  animation: can-musket 2s ease-in-out infinite alternate;
}
@keyframes can-sky { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes can-sun { 0% { transform: scale(1) translateY(0) } 50% { transform: scale(1.05) translateY(-3px) } 100% { transform: scale(1) translateY(0) } }
@keyframes can-water { 0% { transform: translateY(0) } 50% { transform: translateY(3px) } 100% { transform: translateY(0) } }
@keyframes can-canoe { 0% { transform: rotate(-1deg) translateY(0) } 50% { transform: rotate(1deg) translateY(-2px) } 100% { transform: rotate(-1deg) translateY(0) } }
@keyframes can-paddler { 0% { transform: rotate(-5deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(-5deg) } }
@keyframes can-ship { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(-2px) rotate(0.5deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes can-sail { 0% { transform: rotate(-2deg) } 50% { transform: rotate(3deg) } 100% { transform: rotate(-2deg) } }
@keyframes can-hughes { 0% { transform: translate(0,0) rotate(0deg) } 50% { transform: translate(1px,-1px) rotate(1deg) } 100% { transform: translate(-1px,0) rotate(-1deg) } }
@keyframes can-musket { 0% { transform: rotate(0deg) } 50% { transform: rotate(3deg) } 100% { transform: rotate(-3deg) } }

/* Scene 4: hughes-shot */
.scn-hughes-shot {
  background: linear-gradient(180deg, #2a1e3a 0%, #5a3a2a 40%, #b08050 100%),
              radial-gradient(ellipse at 50% 0%, #b08050 0%, transparent 65%);
}
.scn-hughes-shot .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #2a1e3a 0%, #5a3a2a 100%);
  animation: hug-sky 14s ease-in-out infinite alternate;
}
.scn-hughes-shot .water {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #3a4a5a 0%, #2a3a4a 100%);
  animation: hug-water 6s ease-in-out infinite alternate;
}
.scn-hughes-shot .ship-side {
  position: absolute; bottom: 20%; right: 0%; width: 70px; height: 50px;
  background: linear-gradient(90deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 0 0 / 20% 20% 0 0;
  box-shadow: -4px 0 12px rgba(0,0,0,0.5);
  animation: hug-ship 8s ease-in-out infinite;
}
.scn-hughes-shot .canoe {
  position: absolute; bottom: 40%; left: 15%; width: 55px; height: 12px;
  background: linear-gradient(90deg, #4a2a1a 0%, #6a3a2a 50%, #4a2a1a 100%);
  border-radius: 50% 50% 50% 50% / 20% 20% 20% 20%;
  animation: hug-canoe 3.5s ease-in-out infinite;
}
.scn-hughes-shot .equiano-canoe {
  position: absolute; bottom: 42%; left: 22%; width: 16px; height: 28px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hug-equiano 4s ease-in-out infinite;
}
.scn-hughes-shot .hughes-ship {
  position: absolute; bottom: 28%; right: 8%; width: 18px; height: 36px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hug-hughes 3s ease-in-out infinite;
}
.scn-hughes-shot .captain-ship {
  position: absolute; bottom: 28%; right: 18%; width: 16px; height: 32px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hug-captain 4s ease-in-out infinite;
  animation-delay: 0.5s;
}
.scn-hughes-shot .musket-point {
  position: absolute; bottom: 30%; right: 12%; width: 26px; height: 3px;
  background: linear-gradient(90deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 2px;
  transform-origin: right center;
  animation: hug-musket 1.8s ease-in-out infinite alternate;
}
@keyframes hug-sky { 0% { opacity:0.65 } 50% { opacity:1 } 100% { opacity:0.75 } }
@keyframes hug-water { 0% { transform: translateY(0) } 50% { transform: translateY(2px) } 100% { transform: translateY(-1px) } }
@keyframes hug-ship { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(-2px) rotate(0.3deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes hug-canoe { 0% { transform: rotate(-2deg) translateY(0) } 50% { transform: rotate(2deg) translateY(-2px) } 100% { transform: rotate(-2deg) translateY(0) } }
@keyframes hug-equiano { 0% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-2deg) } }
@keyframes hug-hughes { 0% { transform: translate(0,0) rotate(0deg) } 50% { transform: translate(1px,-1px) rotate(1deg) } 100% { transform: translate(-1px,1px) rotate(-1deg) } }
@keyframes hug-captain { 0% { transform: translate(0,0) } 50% { transform: translate(0,-2px) } 100% { transform: translate(0,0) } }
@keyframes hug-musket { 0% { transform: rotate(0deg) } 50% { transform: rotate(4deg) } 100% { transform: rotate(-4deg) } }

/* Scene: malaga-cathedral – calm, sunlit interior */
.scn-malaga-cathedral {
  background:
    linear-gradient(180deg, #4a6fa5 0%, #8b7d6b 50%, #5c4a3a 100%),
    radial-gradient(ellipse at 50% 20%, #f5e6c8 0%, transparent 60%);
}
.scn-malaga-cathedral .window-arch {
  position: absolute;
  inset: 5% 25% 55% 25%;
  background: radial-gradient(ellipse at 50% 30%, #f5e6c8 30%, #4a6fa5 70%, #2a3a5a 100%);
  border-radius: 50% / 60% 60% 20% 20%;
  box-shadow: inset 0 0 40px rgba(245,230,200,0.5);
  animation: mca-arch 8s ease-in-out infinite alternate;
}
.scn-malaga-cathedral .window-glow {
  position: absolute;
  inset: 10% 30% 50% 30%;
  background: linear-gradient(180deg, rgba(245,230,200,0.4) 0%, transparent 100%);
  filter: blur(10px);
  animation: mca-glow 6s ease-in-out infinite alternate;
}
.scn-malaga-cathedral .pillar-left {
  position: absolute;
  left: 20%;
  top: 0;
  bottom: 20%;
  width: 8%;
  background: linear-gradient(90deg, #3a2a1a 0%, #5c4a3a 50%, #3a2a1a 100%);
  border-radius: 4px;
  box-shadow: 2px 0 8px rgba(0,0,0,0.5);
  animation: mca-pillar 12s ease-in-out infinite alternate;
}
.scn-malaga-cathedral .pillar-right {
  position: absolute;
  right: 20%;
  top: 0;
  bottom: 20%;
  width: 8%;
  background: linear-gradient(90deg, #3a2a1a 0%, #5c4a3a 50%, #3a2a1a 100%);
  border-radius: 4px;
  box-shadow: -2px 0 8px rgba(0,0,0,0.5);
  animation: mca-pillar 12s ease-in-out infinite alternate-reverse;
}
.scn-malaga-cathedral .altar {
  position: absolute;
  bottom: 20%;
  left: 35%;
  right: 35%;
  height: 10%;
  background: linear-gradient(180deg, #8b7d6b 0%, #5c4a3a 100%);
  border-radius: 8% 8% 0 0;
  box-shadow: 0 -4px 10px rgba(0,0,0,0.3);
  animation: mca-altar 10s ease-in-out infinite;
}
.scn-malaga-cathedral .light-ray {
  position: absolute;
  top: 5%;
  left: 45%;
  width: 10%;
  height: 50%;
  background: linear-gradient(180deg, rgba(245,230,200,0.3) 0%, transparent 100%);
  transform: rotate(-5deg);
  filter: blur(8px);
  animation: mca-ray 5s ease-in-out infinite alternate;
}
.scn-malaga-cathedral .figure-kneeling {
  position: absolute;
  bottom: 20%;
  left: 45%;
  width: 10%;
  height: 15%;
  background: radial-gradient(ellipse at 50% 30%, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mca-figure 4s ease-in-out infinite alternate;
}
.scn-malaga-cathedral .candle {
  position: absolute;
  bottom: 22%;
  left: 48%;
  width: 2%;
  height: 4%;
  background: #f5c542;
  border-radius: 50% 50% 10% 10%;
  box-shadow: 0 0 20px 8px #f5c542, 0 0 40px 16px rgba(245,197,66,0.3);
  animation: mca-candle 2s ease-in-out infinite alternate;
}
@keyframes mca-arch {
  0% { filter: brightness(0.9); }
  50% { filter: brightness(1.1); }
  100% { filter: brightness(0.95); }
}
@keyframes mca-glow {
  0% { opacity: 0.6; transform: scaleY(1); }
  100% { opacity: 1; transform: scaleY(1.05); }
}
@keyframes mca-pillar {
  0% { transform: translateY(0); }
  50% { transform: translateY(-5px); }
  100% { transform: translateY(0); }
}
@keyframes mca-altar {
  0% { filter: brightness(0.8); }
  50% { filter: brightness(1.1); }
  100% { filter: brightness(0.9); }
}
@keyframes mca-ray {
  0% { opacity: 0.5; transform: rotate(-6deg); }
  50% { opacity: 0.8; transform: rotate(-4deg); }
  100% { opacity: 0.6; transform: rotate(-7deg); }
}
@keyframes mca-figure {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(2deg); }
  100% { transform: translateY(-1px) rotate(-1deg); }
}
@keyframes mca-candle {
  0% { box-shadow: 0 0 15px 5px #f5c542, 0 0 30px 10px rgba(245,197,66,0.2); }
  50% { box-shadow: 0 0 25px 10px #f5c542, 0 0 50px 20px rgba(245,197,66,0.4); }
  100% { box-shadow: 0 0 18px 6px #f5c542, 0 0 35px 12px rgba(245,197,66,0.3); }
}

/* Scene: bull-baiting-argument – tense, sunlit outdoor arena */
.scn-bull-baiting-argument {
  background:
    linear-gradient(180deg, #f0d9b5 0%, #d9b382 50%, #c49a6e 100%),
    radial-gradient(ellipse at 50% 0%, #ffe4b5 0%, transparent 60%);
}
.scn-bull-baiting-argument .sun {
  position: absolute;
  top: 2%;
  left: 45%;
  width: 10%;
  height: 10%;
  background: radial-gradient(circle, #ffe4b5 0%, #ffd700 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px #ffd700, 0 0 120px 40px rgba(255,215,0,0.3);
  animation: bba-sun 3s ease-in-out infinite alternate;
}
.scn-bull-baiting-argument .bull {
  position: absolute;
  bottom: 25%;
  left: 30%;
  width: 25%;
  height: 30%;
  background:
    linear-gradient(180deg, #5c3a1a 0%, #3a1a0a 100%),
    radial-gradient(ellipse at 30% 20%, #7a4a2a 0%, #3a1a0a 100%);
  border-radius: 50% 50% 30% 30% / 40% 40% 50% 50%;
  clip-path: polygon(10% 0%, 90% 0%, 100% 50%, 100% 100%, 0% 100%, 0% 50%);
  transform: rotate(2deg);
  animation: bba-bull 0.5s ease-in-out infinite alternate;
}
.scn-bull-baiting-argument .priest {
  position: absolute;
  bottom: 20%;
  left: 55%;
  width: 15%;
  height: 35%;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform: skewX(-5deg);
  animation: bba-priest 1s ease-in-out infinite alternate;
}
.scn-bull-baiting-argument .equiano {
  position: absolute;
  bottom: 20%;
  left: 35%;
  width: 14%;
  height: 34%;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform: skewX(5deg);
  animation: bba-equiano 0.5s ease-in-out infinite alternate;
}
.scn-bull-baiting-argument .shadow-bull {
  position: absolute;
  bottom: 15%;
  left: 28%;
  width: 30%;
  height: 8%;
  background: rgba(0,0,0,0.3);
  border-radius: 50%;
  filter: blur(6px);
  animation: bba-shadow 0.5s ease-in-out infinite alternate;
}
.scn-bull-baiting-argument .shadow-priest {
  position: absolute;
  bottom: 12%;
  left: 55%;
  width: 20%;
  height: 6%;
  background: rgba(0,0,0,0.2);
  border-radius: 50%;
  filter: blur(5px);
  animation: bba-shadow 1s ease-in-out infinite alternate;
}
.scn-bull-baiting-argument .shadow-equiano {
  position: absolute;
  bottom: 12%;
  left: 33%;
  width: 18%;
  height: 6%;
  background: rgba(0,0,0,0.25);
  border-radius: 50%;
  filter: blur(5px);
  animation: bba-shadow 0.5s ease-in-out infinite alternate-reverse;
}
.scn-bull-baiting-argument .dust {
  position: absolute;
  bottom: 10%;
  left: 20%;
  width: 60%;
  height: 5%;
  background: radial-gradient(ellipse, rgba(200,150,100,0.3) 0%, transparent 100%);
  filter: blur(8px);
  animation: bba-dust 2s ease-in-out infinite;
}
@keyframes bba-sun {
  0% { transform: scale(0.95); filter: brightness(1); }
  100% { transform: scale(1.05); filter: brightness(1.2); }
}
@keyframes bba-bull {
  0% { transform: rotate(1deg) translateX(0); }
  50% { transform: rotate(-1deg) translateX(2px); }
  100% { transform: rotate(2deg) translateX(-2px); }
}
@keyframes bba-priest {
  0% { transform: skewX(-5deg) translateY(0); }
  50% { transform: skewX(-3deg) translateY(-3px); }
  100% { transform: skewX(-6deg) translateY(0); }
}
@keyframes bba-equiano {
  0% { transform: skewX(5deg) translateY(0); }
  50% { transform: skewX(3deg) translateY(-4px); }
  100% { transform: skewX(6deg) translateY(0); }
}
@keyframes bba-shadow {
  0% { transform: scaleX(1); opacity: 0.6; }
  50% { transform: scaleX(1.05); opacity: 1; }
  100% { transform: scaleX(0.95); opacity: 0.5; }
}
@keyframes bba-dust {
  0% { opacity: 0; transform: scaleY(0.5); }
  50% { opacity: 1; transform: scaleY(1.5); }
  100% { opacity: 0; transform: scaleY(0.8); }
}

/* Scene: mosquito-shore-expedition – warm, sunlit beach rescue */
.scn-mosquito-shore-expedition {
  background:
    linear-gradient(180deg, #87ceeb 0%, #f4a460 60%, #deb887 100%),
    radial-gradient(ellipse at 50% 0%, #ffe4b5 0%, transparent 50%);
}
.scn-mosquito-shore-expedition .sun {
  position: absolute;
  top: 3%;
  left: 80%;
  width: 8%;
  height: 8%;
  background: radial-gradient(circle, #ffe4b5 0%, #ffd700 40%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 50px 15px #ffd700;
  animation: mse-sun 10s ease-in-out infinite alternate;
}
.scn-mosquito-shore-expedition .sea {
  position: absolute;
  bottom: 35%;
  left: 0;
  right: 0;
  height: 30%;
  background: linear-gradient(180deg, #4a7a9a 0%, #2a5a7a 100%);
  border-radius: 0 0 50% 50% / 0 0 20% 20%;
  animation: mse-sea 6s ease-in-out infinite alternate;
}
.scn-mosquito-shore-expedition .sand {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 35%;
  background: linear-gradient(180deg, #deb887 0%, #c49a6e 100%);
  border-radius: 20% 20% 0 0 / 30% 30% 0 0;
  animation: mse-sand 12s ease-in-out infinite;
}
.scn-mosquito-shore-expedition .boat-wreck {
  position: absolute;
  bottom: 30%;
  left: 20%;
  width: 30%;
  height: 20%;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 0 0 50% 50% / 0 0 40% 40%;
  transform: rotate(-15deg);
  box-shadow: 2px 4px 10px rgba(0,0,0,0.4);
  animation: mse-boat 4s ease-in-out infinite alternate;
}
.scn-mosquito-shore-expedition .survivor-one {
  position: absolute;
  bottom: 20%;
  left: 35%;
  width: 10%;
  height: 18%;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mse-figure 3s ease-in-out infinite alternate;
}
.scn-mosquito-shore-expedition .survivor-two {
  position: absolute;
  bottom: 22%;
  left: 50%;
  width: 10%;
  height: 18%;
  background: linear-gradient(180deg, #3a1a0a 0%, #1a0a00 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mse-figure 3s ease-in-out infinite alternate-reverse;
}
.scn-mosquito-shore-expedition .captain {
  position: absolute;
  bottom: 15%;
  left: 60%;
  width: 12%;
  height: 25%;
  background: linear-gradient(180deg, #1a3a5a 0%, #0a1a2a 100%);
  border-radius: 50% 50% 20% 20% / 70% 70% 30% 30%;
  transform: rotate(10deg);
  animation: mse-captain 4s ease-in-out infinite;
}
.scn-mosquito-shore-expedition .palm-tree {
  position: absolute;
  bottom: 0;
  left: 75%;
  width: 4%;
  height: 50%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1a0a 100%);
  border-radius: 20% 20% 0 0;
  transform: rotate(5deg);
  animation: mse-tree 8s ease-in-out infinite alternate;
}
.scn-mosquito-shore-expedition .seagull {
  position: absolute;
  top: 15%;
  left: 50%;
  width: 6%;
  height: 6%;
  background: radial-gradient(ellipse at 50% 30%, #ffffff 0%, #cccccc 100%);
  border-radius: 50% 50% 30% 30%;
  filter: blur(1px);
  animation: mse-gull 20s linear infinite;
}
@keyframes mse-sun {
  0% { transform: scale(1); filter: brightness(1); }
  50% { transform: scale(1.05); filter: brightness(1.1); }
  100% { transform: scale(0.95); filter: brightness(0.9); }
}
@keyframes mse-sea {
  0% { transform: translateY(0); }
  50% { transform: translateY(8px); }
  100% { transform: translateY(4px); }
}
@keyframes mse-sand {
  0% { filter: brightness(0.9); }
  50% { filter: brightness(1.1); }
  100% { filter: brightness(1); }
}
@keyframes mse-boat {
  0% { transform: rotate(-15deg) translateY(0); }
  50% { transform: rotate(-13deg) translateY(-4px); }
  100% { transform: rotate(-16deg) translateY(2px); }
}
@keyframes mse-figure {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(2deg); }
  100% { transform: translateY(-1px) rotate(-2deg); }
}
@keyframes mse-captain {
  0% { transform: rotate(10deg) scaleY(1); }
  25% { transform: rotate(12deg) scaleY(1.02); }
  75% { transform: rotate(8deg) scaleY(0.98); }
  100% { transform: rotate(10deg) scaleY(1); }
}
@keyframes mse-tree {
  0% { transform: rotate(5deg); }
  50% { transform: rotate(7deg); }
  100% { transform: rotate(4deg); }
}
@keyframes mse-gull {
  0% { transform: translateX(0) translateY(0); }
  25% { transform: translateX(20vw) translateY(-5px); }
  50% { transform: translateX(40vw) translateY(2px); }
  75% { transform: translateX(60vw) translateY(-3px); }
  100% { transform: translateX(80vw) translateY(0); }
}

/* Scene: indian-prince – dark mood, sunlit garden */
.scn-indian-prince {
  background:
    linear-gradient(180deg, #6b8e23 0%, #4b5320 40%, #2b2b2b 100%),
    radial-gradient(ellipse at 50% 0%, #d4c4a8 0%, transparent 50%);
}
.scn-indian-prince .tree {
  position: absolute;
  top: 0;
  left: 10%;
  width: 20%;
  height: 80%;
  background:
    radial-gradient(ellipse at 50% 20%, #3a6a1a 0%, #1a3a0a 100%),
    linear-gradient(180deg, #2a5a0a 0%, #1a2a0a 100%);
  border-radius: 50% 50% 20% 20% / 30% 30% 40% 40%;
  animation: ipr-tree 15s ease-in-out infinite alternate;
}
.scn-indian-prince .prince {
  position: absolute;
  bottom: 20%;
  left: 25%;
  width: 16%;
  height: 35%;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a1a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ipr-prince 4s ease-in-out infinite;
}
.scn-indian-prince .equiano-teacher {
  position: absolute;
  bottom: 20%;
  left: 45%;
  width: 14%;
  height: 34%;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform: rotate(-5deg);
  animation: ipr-teacher 4s ease-in-out infinite alternate;
}
.scn-indian-prince .white-man-one {
  position: absolute;
  bottom: 22%;
  right: 18%;
  width: 14%;
  height: 30%;
  background: linear-gradient(180deg, #3a3a3a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 20% 20% / 70% 70% 30% 30%;
  transform: skewX(-8deg);
  animation: ipr-mock 1s ease-in-out infinite alternate;
}
.scn-indian-prince .white-man-two {
  position: absolute;
  bottom: 18%;
  right: 5%;
  width: 12%;
  height: 28%;
  background: linear-gradient(180deg, #2a2a2a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 20% 20% / 70% 70% 30% 30%;
  transform: skewX(10deg);
  animation: ipr-mock 1.2s ease-in-out infinite alternate-reverse;
}
.scn-indian-prince .book-table {
  position: absolute;
  bottom: 28%;
  left: 35%;
  width: 12%;
  height: 8%;
  background: linear-gradient(180deg, #8b7d6b 0%, #5c4a3a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 -4px 8px rgba(0,0,0,0.5);
}
.scn-indian-prince .shadow-area {
  position: absolute;
  bottom: 10%;
  left: 20%;
  right: 5%;
  height: 10%;
  background: rgba(0,0,0,0.4);
  border-radius: 50%;
  filter: blur(12px);
  animation: ipr-shadow 6s ease-in-out infinite alternate;
}
.scn-indian-prince .sunbeam {
  position: absolute;
  top: 0;
  left: 40%;
  width: 12%;
  height: 100%;
  background: linear-gradient(180deg, rgba(212,196,168,0.3) 0%, transparent 70%);
  transform: rotate(-10deg);
  filter: blur(6px);
  animation: ipr-beam 5s ease-in-out infinite alternate;
}
@keyframes ipr-tree {
  0% { transform: scaleY(1); filter: brightness(0.7); }
  50% { transform: scaleY(1.02); filter: brightness(0.9); }
  100% { transform: scaleY(0.98); filter: brightness(0.8); }
}
@keyframes ipr-prince {
  0% { transform: rotate(0deg) translateY(0); }
  25% { transform: rotate(2deg) translateY(-3px); }
  75% { transform: rotate(-2deg) translateY(-1px); }
  100% { transform: rotate(0deg) translateY(0); }
}
@keyframes ipr-teacher {
  0% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(-3deg) translateY(-4px); }
  100% { transform: rotate(-6deg) translateY(0); }
}
@keyframes ipr-mock {
  0% { transform: skewX(-8deg) translateY(0); }
  50% { transform: skewX(-12deg) translateY(-5px); }
  100% { transform: skewX(-6deg) translateY(0); }
}
@keyframes ipr-shadow {
  0% { opacity: 0.3; transform: scaleX(1); }
  50% { opacity: 0.7; transform: scaleX(1.1); }
  100% { opacity: 0.4; transform: scaleX(0.9); }
}
@keyframes ipr-beam {
  0% { opacity: 0.4; transform: rotate(-10deg) scaleY(1); }
  50% { opacity: 0.8; transform: rotate(-8deg) scaleY(1.05); }
  100% { opacity: 0.5; transform: rotate(-12deg) scaleY(0.95); }
}

/* freedom-purchase */
.scn-freedom-purchase { 
  background: linear-gradient(180deg, #ffda9e 0%, #c8723f 50%, #6e3a1c 100%), 
              radial-gradient(ellipse at 50% 0%, #ffe0b0 0%, transparent 60%);
  position: relative;
  overflow: hidden;
}
.scn-freedom-purchase .sun-glow { 
  position: absolute; top: 0; left: 30%; width: 40%; height: 50%; 
  background: radial-gradient(circle, #ffe680 0%, #ffcc66 40%, transparent 70%); 
  border-radius: 50%; 
  animation: fp-glow 4s ease-in-out infinite alternate; 
}
.scn-freedom-purchase .sun-rays { 
  position: absolute; top: 5%; left: 20%; width: 60%; height: 40%; 
  background: linear-gradient(135deg, rgba(255,230,128,0.2) 0%, transparent 50%, rgba(255,230,128,0.1) 100%); 
  filter: blur(8px); 
  animation: fp-rays 8s linear infinite; 
}
.scn-freedom-purchase .table { 
  position: absolute; bottom: 12%; left: 10%; right: 10%; height: 8%; 
  background: linear-gradient(180deg, #a56336 0%, #5e3a1e 100%); 
  border-radius: 4px 4px 0 0; 
  box-shadow: 0 4px 12px rgba(0,0,0,0.3); 
}
.scn-freedom-purchase .coins { 
  position: absolute; bottom: 20%; left: 45%; width: 30px; height: 30px; 
  background: radial-gradient(circle at 40% 40%, #ffd700 0%, #b8860b 70%); 
  border-radius: 50%; 
  box-shadow: 0 0 6px 2px rgba(255,215,0,0.5); 
  animation: fp-coins 2s ease-in-out infinite alternate; 
}
.scn-freedom-purchase .hand-offer { 
  position: absolute; bottom: 18%; left: 35%; width: 28px; height: 40px; 
  background: linear-gradient(180deg, #d99b68 0%, #a56d3e 100%); 
  border-radius: 40% 40% 20% 20% / 50% 50% 20% 20%; 
  transform-origin: 50% 90%; 
  animation: fp-hand 3s ease-in-out infinite; 
}
.scn-freedom-purchase .document { 
  position: absolute; bottom: 24%; left: 55%; width: 40px; height: 50px; 
  background: linear-gradient(180deg, #f5e6c8 0%, #d4b98a 100%); 
  border-radius: 4px; 
  box-shadow: 0 2px 6px rgba(0,0,0,0.2); 
  transform: rotate(-8deg); 
  animation: fp-doc 5s ease-in-out infinite; 
}
.scn-freedom-purchase .figure-eq { 
  position: absolute; bottom: 14%; left: 25%; width: 22px; height: 60px; 
  background: linear-gradient(180deg, #4a2e1a 0%, #2a1a0e 100%); 
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; 
  animation: fp-fig 4s ease-in-out infinite; 
}
@keyframes fp-glow { 
  0% { opacity: 0.7; transform: scale(1); } 
  50% { opacity: 1; transform: scale(1.05); } 
  100% { opacity: 0.8; transform: scale(0.98); } 
}
@keyframes fp-rays { 
  0% { transform: rotate(0deg); } 
  100% { transform: rotate(360deg); } 
}
@keyframes fp-coins { 
  0% { transform: scale(1) rotate(-5deg); } 
  50% { transform: scale(1.1) rotate(0deg); } 
  100% { transform: scale(0.95) rotate(5deg); } 
}
@keyframes fp-hand { 
  0% { transform: translateY(0) rotate(0deg); } 
  25% { transform: translateY(-2px) rotate(5deg); } 
  50% { transform: translateY(0) rotate(-2deg); } 
  75% { transform: translateY(-1px) rotate(3deg); } 
  100% { transform: translateY(0) rotate(0deg); } 
}
@keyframes fp-doc { 
  0% { transform: rotate(-8deg) translateY(0); } 
  50% { transform: rotate(-6deg) translateY(-2px); } 
  100% { transform: rotate(-10deg) translateY(0); } 
}
@keyframes fp-fig { 
  0% { transform: translateX(0) rotate(0deg); } 
  25% { transform: translateX(3px) rotate(2deg); } 
  50% { transform: translateX(0) rotate(-1deg); } 
  75% { transform: translateX(-2px) rotate(1deg); } 
  100% { transform: translateX(0) rotate(0deg); } 
}

/* register-office */
.scn-register-office { 
  background: linear-gradient(180deg, #2c1e14 0%, #4a3424 30%, #3a281c 60%, #1f1410 100%), 
              radial-gradient(ellipse at 40% 60%, #8a6a4a 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-register-office .wall { 
  position: absolute; inset: 0; 
  background: linear-gradient(180deg, #3a281c 0%, #1f1410 100%); 
  opacity: 0.6; 
}
.scn-register-office .desk { 
  position: absolute; bottom: 8%; left: 10%; right: 10%; height: 12%; 
  background: linear-gradient(180deg, #5e402e 0%, #3a281c 100%); 
  border-radius: 4px 4px 0 0; 
  box-shadow: 0 -2px 10px rgba(0,0,0,0.5); 
}
.scn-register-office .book { 
  position: absolute; bottom: 16%; left: 45%; width: 40px; height: 30px; 
  background: linear-gradient(180deg, #b89a6a 0%, #8a6a4a 100%); 
  border-radius: 2px; 
  transform: perspective(60px) rotateX(20deg); 
  animation: ro-book 4s ease-in-out infinite alternate; 
}
.scn-register-office .candle { 
  position: absolute; bottom: 20%; left: 55%; width: 6px; height: 20px; 
  background: linear-gradient(180deg, #e8d4b0 0%, #b89a6a 100%); 
  border-radius: 2px 2px 0 0; 
}
.scn-register-office .flame { 
  position: absolute; bottom: 38%; left: 54%; width: 8px; height: 12px; 
  background: radial-gradient(circle at center, #ffe680 0%, #ff8c00 60%, transparent); 
  border-radius: 50% 50% 20% 20%; 
  animation: ro-flame 1.5s ease-in-out infinite alternate; 
}
.scn-register-office .figure-joy { 
  position: absolute; bottom: 12%; left: 25%; width: 24px; height: 65px; 
  background: linear-gradient(180deg, #2a1a0e 0%, #140c08 100%); 
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; 
  transform: rotate(-5deg); 
  animation: ro-joy 2s ease-in-out infinite; 
}
.scn-register-office .joy-rays { 
  position: absolute; bottom: 40%; left: 20%; width: 40%; height: 30%; 
  background: radial-gradient(ellipse at 50% 100%, rgba(255,200,100,0.15) 0%, transparent 70%); 
  filter: blur(12px); 
  animation: ro-rays 3s ease-in-out infinite; 
}
@keyframes ro-book { 
  0% { transform: perspective(60px) rotateX(20deg) translateY(0); } 
  50% { transform: perspective(60px) rotateX(22deg) translateY(-1px); } 
  100% { transform: perspective(60px) rotateX(18deg) translateY(0); } 
}
@keyframes ro-flame { 
  0% { transform: scale(1) translateY(0); opacity: 0.8; } 
  50% { transform: scale(1.2) translateY(-2px); opacity: 1; } 
  100% { transform: scale(0.9) translateY(0); opacity: 0.7; } 
}
@keyframes ro-joy { 
  0% { transform: rotate(-5deg) translateY(0) scale(1); } 
  25% { transform: rotate(-3deg) translateY(-3px) scale(1.02); } 
  50% { transform: rotate(0deg) translateY(-1px) scale(1); } 
  75% { transform: rotate(2deg) translateY(-4px) scale(1.02); } 
  100% { transform: rotate(-5deg) translateY(0) scale(1); } 
}
@keyframes ro-rays { 
  0% { opacity: 0.2; transform: scaleY(0.8); } 
  50% { opacity: 0.5; transform: scaleY(1.2); } 
  100% { opacity: 0.2; transform: scaleY(0.8); } 
}

/* item-manumission */
.scn-item-manumission { 
  background: linear-gradient(180deg, #3d2440 0%, #6b4a6e 30%, #8a6a8a 60%, #5e3a5e 100%), 
              radial-gradient(ellipse at 50% 20%, #b080a0 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-item-manumission .window-dusk { 
  position: absolute; top: 5%; left: 30%; width: 40%; height: 35%; 
  background: linear-gradient(180deg, #c08060 0%, #8a5a3a 50%, #4a2a1a 100%); 
  border-radius: 10% 10% 0 0; 
  box-shadow: inset 0 0 20px rgba(0,0,0,0.3); 
  animation: mu-window 10s ease-in-out infinite alternate; 
}
.scn-item-manumission .desk { 
  position: absolute; bottom: 10%; left: 5%; right: 5%; height: 15%; 
  background: linear-gradient(180deg, #7a5a4a 0%, #4a3424 100%); 
  border-radius: 6px 6px 0 0; 
  box-shadow: 0 -4px 12px rgba(0,0,0,0.4); 
}
.scn-item-manumission .document { 
  position: absolute; bottom: 22%; left: 40%; width: 50px; height: 40px; 
  background: linear-gradient(180deg, #f0e0c0 0%, #d0b890 100%); 
  border-radius: 2px; 
  transform: rotate(-2deg); 
  animation: mu-doc 5s ease-in-out infinite; 
}
.scn-item-manumission .quill { 
  position: absolute; bottom: 32%; left: 35%; width: 4px; height: 15px; 
  background: linear-gradient(180deg, #f5e6c8 0%, #b89a6a 100%); 
  border-radius: 1px; 
  transform: rotate(-30deg); 
  animation: mu-quill 3s ease-in-out infinite alternate; 
}
.scn-item-manumission .hand-master { 
  position: absolute; bottom: 24%; left: 33%; width: 20px; height: 30px; 
  background: linear-gradient(180deg, #c8a06a 0%, #9a7a4a 100%); 
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%; 
  transform-origin: 50% 80%; 
  animation: mu-hand 2s ease-in-out infinite; 
}
.scn-item-manumission .master-silhouette { 
  position: absolute; bottom: 10%; left: 20%; width: 28px; height: 70px; 
  background: #1a1410; 
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; 
  animation: mu-mast 6s ease-in-out infinite; 
}
.scn-item-manumission .eq-silhouette { 
  position: absolute; bottom: 10%; left: 55%; width: 22px; height: 60px; 
  background: #1a1410; 
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; 
  animation: mu-eq 6s ease-in-out infinite alternate; 
}
@keyframes mu-window { 
  0% { opacity: 0.6; } 
  50% { opacity: 0.8; } 
  100% { opacity: 0.5; } 
}
@keyframes mu-doc { 
  0% { transform: rotate(-2deg) translateY(0); } 
  50% { transform: rotate(0deg) translateY(-2px); } 
  100% { transform: rotate(-4deg) translateY(0); } 
}
@keyframes mu-quill { 
  0% { transform: rotate(-30deg) translateX(0); } 
  50% { transform: rotate(-25deg) translateX(2px); } 
  100% { transform: rotate(-35deg) translateX(0); } 
}
@keyframes mu-hand { 
  0% { transform: translateY(0) rotate(0deg); } 
  25% { transform: translateY(-2px) rotate(5deg); } 
  50% { transform: translateY(0) rotate(-3deg); } 
  75% { transform: translateY(-1px) rotate(2deg); } 
  100% { transform: translateY(0) rotate(0deg); } 
}
@keyframes mu-mast { 
  0%,100% { transform: translateX(0) rotate(0deg); } 
  25% { transform: translateX(2px) rotate(2deg); } 
  50% { transform: translateX(0) rotate(-1deg); } 
  75% { transform: translateX(-2px) rotate(1deg); } 
}
@keyframes mu-eq { 
  0% { transform: translateX(0) rotate(0deg); } 
  33% { transform: translateX(3px) rotate(1deg); } 
  66% { transform: translateX(-1px) rotate(-2deg); } 
  100% { transform: translateX(0) rotate(0deg); } 
}

/* freeman-celebration */
.scn-freeman-celebration { 
  background: linear-gradient(180deg, #1c1410 0%, #34241a 30%, #4a3424 60%, #2c1e14 100%), 
              radial-gradient(ellipse at 60% 40%, #7a5a4a 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-freeman-celebration .wall { 
  position: absolute; inset: 0; 
  background: linear-gradient(180deg, #3a281c 0%, #1c1410 100%); 
  opacity: 0.5; 
}
.scn-freeman-celebration .floor { 
  position: absolute; bottom: 0; left: 0; right: 0; height: 8%; 
  background: linear-gradient(180deg, #4a3424 0%, #2c1e14 100%); 
}
.scn-freeman-celebration .figure-freeman { 
  position: absolute; bottom: 10%; left: 40%; width: 24px; height: 65px; 
  background: linear-gradient(180deg, #2a4a6e 0%, #1a2a4a 100%); 
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; 
  transform: rotate(5deg); 
  animation: fc-freeman 2s ease-in-out infinite; 
}
.scn-freeman-celebration .dancer-female { 
  position: absolute; bottom: 12%; left: 20%; width: 20px; height: 55px; 
  background: linear-gradient(180deg, #6e4a3a 0%, #4a2a1a 100%); 
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; 
  transform: rotate(-10deg); 
  animation: fc-dancer 1.8s ease-in-out infinite alternate; 
}
.scn-freeman-celebration .musician { 
  position: absolute; bottom: 10%; left: 60%; width: 22px; height: 50px; 
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%); 
  border-radius: 30% 30% 20% 20% / 50% 50% 20% 20%; 
  animation: fc-music 2.5s ease-in-out infinite; 
}
.scn-freeman-celebration .lantern { 
  position: absolute; top: 30%; left: 50%; width: 12px; height: 16px; 
  background: linear-gradient(180deg, #e8c080 0%, #b89050 100%); 
  border-radius: 4px; 
  transform: rotate(-5deg); 
  animation: fc-lantern 3s ease-in-out infinite alternate; 
}
.scn-freeman-celebration .light-glow { 
  position: absolute; top: 25%; left: 45%; width: 20%; height: 20%; 
  background: radial-gradient(circle, rgba(255,200,100,0.2) 0%, transparent 70%); 
  filter: blur(15px); 
  animation: fc-glow 4s ease-in-out infinite alternate; 
}
@keyframes fc-freeman { 
  0% { transform: rotate(5deg) translateY(0) scale(1); } 
  25% { transform: rotate(3deg) translateY(-3px) scale(1.05); } 
  50% { transform: rotate(-2deg) translateY(-1px) scale(1); } 
  75% { transform: rotate(6deg) translateY(-4px) scale(1.03); } 
  100% { transform: rotate(5deg) translateY(0) scale(1); } 
}
@keyframes fc-dancer { 
  0% { transform: rotate(-10deg) translateY(0); } 
  33% { transform: rotate(-5deg) translateY(-2px); } 
  66% { transform: rotate(-15deg) translateY(0); } 
  100% { transform: rotate(-10deg) translateY(0); } 
}
@keyframes fc-music { 
  0% { transform: translateY(0) rotate(-2deg); } 
  50% { transform: translateY(-2px) rotate(0deg); } 
  100% { transform: translateY(0) rotate(2deg); } 
}
@keyframes fc-lantern { 
  0% { transform: rotate(-5deg) scale(1); } 
  50% { transform: rotate(-8deg) scale(1.1); } 
  100% { transform: rotate(-2deg) scale(1); } 
}
@keyframes fc-glow { 
  0% { opacity: 0.3; transform: scale(0.9); } 
  50% { opacity: 0.6; transform: scale(1.2); } 
  100% { opacity: 0.3; transform: scale(0.9); } 
}

.scn-benin-ancestral-rites {
  background:
    radial-gradient(ellipse at 50% 30%, #1a1a2e 0%, transparent 60%),
    linear-gradient(180deg, #0d0d1a 0%, #1a1a2e 30%, #2a1a2e 100%);
}
.scn-benin-ancestral-rites .night-sky {
  position: absolute; inset: 0; background: linear-gradient(180deg, #0a0a14 0%, transparent 100%);
  animation: bar-sky 12s ease-in-out infinite alternate;
}
.scn-benin-ancestral-rites .moon-crescent {
  position: absolute; top: 12%; left: 70%; width: 40px; height: 40px;
  background: radial-gradient(circle at 40% 50%, #b0b8c8 0%, #606878 100%);
  border-radius: 50%; box-shadow: 0 0 30px 8px rgba(96,104,120,0.4);
  animation: bar-moon-dip 20s ease-in-out infinite alternate;
}
.scn-benin-ancestral-rites .tomb-house {
  position: absolute; bottom: 30%; left: 30%; width: 120px; height: 80px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 40% 40% 10% 10% / 60% 60% 20% 20%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.7);
  animation: bar-tomb-breathe 8s ease-in-out infinite;
}
.scn-benin-ancestral-rites .figure-mourning {
  position: absolute; bottom: 25%; left: 36%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #1a1420 0%, #0d0a10 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: bar-figure-sway 4s ease-in-out infinite;
}
.scn-benin-ancestral-rites .lantern-glow {
  position: absolute; bottom: 32%; left: 38%; width: 8px; height: 8px;
  background: radial-gradient(circle, #d4a050 0%, #b08030 100%);
  border-radius: 50%; box-shadow: 0 0 30px 10px rgba(180,128,48,0.6), 0 0 60px 20px rgba(200,160,80,0.3);
  animation: bar-lantern-flicker 3s ease-in-out infinite alternate;
}
.scn-benin-ancestral-rites .bare-tree {
  position: absolute; bottom: 30%; left: 60%; width: 6px; height: 90px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 40% 40% 0 0; transform-origin: bottom center;
  animation: bar-tree-sway 6s ease-in-out infinite;
}
.scn-benin-ancestral-rites .bare-tree::before {
  content: ''; position: absolute; top: -10px; left: -20px; width: 50px; height: 20px;
  background: radial-gradient(circle at 30% 50%, #3a2a1a 0%, transparent 70%);
  border-radius: 50%; filter: blur(2px);
}
.scn-benin-ancestral-rites .dark-grass {
  position: absolute; bottom: 15%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, transparent 0%, #1a1a0a 100%);
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  animation: bar-grass-shift 15s ease-in-out infinite alternate;
}

@keyframes bar-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes bar-moon-dip { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(5px) scale(0.95); } 100% { transform: translateY(-2px) scale(1.02); } }
@keyframes bar-tomb-breathe { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(1.01); } 100% { transform: translateY(0) scale(1); } }
@keyframes bar-figure-sway { 0% { transform: translateX(0) rotate(-3deg); } 50% { transform: translateX(4px) rotate(2deg); } 100% { transform: translateX(-2px) rotate(-1deg); } }
@keyframes bar-lantern-flicker { 0% { opacity: 0.7; transform: scale(0.9); box-shadow: 0 0 20px 5px rgba(180,128,48,0.4); } 50% { opacity: 1; transform: scale(1.1); box-shadow: 0 0 40px 15px rgba(200,160,80,0.6); } 100% { opacity: 0.8; transform: scale(0.95); box-shadow: 0 0 25px 8px rgba(180,128,48,0.5); } }
@keyframes bar-tree-sway { 0% { transform: rotate(-2deg); } 50% { transform: rotate(3deg); } 100% { transform: rotate(-2deg); } }
@keyframes bar-grass-shift { 0% { background-position: 0 0; } 50% { background-position: -10px 0; } 100% { background-position: 5px 0; } }

.scn-benin-rituals {
  background:
    radial-gradient(ellipse at 50% 50%, #2a3a5e 0%, transparent 60%),
    linear-gradient(180deg, #1a2a4a 0%, #2a3a5e 30%, #1a2a3a 100%);
}
.scn-benin-rituals .moonlit-sky {
  position: absolute; inset: 0; background: linear-gradient(180deg, #1a2a4a 0%, transparent 100%);
  animation: bir-sky 15s ease-in-out infinite alternate;
}
.scn-benin-rituals .full-moon {
  position: absolute; top: 10%; left: 50%; width: 70px; height: 70px;
  background: radial-gradient(circle at 35% 40%, #c8d0e8 0%, #8090b0 100%);
  border-radius: 50%; box-shadow: 0 0 40px 20px rgba(128,144,176,0.4);
  transform: translateX(-50%);
  animation: bir-moon-pulse 10s ease-in-out infinite alternate;
}
.scn-benin-rituals .ground-dark {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, transparent 0%, #1a2a2a 100%);
  border-radius: 20% 80% 0 0 / 40% 60% 0 0;
  animation: bir-ground-sway 20s ease-in-out infinite alternate;
}
.scn-benin-rituals .hut-back {
  position: absolute; bottom: 40%; left: 20%; width: 100px; height: 60px;
  background: linear-gradient(180deg, #3a4a3a 0%, #2a3a2a 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: bir-hut-breathe 12s ease-in-out infinite;
}
.scn-benin-rituals .figure-carrier {
  position: absolute; bottom: 35%; left: 45%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: bir-carry-walk 5s ease-in-out infinite;
}
.scn-benin-rituals .figure-child {
  position: absolute; bottom: 40%; left: 48%; width: 14px; height: 24px;
  background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bir-child-bounce 5s ease-in-out infinite;
}
.scn-benin-rituals .offering-pile {
  position: absolute; bottom: 35%; left: 60%; width: 30px; height: 20px;
  background: radial-gradient(ellipse at 50% 100%, #604830 0%, #3a2a1a 100%);
  border-radius: 50% 50% 10% 10% / 60% 60% 20% 20%;
  box-shadow: 0 0 10px 2px rgba(96,72,48,0.3);
  animation: bir-offer-shine 6s ease-in-out infinite alternate;
}
.scn-benin-rituals .twinkle-star {
  position: absolute; top: 20%; left: 30%; width: 4px; height: 4px;
  background: #d0d8e0; border-radius: 50%;
  box-shadow: 0 0 8px 2px rgba(208,216,224,0.6);
  animation: bir-star 3s ease-in-out infinite;
}
.scn-benin-rituals .twinkle-star-2 {
  position: absolute; top: 25%; left: 70%; width: 3px; height: 3px;
  background: #c0c8d0; border-radius: 50%;
  box-shadow: 0 0 6px 1px rgba(192,200,208,0.5);
  animation: bir-star-2 4s ease-in-out infinite 1s;
}

@keyframes bir-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes bir-moon-pulse { 0% { transform: translateX(-50%) scale(1); box-shadow: 0 0 30px 15px rgba(128,144,176,0.3); } 50% { transform: translateX(-50%) scale(1.05); box-shadow: 0 0 60px 30px rgba(128,144,176,0.5); } 100% { transform: translateX(-50%) scale(0.98); box-shadow: 0 0 40px 20px rgba(128,144,176,0.4); } }
@keyframes bir-ground-sway { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes bir-hut-breathe { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-1px) scale(1.01); } 100% { transform: translateY(0) scale(1); } }
@keyframes bir-carry-walk { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(5px) rotate(1deg); } 50% { transform: translateX(10px) rotate(-1deg); } 75% { transform: translateX(15px) rotate(2deg); } 100% { transform: translateX(20px) rotate(0); } }
@keyframes bir-child-bounce { 0% { transform: translateY(0) rotate(0); } 25% { transform: translateY(-1px) rotate(2deg); } 50% { transform: translateY(0) rotate(-1deg); } 75% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes bir-offer-shine { 0% { opacity: 0.6; box-shadow: 0 0 5px 1px rgba(96,72,48,0.2); } 50% { opacity: 1; box-shadow: 0 0 15px 5px rgba(96,72,48,0.5); } 100% { opacity: 0.7; box-shadow: 0 0 8px 2px rgba(96,72,48,0.3); } }
@keyframes bir-star { 0% { opacity: 0.2; transform: scale(0.8); } 50% { opacity: 1; transform: scale(1.2); } 100% { opacity: 0.3; transform: scale(0.9); } }
@keyframes bir-star-2 { 0% { opacity: 0.3; transform: scale(0.9); } 50% { opacity: 0.8; transform: scale(1.1); } 100% { opacity: 0.4; transform: scale(1); } }

.scn-benin-naming {
  background:
    radial-gradient(ellipse at 50% 80%, #d0c080 0%, transparent 50%),
    linear-gradient(180deg, #70a0c0 0%, #a0b8c8 30%, #c8b880 100%);
}
.scn-benin-naming .sunlit-sky {
  position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #80b0d0 0%, transparent 100%);
  animation: bng-sky 12s ease-in-out infinite alternate;
}
.scn-benin-naming .sun-glow {
  position: absolute; top: 10%; left: 60%; width: 60px; height: 60px;
  background: radial-gradient(circle at 35% 40%, #f0e8b0 0%, #d0c080 100%);
  border-radius: 50%; box-shadow: 0 0 50px 30px rgba(208,192,128,0.5);
  transform: translateX(-50%);
  animation: bng-sun-pulse 8s ease-in-out infinite alternate;
}
.scn-benin-naming .ground-warm {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, transparent 0%, #b8a060 100%);
  border-radius: 30% 70% 0 0 / 50% 80% 0 0;
  animation: bng-ground-sway 15s ease-in-out infinite alternate;
}
.scn-benin-naming .shade-tree {
  position: absolute; bottom: 40%; left: 15%; width: 80px; height: 120px;
  background: linear-gradient(180deg, #4a6a3a 0%, #2a4a2a 100%);
  border-radius: 50% 50% 10% 10% / 80% 80% 20% 20%;
  box-shadow: 0 10px 20px rgba(0,0,0,0.3);
  animation: bng-tree-sway 6s ease-in-out infinite;
}
.scn-benin-naming .elder-figure {
  position: absolute; bottom: 30%; left: 35%; width: 24px; height: 60px;
  background: linear-gradient(180deg, #5a4a2a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: bng-elder-bow 7s ease-in-out infinite;
}
.scn-benin-naming .child-figure {
  position: absolute; bottom: 30%; left: 45%; width: 16px; height: 30px;
  background: linear-gradient(180deg, #8a6a3a 0%, #6a4a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bng-child-turn 5s ease-in-out infinite;
}
.scn-benin-naming .group-people {
  position: absolute; bottom: 32%; left: 55%; width: 50px; height: 40px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  filter: blur(2px);
  animation: bng-group-shift 10s ease-in-out infinite alternate;
}
.scn-benin-naming .altar-stone {
  position: absolute; bottom: 30%; left: 40%; width: 30px; height: 15px;
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a4a 100%);
  border-radius: 10% 10% 20% 20% / 30% 30% 40% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: bng-altar-glow 8s ease-in-out infinite alternate;
}

@keyframes bng-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes bng-sun-pulse { 0% { transform: translateX(-50%) scale(0.95); box-shadow: 0 0 40px 20px rgba(208,192,128,0.4); } 50% { transform: translateX(-50%) scale(1.05); box-shadow: 0 0 60px 30px rgba(208,192,128,0.6); } 100% { transform: translateX(-50%) scale(0.98); box-shadow: 0 0 50px 25px rgba(208,192,128,0.5); } }
@keyframes bng-ground-sway { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes bng-tree-sway { 0% { transform: rotate(-1deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-1deg); } }
@keyframes bng-elder-bow { 0% { transform: translateY(0) rotate(0); } 30% { transform: translateY(-2px) rotate(-5deg); } 70% { transform: translateY(0) rotate(3deg); } 100% { transform: translateY(-1px) rotate(0); } }
@keyframes bng-child-turn { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(3px) rotate(5deg); } 50% { transform: translateX(0) rotate(0); } 75% { transform: translateX(-3px) rotate(-5deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes bng-group-shift { 0% { transform: translateX(0) scale(1); } 50% { transform: translateX(5px) scale(1.02); } 100% { transform: translateX(-3px) scale(1); } }
@keyframes bng-altar-glow { 0% { opacity: 0.8; box-shadow: 0 0 10px 3px rgba(138,122,90,0.3); } 50% { opacity: 1; box-shadow: 0 0 20px 8px rgba(138,122,90,0.5); } 100% { opacity: 0.85; box-shadow: 0 0 12px 4px rgba(138,122,90,0.4); } }

.scn-benin-purification-rites {
  background:
    radial-gradient(ellipse at 50% 20%, #a0c0d0 0%, transparent 50%),
    linear-gradient(180deg, #70a0c0 0%, #90b8c8 30%, #b0c8a0 100%);
}
.scn-benin-purification-rites .bright-sky {
  position: absolute; inset: 0 0 50% 0; background: linear-gradient(180deg, #80b8d0 0%, transparent 100%);
  animation: bpr-sky 14s ease-in-out infinite alternate;
}
.scn-benin-purification-rites .sun-sphere {
  position: absolute; top: 8%; left: 40%; width: 50px; height: 50px;
  background: radial-gradient(circle at 35% 40%, #f0e8c0 0%, #d0c890 100%);
  border-radius: 50%; box-shadow: 0 0 40px 20px rgba(208,200,144,0.4);
  transform: translateX(-50%);
  animation: bpr-sun-oscillate 9s ease-in-out infinite alternate;
}
.scn-benin-purification-rites .river-flow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, transparent 0%, #5090a0 100%);
  border-radius: 0 0 20% 20% / 0 0 30% 30%;
  animation: bpr-river-move 18s ease-in-out infinite alternate;
}
.scn-benin-purification-rites .bank-earth {
  position: absolute; bottom: 45%; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a4a 100%);
  border-radius: 40% 60% 0 0 / 80% 80% 0 0;
  box-shadow: 0 -4px 8px rgba(0,0,0,0.3);
  animation: bpr-bank-shift 12s ease-in-out infinite alternate;
}
.scn-benin-purification-rites .figure-washing {
  position: absolute; bottom: 40%; left: 30%; width: 24px; height: 55px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: bpr-wash-motion 5s ease-in-out infinite;
}
.scn-benin-purification-rites .child-being-washed {
  position: absolute; bottom: 42%; left: 38%; width: 15px; height: 28px;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bpr-child-splash 4s ease-in-out infinite;
}
.scn-benin-purification-rites .water-pot {
  position: absolute; bottom: 44%; left: 45%; width: 20px; height: 20px;
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a4a 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
  box-shadow: 0 4px 6px rgba(0,0,0,0.5);
  animation: bpr-pot-tilt 6s ease-in-out infinite alternate;
}
.scn-benin-purification-rites .river-reeds {
  position: absolute; bottom: 45%; left: 10%; width: 8px; height: 50px;
  background: linear-gradient(180deg, #4a7a3a 0%, #2a5a2a 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  transform-origin: bottom center;
  animation: bpr-reeds-sway 7s ease-in-out infinite;
}
.scn-benin-purification-rites .river-reeds::before {
  content: ''; position: absolute; left: -10px; width: 8px; height: 40px;
  background: linear-gradient(180deg, #4a7a3a 0%, #2a5a2a 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  animation: bpr-reeds-sway 7s ease-in-out infinite -2s;
}

@keyframes bpr-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes bpr-sun-oscillate { 0% { transform: translateX(-50%) translateY(0) scale(1); } 50% { transform: translateX(-50%) translateY(-4px) scale(1.03); } 100% { transform: translateX(-50%) translateY(0) scale(0.98); } }
@keyframes bpr-river-move { 0% { background-position: 0 0; } 50% { background-position: -20px 0; } 100% { background-position: 10px 0; } }
@keyframes bpr-bank-shift { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes bpr-wash-motion { 0% { transform: translateY(0) rotate(-2deg); } 25% { transform: translateY(-1px) rotate(3deg); } 50% { transform: translateY(0) rotate(-1deg); } 75% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes bpr-child-splash { 0% { transform: translateY(0) rotate(0); } 30% { transform: translateY(-3px) rotate(5deg); } 60% { transform: translateY(0) rotate(-3deg); } 100% { transform: translateY(-1px) rotate(0); } }
@keyframes bpr-pot-tilt { 0% { transform: rotate(-5deg); } 50% { transform: rotate(10deg); } 100% { transform: rotate(-3deg); } }
@keyframes bpr-reeds-sway { 0% { transform: rotate(-3deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-2deg); } }

.scn-barcelona-toulon {
  background:
    linear-gradient(180deg, #6da8c8 0%, #b8d4b0 40%, #f2c88a 70%, #e8b060 100%),
    radial-gradient(ellipse at 80% 20%, #ffddaa 0%, transparent 60%);
}
.scn-barcelona-toulon .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #8fc4d8 0%, transparent 100%);
  animation: bt-sky 10s ease-in-out infinite alternate;
}
.scn-barcelona-toulon .sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #3a6a8a 0%, #1a3a5a 100%);
  animation: bt-sea 12s ease-in-out infinite alternate;
}
.scn-barcelona-toulon .dock {
  position: absolute; bottom: 35%; left: 10%; width: 60%; height: 8%;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%);
  border-radius: 0 0 10% 10%;
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.4);
}
.scn-barcelona-toulon .ship {
  position: absolute; bottom: 38%; left: 70%; width: 100px; height: 40px;
  background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%);
  border-radius: 20% 20% 10% 10% / 60% 60% 40% 40%;
  animation: bt-ship 8s ease-in-out infinite;
}
.scn-barcelona-toulon .master {
  position: absolute; bottom: 36%; left: 20%; width: 16px; height: 40px;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: bt-master 4s ease-in-out infinite;
}
.scn-barcelona-toulon .boy {
  position: absolute; bottom: 34%; left: 30%; width: 14px; height: 30px;
  background: linear-gradient(180deg, #8a6a4a 0%, #4a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: bt-boy 5s ease-in-out infinite;
}
.scn-barcelona-toulon .crate {
  position: absolute; bottom: 35%; left: 45%; width: 20px; height: 16px;
  background: linear-gradient(180deg, #b08060 0%, #704a30 100%);
  border-radius: 8%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation: bt-crate 6s ease-in-out infinite;
}
@keyframes bt-sky { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes bt-sea { 0% { transform: translateY(0) } 50% { transform: translateY(4px) } 100% { transform: translateY(0) } }
@keyframes bt-ship { 0%,100% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(-4px) rotate(1deg) } }
@keyframes bt-master { 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(0) } }
@keyframes bt-boy { 0% { transform: translateX(0) translateY(0) rotate(1deg) } 50% { transform: translateX(-6px) translateY(-2px) rotate(-1deg) } 100% { transform: translateX(0) translateY(0) rotate(0) } }
@keyframes bt-crate { 0%,100% { transform: scale(1) } 50% { transform: scale(1.05) } }

.scn-pursuit-french-fleet {
  background:
    linear-gradient(180deg, #2a3a5a 0%, #6a8a9a 30%, #b0a060 70%, #d0b070 100%),
    radial-gradient(ellipse at 70% 20%, #e8d090 0%, transparent 60%);
}
.scn-pursuit-french-fleet .sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #4a6a8a 0%, transparent 100%);
  animation: pf-sky 15s ease-in-out infinite alternate;
}
.scn-pursuit-french-fleet .sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a4a6a 0%, #1a2a4a 100%);
  animation: pf-sea 12s ease-in-out infinite;
}
.scn-pursuit-french-fleet .ship-main {
  position: absolute; bottom: 28%; left: 40%; width: 80px; height: 50px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 20% 20% 10% 10% / 50% 50% 30% 30%;
  animation: pf-ship-m 9s ease-in-out infinite;
}
.scn-pursuit-french-fleet .ship-left {
  position: absolute; bottom: 26%; left: 15%; width: 60px; height: 40px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 20% 20% 10% 10% / 50% 50% 30% 30%;
  animation: pf-ship-l 11s ease-in-out infinite;
}
.scn-pursuit-french-fleet .ship-right {
  position: absolute; bottom: 30%; left: 70%; width: 70px; height: 45px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 20% 20% 10% 10% / 50% 50% 30% 30%;
  animation: pf-ship-r 10s ease-in-out infinite;
}
.scn-pursuit-french-fleet .sail-fore {
  position: absolute; bottom: 32%; left: 42%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #c0b080 0%, #8a7a5a 100%);
  border-radius: 30% 30% 20% 20% / 60% 60% 40% 40%;
  animation: pf-sail-f 6s ease-in-out infinite;
}
.scn-pursuit-french-fleet .sail-aft {
  position: absolute; bottom: 34%; left: 50%; width: 25px; height: 35px;
  background: linear-gradient(180deg, #c0b080 0%, #8a7a5a 100%);
  border-radius: 30% 30% 20% 20% / 60% 60% 40% 40%;
  animation: pf-sail-a 7s ease-in-out infinite reverse;
}
.scn-pursuit-french-fleet .wave-1 {
  position: absolute; bottom: 12%; left: 0; width: 100%; height: 20px;
  background: linear-gradient(180deg, rgba(255,255,255,0.1) 0%, transparent 100%);
  border-radius: 50%;
  animation: pf-wave1 8s linear infinite;
}
.scn-pursuit-french-fleet .wave-2 {
  position: absolute; bottom: 8%; left: 0; width: 100%; height: 15px;
  background: linear-gradient(180deg, rgba(255,255,255,0.08) 0%, transparent 100%);
  border-radius: 50%;
  animation: pf-wave2 10s linear infinite reverse;
}
@keyframes pf-sky { 0% { opacity: 0.6 } 50% { opacity: 0.9 } 100% { opacity: 0.7 } }
@keyframes pf-sea { 0% { transform: translateY(0) } 50% { transform: translateY(3px) } 100% { transform: translateY(0) } }
@keyframes pf-ship-m { 0%,100% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(5px) rotate(1deg) } }
@keyframes pf-ship-l { 0%,100% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(-3px) rotate(-0.5deg) } }
@keyframes pf-ship-r { 0%,100% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(4px) rotate(0.8deg) } }
@keyframes pf-sail-f { 0% { transform: rotate(0deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(0deg) } }
@keyframes pf-sail-a { 0% { transform: rotate(0deg) } 50% { transform: rotate(-4deg) } 100% { transform: rotate(0deg) } }
@keyframes pf-wave1 { 0% { transform: translateX(-20px) } 100% { transform: translateX(20px) } }
@keyframes pf-wave2 { 0% { transform: translateX(20px) } 100% { transform: translateX(-20px) } }

.scn-ocean-battle {
  background:
    linear-gradient(180deg, #8ab0c8 0%, #c8a060 30%, #c06030 60%, #4a1a0a 100%),
    radial-gradient(ellipse at 60% 40%, #ffc060 0%, transparent 70%);
}
.scn-ocean-battle .sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #6a8a9a 0%, transparent 100%);
  animation: ob-sky 8s ease-in-out infinite alternate;
}
.scn-ocean-battle .sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a4a5a 0%, #1a2a3a 100%);
  animation: ob-sea 10s ease-in-out infinite alternate;
}
.scn-ocean-battle .ship1-burning {
  position: absolute; bottom: 25%; left: 20%; width: 80px; height: 50px;
  background: linear-gradient(180deg, #a0461a 0%, #5e1a1d 100%);
  border-radius: 20% 20% 10% 10% / 50% 50% 30% 30%;
  box-shadow: 0 0 20px 8px #c8553d;
  animation: ob-ship1 4s ease-in-out infinite;
}
.scn-ocean-battle .ship2-burning {
  position: absolute; bottom: 27%; left: 60%; width: 70px; height: 45px;
  background: linear-gradient(180deg, #b87878 0%, #5e1a1d 100%);
  border-radius: 20% 20% 10% 10% / 50% 50% 30% 30%;
  box-shadow: 0 0 16px 6px #c8553d;
  animation: ob-ship2 5s ease-in-out infinite reverse;
}
.scn-ocean-battle .explosion-core {
  position: absolute; bottom: 40%; left: 40%; width: 60px; height: 60px;
  background: radial-gradient(circle, #ffd080 0%, #c8553d 50%, #5e1a1d 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px #ffc060, 0 0 80px 40px rgba(255,160,80,0.5);
  animation: ob-explode 2s ease-in-out infinite;
}
.scn-ocean-battle .smoke1 {
  position: absolute; bottom: 45%; left: 30%; width: 80px; height: 40px;
  background: linear-gradient(180deg, rgba(80,60,60,0.6) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(8px);
  animation: ob-smoke1 8s linear infinite;
}
.scn-ocean-battle .smoke2 {
  position: absolute; bottom: 48%; left: 50%; width: 60px; height: 30px;
  background: linear-gradient(180deg, rgba(80,60,60,0.5) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(6px);
  animation: ob-smoke2 10s linear infinite reverse;
}
.scn-ocean-battle .debris {
  position: absolute; bottom: 32%; left: 35%; width: 10px; height: 10px;
  background: #4a2a1a;
  border-radius: 30% 30% 10% 10% / 40% 40% 20% 20%;
  animation: ob-debris 3s ease-in-out infinite;
}
@keyframes ob-sky { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes ob-sea { 0% { transform: translateY(0) } 50% { transform: translateY(5px) } 100% { transform: translateY(0) } }
@keyframes ob-ship1 { 0%,100% { transform: translateX(0) rotate(0deg); box-shadow: 0 0 20px 8px #c8553d; } 50% { transform: translateX(-5px) rotate(2deg); box-shadow: 0 0 30px 12px #ff8040; } }
@keyframes ob-ship2 { 0%,100% { transform: translateX(0) rotate(0deg); box-shadow: 0 0 16px 6px #c8553d; } 50% { transform: translateX(4px) rotate(-1deg); box-shadow: 0 0 24px 10px #ff8040; } }
@keyframes ob-explode { 0% { transform: scale(0.8); opacity: 0.9; } 50% { transform: scale(1.2); opacity: 1; } 100% { transform: scale(0.9); opacity: 0.95; } }
@keyframes ob-smoke1 { 0% { transform: translateX(0) translateY(0) scale(1); } 50% { transform: translateX(20px) translateY(-10px) scale(1.2); } 100% { transform: translateX(40px) translateY(0) scale(0.8); } }
@keyframes ob-smoke2 { 0% { transform: translateX(0) translateY(0) scale(1); } 50% { transform: translateX(-15px) translateY(-8px) scale(1.1); } 100% { transform: translateX(-30px) translateY(0) scale(0.9); } }
@keyframes ob-debris { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-20px) rotate(180deg); } 100% { transform: translateY(0) rotate(360deg); } }

.scn-isle-of-wight {
  background:
    linear-gradient(180deg, #a0c8a0 0%, #c0d8a0 30%, #e0d0a0 60%, #f0e0b0 100%),
    radial-gradient(ellipse at 80% 20%, #ffe8c0 0%, transparent 60%);
}
.scn-isle-of-wight .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #b8d8c8 0%, transparent 100%);
  animation: iw-sky 12s ease-in-out infinite alternate;
}
.scn-isle-of-wight .sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #5a8a7a 0%, #3a5a4a 100%);
  animation: iw-sea 10s ease-in-out infinite alternate;
}
.scn-isle-of-wight .hills {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #8ab870 0%, #5a8a4a 100%);
  border-radius: 40% 60% 0 0 / 80% 70% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.2);
  animation: iw-hills 15s ease-in-out infinite alternate;
}
.scn-isle-of-wight .ship {
  position: absolute; bottom: 28%; left: 65%; width: 80px; height: 40px;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 10% 10% / 50% 50% 30% 30%;
  animation: iw-ship 9s ease-in-out infinite;
}
.scn-isle-of-wight .boy {
  position: absolute; bottom: 32%; left: 30%; width: 14px; height: 30px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: iw-boy 4s ease-in-out infinite;
}
.scn-isle-of-wight .tree {
  position: absolute; bottom: 35%; left: 20%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #4a6a3a 0%, #2a4a1a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 40% 40%;
  animation: iw-tree 7s ease-in-out infinite;
}
.scn-isle-of-wight .sun {
  position: absolute; top: 10%; right: 15%; width: 40px; height: 40px;
  background: radial-gradient(circle, #ffe8c0 0%, #e0c080 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(255,232,192,0.6);
  animation: iw-sun 8s ease-in-out infinite alternate;
}
@keyframes iw-sky { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.9 } }
@keyframes iw-sea { 0% { transform: translateY(0) } 50% { transform: translateY(2px) } 100% { transform: translateY(0) } }
@keyframes iw-hills { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(1) } }
@keyframes iw-ship { 0%,100% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(-3px) rotate(1deg) } }
@keyframes iw-boy { 0% { transform: translateX(0) translateY(0) rotate(0deg) } 25% { transform: translateX(20px) translateY(-2px) rotate(3deg) } 50% { transform: translateX(40px) translateY(0) rotate(0deg) } 75% { transform: translateX(60px) translateY(-1px) rotate(-2deg) } 100% { transform: translateX(80px) translateY(0) rotate(0) } }
@keyframes iw-tree { 0%,100% { transform: rotate(0deg) } 50% { transform: rotate(4deg) } }
@keyframes iw-sun { 0% { box-shadow: 0 0 30px 15px rgba(255,232,192,0.5); } 50% { box-shadow: 0 0 50px 25px rgba(255,232,192,0.8); } 100% { box-shadow: 0 0 35px 18px rgba(255,232,192,0.6); } }

.scn-preston-ship { background: linear-gradient(180deg, #2a1a0e 0%, #3a2212 35%, #1e1208 100%), radial-gradient(ellipse at 50% 0%, #4a3020 0%, transparent 60%); }
.scn-preston-ship .beams { position:absolute; inset:0 0 72% 0; background: linear-gradient(90deg, #3a2818 0%, #4a3828 20%, #3a2818 40%, #4a3828 60%, #3a2818 80%, #4a3828 100%); height:18%; border-radius: 4px; box-shadow: 0 4px 12px rgba(0,0,0,.6); animation: ps-creak 15s ease-in-out infinite alternate; }
.scn-preston-ship .bulkhead { position:absolute; inset:18% 10% 22% 10%; background: linear-gradient(90deg, #3a2212 0%, #4a3020 30%, #3a2212 70%, #2a1808 100%); border-radius: 2px; box-shadow: inset 0 0 20px rgba(0,0,0,.5); animation: ps-dim 20s ease-in-out infinite alternate; }
.scn-preston-ship .hammock { position:absolute; bottom:34%; left:22%; width:38%; height:14%; background: linear-gradient(180deg, #5a4838 0%, #3a2818 50%, #2a1808 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: 30% 0%; box-shadow: 0 4px 10px rgba(0,0,0,.7); animation: ps-sway 5s ease-in-out infinite; }
.scn-preston-ship .lantern { position:absolute; bottom:40%; left:55%; width:8px; height:14px; background: radial-gradient(circle at 50% 60%, #d09050 0%, #b07030 60%, #5a3010 100%); border-radius: 20% 20% 30% 30%; box-shadow: 0 0 20px 6px #b07030, 0 0 40px 12px rgba(176,112,48,.4); animation: ps-glow 4s ease-in-out infinite alternate; }
.scn-preston-ship .companionway { position:absolute; bottom:18%; left:68%; width:16%; height:28%; background: linear-gradient(135deg, #4a3020 0%, #3a2212 50%, #2a1808 100%); border-radius: 4px 4px 2px 2px; box-shadow: 0 4px 8px rgba(0,0,0,.5); transform: skewX(-4deg); animation: ps-ladder 9s ease-in-out infinite alternate; }
.scn-preston-ship .shadow-floor { position:absolute; bottom:0; left:0; right:0; height:18%; background: linear-gradient(180deg, #1a0e08 0%, #0e0804 100%); border-radius: 50% 50% 0 0 / 30% 30% 0 0; opacity:.8; }
.scn-preston-ship .chest { position:absolute; bottom:10%; left:12%; width:12%; height:10%; background: linear-gradient(135deg, #4a3020 0%, #3a2212 50%, #2a1808 100%); border-radius: 4px; box-shadow: 0 3px 6px rgba(0,0,0,.6); animation: ps-chest 7s ease-in-out infinite alternate; }
@keyframes ps-creak   { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) rotate(.3deg) } 100% { transform: translateY(0) } }
@keyframes ps-dim     { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes ps-sway    { 0% { transform: rotate(-1deg) translateY(0) } 25% { transform: rotate(.5deg) translateY(-3px) } 50% { transform: rotate(1deg) translateY(-1px) } 75% { transform: rotate(-.5deg) translateY(-2px) } 100% { transform: rotate(-1deg) translateY(0) } }
@keyframes ps-glow    { 0% { box-shadow: 0 0 14px 4px #b07030, 0 0 28px 8px rgba(176,112,48,.3); opacity:.8 } 50% { box-shadow: 0 0 28px 8px #d09050, 0 0 50px 16px rgba(208,144,80,.5); opacity:1 } 100% { box-shadow: 0 0 18px 5px #b07030, 0 0 32px 10px rgba(176,112,48,.35); opacity:.85 } }
@keyframes ps-ladder  { 0% { transform: skewX(-4deg) translateY(0) } 50% { transform: skewX(-3deg) translateY(-2px) } 100% { transform: skewX(-4deg) translateY(0) } }
@keyframes ps-chest   { 0% { transform: scale(1) } 50% { transform: scale(1.02) } 100% { transform: scale(1) } }

.scn-royal-george-namur { background: linear-gradient(180deg, #b8d8e8 0%, #6a9ac8 30%, #2a5a7a 100%), radial-gradient(ellipse at 50% 80%, #d8c080 0%, transparent 50%); }
.scn-royal-george-namur .hull-bg { position:absolute; bottom:18%; left:0; right:0; height:55%; background: linear-gradient(180deg, #4a3828 0%, #3a2818 40%, #2a1808 100%); border-radius: 20% 20% 0 0 / 60% 60% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.5); animation: rg-heave 12s ease-in-out infinite alternate; }
.scn-royal-george-namur .deck-planks { position:absolute; bottom:38%; left:5%; right:5%; height:6%; background: linear-gradient(90deg, #5a4a3a 0%, #7a6a5a 20%, #5a4a3a 40%, #7a6a5a 60%, #5a4a3a 80%, #7a6a5a 100%); border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,.4); }
.scn-royal-george-namur .shop-stall { position:absolute; bottom:38%; left:32%; width:16%; height:20%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 50%, #3a2818 100%); border-radius: 4px 4px 2px 2px; box-shadow: 0 4px 10px rgba(0,0,0,.4); animation: rg-bob 7s ease-in-out infinite; transform-origin: bottom center; }
.scn-royal-george-namur .figure-sailor { position:absolute; bottom:36%; left:20%; width:10px; height:24px; background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: rg-walk-a 5s ease-in-out infinite; }
.scn-royal-george-namur .figure-officer { position:absolute; bottom:36%; right:22%; width:12px; height:28px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: rg-walk-b 8s ease-in-out infinite; }
.scn-royal-george-namur .rigging { position:absolute; top:2%; left:0; right:0; height:60%; background: repeating-linear-gradient(135deg, transparent 0px, transparent 18px, rgba(180,160,120,.2) 18px, rgba(180,160,120,.2) 20px), repeating-linear-gradient(225deg, transparent 0px, transparent 18px, rgba(180,160,120,.15) 18px, rgba(180,160,120,.15) 20px); animation: rg-swish 11s ease-in-out infinite alternate; }
.scn-royal-george-namur .cannon-port { position:absolute; bottom:28%; left:15%; width:8px; height:8px; background: radial-gradient(circle, #2a1a0e 0%, #4a3828 60%, #3a2818 100%); border-radius: 50%; box-shadow: inset 0 2px 4px rgba(0,0,0,.6); }
.scn-royal-george-namur .burst-light { position:absolute; top:8%; left:60%; width:80px; height:60px; background: radial-gradient(circle, rgba(255,230,160,.6) 0%, rgba(255,200,100,.2) 40%, transparent 70%); border-radius: 50%; filter: blur(8px); animation: rg-sun 6s ease-in-out infinite alternate; }
@keyframes rg-heave { 0% { transform: translateY(0) rotate(-.5deg) } 50% { transform: translateY(-4px) rotate(0deg) } 100% { transform: translateY(-1px) rotate(.5deg) } }
@keyframes rg-bob   { 0% { transform: scaleY(1) translateY(0) } 50% { transform: scaleY(1.03) translateY(-2px) } 100% { transform: scaleY(1) translateY(0) } }
@keyframes rg-walk-a{ 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(8px) rotate(1deg) } 50% { transform: translateX(16px) rotate(-2deg) } 75% { transform: translateX(24px) rotate(1deg) } 100% { transform: translateX(32px) rotate(0deg) } }
@keyframes rg-walk-b{ 0% { transform: translateX(0) rotate(2deg) } 25% { transform: translateX(-6px) rotate(-1deg) } 50% { transform: translateX(-12px) rotate(2deg) } 75% { transform: translateX(-18px) rotate(-1deg) } 100% { transform: translateX(-24px) rotate(0deg) } }
@keyframes rg-swish { 0% { opacity:.3 } 50% { opacity:.5 } 100% { opacity:.35 } }
@keyframes rg-sun   { 0% { opacity:.5; transform: scale(.9) } 50% { opacity:1; transform: scale(1.1) } 100% { opacity:.6; transform: scale(.95) } }

.scn-louisbourg-expedition { background: linear-gradient(180deg, #c8d8e0 0%, #8ab0c8 40%, #4a7a9a 100%), radial-gradient(ellipse at 70% 90%, #2a5a7a 0%, transparent 60%); }
.scn-louisbourg-expedition .sea-bg { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #4a7a9a 0%, #2a5a7a 50%, #1a3a5a 100%); border-radius: 30% 70% 0 0 / 50% 80% 0 0; animation: le-swell 9s ease-in-out infinite alternate; }
.scn-louisbourg-expedition .mountain-peak { position:absolute; bottom:40%; right:8%; width:28%; height:50%; background: linear-gradient(180deg, #5a6a5a 0%, #3a4a3a 40%, #2a3a2a 100%); border-radius: 60% 60% 20% 20% / 80% 80% 30% 30%; box-shadow: 0 8px 20px rgba(0,0,0,.3), inset 0 20px 40px rgba(255,255,255,.1); animation: le-peak 20s ease-in-out infinite alternate; }
.scn-louisbourg-expedition .frigate { position:absolute; bottom:38%; left:8%; width:22%; height:22%; background: linear-gradient(180deg, #3a2818 0%, #2a1808 60%, #1a0e04 100%); border-radius: 20% 20% 8% 8% / 40% 40% 20% 20%; box-shadow: 0 4px 12px rgba(0,0,0,.5); animation: le-roll 7s ease-in-out infinite; }
.scn-louisbourg-expedition .frigate-sails { position:absolute; bottom:52%; left:4%; width:18%; height:24%; background: linear-gradient(135deg, #e8e0d0 0%, #c8c0b0 50%, #a8a090 100%); border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%; clip-path: polygon(0% 0%, 100% 0%, 85% 100%, 15% 100%); box-shadow: 0 6px 14px rgba(0,0,0,.2); animation: le-belly 6s ease-in-out infinite alternate; }
.scn-louisbourg-expedition .companion-ship { position:absolute; bottom:36%; right:38%; width:14%; height:14%; background: linear-gradient(180deg, #4a3828 0%, #2a1808 100%); border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%; box-shadow: 0 3px 8px rgba(0,0,0,.4); animation: le-roll 8s ease-in-out infinite 1s; }
.scn-louisbourg-expedition .wolfe-silhouette { position:absolute; bottom:50%; left:14%; width:8px; height:20px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: le-figure 4s ease-in-out infinite alternate; }
.scn-louisbourg-expedition .sun-glares { position:absolute; top:10%; left:30%; width:120px; height:100px; background: radial-gradient(circle, rgba(255,240,200,.7) 0%, rgba(255,220,150,.3) 30%, transparent 70%); border-radius: 50%; filter: blur(10px); animation: le-flare 8s ease-in-out infinite alternate; }
.scn-louisbourg-expedition .cloud-bank { position:absolute; top:12%; left:50%; width:200px; height:40px; background: linear-gradient(90deg, rgba(255,255,255,.4) 0%, rgba(200,220,240,.2) 50%, transparent 100%); border-radius: 50%; filter: blur(12px); animation: le-cloud 45s linear infinite; }
@keyframes le-swell { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(2px) } }
@keyframes le-peak { 0% { transform: scaleY(1) translateY(0) } 50% { transform: scaleY(1.01) translateY(-2px) } 100% { transform: scaleY(1) translateY(0) } }
@keyframes le-roll { 0% { transform: rotate(-2deg) translateX(0) } 25% { transform: rotate(1deg) translateX(3px) } 50% { transform: rotate(2deg) translateX(0) } 75% { transform: rotate(-1deg) translateX(-3px) } 100% { transform: rotate(-2deg) translateX(0) } }
@keyframes le-belly { 0% { transform: scaleX(.95) } 50% { transform: scaleX(1.05) } 100% { transform: scaleX(.98) } }
@keyframes le-figure { 0% { transform: rotate(-3deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-1deg) } }
@keyframes le-flare { 0% { opacity:.5; transform: scale(.9) } 50% { opacity:1; transform: scale(1.15) } 100% { opacity:.6; transform: scale(.95) } }
@keyframes le-cloud { 0% { transform: translateX(0) } 100% { transform: translateX(120vw) } }

.scn-louisbourg-battle { background: linear-gradient(180deg, #5a6a7a 0%, #3a4a5a 30%, #2a3a4a 100%), radial-gradient(ellipse at 50% 0%, #7a8a9a 0%, transparent 50%); }
.scn-louisbourg-battle .smoke-mist { position:absolute; inset:0 0 0 0; background: radial-gradient(ellipse at 30% 50%, rgba(160,160,150,.25) 0%, transparent 50%), radial-gradient(ellipse at 70% 30%, rgba(140,140,130,.2) 0%, transparent 40%); filter: blur(8px); animation: lb-drift 14s ease-in-out infinite alternate; }
.scn-louisbourg-battle .fortress-wall { position:absolute; bottom:20%; right:2%; width:35%; height:50%; background: linear-gradient(180deg, #4a4a3a 0%, #3a3a2a 40%, #2a2a1a 100%); border-radius: 8% 8% 0 0 / 20% 20% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.5), 0 8px 20px rgba(0,0,0,.3); animation: lb-shudder 4s ease-in-out infinite alternate; }
.scn-louisbourg-battle .british-ship { position:absolute; bottom:30%; left:5%; width:25%; height:30%; background: linear-gradient(180deg, #3a2818 0%, #2a1808 60%, #1a0e04 100%); border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%; box-shadow: 0 4px 12px rgba(0,0,0,.6); animation: lb-rock 6s ease-in-out infinite; }
.scn-louisbourg-battle .french-ship { position:absolute; bottom:28%; right:38%; width:20%; height:25%; background: linear-gradient(180deg, #4a3828 0%, #3a2818 60%, #2a1808 100%); border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%; box-shadow: 0 4px 12px rgba(0,0,0,.5); animation: lb-rock 7s ease-in-out infinite 1s; }
.scn-louisbourg-battle .cannon-flash { position:absolute; bottom:40%; left:22%; width:16px; height:16px; background: radial-gradient(circle, #ffd880 0%, #ffa040 50%, transparent 80%); border-radius: 50%; box-shadow: 0 0 30px 10px rgba(255,168,64,.6), 0 0 60px 20px rgba(255,168,64,.3); animation: lb-flash .8s ease-in-out infinite .4s; }
.scn-louisbourg-battle .soldier-firing { position:absolute; bottom:36%; left:18%; width:10px; height:22px; background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: lb-recoil .8s ease-in-out infinite .4s; }
.scn-louisbourg-battle .fallen-flag { position:absolute; bottom:42%; left:12%; width:14px; height:20px; background: linear-gradient(135deg, #5a3a3a 0%, #3a1a1a 50%, #2a0a0a 100%); border-radius: 0 0 20% 30%; transform-origin: top left; animation: lb-flag 3s ease-in-out infinite alternate; }
.scn-louisbourg-battle .seas-well { position:absolute; bottom:0; left:0; right:0; height:28%; background: linear-gradient(180deg, #2a4a5a 0%, #1a3a4a 50%, #0a2a3a 100%); border-radius: 60% 40% 0 0 / 40% 20% 0 0; animation: lb-churn 5s ease-in-out infinite alternate; }
@keyframes lb-drift  { 0% { opacity:.5; transform: scale(1) } 50% { opacity:.8; transform: scale(1.05) } 100% { opacity:.6; transform: scale(.98) } }
@keyframes lb-shudder { 0% { transform: translateX(0) } 50% { transform: translateX(-2px) } 100% { transform: translateX(1px) } }
@keyframes lb-rock   { 0% { transform: rotate(-3deg) translateY(0) } 25% { transform: rotate(1deg) translateY(-4px) } 50% { transform: rotate(3deg) translateY(-2px) } 75% { transform: rotate(-1deg) translateY(-3px) } 100% { transform: rotate(-3deg) translateY(0) } }
@keyframes lb-flash  { 0% { opacity:0; transform: scale(.2) } 30% { opacity:1; transform: scale(1.4) } 60% { opacity:.8; transform: scale(1) } 100% { opacity:0; transform: scale(.5) } }
@keyframes lb-recoil { 0% { transform: translateX(0) rotate(-2deg) } 20% { transform: translateX(-4px) rotate(-4deg) } 50% { transform: translateX(2px) rotate(0deg) } 80% { transform: translateX(-2px) rotate(-1deg) } 100% { transform: translateX(0) rotate(-2deg) } }
@keyframes lb-flag   { 0% { transform: rotate(-10deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(-8deg) } }
@keyframes lb-churn  { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-5px) scaleY(1.06) } 100% { transform: translateY(2px) scaleY(.98) } }

.scn-hughes-threat {
  background: linear-gradient(180deg, #0f0f1a 0%, #1a1a2e 40%, #1f1f33 70%, #2a2a44 100%),
              radial-gradient(ellipse at 50% 100%, #1a1a2e 0%, transparent 60%);
}
.scn-hughes-threat .sky {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #1a1a33 0%, #0f0f1a 100%);
  animation: ht-sky 8s ease-in-out infinite alternate;
}
.scn-hughes-threat .sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(180deg, #0d0d1f 0%, #141430 50%, #1a1a3a 100%);
  animation: ht-sea 5s ease-in-out infinite alternate;
}
.scn-hughes-threat .hull {
  position: absolute; bottom: 25%; left: 20%; width: 60%; height: 20%;
  background: linear-gradient(180deg, #2a1f1a 0%, #1a0f0a 100%);
  border-radius: 0 0 8% 8% / 0 0 40% 40%;
  box-shadow: 0 8px 18px rgba(0,0,0,0.7);
}
.scn-hughes-threat .mast {
  position: absolute; bottom: 42%; left: 45%; width: 4%; height: 40%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0f05 100%);
  transform: rotate(-1deg);
}
.scn-hughes-threat .sail {
  position: absolute; bottom: 50%; left: 30%; width: 35%; height: 25%;
  background: linear-gradient(135deg, #3a3a4a 0%, #1a1a2a 100%);
  clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 0% 100%);
  animation: ht-sail 10s ease-in-out infinite alternate;
}
.scn-hughes-threat .figure-hughes {
  position: absolute; bottom: 32%; left: 35%; width: 12%; height: 22%;
  background: linear-gradient(180deg, #0f0f1a 0%, #05050a 100%);
  border-radius: 40% 40% 30% 30% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: ht-fig-h 2s ease-in-out infinite alternate;
}
.scn-hughes-threat .figure-equiano {
  position: absolute; bottom: 32%; right: 30%; width: 10%; height: 20%;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a14 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: ht-fig-e 3s ease-in-out infinite alternate;
}
.scn-hughes-threat .lantern {
  position: absolute; bottom: 43%; left: 50%; width: 3%; height: 4%;
  background: radial-gradient(circle, #c09540 0%, #7a5a20 100%);
  border-radius: 50%;
  box-shadow: 0 0 24px 6px #a07030, 0 0 48px 12px rgba(160,112,48,0.3);
  animation: ht-lantern 2s ease-in-out infinite alternate;
}
@keyframes ht-sky { 0% { opacity: 0.6 } 50% { opacity: 0.85 } 100% { opacity: 0.7 } }
@keyframes ht-sea { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-3px) scaleY(1.02) } 100% { transform: translateY(2px) scaleY(0.98) } }
@keyframes ht-sail { 0% { transform: rotate(-2deg) scaleX(1) } 50% { transform: rotate(2deg) scaleX(1.04) } 100% { transform: rotate(0deg) scaleX(1) } }
@keyframes ht-fig-h { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(2px) rotate(3deg) } 100% { transform: translateX(-1px) rotate(-2deg) } }
@keyframes ht-fig-e { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(-2px) rotate(-2deg) } 100% { transform: translateX(1px) rotate(1deg) } }
@keyframes ht-lantern { 0% { box-shadow: 0 0 20px 4px #a07030, 0 0 40px 8px rgba(160,112,48,0.3); opacity: 0.9 } 50% { box-shadow: 0 0 35px 10px #d0a050, 0 0 60px 16px rgba(208,160,80,0.5); opacity: 1 } 100% { box-shadow: 0 0 18px 3px #8a5a20, 0 0 30px 6px rgba(138,90,32,0.3); opacity: 0.85 } }

.scn-equiano-protest {
  background: linear-gradient(180deg, #0a0a1a 0%, #12122a 50%, #1a1a3a 100%),
              radial-gradient(ellipse at 50% 30%, #1a1a3a 0%, transparent 60%);
}
.scn-equiano-protest .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #12122a 0%, #0a0a1a 100%);
  animation: ep-sky 10s ease-in-out infinite alternate;
}
.scn-equiano-protest .sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #0d0d1f 0%, #141430 100%);
  animation: ep-sea 6s ease-in-out infinite alternate;
}
.scn-equiano-protest .deck {
  position: absolute; bottom: 30%; left: 10%; width: 80%; height: 8%;
  background: linear-gradient(180deg, #2a1f1a 0%, #1a0f0a 100%);
  border-radius: 2% 2% 0 0;
  box-shadow: 0 -4px 12px rgba(0,0,0,0.5);
}
.scn-equiano-protest .rail {
  position: absolute; bottom: 36%; left: 10%; width: 80%; height: 2%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0f05 100%);
  border-radius: 10%;
}
.scn-equiano-protest .figure-hughes {
  position: absolute; bottom: 28%; left: 25%; width: 12%; height: 22%;
  background: linear-gradient(180deg, #0f0f1a 0%, #05050a 100%);
  border-radius: 45% 45% 30% 30% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: ep-fig-h 2.5s ease-in-out infinite alternate;
}
.scn-equiano-protest .figure-equiano {
  position: absolute; bottom: 28%; right: 30%; width: 10%; height: 20%;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a14 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: ep-fig-e 3s ease-in-out infinite alternate;
}
.scn-equiano-protest .lantern {
  position: absolute; bottom: 38%; left: 48%; width: 3%; height: 4%;
  background: radial-gradient(circle, #b08040 0%, #6a4a20 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 4px #906030, 0 0 40px 8px rgba(144,96,48,0.2);
  animation: ep-lantern 2.2s ease-in-out infinite alternate;
}
.scn-equiano-protest .cloud {
  position: absolute; top: 12%; left: 60%; width: 30%; height: 6%;
  background: linear-gradient(180deg, rgba(255,255,255,0.08) 0%, rgba(255,255,255,0.02) 100%);
  border-radius: 50%;
  filter: blur(4px);
  animation: ep-cloud 40s linear infinite;
}
@keyframes ep-sky { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes ep-sea { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(1px) } }
@keyframes ep-fig-h { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(3px) rotate(4deg) } 100% { transform: translateX(-1px) rotate(-1deg) } }
@keyframes ep-fig-e { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(-2px) rotate(-3deg) } 100% { transform: translateX(1px) rotate(2deg) } }
@keyframes ep-lantern { 0% { box-shadow: 0 0 15px 3px #906030, 0 0 30px 6px rgba(144,96,48,0.2); opacity: 0.85 } 50% { box-shadow: 0 0 28px 8px #c09050, 0 0 50px 12px rgba(192,144,80,0.4); opacity: 1 } 100% { box-shadow: 0 0 18px 4px #705020; opacity: 0.9 } }
@keyframes ep-cloud { 0% { transform: translateX(0) } 100% { transform: translateX(-120vw) } }

.scn-hughes-blasphemy {
  background: linear-gradient(180deg, #0a0a1a 0%, #151530 50%, #1f1f3a 100%),
              radial-gradient(ellipse at 50% 0%, #1f1f3a 0%, transparent 50%);
}
.scn-hughes-blasphemy .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #151530 0%, #0a0a1a 100%);
  animation: hb-sky 12s ease-in-out infinite alternate;
}
.scn-hughes-blasphemy .sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #0d0d1f 0%, #12122e 100%);
  animation: hb-sea 4s ease-in-out infinite alternate;
}
.scn-hughes-blasphemy .hull {
  position: absolute; bottom: 25%; left: 15%; width: 70%; height: 22%;
  background: linear-gradient(180deg, #2a1f1a 0%, #1a0f0a 100%);
  border-radius: 0 0 10% 10% / 0 0 50% 50%;
  box-shadow: 0 6px 14px rgba(0,0,0,0.8);
}
.scn-hughes-blasphemy .mast {
  position: absolute; bottom: 42%; left: 42%; width: 4%; height: 45%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0f05 100%);
  transform: rotate(-2deg);
}
.scn-hughes-blasphemy .sail {
  position: absolute; bottom: 50%; left: 28%; width: 40%; height: 22%;
  background: linear-gradient(135deg, #2e2e3e 0%, #0e0e1e 100%);
  clip-path: polygon(0% 0%, 100% 0%, 70% 100%, 0% 100%);
  animation: hb-sail 8s ease-in-out infinite alternate;
}
.scn-hughes-blasphemy .figure-hughes {
  position: absolute; bottom: 30%; left: 32%; width: 14%; height: 24%;
  background: linear-gradient(180deg, #0f0f1a 0%, #05050a 100%);
  border-radius: 40% 40% 30% 30% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: hb-fig-h 1.8s ease-in-out infinite alternate;
}
.scn-hughes-blasphemy .figure-equiano {
  position: absolute; bottom: 30%; right: 25%; width: 10%; height: 20%;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a14 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: hb-fig-e 2.5s ease-in-out infinite alternate;
}
.scn-hughes-blasphemy .shore {
  position: absolute; bottom: 35%; left: 5%; width: 15%; height: 20%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a14 100%);
  border-radius: 30% 30% 0 0;
  opacity: 0.4;
  animation: hb-shore 20s ease-in-out infinite alternate;
}
@keyframes hb-sky { 0% { opacity: 0.6 } 50% { opacity: 0.9 } 100% { opacity: 0.7 } }
@keyframes hb-sea { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(1px) } }
@keyframes hb-sail { 0% { transform: rotate(-3deg) scaleX(1.02) } 50% { transform: rotate(3deg) scaleX(1.06) } 100% { transform: rotate(0deg) scaleX(1) } }
@keyframes hb-fig-h { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(4px) rotate(5deg) } 100% { transform: translateX(-2px) rotate(-1deg) } }
@keyframes hb-fig-e { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(-2px) rotate(-2deg) } 100% { transform: translateX(1px) rotate(1deg) } }
@keyframes hb-shore { 0% { transform: translateY(0) scaleX(1) } 50% { transform: translateY(-3px) scaleX(0.95) } 100% { transform: translateY(2px) scaleX(1) } }

.scn-equiano-hung {
  background: linear-gradient(180deg, #0f0f1a 0%, #1a1a2a 40%, #2a1f1a 70%, #1a1a2a 100%),
              radial-gradient(ellipse at 50% 80%, #2a1f1a 0%, transparent 60%);
}
.scn-equiano-hung .bg-planks {
  position: absolute; inset: 0;
  background: repeating-linear-gradient(90deg, #0f0f1a 0px, #0f0f1a 6px, #1a1a2a 6px, #1a1a2a 12px);
  opacity: 0.3;
  animation: eh-planks 20s linear infinite;
}
.scn-equiano-hung .beam {
  position: absolute; top: 8%; left: 5%; width: 90%; height: 3%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0f0a 100%);
  border-radius: 2px;
  box-shadow: 0 4px 10px rgba(0,0,0,0.7);
}
.scn-equiano-hung .rope {
  position: absolute; top: 11%; left: 50%; width: 1.5%; height: 35%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  animation: eh-rope 4s ease-in-out infinite alternate;
}
.scn-equiano-hung .arm-left {
  position: absolute; top: 45%; left: 42%; width: 8%; height: 2%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a14 100%);
  transform: rotate(30deg);
  transform-origin: right center;
  animation: eh-arm 2.5s ease-in-out infinite alternate;
}
.scn-equiano-hung .arm-right {
  position: absolute; top: 45%; right: 42%; width: 8%; height: 2%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a14 100%);
  transform: rotate(-30deg);
  transform-origin: left center;
  animation: eh-arm 2.5s ease-in-out infinite alternate-reverse;
}
.scn-equiano-hung .body {
  position: absolute; top: 46%; left: 45%; width: 10%; height: 18%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a14 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: eh-body 3s ease-in-out infinite alternate;
}
.scn-equiano-hung .lantern {
  position: absolute; top: 25%; right: 12%; width: 4%; height: 5%;
  background: radial-gradient(circle, #c09050 0%, #7a5a20 100%);
  border-radius: 50%;
  box-shadow: 0 0 28px 6px #a07030, 0 0 50px 12px rgba(160,112,48,0.2);
  animation: eh-lantern 2s ease-in-out infinite alternate;
}
@keyframes eh-planks { 0% { background-position: 0 0 } 100% { background-position: -12px 0 } }
@keyframes eh-rope { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(2px) rotate(1deg) } 100% { transform: translateY(-1px) rotate(-1deg) } }
@keyframes eh-arm { 0% { transform: rotate(28deg) } 50% { transform: rotate(32deg) } 100% { transform: rotate(28deg) } }
@keyframes eh-body { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(3px) scaleY(1.02) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes eh-lantern { 0% { box-shadow: 0 0 20px 4px #a07030, 0 0 40px 8px rgba(160,112,48,0.2); opacity: 0.8 } 50% { box-shadow: 0 0 35px 10px #d0a050, 0 0 60px 16px rgba(208,160,80,0.4); opacity: 1 } 100% { box-shadow: 0 0 22px 5px #8a5a20; opacity: 0.85 } }

/* verses-continued-8 */
.scn-verses-continued-8 {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a1a1e 100%), radial-gradient(ellipse at 30% 40%, #4a2a2a 0%, transparent 60%);
}
.scn-verses-continued-8 .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(90deg, #2a2a3e, #1a1a2e); }
.scn-verses-continued-8 .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #3a2a1a, #1a1a0a); }
.scn-verses-continued-8 .window { position:absolute; top:20%; left:10%; width:30px; height:50px; background: #ffd080; border-radius:4px; box-shadow:0 0 30px 8px #ffd080; animation:vc8-window 5s ease-in-out infinite alternate; }
.scn-verses-continued-8 .beam { position:absolute; top:25%; left:12%; width:100px; height:200%; background: linear-gradient(135deg, rgba(255,200,100,0.3) 0%, transparent 70%); transform:rotate(-30deg); transform-origin:top left; animation:vc8-beam 8s ease-in-out infinite; }
.scn-verses-continued-8 .figure { position:absolute; bottom:30%; left:15%; width:20px; height:50px; background:#0a0a0a; border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation:vc8-figure 6s ease-in-out infinite; }
.scn-verses-continued-8 .chain { position:absolute; bottom:40%; left:10%; width:4px; height:60px; background:#5a5a5a; border-radius:2px; transform-origin:top; animation:vc8-chain 4s ease-in-out infinite; }
@keyframes vc8-window { 0% { opacity:0.7; box-shadow:0 0 20px 4px #ffd080; } 50% { opacity:1; box-shadow:0 0 40px 12px #ffd080; } 100% { opacity:0.8; box-shadow:0 0 25px 6px #ffd080; } }
@keyframes vc8-beam { 0% { opacity:0.2; transform:rotate(-35deg); } 50% { opacity:0.5; transform:rotate(-25deg); } 100% { opacity:0.3; transform:rotate(-30deg); } }
@keyframes vc8-figure { 0% { transform:translateY(0) rotate(0); } 25% { transform:translateY(-2px) rotate(2deg); } 50% { transform:translateY(-5px) rotate(4deg); } 75% { transform:translateY(-2px) rotate(2deg); } 100% { transform:translateY(0) rotate(0); } }
@keyframes vc8-chain { 0% { transform:rotate(-10deg); } 50% { transform:rotate(10deg); } 100% { transform:rotate(-10deg); } }

/* verses-continued-9 */
.scn-verses-continued-9 {
  background: linear-gradient(180deg, #1e1e2a 0%, #2a1a1e 100%), radial-gradient(ellipse at 50% 30%, #4a2a2a 0%, transparent 70%);
}
.scn-verses-continued-9 .bg { position:absolute; inset:0; background: linear-gradient(180deg, #1e1e2a 0%, #2a1a1e 100%); animation:vc9-bg 12s ease-in-out infinite; }
.scn-verses-continued-9 .floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #3a2a1a, #1a1a0a); }
.scn-verses-continued-9 .cross { position:absolute; bottom:30%; left:50%; width:6px; height:80px; transform:translateX(-50%); background:#5a3a2a; border-radius:2px; box-shadow:0 0 10px 2px rgba(255,200,100,0.3); }
.scn-verses-continued-9 .crossbeam { position:absolute; bottom:55%; left:38%; width:60px; height:4px; background:#5a3a2a; border-radius:2px; }
.scn-verses-continued-9 .figure { position:absolute; bottom:22%; left:42%; width:24px; height:40px; background:#0a0a0a; border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:vc9-figure 5s ease-in-out infinite; }
.scn-verses-continued-9 .light { position:absolute; top:15%; left:40%; width:80px; height:80px; background:radial-gradient(circle, #ffd080 0%, transparent 70%); animation:vc9-light 4s ease-in-out infinite alternate; }
.scn-verses-continued-9 .ray1, .scn-verses-continued-9 .ray2 { position:absolute; top:30%; left:45%; width:10px; height:60px; background: linear-gradient(180deg, rgba(255,200,100,0.3), transparent); transform-origin:top; animation:vc9-ray 7s ease-in-out infinite; }
.scn-verses-continued-9 .ray2 { left:55%; animation-delay:3s; }
@keyframes vc9-bg { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes vc9-figure { 0% { transform:translateY(0) rotate(0); } 30% { transform:translateY(-3px) rotate(5deg); } 60% { transform:translateY(0) rotate(0); } 100% { transform:translateY(0) rotate(0); } }
@keyframes vc9-light { 0% { opacity:0.5; transform:scale(0.8); } 50% { opacity:0.8; transform:scale(1.2); } 100% { opacity:0.6; transform:scale(1); } }
@keyframes vc9-ray { 0% { transform:rotate(10deg); opacity:0.2; } 50% { transform:rotate(-10deg); opacity:0.5; } 100% { transform:rotate(10deg); opacity:0.2; } }

/* verses-continued-10 */
.scn-verses-continued-10 {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a1a1a 100%), radial-gradient(ellipse at 50% 60%, #3a2a2a 0%, transparent 80%);
}
.scn-verses-continued-10 .bg { position:absolute; inset:0; background: linear-gradient(180deg, #1a1a2e 0%, #2a1a1a 100%); animation:vc10-bg 15s ease-in-out infinite alternate; }
.scn-verses-continued-10 .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #3a2a1a, #1a1a0a); }
.scn-verses-continued-10 .figure { position:absolute; bottom:20%; left:50%; width:30px; height:70px; transform:translateX(-50%); background:#0a0a0a; border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation:vc10-figure 6s ease-in-out infinite; }
.scn-verses-continued-10 .halo { position:absolute; bottom:35%; left:50%; width:60px; height:60px; transform:translate(-50%, -50%); background:radial-gradient(circle, rgba(255,200,100,0.4) 0%, transparent 70%); animation:vc10-halo 4s ease-in-out infinite alternate; }
.scn-verses-continued-10 .ray1, .scn-verses-continued-10 .ray2 { position:absolute; bottom:30%; left:50%; width:4px; height:20px; background:rgba(255,200,100,0.3); transform-origin:bottom center; animation:vc10-ray 8s ease-in-out infinite; }
.scn-verses-continued-10 .ray2 { transform:rotate(90deg); animation-delay:-2s; }
.scn-verses-continued-10 .sparkle { position:absolute; bottom:50%; left:50%; width:2px; height:2px; background:#ffd080; border-radius:50%; animation:vc10-sparkle 3s ease-in-out infinite; }
@keyframes vc10-bg { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes vc10-figure { 0% { transform:translateX(-50%) rotate(0); } 25% { transform:translateX(-50%) rotate(5deg); } 50% { transform:translateX(-50%) rotate(0); } 75% { transform:translateX(-50%) rotate(-5deg); } 100% { transform:translateX(-50%) rotate(0); } }
@keyframes vc10-halo { 0% { opacity:0.3; transform:translate(-50%, -50%) scale(0.8); } 50% { opacity:0.6; transform:translate(-50%, -50%) scale(1.1); } 100% { opacity:0.4; transform:translate(-50%, -50%) scale(1); } }
@keyframes vc10-ray { 0% { transform:scaleY(0); opacity:0; } 20% { opacity:0.5; } 50% { transform:scaleY(1.5); opacity:1; } 80% { opacity:0.5; } 100% { transform:scaleY(0); opacity:0; } }
@keyframes vc10-sparkle { 0% { opacity:0; transform:scale(0); } 50% { opacity:1; transform:scale(2); } 100% { opacity:0; transform:scale(0); } }

/* verses-continued-11 */
.scn-verses-continued-11 {
  background: linear-gradient(180deg, #1a1e2e 0%, #2a1a1e 100%), radial-gradient(ellipse at 50% 40%, #3a2a2a 0%, transparent 60%);
}
.scn-verses-continued-11 .bg { position:absolute; inset:0; background: linear-gradient(180deg, #1a1e2e 0%, #2a1a1e 100%); animation:vc11-bg 12s ease-in-out infinite; }
.scn-verses-continued-11 .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #3a2a1a, #1a1a0a); }
.scn-verses-continued-11 .cross { position:absolute; bottom:30%; left:50%; width:6px; height:90px; transform:translateX(-50%); background:#4a2a1a; border-radius:2px; animation:vc11-cross 8s ease-in-out infinite; }
.scn-verses-continued-11 .crossbeam { position:absolute; bottom:60%; left:36%; width:70px; height:4px; background:#4a2a1a; border-radius:2px; animation:vc11-cross 8s ease-in-out infinite; }
.scn-verses-continued-11 .figure { position:absolute; bottom:30%; left:50%; width:24px; height:40px; transform:translateX(-50%); background:#0a0a0a; border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation:vc11-figure 5s ease-in-out infinite; }
.scn-verses-continued-11 .glow { position:absolute; top:10%; left:30%; width:40%; height:60%; background:radial-gradient(ellipse, rgba(255,200,100,0.2) 0%, transparent 70%); animation:vc11-glow 4s ease-in-out infinite alternate; }
.scn-verses-continued-11 .drops { position:absolute; bottom:35%; left:48%; width:4px; height:10px; background:#c8553d; border-radius:50% 50% 0 0; box-shadow:0 12px 0 #c8553d, 0 24px 0 #c8553d; animation:vc11-drops 3s ease-in-out infinite; }
@keyframes vc11-bg { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes vc11-cross { 0% { transform:translateX(-50%) scaleY(1); } 50% { transform:translateX(-50%) scaleY(1.02); } 100% { transform:translateX(-50%) scaleY(1); } }
@keyframes vc11-figure { 0% { transform:translateX(-50%) rotate(0); } 30% { transform:translateX(-50%) rotate(5deg); } 70% { transform:translateX(-50%) rotate(-5deg); } 100% { transform:translateX(-50%) rotate(0); } }
@keyframes vc11-glow { 0% { opacity:0.3; } 50% { opacity:0.6; } 100% { opacity:0.4; } }
@keyframes vc11-drops { 0% { transform:translateY(0); opacity:0.8; } 50% { transform:translateY(5px); opacity:0.5; } 100% { transform:translateY(0); opacity:0.8; } }

.scn-seeking-salvation { background: linear-gradient(180deg, #2a1a0a 0%, #3a2a1a 30%, #4a3a2a 60%, #2a1a0a 100%), radial-gradient(ellipse at 50% 50%, #4a3a2a 0%, transparent 70%); }
.scn-seeking-salvation .room { position:absolute; inset:0; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); }
.scn-seeking-salvation .figure { position:absolute; bottom:20%; left:35%; width:24px; height:60px; background: linear-gradient(180deg, #2a1a10, #1a0a00); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ss-figure 6s ease-in-out infinite; }
.scn-seeking-salvation .book { position:absolute; bottom:22%; left:38%; width:30px; height:20px; background: linear-gradient(135deg, #8a7a6a 0%, #5a4a3a 100%); border-radius:2px; transform: rotate(-5deg); animation: ss-book 4s ease-in-out infinite; }
.scn-seeking-salvation .lamp { position:absolute; bottom:50%; left:60%; width:20px; height:30px; background: linear-gradient(180deg, #a08058, #604830); border-radius:50% 50% 40% 40%; animation: ss-lamp 3s ease-in-out infinite alternate; }
.scn-seeking-salvation .window { position:absolute; top:20%; left:10%; width:60px; height:80px; background: linear-gradient(180deg, #6a5a4a, #3a2a1a); border: 4px solid #4a3a2a; border-radius:4px; }
.scn-seeking-salvation .glow { position:absolute; bottom:50%; left:60%; width:40px; height:40px; background: radial-gradient(circle, #f0d090 0%, transparent 70%); border-radius:50%; box-shadow: 0 0 30px 10px #b09050; animation: ss-glow 4s ease-in-out infinite alternate; }
.scn-seeking-salvation .shadow { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(0deg, #0a0500 0%, transparent 100%); }
@keyframes ss-figure { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-4px) rotate(2deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes ss-book { 0% { transform: rotate(-5deg); } 50% { transform: rotate(0deg) scale(1.03); } 100% { transform: rotate(-5deg); } }
@keyframes ss-lamp { 0% { opacity:0.7; } 50% { opacity:1; box-shadow: 0 0 20px 8px #d0a050; } 100% { opacity:0.8; } }
@keyframes ss-glow { 0% { opacity:0.3; transform: scale(0.9); } 50% { opacity:0.8; transform: scale(1.2); } 100% { opacity:0.4; transform: scale(1); } }

.scn-john-annis-kidnapping { background: linear-gradient(180deg, #4a8ab5 0%, #7ab0d0 40%, #c0d8e0 100%), radial-gradient(ellipse at 80% 20%, #e0f0ff 0%, transparent 50%); }
.scn-john-annis-kidnapping .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #6a9fbf 0%, #a0c8db 100%); }
.scn-john-annis-kidnapping .ground { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(0deg, #4a3a2a 0%, #7a6a5a 100%); }
.scn-john-annis-kidnapping .ship { position:absolute; bottom:30%; right:10%; width:80px; height:40px; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius:10% 10% 50% 50%; transform: rotate(-5deg); animation: ja-ship 12s ease-in-out infinite; }
.scn-john-annis-kidnapping .kidnapper { position:absolute; bottom:35%; left:20%; width:30px; height:70px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform: rotate(10deg); animation: ja-kid 3s ease-in-out infinite; }
.scn-john-annis-kidnapping .victim { position:absolute; bottom:32%; left:10%; width:24px; height:60px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-15deg); animation: ja-vic 2s ease-in-out infinite; }
.scn-john-annis-kidnapping .shadow-harsh { position:absolute; bottom:35%; left:15%; width:50px; height:20px; background: #1a1000; filter: blur(4px); opacity:0.6; }
.scn-john-annis-kidnapping .sun { position:absolute; top:10%; right:15%; width:50px; height:50px; background: radial-gradient(circle, #fff0c0 0%, #f0d080 40%, transparent 70%); border-radius:50%; animation: ja-sun 8s ease-in-out infinite; }
.scn-john-annis-kidnapping .rope { position:absolute; bottom:36%; left:20%; width:2px; height:30px; background: #5a4a3a; transform: rotate(20deg); animation: ja-rope 1s ease-in-out infinite; }
@keyframes ja-ship { 0% { transform: rotate(-5deg) translateX(0); } 50% { transform: rotate(-7deg) translateX(-5px); } 100% { transform: rotate(-5deg) translateX(0); } }
@keyframes ja-kid { 0%,100% { transform: rotate(10deg) translateY(0); } 50% { transform: rotate(12deg) translateY(-5px); } }
@keyframes ja-vic { 0%,100% { transform: rotate(-15deg) translateY(0); } 50% { transform: rotate(-20deg) translateY(3px); } }
@keyframes ja-sun { 0% { opacity:1; box-shadow: 0 0 40px 20px #f0d080; } 50% { opacity:0.9; box-shadow: 0 0 60px 30px #ffe0a0; } 100% { opacity:1; box-shadow: 0 0 40px 20px #f0d080; } }
@keyframes ja-rope { 0%,100% { transform: rotate(20deg); } 50% { transform: rotate(25deg) scaleY(1.05); } }

.scn-vision-judgment { background: linear-gradient(180deg, #2a2a3a 0%, #4a4a6a 30%, #8a8a9a 60%, #c0c0d0 100%), radial-gradient(ellipse at 50% 0%, #e0e0ff 0%, transparent 70%); }
.scn-vision-judgment .sky-judgment { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #3a3a5a 0%, #6a6a8a 100%); }
.scn-vision-judgment .lightbeam { position:absolute; top:0; left:40%; width:20%; height:100%; background: linear-gradient(180deg, rgba(255,255,200,0.8) 0%, transparent 100%); clip-path: polygon(40% 0, 60% 0, 50% 100%); animation: vj-beam 5s ease-in-out infinite alternate; }
.scn-vision-judgment .clouds { position:absolute; top:10%; left:0; right:0; height:30%; background: radial-gradient(ellipse at 20% 30%, rgba(100,100,120,0.8) 0%, transparent 70%), radial-gradient(ellipse at 80% 20%, rgba(80,80,100,0.7) 0%, transparent 60%); filter: blur(10px); animation: vj-clouds 20s linear infinite; }
.scn-vision-judgment .ground { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(0deg, #2a2a1a 0%, #4a4a2a 50%, #6a6a4a 100%); }
.scn-vision-judgment .figure-praying { position:absolute; bottom:20%; left:35%; width:20px; height:50px; background: #1a1a2a; border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform: skewX(-10deg); animation: vj-pray 4s ease-in-out infinite; }
.scn-vision-judgment .figure-stricken { position:absolute; bottom:22%; right:30%; width:24px; height:45px; background: #2a2a3a; border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(20deg); animation: vj-strike 3s ease-in-out infinite; }
.scn-vision-judgment .rays { position:absolute; top:0; left:30%; width:40%; height:40%; background: radial-gradient(ellipse at 50% 0%, rgba(255,255,200,0.3) 0%, transparent 70%); filter: blur(8px); animation: vj-rays 6s ease-in-out infinite alternate; }
@keyframes vj-beam { 0% { opacity:0.6; transform: scaleY(0.9); } 50% { opacity:1; transform: scaleY(1.2); } 100% { opacity:0.7; transform: scaleY(1); } }
@keyframes vj-clouds { 0% { transform: translateX(0); opacity:0.5; } 50% { transform: translateX(20px); opacity:0.8; } 100% { transform: translateX(-20px); opacity:0.5; } }
@keyframes vj-pray { 0%,100% { transform: skewX(-10deg) translateY(0); } 50% { transform: skewX(-15deg) translateY(-2px); } }
@keyframes vj-strike { 0%,100% { transform: rotate(20deg); } 50% { transform: rotate(15deg) translateX(3px); } }
@keyframes vj-rays { 0% { opacity:0.2; } 50% { opacity:0.6; } 100% { opacity:0.3; } }

.scn-invitation-love-feast { background: linear-gradient(180deg, #e8d8c0 0%, #c8b89a 50%, #a89878 100%), radial-gradient(ellipse at 50% 30%, #f0e0c8 0%, transparent 70%); }
.scn-invitation-love-feast .sky-feast { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #d0e0f0 0%, #e8f0ff 100%); }
.scn-invitation-love-feast .chapel { position:absolute; bottom:0; left:10%; right:10%; top:20%; background: linear-gradient(135deg, #c8b088 0%, #a89068 100%); border-radius:20% 20% 0 0; box-shadow: inset 0 0 40px #7a6a4a; }
.scn-invitation-love-feast .door { position:absolute; bottom:10%; left:45%; width:10%; height:40%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:10% 10% 0 0; animation: il-door 8s ease-in-out infinite alternate; }
.scn-invitation-love-feast .table { position:absolute; bottom:15%; left:30%; width:40%; height:10%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius:2px; }
.scn-invitation-love-feast .bread { position:absolute; bottom:22%; left:40%; width:20px; height:16px; background: #d0a060; border-radius:30% 30% 40% 40%; box-shadow: inset 2px 2px 4px #a07040; animation: il-bread 6s ease-in-out infinite; }
.scn-invitation-love-feast .wine { position:absolute; bottom:22%; left:48%; width:10px; height:20px; background: linear-gradient(180deg, #6a2a3a 0%, #4a1a2a 100%); border-radius:50% 50% 20% 20%; animation: il-wine 4s ease-in-out infinite; }
.scn-invitation-love-feast .figure-eq { position:absolute; bottom:20%; left:25%; width:20px; height:50px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1000 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: il-eq 5s ease-in-out infinite; }
.scn-invitation-love-feast .figure-gent { position:absolute; bottom:20%; right:25%; width:22px; height:55px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: il-gent 5s ease-in-out infinite 2s; }
.scn-invitation-love-feast .light-rays { position:absolute; top:10%; left:20%; width:60%; height:40%; background: radial-gradient(ellipse at 50% 0%, rgba(255,240,200,0.4) 0%, transparent 70%); filter: blur(10px); animation: il-rays 10s ease-in-out infinite alternate; }
@keyframes il-door { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.1); } 100% { transform: scaleX(0.9); } }
@keyframes il-bread { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-2px) rotate(-10deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes il-wine { 0% { transform: rotate(0); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-5deg); } }
@keyframes il-eq { 0%,100% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-2px) rotate(2deg); } }
@keyframes il-gent { 0%,100% { transform: translateY(0) rotate(2deg); } 50% { transform: translateY(-3px) rotate(-1deg); } }
@keyframes il-rays { 0% { opacity:0.3; } 50% { opacity:0.7; } 100% { opacity:0.4; } }

.scn-kidnapping-intro {
  background: linear-gradient(180deg, #87CEEB 0%, #f0e68c 40%, #f4a460 100%), radial-gradient(ellipse at 50% 0%, #fff9c4 0%, transparent 60%);
  position: relative; overflow: hidden;
}
.scn-kidnapping-intro .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #87CEEB 0%, #b0e0e6 100%); animation: ki-sky 20s ease-in-out infinite alternate; }
.scn-kidnapping-intro .sun { position:absolute; top:10%; left:70%; width:60px; height:60px; border-radius:50%; background: radial-gradient(circle, #fff9c4 0%, #ffd700 50%, transparent 100%); box-shadow: 0 0 80px 30px #ffd700; animation: ki-sun 30s linear infinite; }
.scn-kidnapping-intro .ocean { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #1e90ff 0%, #006400 50%, #00008b 100%); animation: ki-ocean 8s ease-in-out infinite alternate; }
.scn-kidnapping-intro .ship-hull { position:absolute; bottom:30%; left:50%; width:80px; height:25px; transform:translateX(-50%); background: linear-gradient(180deg, #8B4513 0%, #3e2723 100%); border-radius: 30% 30% 50% 50%; box-shadow: 0 4px 8px rgba(0,0,0,0.5); animation: ki-ship 12s ease-in-out infinite; }
.scn-kidnapping-intro .sail { position:absolute; bottom:45%; left:50%; width:30px; height:50px; transform:translateX(-50%); background: radial-gradient(ellipse, #f5f5dc 0%, #d3c8a8 100%); border-radius: 10% 10% 20% 20%; animation: ki-sail 10s ease-in-out infinite; }
.scn-kidnapping-intro .reflection { position:absolute; bottom:20%; left:30%; width:40%; height:8px; background: linear-gradient(90deg, transparent 0%, rgba(255,215,0,0.3) 50%, transparent 100%); filter: blur(4px); animation: ki-reflect 6s ease-in-out infinite alternate; }
.scn-kidnapping-intro .cloud { position:absolute; width:120px; height:30px; background: linear-gradient(180deg, rgba(255,255,255,0.9) 0%, rgba(255,255,255,0.3) 100%); border-radius:50%; filter: blur(8px); }
.scn-kidnapping-intro .ki-cloud-a { top:5%; left:10%; animation: ki-cloud-a 40s linear infinite; }
.scn-kidnapping-intro .ki-cloud-b { top:12%; left:60%; animation: ki-cloud-b 50s linear infinite; animation-delay: -15s; }
@keyframes ki-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes ki-sun { 0% { transform: translate(0,0); } 25% { transform: translate(10px,-5px); } 50% { transform: translate(5px,5px); } 75% { transform: translate(-5px,2px); } 100% { transform: translate(0,0); } }
@keyframes ki-ocean { 0% { transform: translateY(0); } 50% { transform: translateY(3px); } 100% { transform: translateY(-1px); } }
@keyframes ki-ship { 0% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(2deg); } 100% { transform: translateX(-50%) rotate(-2deg); } }
@keyframes ki-sail { 0% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(1.02); } 100% { transform: translateX(-50%) scaleY(0.98); } }
@keyframes ki-reflect { 0% { opacity:0.3; } 50% { opacity:0.7; } 100% { opacity:0.4; } }
@keyframes ki-cloud-a { 0% { transform: translateX(-150px); } 100% { transform: translateX(calc(100vw + 150px)); } }
@keyframes ki-cloud-b { 0% { transform: translateX(calc(100vw + 100px)); } 100% { transform: translateX(-150px); } }

.scn-equiano-childhood {
  background: linear-gradient(180deg, #87CEEB 0%, #fff8dc 30%, #f5deb3 60%, #d2b48c 100%), radial-gradient(ellipse at 50% 20%, #fff9c4 0%, transparent 70%);
  position: relative; overflow: hidden;
}
.scn-equiano-childhood .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #87CEEB 0%, #e0f7fa 100%); animation: ec-sky 15s ease-in-out infinite alternate; }
.scn-equiano-childhood .ground { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #8fbc8f 0%, #556b2f 100%); border-radius: 30% 70% 0 0 / 20% 40% 0 0; }
.scn-equiano-childhood .hut { position:absolute; bottom:35%; width:60px; height:50px; background: linear-gradient(180deg, #d2b48c 0%, #a0522d 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 4px 8px rgba(0,0,0,0.3); }
.scn-equiano-childhood .hut-left { left:20%; }
.scn-equiano-childhood .hut-right { right:20%; }
.scn-equiano-childhood .tree { position:absolute; bottom:40%; left:50%; width:12px; height:80px; transform:translateX(-50%); background: linear-gradient(180deg, #8B4513 0%, #3e2723 100%); border-radius: 0 0 30% 30%; }
.scn-equiano-childhood .tree::after { content:''; position:absolute; top:-25px; left:-15px; width:40px; height:40px; background: radial-gradient(circle, #228b22 0%, #006400 100%); border-radius:50%; }
.scn-equiano-childhood .child { position:absolute; bottom:40%; width:16px; height:30px; background: linear-gradient(180deg, #d2b48c 0%, #8B4513 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; }
.scn-equiano-childhood .child-a { left:30%; animation: ec-child-a 4s ease-in-out infinite; }
.scn-equiano-childhood .child-b { left:45%; animation: ec-child-b 4s ease-in-out infinite 2s; }
.scn-equiano-childhood .sun { position:absolute; top:5%; right:15%; width:50px; height:50px; border-radius:50%; background: radial-gradient(circle, #fff9c4 0%, #ffd700 100%); box-shadow: 0 0 60px 20px #ffd700; animation: ec-sun 20s linear infinite; }
@keyframes ec-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes ec-child-a { 0% { transform: translateY(0) rotate(-2deg); } 25% { transform: translateY(-3px) rotate(2deg); } 50% { transform: translateY(0) rotate(-1deg); } 75% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes ec-child-b { 0% { transform: translateY(0) rotate(2deg); } 25% { transform: translateY(-2px) rotate(-2deg); } 50% { transform: translateY(0) rotate(1deg); } 75% { transform: translateY(-3px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes ec-sun { 0% { transform: translate(0,0); } 33% { transform: translate(5px,-3px); } 66% { transform: translate(-3px,2px); } 100% { transform: translate(0,0); } }

.scn-kidnapping-seizure {
  background: linear-gradient(180deg, #87CEEB 0%, #90ee90 30%, #228b22 60%, #0b3d0b 100%), radial-gradient(ellipse at 40% 20%, #fff9c4 0%, transparent 50%);
  position: relative; overflow: hidden;
}
.scn-kidnapping-seizure .sky { position:absolute; inset:0 0 60% 0; background: linear-gradient(180deg, #87CEEB 0%, #c8e6c9 100%); animation: ks-sky 5s ease-in-out infinite alternate; }
.scn-kidnapping-seizure .trunk { position:absolute; bottom:0; width:20px; height:100%; background: linear-gradient(180deg, #5D4037 0%, #3e2723 100%); border-radius: 20% 20% 0 0; }
.scn-kidnapping-seizure .trunk-1 { left:15%; width:18px; }
.scn-kidnapping-seizure .trunk-2 { right:20%; width:22px; }
.scn-kidnapping-seizure .ground { position:absolute; bottom:0; left:0; right:0; height:15%; background: linear-gradient(180deg, #2e7d32 0%, #1b5e20 100%); }
.scn-kidnapping-seizure .kidnapper { position:absolute; bottom:20%; width:30px; height:60px; background: linear-gradient(180deg, #3e2723 0%, #1a1a1a 100%); border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%; }
.scn-kidnapping-seizure .kidnapper-a { left:40%; animation: ks-kidnapper-a 2s ease-in-out infinite; }
.scn-kidnapping-seizure .kidnapper-b { left:55%; animation: ks-kidnapper-b 2s ease-in-out infinite 0.5s; }
.scn-kidnapping-seizure .child { position:absolute; bottom:20%; left:48%; width:14px; height:28px; background: linear-gradient(180deg, #d2b48c 0%, #8B4513 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; animation: ks-child 1.5s ease-in-out infinite; }
.scn-kidnapping-seizure .cloth { position:absolute; bottom:35%; left:42%; width:10px; height:8px; background: #d2b48c; border-radius: 20%; filter: blur(2px); animation: ks-cloth 2s ease-in-out infinite; }
@keyframes ks-sky { 0% { opacity:0.6; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes ks-kidnapper-a { 0% { transform: translate(0,0) rotate(0deg); } 30% { transform: translate(-3px,2px) rotate(5deg); } 60% { transform: translate(2px,-1px) rotate(-3deg); } 100% { transform: translate(0,0) rotate(0deg); } }
@keyframes ks-kidnapper-b { 0% { transform: translate(0,0) rotate(0deg); } 30% { transform: translate(2px,1px) rotate(-4deg); } 60% { transform: translate(-2px,-2px) rotate(5deg); } 100% { transform: translate(0,0) rotate(0deg); } }
@keyframes ks-child { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(5deg); } 50% { transform: translateY(1px) rotate(-3deg); } 75% { transform: translateY(-1px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes ks-cloth { 0% { opacity:0; } 50% { opacity:0.8; } 100% { opacity:0; } }

.scn-kidnapping-separation {
  background: linear-gradient(180deg, #1a1a3e 0%, #2c2244 30%, #4a3a6e 60%, #2a1a3a 100%), radial-gradient(ellipse at 50% 0%, #6a5acd 0%, transparent 70%);
  position: relative; overflow: hidden;
}
.scn-kidnapping-separation .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #2a2a4e 0%, #1a1a3e 100%); animation: kse-sky 15s ease-in-out infinite alternate; }
.scn-kidnapping-separation .moon { position:absolute; top:8%; left:70%; width:40px; height:40px; border-radius:50%; background: radial-gradient(circle, #e6e6fa 0%, #b0c4de 100%); box-shadow: 0 0 40px 10px #b0c4de; animation: kse-moon 20s linear infinite; }
.scn-kidnapping-separation .tree { position:absolute; bottom:0; width:30px; height:100%; background: linear-gradient(180deg, #0b0b1a 0%, #1a1a3e 100%); border-radius: 20% 20% 0 0; }
.scn-kidnapping-separation .tree-left { left:10%; width:25px; }
.scn-kidnapping-separation .tree-right { right:10%; width:35px; }
.scn-kidnapping-separation .path { position:absolute; bottom:0; left:30%; right:30%; height:20%; background: linear-gradient(180deg, #3e2a1a 0%, #1a0a0a 100%); border-radius: 20% 20% 0 0; animation: kse-path 8s ease-in-out infinite alternate; }
.scn-kidnapping-separation .figure { position:absolute; bottom:15%; width:18px; height:40px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; }
.scn-kidnapping-separation .figure-a { left:40%; animation: kse-figure-a 6s ease-in-out infinite; }
.scn-kidnapping-separation .figure-b { right:40%; animation: kse-figure-b 6s ease-in-out infinite 3s; }
.scn-kidnapping-separation .lantern { position:absolute; bottom:25%; left:45%; width:8px; height:8px; border-radius:50%; background: #ffd700; box-shadow: 0 0 20px 5px #ffd700, 0 0 40px 10px rgba(255,215,0,0.5); animation: kse-lantern 4s ease-in-out infinite; }
@keyframes kse-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes kse-moon { 0% { transform: translate(0,0); } 33% { transform: translate(5px,-3px); } 66% { transform: translate(-3px,2px); } 100% { transform: translate(0,0); } }
@keyframes kse-path { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.98); } 100% { transform: scaleY(1.02); } }
@keyframes kse-figure-a { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 30% { transform: translateX(-5px) translateY(-2px) rotate(5deg); } 60% { transform: translateX(3px) translateY(1px) rotate(-3deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes kse-figure-b { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 30% { transform: translateX(5px) translateY(-1px) rotate(-4deg); } 60% { transform: translateX(-3px) translateY(2px) rotate(3deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes kse-lantern { 0% { opacity:0.6; transform: scale(0.9); } 50% { opacity:1; transform: scale(1.1); } 100% { opacity:0.7; transform: scale(0.95); } }

/* santa-cruz-fruit – market scene */
.scn-santa-cruz-fruit { background: linear-gradient(180deg, #d6a65f 0%, #3a6b4a 50%, #1a3a2a 100%), radial-gradient(ellipse at 50% 20%, #f0c27f 0%, transparent 60%); }
.scn-santa-cruz-fruit .sky    { position:absolute; inset:0 0 50% 0; background:linear-gradient(180deg, rgba(255,200,100,0.6) 0%, transparent 100%); animation:s1-sky 15s ease-in-out infinite alternate; }
.scn-santa-cruz-fruit .sea    { position:absolute; bottom:0; left:0; right:0; height:40%; background:linear-gradient(180deg, #2a5a4a 0%, #1a3a2a 100%); animation:s1-sea 10s ease-in-out infinite; }
.scn-santa-cruz-fruit .sand   { position:absolute; bottom:0; left:0; right:0; height:12%; background:linear-gradient(180deg, #c9a96e 0%, #b08040 100%); border-radius:50% 50% 0 0 / 30% 30% 0 0; }
.scn-santa-cruz-fruit .tree   { position:absolute; bottom:12%; left:20%; width:40px; height:100px; background:linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:20% 20% 10% 10%; transform-origin:bottom center; animation:s1-tree 8s ease-in-out infinite; }
.scn-santa-cruz-fruit .figure1 { position:absolute; bottom:8%; left:40%; width:16px; height:40px; background:linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius:50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin:bottom; animation:s1-fig1 6s ease-in-out infinite; }
.scn-santa-cruz-fruit .figure2 { position:absolute; bottom:8%; left:58%; width:16px; height:36px; background:linear-gradient(180deg, #3a2a1a 0%, #1a1a0a 100%); border-radius:50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin:bottom; animation:s1-fig2 7s ease-in-out infinite; }
.scn-santa-cruz-fruit .bag1   { position:absolute; bottom:6%; left:50%; width:20px; height:16px; background:#7a5a3a; border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation:s1-bag1 4s ease-in-out infinite alternate; }
.scn-santa-cruz-fruit .bag2   { position:absolute; bottom:4%; left:54%; width:16px; height:12px; background:#6a4a2a; border-radius:50% 50% 40% 40%; animation:s1-bag2 5s ease-in-out infinite alternate; }
.scn-santa-cruz-fruit .cloud  { position:absolute; top:10%; left:-10%; width:80px; height:20px; background:rgba(255,255,255,0.3); border-radius:50%; filter:blur(8px); animation:s1-cloud 30s linear infinite; }
@keyframes s1-sky   { 0%{opacity:0.5} 50%{opacity:0.8} 100%{opacity:0.6} }
@keyframes s1-sea   { 0%{transform:translateY(0)} 50%{transform:translateY(-3px)} 100%{transform:translateY(0)} }
@keyframes s1-tree  { 0%{transform:rotate(-2deg)} 50%{transform:rotate(2deg)} 100%{transform:rotate(-2deg)} }
@keyframes s1-fig1  { 0%{transform:translateX(0) rotate(-1deg)} 25%{transform:translateX(4px) rotate(1deg)} 50%{transform:translateX(8px) rotate(-1deg)} 75%{transform:translateX(12px) rotate(1deg)} 100%{transform:translateX(16px) rotate(0deg)} }
@keyframes s1-fig2  { 0%{transform:translateX(0) rotate(1deg)} 33%{transform:translateX(-3px) rotate(-1deg)} 66%{transform:translateX(-6px) rotate(1deg)} 100%{transform:translateX(-9px) rotate(0deg)} }
@keyframes s1-bag1  { 0%{transform:scale(1)} 100%{transform:scale(1.1)} }
@keyframes s1-bag2  { 0%{transform:scale(1) rotate(0deg)} 100%{transform:scale(0.9) rotate(5deg)} }
@keyframes s1-cloud { 0%{transform:translateX(0)} 100%{transform:translateX(120vw)} }

/* fort-complaint – tense confrontation */
.scn-fort-complaint { background: linear-gradient(180deg, #c9a96e 0%, #8a6a4a 30%, #5a3a2a 100%), radial-gradient(ellipse at 70% 30%, #f0d080 0%, transparent 50%); }
.scn-fort-complaint .sky        { position:absolute; inset:0 0 60% 0; background:linear-gradient(180deg, rgba(240,200,130,0.7) 0%, transparent 100%); animation:s2-sky 8s ease-in-out infinite alternate; }
.scn-fort-complaint .fort-wall  { position:absolute; bottom:10%; left:10%; right:10%; height:60%; background:linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%); border-radius:20% 20% 0 0 / 10% 10% 0 0; box-shadow:inset 0 0 20px rgba(0,0,0,0.5); }
.scn-fort-complaint .battlements { position:absolute; bottom:70%; left:12%; right:12%; height:10%; background: repeating-linear-gradient(90deg, #5a3a2a 0px, #5a3a2a 16px, transparent 16px, transparent 20px); animation:s2-battle 4s ease-in-out infinite; }
.scn-fort-complaint .gate      { position:absolute; bottom:10%; left:50%; width:50px; height:70px; transform:translateX(-50%); background:linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius:40% 40% 0 0 / 60% 60% 0 0; }
.scn-fort-complaint .governor  { position:absolute; bottom:20%; left:38%; width:20px; height:50px; background:linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius:50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin:bottom; animation:s2-gov 2s ease-in-out infinite; }
.scn-fort-complaint .fleeing   { position:absolute; bottom:22%; left:62%; width:16px; height:38px; background:linear-gradient(180deg, #1a1a0a 0%, #0a0a00 100%); border-radius:50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin:bottom; animation:s2-flee 1.5s ease-in-out infinite; }
.scn-fort-complaint .whip      { position:absolute; bottom:30%; left:42%; width:2px; height:60px; background:#4a3a2a; transform-origin:top center; animation:s2-whip 1s ease-in-out infinite; }
.scn-fort-complaint .flag      { position:absolute; top:5%; left:10%; width:30px; height:20px; background:linear-gradient(180deg, #a0461a 0%, #702243 100%); border-radius:0 30% 30% 0; transform-origin:left center; animation:s2-flag 5s ease-in-out infinite; }
.scn-fort-complaint .ground    { position:absolute; bottom:0; left:0; right:0; height:10%; background:linear-gradient(180deg, #b08040 0%, #7a5a3a 100%); }
@keyframes s2-sky   { 0%{opacity:0.6} 50%{opacity:0.9} 100%{opacity:0.7} }
@keyframes s2-battle { 0%{opacity:1} 50%{opacity:0.6} 100%{opacity:1} }
@keyframes s2-gov   { 0%{transform:rotate(0deg)} 25%{transform:rotate(5deg) translateY(-2px)} 50%{transform:rotate(-3deg)} 75%{transform:rotate(4deg)} 100%{transform:rotate(0deg)} }
@keyframes s2-flee  { 0%{transform:translateX(0) rotate(0deg)} 25%{transform:translateX(8px) rotate(-3deg)} 50%{transform:translateX(16px) rotate(2deg)} 75%{transform:translateX(24px) rotate(-1deg)} 100%{transform:translateX(32px) rotate(0deg)} }
@keyframes s2-whip  { 0%{transform:rotate(-10deg)} 25%{transform:rotate(30deg) scaleY(1.2)} 50%{transform:rotate(-5deg)} 75%{transform:rotate(20deg)} 100%{transform:rotate(-10deg)} }
@keyframes s2-flag  { 0%{transform:rotate(5deg)} 50%{transform:rotate(15deg)} 100%{transform:rotate(5deg)} }

/* companion-loss – sorrow */
.scn-companion-loss { background: linear-gradient(180deg, #a08060 0%, #4a3a2a 50%, #2a1a0a 100%), radial-gradient(ellipse at 50% 30%, #d4a373 0%, transparent 50%); }
.scn-companion-loss .bg-ground  { position:absolute; bottom:0; left:0; right:0; height:30%; background:linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%); }
.scn-companion-loss .old-man   { position:absolute; bottom:20%; left:50%; width:30px; height:60px; transform:translateX(-50%); background:linear-gradient(180deg, #1a0a00 0%, #0a0000 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom; animation:s3-old 6s ease-in-out infinite; }
.scn-companion-loss .stolen-bag { position:absolute; bottom:18%; left:42%; width:22px; height:18px; background:#6a4a2a; border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation:s3-bag 8s ease-in-out infinite; }
.scn-companion-loss .tear1     { position:absolute; bottom:45%; left:48%; width:4px; height:4px; background:rgba(200,220,255,0.8); border-radius:50%; animation:s3-tear 3s ease-in infinite; }
.scn-companion-loss .tear2     { position:absolute; bottom:45%; left:54%; width:3px; height:3px; background:rgba(200,220,255,0.7); border-radius:50%; animation:s3-tear2 3.5s ease-in infinite; }
.scn-companion-loss .tree-mourn { position:absolute; bottom:30%; left:20%; width:30px; height:80px; background:linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius:20% 20% 10% 10%; transform-origin:bottom; animation:s3-tree 12s ease-in-out infinite; }
.scn-companion-loss .light-ray { position:absolute; top:0; left:40%; width:20%; height:100%; background:linear-gradient(180deg, rgba(240,200,130,0.2) 0%, transparent 100%); animation:s3-ray 8s ease-in-out infinite alternate; }
.scn-companion-loss .shadow    { position:absolute; bottom:20%; left:40%; width:30px; height:10px; background:rgba(0,0,0,0.5); border-radius:50%; animation:s3-shadow 6s ease-in-out infinite; }
@keyframes s3-old   { 0%{transform:translateX(-50%) rotate(0deg)} 25%{transform:translateX(-50%) translateY(-3px) rotate(-2deg)} 50%{transform:translateX(-50%) rotate(4deg)} 75%{transform:translateX(-50%) translateY(-2px) rotate(-3deg)} 100%{transform:translateX(-50%) rotate(0deg)} }
@keyframes s3-bag   { 0%{transform:translateX(0) scale(1)} 25%{transform:translateX(10px) scale(0.9)} 50%{transform:translateX(20px) scale(0.8)} 75%{transform:translateX(30px) scale(0.7)} 100%{transform:translateX(40px) scale(0.6) rotate(10deg)} }
@keyframes s3-tear  { 0%{transform:translateY(0) scale(1); opacity:0.8} 50%{transform:translateY(20px) scale(0.6); opacity:0.4} 100%{transform:translateY(40px) scale(0.2); opacity:0} }
@keyframes s3-tear2 { 0%{transform:translateY(0) scale(1); opacity:0.7} 50%{transform:translateY(25px) scale(0.5); opacity:0.3} 100%{transform:translateY(50px) scale(0.1); opacity:0} }
@keyframes s3-tree  { 0%{transform:rotate(-3deg)} 50%{transform:rotate(3deg)} 100%{transform:rotate(-3deg)} }
@keyframes s3-ray   { 0%{opacity:0.3} 50%{opacity:0.7} 100%{opacity:0.4} }
@keyframes s3-shadow { 0%{transform:scaleX(1)} 50%{transform:scaleX(1.2)} 100%{transform:scaleX(1)} }

/* item-bible – warm reverence */
.scn-item-bible { background: linear-gradient(180deg, #f5d6a8 0%, #d4a373 50%, #b08040 100%), radial-gradient(ellipse at 50% 30%, #ffe0b0 0%, transparent 50%); }
.scn-item-bible .bg-warm   { position:absolute; inset:0; background:radial-gradient(circle at 50% 30%, rgba(255,230,150,0.4) 0%, transparent 70%); animation:s4-bg 10s ease-in-out infinite alternate; }
.scn-item-bible .table     { position:absolute; bottom:10%; left:20%; right:20%; height:20%; background:linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%); border-radius:10% 10% 0 0; box-shadow:inset 0 10px 20px rgba(0,0,0,0.3); }
.scn-item-bible .bible     { position:absolute; bottom:20%; left:50%; width:50px; height:40px; transform:translateX(-50%); background:linear-gradient(135deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:5px; box-shadow:0 4px 10px rgba(0,0,0,0.5); animation:s4-bible 6s ease-in-out infinite alternate; }
.scn-item-bible .hand      { position:absolute; bottom:30%; left:44%; width:16px; height:30px; background:linear-gradient(180deg, #c9a96e 0%, #8a6a4a 100%); border-radius:50% 50% 40% 40% / 50% 50% 40% 40%; transform-origin:bottom; animation:s4-hand 4s ease-in-out infinite; }
.scn-item-bible .coin1     { position:absolute; bottom:14%; left:38%; width:14px; height:14px; background:radial-gradient(circle, #f0d080 0%, #c9a06e 100%); border-radius:50%; animation:s4-coin1 5s ease-in-out infinite alternate; }
.scn-item-bible .coin2     { position:absolute; bottom:16%; left:58%; width:12px; height:12px; background:radial-gradient(circle, #f0d080 0%, #b89050 100%); border-radius:50%; animation:s4-coin2 5.5s ease-in-out infinite alternate; }
.scn-item-bible .light-beam { position:absolute; top:0; left:45%; width:10%; height:100%; background:linear-gradient(180deg, rgba(255,230,150,0.3) 0%, transparent 80%); animation:s4-beam 7s ease-in-out infinite alternate; }
.scn-item-bible .glow      { position:absolute; bottom:22%; left:50%; width:50px; height:40px; transform:translateX(-50%); border-radius:5px; box-shadow:0 0 30px 10px rgba(255,200,80,0.5); animation:s4-glow 4s ease-in-out infinite alternate; }
@keyframes s4-bg   { 0%{opacity:0.7} 50%{opacity:1} 100%{opacity:0.8} }
@keyframes s4-bible { 0%{transform:translateX(-50%) rotate(0deg); box-shadow:0 4px 10px rgba(0,0,0,0.5)} 50%{transform:translateX(-50%) rotate(2deg) scale(1.02); box-shadow:0 6px 20px rgba(0,0,0,0.3)} 100%{transform:translateX(-50%) rotate(0deg); box-shadow:0 4px 10px rgba(0,0,0,0.5)} }
@keyframes s4-hand { 0%{transform:translateX(0) rotate(-5deg)} 50%{transform:translateX(12px) rotate(10deg) scale(1.1)} 100%{transform:translateX(0) rotate(-5deg)} }
@keyframes s4-coin1 { 0%{transform:scale(1) rotate(0deg)} 50%{transform:scale(1.1) rotate(15deg)} 100%{transform:scale(1) rotate(0deg)} }
@keyframes s4-coin2 { 0%{transform:scale(1) rotate(0deg)} 50%{transform:scale(0.9) rotate(-20deg)} 100%{transform:scale(1) rotate(0deg)} }
@keyframes s4-beam { 0%{opacity:0.3; transform:scaleY(1)} 50%{opacity:0.6; transform:scaleY(1.05)} 100%{opacity:0.4; transform:scaleY(0.95)} }
@keyframes s4-glow { 0%{box-shadow:0 0 20px 5px rgba(255,200,80,0.3)} 50%{box-shadow:0 0 40px 15px rgba(255,200,80,0.6)} 100%{box-shadow:0 0 20px 5px rgba(255,200,80,0.3)} }

/* benin-priests */
.scn-benin-priests { background: linear-gradient(180deg, #87ceeb 0%, #f0e68c 100%), radial-gradient(ellipse at 50% 100%, #f0e68c 0%, transparent 70%); }
.scn-benin-priests .sky   { position:absolute; inset:0; background: linear-gradient(180deg, #b0e0e6 0%, #f5f5dc 100%); animation: bp-sky 12s ease-in-out infinite alternate; }
.scn-benin-priests .sun   { position:absolute; top:10%; left:70%; width:60px; height:60px; background: radial-gradient(circle, #ffd700 0%, #ff8c00 50%, transparent 70%); border-radius:50%; box-shadow: 0 0 40px #ffa500; animation: bp-sun 8s ease-in-out infinite alternate; }
.scn-benin-priests .temple{ position:absolute; bottom:20%; left:30%; width:200px; height:150px; background: linear-gradient(180deg, #deb887 0%, #d2b48c 100%); border-radius:5% 5% 0 0; box-shadow: 0 -10px 20px rgba(0,0,0,0.2); }
.scn-benin-priests .col-left{ position:absolute; bottom:20%; left:35%; width:20px; height:120px; background: linear-gradient(180deg, #cdaa7d 0%, #a0855b 100%); border-radius:10% 10% 0 0; }
.scn-benin-priests .col-right{ position:absolute; bottom:20%; left:55%; width:20px; height:120px; background: linear-gradient(180deg, #cdaa7d 0%, #a0855b 100%); border-radius:10% 10% 0 0; }
.scn-benin-priests .priest{ position:absolute; bottom:20%; left:45%; width:40px; height:80px; background: linear-gradient(180deg, #8b4513 0%, #5c3a1e 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: bp-priest 6s ease-in-out infinite; }
.scn-benin-priests .beard { position:absolute; bottom:35%; left:45%; width:12px; height:20px; background: #f5deb3; border-radius:50% 50% 0% 0%; transform-origin: top center; animation: bp-beard 4s ease-in-out infinite; }
.scn-benin-priests .altar { position:absolute; bottom:15%; left:40%; width:80px; height:15px; background: #8b7355; border-radius:10%; box-shadow: 0 5px 10px rgba(0,0,0,0.3); }
.scn-benin-priests .smoke { position:absolute; bottom:50%; left:48%; width:10px; height:30px; background: rgba(255,255,255,0.3); border-radius:50%; filter: blur(4px); animation: bp-smoke 5s ease-in-out infinite; }
@keyframes bp-sky   { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes bp-sun   { 0% { transform:scale(1); box-shadow:0 0 40px #ffa500 } 50% { transform:scale(1.1); box-shadow:0 0 60px #ffa500 } 100% { transform:scale(1); box-shadow:0 0 40px #ffa500 } }
@keyframes bp-priest{ 0% { transform:translateY(0) } 50% { transform:translateY(-2px) } 100% { transform:translateY(0) } }
@keyframes bp-beard { 0% { transform:rotate(0deg) } 50% { transform:rotate(5deg) } 100% { transform:rotate(0deg) } }
@keyframes bp-smoke { 0% { transform:translateY(0) scale(1); opacity:.5 } 50% { transform:translateY(-10px) scale(1.5); opacity:.2 } 100% { transform:translateY(0) scale(1); opacity:.5 } }

/* benin-magicians-funerals */
.scn-benin-magicians-funerals { background: linear-gradient(180deg, #2c1a3d 0%, #1a0f1e 50%, #0d060e 100%), radial-gradient(ellipse at 50% 0%, #3a2a5e 0%, transparent 60%); }
.scn-benin-magicians-funerals .dusk-sky  { position:absolute; inset:0; background: linear-gradient(180deg, #4a3a6e 0%, #1a1a3e 50%, #0a0a1a 100%); animation: bf-dusk 30s linear infinite alternate; }
.scn-benin-magicians-funerals .moon      { position:absolute; top:8%; left:70%; width:40px; height:40px; background: radial-gradient(circle, #e0e0ff 0%, #a0a0c0 40%, transparent 60%); border-radius:50%; box-shadow: 0 0 30px #b0b0ff; animation: bf-moon 12s ease-in-out infinite alternate; }
.scn-benin-magicians-funerals .torch-left{ position:absolute; bottom:30%; left:20%; width:6px; height:40px; background: #4a2a1a; border-radius:2px; }
.scn-benin-magicians-funerals .torch-left::after { content:''; position:absolute; top:-15px; left:-4px; width:14px; height:20px; background: radial-gradient(circle, #ff8c00 0%, #ff4500 40%, transparent 70%); border-radius:50%; animation: bf-torch-flicker 0.5s ease-in-out infinite alternate; }
.scn-benin-magicians-funerals .torch-right{ position:absolute; bottom:30%; right:20%; width:6px; height:40px; background: #4a2a1a; border-radius:2px; }
.scn-benin-magicians-funerals .torch-right::after { content:''; position:absolute; top:-15px; left:-4px; width:14px; height:20px; background: radial-gradient(circle, #ff8c00 0%, #ff4500 40%, transparent 70%); border-radius:50%; animation: bf-torch-flicker 0.5s ease-in-out infinite alternate 0.25s; }
.scn-benin-magicians-funerals .coffin    { position:absolute; bottom:10%; left:45%; width:80px; height:25px; background: linear-gradient(180deg, #5c3a2e 0%, #3a2218 100%); border-radius:10%; transform-origin: bottom center; animation: bf-coffin 20s ease-in-out infinite; }
.scn-benin-magicians-funerals .mourner-a { position:absolute; bottom:15%; left:30%; width:20px; height:40px; background: #1a1a2e; border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: bf-mourner 8s ease-in-out infinite; }
.scn-benin-magicians-funerals .mourner-b { position:absolute; bottom:15%; right:30%; width:20px; height:40px; background: #1a1a2e; border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: bf-mourner 8s ease-in-out infinite 4s; }
.scn-benin-magicians-funerals .smoke     { position:absolute; bottom:50%; left:40%; width:30px; height:30px; background: rgba(100,100,100,0.3); border-radius:50%; filter: blur(8px); animation: bf-smoke 15s linear infinite; }
@keyframes bf-dusk         { 0% { opacity:1 } 100% { opacity:.6 } }
@keyframes bf-moon         { 0% { transform:translateY(0) scale(1); opacity:.8 } 50% { transform:translateY(-3px) scale(1.1); opacity:1 } 100% { transform:translateY(0) scale(1); opacity:.8 } }
@keyframes bf-torch-flicker{ 0% { transform:scale(1); opacity:.8 } 50% { transform:scale(1.2) rotate(5deg); opacity:1 } 100% { transform:scale(1); opacity:.8 } }
@keyframes bf-coffin       { 0% { transform:translateY(0) } 50% { transform:translateY(-2px) } 100% { transform:translateY(0) } }
@keyframes bf-mourner      { 0% { transform:translateY(0) rotate(0deg) } 50% { transform:translateY(-2px) rotate(2deg) } 100% { transform:translateY(0) rotate(0deg) } }
@keyframes bf-smoke        { 0% { transform:translateX(0) translateY(0) scale(1); opacity:.3 } 50% { transform:translateX(10px) translateY(-10px) scale(2); opacity:.1 } 100% { transform:translateX(0) translateY(0) scale(1); opacity:.3 } }

/* benin-poison-story */
.scn-benin-poison-story { background: linear-gradient(180deg, #fdd835 0%, #ffb300 50%, #ff8f00 100%), radial-gradient(ellipse at 50% 0%, #fff176 0%, transparent 60%); }
.scn-benin-poison-story .sun-blaze     { position:absolute; top:5%; left:50%; width:80px; height:80px; background: radial-gradient(circle, #fff9c4 0%, #ffd54f 30%, transparent 60%); border-radius:50%; box-shadow: 0 0 60px #ffb300; animation: bs-sun 10s ease-in-out infinite alternate; }
.scn-benin-poison-story .ground        { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #8d6e63 0%, #6d4c41 100%); }
.scn-benin-poison-story .stretcher     { position:absolute; bottom:30%; left:30%; width:120px; height:20px; background: #4e342e; border-radius:5px; transform-origin: center; animation: bs-stretcher 4s ease-in-out infinite; }
.scn-benin-poison-story .body          { position:absolute; bottom:30%; left:35%; width:50px; height:60px; background: linear-gradient(180deg, #8d6e63 0%, #5d4037 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bs-body 4s ease-in-out infinite; }
.scn-benin-poison-story .bearer-left   { position:absolute; bottom:28%; left:20%; width:18px; height:50px; background: #3e2723; border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: bs-bearer 2s ease-in-out infinite; }
.scn-benin-poison-story .bearer-right  { position:absolute; bottom:28%; right:20%; width:18px; height:50px; background: #3e2723; border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: bs-bearer 2s ease-in-out infinite 1s; }
.scn-benin-poison-story .hut          { position:absolute; bottom:35%; right:15%; width:60px; height:40px; background: #a1887f; border-radius:10% 10% 0 0; box-shadow: 0 -5px 10px rgba(0,0,0,0.2); }
.scn-benin-poison-story .shadow       { position:absolute; bottom:25%; left:25%; width:130px; height:10px; background: rgba(0,0,0,0.3); border-radius:50%; animation: bs-shadow 4s ease-in-out infinite; }
@keyframes bs-sun      { 0% { transform:scale(1); opacity:.9 } 50% { transform:scale(1.05); opacity:1 } 100% { transform:scale(1); opacity:.9 } }
@keyframes bs-stretcher{ 0% { transform:rotate(-2deg) translateY(0) } 50% { transform:rotate(2deg) translateY(-2px) } 100% { transform:rotate(-2deg) translateY(0) } }
@keyframes bs-body     { 0% { transform:translateY(0) } 50% { transform:translateY(-3px) } 100% { transform:translateY(0) } }
@keyframes bs-bearer   { 0% { transform:translateY(0) } 50% { transform:translateY(-2px) } 100% { transform:translateY(0) } }
@keyframes bs-shadow   { 0% { transform:scale(1) translateX(0); opacity:.3 } 50% { transform:scale(1.2) translateX(5px); opacity:.2 } 100% { transform:scale(1) translateX(0); opacity:.3 } }

/* benin-omens */
.scn-benin-omens { background: linear-gradient(180deg, #1a1a2e 0%, #0d0d1a 50%, #05050a 100%), radial-gradient(ellipse at 50% 80%, #1a1a3e 0%, transparent 60%); }
.scn-benin-omens .night-interior{ position:absolute; inset:0; background: linear-gradient(180deg, #0a0a14 0%, #141428 100%); animation: bo-night 20s linear infinite alternate; }
.scn-benin-omens .floor         { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #2c2c3e 0%, #1a1a2e 100%); }
.scn-benin-omens .wall          { position:absolute; top:0; left:10%; right:10%; bottom:30%; background: linear-gradient(180deg, #1a1a2e 0%, #252540 100%); border-radius:5%; }
.scn-benin-omens .lamp          { position:absolute; top:20%; left:50%; width:10px; height:20px; background: #8b7355; border-radius:20% 20% 10% 10%; box-shadow: 0 0 30px #ffcc80, 0 0 60px rgba(255,200,128,0.3); animation: bo-lamp 5s ease-in-out infinite alternate; }
.scn-benin-omens .snake-a       { position:absolute; bottom:35%; left:30%; width:15px; height:60px; background: linear-gradient(180deg, #2e7d32 0%, #1b5e20 100%); border-radius:50% 50% 0% 0%; transform-origin: bottom center; animation: bo-snake-a 10s ease-in-out infinite; }
.scn-benin-omens .snake-b       { position:absolute; bottom:35%; right:30%; width:15px; height:60px; background: linear-gradient(180deg, #2e7d32 0%, #1b5e20 100%); border-radius:50% 50% 0% 0%; transform-origin: bottom center; animation: bo-snake-b 12s ease-in-out infinite; }
.scn-benin-omens .figure-touch  { position:absolute; bottom:30%; left:45%; width:25px; height:50px; background: #1a1a2e; border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: bo-figure 8s ease-in-out infinite; }
.scn-benin-omens .figure-touch::after { content:''; position:absolute; top:0; left:100%; width:15px; height:5px; background: #1a1a2e; border-radius:50%; transform-origin: left center; animation: bo-arm 1s ease-in-out infinite alternate; }
.scn-benin-omens .shadow-props  { position:absolute; bottom:20%; left:20%; width:10px; height:10px; background: rgba(0,0,0,0.5); border-radius:50%; filter: blur(6px); animation: bo-shadow 4s ease-in-out infinite; }
@keyframes bo-night  { 0% { opacity:.9 } 100% { opacity:.7 } }
@keyframes bo-lamp   { 0% { box-shadow: 0 0 20px #ffcc80, 0 0 40px rgba(255,200,128,0.2) } 50% { box-shadow: 0 0 40px #ffcc80, 0 0 80px rgba(255,200,128,0.4) } 100% { box-shadow: 0 0 20px #ffcc80, 0 0 40px rgba(255,200,128,0.2) } }
@keyframes bo-snake-a{ 0% { transform:rotate(-10deg) translateY(0) } 50% { transform:rotate(10deg) translateY(-2px) } 100% { transform:rotate(-10deg) translateY(0) } }
@keyframes bo-snake-b{ 0% { transform:rotate(10deg) translateY(0) } 50% { transform:rotate(-10deg) translateY(-2px) } 100% { transform:rotate(10deg) translateY(0) } }
@keyframes bo-figure { 0% { transform:translateY(0) rotate(-2deg) } 50% { transform:translateY(-1px) rotate(2deg) } 100% { transform:translateY(0) rotate(-2deg) } }
@keyframes bo-arm    { 0% { transform:rotate(0deg) } 100% { transform:rotate(30deg) } }
@keyframes bo-shadow { 0% { opacity:.3 } 50% { opacity:.5 } 100% { opacity:.3 } }

.scn-my-management {
  background:
    linear-gradient(180deg, #f0c040 0%, #fff8dc 40%, #f5deb3 70%),
    radial-gradient(ellipse at 70% 10%, #fff8dc 0%, transparent 60%);
}
.scn-my-management .sky {
  position: absolute;
  inset: 0 0 50% 0;
  background: linear-gradient(180deg, #87ceeb 0%, transparent 100%);
  opacity: 0.5;
  animation: mm-sky 10s ease-in-out infinite alternate;
}
.scn-my-management .ground {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 50%;
  background: linear-gradient(180deg, #deb887 0%, #8b4513 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
  animation: mm-ground 15s ease-in-out infinite alternate;
}
.scn-my-management .house {
  position: absolute;
  bottom: 35%;
  left: 20%;
  width: 60px;
  height: 40px;
  background: linear-gradient(180deg, #c8a060 0%, #a08040 100%);
  border-radius: 4px;
  box-shadow: 2px 2px 10px rgba(0,0,0,0.3);
  animation: mm-house 8s ease-in-out infinite;
}
.scn-my-management .tree {
  position: absolute;
  bottom: 38%;
  left: 70%;
  width: 12px;
  height: 60px;
  background: linear-gradient(180deg, #6b4226 0%, #3e2a1a 100%);
  border-radius: 50% 50% 40% 40% / 20% 20% 40% 40%;
  transform-origin: bottom center;
  animation: mm-tree 6s ease-in-out infinite;
}
.scn-my-management .figure-manager {
  position: absolute;
  bottom: 20%;
  left: 35%;
  width: 14px;
  height: 40px;
  background: linear-gradient(180deg, #f0e68c 0%, #b8860b 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mm-walk 4s ease-in-out infinite;
}
.scn-my-management .figure-worker {
  position: absolute;
  bottom: 18%;
  left: 55%;
  width: 14px;
  height: 30px;
  background: linear-gradient(180deg, #8b4513 0%, #5a3010 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mm-work 5s ease-in-out infinite;
}
@keyframes mm-sky { 0% { opacity: 0.3; } 50% { opacity: 0.6; } 100% { opacity: 0.4; } }
@keyframes mm-ground { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes mm-house { 0%,100% { transform: translateY(0) scale(1); } 50% { transform: translateY(-1px) scale(1.02); } }
@keyframes mm-tree { 0%,100% { transform: rotate(0deg); } 25% { transform: rotate(2deg); } 75% { transform: rotate(-2deg); } }
@keyframes mm-walk { 0% { transform: translateX(0) rotate(-1deg); } 25% { transform: translateX(8px) rotate(0deg); } 50% { transform: translateX(16px) rotate(1deg); } 75% { transform: translateX(8px) rotate(0deg); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes mm-work { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-3px) rotate(2deg); } 60% { transform: translateY(0) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }

.scn-decrease-need {
  background:
    linear-gradient(180deg, #4a2a0a 0%, #8b4513 30%, #d2691e 60%, #ffa500 100%),
    radial-gradient(ellipse at 50% 0%, #ffa500 0%, transparent 70%);
}
.scn-decrease-need .sky {
  position: absolute;
  inset: 0 0 40% 0;
  background: linear-gradient(180deg, #ff7f50 0%, transparent 100%);
  opacity: 0.3;
  animation: dn-sky 12s ease-in-out infinite alternate;
}
.scn-decrease-need .ground {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 60%;
  background: linear-gradient(180deg, #3e1a0a 0%, #1a0a00 100%);
  border-radius: 10% 10% 0 0 / 20% 20% 0 0;
  animation: dn-ground 20s ease-in-out infinite alternate;
}
.scn-decrease-need .cross1, .scn-decrease-need .cross2, .scn-decrease-need .cross3 {
  position: absolute;
  bottom: 30%;
  width: 6px;
  height: 50px;
  background: linear-gradient(180deg, #654321 0%, #2a1a0a 100%);
  border-radius: 2px;
}
.scn-decrease-need .cross1 { left: 30%; height: 50px; animation: dn-cross1 10s ease-in-out infinite; }
.scn-decrease-need .cross2 { left: 50%; height: 60px; animation: dn-cross2 12s ease-in-out infinite; }
.scn-decrease-need .cross3 { left: 70%; height: 45px; animation: dn-cross3 14s ease-in-out infinite; }
.scn-decrease-need .figure-mourner {
  position: absolute;
  bottom: 20%;
  left: 40%;
  width: 16px;
  height: 35px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0000 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dn-mourn 8s ease-in-out infinite;
}
.scn-decrease-need .dead-tree {
  position: absolute;
  bottom: 35%;
  left: 20%;
  width: 8px;
  height: 70px;
  background: linear-gradient(180deg, #4a2a0a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 10% 10% 40% 40%;
  transform-origin: bottom center;
  animation: dn-tree 15s ease-in-out infinite;
}
@keyframes dn-sky { 0% { opacity: 0.2; } 50% { opacity: 0.5; } 100% { opacity: 0.3; } }
@keyframes dn-ground { 0% { transform: translateY(0); } 50% { transform: translateY(1px); } 100% { transform: translateY(0); } }
@keyframes dn-cross1 { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(2deg); } }
@keyframes dn-cross2 { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(-3deg); } }
@keyframes dn-cross3 { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(1px) rotate(1deg); } }
@keyframes dn-mourn { 0%,100% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-3px) rotate(5deg); } 75% { transform: translateY(-1px) rotate(-5deg); } }
@keyframes dn-tree { 0%,100% { transform: rotate(0deg); } 25% { transform: rotate(3deg); } 75% { transform: rotate(-3deg); } }

.scn-barbadoes-statistics {
  background:
    linear-gradient(135deg, #8b5a2b 0%, #654321 50%, #4a2a0a 100%),
    radial-gradient(ellipse at 60% 40%, #deb887 0%, transparent 70%);
}
.scn-barbadoes-statistics .wall {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, #b5885a 0%, #7a4a2a 100%);
  opacity: 0.8;
  animation: bs-wall 20s ease-in-out infinite alternate;
}
.scn-barbadoes-statistics .desk {
  position: absolute;
  bottom: 20%;
  left: 20%;
  right: 20%;
  height: 10%;
  background: linear-gradient(180deg, #6b3a1a 0%, #3e2000 100%);
  border-radius: 4px;
  box-shadow: 0 -2px 10px rgba(0,0,0,0.5);
  animation: bs-desk 10s ease-in-out infinite;
}
.scn-barbadoes-statistics .figure-clerk {
  position: absolute;
  bottom: 30%;
  left: 30%;
  width: 16px;
  height: 35px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0000 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bs-clerk 5s ease-in-out infinite;
}
.scn-barbadoes-statistics .paper {
  position: absolute;
  bottom: 25%;
  left: 35%;
  width: 40px;
  height: 30px;
  background: linear-gradient(135deg, #f5deb3 0%, #d2b48c 100%);
  border-radius: 2px;
  box-shadow: 1px 1px 5px rgba(0,0,0,0.3);
  animation: bs-paper 8s ease-in-out infinite;
}
.scn-barbadoes-statistics .window {
  position: absolute;
  top: 15%;
  right: 10%;
  width: 60px;
  height: 80px;
  background: linear-gradient(180deg, #87ceeb 0%, #b0e0e6 100%);
  border: 4px solid #5a3a1a;
  border-radius: 4px;
  opacity: 0.6;
  animation: bs-window 12s ease-in-out infinite alternate;
}
.scn-barbadoes-statistics .sunbeam {
  position: absolute;
  top: 15%;
  right: 10%;
  width: 30px;
  height: 120px;
  background: linear-gradient(180deg, rgba(255,255,200,0.8) 0%, transparent 100%);
  transform: rotate(20deg);
  transform-origin: top left;
  mix-blend-mode: screen;
  animation: bs-sunbeam 8s ease-in-out infinite;
}
@keyframes bs-wall { 0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.8; } }
@keyframes bs-desk { 0%,100% { transform: translateY(0); } 50% { transform: translateY(1px); } }
@keyframes bs-clerk { 0%,100% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-2px) rotate(3deg); } 60% { transform: translateY(0) rotate(-2deg); } }
@keyframes bs-paper { 0%,100% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(3px) rotate(2deg); } }
@keyframes bs-window { 0% { opacity: 0.4; } 50% { opacity: 0.8; } 100% { opacity: 0.6; } }
@keyframes bs-sunbeam { 0% { opacity: 0.2; transform: rotate(15deg); } 50% { opacity: 0.6; transform: rotate(25deg); } 100% { opacity: 0.3; transform: rotate(20deg); } }

.scn-life-expectancy {
  background:
    linear-gradient(180deg, #2a1a0a 0%, #5a3a1a 30%, #8b5a2b 60%, #d2b48c 100%),
    radial-gradient(ellipse at 50% 20%, #f5deb3 0%, transparent 60%);
}
.scn-life-expectancy .sky {
  position: absolute;
  inset: 0 0 50% 0;
  background: linear-gradient(180deg, #87ceeb 0%, transparent 100%);
  opacity: 0.2;
  animation: le-sky 15s ease-in-out infinite alternate;
}
.scn-life-expectancy .hourglass-top {
  position: absolute;
  top: 15%;
  left: 50%;
  width: 60px;
  height: 40px;
  background: linear-gradient(180deg, #b8860b 0%, #8b4513 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  transform: translateX(-50%);
  box-shadow: 0 0 15px rgba(0,0,0,0.5);
  animation: le-hourglass 12s ease-in-out infinite;
}
.scn-life-expectancy .hourglass-bottom {
  position: absolute;
  top: 35%;
  left: 50%;
  width: 60px;
  height: 40px;
  background: linear-gradient(180deg, #8b4513 0%, #5a3010 100%);
  border-radius: 0 0 50% 50% / 0 0 80% 80%;
  transform: translateX(-50%);
  box-shadow: 0 5px 15px rgba(0,0,0,0.5);
  animation: le-hourglass 12s ease-in-out infinite reverse;
}
.scn-life-expectancy .sand-stream {
  position: absolute;
  top: 31%;
  left: 50%;
  width: 4px;
  height: 30px;
  background: linear-gradient(180deg, #d2b48c 0%, #f5deb3 100%);
  transform: translateX(-50%);
  animation: le-sand 5s ease-in-out infinite;
}
.scn-life-expectancy .figure-child {
  position: absolute;
  bottom: 15%;
  left: 30%;
  width: 12px;
  height: 20px;
  background: linear-gradient(180deg, #c8a060 0%, #8b4513 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: le-child 8s ease-in-out infinite;
}
.scn-life-expectancy .candle {
  position: absolute;
  bottom: 10%;
  left: 60%;
  width: 10px;
  height: 50px;
  background: linear-gradient(180deg, #f5deb3 0%, #d2b48c 50%, #8b4513 100%);
  border-radius: 2px;
  box-shadow: 0 0 10px #ffd700;
  animation: le-candle 6s ease-in-out infinite;
}
@keyframes le-sky { 0% { opacity: 0.1; } 50% { opacity: 0.3; } 100% { opacity: 0.2; } }
@keyframes le-hourglass { 0%,100% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.02); } }
@keyframes le-sand { 0% { height: 20px; opacity: 1; } 50% { height: 30px; opacity: 0.8; } 100% { height: 25px; opacity: 1; } }
@keyframes le-child { 0%,100% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(2px) rotate(5deg); } 70% { transform: translateY(-1px) rotate(-3deg); } }
@keyframes le-candle { 0%,100% { height: 50px; opacity: 0.8; } 50% { height: 45px; opacity: 1; } }

.scn-stratagem-columbus {
  background: linear-gradient(180deg, #7fc0f0 0%, #f5d76e 70%, #f0c040 100%), radial-gradient(ellipse at 60% 20%, #fff6 0%, transparent 60%);
}
.scn-stratagem-columbus .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #9fd4ff 0%, transparent 100%); animation: sc-sky 8s ease-in-out infinite; }
.scn-stratagem-columbus .sun { position:absolute; top:8%; left:15%; width:60px; height:60px; border-radius:50%; background: radial-gradient(circle, #ffe680 0%, #ffb347 40%, transparent 70%); box-shadow: 0 0 40px 15px #ffb347; animation: sc-sun 12s ease-in-out infinite alternate; }
.scn-stratagem-columbus .cloud { position:absolute; width:120px; height:24px; background: rgba(255,255,255,0.7); border-radius:50%; filter:blur(4px); }
.scn-stratagem-columbus .cloud-a { top:12%; left:20%; animation: sc-cloud-drift 30s linear infinite; }
.scn-stratagem-columbus .cloud-b { top:22%; left:60%; width:80px; height:18px; animation: sc-cloud-drift 40s linear infinite reverse; animation-delay: -10s; }
.scn-stratagem-columbus .hills { position:absolute; bottom:30%; left:0; right:0; height:20%; background: linear-gradient(180deg, #5d8148 0%, #3d5a28 100%); border-radius: 40% 60% 0 0 / 80% 70% 0 0; animation: sc-hills 6s ease-in-out infinite; }
.scn-stratagem-columbus .figure { position:absolute; bottom:28%; left:48%; width:30px; height:80px; background: #2c2c2c; border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sc-figure 4s ease-in-out infinite; }
.scn-stratagem-columbus .hand { position:absolute; bottom:55%; left:50%; width:8px; height:30px; background: #2c2c2c; border-radius:40% 40% 20% 20%; transform-origin: bottom center; transform: rotate(-30deg); animation: sc-hand 3s ease-in-out infinite alternate; }
.scn-stratagem-columbus .ground { position:absolute; bottom:0; left:0; right:0; height:28%; background: linear-gradient(180deg, #4a6a2a 0%, #2a3a1a 100%); }
@keyframes sc-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes sc-sun { 0% { transform:scale(0.95); opacity:0.8 } 50% { transform:scale(1.05); opacity:1 } 100% { transform:scale(0.98); opacity:0.85 } }
@keyframes sc-cloud-drift { 0% { transform: translateX(-100px) } 50% { transform: translateX(50vw) } 100% { transform: translateX(calc(100vw + 100px)) } }
@keyframes sc-hills { 0% { transform:translateY(0) } 50% { transform:translateY(-2px) } 100% { transform:translateY(0) } }
@keyframes sc-figure { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-3px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes sc-hand { 0% { transform: rotate(-40deg) } 50% { transform: rotate(-30deg) } 100% { transform: rotate(-20deg) } }

.scn-dryckbot-feast {
  background: linear-gradient(135deg, #f9d976 0%, #e8b34a 40%, #c48a28 100%), radial-gradient(ellipse at 50% 50%, #f9e6b3 0%, transparent 60%);
}
.scn-dryckbot-feast .table { position:absolute; bottom:10%; left:10%; width:80%; height:50%; background: linear-gradient(180deg, #a07840 0%, #6d4a1c 100%); border-radius:20px; box-shadow: 0 4px 20px rgba(0,0,0,0.3); }
.scn-dryckbot-feast .calabash { position:absolute; width:40px; height:40px; border-radius:50%; background: linear-gradient(135deg, #c9a86c 0%, #8c6a30 100%); box-shadow: inset 0 -4px 6px rgba(0,0,0,0.2); animation: db-calabash 5s ease-in-out infinite; }
.scn-dryckbot-feast .cala-left { top:25%; left:20%; }
.scn-dryckbot-feast .cala-right { top:25%; right:20%; animation-delay:-2.5s; }
.scn-dryckbot-feast .pineapple { position:absolute; width:50px; height:70px; border-radius:40% 40% 30% 30%; background: linear-gradient(180deg, #e6b800 0%, #b38a00 100%); box-shadow: 0 2px 10px rgba(0,0,0,0.2); animation: db-pineapple 7s ease-in-out infinite; }
.scn-dryckbot-feast .pine-left { top:30%; left:35%; }
.scn-dryckbot-feast .pine-right { top:20%; right:30%; animation-delay:-3.5s; }
.scn-dryckbot-feast .leaf { position:absolute; width:20px; height:10px; background: #4a7a2a; border-radius:50% 50% 0 0; transform-origin: bottom center; }
.scn-dryckbot-feast .leaf-a { top:15%; left:32%; transform: rotate(-20deg); animation: db-leaf 4s ease-in-out infinite alternate; }
.scn-dryckbot-feast .leaf-b { top:12%; right:28%; transform: rotate(20deg); animation: db-leaf 4s ease-in-out infinite alternate reverse; animation-delay:-2s; }
.scn-dryckbot-feast .drop { position:absolute; top:45%; left:45%; width:8px; height:8px; border-radius:50%; background: #ffe680; box-shadow: 0 0 10px 4px #ffe680; animation: db-drop 2s ease-in-out infinite; }
@keyframes db-calabash { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-2px) scale(1.02) } 100% { transform: translateY(0) scale(1) } }
@keyframes db-pineapple { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-3px) rotate(2deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes db-leaf { 0% { transform: rotate(-30deg) } 50% { transform: rotate(-10deg) } 100% { transform: rotate(10deg) } }
@keyframes db-drop { 0% { opacity:0.3; transform:scale(0.8) } 50% { opacity:0.7; transform:scale(1) } 100% { opacity:0.9; transform:scale(1.2) } }

.scn-alligator-feast {
  background: linear-gradient(180deg, #6db3f2 0%, #f0d878 60%, #d4a84a 100%), radial-gradient(ellipse at 30% 80%, #fff6 0%, transparent 50%);
}
.scn-alligator-feast .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #9fd4ff 0%, transparent 100%); }
.scn-alligator-feast .ground { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #6a8a3a 0%, #3a5a1a 100%); }
.scn-alligator-feast .tree { position:absolute; bottom:35%; left:15%; width:20px; height:120px; background: linear-gradient(180deg, #5a3a1a 0%, #3a1a0a 100%); border-radius:10px; }
.scn-alligator-feast .alligator { position:absolute; bottom:25%; left:30%; width:100px; height:20px; background: linear-gradient(180deg, #4a6a2a 0%, #2a4a1a 100%); border-radius:40% 20% 20% 40%; box-shadow: 0 2px 6px rgba(0,0,0,0.3); animation: af-alligator 8s ease-in-out infinite; }
.scn-alligator-feast .dancer { position:absolute; width:24px; height:60px; background:#2c2c2c; border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; }
.scn-alligator-feast .dancer-a { bottom:20%; left:50%; animation: af-dance 2s ease-in-out infinite; }
.scn-alligator-feast .dancer-b { bottom:22%; left:65%; animation: af-dance 2s ease-in-out infinite reverse; animation-delay:-1s; }
.scn-alligator-feast .sun { position:absolute; top:8%; right:15%; width:50px; height:50px; border-radius:50%; background: radial-gradient(circle, #ffe680 0%, #ffb347 40%, transparent 70%); box-shadow: 0 0 30px 10px #ffb347; animation: af-sun 10s ease-in-out infinite alternate; }
@keyframes af-alligator { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(5px) rotate(2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes af-dance { 0% { transform: translateY(0) rotate(-5deg) } 25% { transform: translateY(-4px) rotate(5deg) } 50% { transform: translateY(-2px) rotate(-2deg) } 75% { transform: translateY(-4px) rotate(4deg) } 100% { transform: translateY(0) rotate(-3deg) } }
@keyframes af-sun { 0% { transform: scale(0.9); opacity:0.8 } 50% { transform: scale(1.05); opacity:1 } 100% { transform: scale(0.95); opacity:0.9 } }

.scn-owden-feast {
  background: linear-gradient(180deg, #0a0a1a 0%, #1a0a0a 60%, #2a1a0a 100%), radial-gradient(ellipse at 50% 80%, #ff7f2a 0%, transparent 70%);
}
.scn-owden-feast .night-bg { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 90%, #1a0a00 0%, transparent 70%); animation: of-night 8s ease-in-out infinite alternate; }
.scn-owden-feast .fire { position:absolute; bottom:15%; left:50%; width:60px; height:80px; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 0%, #ff7f00 0%, #ff3a00 40%, transparent 70%); border-radius:50% 50% 30% 30%; animation: of-fire 1.5s ease-in-out infinite; }
.scn-owden-feast .pine-tree { position:absolute; bottom:20%; width:30px; height:100px; background: linear-gradient(180deg, #1a1a0a 0%, #0a0a00 100%); clip-path: polygon(50% 0%, 0% 100%, 100% 100%); }
.scn-owden-feast .left { left:10%; }
.scn-owden-feast .right { right:10%; transform: scaleX(-1); }
.scn-owden-feast .figure { position:absolute; bottom:15%; left:42%; width:40px; height:90px; background:#1a1a1a; border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: of-figure 6s ease-in-out infinite; }
.scn-owden-feast .headpiece { position:absolute; bottom:85%; left:42%; width:30px; height:40px; background: linear-gradient(180deg, #5a3a1a 0%, #2a1a0a 100%); clip-path: polygon(50% 0%, 0% 100%, 100% 100%); transform-origin: bottom center; animation: of-headpiece 4s ease-in-out infinite alternate; }
.scn-owden-feast .ground { position:absolute; bottom:0; left:0; right:0; height:15%; background: linear-gradient(180deg, #2a1a0a 0%, #0a0a00 100%); }
.scn-owden-feast .shadow { position:absolute; bottom:15%; left:35%; width:120px; height:20px; background: rgba(0,0,0,0.4); border-radius:50%; filter:blur(4px); animation: of-shadow 6s ease-in-out infinite; }
@keyframes of-night { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes of-fire { 0% { transform:translateX(-50%) scale(1) rotate(0deg); opacity:0.9 } 25% { transform:translateX(-50%) scale(1.1) rotate(3deg); opacity:1 } 50% { transform:translateX(-50%) scale(0.95) rotate(-2deg); opacity:0.8 } 75% { transform:translateX(-50%) scale(1.05) rotate(1deg); opacity:1 } 100% { transform:translateX(-50%) scale(1) rotate(0deg); opacity:0.9 } }
@keyframes of-figure { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes of-headpiece { 0% { transform: rotate(-5deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(-5deg) } }
@keyframes of-shadow { 0% { transform: scale(1) translateX(0) } 50% { transform: scale(1.1) translateX(5px) } 100% { transform: scale(1) translateX(0) } }

.scn-guernsey-family {
  background:
    linear-gradient(180deg, #d4a373 0%, #c28a5c 40%, #a06a3e 100%),
    radial-gradient(ellipse at 30% 20%, #ffd6a5 0%, transparent 60%);
  overflow: hidden;
}
.scn-guernsey-family .wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(90deg, #c28a5c 0%, #d9b38c 30%, #c28a5c 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,0.15);
}
.scn-guernsey-family .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #8b5e34 0%, #6b4226 100%);
  border-radius: 60% 50% 0 0 / 20% 10% 0 0;
}
.scn-guernsey-family .window-frame {
  position: absolute; top: 15%; left: 50%; width: 120px; height: 150px;
  transform: translateX(-50%);
  background: #6b4226;
  border-radius: 6px;
  box-shadow: inset 0 0 0 8px #5a3a1e, 0 4px 12px rgba(0,0,0,0.3);
}
.scn-guernsey-family .window-pane {
  position: absolute; top: 18%; left: 50%; width: 100px; height: 130px;
  transform: translateX(-50%);
  background: linear-gradient(135deg, #fef0d6 0%, #f5d6a8 100%);
  border-radius: 3px;
  box-shadow: 0 0 30px 10px #f5d6a8, 0 0 60px 20px rgba(245,214,168,0.4);
  animation: gf-glow 4s ease-in-out infinite alternate;
}
.scn-guernsey-family .figure-mother {
  position: absolute; bottom: 38%; left: 30%; width: 40px; height: 100px;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gf-sway 6s ease-in-out infinite;
}
.scn-guernsey-family .figure-child {
  position: absolute; bottom: 38%; left: 55%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #8b6b4a 0%, #5a3a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gf-sway 5s ease-in-out infinite 1s;
}
.scn-guernsey-family .table {
  position: absolute; bottom: 28%; left: 40%; width: 80px; height: 10px;
  background: #5a3a1e;
  border-radius: 2px;
  box-shadow: 0 4px 6px rgba(0,0,0,0.3);
}
.scn-guernsey-family .candle {
  position: absolute; bottom: 32%; left: 48%; width: 6px; height: 20px;
  background: #d4a373;
  border-radius: 2px;
}
.scn-guernsey-family .candle::after {
  content: "";
  position: absolute; top: -8px; left: -2px; width: 10px; height: 10px;
  background: radial-gradient(circle, #ffd166 0%, #ffb347 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 18px 6px #ffb347;
  animation: gf-flame 1.5s ease-in-out infinite alternate;
}
@keyframes gf-glow {
  0% { opacity: 0.8; box-shadow: 0 0 20px 6px #f5d6a8, 0 0 40px 12px rgba(245,214,168,0.3); }
  50% { opacity: 1; box-shadow: 0 0 40px 15px #ffe4b5, 0 0 80px 25px rgba(255,228,181,0.5); }
  100% { opacity: 0.9; box-shadow: 0 0 25px 8px #f5d6a8, 0 0 50px 15px rgba(245,214,168,0.4); }
}
@keyframes gf-sway {
  0%, 100% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(3px) rotate(1deg); }
}
@keyframes gf-flame {
  0%, 100% { transform: scaleY(1) translateY(0); }
  50% { transform: scaleY(1.2) translateY(-2px); }
}

.scn-press-gang-incident {
  background:
    linear-gradient(180deg, #5a6e7a 0%, #3a4a5a 40%, #2a3a4a 100%),
    radial-gradient(ellipse at 50% 100%, #1a2a3a 0%, transparent 70%);
}
.scn-press-gang-incident .sky-overcast {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #6a7a8a 0%, #4a5a6a 60%, transparent 100%);
  animation: pgi-cloud 20s linear infinite alternate;
}
.scn-press-gang-incident .sea-dark {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%);
  border-radius: 40% 60% 0 0 / 20% 30% 0 0;
  animation: pgi-sea 8s ease-in-out infinite;
}
.scn-press-gang-incident .deck {
  position: absolute; bottom: 28%; left: 0; right: 0; height: 5%;
  background: #4a3a2a;
  border-radius: 2px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.5);
}
.scn-press-gang-incident .ship-rail {
  position: absolute; bottom: 33%; left: 5%; right: 5%; height: 2%;
  background: #3a2a1a;
  border-radius: 1px;
}
.scn-press-gang-incident .gang-figure-1 {
  position: absolute; bottom: 28%; left: 30%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #3a4a5a 0%, #1a2a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pgi-lunge 3s ease-in-out infinite;
}
.scn-press-gang-incident .gang-figure-2 {
  position: absolute; bottom: 28%; left: 50%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #3a4a5a 0%, #1a2a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pgi-lunge 3s ease-in-out infinite 1s;
}
.scn-press-gang-incident .sword-1 {
  position: absolute; bottom: 40%; left: 32%; width: 4px; height: 50px;
  background: linear-gradient(180deg, #c0c0c0 0%, #808080 100%);
  border-radius: 2px;
  transform-origin: bottom center;
  animation: pgi-slash 0.8s ease-in-out infinite;
}
.scn-press-gang-incident .sword-2 {
  position: absolute; bottom: 40%; left: 52%; width: 4px; height: 50px;
  background: linear-gradient(180deg, #c0c0c0 0%, #808080 100%);
  border-radius: 2px;
  transform-origin: bottom center;
  animation: pgi-slash 0.8s ease-in-out infinite -0.4s;
}
.scn-press-gang-incident .victim-figure {
  position: absolute; bottom: 28%; left: 65%; width: 25px; height: 60px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pgi-cower 4s ease-in-out infinite;
}
@keyframes pgi-cloud {
  0% { background-position: 0% 0%; opacity: 0.7; }
  50% { opacity: 0.9; }
  100% { background-position: 100% 0%; opacity: 0.8; }
}
@keyframes pgi-sea {
  0%, 100% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(2px) scaleY(1.02); }
}
@keyframes pgi-lunge {
  0%, 100% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(5px) rotate(3deg); }
  50% { transform: translateX(-3px) rotate(-2deg); }
  75% { transform: translateX(2px) rotate(2deg); }
}
@keyframes pgi-slash {
  0%, 100% { transform: rotate(0deg); }
  50% { transform: rotate(35deg); }
}
@keyframes pgi-cower {
  0%, 100% { transform: translateX(0) scaleY(1); }
  50% { transform: translateX(-2px) scaleY(0.95); }
}

.scn-press-gang-incident {
  background: 
    linear-gradient(180deg, #4a5a6a 0%, #2a3a4a 40%, #1a2a3a 100%),
    radial-gradient(ellipse at 50% 0%, #5a6a7a 0%, transparent 70%);
}

.scn-press-gang-incident .sky-pg {
  position: absolute;
  inset: 0 0 55% 0;
  background: linear-gradient(180deg, #6a7a8a 0%, #4a5a6a 100%);
  animation: pg-sky 18s ease-in-out infinite alternate;
}

.scn-press-gang-incident .sea-pg {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 30%;
  background: linear-gradient(180deg, #3a4a5a 0%, #1a2a3a 100%);
  border-radius: 60% 40% 0 0 / 100% 80% 0 0;
  animation: pg-sea 12s ease-in-out infinite alternate;
}

.scn-press-gang-incident .hull-pg {
  position: absolute;
  bottom: 25%;
  left: 10%;
  width: 80%;
  height: 12%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 0 0 30% 30%;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,.6);
}

.scn-press-gang-incident .deck-pg {
  position: absolute;
  bottom: 35%;
  left: 12%;
  width: 76%;
  height: 4%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,.5);
  animation: pg-deck 4s ease-in-out infinite alternate;
}

.scn-press-gang-incident .mast-pg {
  position: absolute;
  bottom: 35%;
  left: 30%;
  width: 4px;
  height: 35%;
  background: linear-gradient(180deg, #3a2a1a, #1a0a00);
  border-radius: 2px;
  transform-origin: bottom center;
  animation: pg-mast 8s ease-in-out infinite alternate;
}

.scn-press-gang-incident .sailor-pg {
  position: absolute;
  bottom: 34%;
  left: 22%;
  width: 14px;
  height: 28px;
  background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pg-sailor 6s ease-in-out infinite;
}

.scn-press-gang-incident .pressgang-pg {
  position: absolute;
  bottom: 34%;
  left: 55%;
  width: 18px;
  height: 34px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 0 8px rgba(0,0,0,.5);
  transform-origin: bottom center;
  animation: pg-press 1.5s ease-in-out infinite;
}

.scn-press-gang-incident .blade-pg {
  position: absolute;
  bottom: 42%;
  left: 62%;
  width: 2px;
  height: 14px;
  background: linear-gradient(180deg, #8a9aaa 0%, #4a5a6a 100%);
  border-radius: 1px;
  transform-origin: bottom center;
  animation: pg-blade 0.6s ease-in-out infinite alternate;
}

@keyframes pg-sky {
  0% { opacity: .7; background-position: 0% 0%; }
  50% { opacity: .9; background-position: 0% 5%; }
  100% { opacity: .8; background-position: 0% 2%; }
}

@keyframes pg-sea {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-4px) scaleY(1.02); }
  100% { transform: translateY(2px) scaleY(.98); }
}

@keyframes pg-deck {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-1px) rotate(.5deg); }
  100% { transform: translateY(0) rotate(-.3deg); }
}

@keyframes pg-mast {
  0% { transform: rotate(-1deg); }
  50% { transform: rotate(1.5deg); }
  100% { transform: rotate(-.5deg); }
}

@keyframes pg-sailor {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  25% { transform: translateX(-2px) translateY(-1px) rotate(2deg); }
  50% { transform: translateX(4px) translateY(0) rotate(-2deg); }
  75% { transform: translateX(-1px) translateY(-1px) rotate(1deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}

@keyframes pg-press {
  0% { transform: translateX(0) translateY(0) rotate(-2deg); }
  30% { transform: translateX(3px) translateY(-2px) rotate(3deg); }
  60% { transform: translateX(-2px) translateY(-1px) rotate(-1deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}

@keyframes pg-blade {
  0% { transform: rotate(-10deg) translateX(0); }
  50% { transform: rotate(15deg) translateX(2px); }
  100% { transform: rotate(-5deg) translateX(-1px); }
}

.scn-guernsey-family {
  background: 
    linear-gradient(135deg, #c4a882 0%, #8b7355 50%, #5a4a3a 100%),
    radial-gradient(ellipse at 20% 40%, #e8d4b8 0%, transparent 60%);
}
.scn-guernsey-family .gf-wall {
  position: absolute;
  inset: 0 0 35% 0;
  background: linear-gradient(180deg, #c8b898 0%, #a08a6a 100%);
  animation: gf-wall-pulse 10s ease-in-out infinite alternate;
}
.scn-guernsey-family .gf-floor {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 35%;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a322a 100%);
  border-radius: 20% 10% 0 0 / 40% 20% 0 0;
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.3);
}
.scn-guernsey-family .gf-window {
  position: absolute;
  top: 10%;
  left: 30%;
  width: 28%;
  height: 45%;
  background: radial-gradient(ellipse at 50% 50%, #ffe8c0 0%, #d4b890 60%, #8a7050 100%);
  border-radius: 8px;
  box-shadow: 0 0 40px 20px rgba(255,220,160,0.5), inset 0 0 20px 4px rgba(180,140,100,0.3);
  animation: gf-window-glow 6s ease-in-out infinite;
}
.scn-guernsey-family .gf-light {
  position: absolute;
  top: 10%;
  left: 30%;
  width: 28%;
  height: 45%;
  background: linear-gradient(135deg, rgba(255,230,180,0.6) 0%, rgba(255,200,120,0.3) 50%, transparent 100%);
  filter: blur(8px);
  animation: gf-light-move 12s ease-in-out infinite alternate;
}
.scn-guernsey-family .gf-table {
  position: absolute;
  bottom: 28%;
  left: 25%;
  width: 50%;
  height: 8%;
  background: linear-gradient(180deg, #7a6a5a 0%, #4a3a2a 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 -2px 6px rgba(0,0,0,0.4);
  animation: gf-table-breathe 8s ease-in-out infinite;
}
.scn-guernsey-family .gf-figure-left {
  position: absolute;
  bottom: 26%;
  left: 30%;
  width: 16px;
  height: 40px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gf-figure-left 5s ease-in-out infinite;
}
.scn-guernsey-family .gf-figure-right {
  position: absolute;
  bottom: 28%;
  right: 32%;
  width: 20px;
  height: 32px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gf-figure-right 6s ease-in-out infinite alternate;
}
.scn-guernsey-family .gf-dust {
  position: absolute;
  top: 15%;
  left: 35%;
  width: 8px;
  height: 8px;
  background: radial-gradient(circle, rgba(255,230,180,0.7) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(2px);
  animation: gf-dust 15s linear infinite;
  box-shadow: -20px 30px 0 rgba(255,230,180,0.5), 40px -10px 0 rgba(255,230,180,0.3), -60px 50px 0 rgba(255,230,180,0.4);
}
@keyframes gf-wall-pulse {
  0%, 100% { opacity: 0.9; }
  50% { opacity: 1; }
}
@keyframes gf-window-glow {
  0% { box-shadow: 0 0 30px 15px rgba(255,220,160,0.4), inset 0 0 15px 3px rgba(180,140,100,0.2); }
  35% { box-shadow: 0 0 50px 25px rgba(255,220,160,0.7), inset 0 0 25px 6px rgba(180,140,100,0.4); }
  70% { box-shadow: 0 0 40px 20px rgba(255,220,160,0.5), inset 0 0 20px 4px rgba(180,140,100,0.3); }
  100% { box-shadow: 0 0 35px 18px rgba(255,220,160,0.5), inset 0 0 18px 3px rgba(180,140,100,0.3); }
}
@keyframes gf-light-move {
  0% { transform: translateX(0) scaleX(1); opacity: 0.6; }
  50% { transform: translateX(5px) scaleX(0.95); opacity: 0.8; }
  100% { transform: translateX(-3px) scaleX(1.02); opacity: 0.7; }
}
@keyframes gf-table-breathe {
  0%, 100% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-1px) scaleY(1.005); }
}
@keyframes gf-figure-left {
  0% { transform: rotate(0deg); }
  25% { transform: rotate(2deg); }
  50% { transform: rotate(-1deg); }
  75% { transform: rotate(1deg); }
  100% { transform: rotate(0deg); }
}
@keyframes gf-figure-right {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(3px) rotate(-2deg); }
  100% { transform: translateX(-2px) rotate(1deg); }
}
@keyframes gf-dust {
  0% { transform: translate(0, 0); opacity: 1; }
  50% { transform: translate(40px, -20px); opacity: 0.6; }
  100% { transform: translate(80px, -40px); opacity: 0; }
}
/* end per-scene blocks */

/* auto-stub: parent tag-classes flagged by CSS audit */
.cloud-rfs { position: absolute; pointer-events: none; }
.equiano-run { position: absolute; pointer-events: none; }
.fsc-family1 { position: absolute; pointer-events: none; }
.fsc-family2 { position: absolute; pointer-events: none; }
.fsc-herbs { position: absolute; pointer-events: none; }
.press-gang-figures { position: absolute; pointer-events: none; }
.sea-choppy { position: absolute; pointer-events: none; }
.swords { position: absolute; pointer-events: none; }
.top { position: absolute; pointer-events: none; }
.tree-msp { position: absolute; pointer-events: none; }

/* ============ tier S ============ */
/* per-scene blocks (EXP step_scenes) */
.scn-manufacturing-and-moral-good { background: linear-gradient(180deg, #d4a373 0%, #b5835a 30%, #8c6239 70%, #5a3d1a 100%), radial-gradient(ellipse at 30% 20%, #f4d03f 0%, transparent 50%); }
.scn-manufacturing-and-moral-good .wall { position:absolute; inset:0; background: linear-gradient(180deg, #c9a066 0%, #9c7a4a 100%); }
.scn-manufacturing-and-moral-good .window { position:absolute; top:15%; left:10%; width:25%; height:30%; background: linear-gradient(135deg, #ffe082 0%, #ffd54f 60%, #ffb300 100%); border-radius: 4px; box-shadow: inset 0 0 20px rgba(255,224,130,0.5), 0 0 20px rgba(255,213,79,0.4); animation: mg-window-glow 6s ease-in-out infinite alternate; }
.scn-manufacturing-and-moral-good .lightbeam { position:absolute; top:30%; left:22%; width:60%; height:50%; background: linear-gradient(135deg, rgba(255,224,130,0.5) 0%, transparent 70%); clip-path: polygon(0 0, 100% 0, 80% 100%, 0% 100%); animation: mg-beam 8s ease-in-out infinite alternate; }
.scn-manufacturing-and-moral-good .desk { position:absolute; bottom:10%; left:15%; width:70%; height:35%; background: linear-gradient(180deg, #6d4c2a 0%, #4a3220 100%); border-radius: 8px 8px 0 0; box-shadow: 0 -4px 10px rgba(0,0,0,0.5); }
.scn-manufacturing-and-moral-good .goods { position:absolute; bottom:25%; left:30%; width:30%; height:20%; background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%); border-radius: 4px; box-shadow: 0 2px 6px rgba(0,0,0,0.4); animation: mg-goods 4s ease-in-out infinite; }
.scn-manufacturing-and-moral-good .scale { position:absolute; bottom:30%; right:25%; width:15%; height:30%; background: radial-gradient(circle at 50% 20%, #b87333 0%, #8b5e3c 80%); border-radius: 50% 50% 0 0 / 60% 60% 0 0; animation: mg-scale 5s ease-in-out infinite alternate; }
.scn-manufacturing-and-moral-good .gear { position:absolute; top:45%; right:15%; width:8%; height:8%; background: radial-gradient(circle, #7a5c3a 0%, #4a3220 100%); border: 2px solid #8b5e3c; border-radius: 50%; animation: mg-gear-spin 10s linear infinite; box-shadow: 0 0 10px rgba(0,0,0,0.3); }
@keyframes mg-window-glow { 0% { opacity:0.8; box-shadow: 0 0 10px rgba(255,224,130,0.3); } 50% { opacity:1; box-shadow: 0 0 30px rgba(255,224,130,0.6); } 100% { opacity:0.9; box-shadow: 0 0 15px rgba(255,224,130,0.4); } }
@keyframes mg-beam { 0% { transform: scaleX(1) translateX(0); opacity:0.5; } 50% { transform: scaleX(1.1) translateX(5px); opacity:0.8; } 100% { transform: scaleX(0.95) translateX(-3px); opacity:0.6; } }
@keyframes mg-goods { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes mg-scale { 0% { transform: rotate(-4deg); } 50% { transform: rotate(4deg); } 100% { transform: rotate(-2deg); } }
@keyframes mg-gear-spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }

/* scene 1 – governor-macnamara-mission-proposal */
.scn-governor-macnamara-mission-proposal {
  background: linear-gradient(180deg, #f5e8d0 0%, #d8c8a8 50%, #c0a888 100%),
              radial-gradient(ellipse at 70% 50%, #fff4e0 0%, transparent 60%);
}
.scn-governor-macnamara-mission-proposal .room-bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #f2e2c8 0%, #d8c4a4 100%);
}
.scn-governor-macnamara-mission-proposal .desk {
  position: absolute; bottom: 18%; left: 30%; width: 40%; height: 8%;
  background: linear-gradient(180deg, #8b7355 0%, #6b5a3e 100%);
  border-radius: 2% 2% 0 0;
  box-shadow: 0 6px 12px rgba(0,0,0,0.3);
}
.scn-governor-macnamara-mission-proposal .figure-gov {
  position: absolute; bottom: 26%; left: 50%; width: 28px; height: 42px;
  background: linear-gradient(180deg, #2d2a22 0%, #1a1814 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gm-gov 2s ease-in-out infinite alternate;
}
.scn-governor-macnamara-mission-proposal .figure-eq {
  position: absolute; bottom: 26%; left: 38%; width: 26px; height: 40px;
  background: linear-gradient(180deg, #3a3028 0%, #1e1814 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gm-eq 3s ease-in-out infinite alternate;
}
.scn-governor-macnamara-mission-proposal .window {
  position: absolute; top: 10%; right: 12%; width: 80px; height: 100px;
  background: linear-gradient(135deg, #b0d0e0 0%, #7fa0b0 100%);
  border: 4px solid #8b7355;
  border-radius: 4%;
  box-shadow: inset 0 0 20px rgba(255,255,200,0.5);
}
.scn-governor-macnamara-mission-proposal .lamp-rim {
  position: absolute; bottom: 30%; left: 32%; width: 14px; height: 14px;
  background: radial-gradient(circle, #ffd080 0%, #e0a040 70%);
  border-radius: 50%;
  box-shadow: 0 0 24px 6px #e0a040, 0 0 48px 12px rgba(224,160,64,0.4);
  animation: gm-lamp 2.5s ease-in-out infinite alternate;
}
.scn-governor-macnamara-mission-proposal .shadow-pool {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(0deg, rgba(0,0,0,0.2) 0%, transparent 100%);
  animation: gm-shadow 4s ease-in-out infinite alternate;
}
@keyframes gm-gov {
  0% { transform: translateX(0) rotate(0); }
  50% { transform: translateX(4px) rotate(-2deg); }
  100% { transform: translateX(-2px) rotate(1deg); }
}
@keyframes gm-eq {
  0% { transform: translateX(0) scaleY(1); }
  50% { transform: translateX(3px) scaleY(0.97); }
  100% { transform: translateX(-3px) scaleY(1.02); }
}
@keyframes gm-lamp {
  0% { opacity: 0.7; transform: scale(0.95); box-shadow: 0 0 16px 4px #e0a040; }
  50% { opacity: 1; transform: scale(1.05); box-shadow: 0 0 32px 8px #ffd080; }
  100% { opacity: 0.8; transform: scale(1); box-shadow: 0 0 20px 5px #e0a040; }
}
@keyframes gm-shadow {
  0% { opacity: 0.4; }
  50% { opacity: 0.6; }
  100% { opacity: 0.3; }
}

/* scene 2 – bishop-declines-ordination */
.scn-bishop-declines-ordination {
  background: linear-gradient(180deg, #e8dcc8 0%, #c8b8a0 40%, #a89880 100%),
              radial-gradient(ellipse at 40% 30%, #fff4e0 0%, transparent 60%);
}
.scn-bishop-declines-ordination .study-wall {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, #c8b8a0 0%, #d8c8b0 100%);
}
.scn-bishop-declines-ordination .bishop-desk {
  position: absolute; bottom: 20%; left: 20%; width: 60%; height: 6%;
  background: linear-gradient(180deg, #6b5a3e 0%, #4a3e2a 100%);
  border-radius: 2% 2% 0 0;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
}
.scn-bishop-declines-ordination .figure-bishop {
  position: absolute; bottom: 26%; left: 55%; width: 30px; height: 44px;
  background: linear-gradient(180deg, #2d2a22 0%, #1a1814 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bo-bishop 3s ease-in-out infinite alternate;
}
.scn-bishop-declines-ordination .figure-eq2 {
  position: absolute; bottom: 26%; left: 40%; width: 26px; height: 40px;
  background: linear-gradient(180deg, #3a3028 0%, #1e1814 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bo-eq2 2.5s ease-in-out infinite alternate;
}
.scn-bishop-declines-ordination .letter-stack {
  position: absolute; bottom: 18%; left: 35%; width: 20px; height: 12px;
  background: #f0e0c0;
  border-radius: 2px;
  box-shadow: 2px 2px 4px rgba(0,0,0,0.2);
  transform: rotate(-5deg);
  animation: bo-letter 6s ease-in-out infinite alternate;
}
.scn-bishop-declines-ordination .candle {
  position: absolute; bottom: 24%; left: 60%; width: 8px; height: 18px;
  background: linear-gradient(180deg, #f0e0b0 0%, #d0b080 100%);
  border-radius: 4px 4px 2px 2px;
}
.scn-bishop-declines-ordination .cross {
  position: absolute; top: 12%; left: 48%; width: 16px; height: 26px;
  background: #8b7355;
  clip-path: polygon(40% 0%, 60% 0%, 60% 40%, 100% 40%, 100% 60%, 60% 60%, 60% 100%, 40% 100%, 40% 60%, 0% 60%, 0% 40%, 40% 40%);
  animation: bo-cross 8s ease-in-out infinite alternate;
}
.scn-bishop-declines-ordination .shadow-drape {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(0deg, rgba(0,0,0,0.15) 0%, transparent 100%);
  animation: bo-shadow 5s ease-in-out infinite alternate;
}
@keyframes bo-bishop {
  0% { transform: translateX(0) rotate(0) scaleY(1); }
  50% { transform: translateX(-3px) rotate(-1deg) scaleY(0.98); }
  100% { transform: translateX(2px) rotate(1deg) scaleY(1.01); }
}
@keyframes bo-eq2 {
  0% { transform: translateX(0) scaleY(1); }
  50% { transform: translateX(2px) scaleY(0.96); }
  100% { transform: translateX(-4px) scaleY(1.02); }
}
@keyframes bo-letter {
  0% { transform: rotate(-5deg) scale(1); }
  50% { transform: rotate(2deg) scale(1.02); }
  100% { transform: rotate(-6deg) scale(0.98); }
}
@keyframes bo-cross {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes bo-shadow {
  0% { opacity: 0.3; }
  50% { opacity: 0.5; }
  100% { opacity: 0.2; }
}

/* scene 3 – quaker-address-and-wedding */
.scn-quaker-address-and-wedding {
  background: linear-gradient(180deg, #fdf6e3 0%, #f5e6c8 40%, #e0c8a0 100%),
              radial-gradient(ellipse at 50% 20%, #fffce0 0%, transparent 50%);
}
.scn-quaker-address-and-wedding .meeting-room-bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #f5e6c8 0%, #d8c4a4 100%);
}
.scn-quaker-address-and-wedding .podium {
  position: absolute; bottom: 22%; left: 42%; width: 16%; height: 18%;
  background: linear-gradient(180deg, #c8b090 0%, #a08868 100%);
  border-radius: 4% 4% 2% 2%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
}
.scn-quaker-address-and-wedding .figure-minister {
  position: absolute; bottom: 38%; left: 48%; width: 28px; height: 42px;
  background: linear-gradient(180deg, #2d2a22 0%, #1a1814 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: qw-minister 3s ease-in-out infinite alternate;
}
.scn-quaker-address-and-wedding .figure-couple-a {
  position: absolute; bottom: 26%; left: 32%; width: 24px; height: 38px;
  background: linear-gradient(180deg, #3a3028 0%, #1e1814 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: qw-couple-a 4s ease-in-out infinite alternate;
}
.scn-quaker-address-and-wedding .figure-couple-b {
  position: absolute; bottom: 26%; left: 44%; width: 24px; height: 38px;
  background: linear-gradient(180deg, #3a3028 0%, #1e1814 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: qw-couple-b 4s ease-in-out infinite alternate;
}
.scn-quaker-address-and-wedding .sunbeam {
  position: absolute; top: 8%; left: 20%; width: 60%; height: 50%;
  background: linear-gradient(135deg, rgba(255,255,200,0.3) 0%, transparent 60%);
  filter: blur(8px);
  animation: qw-sun 10s ease-in-out infinite alternate;
}
.scn-quaker-address-and-wedding .bench-row {
  position: absolute; bottom: 14%; left: 10%; width: 80%; height: 8%;
  background: linear-gradient(180deg, #a08868 0%, #806050 100%);
  border-radius: 2% 2% 0 0;
  box-shadow: 0 2px 4px rgba(0,0,0,0.15);
}
@keyframes qw-minister {
  0% { transform: translateX(0) rotate(0) scaleY(1); }
  50% { transform: translateX(3px) rotate(-2deg) scaleY(0.97); }
  100% { transform: translateX(-3px) rotate(1deg) scaleY(1.02); }
}
@keyframes qw-couple-a {
  0% { transform: translateX(0) rotate(0) scaleY(1); }
  50% { transform: translateX(2px) rotate(-1deg) scaleY(0.98); }
  100% { transform: translateX(-2px) rotate(1deg) scaleY(1.02); }
}
@keyframes qw-couple-b {
  0% { transform: translateX(0) rotate(0) scaleY(1); }
  50% { transform: translateX(-2px) rotate(1deg) scaleY(0.98); }
  100% { transform: translateX(2px) rotate(-1deg) scaleY(1.02); }
}
@keyframes qw-sun {
  0% { opacity: 0.3; transform: scale(0.95) rotate(-5deg); }
  50% { opacity: 0.6; transform: scale(1.05) rotate(5deg); }
  100% { opacity: 0.4; transform: scale(1) rotate(0); }
}

/* scene 4 – commissary-for-sierra-leone */
.scn-commissary-for-sierra-leone {
  background: linear-gradient(180deg, #2a2a30 0%, #1c1c24 40%, #0e0e14 100%),
              radial-gradient(ellipse at 50% 60%, #383840 0%, transparent 60%);
}
.scn-commissary-for-sierra-leone .room-dim {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #2a2a30 0%, #1a1a20 100%);
}
.scn-commissary-for-sierra-leone .long-table {
  position: absolute; bottom: 18%; left: 10%; width: 80%; height: 6%;
  background: linear-gradient(180deg, #4a3e2a 0%, #2a2018 100%);
  border-radius: 2% 2% 0 0;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-commissary-for-sierra-leone .figure-seated-1 {
  position: absolute; bottom: 24%; left: 25%; width: 28px; height: 38px;
  background: linear-gradient(180deg, #2d2a22 0%, #1a1814 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cs-seated1 3.5s ease-in-out infinite alternate;
}
.scn-commissary-for-sierra-leone .figure-seated-2 {
  position: absolute; bottom: 24%; left: 50%; width: 28px; height: 38px;
  background: linear-gradient(180deg, #2d2a22 0%, #1a1814 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cs-seated2 4s ease-in-out infinite alternate;
}
.scn-commissary-for-sierra-leone .document-pile {
  position: absolute; bottom: 20%; left: 35%; width: 50px; height: 20px;
  background: #d8c8a0;
  border-radius: 2px;
  box-shadow: 2px 2px 6px rgba(0,0,0,0.4);
  transform: rotate(-2deg);
  animation: cs-doc 8s ease-in-out infinite alternate;
}
.scn-commissary-for-sierra-leone .oil-lamp {
  position: absolute; bottom: 28%; left: 60%; width: 12px; height: 16px;
  background: radial-gradient(circle, #ffd080 0%, #b07030 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 8px #b07030, 0 0 60px 16px rgba(176,112,48,0.3);
  animation: cs-lamp 2s ease-in-out infinite alternate;
}
.scn-commissary-for-sierra-leone .map-wall {
  position: absolute; top: 12%; left: 15%; width: 60px; height: 80px;
  background: linear-gradient(135deg, #8a7a5a 0%, #6a5a3a 100%);
  border: 2px solid #4a3e2a;
  border-radius: 4%;
  box-shadow: 0 0 10px rgba(0,0,0,0.5);
}
.scn-commissary-for-sierra-leone .shadow-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(0deg, rgba(0,0,0,0.6) 0%, transparent 100%);
  animation: cs-floor 6s ease-in-out infinite alternate;
}
@keyframes cs-seated1 {
  0% { transform: translateX(0) rotate(0) scaleY(1); }
  50% { transform: translateX(2px) rotate(-1deg) scaleY(0.97); }
  100% { transform: translateX(-2px) rotate(1deg) scaleY(1.02); }
}
@keyframes cs-seated2 {
  0% { transform: translateX(0) rotate(0) scaleY(1); }
  50% { transform: translateX(-3px) rotate(1deg) scaleY(0.97); }
  100% { transform: translateX(3px) rotate(-1deg) scaleY(1.02); }
}
@keyframes cs-doc {
  0% { transform: rotate(-2deg) scale(1); }
  50% { transform: rotate(3deg) scale(1.02); }
  100% { transform: rotate(-4deg) scale(0.98); }
}
@keyframes cs-lamp {
  0% { opacity: 0.6; transform: scale(0.95); box-shadow: 0 0 20px 5px #b07030; }
  50% { opacity: 1; transform: scale(1.05); box-shadow: 0 0 40px 12px #ffd080; }
  100% { opacity: 0.7; transform: scale(1); box-shadow: 0 0 25px 6px #b07030; }
}
@keyframes cs-floor {
  0% { opacity: 0.5; }
  50% { opacity: 0.7; }
  100% { opacity: 0.4; }
}

.scn-freedom-promised-for-forty-pounds { background: linear-gradient(180deg, #3a2a1a 0%, #5a3a2a 30%, #2a1a0a 100%), radial-gradient(ellipse at 50% 30%, #9a7a5a 0%, transparent 70%); }
.scn-freedom-promised-for-forty-pounds .room-walls { position:absolute; inset:0; background: radial-gradient(ellipse at 40% 50%, #6a4a3a 0%, #2a1a0a 100%); }
.scn-freedom-promised-for-forty-pounds .table { position:absolute; bottom:10%; left:20%; width:60%; height:12%; background: linear-gradient(180deg, #8a6a4a 0%, #5a3a1a 100%); border-radius:4% 4% 0 0; box-shadow:0 -4px 8px rgba(0,0,0,0.5); }
.scn-freedom-promised-for-forty-pounds .ledger { position:absolute; bottom:22%; left:35%; width:12%; height:6%; background: linear-gradient(135deg, #d4b48a 0%, #b8956a 100%); border-radius:2px; box-shadow:0 2px 4px rgba(0,0,0,0.4); transform: rotate(3deg); }
.scn-freedom-promised-for-forty-pounds .coin { position:absolute; bottom:26%; border-radius:50%; background: radial-gradient(circle at 40% 40%, #f0d060 0%, #c8a030 100%); box-shadow:0 0 6px rgba(200,160,48,0.6); animation: fp-coin 3s ease-in-out infinite alternate; }
.scn-freedom-promised-for-forty-pounds .coin-1 { left:30%; width:12px; height:12px; animation-delay:0s; }
.scn-freedom-promised-for-forty-pounds .coin-2 { left:40%; width:14px; height:14px; animation-delay:0.5s; }
.scn-freedom-promised-for-forty-pounds .coin-3 { left:50%; width:10px; height:10px; animation-delay:1s; }
.scn-freedom-promised-for-forty-pounds .candle { position:absolute; bottom:20%; left:55%; width:8px; height:18px; background: linear-gradient(180deg, #f0e0c0 0%, #c8b08a 100%); border-radius:4px 4px 2px 2px; box-shadow:0 0 8px #d4c0a0; }
.scn-freedom-promised-for-forty-pounds .figure { position:absolute; bottom:14%; left:25%; width:20px; height:40px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fp-figure 6s ease-in-out infinite; }
.scn-freedom-promised-for-forty-pounds .flame { position:absolute; bottom:34%; left:55.5%; width:10px; height:16px; background: radial-gradient(circle at 50% 20%, #ffd060 0%, #ff9030 40%, transparent 70%); border-radius:50%; filter: blur(2px); animation: fp-flame 1.5s ease-in-out infinite alternate; }
@keyframes fp-coin { 0% { transform: translateY(0) rotate(0deg); opacity:0.9; } 50% { transform: translateY(-4px) rotate(15deg); opacity:1; } 100% { transform: translateY(0) rotate(0deg); opacity:0.9; } }
@keyframes fp-figure { 0% { transform: translateX(0) rotate(-1deg); } 25% { transform: translateX(4px) rotate(1deg); } 50% { transform: translateX(0) rotate(-1deg); } 75% { transform: translateX(-3px) rotate(0deg); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes fp-flame { 0% { transform: scaleY(0.8) scaleX(0.95); opacity:0.8; } 50% { transform: scaleY(1.1) scaleX(1); opacity:1; } 100% { transform: scaleY(0.85) scaleX(0.9); opacity:0.7; } }

.scn-beat-read-beating { background: linear-gradient(180deg, #87ceeb 0%, #b0e0ff 30%, #f0e68c 100%), radial-gradient(ellipse at 50% 100%, #f0e68c 0%, transparent 60%); }
.scn-beat-read-beating .sky-sun { position:absolute; top:0; left:0; width:100%; height:100%; background: radial-gradient(ellipse at 70% 20%, #fff8dc 0%, #87ceeb 70%, #b0c4de 100%); }
.scn-beat-read-beating .ground { position:absolute; bottom:0; left:0; width:100%; height:40%; background: linear-gradient(180deg, #8b7355 0%, #6b5b45 100%); }
.scn-beat-read-beating .post { position:absolute; bottom:45%; left:50%; width:8px; height:60px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); transform:translateX(-50%); box-shadow:4px 0 6px rgba(0,0,0,0.3); }
.scn-beat-read-beating .shadow { position:absolute; bottom:40%; left:40%; width:30px; height:50px; background: rgba(0,0,0,0.3); border-radius:50% 50% 40% 40%; filter: blur(6px); animation: br-shadow 4s ease-in-out infinite alternate; }
.scn-beat-read-beating .whip { position:absolute; bottom:50%; left:60%; width:60px; height:4px; background: linear-gradient(90deg, #8b4513 0%, #d2691e 100%); border-radius:2px; transform-origin: left center; animation: br-whip 0.6s ease-in-out infinite; }
.scn-beat-read-beating .figure-crouch { position:absolute; bottom:44%; left:38%; width:18px; height:30px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius:50% 50% 40% 40% / 30% 30% 70% 70%; transform-origin: bottom center; animation: br-crouch 2s ease-in-out infinite; }
.scn-beat-read-beating .dust { position:absolute; bottom:35%; width:8px; height:8px; background: rgba(210,180,140,0.4); border-radius:50%; filter: blur(3px); }
.scn-beat-read-beating .dust-1 { left:20%; animation: br-dust 8s linear infinite; }
.scn-beat-read-beating .dust-2 { left:70%; animation: br-dust 10s linear infinite 2s; }
@keyframes br-shadow { 0% { transform: translateX(-5px) scaleX(0.9); opacity:0.5; } 50% { transform: translateX(10px) scaleX(1.2); opacity:0.8; } 100% { transform: translateX(-5px) scaleX(0.9); opacity:0.5; } }
@keyframes br-whip { 0% { transform: rotate(30deg) scaleX(1); } 30% { transform: rotate(-40deg) scaleX(1.1); } 50% { transform: rotate(10deg) scaleX(0.9); } 70% { transform: rotate(-30deg) scaleX(1.1); } 100% { transform: rotate(30deg) scaleX(1); } }
@keyframes br-crouch { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-3px) scaleY(0.9); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes br-dust { 0% { transform: translate(0,0) scale(1); opacity:0.6; } 50% { transform: translate(-40px, -20px) scale(0.6); opacity:0.2; } 100% { transform: translate(-80px, -40px) scale(0.2); opacity:0; } }

.scn-shipwreck-and-rescue { background: linear-gradient(180deg, #0a0a2a 0%, #1a1a4e 30%, #0a0a1a 100%), radial-gradient(ellipse at 50% 100%, #1a1a4e 0%, transparent 70%); }
.scn-shipwreck-and-rescue .sea-deep { position:absolute; bottom:0; width:100%; height:50%; background: linear-gradient(180deg, #0a2a3a 0%, #001a2a 100%); }
.scn-shipwreck-and-rescue .sea-surf { position:absolute; bottom:45%; width:100%; height:10%; background: linear-gradient(180deg, rgba(200,230,255,0.3) 0%, transparent 100%); animation: sr-wave 6s ease-in-out infinite alternate; }
.scn-shipwreck-and-rescue .ship-wreck { position:absolute; bottom:35%; left:20%; width:80px; height:40px; background: linear-gradient(90deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:0 20% 10% 10%; transform-origin: center bottom; animation: sr-rock 4s ease-in-out infinite; box-shadow:0 0 20px rgba(0,0,0,0.8); }
.scn-shipwreck-and-rescue .rescue-boat { position:absolute; bottom:25%; right:15%; width:60px; height:20px; background: linear-gradient(90deg, #6a5a4a 0%, #4a3a2a 100%); border-radius:30% 30% 10% 10%; animation: sr-approach 12s ease-in-out infinite alternate; }
.scn-shipwreck-and-rescue .swimmer { position:absolute; bottom:30%; width:10px; height:18px; background: radial-gradient(circle at 50% 40%, #d4c4b0 0%, #a09080 100%); border-radius:50% 50% 40% 40%; animation: sr-swim 5s ease-in-out infinite; }
.scn-shipwreck-and-rescue .swimmer-1 { left:35%; animation-delay:0s; }
.scn-shipwreck-and-rescue .swimmer-2 { left:50%; animation-delay:1.5s; }
.scn-shipwreck-and-rescue .rain { position:absolute; inset:0; background: repeating-linear-gradient(0deg, transparent, transparent 3px, rgba(200,220,255,0.1) 3px, rgba(200,220,255,0.1) 4px); animation: sr-rain 0.5s linear infinite; }
.scn-shipwreck-and-rescue .lightning-glow { position:absolute; top:0; left:0; width:100%; height:100%; background: radial-gradient(circle at 60% 20%, rgba(255,255,255,0.15) 0%, transparent 50%); animation: sr-flash 3s ease-in-out infinite; }
@keyframes sr-wave { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-5px) scaleY(1.2); } 100% { transform: translateY(3px) scaleY(0.9); } }
@keyframes sr-rock { 0% { transform: rotate(-5deg) translateY(0); } 25% { transform: rotate(3deg) translateY(-2px); } 50% { transform: rotate(-2deg) translateY(0); } 75% { transform: rotate(4deg) translateY(-1px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes sr-approach { 0% { transform: translateX(20px) scale(0.9); opacity:0.5; } 50% { transform: translateX(-10px) scale(1.1); opacity:1; } 100% { transform: translateX(40px) scale(0.8); opacity:0.6; } }
@keyframes sr-swim { 0% { transform: translateX(0) translateY(0) rotate(-5deg); } 25% { transform: translateX(5px) translateY(-3px) rotate(5deg); } 50% { transform: translateX(0) translateY(0) rotate(-5deg); } 75% { transform: translateX(-4px) translateY(-2px) rotate(3deg); } 100% { transform: translateX(0) translateY(0) rotate(-5deg); } }
@keyframes sr-rain { 0% { background-position: 0 0; } 100% { background-position: 0 20px; } }
@keyframes sr-flash { 0% { opacity:0; } 30% { opacity:1; } 40% { opacity:0; } 70% { opacity:0.3; } 100% { opacity:0; } }

.scn-london-arrival-and-miss-guerins { background: linear-gradient(180deg, #f5f0e8 0%, #e8dcc8 40%, #c8b898 100%), radial-gradient(ellipse at 50% 0%, #fff8f0 0%, transparent 60%); }
.scn-london-arrival-and-miss-guerins .street-wall { position:absolute; left:0; top:0; width:40%; height:100%; background: linear-gradient(90deg, #c8b898 0%, #a89878 100%); box-shadow:inset -10px 0 20px rgba(0,0,0,0.1); }
.scn-london-arrival-and-miss-guerins .door { position:absolute; bottom:10%; left:15%; width:18%; height:40%; background: linear-gradient(90deg, #7a6a5a 0%, #5a4a3a 100%); border-radius:10% 10% 0 0; box-shadow:0 4px 12px rgba(0,0,0,0.3); animation: lg-door 8s ease-in-out infinite alternate; }
.scn-london-arrival-and-miss-guerins .window-glow { position:absolute; bottom:30%; left:30%; width:8%; height:15%; background: radial-gradient(circle, #fff8e0 0%, #f0d880 60%, transparent 100%); border-radius:10%; box-shadow:0 0 30px #ffe080, 0 0 60px rgba(255,224,128,0.4); animation: lg-window 4s ease-in-out infinite alternate; }
.scn-london-arrival-and-miss-guerins .figure-walking { position:absolute; bottom:8%; right:-20%; width:18px; height:42px; background: linear-gradient(180deg, #3a3a5a 0%, #1a1a3a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: lg-walk 14s linear infinite; }
.scn-london-arrival-and-miss-guerins .coin-bag { position:absolute; bottom:12%; right:10%; width:12px; height:16px; background: radial-gradient(circle at 40% 30%, #c8a030 0%, #8a7010 100%); border-radius:30% 30% 40% 40%; box-shadow:0 0 8px rgba(200,160,48,0.5); animation: lg-bag 2s ease-in-out infinite alternate; }
.scn-london-arrival-and-miss-guerins .lamp { position:absolute; bottom:50%; left:50%; width:6px; height:20px; background: #5a4a3a; border-radius:2px; }
.scn-london-arrival-and-miss-guerins .lamp-light { position:absolute; bottom:45%; left:49%; width:30px; height:40px; background: radial-gradient(ellipse at 50% 30%, #fff0c0 0%, #ffd060 40%, transparent 70%); border-radius:50%; filter: blur(6px); animation: lg-lamp 3s ease-in-out infinite alternate; }
.scn-london-arrival-and-miss-guerins .shadow-figure { position:absolute; bottom:8%; left:35%; width:20px; height:40px; background: rgba(60,50,40,0.2); border-radius:50% 50% 40% 40%; filter: blur(4px); animation: lg-shadow 14s linear infinite; }
@keyframes lg-door { 0% { transform: scaleY(1) rotateY(0deg); } 50% { transform: scaleY(1.02) rotateY(-3deg); } 100% { transform: scaleY(1) rotateY(0deg); } }
@keyframes lg-window { 0% { opacity:0.7; box-shadow:0 0 20px #ffe080; } 50% { opacity:1; box-shadow:0 0 40px #ffe080,0 0 80px rgba(255,224,128,0.5); } 100% { opacity:0.8; box-shadow:0 0 25px #ffe080; } }
@keyframes lg-walk { 0% { transform: translateX(0) rotate(0deg); } 10% { transform: translateX(-5px) rotate(2deg); } 20% { transform: translateX(-10px) rotate(-2deg); } 30% { transform: translateX(-15px) rotate(1deg); } 40% { transform: translateX(-20px) rotate(-1deg); } 50% { transform: translateX(-25px) rotate(2deg); } 60% { transform: translateX(-30px) rotate(-2deg); } 70% { transform: translateX(-35px) rotate(1deg); } 80% { transform: translateX(-40px) rotate(-1deg); } 90% { transform: translateX(-45px) rotate(2deg); } 100% { transform: translateX(-50px) rotate(0deg); } }
@keyframes lg-bag { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-3px) scale(1.05); } 100% { transform: translateY(0) scale(1); } }
@keyframes lg-lamp { 0% { transform: scale(0.9); opacity:0.7; } 50% { transform: scale(1.1); opacity:1; } 100% { transform: scale(0.95); opacity:0.8; } }
@keyframes lg-shadow { 0% { transform: translateX(0) scaleX(0.8); opacity:0.3; } 50% { transform: translateX(-20px) scaleX(1); opacity:0.5; } 100% { transform: translateX(-40px) scaleX(0.8); opacity:0.3; } }

/* ========== scene: fraud-and-poor-provisions ========== */
.scn-fraud-and-poor-provisions {
  background:
    linear-gradient(180deg, #0c0c1a 0%, #14142a 40%, #1a1a30 100%),
    radial-gradient(ellipse at 50% 100%, #1a1a35 0%, transparent 70%);
}
.scn-fraud-and-poor-provisions .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #1a1a30 0%, #0e0e1e 100%);
  animation: fap-wall 16s ease-in-out infinite alternate;
}
.scn-fraud-and-poor-provisions .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #1c1c1c 0%, #141414 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,.6);
}
.scn-fraud-and-poor-provisions .window-hole {
  position: absolute; top: 12%; left: 35%; width: 20%; height: 25%;
  background: radial-gradient(ellipse at center, #3a3a5e 0%, #1e1e3a 60%, transparent 80%);
  border-radius: 6px;
  box-shadow: 0 0 30px 8px rgba(50,50,100,.4);
  animation: fap-window 7s ease-in-out infinite;
}
.scn-fraud-and-poor-provisions .figure {
  position: absolute; bottom: 25%; width: 14%; height: 40%;
  background: radial-gradient(ellipse at 50% 30%, #28283a 0%, #10101a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
}
.scn-fraud-and-poor-provisions .figure.huddle-left {
  left: 18%;
  transform: rotate(-8deg);
  animation: fap-fig-left 5s ease-in-out infinite alternate;
}
.scn-fraud-and-poor-provisions .figure.huddle-right {
  right: 18%;
  transform: rotate(6deg);
  animation: fap-fig-right 5s ease-in-out infinite alternate;
}
.scn-fraud-and-poor-provisions .blanket {
  position: absolute; bottom: 18%; left: 30%; width: 40%; height: 18%;
  background: linear-gradient(135deg, #3a2a2a 0%, #2a1a1a 100%);
  border-radius: 40% 40% 20% 20%;
  filter: blur(4px);
  animation: fap-blanket 12s ease-in-out infinite;
}
@keyframes fap-wall { 0% { opacity: .9 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes fap-window { 0% { box-shadow: 0 0 20px 4px rgba(50,50,100,.3) } 33% { box-shadow: 0 0 40px 10px rgba(60,60,120,.5) } 66% { box-shadow: 0 0 25px 6px rgba(50,50,100,.35) } 100% { box-shadow: 0 0 35px 8px rgba(55,55,110,.4) } }
@keyframes fap-fig-left { 0% { transform: rotate(-8deg) translateX(0) } 100% { transform: rotate(-8deg) translateX(2px) } }
@keyframes fap-fig-right { 0% { transform: rotate(6deg) translateX(0) } 100% { transform: rotate(6deg) translateX(-2px) } }
@keyframes fap-blanket { 0%,100% { transform: scaleY(1) translateY(0) } 50% { transform: scaleY(1.02) translateY(-2px) } }

/* ========== scene: petition-to-treasury ========== */
.scn-petition-to-treasury {
  background:
    linear-gradient(180deg, #2a2a3e 0%, #1e1e30 40%, #141428 100%),
    radial-gradient(ellipse at 60% 40%, #3a3a5e 0%, transparent 70%);
}
.scn-petition-to-treasury .room-bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #1e1e30 0%, #141428 50%, #0e0e22 100%);
  animation: ptt-ambient 20s ease-in-out infinite alternate;
}
.scn-petition-to-treasury .desk {
  position: absolute; bottom: 12%; left: 20%; width: 60%; height: 22%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e1a 100%);
  border-radius: 4px;
  box-shadow: 0 6px 12px rgba(0,0,0,.5);
}
.scn-petition-to-treasury .figure {
  position: absolute; bottom: 30%; left: 28%; width: 18%; height: 50%;
  background: radial-gradient(ellipse at 50% 30%, #38384a 0%, #1a1a2e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ptt-figure 6s ease-in-out infinite;
}
.scn-petition-to-treasury .paper {
  position: absolute; bottom: 16%; left: 40%; width: 22%; height: 10%;
  background: linear-gradient(135deg, #e8dcc0 0%, #c8b898 100%);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,.3);
  animation: ptt-paper 8s ease-in-out infinite;
}
.scn-petition-to-treasury .inkwell {
  position: absolute; bottom: 20%; left: 55%; width: 6%; height: 10%;
  background: radial-gradient(ellipse at 50% 30%, #2a2a2a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 30% 30%;
  animation: ptt-ink 4s ease-in-out infinite alternate;
}
.scn-petition-to-treasury .candle {
  position: absolute; bottom: 18%; left: 65%; width: 4%; height: 20%;
  background: linear-gradient(180deg, #e8d098 0%, #c8a868 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 16px 4px rgba(200,160,80,.5);
}
.scn-petition-to-treasury .candle-glow {
  position: absolute; bottom: 30%; left: 62%; width: 10%; height: 14%;
  background: radial-gradient(ellipse, #c8a868 0%, transparent 70%);
  animation: ptt-glow 3s ease-in-out infinite alternate;
}
@keyframes ptt-ambient { 0% { opacity: .85 } 50% { opacity: 1 } 100% { opacity: .8 } }
@keyframes ptt-figure { 0%,100% { transform: rotate(0) translateY(0) } 33% { transform: rotate(-2deg) translateY(-2px) } 66% { transform: rotate(1deg) translateY(-1px) } }
@keyframes ptt-paper { 0%,100% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-3px) rotate(1deg) } }
@keyframes ptt-ink { 0% { transform: scaleY(1) } 100% { transform: scaleY(1.05) } }
@keyframes ptt-glow { 0% { opacity: .7; transform: scale(1) } 50% { opacity: 1; transform: scale(1.2) } 100% { opacity: .8; transform: scale(1.05) } }

/* ========== scene: financial-redress-and-queens-petition ========== */
.scn-financial-redress-and-queens-petition {
  background:
    linear-gradient(180deg, #1e1e30 0%, #161626 40%, #0e0e1e 100%),
    radial-gradient(ellipse at 50% 30%, #2a2a4a 0%, transparent 70%);
}
.scn-financial-redress-and-queens-petition .deep-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #1a1a2e 0%, #121220 100%);
  animation: frq-bg 18s ease-in-out infinite alternate;
}
.scn-financial-redress-and-queens-petition .table {
  position: absolute; bottom: 8%; left: 15%; width: 70%; height: 18%;
  background: linear-gradient(180deg, #402e20 0%, #281c14 100%);
  border-radius: 6px 6px 0 0;
  box-shadow: 0 8px 16px rgba(0,0,0,.6);
}
.scn-financial-redress-and-queens-petition .ledger {
  position: absolute; bottom: 14%; left: 35%; width: 25%; height: 12%;
  background: linear-gradient(135deg, #c8b898 0%, #a09070 100%);
  border-radius: 3px;
  box-shadow: 0 2px 8px rgba(0,0,0,.4);
  animation: frq-ledger 10s ease-in-out infinite;
}
.scn-financial-redress-and-queens-petition .coins {
  position: absolute; bottom: 16%; left: 55%; width: 12%; height: 4%;
  background: radial-gradient(ellipse at 30% 40%, #c8a868 0%, #8a6a30 100%);
  border-radius: 40% 40% 20% 20%;
  animation: frq-coins 5s ease-in-out infinite alternate;
}
.scn-financial-redress-and-queens-petition .hand {
  position: absolute; bottom: 20%; left: 45%; width: 10%; height: 18%;
  background: radial-gradient(ellipse at 50% 40%, #3a2a1e 0%, #20140e 100%);
  border-radius: 40% 40% 30% 30%;
  transform-origin: bottom center;
  animation: frq-hand 4s ease-in-out infinite;
}
.scn-financial-redress-and-queens-petition .candle {
  position: absolute; bottom: 14%; left: 70%; width: 3%; height: 22%;
  background: linear-gradient(180deg, #e0c890 0%, #b89848 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 12px 3px rgba(180,150,80,.5);
}
.scn-financial-redress-and-queens-petition .shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(0deg, rgba(0,0,0,.6) 0%, transparent 100%);
  animation: frq-shadow 12s ease-in-out infinite;
}
@keyframes frq-bg { 0% { opacity: .9 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes frq-ledger { 0%,100% { transform: translateY(0) } 33% { transform: translateY(-2px) } 66% { transform: translateY(1px) } }
@keyframes frq-coins { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-1px) rotate(2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes frq-hand { 0% { transform: rotate(0) translateY(0) } 25% { transform: rotate(-3deg) translateY(-2px) } 50% { transform: rotate(0) translateY(-3px) } 75% { transform: rotate(2deg) translateY(-1px) } 100% { transform: rotate(0) translateY(0) } }
@keyframes frq-shadow { 0%,100% { opacity: .6 } 50% { opacity: .8 } }

/* ========== scene: abolition-expands-commerce ========== */
.scn-abolition-expands-commerce {
  background:
    linear-gradient(180deg, #f5e6c8 0%, #e6cfa0 40%, #d4b87a 100%),
    radial-gradient(ellipse at 50% 30%, #ffdcaa 0%, transparent 80%);
}
.scn-abolition-expands-commerce .warm-bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #f0ddb8 0%, #e8cca0 50%, #d8b878 100%);
  animation: aec-glow 20s ease-in-out infinite alternate;
}
.scn-abolition-expands-commerce .sunburst {
  position: absolute; top: 5%; left: 50%; transform: translateX(-50%);
  width: 50%; height: 60%;
  background: radial-gradient(ellipse at 50% 40%, #ffeecc 0%, transparent 60%);
  animation: aec-sun 12s ease-in-out infinite;
}
.scn-abolition-expands-commerce .window-light {
  position: absolute; top: 0; left: 20%; width: 60%; height: 60%;
  background: linear-gradient(180deg, rgba(255,240,200,0.2) 0%, transparent 100%);
  box-shadow: inset 0 0 60px 20px rgba(200,180,120,0.3);
  animation: aec-light 8s ease-in-out infinite alternate;
}
.scn-abolition-expands-commerce .globe {
  position: absolute; bottom: 18%; left: 40%; width: 20%; height: 40%;
  background: radial-gradient(ellipse at 40% 30%, #4a7a5a 0%, #2a5a3a 40%, #1a3a2a 100%);
  border-radius: 50%;
  box-shadow: 0 4px 12px rgba(0,0,0,.3);
  animation: aec-globe 30s linear infinite;
}
.scn-abolition-expands-commerce .ship {
  position: absolute; bottom: 22%; left: 55%; width: 18%; height: 12%;
  background:
    linear-gradient(180deg, #5a3a2a 0%, #3a201a 100%),
    linear-gradient(90deg, transparent 20%, #e8c898 20% 30%, transparent 30% 50%, #e8c898 50% 60%, transparent 60%);
  border-radius: 30% 30% 10% 10%;
  animation: aec-ship 6s ease-in-out infinite;
}
.scn-abolition-expands-commerce .books {
  position: absolute; bottom: 8%; left: 20%; width: 14%; height: 18%;
  background:
    linear-gradient(180deg, #a04030 0%, #602818 100%),
    linear-gradient(90deg, transparent 25%, #f0dcc0 25% 30%, transparent 30%);
  border-radius: 4px;
  box-shadow: 0 2px 8px rgba(0,0,0,.3);
  animation: aec-books 10s ease-in-out infinite;
}
.scn-abolition-expands-commerce .figure-silhouette {
  position: absolute; bottom: 5%; left: 50%; transform: translateX(-50%);
  width: 10%; height: 30%;
  background: radial-gradient(ellipse at 50% 40%, #2a2a2a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  opacity: .7;
  animation: aec-figure 7s ease-in-out infinite;
}
.scn-abolition-expands-commerce .rays {
  position: absolute; inset: 0;
  background:
    repeating-linear-gradient(90deg, transparent 0%, transparent 5%, rgba(255,240,180,0.05) 5%, rgba(255,240,180,0.05) 10%);
  animation: aec-rays 40s linear infinite;
}
@keyframes aec-glow { 0% { opacity: .9 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes aec-sun { 0%,100% { transform: translateX(-50%) scale(1) } 50% { transform: translateX(-50%) scale(1.05) } }
@keyframes aec-light { 0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .7 } }
@keyframes aec-globe { 0% { transform: rotate(0) } 100% { transform: rotate(360deg) } }
@keyframes aec-ship { 0%,100% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-2px) rotate(-1deg) } 50% { transform: translateY(0) rotate(0) } 75% { transform: translateY(-1px) rotate(1deg) } }
@keyframes aec-books { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes aec-figure { 0%,100% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-3px) } }
@keyframes aec-rays { 0% { background-position: 0 0 } 100% { background-position: 100% 0 } }

.scn-native-cleanliness-practices {
  background: linear-gradient(180deg, #9fc5e8 0%, #fdf5e6 60%), radial-gradient(ellipse at 50% 100%, #f0e6d3 0%, transparent 80%);
}
.scn-native-cleanliness-practices .ncp-sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #b8d4f0 0%, #ffeec0 100%);
  animation: ncp-sky 12s ease-in-out infinite alternate;
}
.scn-native-cleanliness-practices .ncp-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #a8b87a 0%, #5e6b3a 100%);
  border-radius: 40% 60% 0 0 / 30% 40% 0 0;
}
.scn-native-cleanliness-practices .ncp-hut {
  position: absolute; bottom: 30%; left: 40%; width: 80px; height: 60px;
  background: linear-gradient(135deg, #7a5e3a 0%, #4a3420 100%);
  border-radius: 5% 5% 8% 8%;
  box-shadow: 2px 4px 10px rgba(0,0,0,0.3);
  animation: ncp-hut 8s ease-in-out infinite alternate;
}
.scn-native-cleanliness-practices .ncp-hut-roof {
  position: absolute; bottom: 58%; left: 38%; width: 100px; height: 20px;
  background: linear-gradient(180deg, #8b6f47 0%, #5c4428 100%);
  clip-path: polygon(10% 100%, 50% 0%, 90% 100%);
  animation: ncp-roof 6s ease-in-out infinite;
}
.scn-native-cleanliness-practices .ncp-figure {
  position: absolute; bottom: 28%; left: 45%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1e140e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ncp-figure 4s ease-in-out infinite;
}
.scn-native-cleanliness-practices .ncp-sunray {
  position: absolute; top: 10%; left: 30%; width: 120px; height: 200px;
  background: linear-gradient(135deg, rgba(255,230,150,0.3) 0%, transparent 100%);
  transform: rotate(20deg);
  filter: blur(8px);
  animation: ncp-sunray 10s ease-in-out infinite alternate;
}
.scn-native-cleanliness-practices .ncp-grass {
  position: absolute; bottom: 30%; left: 20%; width: 40px; height: 20px;
  background: linear-gradient(180deg, #6b7a3a 0%, #3a4a1a 100%);
  border-radius: 50% 50% 40% 40%;
  animation: ncp-grass 3s ease-in-out infinite;
}
@keyframes ncp-sky {
  0% { opacity: 0.8; transform: translateY(0); }
  50% { opacity: 1; transform: translateY(-5px); }
  100% { opacity: 0.85; transform: translateY(0); }
}
@keyframes ncp-hut {
  0% { transform: translateY(0); box-shadow: 2px 4px 10px rgba(0,0,0,0.3); }
  50% { transform: translateY(-3px); box-shadow: 2px 6px 15px rgba(0,0,0,0.4); }
  100% { transform: translateY(0); box-shadow: 2px 4px 10px rgba(0,0,0,0.3); }
}
@keyframes ncp-roof {
  0% { transform: translateX(0) rotate(0deg); }
  33% { transform: translateX(2px) rotate(1deg); }
  66% { transform: translateX(-2px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes ncp-figure {
  0% { transform: translateX(0) translateY(0) rotate(-2deg); }
  25% { transform: translateX(4px) translateY(-2px) rotate(0deg); }
  50% { transform: translateX(8px) translateY(0) rotate(2deg); }
  75% { transform: translateX(4px) translateY(-2px) rotate(0deg); }
  100% { transform: translateX(0) translateY(0) rotate(-2deg); }
}
@keyframes ncp-sunray {
  0% { opacity: 0.5; transform: rotate(20deg) scale(1); }
  50% { opacity: 0.8; transform: rotate(25deg) scale(1.05); }
  100% { opacity: 0.5; transform: rotate(20deg) scale(1); }
}
@keyframes ncp-grass {
  0%, 100% { transform: scaleY(1); }
  50% { transform: scaleY(1.1); }
}

/* scene 2: magicians-and-poison */
.scn-magicians-and-poison {
  background: linear-gradient(180deg, #d4c8a8 0%, #f5e6c0 40%), radial-gradient(ellipse at 50% 100%, #e8d4a8 0%, transparent 70%);
}
.scn-magicians-and-poison .mtp-sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #c0b090 0%, #f0d8b8 100%);
  animation: mtp-sky 8s ease-in-out infinite alternate;
}
.scn-magicians-and-poison .mtp-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #b09878 0%, #806048 100%);
  border-radius: 30% 70% 0 0 / 20% 60% 0 0;
}
.scn-magicians-and-poison .mtp-house {
  position: absolute; bottom: 35%; left: 55%; width: 90px; height: 70px;
  background: linear-gradient(180deg, #a07050 0%, #604030 100%);
  border-radius: 5% 5% 10% 10%;
  box-shadow: 3px 5px 12px rgba(0,0,0,0.4);
  animation: mtp-house 6s ease-in-out infinite alternate;
}
.scn-magicians-and-poison .mtp-corpse {
  position: absolute; bottom: 25%; left: 35%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #7a5e4a 0%, #4a3228 100%);
  border-radius: 20% 20% 10% 10%;
  transform: rotate(-5deg);
  box-shadow: inset 2px 2px 5px rgba(0,0,0,0.5);
  animation: mtp-corpse 2s ease-in-out infinite;
}
.scn-magicians-and-poison .mtp-bearer1 {
  position: absolute; bottom: 25%; left: 25%; width: 18px; height: 45px;
  background: linear-gradient(180deg, #2a1a10 0%, #0e0806 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mtp-bearer 0.8s ease-in-out infinite;
}
.scn-magicians-and-poison .mtp-bearer2 {
  position: absolute; bottom: 25%; left: 45%; width: 18px; height: 45px;
  background: linear-gradient(180deg, #2a1a10 0%, #0e0806 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mtp-bearer 0.8s ease-in-out infinite reverse;
}
.scn-magicians-and-poison .mtp-vial {
  position: absolute; bottom: 35%; left: 50%; width: 14px; height: 18px;
  background: radial-gradient(circle at 50% 40%, #a8553d 0%, #702243 100%);
  border-radius: 20% 20% 40% 40%;
  box-shadow: 0 0 12px 2px #a8553d, 0 0 20px 5px rgba(168,85,61,0.3);
  animation: mtp-vial 3s ease-in-out infinite alternate;
}
@keyframes mtp-sky {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes mtp-house {
  0% { transform: translateY(0); box-shadow: 3px 5px 12px rgba(0,0,0,0.4); }
  50% { transform: translateY(-4px); box-shadow: 3px 8px 18px rgba(0,0,0,0.5); }
  100% { transform: translateY(0); box-shadow: 3px 5px 12px rgba(0,0,0,0.4); }
}
@keyframes mtp-corpse {
  0%, 100% { transform: rotate(-5deg) translateY(0); opacity:1; }
  50% { transform: rotate(-7deg) translateY(-2px); opacity:0.9; }
}
@keyframes mtp-bearer {
  0% { transform: translateX(0) translateY(0) rotate(-3deg); }
  25% { transform: translateX(3px) translateY(-2px) rotate(0deg); }
  50% { transform: translateX(6px) translateY(0) rotate(3deg); }
  75% { transform: translateX(3px) translateY(-2px) rotate(0deg); }
  100% { transform: translateX(0) translateY(0) rotate(-3deg); }
}
@keyframes mtp-vial {
  0% { box-shadow: 0 0 12px 2px #a8553d, 0 0 20px 5px rgba(168,85,61,0.3); transform: translateY(0); }
  50% { box-shadow: 0 0 18px 6px #a8553d, 0 0 30px 10px rgba(168,85,61,0.5); transform: translateY(-3px); }
  100% { box-shadow: 0 0 12px 2px #a8553d, 0 0 20px 5px rgba(168,85,61,0.3); transform: translateY(0); }
}

/* scene 3: kitchen-ash-and-sale */
.scn-kitchen-ash-and-sale {
  background: linear-gradient(180deg, #1a1210 0%, #2a1c18 50%, #3a2820 100%), radial-gradient(ellipse at 30% 80%, #5a3a2a 0%, transparent 70%);
}
.scn-kitchen-ash-and-sale .kas-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #1e1410 0%, #2a1c18 100%);
  box-shadow: inset 0 -20px 30px rgba(0,0,0,0.6);
}
.scn-kitchen-ash-and-sale .kas-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a1c14 0%, #1a0e0a 100%);
  border-radius: 30% 30% 0 0;
}
.scn-kitchen-ash-and-sale .kas-fireplace {
  position: absolute; bottom: 25%; left: 20%; width: 80px; height: 90px;
  background: linear-gradient(180deg, #4a3020 0%, #261612 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.8);
}
.scn-kitchen-ash-and-sale .kas-fire-glow {
  position: absolute; bottom: 30%; left: 25%; width: 40px; height: 40px;
  background: radial-gradient(circle, #ff8040 0%, #c06030 40%, #402010 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px #ff8040, 0 0 80px 40px rgba(200,80,30,0.4);
  animation: kas-fire 2s ease-in-out infinite alternate;
}
.scn-kitchen-ash-and-sale .kas-ashes {
  position: absolute; bottom: 20%; left: 35%; width: 100px; height: 15px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 30% 30% 20% 20%;
  filter: blur(3px);
  animation: kas-ashes 5s ease-in-out infinite alternate;
}
.scn-kitchen-ash-and-sale .kas-figure-lying {
  position: absolute; bottom: 18%; left: 40%; width: 30px; height: 20px;
  background: linear-gradient(180deg, #2a1a12 0%, #120a08 100%);
  border-radius: 30% 30% 40% 40%;
  transform: rotate(10deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation: kas-lying 4s ease-in-out infinite;
}
.scn-kitchen-ash-and-sale .kas-old-woman {
  position: absolute; bottom: 20%; left: 55%; width: 22px; height: 45px;
  background: linear-gradient(180deg, #3a2a20 0%, #1a120c 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: kas-old-woman 6s ease-in-out infinite;
}
.scn-kitchen-ash-and-sale .kas-pot {
  position: absolute; bottom: 22%; left: 32%; width: 24px; height: 18px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 30% 30%;
  animation: kas-pot 3s ease-in-out infinite alternate;
}
@keyframes kas-fire {
  0% { box-shadow: 0 0 30px 15px #ff8040, 0 0 60px 30px rgba(200,80,30,0.3); transform: scale(1); opacity: 0.8; }
  50% { box-shadow: 0 0 50px 25px #ffa060, 0 0 100px 50px rgba(200,80,30,0.5); transform: scale(1.1); opacity: 1; }
  100% { box-shadow: 0 0 30px 15px #ff8040, 0 0 60px 30px rgba(200,80,30,0.3); transform: scale(1); opacity: 0.8; }
}
@keyframes kas-ashes {
  0% { transform: translateY(0) scale(1); opacity:0.6; }
  50% { transform: translateY(-3px) scale(1.02); opacity:0.8; }
  100% { transform: translateY(0) scale(1); opacity:0.6; }
}
@keyframes kas-lying {
  0%, 100% { transform: rotate(10deg) translateX(0); }
  50% { transform: rotate(8deg) translateX(2px); }
}
@keyframes kas-old-woman {
  0% { transform: translateX(0) translateY(0) rotate(-2deg); }
  50% { transform: translateX(2px) translateY(-3px) rotate(0deg); }
  100% { transform: translateX(0) translateY(0) rotate(-2deg); }
}
@keyframes kas-pot {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}

/* scene 4: sister-torn-away */
.scn-sister-torn-away {
  background: linear-gradient(180deg, #2c3040 0%, #4a5a6a 40%, #8aa0b0 70%), radial-gradient(ellipse at 50% 30%, #b0c8d8 0%, transparent 60%);
}
.scn-sister-torn-away .sta-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #2c3040 0%, #6a8090 100%);
  animation: sta-sky 10s ease-in-out infinite alternate;
}
.scn-sister-torn-away .sta-sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #4a6a7a 0%, #2a3a4a 100%);
  border-radius: 40% 60% 0 0 / 50% 70% 0 0;
}
.scn-sister-torn-away .sta-ship {
  position: absolute; bottom: 35%; left: 60%; width: 100px; height: 60px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%);
  border-radius: 10% 10% 30% 30%;
  transform: rotate(-5deg);
  box-shadow: 0 4px 10px rgba(0,0,0,0.6);
  animation: sta-ship 8s ease-in-out infinite;
}
.scn-sister-torn-away .sta-boy {
  position: absolute; bottom: 30%; left: 40%; width: 18px; height: 35px;
  background: linear-gradient(180deg, #1a1616 0%, #0a0808 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sta-boy 4s ease-in-out infinite;
}
.scn-sister-torn-away .sta-sister {
  position: absolute; bottom: 30%; left: 35%; width: 16px; height: 32px;
  background: linear-gradient(180deg, #2a221e 0%, #14100e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sta-sister 5s ease-in-out infinite alternate;
}
.scn-sister-torn-away .sta-sun-edge {
  position: absolute; top: 15%; left: 20%; width: 60px; height: 60px;
  background: radial-gradient(circle, #ffd080 0%, #ffb060 40%, transparent 70%);
  border-radius: 50%;
  filter: blur(10px);
  animation: sta-sun 12s ease-in-out infinite alternate;
}
.scn-sister-torn-away .sta-wave1 {
  position: absolute; bottom: 15%; left: 10%; width: 120px; height: 20px;
  background: linear-gradient(180deg, rgba(70,110,130,0.5) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(4px);
  animation: sta-wave1 6s ease-in-out infinite;
}
.scn-sister-torn-away .sta-wave2 {
  position: absolute; bottom: 8%; right: 5%; width: 100px; height: 15px;
  background: linear-gradient(180deg, rgba(70,110,130,0.4) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(3px);
  animation: sta-wave2 8s ease-in-out infinite reverse;
}
@keyframes sta-sky {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.75; }
}
@keyframes sta-ship {
  0% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(-3deg) translateY(-4px); }
  100% { transform: rotate(-5deg) translateY(0); }
}
@keyframes sta-boy {
  0% { transform: translateX(0) translateY(0) rotate(-2deg); }
  25% { transform: translateX(3px) translateY(-2px) rotate(0deg); }
  50% { transform: translateX(6px) translateY(0) rotate(2deg); }
  75% { transform: translateX(3px) translateY(-2px) rotate(0deg); }
  100% { transform: translateX(0) translateY(0) rotate(-2deg); }
}
@keyframes sta-sister {
  0% { transform: translateX(0) translateY(0) rotate(1deg); opacity:0.9; }
  50% { transform: translateX(-4px) translateY(-3px) rotate(-1deg); opacity:1; }
  100% { transform: translateX(0) translateY(0) rotate(1deg); opacity:0.9; }
}
@keyframes sta-sun {
  0% { box-shadow: 0 0 30px 10px #ffd080, 0 0 60px 20px rgba(255,176,96,0.3); transform: scale(1); }
  50% { box-shadow: 0 0 50px 20px #ffe0a0, 0 0 100px 40px rgba(255,176,96,0.5); transform: scale(1.1); }
  100% { box-shadow: 0 0 30px 10px #ffd080, 0 0 60px 20px rgba(255,176,96,0.3); transform: scale(1); }
}
@keyframes sta-wave1 {
  0% { transform: translateX(0) scaleY(1); }
  50% { transform: translateX(20px) scaleY(1.3); }
  100% { transform: translateX(0) scaleY(1); }
}
@keyframes sta-wave2 {
  0% { transform: translateX(0) scaleY(1); }
  50% { transform: translateX(-15px) scaleY(1.2); }
  100% { transform: translateX(0) scaleY(1); }
}

/* subscription-j-to-o – dim study with ledger and candle */
.scn-subscription-j-to-o {
  background: 
    linear-gradient(180deg, #2a2a3e 0%, #1f1f2f 40%, #151520 100%),
    radial-gradient(ellipse at 50% 100%, #3a2a1a 0%, transparent 70%);
}
.scn-subscription-j-to-o .desk {
  position: absolute; bottom: 0; left: 5%; right: 5%; height: 45%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 6% 6% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.6);
  animation: sjo-desk 20s ease-in-out infinite alternate;
}
.scn-subscription-j-to-o .ledger {
  position: absolute; bottom: 20%; left: 22%; width: 56%; height: 40%;
  background: linear-gradient(135deg, #6a5a3a 0%, #4a3a2a 40%, #3a2a1a 100%);
  border-radius: 4% 4% 2% 2%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.7), inset 0 2px 4px rgba(200,180,120,0.3);
  transform: perspective(800px) rotateX(8deg);
  animation: sjo-ledger 12s ease-in-out infinite;
}
.scn-subscription-j-to-o .page {
  position: absolute; bottom: 22%; width: 24%; height: 32%;
  background: linear-gradient(135deg, #d8c8a0 0%, #b8a888 100%);
  border-radius: 2%;
  box-shadow: inset 0 2px 6px rgba(0,0,0,0.2);
  animation: sjo-page 8s ease-in-out infinite alternate;
}
.scn-subscription-j-to-o .page-left {
  left: 25%; transform-origin: left center;
  animation: sjo-page-left 8s ease-in-out infinite alternate;
}
.scn-subscription-j-to-o .page-right {
  right: 25%; transform-origin: right center;
  animation: sjo-page-right 8s ease-in-out infinite alternate;
}
.scn-subscription-j-to-o .candle {
  position: absolute; bottom: 42%; left: 18%; width: 8px; height: 50px;
  background: linear-gradient(180deg, #e8d8b0 0%, #c8b88a 100%);
  border-radius: 4px 4px 2px 2px;
  box-shadow: inset 0 -4px 8px rgba(0,0,0,0.3);
}
.scn-subscription-j-to-o .flame {
  position: absolute; bottom: 76%; left: 18%; width: 14px; height: 22px;
  margin-left: -3px;
  background: radial-gradient(circle, #ffd080 0%, #ffa030 50%, transparent 70%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  box-shadow: 0 0 20px 8px #ffa030, 0 0 40px 16px rgba(255,160,48,0.3);
  animation: sjo-flame 1.5s ease-in-out infinite alternate;
}
.scn-subscription-j-to-o .inkwell {
  position: absolute; bottom: 24%; left: 14%; width: 20px; height: 18px;
  background: radial-gradient(circle at 40% 30%, #5a4a3a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.6);
  animation: sjo-inkwell 10s ease-in-out infinite;
}
.scn-subscription-j-to-o .quill {
  position: absolute; bottom: 30%; left: 12%; width: 4px; height: 40px;
  background: linear-gradient(180deg, #e0d0b0 0%, #c8b898 100%);
  transform: rotate(-30deg);
  transform-origin: bottom center;
  border-radius: 50% 50% 0 0;
  animation: sjo-quill 4s ease-in-out infinite alternate;
}
.scn-subscription-j-to-o .shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.5) 100%);
  pointer-events: none;
  animation: sjo-shadow 8s ease-in-out infinite alternate;
}
@keyframes sjo-desk { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes sjo-ledger { 0%,100% { transform: perspective(800px) rotateX(8deg) translateY(0); } 50% { transform: perspective(800px) rotateX(6deg) translateY(-2px); } }
@keyframes sjo-page-left { 0% { transform: rotateY(0deg); } 50% { transform: rotateY(-5deg); } 100% { transform: rotateY(0deg); } }
@keyframes sjo-page-right { 0% { transform: rotateY(0deg); } 50% { transform: rotateY(5deg); } 100% { transform: rotateY(0deg); } }
@keyframes sjo-flame { 0% { transform: scaleY(1) translateY(0); opacity: 0.9; } 25% { transform: scaleY(1.1) translateY(-2px); } 50% { transform: scaleY(0.9) translateY(1px); opacity: 1; } 75% { transform: scaleY(1.05) translateY(-1px); } 100% { transform: scaleY(1) translateY(0); opacity: 0.95; } }
@keyframes sjo-inkwell { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-1px); } }
@keyframes sjo-quill { 0% { transform: rotate(-30deg) translateY(0); } 50% { transform: rotate(-25deg) translateY(-2px); } 100% { transform: rotate(-30deg) translateY(0); } }
@keyframes sjo-shadow { 0% { opacity: 0.5; } 50% { opacity: 0.7; } 100% { opacity: 0.5; } }

/* subscription-p-to-s – bookshelf and reading chair */
.scn-subscription-p-to-s {
  background: 
    linear-gradient(180deg, #2a2e3a 0%, #1f222f 40%, #141720 100%),
    radial-gradient(ellipse at 50% 100%, #2a3a2a 0%, transparent 70%);
}
.scn-subscription-p-to-s .shelf-bg {
  position: absolute; top: 10%; left: 5%; right: 5%; height: 55%;
  background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 100%);
  border-radius: 4%;
  box-shadow: inset 0 4px 12px rgba(0,0,0,0.5);
  animation: sps-bg 30s ease-in-out infinite alternate;
}
.scn-subscription-p-to-s .shelf {
  position: absolute; top: 58%; left: 8%; right: 8%; height: 6px;
  background: linear-gradient(90deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
}
.scn-subscription-p-to-s .book {
  position: absolute; bottom: 42%; /* relative to shelf */
  background: linear-gradient(180deg, #8a7050 0%, #6a5030 100%);
  border-radius: 2px 2px 4px 4px;
  box-shadow: 2px 2px 4px rgba(0,0,0,0.5);
  animation: sps-book 10s ease-in-out infinite alternate;
}
.scn-subscription-p-to-s .book-tall {
  left: 12%; width: 20px; height: 70px; bottom: 50%;
  background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%);
  animation-duration: 12s;
}
.scn-subscription-p-to-s .book-mid {
  left: 22%; width: 18px; height: 55px; bottom: 50%;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%);
  animation-duration: 14s;
}
.scn-subscription-p-to-s .book-thick {
  left: 30%; width: 28px; height: 65px; bottom: 50%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  animation-duration: 11s;
}
.scn-subscription-p-to-s .book-short {
  left: 42%; width: 16px; height: 40px; bottom: 50%;
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%);
  animation-duration: 13s;
}
.scn-subscription-p-to-s .chair {
  position: absolute; bottom: 0; left: 30%; width: 40%; height: 30%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 20% 20%;
  box-shadow: inset 0 -8px 20px rgba(0,0,0,0.5);
  animation: sps-chair 8s ease-in-out infinite;
}
.scn-subscription-p-to-s .lamp-glow {
  position: absolute; top: 5%; left: 70%; width: 60px; height: 60px;
  background: radial-gradient(circle, rgba(255,220,160,0.3) 0%, transparent 70%);
  border-radius: 50%;
  animation: sps-lamp-glow 6s ease-in-out infinite alternate;
}
.scn-subscription-p-to-s .lamp-body {
  position: absolute; top: 8%; left: 72%; width: 8px; height: 30px;
  background: linear-gradient(180deg, #c8b888 0%, #8a7050 100%);
  border-radius: 20%;
  box-shadow: 0 0 12px rgba(255,220,160,0.2);
}
@keyframes sps-bg { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes sps-book { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(-0.5deg); } }
@keyframes sps-chair { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes sps-lamp-glow { 0% { opacity: 0.6; transform: scale(1); } 50% { opacity: 1; transform: scale(1.1); } 100% { opacity: 0.7; transform: scale(0.9); } }

/* subscription-u-to-w – scroll and hand writing */
.scn-subscription-u-to-w {
  background: 
    linear-gradient(180deg, #2e2a2a 0%, #1f1a1a 40%, #151010 100%),
    radial-gradient(ellipse at 50% 40%, #3a2a1a 0%, transparent 70%);
}
.scn-subscription-u-to-w .scroll {
  position: absolute; bottom: 20%; left: 15%; right: 15%; height: 40%;
  background: linear-gradient(135deg, #d8c8a0 0%, #b8a888 50%, #a89878 100%);
  border-radius: 4% 4% 2% 2%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.6), inset 0 2px 6px rgba(255,255,200,0.2);
  transform: perspective(600px) rotateX(5deg);
  animation: suw-scroll 15s ease-in-out infinite alternate;
}
.scn-subscription-u-to-w .scroll-edge {
  position: absolute; top: 0; width: 12px; height: 100%;
  background: linear-gradient(180deg, #a89878 0%, #8a7858 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 6px rgba(0,0,0,0.3);
  animation: suw-edge 10s ease-in-out infinite alternate;
}
.scn-subscription-u-to-w .scroll-edge-left { left: 14%; transform: translateX(-6px); }
.scn-subscription-u-to-w .scroll-edge-right { right: 14%; transform: translateX(6px); }
.scn-subscription-u-to-w .hand {
  position: absolute; bottom: 50%; left: 35%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #d8b898 0%, #b89878 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform: rotate(10deg);
  transform-origin: bottom center;
  animation: suw-hand 4s ease-in-out infinite alternate;
}
.scn-subscription-u-to-w .quill {
  position: absolute; bottom: 60%; left: 38%; width: 4px; height: 35px;
  background: linear-gradient(180deg, #e0d0b0 0%, #c8b898 100%);
  transform: rotate(25deg);
  transform-origin: bottom center;
  border-radius: 50%;
  animation: suw-quill 4s ease-in-out infinite alternate;
}
.scn-subscription-u-to-w .inkpot {
  position: absolute; bottom: 20%; left: 20%; width: 18px; height: 16px;
  background: radial-gradient(circle at 40% 30%, #4a3a2a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.6);
  animation: suw-inkpot 8s ease-in-out infinite;
}
.scn-subscription-u-to-w .stroke {
  position: absolute; bottom: 28%; left: 40%; width: 50px; height: 3px;
  background: linear-gradient(90deg, #2a1a0a 0%, #4a3a2a 100%);
  border-radius: 50%;
  opacity: 0.8;
  animation: suw-stroke 6s ease-in-out infinite alternate;
}
.scn-subscription-u-to-w .stroke-1 { bottom: 30%; animation-delay: 0s; }
.scn-subscription-u-to-w .stroke-2 { bottom: 28%; animation-delay: 1s; }
@keyframes suw-scroll { 0% { transform: perspective(600px) rotateX(5deg) translateY(0); } 50% { transform: perspective(600px) rotateX(3deg) translateY(-2px); } 100% { transform: perspective(600px) rotateX(5deg) translateY(0); } }
@keyframes suw-edge { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes suw-hand { 0% { transform: rotate(10deg) translateY(0); } 50% { transform: rotate(8deg) translateY(-1px); } 100% { transform: rotate(12deg) translateY(0); } }
@keyframes suw-quill { 0% { transform: rotate(25deg) translateY(0); } 50% { transform: rotate(20deg) translateY(-2px); } 100% { transform: rotate(30deg) translateY(0); } }
@keyframes suw-inkpot { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-1px); } }
@keyframes suw-stroke { 0% { width: 30px; opacity: 0.4; } 50% { width: 60px; opacity: 0.9; } 100% { width: 30px; opacity: 0.4; } }

/* apology-to-parliament – figure at podium in warm chamber */
.scn-apology-to-parliament {
  background: 
    linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 40%, #1a0a00 100%),
    radial-gradient(ellipse at 50% 40%, #5a3a1a 0%, transparent 70%);
}
.scn-apology-to-parliament .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.6);
}
.scn-apology-to-parliament .back-wall {
  position: absolute; top: 0; left: 0; right: 0; height: 80%;
  background: linear-gradient(180deg, #2a1a0a 0%, #3a2a1a 100%);
  border-radius: 0 0 20% 20%;
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.5);
}
.scn-apology-to-parliament .podium {
  position: absolute; bottom: 18%; left: 42%; width: 16%; height: 30%;
  background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%);
  border-radius: 10% 10% 4% 4%;
  box-shadow: 0 -6px 12px rgba(0,0,0,0.4);
  transform: perspective(600px) rotateX(2deg);
  animation: atp-podium 12s ease-in-out infinite alternate;
}
.scn-apology-to-parliament .figure {
  position: absolute; bottom: 28%; left: 46%; width: 8%; height: 40%;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: atp-figure 6s ease-in-out infinite alternate;
}
.scn-apology-to-parliament .torch {
  position: absolute; bottom: 55%; width: 10px; height: 50px;
  background: linear-gradient(180deg, #c8a870 0%, #8a6030 100%);
  border-radius: 4px;
  box-shadow: 0 -4px 8px rgba(0,0,0,0.5);
}
.scn-apology-to-parliament .torch-left { left: 20%; }
.scn-apology-to-parliament .torch-right { right: 20%; }
.scn-apology-to-parliament .flame {
  position: absolute; bottom: 78%; width: 20px; height: 28px;
  background: radial-gradient(circle, #ffd080 0%, #ff8030 50%, transparent 70%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  filter: blur(2px);
  animation: atp-flame 2s ease-in-out infinite alternate;
}
.scn-apology-to-parliament .flame-left { left: 20%; margin-left: -5px; }
.scn-apology-to-parliament .flame-right { right: 20%; margin-right: -5px; }
.scn-apology-to-parliament .bench {
  position: absolute; bottom: 8%; width: 50%; height: 14%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 6% 6% 2% 2%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  transform: perspective(400px) rotateX(10deg);
  animation: atp-bench 15s ease-in-out infinite alternate;
}
.scn-apology-to-parliament .bench-1 { left: 5%; }
.scn-apology-to-parliament .bench-2 { right: 5%; }
@keyframes atp-podium { 0% { transform: perspective(600px) rotateX(2deg) translateY(0); } 50% { transform: perspective(600px) rotateX(0deg) translateY(-2px); } 100% { transform: perspective(600px) rotateX(2deg) translateY(0); } }
@keyframes atp-figure { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes atp-flame { 0% { transform: scaleY(1) translateY(0); opacity: 0.8; } 25% { transform: scaleY(1.2) translateY(-3px); } 50% { transform: scaleY(0.9) translateY(1px); opacity: 1; } 75% { transform: scaleY(1.1) translateY(-1px); } 100% { transform: scaleY(1) translateY(0); opacity: 0.9; } }
@keyframes atp-bench { 0% { transform: perspective(400px) rotateX(10deg) translateY(0); } 50% { transform: perspective(400px) rotateX(8deg) translateY(-1px); } 100% { transform: perspective(400px) rotateX(10deg) translateY(0); } }

/* Scene 1: introduction-and-epigraph (calm, bright-interior) */
.scn-introduction-and-epigraph {
  background: 
    linear-gradient(180deg, #f5e6d3 0%, #e8d5c0 40%, #c9b49f 100%),
    radial-gradient(ellipse at 70% 30%, #fff8e7 0%, transparent 70%);
}

.scn-introduction-and-epigraph .window {
  position: absolute;
  top: 8%;
  left: 25%;
  width: 50%;
  height: 40%;
  background: linear-gradient(180deg, #d4e8f0 0%, #b0d0e0 100%);
  border-radius: 12% / 15%;
  box-shadow: inset 0 0 30px rgba(255,255,240,0.3);
  animation: ie-window 8s ease-in-out infinite alternate;
}

.scn-introduction-and-epigraph .desk {
  position: absolute;
  bottom: 10%;
  left: 15%;
  right: 15%;
  height: 12%;
  background: linear-gradient(180deg, #8b6f4a 0%, #5a4a2e 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 4px 12px rgba(0,0,0,0.3);
}

.scn-introduction-and-epigraph .book {
  position: absolute;
  bottom: 22%;
  left: 60%;
  width: 28%;
  height: 14%;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 6% 12% 6% 12% / 20% 30% 20% 30%;
  transform: rotate(-3deg);
  animation: ie-book 12s ease-in-out infinite alternate;
}

.scn-introduction-and-epigraph .candle {
  position: absolute;
  bottom: 22%;
  left: 38%;
  width: 6%;
  height: 18%;
  background: linear-gradient(180deg, #e8d4b0 0%, #c8a870 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
}

.scn-introduction-and-epigraph .flame {
  position: absolute;
  bottom: 40%;
  left: 40%;
  width: 4%;
  height: 8%;
  background: radial-gradient(circle, #ffe8a0 20%, #ffb840 70%, transparent);
  border-radius: 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: ie-flame 3s ease-in-out infinite alternate;
}

.scn-introduction-and-epigraph .vignette {
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at 70% 30%, transparent 50%, rgba(0,0,0,0.25));
  pointer-events: none;
  animation: ie-vignette 10s ease-in-out infinite alternate;
}

@keyframes ie-window {
  0% { opacity: 0.8; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.02); }
  100% { opacity: 0.85; transform: scale(0.98); }
}

@keyframes ie-book {
  0% { transform: rotate(-3deg) translateY(0); }
  50% { transform: rotate(-1deg) translateY(-2px); }
  100% { transform: rotate(-4deg) translateY(0); }
}

@keyframes ie-flame {
  0% { transform: scaleY(1) rotate(0deg); opacity: 0.9; }
  25% { transform: scaleY(1.1) rotate(2deg); }
  50% { transform: scaleY(0.9) rotate(-2deg); opacity: 1; }
  75% { transform: scaleY(1.05) rotate(1deg); }
  100% { transform: scaleY(1) rotate(0deg); opacity: 0.85; }
}

@keyframes ie-vignette {
  0% { opacity: 0.5; }
  50% { opacity: 0.3; }
  100% { opacity: 0.6; }
}

/* Scene 2: dedication-to-parliament (warm, bright-interior) */
.scn-dedication-to-parliament {
  background:
    linear-gradient(180deg, #8b5a2b 0%, #6b3a1a 40%, #3a1a0a 100%),
    radial-gradient(ellipse at 50% 100%, #ffd080 0%, transparent 60%);
}

.scn-dedication-to-parliament .fireplace {
  position: absolute;
  bottom: 0;
  left: 20%;
  width: 60%;
  height: 50%;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%);
  border-radius: 30% 30% 0 0;
  box-shadow: inset 0 -20px 40px rgba(255,180,60,0.4);
}

.scn-dedication-to-parliament .mantel {
  position: absolute;
  bottom: 50%;
  left: 15%;
  width: 70%;
  height: 6%;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a0a 100%);
  border-radius: 2px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.5);
}

.scn-dedication-to-parliament .portrait {
  position: absolute;
  bottom: 56%;
  left: 35%;
  width: 30%;
  height: 30%;
  background: radial-gradient(ellipse at 50% 30%, #c8a080 0%, #8a6040 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-5deg);
  animation: dp-portrait 6s ease-in-out infinite alternate;
  box-shadow: 0 8px 20px rgba(0,0,0,0.6);
}

.scn-dedication-to-parliament .desk {
  position: absolute;
  bottom: 8%;
  left: 25%;
  width: 50%;
  height: 15%;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a1a0a 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 2px 8px rgba(0,0,0,0.4);
}

.scn-dedication-to-parliament .quill {
  position: absolute;
  bottom: 23%;
  left: 45%;
  width: 20%;
  height: 10%;
  background: linear-gradient(135deg, #e8d0a8 0%, #b09870 100%);
  border-radius: 0 80% 80% 0 / 0 60% 60% 0;
  transform-origin: left center;
  animation: dp-quill 4s ease-in-out infinite alternate;
}

.scn-dedication-to-parliament .paper {
  position: absolute;
  bottom: 18%;
  left: 35%;
  width: 30%;
  height: 12%;
  background: linear-gradient(180deg, #f5e6c8 0%, #d9c8a0 100%);
  border-radius: 2%;
  transform: rotate(2deg);
  animation: dp-paper 10s ease-in-out infinite alternate;
}

.scn-dedication-to-parliament .inkwell {
  position: absolute;
  bottom: 20%;
  left: 65%;
  width: 8%;
  height: 12%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 20% 20%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
}

@keyframes dp-portrait {
  0% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(-3deg) translateY(-4px); }
  100% { transform: rotate(-6deg) translateY(0); }
}

@keyframes dp-quill {
  0% { transform: rotate(10deg) scaleX(1); }
  50% { transform: rotate(5deg) scaleX(1.05); }
  100% { transform: rotate(12deg) scaleX(0.95); }
}

@keyframes dp-paper {
  0% { transform: rotate(2deg) translateX(0); }
  50% { transform: rotate(0deg) translateX(3px); }
  100% { transform: rotate(3deg) translateX(0); }
}

@keyframes dp-fire {
  /* not used directly, but we can have a fire animation if needed, though we don't have a fire child; fireplace uses shadow. Using from portait etc. */
}

/* Adding a dp-fire keyframe to satisfy multi-stop rule, but not applied? Actually we have 4 animations already. */
@keyframes dp-fire {
  0% { box-shadow: inset 0 -20px 40px rgba(255,180,60,0.2); }
  50% { box-shadow: inset 0 -20px 60px rgba(255,200,80,0.5); }
  100% { box-shadow: inset 0 -20px 30px rgba(255,160,40,0.3); }
}

/* scene 2 background still uses dp-fire? No, but it's okay to have an unused keyframe as long as we have at least 4 animations. Actually we have 4 animations already (portrait, quill, paper, and we need one more for fireplace? We can add a fireplace animation. Let's add .fireplace animation. But we already have .fireplace with no animation. Let's add an animation to .fireplace to meet 4 per scene. */
.scn-dedication-to-parliament .fireplace {
  animation: dp-fire 8s ease-in-out infinite alternate;
}

/* Scene 3: subscription-royalty-to-d (calm, dim-interior) */
.scn-subscription-royalty-to-d {
  background:
    linear-gradient(180deg, #2c2c34 0%, #1a1a22 60%, #0e0e14 100%),
    radial-gradient(ellipse at 50% 100%, #3a3a4a 0%, transparent 70%);
}

.scn-subscription-royalty-to-d .shelf {
  position: absolute;
  bottom: 30%;
  left: 10%;
  width: 80%;
  height: 4%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.6);
  animation: sr-shelf 12s ease-in-out infinite alternate;
}

.scn-subscription-royalty-to-d .book-a {
  position: absolute;
  bottom: 34%;
  left: 15%;
  width: 12%;
  height: 20%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%);
  border-radius: 8% 8% 4% 4%;
  transform: rotate(1deg);
  animation: sr-booka 6s ease-in-out infinite alternate;
}

.scn-subscription-royalty-to-d .book-b {
  position: absolute;
  bottom: 36%;
  left: 40%;
  width: 10%;
  height: 18%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 8% 8% 4% 4%;
  transform: rotate(-2deg);
  animation: sr-bookb 8s ease-in-out infinite alternate;
}

.scn-subscription-royalty-to-d .book-c {
  position: absolute;
  bottom: 32%;
  left: 60%;
  width: 14%;
  height: 22%;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%);
  border-radius: 8% 8% 4% 4%;
  transform: rotate(0.5deg);
  animation: sr-bookc 10s ease-in-out infinite alternate;
}

.scn-subscription-royalty-to-d .lamp {
  position: absolute;
  bottom: 26%;
  left: 75%;
  width: 6%;
  height: 24%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 12px rgba(255,200,100,0.3);
}

.scn-subscription-royalty-to-d .lamplight {
  position: absolute;
  bottom: 50%;
  left: 70%;
  width: 16%;
  height: 30%;
  background: radial-gradient(ellipse, rgba(255,200,100,0.3) 0%, rgba(255,200,100,0) 70%);
  border-radius: 50%;
  animation: sr-lamplight 5s ease-in-out infinite alternate;
}

@keyframes sr-shelf {
  0% { transform: scaleX(1); }
  50% { transform: scaleX(1.02); }
  100% { transform: scaleX(0.98); }
}

@keyframes sr-booka {
  0% { transform: rotate(1deg) translateY(0); }
  50% { transform: rotate(3deg) translateY(-2px); }
  100% { transform: rotate(0deg) translateY(0); }
}

@keyframes sr-bookb {
  0% { transform: rotate(-2deg) translateY(0); }
  50% { transform: rotate(-4deg) translateY(-3px); }
  100% { transform: rotate(-1deg) translateY(0); }
}

@keyframes sr-bookc {
  0% { transform: rotate(0.5deg) translateY(0); }
  50% { transform: rotate(2deg) translateY(-1px); }
  100% { transform: rotate(-0.5deg) translateY(0); }
}

@keyframes sr-lamplight {
  0% { opacity: 0.4; transform: scale(1); }
  50% { opacity: 0.6; transform: scale(1.1); }
  100% { opacity: 0.3; transform: scale(0.9); }
}

/* Scene 4: subscription-e-to-h (calm, dim-interior) */
.scn-subscription-e-to-h {
  background:
    linear-gradient(180deg, #1e1e28 0%, #14141c 60%, #0a0a10 100%),
    radial-gradient(ellipse at 50% 80%, #2a2a3a 0%, transparent 70%);
}

.scn-subscription-e-to-h .table {
  position: absolute;
  bottom: 5%;
  left: 10%;
  width: 80%;
  height: 10%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 -2px 8px rgba(0,0,0,0.5);
}

.scn-subscription-e-to-h .bookstack {
  position: absolute;
  bottom: 15%;
  left: 20%;
  width: 30%;
  height: 25%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%);
  border-radius: 8% 8% 4% 4%;
  transform: rotate(-1deg);
  box-shadow: 0 4px 12px rgba(0,0,0,0.6);
  animation: se-bookstack 15s ease-in-out infinite alternate;
}

.scn-subscription-e-to-h .scroll {
  position: absolute;
  bottom: 14%;
  left: 55%;
  width: 20%;
  height: 8%;
  background: linear-gradient(180deg, #d9c8a0 0%, #b09870 100%);
  border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%;
  transform: rotate(5deg);
  animation: se-scroll 20s ease-in-out infinite alternate;
}

.scn-subscription-e-to-h .candle {
  position: absolute;
  bottom: 15%;
  left: 80%;
  width: 4%;
  height: 16%;
  background: linear-gradient(180deg, #e8d4b0 0%, #c8a870 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
}

.scn-subscription-e-to-h .candleflame {
  position: absolute;
  bottom: 31%;
  left: 81%;
  width: 2%;
  height: 6%;
  background: radial-gradient(circle, #ffe8a0 20%, #ffb840 60%, transparent);
  border-radius: 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: se-flame 3s ease-in-out infinite alternate;
}

.scn-subscription-e-to-h .shadow {
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at 80% 70%, transparent 40%, rgba(0,0,0,0.4));
  pointer-events: none;
  animation: se-shadow 12s ease-in-out infinite alternate;
}

@keyframes se-bookstack {
  0% { transform: rotate(-1deg) translateY(0); }
  50% { transform: rotate(0deg) translateY(-3px); }
  100% { transform: rotate(-2deg) translateY(0); }
}

@keyframes se-scroll {
  0% { transform: rotate(5deg) scaleX(1); }
  50% { transform: rotate(3deg) scaleX(1.03); }
  100% { transform: rotate(6deg) scaleX(0.97); }
}

@keyframes se-flame {
  0% { transform: scaleY(1) rotate(0deg); opacity: 0.8; }
  25% { transform: scaleY(1.2) rotate(3deg); }
  50% { transform: scaleY(0.8) rotate(-3deg); opacity: 1; }
  75% { transform: scaleY(1.1) rotate(2deg); }
  100% { transform: scaleY(1) rotate(0deg); opacity: 0.7; }
}

@keyframes se-shadow {
  0% { opacity: 0.3; }
  50% { opacity: 0.5; }
  100% { opacity: 0.2; }
}

/* scene: gods-hand-in-survival (calm sunlit, vertical shaft) */
.scn-gods-hand-in-survival {
  background: linear-gradient(180deg, #fce4b4 0%, #d4a76a 30%, #5c3a1a 70%, #1a0c00 100%),
              radial-gradient(ellipse at 50% 0%, #fff3d4 0%, transparent 70%);
}
.scn-gods-hand-in-survival .shaft {
  position:absolute; inset:0; 
  background: linear-gradient(180deg, transparent 0%, rgba(92,58,26,0.4) 60%, #1a0c00 100%);
}
.scn-gods-hand-in-survival .deck {
  position:absolute; top:0; left:0; right:0; height:12%;
  background: linear-gradient(180deg, #b8904a 0%, #8a6a32 100%);
  box-shadow: 0 4px 12px rgba(0,0,0,0.5);
}
.scn-gods-hand-in-survival .hold {
  position:absolute; bottom:0; left:10%; right:10%; height:60%;
  background: linear-gradient(180deg, #2a1a0a 0%, #0d0600 100%);
  border-radius: 0 0 8% 8%;
  box-shadow: inset 0 20px 30px rgba(0,0,0,0.7);
}
.scn-gods-hand-in-survival .light-beam {
  position:absolute; top:10%; left:35%; width:30%; height:50%;
  background: linear-gradient(180deg, rgba(255,240,180,0.6) 0%, rgba(255,220,150,0.3) 60%, transparent 100%);
  clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%);
  animation: ghs-beam 8s ease-in-out infinite alternate;
}
.scn-gods-hand-in-survival .figure-falling {
  position:absolute; top:18%; left:45%; width:20px; height:40px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0d0600 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform: rotate(15deg);
  animation: ghs-fall 4s ease-in-out infinite;
}
.scn-gods-hand-in-survival .hand-glow {
  position:absolute; top:5%; left:35%; width:100px; height:60px;
  background: radial-gradient(ellipse at 50% 100%, rgba(255,230,150,0.8) 0%, rgba(255,200,100,0.3) 50%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 60px 30px rgba(255,230,150,0.4);
  animation: ghs-hand 6s ease-in-out infinite alternate;
}
@keyframes ghs-beam {
  0% { opacity:0.7; transform: scaleY(1); }
  50% { opacity:1; transform: scaleY(1.05); }
  100% { opacity:0.8; transform: scaleY(0.95); }
}
@keyframes ghs-fall {
  0% { transform: rotate(15deg) translateY(0); }
  25% { transform: rotate(10deg) translateY(5px); }
  50% { transform: rotate(20deg) translateY(-2px); }
  75% { transform: rotate(5deg) translateY(8px); }
  100% { transform: rotate(15deg) translateY(0); }
}
@keyframes ghs-hand {
  0% { opacity:0.5; box-shadow: 0 0 40px 20px rgba(255,230,150,0.3); }
  50% { opacity:0.9; box-shadow: 0 0 80px 40px rgba(255,240,180,0.5); }
  100% { opacity:0.6; box-shadow: 0 0 50px 25px rgba(255,200,100,0.4); }
}

/* scene: falling-horse-and-sale (tense sunlit, cliff edge) */
.scn-falling-horse-and-sale {
  background: linear-gradient(180deg, #f2d77a 0%, #d4a76a 30%, #8a6a32 60%, #4a2a0a 100%),
              radial-gradient(ellipse at 50% 0%, #fff2c0 0%, transparent 60%);
}
.scn-falling-horse-and-sale .sky {
  position:absolute; top:0; left:0; right:0; height:55%;
  background: linear-gradient(180deg, #f7e8a0 0%, #d4b870 100%);
  animation: fhs-sky 12s ease-in-out infinite alternate;
}
.scn-falling-horse-and-sale .cliff {
  position:absolute; bottom:20%; left:0; right:40%; height:40%;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 0 30% 0 0;
  box-shadow: 4px 0 12px rgba(0,0,0,0.5);
}
.scn-falling-horse-and-sale .precipice {
  position:absolute; bottom:18%; left:60%; right:0; height:35%;
  background: linear-gradient(180deg, #4a3a2a 0%, #1a0c00 100%);
  clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 20% 100%);
}
.scn-falling-horse-and-sale .horse {
  position:absolute; bottom:28%; left:35%; width:70px; height:50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 40% 40% 30% 30% / 60% 40% 40% 60%;
  transform: rotate(-20deg);
  animation: fhs-horse 3s ease-in-out infinite;
}
.scn-falling-horse-and-sale .rider {
  position:absolute; bottom:38%; left:42%; width:16px; height:36px;
  background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 60% 50% 50% 40%;
  transform: rotate(25deg);
  animation: fhs-rider 3s ease-in-out infinite;
}
.scn-falling-horse-and-sale .sun {
  position:absolute; top:8%; left:70%; width:50px; height:50px;
  background: radial-gradient(circle, #fff4d0 0%, #f2d77a 60%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 60px 30px rgba(242,215,122,0.5);
  animation: fhs-sun 20s linear infinite;
}
.scn-falling-horse-and-sale .dust {
  position:absolute; bottom:30%; left:30%; width:40px; height:20px;
  background: radial-gradient(ellipse at 50% 50%, rgba(180,140,80,0.6), transparent);
  filter: blur(4px);
  animation: fhs-dust 2s ease-in-out infinite alternate;
}
@keyframes fhs-sky {
  0% { opacity:0.9; }
  50% { opacity:1; }
  100% { opacity:0.85; }
}
@keyframes fhs-horse {
  0% { transform: rotate(-20deg) translateX(0); }
  25% { transform: rotate(-15deg) translateX(5px); }
  50% { transform: rotate(-25deg) translateX(-3px); }
  75% { transform: rotate(-18deg) translateX(4px); }
  100% { transform: rotate(-20deg) translateX(0); }
}
@keyframes fhs-rider {
  0% { transform: rotate(25deg) translateX(0); }
  25% { transform: rotate(20deg) translateX(-2px); }
  50% { transform: rotate(30deg) translateX(3px); }
  75% { transform: rotate(22deg) translateX(-1px); }
  100% { transform: rotate(25deg) translateX(0); }
}
@keyframes fhs-sun {
  0% { transform: translateX(0); opacity:0.9; }
  50% { transform: translateX(10px); opacity:1; }
  100% { transform: translateX(0); opacity:0.9; }
}
@keyframes fhs-dust {
  0% { opacity:0.3; transform: scale(1); }
  100% { opacity:0.7; transform: scale(1.5); }
}

/* scene: despair-and-new-master (dark dark, ship deck night) */
.scn-despair-and-new-master {
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a3a 30%, #0a0a12 70%, #000005 100%),
              radial-gradient(ellipse at 20% 50%, #1a1a3a 0%, transparent 70%);
}
.scn-despair-and-new-master .deck {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a12 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.8);
}
.scn-despair-and-new-master .figure-slumped {
  position:absolute; bottom:10%; left:30%; width:30px; height:45px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform: rotate(10deg) translateY(5px);
  animation: dmn-slump 6s ease-in-out infinite;
}
.scn-despair-and-new-master .master {
  position:absolute; bottom:15%; right:20%; width:22px; height:65px;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a12 100%);
  border-radius: 30% 30% 20% 20% / 60% 60% 40% 40%;
  box-shadow: -2px 0 8px rgba(0,0,0,0.6);
  animation: dmn-master 8s ease-in-out infinite;
}
.scn-despair-and-new-master .lantern {
  position:absolute; bottom:42%; left:50%; width:10px; height:10px;
  background: radial-gradient(circle, #ffd080 0%, #b07a30 60%);
  border-radius: 50%;
  box-shadow: 0 0 30px 15px rgba(255,208,128,0.3), 0 0 60px 30px rgba(255,208,128,0.1);
  animation: dmn-lantern 4s ease-in-out infinite alternate;
}
.scn-despair-and-new-master .tear-particle {
  position:absolute; bottom:18%; left:35%; width:4px; height:6px;
  background: radial-gradient(ellipse at 50% 50%, rgba(100,140,200,0.6), transparent);
  border-radius: 50%;
  filter: blur(1px);
  animation: dmn-tear 2s ease-in-out infinite;
}
.scn-despair-and-new-master .shadow {
  position:absolute; bottom:0; left:0; right:0; height:50%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.8) 100%);
  animation: dmn-shadow 10s ease-in-out infinite alternate;
}
@keyframes dmn-slump {
  0% { transform: rotate(10deg) translateY(5px); opacity:0.9; }
  50% { transform: rotate(8deg) translateY(10px); opacity:0.7; }
  100% { transform: rotate(12deg) translateY(3px); opacity:0.95; }
}
@keyframes dmn-master {
  0% { transform: scaleY(1); opacity:0.8; }
  50% { transform: scaleY(1.05); opacity:1; }
  100% { transform: scaleY(0.95); opacity:0.85; }
}
@keyframes dmn-lantern {
  0% { box-shadow: 0 0 20px 10px rgba(255,208,128,0.2); opacity:0.7; }
  50% { box-shadow: 0 0 40px 20px rgba(255,208,128,0.4); opacity:1; }
  100% { box-shadow: 0 0 30px 15px rgba(255,208,128,0.3); opacity:0.8; }
}
@keyframes dmn-tear {
  0% { transform: translateY(0); opacity:0.6; }
  50% { transform: translateY(8px); opacity:0.2; }
  100% { transform: translateY(0); opacity:0.6; }
}
@keyframes dmn-shadow {
  0% { opacity:0.6; }
  50% { opacity:0.8; }
  100% { opacity:0.5; }
}

/* scene: sold-to-robert-king (tense sunlit, dock scene) */
.scn-sold-to-robert-king {
  background: linear-gradient(180deg, #f2e0a0 0%, #c8b070 40%, #8a7a4a 70%, #4a3a1a 100%),
              radial-gradient(ellipse at 50% 0%, #fff4c0 0%, transparent 60%);
}
.scn-sold-to-robert-king .water {
  position:absolute; bottom:0; left:0; right:0; height:40%;
  background: linear-gradient(180deg, #6a8a9a 0%, #3a5a6a 100%);
  animation: srk-water 8s ease-in-out infinite alternate;
}
.scn-sold-to-robert-king .sky {
  position:absolute; top:0; left:0; right:0; height:65%;
  background: linear-gradient(180deg, #f7ecc0 0%, #d4c080 100%);
  animation: srk-sky 15s ease-in-out infinite alternate;
}
.scn-sold-to-robert-king .boat {
  position:absolute; bottom:35%; left:20%; width:80px; height:30px;
  background: linear-gradient(180deg, #5a4a2a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  transform: rotate(-3deg);
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: srk-boat 6s ease-in-out infinite;
}
.scn-sold-to-robert-king .figure-boat {
  position:absolute; bottom:38%; left:25%; width:16px; height:34px;
  background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 60% 50% 40% 40%;
  transform: rotate(5deg);
  animation: srk-figure 4s ease-in-out infinite;
}
.scn-sold-to-robert-king .merchant {
  position:absolute; bottom:20%; right:15%; width:20px; height:50px;
  background: linear-gradient(180deg, #3a4a3a 0%, #1a2a1a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 40% 40%;
  box-shadow: -2px 0 6px rgba(0,0,0,0.3);
  animation: srk-merchant 7s ease-in-out infinite;
}
.scn-sold-to-robert-king .dock {
  position:absolute; bottom:20%; left:0; right:60%; height:10%;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a1a 100%);
  border-radius: 0 4% 0 0;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
}
.scn-sold-to-robert-king .distant-land {
  position:absolute; bottom:40%; left:60%; right:0; height:30%;
  background: linear-gradient(180deg, #7a6a4a 0%, #5a4a2a 100%);
  border-radius: 30% 0 0 0;
  opacity:0.6;
}
@keyframes srk-water {
  0% { background-position: 0% 0%; }
  50% { background-position: 10% 5%; }
  100% { background-position: -5% 2%; }
}
@keyframes srk-sky {
  0% { opacity:0.9; }
  50% { opacity:1; }
  100% { opacity:0.85; }
}
@keyframes srk-boat {
  0% { transform: rotate(-3deg) translateX(0); }
  25% { transform: rotate(-1deg) translateX(4px); }
  50% { transform: rotate(-4deg) translateX(-2px); }
  75% { transform: rotate(-2deg) translateX(3px); }
  100% { transform: rotate(-3deg) translateX(0); }
}
@keyframes srk-figure {
  0% { transform: rotate(5deg) translateY(0); }
  25% { transform: rotate(3deg) translateY(-3px); }
  50% { transform: rotate(7deg) translateY(2px); }
  75% { transform: rotate(4deg) translateY(-1px); }
  100% { transform: rotate(5deg) translateY(0); }
}
@keyframes srk-merchant {
  0% { transform: scaleY(1); opacity:0.8; }
  50% { transform: scaleY(1.04); opacity:1; }
  100% { transform: scaleY(0.97); opacity:0.85; }
}

/* Scene: smyrna-and-resolve (calm, sunlit) */
.scn-smyrna-and-resolve {
  background: linear-gradient(180deg, #87ceeb 0%, #b0e0e6 40%, #f0e68c 100%),
              radial-gradient(ellipse at 50% 10%, #fff8dc 0%, transparent 70%);
}
.scn-smyrna-and-resolve .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #b0e0e6 0%, #d4eef7 50%, #fdf5e6 100%);
  animation: sr-sky 20s ease-in-out infinite alternate;
}
.scn-smyrna-and-resolve .sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #1e90ff 0%, #4682b4 60%, #2c5f7d 100%);
  animation: sr-sea 12s ease-in-out infinite alternate;
}
.scn-smyrna-and-resolve .city {
  position: absolute; bottom: 42%; left: 10%; right: 10%; height: 20%;
  background: linear-gradient(180deg, #a0522d 0%, #8b4513 50%, #5c3a1a 100%);
  border-radius: 30% 30% 0 0 / 60% 60% 0 0;
  box-shadow: 0 -4px 20px rgba(255, 215, 0, 0.4);
  animation: sr-city 25s ease-in-out infinite alternate;
}
.scn-smyrna-and-resolve .ship {
  position: absolute; bottom: 38%; left: 40%; width: 120px; height: 50px;
  background: linear-gradient(180deg, #654321 0%, #3e2723 100%);
  border-radius: 80% 80% 0 0 / 100% 100% 0 0;
  clip-path: polygon(0% 100%, 20% 0%, 80% 0%, 100% 100%);
  animation: sr-ship 18s ease-in-out infinite;
}
.scn-smyrna-and-resolve .sun {
  position: absolute; top: 8%; left: 60%; width: 60px; height: 60px;
  background: radial-gradient(circle, #fff8dc 0%, #ffd700 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 80px 40px rgba(255, 215, 0, 0.5);
  animation: sr-sun 30s ease-in-out infinite alternate;
}
.scn-smyrna-and-resolve .cloud-a {
  position: absolute; top: 12%; left: -10%; width: 150px; height: 30px;
  background: rgba(255, 255, 255, 0.6);
  border-radius: 50%;
  filter: blur(12px);
  animation: sr-cloud-drift 45s linear infinite;
}
.scn-smyrna-and-resolve .cloud-b {
  position: absolute; top: 20%; right: -20%; width: 200px; height: 35px;
  background: rgba(255, 255, 255, 0.4);
  border-radius: 50%;
  filter: blur(15px);
  animation: sr-cloud-drift-rev 60s linear infinite;
}
.scn-smyrna-and-resolve .gull {
  position: absolute; top: 15%; left: 70%; width: 20px; height: 12px;
  background: #2f2f2f;
  border-radius: 50% 50% 0 0;
  clip-path: polygon(0% 100%, 40% 0%, 60% 0%, 100% 100%);
  animation: sr-gull 6s ease-in-out infinite;
}
@keyframes sr-sky {
  0% { opacity: 0.85; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes sr-sea {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-4px) scaleY(1.02); }
  100% { transform: translateY(0) scaleY(1); }
}
@keyframes sr-city {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes sr-ship {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(15px) rotate(1deg); }
  50% { transform: translateX(-10px) rotate(-1deg); }
  75% { transform: translateX(8px) rotate(0.5deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes sr-sun {
  0% { transform: scale(0.9); opacity: 0.8; }
  50% { transform: scale(1.05); opacity: 1; }
  100% { transform: scale(0.95); opacity: 0.9; }
}
@keyframes sr-cloud-drift {
  0% { transform: translateX(0); }
  100% { transform: translateX(200vw); }
}
@keyframes sr-cloud-drift-rev {
  0% { transform: translateX(0); }
  100% { transform: translateX(-250vw); }
}
@keyframes sr-gull {
  0% { transform: translate(0, 0) rotate(-2deg); }
  25% { transform: translate(30px, -8px) rotate(3deg); }
  50% { transform: translate(60px, 2px) rotate(-1deg); }
  75% { transform: translate(90px, -5px) rotate(2deg); }
  100% { transform: translate(120px, 0) rotate(0deg); }
}

/* Scene: conversion-experience (warm, dim-interior) */
.scn-conversion-experience {
  background: linear-gradient(180deg, #2c1a0c 0%, #4a2c1a 30%, #1a0e06 100%),
              radial-gradient(ellipse at 50% 50%, #ff8c42 0%, transparent 60%);
}
.scn-conversion-experience .bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #1a0e06 0%, #2c1a0c 40%, #0d0804 100%);
  animation: ce-bg 15s ease-in-out infinite alternate;
}
.scn-conversion-experience .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #5c3a1a 0%, #3e2310 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.7);
}
.scn-conversion-experience .desk {
  position: absolute; bottom: 30%; left: 50%; width: 140px; height: 25px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #8b5a2b 0%, #5a3617 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
}
.scn-conversion-experience .lamp {
  position: absolute; bottom: 55%; left: 40%; width: 12px; height: 40px;
  background: linear-gradient(180deg, #b8860b 0%, #8b6508 100%);
  border-radius: 20% 20% 40% 40%;
}
.scn-conversion-experience .light-cone {
  position: absolute; bottom: 35%; left: 38%; width: 80px; height: 120px;
  background: radial-gradient(ellipse at 50% 0%, #ffd700 0%, transparent 100%);
  opacity: 0.3;
  animation: ce-light 4s ease-in-out infinite alternate;
}
.scn-conversion-experience .figure-kneel {
  position: absolute; bottom: 28%; left: 48%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e06 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ce-kneel 5s ease-in-out infinite;
}
.scn-conversion-experience .figure-stand {
  position: absolute; bottom: 28%; left: 58%; width: 20px; height: 60px;
  background: linear-gradient(180deg, #2a1a0c 0%, #0d0804 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ce-stand 6s ease-in-out infinite;
}
.scn-conversion-experience .book {
  position: absolute; bottom: 31%; left: 46%; width: 30px; height: 20px;
  background: #8b6508;
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation: ce-book 3s ease-in-out infinite alternate;
}
.scn-conversion-experience .window {
  position: absolute; top: 8%; left: 20%; width: 60px; height: 80px;
  background: radial-gradient(circle at 50% 50%, #ffe4b5 0%, #1a0e06 100%);
  border-radius: 10%;
  box-shadow: inset 0 0 30px rgba(255, 228, 181, 0.5);
  animation: ce-window 10s ease-in-out infinite alternate;
}
@keyframes ce-bg {
  0% { opacity: 0.7; }
  50% { opacity: 0.85; }
  100% { opacity: 0.75; }
}
@keyframes ce-light {
  0% { transform: scaleY(0.8); opacity: 0.25; }
  50% { transform: scaleY(1.1); opacity: 0.35; }
  100% { transform: scaleY(0.9); opacity: 0.3; }
}
@keyframes ce-kneel {
  0% { transform: translateY(0) rotate(-2deg); }
  25% { transform: translateY(-2px) rotate(1deg); }
  50% { transform: translateY(0) rotate(-1deg); }
  75% { transform: translateY(-1px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes ce-stand {
  0% { transform: translateY(0) rotate(1deg); }
  50% { transform: translateY(-1px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes ce-book {
  0% { transform: translateY(0) rotate(0deg); }
  100% { transform: translateY(-3px) rotate(2deg); }
}
@keyframes ce-window {
  0% { opacity: 0.5; }
  50% { opacity: 0.8; }
  100% { opacity: 0.6; }
}

/* Scene: psalm-107-rescue (warm, overcast) */
.scn-psalm-107-rescue {
  background: linear-gradient(180deg, #708090 0%, #a9a9a9 30%, #d3d3d3 100%),
              radial-gradient(ellipse at 50% 30%, #b0c4de 0%, transparent 70%);
}
.scn-psalm-107-rescue .sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #4682b4 0%, #2c5f7d 40%, #1a3b4c 100%);
  animation: ps-sea 14s ease-in-out infinite alternate;
}
.scn-psalm-107-rescue .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #d3d3d3 0%, #b0c4de 50%, #a9a9a9 100%);
  animation: ps-sky 18s ease-in-out infinite alternate;
}
.scn-psalm-107-rescue .boat-broken {
  position: absolute; bottom: 42%; left: 20%; width: 80px; height: 30px;
  background: linear-gradient(180deg, #8b4513 0%, #5a2d0c 100%);
  border-radius: 40% 40% 0 0;
  clip-path: polygon(0% 100%, 15% 20%, 85% 10%, 100% 100%);
  transform: rotate(15deg);
  animation: ps-broken 6s ease-in-out infinite;
}
.scn-psalm-107-rescue .boat-rescue {
  position: absolute; bottom: 40%; right: 25%; width: 100px; height: 35px;
  background: linear-gradient(180deg, #654321 0%, #3e2723 100%);
  border-radius: 60% 60% 0 0;
  animation: ps-rescue 8s ease-in-out infinite;
}
.scn-psalm-107-rescue .survivor-a {
  position: absolute; bottom: 40%; left: 24%; width: 16px; height: 30px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0c 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ps-survive-a 4s ease-in-out infinite;
}
.scn-psalm-107-rescue .survivor-b {
  position: absolute; bottom: 38%; left: 28%; width: 14px; height: 28px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ps-survive-b 5s ease-in-out infinite 1s;
}
.scn-psalm-107-rescue .wave-front {
  position: absolute; bottom: 8%; left: 0; right: 0; height: 60px;
  background: radial-gradient(ellipse at 50% 100%, #5f9ea0 0%, transparent 100%);
  filter: blur(4px);
  animation: ps-wave-front 8s ease-in-out infinite alternate;
}
.scn-psalm-107-rescue .wave-mid {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 40px;
  background: radial-gradient(ellipse at 50% 100%, #4682b4 0%, transparent 100%);
  filter: blur(3px);
  animation: ps-wave-mid 10s ease-in-out infinite alternate 2s;
}
.scn-psalm-107-rescue .cloud-layer {
  position: absolute; top: 5%; left: -20%; width: 300px; height: 80px;
  background: rgba(255, 255, 255, 0.3);
  border-radius: 50%;
  filter: blur(20px);
  animation: ps-cloud-drift 40s linear infinite;
}
@keyframes ps-sea {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-3px) scaleY(1.02); }
  100% { transform: translateY(0) scaleY(1); }
}
@keyframes ps-sky {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes ps-broken {
  0% { transform: rotate(15deg) translateY(0); }
  50% { transform: rotate(12deg) translateY(2px); }
  100% { transform: rotate(16deg) translateY(-1px); }
}
@keyframes ps-rescue {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(-5px) rotate(2deg); }
  50% { transform: translateX(3px) rotate(-1deg); }
  75% { transform: translateX(-2px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes ps-survive-a {
  0% { transform: translateY(0) rotate(-5deg); }
  50% { transform: translateY(-3px) rotate(3deg); }
  100% { transform: translateY(1px) rotate(-2deg); }
}
@keyframes ps-survive-b {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(4deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes ps-wave-front {
  0% { transform: translateY(0) scaleX(1); }
  50% { transform: translateY(-5px) scaleX(1.02); }
  100% { transform: translateY(0) scaleX(1); }
}
@keyframes ps-wave-mid {
  0% { transform: translateY(0) scaleX(1); }
  50% { transform: translateY(-3px) scaleX(1.01); }
  100% { transform: translateY(0) scaleX(1); }
}
@keyframes ps-cloud-drift {
  0% { transform: translateX(0); }
  100% { transform: translateX(250vw); }
}

/* Scene: plantation-and-departure (calm, sunlit) */
.scn-plantation-and-departure {
  background: linear-gradient(180deg, #87ceeb 0%, #b0e0e6 30%, #f5deb3 100%),
              radial-gradient(ellipse at 50% 80%, #f0e68c 0%, transparent 70%);
}
.scn-plantation-and-departure .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #b0e0e6 0%, #d4eef7 50%, #fff8dc 100%);
  animation: pd-sky 20s ease-in-out infinite alternate;
}
.scn-plantation-and-departure .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #8fbc8f 0%, #6b8e23 40%, #556b2f 100%);
  border-radius: 30% 30% 0 0 / 20% 20% 0 0;
}
.scn-plantation-and-departure .house {
  position: absolute; bottom: 38%; left: 40%; width: 100px; height: 70px;
  background: linear-gradient(180deg, #d2b48c 0%, #a0522d 50%, #8b4513 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.4);
  animation: pd-house 12s ease-in-out infinite;
}
.scn-plantation-and-departure .tree {
  position: absolute; bottom: 35%; left: 20%; width: 40px; height: 100px;
  background: linear-gradient(180deg, #228b22 0%, #006400 60%, #004d00 100%);
  border-radius: 50% 50% 10% 10% / 80% 80% 20% 20%;
  animation: pd-tree 15s ease-in-out infinite alternate;
}
.scn-plantation-and-departure .field {
  position: absolute; bottom: 8%; left: 10%; right: 10%; height: 30%;
  background: repeating-linear-gradient(90deg, #bdb76b 0px, #bdb76b 4px, #9acd32 4px, #9acd32 8px);
  border-radius: 20%;
  opacity: 0.4;
  animation: pd-field 25s linear infinite;
}
.scn-plantation-and-departure .figure {
  position: absolute; bottom: 32%; left: 35%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pd-figure 6s ease-in-out infinite;
}
.scn-plantation-and-departure .cart {
  position: absolute; bottom: 30%; left: 50%; width: 50px; height: 25px;
  background: linear-gradient(180deg, #8b4513 0%, #5a2d0c 100%);
  border-radius: 10% 10% 20% 20%;
  transform: translateX(-50%);
  animation: pd-cart 10s ease-in-out infinite;
}
.scn-plantation-and-departure .ship-sail {
  position: absolute; bottom: 48%; right: 10%; width: 80px; height: 60px;
  background: linear-gradient(180deg, #f5f5dc 0%, #d2b48c 100%);
  clip-path: polygon(0% 100%, 50% 0%, 100% 100%);
  animation: pd-ship 18s ease-in-out infinite;
}
.scn-plantation-and-departure .bird {
  position: absolute; top: 12%; left: 60%; width: 12px; height: 8px;
  background: #2f2f2f;
  border-radius: 50% 50% 0 0;
  clip-path: polygon(0% 100%, 50% 0%, 100% 100%);
  animation: pd-bird 5s ease-in-out infinite;
}
@keyframes pd-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes pd-house {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes pd-tree {
  0% { transform: scaleY(1) rotate(0deg); }
  50% { transform: scaleY(1.02) rotate(2deg); }
  100% { transform: scaleY(1) rotate(0deg); }
}
@keyframes pd-field {
  0% { background-position: 0 0; }
  100% { background-position: 200px 0; }
}
@keyframes pd-figure {
  0% { transform: translateX(0) translateY(0) rotate(-2deg); }
  25% { transform: translateX(8px) translateY(-1px) rotate(1deg); }
  50% { transform: translateX(16px) translateY(0) rotate(-1deg); }
  75% { transform: translateX(24px) translateY(-1px) rotate(2deg); }
  100% { transform: translateX(32px) translateY(0) rotate(0deg); }
}
@keyframes pd-cart {
  0% { transform: translateX(-50%) rotate(0deg); }
  50% { transform: translateX(-50%) rotate(2deg); }
  100% { transform: translateX(-50%) rotate(0deg); }
}
@keyframes pd-ship {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes pd-bird {
  0% { transform: translate(0, 0) rotate(-3deg); }
  25% { transform: translate(20px, -5px) rotate(2deg); }
  50% { transform: translate(40px, 2px) rotate(-1deg); }
  75% { transform: translate(60px, -3px) rotate(3deg); }
  100% { transform: translate(80px, 0) rotate(0deg); }
}

/* scene 1: capabilities-and-cruelties */
.scn-capabilities-and-cruelties {
  background: linear-gradient(180deg, #4a6b8a 0%, #c4a87c 30%, #d4b88c 60%, #ffe8c0 100%), radial-gradient(ellipse at 70% 20%, #ffe8c0 0%, transparent 60%);
}
.scn-capabilities-and-cruelties .sun {
  position: absolute; top: 5%; right: 8%; width: 60px; height: 60px;
  background: radial-gradient(circle, #fff8e0 0%, #ffdd80 40%, transparent 70%);
  border-radius: 50%;
  animation: cc-sun 8s ease-in-out infinite;
  box-shadow: 0 0 80px 30px rgba(255,220,100,0.3);
}
.scn-capabilities-and-cruelties .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, rgba(74,107,138,0.8) 0%, rgba(196,168,124,0.4) 60%, transparent 100%);
  animation: cc-sky 12s ease-in-out infinite alternate;
}
.scn-capabilities-and-cruelties .ship-mast {
  position: absolute; bottom: 35%; left: 20%; width: 6px; height: 120px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  transform: rotate(-5deg);
  border-radius: 2px;
  box-shadow: 2px 0 4px rgba(0,0,0,0.3);
}
.scn-capabilities-and-cruelties .deck {
  position: absolute; bottom: 30%; left: 10%; right: 10%; height: 12%;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a2a 100%);
  border-radius: 0 0 20% 20% / 0 0 50% 50%;
  transform: perspective(200px) rotateX(5deg);
  box-shadow: inset 0 -8px 12px rgba(0,0,0,0.5);
}
.scn-capabilities-and-cruelties .figure-equiano {
  position: absolute; bottom: 38%; left: 30%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: cc-fig-e 3s ease-in-out infinite alternate;
}
.scn-capabilities-and-cruelties .figure-slave {
  position: absolute; bottom: 38%; left: 55%; width: 18px; height: 38px;
  background: linear-gradient(180deg, #3a2515 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform: scaleX(-1);
  animation: cc-fig-s 5s ease-in-out infinite;
}
.scn-capabilities-and-cruelties .chain {
  position: absolute; bottom: 39%; left: 40%; width: 80px; height: 4px;
  background: repeating-linear-gradient(90deg, #7a6a5a 0px, #7a6a5a 6px, transparent 6px, transparent 10px);
  border-radius: 2px;
  animation: cc-chain 2s steps(4) infinite;
  opacity: 0.8;
}
.scn-capabilities-and-cruelties .shadow-row {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 10%;
  background: linear-gradient(180deg, rgba(0,0,0,0.3) 0%, transparent 100%);
  animation: cc-shadow 7s ease-in-out infinite alternate;
}
.scn-capabilities-and-cruelties .dust {
  position: absolute; bottom: 32%; left: 20%; width: 30px; height: 30px;
  background: radial-gradient(circle, rgba(200,180,140,0.3) 0%, transparent 70%);
  filter: blur(4px);
  animation: cc-dust 15s linear infinite;
}

@keyframes cc-sun { 0% { transform: scale(1) translate(0,0); box-shadow: 0 0 80px 30px rgba(255,220,100,0.3); } 50% { transform: scale(1.05) translate(2px, -2px); box-shadow: 0 0 100px 40px rgba(255,220,100,0.5); } 100% { transform: scale(0.95) translate(-1px,1px); box-shadow: 0 0 60px 20px rgba(255,220,100,0.2); } }
@keyframes cc-sky { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes cc-fig-e { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes cc-fig-s { 0% { transform: scaleX(-1) translateY(0); } 25% { transform: scaleX(-1) translateY(-2px) rotate(2deg); } 50% { transform: scaleX(-1) translateY(0) rotate(-1deg); } 75% { transform: scaleX(-1) translateY(-1px) rotate(1deg); } 100% { transform: scaleX(-1) translateY(0); } }
@keyframes cc-chain { 0% { background-position: 0 0; } 100% { background-position: 10px 0; } }
@keyframes cc-shadow { 0% { opacity: 0.3; transform: scaleY(1); } 50% { opacity: 0.5; transform: scaleY(1.1); } 100% { opacity: 0.2; transform: scaleY(0.9); } }
@keyframes cc-dust { 0% { transform: translate(0,0) scale(1); opacity: 0; } 20% { opacity: 0.3; } 80% { opacity: 0.1; } 100% { transform: translate(60px, -20px) scale(2); opacity: 0; } }

/* scene 2: barbados-act-and-family-separation */
.scn-barbados-act-and-family-separation {
  background: linear-gradient(180deg, #4a5a6a 0%, #5a6a7a 30%, #7a8a9a 60%, #9aaaaa 100%), radial-gradient(ellipse at 50% 0%, #6a7a8a 0%, transparent 70%);
}
.scn-barbados-act-and-family-separation .sky-overcast {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #4a5a6a 0%, #6a7a8a 50%, transparent 100%);
  animation: ba-sky 20s ease-in-out infinite alternate;
}
.scn-barbados-act-and-family-separation .plantation-house {
  position: absolute; bottom: 25%; left: 35%; width: 100px; height: 80px;
  background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%);
  border-radius: 10% 10% 4% 4%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.5);
  animation: ba-house 7s ease-in-out infinite;
}
.scn-barbados-act-and-family-separation .gate {
  position: absolute; bottom: 25%; left: 38%; width: 60px; height: 12px;
  background: linear-gradient(90deg, #5a4a3a 0%, #4a3a2a 50%, #5a4a3a 100%);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: ba-gate 10s ease-in-out infinite alternate;
}
.scn-barbados-act-and-family-separation .figure-master {
  position: absolute; bottom: 28%; left: 30%; width: 22px; height: 44px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  animation: ba-mast 4s ease-in-out infinite;
}
.scn-barbados-act-and-family-separation .figure-child {
  position: absolute; bottom: 30%; left: 55%; width: 16px; height: 30px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  animation: ba-child 3s ease-in-out infinite alternate;
}
.scn-barbados-act-and-family-separation .figure-mother {
  position: absolute; bottom: 28%; left: 62%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  animation: ba-moth 5s ease-in-out infinite;
}
.scn-barbados-act-and-family-separation .chain-links {
  position: absolute; bottom: 30%; left: 48%; width: 50px; height: 6px;
  background: repeating-radial-gradient(ellipse at 50% 50%, #7a6a5a 0px, #7a6a5a 3px, transparent 3px, transparent 6px);
  border-radius: 3px;
  animation: ba-chains 2s linear infinite;
  opacity: 0.7;
}
.scn-barbados-act-and-family-separation .fog {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 40% 50%, rgba(150,160,170,0.2) 0%, transparent 60%);
  filter: blur(10px);
  animation: ba-fog 30s ease-in-out infinite alternate;
}

@keyframes ba-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes ba-house { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
@keyframes ba-gate { 0% { transform: scaleX(1); } 50% { transform: scaleX(0.9); } 100% { transform: scaleX(1.05); } }
@keyframes ba-mast { 0% { transform: translate(0,0) rotate(-1deg); } 25% { transform: translate(3px, -1px) rotate(1deg); } 50% { transform: translate(6px,0) rotate(-1deg); } 75% { transform: translate(9px,-2px) rotate(2deg); } 100% { transform: translate(12px,0) rotate(0deg); } }
@keyframes ba-child { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-4px) scaleY(1.05); } 100% { transform: translateY(0) scaleY(0.95); } }
@keyframes ba-moth { 0% { transform: translateX(0) rotate(-2deg); } 33% { transform: translateX(8px) rotate(2deg); } 66% { transform: translateX(4px) rotate(-1deg); } 100% { transform: translateX(12px) rotate(0deg); } }
@keyframes ba-chains { 0% { background-position: 0 0; } 100% { background-position: 12px 0; } }
@keyframes ba-fog { 0% { opacity: 0; transform: scale(1); } 50% { opacity: 0.4; transform: scale(1.1); } 100% { opacity: 0.1; transform: scale(0.9); } }

/* scene 3: creole-fisherman-and-trade */
.scn-creole-fisherman-and-trade {
  background: linear-gradient(180deg, #7ab8d0 0%, #b0d8e8 40%, #c8e8f0 70%, #e8f0f8 100%), radial-gradient(ellipse at 60% 30%, #f0f8ff 0%, transparent 60%);
}
.scn-creole-fisherman-and-trade .sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(180deg, #5a9ab0 0%, #3a7a90 50%, #2a5a6a 100%);
  animation: cf-sea 10s ease-in-out infinite alternate;
}
.scn-creole-fisherman-and-trade .shore {
  position: absolute; bottom: 25%; left: 0%; right: 60%; height: 20%;
  background: linear-gradient(180deg, #d4b88c 0%, #c4a07c 100%);
  border-radius: 0 60% 0 0 / 0 80% 0 0;
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.1);
  animation: cf-shore 8s ease-in-out infinite alternate;
}
.scn-creole-fisherman-and-trade .boat {
  position: absolute; bottom: 30%; left: 50%; width: 80px; height: 30px;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2a0a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%;
  transform: rotate(5deg);
  animation: cf-boat 6s ease-in-out infinite;
}
.scn-creole-fisherman-and-trade .fisherman {
  position: absolute; bottom: 35%; left: 50%; width: 18px; height: 38px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform: translateX(-50%);
  animation: cf-fish 4s ease-in-out infinite alternate;
}
.scn-creole-fisherman-and-trade .boiling-pond {
  position: absolute; bottom: 15%; left: 20%; width: 50px; height: 20px;
  background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%);
  border-radius: 50%;
  box-shadow: inset 0 2px 6px rgba(0,0,0,0.3);
  animation: cf-pond 12s ease-in-out infinite;
}
.scn-creole-fisherman-and-trade .hill {
  position: absolute; bottom: 40%; right: 10%; width: 120px; height: 80px;
  background: linear-gradient(180deg, #6a7a4a 0%, #4a5a2a 100%);
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  animation: cf-hill 15s ease-in-out infinite alternate;
}
.scn-creole-fisherman-and-trade .clouds {
  position: absolute; top: 20%; left: 0; right: 0; height: 30%;
  background: radial-gradient(ellipse at 20% 50%, rgba(255,255,255,0.5) 0%, transparent 50%),
              radial-gradient(ellipse at 60% 40%, rgba(255,255,255,0.4) 0%, transparent 40%),
              radial-gradient(ellipse at 80% 60%, rgba(255,255,255,0.3) 0%, transparent 50%);
  filter: blur(8px);
  animation: cf-clouds 40s linear infinite;
}
.scn-creole-fisherman-and-trade .gulls {
  position: absolute; top: 25%; left: 30%; width: 12px; height: 8px;
  background: transparent;
  border: 2px solid rgba(0,0,0,0.3);
  border-radius: 50%;
  box-shadow: 20px -10px 0 0 rgba(0,0,0,0.3), 40px -5px 0 0 rgba(0,0,0,0.2);
  animation: cf-gulls 20s linear infinite;
}

@keyframes cf-sea { 0% { transform: translateY(0); } 50% { transform: translateY(5px); } 100% { transform: translateY(-5px); } }
@keyframes cf-shore { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.95); } 100% { transform: scaleY(1.05); } }
@keyframes cf-boat { 0% { transform: rotate(5deg) translate(0,0); } 25% { transform: rotate(7deg) translate(5px,-2px); } 50% { transform: rotate(3deg) translate(10px,0); } 75% { transform: rotate(6deg) translate(5px,2px); } 100% { transform: rotate(5deg) translate(0,0); } }
@keyframes cf-fish { 0% { transform: translateX(-50%) translateY(0) rotate(-2deg); } 50% { transform: translateX(-50%) translateY(-3px) rotate(1deg); } 100% { transform: translateX(-50%) translateY(0) rotate(2deg); } }
@keyframes cf-pond { 0% { transform: scale(1) rotate(0); } 50% { transform: scale(1.1) rotate(5deg); } 100% { transform: scale(0.95) rotate(-3deg); } }
@keyframes cf-hill { 0% { opacity: 0.8; transform: scaleY(1); } 50% { opacity: 1; transform: scaleY(1.05); } 100% { opacity: 0.7; transform: scaleY(0.95); } }
@keyframes cf-clouds { 0% { transform: translateX(0); } 100% { transform: translateX(-100%); } }
@keyframes cf-gulls { 0% { transform: translate(0,0); } 25% { transform: translate(30px,-10px); } 50% { transform: translate(60px,0); } 75% { transform: translate(90px,-5px); } 100% { transform: translate(120px,0); } }

/* scene 4: item-bible-at-st-kitts */
.scn-item-bible-at-st-kitts {
  background: linear-gradient(180deg, #ffddaa 0%, #ffcc80 30%, #eebb66 60%, #ddaa44 100%), radial-gradient(ellipse at 30% 20%, #ffeecc 0%, transparent 50%);
}
.scn-item-bible-at-st-kitts .water {
  position: absolute; bottom: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(180deg, #88bbdd 0%, #6699bb 50%, #447799 100%);
  animation: bk-water 8s ease-in-out infinite alternate;
}
.scn-item-bible-at-st-kitts .boat-wedding {
  position: absolute; bottom: 30%; left: 30%; width: 90px; height: 35px;
  background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%;
  transform: rotate(-3deg);
  animation: bk-boat 6s ease-in-out infinite;
}
.scn-item-bible-at-st-kitts .figures-couple {
  position: absolute; bottom: 37%; left: 35%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform: translateX(-50%);
  animation: bk-couple 5s ease-in-out infinite alternate;
}
.scn-item-bible-at-st-kitts .officiant {
  position: absolute; bottom: 38%; left: 45%; width: 18px; height: 42px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform: translateX(-50%);
  animation: bk-offi 4s ease-in-out infinite;
}
.scn-item-bible-at-st-kitts .bible {
  position: absolute; bottom: 40%; left: 40%; width: 14px; height: 20px;
  background: linear-gradient(180deg, #8a6a3a 0%, #6a4a1a 100%);
  border-radius: 2px;
  transform: translateX(-50%) rotate(5deg);
  box-shadow: 1px 1px 4px rgba(0,0,0,0.4);
  animation: bk-bible 3s ease-in-out infinite alternate;
}
.scn-item-bible-at-st-kitts .sunlight-beam {
  position: absolute; top: 0; left: 20%; width: 200px; height: 120%;
  background: linear-gradient(180deg, rgba(255,230,180,0.2) 0%, rgba(255,200,100,0.05) 100%);
  transform: rotate(20deg);
  filter: blur(6px);
  animation: bk-beam 12s ease-in-out infinite alternate;
}
.scn-item-bible-at-st-kitts .sail-back {
  position: absolute; bottom: 25%; right: 15%; width: 60px; height: 80px;
  background: linear-gradient(180deg, #c4a87c 0%, #a4885c 100%);
  clip-path: polygon(0% 0%, 100% 20%, 100% 80%, 0% 100%);
  animation: bk-sail 9s ease-in-out infinite;
}
.scn-item-bible-at-st-kitts .ripples {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 30px;
  background: repeating-linear-gradient(90deg, transparent 0px, rgba(255,255,255,0.2) 10px, transparent 20px);
  animation: bk-ripple 2s linear infinite;
}

@keyframes bk-water { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.98); } 100% { transform: scaleY(1.02); } }
@keyframes bk-boat { 0% { transform: rotate(-3deg) translate(0,0); } 25% { transform: rotate(-1deg) translate(5px,-2px); } 50% { transform: rotate(-4deg) translate(10px,0); } 75% { transform: rotate(-2deg) translate(5px,2px); } 100% { transform: rotate(-3deg) translate(0,0); } }
@keyframes bk-couple { 0% { transform: translateX(-50%) translateY(0) rotate(-2deg); } 50% { transform: translateX(-50%) translateY(-4px) rotate(1deg); } 100% { transform: translateX(-50%) translateY(0) rotate(2deg); } }
@keyframes bk-offi { 0% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(1.05); } 100% { transform: translateX(-50%) scaleY(0.95); } }
@keyframes bk-bible { 0% { transform: translateX(-50%) rotate(5deg) scale(1); } 50% { transform: translateX(-50%) rotate(8deg) scale(1.05); } 100% { transform: translateX(-50%) rotate(2deg) scale(0.95); } }
@keyframes bk-beam { 0% { opacity: 0.2; transform: rotate(20deg) scaleY(1); } 50% { opacity: 0.5; transform: rotate(15deg) scaleY(1.1); } 100% { opacity: 0.3; transform: rotate(25deg) scaleY(0.9); } }
@keyframes bk-sail { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.05) rotate(3deg); } 100% { transform: scaleX(0.95) rotate(-3deg); } }
@keyframes bk-ripple { 0% { transform: translateX(0); } 100% { transform: translateX(20px); } }

/* talking-to-books (funny, bright interior) */
.scn-talking-to-books {
  background: linear-gradient(135deg, #f7e5c0 0%, #f0d5a8 40%, #d9b88c 100%),
              radial-gradient(circle at 30% 20%, #fff8e7 0%, transparent 60%);
}
.scn-talking-to-books .room-bg {
  position: absolute; inset: 0; 
  background: linear-gradient(180deg, #fcf3d6 0%, #e8d4ae 70%, #c9a87b 100%);
  animation: ttb-room 8s ease-in-out infinite alternate;
}
.scn-talking-to-books .window-light {
  position: absolute; top: 8%; left: 20%; width: 30%; height: 40%;
  background: radial-gradient(ellipse at 50% 50%, rgba(255,245,210,0.9) 0%, rgba(255,245,210,0.3) 60%, transparent 100%);
  animation: ttb-window 4s ease-in-out infinite alternate;
}
.scn-talking-to-books .bookshelf {
  position: absolute; bottom: 25%; right: 10%; width: 35%; height: 50%;
  background: linear-gradient(180deg, #71453a 0%, #4a2d24 100%);
  border-radius: 4px;
  box-shadow: 4px 4px 12px rgba(0,0,0,0.3);
  animation: ttb-shelf 6s ease-in-out infinite;
}
.scn-talking-to-books .book-stack {
  position: absolute; bottom: 42%; right: 14%; width: 14%; height: 20%;
  background: repeating-linear-gradient(90deg, #e0653a 0%, #e0653a 25%, #3a9e8f 25%, #3a9e8f 50%, #b84a6a 50%, #b84a6a 75%, #d4a64a 75%, #d4a64a 100%);
  background-size: 100% 100%;
  border-radius: 2px;
  box-shadow: 2px 2px 6px rgba(0,0,0,0.2);
  animation: ttb-stack 10s ease-in-out infinite alternate;
}
.scn-talking-to-books .figure {
  position: absolute; bottom: 12%; left: 45%; width: 10%; height: 30%;
  background: linear-gradient(180deg, #4a372b 0%, #2e1f16 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ttb-figure 5s ease-in-out infinite;
}
.scn-talking-to-books .chair {
  position: absolute; bottom: 5%; left: 42%; width: 16%; height: 20%;
  background: linear-gradient(180deg, #6b4b3a 0%, #3b2c1e 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
  animation: ttb-chair 7s ease-in-out infinite alternate;
}
.scn-talking-to-books .small-book {
  position: absolute; bottom: 18%; left: 52%; width: 4%; height: 5%;
  background: #c8553d;
  border-radius: 2px;
  transform: rotate(15deg);
  animation: ttb-smallbook 3s ease-in-out infinite;
}
.scn-talking-to-books .dust-particles {
  position: absolute; top: 0; left: 0; right: 0; bottom: 0;
  background: radial-gradient(circle 2px at 20% 30%, rgba(255,255,200,0.3) 0%, transparent 100%);
  background-size: 20px 20px;
  animation: ttb-dust 20s linear infinite;
}
@keyframes ttb-room {
  0%,100% { opacity: 0.9; }
  50% { opacity: 1; }
}
@keyframes ttb-window {
  0% { transform: scaleX(1); opacity: 0.8; }
  50% { transform: scaleX(1.05); opacity: 1; }
  100% { transform: scaleX(0.95); opacity: 0.9; }
}
@keyframes ttb-shelf {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
}
@keyframes ttb-stack {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(3deg); }
  100% { transform: rotate(-2deg); }
}
@keyframes ttb-figure {
  0% { transform: translateX(0) rotate(0deg); }
  30% { transform: translateX(4%) rotate(5deg); }
  60% { transform: translateX(8%) rotate(-3deg); }
  100% { transform: translateX(12%) rotate(0deg); }
}
@keyframes ttb-chair {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-1px) scaleY(1.02); }
  100% { transform: translateY(0) scaleY(0.98); }
}
@keyframes ttb-smallbook {
  0%,100% { transform: rotate(15deg) translateY(0); }
  50% { transform: rotate(20deg) translateY(-2px); }
}
@keyframes ttb-dust {
  0% { background-position: 0 0; }
  100% { background-position: 40px 40px; }
}

/* press-gang-and-roebuck (tense, overcast) */
.scn-press-gang-and-roebuck {
  background: linear-gradient(180deg, #6b7a8a 0%, #4a5a6a 40%, #2a3540 100%),
              radial-gradient(ellipse at 50% 100%, #3a4a5a 0%, transparent 70%);
}
.scn-press-gang-and-roebuck .bg-overcast {
  position: absolute; inset: 0; 
  background: linear-gradient(180deg, #7a8a9a 0%, #5a6a7a 60%, #3a4a5a 100%);
  animation: pgr-sky 15s ease-in-out infinite alternate;
}
.scn-press-gang-and-roebuck .deck {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.5);
  animation: pgr-deck 12s ease-in-out infinite alternate;
}
.scn-press-gang-and-roebuck .hencoop {
  position: absolute; bottom: 30%; left: 30%; width: 18%; height: 14%;
  background: linear-gradient(135deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 4% 4%;
  box-shadow: 4px 4px 10px rgba(0,0,0,0.6);
  animation: pgr-hencoop 5s ease-in-out infinite alternate;
}
.scn-press-gang-and-roebuck .figure-cowering {
  position: absolute; bottom: 32%; left: 32%; width: 8%; height: 12%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pgr-cower 4s ease-in-out infinite;
}
.scn-press-gang-and-roebuck .sailor-legs {
  position: absolute; bottom: 28%; left: 36%; width: 6%; height: 20%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 20% 20% 10% 10%;
  transform: rotate(-10deg);
  animation: pgr-legs 3s ease-in-out infinite alternate;
}
.scn-press-gang-and-roebuck .sailor-torso {
  position: absolute; bottom: 48%; left: 34%; width: 10%; height: 18%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 40% 40%;
  transform-origin: left bottom;
  animation: pgr-torso 3s ease-in-out infinite alternate;
}
.scn-press-gang-and-roebuck .mast-shadow {
  position: absolute; top: 0; left: 60%; width: 4%; height: 70%;
  background: linear-gradient(180deg, rgba(0,0,0,0.2) 0%, transparent 100%);
  transform: rotate(15deg);
  animation: pgr-mast 20s linear infinite;
}
@keyframes pgr-sky {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes pgr-deck {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes pgr-hencoop {
  0% { transform: scale(1) rotate(0deg); }
  50% { transform: scale(1.05) rotate(2deg); }
  100% { transform: scale(0.98) rotate(-1deg); }
}
@keyframes pgr-cower {
  0%,100% { transform: translateX(0) translateY(0) scale(1); }
  30% { transform: translateX(-2%) translateY(-1%) scale(0.95); }
  60% { transform: translateX(2%) translateY(0) scale(1.02); }
}
@keyframes pgr-legs {
  0% { transform: rotate(-10deg) translateY(0); }
  50% { transform: rotate(-15deg) translateY(-2px); }
  100% { transform: rotate(-8deg) translateY(0); }
}
@keyframes pgr-torso {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(-5deg); }
  100% { transform: rotate(3deg); }
}
@keyframes pgr-mast {
  0% { transform: rotate(15deg); }
  100% { transform: rotate(375deg); }
}

/* gibraltar-barcelona-adventures (tense, sunlit) */
.scn-gibraltar-barcelona-adventures {
  background: linear-gradient(180deg, #87CEEB 0%, #5a9fcf 40%, #2a6a9a 100%),
              radial-gradient(ellipse at 50% 0%, #b0d4f0 0%, transparent 70%);
}
.scn-gibraltar-barcelona-adventures .sky-sunlit {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #b8d8f0 0%, #87CEEB 50%, #5a9fcf 100%);
  animation: gba-sky 12s ease-in-out infinite alternate;
}
.scn-gibraltar-barcelona-adventures .sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #2a6a9a 0%, #1a4a6a 100%);
  border-radius: 20% 20% 0 0 / 15% 15% 0 0;
  animation: gba-sea 8s ease-in-out infinite alternate;
}
.scn-gibraltar-barcelona-adventures .cliff {
  position: absolute; bottom: 30%; left: 0; width: 25%; height: 50%;
  background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%);
  border-radius: 0 40% 0 0;
  box-shadow: 6px 0 12px rgba(0,0,0,0.3);
  animation: gba-cliff 15s ease-in-out infinite alternate;
}
.scn-gibraltar-barcelona-adventures .horse-rider {
  position: absolute; bottom: 38%; left: 35%; width: 16%; height: 18%;
  background: linear-gradient(135deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 30%;
  transform-origin: bottom center;
  animation: gba-horse 3s ease-in-out infinite;
}
.scn-gibraltar-barcelona-adventures .market-tent {
  position: absolute; bottom: 20%; right: 10%; width: 20%; height: 25%;
  background: linear-gradient(135deg, #d4a64a 0%, #b88c30 100%);
  clip-path: polygon(10% 0%, 90% 0%, 100% 100%, 0% 100%);
  animation: gba-tent 6s ease-in-out infinite alternate;
}
.scn-gibraltar-barcelona-adventures .flag-pole {
  position: absolute; bottom: 45%; left: 55%; width: 2%; height: 30%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 2px;
  animation: gba-flagpole 10s ease-in-out infinite;
}
.scn-gibraltar-barcelona-adventures .gull {
  position: absolute; top: 10%; left: 30%; width: 8%; height: 4%;
  background: radial-gradient(circle at 30% 50%, #fff 0%, #ccc 100%);
  border-radius: 50%;
  filter: blur(1px);
  animation: gba-gull 25s linear infinite;
}
@keyframes gba-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes gba-sea {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-3px) scaleY(1.02); }
  100% { transform: translateY(0) scaleY(0.98); }
}
@keyframes gba-cliff {
  0% { transform: translateX(0); }
  50% { transform: translateX(-2px); }
  100% { transform: translateX(0); }
}
@keyframes gba-horse {
  0%,100% { transform: translateX(0) rotate(0deg) scaleX(1); }
  25% { transform: translateX(5%) rotate(-2deg) scaleX(0.98); }
  50% { transform: translateX(10%) rotate(2deg) scaleX(1.02); }
  75% { transform: translateX(15%) rotate(-1deg) scaleX(0.99); }
}
@keyframes gba-tent {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes gba-flagpole {
  0%,100% { transform: rotate(0deg); }
  50% { transform: rotate(3deg); }
}
@keyframes gba-gull {
  0% { transform: translateX(0) translateY(0); }
  50% { transform: translateX(50vw) translateY(-20px); }
  100% { transform: translateX(100vw) translateY(0); }
}

/* ocean-explosion-and-woman-fall (dark, firelit) */
.scn-ocean-explosion-and-woman-fall {
  background: linear-gradient(180deg, #1a0a0a 0%, #2a0a0a 40%, #4a1a0a 100%),
              radial-gradient(ellipse at 50% 30%, #6a2a0a 0%, transparent 70%);
}
.scn-ocean-explosion-and-woman-fall .night-sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #0a0a1a 0%, #1a0a0a 100%);
  animation: oewf-sky 20s ease-in-out infinite alternate;
}
.scn-ocean-explosion-and-woman-fall .flames-back {
  position: absolute; bottom: 30%; left: 20%; right: 20%; height: 50%;
  background: radial-gradient(ellipse at 50% 100%, #ff6a1a 0%, #b83a0a 50%, transparent 100%);
  animation: oewf-flames 2s ease-in-out infinite alternate;
}
.scn-ocean-explosion-and-woman-fall .ship-hull {
  position: absolute; bottom: 15%; left: 20%; width: 60%; height: 30%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: inset 0 -10px 20px rgba(255,100,0,0.4);
  animation: oewf-hull 6s ease-in-out infinite alternate;
}
.scn-ocean-explosion-and-woman-fall .explosion-core {
  position: absolute; top: 40%; left: 40%; width: 20%; height: 20%;
  background: radial-gradient(circle, #ffd060 0%, #ff6a1a 50%, #8a2a0a 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(255,100,30,0.6);
  animation: oewf-explode 1.5s ease-in-out infinite;
}
.scn-ocean-explosion-and-woman-fall .figure-running {
  position: absolute; bottom: 25%; left: 35%; width: 8%; height: 15%;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: oewf-run 0.8s ease-in-out infinite;
}
.scn-ocean-explosion-and-woman-fall .woman-falling {
  position: absolute; top: 10%; left: 55%; width: 6%; height: 20%;
  background: linear-gradient(180deg, #c8553d 0%, #8a2a1a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 40% 40%;
  transform-origin: center center;
  animation: oewf-fall 3s ease-in-out infinite;
}
.scn-ocean-explosion-and-woman-fall .ember-shower {
  position: absolute; top: 0; left: 0; right: 0; bottom: 0;
  background: radial-gradient(circle 2px at 30% 40%, #ff8a30 0%, transparent 100%),
              radial-gradient(circle 3px at 60% 20%, #ff6a1a 0%, transparent 100%),
              radial-gradient(circle 1px at 80% 60%, #ffd060 0%, transparent 100%);
  background-size: 100% 100%;
  animation: oewf-ember 1.5s linear infinite;
}
.scn-ocean-explosion-and-woman-fall .smoke-cloud {
  position: absolute; top: 5%; left: 10%; width: 30%; height: 20%;
  background: radial-gradient(ellipse, rgba(60,50,40,0.6) 0%, transparent 100%);
  filter: blur(8px);
  animation: oewf-smoke 10s ease-in-out infinite alternate;
}
@keyframes oewf-sky {
  0% { opacity: 0.6; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes oewf-flames {
  0% { transform: scaleY(1) translateY(0); }
  50% { transform: scaleY(1.1) translateY(-2%); }
  100% { transform: scaleY(0.95) translateY(1%); }
}
@keyframes oewf-hull {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(-0.5deg); }
}
@keyframes oewf-explode {
  0% { transform: scale(1); opacity: 0.8; }
  50% { transform: scale(1.4); opacity: 1; }
  100% { transform: scale(0.9); opacity: 0.6; }
}
@keyframes oewf-run {
  0%,100% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(3%) rotate(-5deg); }
  50% { transform: translateX(6%) rotate(0deg); }
  75% { transform: translateX(9%) rotate(5deg); }
}
@keyframes oewf-fall {
  0% { transform: translateY(0) rotate(0deg); }
  30% { transform: translateY(20%) rotate(15deg); }
  60% { transform: translateY(40%) rotate(-10deg); }
  100% { transform: translateY(60%) rotate(5deg); opacity: 0; }
}
@keyframes oewf-ember {
  0% { background-position: 0 0, 0 0, 0 0; }
  100% { background-position: -40px 40px, 20px -20px, -10px 30px; }
}
@keyframes oewf-smoke {
  0% { transform: translateX(0) scale(1); opacity: 0.5; }
  50% { transform: translateX(20%) scale(1.2); opacity: 0.7; }
  100% { transform: translateX(40%) scale(1.5); opacity: 0.3; }
}

/* Scene: divine-blessing-on-abolition */
.scn-divine-blessing-on-abolition {
  background: linear-gradient(180deg, #1a1410 0%, #2c2218 40%, #3a2a1e 100%);
}
.scn-divine-blessing-on-abolition .room-bg {
  position:absolute; inset:0;
  background: radial-gradient(ellipse at 80% 70%, #4a3828 0%, #1a1410 70%);
}
.scn-divine-blessing-on-abolition .window-light {
  position:absolute; top:20%; left:60%; width:80px; height:100px;
  background: linear-gradient(135deg, #b89870 0%, #8a7050 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 20px #9a7a50;
  animation: db-window 6s ease-in-out infinite alternate;
}
.scn-divine-blessing-on-abolition .table {
  position:absolute; bottom:25%; left:30%; width:120px; height:12px;
  background: linear-gradient(180deg, #5a3a28 0%, #3a2216 100%);
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: db-table 4s ease-in-out infinite;
}
.scn-divine-blessing-on-abolition .candle {
  position:absolute; bottom:27%; left:38%; width:10px; height:30px;
  background: linear-gradient(180deg, #e8d4b0 0%, #c8a878 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
}
.scn-divine-blessing-on-abolition .flame {
  position:absolute; bottom:37%; left:38.5%; width:8px; height:16px;
  background: radial-gradient(circle, #ffd060 0%, #ffa030 60%, transparent 100%);
  border-radius: 50% 50% 40% 40%;
  box-shadow: 0 0 24px 12px #ffa030, 0 0 48px 20px rgba(255,160,48,0.4);
  animation: db-flame 1.5s ease-in-out infinite alternate;
}
.scn-divine-blessing-on-abolition .figure {
  position:absolute; bottom:23%; left:46%; width:24px; height:50px;
  background: linear-gradient(180deg, #2a1e16 0%, #18100a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: db-figure 4s ease-in-out infinite;
}
.scn-divine-blessing-on-abolition .dust {
  position:absolute; top:30%; left:50%; width:4px; height:4px;
  background: #d4b89a;
  border-radius: 50%;
  filter: blur(1px);
  box-shadow: 8px 20px 0 #d4b89a, -12px 40px 0 #d4b89a, 20px 60px 0 #d4b89a;
  animation: db-dust 8s linear infinite;
}
@keyframes db-window {
  0% { opacity:0.6; transform: scaleY(1); }
  50% { opacity:0.8; transform: scaleY(1.02); }
  100% { opacity:0.7; transform: scaleY(1); }
}
@keyframes db-table {
  0% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
  100% { transform: translateY(0); }
}
@keyframes db-flame {
  0% { transform: scaleY(0.9) rotate(-2deg); opacity:0.95; }
  30% { transform: scaleY(1.1) rotate(3deg); opacity:1; }
  60% { transform: scaleY(0.95) rotate(-1deg); opacity:0.9; }
  100% { transform: scaleY(1.05) rotate(0deg); opacity:0.95; }
}
@keyframes db-figure {
  0% { transform: translateY(0) rotate(-1deg); }
  25% { transform: translateY(-2px) rotate(1deg); }
  75% { transform: translateY(-1px) rotate(-0.5deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes db-dust {
  0% { transform: translateY(0) scale(0.8); opacity:0.3; }
  50% { transform: translateY(-30px) scale(1.2); opacity:0.6; }
  100% { transform: translateY(-60px) scale(0.8); opacity:0.3; }
}

/* Scene: early-life-summary */
.scn-early-life-summary {
  background: linear-gradient(180deg, #7a8a94 0%, #9aabb5 50%, #b5c7d0 100%);
}
.scn-early-life-summary .sky-overcast {
  position:absolute; inset:0 0 60% 0;
  background: linear-gradient(180deg, #6a7a84 0%, #8a9aa5 100%);
  animation: el-sky 20s ease-in-out infinite alternate;
}
.scn-early-life-summary .sea {
  position:absolute; bottom:0; left:0; right:0; height:60%;
  background: linear-gradient(180deg, #4a5a63 0%, #2a3a42 100%);
  border-radius: 80% 70% 0 0 / 40% 30% 0 0;
  animation: el-wave 8s ease-in-out infinite alternate;
}
.scn-early-life-summary .ship {
  position:absolute; bottom:35%; left:30%; width:90px; height:30px;
  background: linear-gradient(180deg, #4a3828 0%, #2a1e14 100%);
  border-radius: 0 0 30% 30% / 0 0 80% 80%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: el-ship 6s ease-in-out infinite;
}
.scn-early-life-summary .sail-main {
  position:absolute; bottom:45%; left:38%; width:30px; height:40px;
  background: linear-gradient(180deg, #d4c8b8 0%, #b8a898 100%);
  clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 80%);
  border-radius: 10% 10% 0 0;
  animation: el-sail 4s ease-in-out infinite alternate;
}
.scn-early-life-summary .sail-jib {
  position:absolute; bottom:42%; left:30%; width:20px; height:35px;
  background: linear-gradient(180deg, #d4c8b8 0%, #b8a898 100%);
  clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 90%);
  border-radius: 10% 10% 0 0;
  transform: rotate(-10deg);
  animation: el-sail 4s ease-in-out infinite alternate-reverse;
}
.scn-early-life-summary .figure-bow {
  position:absolute; bottom:35%; left:32%; width:12px; height:24px;
  background: #1a1e22;
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  animation: el-figure 5s ease-in-out infinite;
}
.scn-early-life-summary .cloud-drift {
  position:absolute; top:15%; left:10%; width:100px; height:16px;
  background: linear-gradient(180deg, rgba(200,210,220,0.6) 0%, rgba(200,210,220,0.1) 100%);
  border-radius: 50%;
  filter: blur(6px);
  animation: el-cloud 40s linear infinite;
}
@keyframes el-sky {
  0% { opacity:0.8; }
  50% { opacity:0.95; }
  100% { opacity:0.85; }
}
@keyframes el-wave {
  0% { transform: scaleY(1) translateY(0); }
  50% { transform: scaleY(1.03) translateY(-2px); }
  100% { transform: scaleY(1) translateY(0); }
}
@keyframes el-ship {
  0% { transform: translateY(0) rotate(-1deg); }
  40% { transform: translateY(-2px) rotate(1deg); }
  80% { transform: translateY(-1px) rotate(-0.5deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes el-sail {
  0% { transform: scaleX(1) rotate(0deg); }
  50% { transform: scaleX(1.05) rotate(2deg); }
  100% { transform: scaleX(1) rotate(0deg); }
}
@keyframes el-figure {
  0% { transform: translateY(0) rotate(-2deg); }
  30% { transform: translateY(-1px) rotate(1deg); }
  70% { transform: translateY(-2px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes el-cloud {
  0% { transform: translateX(-30px) scaleX(1); }
  50% { transform: translateX(10px) scaleX(1.1); }
  100% { transform: translateX(50vw) scaleX(1); }
}

/* Scene: african-homeland-description */
.scn-african-homeland-description {
  background: linear-gradient(180deg, #4a7a5a 0%, #5a8a6a 30%, #7a9a7a 100%);
}
.scn-african-homeland-description .sky-bright {
  position:absolute; inset:0 0 55% 0;
  background: linear-gradient(180deg, #6ab0d0 0%, #8ac0e0 50%, #a0d0e8 100%);
  animation: af-sky 15s ease-in-out infinite alternate;
}
.scn-african-homeland-description .sun {
  position:absolute; top:10%; left:70%; width:60px; height:60px;
  background: radial-gradient(circle, #ffd860 0%, #ffa030 60%, #ff8010 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px #ffa030, 0 0 80px 40px rgba(255,160,48,0.3);
  animation: af-sun 6s ease-in-out infinite alternate;
}
.scn-african-homeland-description .ground {
  position:absolute; bottom:0; left:0; right:0; height:55%;
  background: linear-gradient(180deg, #5a7a3a 0%, #4a6a2a 50%, #3a5a1a 100%);
  border-radius: 60% 40% 0 0 / 30% 20% 0 0;
}
.scn-african-homeland-description .hut {
  position:absolute; bottom:20%; left:25%; width:70px; height:50px;
  background: linear-gradient(180deg, #8a6a3a 0%, #6a4a2a 100%);
  border-radius: 40% 40% 10% 10% / 60% 60% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: af-hut 10s ease-in-out infinite;
}
.scn-african-homeland-description .tree {
  position:absolute; bottom:15%; left:55%; width:30px; height:80px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 20% 20% 30% 30% / 40% 40% 60% 60%;
  animation: af-tree 7s ease-in-out infinite;
}
.scn-african-homeland-description .elder {
  position:absolute; bottom:17%; left:40%; width:22px; height:45px;
  background: #1a2a1a;
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: af-elder 5s ease-in-out infinite;
}
@keyframes af-sky {
  0% { opacity:0.85; }
  50% { opacity:1; }
  100% { opacity:0.9; }
}
@keyframes af-sun {
  0% { transform: scale(0.95) rotate(0deg); box-shadow: 0 0 30px 15px #ffa030; }
  50% { transform: scale(1.05) rotate(5deg); box-shadow: 0 0 50px 25px #ffa030; }
  100% { transform: scale(0.95) rotate(0deg); box-shadow: 0 0 30px 15px #ffa030; }
}
@keyframes af-hut {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-2px) scale(1.01); }
  100% { transform: translateY(0) scale(1); }
}
@keyframes af-tree {
  0% { transform: rotate(-2deg) scaleY(1); }
  50% { transform: rotate(3deg) scaleY(1.02); }
  100% { transform: rotate(-2deg) scaleY(1); }
}
@keyframes af-elder {
  0% { transform: translateY(0) rotate(-2deg); }
  30% { transform: translateY(-2px) rotate(1deg); }
  70% { transform: translateY(-1px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}

/* Scene: item-birth-name-meaning */
.scn-item-birth-name-meaning {
  background: linear-gradient(180deg, #d4a050 0%, #e8b860 50%, #f0c870 100%);
}
.scn-item-birth-name-meaning .sky-warm {
  position:absolute; inset:0 0 50% 0;
  background: linear-gradient(180deg, #f0c870 0%, #e8b860 50%, #d4a050 100%);
  animation: ib-sky 15s ease-in-out infinite alternate;
}
.scn-item-birth-name-meaning .sun-large {
  position:absolute; top:15%; left:50%; width:80px; height:80px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #ffd860 0%, #ffa030 50%, #ff8010 100%);
  border-radius: 50%;
  box-shadow: 0 0 60px 30px #ffa030, 0 0 100px 50px rgba(255,160,48,0.3);
  animation: ib-sun 8s ease-in-out infinite alternate;
}
.scn-item-birth-name-meaning .ground {
  position:absolute; bottom:0; left:0; right:0; height:50%;
  background: linear-gradient(180deg, #8a9a4a 0%, #6a7a3a 100%);
  border-radius: 50% 50% 0 0 / 30% 30% 0 0;
}
.scn-item-birth-name-meaning .parent-left {
  position:absolute; bottom:20%; left:35%; width:18px; height:40px;
  background: #2a3a1a;
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: ib-parent 6s ease-in-out infinite;
}
.scn-item-birth-name-meaning .parent-right {
  position:absolute; bottom:20%; left:55%; width:18px; height:40px;
  background: #2a3a1a;
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: ib-parent 6s ease-in-out infinite reverse;
  animation-delay: 0.5s;
}
.scn-item-birth-name-meaning .child-held {
  position:absolute; bottom:25%; left:46%; width:10px; height:14px;
  background: #4a3a2a;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ib-child 3s ease-in-out infinite alternate;
}
.scn-item-birth-name-meaning .sunrays {
  position:absolute; top:15%; left:50%; width:160px; height:160px;
  transform: translateX(-50%);
  background: repeating-conic-gradient(rgba(255,200,100,0.15) 0% 5%, transparent 5% 10%);
  border-radius: 50%;
  animation: ib-rays 20s linear infinite;
}
@keyframes ib-sky {
  0% { opacity:0.85; }
  50% { opacity:1; }
  100% { opacity:0.9; }
}
@keyframes ib-sun {
  0% { transform: translateX(-50%) scale(0.95); box-shadow: 0 0 40px 20px #ffa030; }
  50% { transform: translateX(-50%) scale(1.05); box-shadow: 0 0 70px 35px #ffa030; }
  100% { transform: translateX(-50%) scale(0.95); box-shadow: 0 0 40px 20px #ffa030; }
}
@keyframes ib-parent {
  0% { transform: translateY(0) rotate(-3deg); }
  40% { transform: translateY(-2px) rotate(2deg); }
  80% { transform: translateY(-1px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes ib-child {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-3px) scale(1.05); }
  100% { transform: translateY(0) scale(1); }
}
@keyframes ib-rays {
  0% { transform: translateX(-50%) rotate(0deg); }
  100% { transform: translateX(-50%) rotate(360deg); }
}
/* end per-scene blocks */
