/* 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-conclusion-final { background: linear-gradient(135deg, #2a1a0a 0%, #4a2a1a 30%, #3a1a0a 70%, #1a0a00 100%), radial-gradient(ellipse at 70% 30%, #d4a050 0%, transparent 60%); }
.scn-conclusion-final .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #d4b080 0%, #b08050 100%); box-shadow: inset 0 0 60px rgba(0,0,0,.3); }
.scn-conclusion-final .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%); box-shadow: inset 0 20px 30px rgba(0,0,0,.5); }
.scn-conclusion-final .window-outside { position:absolute; top:15%; right:10%; width:35%; height:55%; background: linear-gradient(180deg, #0a0a2a 0%, #1a1a3e 60%, #2a2a4e 100%); border-radius: 4px; box-shadow: inset 0 0 40px rgba(0,0,200,.2); }
.scn-conclusion-final .window-frame { position:absolute; top:15%; right:10%; width:35%; height:55%; border: 6px solid #5a3a1a; border-radius: 6px; box-shadow: 0 0 20px rgba(0,0,0,.4); }
.scn-conclusion-final .stars { position:absolute; width:6px; height:6px; background: #f0e0a0; border-radius:50%; box-shadow: 0 0 8px 2px rgba(240,224,160,.6); }
.scn-conclusion-final .star-a { top:20%; right:20%; animation: scf-twinkle 4s ease-in-out infinite, scf-drift 20s linear infinite; }
.scn-conclusion-final .star-b { top:45%; right:30%; width:4px; height:4px; animation: scf-twinkle 5s ease-in-out 2s infinite, scf-drift 25s linear 10s infinite; }
.scn-conclusion-final .lamp { position:absolute; bottom:20%; left:15%; width:30px; height:50px; background: linear-gradient(180deg, #8a6030 0%, #5a3a1a 100%); border-radius: 20% 20% 30% 30% / 40% 40% 30% 30%; transform-origin: bottom center; box-shadow: 0 -20px 40px 10px rgba(200,150,80,.5); animation: scf-lamp-glow 3s ease-in-out infinite alternate; }
.scn-conclusion-final .lamp::after { content:''; position:absolute; top:5px; left:50%; width:12px; height:12px; transform:translateX(-50%); background: radial-gradient(circle, #f0d080 0%, #c09040 60%); border-radius:50%; box-shadow: 0 0 30px 15px #e0b060; }
.scn-conclusion-final .figure { position:absolute; bottom:14%; left:28%; width:20px; height:45px; background: linear-gradient(180deg, #2a1a10 0%, #1a0a05 100%); border-radius: 45% 45% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: scf-breathe 6s ease-in-out infinite; }
.scn-conclusion-final .book { position:absolute; bottom:8%; left:32%; width:40px; height:30px; background: linear-gradient(180deg, #7a5a3a 0%, #4a2a12 100%); border-radius: 4px 4px 8px 8px; box-shadow: 2px 2px 6px rgba(0,0,0,.5); transform: rotate(-5deg); }
@keyframes scf-twinkle { 0%,100% { opacity:.4; transform:scale(.8) } 50% { opacity:1; transform:scale(1.2) } }
@keyframes scf-drift { 0% { transform: translateX(0) translateY(0) } 50% { transform: translateX(-8px) translateY(4px) } 100% { transform: translateX(0) translateY(0) } }
@keyframes scf-lamp-glow { 0% { box-shadow: 0 -20px 30px 8px rgba(200,150,80,.4); } 50% { box-shadow: 0 -20px 50px 15px rgba(230,180,90,.7); } 100% { box-shadow: 0 -20px 35px 10px rgba(200,150,80,.5); } }
@keyframes scf-breathe { 0%,100% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-3px) scaleY(1.02); } }

/* red-algae scene */
.scn-red-algae {
  background:
    linear-gradient(180deg, #8fc0c0 0%, #e1c090 40%, #c8a070 70%, #b08050 100%),
    radial-gradient(ellipse at 50% 0%, #e1c090 0%, transparent 60%);
}
.scn-red-algae .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #b0d4d4 0%, #e1c090 100%); animation: ra-sky 10s ease-in-out infinite alternate; }
.scn-red-algae .sun { position:absolute; top:8%; left:50%; width:40px; height:40px; transform:translateX(-50%); background: radial-gradient(circle, #f8e8b0 0%, #e0c070 70%, transparent 100%); border-radius:50%; box-shadow: 0 0 60px 20px rgba(224,192,112,0.5); animation: ra-sun 8s ease-in-out infinite alternate; }
.scn-red-algae .sea { position:absolute; bottom:0; left:0; right:0; height:60%; background: linear-gradient(0deg, #b08050 0%, #c8a070 30%, #d4b880 60%, #e1c090 100%); animation: ra-sea 12s ease-in-out infinite alternate; }
.scn-red-algae .algae { position:absolute; bottom:20%; left:10%; right:10%; height:30%; background: repeating-linear-gradient(0deg, transparent 0px, #c8553d 2px, transparent 4px); opacity:0.6; animation: ra-algae 6s ease-in-out infinite alternate; }
.scn-red-algae .boat { position:absolute; bottom:35%; left:40%; width:60px; height:20px; background: linear-gradient(180deg, #5a3a1a 0%, #3a2a0a 100%); border-radius:0 0 30% 30%; transform:rotate(-2deg); animation: ra-boat 4s ease-in-out infinite; }
.scn-red-algae .figure { position:absolute; bottom:36%; left:44%; width:12px; height:25px; background: #2a1a0a; border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; animation: ra-figure 3s ease-in-out infinite; }
.scn-red-algae .seabird { position:absolute; top:20%; right:15%; width:20px; height:10px; background: #3a2a1a; border-radius:50%; transform:rotate(30deg); animation: ra-bird 10s linear infinite; }
@keyframes ra-sky { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes ra-sun { 0% { transform: translateX(-50%) scale(0.95); } 50% { transform: translateX(-50%) scale(1.05); } 100% { transform: translateX(-50%) scale(1); } }
@keyframes ra-sea { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes ra-algae { 0% { opacity:0.4; background-position: 0 0; } 100% { opacity:0.7; background-position: 20px 0; } }
@keyframes ra-boat { 0% { transform: rotate(-3deg) translateY(0); } 50% { transform: rotate(2deg) translateY(-2px); } 100% { transform: rotate(-3deg) translateY(0); } }
@keyframes ra-figure { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(3deg); } }
@keyframes ra-bird { 0% { transform: translate(0,0) rotate(30deg); } 100% { transform: translate(-120vw, -20px) rotate(30deg); } }

/* moses-crossing scene */
.scn-moses-crossing {
  background:
    linear-gradient(180deg, #a0c0d0 0%, #c8d8e0 40%, #e0d8c0 70%, #c0a880 100%),
    radial-gradient(ellipse at 50% 0%, #e0d8c0 0%, transparent 60%);
}
.scn-moses-crossing .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #b0d4d4 0%, #c8d8e0 100%); animation: mc-sky 15s ease-in-out infinite alternate; }
.scn-moses-crossing .sun { position:absolute; top:5%; left:80%; width:50px; height:50px; background: radial-gradient(circle, #f8e8b0 0%, #e0c070 80%, transparent 100%); border-radius:50%; box-shadow: 0 0 80px 30px rgba(224,192,112,0.5); animation: mc-sun 8s ease-in-out infinite alternate; }
.scn-moses-crossing .sea-left { position:absolute; bottom:0; left:0; width:35%; height:70%; background: linear-gradient(0deg, #3a5a6a 0%, #6a8a9a 100%); border-radius:0 60% 0 0; animation: mc-sea 10s ease-in-out infinite alternate; }
.scn-moses-crossing .sea-right { position:absolute; bottom:0; right:0; width:35%; height:70%; background: linear-gradient(0deg, #3a5a6a 0%, #6a8a9a 100%); border-radius:60% 0 0 0; animation: mc-sea 10s ease-in-out infinite alternate-reverse; }
.scn-moses-crossing .path { position:absolute; bottom:20%; left:30%; right:30%; height:40%; background: linear-gradient(0deg, #c8b080 0%, #e0d0b0 100%); border-radius:10% 10% 50% 50%; animation: mc-path 12s ease-in-out infinite alternate; }
.scn-moses-crossing .figures { position:absolute; bottom:25%; left:40%; width:40px; height:80px; background: repeating-linear-gradient(0deg, #2a1a0a 0px, #2a1a0a 15px, transparent 15px, transparent 30px); animation: mc-figures 4s ease-in-out infinite; }
.scn-moses-crossing .staff { position:absolute; bottom:28%; left:38%; width:4px; height:60px; background: #5a3a1a; border-radius:2px; transform:rotate(20deg); animation: mc-staff 3s ease-in-out infinite alternate; }
@keyframes mc-sky { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes mc-sun { 0% { transform: scale(0.9); } 50% { transform: scale(1.1); } 100% { transform: scale(1); } }
@keyframes mc-sea { 0% { transform: translateY(0); } 50% { transform: translateY(-5px); } 100% { transform: translateY(0); } }
@keyframes mc-path { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes mc-figures { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes mc-staff { 0% { transform: rotate(15deg); } 100% { transform: rotate(25deg); } }

/* pharaohs-army scene */
.scn-pharaohs-army {
  background:
    linear-gradient(0deg, #2a4a5a 0%, #4a6a7a 40%, #6a8a9a 100%),
    radial-gradient(ellipse at 50% 100%, #1a3a4a 0%, transparent 70%);
}
.scn-pharaohs-army .water-bg { position:absolute; inset:0; background: linear-gradient(0deg, #1a3a4a 0%, #4a6a7a 100%); opacity:0.8; animation: pa-water 20s ease-in-out infinite alternate; }
.scn-pharaohs-army .sand { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(0deg, #a08858 0%, #c8b080 100%); border-radius:50% 50% 0 0; animation: pa-sand 15s ease-in-out infinite alternate; }
.scn-pharaohs-army .chariot { position:absolute; bottom:20%; left:20%; width:50px; height:30px; background: #5a3a1a; border-radius:10% 10% 50% 50%; transform:rotate(-10deg); animation: pa-chariot 6s ease-in-out infinite alternate; }
.scn-pharaohs-army .spear { position:absolute; bottom:25%; left:15%; width:3px; height:40px; background: #8a6a3a; transform:rotate(30deg); animation: pa-spear 4s ease-in-out infinite; }
.scn-pharaohs-army .helmet { position:absolute; bottom:30%; left:35%; width:12px; height:14px; background: #7a5a2a; border-radius:50% 50% 40% 40%; animation: pa-helmet 3s ease-in-out infinite alternate; }
.scn-pharaohs-army .bubble { position:absolute; bottom:5%; left:60%; width:8px; height:8px; background: rgba(255,255,255,0.3); border-radius:50%; animation: pa-bubble 5s ease-in-out infinite; }
.scn-pharaohs-army .light-ray { position:absolute; top:0; left:20%; right:20%; height:100%; background: linear-gradient(0deg, transparent 0%, rgba(255,255,200,0.1) 50%, transparent 100%); animation: pa-ray 7s ease-in-out infinite alternate; }
@keyframes pa-water { 0% { opacity:0.7 } 50% { opacity:0.9 } 100% { opacity:0.75 } }
@keyframes pa-sand { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.05) } 100% { transform: scaleY(1) } }
@keyframes pa-chariot { 0% { transform: rotate(-15deg) translate(0); } 50% { transform: rotate(-5deg) translate(5px); } 100% { transform: rotate(-15deg) translate(0); } }
@keyframes pa-spear { 0% { transform: rotate(20deg) translate(0); } 50% { transform: rotate(40deg) translate(0); } 100% { transform: rotate(20deg) translate(0); } }
@keyframes pa-helmet { 0% { transform: translateY(0); } 100% { transform: translateY(-3px); } }
@keyframes pa-bubble { 0% { transform: translate(0,0); opacity:0.4; } 50% { transform: translate(10px,-20px); opacity:0.2; } 100% { transform: translate(0,0); opacity:0.4; } }
@keyframes pa-ray { 0% { opacity:0.3 } 50% { opacity:0.6 } 100% { opacity:0.3 } }

/* ancient-canals scene */
.scn-ancient-canals {
  background:
    linear-gradient(180deg, #a0c0c0 0%, #c8d8c8 40%, #e0d8b0 70%, #c8b080 100%),
    radial-gradient(ellipse at 50% 0%, #e0d8b0 0%, transparent 60%);
}
.scn-ancient-canals .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #b0d4d4 0%, #c8d8c8 100%); animation: ac-sky 12s ease-in-out infinite alternate; }
.scn-ancient-canals .sun { position:absolute; top:5%; left:40%; width:45px; height:45px; background: radial-gradient(circle, #f8e8b0 0%, #e0c070 80%, transparent 100%); border-radius:50%; box-shadow: 0 0 70px 25px rgba(224,192,112,0.5); animation: ac-sun 8s ease-in-out infinite alternate; }
.scn-ancient-canals .desert { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(0deg, #c8b080 0%, #e0d0b0 100%); animation: ac-desert 10s ease-in-out infinite alternate; }
.scn-ancient-canals .canal { position:absolute; bottom:20%; left:20%; right:20%; height:15%; background: linear-gradient(0deg, #6a8a9a 0%, #8aabaa 100%); border-radius:0 0 30% 30%; animation: ac-canal 14s ease-in-out infinite alternate; }
.scn-ancient-canals .boat { position:absolute; bottom:25%; left:35%; width:40px; height:12px; background: #5a3a1a; border-radius:0 0 50% 50%; transform:rotate(-3deg); animation: ac-boat 5s ease-in-out infinite; }
.scn-ancient-canals .palm { position:absolute; bottom:40%; right:10%; width:8px; height:60px; background: #3a2a0a; border-radius:2px; animation: ac-palm 3s ease-in-out infinite alternate; }
.scn-ancient-canals .columns { position:absolute; bottom:35%; left:10%; width:6px; height:40px; background: #8a7a5a; border-radius:2px; box-shadow: 15px 0 0 #8a7a5a, 30px 0 0 #8a7a5a; animation: ac-columns 20s ease-in-out infinite alternate; }
@keyframes ac-sky { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes ac-sun { 0% { transform: scale(0.95); } 50% { transform: scale(1.05); } 100% { transform: scale(1); } }
@keyframes ac-desert { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes ac-canal { 0% { transform: scaleY(0.95); } 100% { transform: scaleY(1.05); } }
@keyframes ac-boat { 0% { transform: rotate(-5deg) translate(0); } 50% { transform: rotate(2deg) translate(5px); } 100% { transform: rotate(-5deg) translate(0); } }
@keyframes ac-palm { 0% { transform: rotate(-5deg); } 100% { transform: rotate(5deg); } }
@keyframes ac-columns { 0% { opacity:0.7; } 100% { opacity:1; } }

.scn-skiff-nearly-capsized { background: linear-gradient(180deg, #ffd9a0 0%, #f8c880 40%, #a0c8f0 60%, #4a7aaa 100%), radial-gradient(ellipse at 30% 60%, #ffecb0 0%, transparent 60%); position: relative; overflow: hidden; }
.scn-skiff-nearly-capsized .sky { position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #ffe8b0 0%, #ffd080 100%); }
.scn-skiff-nearly-capsized .sea { position: absolute; top: 60%; left: 0; right: 0; bottom: 0; background: linear-gradient(180deg, #2a6a9a 0%, #1a3a5a 100%); }
.scn-skiff-nearly-capsized .boat { position: absolute; bottom: 15%; left: 20%; width: 60%; height: 30%; background: linear-gradient(135deg, #8a5a2a 0%, #5a3a1a 100%); border-radius: 0 0 20% 20% / 0 0 50% 50%; transform: rotate(-15deg) translateY(-5px); box-shadow: 10px 5px 20px rgba(0,0,0,0.6); animation: sk1-boat 4s ease-in-out infinite alternate; }
.scn-skiff-nearly-capsized .figure { position: absolute; bottom: 18%; left: 25%; width: 20px; height: 50px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform: rotate(10deg); animation: sk1-figure 3s ease-in-out infinite alternate; }
.scn-skiff-nearly-capsized .harpoon { position: absolute; bottom: 25%; left: 35%; width: 4px; height: 60px; background: linear-gradient(180deg, #c0c0c0 0%, #808080 100%); transform: rotate(20deg); border-radius: 30% 30% 10% 10%; box-shadow: 0 0 4px rgba(255,255,255,0.3); animation: sk1-harpoon 2s ease-in-out infinite; }
.scn-skiff-nearly-capsized .splash { position: absolute; bottom: 35%; left: 45%; width: 40px; height: 20px; background: radial-gradient(circle at 50% 100%, rgba(200,230,255,0.8) 0%, transparent 70%); filter: blur(4px); animation: sk1-splash 1.5s ease-in-out infinite; }
.scn-skiff-nearly-capsized .water-ingress { position: absolute; bottom: 10%; left: 30%; width: 100px; height: 40px; background: linear-gradient(180deg, rgba(40,100,160,0.7) 0%, rgba(20,60,100,0.3) 100%); border-radius: 50%; filter: blur(6px); animation: sk1-water 2.5s ease-in-out infinite alternate; }
@keyframes sk1-boat { 0% { transform: rotate(-15deg) translateY(-5px); } 50% { transform: rotate(-10deg) translateY(-8px); } 100% { transform: rotate(-18deg) translateY(-3px); } }
@keyframes sk1-figure { 0% { transform: rotate(10deg) translateY(0); } 50% { transform: rotate(8deg) translateY(-3px); } 100% { transform: rotate(12deg) translateY(0); } }
@keyframes sk1-harpoon { 0% { transform: rotate(20deg) scale(1); } 50% { transform: rotate(15deg) scale(1.05); } 100% { transform: rotate(22deg) scale(0.95); } }
@keyframes sk1-splash { 0% { transform: scale(1) rotate(0deg); opacity: 0.7; } 50% { transform: scale(1.3) rotate(10deg); opacity: 1; } 100% { transform: scale(1) rotate(0deg); opacity: 0.5; } }
@keyframes sk1-water { 0% { transform: translateX(0) scaleY(1); } 50% { transform: translateX(15px) scaleY(1.2); } 100% { transform: translateX(0) scaleY(0.8); } }

.scn-dugong-butchered { background: linear-gradient(180deg, #ffe8c0 0%, #ffd8a0 40%, #c0a080 60%, #a08060 100%), radial-gradient(ellipse at 50% 0%, #fff0d0 0%, transparent 70%); position: relative; overflow: hidden; }
.scn-dugong-butchered .deck { position: absolute; bottom: 0; left: 0; right: 0; height: 60%; background: linear-gradient(180deg, #6a7a8a 0%, #3a4a5a 100%); border-radius: 20% 20% 0 0 / 10% 10% 0 0; }
.scn-dugong-butchered .dugong-body { position: absolute; bottom: 20%; left: 10%; width: 70%; height: 40%; background: linear-gradient(135deg, #7a6a5a 0%, #4a3a2a 100%); border-radius: 40% 30% 20% 20% / 50% 40% 30% 30%; box-shadow: 5px 5px 15px rgba(0,0,0,0.5); animation: dg1-body 6s ease-in-out infinite alternate; }
.scn-dugong-butchered .pulley { position: absolute; top: 10%; left: 30%; width: 20px; height: 80px; background: linear-gradient(180deg, #808080 0%, #404040 100%); border-radius: 10px; transform: rotate(5deg); }
.scn-dugong-butchered .observer { position: absolute; bottom: 25%; right: 15%; width: 25px; height: 70px; background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; animation: dg1-observer 8s ease-in-out infinite alternate; }
.scn-dugong-butchered .meat-slice { position: absolute; bottom: 30%; left: 45%; width: 30px; height: 15px; background: linear-gradient(180deg, #c07050 0%, #a05030 100%); border-radius: 30% 30% 20% 20%; transform: rotate(-15deg); box-shadow: 2px 2px 5px rgba(0,0,0,0.3); animation: dg1-meat 4s ease-in-out infinite; }
.scn-dugong-butchered .shadow { position: absolute; bottom: 5%; left: 20%; width: 150px; height: 30px; background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.3) 0%, transparent 80%); filter: blur(8px); animation: dg1-shadow 6s ease-in-out infinite alternate; }
@keyframes dg1-body { 0% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.02) rotate(2deg); } 100% { transform: scale(0.98) rotate(-2deg); } }
@keyframes dg1-observer { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-5px) rotate(2deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes dg1-meat { 0% { transform: rotate(-15deg) scale(1); } 50% { transform: rotate(-10deg) scale(1.1); } 100% { transform: rotate(-20deg) scale(0.9); } }
@keyframes dg1-shadow { 0% { transform: scaleX(1) scaleY(1); } 50% { transform: scaleX(1.1) scaleY(0.9); } 100% { transform: scaleX(0.9) scaleY(1.1); } }

.scn-terns-caught { background: linear-gradient(180deg, #d0e8ff 0%, #a0c8f0 40%, #4080c0 70%, #1a4a7a 100%), radial-gradient(ellipse at 70% 30%, #fff0d0 0%, transparent 60%); position: relative; overflow: hidden; }
.scn-terns-caught .sky-sea { position: absolute; inset: 0; background: linear-gradient(180deg, transparent 0%, rgba(30,70,120,0.3) 100%); }
.scn-terns-caught .nautilus-deck { position: absolute; bottom: 10%; left: 0; right: 0; height: 30%; background: linear-gradient(180deg, #5a6a7a 0%, #2a3a4a 100%); border-radius: 30% 30% 0 0 / 20% 20% 0 0; }
.scn-terns-caught .tern { position: absolute; background: linear-gradient(135deg, #e0e0e0 0%, #a0a0a0 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; }
.scn-terns-caught .tern-1 { top: 20%; left: 15%; width: 30px; height: 20px; transform: rotate(-10deg); animation: tc1-tern1 3s ease-in-out infinite alternate; }
.scn-terns-caught .tern-2 { top: 30%; right: 20%; width: 25px; height: 18px; transform: rotate(15deg); animation: tc1-tern2 3.5s ease-in-out infinite alternate; animation-delay: 0.5s; }
.scn-terns-caught .tern-3 { top: 40%; left: 50%; width: 28px; height: 22px; transform: rotate(-5deg); animation: tc1-tern3 4s ease-in-out infinite alternate; animation-delay: 1s; }
.scn-terns-caught .net { position: absolute; bottom: 25%; left: 30%; width: 100px; height: 80px; background: repeating-linear-gradient(45deg, transparent, transparent 4px, rgba(200,200,200,0.3) 4px, rgba(200,200,200,0.3) 8px); border-radius: 10%; transform: rotate(5deg); animation: tc1-net 5s ease-in-out infinite alternate; }
@keyframes tc1-tern1 { 0% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-8deg) translateY(-5px); } 100% { transform: rotate(-12deg) translateY(3px); } }
@keyframes tc1-tern2 { 0% { transform: rotate(15deg) translateY(0); } 50% { transform: rotate(10deg) translateY(-4px); } 100% { transform: rotate(18deg) translateY(2px); } }
@keyframes tc1-tern3 { 0% { transform: rotate(-5deg) translateY(0) scale(1); } 50% { transform: rotate(-2deg) translateY(-6px) scale(1.05); } 100% { transform: rotate(-8deg) translateY(3px) scale(0.95); } }
@keyframes tc1-net { 0% { transform: rotate(5deg) scale(1); } 50% { transform: rotate(2deg) scale(1.02); } 100% { transform: rotate(8deg) scale(0.98); } }

.scn-cape-ras-mohammed { background: linear-gradient(180deg, #d0e8f0 0%, #b0d8e8 30%, #7ab0d0 60%, #3a7090 100%), radial-gradient(ellipse at 30% 20%, #f0f8ff 0%, transparent 70%); position: relative; overflow: hidden; }
.scn-cape-ras-mohammed .sky { position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #c0d8f0 0%, #a0c8e0 100%); }
.scn-cape-ras-mohammed .sea { position: absolute; top: 60%; left: 0; right: 0; bottom: 0; background: linear-gradient(180deg, #2a7090 0%, #1a4a6a 100%); }
.scn-cape-ras-mohammed .cliffs { position: absolute; top: 20%; right: 10%; width: 30%; height: 50%; background: linear-gradient(135deg, #8a7a5a 0%, #5a4a2a 100%); border-radius: 40% 40% 0 0 / 30% 30% 0 0; box-shadow: 5px 5px 20px rgba(0,0,0,0.3); animation: cr1-cliffs 12s ease-in-out infinite alternate; }
.scn-cape-ras-mohammed .periscope { position: absolute; bottom: 40%; left: 25%; width: 10px; height: 60px; background: linear-gradient(180deg, #606060 0%, #303030 100%); border-radius: 20% 20% 10% 10%; transform: rotate(3deg); animation: cr1-periscope 9s ease-in-out infinite alternate; }
.scn-cape-ras-mohammed .ripple { position: absolute; bottom: 30%; left: 40%; width: 80px; height: 20px; background: radial-gradient(ellipse at 50% 100%, rgba(255,255,255,0.2) 0%, transparent 80%); filter: blur(5px); animation: cr1-ripple 5s ease-in-out infinite; }
@keyframes cr1-cliffs { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-5px) scale(1.02); } 100% { transform: translateY(5px) scale(0.98); } }
@keyframes cr1-periscope { 0% { transform: rotate(3deg) translateY(0); } 50% { transform: rotate(0deg) translateY(-3px); } 100% { transform: rotate(5deg) translateY(0); } }
@keyframes cr1-ripple { 0% { transform: scale(1) rotate(0deg); opacity: 0.6; } 50% { transform: scale(1.2) rotate(5deg); opacity: 1; } 100% { transform: scale(0.9) rotate(-5deg); opacity: 0.4; } }

.scn-crustaceans-in-crevices {
  background: 
    linear-gradient(180deg, #87CEEB 0%, #3A8FB7 40%, #0D4F6B 100%),
    radial-gradient(ellipse at 50% 0%, #B0E0E6 0%, transparent 60%);
}
.scn-crustaceans-in-crevices .water-light {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, rgba(255,255,230,0.3) 0%, transparent 100%);
  animation: cc-water 8s ease-in-out infinite alternate;
}
.scn-crustaceans-in-crevices .rock-bg {
  position: absolute; bottom: 0; left: 0; right: 0; height: 70%;
  background: linear-gradient(180deg, #3B3B3B 0%, #1A1A1A 100%);
  border-radius: 60% 40% 0 0 / 80% 70% 0 0;
  box-shadow: inset 0 -20px 30px rgba(0,0,0,0.5);
  animation: cc-rock 15s ease-in-out infinite;
}
.scn-crustaceans-in-crevices .crevice {
  position: absolute; bottom: 25%; left: 30%; width: 40%; height: 35%;
  background: #0A0A0A;
  border-radius: 30% 30% 50% 50% / 40% 40% 60% 60%;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.8);
}
.scn-crustaceans-in-crevices .crustacean-body {
  position: absolute; bottom: 30%; left: 45%; width: 22px; height: 14px;
  background: radial-gradient(ellipse at 30% 30%, #D2691E 0%, #A0522D 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-10deg);
  animation: cc-body 4s ease-in-out infinite;
}
.scn-crustaceans-in-crevices .leg-leg-l,
.scn-crustaceans-in-crevices .leg-leg-r {
  position: absolute; bottom: 28%; width: 3px; height: 30px;
  background: linear-gradient(0deg, #8B4513 0%, #CD853F 100%);
  border-radius: 50%;
  transform-origin: bottom center;
}
.scn-crustaceans-in-crevices .leg-l {
  left: 42%; animation: cc-leg-l 3s ease-in-out infinite;
}
.scn-crustaceans-in-crevices .leg-r {
  right: 42%; animation: cc-leg-r 3s ease-in-out infinite 1.5s;
}
.scn-crustaceans-in-crevices .creature-small {
  position: absolute; bottom: 22%; left: 55%; width: 8px; height: 4px;
  background: #B87333;
  border-radius: 50%;
  animation: cc-creep 6s ease-in-out infinite;
}
@keyframes cc-water { 0% { opacity:0.6 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes cc-rock { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes cc-body { 0% { transform: rotate(-10deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(-10deg) } }
@keyframes cc-leg-l { 0% { transform: rotate(0) } 25% { transform: rotate(15deg) } 50% { transform: rotate(0) } 75% { transform: rotate(-15deg) } 100% { transform: rotate(0) } }
@keyframes cc-leg-r { 0% { transform: rotate(0) } 25% { transform: rotate(-15deg) } 50% { transform: rotate(0) } 75% { transform: rotate(15deg) } 100% { transform: rotate(0) } }
@keyframes cc-creep { 0% { transform: translateX(0) } 50% { transform: translateX(8px) } 100% { transform: translateX(0) } }

.scn-cave-interior {
  background: 
    linear-gradient(180deg, #1B1B2F 0%, #2C285E 50%, #10101A 100%),
    radial-gradient(ellipse at 50% 50%, #3A3A7A 0%, transparent 70%);
}
.scn-cave-interior .cave-dark {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.6) 100%);
  animation: ci-pulse 12s ease-in-out infinite alternate;
}
.scn-cave-interior .pillar-pillar-l,
.scn-cave-interior .pillar-pillar-r {
  position: absolute; bottom: 0; width: 8%; height: 70%;
  background: linear-gradient(90deg, #4A4A6A 0%, #2C2C4E 50%, #1A1A2E 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 5px 0 15px rgba(0,0,0,0.5);
}
.scn-cave-interior .pillar-l { left: 15%; }
.scn-cave-interior .pillar-r { right: 15%; }
.scn-cave-interior .arch {
  position: absolute; top: 5%; left: 10%; right: 10%; height: 20%;
  background: linear-gradient(180deg, #3A3A5E 0%, #2A2A4A 100%);
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  box-shadow: 0 4px 10px rgba(0,0,0,0.4);
}
.scn-cave-interior .figure {
  position: absolute; bottom: 10%; left: 45%; width: 16px; height: 36px;
  background: linear-gradient(180deg, #2A2A4A 0%, #1A1A2A 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ci-figure 6s ease-in-out infinite;
}
.scn-cave-interior .light-shaft {
  position: absolute; top: 10%; left: 40%; width: 20%; height: 60%;
  background: linear-gradient(180deg, rgba(180,180,255,0.15) 0%, transparent 100%);
  filter: blur(8px);
  animation: ci-shaft 8s ease-in-out infinite alternate;
}
@keyframes ci-pulse { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes ci-figure { 0% { transform: translateX(0) } 50% { transform: translateX(8px) } 100% { transform: translateX(0) } }
@keyframes ci-shaft { 0% { opacity:0.3 } 50% { opacity:0.6 } 100% { opacity:0.3 } }

.scn-giant-clam {
  background: 
    linear-gradient(180deg, #0A3D5E 0%, #06283D 50%, #021524 100%),
    radial-gradient(ellipse at 50% 60%, #1A5B7A 0%, transparent 70%);
}
.scn-giant-clam .water-bg {
  position: absolute; inset:0 0 20% 0;
  background: linear-gradient(180deg, rgba(100,180,220,0.2) 0%, transparent 100%);
  animation: gc-water 10s ease-in-out infinite alternate;
}
.scn-giant-clam .clam-shell {
  position: absolute; bottom: 25%; left: 30%; width: 40%; height: 40%;
  background: radial-gradient(ellipse at 50% 40%, #7A6A4A 0%, #4A3A2A 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 30px rgba(0,0,0,0.6);
  animation: gc-shell 12s ease-in-out infinite;
}
.scn-giant-clam .clam-mantle {
  position: absolute; bottom: 30%; left: 35%; width: 30%; height: 25%;
  background: linear-gradient(180deg, #D4A76A 0%, #B8956A 50%, #8B7355 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  filter: blur(2px);
  animation: gc-mantle 8s ease-in-out infinite alternate;
}
.scn-giant-clam .granite-rock {
  position: absolute; bottom: 15%; left: 20%; right: 20%; height: 15%;
  background: linear-gradient(180deg, #4A4A4A 0%, #2A2A2A 100%);
  border-radius: 30% 30% 10% 10% / 60% 60% 20% 20%;
  box-shadow: 0 5px 15px rgba(0,0,0,0.5);
}
.scn-giant-clam .bubbles {
  position: absolute; bottom: 40%; left: 45%; width: 6px; height: 6px;
  background: rgba(255,255,255,0.3);
  border-radius: 50%;
  box-shadow: 0 0 6px rgba(255,255,255,0.2);
  animation: gc-bubble 5s ease-in-out infinite;
}
@keyframes gc-water { 0% { opacity:0.4 } 50% { opacity:0.7 } 100% { opacity:0.5 } }
@keyframes gc-shell { 0% { transform: scale(1) } 50% { transform: scale(1.02) } 100% { transform: scale(1) } }
@keyframes gc-mantle { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes gc-bubble { 0% { transform: translateY(0) } 50% { transform: translateY(-20px) } 100% { transform: translateY(0) } }

.scn-pearl-revealed {
  background: 
    linear-gradient(180deg, #2C1A0E 0%, #4A2A16 50%, #1A0E06 100%),
    radial-gradient(ellipse at 50% 50%, #6B3A1A 0%, transparent 70%);
}
.scn-pearl-revealed .cave-wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.5) 100%);
  animation: pr-wall 10s ease-in-out infinite alternate;
}
.scn-pearl-revealed .shell-open {
  position: absolute; bottom: 30%; left: 30%; width: 40%; height: 35%;
  background: radial-gradient(ellipse at 50% 50%, #B8856A 0%, #7A5A4A 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 25px rgba(0,0,0,0.7);
  animation: pr-shell 8s ease-in-out infinite;
}
.scn-pearl-revealed .mantle-frill {
  position: absolute; bottom: 33%; left: 35%; width: 30%; height: 20%;
  background: linear-gradient(180deg, #D4A76A 0%, #B8956A 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  filter: blur(1px);
  animation: pr-mantle 6s ease-in-out infinite alternate;
}
.scn-pearl-revealed .pearl-glow {
  position: absolute; bottom: 38%; left: 47%; width: 12px; height: 12px;
  background: radial-gradient(circle, #FFE4B5 0%, #D4A76A 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 8px #FFD700, 0 0 60px 15px rgba(255,215,0,0.4);
  animation: pr-pearl 3s ease-in-out infinite alternate;
}
.scn-pearl-revealed .hand-dagger {
  position: absolute; bottom: 42%; left: 55%; width: 4px; height: 20px;
  background: linear-gradient(0deg, #8B4513 0%, #CD853F 100%);
  border-radius: 2px;
  transform: rotate(-30deg);
  transform-origin: bottom center;
  animation: pr-hand 5s ease-in-out infinite;
}
.scn-pearl-revealed .captain-silhouette {
  position: absolute; bottom: 10%; 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: pr-captain 7s ease-in-out infinite;
}
@keyframes pr-wall { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes pr-shell { 0% { transform: scale(1) } 50% { transform: scale(1.01) } 100% { transform: scale(1) } }
@keyframes pr-mantle { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes pr-pearl { 0% { box-shadow: 0 0 20px 5px #FFD700, 0 0 40px 10px rgba(255,215,0,0.3); } 50% { box-shadow: 0 0 40px 12px #FFE4B5, 0 0 80px 20px rgba(255,228,181,0.5); } 100% { box-shadow: 0 0 25px 6px #FFD700, 0 0 50px 12px rgba(255,215,0,0.35); } }
@keyframes pr-hand { 0% { transform: rotate(-30deg) } 50% { transform: rotate(-20deg) } 100% { transform: rotate(-30deg) } }
@keyframes pr-captain { 0% { transform: translateX(0) } 50% { transform: translateX(5px) } 100% { transform: translateX(0) } }

/* Scene: inside-door-opens */
.scn-inside-door-opens {
  background: 
    linear-gradient(180deg, #3a2a1a 0%, #5a3a2a 40%, #7a5a3a 100%),
    radial-gradient(ellipse at 50% 20%, #b08040 0%, transparent 60%);
}
.scn-inside-door-opens .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 0 0 10% 10%;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.5);
  animation: ido-wall 15s ease-in-out infinite alternate;
}
.scn-inside-door-opens .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  box-shadow: inset 0 8px 15px rgba(0,0,0,.6);
}
.scn-inside-door-opens .door {
  position: absolute; bottom: 20%; left: 50%; width: 80px; height: 120px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a1a 100%);
  border-radius: 4px 4px 0 0;
  border: 4px solid #3a2a1a;
  box-shadow: 0 0 30px 10px rgba(180,140,80,.3);
  animation: ido-door 6s ease-in-out infinite;
}
.scn-inside-door-opens .light-beam {
  position: absolute; bottom: 20%; left: 50%; width: 120px; height: 180px;
  transform: translateX(-50%) skewX(-5deg);
  background: linear-gradient(135deg, rgba(255,200,120,.4) 0%, transparent 100%);
  clip-path: polygon(20% 0%, 80% 0%, 60% 100%, 40% 100%);
  animation: ido-beam 4s ease-in-out infinite alternate;
}
.scn-inside-door-opens .wardrobe {
  position: absolute; bottom: 20%; right: 10%; width: 100px; height: 140px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 6px;
  box-shadow: inset 0 -10px 20px #1a0a00, 0 10px 20px rgba(0,0,0,.5);
  animation: ido-wardrobe 12s ease-in-out infinite alternate;
}
.scn-inside-door-opens .figure {
  position: absolute; bottom: 22%; left: 35%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ido-figure 5s ease-in-out infinite;
}
@keyframes ido-wall {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes ido-door {
  0%, 100% { transform: translateX(-50%) rotateY(0deg); }
  50% { transform: translateX(-50%) rotateY(-10deg); }
}
@keyframes ido-beam {
  0% { opacity: 0.6; transform: translateX(-50%) skewX(-5deg) scaleX(1); }
  50% { opacity: 1; transform: translateX(-50%) skewX(-3deg) scaleX(1.1); }
  100% { opacity: 0.7; transform: translateX(-50%) skewX(-7deg) scaleX(0.95); }
}
@keyframes ido-wardrobe {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
}
@keyframes ido-figure {
  0% { transform: translateX(0) translateY(0) rotate(-2deg); }
  25% { transform: translateX(5px) translateY(-1px) rotate(2deg); }
  50% { transform: translateX(10px) translateY(0) rotate(-2deg); }
  75% { transform: translateX(15px) translateY(-1px) rotate(2deg); }
  100% { transform: translateX(20px) translateY(0) rotate(0); }
}

/* Scene: morning-recovery */
.scn-morning-recovery {
  background:
    linear-gradient(180deg, #87CEEB 0%, #B0E0F0 30%, #E0F0FF 60%, #FFF5E0 100%),
    radial-gradient(ellipse at 50% 10%, #FFD700 0%, transparent 50%);
}
.scn-morning-recovery .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #70B8E0 0%, #A0D8F0 50%, transparent 100%);
  animation: mor-sky 20s ease-in-out infinite alternate;
}
.scn-morning-recovery .sun {
  position: absolute; top: 8%; left: 50%; width: 80px; height: 80px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #FFD700 0%, #FFA500 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 60px 30px #FFA500, 0 0 120px 60px rgba(255,165,0,.3);
  animation: mor-sun 8s ease-in-out infinite alternate;
}
.scn-morning-recovery .sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #2E86AB 0%, #1B4F72 70%, #0D2E41 100%);
  animation: mor-sea 10s ease-in-out infinite alternate;
}
.scn-morning-recovery .deck {
  position: absolute; bottom: 22%; left: 10%; right: 10%; height: 10%;
  background: linear-gradient(180deg, #4A3E2C 0%, #2E241A 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: 0 -5px 20px rgba(0,0,0,.5);
  transform: perspective(400px) rotateX(5deg);
}
.scn-morning-recovery .rail {
  position: absolute; bottom: 31%; left: 10%; right: 10%; height: 2%;
  background: linear-gradient(180deg, #6B5B4F 0%, #4A3E2C 100%);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,.3);
}
.scn-morning-recovery .figure {
  position: absolute; bottom: 22%; left: 48%; width: 20px; height: 45px;
  background: linear-gradient(180deg, #1A1A2E 0%, #0A0A1A 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mor-figure 6s ease-in-out infinite;
}
@keyframes mor-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes mor-sun {
  0% { transform: translateX(-50%) scale(1); opacity: 0.9; }
  50% { transform: translateX(-50%) scale(1.05); opacity: 1; }
  100% { transform: translateX(-50%) scale(0.98); opacity: 0.95; }
}
@keyframes mor-sea {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes mor-figure {
  0% { transform: translateX(0) translateY(0) rotate(-2deg); }
  25% { transform: translateX(4px) translateY(-1px) rotate(2deg); }
  50% { transform: translateX(8px) translateY(0) rotate(-2deg); }
  75% { transform: translateX(12px) translateY(-1px) rotate(2deg); }
  100% { transform: translateX(16px) translateY(0) rotate(0); }
}

/* Scene: deserted-ocean */
.scn-deserted-ocean {
  background:
    linear-gradient(180deg, #0B3B60 0%, #1A5A8A 30%, #4682B4 60%, #87CEEB 100%),
    radial-gradient(ellipse at 50% 15%, #FFD700 0%, transparent 60%);
}
.scn-deserted-ocean .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #4A90B8 0%, #A0D0E8 50%, transparent 100%);
  animation: des-sky 25s ease-in-out infinite alternate;
}
.scn-deserted-ocean .sun {
  position: absolute; top: 12%; left: 50%; width: 70px; height: 70px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #FFD700 0%, #FFA500 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px #FFA500, 0 0 80px 40px rgba(255,165,0,.2);
  animation: des-sun 10s ease-in-out infinite alternate;
}
.scn-deserted-ocean .sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #1E5F8A 0%, #0D3B5A 70%, #051A2E 100%);
  animation: des-sea 12s ease-in-out infinite alternate;
}
.scn-deserted-ocean .horizon-line {
  position: absolute; bottom: 40%; left: 0; right: 0; height: 2px;
  background: linear-gradient(90deg, transparent, #FFD700 20%, #FFA500 50%, #FFD700 80%, transparent);
  box-shadow: 0 0 10px 2px #FFA500;
  animation: des-horizon 8s ease-in-out infinite;
}
.scn-deserted-ocean .cloud {
  position: absolute; top: 8%; right: 10%; width: 100px; height: 20px;
  background: linear-gradient(180deg, rgba(255,255,255,.5) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(8px);
  animation: des-cloud 40s linear infinite;
}
.scn-deserted-ocean .mist {
  position: absolute; bottom: 10%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, rgba(200,220,255,.1) 0%, transparent 100%);
  filter: blur(10px);
  animation: des-mist 15s ease-in-out infinite alternate;
}
@keyframes des-sky {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes des-sun {
  0% { transform: translateX(-50%) scale(1); }
  50% { transform: translateX(-50%) scale(1.08); }
  100% { transform: translateX(-50%) scale(0.95); }
}
@keyframes des-sea {
  0% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
  100% { transform: translateY(0); }
}
@keyframes des-horizon {
  0%, 100% { opacity: 0.8; }
  50% { opacity: 1; }
}
@keyframes des-cloud {
  0% { transform: translateX(0); }
  100% { transform: translateX(-120vw); }
}
@keyframes des-mist {
  0% { opacity: 0.2; }
  50% { opacity: 0.5; }
  100% { opacity: 0.3; }
}

/* Scene: captain-nemo-observes */
.scn-captain-nemo-observes {
  background:
    linear-gradient(180deg, #4A7EB5 0%, #6A9AC8 30%, #A0C8E8 60%, #E0F0FF 100%),
    radial-gradient(ellipse at 50% 20%, #FFD700 0%, transparent 50%);
}
.scn-captain-nemo-observes .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #5A8AB8 0%, #A0D0F0 50%, transparent 100%);
  animation: nemo-sky 18s ease-in-out infinite alternate;
}
.scn-captain-nemo-observes .sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #2A6A8A 0%, #1A4A6A 70%, #0A2A4A 100%);
  animation: nemo-sea 10s ease-in-out infinite alternate;
}
.scn-captain-nemo-observes .deck {
  position: absolute; bottom: 25%; left: 5%; right: 5%; height: 12%;
  background: linear-gradient(180deg, #4A3E2C 0%, #2E241A 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 -4px 15px rgba(0,0,0,.5);
  transform: perspective(500px) rotateX(3deg);
}
.scn-captain-nemo-observes .beacon {
  position: absolute; bottom: 32%; left: 20%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #6B5B4F 0%, #4A3E2C 100%);
  border-radius: 10% 10% 30% 30%;
  box-shadow: inset 0 -10px 15px #1A1008, 0 0 20px 10px rgba(255,200,100,.2);
  animation: nemo-beacon 7s ease-in-out infinite;
}
.scn-captain-nemo-observes .figure {
  position: absolute; bottom: 25%; left: 18%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #1A1A2E 0%, #0A0A1A 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: nemo-figure 9s ease-in-out infinite;
}
.scn-captain-nemo-observes .railing {
  position: absolute; bottom: 36%; left: 5%; right: 5%; height: 2%;
  background: linear-gradient(180deg, #6B5B4F 0%, #4A3E2C 100%);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,.3);
  animation: nemo-rail 5s ease-in-out infinite alternate;
}
@keyframes nemo-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes nemo-sea {
  0% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
  100% { transform: translateY(0); }
}
@keyframes nemo-beacon {
  0%, 100% { transform: scaleY(1); opacity: 0.8; }
  50% { transform: scaleY(1.05); opacity: 1; }
}
@keyframes nemo-figure {
  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(0deg); }
}
@keyframes nemo-rail {
  0% { transform: translateY(0) scaleX(1); }
  50% { transform: translateY(-1px) scaleX(1.02); }
  100% { transform: translateY(0) scaleX(1); }
}

/* nemo-appears-again — bright-interior, Nemo with chart */
.scn-nemo-appears-again {
  background: linear-gradient(135deg, #f5e6d3 0%, #d4c4a8 30%, #c8b89c 60%, #b0a084 100%), radial-gradient(circle at 70% 30%, #ffe8c0 0%, transparent 60%);
}
.scn-nemo-appears-again .pane {
  position: absolute; inset: 10% 10% 15% 15%;
  background: linear-gradient(180deg, #e8ddd0 0%, #d4c4b0 50%, #bfb09e 100%);
  border-radius: 8px;
  box-shadow: inset 0 0 30px rgba(255,220,180,0.5), 0 4px 12px rgba(0,0,0,0.2);
  animation: na-pane 12s ease-in-out infinite alternate;
}
.scn-nemo-appears-again .desk {
  position: absolute; bottom: 20%; left: 20%; right: 20%; height: 12%;
  background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 -2px 6px rgba(0,0,0,0.3);
}
.scn-nemo-appears-again .chart {
  position: absolute; bottom: 24%; left: 35%; width: 30%; height: 18%;
  background: linear-gradient(135deg, #f0e8d8 0%, #dcc8b0 50%, #bca88a 100%);
  border-radius: 2px;
  transform: rotate(-5deg);
  box-shadow: 0 2px 8px rgba(0,0,0,0.2), inset 0 1px 4px rgba(255,255,200,0.3);
  animation: na-chart 9s ease-in-out infinite;
}
.scn-nemo-appears-again .nemo {
  position: absolute; bottom: 24%; left: 45%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 50%, #0a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: na-nemo-walk 6s ease-in-out infinite;
}
.scn-nemo-appears-again .chart-glow {
  position: absolute; bottom: 24%; left: 40%; width: 20%; height: 12%;
  background: radial-gradient(ellipse, rgba(255,235,180,0.6) 0%, transparent 70%);
  filter: blur(8px);
  animation: na-glow 3s ease-in-out infinite alternate;
}
.scn-nemo-appears-again .shadow {
  position: absolute; bottom: 18%; left: 40%; width: 40%; height: 6%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.2) 0%, transparent 100%);
  filter: blur(4px);
  animation: na-shadow 6s ease-in-out infinite;
}
@keyframes na-pane { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes na-chart { 0% { transform: rotate(-5deg); } 50% { transform: rotate(-2deg); } 100% { transform: rotate(-7deg); } }
@keyframes na-nemo-walk { 
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(8px) rotate(2deg); }
  50% { transform: translateX(0) rotate(0deg); }
  75% { transform: translateX(-8px) rotate(-2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes na-glow { 0% { opacity:0.4; transform: scale(1); } 100% { opacity:0.8; transform: scale(1.2); } }
@keyframes na-shadow { 0% { width:40%; } 50% { width:50%; } 100% { width:35%; } }

/* gulf-of-mannar — dim-interior, porthole with water, chart */
.scn-gulf-of-mannar {
  background: linear-gradient(180deg, #0a1a2a 0%, #1a2a3a 30%, #2a3a4a 60%, #1a2a3a 100%), radial-gradient(circle at 50% 30%, #3a5a7a 0%, transparent 70%);
}
.scn-gulf-of-mannar .wall {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #2a3a4a 0%, #1a2a3a 50%, #0a1a2a 100%);
  border-radius: 6px;
  box-shadow: inset 0 0 40px rgba(0,0,0,0.6);
}
.scn-gulf-of-mannar .porthole {
  position: absolute; top: 18%; left: 18%; width: 80px; height: 80px;
  background: radial-gradient(circle, #4a7a9a 0%, #2a5a7a 50%, #1a3a5a 100%);
  border-radius: 50%;
  border: 6px solid #3a4a5a;
  box-shadow: inset 0 0 20px #2a5a7a, 0 0 20px rgba(0,0,0,0.5);
  animation: gm-porthole 12s ease-in-out infinite alternate;
}
.scn-gulf-of-mannar .water-outside {
  position: absolute; top: 18%; left: 18%; width: 80px; height: 80px;
  background: radial-gradient(circle at 40% 40%, #6a9aba 0%, #2a5a7a 60%, #0a2a4a 100%);
  border-radius: 50%;
  opacity: 0.7;
  animation: gm-water 15s ease-in-out infinite alternate;
}
.scn-gulf-of-mannar .desk {
  position: absolute; bottom: 22%; left: 24%; right: 24%; height: 8%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 4px;
}
.scn-gulf-of-mannar .chart {
  position: absolute; bottom: 25%; left: 38%; width: 24%; height: 14%;
  background: linear-gradient(135deg, #d4c8b0 0%, #b8a88a 50%, #9a8870 100%);
  border-radius: 2px;
  transform: rotate(3deg);
  box-shadow: 0 1px 4px rgba(0,0,0,0.3);
  animation: gm-chart 9s ease-in-out infinite;
}
.scn-gulf-of-mannar .light-pool {
  position: absolute; bottom: 24%; left: 40%; width: 20%; height: 10%;
  background: radial-gradient(ellipse, rgba(200,200,255,0.15) 0%, transparent 70%);
  filter: blur(8px);
  animation: gm-light 4s ease-in-out infinite alternate;
}
@keyframes gm-porthole { 0% { transform: scale(1); box-shadow: 0 0 20px rgba(0,0,0,0.5); } 100% { transform: scale(1.02); box-shadow: 0 0 30px rgba(0,0,0,0.7); } }
@keyframes gm-water { 0% { transform: translateY(0); } 100% { transform: translateY(4px); } }
@keyframes gm-chart { 0% { transform: rotate(3deg); } 50% { transform: rotate(4deg); } 100% { transform: rotate(2deg); } }
@keyframes gm-light { 0% { opacity:0.3; } 100% { opacity:0.7; } }

/* nemo-describes-fisheries — dim-interior, Nemo gesturing */
.scn-nemo-describes-fisheries {
  background: linear-gradient(180deg, #2a1a0a 0%, #3a2a1a 30%, #2a1a0a 60%, #1a0a00 100%), radial-gradient(circle at 60% 40%, #5a4a3a 0%, transparent 70%);
}
.scn-nemo-describes-fisheries .room {
  position: absolute; inset: 10%;
  background: linear-gradient(135deg, #3a2a1a 0%, #2a1a0a 50%, #1a0a00 100%);
  border-radius: 10px;
  box-shadow: inset 0 0 40px rgba(0,0,0,0.7);
}
.scn-nemo-describes-fisheries .lamp-glow {
  position: absolute; top: 30%; left: 45%; width: 40px; height: 40px;
  background: radial-gradient(circle, #ffd080 0%, #b08040 40%, transparent 70%);
  border-radius: 50%;
  filter: blur(10px);
  animation: nd-lamp 5s ease-in-out infinite alternate;
}
.scn-nemo-describes-fisheries .nemo {
  position: absolute; bottom: 22%; left: 35%; width: 24px; height: 60px;
  background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 50%, #000a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: nd-nemo 8s ease-in-out infinite;
}
.scn-nemo-describes-fisheries .desk {
  position: absolute; bottom: 20%; left: 30%; right: 30%; height: 8%;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a1a0a 100%);
  border-radius: 4px;
}
.scn-nemo-describes-fisheries .chart {
  position: absolute; bottom: 23%; left: 42%; width: 16%; height: 10%;
  background: linear-gradient(135deg, #c8b8a0 0%, #a89880 100%);
  border-radius: 2px;
  transform: rotate(-8deg);
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: nd-chart 6s ease-in-out infinite alternate;
}
.scn-nemo-describes-fisheries .shadow {
  position: absolute; bottom: 16%; left: 30%; width: 50%; height: 4%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.3) 0%, transparent 100%);
  filter: blur(4px);
  animation: nd-shadow 8s ease-in-out infinite;
}
@keyframes nd-lamp { 0% { opacity:0.6; transform: scale(1); } 100% { opacity:0.9; transform: scale(1.15); } }
@keyframes nd-nemo { 
  0% { transform: translateX(0) rotate(0deg); }
  33% { transform: translateX(10px) rotate(3deg); }
  66% { transform: translateX(-5px) rotate(-2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes nd-chart { 0% { transform: rotate(-8deg); } 100% { transform: rotate(-4deg); } }
@keyframes nd-shadow { 0% { width:50%; opacity:0.5; } 50% { width:60%; opacity:0.7; } 100% { width:40%; opacity:0.4; } }

/* diving-methods — dim-interior, diver silhouette with stone and rope */
.scn-diving-methods {
  background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 30%, #1a1a2a 60%, #0a0a1a 100%), radial-gradient(circle at 40% 50%, #3a3a4a 0%, transparent 70%);
}
.scn-diving-methods .wall {
  position: absolute; inset: 8%;
  background: linear-gradient(135deg, #2a2a3a 0%, #1a1a2a 50%, #0a0a1a 100%);
  border-radius: 8px;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.6);
}
.scn-diving-methods .lamp-glow {
  position: absolute; top: 20%; left: 40%; width: 50px; height: 50px;
  background: radial-gradient(circle, #ffe0a0 0%, #c08040 30%, transparent 60%);
  border-radius: 50%;
  filter: blur(12px);
  animation: dm-lamp 5s ease-in-out infinite alternate;
}
.scn-diving-methods .diver-figure {
  position: absolute; bottom: 30%; left: 45%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: dm-diver 4s ease-in-out infinite;
}
.scn-diving-methods .rope {
  position: absolute; bottom: 30%; left: 43%; width: 4px; height: 50px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 2px;
  transform: rotate(10deg);
  transform-origin: top center;
  animation: dm-rope 4s ease-in-out infinite;
}
.scn-diving-methods .stone {
  position: absolute; bottom: 10%; left: 42%; width: 12px; height: 12px;
  background: radial-gradient(circle, #6a6a6a 0%, #3a3a3a 100%);
  border-radius: 50%;
  box-shadow: 0 1px 4px rgba(0,0,0,0.5);
  animation: dm-stone 4s ease-in-out infinite;
}
.scn-diving-methods .shadow {
  position: absolute; bottom: 12%; left: 40%; width: 30%; height: 4%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 100%);
  filter: blur(4px);
  animation: dm-shadow 8s ease-in-out infinite;
}
@keyframes dm-lamp { 0% { opacity:0.4; } 100% { opacity:0.8; } }
@keyframes dm-diver {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-4px) rotate(3deg); }
  50% { transform: translateY(0) rotate(0deg); }
  75% { transform: translateY(4px) rotate(-3deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes dm-rope {
  0% { transform: rotate(10deg); height: 50px; }
  25% { transform: rotate(8deg); height: 52px; }
  50% { transform: rotate(10deg); height: 50px; }
  75% { transform: rotate(12deg); height: 48px; }
  100% { transform: rotate(10deg); height: 50px; }
}
@keyframes dm-stone {
  0% { transform: translateY(0); }
  25% { transform: translateY(2px); }
  50% { transform: translateY(0); }
  75% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes dm-shadow {
  0% { width:30%; opacity:0.4; }
  50% { width:35%; opacity:0.6; }
  100% { width:25%; opacity:0.3; }
}

.scn-circumstances-explained {
  background: 
    linear-gradient(180deg, #ffeedd 0%, #c8d8e8 40%, #7a9bb5 70%, #3a5a7a 100%),
    radial-gradient(circle at 50% 0%, #fff5e6 0%, transparent 60%);
}
.scn-circumstances-explained .sky{
  position:absolute; inset:0 0 55% 0; background:linear-gradient(180deg, #ffeedd 0%, #c8d8e8 100%); animation: ce1-sky 8s ease-in-out infinite alternate;
}
.scn-circumstances-explained .sea{
  position:absolute; bottom:0; left:0; right:0; height:55%; background:linear-gradient(180deg, #4a7a9a 0%, #2a4a6a 100%); animation: ce1-sea 12s ease-in-out infinite alternate;
}
.scn-circumstances-explained .island-shape{
  position:absolute; bottom:45%; left:10%; width:70%; height:35%; background:radial-gradient(ellipse 120% 100% at 50% 100%, #6a8a5a 0%, #3a5a3a 60%, transparent 70%); border-radius:0 0 30% 50%; animation: ce1-island 20s ease-in-out infinite;
}
.scn-circumstances-explained .coral-reef{
  position:absolute; bottom:10%; left:15%; width:60%; height:10%; background:linear-gradient(90deg, #c08050 0%, #b07040 30%, #a06030 70%, #c08050 100%); border-radius:50% 50% 0 0; filter:blur(1px); animation: ce1-coral 5s ease-in-out infinite alternate;
}
.scn-circumstances-explained .ship-silhouette{
  position:absolute; bottom:50%; left:40%; width:100px; height:60px; background: #1a1a2a; border-radius: 30% 30% 10% 10% / 60% 60% 20% 20%; box-shadow:inset 0 -8px 12px rgba(0,0,0,0.6); animation: ce1-ship 6s ease-in-out infinite;
}
.scn-circumstances-explained .sun-glow{
  position:absolute; top:8%; left:20%; width:60px; height:60px; background:radial-gradient(circle, #ffe680 0%, #ffcc40 40%, transparent 70%); border-radius:50%; animation: ce1-sun 10s ease-in-out infinite alternate;
}
.scn-circumstances-explained .seagull {
  position:absolute; width:12px; height:8px; background: #2a2a3a; border-radius:50% 50% 30% 30%; animation: ce1-gull var(--d,10s) ease-in-out infinite;
}
.scn-circumstances-explained .gull-left{
  top:15%; left:5%; --d:8s;
}
.scn-circumstances-explained .gull-right{
  top:20%; left:60%; --d:12s; animation-delay: -4s;
}
@keyframes ce1-sky { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes ce1-sea { 0% { transform:translateY(0) } 50% { transform:translateY(-3px) } 100% { transform:translateY(1px) } }
@keyframes ce1-island { 0%,100% { transform:scaleY(1) } 50% { transform:scaleY(0.97) } }
@keyframes ce1-coral { 0% { transform:translateY(0) scaleX(1) } 50% { transform:translateY(-2px) scaleX(1.02) } 100% { transform:translateY(0) scaleX(1) } }
@keyframes ce1-ship { 0%,100% { transform:translateY(0) rotate(-1deg) } 50% { transform:translateY(-2px) rotate(1deg) } }
@keyframes ce1-sun { 0% { transform:scale(0.95); opacity:0.8 } 50% { transform:scale(1.05); opacity:1 } 100% { transform:scale(1); opacity:0.9 } }
@keyframes ce1-gull { 0% { transform:translateX(0) } 50% { transform:translateX(20px) translateY(-5px) } 100% { transform:translateX(40px) } }

.scn-hull-unharmed {
  background:
    linear-gradient(180deg, #b0d0e0 0%, #6090b0 50%, #3a6a8a 100%),
    radial-gradient(circle at 50% 60%, #c0e0f0 0%, transparent 70%);
}
.scn-hull-unharmed .water-bg{
  position:absolute; inset:0; background:linear-gradient(180deg, rgba(100,150,180,0.4) 0%, rgba(40,80,120,0.8) 100%); animation: hu1-water 10s ease-in-out infinite;
}
.scn-hull-unharmed .hull-plate{
  position:absolute; bottom:20%; left:10%; width:80%; height:50%; background:linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 50%, #2a1a0a 100%); border-radius:20% 20% 5% 5%; box-shadow:0 -4px 12px rgba(0,0,0,0.5); animation: hu1-hull 8s ease-in-out infinite alternate;
}
.scn-hull-unharmed .hull-rib{
  position:absolute; bottom:20%; left:15%; width:70%; height:45%; background:linear-gradient(180deg, transparent 0%, #4a3a2a 30%, #2a1a0a 70%, transparent 100%); background-size:100% 100%; border-radius:10% 10% 5% 5%; animation: hu1-rib 6s ease-in-out infinite;
}
.scn-hull-unharmed .rivet-row{
  position:absolute; bottom:45%; left:20%; width:60%; height:4%; background:repeating-linear-gradient(90deg, #6a5a4a 0px, #6a5a4a 4px, transparent 4px, transparent 12px); border-radius:2px; animation: hu1-rivet 4s ease-in-out infinite alternate;
}
.scn-hull-unharmed .coral-scrape{
  position:absolute; bottom:30%; left:40%; width:30%; height:15%; background:linear-gradient(90deg, #c08050 0%, #b07040 40%, #a06030 80%, #c08050 100%); border-radius:60% 40% 20% 20%; filter:blur(2px); animation: hu1-coral 5s ease-in-out infinite;
}
.scn-hull-unharmed .foam{
  position:absolute; bottom:18%; width:40%; height:6%; background:rgba(255,255,255,0.3); border-radius:50%; filter:blur(4px);
}
.scn-hull-unharmed .splash-left{
  left:8%; animation: hu1-foam 7s ease-in-out infinite;
}
.scn-hull-unharmed .splash-right{
  right:8%; animation: hu1-foam 9s ease-in-out infinite reverse;
}
@keyframes hu1-water { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes hu1-hull { 0% { transform:translateY(0) } 50% { transform:translateY(-3px) } 100% { transform:translateY(1px) } }
@keyframes hu1-rib { 0%,100% { transform:scaleX(1) } 50% { transform:scaleX(0.98) } }
@keyframes hu1-rivet { 0% { opacity:0.6 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes hu1-coral { 0% { transform:translateX(0) scale(1) } 50% { transform:translateX(2px) scale(1.03) } 100% { transform:translateX(0) scale(1) } }
@keyframes hu1-foam { 0% { transform:translateX(0) } 50% { transform:translateX(10px) } 100% { transform:translateX(0) } }

.scn-nemo-calm-approach {
  background:
    linear-gradient(180deg, #c0b8a8 0%, #a09080 50%, #7a6a5a 100%),
    radial-gradient(ellipse at 30% 40%, #d0c8b8 0%, transparent 60%);
}
.scn-nemo-calm-approach .cabin-wall-left{
  position:absolute; top:0; bottom:0; left:0; width:25%; background:linear-gradient(90deg, #5a4a3a 0%, #4a3a2a 100%); border-right:2px solid #3a2a1a; animation: ca1-wall 6s ease-in-out infinite alternate;
}
.scn-nemo-calm-approach .cabin-wall-right{
  position:absolute; top:0; bottom:0; right:0; width:25%; background:linear-gradient(90deg, #4a3a2a 0%, #5a4a3a 100%); border-left:2px solid #3a2a1a; animation: ca1-wall 6s ease-in-out infinite alternate-reverse;
}
.scn-nemo-calm-approach .floor-planks{
  position:absolute; bottom:0; left:20%; right:20%; height:20%; background:repeating-linear-gradient(90deg, #6a5a4a 0px, #6a5a4a 3px, #5a4a3a 3px, #5a4a3a 20px); border-top:1px solid #4a3a2a; animation: ca1-floor 10s ease-in-out infinite;
}
.scn-nemo-calm-approach .captain-figure{
  position:absolute; bottom:15%; left:45%; width:30px; height:60px; background:linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 60%, #0a0a1a 100%); border-radius:40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin:bottom center; animation: ca1-captain 4s ease-in-out infinite;
}
.scn-nemo-calm-approach .porthole{
  position:absolute; top:25%; left:40%; width:40px; height:40px; background:radial-gradient(circle, #b0d0e0 0%, #6090b0 60%, #3a6a8a 100%); border-radius:50%; border:4px solid #4a3a2a; box-shadow:inset 0 0 10px rgba(0,0,0,0.3); animation: ca1-porthole 8s ease-in-out infinite;
}
.scn-nemo-calm-approach .glow{
  box-shadow:0 0 20px 6px rgba(100,150,200,0.3), inset 0 0 10px rgba(255,255,255,0.2);
}
.scn-nemo-calm-approach .table-surface{
  position:absolute; bottom:8%; left:35%; width:30%; height:8%; background:linear-gradient(90deg, #4a3a2a 0%, #5a4a3a 50%, #4a3a2a 100%); border-radius:5px; box-shadow:0 -2px 4px rgba(0,0,0,0.4); animation: ca1-table 7s ease-in-out infinite;
}
.scn-nemo-calm-approach .chair-back{
  position:absolute; bottom:12%; left:52%; width:14px; height:30px; background:#3a2a1a; border-radius:30% 30% 10% 10%; transform:rotate(-5deg); animation: ca1-chair 5s ease-in-out infinite;
}
@keyframes ca1-wall { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.95 } }
@keyframes ca1-floor { 0% { transform:translateY(0) } 50% { transform:translateY(-1px) } 100% { transform:translateY(0) } }
@keyframes ca1-captain { 0%,100% { transform:translateX(0) rotate(0) } 50% { transform:translateX(3px) rotate(2deg) } }
@keyframes ca1-porthole { 0% { transform:scale(0.98) } 50% { transform:scale(1.02) } 100% { transform:scale(1) } }
@keyframes ca1-table { 0% { transform:translateY(0) } 50% { transform:translateY(-1px) } 100% { transform:translateY(0) } }
@keyframes ca1-chair { 0% { transform:rotate(-5deg) } 50% { transform:rotate(-3deg) } 100% { transform:rotate(-5deg) } }

.scn-nemo-reassures {
  background:
    linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 40%, #001020 100%),
    radial-gradient(ellipse at 50% 70%, #2a4a6a 0%, transparent 60%);
}
.scn-nemo-reassures .deep-water{
  position:absolute; inset:0; background:linear-gradient(180deg, rgba(0,20,40,0.6) 0%, rgba(0,10,20,0.9) 100%); animation: re1-water 15s ease-in-out infinite alternate;
}
.scn-nemo-reassures .submarine-window{
  position:absolute; top:20%; left:30%; width:60px; height:60px; background:radial-gradient(circle, #3a6a8a 0%, #1a3a5a 70%, #0a1a2a 100%); border-radius:50%; border:6px solid #4a3a2a; box-shadow:0 0 30px 10px rgba(30,60,90,0.5); animation: re1-window 8s ease-in-out infinite;
}
.scn-nemo-reassures .captain-profile{
  position:absolute; bottom:25%; left:35%; width:20px; height:50px; background:linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:50% 30% 40% 40% / 60% 50% 30% 30%; transform-origin:bottom center; animation: re1-profile 4s ease-in-out infinite;
}
.scn-nemo-reassures .instrument-panel{
  position:absolute; bottom:10%; left:20%; right:20%; height:12%; background:linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius:10% 10% 5% 5%; box-shadow:inset 0 2px 4px rgba(255,255,255,0.1); animation: re1-panel 6s ease-in-out infinite;
}
.scn-nemo-reassures .light-beam{
  position:absolute; top:20%; left:42%; width:4px; height:60%; background:linear-gradient(180deg, rgba(200,220,240,0.4) 0%, transparent 100%); filter:blur(2px); animation: re1-beam 10s ease-in-out infinite;
}
.scn-nemo-reassures .bubble{
  position:absolute; width:10px; height:10px; background:radial-gradient(circle, rgba(200,230,255,0.4) 0%, transparent 70%); border-radius:50%; animation: re1-bubble var(--d,6s) ease-in-out infinite;
}
.scn-nemo-reassures .bubble-1{
  bottom:40%; left:20%; --d:5s; animation-delay:-2s;
}
.scn-nemo-reassures .bubble-2{
  bottom:30%; left:70%; --d:7s; animation-delay:-4s;
}
@keyframes re1-water { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes re1-window { 0% { transform:scale(0.98) } 50% { transform:scale(1.02) } 100% { transform:scale(1) } }
@keyframes re1-profile { 0%,100% { transform:translateX(0) rotate(0) } 50% { transform:translateX(2px) rotate(1deg) } }
@keyframes re1-panel { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes re1-beam { 0% { opacity:0.3 } 50% { opacity:0.6 } 100% { opacity:0.4 } }
@keyframes re1-bubble { 0% { transform:translateY(0) scale(0.8); opacity:0.5 } 50% { transform:translateY(-20px) scale(1.2); opacity:1 } 100% { transform:translateY(-40px) scale(0.8); opacity:0 } }

/* underwater-relics */
.scn-underwater-relics { background: linear-gradient(180deg, #1a3a4a 0%, #0a2a3a 40%, #0a1a2a 100%), radial-gradient(ellipse at 50% 0%, #6ab0d0 0%, transparent 60%); }
.scn-underwater-relics .water-surface { position:absolute; top:0; left:0; right:0; height:20%; background: linear-gradient(180deg, rgba(255,255,255,.3) 0%, rgba(100,180,230,.2) 100%); animation: uwr-surface 12s ease-in-out infinite alternate; }
.scn-underwater-relics .light-rays { position:absolute; top:0; left:20%; right:20%; height:60%; background: linear-gradient(180deg, rgba(255,240,200,.15) 0%, transparent 100%); filter: blur(8px); animation: uwr-rays 8s ease-in-out infinite alternate; }
.scn-underwater-relics .seabed { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #3a5a4a 0%, #2a4a3a 100%); border-radius:50% 50% 0 0 / 30% 30% 0 0; box-shadow: inset 0 12px 20px rgba(0,0,0,.4); }
.scn-underwater-relics .anchor { position:absolute; bottom:28%; left:30%; width:60px; height:90px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:40% 40% 20% 20% / 60% 60% 30% 30%; transform: rotate(-5deg); box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: uwr-sway 6s ease-in-out infinite; }
.scn-underwater-relics .cannon { position:absolute; bottom:22%; left:55%; width:80px; height:22px; background: linear-gradient(90deg, #4a3a2a 0%, #6a5a4a 50%, #4a3a2a 100%); border-radius:30%; transform: rotate(10deg); box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: uwr-sway 8s ease-in-out infinite reverse; }
.scn-underwater-relics .ingots { position:absolute; bottom:18%; left:45%; width:40px; height:20px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:10%; box-shadow: 2px 2px 6px rgba(0,0,0,.4); animation: uwr-sway 10s ease-in-out infinite; }
.scn-underwater-relics .limestone { position:absolute; bottom:22%; left:35%; width:30px; height:15px; background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%); border-radius:40%; opacity:.7; filter: blur(1px); animation: uwr-sway 12s ease-in-out infinite; }
.scn-underwater-relics .fish { position:absolute; top:40%; left:10%; width:30px; height:10px; background: radial-gradient(circle at 30% 40%, #b08040 0%, #806030 100%); border-radius:50%; filter: blur(1px); animation: uwr-fish 20s linear infinite; }
@keyframes uwr-surface { 0% { opacity:.6 } 50% { opacity:.8 } 100% { opacity:.5 } }
@keyframes uwr-rays { 0% { opacity:.3; transform: translateY(0) } 50% { opacity:.5; transform: translateY(10px) } 100% { opacity:.3; transform: translateY(5px) } }
@keyframes uwr-sway { 0% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(5deg) translateY(-3px) } 100% { transform: rotate(-5deg) translateY(0) } }
@keyframes uwr-fish { 0% { transform: translateX(-30px) } 100% { transform: translateX(120vw) } }

/* natives-questioned */
.scn-natives-questioned { background: linear-gradient(180deg, #87ceeb 0%, #b0d4e8 40%, #f0e0c0 100%), radial-gradient(ellipse at 50% 100%, #c0a080 0%, transparent 70%); }
.scn-natives-questioned .sky { position:absolute; top:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #a0d0f0 0%, #d0e8f0 100%); animation: nq-sky 15s ease-in-out infinite alternate; }
.scn-natives-questioned .sea { position:absolute; bottom:30%; left:0; right:0; height:20%; background: linear-gradient(180deg, #60a0c0 0%, #407090 100%); border-radius:40% 60% 0 0 / 50% 40% 0 0; box-shadow: inset 0 8px 12px rgba(0,0,0,.3); animation: nq-sea 10s ease-in-out infinite alternate; }
.scn-natives-questioned .beach { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #d0b080 0%, #b09070 100%); border-radius:30% 70% 0 0 / 50% 50% 0 0; }
.scn-natives-questioned .figure-native { position:absolute; bottom:15%; left:30%; width:30px; height:60px; background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: nq-gesture 4s ease-in-out infinite; }
.scn-natives-questioned .figure-explorer { position:absolute; bottom:15%; left:55%; width:28px; height:62px; background: linear-gradient(180deg, #d0c0a0 0%, #a09070 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: nq-gesture 4.5s ease-in-out infinite reverse; }
.scn-natives-questioned .palm-tree { position:absolute; bottom:20%; right:10%; width:20px; height:80px; background: linear-gradient(180deg, #5a3a1a 0%, #3a2a0a 100%); border-radius:40% 40% 10% 10%; transform-origin: bottom center; animation: nq-tree 8s ease-in-out infinite; }
.scn-natives-questioned .small-boat { position:absolute; bottom:35%; left:20%; width:60px; height:20px; background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%); border-radius:30% 30% 10% 10%; box-shadow: 0 2px 4px rgba(0,0,0,.3); animation: nq-boat 6s ease-in-out infinite; }
@keyframes nq-sky { 0% { opacity:.7 } 50% { opacity:.9 } 100% { opacity:.75 } }
@keyframes nq-sea { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes nq-gesture { 0% { transform: translateY(0) rotate(-3deg) } 50% { transform: translateY(-4px) rotate(3deg) } 100% { transform: translateY(0) rotate(-3deg) } }
@keyframes nq-tree { 0% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-2deg) } }
@keyframes nq-boat { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-3px) rotate(1deg) } 100% { transform: translateY(0) rotate(-1deg) } }

/* monument-erected */
.scn-monument-erected { background: linear-gradient(180deg, #2a4a3a 0%, #3a5a4a 40%, #1a3a2a 100%), radial-gradient(ellipse at 50% 0%, #80b060 0%, transparent 60%); }
.scn-monument-erected .mangrove-branches { position:absolute; top:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #2a3a1a 0%, #3a5a2a 100%); border-radius:0 0 60% 40% / 0 0 50% 30%; box-shadow: inset 0 12px 20px rgba(0,0,0,.5); animation: me-branches 12s ease-in-out infinite alternate; }
.scn-monument-erected .sun-dapple { position:absolute; top:10%; left:15%; right:15%; height:40%; background: radial-gradient(circle at 30% 40%, rgba(200,180,100,.2) 0%, transparent 60%); filter: blur(10px); animation: me-dapple 8s ease-in-out infinite alternate; }
.scn-monument-erected .coral-base { position:absolute; bottom:20%; left:35%; width:120px; height:30px; background: linear-gradient(180deg, #b09070 0%, #807060 100%); border-radius:30% 30% 10% 10%; box-shadow: 0 4px 8px rgba(0,0,0,.4); }
.scn-monument-erected .pyramid { position:absolute; bottom:20%; left:50%; width:80px; height:80px; transform:translateX(-50%); background: linear-gradient(180deg, #c0a080 0%, #907050 100%); clip-path: polygon(50% 0%, 0% 100%, 100% 100%); box-shadow: 0 8px 16px rgba(0,0,0,.5); animation: me-pyramid 6s ease-in-out infinite alternate; }
.scn-monument-erected .figure-observer { position:absolute; bottom:18%; left:25%; width:18px; height:34px; background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: me-walk 4s ease-in-out infinite; }
.scn-monument-erected .ground-shade { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); border-radius:30% 70% 0 0 / 40% 60% 0 0; box-shadow: inset 0 6px 12px rgba(0,0,0,.5); }
@keyframes me-branches { 0% { transform: scaleY(1) } 50% { transform: scaleY(.95) } 100% { transform: scaleY(1) } }
@keyframes me-dapple { 0% { opacity:.3 } 50% { opacity:.5 } 100% { opacity:.3 } }
@keyframes me-pyramid { 0% { transform: translateX(-50%) scaleY(1) } 50% { transform: translateX(-50%) scaleY(.98) } 100% { transform: translateX(-50%) scaleY(1) } }
@keyframes me-walk { 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) } }

/* bayonnaise-verifies */
.scn-bayonnaise-verifies { background: linear-gradient(180deg, #7ab0d0 0%, #a0c8e0 40%, #c0d8e8 100%), radial-gradient(ellipse at 50% 100%, #6090b0 0%, transparent 60%); }
.scn-bayonnaise-verifies .sky { position:absolute; top:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #b0d8f0 0%, #d0e8f8 100%); animation: bv-sky 18s ease-in-out infinite alternate; }
.scn-bayonnaise-verifies .sea { position:absolute; bottom:30%; left:0; right:0; height:25%; background: linear-gradient(180deg, #5090b0 0%, #307090 100%); border-radius:40% 60% 0 0 / 50% 40% 0 0; box-shadow: inset 0 8px 14px rgba(0,0,0,.3); animation: bv-sea 8s ease-in-out infinite alternate; }
.scn-bayonnaise-verifies .ship-hull { position:absolute; bottom:30%; left:20%; width:100px; height:30px; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius:20% 20% 10% 10%; box-shadow: 0 6px 10px rgba(0,0,0,.4); animation: bv-ship 6s ease-in-out infinite; }
.scn-bayonnaise-verifies .sails { position:absolute; bottom:45%; left:20%; width:60px; height:60px; background: linear-gradient(135deg, #f0e0c0 0%, #d0c0a0 100%); clip-path: polygon(0% 100%, 50% 0%, 100% 100%); filter: blur(1px); animation: bv-sails 9s ease-in-out infinite alternate; }
.scn-bayonnaise-verifies .anchor-chain { position:absolute; bottom:25%; left:30%; width:4px; height:40px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius:50%; animation: bv-chain 4s ease-in-out infinite; }
.scn-bayonnaise-verifies .island-shore { position:absolute; bottom:18%; right:10%; width:80px; height:40px; background: linear-gradient(180deg, #5a7a4a 0%, #3a5a2a 100%); border-radius:40% 40% 0 0 / 60% 60% 0 0; box-shadow: 0 4px 8px rgba(0,0,0,.3); }
.scn-bayonnaise-verifies .seabirds { position:absolute; top:20%; left:60%; width:40px; height:8px; background: radial-gradient(circle at 30% 40%, #3a3a2a 0%, #2a2a1a 100%); border-radius:50%; filter: blur(1px); animation: bv-birds 25s linear infinite; }
@keyframes bv-sky { 0% { opacity:.7 } 50% { opacity:.9 } 100% { opacity:.75 } }
@keyframes bv-sea { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes bv-ship { 0% { transform: rotate(-1deg) translateY(0) } 50% { transform: rotate(1deg) translateY(-3px) } 100% { transform: rotate(-1deg) translateY(0) } }
@keyframes bv-sails { 0% { transform: scaleY(1) } 50% { transform: scaleY(.95) } 100% { transform: scaleY(1) } }
@keyframes bv-chain { 0% { transform: translateY(0) } 50% { transform: translateY(2px) } 100% { transform: translateY(0) } }
@keyframes bv-birds { 0% { transform: translateX(0) } 100% { transform: translateX(-120vw) } }

.scn-battle-devilfish-platform {
  background:
    linear-gradient(180deg, #0b0e2a 0%, #141a3e 50%, #1c2750 100%),
    radial-gradient(ellipse at 50% 100%, #2a3f6a 0%, transparent 70%);
}
.scn-battle-devilfish-platform .sea-bg {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #1a2a4a 0%, #0b1a3a 100%);
  animation: bdp-sea 10s ease-in-out infinite alternate;
}
.scn-battle-devilfish-platform .platform {
  position: absolute; bottom: 35%; left: 5%; right: 5%; height: 18%;
  background: linear-gradient(180deg, #3a4a5a 0%, #1a2a3a 100%);
  border-radius: 8% 8% 2% 2%;
  box-shadow: 0 -4px 12px rgba(0,0,0,0.6);
}
.scn-battle-devilfish-platform .tentacle {
  position: absolute; background: linear-gradient(135deg, #4a6a5a 0%, #2a4a3a 100%);
  border-radius: 40% 60% 20% 40%;
  filter: drop-shadow(0 2px 4px rgba(0,0,0,0.5));
}
.scn-battle-devilfish-platform .t1 {
  width: 50px; height: 120px; bottom: 40%; left: 30%;
  transform-origin: bottom center;
  animation: bdp-tent1 2.5s ease-in-out infinite;
}
.scn-battle-devilfish-platform .t2 {
  width: 40px; height: 100px; bottom: 42%; left: 50%;
  transform-origin: bottom center;
  animation: bdp-tent2 3s ease-in-out infinite 0.5s;
}
.scn-battle-devilfish-platform .t3 {
  width: 60px; height: 140px; bottom: 38%; left: 65%;
  transform-origin: bottom center;
  animation: bdp-tent3 2.8s ease-in-out infinite 1s;
}
.scn-battle-devilfish-platform .figure-captain {
  position: absolute; bottom: 32%; left: 38%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40%;
  animation: bdp-captain 1s ease-in-out infinite alternate;
}
.scn-battle-devilfish-platform .ax {
  position: absolute; bottom: 34%; left: 40%; width: 8px; height: 16px;
  background: #6a7a8a; border-radius: 20% 20% 0 0;
  transform: rotate(30deg); transform-origin: bottom center;
  animation: bdp-ax 2s ease-in-out infinite alternate;
}
.scn-battle-devilfish-platform .ink-splash {
  position: absolute; bottom: 45%; left: 55%; width: 30px; height: 30px;
  background: radial-gradient(circle, #1a2a3a 0%, transparent 70%);
  border-radius: 50%;
  animation: bdp-ink 3s ease-in-out infinite;
}
.scn-battle-devilfish-platform .foam {
  position: absolute; bottom: 33%; left: 20%; right: 20%; height: 8px;
  background: linear-gradient(90deg, transparent, rgba(200,220,240,0.3), transparent);
  filter: blur(2px);
  animation: bdp-foam 4s ease-in-out infinite;
}
@keyframes bdp-sea { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes bdp-tent1 { 0%,100% { transform: translateY(0) rotate(-5deg) } 50% { transform: translateY(-10px) rotate(8deg) } }
@keyframes bdp-tent2 { 0%,100% { transform: translateY(0) rotate(3deg) } 50% { transform: translateY(-8px) rotate(-6deg) } }
@keyframes bdp-tent3 { 0%,100% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-12px) rotate(10deg) } }
@keyframes bdp-captain { 0% { transform: translateY(0) rotate(-1deg) } 100% { transform: translateY(-3px) rotate(1deg) } }
@keyframes bdp-ax { 0% { transform: rotate(20deg) } 100% { transform: rotate(40deg) } }
@keyframes bdp-ink { 0%,100% { opacity:0.3; transform: scale(0.8) } 50% { opacity:0.7; transform: scale(1.2) } }
@keyframes bdp-foam { 0%,100% { opacity:0.2 } 50% { opacity:0.5 } }

.scn-battle-devilfish-climax {
  background:
    linear-gradient(180deg, #090c1e 0%, #10182e 50%, #1a2440 100%),
    radial-gradient(ellipse at 50% 100%, #1a2440 0%, transparent 70%);
}
.scn-battle-devilfish-climax .deck-bg {
  position: absolute; inset: 40% 0 0 0;
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%);
}
.scn-battle-devilfish-climax .tentacle-cluster {
  position: absolute; bottom: 30%; left: 20%; width: 120px; height: 100px;
  background: radial-gradient(ellipse at 50% 50%, #3a5a4a 0%, #1a3a2a 70%);
  border-radius: 60% 40%;
  filter: blur(2px);
  animation: bdc-cluster 3s ease-in-out infinite;
}
.scn-battle-devilfish-climax .tentacle.ct1 {
  position: absolute; width: 35px; height: 110px; bottom: 35%; left: 45%;
  background: linear-gradient(135deg, #4a6a5a 0%, #2a4a3a 100%);
  border-radius: 40% 60% 20% 40%;
  transform-origin: bottom center;
  animation: bdc-tent1 2s ease-in-out infinite;
}
.scn-battle-devilfish-climax .tentacle.ct2 {
  position: absolute; width: 30px; height: 90px; bottom: 38%; left: 60%;
  background: linear-gradient(135deg, #3a5a4a 0%, #1a3a2a 100%);
  border-radius: 40% 60% 20% 40%;
  transform-origin: bottom center;
  animation: bdc-tent2 2.5s ease-in-out infinite 0.3s;
}
.scn-battle-devilfish-climax .ink-cloud {
  position: absolute; width: 40px; height: 40px;
  background: radial-gradient(circle, #1a2a3a 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(3px);
}
.scn-battle-devilfish-climax .ink-cloud.a {
  bottom: 40%; left: 35%;
  animation: bdc-ink-a 4s ease-in-out infinite;
}
.scn-battle-devilfish-climax .ink-cloud.b {
  bottom: 45%; left: 55%;
  animation: bdc-ink-b 5s ease-in-out infinite 1s;
}
.scn-battle-devilfish-climax .blood-drip {
  position: absolute; bottom: 32%; left: 50%; width: 4px; height: 30px;
  background: linear-gradient(180deg, #5e1a1d 0%, transparent 100%);
  border-radius: 50%;
  animation: bdc-drip 3s ease-in-out infinite;
}
.scn-battle-devilfish-climax .figure-sailor {
  position: absolute; bottom: 28%; left: 30%; width: 18px; height: 35px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40%;
  animation: bdc-sailor 1.5s ease-in-out infinite alternate;
}
@keyframes bdc-cluster { 0%,100% { transform: scale(1) rotate(0deg) } 50% { transform: scale(1.1) rotate(5deg) } }
@keyframes bdc-tent1 { 0%,100% { transform: translateY(0) rotate(-8deg) } 50% { transform: translateY(-15px) rotate(10deg) } }
@keyframes bdc-tent2 { 0%,100% { transform: translateY(0) rotate(5deg) } 50% { transform: translateY(-12px) rotate(-7deg) } }
@keyframes bdc-ink-a { 0%,100% { opacity:0.2; transform: translate(0,0) scale(0.8) } 50% { opacity:0.6; transform: translate(10px,-10px) scale(1.2) } }
@keyframes bdc-ink-b { 0%,100% { opacity:0.1; transform: translate(0,0) scale(0.6) } 50% { opacity:0.5; transform: translate(-15px,5px) scale(1.1) } }
@keyframes bdc-drip { 0%,100% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(8px) scaleY(0.6) } }
@keyframes bdc-sailor { 0% { transform: translateX(0) rotate(0deg) } 100% { transform: translateX(8px) rotate(3deg) } }

.scn-aftermath-devilfish-battle {
  background:
    linear-gradient(180deg, #0a0e1a 0%, #101828 50%, #182030 100%),
    radial-gradient(ellipse at 50% 0%, #2a3a5a 0%, transparent 60%);
}
.scn-aftermath-devilfish-battle .moon {
  position: absolute; top: 8%; left: 70%; width: 40px; height: 40px;
  background: radial-gradient(circle, #b0c0d0 0%, #8090a0 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 10px rgba(160,180,200,0.3);
  animation: adb-moon 20s ease-in-out infinite alternate;
}
.scn-aftermath-devilfish-battle .sea-calm {
  position: absolute; inset: 50% 0 0 0;
  background: linear-gradient(180deg, #0a1828 0%, #0a1220 100%);
  animation: adb-sea 15s ease-in-out infinite;
}
.scn-aftermath-devilfish-battle .deck-wreck {
  position: absolute; bottom: 30%; left: 5%; right: 5%; height: 20%;
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%);
  border-radius: 10% 10% 2% 2%;
  box-shadow: inset 0 4px 12px rgba(0,0,0,0.5);
}
.scn-aftermath-devilfish-battle .railing {
  position: absolute; bottom: 38%; left: 10%; right: 10%; height: 4px;
  background: #3a4a5a; border-radius: 2px;
  box-shadow: 0 -2px 4px rgba(0,0,0,0.4);
  animation: adb-railing 8s ease-in-out infinite;
}
.scn-aftermath-devilfish-battle .severed-tentacle {
  position: absolute; bottom: 32%; left: 60%; width: 30px; height: 50px;
  background: linear-gradient(135deg, #3a5a4a 0%, #2a4a3a 100%);
  border-radius: 40% 60% 20% 40%;
  transform: rotate(20deg);
  animation: adb-tentacle 6s ease-in-out infinite;
}
.scn-aftermath-devilfish-battle .debris {
  position: absolute; bottom: 28%; left: 25%; width: 20px; height: 10px;
  background: #4a5a6a; border-radius: 30%;
  animation: adb-debris 10s ease-in-out infinite alternate;
}
.scn-aftermath-devilfish-battle .shadow-figure {
  position: absolute; bottom: 29%; left: 40%; width: 15px; height: 35px;
  background: linear-gradient(180deg, #0a0a1a 0%, #050510 100%);
  border-radius: 50% 50% 40% 40%;
  animation: adb-figure 9s ease-in-out infinite;
}
@keyframes adb-moon { 0% { opacity:0.7; transform: translateX(0) } 50% { opacity:1; transform: translateX(10px) } 100% { opacity:0.8; transform: translateX(-5px) } }
@keyframes adb-sea { 0%,100% { opacity:0.8 } 50% { opacity:0.6 } }
@keyframes adb-railing { 0%,100% { opacity:0.5 } 50% { opacity:1 } }
@keyframes adb-tentacle { 0%,100% { transform: rotate(15deg) scaleY(1) } 50% { transform: rotate(25deg) scaleY(1.1) } }
@keyframes adb-debris { 0% { transform: translateX(0) rotate(0deg) } 100% { transform: translateX(15px) rotate(20deg) } }
@keyframes adb-figure { 0%,100% { opacity:0.3 } 50% { opacity:0.6 } }

.scn-captain-nemo-grieving {
  background:
    linear-gradient(180deg, #0a0e1a 0%, #0e1424 50%, #141c2e 100%),
    radial-gradient(ellipse at 50% 50%, #1a2440 0%, transparent 70%);
}
.scn-captain-nemo-grieving .stateroom-wall {
  position: absolute; inset: 10% 10% 15% 15%;
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%);
  border-radius: 4% 4% 2% 2%;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.6);
}
.scn-captain-nemo-grieving .porthole {
  position: absolute; top: 20%; left: 50%; width: 50px; height: 50px;
  background: radial-gradient(circle, #3a5a7a 0%, #1a2a4a 100%);
  border: 4px solid #3a4a5a;
  border-radius: 50%;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.4);
  animation: cng-porthole 12s ease-in-out infinite alternate;
}
.scn-captain-nemo-grieving .moonbeam {
  position: absolute; top: 18%; left: 48%; width: 8px; height: 120px;
  background: linear-gradient(180deg, rgba(200,210,230,0.2) 0%, transparent 100%);
  transform: rotate(-5deg);
  filter: blur(2px);
  animation: cng-beam 8s ease-in-out infinite;
}
.scn-captain-nemo-grieving .nemo-figure {
  position: absolute; bottom: 20%; left: 42%; width: 22px; height: 45px;
  background: linear-gradient(180deg, #0a0a1a 0%, #050510 100%);
  border-radius: 50% 50% 40% 40%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: cng-nemo 9s ease-in-out infinite;
}
.scn-captain-nemo-grieving .chair {
  position: absolute; bottom: 18%; left: 44%; width: 16px; height: 20px;
  background: #2a3a4a;
  border-radius: 10% 10% 50% 50%;
  transform: scaleX(0.7);
  animation: cng-chair 15s ease-in-out infinite;
}
.scn-captain-nemo-grieving .shadow {
  position: absolute; inset: 10% 10% 15% 15%;
  background: radial-gradient(ellipse at 50% 80%, rgba(0,0,0,0.4) 0%, transparent 70%);
  pointer-events: none;
  animation: cng-shadow 6s ease-in-out infinite alternate;
}
.scn-captain-nemo-grieving .drifting-object {
  position: absolute; top: 60%; left: 65%; width: 10px; height: 10px;
  background: #4a5a6a;
  border-radius: 30%;
  animation: cng-drift 20s linear infinite;
}
@keyframes cng-porthole { 0% { opacity:0.6; transform: scale(1) } 50% { opacity:1; transform: scale(1.02) } 100% { opacity:0.7; transform: scale(0.98) } }
@keyframes cng-beam { 0%,100% { opacity:0.1 } 50% { opacity:0.3 } }
@keyframes cng-nemo { 0%,100% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-3px) rotate(-2deg) } }
@keyframes cng-chair { 0%,100% { transform: scaleX(0.7) translateX(0) } 50% { transform: scaleX(0.6) translateX(5px) } }
@keyframes cng-shadow { 0% { opacity:0.5 } 100% { opacity:0.8 } }
@keyframes cng-drift { 0% { transform: translate(0,0) rotate(0deg) } 50% { transform: translate(20px,-10px) rotate(45deg) } 100% { transform: translate(40px,-20px) rotate(90deg) } }

/* ===== surface-cruising ===== */
.scn-surface-cruising {
  background:
    linear-gradient(180deg, #87CEEB 0%, #f0e68c 40%, #ffd700 100%),
    radial-gradient(ellipse at 50% 100%, #ffa50033 0%, transparent 70%);
}
.scn-surface-cruising .sky {
  position: absolute;
  inset: 0 0 60% 0;
  background: linear-gradient(180deg, #b0e0ff 0%, #87CEEB 100%);
  animation: sc-sky 20s ease-in-out infinite alternate;
}
.scn-surface-cruising .ocean {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 60%;
  background: linear-gradient(180deg, #2f4f4f 0%, #1a3b3b 100%);
  animation: sc-ocean 8s ease-in-out infinite alternate;
}
.scn-surface-cruising .nautilus-body {
  position: absolute;
  bottom: 28%;
  left: 20%;
  width: 180px;
  height: 60px;
  background: linear-gradient(135deg, #708090 0%, #4a5b6b 50%, #2c3e50 100%);
  border-radius: 40% 10% 10% 40%;
  box-shadow: 0 4px 20px rgba(0,0,0,0.3);
  animation: sc-body 6s ease-in-out infinite;
}
.scn-surface-cruising .nautilus-propeller {
  position: absolute;
  bottom: 32%;
  left: 22%;
  width: 40px;
  height: 40px;
  background: radial-gradient(circle, #a0a0a0 0%, #606060 100%);
  border-radius: 50%;
  box-shadow: 0 0 10px #aaa;
  animation: sc-prop 1.5s linear infinite;
}
.scn-surface-cruising .spray {
  position: absolute;
  bottom: 33%;
  left: 20%;
  width: 120px;
  height: 30px;
  background: radial-gradient(ellipse, rgba(173,216,230,0.8) 0%, transparent 70%);
  filter: blur(4px);
  animation: sc-spray 2s ease-in-out infinite alternate;
}
.scn-surface-cruising .cloud-left {
  position: absolute;
  top: 12%;
  left: 5%;
  width: 80px;
  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(5px);
  animation: sc-cloudL 30s linear infinite;
}
.scn-surface-cruising .cloud-right {
  position: absolute;
  top: 8%;
  right: 10%;
  width: 60px;
  height: 18px;
  background: linear-gradient(180deg, rgba(255,255,255,0.5) 0%, rgba(255,255,255,0.1) 100%);
  border-radius: 50%;
  filter: blur(4px);
  animation: sc-cloudR 45s linear infinite reverse;
}
@keyframes sc-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.75; } }
@keyframes sc-ocean { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes sc-body { 0% { transform: translateY(0); } 50% { transform: translateY(-2px) rotate(-1deg); } 100% { transform: translateY(0); } }
@keyframes sc-prop { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }
@keyframes sc-spray { 0% { opacity: 0.5; transform: scaleX(1); } 100% { opacity: 1; transform: scaleX(1.3); } }
@keyframes sc-cloudL { 0% { transform: translateX(-30px); } 100% { transform: translateX(120vw); } }
@keyframes sc-cloudR { 0% { transform: translateX(0); } 100% { transform: translateX(-80vw); } }

/* ===== argonaut-school ===== */
.scn-argonaut-school {
  background:
    linear-gradient(180deg, #87CEEB 0%, #f0e68c 60%, #ffd700 100%),
    radial-gradient(ellipse at 50% 100%, #ffa50022 0%, transparent 60%);
}
.scn-argonaut-school .sea {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 65%;
  background: linear-gradient(180deg, #2f4f4f 0%, #1a3b3b 100%);
  animation: as-sea 10s ease-in-out infinite alternate;
}
.scn-argonaut-school .school-argonaut {
  position: absolute;
  bottom: 35%;
  width: 24px;
  height: 18px;
  background: radial-gradient(ellipse at 60% 50%, #f0e68c 0%, #daa520 100%);
  border-radius: 60% 40% 40% 60%;
  box-shadow: 0 0 6px rgba(218,165,32,0.5);
  animation: as-swim 4s ease-in-out infinite;
}
.scn-argonaut-school .argonaut-1 { left: 10%; animation-delay: 0s; }
.scn-argonaut-school .argonaut-2 { left: 25%; width: 20px; height: 15px; animation-delay: 0.5s; }
.scn-argonaut-school .argonaut-3 { left: 40%; width: 28px; height: 20px; animation-delay: 1s; }
.scn-argonaut-school .argonaut-4 { left: 55%; width: 16px; height: 12px; animation-delay: 1.5s; }
.scn-argonaut-school .argonaut-5 { left: 70%; width: 22px; height: 16px; animation-delay: 2s; }
.scn-argonaut-school .argonaut-6 { left: 85%; width: 18px; height: 14px; animation-delay: 2.5s; }
.scn-argonaut-school .sunlight-ray {
  position: absolute;
  top: 10%;
  left: 30%;
  width: 120px;
  height: 400px;
  background: linear-gradient(180deg, rgba(255,215,0,0.15) 0%, transparent 100%);
  transform: rotate(15deg);
  animation: as-sunray 6s ease-in-out infinite alternate;
}
@keyframes as-sea { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes as-swim {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-5px) scale(1.05) rotate(5deg); }
  100% { transform: translateY(0) scale(1); }
}
@keyframes as-sunray { 0% { opacity: 0.3; transform: rotate(10deg) scaleY(1); } 100% { opacity: 0.7; transform: rotate(20deg) scaleY(1.1); } }

/* ===== conseil-classification ===== */
.scn-conseil-classification {
  background:
    linear-gradient(180deg, #3b3b3b 0%, #5a4a3a 30%, #8b7355 60%, #a08060 100%),
    radial-gradient(ellipse at 30% 70%, #c0a06033 0%, transparent 70%);
}
.scn-conseil-classification .n-wall {
  position: absolute;
  inset: 0 0 40% 0;
  background: linear-gradient(180deg, #4a4a4a 0%, #6a5a4a 100%);
  border-bottom: 6px solid #2a2a2a;
  animation: cc-wall 12s ease-in-out infinite alternate;
}
.scn-conseil-classification .table {
  position: absolute;
  bottom: 25%;
  left: 10%;
  right: 10%;
  height: 8%;
  background: linear-gradient(180deg, #8b6914 0%, #5a4a1a 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 -4px 10px rgba(0,0,0,0.5);
}
.scn-conseil-classification .book {
  position: absolute;
  bottom: 33%;
  left: 28%;
  width: 50px;
  height: 35px;
  background: linear-gradient(135deg, #b8860b 0%, #8b6914 100%);
  border-radius: 2px 6px 6px 2px;
  transform: rotate(-5deg);
  box-shadow: 2px 2px 4px rgba(0,0,0,0.4);
  animation: cc-book 8s ease-in-out infinite;
}
.scn-conseil-classification .mollusk {
  position: absolute;
  bottom: 32%;
  left: 48%;
  width: 30px;
  height: 20px;
  background: radial-gradient(ellipse at 60% 40%, #e8c088 0%, #c09060 100%);
  border-radius: 50% 40% 40% 50%;
  box-shadow: 0 0 8px rgba(192,144,96,0.4);
  animation: cc-mollusk 5s ease-in-out infinite;
}
.scn-conseil-classification .conseil-figure {
  position: absolute;
  bottom: 24%;
  right: 20%;
  width: 16px;
  height: 40px;
  background: linear-gradient(180deg, #2a2a3a 0%, #101018 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cc-figure 6s ease-in-out infinite;
}
.scn-conseil-classification .lamp-light {
  position: absolute;
  top: 20%;
  left: 20%;
  width: 30px;
  height: 40px;
  background: radial-gradient(ellipse at 50% 80%, #ffd700 0%, #ff8c00 60%, transparent 100%);
  border-radius: 50%;
  filter: blur(8px);
  animation: cc-lamp 3s ease-in-out infinite alternate;
}
.scn-conseil-classification .specimen-glass {
  position: absolute;
  bottom: 30%;
  left: 60%;
  width: 22px;
  height: 28px;
  background: linear-gradient(135deg, rgba(173,216,230,0.3) 0%, rgba(200,200,210,0.5) 100%);
  border-radius: 4px 4px 8px 8px;
  border: 1px solid rgba(255,255,255,0.2);
  box-shadow: 0 0 10px rgba(200,200,210,0.2);
  animation: cc-glass 7s ease-in-out infinite;
}
@keyframes cc-wall { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes cc-book { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-2px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes cc-mollusk { 0% { transform: scale(1); } 50% { transform: scale(1.05) rotate(3deg); } 100% { transform: scale(1); } }
@keyframes cc-figure { 0% { transform: translateY(0) rotate(-1deg); } 25% { transform: translateY(-1px) rotate(0); } 50% { transform: translateY(0) rotate(1deg); } 75% { transform: translateY(-1px) rotate(0); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes cc-lamp { 0% { opacity: 0.6; transform: scale(1); } 100% { opacity: 1; transform: scale(1.1); } }
@keyframes cc-glass { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }

/* ===== school-of-argonauts ===== */
.scn-school-of-argonauts {
  background:
    linear-gradient(180deg, #87CEEB 0%, #b0e0ff 30%, #f0e68c 70%, #ffd700 100%),
    radial-gradient(ellipse at 50% 100%, #ffa50033 0%, transparent 70%);
}
.scn-school-of-argonauts .water {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 70%;
  background: linear-gradient(180deg, #2f4f4f 0%, #1a3b3b 100%);
  animation: sa-water 12s ease-in-out infinite alternate;
}
.scn-school-of-argonauts .group-argonaut {
  position: absolute;
  bottom: 38%;
  width: 18px;
  height: 14px;
  background: radial-gradient(ellipse at 60% 50%, #f0e68c 0%, #daa520 100%);
  border-radius: 60% 40% 40% 60%;
  box-shadow: 0 0 5px rgba(218,165,32,0.4);
  animation: sa-swarm 5s ease-in-out infinite;
}
.scn-school-of-argonauts .argonaut-a { left: 8%; animation-delay: 0s; width: 20px; height: 15px; }
.scn-school-of-argonauts .argonaut-b { left: 22%; animation-delay: 0.3s; width: 16px; height: 12px; }
.scn-school-of-argonauts .argonaut-c { left: 36%; animation-delay: 0.6s; width: 22px; height: 16px; }
.scn-school-of-argonauts .argonaut-d { left: 50%; animation-delay: 0.9s; width: 14px; height: 11px; }
.scn-school-of-argonauts .argonaut-e { left: 64%; animation-delay: 1.2s; width: 18px; height: 14px; }
.scn-school-of-argonauts .argonaut-f { left: 78%; animation-delay: 1.5s; width: 16px; height: 13px; }
.scn-school-of-argonauts .argonaut-g { left: 90%; animation-delay: 1.8s; width: 20px; height: 15px; }
@keyframes sa-water { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes sa-swarm {
  0% { transform: translateY(0) scale(1) rotate(0deg); }
  25% { transform: translateY(-4px) scale(1.02) rotate(5deg); }
  50% { transform: translateY(-2px) scale(0.98) rotate(-3deg); }
  75% { transform: translateY(-5px) scale(1.01) rotate(2deg); }
  100% { transform: translateY(0) scale(1) rotate(0deg); }
}

.scn-ned-escape-plan {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #0f0f1e 40%, #2a2a3e 100%),
    radial-gradient(ellipse at 70% 60%, #3a2a1a 0%, transparent 60%);
}
.scn-ned-escape-plan .wall-left {
  position: absolute; inset: 0 60% 0 0;
  background: linear-gradient(180deg, #1e1e2e 0%, #141422 100%);
  box-shadow: inset -4px 0 8px rgba(0,0,0,0.6);
}
.scn-ned-escape-plan .wall-right {
  position: absolute; inset: 0 0 0 40%;
  background: linear-gradient(180deg, #1a1a28 0%, #12121e 100%);
}
.scn-ned-escape-plan .floor {
  position: absolute; inset: 75% 0 0 0;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  box-shadow: inset 0 8px 12px rgba(0,0,0,0.7);
}
.scn-ned-escape-plan .lantern-glow {
  position: absolute; top: 30%; left: 55%;
  width: 80px; height: 80px;
  background: radial-gradient(circle, rgba(200,150,80,0.6) 0%, rgba(200,150,80,0.2) 40%, transparent 70%);
  border-radius: 50%;
  animation: nepg-glow 4s ease-in-out infinite alternate;
}
.scn-ned-escape-plan .lantern-body {
  position: absolute; top: 32%; left: 58%;
  width: 12px; height: 20px;
  background: linear-gradient(180deg, #8a6a3a 0%, #5a4a2a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 12px 4px rgba(200,150,80,0.3);
  animation: nepg-swing 5s ease-in-out infinite;
}
.scn-ned-escape-plan .figure-ned {
  position: absolute; bottom: 25%; left: 35%;
  width: 30px; height: 60px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: nepg-stealth 6s ease-in-out infinite;
}
.scn-ned-escape-plan .figure-arrow {
  position: absolute; bottom: 40%; left: 42%;
  width: 8px; height: 4px;
  background: #5a4a3a;
  clip-path: polygon(0 50%, 100% 0, 100% 100%);
  animation: nepg-point 3s ease-in-out infinite;
}
.scn-ned-escape-plan .shadow-bars {
  position: absolute; inset: 0;
  background:
    repeating-linear-gradient(90deg, transparent 0px, transparent 18px, rgba(0,0,0,0.3) 18px, rgba(0,0,0,0.3) 20px);
  animation: nepg-flicker 2s linear infinite;
}
@keyframes nepg-glow {
  0% { opacity: 0.6; transform: scale(1); }
  50% { opacity: 0.9; transform: scale(1.1); }
  100% { opacity: 0.7; transform: scale(0.95); }
}
@keyframes nepg-swing {
  0% { transform: rotate(0deg); }
  25% { transform: rotate(2deg); }
  50% { transform: rotate(-1deg); }
  75% { transform: rotate(3deg); }
  100% { transform: rotate(0deg); }
}
@keyframes nepg-stealth {
  0% { transform: translateX(0) translateY(0); }
  25% { transform: translateX(4px) translateY(-2px); }
  50% { transform: translateX(8px) translateY(0); }
  75% { transform: translateX(12px) translateY(-1px); }
  100% { transform: translateX(0) translateY(0); }
}
@keyframes nepg-point {
  0% { transform: translateX(0) rotate(-5deg); opacity: 0.7; }
  50% { transform: translateX(6px) rotate(5deg); opacity: 1; }
  100% { transform: translateX(0) rotate(-5deg); opacity: 0.7; }
}
@keyframes nepg-flicker {
  0% { opacity: 0.8; }
  25% { opacity: 1; }
  50% { opacity: 0.9; }
  75% { opacity: 0.7; }
  100% { opacity: 0.8; }
}

.scn-reasoning-escape {
  background:
    linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 50%, #2e3e4e 100%),
    radial-gradient(ellipse at 30% 70%, #3a4a5a 0%, transparent 80%);
}
.scn-reasoning-escape .bg-soft {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, rgba(180,200,220,0.05) 0%, transparent 100%);
  animation: rese-breathe 12s ease-in-out infinite alternate;
}
.scn-reasoning-escape .desk {
  position: absolute; bottom: 20%; left: 20%; right: 30%;
  height: 12px;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
}
.scn-reasoning-escape .book {
  position: absolute; bottom: 22%; left: 30%;
  width: 30px; height: 22px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 2px 10px 4px 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  transform: rotate(-5deg);
  animation: rese-read 10s ease-in-out infinite;
}
.scn-reasoning-escape .lamp-glow {
  position: absolute; top: 35%; left: 25%;
  width: 60px; height: 60px;
  background: radial-gradient(circle, rgba(220,200,170,0.4) 0%, rgba(220,200,170,0.1) 50%, transparent 80%);
  border-radius: 50%;
  animation: rese-softglow 6s ease-in-out infinite alternate;
}
.scn-reasoning-escape .lamp-base {
  position: absolute; top: 30%; left: 30%;
  width: 8px; height: 24px;
  background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%);
  border-radius: 10%;
}
.scn-reasoning-escape .figure-aronnax {
  position: absolute; bottom: 20%; left: 40%;
  width: 28px; height: 55px;
  background: linear-gradient(180deg, #3a4a5a 0%, #2a3a4a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rese-ponder 8s ease-in-out infinite;
}
.scn-reasoning-escape .paper {
  position: absolute; bottom: 28%; left: 25%;
  width: 20px; height: 14px;
  background: linear-gradient(180deg, #c8b8a8 0%, #a89888 100%);
  border-radius: 1px;
  transform: rotate(3deg);
  animation: rese-flutter 15s ease-in-out infinite;
}
.scn-reasoning-escape .shadow-drape {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, transparent 40%, rgba(10,20,30,0.3) 100%);
  pointer-events: none;
}
@keyframes rese-breathe {
  0% { opacity: 0.5; }
  50% { opacity: 0.8; }
  100% { opacity: 0.6; }
}
@keyframes rese-read {
  0% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(-3deg) translateY(-2px); }
  100% { transform: rotate(-5deg) translateY(0); }
}
@keyframes rese-softglow {
  0% { opacity: 0.5; transform: scale(1); }
  50% { opacity: 0.8; transform: scale(1.05); }
  100% { opacity: 0.6; transform: scale(0.95); }
}
@keyframes rese-ponder {
  0% { transform: translateX(0) rotate(0deg); }
  30% { transform: translateX(-2px) rotate(-2deg); }
  60% { transform: translateX(2px) rotate(2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes rese-flutter {
  0% { transform: rotate(3deg) translateY(0); opacity: 0.7; }
  50% { transform: rotate(5deg) translateY(-3px); opacity: 1; }
  100% { transform: rotate(3deg) translateY(0); opacity: 0.7; }
}

.scn-ned-wants-land {
  background:
    linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 40%, #5a4a3a 100%),
    radial-gradient(ellipse at 50% 80%, #6a5a4a 0%, transparent 70%);
}
.scn-ned-wants-land .bg-warm {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, rgba(200,180,120,0.1) 0%, transparent 100%);
  animation: nwlg-warmth 8s ease-in-out infinite alternate;
}
.scn-ned-wants-land .tree-trunk {
  position: absolute; bottom: 15%; left: 50%;
  width: 18px; height: 100px;
  background: linear-gradient(90deg, #5a3a1a 0%, #8a5a3a 30%, #5a3a1a 100%);
  border-radius: 5px;
  transform: translateX(-50%);
}
.scn-ned-wants-land .tree-leaf {
  position: absolute; top: 10%; left: 40%;
  width: 70px; height: 60px;
  background: radial-gradient(ellipse at 50% 60%, #6a8a3a 0%, #3a5a1a 60%, transparent 80%);
  border-radius: 50%;
  animation: nwlg-sway 6s ease-in-out infinite;
}
.scn-ned-wants-land .meat-cutlet {
  position: absolute; top: 25%; left: 45%;
  width: 20px; height: 16px;
  background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%);
  border-radius: 30%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  transform: rotate(-15deg);
  animation: nwlg-dangle 4s ease-in-out infinite;
}
.scn-ned-wants-land .figure-ned-hungry {
  position: absolute; bottom: 15%; left: 30%;
  width: 35px; height: 65px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: nwlg-stretch 3s ease-in-out infinite;
}
.scn-ned-wants-land .thought-bubble {
  position: absolute; top: 10%; left: 55%;
  width: 40px; height: 30px;
  background: radial-gradient(circle, rgba(220,200,180,0.4) 0%, transparent 70%);
  border-radius: 50%;
  animation: nwlg-pop 2s ease-in-out infinite;
}
.scn-ned-wants-land .steam-wisp {
  position: absolute; top: 20%; left: 48%;
  width: 12px; height: 18px;
  background: linear-gradient(180deg, rgba(220,200,180,0.5) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(3px);
  animation: nwlg-rise 4s ease-in-out infinite;
}
@keyframes nwlg-warmth {
  0% { opacity: 0.5; }
  50% { opacity: 0.9; }
  100% { opacity: 0.6; }
}
@keyframes nwlg-sway {
  0% { transform: rotate(0deg); }
  25% { transform: rotate(3deg); }
  50% { transform: rotate(-2deg); }
  75% { transform: rotate(4deg); }
  100% { transform: rotate(0deg); }
}
@keyframes nwlg-dangle {
  0% { transform: rotate(-15deg) translateY(0); }
  50% { transform: rotate(-10deg) translateY(-4px); }
  100% { transform: rotate(-15deg) translateY(0); }
}
@keyframes nwlg-stretch {
  0% { transform: scaleY(1) translateX(0); }
  30% { transform: scaleY(1.05) translateX(4px); }
  60% { transform: scaleY(0.95) translateX(-4px); }
  100% { transform: scaleY(1) translateX(0); }
}
@keyframes nwlg-pop {
  0% { opacity: 0.3; transform: scale(0.8); }
  50% { opacity: 0.7; transform: scale(1.2); }
  100% { opacity: 0.3; transform: scale(0.8); }
}
@keyframes nwlg-rise {
  0% { transform: translateY(0) scale(1); opacity: 0.5; }
  50% { transform: translateY(-8px) scale(1.2); opacity: 0.2; }
  100% { transform: translateY(0) scale(1); opacity: 0.5; }
}

.scn-aronnax-asks-permission {
  background:
    linear-gradient(180deg, #3a4a5a 0%, #2a3a4a 50%, #4a5a6a 100%),
    radial-gradient(ellipse at 40% 50%, #5a6a7a 0%, transparent 70%);
}
.scn-aronnax-asks-permission .salon-wall {
  position: absolute; inset: 0 30% 20% 0;
  background: linear-gradient(180deg, #3a4a5a 0%, #2a3a4a 100%);
  box-shadow: inset -2px 0 6px rgba(0,0,0,0.3);
}
.scn-aronnax-asks-permission .salon-floor {
  position: absolute; inset: 80% 0 0 0;
  background: linear-gradient(180deg, #4a5a4a 0%, #3a4a3a 100%);
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.5);
}
.scn-aronnax-asks-permission .captain-nemo {
  position: absolute; bottom: 20%; left: 20%;
  width: 32px; height: 68px;
  background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: aapg-statuesque 10s ease-in-out infinite;
}
.scn-aronnax-asks-permission .figure-aronnax-bow {
  position: absolute; bottom: 20%; left: 55%;
  width: 28px; height: 60px;
  background: linear-gradient(180deg, #3a4a5a 0%, #2a3a4a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: aapg-bow 6s ease-in-out infinite;
}
.scn-aronnax-asks-permission .light-shaft {
  position: absolute; top: 5%; left: 40%;
  width: 60px; height: 120px;
  background: linear-gradient(180deg, rgba(220,220,240,0.15) 0%, transparent 100%);
  transform: rotate(10deg);
  animation: aapg-shimmer 8s ease-in-out infinite alternate;
}
.scn-aronnax-asks-permission .ornament {
  position: absolute; top: 15%; right: 15%;
  width: 20px; height: 20px;
  background: radial-gradient(circle, #a89878 0%, #6a5a4a 100%);
  border-radius: 50%;
  box-shadow: 0 0 8px 2px rgba(168,152,120,0.3);
  animation: aapg-gleam 5s ease-in-out infinite;
}
.scn-aronnax-asks-permission .shadow-edge {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, rgba(10,20,30,0.2) 0%, transparent 50%, rgba(10,20,30,0.2) 100%);
  pointer-events: none;
  animation: aapg-drift 15s ease-in-out infinite alternate;
}
@keyframes aapg-statuesque {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(-3deg); }
  100% { transform: rotate(0deg); }
}
@keyframes aapg-bow {
  0% { transform: rotate(0deg) translateY(0); }
  30% { transform: rotate(-5deg) translateY(-2px); }
  60% { transform: rotate(5deg) translateY(-1px); }
  100% { transform: rotate(0deg) translateY(0); }
}
@keyframes aapg-shimmer {
  0% { opacity: 0.3; transform: rotate(10deg) scaleX(1); }
  50% { opacity: 0.6; transform: rotate(8deg) scaleX(1.1); }
  100% { opacity: 0.4; transform: rotate(10deg) scaleX(1); }
}
@keyframes aapg-gleam {
  0% { box-shadow: 0 0 8px 2px rgba(168,152,120,0.3); }
  50% { box-shadow: 0 0 16px 6px rgba(200,180,150,0.5); }
  100% { box-shadow: 0 0 8px 2px rgba(168,152,120,0.3); }
}
@keyframes aapg-drift {
  0% { opacity: 0.7; }
  50% { opacity: 0.9; }
  100% { opacity: 0.7; }
}

/* portraits-of-heroes — dark, dim-interior */
.scn-portraits-of-heroes {
  background:
    radial-gradient(ellipse at 50% 60%, #2a1a0a 0%, transparent 70%),
    linear-gradient(180deg, #1a0f08 0%, #0d0804 50%, #1a0f08 100%);
}
.scn-portraits-of-heroes .wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #2a1a0a 0%, #0d0804 100%);
  opacity: 0.9;
}
.scn-portraits-of-heroes .frame {
  position: absolute; width: 60px; height: 80px;
  border: 3px solid #5a3a1a; border-radius: 4px;
  background: #1a0f05; box-shadow: inset 0 0 8px #2a1a0a, 0 0 4px rgba(0,0,0,0.6);
}
.scn-portraits-of-heroes .frame-1 { left: 15%; top: 25%; }
.scn-portraits-of-heroes .frame-2 { left: 40%; top: 20%; }
.scn-portraits-of-heroes .frame-3 { left: 65%; top: 28%; }
.scn-portraits-of-heroes .portrait {
  position: absolute; width: 44px; height: 60px; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  background: linear-gradient(180deg, #b08060 0%, #604030 50%, #201510 100%);
  filter: blur(1px); opacity: 0.7; animation: poh-portrait 8s ease-in-out infinite alternate;
}
.scn-portraits-of-heroes .portrait-1 { left: 17.5%; top: 30%; }
.scn-portraits-of-heroes .portrait-2 { left: 42.5%; top: 25%; animation-delay: -2s; }
.scn-portraits-of-heroes .portrait-3 { left: 67.5%; top: 33%; animation-delay: -4s; }
.scn-portraits-of-heroes .candle {
  position: absolute; left: 48%; bottom: 20%; width: 8px; height: 50px;
  background: linear-gradient(180deg, #f0d080 0%, #806040 50%, #302010 100%);
  border-radius: 2px 2px 4px 4px; transform-origin: bottom center;
  animation: poh-candle 6s ease-in-out infinite;
}
.scn-portraits-of-heroes .glow-ambient {
  position: absolute; left: 42%; bottom: 15%; width: 120px; height: 100px;
  background: radial-gradient(ellipse, rgba(240,200,120,0.15) 0%, transparent 70%);
  animation: poh-glow 6s ease-in-out infinite alternate;
}
@keyframes poh-portrait { 0% { opacity: 0.5; transform: scale(0.98); } 50% { opacity: 0.8; transform: scale(1); } 100% { opacity: 0.6; transform: scale(0.99); } }
@keyframes poh-candle { 0%,100% { transform: scaleY(1) rotate(-1deg); } 25% { transform: scaleY(1.03) rotate(1deg); } 75% { transform: scaleY(0.97) rotate(0deg); } }
@keyframes poh-glow { 0% { opacity: 0.6; transform: scale(1); } 50% { opacity: 1; transform: scale(1.05); } 100% { opacity: 0.8; transform: scale(0.95); } }

/* ready-for-escape — tense, dim-interior */
.scn-ready-for-escape {
  background:
    radial-gradient(ellipse at 50% 70%, #1a2a3a 0%, transparent 60%),
    linear-gradient(180deg, #0d1520 0%, #1a2a3a 50%, #0d1520 100%);
}
.scn-ready-for-escape .hull {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #1a2a3a 0%, #0d1520 100%);
  opacity: 0.8;
}
.scn-ready-for-escape .porthole {
  position: absolute; right: 12%; top: 20%; width: 40px; height: 40px;
  border-radius: 50%; border: 3px solid #3a4a5a;
  background: radial-gradient(circle, #2a3a4a 0%, #0d1520 100%);
  box-shadow: inset 0 0 10px rgba(0,0,0,0.8), 0 0 6px rgba(0,100,200,0.2);
  animation: rfe-porthole 20s linear infinite;
}
.scn-ready-for-escape .compass {
  position: absolute; left: 15%; top: 40%; width: 30px; height: 30px;
  border-radius: 50%; background: radial-gradient(circle, #c0d0e0 0%, #8090a0 60%, #304050 100%);
  border: 2px solid #4a5a6a; box-shadow: 0 0 8px rgba(0,50,100,0.3);
  animation: rfe-compass 4s ease-in-out infinite alternate;
}
.scn-ready-for-escape .gauge {
  position: absolute; left: 12%; top: 55%; width: 20px; height: 35px;
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%);
  border-radius: 4px; border: 1px solid #3a4a5a;
  animation: rfe-gauge 2s ease-in-out infinite alternate;
}
.scn-ready-for-escape .closet {
  position: absolute; left: 60%; bottom: 10%; width: 80px; height: 120px;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%);
  border-radius: 4px; box-shadow: inset 0 0 20px rgba(0,0,0,0.5);
}
.scn-ready-for-escape .suit {
  position: absolute; left: 50%; bottom: 25%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #4a5a4a 0%, #2a3a2a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform: scale(0.9); opacity: 0.8;
  animation: rfe-suit 12s ease-in-out infinite;
}
.scn-ready-for-escape .boots {
  position: absolute; left: 55%; bottom: 18%; width: 36px; height: 14px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0f08 100%);
  border-radius: 4px; transform: rotate(5deg);
  animation: rfe-boots 12s ease-in-out infinite;
}
.scn-ready-for-escape .shadow-edge {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(0,0,0,0.4) 0%, transparent 30%, transparent 70%, rgba(0,0,0,0.6) 100%);
  pointer-events: none;
}
@keyframes rfe-porthole { 0% { transform: scale(1); } 50% { transform: scale(0.98); box-shadow: inset 0 0 10px rgba(0,0,0,0.8), 0 0 12px rgba(0,100,200,0.4); } 100% { transform: scale(1); box-shadow: inset 0 0 10px rgba(0,0,0,0.8), 0 0 6px rgba(0,100,200,0.2); } }
@keyframes rfe-compass { 0% { transform: rotate(-5deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-2deg); } }
@keyframes rfe-gauge { 0% { transform: scaleY(1); background: #2a3a4a; } 100% { transform: scaleY(1.08); background: #3a4a5a; } }
@keyframes rfe-suit { 0%,100% { transform: scale(0.9) translateX(0); } 50% { transform: scale(0.95) translateX(4px); } }
@keyframes rfe-boots { 0%,100% { transform: rotate(5deg) translateX(0); } 50% { transform: rotate(3deg) translateX(2px); } }

/* waiting-for-signal — tense, dim-interior */
.scn-waiting-for-signal {
  background:
    radial-gradient(ellipse at 30% 60%, #1a1a2a 0%, transparent 70%),
    linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 50%, #0a0a1a 100%);
}
.scn-waiting-for-signal .floor {
  position: absolute; inset: auto 0 0 0; height: 30%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
}
.scn-waiting-for-signal .wall-left {
  position: absolute; left: 0; top: 0; bottom: 30%; width: 30%;
  background: linear-gradient(90deg, #0a0a1a 0%, #1a1a2a 100%);
}
.scn-waiting-for-signal .wall-right {
  position: absolute; right: 0; top: 0; bottom: 30%; width: 30%;
  background: linear-gradient(270deg, #0a0a1a 0%, #1a1a2a 100%);
}
.scn-waiting-for-signal .door-1 {
  position: absolute; left: 35%; bottom: 30%; width: 50px; height: 90px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 4px; border: 2px solid #3a3a4a;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.6);
}
.scn-waiting-for-signal .door-2 {
  position: absolute; right: 35%; bottom: 30%; width: 50px; height: 90px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 4px; border: 2px solid #3a3a4a;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.6);
}
.scn-waiting-for-signal .lamp {
  position: absolute; left: 48%; top: 20%; width: 16px; height: 20px;
  background: radial-gradient(circle at 50% 80%, #c0a060 0%, #605030 60%, #1a1a2a 100%);
  border-radius: 8px 8px 4px 4px; box-shadow: 0 0 30px 6px rgba(192,160,96,0.25);
  animation: wfs-lamp 5s ease-in-out infinite alternate;
}
.scn-waiting-for-signal .light-pool {
  position: absolute; left: 30%; top: 15%; width: 160px; height: 120px;
  background: radial-gradient(ellipse, rgba(192,160,96,0.08) 0%, transparent 70%);
  animation: wfs-light 5s ease-in-out infinite alternate;
}
.scn-waiting-for-signal .shadow-figure {
  position: absolute; left: 38%; bottom: 30%; width: 24px; height: 60px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  opacity: 0.6; transform: scale(0.95);
  animation: wfs-figure 3s ease-in-out infinite alternate;
}
@keyframes wfs-lamp { 0% { opacity: 0.7; box-shadow: 0 0 20px 4px rgba(192,160,96,0.2); } 50% { opacity: 1; box-shadow: 0 0 40px 10px rgba(192,160,96,0.4); } 100% { opacity: 0.8; box-shadow: 0 0 25px 5px rgba(192,160,96,0.25); } }
@keyframes wfs-light { 0% { opacity: 0.5; transform: scale(1); } 50% { opacity: 1; transform: scale(1.05); } 100% { opacity: 0.7; transform: scale(0.98); } }
@keyframes wfs-figure { 0% { transform: scale(0.95) translateX(0); } 50% { transform: scale(1) translateX(2px); } 100% { transform: scale(0.97) translateX(-1px); } }

/* nautilus-stops-mysteriously — tense, dim-interior */
.scn-nautilus-stops-mysteriously {
  background:
    radial-gradient(ellipse at 60% 50%, #0a1a2a 0%, transparent 60%),
    linear-gradient(180deg, #050a15 0%, #0a1a2a 50%, #050a15 100%);
}
.scn-nautilus-stops-mysteriously .deck {
  position: absolute; inset: auto 0 0 0; height: 20%;
  background: linear-gradient(180deg, #0a1a2a 0%, #050a15 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.6);
}
.scn-nautilus-stops-mysteriously .bulkhead {
  position: absolute; left: 20%; top: 10%; bottom: 20%; width: 60%;
  background: linear-gradient(180deg, #0a1a2a 0%, #152030 50%, #0a1a2a 100%);
  border-radius: 20px; box-shadow: inset 0 0 40px rgba(0,0,0,0.5);
}
.scn-nautilus-stops-mysteriously .machinery {
  position: absolute; left: 30%; bottom: 20%; width: 80px; height: 60px;
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%);
  border-radius: 4px; box-shadow: inset 0 0 15px rgba(0,0,0,0.7);
  animation: nsm-machinery 2s ease-in-out infinite alternate;
}
.scn-nautilus-stops-mysteriously .pipes {
  position: absolute; left: 25%; top: 15%; width: 120px; height: 8px;
  background: linear-gradient(90deg, #3a4a5a 0%, #1a2a3a 100%);
  border-radius: 4px; transform: rotate(-10deg);
  animation: nsm-pipes 3s ease-in-out infinite alternate;
}
.scn-nautilus-stops-mysteriously .dial {
  position: absolute; right: 25%; top: 25%; width: 30px; height: 30px;
  border-radius: 50%; background: radial-gradient(circle, #8090a0 0%, #304050 70%, #152030 100%);
  border: 2px solid #4a5a6a; box-shadow: 0 0 8px rgba(0,100,200,0.2);
  animation: nsm-dial 1.5s ease-in-out infinite alternate;
}
.scn-nautilus-stops-mysteriously .jolt-ring {
  position: absolute; left: 40%; top: 35%; width: 80px; height: 80px;
  border-radius: 50%; border: 2px solid rgba(100,150,200,0.2);
  transform: scale(0); opacity: 0;
  animation: nsm-jolt 0.6s ease-out 2;
}
.scn-nautilus-stops-mysteriously .shadow-swell {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(0,0,0,0.5) 0%, transparent 40%, transparent 60%, rgba(0,0,0,0.7) 100%);
  pointer-events: none;
  animation: nsm-swell 8s ease-in-out infinite;
}
.scn-nautilus-stops-mysteriously .deep-silence {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 50%, transparent 40%, rgba(0,0,20,0.3) 100%);
}
@keyframes nsm-machinery { 0% { transform: scale(1) translateY(0); } 50% { transform: scale(1.02) translateY(-2px); } 100% { transform: scale(0.98) translateY(1px); } }
@keyframes nsm-pipes { 0% { transform: rotate(-10deg) scaleX(1); } 50% { transform: rotate(-8deg) scaleX(1.01); } 100% { transform: rotate(-12deg) scaleX(0.99); } }
@keyframes nsm-dial { 0% { transform: rotate(0deg); box-shadow: 0 0 8px rgba(0,100,200,0.2); } 100% { transform: rotate(15deg); box-shadow: 0 0 12px rgba(0,100,200,0.4); } }
@keyframes nsm-jolt { 0% { transform: scale(0); opacity: 0.6; border-width: 4px; } 50% { transform: scale(1.5); opacity: 0.3; border-width: 2px; } 100% { transform: scale(2); opacity: 0; } }
@keyframes nsm-swell { 0%,100% { opacity: 0.6; } 50% { opacity: 0.3; } }

.scn-item-devilfish-description {
  background: linear-gradient(180deg, #0a0a1a 0%, #0f1f2a 40%, #0a2a1a 80%, #051005 100%), radial-gradient(ellipse at 30% 40%, #1a3a2a 0%, transparent 70%);
}
.scn-item-devilfish-description .bg-dark {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, rgba(0,0,0,0.8) 0%, rgba(10,30,20,0.6) 100%);
  animation: df1-pulse 12s ease-in-out infinite alternate;
}
.scn-item-devilfish-description .tentacle {
  position: absolute; bottom: 10%; left: 10%; width: 30px; height: 120px;
  background: linear-gradient(180deg, #1a3a2a 0%, #0a1a12 70%, #051005 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.5);
}
.scn-item-devilfish-description .t1 {
  left: 10%; animation: df1-writhe 5s ease-in-out infinite;
}
.scn-item-devilfish-description .t2 {
  left: 30%; width: 25px; height: 100px;
  animation: df1-writhe 7s ease-in-out infinite 1s;
}
.scn-item-devilfish-description .t3 {
  left: 50%; width: 35px; height: 130px;
  animation: df1-writhe 4s ease-in-out infinite 0.5s;
}
.scn-item-devilfish-description .t4 {
  left: 70%; width: 28px; height: 110px;
  animation: df1-writhe 6s ease-in-out infinite 2s;
}
.scn-item-devilfish-description .eye {
  position: absolute; top: 25%; width: 45px; height: 50px;
  background: radial-gradient(circle at 45% 40%, #4affaa 0%, #1a8a5a 40%, #0a3a2a 70%, #000 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(74,255,170,0.3);
  animation: df1-blinking 8s step-end infinite;
}
.scn-item-devilfish-description .left-eye {
  left: 25%;
}
.scn-item-devilfish-description .right-eye {
  left: 55%;
  animation-delay: 4s;
}
.scn-item-devilfish-description .glow-spot {
  position: absolute; top: 40%; left: 35%; width: 80px; height: 80px;
  background: radial-gradient(circle, rgba(74,255,170,0.1) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(10px);
  animation: df1-glowpulse 3s ease-in-out infinite alternate;
}
@keyframes df1-pulse {
  0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; }
}
@keyframes df1-writhe {
  0% { transform: rotate(-5deg) translateY(0); } 25% { transform: rotate(8deg) translateY(-5px); } 50% { transform: rotate(-2deg) translateY(2px); } 75% { transform: rotate(10deg) translateY(-3px); } 100% { transform: rotate(-5deg) translateY(0); }
}
@keyframes df1-blinking {
  0%, 90%, 100% { transform: scaleY(1); } 95% { transform: scaleY(0.1); }
}
@keyframes df1-glowpulse {
  0% { transform: scale(0.8); opacity: 0.3; } 50% { transform: scale(1.2); opacity: 0.6; } 100% { transform: scale(0.9); opacity: 0.4; }
}

.scn-devilfish-escort {
  background: linear-gradient(180deg, #0a0a1a 0%, #121a2a 50%, #0f1f20 100%), radial-gradient(ellipse at 50% 30%, #1a2a3a 0%, transparent 70%);
}
.scn-devilfish-escort .bg-deep {
  position: absolute; inset: 0;
  background: linear-gradient(160deg, rgba(10,15,20,0.9) 0%, rgba(0,5,10,0.8) 100%);
  animation: df2-drift 20s linear infinite;
}
.scn-devilfish-escort .murk-layer {
  position: absolute; inset: 10% 0 0 0;
  background: linear-gradient(180deg, transparent 0%, rgba(20,30,40,0.3) 50%, transparent 100%);
  filter: blur(8px);
  animation: df2-murk 15s ease-in-out infinite alternate;
}
.scn-devilfish-escort .squid-body {
  position: absolute; top: 20%; left: 50%; width: 100px; height: 140px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 40%, #1a3a2a 0%, #0f1f1a 70%, #050a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 40px rgba(0,0,0,0.6), inset 0 -20px 30px rgba(0,0,0,0.5);
  animation: df2-breathe 5s ease-in-out infinite;
}
.scn-devilfish-escort .arm {
  position: absolute; top: 35%; width: 15px; height: 80px;
  background: linear-gradient(180deg, #1a3a2a 0%, #0a1a12 80%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: top center;
}
.scn-devilfish-escort .a1 { left: 20%; animation: df2-sway 6s ease-in-out infinite; }
.scn-devilfish-escort .a2 { left: 35%; animation: df2-sway 7s ease-in-out infinite 1.2s; }
.scn-devilfish-escort .a3 { left: 60%; animation: df2-sway 5s ease-in-out infinite 0.6s; }
.scn-devilfish-escort .a4 { left: 75%; animation: df2-sway 8s ease-in-out infinite 2s; }
.scn-devilfish-escort .heart-glow {
  position: absolute; top: 30%; left: 45%; width: 20px; height: 30px;
  background: radial-gradient(circle at 50% 50%, #ff4060 0%, #8a1020 60%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 40px 15px rgba(255,64,96,0.5);
  animation: df2-heartbeat 1s ease-in-out infinite;
}
@keyframes df2-drift {
  0% { background-position: 0 0; } 100% { background-position: 50px 50px; }
}
@keyframes df2-murk {
  0% { opacity: 0.3; } 50% { opacity: 0.6; } 100% { opacity: 0.2; }
}
@keyframes df2-breathe {
  0% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.05); } 100% { transform: translateX(-50%) scale(1); }
}
@keyframes df2-sway {
  0% { transform: rotate(-10deg) translateY(0); } 25% { transform: rotate(10deg) translateY(-4px); } 50% { transform: rotate(-5deg) translateY(2px); } 75% { transform: rotate(15deg) translateY(-2px); } 100% { transform: rotate(-10deg) translateY(0); }
}
@keyframes df2-heartbeat {
  0%, 100% { transform: scale(1); opacity: 0.8; } 14% { transform: scale(1.3); opacity: 1; } 28% { transform: scale(1); opacity: 0.9; } 42% { transform: scale(1.2); opacity: 1; } 56% { transform: scale(1); opacity: 0.8; }
}

.scn-nautilus-stopped-devilfish {
  background: linear-gradient(180deg, #1a1a2a 0%, #2a2e3a 40%, #1a1a24 100%), radial-gradient(ellipse at 50% 70%, #2a3a4a 0%, transparent 70%);
}
.scn-nautilus-stopped-devilfish .bg-metal {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #2a2e3a 0%, #1a1c24 50%, #0e1018 100%);
  animation: nsd-shimmer 10s ease-in-out infinite alternate;
}
.scn-nautilus-stopped-devilfish .porthole-frame {
  position: absolute; top: 25%; left: 20%; width: 120px; height: 120px;
  border: 8px solid #4a5058;
  border-radius: 50%;
  background: transparent;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.5), 0 0 20px rgba(100,120,140,0.3);
  animation: nsd-frame 4s ease-in-out infinite;
}
.scn-nautilus-stopped-devilfish .porthole-glass {
  position: absolute; top: 28%; left: 23%; width: 100px; height: 100px;
  background: radial-gradient(circle at 40% 40%, #3a5a6a 0%, #1a2a3a 70%, #0a121a 100%);
  border-radius: 50%;
  overflow: hidden;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.7);
}
.scn-nautilus-stopped-devilfish .tentacle-outside {
  position: absolute; top: 30%; width: 20px; height: 90px;
  background: linear-gradient(180deg, #1a3a2a 0%, #0a1a12 80%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: top center;
  opacity: 0.7;
}
.scn-nautilus-stopped-devilfish .t-o1 {
  left: 15%; animation: nsd-tentacle-sway 6s ease-in-out infinite;
}
.scn-nautilus-stopped-devilfish .t-o2 {
  left: 65%; animation: nsd-tentacle-sway 8s ease-in-out infinite 2s;
}
.scn-nautilus-stopped-devilfish .shadow-line {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 4px;
  background: rgba(0,0,0,0.4);
  filter: blur(2px);
  animation: nsd-shake 3s ease-in-out infinite;
}
.scn-nautilus-stopped-devilfish .vibrate-shake {
  position: absolute; inset: 0;
  background: transparent;
  animation: nsd-vibrate 2s ease-in-out infinite;
  pointer-events: none;
}
@keyframes nsd-shimmer {
  0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; }
}
@keyframes nsd-frame {
  0% { transform: rotate(0deg) scale(1); } 25% { transform: rotate(2deg) scale(1.01); } 50% { transform: rotate(0deg) scale(1); } 75% { transform: rotate(-2deg) scale(0.99); } 100% { transform: rotate(0deg) scale(1); }
}
@keyframes nsd-tentacle-sway {
  0% { transform: rotate(-5deg) translateY(0); } 25% { transform: rotate(10deg) translateY(-3px); } 50% { transform: rotate(0deg) translateY(2px); } 75% { transform: rotate(-10deg) translateY(-1px); } 100% { transform: rotate(-5deg) translateY(0); }
}
@keyframes nsd-shake {
  0%, 100% { transform: translateX(0); } 10% { transform: translateX(-2px); } 20% { transform: translateX(2px); } 30% { transform: translateX(-1px); } 40% { transform: translateX(1px); } 50% { transform: translateX(0); }
}
@keyframes nsd-vibrate {
  0%, 100% { transform: translate(0, 0); } 10% { transform: translate(1px, -1px); } 20% { transform: translate(-1px, 1px); } 30% { transform: translate(1px, 1px); } 40% { transform: translate(-1px, -1px); } 50% { transform: translate(0, 0); }
}

.scn-preparing-fight-devilfish {
  background: linear-gradient(180deg, #e8dcc8 0%, #c8b8a0 40%, #b0a088 100%), radial-gradient(ellipse at 70% 20%, #fff5e0 0%, transparent 60%);
}
.scn-preparing-fight-devilfish .bg-bright {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, rgba(255,245,230,0.8) 0%, rgba(200,180,150,0.6) 100%);
  animation: pfd-flicker 8s ease-in-out infinite alternate;
}
.scn-preparing-fight-devilfish .floor-shadow {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 20%;
  background: linear-gradient(180deg, rgba(80,60,40,0.3) 0%, rgba(40,30,20,0.5) 100%);
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  animation: pfd-shift 10s ease-in-out infinite;
}
.scn-preparing-fight-devilfish .figure {
  position: absolute; bottom: 20%; width: 30px; height: 80px;
  background: linear-gradient(180deg, #3a302a 0%, #1a1410 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
}
.scn-preparing-fight-devilfish .f1 {
  left: 25%; animation: pfd-brace 4s ease-in-out infinite;
}
.scn-preparing-fight-devilfish .f2 {
  left: 55%; animation: pfd-brace 5s ease-in-out infinite 1s;
}
.scn-preparing-fight-devilfish .axe {
  position: absolute; bottom: 45%; left: 20%; width: 8px; height: 50px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a10 100%);
  border-radius: 4px;
  transform: rotate(15deg);
  transform-origin: bottom center;
  animation: pfd-weapon 3s ease-in-out infinite alternate;
}
.scn-preparing-fight-devilfish .harpoon {
  position: absolute; bottom: 40%; left: 65%; width: 6px; height: 70px;
  background: linear-gradient(180deg, #6a5a4a 0%, #2a1a10 100%);
  border-radius: 3px 3px 0 0;
  transform: rotate(-10deg);
  transform-origin: bottom center;
  animation: pfd-weapon 4s ease-in-out infinite alternate-reverse;
}
.scn-preparing-fight-devilfish .light-beam {
  position: absolute; top: 5%; left: 45%; width: 10px; height: 90%;
  background: linear-gradient(180deg, rgba(255,240,200,0.3) 0%, transparent 80%);
  transform: rotate(5deg);
  filter: blur(5px);
  animation: pfd-beam 6s ease-in-out infinite alternate;
}
.scn-preparing-fight-devilfish .glint {
  position: absolute; top: 10%; left: 30%; width: 15px; height: 15px;
  background: radial-gradient(circle, #fff 0%, rgba(255,255,255,0) 70%);
  border-radius: 50%;
  animation: pfd-glint 2s ease-in-out infinite alternate;
}
@keyframes pfd-flicker {
  0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.95; }
}
@keyframes pfd-shift {
  0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-5px) scaleX(0.95); } 100% { transform: translateY(0) scaleX(1); }
}
@keyframes pfd-brace {
  0% { transform: translateY(0) rotate(-1deg); } 25% { transform: translateY(-2px) rotate(2deg); } 50% { transform: translateY(0) rotate(-2deg); } 75% { transform: translateY(-1px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes pfd-weapon {
  0% { transform: rotate(12deg) translateX(0); } 50% { transform: rotate(18deg) translateX(-3px); } 100% { transform: rotate(12deg) translateX(0); }
}
@keyframes pfd-beam {
  0% { opacity: 0.3; transform: rotate(3deg); } 50% { opacity: 0.6; transform: rotate(7deg); } 100% { opacity: 0.4; transform: rotate(5deg); }
}
@keyframes pfd-glint {
  0% { transform: scale(0.5); opacity: 0; } 50% { transform: scale(1.5); opacity: 1; } 100% { transform: scale(0.8); opacity: 0.3; }
}

/* vegetation-spreads */
.scn-vegetation-spreads { background: linear-gradient(180deg, #87CEEB 0%, #B0E0E6 40%, #F0E68C 100%), radial-gradient(ellipse at 70% 20%, #FFD700 0%, transparent 60%); }
.scn-vegetation-spreads .sky { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #B0E0E6 0%, #87CEEB 100%); animation: vs-sky 15s ease-in-out infinite alternate; }
.scn-vegetation-spreads .sun { position:absolute; top:10%; left:70%; width:50px; height:50px; background: radial-gradient(circle, #FFD700 0%, #FFA500 60%); border-radius:50%; box-shadow:0 0 40px 15px #FFD700; animation: vs-sun 20s ease-in-out infinite; }
.scn-vegetation-spreads .sea { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #4682B4 0%, #1E90FF 100%); animation: vs-sea 18s ease-in-out infinite; }
.scn-vegetation-spreads .island { position:absolute; bottom:30%; left:20%; width:40%; height:25%; background: linear-gradient(180deg, #8B4513 0%, #A0522D 50%, #6B4226 100%); border-radius: 50% 50% 0 0 / 80% 80% 0 0; box-shadow: inset 0 -20px 30px rgba(0,0,0,0.4); animation: vs-island 25s ease-in-out infinite alternate; }
.scn-vegetation-spreads .tree-a { position:absolute; bottom:44%; left:25%; width:12px; height:30px; background: linear-gradient(180deg, #228B22 0%, #006400 100%); border-radius: 50% 50% 20% 20%; transform-origin: bottom; animation: vs-tree 6s ease-in-out infinite; }
.scn-vegetation-spreads .tree-b { position:absolute; bottom:40%; left:35%; width:10px; height:25px; background: linear-gradient(180deg, #2E8B57 0%, #006400 100%); border-radius: 50% 50% 20% 20%; transform-origin: bottom; animation: vs-tree 8s ease-in-out infinite 2s; }
.scn-vegetation-spreads .bird-a { position:absolute; top:20%; left:10%; width:20px; height:10px; background: #654321; border-radius: 50% 50% 0 0; clip-path: polygon(0% 50%, 40% 0%, 100% 50%, 60% 100%); animation: vs-bird 12s linear infinite; }
.scn-vegetation-spreads .bird-b { position:absolute; top:15%; left:30%; width:15px; height:8px; background: #654321; border-radius: 50% 50% 0 0; clip-path: polygon(0% 50%, 40% 0%, 100% 50%, 60% 100%); animation: vs-bird 14s linear infinite 3s; }
.scn-vegetation-spreads .cloud-c { position:absolute; top:8%; left:50%; width:100px; height:20px; background: rgba(255,255,255,0.6); border-radius: 50%; filter: blur(6px); animation: vs-cloud 40s linear infinite; }

@keyframes vs-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes vs-sun { 0% { transform: translate(0,0); box-shadow:0 0 40px 15px #FFD700; } 50% { transform: translate(5px,-5px); box-shadow:0 0 60px 20px #FFD700; } 100% { transform: translate(0,0); } }
@keyframes vs-sea { 0% { background-position:0% 0% } 50% { background-position:100% 0% } 100% { background-position:0% 0% } }
@keyframes vs-island { 0% { transform: scale(1) translateX(0); } 50% { transform: scale(1.02) translateX(3px); } 100% { transform: scale(1) translateX(0); } }
@keyframes vs-tree { 0% { transform: rotate(0deg); } 25% { transform: rotate(3deg); } 50% { transform: rotate(-3deg); } 75% { transform: rotate(2deg); } 100% { transform: rotate(0deg); } }
@keyframes vs-bird { 0% { transform: translateX(-50px) scale(1); } 50% { transform: translateX(200px) scale(0.8); } 100% { transform: translateX(-50px) scale(1); } }
@keyframes vs-cloud { 0% { transform: translateX(0); } 100% { transform: translateX(-120vw); } }

/* reao-disappears */
.scn-reao-disappears { background: linear-gradient(180deg, #4B0082 0%, #6A5ACD 30%, #483D8B 70%, #2F4F4F 100%), radial-gradient(ellipse at 50% 80%, #FF7F50 0%, transparent 60%); }
.scn-reao-disappears .sky-dusk { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #191970 0%, #483D8B 50%, #8A2BE2 100%); animation: rd-sky 20s ease-in-out infinite alternate; }
.scn-reao-disappears .sea-dusk { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #2F4F4F 0%, #000080 100%); animation: rd-sea 15s ease-in-out infinite; }
.scn-reao-disappears .island-fade { position:absolute; bottom:30%; right:-10%; width:30%; height:15%; background: linear-gradient(180deg, #556B2F 0%, #2E8B57 100%); border-radius: 30% 70% 40% 60% / 80% 50% 50% 20%; box-shadow: inset 0 -10px 20px rgba(0,0,0,0.5); animation: rd-island 25s linear infinite; }
.scn-reao-disappears .ship-recede { position:absolute; bottom:20%; left:30%; width:60px; height:20px; background: #1a1a2a; border-radius: 0% 0% 10% 10%; box-shadow: 0 5px 10px rgba(0,0,0,0.7); animation: rd-ship 30s linear infinite; }
.scn-reao-disappears .wave-rd1 { position:absolute; bottom:10%; left:0; right:0; height:8%; background: rgba(255,255,255,0.1); border-radius: 50%; filter: blur(4px); animation: rd-wave 8s ease-in-out infinite; }
.scn-reao-disappears .wave-rd2 { position:absolute; bottom:5%; left:0; right:0; height:6%; background: rgba(255,255,255,0.08); border-radius: 50%; filter: blur(3px); animation: rd-wave 10s ease-in-out infinite 2s; }
.scn-reao-disappears .star-rd1 { position:absolute; top:5%; left:20%; width:3px; height:3px; background: white; border-radius:50%; box-shadow: 0 0 4px white; animation: rd-star 4s ease-in-out infinite alternate; }
.scn-reao-disappears .star-rd2 { position:absolute; top:12%; right:15%; width:2px; height:2px; background: white; border-radius:50%; box-shadow: 0 0 3px white; animation: rd-star 5s ease-in-out infinite alternate 1s; }

@keyframes rd-sky { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes rd-sea { 0% { transform: translateY(0); } 50% { transform: translateY(2px); } 100% { transform: translateY(0); } }
@keyframes rd-island { 0% { transform: translateX(0) scale(1); opacity:0.9; } 50% { transform: translateX(-80px) scale(0.7); opacity:0.5; } 100% { transform: translateX(-160px) scale(0.3); opacity:0; } }
@keyframes rd-ship { 0% { transform: translateX(0) scale(1); opacity:1; } 50% { transform: translateX(-100px) scale(0.8); opacity:0.6; } 100% { transform: translateX(-200px) scale(0.5); opacity:0; } }
@keyframes rd-wave { 0% { transform: translateX(0) scaleY(1); } 50% { transform: translateX(10px) scaleY(1.2); } 100% { transform: translateX(0) scaleY(1); } }
@keyframes rd-star { 0% { opacity:0.4; transform: scale(1); } 50% { opacity:1; transform: scale(1.3); } 100% { opacity:0.6; transform: scale(0.9); } }

/* society-islands-left */
.scn-society-islands-left { background: linear-gradient(180deg, #87CEEB 0%, #B0E0E6 30%, #FFD700 60%, #FFA500 100%), radial-gradient(ellipse at 30% 90%, #FFD700 0%, transparent 50%); }
.scn-society-islands-left .sky-sun { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #B0E0E6 0%, #87CEEB 70%, #FFF8DC 100%); animation: si-sky 18s ease-in-out infinite alternate; }
.scn-society-islands-left .sea-sun { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #4682B4 0%, #1E90FF 100%); animation: si-sea 15s ease-in-out infinite; }
.scn-society-islands-left .island-left { position:absolute; bottom:35%; left:-5%; width:25%; height:20%; background: linear-gradient(180deg, #8B4513 0%, #A0522D 50%, #6B4226 100%); border-radius: 60% 40% 0 0 / 80% 60% 0 0; box-shadow: inset 0 -15px 25px rgba(0,0,0,0.3); animation: si-island 30s linear infinite; }
.scn-society-islands-left .fish-a { position:absolute; bottom:15%; left:40%; width:30px; height:10px; background: #FF8C00; border-radius: 50% 0 0 50%; clip-path: polygon(0% 50%, 100% 0%, 100% 100%); animation: si-fish 12s linear infinite; }
.scn-society-islands-left .fish-b { position:absolute; bottom:20%; left:60%; width:20px; height:8px; background: #FF6347; border-radius: 50% 0 0 50%; clip-path: polygon(0% 50%, 100% 0%, 100% 100%); animation: si-fish 14s linear infinite 4s; }
.scn-society-islands-left .boat-bob { position:absolute; bottom:30%; left:50%; width:80px; height:25px; background: linear-gradient(180deg, #8B4513 0%, #5C4033 100%); border-radius: 0 0 20% 20%; box-shadow: 0 4px 8px rgba(0,0,0,0.5); animation: si-boat 6s ease-in-out infinite; }
.scn-society-islands-left .bird-fly { position:absolute; top:20%; left:10%; width:25px; height:12px; background: #654321; border-radius: 50% 50% 0 0; clip-path: polygon(0% 50%, 40% 0%, 100% 50%, 60% 100%); animation: si-bird 16s linear infinite; }
.scn-society-islands-left .cloud-sd { position:absolute; top:10%; left:70%; width:120px; height:20px; background: rgba(255,255,255,0.5); border-radius: 50%; filter: blur(5px); animation: si-cloud 45s linear infinite; }

@keyframes si-sky { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes si-sea { 0% { transform: translateY(0); } 50% { transform: translateY(2px); } 100% { transform: translateY(0); } }
@keyframes si-island { 0% { transform: translateX(0) scale(1); opacity:0.9; } 50% { transform: translateX(-50px) scale(0.8); opacity:0.5; } 100% { transform: translateX(-100px) scale(0.6); opacity:0; } }
@keyframes si-fish { 0% { transform: translateX(0); } 50% { transform: translateX(80px) scaleX(-1); } 100% { transform: translateX(0); } }
@keyframes si-boat { 0% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(3deg); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes si-bird { 0% { transform: translateX(-50px); } 50% { transform: translateX(300px) scale(0.7); } 100% { transform: translateX(-50px); } }
@keyframes si-cloud { 0% { transform: translateX(0); } 100% { transform: translateX(-150vw); } }

/* mileage-count */
.scn-mileage-count { background: linear-gradient(180deg, #F5DEB3 0%, #DEB887 40%, #D2B48C 100%), radial-gradient(ellipse at 50% 30%, #FFD700 0%, transparent 70%); }
.scn-mileage-count .chart-base { position:absolute; inset:5% 5% 5% 5%; background: linear-gradient(135deg, #FFF8DC 0%, #F5DEB3 100%); border-radius: 10px; box-shadow: inset 0 0 30px rgba(0,0,0,0.1); }
.scn-mileage-count .compass-rose { position:absolute; top:10%; left:10%; width:40px; height:40px; background: conic-gradient(#8B4513 0deg 90deg, #D2B48C 90deg 180deg, #8B4513 180deg 270deg, #D2B48C 270deg 360deg); border-radius: 50%; animation: mc-compass 30s linear infinite; }
.scn-mileage-count .ml-a { position:absolute; top:60%; left:15%; width:70%; height:2px; background: #8B4513; transform-origin: left; animation: mc-line 12s ease-in-out infinite; }
.scn-mileage-count .ml-b { position:absolute; top:70%; left:25%; width:50%; height:2px; background: #A0522D; transform-origin: left; animation: mc-line 14s ease-in-out infinite 2s; }
.scn-mileage-count .ship-icon { position:absolute; top:50%; left:50%; width:30px; height:15px; background: #5C4033; border-radius: 0 0 30% 30%; transform: translate(-50%, -50%); animation: mc-ship 8s ease-in-out infinite; }
.scn-mileage-count .sun-ray { position:absolute; top:5%; right:5%; width:60px; height:60px; background: radial-gradient(circle, #FFD700 0%, #FFA500 60%); border-radius: 50%; box-shadow: 0 0 50px 20px #FFD700; animation: mc-sun 10s ease-in-out infinite; }
.scn-mileage-count .dot-1 { position:absolute; top:65%; left:20%; width:8px; height:8px; background: #8B4513; border-radius: 50%; animation: mc-dot 20s linear infinite; }
.scn-mileage-count .dot-2 { position:absolute; top:75%; left:30%; width:6px; height:6px; background: #A0522D; border-radius: 50%; animation: mc-dot 22s linear infinite 4s; }

@keyframes mc-compass { 0% { transform: rotate(0deg); } 50% { transform: rotate(180deg); } 100% { transform: rotate(360deg); } }
@keyframes mc-line { 0% { transform: scaleX(1); opacity:0.8; } 50% { transform: scaleX(1.2); opacity:1; } 100% { transform: scaleX(1); opacity:0.8; } }
@keyframes mc-ship { 0% { transform: translate(-50%, -50%) rotate(0deg); } 50% { transform: translate(-50%, -50%) rotate(-5deg); } 100% { transform: translate(-50%, -50%) rotate(0deg); } }
@keyframes mc-sun { 0% { opacity:0.8; transform: scale(1); } 50% { opacity:1; transform: scale(1.1); } 100% { opacity:0.8; transform: scale(1); } }
@keyframes mc-dot { 0% { transform: translateX(0); } 50% { transform: translateX(100px); } 100% { transform: translateX(200px); } }

.scn-agreement-with-conditions {
  background:
    linear-gradient(180deg, #6a9bce 0%, #aad4f5 30%, #f0e8c8 60%),
    radial-gradient(ellipse at 30% 20%, #fef9d7 0%, transparent 60%);
}
.scn-agreement-with-conditions .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #4a7ab5 0%, #89c4f0 60%, transparent 100%);
  animation: agr-sky-pulse 12s ease-in-out infinite alternate;
}
.scn-agreement-with-conditions .sun {
  position: absolute; top: 12%; left: 18%; width: 50px; height: 50px;
  background: radial-gradient(circle, #fff7b0 0%, #f0d080 50%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 80px 30px rgba(240,208,128,0.4);
  animation: agr-sun-move 20s ease-in-out infinite alternate;
}
.scn-agreement-with-conditions .sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #2f6b8f 0%, #134a6a 100%);
  border-radius: 60% 40% 0 0 / 30% 20% 0 0;
  animation: agr-sea-swell 8s ease-in-out infinite;
}
.scn-agreement-with-conditions .ship-rail {
  position: absolute; bottom: 43%; left: 10%; right: 10%; height: 6px;
  background: linear-gradient(90deg, #4a3a2a 0%, #3a2a1a 20%, #5a4a3a 80%, #3a2a1a 100%);
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
}
.scn-agreement-with-conditions .figure-left {
  position: absolute; bottom: 34%; left: 22%; width: 14px; height: 36px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: agr-figure-walk 5s ease-in-out infinite alternate;
}
.scn-agreement-with-conditions .figure-right {
  position: absolute; bottom: 34%; right: 22%; width: 16px; height: 38px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: agr-figure-walk 6s ease-in-out infinite alternate-reverse;
}
.scn-agreement-with-conditions .glint {
  position: absolute; top: 20%; right: 35%; width: 8px; height: 8px;
  background: radial-gradient(circle, #ffffe0 0%, transparent 70%);
  border-radius: 50%;
  animation: agr-glint 4s ease-in-out infinite alternate;
}
@keyframes agr-sky-pulse {
  0% { opacity: 0.8; }
  50% { opacity: 1; filter: brightness(1.05); }
  100% { opacity: 0.9; }
}
@keyframes agr-sun-move {
  0% { transform: translate(0,0) scale(1); }
  33% { transform: translate(12px,-6px) scale(0.98); }
  66% { transform: translate(-8px,4px) scale(1.02); }
  100% { transform: translate(4px,-2px) scale(1); }
}
@keyframes agr-sea-swell {
  0% { transform: translateY(0); }
  25% { transform: translateY(-2px) scaleY(1.01); }
  50% { transform: translateY(0) scaleY(0.99); }
  75% { transform: translateY(3px) scaleY(1.02); }
  100% { transform: translateY(0); }
}
@keyframes agr-figure-walk {
  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 agr-glint {
  0% { opacity: 0.3; transform: scale(0.8); }
  50% { opacity: 1; transform: scale(1.3); }
  100% { opacity: 0.5; transform: scale(0.9); }
}

.scn-opportunity-defined {
  background:
    linear-gradient(135deg, #3a5a6a 0%, #5a7a8a 50%, #7a9aaa 100%),
    radial-gradient(ellipse at 30% 80%, #1a2a3a 0%, transparent 70%);
}
.scn-opportunity-defined .wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #4a5a6a 0%, #2a3a4a 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,0.5);
}
.scn-opportunity-defined .porthole {
  position: absolute; top: 20%; left: 15%; width: 80px; height: 80px;
  background: radial-gradient(circle, #8ab8d0 0%, #4a6a80 60%, transparent 80%);
  border-radius: 50%;
  border: 8px solid #3a4a5a;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.4);
  animation: opp-porthole 10s ease-in-out infinite alternate;
}
.scn-opportunity-defined .table {
  position: absolute; bottom: 18%; left: 20%; right: 20%; height: 12px;
  background: linear-gradient(90deg, #4a3a2a 0%, #5a4a3a 30%, #6a5a4a 70%, #4a3a2a 100%);
  border-radius: 2px;
  box-shadow: 0 6px 12px rgba(0,0,0,0.5);
}
.scn-opportunity-defined .map {
  position: absolute; bottom: 22%; left: 30%; right: 30%; height: 40px;
  background: linear-gradient(135deg, #b8a080 0%, #c8b090 50%, #d8c0a0 100%);
  border-radius: 2px 2px 1px 1px;
  box-shadow: inset 0 2px 4px rgba(0,0,0,0.2), 0 4px 8px rgba(0,0,0,0.3);
  transform: rotate(-2deg);
  animation: opp-map 7s ease-in-out infinite alternate;
}
.scn-opportunity-defined .hand {
  position: absolute; bottom: 19%; left: 42%; width: 14px; height: 22px;
  background: linear-gradient(180deg, #b88868 0%, #8a6850 100%);
  border-radius: 40% 30% 30% 30% / 50% 40% 30% 40%;
  transform-origin: 50% 100%;
  animation: opp-hand-point 4s ease-in-out infinite;
}
.scn-opportunity-defined .lamp {
  position: absolute; top: 30%; right: 20%; width: 14px; height: 18px;
  background: radial-gradient(circle at 50% 60%, #f0d070 0%, #c09040 60%, transparent 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 40px 10px rgba(240,208,112,0.5);
  animation: opp-lamp-glow 3s ease-in-out infinite alternate;
}
.scn-opportunity-defined .shadow-fig {
  position: absolute; bottom: 18%; left: 60%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: opp-shift 8s ease-in-out infinite;
}
@keyframes opp-porthole {
  0% { transform: scale(1); opacity: 0.7; }
  33% { transform: scale(1.05); opacity: 1; }
  66% { transform: scale(0.97); opacity: 0.8; }
  100% { transform: scale(1.02); opacity: 0.9; }
}
@keyframes opp-map {
  0% { transform: rotate(-2deg) translate(0,0); }
  50% { transform: rotate(1deg) translate(2px,-1px); }
  100% { transform: rotate(-3deg) translate(-1px,1px); }
}
@keyframes opp-hand-point {
  0% { transform: translate(0,0) rotate(-5deg); }
  25% { transform: translate(3px,-2px) rotate(8deg); }
  50% { transform: translate(6px,-1px) rotate(2deg); }
  75% { transform: translate(2px,-3px) rotate(-4deg); }
  100% { transform: translate(0,0) rotate(-5deg); }
}
@keyframes opp-lamp-glow {
  0% { opacity: 0.6; transform: scale(0.9); }
  50% { opacity: 1; transform: scale(1.1); box-shadow: 0 0 60px 15px rgba(240,208,112,0.6); }
  100% { opacity: 0.8; transform: scale(0.95); }
}
@keyframes opp-shift {
  0% { transform: translateX(0) rotate(0); }
  25% { transform: translateX(3px) rotate(2deg); }
  50% { transform: translateX(-2px) rotate(-1deg); }
  75% { transform: translateX(4px) rotate(3deg); }
  100% { transform: translateX(0) rotate(0); }
}

.scn-planning-escape-after-mediterranean {
  background:
    linear-gradient(180deg, #1a2028 0%, #0c141c 40%, #1a2830 100%),
    radial-gradient(ellipse at 50% 0%, #2a3a48 0%, transparent 70%);
}
.scn-planning-escape-after-mediterranean .corridor {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, #0e141a 0%, #1c2832 30%, #0e141a 70%);
  box-shadow: inset 0 0 80px rgba(0,0,0,0.7);
}
.scn-planning-escape-after-mediterranean .bulkhead {
  position: absolute; bottom: 20%; left: 10%; right: 10%; height: 15px;
  background: linear-gradient(90deg, #2a3a4a 0%, #3a4a5a 30%, #4a5a6a 70%, #2a3a4a 100%);
  border-radius: 2px;
  box-shadow: 0 6px 12px rgba(0,0,0,0.5);
}
.scn-planning-escape-after-mediterranean .hatch {
  position: absolute; bottom: 30%; left: 30%; width: 40px; height: 40px;
  background: radial-gradient(circle at 50% 60%, #3a4a5a 0%, #1a2a3a 60%, transparent 80%);
  border-radius: 50%;
  border: 6px solid #2a3a4a;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.6);
  animation: pla-hatch 9s ease-in-out infinite alternate;
}
.scn-planning-escape-after-mediterranean .figure-crouch {
  position: absolute; bottom: 22%; left: 28%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 30% 30% 30% 30% / 40% 40% 50% 50%;
  transform-origin: bottom center;
  animation: pla-crouch 5s ease-in-out infinite;
}
.scn-planning-escape-after-mediterranean .tool {
  position: absolute; bottom: 24%; left: 38%; width: 18px; height: 6px;
  background: linear-gradient(90deg, #5a4a3a 0%, #7a6a5a 100%);
  border-radius: 2px;
  transform: rotate(20deg);
  animation: pla-tool 4s ease-in-out infinite alternate;
}
.scn-planning-escape-after-mediterranean .vent {
  position: absolute; top: 15%; right: 20%; width: 30px; height: 12px;
  background: linear-gradient(180deg, #4a5a6a 0%, #2a3a4a 100%);
  border-radius: 4px;
  box-shadow: inset 0 2px 4px rgba(0,0,0,0.5);
  animation: pla-vent 6s ease-in-out infinite;
}
.scn-planning-escape-after-mediterranean .light-stripe {
  position: absolute; top: 10%; left: 0; right: 0; height: 4px;
  background: linear-gradient(90deg, transparent 0%, rgba(80,100,120,0.4) 20%, rgba(80,100,120,0.8) 50%, rgba(80,100,120,0.4) 80%, transparent 100%);
  animation: pla-stripe 8s linear infinite alternate;
}
@keyframes pla-hatch {
  0% { transform: scale(1) rotate(0); opacity: 0.6; }
  33% { transform: scale(1.02) rotate(5deg); opacity: 0.9; }
  66% { transform: scale(0.97) rotate(-3deg); opacity: 0.7; }
  100% { transform: scale(1) rotate(0); }
}
@keyframes pla-crouch {
  0% { transform: translateX(0) rotate(0); }
  25% { transform: translateX(4px) rotate(3deg); }
  50% { transform: translateX(8px) rotate(-2deg); }
  75% { transform: translateX(4px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes pla-tool {
  0% { transform: rotate(15deg) translate(0,0); }
  50% { transform: rotate(25deg) translate(2px,-1px); }
  100% { transform: rotate(15deg) translate(0,0); }
}
@keyframes pla-vent {
  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 pla-stripe {
  0% { transform: translateX(-10%); opacity: 0.4; }
  50% { transform: translateX(10%); opacity: 0.8; }
  100% { transform: translateX(-5%); opacity: 0.5; }
}

.scn-neds-escape-plan {
  background:
    linear-gradient(180deg, #1c1a24 0%, #2a2834 30%, #1c1a24 100%),
    radial-gradient(ellipse at 50% 30%, #3a3040 0%, transparent 70%);
}
.scn-neds-escape-plan .cabin-wall {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, #1c1a24 0%, #2c2840 40%, #1c1a24 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,0.6);
}
.scn-neds-escape-plan .bunk {
  position: absolute; bottom: 10%; left: 10%; right: 60%; height: 30%;
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 8px 16px rgba(0,0,0,0.5);
}
.scn-neds-escape-plan .figure-sit {
  position: absolute; bottom: 25%; left: 18%; width: 18px; height: 32px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: ned-sit 6s ease-in-out infinite;
}
.scn-neds-escape-plan .figure-stand {
  position: absolute; bottom: 18%; right: 20%; width: 16px; height: 38px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: ned-stand 5s ease-in-out infinite alternate;
}
.scn-neds-escape-plan .lantern {
  position: absolute; top: 25%; left: 40%; width: 12px; height: 16px;
  background: radial-gradient(circle at 50% 60%, #d0a050 0%, #805030 80%, transparent 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 40px 10px rgba(200,160,80,0.4);
  animation: ned-lantern 3s ease-in-out infinite alternate;
}
.scn-neds-escape-plan .plank {
  position: absolute; bottom: 15%; left: 30%; right: 20%; height: 6px;
  background: linear-gradient(90deg, #4a3a2a 0%, #5a4a3a 30%, #6a5a4a 70%, #4a3a2a 100%);
  border-radius: 2px;
  transform: rotate(-4deg);
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
}
.scn-neds-escape-plan .shadow {
  position: absolute; bottom: 18%; left: 10%; width: 50%; height: 20%;
  background: linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,0.4) 100%);
  border-radius: 50%;
  filter: blur(8px);
  animation: ned-shadow-pulse 7s ease-in-out infinite alternate;
}
@keyframes ned-sit {
  0% { transform: rotate(0) translateY(0); }
  25% { transform: rotate(2deg) translateY(-1px); }
  50% { transform: rotate(-1deg) translateY(1px); }
  75% { transform: rotate(3deg) translateY(-2px); }
  100% { transform: rotate(0) translateY(0); }
}
@keyframes ned-stand {
  0% { transform: translateX(0) rotate(-2deg); }
  25% { transform: translateX(4px) rotate(1deg); }
  50% { transform: translateX(8px) rotate(-3deg); }
  75% { transform: translateX(4px) rotate(2deg); }
  100% { transform: translateX(0) rotate(-2deg); }
}
@keyframes ned-lantern {
  0% { opacity: 0.8; transform: scale(0.95) rotate(-3deg); }
  50% { opacity: 1; transform: scale(1.05) rotate(3deg); box-shadow: 0 0 60px 15px rgba(200,160,80,0.6); }
  100% { opacity: 0.9; transform: scale(0.98) rotate(-1deg); }
}
@keyframes ned-shadow-pulse {
  0% { opacity: 0.5; transform: scaleX(1); }
  50% { opacity: 0.8; transform: scaleX(1.1); }
  100% { opacity: 0.6; transform: scaleX(0.95); }
}

.scn-ned-boasts { background: linear-gradient(180deg, #f8e4c8 0%, #e0c8a0 100%), radial-gradient(ellipse at 50% 100%, #d8b880 0%, transparent 70%); }
.scn-ned-boasts .wall    { position:absolute; inset:0 0 30% 0; background: linear-gradient(135deg, #f0d8b8 0%, #d8b890 100%); border-radius: 0 0 20% 20%; animation: nb-wall 12s ease-in-out infinite alternate; }
.scn-ned-boasts .table   { position:absolute; bottom:18%; left:18%; width:40%; height:12%; background: linear-gradient(180deg, #b08868 0%, #907050 100%); border-radius: 8px; box-shadow: 0 4px 12px rgba(0,0,0,.3); transform-origin: bottom center; animation: nb-table 6s ease-in-out infinite; }
.scn-ned-boasts .lantern { position:absolute; bottom:38%; left:22%; width:16px; height:24px; background: radial-gradient(circle, #ffe080 0%, #d09040 70%); border-radius: 30% 30% 20% 20%; box-shadow: 0 0 20px 6px #ffd060, 0 0 40px 12px rgba(255,208,96,.4); animation: nb-glow 3s ease-in-out infinite alternate; }
.scn-ned-boasts .ned     { position:absolute; bottom:24%; left:45%; width:34px; height:60px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: nb-ned 4s ease-in-out infinite; }
.scn-ned-boasts .arm     { position:absolute; bottom:36%; left:52%; width:12px; height:40px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 40% 40% 20% 20%; transform-origin: 50% 100%; animation: nb-arm 2s ease-in-out infinite; }
.scn-ned-boasts .fish    { position:absolute; bottom:26%; left:64%; width:30px; height:10px; background: linear-gradient(90deg, #b8a090 0%, #8a7060 100%); border-radius: 50%; filter: blur(2px); animation: nb-fish 5s ease-in-out infinite alternate; }
.scn-ned-boasts .shadow  { position:absolute; bottom:18%; left:40%; width:30%; height:8%; background: rgba(0,0,0,.15); border-radius: 50%; filter: blur(6px); animation: nb-shadow 8s ease-in-out infinite; }
@keyframes nb-wall   { 0%,100% { opacity:.9 } 50% { opacity:1 } }
@keyframes nb-table  { 0%,100% { transform: rotate(0deg) } 25% { transform: rotate(-1deg) } 75% { transform: rotate(1deg) } }
@keyframes nb-glow   { 0% { box-shadow: 0 0 15px 4px #d09040, 0 0 30px 8px rgba(208,144,64,.3); opacity:.8 } 50% { box-shadow: 0 0 30px 10px #ffe080, 0 0 60px 18px rgba(255,224,128,.5); opacity:1 } 100% { box-shadow: 0 0 20px 6px #d09040, 0 0 40px 12px rgba(208,144,64,.35); opacity:.9 } }
@keyframes nb-ned    { 0% { transform: translateX(0) rotate(-2deg) scaleY(1) } 25% { transform: translateX(2px) rotate(1deg) scaleY(1.02) } 50% { transform: translateX(0) rotate(2deg) scaleY(1) } 75% { transform: translateX(-2px) rotate(-1deg) scaleY(0.98) } 100% { transform: translateX(0) rotate(-2deg) scaleY(1) } }
@keyframes nb-arm    { 0% { transform: rotate(-20deg) } 50% { transform: rotate(30deg) } 100% { transform: rotate(-20deg) } }
@keyframes nb-fish   { 0% { transform: translateX(0) translateY(0) } 50% { transform: translateX(8px) translateY(-2px) } 100% { transform: translateX(0) } }
@keyframes nb-shadow { 0%,100% { transform: scaleX(1) scaleY(1) } 50% { transform: scaleX(1.1) scaleY(0.9) } }

.scn-conseil-volunteers { background: linear-gradient(180deg, #c8d8e0 0%, #a0b8c8 100%), radial-gradient(ellipse at 50% 30%, #d0e0e8 0%, transparent 70%); }
.scn-conseil-volunteers .sky     { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #b8d0d8 0%, #e0f0f0 100%); animation: cv-sky 15s ease-in-out infinite alternate; }
.scn-conseil-volunteers .deck    { position:absolute; bottom:10%; left:0; right:0; height:40%; background: linear-gradient(180deg, #8a6a50 0%, #6a4a30 100%); border-radius: 60% 40% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.3); }
.scn-conseil-volunteers .rail    { position:absolute; bottom:48%; left:5%; right:5%; height:4%; background: linear-gradient(90deg, #7a5a40 0%, #9a7a60 50%, #7a5a40 100%); border-radius: 2px; }
.scn-conseil-volunteers .master  { position:absolute; bottom:34%; left:30%; width:30px; height:55px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cv-master 6s ease-in-out infinite; }
.scn-conseil-volunteers .conseil { position:absolute; bottom:34%; left:44%; width:28px; height:50px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cv-conseil 6s ease-in-out infinite reverse; }
.scn-conseil-volunteers .rope    { position:absolute; bottom:50%; left:38%; width:20%; height:2%; background: #5a4a3a; border-radius: 1px; transform-origin: left; animation: cv-rope 8s ease-in-out infinite; }
.scn-conseil-volunteers .cloud   { position:absolute; top:12%; right:15%; width:70px; height:16px; background: radial-gradient(ellipse at 50% 50%, rgba(255,255,255,.6) 0%, rgba(255,255,255,.1) 100%); border-radius: 50%; filter: blur(4px); animation: cv-cloud 40s linear infinite; }
@keyframes cv-sky    { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes cv-master { 0%,100% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(2px) rotate(-2deg) scaleY(1.01) } 50% { transform: translateX(0) rotate(2deg) scaleY(1) } 75% { transform: translateX(-2px) rotate(-1deg) scaleY(0.99) } }
@keyframes cv-conseil{ 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 cv-rope   { 0% { transform: scaleX(1) translateY(0) } 50% { transform: scaleX(1.1) translateY(-3px) } 100% { transform: scaleX(1) translateY(0) } }
@keyframes cv-cloud  { 0% { transform: translateX(0) } 100% { transform: translateX(-120vw) } }

.scn-restless-night-sharks { background: linear-gradient(180deg, #0a0a2a 0%, #12123e 50%, #1a1a4e 100%), radial-gradient(ellipse at 50% 100%, #1a1a4e 0%, transparent 70%); }
.scn-restless-night-sharks .bg-night { position:absolute; inset:0; background: linear-gradient(135deg, #0e0e36 0%, #16164a 100%); animation: rn-night 20s ease-in-out infinite alternate; }
.scn-restless-night-sharks .moon     { position:absolute; top:8%; right:12%; width:40px; height:40px; background: radial-gradient(circle, #e0e8ff 0%, #8090b0 70%); border-radius: 50%; box-shadow: 0 0 30px 10px rgba(128,144,176,.4), 0 0 60px 20px rgba(128,144,176,.2); animation: rn-moon 12s ease-in-out infinite; }
.scn-restless-night-sharks .bed      { position:absolute; bottom:8%; left:15%; width:70%; height:25%; background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2a 100%); border-radius: 12px; box-shadow: inset 0 4px 10px rgba(0,0,0,.6); }
.scn-restless-night-sharks .figure   { position:absolute; bottom:18%; left:30%; width:30px; height:45px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rn-figure 4s ease-in-out infinite; }
.scn-restless-night-sharks .shark-a  { position:absolute; top:35%; left:10%; width:60px; height:20px; background: linear-gradient(180deg, #2a4a6a 0%, #1a2a4a 100%); border-radius: 60% 40% 40% 60% / 80% 80% 20% 20%; transform: rotate(-10deg); filter: blur(3px); animation: rn-shark 8s ease-in-out infinite; }
.scn-restless-night-sharks .shark-b  { position:absolute; top:45%; right:8%; width:50px; height:18px; background: linear-gradient(180deg, #3a5a7a 0%, #1a2a4a 100%); border-radius: 40% 60% 60% 40% / 70% 70% 30% 30%; transform: rotate(15deg); filter: blur(3px); animation: rn-shark 12s ease-in-out infinite reverse; }
.scn-restless-night-sharks .ripple   { position:absolute; bottom:20%; left:50%; width:80px; height:80px; background: transparent; border: 2px solid rgba(200,220,255,.15); border-radius: 50%; transform: translateX(-50%); animation: rn-ripple 6s ease-out infinite; }
@keyframes rn-night { 0%,100% { opacity:.8 } 50% { opacity:1 } }
@keyframes rn-moon  { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-5px) scale(1.05) } 100% { transform: translateY(0) scale(1) } }
@keyframes rn-figure{ 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(3px) rotate(-3deg) } 50% { transform: translateX(0) rotate(3deg) } 75% { transform: translateX(-3px) rotate(-3deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes rn-shark { 0% { transform: rotate(-10deg) translateX(0) scaleX(1) } 50% { transform: rotate(-15deg) translateX(-15px) scaleX(0.9) } 100% { transform: rotate(-10deg) translateX(0) scaleX(1) } }
@keyframes rn-ripple{ 0% { opacity:.6; transform: translateX(-50%) scale(0.5) } 100% { opacity:0; transform: translateX(-50%) scale(2) } }

.scn-skiff-departure { background: linear-gradient(180deg, #b0c0c8 0%, #8098a8 100%), radial-gradient(ellipse at 50% 70%, #a0b8c0 0%, transparent 70%); }
.scn-skiff-departure .sea      { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #6890a0 0%, #407080 100%); animation: sd-sea 15s ease-in-out infinite alternate; }
.scn-skiff-departure .sky      { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #d0dce0 0%, #b0c8d0 100%); animation: sd-sky 20s ease-in-out infinite alternate; }
.scn-skiff-departure .skiff    { position:absolute; bottom:36%; left:30%; width:40%; height:12%; background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%); border-radius: 20% 20% 10% 10%; transform-origin: center; animation: sd-skiff 8s ease-in-out infinite; }
.scn-skiff-departure .rower    { position:absolute; bottom:42%; left:40%; width:24px; 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: sd-rower 6s ease-in-out infinite; }
.scn-skiff-departure .passenger{ position:absolute; bottom:42%; left:52%; width:22px; height:38px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sd-passenger 7s ease-in-out infinite reverse; }
.scn-skiff-departure .oar      { position:absolute; bottom:44%; left:34%; width:30%; height:2%; background: #6a5a4a; border-radius: 1px; transform-origin: right; animation: sd-oar 4s ease-in-out infinite; }
.scn-skiff-departure .mist     { position:absolute; top:20%; left:0; right:0; height:40%; background: rgba(200,220,230,.3); filter: blur(20px); animation: sd-mist 30s linear infinite; }
@keyframes sd-sea      { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes sd-sky      { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes sd-skiff    { 0%,100% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(1deg) } }
@keyframes sd-rower    { 0% { transform: translateX(0) rotate(2deg) } 25% { transform: translateX(2px) rotate(-1deg) } 50% { transform: translateX(0) rotate(-2deg) } 75% { transform: translateX(-2px) rotate(1deg) } 100% { transform: translateX(0) rotate(2deg) } }
@keyframes sd-passenger{ 0% { transform: translateX(0) rotate(-1deg) } 50% { transform: translateX(2px) rotate(1deg) } 100% { transform: translateX(0) rotate(-1deg) } }
@keyframes sd-oar      { 0% { transform: rotate(20deg) } 50% { transform: rotate(-20deg) } 100% { transform: rotate(20deg) } }
@keyframes sd-mist     { 0% { transform: translateX(-10%) } 50% { transform: translateX(10%) } 100% { transform: translateX(-10%) } }

.scn-charts-consulted {
  background: linear-gradient(180deg, #f5e6c8 0%, #d4b896 40%, #b8956a 100%), radial-gradient(ellipse at 70% 20%, #fff6e0 0%, transparent 60%);
}
.scn-charts-consulted .wall   { position:absolute; inset:60% 0 0 0; background:linear-gradient(180deg, #a08060 0%, #806040 100%); }
.scn-charts-consulted .table  { position:absolute; bottom:18%; left:10%; width:80%; height:22%; background:linear-gradient(180deg, #6a4a30 0%, #4a2a18 100%); border-radius:4px; box-shadow:0 -6px 20px rgba(0,0,0,.3); }
.scn-charts-consulted .chart  { position:absolute; bottom:24%; left:20%; width:50%; height:10%; background:linear-gradient(135deg, #f0e6d0 0%, #c8b89a 100%); border-radius:2px; transform:rotate(-5deg); box-shadow:0 2px 8px rgba(0,0,0,.2); animation:cc-chart 20s ease-in-out infinite alternate; }
.scn-charts-consulted .lamp   { position:absolute; bottom:38%; left:55%; width:12px; height:10px; background:radial-gradient(circle, #ffe680 0%, #d4a040 70%); border-radius:50%; box-shadow:0 0 30px 15px #d4a040, 0 0 60px 30px rgba(212,160,64,.4); animation:cc-glow 4s ease-in-out infinite alternate; }
.scn-charts-consulted .globe  { position:absolute; bottom:22%; left:15%; width:24px; height:24px; background:radial-gradient(circle at 30% 30%, #b0d0e0 0%, #4080b0 100%); border-radius:50%; box-shadow:-2px 2px 6px rgba(0,0,0,.4); animation:cc-spin 30s linear infinite; }
.scn-charts-consulted .hand   { position:absolute; bottom:26%; left:38%; width:16px; height:28px; background:linear-gradient(180deg, #8a6a4a 0%, #5a3a22 100%); border-radius:40% 40% 50% 50% / 30% 30% 50% 50%; transform-origin:bottom; animation:cc-hand 6s ease-in-out infinite; }
.scn-charts-consulted .shadow { position:absolute; bottom:16%; left:18%; width:60%; height:6%; background:linear-gradient(90deg, transparent, rgba(0,0,0,.2), transparent); border-radius:50%; filter:blur(4px); animation:cc-shadow 8s ease-in-out infinite; }
@keyframes cc-chart  { 0% { transform:rotate(-5deg) } 50% { transform:rotate(-2deg) } 100% { transform:rotate(-6deg) } }
@keyframes cc-glow   { 0% { box-shadow:0 0 20px 8px #d4a040, 0 0 40px 20px rgba(212,160,64,.3); opacity:.85 } 50% { box-shadow:0 0 40px 18px #ffe680, 0 0 80px 30px rgba(255,230,128,.5); opacity:1 } 100% { box-shadow:0 0 25px 12px #d4a040, 0 0 50px 25px rgba(212,160,64,.35); opacity:.9 } }
@keyframes cc-spin   { 0% { transform:rotate(0deg) } 50% { transform:rotate(180deg) } 100% { transform:rotate(360deg) } }
@keyframes cc-hand   { 0% { transform:translateX(0) rotate(-5deg) } 30% { transform:translateX(8px) rotate(0deg) } 60% { transform:translateX(4px) rotate(-3deg) } 100% { transform:translateX(0) rotate(-5deg) } }
@keyframes cc-shadow { 0% { opacity:.4; transform:scaleX(1) } 50% { opacity:.2; transform:scaleX(.8) } 100% { opacity:.4; transform:scaleX(1) } }

.scn-sea-boiling {
  background: linear-gradient(180deg, #7ab0d0 0%, #4a8db0 40%, #2070a0 100%), radial-gradient(ellipse at 60% 80%, #60b0d0 0%, transparent 70%);
}
.scn-sea-boiling .sky    { position:absolute; inset:0 0 65% 0; background:linear-gradient(180deg, #b0d8f0 0%, #80b8d8 100%); }
.scn-sea-boiling .sea    { position:absolute; bottom:0; left:0; right:0; height:65%; background:linear-gradient(0deg, #2070a0 0%, #3090b8 40%, #50a8c8 100%); }
.scn-sea-boiling .coral-a{ position:absolute; bottom:40%; left:15%; width:40px; height:35px; background:radial-gradient(circle at 40% 30%, #d08060 0%, #a05030 100%); border-radius:40% 60% 30% 70% / 50% 40% 60% 50%; transform:rotate(-10deg); box-shadow:0 4px 12px rgba(0,0,0,.3); animation:sb-coral 5s ease-in-out infinite alternate; }
.scn-sea-boiling .coral-b{ position:absolute; bottom:45%; right:20%; width:30px; height:28px; background:radial-gradient(circle at 60% 40%, #c08050 0%, #905030 100%); border-radius:60% 40% 50% 50% / 40% 60% 40% 60%; transform:rotate(15deg); box-shadow:0 3px 10px rgba(0,0,0,.3); animation:sb-coral 5s ease-in-out infinite alternate-reverse; }
.scn-sea-boiling .wave-1 { position:absolute; bottom:35%; left:-10%; width:120%; height:12%; background:linear-gradient(90deg, transparent, rgba(255,255,255,.4), transparent); border-radius:50%; filter:blur(6px); animation:sb-wave 3s ease-in-out infinite; }
.scn-sea-boiling .wave-2 { position:absolute; bottom:25%; left:-10%; width:120%; height:8%; background:linear-gradient(90deg, transparent, rgba(255,255,255,.3), transparent); border-radius:50%; filter:blur(4px); animation:sb-wave 2.5s ease-in-out infinite reverse; }
.scn-sea-boiling .foam   { position:absolute; bottom:60%; left:0; right:0; height:8%; background:linear-gradient(90deg, transparent 0%, rgba(255,255,255,.6) 20%, transparent 40%, rgba(255,255,255,.4) 60%, transparent 80%); filter:blur(3px); animation:sb-foam 4s linear infinite; }
@keyframes sb-coral { 0% { transform:rotate(-10deg) translateY(0) } 50% { transform:rotate(-5deg) translateY(-4px) } 100% { transform:rotate(-10deg) translateY(0) } }
@keyframes sb-wave  { 0% { transform:translateX(0) scaleY(1) } 50% { transform:translateX(20px) scaleY(1.2) } 100% { transform:translateX(0) scaleY(1) } }
@keyframes sb-foam  { 0% { background-position:0 0 } 50% { background-position:50% 0 } 100% { background-position:100% 0 } }

.scn-ned-worries {
  background: linear-gradient(180deg, #c0d8e8 0%, #90b8d0 40%, #6098b0 100%), radial-gradient(ellipse at 30% 50%, #f0e8d0 0%, transparent 60%);
}
.scn-ned-worries .backdrop { position:absolute; inset:0; background:linear-gradient(180deg, #b0c8d8 0%, #7090a8 100%); }
.scn-ned-worries .figure  { position:absolute; bottom:20%; left:30%; width:30px; height:60px; background:linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom; box-shadow:-4px 0 8px rgba(0,0,0,.3); animation:nw-figure 4s ease-in-out infinite; }
.scn-ned-worries .railing { position:absolute; bottom:28%; left:10%; width:80%; height:4px; background:linear-gradient(90deg, #4a3a2a 0%, #6a4a3a 50%, #4a3a2a 100%); border-radius:2px; box-shadow:0 2px 6px rgba(0,0,0,.4); }
.scn-ned-worries .coral   { position:absolute; bottom:40%; right:10%; width:50px; height:45px; background:radial-gradient(circle at 30% 40%, #c07050 0%, #904830 100%); border-radius:30% 70% 60% 40% / 40% 50% 50% 60%; transform:rotate(20deg); box-shadow:0 6px 14px rgba(0,0,0,.3); animation:nw-coral 3.5s ease-in-out infinite alternate; }
.scn-ned-worries .spray   { position:absolute; bottom:55%; right:25%; width:25px; height:40px; background:radial-gradient(circle at 50% 0%, rgba(255,255,255,.7) 0%, transparent 70%); border-radius:50%; filter:blur(4px); animation:nw-spray 2s ease-in-out infinite; }
.scn-ned-worries .shadow  { position:absolute; bottom:12%; left:25%; width:50px; height:12px; background:radial-gradient(ellipse, rgba(0,0,0,.25) 0%, transparent 70%); border-radius:50%; filter:blur(3px); animation:nw-shadow 4s ease-in-out infinite; }
@keyframes nw-figure { 0% { transform:translateX(0) rotate(0deg) } 25% { transform:translateX(4px) rotate(2deg) } 50% { transform:translateX(0) rotate(0deg) } 75% { transform:translateX(-4px) rotate(-2deg) } 100% { transform:translateX(0) rotate(0deg) } }
@keyframes nw-coral  { 0% { transform:rotate(20deg) scale(1) } 50% { transform:rotate(15deg) scale(1.05) } 100% { transform:rotate(20deg) scale(1) } }
@keyframes nw-spray  { 0% { opacity:.6; transform:translateY(0) scale(1) } 50% { opacity:1; transform:translateY(-8px) scale(1.2) } 100% { opacity:.6; transform:translateY(0) scale(1) } }
@keyframes nw-shadow { 0% { opacity:.3; transform:scaleX(1) } 50% { opacity:.5; transform:scaleX(1.2) } 100% { opacity:.3; transform:scaleX(1) } }

.scn-nautilus-glides-midway {
  background: linear-gradient(180deg, #a0c8e0 0%, #70a8c8 40%, #4080a8 100%), radial-gradient(ellipse at 50% 70%, #60b0d0 0%, transparent 60%);
}
.scn-nautilus-glides-midway .water-bg { position:absolute; inset:0; background:linear-gradient(180deg, #5090b0 0%, #2870a0 100%); }
.scn-nautilus-glides-midway .ship    { position:absolute; bottom:30%; left:50%; width:120px; height:30px; margin-left:-60px; background:linear-gradient(0deg, #3a3a4a 0%, #5a5a6a 50%, #4a4a5a 100%); border-radius:40% 40% 20% 20% / 60% 60% 40% 40%; box-shadow:0 4px 20px rgba(0,0,0,.5); animation:ngm-ship 10s ease-in-out infinite; }
.scn-nautilus-glides-midway .reef-left { position:absolute; bottom:35%; left:8%; width:45px; height:50px; background:radial-gradient(circle at 30% 20%, #d08060 0%, #a05030 100%); border-radius:40% 60% 30% 70% / 50% 40% 60% 50%; transform:rotate(-15deg); box-shadow:0 4px 12px rgba(0,0,0,.3); animation:ngm-reef 8s ease-in-out infinite alternate; }
.scn-nautilus-glides-midway .reef-right{ position:absolute; bottom:32%; right:10%; width:38px; height:42px; background:radial-gradient(circle at 60% 30%, #c08050 0%, #905030 100%); border-radius:60% 40% 50% 50% / 40% 60% 40% 60%; transform:rotate(10deg); box-shadow:0 3px 10px rgba(0,0,0,.3); animation:ngm-reef 8s ease-in-out infinite alternate-reverse; }
.scn-nautilus-glides-midway .wake    { position:absolute; bottom:28%; left:25%; width:50%; height:6px; background:linear-gradient(90deg, transparent, rgba(255,255,255,.5), transparent); border-radius:50%; filter:blur(3px); animation:ngm-wake 3s ease-in-out infinite; }
.scn-nautilus-glides-midway .rays    { position:absolute; top:10%; left:20%; width:60%; height:40%; background:radial-gradient(ellipse at 50% 0%, rgba(255,255,200,.15) 0%, transparent 70%); filter:blur(10px); animation:ngm-rays 20s ease-in-out infinite alternate; }
@keyframes ngm-ship { 0% { transform:translateX(-50%) translateY(0) } 50% { transform:translateX(-50%) translateY(-3px) } 100% { transform:translateX(-50%) translateY(0) } }
@keyframes ngm-reef { 0% { transform:rotate(-15deg) scale(1) } 50% { transform:rotate(-10deg) scale(1.04) } 100% { transform:rotate(-15deg) scale(1) } }
@keyframes ngm-wake { 0% { opacity:.3; transform:scaleX(.8) } 50% { opacity:.6; transform:scaleX(1.2) } 100% { opacity:.3; transform:scaleX(.8) } }
@keyframes ngm-rays { 0% { opacity:.2; transform:scaleY(1) } 50% { opacity:.4; transform:scaleY(1.1) } 100% { opacity:.2; transform:scaleY(1) } }

.scn-diagnosis { background: linear-gradient(180deg, #1a1a2c 0%, #2a2a3e 40%, #1a1a2c 100%), radial-gradient(ellipse at 50% 50%, #2a2a3e, transparent 80%); }
.scn-diagnosis .bg-wall { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2c 100%); }
.scn-diagnosis .bg-floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #0e0e14 0%, #1a1a2c 100%); }
.scn-diagnosis .bed { position:absolute; bottom:22%; left:50%; width:60%; height:20%; transform:translateX(-50%); background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius:8% 8% 4% 4%; box-shadow: inset 0 4px 10px rgba(0,0,0,.6); }
.scn-diagnosis .wounded-figure { position:absolute; bottom:22%; left:42%; width:12%; height:14%; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: diag-breath 4s ease-in-out infinite; }
.scn-diagnosis .captain-figure { position:absolute; bottom:25%; right:20%; width:8%; height:40%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:40% 40% 30% 30% / 80% 80% 30% 30%; box-shadow: inset 0 0 8px #0a0a1a; animation: diag-stand 8s ease-in-out infinite; }
.scn-diagnosis .lamp { position:absolute; top:15%; left:50%; width:6%; height:8%; background: radial-gradient(circle, #3a2a1a 0%, #1a120a 100%); border-radius:40% 40% 20% 20%; box-shadow: 0 0 16px 4px #1a120a; }
.scn-diagnosis .lamp-glow { position:absolute; top:10%; left:45%; width:20%; height:30%; background: radial-gradient(ellipse, rgba(200,160,80,.15) 0%, transparent 70%); animation: diag-glow 6s ease-in-out infinite alternate; }
@keyframes diag-breath { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(1); } }
@keyframes diag-stand { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes diag-glow { 0% { opacity:0.6; } 50% { opacity:0.9; } 100% { opacity:0.6; } }

.scn-deathbed { background: linear-gradient(180deg, #1a1a2e 0%, #2a1e2e 50%, #1a1a2e 100%), radial-gradient(ellipse at 50% 60%, #3a2a4a 0%, transparent 70%); }
.scn-deathbed .bg-dark { position:absolute; inset:0; background: linear-gradient(180deg, #0e0e1a 0%, #1a1a2e 100%); }
.scn-deathbed .pillow { position:absolute; bottom:25%; left:30%; width:40%; height:15%; background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%); border-radius:50% / 60% 60% 40% 40%; box-shadow: inset 0 -4px 8px rgba(0,0,0,.5); }
.scn-deathbed .head-silhouette { position:absolute; bottom:26%; left:40%; width:20%; height:18%; background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%); border-radius:50% 50% 40% 40% / 70% 70% 40% 40%; transform-origin: bottom center; animation: death-turn 12s ease-in-out infinite; }
.scn-deathbed .hand { position:absolute; bottom:22%; left:48%; width:4%; height:10%; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%; transform:rotate(20deg); animation: death-hand 8s ease-in-out infinite alternate; }
.scn-deathbed .light-beam { position:absolute; top:0; left:45%; width:10%; height:60%; background: linear-gradient(180deg, rgba(200,180,120,.12) 0%, transparent 100%); }
.scn-deathbed .light-halo { position:absolute; top:5%; left:40%; width:20%; height:30%; background: radial-gradient(ellipse, rgba(200,180,120,.08) 0%, transparent 70%); animation: death-halo 6s ease-in-out infinite alternate; }
.scn-deathbed .monitor-line { position:absolute; bottom:35%; left:30%; width:40%; height:2px; background: linear-gradient(90deg, transparent 0%, #4a5a4a 50%, transparent 100%); animation: death-line 3s ease-in-out infinite; }
@keyframes death-turn { 0% { transform: scaleX(1) translateY(0); } 50% { transform: scaleX(0.98) translateY(-2px); } 100% { transform: scaleX(1) translateY(0); } }
@keyframes death-hand { 0% { transform: rotate(15deg) translateY(0); } 50% { transform: rotate(25deg) translateY(-3px); } 100% { transform: rotate(15deg) translateY(0); } }
@keyframes death-halo { 0% { opacity:0.4; } 50% { opacity:0.8; } 100% { opacity:0.4; } }
@keyframes death-line { 0% { opacity:0.3; width:30%; left:35%; } 50% { opacity:1; width:40%; left:30%; } 100% { opacity:0.3; width:30%; left:35%; } }

.scn-sorrowful-night { background: linear-gradient(180deg, #0a0a14 0%, #14141e 50%, #0a0a14 100%), radial-gradient(ellipse at 50% 100%, #1a1a2a 0%, transparent 80%); }
.scn-sorrowful-night .bg-cabin { position:absolute; inset:0; background: linear-gradient(180deg, #0e0e18 0%, #1a1a2a 100%); box-shadow: inset 0 0 40px rgba(0,0,0,.6); }
.scn-sorrowful-night .porthole { position:absolute; top:10%; right:10%; width:20%; height:20%; border-radius:50%; background: radial-gradient(circle, #2a3a5a 0%, #1a1a2a 80%); border: 4px solid #2a2a3a; box-shadow: inset 0 0 20px rgba(0,30,60,.6); animation: sorrow-rock 12s ease-in-out infinite; }
.scn-sorrowful-night .sea-outside { position:absolute; top:10%; right:10%; width:20%; height:20%; border-radius:50%; background: linear-gradient(180deg, #0a2a3a 0%, #0a1a2a 100%); clip-path: inset(0 0 70% 0); animation: sorrow-sea 8s ease-in-out infinite alternate; }
.scn-sorrowful-night .chair { position:absolute; bottom:18%; left:15%; width:30%; height:25%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius:20% 20% 10% 10%; box-shadow: inset 0 4px 8px rgba(0,0,0,.5); }
.scn-sorrowful-night .sitting-figure { position:absolute; bottom:22%; left:25%; width:12%; height:30%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:50% 50% 30% 30% / 80% 80% 30% 30%; transform-origin: bottom center; animation: sorrow-slump 10s ease-in-out infinite; }
.scn-sorrowful-night .shadow-figure { position:absolute; bottom:22%; left:28%; width:20%; height:35%; background: radial-gradient(ellipse, rgba(0,0,0,.5) 0%, transparent 100%); filter: blur(6px); animation: sorrow-slide 15s ease-in-out infinite; }
.scn-sorrowful-night .lamp-faint { position:absolute; top:30%; left:10%; width:6%; height:12%; background: radial-gradient(circle, #2a3a4a 0%, #1a2a3a 100%); border-radius:30% 30% 20% 20%; box-shadow: 0 0 24px 8px rgba(30,50,80,.2); animation: sorrow-flicker 4s ease-in-out infinite alternate; }
@keyframes sorrow-rock { 0% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-2deg); } }
@keyframes sorrow-sea { 0% { transform: translateY(0); opacity:0.6; } 100% { transform: translateY(5px); opacity:1; } }
@keyframes sorrow-slump { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(3px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes sorrow-slide { 0% { transform: translateX(0); } 50% { transform: translateX(-8px); } 100% { transform: translateX(0); } }
@keyframes sorrow-flicker { 0% { opacity:0.4; } 50% { opacity:0.8; } 100% { opacity:0.4; } }

.scn-next-morning-invitation { background: linear-gradient(180deg, #87CEEB 0%, #b0d4f0 40%, #e0f0ff 100%), radial-gradient(ellipse at 80% 20%, #fff8e0 0%, transparent 60%); }
.scn-next-morning-invitation .sky-morning { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #b0d4f0 0%, #e0f0ff 100%); animation: sky-shift 20s ease-in-out infinite alternate; }
.scn-next-morning-invitation .sun { position:absolute; top:8%; right:15%; width:10%; height:10%; background: radial-gradient(circle, #fff8e0 0%, #ffe0a0 70%, transparent 100%); border-radius:50%; box-shadow: 0 0 60px 20px rgba(255,224,160,.3); animation: sun-pulse 6s ease-in-out infinite alternate; }
.scn-next-morning-invitation .sea-morning { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #3a7a9a 0%, #2a5a7a 50%, #1a3a5a 100%); }
.scn-next-morning-invitation .railing { position:absolute; bottom:38%; left:0; right:0; height:2%; background: linear-gradient(90deg, transparent 0%, #4a4a5a 20%, #4a4a5a 80%, transparent 100%); box-shadow: 0 2px 4px rgba(0,0,0,.3); }
.scn-next-morning-invitation .captain-nemo { position:absolute; bottom:22%; left:35%; width:6%; height:30%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:40% 40% 30% 30% / 80% 80% 30% 30%; transform-origin: bottom center; animation: captain-wave 10s ease-in-out infinite; }
.scn-next-morning-invitation .professor { position:absolute; bottom:22%; right:30%; width:5%; height:28%; background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%); border-radius:40% 40% 30% 30% / 80% 80% 30% 30%; transform-origin: bottom center; animation: professor-listen 12s ease-in-out infinite; }
.scn-next-morning-invitation .cloud-morning { position:absolute; top:15%; left:5%; width:30%; height:8%; background: linear-gradient(180deg, rgba(255,255,255,.6) 0%, rgba(255,255,255,.1) 100%); border-radius:50%; filter: blur(6px); animation: cloud-drift 40s linear infinite; }
.scn-next-morning-invitation .wake { position:absolute; bottom:20%; left:20%; width:60%; height:2%; background: linear-gradient(90deg, transparent 0%, rgba(255,255,255,.3) 50%, transparent 100%); animation: wake-sway 8s ease-in-out infinite; }
@keyframes sky-shift { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes sun-pulse { 0% { transform: scale(1); opacity:0.8; } 50% { transform: scale(1.05); opacity:1; } 100% { transform: scale(1); opacity:0.8; } }
@keyframes captain-wave { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes professor-listen { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes cloud-drift { 0% { transform: translateX(0); } 100% { transform: translateX(60vw); } }
@keyframes wake-sway { 0% { opacity:0.3; transform: scaleX(1); } 50% { opacity:0.6; transform: scaleX(1.02); } 100% { opacity:0.3; transform: scaleX(1); } }

/* stepping-ashore */
.scn-stepping-ashore {
  background: linear-gradient(180deg, #e8f0ff 0%, #b0c4de 40%, #87ceeb 70%, #5f9ea0 100%),
              radial-gradient(ellipse at 50% 0%, #fff8dc 0%, transparent 60%);
}
.scn-stepping-ashore .sky {
  position:absolute; inset:0; background: linear-gradient(180deg, #f0f8ff 0%, #b0e0e6 100%);
  animation: sa-sky 20s ease-in-out infinite alternate;
}
.scn-stepping-ashore .ocean {
  position:absolute; bottom:40%; left:0; right:0; height:25%;
  background: linear-gradient(180deg, #4682b4 0%, #4169e1 100%);
  border-radius: 40% 60% 0 0 / 30% 40% 0 0;
  animation: sa-ocean 12s ease-in-out infinite alternate;
}
.scn-stepping-ashore .sand {
  position:absolute; bottom:0; left:0; right:0; height:45%;
  background: linear-gradient(180deg, #f5deb3 0%, #d2b48c 100%);
  border-radius: 20% 20% 0 0;
  animation: sa-sand 8s ease-in-out infinite alternate;
}
.scn-stepping-ashore .footprint {
  position:absolute; bottom:20%; left:35%; width:30px; height:50px;
  background: #c2b280; border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform: rotate(-10deg);
  animation: sa-foot 6s ease-in-out infinite;
}
.scn-stepping-ashore .figure {
  position:absolute; bottom:15%; left:60%; width:20px; height:50px;
  background: linear-gradient(180deg, #2f4f4f 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sa-figure 10s ease-in-out infinite;
}
.scn-stepping-ashore .palm {
  position:absolute; bottom:5%; left:20%; width:12px; height:80px;
  background: linear-gradient(180deg, #8b4513 0%, #5c3317 100%);
  border-radius: 10% 10% 20% 20%;
  transform: rotate(5deg);
  animation: sa-palm 15s ease-in-out infinite alternate;
}
@keyframes sa-sky { 0% { opacity:1 } 50% { opacity:0.9 } 100% { opacity:1 } }
@keyframes sa-ocean { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-2px) scaleY(1.02) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes sa-sand { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes sa-foot { 0% { opacity:0.6; transform: translateX(0) rotate(-10deg) } 25% { opacity:0.8; transform: translateX(10px) rotate(-8deg) } 50% { opacity:0.9; transform: translateX(20px) rotate(-12deg) } 75% { opacity:0.7; transform: translateX(30px) rotate(-9deg) } 100% { opacity:0.6; transform: translateX(40px) rotate(-10deg) } }
@keyframes sa-figure { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(5px) rotate(-2deg) } 50% { transform: translateX(10px) rotate(0deg) } 75% { transform: translateX(15px) rotate(2deg) } 100% { transform: translateX(20px) rotate(0deg) } }
@keyframes sa-palm { 0% { transform: rotate(5deg) scaleY(1) } 50% { transform: rotate(3deg) scaleY(1.02) } 100% { transform: rotate(5deg) scaleY(1) } }

/* forest-description */
.scn-forest-description {
  background: linear-gradient(180deg, #a8d8ea 0%, #7ec8e3 40%, #3b5998 80%, #2c3e50 100%),
              radial-gradient(ellipse at 50% 0%, #fff8dc 0%, transparent 70%);
}
.scn-forest-description .bg-sky {
  position:absolute; inset:0; background: linear-gradient(180deg, #e0f7fa 0%, #81d4fa 100%);
  animation: fd-sky 20s ease-in-out infinite alternate;
}
.scn-forest-description .mid-canopy {
  position:absolute; top:10%; left:0; right:0; height:50%;
  background: linear-gradient(180deg, #004d40 0%, #00695c 50%, #00897b 100%);
  border-radius: 30% 70% 50% 50% / 40% 50% 40% 50%;
  filter: blur(2px);
  animation: fd-canopy 15s ease-in-out infinite alternate;
}
.scn-forest-description .ground {
  position:absolute; bottom:0; left:0; right:0; height:40%;
  background: linear-gradient(180deg, #5d4037 0%, #3e2723 100%);
  border-radius: 20% 20% 0 0;
  animation: fd-ground 10s ease-in-out infinite alternate;
}
.scn-forest-description .trunk-left {
  position:absolute; bottom:25%; left:15%; width:20px; height:60px;
  background: linear-gradient(180deg, #4e342e 0%, #2e1f18 100%);
  border-radius: 10% 10% 20% 20%;
  transform: rotate(-3deg);
  animation: fd-trunk 12s ease-in-out infinite alternate;
}
.scn-forest-description .trunk-right {
  position:absolute; bottom:30%; right:20%; width:25px; height:70px;
  background: linear-gradient(180deg, #5d4037 0%, #3e2723 100%);
  border-radius: 10% 10% 20% 20%;
  transform: rotate(4deg);
  animation: fd-trunk 14s ease-in-out infinite alternate-reverse;
}
.scn-forest-description .light-rays {
  position:absolute; top:0; left:30%; width:20px; height:100%;
  background: linear-gradient(180deg, rgba(255,255,200,0.3) 0%, transparent 100%);
  filter: blur(8px);
  animation: fd-rays 8s ease-in-out infinite alternate;
}
.scn-forest-description .rock {
  position:absolute; bottom:10%; left:60%; width:40px; height:20px;
  background: radial-gradient(circle at 30% 30%, #bdbdbd 0%, #616161 100%);
  border-radius: 30% 30% 20% 20%;
  transform: rotate(10deg);
  animation: fd-rock 18s ease-in-out infinite alternate;
}
@keyframes fd-sky { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes fd-canopy { 0% { transform: scale(1) translateY(0) } 50% { transform: scale(1.02) translateY(-5px) } 100% { transform: scale(1) translateY(0) } }
@keyframes fd-ground { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes fd-trunk { 0% { transform: rotate(-3deg) scaleY(1) } 50% { transform: rotate(-2deg) scaleY(1.02) } 100% { transform: rotate(-3deg) scaleY(1) } }
@keyframes fd-rays { 0% { opacity:0.3; transform: scale(1) } 50% { opacity:0.6; transform: scale(1.2) } 100% { opacity:0.3; transform: scale(1) } }
@keyframes fd-rock { 0% { transform: rotate(10deg) translateX(0) } 50% { transform: rotate(12deg) translateX(3px) } 100% { transform: rotate(10deg) translateX(0) } }

/* tree-species */
.scn-tree-species {
  background: linear-gradient(180deg, #c8e6c9 0%, #81c784 30%, #388e3c 60%, #1b5e20 100%),
              radial-gradient(ellipse at 50% 0%, #fff9c4 0%, transparent 50%);
}
.scn-tree-species .canopy-sky {
  position:absolute; inset:0; background: linear-gradient(180deg, #e8f5e9 0%, #a5d6a7 100%);
  animation: ts-sky 25s ease-in-out infinite alternate;
}
.scn-tree-species .banyan-trunk {
  position:absolute; bottom:30%; left:10%; width:40px; height:60px;
  background: linear-gradient(90deg, #5d4037 0%, #795548 50%, #5d4037 100%);
  border-radius: 10% 10% 20% 20%;
  transform: rotate(2deg);
  animation: ts-trunk 20s ease-in-out infinite alternate;
}
.scn-tree-species .hibiscus {
  position:absolute; top:20%; right:15%; width:30px; height:30px;
  background: radial-gradient(circle at 50% 50%, #ff7043 0%, #e64a19 100%);
  border-radius: 50%;
  filter: blur(1px);
  animation: ts-hibiscus 6s ease-in-out infinite alternate;
}
.scn-tree-species .screw-pine {
  position:absolute; bottom:40%; left:50%; width:15px; height:40px;
  background: linear-gradient(180deg, #4e342e 0%, #2e1f18 100%);
  border-radius: 20% 20% 30% 30%;
  transform: rotate(-5deg);
  animation: ts-pine 14s ease-in-out infinite alternate;
}
.scn-tree-species .undergrowth {
  position:absolute; bottom:20%; left:0; right:0; height:20%;
  background: linear-gradient(180deg, #00695c 0%, #004d40 100%);
  border-radius: 50% 50% 0 0 / 40% 40% 0 0;
  animation: ts-undergrow 10s ease-in-out infinite alternate;
}
.scn-tree-species .orchids {
  position:absolute; bottom:32%; left:30%; width:12px; height:12px;
  background: radial-gradient(circle at 50% 50%, #f8bbd0 0%, #f48fb1 100%);
  border-radius: 50%;
  box-shadow: 15px -5px 0 #f8bbd0, -10px 10px 0 #f48fb1;
  animation: ts-orchid 8s ease-in-out infinite alternate;
}
.scn-tree-species .fern {
  position:absolute; bottom:25%; left:65%; width:40px; height:15px;
  background: linear-gradient(90deg, #4caf50 0%, #2e7d32 100%);
  border-radius: 40% 40% 10% 10%;
  transform: rotate(-20deg);
  animation: ts-fern 12s ease-in-out infinite alternate;
}
@keyframes ts-sky { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes ts-trunk { 0% { transform: rotate(2deg) scaleY(1) } 50% { transform: rotate(3deg) scaleY(1.01) } 100% { transform: rotate(2deg) scaleY(1) } }
@keyframes ts-hibiscus { 0% { transform: scale(1) } 50% { transform: scale(1.1) } 100% { transform: scale(1) } }
@keyframes ts-pine { 0% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(-6deg) translateY(-2px) } 100% { transform: rotate(-5deg) translateY(0) } }
@keyframes ts-undergrow { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.05) } 100% { transform: scaleY(1) } }
@keyframes ts-orchid { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes ts-fern { 0% { transform: rotate(-20deg) scaleX(1) } 50% { transform: rotate(-18deg) scaleX(1.05) } 100% { transform: rotate(-20deg) scaleX(1) } }

/* ned-finds-coconuts */
.scn-ned-finds-coconuts {
  background: linear-gradient(180deg, #fff9c4 0%, #ffcc80 40%, #ffee58 70%, #fff 100%),
              radial-gradient(ellipse at 50% 100%, #fff176 0%, transparent 70%);
}
.scn-ned-finds-coconuts .sky-nc {
  position:absolute; inset:0; background: linear-gradient(180deg, #e1f5fe 0%, #b3e5fc 100%);
  animation: nc-sky 15s ease-in-out infinite alternate;
}
.scn-ned-finds-coconuts .palm-trunk {
  position:absolute; bottom:20%; left:50%; width:16px; height:70px;
  background: linear-gradient(180deg, #6d4c41 0%, #4e342e 100%);
  border-radius: 10% 10% 20% 20%;
  transform: translateX(-50%) rotate(2deg);
  animation: nc-trunk 4s ease-in-out infinite alternate;
}
.scn-ned-finds-coconuts .palm-leaves {
  position:absolute; top:10%; left:40%; width:80px; height:30px;
  background: linear-gradient(180deg, #558b2f 0%, #33691e 100%);
  border-radius: 50% 50% 30% 30%;
  filter: blur(2px);
  transform: rotate(-15deg);
  animation: nc-leaves 6s ease-in-out infinite alternate;
}
.scn-ned-finds-coconuts .ned-arm {
  position:absolute; bottom:40%; left:52%; width:8px; height:40px;
  background: linear-gradient(180deg, #5d4037 0%, #3e2723 100%);
  border-radius: 30% 30% 20% 20%;
  transform-origin: bottom center;
  animation: nc-arm 1.5s ease-in-out infinite;
}
.scn-ned-finds-coconuts .coconut-falling {
  position:absolute; top:50%; left:55%; width:20px; height:20px;
  background: radial-gradient(circle at 40% 40%, #8d6e63 0%, #5d4037 100%);
  border-radius: 50%;
  animation: nc-fall 2s ease-in infinite;
}
.scn-ned-finds-coconuts .coconut-split {
  position:absolute; bottom:18%; left:45%; width:30px; height:15px;
  background: linear-gradient(180deg, #a1887f 0%, #795548 100%);
  border-radius: 40% 40% 20% 20%;
  transform: rotate(10deg);
  animation: nc-split 3s ease-in-out infinite;
}
@keyframes nc-sky { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes nc-trunk { 0% { transform: translateX(-50%) rotate(2deg) } 50% { transform: translateX(-50%) rotate(0deg) } 100% { transform: translateX(-50%) rotate(-2deg) } }
@keyframes nc-leaves { 0% { transform: rotate(-15deg) scale(1) } 50% { transform: rotate(-10deg) scale(1.05) } 100% { transform: rotate(-15deg) scale(1) } }
@keyframes nc-arm { 0% { transform: rotate(0deg) translateY(0) } 25% { transform: rotate(30deg) translateY(-10px) } 50% { transform: rotate(0deg) translateY(0) } 75% { transform: rotate(-30deg) translateY(-10px) } 100% { transform: rotate(0deg) translateY(0) } }
@keyframes nc-fall { 0% { transform: translateY(0) rotate(0deg); opacity:0 } 10% { opacity:1 } 50% { transform: translateY(200px) rotate(180deg); opacity:1 } 100% { transform: translateY(400px) rotate(360deg); opacity:0 } }
@keyframes nc-split { 0% { transform: rotate(10deg) scale(1) } 50% { transform: rotate(15deg) scale(1.1) } 100% { transform: rotate(10deg) scale(1) } }

.scn-patient-in-need { background: linear-gradient(180deg, #f8f0e0 0%, #d8d0c0 50%, #b8b0a0 100%), radial-gradient(ellipse at 50% 100%, #e0d8c8 0%, transparent 60%); }
.scn-patient-in-need .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(90deg, #e8e0d0 0%, #f0e8d8 40%, #d8d0c0 100%); box-shadow: inset 0 0 30px rgba(0,0,0,.08); }
.scn-patient-in-need .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #c0b8a8 0%, #a8a090 100%); box-shadow: inset 0 8px 15px rgba(0,0,0,.15); }
.scn-patient-in-need .bed { position:absolute; bottom:22%; left:20%; width:60%; height:40%; background: linear-gradient(180deg, #b8a898 0%, #908070 100%); border-radius: 4px; box-shadow: 0 4px 12px rgba(0,0,0,.3); }
.scn-patient-in-need .patient { position:absolute; bottom:24%; left:25%; width:30%; height:35%; background: linear-gradient(180deg, #c8b8a8 0%, #a09080 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: inset 0 -8px 15px rgba(0,0,0,.2); transform-origin: bottom center; animation: pin-body 4s ease-in-out infinite alternate; }
.scn-patient-in-need .doctor-lamp { position:absolute; bottom:50%; left:60%; width:8%; height:12%; background: radial-gradient(circle at 50% 0%, #fff8e0 0%, #f0d8a0 50%, transparent 100%); border-radius: 50%; box-shadow: 0 0 30px 10px #f0d8a0, 0 0 60px 20px rgba(240,216,160,.4); animation: pin-lamp 6s ease-in-out infinite; }
.scn-patient-in-need .instrument { position:absolute; bottom:28%; left:70%; width:5%; height:15%; background: linear-gradient(180deg, #c0c0c0 0%, #909090 100%); border-radius: 2px; transform: rotate(10deg); box-shadow: 0 2px 6px rgba(0,0,0,.3); }
.scn-patient-in-need .shadow-figure { position:absolute; bottom:0; left:10%; width:20%; height:45%; background: linear-gradient(180deg, rgba(80,70,60,0.9) 0%, rgba(40,35,30,0.7) 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; opacity: .5; animation: pin-shadow 8s ease-in-out infinite alternate; }
@keyframes pin-body { 0% { transform: translateY(0); opacity:.9 } 50% { transform: translateY(-2px); opacity:1 } 100% { transform: translateY(0); opacity:.95 } }
@keyframes pin-lamp { 0% { box-shadow: 0 0 20px 5px #f0d8a0, 0 0 40px 10px rgba(240,216,160,.3); opacity:.85 } 50% { box-shadow: 0 0 35px 12px #fff0c0, 0 0 70px 20px rgba(255,240,192,.5); opacity:1 } 100% { box-shadow: 0 0 25px 8px #f0d8a0, 0 0 50px 15px rgba(240,216,160,.35); opacity:.9 } }
@keyframes pin-shadow { 0% { transform: scaleX(1) translateX(0); opacity:.4 } 50% { transform: scaleX(1.05) translateX(3px); opacity:.6 } 100% { transform: scaleX(1) translateX(0); opacity:.45 } }

.scn-wounded-man { background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 40%, #3a2a2e 80%), radial-gradient(ellipse at 50% 0%, #2a2a3e 0%, transparent 70%); }
.scn-wounded-man .cabin-wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%); box-shadow: inset 0 0 40px rgba(0,0,0,.5); }
.scn-wounded-man .cot { position:absolute; bottom:20%; left:15%; width:70%; height:45%; background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%); border-radius: 6px; box-shadow: 0 4px 12px rgba(0,0,0,.6); }
.scn-wounded-man .wounded { position:absolute; bottom:22%; left:25%; width:30%; height:35%; background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: inset 0 -6px 12px rgba(0,0,0,.4); animation: wm-breath 3s ease-in-out infinite alternate; }
.scn-wounded-man .bandage { position:absolute; bottom:28%; left:30%; width:10%; height:6%; background: linear-gradient(180deg, #b8a898 0%, #908070 100%); border-radius: 4px 4px 2px 2px; box-shadow: 0 2px 6px rgba(0,0,0,.2); transform: rotate(-5deg); animation: wm-band 6s ease-in-out infinite alternate; }
.scn-wounded-man .dim-lantern { position:absolute; bottom:45%; left:65%; width:5%; height:8%; background: radial-gradient(circle at 50% 50%, #d4a060 0%, #a07030 50%, transparent 100%); border-radius: 50%; box-shadow: 0 0 20px 6px #a07030, 0 0 40px 12px rgba(160,112,48,.3); animation: wm-lantern 8s ease-in-out infinite; }
.scn-wounded-man .sailor-shadow { position:absolute; bottom:0; left:60%; width:25%; height:50%; background: linear-gradient(180deg, rgba(20,15,15,0.9) 0%, rgba(10,8,8,0.6) 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; opacity: .7; animation: wm-shadow 10s ease-in-out infinite alternate; }
.scn-wounded-man .spatter { position:absolute; bottom:25%; left:35%; width:8%; height:4%; background: #6a1a1a; border-radius: 50% 70% 40% 60% / 60% 40% 60% 40%; opacity: .6; animation: none; }
@keyframes wm-breath { 0% { transform: scale(1) translateY(0); } 50% { transform: scale(1.02) translateY(-2px); } 100% { transform: scale(1) translateY(0); } }
@keyframes wm-band { 0% { transform: rotate(-5deg) translateY(0); opacity:.6 } 50% { transform: rotate(-2deg) translateY(2px); opacity:.8 } 100% { transform: rotate(-5deg) translateY(0); opacity:.65 } }
@keyframes wm-lantern { 0% { opacity:.7; transform: scale(1) rotate(-3deg) } 50% { opacity:1; transform: scale(1.1) rotate(3deg) } 100% { opacity:.75; transform: scale(1) rotate(-3deg) } }
@keyframes wm-shadow { 0% { transform: translateX(0) scaleX(1); opacity:.5 } 50% { transform: translateX(5px) scaleX(1.05); opacity:.8 } 100% { transform: translateX(0) scaleX(1); opacity:.55 } }

.scn-fatal-wound { background: linear-gradient(180deg, #0d0d1a 0%, #1a1a2e 40%, #2a1a1e 80%), radial-gradient(ellipse at 50% 30%, #2a1a1e 0%, transparent 60%); }
.scn-fatal-wound .bg-deep { position:absolute; inset:0; background: linear-gradient(180deg, #0d0d1a 0%, #1a1a2e 100%); opacity:.8; }
.scn-fatal-wound .head-pillow { position:absolute; bottom:20%; left:30%; width:40%; height:20%; background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%); border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%; box-shadow: 0 4px 15px rgba(0,0,0,.5); }
.scn-fatal-wound .patient-face { position:absolute; bottom:25%; left:32%; width:36%; height:25%; background: linear-gradient(180deg, #3a2a2e 0%, #1a1a1e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: inset 0 -8px 20px rgba(0,0,0,.6); animation: fw-face 4s ease-in-out infinite alternate; }
.scn-fatal-wound .blood-stain { position:absolute; bottom:22%; left:38%; width:15%; height:8%; background: radial-gradient(ellipse at 50% 50%, #6a1a1a 0%, #3a0a0a 60%, transparent 100%); border-radius: 50%; opacity: .7; animation: fw-blood 8s ease-in-out infinite alternate; }
.scn-fatal-wound .cold-cloth { position:absolute; bottom:30%; left:35%; width:12%; height:6%; background: linear-gradient(180deg, #c8c0b8 0%, #908880 100%); border-radius: 4px; transform: rotate(5deg); box-shadow: 0 2px 6px rgba(0,0,0,.4); animation: fw-cloth 6s ease-in-out infinite; }
.scn-fatal-wound .vital-sign { position:absolute; bottom:35%; left:40%; width:4%; height:20%; background: linear-gradient(180deg, #4040a0 0%, #202060 100%); border-radius: 2px; transform-origin: bottom center; animation: fw-vital 2s ease-in-out infinite; }
.scn-fatal-wound .dark-flame { position:absolute; bottom:42%; left:55%; width:3%; height:8%; background: radial-gradient(circle at 50% 100%, #804020 0%, transparent 100%); border-radius: 50%; box-shadow: 0 0 15px 3px #804020; animation: fw-flame 3s ease-in-out infinite alternate; }
.scn-fatal-wound .shadow-curtain { position:absolute; inset:0; background: linear-gradient(0deg, rgba(0,0,0,0.6) 0%, transparent 50%); pointer-events: none; }
@keyframes fw-face { 0% { transform: scale(1) rotate(0deg); opacity:.8 } 50% { transform: scale(1.02) rotate(2deg); opacity:1 } 100% { transform: scale(1) rotate(0deg); opacity:.85 } }
@keyframes fw-blood { 0% { opacity:.5; transform: scale(1) } 50% { opacity:.8; transform: scale(1.1) } 100% { opacity:.55; transform: scale(1) } }
@keyframes fw-cloth { 0% { transform: rotate(3deg) translateY(0) } 50% { transform: rotate(5deg) translateY(-3px) } 100% { transform: rotate(3deg) translateY(0) } }
@keyframes fw-vital { 0% { transform: scaleY(0.8); opacity:.6 } 50% { transform: scaleY(1.2); opacity:1 } 100% { transform: scaleY(0.8); opacity:.65 } }
@keyframes fw-flame { 0% { transform: scaleY(0.8) scaleX(0.8); opacity:.5 } 50% { transform: scaleY(1.3) scaleX(1.1); opacity:.9 } 100% { transform: scaleY(0.9) scaleX(0.9); opacity:.55 } }

.scn-how-wound-received { background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 30%, #1a1a2e 70%), radial-gradient(ellipse at 50% 50%, #2a2a3e 0%, transparent 70%); }
.scn-how-wound-received .engine-room { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #0d0d1a 0%, #1a1a2e 40%, #2a2a3e 100%); box-shadow: inset 0 0 40px rgba(0,0,0,.6); }
.scn-how-wound-received .lever { position:absolute; bottom:25%; left:45%; width:6%; height:40%; background: linear-gradient(180deg, #606060 0%, #303030 100%); border-radius: 3px; transform-origin: bottom center; animation: hwr-lever 5s ease-in-out infinite; box-shadow: 0 4px 10px rgba(0,0,0,.5); }
.scn-how-wound-received .figure-leap { position:absolute; bottom:20%; left:30%; width:20%; height:35%; background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hwr-leap 4s ease-in-out infinite; box-shadow: inset 0 -6px 12px rgba(0,0,0,.4); }
.scn-how-wound-received .collision-spark { position:absolute; bottom:35%; left:50%; width:4%; height:4%; background: radial-gradient(circle, #ffc080 0%, #ff8020 50%, transparent 100%); border-radius: 50%; box-shadow: 0 0 15px 3px #ff8020; animation: hwr-spark 1.5s ease-in-out infinite; }
.scn-how-wound-received .shadow-chief { position:absolute; bottom:10%; left:55%; width:18%; height:40%; background: linear-gradient(180deg, rgba(30,25,25,0.9) 0%, rgba(10,8,8,0.6) 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; animation: hwr-chief 8s ease-in-out infinite alternate; }
.scn-how-wound-received .metal-debris { position:absolute; bottom:30%; left:25%; width:5%; height:10%; background: linear-gradient(180deg, #606060 0%, #404040 100%); border-radius: 2px; transform: rotate(45deg); box-shadow: 0 2px 6px rgba(0,0,0,.3); animation: hwr-debris 7s ease-in-out infinite; }
.scn-how-wound-received .cracked-hull { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #1a1a2e 0%, #0d0d1a 100%); box-shadow: inset 0 10px 20px rgba(0,0,0,.6); border-radius: 40% 60% 0 0 / 80% 60% 0 0; }
@keyframes hwr-lever { 0% { transform: rotate(0deg) scaleY(1); } 50% { transform: rotate(15deg) scaleY(1.1); } 100% { transform: rotate(0deg) scaleY(1); } }
@keyframes hwr-leap { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(20px) rotate(-5deg); } 50% { transform: translateX(40px) rotate(0deg); } 75% { transform: translateX(20px) rotate(5deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes hwr-spark { 0% { opacity:.3; transform: scale(0.5); } 50% { opacity:1; transform: scale(1.5); } 100% { opacity:.4; transform: scale(0.6); } }
@keyframes hwr-chief { 0% { transform: translateX(0) scaleX(1); opacity:.5 } 50% { transform: translateX(5px) scaleX(1.05); opacity:.8 } 100% { transform: translateX(0) scaleX(1); opacity:.55 } }
@keyframes hwr-debris { 0% { transform: rotate(45deg) translateY(0); opacity:.6 } 50% { transform: rotate(55deg) translateY(-10px); opacity:.9 } 100% { transform: rotate(45deg) translateY(0); opacity:.65 } }

.scn-excellent-dinner {
  background: 
    radial-gradient(ellipse at 50% 60%, #3a1a0a 0%, #1a0800 70%, #0a0200 100%),
    linear-gradient(180deg, #2b1a0e 0%, #4a2a14 30%, #1a0a04 100%);
}
.scn-excellent-dinner .tent-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #5a3a1e 0%, #2a1a0a 50%, #1a0a00 100%);
  opacity: 0.8;
  animation: ed-tent 12s ease-in-out infinite alternate;
}
.scn-excellent-dinner .table {
  position: absolute; bottom: 25%; left: 10%; right: 10%; height: 8%;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a14 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 -4px 12px rgba(255,120,30,0.3);
}
.scn-excellent-dinner .plate-1, .scn-excellent-dinner .plate-2 {
  position: absolute; bottom: 34%; width: 14%; height: 5%;
  border-radius: 50%;
  background: radial-gradient(circle at 50% 40%, #d4a060 0%, #b08030 60%, #8a6020 100%);
  box-shadow: 0 3px 8px rgba(0,0,0,0.6), inset 0 -2px 4px rgba(0,0,0,0.4);
}
.scn-excellent-dinner .plate-1 { left: 22%; animation: ed-plate1 6s ease-in-out infinite; }
.scn-excellent-dinner .plate-2 { left: 60%; animation: ed-plate2 7s ease-in-out infinite 1s; }
.scn-excellent-dinner .fire {
  position: absolute; bottom: 32%; left: 48%; width: 8%; height: 18%;
  background: radial-gradient(ellipse at 50% 100%, #ff8000 0%, #cc4400 40%, transparent 70%);
  border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%;
  filter: blur(4px);
  animation: ed-fire 2s ease-in-out infinite alternate;
}
.scn-excellent-dinner .glow {
  position: absolute; bottom: 28%; left: 40%; right: 40%; height: 40%;
  background: radial-gradient(ellipse at 50% 100%, rgba(255,150,0,0.4) 0%, transparent 70%);
  animation: ed-glow 4s ease-in-out infinite alternate;
}
.scn-excellent-dinner .figure-1, .scn-excellent-dinner .figure-2 {
  position: absolute; bottom: 28%; width: 8%; height: 18%;
  background: linear-gradient(180deg, #2a1a10 0%, #1a0a04 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
}
.scn-excellent-dinner .figure-1 { left: 15%; animation: ed-fig1 5s ease-in-out infinite; }
.scn-excellent-dinner .figure-2 { left: 72%; animation: ed-fig2 5.5s ease-in-out infinite 0.5s; }

@keyframes ed-tent { 0% { opacity: 0.75; } 50% { opacity: 0.85; } 100% { opacity: 0.7; } }
@keyframes ed-plate1 { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(1px); } }
@keyframes ed-plate2 { 0% { transform: translateY(1px); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes ed-fire { 0% { transform: scale(1, 1); opacity: 0.9; } 100% { transform: scale(1.15, 1.3); opacity: 1; } }
@keyframes ed-glow { 0% { opacity: 0.4; filter: blur(8px); } 50% { opacity: 0.7; filter: blur(6px); } 100% { opacity: 0.5; filter: blur(10px); } }
@keyframes ed-fig1 { 0% { transform: translateX(0) rotate(-1deg); } 50% { transform: translateX(3px) rotate(1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes ed-fig2 { 0% { transform: translateX(0) rotate(1deg); } 50% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0); } }

/* ---------- stone-thrown ---------- */
.scn-stone-thrown {
  background: 
    radial-gradient(ellipse at 50% 80%, #1a0a00 0%, #2a1408 50%, #0a0200 100%),
    linear-gradient(180deg, #3a1a0a 0%, #1a0800 60%, #050200 100%);
}
.scn-stone-thrown .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #1a0a00 0%, #3a1a0a 50%, transparent 100%);
  animation: st-sky 15s ease-in-out infinite alternate;
}
.scn-stone-thrown .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #2e1a0a 0%, #1a0a00 100%);
  border-radius: 30% 70% 0 0 / 60% 80% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.7);
}
.scn-stone-thrown .figure-silhouette {
  position: absolute; bottom: 35%; left: 30%; width: 12%; height: 22%;
  background: linear-gradient(180deg, #0a0400 0%, #000000 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: st-fig 3.5s ease-in-out infinite;
}
.scn-stone-thrown .stone {
  position: absolute; bottom: 55%; left: 60%; width: 4%; height: 4%;
  background: radial-gradient(circle, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 40% 60% 50% 50%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
  animation: st-stone 2s linear infinite;
}
.scn-stone-thrown .arm {
  position: absolute; bottom: 45%; left: 50%; width: 15%; height: 4%;
  background: linear-gradient(90deg, #1a0a00 0%, #0a0400 100%);
  border-radius: 0 80% 80% 0;
  transform-origin: left center;
  animation: st-arm 1.8s ease-in-out infinite;
}
.scn-stone-thrown .shadow {
  position: absolute; bottom: 30%; left: 35%; width: 20%; height: 3%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 70%);
  animation: st-shadow 3s ease-in-out infinite;
}
.scn-stone-thrown .dust {
  position: absolute; bottom: 32%; left: 62%; width: 8%; height: 6%;
  background: radial-gradient(ellipse, rgba(200,150,100,0.3) 0%, transparent 70%);
  filter: blur(6px);
  animation: st-dust 2.5s ease-out infinite;
}

@keyframes st-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes st-fig { 0% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(-8px) rotate(2deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes st-stone { 0% { transform: translate(0, 0) rotate(0deg); } 50% { transform: translate(15px, -10px) rotate(90deg); } 100% { transform: translate(30px, -20px) rotate(180deg); opacity: 0; } }
@keyframes st-arm { 0% { transform: rotate(0deg); } 50% { transform: rotate(-40deg); } 100% { transform: rotate(0deg); } }
@keyframes st-shadow { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.2); } 100% { transform: scaleX(1); } }
@keyframes st-dust { 0% { opacity: 0.5; transform: scale(0.5); } 100% { opacity: 0; transform: scale(2.5); } }

/* ---------- saved-by-stone ---------- */
.scn-saved-by-stone {
  background: 
    radial-gradient(ellipse at 20% 60%, #2a1a0a 0%, #1a0a00 60%, #050200 100%),
    linear-gradient(180deg, #2a1408 0%, #1a0800 50%, #0a0200 100%);
}
.scn-saved-by-stone .bg-forest {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #2e1a0a 0%, #1a0800 100%);
  background-size: 100% 100%;
  animation: sb-forest 20s ease-in-out infinite alternate;
}
.scn-saved-by-stone .ground-dirt {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: radial-gradient(ellipse at 50% 0%, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 60% 40% 0 0 / 80% 60% 0 0;
}
.scn-saved-by-stone .figure-saved {
  position: absolute; bottom: 28%; left: 35%; width: 10%; height: 20%;
  background: linear-gradient(180deg, #1a0a04 0%, #0a0400 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sb-fig 4s ease-in-out infinite;
}
.scn-saved-by-stone .stone-meteor {
  position: absolute; top: 10%; left: 20%; width: 6%; height: 6%;
  background: radial-gradient(circle, #8a6a4a 0%, #4a2a1a 100%);
  border-radius: 50%;
  box-shadow: 0 0 12px 6px rgba(200,150,100,0.4);
  animation: sb-stone1 3s linear infinite;
}
.scn-saved-by-stone .stone-ground {
  position: absolute; bottom: 36%; left: 50%; width: 5%; height: 4%;
  background: radial-gradient(circle, #7a5a3a 0%, #3a2a1a 100%);
  border-radius: 40% 60% 50% 50%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
  animation: sb-stone2 2s ease-in-out infinite alternate;
}
.scn-saved-by-stone .fire-haze {
  position: absolute; bottom: 20%; left: 5%; right: 5%; height: 20%;
  background: radial-gradient(ellipse at 50% 100%, rgba(255,180,80,0.15) 0%, transparent 70%);
  filter: blur(12px);
  animation: sb-haze 5s ease-in-out infinite alternate;
}
.scn-saved-by-stone .hand-gesture {
  position: absolute; bottom: 42%; left: 32%; width: 12%; height: 6%;
  background: linear-gradient(180deg, #1a0a04 0%, #0a0400 100%);
  border-radius: 0 80% 80% 0;
  transform-origin: left bottom;
  animation: sb-hand 1.5s ease-in-out infinite;
}

@keyframes sb-forest { 0% { opacity: 0.8; } 50% { opacity: 0.9; } 100% { opacity: 0.7; } }
@keyframes sb-fig { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(5px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes sb-stone1 { 0% { transform: translate(0, 0) rotate(0deg); opacity: 0; } 20% { opacity: 1; } 80% { opacity: 1; } 100% { transform: translate(-40px, 300px) rotate(360deg); opacity: 0; } }
@keyframes sb-stone2 { 0% { transform: translateX(0) rotate(0deg); } 100% { transform: translateX(5px) rotate(10deg); } }
@keyframes sb-haze { 0% { opacity: 0.3; filter: blur(10px); } 100% { opacity: 0.6; filter: blur(15px); } }
@keyframes sb-hand { 0% { transform: rotate(-30deg); } 50% { transform: rotate(0deg); } 100% { transform: rotate(-30deg); } }

/* ---------- apes-or-savages ---------- */
.scn-apes-or-savages {
  background: 
    radial-gradient(ellipse at 50% 70%, #1a0a00 0%, #2a1408 50%, #050200 100%),
    linear-gradient(180deg, #1a0800 0%, #2a1a0a 40%, #0a0200 100%);
}
.scn-apes-or-savages .jungle-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #0e0600 0%, #1e0e04 60%, #0a0400 100%);
  opacity: 0.9;
  animation: as-jungle 30s ease-in-out infinite alternate;
}
.scn-apes-or-savages .skiff {
  position: absolute; bottom: 15%; left: 10%; width: 30%; height: 12%;
  background: linear-gradient(180deg, #4a2a14 0%, #2a1a0a 100%);
  border-radius: 10% 10% 40% 40%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.7);
  transform: rotate(-5deg);
  animation: as-skiff 4s ease-in-out infinite;
}
.scn-apes-or-savages .figure-ned {
  position: absolute; bottom: 25%; left: 15%; width: 8%; height: 16%;
  background: linear-gradient(180deg, #0a0400 0%, #000000 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: as-ned 3s ease-in-out infinite;
}
.scn-apes-or-savages .figure-conseil {
  position: absolute; bottom: 26%; left: 25%; width: 8%; height: 15%;
  background: linear-gradient(180deg, #0a0400 0%, #000000 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: as-conseil 3.5s ease-in-out infinite 0.5s;
}
.scn-apes-or-savages .savage-1, .scn-apes-or-savages .savage-2, .scn-apes-or-savages .savage-3 {
  position: absolute; bottom: 30%; width: 8%; height: 28%;
  background: radial-gradient(ellipse at 50% 30%, #2a1a0a 0%, #0a0400 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-apes-or-savages .savage-1 { left: 55%; animation: as-savage1 2s ease-in-out infinite; }
.scn-apes-or-savages .savage-2 { left: 65%; animation: as-savage2 2.5s ease-in-out infinite 0.3s; }
.scn-apes-or-savages .savage-3 { left: 75%; animation: as-savage3 3s ease-in-out infinite 0.6s; }

@keyframes as-jungle { 0% { opacity: 0.8; } 50% { opacity: 0.9; } 100% { opacity: 0.7; } }
@keyframes as-skiff { 0% { transform: rotate(-5deg) translateX(0); } 50% { transform: rotate(-3deg) translateX(-2px); } 100% { transform: rotate(-5deg) translateX(0); } }
@keyframes as-ned { 0% { transform: translateX(0) rotate(-1deg); } 50% { transform: translateX(3px) rotate(1deg); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes as-conseil { 0% { transform: translateX(0) rotate(1deg); } 50% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(1deg); } }
@keyframes as-savage1 { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-3px) scaleX(1.05); } 100% { transform: translateY(0) scaleX(1); } }
@keyframes as-savage2 { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-2px) scaleX(0.95); } 100% { transform: translateY(0) scaleX(1); } }
@keyframes as-savage3 { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-4px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }

.scn-hunt-on {
  background:
    linear-gradient(180deg, #7ab3e8 0%, #f2d98a 50%, #c9a04a 100%),
    radial-gradient(ellipse at 50% 20%, #fff5cc 0%, transparent 60%);
}
.scn-hunt-on .sky-hu     { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #8ac6f0 0%, transparent 100%); animation: hu-sky 6s ease-in-out infinite alternate; }
.scn-hunt-on .sun-hu     { position:absolute; top:4%; left:60%; width:50px; height:50px; background: radial-gradient(circle, #ffe680 0%, #ffb84d 50%, transparent 100%); border-radius:50%; box-shadow: 0 0 80px 20px rgba(255,200,80,.4); animation: hu-sun 3s ease-in-out infinite alternate; }
.scn-hunt-on .hill-hu    { position:absolute; bottom:30%; left:0; right:0; height:20%; background: linear-gradient(180deg, #7a9a4a 0%, #3a5a2a 100%); border-radius: 40% 60% 0 0 / 70% 80% 0 0; box-shadow: inset 0 6px 12px rgba(0,0,0,.3); }
.scn-hunt-on .bush-hu    { position:absolute; bottom:25%; left:15%; width:60px; height:40px; background: radial-gradient(ellipse at 50% 100%, #5a7a3a 0%, #2a4a1a 100%); border-radius:50%; transform:scaleX(1.3); animation: hu-bush 5s ease-in-out infinite; }
.scn-hunt-on .tree-hu    { position:absolute; bottom:30%; right:20%; width:30px; height:90px; background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%); border-radius: 10% 10% 5% 5% / 20% 20% 5% 5%; box-shadow: 0 4px 8px rgba(0,0,0,.4); }
.scn-hunt-on .man-hu     { position:absolute; bottom:24%; left:30%; width:20px; height:40px; background: #2a1a0a; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hu-run 0.6s steps(2) infinite; }
.scn-hunt-on .rabbit-hu  { position:absolute; bottom:24%; left:70%; width:16px; height:20px; background: #5a3a2a; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hu-hop 0.8s steps(2) infinite, hu-move 4s linear infinite; }
.scn-hunt-on .dust-hu    { position:absolute; bottom:24%; left:32%; width:30px; height:10px; background: rgba(200,170,120,.2); border-radius:50%; filter:blur(4px); animation: hu-dust 1s ease-out infinite; }
@keyframes hu-sky   { 0%,100% { opacity:.9 } 50% { opacity:1 } }
@keyframes hu-sun   { 0% { transform:scale(.9) } 50% { transform:scale(1.1) } 100% { transform:scale(.95) } }
@keyframes hu-bush  { 0%,100% { transform:scaleX(1.3) rotate(-2deg) } 50% { transform:scaleX(1.35) rotate(2deg) } }
@keyframes hu-run   { 0% { transform:translateX(0) rotate(-5deg) } 100% { transform:translateX(4px) rotate(5deg) } }
@keyframes hu-hop   { 0% { transform:translateY(0) scaleY(1) } 50% { transform:translateY(-4px) scaleY(.8) } 100% { transform:translateY(0) scaleY(1) } }
@keyframes hu-move  { 0% { left:70% } 100% { left:20% } }
@keyframes hu-dust  { 0% { opacity:1; transform:translateY(0) scale(1) } 100% { opacity:0; transform:translateY(-10px) scale(2) } }

.scn-breadfruit-discovery {
  background:
    linear-gradient(180deg, #87ceeb 0%, #e0f0d0 40%, #f4d03f 80%, #f5b041 100%),
    radial-gradient(ellipse at 50% 10%, #fff5e6 0%, transparent 50%);
}
.scn-breadfruit-discovery .sky-bfd   { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #bbe2f0 0%, transparent 100%); animation: bfd-sky 12s ease-in-out infinite alternate; }
.scn-breadfruit-discovery .sea-bfd   { position:absolute; bottom:18%; left:0; right:0; height:25%; background: linear-gradient(180deg, #2980b9 0%, #1a4d6e 100%); border-radius: 50% 50% 0 0 / 30% 30% 0 0; box-shadow: inset 0 -8px 20px rgba(0,0,0,.3); animation: bfd-sea 8s ease-in-out infinite alternate; }
.scn-breadfruit-discovery .sand-bfd  { position:absolute; bottom:10%; left:0; right:0; height:20%; background: linear-gradient(180deg, #f7dc6f 0%, #d4ac0d 100%); border-radius: 20% 30% 0 0; }
.scn-breadfruit-discovery .trunk-bfd { position:absolute; bottom:25%; left:50%; width:30px; height:100px; background: linear-gradient(180deg, #6a4e2a 0%, #3a2a1a 100%); border-radius: 8% 8% 4% 4%; transform:translateX(-50%); box-shadow: 0 4px 8px rgba(0,0,0,.4); animation: bfd-trunk 6s ease-in-out infinite; }
.scn-breadfruit-discovery .crown-bfd { position:absolute; bottom:45%; left:50%; width:120px; height:70px; background: radial-gradient(ellipse at 50% 60%, #5a8a3a 0%, #2a5a1a 70%, transparent 100%); border-radius:50%; transform:translateX(-50%); filter:blur(3px); animation: bfd-crown 5s ease-in-out infinite alternate; }
.scn-breadfruit-discovery .fruit-bfd { position:absolute; bottom:35%; left:58%; width:18px; height:22px; background: radial-gradient(circle, #f5b041 0%, #a06720 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; box-shadow: 0 2px 6px rgba(0,0,0,.3); animation: bfd-fruit 3s ease-in-out infinite alternate; }
.scn-breadfruit-discovery .ray-bfd   { position:absolute; top:10%; left:40%; width:80px; height:100px; background: linear-gradient(180deg, rgba(255,255,200,.4) 0%, transparent 100%); filter:blur(12px); animation: bfd-ray 8s ease-in-out infinite alternate; }
@keyframes bfd-sky   { 0%,100% { opacity:.85 } 50% { opacity:1 } }
@keyframes bfd-sea   { 0% { transform:translateX(-2px) } 50% { transform:translateX(2px) } 100% { transform:translateX(-2px) } }
@keyframes bfd-trunk { 0%,100% { transform:translateX(-50%) rotate(-1deg) } 50% { transform:translateX(-50%) rotate(1deg) } }
@keyframes bfd-crown { 0% { transform:translateX(-50%) scaleX(.95) } 100% { transform:translateX(-50%) scaleX(1.05) } }
@keyframes bfd-fruit { 0% { transform:translateY(0) scale(1) } 100% { transform:translateY(-3px) scale(1.05) } }
@keyframes bfd-ray   { 0% { opacity:.3; transform:rotate(-5deg) } 100% { opacity:.7; transform:rotate(5deg) } }

.scn-breadfruit-description {
  background:
    linear-gradient(180deg, #8fc9e8 0%, #d6e8c0 40%, #e8d8a0 80%, #b8a070 100%),
    radial-gradient(ellipse at 50% 50%, #f0e8d0 0%, transparent 60%);
}
.scn-breadfruit-description .bg-bfd2  { position:absolute; inset:0; background: linear-gradient(180deg, rgba(60,90,40,.3) 0%, transparent 100%); }
.scn-breadfruit-description .trunk-bfd2 { position:absolute; bottom:20%; left:50%; width:40px; height:160px; background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%); border-radius: 10% 10% 5% 5% / 20% 20% 5% 5%; transform:translateX(-50%); box-shadow: inset -4px 0 8px rgba(0,0,0,.3), 2px 0 6px rgba(0,0,0,.2); animation: bfd2-trunk 7s ease-in-out infinite alternate; }
.scn-breadfruit-description .crown-bfd2 { position:absolute; bottom:50%; left:50%; width:160px; height:90px; background: radial-gradient(ellipse at 50% 70%, #4a7a2a 0%, #1a3a0a 70%, transparent 100%); border-radius:40% 60% 20% 40% / 60% 40% 60% 40%; transform:translateX(-50%); filter:blur(4px); animation: bfd2-crown 6s ease-in-out infinite; }
.scn-breadfruit-description .leaf-bfd2  { position:absolute; bottom:70%; left:40%; width:30px; height:40px; background: radial-gradient(ellipse at 50% 100%, #5a8a3a 0%, #2a5a1a 100%); border-radius: 50% 50% 0 0; transform:rotate(-30deg); animation: bfd2-leaf 4s ease-in-out infinite alternate; }
.scn-breadfruit-description .ground-bfd2 { position:absolute; bottom:10%; left:0; right:0; height:15%; background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%); border-radius: 20% 30% 0 0; }
.scn-breadfruit-description .scholar-bfd2{ position:absolute; bottom:15%; left:30%; width:20px; height:50px; background: #2a1a0a; border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: bfd2-scholar 5s ease-in-out infinite; }
@keyframes bfd2-trunk   { 0%,100% { transform:translateX(-50%) scaleY(1) } 50% { transform:translateX(-50%) scaleY(1.02) } }
@keyframes bfd2-crown   { 0% { transform:translateX(-50%) rotate(-3deg) } 50% { transform:translateX(-50%) rotate(0) } 100% { transform:translateX(-50%) rotate(3deg) } }
@keyframes bfd2-leaf    { 0% { transform:rotate(-30deg) translateY(0) } 100% { transform:rotate(-35deg) translateY(-2px) } }
@keyframes bfd2-scholar { 0% { transform:translateX(0) rotate(-2deg) } 25% { transform:translateX(5px) rotate(2deg) } 50% { transform:translateX(10px) rotate(-1deg) } 75% { transform:translateX(15px) rotate(1deg) } 100% { transform:translateX(20px) rotate(0) } }

.scn-handy-plant {
  background:
    linear-gradient(180deg, #a8d8ea 0%, #c8e8c0 40%, #f0d8a0 80%, #d0b070 100%),
    radial-gradient(ellipse at 50% 60%, #fcf3d9 0%, transparent 70%);
}
.scn-handy-plant .bg-hp  { position:absolute; inset:0; background: radial-gradient(ellipse at 30% 50%, rgba(255,240,200,.3) 0%, transparent 40%); }
.scn-handy-plant .plant-hp{ position:absolute; bottom:25%; left:30%; width:50px; height:80px; background: linear-gradient(180deg, #4a7a2a 0%, #1a3a0a 100%); border-radius: 30% 30% 10% 10% / 40% 40% 20% 20%; transform:rotate(5deg); box-shadow: inset -4px 0 8px rgba(0,0,0,.2); animation: hp-plant 8s ease-in-out infinite alternate; }
.scn-handy-plant .fruit-hp{ position:absolute; bottom:35%; left:35%; width:20px; height:24px; background: radial-gradient(circle, #f5b041 0%, #a06720 100%); border-radius:40% 40% 20% 20% / 50% 50% 30% 30%; box-shadow: 0 2px 6px rgba(0,0,0,.3); animation: hp-fruit 3s ease-in-out infinite alternate; }
.scn-handy-plant .hand-hp { position:absolute; bottom:30%; left:25%; width:16px; height:30px; background: #2a1a0a; border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: 50% 80%; animation: hp-hand 2s ease-in-out infinite alternate-reverse; }
.scn-handy-plant .ground-hp{ position:absolute; bottom:12%; left:0; right:0; height:18%; background: linear-gradient(180deg, #7a6a4a 0%, #4a3a1a 100%); border-radius: 30% 40% 0 0; }
.scn-handy-plant .glow-hp { position:absolute; top:20%; left:20%; width:100px; height:80px; background: radial-gradient(ellipse at 50% 50%, rgba(255,200,100,.4) 0%, transparent 100%); filter:blur(10px); animation: hp-glow 4s ease-in-out infinite alternate; }
@keyframes hp-plant { 0% { transform:rotate(3deg) } 50% { transform:rotate(7deg) } 100% { transform:rotate(5deg) } }
@keyframes hp-fruit { 0% { transform:scale(1) translateY(0) } 100% { transform:scale(1.1) translateY(-3px) } }
@keyframes hp-hand  { 0% { transform:rotate(-10deg) translateY(0) } 100% { transform:rotate(10deg) translateY(-2px) } }
@keyframes hp-glow  { 0% { opacity:.5; transform:scale(.9) } 100% { opacity:.8; transform:scale(1.1) } }

.scn-ocean-circulation { background: linear-gradient(180deg, #4a90e2 0%, #6ab0f0 30%, #f0c060 60%, #d08030 100%), radial-gradient(ellipse at 50% 20%, #f0e080 0%, transparent 60%); position: relative; overflow: hidden; }
.scn-ocean-circulation .sky { position: absolute; inset: 0 0 50% 0; background: linear-gradient(180deg, #87ceeb 0%, #b0e0ff 60%, #fff0b0 100%); }
.scn-ocean-circulation .sun { position: absolute; top: 5%; left: 60%; width: 60px; height: 60px; background: radial-gradient(circle, #fff8e0 0%, #ffcc44 60%, transparent 100%); border-radius: 50%; box-shadow: 0 0 60px 20px rgba(255,204,68,.6); animation: oc-sun-pulse 6s ease-in-out infinite alternate; }
.scn-ocean-circulation .surface { position: absolute; bottom: 45%; left: 0; right: 0; height: 8%; background: linear-gradient(180deg, #2a6bb0 0%, #4a9ad0 40%, #6ab8e8 100%); border-radius: 40% 50% 0 0; animation: oc-surface 8s ease-in-out infinite alternate; }
.scn-ocean-circulation .deep { position: absolute; bottom: 0; left: 0; right: 0; height: 50%; background: linear-gradient(180deg, #1a4a7a 0%, #0a2a4a 60%, #051a2a 100%); }
.scn-ocean-circulation .current-a { position: absolute; bottom: 30%; left: -20%; width: 140%; height: 6px; background: linear-gradient(90deg, transparent, #ffcc66 30%, #ffaa44 70%, transparent); border-radius: 50%; opacity: 0.5; filter: blur(2px); animation: oc-drift-a 20s linear infinite; }
.scn-ocean-circulation .current-b { position: absolute; bottom: 20%; left: -30%; width: 160%; height: 4px; background: linear-gradient(90deg, transparent, #ffbb55 20%, #ff8833 80%, transparent); border-radius: 50%; opacity: 0.4; filter: blur(3px); animation: oc-drift-b 25s linear infinite reverse; }
.scn-ocean-circulation .ship { position: absolute; bottom: 40%; left: 30%; width: 40px; height: 30px; background: linear-gradient(180deg, #3a2a1a 0%, #1a150d 100%); border-radius: 50% 50% 20% 20% / 60% 60% 30% 30%; transform-origin: bottom center; animation: oc-ship-bob 5s ease-in-out infinite; }
@keyframes oc-sun-pulse { 0% { transform: scale(1); opacity: 0.8; } 50% { transform: scale(1.1); opacity: 1; } 100% { transform: scale(0.95); opacity: 0.9; } }
@keyframes oc-surface { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(2px); } }
@keyframes oc-drift-a { 0% { transform: translateX(0); } 100% { transform: translateX(20%); } }
@keyframes oc-drift-b { 0% { transform: translateX(0); } 100% { transform: translateX(30%); } }
@keyframes oc-ship-bob { 0%,100% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-4px) rotate(1deg); } }

.scn-rising-falling-currents { background: linear-gradient(180deg, #1a3a5a 0%, #2a5a8a 30%, #4a7a9a 60%, #6a9aba 100%), radial-gradient(ellipse at 50% 30%, #6a9aba 0%, transparent 70%); position: relative; overflow: hidden; }
.scn-rising-falling-currents .top-light { position: absolute; top: 0; left: 0; right: 0; height: 30%; background: linear-gradient(180deg, #7ac0e0 0%, #4a9aba 100%); animation: rfc-light 10s ease-in-out infinite alternate; }
.scn-rising-falling-currents .mid-layer { position: absolute; top: 30%; left: 0; right: 0; height: 35%; background: linear-gradient(180deg, #3a7a9a 0%, #2a5a7a 100%); }
.scn-rising-falling-currents .deep { position: absolute; bottom: 0; left: 0; right: 0; height: 35%; background: linear-gradient(180deg, #1a3a5a 0%, #0a1a2a 100%); }
.scn-rising-falling-currents .rise { position: absolute; top: 60%; left: 30%; width: 8px; height: 50%; background: linear-gradient(180deg, #70b0d0 0%, transparent); border-radius: 50%; filter: blur(2px); opacity: 0.6; animation: rfc-rise 8s ease-in-out infinite; }
.scn-rising-falling-currents .fall { position: absolute; top: 10%; left: 60%; width: 6px; height: 70%; background: linear-gradient(0deg, #4080a0 0%, transparent); border-radius: 50%; filter: blur(2px); opacity: 0.5; animation: rfc-fall 9s ease-in-out infinite reverse; }
.scn-rising-falling-currents .molecule { position: absolute; top: 40%; left: 45%; width: 10px; height: 10px; background: radial-gradient(circle, #ffdd88 0%, #ccaa44 100%); border-radius: 50%; box-shadow: 0 0 12px 4px rgba(255,221,136,.5); animation: rfc-molecule 5s linear infinite; }
.scn-rising-falling-currents .bubble { position: absolute; bottom: 5%; left: 20%; width: 6px; height: 6px; background: rgba(255,255,255,.3); border-radius: 50%; animation: rfc-bubble 7s linear infinite; }
@keyframes rfc-light { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes rfc-rise { 0% { transform: translateY(0) scaleY(0.8); } 50% { transform: translateY(-30%) scaleY(1.2); } 100% { transform: translateY(0) scaleY(0.8); } }
@keyframes rfc-fall { 0% { transform: translateY(0) scaleY(0.8); } 50% { transform: translateY(30%) scaleY(1.2); } 100% { transform: translateY(0) scaleY(0.8); } }
@keyframes rfc-molecule { 0% { transform: translateY(0) rotate(0deg); opacity: 0.8; } 25% { transform: translateY(-20px) rotate(90deg); } 50% { transform: translateY(0) rotate(180deg); opacity: 1; } 75% { transform: translateY(20px) rotate(270deg); } 100% { transform: translateY(0) rotate(360deg); opacity: 0.8; } }
@keyframes rfc-bubble { 0% { transform: translateY(0) scale(1); opacity: 0; } 20% { opacity: 0.6; } 80% { opacity: 0.6; } 100% { transform: translateY(-200px) scale(0.5); opacity: 0; } }

.scn-thought-of-pole { background: linear-gradient(180deg, #f0d080 0%, #e8b050 30%, #d09030 60%, #b07020 100%), radial-gradient(ellipse at 50% 70%, #e8b050 0%, transparent 60%); position: relative; overflow: hidden; }
.scn-thought-of-pole .sky { position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #ffe8b0 0%, #ffcc80 100%); }
.scn-thought-of-pole .sun { position: absolute; top: 5%; right: 15%; width: 70px; height: 70px; background: radial-gradient(circle, #fff8e0 0%, #ffcc44 50%, transparent 100%); border-radius: 50%; box-shadow: 0 0 80px 40px rgba(255,204,68,.5); animation: top-sun 12s ease-in-out infinite alternate; }
.scn-thought-of-pole .ship { position: absolute; bottom: 25%; left: 10%; width: 80px; height: 50px; background: linear-gradient(180deg, #2a1a0a 0%, #0a0502 100%); border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%; transform: skewX(-5deg); box-shadow: 0 8px 20px rgba(0,0,0,.6); animation: top-ship 6s ease-in-out infinite; }
.scn-thought-of-pole .mast { position: absolute; bottom: 40%; left: 30%; width: 4px; height: 60px; background: linear-gradient(180deg, #4a2a1a 0%, #2a1508 100%); border-radius: 2px; transform-origin: bottom center; animation: top-mast 4s ease-in-out infinite; }
.scn-thought-of-pole .flag { position: absolute; bottom: 82%; left: 28%; width: 20px; height: 12px; background: #602020; border-radius: 0 50% 50% 0; transform-origin: left center; animation: top-flag 2s ease-in-out infinite alternate; }
.scn-thought-of-pole .compass { position: absolute; bottom: 15%; right: 20%; width: 40px; height: 40px; background: radial-gradient(circle, #c8a060 0%, #8a6030 100%); border-radius: 50%; border: 2px solid #5a3a1a; box-shadow: 0 0 10px rgba(0,0,0,.5); animation: top-compass-turn 20s linear infinite; }
.scn-thought-of-pole .needle { position: absolute; bottom: 30%; right: 30%; width: 4px; height: 20px; background: linear-gradient(180deg, #cc4444 0%, #884422 100%); border-radius: 2px; transform-origin: bottom center; animation: top-needle 0.8s ease-in-out infinite alternate; }
@keyframes top-sun { 0% { transform: scale(1); opacity: 0.9; } 50% { transform: scale(1.15); opacity: 1; } 100% { transform: scale(0.9); opacity: 0.85; } }
@keyframes top-ship { 0%,100% { transform: skewX(-5deg) translateY(0); } 50% { transform: skewX(-5deg) translateY(-3px); } }
@keyframes top-mast { 0%,100% { transform: rotate(0deg); } 25% { transform: rotate(1deg); } 75% { transform: rotate(-1deg); } }
@keyframes top-flag { 0% { transform: rotate(0deg) scaleX(1); } 100% { transform: rotate(20deg) scaleX(1.2); } }
@keyframes top-compass-turn { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }
@keyframes top-needle { 0% { transform: rotate(-10deg); } 100% { transform: rotate(10deg); } }

.scn-salines-importance { background: linear-gradient(180deg, #2a3a5a 0%, #1a2a4a 40%, #0a1a3a 100%), radial-gradient(ellipse at 50% 20%, #4a6a8a 0%, transparent 70%); position: relative; overflow: hidden; }
.scn-salines-importance .bg { position: absolute; inset: 0; background: linear-gradient(180deg, #3a5a7a 0%, #1a2a4a 100%); opacity: 0.6; }
.scn-salines-importance .salt-crystal-big { position: absolute; bottom: 30%; left: 35%; width: 60px; height: 60px; background: linear-gradient(135deg, #e0e8f0 0%, #c0c8d0 50%, #a0a8b0 100%); border-radius: 10% 30% 10% 30% / 20% 20% 40% 40%; transform: rotate(15deg); box-shadow: 0 0 20px rgba(255,255,255,.3); animation: si-crystal-big 8s ease-in-out infinite alternate; }
.scn-salines-importance .salt-crystal-small { position: absolute; bottom: 20%; left: 55%; width: 30px; height: 30px; background: linear-gradient(135deg, #d0d8e0 0%, #b0b8c0 100%); border-radius: 20% 40% 20% 40% / 30% 30% 50% 50%; transform: rotate(-10deg); box-shadow: 0 0 12px rgba(255,255,255,.2); animation: si-crystal-small 6s ease-in-out infinite alternate; }
.scn-salines-importance .light-ray-1 { position: absolute; top: 0; left: 30%; width: 4px; height: 100%; background: linear-gradient(180deg, rgba(255,255,200,.5) 0%, transparent 60%); opacity: 0.7; transform: rotate(10deg); animation: si-ray1 4s ease-in-out infinite alternate; }
.scn-salines-importance .light-ray-2 { position: absolute; top: 0; left: 60%; width: 3px; height: 100%; background: linear-gradient(180deg, rgba(255,255,200,.4) 0%, transparent 50%); opacity: 0.6; transform: rotate(-15deg); animation: si-ray2 5s ease-in-out infinite alternate; }
.scn-salines-importance .glare { position: absolute; top: 10%; left: 40%; width: 80px; height: 80px; background: radial-gradient(circle, rgba(255,255,220,.3) 0%, transparent 70%); border-radius: 50%; animation: si-glare 10s ease-in-out infinite alternate; }
@keyframes si-crystal-big { 0% { transform: rotate(15deg) scale(1); opacity: 0.8; } 50% { transform: rotate(25deg) scale(1.05); opacity: 1; } 100% { transform: rotate(5deg) scale(0.95); opacity: 0.85; } }
@keyframes si-crystal-small { 0% { transform: rotate(-10deg) scale(1); } 100% { transform: rotate(10deg) scale(1.1); } }
@keyframes si-ray1 { 0% { opacity: 0.5; transform: rotate(8deg); } 100% { opacity: 0.9; transform: rotate(12deg); } }
@keyframes si-ray2 { 0% { opacity: 0.4; transform: rotate(-12deg); } 100% { opacity: 0.8; transform: rotate(-18deg); } }
@keyframes si-glare { 0% { transform: scale(1); opacity: 0.3; } 50% { transform: scale(1.5); opacity: 0.6; } 100% { transform: scale(1); opacity: 0.4; } }

.scn-next-day-feb14 {
  background: linear-gradient(160deg, #60788a 0%, #4a6070 40%, #3a4e5a 100%),
              radial-gradient(ellipse at 30% 70%, #5a7080 0%, transparent 60%);
}
.scn-next-day-feb14 .window-panel {
  position: absolute;
  inset: 20% 10% 25% 10%;
  background: linear-gradient(180deg, #7a8a96 0%, #5a6e7a 50%, #3a4e5a 100%);
  border-radius: 6% / 4%;
  border: 3px solid #3a4a54;
  box-shadow: inset 0 0 40px rgba(0,0,0,0.3);
  animation: nd14-panel 12s ease-in-out infinite alternate;
}
.scn-next-day-feb14 .fish-shadow {
  position: absolute;
  bottom: 40%;
  width: 40px;
  height: 14px;
  background: rgba(60,80,90,0.4);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: center center;
  filter: blur(2px);
}
.scn-next-day-feb14 .fish-a {
  left: 15%;
  animation: nd14-swim 18s ease-in-out infinite;
}
.scn-next-day-feb14 .fish-b {
  left: 55%;
  width: 30px;
  height: 10px;
  animation: nd14-swim 22s ease-in-out infinite reverse;
}
.scn-next-day-feb14 .bubbles {
  position: absolute;
  bottom: 30%;
  width: 6px;
  height: 6px;
  background: rgba(200,220,230,0.3);
  border-radius: 50%;
  filter: blur(1px);
}
.scn-next-day-feb14 .bubble-1 {
  left: 25%;
  animation: nd14-rise 8s linear infinite;
}
.scn-next-day-feb14 .bubble-2 {
  left: 60%;
  width: 4px;
  height: 4px;
  animation: nd14-rise 10s linear infinite 2s;
}
.scn-next-day-feb14 .bubble-float {
  position: absolute;
  bottom: 50%;
  left: 40%;
  width: 8px;
  height: 8px;
  background: rgba(220,235,245,0.2);
  border-radius: 50%;
  filter: blur(3px);
  animation: nd14-float 14s ease-in-out infinite;
}
.scn-next-day-feb14 .seabed {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 20%;
  background: linear-gradient(0deg, #3a4a40 0%, #4a5a50 40%, #5a6a60 100%);
  border-radius: 30% 40% 0 0 / 60% 70% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.3);
  animation: nd14-bed 20s ease-in-out infinite alternate;
}
@keyframes nd14-panel {
  0% { opacity: 0.8; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.02); }
  100% { opacity: 0.85; transform: scale(0.98); }
}
@keyframes nd14-swim {
  0% { transform: translateX(0) translateY(0) rotate(-2deg); opacity: 0.5; }
  25% { transform: translateX(30px) translateY(-5px) rotate(1deg); opacity: 0.8; }
  50% { transform: translateX(60px) translateY(2px) rotate(-1deg); opacity: 0.6; }
  75% { transform: translateX(90px) translateY(-3px) rotate(2deg); opacity: 0.9; }
  100% { transform: translateX(120px) translateY(0) rotate(0); opacity: 0.5; }
}
@keyframes nd14-rise {
  0% { transform: translateY(0) scale(1); opacity: 0.3; }
  50% { transform: translateY(-40px) scale(1.2); opacity: 0.6; }
  100% { transform: translateY(-80px) scale(0.8); opacity: 0; }
}
@keyframes nd14-float {
  0% { transform: translate(0, 0) rotate(-5deg); opacity: 0.2; }
  50% { transform: translate(10px, -15px) rotate(3deg); opacity: 0.4; }
  100% { transform: translate(20px, -30px) rotate(-2deg); opacity: 0; }
}
@keyframes nd14-bed {
  0% { transform: scaleY(1); opacity: 0.7; }
  50% { transform: scaleY(1.02); opacity: 0.9; }
  100% { transform: scaleY(0.98); opacity: 0.8; }
}

.scn-crete-rebellion-unknown {
  background: linear-gradient(180deg, #1a1a1e 0%, #2a2a30 40%, #1e1e24 100%),
              radial-gradient(ellipse at 50% 100%, #3a3a44 0%, transparent 70%);
}
.scn-crete-rebellion-unknown .lounge-wall {
  position: absolute;
  inset: 0 0 30% 0;
  background: linear-gradient(180deg, #3a3a40 0%, #2a2a30 60%, #1a1a1e 100%);
  border-bottom: 2px solid #4a4a50;
  box-shadow: inset 0 0 60px rgba(0,0,0,0.5);
  animation: cru-wall 15s ease-in-out infinite alternate;
}
.scn-crete-rebellion-unknown .chair {
  position: absolute;
  bottom: 20%;
  left: 30%;
  width: 50px;
  height: 40px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%;
  box-shadow: 2px 5px 10px rgba(0,0,0,0.6);
  animation: cru-chair 18s ease-in-out infinite;
}
.scn-crete-rebellion-unknown .nemo-silhouette {
  position: absolute;
  bottom: 22%;
  left: 45%;
  width: 24px;
  height: 50px;
  background: linear-gradient(180deg, #0a0a0e 0%, #141418 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cru-nemo 14s ease-in-out infinite;
}
.scn-crete-rebellion-unknown .table-lamp {
  position: absolute;
  bottom: 28%;
  left: 50%;
  width: 12px;
  height: 8px;
  background: radial-gradient(circle, #d0a050 0%, #8a6a30 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 8px #a08040, 0 0 60px 16px rgba(160,128,64,0.4);
  animation: cru-lamp 4s ease-in-out infinite alternate;
}
.scn-crete-rebellion-unknown .lamp-glow {
  position: absolute;
  bottom: 25%;
  left: 45%;
  width: 60px;
  height: 40px;
  background: radial-gradient(ellipse, rgba(200,180,100,0.15) 0%, transparent 70%);
  filter: blur(8px);
  animation: cru-glow 6s ease-in-out infinite alternate;
}
.scn-crete-rebellion-unknown .shadow-cast {
  position: absolute;
  bottom: 18%;
  left: 35%;
  width: 80px;
  height: 20px;
  background: rgba(0,0,0,0.4);
  border-radius: 50%;
  filter: blur(6px);
  transform: rotate(-10deg);
  animation: cru-shadow 12s ease-in-out infinite;
}
@keyframes cru-wall {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes cru-chair {
  0% { transform: translateY(0) rotate(0); }
  50% { transform: translateY(-2px) rotate(2deg); }
  100% { transform: translateY(1px) rotate(-1deg); }
}
@keyframes cru-nemo {
  0% { transform: translateX(0) rotate(-1deg); }
  50% { transform: translateX(4px) rotate(1deg); }
  100% { transform: translateX(-2px) rotate(-2deg); }
}
@keyframes cru-lamp {
  0% { box-shadow: 0 0 20px 4px #a08040, 0 0 40px 10px rgba(160,128,64,0.3); opacity: 0.8; }
  50% { box-shadow: 0 0 40px 12px #d0b060, 0 0 80px 20px rgba(208,176,96,0.5); opacity: 1; }
  100% { box-shadow: 0 0 25px 6px #a08040, 0 0 50px 12px rgba(160,128,64,0.35); opacity: 0.9; }
}
@keyframes cru-glow {
  0% { opacity: 0.2; transform: scale(1); }
  50% { opacity: 0.5; transform: scale(1.1); }
  100% { opacity: 0.3; transform: scale(0.9); }
}
@keyframes cru-shadow {
  0% { transform: translateX(0) rotate(-10deg); opacity: 0.3; }
  50% { transform: translateX(5px) rotate(-8deg); opacity: 0.5; }
  100% { transform: translateX(-3px) rotate(-12deg); opacity: 0.4; }
}

.scn-nemo-watching-panels {
  background: linear-gradient(180deg, #1a2a3a 0%, #2a3a4a 40%, #3a4a5a 100%),
              radial-gradient(ellipse at 50% 60%, #2a3a4a 0%, transparent 80%);
}
.scn-nemo-watching-panels .panel-frame {
  position: absolute;
  inset: 15% 10% 15% 10%;
  background: linear-gradient(180deg, #4a5a6a 0%, #2a3a4a 100%);
  border-radius: 8% / 6%;
  border: 4px solid #3a4a5a;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.4), 0 0 20px rgba(0,0,0,0.3);
  animation: nwp-frame 20s ease-in-out infinite alternate;
}
.scn-nemo-watching-panels .sea-outside {
  position: absolute;
  inset: 20% 15% 20% 15%;
  background: radial-gradient(circle at 40% 50%, #4a6a7a 0%, #2a4a5a 70%, #1a3a4a 100%);
  border-radius: 6%;
  animation: nwp-sea 25s linear infinite alternate;
}
.scn-nemo-watching-panels .passing-fish {
  position: absolute;
  width: 30px;
  height: 10px;
  background: rgba(100,140,160,0.5);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  filter: blur(1px);
}
.scn-nemo-watching-panels .fish-1 {
  top: 30%;
  left: 20%;
  animation: nwp-dart 5s ease-in-out infinite;
}
.scn-nemo-watching-panels .fish-2 {
  top: 55%;
  left: 60%;
  width: 20px;
  height: 8px;
  animation: nwp-dart 7s ease-in-out infinite reverse;
}
.scn-nemo-watching-panels .nemo-figure {
  position: absolute;
  bottom: 18%;
  left: 35%;
  width: 28px;
  height: 60px;
  background: linear-gradient(180deg, #0a0a0e 0%, #141418 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: nwp-nemo 8s ease-in-out infinite;
}
.scn-nemo-watching-panels .reflection {
  position: absolute;
  bottom: 15%;
  left: 30%;
  width: 40px;
  height: 20px;
  background: linear-gradient(180deg, rgba(200,220,240,0.1) 0%, transparent 100%);
  border-radius: 50%;
  transform: rotate(10deg);
  filter: blur(4px);
  animation: nwp-refl 6s ease-in-out infinite alternate;
}
@keyframes nwp-frame {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.95; }
}
@keyframes nwp-sea {
  0% { background-position: 0% 50%; }
  50% { background-position: 100% 50%; }
  100% { background-position: 0% 50%; }
}
@keyframes nwp-dart {
  0% { transform: translateX(0) translateY(0) rotate(-5deg); opacity: 0.3; }
  30% { transform: translateX(40px) translateY(-8px) rotate(3deg); opacity: 0.9; }
  60% { transform: translateX(80px) translateY(2px) rotate(-2deg); opacity: 0.6; }
  100% { transform: translateX(120px) translateY(0) rotate(0); opacity: 0.2; }
}
@keyframes nwp-nemo {
  0% { transform: translateX(0) rotate(0); }
  50% { transform: translateX(3px) rotate(2deg); }
  100% { transform: translateX(-2px) rotate(-1deg); }
}
@keyframes nwp-refl {
  0% { opacity: 0.1; transform: scale(1); }
  50% { opacity: 0.3; transform: scale(1.05); }
  100% { opacity: 0.15; transform: scale(0.95); }
}

.scn-fish-of-antiquity {
  background: linear-gradient(180deg, #2a4a3a 0%, #3a6a5a 30%, #4a8a7a 70%, #5a9a8a 100%),
              radial-gradient(ellipse at 60% 50%, #4a8a7a 0%, transparent 60%);
}
.scn-fish-of-antiquity .water-bg {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(60,120,100,0.4) 0%, transparent 100%);
  animation: fao-water 20s ease-in-out infinite alternate;
}
.scn-fish-of-antiquity .seaweed {
  position: absolute;
  bottom: 5%;
  width: 20px;
  height: 60px;
  background: linear-gradient(180deg, #3a6a3a 0%, #2a4a2a 100%);
  border-radius: 50% 50% 30% 30% / 40% 40% 60% 60%;
  transform-origin: bottom center;
  animation: fao-seaweed 12s ease-in-out infinite;
}
.scn-fish-of-antiquity .seaweed-left {
  left: 15%;
  animation-delay: 0s;
}
.scn-fish-of-antiquity .seaweed-right {
  right: 15%;
  width: 16px;
  height: 50px;
  animation-delay: -4s;
}
.scn-fish-of-antiquity .tapiro {
  position: absolute;
  width: 40px;
  height: 16px;
  background: linear-gradient(180deg, #6a7a7a 0%, #5a6a6a 40%, #4a5a5a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  filter: blur(1px);
  animation: fao-tapiro 14s ease-in-out infinite;
}
.scn-fish-of-antiquity .tapiro-1 {
  top: 40%;
  left: 10%;
  animation-delay: 0s;
}
.scn-fish-of-antiquity .tapiro-2 {
  top: 60%;
  left: 50%;
  width: 30px;
  height: 12px;
  animation-delay: -3s;
}
.scn-fish-of-antiquity .food-particle {
  position: absolute;
  top: 35%;
  left: 30%;
  width: 4px;
  height: 4px;
  background: #a06030;
  border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(160,96,48,0.5);
  animation: fao-food 9s linear infinite;
}
.scn-fish-of-antiquity .light-beam {
  position: absolute;
  inset: 0 0 60% 0;
  background: linear-gradient(180deg, rgba(220,240,200,0.15) 0%, transparent 100%);
  clip-path: polygon(20% 0, 80% 0, 70% 100%, 30% 100%);
  animation: fao-beam 11s ease-in-out infinite alternate;
}
@keyframes fao-water {
  0% { opacity: 0.3; }
  50% { opacity: 0.6; }
  100% { opacity: 0.4; }
}
@keyframes fao-seaweed {
  0% { transform: rotate(-5deg) scaleY(1); }
  50% { transform: rotate(5deg) scaleY(1.05); }
  100% { transform: rotate(-3deg) scaleY(0.98); }
}
@keyframes fao-tapiro {
  0% { transform: translateX(0) translateY(0) rotate(-3deg); opacity: 0.5; }
  25% { transform: translateX(30px) translateY(-4px) rotate(2deg); opacity: 0.8; }
  50% { transform: translateX(60px) translateY(2px) rotate(-1deg); opacity: 0.6; }
  75% { transform: translateX(90px) translateY(-2px) rotate(3deg); opacity: 0.9; }
  100% { transform: translateX(120px) translateY(0) rotate(0); opacity: 0.5; }
}
@keyframes fao-food {
  0% { transform: translateX(0) translateY(0) scale(1); opacity: 0.8; }
  50% { transform: translateX(-20px) translateY(-30px) scale(1.5); opacity: 0.5; }
  100% { transform: translateX(-40px) translateY(-60px) scale(0.8); opacity: 0; }
}
@keyframes fao-beam {
  0% { opacity: 0.1; transform: skewX(0); }
  50% { opacity: 0.3; transform: skewX(3deg); }
  100% { opacity: 0.15; transform: skewX(-2deg); }
}

/* sailors-haul-nets */
.scn-sailors-haul-nets {
  background:
    linear-gradient(180deg, #87CEEB 0%, #B0E0E6 40%, #F0E68C 70%, #DAA520 100%),
    radial-gradient(ellipse at 50% 0%, #FFFACD 0%, transparent 60%);
}

.scn-sailors-haul-nets .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #87CEEB 0%, #87CEEB 30%, #B0E0E6 60%, #FFE4B5 100%);
  animation: shn-sky 14s ease-in-out infinite alternate;
}
.scn-sailors-haul-nets .ocean {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #4682B4 0%, #5B9BD5 30%, #7EC8E3 60%, #A2D9F5 100%);
  animation: shn-ocean 9s ease-in-out infinite alternate;
}
.scn-sailors-haul-nets .deck {
  position: absolute; bottom: 15%; left: 5%; right: 5%; height: 20%;
  background: linear-gradient(180deg, #D2B48C 0%, #B8860B 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: inset 0 8px 12px rgba(0,0,0,0.3);
}
.scn-sailors-haul-nets .net {
  position: absolute; bottom: 30%; left: 20%; right: 20%; height: 20%;
  background:
    repeating-linear-gradient(45deg, transparent, transparent 4px, rgba(255,255,255,0.3) 4px, rgba(255,255,255,0.3) 8px),
    repeating-linear-gradient(-45deg, transparent, transparent 4px, rgba(255,255,255,0.2) 4px, rgba(255,255,255,0.2) 8px),
    linear-gradient(180deg, rgba(139,90,43,0.6) 0%, rgba(205,133,63,0.4) 100%);
  border-radius: 0 0 50% 50%;
  animation: shn-net 5s ease-in-out infinite alternate;
}
.scn-sailors-haul-nets .sailor {
  position: absolute; bottom: 14%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #F5DEB3 0%, #D2B48C 20%, #8B4513 60%, #5C4033 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: shn-haul 3s ease-in-out infinite;
}
.scn-sailors-haul-nets .s1 { left: 25%; animation-delay: 0s; }
.scn-sailors-haul-nets .s2 { left: 45%; animation-delay: 0.5s; }
.scn-sailors-haul-nets .s3 { left: 60%; animation-delay: 1s; }

.scn-sailors-haul-nets .sun {
  position: absolute; top: 10%; left: 70%; width: 40px; height: 40px;
  background: radial-gradient(circle, #FFD700 0%, #FFA500 50%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px rgba(255,215,0,0.5);
  animation: shn-sun 10s ease-in-out infinite alternate;
}
.scn-sailors-haul-nets .cloud {
  position: absolute; top: 8%; left: 15%; width: 80px; height: 20px;
  background: linear-gradient(180deg, rgba(255,255,255,0.8) 0%, rgba(255,255,255,0.3) 100%);
  border-radius: 50%;
  filter: blur(6px);
  animation: shn-cloud 25s linear infinite;
}
@keyframes shn-sky {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes shn-ocean {
  0% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
  100% { transform: translateY(2px); }
}
@keyframes shn-net {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-5px) scaleY(1.05); }
  100% { transform: translateY(0) scaleY(1); }
}
@keyframes shn-haul {
  0% { transform: translateX(0) translateY(0) rotate(-2deg); }
  25% { transform: translateX(4px) translateY(-3px) rotate(2deg); }
  50% { transform: translateX(8px) translateY(-1px) rotate(-1deg); }
  75% { transform: translateX(4px) translateY(0) rotate(1deg); }
  100% { transform: translateX(0) translateY(0) rotate(-2deg); }
}
@keyframes shn-sun {
  0% { transform: scale(1); opacity: 0.9; }
  50% { transform: scale(1.05); opacity: 1; }
  100% { transform: scale(0.95); opacity: 0.8; }
}
@keyframes shn-cloud {
  0% { transform: translateX(-30px); }
  100% { transform: translateX(120vw); }
}

/* diverse-sailors */
.scn-diverse-sailors {
  background:
    linear-gradient(180deg, #87CEEB 0%, #B0E0E6 50%, #F0E68C 100%),
    radial-gradient(ellipse at 60% 30%, #FFF5EE 0%, transparent 50%);
}
.scn-diverse-sailors .bg-sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #87CEEB 0%, #ADD8E6 50%, #F0E68C 100%);
  animation: ds-sky 10s ease-in-out infinite alternate;
}
.scn-diverse-sailors .bg-sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #4682B4 0%, #5B9BD5 40%, #7EC8E3 70%, #A2D9F5 100%);
  animation: ds-sea 8s ease-in-out infinite alternate;
}
.scn-diverse-sailors .railing {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 4px;
  background: #8B4513;
  box-shadow: 0 10px 0 #A0522D, 0 20px 0 #CD853F;
}
.scn-diverse-sailors .figure {
  position: absolute; bottom: 30%; width: 22px; height: 50px;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ds-stand 6s ease-in-out infinite;
}
.scn-diverse-sailors .f1 { left: 10%; background: linear-gradient(180deg, #F5DEB3 0%, #DEB887 30%, #A0522D 100%); animation-delay: 0s; }
.scn-diverse-sailors .f2 { left: 25%; background: linear-gradient(180deg, #FFE4B5 0%, #D2B48C 30%, #8B7355 100%); animation-delay: 0.3s; }
.scn-diverse-sailors .f3 { left: 45%; background: linear-gradient(180deg, #F5F5DC 0%, #EED9B7 30%, #B8860B 100%); animation-delay: 0.6s; }
.scn-diverse-sailors .f4 { left: 62%; background: linear-gradient(180deg, #FFF0F5 0%, #DDA0DD 30%, #8B4513 100%); animation-delay: 0.9s; }

.scn-diverse-sailors .flag {
  position: absolute; top: 15%; right: 20%; width: 30px; height: 20px;
  background: linear-gradient(90deg, #1E90FF 0%, #1E90FF 33%, #FFFFFF 33%, #FFFFFF 66%, #FF4500 66%);
  animation: ds-flag 4s ease-in-out infinite alternate;
}
@keyframes ds-sky {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes ds-sea {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(1px); }
}
@keyframes ds-stand {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-2px) rotate(1deg); }
  50% { transform: translateY(-1px) rotate(-1deg); }
  75% { transform: translateY(0) rotate(0.5deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes ds-flag {
  0% { transform: scaleX(1); }
  50% { transform: scaleX(1.1); }
  100% { transform: scaleX(0.95); }
}

/* nets-hauled-aboard */
.scn-nets-hauled-aboard {
  background:
    linear-gradient(180deg, #87CEEB 0%, #B0E0E6 40%, #DEB887 70%, #D2B48C 100%),
    radial-gradient(ellipse at 50% 70%, #FFF8DC 0%, transparent 50%);
}
.scn-nets-hauled-aboard .backdrop {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #87CEEB 0%, #B0E0E6 50%, #F5DEB3 100%);
  animation: nha-back 12s ease-in-out infinite alternate;
}
.scn-nets-hauled-aboard .deck-plane {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #D2B48C 0%, #B8860B 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.4);
}
.scn-nets-hauled-aboard .pole {
  position: absolute; bottom: 30%; left: 40%; right: 40%; height: 60%;
  background: linear-gradient(90deg, #8B4513 0%, #A0522D 20%, #CD853F 80%, #8B4513 100%);
  border-radius: 2px;
  transform-origin: bottom center;
  animation: nha-pole 6s ease-in-out infinite alternate;
}
.scn-nets-hauled-aboard .chain {
  position: absolute; bottom: 30%; left: 35%; right: 55%; height: 8px;
  background: repeating-linear-gradient(90deg, #808080 0px, #808080 6px, transparent 6px, transparent 12px);
  animation: nha-chain 3s ease-in-out infinite;
}
.scn-nets-hauled-aboard .pouch {
  position: absolute; bottom: 30%; left: 30%; right: 30%; height: 35%;
  background: linear-gradient(180deg, rgba(139,90,43,0.7) 0%, rgba(205,133,63,0.5) 50%, transparent 100%);
  border-radius: 50% 50% 20% 20%;
  transform-origin: bottom center;
  animation: nha-pouch 5s ease-in-out infinite;
}
.scn-nets-hauled-aboard .mesh {
  position: absolute; bottom: 28%; left: 25%; right: 25%; height: 40%;
  background:
    repeating-linear-gradient(45deg, transparent, transparent 5px, rgba(255,255,255,0.2) 5px, rgba(255,255,255,0.2) 7px),
    repeating-linear-gradient(-45deg, transparent, transparent 5px, rgba(255,255,255,0.15) 5px, rgba(255,255,255,0.15) 7px);
  border-radius: 40% 40% 0 0;
  animation: nha-mesh 4s ease-in-out infinite alternate;
}
.scn-nets-hauled-aboard .splash {
  position: absolute; bottom: 30%; left: 20%; right: 20%; height: 10%;
  background: radial-gradient(ellipse at 50% 0%, #E0F7FA 0%, transparent 70%);
  animation: nha-splash 2s ease-in-out infinite;
}
@keyframes nha-back {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes nha-pole {
  0% { transform: rotate(-2deg); }
  50% { transform: rotate(3deg); }
  100% { transform: rotate(-1deg); }
}
@keyframes nha-chain {
  0% { transform: translateX(0); }
  50% { transform: translateX(7px); }
  100% { transform: translateX(0); }
}
@keyframes nha-pouch {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.08); }
  100% { transform: scaleY(0.98); }
}
@keyframes nha-mesh {
  0% { opacity: 0.6; }
  50% { opacity: 0.9; }
  100% { opacity: 0.5; }
}
@keyframes nha-splash {
  0% { transform: translateY(0) scale(1); opacity: 0.4; }
  50% { transform: translateY(8px) scale(1.2); opacity: 0.7; }
  100% { transform: translateY(0) scale(0.9); opacity: 0.3; }
}

/* fish-catch-list */
.scn-fish-catch-list {
  background:
    linear-gradient(180deg, #E0F7FA 0%, #B2EBF2 40%, #80DEEA 100%),
    radial-gradient(ellipse at 50% 30%, #FFFFFF 0%, transparent 60%);
}
.scn-fish-catch-list .base {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(255,255,255,0.4) 0%, transparent 40%, rgba(0,0,0,0.05) 100%);
}
.scn-fish-catch-list .basket {
  position: absolute; bottom: 10%; left: 20%; right: 20%; height: 35%;
  background: linear-gradient(180deg, #D2B48C 0%, #B8860B 30%, #8B4513 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.5);
  animation: fcl-basket 8s ease-in-out infinite alternate;
}
.scn-fish-catch-list .fish {
  position: absolute; width: 40px; height: 15px;
  background: linear-gradient(180deg, #FFD700 0%, #DAA520 50%, #B8860B 100%);
  border-radius: 50% 50% 20% 20%;
  transform-origin: center;
  animation: fcl-swim 5s ease-in-out infinite;
}
.scn-fish-catch-list .f1 { bottom: 35%; left: 25%; animation-delay: 0s; }
.scn-fish-catch-list .f2 { bottom: 30%; left: 45%; width: 35px; height: 12px; background: linear-gradient(180deg, #C0C0C0 0%, #A9A9A9 50%, #808080 100%); animation-delay: 0.6s; }
.scn-fish-catch-list .f3 { bottom: 40%; left: 60%; width: 28px; height: 10px; background: linear-gradient(180deg, #F0E68C 0%, #DAA520 50%, #B8860B 100%); animation-delay: 1.2s; }
.scn-fish-catch-list .f4 { bottom: 33%; left: 35%; width: 32px; height: 14px; background: linear-gradient(180deg, #FFA07A 0%, #CD5C5C 50%, #A0522D 100%); animation-delay: 1.8s; }
.scn-fish-catch-list .f5 { bottom: 45%; left: 50%; width: 25px; height: 11px; background: linear-gradient(180deg, #E6E6FA 0%, #DDA0DD 50%, #BA55D3 100%); animation-delay: 2.4s; }
.scn-fish-catch-list .glint {
  position: absolute; top: 15%; left: 70%; width: 8px; height: 8px;
  background: radial-gradient(circle, #FFFFFF 0%, transparent 70%);
  border-radius: 50%;
  animation: fcl-glint 3s ease-in-out infinite;
}
@keyframes fcl-basket {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(1px); }
}
@keyframes fcl-swim {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  25% { transform: translateX(5px) translateY(-2px) rotate(5deg); }
  50% { transform: translateX(10px) translateY(0) rotate(-3deg); }
  75% { transform: translateX(5px) translateY(2px) rotate(2deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes fcl-glint {
  0% { opacity: 0.3; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.5); }
  100% { opacity: 0.2; transform: scale(0.8); }
}

.scn-ned-pleased {
  background: linear-gradient(135deg, #f9e7c0 0%, #d4b896 50%, #b8987a 100%), radial-gradient(circle at 30% 40%, #fef5e0 20%, transparent 60%);
}
.scn-ned-pleased .wall { position:absolute; inset:0; background: linear-gradient(180deg, #d4c8a8 0%, #beb08a 100%); }
.scn-ned-pleased .window-light { position:absolute; top:8%; left:60%; width:30%; height:40%; background:radial-gradient(ellipse at 50% 50%, #fff4d0 0%, #f0d8a0 50%, transparent 100%); border-radius:10%; box-shadow:0 0 40px 10px rgba(240,216,160,.4); animation:np-glow 5s ease-in-out infinite alternate; }
.scn-ned-pleased .lamp-glow { position:absolute; bottom:38%; left:45%; width:12%; height:16%; background:radial-gradient(circle, #ffecb0 0%, #d4a050 60%, transparent 100%); border-radius:50%; box-shadow:0 0 60px 20px #d4a050; animation:np-lamp 4s ease-in-out infinite; }
.scn-ned-pleased .figure-left { position:absolute; bottom:22%; left:20%; width:14%; height:38%; background:linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:np-fig-l 6s ease-in-out infinite; }
.scn-ned-pleased .figure-right { position:absolute; bottom:20%; right:16%; width:16%; height:42%; background:linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:np-fig-r 7s ease-in-out infinite; }
.scn-ned-pleased .table { position:absolute; bottom:16%; left:38%; width:24%; height:6%; background:linear-gradient(180deg, #6a5040 0%, #4a382a 100%); border-radius:10%; box-shadow:0 4px 8px rgba(0,0,0,.5); }
.scn-ned-pleased .chair-left { position:absolute; bottom:18%; left:16%; width:18%; height:28%; background:linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:20% 20% 10% 10%; transform:rotate(-5deg); }
.scn-ned-pleased .chair-right { position:absolute; bottom:16%; right:12%; width:20%; height:30%; background:linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:20% 20% 10% 10%; transform:rotate(3deg); }
@keyframes np-glow { 0% { opacity:.7; box-shadow:0 0 30px 5px rgba(240,216,160,.3); } 50% { opacity:1; box-shadow:0 0 60px 20px rgba(255,244,208,.6); } 100% { opacity:.8; box-shadow:0 0 40px 10px rgba(240,216,160,.4); } }
@keyframes np-lamp { 0%,100% { transform:scale(1); opacity:.9; } 50% { transform:scale(1.05); opacity:1; } }
@keyframes np-fig-l { 0% { transform:translateX(0) translateY(0) rotate(-1deg); } 50% { transform:translateX(2px) translateY(-2px) rotate(1deg); } 100% { transform:translateX(0) translateY(0) rotate(-1deg); } }
@keyframes np-fig-r { 0% { transform:translateX(0) translateY(0) rotate(2deg); } 50% { transform:translateX(-2px) translateY(-1px) rotate(-1deg); } 100% { transform:translateX(0) translateY(0) rotate(2deg); } }

.scn-hint-of-danger {
  background: linear-gradient(0deg, #0a1a2a 0%, #142c3a 40%, #1c3a4a 70%, #2a4a5a 100%), radial-gradient(circle at 30% 20%, #4a7a8a 0%, transparent 60%);
}
.scn-hint-of-danger .porthole-frame { position:absolute; inset:5%; border:3% solid #3a2a1a; border-radius:50%; background:transparent; box-shadow:inset 0 0 20px rgba(0,0,0,.5), 0 0 10px rgba(0,0,0,.7); animation:hod-frame 8s ease-in-out infinite; }
.scn-hint-of-danger .exterior-water { position:absolute; inset:8%; border-radius:50%; background:linear-gradient(135deg, #0a2a3a 0%, #0e3a4a 50%, #0a1a2a 100%); overflow:hidden; }
.scn-hint-of-danger .shark { position:absolute; bottom:20%; left:20%; width:60%; height:20%; background:linear-gradient(180deg, #3a4a5a 0%, #1a2a3a 100%); border-radius:50% 40% 30% 20% / 60% 50% 40% 30%; transform:rotate(-10deg); animation:hod-shark 6s ease-in-out infinite; }
.scn-hint-of-danger .shark-eye { position:absolute; bottom:30%; left:55%; width:4%; height:6%; background:radial-gradient(circle, #f0e0a0 0%, #c0a050 60%); border-radius:50%; box-shadow:0 0 8px 2px #f0e0a0; animation:hod-eye 2s ease-in-out infinite alternate; }
.scn-hint-of-danger .bubble-1 { position:absolute; bottom:10%; left:30%; width:6%; height:6%; background:radial-gradient(circle, rgba(200,230,255,.6) 0%, transparent 100%); border-radius:50%; animation:hod-bubble 4s ease-out infinite; }
.scn-hint-of-danger .bubble-2 { position:absolute; bottom:15%; left:45%; width:4%; height:4%; background:radial-gradient(circle, rgba(200,230,255,.5) 0%, transparent 100%); border-radius:50%; animation:hod-bubble 5s ease-out infinite 2s; }
.scn-hint-of-danger .warning-light { position:absolute; top:8%; right:10%; width:10%; height:10%; background:radial-gradient(circle, #ff8040 0%, #cc4000 60%, transparent 100%); border-radius:50%; box-shadow:0 0 30px 10px #ff8040; animation:hod-warn 1s ease-in-out infinite alternate; }
@keyframes hod-frame { 0%,100% { transform:scale(1); } 50% { transform:scale(1.005); } }
@keyframes hod-shark { 0% { transform:translateX(-10%) rotate(-10deg); } 50% { transform:translateX(10%) rotate(-5deg); } 100% { transform:translateX(-10%) rotate(-10deg); } }
@keyframes hod-eye { 0% { opacity:.7; } 100% { opacity:1; box-shadow:0 0 12px 4px #f0e0a0; } }
@keyframes hod-bubble { 0% { transform:translateY(0) scale(1); opacity:1; } 100% { transform:translateY(-80px) scale(.6); opacity:0; } }
@keyframes hod-warn { 0% { opacity:.3; transform:scale(.8); } 100% { opacity:1; transform:scale(1.2); } }

.scn-lecture-on-pearls {
  background: linear-gradient(180deg, #e8d8b0 0%, #d4c098 50%, #bdab7a 100%), radial-gradient(ellipse at 50% 30%, #fff8e0 10%, transparent 70%);
}
.scn-lecture-on-pearls .room-back { position:absolute; inset:0; background:linear-gradient(180deg, #d4c8a8 0%, #b8a888 100%); }
.scn-lecture-on-pearls .bookshelf { position:absolute; top:10%; left:5%; width:20%; height:70%; background:linear-gradient(90deg, #6a5040 0%, #4a382a 100%); border-radius:4%; box-shadow:inset 0 0 10px rgba(0,0,0,.3); }
.scn-lecture-on-pearls .couch { position:absolute; bottom:15%; left:25%; width:50%; height:30%; background:linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:20% 20% 10% 10%; box-shadow:0 6px 12px rgba(0,0,0,.4); }
.scn-lecture-on-pearls .speaker { position:absolute; bottom:20%; left:48%; width:12%; height:45%; background:linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:lop-speak 5s ease-in-out infinite; }
.scn-lecture-on-pearls .listener1 { position:absolute; bottom:18%; 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:rotate(8deg); animation:lop-listen 7s ease-in-out infinite; }
.scn-lecture-on-pearls .listener2 { position:absolute; bottom:16%; right:22%; width:12%; height:38%; background:linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform:rotate(-5deg); animation:lop-listen 8s ease-in-out infinite 1s; }
.scn-lecture-on-pearls .ceiling-lamp { position:absolute; top:5%; left:45%; width:10%; height:8%; background:radial-gradient(circle, #fff0c0 0%, #d4a050 80%); border-radius:50%; box-shadow:0 0 40px 15px #d4a050; animation:lop-light 4s ease-in-out infinite alternate; }
@keyframes lop-speak { 0% { transform:translateY(0) rotate(-2deg); } 50% { transform:translateY(-4px) rotate(2deg); } 100% { transform:translateY(0) rotate(-2deg); } }
@keyframes lop-listen { 0% { transform:rotate(8deg) translateY(0); } 50% { transform:rotate(10deg) translateY(-2px); } 100% { transform:rotate(8deg) translateY(0); } }
@keyframes lop-light { 0% { opacity:.8; box-shadow:0 0 30px 10px #d4a050; } 100% { opacity:1; box-shadow:0 0 60px 20px #d4a050; } }

.scn-testacea-classification {
  background: linear-gradient(135deg, #e0d0b0 0%, #c8b890 50%, #b0a07a 100%), radial-gradient(circle at 40% 40%, #f5e8c0 0%, transparent 60%);
}
.scn-testacea-classification .table-surface { position:absolute; bottom:0; left:0; right:0; height:50%; background:linear-gradient(180deg, #8a7050 0%, #6a503a 100%); border-radius:20% 20% 0 0; box-shadow:inset 0 8px 20px rgba(0,0,0,.3); }
.scn-testacea-classification .shell { position:absolute; bottom:20%; left:35%; width:30%; height:35%; background:radial-gradient(ellipse at 40% 40%, #f0d8b0 0%, #c8a880 60%, #8a6840 100%); border-radius:50% 50% 40% 40% / 60% 60% 50% 50%; transform:rotate(-20deg); animation:tc-shell 10s ease-in-out infinite; }
.scn-testacea-classification .shell-glow { position:absolute; bottom:20%; left:35%; width:30%; height:35%; background:radial-gradient(circle, rgba(240,216,176,.3) 0%, transparent 100%); border-radius:50%; animation:tc-glow 6s ease-in-out infinite alternate; }
.scn-testacea-classification .pointing { position:absolute; bottom:25%; left:10%; width:8%; height:30%; background:linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:40% 40% 30% 30% / 50% 50% 40% 40%; transform:rotate(15deg); transform-origin:bottom center; animation:tc-hand 4s ease-in-out infinite; }
.scn-testacea-classification .specimen-tag { position:absolute; bottom:30%; left:55%; width:15%; height:4%; background:linear-gradient(180deg, #f0e0c0 0%, #d4c098 100%); border-radius:2px; transform:rotate(5deg); box-shadow:0 2px 4px rgba(0,0,0,.2); }
.scn-testacea-classification .under-shell { position:absolute; bottom:15%; left:35%; width:30%; height:8%; background:radial-gradient(ellipse, rgba(0,0,0,.4) 0%, transparent 100%); border-radius:50%; animation:tc-shadow 8s ease-in-out infinite; }
@keyframes tc-shell { 0% { transform:rotate(-20deg) scale(1); } 50% { transform:rotate(-15deg) scale(1.02); } 100% { transform:rotate(-20deg) scale(1); } }
@keyframes tc-glow { 0% { opacity:.5; } 100% { opacity:1; } }
@keyframes tc-hand { 0% { transform:rotate(15deg) translateY(0); } 25% { transform:rotate(12deg) translateY(-5px); } 75% { transform:rotate(18deg) translateY(-3px); } 100% { transform:rotate(15deg) translateY(0); } }
@keyframes tc-shadow { 0% { transform:scale(1); opacity:.4; } 50% { transform:scale(1.1); opacity:.5; } 100% { transform:scale(1); opacity:.4; } }

.scn-gallery-opens { background: linear-gradient(180deg, #0a0a1e 0%, #14142e 40%, #1e1a2a 100%), radial-gradient(ellipse at 50% 60%, #1e1a3a 0%, transparent 70%); }
.scn-gallery-opens .bg-deep { position:absolute; inset:0; background: linear-gradient(180deg, #0f0f25 0%, #1a1628 50%, #14142e 100%); animation: go-pulse 8s ease-in-out infinite alternate; }
.scn-gallery-opens .bg-mid { position:absolute; inset:10% 5%; background: radial-gradient(ellipse at 50% 40%, rgba(30,26,50,.6) 0%, transparent 70%); animation: go-drift 15s ease-in-out infinite alternate; }
.scn-gallery-opens .tunnel-wall-l { position:absolute; top:0; left:0; width:25%; height:100%; background: linear-gradient(90deg, #1c1630 0%, transparent 100%); border-radius:0 40% 40% 0; animation: go-sway 12s ease-in-out infinite alternate; }
.scn-gallery-opens .tunnel-wall-r { position:absolute; top:0; right:0; width:25%; height:100%; background: linear-gradient(270deg, #1c1630 0%, transparent 100%); border-radius:40% 0 0 40%; animation: go-sway 12s ease-in-out infinite alternate-reverse; }
.scn-gallery-opens .nautilus-silhouette { position:absolute; bottom:35%; left:40%; width:30%; height:12%; background: linear-gradient(180deg, #2a2440 0%, #1c1630 100%); border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%; clip-path: inset(0 0 20% 0 round 0 0 30% 30%); animation: go-float 6s ease-in-out infinite; }
.scn-gallery-opens .light-beam { position:absolute; top:10%; left:45%; width:10%; height:40%; background: linear-gradient(180deg, rgba(100,140,200,.15) 0%, transparent 100%); clip-path: polygon(30% 0, 70% 0, 100% 100%, 0% 100%); animation: go-beam 4s ease-in-out infinite alternate; }
.scn-gallery-opens .bubble { position:absolute; bottom:20%; width:8px; height:8px; background: radial-gradient(circle at 30% 30%, rgba(200,220,255,.4) 0%, transparent 70%); border-radius:50%; }
.scn-gallery-opens .bubble-1 { left:35%; animation: go-bubble 5s linear infinite; animation-delay: 0s; }
.scn-gallery-opens .bubble-2 { left:55%; animation: go-bubble 7s linear infinite; animation-delay: 2s; }
@keyframes go-pulse { 0% { opacity:.6 } 50% { opacity:.9 } 100% { opacity:.7 } }
@keyframes go-drift { 0% { transform: scale(1) } 50% { transform: scale(1.05) } 100% { transform: scale(1) } }
@keyframes go-sway { 0% { transform: translateX(0) } 50% { transform: translateX(-8px) } 100% { transform: translateX(0) } }
@keyframes go-float { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-4px) rotate(1deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes go-beam { 0% { opacity:.3 } 50% { opacity:.6 } 100% { opacity:.3 } }
@keyframes go-bubble { 0% { transform: translateY(0) scale(1); opacity:0; } 20% { opacity:1; } 80% { opacity:.5; } 100% { transform: translateY(-300px) scale(0.5); opacity:0; } }

.scn-mediterranean-surface { background: linear-gradient(180deg, #d4c0a0 0%, #e0c8a8 30%, #c8b090 70%, #8a7a60 100%), radial-gradient(ellipse at 50% 0%, #ffddaa 0%, transparent 70%); }
.scn-mediterranean-surface .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #f0e0c0 0%, #d4c0a0 100%); animation: ms-sky 12s ease-in-out infinite alternate; }
.scn-mediterranean-surface .sea { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #8a9a8a 0%, #6a7a6a 100%); animation: ms-sea 10s ease-in-out infinite alternate; }
.scn-mediterranean-surface .sun { position:absolute; top:12%; left:35%; width:60px; height:60px; background: radial-gradient(circle, #ffddaa 0%, #f0c080 60%, transparent 100%); border-radius:50%; animation: ms-sunpulse 8s ease-in-out infinite alternate; }
.scn-mediterranean-surface .cloud { position:absolute; top:8%; height:20px; background: rgba(240,235,220,.6); border-radius:50%; filter: blur(4px); }
.scn-mediterranean-surface .cloud-1 { left:10%; width:80px; animation: ms-drift 40s linear infinite; }
.scn-mediterranean-surface .cloud-2 { right:15%; width:60px; animation: ms-drift 50s linear infinite reverse; animation-delay: 10s; }
.scn-mediterranean-surface .nautilus-ship { position:absolute; bottom:40%; left:40%; width:25%; height:10%; background: linear-gradient(180deg, #4a4a3a 0%, #3a3a2a 100%); border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%; clip-path: polygon(10% 0, 90% 0, 100% 100%, 0% 100%); animation: ms-float 6s ease-in-out infinite; }
.scn-mediterranean-surface .wave { position:absolute; bottom:20%; height:12%; background: rgba(100,120,110,.3); }
.scn-mediterranean-surface .wave-1 { left:0; right:0; border-radius:50% 50% 0 0; animation: ms-wave 8s ease-in-out infinite alternate; }
.scn-mediterranean-surface .wave-2 { left:10%; right:10%; bottom:28%; height:8%; border-radius:50% 50% 0 0; animation: ms-wave 6s ease-in-out infinite alternate-reverse; }
@keyframes ms-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes ms-sea { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes ms-sunpulse { 0% { transform: scale(1); box-shadow: 0 0 20px 10px #f0c080; } 50% { transform: scale(1.05); box-shadow: 0 0 30px 20px #ffddaa; } 100% { transform: scale(1); box-shadow: 0 0 20px 10px #f0c080; } }
@keyframes ms-drift { 0% { transform: translateX(-30px); } 100% { transform: translateX(120vw); } }
@keyframes ms-float { 0% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-3px); } 100% { transform: translateX(-50%) translateY(0); } }
@keyframes ms-wave { 0% { transform: translateX(0) scaleY(1); } 50% { transform: translateX(15px) scaleY(1.2); } 100% { transform: translateX(0) scaleY(1); } }

.scn-egypt-coast-visible { background: linear-gradient(180deg, #b8c8d8 0%, #e0d8c0 40%, #c8b088 70%, #a08060 100%), radial-gradient(ellipse at 50% 100%, #c8b088 0%, transparent 60%); }
.scn-egypt-coast-visible .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #c8d4e0 0%, #e0d8c0 100%); animation: ec-sky 15s ease-in-out infinite alternate; }
.scn-egypt-coast-visible .sea { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #7a9a8a 0%, #5a7a6a 100%); animation: ec-sea 10s ease-in-out infinite alternate; }
.scn-egypt-coast-visible .coastline { position:absolute; bottom:30%; left:0; right:0; height:10%; background: linear-gradient(180deg, #b09070 0%, #8a7050 100%); border-radius: 20% 60% 0 0 / 40% 60% 0 0; box-shadow: 0 -4px 8px rgba(0,0,0,.2); animation: ec-coast 8s ease-in-out infinite alternate; }
.scn-egypt-coast-visible .sand-dune { position:absolute; bottom:28%; left:20%; width:40%; height:8%; background: linear-gradient(180deg, #c0a880 0%, #a08860 100%); border-radius: 30% 40% 0 0; transform: skewX(-10deg); animation: ec-dune 12s ease-in-out infinite alternate; }
.scn-egypt-coast-visible .pyramid { position:absolute; bottom:30%; left:55%; width:60px; height:70px; background: linear-gradient(180deg, #b09878 0%, #8a7050 100%); clip-path: polygon(50% 0%, 0% 100%, 100% 100%); animation: ec-pyramid 14s ease-in-out infinite alternate; }
.scn-egypt-coast-visible .sun { position:absolute; top:15%; left:60%; width:50px; height:50px; background: radial-gradient(circle, #ffe0a0 0%, #f0c080 60%, transparent 100%); border-radius:50%; animation: ec-sunpulse 9s ease-in-out infinite alternate; }
.scn-egypt-coast-visible .sail-boat { position:absolute; bottom:35%; left:15%; width:40px; height:20px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); clip-path: polygon(20% 0, 80% 0, 100% 100%, 0% 100%); animation: ec-sail 7s ease-in-out infinite; }
.scn-egypt-coast-visible .bird { position:absolute; top:18%; width:20px; height:8px; background: #4a4a3a; border-radius:50% 50% 0 0; transform: rotate(-10deg); animation: ec-bird 6s ease-in-out infinite; }
.scn-egypt-coast-visible .bird-1 { left:25%; animation-delay:0s; }
.scn-egypt-coast-visible .bird-2 { left:45%; animation-delay:2s; }
@keyframes ec-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes ec-sea { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes ec-coast { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes ec-dune { 0% { transform: skewX(-10deg) translateY(0) } 50% { transform: skewX(-12deg) translateY(-2px) } 100% { transform: skewX(-10deg) translateY(0) } }
@keyframes ec-pyramid { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(1) } }
@keyframes ec-sunpulse { 0% { transform: scale(1); box-shadow: 0 0 15px 8px #f0c080; } 50% { transform: scale(1.04); box-shadow: 0 0 25px 15px #ffe0a0; } 100% { transform: scale(1); box-shadow: 0 0 15px 8px #f0c080; } }
@keyframes ec-sail { 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 ec-bird { 0% { transform: translateY(0) rotate(-10deg); } 50% { transform: translateY(-10px) rotate(-5deg); } 100% { transform: translateY(0) rotate(-10deg); } }

.scn-discussion-about-escape { background: linear-gradient(180deg, #d8d0b8 0%, #e8e0c8 50%, #c0b890 100%), radial-gradient(ellipse at 50% 100%, #c0b890 0%, transparent 70%); }
.scn-discussion-about-escape .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #e0d8c0 0%, #c8c0a8 100%); animation: de-sky 14s ease-in-out infinite alternate; }
.scn-discussion-about-escape .sea { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #8a9a8a 0%, #6a7a6a 100%); animation: de-sea 12s ease-in-out infinite alternate; }
.scn-discussion-about-escape .deck { position:absolute; bottom:30%; left:15%; right:15%; height:15%; background: linear-gradient(180deg, #8a7a60 0%, #6a5a40 100%); border-radius: 10% 10% 0 0; clip-path: polygon(5% 0, 95% 0, 100% 100%, 0% 100%); animation: de-deck 10s ease-in-out infinite alternate; }
.scn-discussion-about-escape .beacon { position:absolute; bottom:35%; left:50%; width:20px; height:40px; background: linear-gradient(180deg, #6a5a40 0%, #4a3a2a 100%); border-radius:10% 10% 5% 5%; transform: translateX(-50%); animation: de-beacon 5s ease-in-out infinite alternate; }
.scn-discussion-about-escape .beacon-glow { position:absolute; bottom:42%; left:50%; width:60px; height:60px; background: radial-gradient(circle, rgba(200,180,100,.4) 0%, transparent 70%); transform: translate(-50%, -50%); animation: de-glow 4s ease-in-out infinite alternate; }
.scn-discussion-about-escape .figure { position:absolute; bottom:30%; height:40px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; }
.scn-discussion-about-escape .figure-1 { left:20%; width:20px; animation: de-figure-1 6s ease-in-out infinite; }
.scn-discussion-about-escape .figure-2 { left:40%; width:22px; animation: de-figure-2 7s ease-in-out infinite; animation-delay: 1s; }
.scn-discussion-about-escape .figure-3 { left:60%; width:18px; animation: de-figure-3 5s ease-in-out infinite; animation-delay: 2s; }
.scn-discussion-about-escape .spray { position:absolute; bottom:38%; left:30%; right:30%; height:6%; background: rgba(200,210,220,.3); border-radius:50%; filter: blur(3px); animation: de-spray 8s ease-in-out infinite alternate; }
@keyframes de-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes de-sea { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes de-deck { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes de-beacon { 0% { height:40px; } 50% { height:44px; } 100% { height:40px; } }
@keyframes de-glow { 0% { opacity:.4; transform: translate(-50%, -50%) scale(1); } 50% { opacity:.7; transform: translate(-50%, -50%) scale(1.2); } 100% { opacity:.4; transform: translate(-50%, -50%) scale(1); } }
@keyframes de-figure-1 { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes de-figure-2 { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(-3deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes de-figure-3 { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-1px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes de-spray { 0% { opacity:.2; transform: translateY(0); } 50% { opacity:.5; transform: translateY(-4px); } 100% { opacity:.2; transform: translateY(0); } }

.scn-canal-history { background: linear-gradient(180deg, #87CEEB 0%, #E0E6C8 30%, #C2B280 60%, #8B7355 100%), radial-gradient(ellipse at 50% 100%, #D4C5A9 0%, transparent 60%); }
.scn-canal-history .sky { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #B0D4F1 0%, #E6E1C3 100%); animation: s1-sky 15s ease-in-out infinite alternate; }
.scn-canal-history .water { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #4A7C8C 0%, #2B5A6A 25%, #1A3A4A 100%); animation: s1-water 8s ease-in-out infinite; }
.scn-canal-history .temple-ruin { position:absolute; bottom:45%; left:15%; width:80px; height:100px; background: linear-gradient(180deg, #D3B88E 0%, #A68A5A 40%, #7A5D3A 100%); border-radius:10% 10% 0 0 / 20% 20% 0 0; box-shadow: inset -4px 0 8px rgba(0,0,0,0.3); animation: s1-rise 20s ease-in-out infinite; }
.scn-canal-history .ship { position:absolute; bottom:50%; left:30%; width:60px; height:25px; background: linear-gradient(90deg, #6B4226 0%, #8B5E3C 50%, #6B4226 100%); border-radius:50% 50% 10% 10% / 60% 60% 20% 20%; animation: s1-shift 12s ease-in-out infinite alternate; }
.scn-canal-history .sail { position:absolute; bottom:60%; left:33%; width:20px; height:30px; background: radial-gradient(ellipse at 50% 100%, #F5ECD5 0%, #D6C9A8 100%); clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%); animation: s1-sail 8s ease-in-out infinite; }
.scn-canal-history .reeds { position:absolute; bottom:0; left:10%; width:120px; height:80px; background: linear-gradient(180deg, #6B8E23 0%, #3A5F0B 100%); clip-path: polygon(0% 100%, 20% 0%, 40% 100%, 60% 10%, 80% 100%, 100% 20%, 100% 100%); animation: s1-reeds 6s ease-in-out infinite alternate; }
.scn-canal-history .sun-haze { position:absolute; top:10%; right:20%; width:60px; height:60px; background: radial-gradient(circle, #FFF5D0 0%, #E0C87A 30%, transparent 80%); animation: s1-haze 25s ease-in-out infinite; }
@keyframes s1-sky { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes s1-water { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-3px) scaleY(1.02) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes s1-rise { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(0) } }
@keyframes s1-shift { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(10px) rotate(1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes s1-sail { 0% { transform: rotate(0deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-1deg) } }
@keyframes s1-reeds { 0% { clip-path: polygon(0% 100%, 20% 0%, 40% 100%, 60% 10%, 80% 100%, 100% 20%, 100% 100%); } 100% { clip-path: polygon(0% 100%, 20% 10%, 40% 100%, 60% 0%, 80% 100%, 100% 30%, 100% 100%); } }
@keyframes s1-haze { 0% { opacity:0.3; transform: scale(1); } 50% { opacity:0.6; transform: scale(1.2); } 100% { opacity:0.4; transform: scale(1); } }

.scn-napoleon-trace { background: linear-gradient(180deg, #F4D03F 0%, #E67E22 40%, #C0392B 65%, #A04000 100%), radial-gradient(ellipse at 70% 20%, #F1C40F 0%, transparent 50%); }
.scn-napoleon-trace .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #F9E79F 0%, #E59866 40%, #D35400 100%); animation: s2-sky 20s ease-in-out infinite alternate; }
.scn-napoleon-trace .dune-back { position:absolute; bottom:30%; left:0; right:0; height:30%; background: linear-gradient(180deg, #B9770E 0%, #A04000 100%); border-radius: 40% 60% 0 0; transform: scaleY(1.2); animation: s2-dunes 25s ease-in-out infinite; }
.scn-napoleon-trace .dune-fore { position:absolute; bottom:10%; left:-10%; right:-10%; height:35%; background: linear-gradient(180deg, #D35400 0%, #A04000 50%, #6E2C00 100%); border-radius: 50% 30% 0 0; animation: s2-dunes 30s ease-in-out infinite reverse; }
.scn-napoleon-trace .canal-trace { position:absolute; bottom:35%; left:20%; right:20%; height:2px; background: #E0C068; box-shadow: 0 0 8px #E0C068, 0 0 16px rgba(224,192,104,0.5); animation: s2-trace 10s ease-in-out infinite; }
.scn-napoleon-trace .figure { position:absolute; bottom:22%; left:40%; width:14px; height:30px; background: #2C3E50; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 0 10px rgba(0,0,0,0.4); animation: s2-figure 6s ease-in-out infinite; }
.scn-napoleon-trace .sun { position:absolute; top:20%; right:15%; width:80px; height:80px; background: radial-gradient(circle, #F9E79F 0%, #F1C40F 30%, #E67E22 60%, transparent 90%); border-radius: 50%; box-shadow: 0 0 60px rgba(241,196,15,0.6); animation: s2-sun 12s ease-in-out infinite alternate; }
.scn-napoleon-trace .mirage { position:absolute; bottom:40%; left:10%; width:100px; height:20px; background: linear-gradient(180deg, rgba(255,255,255,0.3), transparent); filter: blur(8px); animation: s2-mirage 15s ease-in-out infinite; }
@keyframes s2-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes s2-dunes { 0% { transform: translateY(0) scaleX(1) } 50% { transform: translateY(-5px) scaleX(1.02) } 100% { transform: translateY(0) scaleX(1) } }
@keyframes s2-trace { 0% { opacity:0.8; height:2px; } 50% { opacity:1; height:3px; } 100% { opacity:0.8; height:2px; } }
@keyframes s2-figure { 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 s2-sun { 0% { transform: scale(1); opacity:0.9; } 50% { transform: scale(1.1); opacity:1; } 100% { transform: scale(0.95); opacity:0.8; } }
@keyframes s2-mirage { 0% { opacity:0.4; transform: translateX(0); } 50% { opacity:0.8; transform: translateX(20px); } 100% { opacity:0.4; transform: translateX(0); } }

.scn-de-lesseps-praised { background: linear-gradient(180deg, #F9E79F 0%, #F39C12 30%, #E67E22 60%, #D35400 100%), radial-gradient(ellipse at 50% 100%, #F1C40F 0%, transparent 60%); }
.scn-de-lesseps-praised .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #FEF9E7 0%, #F9E79F 40%, #F1C40F 100%); animation: s3-sky 18s ease-in-out infinite alternate; }
.scn-de-lesseps-praised .crowd { position:absolute; bottom:15%; left:5%; right:5%; height:40%; background: repeating-linear-gradient(90deg, #2C3E50 0px, #2C3E50 10px, #34495E 10px, #34495E 20px); clip-path: polygon(0% 100%, 5% 60%, 10% 100%, 15% 50%, 20% 100%, 25% 70%, 30% 100%, 35% 40%, 40% 100%, 45% 80%, 50% 100%, 55% 30%, 60% 100%, 65% 90%, 70% 100%, 75% 20%, 80% 100%, 85% 70%, 90% 100%, 95% 50%, 100% 100%); animation: s3-crowd 10s ease-in-out infinite; }
.scn-de-lesseps-praised .podium { position:absolute; bottom:25%; left:50%; width:80px; height:60px; transform: translateX(-50%); background: linear-gradient(180deg, #8B4513 0%, #5C3317 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 10px 20px rgba(0,0,0,0.5); animation: s3-podium 8s ease-in-out infinite; }
.scn-de-lesseps-praised .figure { position:absolute; bottom:45%; left:50%; width:20px; height:40px; transform: translateX(-50%); background: linear-gradient(180deg, #1A5276 0%, #0E2C3B 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 0 15px rgba(0,0,0,0.4); animation: s3-figure 6s ease-in-out infinite; }
.scn-de-lesseps-praised .flag { position:absolute; top:15%; right:20%; width:25px; height:40px; background: linear-gradient(180deg, #E74C3C 0%, #F1C40F 50%, #27AE60 100%); clip-path: polygon(0% 0%, 100% 0%, 90% 50%, 100% 100%, 0% 100%); transform-origin: bottom left; animation: s3-flag 4s ease-in-out infinite alternate; }
.scn-de-lesseps-praised .sun-rays { position:absolute; top:0; left:0; right:0; bottom:0; background: repeating-linear-gradient(45deg, rgba(241,196,15,0.15) 0px, rgba(241,196,15,0.15) 30px, transparent 30px, transparent 60px); animation: s3-rays 20s linear infinite; }
.scn-de-lesseps-praised .confetti { position:absolute; top:0; left:0; right:0; bottom:50%; background: radial-gradient(circle at 20% 30%, #E74C3C 2px, transparent 2px), radial-gradient(circle at 70% 10%, #3498DB 3px, transparent 3px), radial-gradient(circle at 50% 60%, #F1C40F 2px, transparent 2px); background-size: 50px 50px; animation: s3-confetti 3s ease-in-out infinite; }
@keyframes s3-sky { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes s3-crowd { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes s3-podium { 0% { transform: translateX(-50%) } 50% { transform: translateX(-50%) translateY(-2px) } 100% { transform: translateX(-50%) } }
@keyframes s3-figure { 0% { transform: translateX(-50%) rotate(0deg) } 50% { transform: translateX(-50%) rotate(2deg) } 100% { transform: translateX(-50%) rotate(-1deg) } }
@keyframes s3-flag { 0% { transform: rotate(-5deg) } 100% { transform: rotate(5deg) } }
@keyframes s3-rays { 0% { background-position: 0 0; } 100% { background-position: 100% 100%; } }
@keyframes s3-confetti { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-20px) rotate(180deg); } 100% { transform: translateY(0) rotate(360deg); } }

.scn-surprising-claim { background: linear-gradient(180deg, #AED6F1 0%, #85C1E9 40%, #5DADE2 60%, #2E86C1 100%), radial-gradient(ellipse at 80% 20%, #FFFFFF 0%, transparent 50%); }
.scn-surprising-claim .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #D4E6F1 0%, #AED6F1 50%, #85C1E9 100%); animation: s4-sky 10s ease-in-out infinite alternate; }
.scn-surprising-claim .water { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #1A5276 0%, #154360 40%, #0E2C3B 100%); animation: s4-water 6s ease-in-out infinite; }
.scn-surprising-claim .ship-hull { position:absolute; bottom:35%; left:10%; width:120px; height:40px; background: linear-gradient(180deg, #5D6D7E 0%, #2C3E50 100%); border-radius:10% 10% 30% 30%; box-shadow: 0 8px 16px rgba(0,0,0,0.6); animation: s4-hull 8s ease-in-out infinite; }
.scn-surprising-claim .wake { position:absolute; bottom:30%; left:0; right:0; height:10px; background: linear-gradient(90deg, transparent, #E5E8E8 20%, #AED6F1 40%, transparent 70%); filter: blur(2px); animation: s4-wake 3s ease-in-out infinite; }
.scn-surprising-claim .speed-lines { position:absolute; top:20%; left:0; right:0; bottom:40%; background: repeating-linear-gradient(0deg, rgba(255,255,255,0.3) 0px, rgba(255,255,255,0.3) 2px, transparent 2px, transparent 12px); animation: s4-lines 2s linear infinite; }
.scn-surprising-claim .spray { position:absolute; bottom:40%; left:20%; width:40px; height:30px; background: radial-gradient(circle at 50% 100%, #FFFFFF 0%, transparent 70%); filter: blur(3px); animation: s4-spray 4s ease-in-out infinite; }
.scn-surprising-claim .shadow { position:absolute; bottom:10%; left:5%; right:5%; height:20px; background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.6) 0%, transparent 100%); animation: s4-shadow 8s ease-in-out infinite; }
@keyframes s4-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes s4-water { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-4px) scaleY(1.03) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes s4-hull { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(5px) rotate(0.5deg) } 100% { transform: translateX(0) rotate(-0.5deg) } }
@keyframes s4-wake { 0% { opacity:0.6; transform: scaleX(1); } 50% { opacity:1; transform: scaleX(1.05); } 100% { opacity:0.6; transform: scaleX(1); } }
@keyframes s4-lines { 0% { transform: translateX(0); } 100% { transform: translateX(-20px); } }
@keyframes s4-spray { 0% { transform: translateY(0) scale(1); opacity:0.6; } 50% { transform: translateY(-10px) scale(1.2); opacity:1; } 100% { transform: translateY(0) scale(1); opacity:0.6; } }
@keyframes s4-shadow { 0% { transform: scaleY(1); opacity:0.5; } 50% { transform: scaleY(0.8); opacity:0.8; } 100% { transform: scaleY(1); opacity:0.5; } }

/* title-page */
.scn-title-page {
  background: 
    linear-gradient(180deg, #7b8a9c 0%, #9aabbe 40%, #c4d0db 100%),
    radial-gradient(ellipse at 50% 0%, #d6e0e8 0%, transparent 70%);
}
.scn-title-page .bk-pages {
  position: absolute; bottom: 30%; left: 50%; width: 160px; height: 120px;
  transform: translateX(-50%);
  background: 
    linear-gradient(135deg, #e8e4dc 0%, #c8bfb0 30%, #b8aa98 100%);
  border-radius: 4px 4px 8px 8px;
  box-shadow: 0 8px 24px rgba(60,70,80,.5), inset 0 -4px 8px rgba(0,0,0,.1);
  animation: bk-float 6s ease-in-out infinite alternate;
}
.scn-title-page .bk-spine {
  position: absolute; bottom: 30%; left: 50%; width: 8px; height: 120px;
  transform: translateX(-50%);
  background: #6b5d4f;
  border-radius: 2px;
  box-shadow: 0 4px 12px rgba(0,0,0,.3);
  z-index: 2;
  animation: bk-pulse 8s ease-in-out infinite;
}
.scn-title-page .bk-ship {
  position: absolute; bottom: 38%; left: 50%; width: 80px; height: 30px;
  transform: translateX(-50%);
  background: #3a4a5a;
  border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%;
  clip-path: polygon(10% 30%, 20% 0%, 60% 0%, 70% 30%, 90% 40%, 90% 100%, 10% 100%);
  opacity: 0.7;
  animation: bk-drift 20s linear infinite alternate;
}
.scn-title-page .bk-cloud-a {
  position: absolute; top: 15%; left: 10%; width: 80px; height: 24px;
  background: rgba(200,210,220,.6);
  border-radius: 50%;
  filter: blur(8px);
  animation: bk-cloudmove 35s linear infinite;
}
.scn-title-page .bk-cloud-b {
  position: absolute; top: 25%; right: 5%; width: 60px; height: 18px;
  background: rgba(180,190,200,.5);
  border-radius: 50%;
  filter: blur(6px);
  animation: bk-cloudmove 50s linear infinite reverse;
}
.scn-title-page .bk-horizon {
  position: absolute; bottom: 40%; left: 0; right: 0; height: 2px;
  background: #a0afbe;
  opacity: 0.5;
  animation: bk-fade 12s ease-in-out infinite alternate;
}
@keyframes bk-float {
  0% { transform: translateX(-50%) translateY(0) rotate(-1deg); }
  50% { transform: translateX(-50%) translateY(-4px) rotate(1deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(0); }
}
@keyframes bk-pulse {
  0% { opacity: 0.6; transform: translateX(-50%) scaleY(1); }
  50% { opacity: 1; transform: translateX(-50%) scaleY(1.02); }
  100% { opacity: 0.6; transform: translateX(-50%) scaleY(1); }
}
@keyframes bk-drift {
  0% { transform: translateX(-50%) translateX(0); }
  50% { transform: translateX(-50%) translateX(10px); }
  100% { transform: translateX(-50%) translateX(0); }
}
@keyframes bk-cloudmove {
  0% { transform: translateX(-40px); }
  50% { transform: translateX(20px); }
  100% { transform: translateX(100vw); }
}
@keyframes bk-fade {
  0% { opacity: 0.3; }
  50% { opacity: 0.6; }
  100% { opacity: 0.4; }
}

/* verne-title-explanation */
.scn-verne-title-explanation {
  background: 
    linear-gradient(180deg, #9a8c7a 0%, #b8a894 40%, #d4c8b4 100%),
    radial-gradient(ellipse at 50% 80%, #c8bba8 0%, transparent 60%);
}
.scn-verne-title-explanation .vt-desk {
  position: absolute; bottom: 10%; left: 10%; right: 10%; height: 60%;
  background: linear-gradient(180deg, #6b5d4f 0%, #4a3e32 100%);
  border-radius: 8px;
  box-shadow: inset 0 4px 12px rgba(0,0,0,.4);
  animation: vt-pulse 10s ease-in-out infinite;
}
.scn-verne-title-explanation .vt-scroll {
  position: absolute; bottom: 35%; left: 50%; width: 140px; height: 70px;
  transform: translateX(-50%);
  background: linear-gradient(135deg, #d8ccb8 0%, #c4b49c 60%, #b8a48c 100%);
  border-radius: 0 0 8px 8px;
  box-shadow: 0 4px 12px rgba(0,0,0,.3);
  animation: vt-unroll 8s ease-in-out infinite alternate;
}
.scn-verne-title-explanation .vt-quill {
  position: absolute; bottom: 40%; left: 60%; width: 6px; height: 50px;
  background: linear-gradient(180deg, #c8b49c 0%, #8a7a6a 100%);
  border-radius: 50% 50% 10% 10%;
  transform-origin: bottom center;
  animation: vt-scribble 4s ease-in-out infinite;
}
.scn-verne-title-explanation .vt-inkwell {
  position: absolute; bottom: 30%; left: 35%; width: 24px; height: 28px;
  background: #5a4a3a;
  border-radius: 40% 40% 20% 20%;
  box-shadow: 0 2px 6px rgba(0,0,0,.4);
  animation: vt-inkbob 6s ease-in-out infinite alternate;
}
.scn-verne-title-explanation .vt-inkdrop {
  position: absolute; bottom: 38%; left: calc(35% + 8px); width: 4px; height: 4px;
  background: #2a1a1a;
  border-radius: 50%;
  animation: vt-drip 4s ease-in-out infinite;
}
.scn-verne-title-explanation .vt-shadow {
  position: absolute; bottom: 30%; left: 50%; width: 100px; height: 10px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse, rgba(0,0,0,.3) 0%, transparent 80%);
  animation: vt-fade 7s ease-in-out infinite alternate;
}
@keyframes vt-pulse {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes vt-unroll {
  0% { transform: translateX(-50%) scaleY(0.95); }
  50% { transform: translateX(-50%) scaleY(1.05); }
  100% { transform: translateX(-50%) scaleY(0.98); }
}
@keyframes vt-scribble {
  0% { transform: rotate(-10deg) translateY(0); }
  50% { transform: rotate(5deg) translateY(-2px); }
  100% { transform: rotate(-8deg) translateY(1px); }
}
@keyframes vt-inkbob {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes vt-drip {
  0% { transform: translateY(0); opacity: 1; }
  50% { transform: translateY(8px); opacity: 0.6; }
  100% { transform: translateY(0); opacity: 0; }
}
@keyframes vt-fade {
  0% { opacity: 0.3; }
  50% { opacity: 0.5; }
  100% { opacity: 0.4; }
}

/* introduction-mystery */
.scn-introduction-mystery {
  background: 
    linear-gradient(180deg, #1a2a3a 0%, #0e1a26 30%, #050d14 100%),
    radial-gradient(ellipse at 50% 20%, #2a4050 0%, transparent 70%);
}
.scn-introduction-mystery .im-surface {
  position: absolute; top: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a4a5a 0%, #1a3a4a 100%);
  border-radius: 0 0 60% 60% / 0 0 30% 30%;
  animation: im-waves 8s ease-in-out infinite alternate;
}
.scn-introduction-mystery .im-midwater {
  position: absolute; top: 25%; left: 0; right: 0; bottom: 40%;
  background: linear-gradient(180deg, #1a3a4a 0%, #0e2230 100%);
  opacity: 0.7;
  animation: im-shimmer 12s linear infinite;
}
.scn-introduction-mystery .im-deep {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #050d14 0%, #020810 100%);
  border-radius: 50% 50% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 20px 40px rgba(0,0,0,.8);
}
.scn-introduction-mystery .im-creature {
  position: absolute; bottom: 25%; left: 50%; width: 40px; height: 50px;
  transform: translateX(-50%);
  background: radial-gradient(circle at 30% 40%, #5080a0 0%, #1a3a4a 70%);
  border-radius: 40% 60% 50% 50% / 60% 40% 50% 50%;
  box-shadow: 0 0 20px 8px rgba(80,130,180,.4);
  animation: im-glide 14s ease-in-out infinite;
}
.scn-introduction-mystery .im-abyss {
  position: absolute; bottom: 5%; left: 20%; right: 20%; height: 2px;
  background: #2a4050;
  opacity: 0.3;
  animation: im-depth 20s linear infinite alternate;
}
@keyframes im-waves {
  0% { transform: skewX(0) translateY(0); }
  50% { transform: skewX(2deg) translateY(-4px); }
  100% { transform: skewX(-1deg) translateY(2px); }
}
@keyframes im-shimmer {
  0% { opacity: 0.6; }
  50% { opacity: 0.8; }
  100% { opacity: 0.5; }
}
@keyframes im-glide {
  0% { transform: translateX(-50%) translateY(0) scale(1) rotate(0); }
  50% { transform: translateX(-50%) translateY(-10px) scale(1.05) rotate(3deg); }
  100% { transform: translateX(-50%) translateY(0) scale(1) rotate(0); }
}
@keyframes im-depth {
  0% { transform: scaleY(1); opacity: 0.2; }
  50% { transform: scaleY(2); opacity: 0.5; }
  100% { transform: scaleY(1); opacity: 0.3; }
}

/* verne-inspiration */
.scn-verne-inspiration {
  background: 
    linear-gradient(180deg, #b8a080 0%, #9c8460 40%, #7a6a50 100%),
    radial-gradient(ellipse at 50% 0%, #d4c0a0 0%, transparent 70%);
}
.scn-verne-inspiration .vi-sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #6a7a6a 0%, #4a5a4a 100%);
  border-radius: 40% 60% 0 0 / 30% 40% 0 0;
  animation: vi-swell 8s ease-in-out infinite alternate;
}
.scn-verne-inspiration .vi-ship {
  position: absolute; bottom: 30%; left: 50%; width: 60px; height: 40px;
  transform: translateX(-50%);
  background: #6a5040;
  border-radius: 30% 30% 10% 10% / 60% 60% 10% 10%;
  clip-path: polygon(10% 20%, 90% 20%, 80% 100%, 20% 100%);
  box-shadow: 0 4px 8px rgba(0,0,0,.4);
  animation: vi-bob 6s ease-in-out infinite;
}
.scn-verne-inspiration .vi-sail {
  position: absolute; bottom: 35%; left: 50%; width: 30px; height: 50px;
  transform: translateX(-50%);
  background: linear-gradient(135deg, #c8b898 0%, #a89070 100%);
  border-radius: 40% 40% 10% 10% / 80% 80% 10% 10%;
  clip-path: polygon(20% 0%, 80% 0%, 100% 100%, 0% 100%);
  animation: vi-billow 10s ease-in-out infinite;
}
.scn-verne-inspiration .vi-lighthouse {
  position: absolute; bottom: 40%; right: 20%; width: 8px; height: 60px;
  background: linear-gradient(180deg, #8a7a6a 0%, #4a3e32 100%);
  border-radius: 2px 2px 0 0;
  box-shadow: 0 0 12px 4px rgba(180,140,80,.3);
  animation: vi-beamrot 14s linear infinite;
}
.scn-verne-inspiration .vi-beam {
  position: absolute; bottom: 45%; right: 20%; width: 60px; height: 20px;
  background: radial-gradient(ellipse at 0% 50%, #d4b080 0%, transparent 70%);
  border-radius: 50% 0 0 50%;
  transform-origin: right center;
  animation: vi-flash 4s ease-in-out infinite alternate;
}
.scn-verne-inspiration .vi-cloud {
  position: absolute; top: 10%; left: 10%; width: 80px; height: 20px;
  background: rgba(200,180,160,.5);
  border-radius: 50%;
  filter: blur(6px);
  animation: vi-drift 30s linear infinite;
}
@keyframes vi-swell {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-3px) scaleY(1.02); }
  100% { transform: translateY(2px) scaleY(0.98); }
}
@keyframes vi-bob {
  0% { transform: translateX(-50%) translateY(0) rotate(-2deg); }
  50% { transform: translateX(-50%) translateY(-3px) rotate(2deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(0); }
}
@keyframes vi-billow {
  0% { transform: translateX(-50%) scaleX(1) rotate(0); }
  50% { transform: translateX(-50%) scaleX(1.1) rotate(-3deg); }
  100% { transform: translateX(-50%) scaleX(0.95) rotate(2deg); }
}
@keyframes vi-beamrot {
  0% { transform: rotate(0); }
  50% { transform: rotate(5deg); }
  100% { transform: rotate(0); }
}
@keyframes vi-flash {
  0% { opacity: 0.4; }
  50% { opacity: 0.9; }
  100% { opacity: 0.5; }
}
@keyframes vi-drift {
  0% { transform: translateX(0); }
  50% { transform: translateX(30px); }
  100% { transform: translateX(-20px); }
}

/* sun-higher */
.scn-sun-higher { background: linear-gradient(180deg, #87CEEB 0%, #48B5D0 40%, #2E8B9A 70%, #1A5B6B 100%), radial-gradient(ellipse at 50% 0%, rgba(255,255,200,0.4) 0%, transparent 60%); }
.scn-sun-higher .water-surface { position:absolute; top:0; left:0; right:0; height:45%; background: linear-gradient(180deg, rgba(135,206,235,0.9) 0%, rgba(72,181,208,0.5) 100%); }
.scn-sun-higher .sun-rays { position:absolute; top:0; left:0; right:0; height:100%; background: linear-gradient(135deg, transparent 30%, rgba(255,255,200,0.15) 30%, transparent 32%, transparent 60%, rgba(255,255,200,0.1) 60%, transparent 62%); background-size: 200% 100%; animation: sh-rays 12s ease-in-out infinite alternate; }
.scn-sun-higher .ray-b { animation-delay: -6s; opacity:0.6; }
.scn-sun-higher .seafloor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #3A6B7A 0%, #2A4A5A 100%); border-radius: 60% 40% 0 0 / 100% 100% 0 0; }
.scn-sun-higher .crags { position:absolute; bottom:20%; left:10%; width:80%; height:25%; background: radial-gradient(ellipse at 30% 50%, #4A6A7A 10%, #2A4A5A 70%, transparent 100%), radial-gradient(ellipse at 70% 40%, #3A5A6A 10%, transparent 60%); animation: sh-crags 20s ease-in-out infinite alternate; }
.scn-sun-higher .mollusks { position:absolute; bottom:25%; left:20%; width:60%; height:10%; background: radial-gradient(circle at 20% 50%, #D4A574 4px, transparent 4px), radial-gradient(circle at 50% 30%, #C49565 3px, transparent 3px), radial-gradient(circle at 80% 60%, #E0B080 5px, transparent 5px); background-size: 80px 20px; background-repeat: repeat-x; animation: sh-mollusks 30s linear infinite; }
.scn-sun-higher .particles { position:absolute; top:20%; left:0; right:0; height:60%; background: radial-gradient(circle at 10% 30%, rgba(255,255,200,0.15) 2px, transparent 2px), radial-gradient(circle at 70% 60%, rgba(255,255,200,0.1) 3px, transparent 3px); background-size: 100px 100px; animation: sh-particles 25s linear infinite; }
@keyframes sh-rays { 0% { background-position: 0% 0%; opacity:0.7; } 50% { background-position: 50% 0%; opacity:1; } 100% { background-position: 100% 0%; opacity:0.8; } }
@keyframes sh-crags { 0% { transform: translateY(0); } 50% { transform: translateY(-4px) scale(1.01); } 100% { transform: translateY(2px); } }
@keyframes sh-mollusks { 0% { background-position: 0 0; } 100% { background-position: -80px 0; } }
@keyframes sh-particles { 0% { transform: translateY(0); opacity:0.5; } 50% { transform: translateY(-10px) scale(1.2); opacity:0.8; } 100% { transform: translateY(0); opacity:0.4; } }

/* articulates-appear */
.scn-articulates-appear { background: linear-gradient(0deg, #1A4B5A 0%, #2E7A8A 30%, #4A9AAA 60%, #6ABACA 100%), radial-gradient(ellipse at 50% 40%, rgba(200,255,200,0.2) 0%, transparent 70%); }
.scn-articulates-appear .bg-water { position:absolute; inset:0; background: linear-gradient(135deg, rgba(74,154,170,0.3) 0%, transparent 50%, rgba(106,186,202,0.2) 100%); animation: aa-water 15s ease-in-out infinite alternate; }
.scn-articulates-appear .plants-back { position:absolute; bottom:20%; left:5%; width:30%; height:70%; background: linear-gradient(180deg, transparent 0%, #2A6A4A 40%, #1A4A3A 100%); border-radius: 50% 50% 30% 30% / 100% 100% 40% 40%; transform-origin: bottom; animation: aa-plants-b 8s ease-in-out infinite alternate; }
.scn-articulates-appear .plants-fore { position:absolute; bottom:10%; right:10%; width:25%; height:80%; background: linear-gradient(180deg, transparent 0%, #3A8A5A 30%, #2A6A4A 100%); border-radius: 40% 60% 30% 30% / 80% 100% 50% 50%; transform-origin: bottom; animation: aa-plants-f 10s ease-in-out infinite alternate; animation-delay: -4s; }
.scn-articulates-appear .crab-frog { position:absolute; bottom:35%; left:30%; width:30px; height:20px; background: radial-gradient(ellipse at 30% 50%, #A05630 10%, #703820 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: aa-crab1 6s ease-in-out infinite; }
.scn-articulates-appear .crab-robber { position:absolute; bottom:40%; left:55%; width:25px; height:18px; background: radial-gradient(ellipse at 50% 50%, #804828 0%, #503018 100%); border-radius: 40% 60% 50% 50% / 50% 50% 60% 40%; animation: aa-crab2 7s ease-in-out infinite; animation-delay: -3s; }
.scn-articulates-appear .crab-parthenope { position:absolute; bottom:30%; left:70%; width:28px; height:22px; background: radial-gradient(ellipse at 30% 40%, #C06030 0%, #803818 100%); border-radius: 60% 40% 40% 60% / 70% 50% 50% 30%; animation: aa-crab3 8s ease-in-out infinite; animation-delay: -5s; }
.scn-articulates-appear .bubbles { position:absolute; top:10%; left:20%; width:50%; height:80%; background: radial-gradient(circle at 10% 30%, rgba(255,255,255,0.2) 4px, transparent 4px), radial-gradient(circle at 80% 50%, rgba(255,255,255,0.15) 3px, transparent 3px), radial-gradient(circle at 40% 70%, rgba(255,255,255,0.1) 5px, transparent 5px); background-size: 80px 80px; animation: aa-bubbles 20s linear infinite; }
@keyframes aa-water { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes aa-plants-b { 0% { transform: scaleY(1) rotate(0deg); } 50% { transform: scaleY(1.05) rotate(3deg); } 100% { transform: scaleY(0.95) rotate(-2deg); } }
@keyframes aa-plants-f { 0% { transform: scaleY(1) rotate(0deg); } 50% { transform: scaleY(1.08) rotate(-4deg); } 100% { transform: scaleY(0.98) rotate(2deg); } }
@keyframes aa-crab1 { 0% { transform: translate(0,0) rotate(0deg); } 30% { transform: translate(8px,-4px) rotate(5deg); } 60% { transform: translate(12px,2px) rotate(-3deg); } 100% { transform: translate(0,0) rotate(0deg); } }
@keyframes aa-crab2 { 0% { transform: translate(0,0) rotate(0deg); } 40% { transform: translate(-6px,-6px) rotate(-5deg); } 80% { transform: translate(4px,-2px) rotate(3deg); } 100% { transform: translate(0,0) rotate(0deg); } }
@keyframes aa-crab3 { 0% { transform: translate(0,0) scale(1); } 50% { transform: translate(-10px,4px) scale(0.95) rotate(4deg); } 100% { transform: translate(0,0) scale(1); } }
@keyframes aa-bubbles { 0% { background-position: 0 0; opacity:0.6; } 50% { background-position: 40px 30px; opacity:1; } 100% { background-position: 80px 60px; opacity:0.5; } }

/* oysterbank-reached */
.scn-oysterbank-reached { background: linear-gradient(180deg, #48B5D0 0%, #2E8B9A 40%, #1A5B6B 80%, #0A3B4B 100%), radial-gradient(ellipse at 50% 30%, rgba(255,255,200,0.3) 0%, transparent 60%); }
.scn-oysterbank-reached .ocean-bg { position:absolute; inset:0; background: linear-gradient(135deg, rgba(72,181,208,0.2) 0%, transparent 50%, rgba(26,91,107,0.3) 100%); animation: ob-ocean 18s ease-in-out infinite alternate; }
.scn-oysterbank-reached .rock-cluster { position:absolute; bottom:15%; left:50%; width:70%; height:35%; transform:translateX(-50%); background: radial-gradient(ellipse at 30% 40%, #4A5A4A 10%, #2A3A2A 60%, transparent 100%), radial-gradient(ellipse at 70% 60%, #3A4A3A 15%, transparent 70%); border-radius: 30% 30% 20% 20% / 80% 80% 40% 40%; box-shadow: inset 0 -10px 20px rgba(0,0,0,0.5); }
.scn-oysterbank-reached .oysters { position:absolute; bottom:20%; left:50%; transform:translateX(-50%); width:80%; height:15%; background: radial-gradient(circle at 15% 50%, #C8A878 6px, transparent 6px), radial-gradient(circle at 35% 40%, #B89868 5px, transparent 5px), radial-gradient(circle at 55% 60%, #D8B878 7px, transparent 7px), radial-gradient(circle at 75% 30%, #C0A070 4px, transparent 4px); background-size: 80px 30px; background-repeat: repeat-x; animation: ob-oysters 25s linear infinite; }
.scn-oysterbank-reached .row-2 { bottom:25%; background: radial-gradient(circle at 20% 50%, #B09060 4px, transparent 4px), radial-gradient(circle at 60% 40%, #C0A070 5px, transparent 5px); background-size: 100px 25px; animation-delay: -12s; opacity:0.8; }
.scn-oysterbank-reached .diver-outline { position:absolute; bottom:30%; left:20%; width:20px; height:40px; background: linear-gradient(180deg, #1A2A3A 0%, #0A1A2A 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ob-diver 6s ease-in-out infinite; }
.scn-oysterbank-reached .sand { position:absolute; bottom:0; left:0; right:0; height:15%; background: linear-gradient(180deg, #4A5A4A 0%, #3A4A3A 100%); border-radius: 40% 60% 0 0 / 100% 100% 0 0; }
@keyframes ob-ocean { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes ob-oysters { 0% { background-position: 0 0; } 100% { background-position: -80px 0; } }
@keyframes ob-diver { 0% { transform: translate(0,0) rotate(-3deg); } 30% { transform: translate(8px,-2px) rotate(2deg); } 60% { transform: translate(16px,1px) rotate(-1deg); } 100% { transform: translate(0,0) rotate(0deg); } }

/* inexhaustible-mine */
.scn-inexhaustible-mine { background: linear-gradient(180deg, #1A3B4B 0%, #2A5B6B 30%, #1A4B5A 70%, #0A2B3B 100%), radial-gradient(ellipse at 50% 60%, rgba(255,255,200,0.15) 0%, transparent 60%); }
.scn-inexhaustible-mine .cave-bg { position:absolute; inset:0; background: linear-gradient(135deg, rgba(42,91,107,0.3) 0%, transparent 50%, rgba(10,43,59,0.4) 100%); animation: im-cave 20s ease-in-out infinite alternate; }
.scn-inexhaustible-mine .shell-heap { position:absolute; bottom:15%; left:25%; width:50%; height:45%; background: radial-gradient(ellipse at 30% 50%, #B89868 10%, #987858 40%, #685838 100%), radial-gradient(ellipse at 70% 40%, #A88858 15%, #785828 60%); border-radius: 40% 40% 30% 30% / 80% 80% 50% 50%; box-shadow: 0 -10px 30px rgba(0,0,0,0.6); animation: im-heap 30s ease-in-out infinite alternate; }
.scn-inexhaustible-mine .shell-detail { position:absolute; bottom:30%; left:30%; width:30px; height:20px; background: radial-gradient(ellipse at 50% 40%, #D8B080 10%, #A88858 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: im-shell1 10s ease-in-out infinite; }
.scn-inexhaustible-mine .s2 { left:55%; bottom:25%; width:25px; height:18px; background: radial-gradient(ellipse at 40% 50%, #C8A070 10%, #987858 100%); animation: im-shell2 12s ease-in-out infinite; animation-delay: -5s; }
.scn-inexhaustible-mine .figure-ned { position:absolute; bottom:35%; left:45%; width:22px; height:42px; background: linear-gradient(180deg, #1A2A3A 0%, #0A1A2A 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: im-ned 8s ease-in-out infinite; }
.scn-inexhaustible-mine .sparkles { position:absolute; top:20%; left:30%; width:40%; height:40%; background: radial-gradient(circle at 10% 20%, rgba(255,255,200,0.3) 3px, transparent 3px), radial-gradient(circle at 80% 50%, rgba(255,255,200,0.2) 2px, transparent 2px), radial-gradient(circle at 50% 80%, rgba(255,255,200,0.15) 4px, transparent 4px); background-size: 100px 100px; animation: im-sparkles 15s linear infinite; }
@keyframes im-cave { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes im-heap { 0% { transform: scale(1); } 50% { transform: scale(1.02) translateY(-2px); } 100% { transform: scale(0.98) translateY(1px); } }
@keyframes im-shell1 { 0% { transform: translate(0,0) rotate(0deg); } 30% { transform: translate(5px,-3px) rotate(5deg); } 60% { transform: translate(8px,2px) rotate(-2deg); } 100% { transform: translate(0,0) rotate(0deg); } }
@keyframes im-shell2 { 0% { transform: translate(0,0) rotate(0deg); } 40% { transform: translate(-4px,-4px) rotate(-4deg); } 80% { transform: translate(2px,2px) rotate(3deg); } 100% { transform: translate(0,0) rotate(0deg); } }
@keyframes im-ned { 0% { transform: translate(0,0) rotate(-2deg); } 40% { transform: translate(6px,-3px) rotate(3deg); } 70% { transform: translate(12px,1px) rotate(-1deg); } 100% { transform: translate(0,0) rotate(0deg); } }
@keyframes im-sparkles { 0% { background-position: 0 0; opacity:0.5; } 50% { background-position: 50px 30px; opacity:1; } 100% { background-position: 100px 60px; opacity:0.6; } }

.scn-tide-waiting {
  background: 
    linear-gradient(180deg, #7ec8e3 0%, #4a9bb5 40%, #2a6a8a 70%, #1a4a6a 100%),
    radial-gradient(ellipse at 60% 20%, rgba(255,255,200,0.3) 0%, transparent 60%);
}
.scn-tide-waiting .sky { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #8dd4ee 0%, #5aaac4 40%, transparent 100%); animation: tw-sky 20s ease-in-out infinite alternate; }
.scn-tide-waiting .sun { position:absolute; top:15%; left:70%; width:40px; height:40px; background: radial-gradient(circle, #fff8c0 0%, #ffd060 40%, transparent 70%); border-radius:50%; box-shadow: 0 0 60px 20px rgba(255,208,96,0.5); animation: tw-sun 30s ease-in-out infinite alternate; }
.scn-tide-waiting .sea { position:absolute; bottom:40%; left:0; right:0; height:30%; background: linear-gradient(180deg, #2a7a9a 0%, #1a4a6a 100%); border-radius: 40% 60% 0 0 / 60% 40% 0 0; animation: tw-sea 12s ease-in-out infinite alternate; }
.scn-tide-waiting .sand { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #c6a86a 0%, #a08450 100%); border-radius: 20% 30% 0 0 / 40% 50% 0 0; animation: tw-sand 25s ease-in-out infinite; }
.scn-tide-waiting .nautilus { position:absolute; bottom:42%; left:30%; width:120px; height:40px; background: linear-gradient(90deg, #5a4a3a 0%, #3a2a1a 50%, #5a4a3a 100%); border-radius: 50% 30% 30% 50% / 80% 60% 60% 80%; transform: rotate(-5deg); box-shadow: 0 4px 12px rgba(0,0,0,0.4); animation: tw-nautilus 15s ease-in-out infinite; }
.scn-tide-waiting .tide-line { position:absolute; bottom:52%; left:0; right:0; height:4px; background: linear-gradient(90deg, transparent, rgba(255,255,255,0.3), transparent); animation: tw-tide 8s ease-in-out infinite alternate; }
.scn-tide-waiting .seagull { position:absolute; top:10%; left:20%; width:30px; height:20px; background: radial-gradient(ellipse at 30% 50%, #ddd 0%, #aaa 70%); border-radius:50% 60% 20% 50% / 40% 50% 20% 50%; transform: rotate(-15deg); animation: tw-gull 18s ease-in-out infinite; }
@keyframes tw-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes tw-sun { 0% { transform: translate(0,0) scale(1); box-shadow: 0 0 60px 20px rgba(255,208,96,0.5); } 50% { transform: translate(5px,-3px) scale(1.02); box-shadow: 0 0 80px 30px rgba(255,220,120,0.6); } 100% { transform: translate(-4px,2px) scale(0.98); box-shadow: 0 0 50px 15px rgba(255,200,80,0.4); } }
@keyframes tw-sea { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-2px) scaleY(1.02); } 100% { transform: translateY(1px) scaleY(0.98); } }
@keyframes tw-sand { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes tw-nautilus { 0% { transform: rotate(-5deg) translate(0,0); } 50% { transform: rotate(-3deg) translate(2px,-1px); } 100% { transform: rotate(-6deg) translate(-1px,1px); } }
@keyframes tw-tide { 0% { opacity:0.2; transform: scaleY(1); } 50% { opacity:0.6; transform: scaleY(2); } 100% { opacity:0.3; transform: scaleY(1.2); } }
@keyframes tw-gull { 0% { transform: translate(0,0) rotate(-15deg); } 50% { transform: translate(30px,-10px) rotate(-10deg); } 100% { transform: translate(-20px,5px) rotate(-20deg); } }

.scn-nemo-goes-below {
  background: 
    linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 40%, #060e18 100%),
    radial-gradient(ellipse at 30% 50%, #1a3a5a 0%, transparent 70%);
}
.scn-nemo-goes-below .corridor { position:absolute; inset:0; background: linear-gradient(90deg, #0a1a2a 0%, #172a3a 30%, #0a1a2a 100%); animation: ngb-corridor 20s ease-in-out infinite alternate; }
.scn-nemo-goes-below .arch { position:absolute; top:30%; left:20%; width:60%; height:40%; background: linear-gradient(180deg, transparent 40%, #2a4a5a 50%, transparent 52%); border-radius: 50% 50% 0 0 / 80% 80% 0 0; box-shadow: inset 0 0 30px rgba(0,0,0,0.8); animation: ngb-arch 15s ease-in-out infinite; }
.scn-nemo-goes-below .door { position:absolute; bottom:18%; left:45%; width:50px; height:70px; background: linear-gradient(180deg, #3a4a5a 0%, #1a2a3a 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 0 20px 5px rgba(100,150,200,0.3); animation: ngb-door 10s ease-in-out infinite; }
.scn-nemo-goes-below .figure { position:absolute; bottom:20%; left:50%; width:16px; height:45px; background: linear-gradient(180deg, #1a2a3a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: ngb-figure 6s ease-in-out infinite; }
.scn-nemo-goes-below .light { position:absolute; top:40%; left:30%; width:10px; height:10px; background: radial-gradient(circle, #b0c8e0 0%, #6090b0 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 30px 10px rgba(96,144,176,0.4); animation: ngb-light 4s ease-in-out infinite alternate; }
.scn-nemo-goes-below .shadow { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 80%, rgba(0,0,0,0.6) 0%, transparent 70%); animation: ngb-shadow 12s ease-in-out infinite; }
@keyframes ngb-corridor { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes ngb-arch { 0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.05) translateY(-3px); } 100% { transform: scaleY(0.98) translateY(2px); } }
@keyframes ngb-door { 0% { transform: translateX(0) rotate(0deg); } 33% { transform: translateX(-2px) rotate(-1deg); } 66% { transform: translateX(1px) rotate(0.5deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes ngb-figure { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 25% { transform: translateX(4px) translateY(-2px) rotate(2deg); } 50% { transform: translateX(8px) translateY(0) rotate(-1deg); } 75% { transform: translateX(12px) translateY(-1px) rotate(1deg); } 100% { transform: translateX(16px) translateY(0) rotate(0deg); } }
@keyframes ngb-light { 0% { opacity:0.3; box-shadow: 0 0 20px 5px rgba(96,144,176,0.2); } 50% { opacity:0.8; box-shadow: 0 0 40px 15px rgba(96,144,176,0.5); } 100% { opacity:0.4; box-shadow: 0 0 25px 8px rgba(96,144,176,0.3); } }
@keyframes ngb-shadow { 0% { opacity:0.5; } 50% { opacity:0.7; } 100% { opacity:0.6; } }

.scn-ned-skeptical {
  background: 
    linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 50%, #1a1a2a 100%),
    radial-gradient(ellipse at 40% 30%, #2a2a4a 0%, transparent 70%);
}
.scn-ned-skeptical .wall { position:absolute; inset:0; background: linear-gradient(135deg, #12121e 0%, #080812 100%); animation: ns-wall 24s ease-in-out infinite alternate; }
.scn-ned-skeptical .table { position:absolute; bottom:12%; left:20%; width:60%; height:8%; background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 4px 8px rgba(0,0,0,0.6); animation: ns-table 18s ease-in-out infinite; }
.scn-ned-skeptical .chair { position:absolute; bottom:15%; left:22%; width:20px; height:25px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%; transform: rotate(5deg); animation: ns-chair 12s ease-in-out infinite alternate; }
.scn-ned-skeptical .ned-figure { position:absolute; bottom:20%; left:25%; width:18px; height:40px; background: linear-gradient(180deg, #2a2a3a 0%, #0e0e1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: ns-ned 5s ease-in-out infinite; }
.scn-ned-skeptical .lantern { position:absolute; top:20%; left:20%; width:8px; height:12px; background: radial-gradient(circle, #d0a060 0%, #806040 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 0 20px 8px rgba(208,160,96,0.4); animation: ns-lantern 3s ease-in-out infinite alternate; }
.scn-ned-skeptical .clock { position:absolute; top:15%; right:30%; width:20px; height:20px; background: radial-gradient(circle, #4a5a6a 0%, #2a3a4a 100%); border-radius:50%; box-shadow: 0 0 10px 2px rgba(100,120,140,0.3); animation: ns-clock 20s linear infinite; }
.scn-ned-skeptical .shadow-sharp { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, transparent 30%, rgba(0,0,0,0.8) 100%); animation: ns-shadow 9s ease-in-out infinite alternate; }
@keyframes ns-wall { 0% { opacity:0.6; } 50% { opacity:0.8; } 100% { opacity:0.7; } }
@keyframes ns-table { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(1px); } }
@keyframes ns-chair { 0% { transform: rotate(5deg) translateX(0); } 33% { transform: rotate(7deg) translateX(1px); } 66% { transform: rotate(3deg) translateX(-1px); } 100% { transform: rotate(5deg) translateX(0); } }
@keyframes ns-ned { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 25% { transform: translateX(3px) translateY(-1px) rotate(2deg); } 50% { transform: translateX(-2px) translateY(0) rotate(-1deg); } 75% { transform: translateX(4px) translateY(-2px) rotate(1deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes ns-lantern { 0% { opacity:0.5; box-shadow: 0 0 15px 5px rgba(208,160,96,0.3); } 50% { opacity:1; box-shadow: 0 0 30px 12px rgba(208,160,96,0.6); } 100% { opacity:0.6; box-shadow: 0 0 20px 8px rgba(208,160,96,0.4); } }
@keyframes ns-clock { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }
@keyframes ns-shadow { 0% { opacity:0.3; } 50% { opacity:0.6; } 100% { opacity:0.4; } }

.scn-ned-scoffs {
  background: 
    linear-gradient(180deg, #1a2028 0%, #10141a 50%, #1a2028 100%),
    radial-gradient(ellipse at 60% 40%, #2a3040 0%, transparent 70%);
}
.scn-ned-scoffs .wall-left { position:absolute; inset:0 70% 0 0; background: linear-gradient(135deg, #14181e 0%, #0a0e14 100%); animation: nsc-wall-l 20s ease-in-out infinite alternate; }
.scn-ned-scoffs .wall-right { position:absolute; inset:0 0 0 70%; background: linear-gradient(135deg, #14181e 0%, #0a0e14 100%); animation: nsc-wall-r 22s ease-in-out infinite alternate-reverse; }
.scn-ned-scoffs .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #2a303a 0%, #1a1e26 100%); border-radius: 10% 10% 0 0; animation: nsc-floor 18s ease-in-out infinite; }
.scn-ned-scoffs .ned { position:absolute; bottom:18%; left:25%; width:18px; height:42px; background: linear-gradient(180deg, #2a303a 0%, #10141a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: nsc-ned 4s ease-in-out infinite; }
.scn-ned-scoffs .conseil { position:absolute; bottom:18%; left:55%; width:16px; height:38px; background: linear-gradient(180deg, #20242e 0%, #0e121a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: nsc-conseil 5s ease-in-out infinite; }
.scn-ned-scoffs .porthole { position:absolute; top:25%; right:15%; width:28px; height:28px; background: radial-gradient(circle, #304050 0%, #1a2838 80%); border-radius:50%; border: 3px solid #2a3a4a; box-shadow: inset 0 0 15px rgba(0,0,0,0.8), 0 0 20px 5px rgba(100,150,200,0.2); animation: nsc-porthole 12s ease-in-out infinite alternate; }
.scn-ned-scoffs .instrument { position:absolute; bottom:40%; left:10%; width:16px; height:20px; background: linear-gradient(180deg, #3a4a5a 0%, #2a3a4a 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 0 8px 2px rgba(100,120,140,0.4); animation: nsc-instr 8s ease-in-out infinite; }
@keyframes nsc-wall-l { 0% { opacity:0.5; } 50% { opacity:0.7; } 100% { opacity:0.6; } }
@keyframes nsc-wall-r { 0% { opacity:0.5; } 50% { opacity:0.8; } 100% { opacity:0.6; } }
@keyframes nsc-floor { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes nsc-ned { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 20% { transform: translateX(2px) translateY(-1px) rotate(2deg); } 40% { transform: translateX(-1px) translateY(0) rotate(-1deg); } 60% { transform: translateX(3px) translateY(-2px) rotate(1deg); } 80% { transform: translateX(-2px) translateY(0) rotate(-2deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes nsc-conseil { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 25% { transform: translateX(1px) translateY(-1px) rotate(1deg); } 50% { transform: translateX(-1px) translateY(0) rotate(-1deg); } 75% { transform: translateX(2px) translateY(-2px) rotate(1deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes nsc-porthole { 0% { opacity:0.4; box-shadow: inset 0 0 15px rgba(0,0,0,0.8), 0 0 20px 5px rgba(100,150,200,0.1); } 50% { opacity:0.7; box-shadow: inset 0 0 20px rgba(0,0,0,0.6), 0 0 30px 10px rgba(100,150,200,0.3); } 100% { opacity:0.5; box-shadow: inset 0 0 15px rgba(0,0,0,0.8), 0 0 20px 5px rgba(100,150,200,0.15); } }
@keyframes nsc-instr { 0% { transform: rotate(0deg) scaleY(1); } 33% { transform: rotate(5deg) scaleY(1.05); } 66% { transform: rotate(-3deg) scaleY(0.95); } 100% { transform: rotate(0deg) scaleY(1); } }

.scn-aronnax-recounts-la-perouse {
  background: linear-gradient(180deg, #f5e6c8 0%, #d4b896 40%, #a07a5a 100%), radial-gradient(ellipse at 50% 100%, #b08a6a 0%, transparent 70%);
}
.scn-aronnax-recounts-la-perouse .bg-warm { position:absolute; inset:0; background: linear-gradient(180deg, #f0dbb0 0%, #c8a880 60%, #8a6a4a 100%); animation: al-bg 12s ease-in-out infinite alternate; }
.scn-aronnax-recounts-la-perouse .desk { position:absolute; bottom:20%; left:10%; right:10%; height:30%; background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%); border-radius:4% 4% 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,.3); }
.scn-aronnax-recounts-la-perouse .map { position:absolute; bottom:30%; left:20%; width:50%; height:25%; background: linear-gradient(135deg, #e8d8a8 0%, #c8b080 50%, #b09868 100%); border-radius:2%; box-shadow: 0 2px 8px rgba(0,0,0,.2); animation: al-map 8s ease-in-out infinite alternate; }
.scn-aronnax-recounts-la-perouse .lamp-glow { position:absolute; bottom:45%; left:68%; width:12px; height:20px; background: radial-gradient(circle, #ffd080 0%, #e8a050 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 30px 15px rgba(255,208,128,.5); animation: al-lamp 4s ease-in-out infinite alternate; }
.scn-aronnax-recounts-la-perouse .figure-profile { position:absolute; bottom:22%; left:12%; width:24px; height:50px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e0a 100%); border-radius: 50% 30% 40% 50% / 60% 40% 40% 60%; transform-origin: bottom center; animation: al-figure 6s ease-in-out infinite; }
.scn-aronnax-recounts-la-perouse .book { position:absolute; bottom:26%; left:38%; width:30px; height:15px; background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%); border-radius:2px; box-shadow: 0 1px 4px rgba(0,0,0,.3); animation: al-book 10s ease-in-out infinite alternate; }
@keyframes al-bg { 0% { opacity:.85; } 50% { opacity:1; } 100% { opacity:.9; } }
@keyframes al-map { 0% { transform: rotate(0deg) scale(1); } 50% { transform: rotate(2deg) scale(1.01); } 100% { transform: rotate(-1deg) scale(1); } }
@keyframes al-lamp { 0% { box-shadow: 0 0 20px 10px rgba(255,208,128,.4); opacity:.8; } 50% { box-shadow: 0 0 35px 18px rgba(255,208,128,.7); opacity:1; } 100% { box-shadow: 0 0 25px 12px rgba(255,208,128,.5); opacity:.85; } }
@keyframes al-figure { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-1px) rotate(2deg); } 60% { transform: translateY(0) rotate(-1deg); } 100% { transform: translateY(-1px) rotate(0deg); } }
@keyframes al-book { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }

.scn-search-expedition-1791 {
  background: linear-gradient(180deg, #d4e2f0 0%, #a8c4d8 30%, #7098a8 70%, #4a6a80 100%), radial-gradient(ellipse at 50% 20%, #f0e8c0 0%, transparent 60%);
}
.scn-search-expedition-1791 .sky-gold { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #f0e8c8 0%, #b8d0e0 50%, #80a0b0 100%); animation: se-sky 20s ease-in-out infinite alternate; }
.scn-search-expedition-1791 .sea { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #4a7a8a 0%, #2a5a6a 50%, #1a3a4a 100%); }
.scn-search-expedition-1791 .ship-hope { position:absolute; bottom:40%; left:15%; width:60px; height:45px; background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius:20% 20% 10% 10%; transform-origin: bottom center; animation: se-ship-hope 8s ease-in-out infinite; }
.scn-search-expedition-1791 .ship-search { position:absolute; bottom:43%; right:20%; width:55px; height:40px; background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%); border-radius:18% 18% 8% 8%; transform-origin: bottom center; animation: se-ship-search 10s ease-in-out infinite; }
.scn-search-expedition-1791 .sail-hope { position:absolute; bottom:60%; left:24%; width:20px; height:30px; background: linear-gradient(135deg, #f0e8d0 0%, #d0c0a0 100%); border-radius:30% 30% 10% 10%; clip-path: polygon(50% 0%, 0% 100%, 100% 100%); animation: se-sail 6s ease-in-out infinite alternate; }
.scn-search-expedition-1791 .sail-search { position:absolute; bottom:63%; right:28%; width:18px; height:28px; background: linear-gradient(135deg, #e8dcc0 0%, #c8b490 100%); border-radius:25% 25% 8% 8%; clip-path: polygon(50% 0%, 0% 100%, 100% 100%); animation: se-sail 6s ease-in-out infinite alternate-reverse; }
.scn-search-expedition-1791 .wave-front { position:absolute; bottom:10%; left:0; right:0; height:15%; background: radial-gradient(ellipse at 30% 100%, rgba(255,255,255,.15) 0%, transparent 70%); animation: se-wave 5s ease-in-out infinite; }
.scn-search-expedition-1791 .wave-back { position:absolute; bottom:25%; left:0; right:0; height:12%; background: radial-gradient(ellipse at 70% 100%, rgba(255,255,255,.1) 0%, transparent 70%); animation: se-wave 7s ease-in-out infinite reverse; }
.scn-search-expedition-1791 .sun-disc { position:absolute; top:12%; left:80%; width:40px; height:40px; background: radial-gradient(circle, #fff0c0 0%, #f0c880 70%, transparent 100%); border-radius:50%; box-shadow: 0 0 40px 20px rgba(240,200,128,.6); animation: se-sun 30s ease-in-out infinite alternate; }
@keyframes se-sky { 0% { opacity:.9; } 50% { opacity:1; } 100% { opacity:.85; } }
@keyframes se-ship-hope { 0% { transform: rotate(0deg) translateY(0); } 25% { transform: rotate(1deg) translateY(-1px); } 50% { transform: rotate(-1deg) translateY(0); } 75% { transform: rotate(2deg) translateY(-1px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes se-ship-search { 0% { transform: rotate(0deg) translateY(0); } 30% { transform: rotate(-2deg) translateY(-1px); } 60% { transform: rotate(1deg) translateY(0); } 100% { transform: rotate(0deg) translateY(-1px); } }
@keyframes se-sail { 0% { transform: scaleX(1) translateY(0); } 50% { transform: scaleX(1.05) translateY(-2px); } 100% { transform: scaleX(0.95) translateY(0); } }
@keyframes se-wave { 0% { transform: translateX(-10px); } 50% { transform: translateX(10px); } 100% { transform: translateX(-10px); } }
@keyframes se-sun { 0% { transform: translateY(0) scale(1); opacity:.8; } 50% { transform: translateY(-5px) scale(1.02); opacity:1; } 100% { transform: translateY(0) scale(1); opacity:.9; } }

.scn-bowen-testimony {
  background: linear-gradient(180deg, #e8dcc0 0%, #c0b090 40%, #8a7a5a 70%, #5a4a3a 100%), radial-gradient(ellipse at 50% 100%, #a08a6a 0%, transparent 70%);
}
.scn-bowen-testimony .sky-coast { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #f0e8d8 0%, #d0c0a0 50%, #b09878 100%); animation: bt-sky 15s ease-in-out infinite alternate; }
.scn-bowen-testimony .sea-coast { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #5a7a6a 0%, #3a5a4a 50%, #1a3a2a 100%); }
.scn-bowen-testimony .cliffs { position:absolute; bottom:30%; right:10%; width:40%; height:35%; background: linear-gradient(180deg, #a09070 0%, #7a6a4a 60%, #4a3a2a 100%); border-radius:0 40% 0 0 / 0 60% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.3); }
.scn-bowen-testimony .wreckage { position:absolute; bottom:28%; left:15%; width:40px; height:20px; background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%); border-radius:10%; transform: rotate(-20deg); box-shadow: 0 2px 6px rgba(0,0,0,.3); animation: bt-wreck 10s ease-in-out infinite alternate; }
.scn-bowen-testimony .palm-tree { position:absolute; bottom:35%; left:5%; width:10px; height:60px; background: linear-gradient(180deg, #5a3a2a 0%, #2a1a0a 100%); border-radius:30% 30% 10% 10%; transform-origin: bottom center; animation: bt-palm 6s ease-in-out infinite; }
.scn-bowen-testimony .palm-tree::before { content:''; position:absolute; top:-15px; left:-20px; width:50px; height:20px; background: radial-gradient(ellipse at 50% 100%, #6a8a3a 0%, #3a5a1a 100%); border-radius:50%; }
.scn-bowen-testimony .distant-ship { position:absolute; bottom:45%; left:60%; width:30px; height:20px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:20% 20% 5% 5%; animation: bt-ship 12s ease-in-out infinite; }
.scn-bowen-testimony .debris { position:absolute; bottom:25%; left:25%; width:15px; height:8px; background: #5a3a2a; border-radius:20%; box-shadow: 8px -2px 0 #4a2a1a, 16px 0 0 #3a1a0a; animation: bt-debris 8s ease-in-out infinite alternate; }
@keyframes bt-sky { 0% { opacity:.85; } 50% { opacity:1; } 100% { opacity:.9; } }
@keyframes bt-wreck { 0% { transform: rotate(-20deg) translateY(0); } 50% { transform: rotate(-18deg) translateY(-2px); } 100% { transform: rotate(-22deg) translateY(0); } }
@keyframes bt-palm { 0% { transform: rotate(0deg); } 30% { transform: rotate(3deg); } 60% { transform: rotate(-2deg); } 100% { transform: rotate(0deg); } }
@keyframes bt-ship { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-1px) rotate(2deg); } 50% { transform: translateY(0) rotate(-1deg); } 75% { transform: translateY(-1px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes bt-debris { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(3px) rotate(5deg); } 100% { transform: translateX(-2px) rotate(-3deg); } }

.scn-search-vain {
  background: linear-gradient(180deg, #c8d8e0 0%, #90a8b0 30%, #608090 60%, #3a5060 100%), radial-gradient(ellipse at 50% 100%, #4a6a7a 0%, transparent 70%);
}
.scn-search-vain .sky-vain { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #e0e8f0 0%, #b0c8d0 40%, #8098a0 100%); animation: sv-sky 18s ease-in-out infinite alternate; }
.scn-search-vain .sea-vain { position:absolute; bottom:0; left:0; right:0; height:60%; background: linear-gradient(180deg, #3a6070 0%, #1a4050 50%, #0a2030 100%); }
.scn-search-vain .island-vanikoro { position:absolute; bottom:40%; left:45%; width:80px; height:40px; background: linear-gradient(180deg, #6a7a4a 0%, #3a4a2a 100%); border-radius:50% 50% 20% 20% / 80% 80% 20% 20%; box-shadow: 0 4px 12px rgba(0,0,0,.3); transform-origin: bottom center; animation: sv-island 14s ease-in-out infinite; }
.scn-search-vain .ship-hope-vain { position:absolute; bottom:30%; left:10%; width:50px; height:35px; background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%); border-radius:15% 15% 8% 8%; animation: sv-ship 10s ease-in-out infinite; }
.scn-search-vain .ship-search-vain { position:absolute; bottom:28%; right:12%; width:45px; height:32px; background: linear-gradient(180deg, #4a3a2a 0%, #1a0a00 100%); border-radius:15% 15% 8% 8%; animation: sv-ship 12s ease-in-out infinite reverse; }
.scn-search-vain .sail-hope-vain { position:absolute; bottom:48%; left:16%; width:18px; height:25px; background: linear-gradient(135deg, #e8dcc0 0%, #c8b490 100%); clip-path: polygon(50% 0%, 0% 100%, 100% 100%); animation: sv-sail 7s ease-in-out infinite alternate; }
.scn-search-vain .sail-search-vain { position:absolute; bottom:46%; right:18%; width:16px; height:22px; background: linear-gradient(135deg, #d8ccb0 0%, #b8a480 100%); clip-path: polygon(50% 0%, 0% 100%, 100% 100%); animation: sv-sail 7s ease-in-out infinite alternate-reverse; }
.scn-search-vain .wave-vain { position:absolute; bottom:15%; left:0; right:0; height:18%; background: radial-gradient(ellipse at 50% 100%, rgba(255,255,255,.12) 0%, transparent 70%); animation: sv-wave 6s ease-in-out infinite; }
.scn-search-vain .cloud-vain { position:absolute; top:12%; left:20%; width:100px; height:16px; background: linear-gradient(180deg, rgba(255,255,255,.4) 0%, rgba(255,255,255,.1) 100%); border-radius:50%; filter: blur(6px); animation: sv-cloud 40s linear infinite; }
@keyframes sv-sky { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.85; } }
@keyframes sv-island { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(1.01); } 100% { transform: translateY(0) scale(1); } }
@keyframes sv-ship { 0% { transform: rotate(0deg) translateY(0); } 25% { transform: rotate(1deg) translateY(-1px); } 50% { transform: rotate(-1deg) translateY(0); } 75% { transform: rotate(2deg) translateY(-1px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes sv-sail { 0% { transform: scaleX(1) translateY(0); } 50% { transform: scaleX(1.04) translateY(-2px); } 100% { transform: scaleX(0.96) translateY(0); } }
@keyframes sv-wave { 0% { transform: translateX(-8px); } 50% { transform: translateX(8px); } 100% { transform: translateX(-8px); } }
@keyframes sv-cloud { 0% { transform: translateX(-40px); } 100% { transform: translateX(110vw); } }

/* Scene: nemo-transfigured */
.scn-nemo-transfigured {
  background: linear-gradient(180deg, #0e0e1f 0%, #1a1a3a 40%, #2a2a4a 100%), radial-gradient(ellipse at 50% 60%, #2a2a4a 0%, transparent 70%);
}
.scn-nemo-transfigured .bg { position:absolute; inset:0; background: linear-gradient(135deg, #0a0a1a 0%, #1a1a3a 50%, #0a0a1a 100%); animation: nt-bg 8s ease-in-out infinite alternate; }
.scn-nemo-transfigured .shoulder { position:absolute; bottom:15%; left:50%; width:120px; height:80px; transform:translateX(-50%); background: linear-gradient(180deg, #1a1a3a 0%, #0a0a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; box-shadow: 0 4px 12px rgba(0,0,0,.6); }
.scn-nemo-transfigured .head { position:absolute; bottom:40%; left:50%; width:50px; height:60px; transform:translateX(-50%); background: linear-gradient(180deg, #1a1a3a 0%, #2a2a4a 100%); border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%; box-shadow: inset 0 -4px 8px rgba(0,0,0,.4), 0 2px 6px rgba(0,0,0,.5); animation: nt-head 4s ease-in-out infinite; }
.scn-nemo-transfigured .eye-left, .scn-nemo-transfigured .eye-right { position:absolute; bottom:52%; width:6px; height:4px; background: radial-gradient(circle, #c08040 0%, #8a5a2a 100%); border-radius:50%; box-shadow: 0 0 8px 2px #c08040; animation: nt-eye 3s ease-in-out infinite alternate; }
.scn-nemo-transfigured .eye-left { left:44%; }
.scn-nemo-transfigured .eye-right { left:52%; }
.scn-nemo-transfigured .shadow-line { position:absolute; bottom:38%; left:50%; width:30px; height:2px; transform:translateX(-50%); background: #0a0a1a; border-radius: 0; opacity:.6; animation: nt-shadow 5s ease-in-out infinite; }
@keyframes nt-bg { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes nt-head { 0% { transform: translateX(-50%) rotate(0deg) } 25% { transform: translateX(-50%) rotate(-1deg) } 50% { transform: translateX(-50%) rotate(0deg) } 75% { transform: translateX(-50%) rotate(1deg) } 100% { transform: translateX(-50%) rotate(0deg) } }
@keyframes nt-eye { 0% { box-shadow: 0 0 4px 1px #c08040; opacity:.6 } 50% { box-shadow: 0 0 12px 4px #e0a050; opacity:1 } 100% { box-shadow: 0 0 8px 2px #c08040; opacity:.7 } }
@keyframes nt-shadow { 0% { transform: translateX(-50%) scaleX(1) } 50% { transform: translateX(-50%) scaleX(1.2) } 100% { transform: translateX(-50%) scaleX(1) } }

/* Scene: nemo-regains-control */
.scn-nemo-regains-control {
  background: linear-gradient(90deg, #15172a 0%, #1e2038 50%, #15172a 100%), radial-gradient(ellipse at 80% 50%, #2a2d4a 0%, transparent 70%);
}
.scn-nemo-regains-control .bg { position:absolute; inset:0; background: linear-gradient(0deg, #0e0f1c 0%, #1e2038 100%); animation: nrc-bg 10s ease-in-out infinite alternate; }
.scn-nemo-regains-control .figure { position:absolute; bottom:20%; left:30%; width:60px; height:120px; background: linear-gradient(180deg, #1a1c2e 0%, #0e0f1c 100%); border-radius: 20% 20% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: nrc-figure 6s ease-in-out infinite; }
.scn-nemo-regains-control .arm { position:absolute; bottom:40%; left:28%; width:30px; height:8px; background: #1a1c2e; border-radius: 20% 50% 50% 20%; transform: rotate(-30deg); transform-origin: right center; animation: nrc-arm 3s ease-in-out infinite; }
.scn-nemo-regains-control .window { position:absolute; top:15%; right:10%; width:60px; height:80px; border: 3px solid #2a2d4a; background: linear-gradient(135deg, #1e2038 0%, #15172a 100%); border-radius: 8px; box-shadow: inset 0 0 20px rgba(0,0,0,.5); animation: nrc-window 12s ease-in-out infinite alternate; }
.scn-nemo-regains-control .light-source { position:absolute; top:20%; right:20%; width:8px; height:8px; background: radial-gradient(circle, rgba(180,180,220,.3) 0%, transparent 100%); border-radius:50%; animation: nrc-light 5s ease-in-out infinite alternate; }
.scn-nemo-regains-control .shadow { position:absolute; bottom:15%; left:25%; width:80px; height:20px; background: #0a0b14; border-radius: 50%; filter: blur(4px); opacity:.5; animation: nrc-shadow 7s ease-in-out infinite; }
@keyframes nrc-bg { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes nrc-figure { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(3px) rotate(-1deg) } 50% { transform: translateX(0) rotate(0deg) } 75% { transform: translateX(-3px) rotate(1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes nrc-arm { 0% { transform: rotate(-30deg) scaleX(1) } 50% { transform: rotate(-20deg) scaleX(1.1) } 100% { transform: rotate(-30deg) scaleX(1) } }
@keyframes nrc-window { 0% { opacity:.6 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes nrc-light { 0% { box-shadow: 0 0 4px rgba(180,180,220,.1) } 50% { box-shadow: 0 0 16px rgba(180,180,220,.4) } 100% { box-shadow: 0 0 8px rgba(180,180,220,.2) } }
@keyframes nrc-shadow { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.2) } 100% { transform: scaleX(1) } }

/* Scene: confinement-order */
.scn-confinement-order {
  background: linear-gradient(0deg, #0e0c10 0%, #1a1720 50%, #0e0c10 100%), radial-gradient(ellipse at 50% 80%, #2a2430 0%, transparent 70%);
}
.scn-confinement-order .bg { position:absolute; inset:0; background: linear-gradient(180deg, #121018 0%, #0a080e 100%); animation: co-bg 9s ease-in-out infinite alternate; }
.scn-confinement-order .walls-left { position:absolute; left:0; top:0; bottom:0; width:20%; background: linear-gradient(90deg, #1a1720 0%, #0e0c10 100%); transform: skewY(2deg); transform-origin: top left; animation: co-wall 12s ease-in-out infinite; }
.scn-confinement-order .walls-right { position:absolute; right:0; top:0; bottom:0; width:20%; background: linear-gradient(-90deg, #1a1720 0%, #0e0c10 100%); transform: skewY(-2deg); transform-origin: top right; animation: co-wall 12s ease-in-out infinite reverse; }
.scn-confinement-order .door { position:absolute; bottom:10%; left:50%; width:80px; height:120px; transform:translateX(-50%); background: linear-gradient(180deg, #2a2430 0%, #1a1720 100%); border-radius: 4px; border: 2px solid #3a3444; box-shadow: inset 0 0 20px rgba(0,0,0,.6); animation: co-door 5s ease-in-out infinite; }
.scn-confinement-order .bars { position:absolute; bottom:12%; left:50%; width:60px; height:90px; transform:translateX(-50%); background: repeating-linear-gradient(0deg, #3a3444 0px, #3a3444 2px, transparent 2px, transparent 14px); animation: co-bars 4s ease-in-out infinite alternate; }
.scn-confinement-order .figure { position:absolute; bottom:10%; left:35%; width:30px; height:70px; background: linear-gradient(180deg, #1a1720 0%, #0e0c10 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: co-figure 6s ease-in-out infinite; }
.scn-confinement-order .shadow { position:absolute; bottom:8%; left:30%; width:50px; height:10px; background: #0a080e; border-radius:50%; filter: blur(3px); opacity:.6; animation: co-shadow 7s ease-in-out infinite; }
@keyframes co-bg { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes co-wall { 0% { transform: skewY(2deg) } 50% { transform: skewY(0deg) } 100% { transform: skewY(-2deg) } }
@keyframes co-door { 0% { transform: translateX(-50%) scale(1) } 50% { transform: translateX(-50%) scaleY(1.02) } 100% { transform: translateX(-50%) scale(1) } }
@keyframes co-bars { 0% { opacity:.5 } 50% { opacity:1 } 100% { opacity:.6 } }
@keyframes co-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 co-shadow { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.1) } 100% { transform: scaleX(1) } }

/* Scene: informed-ned-conseil */
.scn-informed-ned-conseil {
  background: linear-gradient(135deg, #1f1a12 0%, #2a2218 40%, #1f1a12 100%), radial-gradient(ellipse at 60% 70%, #3a3228 0%, transparent 70%);
}
.scn-informed-ned-conseil .bg { position:absolute; inset:0; background: linear-gradient(180deg, #1a1510 0%, #0f0c08 100%); animation: inc-bg 8s ease-in-out infinite alternate; }
.scn-informed-ned-conseil .table { position:absolute; bottom:20%; left:50%; width:100px; height:10px; transform:translateX(-50%); background: linear-gradient(90deg, #2a2218 0%, #3a3228 50%, #2a2218 100%); border-radius: 4px; box-shadow: 0 2px 6px rgba(0,0,0,.4); animation: inc-table 10s ease-in-out infinite; }
.scn-informed-ned-conseil .figure1 { position:absolute; bottom:25%; left:25%; width:30px; height:60px; background: linear-gradient(180deg, #1f1a12 0%, #0f0c08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: inc-fig1 5s ease-in-out infinite; }
.scn-informed-ned-conseil .figure2 { position:absolute; bottom:25%; right:25%; width:30px; height:60px; background: linear-gradient(180deg, #1f1a12 0%, #0f0c08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: inc-fig2 5s ease-in-out infinite 0.5s; }
.scn-informed-ned-conseil .figure3 { position:absolute; bottom:25%; left:50%; width:30px; height:65px; transform:translateX(-50%); background: linear-gradient(180deg, #2a2218 0%, #1f1a12 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: inc-fig3 6s ease-in-out infinite; }
.scn-informed-ned-conseil .door { position:absolute; top:5%; right:5%; width:60px; height:90px; border: 2px solid #3a3228; background: linear-gradient(180deg, #1f1a12 0%, #0f0c08 100%); border-radius: 4px; box-shadow: inset 0 0 12px rgba(0,0,0,.5); animation: inc-door 7s ease-in-out infinite alternate; }
.scn-informed-ned-conseil .lantern { position:absolute; top:30%; left:15%; width:10px; height:12px; background: radial-gradient(circle, #d4a060 0%, #8a5a2a 100%); border-radius: 20% 20% 50% 50%; box-shadow: 0 0 12px 3px #d4a060, 0 0 24px 6px rgba(212,160,96,.3); animation: inc-lantern 3s ease-in-out infinite alternate; }
@keyframes inc-bg { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes inc-table { 0% { transform: translateX(-50%) scaleY(1) } 50% { transform: translateX(-50%) scaleY(1.05) } 100% { transform: translateX(-50%) scaleY(1) } }
@keyframes inc-fig1 { 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 inc-fig2 { 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 inc-fig3 { 0% { transform: translateX(-50%) translateY(0) rotate(0deg) } 25% { transform: translateX(-50%) translateY(-2px) rotate(-1deg) } 50% { transform: translateX(-50%) translateY(0) rotate(0deg) } 75% { transform: translateX(-50%) translateY(-1px) rotate(1deg) } 100% { transform: translateX(-50%) translateY(0) rotate(0deg) } }
@keyframes inc-door { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.03) } 100% { transform: scaleX(1) } }
@keyframes inc-lantern { 0% { box-shadow: 0 0 8px 2px #d4a060, 0 0 16px 4px rgba(212,160,96,.2); opacity:.8 } 50% { box-shadow: 0 0 16px 4px #e0b070, 0 0 32px 8px rgba(224,176,112,.4); opacity:1 } 100% { box-shadow: 0 0 10px 3px #d4a060, 0 0 20px 5px rgba(212,160,96,.25); opacity:.9 } }

/* Scene 1: remora-and-ancient-history */
.scn-remora-and-ancient-history {
  background: 
    linear-gradient(180deg, #3a6b8a 0%, #1c3e5a 50%, #0f2440 100%),
    radial-gradient(ellipse at 50% 0%, #fadc9f 0%, transparent 60%);
  overflow: hidden;
}
.scn-remora-and-ancient-history .water-bg {
  position: absolute; inset: 0; 
  background: linear-gradient(180deg, rgba(10,30,50,0.6) 0%, transparent 40%, rgba(20,50,70,0.4) 100%);
  animation: rm1-water 20s ease-in-out infinite alternate;
}
.scn-remora-and-ancient-history .shark-body {
  position: absolute; bottom: 15%; left: 30%; width: 120px; height: 40px;
  background: linear-gradient(180deg, #4a5a6a 0%, #2a3a4a 100%);
  border-radius: 50% 40% 30% 60% / 60% 50% 40% 50%;
  transform: rotate(-5deg);
  animation: rm1-shark 8s ease-in-out infinite alternate;
}
.scn-remora-and-ancient-history .shark-fin {
  position: absolute; bottom: 32%; left: 45%; width: 30px; height: 20px;
  background: #3a4a5a;
  clip-path: polygon(0% 100%, 50% 0%, 100% 100%);
  transform: rotate(-10deg);
  animation: rm1-fin 8s ease-in-out infinite alternate;
}
.scn-remora-and-ancient-history .remora-a,
.scn-remora-and-ancient-history .remora-b {
  position: absolute; bottom: 18%; width: 20px; height: 8px;
  background: linear-gradient(135deg, #b0834a 0%, #8a6a30 100%);
  border-radius: 50% 40% 40% 50%;
}
.scn-remora-and-ancient-history .remora-a {
  left: 36%; transform: rotate(-25deg);
  animation: rm1-remora-a 6s ease-in-out infinite alternate;
}
.scn-remora-and-ancient-history .remora-b {
  left: 42%; transform: rotate(10deg);
  animation: rm1-remora-b 6s ease-in-out infinite alternate-reverse;
}
.scn-remora-and-ancient-history .beam-a,
.scn-remora-and-ancient-history .beam-b {
  position: absolute; top: 0; width: 100%; height: 100%;
  background: linear-gradient(135deg, rgba(250,220,159,0.2) 0%, transparent 50%);
  filter: blur(8px);
}
.scn-remora-and-ancient-history .beam-a {
  left: 20%; animation: rm1-beam-a 12s linear infinite;
}
.scn-remora-and-ancient-history .beam-b {
  left: 60%; animation: rm1-beam-b 15s linear infinite reverse;
}
.scn-remora-and-ancient-history .cluster-a,
.scn-remora-and-ancient-history .cluster-b {
  position: absolute; bottom: 20%; width: 60px; height: 60px;
  background: radial-gradient(circle at 30% 30%, rgba(200,230,255,0.3) 0%, transparent 50%);
  filter: blur(4px);
}
.scn-remora-and-ancient-history .cluster-a {
  left: 10%; animation: rm1-bubble-a 4s ease-in-out infinite;
}
.scn-remora-and-ancient-history .cluster-b {
  left: 70%; animation: rm1-bubble-b 5s ease-in-out infinite reverse;
}

@keyframes rm1-water { 0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.6; } }
@keyframes rm1-shark { 0% { transform: rotate(-5deg) translateX(0); } 50% { transform: rotate(-3deg) translateX(10px); } 100% { transform: rotate(-5deg) translateX(0); } }
@keyframes rm1-fin { 0% { transform: rotate(-10deg) scaleY(1); } 50% { transform: rotate(-15deg) scaleY(1.1); } 100% { transform: rotate(-10deg) scaleY(1); } }
@keyframes rm1-remora-a { 0% { transform: rotate(-25deg) translateX(0); } 50% { transform: rotate(-20deg) translateX(-4px); } 100% { transform: rotate(-25deg) translateX(0); } }
@keyframes rm1-remora-b { 0% { transform: rotate(10deg) translateX(0); } 50% { transform: rotate(5deg) translateX(6px); } 100% { transform: rotate(10deg) translateX(0); } }
@keyframes rm1-beam-a { 0% { transform: translateX(-10%); } 50% { transform: translateX(10%); } 100% { transform: translateX(-10%); } }
@keyframes rm1-beam-b { 0% { transform: translateX(0); } 50% { transform: translateX(-8%); } 100% { transform: translateX(0); } }
@keyframes rm1-bubble-a { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-20px) scale(1.2); } 100% { transform: translateY(0) scale(1); } }
@keyframes rm1-bubble-b { 0% { transform: translateY(10px) scale(0.9); } 50% { transform: translateY(-10px) scale(1.1); } 100% { transform: translateY(10px) scale(0.9); } }

/* Scene 2: unexpected-diver-apparition */
.scn-unexpected-diver-apparition {
  background: 
    linear-gradient(180deg, #1a2a3a 0%, #0f1a2a 50%, #0a1220 100%),
    radial-gradient(ellipse at 50% 0%, #4a7a9a 0%, transparent 70%);
  overflow: hidden;
}
.scn-unexpected-diver-apparition .deep-water {
  position: absolute; inset: 0;
  background: linear-gradient(0deg, rgba(0,20,30,0.8) 0%, transparent 100%);
  animation: ud2-deep 10s ease-in-out infinite alternate;
}
.scn-unexpected-diver-apparition .light-shaft {
  position: absolute; top: 0; left: 30%; width: 40%; height: 100%;
  background: linear-gradient(135deg, rgba(180,210,240,0.15) 0%, transparent 60%);
  filter: blur(12px);
  animation: ud2-shaft 8s ease-in-out infinite alternate;
}
.scn-unexpected-diver-apparition .diver-silhouette {
  position: absolute; bottom: 20%; left: 35%; width: 50px; height: 90px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 50% 30% 40% / 50% 55% 40% 45%;
  transform: rotate(10deg);
  animation: ud2-diver 4s ease-in-out infinite;
}
.scn-unexpected-diver-apparition .leather-bag {
  position: absolute; bottom: 22%; left: 37%; width: 18px; height: 14px;
  background: #5a3a2a;
  border-radius: 30% 30% 40% 40%;
  transform: rotate(-15deg);
  animation: ud2-bag 4s ease-in-out infinite;
}
.scn-unexpected-diver-apparition .fin-swirl {
  position: absolute; bottom: 30%; left: 50%; width: 40px; height: 40px;
  background: radial-gradient(circle, rgba(200,220,255,0.2) 0%, transparent 60%);
  border-radius: 50%;
  filter: blur(6px);
  animation: ud2-swirl 3s ease-in-out infinite;
}
.scn-unexpected-diver-apparition .bubble-stream {
  position: absolute; bottom: 35%; left: 40%; width: 80px; height: 20px;
  background: radial-gradient(ellipse at 30% 50%, rgba(180,210,240,0.3) 0%, transparent 70%);
  filter: blur(3px);
  animation: ud2-bubbles 3s ease-in-out infinite alternate;
}
.scn-unexpected-diver-apparition .seaweed-left,
.scn-unexpected-diver-apparition .seaweed-right {
  position: absolute; bottom: 0; width: 30px; height: 120px;
  background: linear-gradient(0deg, #3a5a4a 0%, #2a4a3a 100%);
  border-radius: 40% 60% 30% 70% / 50% 50% 60% 40%;
  filter: blur(2px);
}
.scn-unexpected-diver-apparition .seaweed-left {
  left: 5%; animation: ud2-seaweed-l 6s ease-in-out infinite alternate;
}
.scn-unexpected-diver-apparition .seaweed-right {
  right: 5%; animation: ud2-seaweed-r 6s ease-in-out infinite alternate-reverse;
}

@keyframes ud2-deep { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes ud2-shaft { 0% { transform: translateX(-5%) scaleX(1); } 50% { transform: translateX(5%) scaleX(1.1); } 100% { transform: translateX(-5%) scaleX(1); } }
@keyframes ud2-diver { 0% { transform: rotate(10deg) translateX(0) translateY(0); } 30% { transform: rotate(12deg) translateX(8px) translateY(-4px); } 60% { transform: rotate(8deg) translateX(-4px) translateY(2px); } 100% { transform: rotate(10deg) translateX(0) translateY(0); } }
@keyframes ud2-bag { 0% { transform: rotate(-15deg) translateX(0); } 50% { transform: rotate(-10deg) translateX(3px); } 100% { transform: rotate(-15deg) translateX(0); } }
@keyframes ud2-swirl { 0% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.3) rotate(180deg); } 100% { transform: scale(1) rotate(360deg); } }
@keyframes ud2-bubbles { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-15px) scaleX(1.2); } 100% { transform: translateY(0) scaleX(1); } }
@keyframes ud2-seaweed-l { 0% { transform: rotate(5deg) scaleY(1); } 50% { transform: rotate(-5deg) scaleY(1.1); } 100% { transform: rotate(5deg) scaleY(1); } }
@keyframes ud2-seaweed-r { 0% { transform: rotate(-5deg) scaleY(1); } 50% { transform: rotate(5deg) scaleY(1.1); } 100% { transform: rotate(-5deg) scaleY(1); } }

/* Scene 3: nemo-signals-diver */
.scn-nemo-signals-diver {
  background: 
    linear-gradient(135deg, #2a3a4a 0%, #1a2a3a 50%, #0f1f2f 100%),
    radial-gradient(ellipse at 80% 50%, #5a7a9a 0%, transparent 70%);
  overflow: hidden;
}
.scn-nemo-signals-diver .nemo-wall {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, #1a2a3a 0%, #2a3a4a 50%, #1a2a3a 100%);
  animation: ns3-wall 15s ease-in-out infinite alternate;
}
.scn-nemo-signals-diver .window-panel {
  position: absolute; top: 10%; left: 10%; width: 50%; height: 80%;
  background: linear-gradient(180deg, rgba(100,160,220,0.2) 0%, rgba(50,80,120,0.3) 100%);
  border: 4px solid #5a7a8a;
  border-radius: 8px;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.5);
  animation: ns3-window 8s ease-in-out infinite alternate;
}
.scn-nemo-signals-diver .diver-outside {
  position: absolute; top: 30%; left: 35%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 100%);
  border-radius: 40% 45% 35% 40% / 50% 50% 40% 45%;
  transform: rotate(-5deg);
  animation: ns3-diver 5s ease-in-out infinite;
}
.scn-nemo-signals-diver .nemo-hand {
  position: absolute; top: 45%; left: 20%; width: 50px; height: 30px;
  background: linear-gradient(135deg, #3a4a5a 0%, #2a3a4a 100%);
  border-radius: 40% 60% 30% 50% / 50% 40% 60% 50%;
  transform: rotate(20deg);
  animation: ns3-hand 4s ease-in-out infinite;
}
.scn-nemo-signals-diver .signal-flash {
  position: absolute; top: 35%; left: 25%; width: 20px; height: 20px;
  background: radial-gradient(circle, #ffe0a0 0%, transparent 70%);
  box-shadow: 0 0 30px 10px rgba(255,224,160,0.4);
  animation: ns3-flash 2s ease-in-out infinite alternate;
}
.scn-nemo-signals-diver .interior-glow {
  position: absolute; top: 0; left: 0; width: 100%; height: 100%;
  background: radial-gradient(ellipse at 60% 40%, rgba(200,230,255,0.1) 0%, transparent 80%);
  animation: ns3-glow 12s ease-in-out infinite alternate;
}

@keyframes ns3-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes ns3-window { 0% { box-shadow: inset 0 0 30px rgba(0,0,0,0.5); } 50% { box-shadow: inset 0 0 50px rgba(0,0,0,0.7); } 100% { box-shadow: inset 0 0 30px rgba(0,0,0,0.5); } }
@keyframes ns3-diver { 0% { transform: rotate(-5deg) translateY(0); } 30% { transform: rotate(-8deg) translateY(-10px); } 60% { transform: rotate(-2deg) translateY(5px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes ns3-hand { 0% { transform: rotate(20deg) scaleX(1); } 50% { transform: rotate(25deg) scaleX(1.1); } 100% { transform: rotate(20deg) scaleX(1); } }
@keyframes ns3-flash { 0% { opacity: 0.3; transform: scale(0.8); } 50% { opacity: 1; transform: scale(1.2); } 100% { opacity: 0.3; transform: scale(0.8); } }
@keyframes ns3-glow { 0% { opacity: 0.3; } 50% { opacity: 0.6; } 100% { opacity: 0.3; } }

/* Scene 4: nemo-knows-diver */
.scn-nemo-knows-diver {
  background: 
    linear-gradient(135deg, #3a4a3a 0%, #2a3a2a 50%, #1a2a1a 100%),
    radial-gradient(ellipse at 40% 50%, #5a7a5a 0%, transparent 70%);
  overflow: hidden;
}
.scn-nemo-knows-diver .lounge-wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #3a4a3a 0%, #2a3a2a 100%);
  animation: nk4-wall 20s ease-in-out infinite alternate;
}
.scn-nemo-knows-diver .window-left {
  position: absolute; top: 20%; left: 5%; width: 25%; height: 60%;
  background: linear-gradient(180deg, #5a7a7a 0%, #3a5a5a 100%);
  border: 3px solid #6a8a7a;
  border-radius: 5px;
  box-shadow: inset 0 0 20px #0a1a1a;
  animation: nk4-window 12s ease-in-out infinite alternate;
}
.scn-nemo-knows-diver .cabinet {
  position: absolute; bottom: 10%; right: 15%; width: 80px; height: 120px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 4px;
  box-shadow: 0 8px 20px rgba(0,0,0,0.6);
  animation: nk4-cabinet 6s ease-in-out infinite alternate;
}
.scn-nemo-knows-diver .chest {
  position: absolute; bottom: 20%; right: 20%; width: 60px; height: 40px;
  background: linear-gradient(135deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 6px 6px 4px 4px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.5);
  transform: rotate(-2deg);
  animation: nk4-chest 8s ease-in-out infinite alternate;
}
.scn-nemo-knows-diver .monogram-plaque {
  position: absolute; bottom: 25%; right: 22%; width: 30px; height: 20px;
  background: radial-gradient(circle at 50% 30%, #c0a060 0%, #8a6a30 100%);
  border-radius: 2px;
  box-shadow: 0 0 8px #c0a060;
  animation: nk4-plaque 5s ease-in-out infinite alternate;
}
.scn-nemo-knows-diver .warm-light {
  position: absolute; top: 0; left: 0; width: 100%; height: 100%;
  background: radial-gradient(ellipse at 30% 30%, rgba(255,220,160,0.15) 0%, transparent 70%);
  animation: nk4-light 14s ease-in-out infinite alternate;
}

@keyframes nk4-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes nk4-window { 0% { box-shadow: inset 0 0 20px #0a1a1a; } 50% { box-shadow: inset 0 0 40px #0a1a1a; } 100% { box-shadow: inset 0 0 20px #0a1a1a; } }
@keyframes nk4-cabinet { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(1); } }
@keyframes nk4-chest { 0% { transform: rotate(-2deg) scale(1); } 50% { transform: rotate(-4deg) scale(1.03); } 100% { transform: rotate(-2deg) scale(1); } }
@keyframes nk4-plaque { 0% { opacity: 0.7; box-shadow: 0 0 8px #c0a060; } 50% { opacity: 1; box-shadow: 0 0 16px #c0a060; } 100% { opacity: 0.7; box-shadow: 0 0 8px #c0a060; } }
@keyframes nk4-light { 0% { opacity: 0.3; } 50% { opacity: 0.6; } 100% { opacity: 0.3; } }

/* gulf-stream-description - sunlit calm, cross-section of current */
.scn-gulf-stream-description {
  background:
    linear-gradient(180deg, #87ceeb 0%, #b0e0e6 40%, #f0e68c 100%),
    radial-gradient(ellipse at 50% 100%, #1e90ff 0%, transparent 70%);
}
.scn-gulf-stream-description .sky {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #87ceeb, #b0e0e6);
  animation: gsd-sky 12s ease-in-out infinite alternate;
}
.scn-gulf-stream-description .sun {
  position: absolute; top: 10%; left: 70%; width: 40px; height: 40px;
  background: radial-gradient(circle, #fff8dc 0%, #ffd700 70%);
  border-radius: 50%; box-shadow: 0 0 30px 10px rgba(255,215,0,.4);
  animation: gsd-sun 20s ease-in-out infinite;
}
.scn-gulf-stream-description .sea-surface {
  position: absolute; bottom: 40%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #1e90ff 0%, #4682b4 50%, #5f9ea0 100%);
  border-radius: 0 0 40% 40% / 0 0 20% 20%;
  animation: gsd-sea 8s ease-in-out infinite alternate;
}
.scn-gulf-stream-description .deep-water {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #191970 0%, #000080 50%, #000033 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,.5);
}
.scn-gulf-stream-description .current-arrow {
  position: absolute; bottom: 20%; right: 15%; width: 80px; height: 20px;
  background: rgba(255,255,255,.3); border-radius: 0 50% 50% 0 / 0 50% 50% 0;
  box-shadow: 0 0 10px rgba(255,255,255,.2);
  animation: gsd-arrow 15s linear infinite;
}
.scn-gulf-stream-description .buoy {
  position: absolute; top: 50%; left: 25%; width: 10px; height: 30px;
  background: linear-gradient(180deg, #ff4500 0%, #b22222 100%);
  border-radius: 30% 30% 10% 10%;
  animation: gsd-buoy 6s ease-in-out infinite alternate;
}
@keyframes gsd-sky { 0% { opacity: .8; } 50% { opacity: 1; } 100% { opacity: .9; } }
@keyframes gsd-sun { 0% { transform: translate(0,0); } 50% { transform: translate(-5px,5px); } 100% { transform: translate(0,0); } }
@keyframes gsd-sea { 0% { height: 20%; } 50% { height: 22%; } 100% { height: 20%; } }
@keyframes gsd-arrow { 0% { transform: translateX(0); opacity: .5; } 50% { transform: translateX(-20px); opacity: .8; } 100% { transform: translateX(0); opacity: .5; } }
@keyframes gsd-buoy { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(4px) rotate(2deg); } 100% { transform: translateY(0) rotate(-2deg); } }

/* gulf-stream-experiment - sunlit close-up of Conseil dipping hand */
.scn-gulf-stream-experiment {
  background:
    linear-gradient(180deg, #f0f8ff 0%, #b0c4de 50%, #e6e6fa 100%),
    radial-gradient(ellipse at 50% 100%, #87ceeb 0%, transparent 60%);
}
.scn-gulf-stream-experiment .platform {
  position: absolute; bottom: 15%; left: 10%; right: 10%; height: 12%;
  background: linear-gradient(180deg, #8b7355 0%, #5c4033 100%);
  border-radius: 5px; box-shadow: 0 4px 8px rgba(0,0,0,.3);
}
.scn-gulf-stream-experiment .hand {
  position: absolute; bottom: 25%; left: 35%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #deb887 0%, #c1703e 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: gse-hand 5s ease-in-out infinite alternate;
}
.scn-gulf-stream-experiment .water {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #4682b4 0%, #1e90ff 100%);
  box-shadow: inset 0 8px 16px rgba(0,0,0,.2);
}
.scn-gulf-stream-experiment .ripple.a {
  position: absolute; bottom: 22%; left: 30%; width: 60px; height: 10px;
  background: rgba(255,255,255,.3); border-radius: 50%;
  animation: gse-ripple1 3s ease-in-out infinite;
}
.scn-gulf-stream-experiment .ripple.b {
  position: absolute; bottom: 20%; left: 50%; width: 40px; height: 8px;
  background: rgba(255,255,255,.2); border-radius: 50%;
  animation: gse-ripple2 4s ease-in-out infinite;
}
.scn-gulf-stream-experiment .sun-glint {
  position: absolute; top: 10%; right: 20%; width: 20px; height: 20px;
  background: radial-gradient(circle, #fff8dc 0%, transparent 60%);
  border-radius: 50%;
  animation: gse-glint 7s ease-in-out infinite alternate;
}
@keyframes gse-hand { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(5px) rotate(5deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes gse-ripple1 { 0% { transform: scale(1); opacity: .5; } 50% { transform: scale(1.3); opacity: .8; } 100% { transform: scale(1); opacity: .5; } }
@keyframes gse-ripple2 { 0% { transform: scale(1); opacity: .4; } 50% { transform: scale(1.2); opacity: .7; } 100% { transform: scale(1); opacity: .4; } }
@keyframes gse-glint { 0% { opacity: .6; transform: scale(1); } 50% { opacity: 1; transform: scale(1.3); } 100% { opacity: .6; transform: scale(1); } }

/* gulf-stream-fish - sunlit underwater with fish */
.scn-gulf-stream-fish {
  background:
    linear-gradient(180deg, #006994 0%, #003366 40%, #001a33 100%),
    radial-gradient(ellipse at 30% 20%, #00bfff 0%, transparent 70%);
}
.scn-gulf-stream-fish .water-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(0,105,148,.5) 0%, transparent 100%);
  animation: gsf-bg 10s ease-in-out infinite alternate;
}
.scn-gulf-stream-fish .light-rays {
  position: absolute; top: 0; left: 20%; width: 30px; height: 100%;
  background: linear-gradient(180deg, rgba(255,255,200,.3) 0%, transparent 100%);
  filter: blur(5px);
  animation: gsf-rays 15s linear infinite;
}
.scn-gulf-stream-fish .fish.a {
  position: absolute; top: 20%; left: 10%; width: 40px; height: 20px;
  background: linear-gradient(180deg, #ffd700 0%, #ff8c00 100%);
  border-radius: 50% 50% 30% 30% / 40% 40% 30% 30%;
  transform: rotate(10deg);
  animation: gsf-fish1 8s ease-in-out infinite;
}
.scn-gulf-stream-fish .fish.b {
  position: absolute; top: 40%; right: 15%; width: 30px; height: 15px;
  background: linear-gradient(180deg, #7cfc00 0%, #228b22 100%);
  border-radius: 50% 50% 30% 30% / 40% 40% 30% 30%;
  transform: rotate(-5deg);
  animation: gsf-fish2 10s ease-in-out infinite;
}
.scn-gulf-stream-fish .fish.c {
  position: absolute; bottom: 30%; left: 50%; width: 35px; height: 18px;
  background: linear-gradient(180deg, #ff69b4 0%, #db7090 100%);
  border-radius: 50% 50% 30% 30% / 40% 40% 30% 30%;
  transform: rotate(15deg);
  animation: gsf-fish3 9s ease-in-out infinite;
}
.scn-gulf-stream-fish .bubbles {
  position: absolute; bottom: 10%; left: 30%; width: 8px; height: 8px;
  background: rgba(255,255,255,.4);
  border-radius: 50%;
  box-shadow: 15px -10px 0 2px rgba(255,255,255,.3), 30px -25px 0 4px rgba(255,255,255,.2);
  animation: gsf-bubbles 6s linear infinite;
}
@keyframes gsf-bg { 0% { opacity: .8; } 50% { opacity: 1; } 100% { opacity: .8; } }
@keyframes gsf-rays { 0% { transform: translateX(0); } 100% { transform: translateX(40px); } }
@keyframes gsf-fish1 { 0% { transform: translate(0,0) rotate(10deg); } 25% { transform: translate(10px, -5px) rotate(5deg); } 50% { transform: translate(20px, 0) rotate(10deg); } 75% { transform: translate(10px, 5px) rotate(15deg); } 100% { transform: translate(0,0) rotate(10deg); } }
@keyframes gsf-fish2 { 0% { transform: translate(0,0) rotate(-5deg); } 50% { transform: translate(-10px, 5px) rotate(0deg); } 100% { transform: translate(0,0) rotate(-5deg); } }
@keyframes gsf-fish3 { 0% { transform: translate(0,0) rotate(15deg); } 50% { transform: translate(5px, -8px) rotate(10deg); } 100% { transform: translate(0,0) rotate(15deg); } }
@keyframes gsf-bubbles { 0% { transform: translateY(0); opacity: .5; } 100% { transform: translateY(-30px); opacity: 0; } }

/* gulf-stream-night-phosphorescence - moonlit with glowing waves */
.scn-gulf-stream-night-phosphorescence {
  background:
    linear-gradient(180deg, #0c0e1a 0%, #1a1c2e 40%, #2c2e4e 100%),
    radial-gradient(ellipse at 50% 0%, #4a6fa5 0%, transparent 60%);
}
.scn-gulf-stream-night-phosphorescence .night-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #0c0e1a 0%, #1a1c2e 100%);
  animation: gsn-sky 15s ease-in-out infinite alternate;
}
.scn-gulf-stream-night-phosphorescence .moon {
  position: absolute; top: 8%; right: 20%; width: 50px; height: 50px;
  background: radial-gradient(circle, #f5f5dc 0%, #dcdcdc 60%, #a9a9a9 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 15px rgba(220,220,220,.3);
  animation: gsn-moon 25s ease-in-out infinite;
}
.scn-gulf-stream-night-phosphorescence .cloud {
  position: absolute; top: 15%; left: 10%; width: 80px; height: 15px;
  background: linear-gradient(180deg, rgba(255,255,255,.3) 0%, rgba(255,255,255,.05) 100%);
  border-radius: 50%;
  filter: blur(6px);
  animation: gsn-cloud 40s linear infinite;
}
.scn-gulf-stream-night-phosphorescence .ship {
  position: absolute; bottom: 30%; left: 30%; width: 60px; height: 30px;
  background: linear-gradient(180deg, #2c2c3a 0%, #1a1a2a 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
  animation: gsn-ship 8s ease-in-out infinite alternate;
}
.scn-gulf-stream-night-phosphorescence .wave.a {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, rgba(0,100,200,.6) 0%, rgba(0,50,150,.8) 100%);
  border-radius: 60% 40% 0 0 / 40% 30% 0 0;
  box-shadow: inset 0 4px 10px rgba(0,200,255,.3);
  animation: gsn-wave1 6s ease-in-out infinite alternate;
}
.scn-gulf-stream-night-phosphorescence .wave.b {
  position: absolute; bottom: 5%; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, rgba(0,150,255,.4) 0%, rgba(0,100,200,.6) 100%);
  border-radius: 50% 60% 0 0 / 30% 40% 0 0;
  animation: gsn-wave2 8s ease-in-out infinite alternate;
  animation-delay: 2s;
}
@keyframes gsn-sky { 0% { opacity: .8; } 50% { opacity: 1; } 100% { opacity: .9; } }
@keyframes gsn-moon { 0% { transform: translate(0,0); } 50% { transform: translate(10px, -5px); } 100% { transform: translate(0,0); } }
@keyframes gsn-cloud { 0% { transform: translateX(0); } 100% { transform: translateX(120vw); } }
@keyframes gsn-ship { 0% { transform: translateX(0) rotate(-1deg); } 50% { transform: translateX(8px) rotate(1deg); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes gsn-wave1 { 0% { transform: translateY(0); opacity: .7; } 50% { transform: translateY(-6px); opacity: 1; } 100% { transform: translateY(0); opacity: .7; } }
@keyframes gsn-wave2 { 0% { transform: translateY(0); opacity: .5; } 50% { transform: translateY(-4px); opacity: .8; } 100% { transform: translateY(0); opacity: .5; } }

/* grand-banks-fish */
.scn-grand-banks-fish {
  background: linear-gradient(180deg, #3a5a5a 0%, #1e3a3a 60%, #0a1a1a 100%),
              radial-gradient(ellipse at 50% 30%, #4a7a7a 0%, transparent 70%);
}
.scn-grand-banks-fish .water-bg { position:absolute; inset:0; background: repeating-linear-gradient(0deg, transparent, transparent 4px, rgba(0,20,20,0.1) 4px, rgba(0,20,20,0.1) 8px); animation: gbf-waves 8s linear infinite; }
.scn-grand-banks-fish .fish-body { position:absolute; bottom:35%; left:35%; width:30%; height:20%; background: radial-gradient(ellipse at 60% 50%, #6a8a6a 0%, #2a4a3a 70%, #0a2a1a 100%); border-radius: 50% 40% 50% 40% / 60% 50% 50% 40%; transform: rotate(-5deg); box-shadow: inset -4px -4px 12px rgba(0,0,0,0.5); animation: gbf-float 6s ease-in-out infinite; }
.scn-grand-banks-fish .fish-spine { position:absolute; width:6px; height:10px; background: #5a7a5a; border-radius: 50% 50% 0 0; box-shadow: 0 2px 4px rgba(0,0,0,0.3); }
.scn-grand-banks-fish .fish-spine.back { bottom:55%; left:45%; animation: gbf-spine 1.5s ease-in-out infinite; }
.scn-grand-banks-fish .fish-spine.front { bottom:54%; left:60%; animation: gbf-spine 1.5s ease-in-out 0.3s infinite; }
.scn-grand-banks-fish .fish-eye { position:absolute; bottom:42%; left:50%; width:8px; height:8px; background: radial-gradient(circle, #c0d0c0 0%, #3a4a3a 100%); border-radius: 50%; box-shadow: 0 0 6px 2px rgba(192,208,192,0.3); animation: gbf-blink 4s steps(1) infinite; }
.scn-grand-banks-fish .net-line { position:absolute; border: 1px solid rgba(200,200,200,0.15); border-left: none; border-bottom: none; animation: gbf-net 10s linear infinite; }
.scn-grand-banks-fish .net-line.a { bottom:20%; left:10%; width:60%; height:30%; }
.scn-grand-banks-fish .net-line.b { bottom:10%; left:30%; width:40%; height:20%; animation-delay: 3s; }
.scn-grand-banks-fish .bubble { position:absolute; bottom:20%; left:55%; width:6px; height:6px; background: rgba(200,220,220,0.3); border-radius: 50%; filter: blur(1px); animation: gbf-bubble 3s ease-in infinite; }
.scn-grand-banks-fish .shadow-floor { position:absolute; bottom:0; left:0; right:0; height:15%; background: linear-gradient(180deg, transparent, rgba(0,10,10,0.6) 100%); }
@keyframes gbf-waves { 0% { background-position: 0 0; } 100% { background-position: 0 40px; } }
@keyframes gbf-float { 0%,100% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-4px); } }
@keyframes gbf-spine { 0%,100% { transform: rotate(0deg) scaleY(1); } 50% { transform: rotate(10deg) scaleY(1.2); } }
@keyframes gbf-blink { 0%,95%,100% { transform: scaleY(1); } 96% { transform: scaleY(0.2); } }
@keyframes gbf-net { 0% { opacity: 0.4; } 50% { opacity: 0.8; } 100% { opacity: 0.4; } }
@keyframes gbf-bubble { 0% { transform: translateY(0) scale(1); opacity: 0.6; } 100% { transform: translateY(-100px) scale(0.8); opacity: 0; } }

/* atlantic-cable-search */
.scn-atlantic-cable-search {
  background: linear-gradient(180deg, #1a2a3a 0%, #0e1e2e 50%, #050a12 100%),
              radial-gradient(ellipse at 50% 20%, #2a4a5a 0%, transparent 70%);
}
.scn-atlantic-cable-search .deep-sea { position:absolute; inset:0; background: repeating-radial-gradient(circle at 20% 50%, rgba(0,30,40,0.3) 0px, transparent 10px); animation: acs-deep 20s linear infinite; }
.scn-atlantic-cable-search .cable-cross { position:absolute; top:0; left:0; width:100%; height:100%; border: 2px solid rgba(180,160,120,0.2); border-top: none; border-left: none; box-shadow: inset 0 0 20px rgba(180,160,120,0.1); }
.scn-atlantic-cable-search .cable-cross.a { transform: rotate(30deg); animation: acs-cable 12s ease-in-out infinite; }
.scn-atlantic-cable-search .cable-cross.b { transform: rotate(-20deg); animation: acs-cable 12s ease-in-out 4s infinite; }
.scn-atlantic-cable-search .cable-cross.c { transform: rotate(70deg); animation: acs-cable 12s ease-in-out 8s infinite; }
.scn-atlantic-cable-search .ship-shadow { position:absolute; bottom:30%; left:30%; width:30%; height:15%; background: linear-gradient(135deg, rgba(30,40,50,0.8) 0%, transparent 100%); border-radius: 50% 50% 0 0; transform: skewX(-20deg); animation: acs-shadow 6s ease-in-out infinite; }
.scn-atlantic-cable-search .glow-spot { position:absolute; bottom:35%; left:40%; width:20px; height:20px; background: radial-gradient(circle, rgba(200,220,200,0.4) 0%, transparent 100%); border-radius: 50%; filter: blur(8px); animation: acs-glow 4s ease-in-out infinite; }
.scn-atlantic-cable-search .particle { position:absolute; width:4px; height:4px; background: rgba(200,200,200,0.2); border-radius: 50%; }
.scn-atlantic-cable-search .particle.p1 { top:20%; left:20%; animation: acs-particle 9s linear infinite; }
.scn-atlantic-cable-search .particle.p2 { top:50%; left:70%; animation: acs-particle 12s linear infinite 3s; }
@keyframes acs-deep { 0% { background-position: 0 0; } 100% { background-position: 100px 0; } }
@keyframes acs-cable { 0%,100% { opacity: 0.4; } 50% { opacity: 0.8; } }
@keyframes acs-shadow { 0%,100% { transform: skewX(-20deg) scaleX(1); } 50% { transform: skewX(-18deg) scaleX(0.95); } }
@keyframes acs-glow { 0%,100% { opacity: 0.3; transform: scale(0.8); } 50% { opacity: 0.8; transform: scale(1.2); } }
@keyframes acs-particle { 0% { transform: translateY(0) translateX(0); } 50% { transform: translateY(-20px) translateX(10px); } 100% { transform: translateY(0) translateX(0); } }

/* item-atlantic-cable-discovery */
.scn-item-atlantic-cable-discovery {
  background: linear-gradient(0deg, #0a141e 0%, #142230 40%, #1e2e3e 100%),
              radial-gradient(ellipse at 50% 80%, #101a24 0%, transparent 60%);
}
.scn-item-atlantic-cable-discovery .seafloor-bg { position:absolute; inset:0; background: linear-gradient(180deg, transparent 70%, #1a2a2a 100%); }
.scn-item-atlantic-cable-discovery .rock-left { position:absolute; bottom:0; left:5%; width:20%; height:20%; background: linear-gradient(135deg, #2a3a3a, #1a2a2a); border-radius: 60% 40% 20% 80% / 50% 70% 30% 50%; box-shadow: inset 0 0 20px rgba(0,0,0,0.5); }
.scn-item-atlantic-cable-discovery .rock-right { position:absolute; bottom:5%; right:10%; width:15%; height:15%; background: linear-gradient(225deg, #2a3a3a, #1a2a2a); border-radius: 30% 70% 50% 50% / 40% 40% 60% 60%; }
.scn-item-atlantic-cable-discovery .cable-loop { position:absolute; bottom:30%; left:30%; width:40%; height:5%; background: linear-gradient(90deg, transparent, #3a4a3a, #2a3a2a, transparent); border-radius: 50% / 100% 100% 0 0; transform: rotate(-10deg); box-shadow: 0 4px 8px rgba(0,0,0,0.3); animation: ids-cable 8s ease-in-out infinite; }
.scn-item-atlantic-cable-discovery .diver-suit { position:absolute; bottom:20%; left:50%; width:12%; height:25%; background: linear-gradient(180deg, #3a4a4a 0%, #1a2a2a 100%); border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%; transform: translateX(-50%); box-shadow: inset 0 4px 8px rgba(0,0,0,0.3); animation: ids-diver 6s ease-in-out infinite; }
.scn-item-atlantic-cable-discovery .diver-helmet { position:absolute; bottom:42%; left:50%; width:8%; height:8%; background: radial-gradient(circle, #5a6a6a 0%, #2a3a3a 100%); border-radius: 50%; transform: translateX(-50%); border: 2px solid #4a5a5a; box-shadow: 0 0 12px rgba(100,200,200,0.2); animation: ids-helmet 6s ease-in-out infinite; }
.scn-item-atlantic-cable-discovery .light-beam { position:absolute; bottom:35%; left:45%; width:15%; height:50%; background: linear-gradient(180deg, rgba(200,220,200,0.15) 0%, transparent 100%); transform: rotate(20deg); transform-origin: bottom left; animation: ids-beam 4s ease-in-out infinite; }
.scn-item-atlantic-cable-discovery .sand-ripple { position:absolute; bottom:0; left:0; right:0; height:8%; background: repeating-linear-gradient(90deg, transparent, transparent 10px, rgba(30,40,30,0.1) 10px, rgba(30,40,30,0.1) 20px); animation: ids-ripple 12s linear infinite; }
@keyframes ids-cable { 0%,100% { transform: rotate(-10deg) scaleX(1); } 50% { transform: rotate(-8deg) scaleX(1.05); } }
@keyframes ids-diver { 0%,100% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-48%) translateY(-2px); } }
@keyframes ids-helmet { 0%,100% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-48%) rotate(3deg); } }
@keyframes ids-beam { 0%,100% { opacity: 0.5; } 50% { opacity: 0.8; } }
@keyframes ids-ripple { 0% { background-position: 0 0; } 100% { background-position: 100px 0; } }

/* atlantic-cable-history */
.scn-atlantic-cable-history {
  background: linear-gradient(180deg, #4a5a5a 0%, #3a4a4a 30%, #2a3a3a 60%, #1a2a2a 100%),
              radial-gradient(ellipse at 50% 20%, #5a6a6a 0%, transparent 70%);
}
.scn-atlantic-cable-history .sky-overcast { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #5a6a6a 0%, #4a5a5a 100%); animation: ach-sky 10s ease-in-out infinite; }
.scn-atlantic-cable-history .ocean-surface { position:absolute; bottom:35%; left:0; right:0; height:65%; background: linear-gradient(180deg, #2a4a4a 0%, #1a3a3a 100%); }
.scn-atlantic-cable-history .steamer-hull { position:absolute; bottom:45%; left:20%; width:40%; height:20%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%); border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%; box-shadow: 0 8px 16px rgba(0,0,0,0.4); animation: ach-hull 6s ease-in-out infinite; }
.scn-atlantic-cable-history .steamer-smoke { position:absolute; bottom:65%; left:30%; width:10%; height:15%; background: radial-gradient(ellipse at 50% 100%, rgba(100,100,100,0.3) 0%, transparent 100%); border-radius: 50%; filter: blur(4px); animation: ach-smoke 8s ease-in-out infinite; }
.scn-atlantic-cable-history .cable-reel { position:absolute; bottom:48%; left:45%; width:12%; height:8%; background: linear-gradient(90deg, #3a2a1a, #5a4a3a, #3a2a1a); border-radius: 30%; box-shadow: 0 2px 8px rgba(0,0,0,0.3); animation: ach-reel 4s linear infinite; }
.scn-atlantic-cable-history .cable-line { position:absolute; bottom:45%; left:55%; width:35%; height:2px; background: linear-gradient(90deg, #4a3a2a, #4a3a2a 60%, transparent); transform-origin: left; animation: ach-line 10s linear infinite; }
.scn-atlantic-cable-history .seagull { position:absolute; width:12px; height:6px; background: #6a7a7a; border-radius: 50%; }
.scn-atlantic-cable-history .seagull.g1 { top:15%; left:10%; animation: ach-gull 14s linear infinite; }
.scn-atlantic-cable-history .seagull.g2 { top:20%; left:60%; animation: ach-gull 16s linear infinite 4s; }
.scn-atlantic-cable-history .wave-foam { position:absolute; bottom:35%; left:0; right:0; height:3%; background: repeating-linear-gradient(90deg, rgba(200,220,220,0.2) 0px, rgba(200,220,220,0.2) 20px, transparent 20px, transparent 40px); animation: ach-foam 4s linear infinite; }
@keyframes ach-sky { 0%,100% { opacity: 0.8; } 50% { opacity: 1; } }
@keyframes ach-hull { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(0.5deg); } }
@keyframes ach-smoke { 0% { transform: translateY(0) scale(0.8); opacity: 0.4; } 100% { transform: translateY(-30px) scale(1.2); opacity: 0; } }
@keyframes ach-reel { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }
@keyframes ach-line { 0% { width: 0%; } 100% { width: 40%; } }
@keyframes ach-gull { 0% { transform: translateX(0) translateY(0); } 50% { transform: translateX(30px) translateY(-5px); } 100% { transform: translateX(60px) translateY(0); } }
@keyframes ach-foam { 0% { background-position: 0 0; } 100% { background-position: 40px 0; } }

.scn-swarm-of-fish {
  background: 
    linear-gradient(180deg, #0a3a5a 0%, #0a5a7a 30%, #0a7a9a 60%, #0a5a7a 100%),
    radial-gradient(ellipse at 30% 20%, #2080b0 0%, transparent 60%);
}
.scn-swarm-of-fish .sunbeam { position:absolute; top:0; left:20%; width:12%; height:100%; background: linear-gradient(180deg, rgba(200,230,255,.5) 0%, rgba(200,230,255,.1) 100%); filter: blur(4px); animation: sw-sun 8s ease-in-out infinite alternate; }
.scn-swarm-of-fish .water-bg { position:absolute; inset:0; background: repeating-linear-gradient(0deg, transparent 0px, rgba(255,255,255,.03) 2px, transparent 4px); animation: sw-ripple 12s linear infinite; }
.scn-swarm-of-fish .fish { position:absolute; width:60px; height:8px; background: linear-gradient(90deg, #5a8aaa 0%, #7aaaca 50%, #5a8aaa 100%); border-radius: 50% 50% 50% 50% / 100% 100% 0% 0%; animation: sw-swim 10s ease-in-out infinite; }
.scn-swarm-of-fish .school-a { top:30%; left:10%; width:50px; height:6px; background: #6a9aba; animation-duration:12s; }
.scn-swarm-of-fish .school-b { top:50%; left:60%; width:45px; height:7px; background: #7aaaba; animation-duration:14s; animation-delay:-4s; transform:scaleX(-1); }
.scn-swarm-of-fish .singular { top:70%; left:40%; width:70px; height:9px; background: #8abaca; animation-duration:8s; animation-delay:-2s; }
.scn-swarm-of-fish .particle { position:absolute; width:4px; height:4px; background: rgba(200,230,255,.6); border-radius:50%; filter: blur(1px); animation: sw-particle 6s ease-in-out infinite; }
.scn-swarm-of-fish .p1 { top:20%; left:50%; animation-duration:7s; animation-delay:-1s; }
.scn-swarm-of-fish .p2 { top:60%; left:30%; animation-duration:9s; animation-delay:-4s; width:6px; height:6px; }
.scn-swarm-of-fish .bubble { position:absolute; width:12px; height:12px; border:1px solid rgba(200,230,255,.3); border-radius:50%; background: radial-gradient(circle at 30% 30%, rgba(200,230,255,.4), transparent 70%); animation: sw-bubble 4s ease-in-out infinite; }
.scn-swarm-of-fish .bubble-1 { bottom:10%; left:70%; width:10px; height:10px; animation-duration:5s; }
.scn-swarm-of-fish .bubble-2 { bottom:40%; left:15%; width:14px; height:14px; animation-duration:6s; animation-delay:-2s; }
@keyframes sw-sun { 0% { opacity:.6; transform:skewX(-2deg) } 50% { opacity:.9; transform:skewX(0deg) } 100% { opacity:.7; transform:skewX(2deg) } }
@keyframes sw-ripple { 0% { background-position:0 0 } 100% { background-position:0 20px } }
@keyframes sw-swim { 0% { transform:translateX(0) translateY(0) rotate(0deg) } 25% { transform:translateX(30px) translateY(-5px) rotate(3deg) } 50% { transform:translateX(60px) translateY(0) rotate(0deg) } 75% { transform:translateX(30px) translateY(5px) rotate(-3deg) } 100% { transform:translateX(0) translateY(0) rotate(0deg) } }
@keyframes sw-particle { 0% { transform:translateY(0) scale(1); opacity:.3 } 50% { transform:translateY(-20px) scale(1.4); opacity:.8 } 100% { transform:translateY(0) scale(1); opacity:.3 } }
@keyframes sw-bubble { 0% { transform:translateY(0) scale(1); opacity:.5 } 50% { transform:translateY(-40px) scale(1.2); opacity:.8 } 100% { transform:translateY(0) scale(1); opacity:.5 } }

.scn-sea-otter-shot {
  background:
    linear-gradient(180deg, #8a9aaa 0%, #6a7a8a 40%, #4a5a6a 100%),
    radial-gradient(ellipse at 40% 30%, #aabbcc 0%, transparent 50%);
}
.scn-sea-otter-shot .sky-bright { position:absolute; top:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #bacada 0%, #8a9aaa 100%); animation: so-sky 6s ease-in-out infinite; }
.scn-sea-otter-shot .trees-bg { position:absolute; bottom:40%; left:0; right:0; height:25%; background: linear-gradient(180deg, #3a4a3a 0%, #2a3a2a 100%); border-radius:30% 70% 0 0 / 50% 60% 0 0; animation: so-trees 8s ease-in-out infinite alternate; }
.scn-sea-otter-shot .bush-left { position:absolute; bottom:38%; left:10%; width:15%; height:20%; background: radial-gradient(ellipse 80% 100% at 50% 100%, #4a5a3a, #2a3a2a); border-radius:50%; animation: so-bush 9s ease-in-out infinite; }
.scn-sea-otter-shot .figure-aiming { position:absolute; bottom:30%; left:45%; width:24px; height:48px; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: so-aim 2s ease-in-out infinite; }
.scn-sea-otter-shot .rifle { position:absolute; bottom:42%; left:48%; width:50px; height:4px; background: linear-gradient(90deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:2px; transform:rotate(-15deg); transform-origin: left center; animation: so-rifle 2s ease-in-out infinite; }
.scn-sea-otter-shot .otter-falling { position:absolute; bottom:50%; left:20%; width:30px; height:12px; background: linear-gradient(180deg, #6a5030 0%, #4a3820 100%); border-radius:50%; animation: so-fall 1.5s ease-in infinite; }
.scn-sea-otter-shot .impact-flash { position:absolute; bottom:52%; left:22%; width:18px; height:18px; background: radial-gradient(circle, #ffe080 0%, #ffb020 40%, transparent 70%); border-radius:50%; animation: so-flash 0.8s ease-out infinite; }
.scn-sea-otter-shot .shadow-stripe { position:absolute; bottom:30%; left:-10%; right:-10%; height:20%; background: linear-gradient(90deg, transparent 0%, rgba(0,0,0,.2) 30%, transparent 60%); animation: so-stripe 3s ease-in-out infinite; }
.scn-sea-otter-shot .dust-particles { position:absolute; bottom:48%; left:25%; width:8px; height:8px; background: rgba(180,160,120,.5); border-radius:50%; filter: blur(2px); animation: so-dust 2s ease-out infinite; }
@keyframes so-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes so-trees { 0% { transform:translateY(0) } 50% { transform:translateY(-2px) } 100% { transform:translateY(1px) } }
@keyframes so-bush { 0%,100% { transform:scale(1) } 50% { transform:scale(1.02) } }
@keyframes so-aim { 0%,100% { transform:translateX(0) rotate(-2deg) } 50% { transform:translateX(-2px) rotate(2deg) } }
@keyframes so-rifle { 0%,100% { transform:rotate(-15deg) } 50% { transform:rotate(-13deg) } }
@keyframes so-fall { 0% { transform:translateY(0) rotate(0deg); opacity:1 } 30% { transform:translateY(10px) rotate(20deg); opacity:1 } 60% { transform:translateY(25px) rotate(45deg); opacity:.7 } 100% { transform:translateY(50px) rotate(60deg); opacity:0 } }
@keyframes so-flash { 0% { transform:scale(0); opacity:1 } 50% { transform:scale(2.5); opacity:.6 } 100% { transform:scale(0); opacity:0 } }
@keyframes so-stripe { 0% { transform:translateX(-20px); opacity:.5 } 50% { transform:translateX(20px); opacity:1 } 100% { transform:translateX(-20px); opacity:.5 } }
@keyframes so-dust { 0% { transform:scale(0) translateY(0); opacity:.8 } 50% { transform:scale(2) translateY(-10px); opacity:.4 } 100% { transform:scale(4) translateY(-20px); opacity:0 } }

.scn-magnificent-otter {
  background:
    linear-gradient(180deg, #8a6a3a 0%, #6a5a3a 40%, #4a3a2a 100%),
    radial-gradient(ellipse at 50% 30%, #c0a060 0%, transparent 50%);
}
.scn-magnificent-otter .bg-warm { position:absolute; inset:0; background: linear-gradient(135deg, #8a7a5a 0%, #6a5a3a 50%, #4a3a2a 100%); animation: mo-warm 10s ease-in-out infinite alternate; }
.scn-magnificent-otter .ground { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #5a4a2a 0%, #3a2a1a 100%); border-radius:40% 60% 0 0 / 60% 50% 0 0; }
.scn-magnificent-otter .otter-body { position:absolute; bottom:20%; left:25%; right:25%; height:40%; background: linear-gradient(180deg, #6a5030 0%, #8a7050 30%, #6a5030 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; animation: mo-body 12s ease-in-out infinite; }
.scn-magnificent-otter .otter-head { position:absolute; bottom:60%; left:40%; width:20%; height:18%; background: linear-gradient(180deg, #8a7050 0%, #6a5030 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: mo-head 8s ease-in-out infinite alternate; }
.scn-magnificent-otter .otter-eye { position:absolute; bottom:67%; left:46%; width:5%; height:6%; background: radial-gradient(circle at 30% 30%, #1a1a1a 0%, #0a0a0a 70%); border-radius:50%; animation: mo-eye 4s ease-in-out infinite; }
.scn-magnificent-otter .otter-fur-glow { position:absolute; bottom:25%; left:30%; right:30%; height:30%; background: radial-gradient(ellipse at 50% 50%, rgba(200,160,100,.3) 0%, transparent 70%); animation: mo-glow 6s ease-in-out infinite; }
.scn-magnificent-otter .whiskers { position:absolute; bottom:64%; left:38%; width:8%; height:2%; background: linear-gradient(90deg, #aaa090 0%, #8a8070 100%); border-radius:2px; transform:rotate(-15deg); animation: mo-whiskers 5s ease-in-out infinite alternate; }
.scn-magnificent-otter .leaf-shadow { position:absolute; bottom:15%; left:55%; width:12%; height:10%; background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,.2), transparent 70%); animation: mo-leaf 7s ease-in-out infinite; }
.scn-magnificent-otter .sun-sparkle { position:absolute; top:10%; right:20%; width:3%; height:4%; background: radial-gradient(circle at 50% 50%, #fff0a0 0%, transparent 70%); border-radius:50%; animation: mo-sparkle 3s ease-in-out infinite; }
@keyframes mo-warm { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes mo-body { 0%,100% { transform:scaleY(1) } 50% { transform:scaleY(1.02) } }
@keyframes mo-head { 0% { transform:translateX(0) rotate(-2deg) } 50% { transform:translateX(3px) rotate(1deg) } 100% { transform:translateX(0) rotate(2deg) } }
@keyframes mo-eye { 0%,100% { transform:scale(1) } 50% { transform:scale(1.1) } }
@keyframes mo-glow { 0% { opacity:.4; transform:scale(1) } 50% { opacity:.7; transform:scale(1.1) } 100% { opacity:.5; transform:scale(.95) } }
@keyframes mo-whiskers { 0% { transform:rotate(-15deg) } 50% { transform:rotate(-10deg) } 100% { transform:rotate(-18deg) } }
@keyframes mo-leaf { 0% { transform:translateX(0); opacity:.3 } 50% { transform:translateX(5px); opacity:.5 } 100% { transform:translateX(0); opacity:.3 } }
@keyframes mo-sparkle { 0% { transform:scale(0); opacity:0 } 30% { transform:scale(1.5); opacity:1 } 60% { transform:scale(.5); opacity:.5 } 100% { transform:scale(0); opacity:0 } }

.scn-otter-value-reflection {
  background:
    linear-gradient(180deg, #2a1a0a 0%, #3a2a1a 40%, #2a1a0a 100%),
    radial-gradient(ellipse at 50% 40%, #5a3a1a 0%, transparent 60%);
}
.scn-otter-value-reflection .interior-shadow { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 60%, rgba(0,0,0,.4), transparent 70%); animation: ov-shadow 8s ease-in-out infinite alternate; }
.scn-otter-value-reflection .table-surface { position:absolute; bottom:10%; left:5%; right:5%; height:25%; background: linear-gradient(180deg, #4a3a1a 0%, #2a1a0a 100%); border-radius:5px 5px 0 0; box-shadow: inset 0 8px 12px rgba(0,0,0,.5); animation: ov-table 6s ease-in-out infinite; }
.scn-otter-value-reflection .pelt-display { position:absolute; bottom:25%; left:20%; right:20%; height:35%; background: linear-gradient(180deg, #6a5030 0%, #8a7050 30%, #6a5030 70%, #5a4020 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; animation: ov-pelt 10s ease-in-out infinite; }
.scn-otter-value-reflection .pelt-shimmer { position:absolute; bottom:30%; left:25%; right:25%; height:20%; background: linear-gradient(90deg, transparent 0%, rgba(200,160,100,.2) 30%, rgba(200,160,100,.4) 50%, rgba(200,160,100,.2) 70%, transparent 100%); animation: ov-shimmer 5s ease-in-out infinite; }
.scn-otter-value-reflection .coin-stack { position:absolute; bottom:15%; left:45%; width:12%; height:15%; background: linear-gradient(180deg, #d0b060 0%, #b09040 50%, #a08030 100%); border-radius:4px; box-shadow: 2px 2px 4px rgba(0,0,0,.3); animation: ov-coin 4s ease-in-out infinite; }
.scn-otter-value-reflection .coin-glow { position:absolute; bottom:18%; left:45%; width:12%; height:4%; background: radial-gradient(ellipse at 50% 50%, rgba(255,200,80,.4), transparent 70%); animation: ov-coinglow 3s ease-in-out infinite alternate; }
.scn-otter-value-reflection .hand-examining { position:absolute; bottom:35%; left:55%; width:15%; height:25%; background: linear-gradient(180deg, #c0a070 0%, #a08050 100%); border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%; transform-origin: bottom left; animation: ov-hand 6s ease-in-out infinite; }
.scn-otter-value-reflection .candle-flame { position:absolute; top:15%; left:70%; width:5%; height:8%; background: radial-gradient(circle at 50% 40%, #ffe080 0%, #ffa030 40%, transparent 70%); border-radius:50% 50% 30% 30% / 60% 60% 40% 40%; animation: ov-flame 2s ease-in-out infinite; }
.scn-otter-value-reflection .candle-wax { position:absolute; top:22%; left:69%; width:7%; height:15%; background: linear-gradient(180deg, #e0d0b0 0%, #c0b090 100%); border-radius:4px 4px 2px 2px; }
@keyframes ov-shadow { 0% { opacity:.5 } 50% { opacity:.7 } 100% { opacity:.6 } }
@keyframes ov-table { 0%,100% { transform:translateY(0) } 50% { transform:translateY(-2px) } }
@keyframes ov-pelt { 0%,100% { transform:scaleX(1) } 50% { transform:scaleX(1.02) } }
@keyframes ov-shimmer { 0% { background-position:-200% 0; opacity:.3 } 50% { background-position:200% 0; opacity:.7 } 100% { background-position:-200% 0; opacity:.3 } }
@keyframes ov-coin { 0%,100% { transform:translateY(0) } 50% { transform:translateY(-3px) } }
@keyframes ov-coinglow { 0% { opacity:.3; transform:scale(1) } 50% { opacity:.7; transform:scale(1.1) } 100% { opacity:.4; transform:scale(.95) } }
@keyframes ov-hand { 0% { transform:translateX(0) rotate(0deg) } 30% { transform:translateX(-8px) rotate(-5deg) } 60% { transform:translateX(4px) rotate(3deg) } 100% { transform:translateX(0) rotate(0deg) } }
@keyframes ov-flame { 0% { transform:scaleY(1) translateY(0) } 30% { transform:scaleY(1.1) translateY(-2px) } 60% { transform:scaleY(.95) translateY(1px) } 100% { transform:scaleY(1) translateY(0) } }

.scn-mother-child-embrace {
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2e 40%, #2a1a1a 100%), radial-gradient(ellipse at 50% 80%, #2a1a1a 0%, transparent 70%);
}
.scn-mother-child-embrace .bg-shadow { position:absolute; inset:0; background: linear-gradient(135deg, rgba(10,10,26,.8) 0%, rgba(26,26,46,.4) 100%); }
.scn-mother-child-embrace .mother {
  position:absolute; bottom:20%; left:50%; width:40px; height:70px; transform:translateX(-50%);
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: me-mother 6s ease-in-out infinite;
}
.scn-mother-child-embrace .child {
  position:absolute; bottom:40%; left:50%; width:20px; height:30px; transform:translateX(-50%);
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: me-child 6s ease-in-out infinite;
}
.scn-mother-child-embrace .arms {
  position:absolute; bottom:31%; left:44%; width:16px; height:10px;
  background: radial-gradient(ellipse 100% 100% at 0% 0%, #1a0a0a 0%, transparent 100%);
  border-radius: 50%;
  transform-origin: right center;
  animation: me-arms 6s ease-in-out infinite;
}
.scn-mother-child-embrace .light-ray {
  position:absolute; top:0; left:45%; width:10%; height:40%;
  background: linear-gradient(180deg, rgba(176,128,64,.15) 0%, transparent 100%);
  animation: me-light 8s ease-in-out infinite alternate;
}
.scn-mother-child-embrace .debris { position:absolute; width:10px; height:10px; background:#3a2a1a; border-radius:2px; }
.scn-mother-child-embrace .debris-a { bottom:15%; left:30%; animation: me-drift-a 12s linear infinite; }
.scn-mother-child-embrace .debris-b { bottom:18%; left:65%; animation: me-drift-b 15s linear infinite; }
@keyframes me-mother {
  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 me-child {
  0% { transform: translateX(-50%) translateY(0) scale(1); }
  50% { transform: translateX(-50%) translateY(-2px) scale(1.02); }
  100% { transform: translateX(-50%) translateY(0) scale(1); }
}
@keyframes me-arms {
  0% { transform: rotate(10deg) scaleX(1); }
  50% { transform: rotate(-10deg) scaleX(1.1); }
  100% { transform: rotate(10deg) scaleX(1); }
}
@keyframes me-light {
  0% { opacity: .4; }
  50% { opacity: .8; }
  100% { opacity: .3; }
}
@keyframes me-drift-a {
  0% { transform: translate(0,0) rotate(0deg); }
  50% { transform: translate(10px,-5px) rotate(45deg); }
  100% { transform: translate(20px,0) rotate(90deg); }
}
@keyframes me-drift-b {
  0% { transform: translate(0,0) rotate(0deg); }
  50% { transform: translate(-15px,-8px) rotate(-60deg); }
  100% { transform: translate(-30px,0) rotate(-120deg); }
}

.scn-helmsman-standing {
  background: linear-gradient(180deg, #0a0a1a 0%, #0f0f2a 40%, #1a1a3e 100%), radial-gradient(ellipse at 50% 80%, #2a2a5a 0%, transparent 70%);
}
.scn-helmsman-standing .bg-depth { position:absolute; inset:0; background: linear-gradient(90deg, rgba(10,10,26,.9) 0%, transparent 50%, rgba(10,10,26,.9) 100%); }
.scn-helmsman-standing .ship-deck {
  position:absolute; bottom:0; left:0; right:0; height:40%;
  background: linear-gradient(0deg, #1a1a2a 0%, #2a2a4a 100%);
  border-radius: 10% 10% 0 0;
  animation: hs-deck 15s ease-in-out infinite alternate;
}
.scn-helmsman-standing .helmsman {
  position:absolute; bottom:40%; left:50%; width:30px; height:60px; transform:translateX(-50%);
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: hs-helmsman 5s ease-in-out infinite;
}
.scn-helmsman-standing .wheel {
  position:absolute; bottom:48%; left:50%; width:40px; height:40px; transform:translateX(-50%);
  background: radial-gradient(circle, #3a2a1a 0%, #1a0a0a 60%, transparent 100%);
  border-radius: 50%;
  animation: hs-wheel 4s linear infinite;
}
.scn-helmsman-standing .light-shaft {
  position:absolute; top:0; left:40%; width:20%; height:60%;
  background: linear-gradient(180deg, rgba(100,140,200,.15) 0%, transparent 100%);
  animation: hs-light 10s ease-in-out infinite alternate;
}
.scn-helmsman-standing .bubble { position:absolute; width:8px; height:8px; background:radial-gradient(circle, rgba(200,200,255,.3) 0%, transparent 100%); border-radius:50%; }
.scn-helmsman-standing .bubble-1 { bottom:70%; left:30%; animation: hs-bubble 6s ease-in infinite; }
.scn-helmsman-standing .bubble-2 { bottom:80%; left:60%; animation: hs-bubble 8s ease-in infinite delay-2s; }
.scn-helmsman-standing .bubble-3 { bottom:90%; left:45%; animation: hs-bubble 7s ease-in infinite delay-4s; }
@keyframes hs-deck {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes hs-helmsman {
  0% { transform: translateX(-50%) rotate(-1deg); }
  25% { transform: translateX(-50%) rotate(1deg) translateY(-1px); }
  50% { transform: translateX(-50%) rotate(-1deg) translateY(0); }
  75% { transform: translateX(-50%) rotate(1deg) translateY(-1px); }
  100% { transform: translateX(-50%) rotate(-1deg); }
}
@keyframes hs-wheel {
  0% { transform: translateX(-50%) rotate(0deg); }
  100% { transform: translateX(-50%) rotate(360deg); }
}
@keyframes hs-light {
  0% { opacity: .3; }
  50% { opacity: .6; transform: translateX(5px); }
  100% { opacity: .2; transform: translateX(-5px); }
}
@keyframes hs-bubble {
  0% { transform: translateY(0) scale(1); opacity:0; }
  20% { opacity:1; }
  80% { opacity:1; }
  100% { transform: translateY(-40px) scale(3); opacity:0; }
}

.scn-sharks-approach-wreck {
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2e 40%, #2a2a4a 100%), radial-gradient(ellipse at 50% 0%, #1a1a3e 0%, transparent 70%);
}
.scn-sharks-approach-wreck .bg-water { position:absolute; inset:0; background: linear-gradient(0deg, rgba(10,10,26,.5) 0%, transparent 100%); }
.scn-sharks-approach-wreck .wreck-hull {
  position:absolute; bottom:10%; left:20%; width:60%; height:20%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1a0a 100%);
  border-radius: 20% 30% 10% 10%;
  box-shadow: inset 0 -10px 30px rgba(0,0,0,.6);
  animation: sa-hull 20s ease-in-out infinite alternate;
}
.scn-sharks-approach-wreck .shark { position:absolute; width:60px; height:12px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% / 100% 100% 0 0; }
.scn-sharks-approach-wreck .shark-a { top:30%; left:10%; transform: rotate(-15deg); animation: sa-shark-a 12s ease-in-out infinite; }
.scn-sharks-approach-wreck .shark-b { top:50%; right:10%; transform: rotate(10deg) scaleX(-1); animation: sa-shark-b 14s ease-in-out infinite; }
.scn-sharks-approach-wreck .shark-fin { position:absolute; width:10px; height:15px; background: #2a2a3a; clip-path: polygon(0% 100%, 50% 0%, 100% 100%); }
.scn-sharks-approach-wreck .fin-a { top:25%; left:25%; animation: sa-fin-a 4s ease-in-out infinite; }
.scn-sharks-approach-wreck .fin-b { top:45%; right:30%; animation: sa-fin-b 5s ease-in-out infinite; }
.scn-sharks-approach-wreck .blood-haze {
  position:absolute; bottom:20%; left:40%; width:30%; height:20%;
  background: radial-gradient(ellipse, rgba(90,30,30,.3) 0%, transparent 100%);
  animation: sa-blood 8s ease-in-out infinite alternate;
}
.scn-sharks-approach-wreck .bubbles {
  position:absolute; bottom:30%; left:50%; width:20px; height:40px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(200,200,255,.15) 0%, transparent 100%);
  animation: sa-bubbles 6s ease-in infinite;
}
@keyframes sa-hull {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-3px) scale(1.02); }
  100% { transform: translateY(0) scale(1); }
}
@keyframes sa-shark-a {
  0% { transform: rotate(-15deg) translateX(0); }
  50% { transform: rotate(-5deg) translateX(20px); }
  100% { transform: rotate(-15deg) translateX(40px); }
}
@keyframes sa-shark-b {
  0% { transform: rotate(10deg) scaleX(-1) translateX(0); }
  50% { transform: rotate(5deg) scaleX(-1) translateX(-15px); }
  100% { transform: rotate(10deg) scaleX(-1) translateX(-30px); }
}
@keyframes sa-fin-a {
  0% { transform: rotate(-10deg) translate(0,0); }
  50% { transform: rotate(10deg) translate(5px, -5px); }
  100% { transform: rotate(-10deg) translate(10px,0); }
}
@keyframes sa-fin-b {
  0% { transform: rotate(10deg) translate(0,0); }
  50% { transform: rotate(-10deg) translate(-5px,5px); }
  100% { transform: rotate(10deg) translate(-10px,0); }
}
@keyframes sa-blood {
  0% { opacity: .2; transform: scale(1); }
  50% { opacity: .5; transform: scale(1.2); }
  100% { opacity: .3; transform: scale(1); }
}
@keyframes sa-bubbles {
  0% { transform: translateY(0) scale(1); opacity: .6; }
  50% { transform: translateY(-20px) scale(2); opacity: .3; }
  100% { transform: translateY(-40px) scale(3); opacity: 0; }
}

.scn-florida-sunderland-wreck {
  background: linear-gradient(180deg, #0f0f1f 0%, #1a1a2e 40%, #2a2a3a 100%), radial-gradient(ellipse at 50% 80%, #1a1a2e 0%, transparent 70%);
}
.scn-florida-sunderland-wreck .bg-ocean { position:absolute; inset:0; background: linear-gradient(180deg, rgba(10,10,26,.6) 0%, transparent 100%); }
.scn-florida-sunderland-wreck .hull {
  position:absolute; bottom:15%; left:10%; width:35%; height:30%;
  background: linear-gradient(135deg, #3a2a1a 0%, #1a1a0a 100%);
  border-radius: 10% 30% 10% 10%;
  transform: rotate(-5deg);
  box-shadow: inset -10px 0 20px rgba(0,0,0,.5);
  animation: fw-hull 25s ease-in-out infinite alternate;
}
.scn-florida-sunderland-wreck .cannon {
  position:absolute; bottom:30%; left:30%; width:25px; height:8px;
  background: #2a2a3a;
  border-radius: 50% 10% 10% 50%;
  transform: rotate(20deg);
  animation: fw-cannon 20s ease-in-out infinite;
}
.scn-florida-sunderland-wreck .anchor {
  position:absolute; bottom:10%; right:20%; width:20px; height:35px;
  background: #1a1a2a;
  clip-path: polygon(25% 0%, 75% 0%, 75% 70%, 100% 70%, 50% 100%, 0% 70%, 25% 70%);
  animation: fw-anchor 30s linear infinite;
}
.scn-florida-sunderland-wreck .chain { position:absolute; width:4px; height:10px; background:#2a2a3a; border-radius:2px; }
.scn-florida-sunderland-wreck .chain-a { bottom:45%; left:15%; animation: fw-chain-a 6s ease-in-out infinite; }
.scn-florida-sunderland-wreck .chain-b { bottom:50%; left:20%; animation: fw-chain-b 8s ease-in-out infinite; }
.scn-florida-sunderland-wreck .shell {
  position:absolute; bottom:20%; left:45%; width:12px; height:18px;
  background: linear-gradient(180deg, #3a4a3a 0%, #2a3a2a 100%);
  border-radius: 50% 50% 30% 30%;
  transform: rotate(30deg);
  animation: fw-shell 12s ease-in-out infinite;
}
.scn-florida-sunderland-wreck .mast {
  position:absolute; bottom:20%; left:20%; width:5px; height:40px;
  background: #2a1a0a;
  border-radius: 2px;
  transform: rotate(-10deg);
  animation: fw-mast 18s ease-in-out infinite alternate;
}
.scn-florida-sunderland-wreck .sand {
  position:absolute; bottom:0; left:0; right:0; height:10%;
  background: linear-gradient(0deg, #1a1a0a 0%, transparent 100%);
  border-radius: 40% 60% 0 0;
}
@keyframes fw-hull {
  0% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(-3deg) translateY(-2px); }
  100% { transform: rotate(-5deg) translateY(0); }
}
@keyframes fw-cannon {
  0% { transform: rotate(20deg) translate(0,0); }
  50% { transform: rotate(25deg) translate(3px, -2px); }
  100% { transform: rotate(20deg) translate(0,0); }
}
@keyframes fw-anchor {
  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 fw-chain-a {
  0%,100% { transform: translate(0,0) rotate(0deg); }
  50% { transform: translate(5px, -5px) rotate(15deg); }
}
@keyframes fw-chain-b {
  0%,100% { transform: translate(0,0) rotate(0deg); }
  50% { transform: translate(-4px, -3px) rotate(-10deg); }
}
@keyframes fw-shell {
  0% { transform: rotate(30deg) translate(0,0); }
  50% { transform: rotate(35deg) translate(2px, -2px); }
  100% { transform: rotate(30deg) translate(0,0); }
}
@keyframes fw-mast {
  0% { transform: rotate(-10deg) translateY(0); }
  50% { transform: rotate(-8deg) translateY(-3px); }
  100% { transform: rotate(-10deg) translateY(0); }
}

.scn-red-light-expands { background: linear-gradient(180deg, #1a0e0a 0%, #2b1a10 40%, #4a2a1a 100%), radial-gradient(ellipse at 50% 100%, #3a1a0a 0%, transparent 70%); }
.scn-red-light-expands .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #0d0806 0%, #1a0e0a 70%, transparent 100%); animation: rle-sky 8s ease-in-out infinite alternate; }
.scn-red-light-expands .plains { position:absolute; bottom:35%; left:0; right:0; height:30%; background: linear-gradient(180deg, #2a1a10 0%, #1a0e0a 100%); border-radius: 30% 70% 0 0 / 60% 80% 0 0; box-shadow: inset 0 5px 15px rgba(0,0,0,.6); animation: rle-plains 12s ease-in-out infinite alternate; }
.scn-red-light-expands .glow { position:absolute; bottom:45%; left:50%; width:120px; height:120px; transform:translate(-50%,50%); background: radial-gradient(circle, #b85a2a 0%, #7a3010 40%, transparent 70%); border-radius:50%; filter:blur(8px); animation: rle-glow 6s ease-in-out infinite alternate; }
.scn-red-light-expands .light-rays { position:absolute; bottom:50%; left:50%; width:200px; height:200px; transform:translate(-50%,50%); background: conic-gradient(from 0deg, transparent 0%, #b85a2a 20%, transparent 40%, #b85a2a 60%, transparent 80%, #b85a2a 100%); opacity:0.15; filter:blur(12px); animation: rle-rays 10s linear infinite; }
.scn-red-light-expands .figure1 { position:absolute; bottom:32%; left:30%; width:14px; height:30px; background: linear-gradient(180deg, #0d0806 0%, #1a0e0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rle-walk1 5s ease-in-out infinite; }
.scn-red-light-expands .figure2 { position:absolute; bottom:32%; left:36%; width:16px; height:32px; background: linear-gradient(180deg, #0d0806 0%, #1a0e0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rle-walk2 5s ease-in-out infinite 0.5s; }
.scn-red-light-expands .ground { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #1a0e0a 0%, #0d0806 100%); border-radius: 20% 20% 0 0 / 40% 40% 0 0; }
@keyframes rle-sky { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes rle-plains { 0% { transform:translateY(0) scaleX(1) } 50% { transform:translateY(-2px) scaleX(1.02) } 100% { transform:translateY(0) scaleX(1) } }
@keyframes rle-glow { 0% { opacity:0.6; transform:translate(-50%,50%) scale(0.9) } 50% { opacity:1; transform:translate(-50%,50%) scale(1.1) } 100% { opacity:0.8; transform:translate(-50%,50%) scale(1) } }
@keyframes rle-rays { 0% { transform:translate(-50%,50%) rotate(0deg) } 100% { transform:translate(-50%,50%) rotate(360deg) } }
@keyframes rle-walk1 { 0% { transform:translateX(0) translateY(0) rotate(-2deg) } 25% { transform:translateX(5px) translateY(-1px) rotate(1deg) } 50% { transform:translateX(10px) translateY(0) rotate(-1deg) } 75% { transform:translateX(15px) translateY(-1px) rotate(2deg) } 100% { transform:translateX(20px) translateY(0) rotate(0deg) } }
@keyframes rle-walk2 { 0% { transform:translateX(0) translateY(0) rotate(-1deg) } 25% { transform:translateX(4px) translateY(-1px) rotate(2deg) } 50% { transform:translateX(8px) translateY(0) rotate(0deg) } 75% { transform:translateX(12px) translateY(-1px) rotate(-2deg) } 100% { transform:translateX(16px) translateY(0) rotate(0deg) } }

.scn-colony-of-exiles-thought { background: linear-gradient(180deg, #0d0806 0%, #1a0e0a 40%, #2b1a10 100%), radial-gradient(ellipse at 50% 70%, #3a1a0a 0%, transparent 60%); }
.scn-colony-of-exiles-thought .cave-back { position:absolute; inset:0; background: radial-gradient(ellipse at 40% 60%, #1a0e0a 0%, #0d0806 70%); filter:blur(4px); animation: cot-cave 15s ease-in-out infinite alternate; }
.scn-colony-of-exiles-thought .cave-mid { position:absolute; bottom:20%; left:10%; right:10%; height:40%; background: linear-gradient(180deg, transparent 0%, #2b1a10 100%); border-radius: 30% 30% 0 0 / 50% 50% 0 0; box-shadow: inset 0 -10px 20px rgba(0,0,0,.8); }
.scn-colony-of-exiles-thought .fire { position:absolute; bottom:30%; left:50%; width:40px; height:50px; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 80%, #b85a2a 0%, #7a3010 50%, transparent 70%); border-radius:50%; filter:blur(6px); animation: cot-fire 2s ease-in-out infinite alternate; }
.scn-colony-of-exiles-thought .fire-glow { position:absolute; bottom:25%; left:50%; width:120px; height:120px; transform:translateX(-50%); background: radial-gradient(circle, #b85a2a 0%, #7a3010 30%, transparent 70%); border-radius:50%; filter:blur(20px); opacity:0.6; animation: cot-glow 3s ease-in-out infinite alternate; }
.scn-colony-of-exiles-thought .figure1 { position:absolute; bottom:24%; left:35%; width:18px; height:36px; background: linear-gradient(180deg, #0d0806 0%, #1a0e0a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin:bottom center; animation: cot-sit 6s ease-in-out infinite; }
.scn-colony-of-exiles-thought .figure2 { position:absolute; bottom:24%; left:43%; width:18px; height:34px; background: linear-gradient(180deg, #0d0806 0%, #1a0e0a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin:bottom center; animation: cot-sit 6s ease-in-out infinite 0.3s; }
.scn-colony-of-exiles-thought .figure3 { position:absolute; bottom:24%; left:51%; width:20px; height:38px; background: linear-gradient(180deg, #0d0806 0%, #1a0e0a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin:bottom center; animation: cot-sit 6s ease-in-out infinite 0.6s; }
.scn-colony-of-exiles-thought .shadow-flicker { position:absolute; bottom:30%; left:20%; right:20%; height:50%; background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,.5) 0%, transparent 70%); filter:blur(8px); animation: cot-shadow 4s ease-in-out infinite alternate; }
@keyframes cot-cave { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes cot-fire { 0% { transform:translateX(-50%) scale(1) rotate(-3deg); opacity:0.8 } 50% { transform:translateX(-50%) scale(1.1) rotate(3deg); opacity:1 } 100% { transform:translateX(-50%) scale(0.95) rotate(0deg); opacity:0.7 } }
@keyframes cot-glow { 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) } }
@keyframes cot-sit { 0% { transform:translateY(0) rotate(-1deg) } 25% { transform:translateY(-1px) rotate(2deg) } 50% { transform:translateY(0) rotate(-1deg) } 75% { transform:translateY(-1px) rotate(1deg) } 100% { transform:translateY(0) rotate(0deg) } }
@keyframes cot-shadow { 0% { opacity:0.5; transform:scaleY(0.95) } 50% { opacity:0.8; transform:scaleY(1.05) } 100% { opacity:0.6; transform:scaleY(1) } }

.scn-path-brighter-mountain-ahead { background: linear-gradient(180deg, #0d0806 0%, #1a0e0a 30%, #2b1a10 70%, #0d0806 100%), radial-gradient(ellipse at 50% 30%, #4a2a1a 0%, transparent 70%); }
.scn-path-brighter-mountain-ahead .mountain { position:absolute; bottom:30%; left:20%; right:20%; height:60%; background: linear-gradient(180deg, #2b1a10 0%, #1a0e0a 100%); clip-path: polygon(50% 0%, 0% 100%, 100% 100%); animation: pbm-mtn 20s ease-in-out infinite alternate; }
.scn-path-brighter-mountain-ahead .path { position:absolute; bottom:20%; left:45%; right:45%; height:40%; background: linear-gradient(180deg, #4a2a1a 0%, #2b1a10 100%); border-radius: 0 0 50% 50% / 0 0 30% 30%; transform:rotate(-5deg); transform-origin:bottom center; animation: pbm-path 15s ease-in-out infinite alternate; }
.scn-path-brighter-mountain-ahead .light-beam { position:absolute; top:5%; left:50%; width:80px; height:200px; transform:translateX(-50%); background: linear-gradient(180deg, #b85a2a 0%, transparent 100%); opacity:0.3; filter:blur(10px); animation: pbm-beam 5s ease-in-out infinite alternate; }
.scn-path-brighter-mountain-ahead .water { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #1a0e0a 0%, #0d0806 100%); border-radius: 50% 50% 0 0 / 30% 30% 0 0; animation: pbm-water 8s ease-in-out infinite alternate; }
.scn-path-brighter-mountain-ahead .reflection { position:absolute; bottom:0; left:10%; right:10%; height:15%; background: linear-gradient(180deg, rgba(184,90,42,0.4) 0%, transparent 100%); filter:blur(6px); animation: pbm-reflect 8s ease-in-out infinite alternate 0.5s; }
.scn-path-brighter-mountain-ahead .figure { position:absolute; bottom:22%; left:47%; width:12px; height:26px; background: linear-gradient(180deg, #0d0806 0%, #1a0e0a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin:bottom center; animation: pbm-climb 4s ease-in-out infinite; }
@keyframes pbm-mtn { 0% { transform:scaleY(0.95) translateY(2px) } 50% { transform:scaleY(1) translateY(0) } 100% { transform:scaleY(0.98) translateY(1px) } }
@keyframes pbm-path { 0% { transform:rotate(-5deg) scaleY(1) } 50% { transform:rotate(-4deg) scaleY(1.02) } 100% { transform:rotate(-5.5deg) scaleY(0.98) } }
@keyframes pbm-beam { 0% { opacity:0.2; transform:translateX(-50%) scaleY(0.9) } 50% { opacity:0.4; transform:translateX(-50%) scaleY(1.1) } 100% { opacity:0.3; transform:translateX(-50%) scaleY(1) } }
@keyframes pbm-water { 0% { background-position:0% 0% } 50% { background-position:50% 0% } 100% { background-position:100% 0% } }
@keyframes pbm-reflect { 0% { opacity:0.3 } 50% { opacity:0.6 } 100% { opacity:0.4 } }
@keyframes pbm-climb { 0% { transform:translateY(0) rotate(-3deg) } 25% { transform:translateY(-2px) rotate(2deg) } 50% { transform:translateY(-4px) rotate(-1deg) } 75% { transform:translateY(-2px) rotate(1deg) } 100% { transform:translateY(0) rotate(0deg) } }

.scn-forest-of-dead-trees { background: linear-gradient(180deg, #0d0806 0%, #1a0e0a 50%, #2b1a10 100%), radial-gradient(ellipse at 30% 50%, #3a1a0a 0%, transparent 70%); }
.scn-forest-of-dead-trees .bg { position:absolute; inset:0; background: repeating-linear-gradient(90deg, transparent 0%, transparent 4%, #2b1a10 4%, #2b1a10 4.5%, transparent 4.5%, transparent 10%); opacity:0.3; filter:blur(2px); animation: fdt-bg 40s linear infinite; }
.scn-forest-of-dead-trees .tree1 { position:absolute; bottom:10%; left:15%; width:30px; height:150px; background: linear-gradient(90deg, #4a2a1a 0%, #2b1a10 100%); border-radius: 10% 10% 5% 5%; box-shadow: inset 0 0 10px #0d0806; transform:rotate(-8deg); transform-origin:bottom; animation: fdt-tree1 12s ease-in-out infinite alternate; }
.scn-forest-of-dead-trees .tree2 { position:absolute; bottom:10%; left:35%; width:25px; height:120px; background: linear-gradient(90deg, #4a2a1a 0%, #2b1a10 100%); border-radius: 10% 10% 5% 5%; box-shadow: inset 0 0 10px #0d0806; transform:rotate(5deg); transform-origin:bottom; animation: fdt-tree2 14s ease-in-out infinite alternate; }
.scn-forest-of-dead-trees .tree3 { position:absolute; bottom:10%; left:60%; width:35px; height:140px; background: linear-gradient(90deg, #4a2a1a 0%, #2b1a10 100%); border-radius: 10% 10% 5% 5%; box-shadow: inset 0 0 10px #0d0806; transform:rotate(-12deg); transform-origin:bottom; animation: fdt-tree3 18s ease-in-out infinite alternate; }
.scn-forest-of-dead-trees .ground { position:absolute; bottom:0; left:0; right:0; height:15%; background: linear-gradient(180deg, #2b1a10 0%, #1a0e0a 100%); border-radius: 30% 30% 0 0 / 40% 40% 0 0; }
.scn-forest-of-dead-trees .light-spots { position:absolute; inset:0; background: radial-gradient(circle at 20% 60%, #b85a2a 0%, transparent 20%), radial-gradient(circle at 70% 40%, #7a3010 0%, transparent 15%), radial-gradient(circle at 40% 80%, #b85a2a 0%, transparent 10%); mix-blend-mode:overlay; opacity:0.4; animation: fdt-light 5s ease-in-out infinite alternate; }
.scn-forest-of-dead-trees .shadow-lines { position:absolute; bottom:0; left:0; right:0; height:90%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.6) 100%); filter:blur(8px); animation: fdt-shadow 7s ease-in-out infinite alternate; }
@keyframes fdt-bg { 0% { transform:translateX(0) } 100% { transform:translateX(-50%) } }
@keyframes fdt-tree1 { 0% { transform:rotate(-8deg) scaleY(1); opacity:0.8 } 50% { transform:rotate(-6deg) scaleY(1.02); opacity:1 } 100% { transform:rotate(-9deg) scaleY(0.98); opacity:0.9 } }
@keyframes fdt-tree2 { 0% { transform:rotate(5deg) scaleY(1); opacity:0.7 } 50% { transform:rotate(4deg) scaleY(1.01); opacity:0.9 } 100% { transform:rotate(6deg) scaleY(0.99); opacity:0.8 } }
@keyframes fdt-tree3 { 0% { transform:rotate(-12deg) scaleY(1); opacity:0.9 } 50% { transform:rotate(-10deg) scaleY(1.03); opacity:1 } 100% { transform:rotate(-13deg) scaleY(0.97); opacity:0.85 } }
@keyframes fdt-light { 0% { opacity:0.3; filter:blur(5px) } 50% { opacity:0.6; filter:blur(8px) } 100% { opacity:0.4; filter:blur(6px) } }
@keyframes fdt-shadow { 0% { opacity:0.5; transform:scaleY(0.95) } 50% { opacity:0.8; transform:scaleY(1.05) } 100% { opacity:0.6; transform:scaleY(1) } }

/* Scene: bird-song-wood (calm, sunlit) */
.scn-bird-song-wood {
  background: linear-gradient(180deg, #87ceeb 0%, #f0e68c 60%, #deb887 100%), radial-gradient(ellipse at 80% 20%, #ffe4b5 0%, transparent 60%);
}
.scn-bird-song-wood .sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #87ceeb 0%, #b0e0e6 100%);
  animation: bsw-sky 20s ease-in-out infinite alternate;
}
.scn-bird-song-wood .sun {
  position: absolute; top: 12%; left: 75%; width: 40px; height: 40px;
  background: radial-gradient(circle, #fff8dc 0%, #ffeb3b 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px #ffeb3b;
  animation: bsw-sun 8s ease-in-out infinite alternate;
}
.scn-bird-song-wood .distant-woods {
  position: absolute; bottom: 28%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #556b2f 0%, #2e4a1e 100%);
  border-radius: 30% 70% 0 0 / 50% 80% 0 0;
  filter: blur(4px);
  animation: bsw-treesway 15s ease-in-out infinite alternate;
}
.scn-bird-song-wood .trees {
  position: absolute; bottom: 20%; left: 10%; right: 10%; height: 35%;
  background: linear-gradient(180deg, #3a5f0b 0%, #1a3a0a 100%);
  border-radius: 40% 60% 0 0 / 70% 80% 0 0;
  clip-path: polygon(0% 0%, 15% 10%, 25% 0%, 40% 15%, 55% 0%, 70% 10%, 85% 0%, 100% 15%, 100% 100%, 0% 100%);
  animation: bsw-treesway 18s ease-in-out infinite alternate 2s;
}
.scn-bird-song-wood .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #8fbc8f 0%, #6b8e23 100%);
  border-radius: 20% 20% 0 0;
}
.scn-bird-song-wood .bird {
  position: absolute; bottom: 40%; width: 20px; height: 10px;
  background: #2c2c2c;
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  transform-origin: center;
  animation: bsw-bird 6s ease-in-out infinite;
}
.scn-bird-song-wood .bird-a { left: 20%; animation-duration: 5s; }
.scn-bird-song-wood .bird-b { left: 50%; bottom: 45%; animation-delay: 1.5s; animation-duration: 7s; }
.scn-bird-song-wood .bird-c { left: 70%; bottom: 38%; animation-delay: 3s; animation-duration: 4.5s; animation-direction: reverse; }

@keyframes bsw-sky {
  0% { opacity: .8; }
  50% { opacity: 1; }
  100% { opacity: .7; }
}
@keyframes bsw-sun {
  0% { transform: scale(1); box-shadow: 0 0 40px 15px #ffeb3b; }
  50% { transform: scale(1.1); box-shadow: 0 0 80px 30px #ffeb3b; }
  100% { transform: scale(0.9); box-shadow: 0 0 50px 20px #ffeb3b; }
}
@keyframes bsw-treesway {
  0% { transform: translateX(0); }
  50% { transform: translateX(3px) rotate(0.5deg); }
  100% { transform: translateX(-2px) rotate(-0.5deg); }
}
@keyframes bsw-bird {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-8px) rotate(5deg); }
  50% { transform: translateY(0) rotate(0deg); }
  75% { transform: translateY(-8px) rotate(-5deg); }
  100% { transform: translateY(0) rotate(0deg); }
}

/* Scene: parrots-as-food (funny, sunlit) */
.scn-parrots-as-food {
  background: linear-gradient(180deg, #ffe4b5 0%, #f5deb3 40%, #d2b48c 100%), radial-gradient(circle at 50% 100%, #ffdead 0%, transparent 70%);
}
.scn-parrots-as-food .bg-table {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #d2b48c 0%, #a0522d 100%);
  transform: perspective(300px) rotateX(10deg);
  transform-origin: bottom;
}
.scn-parrots-as-food .plate {
  position: absolute; bottom: 15%; left: 50%; width: 120px; height: 25px; margin-left: -60px;
  background: radial-gradient(ellipse at 50% 50%, #fff8dc 0%, #f5f5dc 60%, #cd853f 100%);
  border-radius: 50%;
  box-shadow: 0 8px 15px rgba(0,0,0,0.3);
  animation: paf-plate 4s ease-in-out infinite;
}
.scn-parrots-as-food .parrot-body {
  position: absolute; bottom: 22%; left: 50%; width: 40px; height: 50px; margin-left: -20px;
  background: radial-gradient(ellipse at 50% 50%, #9acd32 0%, #6b8e23 100%);
  border-radius: 50% 50% 60% 60% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: paf-body 2s ease-in-out infinite alternate;
}
.scn-parrots-as-food .parrot-head {
  position: absolute; bottom: 40%; left: 50%; width: 24px; height: 24px; margin-left: -5px;
  background: radial-gradient(circle, #ffd700 0%, #daa520 100%);
  border-radius: 50%;
  box-shadow: 0 0 10px 5px #ffd700;
  animation: paf-head 3s ease-in-out infinite alternate;
}
.scn-parrots-as-food .fork {
  position: absolute; bottom: 32%; left: 60%; width: 4px; height: 40px;
  background: linear-gradient(180deg, #c0c0c0 0%, #808080 100%);
  border-radius: 2px;
  transform: rotate(-15deg);
  animation: paf-fork 2.5s ease-in-out infinite;
}
.scn-parrots-as-food .fork::before {
  content: ''; position: absolute; top: -6px; left: -3px; width: 10px; height: 8px;
  background: repeating-linear-gradient(90deg, #c0c0c0 0px, #c0c0c0 2px, transparent 2px, transparent 4px);
  border-radius: 2px;
}
.scn-parrots-as-food .steam {
  position: absolute; bottom: 45%; width: 8px; height: 20px;
  background: rgba(255,255,240,0.5);
  border-radius: 50%;
  filter: blur(4px);
  animation: paf-steam 2s ease-out infinite;
}
.scn-parrots-as-food .steam-1 { left: 48%; animation-delay: 0s; }
.scn-parrots-as-food .steam-2 { left: 54%; animation-delay: 0.8s; }

@keyframes paf-plate {
  0%,100% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-4px) scale(1.03); }
}
@keyframes paf-body {
  0% { transform: translateY(0) rotate(0deg); }
  100% { transform: translateY(-3px) rotate(3deg); }
}
@keyframes paf-head {
  0% { transform: translate(0,0) rotate(0deg); }
  50% { transform: translate(2px,-2px) rotate(5deg); }
  100% { transform: translate(0,0) rotate(-3deg); }
}
@keyframes paf-fork {
  0%,100% { transform: rotate(-15deg) translateY(0); }
  50% { transform: rotate(-10deg) translateY(-3px); }
}
@keyframes paf-steam {
  0% { opacity: 0.7; transform: translateY(0) scale(1); }
  50% { opacity: 0.4; transform: translateY(-20px) scale(1.5); }
  100% { opacity: 0; transform: translateY(-40px) scale(2); }
}

/* Scene: parrot-description (calm, sunlit) */
.scn-parrot-description {
  background: linear-gradient(180deg, #e0f7fa 0%, #fff9c4 50%, #ffcc80 100%), radial-gradient(ellipse at 50% 30%, #fff9c4 0%, transparent 70%);
}
.scn-parrot-description .sky {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #e0f7fa 0%, #b2dfdb 100%);
  animation: pd-sky 12s ease-in-out infinite alternate;
}
.scn-parrot-description .sun {
  position: absolute; top: 5%; left: 70%; width: 50px; height: 50px;
  background: radial-gradient(circle, #fff8dc 0%, #ffeb3b 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 80px 30px #ffeb3b;
  animation: pd-sun 9s ease-in-out infinite alternate;
}
.scn-parrot-description .cloud {
  position: absolute; top: 12%; left: 20%; width: 100px; height: 20px;
  background: rgba(255,255,255,0.6);
  border-radius: 50%;
  filter: blur(5px);
  animation: pd-cloud 30s linear infinite;
}
.scn-parrot-description .canopy {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #8bc34a 0%, #4caf50 60%, #2e7d32 100%);
  border-radius: 80% 20% 0 0;
  clip-path: polygon(0% 0%, 10% 10%, 20% 0%, 35% 15%, 50% 0%, 65% 10%, 80% 0%, 100% 10%, 100% 100%, 0% 100%);
  animation: pd-canopy 20s ease-in-out infinite alternate;
}
.scn-parrot-description .parrot {
  position: absolute; width: 30px; height: 20px;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: center;
  animation: pd-parrot 4s ease-in-out infinite;
}
.scn-parrot-description .red-parrot {
  background: #d32f2f; /* desaturated red? #c8553d would be better but we need distinct. Use dark red but avoid bright crimson. #b71c1c is burgundy */
  background: #b71c1c;
  top: 20%; left: 15%;
  animation-duration: 5s;
  animation-delay: 0s;
}
.scn-parrot-description .blue-parrot {
  background: #1565c0;
  top: 25%; left: 35%;
  animation-duration: 6s;
  animation-delay: 1s;
}
.scn-parrot-description .yellow-parrot {
  background: #fbc02d;
  top: 18%; left: 55%;
  animation-duration: 4.5s;
  animation-delay: 2s;
}
.scn-parrot-description .green-parrot {
  background: #388e3c;
  top: 22%; left: 75%;
  animation-duration: 5.5s;
  animation-delay: 0.5s;
}
@keyframes pd-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes pd-sun {
  0% { transform: scale(1); box-shadow: 0 0 60px 20px #ffeb3b; }
  100% { transform: scale(1.1); box-shadow: 0 0 100px 40px #ffeb3b; }
}
@keyframes pd-cloud {
  0% { transform: translateX(-80px); }
  100% { transform: translateX(120vw); }
}
@keyframes pd-canopy {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-2px) scaleY(1.02); }
  100% { transform: translateY(0); }
}
@keyframes pd-parrot {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-10px) rotate(10deg); }
  50% { transform: translateY(0) rotate(0deg); }
  75% { transform: translateY(-10px) rotate(-10deg); }
  100% { transform: translateY(0) rotate(0deg); }
}

/* Scene: bird-of-paradise-expected (calm, sunlit) */
.scn-bird-of-paradise-expected {
  background: linear-gradient(180deg, #ff7e5f 0%, #feb47b 30%, #fff9c4 70%, #e0f7fa 100%), radial-gradient(ellipse at 50% 80%, #ffcc80 0%, transparent 60%);
}
.scn-bird-of-paradise-expected .sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #ff7e5f 0%, #feb47b 50%, #fff9c4 100%);
  animation: bpe-sky 15s ease-in-out infinite alternate;
}
.scn-bird-of-paradise-expected .horizon-glow {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #ffe0b2 0%, transparent 100%);
  animation: bpe-glow 8s ease-in-out infinite alternate;
}
.scn-bird-of-paradise-expected .branch {
  position: absolute; bottom: 35%; left: 30%; right: 30%; height: 4px;
  background: #5d4037;
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
}
.scn-bird-of-paradise-expected .bird-body {
  position: absolute; bottom: 38%; left: 50%; width: 30px; height: 35px; margin-left: -15px;
  background: radial-gradient(ellipse at 50% 40%, #4a148c 0%, #311b92 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bpe-body 5s ease-in-out infinite alternate;
}
.scn-bird-of-paradise-expected .wings {
  position: absolute; bottom: 42%; left: 48%; width: 40px; height: 20px; margin-left: -20px;
  background: linear-gradient(135deg, #7b1fa2 0%, #e040fb 100%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  clip-path: polygon(0% 50%, 40% 0%, 60% 0%, 100% 50%, 60% 100%, 40% 100%);
  animation: bpe-wings 3s ease-in-out infinite alternate;
}
.scn-bird-of-paradise-expected .tail-feathers {
  position: absolute; bottom: 25%; left: 50%; width: 15px; height: 25px; margin-left: -7px;
  background: linear-gradient(180deg, #9c27b0 0%, #ff4081 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  transform-origin: top center;
  animation: bpe-tail 4s ease-in-out infinite alternate;
}
.scn-bird-of-paradise-expected .sun {
  position: absolute; top: 5%; left: 80%; width: 40px; height: 40px;
  background: radial-gradient(circle, #fff8dc 0%, #ffeb3b 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 50px 20px #ffeb3b;
  animation: bpe-sun 10s ease-in-out infinite alternate;
}

@keyframes bpe-sky {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes bpe-glow {
  0% { opacity: 0.6; }
  100% { opacity: 1; }
}
@keyframes bpe-body {
  0% { transform: translateY(0) rotate(0deg); }
  100% { transform: translateY(-3px) rotate(2deg); }
}
@keyframes bpe-wings {
  0% { transform: rotate(0deg) scaleX(1); }
  50% { transform: rotate(-15deg) scaleX(1.2); }
  100% { transform: rotate(15deg) scaleX(1); }
}
@keyframes bpe-tail {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(-5deg) scaleY(1.1); }
  100% { transform: rotate(5deg); }
}
@keyframes bpe-sun {
  0% { transform: scale(1); box-shadow: 0 0 40px 15px #ffeb3b; }
  100% { transform: scale(1.1); box-shadow: 0 0 80px 30px #ffeb3b; }
}

/* End of scenes */

.scn-heading-south-southwest {
  background:
    linear-gradient(180deg, #c8a87a 0%, #9a7a5a 40%, #6a4a2a 100%),
    radial-gradient(ellipse at 30% 50%, #dab88a 0%, transparent 60%);
}
.scn-heading-south-southwest .cabin-wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a1a 100%);
  border-radius: 12% 12% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.5);
  animation: hss-wall 15s ease-in-out infinite alternate;
}
.scn-heading-south-southwest .porthole {
  position: absolute; top: 15%; left: 65%; width: 60px; height: 60px;
  background: radial-gradient(circle at 40% 30%, #f0e0c0 0%, #80a0c0 60%, #406080 100%);
  border-radius: 50%;
  box-shadow: inset -4px -4px 12px rgba(0,0,0,0.4), 0 0 20px rgba(255,255,200,0.3);
  animation: hss-porthole 8s ease-in-out infinite;
}
.scn-heading-south-southwest .chart-table {
  position: absolute; bottom: 25%; left: 20%; right: 20%; height: 30%;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 4% 4% 0 0;
  transform: perspective(600px) rotateX(12deg);
  box-shadow: 0 -6px 12px rgba(0,0,0,0.6);
  animation: hss-table 12s ease-in-out infinite alternate;
}
.scn-heading-south-southwest .compass {
  position: absolute; bottom: 35%; left: 40%; width: 40px; height: 40px;
  background: radial-gradient(circle, #e0c8a0 0%, #a08060 60%, #604020 100%);
  border-radius: 50%;
  box-shadow: 0 0 12px rgba(255,200,100,0.4);
  animation: hss-compass 4s ease-in-out infinite;
}
.scn-heading-south-southwest .sunbeam {
  position: absolute; top: 12%; left: 60%; width: 120px; height: 160px;
  background: linear-gradient(180deg, rgba(255,230,180,0.35) 0%, rgba(255,200,120,0.15) 40%, transparent 100%);
  transform: rotate(-25deg);
  filter: blur(8px);
  animation: hss-sunbeam 6s ease-in-out infinite alternate;
}
.scn-heading-south-southwest .figure-silhouette {
  position: absolute; bottom: 32%; left: 50%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%) rotate(5deg);
  animation: hss-figure 4s ease-in-out infinite;
}
@keyframes hss-wall { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes hss-porthole { 0% { transform: scale(1); } 50% { transform: scale(1.03); } 100% { transform: scale(1); } }
@keyframes hss-table { 0% { transform: perspective(600px) rotateX(12deg) translateY(0); } 50% { transform: perspective(600px) rotateX(10deg) translateY(-2px); } 100% { transform: perspective(600px) rotateX(12deg) translateY(0); } }
@keyframes hss-compass { 0% { transform: rotate(-8deg); } 50% { transform: rotate(8deg); } 100% { transform: rotate(-8deg); } }
@keyframes hss-sunbeam { 0% { opacity: 0.6; transform: rotate(-25deg) scaleY(1); } 50% { opacity: 1; transform: rotate(-20deg) scaleY(1.1); } 100% { opacity: 0.6; transform: rotate(-25deg) scaleY(1); } }
@keyframes hss-figure { 0% { transform: translateX(-50%) rotate(5deg); } 50% { transform: translateX(-48%) rotate(0deg); } 100% { transform: translateX(-50%) rotate(5deg); } }

.scn-no-land-in-sight {
  background:
    linear-gradient(180deg, #7a8a8a 0%, #5a6a6a 30%, #3a4a4a 100%),
    radial-gradient(ellipse at 50% 40%, #9aabab 0%, transparent 60%);
}
.scn-no-land-in-sight .sea-sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #8a9a9a 0%, #4a5a5a 100%);
  animation: nls-sky 20s ease-in-out infinite alternate;
}
.scn-no-land-in-sight .fog-bank {
  position: absolute; top: 20%; left: 0; right: 0; height: 40%;
  background: radial-gradient(ellipse at 30% 50%, rgba(180,190,190,0.6) 0%, transparent 60%),
              radial-gradient(ellipse at 70% 60%, rgba(160,170,170,0.4) 0%, transparent 50%);
  filter: blur(10px);
  animation: nls-fog 30s linear infinite alternate;
}
.scn-no-land-in-sight .horizon-line {
  position: absolute; top: 48%; left: 0; right: 0; height: 2px;
  background: linear-gradient(90deg, transparent, rgba(200,210,210,0.5), transparent);
  box-shadow: 0 0 8px rgba(200,210,210,0.3);
  animation: nls-horizon 8s ease-in-out infinite;
}
.scn-no-land-in-sight .neds-figure {
  position: absolute; bottom: 38%; left: 30%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #1a2222 0%, #0a1212 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: nls-figure 5s ease-in-out infinite;
}
.scn-no-land-in-sight .rail {
  position: absolute; bottom: 35%; left: 10%; right: 10%; height: 6px;
  background: linear-gradient(90deg, #2a3a3a, #4a5a5a, #2a3a3a);
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: nls-rail 12s ease-in-out infinite;
}
@keyframes nls-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes nls-fog { 0% { transform: translateX(-20px) scaleX(1); } 50% { transform: translateX(10px) scaleX(1.05); } 100% { transform: translateX(-20px) scaleX(1); } }
@keyframes nls-horizon { 0% { opacity: 0.5; } 50% { opacity: 1; } 100% { opacity: 0.5; } }
@keyframes nls-figure { 0% { transform: rotate(-3deg) translateY(0); } 25% { transform: rotate(2deg) translateY(-2px); } 50% { transform: rotate(-1deg) translateY(0); } 75% { transform: rotate(3deg) translateY(-1px); } 100% { transform: rotate(-3deg) translateY(0); } }
@keyframes nls-rail { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.1); } 100% { transform: scaleY(1); } }

.scn-despair-and-resignation {
  background:
    linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 50%, #1a0a0a 100%),
    radial-gradient(ellipse at 50% 60%, #4a3a3a 0%, transparent 70%);
}
.scn-despair-and-resignation .cabin-interior {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 8% 8% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.6);
  animation: dnr-walls 20s ease-in-out infinite alternate;
}
.scn-despair-and-resignation .desk {
  position: absolute; bottom: 22%; left: 20%; right: 20%; height: 18%;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 2% 2% 0 0;
  box-shadow: 0 -4px 12px rgba(0,0,0,0.5);
  transform: perspective(400px) rotateX(8deg);
  animation: dnr-desk 15s ease-in-out infinite alternate;
}
.scn-despair-and-resignation .lamp-glow {
  position: absolute; bottom: 32%; left: 35%; width: 30px; height: 40px;
  background: radial-gradient(circle at 50% 30%, #e0b060 0%, #c09040 40%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 10px rgba(200,140,60,0.5), 0 0 80px 20px rgba(200,140,60,0.2);
  animation: dnr-lamp 4s ease-in-out infinite alternate;
}
.scn-despair-and-resignation .sitting-figure {
  position: absolute; bottom: 24%; left: 28%; width: 20px; height: 36px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dnr-sit 6s ease-in-out infinite;
}
.scn-despair-and-resignation .captain-silhouette {
  position: absolute; bottom: 24%; left: 58%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #1a1212 0%, #0a0808 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dnr-captain 8s ease-in-out infinite alternate;
}
.scn-despair-and-resignation .book-spine {
  position: absolute; bottom: 28%; left: 22%; width: 8px; height: 20px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 2px;
  transform: rotate(15deg);
  animation: dnr-book 10s ease-in-out infinite;
}
@keyframes dnr-walls { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes dnr-desk { 0% { transform: perspective(400px) rotateX(8deg) translateY(0); } 50% { transform: perspective(400px) rotateX(6deg) translateY(-2px); } 100% { transform: perspective(400px) rotateX(8deg) translateY(0); } }
@keyframes dnr-lamp { 0% { opacity: 0.9; box-shadow: 0 0 30px 8px rgba(200,140,60,0.5), 0 0 60px 15px rgba(200,140,60,0.2); } 50% { opacity: 1; box-shadow: 0 0 50px 15px rgba(220,160,80,0.6), 0 0 100px 30px rgba(220,160,80,0.3); } 100% { opacity: 0.9; box-shadow: 0 0 30px 8px rgba(200,140,60,0.5), 0 0 60px 15px rgba(200,140,60,0.2); } }
@keyframes dnr-sit { 0% { transform: rotate(-2deg); } 25% { transform: rotate(1deg); } 50% { transform: rotate(-1deg); } 75% { transform: rotate(2deg); } 100% { transform: rotate(-2deg); } }
@keyframes dnr-captain { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-3px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes dnr-book { 0% { transform: rotate(15deg) scaleY(1); } 50% { transform: rotate(12deg) scaleY(1.02); } 100% { transform: rotate(15deg) scaleY(1); } }

.scn-night-excursion-proposed {
  background:
    linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 50%, #000010 100%),
    radial-gradient(ellipse at 40% 30%, #2a2a4a 0%, transparent 60%);
}
.scn-night-excursion-proposed .cabin-night {
  position: absolute; inset: 0 0 15% 0;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 6px 16px rgba(0,0,0,0.7);
  animation: nep-walls 18s ease-in-out infinite alternate;
}
.scn-night-excursion-proposed .pack-gear {
  position: absolute; bottom: 22%; left: 20%; width: 40px; height: 30px;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  transform: rotate(5deg);
  animation: nep-gear 10s ease-in-out infinite;
}
.scn-night-excursion-proposed .lantern-light {
  position: absolute; bottom: 35%; left: 45%; width: 12px; height: 18px;
  background: radial-gradient(circle at 50% 40%, #f0d080 0%, #c09040 60%, transparent 100%);
  border-radius: 20% 20% 50% 50% / 30% 30% 70% 70%;
  box-shadow: 0 0 30px 8px rgba(200,140,60,0.6), 0 0 60px 16px rgba(200,140,60,0.3);
  animation: nep-lantern 3s ease-in-out infinite alternate;
}
.scn-night-excursion-proposed .captain-standing {
  position: absolute; bottom: 18%; left: 55%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: nep-captain 6s ease-in-out infinite;
}
.scn-night-excursion-proposed .professor-sitting {
  position: absolute; bottom: 20%; left: 35%; width: 20px; 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: nep-prof 8s ease-in-out infinite alternate;
}
.scn-night-excursion-proposed .window-night {
  position: absolute; top: 18%; left: 60%; width: 50px; height: 40px;
  background: radial-gradient(ellipse at 40% 30%, #2a3a4a 0%, #0a1a2a 80%);
  border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.8), 0 0 8px rgba(100,150,200,0.2);
  animation: nep-window 12s ease-in-out infinite;
}
@keyframes nep-walls { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes nep-gear { 0% { transform: rotate(5deg) translateY(0); } 50% { transform: rotate(2deg) translateY(-2px); } 100% { transform: rotate(5deg) translateY(0); } }
@keyframes nep-lantern { 0% { opacity: 0.9; box-shadow: 0 0 20px 6px rgba(200,140,60,0.6), 0 0 40px 12px rgba(200,140,60,0.3); } 50% { opacity: 1; box-shadow: 0 0 40px 12px rgba(220,160,80,0.7), 0 0 80px 20px rgba(220,160,80,0.4); } 100% { opacity: 0.9; box-shadow: 0 0 20px 6px rgba(200,140,60,0.6), 0 0 40px 12px rgba(200,140,60,0.3); } }
@keyframes nep-captain { 0% { transform: rotate(-2deg) translateY(0); } 25% { transform: rotate(1deg) translateY(-2px); } 50% { transform: rotate(-1deg) translateY(0); } 75% { transform: rotate(2deg) translateY(-1px); } 100% { transform: rotate(-2deg) translateY(0); } }
@keyframes nep-prof { 0% { transform: rotate(3deg); } 50% { transform: rotate(-2deg); } 100% { transform: rotate(3deg); } }
@keyframes nep-window { 0% { opacity: 0.6; transform: scale(1); } 50% { opacity: 0.8; transform: scale(1.02); } 100% { opacity: 0.6; transform: scale(1); } }

.scn-warship-attack-realization {
  background:
    linear-gradient(180deg, #c8d8e8 0%, #8a9bb0 40%, #4a5a6a 100%),
    radial-gradient(ellipse at 30% 70%, #f2e8c0 0%, transparent 60%);
}
.scn-warship-attack-realization .wa1-wall { position:absolute; inset:0; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); opacity:0.85; }
.scn-warship-attack-realization .wa1-porthole { position:absolute; top:10%; left:15%; width:120px; height:120px; border-radius:50%; background: radial-gradient(circle, #b8c8d8 0%, #4a5a6a 70%); box-shadow: inset 0 0 30px #1a1a2a; border: 6px solid #8a7a5a; }
.scn-warship-attack-realization .wa1-glass { position:absolute; top:12%; left:17%; width:80px; height:80px; border-radius:50%; background: linear-gradient(135deg, rgba(200,220,240,0.3) 0%, rgba(100,130,160,0.1) 100%); box-shadow: 0 0 20px rgba(255,255,200,0.2); animation: wa1-glass-pulse 4s ease-in-out infinite alternate; }
.scn-warship-attack-realization .wa1-figure { position:absolute; bottom:20%; left:20%; width:40px; height:80px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: wa1-turn 6s ease-in-out infinite; }
.scn-warship-attack-realization .wa1-ship { position:absolute; top:15%; right:8%; width:100px; height:40px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 20% 20% 10% 10% / 60% 60% 10% 10%; transform: rotate(-10deg); animation: wa1-ship-move 12s ease-in-out infinite alternate; }
.scn-warship-attack-realization .wa1-sea { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #2a4a5a 0%, #1a2a3a 100%); border-radius: 60% 40% 0 0 / 40% 30% 0 0; animation: wa1-sea-swell 8s ease-in-out infinite; }
.scn-warship-attack-realization .wa1-sky { position:absolute; top:0; left:0; right:0; height:70%; background: linear-gradient(180deg, #b8c8d8 0%, #8a9bb0 60%, #4a5a6a 100%); opacity:0.4; }
@keyframes wa1-glass-pulse { 0% { box-shadow: 0 0 10px rgba(255,255,200,0.1); background-opacity:0.2; } 50% { box-shadow: 0 0 30px rgba(255,255,200,0.4); background-opacity:0.4; } 100% { box-shadow: 0 0 15px rgba(255,255,200,0.2); background-opacity:0.3; } }
@keyframes wa1-turn { 0% { transform: translateX(0) rotate(0deg); } 33% { transform: translateX(20px) rotate(2deg); } 66% { transform: translateX(-10px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes wa1-ship-move { 0% { transform: translateY(0) rotate(-10deg); } 50% { transform: translateY(-8px) rotate(-8deg); } 100% { transform: translateY(0) rotate(-12deg); } }
@keyframes wa1-sea-swell { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-5px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(1); } }

.scn-nemo-black-flag {
  background:
    linear-gradient(180deg, #d4c4a8 0%, #a89870 30%, #6a5a4a 60%, #2a2a1a 100%),
    radial-gradient(ellipse at 70% 20%, #f0d8a0 0%, transparent 60%);
}
.scn-nemo-black-flag .nbf-sky { position:absolute; top:0; left:0; right:0; height:60%; background: linear-gradient(180deg, #d4c4a8 0%, #b8a080 50%, #8a7a5a 100%); animation: nbf-sky-dusk 20s ease-in-out infinite alternate; }
.scn-nemo-black-flag .nbf-sea { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #2a4a3a 0%, #1a2a1a 100%); border-radius: 30% 70% 0 0 / 50% 50% 0 0; animation: nbf-sea-swell 10s ease-in-out infinite; }
.scn-nemo-black-flag .nbf-deck { position:absolute; bottom:20%; left:5%; right:5%; height:20%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 20% 20% 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,0.4); }
.scn-nemo-black-flag .nbf-flagpole { position:absolute; bottom:40%; left:50%; width:6px; height:80px; background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); transform: translateX(-50%); border-radius: 2px; animation: nbf-pole-sway 8s ease-in-out infinite alternate; }
.scn-nemo-black-flag .nbf-flag { position:absolute; bottom:60%; left:50%; width:50px; height:30px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 0 40% 40% 0; transform-origin: left center; animation: nbf-flag-wave 4s ease-in-out infinite alternate; }
.scn-nemo-black-flag .nbf-figure { position:absolute; bottom:18%; left:35%; width:30px; height:60px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: nbf-figure-stance 5s ease-in-out infinite; }
.scn-nemo-black-flag .nbf-smoke { position:absolute; top:10%; right:20%; width:80px; height:40px; background: radial-gradient(circle, rgba(200,180,120,0.3) 0%, transparent 70%); filter: blur(8px); animation: nbf-smoke-drift 30s linear infinite; }
@keyframes nbf-sky-dusk { 0% { opacity:0.9; } 50% { opacity:0.7; } 100% { opacity:0.85; } }
@keyframes nbf-sea-swell { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-6px) scaleY(1.03); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes nbf-pole-sway { 0% { transform: translateX(-50%) rotate(-1deg); } 50% { transform: translateX(-50%) rotate(0deg); } 100% { transform: translateX(-50%) rotate(1deg); } }
@keyframes nbf-flag-wave { 0% { transform: scaleX(1) rotate(0deg); } 50% { transform: scaleX(0.9) rotate(5deg); } 100% { transform: scaleX(1) rotate(-3deg); } }
@keyframes nbf-figure-stance { 0% { transform: translateX(0) rotate(0deg); } 33% { transform: translateX(5px) rotate(2deg); } 66% { transform: translateX(-5px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes nbf-smoke-drift { 0% { transform: translateX(0) translateY(0); } 50% { transform: translateX(-30px) translateY(-20px); } 100% { transform: translateX(0) translateY(0); } }

.scn-waiting-for-attack {
  background:
    linear-gradient(180deg, #c8b898 0%, #a89878 30%, #6a5a4a 60%, #3a2a1a 100%),
    radial-gradient(ellipse at 20% 80%, #f0d8a0 0%, transparent 50%);
}
.scn-waiting-for-attack .wfa-floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius: 20% 20% 0 0; }
.scn-waiting-for-attack .wfa-wall { position:absolute; top:0; left:0; right:0; height:70%; background: linear-gradient(180deg, #b8a080 0%, #8a7a5a 100%); opacity:0.8; }
.scn-waiting-for-attack .wfa-desk { position:absolute; bottom:30%; left:25%; 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.3); }
.scn-waiting-for-attack .wfa-figure { position:absolute; bottom:20%; left:30%; width:40px; height:70px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: wfa-fidget 6s ease-in-out infinite; }
.scn-waiting-for-attack .wfa-lamp { position:absolute; bottom:45%; left:40%; width:30px; height:50px; background: linear-gradient(180deg, #a09070 0%, #6a5a4a 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 0 30px 10px rgba(240,208,160,0.4); animation: wfa-lamp-glow 3s ease-in-out infinite alternate; }
.scn-waiting-for-attack .wfa-window { position:absolute; top:10%; right:10%; width:80px; height:60px; background: radial-gradient(ellipse, #c8d8e8 0%, #4a5a6a 70%); border: 4px solid #6a5a4a; border-radius: 6px; box-shadow: inset 0 0 20px #1a1a2a; animation: wfa-window-light 8s ease-in-out infinite alternate; }
.scn-waiting-for-attack .wfa-clock { position:absolute; top:15%; left:15%; width:30px; height:30px; border-radius:50%; background: radial-gradient(circle, #f0e8d0 0%, #8a7a5a 100%); border: 3px solid #5a4a3a; animation: wfa-tick 2s steps(1) infinite; }
@keyframes wfa-fidget { 0% { transform: translateX(0) rotate(0deg); } 20% { transform: translateX(3px) rotate(1deg); } 40% { transform: translateX(-3px) rotate(-1deg); } 60% { transform: translateX(5px) rotate(2deg); } 80% { transform: translateX(-5px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes wfa-lamp-glow { 0% { box-shadow: 0 0 20px 5px rgba(240,208,160,0.3); } 50% { box-shadow: 0 0 40px 15px rgba(240,208,160,0.6); } 100% { box-shadow: 0 0 20px 5px rgba(240,208,160,0.3); } }
@keyframes wfa-window-light { 0% { opacity:0.5; box-shadow: inset 0 0 10px #1a1a2a; } 50% { opacity:0.8; box-shadow: inset 0 0 30px #2a2a3a; } 100% { opacity:0.6; box-shadow: inset 0 0 15px #1a1a2a; } }
@keyframes wfa-tick { 0% { transform: rotate(0deg); } 50% { transform: rotate(180deg); } 100% { transform: rotate(360deg); } }

.scn-nemo-final-words {
  background:
    linear-gradient(180deg, #c8a870 0%, #8a6a4a 30%, #4a2a1a 60%, #1a0a0a 100%),
    radial-gradient(ellipse at 50% 30%, #f0c060 0%, transparent 70%);
}
.scn-nemo-final-words .nfw-sky { position:absolute; top:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #d4b080 0%, #a87850 50%, #6a4a2a 100%); opacity:0.6; animation: nfw-sky-fire 15s ease-in-out infinite alternate; }
.scn-nemo-final-words .nfw-fire { position:absolute; bottom:40%; left:0; right:0; height:60%; background: linear-gradient(180deg, #f0a040 0%, #c06020 40%, #8a3010 70%, #1a0a0a 100%); border-radius: 60% 40% 0 0 / 80% 60% 0 0; animation: nfw-fire-flicker 3s ease-in-out infinite; }
.scn-nemo-final-words .nfw-debris { position:absolute; top:10%; left:20%; width:100px; height:60px; background: radial-gradient(circle, #3a2a1a 0%, transparent 80%); filter: blur(6px); animation: nfw-debris-drift 25s linear infinite; }
.scn-nemo-final-words .nfw-figure { position:absolute; bottom:20%; left:50%; width:50px; height:100px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: translateX(-50%); animation: nfw-figure-tremble 4s ease-in-out infinite; }
.scn-nemo-final-words .nfw-hand { position:absolute; bottom:30%; left:55%; width:20px; height:30px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 40% 40% 20% 20%; transform-origin: bottom; animation: nfw-hand-raise 3s ease-in-out infinite alternate; }
.scn-nemo-final-words .nfw-shadow { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, transparent 0%, #1a0a0a 100%); }
@keyframes nfw-sky-fire { 0% { opacity:0.4; } 50% { opacity:0.7; } 100% { opacity:0.5; } }
@keyframes nfw-fire-flicker { 0% { transform: scaleY(1) translateY(0); } 25% { transform: scaleY(1.03) translateY(-2px); } 50% { transform: scaleY(0.97) translateY(2px); } 75% { transform: scaleY(1.02) translateY(-1px); } 100% { transform: scaleY(1) translateY(0); } }
@keyframes nfw-debris-drift { 0% { transform: translateX(0) translateY(0); } 50% { transform: translateX(-40px) translateY(-30px); } 100% { transform: translateX(0) translateY(0); } }
@keyframes nfw-figure-tremble { 0% { transform: translateX(-50%) rotate(0deg); } 25% { transform: translateX(-50%) rotate(1deg); } 50% { transform: translateX(-50%) rotate(-1deg); } 75% { transform: translateX(-50%) rotate(2deg); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes nfw-hand-raise { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(-10deg) translateY(-10px); } 100% { transform: rotate(0deg) translateY(0); } }

.scn-kangaroo-flush { background: linear-gradient(180deg, #4a7fb5 0%, #87ceeb 50%, #f0e68c 100%), radial-gradient(ellipse at 80% 20%, #ffd700 0%, transparent 60%); }
.scn-kangaroo-flush .sky { position:absolute; inset:0; background: linear-gradient(180deg, rgba(255,255,255,.3) 0%, transparent 100%); }
.scn-kangaroo-flush .sun { position:absolute; top:8%; right:15%; width:40px; height:40px; background: radial-gradient(circle, #fff8dc 0%, #ffd700 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 40px 20px #ffd700; animation: kf-sun 3s ease-in-out infinite alternate; }
.scn-kangaroo-flush .ground { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #8b7355 0%, #6b4226 100%); border-radius: 30% 40% 0 0 / 60% 50% 0 0; }
.scn-kangaroo-flush .kangaroo1 { position:absolute; bottom:30%; left:20%; width:28px; height:60px; background: linear-gradient(180deg, #4a3728 0%, #2a1e12 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: kf-hop 1.2s ease-in-out infinite; }
.scn-kangaroo-flush .kangaroo2 { position:absolute; bottom:28%; left:55%; width:24px; height:50px; background: linear-gradient(180deg, #5c4535 0%, #3c2a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: kf-hop 0.9s ease-in-out infinite 0.3s; }
.scn-kangaroo-flush .capsule1 { position:absolute; bottom:35%; left:10%; width:16px; height:30px; background: linear-gradient(90deg, #b0c4de, #e0e6f0); border-radius: 30% 30% 10% 10%; box-shadow: 0 0 10px #fff; transform: rotate(-15deg); animation: kf-chase 1.6s linear infinite; }
.scn-kangaroo-flush .capsule2 { position:absolute; bottom:33%; left:40%; width:14px; height:26px; background: linear-gradient(90deg, #b0c4de, #d0d8e8); border-radius: 30% 30% 10% 10%; box-shadow: 0 0 8px #fff; transform: rotate(-10deg); animation: kf-chase 1.8s linear infinite 0.4s; }
.scn-kangaroo-flush .dust1, .scn-kangaroo-flush .dust2 { position:absolute; bottom:20%; width:20px; height:10px; background: rgba(210,180,140,.5); border-radius: 50%; filter: blur(4px); animation: kf-dust 1.5s ease-out infinite; }
.scn-kangaroo-flush .dust1 { left:18%; }
.scn-kangaroo-flush .dust2 { left:53%; animation-delay: 0.6s; }
@keyframes kf-sun { 0% { transform: scale(1); opacity: .9; } 50% { transform: scale(1.1); opacity: 1; } 100% { transform: scale(.95); opacity: .85; } }
@keyframes kf-hop { 0% { transform: translateY(0) rotate(-2deg); } 30% { transform: translateY(-20px) rotate(3deg); } 50% { transform: translateY(-5px) rotate(-1deg); } 80% { transform: translateY(-15px) rotate(2deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes kf-chase { 0% { transform: translateX(0) rotate(-15deg); opacity: 1; } 30% { transform: translateX(60px) rotate(-5deg); opacity: .8; } 60% { transform: translateX(120px) rotate(-20deg); opacity: .9; } 100% { transform: translateX(180px) rotate(-10deg); opacity: 0; } }
@keyframes kf-dust { 0% { opacity: 1; transform: scale(0.5) translateY(0); } 50% { opacity: .6; transform: scale(1.2) translateY(-10px); } 100% { opacity: 0; transform: scale(2) translateY(-20px); } }

.scn-dozen-kangaroos { background: linear-gradient(180deg, #6ab0e0 0%, #a8d8ea 40%, #f5deb3 100%), radial-gradient(ellipse at 50% 100%, #f5deb3 0%, transparent 70%); }
.scn-dozen-kangaroos .sky { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #87ceeb 0%, transparent 100%); }
.scn-dozen-kangaroos .land { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #7ccd7c 0%, #228b22 100%); border-radius: 30% 60% 0 0 / 40% 50% 0 0; }
.scn-dozen-kangaroos .tree-hollow { position:absolute; bottom:25%; left:10%; width:30px; height:70px; background: linear-gradient(180deg, #8b4513 0%, #5c2e0a 100%); border-radius: 30% 30% 20% 20%; box-shadow: inset 0 0 15px #3a1e00; transform: rotate(-5deg); }
.scn-dozen-kangaroos .kanga-a, .scn-dozen-kangaroos .kanga-b, .scn-dozen-kangaroos .kanga-c, .scn-dozen-kangaroos .kanga-d { position:absolute; bottom:28%; width:18px; height:36px; background: linear-gradient(180deg, #b8860b 0%, #8b6508 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; }
.scn-dozen-kangaroos .kanga-a { left:20%; animation: dk-bounce 0.8s ease-in-out infinite; }
.scn-dozen-kangaroos .kanga-b { left:35%; animation: dk-bounce 0.9s ease-in-out infinite 0.15s; }
.scn-dozen-kangaroos .kanga-c { left:50%; animation: dk-bounce 1s ease-in-out infinite 0.3s; }
.scn-dozen-kangaroos .kanga-d { left:65%; animation: dk-bounce 0.7s ease-in-out infinite 0.45s; }
.scn-dozen-kangaroos .shadow-a, .scn-dozen-kangaroos .shadow-b { position:absolute; bottom:25%; width:20px; height:8px; background: rgba(0,0,0,.2); border-radius: 50%; filter: blur(2px); animation: dk-shadow 0.8s ease-in-out infinite; }
.scn-dozen-kangaroos .shadow-a { left:18%; }
.scn-dozen-kangaroos .shadow-b { left:33%; animation-delay: 0.15s; }
@keyframes dk-bounce { 0% { transform: translateY(0) scaleY(1) rotate(0); } 30% { transform: translateY(-18px) scaleY(1.2) rotate(5deg); } 50% { transform: translateY(-4px) scaleY(.95) rotate(-3deg); } 80% { transform: translateY(-10px) scaleY(1.1) rotate(4deg); } 100% { transform: translateY(0) scaleY(1) rotate(0); } }
@keyframes dk-shadow { 0%,100% { transform: scaleX(1); opacity: .5; } 30% { transform: scaleX(0.6); opacity: .3; } 50% { transform: scaleX(0.8); opacity: .4; } 80% { transform: scaleX(0.5); opacity: .25; } }

.scn-satisfied-hunters { background: linear-gradient(180deg, #1a1a3e 0%, #2c2244 30%, #5c4a3e 70%, #8b7355 100%), radial-gradient(ellipse at 50% 0%, #8b7355 0%, transparent 50%); }
.scn-satisfied-hunters .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #4a3a6e 0%, #8a7a5a 70%, transparent 100%); animation: sh-sky 12s ease-in-out infinite alternate; }
.scn-satisfied-hunters .land { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 20% 30% 0 0 / 50% 40% 0 0; }
.scn-satisfied-hunters .figure1, .scn-satisfied-hunters .figure2 { position:absolute; bottom:32%; width:16px; height:40px; background: linear-gradient(180deg, #2a2a2a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; }
.scn-satisfied-hunters .figure1 { left:35%; animation: sh-walk 4s ease-in-out infinite; }
.scn-satisfied-hunters .figure2 { left:50%; animation: sh-walk 4s ease-in-out infinite 2s; }
.scn-satisfied-hunters .cloud1, .scn-satisfied-hunters .cloud2 { position:absolute; top:15%; width:70px; height:16px; background: linear-gradient(180deg, rgba(220,200,180,.5) 0%, rgba(200,180,160,.1) 100%); border-radius: 50%; filter: blur(5px); }
.scn-satisfied-hunters .cloud1 { left:10%; animation: sh-drift 45s linear infinite; }
.scn-satisfied-hunters .cloud2 { left:55%; animation: sh-drift 60s linear infinite reverse; }
.scn-satisfied-hunters .campfire { position:absolute; bottom:30%; left:70%; width:20px; height:24px; background: radial-gradient(circle, #ffa500 0%, #ff4500 40%, transparent 70%); border-radius: 50%; box-shadow: 0 0 30px 15px #ff8c00, 0 0 60px 25px rgba(255,140,0,.3); animation: sh-fire 1.2s ease-in-out infinite alternate; }
@keyframes sh-sky { 0% { opacity:.7; } 50% { opacity:.9; } 100% { opacity:.6; } }
@keyframes sh-walk { 0% { transform: translateX(0) translateY(0) rotate(-1deg); } 25% { transform: translateX(10px) translateY(-1px) rotate(1deg); } 50% { transform: translateX(20px) translateY(0) rotate(-1deg); } 75% { transform: translateX(30px) translateY(-1px) rotate(1deg); } 100% { transform: translateX(40px) translateY(0) rotate(0); } }
@keyframes sh-drift { 0% { transform: translateX(0); } 100% { transform: translateX(120vw); } }
@keyframes sh-fire { 0% { transform: scale(1); opacity: .8; } 50% { transform: scale(1.15); opacity: 1; } 100% { transform: scale(.95); opacity: .7; } }

.scn-ned-cooks-dinner { background: radial-gradient(ellipse at 50% 70%, #5e1a1d 0%, #1a0a0a 60%, #0a0505 100%); }
.scn-ned-cooks-dinner .bg { position:absolute; inset:0; background: linear-gradient(180deg, #0a0505 0%, #1a0a0a 70%, #2a1515 100%); }
.scn-ned-cooks-dinner .glow { position:absolute; bottom:20%; left:30%; width:180px; height:180px; background: radial-gradient(circle, #ffa500 0%, #ff4500 30%, transparent 70%); border-radius: 50%; animation: nd-glow 2s ease-in-out infinite alternate; }
.scn-ned-cooks-dinner .flame { position:absolute; bottom:22%; left:42%; width:30px; height:50px; background: radial-gradient(ellipse at 50% 30%, #fff8dc 0%, #ffa500 40%, #ff4500 70%, transparent 100%); border-radius: 50% 50% 20% 20%; transform-origin: bottom center; animation: nd-flame 0.6s ease-in-out infinite alternate; }
.scn-ned-cooks-dinner .grill { position:absolute; bottom:18%; left:35%; width:60px; height:6px; background: linear-gradient(90deg, #4a2a1a, #2a1a0a); border-radius: 10%; box-shadow: 0 4px 10px rgba(0,0,0,.6); }
.scn-ned-cooks-dinner .meat { position:absolute; bottom:20%; left:37%; width:20px; height:8px; background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%); border-radius: 20% 20% 30% 30%; animation: nd-sizzle 0.8s ease-in-out infinite; }
.scn-ned-cooks-dinner .smoke1, .scn-ned-cooks-dinner .smoke2 { position:absolute; bottom:35%; width:16px; height:16px; background: rgba(200,180,160,.15); border-radius: 50%; filter: blur(6px); }
.scn-ned-cooks-dinner .smoke1 { left:42%; animation: nd-smoke 3s ease-out infinite; }
.scn-ned-cooks-dinner .smoke2 { left:48%; animation: nd-smoke 3.5s ease-out infinite 1.5s; }
.scn-ned-cooks-dinner .ned { position:absolute; bottom:15%; left:60%; width:24px; height:50px; background: linear-gradient(180deg, #2a2a2a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: nd-bend 2s ease-in-out infinite alternate; }
@keyframes nd-glow { 0% { transform: scale(1); opacity: .7; } 50% { transform: scale(1.05); opacity: .9; } 100% { transform: scale(.95); opacity: .6; } }
@keyframes nd-flame { 0% { transform: scaleY(1) rotate(-3deg); } 50% { transform: scaleY(1.2) rotate(2deg); } 100% { transform: scaleY(.9) rotate(-1deg); } }
@keyframes nd-sizzle { 0% { transform: translateY(0) rotate(0); } 25% { transform: translateY(-1px) rotate(2deg); } 50% { transform: translateY(0) rotate(-2deg); } 75% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes nd-smoke { 0% { opacity: .4; transform: translateY(0) scale(0.5); } 50% { opacity: .2; transform: translateY(-30px) scale(1.2); } 100% { opacity: 0; transform: translateY(-60px) scale(2); } }
@keyframes nd-bend { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(-4px) rotate(8deg); } 100% { transform: translateX(0) rotate(0); } }

.scn-dugong-confirmed {
  background: linear-gradient(180deg, #0277bd 0%, #01579b 30%, #003366 100%), radial-gradient(ellipse at 70% 30%, #4fc3f7 0%, transparent 60%);
}
.scn-dugong-confirmed .water-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, transparent 0%, rgba(0,50,80,0.6) 100%); animation: dc1-water 20s ease-in-out infinite alternate;
}
.scn-dugong-confirmed .light-rays {
  position: absolute; top: 0; left: 20%; width: 60%; height: 100%; background: linear-gradient(90deg, transparent 0%, rgba(255,235,200,0.15) 30%, transparent 60%); filter: blur(12px); animation: dc1-rays 12s ease-in-out infinite;
}
.scn-dugong-confirmed .seaweed-left {
  position: absolute; bottom: 15%; left: 8%; width: 12px; height: 40%; background: linear-gradient(180deg, #2e7d32 0%, #1b5e20 100%); border-radius: 50% 50% 20% 20%; transform-origin: bottom center; animation: dc1-seaweed 8s ease-in-out infinite alternate;
}
.scn-dugong-confirmed .seaweed-right {
  position: absolute; bottom: 12%; right: 10%; width: 10px; height: 35%; background: linear-gradient(180deg, #388e3c 0%, #1b5e20 100%); border-radius: 50% 50% 20% 20%; transform-origin: bottom center; animation: dc1-seaweed 10s ease-in-out infinite alternate-reverse;
}
.scn-dugong-confirmed .dugong-body {
  position: absolute; bottom: 25%; left: 35%; width: 40%; height: 20%; background: radial-gradient(ellipse at 40% 50%, #5d4037 0%, #3e2723 100%); border-radius: 50% 50% 40% 40% / 60% 50% 50% 40%; animation: dc1-drift 14s ease-in-out infinite;
}
.scn-dugong-confirmed .dugong-snout {
  position: absolute; bottom: 31%; left: 60%; width: 12%; height: 8%; background: #4e342e; border-radius: 60% 60% 30% 30%; transform: rotate(-10deg); animation: dc1-snout 14s ease-in-out infinite;
}
.scn-dugong-confirmed .bubble-cluster {
  position: absolute; bottom: 45%; left: 55%; width: 8px; height: 8px; background: radial-gradient(circle, rgba(255,255,255,0.6) 0%, transparent 80%); box-shadow: 0 -8px 0 2px rgba(255,255,255,0.3), -6px -14px 0 1px rgba(255,255,255,0.2); animation: dc1-bubbles 5s ease-in infinite;
}
.scn-dugong-confirmed .fish-swarm {
  position: absolute; top: 30%; right: 10%; width: 40px; height: 12px; background: transparent; box-shadow: 10px 20px 0 2px #bdbdbd, 22px 25px 0 1px #9e9e9e, 35px 22px 0 3px #bdbdbd; border-radius: 50%; filter: blur(1px); animation: dc1-swarm 25s linear infinite;
}
@keyframes dc1-water { 0% { opacity:0.7 } 100% { opacity:1 } }
@keyframes dc1-rays { 0% { transform: translateX(-10px) } 50% { transform: translateX(10px) } 100% { transform: translateX(-5px) } }
@keyframes dc1-seaweed { 0% { transform: rotate(-5deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(-3deg) } }
@keyframes dc1-drift { 0% { transform: translateX(0) rotate(0) } 33% { transform: translateX(-8px) rotate(1deg) } 66% { transform: translateX(5px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes dc1-snout { 0% { transform: rotate(-10deg) } 50% { transform: rotate(-7deg) } 100% { transform: rotate(-12deg) } }
@keyframes dc1-bubbles { 0% { transform: translateY(0) scale(1); opacity:1 } 50% { transform: translateY(-20px) scale(1.2); opacity:0.6 } 100% { transform: translateY(-40px) scale(0.8); opacity:0 } }
@keyframes dc1-swarm { 0% { transform: translateX(0) } 100% { transform: translateX(-80vw) } }

.scn-nemo-encourages-hunt {
  background: linear-gradient(180deg, #64b5f6 0%, #42a5f5 40%, #1e88e5 70%, #1565c0 100%), radial-gradient(ellipse at 50% 80%, #90caf9 0%, transparent 50%);
}
.scn-nemo-encourages-hunt .deck-sky {
  position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #bbdefb 0%, #e3f2fd 50%, transparent 100%); animation: neh-sky 30s ease-in-out infinite alternate;
}
.scn-nemo-encourages-hunt .deck-sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%; background: linear-gradient(180deg, #0d47a1 0%, #1a237e 100%); border-radius: 60% 60% 0 0 / 40% 40% 0 0; animation: neh-sea 18s ease-in-out infinite alternate;
}
.scn-nemo-encourages-hunt .railing {
  position: absolute; bottom: 38%; left: 20%; right: 20%; height: 6px; background: #37474f; box-shadow: 0 -18px 0 #455a64, 0 -36px 0 #37474f; border-radius: 2px; animation: neh-rail 6s ease-in-out infinite;
}
.scn-nemo-encourages-hunt .nemo-figure {
  position: absolute; bottom: 28%; left: 30%; width: 20px; height: 50px; background: linear-gradient(180deg, #1a237e 0%, #0d47a1 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: neh-figure 8s ease-in-out infinite;
}
.scn-nemo-encourages-hunt .land-figure {
  position: absolute; bottom: 28%; left: 55%; width: 22px; height: 52px; background: linear-gradient(180deg, #4e342e 0%, #3e2723 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: neh-figure 9s ease-in-out infinite -3s;
}
.scn-nemo-encourages-hunt .harpoon {
  position: absolute; bottom: 35%; left: 48%; width: 4px; height: 40px; background: #5d4037; transform: rotate(20deg); transform-origin: bottom left; box-shadow: -2px 0 0 #8d6e63; animation: neh-harpoon 4s ease-in-out infinite;
}
.scn-nemo-encourages-hunt .horizon-cloud {
  position: absolute; top: 12%; right: 15%; width: 120px; height: 20px; background: linear-gradient(180deg, rgba(255,255,255,0.5) 0%, rgba(255,255,255,0.1) 100%); border-radius: 40%; filter: blur(8px); animation: neh-cloud 60s linear infinite;
}
@keyframes neh-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes neh-sea { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(2px) } }
@keyframes neh-rail { 0% { transform: scaleY(1) } 50% { transform: scaleY(0.8) } 100% { transform: scaleY(1) } }
@keyframes neh-figure { 0% { transform: translateY(0) rotate(-1deg) } 25% { transform: translateY(-2px) rotate(0) } 50% { transform: translateY(0) rotate(1deg) } 75% { transform: translateY(-1px) rotate(0) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes neh-harpoon { 0% { transform: rotate(20deg) } 50% { transform: rotate(15deg) } 100% { transform: rotate(20deg) } }
@keyframes neh-cloud { 0% { transform: translateX(0) } 100% { transform: translateX(-50vw) } }

.scn-dugong-danger {
  background: linear-gradient(180deg, #0d47a1 0%, #0a3273 40%, #04224d 100%), radial-gradient(ellipse at 30% 40%, #1e88e5 0%, transparent 60%);
}
.scn-dugong-danger .deep-water {
  position: absolute; inset: 0; background: linear-gradient(90deg, rgba(13,71,161,0.4) 0%, transparent 30%, rgba(13,71,161,0.2) 100%); animation: dd1-deep 15s ease-in-out infinite alternate;
}
.scn-dugong-danger .light-beam {
  position: absolute; top: 5%; left: 25%; width: 40%; height: 70%; background: linear-gradient(180deg, rgba(255,235,200,0.2) 0%, transparent 80%); filter: blur(15px); animation: dd1-beam 12s ease-in-out infinite;
}
.scn-dugong-danger .dugong-tail {
  position: absolute; bottom: 20%; left: 60%; width: 30%; height: 25%; background: radial-gradient(ellipse at 70% 50%, #5d4037 0%, #3e2723 100%); border-radius: 0 0 50% 50% / 0 0 80% 80%; animation: dd1-tail 10s ease-in-out infinite;
}
.scn-dugong-danger .dugong-head {
  position: absolute; bottom: 32%; left: 25%; width: 20%; height: 18%; background: radial-gradient(ellipse at 40% 40%, #6d4c41 0%, #4e342e 100%); border-radius: 50% 40% 30% 30% / 60% 50% 40% 40%; animation: dd1-head 10s ease-in-out infinite -2s;
}
.scn-dugong-danger .shadow-under {
  position: absolute; bottom: 8%; left: 20%; width: 60%; height: 12%; background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 100%); filter: blur(10px); animation: dd1-shadow 14s ease-in-out infinite;
}
.scn-dugong-danger .bubble-stream {
  position: absolute; bottom: 40%; left: 35%; width: 6px; height: 6px; background: rgba(255,255,255,0.3); border-radius: 50%; box-shadow: 18px 20px 0 1px rgba(255,255,255,0.2), -10px 30px 0 2px rgba(255,255,255,0.15); animation: dd1-bubbles 8s ease-in infinite;
}
.scn-dugong-danger .sand-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 12%; background: linear-gradient(180deg, #8d6e63 0%, #5d4037 100%); border-radius: 30% 70% 0 0 / 50% 50% 0 0; box-shadow: inset 0 6px 10px rgba(0,0,0,0.4); animation: dd1-sand 20s ease-in-out infinite alternate;
}
@keyframes dd1-deep { 0% { opacity:0.6 } 100% { opacity:1 } }
@keyframes dd1-beam { 0% { transform: scaleX(0.8) } 50% { transform: scaleX(1.1) } 100% { transform: scaleX(0.9) } }
@keyframes dd1-tail { 0% { transform: rotate(-5deg) } 50% { transform: rotate(8deg) } 100% { transform: rotate(-3deg) } }
@keyframes dd1-head { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-3px) rotate(2deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes dd1-shadow { 0% { transform: scaleX(1) } 50% { transform: scaleX(0.9) } 100% { transform: scaleX(1.1) } }
@keyframes dd1-bubbles { 0% { transform: translateY(0) scale(1); opacity:0.5 } 50% { transform: translateY(-25px) scale(1.3); opacity:0.2 } 100% { transform: translateY(-50px) scale(0.7); opacity:0 } }
@keyframes dd1-sand { 0% { transform: translateY(0) } 50% { transform: translateY(2px) } 100% { transform: translateY(-1px) } }

.scn-ned-chooses-meat {
  background: linear-gradient(180deg, #fdd835 0%, #ffee58 20%, #fff9c4 40%, #81d4fa 70%, #4fc3f7 100%), radial-gradient(ellipse at 50% 30%, #fff9c4 0%, transparent 50%);
}
.scn-ned-chooses-meat .sunny-sky {
  position: absolute; inset: 0 0 50% 0; background: linear-gradient(180deg, #fff9c4 0%, #e3f2fd 100%); animation: ncm-sky 25s ease-in-out infinite alternate;
}
.scn-ned-chooses-meat .sea-surface {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%; background: linear-gradient(180deg, #4fc3f7 0%, #0288d1 100%); border-radius: 40% 40% 0 0 / 30% 30% 0 0; animation: ncm-sea 14s ease-in-out infinite;
}
.scn-ned-chooses-meat .boat-hull {
  position: absolute; bottom: 30%; left: 30%; width: 40%; height: 18%; background: linear-gradient(180deg, #8d6e63 0%, #5d4037 100%); border-radius: 20% 20% 10% 10%; transform: rotate(3deg); animation: ncm-boat 6s ease-in-out infinite;
}
.scn-ned-chooses-meat .land-char {
  position: absolute; bottom: 38%; left: 35%; width: 22px; height: 48px; background: linear-gradient(180deg, #4e342e 0%, #3e2723 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: ncm-land 3s ease-in-out infinite;
}
.scn-ned-chooses-meat .crewman-1 {
  position: absolute; bottom: 35%; left: 50%; width: 18px; height: 42px; background: linear-gradient(180deg, #1565c0 0%, #0d47a1 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: ncm-crew 4s ease-in-out infinite -1s;
}
.scn-ned-chooses-meat .crewman-2 {
  position: absolute; bottom: 35%; left: 57%; width: 18px; height: 42px; background: linear-gradient(180deg, #1565c0 0%, #0d47a1 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: ncm-crew 3.5s ease-in-out infinite -2s;
}
.scn-ned-chooses-meat .dugong-surprise {
  position: absolute; bottom: 20%; left: 15%; width: 35%; height: 25%; background: radial-gradient(ellipse at 40% 50%, #6d4c41 0%, #4e342e 100%); border-radius: 50% 50% 40% 40% / 60% 40% 40% 50%; animation: ncm-dugong 5s ease-in-out infinite;
}
.scn-ned-chooses-meat .harpoon-ready {
  position: absolute; bottom: 42%; left: 42%; width: 3px; height: 30px; background: #5d4037; transform: rotate(40deg); transform-origin: bottom; animation: ncm-harpoon 0.8s ease-in-out infinite alternate;
}
.scn-ned-chooses-meat .splash-effect {
  position: absolute; bottom: 18%; left: 18%; width: 20px; height: 10px; background: radial-gradient(ellipse, rgba(255,255,255,0.6) 0%, transparent 100%); border-radius: 50%; animation: ncm-splash 2s ease-out infinite;
}
@keyframes ncm-sky { 0% { opacity:0.8 } 100% { opacity:1 } }
@keyframes ncm-sea { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(2px) } }
@keyframes ncm-boat { 0% { transform: rotate(3deg) } 50% { transform: rotate(-2deg) } 100% { transform: rotate(3deg) } }
@keyframes ncm-land { 0% { transform: translateY(0) rotate(-2deg) } 30% { transform: translateY(-3px) rotate(2deg) } 60% { transform: translateY(-1px) rotate(-1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes ncm-crew { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes ncm-dugong { 0% { transform: translateX(0) scale(1) } 25% { transform: translateX(-5px) scale(1.05) } 75% { transform: translateX(5px) scale(0.95) } 100% { transform: translateX(0) scale(1) } }
@keyframes ncm-harpoon { 0% { transform: rotate(40deg) } 100% { transform: rotate(35deg) } }
@keyframes ncm-splash { 0% { transform: scale(0.2); opacity:0.8 } 100% { transform: scale(1.5); opacity:0 } }

.scn-nautical-towns-vision {
  background: linear-gradient(180deg, #0d2b45 0%, #2a5a7a 40%, #4985a5 70%, #6db5d0 100%), radial-gradient(ellipse at 70% 20%, rgba(255,215,0,0.15) 0%, transparent 60%);
}
.scn-nautical-towns-vision .ocean-bg { position:absolute; inset:0; background: radial-gradient(ellipse at 30% 80%, #1a4a6a 0%, transparent 70%); }
.scn-nautical-towns-vision .sunrays { position:absolute; top:0; left:20%; width:30%; height:100%; background: linear-gradient(180deg, rgba(255,220,100,0.2) 0%, transparent 50%, transparent 100%); clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%); animation: ntv-rays 8s ease-in-out infinite alternate; }
.scn-nautical-towns-vision .house1 { position:absolute; bottom:40%; left:15%; width:60px; height:50px; background: linear-gradient(180deg, #b8a27a 0%, #7a6a4a 100%); border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%; box-shadow: 0 0 20px rgba(200,180,140,0.3); animation: ntv-float 6s ease-in-out infinite; }
.scn-nautical-towns-vision .house2 { position:absolute; bottom:50%; left:45%; width:50px; height:40px; background: linear-gradient(180deg, #a8a280 0%, #6a6a4a 100%); border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%; box-shadow: 0 0 15px rgba(180,170,130,0.3); animation: ntv-float 8s ease-in-out infinite 2s; }
.scn-nautical-towns-vision .house3 { position:absolute; bottom:35%; left:70%; width:70px; height:55px; background: linear-gradient(180deg, #c0b090 0%, #8a7a60 100%); border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%; box-shadow: 0 0 25px rgba(210,190,150,0.3); animation: ntv-float 7s ease-in-out infinite 1s; }
.scn-nautical-towns-vision .bubbles { position:absolute; bottom:20%; left:0; right:0; height:40%; background: radial-gradient(circle at 20% 70%, rgba(255,255,255,0.3) 2px, transparent 3px) repeat 0 0 / 40px 40px; animation: ntv-bubbles 12s linear infinite; }
.scn-nautical-towns-vision .submarine { position:absolute; bottom:20%; left:30%; width:80px; height:25px; background: linear-gradient(180deg, #4a6a7a 0%, #2a4a5a 100%); border-radius: 40% 40% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 4px 8px rgba(0,0,0,0.4); }
.scn-nautical-towns-vision .submarine::before { content:''; position:absolute; top:-10px; left:30px; width:15px; height:10px; background: #3a5a6a; border-radius: 50% 50% 0 0; } /* conning tower */
@keyframes ntv-rays { 0% { opacity:0.5; transform: scaleY(0.95); } 50% { opacity:0.8; transform: scaleY(1.05); } 100% { opacity:0.6; transform: scaleY(1); } }
@keyframes ntv-float { 0% { transform: translateY(0px) rotate(0deg); } 50% { transform: translateY(-6px) rotate(0.5deg); } 100% { transform: translateY(0px) rotate(0deg); } }
@keyframes ntv-bubbles { 0% { background-position-y: 0; opacity:0.7; } 50% { opacity:1; } 100% { background-position-y: 80px; opacity:0.6; } }

.scn-nemo-vehement-gesture {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 50%, #3a3a4e 100%), radial-gradient(ellipse at 60% 30%, #ffd700 0%, transparent 40%);
}
.scn-nemo-vehement-gesture .cabin-wall { position:absolute; inset:0; background: linear-gradient(90deg, #1e1e30 0%, #2a2a3e 30%, #3a3a4e 70%, #1e1e30 100%); }
.scn-nemo-vehement-gesture .porthole { position:absolute; top:20%; right:10%; width:60px; height:60px; background: radial-gradient(circle, #ffd700 0%, #806020 60%, #1a1a2e 80%); border-radius:50%; box-shadow: 0 0 30px rgba(255,215,0,0.3); animation: nvg-breathe 4s ease-in-out infinite alternate; }
.scn-nemo-vehement-gesture .light-beam { position:absolute; top:10%; right:5%; width:30%; height:80%; background: linear-gradient(135deg, rgba(255,200,50,0.15) 0%, transparent 70%); clip-path: polygon(0% 0%, 100% 0%, 70% 100%, 30% 100%); animation: nvg-sweep 6s ease-in-out infinite; }
.scn-nemo-vehement-gesture .figure-shadow { position:absolute; bottom:15%; left:25%; width:50px; height:120px; background: radial-gradient(ellipse 30px 80px at 50% 50%, #0a0a14 0%, transparent 100%); filter: blur(4px); transform: rotate(-5deg); animation: nvg-gesture 3s ease-in-out infinite; }
.scn-nemo-vehement-gesture .console { position:absolute; bottom:0; left:10%; right:10%; height:15%; background: linear-gradient(180deg, #2a2a3c 0%, #1a1a2a 100%); border-radius: 10% 10% 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,0.6); }
.scn-nemo-vehement-gesture .dial-glow { position:absolute; bottom:8%; left:30%; width:20px; height:20px; background: radial-gradient(circle, #ff6600 0%, #803300 60%, transparent 80%); border-radius:50%; box-shadow: 0 0 20px rgba(255,102,0,0.4); animation: nvg-pulse 2s ease-in-out infinite alternate; }
@keyframes nvg-breathe { 0% { transform: scale(0.95); box-shadow: 0 0 20px rgba(255,215,0,0.2); } 50% { transform: scale(1.05); box-shadow: 0 0 40px rgba(255,215,0,0.5); } 100% { transform: scale(1); box-shadow: 0 0 30px rgba(255,215,0,0.35); } }
@keyframes nvg-sweep { 0%,100% { opacity:0.6; transform: rotate(-2deg); } 50% { opacity:1; transform: rotate(2deg); } }
@keyframes nvg-gesture { 0% { transform: translateX(0) rotate(-5deg) scaleX(1); } 50% { transform: translateX(15px) rotate(5deg) scaleX(1.1); } 100% { transform: translateX(0) rotate(-5deg) scaleX(1); } }
@keyframes nvg-pulse { 0% { opacity:0.6; } 50% { opacity:1; } 100% { opacity:0.8; } }

.scn-aronnax-recites-soundings {
  background: linear-gradient(180deg, #87c0d0 0%, #b5d8e8 30%, #d4e8f0 60%, #f5f8f0 100%), radial-gradient(ellipse at 50% 0%, #ffffff 0%, transparent 70%);
}
.scn-aronnax-recites-soundings .sky-gradient { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #9bc8dc 0%, #c2dce8 50%, transparent 100%); }
.scn-aronnax-recites-soundings .sea-gradient { position:absolute; top:55%; left:0; right:0; bottom:0; background: linear-gradient(180deg, #5a9aaa 0%, #3a7a8a 40%, #2a5a6a 100%); }
.scn-aronnax-recites-soundings .sun-glint { position:absolute; top:50%; left:40%; width:60px; height:40px; background: radial-gradient(ellipse, #fff8e0 0%, rgba(255,248,224,0.3) 60%, transparent 100%); filter: blur(6px); animation: ars-glint 5s ease-in-out infinite alternate; }
.scn-aronnax-recites-soundings .cloud-a { position:absolute; top:10%; left:10%; width:120px; height:30px; background: radial-gradient(ellipse, rgba(255,255,255,0.6) 0%, transparent 80%); filter: blur(10px); animation: ars-drift 40s linear infinite; }
.scn-aronnax-recites-soundings .cloud-b { position:absolute; top:20%; right:5%; width:90px; height:25px; background: radial-gradient(ellipse, rgba(255,255,255,0.4) 0%, transparent 80%); filter: blur(8px); animation: ars-drift 50s linear infinite reverse; }
.scn-aronnax-recites-soundings .wave1 { position:absolute; top:52%; left:0; right:0; height:20px; background: linear-gradient(180deg, transparent 0%, #6baaba 40%, transparent 100%); clip-path: polygon(0% 100%, 10% 80%, 20% 100%, 30% 85%, 40% 100%, 50% 80%, 60% 100%, 70% 85%, 80% 100%, 90% 80%, 100% 100%); animation: ars-wave1 6s ease-in-out infinite; }
.scn-aronnax-recites-soundings .wave2 { position:absolute; top:58%; left:0; right:0; height:15px; background: linear-gradient(180deg, transparent 0%, #4a8a9a 30%, transparent 100%); clip-path: polygon(0% 100%, 15% 90%, 30% 100%, 45% 85%, 60% 100%, 75% 90%, 90% 100%, 100% 90%); animation: ars-wave2 8s ease-in-out infinite 2s; }
.scn-aronnax-recites-soundings .distant-ship { position:absolute; top:40%; left:65%; width:40px; height:15px; background: linear-gradient(90deg, #5a5a5a 0%, #8a8a8a 100%); border-radius: 20% 20% 50% 50%; filter: blur(2px); animation: ars-ship 10s ease-in-out infinite; }
@keyframes ars-glint { 0% { opacity:0.4; transform: scale(0.9) rotate(-3deg); } 50% { opacity:0.9; transform: scale(1.1) rotate(3deg); } 100% { opacity:0.6; transform: scale(1) rotate(0deg); } }
@keyframes ars-drift { 0% { transform: translateX(0); } 50% { transform: translateX(200px); } 100% { transform: translateX(400px); } }
@keyframes ars-wave1 { 0% { transform: translateX(0) translateY(0); } 50% { transform: translateX(10px) translateY(-2px); } 100% { transform: translateX(0) translateY(0); } }
@keyframes ars-wave2 { 0% { transform: translateX(0) translateY(0); } 50% { transform: translateX(-15px) translateY(1px); } 100% { transform: translateX(0) translateY(0); } }
@keyframes ars-ship { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(1deg); } }

.scn-nemo-counters-depth {
  background: linear-gradient(180deg, #1a2a3a 0%, #2a3a4a 40%, #3a4a5a 70%, #4a5a6a 100%), radial-gradient(ellipse at 50% 10%, #ffdd88 0%, transparent 50%);
}
.scn-nemo-counters-depth .shaft-bg { position:absolute; inset:0; background: linear-gradient(90deg, #222a3a 0%, #3a4a5a 30%, #4a5a6a 50%, #3a4a5a 70%, #222a3a 100%); }
.scn-nemo-counters-depth .ladder-structure { position:absolute; left:45%; right:45%; top:0; bottom:0; background: repeating-linear-gradient(0deg, #5a5a5a 0px, #5a5a5a 2px, transparent 2px, transparent 20px); width:10%; margin:0 auto; opacity:0.6; animation: ncd-ladder 8s linear infinite; }
.scn-nemo-counters-depth .hatch-top { position:absolute; top:0; left:35%; right:35%; height:15px; background: radial-gradient(ellipse, #888888 0%, #444444 100%); border-radius: 50% 50% 0 0; box-shadow: 0 4px 12px rgba(255,255,200,0.3); }
.scn-nemo-counters-depth .hatch-bottom { position:absolute; bottom:10%; left:35%; right:35%; height:15px; background: radial-gradient(ellipse, #666666 0%, #222222 100%); border-radius: 0 0 50% 50%; box-shadow: 0 -4px 12px rgba(0,0,0,0.5); }
.scn-nemo-counters-depth .figure-descending { position:absolute; top:15%; left:50%; width:30px; height:60px; transform: translateX(-50%); background: linear-gradient(180deg, #1a1a2a 0%, #3a3a4a 50%, #5a5a6a 100%); border-radius: 40% 40% 30% 30% / 70% 70% 30% 30%; animation: ncd-descend 6s ease-in-out infinite; }
.scn-nemo-counters-depth .light-cone { position:absolute; top:0; left:30%; width:40%; height:100%; background: linear-gradient(180deg, rgba(255,220,120,0.15) 0%, transparent 70%); clip-path: polygon(20% 0%, 80% 0%, 60% 100%, 40% 100%); animation: ncd-light 5s ease-in-out infinite alternate; }
@keyframes ncd-ladder { 0% { background-position-y: 0; } 100% { background-position-y: 40px; } }
@keyframes ncd-descend { 0% { transform: translateX(-50%) translateY(0) rotate(0deg); opacity:0.8; } 50% { transform: translateX(-50%) translateY(30px) rotate(2deg); opacity:1; } 100% { transform: translateX(-50%) translateY(60px) rotate(0deg); opacity:0.6; } }
@keyframes ncd-light { 0% { opacity:0.4; filter: blur(2px); } 50% { opacity:0.8; filter: blur(4px); } 100% { opacity:0.6; filter: blur(1px); } }

.scn-back-on-board {
  background: linear-gradient(180deg, #3a2a1a 0%, #5a4a3a 50%, #2a1a0a 100%), radial-gradient(circle at 70% 50%, #c8a060 0%, transparent 60%);
}
.scn-back-on-board .cabin-wall { position:absolute; inset:0; background: linear-gradient(135deg, #4a3a2a 0%, #2a1a0a 100%); }
.scn-back-on-board .porthole { position:absolute; top:15%; left:60%; width:90px; height:90px; border-radius:50%; background: radial-gradient(circle, #1a3a5a 0%, #0a1a2a 70%); border:6px solid #6a5a4a; box-shadow: inset 0 0 20px rgba(0,0,0,0.6), 0 4px 8px rgba(0,0,0,0.4); animation: bb-porthole 12s ease-in-out infinite alternate; }
.scn-back-on-board .porthole-glass { position:absolute; top:18%; left:63%; width:70px; height:70px; border-radius:50%; background: radial-gradient(circle, rgba(80,140,200,0.3) 0%, transparent 70%); filter: blur(3px); animation: bb-glass 8s ease-in-out infinite alternate; }
.scn-back-on-board .desk { position:absolute; bottom:25%; left:15%; width:200px; height:20px; background: linear-gradient(180deg, #5a3a1a 0%, #3a2210 100%); border-radius:4px; box-shadow: 0 6px 10px rgba(0,0,0,0.5); }
.scn-back-on-board .lamp { position:absolute; bottom:40%; left:30%; width:14px; height:40px; background: linear-gradient(180deg, #a08040 0%, #6a5020 100%); border-radius: 4px 4px 20% 20%; transform: rotate(-10deg); }
.scn-back-on-board .lamp::after { content:''; position:absolute; top:-8px; left:-6px; width:26px; height:20px; border-radius:50%; background: radial-gradient(circle, #ffd080 0%, #c8a060 60%, transparent 100%); box-shadow: 0 0 40px 20px #e0b060; animation: bb-lamp 4s ease-in-out infinite alternate; }
.scn-back-on-board .figure { position:absolute; bottom:22%; left:35%; width:40px; height:60px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a05 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bb-figure 6s ease-in-out infinite; }
.scn-back-on-board .book { position:absolute; bottom:25%; left:30%; width:50px; height:8px; background: linear-gradient(180deg, #8a7050 0%, #5a3a20 100%); border-radius:2px; transform: rotate(-5deg); }
@keyframes bb-porthole { 0% { box-shadow: inset 0 0 20px rgba(0,0,0,0.6), 0 4px 8px rgba(0,0,0,0.4); } 50% { box-shadow: inset 0 0 30px rgba(0,0,0,0.7), 0 6px 12px rgba(0,0,0,0.5); } 100% { box-shadow: inset 0 0 15px rgba(0,0,0,0.5), 0 2px 6px rgba(0,0,0,0.3); } }
@keyframes bb-glass { 0% { opacity:0.3; } 50% { opacity:0.6; } 100% { opacity:0.2; } }
@keyframes bb-lamp { 0% { opacity:0.7; box-shadow: 0 0 30px 15px #e0b060; } 50% { opacity:1; box-shadow: 0 0 50px 25px #f0c080; } 100% { opacity:0.8; box-shadow: 0 0 35px 18px #e0b060; } }
@keyframes bb-figure { 0% { transform: translateX(0) translateY(0) rotate(-1deg); } 50% { transform: translateX(-2px) translateY(-2px) rotate(1deg); } 100% { transform: translateX(0) translateY(0) rotate(-1deg); } }

.scn-ceylon-disappears {
  background: linear-gradient(180deg, #4a7a9a 0%, #6a9aba 40%, #8abada 60%, #a0d0e0 100%), radial-gradient(ellipse at 50% 0%, #f0e8c0 0%, transparent 70%);
}
.scn-ceylon-disappears .sky { position:absolute; top:0; left:0; right:0; height:60%; background: linear-gradient(180deg, #6a9aba 0%, #a0c8d8 100%); }
.scn-ceylon-disappears .sea { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #2a5a7a 0%, #1a3a5a 100%); }
.scn-ceylon-disappears .sun { position:absolute; top:25%; left:70%; width:60px; height:60px; border-radius:50%; background: radial-gradient(circle, #ffe8a0 0%, #f0c040 60%, transparent 100%); animation: cd-sun 15s ease-in-out infinite alternate; }
.scn-ceylon-disappears .island { position:absolute; bottom:40%; left:15%; width:120px; height:40px; background: linear-gradient(180deg, #6a8a6a 0%, #4a6a4a 100%); border-radius: 30% 30% 0 0; animation: cd-island 20s ease-in-out infinite; }
.scn-ceylon-disappears .submarine { position:absolute; bottom:20%; left:40%; width:120px; height:30px; background: linear-gradient(180deg, #3a4a5a 0%, #1a2a3a 100%); border-radius: 40% 40% 20% 20%; box-shadow: 0 4px 8px rgba(0,0,0,0.3); animation: cd-sub 8s ease-in-out infinite; }
.scn-ceylon-disappears .wake { position:absolute; bottom:22%; left:40%; width:140px; height:8px; background: linear-gradient(90deg, transparent 0%, rgba(255,255,255,0.3) 50%, transparent 100%); filter: blur(2px); animation: cd-wake 4s ease-in-out infinite alternate; }
.scn-ceylon-disappears .cloud { position:absolute; height:20px; background: rgba(255,255,255,0.5); border-radius:50%; filter: blur(4px); }
.scn-ceylon-disappears .cloud-a { top:12%; left:10%; width:80px; animation: cd-drift-a 40s linear infinite; }
.scn-ceylon-disappears .cloud-b { top:18%; left:50%; width:60px; animation: cd-drift-b 50s linear infinite; }
@keyframes cd-sun { 0% { transform: translateY(0) scale(1); opacity:0.9; } 50% { transform: translateY(-8px) scale(1.05); opacity:1; } 100% { transform: translateY(5px) scale(0.95); opacity:0.85; } }
@keyframes cd-island { 0% { transform: translateY(0) scale(1); opacity:1; } 50% { transform: translateY(5px) scale(0.9); opacity:0.7; } 100% { transform: translateY(15px) scale(0.7); opacity:0.2; } }
@keyframes cd-sub { 0% { transform: translateX(0) translateY(0); } 50% { transform: translateX(3px) translateY(-2px); } 100% { transform: translateX(-2px) translateY(1px); } }
@keyframes cd-wake { 0% { transform: scaleX(0.8); opacity:0.3; } 50% { transform: scaleX(1.2); opacity:0.6; } 100% { transform: scaleX(0.9); opacity:0.4; } }
@keyframes cd-drift-a { 0% { transform: translateX(-50px); } 100% { transform: translateX(120vw); } }
@keyframes cd-drift-b { 0% { transform: translateX(-30px); } 100% { transform: translateX(120vw); } }

.scn-gulf-of-oman {
  background: linear-gradient(180deg, #3a6a8a 0%, #6a9aba 40%, #9acada 100%), radial-gradient(ellipse at 50% 10%, #fff8e0 0%, transparent 70%);
}
.scn-gulf-of-oman .horizon { position:absolute; top:50%; left:0; right:0; height:2px; background: linear-gradient(90deg, transparent 0%, #a0c8d8 50%, transparent 100%); }
.scn-gulf-of-oman .sea-back { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #2a5a7a 0%, #1a3a5a 100%); }
.scn-gulf-of-oman .sea-fore { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #1a4a6a 0%, #0a2a4a 100%); animation: go-sea 10s ease-in-out infinite alternate; }
.scn-gulf-of-oman .periscope { position:absolute; top:40%; left:45%; width:8px; height:60px; background: linear-gradient(180deg, #4a5a6a 0%, #2a3a4a 100%); border-radius: 20% 20% 0 0; transform: rotate(-5deg); animation: go-periscope 8s ease-in-out infinite; }
.scn-gulf-of-oman .conning-tower { position:absolute; top:45%; left:40%; width:60px; height:30px; background: linear-gradient(180deg, #3a4a5a 0%, #1a2a3a 100%); border-radius: 30% 30% 0 0; box-shadow: 0 2px 6px rgba(0,0,0,0.4); animation: go-tower 6s ease-in-out infinite; }
.scn-gulf-of-oman .spray { position:absolute; top:48%; left:38%; width:80px; height:12px; background: radial-gradient(ellipse, rgba(255,255,255,0.4) 0%, transparent 100%); filter: blur(3px); animation: go-spray 3s ease-in-out infinite alternate; }
.scn-gulf-of-oman .seabird { position:absolute; top:20%; left:10%; width:16px; height:8px; background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%); border-radius: 50% 50% 0 0; transform: rotate(-20deg); animation: go-bird 12s ease-in-out infinite; }
@keyframes go-sea { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(2px); } }
@keyframes go-periscope { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(5deg) translateY(-4px); } 100% { transform: rotate(-3deg) translateY(0); } }
@keyframes go-tower { 0% { transform: translateX(0) scale(1); } 50% { transform: translateX(2px) scale(1.02); } 100% { transform: translateX(-1px) scale(0.98); } }
@keyframes go-spray { 0% { transform: scaleX(0.8); opacity:0.3; } 50% { transform: scaleX(1.2); opacity:0.7; } 100% { transform: scaleX(0.9); opacity:0.4; } }
@keyframes go-bird { 0% { transform: translateX(0) rotate(-20deg); } 25% { transform: translateX(30px) rotate(-10deg); } 50% { transform: translateX(60px) rotate(0deg); } 75% { transform: translateX(90px) rotate(-10deg); } 100% { transform: translateX(120px) rotate(-20deg); } }

.scn-red-sea-discussion {
  background: linear-gradient(180deg, #5a4a3a 0%, #7a6a5a 40%, #4a3a2a 100%), radial-gradient(circle at 30% 40%, #e0b080 0%, transparent 60%);
}
.scn-red-sea-discussion .interior-wall { position:absolute; inset:0; background: linear-gradient(135deg, #4a3a2a 0%, #2a1a0a 100%); }
.scn-red-sea-discussion .table { position:absolute; bottom:15%; left:20%; width:200px; height:16px; background: linear-gradient(180deg, #6a4a2a 0%, #4a3020 100%); border-radius:4px; box-shadow: 0 6px 10px rgba(0,0,0,0.5); }
.scn-red-sea-discussion .chart { position:absolute; bottom:20%; left:45%; width:80px; height:60px; background: linear-gradient(180deg, #c8a060 0%, #a08040 100%); border-radius:2px; transform: rotate(-8deg); animation: rs-chart 10s ease-in-out infinite alternate; }
.scn-red-sea-discussion .figure-left { position:absolute; bottom:18%; left:25%; width:40px; height:70px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a05 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rs-figure-l 6s ease-in-out infinite; }
.scn-red-sea-discussion .figure-right { position:absolute; bottom:18%; left:55%; width:40px; height:70px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a05 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rs-figure-r 6s ease-in-out infinite; }
.scn-red-sea-discussion .lamp { position:absolute; top:20%; left:35%; width:12px; height:40px; background: linear-gradient(180deg, #a08040 0%, #6a5020 100%); border-radius: 4px 4px 20% 20%; }
.scn-red-sea-discussion .lamp::after { content:''; position:absolute; top:-10px; left:-8px; width:28px; height:24px; border-radius:50%; background: radial-gradient(circle, #ffd080 0%, #c8a060 60%, transparent 100%); box-shadow: 0 0 40px 20px #e0b060; animation: rs-lamp 4s ease-in-out infinite alternate; }
.scn-red-sea-discussion .view-window { position:absolute; top:25%; left:70%; width:70px; height:50px; border-radius:10%; background: linear-gradient(180deg, #8a6050 0%, #5a3a2a 100%); border:4px solid #4a3a2a; box-shadow: inset 0 0 10px rgba(0,0,0,0.5); animation: rs-window 15s ease-in-out infinite alternate; }
@keyframes rs-chart { 0% { transform: rotate(-8deg) translateX(0); } 50% { transform: rotate(-4deg) translateX(4px); } 100% { transform: rotate(-10deg) translateX(-2px); } }
@keyframes rs-figure-l { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 50% { transform: translateX(3px) translateY(-2px) rotate(2deg); } 100% { transform: translateX(0) translateY(1px) rotate(-1deg); } }
@keyframes rs-figure-r { 0% { transform: translateX(0) translateY(0) rotate(2deg); } 50% { transform: translateX(-3px) translateY(-2px) rotate(-2deg); } 100% { transform: translateX(0) translateY(1px) rotate(1deg); } }
@keyframes rs-lamp { 0% { opacity:0.6; box-shadow: 0 0 30px 15px #e0b060; } 50% { opacity:1; box-shadow: 0 0 50px 25px #f0c080; } 100% { opacity:0.8; box-shadow: 0 0 35px 18px #e0b060; } }
@keyframes rs-window { 0% { background: linear-gradient(180deg, #8a6050 0%, #5a3a2a 100%); } 50% { background: linear-gradient(180deg, #a07060 0%, #6a4a3a 100%); } 100% { background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%); } }

/* Scene 1: skiff-pursues */
.scn-skiff-pursues {
  background: linear-gradient(180deg, #87CEEB 0%, #6CB4EE 20%, #1E90FF 40%, #00BFFF 60%, #006994 80%), radial-gradient(ellipse at 50% 0%, #FFD700 0%, transparent 60%);
}
.scn-skiff-pursues .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #B0E0F0 0%, #87CEEB 50%, #6CB4EE 100%);
  animation: s1-sky 6s ease-in-out infinite alternate;
}
.scn-skiff-pursues .sun {
  position: absolute; top: 8%; left: 70%; width: 50px; height: 50px;
  background: radial-gradient(circle, #FFD700 0%, #FFA500 60%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px rgba(255,215,0,0.4);
  animation: s1-sun 8s ease-in-out infinite alternate;
}
.scn-skiff-pursues .sea-bg {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #1E90FF 0%, #00BFFF 40%, #006994 100%);
}
.scn-skiff-pursues .wave-a {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, rgba(255,255,255,0.2) 0%, rgba(0,191,255,0.1) 100%);
  border-radius: 0 0 50% 50%;
  filter: blur(4px);
  animation: s1-wave 4s ease-in-out infinite alternate;
}
.scn-skiff-pursues .wave-b {
  position: absolute; bottom: 15%; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, rgba(0,191,255,0.3) 0%, rgba(0,105,148,0.3) 100%);
  border-radius: 0 0 40% 60%;
  filter: blur(6px);
  animation: s1-wave 5s ease-in-out infinite alternate-reverse;
}
.scn-skiff-pursues .skiff {
  position: absolute; bottom: 28%; left: 40%; width: 120px; height: 40px;
  background: linear-gradient(180deg, #8B4513 0%, #5C2E0B 100%);
  border-radius: 0 0 30% 30%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: s1-skiff 3s ease-in-out infinite alternate;
}
.scn-skiff-pursues .oars-l {
  position: absolute; bottom: 32%; left: 35%; width: 80px; height: 6px;
  background: #A0522D;
  border-radius: 3px;
  transform-origin: right center;
  animation: s1-oar 1.2s ease-in-out infinite alternate;
}
.scn-skiff-pursues .oars-r {
  position: absolute; bottom: 32%; left: 52%; width: 80px; height: 6px;
  background: #A0522D;
  border-radius: 3px;
  transform-origin: left center;
  animation: s1-oar 1.2s ease-in-out infinite alternate-reverse;
}
.scn-skiff-pursues .dugong {
  position: absolute; bottom: 35%; left: 70%; width: 80px; height: 30px;
  background: linear-gradient(180deg, #2F4F4F 0%, #1C2F2F 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 8px 12px rgba(0,0,0,0.5);
  animation: s1-dugong 6s ease-in-out infinite alternate;
}
@keyframes s1-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes s1-sun { 0% { transform: scale(0.95) translateY(0) } 50% { transform: scale(1.05) translateY(-2px) } 100% { transform: scale(0.95) translateY(0) } }
@keyframes s1-wave { 0% { transform: translateY(0) } 50% { transform: translateY(-6px) } 100% { transform: translateY(0) } }
@keyframes s1-skiff { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-4px) rotate(1deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes s1-oar { 0% { transform: rotate(15deg) } 50% { transform: rotate(-15deg) } 100% { transform: rotate(15deg) } }
@keyframes s1-dugong { 0% { transform: translateX(0) scale(1) } 50% { transform: translateX(5px) scale(0.95) } 100% { transform: translateX(0) scale(1) } }

/* Scene 2: first-throw-misses */
.scn-first-throw-misses {
  background: linear-gradient(180deg, #87CEEB 0%, #5B9BD5 30%, #1E90FF 60%, #006994 100%), radial-gradient(ellipse at 60% 0%, #FFD700 0%, transparent 50%);
}
.scn-first-throw-misses .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #B0E0F0 0%, #87CEEB 50%, #6CB4EE 100%);
  animation: s2-sky 5s ease-in-out infinite alternate;
}
.scn-first-throw-misses .sun {
  position: absolute; top: 10%; left: 55%; width: 45px; height: 45px;
  background: radial-gradient(circle, #FFD700 0%, #FFA500 60%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 50px 15px rgba(255,215,0,0.5);
  animation: s2-sun 7s ease-in-out infinite alternate;
}
.scn-first-throw-misses .sea-bg {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #1E90FF 0%, #00BFFF 40%, #006994 100%);
}
.scn-first-throw-misses .wave-a {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, rgba(255,255,255,0.15) 0%, rgba(0,191,255,0.1) 100%);
  border-radius: 0 0 50% 50%;
  filter: blur(5px);
  animation: s2-wave 3s ease-in-out infinite alternate;
}
.scn-first-throw-misses .skiff-edge {
  position: absolute; bottom: 22%; left: 30%; width: 150px; height: 50px;
  background: linear-gradient(180deg, #8B4513 0%, #5C2E0B 100%);
  border-radius: 0 0 40% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: s2-skiff 2.5s ease-in-out infinite alternate;
}
.scn-first-throw-misses .arm {
  position: absolute; bottom: 30%; left: 35%; width: 20px; height: 60px;
  background: linear-gradient(180deg, #C4A882 0%, #8B6F4E 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: s2-arm 1s ease-in-out infinite alternate;
}
.scn-first-throw-misses .harpoon {
  position: absolute; bottom: 35%; left: 38%; width: 120px; height: 4px;
  background: linear-gradient(90deg, #A0522D 0%, #D2691E 50%, #8B4513 100%);
  border-radius: 2px;
  transform-origin: left center;
  animation: s2-harpoon 1.5s ease-in-out infinite alternate;
}
.scn-first-throw-misses .dugong-surface {
  position: absolute; bottom: 30%; left: 75%; width: 100px; height: 40px;
  background: linear-gradient(180deg, #2F4F4F 0%, #1C2F2F 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 6px 10px rgba(0,0,0,0.4);
  animation: s2-dugong 4s ease-in-out infinite alternate;
}
.scn-first-throw-misses .splash {
  position: absolute; bottom: 28%; left: 78%; width: 30px; height: 20px;
  background: radial-gradient(ellipse, rgba(255,255,255,0.6) 0%, rgba(0,191,255,0.2) 100%);
  border-radius: 50%;
  filter: blur(3px);
  animation: s2-splash 0.8s ease-in-out infinite alternate;
}
@keyframes s2-sky { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes s2-sun { 0% { transform: scale(0.9) } 50% { transform: scale(1.1) } 100% { transform: scale(0.9) } }
@keyframes s2-wave { 0% { transform: translateY(0) } 50% { transform: translateY(-8px) } 100% { transform: translateY(0) } }
@keyframes s2-skiff { 0% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-3px) rotate(2deg) } 100% { transform: translateY(0) rotate(-2deg) } }
@keyframes s2-arm { 0% { transform: rotate(-10deg) } 50% { transform: rotate(20deg) } 100% { transform: rotate(-10deg) } }
@keyframes s2-harpoon { 0% { transform: translateX(0) rotate(-5deg) } 50% { transform: translateX(20px) rotate(5deg) } 100% { transform: translateX(0) rotate(-5deg) } }
@keyframes s2-dugong { 0% { transform: translateX(0) scale(1) } 50% { transform: translateX(3px) scale(0.95) } 100% { transform: translateX(0) scale(1) } }
@keyframes s2-splash { 0% { transform: scale(0.8); opacity:0.5 } 50% { transform: scale(1.2); opacity:1 } 100% { transform: scale(0.8); opacity:0.5 } }

/* Scene 3: pursuit-continues */
.scn-pursuit-continues {
  background: linear-gradient(180deg, #87CEEB 0%, #4A90D9 25%, #1E90FF 50%, #006994 75%, #003B5C 100%), radial-gradient(ellipse at 20% 0%, #FFD700 0%, transparent 40%);
}
.scn-pursuit-continues .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #B0E0F0 0%, #87CEEB 40%, #6CB4EE 100%);
  animation: s3-sky 4s ease-in-out infinite alternate;
}
.scn-pursuit-continues .sun {
  position: absolute; top: 12%; left: 25%; width: 40px; height: 40px;
  background: radial-gradient(circle, #FFD700 0%, #FFA500 50%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 10px rgba(255,215,0,0.6);
  animation: s3-sun 6s ease-in-out infinite alternate;
}
.scn-pursuit-continues .sea-bg {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #1E90FF 0%, #00BFFF 30%, #006994 70%, #003B5C 100%);
}
.scn-pursuit-continues .wave-a {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, rgba(255,255,255,0.2) 0%, rgba(0,191,255,0.05) 100%);
  border-radius: 0 0 60% 40%;
  filter: blur(6px);
  animation: s3-wave 3s ease-in-out infinite alternate;
}
.scn-pursuit-continues .wave-b {
  position: absolute; bottom: 10%; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, rgba(0,191,255,0.25) 0%, transparent 100%);
  border-radius: 0 0 40% 60%;
  filter: blur(4px);
  animation: s3-wave 4s ease-in-out infinite alternate-reverse;
}
.scn-pursuit-continues .skiff-speed {
  position: absolute; bottom: 25%; left: 20%; width: 130px; height: 35px;
  background: linear-gradient(180deg, #8B4513 0%, #5C2E0B 100%);
  border-radius: 0 0 30% 30%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: s3-skiff 1.5s ease-in-out infinite alternate;
}
.scn-pursuit-continues .wake {
  position: absolute; bottom: 22%; left: 15%; width: 200px; height: 10px;
  background: linear-gradient(90deg, transparent 0%, rgba(255,255,255,0.4) 20%, transparent 100%);
  border-radius: 50%;
  filter: blur(2px);
  animation: s3-wake 1s ease-in-out infinite alternate;
}
.scn-pursuit-continues .oars-speed {
  position: absolute; bottom: 30%; left: 25%; width: 60px; height: 5px;
  background: #A0522D;
  border-radius: 3px;
  transform-origin: right center;
  animation: s3-oar 0.6s ease-in-out infinite alternate;
}
.scn-pursuit-continues .harpoon-rope {
  position: absolute; bottom: 33%; left: 35%; width: 150px; height: 3px;
  background: #D2B48C;
  border-radius: 1px;
  transform-origin: left center;
  animation: s3-rope 2s ease-in-out infinite alternate;
}
@keyframes s3-sky { 0% { opacity:0.75 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes s3-sun { 0% { transform: scale(0.95) } 50% { transform: scale(1.05) } 100% { transform: scale(0.95) } }
@keyframes s3-wave { 0% { transform: translateY(0) } 50% { transform: translateY(-10px) } 100% { transform: translateY(0) } }
@keyframes s3-skiff { 0% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-5px) rotate(2deg) } 100% { transform: translateY(0) rotate(-2deg) } }
@keyframes s3-wake { 0% { transform: scaleX(1) opacity:0.5 } 50% { transform: scaleX(1.2) opacity:1 } 100% { transform: scaleX(1) opacity:0.5 } }
@keyframes s3-oar { 0% { transform: rotate(20deg) } 50% { transform: rotate(-20deg) } 100% { transform: rotate(20deg) } }
@keyframes s3-rope { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(10px) rotate(5deg) } 100% { transform: translateX(0) rotate(0deg) } }

/* Scene 4: dugong-counters */
.scn-dugong-counters {
  background: linear-gradient(180deg, #87CEEB 0%, #4A90D9 20%, #1E90FF 40%, #006994 60%, #003B5C 80%), radial-gradient(ellipse at 80% 0%, #FFD700 0%, transparent 50%);
}
.scn-dugong-counters .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #B0E0F0 0%, #87CEEB 40%, #6CB4EE 100%);
  animation: s4-sky 3s ease-in-out infinite alternate;
}
.scn-dugong-counters .sun {
  position: absolute; top: 10%; left: 80%; width: 50px; height: 50px;
  background: radial-gradient(circle, #FFD700 0%, #FFA500 60%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px rgba(255,215,0,0.4);
  animation: s4-sun 5s ease-in-out infinite alternate;
}
.scn-dugong-counters .sea-bg {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #1E90FF 0%, #00BFFF 30%, #006994 70%, #003B5C 100%);
}
.scn-dugong-counters .wave-a {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, rgba(255,255,255,0.2) 0%, rgba(0,191,255,0.1) 100%);
  border-radius: 0 0 50% 50%;
  filter: blur(5px);
  animation: s4-wave 2s ease-in-out infinite alternate;
}
.scn-dugong-counters .wave-b {
  position: absolute; bottom: 15%; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, rgba(0,191,255,0.25) 0%, transparent 100%);
  border-radius: 0 0 40% 60%;
  filter: blur(6px);
  animation: s4-wave 2.5s ease-in-out infinite alternate-reverse;
}
.scn-dugong-counters .dugong-charge {
  position: absolute; bottom: 28%; left: 60%; width: 150px; height: 60px;
  background: linear-gradient(180deg, #2F4F4F 0%, #1C2F2F 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 8px 12px rgba(0,0,0,0.6);
  animation: s4-dugong 1.5s ease-in-out infinite alternate;
}
.scn-dugong-counters .skiff-small {
  position: absolute; bottom: 30%; left: 20%; width: 100px; height: 30px;
  background: linear-gradient(180deg, #8B4513 0%, #5C2E0B 100%);
  border-radius: 0 0 30% 30%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: s4-skiff 1s ease-in-out infinite alternate;
}
.scn-dugong-counters .spray {
  position: absolute; bottom: 35%; left: 65%; width: 40px; height: 30px;
  background: radial-gradient(ellipse, rgba(255,255,255,0.7) 0%, rgba(0,191,255,0.2) 100%);
  border-radius: 50%;
  filter: blur(4px);
  animation: s4-spray 0.6s ease-in-out infinite alternate;
}
.scn-dugong-counters .shadow-charge {
  position: absolute; bottom: 25%; left: 55%; width: 180px; height: 20px;
  background: rgba(0,0,0,0.2);
  border-radius: 50%;
  filter: blur(10px);
  animation: s4-shadow 1.5s ease-in-out infinite alternate;
}
@keyframes s4-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes s4-sun { 0% { transform: scale(0.9) translateY(0) } 50% { transform: scale(1.1) translateY(-2px) } 100% { transform: scale(0.9) translateY(0) } }
@keyframes s4-wave { 0% { transform: translateY(0) } 50% { transform: translateY(-8px) } 100% { transform: translateY(0) } }
@keyframes s4-dugong { 0% { transform: translateX(0) scale(1) } 50% { transform: translateX(-10px) scale(1.1) } 100% { transform: translateX(0) scale(1) } }
@keyframes s4-skiff { 0% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-3px) rotate(2deg) } 100% { transform: translateY(0) rotate(-2deg) } }
@keyframes s4-spray { 0% { transform: scale(0.8) translateY(0); opacity:0.6 } 50% { transform: scale(1.2) translateY(-5px); opacity:1 } 100% { transform: scale(0.8) translateY(0); opacity:0.6 } }
@keyframes s4-shadow { 0% { transform: scaleX(1) opacity:0.5 } 50% { transform: scaleX(1.3) opacity:0.8 } 100% { transform: scaleX(1) opacity:0.5 } }

.scn-conversation-on-durville {
  background: 
    linear-gradient(180deg, #e8dcc8 0%, #c8b898 40%, #a09070 100%),
    radial-gradient(ellipse at 30% 50%, #f0e0c0 0%, transparent 60%);
}
.scn-conversation-on-durville .room-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #f8f0e0 0%, #d8c8a8 60%, #b8a888 100%);
}
.scn-conversation-on-durville .table {
  position: absolute; bottom: 20%; left: 20%; width: 60%; height: 20%;
  background: linear-gradient(180deg, #8b6f47 0%, #6a5438 100%);
  border-radius: 4px; box-shadow: 0 4px 12px rgba(0,0,0,0.3);
  animation: cd-table 12s ease-in-out infinite;
}
.scn-conversation-on-durville .chart {
  position: absolute; bottom: 28%; left: 38%; width: 24%; height: 12%;
  background: linear-gradient(135deg, #f5e6c8 0%, #e0d0a0 100%);
  border: 2px solid #8b7355; border-radius: 2px; transform: rotate(-3deg);
  box-shadow: 0 2px 6px rgba(0,0,0,0.2);
  animation: cd-chart 6s ease-in-out infinite alternate;
}
.scn-conversation-on-durville .figure-left {
  position: absolute; bottom: 22%; left: 28%; width: 10%; height: 28%;
  background: linear-gradient(180deg, #2a2620 0%, #1a1612 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cd-figure-left 4s ease-in-out infinite;
}
.scn-conversation-on-durville .figure-right {
  position: absolute; bottom: 22%; right: 28%; width: 10%; height: 28%;
  background: linear-gradient(180deg, #3a3228 0%, #2a2218 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cd-figure-right 4.5s ease-in-out infinite;
}
.scn-conversation-on-durville .lamp {
  position: absolute; top: 15%; left: 50%; width: 6%; height: 12%;
  background: linear-gradient(180deg, #c89440 0%, #a07020 100%);
  border-radius: 20% 20% 50% 50% / 30% 30% 40% 40%;
  box-shadow: 0 0 40px 20px rgba(240,200,80,0.5), 0 0 80px 40px rgba(240,200,80,0.2);
  animation: cd-lamp 3s ease-in-out infinite alternate;
}
.scn-conversation-on-durville .bookcase {
  position: absolute; top: 8%; right: 6%; width: 18%; height: 40%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 4px; box-shadow: inset 0 0 10px rgba(0,0,0,0.5);
  animation: cd-bookcase 8s ease-in-out infinite;
}
@keyframes cd-table { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes cd-chart { 0% { transform: rotate(-3deg) scale(1); } 50% { transform: rotate(-1deg) scale(1.02); } 100% { transform: rotate(-3deg) scale(1); } }
@keyframes cd-figure-left { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(4px) rotate(2deg); } 70% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes cd-figure-right { 0% { transform: translateX(0) rotate(0deg); } 40% { transform: translateX(-3px) rotate(-2deg); } 80% { transform: translateX(2px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes cd-lamp { 0% { opacity: 0.7; box-shadow: 0 0 30px 15px rgba(240,200,80,0.4); } 50% { opacity: 1; box-shadow: 0 0 50px 25px rgba(240,200,80,0.7); } 100% { opacity: 0.8; box-shadow: 0 0 35px 18px rgba(240,200,80,0.5); } }
@keyframes cd-bookcase { 0% { box-shadow: inset 0 0 10px rgba(0,0,0,0.5); } 50% { box-shadow: inset 0 0 20px rgba(0,0,0,0.7); } 100% { box-shadow: inset 0 0 10px rgba(0,0,0,0.5); } }

.scn-durville-fate {
  background:
    linear-gradient(180deg, #d8c8b0 0%, #b8a080 40%, #887060 100%),
    radial-gradient(ellipse at 60% 40%, #e8d8c0 0%, transparent 50%);
}
.scn-durville-fate .room-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #e0d0c0 0%, #b8a088 60%, #908070 100%);
}
.scn-durville-fate .window {
  position: absolute; top: 10%; left: 10%; width: 30%; height: 40%;
  background: linear-gradient(180deg, #8898a8 0%, #607080 100%);
  border: 6px solid #4a3a2a; border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.4);
  animation: df-window 20s ease-in-out infinite;
}
.scn-durville-fate .figure {
  position: absolute; bottom: 20%; left: 40%; width: 14%; height: 40%;
  background: linear-gradient(180deg, #1a1a22 0%, #0a0a12 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  transform-origin: bottom center;
  animation: df-figure 6s ease-in-out infinite;
}
.scn-durville-fate .table {
  position: absolute; bottom: 18%; left: 35%; width: 30%; height: 8%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 4px; box-shadow: 0 4px 12px rgba(0,0,0,0.3);
  animation: df-table 8s ease-in-out infinite;
}
.scn-durville-fate .portrait {
  position: absolute; top: 20%; right: 15%; width: 14%; height: 18%;
  background: linear-gradient(180deg, #c8a878 0%, #a08050 100%);
  border: 4px solid #4a3a2a; border-radius: 4px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.4);
  animation: df-portrait 12s ease-in-out infinite;
}
.scn-durville-fate .candle {
  position: absolute; bottom: 28%; left: 45%; width: 4%; height: 12%;
  background: linear-gradient(180deg, #f0e8d0 0%, #d0c0a0 100%);
  border-radius: 40% 40% 10% 10% / 60% 60% 20% 20%;
  box-shadow: 0 0 20px 10px rgba(240,200,80,0.6);
  animation: df-candle 2.5s ease-in-out infinite alternate;
}
.scn-durville-fate .shadow {
  position: absolute; bottom: 20%; left: 38%; width: 20%; height: 2%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 100%);
  animation: df-shadow 6s ease-in-out infinite;
}
@keyframes df-window { 0% { opacity: 0.8; } 50% { opacity: 0.6; } 100% { opacity: 0.8; } }
@keyframes df-figure { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(-3px) rotate(-2deg); } 70% { transform: translateX(0) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes df-table { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes df-portrait { 0% { transform: scale(1); } 50% { transform: scale(1.02); } 100% { transform: scale(1); } }
@keyframes df-candle { 0% { transform: scaleY(1) scaleX(1); box-shadow: 0 0 20px 10px rgba(240,200,80,0.6); } 50% { transform: scaleY(1.05) scaleX(0.95); box-shadow: 0 0 25px 12px rgba(240,200,80,0.8); } 100% { transform: scaleY(0.98) scaleX(1.02); box-shadow: 0 0 18px 8px rgba(240,200,80,0.5); } }
@keyframes df-shadow { 0% { opacity: 0.3; transform: scaleX(1); } 50% { opacity: 0.5; transform: scaleX(1.2); } 100% { opacity: 0.3; transform: scaleX(1); } }

.scn-nemo-compares-himself {
  background:
    linear-gradient(180deg, #e0d4c4 0%, #c4b4a0 40%, #a09080 100%),
    radial-gradient(ellipse at 30% 60%, #f0e4d0 0%, transparent 70%);
}
.scn-nemo-compares-himself .room-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #f0e8dc 0%, #d4c8b8 60%, #b8a898 100%);
}
.scn-nemo-compares-himself .wall-map {
  position: absolute; top: 8%; left: 10%; width: 50%; height: 40%;
  background: linear-gradient(135deg, #d8c8a0 0%, #b8a880 100%);
  border: 4px solid #6a5a4a; border-radius: 4px;
  box-shadow: 0 0 20px rgba(0,0,0,0.2);
  animation: nc-map 15s ease-in-out infinite;
}
.scn-nemo-compares-himself .figure {
  position: absolute; bottom: 14%; left: 38%; width: 12%; height: 36%;
  background: linear-gradient(180deg, #2a2218 0%, #1a140e 100%);
  border-radius: 50% 50% 40% 40% / 65% 65% 40% 40%;
  transform-origin: bottom center;
  animation: nc-figure 5s ease-in-out infinite;
}
.scn-nemo-compares-himself .desk {
  position: absolute; bottom: 12%; left: 30%; width: 40%; height: 6%;
  background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%);
  border-radius: 4px; box-shadow: 0 4px 12px rgba(0,0,0,0.3);
  animation: nc-desk 10s ease-in-out infinite;
}
.scn-nemo-compares-himself .lamp {
  position: absolute; bottom: 28%; left: 55%; width: 5%; height: 14%;
  background: linear-gradient(180deg, #c89440 0%, #a07020 100%);
  border-radius: 20% 20% 50% 50% / 30% 30% 40% 40%;
  box-shadow: 0 0 30px 15px rgba(240,200,80,0.5);
  animation: nc-lamp 3s ease-in-out infinite alternate;
}
.scn-nemo-compares-himself .chair {
  position: absolute; bottom: 14%; right: 28%; width: 14%; height: 24%;
  background: linear-gradient(180deg, #5a4030 0%, #3a2818 100%);
  border-radius: 40% 40% 10% 10% / 60% 60% 20% 20%;
  animation: nc-chair 7s ease-in-out infinite;
}
.scn-nemo-compares-himself .book {
  position: absolute; bottom: 16%; left: 45%; width: 6%; height: 8%;
  background: linear-gradient(180deg, #8a7030 0%, #6a5020 100%);
  border-radius: 4px; transform: rotate(-15deg);
  animation: nc-book 9s ease-in-out infinite;
}
@keyframes nc-map { 0% { transform: scale(1); } 50% { transform: scale(1.01); } 100% { transform: scale(1); } }
@keyframes nc-figure { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(4px) rotate(2deg); } 75% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes nc-desk { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes nc-lamp { 0% { opacity: 0.8; box-shadow: 0 0 25px 12px rgba(240,200,80,0.4); } 50% { opacity: 1; box-shadow: 0 0 40px 20px rgba(240,200,80,0.7); } 100% { opacity: 0.9; box-shadow: 0 0 30px 15px rgba(240,200,80,0.5); } }
@keyframes nc-chair { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes nc-book { 0% { transform: rotate(-15deg) translateX(0); } 50% { transform: rotate(-13deg) translateX(1px); } 100% { transform: rotate(-15deg) translateX(0); } }

.scn-similarity-aground {
  background:
    linear-gradient(180deg, #d4c8b8 0%, #b8a898 40%, #988878 100%),
    radial-gradient(ellipse at 40% 50%, #e8dcc8 0%, transparent 60%);
}
.scn-similarity-aground .room-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #e8dcc8 0%, #c8b8a0 60%, #a89880 100%);
}
.scn-similarity-aground .table {
  position: absolute; bottom: 22%; left: 22%; width: 56%; height: 18%;
  background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%);
  border-radius: 6px; box-shadow: 0 4px 16px rgba(0,0,0,0.3);
  animation: sa-table 10s ease-in-out infinite;
}
.scn-similarity-aground .globe {
  position: absolute; bottom: 30%; left: 40%; width: 12%; height: 16%;
  background: radial-gradient(circle at 40% 40%, #6a8a6a 0%, #3a5a3a 60%, #2a3a2a 100%);
  border-radius: 50%; box-shadow: 0 4px 12px rgba(0,0,0,0.4);
  animation: sa-globe 20s linear infinite;
}
.scn-similarity-aground .figure-left {
  position: absolute; bottom: 22%; left: 26%; width: 10%; height: 30%;
  background: linear-gradient(180deg, #3a3228 0%, #2a2218 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sa-figure-left 4s ease-in-out infinite;
}
.scn-similarity-aground .figure-right {
  position: absolute; bottom: 22%; right: 26%; width: 10%; height: 30%;
  background: linear-gradient(180deg, #2a2620 0%, #1a1612 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sa-figure-right 4.5s ease-in-out infinite;
}
.scn-similarity-aground .lamp {
  position: absolute; top: 12%; left: 50%; width: 6%; height: 14%;
  background: linear-gradient(180deg, #c89440 0%, #a07020 100%);
  border-radius: 20% 20% 50% 50% / 30% 30% 40% 40%;
  box-shadow: 0 0 50px 25px rgba(240,200,80,0.6), 0 0 100px 50px rgba(240,200,80,0.3);
  animation: sa-lamp 3.5s ease-in-out infinite alternate;
}
.scn-similarity-aground .window {
  position: absolute; top: 10%; right: 8%; width: 20%; height: 30%;
  background: linear-gradient(180deg, #607080 0%, #405060 80%);
  border: 6px solid #4a3a2a; border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.5);
  animation: sa-window 14s ease-in-out infinite;
}
@keyframes sa-table { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes sa-globe { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }
@keyframes sa-figure-left { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(5px) rotate(2deg); } 70% { transform: translateX(-3px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes sa-figure-right { 0% { transform: translateX(0) rotate(0deg); } 40% { transform: translateX(-4px) rotate(-2deg); } 80% { transform: translateX(2px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes sa-lamp { 0% { opacity: 0.8; box-shadow: 0 0 40px 20px rgba(240,200,80,0.5); } 50% { opacity: 1; box-shadow: 0 0 60px 30px rgba(240,200,80,0.8); } 100% { opacity: 0.9; box-shadow: 0 0 45px 22px rgba(240,200,80,0.6); } }
@keyframes sa-window { 0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.7; } }

.scn-keeling-island {
  background: linear-gradient(180deg, #7ec8e3 0%, #a8d8f0 30%, #fdf4d4 60%), radial-gradient(ellipse at 50% 0%, #fdf4d4 0%, transparent 70%);
}
.scn-keeling-island .sky { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #b0d8f0 0%, #d0e8f8 40%, #e8f4ff 70%); animation: kli-sky 12s ease-in-out infinite alternate; }
.scn-keeling-island .sun { position:absolute; top:10%; left:70%; width:40px; height:40px; background: radial-gradient(circle, #fff7d6 0%, #ffd45a 60%, #ff9a00 100%); border-radius:50%; box-shadow: 0 0 60px 20px rgba(255,212,90,.4); animation: kli-sun 20s ease-in-out infinite alternate; }
.scn-keeling-island .ocean { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #2b6c8a 0%, #1a4f6e 40%, #0d3b5a 100%); animation: kli-ocean 15s ease-in-out infinite alternate; }
.scn-keeling-island .island { position:absolute; bottom:45%; left:30%; width:200px; height:80px; background: radial-gradient(ellipse at 50% 100%, #8b6f47 0%, #c8a87c 60%, #e0c090 100%); border-radius:50% 50% 40% 40% / 60% 60% 20% 20%; animation: kli-island 20s ease-in-out infinite; }
.scn-keeling-island .palm-trunk { position:absolute; bottom:50%; left:35%; width:10px; height:70px; background: linear-gradient(90deg, #5a3e2a 0%, #7a5a3a 50%, #5a3e2a 100%); border-radius:10% 10% 0 0; transform-origin:bottom center; animation: kli-trunk 8s ease-in-out infinite; }
.scn-keeling-island .palm-fronds { position:absolute; bottom:65%; left:34.5%; width:40px; height:30px; background: radial-gradient(ellipse at 50% 100%, #3d7a3d 0%, #2a5a2a 70%); border-radius:50% 50% 0 0 / 100% 100% 0 0; transform-origin:bottom center; animation: kli-fronds 8s ease-in-out infinite alternate; }
.scn-keeling-island .bird { position:absolute; top:25%; left:20%; width:24px; height:10px; background: transparent; border-top:3px solid #333; border-bottom:3px solid #333; border-radius:50%; filter: drop-shadow(0 2px 2px rgba(0,0,0,.2)); animation: kli-bird 30s linear infinite; }
@keyframes kli-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.75 } }
@keyframes kli-sun { 0% { transform: scale(1) translate(0,0); } 50% { transform: scale(1.05) translate(5px,-3px); } 100% { transform: scale(0.98) translate(-2px,2px); } }
@keyframes kli-ocean { 0% { transform: translateY(0); } 50% { transform: translateY(5px); } 100% { transform: translateY(-3px); } }
@keyframes kli-island { 0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.02) translateY(-3px); } 100% { transform: scaleY(0.98) translateY(2px); } }
@keyframes kli-trunk { 0% { transform: rotate(-2deg); } 25% { transform: rotate(2deg); } 75% { transform: rotate(-1deg); } 100% { transform: rotate(0deg); } }
@keyframes kli-fronds { 0% { transform: rotate(0deg) scaleY(1); } 50% { transform: rotate(3deg) scaleY(1.05); } 100% { transform: rotate(-3deg) scaleY(0.95); } }
@keyframes kli-bird { 0% { transform: translateX(-30px) rotate(0deg); } 50% { transform: translateX(60vw) rotate(5deg); } 100% { transform: translateX(120vw) rotate(-5deg); } }

.scn-towards-indian-peninsula {
  background: linear-gradient(180deg, #a0c8e8 0%, #c8e0f0 40%, #e8f4ff 100%), radial-gradient(ellipse at 50% 100%, #f0f8ff 0%, transparent 80%);
}
.scn-towards-indian-peninsula .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #b8d4f0 0%, #d8ecf8 100%); animation: tip-sky 18s ease-in-out infinite alternate; }
.scn-towards-indian-peninsula .horizon-cloud { position:absolute; top:45%; left:10%; width:80%; height:8%; background: rgba(255,255,255,0.3); border-radius:50% 50% 30% 30%; filter: blur(8px); animation: tip-horizon 25s linear infinite; }
.scn-towards-indian-peninsula .sea { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #1f6a8a 0%, #0d4b6a 60%, #06344f 100%); animation: tip-sea 12s ease-in-out infinite alternate; }
.scn-towards-indian-peninsula .distant-land { position:absolute; bottom:45%; left:55%; width:150px; height:30px; background: linear-gradient(180deg, #8c7a5a 0%, #6a5a3a 100%); border-radius:30% 70% 50% 50% / 50% 50% 20% 20%; animation: tip-land 30s ease-in-out infinite alternate; }
.scn-towards-indian-peninsula .ship { position:absolute; bottom:40%; left:20%; width:80px; height:40px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:0 0 30% 30% / 0 0 50% 50%; clip-path: polygon(20% 0%, 80% 0%, 100% 100%, 0% 100%); animation: tip-ship 16s ease-in-out infinite; }
.scn-towards-indian-peninsula .sail { position:absolute; bottom:55%; left:23%; width:20px; height:40px; background: #e0d0b0; border-radius:0 0 30% 30%; transform-origin:bottom center; animation: tip-sail 8s ease-in-out infinite; }
.scn-towards-indian-peninsula .wave-1 { position:absolute; bottom:30%; left:0; width:100%; height:15%; background: rgba(255,255,255,0.15); border-radius:50% 50% 0 0 / 100% 100% 0 0; animation: tip-wave1 6s ease-in-out infinite; }
.scn-towards-indian-peninsula .wave-2 { position:absolute; bottom:20%; left:0; width:100%; height:12%; background: rgba(255,255,255,0.1); border-radius:50% 50% 0 0 / 100% 100% 0 0; animation: tip-wave2 8s ease-in-out infinite alternate; }
@keyframes tip-sky { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes tip-horizon { 0% { transform: translateX(-20%); } 100% { transform: translateX(20%); } }
@keyframes tip-sea { 0% { transform: translateY(0); } 50% { transform: translateY(4px); } 100% { transform: translateY(-2px); } }
@keyframes tip-land { 0% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(-3px) scaleX(1.02); } 100% { transform: translateX(3px) scaleX(0.98); } }
@keyframes tip-ship { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-6px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes tip-sail { 0% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-3deg); } }
@keyframes tip-wave1 { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-4px) scaleX(1.05); } 100% { transform: translateY(0) scaleX(1); } }
@keyframes tip-wave2 { 0% { transform: translateY(0) scaleX(1); } 33% { transform: translateY(-6px) scaleX(1.03); } 66% { transform: translateY(2px) scaleX(0.97); } 100% { transform: translateY(0) scaleX(1); } }

.scn-aronnax-rides-it-out {
  background: linear-gradient(135deg, #4a3a2a 0%, #6a5a4a 30%, #3a2a1a 70%), radial-gradient(circle at 70% 40%, #8a7a5a 0%, transparent 60%);
}
.scn-aronnax-rides-it-out .wall { position:absolute; inset:0; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 50%, #3a2a1a 100%); border-radius: 0 0 5% 5% / 0 0 10% 10%; box-shadow: inset 0 20px 40px rgba(0,0,0,0.5); }
.scn-aronnax-rides-it-out .porthole-frame { position:absolute; top:25%; left:50%; width:120px; height:120px; transform:translateX(-50%); background: radial-gradient(circle at 50% 50%, #8a7a5a 0%, #4a3a2a 100%); border-radius:50%; box-shadow: 0 0 20px 5px rgba(0,0,0,0.7), inset 0 0 30px 10px rgba(0,0,0,0.5); }
.scn-aronnax-rides-it-out .outside-sea { position:absolute; top:27%; left:52%; width:100px; height:100px; transform:translate(-50%, -50%); background: linear-gradient(180deg, #2b6c8a 0%, #1a5a7a 50%, #0c4a6a 100%); border-radius:50%; animation: roe-sea 10s ease-in-out infinite alternate; }
.scn-aronnax-rides-it-out .chair { position:absolute; bottom:15%; left:35%; width:50px; height:60px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 10% 10% 5% 5%; box-shadow: -5px 0 10px rgba(0,0,0,0.4); }
.scn-aronnax-rides-it-out .figure-silhouette { position:absolute; bottom:18%; left:38%; width:30px; height:60px; background: linear-gradient(180deg, #2a1a0a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: roe-figure 8s ease-in-out infinite; }
.scn-aronnax-rides-it-out .light-beam { position:absolute; top:10%; left:45%; width:40px; height:80px; background: linear-gradient(180deg, rgba(255,235,180,0.3) 0%, rgba(255,235,180,0.05) 100%); border-radius: 0 0 50% 50%; transform: rotate(-15deg); transform-origin: top center; animation: roe-light 6s ease-in-out infinite alternate; }
@keyframes roe-sea { 0% { background-position: 0% 0%; } 50% { background-position: 100% 20%; } 100% { background-position: 0% 10%; } }
@keyframes roe-figure { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-5px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes roe-light { 0% { opacity:0.3; transform: rotate(-15deg) scaleY(1); } 50% { opacity:0.6; transform: rotate(-10deg) scaleY(1.1); } 100% { opacity:0.3; transform: rotate(-20deg) scaleY(0.9); } }

.scn-slower-pace {
  background: linear-gradient(180deg, #0a1a2a 0%, #142a3a 40%, #0a1a2a 100%), radial-gradient(ellipse at 50% 100%, #1a2a3a 0%, transparent 80%);
}
.scn-slower-pace .dark-interior { position:absolute; inset:0; background: linear-gradient(135deg, #0a1a2a 0%, #142a3a 50%, #1a2a3a 100%); box-shadow: inset 0 0 80px rgba(0,0,0,0.8); }
.scn-slower-pace .viewport { position:absolute; top:30%; left:50%; width:140px; height:100px; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 50%, #0a2a4a 0%, #041424 100%); border:8px solid #3a4a5a; border-radius: 20% 20% 10% 10%; box-shadow: 0 0 30px rgba(0,0,0,0.9), inset 0 0 40px rgba(0,0,0,0.5); }
.scn-slower-pace .deep-sea { position:absolute; top:32%; left:52%; width:120px; height:80px; transform:translate(-50%, -50%); background: linear-gradient(180deg, #0c2030 0%, #051520 100%); border-radius: 10% 10% 5% 5%; animation: slp-deep 15s ease-in-out infinite alternate; }
.scn-slower-pace .fish-glow { position:absolute; top:35%; left:30%; width:20px; height:8px; background: #5a8aaa; border-radius:50%; box-shadow: 0 0 20px 8px rgba(90,138,170,0.5), 0 0 40px 15px rgba(90,138,170,0.2); animation: slp-fish 30s linear infinite; }
.scn-slower-pace .fin-part { position:absolute; bottom:15%; left:20%; width:60px; height:20px; background: linear-gradient(180deg, #3a4a5a 0%, #1a2a3a 100%); border-radius: 0 70% 70% 0 / 0 100% 100% 0; transform: rotate(30deg); transform-origin: left center; animation: slp-fin 12s ease-in-out infinite alternate; }
.scn-slower-pace .gauge { position:absolute; bottom:10%; right:10%; width:40px; height:40px; background: radial-gradient(circle at 30% 30%, #5a6a7a 0%, #2a3a4a 100%); border-radius:50%; border:3px solid #1a2a3a; box-shadow: inset 0 0 10px rgba(0,0,0,0.8); }
.scn-slower-pace .bubble { position:absolute; top:25%; left:40%; width:8px; height:8px; background: rgba(200,220,240,0.2); border-radius:50%; animation: slp-bubble 6s ease-in-out infinite; }
@keyframes slp-deep { 0% { opacity:0.6; } 50% { opacity:0.8; } 100% { opacity:0.5; } }
@keyframes slp-fish { 0% { transform: translateX(-20px) translateY(0) scale(1); } 50% { transform: translateX(40px) translateY(-10px) scale(1.2); } 100% { transform: translateX(120px) translateY(0) scale(0.8); } }
@keyframes slp-fin { 0% { transform: rotate(25deg) scaleY(1); } 50% { transform: rotate(35deg) scaleY(1.05); } 100% { transform: rotate(25deg) scaleY(0.95); } }
@keyframes slp-bubble { 0% { transform: translateY(0) scale(0.8); opacity:0.2; } 50% { transform: translateY(-20px) scale(1.2); opacity:0.6; } 100% { transform: translateY(-40px) scale(0.5); opacity:0; } }

/* secret-may-die */
.scn-secret-may-die {
  background: linear-gradient(180deg, #c8a876 0%, #a88b5e 40%, #7a643e 100%);
}
.scn-secret-may-die .wall {
  position: absolute; inset: 0 0 30% 0; 
  background: linear-gradient(180deg, #d9c9a6 0%, #b8a17c 100%);
  box-shadow: inset 0 -20px 40px rgba(0,0,0,0.3);
}
.scn-secret-may-die .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #6b553a 0%, #4a3a28 100%);
  box-shadow: inset 0 20px 30px rgba(0,0,0,0.6);
}
.scn-secret-may-die .porthole {
  position: absolute; top: 25%; left: 50%; transform: translateX(-50%); 
  width: 80px; height: 80px; border-radius: 50%; 
  background: radial-gradient(circle, #ffe6a0 0%, #d4a860 50%, transparent 70%);
  box-shadow: 0 0 40px 10px rgba(255,230,160,0.6);
  animation: smd-glow 6s ease-in-out infinite alternate;
}
.scn-secret-may-die .table {
  position: absolute; bottom: 25%; left: 50%; transform: translateX(-40%);
  width: 100px; height: 12px; 
  background: linear-gradient(180deg, #a08060 0%, #7a5a3a 100%);
  border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-secret-may-die .chair {
  position: absolute; bottom: 22%; left: 48%; 
  width: 20px; height: 30px;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a1a 100%);
  border-radius: 30% 30% 10% 10%;
  transform-origin: bottom center;
  animation: smd-sway 7s ease-in-out infinite;
}
.scn-secret-may-die .silhouette {
  position: absolute; bottom: 20%; left: 60%; 
  width: 24px; height: 48px;
  background: #2a1a0a;
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform: rotate(5deg);
  box-shadow: -4px 0 8px rgba(0,0,0,0.3);
  animation: smd-breathe 9s ease-in-out infinite;
}
.scn-secret-may-die .glow-light {
  position: absolute; top: 55%; left: 30%; 
  width: 10px; height: 10px; border-radius: 50%;
  background: #ffe080;
  box-shadow: 0 0 30px 10px rgba(255,224,128,0.8);
  animation: smd-flicker 3s ease-in-out infinite alternate;
}
.scn-secret-may-die .instrument-panel {
  position: absolute; bottom: 28%; right: 20%; 
  width: 80px; height: 40px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 8px; border: 2px solid #8a6a4a;
  box-shadow: inset 0 0 20px rgba(255,200,100,0.2);
}
@keyframes smd-glow {
  0%   { box-shadow: 0 0 30px 5px rgba(255,230,160,0.5); opacity: 0.9; }
  50%  { box-shadow: 0 0 60px 15px rgba(255,230,160,0.8); opacity: 1; }
  100% { box-shadow: 0 0 40px 8px rgba(255,230,160,0.6); opacity: 0.92; }
}
@keyframes smd-sway {
  0%,100% { transform: rotate(0deg); }
  50%     { transform: rotate(4deg); }
}
@keyframes smd-breathe {
  0%,100% { transform: translateY(0) rotate(5deg); }
  50%     { transform: translateY(-2px) rotate(3deg); }
}
@keyframes smd-flicker {
  0%   { box-shadow: 0 0 15px 5px #ffe080; opacity: 0.7; }
  100% { box-shadow: 0 0 35px 12px #ffe080; opacity: 1; }
}

/* ancient-vs-modern */
.scn-ancient-vs-modern {
  background: linear-gradient(180deg, #9ac7d0 0%, #6ba5b0 40%, #3e7d88 100%);
}
.scn-ancient-vs-modern .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #d9e6ef 0%, #b2cfdb 100%);
  animation: avm-sky 20s ease-in-out infinite alternate;
}
.scn-ancient-vs-modern .sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #3a7a85 0%, #1a4a55 100%);
}
.scn-ancient-vs-modern .sailboat {
  position: absolute; bottom: 15%; left: 22%; 
  width: 100px; height: 80px;
  background: transparent;
  transform: translateX(-50%);
}
.scn-ancient-vs-modern .sailboat::before {
  content: ''; position: absolute; bottom: 0; left: 50%; transform: translateX(-50%);
  width: 60px; height: 20px;
  background: linear-gradient(180deg, #8a6a3a 0%, #5a3a1a 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
}
.scn-ancient-vs-modern .sailboat::after {
  content: ''; position: absolute; bottom: 10px; left: 50%; transform: translateX(-50%);
  width: 30px; height: 60px;
  background: linear-gradient(180deg, #e8d8b0 0%, #c4a87a 100%);
  clip-path: polygon(100% 0, 0 0, 50% 100%);
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: avm-sail-sway 8s ease-in-out infinite;
}
.scn-ancient-vs-modern .steamer {
  position: absolute; bottom: 12%; right: 18%; 
  width: 90px; height: 50px;
  background: linear-gradient(180deg, #5a5a6a 0%, #3a3a4a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.6);
  animation: avm-steam-bob 6s ease-in-out infinite;
}
.scn-ancient-vs-modern .steamer::before {
  content: ''; position: absolute; top: -40px; left: 20%; width: 8px; height: 40px;
  background: #4a4a5a;
}
.scn-ancient-vs-modern .steamer::after {
  content: ''; position: absolute; top: -40px; left: 70%; width: 8px; height: 40px;
  background: #4a4a5a;
}
.scn-ancient-vs-modern .wave-left {
  position: absolute; bottom: 5%; left: 5%; 
  width: 120px; height: 20px;
  background: radial-gradient(ellipse at center, rgba(255,255,255,0.3) 0%, transparent 70%);
  border-radius: 50%;
  animation: avm-wave 10s ease-in-out infinite;
}
.scn-ancient-vs-modern .wave-right {
  position: absolute; bottom: 10%; right: 5%;
  width: 100px; height: 15px;
  background: radial-gradient(ellipse at center, rgba(255,255,255,0.25) 0%, transparent 70%);
  border-radius: 50%;
  animation: avm-wave 12s ease-in-out infinite reverse;
}
.scn-ancient-vs-modern .sun-halo {
  position: absolute; top: 10%; right: 30%; 
  width: 50px; height: 50px;
  background: radial-gradient(circle, #ffe080 0%, #f0c050 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px rgba(255,224,128,0.5);
  animation: avm-sun-pulse 15s ease-in-out infinite alternate;
}
.scn-ancient-vs-modern .horizon {
  position: absolute; bottom: 50%; left: 0; right: 0; height: 8px;
  background: linear-gradient(90deg, transparent 0%, rgba(255,255,255,0.4) 50%, transparent 100%);
  filter: blur(2px);
}
@keyframes avm-sky {
  0%   { opacity: 0.8; }
  50%  { opacity: 1; background-position: 0% 0%; }
  100% { opacity: 0.85; }
}
@keyframes avm-sail-sway {
  0%,100% { transform: translateX(-50%) rotate(-2deg); }
  50%     { transform: translateX(-50%) rotate(2deg); }
}
@keyframes avm-steam-bob {
  0%,100% { transform: translateY(0); }
  50%     { transform: translateY(-3px); }
}
@keyframes avm-wave {
  0%   { transform: translateX(0) scaleX(1); }
  50%  { transform: translateX(10px) scaleX(1.1); }
  100% { transform: translateX(0) scaleX(1); }
}
@keyframes avm-sun-pulse {
  0%   { box-shadow: 0 0 40px 10px rgba(255,224,128,0.4); }
  100% { box-shadow: 0 0 80px 30px rgba(255,224,128,0.7); }
}

/* modern-steamers-safe */
.scn-modern-steamers-safe {
  background: linear-gradient(180deg, #b5dbd0 0%, #8cc4b5 40%, #5aa895 100%);
}
.scn-modern-steamers-safe .sea-bg {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #6aa895 0%, #3d7a68 100%);
  box-shadow: inset 0 30px 60px rgba(0,0,0,0.3);
}
.scn-modern-steamers-safe .steamer-body {
  position: absolute; bottom: 25%; left: 50%; transform: translateX(-50%);
  width: 120px; height: 40px;
  background: linear-gradient(180deg, #707080 0%, #4a4a5a 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.5);
  animation: mss-bob 8s ease-in-out infinite;
}
.scn-modern-steamers-safe .steamer-body::before {
  content: ''; position: absolute; top: -30px; left: 20%; width: 10px; height: 30px;
  background: #5a5a6a;
  box-shadow: 0 0 10px rgba(255,255,255,0.2);
}
.scn-modern-steamers-safe .steamer-body::after {
  content: ''; position: absolute; top: -25px; left: 70%; width: 6px; height: 25px;
  background: #5a5a6a;
}
.scn-modern-steamers-safe .steamer-smoke {
  position: absolute; top: -40px; left: 25%; 
  width: 8px; height: 20px;
  background: rgba(255,255,255,0.3);
  filter: blur(3px);
  border-radius: 50%;
  animation: mss-smoke 4s ease-out infinite;
}
.scn-modern-steamers-safe .steamer-smoke:nth-child(2) {
  left: 75%; animation-delay: 1s;
}
.scn-modern-steamers-safe .steamer-sun {
  position: absolute; top: 15%; left: 70%;
  width: 40px; height: 40px;
  background: radial-gradient(circle, #ffeab0 0%, #f0d080 50%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px rgba(255,224,128,0.6);
  animation: mss-sun 20s ease-in-out infinite alternate;
}
.scn-modern-steamers-safe .wave-foam {
  position: absolute; bottom: 20%; left: 10%; right: 10%;
  height: 4px;
  background: radial-gradient(ellipse at center, rgba(255,255,255,0.3) 0%, transparent 70%);
  filter: blur(2px);
  animation: mss-foam 12s ease-in-out infinite;
}
.scn-modern-steamers-safe .sun-rays {
  position: absolute; top: 15%; left: 70%;
  width: 150px; height: 150px;
  background: radial-gradient(circle, rgba(255,224,128,0.2) 0%, transparent 70%);
  transform: rotate(20deg);
  animation: mss-rays 30s linear infinite;
}
.scn-modern-steamers-safe .distant-land {
  position: absolute; bottom: 48%; right: 20%;
  width: 60px; height: 30px;
  background: linear-gradient(180deg, #7a9a7a 0%, #4a6a4a 100%);
  border-radius: 40% 40% 0 0;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.3);
  animation: mss-land 6s ease-in-out infinite alternate;
}
@keyframes mss-bob {
  0%,100% { transform: translateX(-50%) translateY(0); }
  50%     { transform: translateX(-50%) translateY(-3px); }
}
@keyframes mss-smoke {
  0%   { transform: translateY(0) scale(1); opacity: 0.6; }
  100% { transform: translateY(-30px) scale(2); opacity: 0; }
}
@keyframes mss-sun {
  0%   { box-shadow: 0 0 40px 10px rgba(255,224,128,0.4); }
  100% { box-shadow: 0 0 80px 30px rgba(255,224,128,0.8); }
}
@keyframes mss-foam {
  0%,100% { transform: translateX(0) scaleY(1); }
  50%     { transform: translateX(10px) scaleY(1.5); }
}
@keyframes mss-rays {
  0%   { transform: rotate(20deg); opacity: 0.3; }
  50%  { transform: rotate(30deg); opacity: 0.5; }
  100% { transform: rotate(20deg); opacity: 0.3; }
}
@keyframes mss-land {
  0%   { transform: scaleY(1); height: 30px; }
  100% { transform: scaleY(1.1); height: 33px; }
}

/* poetic-explanation */
.scn-poetic-explanation {
  background: linear-gradient(180deg, #d4a06a 0%, #b8845a 40%, #8c6040 100%);
}
.scn-poetic-explanation .water {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #a06a4a 0%, #6a3a2a 100%);
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.5);
}
.scn-poetic-explanation .cliffs {
  position: absolute; bottom: 40%; left: 10%; right: 10%;
  height: 30%;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%);
  border-radius: 30% 30% 0 0 / 60% 60% 0 0;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.4);
}
.scn-poetic-explanation .figure-pharaoh {
  position: absolute; bottom: 25%; left: 30%; 
  width: 20px; height: 40px;
  background: #1a1008;
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform: rotate(10deg);
  animation: pex-fall 8s ease-in-out infinite;
}
.scn-poetic-explanation .chariot {
  position: absolute; bottom: 22%; left: 25%; 
  width: 30px; height: 15px;
  background: #3a2a1a;
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation: pex-fall 8s ease-in-out infinite;
}
.scn-poetic-explanation .wave-red {
  position: absolute; bottom: 30%; left: 40%; right: 40%;
  height: 20px;
  background: radial-gradient(ellipse at center, rgba(200,80,50,0.5) 0%, transparent 70%);
  filter: blur(4px);
  animation: pex-surge 12s ease-in-out infinite;
}
.scn-poetic-explanation .sun-ball {
  position: absolute; top: 15%; right: 25%;
  width: 50px; height: 50px;
  background: radial-gradient(circle, #ffd080 0%, #e8a860 50%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 80px 20px rgba(255,208,128,0.7);
  animation: pex-sun 30s ease-in-out infinite alternate;
}
.scn-poetic-explanation .golden-rays {
  position: absolute; top: 15%; right: 25%;
  width: 200px; height: 200px;
  background: radial-gradient(circle, rgba(255,208,128,0.2) 0%, transparent 70%);
  transform: rotate(20deg);
  animation: pex-rays 40s linear infinite;
}
.scn-poetic-explanation .mist {
  position: absolute; top: 10%; left: 0; right: 0; height: 50%;
  background: radial-gradient(ellipse at 30% 40%, rgba(255,224,160,0.15) 0%, transparent 70%);
  filter: blur(10px);
  animation: pex-mist 25s ease-in-out infinite;
}
@keyframes pex-fall {
  0%,100% { transform: translateY(0) rotate(10deg); }
  50%     { transform: translateY(8px) rotate(5deg); }
}
@keyframes pex-surge {
  0%   { transform: translateX(-5px) scaleX(1); opacity: 0.6; }
  50%  { transform: translateX(10px) scaleX(1.3); opacity: 0.9; }
  100% { transform: translateX(-5px) scaleX(1); opacity: 0.6; }
}
@keyframes pex-sun {
  0%   { box-shadow: 0 0 60px 10px rgba(255,208,128,0.5); }
  100% { box-shadow: 0 0 100px 30px rgba(255,208,128,0.8); }
}
@keyframes pex-rays {
  0%   { transform: rotate(20deg); opacity: 0.3; }
  50%  { transform: rotate(40deg); opacity: 0.5; }
  100% { transform: rotate(20deg); opacity: 0.3; }
}
@keyframes pex-mist {
  0%   { opacity: 0.2; }
  50%  { opacity: 0.5; }
  100% { opacity: 0.2; }
}

.scn-keep-guard {
  background: linear-gradient(180deg, #ffe8c8 0%, #f0d0a0 30%, #b8a080 60%, #665544 100%),
              radial-gradient(ellipse at 50% 0%, #fff4e0 0%, transparent 70%);
}
.scn-keep-guard .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #ffdba8 0%, #f0c080 50%, #d0a060 100%);
  animation: kg-sky 8s ease-in-out infinite alternate;
}
.scn-keep-guard .sun {
  position: absolute; top: 5%; left: 70%; width: 60px; height: 60px;
  background: radial-gradient(circle, #fffac0 0%, #ffe080 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px rgba(255,224,128,0.5);
  animation: kg-sun 6s ease-in-out infinite;
}
.scn-keep-guard .sea {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #4a6b8a 0%, #2a4a6a 100%);
  border-radius: 60% 40% 0 0 / 100% 100% 0 0;
  animation: kg-sea 12s ease-in-out infinite alternate;
}
.scn-keep-guard .deck {
  position: absolute; bottom: 10%; left: 5%; right: 5%; height: 20%;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.4);
}
.scn-keep-guard .railing {
  position: absolute; bottom: 30%; left: 10%; right: 10%; height: 4px;
  background: #3a4a3a;
  box-shadow: 0 -8px 0 #3a4a3a, 0 -16px 0 #3a4a3a;
  border-radius: 2px;
}
.scn-keep-guard .figure {
  position: absolute; bottom: 12%; left: 50%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: kg-figure 4s ease-in-out infinite;
}
.scn-keep-guard .harpoon {
  position: absolute; bottom: 18%; left: 58%; width: 4px; height: 40px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  transform: rotate(20deg);
  transform-origin: bottom center;
  animation: kg-harpoon 2s ease-in-out infinite;
}
.scn-keep-guard .shadow-deck {
  position: absolute; bottom: 10%; left: 30%; right: 30%; height: 6px;
  background: rgba(0,0,0,0.3);
  border-radius: 50%;
  filter: blur(3px);
  animation: kg-shadow 4s ease-in-out infinite;
}
@keyframes kg-sky { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes kg-sun { 0% { transform: scale(1); box-shadow: 0 0 60px 20px rgba(255,224,128,0.5); } 50% { transform: scale(1.05); box-shadow: 0 0 80px 30px rgba(255,224,128,0.6); } 100% { transform: scale(1); } }
@keyframes kg-sea { 0% { transform: translateY(0); } 50% { transform: translateY(4px); } 100% { transform: translateY(0); } }
@keyframes kg-figure { 0% { transform: translateX(-50%) rotate(0deg); } 25% { transform: translateX(-48%) rotate(2deg); } 50% { transform: translateX(-50%) rotate(0deg); } 75% { transform: translateX(-52%) rotate(-2deg); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes kg-harpoon { 0% { transform: rotate(20deg); } 50% { transform: rotate(18deg); } 100% { transform: rotate(20deg); } }
@keyframes kg-shadow { 0% { opacity: 0.3; transform: scaleX(1); } 50% { opacity: 0.5; transform: scaleX(1.1); } 100% { opacity: 0.3; transform: scaleX(1); } }

.scn-sea-cucumbers-turtles {
  background: linear-gradient(180deg, #a8d8e8 0%, #78b8d0 50%, #4890a8 100%),
              radial-gradient(ellipse at 50% 20%, #d0f0ff 0%, transparent 70%);
}
.scn-sea-cucumbers-turtles .sky-water {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #88c8e0 0%, #58a8c0 100%);
  animation: sct-sky 16s ease-in-out infinite alternate;
}
.scn-sea-cucumbers-turtles .seabed {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #6a8a5a 0%, #4a6a3a 100%);
  border-radius: 30% 70% 0 0 / 50% 90% 0 0;
  box-shadow: inset 0 20px 30px rgba(0,0,0,0.3);
}
.scn-sea-cucumbers-turtles .cucumber-1 {
  position: absolute; bottom: 22%; left: 20%; width: 30px; height: 12px;
  background: linear-gradient(90deg, #8a6a4a 0%, #6a4a2a 100%);
  border-radius: 50%;
  transform: rotate(-10deg);
  animation: sct-cuke 8s ease-in-out infinite;
}
.scn-sea-cucumbers-turtles .cucumber-2 {
  position: absolute; bottom: 25%; left: 70%; width: 24px; height: 10px;
  background: linear-gradient(90deg, #7a5a3a 0%, #5a3a1a 100%);
  border-radius: 50%;
  transform: rotate(15deg);
  animation: sct-cuke 10s ease-in-out infinite reverse;
}
.scn-sea-cucumbers-turtles .oyster {
  position: absolute; bottom: 18%; left: 45%; width: 18px; height: 14px;
  background: linear-gradient(135deg, #a0806a 0%, #806050 100%);
  border-radius: 40% 40% 50% 50%;
  box-shadow: inset -2px -2px 4px rgba(0,0,0,0.3), 0 4px 6px rgba(0,0,0,0.2);
  animation: sct-oyster 6s ease-in-out infinite;
}
.scn-sea-cucumbers-turtles .turtle {
  position: absolute; bottom: 15%; left: 30%; width: 30px; height: 20px;
  background: linear-gradient(180deg, #5a7a4a 0%, #3a5a2a 100%);
  border-radius: 50% 50% 40% 40%;
  animation: sct-turtle 14s linear infinite;
}
.scn-sea-cucumbers-turtles .bubble {
  position: absolute; bottom: 30%; left: 55%; width: 8px; height: 8px;
  background: radial-gradient(circle, rgba(255,255,255,0.6) 0%, transparent 100%);
  border-radius: 50%;
  animation: sct-bubble 4s ease-out infinite;
}
@keyframes sct-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes sct-cuke { 0% { transform: translateX(0) rotate(-10deg); } 50% { transform: translateX(8px) rotate(-5deg); } 100% { transform: translateX(0) rotate(-10deg); } }
@keyframes sct-oyster { 0% { transform: translateY(0); } 50% { transform: translateY(3px); } 100% { transform: translateY(0); } }
@keyframes sct-turtle { 0% { transform: translateX(0) translateY(0); } 25% { transform: translateX(10px) translateY(2px); } 50% { transform: translateX(20px) translateY(0); } 75% { transform: translateX(10px) translateY(-2px); } 100% { transform: translateX(0) translateY(0); } }
@keyframes sct-bubble { 0% { transform: translateY(0) scale(1); opacity: 0.6; } 100% { transform: translateY(-40px) scale(1.5); opacity: 0; } }

.scn-left-handed-shell {
  background: linear-gradient(180deg, #f0d8b0 0%, #d8b888 50%, #b89868 100%),
              radial-gradient(ellipse at 50% 80%, #ffe8c0 0%, transparent 70%);
}
.scn-left-handed-shell .bg-warm {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #f8e4c8 0%, #e0c8a0 100%);
  animation: lhs-bg 20s ease-in-out infinite alternate;
}
.scn-left-handed-shell .figure-torso {
  position: absolute; bottom: 10%; left: 25%; width: 50px; height: 80px;
  background: linear-gradient(180deg, #403020 0%, #201810 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform: rotate(-5deg);
  animation: lhs-torso 6s ease-in-out infinite;
}
.scn-left-handed-shell .arm {
  position: absolute; bottom: 30%; left: 45%; width: 12px; height: 50px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 30% 30% 40% 40% / 80% 80% 60% 60%;
  transform: rotate(15deg);
  transform-origin: top center;
  animation: lhs-arm 4s ease-in-out infinite;
}
.scn-left-handed-shell .hand {
  position: absolute; bottom: 18%; left: 48%; width: 16px; height: 18px;
  background: linear-gradient(135deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 50% 50% 50%;
  transform: rotate(20deg);
  animation: lhs-hand 4s ease-in-out infinite;
}
.scn-left-handed-shell .shell {
  position: absolute; bottom: 20%; left: 55%; width: 28px; height: 22px;
  background: linear-gradient(135deg, #e8c888 0%, #c8a868 50%, #a88848 100%);
  border-radius: 60% 50% 40% 50% / 70% 60% 50% 60%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3), inset 0 2px 4px #f8e0a0;
  transform: rotate(-15deg);
  animation: lhs-shell 3s ease-in-out infinite;
}
.scn-left-handed-shell .gleam {
  position: absolute; bottom: 22%; left: 58%; width: 8px; height: 6px;
  background: radial-gradient(circle, #fff8e0 0%, transparent 100%);
  border-radius: 50%;
  animation: lhs-gleam 2s ease-in-out infinite alternate;
}
.scn-left-handed-shell .shadow {
  position: absolute; bottom: 8%; left: 20%; right: 20%; height: 10px;
  background: rgba(0,0,0,0.2);
  border-radius: 50%;
  filter: blur(4px);
  animation: lhs-shadow 6s ease-in-out infinite;
}
@keyframes lhs-bg { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes lhs-torso { 0% { transform: rotate(-5deg); } 50% { transform: rotate(-3deg); } 100% { transform: rotate(-5deg); } }
@keyframes lhs-arm { 0% { transform: rotate(15deg); } 50% { transform: rotate(18deg); } 100% { transform: rotate(15deg); } }
@keyframes lhs-hand { 0% { transform: rotate(20deg); } 50% { transform: rotate(22deg); } 100% { transform: rotate(20deg); } }
@keyframes lhs-shell { 0% { transform: rotate(-15deg) translateY(0); } 50% { transform: rotate(-12deg) translateY(2px); } 100% { transform: rotate(-15deg) translateY(0); } }
@keyframes lhs-gleam { 0% { opacity: 0.5; } 100% { opacity: 1; } }
@keyframes lhs-shadow { 0% { opacity: 0.2; transform: scaleX(1); } 50% { opacity: 0.4; transform: scaleX(1.2); } 100% { opacity: 0.2; transform: scaleX(1); } }

.scn-shell-excitement {
  background: linear-gradient(180deg, #f8e0c0 0%, #e0c8a0 40%, #b89868 100%),
              radial-gradient(ellipse at 50% 60%, #fff0d0 0%, transparent 70%);
}
.scn-shell-excitement .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #a08060 0%, #806040 100%);
  border-radius: 20% 80% 0 0 / 40% 60% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.3);
}
.scn-shell-excitement .cliff-bg {
  position: absolute; top: 0; right: 0; width: 40%; height: 70%;
  background: linear-gradient(180deg, #b09070 0%, #907050 100%);
  border-radius: 60% 0 0 20% / 80% 0 0 40%;
  animation: se-cliff 20s ease-in-out infinite alternate;
}
.scn-shell-excitement .figure-kneeling {
  position: absolute; bottom: 20%; left: 30%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform: scale(0.9) rotate(5deg);
  animation: se-figure 5s ease-in-out infinite;
}
.scn-shell-excitement .arm-pointing {
  position: absolute; bottom: 35%; left: 38%; width: 10px; height: 45px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 30% 30% 40% 40% / 80% 80% 60% 60%;
  transform: rotate(40deg);
  transform-origin: top left;
  animation: se-arm 3s ease-in-out infinite;
}
.scn-shell-excitement .shell-target {
  position: absolute; bottom: 18%; left: 52%; width: 24px; height: 18px;
  background: linear-gradient(135deg, #e8c888 0%, #c8a868 50%, #a88848 100%);
  border-radius: 50% 40% 50% 40% / 60% 50% 70% 50%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4), inset 0 2px 4px #f8e0a0;
  transform: rotate(10deg);
  animation: se-shell 4s ease-in-out infinite;
}
.scn-shell-excitement .light-rays {
  position: absolute; bottom: 20%; left: 48%; width: 40px; height: 40px;
  background: radial-gradient(circle, rgba(255,255,200,0.3) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(8px);
  animation: se-rays 3s ease-in-out infinite alternate;
}
.scn-shell-excitement .sparkle {
  position: absolute; bottom: 22%; left: 55%; width: 6px; height: 6px;
  background: radial-gradient(circle, #fff8e0 0%, transparent 100%);
  border-radius: 50%;
  animation: se-sparkle 1.5s ease-in-out infinite;
}
@keyframes se-cliff { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes se-figure { 0% { transform: scale(0.9) rotate(5deg); } 50% { transform: scale(0.95) rotate(3deg); } 100% { transform: scale(0.9) rotate(5deg); } }
@keyframes se-arm { 0% { transform: rotate(40deg); } 50% { transform: rotate(42deg); } 100% { transform: rotate(40deg); } }
@keyframes se-shell { 0% { transform: rotate(10deg) translateY(0); } 50% { transform: rotate(12deg) translateY(2px); } 100% { transform: rotate(10deg) translateY(0); } }
@keyframes se-rays { 0% { opacity: 0.4; transform: scale(1); } 100% { opacity: 0.8; transform: scale(1.2); } }
@keyframes se-sparkle { 0% { opacity: 0; transform: scale(0.5); } 50% { opacity: 1; transform: scale(1.2); } 100% { opacity: 0; transform: scale(0.5); } }

.scn-nemo-uses-submersible {
  background: 
    linear-gradient(180deg, #facc8e 0%, #87ceeb 30%, #4682b4 60%, #1e3a5f 100%),
    radial-gradient(ellipse at 50% 0%, #fffbe0 0%, transparent 60%);
}
.scn-nemo-uses-submersible .water-deep {
  position: absolute; inset: 50% 0 0 0;
  background: linear-gradient(180deg, #1e3a5f 0%, #0d1b30 100%);
  animation: ns-water-deep 10s ease-in-out infinite alternate;
}
.scn-nemo-uses-submersible .water-mid {
  position: absolute; inset: 25% 0 35% 0;
  background: linear-gradient(180deg, rgba(135,206,235,0.3) 0%, rgba(70,130,180,0.6) 100%);
  animation: ns-water-mid 8s ease-in-out infinite alternate;
}
.scn-nemo-uses-submersible .light-rays {
  position: absolute; inset: 0 20% 50% 20%;
  background: radial-gradient(ellipse at 50% 0%, rgba(255,255,220,0.2) 0%, transparent 70%);
  animation: ns-light-rays 12s ease-in-out infinite alternate;
}
.scn-nemo-uses-submersible .submersible {
  position: absolute; bottom: 35%; left: 50%; width: 80px; height: 60px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse 60% 70% at 50% 50%, #b0c4de 0%, #7a8ba8 60%, #3a4a5a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: inset -4px -4px 10px rgba(0,0,0,0.4), 0 4px 12px rgba(0,0,0,0.3);
  animation: ns-submersible 6s ease-in-out infinite alternate;
}
.scn-nemo-uses-submersible .porthole {
  position: absolute; bottom: 40%; left: 47%; width: 18px; height: 18px;
  background: radial-gradient(circle, #b0e0e6 0%, #4682b4 60%, #1e3a5f 100%);
  border-radius: 50%;
  border: 3px solid #4a5a6a;
  box-shadow: 0 0 10px rgba(70,130,180,0.5);
  animation: ns-porthole 4s ease-in-out infinite alternate;
}
.scn-nemo-uses-submersible .bubble-1 {
  position: absolute; bottom: 45%; left: 40%; width: 6px; height: 6px;
  background: rgba(255,255,255,0.3);
  border-radius: 50%;
  animation: ns-bubble-1 3s ease-in-out infinite;
}
.scn-nemo-uses-submersible .bubble-2 {
  position: absolute; bottom: 42%; left: 55%; width: 4px; height: 4px;
  background: rgba(255,255,255,0.25);
  border-radius: 50%;
  animation: ns-bubble-2 4s ease-in-out infinite 1s;
}
.scn-nemo-uses-submersible .fish {
  position: absolute; bottom: 30%; left: 20%; width: 20px; height: 10px;
  background: radial-gradient(ellipse at 30% 50%, #f0c040 0%, #c08030 100%);
  border-radius: 50% 50% 50% 50% / 40% 40% 60% 60%;
  transform: rotate(-15deg);
  animation: ns-fish 8s linear infinite;
}
@keyframes ns-water-deep { 0% { opacity: 0.7; } 50% { opacity: 0.85; } 100% { opacity: 0.7; } }
@keyframes ns-water-mid   { 0% { transform: translateY(0); } 50% { transform: translateY(2px); } 100% { transform: translateY(-1px); } }
@keyframes ns-light-rays  { 0% { opacity: 0.3; transform: scale(1); } 50% { opacity: 0.6; transform: scale(1.05); } 100% { opacity: 0.3; transform: scale(0.95); } }
@keyframes ns-submersible { 0% { transform: translateX(-50%) translateY(0) rotate(0deg); } 50% { transform: translateX(-50%) translateY(-4px) rotate(2deg); } 100% { transform: translateX(-50%) translateY(2px) rotate(-1deg); } }
@keyframes ns-porthole    { 0% { box-shadow: 0 0 8px rgba(70,130,180,0.5); } 50% { box-shadow: 0 0 16px rgba(70,130,180,0.8); } 100% { box-shadow: 0 0 10px rgba(70,130,180,0.4); } }
@keyframes ns-bubble-1    { 0% { transform: translate(0,0) scale(1); opacity: 0.3; } 50% { transform: translate(-5px,-15px) scale(0.8); opacity: 0.6; } 100% { transform: translate(-10px,-30px) scale(0.5); opacity: 0; } }
@keyframes ns-bubble-2    { 0% { transform: translate(0,0) scale(1); opacity: 0.3; } 50% { transform: translate(4px,-12px) scale(0.9); opacity: 0.5; } 100% { transform: translate(8px,-25px) scale(0.6); opacity: 0; } }
@keyframes ns-fish        { 0% { transform: translateX(0) rotate(-15deg); } 50% { transform: translateX(30px) rotate(-10deg); } 100% { transform: translateX(60px) rotate(-5deg); } }

.scn-passion-for-experiments {
  background:
    linear-gradient(180deg, #f8e6c0 0%, #ede0c8 30%, #d4c0a0 60%, #b8a080 100%),
    radial-gradient(ellipse at 50% 30%, #fff8e0 0%, transparent 80%);
}
.scn-passion-for-experiments .room-bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #e0d0b0 0%, #c8b898 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,0.15);
}
.scn-passion-for-experiments .table {
  position: absolute; bottom: 15%; left: 20%; right: 20%; height: 20%;
  background: linear-gradient(180deg, #8b7355 0%, #5a4a3a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
}
.scn-passion-for-experiments .instrument {
  position: absolute; bottom: 28%; left: 40%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #c0b090 0%, #908070 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%;
  box-shadow: inset 0 4px 8px rgba(255,255,255,0.2), 0 2px 6px rgba(0,0,0,0.3);
  animation: pe-instrument 6s ease-in-out infinite alternate;
}
.scn-passion-for-experiments .flask {
  position: absolute; bottom: 30%; left: 30%; width: 20px; height: 30px;
  background: linear-gradient(180deg, rgba(200,230,255,0.5) 0%, rgba(100,150,200,0.6) 100%);
  border-radius: 0 0 50% 50% / 0 0 40% 40%;
  border: 2px solid #808080;
  animation: pe-flask 8s ease-in-out infinite;
}
.scn-passion-for-experiments .figure {
  position: absolute; bottom: 10%; left: 45%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pe-figure 4s ease-in-out infinite alternate;
}
.scn-passion-for-experiments .porthole-light {
  position: absolute; top: 10%; right: 15%; width: 30px; height: 30px;
  background: radial-gradient(circle, #fff8e0 0%, #f0d080 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 10px rgba(240,208,128,0.3);
  animation: pe-porthole-light 9s ease-in-out infinite alternate;
}
.scn-passion-for-experiments .steam {
  position: absolute; bottom: 32%; left: 35%; width: 12px; height: 8px;
  background: radial-gradient(ellipse, rgba(255,255,255,0.4) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(3px);
  animation: pe-steam 5s ease-in-out infinite;
}
@keyframes pe-instrument { 0% { transform: scaleY(1) rotate(0deg); } 50% { transform: scaleY(1.05) rotate(1deg); } 100% { transform: scaleY(0.98) rotate(-1deg); } }
@keyframes pe-flask      { 0% { transform: translateY(0) scale(1); opacity: 0.7; } 50% { transform: translateY(-2px) scale(1.02); opacity: 0.9; } 100% { transform: translateY(0) scale(0.98); opacity: 0.7; } }
@keyframes pe-figure     { 0% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(4px) rotate(2deg); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes pe-porthole-light { 0% { opacity: 0.5; box-shadow: 0 0 20px 5px rgba(240,208,128,0.2); } 50% { opacity: 0.8; box-shadow: 0 0 50px 15px rgba(240,208,128,0.4); } 100% { opacity: 0.6; box-shadow: 0 0 30px 8px rgba(240,208,128,0.3); } }
@keyframes pe-steam      { 0% { transform: translate(0,0) scale(0.8); opacity: 0.4; } 50% { transform: translate(2px,-8px) scale(1.2); opacity: 0.6; } 100% { transform: translate(-1px,-16px) scale(0.5); opacity: 0; } }

.scn-density-data {
  background:
    linear-gradient(180deg, #b0c4de 0%, #7a8ba8 30%, #4a5a6a 60%, #2a3a4a 100%),
    radial-gradient(ellipse at 50% 0%, #d0e0f0 0%, transparent 70%);
}
.scn-density-data .water-column {
  position: absolute; top: 10%; bottom: 10%; left: 35%; right: 35%;
  background: linear-gradient(180deg, #9ab0c8 0%, #5a7a8a 30%, #3a5a6a 60%, #1a2a3a 100%);
  border-radius: 8px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.3);
}
.scn-density-data .layer-1 {
  position: absolute; top: 12%; left: 38%; right: 38%; height: 15%;
  background: linear-gradient(180deg, rgba(200,220,240,0.3) 0%, rgba(150,180,210,0.5) 100%);
  border-radius: 2px;
  animation: dd-layer-1 14s ease-in-out infinite alternate;
}
.scn-density-data .layer-2 {
  position: absolute; top: 30%; left: 38%; right: 38%; height: 15%;
  background: linear-gradient(180deg, rgba(120,160,200,0.4) 0%, rgba(80,120,160,0.6) 100%);
  border-radius: 2px;
  animation: dd-layer-2 18s ease-in-out infinite alternate;
}
.scn-density-data .layer-3 {
  position: absolute; top: 48%; left: 38%; right: 38%; height: 15%;
  background: linear-gradient(180deg, rgba(70,110,150,0.5) 0%, rgba(40,70,100,0.7) 100%);
  border-radius: 2px;
  animation: dd-layer-3 12s ease-in-out infinite alternate;
}
.scn-density-data .layer-4 {
  position: absolute; top: 66%; left: 38%; right: 38%; height: 15%;
  background: linear-gradient(180deg, rgba(30,60,90,0.6) 0%, rgba(10,30,50,0.8) 100%);
  border-radius: 2px;
  animation: dd-layer-4 16s ease-in-out infinite alternate;
}
.scn-density-data .hydrometer {
  position: absolute; top: 50%; left: 50%; width: 8px; height: 30px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #c0d0e0 0%, #8090a0 100%);
  border-radius: 4px 4px 8px 8px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: dd-hydrometer 20s ease-in-out infinite alternate;
}
.scn-density-data .scale-mark {
  position: absolute; top: 55%; left: 48%; width: 4px; height: 4px;
  background: #e0e0e0;
  border-radius: 1px;
  box-shadow: 0 4px 0 #e0e0e0, 0 8px 0 #e0e0e0;
  animation: dd-scale-mark 20s ease-in-out infinite alternate;
}
@keyframes dd-layer-1 { 0% { opacity: 0.3; transform: translateY(0); } 50% { opacity: 0.5; transform: translateY(2px); } 100% { opacity: 0.4; transform: translateY(-1px); } }
@keyframes dd-layer-2 { 0% { opacity: 0.4; transform: translateY(0); } 50% { opacity: 0.6; transform: translateY(-3px); } 100% { opacity: 0.5; transform: translateY(2px); } }
@keyframes dd-layer-3 { 0% { opacity: 0.5; transform: translateY(0); } 50% { opacity: 0.7; transform: translateY(4px); } 100% { opacity: 0.6; transform: translateY(-2px); } }
@keyframes dd-layer-4 { 0% { opacity: 0.6; transform: translateY(0); } 50% { opacity: 0.8; transform: translateY(-2px); } 100% { opacity: 0.7; transform: translateY(3px); } }
@keyframes dd-hydrometer { 0% { transform: translateX(-50%) translateY(0) rotate(0deg); } 50% { transform: translateX(-50%) translateY(8px) rotate(2deg); } 100% { transform: translateX(-50%) translateY(-5px) rotate(-1deg); } }
@keyframes dd-scale-mark { 0% { transform: translateY(0); } 50% { transform: translateY(8px); } 100% { transform: translateY(-5px); } }

.scn-nemo-reveals-secrets {
  background:
    linear-gradient(180deg, #2a3a4a 0%, #4a5a6a 30%, #6a7a8a 60%, #8a9aaa 100%),
    radial-gradient(ellipse at 60% 40%, #b0c4de 0%, transparent 70%);
}
.scn-nemo-reveals-secrets .lounge-wall {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 80% 20%, #3a4a5a 0%, #1a2a3a 100%);
  box-shadow: inset 0 0 80px rgba(0,0,0,0.5);
}
.scn-nemo-reveals-secrets .window-sea {
  position: absolute; top: 15%; right: 10%; width: 40%; height: 50%;
  background: linear-gradient(180deg, #2a4a6a 0%, #1a3a5a 50%, #0a2a4a 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 20% 20%;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.4);
  animation: rs-window-sea 12s ease-in-out infinite alternate;
}
.scn-nemo-reveals-secrets .figure {
  position: absolute; bottom: 20%; left: 30%; width: 22px; height: 55px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rs-figure 5s ease-in-out infinite alternate;
}
.scn-nemo-reveals-secrets .arm-gesture {
  position: absolute; bottom: 35%; left: 33%; width: 8px; height: 20px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 40% 40%;
  transform-origin: bottom left;
  transform: rotate(-40deg);
  animation: rs-arm 7s ease-in-out infinite alternate;
}
.scn-nemo-reveals-secrets .globe {
  position: absolute; bottom: 30%; left: 55%; width: 30px; height: 30px;
  background: radial-gradient(circle at 40% 40%, #4a7a9a 0%, #2a5a7a 60%, #1a3a4a 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px rgba(70,130,180,0.4), 0 4px 8px rgba(0,0,0,0.3);
  animation: rs-globe 10s ease-in-out infinite alternate;
}
.scn-nemo-reveals-secrets .map {
  position: absolute; bottom: 25%; left: 50%; width: 40px; height: 30px;
  background: linear-gradient(135deg, #c8b898 0%, #a08870 100%);
  border-radius: 4px;
  transform: rotate(-10deg);
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: rs-map 8s ease-in-out infinite alternate;
}
.scn-nemo-reveals-secrets .light-spot {
  position: absolute; top: 30%; left: 40%; width: 60px; height: 60px;
  background: radial-gradient(circle, rgba(220,240,255,0.2) 0%, transparent 60%);
  border-radius: 50%;
  filter: blur(8px);
  animation: rs-light-spot 6s ease-in-out infinite alternate;
}
@keyframes rs-window-sea { 0% { opacity: 0.6; background-position: 0 0; } 50% { opacity: 0.8; background-position: 2px 0; } 100% { opacity: 0.7; background-position: -2px 0; } }
@keyframes rs-figure     { 0% { transform: translateX(0) rotate(-1deg); } 50% { transform: translateX(3px) rotate(1deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes rs-arm        { 0% { transform: rotate(-40deg); } 50% { transform: rotate(-30deg); } 100% { transform: rotate(-45deg); } }
@keyframes rs-globe      { 0% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.05) rotate(10deg); } 100% { transform: scale(0.98) rotate(-5deg); } }
@keyframes rs-map        { 0% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-8deg) translateY(-2px); } 100% { transform: rotate(-12deg) translateY(1px); } }
@keyframes rs-light-spot { 0% { opacity: 0.2; box-shadow: 0 0 30px rgba(220,240,255,0.1); } 50% { opacity: 0.4; box-shadow: 0 0 50px rgba(220,240,255,0.3); } 100% { opacity: 0.3; box-shadow: 0 0 40px rgba(220,240,255,0.2); } }

.scn-preserving-plan {
  background:
    linear-gradient(180deg, #1a1208 0%, #2a1e0e 40%, #3a2a14 80%, #1e1408 100%),
    radial-gradient(ellipse at 50% 100%, #3a2a14 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-preserving-plan .cave-bg {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(20,14,6,0.8) 0%, transparent 50%);
  animation: pp-cave 12s ease-in-out infinite alternate;
}
.scn-preserving-plan .fire {
  position: absolute;
  bottom: 20%;
  left: 30%;
  width: 60px;
  height: 80px;
  background: radial-gradient(ellipse at 50% 30%, #ff8c42 0%, #d45a2a 40%, #7a301a 80%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  filter: blur(2px);
  box-shadow: 0 0 40px 20px #ff6b2b, 0 0 80px 40px rgba(255,107,43,0.3);
  animation: pp-fire 3s ease-in-out infinite;
}
.scn-preserving-plan .table {
  position: absolute;
  bottom: 25%;
  left: 40%;
  width: 120px;
  height: 8px;
  background: linear-gradient(90deg, #4a3020 0%, #6a4a32 50%, #4a3020 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-preserving-plan .breadfruit {
  position: absolute;
  bottom: 30%;
  left: 45%;
  width: 28px;
  height: 28px;
  background: radial-gradient(circle at 30% 30%, #b8a080 0%, #7a6040 100%);
  border-radius: 50%;
  transform: rotate(-10deg);
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: pp-bob 6s ease-in-out infinite;
}
.scn-preserving-plan .figure {
  position: absolute;
  bottom: 22%;
  left: 20%;
  width: 24px;
  height: 48px;
  background: linear-gradient(180deg, #2a2010 0%, #1a1208 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: center bottom;
  animation: pp-figure 8s ease-in-out infinite alternate;
}
.scn-preserving-plan .basket {
  position: absolute;
  bottom: 24%;
  right: 25%;
  width: 40px;
  height: 30px;
  background: linear-gradient(180deg, #6a4a32 0%, #4a3020 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: pp-basket-sway 10s ease-in-out infinite;
}
.scn-preserving-plan .shelf {
  position: absolute;
  bottom: 40%;
  left: 50%;
  width: 80px;
  height: 4px;
  background: linear-gradient(90deg, #3a2818 0%, #5a4028 50%, #3a2818 100%);
  border-radius: 2px;
  transform: translateX(-50%);
}
@keyframes pp-cave { 0% { opacity: 0.6; } 50% { opacity: 0.8; } 100% { opacity: 0.5; } }
@keyframes pp-fire { 0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.05) translateY(-4px); } 100% { transform: scaleY(0.95) translateY(2px); } }
@keyframes pp-bob { 0%, 100% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-8deg) translateY(-3px); } }
@keyframes pp-figure { 0% { transform: rotate(-2deg); } 50% { transform: rotate(0deg) translateY(-2px); } 100% { transform: rotate(2deg); } }
@keyframes pp-basket-sway { 0%, 100% { transform: rotate(0deg); } 50% { transform: rotate(2deg); } }

.scn-need-fruit-vegetables {
  background:
    linear-gradient(180deg, #1c1008 0%, #2a1a0e 40%, #3a2a18 80%, #1a0e06 100%),
    radial-gradient(ellipse at 60% 100%, #3a2a18 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-need-fruit-vegetables .interior-bg {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(10,6,2,0.6) 0%, transparent 60%);
  animation: nfv-bg 15s ease-in-out infinite alternate;
}
.scn-need-fruit-vegetables .lantern-glow {
  position: absolute;
  bottom: 30%;
  left: 50%;
  width: 20px;
  height: 20px;
  background: radial-gradient(circle, #ffcc80 0%, #d48730 60%);
  border-radius: 50%;
  box-shadow: 0 0 30px 15px #ffa540, 0 0 60px 30px rgba(255,165,64,0.4);
  animation: nfv-glow 4s ease-in-out infinite alternate;
}
.scn-need-fruit-vegetables .figure-standing {
  position: absolute;
  bottom: 18%;
  left: 30%;
  width: 22px;
  height: 50px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0e06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: center bottom;
  animation: nfv-figure 7s ease-in-out infinite alternate;
}
.scn-need-fruit-vegetables .jackfruit {
  position: absolute;
  bottom: 22%;
  left: 45%;
  width: 32px;
  height: 38px;
  background: radial-gradient(ellipse at 40% 30%, #b08a60 0%, #7a5a38 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.5);
  animation: nfv-bob 9s ease-in-out infinite;
}
.scn-need-fruit-vegetables .cutting-board {
  position: absolute;
  bottom: 20%;
  left: 55%;
  width: 50px;
  height: 6px;
  background: linear-gradient(90deg, #5a3a22 0%, #7a5430 30%, #5a3a22 100%);
  border-radius: 3px;
  box-shadow: 0 3px 6px rgba(0,0,0,0.4);
}
.scn-need-fruit-vegetables .pile-leaves {
  position: absolute;
  bottom: 16%;
  left: 35%;
  width: 40px;
  height: 20px;
  background: radial-gradient(ellipse at 50% 100%, #3a5a2a 0%, #1a2a12 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  transform: rotate(10deg);
  animation: nfv-leaves 12s ease-in-out infinite;
}
.scn-need-fruit-vegetables .crate {
  position: absolute;
  bottom: 12%;
  right: 20%;
  width: 60px;
  height: 40px;
  background: linear-gradient(180deg, #4a3220 0%, #2a1a0e 100%);
  border-radius: 5px;
  box-shadow: 0 4px 10px rgba(0,0,0,0.3);
  animation: nfv-crate-sway 11s ease-in-out infinite;
}
@keyframes nfv-bg { 0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.6; } }
@keyframes nfv-glow { 0% { transform: scale(0.9); opacity: 0.8; } 50% { transform: scale(1.1); opacity: 1; } 100% { transform: scale(0.95); opacity: 0.9; } }
@keyframes nfv-figure { 0% { transform: rotate(-3deg); } 50% { transform: rotate(0deg) translateY(-2px); } 100% { transform: rotate(3deg); } }
@keyframes nfv-bob { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
@keyframes nfv-leaves { 0%, 100% { transform: rotate(10deg); } 50% { transform: rotate(15deg); } }
@keyframes nfv-crate-sway { 0%, 100% { transform: rotate(0deg); } 50% { transform: rotate(1deg); } }

.scn-foraging-bananas {
  background:
    linear-gradient(180deg, #c8d8b0 0%, #a0b88a 30%, #7a9a6a 60%, #4a6a3a 100%),
    radial-gradient(ellipse at 70% 20%, #f0e8a0 0%, transparent 50%);
  position: relative;
  overflow: hidden;
}
.scn-foraging-bananas .sky-sun {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 40%;
  background: linear-gradient(180deg, #f0e8c0 0%, #d0d8b0 100%);
  animation: fb-sky 20s ease-in-out infinite alternate;
}
.scn-foraging-bananas .tree-trunk {
  position: absolute;
  bottom: 10%;
  left: 30%;
  width: 20px;
  height: 70%;
  background: linear-gradient(90deg, #6a4a2a 0%, #8a6a3a 50%, #6a4a2a 100%);
  border-radius: 8px;
  transform-origin: bottom center;
  animation: fb-trunk 30s linear infinite;
}
.scn-foraging-bananas .banana-bunch {
  position: absolute;
  bottom: 55%;
  left: 38%;
  width: 40px;
  height: 50px;
  background: radial-gradient(ellipse at 30% 50%, #f0d060 0%, #c8a030 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.2);
  transform: rotate(-10deg);
  animation: fb-bunch 5s ease-in-out infinite;
}
.scn-foraging-bananas .figure-picking {
  position: absolute;
  bottom: 12%;
  left: 20%;
  width: 22px;
  height: 48px;
  background: linear-gradient(180deg, #2a2018 0%, #1a120c 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: center bottom;
  animation: fb-figure 8s ease-in-out infinite alternate;
}
.scn-foraging-bananas .ground-path {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 20%;
  background: linear-gradient(180deg, #5a7a4a 0%, #3a5a2a 100%);
  border-radius: 40% 40% 0 0 / 30% 30% 0 0;
}
.scn-foraging-bananas .basket-ground {
  position: absolute;
  bottom: 8%;
  right: 25%;
  width: 35px;
  height: 25px;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a22 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
  animation: fb-basket 10s ease-in-out infinite;
}
.scn-foraging-bananas .leaf-shadow {
  position: absolute;
  bottom: 18%;
  left: 50%;
  width: 60px;
  height: 20px;
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.15) 0%, transparent 70%);
  filter: blur(3px);
  animation: fb-leaf 15s ease-in-out infinite alternate;
}
@keyframes fb-sky { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes fb-trunk { 0% { transform: rotate(0deg); } 100% { transform: rotate(2deg); } }
@keyframes fb-bunch { 0%, 100% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-12deg) translateY(-2px); } }
@keyframes fb-figure { 0% { transform: rotate(-2deg); } 50% { transform: rotate(0deg) translateY(-2px); } 100% { transform: rotate(2deg); } }
@keyframes fb-basket { 0%, 100% { transform: rotate(0deg); } 50% { transform: rotate(2deg); } }
@keyframes fb-leaf { 0% { transform: translateX(0); } 100% { transform: translateX(8px); } }

.scn-jackfruit-mangoes-pineapples {
  background:
    linear-gradient(180deg, #d0c8a0 0%, #b8a880 30%, #a09070 60%, #887860 100%),
    radial-gradient(ellipse at 80% 30%, #f0e8c0 0%, transparent 60%);
  position: relative;
  overflow: hidden;
}
.scn-jackfruit-mangoes-pineapples .ground-cloth {
  position: absolute;
  bottom: 0;
  left: 5%;
  right: 5%;
  height: 40%;
  background: linear-gradient(180deg, #7a6a4a 0%, #5a4a32 100%);
  border-radius: 10% 10% 0 0 / 20% 20% 0 0;
}
.scn-jackfruit-mangoes-pineapples .jackfruit-big {
  position: absolute;
  bottom: 20%;
  left: 20%;
  width: 60px;
  height: 50px;
  background: radial-gradient(ellipse at 40% 30%, #b08a5a 0%, #7a5a38 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.3);
  transform: rotate(-5deg);
  animation: jmp-bob 8s ease-in-out infinite;
}
.scn-jackfruit-mangoes-pineapples .mango-pile {
  position: absolute;
  bottom: 22%;
  left: 45%;
  width: 80px;
  height: 35px;
  background: radial-gradient(ellipse at 30% 50%, #e8a840 0%, #c08030 60%, #a06820 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.2);
  animation: jmp-mango 12s ease-in-out infinite;
}
.scn-jackfruit-mangoes-pineapples .pineapple {
  position: absolute;
  bottom: 18%;
  left: 65%;
  width: 35px;
  height: 45px;
  background: radial-gradient(ellipse at 30% 40%, #d0a040 0%, #a08030 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  transform: rotate(15deg);
  box-shadow: 0 6px 14px rgba(0,0,0,0.2);
  animation: jmp-pine 10s ease-in-out infinite;
}
.scn-jackfruit-mangoes-pineapples .pineapple2 {
  position: absolute;
  bottom: 15%;
  left: 72%;
  width: 30px;
  height: 38px;
  background: radial-gradient(ellipse at 30% 40%, #d0a040 0%, #a08030 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  transform: rotate(-10deg);
  box-shadow: 0 4px 10px rgba(0,0,0,0.2);
  animation: jmp-pine2 14s ease-in-out infinite;
}
.scn-jackfruit-mangoes-pineapples .leaf-decor {
  position: absolute;
  bottom: 28%;
  left: 50%;
  width: 70px;
  height: 15px;
  background: radial-gradient(ellipse at 50% 50%, #4a7a3a 0%, #2a5a1a 100%);
  border-radius: 50%;
  filter: blur(1px);
  animation: jmp-leaf 18s ease-in-out infinite alternate;
}
.scn-jackfruit-mangoes-pineapples .basket-corner {
  position: absolute;
  bottom: 12%;
  right: 10%;
  width: 50px;
  height: 30px;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a22 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.3);
  animation: jmp-basket 15s ease-in-out infinite;
}
.scn-jackfruit-mangoes-pineapples .sun-ray {
  position: absolute;
  top: 5%;
  left: 30%;
  width: 120px;
  height: 60px;
  background: linear-gradient(180deg, rgba(255,255,200,0.3) 0%, transparent 100%);
  filter: blur(15px);
  animation: jmp-ray 25s linear infinite;
}
@keyframes jmp-bob { 0%, 100% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-4px); } }
@keyframes jmp-mango { 0%, 100% { transform: rotate(0deg); } 50% { transform: rotate(2deg); } }
@keyframes jmp-pine { 0%, 100% { transform: rotate(15deg) translateY(0); } 50% { transform: rotate(10deg) translateY(-3px); } }
@keyframes jmp-pine2 { 0%, 100% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-15deg) translateY(-2px); } }
@keyframes jmp-leaf { 0% { transform: rotate(-5deg); } 100% { transform: rotate(5deg); } }
@keyframes jmp-basket { 0%, 100% { transform: rotate(0deg); } 50% { transform: rotate(2deg); } }
@keyframes jmp-ray { 0% { transform: translateX(-30px); } 100% { transform: translateX(40px); } }

/* nemo-agitated */
.scn-nemo-agitated {
  background:
    linear-gradient(180deg, #5a6e7a 0%, #3c4a55 30%, #2a3740 70%, #1f2a30 100%),
    radial-gradient(ellipse at 30% 40%, rgba(120,140,155,0.15) 0%, transparent 80%);
}
.scn-nemo-agitated .scn-na-sky { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #708090 0%, #4a5a65 100%); animation: na-sky 14s ease-in-out infinite alternate; }
.scn-nemo-agitated .scn-na-sea { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #2b3b48 0%, #1d2a36 100%); border-radius:0 0 30% 30% / 0 0 10% 10%; animation: na-sea 10s ease-in-out infinite; }
.scn-nemo-agitated .scn-na-deck { position:absolute; bottom:28%; left:10%; right:10%; height:6%; background: linear-gradient(180deg, #3a4a56 0%, #2a3a46 100%); border-radius:4px; box-shadow:0 -2px 6px rgba(0,0,0,0.4); }
.scn-nemo-agitated .scn-na-fog-a { position:absolute; top:10%; left:-10%; width:120vw; height:30%; background: linear-gradient(90deg, transparent 0%, rgba(180,195,210,0.12) 30%, rgba(180,195,210,0.2) 70%, transparent 100%); filter: blur(20px); animation: na-fog-a 40s linear infinite; }
.scn-nemo-agitated .scn-na-fog-b { position:absolute; bottom:30%; left:-20%; width:140vw; height:25%; background: linear-gradient(90deg, transparent 0%, rgba(160,175,190,0.1) 40%, rgba(160,175,190,0.18) 80%, transparent 100%); filter: blur(25px); animation: na-fog-b 55s linear infinite reverse; }
.scn-nemo-agitated .scn-na-figure { position:absolute; bottom:34%; left:50%; width:28px; height:80px; transform:translateX(-50%); background: linear-gradient(180deg, #1a242e 0%, #0e141c 100%); border-radius: 50% 50% 40% 40% / 40% 40% 60% 60%; animation: na-figure 5s ease-in-out infinite; }
.scn-nemo-agitated .scn-na-spyglass { position:absolute; bottom:42%; left:52%; width:8px; height:30px; background: linear-gradient(180deg, #5a6e7a 0%, #3a4a56 100%); border-radius:2px; transform-origin: 50% 80%; animation: na-spyglass 3s ease-in-out infinite alternate; }
.scn-nemo-agitated .scn-na-agitate { position:absolute; bottom:38%; left:40%; width:40px; height:10px; border-top:1px dashed rgba(180,200,220,0.3); animation: na-agitate 2s ease-in-out infinite; }
@keyframes na-sky { 0% { opacity:0.8 } 50% { opacity:0.95 } 100% { opacity:0.75 } }
@keyframes na-sea { 0%,100% { transform:translateY(0) } 50% { transform:translateY(-4px) } }
@keyframes na-fog-a { 0% { transform:translateX(0) } 100% { transform:translateX(100vw) } }
@keyframes na-fog-b { 0% { transform:translateX(0) } 100% { transform:translateX(-100vw) } }
@keyframes na-figure { 0%,100% { transform:translateX(-50%) rotate(0deg) } 30% { transform:translateX(-48%) rotate(-1deg) } 70% { transform:translateX(-52%) rotate(1deg) } }
@keyframes na-spyglass { 0% { transform:rotate(-8deg) } 50% { transform:rotate(5deg) } 100% { transform:rotate(-8deg) } }
@keyframes na-agitate { 0%,100% { opacity:0.2 } 50% { opacity:0.6 } }

/* aronnax-tries-see */
.scn-aronnax-tries-see {
  background:
    linear-gradient(180deg, #6b7b88 0%, #4a5a65 40%, #2a3a44 100%),
    radial-gradient(ellipse at 50% 60%, rgba(130,150,170,0.1) 0%, transparent 80%);
}
.scn-aronnax-tries-see .scn-ar-sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #8899aa 0%, #5a6a7a 100%); animation: ar-sky 16s ease-in-out infinite alternate; }
.scn-aronnax-tries-see .scn-ar-sea { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #2b3b48 0%, #192530 100%); border-radius:0 0 20% 20% / 0 0 5% 5%; animation: ar-sea 12s ease-in-out infinite; }
.scn-aronnax-tries-see .scn-ar-horizon { position:absolute; top:50%; left:5%; right:5%; height:2px; background: rgba(200,215,230,0.3); animation: ar-horizon 4s ease-in-out infinite; }
.scn-aronnax-tries-see .scn-ar-fog { position:absolute; top:10%; left:-10%; width:120vw; height:40%; background: linear-gradient(90deg, transparent 0%, rgba(190,205,220,0.08) 30%, rgba(190,205,220,0.15) 70%, transparent 100%); filter: blur(30px); animation: ar-fog 45s linear infinite; }
.scn-aronnax-tries-see .scn-ar-figure { position:absolute; bottom:30%; left:40%; width:24px; height:70px; background: linear-gradient(180deg, #1d2a36 0%, #0e141c 100%); border-radius: 50% 50% 40% 40% / 40% 40% 60% 60%; animation: ar-figure 6s ease-in-out infinite; }
.scn-aronnax-tries-see .scn-ar-spyglass { position:absolute; bottom:38%; left:42%; width:6px; height:28px; background: linear-gradient(180deg, #4a5a65 0%, #2a3a44 100%); border-radius:2px; transform-origin:50% 85%; animation: ar-spyglass 3s ease-in-out infinite alternate; }
.scn-aronnax-tries-see .scn-ar-lens { position:absolute; bottom:50%; left:43%; width:4px; height:4px; background: radial-gradient(circle, rgba(200,220,240,0.7) 0%, transparent 70%); border-radius:50%; animation: ar-lens 2s ease-in-out infinite alternate; }
@keyframes ar-sky { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes ar-sea { 0%,100% { transform:translateY(0) } 50% { transform:translateY(-3px) } }
@keyframes ar-horizon { 0%,100% { opacity:0.2 } 50% { opacity:0.5 } }
@keyframes ar-fog { 0% { transform:translateX(0) } 100% { transform:translateX(100vw) } }
@keyframes ar-figure { 0%,100% { transform:translateX(0) rotate(0deg) } 50% { transform:translateX(4px) rotate(1deg) } }
@keyframes ar-spyglass { 0% { transform:rotate(-10deg) } 50% { transform:rotate(8deg) } 100% { transform:rotate(-10deg) } }
@keyframes ar-lens { 0% { opacity:0.4; transform:scale(0.8) } 100% { opacity:1; transform:scale(1.2) } }

/* chief-officer-nevrous */
.scn-chief-officer-nevrous {
  background:
    linear-gradient(180deg, #4a5a65 0%, #2a3a44 30%, #1f2a30 70%, #141a20 100%),
    radial-gradient(ellipse at 60% 30%, rgba(100,120,140,0.1) 0%, transparent 70%);
}
.scn-chief-officer-nevrous .scn-co-sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #6b7b88 0%, #3c4a55 100%); animation: co-sky 18s ease-in-out infinite alternate; }
.scn-chief-officer-nevrous .scn-co-sea { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #1d2a36 0%, #0e141c 100%); border-radius:0 0 25% 25% / 0 0 8% 8%; animation: co-sea 8s ease-in-out infinite; }
.scn-chief-officer-nevrous .scn-co-deck { position:absolute; bottom:30%; left:5%; right:5%; height:5%; background: linear-gradient(180deg, #2a3a44 0%, #1a242e 100%); border-radius:2px; }
.scn-chief-officer-nevrous .scn-co-figure { position:absolute; bottom:34%; left:30%; width:22px; height:72px; background: linear-gradient(180deg, #1a242e 0%, #0e141c 100%); border-radius: 50% 50% 40% 40% / 40% 40% 60% 60%; animation: co-figure 4s ease-in-out infinite; }
.scn-chief-officer-nevrous .scn-co-ghost1 { position:absolute; bottom:34%; left:45%; width:22px; height:72px; background: rgba(26,36,46,0.2); border-radius: 50% 50% 40% 40% / 40% 40% 60% 60%; filter: blur(2px); animation: co-ghost1 4s ease-in-out infinite; }
.scn-chief-officer-nevrous .scn-co-ghost2 { position:absolute; bottom:34%; left:60%; width:22px; height:72px; background: rgba(26,36,46,0.1); border-radius: 50% 50% 40% 40% / 40% 40% 60% 60%; filter: blur(4px); animation: co-ghost2 4s ease-in-out infinite; }
.scn-chief-officer-nevrous .scn-co-spyglass { position:absolute; bottom:42%; left:32%; width:6px; height:26px; background: linear-gradient(180deg, #3a4a56 0%, #1f2a30 100%); border-radius:2px; transform-origin:50% 80%; animation: co-spyglass 2s ease-in-out infinite alternate; }
.scn-chief-officer-nevrous .scn-co-stamp { position:absolute; bottom:30%; left:35%; width:16px; height:4px; background: rgba(100,120,140,0.3); border-radius:50%; animation: co-stamp 1.5s ease-in-out infinite; }
@keyframes co-sky { 0% { opacity:0.75 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes co-sea { 0%,100% { transform:translateY(0) } 50% { transform:translateY(-5px) } }
@keyframes co-figure { 0% { transform:translateX(0) rotate(0deg) } 25% { transform:translateX(20px) rotate(1deg) } 50% { transform:translateX(40px) rotate(0deg) } 75% { transform:translateX(20px) rotate(-1deg) } 100% { transform:translateX(0) rotate(0deg) } }
@keyframes co-ghost1 { 0% { transform:translateX(0); opacity:0.3 } 25% { transform:translateX(20px); opacity:0.2 } 50% { transform:translateX(40px); opacity:0.1 } 75% { transform:translateX(20px); opacity:0.2 } 100% { transform:translateX(0); opacity:0.3 } }
@keyframes co-ghost2 { 0% { transform:translateX(0); opacity:0.15 } 25% { transform:translateX(20px); opacity:0.1 } 50% { transform:translateX(40px); opacity:0.05 } 75% { transform:translateX(20px); opacity:0.1 } 100% { transform:translateX(0); opacity:0.15 } }
@keyframes co-spyglass { 0% { transform:rotate(-15deg) } 50% { transform:rotate(10deg) } 100% { transform:rotate(-15deg) } }
@keyframes co-stamp { 0%,100% { transform:scale(1); opacity:0.3 } 50% { transform:scale(1.5); opacity:0.6 } }

/* spyglass-snatched */
.scn-spyglass-snatched {
  background:
    linear-gradient(180deg, #3c4a55 0%, #2a3740 40%, #1a242e 100%),
    radial-gradient(ellipse at 40% 50%, rgba(80,100,120,0.12) 0%, transparent 70%);
}
.scn-spyglass-snatched .scn-ss-sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #5a6a7a 0%, #3a4a56 100%); animation: ss-sky 12s ease-in-out infinite alternate; }
.scn-spyglass-snatched .scn-ss-sea { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #1f2a30 0%, #0e141c 100%); border-radius:0 0 30% 30% / 0 0 10% 10%; animation: ss-sea 6s ease-in-out infinite; }
.scn-spyglass-snatched .scn-ss-deck { position:absolute; bottom:28%; left:5%; right:5%; height:6%; background: linear-gradient(180deg, #2a3a44 0%, #1a242e 100%); border-radius:3px; }
.scn-spyglass-snatched .scn-ss-captain { position:absolute; bottom:34%; left:40%; width:26px; height:78px; background: linear-gradient(180deg, #1a242e 0%, #0e141c 100%); border-radius: 50% 50% 40% 40% / 40% 40% 60% 60%; transform-origin:bottom center; animation: ss-captain 2s ease-in-out infinite; }
.scn-spyglass-snatched .scn-ss-officer { position:absolute; bottom:34%; left:55%; width:22px; height:72px; background: linear-gradient(180deg, #1d2a36 0%, #0e141c 100%); border-radius: 50% 50% 40% 40% / 40% 40% 60% 60%; transform-origin:bottom center; animation: ss-officer 2.5s ease-in-out infinite; }
.scn-spyglass-snatched .scn-ss-spyglass { position:absolute; bottom:42%; left:48%; width:10px; height:34px; background: linear-gradient(180deg, #4a5a65 0%, #2a3a44 100%); border-radius:3px; transform-origin:20% 20%; animation: ss-spyglass 0.8s ease-in-out infinite alternate; }
.scn-spyglass-snatched .scn-ss-motion-line { position:absolute; bottom:38%; left:44%; width:30px; height:2px; background: linear-gradient(90deg, rgba(200,215,230,0.4) 0%, transparent 100%); animation: ss-motion 1s ease-in-out infinite; }
@keyframes ss-sky { 0% { opacity:0.7 } 50% { opacity:0.95 } 100% { opacity:0.8 } }
@keyframes ss-sea { 0%,100% { transform:translateY(0) } 50% { transform:translateY(-3px) } }
@keyframes ss-captain { 0%,100% { transform:translateX(0) rotate(0deg) } 30% { transform:translateX(-8px) rotate(-2deg) } 70% { transform:translateX(4px) rotate(1deg) } }
@keyframes ss-officer { 0%,100% { transform:translateX(0) rotate(0deg) } 25% { transform:translateX(12px) rotate(3deg) } 50% { transform:translateX(18px) rotate(0deg) } 75% { transform:translateX(12px) rotate(-3deg) } }
@keyframes ss-spyglass { 0% { transform:rotate(0deg) translate(0,0) } 25% { transform:rotate(25deg) translate(6px,-4px) } 50% { transform:rotate(-10deg) translate(-2px,2px) } 75% { transform:rotate(15deg) translate(4px,-2px) } 100% { transform:rotate(0deg) translate(0,0) } }
@keyframes ss-motion { 0%,100% { opacity:0.4; transform:scaleX(1) } 50% { opacity:0.8; transform:scaleX(1.8) } }

.scn-retreat-from-boiling-water {
  background: linear-gradient(180deg, #2a1005 0%, #4a1a0a 30%, #6a2a0a 60%, #3a0a00 100%), radial-gradient(ellipse at 30% 40%, #b05020 0%, transparent 60%);
}
.scn-retreat-from-boiling-water .bg-water {
  position:absolute; inset: 0 0 10% 0;
  background: linear-gradient(180deg, transparent 0%, rgba(80,20,10,0.6) 100%);
  animation: rw-water 8s ease-in-out infinite alternate;
}
.scn-retreat-from-boiling-water .bg-fire {
  position:absolute; bottom:10%; left:20%; right:20%; height:30%;
  background: radial-gradient(ellipse at 50% 100%, #ff6020 0%, #b02000 40%, transparent 70%);
  animation: rw-fire 3s ease-in-out infinite;
}
.scn-retreat-from-boiling-water .submarine {
  position:absolute; bottom:30%; left:10%; width:60%; height:15%;
  background: linear-gradient(180deg, #3a3028 0%, #1a1810 100%);
  border-radius: 50% 50% 30% 30% / 80% 80% 20% 20%;
  box-shadow: 0 0 20px rgba(200,80,20,0.3);
  animation: rw-sub 6s ease-in-out infinite;
}
.scn-retreat-from-boiling-water .periscope {
  position:absolute; bottom:42%; left:35%; width:4%; height:18%;
  background: linear-gradient(90deg, #4a4030, #2a2010);
  border-radius: 20% 20% 10% 10%;
  transform: skewX(-5deg);
  animation: rw-peri 2s ease-in-out infinite alternate;
}
.scn-retreat-from-boiling-water .flame {
  position:absolute; bottom:25%; border-radius: 50% 50% 20% 20%;
  background: radial-gradient(ellipse at 50% 100%, #ff8020 0%, #cc3000 50%, transparent 80%);
  animation: rw-flame 1.5s ease-in-out infinite;
}
.scn-retreat-from-boiling-water .flame-1 {
  left:25%; width:6%; height:12%;
  animation-delay: 0s;
}
.scn-retreat-from-boiling-water .flame-2 {
  left:55%; width:4%; height:10%;
  animation-delay: 0.4s;
}
.scn-retreat-from-boiling-water .steam {
  position:absolute; bottom:50%; left:40%; width:15%; height:20%;
  background: radial-gradient(ellipse, rgba(255,200,150,0.3) 0%, transparent 70%);
  filter: blur(6px);
  animation: rw-steam 6s ease-in-out infinite;
}
.scn-retreat-from-boiling-water .bubble {
  position:absolute; bottom:20%; width:3%; height:3%;
  background: radial-gradient(circle, rgba(255,200,150,0.3), transparent);
  border-radius: 50%;
  animation: rw-bubble 4s ease-in-out infinite;
}
.scn-retreat-from-boiling-water .bubble-a { left:30%; animation-delay: 0s; }
.scn-retreat-from-boiling-water .bubble-b { left:70%; animation-delay: 1.5s; }
@keyframes rw-water {
  0% { opacity: 0.6; transform: translateY(0); }
  50% { opacity: 0.9; transform: translateY(-5px); }
  100% { opacity: 0.7; transform: translateY(2px); }
}
@keyframes rw-fire {
  0% { opacity: 0.7; transform: scaleY(1); }
  50% { opacity: 1; transform: scaleY(1.2) translateY(-5px); }
  100% { opacity: 0.8; transform: scaleY(0.8); }
}
@keyframes rw-sub {
  0% { transform: translateX(0) rotate(-1deg); }
  50% { transform: translateX(-10px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes rw-peri {
  0% { transform: skewX(-5deg) translateY(0); }
  100% { transform: skewX(-5deg) translateY(-4px); }
}
@keyframes rw-flame {
  0% { transform: scaleY(1) rotate(0deg); opacity: 0.8; }
  50% { transform: scaleY(1.4) rotate(5deg); opacity: 1; }
  100% { transform: scaleY(0.9) rotate(-3deg); opacity: 0.6; }
}
@keyframes rw-steam {
  0% { transform: translateY(0) scaleX(1); opacity: 0.3; }
  50% { transform: translateY(-20px) scaleX(1.5); opacity: 0.5; }
  100% { transform: translateY(-40px) scaleX(0.8); opacity: 0; }
}
@keyframes rw-bubble {
  0% { transform: translateY(0) scale(1); opacity: 0.6; }
  50% { transform: translateY(-30px) scale(1.3); opacity: 0.4; }
  100% { transform: translateY(-60px) scale(0.6); opacity: 0; }
}

/* ---- leaving-greek-islands ---- */
.scn-leaving-greek-islands {
  background: linear-gradient(180deg, #7599b0 0%, #95b8cc 30%, #b5d0d8 60%, #e0e8e0 100%), radial-gradient(ellipse at 80% 60%, #f0d8a0 0%, transparent 50%);
}
.scn-leaving-greek-islands .sky-dawn {
  position:absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #4a6a80 0%, #80a8b8 50%, #c0d8e0 100%);
  animation: lg-sky 20s ease-in-out infinite alternate;
}
.scn-leaving-greek-islands .sun-dawn {
  position:absolute; bottom:45%; right:20%; width:12%; height:12%;
  background: radial-gradient(circle, #ffd080 0%, #f0a060 60%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 40px #f0a060, 0 0 80px rgba(240,160,96,0.4);
  animation: lg-sun 30s linear infinite;
}
.scn-leaving-greek-islands .sea-dawn {
  position:absolute; bottom:0; left:0; right:0; height:40%;
  background: linear-gradient(180deg, #608090 0%, #507080 100%);
  animation: lg-sea 12s ease-in-out infinite alternate;
}
.scn-leaving-greek-islands .island {
  position:absolute; bottom:32%; height:10%;
  background: linear-gradient(180deg, #6a7a5a 0%, #4a5a3a 100%);
  border-radius: 40% 40% 0 0 / 60% 60% 0 0;
  box-shadow: inset 0 -4px 8px rgba(0,0,0,0.3);
  animation: lg-island 8s ease-in-out infinite;
}
.scn-leaving-greek-islands .island-left { left:10%; width:20%; animation-delay: 0s; }
.scn-leaving-greek-islands .island-right { left:70%; width:15%; animation-delay: 2s; }
.scn-leaving-greek-islands .cloud-dawn {
  position:absolute; height:6%; background: linear-gradient(90deg, rgba(255,255,255,0.5), rgba(200,220,230,0.3));
  border-radius: 50%;
  filter: blur(4px);
  animation: lg-cloud 40s linear infinite;
}
.scn-leaving-greek-islands .cloud-d1 { top:15%; left:-10%; width:20%; animation-duration: 40s; }
.scn-leaving-greek-islands .cloud-d2 { top:25%; left:-5%; width:15%; animation-duration: 50s; animation-delay: 5s; }
.scn-leaving-greek-islands .wake {
  position:absolute; bottom:18%; left:30%; right:30%; height:4%;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,0.3), transparent);
  border-radius: 50%;
  animation: lg-wake 6s ease-in-out infinite;
}
@keyframes lg-sky {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes lg-sun {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-8px) rotate(5deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes lg-sea {
  0% { transform: translateY(0); }
  50% { transform: translateY(-4px); }
  100% { transform: translateY(2px); }
}
@keyframes lg-island {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes lg-cloud {
  0% { transform: translateX(0); }
  100% { transform: translateX(120vw); }
}
@keyframes lg-wake {
  0% { transform: scaleX(0.8); opacity: 0.5; }
  50% { transform: scaleX(1.2); opacity: 0.8; }
  100% { transform: scaleX(0.8); opacity: 0.5; }
}

/* ---- quick-look-at-mediterranean ---- */
.scn-quick-look-at-mediterranean {
  background: linear-gradient(180deg, #5a8fcc 0%, #7ab8e0 40%, #9ad0e8 70%, #c8e0f0 100%), radial-gradient(ellipse at 70% 30%, #ffd080 0%, transparent 60%);
}
.scn-quick-look-at-mediterranean .sky-sunny {
  position:absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #4a7db0 0%, #7ab8e0 100%);
  animation: qm-sky 15s alternate infinite;
}
.scn-quick-look-at-mediterranean .sun-bright {
  position:absolute; top:10%; right:15%; width:15%; height:15%;
  background: radial-gradient(circle, #ffe080 0%, #ffc040 50%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 60px #ffc040, 0 0 120px rgba(255,192,64,0.3);
  animation: qm-sun 6s ease-in-out infinite alternate;
}
.scn-quick-look-at-mediterranean .sea-bright {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #50a0c0 0%, #3a80a0 100%);
  animation: qm-sea 8s ease-in-out infinite;
}
.scn-quick-look-at-mediterranean .coastline {
  position:absolute; bottom:20%; left:-10%; right:-10%; height:12%;
  background: linear-gradient(180deg, #8a9a6a 0%, #6a7a4a 100%);
  border-radius: 30% 70% 0 0 / 50% 80% 0 0;
  filter: blur(2px);
  animation: qm-coast 20s linear infinite;
}
.scn-quick-look-at-mediterranean .ray {
  position:absolute; top:5%; width:2%; height:80%;
  background: linear-gradient(180deg, rgba(255,200,100,0.4), transparent);
  transform-origin: top center;
  animation: qm-ray 4s ease-in-out infinite;
}
.scn-quick-look-at-mediterranean .ray-1 { left:30%; transform: rotate(10deg); animation-delay: 0s; }
.scn-quick-look-at-mediterranean .ray-2 { left:60%; transform: rotate(-8deg); animation-delay: 1.2s; }
.scn-quick-look-at-mediterranean .sparkle {
  position:absolute; bottom:15%; width:2%; height:2%;
  background: radial-gradient(circle, #fff, transparent);
  border-radius: 50%;
  animation: qm-sparkle 2s ease-in-out infinite;
}
.scn-quick-look-at-mediterranean .sparkle-a { left:20%; animation-delay: 0s; }
.scn-quick-look-at-mediterranean .sparkle-b { left:70%; animation-delay: 0.8s; }
@keyframes qm-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes qm-sun {
  0% { transform: scale(1); box-shadow: 0 0 60px #ffc040; }
  50% { transform: scale(1.1); box-shadow: 0 0 80px #ffe080; }
  100% { transform: scale(0.95); box-shadow: 0 0 40px #ffc040; }
}
@keyframes qm-sea {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-3px) scaleY(1.02); }
  100% { transform: translateY(2px) scaleY(0.98); }
}
@keyframes qm-coast {
  0% { transform: translateX(0); }
  100% { transform: translateX(-30px); }
}
@keyframes qm-ray {
  0% { opacity: 0.2; transform: rotate(10deg) scaleY(1); }
  50% { opacity: 0.8; transform: rotate(10deg) scaleY(1.4); }
  100% { opacity: 0.2; transform: rotate(10deg) scaleY(0.8); }
}
@keyframes qm-sparkle {
  0% { opacity: 0; transform: scale(0); }
  50% { opacity: 1; transform: scale(1.5); }
  100% { opacity: 0; transform: scale(0); }
}

/* ---- nemo-avoids-mediterranean ---- */
.scn-nemo-avoids-mediterranean {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 40%, #3a2a2e 100%), radial-gradient(ellipse at 50% 70%, #3a3030 0%, transparent 70%);
}
.scn-nemo-avoids-mediterranean .wall-back {
  position:absolute; inset: 0 0 20% 0;
  background: linear-gradient(90deg, #2a2a3e, #1a1a2e);
  border-bottom: 2px solid #4a3a3e;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.5);
  animation: na-wall 10s ease-in-out infinite alternate;
}
.scn-nemo-avoids-mediterranean .wall-side {
  position:absolute; top:0; bottom:0; left:0; width:20%;
  background: linear-gradient(180deg, #2a2a3e, #1a1a2e);
  box-shadow: 0 0 20px rgba(0,0,0,0.6);
  animation: na-wall 12s infinite alternate;
}
.scn-nemo-avoids-mediterranean .floor {
  position:absolute; bottom:0; left:0; right:0; height:20%;
  background: linear-gradient(180deg, #2a2a2e, #1a1a1e);
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.4);
}
.scn-nemo-avoids-mediterranean .porthole {
  position:absolute; top:25%; left:35%; width:20%; height:20%;
  border-radius: 50%;
  background: radial-gradient(circle at 40% 40%, #4a5a6a, #1a2a3a 80%);
  border: 4px solid #3a3a4a;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.6), 0 0 10px rgba(0,0,0,0.5);
  animation: na-porthole 8s ease-in-out infinite;
}
.scn-nemo-avoids-mediterranean .figure-nemo {
  position:absolute; bottom:18%; left:55%; width:10%; height:25%;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  box-shadow: 0 0 8px rgba(0,0,0,0.5);
  animation: na-figure 5s ease-in-out infinite alternate;
}
.scn-nemo-avoids-mediterranean .lamp-glow {
  position:absolute; top:15%; right:20%; width:8%; height:8%;
  background: radial-gradient(circle, #ffd060 0%, #c08030 50%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 40px #c08030, 0 0 80px rgba(192,128,48,0.3);
  animation: na-lamp 4s ease-in-out infinite;
}
.scn-nemo-avoids-mediterranean .shadow-bar {
  position:absolute; top:40%; left:0; right:0; height:2%;
  background: linear-gradient(90deg, transparent, #0a0a1a, transparent);
  filter: blur(2px);
  animation: na-shadow 6s linear infinite;
}
.scn-nemo-avoids-mediterranean .shadow-bar2 {
  position:absolute; bottom:50%; left:0; right:0; height:3%;
  background: linear-gradient(90deg, transparent, #0a0a1a, transparent);
  filter: blur(3px);
  animation: na-shadow 8s linear infinite reverse;
}
@keyframes na-wall {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes na-porthole {
  0% { transform: scale(1); box-shadow: inset 0 0 20px rgba(0,0,0,0.6), 0 0 10px rgba(0,0,0,0.5); }
  50% { transform: scale(1.02); box-shadow: inset 0 0 30px rgba(0,0,0,0.7), 0 0 15px rgba(0,0,0,0.6); }
  100% { transform: scale(0.98); box-shadow: inset 0 0 20px rgba(0,0,0,0.6), 0 0 10px rgba(0,0,0,0.5); }
}
@keyframes na-figure {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(-5px) rotate(2deg); }
  100% { transform: translateX(0) rotate(-1deg); }
}
@keyframes na-lamp {
  0% { opacity: 0.7; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.1); }
  100% { opacity: 0.8; transform: scale(0.95); }
}
@keyframes na-shadow {
  0% { transform: translateX(-20%); opacity: 0.2; }
  50% { transform: translateX(20%); opacity: 0.5; }
  100% { transform: translateX(100%); opacity: 0; }
}

.scn-treasure-value-depleted {
  background: 
    linear-gradient(180deg, #3a3a4a 0%, #4a4a5a 30%, #5a5a6a 60%, #4a4a5a 100%),
    radial-gradient(ellipse at 50% 30%, #6a6a7a 0%, #2a2a3a 70%);
  overflow: hidden;
}
.scn-treasure-value-depleted .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(90deg, #4a4a5a 0%, #5a5a6a 40%, #4a4a5a 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,.3);
}
.scn-treasure-value-depleted .desk {
  position: absolute; bottom: 10%; left: 15%; right: 15%; height: 20%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 -6px 20px rgba(0,0,0,.5);
}
.scn-treasure-value-depleted .chest {
  position: absolute; bottom: 22%; left: 38%; width: 50px; height: 30px;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a0a 100%);
  border-radius: 6% 6% 4% 4%;
  box-shadow: 0 4px 8px rgba(0,0,0,.4);
  animation: tvd-chest 6s ease-in-out infinite alternate;
}
.scn-treasure-value-depleted .coins {
  position: absolute; bottom: 26%; left: 42%; width: 18px; height: 10px;
  background: linear-gradient(135deg, #c0a050 0%, #a08030 50%, #b09040 100%);
  border-radius: 50% 50% 40% 40%;
  box-shadow: 0 0 12px 4px rgba(192,160,80,.3);
  animation: tvd-coins 4s ease-in-out infinite alternate;
}
.scn-treasure-value-depleted .window {
  position: absolute; top: 8%; right: 20%; width: 70px; height: 90px;
  background: radial-gradient(ellipse at 50% 50%, #8ab0d0 0%, #5a7a9a 60%, #3a4a6a 100%);
  border: 3px solid #2a2a3a;
  border-radius: 6% 6% 4% 4%;
  box-shadow: inset 0 0 20px rgba(138,176,208,.3);
  animation: tvd-window 8s ease-in-out infinite alternate;
}
.scn-treasure-value-depleted .lightbeam {
  position: absolute; top: 12%; right: 24%; width: 120px; height: 80%;
  background: linear-gradient(135deg, rgba(200,220,240,.15) 0%, rgba(200,220,240,.05) 60%, transparent 100%);
  transform: skewX(-15deg);
  filter: blur(8px);
  animation: tvd-beam 10s ease-in-out infinite alternate;
}
.scn-treasure-value-depleted .nemo {
  position: absolute; bottom: 20%; left: 22%; width: 28px; height: 50px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 60%, #050510 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tvd-nemo 5s ease-in-out infinite alternate;
}
.scn-treasure-value-depleted .shadow-layer {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 70% 30%, transparent 30%, rgba(0,0,0,.3) 80%);
  pointer-events: none;
  animation: tvd-shadow 12s ease-in-out infinite alternate;
}
@keyframes tvd-chest {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-2px) scale(1.01); }
  100% { transform: translateY(0) scale(1); }
}
@keyframes tvd-coins {
  0% { opacity: .7; transform: translateY(0) rotate(-2deg); }
  50% { opacity: 1; transform: translateY(-1px) rotate(1deg); }
  100% { opacity: .8; transform: translateY(0) rotate(0deg); }
}
@keyframes tvd-window {
  0% { opacity: .7; box-shadow: inset 0 0 15px rgba(138,176,208,.2); }
  50% { opacity: 1; box-shadow: inset 0 0 30px rgba(138,176,208,.4); }
  100% { opacity: .75; box-shadow: inset 0 0 18px rgba(138,176,208,.25); }
}
@keyframes tvd-beam {
  0% { opacity: .4; transform: skewX(-15deg) translateX(0); }
  50% { opacity: .7; transform: skewX(-12deg) translateX(4px); }
  100% { opacity: .5; transform: skewX(-18deg) translateX(-2px); }
}
@keyframes tvd-nemo {
  0% { transform: translateX(0) translateY(0) rotate(-1deg); }
  50% { transform: translateX(3px) translateY(-2px) rotate(1deg); }
  100% { transform: translateX(-2px) translateY(0) rotate(0deg); }
}
@keyframes tvd-shadow {
  0% { opacity: .6; }
  50% { opacity: .8; }
  100% { opacity: .65; }
}

.scn-nemo-defends-his-philanthropy {
  background:
    linear-gradient(135deg, #2a2a3e 0%, #3a3a4e 30%, #2a2a3e 60%, #1a1a2e 100%),
    radial-gradient(ellipse at 40% 50%, #4a4a5e 0%, transparent 60%);
  overflow: hidden;
}
.scn-nemo-defends-his-philanthropy .wall-dark {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(135deg, #2a2a3a 0%, #3a3a4a 40%, #1a1a2a 100%);
  box-shadow: inset 0 0 50px rgba(0,0,0,.4);
}
.scn-nemo-defends-his-philanthropy .desk-mid {
  position: absolute; bottom: 8%; left: 12%; right: 12%; height: 18%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 6% 6% 0 0;
  box-shadow: 0 -8px 24px rgba(0,0,0,.5);
}
.scn-nemo-defends-his-philanthropy .nemo-arm {
  position: absolute; bottom: 22%; left: 35%; width: 40px; height: 8px;
  background: linear-gradient(135deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 60% 50% 50%;
  transform-origin: right center;
  animation: ndh-arm 2s ease-in-out infinite alternate;
}
.scn-nemo-defends-his-philanthropy .nemo-torso {
  position: absolute; bottom: 18%; left: 28%; width: 32px; height: 44px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 60%, #050510 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: ndh-torso 2.5s ease-in-out infinite alternate;
}
.scn-nemo-defends-his-philanthropy .nemo-head {
  position: absolute; bottom: 48%; left: 30%; width: 22px; height: 26px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 45% 45% / 55% 55% 45% 45%;
  box-shadow: inset 0 -4px 8px rgba(0,0,0,.3);
  animation: ndh-head 2s ease-in-out infinite alternate;
}
.scn-nemo-defends-his-philanthropy .window-narrow {
  position: absolute; top: 6%; right: 15%; width: 50px; height: 80px;
  background: radial-gradient(ellipse at 50% 50%, #7a9ab8 0%, #4a6a88 50%, #2a3a5a 100%);
  border: 3px solid #1a1a2a;
  border-radius: 4% 4% 2% 2%;
  box-shadow: inset 0 0 24px rgba(122,154,184,.3);
  animation: ndh-window 6s ease-in-out infinite alternate;
}
.scn-nemo-defends-his-philanthropy .light-strip {
  position: absolute; top: 8%; right: 20%; width: 60px; height: 90%;
  background: linear-gradient(180deg, rgba(180,200,220,.12) 0%, rgba(180,200,220,.06) 40%, transparent 100%);
  transform: skewX(-8deg);
  filter: blur(6px);
  animation: ndh-strip 7s ease-in-out infinite alternate;
}
.scn-nemo-defends-his-philanthropy .papers {
  position: absolute; bottom: 14%; left: 45%; width: 40px; height: 6px;
  background: linear-gradient(135deg, #c8b898 0%, #b8a888 50%, #c8b898 100%);
  border-radius: 10% 10% 8% 8%;
  box-shadow: 0 2px 6px rgba(0,0,0,.3);
  animation: ndh-papers 3s ease-in-out infinite alternate;
}
@keyframes ndh-arm {
  0% { transform: translateX(0) rotate(10deg) scaleY(1); }
  50% { transform: translateX(8px) rotate(25deg) scaleY(1.05); }
  100% { transform: translateX(2px) rotate(12deg) scaleY(1); }
}
@keyframes ndh-torso {
  0% { transform: translateX(0) rotate(-1deg); }
  50% { transform: translateX(4px) rotate(2deg); }
  100% { transform: translateX(-1px) rotate(0deg); }
}
@keyframes ndh-head {
  0% { transform: translateX(0) rotate(-2deg); }
  50% { transform: translateX(5px) rotate(3deg); }
  100% { transform: translateX(-1px) rotate(-1deg); }
}
@keyframes ndh-window {
  0% { opacity: .6; box-shadow: inset 0 0 15px rgba(122,154,184,.2); }
  50% { opacity: .9; box-shadow: inset 0 0 30px rgba(122,154,184,.4); }
  100% { opacity: .7; box-shadow: inset 0 0 18px rgba(122,154,184,.25); }
}
@keyframes ndh-strip {
  0% { opacity: .3; transform: skewX(-8deg) translateX(0); }
  50% { opacity: .6; transform: skewX(-5deg) translateX(6px); }
  100% { opacity: .4; transform: skewX(-10deg) translateX(-2px); }
}
@keyframes ndh-papers {
  0% { transform: translateY(0) rotate(-3deg); }
  50% { transform: translateY(-2px) rotate(4deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}

.scn-millions-for-crete-rebellion {
  background:
    linear-gradient(135deg, #4a3a2a 0%, #5a4a3a 30%, #4a3a2a 60%, #3a2a1a 100%),
    radial-gradient(ellipse at 60% 40%, #6a5a4a 0%, transparent 70%);
  overflow: hidden;
}
.scn-millions-for-crete-rebellion .room-back {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(135deg, #3a2a1a 0%, #4a3a2a 50%, #3a2a1a 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,.4);
}
.scn-millions-for-crete-rebellion .map-table {
  position: absolute; bottom: 8%; left: 10%; right: 10%; height: 22%;
  background: linear-gradient(180deg, #5a4a3a 0%, #4a3a2a 50%, #3a2a1a 100%);
  border-radius: 6% 6% 0 0;
  box-shadow: 0 -8px 24px rgba(0,0,0,.5);
}
.scn-millions-for-crete-rebellion .map-scroll {
  position: absolute; bottom: 18%; left: 25%; width: 80px; height: 14px;
  background: linear-gradient(135deg, #c8b898 0%, #b8a888 50%, #c8b898 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 4px 12px rgba(0,0,0,.3);
  animation: mcr-scroll 8s ease-in-out infinite alternate;
}
.scn-millions-for-crete-rebellion .candle {
  position: absolute; bottom: 22%; left: 42%; width: 8px; height: 24px;
  background: linear-gradient(180deg, #e8d8a8 0%, #b8a878 60%, #8a7a5a 100%);
  border-radius: 30% 30% 20% 20%;
  animation: mcr-candle 4s ease-in-out infinite alternate;
}
.scn-millions-for-crete-rebellion .candle-glow {
  position: absolute; bottom: 22%; left: 40%; width: 60px; height: 60px;
  background: radial-gradient(circle, rgba(240,200,120,.6) 0%, rgba(240,200,120,.2) 30%, transparent 70%);
  filter: blur(10px);
  animation: mcr-glow 3s ease-in-out infinite alternate;
}
.scn-millions-for-crete-rebellion .nemo-shoulder {
  position: absolute; bottom: 14%; left: 15%; width: 40px; 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: mcr-shoulder 5s ease-in-out infinite alternate;
}
.scn-millions-for-crete-rebellion .nemo-hand {
  position: absolute; bottom: 16%; left: 30%; width: 14px; height: 18px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 35% 35% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: mcr-hand 4s ease-in-out infinite alternate;
}
.scn-millions-for-crete-rebellion .shadow-corner {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 30% 60%, transparent 20%, rgba(0,0,0,.4) 80%);
  pointer-events: none;
  animation: mcr-shadow 10s ease-in-out infinite alternate;
}
@keyframes mcr-scroll {
  0% { transform: translateX(0) translateY(0) rotate(-1deg); }
  50% { transform: translateX(4px) translateY(-2px) rotate(2deg); }
  100% { transform: translateX(-2px) translateY(0) rotate(0deg); }
}
@keyframes mcr-candle {
  0% { transform: translateY(0) scaleY(1); opacity: .8; }
  50% { transform: translateY(-2px) scaleY(1.03); opacity: 1; }
  100% { transform: translateY(0) scaleY(.98); opacity: .85; }
}
@keyframes mcr-glow {
  0% { opacity: .5; transform: scale(1) translateX(0); }
  50% { opacity: .8; transform: scale(1.1) translateX(2px); }
  100% { opacity: .6; transform: scale(.95) translateX(-1px); }
}
@keyframes mcr-shoulder {
  0% { transform: translateX(0) rotate(-1deg); }
  50% { transform: translateX(3px) rotate(2deg); }
  100% { transform: translateX(-1px) rotate(0deg); }
}
@keyframes mcr-hand {
  0% { transform: translateX(0) translateY(0) rotate(-3deg); }
  50% { transform: translateX(6px) translateY(-2px) rotate(5deg); }
  100% { transform: translateX(2px) translateY(0) rotate(0deg); }
}
@keyframes mcr-shadow {
  0% { opacity: .5; }
  50% { opacity: .7; }
  100% { opacity: .55; }
}

.scn-ned-regrets-vigo {
  background:
    linear-gradient(135deg, #2a2a1a 0%, #3a3a2a 30%, #2a2a1a 60%, #1a1a0a 100%),
    radial-gradient(ellipse at 50% 50%, #4a4a3a 0%, transparent 60%);
  overflow: hidden;
}
.scn-ned-regrets-vigo .bunk-bg {
  position: absolute; top: 40%; left: 15%; right: 15%; bottom: 10%;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 50%, #2a1a0a 100%);
  border-radius: 20% 20% 4% 4%;
  box-shadow: inset 0 0 40px rgba(0,0,0,.5);
}
.scn-ned-regrets-vigo .bunk-frame {
  position: absolute; top: 38%; left: 12%; right: 12%; height: 8%;
  background: linear-gradient(90deg, #6a5a4a 0%, #8a7a6a 30%, #6a5a4a 70%, #5a4a3a 100%);
  border-radius: 6% 6% 2% 2%;
  box-shadow: 0 4px 12px rgba(0,0,0,.3);
  animation: nrv-frame 6s ease-in-out infinite alternate;
}
.scn-ned-regrets-vigo .ned-body {
  position: absolute; bottom: 18%; left: 30%; width: 50px; height: 40px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 50%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: nrv-body 3s ease-in-out infinite alternate;
}
.scn-ned-regrets-vigo .ned-head {
  position: absolute; bottom: 44%; left: 36%; width: 24px; height: 28px;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
  border-radius: 50% 50% 45% 45% / 55% 55% 45% 45%;
  box-shadow: inset 0 -4px 8px rgba(0,0,0,.3);
  transform-origin: bottom center;
  animation: nrv-head 2.5s ease-in-out infinite alternate;
}
.scn-ned-regrets-vigo .ned-arm {
  position: absolute; bottom: 22%; left: 26%; width: 28px; height: 8px;
  background: linear-gradient(135deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40%;
  transform-origin: right center;
  animation: nrv-arm 3.5s ease-in-out infinite alternate;
}
.scn-ned-regrets-vigo .lantern-hook {
  position: absolute; top: 6%; left: 48%; width: 4px; height: 20px;
  background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%);
  border-radius: 10% 10% 0 0;
  animation: nrv-hook 4s ease-in-out infinite alternate;
}
.scn-ned-regrets-vigo .lantern-light {
  position: absolute; top: 12%; left: 44%; width: 30px; height: 30px;
  background: radial-gradient(circle, rgba(240,200,120,.5) 0%, rgba(240,200,120,.15) 40%, transparent 70%);
  filter: blur(8px);
  animation: nrv-lantern 3s ease-in-out infinite alternate;
}
.scn-ned-regrets-vigo .shadow-foot {
  position: absolute; bottom: 0; left: 20%; right: 20%; height: 8%;
  background: linear-gradient(180deg, rgba(0,0,0,.3) 0%, transparent 100%);
  filter: blur(4px);
  animation: nrv-foot 4s ease-in-out infinite alternate;
}
@keyframes nrv-frame {
  0% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
  100% { transform: translateY(0); }
}
@keyframes nrv-body {
  0% { transform: translateX(0) rotate(-1deg) scaleX(1); }
  50% { transform: translateX(6px) rotate(3deg) scaleX(1.02); }
  100% { transform: translateX(2px) rotate(-1deg) scaleX(1); }
}
@keyframes nrv-head {
  0% { transform: translateX(0) rotate(-4deg) scaleY(1); }
  50% { transform: translateX(8px) rotate(6deg) scaleY(1.04); }
  100% { transform: translateX(2px) rotate(-2deg) scaleY(1); }
}
@keyframes nrv-arm {
  0% { transform: translateX(0) rotate(-30deg) scaleY(1); }
  50% { transform: translateX(-6px) rotate(-45deg) scaleY(1.1); }
  100% { transform: translateX(2px) rotate(-20deg) scaleY(1); }
}
@keyframes nrv-hook {
  0% { transform: translateX(0) rotate(-2deg); }
  50% { transform: translateX(2px) rotate(3deg); }
  100% { transform: translateX(-1px) rotate(-1deg); }
}
@keyframes nrv-lantern {
  0% { opacity: .5; transform: scale(1) translateX(0); }
  50% { opacity: .8; transform: scale(1.12) translateX(2px); }
  100% { opacity: .6; transform: scale(.95) translateX(-1px); }
}
@keyframes nrv-foot {
  0% { opacity: .4; transform: translateX(0); }
  50% { opacity: .6; transform: translateX(4px); }
  100% { opacity: .45; transform: translateX(-2px); }
}

/* scene: point-where-life-rises */
.scn-point-where-life-rises {
  background: linear-gradient(180deg, #1a2530 0%, #2a3a45 40%, #4a5a5a 100%), radial-gradient(ellipse at 50% 70%, #5a7a7a 0%, transparent 60%);
}
.scn-point-where-life-rises .cave-back {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #3a4a4a 0%, #2a3a3a 80%);
  border-radius: 0 0 40% 40% / 0 0 20% 20%;
  animation: plr-caveback 12s ease-in-out infinite alternate;
}
.scn-point-where-life-rises .stalactite {
  position: absolute; top: 0; width: 12px; height: 60px;
  background: linear-gradient(180deg, #4a5a4a 0%, #2a3a2a 100%);
  border-radius: 20% 20% 40% 40%;
  clip-path: polygon(20% 0%, 80% 0%, 60% 100%, 40% 100%);
}
.scn-point-where-life-rises .stalactite.t1 { left: 25%; height: 70px; animation: plr-drip 8s ease-in-out infinite; }
.scn-point-where-life-rises .stalactite.t2 { right: 30%; height: 50px; animation: plr-drip 6s ease-in-out infinite reverse; }
.scn-point-where-life-rises .stalagmite {
  position: absolute; bottom: 30%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #3a4a3a 0%, #1a2a1a 100%);
  border-radius: 40% 40% 20% 20%;
}
.scn-point-where-life-rises .stalagmite.g1 { left: 30%; height: 50px; animation: plr-grow 15s ease-in-out infinite; }
.scn-point-where-life-rises .stalagmite.g2 { right: 20%; height: 35px; animation: plr-grow 12s ease-in-out infinite reverse; }
.scn-point-where-life-rises .figure-walker {
  position: absolute; bottom: 30%; left: 45%;
  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: plr-walk 4s ease-in-out infinite;
}
.scn-point-where-life-rises .crystal-glow {
  position: absolute; bottom: 45%; left: 50%; transform: translateX(-50%);
  width: 20px; height: 30px;
  background: radial-gradient(circle, #c8e0e0 0%, #80a8a8 40%, transparent 70%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 0 40px 15px #80c0c0, 0 0 80px 30px rgba(128,192,192,0.4);
  animation: plr-glow 4s ease-in-out infinite alternate;
}
@keyframes plr-caveback {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes plr-drip {
  0% { transform: translateY(0); height: 60px; }
  50% { transform: translateY(4px); height: 66px; }
  100% { transform: translateY(0); height: 60px; }
}
@keyframes plr-grow {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.05); }
  100% { transform: scaleY(1); }
}
@keyframes plr-walk {
  0% { transform: translateX(0) translateY(0) rotate(-1deg); }
  25% { transform: translateX(8px) translateY(-1px) rotate(1deg); }
  50% { transform: translateX(16px) translateY(0) rotate(-1deg); }
  75% { transform: translateX(24px) translateY(-1px) rotate(1deg); }
  100% { transform: translateX(32px) translateY(0) rotate(0); }
}
@keyframes plr-glow {
  0% { box-shadow: 0 0 30px 10px #80c0c0, 0 0 60px 20px rgba(128,192,192,0.3); opacity: 0.8; }
  50% { box-shadow: 0 0 50px 20px #90d4d4, 0 0 100px 40px rgba(144,212,212,0.5); opacity: 1; }
  100% { box-shadow: 0 0 35px 12px #80c0c0, 0 0 70px 25px rgba(128,192,192,0.4); opacity: 0.85; }
}

/* scene: forest-of-coral */
.scn-forest-of-coral {
  background: linear-gradient(180deg, #0a2a3a 0%, #1a4a5a 30%, #2a5a4a 60%, #0a3a2a 100%), radial-gradient(ellipse at 30% 30%, #3a7a6a 0%, transparent 60%);
}
.scn-forest-of-coral .water-bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, rgba(20,60,70,0.3) 0%, transparent 50%, rgba(10,40,50,0.2) 100%);
  animation: foc-water 20s ease-in-out infinite alternate;
}
.scn-forest-of-coral .coral-branch {
  position: absolute; bottom: 20%;
  width: 30px; height: 120px;
  background: linear-gradient(180deg, #c07050 0%, #a06040 40%, #804030 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 20% 20%;
  transform-origin: bottom center;
}
.scn-forest-of-coral .coral-branch.b1 { left: 15%; height: 140px; animation: foc-sway 7s ease-in-out infinite; }
.scn-forest-of-coral .coral-branch.b2 { left: 40%; height: 100px; animation: foc-sway 9s ease-in-out infinite reverse; }
.scn-forest-of-coral .coral-branch.b3 { right: 20%; height: 110px; animation: foc-sway 8s ease-in-out infinite; }
.scn-forest-of-coral .coral-tube {
  position: absolute; bottom: 15%;
  width: 8px; height: 40px;
  background: linear-gradient(180deg, #d09070 0%, #b07858 100%);
  border-radius: 30% 30% 10% 10%;
}
.scn-forest-of-coral .coral-tube.tube1 { left: 25%; height: 50px; animation: foc-tube 6s ease-in-out infinite; }
.scn-forest-of-coral .coral-tube.tube2 { right: 35%; height: 35px; animation: foc-tube 8s ease-in-out infinite 2s; }
.scn-forest-of-coral .fish-swarm {
  position: absolute; top: 25%; left: 10%;
  width: 80px; height: 40px;
  background: repeating-linear-gradient(90deg, rgba(200,200,150,0.4) 0px, rgba(200,200,150,0.4) 4px, transparent 4px, transparent 10px);
  filter: blur(1px);
  animation: foc-swarm 25s linear infinite;
}
.scn-forest-of-coral .light-ray {
  position: absolute; top: 0; left: 30%; width: 40px; height: 100%;
  background: linear-gradient(180deg, rgba(255,240,200,0.3) 0%, rgba(255,240,200,0.05) 100%);
  clip-path: polygon(30% 0%, 70% 0%, 90% 100%, 10% 100%);
  animation: foc-ray 10s ease-in-out infinite alternate;
}
@keyframes foc-water {
  0% { opacity: 0.5; transform: translateY(0); }
  50% { opacity: 0.8; transform: translateY(-5px); }
  100% { opacity: 0.6; transform: translateY(0); }
}
@keyframes foc-sway {
  0% { transform: rotate(-2deg) scaleY(1); }
  50% { transform: rotate(2deg) scaleY(1.02); }
  100% { transform: rotate(-2deg) scaleY(1); }
}
@keyframes foc-tube {
  0% { transform: translateY(0) scaleX(1); }
  50% { transform: translateY(-3px) scaleX(0.95); }
  100% { transform: translateY(0) scaleX(1); }
}
@keyframes foc-swarm {
  0% { transform: translateX(0); }
  25% { transform: translateX(30px) translateY(-10px); }
  50% { transform: translateX(60px) translateY(0); }
  75% { transform: translateX(30px) translateY(10px); }
  100% { transform: translateX(0); }
}
@keyframes foc-ray {
  0% { opacity: 0.3; transform: scaleX(1); }
  50% { opacity: 0.7; transform: scaleX(1.2) translateX(5px); }
  100% { opacity: 0.4; transform: scaleX(0.9); }
}

/* scene: halt-in-clearing */
.scn-halt-in-clearing {
  background: linear-gradient(180deg, #1a2a30 0%, #2a3a40 30%, #3a4a50 60%, #2a3a30 100%), radial-gradient(ellipse at 50% 60%, #4a5a60 0%, transparent 70%);
}
.scn-halt-in-clearing .seafloor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #2a3a3a 0%, #1a2a2a 100%);
  border-radius: 30% 30% 0 0 / 60% 60% 0 0;
  animation: hic-floor 15s ease-in-out infinite alternate;
}
.scn-halt-in-clearing .rock-altar {
  position: absolute; bottom: 25%; left: 50%; transform: translateX(-50%);
  width: 100px; height: 40px;
  background: linear-gradient(180deg, #3a4a4a 0%, #1a2a2a 100%);
  border-radius: 20% 20% 30% 30% / 40% 40% 20% 20%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.3);
  animation: hic-altar 10s ease-in-out infinite;
}
.scn-halt-in-clearing .figure-nemo {
  position: absolute; bottom: 28%; left: 38%;
  width: 20px; height: 50px;
  background: linear-gradient(180deg, #1a2a30 0%, #0a1a20 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hic-nemo 6s ease-in-out infinite;
}
.scn-halt-in-clearing .crewmen {
  position: absolute; bottom: 28%;
  width: 18px; height: 46px;
  background: linear-gradient(180deg, #2a3a3a 0%, #1a2a2a 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 40% 40%;
}
.scn-halt-in-clearing .crewmen.crew1 { left: 30%; animation: hic-crew1 8s ease-in-out infinite; }
.scn-halt-in-clearing .crewmen.crew2 { left: 46%; animation: hic-crew2 9s ease-in-out infinite; }
.scn-halt-in-clearing .crewmen.crew3 { right: 25%; animation: hic-crew3 7s ease-in-out infinite; }
.scn-halt-in-clearing .oblique-object {
  position: absolute; bottom: 30%; left: 50%; transform: translateX(-50%);
  width: 50px; height: 20px;
  background: linear-gradient(135deg, #4a5a5a 0%, #2a3a3a 100%);
  border-radius: 20% 20% 40% 40% / 30% 30% 50% 50%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.5);
  animation: hic-object 12s ease-in-out infinite;
}
.scn-halt-in-clearing .spotlight {
  position: absolute; top: 0; left: 40%; width: 30px; height: 80%;
  background: linear-gradient(180deg, rgba(220,200,170,0.3) 0%, rgba(220,200,170,0.05) 100%);
  clip-path: polygon(40% 0%, 60% 0%, 80% 100%, 20% 100%);
  animation: hic-spot 8s ease-in-out infinite alternate;
}
@keyframes hic-floor {
  0% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
  100% { transform: translateY(0); }
}
@keyframes hic-altar {
  0% { transform: translateX(-50%) translateY(0); }
  50% { transform: translateX(-50%) translateY(-2px); }
  100% { transform: translateX(-50%) translateY(0); }
}
@keyframes hic-nemo {
  0% { transform: translateX(0) rotate(-2deg); }
  25% { transform: translateX(2px) rotate(1deg); }
  50% { transform: translateX(0) rotate(0); }
  75% { transform: translateX(-2px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(2deg); }
}
@keyframes hic-crew1 {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-2px) scale(1.02); }
  100% { transform: translateY(0) scale(1); }
}
@keyframes hic-crew2 {
  0% { transform: translateY(0) rotate(0); }
  50% { transform: translateY(-3px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes hic-crew3 {
  0% { transform: translateY(0) scaleX(1); }
  50% { transform: translateY(-2px) scaleX(0.96); }
  100% { transform: translateY(0) scaleX(1); }
}
@keyframes hic-object {
  0% { transform: translateX(-50%) rotate(-1deg); }
  50% { transform: translateX(-50%) rotate(1deg); }
  100% { transform: translateX(-50%) rotate(-1deg); }
}
@keyframes hic-spot {
  0% { opacity: 0.4; transform: scaleX(1); }
  50% { opacity: 0.8; transform: scaleX(1.1); }
  100% { opacity: 0.5; transform: scaleX(0.9); }
}

/* scene: cross-of-coral */
.scn-cross-of-coral {
  background: linear-gradient(180deg, #0a1a2a 0%, #1a2a3a 30%, #2a3a4a 60%, #1a2a3a 100%), radial-gradient(ellipse at 50% 40%, #3a4a5a 0%, transparent 70%);
}
.scn-cross-of-coral .deep-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(10,20,30,0.5) 0%, rgba(20,30,40,0.2) 100%);
  animation: crc-deep 20s ease-in-out infinite alternate;
}
.scn-cross-of-coral .coral-mound {
  position: absolute; bottom: 20%;
  width: 40px; height: 30px;
  background: linear-gradient(180deg, #3a4a4a 0%, #1a2a2a 100%);
  border-radius: 50% 50% 30% 30% / 40% 40% 60% 60%;
}
.scn-cross-of-coral .coral-mound.m1 { left: 25%; animation: crc-mound 10s ease-in-out infinite; }
.scn-cross-of-coral .coral-mound.m2 { left: 45%; animation: crc-mound 12s ease-in-out infinite 3s; }
.scn-cross-of-coral .coral-mound.m3 { right: 20%; animation: crc-mound 8s ease-in-out infinite 5s; }
.scn-cross-of-coral .coral-cross {
  position: absolute; bottom: 35%; left: 50%; transform: translateX(-50%);
  width: 40px; height: 100px;
  background: linear-gradient(180deg, #5a6a6a 0%, #3a4a4a 40%, #2a3a3a 100%);
  border-radius: 10% 10% 20% 20% / 30% 30% 20% 20%;
  box-shadow: inset 0 4px 10px rgba(0,0,0,0.3), 0 0 20px rgba(100,120,120,0.3);
  animation: crc-cross 15s ease-in-out infinite;
}
.scn-cross-of-coral .coral-cross::before {
  content: '';
  position: absolute; top: 20%; left: -20px; width: 80px; height: 20px;
  background: inherit;
  border-radius: 20% 20% 10% 10%;
  box-shadow: inherit;
}
.scn-cross-of-coral .kneeling-figure {
  position: absolute; bottom: 28%; left: 45%; transform: translateX(-50%);
  width: 18px; height: 35px;
  background: linear-gradient(180deg, #2a3a3a 0%, #1a2a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: crc-kneel 5s ease-in-out infinite;
}
.scn-cross-of-coral .silt-particle {
  position: absolute; top: 20%; left: 30%; width: 4px; height: 4px;
  background: rgba(200,200,180,0.6);
  border-radius: 50%;
  filter: blur(1px);
  animation: crc-silt 18s linear infinite;
}
@keyframes crc-deep {
  0% { opacity: 0.6; }
  50% { opacity: 0.9; }
  100% { opacity: 0.7; }
}
@keyframes crc-mound {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-3px) scale(1.03); }
  100% { transform: translateY(0) scale(1); }
}
@keyframes crc-cross {
  0% { transform: translateX(-50%) rotate(-1deg); }
  50% { transform: translateX(-50%) rotate(1deg); }
  100% { transform: translateX(-50%) rotate(-1deg); }
}
@keyframes crc-kneel {
  0% { transform: translateX(-50%) translateY(0) rotate(-2deg); }
  25% { transform: translateX(-50%) translateY(-1px) rotate(1deg); }
  50% { transform: translateX(-50%) translateY(0) rotate(0); }
  75% { transform: translateX(-50%) translateY(-1px) rotate(-1deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(2deg); }
}
@keyframes crc-silt {
  0% { transform: translate(0, 0) scale(1); opacity: 0; }
  10% { opacity: 1; }
  90% { opacity: 0.6; }
  100% { transform: translate(40px, -20px) scale(0.5); opacity: 0; }
}

.scn-gold-ingots-discovery {
  background: linear-gradient(180deg, #2c1f13 0%, #4a3420 30%, #6b4a2e 60%, #8b6b3b 100%),
              radial-gradient(ellipse at 50% 40%, #8b6b3b 0%, transparent 70%);
}
.scn-gold-ingots-discovery .bg {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, #1f1610 0%, #2c1f13 40%, #3a2a1a 100%);
  animation: gid-breathe 8s ease-in-out infinite;
}
.scn-gold-ingots-discovery .table {
  position: absolute;
  bottom: 20%;
  left: 15%;
  right: 15%;
  height: 12%;
  background: linear-gradient(180deg, #5a3d24 0%, #3a2a16 100%);
  border-radius: 6% 6% 0 0 / 30% 30% 0 0;
  box-shadow: 0 8px 20px rgba(0,0,0,.6);
  transform: perspective(600px) rotateX(25deg);
}
.scn-gold-ingots-discovery .ingot {
  position: absolute;
  bottom: 33%;
  width: 5%;
  height: 3%;
  background: linear-gradient(180deg, #e8c94a 0%, #b88e2e 50%, #8b6b1c 100%);
  border-radius: 15% / 40% 40% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,.5), inset 0 0 6px rgba(255,215,0,.3);
  animation: gid-shine 3s ease-in-out infinite;
}
.scn-gold-ingots-discovery .ingot-1 {
  left: 30%;
  animation-delay: 0s;
}
.scn-gold-ingots-discovery .ingot-2 {
  left: 42%;
  animation-delay: 0.5s;
  transform: rotate(-12deg);
}
.scn-gold-ingots-discovery .ingot-3 {
  left: 55%;
  animation-delay: 1s;
  transform: rotate(8deg);
}
.scn-gold-ingots-discovery .lantern {
  position: absolute;
  top: 15%;
  left: 12%;
  width: 8%;
  height: 12%;
  background: radial-gradient(circle at 50% 100%, #ffd866 0%, #b8882a 60%, #5a3a14 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 40px 15px rgba(255,200,80,.5);
  animation: gid-flicker 2s ease-in-out infinite alternate;
}
.scn-gold-ingots-discovery .captain {
  position: absolute;
  bottom: 22%;
  left: 20%;
  width: 12%;
  height: 28%;
  background: linear-gradient(180deg, #1a1816 0%, #0e0c0a 60%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: gid-stoop 6s ease-in-out infinite;
}
.scn-gold-ingots-discovery .shadow {
  position: absolute;
  bottom: 18%;
  left: 18%;
  width: 20%;
  height: 6%;
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,.5) 0%, transparent 70%);
  animation: gid-stretch 6s ease-in-out infinite;
}
@keyframes gid-breathe { 0%,100% { opacity: .85 } 50% { opacity: 1 } }
@keyframes gid-shine { 0%,100% { box-shadow: 0 4px 8px rgba(0,0,0,.5), inset 0 0 6px rgba(255,215,0,.3) } 50% { box-shadow: 0 6px 16px rgba(255,215,0,.6), inset 0 0 12px rgba(255,230,100,.6) } }
@keyframes gid-flicker { 0% { opacity: .9; transform: scale(1) } 50% { opacity: 1; transform: scale(1.02) translateY(-1px) } 100% { opacity: .95; transform: scale(.98) } }
@keyframes gid-stoop { 0%,100% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(2px) rotate(3deg) } }
@keyframes gid-stretch { 0%,100% { transform: scaleX(1) } 50% { transform: scaleX(1.05) translateX(3px) } }

.scn-chest-address-written {
  background: linear-gradient(180deg, #1f1812 0%, #2c241c 30%, #3a2e24 60%, #4c3826 100%),
              radial-gradient(ellipse at 50% 30%, #3a2e24 0%, transparent 60%);
}
.scn-chest-address-written .bg {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, #0e0a06 0%, #1a1410 50%, #0e0a06 100%);
  animation: caw-dim 12s ease-in-out infinite;
}
.scn-chest-address-written .chest {
  position: absolute;
  bottom: 15%;
  left: 30%;
  width: 40%;
  height: 45%;
  background: linear-gradient(180deg, #5a3a22 0%, #3a2a1a 60%, #2a1a10 100%);
  border-radius: 6% 6% 10% 10% / 8% 8% 20% 20%;
  box-shadow: 0 12px 30px rgba(0,0,0,.7), inset 0 -8px 20px rgba(0,0,0,.4);
  transform: perspective(800px) rotateX(10deg) rotateY(-5deg);
}
.scn-chest-address-written .lid {
  position: absolute;
  bottom: 58%;
  left: 30%;
  width: 40%;
  height: 10%;
  background: linear-gradient(180deg, #6b4a2a 0%, #4a3220 100%);
  border-radius: 6% 6% 0 0 / 30% 30% 0 0;
  box-shadow: 0 -4px 10px rgba(0,0,0,.5);
  transform-origin: bottom center;
  animation: caw-open 6s ease-in-out infinite alternate;
}
.scn-chest-address-written .inscription {
  position: absolute;
  bottom: 30%;
  left: 35%;
  width: 30%;
  height: 18%;
  background: linear-gradient(180deg, #8b6b3b 0%, #6b4a2a 40%, #4a3220 100%);
  border-radius: 10% / 20%;
  clip-path: polygon(10% 20%, 90% 20%, 80% 80%, 20% 80%);
  box-shadow: inset 0 0 4px rgba(200,160,80,.3);
  animation: caw-trace 4s ease-in-out infinite;
}
.scn-chest-address-written .hand {
  position: absolute;
  bottom: 25%;
  right: 32%;
  width: 8%;
  height: 20%;
  background: linear-gradient(180deg, #5a4636 0%, #3a2a1f 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
  transform-origin: 50% 80%;
  animation: caw-write 4s ease-in-out infinite;
}
.scn-chest-address-written .quill {
  position: absolute;
  bottom: 38%;
  right: 28%;
  width: 2%;
  height: 16%;
  background: linear-gradient(180deg, #f0e6d0 0%, #b8a88a 50%, #8a7a62 100%);
  border-radius: 0 0 50% 50% / 0 0 80% 80%;
  transform: rotate(-30deg);
  transform-origin: bottom center;
  animation: caw-write 4s ease-in-out infinite;
}
.scn-chest-address-written .glow {
  position: absolute;
  top: 20%;
  left: 40%;
  width: 20%;
  height: 30%;
  background: radial-gradient(ellipse at 50% 80%, rgba(255,200,100,.4) 0%, transparent 70%);
  pointer-events: none;
  animation: caw-pulse 3s ease-in-out infinite alternate;
}
@keyframes caw-dim { 0%,100% { opacity: .8 } 50% { opacity: 1 } }
@keyframes caw-open { 0% { transform: rotateX(0deg) } 100% { transform: rotateX(-45deg) } }
@keyframes caw-trace { 0%,100% { opacity: .6; transform: scale(1) } 50% { opacity: 1; transform: scale(1.02) } }
@keyframes caw-write { 0%,100% { transform: rotate(-30deg) translateY(0) } 50% { transform: rotate(-40deg) translateY(-4px) } }
@keyframes caw-pulse { 0% { opacity: .3; transform: scale(1) } 100% { opacity: .6; transform: scale(1.1) } }

.scn-nemo-leaves-mystery {
  background: linear-gradient(180deg, #0a0e1a 0%, #141a2e 30%, #1c2240 60%, #262e50 100%),
              radial-gradient(ellipse at 50% 80%, #1c2240 0%, transparent 60%);
}
.scn-nemo-leaves-mystery .bg {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, #060810 0%, #0e1220 50%, #060810 100%);
  animation: nlm-creep 20s ease-in-out infinite;
}
.scn-nemo-leaves-mystery .chair {
  position: absolute;
  bottom: 25%;
  left: 25%;
  width: 18%;
  height: 35%;
  background: linear-gradient(180deg, #2a2238 0%, #1a1628 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 15% 15%;
  box-shadow: 0 8px 20px rgba(0,0,0,.6);
  transform: perspective(400px) rotateY(15deg);
}
.scn-nemo-leaves-mystery .table {
  position: absolute;
  bottom: 20%;
  left: 35%;
  width: 30%;
  height: 8%;
  background: linear-gradient(180deg, #2a2238 0%, #1a1628 100%);
  border-radius: 10% / 50%;
  box-shadow: 0 6px 14px rgba(0,0,0,.5);
}
.scn-nemo-leaves-mystery .porthole {
  position: absolute;
  top: 15%;
  right: 10%;
  width: 18%;
  height: 22%;
  background: radial-gradient(circle at 50% 50%, #4a6a8a 0%, #2a3a5a 60%, #0e1220 100%);
  border-radius: 50%;
  box-shadow: inset 0 0 20px rgba(0,0,0,.5), 0 0 30px rgba(74,106,138,.2);
  animation: nlm-water 8s ease-in-out infinite alternate;
}
.scn-nemo-leaves-mystery .chest-shadow {
  position: absolute;
  bottom: 10%;
  left: 50%;
  width: 20%;
  height: 30%;
  background: linear-gradient(180deg, #161a2e 0%, #0e1220 100%);
  border-radius: 8% 8% 12% 12% / 10% 10% 25% 25%;
  box-shadow: 0 10px 30px rgba(0,0,0,.7);
  transform: translateX(-50%);
  animation: nlm-solid 6s ease-in-out infinite;
}
.scn-nemo-leaves-mystery .fog {
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at 50% 70%, rgba(20,30,50,.4) 0%, transparent 70%);
  pointer-events: none;
  animation: nlm-drift 15s linear infinite;
}
.scn-nemo-leaves-mystery .vignette {
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at 50% 50%, transparent 40%, rgba(0,0,10,.6) 100%);
  pointer-events: none;
}
@keyframes nlm-creep { 0%,100% { opacity: .7 } 50% { opacity: 1 } }
@keyframes nlm-water { 0% { transform: scale(1); box-shadow: inset 0 0 20px rgba(0,0,0,.5), 0 0 30px rgba(74,106,138,.2) } 100% { transform: scale(1.02); box-shadow: inset 0 0 25px rgba(0,0,0,.5), 0 0 40px rgba(74,106,138,.4) } }
@keyframes nlm-solid { 0%,100% { transform: translateX(-50%) } 50% { transform: translateX(-48%) translateY(-2px) } }
@keyframes nlm-drift { 0% { transform: translateX(0) } 100% { transform: translateX(120vw) } }

.scn-gold-delivered-at-night {
  background: linear-gradient(180deg, #0a0e1a 0%, #141e30 40%, #1a2840 70%, #0e1a28 100%),
              radial-gradient(ellipse at 50% 100%, #1a2840 0%, transparent 60%);
}
.scn-gold-delivered-at-night .sky {
  position: absolute;
  inset: 0 0 30% 0;
  background: linear-gradient(180deg, #0a0e1a 0%, #162036 50%, #1a2840 100%);
  animation: gdn-stars 20s ease-in-out infinite alternate;
}
.scn-gold-delivered-at-night .moon {
  position: absolute;
  top: 12%;
  left: 60%;
  width: 12%;
  height: 12%;
  background: radial-gradient(circle at 40% 40%, #f0f4ff 0%, #c0c8e0 50%, #8a92a8 100%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px rgba(192,200,224,.3), 0 0 120px 40px rgba(192,200,224,.1);
  animation: gdn-moon 12s ease-in-out infinite;
}
.scn-gold-delivered-at-night .cloud-1 {
  position: absolute;
  top: 8%;
  left: 20%;
  width: 30%;
  height: 8%;
  background: linear-gradient(180deg, rgba(200,210,230,.5) 0%, rgba(200,210,230,.1) 100%);
  border-radius: 50%;
  filter: blur(8px);
  animation: gdn-drift1 40s linear infinite;
}
.scn-gold-delivered-at-night .cloud-2 {
  position: absolute;
  top: 18%;
  right: 10%;
  width: 20%;
  height: 6%;
  background: linear-gradient(180deg, rgba(200,210,230,.4) 0%, rgba(200,210,230,.05) 100%);
  border-radius: 50%;
  filter: blur(6px);
  animation: gdn-drift2 55s linear infinite reverse;
}
.scn-gold-delivered-at-night .sea {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 35%;
  background: linear-gradient(180deg, #0a1428 0%, #061020 60%, #020810 100%);
  animation: gdn-swell 8s ease-in-out infinite;
}
.scn-gold-delivered-at-night .nautilus {
  position: absolute;
  bottom: 18%;
  left: 10%;
  width: 25%;
  height: 20%;
  background: linear-gradient(180deg, #2a3a50 0%, #1a2638 50%, #0e1828 100%);
  border-radius: 40% 20% 10% 30% / 50% 30% 20% 40%;
  box-shadow: 0 0 30px rgba(20,40,60,.5), inset 0 -10px 20px rgba(0,0,0,.4);
  animation: gdn-rise 10s ease-in-out infinite;
}
.scn-gold-delivered-at-night .longboat {
  position: absolute;
  bottom: 22%;
  left: 45%;
  width: 15%;
  height: 6%;
  background: linear-gradient(180deg, #2a3420 0%, #1a2214 100%);
  border-radius: 30% 30% 10% 10% / 60% 60% 20% 20%;
  box-shadow: 0 4px 10px rgba(0,0,0,.6);
  animation: gdn-rock 4s ease-in-out infinite;
}
.scn-gold-delivered-at-night .reflection {
  position: absolute;
  bottom: 5%;
  left: 30%;
  width: 40%;
  height: 10%;
  background: linear-gradient(180deg, rgba(192,200,224,.15) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(10px);
  animation: gdn-shimmer 6s ease-in-out infinite alternate;
}
@keyframes gdn-stars { 0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .7 } }
@keyframes gdn-moon { 0%,100% { transform: scale(1); box-shadow: 0 0 60px 20px rgba(192,200,224,.3), 0 0 120px 40px rgba(192,200,224,.1) } 50% { transform: scale(1.02); box-shadow: 0 0 80px 30px rgba(192,200,224,.4), 0 0 140px 50px rgba(192,200,224,.15) } }
@keyframes gdn-drift1 { 0% { transform: translateX(0) } 100% { transform: translateX(120vw) } }
@keyframes gdn-drift2 { 0% { transform: translateX(0) } 100% { transform: translateX(-100vw) } }
@keyframes gdn-swell { 0%,100% { transform: translateY(0) } 50% { transform: translateY(3px) } }
@keyframes gdn-rise { 0%,100% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-4px) rotate(2deg) } }
@keyframes gdn-rock { 0%,100% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(2px) rotate(3deg) } }
@keyframes gdn-shimmer { 0% { opacity: .5 } 100% { opacity: .8 } }

.scn-lights-on-boughs { background: linear-gradient(180deg, #0a2a1a 0%, #1a3a2a 40%, #2a4a3a 100%), radial-gradient(ellipse at 30% 40%, #3a6a4a 0%, transparent 70%); }
.scn-lights-on-boughs .water-bg { position:absolute; inset:0; background: linear-gradient(135deg, rgba(10,42,26,.7) 0%, rgba(26,58,42,.4) 50%, rgba(42,74,58,.6) 100%); animation: lob-water 14s ease-in-out infinite alternate; }
.scn-lights-on-boughs .bough { position:absolute; bottom:20%; border-radius:60% 40% 80% 20% / 50% 60% 40% 50%; background: linear-gradient(135deg, #4a7a5a 0%, #2a5a3a 70%, #1a3a2a 100%); box-shadow: inset 0 4px 12px rgba(0,0,0,.3), 0 0 20px rgba(100,200,120,.15); transform-origin: bottom center; }
.scn-lights-on-boughs .bough-1 { left:15%; width:28%; height:55%; animation: lob-sway-a 6s ease-in-out infinite; }
.scn-lights-on-boughs .bough-2 { left:38%; width:32%; height:65%; animation: lob-sway-b 8s ease-in-out infinite 1s; }
.scn-lights-on-boughs .bough-3 { right:12%; width:24%; height:48%; animation: lob-sway-c 7s ease-in-out infinite 0.5s; }
.scn-lights-on-boughs .light-spot { position:absolute; width:12px; height:12px; border-radius:50%; background: radial-gradient(circle, rgba(200,255,180,.9) 0%, rgba(150,220,130,.3) 50%, transparent 100%); box-shadow: 0 0 30px 8px rgba(180,255,160,.5), 0 0 60px 20px rgba(150,220,130,.2); animation: lob-pulse 3s ease-in-out infinite alternate; }
.scn-lights-on-boughs .light-a { top:28%; left:22%; animation-delay:0s; }
.scn-lights-on-boughs .light-b { top:40%; left:55%; animation-delay:0.8s; width:16px; height:16px; }
.scn-lights-on-boughs .light-c { top:22%; right:25%; animation-delay:1.6s; width:10px; height:10px; }
.scn-lights-on-boughs .particle { position:absolute; width:5px; height:5px; border-radius:50%; background: rgba(200,255,200,.8); box-shadow: 0 0 10px 2px rgba(180,255,180,.4); animation: lob-float 12s linear infinite; }
.scn-lights-on-boughs .particle-1 { top:60%; left:30%; animation-delay:0s; }
.scn-lights-on-boughs .particle-2 { top:50%; left:70%; animation-delay:3s; width:3px; height:3px; }
@keyframes lob-water { 0% { opacity:.6; transform: scale(1) } 33% { opacity:.8; transform: scale(1.02) } 66% { opacity:.7; transform: scale(.98) } 100% { opacity:.65; transform: scale(1) } }
@keyframes lob-sway-a { 0% { transform: rotate(-4deg) scaleY(1) } 33% { transform: rotate(2deg) scaleY(1.03) } 66% { transform: rotate(-1deg) scaleY(.97) } 100% { transform: rotate(-4deg) scaleY(1) } }
@keyframes lob-sway-b { 0% { transform: rotate(3deg) scaleY(1) } 33% { transform: rotate(-2deg) scaleY(1.04) } 66% { transform: rotate(1deg) scaleY(.96) } 100% { transform: rotate(3deg) scaleY(1) } }
@keyframes lob-sway-c { 0% { transform: rotate(-2deg) scaleY(1) } 33% { transform: rotate(3deg) scaleY(.98) } 66% { transform: rotate(-3deg) scaleY(1.02) } 100% { transform: rotate(-2deg) scaleY(1) } }
@keyframes lob-pulse { 0% { opacity:.4; transform: scale(.8) } 33% { opacity:1; transform: scale(1.3) } 66% { opacity:.7; transform: scale(1.1) } 100% { opacity:.5; transform: scale(.9) } }
@keyframes lob-float { 0% { transform: translateY(0) translateX(0) rotate(0); opacity:1 } 25% { transform: translateY(-30px) translateX(15px) rotate(90deg); opacity:.8 } 50% { transform: translateY(-60px) translateX(-10px) rotate(180deg); opacity:.6 } 75% { transform: translateY(-90px) translateX(20px) rotate(270deg); opacity:.4 } 100% { transform: translateY(-120px) translateX(0) rotate(360deg); opacity:0 } }

.scn-precious-coral-specimens { background: linear-gradient(180deg, #1a2a3a 0%, #2a3a4a 40%, #3a4a5a 100%), radial-gradient(ellipse at 50% 60%, #4a6a7a 0%, transparent 70%); }
.scn-precious-coral-specimens .bg-deep-coral { position:absolute; inset:0; background: linear-gradient(135deg, rgba(26,42,58,.5) 0%, rgba(42,58,74,.3) 50%, rgba(58,74,90,.4) 100%); }
.scn-precious-coral-specimens .coral-base { position:absolute; bottom:15%; left:15%; right:15%; height:35%; background: linear-gradient(180deg, #8a6a4a 0%, #6a4a3a 60%, #3a2a1a 100%); border-radius: 30% 70% 50% 50% / 60% 80% 20% 40%; box-shadow: inset 0 8px 20px rgba(0,0,0,.4); }
.scn-precious-coral-specimens .coral-branch { position:absolute; bottom:30%; border-radius:40% 60% 50% 50% / 30% 70% 30% 70%; transform-origin: bottom center; background: linear-gradient(180deg, #c87858 0%, #a06040 40%, #7a4838 100%); box-shadow: 0 4px 12px rgba(0,0,0,.3), inset 0 2px 8px rgba(255,200,150,.3); }
.scn-precious-coral-specimens .branch-left { left:18%; width:22%; height:45%; animation: pcs-sway-l 5s ease-in-out infinite; }
.scn-precious-coral-specimens .branch-right { right:18%; width:20%; height:40%; animation: pcs-sway-r 6s ease-in-out infinite 0.5s; }
.scn-precious-coral-specimens .branch-center { left:38%; width:26%; height:55%; animation: pcs-sway-c 7s ease-in-out infinite 1s; }
.scn-precious-coral-specimens .coral-glitter { position:absolute; width:8px; height:8px; border-radius:50%; background: radial-gradient(circle, #ffd8a8 0%, #d8a878 50%, transparent 100%); box-shadow: 0 0 20px 6px rgba(255,216,168,.5), 0 0 40px 12px rgba(200,150,100,.2); }
.scn-precious-coral-specimens .glitter-1 { top:40%; left:28%; animation: pcs-glint 2.5s ease-in-out infinite alternate; }
.scn-precious-coral-specimens .glitter-2 { top:35%; right:30%; animation: pcs-glint 3.2s ease-in-out infinite alternate 0.8s; width:10px; height:10px; }
.scn-precious-coral-specimens .coral-shadow { position:absolute; bottom:15%; left:20%; right:20%; height:20%; background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,.3) 0%, transparent 100%); }
@keyframes pcs-sway-l { 0% { transform: rotate(-8deg) scaleY(1) } 33% { transform: rotate(3deg) scaleY(1.04) } 66% { transform: rotate(-2deg) scaleY(.96) } 100% { transform: rotate(-8deg) scaleY(1) } }
@keyframes pcs-sway-r { 0% { transform: rotate(6deg) scaleY(1) } 33% { transform: rotate(-4deg) scaleY(1.03) } 66% { transform: rotate(2deg) scaleY(.97) } 100% { transform: rotate(6deg) scaleY(1) } }
@keyframes pcs-sway-c { 0% { transform: rotate(-3deg) scaleY(1) } 33% { transform: rotate(5deg) scaleY(1.05) } 66% { transform: rotate(1deg) scaleY(.95) } 100% { transform: rotate(-3deg) scaleY(1) } }
@keyframes pcs-glint { 0% { opacity:.2; transform: scale(.6) rotate(0) } 33% { opacity:1; transform: scale(1.4) rotate(120deg) } 66% { opacity:.7; transform: scale(1.1) rotate(240deg) } 100% { opacity:.3; transform: scale(.7) rotate(360deg) } }

.scn-macciota-coral { background: linear-gradient(180deg, #2a1a1a 0%, #3a2a2a 35%, #4a3a3a 100%), radial-gradient(ellipse at 40% 50%, #5a3a3a 0%, transparent 70%); }
.scn-macciota-coral .bg-tangled { position:absolute; inset:0; background: linear-gradient(135deg, rgba(42,26,26,.4) 0%, rgba(58,42,42,.3) 50%, rgba(74,58,58,.5) 100%); }
.scn-macciota-coral .macciota-clump { position:absolute; border-radius: 40% 60% 50% 50% / 30% 50% 50% 70%; background: linear-gradient(135deg, #a06858 0%, #7a5040 40%, #5a3828 100%); box-shadow: inset 0 4px 16px rgba(0,0,0,.4), 0 0 20px rgba(160,104,88,.2); }
.scn-macciota-coral .clump-large { bottom:18%; left:15%; right:30%; height:50%; animation: mc-morph-a 10s ease-in-out infinite alternate; }
.scn-macciota-coral .clump-mid { bottom:25%; left:35%; right:10%; height:35%; animation: mc-morph-b 12s ease-in-out infinite alternate 1s; background: linear-gradient(135deg, #b07868 0%, #8a5848 40%, #6a4030 100%); }
.scn-macciota-coral .clump-small { bottom:30%; left:5%; right:45%; height:28%; animation: mc-morph-c 8s ease-in-out infinite alternate 0.5s; background: linear-gradient(135deg, #c08878 0%, #9a6858 40%, #7a5040 100%); }
.scn-macciota-coral .pink-vein { position:absolute; border-radius: 50% 50% 50% 50% / 30% 30% 70% 70%; background: linear-gradient(180deg, rgba(200,150,160,.7) 0%, rgba(180,130,140,.3) 100%); box-shadow: 0 0 15px 4px rgba(200,150,160,.3); }
.scn-macciota-coral .vein-1 { bottom:38%; left:28%; width:12%; height:30%; animation: mc-pulse-a 5s ease-in-out infinite alternate; }
.scn-macciota-coral .vein-2 { bottom:42%; right:22%; width:10%; height:25%; animation: mc-pulse-b 6s ease-in-out infinite alternate 1.5s; }
.scn-macciota-coral .tangled-bg { position:absolute; inset:10% 5% 15% 5%; background: radial-gradient(ellipse at 50% 60%, rgba(90,50,40,.2) 0%, transparent 70%); border-radius: 30% 70% 40% 60% / 50% 50% 50% 50%; animation: mc-tangle 15s ease-in-out infinite alternate; }
.scn-macciota-coral .alcove { position:absolute; bottom:20%; left:10%; right:40%; height:45%; background: radial-gradient(ellipse at 70% 50%, rgba(120,80,70,.15) 0%, transparent 100%); border-radius: 60% 40% 50% 50% / 40% 60% 40% 60%; }
@keyframes mc-morph-a { 0% { transform: scale(1) rotate(0) } 33% { transform: scale(1.04) rotate(2deg) } 66% { transform: scale(.96) rotate(-1deg) } 100% { transform: scale(1) rotate(0) } }
@keyframes mc-morph-b { 0% { transform: scale(1) rotate(0) translateX(0) } 33% { transform: scale(1.02) rotate(-3deg) translateX(5px) } 66% { transform: scale(.97) rotate(2deg) translateX(-3px) } 100% { transform: scale(1) rotate(0) translateX(0) } }
@keyframes mc-morph-c { 0% { transform: scale(1) } 33% { transform: scale(1.05) } 66% { transform: scale(.95) } 100% { transform: scale(1) } }
@keyframes mc-pulse-a { 0% { opacity:.4 } 33% { opacity:.8 } 66% { opacity:.5 } 100% { opacity:.4 } }
@keyframes mc-pulse-b { 0% { opacity:.5 } 33% { opacity:.9 } 66% { opacity:.6 } 100% { opacity:.5 } }
@keyframes mc-tangle { 0% { opacity:.3; transform: scale(1) rotate(0) } 33% { opacity:.5; transform: scale(1.02) rotate(3deg) } 66% { opacity:.4; transform: scale(.98) rotate(-2deg) } 100% { opacity:.3; transform: scale(1) rotate(0) } }

.scn-magical-lighting { background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 40%, #2a2a3a 100%), radial-gradient(ellipse at 50% 40%, #3a3a4a 0%, transparent 70%); }
.scn-magical-lighting .cavern-wall { position:absolute; inset:0; background: linear-gradient(135deg, rgba(10,10,26,.6) 0%, rgba(26,26,42,.4) 50%, rgba(42,42,58,.5) 100%); }
.scn-magical-lighting .arch-left { position:absolute; bottom:20%; left:-5%; width:55%; height:70%; border-radius: 80% 20% 50% 50% / 60% 40% 60% 40%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 60%, #0a0a1a 100%); box-shadow: inset 0 4px 20px rgba(0,0,0,.5), 0 0 30px rgba(100,100,180,.1); transform-origin: bottom center; animation: ml-breath 12s ease-in-out infinite alternate; }
.scn-magical-lighting .arch-right { position:absolute; bottom:20%; right:-5%; width:50%; height:65%; border-radius: 20% 80% 50% 50% / 60% 40% 60% 40%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 60%, #0a0a1a 100%); box-shadow: inset 0 4px 20px rgba(0,0,0,.5), 0 0 30px rgba(100,100,180,.1); transform-origin: bottom center; animation: ml-breath 14s ease-in-out infinite alternate 1s; }
.scn-magical-lighting .overhang { position:absolute; top:8%; left:25%; right:20%; height:25%; background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 60%, #1a1a2a 100%); border-radius: 50% 50% 30% 70% / 80% 80% 20% 20%; box-shadow: inset 0 6px 20px rgba(0,0,0,.4), 0 4px 30px rgba(80,80,160,.1); animation: ml-hover 15s ease-in-out infinite alternate; }
.scn-magical-lighting .chandelier-glow { position:absolute; top:12%; left:40%; right:40%; height:18%; background: radial-gradient(ellipse at 50% 0%, rgba(200,200,255,.4) 0%, rgba(150,150,220,.15) 40%, transparent 100%); border-radius: 50%; box-shadow: 0 0 60px 20px rgba(150,150,220,.2); animation: ml-glow-pulse 4s ease-in-out infinite alternate; }
.scn-magical-lighting .spark { position:absolute; width:6px; height:6px; border-radius:50%; background: radial-gradient(circle, #d8d8ff 0%, #a0a0e0 50%, transparent 100%); box-shadow: 0 0 16px 4px rgba(160,160,224,.6), 0 0 32px 8px rgba(120,120,200,.3); }
.scn-magical-lighting .spark-1 { top:18%; left:35%; animation: ml-sparkle 3s ease-in-out infinite; }
.scn-magical-lighting .spark-2 { top:22%; right:35%; animation: ml-sparkle 4s ease-in-out infinite 1.2s; width:4px; height:4px; }
.scn-magical-lighting .spark-3 { top:14%; left:50%; width:5px; height:5px; animation: ml-sparkle 3.6s ease-in-out infinite 0.6s; }
@keyframes ml-breath { 0% { transform: scale(1) translateY(0) } 33% { transform: scale(1.01) translateY(4px) } 66% { transform: scale(.99) translateY(-2px) } 100% { transform: scale(1) translateY(0) } }
@keyframes ml-hover { 0% { transform: translateY(0) scale(1) } 33% { transform: translateY(3px) scale(1.01) } 66% { transform: translateY(-2px) scale(.99) } 100% { transform: translateY(0) scale(1) } }
@keyframes ml-glow-pulse { 0% { opacity:.5; transform: scaleX(1) scaleY(1) } 33% { opacity:1; transform: scaleX(1.1) scaleY(1.2) } 66% { opacity:.7; transform: scaleX(.95) scaleY(.9) } 100% { opacity:.55; transform: scaleX(1) scaleY(1) } }
@keyframes ml-sparkle { 0% { opacity:0; transform: translate(0,0) scale(.5) rotate(0) } 25% { opacity:1; transform: translate(8px,-12px) scale(1.3) rotate(90deg) } 50% { opacity:.6; transform: translate(-4px,-20px) scale(.8) rotate(180deg) } 75% { opacity:.3; transform: translate(6px,-28px) scale(1.1) rotate(270deg) } 100% { opacity:0; transform: translate(0,-35px) scale(.4) rotate(360deg) } }

.scn-new-hebrides-description {
  background:
    linear-gradient(180deg, #87ceeb 0%, #b0e0e6 40%, #f0e68c 70%, #ffa500 100%),
    radial-gradient(ellipse at 50% 0%, #ffd700 0%, transparent 60%);
}
.scn-new-hebrides-description .nh-sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #87ceeb 0%, #b0e0e6 80%);
  animation: nh-sky 15s ease-in-out infinite alternate;
}
.scn-new-hebrides-description .nh-sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #4682b4 0%, #2c5a7a 100%);
  border-radius: 40% 60% 0 0 / 20% 30% 0 0;
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.3);
  animation: nh-sea 20s ease-in-out infinite alternate;
}
.scn-new-hebrides-description .nh-island {
  position: absolute; bottom: 30%; left: 30%; width: 120px; height: 60px;
  background: linear-gradient(180deg, #8fbc8f 0%, #556b2f 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  box-shadow: 0 10px 20px rgba(0,0,0,0.4);
  animation: nh-island 12s ease-in-out infinite;
}
.scn-new-hebrides-description .nh-sun {
  position: absolute; top: 10%; left: 60%; width: 50px; height: 50px;
  background: radial-gradient(circle, #ffd700 0%, #ff8c00 60%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px rgba(255,215,0,0.4);
  animation: nh-sun 8s ease-in-out infinite alternate;
}
.scn-new-hebrides-description .nh-cloud1 {
  position: absolute; top: 18%; left: 10%; width: 100px; height: 30px;
  background: linear-gradient(180deg, rgba(255,255,255,0.7) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(8px);
  animation: nh-cloud1 40s linear infinite;
}
.scn-new-hebrides-description .nh-cloud2 {
  position: absolute; top: 25%; right: 15%; width: 80px; height: 20px;
  background: linear-gradient(180deg, rgba(255,255,255,0.5) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(6px);
  animation: nh-cloud2 55s linear infinite reverse;
}
.scn-new-hebrides-description .nh-ship {
  position: absolute; bottom: 38%; left: 50%; width: 40px; height: 20px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 10% 10% 40% 40% / 30% 30% 40% 40%;
  transform: translateX(-50%);
  box-shadow: 0 2px 8px rgba(0,0,0,0.5);
  animation: nh-ship 6s ease-in-out infinite alternate;
}
@keyframes nh-sky { 0% { opacity:0.9; transform: scaleY(1); } 50% { opacity:1; transform: scaleY(1.02); } 100% { opacity:0.85; transform: scaleY(0.98); } }
@keyframes nh-sea { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(2px); } }
@keyframes nh-island { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(1.02); } 100% { transform: translateY(1px) scale(0.98); } }
@keyframes nh-sun { 0% { opacity:0.8; transform: translateY(0) scale(1); } 50% { opacity:1; transform: translateY(-2px) scale(1.05); } 100% { opacity:0.85; transform: translateY(1px) scale(0.95); } }
@keyframes nh-cloud1 { 0% { transform: translateX(-50px); } 100% { transform: translateX(120vw); } }
@keyframes nh-cloud2 { 0% { transform: translateX(0); } 100% { transform: translateX(-140vw); } }
@keyframes nh-ship { 0% { transform: translateX(-50%) rotate(-1deg); } 50% { transform: translateX(-48%) rotate(1deg); } 100% { transform: translateX(-52%) rotate(0deg); } }

.scn-christmas-missed {
  background:
    linear-gradient(180deg, #c0996a 0%, #e0c090 50%, #f5deb3 100%),
    radial-gradient(ellipse at 20% 80%, #ffe4b5 0%, transparent 60%);
}
.scn-christmas-missed .cm-wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #d4b88c 0%, #b8926a 100%);
  animation: cm-wall 10s ease-in-out infinite alternate;
}
.scn-christmas-missed .cm-window {
  position: absolute; bottom: 30%; left: 10%; width: 80px; height: 100px;
  background: linear-gradient(180deg, #87ceeb 0%, #b0e0e6 80%);
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(255,255,255,0.3);
  animation: cm-window 8s ease-in-out infinite alternate;
}
.scn-christmas-missed .cm-tree {
  position: absolute; bottom: 15%; left: 30%; width: 60px; height: 90px;
  background: linear-gradient(180deg, #228b22 0%, #006400 100%);
  clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
  box-shadow: 0 10px 20px rgba(0,0,0,0.3);
  animation: cm-tree 6s ease-in-out infinite;
}
.scn-christmas-missed .cm-star {
  position: absolute; bottom: 78%; left: 30%; width: 20px; height: 20px;
  background: radial-gradient(circle, #ffd700 0%, #ffa500 80%);
  border-radius: 50%;
  box-shadow: 0 0 30px 8px rgba(255,215,0,0.5);
  animation: cm-star 3s ease-in-out infinite alternate;
}
.scn-christmas-missed .cm-figure {
  position: absolute; bottom: 20%; left: 50%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #2c1e10 0%, #1a0e00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cm-figure 4s ease-in-out infinite;
}
.scn-christmas-missed .cm-present {
  position: absolute; bottom: 15%; left: 55%; width: 30px; height: 20px;
  background: linear-gradient(135deg, #7c4a3a 0%, #5e2e1a 100%);
  border-radius: 6px 6px 4px 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: cm-present 7s ease-in-out infinite alternate;
}
@keyframes cm-wall { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.95; } }
@keyframes cm-window { 0% { box-shadow: inset 0 0 20px rgba(255,255,255,0.3); } 50% { box-shadow: inset 0 0 40px rgba(255,255,255,0.5); } 100% { box-shadow: inset 0 0 20px rgba(255,255,255,0.2); } }
@keyframes cm-tree { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(1.03); } 100% { transform: translateY(1px) scale(0.97); } }
@keyframes cm-star { 0% { transform: scale(1); opacity:0.8; } 50% { transform: scale(1.3); opacity:1; } 100% { transform: scale(0.9); opacity:0.9; } }
@keyframes cm-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(0deg); } }
@keyframes cm-present { 0% { transform: translateY(0) rotate(-5deg); } 50% { transform: translateY(-1px) rotate(5deg); } 100% { transform: translateY(0) rotate(-3deg); } }

.scn-nemo-enters-lounge {
  background:
    linear-gradient(180deg, #1a1a3e 0%, #2c2244 50%, #4a3a6e 100%),
    radial-gradient(ellipse at 30% 70%, #6a4a8a 0%, transparent 50%);
}
.scn-nemo-enters-lounge .nl-background {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #1a1a3e 0%, #2c2244 60%, #3a2a4a 100%);
  animation: nl-bg 12s ease-in-out infinite alternate;
}
.scn-nemo-enters-lounge .nl-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.6);
  animation: nl-floor 10s ease-in-out infinite;
}
.scn-nemo-enters-lounge .nl-table {
  position: absolute; bottom: 15%; left: 30%; width: 120px; height: 40px;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 4px;
  box-shadow: 0 6px 12px rgba(0,0,0,0.5);
  transform: perspective(200px) rotateX(5deg);
  animation: nl-table 8s ease-in-out infinite alternate;
}
.scn-nemo-enters-lounge .nl-map {
  position: absolute; bottom: 18%; left: 33%; width: 100px; height: 30px;
  background: linear-gradient(135deg, #f5deb3 0%, #d2b48c 100%);
  border-radius: 2px;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.2);
  animation: nl-map 15s ease-in-out infinite;
}
.scn-nemo-enters-lounge .nl-chair {
  position: absolute; bottom: 15%; left: 55%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 40% 40% / 20% 20% 50% 50%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: nl-chair 6s ease-in-out infinite alternate;
}
.scn-nemo-enters-lounge .nl-figure {
  position: absolute; bottom: 15%; left: 38%; width: 20px; height: 45px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: nl-figure 3s ease-in-out infinite;
}
.scn-nemo-enters-lounge .nl-lamp {
  position: absolute; top: 20%; left: 50%; width: 14px; height: 20px;
  background: radial-gradient(circle, #f0e68c 0%, #b8860b 80%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 30px 10px rgba(240,230,140,0.5);
  transform: translateX(-50%);
  animation: nl-lamp 4s ease-in-out infinite alternate;
}
@keyframes nl-bg { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes nl-floor { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(1px); } }
@keyframes nl-table { 0% { transform: perspective(200px) rotateX(5deg) translateY(0); } 50% { transform: perspective(200px) rotateX(7deg) translateY(-1px); } 100% { transform: perspective(200px) rotateX(3deg) translateY(0); } }
@keyframes nl-map { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes nl-chair { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes nl-figure { 0% { transform: translateX(0) rotate(-3deg); } 50% { transform: translateX(3px) rotate(3deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes nl-lamp { 0% { opacity:0.7; transform: translateX(-50%) scaleY(1); } 50% { opacity:1; transform: translateX(-50%) scaleY(1.1); } 100% { opacity:0.8; transform: translateX(-50%) scaleY(0.95); } }

.scn-vanikoro-name-magic {
  background:
    linear-gradient(135deg, #1a1a2e 0%, #16213e 40%, #0f3460 100%),
    radial-gradient(ellipse at 30% 70%, #1a5276 0%, transparent 60%);
}
.scn-vanikoro-name-magic .vn-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #1a1a2e 0%, #16213e 50%, #0f3460 100%);
  animation: vn-bg 10s ease-in-out infinite alternate;
}
.scn-vanikoro-name-magic .vn-map {
  position: absolute; bottom: 20%; left: 10%; right: 10%; height: 40%;
  background: linear-gradient(135deg, #d2b48c 0%, #a0896c 100%);
  border-radius: 4px;
  box-shadow: 0 8px 20px rgba(0,0,0,0.6);
  animation: vn-map 8s ease-in-out infinite;
}
.scn-vanikoro-name-magic .vn-island {
  position: absolute; bottom: 35%; left: 40%; width: 60px; height: 30px;
  background: linear-gradient(180deg, #556b2f 0%, #2e4a1a 100%);
  border-radius: 50%;
  box-shadow: 0 0 15px 5px rgba(85,107,47,0.3);
  animation: vn-island 4s ease-in-out infinite alternate;
}
.scn-vanikoro-name-magic .vn-pointer {
  position: absolute; bottom: 45%; left: 43%; width: 4px; height: 30px;
  background: linear-gradient(180deg, #d4af37 0%, #b8860b 100%);
  border-radius: 0 0 50% 50%;
  transform-origin: bottom center;
  transform: rotate(15deg);
  box-shadow: 0 0 10px 2px rgba(212,175,55,0.5);
  animation: vn-pointer 2s ease-in-out infinite alternate;
}
.scn-vanikoro-name-magic .vn-figure {
  position: absolute; bottom: 18%; left: 55%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: vn-figure 3s ease-in-out infinite;
}
.scn-vanikoro-name-magic .vn-shadow {
  position: absolute; bottom: 15%; left: 50%; width: 40px; height: 12px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 100%);
  border-radius: 50%;
  animation: vn-shadow 3s ease-in-out infinite alternate;
}
.scn-vanikoro-name-magic .vn-spark {
  position: absolute; bottom: 50%; left: 42%; width: 10px; height: 10px;
  background: radial-gradient(circle, #ffd700 0%, #ff8c00 80%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px rgba(255,215,0,0.6);
  animation: vn-spark 1.5s ease-in-out infinite alternate;
}
@keyframes vn-bg { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes vn-map { 0% { opacity:0.8; transform: scale(0.99); } 50% { opacity:1; transform: scale(1.01); } 100% { opacity:0.9; transform: scale(1); } }
@keyframes vn-island { 0% { transform: scale(1) translateY(0); } 50% { transform: scale(1.05) translateY(-2px); } 100% { transform: scale(0.95) translateY(1px); } }
@keyframes vn-pointer { 0% { transform: rotate(10deg) scaleY(1); } 50% { transform: rotate(20deg) scaleY(1.1); } 100% { transform: rotate(12deg) scaleY(0.95); } }
@keyframes vn-figure { 0% { transform: translateX(0) rotate(-4deg); } 50% { transform: translateX(5px) rotate(4deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes vn-shadow { 0% { transform: scaleX(1); opacity:0.5; } 50% { transform: scaleX(1.3); opacity:0.7; } 100% { transform: scaleX(0.9); opacity:0.4; } }
@keyframes vn-spark { 0% { opacity:0.6; transform: translateY(0) scale(1); } 50% { opacity:1; transform: translateY(-3px) scale(1.5); } 100% { opacity:0.4; transform: translateY(1px) scale(0.8); } }

/* all scenes inside Nautilus */

/* --- aronnax-reflects-on-escape --- */
.scn-aronnax-reflects-on-escape {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 40%, #3a2a3e 100%), radial-gradient(ellipse at 30% 70%, #3a4a5e 0%, transparent 70%);
}
.scn-aronnax-reflects-on-escape .wall-left {
  position:absolute; left:0; top:0; width:35%; height:100%;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%);
  border-right: 2px solid #3a3a4e;
}
.scn-aronnax-reflects-on-escape .wall-right {
  position:absolute; right:0; top:0; width:30%; height:100%;
  background: linear-gradient(180deg, #2e2e40 0%, #1e1e30 100%);
}
.scn-aronnax-reflects-on-escape .floor {
  position:absolute; left:0; right:0; bottom:0; height:30%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 0 0 10% 10%;
  box-shadow: inset 0 8px 12px rgba(0,0,0,0.6);
}
.scn-aronnax-reflects-on-escape .porthole-frame {
  position:absolute; left:20%; top:25%; width:60px; height:60px;
  border-radius: 50%;
  background: radial-gradient(circle, #4a5a6a 0%, #2a3a4a 70%);
  border: 6px solid #3a3a4e;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.5);
}
.scn-aronnax-reflects-on-escape .porthole-sea {
  position:absolute; left:20%; top:25%; width:60px; height:60px;
  border-radius: 50%;
  background: radial-gradient(circle at 40% 60%, #1a3a4a 0%, #0a1a2a 100%);
  filter: blur(1px);
  animation: ar-sea 6s ease-in-out infinite alternate;
}
.scn-aronnax-reflects-on-escape .figure-sitting {
  position:absolute; left:45%; bottom:30%; width:40px; height:80px;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ar-figure 4s ease-in-out infinite alternate;
}
.scn-aronnax-reflects-on-escape .lamp-glow {
  position:absolute; right:10%; top:15%; width:12px; height:12px;
  background: radial-gradient(circle, #e0b070 0%, #c08040 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(192,128,64,0.6), 0 0 60px 20px rgba(192,128,64,0.3);
  animation: ar-lamp 3s ease-in-out infinite alternate;
}
.scn-aronnax-reflects-on-escape .shadow-on-wall {
  position:absolute; right:5%; bottom:15%; width:60px; height:90px;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.5) 0%, transparent 70%);
  filter: blur(4px);
  animation: ar-shadow 5s ease-in-out infinite alternate;
}
@keyframes ar-sea { 0% { opacity:0.7; transform: scale(1); } 50% { opacity:1; transform: scale(1.05); } 100% { opacity:0.8; transform: scale(0.95); } }
@keyframes ar-figure { 0% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(1deg) translateY(-2px); } 100% { transform: rotate(-1deg) translateY(0); } }
@keyframes ar-lamp { 0% { box-shadow: 0 0 20px 6px rgba(192,128,64,0.4); opacity:0.8; } 50% { box-shadow: 0 0 40px 15px rgba(224,176,112,0.7); opacity:1; } 100% { box-shadow: 0 0 25px 8px rgba(192,128,64,0.5); opacity:0.9; } }
@keyframes ar-shadow { 0% { transform: scaleX(1) translateY(0); } 50% { transform: scaleX(1.1) translateY(-4px); } 100% { transform: scaleX(0.95) translateY(0); } }

/* --- agonizing-day-before-escape --- */
.scn-agonizing-day-before-escape {
  background: linear-gradient(180deg, #18182a 0%, #28283a 50%, #3a2a3a 100%), radial-gradient(ellipse at 50% 80%, #3a4a5a 0%, transparent 70%);
}
.scn-agonizing-day-before-escape .wall-back {
  position:absolute; inset:0;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
}
.scn-agonizing-day-before-escape .porthole-large {
  position:absolute; left:20%; top:30%; width:100px; height:100px;
  border-radius: 50%;
  background: radial-gradient(circle, #2a4a5a 0%, #0a1a2a 100%);
  border: 8px solid #3a3a4e;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.6);
  animation: ag-porthole 8s ease-in-out infinite alternate;
}
.scn-agonizing-day-before-escape .figure-standing {
  position:absolute; left:40%; bottom:25%; width:36px; height:100px;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: ag-figure 3s ease-in-out infinite alternate;
}
.scn-agonizing-day-before-escape .hand-on-glass {
  position:absolute; left:22%; bottom:70%; width:20px; height:30px;
  background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%);
  border-radius: 60% 60% 40% 40%;
  transform: rotate(-15deg);
  animation: ag-hand 4s ease-in-out infinite alternate;
}
.scn-agonizing-day-before-escape .clock-pendulum {
  position:absolute; right:15%; top:15%; width:4px; height:60px;
  background: linear-gradient(180deg, #b0a080 0%, #8a7a5a 100%);
  border-radius: 2px;
  transform-origin: top center;
  animation: ag-pendulum 2s ease-in-out infinite alternate;
}
.scn-agonizing-day-before-escape .clock-body {
  position:absolute; right:12%; top:10%; width:40px; height:40px;
  background: radial-gradient(circle, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 50%;
  border: 3px solid #5a4a3a;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.5);
}
.scn-agonizing-day-before-escape .shadow-flicker {
  position:absolute; left:0; bottom:0; width:100%; height:20%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.4) 100%);
  animation: ag-flicker 2s step-end infinite;
}
@keyframes ag-porthole { 0% { transform: scale(1); opacity:0.8; } 50% { transform: scale(1.02); opacity:0.9; } 100% { transform: scale(0.98); opacity:0.8; } }
@keyframes ag-figure { 0% { transform: rotate(-1deg) translateY(0); } 50% { transform: rotate(2deg) translateY(-3px); } 100% { transform: rotate(-1deg) translateY(0); } }
@keyframes ag-hand { 0% { transform: rotate(-15deg) translateX(0); } 50% { transform: rotate(-10deg) translateX(4px); } 100% { transform: rotate(-15deg) translateX(0); } }
@keyframes ag-pendulum { 0% { transform: rotate(-20deg); } 50% { transform: rotate(20deg); } 100% { transform: rotate(-20deg); } }
@keyframes ag-flicker { 0% { opacity:0.3; } 50% { opacity:0.5; } 100% { opacity:0.3; } }

/* --- checking-compass-twice --- */
.scn-checking-compass-twice {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 50%, #3a2a3e 100%), radial-gradient(ellipse at 50% 50%, #4a4a5a 0%, transparent 70%);
}
.scn-checking-compass-twice .table-top {
  position:absolute; left:50%; top:60%; width:180px; height:30px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-checking-compass-twice .table-leg {
  position:absolute; left:50%; top:68%; width:12px; height:40px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 2px;
}
.scn-checking-compass-twice .compass-body {
  position:absolute; left:50%; top:58%; width:50px; height:50px;
  transform: translate(-50%,-50%);
  background: radial-gradient(circle, #7a6a5a 0%, #5a4a3a 100%);
  border-radius: 50%;
  border: 3px solid #8a7a6a;
  box-shadow: 0 0 10px rgba(0,0,0,0.5), inset 0 0 8px rgba(0,0,0,0.3);
  animation: ch-compass 6s ease-in-out infinite alternate;
}
.scn-checking-compass-twice .compass-needle {
  position:absolute; left:50%; top:58%; width:4px; height:20px;
  transform: translate(-50%,-50%) rotate(0deg);
  background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%);
  border-radius: 2px;
  transform-origin: 50% 90%;
  animation: ch-needle 2s ease-in-out infinite alternate;
}
.scn-checking-compass-twice .compass-dial {
  position:absolute; left:50%; top:58%; width:40px; height:40px;
  transform: translate(-50%,-50%);
  background: radial-gradient(circle, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50%;
  border: 1px solid #5a4a3a;
  box-shadow: inset 0 0 6px rgba(0,0,0,0.5);
}
.scn-checking-compass-twice .hand-reaching {
  position:absolute; left:35%; top:45%; width:60px; height:30px;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
  border-radius: 40% 60% 20% 20%;
  transform-origin: right center;
  animation: ch-hand 4s ease-in-out infinite alternate;
}
.scn-checking-compass-twice .shadow-on-table {
  position:absolute; left:45%; top:62%; width:80px; height:10px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 70%);
  animation: ch-shadow 5s ease-in-out infinite alternate;
}
.scn-checking-compass-twice .reflection-gleam {
  position:absolute; left:50%; top:56%; width:10px; height:10px;
  background: radial-gradient(circle, rgba(255,255,255,0.3) 0%, transparent 70%);
  transform: translate(-50%,-50%);
  animation: ch-gleam 3s ease-in-out infinite alternate;
}
@keyframes ch-compass { 0% { transform: translate(-50%,-50%) scale(1); } 50% { transform: translate(-50%,-50%) scale(1.03); } 100% { transform: translate(-50%,-50%) scale(0.97); } }
@keyframes ch-needle { 0% { transform: translate(-50%,-50%) rotate(0deg); } 25% { transform: translate(-50%,-50%) rotate(90deg); } 50% { transform: translate(-50%,-50%) rotate(180deg); } 75% { transform: translate(-50%,-50%) rotate(270deg); } 100% { transform: translate(-50%,-50%) rotate(360deg); } }
@keyframes ch-hand { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(10px) rotate(10deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes ch-shadow { 0% { transform: scaleX(1); opacity:0.5; } 50% { transform: scaleX(1.3); opacity:0.7; } 100% { transform: scaleX(1); opacity:0.5; } }
@keyframes ch-gleam { 0% { opacity:0.2; transform: translate(-50%,-50%) rotate(0deg); } 50% { opacity:0.6; transform: translate(-50%,-50%) rotate(45deg); } 100% { opacity:0.2; transform: translate(-50%,-50%) rotate(0deg); } }

/* --- no-complaints-against-nemo --- */
.scn-no-complaints-against-nemo {
  background: linear-gradient(180deg, #1a2a2a 0%, #2a3a3a 50%, #3a3a4a 100%), radial-gradient(ellipse at 50% 60%, #4a5a5a 0%, transparent 70%);
}
.scn-no-complaints-against-nemo .wall-soft {
  position:absolute; inset:0;
  background: linear-gradient(180deg, #2a3a3a 0%, #1a2a2a 100%);
  opacity:0.8;
}
.scn-no-complaints-against-nemo .porthole-calm {
  position:absolute; left:15%; top:20%; width:80px; height:80px;
  border-radius: 50%;
  background: radial-gradient(circle, #2a4a5a 0%, #0a1a2a 100%);
  border: 6px solid #3a4a4a;
  box-shadow: inset 0 0 25px rgba(0,0,0,0.4);
  animation: no-porthole 10s ease-in-out infinite alternate;
}
.scn-no-complaints-against-nemo .sea-swell {
  position:absolute; left:15%; top:20%; width:80px; height:80px;
  border-radius: 50%;
  background: radial-gradient(circle at 40% 60%, #1a3a4a 0%, #0a1a2a 100%);
  filter: blur(2px);
  animation: no-sea 8s ease-in-out infinite alternate;
}
.scn-no-complaints-against-nemo .armchair {
  position:absolute; left:45%; bottom:25%; width:70px; height:60px;
  background: linear-gradient(180deg, #4a3a3a 0%, #3a2a2a 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: no-chair 6s ease-in-out infinite alternate;
}
.scn-no-complaints-against-nemo .figure-reclining {
  position:absolute; left:48%; bottom:30%; width:40px; height:50px;
  background: linear-gradient(180deg, #3a4a4a 0%, #2a3a3a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform: rotate(10deg);
  transform-origin: bottom center;
  animation: no-figure 5s ease-in-out infinite alternate;
}
.scn-no-complaints-against-nemo .book-open {
  position:absolute; left:55%; bottom:32%; width:30px; height:20px;
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%);
  border-radius: 0 0 10% 10%;
  transform: rotate(-15deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: no-book 4s ease-in-out infinite alternate;
}
.scn-no-complaints-against-nemo .tea-cup {
  position:absolute; left:42%; bottom:28%; width:16px; height:16px;
  background: radial-gradient(circle, #a08060 0%, #806040 100%);
  border-radius: 50%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: no-cup 7s ease-in-out infinite alternate;
}
.scn-no-complaints-against-nemo .steam {
  position:absolute; left:42%; bottom:34%; width:20px; height:30px;
  background: radial-gradient(ellipse at 50% 100%, rgba(255,255,255,0.15) 0%, transparent 70%);
  filter: blur(3px);
  animation: no-steam 4s ease-in-out infinite alternate;
}
@keyframes no-porthole { 0% { transform: scale(1); opacity:0.7; } 50% { transform: scale(1.01); opacity:0.9; } 100% { transform: scale(0.99); opacity:0.7; } }
@keyframes no-sea { 0% { opacity:0.6; transform: translateY(0); } 50% { opacity:0.8; transform: translateY(-2px); } 100% { opacity:0.6; transform: translateY(0); } }
@keyframes no-chair { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes no-figure { 0% { transform: rotate(10deg) translateY(0); } 50% { transform: rotate(12deg) translateY(-2px); } 100% { transform: rotate(10deg) translateY(0); } }
@keyframes no-book { 0% { transform: rotate(-15deg) translateY(0); } 50% { transform: rotate(-13deg) translateY(-1px); } 100% { transform: rotate(-15deg) translateY(0); } }
@keyframes no-cup { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes no-steam { 0% { transform: translateY(0) scaleX(1); opacity:0.2; } 50% { transform: translateY(-8px) scaleX(1.5); opacity:0.4; } 100% { transform: translateY(0) scaleX(1); opacity:0.2; } }

/* suited-up – bright interior morning */
.scn-suited-up { background: linear-gradient(180deg, #f0f4f8 0%, #d4e8f0 50%, #b8d0e0 100%), radial-gradient(ellipse at 20% 80%, rgba(255,230,180,.3) 0%, transparent 60%); }
.scn-suited-up .bg { position:absolute; inset:0; background: linear-gradient(180deg, rgba(255,255,255,.1) 0%, transparent 100%); animation: su-bg 12s ease-in-out infinite alternate; }
.scn-suited-up .window { position:absolute; top:8%; left:12%; width:100px; height:100px; border-radius:50%; background: radial-gradient(circle at 30% 30%, #fff 0%, #b8d0e0 70%); box-shadow: inset 0 0 20px rgba(255,255,255,.4), 0 0 30px rgba(255,255,255,.2); animation: su-window 4s ease-in-out infinite alternate; }
.scn-suited-up .figure { position:absolute; bottom:22%; left:45%; width:40px; height:70px; background: linear-gradient(180deg, #2a3a5a 0%, #1a2a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: su-fig 3s ease-in-out infinite; }
.scn-suited-up .light-device-a { position:absolute; bottom:32%; left:38%; width:14px; height:12px; background: radial-gradient(circle, #ffe080 0%, #c0a050 70%); border-radius:30% 30% 20% 20%; box-shadow: 0 0 12px 3px #c0a050; animation: su-light-a 2.5s ease-in-out infinite; }
.scn-suited-up .light-device-b { position:absolute; bottom:32%; left:58%; width:14px; height:12px; background: radial-gradient(circle, #ffe080 0%, #c0a050 70%); border-radius:30% 30% 20% 20%; box-shadow: 0 0 12px 3px #c0a050; animation: su-light-b 2.5s ease-in-out infinite 1s; }
.scn-suited-up .breathing-device { position:absolute; bottom:28%; left:44%; width:18px; height:22px; background: linear-gradient(180deg, #a0a8c0 0%, #606878 100%); border-radius:40% 40% 20% 20%; box-shadow: inset 0 2px 6px rgba(0,0,0,.3); animation: su-breathe 4s ease-in-out infinite; }
.scn-suited-up .door-frame { position:absolute; bottom:0; left:20%; width:60%; height:50%; border:3px solid #8a9aa8; border-bottom:none; border-radius:8% 8% 0 0; background: transparent; box-shadow: inset 0 0 30px rgba(0,0,0,.1); }
@keyframes su-bg { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes su-window { 0% { transform: scale(1) rotate(0) } 50% { transform: scale(1.02) rotate(1deg) } 100% { transform: scale(1) rotate(0) } }
@keyframes su-fig { 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(5px) translateY(-1px) rotate(1deg) } 100% { transform: translateX(0) translateY(0) rotate(0) } }
@keyframes su-light-a { 0% { box-shadow: 0 0 8px 2px #c0a050; opacity:.8 } 50% { box-shadow: 0 0 16px 5px #ffe080; opacity:1 } 100% { box-shadow: 0 0 10px 3px #c0a050; opacity:.85 } }
@keyframes su-light-b { 0% { box-shadow: 0 0 8px 2px #c0a050; opacity:.8 } 50% { box-shadow: 0 0 16px 5px #ffe080; opacity:1 } 100% { box-shadow: 0 0 10px 3px #c0a050; opacity:.85 } }
@keyframes su-breathe { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-2px) scaleY(1.05) } 100% { transform: translateY(0) scaleY(1) } }

/* coral-realm-intro – dim interior underwater study */
.scn-coral-realm-intro { background: linear-gradient(180deg, #091826 0%, #122a40 50%, #1a3a5a 100%), radial-gradient(ellipse at 50% 0%, #1a4a6a 0%, transparent 70%); }
.scn-coral-realm-intro .bg-deep { position:absolute; inset:0; background: repeating-linear-gradient(0deg, transparent, transparent 60px, rgba(255,255,255,.02) 60px, rgba(255,255,255,.02) 61px); animation: cr-bg 30s linear infinite; }
.scn-coral-realm-intro .coral-sample { position:absolute; bottom:15%; left:25%; width:50px; height:70px; background: linear-gradient(135deg, #d08070 0%, #b06050 40%, #804a3a 100%); border-radius: 30% 70% 50% 50% / 60% 50% 50% 40%; box-shadow: 0 0 10px 2px rgba(180,100,80,.3); animation: cr-coral 5s ease-in-out infinite; }
.scn-coral-realm-intro .figure { position:absolute; bottom:25%; left:55%; width:30px; height:50px; background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cr-fig 4s ease-in-out infinite; }
.scn-coral-realm-intro .table { position:absolute; bottom:20%; left:20%; right:30%; height:10px; background: linear-gradient(180deg, #6a7a8a 0%, #4a5a6a 100%); border-radius:4px; box-shadow: 0 2px 6px rgba(0,0,0,.4); }
.scn-coral-realm-intro .lamp { position:absolute; bottom:40%; left:60%; width:20px; height:24px; background: radial-gradient(circle at 50% 30%, #c0d8e8 0%, #90b0c8 60%); border-radius:30% 30% 20% 20%; box-shadow: 0 0 20px 6px #90b0c8, 0 0 40px 12px rgba(144,176,200,.3); animation: cr-lamp 3s ease-in-out infinite alternate; }
.scn-coral-realm-intro .magnifier { position:absolute; bottom:22%; left:32%; width:16px; height:16px; border:2px solid #a0b0c0; border-radius:50%; background: radial-gradient(circle, rgba(255,255,255,.4) 0%, transparent 70%); box-shadow: 0 0 4px rgba(255,255,255,.2); animation: cr-mag 6s ease-in-out infinite; }
@keyframes cr-bg { 0% { transform: translateY(0) } 100% { transform: translateY(-60px) } }
@keyframes cr-coral { 0% { transform: scaleY(1) rotate(-2deg) } 50% { transform: scaleY(1.05) rotate(2deg) } 100% { transform: scaleY(1) rotate(-2deg) } }
@keyframes cr-fig { 0% { transform: translateX(0) translateY(0) } 25% { transform: translateX(3px) translateY(-1px) } 50% { transform: translateX(0) translateY(0) } 75% { transform: translateX(-3px) translateY(-1px) } 100% { transform: translateX(0) translateY(0) } }
@keyframes cr-lamp { 0% { opacity:.7; box-shadow: 0 0 15px 4px #90b0c8 } 50% { opacity:1; box-shadow: 0 0 25px 8px #c0d8e8 } 100% { opacity:.75; box-shadow: 0 0 15px 4px #90b0c8 } }
@keyframes cr-mag { 0% { transform: rotate(0) } 50% { transform: rotate(10deg) } 100% { transform: rotate(0) } }

/* coral-as-socialism – dim interior, close-up of polyps */
.scn-coral-as-socialism { background: linear-gradient(180deg, #0a1420 0%, #102a3a 50%, #1a3a4a 100%), radial-gradient(ellipse at 80% 20%, #2a5a6a 0%, transparent 60%); }
.scn-coral-as-socialism .bg-dark { position:absolute; inset:0; background: radial-gradient(circle at 50% 50%, rgba(255,255,255,.03) 0%, transparent 70%); animation: cs-bg 20s ease-in-out infinite alternate; }
.scn-coral-as-socialism .polypary-base { position:absolute; bottom:10%; left:10%; right:10%; height:20%; background: linear-gradient(180deg, #6a7a7a 0%, #4a5a5a 100%); border-radius: 20% 20% 10% 10%; box-shadow: inset 0 4px 10px rgba(0,0,0,.5); animation: cs-base 8s ease-in-out infinite; }
.scn-coral-as-socialism .polyp-cluster { position:absolute; bottom:25%; left:15%; width:60%; height:30%; display:flex; justify-content:space-around; align-items:flex-end; }
.scn-coral-as-socialism .polyp-cluster::before { content:''; display:block; width:8px; height:20px; background: linear-gradient(180deg, #e0a080 0%, #c08060 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 0 6px rgba(200,130,100,.4); animation: cs-polyp 4s ease-in-out infinite; }
.scn-coral-as-socialism .polyp-cluster::after { content:''; display:block; width:8px; height:20px; background: linear-gradient(180deg, #e0a080 0%, #c08060 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 0 6px rgba(200,130,100,.4); animation: cs-polyp 4s ease-in-out infinite 2s; }
.scn-coral-as-socialism .polyp-individual { position:absolute; bottom:40%; left:40%; width:14px; height:28px; background: linear-gradient(180deg, #f0b090 0%, #c08060 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 0 10px 3px rgba(200,130,100,.3); animation: cs-individual 5s ease-in-out infinite; }
.scn-coral-as-socialism .budding-dots { position:absolute; bottom:30%; left:20%; width:100%; height:10px; background: repeating-radial-gradient(circle at 10% 50%, #d0a080 0%, transparent 2px); background-size: 20px 10px; animation: cs-bud 3s ease-in-out infinite; }
.scn-coral-as-socialism .communal-glow { position:absolute; bottom:20%; left:30%; right:30%; height:40%; background: radial-gradient(ellipse, rgba(200,150,120,.15) 0%, transparent 70%); animation: cs-glow 6s ease-in-out infinite alternate; }
@keyframes cs-bg { 0% { opacity:.6 } 50% { opacity:.8 } 100% { opacity:.7 } }
@keyframes cs-base { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes cs-polyp { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.2) } 100% { transform: scaleY(1) } }
@keyframes cs-individual { 0% { transform: rotate(-5deg) scaleY(1) } 25% { transform: rotate(0) scaleY(1.1) } 50% { transform: rotate(5deg) scaleY(1) } 75% { transform: rotate(0) scaleY(1.1) } 100% { transform: rotate(-5deg) scaleY(1) } }
@keyframes cs-bud { 0% { background-position: 0 0 } 100% { background-position: 20px 0 } }
@keyframes cs-glow { 0% { opacity:.3 } 50% { opacity:.6 } 100% { opacity:.4 } }

/* walking-through-coral – bright interior underwater shoal */
.scn-walking-through-coral { background: linear-gradient(180deg, #b8d8e8 0%, #80b0d0 50%, #5090b0 100%), radial-gradient(ellipse at 20% 60%, #c0e0f0 0%, transparent 70%); }
.scn-walking-through-coral .bg-sky { position:absolute; inset:0; background: linear-gradient(180deg, rgba(255,255,255,.3) 0%, transparent 100%); animation: wc-sky 15s ease-in-out infinite alternate; }
.scn-walking-through-coral .seafloor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #a08060 0%, #806040 100%); border-radius: 30% 70% 0 0 / 40% 60% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.3); animation: wc-floor 20s ease-in-out infinite; }
.scn-walking-through-coral .coral-bush-left { position:absolute; bottom:25%; left:8%; width:60px; height:50px; background: radial-gradient(ellipse at 50% 30%, #d09070 0%, #a07050 70%); border-radius: 40% 60% 50% 50% / 60% 50% 50% 40%; box-shadow: 0 0 10px 2px rgba(160,112,80,.3); animation: wc-bush 6s ease-in-out infinite alternate; }
.scn-walking-through-coral .coral-bush-right { position:absolute; bottom:25%; right:10%; width:70px; height:55px; background: radial-gradient(ellipse at 50% 30%, #c88868 0%, #986048 70%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 0 10px 2px rgba(152,96,72,.3); animation: wc-bush 7s ease-in-out infinite alternate 1s; }
.scn-walking-through-coral .path { position:absolute; bottom:22%; left:35%; right:35%; height:12px; background: linear-gradient(180deg, #c0a880 0%, #a08860 100%); border-radius:50%; box-shadow: 0 0 8px rgba(0,0,0,.2); animation: wc-path 10s ease-in-out infinite; }
.scn-walking-through-coral .figure { position:absolute; bottom:23%; left:45%; width:24px; height:45px; background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: wc-fig 3.5s ease-in-out infinite; }
.scn-walking-through-coral .ruhmkorff-device { position:absolute; bottom:30%; left:50%; width:12px; height:10px; background: radial-gradient(circle, #f0d080 0%, #c0a060 70%); border-radius:30% 30% 20% 20%; box-shadow: 0 0 12px 3px #c0a060; animation: wc-light 2s ease-in-out infinite; }
@keyframes wc-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes wc-floor { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(0) } }
@keyframes wc-bush { 0% { transform: scaleX(1) rotate(0) } 50% { transform: scaleX(1.05) rotate(3deg) } 100% { transform: scaleX(1) rotate(0) } }
@keyframes wc-path { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.15) } 100% { transform: scaleY(1) } }
@keyframes wc-fig { 0% { transform: translateX(0) translateY(0) rotate(-1deg) } 25% { transform: translateX(6px) translateY(-2px) rotate(2deg) } 50% { transform: translateX(12px) translateY(0) rotate(-1deg) } 75% { transform: translateX(6px) translateY(-2px) rotate(2deg) } 100% { transform: translateX(0) translateY(0) rotate(0) } }
@keyframes wc-light { 0% { box-shadow: 0 0 8px 2px #c0a060; opacity:.8 } 50% { box-shadow: 0 0 18px 6px #f0d080; opacity:1 } 100% { box-shadow: 0 0 8px 2px #c0a060; opacity:.85 } }

/* approaching-suez – tense, moonlit underwater */
.scn-approaching-suez {
  background: linear-gradient(180deg, #0b1a2e 0%, #0d2a3a 40%, #0f3a4a 100%),
              radial-gradient(ellipse at 50% 20%, #3a6a8a 0%, transparent 70%);
}
.scn-approaching-suez .deep-water {
  position: absolute; inset: 0; background: linear-gradient(180deg, rgba(10,30,50,0.5) 0%, transparent 60%);
  animation: sz-water 8s ease-in-out infinite alternate;
}
.scn-approaching-suez .rocky-bottom {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1a2a2a 0%, #0a1a1a 100%);
  border-radius: 60% 40% 0 0 / 30% 20% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.6);
  animation: sz-rocks 12s ease-in-out infinite alternate;
}
.scn-approaching-suez .nautilus {
  position: absolute; bottom: 35%; left: 50%; width: 80px; height: 24px;
  transform: translateX(-50%);
  background: linear-gradient(90deg, #2a4a5a 0%, #3a6a7a 50%, #2a4a5a 100%);
  border-radius: 50% 50% 40% 40%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.5);
  animation: sz-nautilus 10s ease-in-out infinite;
}
.scn-approaching-suez .light-beam {
  position: absolute; bottom: 38%; width: 20px; height: 60px;
  background: linear-gradient(180deg, rgba(200,230,255,0.6) 0%, transparent 100%);
  filter: blur(4px);
  animation: sz-beam 3s ease-in-out infinite alternate;
}
.scn-approaching-suez .beam-1 { left: 42%; animation-delay: 0s; }
.scn-approaching-suez .beam-2 { left: 56%; animation-delay: 1.5s; }
.scn-approaching-suez .bubble {
  position: absolute; width: 8px; height: 8px; background: rgba(180,220,255,0.3);
  border-radius: 50%; animation: sz-bubble 6s linear infinite;
}
.scn-approaching-suez .bubble-1 { bottom: 30%; left: 30%; animation-delay: 0s; }
.scn-approaching-suez .bubble-2 { bottom: 25%; left: 60%; animation-delay: 2s; }
@keyframes sz-water {
  0% { opacity: 0.6; transform: scale(1); }
  50% { opacity: 0.8; transform: scale(1.02); }
  100% { opacity: 0.5; transform: scale(0.98); }
}
@keyframes sz-rocks {
  0% { transform: translateY(0); }
  50% { transform: translateY(4px); }
  100% { transform: translateY(-2px); }
}
@keyframes sz-nautilus {
  0% { transform: translateX(-50%) rotate(0deg); }
  50% { transform: translateX(-45%) rotate(2deg); }
  100% { transform: translateX(-55%) rotate(-2deg); }
}
@keyframes sz-beam {
  0% { opacity: 0.7; filter: blur(3px); }
  50% { opacity: 1; filter: blur(5px); }
  100% { opacity: 0.6; filter: blur(4px); }
}
@keyframes sz-bubble {
  0% { transform: translateY(0); opacity: 0.3; }
  50% { transform: translateY(-40px); opacity: 0.6; }
  100% { transform: translateY(-80px); opacity: 0; }
}

/* entering-tunnel – calm, dim interior */
.scn-entering-tunnel {
  background: linear-gradient(180deg, #1a1a1a 0%, #2a2a2a 50%, #1f1f1f 100%);
}
.scn-entering-tunnel .interior-wall {
  position: absolute; inset: 0; background: linear-gradient(90deg, #2a2a2a 0%, transparent 30%, transparent 70%, #2a2a2a 100%);
  animation: et-wall 15s ease-in-out infinite alternate;
}
.scn-entering-tunnel .hatch {
  position: absolute; top: 5%; left: 50%; width: 60px; height: 40px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #3a3a3a 0%, #1a1a1a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 2px 8px rgba(0,0,0,0.6), inset 0 -2px 4px rgba(255,255,255,0.05);
  animation: et-hatch 20s ease-in-out infinite;
}
.scn-entering-tunnel .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #1a1a1a 0%, #0f0f0f 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
}
.scn-entering-tunnel .figure-ar {
  position: absolute; bottom: 25%; left: 50%; width: 20px; height: 44px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: et-figure 8s ease-in-out infinite alternate;
}
.scn-entering-tunnel .porthole {
  position: absolute; bottom: 50%; right: 15%; width: 30px; height: 30px;
  background: radial-gradient(circle, #2a4a5a 0%, #0a1a2a 100%);
  border-radius: 50%;
  border: 3px solid #2a2a2a;
  box-shadow: inset 0 0 10px rgba(0,100,200,0.3);
  animation: et-porthole 12s ease-in-out infinite;
}
.scn-entering-tunnel .lamp-glow {
  position: absolute; top: 20%; left: 40%; width: 16px; height: 16px;
  background: radial-gradient(circle, #a08040 0%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 20px 8px rgba(160,128,64,0.3);
  animation: et-lamp 5s ease-in-out infinite alternate;
}
@keyframes et-wall {
  0% { opacity: 0.8; }
  50% { opacity: 0.9; }
  100% { opacity: 0.7; }
}
@keyframes et-hatch {
  0%, 100% { transform: translateX(-50%) translateY(0); }
  50% { transform: translateX(-50%) translateY(-3px); }
}
@keyframes et-figure {
  0% { transform: translateX(-50%) rotate(0deg); }
  50% { transform: translateX(-48%) rotate(1deg); }
  100% { transform: translateX(-52%) rotate(-1deg); }
}
@keyframes et-porthole {
  0% { opacity: 0.7; box-shadow: inset 0 0 8px rgba(0,100,200,0.2); }
  50% { opacity: 1; box-shadow: inset 0 0 15px rgba(0,100,200,0.5); }
  100% { opacity: 0.8; box-shadow: inset 0 0 10px rgba(0,100,200,0.3); }
}
@keyframes et-lamp {
  0% { opacity: 0.6; transform: scale(1); }
  50% { opacity: 0.9; transform: scale(1.1); }
  100% { opacity: 0.7; transform: scale(0.95); }
}

/* wheelhouse-description – calm, dim interior */
.scn-wheelhouse-description {
  background: linear-gradient(180deg, #1a1814 0%, #2a241c 50%, #1a1814 100%),
              radial-gradient(ellipse at 50% 60%, #3a3428 0%, transparent 70%);
}
.scn-wheelhouse-description .wh-wall {
  position: absolute; inset: 0; background: linear-gradient(90deg, #2a241c 0%, transparent 30%, transparent 70%, #2a241c 100%);
  animation: wh-wall 20s ease-in-out infinite alternate;
}
.scn-wheelhouse-description .wh-wheel {
  position: absolute; bottom: 30%; left: 50%; width: 40px; height: 40px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #5a4a3a 0%, #2a1a10 100%);
  border-radius: 50%;
  box-shadow: 0 0 0 4px #3a2a1a, 0 4px 12px rgba(0,0,0,0.6);
  animation: wh-wheel 12s ease-in-out infinite alternate;
}
.scn-wheelhouse-description .wh-cable {
  position: absolute; bottom: 30%; width: 2px; height: 20px;
  background: #4a3a2a;
  animation: wh-cable 8s ease-in-out infinite;
}
.scn-wheelhouse-description .cable-1 { left: 42%; transform: rotate(-15deg); transform-origin: bottom center; animation-delay: 0s; }
.scn-wheelhouse-description .cable-2 { left: 58%; transform: rotate(15deg); transform-origin: bottom center; animation-delay: 2s; }
.scn-wheelhouse-description .wh-instrument {
  position: absolute; bottom: 15%; left: 70%; width: 18px; height: 14px;
  background: linear-gradient(180deg, #2a3a2a 0%, #0a1a0a 100%);
  border-radius: 4px;
  box-shadow: inset 0 1px 3px rgba(0,0,0,0.5), 0 0 6px rgba(0,100,0,0.2);
  animation: wh-instr 6s ease-in-out infinite alternate;
}
.scn-wheelhouse-description .wh-window {
  position: absolute; top: 10%; left: 50%; width: 50px; height: 30px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at center, #0a1a2a 0%, #1a2a3a 100%);
  border-radius: 8px;
  box-shadow: inset 0 0 10px rgba(0,100,200,0.2);
  animation: wh-window 15s ease-in-out infinite;
}
.scn-wheelhouse-description .wh-glow {
  position: absolute; bottom: 25%; left: 48%; width: 12px; height: 12px;
  background: radial-gradient(circle, #d0a060 0%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 18px 6px rgba(208,160,96,0.3);
  animation: wh-glow 4s ease-in-out infinite alternate;
}
@keyframes wh-wall {
  0% { opacity: 0.8; }
  50% { opacity: 0.95; }
  100% { opacity: 0.75; }
}
@keyframes wh-wheel {
  0% { transform: translateX(-50%) rotate(-5deg); }
  50% { transform: translateX(-50%) rotate(5deg); }
  100% { transform: translateX(-50%) rotate(-3deg); }
}
@keyframes wh-cable {
  0% { transform: rotate(-15deg) scaleY(1); }
  50% { transform: rotate(-12deg) scaleY(1.05); }
  100% { transform: rotate(-18deg) scaleY(0.98); }
}
@keyframes wh-instr {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes wh-window {
  0% { opacity: 0.6; filter: blur(0px); }
  50% { opacity: 0.9; filter: blur(1px); }
  100% { opacity: 0.7; filter: blur(0px); }
}
@keyframes wh-glow {
  0% { opacity: 0.5; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.2); }
  100% { opacity: 0.6; transform: scale(0.9); }
}

/* piloting – tense, dim interior */
.scn-piloting {
  background: linear-gradient(180deg, #0a0a0f 0%, #1a1a2e 50%, #0f0f1a 100%),
              radial-gradient(ellipse at 50% 30%, #2a2a4a 0%, transparent 70%);
}
.scn-piloting .pt-wall {
  position: absolute; inset: 0; background: linear-gradient(90deg, #0f0f1a 0%, transparent 40%, transparent 60%, #0f0f1a 100%);
  animation: pt-wall 5s ease-in-out infinite alternate;
}
.scn-piloting .pt-helm {
  position: absolute; bottom: 15%; left: 50%; width: 40px; height: 30px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 0 -2px 6px rgba(0,0,0,0.7), inset 0 2px 4px rgba(255,255,255,0.05);
  animation: pt-helm 8s ease-in-out infinite;
}
.scn-piloting .pt-captain {
  position: absolute; bottom: 25%; left: 50%; width: 18px; height: 38px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
  animation: pt-captain 4s ease-in-out infinite alternate;
}
.scn-piloting .pt-wire {
  position: absolute; bottom: 30%; width: 1px; height: 30px;
  background: #3a3a5a;
  animation: pt-wire 2s ease-in-out infinite;
}
.scn-piloting .wire-1 { left: 44%; animation-delay: 0s; }
.scn-piloting .wire-2 { left: 56%; animation-delay: 0.7s; }
.scn-piloting .pt-window-outer {
  position: absolute; top: 5%; left: 50%; width: 60px; height: 40px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at center, #0a1a2a 0%, #1a2a3a 100%);
  border-radius: 8px;
  box-shadow: inset 0 0 15px rgba(0,50,100,0.4);
  animation: pt-window 3s ease-in-out infinite alternate;
}
.scn-piloting .pt-indicator {
  position: absolute; bottom: 20%; left: 30%; width: 6px; height: 6px;
  background: #b08040;
  border-radius: 50%;
  box-shadow: 0 0 8px 2px rgba(176,128,64,0.6);
  animation: pt-ind 1.5s ease-in-out infinite;
}
@keyframes pt-wall {
  0% { opacity: 0.7; }
  50% { opacity: 0.9; }
  100% { opacity: 0.6; }
}
@keyframes pt-helm {
  0% { transform: translateX(-50%) rotate(-1deg); }
  50% { transform: translateX(-50%) rotate(1deg); }
  100% { transform: translateX(-50%) rotate(-2deg); }
}
@keyframes pt-captain {
  0% { transform: translateX(-50%) rotate(0deg); }
  50% { transform: translateX(-48%) rotate(2deg); }
  100% { transform: translateX(-52%) rotate(-1deg); }
}
@keyframes pt-wire {
  0% { opacity: 0.4; transform: scaleY(1); }
  50% { opacity: 1; transform: scaleY(1.1); }
  100% { opacity: 0.5; transform: scaleY(0.95); }
}
@keyframes pt-window {
  0% { opacity: 0.5; filter: blur(0px); }
  50% { opacity: 0.8; filter: blur(2px); }
  100% { opacity: 0.6; filter: blur(1px); }
}
@keyframes pt-ind {
  0% { opacity: 0.3; transform: scale(0.8); }
  50% { opacity: 1; transform: scale(1.3); }
  100% { opacity: 0.4; transform: scale(0.9); }
}

.scn-petrified-shrubs-and-fish { background: linear-gradient(180deg, #2a1a0a 0%, #3a2a1a 30%, #1a0a00 100%), radial-gradient(ellipse at 50% 100%, #4a2a0a 0%, transparent 70%); }
.scn-petrified-shrubs-and-fish .bg-deep { position:absolute; inset:0; background: linear-gradient(135deg, #1a1008 0%, #2a1400 50%, #0d0800 100%); }
.scn-petrified-shrubs-and-fish .rock-wall { position:absolute; bottom:20%; left:10%; width:60%; height:50%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 30% 70% 20% 80% / 50% 60% 40% 50%; box-shadow: inset 0 10px 20px rgba(0,0,0,.6); }
.scn-petrified-shrubs-and-fish .cave-mouth { position:absolute; bottom:25%; left:25%; width:80px; height:60px; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; background: #0d0600; box-shadow: 0 0 30px 10px rgba(200,100,30,.2); }
.scn-petrified-shrubs-and-fish .crevice { position:absolute; bottom:30%; right:15%; width:12px; height:90px; background: #0a0500; border-radius: 40% 60% 50% 50% / 80% 80% 20% 20%; box-shadow: 0 0 12px 4px rgba(200,100,30,.15); animation: psf-crevice 6s ease-in-out infinite alternate; }
.scn-petrified-shrubs-and-fish .petrified-shrubs { position:absolute; bottom:15%; left:15%; width:50px; height:30px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 60% 40% 50% 50% / 40% 60% 40% 60%; transform: rotate(-10deg); box-shadow: 0 4px 8px rgba(0,0,0,.3); animation: psf-shrubs 4s ease-in-out infinite alternate; }
.scn-petrified-shrubs-and-fish .fish { position:absolute; width:16px; height:10px; background: radial-gradient(circle at 30% 50%, #c07440 0%, #8a4a2a 100%); border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%; }
.scn-petrified-shrubs-and-fish .fish-1 { bottom:10%; left:30%; animation: psf-fish1 5s ease-in-out infinite; }
.scn-petrified-shrubs-and-fish .fish-2 { bottom:8%; left:50%; animation: psf-fish2 6s ease-in-out infinite 1s; }
.scn-petrified-shrubs-and-fish .fire-glow { position:absolute; bottom:40%; left:20%; width:30px; height:30px; background: radial-gradient(circle, #f08040 0%, transparent 70%); border-radius:50%; box-shadow: 0 0 80px 40px rgba(240,128,64,.3); animation: psf-glow 2s ease-in-out infinite alternate; }
@keyframes psf-crevice { 0% { transform: scaleY(1) skewX(0); opacity:.6 } 50% { transform: scaleY(1.2) skewX(2deg); opacity:.9 } 100% { transform: scaleY(1) skewX(0); opacity:.6 } }
@keyframes psf-shrubs { 0% { transform: rotate(-10deg) translateX(0); } 50% { transform: rotate(-8deg) translateX(2px); } 100% { transform: rotate(-12deg) translateX(0); } }
@keyframes psf-fish1 { 0% { transform: translateY(0) rotate(-5deg); opacity:.7 } 30% { transform: translateY(-30px) rotate(5deg); opacity:.9 } 60% { transform: translateY(-20px) rotate(-3deg); opacity:.8 } 100% { transform: translateY(0) rotate(-5deg); opacity:.7 } }
@keyframes psf-fish2 { 0% { transform: translateY(0) rotate(3deg); opacity:.6 } 25% { transform: translateY(-25px) rotate(-4deg); opacity:.9 } 75% { transform: translateY(-15px) rotate(2deg); opacity:.7 } 100% { transform: translateY(0) rotate(3deg); opacity:.6 } }
@keyframes psf-glow { 0% { transform: scale(1); opacity:.6 } 50% { transform: scale(1.2); opacity:.9 } 100% { transform: scale(.9); opacity:.7 } }

.scn-ruins-on-plateau { background: linear-gradient(180deg, #1a0a00 0%, #2a1808 40%, #0d0600 100%), radial-gradient(ellipse at 50% 0%, #3a1a08 0%, transparent 70%); }
.scn-ruins-on-plateau .sky-bg { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); animation: rp-sky 12s ease-in-out infinite alternate; }
.scn-ruins-on-plateau .plateau-ground { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 30% 70% 0 0 / 60% 40% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.5); }
.scn-ruins-on-plateau .ruin-arch { position:absolute; bottom:30%; left:30%; width:70px; height:50px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 50% 50% 0 0; box-shadow: 0 6px 12px rgba(0,0,0,.6); animation: rp-arch 14s ease-in-out infinite alternate; }
.scn-ruins-on-plateau .ruin-column { position:absolute; bottom:25%; left:38%; width:12px; height:60px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 10% 10% 20% 20%; box-shadow: 0 4px 8px rgba(0,0,0,.4); animation: rp-column 8s ease-in-out infinite alternate; }
.scn-ruins-on-plateau .creature-shape { position:absolute; bottom:20%; left:50%; width:20px; height:30px; background: radial-gradient(circle at 50% 20%, #2a1a0a 0%, #0a0500 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rp-creature 5s ease-in-out infinite; }
.scn-ruins-on-plateau .rock-form { position:absolute; bottom:35%; right:20%; width:30px; height:40px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 60% 40% 50% 50% / 40% 60% 40% 60%; animation: rp-rock 10s ease-in-out infinite alternate; }
.scn-ruins-on-plateau .fire-light { position:absolute; bottom:40%; left:15%; width:25px; height:25px; background: radial-gradient(circle, #f09040 0%, transparent 60%); border-radius:50%; box-shadow: 0 0 60px 30px rgba(240,144,64,.25); animation: rp-fire 3s ease-in-out infinite alternate; }
@keyframes rp-sky { 0% { opacity:.7 } 50% { opacity:.9 } 100% { opacity:.7 } }
@keyframes rp-arch { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-4px) scaleY(1.03); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes rp-column { 0% { transform: scaleY(1); opacity:.8 } 50% { transform: scaleY(.95); opacity:.6 } 100% { transform: scaleY(1); opacity:.8 } }
@keyframes rp-creature { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(8px) rotate(5deg); } 75% { transform: translateX(-8px) rotate(-5deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes rp-rock { 0% { transform: rotate(0) scale(1); } 50% { transform: rotate(3deg) scale(.95); } 100% { transform: rotate(0) scale(1); } }
@keyframes rp-fire { 0% { transform: scale(1); opacity:.6; box-shadow: 0 0 40px 20px rgba(240,144,64,.2); } 50% { transform: scale(1.3); opacity:.9; box-shadow: 0 0 80px 40px rgba(240,144,64,.35); } 100% { transform: scale(1); opacity:.6; box-shadow: 0 0 40px 20px rgba(240,144,64,.2); } }

.scn-speculating-on-submerged-land { background: linear-gradient(180deg, #0a0a1a 0%, #101020 30%, #1a0a0a 100%), radial-gradient(ellipse at 30% 70%, #2a1a0a 0%, transparent 60%); }
.scn-speculating-on-submerged-land .water-depth { position:absolute; inset:0; background: linear-gradient(180deg, #0a0a1a 0%, #101020 50%, #0d0600 100%); animation: ssl-water 20s ease-in-out infinite alternate; }
.scn-speculating-on-submerged-land .rock-sub { position:absolute; bottom:20%; left:10%; width:70px; height:50px; background: linear-gradient(135deg, #1a1008 0%, #0a0500 100%); border-radius: 60% 40% 50% 50% / 40% 60% 40% 60%; box-shadow: 0 0 20px 5px rgba(200,100,30,.1); animation: ssl-rock 12s ease-in-out infinite alternate; }
.scn-speculating-on-submerged-land .dolmen-arch { position:absolute; bottom:30%; left:40%; width:80px; height:45px; background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%); border-radius: 50% 50% 0 0 / 60% 60% 0 0; box-shadow: 0 6px 12px rgba(0,0,0,.5); animation: ssl-dolmen 18s ease-in-out infinite alternate; }
.scn-speculating-on-submerged-land .glimmer-light { position:absolute; bottom:35%; right:25%; width:12px; height:12px; background: radial-gradient(circle, #f0a060 0%, transparent 70%); border-radius:50%; box-shadow: 0 0 30px 15px rgba(240,160,96,.3); animation: ssl-glimmer 4s ease-in-out infinite alternate; }
.scn-speculating-on-submerged-land .shadow-creature { position:absolute; bottom:20%; left:55%; width:18px; height:28px; background: radial-gradient(circle at 50% 30%, #1a0a00 0%, #050200 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ssl-creature 7s ease-in-out infinite; }
.scn-speculating-on-submerged-land .kelp { position:absolute; bottom:10%; left:70%; width:8px; height:60px; background: linear-gradient(180deg, #1a2a1a 0%, #0a100a 100%); border-radius: 50%; filter: blur(2px); transform: rotate(10deg); animation: ssl-kelp 8s ease-in-out infinite alternate; }
@keyframes ssl-water { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes ssl-rock { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes ssl-dolmen { 0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.05) translateY(-2px); } 100% { transform: scaleY(1) translateY(0); } }
@keyframes ssl-glimmer { 0% { transform: scale(1); opacity:.4 } 50% { transform: scale(1.4); opacity:.8 } 100% { transform: scale(1); opacity:.4 } }
@keyframes ssl-creature { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(5px) rotate(3deg); } 75% { transform: translateX(-5px) rotate(-3deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes ssl-kelp { 0% { transform: rotate(10deg) scaleX(1); } 50% { transform: rotate(15deg) scaleX(1.1); } 100% { transform: rotate(10deg) scaleX(1); } }

.scn-view-from-volcano-summit { background: linear-gradient(180deg, #0a0500 0%, #1a1005 30%, #2a1a0a 100%), radial-gradient(ellipse at 50% 0%, #3a2a1a 0%, transparent 70%); }
.scn-view-from-volcano-summit .sky-dark { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #0a0500 0%, #1a1005 100%); animation: vfs-sky 15s ease-in-out infinite alternate; }
.scn-view-from-volcano-summit .mountain-range { position:absolute; bottom:25%; left:0; right:0; height:40%; background: linear-gradient(180deg, #1a1005 0%, #0d0800 100%); border-radius: 30% 70% 0 0 / 50% 40% 0 0; box-shadow: inset 0 8px 16px rgba(0,0,0,.5); animation: vfs-mountain 20s ease-in-out infinite alternate; }
.scn-view-from-volcano-summit .lava-flow { position:absolute; width:40px; height:8px; background: linear-gradient(180deg, #f08040 0%, #c04020 100%); border-radius: 50%; filter: blur(3px); }
.scn-view-from-volcano-summit .lava-1 { bottom:35%; left:35%; animation: vfs-lava1 4s ease-in-out infinite alternate; }
.scn-view-from-volcano-summit .lava-2 { bottom:38%; left:55%; width:30px; animation: vfs-lava2 6s ease-in-out infinite alternate 1s; }
.scn-view-from-volcano-summit .plain { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #1a1005 0%, #0a0500 100%); border-radius: 20% 80% 0 0 / 30% 40% 0 0; }
.scn-view-from-volcano-summit .crater-glow { position:absolute; top:15%; left:50%; width:60px; height:60px; transform: translateX(-50%); background: radial-gradient(circle, #f08040 0%, transparent 70%); border-radius:50%; box-shadow: 0 0 100px 50px rgba(240,128,64,.3); animation: vfs-crater 3s ease-in-out infinite alternate; }
.scn-view-from-volcano-summit .smoke { position:absolute; width:40px; height:20px; background: linear-gradient(180deg, rgba(200,150,100,.4) 0%, transparent 100%); border-radius:50%; filter: blur(8px); }
.scn-view-from-volcano-summit .smoke-a { top:10%; left:30%; animation: vfs-smoke1 30s linear infinite; }
.scn-view-from-volcano-summit .smoke-b { top:6%; left:60%; width:30px; animation: vfs-smoke2 45s linear infinite reverse; }
@keyframes vfs-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes vfs-mountain { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(2px) scaleY(.98); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes vfs-lava1 { 0% { transform: translateX(0) scaleY(1); opacity:.8 } 50% { transform: translateX(10px) scaleY(1.3); opacity:1 } 100% { transform: translateX(0) scaleY(1); opacity:.8 } }
@keyframes vfs-lava2 { 0% { transform: translateX(0) scaleY(1); opacity:.7 } 50% { transform: translateX(-8px) scaleY(1.2); opacity:.9 } 100% { transform: translateX(0) scaleY(1); opacity:.7 } }
@keyframes vfs-crater { 0% { transform: translateX(-50%) scale(1); opacity:.5 } 50% { transform: translateX(-50%) scale(1.2); opacity:.8 } 100% { transform: translateX(-50%) scale(1); opacity:.5 } }
@keyframes vfs-smoke1 { 0% { transform: translateX(-40px) translateY(0); opacity:.4 } 50% { transform: translateX(20px) translateY(-10px); opacity:.7 } 100% { transform: translateX(80px) translateY(0); opacity:.4 } }
@keyframes vfs-smoke2 { 0% { transform: translateX(40px) translateY(0); opacity:.3 } 50% { transform: translateX(-10px) translateY(-8px); opacity:.6 } 100% { transform: translateX(-40px) translateY(0); opacity:.3 } }

.scn-exploring-the-beach { background: linear-gradient(180deg, #7ab8d4 0%, #a8d0e6 30%, #e8f0e0 70%, #d4c0a0 100%), radial-gradient(ellipse at 30% 60%, #f0e8d0 0%, transparent 60%); }
.scn-exploring-the-beach .sky { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #b8d8f0 0%, #d0e8f8 40%, #e8f0e0 70%, transparent 100%); animation: etb-sky 12s ease-in-out infinite alternate; }
.scn-exploring-the-beach .ocean { position:absolute; bottom:45%; left:10%; right:10%; height:20%; background: linear-gradient(180deg, #3a7a9a 0%, #5a9aba 50%, #8ac0d8 100%); border-radius: 30% 70% 40% 60% / 60% 40% 60% 40%; box-shadow: inset 0 -8px 20px rgba(20,40,60,.3); animation: etb-wave 8s ease-in-out infinite; }
.scn-exploring-the-beach .sand { position:absolute; bottom:0; left:0; right:0; height:48%; background: linear-gradient(180deg, #d4c0a0 0%, #c8b48a 30%, #b8a070 100%); border-radius: 0 0 20% 20% / 0 0 30% 30%; box-shadow: inset 0 12px 20px rgba(0,0,0,.15); }
.scn-exploring-the-beach .cliff-left { position:absolute; bottom:35%; left:0; width:30%; height:40%; background: linear-gradient(135deg, #9a8070 0%, #7a6050 50%, #5a4030 100%); border-radius: 0 60% 20% 0; box-shadow: 8px 0 12px rgba(0,0,0,.3); }
.scn-exploring-the-beach .cliff-right { position:absolute; bottom:35%; right:0; width:25%; height:45%; background: linear-gradient(225deg, #9a8070 0%, #7a6050 50%, #5a4030 100%); border-radius: 60% 0 0 20%; box-shadow: -8px 0 12px rgba(0,0,0,.3); }
.scn-exploring-the-beach .figure-walk { position:absolute; bottom:30%; left:40%; width:16px; height:32px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: etb-walk 3s ease-in-out infinite; }
.scn-exploring-the-beach .seagull { position:absolute; top:18%; left:60%; width:20px; height:10px; background: radial-gradient(circle at 30% 50%, #fff 0%, #ddd 50%, transparent 70%); border-radius: 50% 50% 0 0; transform: rotate(-10deg); animation: etb-gull 14s linear infinite; }
.scn-exploring-the-beach .rock { position:absolute; bottom:15%; left:20%; width:30px; height:20px; background: linear-gradient(180deg, #706050 0%, #504030 100%); border-radius: 40% 40% 30% 30%; box-shadow: 2px 2px 6px rgba(0,0,0,.3); animation: etb-rock 20s ease-in-out infinite alternate; }
@keyframes etb-sky { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes etb-wave { 0% { transform: translateX(0) scale(1,1) } 25% { transform: translateX(3px) scale(1.02,0.98) } 50% { transform: translateX(-2px) scale(1,1) } 75% { transform: translateX(4px) scale(0.98,1.02) } 100% { transform: translateX(0) scale(1,1) } }
@keyframes etb-walk { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 25% { transform: translateX(6px) translateY(-1px) rotate(1deg) } 50% { transform: translateX(12px) translateY(0) rotate(0deg) } 75% { transform: translateX(18px) translateY(-1px) rotate(-2deg) } 100% { transform: translateX(24px) translateY(0) rotate(0deg) } }
@keyframes etb-gull { 0% { transform: translateX(0) rotate(-10deg) } 50% { transform: translateX(40px) rotate(10deg) translateY(-8px) } 100% { transform: translateX(80px) rotate(-10deg) } }
@keyframes etb-rock { 0% { transform: scale(1) } 50% { transform: scale(1.05) } 100% { transform: scale(0.98) } }

.scn-climbing-volcanic-slopes { background: linear-gradient(180deg, #b0a090 0%, #807060 30%, #5a4a3a 60%, #2a1a0a 100%), radial-gradient(ellipse at 50% 80%, #8a7a6a 0%, transparent 70%); }
.scn-climbing-volcanic-slopes .bg-sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #d0c0b0 0%, #b0a090 50%, transparent 100%); animation: cvs-sky 15s ease-in-out infinite alternate; }
.scn-climbing-volcanic-slopes .volcano-base { position:absolute; bottom:0; left:10%; right:10%; height:70%; background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius: 30% 30% 0 0 / 40% 40% 0 0; box-shadow: inset 0 20px 30px rgba(0,0,0,.4); }
.scn-climbing-volcanic-slopes .slope-left { position:absolute; bottom:30%; left:0; width:35%; height:50%; background: linear-gradient(135deg, #7a6a5a 0%, #4a3a2a 100%); clip-path: polygon(0% 0%, 100% 10%, 100% 100%, 0% 100%); border-radius: 0 40% 0 0; }
.scn-climbing-volcanic-slopes .slope-right { position:absolute; bottom:30%; right:0; width:40%; height:55%; background: linear-gradient(225deg, #7a6a5a 0%, #4a3a2a 100%); clip-path: polygon(0% 10%, 100% 0%, 100% 100%, 0% 100%); border-radius: 40% 0 0 0; }
.scn-climbing-volcanic-slopes .path { position:absolute; bottom:20%; left:45%; width:10%; height:30%; background: linear-gradient(180deg, #9a8a7a 0%, #6a5a4a 50%, #3a2a1a 100%); clip-path: polygon(10% 0%, 90% 0%, 100% 100%, 0% 100%); opacity:0.6; animation: cvs-path 6s ease-in-out infinite; }
.scn-climbing-volcanic-slopes .figure1 { position:absolute; bottom:15%; left:42%; width:14px; height:28px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cvs-climb1 4s ease-in-out infinite; }
.scn-climbing-volcanic-slopes .figure2 { position:absolute; bottom:20%; left:55%; width:14px; height:28px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cvs-climb2 4.5s ease-in-out infinite 1s; }
.scn-climbing-volcanic-slopes .steam-vent { position:absolute; bottom:55%; left:30%; width:20px; height:30px; background: radial-gradient(ellipse at 50% 100%, rgba(200,200,200,.4) 0%, transparent 70%); filter: blur(4px); animation: cvs-steam 7s ease-in-out infinite; }
@keyframes cvs-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes cvs-path { 0% { transform: scaleX(1); opacity:0.5 } 50% { transform: scaleX(1.1); opacity:0.7 } 100% { transform: scaleX(0.9); opacity:0.6 } }
@keyframes cvs-climb1 { 0% { transform: translateY(0) rotate(-2deg) } 25% { transform: translateY(-3px) rotate(3deg) } 50% { transform: translateY(-6px) rotate(1deg) } 75% { transform: translateY(-3px) rotate(-2deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes cvs-climb2 { 0% { transform: translateY(0) rotate(2deg) } 25% { transform: translateY(-4px) rotate(-1deg) } 50% { transform: translateY(-7px) rotate(0deg) } 75% { transform: translateY(-4px) rotate(2deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes cvs-steam { 0% { transform: translateY(0) scale(1); opacity:0.4 } 50% { transform: translateY(-15px) scale(2); opacity:0 } 100% { transform: translateY(0) scale(0.5); opacity:0.3 } }

.scn-explanation-of-volcanic-lake { background: linear-gradient(180deg, #5a7a8a 0%, #3a5a6a 30%, #2a4a5a 60%, #1a2a3a 100%), radial-gradient(ellipse at 50% 80%, #4a6a7a 0%, transparent 70%); }
.scn-explanation-of-volcanic-lake .crater-wall { position:absolute; inset:0 10% 20% 10%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 40%, #2a1a0a 80%) ; clip-path: polygon(0% 0%, 100% 0%, 85% 100%, 15% 100%); border-radius: 30% 30% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.5); }
.scn-explanation-of-volcanic-lake .lake { position:absolute; bottom:10%; left:5%; right:5%; height:30%; background: linear-gradient(180deg, #3a7a8a 0%, #2a5a6a 50%, #1a3a4a 100%); border-radius: 10% 10% 30% 30% / 20% 20% 50% 50%; box-shadow: 0 -4px 12px rgba(0,30,40,.3); animation: evl-lake 12s ease-in-out infinite; }
.scn-explanation-of-volcanic-lake .reflection { position:absolute; bottom:10%; left:20%; right:20%; height:15%; background: linear-gradient(180deg, rgba(100,160,180,0.4) 0%, transparent 100%); filter: blur(3px); animation: evl-reflect 8s ease-in-out infinite alternate; }
.scn-explanation-of-volcanic-lake .island { position:absolute; bottom:18%; left:45%; width:30px; height:15px; background: linear-gradient(180deg, #6a5a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40%; box-shadow: 0 4px 6px rgba(0,0,0,.3); animation: evl-island 20s ease-in-out infinite; }
.scn-explanation-of-volcanic-lake .floating-vapor { position:absolute; bottom:40%; left:30%; width:40px; height:20px; background: radial-gradient(ellipse, rgba(200,210,220,0.3) 0%, transparent 70%); filter: blur(6px); animation: evl-vapor 25s linear infinite; }
.scn-explanation-of-volcanic-lake .ledge { position:absolute; bottom:35%; left:15%; width:70%; height:8px; background: linear-gradient(90deg, #5a4a3a 0%, #7a6a5a 50%, #5a4a3a 100%); border-radius: 2px; box-shadow: 0 6px 10px rgba(0,0,0,.3); }
.scn-explanation-of-volcanic-lake .figures { position:absolute; bottom:28%; left:40%; width:20px; height:30px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: evl-figures 6s ease-in-out infinite; }
@keyframes evl-lake { 0% { transform: translateY(0) scale(1,1) } 50% { transform: translateY(-2px) scale(1.01,0.99) } 100% { transform: translateY(0) scale(1,1) } }
@keyframes evl-reflect { 0% { opacity:0.3 } 50% { opacity:0.6 } 100% { opacity:0.4 } }
@keyframes evl-island { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(5px) rotate(3deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes evl-vapor { 0% { transform: translateX(0) scale(1); opacity:0.3 } 50% { transform: translateX(30px) scale(1.5); opacity:0 } 100% { transform: translateX(60px) scale(0.8); opacity:0.2 } }
@keyframes evl-figures { 0% { transform: translateY(0) rotate(-2deg) } 25% { transform: translateY(-2px) rotate(1deg) } 50% { transform: translateY(-4px) rotate(0deg) } 75% { transform: translateY(-2px) rotate(-1deg) } 100% { transform: translateY(0) rotate(0deg) } }

.scn-ned-regrets-no-above-sea-exit { background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 30%, #2a2a1a 60%, #1a1a0a 100%), radial-gradient(ellipse at 50% 80%, #2a4a5a 0%, transparent 70%); }
.scn-ned-regrets-no-above-sea-exit .room-wall { position:absolute; inset:0 5% 5% 5%; background: linear-gradient(135deg, #4a3a2a 0%, #3a2a1a 50%, #2a1a0a 100%); border-radius: 10px; box-shadow: inset 0 0 30px rgba(0,0,0,.6); }
.scn-ned-regrets-no-above-sea-exit .floor { position:absolute; bottom:0; left:5%; right:5%; height:15%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 0 0 10px 10px; box-shadow: inset 0 10px 15px rgba(0,0,0,.4); }
.scn-ned-regrets-no-above-sea-exit .porthole { position:absolute; top:15%; left:50%; width:60px; height:60px; transform:translateX(-50%); background: radial-gradient(circle, #6a9ab0 0%, #2a5a7a 60%, #0a1a2a 100%); border-radius: 50%; border: 4px solid #5a4a3a; box-shadow: 0 0 20px rgba(20,60,80,0.5); }
.scn-ned-regrets-no-above-sea-exit .water-outside { position:absolute; top:15%; left:50%; width:56px; height:56px; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 30%, #3a8a9a 0%, #1a4a5a 70%, transparent 100%); border-radius: 50%; animation: nrn-water 5s ease-in-out infinite; }
.scn-ned-regrets-no-above-sea-exit .ned-silhouette { position:absolute; bottom:15%; left:30%; width:18px; height:34px; background: linear-gradient(180deg, #0a0a1a 0%, #000 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: nrn-turn 8s ease-in-out infinite; }
.scn-ned-regrets-no-above-sea-exit .conseil-silhouette { position:absolute; bottom:15%; left:55%; 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: nrn-turn 8s ease-in-out infinite 2s; }
.scn-ned-regrets-no-above-sea-exit .shadow-lines { position:absolute; inset:0; background: repeating-linear-gradient(110deg, rgba(0,0,0,0.1) 0px, rgba(0,0,0,0.1) 2px, transparent 2px, transparent 6px); animation: nrn-shadow 3s linear infinite; }
.scn-ned-regrets-no-above-sea-exit .lamp { position:absolute; top:8%; left:20%; width:10px; height:10px; background: radial-gradient(circle, #c8a060 0%, #a08040 60%, transparent 100%); border-radius: 50%; box-shadow: 0 0 30px 10px rgba(160,128,64,0.4); animation: nrn-lamp 4s ease-in-out infinite alternate; }
@keyframes nrn-water { 0% { transform: translateX(-50%) scale(1,1); opacity:0.7 } 50% { transform: translateX(-50%) scale(1.05,0.95); opacity:0.9 } 100% { transform: translateX(-50%) scale(1,1); opacity:0.75 } }
@keyframes nrn-turn { 0% { transform: rotate(0deg) } 25% { transform: rotate(5deg) } 50% { transform: rotate(0deg) } 75% { transform: rotate(-5deg) } 100% { transform: rotate(0deg) } }
@keyframes nrn-shadow { 0% { background-position: 0 0 } 100% { background-position: 10px 10px } }
@keyframes nrn-lamp { 0% { box-shadow: 0 0 20px 5px rgba(160,128,64,0.3); opacity:0.8 } 50% { box-shadow: 0 0 40px 15px rgba(160,128,64,0.6); opacity:1 } 100% { box-shadow: 0 0 25px 8px rgba(160,128,64,0.35); opacity:0.85 } }

.scn-ned-desires-breadfruit {
  background: linear-gradient(180deg, #87ceeb 0%, #f0e68c 60%, #bdb76b 100%), radial-gradient(ellipse at 50% 80%, #ffe4b5 0%, transparent 60%);
}
.scn-ned-desires-breadfruit .sky { position:absolute; inset:0 0 60% 0; background: linear-gradient(180deg, #87ceeb 0%, #b0e0e6 100%); animation: s1-sky 10s ease-in-out infinite alternate; }
.scn-ned-desires-breadfruit .ground { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #556b2f 0%, #6b8e23 50%, #3b5323 100%); border-radius: 20% 30% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,0.3); }
.scn-ned-desires-breadfruit .tree-trunk { position:absolute; bottom:30%; left:35%; width:15px; height:50%; background: linear-gradient(180deg, #8b4513 0%, #5c3317 100%); border-radius: 30% 30% 20% 20%; transform-origin: bottom center; animation: s1-trunk 6s ease-in-out infinite; }
.scn-ned-desires-breadfruit .tree-canopy { position:absolute; bottom:65%; left:32%; width:100px; height:70px; background: radial-gradient(ellipse at 30% 40%, #228b22 0%, #006400 70%, #004d00 100%); border-radius: 50%; box-shadow: 0 4px 20px rgba(0,100,0,0.4); animation: s1-canopy 8s ease-in-out infinite; }
.scn-ned-desires-breadfruit .fruit { position:absolute; bottom:40%; left:38%; width:20px; height:25px; background: radial-gradient(ellipse at 40% 30%, #ffd700 0%, #daa520 70%); border-radius: 50%; box-shadow: 0 0 10px 2px rgba(255,215,0,0.5); animation: s1-fruit 4s ease-in-out infinite; }
.scn-ned-desires-breadfruit .ned { position:absolute; bottom:10%; left:55%; width:25px; height:50px; background: linear-gradient(180deg, #f5deb3 0%, #d2b48c 50%, #a0522d 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: s1-ned 2s ease-in-out infinite; }
.scn-ned-desires-breadfruit .speech-bubble { position:absolute; bottom:50%; left:60%; width:30px; height:20px; background: #ffffe0; border-radius: 50%; box-shadow: 0 0 8px rgba(0,0,0,0.2); animation: s1-bubble 3s ease-in-out infinite; }
@keyframes s1-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes s1-trunk { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(2deg); } }
@keyframes s1-canopy { 0%,100% { transform: scaleX(1); } 50% { transform: scaleX(1.05); } }
@keyframes s1-fruit { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-5px) rotate(10deg); } 60% { transform: translateY(0) rotate(-5deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes s1-ned { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 25% { transform: translateX(5px) translateY(-2px) rotate(2deg); } 50% { transform: translateX(0) translateY(0) rotate(-1deg); } 75% { transform: translateX(-3px) translateY(-1px) rotate(1deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes s1-bubble { 0%,100% { transform: scale(0.9); opacity:0.5; } 50% { transform: scale(1.1); opacity:1; } }

.scn-preparing-breadfruit {
  background: linear-gradient(180deg, #fef9e7 0%, #f5deb3 40%, #deb887 100%), radial-gradient(ellipse at 50% 30%, #fff8dc 0%, transparent 60%);
}
.scn-preparing-breadfruit .bg-sun { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #fff4b0 0%, #f5deb3 100%); animation: s2-sun 15s ease-in-out infinite alternate; }
.scn-preparing-breadfruit .ground { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #a59b6e 0%, #6b5e3a 100%); border-radius: 10% 30% 0 0; }
.scn-preparing-breadfruit .table { position:absolute; bottom:25%; left:20%; width:120px; height:10px; background: linear-gradient(180deg, #8b5a2b 0%, #5c3a1e 100%); border-radius: 5px; box-shadow: 0 4px 6px rgba(0,0,0,0.3); animation: s2-table 8s ease-in-out infinite; }
.scn-preparing-breadfruit .breadfruit-a { position:absolute; bottom:27%; left:25%; width:22px; height:24px; background: radial-gradient(ellipse at 40% 30%, #d4a745 0%, #b8860b 70%); border-radius: 50%; animation: s2-bf 6s ease-in-out infinite; }
.scn-preparing-breadfruit .breadfruit-b { position:absolute; bottom:27%; left:40%; width:20px; height:22px; background: radial-gradient(ellipse at 40% 30%, #d4a745 0%, #b8860b 70%); border-radius: 50%; animation: s2-bf2 7s ease-in-out infinite; }
.scn-preparing-breadfruit .magnifying-glass { position:absolute; bottom:35%; left:30%; width:30px; height:30px; border: 3px solid #a0522d; border-radius: 50%; background: rgba(255,255,255,0.2); transform: rotate(-20deg); animation: s2-mag 5s ease-in-out infinite; }
.scn-preparing-breadfruit .fire-small { position:absolute; bottom:15%; left:50%; width:40px; height:50px; background: linear-gradient(180deg, #ff4500 0%, #ff8c00 50%, #ffd700 100%); border-radius: 50% 50% 30% 30%; box-shadow: 0 0 20px 8px #ff8c00; animation: s2-fire 3s ease-in-out infinite; }
.scn-preparing-breadfruit .conseil { position:absolute; bottom:5%; left:15%; width:20px; height:40px; background: linear-gradient(180deg, #708090 0%, #2f4f4f 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: s2-conseil 9s ease-in-out infinite; }
@keyframes s2-sun { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.6; } }
@keyframes s2-table { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes s2-bf { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-3px) rotate(5deg); } 60% { transform: translateY(0) rotate(-3deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes s2-bf2 { 0% { transform: translateY(0) rotate(0deg); } 40% { transform: translateY(-2px) rotate(-7deg); } 80% { transform: translateY(0) rotate(4deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes s2-mag { 0% { transform: rotate(-20deg) scale(1); } 50% { transform: rotate(-15deg) scale(1.05); } 100% { transform: rotate(-20deg) scale(1); } }
@keyframes s2-fire { 0%,100% { transform: scaleY(1); opacity:0.9; } 50% { transform: scaleY(1.1); opacity:1; } }
@keyframes s2-conseil { 0% { transform: translateX(0) translateY(0) rotate(-1deg); } 25% { transform: translateX(3px) translateY(-1px) rotate(1deg); } 50% { transform: translateX(0) translateY(0) rotate(-1deg); } 75% { transform: translateX(-2px) translateY(-1px) rotate(1deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }

.scn-baking-slices {
  background: linear-gradient(180deg, #2c1e1e 0%, #4a2e2e 40%, #2a1a1a 100%), radial-gradient(ellipse at 50% 70%, #8b4513 0%, transparent 70%);
}
.scn-baking-slices .bg-dark { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #1a0e0e 0%, #2c1e1e 100%); animation: s3-dark 12s ease-in-out infinite alternate; }
.scn-baking-slices .fire { position:absolute; bottom:30%; left:40%; width:80px; height:100px; background: linear-gradient(180deg, #ff4500 0%, #ff6600 30%, #ffcc00 70%, #ffe4b5 100%); border-radius: 50% 50% 30% 30%; box-shadow: 0 0 40px 20px #ff4500; animation: s3-fire 2s ease-in-out infinite; }
.scn-baking-slices .coals { position:absolute; bottom:25%; left:38%; width:90px; height:20px; background: radial-gradient(ellipse at 30% 50%, #8b4513 0%, #5c3317 60%, #2a1a1a 100%); border-radius: 30% 30% 20% 20%; box-shadow: inset 0 4px 10px #000; animation: s3-coals 5s ease-in-out infinite; }
.scn-baking-slices .slice-a { position:absolute; bottom:40%; left:35%; width:20px; height:30px; background: linear-gradient(180deg, #d2b48c 0%, #8b5a2b 100%); border-radius: 10% 10% 20% 20%; transform: rotate(-10deg); animation: s3-slicea 4s ease-in-out infinite; }
.scn-baking-slices .slice-b { position:absolute; bottom:42%; left:50%; width:18px; height:28px; background: linear-gradient(180deg, #d2b48c 0%, #8b5a2b 100%); border-radius: 10% 10% 20% 20%; transform: rotate(15deg); animation: s3-sliceb 4.5s ease-in-out infinite; }
.scn-baking-slices .ned-hand { position:absolute; bottom:35%; left:55%; width:15px; height:30px; background: linear-gradient(180deg, #f5deb3 0%, #d2b48c 100%); border-radius: 30% 30% 20% 20%; transform-origin: bottom left; animation: s3-hand 3s ease-in-out infinite; }
.scn-baking-slices .sparkle-a { position:absolute; bottom:50%; left:30%; width:6px; height:6px; background: #ffd700; border-radius: 50%; box-shadow: 0 0 8px 2px #ffd700; animation: s3-sparkle 1.5s ease-in-out infinite; }
.scn-baking-slices .sparkle-b { position:absolute; bottom:55%; left:55%; width:4px; height:4px; background: #ffa500; border-radius: 50%; box-shadow: 0 0 6px 2px #ffa500; animation: s3-sparkle2 2s ease-in-out infinite; }
@keyframes s3-dark { 0% { opacity:0.7; } 50% { opacity:0.9; } 100% { opacity:0.6; } }
@keyframes s3-fire { 0%,100% { transform: scaleY(1) scaleX(1); } 50% { transform: scaleY(1.2) scaleX(0.9); } }
@keyframes s3-coals { 0%,100% { opacity:0.8; } 50% { opacity:1; } }
@keyframes s3-slicea { 0% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-8deg) translateY(-3px); } 100% { transform: rotate(-10deg) translateY(0); } }
@keyframes s3-sliceb { 0% { transform: rotate(15deg) translateY(0); } 50% { transform: rotate(12deg) translateY(-2px); } 100% { transform: rotate(15deg) translateY(0); } }
@keyframes s3-hand { 0% { transform: rotate(0deg); } 30% { transform: rotate(5deg); } 60% { transform: rotate(-3deg); } 100% { transform: rotate(0deg); } }
@keyframes s3-sparkle { 0%,100% { opacity:0; transform: scale(0.5); } 50% { opacity:1; transform: scale(1.5); } }
@keyframes s3-sparkle2 { 0%,100% { opacity:0; transform: scale(0.3); } 50% { opacity:1; transform: scale(1.2); } }

.scn-tasting-bread {
  background: linear-gradient(180deg, #4a2e2e 0%, #6b3a3a 40%, #3a1e1e 100%), radial-gradient(ellipse at 50% 60%, #ffa500 0%, transparent 70%);
}
.scn-tasting-bread .bg-warm { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #3a1e1e 0%, #4a2e2e 100%); animation: s4-warm 10s ease-in-out infinite alternate; }
.scn-tasting-bread .fire { position:absolute; bottom:30%; left:30%; width:60px; height:80px; background: linear-gradient(180deg, #ff4500 0%, #ff6600 30%, #ffcc00 70%, #ffe4b5 100%); border-radius: 50% 50% 30% 30%; box-shadow: 0 0 30px 15px #ff4500; animation: s4-fire 2s ease-in-out infinite; }
.scn-tasting-bread .toasted-bread { position:absolute; bottom:40%; left:45%; width:25px; height:35px; background: linear-gradient(180deg, #d2691e 0%, #8b4513 50%, #5c3317 100%); border-radius: 10% 10% 20% 20%; box-shadow: inset 0 4px 6px rgba(0,0,0,0.5); animation: s4-bread 5s ease-in-out infinite; }
.scn-tasting-bread .ned-profile { position:absolute; bottom:10%; left:50%; width:20px; height:45px; background: linear-gradient(180deg, #deb887 0%, #a0522d 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: s4-ned 4s ease-in-out infinite; }
.scn-tasting-bread .steam-a { position:absolute; bottom:60%; left:48%; width:10px; height:20px; background: rgba(255,255,255,0.2); border-radius: 50%; filter: blur(3px); animation: s4-steam1 3s ease-out infinite; }
.scn-tasting-bread .steam-b { position:absolute; bottom:55%; left:52%; width:8px; height:16px; background: rgba(255,255,255,0.15); border-radius: 50%; filter: blur(3px); animation: s4-steam2 3.5s ease-out infinite 0.5s; }
.scn-tasting-bread .glow-halo { position:absolute; bottom:35%; left:40%; width:60px; height:60px; background: radial-gradient(circle, rgba(255,215,0,0.5) 0%, transparent 70%); border-radius: 50%; animation: s4-glow 4s ease-in-out infinite; }
.scn-tasting-bread .crumbs { position:absolute; bottom:38%; left:55%; width:3px; height:3px; background: #8b4513; border-radius: 50%; box-shadow: 4px 2px 0 #8b4513, -2px 5px 0 #8b4513, 6px 4px 0 #8b4513; animation: s4-crumbs 6s linear infinite; }
@keyframes s4-warm { 0% { opacity:0.7; } 50% { opacity:0.9; } 100% { opacity:0.6; } }
@keyframes s4-fire { 0%,100% { transform: scaleY(1) scaleX(1); } 50% { transform: scaleY(1.15) scaleX(0.85); } }
@keyframes s4-bread { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.05); } 100% { transform: scaleY(1); } }
@keyframes s4-ned { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 30% { transform: translateX(3px) translateY(-3px) rotate(4deg); } 60% { transform: translateX(0) translateY(0) rotate(-1deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes s4-steam1 { 0% { transform: translate(0,0) scale(1); opacity:0.5; } 100% { transform: translate(-5px,-30px) scale(2); opacity:0; } }
@keyframes s4-steam2 { 0% { transform: translate(0,0) scale(1); opacity:0.4; } 100% { transform: translate(5px,-30px) scale(1.8); opacity:0; } }
@keyframes s4-glow { 0%,100% { opacity:0.6; } 50% { opacity:1; } }
@keyframes s4-crumbs { 0% { transform: translateY(0); } 100% { transform: translateY(-20px); opacity:0; } }

.scn-nemo-may-be-ashore {
  background: linear-gradient(135deg, #2a1e14 0%, #1a120c 50%, #0d0a07 100%),
              radial-gradient(circle at 30% 70%, #3a2c1e 0%, transparent 60%);
}
.scn-nemo-may-be-ashore .nm-wall   { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #1a120c 0%, #251c12 100%); }
.scn-nemo-may-be-ashore .nm-floor  { position:absolute; bottom:0; height:55%; left:0; right:0; background: linear-gradient(180deg, #1f1811 0%, #120e09 100%); }
.scn-nemo-may-be-ashore .nm-desk   { position:absolute; bottom:38%; left:25%; width:30%; height:12%; background: linear-gradient(180deg, #4a3520 0%, #2a1e14 100%); border-radius: 4% 4% 8% 8%; box-shadow: 0 4px 10px rgba(0,0,0,0.6); }
.scn-nemo-may-be-ashore .nm-lamp   { position:absolute; bottom:48%; left:28%; width:8px; height:20px; background: radial-gradient(circle at top, #ffcc80 0%, #8a6c42 100%); border-radius: 50% 50% 20% 20%; box-shadow: 0 0 30px 10px rgba(255,204,128,0.3); animation: nm-lamp 4s ease-in-out infinite alternate; }
.scn-nemo-may-be-ashore .nm-chair  { position:absolute; bottom:40%; left:35%; width:20%; height:15%; background: linear-gradient(180deg, #3a281a 0%, #1f140b 100%); border-radius: 30% 30% 10% 10% / 60% 60% 20% 20%; transform: perspective(400px) rotateX(5deg); }
.scn-nemo-may-be-ashore .nm-figure { position:absolute; bottom:38%; left:52%; width:14%; height:30%; background: linear-gradient(180deg, #0f0d0a 0%, #1a1410 100%); border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%; transform: perspective(400px) rotateY(-10deg); animation: nm-figure 6s ease-in-out infinite; }
.scn-nemo-may-be-ashore .nm-skiff  { position:absolute; bottom:20%; left:10%; width:40%; height:8%; background: linear-gradient(90deg, #3a2c1e, #1f1811); border-radius: 0 60% 40% 0 / 0 100% 100% 0; opacity:0.3; transform: scaleX(0.8); animation: nm-skiff 20s linear infinite; }
@keyframes nm-lamp { 0% { opacity:0.6; box-shadow:0 0 20px 5px rgba(255,204,128,0.2); } 50% { opacity:1; box-shadow:0 0 40px 15px rgba(255,204,128,0.5); } 100% { opacity:0.7; box-shadow:0 0 25px 8px rgba(255,204,128,0.3); } }
@keyframes nm-figure { 0% { transform: perspective(400px) rotateY(-10deg) translateY(0); } 25% { transform: perspective(400px) rotateY(-12deg) translateY(-2px); } 50% { transform: perspective(400px) rotateY(-8deg) translateY(0); } 75% { transform: perspective(400px) rotateY(-10deg) translateY(-1px); } 100% { transform: perspective(400px) rotateY(-10deg) translateY(0); } }
@keyframes nm-skiff { 0% { transform: translateX(0) scaleX(0.8); opacity:0.2; } 50% { transform: translateX(10px) scaleX(1); opacity:0.4; } 100% { transform: translateX(20px) scaleX(0.8); opacity:0.2; } }

.scn-anxious-waiting-dinner {
  background: linear-gradient(180deg, #1e1814 0%, #14100c 50%, #0a0806 100%),
              radial-gradient(ellipse at 50% 30%, #2c221a 0%, transparent 70%);
}
.scn-anxious-waiting-dinner .aw-wall   { position:absolute; inset:0 0 60% 0; background: linear-gradient(180deg, #1c1612 0%, #15100c 100%); }
.scn-anxious-waiting-dinner .aw-floor  { position:absolute; bottom:0; height:60%; left:0; right:0; background: linear-gradient(180deg, #1a1410 0%, #0d0a07 100%); }
.scn-anxious-waiting-dinner .aw-table  { position:absolute; bottom:30%; left:15%; width:70%; height:10%; background: linear-gradient(180deg, #3a2c1e 0%, #251c12 100%); border-radius: 8% 8% 4% 4%; box-shadow: 0 6px 15px rgba(0,0,0,0.5); }
.scn-anxious-waiting-dinner .aw-chair  { position:absolute; bottom:34%; left:35%; width:18%; height:18%; background: linear-gradient(180deg, #2a1e14 0%, #1a120c 100%); border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%; transform: perspective(400px) rotateX(5deg); }
.scn-anxious-waiting-dinner .aw-candle { position:absolute; bottom:40%; left:28%; width:6px; height:18px; background: linear-gradient(180deg, #e6c088 0%, #a67a3c 100%); border-radius: 50% 50% 20% 20%; box-shadow: 0 0 20px 6px rgba(230,192,136,0.3); animation: aw-candle 2s ease-in-out infinite alternate; }
.scn-anxious-waiting-dinner .aw-clock  { position:absolute; top:15%; right:20%; width:30px; height:30px; background: radial-gradient(circle, #b89868 0%, #4a382a 100%); border-radius: 50%; box-shadow: 0 4px 12px rgba(0,0,0,0.6); animation: aw-clock 3s ease-in-out infinite; }
.scn-anxious-waiting-dinner .aw-hand   { position:absolute; bottom:37%; left:45%; width:10px; height:18px; background: linear-gradient(180deg, #1f1811 0%, #0f0c08 100%); border-radius: 20% 20% 40% 40% / 30% 30% 60% 60%; transform-origin: bottom center; transform: rotate(-15deg); animation: aw-hand 4s ease-in-out infinite alternate; }
@keyframes aw-candle { 0% { transform: scaleY(1) rotate(-2deg); opacity:0.8; } 50% { transform: scaleY(1.1) rotate(2deg); opacity:1; box-shadow:0 0 30px 10px rgba(230,192,136,0.5); } 100% { transform: scaleY(0.9) rotate(-1deg); opacity:0.7; } }
@keyframes aw-clock { 0% { transform: rotate(0deg); } 25% { transform: rotate(45deg); } 50% { transform: rotate(90deg); } 75% { transform: rotate(135deg); } 100% { transform: rotate(180deg); } }
@keyframes aw-hand { 0% { transform: rotate(-15deg) translateY(0); } 50% { transform: rotate(5deg) translateY(-2px); } 100% { transform: rotate(-10deg) translateY(0); } }

.scn-last-visit-to-lounge {
  background: linear-gradient(180deg, #0e0a12 0%, #1a1424 40%, #0f0b16 100%),
              radial-gradient(ellipse at 70% 50%, #2a2240 0%, transparent 80%);
}
.scn-last-visit-to-lounge .lv-back      { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #1a1424 0%, #0e0a12 100%); }
.scn-last-visit-to-lounge .lv-floor     { position:absolute; bottom:0; height:50%; left:0; right:0; background: linear-gradient(180deg, #1a1424 0%, #0d0910 100%); }
.scn-last-visit-to-lounge .lv-shelf-left { position:absolute; top:15%; left:5%; width:20%; height:60%; background: linear-gradient(90deg, #2a2240 0%, #1a1424 100%); border-radius: 4px; box-shadow: inset 0 0 20px rgba(0,0,0,0.6); }
.scn-last-visit-to-lounge .lv-shelf-right{ position:absolute; top:20%; right:5%; width:18%; height:50%; background: linear-gradient(90deg, #2a2240 0%, #1a1424 100%); border-radius: 4px; box-shadow: inset 0 0 20px rgba(0,0,0,0.6); }
.scn-last-visit-to-lounge .lv-pedestal  { position:absolute; bottom:30%; left:50%; width:20%; height:25%; transform: translateX(-50%); background: linear-gradient(180deg, #4a3860 0%, #2a1e3a 100%); border-radius: 50% 50% 10% 10% / 70% 70% 20% 20%; box-shadow: 0 8px 20px rgba(0,0,0,0.7); }
.scn-last-visit-to-lounge .lv-orb       { position:absolute; bottom:50%; left:50%; width:12px; height:12px; transform: translate(-50%,0); background: radial-gradient(circle, #c0b0e0 0%, #7a6a9a 100%); border-radius: 50%; box-shadow: 0 0 30px 8px #7a6a9a; animation: lv-orb 6s ease-in-out infinite alternate; }
.scn-last-visit-to-lounge .lv-figure    { position:absolute; bottom:32%; left:40%; width:16%; height:28%; background: linear-gradient(180deg, #0f0c14 0%, #1c1626 100%); border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%; transform: perspective(400px) rotateY(5deg); animation: lv-figure 8s ease-in-out infinite; }
@keyframes lv-orb { 0% { transform: translate(-50%,0) scale(1); opacity:0.7; } 50% { transform: translate(-50%,-5px) scale(1.2); opacity:1; box-shadow:0 0 50px 15px #7a6a9a; } 100% { transform: translate(-50%,0) scale(0.9); opacity:0.6; } }
@keyframes lv-figure { 0% { transform: perspective(400px) rotateY(5deg) translateY(0); } 25% { transform: perspective(400px) rotateY(7deg) translateY(-2px); } 50% { transform: perspective(400px) rotateY(3deg) translateY(0); } 75% { transform: perspective(400px) rotateY(6deg) translateY(-1px); } 100% { transform: perspective(400px) rotateY(5deg) translateY(0); } }

.scn-nemos-stateroom-ajar {
  background: linear-gradient(135deg, #12100e 0%, #1a1614 40%, #0a0806 100%),
              radial-gradient(ellipse at 60% 30%, #2c2420 0%, transparent 70%);
}
.scn-nemos-stateroom-ajar .ns-wall      { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #1a1614 0%, #12100e 100%); }
.scn-nemos-stateroom-ajar .ns-doorframe { position:absolute; bottom:0; left:30%; width:40%; height:100%; background: linear-gradient(180deg, #2c2420 0%, #1a1614 100%); border-radius: 4px; box-shadow: inset 0 0 30px rgba(0,0,0,0.8); }
.scn-nemos-stateroom-ajar .ns-door      { position:absolute; bottom:5%; left:32%; width:36%; height:85%; background: linear-gradient(180deg, #1e1a18 0%, #12100e 100%); border-radius: 2px; transform-origin: left center; transform: skewY(5deg); box-shadow: 0 0 20px rgba(0,0,0,0.6); }
.scn-nemos-stateroom-ajar .ns-light     { position:absolute; bottom:5%; left:32%; width:10%; height:85%; background: linear-gradient(90deg, rgba(200,180,160,0.4) 0%, transparent 100%); filter: blur(4px); animation: ns-light 5s ease-in-out infinite alternate; }
.scn-nemos-stateroom-ajar .ns-figure    { position:absolute; bottom:30%; left:20%; width:14%; height:30%; background: linear-gradient(180deg, #0f0d0a 0%, #1a1410 100%); border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%; transform: perspective(400px) rotateY(15deg) translateX(-5px); animation: ns-figure 4s ease-in-out infinite; }
.scn-nemos-stateroom-ajar .ns-floor     { position:absolute; bottom:0; height:45%; left:0; right:0; background: linear-gradient(180deg, #1a1614 0%, #0d0a07 100%); }
@keyframes ns-light { 0% { opacity:0.3; transform: scaleX(1); } 50% { opacity:0.6; transform: scaleX(1.2); } 100% { opacity:0.4; transform: scaleX(0.9); } }
@keyframes ns-figure { 0% { transform: perspective(400px) rotateY(15deg) translateX(-5px); } 25% { transform: perspective(400px) rotateY(18deg) translateX(-8px); } 50% { transform: perspective(400px) rotateY(12deg) translateX(-3px); } 75% { transform: perspective(400px) rotateY(16deg) translateX(-6px); } 100% { transform: perspective(400px) rotateY(15deg) translateX(-5px); } }

/* relics-collected */
.scn-relics-collected { background: linear-gradient(180deg, #e8d5a8 0%, #c6b389 40%, #9a8566 100%), radial-gradient(ellipse at 50% 30%, #d4c08a 0%, transparent 60%); }
.scn-relics-collected .sand { position:absolute; inset:0; background: linear-gradient(180deg, #d9c39a 0%, #b09870 100%); border-radius: 0 0 50% 50% / 0 0 20% 20%; }
.scn-relics-collected .table { position:absolute; bottom:15%; left:10%; right:10%; height:45%; background: linear-gradient(180deg, #7a6a4a 0%, #4a3a2a 100%); border-radius: 4% 4% 0 0; box-shadow: 0 4px 8px rgba(0,0,0,.3); }
.scn-relics-collected .bell { position:absolute; bottom:35%; left:38%; width:24%; aspect-ratio: 1/1.2; background: radial-gradient(ellipse at 60% 30%, #c8a870 0%, #8a6a40 70%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rc-bell 4s ease-in-out infinite; }
.scn-relics-collected .bell::after { content:''; position:absolute; top:10%; left:30%; width:40%; height:15%; background: #5a3a1a; border-radius: 30%; }
.scn-relics-collected .anchor { position:absolute; bottom:30%; left:65%; width:12%; aspect-ratio: 1/2; background: linear-gradient(180deg, #6a5a3a 40%, #3a2a1a 100%); border-radius: 10% 10% 50% 50%; animation: rc-rock 6s ease-in-out infinite; }
.scn-relics-collected .shell { position:absolute; bottom:45%; left:20%; width:8%; aspect-ratio: 1; background: radial-gradient(circle at 40% 40%, #f0d8b0 0%, #c8a070 100%); border-radius: 60% 40% 50% 50%; transform: rotate(20deg); animation: rc-glow 8s ease-in-out infinite alternate; }
.scn-relics-collected .astrolabe { position:absolute; bottom:38%; left:50%; width:10%; aspect-ratio: 1; background: radial-gradient(circle, #b89860 0%, #7a5a30 100%); border-radius: 50%; border: 2px solid #6a4a2a; animation: rc-spin 12s linear infinite; }
.scn-relics-collected .tools { position:absolute; bottom:30%; right:15%; width:15%; height:30%; background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%); border-radius: 10% 10% 20% 20%; transform: rotate(-5deg); animation: rc-tilt 7s ease-in-out infinite; }
.scn-relics-collected .figure-hand { position:absolute; bottom:22%; left:30%; width:12%; aspect-ratio: 1/0.8; background: radial-gradient(ellipse at 40% 30%, #d4a080 0%, #8a5a3a 100%); border-radius: 50% 50% 40% 40%; animation: rc-hand 5s ease-in-out infinite; }
@keyframes rc-bell { 0% { transform: rotate(0) scale(1); } 50% { transform: rotate(3deg) scale(1.02); } 100% { transform: rotate(0) scale(1); } }
@keyframes rc-rock { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(0); } }
@keyframes rc-glow { 0% { opacity: .7; } 50% { opacity: 1; box-shadow: 0 0 8px #d4b080; } 100% { opacity: .8; } }
@keyframes rc-spin { 0% { transform: rotate(0); } 100% { transform: rotate(360deg); } }
@keyframes rc-tilt { 0% { transform: rotate(-5deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-5deg); } }
@keyframes rc-hand { 0% { transform: translateX(0); } 50% { transform: translateX(10px) rotate(5deg); } 100% { transform: translateX(0); } }

/* dillon-departs-vanikoro */
.scn-dillon-departs-vanikoro { background: linear-gradient(180deg, #b8d0e0 0%, #80a8c0 40%, #4a7a8a 100%), radial-gradient(ellipse at 50% 100%, #6a9ab0 0%, transparent 60%); }
.scn-dillon-departs-vanikoro .sky { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #c0d8e8 0%, #a0bcd0 100%); animation: ddv-sky 15s ease-in-out infinite alternate; }
.scn-dillon-departs-vanikoro .sea { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #3a6a7a 0%, #2a4a5a 100%); animation: ddv-sea 10s ease-in-out infinite; }
.scn-dillon-departs-vanikoro .island { position:absolute; bottom:40%; left:10%; width:20%; height:20%; background: radial-gradient(ellipse at 50% 100%, #5a8a4a 0%, #3a6a2a 100%); border-radius: 50% 50% 0 0; box-shadow: inset 0 -4px 8px rgba(0,0,0,.3); }
.scn-dillon-departs-vanikoro .ship-hull { position:absolute; bottom:30%; left:55%; width:15%; height:18%; background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%); border-radius: 0 0 40% 40% / 0 0 60% 60%; animation: ddv-hull 6s ease-in-out infinite; }
.scn-dillon-departs-vanikoro .sail-main { position:absolute; bottom:44%; left:57%; width:10%; height:25%; clip-path: polygon(50% 0%, 100% 100%, 0% 100%); background: linear-gradient(180deg, #f0e8d0 0%, #d0c0a0 100%); animation: ddv-sail 8s ease-in-out infinite alternate; }
.scn-dillon-departs-vanikoro .sail-jib { position:absolute; bottom:42%; left:67%; width:8%; height:18%; clip-path: polygon(0% 0%, 100% 100%, 0% 100%); background: linear-gradient(180deg, #f0e8d0 0%, #d0c0a0 100%); animation: ddv-sail 8s ease-in-out infinite alternate-reverse; }
.scn-dillon-departs-vanikoro .cloud-a { position:absolute; top:15%; left:10%; width:25%; height:10%; background: radial-gradient(ellipse at 50% 50%, rgba(255,255,255,.6) 0%, transparent 70%); filter: blur(6px); animation: ddv-drift 40s linear infinite; }
.scn-dillon-departs-vanikoro .cloud-b { position:absolute; top:25%; right:15%; width:30%; height:8%; background: radial-gradient(ellipse at 50% 50%, rgba(255,255,255,.4) 0%, transparent 70%); filter: blur(4px); animation: ddv-drift 50s linear infinite reverse; }
@keyframes ddv-sky { 0% { opacity: .8; } 50% { opacity: 1; } 100% { opacity: .7; } }
@keyframes ddv-sea { 0% { transform: translateY(0); } 50% { transform: translateY(3px); } 100% { transform: translateY(0); } }
@keyframes ddv-hull { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes ddv-sail { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.05); } 100% { transform: scaleY(1); } }
@keyframes ddv-drift { 0% { transform: translateX(-20px); } 100% { transform: translateX(120vw); } }

/* dumont-durville-unaware */
.scn-dumont-durville-unaware { background: linear-gradient(180deg, #b0c8d8 0%, #8aacb8 40%, #6a8a94 100%), radial-gradient(ellipse at 50% 100%, #88a8b8 0%, transparent 60%); }
.scn-dumont-durville-unaware .wall { position:absolute; inset:10% 15% 20% 15%; background: linear-gradient(180deg, #d0c8b0 0%, #b0a890 100%); border-radius: 4%; box-shadow: inset 0 0 20px rgba(0,0,0,.2); }
.scn-dumont-durville-unaware .window { position:absolute; top:15%; right:20%; width:30%; height:40%; background: linear-gradient(180deg, #a0c8e0 0%, #70a0c0 100%); border-radius: 2% 2% 4% 4%; border: 6px solid #8a7a5a; animation: ddu-light 6s ease-in-out infinite alternate; }
.scn-dumont-durville-unaware .map { position:absolute; bottom:30%; left:20%; width:40%; height:40%; background: radial-gradient(ellipse at 50% 50%, #e8d8b0 0%, #c8b080 100%); border-radius: 2%; border: 2px solid #a09070; transform: rotate(-2deg); animation: ddu-map 8s ease-in-out infinite; }
.scn-dumont-durville-unaware .cross { position:absolute; bottom:35%; left:50%; width:8%; aspect-ratio: 1/1.4; background: radial-gradient(ellipse at 50% 30%, #d4b080 0%, #9a7a5a 100%); border-radius: 20% 20% 40% 40%; animation: ddu-glow 4s ease-in-out infinite alternate; }
.scn-dumont-durville-unaware .medal { position:absolute; bottom:40%; left:60%; width:6%; aspect-ratio: 1; background: radial-gradient(circle, #e8d0a0 0%, #b89a60 100%); border-radius: 50%; box-shadow: 0 0 6px #b89a60; animation: ddu-glow 5s ease-in-out infinite alternate-reverse; }
.scn-dumont-durville-unaware .hand { position:absolute; bottom:28%; left:45%; width:10%; aspect-ratio: 1/0.6; background: radial-gradient(ellipse at 40% 40%, #d4a88a 0%, #9a6a4a 100%); border-radius: 50% 50% 40% 40%; transform: rotate(-10deg); animation: ddu-point 7s ease-in-out infinite; }
@keyframes ddu-light { 0% { background: #a0c8e0; } 50% { background: #c0e0f0; } 100% { background: #a0c8e0; } }
@keyframes ddu-map { 0% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(2deg) translateY(-2px); } 100% { transform: rotate(-2deg) translateY(0); } }
@keyframes ddu-glow { 0% { opacity: .7; box-shadow: 0 0 4px rgba(180,140,80,.5); } 50% { opacity: 1; box-shadow: 0 0 12px rgba(180,140,80,.8); } 100% { opacity: .8; box-shadow: 0 0 6px rgba(180,140,80,.5); } }
@keyframes ddu-point { 0% { transform: rotate(-10deg) translateX(0); } 50% { transform: rotate(5deg) translateX(8px); } 100% { transform: rotate(-10deg) translateX(0); } }

/* astrolabe-departs */
.scn-astrolabe-departs { background: linear-gradient(180deg, #b8d0e0 0%, #88a4b8 40%, #507488 100%), radial-gradient(ellipse at 50% 100%, #7098ac 0%, transparent 60%); }
.scn-astrolabe-departs .harbor-sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #c0d8e8 0%, #a0bcd0 100%); animation: adp-sky 12s ease-in-out infinite alternate; }
.scn-astrolabe-departs .harbor-water { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #3a6a7a 0%, #2a4a5a 100%); animation: adp-water 10s ease-in-out infinite; }
.scn-astrolabe-departs .wharf { position:absolute; bottom:30%; left:0; width:20%; height:20%; background: linear-gradient(180deg, #6a5a3a 0%, #3a2a1a 100%); border-radius: 0 20% 0 0; }
.scn-astrolabe-departs .astrolabe-hull { position:absolute; bottom:28%; left:40%; width:18%; height:20%; background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%); border-radius: 0 0 40% 40% / 0 0 60% 60%; animation: adp-hull 6s ease-in-out infinite; }
.scn-astrolabe-departs .sail-fore { position:absolute; bottom:45%; left:42%; width:10%; height:30%; clip-path: polygon(50% 0%, 100% 100%, 0% 100%); background: linear-gradient(180deg, #f0e8d0 0%, #d0c0a0 100%); animation: adp-sail 8s ease-in-out infinite alternate; }
.scn-astrolabe-departs .sail-mizzen { position:absolute; bottom:42%; left:55%; width:8%; height:24%; clip-path: polygon(0% 0%, 100% 100%, 0% 100%); background: linear-gradient(180deg, #f0e8d0 0%, #d0c0a0 100%); animation: adp-sail 8s ease-in-out infinite alternate-reverse; }
.scn-astrolabe-departs .lighthouse { position:absolute; bottom:35%; right:15%; width:8%; height:30%; background: linear-gradient(180deg, #d0c0a0 0%, #8a7a5a 100%); border-radius: 20% 20% 0 0; }
.scn-astrolabe-departs .lighthouse::after { content:''; position:absolute; top:10%; left:25%; width:50%; height:20%; background: radial-gradient(circle, #ffe8a0 0%, #ffc860 100%); border-radius: 50%; box-shadow: 0 0 20px #ffc860; animation: adp-light 4s ease-in-out infinite alternate; }
.scn-astrolabe-departs .gull-1 { position:absolute; top:20%; left:30%; width:8%; aspect-ratio: 2/1; background: radial-gradient(ellipse at 50% 50%, #f0f0f0 0%, #b0b0b0 100%); clip-path: polygon(0% 50%, 50% 0%, 100% 50%, 50% 100%); filter: blur(1px); animation: adp-gull 15s linear infinite; }
.scn-astrolabe-departs .gull-2 { position:absolute; top:25%; left:50%; width:6%; aspect-ratio: 2/1; background: radial-gradient(ellipse at 50% 50%, #f0f0f0 0%, #b0b0b0 100%); clip-path: polygon(0% 50%, 50% 0%, 100% 50%, 50% 100%); filter: blur(1px); animation: adp-gull 20s linear infinite reverse; }
@keyframes adp-sky { 0% { opacity: .8; } 50% { opacity: 1; } 100% { opacity: .7; } }
@keyframes adp-water { 0% { transform: translateY(0); } 50% { transform: translateY(3px); } 100% { transform: translateY(0); } }
@keyframes adp-hull { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes adp-sail { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.05); } 100% { transform: scaleY(1); } }
@keyframes adp-light { 0% { opacity: .6; box-shadow: 0 0 10px #ffc860; } 50% { opacity: 1; box-shadow: 0 0 30px #ffc860; } 100% { opacity: .7; box-shadow: 0 0 15px #ffc860; } }
@keyframes adp-gull { 0% { transform: translateX(0) translateY(0); } 25% { transform: translateX(30px) translateY(-10px); } 50% { transform: translateX(60px) translateY(0); } 75% { transform: translateX(90px) translateY(-5px); } 100% { transform: translateX(120px) translateY(0); } }

.scn-ned-saves-nemo {
  background: linear-gradient(180deg, #87ceeb 0%, #b0e0f0 40%, #f0e68c 70%, #ffd700 100%),
              radial-gradient(ellipse at 70% 30%, rgba(255,215,0,0.3) 0%, transparent 60%);
}
.scn-ned-saves-nemo .sky-nsn {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #4a90d9 0%, #87ceeb 100%);
  animation: nsn-sky 6s ease-in-out infinite alternate;
}
.scn-ned-saves-nemo .sea-nsn {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #1e90ff 0%, #004080 100%);
}
.scn-ned-saves-nemo .jaws-nsn {
  position: absolute; bottom: 25%; left: 20%; width: 35%; height: 30%;
  background: radial-gradient(ellipse at 30% 50%, #2f2f2f 0%, #1a1a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 10px 30px rgba(0,0,0,0.6);
  animation: nsn-jaws 3s ease-in-out infinite;
}
.scn-ned-saves-nemo .teeth-nsn {
  position: absolute; bottom: 30%; left: 22%; width: 31%; height: 12%;
  background: repeating-linear-gradient(90deg, #fff 0px, #fff 8px, transparent 8px, transparent 12px);
  clip-path: polygon(0% 0%, 100% 0%, 95% 100%, 5% 100%);
  animation: nsn-teeth 3s ease-in-out infinite;
}
.scn-ned-saves-nemo .harpoon-nsn {
  position: absolute; bottom: 35%; left: 55%; width: 8%; height: 45%;
  background: linear-gradient(180deg, #8b4513 0%, #654321 100%);
  border-radius: 4px;
  transform-origin: bottom center;
  animation: nsn-harpoon 2s ease-out infinite alternate;
}
.scn-ned-saves-nemo .ned-nsn {
  position: absolute; bottom: 15%; left: 60%; width: 15%; height: 35%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  box-shadow: -10px 0 20px rgba(0,0,0,0.3);
  animation: nsn-ned 2s ease-in-out infinite alternate;
}
.scn-ned-saves-nemo .splash-nsn {
  position: absolute; bottom: 38%; left: 35%; width: 20%; height: 20%;
  background: radial-gradient(circle, rgba(255,255,255,0.6) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(5px);
  animation: nsn-splash 0.8s ease-out infinite;
}
@keyframes nsn-sky {
  0% { opacity: 1; }
  50% { opacity: 0.8; }
  100% { opacity: 0.9; }
}
@keyframes nsn-jaws {
  0% { transform: scaleY(0.6) translateY(0); }
  30% { transform: scaleY(1) translateY(-5px); }
  70% { transform: scaleY(1.1) translateY(-8px); }
  100% { transform: scaleY(0.7) translateY(0); }
}
@keyframes nsn-teeth {
  0% { transform: scaleY(0.6); }
  30% { transform: scaleY(1); }
  70% { transform: scaleY(1.1); }
  100% { transform: scaleY(0.7); }
}
@keyframes nsn-harpoon {
  0% { transform: rotate(-5deg) translateX(0); }
  50% { transform: rotate(0deg) translateX(10px); }
  100% { transform: rotate(5deg) translateX(0); }
}
@keyframes nsn-ned {
  0% { transform: rotate(0deg) translateX(0); }
  50% { transform: rotate(-3deg) translateX(-5px); }
  100% { transform: rotate(2deg) translateX(3px); }
}
@keyframes nsn-splash {
  0% { transform: scale(0.5); opacity: 1; }
  100% { transform: scale(2); opacity: 0; }
}

.scn-rescued-fisherman {
  background: linear-gradient(180deg, #f5deb3 0%, #ffd700 40%, #ffa07a 70%, #e0e0e0 100%),
              radial-gradient(ellipse at 50% 0%, rgba(255,215,0,0.4) 0%, transparent 60%);
}
.scn-rescued-fisherman .sky-rf {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #87ceeb 0%, #b0e0f0 100%);
  animation: rf-sky 10s ease-in-out infinite alternate;
}
.scn-rescued-fisherman .sea-rf {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #4682b4 0%, #1e90ff 100%);
}
.scn-rescued-fisherman .boat-rf {
  position: absolute; bottom: 15%; left: 10%; width: 60%; height: 20%;
  background: linear-gradient(180deg, #8b4513 0%, #5c2e0a 100%);
  border-radius: 20% 20% 40% 40% / 40% 40% 30% 30%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.5);
  animation: rf-boat 4s ease-in-out infinite;
}
.scn-rescued-fisherman .figure-l-rf {
  position: absolute; bottom: 20%; left: 15%; width: 12%; height: 25%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: rf-figure 4s ease-in-out infinite;
}
.scn-rescued-fisherman .figure-c-rf {
  position: absolute; bottom: 22%; left: 35%; width: 12%; height: 28%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: rf-figure 4s ease-in-out infinite 0.5s;
}
.scn-rescued-fisherman .figure-r-rf {
  position: absolute; bottom: 20%; left: 55%; width: 12%; height: 25%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: rf-figure 4s ease-in-out infinite 1s;
}
.scn-rescued-fisherman .sun-rf {
  position: absolute; top: 10%; left: 60%; width: 12%; height: 12%;
  background: radial-gradient(circle, #ffd700 0%, #ffa500 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(255,215,0,0.3);
  animation: rf-sun 8s ease-in-out infinite alternate;
}
@keyframes rf-sky {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes rf-boat {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(5px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes rf-figure {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes rf-sun {
  0% { transform: scale(1); opacity: 0.9; }
  50% { transform: scale(1.1); opacity: 1; }
  100% { transform: scale(0.95); opacity: 0.85; }
}

.scn-nemo-benefaction {
  background: linear-gradient(180deg, #f5deb3 0%, #e0c090 40%, #c8a070 70%, #a08050 100%),
              radial-gradient(ellipse at 50% 50%, rgba(255,215,0,0.2) 0%, transparent 70%);
}
.scn-nemo-benefaction .bg-nb {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, transparent 0%, rgba(160,120,80,0.3) 100%);
  animation: nb-bg 12s ease-in-out infinite alternate;
}
.scn-nemo-benefaction .nemo-nb {
  position: absolute; bottom: 20%; left: 5%; width: 25%; height: 40%;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 5px 0 20px rgba(0,0,0,0.3);
  animation: nb-figure 5s ease-in-out infinite;
}
.scn-nemo-benefaction .indian-nb {
  position: absolute; bottom: 18%; left: 60%; width: 25%; height: 35%;
  background: linear-gradient(180deg, #5c3a1a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: nb-figure 5s ease-in-out infinite 1s;
}
.scn-nemo-benefaction .hands-nb {
  position: absolute; bottom: 25%; left: 35%; width: 20%; height: 15%;
  background: linear-gradient(90deg, #c8a060 0%, #d4b070 50%, #c8a060 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  box-shadow: 0 0 30px 10px rgba(200,160,96,0.5);
  animation: nb-hands 3s ease-in-out infinite alternate;
}
.scn-nemo-benefaction .glow-nb {
  position: absolute; bottom: 25%; left: 35%; width: 20%; height: 15%;
  background: radial-gradient(circle, rgba(255,215,0,0.4) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(10px);
  animation: nb-glow 3s ease-in-out infinite alternate;
}
.scn-nemo-benefaction .ground-nb {
  position: absolute; bottom: 0; left: 0; right: 0; height: 18%;
  background: linear-gradient(180deg, #8b7335 0%, #5c4a20 100%);
  border-radius: 40% 40% 0 0 / 30% 30% 0 0;
}
@keyframes nb-bg {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes nb-figure {
  0% { transform: rotate(0deg) translateY(0); }
  50% { transform: rotate(-1deg) translateY(-2px); }
  100% { transform: rotate(0deg) translateY(0); }
}
@keyframes nb-hands {
  0% { transform: scale(1) opacity(0.9); }
  50% { transform: scale(1.05) opacity(1); }
  100% { transform: scale(0.95) opacity(0.85); }
}
@keyframes nb-glow {
  0% { opacity: 0.6; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}

.scn-shark-corpse {
  background: linear-gradient(180deg, #b0e0f0 0%, #e0f0ff 50%, #f0f8ff 100%),
              radial-gradient(ellipse at 50% 30%, rgba(255,255,255,0.4) 0%, transparent 70%);
}
.scn-shark-corpse .sky-sc {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #87ceeb 0%, #b0e0f0 100%);
  animation: sc-sky 15s ease-in-out infinite alternate;
}
.scn-shark-corpse .sea-sc {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #1e90ff 0%, #004080 100%);
  animation: sc-sea 8s ease-in-out infinite alternate;
}
.scn-shark-corpse .shark-body-sc {
  position: absolute; bottom: 30%; left: 20%; width: 40%; height: 18%;
  background: linear-gradient(180deg, #708090 0%, #4a5a6a 100%);
  border-radius: 40% 20% 30% 50% / 50% 30% 40% 50%;
  box-shadow: 0 5px 15px rgba(0,0,0,0.3);
  animation: sc-shark 6s ease-in-out infinite;
}
.scn-shark-corpse .fin-sc {
  position: absolute; bottom: 42%; left: 45%; width: 8%; height: 12%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  animation: sc-fin 6s ease-in-out infinite;
}
.scn-shark-corpse .wave-1-sc {
  position: absolute; bottom: 18%; left: 0; right: 0; height: 10%;
  background: repeating-linear-gradient(90deg, transparent 0px, transparent 30px, rgba(255,255,255,0.2) 30px, rgba(255,255,255,0.2) 60px);
  border-radius: 50%;
  animation: sc-wave-1 4s ease-in-out infinite;
}
.scn-shark-corpse .wave-2-sc {
  position: absolute; bottom: 8%; left: 0; right: 0; height: 8%;
  background: repeating-linear-gradient(90deg, transparent 0px, transparent 40px, rgba(255,255,255,0.15) 40px, rgba(255,255,255,0.15) 80px);
  border-radius: 50%;
  animation: sc-wave-2 5s ease-in-out infinite;
}
.scn-shark-corpse .reflection-sc {
  position: absolute; bottom: 28%; left: 20%; width: 40%; height: 6%;
  background: linear-gradient(180deg, rgba(255,255,255,0.3) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(4px);
  animation: sc-reflection 6s ease-in-out infinite;
}
@keyframes sc-sky {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes sc-sea {
  0% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
  100% { transform: translateY(2px); }
}
@keyframes sc-shark {
  0% { transform: rotate(-1deg) translateY(0); }
  50% { transform: rotate(1deg) translateY(-4px); }
  100% { transform: rotate(-1deg) translateY(0); }
}
@keyframes sc-fin {
  0% { transform: rotate(-2deg); }
  50% { transform: rotate(2deg); }
  100% { transform: rotate(-2deg); }
}
@keyframes sc-wave-1 {
  0% { transform: translateX(0) scaleY(0.8); }
  50% { transform: translateX(20px) scaleY(1); }
  100% { transform: translateX(0) scaleY(0.8); }
}
@keyframes sc-wave-2 {
  0% { transform: translateX(0) scaleY(0.9); }
  50% { transform: translateX(-15px) scaleY(1); }
  100% { transform: translateX(0) scaleY(0.9); }
}
@keyframes sc-reflection {
  0% { opacity: 0.3; }
  50% { opacity: 0.6; }
  100% { opacity: 0.3; }
}

.scn-arrival-vanikoro { background: linear-gradient(180deg, #87ceeb 0%, #f0e68c 40%, #ffd700 70%, #b8860b 100%), radial-gradient(ellipse at 50% 30%, #fff8dc 0%, transparent 60%); }
.scn-arrival-vanikoro .sky    { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #b0e0e6 0%, #87ceeb 100%); animation: av1-sky 20s ease-in-out infinite alternate; }
.scn-arrival-vanikoro .sea    { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #4682b4 0%, #1e90ff 30%, #00bfff 60%, #1c86ee 100%); animation: av1-sea 8s ease-in-out infinite alternate; }
.scn-arrival-vanikoro .island-a { position:absolute; bottom:40%; left:30%; width:80px; height:60px; background: radial-gradient(ellipse at 50% 100%, #228b22 0%, #006400 50%, #2e8b57 100%); border-radius: 40% 40% 20% 20%; animation: av1-island-a 30s ease-in-out infinite alternate; }
.scn-arrival-vanikoro .island-b { position:absolute; bottom:42%; left:55%; width:60px; height:45px; background: radial-gradient(ellipse at 50% 100%, #2e8b57 0%, #006400 50%, #228b22 100%); border-radius: 50% 50% 20% 20%; animation: av1-island-b 25s ease-in-out infinite alternate; }
.scn-arrival-vanikoro .reef   { position:absolute; bottom:30%; left:10%; right:10%; height:12%; background: linear-gradient(180deg, #f4a460 0%, #d2691e 50%, #8b4513 100%); border-radius: 60% 40% 30% 40% / 80% 60% 40% 50%; box-shadow: inset 0 6px 12px rgba(0,0,0,.3); animation: av1-reef 12s ease-in-out infinite alternate; }
.scn-arrival-vanikoro .platform { position:absolute; bottom:8%; left:35%; width:120px; height:20px; background: linear-gradient(180deg, #2f4f4f 0%, #1a1a1a 100%); border-radius: 6% 6% 2% 2%; box-shadow: 0 4px 8px rgba(0,0,0,.5); }
.scn-arrival-vanikoro .figure  { position:absolute; bottom:16%; left:45%; width:16px; height:36px; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: av1-figure 4s ease-in-out infinite; }
.scn-arrival-vanikoro .rail    { position:absolute; bottom:12%; left:33%; right:33%; height:2px; background: #333; box-shadow: 0 1px 0 #555; animation: av1-rail 3s ease-in-out infinite alternate; }
@keyframes av1-sky { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes av1-sea { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes av1-island-a { 0% { transform: scale(1) } 50% { transform: scale(1.02) } 100% { transform: scale(0.98) } }
@keyframes av1-island-b { 0% { transform: scale(1) } 50% { transform: scale(1.01) } 100% { transform: scale(0.99) } }
@keyframes av1-reef   { 0% { transform: translateX(0) } 50% { transform: translateX(3px) } 100% { transform: translateX(-3px) } }
@keyframes av1-figure { 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(0) rotate(0) } }
@keyframes av1-rail   { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }

.scn-vanikoro-island { background: linear-gradient(180deg, #87ceeb 0%, #f0e68c 35%, #ffd700 65%, #b8860b 100%), radial-gradient(ellipse at 50% 25%, #ffffe0 0%, transparent 60%); }
.scn-vanikoro-island .sky    { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #b0e0e6 0%, #87ceeb 100%); animation: vi2-sky 22s ease-in-out infinite alternate; }
.scn-vanikoro-island .sea    { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #4682b4 0%, #1e90ff 30%, #00bfff 60%, #1c86ee 100%); animation: vi2-sea 7s ease-in-out infinite alternate; }
.scn-vanikoro-island .island-shape { position:absolute; bottom:40%; left:20%; width:140px; height:80px; background: radial-gradient(ellipse at 50% 100%, #228b22 0%, #006400 50%, #2e8b57 100%); border-radius: 40% 50% 30% 30% / 60% 60% 20% 20%; filter: blur(1px); animation: vi2-island 35s ease-in-out infinite alternate; }
.scn-vanikoro-island .shore { position:absolute; bottom:20%; left:25%; right:25%; height:20%; background: linear-gradient(180deg, #f4a460 0%, #d2691e 50%, #8b4513 100%); border-radius: 30% 30% 10% 10%; box-shadow: inset 0 6px 12px rgba(0,0,0,.3); animation: vi2-shore 10s ease-in-out infinite alternate; }
.scn-vanikoro-island .trees { position:absolute; bottom:40%; left:25%; width:60px; height:70px; background: radial-gradient(ellipse at 50% 0%, #228b22 0%, #006400 100%); border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%; filter: blur(2px); animation: vi2-trees 14s ease-in-out infinite alternate; }
.scn-vanikoro-island .trees + .trees { left: auto; right:25%; width:50px; height:60px; animation-delay: -5s; }
.scn-vanikoro-island .harbor { position:absolute; bottom:22%; left:40%; width:50px; height:20px; background: radial-gradient(ellipse, #1e90ff 0%, #00bfff 100%); border-radius: 50%; box-shadow: 0 0 8px 2px rgba(30,144,255,.5); animation: vi2-harbor 6s ease-in-out infinite alternate; }
.scn-vanikoro-island .canoe  { position:absolute; bottom:18%; left:45%; width:30px; height:6px; background: linear-gradient(180deg, #8b4513 0%, #5c3317 100%); border-radius: 30% 30% 30% 30%; box-shadow: 0 1px 0 #3e2723; animation: vi2-canoe 5s ease-in-out infinite alternate; }
@keyframes vi2-sky { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes vi2-sea { 0% { transform: translateX(0) } 50% { transform: translateX(2px) } 100% { transform: translateX(-2px) } }
@keyframes vi2-island { 0% { transform: scale(1) } 50% { transform: scale(1.01) } 100% { transform: scale(0.99) } }
@keyframes vi2-shore { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes vi2-trees { 0% { transform: rotate(0deg) scale(1) } 50% { transform: rotate(2deg) scale(1.02) } 100% { transform: rotate(-2deg) scale(0.98) } }
@keyframes vi2-harbor { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes vi2-canoe { 0% { transform: translateX(0) rotate(-2deg) } 50% { transform: translateX(3px) rotate(0deg) } 100% { transform: translateX(0) rotate(2deg) } }

.scn-nautilus-enters-harbor { background: linear-gradient(180deg, #87ceeb 0%, #b0e0e6 30%, #f0e68c 60%, #d2b48c 100%), radial-gradient(ellipse at 50% 40%, #ffffe0 0%, transparent 70%); }
.scn-nautilus-enters-harbor .sky    { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #b0e0e6 0%, #87ceeb 100%); animation: nh3-sky 18s ease-in-out infinite alternate; }
.scn-nautilus-enters-harbor .sea    { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #1e90ff 0%, #00bfff 30%, #4682b4 60%, #1c86ee 100%); animation: nh3-sea 6s ease-in-out infinite alternate; }
.scn-nautilus-enters-harbor .reef-fg { position:absolute; bottom:20%; left:5%; right:5%; height:25%; background: linear-gradient(180deg, #d2691e 0%, #a0522d 40%, #8b4513 100%); border-radius: 50% 50% 20% 20% / 80% 80% 30% 30%; box-shadow: inset 0 10px 20px rgba(0,0,0,.4); filter: blur(1px); animation: nh3-reef 14s ease-in-out infinite alternate; }
.scn-nautilus-enters-harbor .nautilus-surface { position:absolute; bottom:35%; left:30%; width:160px; height:40px; background: linear-gradient(180deg, #556b2f 0%, #2e8b57 30%, #3cb371 100%); border-radius: 30% 30% 10% 10% / 60% 60% 20% 20%; box-shadow: 0 8px 16px rgba(0,0,0,.4); animation: nh3-nautilus 10s ease-in-out infinite alternate; }
.scn-nautilus-enters-harbor .shore-trees { position:absolute; bottom:20%; left:55%; width:80px; height:90px; background: radial-gradient(ellipse at 50% 0%, #228b22 0%, #006400 100%); border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%; filter: blur(3px); animation: nh3-trees 12s ease-in-out infinite alternate; }
.scn-nautilus-enters-harbor .savages { position:absolute; bottom:18%; left:60%; width:10px; height:20px; background: linear-gradient(180deg, #8b4513 0%, #5c3317 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: nh3-savages 3s ease-in-out infinite alternate; }
.scn-nautilus-enters-harbor .savages + .savages { left:64%; animation-delay: -1s; }
.scn-nautilus-enters-harbor .water-glint { position:absolute; bottom:40%; left:20%; width:30px; height:30px; background: radial-gradient(circle, #ffffe0 0%, transparent 100%); border-radius: 50%; box-shadow: 0 0 20px 6px rgba(255,255,224,.4); animation: nh3-glint 4s ease-in-out infinite alternate; }
@keyframes nh3-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes nh3-sea { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(3px) } }
@keyframes nh3-reef { 0% { transform: translateX(0) scale(1) } 50% { transform: translateX(-2px) scale(1.01) } 100% { transform: translateX(2px) scale(0.99) } }
@keyframes nh3-nautilus { 0% { transform: translateX(0) rotate(-1deg) } 50% { transform: translateX(5px) rotate(0deg) } 100% { transform: translateX(-5px) rotate(1deg) } }
@keyframes nh3-trees { 0% { transform: scale(1) } 50% { transform: scale(1.02) } 100% { transform: scale(0.98) } }
@keyframes nh3-savages { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(2deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes nh3-glint { 0% { opacity:0.3; transform: rotate(0deg) } 50% { opacity:0.8; transform: rotate(180deg) } 100% { opacity:0.4; transform: rotate(360deg) } }

.scn-nemo-asks-about-la-perouse { background: linear-gradient(180deg, #2f4f4f 0%, #4a6e6e 40%, #6e8b8b 100%), radial-gradient(ellipse at 50% 60%, #a9d0d0 0%, transparent 70%); }
.scn-nemo-asks-about-la-perouse .wall   { position:absolute; inset:0; background: linear-gradient(180deg, #2c3e50 0%, #34495e 100%); border-radius: 4% 4% 0 0; box-shadow: inset 0 0 40px rgba(0,0,0,.5); animation: na4-wall 30s ease-in-out infinite alternate; }
.scn-nemo-asks-about-la-perouse .floor  { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #4e3e2e 0%, #3e2e1e 100%); box-shadow: inset 0 8px 16px rgba(0,0,0,.6); }
.scn-nemo-asks-about-la-perouse .porthole { position:absolute; top:20%; left:50%; width:80px; height:80px; transform:translateX(-50%); background: radial-gradient(circle, #87ceeb 0%, #1e90ff 40%, #0a0a1a 100%); border-radius:50%; border: 6px solid #5c4a3a; box-shadow: 0 0 30px 10px rgba(30,144,255,.3); animation: na4-porthole 8s ease-in-out infinite alternate; }
.scn-nemo-asks-about-la-perouse .table  { position:absolute; bottom:20%; left:30%; width:140px; height:8px; background: linear-gradient(180deg, #8b4513 0%, #5c3317 100%); border-radius:4px; box-shadow: 0 8px 12px rgba(0,0,0,.5); animation: na4-table 12s ease-in-out infinite alternate; }
.scn-nemo-asks-about-la-perouse .figure-nemo { position:absolute; bottom:12%; left:25%; width:20px; height:50px; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: na4-nemo 5s ease-in-out infinite; }
.scn-nemo-asks-about-la-perouse .figure-prof { position:absolute; bottom:12%; right:30%; width:18px; height:46px; background: linear-gradient(180deg, #2c2c3e 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: na4-prof 5s ease-in-out infinite 2s; }
.scn-nemo-asks-about-la-perouse .map-glow { position:absolute; bottom:22%; left:35%; width:80px; height:40px; background: radial-gradient(ellipse, #ffd700 0%, #daa520 40%, transparent 100%); border-radius: 10%; box-shadow: 0 0 40px 12px rgba(255,215,0,.3); animation: na4-glow 6s ease-in-out infinite alternate; }
@keyframes na4-wall { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes na4-porthole { 0% { transform:translateX(-50%) scale(1); box-shadow:0 0 20px 6px rgba(30,144,255,.3) } 50% { transform:translateX(-50%) scale(1.02); box-shadow:0 0 40px 14px rgba(30,144,255,.5) } 100% { transform:translateX(-50%) scale(0.98); box-shadow:0 0 25px 8px rgba(30,144,255,.35) } }
@keyframes na4-table { 0% { transform: translateX(0) } 50% { transform: translateX(2px) } 100% { transform: translateX(-2px) } }
@keyframes na4-nemo { 0% { transform: translateX(0) rotate(-1deg) } 25% { transform: translateX(3px) rotate(1deg) } 50% { transform: translateX(6px) rotate(-1deg) } 75% { transform: translateX(3px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes na4-prof { 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 na4-glow { 0% { opacity:0.4; transform: scale(1) } 50% { opacity:0.8; transform: scale(1.05) } 100% { opacity:0.5; transform: scale(0.95) } }

.scn-seed-pearls {
  background: linear-gradient(135deg, #fcf6e8 0%, #e8dcc8 60%, #c8b89a 100%),
              radial-gradient(circle at 70% 30%, #fff8e7 0%, transparent 60%);
}
.scn-seed-pearls .table {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #d4c4a8 0%, #b8a88a 100%);
  border-radius: 30% 30% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 12px 20px -8px rgba(0,0,0,0.15);
  animation: sp-table 10s ease-in-out infinite;
}
.scn-seed-pearls .cup {
  position: absolute; bottom: 32%; left: 20%; width: 60px; height: 50px;
  background: linear-gradient(180deg, #f0e6d0 0%, #d8c8b0 50%, #b8a488 100%);
  border-radius: 0 0 20% 20% / 0 0 30% 30%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.2), inset 0 -8px 10px rgba(0,0,0,0.05);
  animation: sp-cup 7s ease-in-out infinite;
}
.scn-seed-pearls .pearl {
  position: absolute; width: 14px; height: 14px;
  background: radial-gradient(circle at 35% 35%, #fff9f0, #e0d0b8 70%, #b8a088);
  border-radius: 50%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.15), inset 0 -2px 4px rgba(255,255,240,0.6);
}
.scn-seed-pearls .p1 { bottom: 20%; left: 40%; animation: sp-pearl1 5s ease-in-out infinite; }
.scn-seed-pearls .p2 { bottom: 15%; left: 55%; width: 10px; height: 10px; animation: sp-pearl2 6s ease-in-out infinite; }
.scn-seed-pearls .p3 { bottom: 25%; left: 65%; width: 12px; height: 12px; animation: sp-pearl3 8s ease-in-out infinite; }
.scn-seed-pearls .light-spot {
  position: absolute; top: 15%; left: 55%; width: 120px; height: 100px;
  background: radial-gradient(circle, rgba(255,255,230,0.35) 0%, transparent 70%);
  animation: sp-light 12s ease-in-out infinite alternate;
}
.scn-seed-pearls .shadow-l {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.08) 100%);
  animation: sp-shadow 10s ease-in-out infinite;
}

@keyframes sp-table {
  0%, 100% { transform: scaleY(1); }
  50% { transform: scaleY(1.01); }
}
@keyframes sp-cup {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
}
@keyframes sp-pearl1 {
  0%, 100% { transform: translate(0, 0) rotate(0deg); }
  33% { transform: translate(2px, -1px) rotate(15deg); }
  66% { transform: translate(-1px, 2px) rotate(-10deg); }
}
@keyframes sp-pearl2 {
  0%, 100% { transform: translate(0, 0) scale(1); }
  50% { transform: translate(-2px, 1px) scale(1.05); }
}
@keyframes sp-pearl3 {
  0%, 100% { transform: translateX(0); }
  50% { transform: translateX(3px); }
}
@keyframes sp-light {
  0% { opacity: 0.6; transform: scale(1); }
  100% { opacity: 1; transform: scale(1.05); }
}
@keyframes sp-shadow {
  0%, 100% { opacity: 0.4; }
  50% { opacity: 0.6; }
}

.scn-strainers-explained {
  background: linear-gradient(180deg, #f2ede4 0%, #e0d6c8 50%, #c4b8a4 100%),
              radial-gradient(ellipse at 50% 20%, #fffbf0 0%, transparent 60%);
}
.scn-strainers-explained .bg-strainers {
  position: absolute; inset: 0;
  background: radial-gradient(circle at 30% 50%, rgba(240,230,210,0.3) 0%, transparent 50%);
  animation: se-bg 15s ease-in-out infinite alternate;
}
.scn-strainers-explained .strainer {
  position: absolute; border-radius: 50%;
  background: linear-gradient(135deg, #d4c8b0 0%, #b8a88c 100%);
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.1);
}
.scn-strainers-explained .s1 { bottom: 30%; left: 15%; width: 80px; height: 80px; }
.scn-strainers-explained .s2 { bottom: 20%; left: 40%; width: 60px; height: 60px; }
.scn-strainers-explained .s3 { bottom: 35%; right: 20%; width: 50px; height: 50px; }
.scn-strainers-explained .hole {
  position: absolute; width: 8px; height: 8px;
  background: radial-gradient(circle, #f0e4d0 0%, #c8b898 100%);
  border-radius: 50%;
  box-shadow: inset 0 1px 2px rgba(0,0,0,0.1);
}
.scn-strainers-explained .h1 { bottom: 34%; left: 30%; animation: se-hole1 4s ease-in-out infinite; }
.scn-strainers-explained .h2 { bottom: 28%; left: 50%; width: 6px; height: 6px; animation: se-hole2 5s ease-in-out infinite; }
.scn-strainers-explained .pearl-pearl {
  position: absolute; bottom: 24%; left: 22%; width: 12px; height: 12px;
  background: radial-gradient(circle at 35% 35%, #fff9f0, #e0d0b8 70%, #b8a088);
  border-radius: 50%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
  animation: se-pearl 6s ease-in-out infinite;
}
@keyframes se-bg {
  0% { opacity: 0.8; }
  100% { opacity: 1; }
}
@keyframes se-hole1 {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.1); }
}
@keyframes se-hole2 {
  0%, 100% { transform: translateX(0); }
  50% { transform: translateX(2px); }
}
@keyframes se-pearl {
  0%, 100% { transform: translate(0, 0) rotate(0deg); }
  50% { transform: translate(1px, -2px) rotate(20deg); }
}

.scn-declining-returns {
  background: linear-gradient(145deg, #f7efe4 0%, #e3d7c3 40%, #cabc9e 100%),
              radial-gradient(circle at 80% 20%, #fff5e0 0%, transparent 70%);
}
.scn-declining-returns .window-dr {
  position: absolute; top: 10%; left: 50%; width: 120px; height: 160px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #c8dce0 0%, #a0bcc4 50%, #70808c 100%);
  border: 8px solid #a0907c;
  border-radius: 4px;
  box-shadow: 0 10px 25px rgba(0,0,0,0.2);
  animation: dr-window 9s ease-in-out infinite;
}
.scn-declining-returns .desk-dr {
  position: absolute; bottom: 0; left: 5%; right: 5%; height: 45%;
  background: linear-gradient(180deg, #8a7a66 0%, #6e5e4e 100%);
  border-radius: 30% 30% 0 0 / 10% 10% 0 0;
  box-shadow: 0 -6px 20px rgba(0,0,0,0.3);
}
.scn-declining-returns .ledger-dr {
  position: absolute; bottom: 30%; left: 20%; width: 80px; height: 100px;
  background: linear-gradient(180deg, #f5eed0 0%, #e0d4b0 50%, #c8b890 100%);
  border-radius: 4px;
  transform: rotate(-3deg);
  box-shadow: 2px 4px 10px rgba(0,0,0,0.2);
  animation: dr-ledger 7s ease-in-out infinite;
}
.scn-declining-returns .coin {
  position: absolute; width: 20px; height: 20px;
  background: radial-gradient(circle at 40% 40%, #f0d080, #d4b060 60%, #b09040);
  border-radius: 50%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
}
.scn-declining-returns .c1 { bottom: 15%; left: 45%; animation: dr-coin1 5s ease-in-out infinite; }
.scn-declining-returns .c2 { bottom: 10%; left: 55%; width: 16px; height: 16px; animation: dr-coin2 6s ease-in-out infinite; }
.scn-declining-returns .c3 { bottom: 20%; left: 60%; width: 18px; height: 18px; animation: dr-coin3 8s ease-in-out infinite; }
.scn-declining-returns .shadow-dr {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.1) 100%);
}
@keyframes dr-window {
  0%, 100% { opacity: 0.9; }
  50% { opacity: 1; }
}
@keyframes dr-ledger {
  0%, 100% { transform: rotate(-3deg) translateX(0); }
  50% { transform: rotate(-3deg) translateX(2px); }
}
@keyframes dr-coin1 {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(10deg); }
}
@keyframes dr-coin2 {
  0%, 100% { transform: scale(1); }
  50% { transform: scale(1.05); }
}
@keyframes dr-coin3 {
  0%, 100% { transform: translateX(0); }
  50% { transform: translateX(3px); }
}

.scn-cleopatra-story {
  background: linear-gradient(180deg, #fdf8ee 0%, #efe4d0 50%, #d8c8ae 100%),
              radial-gradient(ellipse at 60% 40%, #fff8e0 0%, transparent 60%);
}
.scn-cleopatra-story .table-cs {
  position: absolute; bottom: 0; left: 5%; right: 5%; height: 55%;
  background: linear-gradient(180deg, #b8a488 0%, #9a8a6e 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.1);
}
.scn-cleopatra-story .glass-cs {
  position: absolute; bottom: 35%; left: 40%; width: 40px; height: 60px;
  background: linear-gradient(135deg, rgba(240,240,255,0.5) 0%, rgba(200,220,240,0.3) 100%);
  border: 2px solid rgba(200,220,240,0.6);
  border-radius: 0 0 25% 25% / 0 0 30% 30%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.15);
  animation: cs-glass 6s ease-in-out infinite;
}
.scn-cleopatra-story .pearl-cs {
  position: absolute; bottom: 38%; left: 43%; width: 18px; height: 18px;
  background: radial-gradient(circle at 35% 35%, #fffcf0, #e8d8c0 60%, #c8b498);
  border-radius: 50%;
  box-shadow: 0 2px 8px rgba(0,0,0,0.2), inset 0 -2px 6px rgba(255,255,240,0.7);
  animation: cs-pearl 4s ease-in-out infinite;
}
.scn-cleopatra-story .vinegar-bottle {
  position: absolute; bottom: 30%; right: 20%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #c8d8a0 0%, #a8b880 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%;
  box-shadow: 2px 4px 8px rgba(0,0,0,0.2);
  animation: cs-bottle 8s ease-in-out infinite;
}
.scn-cleopatra-story .hand-cs {
  position: absolute; bottom: 30%; left: 35%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #c8b098 0%, #a08870 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  filter: drop-shadow(0 4px 6px rgba(0,0,0,0.2));
  animation: cs-hand 5s ease-in-out infinite;
}
.scn-cleopatra-story .crown-cs {
  position: absolute; top: 20%; left: 30%; width: 50px; height: 20px;
  background: linear-gradient(180deg, #e8d080 0%, #d4b860 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
  animation: cs-crown 7s ease-in-out infinite;
}
.scn-cleopatra-story .bubble {
  position: absolute; width: 8px; height: 8px;
  background: radial-gradient(circle at 40% 40%, rgba(255,255,255,0.6), rgba(200,220,240,0.2));
  border-radius: 50%;
  animation: cs-bubble 3s ease-in-out infinite;
}
.scn-cleopatra-story .b1 { bottom: 45%; left: 42%; animation-delay: 0s; }
.scn-cleopatra-story .b2 { bottom: 50%; left: 47%; width: 6px; height: 6px; animation-delay: 1.5s; }

@keyframes cs-glass {
  0%, 100% { transform: translateY(0) rotate(-2deg); }
  50% { transform: translateY(-1px) rotate(2deg); }
}
@keyframes cs-pearl {
  0%, 100% { transform: translate(0, 0) scale(1); }
  33% { transform: translate(1px, -3px) scale(1.05); }
  66% { transform: translate(-1px, -1px) scale(0.95); }
}
@keyframes cs-bottle {
  0%, 100% { transform: rotate(0deg); }
  50% { transform: rotate(-3deg); }
}
@keyframes cs-hand {
  0%, 100% { transform: translateX(0) rotate(-5deg); }
  50% { transform: translateX(2px) rotate(5deg); }
}
@keyframes cs-crown {
  0%, 100% { transform: translateY(0) rotate(-2deg); }
  50% { transform: translateY(-2px) rotate(2deg); }
}
@keyframes cs-bubble {
  0% { transform: translate(0, 0) scale(1); opacity: 0.6; }
  50% { transform: translate(2px, -8px) scale(1.2); opacity: 0.9; }
  100% { transform: translate(4px, -16px) scale(0.8); opacity: 0.3; }
}

/* lunch-served – dim interior, tense mood */
.scn-lunch-served {
  background: linear-gradient(180deg, #0f0f1a 0%, #1a1a2e 40%, #2a1a2a 100%), radial-gradient(ellipse at 30% 20%, #3a2a3a 0%, transparent 70%);
}
.scn-lunch-served .room {
  position: absolute; inset: 0; background: linear-gradient(180deg, #1a1a2e 0%, transparent 60%);
  animation: ls-room-pulse 12s ease-in-out infinite alternate;
}
.scn-lunch-served .table {
  position: absolute; bottom: 15%; left: 20%; right: 20%; height: 6%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%); border-radius: 4px;
  box-shadow: 0 8px 20px rgba(0,0,0,.6);
  animation: ls-table 5s ease-in-out infinite;
}
.scn-lunch-served .chair {
  position: absolute; bottom: 12%; left: 30%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 4px 4px 10% 10%;
  transform: rotate(-3deg); box-shadow: -2px 0 8px rgba(0,0,0,.5);
  animation: ls-chair 7s ease-in-out infinite;
}
.scn-lunch-served .captain-silhouette {
  position: absolute; bottom: 18%; left: 45%; width: 28px; height: 50px;
  background: linear-gradient(180deg, #0a0a12 0%, #000 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: ls-captain 9s ease-in-out infinite;
}
.scn-lunch-served .lantern {
  position: absolute; top: 25%; left: 55%; width: 12px; height: 18px;
  background: radial-gradient(circle, #b08040 0%, #4a3020 70%);
  border-radius: 40%; box-shadow: 0 0 24px 8px #b08040, 0 0 48px 16px rgba(176,128,64,.3);
  animation: ls-lantern 4s ease-in-out infinite alternate;
}
.scn-lunch-served .shadow-sharp {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 30%;
  background: linear-gradient(180deg, transparent 0%, #050508 100%);
  filter: blur(3px); animation: ls-shadow 6s ease-in-out infinite;
}
.scn-lunch-served .plate {
  position: absolute; bottom: 16%; left: 30%; width: 30px; height: 6px;
  background: radial-gradient(ellipse, #6a5a4a 0%, #3a2a1a 100%); border-radius: 50%;
  box-shadow: 0 2px 6px rgba(0,0,0,.5); animation: ls-plate 3s ease-in-out infinite;
}
.scn-lunch-served .glass {
  position: absolute; bottom: 18%; left: 36%; width: 6px; height: 18px;
  background: linear-gradient(180deg, rgba(200,190,160,.3) 0%, rgba(150,140,120,.1) 100%);
  border-radius: 2px 2px 4px 4px; box-shadow: inset 0 0 4px #b0a080;
  animation: ls-glass 8s ease-in-out infinite;
}
@keyframes ls-room-pulse {
  0% { opacity: .6 } 50% { opacity: 1 } 100% { opacity: .7 }
}
@keyframes ls-table {
  0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) }
}
@keyframes ls-chair {
  0% { transform: rotate(-3deg) translateY(0) } 50% { transform: rotate(-1deg) translateY(-1px) } 100% { transform: rotate(-3deg) translateY(0) }
}
@keyframes ls-captain {
  0% { transform: translateX(0) translateY(0) rotate(0) } 30% { transform: translateX(2px) translateY(-1px) rotate(2deg) } 60% { transform: translateX(-1px) translateY(-2px) rotate(-1deg) } 100% { transform: translateX(0) translateY(0) rotate(0) }
}
@keyframes ls-lantern {
  0% { box-shadow: 0 0 18px 4px #b08040, 0 0 36px 8px rgba(176,128,64,.3); opacity: .7 }
  50% { box-shadow: 0 0 30px 10px #d0a060, 0 0 60px 16px rgba(208,160,96,.5); opacity: 1 }
  100% { box-shadow: 0 0 22px 6px #b08040, 0 0 44px 12px rgba(176,128,64,.35); opacity: .8 }
}
@keyframes ls-shadow {
  0% { opacity: .8 } 50% { opacity: .6 } 100% { opacity: .9 }
}
@keyframes ls-plate {
  0% { transform: scale(1) } 50% { transform: scale(1.02) translateY(-1px) } 100% { transform: scale(1) }
}
@keyframes ls-glass {
  0% { opacity: .5 } 50% { opacity: .8 } 100% { opacity: .4 }
}

/* standard-menu – dim interior, funny mood */
.scn-standard-menu {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 50%, #1a1a2e 100%), radial-gradient(ellipse at 50% 100%, #2a2a3e 0%, transparent 70%);
}
.scn-standard-menu .room {
  position: absolute; inset: 0; background: linear-gradient(180deg, #0f0f1a 0%, transparent 70%);
  animation: sm-room 15s ease-in-out infinite alternate;
}
.scn-standard-menu .table {
  position: absolute; bottom: 10%; left: 15%; right: 15%; height: 8%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 8px 8px 0 0;
  box-shadow: 0 -4px 12px rgba(0,0,0,.6);
  animation: sm-table 4s ease-in-out infinite;
}
.scn-standard-menu .fig-left {
  position: absolute; bottom: 18%; left: 20%; width: 22px; height: 40px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform: rotate(-5deg);
  animation: sm-sil-left 6s ease-in-out infinite;
}
.scn-standard-menu .fig-right {
  position: absolute; bottom: 18%; right: 20%; width: 22px; height: 40px;
  background: linear-gradient(180deg, #2a2a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform: rotate(5deg);
  animation: sm-sil-right 6s ease-in-out infinite alternate;
}
.scn-standard-menu .plate {
  position: absolute; bottom: 14%; left: 42%; width: 36px; height: 8px;
  background: radial-gradient(ellipse, #7a6a5a 0%, #4a3a2a 100%); border-radius: 50%;
  box-shadow: 0 4px 8px rgba(0,0,0,.6);
  animation: sm-plate 3s ease-in-out infinite alternate;
}
.scn-standard-menu .cup {
  position: absolute; bottom: 16%; left: 48%; width: 10px; height: 16px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 2px 2px 4px 4px;
  box-shadow: 2px 0 6px rgba(0,0,0,.4);
  animation: sm-cup 4s ease-in-out infinite;
}
.scn-standard-menu .bread-stick {
  position: absolute; bottom: 14%; left: 36%; width: 20px; height: 4px;
  background: linear-gradient(90deg, #8a7a5a 0%, #6a5a3a 100%); border-radius: 2px;
  transform: rotate(-15deg); animation: sm-bread 5s ease-in-out infinite;
}
.scn-standard-menu .bone-fish {
  position: absolute; bottom: 12%; left: 55%; width: 14px; height: 6px;
  background: linear-gradient(180deg, #9a8a7a 0%, #6a5a4a 100%); border-radius: 50% 50% 0 0;
  transform: rotate(20deg); animation: sm-bone 7s ease-in-out infinite alternate;
}
@keyframes sm-room {
  0% { opacity: .7 } 50% { opacity: 1 } 100% { opacity: .8 }
}
@keyframes sm-table {
  0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) }
}
@keyframes sm-sil-left {
  0% { transform: rotate(-5deg) translateY(0) } 25% { transform: rotate(-3deg) translateY(-2px) } 50% { transform: rotate(-7deg) translateY(-1px) } 100% { transform: rotate(-5deg) translateY(0) }
}
@keyframes sm-sil-right {
  0% { transform: rotate(5deg) translateY(0) } 50% { transform: rotate(3deg) translateY(-2px) } 100% { transform: rotate(5deg) translateY(0) }
}
@keyframes sm-plate {
  0% { transform: scale(1) translateY(0) } 50% { transform: scale(1.03) translateY(-2px) } 100% { transform: scale(1) translateY(0) }
}
@keyframes sm-cup {
  0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(2px) rotate(2deg) } 100% { transform: translateX(0) rotate(0) }
}
@keyframes sm-bread {
  0% { transform: rotate(-15deg) translateY(0) } 50% { transform: rotate(-10deg) translateY(-1px) } 100% { transform: rotate(-15deg) translateY(0) }
}
@keyframes sm-bone {
  0% { transform: rotate(20deg) translateX(0) } 50% { transform: rotate(25deg) translateX(2px) } 100% { transform: rotate(20deg) translateX(0) }
}

/* drugged-sleep – dark, hallucinatory */
.scn-drugged-sleep {
  background: linear-gradient(180deg, #050510 0%, #0f0f1a 40%, #1a0a1a 100%), radial-gradient(ellipse at 50% 30%, #2a0a2a 0%, transparent 70%);
}
.scn-drugged-sleep .void {
  position: absolute; inset: 0; background: linear-gradient(180deg, #000 0%, #050510 40%, #000 80%);
  animation: ds-void 20s ease-in-out infinite alternate;
}
.scn-drugged-sleep .cot {
  position: absolute; bottom: 10%; left: 20%; right: 20%; height: 10%;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 10px;
  box-shadow: 0 4px 12px rgba(0,0,0,.8); animation: ds-cot 8s ease-in-out infinite;
}
.scn-drugged-sleep .figure-lying {
  position: absolute; bottom: 14%; left: 28%; width: 40px; height: 20px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform: rotate(10deg); animation: ds-lying 12s ease-in-out infinite;
}
.scn-drugged-sleep .cup-poison {
  position: absolute; bottom: 22%; right: 25%; width: 12px; height: 16px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 2px 2px 4px 4px;
  box-shadow: 0 0 8px rgba(176,128,64,.3);
  animation: ds-cup 6s ease-in-out infinite;
}
.scn-drugged-sleep .swirl-a {
  position: absolute; top: 20%; left: 10%; width: 60px; height: 60px;
  background: radial-gradient(circle, rgba(128,64,176,.2) 0%, transparent 70%);
  border-radius: 50%; filter: blur(8px);
  animation: ds-swirl-a 15s linear infinite;
}
.scn-drugged-sleep .swirl-b {
  position: absolute; top: 40%; right: 15%; width: 80px; height: 80px;
  background: radial-gradient(circle, rgba(64,128,176,.15) 0%, transparent 70%);
  border-radius: 50%; filter: blur(10px);
  animation: ds-swirl-b 20s linear infinite reverse;
}
.scn-drugged-sleep .eye-glow {
  position: absolute; top: 30%; left: 45%; width: 10px; height: 10px;
  background: radial-gradient(circle, #b08060 0%, transparent 80%);
  border-radius: 50%; box-shadow: 0 0 20px 4px rgba(176,128,96,.4);
  animation: ds-eye 4s ease-in-out infinite alternate;
}
@keyframes ds-void {
  0% { opacity: .9 } 50% { opacity: .6 } 100% { opacity: .95 }
}
@keyframes ds-cot {
  0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) }
}
@keyframes ds-lying {
  0% { transform: rotate(10deg) translateX(0) } 50% { transform: rotate(8deg) translateX(3px) } 100% { transform: rotate(10deg) translateX(0) }
}
@keyframes ds-cup {
  0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-3px) rotate(5deg) } 100% { transform: translateY(0) rotate(0) }
}
@keyframes ds-swirl-a {
  0% { transform: translate(0, 0) scale(1) } 25% { transform: translate(20px, -10px) scale(1.2) } 50% { transform: translate(-10px, 20px) scale(.9) } 75% { transform: translate(10px, 10px) scale(1.1) } 100% { transform: translate(0, 0) scale(1) }
}
@keyframes ds-swirl-b {
  0% { transform: translate(0, 0) scale(1) rotate(0) } 33% { transform: translate(-15px, 15px) scale(1.15) rotate(120deg) } 66% { transform: translate(15px, -10px) scale(.85) rotate(240deg) } 100% { transform: translate(0, 0) scale(1) rotate(360deg) }
}
@keyframes ds-eye {
  0% { box-shadow: 0 0 10px 2px rgba(176,128,96,.3); opacity: .5 } 50% { box-shadow: 0 0 30px 8px rgba(176,128,96,.7); opacity: 1 } 100% { box-shadow: 0 0 12px 3px rgba(176,128,96,.4); opacity: .6 }
}

/* hatches-close – dark, motionless */
.scn-hatches-close {
  background: linear-gradient(180deg, #02040a 0%, #0a0e1a 40%, #0a0a12 100%), radial-gradient(ellipse at 50% 80%, #0a0e1a 0%, transparent 70%);
}
.scn-hatches-close .wall {
  position: absolute; inset: 0; background: linear-gradient(90deg, #050508 0%, #0a0a12 50%, #050508 100%);
  animation: hc-wall 20s ease-in-out infinite alternate;
}
.scn-hatches-close .hatch-door {
  position: absolute; top: 20%; left: 10%; right: 10%; height: 20%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a12 100%); border-radius: 4px 4px 0 0;
  box-shadow: 0 4px 20px rgba(0,0,0,.8);
  animation: hc-hatch 10s ease-in-out infinite;
}
.scn-hatches-close .porthole {
  position: absolute; top: 50%; left: 20%; width: 30px; height: 30px;
  background: radial-gradient(circle, #0a1a2a 0%, #050508 80%);
  border-radius: 50%; border: 2px solid #1a1a2a;
  box-shadow: inset 0 0 10px rgba(0,0,0,.8);
  animation: hc-porthole 15s ease-in-out infinite alternate;
}
.scn-hatches-close .bunk {
  position: absolute; bottom: 10%; left: 25%; right: 25%; height: 12%;
  background: linear-gradient(180deg, #12121a 0%, #08080c 100%); border-radius: 6px;
  box-shadow: 0 -4px 12px rgba(0,0,0,.7);
  animation: hc-bunk 8s ease-in-out infinite;
}
.scn-hatches-close .figure {
  position: absolute; bottom: 14%; left: 35%; width: 24px; height: 36px;
  background: linear-gradient(180deg, #0a0a1a 0%, #000 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform: rotate(5deg); animation: hc-figure 12s ease-in-out infinite;
}
.scn-hatches-close .wave-memory {
  position: absolute; top: 60%; left: 0; right: 0; height: 10%;
  background: linear-gradient(180deg, transparent 0%, rgba(64,128,176,.05) 100%);
  filter: blur(4px); animation: hc-wave 18s ease-in-out infinite alternate;
}
.scn-hatches-close .drip {
  position: absolute; top: 40%; left: 50%; width: 2px; height: 8px;
  background: linear-gradient(180deg, rgba(200,220,255,.3) 0%, transparent 100%);
  border-radius: 1px; animation: hc-drip 6s ease-in-out infinite;
}
@keyframes hc-wall {
  0% { opacity: .85 } 50% { opacity: 1 } 100% { opacity: .9 }
}
@keyframes hc-hatch {
  0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) }
}
@keyframes hc-porthole {
  0% { box-shadow: inset 0 0 6px rgba(0,0,0,.8), 0 0 4px rgba(64,128,176,.1) } 50% { box-shadow: inset 0 0 12px rgba(0,0,0,.9), 0 0 8px rgba(64,128,176,.2) } 100% { box-shadow: inset 0 0 6px rgba(0,0,0,.8), 0 0 4px rgba(64,128,176,.1) }
}
@keyframes hc-bunk {
  0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) }
}
@keyframes hc-figure {
  0% { transform: rotate(5deg) translateX(0) } 50% { transform: rotate(3deg) translateX(-2px) } 100% { transform: rotate(5deg) translateX(0) }
}
@keyframes hc-wave {
  0% { opacity: .3; transform: scaleY(1) } 50% { opacity: .6; transform: scaleY(1.2) } 100% { opacity: .2; transform: scaleY(1) }
}
@keyframes hc-drip {
  0% { transform: translateY(0); opacity: .6 } 50% { transform: translateY(20px); opacity: 0 } 100% { transform: translateY(0); opacity: .6 }
}

.scn-divers-dangers {
  background: 
    linear-gradient(135deg, #1a2a3a 0%, #0d1a24 60%, #16222e 100%),
    radial-gradient(circle at 50% 60%, #2a3f4e 0%, transparent 70%);
}
.scn-divers-dangers .bg-wall { position:absolute; inset:0; background: linear-gradient(180deg, #1a2e3d 0%, #0f1c28 100%); opacity:0.8; animation: dd-wall 12s ease-in-out infinite alternate; }
.scn-divers-dangers .porthole { position:absolute; top:18%; right:8%; width:80px; height:80px; border-radius:50%; background: radial-gradient(circle at 40% 40%, #0f3a5a 0%, #06101a 80%); border: 4px solid #4a5b6a; box-shadow: inset 0 0 30px #00000066, 0 0 20px #0000004d; animation: dd-porthole 20s linear infinite; }
.scn-divers-dangers .lamp { position:absolute; top:12%; left:20%; width:20px; height:30px; background: radial-gradient(circle at 50% 20%, #c8a06a 0%, #7a5a30 100%); border-radius: 40% 40% 10% 10%; box-shadow: 0 0 40px 15px #b0804066; animation: dd-lamp 4s ease-in-out infinite alternate; }
.scn-divers-dangers .figure-sil { position:absolute; bottom:22%; left:35%; width:40px; height:70px; background: linear-gradient(180deg, #1a1e2a 0%, #0a0e14 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dd-figure 8s ease-in-out infinite; }
.scn-divers-dangers .bookshelf { position:absolute; bottom:10%; left:5%; width:30%; height:50%; background: linear-gradient(90deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 2px; box-shadow: inset 0 0 20px #0000004d; animation: dd-shelf 18s ease-in-out infinite alternate; }
.scn-divers-dangers .bookshelf::before { content:''; display:block; position:absolute; top:10%; left:10%; width:80%; height:6%; background: #6a4a2a; border-radius: 1px; box-shadow: 0 150% 0 #4a2a1a, 0 300% 0 #5a3a1a; }
.scn-divers-dangers .shadow-drift { position:absolute; top:0; left:-5%; width:110%; height:100%; background: linear-gradient(90deg, transparent 0%, rgba(10,20,30,0.3) 50%, transparent 100%); filter: blur(30px); animation: dd-shadow 15s linear infinite; }
@keyframes dd-wall { 0% { opacity:0.75 } 50% { opacity:0.85 } 100% { opacity:0.8 } }
@keyframes dd-porthole { 0% { transform: scale(1) } 25% { transform: scale(0.98) translateY(2px) } 50% { transform: scale(1.01) } 75% { transform: scale(0.99) } 100% { transform: scale(1) } }
@keyframes dd-lamp { 0% { box-shadow: 0 0 30px 10px #b0804066; opacity:0.9 } 50% { box-shadow: 0 0 60px 25px #d0a06099; opacity:1 } 100% { box-shadow: 0 0 40px 15px #b0804066; opacity:0.95 } }
@keyframes dd-figure { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(5px) rotate(-2deg) scaleY(1.01) } 50% { transform: translateX(0) rotate(0deg) } 75% { transform: translateX(-5px) rotate(2deg) scaleY(0.99) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes dd-shelf { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes dd-shadow { 0% { transform: translateX(0) } 100% { transform: translateX(10%) } }

.scn-health-hazards {
  background: 
    linear-gradient(180deg, #1a2a3a 0%, #0f1a26 50%, #16222e 100%),
    radial-gradient(ellipse at 50% 100%, #1f3444 0%, transparent 70%);
}
.scn-health-hazards .bg-wall { position:absolute; inset:0; background: linear-gradient(180deg, #1e2e3e 0%, #0a1420 100%); opacity:0.85; animation: hh-wall 15s ease-in-out infinite alternate; }
.scn-health-hazards .table { position:absolute; bottom:15%; left:20%; width:60%; height:20%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 20px 20px 5px 5px; box-shadow: 0 10px 30px #0000004d; animation: hh-table 10s ease-in-out infinite; }
.scn-health-hazards .lamp-table { position:absolute; bottom:32%; left:35%; width:14px; height:20px; background: radial-gradient(circle at 50% 20%, #d4a86a 0%, #8a5a20 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 0 50px 20px #b0804066; animation: hh-lamp 3.5s ease-in-out infinite alternate; }
.scn-health-hazards .papers { position:absolute; bottom:20%; left:30%; width:25%; height:8%; background: #2a3a3a; border-radius: 2px; transform: rotate(3deg); box-shadow: 0 2px 2px #00000033, 0 -2px 2px #00000033; animation: hh-papers 8s ease-in-out infinite; }
.scn-health-hazards .hand { position:absolute; bottom:25%; left:45%; width:16px; height:28px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 10px 10px 40% 40%; transform-origin: 50% 100%; animation: hh-hand 6s ease-in-out infinite; }
.scn-health-hazards .glass { position:absolute; bottom:24%; left:55%; width:18px; height:22px; background: rgba(40,60,80,0.3); border: 2px solid #6a7a8a; border-radius: 10% 10% 30% 30%; box-shadow: 0 0 10px #00000033; animation: hh-glass 12s ease-in-out infinite alternate; }
.scn-health-hazards .wisp-light { position:absolute; top:10%; right:15%; width:80px; height:80px; background: radial-gradient(circle, rgba(180,140,80,0.1) 0%, transparent 60%); filter: blur(20px); animation: hh-wisp 20s linear infinite; }
@keyframes hh-wall { 0% { opacity:0.8 } 50% { opacity:0.9 } 100% { opacity:0.85 } }
@keyframes hh-table { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes hh-lamp { 0% { box-shadow: 0 0 35px 12px #b0804066; opacity:0.9 } 50% { box-shadow: 0 0 60px 25px #d0a06099; opacity:1 } 100% { box-shadow: 0 0 40px 15px #b0804066; opacity:0.95 } }
@keyframes hh-papers { 0% { transform: rotate(3deg) translateY(0) } 33% { transform: rotate(5deg) translateY(-1px) } 66% { transform: rotate(1deg) translateY(1px) } 100% { transform: rotate(3deg) translateY(0) } }
@keyframes hh-hand { 0% { transform: rotate(0deg) } 20% { transform: rotate(15deg) } 40% { transform: rotate(-5deg) } 60% { transform: rotate(10deg) } 80% { transform: rotate(-10deg) } 100% { transform: rotate(0deg) } }
@keyframes hh-glass { 0% { opacity:0.5; transform: scale(1) } 50% { opacity:0.7; transform: scale(1.02) } 100% { opacity:0.6; transform: scale(1) } }
@keyframes hh-wisp { 0% { transform: translate(0,0); opacity:0.3 } 25% { transform: translate(-10px,8px); opacity:0.5 } 50% { transform: translate(10px,-5px); opacity:0.2 } 75% { transform: translate(-5px,12px); opacity:0.4 } 100% { transform: translate(0,0); opacity:0.3 } }

.scn-low-pay {
  background: 
    linear-gradient(45deg, #1a2e3a 0%, #0f1a26 50%, #16222e 100%),
    radial-gradient(circle at 30% 70%, #263a48 0%, transparent 70%);
}
.scn-low-pay .bg-wall { position:absolute; inset:0; background: linear-gradient(180deg, #1e2e3e 0%, #0a1420 100%); opacity:0.8; animation: lp-wall 14s ease-in-out infinite alternate; }
.scn-low-pay .counter { position:absolute; bottom:15%; left:10%; width:80%; height:25%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 30px 30px 5px 5px; box-shadow: 0 10px 30px #0000004d; animation: lp-counter 12s ease-in-out infinite; }
.scn-low-pay .lamp-counter { position:absolute; bottom:35%; left:15%; width:18px; height:24px; background: radial-gradient(circle at 50% 20%, #d4a86a 0%, #8a5a20 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 0 50px 20px #b0804066; animation: lp-lamp 3s ease-in-out infinite alternate; }
.scn-low-pay .coins { position:absolute; bottom:20%; left:20%; width:50%; height:6%; background: radial-gradient(circle at 30% 50%, #b08a4a 0%, #6a4a2a 100%); border-radius: 50% / 100% 100% 0 0; box-shadow: 0 2px 4px #00000033; animation: lp-coins 8s ease-in-out infinite; }
.scn-low-pay .pearls { position:absolute; bottom:28%; left:60%; width:20px; height:20px; background: radial-gradient(circle at 40% 40%, #d4c4a0 0%, #a09070 80%); border-radius: 50%; box-shadow: 0 0 10px #0000004d; animation: lp-pearls 6s ease-in-out infinite; }
.scn-low-pay .pearls::before { content:''; display:block; position:absolute; top:30%; left:30%; width:40%; height:40%; background: radial-gradient(circle, #f0e8d4 0%, transparent 70%); border-radius: 50%; animation: lp-pearl-shine 4s ease-in-out infinite; }
.scn-low-pay .shadow-figure { position:absolute; bottom:25%; left:50%; width:35px; height:60px; background: linear-gradient(180deg, #121a24 0%, #080e14 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lp-figure 10s ease-in-out infinite; }
.scn-low-pay .dust-sparkle { position:absolute; top:10%; left:0; width:100%; height:20%; background: repeating-linear-gradient(90deg, transparent 0%, rgba(200,160,80,0.05) 2%, transparent 4%); filter: blur(4px); animation: lp-dust 20s linear infinite; }
@keyframes lp-wall { 0% { opacity:0.75 } 50% { opacity:0.85 } 100% { opacity:0.8 } }
@keyframes lp-counter { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes lp-lamp { 0% { box-shadow: 0 0 30px 10px #b0804066; opacity:0.9 } 50% { box-shadow: 0 0 60px 25px #d0a06099; opacity:1 } 100% { box-shadow: 0 0 40px 15px #b0804066; opacity:0.95 } }
@keyframes lp-coins { 0% { opacity:0.8; transform: scaleY(1) } 50% { opacity:1; transform: scaleY(1.05) } 100% { opacity:0.8; transform: scaleY(1) } }
@keyframes lp-pearls { 0% { transform: translateY(0) } 33% { transform: translateY(-3px) } 66% { transform: translateY(2px) } 100% { transform: translateY(0) } }
@keyframes lp-pearl-shine { 0% { opacity:0.3 } 50% { opacity:0.7 } 100% { opacity:0.3 } }
@keyframes lp-figure { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(-4px) rotate(-2deg) } 50% { transform: translateX(0) rotate(0deg) } 75% { transform: translateX(4px) rotate(2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes lp-dust { 0% { transform: translateY(0); opacity:0.2 } 50% { transform: translateY(-5px); opacity:0.4 } 100% { transform: translateY(0); opacity:0.2 } }

.scn-shark-question {
  background: 
    linear-gradient(180deg, #0e1a26 0%, #16222e 40%, #1a2e3e 100%),
    radial-gradient(circle at 70% 50%, #263a48 0%, transparent 70%);
}
.scn-shark-question .bg-wall { position:absolute; inset:0; background: linear-gradient(180deg, #142230 0%, #0a1420 100%); opacity:0.8; animation: sq-wall 16s ease-in-out infinite alternate; }
.scn-shark-question .porthole-shark { position:absolute; top:12%; right:10%; width:90px; height:90px; border-radius:50%; background: radial-gradient(circle at 40% 40%, #0a2a3a 0%, #040a10 80%); border: 4px solid #4a5b6a; box-shadow: inset 0 0 30px #00000066, 0 0 20px #0000004d; animation: sq-porthole 20s linear infinite; }
.scn-shark-question .lamp-hood { position:absolute; top:15%; left:15%; width:22px; height:28px; background: radial-gradient(circle at 50% 20%, #c8a06a 0%, #7a5a30 100%); border-radius: 40% 40% 10% 10%; box-shadow: 0 0 40px 15px #b0804066; animation: sq-lamp 4.5s ease-in-out infinite alternate; }
.scn-shark-question .figure-aronnax { position:absolute; bottom:20%; left:30%; width:35px; height:65px; background: linear-gradient(180deg, #1a1e2a 0%, #0a0e14 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sq-aronnax 9s ease-in-out infinite; }
.scn-shark-question .figure-nemo { position:absolute; bottom:20%; left:45%; width:38px; height:68px; background: linear-gradient(180deg, #0e1622 0%, #060a10 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sq-nemo 9s ease-in-out infinite 0.5s; }
.scn-shark-question .table-books { position:absolute; bottom:12%; left:25%; width:50%; height:12%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 10px 10px 5px 5px; box-shadow: 0 10px 20px #0000004d; animation: sq-table 11s ease-in-out infinite; }
.scn-shark-question .bubble-group { position:absolute; bottom:5%; left:5%; width:40px; height:40px; background: radial-gradient(circle, rgba(200,220,240,0.1) 0%, transparent 70%); filter: blur(3px); animation: sq-bubbles 12s linear infinite; }
.scn-shark-question .shark-shadow { position:absolute; top:10%; left:70%; width:120px; height:40px; background: linear-gradient(90deg, transparent 0%, rgba(20,40,60,0.4) 50%, transparent 100%); filter: blur(15px); animation: sq-shark 25s linear infinite; }
@keyframes sq-wall { 0% { opacity:0.75 } 50% { opacity:0.85 } 100% { opacity:0.8 } }
@keyframes sq-porthole { 0% { transform: scale(1) } 25% { transform: scale(0.98) translateY(1px) } 50% { transform: scale(1.01) } 75% { transform: scale(0.99) } 100% { transform: scale(1) } }
@keyframes sq-lamp { 0% { box-shadow: 0 0 30px 10px #b0804066; opacity:0.9 } 50% { box-shadow: 0 0 60px 25px #d0a06099; opacity:1 } 100% { box-shadow: 0 0 40px 15px #b0804066; opacity:0.95 } }
@keyframes sq-aronnax { 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 sq-nemo { 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 sq-table { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes sq-bubbles { 0% { transform: translateY(0) } 50% { transform: translateY(-20px) scale(1.1) } 100% { transform: translateY(0) } }
@keyframes sq-shark { 0% { transform: translateX(-10%) opacity:0.3 } 25% { transform: translateX(5%) opacity:0.6 } 50% { transform: translateX(-5%) opacity:0.4 } 75% { transform: translateX(10%) opacity:0.5 } 100% { transform: translateX(-10%) opacity:0.3 } }

/* scene 1: electric-lamp-design */
.scn-electric-lamp-design {
  background: linear-gradient(135deg, #fef0d0 0%, #e8d4a0 40%, #d0b880 100%), radial-gradient(ellipse at 50% 60%, #fbe8b0 0%, transparent 60%);
  position: relative;
  overflow: hidden;
}
.scn-electric-lamp-design .lamp-bg {
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at 50% 50%, #fff8e0 0%, #f4e0a0 50%, transparent 90%);
  animation: el-pulse 6s ease-in-out infinite alternate;
}
.scn-electric-lamp-design .lamp-glass {
  position: absolute;
  left: 50%; top: 50%;
  width: 140px; height: 160px;
  transform: translate(-50%, -50%) scale(0.9);
  background: linear-gradient(135deg, #ffe8c0 0%, #f0d8a0 40%, #c8a870 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  box-shadow: inset -10px 10px 20px rgba(0,0,0,0.15), 0 0 30px rgba(200,160,80,0.3);
  animation: el-float 8s ease-in-out infinite alternate;
}
.scn-electric-lamp-design .lamp-base {
  position: absolute;
  bottom: 20%; left: 50%;
  width: 60px; height: 40px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #6a4a2a 0%, #4a3018 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
}
.scn-electric-lamp-design .lamp-rod-left {
  position: absolute;
  bottom: 35%; left: 42%;
  width: 8px; height: 50px;
  background: linear-gradient(180deg, #444 0%, #222 100%);
  border-radius: 20%;
  transform: rotate(8deg);
  transform-origin: bottom center;
  animation: el-tremble 2s ease-in-out infinite;
}
.scn-electric-lamp-design .lamp-rod-right {
  position: absolute;
  bottom: 35%; right: 42%;
  width: 8px; height: 50px;
  background: linear-gradient(180deg, #444 0%, #222 100%);
  border-radius: 20%;
  transform: rotate(-8deg);
  transform-origin: bottom center;
  animation: el-tremble 2s ease-in-out infinite reverse;
}
.scn-electric-lamp-design .lamp-arc {
  position: absolute;
  bottom: 40%; left: 50%;
  width: 40px; height: 30px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 50%, #ffdd80 0%, #ffb030 50%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px #ffcc60;
  animation: el-arc-glow 3s ease-in-out infinite alternate;
}
.scn-electric-lamp-design .lamp-glow-halo {
  position: absolute;
  left: 50%; top: 40%;
  width: 200px; height: 200px;
  transform: translate(-50%, -50%) scale(0.8);
  background: radial-gradient(circle, #ffe080 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(15px);
  animation: el-halo-pulse 5s ease-in-out infinite alternate;
}
@keyframes el-pulse { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes el-float { 0% { transform: translate(-50%, -50%) scale(0.9) translateY(0); } 50% { transform: translate(-50%, -50%) scale(0.95) translateY(-2px); } 100% { transform: translate(-50%, -50%) scale(0.9) translateY(0); } }
@keyframes el-tremble { 0% { transform: rotate(8deg) scaleY(1); } 50% { transform: rotate(10deg) scaleY(1.02); } 100% { transform: rotate(8deg) scaleY(1); } }
@keyframes el-arc-glow { 0% { box-shadow: 0 0 30px 10px #ffcc60; opacity: 0.7; } 50% { box-shadow: 0 0 60px 30px #ffdd80; opacity: 1; } 100% { box-shadow: 0 0 40px 15px #ffcc60; opacity: 0.8; } }
@keyframes el-halo-pulse { 0% { transform: translate(-50%, -50%) scale(0.8); opacity: 0.4; } 50% { transform: translate(-50%, -50%) scale(1); opacity: 0.7; } 100% { transform: translate(-50%, -50%) scale(0.8); opacity: 0.5; } }

/* scene 2: westward-course */
.scn-westward-course {
  background: linear-gradient(180deg, #b0d4ff 0%, #7ab0e0 40%, #3a6a9a 100%), radial-gradient(ellipse at 60% 40%, #ffe8b0 0%, transparent 60%);
  position: relative;
  overflow: hidden;
}
.scn-westward-course .ocean-sky {
  position: absolute;
  inset: 0 0 40% 0;
  background: linear-gradient(180deg, #c8e4ff 0%, #a0c8f0 40%, transparent 100%);
  animation: wc-sky 15s ease-in-out infinite alternate;
}
.scn-westward-course .ocean-sea {
  position: absolute;
  bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(0deg, #1a4a6a 0%, #3a7a9a 40%, #5a8aba 100%);
  border-radius: 0 0 20% 20% / 0 0 10% 10%;
  box-shadow: inset 0 20px 30px rgba(0,0,0,0.2);
  animation: wc-sea-sway 12s ease-in-out infinite alternate;
}
.scn-westward-course .submarine {
  position: absolute;
  bottom: 22%; left: 30%;
  width: 200px; height: 50px;
  background: linear-gradient(180deg, #4a5a6a 0%, #2a3a4a 100%);
  border-radius: 40% 50% 40% 50% / 60% 70% 50% 40%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.4);
  animation: wc-sub-drift 18s ease-in-out infinite alternate;
}
.scn-westward-course .sub-cabin {
  position: absolute;
  bottom: 28%; left: 32%;
  width: 60px; height: 30px;
  background: linear-gradient(180deg, #5a6a7a 0%, #3a4a5a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 20% 20%;
  box-shadow: inset 0 4px 6px rgba(255,255,255,0.1);
}
.scn-westward-course .bow-wave {
  position: absolute;
  bottom: 22%; left: 25%;
  width: 80px; height: 30px;
  background: radial-gradient(ellipse at 30% 50%, rgba(200,230,255,0.6) 0%, transparent 70%);
  border-radius: 60% 40% 50% 50%;
  filter: blur(3px);
  animation: wc-wave 4s ease-in-out infinite;
}
.scn-westward-course .sun {
  position: absolute;
  top: 10%; left: 60%;
  width: 50px; height: 50px;
  background: radial-gradient(circle, #fff8e0 0%, #ffe080 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 60px 30px #ffe080;
  animation: wc-sun 20s linear infinite alternate;
}
.scn-westward-course .sun-glint {
  position: absolute;
  top: 15%; left: 65%;
  width: 200px; height: 8px;
  background: linear-gradient(90deg, transparent, #fff0c0, transparent);
  border-radius: 50%;
  filter: blur(4px);
  transform: rotate(-30deg);
  animation: wc-glint 8s ease-in-out infinite alternate;
}
@keyframes wc-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes wc-sea-sway { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(0); } }
@keyframes wc-sub-drift { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(10px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes wc-wave { 0% { transform: scaleX(1) translateX(0); opacity: 0.5; } 50% { transform: scaleX(1.2) translateX(-5px); opacity: 0.8; } 100% { transform: scaleX(1) translateX(0); opacity: 0.5; } }
@keyframes wc-sun { 0% { transform: translateX(-20px); } 100% { transform: translateX(20px); } }
@keyframes wc-glint { 0% { transform: rotate(-30deg) translateX(-30px); opacity: 0.3; } 50% { transform: rotate(-30deg) translateX(30px); opacity: 0.7; } 100% { transform: rotate(-30deg) translateX(-30px); opacity: 0.3; } }

/* scene 3: health-on-board */
.scn-health-on-board {
  background: linear-gradient(180deg, #f8e8c0 0%, #e8d4a0 30%, #d0be90 100%), radial-gradient(ellipse at 40% 60%, #ffe8b0 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-health-on-board .dining-wall {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, #e8d4a0 0%, #c8b48a 100%);
  animation: hb-wall 10s ease-in-out infinite alternate;
}
.scn-health-on-board .dining-floor {
  position: absolute;
  bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #9a8a6a 0%, #b8a880 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
}
.scn-health-on-board .dining-table {
  position: absolute;
  bottom: 25%; left: 50%;
  width: 200px; height: 20px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #b89870 0%, #8a7a5a 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.2);
}
.scn-health-on-board .dining-plate {
  position: absolute;
  bottom: 30%; left: 42%;
  width: 60px; height: 60px;
  background: radial-gradient(circle, #f8f0e0 0%, #d0c8a0 70%);
  border-radius: 50%;
  box-shadow: inset 4px 4px 8px rgba(0,0,0,0.1), 0 2px 6px rgba(0,0,0,0.15);
  animation: hb-plate 6s ease-in-out infinite alternate;
}
.scn-health-on-board .dining-glass {
  position: absolute;
  bottom: 33%; left: 55%;
  width: 30px; height: 50px;
  background: linear-gradient(180deg, rgba(255,255,255,0.6) 0%, rgba(200,220,240,0.3) 100%);
  border-radius: 20% 20% 30% 30% / 50% 50% 40% 40%;
  box-shadow: inset -4px 0 6px rgba(255,255,255,0.4);
  animation: hb-glass 4s ease-in-out infinite alternate;
}
.scn-health-on-board .dining-bread {
  position: absolute;
  bottom: 31%; left: 38%;
  width: 40px; height: 30px;
  background: linear-gradient(135deg, #d4a060 0%, #b08040 100%);
  border-radius: 30% 40% 30% 30% / 50% 50% 30% 30%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
  animation: hb-bread 8s ease-in-out infinite;
}
.scn-health-on-board .dining-sunbeam {
  position: absolute;
  top: 0; left: 30%;
  width: 10px; height: 100%;
  background: linear-gradient(180deg, rgba(255,240,200,0.5) 0%, transparent 80%);
  transform: rotate(15deg);
  transform-origin: top center;
  filter: blur(4px);
  animation: hb-sunbeam 12s ease-in-out infinite alternate;
}
@keyframes hb-wall { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes hb-plate { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes hb-glass { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-3px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes hb-bread { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-1px) scale(1.02); } 100% { transform: translateY(0) scale(1); } }
@keyframes hb-sunbeam { 0% { transform: rotate(15deg) translateX(0); opacity: 0.3; } 50% { transform: rotate(13deg) translateX(10px); opacity: 0.6; } 100% { transform: rotate(15deg) translateX(0); opacity: 0.3; } }

/* scene 4: seabirds-sighted */
.scn-seabirds-sighted {
  background: linear-gradient(180deg, #b8d8f0 0%, #8ab8e0 30%, #5a8aba 60%, #2a5a7a 100%), radial-gradient(ellipse at 30% 50%, #fff8e0 0%, transparent 60%);
  position: relative;
  overflow: hidden;
}
.scn-seabirds-sighted .sky-bg {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, #c8e4ff 0%, #9ac8e8 50%, transparent 100%);
  animation: sb-sky 15s ease-in-out infinite alternate;
}
.scn-seabirds-sighted .sea-bg {
  position: absolute;
  bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(0deg, #1a4a6a 0%, #3a7a9a 100%);
  border-radius: 30% 30% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.2);
  animation: sb-sea 10s ease-in-out infinite alternate;
}
.scn-seabirds-sighted .bird-body {
  position: absolute;
  top: 25%; left: 50%;
  width: 50px; height: 30px;
  transform: translate(-50%, -50%);
  background: linear-gradient(135deg, #2a3a4a 0%, #1a2a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 50% 60% 50%;
  animation: sb-bird 8s ease-in-out infinite;
}
.scn-seabirds-sighted .bird-wing-left {
  position: absolute;
  top: 24%; left: 44%;
  width: 40px; height: 20px;
  background: linear-gradient(135deg, #2a3a4a 0%, #0a1a2a 100%);
  border-radius: 30% 70% 40% 30% / 60% 50% 40% 30%;
  transform-origin: bottom right;
  animation: sb-wing-left 4s ease-in-out infinite alternate;
}
.scn-seabirds-sighted .bird-wing-right {
  position: absolute;
  top: 24%; right: 44%;
  width: 40px; height: 20px;
  background: linear-gradient(225deg, #2a3a4a 0%, #0a1a2a 100%);
  border-radius: 70% 30% 30% 40% / 50% 60% 30% 40%;
  transform-origin: bottom left;
  animation: sb-wing-right 4s ease-in-out infinite alternate;
}
.scn-seabirds-sighted .sun {
  position: absolute;
  top: 10%; right: 15%;
  width: 60px; height: 60px;
  background: radial-gradient(circle, #fff8e0 0%, #ffe080 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 60px 30px #ffe080;
  animation: sb-sun 20s ease-in-out infinite alternate;
}
.scn-seabirds-sighted .cloud1 {
  position: absolute;
  top: 18%; left: 10%;
  width: 90px; height: 30px;
  background: linear-gradient(180deg, rgba(255,255,255,0.6) 0%, rgba(200,220,240,0.2) 100%);
  border-radius: 50%;
  filter: blur(8px);
  animation: sb-cloud1 40s linear infinite;
}
.scn-seabirds-sighted .cloud2 {
  position: absolute;
  top: 28%; right: 5%;
  width: 70px; height: 20px;
  background: linear-gradient(180deg, rgba(255,255,255,0.5) 0%, rgba(200,220,240,0.2) 100%);
  border-radius: 50%;
  filter: blur(6px);
  animation: sb-cloud2 55s linear infinite;
}
@keyframes sb-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes sb-sea { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes sb-bird { 0% { transform: translate(-50%, -50%) translateX(0) translateY(0); } 25% { transform: translate(-48%, -52%) translateX(10px) translateY(-5px); } 50% { transform: translate(-50%, -50%) translateX(20px) translateY(0); } 75% { transform: translate(-52%, -52%) translateX(10px) translateY(-5px); } 100% { transform: translate(-50%, -50%) translateX(0) translateY(0); } }
@keyframes sb-wing-left { 0% { transform: rotate(0deg); } 50% { transform: rotate(-20deg); } 100% { transform: rotate(0deg); } }
@keyframes sb-wing-right { 0% { transform: rotate(0deg); } 50% { transform: rotate(20deg); } 100% { transform: rotate(0deg); } }
@keyframes sb-sun { 0% { transform: translateY(0) scale(1); opacity: 0.8; } 50% { transform: translateY(-5px) scale(1.05); opacity: 1; } 100% { transform: translateY(0) scale(1); opacity: 0.8; } }
@keyframes sb-cloud1 { 0% { transform: translateX(-30px); } 100% { transform: translateX(120vw); } }
@keyframes sb-cloud2 { 0% { transform: translateX(0); } 100% { transform: translateX(-100vw); } }

/* one block per scene id. Append to style.css. */
.scn-nautilus-will-float {
  background:
    linear-gradient(180deg, #f5e6c8 0%, #d6b88a 40%, #b88a5a 100%);
  position: relative;
  overflow: hidden;
}
.scn-nautilus-will-float .bg-diffuse {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 40% 30%, rgba(255,235,200,0.4) 0%, transparent 70%);
  animation: nwf-ambient 12s ease-in-out infinite alternate;
}
.scn-nautilus-will-float .portlight {
  position: absolute; top: 15%; left: 10%; width: 28%; height: 35%;
  background: linear-gradient(180deg, #8fc0d4 0%, #4a90b0 100%);
  border-radius: 50% / 40%;
  box-shadow: inset 0 0 30px rgba(0,20,30,0.5), 0 10px 30px rgba(0,0,0,0.3);
  overflow: hidden;
}
.scn-nautilus-will-float .portlight::after {
  content: ''; position: absolute; top: 0; left: 0; right: 0; bottom: 0;
  background: linear-gradient(135deg, rgba(255,255,255,0.5) 0%, transparent 60%);
  animation: nwf-shimmer 8s ease-in-out infinite alternate;
}
.scn-nautilus-will-float .gauge {
  position: absolute; top: 50%; left: 70%; width: 12%; height: 18%;
  background: radial-gradient(circle at 30% 30%, #f0e0b0 0%, #a08050 100%);
  border-radius: 50%; border: 4px solid #704030;
  box-shadow: 0 0 20px rgba(160,128,80,0.6);
  animation: nwf-gauge 6s ease-in-out infinite;
}
.scn-nautilus-will-float .captain-silhouette {
  position: absolute; bottom: 12%; left: 35%; width: 15%; height: 45%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0d0d1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: nwf-stand 5s ease-in-out infinite alternate;
}
.scn-nautilus-will-float .chair {
  position: absolute; bottom: 8%; left: 30%; width: 20%; height: 18%;
  background: linear-gradient(180deg, #6a5030 0%, #3a2a18 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.6);
}
.scn-nautilus-will-float .desk {
  position: absolute; bottom: 0; left: 25%; right: 25%; height: 10%;
  background: linear-gradient(180deg, #7a6030 0%, #4a3a18 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 -4px 12px rgba(0,0,0,0.4);
}
.scn-nautilus-will-float .glow-pulse {
  position: absolute; top: 60%; left: 60%; width: 8%; height: 8%;
  background: radial-gradient(circle, #ffd080 0%, transparent 70%);
  animation: nwf-pulse 3s ease-in-out infinite alternate;
}
.scn-nautilus-will-float .bubble {
  position: absolute; top: 20%; left: 20%; width: 3%; height: 3%;
  background: radial-gradient(circle, rgba(200,230,255,0.6) 0%, transparent 70%);
  border-radius: 50%;
  animation: nwf-bubble 15s linear infinite;
}
@keyframes nwf-ambient { 0% { opacity:0.7 } 50% { opacity:0.9 } 100% { opacity:0.7 } }
@keyframes nwf-shimmer { 0% { opacity:0.3 } 50% { opacity:0.8 } 100% { opacity:0.4 } }
@keyframes nwf-gauge { 0% { transform: rotate(-10deg) } 25% { transform: rotate(5deg) } 50% { transform: rotate(-5deg) } 75% { transform: rotate(8deg) } 100% { transform: rotate(-10deg) } }
@keyframes nwf-stand { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-2px) scaleY(1.01) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes nwf-pulse { 0% { opacity:0.4; box-shadow: 0 0 10px 2px #ffd080; } 50% { opacity:0.9; box-shadow: 0 0 30px 10px #ffd080; } 100% { opacity:0.5; box-shadow: 0 0 15px 4px #ffd080; } }
@keyframes nwf-bubble { 0% { transform: translateY(0) scale(0.8); opacity:0; } 10% { opacity:0.8; } 90% { opacity:0.3; } 100% { transform: translateY(-40vh) scale(1.2); opacity:0; } }

.scn-dismissal {
  background:
    linear-gradient(180deg, #e8d4b8 0%, #c8a880 40%, #a08060 100%);
  position: relative;
  overflow: hidden;
}
.scn-dismissal .bg-interior {
  position: absolute; inset:0;
  background: radial-gradient(ellipse at 50% 20%, rgba(255,220,170,0.3) 0%, transparent 80%);
}
.scn-dismissal .door {
  position: absolute; right: 15%; top:10%; bottom:20%; width:25%;
  background: linear-gradient(90deg, #805040 0%, #604030 50%, #704030 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: inset -6px 0 12px rgba(0,0,0,0.4);
}
.scn-dismissal .captain-back {
  position: absolute; bottom: 15%; left: 45%; width: 18%; height: 55%;
  background: linear-gradient(180deg, #232340 0%, #101020 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: dis-turn 6s ease-in-out infinite;
}
.scn-dismissal .lampshade {
  position: absolute; top: 10%; left: 30%; width: 10%; height: 8%;
  background: radial-gradient(ellipse at 50% 100%, #f0d090 0%, #a08040 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 10px 30px rgba(200,160,80,0.6);
}
.scn-dismissal .floor-reflection {
  position: absolute; bottom: 0; left: 20%; right: 20%; height: 8%;
  background: linear-gradient(0deg, #c8a880 0%, transparent 100%);
  opacity: 0.4;
  animation: dis-reflect 8s ease-in-out infinite;
}
.scn-dismissal .shadow-stripe {
  position: absolute; top: 20%; bottom: 10%; left: 55%; width: 4%;
  background: linear-gradient(180deg, rgba(0,0,0,0.2) 0%, transparent 80%);
  transform: skewX(-10deg);
  animation: dis-stripe 9s ease-in-out infinite alternate;
}
@keyframes dis-turn { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(-8px) rotate(2deg) } 50% { transform: translateX(-15px) rotate(-1deg) } 75% { transform: translateX(-8px) rotate(1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes dis-reflect { 0% { opacity:0.2 } 50% { opacity:0.5 } 100% { opacity:0.3 } }
@keyframes dis-stripe { 0% { opacity:0.3; transform: skewX(-10deg) } 50% { opacity:0.7; transform: skewX(-5deg) } 100% { opacity:0.4; transform: skewX(-10deg) } }

.scn-restless-night {
  background:
    linear-gradient(180deg, #0a1028 0%, #162040 40%, #0d1a30 100%);
  position: relative;
  overflow: hidden;
}
.scn-restless-night .night-sky {
  position: absolute; inset:0;
  background: radial-gradient(ellipse at 70% 20%, rgba(50,80,120,0.2) 0%, transparent 70%);
  animation: rst-sky 15s ease-in-out infinite alternate;
}
.scn-restless-night .moon-glow {
  position: absolute; top: 10%; right: 20%; width: 14%; height: 14%;
  background: radial-gradient(circle, rgba(200,220,255,0.3) 0%, rgba(100,140,200,0.1) 40%, transparent 70%);
  border-radius: 50%;
  filter: blur(15px);
  animation: rst-moon 20s linear infinite;
}
.scn-restless-night .platform-edge {
  position: absolute; bottom: 20%; left: 10%; right: 10%; height: 15%;
  background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.7);
}
.scn-restless-night .savage-torch {
  position: absolute; bottom: 30%; left: 25%; width: 6%; height: 10%;
  background: radial-gradient(circle at 50% 20%, #f08030 0%, #c04020 40%, transparent 70%);
  filter: blur(3px);
  animation: rst-torch 0.8s ease-in-out infinite alternate;
}
.scn-restless-night .savage-silhouette {
  position: absolute; bottom: 10%; left: 18%; width: 14%; height: 40%;
  background: linear-gradient(180deg, #0d0d1a 0%, #05050a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rst-savage 3s ease-in-out infinite;
}
.scn-restless-night .shadow-sway {
  position: absolute; bottom: 5%; left: 20%; right: 20%; height: 20%;
  background: linear-gradient(180deg, rgba(0,0,0,0.3) 0%, transparent 100%);
  filter: blur(8px);
  animation: rst-sway 2s ease-in-out infinite alternate;
}
.scn-restless-night .ember {
  position: absolute; top: 45%; left: 30%; width: 2%; height: 2%;
  background: radial-gradient(circle, #ff8030 0%, transparent 70%);
  border-radius: 50%;
  animation: rst-ember 1.5s ease-out infinite;
}
.scn-restless-night .dust-particle {
  position: absolute; top: 20%; left: 60%; width: 1.5%; height: 1.5%;
  background: radial-gradient(circle, rgba(200,210,230,0.4) 0%, transparent 70%);
  border-radius: 50%;
  animation: rst-dust 7s linear infinite;
}
@keyframes rst-sky { 0% { opacity:0.6 } 50% { opacity:0.9 } 100% { opacity:0.7 } }
@keyframes rst-moon { 0% { transform: translateX(0) scale(1) } 50% { transform: translateX(-10px) scale(1.05) } 100% { transform: translateX(0) scale(1) } }
@keyframes rst-torch { 0% { opacity:0.5; transform: scaleY(1) } 50% { opacity:1; transform: scaleY(1.3) } 100% { opacity:0.6; transform: scaleY(1) } }
@keyframes rst-savage { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(8px) rotate(1deg) } 50% { transform: translateX(15px) rotate(-1deg) } 75% { transform: translateX(8px) rotate(2deg) } 100% { transform: translateX(0) rotate(-2deg) } }
@keyframes rst-sway { 0% { transform: translateX(-5px) } 50% { transform: translateX(5px) } 100% { transform: translateX(-5px) } }
@keyframes rst-ember { 0% { opacity:1; transform: translateY(0) scale(1) } 100% { opacity:0; transform: translateY(-30px) scale(0.3) } }
@keyframes rst-dust { 0% { transform: translateY(0) scale(1); opacity:0; } 10% { opacity:0.6; } 90% { opacity:0.2; } 100% { transform: translateY(-20vh) scale(0.5); opacity:0; } }

.scn-morning-hatches-closed {
  background:
    linear-gradient(180deg, #2a3038 0%, #1a2028 50%, #101518 100%);
  position: relative;
  overflow: hidden;
}
.scn-morning-hatches-closed .dim-bulkhead {
  position: absolute; inset:0;
  background: radial-gradient(ellipse at 50% 40%, rgba(60,80,100,0.3) 0%, transparent 80%);
  animation: mhc-ambient 18s ease-in-out infinite alternate;
}
.scn-morning-hatches-closed .hatch {
  position: absolute; top: 5%; left: 35%; right: 35%; height: 20%;
  background: linear-gradient(180deg, #4a5058 0%, #3a4048 100%);
  border-radius: 10% 10% 4% 4%;
  box-shadow: inset 0 4px 12px rgba(0,0,0,0.6), 0 6px 12px rgba(0,0,0,0.4);
}
.scn-morning-hatches-closed .air-vent {
  position: absolute; top: 30%; left: 15%; width: 8%; height: 12%;
  background: linear-gradient(90deg, #505860 0%, #606870 50%, #505860 100%);
  border-radius: 10%;
  box-shadow: inset 0 0 8px rgba(0,0,0,0.5);
  animation: mhc-vent 4s ease-in-out infinite alternate;
}
.scn-morning-hatches-closed .instrument-panel {
  position: absolute; bottom: 20%; left: 10%; right: 10%; height: 25%;
  background: linear-gradient(180deg, #384048 0%, #2a3038 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: inset 0 6px 12px rgba(0,0,0,0.5);
}
.scn-morning-hatches-closed .instrument-panel::after {
  content: ''; position: absolute; top: 20%; left: 10%; width: 20%; height: 30%;
  background: radial-gradient(circle, #80b0c0 0%, #406070 100%);
  border-radius: 10%;
  animation: mhc-glow 6s ease-in-out infinite;
}
.scn-morning-hatches-closed .chair-empty {
  position: absolute; bottom: 8%; left: 25%; width: 16%; height: 20%;
  background: linear-gradient(180deg, #5a6068 0%, #3a4048 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: mhc-chair 8s ease-in-out infinite;
}
.scn-morning-hatches-closed .light-strip {
  position: absolute; top: 0; left: 20%; right: 20%; height: 2%;
  background: linear-gradient(90deg, transparent, rgba(200,220,240,0.3), transparent);
  filter: blur(3px);
  animation: mhc-strip 5s ease-in-out infinite alternate;
}
.scn-morning-hatches-closed .oxygen-pulse {
  position: absolute; bottom: 5%; left: 45%; width: 10%; height: 6%;
  background: radial-gradient(ellipse, #80b0c0 0%, transparent 70%);
  border-radius: 50%;
  animation: mhc-oxygen 3s ease-in-out infinite;
}
@keyframes mhc-ambient { 0% { opacity:0.6 } 50% { opacity:0.9 } 100% { opacity:0.7 } }
@keyframes mhc-vent { 0% { opacity:0.8; transform: scaleY(1) } 50% { opacity:0.4; transform: scaleY(0.95) } 100% { opacity:0.8; transform: scaleY(1) } }
@keyframes mhc-glow { 0% { box-shadow: 0 0 8px #406070; opacity:0.6 } 50% { box-shadow: 0 0 20px #80b0c0; opacity:1 } 100% { box-shadow: 0 0 12px #406070; opacity:0.7 } }
@keyframes mhc-chair { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes mhc-strip { 0% { opacity:0.1 } 50% { opacity:0.5; transform: scaleX(1.1) } 100% { opacity:0.2 } }
@keyframes mhc-oxygen { 0% { opacity:0.3; transform: scale(0.9) } 50% { opacity:0.8; transform: scale(1.1) } 100% { opacity:0.4; transform: scale(0.95) } }

.scn-concealed-beneath-algae {
  background: 
    linear-gradient(180deg, #0a1628 0%, #0f2238 40%, #1a3a5c 70%, #0d1f30 100%),
    radial-gradient(ellipse at 50% 100%, #1a4a6e 0%, transparent 70%);
}
.scn-concealed-beneath-algae .ocean-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #0a1a2a 0%, #0f2a40 50%, #1a3a5a 100%); 
  animation: sc1-ocean 15s ease-in-out infinite alternate;
}
.scn-concealed-beneath-algae .seafloor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%; 
  background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%); 
  border-radius: 30% 40% 0 0 / 50% 60% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,.6);
  animation: sc1-floor 20s ease-in-out infinite alternate;
}
.scn-concealed-beneath-algae .algae-algae {
  position: absolute; top: 5%; left: 0; right: 0; height: 40%;
  background: radial-gradient(ellipse at 30% 40%, #2a5a3a 0%, transparent 50%),
              radial-gradient(ellipse at 70% 30%, #1a4a2a 0%, transparent 50%);
  filter: blur(4px); animation: sc1-algae 12s ease-in-out infinite alternate;
}
.scn-concealed-beneath-algae .shark-a {
  position: absolute; top: 15%; left: 10%; width: 60%; height: 12%;
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 50%, #0a1a2a 100%);
  border-radius: 40% 60% 30% 50% / 50% 60% 40% 50%;
  transform: rotate(-5deg); box-shadow: 0 0 20px rgba(100,180,220,.3);
  animation: sc1-shark-a 8s ease-in-out infinite;
}
.scn-concealed-beneath-algae .shark-b {
  position: absolute; top: 25%; right: 5%; width: 50%; height: 8%;
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 50%, #0a1a2a 100%);
  border-radius: 50% 40% 50% 30% / 60% 50% 50% 40%;
  transform: rotate(3deg); box-shadow: 0 0 15px rgba(100,180,220,.2);
  animation: sc1-shark-b 10s ease-in-out infinite;
}
.scn-concealed-beneath-algae .phosphor-a {
  position: absolute; top: 18%; left: 20%; width: 6px; height: 6px;
  background: radial-gradient(circle, #b0f0ff 0%, rgba(176,240,255,.3) 70%);
  border-radius: 50%; box-shadow: 0 0 20px 5px #b0f0ff, 0 0 40px 10px rgba(176,240,255,.4);
  animation: sc1-phosphor 3s ease-in-out infinite alternate;
}
.scn-concealed-beneath-algae .phosphor-b {
  position: absolute; top: 22%; left: 55%; width: 8px; height: 8px;
  background: radial-gradient(circle, #b0f0ff 0%, rgba(176,240,255,.3) 70%);
  border-radius: 50%; box-shadow: 0 0 25px 6px #b0f0ff, 0 0 50px 12px rgba(176,240,255,.3);
  animation: sc1-phosphor 4s ease-in-out infinite alternate-reverse;
}
.scn-concealed-beneath-algae .bubble {
  position: absolute; bottom: 35%; left: 30%; width: 4px; height: 4px;
  background: rgba(200,230,255,.3); border-radius: 50%;
  animation: sc1-bubble 6s linear infinite;
}
@keyframes sc1-ocean { 0% { opacity: .6 } 50% { opacity: .9 } 100% { opacity: .7 } }
@keyframes sc1-floor { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(0) } }
@keyframes sc1-algae { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-6px) scale(1.02) } 100% { transform: translateY(0) scale(1) } }
@keyframes sc1-shark-a { 0% { transform: translateX(0) rotate(-5deg) } 25% { transform: translateX(40px) rotate(-3deg) } 50% { transform: translateX(80px) rotate(-7deg) } 75% { transform: translateX(120px) rotate(-4deg) } 100% { transform: translateX(160px) rotate(-5deg) } }
@keyframes sc1-shark-b { 0% { transform: translateX(0) rotate(3deg) } 25% { transform: translateX(-30px) rotate(5deg) } 50% { transform: translateX(-60px) rotate(1deg) } 75% { transform: translateX(-90px) rotate(4deg) } 100% { transform: translateX(-120px) rotate(3deg) } }
@keyframes sc1-phosphor { 0% { opacity: .6; box-shadow: 0 0 15px 3px #b0f0ff } 50% { opacity: 1; box-shadow: 0 0 30px 8px #b0f0ff } 100% { opacity: .7; box-shadow: 0 0 20px 5px #b0f0ff } }
@keyframes sc1-bubble { 0% { transform: translateY(0) scale(1); opacity: 1 } 50% { transform: translateY(-40px) scale(1.3); opacity: .5 } 100% { transform: translateY(-80px) scale(.8); opacity: 0 } }

.scn-sharks-description {
  background: 
    linear-gradient(180deg, #090e1f 0%, #101830 40%, #182040 70%, #0a1220 100%),
    radial-gradient(ellipse at 50% 20%, #1a3050 0%, transparent 70%);
}
.scn-sharks-description .water-dark {
  position: absolute; inset: 0; background: linear-gradient(180deg, #050a15 0%, #0a1020 50%, #0f1830 100%);
  animation: sc2-water 12s ease-in-out infinite alternate;
}
.scn-sharks-description .shark-body {
  position: absolute; bottom: 20%; left: 10%; width: 80%; height: 40%;
  background: linear-gradient(180deg, #1a2a3a 0%, #0d1a28 60%, #050e18 100%);
  border-radius: 40% 60% 50% 50% / 30% 40% 60% 70%;
  transform: rotate(2deg); box-shadow: inset 0 -20px 30px rgba(0,0,0,.5);
  animation: sc2-body 8s ease-in-out infinite;
}
.scn-sharks-description .shark-belly {
  position: absolute; bottom: 35%; left: 20%; width: 50%; height: 20%;
  background: linear-gradient(180deg, #b0c8d8 0%, #8098a8 50%, #5a7080 100%);
  border-radius: 50% 60% 40% 50% / 60% 50% 50% 40%;
  filter: blur(1px); box-shadow: 0 0 20px rgba(176,200,216,.5);
  animation: sc2-belly 6s ease-in-out infinite alternate;
}
.scn-sharks-description .shark-mouth {
  position: absolute; bottom: 25%; left: 30%; width: 30%; height: 15%;
  background: #0a0a0a; border-radius: 40% 30% 20% 20% / 50% 40% 30% 30%;
  transform: rotate(-5deg); box-shadow: inset 0 5px 10px rgba(0,0,0,.8);
  animation: sc2-mouth 4s ease-in-out infinite;
}
.scn-sharks-description .teeth-row {
  position: absolute; bottom: 26%; left: 32%; width: 25%; height: 8%;
  background: linear-gradient(180deg, #e8dcc0 0%, #b0a080 50%, #807060 100%);
  border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%;
  clip-path: polygon(0% 100%, 10% 0%, 20% 100%, 30% 0%, 40% 100%, 50% 0%, 60% 100%, 70% 0%, 80% 100%, 90% 0%, 100% 100%);
  animation: sc2-teeth 4s ease-in-out infinite alternate;
}
.scn-sharks-description .phosphor-dot {
  position: absolute; top: 30%; left: 15%; width: 5px; height: 5px;
  background: radial-gradient(circle, #c0e0ff 0%, rgba(192,224,255,.2) 70%);
  border-radius: 50%; box-shadow: 0 0 25px 5px #c0e0ff, 0 0 50px 10px rgba(192,224,255,.3);
  animation: sc2-dot 2.5s ease-in-out infinite alternate;
}
.scn-sharks-description .shadow-overlay {
  position: absolute; inset: 0; background: linear-gradient(180deg, rgba(0,0,0,.6) 0%, rgba(0,0,0,.2) 50%, rgba(0,0,0,.7) 100%);
  pointer-events: none; animation: sc2-shadow 10s ease-in-out infinite alternate;
}
@keyframes sc2-water { 0% { opacity: .7 } 50% { opacity: 1 } 100% { opacity: .8 } }
@keyframes sc2-body { 0% { transform: translateX(0) rotate(2deg) } 50% { transform: translateX(-10px) rotate(0deg) } 100% { transform: translateX(0) rotate(2deg) } }
@keyframes sc2-belly { 0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes sc2-mouth { 0% { transform: scaleY(1) rotate(-5deg) } 50% { transform: scaleY(1.1) rotate(-3deg) } 100% { transform: scaleY(1) rotate(-5deg) } }
@keyframes sc2-teeth { 0% { transform: translateY(0) } 50% { transform: translateY(2px) } 100% { transform: translateY(0) } }
@keyframes sc2-dot { 0% { opacity: .4 } 50% { opacity: 1 } 100% { opacity: .6 } }
@keyframes sc2-shadow { 0% { opacity: .5 } 50% { opacity: .7 } 100% { opacity: .5 } }

.scn-sharks-pass {
  background: 
    linear-gradient(180deg, #0a1628 0%, #0f2238 50%, #1a3a5c 80%, #0d1f30 100%),
    radial-gradient(ellipse at 50% 100%, #1a4a6e 0%, transparent 70%);
}
.scn-sharks-pass .deep-water {
  position: absolute; inset: 0; background: linear-gradient(180deg, #0a1a2a 0%, #0f2a40 50%, #1a3a5a 100%);
  animation: sc3-water 15s ease-in-out infinite alternate;
}
.scn-sharks-pass .shark-close {
  position: absolute; top: 30%; left: -10%; width: 60%; height: 20%;
  background: linear-gradient(180deg, #1a2a3a 0%, #0d1a2a 60%, #050e18 100%);
  border-radius: 50% 40% 40% 50% / 40% 60% 60% 40%;
  transform: rotate(-5deg); box-shadow: 0 0 20px rgba(80,160,200,.3);
  animation: sc3-close 12s ease-in-out infinite;
}
.scn-sharks-pass .shark-far {
  position: absolute; top: 45%; right: -5%; width: 40%; height: 12%;
  background: linear-gradient(180deg, #1a2a3a 0%, #0d1a28 50%, #050e18 100%);
  border-radius: 40% 50% 50% 30% / 50% 40% 40% 60%;
  transform: rotate(3deg); opacity: .6; box-shadow: 0 0 10px rgba(80,160,200,.15);
  animation: sc3-far 10s ease-in-out infinite;
}
.scn-sharks-pass .fin-near {
  position: absolute; top: 28%; left: 20%; width: 15%; height: 12%;
  background: linear-gradient(180deg, #3a4a3a 0%, #1a2a1a 100%);
  border-radius: 50% 70% 10% 10% / 80% 70% 20% 20%;
  transform: rotate(-20deg); box-shadow: 0 0 15px rgba(60,80,60,.4);
  animation: sc3-fin-n 5s ease-in-out infinite alternate;
}
.scn-sharks-pass .fin-far {
  position: absolute; top: 48%; right: 15%; width: 10%; height: 8%;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%);
  border-radius: 50% 60% 10% 10% / 70% 60% 20% 20%;
  transform: rotate(15deg); opacity: .5; box-shadow: 0 0 10px rgba(40,60,40,.3);
  animation: sc3-fin-f 8s ease-in-out infinite alternate;
}
.scn-sharks-pass .bubble-cluster {
  position: absolute; bottom: 30%; left: 40%; width: 20px; height: 20px;
  background: radial-gradient(circle, rgba(200,230,255,.6) 0%, transparent 70%);
  filter: blur(2px); animation: sc3-bubbles 7s linear infinite;
}
.scn-sharks-pass .hide-figure {
  position: absolute; bottom: 5%; left: 30%; width: 12px; height: 25px;
  background: #0a0a0a; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom; animation: sc3-figure 6s ease-in-out infinite;
}
@keyframes sc3-water { 0% { opacity: .6 } 50% { opacity: .9 } 100% { opacity: .7 } }
@keyframes sc3-close { 0% { transform: translateX(0) rotate(-5deg) } 25% { transform: translateX(50px) rotate(-3deg) } 50% { transform: translateX(100px) rotate(-7deg) } 75% { transform: translateX(150px) rotate(-4deg) } 100% { transform: translateX(200px) rotate(-5deg) } }
@keyframes sc3-far { 0% { transform: translateX(0) rotate(3deg) } 25% { transform: translateX(-30px) rotate(5deg) } 50% { transform: translateX(-60px) rotate(1deg) } 75% { transform: translateX(-90px) rotate(4deg) } 100% { transform: translateX(-120px) rotate(3deg) } }
@keyframes sc3-fin-n { 0% { transform: rotate(-20deg) scaleY(1) } 50% { transform: rotate(-15deg) scaleY(1.1) } 100% { transform: rotate(-20deg) scaleY(1) } }
@keyframes sc3-fin-f { 0% { transform: rotate(15deg) scaleY(1) } 50% { transform: rotate(10deg) scaleY(1.08) } 100% { transform: rotate(15deg) scaleY(1) } }
@keyframes sc3-bubbles { 0% { transform: translateY(0) scale(1); opacity: .8 } 50% { transform: translateY(-30px) scale(1.5); opacity: .4 } 100% { transform: translateY(-60px) scale(.5); opacity: 0 } }
@keyframes sc3-figure { 0% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-3px) rotate(2deg) } 100% { transform: translateY(0) rotate(-2deg) } }

.scn-return-to-nautilus {
  background: 
    linear-gradient(180deg, #1a1a2e 0%, #202035 40%, #2a2a45 70%, #15152a 100%),
    radial-gradient(ellipse at 50% 80%, #3a3a55 0%, transparent 60%);
}
.scn-return-to-nautilus .interior-wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #1a1a2e 0%, #20203a 50%, #18182e 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,.6); animation: sc4-wall 10s ease-in-out infinite alternate;
}
.scn-return-to-nautilus .metal-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 50%, #0e0e1a 100%);
  border-radius: 5% 5% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.5);
  animation: sc4-floor 8s ease-in-out infinite alternate;
}
.scn-return-to-nautilus .hatch-door {
  position: absolute; bottom: 20%; left: 50%; width: 40%; height: 50%;
  transform: translateX(-50%); background: linear-gradient(180deg, #3a3a4e 0%, #2a2a3e 50%, #1a1a2e 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%;
  box-shadow: inset 0 0 30px rgba(0,0,0,.7), 0 0 20px rgba(100,180,255,.2);
  animation: sc4-door 6s ease-in-out infinite;
}
.scn-return-to-nautilus .water-line {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 10%;
  background: linear-gradient(180deg, #1a3a5a 0%, #0a1a2a 100%);
  clip-path: polygon(0% 0%, 100% 0%, 85% 100%, 15% 100%);
  animation: sc4-waterline 4s ease-in-out infinite alternate;
}
.scn-return-to-nautilus .electric-glow {
  position: absolute; top: 15%; left: 30%; width: 40%; height: 30%;
  background: radial-gradient(ellipse, #4a8abf 0%, #2a5a8a 40%, transparent 70%);
  filter: blur(8px); opacity: .6; animation: sc4-glow 5s ease-in-out infinite alternate;
}
.scn-return-to-nautilus .nemo-silhouette {
  position: absolute; bottom: 12%; left: 30%; width: 14px; height: 35px;
  background: #0a0a0a; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom; animation: sc4-nemo 7s ease-in-out infinite;
}
.scn-return-to-nautilus .ripple-light {
  position: absolute; bottom: 15%; left: 20%; width: 30px; height: 10px;
  background: radial-gradient(ellipse, rgba(100,180,255,.15) 0%, transparent 70%);
  filter: blur(3px); animation: sc4-ripple 3s ease-in-out infinite alternate;
}
@keyframes sc4-wall { 0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes sc4-floor { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes sc4-door { 0% { transform: translateX(-50%) scaleY(1) } 50% { transform: translateX(-50%) scaleY(1.02) } 100% { transform: translateX(-50%) scaleY(1) } }
@keyframes sc4-waterline { 0% { transform: translateY(0); opacity: .6 } 50% { transform: translateY(-3px); opacity: .8 } 100% { transform: translateY(0); opacity: .6 } }
@keyframes sc4-glow { 0% { opacity: .4; transform: scale(1) } 50% { opacity: .7; transform: scale(1.05) } 100% { opacity: .5; transform: scale(1) } }
@keyframes sc4-nemo { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes sc4-ripple { 0% { transform: scaleX(1); opacity: .3 } 50% { transform: scaleX(1.3); opacity: .6 } 100% { transform: scaleX(1); opacity: .3 } }

.scn-counterfeit-birds { background: linear-gradient(180deg, #ffe8c0 0%, #f5d8a0 40%), radial-gradient(ellipse at 70% 20%, #fff5e0 0%, transparent 60%); }
.scn-counterfeit-birds .bg-sunlit { position:absolute; inset:0; background: linear-gradient(135deg, rgba(255,240,180,.12) 0%, transparent 50%, rgba(180,200,255,.08) 100%); animation: sc1-sunbeams 10s ease-in-out infinite alternate; }
.scn-counterfeit-birds .workbench { position:absolute; bottom:0; left:5%; right:5%; height:35%; background: linear-gradient(180deg, #c8a87a 0%, #b08664 40%, #8a6848 100%); border-radius:4% 4% 0 0; box-shadow: inset 0 12px 30px rgba(0,0,0,.2); }
.scn-counterfeit-birds .bird-body { position:absolute; bottom:35%; left:40%; width:60px; height:40px; background: radial-gradient(ellipse at 50% 40%, #f0c880 0%, #c8a050 60%, #a08040 100%); border-radius: 50% 40% 30% 50% / 60% 50% 50% 40%; transform: rotate(-10deg); animation: sc1-bob 4s ease-in-out infinite; }
.scn-counterfeit-birds .bird-feathers-a { position:absolute; bottom:48%; left:55%; width:35px; height:60px; background: linear-gradient(180deg, #ffd890 0%, #f0b860 50%, #d09050 100%); border-radius: 70% 30% 60% 40% / 40% 60% 30% 70%; transform: rotate(20deg); animation: sc1-feather1 6s ease-in-out infinite alternate; }
.scn-counterfeit-birds .bird-feathers-b { position:absolute; bottom:42%; left:35%; width:40px; height:50px; background: linear-gradient(180deg, #ffd090 0%, #e8a860 50%, #c88840 100%); border-radius: 30% 70% 40% 60% / 60% 40% 70% 30%; transform: rotate(-30deg); animation: sc1-feather2 5s ease-in-out infinite alternate; }
.scn-counterfeit-birds .feather-scatter { position:absolute; bottom:28%; left:20%; width:15px; height:30px; background: linear-gradient(180deg, #ffe0a0 0%, #d0a060 100%); border-radius: 50% 50% 30% 30%; transform: rotate(30deg); opacity:0.7; animation: sc1-drift 12s linear infinite; box-shadow: 8px -4px 0 #d0a060, 16px 2px 0 #e8b870; }
.scn-counterfeit-birds .vial-paint { position:absolute; bottom:42%; left:15%; width:12px; height:20px; background: linear-gradient(180deg, #80b0d0 0%, #3070a0 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 4px 6px rgba(0,0,0,.2); animation: sc1-vial 8s ease-in-out infinite; }
.scn-counterfeit-birds .brush { position:absolute; bottom:50%; left:18%; width:14px; height:4px; background: #b08850; border-radius: 20% 50% 50% 20%; transform: rotate(-20deg); box-shadow: 0 2px 4px rgba(0,0,0,.15); animation: sc1-brush 3s ease-in-out infinite alternate; }
.scn-counterfeit-birds .shadow-layer { position:absolute; inset:40% 10% 0 10%; background: radial-gradient(ellipse at 50% 0, rgba(0,0,0,.15) 0%, transparent 70%); pointer-events:none; }
@keyframes sc1-sunbeams { 0% { opacity:.6; transform: scale(1) } 100% { opacity:1; transform: scale(1.02) } }
@keyframes sc1-bob { 0%,100% { transform: translateY(0) rotate(-10deg) } 50% { transform: translateY(-3px) rotate(-8deg) } }
@keyframes sc1-feather1 { 0% { transform: rotate(20deg) translateY(0) } 50% { transform: rotate(25deg) translateY(-2px) } 100% { transform: rotate(18deg) translateY(0) } }
@keyframes sc1-feather2 { 0% { transform: rotate(-30deg) translateY(0) } 50% { transform: rotate(-25deg) translateY(-3px) } 100% { transform: rotate(-32deg) translateY(0) } }
@keyframes sc1-drift { 0% { transform: translateX(0) rotate(30deg); opacity:0.7 } 50% { transform: translateX(40px) rotate(40deg); opacity:0.5 } 100% { transform: translateX(80px) rotate(30deg); opacity:0.3 } }
@keyframes sc1-vial { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes sc1-brush { 0% { transform: translate(0,0) rotate(-20deg) } 50% { transform: translate(2px,-1px) rotate(-15deg) } 100% { transform: translate(0,0) rotate(-20deg) } }

.scn-forgery-method { background: linear-gradient(135deg, #f5e0b0 0%, #e8c88a 50%, #d0a868 100%), radial-gradient(circle at 20% 30%, #fff5d0 0%, transparent 50%); }
.scn-forgery-method .bg-studio { position:absolute; inset:0; background: linear-gradient(180deg, rgba(255,240,200,.15) 0%, transparent 60%); animation: sc2-ambient 12s ease-in-out infinite alternate; }
.scn-forgery-method .table { position:absolute; bottom:10%; left:5%; right:5%; height:40%; background: linear-gradient(180deg, #b89870 0%, #9a7858 40%, #7a5c3c 100%); border-radius: 6% 6% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.25); }
.scn-forgery-method .parakeet-base { position:absolute; bottom:40%; left:40%; width:50px; height:30px; background: radial-gradient(ellipse at 50% 40%, #a8c888 0%, #68904a 60%, #486830 100%); border-radius: 50% 40% 40% 50% / 40% 50% 50% 40%; transform: rotate(-5deg); animation: sc2-body 5s ease-in-out infinite; }
.scn-forgery-method .feather-overlay { position:absolute; bottom:48%; left:50%; width:40px; height:50px; background: linear-gradient(180deg, #ffd8a0 0%, #e8b870 40%, #c89850 100%); border-radius: 60% 30% 50% 40% / 50% 70% 30% 50%; transform: rotate(15deg); animation: sc2-feather 4s ease-in-out infinite alternate; }
.scn-forgery-method .suture-line { position:absolute; bottom:42%; left:43%; width:20px; height:3px; background: linear-gradient(90deg, #8a6a4a 0%, #b88a5a 50%, #8a6a4a 100%); border-radius: 50%; animation: sc2-suture 6s ease-in-out infinite; }
.scn-forgery-method .paint-pot { position:absolute; bottom:35%; left:20%; width:16px; height:18px; background: linear-gradient(180deg, #c06030 0%, #8a4020 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 4px 6px rgba(0,0,0,.3); animation: sc2-pot 7s ease-in-out infinite; }
.scn-forgery-method .hand-left { position:absolute; bottom:45%; left:15%; width:20px; height:35px; background: linear-gradient(180deg, #dbb888 0%, #b89060 60%, #9a7858 100%); border-radius: 40% 30% 50% 50% / 60% 60% 40% 40%; transform: rotate(20deg); animation: sc2-hand1 3s ease-in-out infinite alternate; }
.scn-forgery-method .hand-right { position:absolute; bottom:42%; left:60%; width:18px; height:32px; background: linear-gradient(180deg, #dbb888 0%, #b89060 60%, #9a7858 100%); border-radius: 30% 40% 50% 50% / 60% 60% 40% 40%; transform: rotate(-15deg); animation: sc2-hand2 3.5s ease-in-out infinite alternate; }
.scn-forgery-method .varnish-bottle { position:absolute; bottom:38%; left:68%; width:12px; height:22px; background: linear-gradient(180deg, #d0c0a0 0%, #a09070 100%); border-radius: 10% 10% 20% 20%; box-shadow: 0 2px 4px rgba(0,0,0,.2); animation: sc2-bottle 9s ease-in-out infinite; }
@keyframes sc2-ambient { 0%,100% { opacity:0.6 } 50% { opacity:1 } }
@keyframes sc2-body { 0% { transform: rotate(-5deg) } 50% { transform: rotate(-3deg) translateY(-1px) } 100% { transform: rotate(-5deg) } }
@keyframes sc2-feather { 0% { transform: rotate(15deg) scaleY(1) } 50% { transform: rotate(20deg) scaleY(1.05) } 100% { transform: rotate(15deg) scaleY(1) } }
@keyframes sc2-suture { 0% { opacity:0.4; width:20px } 50% { opacity:1; width:22px } 100% { opacity:0.4; width:20px } }
@keyframes sc2-pot { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes sc2-hand1 { 0% { transform: rotate(20deg) translateX(0) } 100% { transform: rotate(15deg) translateX(3px) } }
@keyframes sc2-hand2 { 0% { transform: rotate(-15deg) translateX(0) } 100% { transform: rotate(-10deg) translateX(-2px) } }
@keyframes sc2-bottle { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-1px) rotate(3deg) } 100% { transform: translateY(0) rotate(0) } }

.scn-ned-bags-pig { background: linear-gradient(180deg, #7a9a6a 0%, #4a6a3a 40%, #2a3a1a 100%), radial-gradient(ellipse at 50% 80%, #8ab86a 0%, transparent 60%); }
.scn-ned-bags-pig .bg-jungle { position:absolute; inset:0; background: linear-gradient(135deg, rgba(90,140,70,.2) 0%, transparent 50%, rgba(60,100,40,.1) 100%); animation: sc3-jungle 8s ease-in-out infinite alternate; }
.scn-ned-bags-pig .ned-figure { position:absolute; bottom:20%; left:15%; width:22px; height:45px; background: linear-gradient(180deg, #3a4a2a 0%, #1a2a1a 60%, #0a1a0a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sc3-ned 2s ease-in-out infinite; }
.scn-ned-bags-pig .spear { position:absolute; bottom:55%; left:18%; width:4px; height:60px; background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%); border-radius: 20% 20% 0 0; transform: rotate(40deg); transform-origin: bottom left; animation: sc3-spear 1.5s ease-in-out infinite; }
.scn-ned-bags-pig .pig-falling { position:absolute; bottom:15%; left:50%; width:35px; height:25px; background: radial-gradient(ellipse at 50% 50%, #8a6a4a 0%, #5a3a2a 60%, #3a1a0a 100%); border-radius: 50% 40% 30% 50% / 40% 50% 50% 40%; transform: rotate(20deg); animation: sc3-pig 0.8s ease-in-out infinite; box-shadow: 0 -4px 6px rgba(0,0,0,.4); }
.scn-ned-bags-pig .dust-cloud { position:absolute; bottom:8%; left:40%; right:20%; height:20px; background: radial-gradient(ellipse at 30% 50%, rgba(180,160,120,.6) 0%, transparent 70%); animation: sc3-dust 2s ease-in-out infinite alternate; }
.scn-ned-bags-pig .sun-ray { position:absolute; top:10%; left:30%; width:8px; height:200px; background: linear-gradient(180deg, rgba(255,240,180,.4) 0%, transparent 80%); transform: rotate(-15deg); animation: sc3-sun 6s linear infinite; }
.scn-ned-bags-pig .grass-motion { position:absolute; bottom:0; left:0; right:0; height:12%; background: linear-gradient(180deg, #4a6a3a 0%, #2a3a1a 100%); clip-path: polygon(0% 0%, 10% 30%, 20% 0%, 30% 40%, 40% 10%, 50% 50%, 60% 20%, 70% 60%, 80% 30%, 90% 70%, 100% 40%, 100% 100%, 0% 100%); animation: sc3-grass 1.5s ease-in-out infinite alternate; }
@keyframes sc3-jungle { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.75 } }
@keyframes sc3-ned { 0% { transform: translateY(0) rotate(-2deg) } 25% { transform: translateY(-4px) rotate(2deg) } 50% { transform: translateY(0) rotate(-2deg) } 75% { transform: translateY(-4px) rotate(2deg) } 100% { transform: translateY(0) rotate(-2deg) } }
@keyframes sc3-spear { 0% { transform: rotate(40deg) } 50% { transform: rotate(45deg) } 100% { transform: rotate(40deg) } }
@keyframes sc3-pig { 0% { transform: rotate(20deg) translateY(0) } 50% { transform: rotate(15deg) translateY(-3px) } 100% { transform: rotate(20deg) translateY(0) } }
@keyframes sc3-dust { 0% { opacity:0.3; transform: scaleX(1) } 100% { opacity:0.7; transform: scaleX(1.3) } }
@keyframes sc3-sun { 0% { transform: rotate(-15deg) translateX(0); opacity:0.3 } 50% { transform: rotate(-10deg) translateX(20px); opacity:0.6 } 100% { transform: rotate(-15deg) translateX(40px); opacity:0.3 } }
@keyframes sc3-grass { 0% { transform: skewX(-2deg) } 100% { transform: skewX(2deg) } }

.scn-pig-butchered { background: linear-gradient(180deg, #f0e0c0 0%, #d8c8a8 40%, #c0b090 100%), radial-gradient(circle at 30% 30%, #fff8e0 0%, transparent 70%); }
.scn-pig-butchered .bg-clean { position:absolute; inset:0; background: linear-gradient(135deg, rgba(240,230,200,.15) 0%, transparent 50%); animation: sc4-clean 12s ease-in-out infinite alternate; }
.scn-pig-butchered .butcher-block { position:absolute; bottom:5%; left:10%; right:10%; height:45%; background: linear-gradient(180deg, #c0a88a 0%, #a08868 60%, #806848 100%); border-radius: 8% 8% 0 0; box-shadow: inset 0 8px 16px rgba(0,0,0,.2); }
.scn-pig-butchered .pig-carcass { position:absolute; bottom:20%; left:35%; width:55px; height:30px; background: radial-gradient(ellipse at 50% 40%, #a08060 0%, #705040 60%, #503020 100%); border-radius: 40% 30% 30% 40% / 50% 40% 40% 50%; transform: rotate(-5deg); animation: sc4-carcass 7s ease-in-out infinite; }
.scn-pig-butchered .cutlets-row { position:absolute; bottom:25%; left:20%; width:50px; height:10px; display:flex; gap:4px; }
.scn-pig-butchered .cutlets-row::before,
.scn-pig-butchered .cutlets-row::after { content:''; display:block; width:12px; height:16px; background: radial-gradient(ellipse at 50% 40%, #c88860 0%, #a06040 60%, #804020 100%); border-radius: 40% 40% 20% 20%; transform: rotate(-10deg); animation: sc4-cutlet 3s ease-in-out infinite alternate; }
.scn-pig-butchered .knife { position:absolute; bottom:22%; left:70%; width:6px; height:25px; background: linear-gradient(180deg, #c0c0c0 0%, #888888 100%); border-radius: 10% 10% 40% 40%; transform: rotate(10deg); box-shadow: 0 2px 4px rgba(0,0,0,.3); animation: sc4-knife 4s ease-in-out infinite; }
.scn-pig-butchered .bucket { position:absolute; bottom:5%; left:5%; width:18px; height:22px; background: linear-gradient(180deg, #a09080 0%, #706050 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 4px 6px rgba(0,0,0,.25); animation: sc4-bucket 9s ease-in-out infinite; }
.scn-pig-butchered .shadows { position:absolute; bottom:0; left:5%; right:5%; height:20%; background: linear-gradient(180deg, rgba(0,0,0,.15) 0%, transparent 100%); pointer-events:none; }
@keyframes sc4-clean { 0% { opacity:0.6 } 100% { opacity:1 } }
@keyframes sc4-carcass { 0% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(-3deg) translateY(-2px) } 100% { transform: rotate(-5deg) translateY(0) } }
@keyframes sc4-cutlet { 0% { transform: rotate(-10deg) translateY(0) } 100% { transform: rotate(5deg) translateY(-1px) } }
@keyframes sc4-knife { 0% { transform: rotate(10deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(10deg) } }
@keyframes sc4-bucket { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }

.scn-no-lamps-needed { background: linear-gradient(180deg, #0a0e1a 0%, #0f1525 30%, #1a2a40 70%, #0d1a2f 100%), radial-gradient(ellipse at 50% 60%, #1a3050 0%, transparent 80%); }
.scn-no-lamps-needed .deep-bg { position:absolute; inset:0; background: linear-gradient(135deg, rgba(10,20,40,.6) 0%, transparent 50%, rgba(5,15,30,.4) 100%); animation: nln-depth 20s ease-in-out infinite alternate; }
.scn-no-lamps-needed .cavern-wall { position:absolute; top:0; bottom:0; width:35%; background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 40%, #0f0f1f 100%); border-radius:0 30% 20% 0 / 0 80% 60% 0; }
.scn-no-lamps-needed .cavern-wall.left { left:0; transform:scaleX(1); box-shadow: inset -10px 0 30px rgba(0,0,0,.6); }
.scn-no-lamps-needed .cavern-wall.right { right:0; transform:scaleX(-1); }
.scn-no-lamps-needed .biolum-glow { position:absolute; border-radius:50%; background: radial-gradient(circle, rgba(80,200,180,.3) 0%, rgba(60,160,140,.1) 50%, transparent 70%); filter:blur(12px); animation: nln-pulse 6s ease-in-out infinite alternate; }
.scn-no-lamps-needed .glow-1 { width:120px; height:120px; top:30%; left:20%; animation-delay:0s; }
.scn-no-lamps-needed .glow-2 { width:80px; height:80px; bottom:40%; right:25%; animation-delay:-2s; animation-duration:8s; }
.scn-no-lamps-needed .glow-3 { width:60px; height:60px; top:60%; left:55%; animation-delay:-4s; }
.scn-no-lamps-needed .figure-dark { position:absolute; bottom:18%; left:40%; width:28px; height:48px; background: linear-gradient(180deg, #0a0a12 0%, #12121e 50%, #05050a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: nln-stand 4s ease-in-out infinite; box-shadow: 0 4px 12px rgba(0,0,0,.5); }
.scn-no-lamps-needed .alpenstock { position:absolute; bottom:14%; left:48%; width:4px; height:36px; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius:2px; transform:rotate(12deg); transform-origin:bottom center; animation: nln-stock 4s ease-in-out infinite; }
.scn-no-lamps-needed .particle { position:absolute; width:4px; height:4px; background: radial-gradient(circle, rgba(100,220,200,.8) 0%, transparent 100%); border-radius:50%; animation: nln-float 15s ease-in-out infinite; }
.scn-no-lamps-needed .particle-1 { top:45%; left:35%; animation-delay:0s; }
.scn-no-lamps-needed .particle-2 { top:55%; right:40%; animation-delay:-5s; animation-duration:20s; }
@keyframes nln-depth { 0% { opacity:.7 } 50% { opacity:.85 } 100% { opacity:.6 } }
@keyframes nln-pulse { 0% { opacity:.2; transform:scale(.8) } 50% { opacity:.5; transform:scale(1.1) } 100% { opacity:.3; transform:scale(.9) } }
@keyframes nln-stand { 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 nln-stock { 0%,100% { transform:rotate(12deg) } 50% { transform:rotate(10deg) } }
@keyframes nln-float { 0% { transform:translate(0,0); opacity:0 } 20% { opacity:.8 } 80% { opacity:.6 } 100% { transform:translate(20px,-30px); opacity:0 } }

.scn-walking-toward-red-glow { background: linear-gradient(180deg, #1a0a0a 0%, #2a1210 30%, #4a2018 60%, #6a2a1a 100%), radial-gradient(ellipse at 50% 80%, #8a3a1a 0%, transparent 70%); }
.scn-walking-toward-red-glow .sky-fire { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #2a1010 0%, #4a1a10 30%, #6a2510 60%, transparent 100%); animation: wtr-sky 15s ease-in-out infinite alternate; }
.scn-walking-toward-red-glow .rocky-bg { position:absolute; bottom:20%; left:0; right:0; height:50%; background: linear-gradient(180deg, #1a0a0a 0%, #2a1210 40%, #0f0505 100%); border-radius:60% 40% 0 0 / 40% 30% 0 0; box-shadow: inset 0 20px 40px rgba(0,0,0,.6); }
.scn-walking-toward-red-glow .rocky-mid { position:absolute; bottom:10%; left:10%; right:10%; height:30%; background: linear-gradient(180deg, #2a1410 0%, #1a0a08 100%); border-radius:50% 50% 20% 20% / 60% 60% 20% 20%; box-shadow: inset 0 10px 30px rgba(0,0,0,.5); animation: wtr-ground 20s ease-in-out infinite alternate; }
.scn-walking-toward-red-glow .flame-core { position:absolute; bottom:35%; left:50%; width:16px; height:30px; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 30%, #ffd060 0%, #ff8020 50%, #cc4000 100%); border-radius:50% 50% 30% 30% / 60% 60% 30% 30%; box-shadow: 0 0 40px 12px rgba(255,128,32,.5), 0 0 80px 24px rgba(255,64,0,.3); animation: wtr-flame 2s ease-in-out infinite alternate; }
.scn-walking-toward-red-glow .flame-halo { position:absolute; bottom:33%; left:50%; width:80px; height:60px; transform:translateX(-50%); background: radial-gradient(ellipse, rgba(255,120,20,.15) 0%, transparent 70%); filter:blur(16px); animation: wtr-halo 3s ease-in-out infinite alternate; }
.scn-walking-toward-red-glow .figure-left { position:absolute; bottom:22%; left:30%; width:22px; height:42px; background: linear-gradient(180deg, #0a0505 0%, #1a0a08 50%, #050202 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: wtr-walk 5s ease-in-out infinite; }
.scn-walking-toward-red-glow .figure-right { position:absolute; bottom:20%; left:42%; width:24px; height:44px; background: linear-gradient(180deg, #0a0505 0%, #1a0a08 50%, #050202 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: wtr-walk 5s ease-in-out infinite; animation-delay:-2.5s; }
.scn-walking-toward-red-glow .shadow-ground { position:absolute; bottom:8%; left:20%; right:20%; height:20%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.6) 100%); border-radius:50%; filter:blur(10px); animation: wtr-shadow 5s ease-in-out infinite alternate; }
.scn-walking-toward-red-glow .ember { position:absolute; width:4px; height:4px; background: radial-gradient(circle, #ff8020 0%, transparent 100%); border-radius:50%; animation: wtr-ember 6s ease-in-out infinite; }
.scn-walking-toward-red-glow .ember-1 { bottom:45%; left:48%; animation-delay:0s; }
.scn-walking-toward-red-glow .ember-2 { bottom:50%; left:55%; animation-delay:-3s; animation-duration:8s; }
@keyframes wtr-sky { 0% { opacity:.7 } 50% { opacity:.9 } 100% { opacity:.8 } }
@keyframes wtr-ground { 0% { transform:translateY(0) scaleX(1) } 50% { transform:translateY(-3px) scaleX(1.02) } 100% { transform:translateY(0) scaleX(1) } }
@keyframes wtr-flame { 0% { transform:translateX(-50%) scaleY(1) opacity:.9 } 50% { transform:translateX(-50%) scaleY(1.15) opacity:1 } 100% { transform:translateX(-50%) scaleY(.95) opacity:.85 } }
@keyframes wtr-halo { 0% { opacity:.3; transform:translateX(-50%) scale(1) } 50% { opacity:.5; transform:translateX(-50%) scale(1.1) } 100% { opacity:.4; transform:translateX(-50%) scale(.95) } }
@keyframes wtr-walk { 0% { transform:translateX(0) translateY(0) rotate(-2deg) } 25% { transform:translateX(3px) translateY(-2px) rotate(1deg) } 50% { transform:translateX(6px) translateY(0) rotate(-1deg) } 75% { transform:translateX(3px) translateY(-1px) rotate(2deg) } 100% { transform:translateX(0) translateY(0) rotate(-2deg) } }
@keyframes wtr-shadow { 0% { opacity:.4; transform:scaleX(1) } 50% { opacity:.6; transform:scaleX(1.1) } 100% { opacity:.5; transform:scaleX(.95) } }
@keyframes wtr-ember { 0% { transform:translate(0,0); opacity:0 } 20% { opacity:1 } 80% { opacity:.8 } 100% { transform:translate(-10px,-20px); opacity:0 } }

.scn-rain-above-surface { background: linear-gradient(180deg, #0a121a 0%, #0e1a24 40%, #1a2a36 70%, #0f1a22 100%), radial-gradient(ellipse at 50% 30%, #1a2a3a 0%, transparent 70%); }
.scn-rain-above-surface .deep-water { position:absolute; inset:0; background: linear-gradient(135deg, rgba(10,20,30,.3) 0%, transparent 50%, rgba(5,15,25,.2) 100%); animation: ras-depth 25s ease-in-out infinite alternate; }
.scn-rain-above-surface .surface-line { position:absolute; top:0; left:0; right:0; height:45%; background: linear-gradient(180deg, rgba(40,80,100,.3) 0%, transparent 100%); border-bottom:2px solid rgba(60,120,140,.2); animation: ras-surface 8s ease-in-out infinite alternate; }
.scn-rain-above-surface .diver-figure { position:absolute; bottom:20%; left:50%; width:40px; height:60px; transform:translateX(-50%); background: linear-gradient(180deg, #1a2a2e 0%, #0f1a1e 100%); border-radius:40% 40% 30% 30% / 50% 50% 30% 30%; box-shadow: 0 0 20px 4px rgba(0,20,30,.4); animation: ras-diver 6s ease-in-out infinite; }
.scn-rain-above-surface .helmet-glass { position:absolute; bottom:46%; left:50%; width:18px; height:18px; transform:translateX(-50%); background: radial-gradient(circle, rgba(80,160,180,.4) 0%, rgba(40,100,120,.1) 70%); border-radius:50%; border:2px solid rgba(60,120,140,.3); box-shadow: inset 0 0 10px rgba(60,160,200,.3); animation: ras-glass 6s ease-in-out infinite; }
.scn-rain-above-surface .rain-impact { position:absolute; top:10%; border-radius:50%; background: radial-gradient(circle, rgba(100,200,220,.3) 0%, transparent 70%); animation: ras-ripple 4s ease-out infinite; }
.scn-rain-above-surface .impact-1 { left:20%; width:30px; height:30px; animation-delay:0s; }
.scn-rain-above-surface .impact-2 { left:55%; width:24px; height:24px; animation-delay:-1.3s; animation-duration:5s; }
.scn-rain-above-surface .impact-3 { left:75%; width:18px; height:18px; animation-delay:-2.7s; }
.scn-rain-above-surface .bubble { position:absolute; border-radius:50%; background: radial-gradient(circle, rgba(80,180,200,.2) 0%, transparent 70%); animation: ras-bubble 12s ease-in-out infinite; }
.scn-rain-above-surface .bubble-1 { bottom:15%; left:30%; width:12px; height:12px; animation-delay:0s; }
.scn-rain-above-surface .bubble-2 { bottom:25%; right:35%; width:8px; height:8px; animation-delay:-4s; }
@keyframes ras-depth { 0% { opacity:.6 } 50% { opacity:.8 } 100% { opacity:.7 } }
@keyframes ras-surface { 0% { opacity:.5; transform:translateY(0) } 50% { opacity:.7; transform:translateY(2px) } 100% { opacity:.6; transform:translateY(-1px) } }
@keyframes ras-diver { 0%,100% { transform:translateX(-50%) translateY(0) rotate(0) } 25% { transform:translateX(-50%) translateY(-3px) rotate(1deg) } 50% { transform:translateX(-50%) translateY(0) rotate(0) } 75% { transform:translateX(-50%) translateY(-2px) rotate(-1deg) } }
@keyframes ras-glass { 0%,100% { opacity:.6; transform:translateX(-50%) scale(1) } 50% { opacity:.9; transform:translateX(-50%) scale(1.05) } }
@keyframes ras-ripple { 0% { transform:scale(.3); opacity:.8 } 50% { transform:scale(1.5); opacity:.3 } 100% { transform:scale(2.5); opacity:0 } }
@keyframes ras-bubble { 0% { transform:translate(0,0) scale(.8); opacity:0 } 20% { opacity:.6 } 80% { opacity:.4 } 100% { transform:translate(10px,-40px) scale(1.2); opacity:0 } }

.scn-rocky-seafloor-and-symmetry { background: linear-gradient(180deg, #0a0608 0%, #120a0e 30%, #1a1014 60%, #0e080a 100%), radial-gradient(ellipse at 50% 40%, #2a1a1e 0%, transparent 70%); }
.scn-rocky-seafloor-and-symmetry .abyss-bg { position:absolute; inset:0; background: linear-gradient(135deg, rgba(10,5,8,.4) 0%, transparent 50%, rgba(5,2,4,.3) 100%); animation: rss-depth 30s ease-in-out infinite alternate; }
.scn-rocky-seafloor-and-symmetry .rock-col { position:absolute; bottom:0; width:28%; height:75%; background: linear-gradient(180deg, #1a1214 0%, #0e080a 50%, #050204 100%); border-radius:20% 20% 0 0 / 40% 40% 0 0; box-shadow: inset 0 0 40px rgba(0,0,0,.6), 0 0 20px rgba(0,0,0,.4); }
.scn-rocky-seafloor-and-symmetry .left-rock { left:8%; animation: rss-rock-l 20s ease-in-out infinite alternate; }
.scn-rocky-seafloor-and-symmetry .right-rock { right:8%; animation: rss-rock-r 20s ease-in-out infinite alternate; }
.scn-rocky-seafloor-and-symmetry .seaweed { position:absolute; bottom:20%; width:8px; height:40px; background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%); border-radius:50% 50% 20% 20% / 60% 60% 20% 20%; transform-origin:bottom center; animation: rss-seaweed 6s ease-in-out infinite; }
.scn-rocky-seafloor-and-symmetry .seaweed-left { left:22%; animation-delay:0s; }
.scn-rocky-seafloor-and-symmetry .seaweed-right { right:22%; animation-delay:-3s; }
.scn-rocky-seafloor-and-symmetry .walking-figure { position:absolute; bottom:12%; left:42%; width:22px; height:44px; background: linear-gradient(180deg, #0a0508 0%, #12080a 50%, #050204 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: rss-walk 5s ease-in-out infinite; }
.scn-rocky-seafloor-and-symmetry .alpenstock-staff { position:absolute; bottom:8%; left:50%; width:4px; height:38px; background: linear-gradient(180deg, #2a1a12 0%, #1a0e08 100%); border-radius:2px; transform:rotate(-8deg); transform-origin:bottom center; animation: rss-staff 5s ease-in-out infinite; }
.scn-rocky-seafloor-and-symmetry .glow-far { position:absolute; bottom:30%; left:50%; width:60px; height:60px; transform:translateX(-50%); background: radial-gradient(circle, rgba(200,120,60,.15) 0%, transparent 70%); filter:blur(20px); animation: rss-glow 6s ease-in-out infinite alternate; }
.scn-rocky-seafloor-and-symmetry .sediment { position:absolute; bottom:0; width:100%; height:15%; background: linear-gradient(180deg, transparent 0%, rgba(20,12,10,.6) 100%); border-radius:50% 50% 0 0 / 100% 100% 0 0; filter:blur(6px); animation: rss-sediment 25s ease-in-out infinite alternate; }
.scn-rocky-seafloor-and-symmetry .sediment-1 { left:0; animation-delay:0s; }
.scn-rocky-seafloor-and-symmetry .sediment-2 { left:0; animation-delay:-8s; opacity:.5; }
@keyframes rss-depth { 0% { opacity:.6 } 50% { opacity:.8 } 100% { opacity:.7 } }
@keyframes rss-rock-l { 0% { transform:scaleX(1) translateY(0) } 50% { transform:scaleX(1.02) translateY(-2px) } 100% { transform:scaleX(1) translateY(0) } }
@keyframes rss-rock-r { 0% { transform:scaleX(1) translateY(0) } 50% { transform:scaleX(1.02) translateY(-2px) } 100% { transform:scaleX(1) translateY(0) } }
@keyframes rss-seaweed { 0%,100% { transform:rotate(-5deg) } 50% { transform:rotate(5deg) } }
@keyframes rss-walk { 0% { transform:translateX(0) translateY(0) rotate(-1deg) } 25% { transform:translateX(4px) translateY(-2px) rotate(1deg) } 50% { transform:translateX(8px) translateY(0) rotate(-1deg) } 75% { transform:translateX(4px) translateY(-1px) rotate(2deg) } 100% { transform:translateX(0) translateY(0) rotate(-1deg) } }
@keyframes rss-staff { 0%,100% { transform:rotate(-8deg) } 50% { transform:rotate(-5deg) } }
@keyframes rss-glow { 0% { opacity:.2; transform:translateX(-50%) scale(1) } 50% { opacity:.4; transform:translateX(-50%) scale(1.2) } 100% { opacity:.3; transform:translateX(-50%) scale(.9) } }
@keyframes rss-sediment { 0% { opacity:.4; transform:translateY(0) } 50% { opacity:.6; transform:translateY(-3px) } 100% { opacity:.5; transform:translateY(0) } }

.scn-devilfish-legend-discussion {
  background: linear-gradient(135deg, #f5e6c8 0%, #e8d09a 60%, #c8a87a 100%), radial-gradient(circle at 30% 40%, #fff8e0 0%, transparent 70%);
}
.scn-devilfish-legend-discussion .wall {
  position: absolute; inset: 20% 10% 20% 10%;
  background: linear-gradient(180deg, #d8c094 0%, #b89678 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 40px rgba(0,0,0,.15);
  animation: dl-wall 12s ease-in-out infinite alternate;
}
.scn-devilfish-legend-discussion .frame {
  position: absolute; top: 28%; left: 30%; width: 30%; height: 45%;
  background: linear-gradient(135deg, #a07858 0%, #7a5a3a 100%);
  border-radius: 6px;
  box-shadow: 0 8px 24px rgba(0,0,0,.3);
  animation: dl-frame 8s ease-in-out infinite;
}
.scn-devilfish-legend-discussion .painting {
  position: absolute; top: 31%; left: 33%; width: 24%; height: 38%;
  background: radial-gradient(ellipse at 40% 60%, #2a4a6a 0%, #1a2a3a 70%, #0a1a2a 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 20px #8aafcf;
  animation: dl-paint 15s ease-in-out infinite alternate;
}
.scn-devilfish-legend-discussion .figure-left {
  position: absolute; bottom: 20%; left: 15%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: dl-fig-l 4s ease-in-out infinite;
}
.scn-devilfish-legend-discussion .figure-right {
  position: absolute; bottom: 20%; right: 15%; width: 44px; height: 82px;
  background: linear-gradient(180deg, #3a4a3a 0%, #1a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: dl-fig-r 4.5s ease-in-out infinite reverse;
}
.scn-devilfish-legend-discussion .lantern {
  position: absolute; top: 22%; left: 50%; width: 20px; height: 28px;
  background: radial-gradient(circle, #ffd080 0%, #b08040 80%);
  border-radius: 30%;
  box-shadow: 0 0 40px 10px rgba(255,208,128,.6), 0 0 80px 20px rgba(255,208,128,.3);
  animation: dl-lantern 3s ease-in-out infinite alternate;
}
.scn-devilfish-legend-discussion .glow {
  position: absolute; top: 0; left: 30%; width: 40%; height: 100%;
  background: radial-gradient(ellipse at 50% 30%, rgba(255,220,140,.2) 0%, transparent 80%);
  pointer-events: none;
  animation: dl-glow 6s ease-in-out infinite alternate;
}

@keyframes dl-wall {
  0% { opacity: .85; filter: brightness(1); }
  50% { opacity: .95; filter: brightness(1.1); }
  100% { opacity: .9; filter: brightness(.95); }
}
@keyframes dl-frame {
  0%, 100% { transform: scale(1) translateY(0); }
  50% { transform: scale(1.02) translateY(-2px); }
}
@keyframes dl-paint {
  0% { background-position: 0% 0%; }
  50% { background-position: 10% 20%; }
  100% { background-position: 5% 10%; }
}
@keyframes dl-fig-l {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(3px) rotate(2deg); }
  50% { transform: translateX(0) rotate(-1deg); }
  75% { transform: translateX(-2px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes dl-fig-r {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(-3px) rotate(-2deg); }
  50% { transform: translateX(0) rotate(1deg); }
  75% { transform: translateX(2px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes dl-lantern {
  0% { box-shadow: 0 0 30px 8px #ffd080cc, 0 0 60px 15px #ffd08055; opacity: .9; }
  50% { box-shadow: 0 0 50px 15px #ffe090, 0 0 100px 30px #ffe09055; opacity: 1; }
  100% { box-shadow: 0 0 35px 10px #ffd080cc, 0 0 70px 20px #ffd08055; opacity: .95; }
}
@keyframes dl-glow {
  0% { opacity: .6; transform: scaleY(1); }
  50% { opacity: 1; transform: scaleY(1.1); }
  100% { opacity: .8; transform: scaleY(.95); }
}

.scn-devilfish-legend-truth {
  background: linear-gradient(180deg, #f0e4c8 0%, #dcc8a8 50%, #b89878 100%), radial-gradient(ellipse at 60% 20%, #fff8e0 0%, transparent 70%);
}
.scn-devilfish-legend-truth .table {
  position: absolute; bottom: 18%; left: 20%; right: 20%; height: 8%;
  background: linear-gradient(180deg, #8a705a 0%, #5a4a3a 100%);
  border-radius: 8% 8% 0 0;
  box-shadow: 0 4px 12px rgba(0,0,0,.3);
  animation: dt-table 10s ease-in-out infinite alternate;
}
.scn-devilfish-legend-truth .chair-left {
  position: absolute; bottom: 22%; left: 22%; width: 30px; height: 50px;
  background: linear-gradient(135deg, #705a4a 0%, #4a3a2a 100%);
  border-radius: 10% 10% 30% 30% / 30% 30% 40% 40%;
  transform-origin: bottom center;
  animation: dt-chair-l 6s ease-in-out infinite;
}
.scn-devilfish-legend-truth .chair-right {
  position: absolute; bottom: 22%; right: 22%; width: 30px; height: 50px;
  background: linear-gradient(135deg, #705a4a 0%, #4a3a2a 100%);
  border-radius: 10% 10% 30% 30% / 30% 30% 40% 40%;
  transform-origin: bottom center;
  animation: dt-chair-r 6.5s ease-in-out infinite reverse;
}
.scn-devilfish-legend-truth .figure-sitting {
  position: absolute; bottom: 22%; left: 24%; width: 36px; height: 60px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: dt-sit 8s ease-in-out infinite;
}
.scn-devilfish-legend-truth .figure-standing {
  position: absolute; bottom: 18%; right: 24%; width: 34px; height: 72px;
  background: linear-gradient(180deg, #4a5a3a 0%, #2a3a1a 100%);
  border-radius: 35% 35% 25% 25% / 55% 55% 25% 25%;
  transform-origin: bottom center;
  animation: dt-stand 5s ease-in-out infinite alternate;
}
.scn-devilfish-legend-truth .window {
  position: absolute; top: 15%; left: 10%; right: 10%; height: 30%;
  background: linear-gradient(180deg, #9ab8d8 0%, #6a8aaa 100%);
  border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%;
  box-shadow: inset 0 0 30px rgba(255,255,200,.3);
  animation: dt-window 15s ease-in-out infinite alternate;
}
.scn-devilfish-legend-truth .curtain {
  position: absolute; top: 12%; left: 8%; width: 12%; height: 35%;
  background: linear-gradient(90deg, #8a7050 0%, #c8a878 50%, #8a7050 100%);
  border-radius: 30%;
  filter: blur(1px);
  animation: dt-curtain 12s ease-in-out infinite alternate;
}
@keyframes dt-table {
  0% { transform: scaleY(1); filter: brightness(1); }
  50% { transform: scaleY(1.02); filter: brightness(1.05); }
  100% { transform: scaleY(.98); filter: brightness(.95); }
}
@keyframes dt-chair-l {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(2deg); }
}
@keyframes dt-chair-r {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(-2deg); }
}
@keyframes dt-sit {
  0% { transform: translateY(0) rotate(-1deg); }
  25% { transform: translateY(-2px) rotate(0deg); }
  50% { transform: translateY(0) rotate(1deg); }
  75% { transform: translateY(-1px) rotate(0deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes dt-stand {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-4px) rotate(2deg); }
  100% { transform: translateY(0) rotate(-2deg); }
}
@keyframes dt-window {
  0% { opacity: .8; box-shadow: inset 0 0 20px rgba(255,255,200,.2); }
  50% { opacity: 1; box-shadow: inset 0 0 50px rgba(255,255,200,.5); }
  100% { opacity: .9; box-shadow: inset 0 0 30px rgba(255,255,200,.3); }
}
@keyframes dt-curtain {
  0% { transform: translateX(0); opacity: .9; }
  50% { transform: translateX(-5px); opacity: 1; }
  100% { transform: translateX(3px); opacity: .85; }
}

.scn-devilfish-encounter-1861 {
  background: linear-gradient(180deg, #dce8f0 0%, #b8c8d8 50%, #8aa0b8 100%), radial-gradient(ellipse at 50% 0%, #ffffff33 0%, transparent 80%);
}
.scn-devilfish-encounter-1861 .deck {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #7a6a5a 0%, #4a3a2a 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,.4);
  animation: de-deck 8s ease-in-out infinite alternate;
}
.scn-devilfish-encounter-1861 .bulwark {
  position: absolute; bottom: 28%; left: 5%; right: 5%; height: 6%;
  background: linear-gradient(90deg, #5a4a3a 0%, #7a6a5a 50%, #5a4a3a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,.3);
  animation: de-bulk 10s ease-in-out infinite;
}
.scn-devilfish-encounter-1861 .cannon {
  position: absolute; bottom: 26%; left: 40%; width: 12%; height: 8%;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 20% 20% 30% 30% / 30% 30% 20% 20%;
  box-shadow: 0 4px 10px rgba(0,0,0,.5);
  animation: de-cannon 4s ease-in-out infinite;
}
.scn-devilfish-encounter-1861 .sailor {
  position: absolute; bottom: 24%; left: 30%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #4a6a8a 0%, #2a3a5a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: de-sailor 3s ease-in-out infinite alternate;
}
.scn-devilfish-encounter-1861 .squid-tentacle {
  position: absolute; top: 10%; right: 5%; width: 60px; height: 80px;
  background: linear-gradient(180deg, #6a8a7a 0%, #3a5a4a 100%);
  border-radius: 40% 40% 60% 60% / 30% 30% 50% 50%;
  transform-origin: top right;
  animation: de-tentacle 5s ease-in-out infinite;
}
.scn-devilfish-encounter-1861 .spray {
  position: absolute; top: 15%; left: 20%; width: 40px; height: 20px;
  background: radial-gradient(circle, rgba(255,255,255,.6) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(3px);
  animation: de-spray 2s ease-in-out infinite alternate;
}
.scn-devilfish-encounter-1861 .wave {
  position: absolute; top: 35%; left: 0; right: 0; height: 10%;
  background: linear-gradient(180deg, rgba(255,255,255,.3) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(4px);
  animation: de-wave 6s ease-in-out infinite;
}

@keyframes de-deck {
  0% { transform: translateY(0); filter: brightness(1); }
  50% { transform: translateY(-4px); filter: brightness(1.1); }
  100% { transform: translateY(0); filter: brightness(.9); }
}
@keyframes de-bulk {
  0%, 100% { transform: translateX(0); }
  50% { transform: translateX(-5px); }
}
@keyframes de-cannon {
  0% { transform: rotate(0deg) scale(1); }
  50% { transform: rotate(3deg) scale(1.1); }
  100% { transform: rotate(0deg) scale(1); }
}
@keyframes de-sailor {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-6px) rotate(4deg); }
  100% { transform: translateY(0) rotate(-2deg); }
}
@keyframes de-tentacle {
  0% { transform: rotate(0deg) scale(1); }
  25% { transform: rotate(-10deg) scale(1.2); }
  50% { transform: rotate(5deg) scale(.9); }
  75% { transform: rotate(-5deg) scale(1.1); }
  100% { transform: rotate(0deg) scale(1); }
}
@keyframes de-spray {
  0% { transform: translate(0, 0); opacity: .6; }
  100% { transform: translate(10px, -15px); opacity: 0; }
}
@keyframes de-wave {
  0% { transform: translateX(0); opacity: .4; }
  50% { transform: translateX(20px); opacity: .6; }
  100% { transform: translateX(-10px); opacity: .3; }
}

.scn-devilfish-sight-close {
  background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 50%, #050a12 100%), radial-gradient(ellipse at 50% 30%, #2a4a6a11 0%, transparent 80%);
}
.scn-devilfish-sight-close .bg {
  position: absolute; inset: 0;
  background: radial-gradient(circle at 40% 50%, #0a1a2a 0%, #050a12 100%);
  animation: ds-bg 15s ease-in-out infinite alternate;
}
.scn-devilfish-sight-close .head {
  position: absolute; top: 20%; left: 30%; right: 30%; height: 40%;
  background: radial-gradient(ellipse at 50% 60%, #4a6a5a 0%, #2a4a3a 60%, #1a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  box-shadow: inset 0 0 40px #0a1a0a;
  animation: ds-head 8s ease-in-out infinite alternate;
}
.scn-devilfish-sight-close .eye {
  position: absolute; top: 30%; left: 40%; width: 12%; height: 14%;
  background: radial-gradient(circle, #ffe080 0%, #b08040 60%, #4a2a0a 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(255,224,128,.5), 0 0 60px 20px rgba(255,224,128,.2);
  animation: ds-eye 4s ease-in-out infinite;
}
.scn-devilfish-sight-close .beak {
  position: absolute; top: 50%; left: 48%; width: 6%; height: 10%;
  background: linear-gradient(180deg, #6a5a3a 0%, #3a2a1a 100%);
  border-radius: 30% 30% 50% 50% / 40% 40% 60% 60%;
  transform: rotate(10deg);
  animation: ds-beak 5s ease-in-out infinite alternate;
}
.scn-devilfish-sight-close .tentacle-1 {
  position: absolute; top: 20%; left: 5%; width: 20%; height: 50%;
  background: linear-gradient(180deg, #4a6a5a 0%, #2a4a3a 100%);
  border-radius: 40% 40% 60% 60% / 30% 30% 50% 50%;
  transform-origin: top left;
  animation: ds-t1 6s ease-in-out infinite;
}
.scn-devilfish-sight-close .tentacle-2 {
  position: absolute; top: 15%; right: 8%; width: 18%; height: 45%;
  background: linear-gradient(180deg, #4a6a5a 0%, #2a4a3a 100%);
  border-radius: 40% 40% 60% 60% / 30% 30% 50% 50%;
  transform-origin: top right;
  animation: ds-t2 7s ease-in-out infinite reverse;
}
.scn-devilfish-sight-close .tentacle-3 {
  position: absolute; top: 10%; left: 25%; width: 15%; height: 55%;
  background: linear-gradient(180deg, #4a6a5a 0%, #2a4a3a 100%);
  border-radius: 40% 40% 60% 60% / 30% 30% 50% 50%;
  transform-origin: top center;
  animation: ds-t3 8s ease-in-out infinite;
}
.scn-devilfish-sight-close .shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, transparent 0%, #050a12 100%);
  animation: ds-shadow 10s ease-in-out infinite alternate;
}

@keyframes ds-bg {
  0% { opacity: .8; filter: brightness(1); }
  50% { opacity: .9; filter: brightness(1.2); }
  100% { opacity: .7; filter: brightness(.8); }
}
@keyframes ds-head {
  0% { transform: scale(1) translateY(0); }
  50% { transform: scale(1.03) translateY(-5px); }
  100% { transform: scale(.98) translateY(2px); }
}
@keyframes ds-eye {
  0% { transform: scale(1); box-shadow: 0 0 20px 5px #ffe08088; }
  50% { transform: scale(1.2); box-shadow: 0 0 40px 15px #ffe080cc; }
  100% { transform: scale(1); box-shadow: 0 0 20px 5px #ffe08088; }
}
@keyframes ds-beak {
  0% { transform: rotate(8deg) scale(1); }
  50% { transform: rotate(12deg) scale(1.15); }
  100% { transform: rotate(8deg) scale(1); }
}
@keyframes ds-t1 {
  0% { transform: rotate(0deg) scale(1); }
  25% { transform: rotate(-15deg) scale(1.1); }
  50% { transform: rotate(10deg) scale(.9); }
  75% { transform: rotate(-5deg) scale(1.05); }
  100% { transform: rotate(0deg) scale(1); }
}
@keyframes ds-t2 {
  0% { transform: rotate(0deg) scale(1); }
  25% { transform: rotate(10deg) scale(1.1); }
  50% { transform: rotate(-15deg) scale(.9); }
  75% { transform: rotate(5deg) scale(1.05); }
  100% { transform: rotate(0deg) scale(1); }
}
@keyframes ds-t3 {
  0% { transform: rotate(0deg) scale(1) translateY(0); }
  33% { transform: rotate(-8deg) scale(1.1) translateY(-5px); }
  66% { transform: rotate(6deg) scale(.95) translateY(3px); }
  100% { transform: rotate(0deg) scale(1) translateY(0); }
}
@keyframes ds-shadow {
  0% { opacity: .7; }
  50% { opacity: .9; }
  100% { opacity: .6; }
}

.scn-mixed-feelings {
  background: linear-gradient(180deg, #0a1a2a 0%, #1a3a4a 40%, #2a5a6a 100%),
              radial-gradient(ellipse at 70% 30%, #5a9aba 0%, transparent 60%);
}
.scn-mixed-feelings .interior-wall {
  position: absolute; inset: 0 0 0 0;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  opacity: 0.6;
}
.scn-mixed-feelings .porthole-frame {
  position: absolute; top: 20%; left: 50%; width: 60%; height: 50%;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at center, transparent 70%, #3a4a5a 71%, #1a2a3a 100%);
  border-radius: 50%;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.5);
}
.scn-mixed-feelings .water-bg {
  position: absolute; top: 20%; left: 50%; width: 58%; height: 48%;
  transform: translate(-50%, 1%);
  background: linear-gradient(135deg, #2a7a9a 0%, #4a9abc 50%, #1a5a7a 100%);
  border-radius: 50%;
  animation: mf-water 12s ease-in-out infinite;
}
.scn-mixed-feelings .light-beam {
  position: absolute; top: 22%; left: 52%; width: 20%; height: 40%;
  background: linear-gradient(180deg, rgba(255,255,200,0.3) 0%, transparent 100%);
  filter: blur(4px);
  transform: rotate(-5deg);
  border-radius: 30%;
  animation: mf-beam 8s ease-in-out infinite alternate;
}
.scn-mixed-feelings .beam-2 {
  left: 60%; transform: rotate(3deg);
  animation-delay: -4s;
}
.scn-mixed-feelings .fish {
  position: absolute; top: 35%; left: 30%; width: 20px; height: 8px;
  background: radial-gradient(ellipse at 30% 50%, #c0c0a0 0%, #808060 100%);
  border-radius: 50%;
  transform: rotate(10deg);
  animation: mf-fish1 14s linear infinite;
}
.scn-mixed-feelings .fish-2 {
  top: 45%; left: 40%; width: 16px; height: 6px;
  background: radial-gradient(ellipse at 30% 50%, #b0b090 0%, #707050 100%);
  animation: mf-fish2 18s linear infinite;
}
.scn-mixed-feelings .figure-obs {
  position: absolute; bottom: 15%; left: 44%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mf-fig 5s ease-in-out infinite;
}
.scn-mixed-feelings .shadow-shimmer {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 60% 30%, rgba(0,40,60,0.3) 0%, transparent 70%);
  animation: mf-shimmer 10s ease-in-out infinite alternate;
}
@keyframes mf-water {
  0%, 100% { transform: translate(-50%, 0) scale(1); }
  50% { transform: translate(-50%, -2%) scale(1.02); }
}
@keyframes mf-beam {
  0% { opacity: 0.4; transform: rotate(-5deg) translateY(0); }
  50% { opacity: 0.8; transform: rotate(-5deg) translateY(-5px); }
  100% { opacity: 0.5; transform: rotate(-5deg) translateY(0); }
}
@keyframes mf-fish1 {
  0% { transform: translateX(-30px) rotate(10deg); opacity: 0.6; }
  25% { transform: translateX(30px) rotate(-5deg); opacity: 1; }
  50% { transform: translateX(80px) rotate(10deg); opacity: 0.8; }
  75% { transform: translateX(130px) rotate(-5deg); opacity: 0.6; }
  100% { transform: translateX(200px) rotate(10deg); opacity: 0; }
}
@keyframes mf-fish2 {
  0% { transform: translateX(-20px) rotate(-10deg); opacity: 0.4; }
  50% { transform: translateX(100px) rotate(10deg); opacity: 0.9; }
  100% { transform: translateX(250px) rotate(-10deg); opacity: 0; }
}
@keyframes mf-fig {
  0%, 100% { transform: translateX(0) translateY(0) rotate(1deg); }
  30% { transform: translateX(-2px) translateY(-1px) rotate(-1deg); }
  60% { transform: translateX(3px) translateY(1px) rotate(0deg); }
}
@keyframes mf-shimmer {
  0% { opacity: 0.2; }
  50% { opacity: 0.5; }
  100% { opacity: 0.3; }
}

.scn-dilemma-of-escape {
  background: linear-gradient(180deg, #3a2a1a 0%, #5a4a3a 50%, #2a1a0a 100%),
              radial-gradient(ellipse at 50% 80%, #7a6a5a 0%, transparent 70%);
}
.scn-dilemma-of-escape .cabin-bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #4a3a2a 0%, #3a2a1a 50%, #2a1a0a 100%);
}
.scn-dilemma-of-escape .table-top {
  position: absolute; bottom: 20%; left: 20%; width: 60%; height: 30%;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a1a 100%);
  border-radius: 5%;
  box-shadow: 0 10px 20px rgba(0,0,0,0.5);
  transform: perspective(400px) rotateX(30deg);
  animation: de-table 6s ease-in-out infinite;
}
.scn-dilemma-of-escape .compass-ring {
  position: absolute; bottom: 32%; left: 50%; width: 40px; height: 40px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #a09070 0%, #605030 70%);
  border-radius: 50%;
  box-shadow: 0 0 20px rgba(200,180,100,0.3);
  animation: de-compass 8s ease-in-out infinite alternate;
}
.scn-dilemma-of-escape .compass-needle {
  position: absolute; bottom: 42%; left: 50%; width: 4px; height: 25px;
  transform: translateX(-2px) rotate(45deg);
  background: linear-gradient(180deg, #c0a070 0%, #806040 100%);
  border-radius: 2px;
  transform-origin: bottom center;
  animation: de-needle 10s ease-in-out infinite;
}
.scn-dilemma-of-escape .map-edge {
  position: absolute; bottom: 18%; left: 22%; width: 56%; height: 15%;
  background: linear-gradient(180deg, #c0b090 0%, #a09070 100%);
  border-radius: 2%;
  opacity: 0.6;
  transform: skewY(-2deg);
}
.scn-dilemma-of-escape .hand-reach {
  position: absolute; bottom: 28%; left: 45%; width: 24px; height: 18px;
  background: linear-gradient(180deg, #c0a080 0%, #a08060 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: de-hand 4s ease-in-out infinite;
}
.scn-dilemma-of-escape .land-shadow {
  position: absolute; top: 10%; right: 15%; width: 25%; height: 30%;
  background: radial-gradient(ellipse, #1a1a2a 0%, transparent 70%);
  opacity: 0.5;
  animation: de-land 15s ease-in-out infinite alternate;
}
.scn-dilemma-of-escape .porthole-glow {
  position: absolute; top: 5%; left: 10%; width: 20%; height: 20%;
  background: radial-gradient(circle, rgba(255,230,180,0.4) 0%, transparent 70%);
  border-radius: 50%;
  animation: de-glow 5s ease-in-out infinite alternate;
}
@keyframes de-table {
  0%, 100% { transform: perspective(400px) rotateX(30deg) translateY(0); }
  50% { transform: perspective(400px) rotateX(30deg) translateY(-2px); }
}
@keyframes de-compass {
  0% { box-shadow: 0 0 20px rgba(200,180,100,0.2); transform: translateX(-50%) rotate(-3deg); }
  50% { box-shadow: 0 0 30px rgba(200,180,100,0.5); transform: translateX(-50%) rotate(3deg); }
  100% { box-shadow: 0 0 20px rgba(200,180,100,0.2); transform: translateX(-50%) rotate(-3deg); }
}
@keyframes de-needle {
  0% { transform: translateX(-2px) rotate(45deg); }
  25% { transform: translateX(-2px) rotate(35deg); }
  50% { transform: translateX(-2px) rotate(55deg); }
  75% { transform: translateX(-2px) rotate(40deg); }
  100% { transform: translateX(-2px) rotate(45deg); }
}
@keyframes de-hand {
  0% { transform: translateX(0) translateY(0) rotate(5deg); }
  30% { transform: translateX(-5px) translateY(-3px) rotate(-3deg); }
  60% { transform: translateX(5px) translateY(-1px) rotate(2deg); }
  100% { transform: translateX(0) translateY(0) rotate(5deg); }
}
@keyframes de-land {
  0% { opacity: 0.3; transform: translateX(0); }
  50% { opacity: 0.6; transform: translateX(-5px); }
  100% { opacity: 0.3; transform: translateX(0); }
}
@keyframes de-glow {
  0% { opacity: 0.2; transform: scale(0.8); }
  50% { opacity: 0.6; transform: scale(1.1); }
  100% { opacity: 0.3; transform: scale(0.9); }
}

.scn-chief-officer-sights {
  background: linear-gradient(180deg, #5a7a9a 0%, #8ab0c8 50%, #b0d0e0 100%),
              radial-gradient(ellipse at 80% 40%, #d0e8f0 0%, transparent 60%);
}
.scn-chief-officer-sights .deck-bg {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #4a5a6a 0%, #2a3a4a 100%);
}
.scn-chief-officer-sights .rail-left {
  position: absolute; bottom: 30%; left: 0; width: 30%; height: 4px;
  background: #3a4a5a;
  border-radius: 2px;
  box-shadow: 0 -4px 6px rgba(0,0,0,0.2);
}
.scn-chief-officer-sights .rail-right {
  position: absolute; bottom: 30%; right: 0; width: 30%; height: 4px;
  background: #3a4a5a;
  border-radius: 2px;
  box-shadow: 0 -4px 6px rgba(0,0,0,0.2);
}
.scn-chief-officer-sights .sextant {
  position: absolute; bottom: 25%; left: 45%; width: 30px; height: 30px;
  background: radial-gradient(circle, #c0b090 0%, #706050 80%);
  border-radius: 50%;
  transform: rotate(15deg);
  box-shadow: 4px 4px 8px rgba(0,0,0,0.3);
  animation: co-sextant 6s ease-in-out infinite;
}
.scn-chief-officer-sights .officer-figure {
  position: absolute; bottom: 28%; left: 50%; width: 30px; height: 60px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: co-officer 4s ease-in-out infinite;
}
.scn-chief-officer-sights .cigar-smoke {
  position: absolute; bottom: 55%; left: 53%; width: 8px; height: 20px;
  background: radial-gradient(ellipse, rgba(200,200,200,0.3) 0%, transparent 80%);
  filter: blur(3px);
  animation: co-smoke 8s ease-in-out infinite;
}
.scn-chief-officer-sights .cloud-sky {
  position: absolute; top: 10%; left: 20%; width: 80px; height: 20px;
  background: linear-gradient(180deg, rgba(255,255,255,0.5) 0%, rgba(255,255,255,0.1) 100%);
  border-radius: 50%;
  filter: blur(8px);
  animation: co-cloud 40s linear infinite;
}
.scn-chief-officer-sights .cloud-s-2 {
  top: 15%; left: 60%; width: 60px; height: 15px;
  animation: co-cloud 50s linear infinite reverse;
}
.scn-chief-officer-sights .horizon-line {
  position: absolute; bottom: 40%; left: 0; right: 0; height: 1px;
  background: linear-gradient(90deg, transparent, #4a6a8a, transparent);
}
@keyframes co-sextant {
  0%, 100% { transform: rotate(15deg) translateY(0); }
  50% { transform: rotate(12deg) translateY(-2px); }
}
@keyframes co-officer {
  0% { transform: translateX(-50%) translateY(0) rotate(1deg); }
  25% { transform: translateX(-50%) translateY(-2px) rotate(-1deg); }
  50% { transform: translateX(-50%) translateY(0) rotate(1deg); }
  75% { transform: translateX(-50%) translateY(-1px) rotate(0deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(1deg); }
}
@keyframes co-smoke {
  0% { opacity: 0.6; transform: translateY(0) scale(1); }
  50% { opacity: 0.3; transform: translateY(-20px) scale(2); }
  100% { opacity: 0; transform: translateY(-40px) scale(3); }
}
@keyframes co-cloud {
  0% { transform: translateX(-30px); }
  50% { transform: translateX(30px); }
  100% { transform: translateX(-30px); }
}

.scn-beacon-cleaning {
  background: linear-gradient(180deg, #4a4a5a 0%, #6a7a8a 50%, #8a9a9a 100%),
              radial-gradient(ellipse at 50% 70%, #a0b0b0 0%, transparent 70%);
}
.scn-beacon-cleaning .beacon-mount {
  position: absolute; bottom: 10%; left: 50%; width: 100px; height: 110px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 10px 20px rgba(0,0,0,0.4);
}
.scn-beacon-cleaning .beacon-glass {
  position: absolute; bottom: 45%; left: 50%; width: 80px; height: 60px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #d0e8f0 0%, #a0c0d0 60%, #7090a0 100%);
  border-radius: 20%;
  box-shadow: inset 0 0 20px rgba(255,255,200,0.4);
}
.scn-beacon-cleaning .beacon-flare {
  position: absolute; bottom: 45%; left: 50%; width: 100px; height: 80px;
  transform: translate(-50%, 0);
  background: radial-gradient(ellipse, rgba(255,250,200,0.5) 0%, transparent 70%);
  border-radius: 50%;
  animation: bc-flare 3s ease-in-out infinite alternate;
}
.scn-beacon-cleaning .sailor-arm {
  position: absolute; bottom: 30%; left: 40%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #3a4a5a 0%, #2a3a4a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom left;
  animation: bc-arm 5s ease-in-out infinite;
}
.scn-beacon-cleaning .cloth-motion {
  position: absolute; bottom: 38%; left: 42%; width: 30px; height: 20px;
  background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%);
  border-radius: 30%;
  filter: blur(2px);
  animation: bc-cloth 4s ease-in-out infinite;
}
.scn-beacon-cleaning .sparkle {
  position: absolute; top: 30%; left: 45%; width: 6px; height: 6px;
  background: #fff8e0;
  border-radius: 50%;
  box-shadow: 0 0 12px 4px rgba(255,255,200,0.6);
  animation: bc-sparkle 2s ease-in-out infinite;
}
.scn-beacon-cleaning .sp-2 {
  top: 35%; left: 52%;
  animation-delay: -1s;
}
.scn-beacon-cleaning .fittings-bg {
  position: absolute; bottom: 15%; left: 40%; width: 20%; height: 10%;
  background: linear-gradient(180deg, #4a5a6a 0%, #2a3a4a 100%);
  border-radius: 10%;
}
@keyframes bc-flare {
  0% { opacity: 0.5; transform: translate(-50%, 0) scale(0.9); }
  50% { opacity: 0.9; transform: translate(-50%, -2%) scale(1.1); }
  100% { opacity: 0.6; transform: translate(-50%, 0) scale(1); }
}
@keyframes bc-arm {
  0%, 100% { transform: rotate(-10deg) translateY(0); }
  50% { transform: rotate(10deg) translateY(-5px); }
}
@keyframes bc-cloth {
  0% { transform: translateY(0) rotate(-5deg); }
  50% { transform: translateY(-3px) rotate(5deg); }
  100% { transform: translateY(0) rotate(-5deg); }
}
@keyframes bc-sparkle {
  0% { opacity: 0.2; transform: scale(0.5); }
  50% { opacity: 1; transform: scale(1.5); }
  100% { opacity: 0.2; transform: scale(0.5); }
}

.scn-moon-and-tide {
  background: linear-gradient(180deg, #0a0a2e 0%, #1a1a4e 40%, #2a2a6e 80%, #1a1a3e 100%), radial-gradient(ellipse at 50% 80%, #3a3a7e 0%, transparent 60%);
}
.scn-moon-and-tide .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #0a0a2e 0%, #151545 100%);
  animation: mt-sky 12s ease-in-out infinite alternate;
}
.scn-moon-and-tide .moon {
  position: absolute; top: 10%; left: 70%;
  width: 70px; height: 70px;
  background: radial-gradient(circle, #e0e8f0 0%, #a0b0d0 60%, #7080a0 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(160,176,208,0.4), 0 0 80px 40px rgba(160,176,208,0.2);
  animation: mt-moon 20s ease-in-out infinite;
}
.scn-moon-and-tide .stars {
  position: absolute; inset: 0 0 50% 0;
  background: radial-gradient(2px 2px at 10% 20%, #fff 0%, transparent 100%),
              radial-gradient(1.5px 1.5px at 30% 40%, #ddd 0%, transparent 100%),
              radial-gradient(2px 2px at 60% 10%, #fff 0%, transparent 100%),
              radial-gradient(1px 1px at 80% 30%, #eee 0%, transparent 100%),
              radial-gradient(2px 2px at 90% 70%, #fff 0%, transparent 100%),
              radial-gradient(1.5px 1.5px at 20% 80%, #ddd 0%, transparent 100%),
              radial-gradient(2px 2px at 50% 60%, #fff 0%, transparent 100%),
              radial-gradient(1px 1px at 70% 90%, #eee 0%, transparent 100%);
  animation: mt-twinkle 4s ease-in-out infinite alternate;
}
.scn-moon-and-tide .sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #1a2a4a 0%, #0a1a2a 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.6);
  animation: mt-sea 8s ease-in-out infinite alternate;
}
.scn-moon-and-tide .coral {
  position: absolute; bottom: 15%; left: 10%; width: 40px; height: 50px;
  background: linear-gradient(135deg, #c8553d 0%, #7a2a1a 60%, #3a1a0a 100%);
  border-radius: 60% 40% 50% 30% / 60% 50% 40% 50%;
  box-shadow: 0 0 10px 2px rgba(200,85,61,0.3);
  transform: rotate(-10deg);
  animation: mt-coral 6s ease-in-out infinite;
}
.scn-moon-and-tide .nautilus {
  position: absolute; bottom: 25%; left: 45%; width: 80px; height: 40px;
  background: linear-gradient(135deg, #2a3a4a 0%, #1a2a3a 100%);
  border-radius: 40% 60% 50% 50% / 50% 50% 60% 40%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.5);
  animation: mt-nautilus 10s ease-in-out infinite alternate;
}
.scn-moon-and-tide .reflection {
  position: absolute; bottom: 20%; left: 65%; width: 20px; height: 60px;
  background: linear-gradient(180deg, rgba(160,176,208,0.3) 0%, transparent 100%);
  border-radius: 50%;
  transform: scaleY(0.5);
  animation: mt-reflection 6s ease-in-out infinite alternate;
}
@keyframes mt-sky {
  0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; }
}
@keyframes mt-moon {
  0% { transform: translateX(0) scale(1); } 50% { transform: translateX(5px) scale(1.02); } 100% { transform: translateX(-5px) scale(0.98); }
}
@keyframes mt-twinkle {
  0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.7; }
}
@keyframes mt-sea {
  0% { transform: translateY(0); } 50% { transform: translateY(3px); } 100% { transform: translateY(-2px); }
}
@keyframes mt-coral {
  0% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-8deg) translateY(-2px); } 100% { transform: rotate(-12deg) translateY(0); }
}
@keyframes mt-nautilus {
  0% { transform: rotate(0deg) translateX(0); } 50% { transform: rotate(1deg) translateX(3px); } 100% { transform: rotate(-1deg) translateX(-3px); }
}
@keyframes mt-reflection {
  0% { opacity: 0.3; transform: scaleY(0.5); } 50% { opacity: 0.6; transform: scaleY(0.55); } 100% { opacity: 0.4; transform: scaleY(0.45); }
}

.scn-night-passes {
  background: linear-gradient(180deg, #0a0a2e 0%, #1a1a4e 40%, #2a2a5e 100%), radial-gradient(ellipse at 50% 30%, #3a3a7e 0%, transparent 70%);
}
.scn-night-passes .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #0a0a2e 0%, #151545 100%);
  animation: np-sky 15s ease-in-out infinite alternate;
}
.scn-night-passes .moon {
  position: absolute; top: 12%; left: 60%;
  width: 60px; height: 60px;
  background: radial-gradient(circle, #e0e8f0 0%, #a0b0d0 60%, #7080a0 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 15px rgba(160,176,208,0.4);
  animation: np-moon 18s ease-in-out infinite;
}
.scn-night-passes .sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #1a2a4a 0%, #0a1a2a 100%);
  box-shadow: inset 0 6px 15px rgba(0,0,0,0.5);
  animation: np-sea 10s ease-in-out infinite alternate;
}
.scn-night-passes .beach {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #3a4a3a 0%, #2a3a2a 100%);
  border-radius: 20% 80% 0 0 / 30% 60% 0 0;
  box-shadow: inset 0 4px 10px rgba(0,0,0,0.4);
  animation: np-beach 12s ease-in-out infinite alternate;
}
.scn-night-passes .palms {
  position: absolute; bottom: 28%; left: 10%; width: 30px; height: 80px;
  background: linear-gradient(135deg, #2a3a2a 0%, #1a2a1a 100%);
  border-radius: 10% 10% 50% 50% / 20% 20% 80% 80%;
  transform-origin: bottom center;
  animation: np-palm 6s ease-in-out infinite;
}
.scn-night-passes .nautilus {
  position: absolute; bottom: 18%; left: 45%; width: 90px; height: 35px;
  background: linear-gradient(135deg, #3a4a5a 0%, #1a2a3a 100%);
  border-radius: 30% 50% 40% 50% / 50% 40% 60% 50%;
  box-shadow: 0 3px 10px rgba(0,0,0,0.6);
  animation: np-nautilus 8s ease-in-out infinite alternate;
}
.scn-night-passes .hatch-glow {
  position: absolute; bottom: 22%; left: 48%; width: 12px; height: 12px;
  background: radial-gradient(circle, #ffd060 0%, #b08040 70%);
  border-radius: 50%;
  box-shadow: 0 0 20px 5px #b08040, 0 0 40px 10px rgba(176,128,64,0.4);
  animation: np-hatch 3s ease-in-out infinite alternate;
}
@keyframes np-sky {
  0% { opacity: 0.6; } 50% { opacity: 0.9; } 100% { opacity: 0.7; }
}
@keyframes np-moon {
  0% { transform: translateX(0) scale(1); } 50% { transform: translateX(-4px) scale(1.01); } 100% { transform: translateX(4px) scale(0.99); }
}
@keyframes np-sea {
  0% { transform: translateY(0); } 50% { transform: translateY(2px); } 100% { transform: translateY(-1px); }
}
@keyframes np-beach {
  0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(1px); }
}
@keyframes np-palm {
  0% { transform: rotate(-5deg); } 50% { transform: rotate(3deg); } 100% { transform: rotate(-4deg); }
}
@keyframes np-nautilus {
  0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(1deg) translateY(-2px); } 100% { transform: rotate(-1deg) translateY(1px); }
}
@keyframes np-hatch {
  0% { box-shadow: 0 0 15px 3px #b08040, 0 0 30px 6px rgba(176,128,64,0.3); opacity: 0.8; }
  50% { box-shadow: 0 0 25px 8px #ffd060, 0 0 50px 15px rgba(255,208,96,0.5); opacity: 1; }
  100% { box-shadow: 0 0 18px 4px #b08040, 0 0 35px 8px rgba(176,128,64,0.35); opacity: 0.85; }
}

.scn-morning-view {
  background: linear-gradient(180deg, #2a3a5a 0%, #4a6a8a 30%, #8aaac0 60%, #c0d0d8 100%), radial-gradient(ellipse at 50% 100%, #a0b8c8 0%, transparent 80%);
}
.scn-morning-view .sky-dawn {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #1a2a4a 0%, #8aaac0 100%);
  animation: mv-sky 20s ease-in-out infinite alternate;
}
.scn-morning-view .sun {
  position: absolute; top: 25%; left: 60%;
  width: 50px; height: 50px;
  background: radial-gradient(circle, #ffe8a0 0%, #f0c060 60%, #d09030 100%);
  border-radius: 50%;
  box-shadow: 0 0 60px 30px rgba(240,192,96,0.3), 0 0 100px 50px rgba(208,144,48,0.15);
  animation: mv-sun 30s ease-in-out infinite alternate;
}
.scn-morning-view .mist {
  position: absolute; top: 0; left: 0; right: 0; bottom: 40%;
  background: linear-gradient(180deg, rgba(200,210,220,0.6) 0%, transparent 100%);
  filter: blur(10px);
  animation: mv-mist 25s ease-in-out infinite alternate;
}
.scn-morning-view .island {
  position: absolute; bottom: 20%; left: 20%; width: 60%; height: 30%;
  background: linear-gradient(180deg, #2a4a3a 0%, #1a3a2a 100%);
  border-radius: 30% 70% 20% 80% / 40% 60% 40% 60%;
  box-shadow: inset 0 4px 15px rgba(0,0,0,0.4);
  animation: mv-island 15s ease-in-out infinite alternate;
}
.scn-morning-view .beach {
  position: absolute; bottom: 20%; left: 25%; width: 50%; height: 8%;
  background: linear-gradient(180deg, #b0a080 0%, #8a7a5a 100%);
  border-radius: 20% 20% 0 0 / 50% 50% 0 0;
  box-shadow: inset 0 2px 6px rgba(0,0,0,0.3);
  animation: mv-beach 10s ease-in-out infinite alternate;
}
.scn-morning-view .sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #6a8a9a 0%, #3a5a6a 100%);
  box-shadow: inset 0 6px 15px rgba(0,0,0,0.3);
  animation: mv-sea 8s ease-in-out infinite alternate;
}
.scn-morning-view .figure,
.scn-morning-view .figure-two {
  position: absolute; bottom: 28%; width: 14px; height: 30px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
}
.scn-morning-view .figure {
  left: 40%;
  animation: mv-figure 6s ease-in-out infinite;
}
.scn-morning-view .figure-two {
  left: 52%;
  animation: mv-figure-two 7s ease-in-out infinite;
  animation-delay: 2s;
}
@keyframes mv-sky {
  0% { opacity: 0.5; } 50% { opacity: 0.8; } 100% { opacity: 0.6; }
}
@keyframes mv-sun {
  0% { transform: translateY(0) scale(0.9); opacity: 0.6; } 50% { transform: translateY(-5px) scale(1); opacity: 0.9; } 100% { transform: translateY(3px) scale(0.95); opacity: 0.7; }
}
@keyframes mv-mist {
  0% { opacity: 0.7; transform: translateX(0); } 50% { opacity: 0.3; transform: translateX(5px); } 100% { opacity: 0.5; transform: translateX(-5px); }
}
@keyframes mv-island {
  0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); }
}
@keyframes mv-beach {
  0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; }
}
@keyframes mv-sea {
  0% { transform: translateY(0); } 50% { transform: translateY(2px); } 100% { transform: translateY(-1px); }
}
@keyframes mv-figure {
  0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(3px) rotate(-2deg); } 50% { transform: translateX(6px) rotate(1deg); } 75% { transform: translateX(3px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); }
}
@keyframes mv-figure-two {
  0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-2px) rotate(2deg); } 50% { transform: translateX(-5px) rotate(-1deg); } 75% { transform: translateX(-2px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); }
}

.scn-papuan-appearance {
  background: linear-gradient(180deg, #2a3a5a 0%, #4a6a8a 30%, #8aaac0 60%, #c0d0d8 100%), radial-gradient(ellipse at 50% 0%, #a0b8c8 0%, transparent 80%);
}
.scn-papuan-appearance .sky-dawn {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #1a2a4a 0%, #8aaac0 100%);
  animation: pa-sky 18s ease-in-out infinite alternate;
}
.scn-papuan-appearance .sun {
  position: absolute; top: 20%; left: 55%;
  width: 55px; height: 55px;
  background: radial-gradient(circle, #ffe8a0 0%, #f0c060 60%, #d09030 100%);
  border-radius: 50%;
  box-shadow: 0 0 50px 25px rgba(240,192,96,0.3), 0 0 80px 40px rgba(208,144,48,0.15);
  animation: pa-sun 35s ease-in-out infinite alternate;
}
.scn-papuan-appearance .sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #5a7a8a 0%, #2a4a5a 100%);
  box-shadow: inset 0 6px 15px rgba(0,0,0,0.3);
  animation: pa-sea 11s ease-in-out infinite alternate;
}
.scn-papuan-appearance .beach {
  position: absolute; bottom: 22%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #b0a080 0%, #8a7a5a 100%);
  border-radius: 30% 70% 0 0 / 40% 60% 0 0;
  box-shadow: inset 0 4px 12px rgba(0,0,0,0.3);
  animation: pa-beach 13s ease-in-out infinite alternate;
}
.scn-papuan-appearance .figure-group,
.scn-papuan-appearance .figure-two,
.scn-papuan-appearance .figure-three {
  position: absolute; bottom: 28%; width: 16px; height: 36px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
}
.scn-papuan-appearance .figure-group {
  left: 35%;
  width: 50px; height: 40px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  animation: pa-group 5s ease-in-out infinite;
}
.scn-papuan-appearance .figure-two {
  left: 50%;
  animation: pa-single 6s ease-in-out infinite;
  animation-delay: 1s;
}
.scn-papuan-appearance .figure-three {
  left: 62%;
  animation: pa-single 7s ease-in-out infinite;
  animation-delay: 2.5s;
}
.scn-papuan-appearance .palm {
  position: absolute; bottom: 30%; left: 78%; width: 25px; height: 70px;
  background: linear-gradient(135deg, #2a3a2a 0%, #1a2a1a 100%);
  border-radius: 10% 10% 50% 50% / 20% 20% 80% 80%;
  transform-origin: bottom center;
  animation: pa-palm 8s ease-in-out infinite;
}
@keyframes pa-sky {
  0% { opacity: 0.5; } 50% { opacity: 0.8; } 100% { opacity: 0.6; }
}
@keyframes pa-sun {
  0% { transform: translateY(0) scale(0.9); opacity: 0.6; } 50% { transform: translateY(-6px) scale(1); opacity: 0.9; } 100% { transform: translateY(4px) scale(0.95); opacity: 0.7; }
}
@keyframes pa-sea {
  0% { transform: translateY(0); } 50% { transform: translateY(2px); } 100% { transform: translateY(-1px); }
}
@keyframes pa-beach {
  0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(1px); }
}
@keyframes pa-group {
  0% { transform: translateX(0) scale(1); } 25% { transform: translateX(2px) scale(1.01); } 50% { transform: translateX(-1px) scale(0.99); } 75% { transform: translateX(1px) scale(1); } 100% { transform: translateX(0) scale(1); }
}
@keyframes pa-single {
  0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(3px) rotate(-2deg); } 50% { transform: translateX(-2px) rotate(3deg); } 75% { transform: translateX(2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); }
}
@keyframes pa-palm {
  0% { transform: rotate(-4deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-3deg); }
}

.scn-waiting-for-tide {
  background: 
    linear-gradient(180deg, #0d1b2a 0%, #1b2a3a 30%, #2a3a4a 70%, #1a2a3a 100%),
    radial-gradient(ellipse at 50% 80%, #1b2a3a 0%, transparent 60%);
}
.scn-waiting-for-tide .wall {
  position: absolute; inset: 0; 
  background: linear-gradient(135deg, #0d1b2a 0%, #1a2a3a 100%);
  opacity: 0.8;
}
.scn-waiting-for-tide .window-frame {
  position: absolute; top: 12%; left: 60%; width: 28%; height: 30%;
  border: 6px solid #4a5a6a; border-radius: 4px;
  background: transparent;
  box-shadow: inset 0 0 20px rgba(0,20,40,0.6);
}
.scn-waiting-for-tide .sea-view {
  position: absolute; top: 13%; left: 61%; width: 26%; height: 28%;
  background: linear-gradient(180deg, #0a2a4a 0%, #0a3a5a 50%, #1a4a6a 100%);
  border-radius: 2px;
  animation: wft-sea 20s ease-in-out infinite;
}
.scn-waiting-for-tide .clock {
  position: absolute; top: 18%; left: 18%; width: 12%; height: 14%;
  background: radial-gradient(circle, #f0e0a0 0%, #c8b070 50%, #8a7a4a 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 12px rgba(240,224,160,0.3);
  animation: wft-clock 60s linear infinite;
}
.scn-waiting-for-tide .chair {
  position: absolute; bottom: 24%; left: 14%; width: 18%; height: 20%;
  background: linear-gradient(135deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%;
  box-shadow: 0 8px 12px rgba(0,0,0,0.5);
}
.scn-waiting-for-tide .figure-waiting {
  position: absolute; bottom: 26%; left: 16%; width: 10%; height: 28%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: wft-figure 6s ease-in-out infinite;
}
.scn-waiting-for-tide .table {
  position: absolute; bottom: 18%; left: 12%; width: 22%; height: 6%;
  background: linear-gradient(135deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 4px;
}
.scn-waiting-for-tide .lamp-glow {
  position: absolute; bottom: 30%; left: 22%; width: 8%; height: 8%;
  background: radial-gradient(circle, #f0d080 0%, #c8a050 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 50px 20px rgba(240,208,128,0.4);
  animation: wft-lamp 3s ease-in-out infinite alternate;
}
@keyframes wft-sea {
  0% { background-position: 0% 0%; opacity: 0.7; }
  50% { background-position: 10% 5%; opacity: 0.9; }
  100% { background-position: 0% 0%; opacity: 0.7; }
}
@keyframes wft-clock {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}
@keyframes wft-figure {
  0% { transform: translateY(0) rotate(-1deg); }
  25% { transform: translateY(-2px) rotate(0deg); }
  50% { transform: translateY(0) rotate(1deg); }
  75% { transform: translateY(-1px) rotate(0deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes wft-lamp {
  0% { box-shadow: 0 0 30px 10px rgba(240,208,128,0.3); opacity: 0.8; }
  100% { box-shadow: 0 0 60px 25px rgba(240,208,128,0.5); opacity: 1; }
}

.scn-nemo-appears {
  background: 
    linear-gradient(180deg, #f5e6ca 0%, #e0c9a6 40%, #c8b08a 100%),
    radial-gradient(ellipse at 40% 60%, #ffe8c0 0%, transparent 70%);
}
.scn-nemo-appears .cabin-wall {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #d4c0a0 0%, #b8a080 100%);
  opacity: 0.6;
}
.scn-nemo-appears .desk {
  position: absolute; bottom: 20%; left: 20%; width: 40%; height: 12%;
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%);
  border-radius: 4px;
  box-shadow: 0 6px 12px rgba(0,0,0,0.3);
}
.scn-nemo-appears .chart {
  position: absolute; bottom: 30%; left: 25%; width: 30%; height: 18%;
  background: linear-gradient(135deg, #d4c8a0 0%, #b8a880 50%, #a09070 100%);
  border-radius: 2px;
  transform: rotate(-5deg);
  animation: na-chart 8s ease-in-out infinite;
}
.scn-nemo-appears .hatch {
  position: absolute; top: 10%; right: 12%; width: 20%; height: 20%;
  background: radial-gradient(circle, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50%;
  border: 4px solid #4a3a2a;
  box-shadow: inset 0 0 15px rgba(0,0,0,0.6);
  animation: na-hatch 2s ease-in-out infinite alternate;
}
.scn-nemo-appears .nemo-silhouette {
  position: absolute; bottom: 22%; left: 45%; width: 12%; height: 40%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  box-shadow: -4px 0 8px rgba(0,0,0,0.4);
  animation: na-nemo 12s ease-in-out infinite;
}
.scn-nemo-appears .light-source {
  position: absolute; top: 18%; left: 35%; width: 25%; height: 25%;
  background: radial-gradient(circle, #ffe8c0 0%, #ffd080 30%, transparent 70%);
  border-radius: 50%;
  opacity: 0.7;
  animation: na-light 5s ease-in-out infinite alternate;
}
.scn-nemo-appears .glow {
  position: absolute; top: 0; left: 30%; width: 40%; height: 60%;
  background: radial-gradient(ellipse at 50% 30%, rgba(255,224,160,0.2) 0%, transparent 100%);
  pointer-events: none;
}
@keyframes na-chart {
  0% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(-2deg) translateY(-2px); }
  100% { transform: rotate(-5deg) translateY(0); }
}
@keyframes na-hatch {
  0% { transform: scale(1); box-shadow: inset 0 0 15px rgba(0,0,0,0.6); }
  100% { transform: scale(1.02); box-shadow: inset 0 0 25px rgba(0,0,0,0.8); }
}
@keyframes na-nemo {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-2px) rotate(1deg); }
  50% { transform: translateY(0) rotate(-1deg); }
  75% { transform: translateY(-1px) rotate(0deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes na-light {
  0% { opacity: 0.6; transform: scale(0.95); }
  100% { opacity: 0.8; transform: scale(1.05); }
}

.scn-electric-railing {
  background: 
    linear-gradient(180deg, #e8e0d8 0%, #d0c8b8 40%, #b0a898 100%),
    radial-gradient(ellipse at 50% 90%, #c8c0b0 0%, transparent 60%);
}
.scn-electric-railing .platform {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%);
  border-radius: 4px 4px 0 0;
}
.scn-electric-railing .railing-bar {
  position: absolute; bottom: 35%; left: 10%; right: 10%; height: 4%;
  background: linear-gradient(90deg, #5a4a3a 0%, #7a6a5a 50%, #5a4a3a 100%);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: er-rail 2s ease-in-out infinite alternate;
}
.scn-electric-railing .hand-touch {
  position: absolute; bottom: 40%; left: 40%; width: 6%; height: 10%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 20% 20%;
  transform-origin: bottom center;
  animation: er-hand 0.5s ease-in-out infinite;
}
.scn-electric-railing .spark-1 {
  position: absolute; bottom: 42%; left: 38%; width: 3%; height: 3%;
  background: radial-gradient(circle, #60c0ff 0%, #2080ff 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px rgba(96,192,255,0.8);
  animation: er-spark 0.3s ease-in-out infinite alternate;
}
.scn-electric-railing .spark-2 {
  position: absolute; bottom: 44%; left: 44%; width: 2%; height: 2%;
  background: radial-gradient(circle, #a0e0ff 0%, #40a0ff 50%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 15px 4px rgba(160,224,255,0.8);
  animation: er-spark 0.25s ease-in-out infinite alternate-reverse;
}
.scn-electric-railing .figure-flying {
  position: absolute; bottom: 30%; left: 30%; width: 12%; height: 24%;
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform: rotate(-30deg) translateY(10px);
  animation: er-fly 0.8s ease-in-out infinite;
}
.scn-electric-railing .shockwave {
  position: absolute; bottom: 36%; left: 28%; width: 44%; height: 6%;
  background: radial-gradient(ellipse at 50% 50%, rgba(160,224,255,0.3) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(8px);
  animation: er-wave 0.4s ease-out infinite;
}
@keyframes er-rail {
  0% { box-shadow: 0 2px 4px rgba(0,0,0,0.3); }
  100% { box-shadow: 0 2px 12px 4px rgba(96,192,255,0.6); }
}
@keyframes er-hand {
  0% { transform: rotate(0deg) translateY(0); }
  50% { transform: rotate(10deg) translateY(-4px); }
  100% { transform: rotate(0deg) translateY(0); }
}
@keyframes er-spark {
  0% { transform: scale(0.8); opacity: 0.7; }
  100% { transform: scale(1.2); opacity: 1; }
}
@keyframes er-fly {
  0% { transform: rotate(-30deg) translateY(10px); opacity: 1; }
  50% { transform: rotate(-20deg) translateY(20px); opacity: 0.8; }
  100% { transform: rotate(-30deg) translateY(10px); opacity: 1; }
}
@keyframes er-wave {
  0% { transform: scaleX(0.5); opacity: 0.8; }
  100% { transform: scaleX(1.5); opacity: 0; }
}

.scn-ned-struck {
  background: 
    linear-gradient(180deg, #d8d0c8 0%, #c0b8a8 40%, #a09888 100%),
    radial-gradient(ellipse at 50% 70%, #e0d8c8 0%, transparent 60%);
}
.scn-ned-struck .deck {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 4px 4px 0 0;
}
.scn-ned-struck .cable {
  position: absolute; bottom: 40%; left: 20%; right: 20%; height: 3%;
  background: linear-gradient(90deg, #4a3a2a 0%, #6a5a4a 50%, #4a3a2a 100%);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.4);
  animation: ns-cable 0.3s ease-in-out infinite alternate;
}
.scn-ned-struck .ned-silhouette {
  position: absolute; bottom: 28%; left: 42%; width: 16%; height: 40%;
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: ns-ned 0.5s ease-in-out infinite;
}
.scn-ned-struck .lightning-bolt {
  position: absolute; top: 5%; left: 45%; width: 10%; height: 55%;
  background: linear-gradient(135deg, transparent 40%, #80d0ff 42%, transparent 44%),
              linear-gradient(225deg, transparent 40%, #80d0ff 42%, transparent 44%);
  background-size: 100% 100%;
  animation: ns-bolt 0.2s steps(2) infinite;
  opacity: 0.9;
}
.scn-ned-struck .spark-a {
  position: absolute; bottom: 45%; left: 48%; width: 4%; height: 4%;
  background: radial-gradient(circle, #c0e8ff 0%, #60b0ff 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 25px 8px rgba(96,176,255,0.8);
  animation: ns-spark 0.15s ease-in-out infinite alternate;
}
.scn-ned-struck .spark-b {
  position: absolute; bottom: 50%; left: 38%; width: 3%; height: 3%;
  background: radial-gradient(circle, #e0f0ff 0%, #90c0ff 50%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px rgba(144,192,255,0.8);
  animation: ns-spark 0.2s ease-in-out infinite alternate-reverse;
}
.scn-ned-struck .floor-glare {
  position: absolute; bottom: 20%; left: 30%; width: 40%; height: 10%;
  background: radial-gradient(ellipse at 50% 0%, rgba(128,208,255,0.3) 0%, transparent 100%);
  filter: blur(6px);
  animation: ns-glare 1s ease-in-out infinite alternate;
}
@keyframes ns-cable {
  0% { box-shadow: 0 2px 4px rgba(0,0,0,0.4); }
  100% { box-shadow: 0 2px 20px 6px rgba(128,208,255,0.6); }
}
@keyframes ns-ned {
  0% { transform: translateY(0) rotate(-2deg); }
  25% { transform: translateY(-4px) rotate(0deg); }
  50% { transform: translateY(0) rotate(2deg); }
  75% { transform: translateY(-3px) rotate(0deg); }
  100% { transform: translateY(0) rotate(-2deg); }
}
@keyframes ns-bolt {
  0% { opacity: 0.9; filter: brightness(1); }
  50% { opacity: 0.2; filter: brightness(1.5); }
  100% { opacity: 0.9; filter: brightness(1); }
}
@keyframes ns-spark {
  0% { transform: scale(0.8); opacity: 0.6; }
  100% { transform: scale(1.3); opacity: 1; }
}
@keyframes ns-glare {
  0% { opacity: 0.3; transform: scaleY(0.8); }
  100% { opacity: 0.6; transform: scaleY(1.2); }
}

/* mocha-ruins */
.scn-mocha-ruins { background: linear-gradient(180deg, #87CEEB 0%, #B0E0E6 40%, #F5DEB3 70%, #D2B48C 100%), radial-gradient(ellipse at 50% 0%, #FFF8DC 0%, transparent 60%); }
.scn-mocha-ruins .sky { position: absolute; inset: 0 0 55% 0; background: linear-gradient(180deg, #87CEEB 0%, #B0E0E6 50%, #E0F0FF 100%); animation: mr-sky 20s ease-in-out infinite alternate; }
.scn-mocha-ruins .sun { position: absolute; top: 8%; left: 62%; width: 60px; height: 60px; background: radial-gradient(circle, #FFF8B0 0%, #FFD700 40%, transparent 70%); border-radius: 50%; box-shadow: 0 0 80px 40px rgba(255,215,0,0.3); animation: mr-sun 30s linear infinite; }
.scn-mocha-ruins .ruins-wall { position: absolute; bottom: 35%; left: 15%; width: 30%; height: 20%; background: linear-gradient(180deg, #C2A877 0%, #8B7355 100%); border-radius: 5% 5% 0 0; clip-path: polygon(0% 100%, 0% 40%, 10% 30%, 10% 0%, 90% 0%, 90% 30%, 100% 40%, 100% 100%); box-shadow: inset 0 -10px 20px rgba(0,0,0,0.2); animation: mr-ruins 12s ease-in-out infinite alternate; }
.scn-mocha-ruins .ruins-column { position: absolute; bottom: 30%; right: 25%; width: 12px; height: 40%; background: linear-gradient(180deg, #C2A877 0%, #8B7355 100%); border-radius: 4px 4px 0 0; box-shadow: 0 8px 12px rgba(0,0,0,0.3); animation: mr-column 14s ease-in-out infinite alternate; }
.scn-mocha-ruins .date-palm { position: absolute; bottom: 38%; left: 40%; width: 8px; height: 25%; background: linear-gradient(180deg, #5C4033 0%, #3E2723 100%); border-radius: 4px; transform-origin: bottom center; animation: mr-palm 6s ease-in-out infinite; }
.scn-mocha-ruins .date-palm::after { content: ''; position: absolute; top: -20px; left: -20px; width: 50px; height: 30px; background: radial-gradient(ellipse at 50% 100%, #228B22 0%, #006400 60%, transparent 80%); border-radius: 50%; box-shadow: 0 8px 12px rgba(0,0,0,0.1); }
.scn-mocha-ruins .ground { position: absolute; bottom: 0; left: 0; right: 0; height: 35%; background: linear-gradient(180deg, #D2B48C 0%, #C4A882 30%, #A0845C 100%); border-radius: 20% 40% 0 0 / 10% 15% 0 0; box-shadow: inset 0 20px 30px rgba(0,0,0,0.3); animation: mr-ground 18s ease-in-out infinite alternate; }
.scn-mocha-ruins .shadow { position: absolute; bottom: 0; left: 0; right: 0; height: 20%; background: linear-gradient(180deg, rgba(0,0,0,0.2) 0%, transparent 100%); animation: mr-shadow 15s ease-in-out infinite alternate; }
@keyframes mr-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes mr-sun { 0% { transform: translateX(0) scale(1); } 50% { transform: translateX(10px) scale(1.05); } 100% { transform: translateX(-10px) scale(0.95); } }
@keyframes mr-ruins { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-3px) scale(0.98); } 100% { transform: translateY(2px) scale(1.02); } }
@keyframes mr-column { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(0.5deg); } 100% { transform: translateY(0) rotate(-0.5deg); } }
@keyframes mr-palm { 0% { transform: rotate(-2deg); } 25% { transform: rotate(3deg); } 50% { transform: rotate(-1deg); } 75% { transform: rotate(4deg); } 100% { transform: rotate(-2deg); } }
@keyframes mr-ground { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(0); } }
@keyframes mr-shadow { 0% { opacity: 0.3; } 50% { opacity: 0.6; } 100% { opacity: 0.2; } }

/* eastern-shore-tree-forms */
.scn-eastern-shore-tree-forms { background: linear-gradient(180deg, #006994 0%, #0088A8 30%, #00ACD0 60%, #30D5C8 80%), radial-gradient(ellipse at 50% 20%, rgba(255,255,200,0.2) 0%, transparent 60%); }
.scn-eastern-shore-tree-forms .water-bg { position: absolute; inset: 0; background: linear-gradient(180deg, #006994 0%, #006994 40%, #0088A8 70%, #00ACD0 100%); animation: es-water 25s linear infinite alternate; }
.scn-eastern-shore-tree-forms .sun-rays { position: absolute; top: 0; left: 20%; width: 60%; height: 100%; background: linear-gradient(180deg, rgba(255,255,200,0.3) 0%, transparent 70%); clip-path: polygon(20% 0%, 80% 0%, 60% 100%, 40% 100%); animation: es-rays 12s ease-in-out infinite alternate; }
.scn-eastern-shore-tree-forms .coral-tree-a { position: absolute; bottom: 20%; left: 20%; width: 18px; height: 50%; background: linear-gradient(180deg, #E0A060 0%, #C08030 100%); border-radius: 50% 50% 30% 30% / 30% 30% 70% 70%; transform-origin: bottom center; box-shadow: inset 0 -20px 20px rgba(0,0,0,0.2); animation: es-treeA 8s ease-in-out infinite; }
.scn-eastern-shore-tree-forms .coral-tree-b { position: absolute; bottom: 25%; left: 55%; width: 14px; height: 40%; background: linear-gradient(180deg, #D08050 0%, #A06030 100%); border-radius: 50% 50% 40% 40% / 40% 40% 60% 60%; transform-origin: bottom center; box-shadow: inset 0 -15px 15px rgba(0,0,0,0.2); animation: es-treeB 10s ease-in-out infinite 2s; }
.scn-eastern-shore-tree-forms .coral-branch { position: absolute; bottom: 35%; left: 35%; width: 8px; height: 30%; background: linear-gradient(180deg, #F0A060 0%, #C07030 100%); border-radius: 40% 40% 20% 20%; transform: rotate(30deg); transform-origin: bottom center; box-shadow: 0 2px 6px rgba(0,0,0,0.3); animation: es-branch 6s ease-in-out infinite 1s; }
.scn-eastern-shore-tree-forms .seafloor { position: absolute; bottom: 0; left: 0; right: 0; height: 20%; background: linear-gradient(180deg, #1A4A3A 0%, #0D2B1F 100%); border-radius: 20% 30% 0 0 / 50% 40% 0 0; box-shadow: inset 0 15px 20px rgba(0,0,0,0.5); animation: es-floor 20s ease-in-out infinite alternate; }
.scn-eastern-shore-tree-forms .bubbles { position: absolute; bottom: 30%; left: 45%; width: 6px; height: 6px; background: rgba(255,255,255,0.6); border-radius: 50%; box-shadow: 0 -20px 0 2px rgba(255,255,255,0.4), 30px -40px 0 1px rgba(255,255,255,0.3); animation: es-bubbles 8s linear infinite; }
@keyframes es-water { 0% { transform: translateY(0); } 50% { transform: translateY(-5px); } 100% { transform: translateY(3px); } }
@keyframes es-rays { 0% { opacity: 0.6; transform: scaleY(1); } 50% { opacity: 1; transform: scaleY(1.1); } 100% { opacity: 0.7; transform: scaleY(0.95); } }
@keyframes es-treeA { 0% { transform: rotate(-3deg) scaleY(1); } 25% { transform: rotate(2deg) scaleY(1.02); } 50% { transform: rotate(-1deg) scaleY(0.98); } 75% { transform: rotate(4deg) scaleY(1.01); } 100% { transform: rotate(-3deg) scaleY(1); } }
@keyframes es-treeB { 0% { transform: rotate(2deg) scaleY(1); } 25% { transform: rotate(-1deg) scaleY(0.97); } 50% { transform: rotate(4deg) scaleY(1.03); } 75% { transform: rotate(0deg) scaleY(1); } 100% { transform: rotate(2deg) scaleY(1); } }
@keyframes es-branch { 0% { transform: rotate(30deg) scaleY(1); } 50% { transform: rotate(32deg) scaleY(1.05); } 100% { transform: rotate(28deg) scaleY(0.95); } }
@keyframes es-floor { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes es-bubbles { 0% { transform: translate(0, 0); opacity: 0.8; } 100% { transform: translate(10px, -80px); opacity: 0; } }

/* hours-at-window */
.scn-hours-at-window { background: linear-gradient(135deg, #2C2C3A 0%, #1A1A28 50%, #2A2A3A 100%), radial-gradient(circle at 50% 60%, #4A4A5A 0%, transparent 60%); }
.scn-hours-at-window .window-frame { position: absolute; top: 5%; left: 10%; width: 80%; height: 90%; border: 12px solid #3A2A1A; background: linear-gradient(180deg, #0A1A3A 0%, #1A2A5A 50%, #2A3A6A 100%); border-radius: 4px 4px 8px 8px; box-shadow: inset 0 0 40px rgba(0,0,0,0.5), 0 8px 20px rgba(0,0,0,0.6); animation: hw-frame 15s ease-in-out infinite alternate; }
.scn-hours-at-window .wall-interior { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: linear-gradient(180deg, #4A3A2A 0%, #3A2A1A 100%); clip-path: polygon(0% 0%, 5% 5%, 5% 95%, 0% 100%, 100% 100%, 95% 95%, 95% 5%, 100% 0%); animation: hw-wall 20s ease-in-out infinite; }
.scn-hours-at-window .light-beam { position: absolute; top: 30%; left: 35%; width: 30%; height: 60%; background: linear-gradient(180deg, rgba(255,255,200,0.4) 0%, transparent 100%); border-radius: 50% 50% 0 0 / 80% 80% 0 0; transform: rotate(-5deg); filter: blur(8px); animation: hw-beam 6s ease-in-out infinite alternate; }
.scn-hours-at-window .fish-a { position: absolute; bottom: 40%; left: 30%; width: 20px; height: 10px; background: linear-gradient(90deg, #D08040 0%, #B06030 100%); border-radius: 50% 50% 40% 40%; box-shadow: -4px 0 0 2px #A05020; animation: hw-fishA 18s linear infinite; }
.scn-hours-at-window .fish-b { position: absolute; bottom: 50%; left: 50%; width: 16px; height: 8px; background: linear-gradient(90deg, #C07050 0%, #A05030 100%); border-radius: 50% 50% 40% 40%; box-shadow: -3px 0 0 1px #804020; animation: hw-fishB 22s linear infinite 5s; }
.scn-hours-at-window .seaweed { position: absolute; bottom: 5%; left: 20%; width: 6px; height: 30%; background: linear-gradient(180deg, #206020 0%, #104010 100%); border-radius: 50% 50% 20% 20% / 40% 40% 60% 60%; transform-origin: bottom center; box-shadow: 15px -5px 0 0 #1A4A1A; animation: hw-weed 4s ease-in-out infinite; }
@keyframes hw-frame { 0% { transform: translateX(0); } 50% { transform: translateX(2px); } 100% { transform: translateX(-2px); } }
@keyframes hw-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.95; } }
@keyframes hw-beam { 0% { transform: rotate(-5deg) scaleY(1); opacity: 0.6; } 50% { transform: rotate(-3deg) scaleY(1.1); opacity: 1; } 100% { transform: rotate(-7deg) scaleY(0.9); opacity: 0.5; } }
@keyframes hw-fishA { 0% { transform: translateX(-50px) translateY(0) rotate(0deg); } 25% { transform: translateX(30px) translateY(-5px) rotate(10deg); } 50% { transform: translateX(80px) translateY(0) rotate(0deg); } 75% { transform: translateX(130px) translateY(3px) rotate(-5deg); } 100% { transform: translateX(200px) translateY(0) rotate(0deg); } }
@keyframes hw-fishB { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 25% { transform: translateX(-40px) translateY(8px) rotate(-10deg); } 50% { transform: translateX(-90px) translateY(0) rotate(0deg); } 75% { transform: translateX(-140px) translateY(-6px) rotate(8deg); } 100% { transform: translateX(-200px) translateY(0) rotate(0deg); } }
@keyframes hw-weed { 0% { transform: rotate(0deg) scaleY(1); } 25% { transform: rotate(10deg) scaleY(1.02); } 50% { transform: rotate(-5deg) scaleY(0.98); } 75% { transform: rotate(15deg) scaleY(1.01); } 100% { transform: rotate(0deg) scaleY(1); } }

/* sponge-classification */
.scn-sponge-classification { background: linear-gradient(180deg, #1A1A2A 0%, #2A2A3A 50%, #3A3A4A 100%), radial-gradient(circle at 50% 40%, #4A4A5A 0%, transparent 70%); }
.scn-sponge-classification .exhibit-bg { position: absolute; inset: 0; background: linear-gradient(180deg, #0A0A1A 0%, #1A1A2A 50%, #2A2A3A 100%); animation: sc-bg 20s ease-in-out infinite alternate; }
.scn-sponge-classification .display-base { position: absolute; bottom: 20%; left: 30%; width: 40%; height: 10%; background: linear-gradient(180deg, #6A5A4A 0%, #4A3A2A 100%); border-radius: 6px 6px 0 0; box-shadow: 0 6px 12px rgba(0,0,0,0.5); animation: sc-base 14s ease-in-out infinite alternate; }
.scn-sponge-classification .sponge-body { position: absolute; bottom: 30%; left: 35%; width: 30%; height: 40%; background: radial-gradient(ellipse at 50% 60%, #C0A070 0%, #A08050 40%, #806040 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; box-shadow: inset 0 -20px 30px rgba(0,0,0,0.3), 0 8px 20px rgba(0,0,0,0.4); animation: sc-sponge 10s ease-in-out infinite; }
.scn-sponge-classification .sponge-pores { position: absolute; bottom: 38%; left: 38%; width: 24%; height: 24%; background: radial-gradient(circle at 30% 40%, rgba(0,0,0,0.4) 0%, transparent 50%), radial-gradient(circle at 70% 60%, rgba(0,0,0,0.3) 0%, transparent 50%), radial-gradient(circle at 50% 80%, rgba(0,0,0,0.2) 0%, transparent 40%); border-radius: 50%; animation: sc-pores 8s ease-in-out infinite alternate; }
.scn-sponge-classification .light-spot { position: absolute; top: 20%; left: 40%; width: 20%; height: 30%; background: radial-gradient(circle, rgba(255,255,220,0.3) 0%, transparent 70%); filter: blur(15px); animation: sc-light 6s ease-in-out infinite alternate; }
.scn-sponge-classification .shadow-sponge { position: absolute; bottom: 18%; left: 34%; width: 32%; height: 8%; background: rgba(0,0,0,0.4); border-radius: 50%; filter: blur(10px); animation: sc-shadow 12s ease-in-out infinite alternate; }
@keyframes sc-bg { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes sc-base { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(1px); } }
@keyframes sc-sponge { 0% { transform: scale(1) translateY(0); } 25% { transform: scale(1.02) translateY(-2px); } 50% { transform: scale(0.98) translateY(1px); } 75% { transform: scale(1.01) translateY(-1px); } 100% { transform: scale(1) translateY(0); } }
@keyframes sc-pores { 0% { opacity: 0.5; transform: scale(1); } 50% { opacity: 0.8; transform: scale(1.05); } 100% { opacity: 0.4; transform: scale(0.95); } }
@keyframes sc-light { 0% { transform: translateY(0) scaleX(1); opacity: 0.6; } 50% { transform: translateY(-5px) scaleX(1.1); opacity: 1; } 100% { transform: translateY(3px) scaleX(0.9); opacity: 0.5; } }
@keyframes sc-shadow { 0% { transform: scaleX(1); opacity: 0.4; } 50% { transform: scaleX(1.2); opacity: 0.6; } 100% { transform: scaleX(0.9); opacity: 0.3; } }

/* dillon-discovery */
.scn-dillon-discovery { background: linear-gradient(180deg, #7ab0d4 0%, #d8c8a0 50%, #f5deb3 100%), radial-gradient(ellipse at 40% 100%, #f5deb3 0%, transparent 60%); }
.scn-dillon-discovery .sky { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #a0c8e8 0%, #e0d4b8 100%); animation: dd-sky 12s ease-in-out infinite alternate; }
.scn-dillon-discovery .sea { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #3a7a8a 0%, #2a5a6a 100%); border-radius: 0 0 30% 30% / 0 0 20% 20%; box-shadow: inset 0 8px 20px rgba(0,0,0,.3); animation: dd-sea 15s ease-in-out infinite alternate; }
.scn-dillon-discovery .island { position:absolute; bottom:45%; left:60%; width:30%; height:15%; background: linear-gradient(180deg, #5a7a4a 0%, #3a5a2a 100%); border-radius: 60% 40% 30% 50% / 80% 50% 50% 30%; box-shadow: 0 4px 8px rgba(0,0,0,.3); animation: dd-island 20s ease-in-out infinite alternate; }
.scn-dillon-discovery .ship-hull { position:absolute; bottom:47%; left:30%; width:100px; height:30px; background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 3px 6px rgba(0,0,0,.4); animation: dd-hull 8s ease-in-out infinite; }
.scn-dillon-discovery .ship-sail1 { position:absolute; bottom:68%; left:32%; width:30px; height:50px; background: linear-gradient(180deg, #f0e6c8 0%, #c8b89a 100%); border-radius: 50% 50% 0 0; clip-path: polygon(50% 0%, 100% 100%, 0% 100%); filter: drop-shadow(0 3px 3px rgba(0,0,0,.2)); animation: dd-sail 10s ease-in-out infinite alternate; }
.scn-dillon-discovery .ship-sail2 { position:absolute; bottom:65%; left:40%; width:25px; height:40px; background: linear-gradient(180deg, #f0e6c8 0%, #c8b89a 100%); border-radius: 50% 50% 0 0; clip-path: polygon(100% 0%, 100% 100%, 0% 100%); filter: drop-shadow(0 3px 3px rgba(0,0,0,.2)); animation: dd-sail2 12s ease-in-out infinite alternate; }
.scn-dillon-discovery .figure-dillon { position:absolute; bottom:48%; left:36%; width:14px; height:28px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: dd-figure 6s ease-in-out infinite; }
@keyframes dd-sky { 0% { opacity:.9; transform: scaleY(1); } 50% { opacity:1; transform: scaleY(1.02); } 100% { opacity:.85; transform: scaleY(1); } }
@keyframes dd-sea { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-5px) scaleY(1.05); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes dd-island { 0% { transform: translateX(0) scale(1); } 50% { transform: translateX(-8px) scale(1.02); } 100% { transform: translateX(0) scale(1); } }
@keyframes dd-hull { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(3px) rotate(1deg); } 50% { transform: translateX(0) rotate(-1deg); } 75% { transform: translateX(-3px) rotate(0deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes dd-sail { 0% { transform: scaleX(1); } 100% { transform: scaleX(1.1); } }
@keyframes dd-sail2 { 0% { transform: scaleX(1); } 100% { transform: scaleX(1.15); } }
@keyframes dd-figure { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(-2deg); } }

/* native-boatman-story */
.scn-native-boatman-story { background: linear-gradient(180deg, #8ac4c8 0%, #d8c8a0 50%, #f0d8b0 100%), radial-gradient(ellipse at 50% 100%, #f0d8b0 0%, transparent 70%); }
.scn-native-boatman-story .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #b0d4e0 0%, #e8d8b8 100%); animation: nb-sky 14s ease-in-out infinite alternate; }
.scn-native-boatman-story .sea { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #4a8a9a 0%, #2a6a7a 100%); border-radius: 0 0 40% 40% / 0 0 20% 20%; animation: nb-sea 18s ease-in-out infinite alternate; }
.scn-native-boatman-story .reef { position:absolute; bottom:40%; left:20%; width:50%; height:10%; background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%); border-radius: 30% 70% 50% 50% / 60% 80% 40% 20%; box-shadow: inset 0 4px 10px rgba(0,0,0,.4); animation: nb-reef 22s ease-in-out infinite alternate; }
.scn-native-boatman-story .canoe { position:absolute; bottom:44%; left:25%; width:60px; height:12px; background: linear-gradient(180deg, #6a4a2a 0%, #3a2a0a 100%); border-radius: 50% 50% 20% 20%; box-shadow: 0 2px 4px rgba(0,0,0,.3); animation: nb-canoe 9s ease-in-out infinite; }
.scn-native-boatman-story .figure-boatman { position:absolute; bottom:47%; left:30%; width:16px; height:30px; background: linear-gradient(180deg, #5a3a1a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: nb-boatman 6s ease-in-out infinite; }
.scn-native-boatman-story .figure-dillon { position:absolute; bottom:48%; left:42%; width:14px; height:30px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: nb-dillon 7s ease-in-out infinite; }
.scn-native-boatman-story .palm { position:absolute; bottom:52%; left:65%; width:10px; height:60px; background: linear-gradient(180deg, #2a3a1a 0%, #1a2a0a 100%); border-radius: 20% 20% 10% 10%; transform-origin: bottom center; animation: nb-palm 20s ease-in-out infinite alternate; }
@keyframes nb-sky { 0% { opacity:.9; } 50% { opacity:1; } 100% { opacity:.85; } }
@keyframes nb-sea { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-4px) scaleY(1.03); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes nb-reef { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(3px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes nb-canoe { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes nb-boatman { 0% { transform: translateX(0) rotate(-1deg); } 50% { transform: translateX(2px) rotate(1deg); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes nb-dillon { 0% { transform: translateX(0) rotate(1deg); } 50% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(1deg); } }
@keyframes nb-palm { 0% { transform: rotate(-5deg) scaleY(1); } 50% { transform: rotate(0deg) scaleY(1.02); } 100% { transform: rotate(5deg) scaleY(1); } }

/* dillon-guesses-la-perouse */
.scn-dillon-guesses-la-perouse { background: linear-gradient(180deg, #7a9ac0 0%, #b8c8d0 50%, #d4c8a8 100%), radial-gradient(ellipse at 30% 100%, #d4c8a8 0%, transparent 60%); }
.scn-dillon-guesses-la-perouse .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #90b4d0 0%, #c8d0b8 100%); animation: dg-sky 16s ease-in-out infinite alternate; }
.scn-dillon-guesses-la-perouse .sea { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #3a6a7a 0%, #1a4a5a 100%); border-radius: 0 0 50% 50% / 0 0 30% 30%; animation: dg-sea 20s ease-in-out infinite alternate; }
.scn-dillon-guesses-la-perouse .ship-deck { position:absolute; bottom:48%; left:35%; width:120px; height:20px; background: linear-gradient(180deg, #6a5a3a 0%, #3a2a1a 100%); border-radius: 10% 10% 0 0; box-shadow: 0 3px 6px rgba(0,0,0,.4); animation: dg-deck 10s ease-in-out infinite; }
.scn-dillon-guesses-la-perouse .ship-railing { position:absolute; bottom:60%; left:38%; width:100px; height:5px; background: #4a3a2a; border-radius: 2px; box-shadow: 0 12px 0 #4a3a2a, 0 24px 0 #4a3a2a; animation: dg-rail 12s ease-in-out infinite alternate; }
.scn-dillon-guesses-la-perouse .figure-dillon { position:absolute; bottom:52%; left:40%; width:14px; height:28px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dg-figure 8s ease-in-out infinite; }
.scn-dillon-guesses-la-perouse .telescope { position:absolute; bottom:66%; left:45%; width:4px; height:14px; background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius: 50%; transform: rotate(30deg); animation: dg-telescope 9s ease-in-out infinite; }
.scn-dillon-guesses-la-perouse .map { position:absolute; bottom:50%; left:30%; width:30px; height:20px; background: linear-gradient(180deg, #d8c8a8 0%, #b8a888 100%); border-radius: 5% 5% 20% 20% / 10% 10% 30% 30%; box-shadow: 0 2px 4px rgba(0,0,0,.2); animation: dg-map 14s ease-in-out infinite alternate; }
@keyframes dg-sky { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes dg-sea { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-4px) scaleY(1.04); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes dg-deck { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(2px) rotate(0.5deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes dg-rail { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.8; } }
@keyframes dg-figure { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes dg-telescope { 0% { transform: rotate(28deg) scaleY(1); } 50% { transform: rotate(32deg) scaleY(1.05); } 100% { transform: rotate(28deg) scaleY(1); } }
@keyframes dg-map { 0% { transform: rotate(0deg) translateX(0); } 50% { transform: rotate(1deg) translateX(3px); } 100% { transform: rotate(0deg) translateX(0); } }

/* dillon-returns-to-calcutta */
.scn-dillon-returns-to-calcutta { background: linear-gradient(180deg, #c0a880 0%, #e8d4b0 50%, #f0e0c0 100%), radial-gradient(ellipse at 60% 100%, #f0e0c0 0%, transparent 70%); }
.scn-dillon-returns-to-calcutta .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #d4c8a8 0%, #f0e0c8 100%); animation: dr-sky 18s ease-in-out infinite alternate; }
.scn-dillon-returns-to-calcutta .city-skyline { position:absolute; bottom:40%; left:0; right:0; height:15%; background: linear-gradient(180deg, #8a6a4a 0%, #5a3a1a 100%); clip-path: polygon(0% 100%, 5% 40%, 10% 100%, 20% 30%, 30% 100%, 40% 50%, 50% 100%, 60% 20%, 70% 100%, 80% 40%, 90% 100%, 100% 20%, 100% 100%); box-shadow: inset 0 6px 12px rgba(0,0,0,.4); animation: dr-skyline 24s ease-in-out infinite alternate; }
.scn-dillon-returns-to-calcutta .dock { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #7a6a5a 0%, #4a3a2a 100%); border-radius: 0 0 20% 20% / 0 0 10% 10%; box-shadow: inset 0 8px 16px rgba(0,0,0,.3); animation: dr-dock 30s ease-in-out infinite alternate; }
.scn-dillon-returns-to-calcutta .ship-hull { position:absolute; bottom:38%; left:30%; width:120px; height:35px; background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: dr-hull 10s ease-in-out infinite; }
.scn-dillon-returns-to-calcutta .ship-flag { position:absolute; bottom:68%; left:38%; width:20px; height:30px; background: linear-gradient(180deg, #b87878 0%, #8a5a5a 100%); border-radius: 0 30% 30% 0; clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%); filter: drop-shadow(0 2px 2px rgba(0,0,0,.3)); animation: dr-flag 8s ease-in-out infinite alternate; }
.scn-dillon-returns-to-calcutta .figure-dillon { position:absolute; bottom:40%; left:36%; width:14px; height:28px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dr-figure 7s ease-in-out infinite; }
.scn-dillon-returns-to-calcutta .figure-official { position:absolute; bottom:41%; left:45%; width:15px; height:32px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dr-official 9s ease-in-out infinite; }
@keyframes dr-sky { 0% { opacity:.9; } 50% { opacity:1; } 100% { opacity:.85; } }
@keyframes dr-skyline { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-2px) scaleY(1.01); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes dr-dock { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes dr-hull { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(2px) rotate(0.5deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes dr-flag { 0% { transform: scaleY(1) rotate(0deg); } 50% { transform: scaleY(1.1) rotate(5deg); } 100% { transform: scaleY(1) rotate(0deg); } }
@keyframes dr-figure { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes dr-official { 0% { transform: translateX(0) rotate(1deg); } 50% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(1deg); } }

/* examining-bird-of-paradise */
.scn-examining-bird-of-paradise {
  background: linear-gradient(180deg, #2d4a2d 0%, #4a6a3a 40%, #7a9a5a 100%), radial-gradient(ellipse at 30% 80%, #c0d080 0%, transparent 70%);
}
.scn-examining-bird-of-paradise .bg-deep { position:absolute; inset:0; background: linear-gradient(180deg, #1a2a1a 0%, #2d3d2d 100%); }
.scn-examining-bird-of-paradise .bg-mid { position:absolute; inset:0 0 30% 0; background: radial-gradient(ellipse at 70% 60%, #5a8a3a 0%, transparent 60%); animation: ebop-dapple 12s ease-in-out infinite; }
.scn-examining-bird-of-paradise .bird-body { position:absolute; bottom:35%; left:30%; width:60px; height:45px; background: linear-gradient(135deg, #8a6a3a 0%, #b09050 40%, #c0a060 100%); border-radius:45% 40% 50% 50% / 50% 45% 55% 50%; transform: rotate(-10deg); animation: ebop-breathe 3s ease-in-out infinite; }
.scn-examining-bird-of-paradise .bird-wing { position:absolute; bottom:38%; left:35%; width:35px; height:25px; background: linear-gradient(180deg, #7a5a3a 0%, #6a4a2a 60%, #4a2a1a 100%); border-radius:50% 40% 30% 60% / 40% 60% 40% 60%; transform: rotate(15deg); animation: ebop-flutter 0.8s ease-in-out infinite alternate; }
.scn-examining-bird-of-paradise .bird-head { position:absolute; bottom:48%; left:32%; width:20px; height:18px; background: radial-gradient(circle, #d0b070 0%, #b09050 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-5deg); }
.scn-examining-bird-of-paradise .bird-eye { position:absolute; bottom:52%; left:36%; width:4px; height:4px; background:#1a1a1a; border-radius:50%; box-shadow: 0 0 4px 1px #f0e0b0; animation: ebop-blink 5s infinite; }
.scn-examining-bird-of-paradise .hand { position:absolute; bottom:30%; right:25%; width:45px; height:70px; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius:40% 40% 30% 30% / 30% 30% 50% 50%; transform-origin: bottom center; animation: ebop-reach 6s ease-in-out infinite; }
.scn-examining-bird-of-paradise .sunray { position:absolute; top:0; left:10%; width:60%; height:120%; background: linear-gradient(135deg, rgba(255,220,150,0.3) 0%, transparent 50%); clip-path: polygon(30% 0, 50% 100%, 70% 0); animation: ebop-sweep 8s ease-in-out infinite; }
.scn-examining-bird-of-paradise .leaf { position:absolute; bottom:20%; left:5%; width:30px; height:15px; background: linear-gradient(180deg, #4a7a2a 0%, #3a5a1a 100%); border-radius:80% 20% 50% 50% / 60% 40% 60% 40%; filter: blur(4px); animation: ebop-sway 5s ease-in-out infinite alternate; }
@keyframes ebop-dapple { 0% { opacity:0.6 } 50% { opacity:0.9 } 100% { opacity:0.7 } }
@keyframes ebop-breathe { 0% { transform: rotate(-10deg) scale(1) } 50% { transform: rotate(-10deg) scale(1.02) } 100% { transform: rotate(-10deg) scale(1) } }
@keyframes ebop-flutter { 0% { transform: rotate(15deg) scaleY(1) } 100% { transform: rotate(20deg) scaleY(0.9) } }
@keyframes ebop-blink { 0%,90%,100% { transform: scaleY(1) } 95% { transform: scaleY(0.2) } }
@keyframes ebop-reach { 0% { transform: translateY(0) rotate(-5deg) } 50% { transform: translateY(-12px) rotate(0deg) } 100% { transform: translateY(0) rotate(-5deg) } }
@keyframes ebop-sweep { 0% { transform: translateX(-20px) rotate(0deg); opacity:0.3 } 50% { transform: translateX(20px) rotate(5deg); opacity:0.7 } 100% { transform: translateX(-20px) rotate(0deg); opacity:0.3 } }
@keyframes ebop-sway { 0% { transform: translateY(0) rotate(-5deg) } 100% { transform: translateY(3px) rotate(5deg) } }

/* bird-description */
.scn-bird-description {
  background: linear-gradient(180deg, #5a7a8a 0%, #8aa0b0 40%, #c0d0d0 100%), radial-gradient(ellipse at 80% 50%, #e0e8f0 0%, transparent 60%);
}
.scn-bird-description .sky { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #7a9aa0 0%, #b0c8c8 100%); animation: bdesc-bright 10s ease-in-out infinite alternate; }
.scn-bird-description .body { position:absolute; bottom:25%; left:40%; width:65px; height:50px; background: linear-gradient(135deg, #8a6a3a 0%, #b09050 50%, #c0a060 100%); border-radius:45% 40% 50% 50% / 50% 45% 55% 50%; transform: rotate(5deg); animation: bdesc-breathe 3s ease-in-out infinite; }
.scn-bird-description .head { position:absolute; bottom:45%; left:42%; width:22px; height:20px; background: radial-gradient(circle, #d0b070 0%, #b09050 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; }
.scn-bird-description .beak { position:absolute; bottom:48%; left:52%; width:18px; height:6px; background: linear-gradient(90deg, #e0c060 0%, #c0a040 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-15deg); }
.scn-bird-description .wing { position:absolute; bottom:30%; left:32%; width:38px; height:28px; background: linear-gradient(180deg, #7a5a3a 0%, #6a4a2a 50%, #4a2a1a 100%); border-radius:50% 40% 30% 60% / 40% 60% 40% 60%; transform: rotate(-10deg); }
.scn-bird-description .wing::after { content:''; position:absolute; top:5%; left:10%; width:50%; height:50%; background: linear-gradient(180deg, #6a4a8a 0%, #5a3a6a 100%); border-radius:40% 60% 30% 50%; opacity:0.7; } /* purple tip */
.scn-bird-description .tail { position:absolute; bottom:20%; left:60%; width:40px; height:20px; background: linear-gradient(90deg, #b09050 0%, #a08040 100%); border-radius:20% 80% 50% 50% / 50% 70% 30% 50%; transform: rotate(-20deg); }
.scn-bird-description .foot { position:absolute; bottom:8%; left:45%; width:12px; height:15px; background: #5a3a1a; border-radius:20% 20% 40% 40% / 40% 40% 60% 60%; transform: rotate(-10deg); }
@keyframes bdesc-bright { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes bdesc-breathe { 0% { transform: rotate(5deg) scale(1) } 50% { transform: rotate(5deg) scale(1.015) } 100% { transform: rotate(5deg) scale(1) } }

/* tail-feathers */
.scn-tail-feathers {
  background: linear-gradient(180deg, #3a5a7a 0%, #5a8ab0 40%, #8ab8d0 100%), radial-gradient(ellipse at 50% 20%, #ffd080 0%, transparent 60%);
}
.scn-tail-feathers .bg-sky { position:absolute; inset:0; background: linear-gradient(180deg, #5a8ab0 0%, #8ab8d0 100%); animation: tailf-sky 15s ease-in-out infinite alternate; }
.scn-tail-feathers .sun { position:absolute; top:5%; left:70%; width:40px; height:40px; background: radial-gradient(circle, #ffe080 0%, #ffc040 100%); border-radius:50%; box-shadow: 0 0 40px 20px rgba(255,192,64,0.5); animation: tailf-pulse 4s ease-in-out infinite alternate; }
.scn-tail-feathers .tail-base { position:absolute; bottom:20%; left:50%; width:30px; height:40px; background: linear-gradient(180deg, #8a6a3a 0%, #6a4a2a 100%); border-radius:30% 30% 20% 20% / 40% 40% 30% 30%; transform: translateX(-50%); }
.scn-tail-feathers .feather-left { position:absolute; bottom:30%; left:30%; width:12px; height:100px; background: linear-gradient(180deg, #d0b070 0%, #c0a060 60%, #a08040 100%); border-radius:50% 50% 30% 30% / 40% 40% 60% 60%; transform-origin: bottom center; animation: tailf-sway 7s ease-in-out infinite; }
.scn-tail-feathers .feather-right { position:absolute; bottom:30%; left:55%; width:12px; height:110px; background: linear-gradient(180deg, #e0c080 0%, #d0b070 60%, #b09050 100%); border-radius:50% 50% 30% 30% / 40% 40% 60% 60%; transform-origin: bottom center; animation: tailf-sway 7s ease-in-out 2s infinite; }
.scn-tail-feathers .feather-down { position:absolute; bottom:15%; left:47%; width:8px; height:60px; background: linear-gradient(180deg, #d0b070 0%, #c0a060 60%, #a08040 100%); border-radius:50% 50% 20% 20% / 30% 30% 50% 50%; transform-origin: bottom center; animation: tailf-sway-small 5s ease-in-out infinite; }
.scn-tail-feathers .sparkle { position:absolute; top:30%; left:45%; width:6px; height:6px; background: #ffd080; border-radius:50%; box-shadow: 0 0 10px 4px rgba(255,208,128,0.8); animation: tailf-sparkle 3s ease-in-out infinite; }
@keyframes tailf-sky { 0% { opacity:0.7 } 50% { opacity:0.9 } 100% { opacity:0.8 } }
@keyframes tailf-pulse { 0% { transform: scale(0.9); opacity:0.8 } 100% { transform: scale(1.1); opacity:1 } }
@keyframes tailf-sway { 0%,100% { transform: rotate(-10deg) } 50% { transform: rotate(10deg) } }
@keyframes tailf-sway-small { 0%,100% { transform: rotate(-5deg) scaleY(1) } 50% { transform: rotate(5deg) scaleY(0.95) } }
@keyframes tailf-sparkle { 0%,100% { opacity:0.3; transform: scale(0.8) } 50% { opacity:1; transform: scale(1.2) } }

/* paris-zoo-plan */
.scn-paris-zoo-plan {
  background: linear-gradient(135deg, #e0d0b0 0%, #c8b890 40%, #a89878 100%), radial-gradient(ellipse at 30% 70%, #f0e8d0 0%, transparent 60%);
}
.scn-paris-zoo-plan .bg-paper { position:absolute; inset:0; background: linear-gradient(45deg, #d8c8a0 0%, #e8dcc0 100%); border-radius:4%; box-shadow: inset 0 0 30px rgba(0,0,0,0.1); }
.scn-paris-zoo-plan .map-lines { position:absolute; inset:5%; background: repeating-linear-gradient(0deg, #c8b080 0px, #c8b080 1px, transparent 1px, transparent 20px), repeating-linear-gradient(90deg, #c8b080 0px, #c8b080 1px, transparent 1px, transparent 20px); opacity:0.4; animation: pzoo-grid 30s linear infinite; }
.scn-paris-zoo-plan .bird-silhouette { position:absolute; bottom:40%; left:20%; width:50px; height:35px; background: #6a4a2a; border-radius:45% 40% 50% 50% / 50% 45% 55% 50%; transform: rotate(-10deg); animation: pzoo-float 5s ease-in-out infinite; }
.scn-paris-zoo-plan .sun { position:absolute; top:5%; right:5%; width:30px; height:30px; background: radial-gradient(circle, #ffd060 0%, #f0b040 100%); border-radius:50%; box-shadow: 0 0 30px 10px rgba(240,176,64,0.5); animation: pzoo-glow 4s ease-in-out infinite alternate; }
.scn-paris-zoo-plan .path { position:absolute; bottom:30%; right:15%; width:60%; height:4px; background: linear-gradient(90deg, transparent 0%, #a08050 20%, #a08050 80%, transparent 100%); border-radius:50%; transform: translateY(-50%); animation: pzoo-dash 8s linear infinite; }
.scn-paris-zoo-plan .map-pin { position:absolute; bottom:20%; right:25%; width:10px; height:18px; background: linear-gradient(180deg, #e0b060 0%, #c09040 100%); border-radius:50% 50% 30% 30% / 40% 40% 50% 50%; transform: translate(50%,100%); animation: pzoo-pin 3s ease-in-out infinite; }
@keyframes pzoo-grid { 0% { background-position: 0 0 } 100% { background-position: 20px 20px } }
@keyframes pzoo-float { 0%,100% { transform: rotate(-10deg) translateY(0) } 50% { transform: rotate(-12deg) translateY(-5px) } }
@keyframes pzoo-glow { 0% { box-shadow: 0 0 20px 8px rgba(240,176,64,0.4); opacity:0.8 } 100% { box-shadow: 0 0 40px 15px rgba(240,176,64,0.6); opacity:1 } }
@keyframes pzoo-dash { 0% { transform: translateX(-10%) scaleX(1) } 100% { transform: translateX(110%) scaleX(0.8) } }
@keyframes pzoo-pin { 0%,100% { transform: translate(50%,100%) scaleY(1) } 50% { transform: translate(50%,100%) scaleY(0.9) } }

/* wish-to-explore-more : firelit warm ancient town */
.scn-wish-to-explore-more {
  background: linear-gradient(180deg, #2d1a0e 0%, #4a2a14 40%, #1a0f08 100%),
              radial-gradient(ellipse at 50% 80%, #c06a30 0%, transparent 60%);
}
.scn-wish-to-explore-more .fire-sky {
  position: absolute; top: 0; left: 0; right: 0; bottom: 40%;
  background: linear-gradient(180deg, #c06020 0%, #8b3a10 30%, #2d1a0e 100%);
  animation: wem-sky 8s ease-in-out infinite alternate;
}
.scn-wish-to-explore-more .ruins-back {
  position: absolute; bottom: 30%; left: 5%; right: 5%; height: 35%;
  background: linear-gradient(180deg, #3a2518 0%, #1a1008 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.6);
  transform: scaleX(1.2) translateY(5%);
}
.scn-wish-to-explore-more .ruins-front {
  position: absolute; bottom: 25%; left: 20%; right: 20%; height: 30%;
  background: linear-gradient(135deg, #4e3620 0%, #2e1e10 100%);
  border-radius: 40% 40% 0 0 / 60% 60% 0 0;
  box-shadow: 0 -4px 12px rgba(192,96,32,0.5);
  animation: wem-ruins 12s ease-in-out infinite alternate;
}
.scn-wish-to-explore-more .fire-glow {
  position: absolute; bottom: 35%; left: 45%; width: 60px; height: 80px;
  background: radial-gradient(circle, #ff8030 0%, #c04a10 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px #ff6010, 0 0 80px 40px rgba(255,96,16,0.4);
  animation: wem-flame 4s ease-in-out infinite;
}
.scn-wish-to-explore-more .figure-silhouette {
  position: absolute; bottom: 24%; left: 48%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #0e0804 0%, #080400 100%);
  border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: wem-walk 6s ease-in-out infinite;
}
.scn-wish-to-explore-more .column {
  position: absolute; bottom: 28%; left: 30%; width: 14px; height: 60px;
  background: linear-gradient(180deg, #4e3620 0%, #2a1a10 100%);
  border-radius: 4px;
  box-shadow: 2px 0 6px rgba(0,0,0,0.4);
  animation: wem-sway 5s ease-in-out infinite alternate;
}
.scn-wish-to-explore-more .ember-1 {
  position: absolute; bottom: 40%; left: 42%; width: 4px; height: 4px;
  background: radial-gradient(circle, #ffa040 0%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 6px 2px #ffa040;
  animation: wem-embers 2s ease-in-out infinite;
  animation-delay: 0.5s;
}
.scn-wish-to-explore-more .ember-2 {
  position: absolute; bottom: 38%; left: 52%; width: 3px; height: 3px;
  background: radial-gradient(circle, #ff7030 0%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 5px 1px #ff7030;
  animation: wem-embers 3s ease-in-out infinite;
  animation-delay: 1.2s;
}

@keyframes wem-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes wem-ruins { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(1.02); } 100% { transform: translateY(0) scale(1); } }
@keyframes wem-flame { 0% { transform: scale(1) rotate(-2deg); opacity: 0.9; } 50% { transform: scale(1.2) rotate(2deg); opacity: 1; } 100% { transform: scale(1) rotate(0); opacity: 0.95; } }
@keyframes wem-walk { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 25% { transform: translateX(5px) translateY(-1px) rotate(1deg); } 50% { transform: translateX(10px) translateY(0) rotate(-2deg); } 75% { transform: translateX(15px) translateY(-1px) rotate(1deg); } 100% { transform: translateX(20px) translateY(0) rotate(0deg); } }
@keyframes wem-sway { 0% { transform: rotate(0deg) scaleY(1); } 50% { transform: rotate(2deg) scaleY(1.02); } 100% { transform: rotate(-1deg) scaleY(0.98); } }
@keyframes wem-embers { 0% { opacity: 0; transform: translateY(0) scale(0.8); } 30% { opacity: 1; transform: translateY(-10px) scale(1.2); } 70% { opacity: 0.8; transform: translateY(-20px) scale(0.9); } 100% { opacity: 0; transform: translateY(-30px) scale(0.5); } }

/* nemo-in-trance : dark firelit cave with monument */
.scn-nemo-in-trance {
  background: linear-gradient(180deg, #120a06 0%, #2a1810 40%, #0e0602 100%),
              radial-gradient(ellipse at 50% 70%, #602818 0%, transparent 70%);
}
.scn-nemo-in-trance .cave-bg {
  position: absolute; inset: 0; 
  background: linear-gradient(180deg, transparent 0%, #0a0502 60%);
  animation: nit-cave 10s ease-in-out infinite alternate;
}
.scn-nemo-in-trance .monument {
  position: absolute; bottom: 25%; left: 35%; right: 35%; height: 40%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1e1208 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 -8px 20px rgba(0,0,0,0.6);
  transform: skewX(-2deg);
  animation: nit-monument 8s ease-in-out infinite alternate;
}
.scn-nemo-in-trance .moss {
  position: absolute; bottom: 25%; left: 35%; right: 35%; height: 20%;
  background: radial-gradient(ellipse 50% 100% at 50% 100%, #3a5a2a 0%, transparent 70%);
  filter: blur(4px);
  opacity: 0.6;
  animation: nit-moss 12s ease-in-out infinite alternate;
}
.scn-nemo-in-trance .nemo-figure {
  position: absolute; bottom: 26%; left: 42%; width: 20px; height: 45px;
  background: linear-gradient(180deg, #1a0e08 0%, #080300 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-5deg);
  animation: nit-lean 6s ease-in-out infinite alternate;
}
.scn-nemo-in-trance .fire-source {
  position: absolute; bottom: 30%; left: 50%; width: 30px; height: 40px;
  margin-left: -15px;
  background: radial-gradient(circle, #ff7030 0%, #b05020 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 50px 25px #b05020, 0 0 100px 50px rgba(176,80,32,0.4);
  animation: nit-fire 3s ease-in-out infinite alternate;
}
.scn-nemo-in-trance .floating-particle {
  position: absolute; bottom: 35%; left: 40%; width: 3px; height: 3px;
  background: #ffa060;
  border-radius: 50%;
  box-shadow: 0 0 4px 1px #ffa060;
  animation: nit-particle 4s ease-in-out infinite;
}

@keyframes nit-cave { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes nit-monument { 0% { transform: skewX(-2deg) translateY(0); } 50% { transform: skewX(-1deg) translateY(-3px); } 100% { transform: skewX(-2deg) translateY(0); } }
@keyframes nit-moss { 0% { opacity: 0.5; } 50% { opacity: 0.7; } 100% { opacity: 0.4; } }
@keyframes nit-lean { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-2deg) translateY(-2px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes nit-fire { 0% { transform: scale(1) rotate(-3deg); box-shadow: 0 0 40px 20px #b05020; } 50% { transform: scale(1.15) rotate(3deg); box-shadow: 0 0 60px 30px #d06020; } 100% { transform: scale(1) rotate(0); box-shadow: 0 0 45px 22px #b05020; } }
@keyframes nit-particle { 0% { opacity: 0; transform: translateY(0) scale(1); } 30% { opacity: 1; transform: translateY(-8px) scale(1.3); } 70% { opacity: 0.7; transform: translateY(-18px) scale(0.9); } 100% { opacity: 0; transform: translateY(-30px) scale(0.5); } }

/* moon-appears-then-depart : moonlit underwater scene */
.scn-moon-appears-then-depart {
  background: linear-gradient(180deg, #0a1428 0%, #1a2a40 50%, #0e1a30 100%),
              radial-gradient(ellipse at 50% 20%, #304868 0%, transparent 70%);
}
.scn-moon-appears-then-depart .deep-water {
  position: absolute; inset: 0; 
  background: linear-gradient(180deg, #0a1228 0%, #080e1a 100%);
  animation: mat-water 14s ease-in-out infinite alternate;
}
.scn-moon-appears-then-depart .moon-circle {
  position: absolute; top: 10%; left: 50%; width: 40px; height: 40px;
  margin-left: -20px;
  background: radial-gradient(circle, #d0d8e0 0%, #a0a8b0 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 15px rgba(160,168,176,0.5), 0 0 60px 30px rgba(160,168,176,0.2);
  animation: mat-moon 9s ease-in-out infinite;
}
.scn-moon-appears-then-depart .moon-rays {
  position: absolute; top: 20%; left: 30%; right: 30%; height: 60%;
  background: linear-gradient(180deg, rgba(200,210,220,0.15) 0%, transparent 80%);
  clip-path: polygon(40% 0%, 60% 0%, 55% 100%, 45% 100%);
  filter: blur(10px);
  animation: mat-rays 10s ease-in-out infinite alternate;
}
.scn-moon-appears-then-depart .captain-silhouette {
  position: absolute; bottom: 30%; left: 45%; width: 18px; height: 40px;
  background: #050810;
  border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%;
  transform: rotate(5deg);
  animation: mat-captain 7s ease-in-out infinite alternate;
}
.scn-moon-appears-then-depart .submerged-plains {
  position: absolute; bottom: 10%; left: 5%; right: 5%; height: 25%;
  background: linear-gradient(180deg, #1a2a30 0%, #0e1a20 100%);
  border-radius: 30% 30% 0 0;
  box-shadow: inset 0 4px 10px rgba(0,0,0,0.5);
  animation: mat-plains 12s ease-in-out infinite alternate;
}
.scn-moon-appears-then-depart .ruin-blocks {
  position: absolute; bottom: 10%; left: 25%; right: 25%; height: 8%;
  background: linear-gradient(180deg, #2a3a40 0%, #1a282e 100%);
  border-radius: 4px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: mat-blocks 8s ease-in-out infinite alternate;
}
.scn-moon-appears-then-depart .bubbles {
  position: absolute; bottom: 40%; left: 30%; width: 4px; height: 4px;
  background: rgba(200,220,240,0.3);
  border-radius: 50%;
  box-shadow: 0 0 4px rgba(200,220,240,0.2);
  animation: mat-bubbles 5s ease-in-out infinite;
  animation-delay: 1s;
}

@keyframes mat-water { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes mat-moon { 0% { transform: translateY(0) scale(1); opacity: 0.7; } 30% { transform: translateY(2px) scale(1.05); opacity: 1; } 70% { transform: translateY(0) scale(0.95); opacity: 0.8; } 100% { transform: translateY(-3px) scale(1); opacity: 0.6; } }
@keyframes mat-rays { 0% { opacity: 0.3; transform: scaleY(1); } 50% { opacity: 0.7; transform: scaleY(1.2); } 100% { opacity: 0.4; transform: scaleY(0.9); } }
@keyframes mat-captain { 0% { transform: rotate(5deg) translateY(0); } 50% { transform: rotate(3deg) translateY(-2px); } 100% { transform: rotate(5deg) translateY(0); } }
@keyframes mat-plains { 0% { transform: translateY(0); } 50% { transform: translateY(2px); } 100% { transform: translateY(0); } }
@keyframes mat-blocks { 0% { transform: scaleX(1) translateY(0); } 50% { transform: scaleX(1.05) translateY(-1px); } 100% { transform: scaleX(1) translateY(0); } }
@keyframes mat-bubbles { 0% { opacity: 0; transform: translateY(0) scale(0.5); } 30% { opacity: 0.8; transform: translateY(-10px) scale(1); } 70% { opacity: 0.5; transform: translateY(-20px) scale(0.8); } 100% { opacity: 0; transform: translateY(-35px) scale(0.4); } }

/* skimming-atlantis-plains : calm window-lit lounge interior */
.scn-skimming-atlantis-plains {
  background: linear-gradient(180deg, #2a3028 0%, #1a201c 40%, #0e1210 100%),
              radial-gradient(ellipse at 50% 30%, #3a4038 0%, transparent 60%);
}
.scn-skimming-atlantis-plains .lounge-wall {
  position: absolute; inset: 0; 
  background: linear-gradient(90deg, #1a1e18 0%, #242a22 50%, #1a1e18 100%);
  animation: sap-wall 15s ease-in-out infinite alternate;
}
.scn-skimming-atlantis-plains .window-frame {
  position: absolute; top: 15%; left: 10%; right: 10%; bottom: 40%;
  border: 4px solid #3a4030;
  border-radius: 8px;
  background: #1a2a24;
  box-shadow: inset 0 0 20px rgba(100,160,120,0.3);
  animation: sap-frame 9s ease-in-out infinite alternate;
}
.scn-skimming-atlantis-plains .view-plains {
  position: absolute; top: 17%; left: 12%; right: 12%; bottom: 42%;
  background: linear-gradient(180deg, #3a4a38 0%, #2a3a28 40%, #1a2a18 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(60,120,60,0.4);
  animation: sap-view 12s ease-in-out infinite alternate;
}
.scn-skimming-atlantis-plains .seat-cushion {
  position: absolute; bottom: 20%; left: 20%; width: 30%; height: 12%;
  background: linear-gradient(135deg, #4a4030 0%, #302820 100%);
  border-radius: 20% 20% 40% 40% / 40% 40% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: sap-seat 8s ease-in-out infinite alternate;
}
.scn-skimming-atlantis-plains .table {
  position: absolute; bottom: 22%; left: 45%; width: 20%; height: 6%;
  background: linear-gradient(180deg, #5a4e2a 0%, #3a3220 100%);
  border-radius: 4px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
}
.scn-skimming-atlantis-plains .lamp-glow {
  position: absolute; bottom: 30%; left: 42%; width: 20px; height: 25px;
  background: radial-gradient(circle, #d0b060 0%, #a08040 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 15px #a08040, 0 0 60px 30px rgba(160,128,64,0.3);
  animation: sap-lamp 6s ease-in-out infinite alternate;
}
.scn-skimming-atlantis-plains .character-back {
  position: absolute; bottom: 18%; left: 30%; width: 16px; height: 35px;
  background: #0a0e0a;
  border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%;
  transform: rotate(3deg);
  animation: sap-char 7s ease-in-out infinite alternate;
}

@keyframes sap-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.95; } }
@keyframes sap-frame { 0% { border-color: #3a4030; box-shadow: inset 0 0 20px rgba(100,160,120,0.3); } 50% { border-color: #4a5040; box-shadow: inset 0 0 30px rgba(120,180,140,0.4); } 100% { border-color: #3a4030; box-shadow: inset 0 0 20px rgba(100,160,120,0.3); } }
@keyframes sap-view { 0% { background-position: 0 0; } 50% { background-position: 0 5px; } 100% { background-position: 0 0; } }
@keyframes sap-seat { 0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.02) translateY(-1px); } 100% { transform: scaleY(1) translateY(0); } }
@keyframes sap-lamp { 0% { transform: scale(1) rotate(-4deg); box-shadow: 0 0 25px 12px #a08040; } 50% { transform: scale(1.1) rotate(4deg); box-shadow: 0 0 40px 20px #c0a060; } 100% { transform: scale(1) rotate(0); box-shadow: 0 0 30px 15px #a08040; } }
@keyframes sap-char { 0% { transform: rotate(3deg) translateY(0); } 50% { transform: rotate(1deg) translateY(-1px); } 100% { transform: rotate(3deg) translateY(0); } }

.scn-return-to-nautilus-evening {
  background: linear-gradient(180deg, #2c1554 0%, #4a2a5e 30%, #6a4050 60%, #3a2a44 100%),
              radial-gradient(ellipse at 30% 60%, #7a5060 0%, transparent 60%);
}
.scn-return-to-nautilus-evening .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #4a2050 0%, #7a4050 40%, transparent 100%);
  animation: rne-sky 14s ease-in-out infinite alternate;
}
.scn-return-to-nautilus-evening .sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 40%, #06101a 100%);
  border-radius: 20% 30% 0 0 / 10% 15% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,.6);
  animation: rne-sea 20s ease-in-out infinite alternate;
}
.scn-return-to-nautilus-evening .sun {
  position: absolute; top: 15%; left: 65%; width: 30px; height: 30px;
  background: radial-gradient(circle, #f08050 0%, #b06030 50%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 10px rgba(240,128,80,.5);
  animation: rne-sun 12s ease-in-out infinite alternate;
}
.scn-return-to-nautilus-evening .clouds {
  position: absolute; height: 20px; background: linear-gradient(180deg, rgba(200,180,220,.25) 0%, transparent 100%);
  border-radius: 50%; filter: blur(4px);
}
.scn-return-to-nautilus-evening .cloud-1 {
  top: 8%; left: -10%; width: 90px; animation: rne-cloud1 40s linear infinite;
}
.scn-return-to-nautilus-evening .cloud-2 {
  top: 18%; right: -15%; width: 70px; animation: rne-cloud2 55s linear infinite reverse;
}
.scn-return-to-nautilus-evening .nautilus {
  position: absolute; bottom: 30%; left: 30%; width: 120px; height: 40px;
  background: linear-gradient(180deg, #4a5a5a 0%, #1a2a2a 100%);
  border-radius: 40% 50% 30% 40% / 50% 60% 40% 50%;
  box-shadow: inset 0 -4px 10px rgba(0,0,0,.5), 0 4px 12px rgba(0,0,0,.4);
  animation: rne-nautilus 8s ease-in-out infinite alternate;
}
.scn-return-to-nautilus-evening .window-glow {
  position: absolute; bottom: 33%; left: 35%; width: 12px; height: 18px;
  background: radial-gradient(circle, #f0c070 0%, #c08030 70%);
  border-radius: 20%;
  box-shadow: 0 0 16px 6px #c08030, 0 0 32px 12px rgba(192,128,48,.3);
  animation: rne-glow 3s ease-in-out infinite alternate;
}
.scn-return-to-nautilus-evening .wave {
  position: absolute; bottom: 10%; left: 0; right: 0; height: 8%;
  background: linear-gradient(180deg, #2a4a5a 0%, #1a2a3a 100%);
  border-radius: 40% 60% 0 0;
  transform: scaleY(0.6);
  animation: rne-wave 6s ease-in-out infinite alternate;
}
@keyframes rne-sky { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes rne-sea { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(2px) } }
@keyframes rne-sun { 0% { transform: scale(1); opacity: 0.8 } 50% { transform: scale(1.1); opacity: 1 } 100% { transform: scale(0.95); opacity: 0.7 } }
@keyframes rne-cloud1 { 0% { transform: translateX(-30px) } 100% { transform: translateX(150vw) } }
@keyframes rne-cloud2 { 0% { transform: translateX(0) } 100% { transform: translateX(-130vw) } }
@keyframes rne-nautilus { 0% { transform: translateX(0) translateY(0) rotate(-1deg) } 50% { transform: translateX(4px) translateY(-2px) rotate(0deg) } 100% { transform: translateX(0) translateY(1px) rotate(1deg) } }
@keyframes rne-glow { 0% { opacity: 0.8; box-shadow: 0 0 12px 4px #c08030, 0 0 24px 8px rgba(192,128,48,.2) } 50% { opacity: 1; box-shadow: 0 0 24px 8px #f0c070, 0 0 48px 16px rgba(240,192,112,.4) } 100% { opacity: 0.7; box-shadow: 0 0 16px 5px #c08030, 0 0 30px 10px rgba(192,128,48,.25) } }
@keyframes rne-wave { 0% { transform: scaleY(0.6) translateX(0) } 50% { transform: scaleY(0.7) translateX(8px) } 100% { transform: scaleY(0.5) translateX(-8px) } }

.scn-next-morning-return {
  background: linear-gradient(180deg, #b07a5a 0%, #d0a080 30%, #e0c0a0 60%, #c09070 100%),
              radial-gradient(ellipse at 50% 0%, #f0d0b0 0%, transparent 70%);
}
.scn-next-morning-return .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #f0c8a0 0%, #e0b080 40%, transparent 100%);
  animation: nmr-sky 15s ease-in-out infinite alternate;
}
.scn-next-morning-return .sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #4a6a7a 0%, #2a4a5a 40%, #1a2a3a 100%);
  border-radius: 30% 20% 0 0 / 15% 10% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.4);
}
.scn-next-morning-return .sun {
  position: absolute; top: 12%; left: 20%; width: 40px; height: 40px;
  background: radial-gradient(circle, #ffe0a0 0%, #f0b070 50%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px rgba(240,176,112,.6);
  animation: nmr-sun 13s ease-in-out infinite alternate;
}
.scn-next-morning-return .island {
  position: absolute; bottom: 30%; left: 55%; width: 100px; height: 50px;
  background: linear-gradient(180deg, #4a6a3a 0%, #2a3a1a 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 10% 10%;
  box-shadow: inset 0 -6px 15px rgba(0,0,0,.4);
  animation: nmr-island 20s ease-in-out infinite alternate;
}
.scn-next-morning-return .skiff {
  position: absolute; bottom: 28%; left: 15%; width: 50px; height: 18px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 30% 30% 40% 40% / 50% 50% 30% 30%;
  box-shadow: 0 3px 8px rgba(0,0,0,.3);
  animation: nmr-skiff 9s ease-in-out infinite alternate;
}
.scn-next-morning-return .skiff-figure {
  position: absolute; bottom: 30%; left: 20%; width: 14px; height: 28px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: nmr-figure 4s ease-in-out infinite;
}
.scn-next-morning-return .birds {
  position: absolute; top: 12%; left: 35%; width: 30px; height: 10px;
  background: radial-gradient(ellipse, #1a1a1a 0%, transparent 70%);
  filter: blur(1px);
  animation: nmr-birds 25s linear infinite;
}
@keyframes nmr-sky { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.75 } }
@keyframes nmr-sun { 0% { transform: scale(1) translateY(0); opacity: 0.8 } 50% { transform: scale(1.1) translateY(-2px); opacity: 1 } 100% { transform: scale(0.95) translateY(2px); opacity: 0.7 } }
@keyframes nmr-island { 0% { transform: translateX(0) scaleY(1) } 50% { transform: translateX(3px) scaleY(0.95) } 100% { transform: translateX(0) scaleY(1) } }
@keyframes nmr-skiff { 0% { transform: translateX(0) translateY(0) rotate(-1deg) } 50% { transform: translateX(4px) translateY(-2px) rotate(0deg) } 100% { transform: translateX(-2px) translateY(1px) rotate(1deg) } }
@keyframes nmr-figure { 0% { transform: translateX(0) rotate(-1deg) } 25% { transform: translateX(4px) rotate(1deg) } 50% { transform: translateX(8px) rotate(-2deg) } 75% { transform: translateX(12px) rotate(2deg) } 100% { transform: translateX(16px) rotate(0deg) } }
@keyframes nmr-birds { 0% { transform: translateX(-20px) scale(1) } 50% { transform: translateX(100vw) scale(0.5) } 100% { transform: translateX(200vw) scale(0.2) } }

.scn-early-departure {
  background: linear-gradient(180deg, #b08060 0%, #c09878 30%, #d0b090 60%, #b08860 100%),
              radial-gradient(ellipse at 50% 0%, #e0c0a0 0%, transparent 70%);
}
.scn-early-departure .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #f0c8a0 0%, #e0b890 40%, transparent 100%);
  animation: edp-sky 16s ease-in-out infinite alternate;
}
.scn-early-departure .sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #5a7a8a 0%, #2a4a5a 40%, #0a1a2a 100%);
  border-radius: 20% 40% 0 0 / 10% 15% 0 0;
  box-shadow: inset 0 8px 25px rgba(0,0,0,.5);
}
.scn-early-departure .sun {
  position: absolute; top: 10%; left: 80%; width: 35px; height: 35px;
  background: radial-gradient(circle, #ffe0a0 0%, #f0b070 50%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 50px 15px rgba(240,176,112,.5);
  animation: edp-sun 14s ease-in-out infinite alternate;
}
.scn-early-departure .longboat {
  position: absolute; bottom: 25%; left: 40%; width: 70px; height: 22px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 30% 30% 40% 40% / 50% 50% 30% 30%;
  box-shadow: 0 4px 10px rgba(0,0,0,.3);
  animation: edp-longboat 10s ease-in-out infinite alternate;
}
.scn-early-departure .rower-1 {
  position: absolute; bottom: 28%; left: 42%; width: 14px; height: 28px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: center bottom;
  animation: edp-row1 2s ease-in-out infinite;
}
.scn-early-departure .rower-2 {
  position: absolute; bottom: 28%; left: 48%; width: 14px; height: 28px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: center bottom;
  animation: edp-row2 2.5s ease-in-out infinite;
}
.scn-early-departure .spray {
  position: absolute; bottom: 30%; left: 50%; width: 30px; height: 15px;
  background: radial-gradient(ellipse, rgba(255,255,255,.4) 0%, transparent 70%);
  filter: blur(2px);
  animation: edp-spray 3s ease-in-out infinite;
}
@keyframes edp-sky { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.7 } }
@keyframes edp-sun { 0% { transform: scale(1) translateY(0); opacity: 0.75 } 50% { transform: scale(1.1) translateY(-3px); opacity: 1 } 100% { transform: scale(0.9) translateY(2px); opacity: 0.65 } }
@keyframes edp-longboat { 0% { transform: translateX(0) translateY(0) rotate(-1deg) } 50% { transform: translateX(5px) translateY(-2px) rotate(0deg) } 100% { transform: translateX(-3px) translateY(1px) rotate(1deg) } }
@keyframes edp-row1 { 0% { transform: rotate(-15deg) } 50% { transform: rotate(0deg) } 100% { transform: rotate(15deg) } }
@keyframes edp-row2 { 0% { transform: rotate(15deg) } 50% { transform: rotate(0deg) } 100% { transform: rotate(-15deg) } }
@keyframes edp-spray { 0% { transform: translateY(0) scale(1); opacity: 0.6 } 50% { transform: translateY(-5px) scale(1.2); opacity: 0.4 } 100% { transform: translateY(0) scale(0.8); opacity: 0 } }

.scn-westward-walk {
  background: linear-gradient(180deg, #7ab0d0 0%, #a0c8e0 40%, #d0e8f0 70%, #f0f0e8 100%),
              radial-gradient(ellipse at 80% 0%, #c0e0f0 0%, transparent 60%);
}
.scn-westward-walk .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #b0d8f0 0%, #d0e8f0 50%, transparent 100%);
  animation: ww-sky 18s ease-in-out infinite alternate;
}
.scn-westward-walk .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #6a8a5a 0%, #4a6a3a 50%, #2a4a1a 100%);
  border-radius: 60% 40% 0 0 / 20% 15% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,.3);
}
.scn-westward-walk .sun {
  position: absolute; top: 5%; left: 75%; width: 40px; height: 40px;
  background: radial-gradient(circle, #fff0c0 0%, #f0d0a0 40%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px rgba(240,208,160,.5);
  animation: ww-sun 15s ease-in-out infinite alternate;
}
.scn-westward-walk .forest {
  position: absolute; bottom: 30%; left: 30%; width: 150px; height: 100px;
  background: linear-gradient(180deg, #3a5a2a 0%, #1a2a0a 100%);
  border-radius: 30% 50% 0 0 / 40% 60% 0 0;
  clip-path: polygon(0 100%, 20% 40%, 40% 60%, 60% 30%, 80% 50%, 100% 20%, 100% 100%);
  box-shadow: inset -10px 0 20px rgba(0,0,0,.4);
  animation: ww-forest 25s ease-in-out infinite alternate;
}
.scn-westward-walk .figure {
  position: absolute; bottom: 20%; left: 35%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ww-figure 3s ease-in-out infinite;
}
.scn-westward-walk .bird-1 {
  position: absolute; top: 15%; left: 20%; width: 20px; height: 8px;
  background: radial-gradient(ellipse, #1a1a1a 0%, transparent 70%);
  filter: blur(1px);
  animation: ww-bird1 30s linear infinite;
}
.scn-westward-walk .bird-2 {
  position: absolute; top: 20%; left: 40%; width: 16px; height: 6px;
  background: radial-gradient(ellipse, #1a1a1a 0%, transparent 70%);
  filter: blur(1px);
  animation: ww-bird2 35s linear infinite reverse;
}
.scn-westward-walk .path {
  position: absolute; bottom: 18%; left: 10%; width: 80%; height: 6%;
  background: linear-gradient(90deg, #8a6a4a 0%, #6a4a2a 50%, #8a6a4a 100%);
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  opacity: 0.4;
  animation: ww-path 12s ease-in-out infinite alternate;
}
@keyframes ww-sky { 0% { opacity: 0.85 } 50% { opacity: 1 } 100% { opacity: 0.75 } }
@keyframes ww-sun { 0% { transform: scale(1) translateY(0); opacity: 0.8 } 50% { transform: scale(1.1) translateY(-2px); opacity: 1 } 100% { transform: scale(0.95) translateY(3px); opacity: 0.65 } }
@keyframes ww-forest { 0% { transform: translateX(0) scaleX(1) } 50% { transform: translateX(3px) scaleX(1.02) } 100% { transform: translateX(-2px) scaleX(0.98) } }
@keyframes ww-figure { 0% { transform: translateX(0) rotate(-1deg) } 25% { transform: translateX(6px) rotate(1deg) } 50% { transform: translateX(12px) rotate(-1deg) } 75% { transform: translateX(18px) rotate(2deg) } 100% { transform: translateX(28px) rotate(0deg) } }
@keyframes ww-bird1 { 0% { transform: translateX(-20px) scale(1) } 50% { transform: translateX(100vw) scale(0.6) } 100% { transform: translateX(200vw) scale(0.3) } }
@keyframes ww-bird2 { 0% { transform: translateX(200vw) scale(0.3) } 50% { transform: translateX(100vw) scale(0.6) } 100% { transform: translateX(-20px) scale(1) } }
@keyframes ww-path { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.2) } 100% { transform: scaleY(0.8) } }

.scn-density-numbers { background: linear-gradient(180deg, #fef8e8 0%, #e8dcc8 30%, #c8b8a0 100%), radial-gradient(ellipse at 80% 60%, #fff8e0 0%, transparent 60%); }
.scn-density-numbers .table { position:absolute; bottom:10%; left:10%; right:10%; height:45%; background: linear-gradient(180deg, #b09070 0%, #806050 100%); border-radius: 8px 8px 0 0; box-shadow: 0 8px 20px rgba(0,0,0,.3); }
.scn-density-numbers .beaker { position:absolute; bottom:25%; left:20%; width:60px; height:90px; background: linear-gradient(180deg, rgba(180,220,255,.4) 0%, rgba(100,160,220,.3) 100%); border: 2px solid rgba(200,220,255,.5); border-radius: 0 0 12px 12px; box-shadow: inset 0 -30px 20px rgba(100,160,220,.2); animation: dn-beaker 6s ease-in-out infinite; }
.scn-density-numbers .water-column { position:absolute; bottom:30%; left:20%; width:40px; height:70px; background: linear-gradient(0deg, #5a8ab5 0%, #7ab8d8 50%, #b0d4e8 100%); border-radius: 0 0 8px 8px; opacity:.6; animation: dn-water 8s ease-in-out infinite alternate; }
.scn-density-numbers .instrument { position:absolute; bottom:28%; right:25%; width:50px; height:50px; background: radial-gradient(circle at 40% 40%, #d0d8e8 0%, #a0a8b8 100%); border-radius: 30% 30% 40% 40%; box-shadow: 0 4px 8px rgba(0,0,0,.3); animation: dn-instr 5s ease-in-out infinite; }
.scn-density-numbers .light-glare { position:absolute; top:15%; left:60%; width:80px; height:60px; background: radial-gradient(ellipse, rgba(255,255,220,.2) 0%, transparent 70%); filter: blur(10px); animation: dn-glare 10s ease-in-out infinite alternate; }
.scn-density-numbers .particle { position:absolute; bottom:35%; left:30%; width:4px; height:4px; background: #ffddaa; border-radius:50%; box-shadow: 0 0 6px 2px rgba(255,221,170,.5); }
.scn-density-numbers .p1 { animation: dn-float1 7s linear infinite; }
.scn-density-numbers .p2 { left:45%; animation: dn-float2 9s linear infinite; animation-delay: -3s; }
.scn-density-numbers .shadow { position:absolute; bottom:0; left:0; right:0; height:10%; background: linear-gradient(180deg, transparent, rgba(0,0,0,.15)); }
@keyframes dn-beaker { 0% { transform: scale(1) } 50% { transform: scale(1.02) rotate(1deg) } 100% { transform: scale(1) } }
@keyframes dn-water { 0% { opacity:.5; transform: scaleY(1) } 50% { opacity:.7; transform: scaleY(1.03) } 100% { opacity:.6; transform: scaleY(0.97) } }
@keyframes dn-instr { 0% { transform: rotate(0deg) scale(1) } 30% { transform: rotate(5deg) scale(1.05) } 70% { transform: rotate(-3deg) scale(0.95) } 100% { transform: rotate(0deg) scale(1) } }
@keyframes dn-glare { 0% { opacity:.3; transform: translate(0,0) } 50% { opacity:.6; transform: translate(-10px,-5px) } 100% { opacity:.2; transform: translate(10px,5px) } }
@keyframes dn-float1 { 0% { transform: translate(0,0) } 25% { transform: translate(5px,-10px) } 50% { transform: translate(10px,0) } 75% { transform: translate(5px,10px) } 100% { transform: translate(0,0) } }
@keyframes dn-float2 { 0% { transform: translate(0,0) } 25% { transform: translate(-8px,6px) } 50% { transform: translate(-4px,-8px) } 75% { transform: translate(8px,2px) } 100% { transform: translate(0,0) } }

.scn-conclusion-about-europe { background: linear-gradient(180deg, #c8dff0 0%, #a0c0d8 40%, #7a9bb8 100%), radial-gradient(ellipse at 70% 30%, #e0f0ff 0%, transparent 60%); }
.scn-conclusion-about-europe .sea-sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #b8d4e8 0%, #d0e4f0 60%, transparent 100%); animation: ce-skymood 15s ease-in-out infinite alternate; }
.scn-conclusion-about-europe .horizon-line { position:absolute; bottom:40%; left:0; right:0; height:2px; background: #f0e8d0; opacity:.5; box-shadow: 0 0 4px #f0e8d0; }
.scn-conclusion-about-europe .ship-hull { position:absolute; bottom:42%; left:30%; width:80px; height:30px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 40% 60% 20% 20% / 60% 80% 20% 20%; box-shadow: 0 4px 8px rgba(0,0,0,.3); animation: ce-ship 12s ease-in-out infinite; }
.scn-conclusion-about-europe .sail-main { position:absolute; bottom:48%; left:32%; width:30px; height:50px; background: linear-gradient(180deg, #f0e8d0 0%, #d0c8a8 100%); clip-path: polygon(0% 100%, 50% 0%, 100% 100%); animation: ce-sail1 8s ease-in-out infinite alternate; }
.scn-conclusion-about-europe .sail-jib { position:absolute; bottom:48%; left:26%; width:20px; height:35px; background: linear-gradient(180deg, #f0e8d0 0%, #d0c8a8 100%); clip-path: polygon(0% 100%, 100% 0%, 100% 100%); animation: ce-sail2 10s ease-in-out infinite alternate; }
.scn-conclusion-about-europe .lighthouse { position:absolute; bottom:42%; right:20%; width:20px; height:70px; background: linear-gradient(180deg, #e0d0b0 0%, #b0a080 100%); border-radius: 10% 10% 20% 20%; box-shadow: -2px 0 6px rgba(0,0,0,.2); }
.scn-conclusion-about-europe .light-beam { position:absolute; bottom:52%; right:22%; width:80px; height:20px; background: radial-gradient(ellipse at right, rgba(255,250,180,.6) 0%, transparent 80%); transform: rotate(-10deg); transform-origin: right center; filter: blur(4px); animation: ce-beam 4s ease-in-out infinite alternate; }
.scn-conclusion-about-europe .wave-top { position:absolute; bottom:40%; width:100%; height:10px; background: linear-gradient(90deg, transparent 0%, rgba(120,160,190,.3) 20%, transparent 40%, rgba(120,160,190,.3) 60%, transparent 80%); filter: blur(2px); animation: ce-wave 6s linear infinite; }
.scn-conclusion-about-europe .seagull { position:absolute; top:10%; left:60%; width:20px; height:8px; background: #2a2a2a; border-radius: 50%; box-shadow: 0 0 0 2px #2a2a2a; clip-path: polygon(0% 50%, 40% 20%, 50% 50%, 60% 20%, 100% 50%, 60% 60%, 50% 40%, 40% 60%); animation: ce-gull 20s linear infinite; }
@keyframes ce-skymood { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes ce-ship { 0% { transform: translate(0,0) rotate(0deg) } 50% { transform: translate(5px,-1px) rotate(1deg) } 100% { transform: translate(0,0) rotate(0deg) } }
@keyframes ce-sail1 { 0% { transform: scaleY(1) skewX(0deg) } 50% { transform: scaleY(1.05) skewX(-2deg) } 100% { transform: scaleY(1) skewX(0deg) } }
@keyframes ce-sail2 { 0% { transform: scaleY(1) skewX(0deg) } 50% { transform: scaleY(0.95) skewX(2deg) } 100% { transform: scaleY(1) skewX(0deg) } }
@keyframes ce-beam { 0% { opacity:.3; transform: rotate(-15deg) } 50% { opacity:.7; transform: rotate(-5deg) } 100% { opacity:.5; transform: rotate(-10deg) } }
@keyframes ce-wave { 0% { transform: translateX(0) } 100% { transform: translateX(-30px) } }
@keyframes ce-gull { 0% { transform: translateX(0) translateY(0) } 25% { transform: translateX(20vw) translateY(-5px) } 50% { transform: translateX(40vw) translateY(0) } 75% { transform: translateX(60vw) translateY(-8px) } 100% { transform: translateX(80vw) translateY(0) } }

.scn-experiments-continue { background: linear-gradient(180deg, #f0e8d0 0%, #d8d0b8 40%, #b8b098 100%), radial-gradient(ellipse at 20% 30%, #fff8e0 0%, transparent 70%); }
.scn-experiments-continue .bench { position:absolute; bottom:15%; left:10%; right:10%; height:35%; background: linear-gradient(180deg, #a09070 0%, #807050 100%); border-radius: 6px 6px 0 0; box-shadow: 0 8px 20px rgba(0,0,0,.3); }
.scn-experiments-continue .glass-vial { position:absolute; bottom:25%; left:25%; width:30px; height:60px; background: linear-gradient(180deg, rgba(200,230,255,.4) 0%, rgba(140,190,240,.3) 100%); border: 2px solid rgba(200,230,255,.5); border-radius: 0 0 8px 8px; box-shadow: inset 0 -20px 15px rgba(140,190,240,.2); animation: ec-vial 7s ease-in-out infinite; }
.scn-experiments-continue .wire-coil { position:absolute; bottom:30%; left:45%; width:40px; height:30px; background: radial-gradient(circle at 50% 50%, #d0b060 0%, #a08030 100%); border-radius: 50%; box-shadow: 0 0 8px rgba(160,128,48,.4); animation: ec-coil 9s ease-in-out infinite alternate; }
.scn-experiments-continue .glow-dot { position:absolute; bottom:32%; left:47%; width:8px; height:8px; background: #ffe080; border-radius:50%; box-shadow: 0 0 12px 4px rgba(255,224,128,.6); animation: ec-glow 3s ease-in-out infinite alternate; }
.scn-experiments-continue .spark { position:absolute; bottom:35%; left:48%; width:2px; height:2px; background: #ffd040; border-radius:50%; box-shadow: 0 0 6px 2px #ffd040; animation: ec-spark 2s linear infinite; }
.scn-experiments-continue .water-sample { position:absolute; bottom:25%; right:20%; width:40px; height:40px; background: radial-gradient(circle, #5a8ab5 0%, #7ab8d8 60%, transparent 80%); border-radius: 50%; border: 2px solid rgba(100,160,220,.4); animation: ec-sample 11s ease-in-out infinite; }
.scn-experiments-continue .thermometer { position:absolute; bottom:28%; right:35%; width:10px; height:60px; background: linear-gradient(180deg, #ff6060 0%, #ffd0a0 40%, #ffffff 100%); border-radius: 5px; border: 1px solid #a09080; box-shadow: inset 0 2px 4px rgba(0,0,0,.2); animation: ec-therm 8s ease-in-out infinite alternate; }
@keyframes ec-vial { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-2px) scaleY(1.03) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes ec-coil { 0% { transform: rotate(0deg) scale(1) } 50% { transform: rotate(10deg) scale(1.05) } 100% { transform: rotate(0deg) scale(1) } }
@keyframes ec-glow { 0% { opacity:.5; box-shadow: 0 0 8px 2px rgba(255,224,128,.4) } 100% { opacity:1; box-shadow: 0 0 16px 6px rgba(255,224,128,.8) } }
@keyframes ec-spark { 0% { opacity:0; transform: scale(0) } 20% { opacity:1; transform: scale(1) } 40% { opacity:0; transform: scale(1.5) } 100% { opacity:0 } }
@keyframes ec-sample { 0% { transform: rotate(0deg) } 50% { transform: rotate(10deg) } 100% { transform: rotate(0deg) } }
@keyframes ec-therm { 0% { background: linear-gradient(180deg, #ff6060 0%, #ffd0a0 30%, #ffffff 100%) } 50% { background: linear-gradient(180deg, #ff8080 0%, #ffd0a0 40%, #ffffff 100%) } 100% { background: linear-gradient(180deg, #ff6060 0%, #ffd0a0 30%, #ffffff 100%) } }

.scn-nautilus-asleep { background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 30%, #1a1a2e 100%), radial-gradient(ellipse at 50% 80%, #3a3a4e 0%, transparent 70%); }
.scn-nautilus-asleep .hull-wall { position:absolute; inset:0; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.4) 100%); border-radius: 50% 50% 20% 20% / 30% 30% 10% 10%; }
.scn-nautilus-asleep .floor { position:absolute; bottom:0; left:10%; right:10%; height:30%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.5); }
.scn-nautilus-asleep .machine-panel { position:absolute; bottom:25%; left:20%; width:100px; height:120px; background: linear-gradient(180deg, #3a4a5a 0%, #2a3a4a 100%); border-radius: 8px; box-shadow: 0 4px 12px rgba(0,0,0,.6); animation: na-panel 20s ease-in-out infinite; }
.scn-nautilus-asleep .gauge { position:absolute; bottom:35%; left:30%; width:30px; height:30px; background: radial-gradient(circle, #4a6a8a 0%, #2a4a6a 60%, #1a2a3a 100%); border-radius: 50%; border: 2px solid #5a7a9a; box-shadow: inset 0 -4px 8px rgba(0,0,0,.4); animation: na-gauge 12s ease-in-out infinite alternate; }
.scn-nautilus-asleep .dim-lamp { position:absolute; top:20%; left:40%; width:20px; height:20px; background: radial-gradient(circle, #6a8a9a 0%, #3a5a6a 50%, transparent 80%); border-radius: 50%; filter: blur(6px); animation: na-lamp 8s ease-in-out infinite alternate; }
.scn-nautilus-asleep .dust { position:absolute; top:30%; left:50%; width:4px; height:4px; background: rgba(200,220,240,.3); border-radius: 50%; box-shadow: 0 0 4px rgba(200,220,240,.2); animation: na-dust1 15s linear infinite; }
.scn-nautilus-asleep .cable { position:absolute; bottom:20%; left:10%; width:60px; height:6px; background: #5a4a3a; border-radius: 3px; filter: blur(1px); animation: na-cable 25s ease-in-out infinite alternate; }
.scn-nautilus-asleep .vent { position:absolute; bottom:40%; right:15%; width:30px; height:40px; background: linear-gradient(180deg, #3a4a5a 0%, #2a3a4a 100%); border: 2px solid #4a5a6a; border-radius: 10% 10% 20% 20%; box-shadow: inset 0 -8px 12px rgba(0,0,0,.5); animation: na-vent 18s ease-in-out infinite; }
@keyframes na-panel { 0% { box-shadow: 0 4px 12px rgba(0,0,0,.6) } 50% { box-shadow: 0 4px 20px rgba(0,0,0,.8) } 100% { box-shadow: 0 4px 12px rgba(0,0,0,.6) } }
@keyframes na-gauge { 0% { transform: scale(1) rotate(0deg) } 50% { transform: scale(1.05) rotate(5deg) } 100% { transform: scale(1) rotate(0deg) } }
@keyframes na-lamp { 0% { opacity:.4; transform: scale(1) } 50% { opacity:.7; transform: scale(1.1) } 100% { opacity:.5; transform: scale(0.9) } }
@keyframes na-dust1 { 0% { transform: translate(0,0) } 25% { transform: translate(5px,-10px) } 50% { transform: translate(10px,0) } 75% { transform: translate(15px,5px) } 100% { transform: translate(20px,-8px) } }
@keyframes na-cable { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-5px) rotate(2deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes na-vent { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.03) } 100% { transform: scaleY(1) } }

.scn-aronnax-finishes-account { background: linear-gradient(180deg, #c8a87a 0%, #b8986a 40%, #9a7a5a 100%), radial-gradient(ellipse at 50% 30%, #f0e0c0 0%, transparent 70%); }
.scn-aronnax-finishes-account .wall { position:absolute; inset:0; background: linear-gradient(180deg, #e0d0b0 0%, #c8b090 100%); opacity:0.5; animation: af-wall 20s ease-in-out infinite alternate; }
.scn-aronnax-finishes-account .desk { position:absolute; bottom:18%; left:30%; right:30%; height:20%; background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%); border-radius:6% 6% 10% 10% / 80% 80% 20% 20%; box-shadow: inset 0 -4px 8px rgba(0,0,0,.5), 0 6px 12px rgba(0,0,0,.3); transform-origin: bottom center; animation: af-desk 8s ease-in-out infinite; }
.scn-aronnax-finishes-account .chair { position:absolute; bottom:22%; left:40%; width:30px; height:40px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:30% 30% 40% 40% / 50% 50% 30% 30%; transform-origin: bottom center; animation: af-chair 6s ease-in-out infinite; }
.scn-aronnax-finishes-account .lamp { position:absolute; top:20%; left:55%; width:24px; height:36px; background: radial-gradient(circle at 50% 20%, #ffd080 0%, #c08040 60%, #804020 100%); border-radius:30% 30% 10% 10%; box-shadow: 0 0 40px 15px #d09050, 0 0 80px 30px rgba(208,144,80,.4); animation: af-lamp 4s ease-in-out infinite alternate; }
.scn-aronnax-finishes-account .window { position:absolute; top:12%; right:10%; width:30%; height:50%; border: 6px solid #7a6a5a; border-radius:8px; background: linear-gradient(180deg, #2a6a8a 0%, #4a8aaa 50%, #6aaaaa 100%); filter: blur(1px); animation: af-window 15s ease-in-out infinite; }
.scn-aronnax-finishes-account .seascape { position:absolute; top:15%; right:12%; width:26%; height:44%; background: linear-gradient(135deg, #2a8a6a 0%, #4aaa8a 50%, #6acaaa 100%); border-radius:4px; opacity:0.7; animation: af-sea 12s ease-in-out infinite alternate; }
.scn-aronnax-finishes-account .aronnax { position:absolute; bottom:22%; left:45%; width:20px; height:50px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius:40% 40% 30% 30% / 50% 50% 20% 20%; transform-origin: bottom center; animation: af-figure 5s ease-in-out infinite; }
.scn-aronnax-finishes-account .nemo { position:absolute; bottom:20%; left:60%; width:22px; height:55px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:40% 40% 30% 30% / 50% 50% 20% 20%; transform: scaleX(-1); transform-origin: bottom center; animation: af-nemo 5s ease-in-out infinite alternate; }
@keyframes af-wall { 0% { opacity:0.4 } 50% { opacity:0.6 } 100% { opacity:0.5 } }
@keyframes af-desk { 0%,100% { transform: translateY(0) scale(1) } 50% { transform: translateY(-3px) scale(0.98) } }
@keyframes af-chair { 0%,100% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-2px) rotate(1deg) } }
@keyframes af-lamp { 0% { box-shadow: 0 0 20px 8px #d09050, 0 0 40px 16px rgba(208,144,80,.3); opacity:0.9 } 50% { box-shadow: 0 0 50px 20px #ffd080, 0 0 100px 40px rgba(255,208,128,.5); opacity:1 } 100% { box-shadow: 0 0 30px 12px #d09050, 0 0 60px 24px rgba(208,144,80,.35); opacity:0.95 } }
@keyframes af-window { 0% { filter: blur(2px) } 50% { filter: blur(0) } 100% { filter: blur(1px) } }
@keyframes af-sea { 0% { opacity:0.5; transform: scaleX(1) } 50% { opacity:0.8; transform: scaleX(0.95) } 100% { opacity:0.7; transform: scaleX(1) } }
@keyframes af-figure { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(4px) rotate(2deg) } 50% { transform: translateX(0) rotate(0) } 75% { transform: translateX(-4px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes af-nemo { 0% { transform: scaleX(-1) translateX(0) } 50% { transform: scaleX(-1) translateX(3px) } 100% { transform: scaleX(-1) translateX(0) } }

.scn-nemo-reveals-truth { background: linear-gradient(180deg, #5a8a9a 0%, #3a5a6a 50%, #1a2a3a 100%), radial-gradient(ellipse at 70% 20%, #aad0e0 0%, transparent 60%); }
.scn-nemo-reveals-truth .frame { position:absolute; top:10%; left:5%; right:5%; bottom:10%; border: 8px solid #7a6a5a; border-radius:12px; background: linear-gradient(180deg, #0a2a3a 0%, #2a4a5a 100%); box-shadow: inset 0 0 40px rgba(0,0,0,.5); animation: rt-frame 18s ease-in-out infinite alternate; }
.scn-nemo-reveals-truth .coral1 { position:absolute; bottom:20%; left:20%; width:80px; height:30px; background: linear-gradient(180deg, #c08050 0%, #a06030 100%); border-radius:50% 50% 30% 30% / 80% 80% 20% 20%; box-shadow: inset 0 4px 8px rgba(0,0,0,.3); transform: rotate(-10deg); animation: rt-coral1 12s ease-in-out infinite; }
.scn-nemo-reveals-truth .coral2 { position:absolute; bottom:25%; right:25%; width:60px; height:25px; background: linear-gradient(180deg, #d09060 0%, #b07040 100%); border-radius:40% 60% 20% 40% / 60% 80% 20% 30%; transform: rotate(15deg); animation: rt-coral2 15s ease-in-out infinite reverse; }
.scn-nemo-reveals-truth .fish1 { position:absolute; top:30%; left:10%; width:40px; height:15px; background: linear-gradient(90deg, #f0a060 0%, #e08040 100%); border-radius:50% 50% 20% 20% / 100% 100% 20% 20%; transform: scale(0.8); animation: rt-fish1 20s linear infinite; }
.scn-nemo-reveals-truth .fish2 { position:absolute; top:40%; right:15%; width:35px; height:12px; background: linear-gradient(90deg, #f0b080 0%, #d09060 100%); border-radius:50% 50% 20% 20% / 100% 100% 20% 20%; animation: rt-fish2 25s linear infinite reverse; }
.scn-nemo-reveals-truth .lightray { position:absolute; top:0; left:55%; width:40%; height:60%; background: linear-gradient(135deg, rgba(255,255,200,0.3) 0%, transparent 100%); clip-path: polygon(0 0, 100% 0, 60% 100%, 20% 100%); animation: rt-lightray 8s ease-in-out infinite alternate; }
.scn-nemo-reveals-truth .bubbles { position:absolute; bottom:5%; left:50%; width:10px; height:10px; background: rgba(200,230,255,0.5); border-radius:50%; box-shadow: 0 -20px 0 0 rgba(200,230,255,0.3), 0 -40px 0 0 rgba(200,230,255,0.2); animation: rt-bubbles 6s ease-in-out infinite; }
@keyframes rt-frame { 0% { border-color: #6a5a4a } 50% { border-color: #8a7a6a } 100% { border-color: #6a5a4a } }
@keyframes rt-coral1 { 0% { transform: rotate(-10deg) translateY(0) } 50% { transform: rotate(-5deg) translateY(-3px) } 100% { transform: rotate(-10deg) translateY(0) } }
@keyframes rt-coral2 { 0% { transform: rotate(15deg) translateY(0) } 50% { transform: rotate(10deg) translateY(-2px) } 100% { transform: rotate(15deg) translateY(0) } }
@keyframes rt-fish1 { 0% { transform: translateX(-50px) scale(0.8) } 100% { transform: translateX(120vw) scale(0.8) } }
@keyframes rt-fish2 { 0% { transform: translateX(50px) } 100% { transform: translateX(-120vw) } }
@keyframes rt-lightray { 0% { opacity:0.3 } 50% { opacity:0.6 } 100% { opacity:0.4 } }
@keyframes rt-bubbles { 0% { transform: translateY(0) scale(1); opacity:0.5 } 50% { transform: translateY(-30px) scale(1.2); opacity:0.8 } 100% { transform: translateY(-60px) scale(0.8); opacity:0 } }

.scn-nemo-tells-final-fate { background: linear-gradient(180deg, #4a6a7a 0%, #2a4a5a 50%, #1a2a3a 100%), radial-gradient(ellipse at 50% 60%, #6a8a9a 0%, transparent 70%); }
.scn-nemo-tells-final-fate .table { position:absolute; bottom:10%; left:20%; right:20%; height:20%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:20% 20% 10% 10% / 60% 60% 20% 20%; box-shadow: inset 0 4px 8px rgba(0,0,0,.4); animation: ff-table 14s ease-in-out infinite alternate; }
.scn-nemo-tells-final-fate .map { position:absolute; bottom:20%; left:25%; width:50%; height:30%; background: linear-gradient(135deg, #c8a87a 0%, #a8886a 100%); border-radius:4px; clip-path: polygon(0 0, 100% 0, 90% 100%, 10% 100%); box-shadow: 0 4px 8px rgba(0,0,0,.3); transform: rotate(-3deg); transform-origin: center; animation: ff-map 20s ease-in-out infinite; }
.scn-nemo-tells-final-fate .ship1 { position:absolute; bottom:30%; left:20%; width:50px; height:20px; background: linear-gradient(90deg, #3a2a1a 0%, #1a0a0a 100%); border-radius:10% 60% 30% 10% / 40% 70% 20% 30%; clip-path: polygon(0 20%, 100% 20%, 80% 100%, 20% 100%); transform: rotate(10deg); animation: ff-ship1 25s ease-in-out infinite alternate; }
.scn-nemo-tells-final-fate .ship2 { position:absolute; bottom:25%; left:60%; width:45px; height:18px; background: linear-gradient(90deg, #2a1a0a 0%, #0a0a00 100%); border-radius:10% 60% 30% 10% / 40% 70% 20% 30%; clip-path: polygon(0 20%, 100% 20%, 80% 100%, 20% 100%); transform: rotate(-5deg) scale(0.9); animation: ff-ship2 30s ease-in-out infinite alternate; }
.scn-nemo-tells-final-fate .arrow { position:absolute; bottom:35%; left:40%; width:30px; height:4px; background: #c8c0a0; clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%); transform: translate(0,0); animation: ff-arrow 6s ease-in-out infinite; }
.scn-nemo-tells-final-fate .hand { position:absolute; bottom:32%; left:45%; width:12px; height:30px; background: linear-gradient(180deg, #c0a070 0%, #a08060 100%); border-radius:30% 30% 20% 20% / 50% 50% 20% 20%; transform-origin: bottom; animation: ff-hand 8s ease-in-out infinite alternate; }
@keyframes ff-table { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes ff-map { 0% { transform: rotate(-3deg) scale(1) } 50% { transform: rotate(0deg) scale(0.98) } 100% { transform: rotate(-3deg) scale(1) } }
@keyframes ff-ship1 { 0% { transform: rotate(10deg) translateX(0) } 50% { transform: rotate(8deg) translateX(3px) } 100% { transform: rotate(10deg) translateX(0) } }
@keyframes ff-ship2 { 0% { transform: rotate(-5deg) scale(0.9) translateX(0) } 50% { transform: rotate(-3deg) scale(0.9) translateX(-2px) } 100% { transform: rotate(-5deg) scale(0.9) translateX(0) } }
@keyframes ff-arrow { 0% { transform: translate(0,0); opacity:0.5 } 50% { transform: translate(5px,0); opacity:1 } 100% { transform: translate(0,0); opacity:0.5 } }
@keyframes ff-hand { 0% { transform: rotate(-5deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(-5deg) } }

.scn-final-shipwreck-detail { background: linear-gradient(180deg, #4a6a7a 0%, #2a4a5a 60%, #1a2a3a 100%), radial-gradient(ellipse at 30% 80%, #7a9aaa 0%, transparent 70%); }
.scn-final-shipwreck-detail .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #6a8a9a 0%, #4a6a7a 100%); animation: sd-sky 20s ease-in-out infinite alternate; }
.scn-final-shipwreck-detail .ocean { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #2a5a6a 0%, #1a3a4a 100%); animation: sd-ocean 15s ease-in-out infinite; }
.scn-final-shipwreck-detail .reef { position:absolute; bottom:30%; left:5%; right:5%; height:15%; background: linear-gradient(180deg, #5a7a6a 0%, #3a5a4a 100%); border-radius:50% 50% 0 0 / 80% 80% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.3); animation: sd-reef 18s ease-in-out infinite alternate; }
.scn-final-shipwreck-detail .compass { position:absolute; bottom:35%; left:10%; width:70px; height:30px; background: linear-gradient(90deg, #4a3a2a 0%, #2a1a0a 100%); clip-path: polygon(0 30%, 100% 30%, 80% 100%, 20% 100%); transform: rotate(15deg); box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: sd-compass 30s ease-in-out infinite; }
.scn-final-shipwreck-detail .astrolabe { position:absolute; bottom:30%; left:55%; width:60px; height:25px; background: linear-gradient(90deg, #3a2a1a 0%, #1a0a00 100%); clip-path: polygon(0 30%, 100% 30%, 80% 100%, 20% 100%); transform: rotate(-10deg) scale(0.9); box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: sd-astrolabe 35s ease-in-out infinite reverse; }
.scn-final-shipwreck-detail .breakers { position:absolute; bottom:42%; left:0; right:0; height:10%; background: linear-gradient(90deg, rgba(255,255,255,0.3) 0%, rgba(200,220,230,0.2) 50%, rgba(255,255,255,0.3) 100%); filter: blur(2px); animation: sd-breakers 8s ease-in-out infinite alternate; }
.scn-final-shipwreck-detail .coral { position:absolute; bottom:32%; left:30%; width:20px; height:10px; background: #a08060; border-radius:50% 50% 20% 20% / 80% 80% 20% 20%; box-shadow: 0 0 10px 2px rgba(160,128,96,0.5); animation: sd-coral 12s ease-in-out infinite; }
@keyframes sd-sky { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes sd-ocean { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes sd-reef { 0% { transform: scaleY(1) } 50% { transform: scaleY(0.95) } 100% { transform: scaleY(1) } }
@keyframes sd-compass { 0% { transform: rotate(15deg) translateX(0) } 50% { transform: rotate(12deg) translateX(2px) } 100% { transform: rotate(15deg) translateX(0) } }
@keyframes sd-astrolabe { 0% { transform: rotate(-10deg) scale(0.9) translateX(0) } 50% { transform: rotate(-8deg) scale(0.9) translateX(-2px) } 100% { transform: rotate(-10deg) scale(0.9) translateX(0) } }
@keyframes sd-breakers { 0% { opacity:0.3; filter: blur(2px) } 50% { opacity:0.6; filter: blur(0) } 100% { opacity:0.3; filter: blur(2px) } }
@keyframes sd-coral { 0% { transform: scale(1) } 50% { transform: scale(1.1) } 100% { transform: scale(1) } }

.scn-maelstrom-vortex {
  background:
    linear-gradient(180deg, #0a0a2e 0%, #1a1a4e 40%, #0f0f3a 100%),
    radial-gradient(ellipse at 50% 30%, #2a2a6e 0%, transparent 70%);
  overflow: hidden;
}
.scn-maelstrom-vortex .sky { position: absolute; inset: 0 0 50% 0; background: linear-gradient(180deg, #14144a 0%, transparent 100%); animation: mv-sky 12s ease-in-out infinite alternate; }
.scn-maelstrom-vortex .moon { position: absolute; top: 12%; left: 70%; width: 40px; height: 40px; background: radial-gradient(circle, #d0d0f0 0%, #8080a0 70%); border-radius: 50%; box-shadow: 0 0 40px 10px rgba(160,160,200,0.4); animation: mv-moon 8s ease-in-out infinite alternate; }
.scn-maelstrom-vortex .vortex { position: absolute; top: 20%; left: 50%; width: 120px; height: 160px; transform: translate(-50%, -10%); background: radial-gradient(ellipse at 50% 50%, #2a3a5a 0%, #0a1a2a 40%, transparent 70%); border-radius: 50%; box-shadow: inset 0 0 30px #0a0a2a; animation: mv-vortex 6s linear infinite; }
.scn-maelstrom-vortex .wave-a { position: absolute; bottom: 20%; left: 0; right: 0; height: 30%; background: linear-gradient(135deg, transparent 30%, #3a5a7a 60%, transparent 90%); border-radius: 40% 60% 0 0; animation: mv-wave 4s ease-in-out infinite; }
.scn-maelstrom-vortex .wave-b { position: absolute; bottom: 10%; left: 0; right: 0; height: 25%; background: linear-gradient(225deg, transparent 20%, #2a4a6a 50%, transparent 80%); border-radius: 60% 40% 0 0; animation: mv-wave 4.5s ease-in-out infinite reverse; }
.scn-maelstrom-vortex .debris { position: absolute; top: 40%; left: 30%; width: 8px; height: 6px; background: #4a3a2a; border-radius: 40%; box-shadow: 0 0 4px #2a1a0a; animation: mv-debris 9s linear infinite; }
.scn-maelstrom-vortex .clouds { position: absolute; top: 8%; left: -10%; width: 120px; height: 20px; background: linear-gradient(90deg, rgba(200,200,240,0.3), rgba(200,200,240,0.05)); filter: blur(8px); border-radius: 50%; animation: mv-clouds 30s linear infinite; }

@keyframes mv-sky { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes mv-moon { 0% { transform: scale(0.95); box-shadow: 0 0 30px 8px rgba(160,160,200,0.3); } 50% { transform: scale(1.05); box-shadow: 0 0 50px 12px rgba(160,160,200,0.5); } 100% { transform: scale(0.98); box-shadow: 0 0 35px 9px rgba(160,160,200,0.35); } }
@keyframes mv-vortex { 0% { transform: translate(-50%, -10%) rotate(0deg); } 100% { transform: translate(-50%, -10%) rotate(360deg); } }
@keyframes mv-wave { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-8px) scaleY(1.1); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes mv-debris { 0% { transform: translate(0, 0) rotate(0deg); opacity: 1; } 50% { transform: translate(20px, -30px) rotate(180deg) scale(1.3); opacity: 0.6; } 100% { transform: translate(40px, -10px) rotate(360deg); opacity: 0; } }
@keyframes mv-clouds { 0% { transform: translateX(-120px); } 100% { transform: translateX(100vw); } }

.scn-escape-lofoten-islands {
  background:
    linear-gradient(180deg, #faf0e0 0%, #e8dcc8 50%, #d4c4a8 100%),
    radial-gradient(ellipse at 50% 100%, #c8b898 0%, transparent 80%);
  overflow: hidden;
}
.scn-escape-lofoten-islands .wall { position: absolute; inset: 0 0 30% 0; background: linear-gradient(180deg, #e8dcc8 0%, #d4c0a0 100%); box-shadow: inset 0 4px 20px rgba(0,0,0,0.1); }
.scn-escape-lofoten-islands .floor { position: absolute; bottom: 0; left: 0; right: 0; height: 30%; background: linear-gradient(180deg, #b8a080 0%, #8a7050 100%); }
.scn-escape-lofoten-islands .table { position: absolute; bottom: 25%; left: 50%; width: 80px; height: 12px; transform: translateX(-50%); background: #a08060; border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.2); }
.scn-escape-lofoten-islands .lamp { position: absolute; bottom: 36%; left: 50%; width: 16px; height: 24px; transform: translateX(-50%); background: radial-gradient(circle at 50% 0%, #f0d080 0%, #d0a050 70%); border-radius: 30% 30% 10% 10%; box-shadow: 0 0 30px 8px #f0d080, 0 0 60px 16px rgba(240,208,128,0.3); animation: el-lamp 4s ease-in-out infinite alternate; }
.scn-escape-lofoten-islands .chair { position: absolute; bottom: 22%; left: 40%; width: 30px; height: 40px; background: linear-gradient(180deg, #c0a080 0%, #806040 100%); border-radius: 10% 10% 40% 40%; transform-origin: bottom; animation: el-chair 6s ease-in-out infinite; }
.scn-escape-lofoten-islands .window { position: absolute; top: 12%; left: 60%; width: 50px; height: 70px; background: linear-gradient(180deg, #a0c0e0 0%, #7090b0 100%); border: 4px solid #806040; border-radius: 4px; box-shadow: inset 0 0 20px rgba(160,192,224,0.5); animation: el-window 8s ease-in-out infinite alternate; }

@keyframes el-lamp { 0% { opacity: 0.85; box-shadow: 0 0 20px 6px #f0d080; } 50% { opacity: 1; box-shadow: 0 0 40px 12px #f0d080; } 100% { opacity: 0.9; box-shadow: 0 0 25px 8px #f0d080; } }
@keyframes el-chair { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(2deg); } }
@keyframes el-window { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.75; } }

.scn-conclusion-review {
  background:
    linear-gradient(180deg, #f5eedc 0%, #e4d6c0 50%, #d0bea0 100%),
    radial-gradient(ellipse at 30% 40%, #f0e4d0 0%, transparent 60%);
  overflow: hidden;
}
.scn-conclusion-review .wall { position: absolute; inset: 0 0 25% 0; background: linear-gradient(180deg, #e4d6c0 0%, #d0bea0 100%); box-shadow: inset 0 4px 20px rgba(0,0,0,0.08); }
.scn-conclusion-review .desk { position: absolute; bottom: 22%; left: 50%; width: 100px; height: 16px; transform: translateX(-50%); background: #8a7050; border-radius: 4px; box-shadow: 0 4px 10px rgba(0,0,0,0.2); }
.scn-conclusion-review .papers { position: absolute; bottom: 30%; left: 46%; width: 40px; height: 28px; background: linear-gradient(180deg, #faf0e0 0%, #e8dcc8 100%); border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.1); animation: cr-papers 5s ease-in-out infinite; }
.scn-conclusion-review .inkwell { position: absolute; bottom: 30%; left: 58%; width: 12px; height: 14px; background: #2a2a3a; border-radius: 30% 30% 10% 10%; box-shadow: 0 2px 4px rgba(0,0,0,0.3); }
.scn-conclusion-review .quill { position: absolute; bottom: 34%; left: 57%; width: 20px; height: 4px; background: #c0b090; border-radius: 40%; transform-origin: left center; animation: cr-quill 3s ease-in-out infinite; }
.scn-conclusion-review .globe { position: absolute; top: 30%; right: 15%; width: 30px; height: 30px; background: radial-gradient(circle at 40% 40%, #a0c0a0 0%, #608060 60%, #406040 100%); border-radius: 50%; box-shadow: 0 4px 8px rgba(0,0,0,0.2); animation: cr-globe 12s linear infinite; }
.scn-conclusion-review .window { position: absolute; top: 10%; left: 10%; width: 40px; height: 60px; background: linear-gradient(180deg, #b0d0e8 0%, #8098b8 100%); border: 4px solid #706050; border-radius: 4px; box-shadow: inset 0 0 10px rgba(0,0,0,0.1); }

@keyframes cr-papers { 0%,100% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-2px) rotate(2deg); } }
@keyframes cr-quill { 0%,100% { transform: rotate(-10deg); } 50% { transform: rotate(5deg); } }
@keyframes cr-globe { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }

.scn-conclusion-nemo-fate {
  background:
    linear-gradient(180deg, #f0ead8 0%, #dcc8b0 50%, #c8b090 100%),
    radial-gradient(ellipse at 60% 60%, #e8dcc0 0%, transparent 60%);
  overflow: hidden;
}
.scn-conclusion-nemo-fate .wall { position: absolute; inset: 0 0 30% 0; background: linear-gradient(180deg, #dcc8b0 0%, #c8b090 100%); }
.scn-conclusion-nemo-fate .floor { position: absolute; bottom: 0; left: 0; right: 0; height: 30%; background: linear-gradient(180deg, #a08870 0%, #705840 100%); }
.scn-conclusion-nemo-fate .porthole { position: absolute; top: 15%; right: 20%; width: 50px; height: 50px; background: radial-gradient(circle at 50% 50%, #6090b0 0%, #305070 100%); border: 4px solid #605040; border-radius: 50%; box-shadow: inset 0 0 30px rgba(100,150,180,0.5); animation: nf-porthole 6s ease-in-out infinite alternate; }
.scn-conclusion-nemo-fate .figure { position: absolute; bottom: 22%; left: 30%; width: 20px; height: 50px; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: nf-figure 4s ease-in-out infinite; }
.scn-conclusion-nemo-fate .desk { position: absolute; bottom: 25%; left: 25%; width: 80px; height: 14px; background: #7a6a5a; border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.2); }
.scn-conclusion-nemo-fate .chart { position: absolute; bottom: 32%; left: 22%; width: 50px; height: 30px; background: linear-gradient(180deg, #e8dcc8 0%, #d0bea0 100%); border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.1); transform-origin: bottom left; animation: nf-chart 8s ease-in-out infinite; }

@keyframes nf-porthole { 0% { box-shadow: inset 0 0 20px rgba(100,150,180,0.3); opacity: 0.8; } 50% { box-shadow: inset 0 0 40px rgba(100,150,180,0.7); opacity: 1; } 100% { box-shadow: inset 0 0 25px rgba(100,150,180,0.4); opacity: 0.85; } }
@keyframes nf-figure { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } }
@keyframes nf-chart { 0%,100% { transform: rotate(0deg) scaleX(1); } 50% { transform: rotate(2deg) scaleX(1.03); } }

.scn-northern-flight {
  background: linear-gradient(180deg, #0d1b2a 0%, #1b2a3e 40%, #243447 100%), radial-gradient(ellipse at 50% 20%, #3a5a7a 0%, transparent 70%);
}
.scn-northern-flight .moon {
  position: absolute; top: 12%; right: 20%; width: 50px; height: 50px;
  background: radial-gradient(circle, #e0e8f0 0%, #a0b8d0 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 15px rgba(160,184,208,0.4);
  animation: nf-moon 20s ease-in-out infinite alternate;
}
.scn-northern-flight .cloud-a {
  position: absolute; top: 18%; left: 0; width: 120px; height: 20px;
  background: linear-gradient(90deg, rgba(200,210,230,0.3) 0%, rgba(200,210,230,0.1) 100%);
  border-radius: 50%; filter: blur(6px);
  animation: nf-drift-a 45s linear infinite;
}
.scn-northern-flight .cloud-b {
  position: absolute; top: 8%; right: -40px; width: 100px; height: 16px;
  background: linear-gradient(90deg, rgba(200,210,230,0.2) 0%, rgba(200,210,230,0.05) 100%);
  border-radius: 50%; filter: blur(4px);
  animation: nf-drift-b 55s linear infinite reverse;
}
.scn-northern-flight .sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #1a2a3a 0%, #0d1a2a 100%);
  border-top: 2px solid rgba(160,184,208,0.15);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.5);
  animation: nf-sea 12s ease-in-out infinite alternate;
}
.scn-northern-flight .ship {
  position: absolute; bottom: 42%; left: 30%; width: 80px; height: 30px;
  background: linear-gradient(180deg, #2a2a2a 0%, #111 100%);
  border-radius: 0 0 20% 20%;
  transform-origin: center bottom;
  animation: nf-rock 6s ease-in-out infinite;
}
.scn-northern-flight .ship::after {
  content: ''; position: absolute; bottom: 100%; left: 50%; transform: translateX(-50%);
  width: 2px; height: 25px; background: #1a1a1a;
}
.scn-northern-flight .window-frame {
  position: absolute; bottom: 28%; left: 6%; width: 70px; height: 60px;
  background: linear-gradient(135deg, #2a3a4a 0%, #1a2a3a 100%);
  border-radius: 20% 20% 10% 10%;
  border: 3px solid #3a4a5a;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.7);
  overflow: hidden;
}
.scn-northern-flight .figure {
  position: absolute; bottom: 30%; left: 10%; width: 16px; 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: nf-figure 4s ease-in-out infinite;
}
.scn-northern-flight .porthole-glow {
  position: absolute; bottom: 28%; left: 6%; width: 70px; height: 60px;
  background: radial-gradient(ellipse at 30% 50%, rgba(200,200,220,0.15) 0%, transparent 70%);
  border-radius: 20% 20% 10% 10%;
  animation: nf-glow 3s ease-in-out infinite alternate;
}
@keyframes nf-moon {
  0% { transform: translateY(0); opacity: 0.9; }
  50% { transform: translateY(-3px); box-shadow: 0 0 50px 20px rgba(160,184,208,0.5); }
  100% { transform: translateY(2px); opacity: 0.85; }
}
@keyframes nf-drift-a {
  0% { transform: translateX(-120px); }
  100% { transform: translateX(calc(100vw + 120px)); }
}
@keyframes nf-drift-b {
  0% { transform: translateX(100px); }
  100% { transform: translateX(-120vw); }
}
@keyframes nf-sea {
  0% { transform: translateY(0); }
  50% { transform: translateY(4px); }
  100% { transform: translateY(-2px); }
}
@keyframes nf-rock {
  0%, 100% { transform: rotate(0deg) translateY(0); }
  25% { transform: rotate(-1deg) translateY(-1px); }
  75% { transform: rotate(1deg) translateY(1px); }
}
@keyframes nf-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 nf-glow {
  0% { opacity: 0.4; }
  50% { opacity: 0.8; }
  100% { opacity: 0.5; }
}

.scn-arctic-disorientation {
  background: linear-gradient(180deg, #2a3035 0%, #3a4045 30%, #4a5055 60%, #5a6065 100%), radial-gradient(ellipse at 50% 0%, #7a8085 0%, transparent 60%);
}
.scn-arctic-disorientation .sky-overcast {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #2a3035 0%, #3a4045 40%, #4a5055 100%);
  animation: ad-sky 15s ease-in-out infinite alternate;
}
.scn-arctic-disorientation .ice-field {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #8a8a8a 0%, #6a6a6a 30%, #4a4a4a 100%);
  border-radius: 30% 70% 0 0 / 50% 60% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.3);
  animation: ad-ice 20s ease-in-out infinite alternate;
}
.scn-arctic-disorientation .berg-left {
  position: absolute; bottom: 35%; left: 10%; width: 90px; height: 60px;
  background: linear-gradient(180deg, #9a9a9a 0%, #7a7a7a 100%);
  clip-path: polygon(0% 100%, 20% 30%, 50% 0%, 80% 50%, 100% 100%);
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: ad-berg 25s ease-in-out infinite;
}
.scn-arctic-disorientation .berg-right {
  position: absolute; bottom: 32%; right: 8%; width: 70px; height: 50px;
  background: linear-gradient(180deg, #8a8a8a 0%, #6a6a6a 100%);
  clip-path: polygon(0% 100%, 30% 40%, 60% 10%, 90% 50%, 100% 100%);
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: ad-berg 30s ease-in-out infinite reverse;
}
.scn-arctic-disorientation .figure-wander {
  position: absolute; bottom: 30%; left: 40%; width: 14px; height: 38px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ad-walk 6s ease-in-out infinite;
}
.scn-arctic-disorientation .flag {
  position: absolute; bottom: 38%; left: 35%; width: 2px; height: 20px;
  background: #1a1a1a;
}
.scn-arctic-disorientation .flag:after {
  content: ''; position: absolute; top: 0; left: 2px; width: 12px; height: 8px;
  background: #2a2a2a; border-radius: 0 50% 50% 0;
}
.scn-arctic-disorientation .fog {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 30%;
  background: linear-gradient(90deg, rgba(200,200,200,0.1) 0%, rgba(200,200,200,0.2) 50%, rgba(200,200,200,0.1) 100%);
  filter: blur(8px);
  animation: ad-fog 12s ease-in-out infinite alternate;
}
@keyframes ad-sky {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes ad-ice {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-4px) scaleY(1.02); }
  100% { transform: translateY(2px) scaleY(0.98); }
}
@keyframes ad-berg {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-2px) rotate(1deg); }
  50% { transform: translateY(-5px) rotate(0deg); }
  75% { transform: translateY(-2px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes ad-walk {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  20% { transform: translateX(5px) translateY(-1px) rotate(2deg); }
  40% { transform: translateX(10px) translateY(0) rotate(0deg); }
  60% { transform: translateX(15px) translateY(-1px) rotate(-2deg); }
  80% { transform: translateX(20px) translateY(0) rotate(0deg); }
  100% { transform: translateX(25px) translateY(0) rotate(0deg); }
}
@keyframes ad-fog {
  0% { transform: translateX(-10px); }
  50% { transform: translateX(10px); }
  100% { transform: translateX(-5px); }
}

.scn-crew-disappearance {
  background: linear-gradient(180deg, #1a1a1a 0%, #2a2a2a 40%, #1a1a1a 100%), radial-gradient(ellipse at 50% 50%, #3a3a3a 0%, transparent 70%);
}
.scn-crew-disappearance .corridor-bg {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, #1a1a1a 0%, #2a2a2a 50%, #1a1a1a 100%);
  box-shadow: inset 0 0 30px rgba(0,0,0,0.8);
  animation: cd-bg 18s ease-in-out infinite alternate;
}
.scn-crew-disappearance .wall-left {
  position: absolute; top: 10%; bottom: 10%; left: 5%; width: 15%;
  background: linear-gradient(90deg, #2a2a2a 0%, #1a1a1a 100%);
  border-right: 2px solid #3a3a3a;
  box-shadow: inset -10px 0 20px rgba(0,0,0,0.5);
}
.scn-crew-disappearance .wall-right {
  position: absolute; top: 10%; bottom: 10%; right: 5%; width: 15%;
  background: linear-gradient(270deg, #2a2a2a 0%, #1a1a1a 100%);
  border-left: 2px solid #3a3a3a;
  box-shadow: inset 10px 0 20px rgba(0,0,0,0.5);
}
.scn-crew-disappearance .hatch-door {
  position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%);
  width: 60px; height: 80px;
  background: linear-gradient(180deg, #3a3a3a 0%, #2a2a2a 100%);
  border-radius: 10% 10% 5% 5%;
  border: 2px solid #4a4a4a;
  box-shadow: 0 0 15px rgba(0,0,0,0.7);
  animation: cd-hatch 8s ease-in-out infinite;
}
.scn-crew-disappearance .pipe {
  position: absolute; top: 20%; left: 30%; width: 4px; height: 60%;
  background: linear-gradient(180deg, #4a4a4a 0%, #3a3a3a 100%);
  border-radius: 2px;
  box-shadow: 2px 0 0 #2a2a2a, -2px 0 0 #2a2a2a;
  animation: cd-pipe 12s ease-in-out infinite alternate;
}
.scn-crew-disappearance .light-fixture {
  position: absolute; top: 12%; left: 50%; transform: translateX(-50%);
  width: 20px; height: 10px;
  background: linear-gradient(180deg, #5a5a5a 0%, #3a3a3a 100%);
  border-radius: 50% 50% 0 0;
}
.scn-crew-disappearance .light-fixture::after {
  content: ''; position: absolute; bottom: 0; left: 50%; transform: translateX(-50%);
  width: 6px; height: 6px;
  background: radial-gradient(circle, #6a6a6a 0%, transparent 100%);
  border-radius: 50%;
  animation: cd-light 3s ease-in-out infinite alternate;
}
.scn-crew-disappearance .shadow-figure {
  position: absolute; bottom: 20%; left: 60%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #0a0a0a 0%, #000 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  opacity: 0.3;
  animation: cd-shadow 6s ease-in-out infinite;
}
@keyframes cd-bg {
  0% { opacity: 1; }
  50% { opacity: 0.8; }
  100% { opacity: 0.9; }
}
@keyframes cd-hatch {
  0% { transform: translate(-50%, -50%) scaleY(1); }
  25% { transform: translate(-50%, -50%) scaleY(0.98); }
  50% { transform: translate(-50%, -50%) scaleY(1); }
  75% { transform: translate(-50%, -50%) scaleY(1.02); }
  100% { transform: translate(-50%, -50%) scaleY(1); }
}
@keyframes cd-pipe {
  0% { transform: scaleY(1); opacity: 0.8; }
  50% { transform: scaleY(1.02); opacity: 1; }
  100% { transform: scaleY(0.98); opacity: 0.7; }
}
@keyframes cd-light {
  0% { box-shadow: 0 0 4px 2px #6a6a6a; }
  50% { box-shadow: 0 0 8px 4px #8a8a8a; }
  100% { box-shadow: 0 0 6px 3px #6a6a6a; }
}
@keyframes cd-shadow {
  0% { transform: translateX(0); opacity: 0.2; }
  25% { transform: translateX(-5px); opacity: 0.4; }
  50% { transform: translateX(-10px); opacity: 0.1; }
  75% { transform: translateX(-5px); opacity: 0.3; }
  100% { transform: translateX(0); opacity: 0.2; }
}

.scn-escape-plan-revived {
  background: linear-gradient(180deg, #1a1410 0%, #2a2018 50%, #1a1410 100%), radial-gradient(ellipse at 50% 60%, #3a2a1a 0%, transparent 70%);
}
.scn-escape-plan-revived .cabin-wall {
  position: absolute; inset: 8% 8% 5% 5%;
  background: linear-gradient(135deg, #2a1e14 0%, #1a1410 100%);
  border-radius: 4% 4% 2% 2%;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.8);
}
.scn-escape-plan-revived .bunk-base {
  position: absolute; bottom: 15%; left: 20%; width: 60%; height: 15%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 5% 5% 2% 2%;
  box-shadow: inset 0 -5px 10px rgba(0,0,0,0.5);
}
.scn-escape-plan-revived .blanket {
  position: absolute; bottom: 18%; left: 22%; width: 50%; height: 8%;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 20% 20%;
  animation: ep-blanket 4s ease-in-out infinite alternate;
}
.scn-escape-plan-revived .figure-sitting {
  position: absolute; bottom: 18%; left: 35%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #1a1410 0%, #0a0805 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ep-sit 2s ease-in-out infinite alternate;
}
.scn-escape-plan-revived .figure-leaning {
  position: absolute; bottom: 18%; left: 50%; width: 16px; height: 38px;
  background: linear-gradient(180deg, #1a1410 0%, #0a0805 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ep-lean 3s ease-in-out infinite;
}
.scn-escape-plan-revived .lantern {
  position: absolute; top: 20%; right: 12%; width: 18px; height: 24px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 8px 2px #6a4a2a;
  animation: ep-lantern 5s ease-in-out infinite alternate;
}
.scn-escape-plan-revived .lantern-glow {
  position: absolute; top: 18%; right: 10%; width: 40px; height: 40px;
  background: radial-gradient(circle, rgba(100,70,40,0.3) 0%, transparent 100%);
  border-radius: 50%;
  animation: ep-glow 4s ease-in-out infinite alternate;
}
@keyframes ep-blanket {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(1px); }
}
@keyframes ep-sit {
  0% { transform: translateX(0) rotate(0deg); }
  100% { transform: translateX(2px) rotate(2deg); }
}
@keyframes ep-lean {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(-3px) rotate(-5deg); }
  50% { transform: translateX(0) rotate(0deg); }
  75% { transform: translateX(-3px) rotate(-5deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes ep-lantern {
  0% { box-shadow: 0 0 6px 2px #6a4a2a; }
  50% { box-shadow: 0 0 12px 6px #8a6030; }
  100% { box-shadow: 0 0 8px 3px #6a4a2a; }
}
@keyframes ep-glow {
  0% { opacity: 0.6; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.1); }
  100% { opacity: 0.7; transform: scale(0.95); }
}

.scn-ned's-fiancée {
  background: linear-gradient(180deg, #f5e6c8 0%, #d9c4a0 30%, #b8a080 60%, #8a7050 100%),
              radial-gradient(ellipse at 40% 60%, rgba(255,220,140,0.4) 0%, transparent 50%);
}
.scn-ned's-fiancée .room-bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #e8d5b8 0%, #c4a77a 40%, #9c7f5a 100%);
  animation: nf-room 12s ease-in-out infinite alternate;
}
.scn-ned's-fiancée .table {
  position: absolute; bottom: 10%; left: 50%; width: 60%; height: 8%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #b09070 0%, #7a5e40 100%);
  border-radius: 6px;
  box-shadow: 0 4px 10px rgba(0,0,0,0.3);
}
.scn-ned's-fiancée .pearl-necklace {
  position: absolute; bottom: 22%; left: 38%; width: 40px; height: 8px;
  background: repeating-linear-gradient(90deg, #f0e0c0 0px, #f0e0c0 4px, #c0a080 4px, #c0a080 6px);
  border-radius: 50%;
  box-shadow: 0 0 12px 6px rgba(240, 224, 192, 0.6);
  animation: nf-pearl 3s ease-in-out infinite;
}
.scn-ned's-fiancée .figure-seated {
  position: absolute; bottom: 18%; left: 32%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #3a3028 0%, #1f1a15 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: nf-sit 4s ease-in-out infinite;
}
.scn-ned's-fiancée .window-light {
  position: absolute; top: 15%; right: 10%; width: 80px; height: 100px;
  background: linear-gradient(180deg, #fffbe6 0%, #ffe4a0 60%, transparent 100%);
  border-radius: 10% 10% 40% 40%;
  filter: blur(4px);
  animation: nf-light 8s ease-in-out infinite alternate;
}
.scn-ned's-fiancée .shadow-figure {
  position: absolute; bottom: 18%; left: 55%; width: 35px; height: 65px;
  background: #2a221c;
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  opacity: 0.5;
  animation: nf-shadow 4s ease-in-out infinite;
}
.scn-ned's-fiancée .letter {
  position: absolute; bottom: 24%; left: 48%; width: 14px; height: 10px;
  background: #eeddbb;
  border-radius: 2px;
  box-shadow: 2px 2px 4px rgba(0,0,0,0.2);
  transform: rotate(-10deg);
  animation: nf-letter 6s ease-in-out infinite;
}
@keyframes nf-room {
  0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.9; }
}
@keyframes nf-pearl {
  0%, 100% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-4px) scale(1.05); }
}
@keyframes nf-sit {
  0% { transform: translateX(0) rotate(-1deg); }
  25% { transform: translateX(2px) rotate(1deg); }
  50% { transform: translateX(0) rotate(-1deg); }
  75% { transform: translateX(-2px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes nf-light {
  0% { opacity: 0.6; transform: scale(0.95); }
  50% { opacity: 1; transform: scale(1.05); }
  100% { opacity: 0.7; transform: scale(1); }
}
@keyframes nf-shadow {
  0%, 100% { transform: scale(1) translateX(0); }
  50% { transform: scale(0.95) translateX(4px); }
}
@keyframes nf-letter {
  0% { transform: rotate(-10deg) translateY(0); }
  50% { transform: rotate(-8deg) translateY(-2px); }
  100% { transform: rotate(-10deg) translateY(0); }
}

.scn-essence-of-orient {
  background: linear-gradient(180deg, #e8d9b0 0%, #d4bf8a 40%, #b09868 100%),
              radial-gradient(ellipse at 30% 40%, rgba(255,235,180,0.3) 0%, transparent 60%);
}
.scn-essence-of-orient .shelf {
  position: absolute; bottom: 30%; left: 10%; right: 10%; height: 6%;
  background: linear-gradient(180deg, #a08860 0%, #705038 100%);
  border-radius: 4px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
}
.scn-essence-of-orient .jar {
  position: absolute; bottom: 36%; left: 35%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #d0e0e0 0%, #a0b8b8 100%);
  border-radius: 20% 20% 30% 30% / 30% 30% 40% 40%;
  border: 2px solid #809090;
  box-shadow: inset 0 0 8px rgba(0,0,0,0.1);
  animation: eo-jar 6s ease-in-out infinite alternate;
}
.scn-essence-of-orient .fish-skeleton {
  position: absolute; bottom: 36%; left: 50%; width: 60px; height: 20px;
  background: linear-gradient(90deg, #f0e8d0 0%, #c8b898 100%);
  border-radius: 50% 50% 10% 10% / 40% 40% 20% 20%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
  transform: rotate(10deg);
  animation: eo-fish 8s ease-in-out infinite;
}
.scn-essence-of-orient .figure-gesture {
  position: absolute; bottom: 16%; left: 20%; width: 35px; height: 70px;
  background: linear-gradient(180deg, #3d322a 0%, #1e1610 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: eo-figure 5s ease-in-out infinite;
}
.scn-essence-of-orient .vial {
  position: absolute; bottom: 36%; left: 65%; width: 12px; height: 30px;
  background: linear-gradient(180deg, #c8d8d0 0%, #889898 100%);
  border-radius: 20% 20% 30% 30% / 30% 30% 40% 40%;
  box-shadow: inset 0 0 4px rgba(0,0,0,0.1);
  animation: eo-vial 7s ease-in-out infinite alternate;
}
.scn-essence-of-orient .light-spot {
  position: absolute; top: 20%; left: 40%; width: 100px; height: 80px;
  background: radial-gradient(circle, #fff8e0 0%, transparent 70%);
  filter: blur(10px);
  animation: eo-spot 10s ease-in-out infinite alternate;
}
@keyframes eo-jar {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-2px) scale(1.02); }
  100% { transform: translateY(1px) scale(0.98); }
}
@keyframes eo-fish {
  0% { transform: rotate(10deg) translateX(0); }
  50% { transform: rotate(8deg) translateX(3px); }
  100% { transform: rotate(10deg) translateX(-2px); }
}
@keyframes eo-figure {
  0% { transform: translateX(0) rotate(-2deg); }
  25% { transform: translateX(3px) rotate(2deg); }
  50% { transform: translateX(0) rotate(-2deg); }
  75% { transform: translateX(-3px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes eo-vial {
  0% { opacity: 0.7; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.02); }
  100% { opacity: 0.8; transform: scale(0.98); }
}
@keyframes eo-spot {
  0% { opacity: 0.5; transform: scale(0.9); }
  50% { opacity: 0.9; transform: scale(1.1); }
  100% { opacity: 0.6; transform: scale(1); }
}

.scn-ned-wants-pearl {
  background: linear-gradient(180deg, #1a2a3a 0%, #0e1a2a 50%, #05101a 100%),
              radial-gradient(ellipse at 50% 20%, #2a4a5a 0%, transparent 70%);
}
.scn-ned-wants-pearl .bg-deep {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #142434 0%, #0a1520 100%);
  animation: nwp-deep 20s ease-in-out infinite alternate;
}
.scn-ned-wants-pearl .oyster-shell {
  position: absolute; bottom: 20%; left: 50%; width: 120px; height: 80px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #c8b08a 0%, #8a7048 40%, #5a3e20 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 30% 30%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.6);
  animation: nwp-shell 8s ease-in-out infinite;
}
.scn-ned-wants-pearl .giant-pearl {
  position: absolute; bottom: 28%; left: 50%; width: 40px; height: 40px;
  transform: translateX(-50%);
  background: radial-gradient(circle at 35% 35%, #fff8f0 0%, #f0e0c8 60%, #c8a878 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(240, 224, 200, 0.7), 0 0 60px 20px rgba(200, 168, 120, 0.4);
  animation: nwp-pearl 4s ease-in-out infinite alternate;
}
.scn-ned-wants-pearl .hand-reaching {
  position: absolute; bottom: 30%; left: 42%; width: 25px; height: 50px;
  background: linear-gradient(180deg, #3a322a 0%, #1a1410 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: nwp-hand 3s ease-in-out infinite;
}
.scn-ned-wants-pearl .bubbles {
  position: absolute; bottom: 40%; left: 55%; width: 8px; height: 8px;
  background: rgba(200,220,240,0.4);
  border-radius: 50%;
  filter: blur(2px);
  animation: nwp-bubble 6s ease-in-out infinite;
}
.scn-ned-wants-pearl .bubbles::after {
  content: '';
  position: absolute; top: -12px; left: 8px; width: 6px; height: 6px;
  background: rgba(200,220,240,0.3);
  border-radius: 50%;
  filter: blur(2px);
  animation: nwp-bubble 8s ease-in-out infinite 1s;
}
.scn-ned-wants-pearl .dream-stars {
  position: absolute; top: 10%; left: 20%; width: 100px; height: 100px;
  background: radial-gradient(circle, #fff8d0 0%, transparent 40%);
  filter: blur(6px);
  animation: nwp-stars 12s ease-in-out infinite alternate;
}
@keyframes nwp-deep {
  0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; }
}
@keyframes nwp-shell {
  0%, 100% { transform: translateX(-50%) scale(1); }
  50% { transform: translateX(-50%) scale(1.03) rotate(2deg); }
}
@keyframes nwp-pearl {
  0% { transform: translateX(-50%) scale(1); box-shadow: 0 0 30px 10px rgba(240,224,200,0.7); }
  50% { transform: translateX(-50%) scale(1.05); box-shadow: 0 0 50px 20px rgba(240,224,200,0.9); }
  100% { transform: translateX(-50%) scale(0.98); box-shadow: 0 0 20px 8px rgba(240,224,200,0.5); }
}
@keyframes nwp-hand {
  0% { transform: translateY(0) rotate(-5deg); }
  50% { transform: translateY(-6px) rotate(-2deg); }
  100% { transform: translateY(0) rotate(-5deg); }
}
@keyframes nwp-bubble {
  0% { transform: translateY(0) scale(1); opacity: 0.4; }
  50% { transform: translateY(-20px) scale(0.8); opacity: 0.2; }
  100% { transform: translateY(0) scale(1); opacity: 0.4; }
}
@keyframes nwp-stars {
  0% { opacity: 0.3; transform: scale(0.9); }
  50% { opacity: 0.8; transform: scale(1.1); }
  100% { opacity: 0.4; transform: scale(1); }
}

.scn-danger-of-fishing {
  background: linear-gradient(180deg, #bfd8d8 0%, #8fb0b0 30%, #5a8080 60%, #2a5050 100%),
              radial-gradient(ellipse at 60% 30%, #d0e8e8 0%, transparent 60%);
}
.scn-danger-of-fishing .room-wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #c0d0c8 0%, #8a9a92 100%);
  animation: df-wall 15s ease-in-out infinite alternate;
}
.scn-danger-of-fishing .window-sea {
  position: absolute; top: 10%; left: 60%; width: 120px; height: 90px;
  background: linear-gradient(180deg, #3a7a8a 0%, #20505a 100%);
  border-radius: 8px 8px 4px 4px;
  border: 4px solid #6a7a72;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.3);
  overflow: hidden;
}
.scn-danger-of-fishing .fishing-net {
  position: absolute; bottom: 20%; left: 30%; width: 80px; height: 50px;
  background: repeating-linear-gradient(45deg, rgba(120,140,130,0.3) 0px, rgba(120,140,130,0.3) 2px, transparent 2px, transparent 6px);
  border-radius: 30% 30% 10% 10% / 40% 40% 20% 20%;
  transform: rotate(15deg);
  animation: df-net 10s ease-in-out infinite;
}
.scn-danger-of-fishing .fish-school {
  position: absolute; bottom: 30%; left: 10%; width: 40px; height: 15px;
  background: #706050;
  border-radius: 50% 50% 20% 20%;
  box-shadow: 12px 0 0 #706050, 24px 0 0 #706050;
  animation: df-fish 7s ease-in-out infinite alternate;
}
.scn-danger-of-fishing .diver-silhouette {
  position: absolute; bottom: 15%; left: 45%; width: 30px; height: 50px;
  background: #1a2a2a;
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: df-diver 6s ease-in-out infinite;
}
.scn-danger-of-fishing .diver-silhouette::before {
  content: '';
  position: absolute; top: 10px; left: -8px; width: 14px; height: 6px;
  background: #1a2a2a;
  border-radius: 40% 40% 20% 20%;
  transform: rotate(20deg);
}
.scn-danger-of-fishing .anchor {
  position: absolute; bottom: 10%; left: 70%; width: 12px; height: 30px;
  background: #3a3a2a;
  border-radius: 20% 20% 40% 40% / 20% 20% 30% 30%;
  box-shadow: -3px 0 0 #3a3a2a, 3px 0 0 #3a3a2a;
  animation: df-anchor 12s ease-in-out infinite;
}
.scn-danger-of-fishing .water-reflect {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, transparent 0%, rgba(180,220,220,0.2) 100%);
  animation: df-reflect 8s ease-in-out infinite alternate;
}
@keyframes df-wall {
  0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.95; }
}
@keyframes df-net {
  0% { transform: rotate(15deg) translateY(0); }
  50% { transform: rotate(12deg) translateY(-4px); }
  100% { transform: rotate(15deg) translateY(0); }
}
@keyframes df-fish {
  0% { transform: translateX(0) scale(1); }
  50% { transform: translateX(8px) scale(1.02); }
  100% { transform: translateX(-4px) scale(0.98); }
}
@keyframes df-diver {
  0% { transform: translateY(0) rotate(-3deg); }
  25% { transform: translateY(-2px) rotate(3deg); }
  50% { transform: translateY(0) rotate(-3deg); }
  75% { transform: translateY(2px) rotate(0deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes df-anchor {
  0% { transform: translateY(0) rotate(-2deg); }
  50% { transform: translateY(3px) rotate(2deg); }
  100% { transform: translateY(0) rotate(-2deg); }
}
@keyframes df-reflect {
  0% { opacity: 0.3; } 50% { opacity: 0.6; } 100% { opacity: 0.4; }
}

.scn-ned-wants-quadruped {
  background:
    linear-gradient(180deg, #1a0f0a 0%, #3a2a1a 40%, #5a3a20 100%),
    radial-gradient(ellipse at 50% 80%, #ff8c3a 0%, transparent 70%);
}
.scn-ned-wants-quadruped .fire-bg {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 80%, rgba(255,150,50,.3) 0%, transparent 60%);
  animation: nwq-fireglow 6s ease-in-out infinite alternate;
}
.scn-ned-wants-quadruped .fire-core {
  position: absolute; bottom: 30%; left: 50%; width: 60px; height: 80px;
  transform: translateX(-50%);
  background: radial-gradient(circle at 50% 100%, #ffb03a 0%, #cc6a1a 50%, #4a1a0a 100%);
  border-radius: 50% 50% 30% 30%; box-shadow: 0 0 60px 30px rgba(255,150,50,.6);
  animation: nwq-flame 1.5s ease-in-out infinite alternate;
}
.scn-ned-wants-quadruped .campfire {
  position: absolute; bottom: 25%; left: 50%; width: 100px; height: 20px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0f0a 100%);
  border-radius: 40%; box-shadow: 0 -4px 12px rgba(0,0,0,.5);
}
.scn-ned-wants-quadruped .log {
  position: absolute; bottom: 26%; height: 14px; width: 60px;
  background: linear-gradient(180deg, #5a3a1a 0%, #2a1a0a 100%);
  border-radius: 20%; box-shadow: inset 0 2px 4px rgba(0,0,0,.4);
}
.scn-ned-wants-quadruped .log-a {
  left: 40%; transform: rotate(-20deg);
  animation: nwq-logsmolder 10s ease-in-out infinite;
}
.scn-ned-wants-quadruped .log-b {
  left: 50%; transform: rotate(15deg);
  animation: nwq-logsmolder 12s ease-in-out infinite reverse;
}
.scn-ned-wants-quadruped .figure {
  position: absolute; bottom: 22%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 40% 40% 30% 30%;
  transform-origin: bottom center;
}
.scn-ned-wants-quadruped .figure.ned {
  left: 20%; animation: nwq-rock 3s ease-in-out infinite;
}
.scn-ned-wants-quadruped .figure.professor {
  left: 55%; height: 64px; animation: nwq-rock 3.5s ease-in-out infinite 0.5s;
}
.scn-ned-wants-quadruped .figure.conseil {
  left: 75%; width: 25px; height: 58px; animation: nwq-rock 4s ease-in-out infinite 1s;
}
@keyframes nwq-fireglow {
  0% { opacity:0.6; transform:scale(1); }
  50% { opacity:1; transform:scale(1.05); }
  100% { opacity:0.7; transform:scale(0.98); }
}
@keyframes nwq-flame {
  0% { transform:translateX(-50%) scaleY(0.9); }
  50% { transform:translateX(-50%) scaleY(1.2) rotate(-2deg); }
  100% { transform:translateX(-50%) scaleY(1) rotate(1deg); }
}
@keyframes nwq-logsmolder {
  0% { transform:rotate(-20deg) translateY(0); }
  50% { transform:rotate(-16deg) translateY(-2px); }
  100% { transform:rotate(-20deg) translateY(0); }
}
@keyframes nwq-rock {
  0%,100% { transform:rotate(0deg) translateY(0); }
  50% { transform:rotate(2deg) translateY(-3px); }
}

.scn-sago-palm-forest {
  background:
    linear-gradient(180deg, #87ceeb 0%, #b0e0e6 30%, #f0e68c 100%),
    radial-gradient(ellipse at 30% 0%, #fffacd 0%, transparent 60%);
}
.scn-sago-palm-forest .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #87ceeb 0%, transparent 100%);
  animation: spf-sky 20s ease-in-out infinite alternate;
}
.scn-sago-palm-forest .sun {
  position: absolute; top: 8%; right: 15%; width: 60px; height: 60px;
  background: radial-gradient(circle, #fff8dc 0%, #ffd700 60%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 80px 30px rgba(255,215,0,.5);
  animation: spf-sundrift 12s ease-in-out infinite alternate;
}
.scn-sago-palm-forest .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #6b8e23 0%, #556b2f 100%);
  border-radius: 20% 30% 0 0 / 40% 50% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,40,0,.3);
}
.scn-sago-palm-forest .palm {
  position: absolute; bottom: 30%; width: 20px; height: 120px;
  background: linear-gradient(180deg, #8b5a2b 0%, #4a2a0a 100%);
  border-radius: 10% 10% 20% 20%;
}
.scn-sago-palm-forest .palm::after {
  content: ''; position: absolute; top: -40px; left: -40px; width: 100px; height: 60px;
  background: radial-gradient(ellipse 60% 100%, #3a6e1a 0%, transparent 100%);
  border-radius: 50%;
}
.scn-sago-palm-forest .palm-a {
  left: 15%; transform: scale(1.2); animation: spf-sway 8s ease-in-out infinite;
}
.scn-sago-palm-forest .palm-b {
  left: 40%; transform: scale(0.9); animation: spf-sway 10s ease-in-out infinite -2s;
}
.scn-sago-palm-forest .palm-c {
  right: 20%; transform: scale(1.1); animation: spf-sway 9s ease-in-out infinite -4s;
}
.scn-sago-palm-forest .bird {
  position: absolute; width: 30px; height: 20px;
  background: radial-gradient(ellipse at 70% 50%, #ff6347 0%, #dc143c 60%, transparent 100%);
  border-radius: 50%; filter: blur(1px);
}
.scn-sago-palm-forest .bird-a {
  top: 20%; left: 30%; animation: spf-flee 4s ease-in-out infinite;
}
.scn-sago-palm-forest .bird-b {
  top: 35%; right: 35%; animation: spf-flee 5s ease-in-out infinite 1s;
}
.scn-sago-palm-forest .figure.conseil {
  position: absolute; bottom: 25%; left: 60%; width: 24px; height: 60px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30%; transform-origin: bottom center;
  animation: spf-stoop 6s ease-in-out infinite;
}
@keyframes spf-sky {
  0% { opacity:0.8; }
  50% { opacity:1; }
  100% { opacity:0.85; }
}
@keyframes spf-sundrift {
  0% { transform:translate(0,0); }
  50% { transform:translate(10px,-5px); }
  100% { transform:translate(0,0); }
}
@keyframes spf-sway {
  0%,100% { transform:rotate(-2deg) scaleY(1); }
  50% { transform:rotate(2deg) scaleY(1.05); }
}
@keyframes spf-flee {
  0% { transform:translateX(0) scaleX(1); }
  25% { transform:translateX(40px) scaleX(1.2); }
  50% { transform:translateX(80px) scaleX(1); }
  75% { transform:translateX(120px) scaleX(0.8); }
  100% { transform:translateX(160px) scaleX(1); }
}
@keyframes spf-stoop {
  0%,100% { transform:rotate(0) translateY(0); }
  50% { transform:rotate(-15deg) translateY(-5px); }
}

.scn-conseil-catches-drunk-bird {
  background:
    linear-gradient(180deg, #87ceeb 0%, #b0e0e6 50%, #f0e68c 100%),
    radial-gradient(ellipse at 30% 20%, #fffacd 0%, transparent 70%);
}
.scn-conseil-catches-drunk-bird .bg-sky {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(135,206,235,0.6) 0%, transparent 100%);
}
.scn-conseil-catches-drunk-bird .sun-glow {
  position: absolute; top: 5%; left: 70%; width: 80px; height: 80px;
  background: radial-gradient(circle, #fff8dc 0%, #ffd700 40%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 100px 40px rgba(255,215,0,.4);
  animation: ccd-sunpulse 8s ease-in-out infinite alternate;
}
.scn-conseil-catches-drunk-bird .nutmeg-tree {
  position: absolute; bottom: 20%; right: 10%; width: 30px; height: 150px;
  background: linear-gradient(180deg, #8b5a2b 0%, #3a1a0a 100%);
  border-radius: 10% 10% 20% 20%;
}
.scn-conseil-catches-drunk-bird .nutmeg-tree::after {
  content: ''; position: absolute; top: -30px; left: -40px; width: 110px; height: 70px;
  background: radial-gradient(ellipse 50% 100%, #6b8e23 0%, transparent 100%);
  border-radius: 50%;
}
.scn-conseil-catches-drunk-bird .hand.conseil-hand {
  position: absolute; bottom: 30%; left: 40%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #e8c49a 0%, #c89a6a 100%);
  border-radius: 40% 40% 30% 30%; transform-origin: bottom;
  animation: ccd-grab 3s ease-in-out infinite;
}
.scn-conseil-catches-drunk-bird .hand.conseil-hand::before {
  content: ''; position: absolute; top: -15px; left: 5px; width: 30px; height: 30px;
  background: radial-gradient(circle at 50% 50%, #e8c49a 0%, #c89a6a 100%);
  border-radius: 50%;
}
.scn-conseil-catches-drunk-bird .bird.drunk-bird {
  position: absolute; bottom: 38%; left: 50%; width: 34px; height: 28px;
  background: radial-gradient(ellipse at 60% 50%, #ffa07a 0%, #ff7f50 60%, transparent 100%);
  border-radius: 50%; filter: blur(0.5px);
  animation: ccd-wobble 1.5s ease-in-out infinite;
}
.scn-conseil-catches-drunk-bird .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #6b8e23 0%, #556b2f 100%);
  border-radius: 30% 30% 0 0 / 50% 50% 0 0;
  box-shadow: inset 0 8px 16px rgba(0,40,0,.3);
}
@keyframes ccd-sunpulse {
  0% { transform:scale(1) rotate(0deg); }
  50% { transform:scale(1.1) rotate(5deg); }
  100% { transform:scale(1) rotate(0deg); }
}
@keyframes ccd-grab {
  0% { transform:scaleY(1) translateX(0); }
  30% { transform:scaleY(1.1) translateX(10px) rotate(-5deg); }
  50% { transform:scaleY(1.2) translateX(20px) rotate(0deg); }
  70% { transform:scaleY(1.1) translateX(10px) rotate(5deg); }
  100% { transform:scaleY(1) translateX(0); }
}
@keyframes ccd-wobble {
  0% { transform:rotate(0deg) scaleX(1); }
  20% { transform:rotate(-10deg) scaleX(0.9); }
  40% { transform:rotate(10deg) scaleX(1.1); }
  60% { transform:rotate(-5deg) scaleX(0.95); }
  80% { transform:rotate(5deg) scaleX(1.05); }
  100% { transform:rotate(0deg) scaleX(1); }
}

.scn-drunk-from-nutmegs {
  background:
    linear-gradient(180deg, #87ceeb 0%, #b0e0e6 40%, #f0e68c 100%),
    radial-gradient(ellipse at 70% 10%, #fffacd 0%, transparent 70%);
}
.scn-drunk-from-nutmegs .bg-sky {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(135,206,235,0.5) 0%, transparent 100%);
}
.scn-drunk-from-nutmegs .sun {
  position: absolute; top: 4%; left: 80%; width: 70px; height: 70px;
  background: radial-gradient(circle, #fff8dc 0%, #ffd700 50%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 90px 40px rgba(255,215,0,.4);
  animation: dnm-sunglare 10s ease-in-out infinite alternate;
}
.scn-drunk-from-nutmegs .nutmeg-tree {
  position: absolute; bottom: 15%; width: 25px; height: 130px;
  background: linear-gradient(180deg, #8b5a2b 0%, #3a1a0a 100%);
  border-radius: 10% 10% 20% 20%;
}
.scn-drunk-from-nutmegs .nutmeg-tree::after {
  content: ''; position: absolute; top: -25px; left: -35px; width: 95px; height: 60px;
  background: radial-gradient(ellipse 50% 100%, #6b8e23 0%, transparent 100%);
  border-radius: 50%;
}
.scn-drunk-from-nutmegs .tree-a { left: 15%; transform: scale(0.9); }
.scn-drunk-from-nutmegs .tree-b { right: 20%; transform: scale(1.1); }
.scn-drunk-from-nutmegs .drunk-bird.wobble {
  position: absolute; bottom: 35%; left: 45%; width: 32px; height: 26px;
  background: radial-gradient(ellipse at 60% 50%, #ffa07a 0%, #ff7f50 70%, transparent 100%);
  border-radius: 50%; filter: blur(0.5px);
  animation: dnm-drunk 2s ease-in-out infinite;
}
.scn-drunk-from-nutmegs .drunk-bird.wobble::after {
  content: ''; position: absolute; top: -10px; left: 5px; width: 20px; height: 10px;
  background: #ffa07a; border-radius: 50% 50% 0 0;
}
.scn-drunk-from-nutmegs .figure {
  position: absolute; bottom: 20%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 40% 40% 30% 30%; transform-origin: bottom center;
}
.scn-drunk-from-nutmegs .figure.ned {
  left: 55%; animation: dnm-gesture 4s ease-in-out infinite;
}
.scn-drunk-from-nutmegs .figure.professor {
  left: 70%; height: 64px; animation: dnm-shrug 5s ease-in-out infinite 1s;
}
.scn-drunk-from-nutmegs .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #6b8e23 0%, #556b2f 100%);
  border-radius: 20% 30% 0 0 / 40% 50% 0 0;
  box-shadow: inset 0 8px 16px rgba(0,40,0,.3);
}
@keyframes dnm-sunglare {
  0% { transform:scale(1) rotate(0deg); opacity:0.7; }
  50% { transform:scale(1.05) rotate(3deg); opacity:1; }
  100% { transform:scale(1) rotate(0deg); opacity:0.8; }
}
@keyframes dnm-drunk {
  0% { transform:rotate(0deg) translateY(0) scaleX(1); }
  20% { transform:rotate(-15deg) translateY(-5px) scaleX(0.9); }
  40% { transform:rotate(15deg) translateY(5px) scaleX(1.1); }
  60% { transform:rotate(-8deg) translateY(-2px) scaleX(0.95); }
  80% { transform:rotate(8deg) translateY(2px) scaleX(1.05); }
  100% { transform:rotate(0deg) translateY(0) scaleX(1); }
}
@keyframes dnm-gesture {
  0%,100% { transform:rotate(0deg) translateY(0); }
  50% { transform:rotate(-20deg) translateY(-5px); }
}
@keyframes dnm-shrug {
  0%,100% { transform:rotate(0deg) translateY(0); }
  50% { transform:rotate(15deg) translateY(-3px); }
}

.scn-crocodile-worship {
  background: linear-gradient(180deg, #4a7a9a 0%, #6a9aba 40%, #8abada 70%, #b4d4e0 100%),
              radial-gradient(ellipse at 50% 30%, #ffe0a0 0%, transparent 60%);
}
.scn-crocodile-worship .sky { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #5a8aaa 0%, #c8e0f0 100%); animation: cw-sky 15s ease-in-out infinite alternate; }
.scn-crocodile-worship .sun { position:absolute; top:12%; left:70%; width:40px; height:40px; border-radius:50%; background: radial-gradient(circle, #fff8e0 0%, #ffd080 50%, transparent 70%); box-shadow: 0 0 60px 20px #ffd080; animation: cw-sunpulse 6s ease-in-out infinite; }
.scn-crocodile-worship .water { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #4a8a9a 0%, #2a5a6a 100%); border-radius: 40% 60% 0 0 / 30% 50% 0 0; animation: cw-water 8s ease-in-out infinite alternate; }
.scn-crocodile-worship .croc-body { position:absolute; bottom:30%; left:20%; width:30%; height:8%; background: linear-gradient(180deg, #5a6a3a 0%, #3a4a2a 100%); border-radius: 60% 60% 40% 40% / 100% 100% 50% 50%; transform: translateY(0); animation: cw-croc 10s ease-in-out infinite; }
.scn-crocodile-worship .croc-head { position:absolute; bottom:36%; left:17%; width:12%; height:6%; background: linear-gradient(180deg, #6a7a4a 0%, #4a5a2a 100%); border-radius: 50% 20% 50% 30% / 100% 50% 100% 50%; box-shadow: inset 0 2px 4px #8a9a5a; }
.scn-crocodile-worship .croc-eye { position:absolute; bottom:39%; left:20%; width:3%; height:4%; background: radial-gradient(circle, #ffe040 0%, #a08020 100%); border-radius: 50%; box-shadow: 0 0 8px 2px #ffe040; animation: cw-blink 4s ease-in-out infinite; }
.scn-crocodile-worship .offering { position:absolute; bottom:28%; left:30%; width:4%; height:6%; background: linear-gradient(180deg, #c8a060 0%, #a08040 100%); border-radius: 20% 80% 20% 80% / 30% 70% 30% 70%; transform: rotate(-15deg); animation: cw-offer 12s ease-in-out infinite; }
.scn-crocodile-worship .worshipper-a { position:absolute; bottom:34%; left:50%; width:6%; height:12%; background: linear-gradient(180deg, #8a6040 0%, #5a3a20 100%); border-radius: 50% 50% 30% 30% / 40% 40% 20% 20%; transform-origin: bottom center; animation: cw-bow 5s ease-in-out infinite; }
.scn-crocodile-worship .worshipper-b { position:absolute; bottom:34%; left:58%; width:6%; height:12%; background: linear-gradient(180deg, #7a5030 0%, #4a2a10 100%); border-radius: 50% 50% 30% 30% / 40% 40% 20% 20%; transform-origin: bottom center; animation: cw-bow 5s ease-in-out 0.5s infinite; }
@keyframes cw-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes cw-sunpulse { 0%,100% { transform: scale(1); box-shadow: 0 0 60px 20px #ffd080; } 50% { transform: scale(1.05); box-shadow: 0 0 80px 30px #ffe090; } }
@keyframes cw-water { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-3px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes cw-croc { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-1px) rotate(1deg); } }
@keyframes cw-blink { 0%,90%,100% { transform: scaleY(1); } 95% { transform: scaleY(0.1); } }
@keyframes cw-offer { 0%,100% { transform: translateY(0) rotate(-15deg); } 50% { transform: translateY(-2px) rotate(-10deg); } }
@keyframes cw-bow { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(10deg); } }

.scn-heading-southwest {
  background: linear-gradient(180deg, #5a8ab0 0%, #7aaad0 40%, #9acae0 80%, #b8dce8 100%),
              radial-gradient(ellipse at 50% 80%, #ffffd0 0%, transparent 50%);
}
.scn-heading-southwest .sea-bg { position:absolute; inset:0; background: linear-gradient(180deg, transparent 0%, #3a6a7a 60%, #2a4a5a 100%); animation: hs-seabg 20s ease-in-out infinite alternate; }
.scn-heading-southwest .sea-mid { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(0deg, #4a7a8a 0%, #6a9aaa 100%); border-radius: 80% 70% 0 0 / 40% 30% 0 0; animation: hs-seamid 12s ease-in-out infinite alternate; }
.scn-heading-southwest .sea-fore { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(0deg, #5a8a9a 0%, #8abaca 100%); border-radius: 70% 60% 0 0 / 50% 40% 0 0; animation: hs-seafore 6s ease-in-out infinite alternate; }
.scn-heading-southwest .hull { position:absolute; bottom:22%; left:30%; width:35%; height:10%; background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%); border-radius: 40% 40% 20% 20% / 100% 100% 30% 30%; box-shadow: 0 4px 8px rgba(0,0,0,0.3); animation: hs-hull 4s ease-in-out infinite; }
.scn-heading-southwest .conning { position:absolute; bottom:30%; left:45%; width:8%; height:14%; background: linear-gradient(180deg, #3a4a5a 0%, #1a2a3a 100%); border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%; }
.scn-heading-southwest .light-port { position:absolute; bottom:34%; left:46%; width:3%; height:4%; background: radial-gradient(circle, #ffe080 0%, #b08050 100%); border-radius: 50%; box-shadow: 0 0 12px 4px #ffd070; animation: hs-light 3s ease-in-out infinite alternate; }
.scn-heading-southwest .wave-front { position:absolute; bottom:10%; left:0; right:0; height:12%; background: linear-gradient(135deg, rgba(255,255,255,0.1) 0%, transparent 40%); transform: skewY(-5deg); animation: hs-wave 8s linear infinite; }
.scn-heading-southwest .spray { position:absolute; bottom:24%; left:38%; width:4%; height:8%; background: radial-gradient(circle, rgba(255,255,255,0.6) 0%, transparent 100%); border-radius: 50%; filter: blur(2px); animation: hs-spray 2s ease-out infinite; }
@keyframes hs-seabg { 0% { opacity:0.7 } 50% { opacity:0.9 } 100% { opacity:0.8 } }
@keyframes hs-seamid { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-2px) scaleY(1.02) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes hs-seafore { 0% { transform: translateX(0) scaleX(1) } 50% { transform: translateX(3px) scaleX(1.01) } 100% { transform: translateX(0) scaleX(1) } }
@keyframes hs-hull { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-1px) rotate(1deg); } }
@keyframes hs-light { 0% { opacity:0.8; box-shadow: 0 0 12px 4px #ffd070; } 50% { opacity:1; box-shadow: 0 0 20px 6px #ffe090; } 100% { opacity:0.9; box-shadow: 0 0 14px 5px #ffd070; } }
@keyframes hs-wave { 0% { transform: skewY(-5deg) translateX(-10vw); } 100% { transform: skewY(-5deg) translateX(10vw); } }
@keyframes hs-spray { 0% { opacity:1; transform: translateY(0) scale(1); } 100% { opacity:0; transform: translateY(-20px) scale(0.5); } }

.scn-beyond-sight-of-shore {
  background: linear-gradient(180deg, #4a8aaa 0%, #7ab4d0 40%, #aad4e8 70%, #c8e4f0 100%),
              radial-gradient(ellipse at 50% 50%, #ffe0a0 0%, transparent 40%);
}
.scn-beyond-sight-of-shore .ocean-sky { position:absolute; inset:0 0 60% 0; background: linear-gradient(180deg, #6a9aba 0%, #b8dce8 100%); animation: bs-sky 18s ease-in-out infinite alternate; }
.scn-beyond-sight-of-shore .horizon-glow { position:absolute; top:38%; left:10%; right:10%; height:8%; background: linear-gradient(180deg, transparent 0%, #ffe0a0 40%, transparent 100%); border-radius: 50%; filter: blur(15px); animation: bs-glow 10s ease-in-out infinite alternate; }
.scn-beyond-sight-of-shore .water-surface { position:absolute; bottom:0; left:0; right:0; height:60%; background: linear-gradient(0deg, #3a6a7a 0%, #6a9aaa 60%, #8abac8 100%); border-radius: 50% 50% 0 0 / 20% 20% 0 0; animation: bs-surface 20s ease-in-out infinite alternate; }
.scn-beyond-sight-of-shore .ripple-a { position:absolute; bottom:15%; left:10%; width:20%; height:6%; background: rgba(255,255,255,0.15); border-radius: 50%; filter: blur(4px); animation: bs-ripple 8s ease-in-out infinite; }
.scn-beyond-sight-of-shore .ripple-b { position:absolute; bottom:25%; left:60%; width:15%; height:5%; background: rgba(255,255,255,0.1); border-radius: 50%; filter: blur(3px); animation: bs-ripple 10s ease-in-out 2s infinite; }
.scn-beyond-sight-of-shore .ripple-c { position:absolute; bottom:10%; left:35%; width:25%; height:4%; background: rgba(255,255,255,0.05); border-radius: 50%; filter: blur(6px); animation: bs-ripple 12s ease-in-out 4s infinite; }
.scn-beyond-sight-of-shore .sun-glint { position:absolute; top:30%; left:40%; width:10%; height:10%; background: radial-gradient(circle, #fff8e0 0%, #ffd080 40%, transparent 70%); border-radius: 50%; box-shadow: 0 0 40px 20px #ffd080; animation: bs-glint 7s ease-in-out infinite alternate; }
.scn-beyond-sight-of-shore .cloud-veil { position:absolute; top:10%; left:20%; width:60%; height:12%; background: linear-gradient(180deg, rgba(255,255,255,0.3) 0%, transparent 100%); border-radius: 40%; filter: blur(20px); animation: bs-cloud 35s linear infinite; }
@keyframes bs-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes bs-glow { 0% { opacity:0.6; transform: scaleY(1) } 50% { opacity:0.9; transform: scaleY(1.3) } 100% { opacity:0.7; transform: scaleY(1) } }
@keyframes bs-surface { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-2px) scaleY(1.01) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes bs-ripple { 0%,100% { transform: scaleX(1) scaleY(1) } 50% { transform: scaleX(1.05) scaleY(0.8) } }
@keyframes bs-glint { 0% { opacity:0.7; transform: scale(1) } 50% { opacity:1; transform: scale(1.1) } 100% { opacity:0.8; transform: scale(1) } }
@keyframes bs-cloud { 0% { transform: translateX(-20vw); } 100% { transform: translateX(20vw); } }

.scn-temperature-experiments {
  background: linear-gradient(180deg, #2a4a5a 0%, #5a8a9a 30%, #8abac8 60%, #aad4e0 100%),
              radial-gradient(ellipse at 50% 80%, #c8e8f0 0%, transparent 50%);
}
.scn-temperature-experiments .depth-back { position:absolute; inset:0; background: linear-gradient(180deg, #1a3a4a 0%, #3a6a7a 50%, #5a8a9a 100%); animation: te-depth 25s ease-in-out infinite alternate; }
.scn-temperature-experiments .layer-warm { position:absolute; top:10%; left:20%; right:20%; height:15%; background: linear-gradient(180deg, #ffc080 0%, #ffa060 100%); border-radius: 0 0 20px 20px; box-shadow: 0 4px 12px rgba(255,160,96,0.4); animation: te-warmer 6s ease-in-out infinite alternate; }
.scn-temperature-experiments .layer-cool { position:absolute; top:30%; left:20%; right:20%; height:20%; background: linear-gradient(180deg, #80b0c0 0%, #60a0b0 100%); border-radius: 0 0 15px 15px; box-shadow: 0 4px 12px rgba(96,160,176,0.4); animation: te-cool 8s ease-in-out infinite alternate; }
.scn-temperature-experiments .layer-cold { position:absolute; top:55%; left:20%; right:20%; height:25%; background: linear-gradient(180deg, #4a7a8a 0%, #3a5a6a 100%); border-radius: 0 0 10px 10px; box-shadow: inset 0 4px 10px rgba(0,0,0,0.2); animation: te-cold 10s ease-in-out infinite alternate; }
.scn-temperature-experiments .thermometer { position:absolute; top:5%; left:48%; width:4%; height:70%; background: linear-gradient(180deg, #d0d8e0 0%, #a0a8b0 100%); border-radius: 15px; box-shadow: 2px 0 6px rgba(0,0,0,0.2); }
.scn-temperature-experiments .mercury { position:absolute; bottom:10%; left:49%; width:2%; height:55%; background: linear-gradient(180deg, #ff6040 0%, #ff8060 30%, #ffa080 100%); border-radius: 5px; animation: te-mercury 12s ease-in-out infinite alternate; }
.scn-temperature-experiments .bubble-a { position:absolute; top:20%; left:60%; width:4%; height:4%; background: radial-gradient(circle, rgba(255,255,255,0.4) 0%, transparent 100%); border-radius: 50%; animation: te-bubble 4s ease-in-out infinite; }
.scn-temperature-experiments .bubble-b { position:absolute; top:40%; left:30%; width:3%; height:3%; background: radial-gradient(circle, rgba(255,255,255,0.3) 0%, transparent 100%); border-radius: 50%; animation: te-bubble 5s ease-in-out 1s infinite; }
.scn-temperature-experiments .bubble-c { position:absolute; top:60%; left:65%; width:5%; height:5%; background: radial-gradient(circle, rgba(255,255,255,0.2) 0%, transparent 100%); border-radius: 50%; animation: te-bubble 6s ease-in-out 2s infinite; }
@keyframes te-depth { 0% { opacity:0.7 } 50% { opacity:0.9 } 100% { opacity:0.8 } }
@keyframes te-warmer { 0% { opacity:0.8; transform: scaleY(1) } 50% { opacity:0.9; transform: scaleY(1.05) } 100% { opacity:0.85; transform: scaleY(1) } }
@keyframes te-cool { 0% { opacity:0.85; transform: translateY(0) } 50% { opacity:0.95; transform: translateY(-2px) } 100% { opacity:0.9; transform: translateY(0) } }
@keyframes te-cold { 0% { opacity:0.9; transform: translateY(0) } 50% { opacity:1; transform: translateY(1px) } 100% { opacity:0.95; transform: translateY(0) } }
@keyframes te-mercury { 0% { height:35%; } 50% { height:60%; } 100% { height:45%; } }
@keyframes te-bubble { 0% { transform: translateY(0) scale(1); opacity:0.5; } 50% { transform: translateY(-10px) scale(1.2); opacity:0.8; } 100% { transform: translateY(-20px) scale(0.5); opacity:0; } }

/* nemo-comparison – funny + sunlit underwater */
.scn-nemo-comparison {
  background: linear-gradient(180deg, #3b8cbf 0%, #5eaacf 30%, #87ceeb 60%) , radial-gradient(ellipse at 30% 20%, #ffecb3 0%, transparent 50%);
}
.scn-nemo-comparison .ocean-bg {
  position:absolute; inset:0; 
  background: linear-gradient(180deg, #1b6b8a 0%, #2a8bb0 40%, #4da3c9 70%, #6fc0e0 100%);
  animation: nm-ocean 15s ease-in-out infinite alternate;
}
.scn-nemo-comparison .sun-rays {
  position:absolute; top:0; left:30%; width:40%; height:100%;
  background: linear-gradient(180deg, rgba(255,235,160,0.6) 0%, transparent 60%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  animation: nm-rays 8s ease-in-out infinite alternate;
}
.scn-nemo-comparison .argonaut-shell {
  position:absolute; bottom:30%; left:20%; width:60px; height:50px;
  background: radial-gradient(circle at 40% 40%, #f5d0a0 0%, #c0985a 100%);
  border-radius: 40% 60% 50% 50% / 60% 50% 40% 50%;
  transform: rotate(-15deg);
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: nm-shell 4s ease-in-out infinite;
}
.scn-nemo-comparison .nautilus-sub {
  position:absolute; bottom:35%; right:15%; width:100px; height:40px;
  background: linear-gradient(180deg, #4a6b7a 0%, #2a4a5a 100%);
  border-radius: 40% 40% 40% 40% / 50% 50% 50% 50%;
  box-shadow: 0 0 0 2px #5a7a8a, 0 4px 8px rgba(0,0,0,0.5);
  animation: nm-sub 12s ease-in-out infinite;
}
.scn-nemo-comparison .nautilus-sub::before {
  content: ''; position:absolute; top:20%; left:-8px; width:16px; height:60%;
  background: #8aacba; border-radius: 50%;
}
.scn-nemo-comparison .bubble {
  position:absolute; border-radius:50%; background: rgba(255,255,255,0.5);
  box-shadow: 0 0 4px rgba(255,255,255,0.3);
}
.scn-nemo-comparison .b1 {
  width:8px; height:8px; bottom:40%; left:25%;
  animation: nm-bubble 5s ease-out infinite;
}
.scn-nemo-comparison .b2 {
  width:12px; height:12px; bottom:45%; left:35%;
  animation: nm-bubble 7s ease-out infinite 2s;
}
.scn-nemo-comparison .b3 {
  width:6px; height:6px; bottom:50%; left:50%;
  animation: nm-bubble 6s ease-out infinite 4s;
}
.scn-nemo-comparison .figure-point {
  position:absolute; bottom:28%; left:22%; width:14px; height:28px;
  background: linear-gradient(180deg, #3a4a5a 0%, #2a2a3a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: nm-point 3s ease-in-out infinite;
}
@keyframes nm-ocean {
  0% { opacity: 1; }
  50% { opacity: 0.8; }
  100% { opacity: 1; }
}
@keyframes nm-rays {
  0% { transform: translateY(0) scaleX(1); }
  50% { transform: translateY(-5px) scaleX(1.05); }
  100% { transform: translateY(0) scaleX(1); }
}
@keyframes nm-shell {
  0% { transform: rotate(-15deg) translateY(0); }
  25% { transform: rotate(-12deg) translateY(-2px); }
  50% { transform: rotate(-15deg) translateY(0); }
  75% { transform: rotate(-18deg) translateY(-1px); }
  100% { transform: rotate(-15deg) translateY(0); }
}
@keyframes nm-sub {
  0% { transform: translateX(0) rotate(0); }
  50% { transform: translateX(-10px) rotate(3deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes nm-bubble {
  0% { transform: translateY(0) scale(1); opacity: 1; }
  50% { transform: translateY(-30px) scale(1.2); opacity: 0.7; }
  100% { transform: translateY(-60px) scale(0.8); opacity: 0; }
}
@keyframes nm-point {
  0% { transform: rotate(0); }
  50% { transform: rotate(5deg); }
  100% { transform: rotate(0); }
}

/* shark-escort – tense + sunlit */
.scn-shark-escort {
  background: linear-gradient(180deg, #1a4a6a 0%, #3a7aaa 40%, #7ab8d4 70%, #a0d4e8 100%), radial-gradient(ellipse at 70% 20%, #c8e0f0 0%, transparent 50%);
}
.scn-shark-escort .sea-surface {
  position:absolute; inset:0; 
  background: linear-gradient(180deg, #2a6a8a 0%, #4a8aaa 40%, #6aaac4 70%, #8acade 100%);
  animation: sk-sea 12s ease-in-out infinite alternate;
}
.scn-shark-escort .sun-glare {
  position:absolute; top:5%; left:10%; width:30%; height:20%;
  background: radial-gradient(ellipse, rgba(255,240,180,0.8) 0%, transparent 70%);
  animation: sk-glare 6s ease-in-out infinite alternate;
}
.scn-shark-escort .shark {
  position:absolute; 
  background: linear-gradient(180deg, #4a5a5a 0%, #2a3a3a 100%);
  border-radius: 60% 20% 50% 30% / 40% 30% 60% 50%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
}
.scn-shark-escort .s1 {
  width:100px; height:25px; bottom:40%; left:10%;
  animation: sk-shark1 10s ease-in-out infinite;
}
.scn-shark-escort .s2 {
  width:80px; height:20px; bottom:55%; right:20%;
  transform: scaleX(-1);
  animation: sk-shark2 12s ease-in-out infinite 2s;
}
.scn-shark-escort .s3 {
  width:60px; height:15px; bottom:30%; left:40%;
  animation: sk-shark3 8s ease-in-out infinite 1s;
}
.scn-shark-escort .bubble-shark {
  position:absolute; border-radius:50%; background: rgba(255,255,255,0.4);
}
.scn-shark-escort .bsh1 {
  width:6px; height:6px; bottom:35%; left:20%;
  animation: sk-bub 5s ease-out infinite;
}
.scn-shark-escort .bsh2 {
  width:8px; height:8px; bottom:50%; left:55%;
  animation: sk-bub 6s ease-out infinite 3s;
}
@keyframes sk-sea {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes sk-glare {
  0% { transform: scale(1); opacity: 0.6; }
  50% { transform: scale(1.1); opacity: 1; }
  100% { transform: scale(0.95); opacity: 0.5; }
}
@keyframes sk-shark1 {
  0% { transform: translateX(0) rotate(0); }
  20% { transform: translateX(20px) rotate(-3deg); }
  40% { transform: translateX(10px) rotate(2deg); }
  60% { transform: translateX(-10px) rotate(0); }
  80% { transform: translateX(-20px) rotate(3deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes sk-shark2 {
  0% { transform: scaleX(-1) translateX(0) rotate(0); }
  25% { transform: scaleX(-1) translateX(-15px) rotate(2deg); }
  50% { transform: scaleX(-1) translateX(10px) rotate(-2deg); }
  75% { transform: scaleX(-1) translateX(-5px) rotate(0); }
  100% { transform: scaleX(-1) translateX(0) rotate(0); }
}
@keyframes sk-shark3 {
  0% { transform: translateY(0) scaleX(1); }
  50% { transform: translateY(-8px) scaleX(0.95); }
  100% { transform: translateY(0) scaleX(1); }
}
@keyframes sk-bub {
  0% { transform: translateY(0) scale(1); opacity: 0.8; }
  50% { transform: translateY(-20px) scale(1.2); opacity: 0.5; }
  100% { transform: translateY(-40px) scale(0.6); opacity: 0; }
}

/* bay-of-bengal-corpses – dark + sunlit (bleached grim) */
.scn-bay-of-bengal-corpses {
  background: linear-gradient(180deg, #6a7a5a 0%, #8a9a6a 30%, #aabc8a 60%, #c8d4b0 100%), radial-gradient(ellipse at 50% 30%, #d4e0c0 0%, transparent 60%);
}
.scn-bay-of-bengal-corpses .sky-bg {
  position:absolute; inset:0; 
  background: linear-gradient(180deg, #8a9a6a 0%, #b0c09a 40%, #c8d4b0 100%);
  animation: bg-sky 20s ease-in-out infinite alternate;
}
.scn-bay-of-bengal-corpses .sun-bleach {
  position:absolute; top:10%; left:40%; width:30%; height:20%;
  background: radial-gradient(ellipse, rgba(230,240,200,0.9) 0%, transparent 70%);
  animation: bg-sun 12s ease-in-out infinite alternate;
}
.scn-bay-of-bengal-corpses .ocean-grim {
  position:absolute; bottom:0; left:0; right:0; height:45%;
  background: linear-gradient(180deg, #5a6a4a 0%, #3a4a2a 100%);
  border-radius: 30% 20% 0 0 / 40% 30% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.4);
  animation: bg-ocean 15s ease-in-out infinite alternate;
}
.scn-bay-of-bengal-corpses .corpse {
  position:absolute; bottom:15%; 
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.6);
  opacity: 0.7;
}
.scn-bay-of-bengal-corpses .c1 {
  width:30px; height:40px; left:20%;
  animation: bg-corpse1 10s ease-in-out infinite;
}
.scn-bay-of-bengal-corpses .c2 {
  width:25px; height:35px; left:45%;
  animation: bg-corpse2 12s ease-in-out infinite 3s;
}
.scn-bay-of-bengal-corpses .c3 {
  width:20px; height:30px; right:20%;
  animation: bg-corpse3 9s ease-in-out infinite 1s;
}
.scn-bay-of-bengal-corpses .vulture {
  position:absolute; top:30%; left:30%; width:20px; height:10px;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 50%;
  clip-path: polygon(0 50%, 40% 0, 60% 0, 100% 50%, 60% 100%, 40% 100%);
  animation: bg-vulture 18s linear infinite;
}
@keyframes bg-sky {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes bg-sun {
  0% { transform: scale(0.95); opacity: 0.7; }
  50% { transform: scale(1.05); opacity: 0.9; }
  100% { transform: scale(0.9); opacity: 0.6; }
}
@keyframes bg-ocean {
  0% { transform: translateY(0); }
  50% { transform: translateY(2px); }
  100% { transform: translateY(-1px); }
}
@keyframes bg-corpse1 {
  0% { transform: translateX(0) rotate(0); }
  50% { transform: translateX(5px) rotate(5deg); }
  100% { transform: translateX(0) rotate(-2deg); }
}
@keyframes bg-corpse2 {
  0% { transform: translateY(0); }
  50% { transform: translateY(-3px) rotate(-3deg); }
  100% { transform: translateY(0) rotate(2deg); }
}
@keyframes bg-corpse3 {
  0% { transform: translateX(0) scale(1); }
  50% { transform: translateX(-4px) scale(1.05); }
  100% { transform: translateX(0) scale(1); }
}
@keyframes bg-vulture {
  0% { transform: translateX(0) rotate(0); }
  50% { transform: translateX(30px) rotate(10deg); }
  100% { transform: translateX(60px) rotate(0); }
}

/* milk-sea – calm + moonlit */
.scn-milk-sea {
  background: linear-gradient(180deg, #0a1a3a 0%, #1a2a5a 30%, #3a5a8a 60%, #5a7aaa 100%), radial-gradient(ellipse at 50% 10%, #5a7aaa 0%, transparent 50%);
}
.scn-milk-sea .night-sky {
  position:absolute; inset:0;
  background: linear-gradient(180deg, #0a1a3a 0%, #1a2a5a 40%, #2a3a6a 100%);
  animation: mk-night 30s ease-in-out infinite alternate;
}
.scn-milk-sea .moon {
  position:absolute; top:8%; left:70%; width:40px; height:40px;
  background: radial-gradient(circle, #e8f0ff 0%, #c0d0f0 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(200,220,255,0.6);
  animation: mk-moon 20s ease-in-out infinite;
}
.scn-milk-sea .milk-ocean {
  position:absolute; bottom:0; left:0; right:0; height:50%;
  background: linear-gradient(180deg, #4a6a9a 0%, #7a9aba 40%, #a0c0da 100%);
  border-radius: 40% 20% 0 0 / 30% 10% 0 0;
  box-shadow: inset 0 4px 20px rgba(255,255,255,0.3);
  animation: mk-ocean 15s ease-in-out infinite alternate;
}
.scn-milk-sea .wave-m {
  position:absolute; bottom:10%; left:0; right:0; height:12%;
  background: linear-gradient(180deg, rgba(255,255,255,0.3) 0%, transparent 100%);
  border-radius: 40%;
  filter: blur(2px);
}
.scn-milk-sea .w1 {
  animation: mk-wave1 10s ease-in-out infinite;
}
.scn-milk-sea .w2 {
  bottom:20%;
  animation: mk-wave2 12s ease-in-out infinite 4s;
}
.scn-milk-sea .w3 {
  bottom:30%; height:8%;
  animation: mk-wave3 14s ease-in-out infinite 2s;
}
.scn-milk-sea .moon-reflection {
  position:absolute; bottom:25%; left:60%; width:30px; height:120px;
  background: linear-gradient(180deg, rgba(200,220,255,0.8) 0%, rgba(200,220,255,0) 100%);
  border-radius: 50%;
  filter: blur(4px);
  animation: mk-reflection 8s ease-in-out infinite alternate;
}
.scn-milk-sea .mist {
  position:absolute; inset:0; 
  background: radial-gradient(ellipse at 50% 60%, rgba(255,255,255,0.1) 0%, transparent 70%);
  animation: mk-mist 25s ease-in-out infinite alternate;
}
@keyframes mk-night {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.95; }
}
@keyframes mk-moon {
  0% { transform: translateY(0); box-shadow: 0 0 30px 10px rgba(200,220,255,0.6); }
  50% { transform: translateY(3px); box-shadow: 0 0 40px 15px rgba(200,220,255,0.9); }
  100% { transform: translateY(-2px); box-shadow: 0 0 25px 8px rgba(200,220,255,0.5); }
}
@keyframes mk-ocean {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-2px) scaleY(1.02); }
  100% { transform: translateY(1px) scaleY(0.98); }
}
@keyframes mk-wave1 {
  0% { transform: translateX(0) scaleX(1); }
  50% { transform: translateX(20px) scaleX(1.1); }
  100% { transform: translateX(-10px) scaleX(0.95); }
}
@keyframes mk-wave2 {
  0% { transform: translateX(0) scaleY(1); }
  50% { transform: translateX(-15px) scaleY(1.2); }
  100% { transform: translateX(10px) scaleY(0.9); }
}
@keyframes mk-wave3 {
  0% { transform: translateX(0) scaleX(1); }
  50% { transform: translateX(10px) scaleX(1.05); }
  100% { transform: translateX(-5px) scaleX(0.98); }
}
@keyframes mk-reflection {
  0% { opacity: 0.7; transform: translateX(0); }
  50% { opacity: 1; transform: translateX(2px); }
  100% { opacity: 0.8; transform: translateX(-2px); }
}
@keyframes mk-mist {
  0% { opacity: 0.2; }
  50% { opacity: 0.4; }
  100% { opacity: 0.1; }
}

/* Scene: ned-frustrated-in-stateroom */
.scn-ned-frustrated-in-stateroom {
  background: linear-gradient(180deg, #1a1520 0%, #2a1f2a 50%, #1a1218 100%),
              radial-gradient(ellipse at 80% 40%, #3a2530 0%, transparent 60%);
}
.scn-ned-frustrated-in-stateroom .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(90deg, #2a1f2a 0%, #1a1520 100%);
  box-shadow: inset 0 -10px 20px rgba(0,0,0,.5);
}
.scn-ned-frustrated-in-stateroom .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a1a18 0%, #1a0e0c 100%);
  box-shadow: inset 0 8px 12px rgba(0,0,0,.6);
}
.scn-ned-frustrated-in-stateroom .porthole.ring {
  position: absolute; top: 15%; right: 18%; width: 50px; height: 50px;
  border-radius: 50%;
  background: radial-gradient(circle at 50% 50%, #3a2a2a 0%, #1a1218 70%);
  box-shadow: 0 0 0 6px #2a1f2a, 0 0 20px rgba(0,0,0,.4);
}
.scn-ned-frustrated-in-stateroom .porthole.glass {
  position: absolute; top: 18%; right: 21%; width: 36px; height: 36px;
  border-radius: 50%;
  background: radial-gradient(circle at 40% 40%, #1a3040 0%, #0a1a2a 100%);
  box-shadow: inset 0 0 10px #0a1a2a, 0 0 15px rgba(10,30,50,.3);
  animation: nf-porthole 12s ease-in-out infinite alternate;
}
.scn-ned-frustrated-in-stateroom .table {
  position: absolute; bottom: 22%; left: 50%; width: 120px; height: 10px;
  transform: translateX(-50%);
  background: linear-gradient(90deg, #3a2a20 0%, #5a3a2a 50%, #3a2a20 100%);
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
}
.scn-ned-frustrated-in-stateroom .lamp {
  position: absolute; bottom: 34%; left: 50%; transform: translateX(-50%);
  width: 12px; height: 20px;
  background: linear-gradient(90deg, #5a3a2a 0%, #8a5a3a 50%, #5a3a2a 100%);
  border-radius: 4px 4px 0 0;
}
.scn-ned-frustrated-in-stateroom .lamp.glow {
  position: absolute; bottom: 30%; left: 50%; transform: translateX(-50%);
  width: 30px; height: 30px;
  background: radial-gradient(circle, #d09050 0%, #a06030 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px #a06030, 0 0 60px 20px rgba(160,96,48,.3);
  animation: nf-lampglow 3s ease-in-out infinite alternate;
}
.scn-ned-frustrated-in-stateroom .chair {
  position: absolute; bottom: 20%; left: 42%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #2a1a18 0%, #1a0e0c 100%);
  border-radius: 6px 6px 2px 2px;
  box-shadow: 0 4px 10px rgba(0,0,0,.7);
  transform-origin: bottom center;
  animation: nf-chair 6s ease-in-out infinite;
}
.scn-ned-frustrated-in-stateroom .figure {
  position: absolute; bottom: 18%; left: 42%; width: 24px; height: 60px;
  background: linear-gradient(180deg, #2a1a20 0%, #1a0e12 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: nf-figure 8s ease-in-out infinite;
}
.scn-ned-frustrated-in-stateroom .shadow-long {
  position: absolute; bottom: 20%; left: 42%; width: 80px; height: 8px;
  background: rgba(0,0,0,.3);
  border-radius: 50%;
  transform: translateX(-10px) skewX(-30deg);
  filter: blur(4px);
  animation: nf-shadow 8s ease-in-out infinite;
}
@keyframes nf-porthole {
  0% { opacity: 0.6; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.02); }
  100% { opacity: 0.7; transform: scale(0.98); }
}
@keyframes nf-lampglow {
  0% { box-shadow: 0 0 20px 5px #a06030, 0 0 40px 10px rgba(160,96,48,.2); opacity: 0.8; }
  50% { box-shadow: 0 0 40px 15px #d09050, 0 0 80px 20px rgba(208,144,80,.4); opacity: 1; }
  100% { box-shadow: 0 0 25px 8px #a06030, 0 0 50px 12px rgba(160,96,48,.25); opacity: 0.85; }
}
@keyframes nf-chair {
  0% { transform: rotate(0deg); }
  30% { transform: rotate(-2deg) translateY(-2px); }
  60% { transform: rotate(1deg) translateY(-1px); }
  100% { transform: rotate(0deg); }
}
@keyframes nf-figure {
  0% { transform: rotate(0deg) translateY(0); }
  25% { transform: rotate(-3deg) translateY(-2px); }
  50% { transform: rotate(2deg) translateY(-1px); }
  75% { transform: rotate(-1deg) translateY(-3px); }
  100% { transform: rotate(0deg) translateY(0); }
}
@keyframes nf-shadow {
  0% { transform: translateX(-10px) skewX(-30deg) scaleX(1); opacity: 0.4; }
  50% { transform: translateX(-15px) skewX(-35deg) scaleX(1.1); opacity: 0.6; }
  100% { transform: translateX(-10px) skewX(-30deg) scaleX(1); opacity: 0.4; }
}

/* Scene: aronnax-reassures-ned */
.scn-aronnax-reassures-ned {
  background: linear-gradient(180deg, #1e1a28 0%, #2a2232 50%, #1a1620 100%),
              radial-gradient(ellipse at 60% 50%, #3a2a40 0%, transparent 70%);
}
.scn-aronnax-reassures-ned .wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(135deg, #2a2232 0%, #1a1620 100%);
  box-shadow: inset 0 -8px 16px rgba(0,0,0,.4);
}
.scn-aronnax-reassures-ned .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #201a22 0%, #121016 100%);
  box-shadow: inset 0 6px 10px rgba(0,0,0,.5);
}
.scn-aronnax-reassures-ned .planks {
  position: absolute; bottom: 22%; left: 15%; right: 15%; height: 4px;
  background: repeating-linear-gradient(90deg, #2a2030 0px, #2a2030 8px, #1a1420 8px, #1a1420 10px);
  opacity: 0.4;
}
.scn-aronnax-reassures-ned .desk {
  position: absolute; bottom: 18%; left: 30%; width: 80px; height: 8px;
  background: linear-gradient(90deg, #3a2a30 0%, #4a3a40 50%, #3a2a30 100%);
  border-radius: 2px;
  box-shadow: 0 3px 6px rgba(0,0,0,.5);
}
.scn-aronnax-reassures-ned .lantern {
  position: absolute; bottom: 28%; left: 32%; width: 14px; height: 22px;
  background: linear-gradient(90deg, #6a4a40 0%, #8a5a50 50%, #6a4a40 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 0 20px 5px #a06050;
  animation: ar-lantern 4s ease-in-out infinite alternate;
}
.scn-aronnax-reassures-ned .figure-sit {
  position: absolute; bottom: 15%; left: 30%; width: 20px; height: 45px;
  background: linear-gradient(180deg, #2a1a22 0%, #1a0e14 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: ar-sit 7s ease-in-out infinite;
}
.scn-aronnax-reassures-ned .figure-stand {
  position: absolute; bottom: 18%; left: 45%; width: 18px; height: 55px;
  background: linear-gradient(180deg, #2a2030 0%, #1a1620 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: ar-stand 8s ease-in-out infinite;
}
.scn-aronnax-reassures-ned .light-beam {
  position: absolute; bottom: 25%; left: 30%; width: 80px; height: 60px;
  background: linear-gradient(135deg, rgba(160,96,80,0.15) 0%, transparent 70%);
  border-radius: 50% 50% 0 0;
  filter: blur(10px);
  animation: ar-beam 6s ease-in-out infinite alternate;
}
@keyframes ar-lantern {
  0% { box-shadow: 0 0 15px 3px #a06050, 0 0 30px 6px rgba(160,96,80,.2); opacity: 0.9; }
  50% { box-shadow: 0 0 25px 8px #c08070, 0 0 50px 15px rgba(192,128,112,.4); opacity: 1; }
  100% { box-shadow: 0 0 18px 4px #a06050, 0 0 35px 8px rgba(160,96,80,.25); opacity: 0.9; }
}
@keyframes ar-sit {
  0% { transform: rotate(0deg) translateY(0); }
  30% { transform: rotate(2deg) translateY(-1px); }
  60% { transform: rotate(-1deg) translateY(-2px); }
  100% { transform: rotate(0deg) translateY(0); }
}
@keyframes ar-stand {
  0% { transform: rotate(0deg) translateY(0); }
  20% { transform: rotate(-2deg) translateY(-1px); }
  50% { transform: rotate(1deg) translateY(-3px); }
  80% { transform: rotate(-1deg) translateY(-1px); }
  100% { transform: rotate(0deg) translateY(0); }
}
@keyframes ar-beam {
  0% { opacity: 0.3; transform: scale(1) rotate(0deg); }
  50% { opacity: 0.6; transform: scale(1.05) rotate(3deg); }
  100% { opacity: 0.4; transform: scale(0.95) rotate(-2deg); }
}

/* Scene: ned-announces-evening-escape */
.scn-ned-announces-evening-escape {
  background: linear-gradient(180deg, #181020 0%, #24182e 50%, #0e0814 100%),
              radial-gradient(ellipse at 40% 60%, #2a1530 0%, transparent 70%);
}
.scn-ned-announces-evening-escape .bulkhead {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(90deg, #1a1220 0%, #2a1a30 50%, #1a1220 100%);
  box-shadow: inset 0 -10px 20px rgba(0,0,0,.6);
}
.scn-ned-announces-evening-escape .deck {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #1a1420 0%, #0e0810 100%);
  box-shadow: inset 0 6px 12px rgba(0,0,0,.5);
}
.scn-ned-announces-evening-escape .hatch {
  position: absolute; top: 20%; left: 50%; width: 40px; height: 18px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a2840 0%, #2a1830 100%);
  border-radius: 50% 50% 0 0;
  box-shadow: 0 -4px 8px rgba(0,0,0,.4);
}
.scn-ned-announces-evening-escape .table-map {
  position: absolute; bottom: 22%; left: 40%; width: 100px; height: 8px;
  background: linear-gradient(90deg, #2a1a30 0%, #4a2a50 50%, #2a1a30 100%);
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
  transform-origin: center;
  animation: ne-table 12s ease-in-out infinite;
}
.scn-ned-announces-evening-escape .candle {
  position: absolute; bottom: 26%; left: 42%; width: 4px; height: 12px;
  background: linear-gradient(180deg, #8a6a50 0%, #6a4a30 100%);
  border-radius: 2px;
  box-shadow: 0 0 10px 3px #f0a060, 0 0 20px 6px rgba(240,160,96,.3);
  animation: ne-candle 3s ease-in-out infinite alternate;
}
.scn-ned-announces-evening-escape .figure-ned {
  position: absolute; bottom: 20%; left: 38%; width: 22px; height: 58px;
  background: linear-gradient(180deg, #2a1a30 0%, #1a0e1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: ne-ned 5s ease-in-out infinite;
}
.scn-ned-announces-evening-escape .figure-aron {
  position: absolute; bottom: 20%; left: 52%; width: 20px; height: 56px;
  background: linear-gradient(180deg, #2a1a28 0%, #1a0e16 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: ne-aron 7s ease-in-out infinite;
}
.scn-ned-announces-evening-escape .door {
  position: absolute; top: 10%; right: 10%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #2a1a30 0%, #1a0e1a 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 10px rgba(0,0,0,.5), 0 4px 8px rgba(0,0,0,.3);
  transform-origin: left center;
  animation: ne-door 20s ease-in-out infinite alternate;
}
@keyframes ne-table {
  0% { transform: rotate(0deg); }
  30% { transform: rotate(1deg) translateY(-1px); }
  60% { transform: rotate(-1deg) translateY(1px); }
  100% { transform: rotate(0deg); }
}
@keyframes ne-candle {
  0% { box-shadow: 0 0 8px 2px #f0a060, 0 0 16px 4px rgba(240,160,96,.2); opacity: 0.8; transform: scaleY(1); }
  50% { box-shadow: 0 0 18px 6px #f0a060, 0 0 40px 10px rgba(240,160,96,.4); opacity: 1; transform: scaleY(1.1); }
  100% { box-shadow: 0 0 10px 3px #f0a060, 0 0 20px 5px rgba(240,160,96,.25); opacity: 0.85; transform: scaleY(0.95); }
}
@keyframes ne-ned {
  0% { transform: rotate(0deg) translateY(0); }
  20% { transform: rotate(-4deg) translateY(-3px); }
  50% { transform: rotate(3deg) translateY(-1px); }
  80% { transform: rotate(-2deg) translateY(-4px); }
  100% { transform: rotate(0deg) translateY(0); }
}
@keyframes ne-aron {
  0% { transform: rotate(0deg) translateY(0); }
  25% { transform: rotate(2deg) translateY(-2px); }
  50% { transform: rotate(-1deg) translateY(-1px); }
  75% { transform: rotate(1deg) translateY(-3px); }
  100% { transform: rotate(0deg) translateY(0); }
}
@keyframes ne-door {
  0% { transform: rotateY(0deg); }
  30% { transform: rotateY(15deg); }
  60% { transform: rotateY(5deg); }
  100% { transform: rotateY(0deg); }
}

/* Scene: aronnax-hesitates */
.scn-aronnax-hesitates {
  background: linear-gradient(180deg, #14101a 0%, #1e1828 50%, #0e0a14 100%),
              radial-gradient(ellipse at 70% 30%, #1a1520 0%, transparent 60%);
}
.scn-aronnax-hesitates .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(135deg, #1a1520 0%, #0e0a14 100%);
  box-shadow: inset 0 -10px 20px rgba(0,0,0,.5);
}
.scn-aronnax-hesitates .porthole.frame {
  position: absolute; top: 12%; right: 15%; width: 55px; height: 55px;
  border-radius: 50%;
  background: radial-gradient(circle at 50% 50%, #2a2030 0%, #1a1220 70%);
  box-shadow: 0 0 0 8px #1a1220, 0 0 20px rgba(0,0,0,.5);
}
.scn-aronnax-hesitates .porthole.glass {
  position: absolute; top: 15%; right: 18%; width: 40px; height: 40px;
  border-radius: 50%;
  background: radial-gradient(circle at 40% 40%, #0a1a28 0%, #050e18 100%);
  box-shadow: inset 0 0 15px #0a1a28, 0 0 20px rgba(10,30,50,.5);
  animation: ah-glass 15s ease-in-out infinite alternate;
}
.scn-aronnax-hesitates .sea-outside {
  position: absolute; top: 12%; right: 15%; width: 55px; height: 55px;
  border-radius: 50%;
  background: radial-gradient(circle at 50% 80%, #0a2030 0%, transparent 70%);
  opacity: 0.3;
  animation: ah-sea 6s ease-in-out infinite;
}
.scn-aronnax-hesitates .figure-back {
  position: absolute; bottom: 20%; right: 30%; width: 22px; height: 60px;
  background: linear-gradient(180deg, #1a1520 0%, #0e0a14 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: ah-back 9s ease-in-out infinite;
}
.scn-aronnax-hesitates .hand-chin {
  position: absolute; bottom: 40%; right: 31%; width: 8px; height: 12px;
  background: #1a1520;
  border-radius: 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: ah-hand 4s ease-in-out infinite alternate;
}
.scn-aronnax-hesitates .shadow-wall {
  position: absolute; top: 0; left: 0; right: 40%; height: 100%;
  background: linear-gradient(90deg, rgba(0,0,0,.4) 0%, transparent 100%);
  animation: ah-shadow 12s ease-in-out infinite alternate;
}
@keyframes ah-glass {
  0% { opacity: 0.5; transform: scale(1); }
  50% { opacity: 0.8; transform: scale(1.03); }
  100% { opacity: 0.6; transform: scale(0.97); }
}
@keyframes ah-sea {
  0% { transform: translateY(0); opacity: 0.2; }
  50% { transform: translateY(-5px); opacity: 0.4; }
  100% { transform: translateY(2px); opacity: 0.3; }
}
@keyframes ah-back {
  0% { transform: rotate(0deg) translateY(0); }
  25% { transform: rotate(1deg) translateY(-2px); }
  50% { transform: rotate(-2deg) translateY(-1px); }
  75% { transform: rotate(1deg) translateY(-3px); }
  100% { transform: rotate(0deg) translateY(0); }
}
@keyframes ah-hand {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(10deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes ah-shadow {
  0% { opacity: 0.3; }
  50% { opacity: 0.6; }
  100% { opacity: 0.4; }
}

/* one block per scene id. Append to style.css. */
.scn-fine-catch-estimate { background: linear-gradient(180deg, #f8e4c0 0%, #b8d8e8 40%, #6a9fc0 70%, #3a6a8a 100%), radial-gradient(ellipse at 30% 60%, #ffe8b0 0%, transparent 60%); }
.scn-fine-catch-estimate .sky-sea { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #f0dba0 0%, #8ab8d0 60%, transparent 100%); animation: s1-skysea 14s ease-in-out infinite alternate; }
.scn-fine-catch-estimate .sun { position:absolute; top:10%; left:70%; width:60px; height:60px; background: radial-gradient(circle, #fff8d0 0%, #fce8a0 50%, transparent 70%); border-radius:50%; box-shadow: 0 0 80px 30px rgba(255,232,160,.5); animation: s1-sun 12s ease-in-out infinite alternate; }
.scn-fine-catch-estimate .boat { position:absolute; bottom:38%; left:30%; width:100px; height:40px; background: linear-gradient(180deg, #7a5a3a 0%, #4a321a 100%); border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%; transform: rotate(-2deg); box-shadow: 0 4px 8px rgba(0,0,0,.3); animation: s1-boat 6s ease-in-out infinite; }
.scn-fine-catch-estimate .net { position:absolute; bottom:30%; left:35%; width:120px; height:60px; background: repeating-linear-gradient(45deg, rgba(180,160,120,.6) 0px, transparent 4px, rgba(180,160,120,.6) 8px); border-radius: 50% 50% 30% 30% / 20% 20% 40% 40%; transform-origin: 20% 0%; animation: s1-net 8s ease-in-out infinite; }
.scn-fine-catch-estimate .fish-cluster { position:absolute; bottom:32%; left:38%; width:80px; height:30px; background: radial-gradient(circle at 30% 50%, #c0a070 0%, #8a6a40 60%, transparent 100%); border-radius: 40% 60% 30% 50% / 50% 40% 60% 40%; filter: blur(1px); animation: s1-fish 3s ease-in-out infinite alternate; }
.scn-fine-catch-estimate .wave-1 { position:absolute; bottom:25%; left:0; right:0; height:20%; background: linear-gradient(180deg, #4a7a9a 0%, #2a5a7a 100%); border-radius: 50% 40% 0 0; box-shadow: inset 0 4px 15px rgba(0,20,40,.5); animation: s1-wave1 10s ease-in-out infinite; }
.scn-fine-catch-estimate .wave-2 { position:absolute; bottom:18%; left:-10%; width:120%; height:18%; background: linear-gradient(180deg, #5a8aaa 0%, #3a6a8a 100%); border-radius: 40% 60% 0 0; animation: s1-wave2 14s ease-in-out infinite reverse; }
.scn-fine-catch-estimate .cloud-a { position:absolute; top:12%; left:-10%; width:120px; height:20px; background: linear-gradient(180deg, rgba(255,255,240,.7) 0%, transparent 100%); filter: blur(8px); border-radius:50%; animation: s1-cloud-drift 40s linear infinite; }
.scn-fine-catch-estimate .cloud-b { position:absolute; top:18%; right:-8%; width:100px; height:15px; background: linear-gradient(180deg, rgba(255,255,240,.5) 0%, transparent 100%); filter: blur(6px); border-radius:50%; animation: s1-cloud-drift 55s linear infinite reverse; }
@keyframes s1-skysea { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes s1-sun { 0% { transform: scale(.95) translateY(0); box-shadow: 0 0 60px 20px rgba(255,232,160,.4); } 50% { transform: scale(1.05) translateY(-5px); box-shadow: 0 0 100px 40px rgba(255,232,160,.7); } 100% { transform: scale(1) translateY(0); box-shadow: 0 0 80px 30px rgba(255,232,160,.5); } }
@keyframes s1-boat { 0%,100% { transform: rotate(-2deg) translateY(0); } 25% { transform: rotate(-1deg) translateY(-2px); } 75% { transform: rotate(-3deg) translateY(1px); } }
@keyframes s1-net { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(3deg) translateY(-4px); } 100% { transform: rotate(-2deg) translateY(1px); } }
@keyframes s1-fish { 0% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.1) rotate(5deg); } 100% { transform: scale(.95) rotate(-3deg); } }
@keyframes s1-wave1 { 0%,100% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-4px) scaleY(1.05); } }
@keyframes s1-wave2 { 0%,100% { transform: translateX(0) scaleY(1); } 50% { transform: translateX(8px) scaleY(1.03); } }
@keyframes s1-cloud-drift { 0% { transform: translateX(-120px); } 100% { transform: translateX(120vw); } }

.scn-fish-stored { background: linear-gradient(180deg, #0a1a2a 0%, #1a3040 40%, #2a4050 100%), radial-gradient(ellipse at 50% 20%, #3a4a5a 0%, transparent 70%); }
.scn-fish-stored .bg-deep { position:absolute; inset:0; background: linear-gradient(180deg, transparent 0%, rgba(0,10,20,.7) 100%); animation: s2-bg 20s ease-in-out infinite alternate; }
.scn-fish-stored .storage-wall { position:absolute; left:5%; top:10%; width:90%; height:80%; background: repeating-linear-gradient(0deg, #2a3a4a 0px, #3a4a5a 2px, #2a3a4a 4px); border-radius: 4% 4% 2% 2%; box-shadow: inset 0 0 30px rgba(0,0,0,.7); transform: perspective(800px) rotateX(5deg); }
.scn-fish-stored .hatch { position:absolute; top:5%; left:35%; width:30%; height:12%; background: linear-gradient(180deg, #4a5a6a 0%, #2a3a4a 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 20px rgba(0,0,0,.5); animation: s2-hatch 8s ease-in-out infinite; }
.scn-fish-stored .fish-1 { position:absolute; top:30%; left:20%; width:40px; height:16px; background: radial-gradient(ellipse at 60% 40%, #6a7a6a 0%, #4a5a4a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: 30% 50%; animation: s2-fish-sway 5s ease-in-out infinite; }
.scn-fish-stored .fish-2 { position:absolute; top:50%; left:55%; width:35px; height:14px; background: radial-gradient(ellipse at 50% 50%, #7a6a6a 0%, #5a4a4a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: 30% 50%; animation: s2-fish-sway 6s ease-in-out infinite reverse; animation-delay: -2s; }
.scn-fish-stored .light-shaft { position:absolute; top:0; left:30%; width:10%; height:100%; background: linear-gradient(180deg, rgba(200,220,240,.15) 0%, transparent 100%); filter: blur(4px); animation: s2-light 12s ease-in-out infinite alternate; }
.scn-fish-stored .shadow-layer { position:absolute; inset:0; background: linear-gradient(180deg, transparent 60%, rgba(0,0,0,.6) 100%); pointer-events:none; }
@keyframes s2-bg { 0%,100% { opacity:.6; } 50% { opacity:1; } }
@keyframes s2-hatch { 0%,100% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-3px) scaleY(1.02); } }
@keyframes s2-fish-sway { 0% { transform: rotate(-8deg) translateY(0); } 50% { transform: rotate(8deg) translateY(-2px); } 100% { transform: rotate(-6deg) translateY(0); } }
@keyframes s2-light { 0% { opacity:.3; transform: translateX(-5px); } 50% { opacity:.6; transform: translateX(5px); } 100% { opacity:.4; transform: translateX(0); } }

.scn-captain-speaks-ocean-life { background: linear-gradient(180deg, #f0c880 0%, #b8a070 40%, #7a6a5a 70%, #3a4a5a 100%), radial-gradient(ellipse at 30% 20%, #ffe8b0 0%, transparent 60%); }
.scn-captain-speaks-ocean-life .window-frame { position:absolute; left:10%; top:5%; width:80%; height:90%; border: 6px solid #2a2a2a; border-radius: 4% 4% 2% 2%; background: transparent; box-shadow: inset 0 0 40px rgba(0,0,0,.4); animation: s3-frame 10s ease-in-out infinite; }
.scn-captain-speaks-ocean-life .ocean-bg { position:absolute; left:12%; top:7%; width:76%; height:86%; background: linear-gradient(180deg, #4a7a9a 0%, #2a5a7a 60%, #0a3a5a 100%); border-radius: 2%; animation: s3-ocean 16s ease-in-out infinite alternate; }
.scn-captain-speaks-ocean-life .sky-glow { position:absolute; left:12%; top:7%; width:76%; height:50%; background: linear-gradient(180deg, #f8d8a0 0%, #d8c090 40%, transparent 100%); border-radius: 2% 2% 0 0; animation: s3-sky 14s ease-in-out infinite alternate; }
.scn-captain-speaks-ocean-life .captain-silhouette { position:absolute; bottom:20%; left:38%; width:16px; height:50px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: s3-captain 6s ease-in-out infinite; }
.scn-captain-speaks-ocean-life .sunrise { position:absolute; top:25%; left:65%; width:50px; height:50px; background: radial-gradient(circle, #fff0c0 0%, #f0c880 40%, transparent 70%); border-radius:50%; box-shadow: 0 0 100px 40px rgba(240,200,128,.5); animation: s3-sunrise 12s ease-in-out infinite alternate; }
.scn-captain-speaks-ocean-life .ray-1 { position:absolute; top:10%; left:30%; width:4px; height:30%; background: linear-gradient(180deg, rgba(255,240,200,.6) 0%, transparent 100%); transform: rotate(15deg); border-radius: 2px; filter: blur(2px); animation: s3-ray1 9s ease-in-out infinite alternate; }
.scn-captain-speaks-ocean-life .ray-2 { position:absolute; top:15%; left:55%; width:5px; height:25%; background: linear-gradient(180deg, rgba(255,240,200,.5) 0%, transparent 100%); transform: rotate(-10deg); border-radius: 2px; filter: blur(2px); animation: s3-ray2 11s ease-in-out infinite alternate-reverse; }
.scn-captain-speaks-ocean-life .cloud-c { position:absolute; top:12%; left:-8%; width:100px; height:18px; background: linear-gradient(180deg, rgba(255,240,220,.5) 0%, transparent 100%); filter: blur(7px); border-radius:50%; animation: s3-cloud 45s linear infinite; }
.scn-captain-speaks-ocean-life .cloud-d { position:absolute; top:20%; right:-5%; width:80px; height:14px; background: linear-gradient(180deg, rgba(255,240,220,.4) 0%, transparent 100%); filter: blur(5px); border-radius:50%; animation: s3-cloud-rev 60s linear infinite; }
@keyframes s3-frame { 0%,100% { box-shadow: inset 0 0 40px rgba(0,0,0,.4); } 50% { box-shadow: inset 0 0 60px rgba(0,0,0,.6); } }
@keyframes s3-ocean { 0% { background-position: 0 0; } 50% { background-position: -10px 5px; } 100% { background-position: 10px -2px; } }
@keyframes s3-sky { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.85; } }
@keyframes s3-captain { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2px) rotate(1deg); } 75% { transform: translateX(-2px) rotate(-1deg); } }
@keyframes s3-sunrise { 0% { transform: scale(.9) translateY(0); } 50% { transform: scale(1.1) translateY(-4px); } 100% { transform: scale(1) translateY(0); } }
@keyframes s3-ray1 { 0% { opacity:.3; transform: rotate(15deg) scaleY(1); } 50% { opacity:.7; transform: rotate(20deg) scaleY(1.1); } 100% { opacity:.5; transform: rotate(15deg) scaleY(1); } }
@keyframes s3-ray2 { 0% { opacity:.4; transform: rotate(-10deg) scaleY(1); } 50% { opacity:.6; transform: rotate(-5deg) scaleY(1.05); } 100% { opacity:.4; transform: rotate(-10deg) scaleY(1); } }
@keyframes s3-cloud { 0% { transform: translateX(-100px); } 100% { transform: translateX(120vw); } }
@keyframes s3-cloud-rev { 0% { transform: translateX(0); } 100% { transform: translateX(-120vw); } }

.scn-captain-continues { background: linear-gradient(180deg, #f0c880 0%, #d8b070 30%, #a08a60 60%, #5a6a7a 100%), radial-gradient(ellipse at 50% 30%, #ffe8c0 0%, transparent 70%); }
.scn-captain-continues .sunlit-window { position:absolute; left:15%; top:5%; width:70%; height:90%; background: linear-gradient(180deg, #f8e0b0 0%, #c8a060 100%); border-radius: 3% 3% 1% 1%; box-shadow: inset 0 0 30px rgba(0,0,0,.3); animation: s4-window 12s ease-in-out infinite alternate; }
.scn-captain-continues .ocean-surface { position:absolute; bottom:0; left:15%; width:70%; height:40%; background: linear-gradient(180deg, #4a7a9a 0%, #2a5a7a 100%); border-radius: 0 0 2% 2%; box-shadow: inset 0 10px 20px rgba(0,20,40,.4); animation: s4-ocean 16s ease-in-out infinite alternate; }
.scn-captain-continues .hand-gesture { position:absolute; bottom:25%; left:35%; width:20px; height:30px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: 50% 100%; animation: s4-hand 6s ease-in-out infinite; }
.scn-captain-continues .sun-reflection { position:absolute; top:15%; left:40%; width:80px; height:80px; background: radial-gradient(circle, #fff8d0 0%, #f8d8a0 30%, transparent 60%); border-radius:50%; box-shadow: 0 0 120px 50px rgba(248,216,160,.4); animation: s4-reflection 10s ease-in-out infinite alternate; }
.scn-captain-continues .wave-crest { position:absolute; bottom:30%; left:15%; width:70%; height:10px; background: linear-gradient(180deg, rgba(100,180,220,.6) 0%, transparent 100%); border-radius: 50% 50% 0 0; filter: blur(2px); animation: s4-crest 7s ease-in-out infinite; }
.scn-captain-continues .seagull { position:absolute; top:20%; left:20%; width:30px; height:10px; background: radial-gradient(ellipse at 60% 40%, #2a2a2a 0%, #0a0a0a 100%); border-radius: 50% 50% 20% 20% / 40% 40% 30% 30%; transform: rotate(-10deg); animation: s4-gull 15s ease-in-out infinite; }
.scn-captain-continues .cloud-e { position:absolute; top:8%; left:-10%; width:90px; height:16px; background: linear-gradient(180deg, rgba(255,240,220,.5) 0%, transparent 100%); filter: blur(6px); border-radius:50%; animation: s4-cloud-drift 40s linear infinite; }
.scn-captain-continues .cloud-f { position:absolute; top:14%; right:-8%; width:70px; height:12px; background: linear-gradient(180deg, rgba(255,240,220,.4) 0%, transparent 100%); filter: blur(5px); border-radius:50%; animation: s4-cloud-drift-rev 55s linear infinite; }
@keyframes s4-window { 0%,100% { opacity:.9; } 50% { opacity:1; } }
@keyframes s4-ocean { 0% { background-position: 0 0; } 50% { background-position: -5px 3px; } 100% { background-position: 5px -1px; } }
@keyframes s4-hand { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(4px) rotate(3deg); } 75% { transform: translateX(-2px) rotate(-2deg); } }
@keyframes s4-reflection { 0% { transform: scale(.9) translateY(0); opacity:.8; } 50% { transform: scale(1.15) translateY(-3px); opacity:1; } 100% { transform: scale(1) translateY(0); opacity:.9; } }
@keyframes s4-crest { 0%,100% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-3px) scaleX(1.05); } }
@keyframes s4-gull { 0% { transform: rotate(-10deg) translateX(0); } 25% { transform: rotate(-5deg) translateX(10px) translateY(-5px); } 75% { transform: rotate(5deg) translateX(20px) translateY(-2px); } 100% { transform: rotate(-10deg) translateX(0); } }
@keyframes s4-cloud-drift { 0% { transform: translateX(-100px); } 100% { transform: translateX(120vw); } }
@keyframes s4-cloud-drift-rev { 0% { transform: translateX(0); } 100% { transform: translateX(-120vw); } }

.scn-ned-watches-conseil { background: linear-gradient(180deg, #3b6e8f 0%, #7ba7c4 40%, #d4e1e8 70%, #fef9e3 100%), radial-gradient(ellipse at 50% 100%, #c8d8e0 0%, transparent 70%); }
.scn-ned-watches-conseil .sky { position:absolute; inset:0 0 60% 0; background: linear-gradient(180deg, #5a8cad 0%, #b0d0e0 100%); animation: nwc-sky 20s ease-in-out infinite alternate; }
.scn-ned-watches-conseil .forest-bg { position:absolute; bottom:0; left:0; right:0; height:60%; background: linear-gradient(0deg, #2a3d2a 0%, #4a6a4a 60%, #6b8a6b 100%); border-radius: 30% 70% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.3); animation: nwc-bg 14s ease-in-out infinite alternate; }
.scn-ned-watches-conseil .tree-left { position:absolute; bottom:25%; left:15%; width:30px; height:140px; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius:20% 20% 10% 10%; box-shadow: 0 4px 8px rgba(0,0,0,.4); transform-origin: bottom center; animation: nwc-sway 6s ease-in-out infinite alternate; }
.scn-ned-watches-conseil .tree-right { position:absolute; bottom:25%; right:20%; width:30px; height:160px; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius:20% 20% 10% 10%; box-shadow: 0 4px 8px rgba(0,0,0,.4); transform-origin: bottom center; animation: nwc-sway 7s ease-in-out infinite alternate-reverse; }
.scn-ned-watches-conseil .figure-ned { position:absolute; bottom:30%; left:40%; width:22px; height:44px; background: linear-gradient(180deg, #8a6a4a 0%, #5a4a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: nwc-walk 4s ease-in-out infinite; }
.scn-ned-watches-conseil .figure-conseil { position:absolute; bottom:30%; left:55%; width:20px; height:42px; background: linear-gradient(180deg, #7a6a5a 0%, #4a4a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: nwc-walk 4.5s ease-in-out infinite; }
.scn-ned-watches-conseil .sun-ray { position:absolute; top:10%; left:30%; width:120px; height:200px; background: linear-gradient(135deg, rgba(255,255,200,.25) 0%, transparent 70%); filter: blur(12px); animation: nwc-ray 8s ease-in-out infinite alternate; }
@keyframes nwc-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes nwc-bg { 0% { transform: scaleY(1) translateY(0) } 50% { transform: scaleY(1.02) translateY(-2px) } 100% { transform: scaleY(1) translateY(0) } }
@keyframes nwc-sway { 0% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-2deg) } }
@keyframes nwc-walk { 0% { transform: translateX(0) translateY(0) rotate(-1deg) } 25% { transform: translateX(4px) translateY(-1px) rotate(1deg) } 50% { transform: translateX(8px) translateY(0) rotate(-1deg) } 75% { transform: translateX(12px) translateY(-1px) rotate(1deg) } 100% { transform: translateX(16px) translateY(0) rotate(0) } }
@keyframes nwc-ray { 0% { opacity:.3; transform: rotate(-5deg) } 50% { opacity:.6; transform: rotate(0) } 100% { opacity:.4; transform: rotate(5deg) } }

.scn-ned-misses-roast { background: linear-gradient(180deg, #2a5a3a 0%, #5a8a5a 40%, #9aba9a 70%, #f0e8c0 100%), radial-gradient(ellipse at 50% 100%, #b0c8a0 0%, transparent 70%); }
.scn-ned-misses-roast .sky { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #7a9a7a 0%, #b0d0b0 100%); animation: nmr-sky 18s ease-in-out infinite alternate; }
.scn-ned-misses-roast .ground { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #4a6a4a 0%, #2a3a2a 100%); border-radius: 50% 50% 0 0; box-shadow: inset 0 8px 16px rgba(0,0,0,.5); animation: nmr-ground 12s ease-in-out infinite alternate; }
.scn-ned-misses-roast .tree { position:absolute; bottom:30%; left:20%; width:28px; height:120px; background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius:20% 20% 10% 10%; box-shadow: 0 4px 8px rgba(0,0,0,.4); transform-origin: bottom center; animation: nmr-sway 5s ease-in-out infinite alternate; }
.scn-ned-misses-roast .figure-ned-roast { position:absolute; bottom:32%; left:45%; width:24px; height:46px; background: linear-gradient(180deg, #8a6a4a 0%, #5a4a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: nmr-gesture 3s ease-in-out infinite; }
.scn-ned-misses-roast .empty-pot { position:absolute; bottom:25%; left:60%; width:30px; height:22px; background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%); border-radius: 40% 40% 10% 10%; box-shadow: 0 -2px 6px rgba(0,0,0,.3); transform-origin: bottom center; animation: nmr-pot 4s ease-in-out infinite alternate; }
.scn-ned-misses-roast .smoke-a { position:absolute; bottom:40%; left:58%; width:20px; height:40px; background: radial-gradient(circle, rgba(200,200,180,.3) 0%, transparent 70%); filter: blur(6px); animation: nmr-smoke 6s ease-in-out infinite; }
.scn-ned-misses-roast .smoke-b { position:absolute; bottom:38%; left:62%; width:16px; height:36px; background: radial-gradient(circle, rgba(200,200,180,.25) 0%, transparent 70%); filter: blur(6px); animation: nmr-smoke 7s ease-in-out infinite 1s; }
@keyframes nmr-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes nmr-ground { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes nmr-sway { 0% { transform: rotate(-3deg) } 50% { transform: rotate(3deg) } 100% { transform: rotate(-2deg) } }
@keyframes nmr-gesture { 0% { transform: translateX(0) rotate(0) } 33% { transform: translateX(6px) rotate(5deg) } 66% { transform: translateX(-4px) rotate(-3deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes nmr-pot { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-4px) rotate(2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes nmr-smoke { 0% { transform: translateY(0) scale(1); opacity:.5 } 50% { transform: translateY(-20px) scale(1.5); opacity:.2 } 100% { transform: translateY(-40px) scale(2); opacity:0 } }

.scn-return-to-skiff { background: linear-gradient(180deg, #1a3a5a 0%, #3a6a8a 40%, #7a9aba 70%, #d0e0f0 100%), radial-gradient(ellipse at 50% 100%, #8ab0d0 0%, transparent 70%); }
.scn-return-to-skiff .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #5a8ab0 0%, #b0d0e8 100%); animation: rts-sky 16s ease-in-out infinite alternate; }
.scn-return-to-skiff .ocean { position:absolute; bottom:20%; left:0; right:0; height:30%; background: linear-gradient(180deg, #2a5a7a 0%, #1a3a5a 100%); border-radius: 0 0 40% 60% / 0 0 20% 30%; box-shadow: inset 0 10px 20px rgba(0,0,0,.3); animation: rts-ocean 10s ease-in-out infinite alternate; }
.scn-return-to-skiff .sand { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #c8b080 0%, #a09070 100%); border-radius: 30% 70% 0 0; box-shadow: inset 0 8px 16px rgba(0,0,0,.2); animation: rts-sand 8s ease-in-out infinite alternate; }
.scn-return-to-skiff .skiff { position:absolute; bottom:18%; left:25%; width:60px; height:18px; background: linear-gradient(180deg, #8a7a5a 0%, #5a4a3a 100%); border-radius: 20% 20% 5% 5%; box-shadow: 0 4px 8px rgba(0,0,0,.5); transform-origin: center bottom; animation: rts-skiff 5s ease-in-out infinite alternate; }
.scn-return-to-skiff .figure-left { position:absolute; bottom:18%; left:20%; width:20px; height:40px; background: linear-gradient(180deg, #7a6a5a 0%, #4a3a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rts-walk 4s ease-in-out infinite; }
.scn-return-to-skiff .figure-right { position:absolute; bottom:18%; left:35%; width:22px; height:42px; background: linear-gradient(180deg, #8a6a4a 0%, #5a4a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rts-walk 4.5s ease-in-out infinite -1s; }
.scn-return-to-skiff .sun { position:absolute; top:8%; right:15%; width:40px; height:40px; background: radial-gradient(circle, #ffe080 0%, #ffc040 40%, transparent 70%); box-shadow: 0 0 40px 10px rgba(255,192,64,.3); animation: rts-sun 20s ease-in-out infinite alternate; }
@keyframes rts-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes rts-ocean { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(3px) scaleY(1.03) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes rts-sand { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes rts-skiff { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-3px) rotate(2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes rts-walk { 0% { transform: translateX(0) translateY(0) rotate(-1deg) } 25% { transform: translateX(6px) translateY(-1px) rotate(1deg) } 50% { transform: translateX(12px) translateY(0) rotate(-1deg) } 75% { transform: translateX(18px) translateY(-1px) rotate(1deg) } 100% { transform: translateX(24px) translateY(0) rotate(0) } }
@keyframes rts-sun { 0% { transform: scale(1) translateY(0); opacity:.8 } 50% { transform: scale(1.05) translateY(-2px); opacity:1 } 100% { transform: scale(1) translateY(0); opacity:.9 } }

.scn-back-through-forest { background: linear-gradient(180deg, #2a4a2a 0%, #4a7a4a 40%, #8aba8a 70%, #d0e8d0 100%), radial-gradient(ellipse at 50% 100%, #a0c0a0 0%, transparent 70%); }
.scn-back-through-forest .sky { position:absolute; inset:0 0 60% 0; background: linear-gradient(180deg, #7a9a7a 0%, #b0d0b0 100%); animation: btf-sky 18s ease-in-out infinite alternate; }
.scn-back-through-forest .forest-distant { position:absolute; bottom:30%; left:0; right:0; height:40%; background: linear-gradient(0deg, #3a5a3a 0%, #5a7a5a 60%, #8a9a8a 100%); border-radius: 40% 60% 0 0; box-shadow: inset 0 8px 16px rgba(0,0,0,.2); animation: btf-distant 14s ease-in-out infinite alternate; }
.scn-back-through-forest .tree-fore { position:absolute; bottom:20%; left:20%; width:30px; height:160px; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius:20% 20% 10% 10%; box-shadow: 0 4px 8px rgba(0,0,0,.4); transform-origin: bottom center; animation: btf-sway 5s ease-in-out infinite alternate; }
.scn-back-through-forest .figure-harvester { position:absolute; bottom:28%; left:40%; width:22px; height:44px; background: linear-gradient(180deg, #8a6a4a 0%, #5a4a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: btf-harvest 4s ease-in-out infinite; }
.scn-back-through-forest .figure-harvester2 { position:absolute; bottom:28%; left:55%; width:20px; height:42px; background: linear-gradient(180deg, #7a6a5a 0%, #4a3a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: btf-harvest 4.5s ease-in-out infinite -1s; }
.scn-back-through-forest .fruit-cluster { position:absolute; bottom:35%; left:48%; width:30px; height:30px; background: radial-gradient(circle, #c08030 0%, #a06020 50%, transparent 80%); border-radius:50%; box-shadow: 0 0 12px 4px rgba(192,128,48,.3); animation: btf-fruit 3s ease-in-out infinite alternate; }
.scn-back-through-forest .ground { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #4a6a4a 0%, #2a3a2a 100%); border-radius: 30% 70% 0 0; box-shadow: inset 0 8px 16px rgba(0,0,0,.3); animation: btf-ground 10s ease-in-out infinite alternate; }
@keyframes btf-sky { 0% { opacity:.75 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes btf-distant { 0% { transform: scaleY(1) translateY(0) } 50% { transform: scaleY(1.02) translateY(-2px) } 100% { transform: scaleY(1) translateY(0) } }
@keyframes btf-sway { 0% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-2deg) } }
@keyframes btf-harvest { 0% { transform: translateX(0) translateY(0) rotate(-1deg) } 25% { transform: translateX(4px) translateY(-2px) rotate(2deg) } 50% { transform: translateX(8px) translateY(0) rotate(-1deg) } 75% { transform: translateX(12px) translateY(-2px) rotate(2deg) } 100% { transform: translateX(16px) translateY(0) rotate(0) } }
@keyframes btf-fruit { 0% { transform: scale(1) translateY(0) } 50% { transform: scale(1.1) translateY(-3px) } 100% { transform: scale(1) translateY(0) } }
@keyframes btf-ground { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }

.scn-history-of-volcanic-islands { background: linear-gradient(180deg, #3a1a0a 0%, #6a2a0a 20%, #aa4a1a 40%, #cc6630 60%, #aa4a1a 80%, #6a2a0a 100%), radial-gradient(ellipse at 50% 30%, #cc6630 0%, transparent 50%); }
.scn-history-of-volcanic-islands .sky-vi { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #4a2a0a 0%, #8a3a1a 30%, #cc6630 60%, #ea8840 80%, #ffaa60 100%); animation: vi-sky 10s ease-in-out infinite alternate; }
.scn-history-of-volcanic-islands .sun-vi { position:absolute; top:18%; left:50%; width:60px; height:60px; transform:translateX(-50%); background: radial-gradient(circle, #ffe888 0%, #ffaa40 40%, transparent 70%); border-radius:50%; box-shadow: 0 0 80px 30px rgba(255,170,64,.6), 0 0 160px 60px rgba(255,170,64,.3); animation: vi-pulse 4s ease-in-out infinite alternate; }
.scn-history-of-volcanic-islands .sea-vi { position:absolute; bottom:0; left:0; right:0; height:42%; background: linear-gradient(180deg, #aa5520 0%, #6a3018 30%, #3a1a0a 60%, #1a0a00 100%); animation: vi-sea 6s ease-in-out infinite alternate; }
.scn-history-of-volcanic-islands .island-vi { position:absolute; bottom:38%; left:30%; right:30%; height:20%; background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%); border-radius: 20% 20% 0 0 / 60% 60% 0 0; box-shadow: 0 0 40px 10px rgba(170,80,40,.4); }
.scn-history-of-volcanic-islands .crater-vi { position:absolute; bottom:48%; left:42%; right:42%; height:8%; background: radial-gradient(ellipse, #ff6620 0%, #aa3000 40%, transparent 60%); border-radius:50%; box-shadow: 0 0 30px 10px #cc4400, 0 0 60px 20px rgba(204,68,0,.3); animation: vi-glow 3s ease-in-out infinite alternate; }
.scn-history-of-volcanic-islands .smoke-vi { position:absolute; bottom:50%; width:20px; height:60px; background: linear-gradient(180deg, transparent 0%, rgba(200,100,40,.4) 40%, rgba(100,50,20,.2) 100%); border-radius:50%; filter: blur(6px); }
.scn-history-of-volcanic-islands .smoke-a { left:40%; animation: vi-smoke 12s ease-in-out infinite; }
.scn-history-of-volcanic-islands .smoke-b { left:55%; animation: vi-smoke 16s ease-in-out infinite reverse; }
.scn-history-of-volcanic-islands .reflection-vi { position:absolute; bottom:5%; left:20%; right:20%; height:30%; background: radial-gradient(ellipse at 50% 0%, rgba(255,170,64,.3) 0%, transparent 70%); animation: vi-reflect 5s ease-in-out infinite alternate; }
.scn-history-of-volcanic-islands .bird-vi { position:absolute; top:12%; left:70%; width:12px; height:8px; background: transparent; border-left: 4px solid transparent; border-right: 4px solid transparent; border-bottom: 6px solid #1a0a00; border-radius:0 0 50% 50%; animation: vi-bird 20s linear infinite; }
@keyframes vi-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.6 } }
@keyframes vi-pulse { 0% { transform: translateX(-50%) scale(.95); box-shadow: 0 0 60px 20px rgba(255,170,64,.5); } 50% { transform: translateX(-50%) scale(1.05); box-shadow: 0 0 100px 40px rgba(255,170,64,.7); } 100% { transform: translateX(-50%) scale(.98); box-shadow: 0 0 70px 25px rgba(255,170,64,.4); } }
@keyframes vi-sea { 0% { transform: translateY(0) } 50% { transform: translateY(2px) } 100% { transform: translateY(0) } }
@keyframes vi-glow { 0% { opacity:.6; box-shadow: 0 0 20px 5px #cc4400, 0 0 40px 10px rgba(204,68,0,.2); } 50% { opacity:1; box-shadow: 0 0 40px 15px #ff6600, 0 0 80px 30px rgba(255,102,0,.4); } 100% { opacity:.7; box-shadow: 0 0 25px 8px #cc4400, 0 0 50px 15px rgba(204,68,0,.25); } }
@keyframes vi-smoke { 0% { transform: translateY(0) scale(1); opacity:.6 } 50% { transform: translateY(-20px) scale(1.5); opacity:.3 } 100% { transform: translateY(-40px) scale(2); opacity:0 } }
@keyframes vi-reflect { 0% { opacity:.3 } 50% { opacity:.5 } 100% { opacity:.2 } }
@keyframes vi-bird { 0% { transform: translateX(0) translateY(0) rotate(-5deg) } 25% { transform: translateX(-20px) translateY(-6px) rotate(2deg) } 50% { transform: translateX(-40px) translateY(-2px) rotate(-3deg) } 75% { transform: translateX(-60px) translateY(-8px) rotate(4deg) } 100% { transform: translateX(-80px) translateY(0) rotate(0) } }

.scn-recent-eruptions-1866 { background: linear-gradient(180deg, #1a0a00 0%, #2a1000 30%, #4a1a00 60%, #6a2a00 100%), radial-gradient(ellipse at 50% 60%, #cc4400 0%, transparent 50%); }
.scn-recent-eruptions-1866 .night-sky-er { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #0a0a1a 0%, #1a0a0a 50%, #2a1000 100%); animation: er-sky 15s ease-in-out infinite alternate; }
.scn-recent-eruptions-1866 .eruption-col-er { position:absolute; bottom:40%; left:40%; right:40%; height:50%; background: linear-gradient(180deg, #cc4400 0%, #aa3000 20%, #cc4400 40%, #ff6620 60%, #cc4400 80%, #aa3000 100%); border-radius: 0 0 30% 30% / 0 0 60% 60%; box-shadow: 0 -20px 60px 20px #cc4400; animation: er-column 2s ease-in-out infinite alternate; }
.scn-recent-eruptions-1866 .lava-glow-er { position:absolute; bottom:30%; left:30%; right:30%; height:20%; background: radial-gradient(ellipse, #ff8820 0%, #cc4400 40%, transparent 70%); border-radius:50%; box-shadow: 0 0 100px 40px rgba(255,136,32,.5), 0 0 200px 80px rgba(255,136,32,.2); animation: er-pulse 1.5s ease-in-out infinite alternate; }
.scn-recent-eruptions-1866 .lava-flow-er { position:absolute; bottom:35%; left:45%; right:45%; height:12%; background: linear-gradient(180deg, #ff6600 0%, #cc4400 60%, #aa3000 100%); border-radius: 40% 40% 0 0; transform-origin: bottom center; animation: er-flow 4s ease-in-out infinite; }
.scn-recent-eruptions-1866 .sea-er { position:absolute; bottom:0; left:0; right:0; height:32%; background: linear-gradient(180deg, #aa3000 0%, #6a1800 30%, #2a0a00 100%); animation: er-sea 5s ease-in-out infinite alternate; }
.scn-recent-eruptions-1866 .boat-er { position:absolute; bottom:12%; left:20%; width:30px; height:8px; background: linear-gradient(90deg, #1a0a00 0%, #0a0000 100%); border-radius: 0 50% 50% 0 / 0 80% 80% 0; animation: er-boat 8s ease-in-out infinite; }
.scn-recent-eruptions-1866 .ember-er { position:absolute; width:5px; height:5px; background: radial-gradient(circle, #ffaa00 0%, #ff6600 50%, transparent 100%); border-radius:50%; box-shadow: 0 0 8px 2px rgba(255,170,0,.6); }
.scn-recent-eruptions-1866 .ember-a { top:20%; left:50%; animation: er-ember 3s ease-in-out infinite; }
.scn-recent-eruptions-1866 .ember-b { top:30%; left:55%; animation: er-ember 4s ease-in-out infinite reverse; }
@keyframes er-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.6 } }
@keyframes er-column { 0% { transform: scaleY(.85) } 50% { transform: scaleY(1.1) } 100% { transform: scaleY(.9) } }
@keyframes er-pulse { 0% { box-shadow: 0 0 80px 30px rgba(255,136,32,.4), 0 0 160px 60px rgba(255,136,32,.1); opacity:.7 } 50% { box-shadow: 0 0 120px 50px rgba(255,136,32,.6), 0 0 240px 100px rgba(255,136,32,.3); opacity:1 } 100% { box-shadow: 0 0 90px 35px rgba(255,136,32,.45), 0 0 180px 70px rgba(255,136,32,.15); opacity:.8 } }
@keyframes er-flow { 0% { transform: scaleX(.8) translateY(0) } 25% { transform: scaleX(1.1) translateY(2px) } 50% { transform: scaleX(.9) translateY(4px) } 75% { transform: scaleX(1.2) translateY(1px) } 100% { transform: scaleX(.8) translateY(0) } }
@keyframes er-sea { 0% { transform: translateY(0) } 50% { transform: translateY(3px) } 100% { transform: translateY(-1px) } }
@keyframes er-boat { 0% { transform: translate(0, 0) rotate(0) } 25% { transform: translate(5px, -2px) rotate(3deg) } 50% { transform: translate(10px, 0) rotate(-2deg) } 75% { transform: translate(15px, -1px) rotate(4deg) } 100% { transform: translate(20px, 0) rotate(0) } }
@keyframes er-ember { 0% { transform: translate(0, 0) scale:1; opacity:1 } 50% { transform: translate(-10px, -20px) scale:1.5; opacity:.6 } 100% { transform: translate(-20px, -40px) scale:2; opacity:0 } }

.scn-channel-mapping { background: linear-gradient(180deg, #0a1620 0%, #122033 50%, #0a1620 100%), radial-gradient(ellipse at 50% 50%, #1a3050 0%, transparent 70%); }
.scn-channel-mapping .wall-cm { position:absolute; inset:0; background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 50%, #1a2a3a 100%); border-radius: 20px; box-shadow: inset 0 0 60px 20px rgba(0,0,0,.5); animation: cm-wall 12s ease-in-out infinite alternate; }
.scn-channel-mapping .chart-table-cm { position:absolute; bottom:20%; left:15%; right:15%; height:20%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 4px; box-shadow: 0 4px 20px rgba(0,0,0,.6); }
.scn-channel-mapping .chart-cm { position:absolute; bottom:22%; left:22%; right:22%; height:15%; background: linear-gradient(180deg, #3a4a3a 0%, #2a3a2a 100%); border-radius: 2px; border: 1px solid #4a5a4a; animation: cm-chart 8s ease-in-out infinite; }
.scn-channel-mapping .lamp-cm { position:absolute; bottom:40%; left:40%; right:40%; height:8%; background: linear-gradient(180deg, #8a6a3a 0%, #6a4a1a 100%); border-radius: 50% 50% 10% 10%; box-shadow: 0 -4px 12px rgba(200,180,100,.4); }
.scn-channel-mapping .lamp-glow-cm { position:absolute; bottom:42%; left:30%; right:30%; height:20%; background: radial-gradient(ellipse, #f0d080 0%, #c0a050 30%, transparent 70%); border-radius:50%; box-shadow: 0 0 60px 20px rgba(240,208,128,.3), 0 0 120px 40px rgba(240,208,128,.1); animation: cm-glow 4s ease-in-out infinite alternate; }
.scn-channel-mapping .window-cm { position:absolute; top:20%; left:60%; right:10%; height:30%; background: transparent; border: 4px solid #2a3a4a; border-radius: 4px; box-shadow: inset 0 0 20px rgba(0,0,0,.4); }
.scn-channel-mapping .window-view-cm { position:absolute; top:21%; left:62%; right:12%; height:28%; background: linear-gradient(180deg, #0a2030 0%, #1a3050 50%, #0a2030 100%); border-radius: 2px; animation: cm-view 20s ease-in-out infinite alternate; }
.scn-channel-mapping .nemo-cm { position:absolute; bottom:24%; left:12%; width:16px; height:30px; background: linear-gradient(180deg, #0a0a1a 0%, #00000a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: cm-nemo 6s ease-in-out infinite; }
.scn-channel-mapping .bookshelf-cm { position:absolute; top:15%; left:5%; right:75%; height:40%; background: linear-gradient(180deg, #1a0a00 0%, #2a1a0a 50%, #1a0a00 100%); border-radius: 2px; box-shadow: inset 0 0 10px rgba(0,0,0,.4); }
@keyframes cm-wall { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes cm-chart { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-1px) rotate(.5deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes cm-glow { 0% { box-shadow: 0 0 40px 15px rgba(240,208,128,.2), 0 0 80px 30px rgba(240,208,128,.05); opacity:.7 } 50% { box-shadow: 0 0 80px 30px rgba(240,208,128,.35), 0 0 160px 60px rgba(240,208,128,.15); opacity:1 } 100% { box-shadow: 0 0 50px 20px rgba(240,208,128,.25), 0 0 100px 40px rgba(240,208,128,.08); opacity:.8 } }
@keyframes cm-view { 0% { background: linear-gradient(180deg, #0a2030 0%, #1a3050 50%, #0a2030 100%) } 50% { background: linear-gradient(180deg, #0a1a2a 0%, #152a45 50%, #0a1a2a 100%) } 100% { background: linear-gradient(180deg, #0a2030 0%, #1a3050 50%, #0a2030 100%) } }
@keyframes cm-nemo { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 25% { transform: translateX(2px) translateY(-1px) rotate(1deg) } 50% { transform: translateX(4px) translateY(0) rotate(-1deg) } 75% { transform: translateX(2px) translateY(-1px) rotate(2deg) } 100% { transform: translateX(0) translateY(0) rotate(-2deg) } }

.scn-boiling-sea-red { background: linear-gradient(180deg, #2a0a0a 0%, #4a0a0a 30%, #6a1010 60%, #8a2020 100%), radial-gradient(ellipse at 50% 60%, #cc3030 0%, transparent 50%); }
.scn-boiling-sea-red .frame-bs { position:absolute; inset:0; border: 8px solid #1a0a0a; border-radius: 4px; box-shadow: inset 0 0 40px 10px rgba(0,0,0,.6); }
.scn-boiling-sea-red .sea-bs { position:absolute; bottom:0; left:4%; right:4%; height:50%; background: linear-gradient(180deg, #aa2020 0%, #cc3030 20%, #ff4040 40%, #cc3030 60%, #aa2020 80%, #8a1010 100%); border-radius: 0 0 4px 4px; animation: bs-sea 3s ease-in-out infinite alternate; }
.scn-boiling-sea-red .bubble-bs { position:absolute; width:12px; height:12px; background: radial-gradient(circle, transparent 30%, #ff6060 50%, transparent 70%); border-radius:50%; animation: bs-bubble 4s ease-in-out infinite; }
.scn-boiling-sea-red .bubble-a { bottom:30%; left:30%; animation-duration: 4s; }
.scn-boiling-sea-red .bubble-b { bottom:45%; left:55%; animation-duration: 5s; animation-delay: 1s; }
.scn-boiling-sea-red .thermometer-bs { position:absolute; top:20%; right:15%; width:6px; height:40px; background: linear-gradient(180deg, #ff0000 0%, #ff4040 30%, #aa0000 70%, #660000 100%); border-radius: 3px 3px 1px 1px; box-shadow: 0 0 6px rgba(255,0,0,.4); animation: bs-therm 2s ease-in-out infinite; }
.scn-boiling-sea-red .figure-bs { position:absolute; bottom:26%; left:20%; width:16px; height:28px; background: linear-gradient(180deg, #0a0000 0%, #1a0a0a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: bs-figure 5s ease-in-out infinite; }
.scn-boiling-sea-red .steam-bs { position:absolute; width:20px; height:30px; background: linear-gradient(180deg, transparent 0%, rgba(200,100,80,.3) 40%, transparent 100%); border-radius:50%; filter: blur(4px); }
.scn-boiling-sea-red .steam-a { bottom:20%; left:25%; animation: bs-steam 3s ease-in-out infinite; }
.scn-boiling-sea-red .steam-b { bottom:30%; left:45%; animation: bs-steam 4s ease-in-out infinite reverse; }
@keyframes bs-sea { 0% { transform: translateY(0) scaleY(1) } 25% { transform: translateY(-2px) scaleY(1.02) } 50% { transform: translateY(2px) scaleY(.98) } 75% { transform: translateY(-1px) scaleY(1.01) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes bs-bubble { 0% { transform: translate(0, 0) scale:1; opacity:.6 } 50% { transform: translate(5px, -15px) scale:1.3; opacity:.8 } 100% { transform: translate(-5px, -30px) scale:1.6; opacity:0 } }
@keyframes bs-therm { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) scaleX(1.1) } 100% { transform: translateY(0) } }
@keyframes bs-figure { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(3px) rotate(2deg) } 50% { transform: translateX(6px) rotate(-1deg) } 75% { transform: translateX(3px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes bs-steam { 0% { transform: translateY(0) scaleX(1); opacity:.4 } 50% { transform: translateY(-10px) scaleX(1.3); opacity:.2 } 100% { transform: translateY(-20px) scaleX(1.6); opacity:0 } }

/* marine-biology-insights - overcast warm underwater */
.scn-marine-biology-insights {
  background: linear-gradient(180deg, #3a5a4a 0%, #2a4a3a 50%, #1a3a2a 100%),
              radial-gradient(ellipse at 40% 20%, #5a7a6a 0%, transparent 60%);
}
.scn-marine-biology-insights .water-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, rgba(80,120,100,0.3) 0%, transparent 100%);
  animation: mb-water 20s ease-in-out infinite alternate;
}
.scn-marine-biology-insights .coral-cluster {
  position: absolute; bottom: 10%; left: 15%; width: 80px; height: 70px;
  background: radial-gradient(ellipse at 30% 20%, #c8705a 0%, #a0483a 70%, #702a1a 100%);
  border-radius: 40% 60% 50% 50% / 30% 40% 60% 70%;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.4);
  animation: mb-coral 12s ease-in-out infinite;
}
.scn-marine-biology-insights .fish-swarm {
  position: absolute; top: 30%; left: 50%; width: 120px; height: 60px;
  background: radial-gradient(circle at 30% 50%, #d8a870 0%, transparent 50%),
              radial-gradient(circle at 70% 40%, #c09060 5%, transparent 40%);
  border-radius: 50%;
  filter: blur(1px);
  animation: mb-swarm 15s ease-in-out infinite alternate;
}
.scn-marine-biology-insights .shell-a {
  position: absolute; bottom: 20%; right: 25%; width: 30px; height: 20px;
  background: radial-gradient(ellipse, #d4b080 0%, #a08050 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-20deg);
  animation: mb-shell 8s ease-in-out infinite;
}
.scn-marine-biology-insights .shell-b {
  position: absolute; bottom: 15%; right: 35%; width: 25px; height: 15px;
  background: radial-gradient(ellipse, #c09860 0%, #907040 100%);
  border-radius: 40% 40% 50% 50%;
  transform: rotate(40deg);
  animation: mb-shell 8s ease-in-out 2s infinite;
}
.scn-marine-biology-insights .jellyfish {
  position: absolute; top: 20%; left: 10%; width: 40px; height: 50px;
  background: radial-gradient(circle at 50% 30%, #a0c8b0 0%, transparent 70%);
  border-radius: 50% 50% 40% 40% / 40% 40% 60% 60%;
  box-shadow: 0 0 20px 5px rgba(160,200,176,0.3);
  animation: mb-jelly 6s ease-in-out infinite alternate;
}
.scn-marine-biology-insights .bubble-spark {
  position: absolute; top: 40%; left: 35%; width: 6px; height: 6px;
  background: rgba(255,255,220,0.6); border-radius: 50%;
  box-shadow: 0 0 8px 2px rgba(255,255,200,0.4);
  animation: mb-bubbles 4s ease-out infinite;
}
.scn-marine-biology-insights .ray-light {
  position: absolute; top: 0; left: 30%; width: 100px; height: 80%;
  background: linear-gradient(180deg, rgba(200,220,180,0.15) 0%, transparent 100%);
  filter: blur(8px);
  animation: mb-ray 10s ease-in-out infinite alternate;
}
@keyframes mb-water { 0% { opacity: 0.6; } 50% { opacity: 0.9; } 100% { opacity: 0.7; } }
@keyframes mb-coral { 0% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.02) rotate(2deg); } 100% { transform: scale(0.98) rotate(-1deg); } }
@keyframes mb-swarm { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-20px) rotate(5deg); } 100% { transform: translateX(10px) rotate(-3deg); } }
@keyframes mb-shell { 0% { transform: rotate(-20deg) translateY(0); } 50% { transform: rotate(-15deg) translateY(-3px); } 100% { transform: rotate(-20deg) translateY(0); } }
@keyframes mb-jelly { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-8px) scale(1.05); } 100% { transform: translateY(0) scale(0.95); } }
@keyframes mb-bubbles { 0% { transform: translate(0,0) scale(1); opacity: 1; } 50% { transform: translate(5px,-15px) scale(1.2); opacity: 0.7; } 100% { transform: translate(10px,-30px) scale(0.8); opacity: 0; } }
@keyframes mb-ray { 0% { opacity: 0.3; transform: skewX(0); } 50% { opacity: 0.6; transform: skewX(3deg); } 100% { opacity: 0.4; transform: skewX(-2deg); } }

/* scientific-accuracy - overcast calm seascape with diagrammatic elements */
.scn-scientific-accuracy {
  background: linear-gradient(180deg, #5a6a7a 0%, #3a4a5a 50%, #2a3a4a 100%),
              radial-gradient(ellipse at 50% 80%, #4a5a6a 0%, transparent 60%);
}
.scn-scientific-accuracy .ocean-surface {
  position: absolute; top: 0; left: 0; right: 0; height: 70%;
  background: linear-gradient(180deg, #6a8a9a 0%, transparent 100%);
  animation: sa-surface 15s ease-in-out infinite alternate;
}
.scn-scientific-accuracy .whale-silhouette {
  position: absolute; bottom: 30%; left: 20%; width: 80px; height: 40px;
  background: radial-gradient(ellipse at 60% 50%, #2a3a4a 0%, #1a2a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: scale(0.9);
  animation: sa-whale 20s ease-in-out infinite alternate;
}
.scn-scientific-accuracy .squid-tentacle {
  position: absolute; bottom: 20%; right: 15%; width: 60px; height: 8px;
  background: linear-gradient(90deg, #3a4a5a 0%, #2a3a4a 100%);
  border-radius: 40% 40% 0 0;
  transform: rotate(30deg);
  animation: sa-tentacle 8s ease-in-out infinite alternate;
}
.scn-scientific-accuracy .shark-figure {
  position: absolute; bottom: 25%; left: 55%; width: 50px; height: 20px;
  background: #2a3a4a;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-10deg);
  animation: sa-shark 12s ease-in-out infinite;
}
.scn-scientific-accuracy .grid-lines {
  position: absolute; inset: 0;
  background: repeating-linear-gradient(0deg, rgba(255,255,255,0.05) 0px, rgba(255,255,255,0.05) 1px, transparent 1px, transparent 30px),
              repeating-linear-gradient(90deg, rgba(255,255,255,0.05) 0px, rgba(255,255,255,0.05) 1px, transparent 1px, transparent 30px);
  animation: sa-grid 30s linear infinite;
}
.scn-scientific-accuracy .compass-rose {
  position: absolute; top: 10%; left: 10%; width: 40px; height: 40px;
  background: radial-gradient(circle, #8a9aba 0%, transparent 70%);
  border-radius: 50%;
  border: 1px solid rgba(255,255,255,0.15);
  animation: sa-compass 25s ease-in-out infinite alternate;
}
.scn-scientific-accuracy .wave-ripple {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: repeating-linear-gradient(0deg, rgba(255,255,255,0.03) 0px, transparent 3px, transparent 10px);
  animation: sa-wave 12s ease-in-out infinite alternate;
}
@keyframes sa-surface { 0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.6; } }
@keyframes sa-whale { 0% { transform: translateX(0) scale(0.9); } 50% { transform: translateX(-5px) scale(1); } 100% { transform: translateX(5px) scale(0.85); } }
@keyframes sa-tentacle { 0% { transform: rotate(30deg) translateY(0); } 50% { transform: rotate(35deg) translateY(-2px); } 100% { transform: rotate(25deg) translateY(0); } }
@keyframes sa-shark { 0% { transform: rotate(-10deg) translateX(0); } 50% { transform: rotate(-5deg) translateX(8px); } 100% { transform: rotate(-10deg) translateX(0); } }
@keyframes sa-grid { 0% { background-position: 0 0; } 100% { background-position: 30px 30px; } }
@keyframes sa-compass { 0% { transform: rotate(0deg); } 50% { transform: rotate(180deg); } 100% { transform: rotate(360deg); } }
@keyframes sa-wave { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }

/* shark-encounter-aftermath - tense dark underwater with lurking danger */
.scn-shark-encounter-aftermath {
  background: linear-gradient(180deg, #0a1420 0%, #0a1a2a 40%, #0a1018 100%),
              radial-gradient(ellipse at 60% 30%, #1a2a3a 0%, transparent 60%);
}
.scn-shark-encounter-aftermath .deep-back {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 60%, #0a1520 0%, transparent 80%);
  animation: sh-deep 15s ease-in-out infinite alternate;
}
.scn-shark-encounter-aftermath .rocks-left {
  position: absolute; bottom: 0; left: 0; width: 40%; height: 50%;
  background: linear-gradient(135deg, #1a2a30 0%, #0a151a 100%);
  border-radius: 0 60% 0 0;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.7);
  animation: sh-rocks 20s ease-in-out infinite;
}
.scn-shark-encounter-aftermath .rocks-right {
  position: absolute; bottom: 0; right: 0; width: 35%; height: 40%;
  background: linear-gradient(225deg, #1a2a30 0%, #0a151a 100%);
  border-radius: 60% 0 0 0;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.7);
  animation: sh-rocks 20s ease-in-out 5s infinite;
}
.scn-shark-encounter-aftermath .diver-light {
  position: absolute; bottom: 25%; left: 35%; width: 20px; height: 25px;
  background: radial-gradient(circle at 50% 50%, #c0d0d0 0%, #809090 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(128,144,144,0.4), 0 0 60px 20px rgba(128,144,144,0.2);
  animation: sh-light 4s ease-in-out infinite alternate;
}
.scn-shark-encounter-aftermath .shark-shadow {
  position: absolute; bottom: 30%; right: 10%; width: 70px; height: 30px;
  background: radial-gradient(ellipse at 60% 50%, #0a1a2a 0%, transparent 70%);
  border-radius: 50%;
  transform: rotate(-15deg);
  animation: sh-shark 8s ease-in-out infinite alternate;
}
.scn-shark-encounter-aftermath .kelp-weed {
  position: absolute; bottom: 0; left: 20%; width: 8px; height: 70px;
  background: linear-gradient(180deg, #2a4a3a 0%, #1a3a2a 50%, #0a1a1a 100%);
  border-radius: 20%;
  transform-origin: bottom center;
  animation: sh-kelp 6s ease-in-out infinite alternate;
}
.scn-shark-encounter-aftermath .bubble-trail {
  position: absolute; bottom: 20%; left: 32%; width: 4px; height: 4px;
  background: rgba(200,210,210,0.3); border-radius: 50%;
  box-shadow: 0 -10px 0 1px rgba(200,210,210,0.2), 0 -20px 0 2px rgba(200,210,210,0.15);
  animation: sh-bubbles 5s ease-out infinite;
}
.scn-shark-encounter-aftermath .murk-haze {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 50%, transparent 40%, rgba(0,5,10,0.4) 100%);
  animation: sh-haze 10s ease-in-out infinite alternate;
}
@keyframes sh-deep { 0% { opacity: 0.5; } 50% { opacity: 0.8; } 100% { opacity: 0.6; } }
@keyframes sh-rocks { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes sh-light { 0% { opacity: 0.7; transform: scale(1); } 50% { opacity: 1; transform: scale(1.05); } 100% { opacity: 0.8; transform: scale(0.95); } }
@keyframes sh-shark { 0% { transform: rotate(-15deg) translateX(0); opacity: 0.4; } 50% { transform: rotate(-10deg) translateX(-10px); opacity: 0.7; } 100% { transform: rotate(-15deg) translateX(0); opacity: 0.5; } }
@keyframes sh-kelp { 0% { transform: rotate(0deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-5deg); } }
@keyframes sh-bubbles { 0% { transform: translate(0,0); opacity: 1; } 50% { transform: translate(2px,-15px); opacity: 0.6; } 100% { transform: translate(4px,-30px); opacity: 0; } }
@keyframes sh-haze { 0% { opacity: 0.3; } 50% { opacity: 0.5; } 100% { opacity: 0.4; } }

/* steep-slope-descent - tense dark narrow trench descent */
.scn-steep-slope-descent {
  background: linear-gradient(180deg, #06101a 0%, #0a1520 40%, #03080c 100%),
              radial-gradient(ellipse at 50% 40%, #1a2a3a 0%, transparent 60%);
}
.scn-steep-slope-descent .trench-wall-left {
  position: absolute; top: 0; left: 0; width: 20%; height: 100%;
  background: linear-gradient(90deg, #0a1520 0%, #0f2028 50%, transparent 100%);
  box-shadow: inset -5px 0 20px rgba(0,0,0,0.6);
  animation: sd-wall-left 15s ease-in-out infinite alternate;
}
.scn-steep-slope-descent .trench-wall-right {
  position: absolute; top: 0; right: 0; width: 20%; height: 100%;
  background: linear-gradient(90deg, transparent 0%, #0f2028 50%, #0a1520 100%);
  box-shadow: inset 5px 0 20px rgba(0,0,0,0.6);
  animation: sd-wall-right 15s ease-in-out infinite alternate;
}
.scn-steep-slope-descent .trench-floor {
  position: absolute; bottom: 0; left: 20%; right: 20%; height: 30%;
  background: linear-gradient(180deg, #0a151a 0%, #040a0e 100%);
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.7);
  animation: sd-floor 20s ease-in-out infinite;
}
.scn-steep-slope-descent .diver-falling {
  position: absolute; top: 40%; left: 42%; width: 16px; height: 24px;
  background: radial-gradient(ellipse at 50% 40%, #5a6a7a 0%, #2a3a4a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: top center;
  animation: sd-diver 6s ease-in-out infinite alternate;
}
.scn-steep-slope-descent .submersible {
  position: absolute; top: 55%; left: 30%; width: 30px; height: 16px;
  background: radial-gradient(ellipse, #4a5a6a 0%, #1a2a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 2px 8px rgba(0,0,0,0.5);
  animation: sd-sub 12s ease-in-out infinite alternate;
}
.scn-steep-slope-descent .light-shaft {
  position: absolute; top: 0; left: 35%; width: 30%; height: 60%;
  background: linear-gradient(180deg, rgba(200,220,240,0.08) 0%, transparent 100%);
  filter: blur(10px);
  animation: sd-shaft 8s ease-in-out infinite alternate;
}
.scn-steep-slope-descent .sediment-cloud {
  position: absolute; top: 60%; left: 25%; width: 50px; height: 30px;
  background: radial-gradient(circle, #1a2a30 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(4px);
  animation: sd-sediment 25s linear infinite;
}
.scn-steep-slope-descent .distant-ledges {
  position: absolute; top: 30%; left: 10%; width: 80%; height: 30%;
  background: repeating-linear-gradient(0deg, #0a1520 0px, transparent 1px, transparent 15px);
  opacity: 0.3;
  animation: sd-ledges 30s ease-in-out infinite alternate;
}
.scn-steep-slope-descent .pressure-bubbles {
  position: absolute; bottom: 10%; left: 40%; width: 3px; height: 3px;
  background: rgba(200,210,220,0.2); border-radius: 50%;
  box-shadow: 0 -8px 0 1px rgba(200,210,220,0.15), 0 -16px 0 2px rgba(200,210,220,0.1);
  animation: sd-bubbles 4s ease-out infinite;
}
@keyframes sd-wall-left { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.02); } 100% { transform: scaleX(0.98); } }
@keyframes sd-wall-right { 0% { transform: scaleX(1); } 50% { transform: scaleX(0.98); } 100% { transform: scaleX(1.02); } }
@keyframes sd-floor { 0% { transform: translateY(0); } 50% { transform: translateY(2px); } 100% { transform: translateY(-2px); } }
@keyframes sd-diver { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(10px) rotate(3deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes sd-sub { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-5px) rotate(2deg); } 100% { transform: translateX(5px) rotate(-2deg); } }
@keyframes sd-shaft { 0% { opacity: 0.2; } 50% { opacity: 0.5; } 100% { opacity: 0.3; } }
@keyframes sd-sediment { 0% { transform: translateX(0) scale(1); opacity: 0.2; } 50% { transform: translateX(-10px) scale(1.2); opacity: 0.4; } 100% { transform: translateX(0) scale(1); opacity: 0.2; } }
@keyframes sd-ledges { 0% { background-position: 0 0; } 50% { background-position: 0 5px; } 100% { background-position: 0 -5px; } }
@keyframes sd-bubbles { 0% { transform: translate(0,0); opacity: 1; } 50% { transform: translate(1px,-12px); opacity: 0.5; } 100% { transform: translate(2px,-24px); opacity: 0; } }

.scn-awake-in-stateroom { background: linear-gradient(180deg, #f5e6d3 0%, #d4b896 40%, #b89a7a 100%), radial-gradient(ellipse at 50% 70%, #ffe0c0 0%, transparent 60%); }
.scn-awake-in-stateroom .wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #e8d4b8 0%, #d0b89a 100%); box-shadow: inset 0 12px 24px rgba(0,0,0,.15); }
.scn-awake-in-stateroom .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #a08060 0%, #7a5c3e 100%); border-radius: 20% 20% 0 0 / 30% 30% 0 0; }
.scn-awake-in-stateroom .bed { position:absolute; bottom:22%; left:15%; width:45%; height:18%; background: linear-gradient(180deg, #f0eee0 0%, #d8d0b8 100%); border-radius: 6% 6% 20% 20% / 10% 10% 30% 30%; box-shadow: 0 6px 18px rgba(0,0,0,.3); animation: ws-bed 10s ease-in-out infinite; }
.scn-awake-in-stateroom .porthole { position:absolute; top:12%; right:18%; width:60px; height:60px; background: radial-gradient(circle at 35% 35%, #ffe8b0 0%, #c0a060 70%); border-radius: 50%; border: 6px solid #8a6a3a; box-shadow: 0 0 30px 8px rgba(255,232,176,.4); animation: ws-porthole 6s ease-in-out infinite alternate; }
.scn-awake-in-stateroom .desk { position:absolute; bottom:20%; right:12%; width:28%; height:12%; background: linear-gradient(180deg, #b08050 0%, #8a6030 100%); border-radius: 4% 4% 0 0; box-shadow: 0 4px 8px rgba(0,0,0,.4); }
.scn-awake-in-stateroom .lamp { position:absolute; bottom:26%; right:22%; width:14px; height:20px; background: linear-gradient(180deg, #d4a050 0%, #b08030 100%); border-radius: 40% 40% 10% 10% / 50% 50% 20% 20%; box-shadow: 0 0 20px 6px #e0b060; animation: ws-lamp 4s ease-in-out infinite; }
.scn-awake-in-stateroom .rug { position:absolute; bottom:10%; left:20%; width:60%; height:8%; background: linear-gradient(180deg, #6a4a2a 0%, #4a2a0a 100%); border-radius: 50%; opacity:.6; animation: ws-rug 15s ease-in-out infinite alternate; }
@keyframes ws-bed { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(0.5deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes ws-porthole { 0% { box-shadow: 0 0 20px 4px rgba(255,232,176,.3); opacity:.85; } 50% { box-shadow: 0 0 40px 12px rgba(255,232,176,.6); opacity:1; } 100% { box-shadow: 0 0 25px 6px rgba(255,232,176,.35); opacity:.9; } }
@keyframes ws-lamp { 0% { box-shadow: 0 0 12px 3px #e0b060; } 50% { box-shadow: 0 0 28px 8px #ffd080; } 100% { box-shadow: 0 0 15px 4px #e0b060; } }
@keyframes ws-rug { 0% { transform: scaleX(1) scaleY(1); opacity:.5; } 50% { transform: scaleX(1.02) scaleY(1.01); opacity:.65; } 100% { transform: scaleX(1) scaleY(1); opacity:.55; } }

.scn-companions-ignorant { background: linear-gradient(180deg, #e8dfd0 0%, #c0b8a0 50%, #a09880 100%), radial-gradient(ellipse at 40% 20%, #fff5e0 0%, transparent 60%); }
.scn-companions-ignorant .cabin-wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #d6ceb8 0%, #b8b0a0 100%); box-shadow: inset 0 8px 20px rgba(0,0,0,.12); }
.scn-companions-ignorant .cabin-floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #8a7a62 0%, #6a5a42 100%); border-radius: 15% 15% 0 0 / 25% 25% 0 0; }
.scn-companions-ignorant .figure-left { position:absolute; bottom:25%; left:20%; width:24px; height:50px; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ci-figure-l 5s ease-in-out infinite; }
.scn-companions-ignorant .figure-right { position:absolute; bottom:25%; right:20%; width:22px; height:48px; background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ci-figure-r 5.5s ease-in-out infinite; }
.scn-companions-ignorant .porthole-light { position:absolute; top:15%; left:10%; width:50px; height:50px; background: radial-gradient(circle at 40% 35%, #fff8e0 0%, #d4c080 70%); border-radius: 50%; border: 5px solid #8a7050; box-shadow: 0 0 25px 6px rgba(255,248,224,.5); animation: ci-porthole 8s ease-in-out infinite alternate; }
.scn-companions-ignorant .light-ray { position:absolute; top:22%; left:12%; width:60%; height:4px; background: linear-gradient(90deg, rgba(255,248,224,.7) 0%, transparent 100%); transform-origin: left center; transform: rotate(25deg); filter: blur(2px); animation: ci-ray 12s ease-in-out infinite alternate; }
@keyframes ci-figure-l { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes ci-figure-r { 0% { transform: translateY(0) rotate(1deg); } 50% { transform: translateY(-2px) rotate(-1deg); } 100% { transform: translateY(0) rotate(1deg); } }
@keyframes ci-porthole { 0% { box-shadow: 0 0 15px 3px rgba(255,248,224,.3); opacity:.8; } 50% { box-shadow: 0 0 35px 10px rgba(255,248,224,.6); opacity:1; } 100% { box-shadow: 0 0 20px 5px rgba(255,248,224,.35); opacity:.85; } }
@keyframes ci-ray { 0% { opacity:.4; transform: rotate(20deg) scaleX(0.9); } 50% { opacity:.8; transform: rotate(30deg) scaleX(1.1); } 100% { opacity:.5; transform: rotate(25deg) scaleX(1); } }

.scn-air-renewal-maneuvers { background: linear-gradient(180deg, #0a2a4a 0%, #1a4a6a 40%, #2a6a8a 100%), radial-gradient(ellipse at 50% 30%, #3a8aaa 0%, transparent 70%); }
.scn-air-renewal-maneuvers .ocean-deep { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #0a2a4a 0%, #0a3a5a 100%); animation: am-ocean-deep 20s ease-in-out infinite alternate; }
.scn-air-renewal-maneuvers .ocean-mid { position:absolute; bottom:20%; left:0; right:0; height:60%; background: linear-gradient(180deg, #1a5a7a 0%, #2a7a9a 100%); border-radius: 40% 60% 0 0 / 30% 50% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,.5); animation: am-ocean-mid 15s ease-in-out infinite alternate; }
.scn-air-renewal-maneuvers .submarine { position:absolute; bottom:30%; left:50%; width:120px; height:40px; transform: translateX(-50%); background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%); border-radius: 30% 30% 40% 40% / 50% 50% 40% 40%; box-shadow: 0 8px 20px rgba(0,0,0,.6); animation: am-sub 12s ease-in-out infinite; }
.scn-air-renewal-maneuvers .ray { position:absolute; top:0; left:0; width:100%; height:100%; background: radial-gradient(ellipse at 10% 20%, rgba(230,240,255,.15) 0%, transparent 50%); animation: am-ray 8s ease-in-out infinite; }
.scn-air-renewal-maneuvers .ray-1 { left:-20%; animation-duration:9s; animation-delay:-3s; }
.scn-air-renewal-maneuvers .ray-2 { left:40%; animation-duration:11s; animation-delay:-5s; background: radial-gradient(ellipse at 50% 0%, rgba(200,230,255,.1) 0%, transparent 60%); }
.scn-air-renewal-maneuvers .bubble { position:absolute; bottom:0; width:8px; height:8px; background: radial-gradient(circle at 30% 30%, rgba(255,255,255,.6) 0%, transparent 70%); border-radius:50%; animation: am-bubble 6s linear infinite; }
.scn-air-renewal-maneuvers .bubble-1 { left:20%; animation-duration:5s; animation-delay:-1s; }
.scn-air-renewal-maneuvers .bubble-2 { left:50%; animation-duration:7s; animation-delay:-3s; width:6px; height:6px; }
.scn-air-renewal-maneuvers .bubble-3 { left:70%; animation-duration:6s; animation-delay:-4s; width:10px; height:10px; }
@keyframes am-ocean-deep { 0% { opacity:.7; } 50% { opacity:.9; } 100% { opacity:.75; } }
@keyframes am-ocean-mid { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-5px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes am-sub { 0% { transform: translateX(-50%) translateY(0) rotate(0deg); } 50% { transform: translateX(-50%) translateY(-8px) rotate(1deg); } 100% { transform: translateX(-50%) translateY(0) rotate(0deg); } }
@keyframes am-ray { 0% { opacity:.2; transform: scaleX(0.8) translateY(0); } 50% { opacity:.5; transform: scaleX(1.1) translateY(-10px); } 100% { opacity:.25; transform: scaleX(0.9) translateY(0); } }
@keyframes am-bubble { 0% { transform: translateY(0) scale(1); opacity:0; } 20% { opacity:.8; } 80% { opacity:.6; } 100% { transform: translateY(-80vh) scale(0.5); opacity:0; } }

.scn-nemo-asks-are-you-physician { background: linear-gradient(180deg, #3a2a1a 0%, #5a3a2a 40%, #7a5a3a 100%), radial-gradient(ellipse at 60% 40%, #c09060 0%, transparent 60%); }
.scn-nemo-asks-are-you-physician .salon-wall { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #4a3020 0%, #3a2010 100%); box-shadow: inset 0 8px 20px rgba(0,0,0,.5); }
.scn-nemo-asks-are-you-physician .salon-floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 10% 10% 0 0 / 20% 20% 0 0; }
.scn-nemo-asks-are-you-physician .nemo-silhouette { position:absolute; bottom:22%; left:25%; width:28px; height:60px; background: linear-gradient(180deg, #1a2810 0%, #0a1800 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: np-nemo 8s ease-in-out infinite; }
.scn-nemo-asks-are-you-physician .aronnax-silhouette { position:absolute; bottom:22%; right:25%; width:26px; height:58px; background: linear-gradient(180deg, #2a1a10 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: np-aronnax 7s ease-in-out infinite; }
.scn-nemo-asks-are-you-physician .lamp-glow { position:absolute; top:10%; left:45%; width:20px; height:20px; background: radial-gradient(circle at 50% 50%, #ffd080 0%, #e0b060 60%, transparent 80%); border-radius:50%; box-shadow: 0 0 40px 15px #e0b060; animation: np-lamp 5s ease-in-out infinite; }
.scn-nemo-asks-are-you-physician .shadow { position:absolute; bottom:0; left:10%; width:80%; height:20%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.4) 100%); border-radius: 50% 50% 0 0 / 40% 40% 0 0; animation: np-shadow 12s ease-in-out infinite alternate; }
@keyframes np-nemo { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-4px) rotate(2deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes np-aronnax { 0% { transform: translateY(0) rotate(1deg); } 50% { transform: translateY(-3px) rotate(-2deg); } 100% { transform: translateY(0) rotate(1deg); } }
@keyframes np-lamp { 0% { box-shadow: 0 0 30px 10px #e0b060; opacity:.9; } 50% { box-shadow: 0 0 60px 25px #ffd080; opacity:1; } 100% { box-shadow: 0 0 35px 12px #e0b060; opacity:.92; } }
@keyframes np-shadow { 0% { opacity:.3; transform: scaleY(1); } 50% { opacity:.6; transform: scaleY(1.1); } 100% { opacity:.35; transform: scaleY(1); } }

.scn-overloaded-skiff { background: linear-gradient(180deg, #8ec1da 0%, #c3dce8 40%, #fff3cd 100%), radial-gradient(ellipse at 50% 0%, rgba(255, 230, 150, 0.3) 0%, transparent 70%); }
.scn-overloaded-skiff .sky { position: absolute; inset: 0 0 45% 0; background: linear-gradient(180deg, #5b9bd5 0%, #8ec1da 100%); animation: skf-sky 15s ease-in-out infinite alternate; }
.scn-overloaded-skiff .sun { position: absolute; top: 12%; left: 80%; width: 50px; height: 50px; background: radial-gradient(circle, #ffe87c 0%, #ffd966 60%, rgba(255, 215, 0, 0.2) 100%); border-radius: 50%; box-shadow: 0 0 60px 20px rgba(255, 215, 0, 0.4); animation: skf-sun 8s ease-in-out infinite alternate; }
.scn-overloaded-skiff .water { position: absolute; bottom: 0; left: 0; right: 0; height: 45%; background: linear-gradient(180deg, #4a8cab 0%, #2c6e8a 100%); animation: skf-water 6s ease-in-out infinite alternate; }
.scn-overloaded-skiff .distant-trees { position: absolute; bottom: 42%; left: 5%; right: 5%; height: 15%; background: linear-gradient(180deg, #4a5d4a 0%, #3a4a3a 100%); border-radius: 40% 60% 0 0 / 70% 80% 0 0; opacity: 0.6; }
.scn-overloaded-skiff .skiff-hull { position: absolute; bottom: 15%; left: 20%; width: 60%; height: 80px; background: linear-gradient(180deg, #6b4226 0%, #4a2e1a 100%); border-radius: 0 0 50% 50% / 0 0 40% 40%; box-shadow: 0 -4px 10px rgba(0,0,0,0.3); animation: skf-bob 5s ease-in-out infinite; }
.scn-overloaded-skiff .cargo-a { position: absolute; bottom: 30%; left: 30%; width: 60px; height: 40px; background: linear-gradient(180deg, #a0764a 0%, #7a5a3a 100%); border-radius: 10%; transform: rotate(-5deg); animation: skf-cargo 7s ease-in-out infinite; }
.scn-overloaded-skiff .cargo-b { position: absolute; bottom: 28%; left: 50%; width: 70px; height: 50px; background: linear-gradient(180deg, #8a6a4a 0%, #5a3e2a 100%); border-radius: 8%; transform: rotate(3deg); animation: skf-cargo 9s ease-in-out infinite reverse; }
.scn-overloaded-skiff .figure { position: absolute; bottom: 20%; left: 60%; width: 20px; height: 50px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: skf-figure 4s ease-in-out infinite; }

@keyframes skf-sky { 0% { opacity: 0.85 } 50% { opacity: 1 } 100% { opacity: 0.9 } }
@keyframes skf-sun { 0% { transform: scale(0.95); box-shadow: 0 0 40px 15px rgba(255, 215, 0, 0.3); } 50% { transform: scale(1.05); box-shadow: 0 0 70px 25px rgba(255, 215, 0, 0.6); } 100% { transform: scale(0.98); box-shadow: 0 0 50px 10px rgba(255, 215, 0, 0.4); } }
@keyframes skf-water { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(1px); } }
@keyframes skf-bob { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
@keyframes skf-cargo { 0%, 100% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-5deg) translateY(-2px); } }
@keyframes skf-figure { 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); } }

.scn-sago-palms { background: linear-gradient(180deg, #7db3d1 0%, #a8cfdf 40%, #f0e6c0 100%), radial-gradient(ellipse at 50% 50%, rgba(255, 245, 180, 0.2) 0%, transparent 70%); }
.scn-sago-palms .sky-bg { position: absolute; inset: 0 0 30% 0; background: linear-gradient(180deg, #4a8fc7 0%, #8dc1da 100%); animation: sap-sky 20s ease-in-out infinite alternate; }
.scn-sago-palms .sun-beam { position: absolute; top: 8%; left: 20%; width: 100px; height: 300px; background: linear-gradient(180deg, rgba(255, 230, 150, 0.4) 0%, rgba(255, 230, 150, 0) 100%); transform: skewX(-15deg); opacity: 0.5; animation: sap-beam 12s ease-in-out infinite; }
.scn-sago-palms .trunk-a { position: absolute; bottom: 10%; left: 20%; width: 18px; height: 70%; background: linear-gradient(180deg, #5a3a1a 0%, #3a2a0a 100%); border-radius: 20% 20% 0 0; box-shadow: 2px 0 8px rgba(0,0,0,0.2); animation: sap-trunk 6s ease-in-out infinite; }
.scn-sago-palms .trunk-b { position: absolute; bottom: 10%; left: 40%; width: 14px; height: 60%; background: linear-gradient(180deg, #5a3a1a 0%, #3a2a0a 100%); border-radius: 20% 20% 0 0; box-shadow: 2px 0 8px rgba(0,0,0,0.2); animation: sap-trunk 8s ease-in-out infinite reverse; }
.scn-sago-palms .trunk-c { position: absolute; bottom: 10%; left: 60%; width: 16px; height: 65%; background: linear-gradient(180deg, #4a2e12 0%, #2e1e0a 100%); border-radius: 20% 20% 0 0; box-shadow: 2px 0 8px rgba(0,0,0,0.2); animation: sap-trunk 7s ease-in-out infinite 1s; }
.scn-sago-palms .foliage-a { position: absolute; bottom: 75%; left: 15%; width: 120px; height: 60px; background: radial-gradient(ellipse at 50% 100%, #2a5a2a 0%, #1a3a1a 100%); border-radius: 50% 50% 0 0; filter: blur(2px); animation: sap-sway 10s ease-in-out infinite; }
.scn-sago-palms .foliage-b { position: absolute; bottom: 70%; left: 50%; width: 100px; height: 50px; background: radial-gradient(ellipse at 50% 100%, #3a6a3a 0%, #1a3a1a 100%); border-radius: 50% 50% 0 0; filter: blur(2px); animation: sap-sway 12s ease-in-out infinite reverse; }
.scn-sago-palms .figure-palm { position: absolute; bottom: 8%; left: 48%; 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; animation: sap-fig 5s ease-in-out infinite; }

@keyframes sap-sky { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.9 } }
@keyframes sap-beam { 0% { transform: skewX(-15deg) translateX(0); opacity: 0.4; } 50% { transform: skewX(-15deg) translateX(20px); opacity: 0.7; } 100% { transform: skewX(-15deg) translateX(-10px); opacity: 0.5; } }
@keyframes sap-trunk { 0%, 100% { transform: rotate(0deg); } 50% { transform: rotate(0.5deg); } }
@keyframes sap-sway { 0% { transform: rotate(-1deg); } 50% { transform: rotate(1deg); } 100% { transform: rotate(-1deg); } }
@keyframes sap-fig { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0); } }

.scn-sago-preparation { background: linear-gradient(180deg, #8b6f4c 0%, #a8896a 30%, #c4a57a 100%), radial-gradient(circle at 50% 80%, rgba(200, 170, 120, 0.3) 0%, transparent 80%); }
.scn-sago-preparation .table-bg { position: absolute; bottom: 0; left: 0; right: 0; height: 50%; background: linear-gradient(180deg, #5a3a1a 0%, #3a2a0a 100%); border-radius: 30% 30% 0 0 / 20% 20% 0 0; }
.scn-sago-preparation .trunk-slice { position: absolute; bottom: 20%; left: 50%; width: 160px; height: 60px; transform: translateX(-50%); background: radial-gradient(ellipse at 50% 50%, #c4a055 0%, #8a6a30 100%); border-radius: 50%; box-shadow: 0 4px 15px rgba(0,0,0,0.4); animation: spr-slice 6s ease-in-out infinite; }
.scn-sago-preparation .bark-strip { position: absolute; bottom: 35%; left: 30%; width: 80px; height: 10px; background: linear-gradient(90deg, #4a2e1a 0%, #6a4a2a 100%); border-radius: 20%; transform: rotate(-20deg); transform-origin: left center; animation: spr-peel 5s ease-in-out infinite; }
.scn-sago-preparation .fibers { position: absolute; bottom: 25%; left: 45%; width: 100px; height: 30px; background: repeating-linear-gradient(90deg, #c4a055 0px, #c4a055 4px, #e0c080 4px, #e0c080 8px); border-radius: 20%; filter: blur(1px); opacity: 0.8; animation: spr-fibers 4s ease-in-out infinite; }
.scn-sago-preparation .flour-pile { position: absolute; bottom: 15%; left: 55%; width: 60px; height: 30px; background: radial-gradient(ellipse at 50% 50%, #f0e0b0 0%, #d4c090 100%); border-radius: 50%; box-shadow: 0 2px 10px rgba(0,0,0,0.2); animation: spr-flour 8s ease-in-out infinite; }
.scn-sago-preparation .hand { position: absolute; bottom: 28%; left: 22%; width: 25px; height: 40px; background: linear-gradient(180deg, #c89b7a 0%, #b07d5a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform: rotate(15deg); transform-origin: bottom right; animation: spr-hand 5s ease-in-out infinite; }
.scn-sago-preparation .tool { position: absolute; bottom: 30%; left: 15%; width: 8px; height: 70px; background: linear-gradient(180deg, #7a5a3a 0%, #4a2e1a 100%); border-radius: 20%; transform: rotate(-15deg); transform-origin: bottom; animation: spr-tool 5s ease-in-out infinite; }
.scn-sago-preparation .debris { position: absolute; bottom: 20%; left: 35%; width: 30px; height: 30px; background: radial-gradient(circle, #a08050 0%, transparent 100%); border-radius: 50%; filter: blur(3px); animation: spr-debris 7s ease-in-out infinite; }

@keyframes spr-slice { 0%, 100% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.02); } }
@keyframes spr-peel { 0% { transform: rotate(-20deg) translateX(0); } 50% { transform: rotate(-25deg) translateX(10px); } 100% { transform: rotate(-20deg) translateX(0); } }
@keyframes spr-fibers { 0% { opacity: 0.6; } 50% { opacity: 0.9; } 100% { opacity: 0.7; } }
@keyframes spr-flour { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.1); } 100% { transform: scaleY(1); } }
@keyframes spr-hand { 0% { transform: rotate(15deg) translateY(0); } 50% { transform: rotate(20deg) translateY(-3px); } 100% { transform: rotate(15deg) translateY(0); } }
@keyframes spr-tool { 0% { transform: rotate(-15deg) translateY(0); } 50% { transform: rotate(-10deg) translateY(-4px); } 100% { transform: rotate(-15deg) translateY(0); } }
@keyframes spr-debris { 0% { transform: translate(0,0) scale(10); } 50% { transform: translate(5px, -5px) scale(1.3); opacity: 0.5; } 100% { transform: translate(0,0) scale(1); opacity: 0.8; } }

.scn-ned-chopping { background: linear-gradient(180deg, #9ac1d4 0%, #c3dce8 50%, #f5e8c0 100%), radial-gradient(ellipse at 50% 100%, rgba(255, 230, 150, 0.2) 0%, transparent 60%); }
.scn-ned-chopping .sky-chopping { position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #5b9bd5 0%, #9ac1d4 100%); animation: nch-sky 16s ease-in-out infinite alternate; }
.scn-ned-chopping .ground { position: absolute; bottom: 0; left: 0; right: 0; height: 40%; background: linear-gradient(180deg, #6a8a5a 0%, #3a5a2a 100%); border-radius: 20% 20% 0 0 / 40% 40% 0 0; }
.scn-ned-chopping .trunk-pile { position: absolute; bottom: 10%; left: 10%; width: 200px; height: 80px; background: repeating-linear-gradient(90deg, #4a2e1a 0px, #4a2e1a 15px, #5a3a1a 15px, #5a3a1a 30px); border-radius: 10px; box-shadow: 0 4px 12px rgba(0,0,0,0.3); animation: nch-pile 5s ease-in-out infinite; }
.scn-ned-chopping .ned-silhouette { position: absolute; bottom: 20%; left: 40%; width: 22px; height: 60px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: nch-fig 3s ease-in-out infinite; }
.scn-ned-chopping .axe { position: absolute; bottom: 35%; left: 38%; width: 10px; height: 50px; background: linear-gradient(180deg, #5a3a1a 0%, #3a2a0a 100%); border-radius: 2px; transform-origin: bottom center; animation: nch-axe 0.8s ease-in-out infinite; }
.scn-ned-chopping .chip-a { position: absolute; bottom: 25%; left: 50%; width: 8px; height: 8px; background: #b08040; border-radius: 50%; animation: nch-chip 1.2s ease-in-out infinite; }
.scn-ned-chopping .chip-b { position: absolute; bottom: 28%; left: 45%; width: 6px; height: 6px; background: #c09050; border-radius: 50%; animation: nch-chip 1.5s ease-in-out infinite 0.4s; }
.scn-ned-chopping .sun-chopping { position: absolute; top: 5%; left: 70%; width: 40px; height: 40px; background: radial-gradient(circle, #ffe87c 0%, #ffd966 60%, rgba(255, 215, 0, 0.2) 100%); border-radius: 50%; box-shadow: 0 0 50px 15px rgba(255, 215, 0, 0.5); animation: nch-sun 10s ease-in-out infinite alternate; }

@keyframes nch-sky { 0% { opacity: 0.85 } 50% { opacity: 1 } 100% { opacity: 0.9 } }
@keyframes nch-pile { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes nch-fig { 0% { transform: rotate(-10deg) translateY(0); } 25% { transform: rotate(5deg) translateY(-2px); } 50% { transform: rotate(-5deg) translateY(0); } 75% { transform: rotate(10deg) translateY(-1px); } 100% { transform: rotate(-10deg) translateY(0); } }
@keyframes nch-axe { 0% { transform: rotate(-30deg); } 50% { transform: rotate(30deg); } 100% { transform: rotate(-30deg); } }
@keyframes nch-chip { 0% { transform: translate(0,0) scale(1); opacity: 1; } 50% { transform: translate(20px, -20px) scale(0.8); opacity: 0.6; } 100% { transform: translate(40px, -40px) scale(0.5); opacity: 0; } }
@keyframes nch-sun { 0% { transform: scale(0.95); box-shadow: 0 0 40px 10px rgba(255, 215, 0, 0.3); } 50% { transform: scale(1.05); box-shadow: 0 0 60px 20px rgba(255, 215, 0, 0.5); } 100% { transform: scale(0.98); box-shadow: 0 0 50px 15px rgba(255, 215, 0, 0.4); } }

/* heading-northwest */
.scn-heading-northwest {
  background: linear-gradient(180deg, #87CEEB 0%, #F0E68C 40%, #FFD700 60%, #B8860B 100%),
    radial-gradient(ellipse at 50% 30%, #FFF8DC 0%, transparent 60%);
  background-blend-mode: overlay;
}
.scn-heading-northwest .sky-hnw {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #4A90D9 0%, #87CEEB 50%, transparent 100%);
  animation: hnw-sky 8s ease-in-out infinite alternate;
}
.scn-heading-northwest .sea-hnw {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #1E90FF 0%, #006994 50%, #003366 100%);
  animation: hnw-sea 6s ease-in-out infinite alternate;
}
.scn-heading-northwest .island-left-hnw {
  position: absolute; bottom: 45%; left: 5%; width: 15%; height: 20%;
  background: linear-gradient(180deg, #2E8B57 0%, #006400 100%);
  border-radius: 30% 70% 30% 70% / 60% 40% 60% 40%;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.5);
  animation: hnw-island 10s ease-in-out infinite alternate;
}
.scn-heading-northwest .island-right-hnw {
  position: absolute; bottom: 45%; right: 10%; width: 20%; height: 15%;
  background: linear-gradient(180deg, #2E8B57 0%, #004d00 100%);
  border-radius: 70% 30% 70% 30% / 40% 60% 40% 60%;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.5);
  animation: hnw-island 12s ease-in-out infinite alternate reverse;
}
.scn-heading-northwest .ship-hnw {
  position: absolute; bottom: 45%; left: 40%; width: 20%; height: 10%;
  background: linear-gradient(180deg, #2F4F4F 0%, #1A1A1A 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 40% 40%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.6);
  animation: hnw-ship 4s ease-in-out infinite;
}
.scn-heading-northwest .sun-hnw {
  position: absolute; top: 5%; left: 60%; width: 8%; height: 12%;
  background: radial-gradient(circle, #FFD700 0%, #FFA500 40%, transparent 80%);
  box-shadow: 0 0 40px 20px #FFD700, 0 0 80px 40px rgba(255,215,0,0.4);
  animation: hnw-sun 5s ease-in-out infinite alternate;
}
.scn-heading-northwest .shadow-hnw {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, transparent 60%, rgba(0,0,0,0.6) 100%);
  animation: hnw-shadow 3s ease-in-out infinite alternate;
}
@keyframes hnw-sky {
  0% { opacity: 0.8; transform: translateX(0); }
  50% { opacity: 1; transform: translateX(2%); }
  100% { opacity: 0.9; transform: translateX(-2%); }
}
@keyframes hnw-sea {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-3%) scaleY(0.95); }
  100% { transform: translateY(0) scaleY(1); }
}
@keyframes hnw-island {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(2%) scale(0.97); }
  100% { transform: translateY(0) scale(1); }
}
@keyframes hnw-ship {
  0% { transform: translateY(0) rotate(-1deg); }
  30% { transform: translateY(-3%) rotate(1deg); }
  60% { transform: translateY(0) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes hnw-sun {
  0% { opacity: 0.8; transform: scale(0.9); }
  50% { opacity: 1; transform: scale(1.1); }
  100% { opacity: 0.9; transform: scale(1); }
}
@keyframes hnw-shadow {
  0% { opacity: 0.3; }
  50% { opacity: 0.6; }
  100% { opacity: 0.4; }
}

/* change-direction */
.scn-change-direction {
  background: linear-gradient(180deg, #B0E0E6 0%, #F0E68C 30%, #FFA500 50%, #8B4513 100%),
    radial-gradient(ellipse at 50% 20%, #FFF8DC 0%, transparent 60%);
  background-blend-mode: overlay;
  filter: contrast(1.1);
}
.scn-change-direction .sky-cd {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #4682B4 0%, #87CEEB 50%, transparent 100%);
  animation: cd-sky 10s ease-in-out infinite alternate;
}
.scn-change-direction .sea-cd {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #1E90FF 0%, #005A8C 50%, #003366 100%);
  animation: cd-sea 7s ease-in-out infinite alternate;
}
.scn-change-direction .rock-left-cd {
  position: absolute; bottom: 35%; left: 0; width: 25%; height: 40%;
  background: linear-gradient(180deg, #696969 0%, #2F4F4F 60%, #1A1A1A 100%);
  border-radius: 0 30% 30% 0 / 0 50% 50% 0;
  box-shadow: inset -10px 0 20px rgba(0,0,0,0.5);
  animation: cd-rock 12s ease-in-out infinite alternate;
}
.scn-change-direction .rock-right-cd {
  position: absolute; bottom: 35%; right: 0; width: 20%; height: 35%;
  background: linear-gradient(180deg, #696969 0%, #2F4F4F 60%, #1A1A1A 100%);
  border-radius: 30% 0 0 30% / 50% 0 0 50%;
  box-shadow: inset 10px 0 20px rgba(0,0,0,0.5);
  animation: cd-rock 14s ease-in-out infinite alternate reverse;
}
.scn-change-direction .ship-cd {
  position: absolute; bottom: 40%; left: 45%; width: 15%; height: 8%;
  background: linear-gradient(180deg, #2F4F4F 0%, #1A1A1A 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 40% 40%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.7);
  animation: cd-ship 4s ease-in-out infinite;
}
.scn-change-direction .wake-cd {
  position: absolute; bottom: 40%; left: 55%; width: 10%; height: 2%;
  background: rgba(255,255,255,0.3);
  border-radius: 50%;
  filter: blur(2px);
  animation: cd-wake 2s ease-in-out infinite;
}
.scn-change-direction .sun-cd {
  position: absolute; top: 5%; left: 70%; width: 6%; height: 10%;
  background: radial-gradient(circle, #FFD700 0%, #FFA500 40%, transparent 70%);
  box-shadow: 0 0 30px 15px #FFD700, 0 0 60px 30px rgba(255,215,0,0.3);
  animation: cd-sun 5s ease-in-out infinite alternate;
}
@keyframes cd-sky {
  0% { opacity: 0.85; transform: translateX(0); }
  50% { opacity: 1; transform: translateX(1%); }
  100% { opacity: 0.9; transform: translateX(-1%); }
}
@keyframes cd-sea {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-2%) scaleY(0.97); }
  100% { transform: translateY(0) scaleY(1); }
}
@keyframes cd-rock {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(1%) scale(0.98); }
  100% { transform: translateY(0) scale(1); }
}
@keyframes cd-ship {
  0% { transform: translateY(0) rotate(-2deg); }
  25% { transform: translateY(-2%) rotate(0); }
  50% { transform: translateY(0) rotate(2deg); }
  75% { transform: translateY(-2%) rotate(0); }
  100% { transform: translateY(0) rotate(-2deg); }
}
@keyframes cd-wake {
  0% { opacity: 0; transform: scaleX(0.5); }
  50% { opacity: 1; transform: scaleX(1.5); }
  100% { opacity: 0; transform: scaleX(0.5); }
}
@keyframes cd-sun {
  0% { opacity: 0.8; transform: scale(0.9); }
  50% { opacity: 1; transform: scale(1.1); }
  100% { opacity: 0.9; transform: scale(1); }
}

/* three-o-clock */
.scn-three-o-clock {
  background: linear-gradient(180deg, #87CEEB 0%, #F0E68C 35%, #FFA500 55%, #8B4513 100%),
    radial-gradient(ellipse at 50% 40%, #FFF8DC 0%, transparent 50%);
  background-blend-mode: overlay;
}
.scn-three-o-clock .sky-toc {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #4682B4 0%, #87CEEB 60%, transparent 100%);
  animation: toc-sky 9s ease-in-out infinite alternate;
}
.scn-three-o-clock .sea-toc {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #1E90FF 0%, #006994 50%, #003366 100%);
  animation: toc-sea 5s ease-in-out infinite alternate;
}
.scn-three-o-clock .island-toc {
  position: absolute; bottom: 45%; left: 20%; width: 30%; height: 25%;
  background: linear-gradient(180deg, #228B22 0%, #006400 70%, #004d00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.4);
  animation: toc-island 15s ease-in-out infinite alternate;
}
.scn-three-o-clock .tree1-toc {
  position: absolute; bottom: 65%; left: 28%; width: 4%; height: 15%;
  background: linear-gradient(180deg, #006400 0%, #004d00 100%);
  border-radius: 50% 50% 0 0;
  transform: rotate(-10deg);
  animation: toc-tree 6s ease-in-out infinite alternate;
}
.scn-three-o-clock .tree2-toc {
  position: absolute; bottom: 68%; left: 38%; width: 3%; height: 12%;
  background: linear-gradient(180deg, #006400 0%, #004d00 100%);
  border-radius: 50% 50% 0 0;
  transform: rotate(8deg);
  animation: toc-tree 8s ease-in-out infinite alternate-reverse;
}
.scn-three-o-clock .ship-toc {
  position: absolute; bottom: 40%; left: 55%; width: 18%; height: 9%;
  background: linear-gradient(180deg, #2F4F4F 0%, #1A1A1A 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 40% 40%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.7);
  animation: toc-ship 3s ease-in-out infinite;
}
.scn-three-o-clock .sun-toc {
  position: absolute; top: 8%; left: 50%; width: 7%; height: 12%;
  background: radial-gradient(circle, #FFD700 0%, #FFA500 30%, transparent 70%);
  box-shadow: 0 0 50px 25px #FFD700, 0 0 100px 50px rgba(255,215,0,0.3);
  animation: toc-sun 6s ease-in-out infinite alternate;
}
@keyframes toc-sky {
  0% { opacity: 0.9; transform: translateX(0); }
  50% { opacity: 1; transform: translateX(1.5%); }
  100% { opacity: 0.85; transform: translateX(-1.5%); }
}
@keyframes toc-sea {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-4%) scaleY(0.93); }
  100% { transform: translateY(0) scaleY(1); }
}
@keyframes toc-island {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(2%) scale(0.96); }
  100% { transform: translateY(0) scale(1); }
}
@keyframes toc-tree {
  0% { transform: rotate(-10deg) scaleY(1); }
  50% { transform: rotate(0) scaleY(0.9); }
  100% { transform: rotate(10deg) scaleY(1); }
}
@keyframes toc-ship {
  0% { transform: translateY(0) translateX(0) rotate(-1deg); }
  30% { transform: translateY(-3%) translateX(2%) rotate(1deg); }
  60% { transform: translateY(0) translateX(0) rotate(-1deg); }
  100% { transform: translateY(0) translateX(0) rotate(0); }
}
@keyframes toc-sun {
  0% { opacity: 0.9; transform: scale(0.95); }
  50% { opacity: 1; transform: scale(1.05); }
  100% { opacity: 0.9; transform: scale(1); }
}

/* nemo-chief-officer-examine */
.scn-nemo-chief-officer-examine {
  background: linear-gradient(180deg, #87CEEB 0%, #F0E68C 40%, #B8860B 100%),
    radial-gradient(ellipse at 50% 30%, #FFF8DC 0%, transparent 60%);
  background-blend-mode: overlay;
}
.scn-nemo-chief-officer-examine .sky-nco {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #4682B4 0%, #87CEEB 50%, transparent 100%);
  animation: nco-sky 8s ease-in-out infinite alternate;
}
.scn-nemo-chief-officer-examine .sea-nco {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #1E90FF 0%, #006994 50%, #003366 100%);
  animation: nco-sea 6s ease-in-out infinite alternate;
}
.scn-nemo-chief-officer-examine .deck-nco {
  position: absolute; bottom: 35%; left: 10%; width: 80%; height: 15%;
  background: linear-gradient(180deg, #4A4A4A 0%, #2F2F2F 30%, #1A1A1A 100%);
  border-radius: 10% 10% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 5px 10px rgba(255,255,255,0.05);
  animation: nco-deck 10s ease-in-out infinite alternate;
}
.scn-nemo-chief-officer-examine .figure1-nco {
  position: absolute; bottom: 42%; left: 30%; width: 8%; height: 20%;
  background: linear-gradient(180deg, #1A1A1A 0%, #0A0A0A 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: nco-figure 5s ease-in-out infinite alternate;
}
.scn-nemo-chief-officer-examine .figure2-nco {
  position: absolute; bottom: 42%; left: 55%; width: 8%; height: 20%;
  background: linear-gradient(180deg, #1A1A1A 0%, #0A0A0A 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: nco-figure 5s ease-in-out infinite alternate-reverse;
}
.scn-nemo-chief-officer-examine .railing-nco {
  position: absolute; bottom: 48%; left: 20%; width: 60%; height: 2%;
  background: #333;
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation: nco-railing 7s ease-in-out infinite alternate;
}
.scn-nemo-chief-officer-examine .instrument-nco {
  position: absolute; bottom: 45%; left: 42%; width: 4%; height: 6%;
  background: radial-gradient(circle, #FFD700 0%, #B8860B 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 10px 5px #B8860B;
  animation: nco-instrument 3s ease-in-out infinite alternate;
}
@keyframes nco-sky {
  0% { opacity: 0.9; transform: translateX(0); }
  50% { opacity: 1; transform: translateX(1%); }
  100% { opacity: 0.85; transform: translateX(-1%); }
}
@keyframes nco-sea {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-3%) scaleY(0.95); }
  100% { transform: translateY(0) scaleY(1); }
}
@keyframes nco-deck {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(1%) scale(0.98); }
  100% { transform: translateY(0) scale(1); }
}
@keyframes nco-figure {
  0% { transform: translateY(0) rotate(-2deg); }
  50% { transform: translateY(-2%) rotate(0); }
  100% { transform: translateY(0) rotate(2deg); }
}
@keyframes nco-railing {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes nco-instrument {
  0% { opacity: 0.6; transform: scale(0.95); }
  50% { opacity: 1; transform: scale(1.05); }
  100% { opacity: 0.7; transform: scale(0.95); }
}

/* Scene 1: warning-about-natives - tense, dim interior */
.scn-warning-about-natives {
  background:
    linear-gradient(180deg, #0b0e1a 0%, #1a1e2e 50%, #121624 100%),
    radial-gradient(ellipse at 50% 70%, #2a3040 0%, transparent 70%);
}
.scn-warning-about-natives .interior-wall {
  position: absolute;
  inset: 10% 5% 10% 5%;
  background: linear-gradient(135deg, #2c3340 0%, #1b202a 100%);
  border-radius: 8px;
  box-shadow: inset 0 0 30px 10px rgba(0,0,0,0.7);
}
.scn-warning-about-natives .porthole {
  position: absolute;
  top: 25%;
  left: 60%;
  width: 50px;
  height: 50px;
  border-radius: 50%;
  background: radial-gradient(circle at 40% 40%, #3a5070 0%, #1c2838 100%);
  border: 4px solid #4a5a6a;
  box-shadow: 0 0 20px 5px rgba(0,120,200,0.3), inset 0 0 10px rgba(0,0,0,0.5);
  animation: wn-porthole 8s ease-in-out infinite alternate;
}
.scn-warning-about-natives .porthole-glow {
  position: absolute;
  top: 24%;
  left: 59%;
  width: 55px;
  height: 55px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(100,180,255,0.15) 0%, transparent 70%);
  filter: blur(4px);
  animation: wn-glow 5s ease-in-out infinite alternate;
}
.scn-warning-about-natives .shadow-figure {
  position: absolute;
  bottom: 25%;
  left: 15%;
  width: 40px;
  height: 80px;
  background: linear-gradient(180deg, #1a1a24 0%, #0a0a12 100%);
  border-radius: 50% 20% 30% 40% / 60% 50% 30% 40%;
  transform: rotate(-5deg);
  animation: wn-figure 6s ease-in-out infinite;
}
.scn-warning-about-natives .crate {
  position: absolute;
  bottom: 10%;
  left: 30%;
  width: 50px;
  height: 40px;
  background: linear-gradient(180deg, #3a3030 0%, #201818 100%);
  border-radius: 4px;
  border: 2px solid #1a1212;
  box-shadow: 4px 4px 8px rgba(0,0,0,0.6);
  animation: wn-crate 12s ease-in-out infinite alternate;
}
.scn-warning-about-natives .lantern-swing {
  position: absolute;
  top: 15%;
  left: 45%;
  width: 8px;
  height: 20px;
  background: #2a2222;
  border-radius: 2px 2px 0 0;
  transform-origin: top center;
  animation: wn-lantern-swing 3s ease-in-out infinite alternate;
}
.scn-warning-about-natives .lantern-swing::after {
  content: '';
  position: absolute;
  bottom: -10px;
  left: -4px;
  width: 16px;
  height: 16px;
  background: radial-gradient(circle, #c08040 0%, #804020 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px #c08040;
  animation: wn-lantern-flicker 1.5s ease-in-out infinite alternate;
}
.scn-warning-about-natives .beam {
  position: absolute;
  top: 16%;
  left: 43%;
  width: 120px;
  height: 2px;
  background: linear-gradient(90deg, rgba(240,200,100,0.3) 0%, transparent 100%);
  transform: rotate(-20deg);
  transform-origin: left center;
  filter: blur(2px);
  animation: wn-beam 4s ease-in-out infinite alternate;
}
.scn-warning-about-natives .pipe {
  position: absolute;
  top: 30%;
  right: 10%;
  width: 10px;
  height: 60px;
  background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%);
  border-radius: 5px;
  box-shadow: 2px 2px 5px rgba(0,0,0,0.5);
}
@keyframes wn-porthole {
  0% { transform: scale(1) rotate(0deg); opacity: 0.6; }
  50% { transform: scale(1.05) rotate(2deg); opacity: 0.9; }
  100% { transform: scale(1) rotate(-2deg); opacity: 0.7; }
}
@keyframes wn-glow {
  0% { opacity: 0.3; transform: scale(0.95); }
  100% { opacity: 0.7; transform: scale(1.1); }
}
@keyframes wn-figure {
  0% { transform: translateX(0) translateY(0) rotate(-5deg); }
  25% { transform: translateX(5px) translateY(-2px) rotate(-3deg); }
  50% { transform: translateX(0) translateY(0) rotate(-5deg); }
  75% { transform: translateX(-5px) translateY(1px) rotate(-7deg); }
  100% { transform: translateX(0) translateY(0) rotate(-5deg); }
}
@keyframes wn-crate {
  0% { transform: translateY(0) scale(1); box-shadow: 4px 4px 8px rgba(0,0,0,0.6); }
  50% { transform: translateY(-2px) scale(1.01); box-shadow: 6px 6px 12px rgba(0,0,0,0.7); }
  100% { transform: translateY(0) scale(1); box-shadow: 4px 4px 8px rgba(0,0,0,0.6); }
}
@keyframes wn-lantern-swing {
  0% { transform: rotate(-8deg); }
  50% { transform: rotate(8deg); }
  100% { transform: rotate(-6deg); }
}
@keyframes wn-lantern-flicker {
  0% { box-shadow: 0 0 20px 6px #c08040; opacity: 0.8; }
  50% { box-shadow: 0 0 30px 10px #e0a050; opacity: 1; }
  100% { box-shadow: 0 0 15px 4px #a06030; opacity: 0.6; }
}
@keyframes wn-beam {
  0% { transform: rotate(-25deg) translateX(-10px); opacity: 0.3; }
  100% { transform: rotate(-15deg) translateX(10px); opacity: 0.6; }
}

/* Scene 2: skiff-prepared - calm, dawn */
.scn-skiff-prepared {
  background:
    linear-gradient(180deg, #9ab0c4 0%, #d4c9a8 40%, #f0e0b0 60%, #f8d89a 80%, #c4a87a 100%),
    radial-gradient(ellipse at 50% 0%, #f8e8c0 0%, transparent 60%);
}
.scn-skiff-prepared .dawn-sky {
  position: absolute;
  inset: 0 0 40% 0;
  background: linear-gradient(180deg, #7a8ca0 0%, #c4bda0 60%, #e8d8a0 100%);
  animation: sp-sky 15s ease-in-out infinite alternate;
}
.scn-skiff-prepared .dawn-sea {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 40%;
  background: linear-gradient(180deg, #5a7a8a 0%, #3a5a6a 100%);
  border-radius: 30% 70% 0 0 / 20% 40% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.3);
  animation: sp-sea 20s linear infinite;
}
.scn-skiff-prepared .skiff-hull {
  position: absolute;
  bottom: 35%;
  left: 50%;
  width: 120px;
  height: 30px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 30% 30% 10% 10% / 80% 80% 30% 30%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.4);
  animation: sp-hull 8s ease-in-out infinite alternate;
}
.scn-skiff-prepared .skiff-rim {
  position: absolute;
  bottom: 37%;
  left: 48%;
  width: 130px;
  height: 8px;
  transform: translateX(-50%);
  background: linear-gradient(90deg, #5a4a3a 0%, #7a6a5a 50%, #5a4a3a 100%);
  border-radius: 4px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
}
.scn-skiff-prepared .oar-1 {
  position: absolute;
  bottom: 30%;
  left: 35%;
  width: 60px;
  height: 6px;
  background: linear-gradient(90deg, #4a3a2a 0%, #6a5a4a 100%);
  border-radius: 3px;
  transform: rotate(-20deg);
  transform-origin: right center;
  animation: sp-oar1 4s ease-in-out infinite alternate;
}
.scn-skiff-prepared .oar-2 {
  position: absolute;
  bottom: 29%;
  right: 35%;
  width: 60px;
  height: 6px;
  background: linear-gradient(90deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 3px;
  transform: rotate(20deg);
  transform-origin: left center;
  animation: sp-oar2 4s ease-in-out infinite alternate-reverse;
}
.scn-skiff-prepared .nautilus-silhouette {
  position: absolute;
  bottom: 40%;
  right: 10%;
  width: 80px;
  height: 40px;
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%);
  border-radius: 40% 20% 50% 50% / 60% 40% 60% 40%;
  opacity: 0.5;
  filter: blur(2px);
  animation: sp-nautilus 30s linear infinite;
}
.scn-skiff-prepared .sunrise-glow {
  position: absolute;
  top: 20%;
  left: 50%;
  width: 200px;
  height: 150px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse, rgba(255,220,160,0.4) 0%, transparent 70%);
  filter: blur(30px);
  animation: sp-glow 6s ease-in-out infinite alternate;
}
@keyframes sp-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes sp-sea {
  0% { transform: translateY(0); }
  50% { transform: translateY(-4px); }
  100% { transform: translateY(0); }
}
@keyframes sp-hull {
  0% { transform: translateX(-50%) translateY(0) rotate(-1deg); }
  100% { transform: translateX(-50%) translateY(-3px) rotate(1deg); }
}
@keyframes sp-oar1 {
  0% { transform: rotate(-30deg); }
  100% { transform: rotate(-10deg); }
}
@keyframes sp-oar2 {
  0% { transform: rotate(10deg); }
  100% { transform: rotate(30deg); }
}
@keyframes sp-nautilus {
  0% { transform: translateX(0); opacity: 0.5; }
  50% { transform: translateX(-20px); opacity: 0.3; }
  100% { transform: translateX(0); opacity: 0.5; }
}
@keyframes sp-glow {
  0% { transform: translateX(-50%) scale(0.9); opacity: 0.3; }
  100% { transform: translateX(-50%) scale(1.2); opacity: 0.7; }
}

/* Scene 3: launching-skiff - calm, sunlit */
.scn-launching-skiff {
  background:
    linear-gradient(180deg, #8ab4d4 0%, #c4dce8 40%, #e8f0f8 60%, #f0f4f8 80%, #d0e0f0 100%),
    radial-gradient(ellipse at 50% 0%, #f0f8ff 0%, transparent 70%);
}
.scn-launching-skiff .deck-platform {
  position: absolute;
  bottom: 30%;
  left: 10%;
  right: 10%;
  height: 15%;
  background: linear-gradient(180deg, #6a7a8a 0%, #4a5a6a 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
  box-shadow: inset 0 6px 12px rgba(0,0,0,0.3);
  animation: ls-deck 10s ease-in-out infinite alternate;
}
.scn-launching-skiff .skiff-body {
  position: absolute;
  bottom: 35%;
  left: 50%;
  width: 100px;
  height: 40px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #7a6a5a 0%, #4a3a2a 100%);
  border-radius: 40% 40% 20% 20% / 70% 70% 30% 30%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.5);
  animation: ls-skiff 6s ease-in-out infinite alternate;
}
.scn-launching-skiff .skiff-bottom {
  position: absolute;
  bottom: 34%;
  left: 48%;
  width: 110px;
  height: 12px;
  transform: translateX(-50%);
  background: linear-gradient(90deg, #5a4a3a 0%, #7a6a5a 50%, #5a4a3a 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
}
.scn-launching-skiff .sea-surface {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 35%;
  background: linear-gradient(180deg, #4a7a8a 0%, #2a5a6a 100%);
  border-radius: 40% 60% 0 0 / 30% 50% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.3);
  animation: ls-sea 12s ease-in-out infinite alternate;
}
.scn-launching-skiff .foam {
  position: absolute;
  bottom: 33%;
  left: 35%;
  right: 35%;
  height: 8px;
  background: linear-gradient(90deg, transparent 0%, rgba(255,255,255,0.5) 20%, rgba(255,255,255,0.8) 50%, rgba(255,255,255,0.5) 80%, transparent 100%);
  border-radius: 50%;
  filter: blur(2px);
  animation: ls-foam 3s ease-in-out infinite alternate;
}
.scn-launching-skiff .crane-hook {
  position: absolute;
  top: 10%;
  left: 50%;
  width: 8px;
  height: 80px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a5a6a 0%, #2a3a4a 100%);
  border-radius: 4px;
  animation: ls-crane 8s ease-in-out infinite alternate;
}
.scn-launching-skiff .chain {
  position: absolute;
  top: 10%;
  left: 50%;
  width: 4px;
  height: 100px;
  transform: translateX(-50%);
  background: repeating-linear-gradient(180deg, #6a7a8a 0px, #6a7a8a 6px, #4a5a6a 6px, #4a5a6a 12px);
  border-radius: 2px;
  animation: ls-chain 4s ease-in-out infinite alternate;
}
.scn-launching-skiff .sunlight-ray {
  position: absolute;
  top: 0;
  left: 30%;
  width: 4px;
  height: 50%;
  background: linear-gradient(180deg, rgba(255,255,255,0.6) 0%, transparent 100%);
  transform: rotate(10deg);
  filter: blur(2px);
  animation: ls-ray 6s ease-in-out infinite alternate;
}
@keyframes ls-deck {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-2px) scaleY(1.02); }
  100% { transform: translateY(0) scaleY(1); }
}
@keyframes ls-skiff {
  0% { transform: translateX(-50%) translateY(0) rotate(0deg); }
  50% { transform: translateX(-50%) translateY(-4px) rotate(1deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(0deg); }
}
@keyframes ls-sea {
  0% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
  100% { transform: translateY(0); }
}
@keyframes ls-foam {
  0% { opacity: 0.5; transform: scaleX(0.8); }
  100% { opacity: 1; transform: scaleX(1.2); }
}
@keyframes ls-crane {
  0% { transform: translateX(-50%) rotate(-2deg); }
  100% { transform: translateX(-50%) rotate(2deg); }
}
@keyframes ls-chain {
  0% { transform: translateX(-50%) translateY(0); }
  50% { transform: translateX(-50%) translateY(-5px); }
  100% { transform: translateX(-50%) translateY(0); }
}
@keyframes ls-ray {
  0% { transform: rotate(5deg) scaleY(0.9); opacity: 0.6; }
  100% { transform: rotate(15deg) scaleY(1.1); opacity: 1; }
}

/* Scene 4: departure - calm, sunlit */
.scn-departure {
  background:
    linear-gradient(180deg, #6ab0d4 0%, #a4cce8 30%, #d0e4f0 50%, #f0f4f8 70%, #e0eef8 100%),
    radial-gradient(ellipse at 50% 0%, #f8fcff 0%, transparent 60%);
}
.scn-departure .bright-sky {
  position: absolute;
  inset: 0 0 35% 0;
  background: linear-gradient(180deg, #7ab8d8 0%, #b4d8e8 60%, #e0ecf4 100%);
  animation: dp-sky 12s ease-in-out infinite alternate;
}
.scn-departure .calm-sea {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 35%;
  background: linear-gradient(180deg, #4a8aa0 0%, #2a6a80 100%);
  border-radius: 30% 70% 0 0 / 20% 40% 0 0;
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.2);
  animation: dp-sea 18s linear infinite;
}
.scn-departure .skiff-rowers {
  position: absolute;
  bottom: 30%;
  left: 50%;
  width: 70px;
  height: 30px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: dp-skiff 6s ease-in-out infinite alternate;
}
.scn-departure .skiff-stern {
  position: absolute;
  bottom: 28%;
  left: 48%;
  width: 80px;
  height: 10px;
  transform: translateX(-50%);
  background: linear-gradient(90deg, #5a4a3a 0%, #7a6a5a 50%, #5a4a3a 100%);
  border-radius: 4px 4px 0 0;
}
.scn-departure .oar-left {
  position: absolute;
  bottom: 26%;
  left: 38%;
  width: 50px;
  height: 5px;
  background: linear-gradient(90deg, #4a3a2a 0%, #6a5a4a 100%);
  border-radius: 3px;
  transform: rotate(-25deg);
  transform-origin: right center;
  animation: dp-oar-l 4s ease-in-out infinite alternate;
}
.scn-departure .oar-right {
  position: absolute;
  bottom: 25%;
  right: 38%;
  width: 50px;
  height: 5px;
  background: linear-gradient(90deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 3px;
  transform: rotate(25deg);
  transform-origin: left center;
  animation: dp-oar-r 4s ease-in-out infinite alternate-reverse;
}
.scn-departure .wave-wake {
  position: absolute;
  bottom: 30%;
  left: 40%;
  right: 40%;
  height: 20px;
  background: linear-gradient(180deg, rgba(255,255,255,0.3) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(4px);
  animation: dp-wake 3s ease-in-out infinite alternate;
}
.scn-departure .distant-land {
  position: absolute;
  bottom: 38%;
  left: 15%;
  width: 30%;
  height: 20%;
  background: linear-gradient(180deg, #5a6a4a 0%, #3a4a2a 100%);
  border-radius: 40% 60% 0 0 / 70% 80% 0 0;
  opacity: 0.4;
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.2);
  animation: dp-land 30s ease-in-out infinite;
}
@keyframes dp-sky {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes dp-sea {
  0% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
  100% { transform: translateY(0); }
}
@keyframes dp-skiff {
  0% { transform: translateX(-50%) translateY(0) rotate(-1deg); }
  50% { transform: translateX(-50%) translateY(-2px) rotate(1deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(-1deg); }
}
@keyframes dp-oar-l {
  0% { transform: rotate(-35deg); }
  100% { transform: rotate(-15deg); }
}
@keyframes dp-oar-r {
  0% { transform: rotate(15deg); }
  100% { transform: rotate(35deg); }
}
@keyframes dp-wake {
  0% { opacity: 0.3; transform: scaleX(0.8); }
  100% { opacity: 0.7; transform: scaleX(1.2); }
}
@keyframes dp-land {
  0% { transform: translateY(0); opacity: 0.4; }
  50% { transform: translateY(-5px); opacity: 0.5; }
  100% { transform: translateY(0); opacity: 0.4; }
}

.scn-tetradon-fish {
  background: linear-gradient(180deg, #0f5a6a 0%, #0b3b48 50%, #06202b 100%), 
              radial-gradient(ellipse at 50% 30%, #4da6bf 0%, transparent 60%);
}
.scn-tetradon-fish .water {
  position: absolute; inset: 0; background: linear-gradient(180deg, transparent 60%, #0a2a35 100%);
  animation: tfd-water 12s ease-in-out infinite;
}
.scn-tetradon-fish .sunrays {
  position: absolute; top: 0; left: 20%; width: 40%; height: 100%;
  background: linear-gradient(180deg, rgba(255,220,140,0.2) 0%, transparent 60%);
  clip-path: polygon(40% 0, 60% 0, 70% 100%, 30% 100%);
  animation: tfd-rays 6s ease-in-out infinite alternate;
}
.scn-tetradon-fish .fish-body {
  position: absolute; bottom: 35%; left: 50%; width: 90px; height: 60px;
  transform: translateX(-50%) scale(0.95);
  background: radial-gradient(ellipse at 30% 40%, #c8553d 0%, #a0461a 40%, #7a3333 100%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.5);
  animation: tfd-body 5s ease-in-out infinite;
}
.scn-tetradon-fish .fish-spines {
  position: absolute; bottom: 55%; left: 48%; width: 30px; height: 18px;
  background: linear-gradient(180deg, #b55a3a 0%, #8f3a1a 100%);
  border-radius: 50%; transform: rotate(-10deg);
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: tfd-spines 4s ease-in-out infinite alternate;
}
.scn-tetradon-fish .fish-eye {
  position: absolute; bottom: 45%; left: 48%; width: 10px; height: 12px;
  background: radial-gradient(circle, #f0e8d0 0%, #1a1a1a 70%);
  border-radius: 50%;
  animation: tfd-eye 5s ease-in-out infinite;
}
.scn-tetradon-fish .bubbles {
  position: absolute; bottom: 20%; left: 30%; width: 12px; height: 12px;
  background: radial-gradient(circle, rgba(255,255,255,0.5) 0%, transparent 70%);
  border-radius: 50%;
  box-shadow: 20px -40px 0 6px rgba(255,255,255,0.3), -10px -70px 0 4px rgba(255,255,255,0.2);
  animation: tfd-bubbles 8s linear infinite;
}
@keyframes tfd-water { 0%,100% { opacity:0.7 } 50% { opacity:1 } }
@keyframes tfd-rays { 0% { opacity:0.4; transform: scaleX(0.8) } 100% { opacity:1; transform: scaleX(1.2) } }
@keyframes tfd-body { 0%,100% { transform: translateX(-50%) scale(0.95) rotate(0deg) } 50% { transform: translateX(-50%) scale(1.02) rotate(3deg) translateY(-4px) } }
@keyframes tfd-spines { 0% { transform: rotate(-12deg) scaleY(1) } 100% { transform: rotate(8deg) scaleY(1.3) } }
@keyframes tfd-eye { 0%,100% { transform: scale(1) } 50% { transform: scale(0.8) } }
@keyframes tfd-bubbles { 0% { transform: translateY(0) scale(1); opacity:0.6 } 50% { transform: translateY(-80px) scale(0.8); opacity:0.8 } 100% { transform: translateY(-160px) scale(0.5); opacity:0 } }

/* scorpionfish */
.scn-scorpionfish {
  background: linear-gradient(180deg, #0e5a6e 0%, #0b4050 50%, #082a35 100%), 
              radial-gradient(ellipse at 50% 30%, #3da0bf 0%, transparent 60%);
}
.scn-scorpionfish .water {
  position: absolute; inset: 0; background: linear-gradient(180deg, transparent 50%, #0a2d3a 100%);
  animation: scp-water 14s ease-in-out infinite;
}
.scn-scorpionfish .sunrays {
  position: absolute; top: 0; left: 30%; width: 50%; height: 100%;
  background: linear-gradient(180deg, rgba(255,230,170,0.2) 0%, transparent 70%);
  clip-path: polygon(30% 0, 70% 0, 80% 100%, 20% 100%);
  animation: scp-rays 7s ease-in-out infinite alternate;
}
.scn-scorpionfish .fish-body {
  position: absolute; bottom: 30%; left: 50%; width: 80px; height: 50px;
  transform: translateX(-50%) scale(0.9);
  background: linear-gradient(180deg, #7a7a6a 0%, #5a5a4a 40%, #3a3a2a 100%);
  border-radius: 60% 40% 40% 60% / 50% 50% 50% 50%;
  animation: scp-body 6s ease-in-out infinite;
}
.scn-scorpionfish .head-spines {
  position: absolute; bottom: 55%; left: 38%; width: 30px; height: 20px;
  background: linear-gradient(135deg, #6a5a4a 0%, #4a3a2a 100%);
  clip-path: polygon(50% 0%, 100% 50%, 70% 100%, 30% 100%, 0% 50%);
  animation: scp-spines 3s ease-in-out infinite alternate;
}
.scn-scorpionfish .dorsal-fin {
  position: absolute; bottom: 55%; left: 48%; width: 40px; height: 14px;
  background: linear-gradient(180deg, #6a6a5a 0%, #4a4a3a 100%);
  border-radius: 0 0 50% 50%;
  transform: rotate(-5deg);
  animation: scp-fin 5s ease-in-out infinite;
}
.scn-scorpionfish .tail {
  position: absolute; bottom: 28%; left: 55%; width: 30px; height: 20px;
  background: linear-gradient(180deg, #5a5a4a 0%, #3a3a2a 100%);
  border-radius: 0 0 50% 50%;
  transform: rotate(15deg) skewX(-10deg);
  animation: scp-tail 4s ease-in-out infinite alternate;
}
.scn-scorpionfish .eye {
  position: absolute; bottom: 40%; left: 42%; width: 8px; height: 10px;
  background: radial-gradient(circle, #e8d8c0 0%, #1a1a1a 70%);
  border-radius: 50%;
  animation: scp-eye 5s ease-in-out infinite;
}
@keyframes scp-water { 0%,100% { opacity:0.6 } 50% { opacity:1 } }
@keyframes scp-rays { 0% { transform: rotate(-2deg) scaleY(0.9); opacity:0.3 } 100% { transform: rotate(2deg) scaleY(1.1); opacity:0.8 } }
@keyframes scp-body { 0%,100% { transform: translateX(-50%) scale(0.9) rotate(0deg) } 50% { transform: translateX(-50%) scale(1.02) rotate(2deg) translateY(-3px) } }
@keyframes scp-spines { 0% { transform: rotate(-15deg) scaleY(1) } 100% { transform: rotate(15deg) scaleY(1.4) } }
@keyframes scp-fin { 0%,100% { transform: rotate(-5deg) scaleX(1) } 50% { transform: rotate(5deg) scaleX(1.2) translateX(3px) } }
@keyframes scp-tail { 0% { transform: rotate(10deg) skewX(-10deg) scaleY(1) } 100% { transform: rotate(25deg) skewX(0deg) scaleY(1.2) } }
@keyframes scp-eye { 0%,100% { transform: scale(1) } 50% { transform: scale(0.7) } }

/* toadfish */
.scn-toadfish {
  background: linear-gradient(180deg, #0f5a4a 0%, #0b3b30 50%, #06201a 100%), 
              radial-gradient(ellipse at 50% 40%, #3d9e7f 0%, transparent 60%);
}
.scn-toadfish .water {
  position: absolute; inset: 0; background: linear-gradient(180deg, transparent 30%, #0a2a2a 100%);
  animation: toa-water 16s ease-in-out infinite;
}
.scn-toadfish .rocks {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #4a5a4a 0%, #2a3a2a 100%);
  border-radius: 40% 60% 0 0 / 60% 70% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.5);
  animation: toa-rocks 20s ease-in-out infinite alternate;
}
.scn-toadfish .fish-body {
  position: absolute; bottom: 20%; left: 50%; width: 120px; height: 80px;
  transform: translateX(-50%) scale(0.9);
  background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 50%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 10px 30px rgba(0,0,0,0.6);
  animation: toa-body 8s ease-in-out infinite;
}
.scn-toadfish .fish-head {
  position: absolute; bottom: 45%; left: 40%; width: 80px; height: 60px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.4);
  animation: toa-head 5s ease-in-out infinite;
}
.scn-toadfish .nodules {
  position: absolute; bottom: 50%; left: 42%; width: 20px; height: 14px;
  background: radial-gradient(circle, #8a7a6a 0%, #5a4a3a 100%);
  border-radius: 50%;
  box-shadow: 15px -10px 0 0 #6a5a4a, -10px -15px 0 0 #5a4a3a;
  animation: toa-nodules 4s ease-in-out infinite alternate;
}
.scn-toadfish .stings {
  position: absolute; bottom: 55%; left: 36%; width: 24px; height: 10px;
  background: linear-gradient(90deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 0 50% 50% 0;
  transform: rotate(-20deg);
  box-shadow: 18px -6px 0 0 #4a3a2a, 30px -2px 0 0 #3a2a1a;
  animation: toa-stings 3s ease-in-out infinite alternate;
}
.scn-toadfish .eye {
  position: absolute; bottom: 48%; left: 40%; width: 12px; height: 14px;
  background: radial-gradient(circle, #d8c8a0 0%, #1a1a1a 70%);
  border-radius: 50%;
  animation: toa-eye 5s ease-in-out infinite;
}
.scn-toadfish .mouth {
  position: absolute; bottom: 30%; left: 36%; width: 30px; height: 10px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 0 0 50% 50%;
  transform: translateX(-50%);
  animation: toa-mouth 6s ease-in-out infinite;
}
@keyframes toa-water { 0%,100% { opacity:0.6 } 50% { opacity:1 } }
@keyframes toa-rocks { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes toa-body { 0%,100% { transform: translateX(-50%) scale(0.9) rotate(0deg) } 50% { transform: translateX(-50%) scale(1.03) rotate(-2deg) translateY(-5px) } }
@keyframes toa-head { 0%,100% { transform: translateX(-50%) rotate(0deg) } 50% { transform: translateX(-50%) rotate(4deg) translateY(2px) } }
@keyframes toa-nodules { 0% { transform: scale(1) rotate(0deg); opacity:0.8 } 100% { transform: scale(1.3) rotate(10deg); opacity:1 } }
@keyframes toa-stings { 0% { transform: rotate(-25deg) scaleY(1) } 100% { transform: rotate(15deg) scaleY(1.2) } }
@keyframes toa-eye { 0%,100% { transform: scale(1) } 50% { transform: scale(0.6) } }
@keyframes toa-mouth { 0%,100% { transform: translateX(-50%) scaleX(1) } 50% { transform: translateX(-50%) scaleX(1.3) translateY(2px) } }

/* speed-travel */
.scn-speed-travel {
  background: linear-gradient(180deg, #0e5a6e 0%, #0b4050 30%, #082a35 60%, #041520 100%), 
              radial-gradient(ellipse at 50% 30%, #4db0cf 0%, transparent 70%);
}
.scn-speed-travel .water {
  position: absolute; inset: 0; background: linear-gradient(180deg, transparent 40%, #06202a 100%);
  animation: spd-water 10s ease-in-out infinite;
}
.scn-speed-travel .lightbeam {
  position: absolute; top: 20%; left: 45%; width: 100px; height: 200px;
  background: linear-gradient(180deg, rgba(255,240,180,0.3) 0%, rgba(255,240,180,0.05) 100%);
  clip-path: polygon(50% 0%, 100% 100%, 0% 100%);
  transform-origin: 50% 0%;
  animation: spd-beam 4s ease-in-out infinite alternate;
}
.scn-speed-travel .nautilus-hull {
  position: absolute; bottom: 20%; left: 50%; width: 140px; height: 70px;
  transform: translateX(-50%) scaleX(1.2);
  background: linear-gradient(180deg, #8a8a8a 0%, #5a5a5a 50%, #3a3a3a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 10px 30px rgba(0,0,0,0.6);
  animation: spd-hull 3s ease-in-out infinite;
}
.scn-speed-travel .nautilus-window {
  position: absolute; bottom: 28%; left: 50%; width: 30px; height: 30px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #f0e8c0 0%, #c0b080 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(240,232,192,0.4);
  animation: spd-window 2s ease-in-out infinite alternate;
}
.scn-speed-travel .fish-shoal {
  position: absolute; bottom: 10%; left: 30%; width: 60px; height: 20px;
  background: radial-gradient(ellipse at 30% 50%, #5a8a6a 0%, transparent 70%);
  border-radius: 50%;
  box-shadow: 40px -20px 0 0 #4a7a5a, 80px -10px 0 0 #3a6a4a;
  animation: spd-fish 8s linear infinite;
}
.scn-speed-travel .bubbles {
  position: absolute; bottom: 0; left: 20%; width: 8px; height: 8px;
  background: radial-gradient(circle, rgba(255,255,255,0.4) 0%, transparent 80%);
  border-radius: 50%;
  box-shadow: -30px 0 0 6px rgba(255,255,255,0.3), 50px -60px 0 4px rgba(255,255,255,0.2);
  animation: spd-bubbles 5s linear infinite;
}
@keyframes spd-water { 0%,100% { opacity:0.6 } 50% { opacity:1 } }
@keyframes spd-beam { 0% { transform: rotate(-5deg) scaleY(0.8); opacity:0.5 } 100% { transform: rotate(5deg) scaleY(1.2); opacity:1 } }
@keyframes spd-hull { 0%,100% { transform: translateX(-50%) scaleX(1.2) rotate(0deg) } 50% { transform: translateX(-50%) scaleX(1.25) rotate(1deg) translateY(-3px) } }
@keyframes spd-window { 0% { box-shadow: 0 0 20px 5px rgba(240,232,192,0.3); transform: translateX(-50%) scale(0.95) } 100% { box-shadow: 0 0 40px 15px rgba(240,232,192,0.6); transform: translateX(-50%) scale(1.05) } }
@keyframes spd-fish { 0% { transform: translateX(-60px) scaleX(1) } 50% { transform: translateX(20px) scaleX(0.9) } 100% { transform: translateX(100px) scaleX(1.1) } }
@keyframes spd-bubbles { 0% { transform: translateY(0) scale(1); opacity:0.7 } 50% { transform: translateY(-100px) scale(0.7); opacity:0.9 } 100% { transform: translateY(-200px) scale(0.3); opacity:0 } }

.scn-climbing-through-submerged-forest {
  background: linear-gradient(180deg, #c8553d 0%, #5e1a1d 30%, #0a1628 70%, #020612 100%),
              radial-gradient(ellipse at 50% 0%, #d97a4a 0%, transparent 60%);
}
.scn-climbing-through-submerged-forest .surface-glow {
  position: absolute; top: 0; left: 0; right: 0; height: 12%;
  background: linear-gradient(180deg, rgba(232, 144, 60, 0.8) 0%, transparent 100%);
  border-radius: 0 0 40% 40%;
  animation: csf-glow 6s ease-in-out infinite alternate;
}
.scn-climbing-through-submerged-forest .water-column {
  position: absolute; top: 10%; left: 0; right: 0; bottom: 0;
  background: linear-gradient(180deg, rgba(10,22,40,0.4) 0%, #020612 100%);
}
.scn-climbing-through-submerged-forest .tree-left {
  position: absolute; bottom: 20%; left: 15%; width: 14px; height: 70%;
  background: linear-gradient(180deg, #3a1a0a 0%, #1a0a02 100%);
  border-radius: 4px;
  box-shadow: inset -2px 0 6px rgba(0,0,0,0.6);
  transform-origin: bottom;
  animation: csf-tree 20s ease-in-out infinite alternate;
}
.scn-climbing-through-submerged-forest .tree-right {
  position: absolute; bottom: 30%; right: 20%; width: 12px; height: 55%;
  background: linear-gradient(180deg, #4a2210 0%, #1a0a02 100%);
  border-radius: 4px;
  box-shadow: inset 2px 0 6px rgba(0,0,0,0.6);
  transform-origin: bottom;
  animation: csf-tree 20s ease-in-out infinite alternate reverse;
}
.scn-climbing-through-submerged-forest .rock-bed {
  position: absolute; bottom: 0; left: 5%; right: 5%; height: 18%;
  background: linear-gradient(0deg, #1a1a1a 0%, #2a2020 100%);
  border-radius: 30% 30% 0 0 / 60% 60% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.5);
}
.scn-climbing-through-submerged-forest .figure-climb {
  position: absolute; bottom: 18%; left: 35%; width: 20px; height: 36px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: csf-climb 5s ease-in-out infinite;
}
.scn-climbing-through-submerged-forest .bubble {
  position: absolute; border-radius: 50%;
  background: radial-gradient(circle, rgba(255,200,150,0.3) 0%, transparent 70%);
  filter: blur(2px);
}
.scn-climbing-through-submerged-forest .bubble-1 {
  bottom: 10%; left: 30%; width: 12px; height: 12px;
  animation: csf-bubble 8s infinite linear;
}
.scn-climbing-through-submerged-forest .bubble-2 {
  bottom: 25%; left: 70%; width: 8px; height: 8px;
  animation: csf-bubble 11s infinite linear reverse;
}

@keyframes csf-glow { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes csf-tree { 0% { transform: rotate(0deg) scaleY(1); } 50% { transform: rotate(-2deg) scaleY(1.02); } 100% { transform: rotate(1deg) scaleY(0.98); } }
@keyframes csf-climb { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-4px) rotate(2deg); } 60% { transform: translateY(-1px) rotate(-1deg); } 100% { transform: translateY(-3px) rotate(0deg); } }
@keyframes csf-bubble { 0% { transform: translateY(0) scale(1); opacity: 0; } 20% { opacity: 1; } 80% { opacity: 0.6; } 100% { transform: translateY(-120px) scale(0.4); opacity: 0; } }

.scn-scaling-volcanic-rocks {
  background: linear-gradient(180deg, #2a0a0a 0%, #4a1a0a 20%, #1a0a02 50%, #0a0202 100%),
              radial-gradient(ellipse at 30% 40%, #a0461a 0%, transparent 50%);
}
.scn-scaling-volcanic-rocks .bg-cave {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #1a0a02 30%, #2a120a 60%, #0a0202 100%);
  opacity: 0.5;
}
.scn-scaling-volcanic-rocks .rock-wall {
  position: absolute; top: 5%; left: 25%; right: 25%; bottom: 0;
  background: linear-gradient(180deg, #3a1a0a 0%, #1a0a02 50%, #0a0202 100%);
  clip-path: polygon(0% 0%, 100% 0%, 85% 100%, 15% 100%);
  box-shadow: inset 0 0 30px rgba(0,0,0,0.8);
  animation: svr-wall 15s ease-in-out infinite alternate;
}
.scn-scaling-volcanic-rocks .figure-scale {
  position: absolute; bottom: 25%; left: 48%; width: 18px; height: 32px;
  background: linear-gradient(180deg, #2a1a10 0%, #0a0a02 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: svr-climb 4s ease-in-out infinite;
}
.scn-scaling-volcanic-rocks .debris {
  position: absolute; width: 20px; height: 16px;
  background: #1a0a02;
  border-radius: 10% 60% 20% 40%;
  filter: blur(1px);
}
.scn-scaling-volcanic-rocks .debris-a { top: 20%; left: 10%; animation: svr-debris 3s infinite linear; }
.scn-scaling-volcanic-rocks .debris-b { top: 60%; left: 70%; width: 14px; height: 12px; animation: svr-debris 4.5s infinite linear reverse; }
.scn-scaling-volcanic-rocks .handhold {
  position: absolute; bottom: 50%; left: 42%; width: 10px; height: 6px;
  background: #5a2a12;
  border-radius: 20%;
  box-shadow: 0 0 8px #a0461a;
  animation: svr-glow 2s ease-in-out infinite alternate;
}
.scn-scaling-volcanic-rocks .lava-glow {
  position: absolute; bottom: 5%; left: 20%; right: 20%; height: 10%;
  background: radial-gradient(ellipse at 50% 100%, #c8553d 0%, transparent 70%);
  filter: blur(8px);
  animation: svr-lava 6s ease-in-out infinite alternate;
}

@keyframes svr-wall { 0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.01) translateY(-2px); } 100% { transform: scaleY(0.99) translateY(0); } }
@keyframes svr-climb { 0% { transform: translateY(0) rotate(-2deg); } 25% { transform: translateY(-4px) rotate(1deg); } 50% { transform: translateY(-1px) rotate(2deg); } 75% { transform: translateY(-3px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes svr-debris { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 30% { transform: translateX(10px) translateY(40px) rotate(30deg); } 60% { transform: translateX(20px) translateY(80px) rotate(60deg); } 100% { transform: translateX(40px) translateY(150px) rotate(120deg); opacity: 0; } }
@keyframes svr-glow { 0% { box-shadow: 0 0 4px #a0461a; opacity: 0.7; } 50% { box-shadow: 0 0 16px #c8553d; opacity: 1; } 100% { box-shadow: 0 0 8px #a0461a; opacity: 0.8; } }
@keyframes svr-lava { 0% { opacity: 0.4; transform: scaleY(1); } 50% { opacity: 0.8; transform: scaleY(1.2); } 100% { opacity: 0.5; transform: scaleY(0.9); } }

.scn-crossing-crevasses {
  background: linear-gradient(180deg, #1a0a02 0%, #0a0202 30%, #020612 70%, #00020a 100%),
              radial-gradient(ellipse at 50% 70%, #c8553d 0%, transparent 60%);
}
.scn-crossing-crevasses .cliff-left {
  position: absolute; top: 0; left: 0; width: 35%; height: 60%;
  background: linear-gradient(180deg, #3a1a0a 0%, #1a0a02 100%);
  clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 0% 100%);
  box-shadow: inset -10px 0 20px rgba(0,0,0,0.8);
}
.scn-crossing-crevasses .cliff-right {
  position: absolute; top: 0; right: 0; width: 35%; height: 55%;
  background: linear-gradient(180deg, #2a120a 0%, #0a0202 100%);
  clip-path: polygon(20% 0%, 100% 0%, 100% 100%, 0% 100%);
  box-shadow: inset 10px 0 20px rgba(0,0,0,0.8);
  animation: cc-cliff 12s ease-in-out infinite alternate;
}
.scn-crossing-crevasses .crevasse {
  position: absolute; bottom: 0; left: 30%; right: 30%; height: 70%;
  background: linear-gradient(180deg, #020612 0%, #00020a 100%);
  clip-path: polygon(0% 0%, 100% 0%, 90% 100%, 10% 100%);
  filter: blur(2px);
}
.scn-crossing-crevasses .log {
  position: absolute; bottom: 35%; left: 28%; right: 28%; height: 6px;
  background: linear-gradient(90deg, #5a3018 0%, #3a1a0a 50%, #5a3018 100%);
  border-radius: 4px;
  box-shadow: 0 2px 10px rgba(0,0,0,0.5);
  animation: cc-log 4s ease-in-out infinite alternate;
}
.scn-crossing-crevasses .figure-cross {
  position: absolute; bottom: 36%; left: 48%; width: 20px; height: 34px;
  background: linear-gradient(180deg, #2a1a10 0%, #0a0a02 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cc-walk 3s ease-in-out infinite;
}
.scn-crossing-crevasses .fog {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 20%;
  background: radial-gradient(ellipse at 50% 100%, rgba(200,150,100,0.1) 0%, transparent 70%);
  filter: blur(10px);
  animation: cc-fog 15s ease-in-out infinite alternate;
}
.scn-crossing-crevasses .fall-stone {
  position: absolute; top: 10%; left: 55%; width: 8px; height: 8px;
  background: #1a0a02;
  border-radius: 20%;
  animation: cc-stone 5s infinite linear;
}

@keyframes cc-cliff { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes cc-log { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(2px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes cc-walk { 0% { transform: translateX(-5px) translateY(0) rotate(-2deg); } 30% { transform: translateX(0) translateY(-2px) rotate(0deg); } 60% { transform: translateX(5px) translateY(0) rotate(2deg); } 100% { transform: translateX(-5px) translateY(0) rotate(-2deg); } }
@keyframes cc-fog { 0% { opacity: 0.3; transform: scale(1); } 50% { opacity: 0.6; transform: scale(1.1); } 100% { opacity: 0.2; transform: scale(0.9); } }
@keyframes cc-stone { 0% { transform: translateY(0) rotate(0deg); opacity: 1; } 30% { transform: translateY(30px) rotate(20deg); } 60% { transform: translateY(70px) rotate(40deg); opacity: 0.5; } 100% { transform: translateY(150px) rotate(80deg); opacity: 0; } }

.scn-effect-of-water-density {
  background: linear-gradient(180deg, #1a0a02 0%, #0a1628 40%, #020612 100%),
              radial-gradient(ellipse at 80% 20%, #c8553d 0%, transparent 40%);
}
.scn-effect-of-water-density .deep-water {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(10,22,40,0.6) 0%, #020612 100%);
  animation: ewd-shimmer 8s ease-in-out infinite alternate;
}
.scn-effect-of-water-density .steep-rock {
  position: absolute; left: 30%; right: 30%; bottom: 0; top: 15%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a02 50%, #0a0202 100%);
  clip-path: polygon(10% 100%, 90% 100%, 60% 0%, 40% 0%);
  box-shadow: inset 0 -20px 30px rgba(0,0,0,0.8);
}
.scn-effect-of-water-density .figure-leap {
  position: absolute; bottom: 45%; left: 55%; width: 22px; height: 38px;
  background: linear-gradient(180deg, #2a1a10 0%, #0a0a02 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ewd-leap 3s ease-in-out infinite;
}
.scn-effect-of-water-density .bubble-swarm {
  position: absolute; bottom: 30%; left: 40%; right: 40%; height: 40%;
  background: radial-gradient(circle, rgba(200,180,150,0.1) 0%, transparent 60%);
  filter: blur(4px);
  animation: ewd-bubbles 6s ease-in-out infinite alternate;
}
.scn-effect-of-water-density .light-ray {
  position: absolute; width: 2px; bottom: 0;
  background: linear-gradient(180deg, transparent, rgba(200,150,100,0.3) 50%, transparent 100%);
  filter: blur(3px);
}
.scn-effect-of-water-density .ray-1 { left: 20%; height: 60%; animation: ewd-ray 5s infinite linear; }
.scn-effect-of-water-density .ray-2 { right: 25%; height: 50%; animation: ewd-ray 7s infinite linear reverse; }
.scn-effect-of-water-density .seaweed {
  position: absolute; bottom: 10%; left: 15%; width: 8px; height: 40px;
  background: linear-gradient(180deg, #2a3a1a 0%, #1a2a0a 100%);
  border-radius: 50% 50% 20% 20%;
  transform-origin: bottom;
  animation: ewd-seaweed 4s ease-in-out infinite alternate;
}

@keyframes ewd-shimmer { 0% { opacity: 0.6; } 50% { opacity: 0.8; } 100% { opacity: 0.5; } }
@keyframes ewd-leap { 0% { transform: translateX(0) translateY(0) rotate(-3deg); } 30% { transform: translateX(8px) translateY(-6px) rotate(0deg); } 60% { transform: translateX(16px) translateY(-2px) rotate(3deg); } 100% { transform: translateX(0) translateY(0) rotate(-3deg); } }
@keyframes ewd-bubbles { 0% { transform: scale(1) translateY(0); } 50% { transform: scale(1.2) translateY(-10px); } 100% { transform: scale(0.9) translateY(5px); } }
@keyframes ewd-ray { 0% { transform: translateX(0) scaleY(1); opacity: 0.3; } 50% { transform: translateX(5px) scaleY(1.1); opacity: 0.6; } 100% { transform: translateX(-5px) scaleY(0.9); opacity: 0.2; } }
@keyframes ewd-seaweed { 0% { transform: rotate(-5deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-3deg); } }

/* salts-stabilize-climate */
.scn-salts-stabilize-climate {
  background: linear-gradient(180deg, #fdd9a0 0%, #f9b663 30%, #d88f4b 60%, #8b6f4a 100%), radial-gradient(ellipse at 70% 20%, #fff2d0 0%, transparent 50%);
}
.scn-salts-stabilize-climate .sky-warm {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #ffe6b0 0%, #fbc478 40%, #e89f4a 70%, transparent 100%);
  animation: sk-sky 18s ease-in-out infinite alternate;
}
.scn-salts-stabilize-climate .ocean {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #2d7a8a 0%, #1b5b6e 50%, #0c3c4a 100%);
  border-radius: 0 0 30% 30% / 0 0 10% 10%;
  animation: sk-ocean 12s ease-in-out infinite alternate;
}
.scn-salts-stabilize-climate .horizon-line {
  position: absolute; top: 49%; left: 0; right: 0; height: 2px;
  background: linear-gradient(90deg, transparent, #ffe6b0 20%, #faca7a 50%, #ffe6b0 80%, transparent);
  box-shadow: 0 1px 3px rgba(255,230,176,0.5);
  animation: sk-horizon 8s ease-in-out infinite;
}
.scn-salts-stabilize-climate .salt-droplets {
  position: absolute; width: 8px; height: 8px;
  background: radial-gradient(circle, #f0e8d0 0%, #d4c4a0 80%);
  border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(240,232,208,0.4);
}
.scn-salts-stabilize-climate .droplet-a {
  top: 35%; left: 20%;
  animation: sk-droplet 6s ease-in-out infinite;
}
.scn-salts-stabilize-climate .droplet-b {
  top: 42%; left: 70%;
  width: 6px; height: 6px;
  animation: sk-droplet 5s ease-in-out infinite 2s;
}
.scn-salts-stabilize-climate .evaporation-curl {
  position: absolute; top: 28%; left: 40%; width: 40px; height: 20px;
  background: radial-gradient(ellipse at 50% 100%, rgba(255,230,176,0.25) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(4px);
  animation: sk-curl 10s ease-in-out infinite alternate;
}
.scn-salts-stabilize-climate .wind-sweep {
  position: absolute; top: 20%; left: -10%; width: 120%; height: 20px;
  background: linear-gradient(90deg, transparent 0%, rgba(255,230,176,0.08) 30%, rgba(255,230,176,0.12) 50%, transparent 80%);
  filter: blur(3px);
  animation: sk-wind 20s linear infinite;
}

@keyframes sk-sky {
  0% { opacity: 0.85; }
  50% { opacity: 1; background-position: 0% 50%; }
  100% { opacity: 0.9; background-position: 100% 50%; }
}
@keyframes sk-ocean {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-2px) scaleY(1.02); }
  100% { transform: translateY(0) scaleY(1); }
}
@keyframes sk-horizon {
  0% { opacity: 0.6; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes sk-droplet {
  0% { transform: translateY(0) scale(1); opacity: 0.4; }
  50% { transform: translateY(-15px) scale(0.8); opacity: 0.8; }
  100% { transform: translateY(0) scale(1); opacity: 0.4; }
}
@keyframes sk-curl {
  0% { transform: rotate(-5deg) scaleX(0.9); opacity: 0.3; }
  50% { transform: rotate(5deg) scaleX(1.1); opacity: 0.6; }
  100% { transform: rotate(-5deg) scaleX(0.9); opacity: 0.3; }
}
@keyframes sk-wind {
  0% { transform: translateX(0); }
  100% { transform: translateX(10%); }
}

/* infusoria-build-continents */
.scn-infusoria-build-continents {
  background: linear-gradient(180deg, #2d7a8a 0%, #1b5b6e 30%, #0c3c4a 70%, #062830 100%),
              radial-gradient(ellipse at 30% 60%, #3d9aaa 0%, transparent 60%);
}
.scn-infusoria-build-continents .bg-water {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, transparent 0%, rgba(13, 67, 79, 0.5) 100%);
  animation: ib-water 15s ease-in-out infinite alternate;
}
.scn-infusoria-build-continents .infusoria-1 {
  position: absolute; bottom: 30%; left: 25%; width: 40px; height: 30px;
  background: radial-gradient(ellipse at 50% 40%, #e8d4a0 0%, #b09050 100%);
  border-radius: 50% 50% 60% 40% / 50% 50% 40% 60%;
  box-shadow: 0 0 10px 3px rgba(232,212,160,0.3);
  animation: ib-inf1 4s ease-in-out infinite;
}
.scn-infusoria-build-continents .infusoria-2 {
  position: absolute; bottom: 20%; left: 55%; width: 30px; height: 20px;
  background: radial-gradient(ellipse at 30% 50%, #d4c090 0%, #a08040 100%);
  border-radius: 60% 40% 50% 50% / 40% 60% 50% 50%;
  animation: ib-inf2 5s ease-in-out infinite;
}
.scn-infusoria-build-continents .infusoria-3 {
  position: absolute; bottom: 40%; left: 70%; width: 25px; height: 18px;
  background: radial-gradient(ellipse at 60% 50%, #f0dcb0 0%, #b89850 100%);
  border-radius: 40% 60% 50% 50% / 50% 50% 40% 60%;
  animation: ib-inf3 3.5s ease-in-out infinite 1s;
}
.scn-infusoria-build-continents .sediment-base {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 50%, #2a1a0a 100%);
  border-radius: 40% 20% 0 0 / 60% 30% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.5);
  animation: ib-sed 20s ease-in-out infinite alternate;
}
.scn-infusoria-build-continents .suspended-grain {
  position: absolute; width: 4px; height: 4px;
  background: radial-gradient(circle, #d4c090 0%, #8a7040 100%);
  border-radius: 50%;
}
.scn-infusoria-build-continents .grain-1 {
  top: 60%; left: 30%;
  animation: ib-grain 9s ease-in-out infinite;
}
.scn-infusoria-build-continents .grain-2 {
  top: 70%; left: 70%;
  animation: ib-grain 7s ease-in-out infinite 3s;
}
.scn-infusoria-build-continents .tiny-shell {
  position: absolute; bottom: 12%; left: 15%; width: 12px; height: 8px;
  background: linear-gradient(135deg, #e8d4a0 0%, #c4ae70 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform: rotate(-20deg);
  animation: ib-shell 12s ease-in-out infinite alternate;
}

@keyframes ib-water {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes ib-inf1 {
  0% { transform: translateY(0) rotate(0deg) scaleX(1); }
  50% { transform: translateY(-3px) rotate(10deg) scaleX(0.9); }
  100% { transform: translateY(0) rotate(0deg) scaleX(1); }
}
@keyframes ib-inf2 {
  0% { transform: translateY(0) scale(1); }
  33% { transform: translateY(-4px) scale(1.1); }
  66% { transform: translateY(2px) scale(0.95); }
  100% { transform: translateY(0) scale(1); }
}
@keyframes ib-inf3 {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(5px) rotate(-15deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes ib-sed {
  0% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
  100% { transform: translateY(0); }
}
@keyframes ib-grain {
  0%,100% { transform: translateY(0) scale(1); opacity: 0.6; }
  50% { transform: translateY(-8px) scale(0.8); opacity: 0.2; }
}
@keyframes ib-shell {
  0% { transform: translateY(0) rotate(-20deg); }
  50% { transform: translateY(-2px) rotate(-15deg); }
  100% { transform: translateY(0) rotate(-20deg); }
}

/* double-current-life */
.scn-double-current-life {
  background: linear-gradient(180deg, #1b5b6e 0%, #0c3c4a 40%, #072830 70%, #031820 100%),
              radial-gradient(ellipse at 50% 30%, #3d9aaa 0%, transparent 60%);
}
.scn-double-current-life .column-bg {
  position: absolute; inset: 0;
  background: linear-gradient(0deg, transparent 0%, rgba(13, 67, 79, 0.4) 50%, transparent 100%);
  animation: dc-column 20s ease-in-out infinite alternate;
}
.scn-double-current-life .droplet-body {
  position: absolute; width: 24px; height: 30px; top: 30%; left: 50%; transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 60%, #f0e8d0 0%, #d4c4a0 40%, #a09060 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 20px 6px rgba(240,232,208,0.3);
  animation: dc-droplet 8s ease-in-out infinite;
}
.scn-double-current-life .droplet-glow {
  position: absolute; width: 40px; height: 50px; top: 25%; left: 45%;
  background: radial-gradient(circle, rgba(240,232,208,0.15) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(4px);
  animation: dc-glow 8s ease-in-out infinite;
}
.scn-double-current-life .rise-wake {
  position: absolute; width: 10px; height: 6px; top: 35%; left: 50%; transform: translateX(-50%);
  background: radial-gradient(ellipse, rgba(240,232,208,0.2) 0%, transparent 80%);
  border-radius: 50%;
  animation: dc-rise 8s ease-in-out infinite 0.5s;
}
.scn-double-current-life .sink-wake {
  position: absolute; width: 10px; height: 6px; top: 25%; left: 50%; transform: translateX(-50%);
  background: radial-gradient(ellipse, rgba(240,232,208,0.15) 0%, transparent 80%);
  border-radius: 50%;
  animation: dc-sink 8s ease-in-out infinite 0.5s;
}
.scn-double-current-life .mineral-particle {
  position: absolute; width: 3px; height: 3px;
  background: radial-gradient(circle, #d4c090 0%, #8a7040 100%);
  border-radius: 50%;
}
.scn-double-current-life .p1 {
  top: 60%; left: 45%;
  animation: dc-part 7s ease-in-out infinite;
}
.scn-double-current-life .p2 {
  top: 70%; left: 55%;
  animation: dc-part 6s ease-in-out infinite 1.5s;
}
.scn-double-current-life .microbe-trail {
  position: absolute; top: 45%; left: 48%; width: 30px; height: 4px;
  background: linear-gradient(90deg, transparent, rgba(240,232,208,0.1) 50%, transparent);
  border-radius: 50%;
  filter: blur(2px);
  animation: dc-trail 10s ease-in-out infinite alternate;
}

@keyframes dc-column {
  0% { opacity: 0.6; transform: scaleY(0.98); }
  50% { opacity: 1; transform: scaleY(1); }
  100% { opacity: 0.7; transform: scaleY(0.99); }
}
@keyframes dc-droplet {
  0% { transform: translate(-50%, 0) scale(1); }
  25% { transform: translate(-50%, -20px) scale(0.9); }
  50% { transform: translate(-50%, -40px) scale(0.8); }
  75% { transform: translate(-50%, -20px) scale(0.9); }
  100% { transform: translate(-50%, 0) scale(1); }
}
@keyframes dc-glow {
  0% { opacity: 0.3; }
  50% { opacity: 0.7; }
  100% { opacity: 0.4; }
}
@keyframes dc-rise {
  0%,100% { opacity: 0; transform: translate(-50%, 10px); }
  50% { opacity: 0.6; transform: translate(-50%, 0); }
}
@keyframes dc-sink {
  0%,100% { opacity: 0; transform: translate(-50%, -10px); }
  50% { opacity: 0.4; transform: translate(-50%, 0); }
}
@keyframes dc-part {
  0% { transform: translateY(0) scale(1); opacity: 0.3; }
  50% { transform: translateY(-15px) scale(0.6); opacity: 0.8; }
  100% { transform: translateY(0) scale(1); opacity: 0.3; }
}
@keyframes dc-trail {
  0% { transform: scaleX(0.5) translateX(0); opacity: 0.1; }
  50% { transform: scaleX(1.2) translateX(5px); opacity: 0.4; }
  100% { transform: scaleX(0.5) translateX(0); opacity: 0.1; }
}

/* ocean-life-abundant */
.scn-ocean-life-abundant {
  background: linear-gradient(180deg, #0c3c4a 0%, #1b5b6e 30%, #2d7a8a 60%, #3d9aaa 80%, #b0d0d8 100%),
              radial-gradient(ellipse at 60% 50%, #8ec8d0 0%, transparent 60%);
}
.scn-ocean-life-abundant .porthole-ring {
  position: absolute; top: 15%; left: 15%; right: 15%; bottom: 15%;
  background: radial-gradient(ellipse at 50% 50%, transparent 60%, #4a3a2a 62%, #3a2a1a 65%, #2a1a0a 68%, transparent 70%);
  border-radius: 50%;
  box-shadow: inset 0 0 40px rgba(0,0,0,0.6);
  animation: ol-ring 20s ease-in-out infinite alternate;
}
.scn-ocean-life-abundant .sea-outside {
  position: absolute; top: 18%; left: 18%; right: 18%; bottom: 18%;
  background: linear-gradient(180deg, #1b5b6e 0%, #2d7a8a 50%, #3d9aaa 100%);
  border-radius: 50%;
  box-shadow: inset 0 0 30px rgba(13,67,79,0.5);
  animation: ol-sea 15s ease-in-out infinite alternate;
}
.scn-ocean-life-abundant .jellyfish-far {
  position: absolute; top: 35%; left: 30%; width: 30px; height: 40px;
  background: radial-gradient(ellipse at 50% 30%, rgba(200,180,220,0.4) 0%, rgba(200,180,220,0.1) 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  filter: blur(2px);
  animation: ol-jelly-far 8s ease-in-out infinite;
}
.scn-ocean-life-abundant .jellyfish-near {
  position: absolute; bottom: 30%; left: 55%; width: 45px; height: 60px;
  background: radial-gradient(ellipse at 50% 30%, rgba(220,200,240,0.5) 0%, rgba(220,200,240,0.15) 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  filter: blur(3px);
  animation: ol-jelly-near 10s ease-in-out infinite alternate;
}
.scn-ocean-life-abundant .fish-school {
  position: absolute; width: 16px; height: 6px;
  background: radial-gradient(ellipse at 100% 50%, #d4c090 0%, #a08040 100%);
  border-radius: 50% 50% 30% 30% / 50% 50% 30% 30%;
}
.scn-ocean-life-abundant .fish-a {
  top: 25%; right: 20%;
  animation: ol-fish 6s ease-in-out infinite;
}
.scn-ocean-life-abundant .fish-b {
  top: 40%; right: 30%;
  width: 12px; height: 5px;
  animation: ol-fish 7s ease-in-out infinite 2s;
}
.scn-ocean-life-abundant .seafan-left {
  position: absolute; bottom: 22%; left: 22%; width: 30px; height: 40px;
  background: linear-gradient(135deg, #6a8a6a 0%, #4a6a4a 100%);
  border-radius: 0 80% 80% 0 / 0 80% 80% 0;
  transform: rotate(20deg);
  box-shadow: inset 0 0 10px rgba(0,0,0,0.3);
  animation: ol-fan 14s ease-in-out infinite alternate;
}
.scn-ocean-life-abundant .seafan-right {
  position: absolute; bottom: 25%; right: 22%; width: 25px; height: 35px;
  background: linear-gradient(225deg, #6a8a6a 0%, #4a6a4a 100%);
  border-radius: 80% 0 0 80% / 80% 0 0 80%;
  transform: rotate(-15deg);
  box-shadow: inset 0 0 10px rgba(0,0,0,0.3);
  animation: ol-fan 16s ease-in-out infinite alternate 2s;
}
.scn-ocean-life-abundant .nemo-silhouette {
  position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%);
  width: 50px; height: 80px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 20px 5px rgba(13, 67, 79, 0.5);
  animation: ol-nemo 6s ease-in-out infinite alternate;
}

@keyframes ol-ring {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes ol-sea {
  0% { background-position: 0% 50%; }
  50% { background-position: 100% 50%; }
  100% { background-position: 0% 50%; }
}
@keyframes ol-jelly-far {
  0% { transform: translateY(0) scale(0.9); opacity: 0.5; }
  50% { transform: translateY(-8px) scale(1); opacity: 0.8; }
  100% { transform: translateY(0) scale(0.9); opacity: 0.5; }
}
@keyframes ol-jelly-near {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-10px) scale(1.1); }
  100% { transform: translateY(0) scale(1); }
}
@keyframes ol-fish {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(-10px) rotate(-5deg); }
  50% { transform: translateX(-20px) rotate(0deg); }
  75% { transform: translateX(-10px) rotate(5deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes ol-fan {
  0% { transform-origin: bottom center; transform: rotate(20deg) scaleX(1); }
  50% { transform-origin: bottom center; transform: rotate(30deg) scaleX(0.95); }
  100% { transform-origin: bottom center; transform: rotate(20deg) scaleX(1); }
}
@keyframes ol-nemo {
  0% { transform: translateX(-50%) scaleY(1); }
  50% { transform: translateX(-50%) scaleY(1.03); }
  100% { transform: translateX(-50%) scaleY(1); }
}

/* questioning-gold-source */
.scn-questioning-gold-source {
  background: linear-gradient(180deg, #0e0e1e 0%, #1a1a30 40%, #2a2030 80%, #1c1420 100%),
              radial-gradient(ellipse at 50% 20%, #3a2a3a 0%, transparent 60%);
}
.scn-questioning-gold-source .wall-bg { position:absolute; inset:0; background: linear-gradient(180deg, transparent 0%, rgba(10,6,15,0.6) 100%); }
.scn-questioning-gold-source .wall-shadow { position:absolute; inset:0; background: radial-gradient(ellipse at 40% 60%, transparent 40%, rgba(0,0,20,0.7) 100%); }
.scn-questioning-gold-source .porthole { position:absolute; top:20%; right:15%; width:80px; height:80px; border-radius:50%; background: radial-gradient(circle at 40% 40%, #1a3040 0%, #050a14 100%); box-shadow: inset 0 0 30px rgba(0,20,40,0.8), 0 0 15px rgba(60,80,120,0.2); animation: qgs-porthole 8s ease-in-out infinite alternate; }
.scn-questioning-gold-source .gauge-face { position:absolute; bottom:30%; left:25%; width:50px; height:50px; border-radius:50%; background: radial-gradient(circle at 30% 30%, #2a3a4a 0%, #0e1218 100%); box-shadow: inset 0 0 15px #000, 0 0 10px rgba(100,130,180,0.3); animation: qgs-gauge 6s ease-in-out infinite; }
.scn-questioning-gold-source .gauge-needle { position:absolute; bottom:44%; left:31%; width:2px; height:22px; background: linear-gradient(180deg, #c0c0d0 0%, #707080 100%); transform-origin: bottom center; border-radius: 2px; animation: qgs-needle 12s ease-in-out infinite alternate; box-shadow: 0 0 4px #a0a0b0; }
.scn-questioning-gold-source .lamp-glow { position:absolute; top:8%; left:12%; width:30px; height:30px; border-radius:50%; background: radial-gradient(circle, #b08860 0%, #704830 70%); box-shadow: 0 0 40px 10px rgba(180,120,80,0.4), 0 0 80px 20px rgba(180,120,80,0.15); animation: qgs-lamp 4s ease-in-out infinite alternate; }
.scn-questioning-gold-source .figure-shadow { position:absolute; bottom:12%; left:35%; width:40px; height:70px; background: linear-gradient(180deg, #1a1418 0%, #0a080c 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: qgs-figure 5s ease-in-out infinite; }

@keyframes qgs-porthole { 0% { opacity:0.7; box-shadow: inset 0 0 30px rgba(0,20,40,0.8), 0 0 15px rgba(60,80,120,0.2); } 50% { opacity:0.9; box-shadow: inset 0 0 40px rgba(0,30,50,0.9), 0 0 25px rgba(80,100,140,0.3); } 100% { opacity:0.75; box-shadow: inset 0 0 30px rgba(0,20,40,0.8), 0 0 15px rgba(60,80,120,0.2); } }
@keyframes qgs-gauge { 0%,100% { transform: scale(1); box-shadow: inset 0 0 15px #000, 0 0 10px rgba(100,130,180,0.3); } 50% { transform: scale(1.02); box-shadow: inset 0 0 20px #000, 0 0 15px rgba(100,130,180,0.5); } }
@keyframes qgs-needle { 0% { transform: rotate(-20deg); } 30% { transform: rotate(-10deg); } 70% { transform: rotate(10deg); } 100% { transform: rotate(20deg); } }
@keyframes qgs-lamp { 0%,100% { opacity:0.6; box-shadow: 0 0 30px 5px rgba(180,120,80,0.2); } 50% { opacity:0.9; box-shadow: 0 0 50px 15px rgba(180,120,80,0.5); } }
@keyframes qgs-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(0deg); } }

/* rising-heat-mystery */
.scn-rising-heat-mystery {
  background: linear-gradient(180deg, #2a1a10 0%, #3a2515 30%, #1a0e06 100%),
              radial-gradient(ellipse at 60% 50%, #5a3a20 0%, transparent 70%);
}
.scn-rising-heat-mystery .bg-heat { position:absolute; inset:0; background: linear-gradient(180deg, rgba(200,120,40,0.08) 0%, transparent 60%); animation: rhm-heat-pulse 10s ease-in-out infinite; }
.scn-rising-heat-mystery .wall-panel { position:absolute; bottom:0; left:0; right:0; height:60%; background: linear-gradient(0deg, #1a0e06 0%, #2a1a10 100%); }
.scn-rising-heat-mystery .heat-source { position:absolute; bottom:45%; left:45%; width:60px; height:60px; border-radius:50%; background: radial-gradient(circle at 40% 40%, #d08030 0%, #a05010 60%, #703000 100%); box-shadow: 0 0 50px 20px rgba(200,100,30,0.6), 0 0 100px 40px rgba(200,100,30,0.3); animation: rhm-heat-glow 3s ease-in-out infinite alternate; }
.scn-rising-heat-mystery .gauge-box { position:absolute; top:25%; right:20%; width:40px; height:60px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%); border-radius: 4px; box-shadow: inset 0 2px 8px #000, 0 4px 12px rgba(0,0,0,0.5); }
.scn-rising-heat-mystery .gauge-pointer { position:absolute; top:32%; right:27%; width:4px; height:18px; background: #d08030; border-radius: 2px; transform-origin: bottom center; animation: rhm-pointer 5s ease-in-out infinite alternate; box-shadow: 0 0 6px #d08030; }
.scn-rising-heat-mystery .sweat-drops { position:absolute; top:12%; left:30%; width:100px; height:100px; background: radial-gradient(circle at 20% 30%, rgba(180,200,220,0.2) 0%, transparent 60%); filter: blur(8px); animation: rhm-sweat 6s ease-in-out infinite; }
.scn-rising-heat-mystery .figure-pensive { position:absolute; bottom:8%; left:25%; width:36px; height:60px; background: linear-gradient(180deg, #2a1a12 0%, #100a06 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rhm-figure 8s ease-in-out infinite; }
.scn-rising-heat-mystery .steam-wisp { position:absolute; top:5%; left:50%; width:20px; height:40px; background: radial-gradient(ellipse at bottom, rgba(220,200,180,0.2) 0%, transparent 100%); filter: blur(10px); transform-origin: bottom center; animation: rhm-steam 12s linear infinite; }

@keyframes rhm-heat-pulse { 0%,100% { opacity:0.4; } 50% { opacity:0.8; } }
@keyframes rhm-heat-glow { 0% { box-shadow: 0 0 40px 15px rgba(200,100,30,0.4), 0 0 80px 30px rgba(200,100,30,0.2); } 100% { box-shadow: 0 0 70px 30px rgba(200,100,30,0.6), 0 0 140px 50px rgba(200,100,30,0.35); } }
@keyframes rhm-pointer { 0% { transform: rotate(-10deg); } 30% { transform: rotate(15deg); } 60% { transform: rotate(5deg); } 100% { transform: rotate(30deg); } }
@keyframes rhm-sweat { 0%,100% { opacity:0.3; transform: scale(1); } 50% { opacity:0.6; transform: scale(1.1); } }
@keyframes rhm-figure { 0% { transform: translateX(0) translateY(0); } 25% { transform: translateX(8px) translateY(-2px); } 50% { transform: translateX(16px) translateY(0); } 75% { transform: translateX(24px) translateY(-1px); } 100% { transform: translateX(32px) translateY(0); } }
@keyframes rhm-steam { 0% { transform: translateY(0) scale(1); opacity:0.5; } 50% { transform: translateY(-60px) scale(2); opacity:0.8; } 100% { transform: translateY(-120px) scale(3); opacity:0; } }

/* nemo-explains-heat */
.scn-nemo-explains-heat {
  background: linear-gradient(180deg, #d8e8f0 0%, #b0c8d8 40%, #88a8b8 100%),
              radial-gradient(ellipse at 70% 30%, #ffffff88 0%, transparent 60%);
}
.scn-nemo-explains-heat .bg-calm { position:absolute; inset:0; background: linear-gradient(180deg, rgba(200,230,255,0.2) 0%, transparent 60%); }
.scn-nemo-explains-heat .viewing-port { position:absolute; top:15%; left:40%; width:100px; height:80px; border-radius: 30% 30% 20% 20%; background: radial-gradient(ellipse at 50% 40%, #2a4a5a 0%, #0a1a2a 100%); box-shadow: inset 0 0 40px rgba(0,20,30,0.8), 0 4px 20px rgba(0,0,0,0.4); animation: neh-port 14s ease-in-out infinite; }
.scn-nemo-explains-heat .water-outside { position:absolute; top:15%; left:40%; width:100px; height:80px; border-radius: 30% 30% 20% 20%; background: radial-gradient(ellipse at 50% 50%, #4a8aaa 0%, #1a4a6a 100%); opacity:0.4; animation: neh-water 6s ease-in-out infinite; }
.scn-nemo-explains-heat .bubble-cluster { position:absolute; top:25%; left:50%; width:60px; height:40px; background: radial-gradient(circle at 30% 20%, rgba(200,230,255,0.3) 0%, transparent 70%); filter: blur(4px); animation: neh-bubbles 9s linear infinite; }
.scn-nemo-explains-heat .nemo-pointing { position:absolute; bottom:12%; left:20%; width:40px; height:70px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: neh-nemo 5s ease-in-out infinite; }
.scn-nemo-explains-heat .aronnax-fig { position:absolute; bottom:10%; right:25%; width:35px; height:65px; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: neh-aronnax 6s ease-in-out infinite alternate; }
.scn-nemo-explains-heat .light-rays { position:absolute; top:8%; left:30%; width:150px; height:200px; background: linear-gradient(135deg, rgba(255,255,240,0.15) 0%, transparent 60%); filter: blur(20px); animation: neh-rays 20s ease-in-out infinite alternate; }

@keyframes neh-port { 0%,100% { box-shadow: inset 0 0 40px rgba(0,20,30,0.8), 0 4px 20px rgba(0,0,0,0.4); } 50% { box-shadow: inset 0 0 50px rgba(0,30,40,0.9), 0 6px 30px rgba(0,0,0,0.5); } }
@keyframes neh-water { 0% { opacity:0.3; transform: scale(1); } 50% { opacity:0.5; transform: scale(1.02); } 100% { opacity:0.35; transform: scale(1); } }
@keyframes neh-bubbles { 0% { transform: translateY(0) translateX(0); opacity:0.4; } 50% { transform: translateY(-30px) translateX(10px); opacity:0.7; } 100% { transform: translateY(-60px) translateX(20px); opacity:0; } }
@keyframes neh-nemo { 0% { transform: translateX(0) translateY(0) rotate(-3deg); } 25% { transform: translateX(5px) translateY(-2px) rotate(2deg); } 50% { transform: translateX(10px) translateY(0) rotate(0deg); } 75% { transform: translateX(15px) translateY(-1px) rotate(-1deg); } 100% { transform: translateX(20px) translateY(0) rotate(3deg); } }
@keyframes neh-aronnax { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-8px) rotate(4deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes neh-rays { 0% { opacity:0.2; transform: rotate(-5deg); } 50% { opacity:0.5; transform: rotate(2deg); } 100% { opacity:0.3; transform: rotate(-5deg); } }

/* near-santorini-volcano */
.scn-near-santorini-volcano {
  background: linear-gradient(180deg, #0a0808 0%, #1a1010 30%, #2a1818 60%, #0e0606 100%),
              radial-gradient(ellipse at 50% 80%, #5a2a1a 0%, transparent 70%);
}
.scn-near-santorini-volcano .bg-abyss { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 60%, #1a0a0a 0%, #050202 100%); }
.scn-near-santorini-volcano .volcano-cone { position:absolute; bottom:5%; left:50%; width:120px; height:80px; transform:translateX(-50%); background: linear-gradient(180deg, #2a1a0a 0%, #0a0602 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; box-shadow: inset 0 -20px 40px rgba(150,80,30,0.3); animation: nsv-cone 6s ease-in-out infinite; }
.scn-near-santorini-volcano .lava-glow { position:absolute; bottom:15%; left:50%; width:80px; height:60px; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 80%, #d08030 0%, #a05010 40%, transparent 70%); filter: blur(12px); animation: nsv-lava-glow 2s ease-in-out infinite alternate; }
.scn-near-santorini-volcano .lava-stream { position:absolute; bottom:5%; left:60%; width:40px; height:30px; background: linear-gradient(180deg, #c07020 0%, #803010 100%); border-radius: 40% 20% 30% 20%; filter: blur(6px); animation: nsv-lava-stream 4s ease-in-out infinite; }
.scn-near-santorini-volcano .smoke-plume { position:absolute; top:5%; left:45%; width:100px; height:60px; background: radial-gradient(ellipse at 50% 100%, rgba(100,80,60,0.4) 0%, transparent 80%); filter: blur(15px); animation: nsv-smoke 8s linear infinite; }
.scn-near-santorini-volcano .shock-bubble { position:absolute; top:40%; left:30%; width:30px; height:30px; border-radius:50%; background: radial-gradient(circle, rgba(200,120,50,0.2) 0%, transparent 70%); animation: nsv-shock 5s ease-in-out infinite; }
.scn-near-santorini-volcano .nautilus-ship { position:absolute; bottom:30%; left:20%; width:50px; height:20px; background: linear-gradient(90deg, #3a3a4a 0%, #2a2a3a 50%, #3a3a4a 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 4px 8px rgba(0,0,0,0.6); animation: nsv-nautilus 9s ease-in-out infinite; }
.scn-near-santorini-volcano .ember-spark { position:absolute; top:15%; left:55%; width:6px; height:6px; border-radius:50%; background: #d08030; box-shadow: 0 0 12px 4px rgba(200,100,30,0.8); animation: nsv-ember 3s ease-in-out infinite alternate; }

@keyframes nsv-cone { 0%,100% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.02) translateY(-2px); } }
@keyframes nsv-lava-glow { 0% { opacity:0.5; transform: translateX(-50%) scale(1); } 100% { opacity:0.9; transform: translateX(-50%) scale(1.2); } }
@keyframes nsv-lava-stream { 0% { transform: translateY(0) skewX(0deg); } 30% { transform: translateY(-4px) skewX(5deg); } 60% { transform: translateY(2px) skewX(-3deg); } 100% { transform: translateY(0) skewX(0deg); } }
@keyframes nsv-smoke { 0% { transform: translateY(0) scale(1); opacity:0.3; } 50% { transform: translateY(-40px) scale(1.5); opacity:0.5; } 100% { transform: translateY(-80px) scale(2); opacity:0; } }
@keyframes nsv-shock { 0% { transform: scale(1); opacity:0.2; } 50% { transform: scale(2); opacity:0.5; } 100% { transform: scale(1); opacity:0.2; } }
@keyframes nsv-nautilus { 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 nsv-ember { 0% { transform: translate(0, 0) scale(1); opacity:0.8; } 50% { transform: translate(5px, -10px) scale(1.3); opacity:1; } 100% { transform: translate(10px, -20px) scale(1); opacity:0.6; } }

/* dextrality-law – calm, sunlit interior */
.scn-dextrality-law { background: linear-gradient(180deg, #ffeac2 0%, #ffd6a0 30%, #c8a882 100%), radial-gradient(ellipse at 30% 20%, #ffeac2 0%, transparent 60%); }
.scn-dextrality-law .window { position:absolute; left:10%; top:10%; width:25%; height:40%; background: linear-gradient(180deg, #fff9e6 0%, #ffe6b0 100%); border-radius: 8px; box-shadow: inset 0 0 20px rgba(255,215,100,.5), 0 0 30px rgba(255,215,100,.3); animation: dxt-window 8s ease-in-out infinite alternate; }
.scn-dextrality-law .sunbeam { position:absolute; left:20%; top:10%; width:15%; height:60%; background: linear-gradient(135deg, rgba(255,245,200,.7), transparent 80%); transform: rotate(25deg); transform-origin: bottom left; animation: dxt-beam 12s ease-in-out infinite alternate; }
.scn-dextrality-law .gear { position:absolute; right:25%; bottom:35%; width:20%; height:20%; background: radial-gradient(circle at 50% 50%, #8a7a5a 30%, transparent 31%), radial-gradient(circle at 50% 50%, #8a7a5a 60%, transparent 61%), radial-gradient(circle at 50% 50%, #5a4a3a 20%, #3a2a1a 100%); border-radius:50%; box-shadow: 0 4px 12px rgba(0,0,0,.3); animation: dxt-gear 6s ease-in-out infinite alternate; }
.scn-dextrality-law .hand { position:absolute; right:28%; bottom:38%; width:8%; height:12%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 30% 60% 40% 60% / 50% 40% 60% 50%; transform: rotate(20deg); transform-origin: bottom left; animation: dxt-hand 4s ease-in-out infinite alternate; }
.scn-dextrality-law .shadow { position:absolute; left:35%; bottom:20%; width:40%; height:8%; background: linear-gradient(180deg, rgba(0,0,0,.15) 0%, transparent 100%); border-radius:50%; filter: blur(6px); }
.scn-dextrality-law .floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(0deg, #b09070 0%, #c8a882 40%, transparent 100%); }
@keyframes dxt-window { 0% { transform: scaleX(1); opacity:.9 } 50% { transform: scaleX(1.05); opacity:1 } 100% { transform: scaleX(1); opacity:.95 } }
@keyframes dxt-beam { 0% { transform: rotate(22deg) scaleY(1); opacity:.8 } 50% { transform: rotate(28deg) scaleY(1.1); opacity:1 } 100% { transform: rotate(22deg) scaleY(1); opacity:.85 } }
@keyframes dxt-gear { 0% { transform: rotate(0deg) } 50% { transform: rotate(8deg) } 100% { transform: rotate(0deg) } }
@keyframes dxt-hand { 0% { transform: rotate(18deg) translateX(0) } 50% { transform: rotate(22deg) translateX(2px) } 100% { transform: rotate(18deg) translateX(0) } }

/* stone-shatters-shell – tense, sunlit, shattering shell */
.scn-stone-shatters-shell { background: linear-gradient(180deg, #f5e6c6 0%, #d4b896 30%, #a08060 100%), radial-gradient(ellipse at 70% 20%, #fff2d6 0%, transparent 50%); }
.scn-stone-shatters-shell .shell { position:absolute; left:45%; bottom:40%; width:25%; height:20%; background: radial-gradient(ellipse at 50% 60%, #f0e0d0 30%, #d0b8a0 70%, #a08060 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; animation: stn-shell 0.8s ease-in-out 2; }
.scn-stone-shatters-shell .rock { position:absolute; left:60%; bottom:50%; width:8%; height:8%; background: radial-gradient(circle at 30% 30%, #705040 0%, #403020 100%); border-radius: 40% 50% 50% 30%; animation: stn-rock 0.6s ease-out 2; }
.scn-stone-shatters-shell .crack { position:absolute; left:50%; bottom:45%; width:20%; height:2%; background: #f0d8c0; filter: blur(1px); animation: stn-crack 0.4s linear 3; }
.scn-stone-shatters-shell .fragment1 { position:absolute; left:48%; bottom:50%; width:6%; height:6%; background: radial-gradient(circle at 50% 50%, #e8d0b0 0%, #b09070 100%); border-radius: 20% 40% 40% 40%; animation: stn-frag1 0.8s ease-out 2; }
.scn-stone-shatters-shell .fragment2 { position:absolute; left:52%; bottom:45%; width:5%; height:5%; background: radial-gradient(circle at 50% 50%, #e0c8a8 0%, #a08060 100%); border-radius: 50% 20% 30% 40%; animation: stn-frag2 0.7s ease-out 2; }
.scn-stone-shatters-shell .figure { position:absolute; left:40%; bottom:30%; width:12%; height:24%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 30% 40% 40% 30% / 60% 50% 50% 60%; transform-origin: bottom center; animation: stn-figure 1s ease-in-out infinite alternate; }
.scn-stone-shatters-shell .ground { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(0deg, #8a7050 0%, #b09070 30%, transparent 70%); }
@keyframes stn-shell { 0% { transform: scale(1); opacity:1 } 30% { transform: scale(1.1) rotate(5deg); opacity:.8 } 50% { transform: scale(1.2) rotate(-3deg) translate(10px, -5px); opacity:.5 } 100% { transform: scale(0.2) translate(30px, -20px); opacity:0 } }
@keyframes stn-rock { 0% { transform: translate(0, 0) rotate(0deg) scale(1) } 50% { transform: translate(-20px, 30px) rotate(90deg) scale(1.3) } 100% { transform: translate(-40px, 60px) rotate(180deg) scale(0.2); opacity:0 } }
@keyframes stn-crack { 0% { opacity:1; width:20% } 50% { opacity:.8; width:35% } 100% { opacity:0; width:50% } }
@keyframes stn-frag1 { 0% { transform: translate(0,0) rotate(0deg) scale(1); opacity:1 } 50% { transform: translate(25px, -15px) rotate(40deg) scale(0.6); opacity:.6 } 100% { transform: translate(50px, -30px) rotate(80deg) scale(0.2); opacity:0 } }
@keyframes stn-frag2 { 0% { transform: translate(0,0) rotate(0deg) scale(1); opacity:1 } 50% { transform: translate(-15px, 20px) rotate(-30deg) scale(0.5); opacity:.5 } 100% { transform: translate(-30px, 40px) rotate(-60deg) scale(0.1); opacity:0 } }
@keyframes stn-figure { 0% { transform: translateY(0) rotate(1deg) scaleY(1) } 50% { transform: translateY(-3px) rotate(-1deg) scaleY(0.98) } 100% { transform: translateY(0) rotate(1deg) scaleY(1) } }

/* conseil-remorse – tense, sunlit, remorseful figure */
.scn-conseil-remorse { background: linear-gradient(180deg, #f0dcc0 0%, #d4bca0 30%, #a88860 100%), radial-gradient(ellipse at 40% 30%, #fff0d0 0%, transparent 60%); }
.scn-conseil-remorse .shoulder { position:absolute; left:30%; bottom:30%; width:20%; height:30%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 40% 30% 30% / 60% 50% 50% 60%; animation: cnr-shoulder 3s ease-in-out infinite alternate; }
.scn-conseil-remorse .hand { position:absolute; left:28%; bottom:40%; width:10%; height:14%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 30% 40% 40% 30% / 50% 60% 40% 50%; transform: rotate(10deg); transform-origin: bottom left; animation: cnr-hand 4s ease-in-out infinite alternate; }
.scn-conseil-remorse .brokenshell { position:absolute; left:35%; bottom:28%; width:12%; height:8%; background: radial-gradient(ellipse at 50% 80%, #c8a880 0%, #a08060 70%); border-radius: 40% 40% 20% 20%; animation: cnr-shell 5s ease-in-out infinite alternate; }
.scn-conseil-remorse .tear { position:absolute; left:32%; bottom:45%; width:2%; height:4%; background: radial-gradient(circle at 50% 50%, #b8d8f0 0%, #7098c0 100%); border-radius: 50%; animation: cnr-tear 2s ease-in-out infinite; }
.scn-conseil-remorse .shadow { position:absolute; left:20%; bottom:10%; width:40%; height:10%; background: linear-gradient(180deg, rgba(0,0,0,.2) 0%, transparent 100%); border-radius:50%; filter: blur(10px); animation: cnr-shadow 4s ease-in-out infinite alternate; }
.scn-conseil-remorse .ground { position:absolute; bottom:0; left:0; right:0; height:28%; background: linear-gradient(0deg, #7a6040 0%, #a08060 30%, transparent 70%); }
@keyframes cnr-shoulder { 0% { transform: scaleY(1) translateX(0) } 50% { transform: scaleY(0.97) translateX(-2px) } 100% { transform: scaleY(1) translateX(0) } }
@keyframes cnr-hand { 0% { transform: rotate(8deg) translateY(0) } 50% { transform: rotate(12deg) translateY(-2px) } 100% { transform: rotate(8deg) translateY(0) } }
@keyframes cnr-shell { 0% { transform: rotate(0deg) scale(1); opacity:.7 } 50% { transform: rotate(3deg) scale(1.05); opacity:.9 } 100% { transform: rotate(-2deg) scale(1); opacity:.8 } }
@keyframes cnr-tear { 0% { transform: translateY(0) scaleY(1); opacity:1 } 50% { transform: translateY(8px) scaleY(1.5); opacity:.6 } 100% { transform: translateY(16px) scaleY(1); opacity:0 } }
@keyframes cnr-shadow { 0% { transform: scaleX(1); opacity:.5 } 50% { transform: scaleX(1.1); opacity:.7 } 100% { transform: scaleX(1); opacity:.5 } }

/* dugout-canoes – tense, sunlit, canoes advancing */
.scn-dugout-canoes { background: linear-gradient(180deg, #c8e0f0 0%, #7ab0d0 30%, #3a6880 100%), radial-gradient(ellipse at 50% 30%, #e0f0ff 0%, transparent 60%); }
.scn-dugout-canoes .water { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #3a6880 0%, #1a3850 100%); animation: dgc-water 6s ease-in-out infinite alternate; }
.scn-dugout-canoes .canoe1 { position:absolute; left:15%; bottom:30%; width:25%; height:6%; background: linear-gradient(0deg, #5a4030 0%, #8a6050 100%); border-radius: 60% 60% 20% 20%; animation: dgc-canoe1 4s ease-in-out infinite; }
.scn-dugout-canoes .canoe2 { position:absolute; left:50%; bottom:35%; width:28%; height:7%; background: linear-gradient(0deg, #4a3020 0%, #7a5040 100%); border-radius: 60% 60% 20% 20%; animation: dgc-canoe2 5s ease-in-out infinite; }
.scn-dugout-canoes .paddler1 { position:absolute; left:20%; bottom:36%; width:6%; height:10%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 40% 40% 30% 30% / 60% 50% 50% 60%; animation: dgc-paddler1 3s ease-in-out infinite; }
.scn-dugout-canoes .paddler2 { position:absolute; left:55%; bottom:42%; width:6%; height:10%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 40% 40% 30% 30% / 60% 50% 50% 60%; animation: dgc-paddler2 3.5s ease-in-out infinite; }
.scn-dugout-canoes .pole1 { position:absolute; left:18%; bottom:38%; width:2%; height:18%; background: linear-gradient(0deg, #8a7050 0%, #c0a080 100%); border-radius: 10%; transform: rotate(20deg); transform-origin: bottom center; animation: dgc-pole1 2s ease-in-out infinite; }
.scn-dugout-canoes .pole2 { position:absolute; left:53%; bottom:44%; width:2%; height:18%; background: linear-gradient(0deg, #7a6040 0%, #b09070 100%); border-radius: 10%; transform: rotate(-15deg); transform-origin: bottom center; animation: dgc-pole2 2.5s ease-in-out infinite; }
.scn-dugout-canoes .sunreflection { position:absolute; left:40%; bottom:45%; width:30%; height:10%; background: linear-gradient(180deg, rgba(255,240,200,.6) 0%, transparent 100%); border-radius:50%; filter: blur(6px); animation: dgc-sun 8s ease-in-out infinite alternate; }
@keyframes dgc-water { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-5px) scaleY(1.02) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes dgc-canoe1 { 0% { transform: translateX(0) rotate(-1deg) } 50% { transform: translateX(15px) rotate(1deg) } 100% { transform: translateX(30px) rotate(-1deg) } }
@keyframes dgc-canoe2 { 0% { transform: translateX(0) rotate(1deg) } 50% { transform: translateX(10px) rotate(-1deg) } 100% { transform: translateX(20px) rotate(1deg) } }
@keyframes dgc-paddler1 { 0% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(5deg) translateY(-2px) } 100% { transform: rotate(-5deg) translateY(0) } }
@keyframes dgc-paddler2 { 0% { transform: rotate(4deg) translateY(0) } 50% { transform: rotate(-4deg) translateY(-2px) } 100% { transform: rotate(4deg) translateY(0) } }
@keyframes dgc-pole1 { 0% { transform: rotate(18deg) } 50% { transform: rotate(24deg) } 100% { transform: rotate(18deg) } }
@keyframes dgc-pole2 { 0% { transform: rotate(-13deg) } 50% { transform: rotate(-18deg) } 100% { transform: rotate(-13deg) } }
@keyframes dgc-sun { 0% { opacity:.6; transform: scaleX(1) } 50% { opacity:1; transform: scaleX(1.2) } 100% { opacity:.6; transform: scaleX(1) } }

/* second-mediterranean-basin */
.scn-second-mediterranean-basin {
  background: linear-gradient(180deg, #0a0a1a 0%, #0d1520 30%, #0a0e12 60%, #05080a 100%),
              radial-gradient(ellipse at 50% 20%, #1a2a3a 0%, transparent 70%);
}
.scn-second-mediterranean-basin .deep-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #0f1a2e 0%, #03060a 100%);
  animation: smb-water 20s ease-in-out infinite alternate;
}
.scn-second-mediterranean-basin .water-column {
  position: absolute; inset: 10% 30% 0 30%; background: linear-gradient(180deg, rgba(10,20,40,0.8) 0%, transparent 100%);
  border-radius: 50% 50% 0 0; animation: smb-column 15s ease-in-out infinite alternate;
}
.scn-second-mediterranean-basin .submarine {
  position: absolute; bottom: 30%; left: 50%; width: 100px; height: 40px;
  transform: translate(-50%,0); background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; box-shadow: 0 8px 20px rgba(0,0,0,0.6);
  animation: smb-sub 12s ease-in-out infinite;
}
.scn-second-mediterranean-basin .propeller {
  position: absolute; bottom: 28%; left: 58%; width: 20px; height: 8px; background: #3a4a5a;
  border-radius: 0 50% 50% 0; transform: rotate(-15deg); animation: smb-prop 4s linear infinite;
}
.scn-second-mediterranean-basin .light-beam {
  position: absolute; bottom: 35%; left: 50%; width: 80px; height: 120px;
  transform: translate(-50%,0) rotate(5deg); background: linear-gradient(180deg, rgba(100,180,255,0.15) 0%, transparent 100%);
  border-radius: 50% 50% 0 0; filter: blur(8px); animation: smb-beam 6s ease-in-out infinite alternate;
}
.scn-second-mediterranean-basin .particles {
  position: absolute; inset: 20% 10% 10% 10%; background: radial-gradient(circle at 30% 50%, rgba(150,200,255,0.1) 0%, transparent 50%),
              radial-gradient(circle at 70% 80%, rgba(100,180,255,0.05) 0%, transparent 40%);
  animation: smb-particles 30s ease-in-out infinite alternate;
}
@keyframes smb-water { 0% { opacity:0.9; } 50% { opacity:0.7; } 100% { opacity:0.85; } }
@keyframes smb-column { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-4px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes smb-sub { 0% { transform: translate(-50%,0) rotate(0deg); } 50% { transform: translate(-50%,-3px) rotate(1deg); } 100% { transform: translate(-50%,0) rotate(0deg); } }
@keyframes smb-prop { 0% { transform: rotate(-15deg) scaleX(1); } 50% { transform: rotate(5deg) scaleX(0.9); } 100% { transform: rotate(-15deg) scaleX(1); } }
@keyframes smb-beam { 0% { opacity:0.3; transform: translate(-50%,0) rotate(3deg); } 50% { opacity:0.6; transform: translate(-50%,-5px) rotate(6deg); } 100% { opacity:0.2; transform: translate(-50%,0) rotate(3deg); } }
@keyframes smb-particles { 0% { background-position: 0% 0%; } 100% { background-position: 10% 20%; } }

/* shipwrecks-on-seafloor */
.scn-shipwrecks-on-seafloor {
  background: linear-gradient(180deg, #070e14 0%, #0a121c 40%, #0c1a2a 70%, #040810 100%),
              radial-gradient(ellipse at 50% 90%, #1a2a3a 0%, transparent 70%);
}
.scn-shipwrecks-on-seafloor .seafloor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1a2a20 0%, #0e1a14 100%); border-radius: 30% 70% 0 0 / 40% 60% 0 0;
  box-shadow: inset 0 12px 30px rgba(0,0,0,0.8); animation: ssf-floor 25s ease-in-out infinite alternate;
}
.scn-shipwrecks-on-seafloor .sediment {
  position: absolute; bottom: 0; left: 0; right: 0; height: 10%;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); border-radius: 0; animation: ssf-sediment 40s ease-in-out infinite alternate;
}
.scn-shipwrecks-on-seafloor .wreck-hull {
  position: absolute; bottom: 15%; left: 20%; width: 140px; height: 60px;
  background: linear-gradient(180deg, #3a4a3a 0%, #2a3a2a 100%); border-radius: 20% 20% 40% 40% / 50% 50% 30% 30%;
  transform: rotate(-5deg); box-shadow: 0 8px 20px rgba(0,0,0,0.7); animation: ssf-hull 30s ease-in-out infinite alternate;
}
.scn-shipwrecks-on-seafloor .wreck-mast {
  position: absolute; bottom: 40%; left: 30%; width: 8px; height: 80px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 20%;
  transform: rotate(10deg); box-shadow: 0 4px 8px rgba(0,0,0,0.5); animation: ssf-mast 20s ease-in-out infinite alternate;
}
.scn-shipwrecks-on-seafloor .coral-clump {
  position: absolute; bottom: 20%; left: 60%; width: 40px; height: 30px;
  background: radial-gradient(circle at 30% 30%, #6a7a5a 0%, #3a4a2a 70%);
  border-radius: 50% 50% 40% 40% / 60% 50% 40% 30%; transform: scale(1.2); animation: ssf-coral 15s ease-in-out infinite alternate;
}
.scn-shipwrecks-on-seafloor .anchor {
  position: absolute; bottom: 10%; left: 45%; width: 20px; height: 40px;
  background: radial-gradient(ellipse at 50% 20%, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 30% 30% / 40% 40% 20% 20%; transform: rotate(20deg); animation: ssf-anchor 35s ease-in-out infinite alternate;
}
.scn-shipwrecks-on-seafloor .rust-debris {
  position: absolute; bottom: 8%; left: 70%; width: 25px; height: 15px;
  background: linear-gradient(135deg, #5a3a2a 20%, #4a2a1a 80%);
  border-radius: 30% 70% 20% 80%; transform: rotate(45deg); animation: ssf-rust 25s ease-in-out infinite alternate;
}
@keyframes ssf-floor { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-2px) scaleY(0.98); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes ssf-sediment { 0% { opacity:0.7; } 50% { opacity:0.9; } 100% { opacity:0.8; } }
@keyframes ssf-hull { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-2px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes ssf-mast { 0% { transform: rotate(10deg) translateY(0); } 50% { transform: rotate(8deg) translateY(-1px); } 100% { transform: rotate(10deg) translateY(0); } }
@keyframes ssf-coral { 0% { transform: scale(1.2) rotate(0deg); } 50% { transform: scale(1.15) rotate(2deg); } 100% { transform: scale(1.2) rotate(0deg); } }
@keyframes ssf-anchor { 0% { transform: rotate(20deg); } 50% { transform: rotate(22deg); } 100% { transform: rotate(20deg); } }
@keyframes ssf-rust { 0% { transform: rotate(45deg) scale(1); } 50% { transform: rotate(40deg) scale(0.95); } 100% { transform: rotate(45deg) scale(1); } }

/* eerie-silent-wrecks */
.scn-eerie-silent-wrecks {
  background: linear-gradient(180deg, #020408 0%, #060c14 40%, #0a1420 70%, #040810 100%),
              radial-gradient(ellipse at 50% 30%, #102030 0%, transparent 80%);
}
.scn-eerie-silent-wrecks .abyss-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #0a1420 0%, #020408 100%);
  animation: esw-abyss 30s ease-in-out infinite alternate;
}
.scn-eerie-silent-wrecks .wreck-left {
  position: absolute; bottom: 10%; left: 5%; width: 100px; height: 120px;
  background: linear-gradient(180deg, #1a2a2a 0%, #0a1a1a 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 20% 20%; transform: rotate(10deg);
  box-shadow: inset 0 0 40px rgba(0,0,0,0.8); animation: esw-wreck-l 25s ease-in-out infinite alternate;
}
.scn-eerie-silent-wrecks .wreck-right {
  position: absolute; bottom: 15%; right: 5%; width: 90px; height: 100px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 20% 40% 10% 10% / 30% 50% 15% 15%; transform: rotate(-15deg);
  box-shadow: inset 0 0 30px rgba(0,0,0,0.8); animation: esw-wreck-r 35s ease-in-out infinite alternate;
}
.scn-eerie-silent-wrecks .electric-sheet {
  position: absolute; top: 20%; left: 30%; width: 120px; height: 80px;
  background: radial-gradient(ellipse at 50% 50%, rgba(100,200,255,0.15) 0%, transparent 70%);
  border-radius: 60% 40% 50% 50%; filter: blur(10px); animation: esw-electric 8s ease-in-out infinite alternate;
}
.scn-eerie-silent-wrecks .seaweed {
  position: absolute; bottom: 5%; left: 20%; width: 20px; height: 60px;
  background: linear-gradient(180deg, #2a4a2a 0%, #0a1a0a 100%);
  border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%; transform: rotate(-5deg);
  animation: esw-seaweed 12s ease-in-out infinite alternate;
}
.scn-eerie-silent-wrecks .glow-sparkle {
  position: absolute; top: 15%; left: 50%; width: 10px; height: 10px;
  background: radial-gradient(circle, rgba(150,220,255,0.8) 0%, transparent 70%);
  border-radius: 50%; box-shadow: 0 0 20px 5px rgba(100,200,255,0.4);
  animation: esw-sparkle 4s ease-in-out infinite alternate;
}
@keyframes esw-abyss { 0% { opacity:0.9; } 50% { opacity:0.7; } 100% { opacity:0.85; } }
@keyframes esw-wreck-l { 0% { transform: rotate(10deg) translateY(0); } 50% { transform: rotate(9deg) translateY(-2px); } 100% { transform: rotate(10deg) translateY(0); } }
@keyframes esw-wreck-r { 0% { transform: rotate(-15deg) translateY(0); } 50% { transform: rotate(-14deg) translateY(-3px); } 100% { transform: rotate(-15deg) translateY(0); } }
@keyframes esw-electric { 0% { opacity:0.2; transform: scale(1); } 50% { opacity:0.6; transform: scale(1.1); } 100% { opacity:0.3; transform: scale(0.95); } }
@keyframes esw-seaweed { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(0deg) translateY(-1px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes esw-sparkle { 0% { opacity:0.2; transform: scale(0.5); } 50% { opacity:1; transform: scale(1.2); } 100% { opacity:0.3; transform: scale(0.6); } }

/* the-atlas-wreck */
.scn-the-atlas-wreck {
  background: linear-gradient(180deg, #050a0e 0%, #08121a 40%, #0a1820 70%, #040810 100%),
              radial-gradient(ellipse at 50% 50%, #102a30 0%, transparent 70%);
}
.scn-the-atlas-wreck .deep-ocean {
  position: absolute; inset: 0; background: linear-gradient(180deg, #0a1820 0%, #020408 100%);
  animation: taw-ocean 30s ease-in-out infinite alternate;
}
.scn-the-atlas-wreck .hull {
  position: absolute; bottom: 20%; left: 50%; width: 160px; height: 80px;
  transform: translate(-50%,0); background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%);
  border-radius: 20% 20% 30% 30% / 40% 40% 20% 20%; box-shadow: inset 0 0 40px rgba(0,0,0,0.8);
  animation: taw-hull 20s ease-in-out infinite alternate;
}
.scn-the-atlas-wreck .torn-side {
  position: absolute; bottom: 25%; left: 35%; width: 50px; height: 60px;
  background: linear-gradient(135deg, #3a2a1a 0%, #1a0e0a 100%);
  border-radius: 10% 60% 20% 40% / 30% 50% 20% 40%; transform: rotate(-10deg);
  animation: taw-torn 15s ease-in-out infinite alternate;
}
.scn-the-atlas-wreck .funnel {
  position: absolute; bottom: 55%; left: 50%; width: 30px; height: 40px;
  transform: translate(-50%,0) rotate(5deg); background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 20% 20% / 20% 20% 30% 30%; box-shadow: 0 4px 8px rgba(0,0,0,0.6);
  animation: taw-funnel 18s ease-in-out infinite alternate;
}
.scn-the-atlas-wreck .paddle-wheel {
  position: absolute; bottom: 35%; left: 65%; width: 40px; height: 40px;
  background: radial-gradient(circle at 50% 50%, #4a3a2a 30%, #2a1a0a 70%);
  border-radius: 50%; box-shadow: inset 0 0 20px rgba(0,0,0,0.7);
  animation: taw-paddle 25s linear infinite;
}
.scn-the-atlas-wreck .rudder-chain {
  position: absolute; bottom: 15%; left: 70%; width: 8px; height: 50px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 20%; transform: rotate(30deg); animation: taw-chain 20s ease-in-out infinite alternate;
}
.scn-the-atlas-wreck .stern-board {
  position: absolute; bottom: 28%; left: 30%; width: 40px; height: 20px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 10% 20% 30% 10%; transform: rotate(-20deg); animation: taw-board 22s ease-in-out infinite alternate;
}
.scn-the-atlas-wreck .rust-particles {
  position: absolute; inset: 10% 20% 5% 20%;
  background: radial-gradient(circle at 30% 40%, rgba(100,60,30,0.1) 0%, transparent 40%),
              radial-gradient(circle at 70% 60%, rgba(80,50,20,0.05) 0%, transparent 30%);
  animation: taw-rust 35s ease-in-out infinite alternate;
}
@keyframes taw-ocean { 0% { opacity:0.9; } 50% { opacity:0.8; } 100% { opacity:0.95; } }
@keyframes taw-hull { 0% { transform: translate(-50%,0) rotate(0deg); } 50% { transform: translate(-50%,-2px) rotate(1deg); } 100% { transform: translate(-50%,0) rotate(0deg); } }
@keyframes taw-torn { 0% { transform: rotate(-10deg) scale(1); } 50% { transform: rotate(-8deg) scale(1.02); } 100% { transform: rotate(-10deg) scale(1); } }
@keyframes taw-funnel { 0% { transform: translate(-50%,0) rotate(5deg); } 50% { transform: translate(-50%,-1px) rotate(6deg); } 100% { transform: translate(-50%,0) rotate(5deg); } }
@keyframes taw-paddle { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }
@keyframes taw-chain { 0% { transform: rotate(30deg); } 50% { transform: rotate(28deg); } 100% { transform: rotate(30deg); } }
@keyframes taw-board { 0% { transform: rotate(-20deg) translateY(0); } 50% { transform: rotate(-18deg) translateY(-1px); } 100% { transform: rotate(-20deg) translateY(0); } }
@keyframes taw-rust { 0% { background-position: 0% 0%; } 100% { background-position: 5% 10%; } }

.scn-rare-carnivore {
  background: linear-gradient(180deg, #ffd599 0%, #fbb168 30%, #c47b4a 60%, #2a4a5a 100%);
  background-blend-mode: normal;
}
.scn-rare-carnivore .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #ffe8b5 0%, #ffb86c 50%, transparent 100%);
  animation: rnc-sky 12s ease-in-out infinite alternate;
}
.scn-rare-carnivore .sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(180deg, #3a7a8a 0%, #1a3a4a 100%);
  border-radius: 60% 40% 0 0 / 40% 60% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.5);
  animation: rnc-sea 10s ease-in-out infinite alternate;
}
.scn-rare-carnivore .sun {
  position: absolute; top: 12%; right: 20%; width: 60px; height: 60px;
  background: radial-gradient(circle at 40% 40%, #fff5d0 0%, #ffcc66 40%, #ff9933 100%);
  border-radius: 50%;
  box-shadow: 0 0 60px 30px rgba(255,204,102,0.5), 0 0 120px 60px rgba(255,153,51,0.2);
  animation: rnc-sun 8s ease-in-out infinite alternate;
}
.scn-rare-carnivore .rays {
  position: absolute; top: 5%; left: 0; right: 0; height: 50%;
  background: repeating-linear-gradient(110deg, transparent 0px, rgba(255,230,180,0.08) 2px, transparent 4px);
  animation: rnc-rays 14s linear infinite;
}
.scn-rare-carnivore .figure {
  position: absolute; bottom: 32%; left: 40%; width: 28px; height: 60px;
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: rnc-figure 5s ease-in-out infinite;
}
.scn-rare-carnivore .animal {
  position: absolute; bottom: 34%; left: 44%; width: 22px; height: 12px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40%;
  transform: rotate(10deg);
  animation: rnc-animal 5s ease-in-out infinite alternate;
}
.scn-rare-carnivore .mist {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 40%;
  background: linear-gradient(0deg, rgba(200,180,160,0.15) 0%, transparent 100%);
  filter: blur(10px);
  animation: rnc-mist 18s ease-in-out infinite alternate;
}
@keyframes rnc-sky { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes rnc-sea { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(0) } }
@keyframes rnc-sun { 0% { box-shadow: 0 0 40px 20px rgba(255,204,102,0.4), 0 0 80px 40px rgba(255,153,51,0.15); } 50% { box-shadow: 0 0 70px 30px rgba(255,204,102,0.6), 0 0 140px 80px rgba(255,153,51,0.3); } 100% { box-shadow: 0 0 50px 25px rgba(255,204,102,0.45), 0 0 100px 50px rgba(255,153,51,0.2); } }
@keyframes rnc-rays { 0% { transform: translateX(0) } 100% { transform: translateX(80px) } }
@keyframes rnc-figure { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(4px) rotate(2deg) } 50% { transform: translateX(8px) rotate(-1deg) } 75% { transform: translateX(12px) rotate(1deg) } 100% { transform: translateX(16px) rotate(0) } }
@keyframes rnc-animal { 0% { transform: rotate(8deg) translateY(0) } 50% { transform: rotate(12deg) translateY(-2px) } 100% { transform: rotate(8deg) translateY(0) } }
@keyframes rnc-mist { 0% { opacity:0.3 } 50% { opacity:0.6 } 100% { opacity:0.2 } }

.scn-mirrored-images {
  background: linear-gradient(180deg, #1a3a5a 0%, #2a5a7a 40%, #3a7a9a 100%);
}
.scn-mirrored-images .bg-deep {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #0a1a2a 0%, transparent 100%);
  animation: mir-deep 15s ease-in-out infinite alternate;
}
.scn-mirrored-images .bg-mid {
  position: absolute; inset: 20% 0 10% 0;
  background: linear-gradient(180deg, rgba(42,90,122,0.5) 0%, rgba(58,122,154,0.3) 100%);
  animation: mir-mid 12s ease-in-out infinite alternate;
}
.scn-mirrored-images .surface {
  position: absolute; top: 20%; left: 0; right: 0; height: 8%;
  background: linear-gradient(180deg, rgba(200,230,255,0.6) 0%, rgba(100,160,200,0.4) 100%);
  border-radius: 60% 40% 50% 50% / 100% 100% 0 0;
  transform: translateY(-50%);
  animation: mir-surface 8s ease-in-out infinite alternate;
}
.scn-mirrored-images .reflection-1 {
  position: absolute; top: 28%; left: 20%; width: 40px; height: 50px;
  background: linear-gradient(180deg, rgba(200,220,240,0.3) 0%, rgba(100,150,200,0.2) 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform: rotate(180deg) scale(0.8);
  animation: mir-reflect 10s ease-in-out infinite;
}
.scn-mirrored-images .reflection-2 {
  position: absolute; top: 30%; right: 25%; width: 30px; height: 40px;
  background: linear-gradient(180deg, rgba(200,220,240,0.25) 0%, rgba(100,150,200,0.15) 100%);
  border-radius: 50% 50% 40% 40% / 50% 50% 40% 40%;
  transform: rotate(180deg) scale(0.7);
  animation: mir-reflect2 12s ease-in-out infinite;
}
.scn-mirrored-images .rays {
  position: absolute; top: 5%; left: 0; right: 0; height: 40%;
  background: repeating-linear-gradient(100deg, transparent 0px, rgba(180,220,255,0.06) 3px, transparent 6px);
  animation: mir-rays 20s linear infinite;
}
.scn-mirrored-images .sand {
  position: absolute; bottom: 0; left: 0; right: 0; height: 12%;
  background: linear-gradient(180deg, #4a5a3a 0%, #3a4a2a 100%);
  border-radius: 20% 80% 0 0 / 30% 70% 0 0;
  box-shadow: inset 0 4px 10px rgba(0,0,0,0.4);
  animation: mir-sand 16s ease-in-out infinite alternate;
}
@keyframes mir-deep { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.6 } }
@keyframes mir-mid { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes mir-surface { 0% { transform: translateY(-50%) skewX(-2deg) } 50% { transform: translateY(-50%) skewX(2deg) } 100% { transform: translateY(-50%) skewX(-2deg) } }
@keyframes mir-reflect { 0% { transform: rotate(180deg) scale(0.8) translateY(0) } 50% { transform: rotate(180deg) scale(0.85) translateY(-4px) } 100% { transform: rotate(180deg) scale(0.8) translateY(0) } }
@keyframes mir-reflect2 { 0% { transform: rotate(180deg) scale(0.7) translateY(0) } 50% { transform: rotate(180deg) scale(0.75) translateY(-3px) } 100% { transform: rotate(180deg) scale(0.7) translateY(0) } }
@keyframes mir-rays { 0% { transform: translateX(-20px) } 100% { transform: translateX(60px) } }
@keyframes mir-sand { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }

.scn-clouds-and-whitecaps {
  background: linear-gradient(180deg, #1a3a5a 0%, #2a5a7a 40%, #3a7a9a 100%);
}
.scn-clouds-and-whitecaps .bg-deep {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #0a1a2a 0%, transparent 100%);
  animation: clc-deep 14s ease-in-out infinite alternate;
}
.scn-clouds-and-whitecaps .bg-surface {
  position: absolute; top: 15%; left: -10%; right: -10%; height: 50%;
  background: radial-gradient(ellipse at 50% 0%, rgba(150,200,230,0.5) 0%, transparent 70%);
  border-radius: 50% 50% 0 0;
  animation: clc-surface 9s ease-in-out infinite alternate;
}
.scn-clouds-and-whitecaps .cloud-1 {
  position: absolute; top: 5%; left: 15%; width: 120px; height: 30px;
  background: linear-gradient(180deg, rgba(200,230,255,0.35) 0%, rgba(200,230,255,0.1) 100%);
  border-radius: 50%;
  filter: blur(8px);
  animation: clc-cloud1 40s linear infinite;
}
.scn-clouds-and-whitecaps .cloud-2 {
  position: absolute; top: 10%; right: 20%; width: 90px; height: 22px;
  background: linear-gradient(180deg, rgba(200,230,255,0.3) 0%, rgba(200,230,255,0.05) 100%);
  border-radius: 50%;
  filter: blur(6px);
  animation: clc-cloud2 55s linear infinite reverse;
}
.scn-clouds-and-whitecaps .whitecap-1 {
  position: absolute; top: 22%; left: 30%; width: 40px; height: 6px;
  background: rgba(255,255,255,0.6);
  border-radius: 50%;
  filter: blur(3px);
  animation: clc-wc1 7s ease-in-out infinite alternate;
}
.scn-clouds-and-whitecaps .whitecap-2 {
  position: absolute; top: 25%; right: 40%; width: 30px; height: 4px;
  background: rgba(255,255,255,0.5);
  border-radius: 50%;
  filter: blur(2px);
  animation: clc-wc2 9s ease-in-out infinite alternate-reverse;
}
.scn-clouds-and-whitecaps .density-ripple {
  position: absolute; top: 18%; left: 0; right: 0; height: 30%;
  background: repeating-linear-gradient(90deg, transparent 0px, rgba(200,230,255,0.04) 2px, transparent 4px);
  animation: clc-ripple 12s linear infinite;
}
@keyframes clc-deep { 0% { opacity:0.6 } 50% { opacity:0.9 } 100% { opacity:0.5 } }
@keyframes clc-surface { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.08) } 100% { transform: scaleY(1) } }
@keyframes clc-cloud1 { 0% { transform: translateX(-60px) } 100% { transform: translateX(130vw) } }
@keyframes clc-cloud2 { 0% { transform: translateX(0) } 100% { transform: translateX(-100vw) } }
@keyframes clc-wc1 { 0% { transform: translateX(0) scaleX(1) } 50% { transform: translateX(6px) scaleX(1.3) } 100% { transform: translateX(-4px) scaleX(0.9) } }
@keyframes clc-wc2 { 0% { transform: translateX(0) scaleX(1) } 50% { transform: translateX(-5px) scaleX(1.2) } 100% { transform: translateX(3px) scaleX(0.8) } }
@keyframes clc-ripple { 0% { transform: translateY(0) } 100% { transform: translateY(-12px) } }

.scn-shadows-of-birds {
  background: linear-gradient(180deg, #7ab8d0 0%, #4a8aaa 40%, #2a5a7a 100%);
}
.scn-shadows-of-birds .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #b0d8f0 0%, #60a0c0 100%);
  animation: shb-sky 10s ease-in-out infinite alternate;
}
.scn-shadows-of-birds .ocean {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #2a5a7a 0%, #1a3a5a 100%);
  border-radius: 70% 30% 0 0 / 40% 60% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.4);
  animation: shb-ocean 11s ease-in-out infinite alternate;
}
.scn-shadows-of-birds .bird-1 {
  position: absolute; top: 12%; left: 20%; width: 50px; height: 16px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  clip-path: polygon(0% 50%, 20% 0%, 50% 30%, 80% 0%, 100% 50%, 80% 100%, 50% 70%, 20% 100%);
  transform: rotate(-5deg);
  animation: shb-bird1 5s ease-in-out infinite;
}
.scn-shadows-of-birds .bird-2 {
  position: absolute; top: 20%; right: 15%; width: 40px; height: 12px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  clip-path: polygon(0% 50%, 20% 0%, 50% 30%, 80% 0%, 100% 50%, 80% 100%, 50% 70%, 20% 100%);
  transform: rotate(-10deg) scale(0.8);
  animation: shb-bird2 6s ease-in-out infinite alternate;
}
.scn-shadows-of-birds .shadow-1 {
  position: absolute; bottom: 38%; left: 15%; width: 30px; height: 10px;
  background: rgba(0,20,40,0.4);
  clip-path: polygon(0% 50%, 20% 0%, 50% 30%, 80% 0%, 100% 50%, 80% 100%, 50% 70%, 20% 100%);
  filter: blur(2px);
  animation: shb-shadow1 5s ease-in-out infinite;
}
.scn-shadows-of-birds .shadow-2 {
  position: absolute; bottom: 35%; right: 20%; width: 24px; height: 8px;
  background: rgba(0,20,40,0.3);
  clip-path: polygon(0% 50%, 20% 0%, 50% 30%, 80% 0%, 100% 50%, 80% 100%, 50% 70%, 20% 100%);
  filter: blur(2px);
  animation: shb-shadow2 6s ease-in-out infinite alternate;
}
.scn-shadows-of-birds .sun-glint {
  position: absolute; top: 8%; right: 25%; width: 20px; height: 20px;
  background: radial-gradient(circle at 30% 30%, #fff8e0 0%, #ffcc66 40%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 15px rgba(255,204,102,0.5);
  animation: shb-glint 4s ease-in-out infinite alternate;
}
@keyframes shb-sky { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes shb-ocean { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes shb-bird1 { 0% { transform: rotate(-5deg) translateX(0) scale(1) } 25% { transform: rotate(-5deg) translateX(10px) scale(1.02) } 50% { transform: rotate(-8deg) translateX(20px) scale(0.98) } 75% { transform: rotate(-5deg) translateX(30px) scale(1.01) } 100% { transform: rotate(-5deg) translateX(40px) scale(1) } }
@keyframes shb-bird2 { 0% { transform: rotate(-10deg) translateX(0) scale(0.8) } 50% { transform: rotate(-10deg) translateX(-15px) scale(0.85) } 100% { transform: rotate(-10deg) translateX(0) scale(0.8) } }
@keyframes shb-shadow1 { 0% { transform: translateX(0) scaleX(1) } 25% { transform: translateX(8px) scaleX(0.9) } 50% { transform: translateX(16px) scaleX(1.1) } 75% { transform: translateX(24px) scaleX(0.95) } 100% { transform: translateX(32px) scaleX(1) } }
@keyframes shb-shadow2 { 0% { transform: translateX(0) scaleX(1) } 50% { transform: translateX(-12px) scaleX(0.8) } 100% { transform: translateX(0) scaleX(1) } }
@keyframes shb-glint { 0% { opacity:0.6 } 50% { opacity:1 } 100% { opacity:0.7 } }

/* Scene 1 - nemo-original-concept (dark, overcast, silhouette) */
.scn-nemo-original-concept {
  background:
    linear-gradient(180deg, #1a1e2e 0%, #2c324a 40%, #3e4a5e 70%, #484f5c 100%),
    radial-gradient(ellipse at 50% 100%, #3e4a5e 0%, transparent 70%);
}
.scn-nemo-original-concept .sky-nm1 {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #2a3044 0%, #3a4258 40%, transparent 100%);
  animation: nm1-sky 18s ease-in-out infinite alternate;
}
.scn-nemo-original-concept .sea-nm1 {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #1a223a 0%, #0e1428 100%);
  box-shadow: inset 0 8px 20px rgba(0, 0, 0, 0.6);
  animation: nm1-sea 20s ease-in-out infinite alternate;
}
.scn-nemo-original-concept .sub-hull-nm1 {
  position: absolute; bottom: 28%; left: 50%; width: 140px; height: 50px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a3e4a 0%, #1a1e2a 100%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  box-shadow: 0 -4px 8px rgba(0,0,0,0.5), inset 0 2px 4px rgba(80,90,110,0.3);
  animation: nm1-hull 14s ease-in-out infinite;
}
.scn-nemo-original-concept .sub-conning-nm1 {
  position: absolute; bottom: 42%; left: 50%; width: 40px; height: 30px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a4e5a 0%, #2a2e3a 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%;
  box-shadow: 0 -2px 6px rgba(0,0,0,0.6);
}
.scn-nemo-original-concept .porthole-nm1 {
  position: absolute; bottom: 35%; left: 45%; width: 14px; height: 14px;
  background: radial-gradient(circle, #b8c4d0 0%, #4a5a6a 70%);
  border-radius: 50%; box-shadow: 0 0 12px 3px rgba(100,130,160,0.3), 0 0 24px 6px rgba(100,130,160,0.1);
  animation: nm1-glow 4s ease-in-out infinite alternate;
}
.scn-nemo-original-concept .ripple-nm1 {
  position: absolute; bottom: 30%; left: 30%; width: 60px; height: 10px;
  background: radial-gradient(ellipse, rgba(150,180,200,0.15) 0%, transparent 100%);
  border-radius: 50%; filter: blur(3px);
  animation: nm1-ripple 6s ease-in-out infinite alternate;
}
.scn-nemo-original-concept .fog-nm1 {
  position: absolute; top: 10%; left: 0; right: 0; height: 40%;
  background: radial-gradient(ellipse at 30% 50%, rgba(180,200,220,0.12) 0%, transparent 70%);
  filter: blur(10px);
  animation: nm1-fog 30s linear infinite alternate;
}
@keyframes nm1-sky { 0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.6; } }
@keyframes nm1-sea { 0% { transform: translateY(0); } 50% { transform: translateY(2px); } 100% { transform: translateY(-1px); } }
@keyframes nm1-hull { 0% { transform: translateX(-50%) rotate(-1deg); } 50% { transform: translateX(-50%) translateY(-2px) rotate(1deg); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes nm1-glow { 0% { opacity: 0.5; box-shadow: 0 0 8px 2px rgba(100,130,160,0.2); } 50% { opacity: 1; box-shadow: 0 0 18px 5px rgba(140,170,200,0.5); } 100% { opacity: 0.6; box-shadow: 0 0 10px 3px rgba(100,130,160,0.3); } }
@keyframes nm1-ripple { 0% { transform: scale(0.8) translateX(0); } 50% { transform: scale(1.1) translateX(5px); } 100% { transform: scale(0.9) translateX(-3px); } }
@keyframes nm1-fog { 0% { transform: translateX(-10px); opacity: 0.5; } 50% { transform: translateX(15px); opacity: 0.8; } 100% { transform: translateX(-5px); opacity: 0.6; } }

/* Scene 2 - publication-struggles (tense, overcast, interior) */
.scn-publication-struggles {
  background:
    linear-gradient(135deg, #3a3e48 0%, #4a5060 30%, #2e323c 60%, #1a1e28 100%),
    radial-gradient(ellipse at 40% 60%, #4a5060 0%, transparent 70%);
}
.scn-publication-struggles .wall-ps2 {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #4a4e5a 0%, #2a2e3a 100%);
  box-shadow: inset 0 4px 12px rgba(0,0,0,0.4);
  animation: ps2-wall 15s ease-in-out infinite alternate;
}
.scn-publication-struggles .desk-ps2 {
  position: absolute; bottom: 10%; left: 10%; right: 10%; height: 25%;
  background: linear-gradient(180deg, #5a4e3a 0%, #3a2e1a 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 -4px 10px rgba(0,0,0,0.5);
  animation: ps2-desk 8s ease-in-out infinite;
}
.scn-publication-struggles .papers-ps2 {
  position: absolute; bottom: 25%; left: 30%; width: 80px; height: 60px;
  background: linear-gradient(135deg, #d4c8b0 0%, #b8a88a 50%, #a09070 100%);
  border-radius: 2px; box-shadow: 2px 2px 6px rgba(0,0,0,0.3);
  transform: rotate(-2deg);
  animation: ps2-papers 6s ease-in-out infinite alternate;
}
.scn-publication-struggles .hand-ps2 {
  position: absolute; bottom: 22%; left: 45%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #b8a88a 0%, #7a6a56 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(10deg);
  animation: ps2-hand 3s ease-in-out infinite alternate;
}
.scn-publication-struggles .crumple-ps2 {
  position: absolute; bottom: 18%; left: 55%; width: 14px; height: 14px;
  background: radial-gradient(circle, #c8b898 0%, #988a72 100%);
  border-radius: 50%; box-shadow: 1px 1px 3px rgba(0,0,0,0.2);
  transform: rotate(45deg);
  animation: ps2-crumple 4s ease-in-out infinite;
}
.scn-publication-struggles .lamp-glow-ps2 {
  position: absolute; bottom: 40%; left: 20%; width: 10px; height: 12px;
  background: radial-gradient(circle, #e8d8a8 0%, #c8b060 70%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 20px 8px rgba(200,180,100,0.3), 0 0 40px 15px rgba(200,180,100,0.1);
  animation: ps2-lamp 5s ease-in-out infinite alternate;
}
@keyframes ps2-wall { 0% { opacity: 0.8; } 50% { opacity: 0.95; } 100% { opacity: 0.85; } }
@keyframes ps2-desk { 0% { transform: translateY(0) rotate(-0.5deg); } 50% { transform: translateY(-1px) rotate(0.5deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes ps2-papers { 0% { transform: rotate(-2deg) translateX(0); } 50% { transform: rotate(1deg) translateX(4px); } 100% { transform: rotate(-3deg) translateX(-2px); } }
@keyframes ps2-hand { 0% { transform: translateX(0) rotate(10deg); } 50% { transform: translateX(5px) rotate(15deg); } 100% { transform: translateX(0) rotate(8deg); } }
@keyframes ps2-crumple { 0% { transform: rotate(45deg) scale(1); } 50% { transform: rotate(90deg) scale(1.1); } 100% { transform: rotate(45deg) scale(0.95); } }
@keyframes ps2-lamp { 0% { opacity: 0.7; box-shadow: 0 0 12px 4px rgba(200,180,100,0.2); } 50% { opacity: 1; box-shadow: 0 0 28px 10px rgba(220,200,120,0.5); } 100% { opacity: 0.8; box-shadow: 0 0 16px 6px rgba(200,180,100,0.3); } }

/* Scene 3 - verne-science-fiction (calm, overcast, rocket on pad) */
.scn-verne-science-fiction {
  background:
    linear-gradient(180deg, #6a7a88 0%, #8a9aa8 40%, #a0b0be 70%, #b0c0ce 100%),
    radial-gradient(ellipse at 50% 100%, #8a9aa8 0%, transparent 70%);
}
.scn-verne-science-fiction .sky-vs3 {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #7a8a9a 0%, #9aaaba 40%, transparent 100%);
  animation: vs3-sky 20s ease-in-out infinite alternate;
}
.scn-verne-science-fiction .ground-vs3 {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #5a6a7a 0%, #3a4a5a 100%);
  border-radius: 60% 40% 0 0 / 30% 20% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.3);
}
.scn-verne-science-fiction .rocket-body-vs3 {
  position: absolute; bottom: 35%; left: 50%; width: 50px; height: 100px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #b0c0ce 0%, #8a9aaa 50%, #6a7a8a 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 20% 20%;
  box-shadow: 0 -4px 12px rgba(0,0,0,0.2);
  animation: vs3-rocket 12s ease-in-out infinite;
}
.scn-verne-science-fiction .rocket-nose-vs3 {
  position: absolute; bottom: 72%; left: 50%; width: 30px; height: 40px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #c0d0de 0%, #a0b0c0 100%);
  border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%;
  box-shadow: 0 -2px 6px rgba(0,0,0,0.15);
}
.scn-verne-science-fiction .rocket-fins-vs3 {
  position: absolute; bottom: 30%; left: 44%; width: 24px; height: 30px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #7a8a9a 0%, #5a6a7a 100%);
  border-radius: 20% 20% 50% 50% / 10% 10% 60% 60%;
  clip-path: polygon(0 0, 100% 30%, 100% 100%, 0 70%);
  box-shadow: -2px 0 4px rgba(0,0,0,0.2);
}
.scn-verne-science-fiction .exhaust-cloud-vs3 {
  position: absolute; bottom: 25%; left: 50%; width: 60px; height: 30px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse, rgba(180,200,220,0.3) 0%, transparent 100%);
  border-radius: 50%; filter: blur(6px);
  animation: vs3-exhaust 5s ease-in-out infinite alternate;
}
.scn-verne-science-fiction .flag-vs3 {
  position: absolute; bottom: 60%; left: 30%; width: 8px; height: 20px;
  background: linear-gradient(180deg, #c0b090 0%, #a09070 100%);
  border-radius: 2px;
  transform: rotate(-10deg);
  animation: vs3-flag 6s ease-in-out infinite;
}
@keyframes vs3-sky { 0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.75; } }
@keyframes vs3-rocket { 0% { transform: translateX(-50%) rotate(0deg) scale(1); } 50% { transform: translateX(-50%) translateY(-2px) rotate(0.5deg) scale(1.01); } 100% { transform: translateX(-50%) rotate(0deg) scale(1); } }
@keyframes vs3-exhaust { 0% { transform: translateX(-50%) scaleX(1); opacity: 0.4; } 50% { transform: translateX(-50%) scaleX(1.3); opacity: 0.7; } 100% { transform: translateX(-50%) scaleX(0.9); opacity: 0.3; } }
@keyframes vs3-flag { 0% { transform: rotate(-10deg) scaleY(1); } 50% { transform: rotate(-5deg) scaleY(1.1); } 100% { transform: rotate(-12deg) scaleY(0.95); } }

/* Scene 4 - travelog-style (calm, overcast, underwater seascape) */
.scn-travelog-style {
  background:
    linear-gradient(180deg, #1a2a3a 0%, #2a3a4a 30%, #3a4a5a 60%, #2a3a4a 100%),
    radial-gradient(ellipse at 30% 60%, #3a4a5a 0%, transparent 70%);
}
.scn-travelog-style .deep-ocean-tl4 {
  position: absolute; inset: 0 0 10% 0;
  background: linear-gradient(180deg, #1a2a3e 0%, #2a3a4e 50%, transparent 100%);
  animation: tl4-deep 25s ease-in-out infinite alternate;
}
.scn-travelog-style .mid-ocean-tl4 {
  position: absolute; bottom: 10%; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #2a3a4e 0%, #1a2a3e 100%);
  box-shadow: inset 0 4px 20px rgba(0,0,0,0.5);
}
.scn-travelog-style .seafloor-tl4 {
  position: absolute; bottom: 0; left: 0; right: 0; height: 18%;
  background: linear-gradient(180deg, #2a3a3a 0%, #1a2a2a 100%);
  border-radius: 30% 70% 0 0 / 40% 50% 0 0;
  box-shadow: inset 0 6px 12px rgba(0,0,0,0.4);
  animation: tl4-floor 20s ease-in-out infinite;
}
.scn-travelog-style .nautilus-tl4 {
  position: absolute; bottom: 32%; left: 30%; width: 120px; height: 40px;
  background: linear-gradient(180deg, #4a5a6a 0%, #2a3a4a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 -2px 6px rgba(0,0,0,0.4);
  transform: rotate(-5deg);
  animation: tl4-nautilus 18s ease-in-out infinite alternate;
}
.scn-travelog-style .periscope-tl4 {
  position: absolute; bottom: 55%; left: 55%; width: 6px; height: 50px;
  background: linear-gradient(180deg, #5a6a7a 0%, #3a4a5a 100%);
  border-radius: 20% 20% 0 0;
  transform: rotate(3deg);
  animation: tl4-peri 10s ease-in-out infinite;
}
.scn-travelog-style .fish1-tl4 {
  position: absolute; bottom: 20%; left: 10%; width: 20px; height: 8px;
  background: linear-gradient(180deg, #6a7a8a 0%, #4a5a6a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: tl4-fish1 14s ease-in-out infinite alternate;
}
.scn-travelog-style .fish2-tl4 {
  position: absolute; bottom: 25%; left: 60%; width: 16px; height: 6px;
  background: linear-gradient(180deg, #7a8a9a 0%, #5a6a7a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: tl4-fish2 17s ease-in-out infinite alternate;
  animation-delay: -5s;
}
.scn-travelog-style .bubble-tl4 {
  position: absolute; bottom: 40%; left: 38%; width: 8px; height: 8px;
  background: radial-gradient(circle, rgba(180,210,230,0.2) 0%, transparent 100%);
  border-radius: 50%; border: 1px solid rgba(180,210,230,0.1);
  animation: tl4-bubble 7s ease-in-out infinite;
}
@keyframes tl4-deep { 0% { opacity: 0.6; } 50% { opacity: 0.8; } 100% { opacity: 0.65; } }
@keyframes tl4-floor { 0% { transform: translateY(0); } 50% { transform: translateY(2px); } 100% { transform: translateY(0); } }
@keyframes tl4-nautilus { 0% { transform: rotate(-5deg) translateX(0); } 50% { transform: rotate(-3deg) translateX(4px); } 100% { transform: rotate(-6deg) translateX(-2px); } }
@keyframes tl4-peri { 0% { transform: rotate(3deg) scaleY(1); } 50% { transform: rotate(2deg) scaleY(1.02); } 100% { transform: rotate(4deg) scaleY(0.98); } }
@keyframes tl4-fish1 { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(10px) rotate(-5deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes tl4-fish2 { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-8px) rotate(4deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes tl4-bubble { 0% { transform: translateY(0) scale(1); opacity: 0.4; } 50% { transform: translateY(-15px) scale(1.2); opacity: 0.7; } 100% { transform: translateY(0) scale(0.9); opacity: 0.2; } }

.scn-darkness-deepens {
  background: 
    radial-gradient(ellipse at 50% 10%, #0a122a 0%, transparent 60%),
    linear-gradient(180deg, #060a1a 0%, #0f1a3a 30%, #1a224a 60%, #0a0a1a 100%);
}

.scn-darkness-deepens .abyss-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, transparent 20%, #02040e 60%, #01020a 100%);
  animation: dd-sink 20s ease-in-out infinite alternate;
}

.scn-darkness-deepens .light-shaft {
  position: absolute; top: 0; left: 50%; width: 30%; height: 60%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, rgba(70,120,220,0.15), transparent 70%);
  clip-path: polygon(30% 0%, 70% 0%, 55% 100%, 45% 100%);
  animation: dd-shaft 8s ease-in-out infinite alternate;
}

.scn-darkness-deepens .diver {
  position: absolute; bottom: 18%; left: 50%; width: 22px; height: 40px;
  background: radial-gradient(ellipse at 50% 50%, #121a2a, #050810);
  border-radius: 45% 45% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dd-diver 6s ease-in-out infinite;
}

.scn-darkness-deepens .lantern-a,
.scn-darkness-deepens .lantern-b {
  position: absolute; width: 8px; height: 8px; border-radius: 50%;
  background: radial-gradient(circle, #a0d0ff, #3070b0 70%, transparent);
  box-shadow: 0 0 20px 6px rgba(60,120,200,0.4);
}

.scn-darkness-deepens .lantern-a { bottom: 25%; left: 48%; animation: dd-lantern 4s ease-in-out infinite; }
.scn-darkness-deepens .lantern-b { bottom: 30%; left: 53%; animation: dd-lantern 4s ease-in-out infinite 2s; }

.scn-darkness-deepens .particle {
  position: absolute; border-radius: 50%;
  background: rgba(100,160,255,0.6);
  filter: blur(2px);
  animation: dd-drift linear infinite;
}

.scn-darkness-deepens .p1 { width: 4px; height: 4px; top: 10%; left: 20%; animation-duration: 15s; }
.scn-darkness-deepens .p2 { width: 3px; height: 3px; top: 30%; left: 70%; animation-duration: 22s; animation-delay: 3s; }
.scn-darkness-deepens .p3 { width: 5px; height: 5px; top: 50%; left: 40%; animation-duration: 18s; animation-delay: 6s; }

@keyframes dd-sink { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes dd-shaft { 0% { transform: translateX(-50%) scaleY(1); opacity: 0.6; } 50% { transform: translateX(-50%) scaleY(1.05); opacity: 0.9; } 100% { transform: translateX(-50%) scaleY(0.95); opacity: 0.5; } }
@keyframes dd-diver {
  0% { transform: translateX(0) translateY(0) rotate(-2deg); }
  25% { transform: translateX(5px) translateY(-3px) rotate(1deg); }
  50% { transform: translateX(-3px) translateY(-6px) rotate(-1deg); }
  75% { transform: translateX(4px) translateY(-2px) rotate(2deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes dd-lantern {
  0%, 100% { transform: scale(1) translate(0, 0); opacity: 0.7; }
  50% { transform: scale(1.2) translate(2px, -2px); opacity: 1; }
}
@keyframes dd-drift {
  0% { transform: translateY(0) translateX(0) scale(1); opacity: 0.3; }
  25% { transform: translateY(-20px) translateX(10px) scale(1.2); opacity: 0.7; }
  50% { transform: translateY(-40px) translateX(-5px) scale(0.8); opacity: 0.5; }
  75% { transform: translateY(-60px) translateX(15px) scale(1.1); opacity: 0.8; }
  100% { transform: translateY(-80px) translateX(0) scale(1); opacity: 0; }
}

/* ---- electric-lanterns-illumine ---- */

.scn-electric-lanterns-illumine {
  background: 
    radial-gradient(ellipse at 50% 40%, #1a3860 0%, transparent 60%),
    linear-gradient(180deg, #0a2850 0%, #1a4070 40%, #0f2a4a 100%);
}

.scn-electric-lanterns-illumine .water-bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, rgba(40,80,140,0.2) 0%, transparent 50%, rgba(20,40,80,0.1) 100%);
  animation: el-water 12s ease-in-out infinite alternate;
}

.scn-electric-lanterns-illumine .figure-left,
.scn-electric-lanterns-illumine .figure-right {
  position: absolute; bottom: 15%; width: 24px; height: 48px;
  background: radial-gradient(ellipse at 50% 50%, #1a2a3a, #0f1a2a);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
}

.scn-electric-lanterns-illumine .figure-left { left: 30%; transform-origin: bottom center; animation: el-swim-l 5s ease-in-out infinite; }
.scn-electric-lanterns-illumine .figure-right { right: 30%; transform-origin: bottom center; animation: el-swim-r 5s ease-in-out infinite 1s; }

.scn-electric-lanterns-illumine .lantern-l,
.scn-electric-lanterns-illumine .lantern-r {
  position: absolute; width: 12px; height: 16px;
  background: linear-gradient(135deg, #80c0ff, #4090e0);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 30px 10px rgba(80,160,255,0.5), 0 0 60px 20px rgba(80,160,255,0.2);
}

.scn-electric-lanterns-illumine .lantern-l { bottom: 32%; left: 32%; animation: el-glow 3s ease-in-out infinite; }
.scn-electric-lanterns-illumine .lantern-r { bottom: 35%; right: 32%; animation: el-glow 3s ease-in-out infinite 1.5s; }

.scn-electric-lanterns-illumine .glow-core {
  position: absolute; bottom: 30%; left: 50%; width: 50%; height: 40%;
  transform: translate(-50%, 0);
  background: radial-gradient(ellipse at 50% 60%, rgba(100,180,255,0.15), transparent 70%);
  animation: el-pulse 4s ease-in-out infinite;
}

.scn-electric-lanterns-illumine .bubbles {
  position: absolute; inset: 0;
  background: radial-gradient(2px 2px at 20% 30%, rgba(200,220,255,0.4), transparent),
    radial-gradient(3px 3px at 60% 45%, rgba(180,210,255,0.3), transparent),
    radial-gradient(2px 2px at 80% 20%, rgba(200,220,255,0.5), transparent),
    radial-gradient(4px 4px at 40% 70%, rgba(180,200,255,0.2), transparent);
  background-size: 200px 200px;
  animation: el-float 15s linear infinite;
}

.scn-electric-lanterns-illumine .beam-l,
.scn-electric-lanterns-illumine .beam-r {
  position: absolute; top: 55%; width: 10%; height: 40%;
  background: linear-gradient(180deg, rgba(80,160,255,0.1), transparent);
  clip-path: polygon(40% 0%, 60% 0%, 80% 100%, 20% 100%);
  animation: el-beam 6s ease-in-out infinite;
}

.scn-electric-lanterns-illumine .beam-l { left: 30%; transform-origin: top center; }
.scn-electric-lanterns-illumine .beam-r { right: 30%; transform-origin: top center; animation-delay: 1s; }

@keyframes el-water { 0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.8; } }
@keyframes el-swim-l {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-5px) rotate(3deg); }
  50% { transform: translateY(-2px) rotate(-2deg); }
  75% { transform: translateY(-4px) rotate(1deg); }
}
@keyframes el-swim-r {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-4px) rotate(-3deg); }
  50% { transform: translateY(-1px) rotate(2deg); }
  75% { transform: translateY(-3px) rotate(-1deg); }
}
@keyframes el-glow {
  0%, 100% { box-shadow: 0 0 30px 10px rgba(80,160,255,0.4); opacity: 0.9; }
  50% { box-shadow: 0 0 40px 15px rgba(100,180,255,0.6); opacity: 1; }
}
@keyframes el-pulse {
  0% { transform: translate(-50%, 0) scale(1); opacity: 0.6; }
  50% { transform: translate(-50%, -5px) scale(1.05); opacity: 0.8; }
  100% { transform: translate(-50%, 0) scale(0.95); opacity: 0.5; }
}
@keyframes el-float {
  0% { background-position: 0 0; }
  100% { background-position: 0 200px; }
}
@keyframes el-beam {
  0%, 100% { transform: scaleY(1) scaleX(1); opacity: 0.3; }
  50% { transform: scaleY(1.1) scaleX(0.9); opacity: 0.5; }
}

/* ---- sparse-vegetation-plunge ---- */

.scn-sparse-vegetation-plunge {
  background: 
    radial-gradient(ellipse at 50% 20%, #1a3a5a 0%, transparent 60%),
    linear-gradient(180deg, #0a1a3a 0%, #0f254a 40%, #050a1a 100%);
}

.scn-sparse-vegetation-plunge .depth-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, transparent 30%, #020610 70%, #010308 100%);
  animation: sv-sink 18s ease-in-out infinite alternate;
}

.scn-sparse-vegetation-plunge .light-source {
  position: absolute; top: 5%; left: 50%; width: 60%; height: 30%;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 100%, rgba(100,180,255,0.15), transparent);
  animation: sv-light 8s ease-in-out infinite;
}

.scn-sparse-vegetation-plunge .diver-body {
  position: absolute; top: 30%; left: 50%; width: 22px; height: 44px;
  background: radial-gradient(ellipse at 50% 50%, #132a3a, #08141f);
  border-radius: 45% 45% 40% 40% / 60% 60% 40% 40%;
  transform-origin: top center;
  animation: sv-dive 7s ease-in-out infinite;
}

.scn-sparse-vegetation-plunge .diver-lamp {
  position: absolute; top: 28%; left: 52%; width: 8px; height: 10px;
  background: radial-gradient(circle, #a0d0ff, #3060a0);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px rgba(60,120,200,0.3);
  animation: sv-lamp 4s ease-in-out infinite;
}

.scn-sparse-vegetation-plunge .seafloor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #1a302a, #0a1812);
  border-radius: 30% 40% 0 0 / 100% 100% 0 0;
  box-shadow: inset 0 4px 10px rgba(0,0,0,0.4);
}

.scn-sparse-vegetation-plunge .plant-a,
.scn-sparse-vegetation-plunge .plant-b {
  position: absolute; bottom: 15%; width: 10px;
  background: linear-gradient(180deg, #2a5a3a, #0f2a1a);
  border-radius: 50% 50% 0 0;
}

.scn-sparse-vegetation-plunge .plant-a { left: 25%; height: 40px; transform-origin: bottom center; animation: sv-sway 5s ease-in-out infinite; }
.scn-sparse-vegetation-plunge .plant-b { right: 30%; height: 30px; transform-origin: bottom center; animation: sv-sway 5s ease-in-out infinite 1.5s; }

.scn-sparse-vegetation-plunge .sand-ripple {
  position: absolute; bottom: 5%; left: 10%; width: 80%; height: 8px;
  background: linear-gradient(90deg, transparent, rgba(180,200,170,0.2), transparent);
  border-radius: 50%;
  animation: sv-ripple 10s linear infinite;
}

@keyframes sv-sink { 0% { opacity: 0.9; } 50% { opacity: 0.7; } 100% { opacity: 0.8; } }
@keyframes sv-light {
  0%, 100% { transform: translateX(-50%) scaleY(1); opacity: 0.5; }
  50% { transform: translateX(-50%) scaleY(1.1); opacity: 0.8; }
}
@keyframes sv-dive {
  0% { transform: translateX(-50%) translateY(0) rotate(0deg); }
  20% { transform: translateX(-50%) translateY(5px) rotate(3deg); }
  40% { transform: translateX(-50%) translateY(10px) rotate(-2deg); }
  60% { transform: translateX(-50%) translateY(15px) rotate(1deg); }
  80% { transform: translateX(-50%) translateY(20px) rotate(-1deg); }
  100% { transform: translateX(-50%) translateY(25px) rotate(0deg); }
}
@keyframes sv-lamp {
  0%, 100% { transform: scale(1); opacity: 0.8; }
  50% { transform: scale(1.15); opacity: 1; }
}
@keyframes sv-sway {
  0%, 100% { transform: rotate(0deg); }
  25% { transform: rotate(5deg); }
  50% { transform: rotate(-3deg); }
  75% { transform: rotate(4deg); }
}
@keyframes sv-ripple {
  0% { transform: translateX(-10%) scaleX(1); opacity: 0.3; }
  50% { transform: translateX(0) scaleX(1.2); opacity: 0.5; }
  100% { transform: translateX(10%) scaleX(1); opacity: 0; }
}

/* ---- lights-attract-creatures ---- */

.scn-lights-attract-creatures {
  background: 
    radial-gradient(ellipse at 50% 40%, #1a2850 0%, transparent 50%),
    linear-gradient(180deg, #0a1230 0%, #0f1e3a 40%, #020408 100%);
}

.scn-lights-attract-creatures .deep-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, transparent 10%, #01020a 40%, #000102 100%);
  animation: la-deep 15s ease-in-out infinite alternate;
}

.scn-lights-attract-creatures .group-glow {
  position: absolute; bottom: 30%; left: 50%; width: 40%; height: 30%;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 60%, rgba(80,160,255,0.12), transparent 70%);
  animation: la-glow 5s ease-in-out infinite;
}

.scn-lights-attract-creatures .diver-nemo,
.scn-lights-attract-creatures .diver-conseil {
  position: absolute; bottom: 20%; width: 20px; height: 40px;
  background: radial-gradient(ellipse at 50% 50%, #15202a, #0a1015);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
}

.scn-lights-attract-creatures .diver-nemo { left: 40%; transform-origin: bottom center; animation: la-swim 6s ease-in-out infinite; }
.scn-lights-attract-creatures .diver-conseil { right: 40%; transform-origin: bottom center; animation: la-swim 6s ease-in-out infinite 1.2s; }

.scn-lights-attract-creatures .lantern-1,
.scn-lights-attract-creatures .lantern-2 {
  position: absolute; width: 10px; height: 14px;
  background: linear-gradient(135deg, #90c8ff, #3078b8);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 25px 8px rgba(70,150,230,0.4), 0 0 50px 15px rgba(70,150,230,0.15);
  animation: la-lantern 3s ease-in-out infinite;
}

.scn-lights-attract-creatures .lantern-1 { bottom: 32%; left: 42%; animation-delay: 0s; }
.scn-lights-attract-creatures .lantern-2 { bottom: 35%; right: 42%; animation-delay: 1.5s; }

.scn-lights-attract-creatures .creature {
  position: absolute; border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  background: radial-gradient(circle at 30% 30%, #1a2a3a, #0a0f15);
  box-shadow: 0 0 20px 2px rgba(0,0,0,0.5);
  animation: la-creature linear infinite;
}

.scn-lights-attract-creatures .c1 { width: 50px; height: 30px; top: 15%; left: 10%; animation-duration: 12s; transform: rotate(-5deg); }
.scn-lights-attract-creatures .c2 { width: 40px; height: 25px; top: 40%; right: 5%; animation-duration: 14s; animation-delay: 3s; transform: rotate(10deg); }
.scn-lights-attract-creatures .c3 { width: 60px; height: 35px; top: 5%; left: 60%; animation-duration: 16s; animation-delay: 6s; transform: rotate(8deg); }

@keyframes la-deep { 0% { opacity: 0.8; } 50% { opacity: 0.6; } 100% { opacity: 0.9; } }
@keyframes la-glow {
  0%, 100% { transform: translateX(-50%) scale(1); opacity: 0.4; }
  50% { transform: translateX(-50%) scale(1.1); opacity: 0.7; }
}
@keyframes la-swim {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-3px) rotate(2deg); }
  50% { transform: translateY(-1px) rotate(-1deg); }
  75% { transform: translateY(-2px) rotate(1deg); }
}
@keyframes la-lantern {
  0%, 100% { box-shadow: 0 0 25px 8px rgba(70,150,230,0.4); opacity: 0.9; }
  50% { box-shadow: 0 0 35px 12px rgba(100,170,255,0.6); opacity: 1; }
}
@keyframes la-creature {
  0% { transform: translateX(0) translateY(0) scale(1); opacity: 0.3; }
  20% { transform: translateX(30px) translateY(-10px) scale(1.1); opacity: 0.6; }
  40% { transform: translateX(-20px) translateY(5px) scale(0.9); opacity: 0.5; }
  60% { transform: translateX(40px) translateY(-15px) scale(1.05); opacity: 0.7; }
  80% { transform: translateX(-10px) translateY(10px) scale(0.95); opacity: 0.4; }
  100% { transform: translateX(0) translateY(0) scale(1); opacity: 0.2; }
}

/* fiji-islands-approach */
.scn-fiji-islands-approach {
  background:
    linear-gradient(180deg, #87CEEB 0%, #b0e0ff 35%, #f0e8d8 100%),
    radial-gradient(ellipse at 60% 20%, #fff4e0 0%, transparent 60%);
}
.scn-fiji-islands-approach .sky { position:absolute; inset:0 0 45% 0; background:linear-gradient(180deg, #6baad6 0%, transparent 100%); animation:fi1-sky 12s ease-in-out infinite alternate; }
.scn-fiji-islands-approach .sea { position:absolute; bottom:0; left:0; right:0; height:50%; background:linear-gradient(180deg, #2a7fa0 0%, #1a4f6a 100%); border-radius:30% 70% 0 0 / 50% 50% 0 0; animation:fi1-sea 8s ease-in-out infinite alternate; }
.scn-fiji-islands-approach .sun { position:absolute; top:12%; left:70%; width:40px; height:40px; border-radius:50%; background:radial-gradient(circle, #ffd700 0%, #ffb347 60%); box-shadow:0 0 30px 10px #ffd700, 0 0 60px 20px rgba(255,215,0,.3); animation:fi1-sun 6s ease-in-out infinite alternate; }
.scn-fiji-islands-approach .island { position:absolute; bottom:32%; left:15%; width:120px; height:50px; background:linear-gradient(180deg, #6b8e23 0%, #3a5f0b 100%); border-radius:40% 60% 0 0 / 100% 80% 0 0; box-shadow:inset 0 -10px 20px rgba(0,0,0,.3); animation:fi1-island 20s ease-in-out infinite alternate; }
.scn-fiji-islands-approach .ship { position:absolute; bottom:28%; left:45%; width:80px; height:30px; background:linear-gradient(180deg, #5c4033 0%, #3e2723 100%); border-radius:80% 20% 0 0 / 100% 50% 0 0; transform-origin:bottom center; animation:fi1-ship 10s ease-in-out infinite; }
.scn-fiji-islands-approach .sail-fore { position:absolute; bottom:38%; left:48%; width:20px; height:40px; background:linear-gradient(180deg, #f0e0c0 0%, #d4c4a0 100%); border-radius:20% 80% 10% 80% / 40% 60% 20% 60%; transform:rotate(-5deg); animation:fi1-sail 5s ease-in-out infinite alternate; }
.scn-fiji-islands-approach .sail-aft { position:absolute; bottom:36%; left:60%; width:18px; height:50px; background:linear-gradient(180deg, #f5e6ce 0%, #dcc8b0 100%); border-radius:40% 60% 30% 40% / 50% 50% 30% 30%; transform:rotate(8deg); animation:fi1-sail 7s ease-in-out infinite alternate-reverse; }
.scn-fiji-islands-approach .cloud-a { position:absolute; top:8%; left:20%; width:90px; height:20px; background:linear-gradient(180deg, rgba(255,255,255,.6) 0%, rgba(255,255,255,.1) 100%); border-radius:50%; filter:blur(4px); animation:fi1-drift 40s linear infinite; }
.scn-fiji-islands-approach .cloud-b { position:absolute; top:15%; right:10%; width:70px; height:16px; background:linear-gradient(180deg, rgba(255,255,255,.5) 0%, rgba(255,255,255,.05) 100%); border-radius:50%; filter:blur(3px); animation:fi1-drift 55s linear infinite reverse; }
@keyframes fi1-sky   { 0%{opacity:.9} 50%{opacity:1} 100%{opacity:.85} }
@keyframes fi1-sea   { 0%{transform:translateY(0)} 50%{transform:translateY(-4px)} 100%{transform:translateY(0)} }
@keyframes fi1-sun   { 0%{opacity:.9;transform:scale(1)} 50%{opacity:1;transform:scale(1.03)} 100%{opacity:.85;transform:scale(1)} }
@keyframes fi1-island{ 0%{transform:translateY(0) scale(1)} 50%{transform:translateY(-2px) scale(1.005)} 100%{transform:translateY(0) scale(1)} }
@keyframes fi1-ship  { 0%{transform:translateY(0) rotate(-1deg)} 25%{transform:translateY(-3px) rotate(1deg)} 50%{transform:translateY(0) rotate(-.5deg)} 75%{transform:translateY(-2px) rotate(.8deg)} 100%{transform:translateY(0) rotate(-1deg)} }
@keyframes fi1-sail  { 0%{transform:rotate(-5deg) scaleY(1)} 50%{transform:rotate(-2deg) scaleY(1.02)} 100%{transform:rotate(-5deg) scaleY(1)} }
@keyframes fi1-drift { 0%{transform:translateX(-40px)} 100%{transform:translateX(120vw)} }

/* fiji-geography */
.scn-fiji-geography {
  background:
    linear-gradient(180deg, #98d8e0 0%, #7ac0d0 40%, #4a9aaa 100%),
    radial-gradient(ellipse at 50% 80%, #b8f0e0 0%, transparent 60%);
}
.scn-fiji-geography .ocean    { position:absolute; inset:0 0 0 0; background:linear-gradient(180deg, #3f8ca0 0%, #1c5a6a 100%); animation:fg2-ocean 10s ease-in-out infinite alternate; }
.scn-fiji-geography .island-a { position:absolute; bottom:35%; left:10%; width:100px; height:40px; background:linear-gradient(180deg, #7a9a5a 0%, #4a6a2a 100%); border-radius:60% 40% 0 0 / 100% 80% 0 0; box-shadow:inset 0 -6px 12px rgba(0,0,0,.3); animation:fg2-island 18s ease-in-out infinite alternate; }
.scn-fiji-geography .island-b { position:absolute; bottom:40%; left:40%; width:130px; height:55px; background:linear-gradient(180deg, #8aaa6a 0%, #5a7a3a 100%); border-radius:50% 50% 0 0 / 100% 100% 0 0; box-shadow:inset 0 -6px 12px rgba(0,0,0,.25); animation:fg2-island 22s ease-in-out infinite alternate-reverse; }
.scn-fiji-geography .island-c { position:absolute; bottom:30%; left:70%; width:90px; height:35px; background:linear-gradient(180deg, #6a8a4a 0%, #3a5a1a 100%); border-radius:40% 60% 0 0 / 100% 80% 0 0; box-shadow:inset 0 -6px 12px rgba(0,0,0,.3); animation:fg2-island 15s ease-in-out infinite alternate; }
.scn-fiji-geography .reef    { position:absolute; bottom:28%; left:20%; right:20%; height:8px; background:linear-gradient(90deg, transparent 0%, #b8e8c0 20%, #90d0a0 50%, #b8e8c0 80%, transparent 100%); border-radius:50%; filter:blur(2px); animation:fg2-reef 12s ease-in-out infinite; }
.scn-fiji-geography .sun     { position:absolute; top:10%; right:15%; width:35px; height:35px; border-radius:50%; background:radial-gradient(circle, #fff4b0 0%, #ffd060 70%); box-shadow:0 0 20px 8px #ffd060, 0 0 40px 15px rgba(255,208,96,.3); animation:fg2-sun 5s ease-in-out infinite alternate; }
.scn-fiji-geography .cloud   { position:absolute; top:5%; left:50%; width:100px; height:18px; background:linear-gradient(180deg, rgba(255,255,255,.5) 0%, rgba(255,255,255,.1) 100%); border-radius:50%; filter:blur(5px); animation:fg2-cloud 45s linear infinite; }
@keyframes fg2-ocean  { 0%{opacity:.9} 50%{opacity:1} 100%{opacity:.85} }
@keyframes fg2-island { 0%{transform:translateY(0) scale(1)} 50%{transform:translateY(-2px) scale(1.01)} 100%{transform:translateY(0) scale(1)} }
@keyframes fg2-reef   { 0%{opacity:.6} 50%{opacity:.8} 100%{opacity:.6} }
@keyframes fg2-sun    { 0%{opacity:.9;transform:scale(1)} 50%{opacity:1;transform:scale(1.02)} 100%{opacity:.85;transform:scale(1)} }
@keyframes fg2-cloud  { 0%{transform:translateX(-40px)} 100%{transform:translateX(120vw)} }

/* tasman-discovery */
.scn-tasman-discovery {
  background:
    linear-gradient(180deg, #aad4f0 0%, #c8e0f8 30%, #f0f4e8 100%),
    radial-gradient(ellipse at 40% 30%, #fff8e0 0%, transparent 60%);
}
.scn-tasman-discovery .sky       { position:absolute; inset:0 0 40% 0; background:linear-gradient(180deg, #7ab8e0 0%, transparent 100%); animation:td3-sky 14s ease-in-out infinite alternate; }
.scn-tasman-discovery .sea       { position:absolute; bottom:0; left:0; right:0; height:45%; background:linear-gradient(180deg, #2e7a9a 0%, #1c4a5a 100%); border-radius:60% 40% 0 0 / 40% 60% 0 0; animation:td3-sea 9s ease-in-out infinite alternate; }
.scn-tasman-discovery .ship-bow  { position:absolute; bottom:35%; left:30%; width:100px; height:35px; background:linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%); border-radius:80% 20% 0 0 / 100% 50% 0 0; transform:rotate(-2deg); animation:td3-ship 8s ease-in-out infinite; }
.scn-tasman-discovery .sailor    { position:absolute; bottom:38%; left:32%; width:16px; height:30px; background:linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:td3-sailor 4s ease-in-out infinite; }
.scn-tasman-discovery .compass   { position:absolute; bottom:50%; left:50%; width:20px; height:20px; border-radius:50%; background:radial-gradient(circle, #c0a050 0%, #8a6a30 80%); box-shadow:0 0 10px 4px rgba(192,160,80,.5); border:2px solid #6a4a20; animation:td3-compass 6s ease-in-out infinite alternate; }
.scn-tasman-discovery .wave1     { position:absolute; bottom:10%; left:0; right:0; height:15px; background:linear-gradient(90deg, transparent 0%, rgba(255,255,255,.3) 20%, rgba(255,255,255,.1) 50%, rgba(255,255,255,.3) 80%, transparent 100%); border-radius:50%; filter:blur(2px); animation:td3-wave 3s ease-in-out infinite; }
.scn-tasman-discovery .wave2     { position:absolute; bottom:5%; left:0; right:0; height:10px; background:linear-gradient(90deg, transparent 0%, rgba(255,255,255,.4) 20%, rgba(255,255,255,.15) 50%, rgba(255,255,255,.4) 80%, transparent 100%); border-radius:50%; filter:blur(2px); animation:td3-wave 4s ease-in-out infinite reverse; }
.scn-tasman-discovery .bird      { position:absolute; top:15%; left:60%; width:30px; height:10px; background:radial-gradient(ellipse at 30% 50%, #2a2a3a 0%, transparent 100%); border-radius:30% 70% 70% 30% / 100% 100% 100% 100%; filter:blur(1px); animation:td3-bird 12s ease-in-out infinite alternate; }
@keyframes td3-sky    { 0%{opacity:.85} 50%{opacity:1} 100%{opacity:.9} }
@keyframes td3-sea    { 0%{transform:translateY(0)} 50%{transform:translateY(-3px)} 100%{transform:translateY(0)} }
@keyframes td3-ship   { 0%{transform:rotate(-2deg) translateY(0)} 25%{transform:rotate(-1deg) translateY(-2px)} 50%{transform:rotate(-2deg) translateY(0)} 75%{transform:rotate(-3deg) translateY(-1px)} 100%{transform:rotate(-2deg) translateY(0)} }
@keyframes td3-sailor { 0%{transform:translateX(0) translateY(0) rotate(-2deg)} 25%{transform:translateX(4px) translateY(-1px) rotate(0deg)} 50%{transform:translateX(8px) translateY(0) rotate(-2deg)} 75%{transform:translateX(12px) translateY(-1px) rotate(0deg)} 100%{transform:translateX(16px) translateY(0) rotate(-2deg)} }
@keyframes td3-compass{ 0%{transform:rotate(0deg) scale(1)} 50%{transform:rotate(20deg) scale(1.02)} 100%{transform:rotate(0deg) scale(1)} }
@keyframes td3-wave   { 0%{transform:translateX(-5px)} 50%{transform:translateX(5px)} 100%{transform:translateX(-5px)} }
@keyframes td3-bird   { 0%{transform:translateX(0) translateY(0) rotate(-5deg)} 50%{transform:translateX(15px) translateY(-5px) rotate(0deg)} 100%{transform:translateX(30px) translateY(0) rotate(5deg)} }

/* wailea-bay-approach */
.scn-wailea-bay-approach {
  background:
    linear-gradient(180deg, #87CEEB 0%, #b8d4e8 40%, #e0e8d0 100%),
    radial-gradient(ellipse at 20% 40%, #fff8e0 0%, transparent 60%);
}
.scn-wailea-bay-approach .sky        { position:absolute; inset:0 0 50% 0; background:linear-gradient(180deg, #6a9ec0 0%, transparent 100%); animation:wb4-sky 10s ease-in-out infinite alternate; }
.scn-wailea-bay-approach .cliff-left { position:absolute; bottom:30%; left:0; width:30%; height:50%; background:linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%); border-radius:0 40% 0 0 / 0 80% 0 0; box-shadow:inset -10px 0 20px rgba(0,0,0,.3); animation:wb4-cliff 15s ease-in-out infinite alternate; }
.scn-wailea-bay-approach .cliff-right{ position:absolute; bottom:30%; right:0; width:25%; height:45%; background:linear-gradient(180deg, #7a6a4a 0%, #4a3a1a 100%); border-radius:40% 0 0 0 / 80% 0 0 0; box-shadow:inset 10px 0 20px rgba(0,0,0,.3); animation:wb4-cliff 18s ease-in-out infinite alternate-reverse; }
.scn-wailea-bay-approach .bay        { position:absolute; bottom:0; left:20%; right:20%; height:35%; background:linear-gradient(180deg, #2a7a8a 0%, #1a4a5a 100%); border-radius:30% 30% 0 0 / 60% 60% 0 0; animation:wb4-bay 12s ease-in-out infinite alternate; }
.scn-wailea-bay-approach .nautilus   { position:absolute; bottom:28%; left:45%; width:70px; height:20px; background:linear-gradient(180deg, #4a6a6a 0%, #2a4a4a 100%); border-radius:60% 40% 40% 60% / 80% 60% 60% 80%; box-shadow:0 4px 8px rgba(0,0,0,.4); transform:rotate(5deg); animation:wb4-nau 6s ease-in-out infinite; }
.scn-wailea-bay-approach .wake       { position:absolute; bottom:26%; left:42%; width:30px; height:4px; background:linear-gradient(90deg, rgba(255,255,255,.4) 0%, transparent 100%); border-radius:50%; filter:blur(1px); animation:wb4-wake 3s ease-in-out infinite alternate; }
.scn-wailea-bay-approach .sun        { position:absolute; top:8%; left:60%; width:30px; height:30px; border-radius:50%; background:radial-gradient(circle, #fff4c0 0%, #ffd060 70%); box-shadow:0 0 20px 6px #ffd060, 0 0 40px 12px rgba(255,208,96,.3); animation:wb4-sun 5s ease-in-out infinite alternate; }
.scn-wailea-bay-approach .cloud      { position:absolute; top:12%; left:10%; width:80px; height:16px; background:linear-gradient(180deg, rgba(255,255,255,.5) 0%, rgba(255,255,255,.1) 100%); border-radius:50%; filter:blur(4px); animation:wb4-cloud 40s linear infinite; }
@keyframes wb4-sky   { 0%{opacity:.9} 50%{opacity:1} 100%{opacity:.85} }
@keyframes wb4-cliff { 0%{transform:translateY(0)} 50%{transform:translateY(-2px)} 100%{transform:translateY(0)} }
@keyframes wb4-bay   { 0%{transform:translateY(0)} 50%{transform:translateY(-3px)} 100%{transform:translateY(0)} }
@keyframes wb4-nau   { 0%{transform:rotate(5deg) translateY(0)} 25%{transform:rotate(3deg) translateY(-2px)} 50%{transform:rotate(5deg) translateY(0)} 75%{transform:rotate(7deg) translateY(-1px)} 100%{transform:rotate(5deg) translateY(0)} }
@keyframes wb4-wake  { 0%{opacity:.6;transform:scaleX(1)} 50%{opacity:1;transform:scaleX(1.3)} 100%{opacity:.6;transform:scaleX(1)} }
@keyframes wb4-sun   { 0%{opacity:.9;transform:scale(1)} 50%{opacity:1;transform:scale(1.02)} 100%{opacity:.85;transform:scale(1)} }
@keyframes wb4-cloud { 0%{transform:translateX(-30px)} 100%{transform:translateX(120vw)} }

.scn-aronnax-dreads-sharks { background: linear-gradient(180deg, #0f1428 0%, #1a2040 50%, #2a2e4e 100%), radial-gradient(ellipse at 50% 100%, #1a2040 0%, transparent 70%); }
.scn-aronnax-dreads-sharks .wall { position:absolute; inset:0; background:linear-gradient(135deg, #1a2040 0%, #2a2e4e 100%); }
.scn-aronnax-dreads-sharks .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background:linear-gradient(180deg, #0f1428 0%, #151932 100%); border-radius:40% 40% 0 0 / 20% 20% 0 0; }
.scn-aronnax-dreads-sharks .porthole { position:absolute; top:20%; left:60%; width:80px; height:80px; border-radius:50%; background:radial-gradient(circle, #1a3a5a 0%, #0f1428 80%); border:4px solid #3a4a6a; box-shadow:inset 0 0 30px #0a0e1e; animation:ad-porthole 12s ease-in-out infinite alternate; }
.scn-aronnax-dreads-sharks .shark-silhouette { position:absolute; top:28%; left:65%; width:50px; height:20px; background:#0a0e1e; border-radius:50% 50% 50% 50% / 60% 60% 40% 40%; transform:rotate(-15deg); filter:blur(1px); animation:ad-shark 8s ease-in-out infinite; }
.scn-aronnax-dreads-sharks .table { position:absolute; bottom:28%; left:25%; width:100px; height:10px; background:linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius:4px; box-shadow:0 4px 8px rgba(0,0,0,.5); }
.scn-aronnax-dreads-sharks .book { position:absolute; bottom:32%; left:30%; width:40px; height:30px; background:linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:2px; transform:rotate(-5deg); box-shadow:0 2px 6px rgba(0,0,0,.6); animation:ad-book 14s ease-in-out infinite; }
.scn-aronnax-dreads-sharks .figure { position:absolute; bottom:25%; left:15%; width:24px; height:50px; background:linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform:rotate(-3deg); animation:ad-figure 4s ease-in-out infinite; }
.scn-aronnax-dreads-sharks .lamp { position:absolute; bottom:38%; left:20%; width:8px; height:18px; background:linear-gradient(180deg, #6a5a3a 0%, #4a3a1a 100%); border-radius:2px 2px 6px 6px; box-shadow:0 0 10px #c08040; }
.scn-aronnax-dreads-sharks .lamp-glow { position:absolute; bottom:36%; left:18%; width:40px; height:40px; background:radial-gradient(circle, rgba(192,128,64,.6) 0%, transparent 70%); border-radius:50%; animation:ad-glow 3s ease-in-out infinite alternate; }
@keyframes ad-porthole { 0% { box-shadow:inset 0 0 30px #0a0e1e; } 50% { box-shadow:inset 0 0 40px #1a2a4a; } 100% { box-shadow:inset 0 0 30px #0a0e1e; } }
@keyframes ad-shark { 0% { transform:translateX(0) rotate(-15deg) scaleX(1); } 25% { transform:translateX(6px) rotate(-10deg) scaleX(1.05); } 50% { transform:translateX(-2px) rotate(-18deg) scaleX(.95); } 75% { transform:translateX(4px) rotate(-12deg) scaleX(1.02); } 100% { transform:translateX(0) rotate(-15deg) scaleX(1); } }
@keyframes ad-book { 0%,100% { transform:rotate(-5deg) translateY(0); } 50% { transform:rotate(-3deg) translateY(-1px); } }
@keyframes ad-figure { 0%,100% { transform:rotate(-3deg) translateY(0); } 50% { transform:rotate(0deg) translateY(-2px); } }
@keyframes ad-glow { 0% { opacity:.7; box-shadow:0 0 20px 6px rgba(192,128,64,.4); } 50% { opacity:1; box-shadow:0 0 30px 10px rgba(255,200,100,.6); } 100% { opacity:.8; box-shadow:0 0 20px 6px rgba(192,128,64,.4); } }

.scn-rationalizing-fear { background: linear-gradient(180deg, #121a30 0%, #1a2240 50%, #2a2e4e 100%), radial-gradient(ellipse at 50% 100%, #1a2240 0%, transparent 70%); }
.scn-rationalizing-fear .wall { position:absolute; inset:0; background:linear-gradient(135deg, #1a2240 0%, #2a2e4e 100%); }
.scn-rationalizing-fear .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background:linear-gradient(180deg, #0f1428 0%, #151932 100%); border-radius:30% 30% 0 0 / 10% 10% 0 0; }
.scn-rationalizing-fear .desk { position:absolute; bottom:25%; left:20%; width:120px; height:8px; background:linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:4px; box-shadow:0 4px 8px rgba(0,0,0,.5); }
.scn-rationalizing-fear .map { position:absolute; bottom:30%; left:22%; width:80px; height:55px; background:linear-gradient(180deg, #5a5a4a 0%, #3a3a2a 100%); border-radius:2px; transform:rotate(-2deg); box-shadow:0 2px 6px rgba(0,0,0,.5); animation:rf-map 20s ease-in-out infinite; }
.scn-rationalizing-fear .candle { position:absolute; bottom:36%; left:45%; width:6px; height:20px; background:linear-gradient(180deg, #6a5a3a 0%, #4a3a1a 100%); border-radius:2px 2px 4px 4px; }
.scn-rationalizing-fear .candle-glow { position:absolute; bottom:34%; left:43%; width:30px; height:30px; background:radial-gradient(circle, rgba(255,180,80,.5) 0%, transparent 70%); border-radius:50%; animation:rf-glow 2.5s ease-in-out infinite alternate; }
.scn-rationalizing-fear .figure { position:absolute; bottom:20%; left:50%; width:22px; height:48px; background:linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform:rotate(2deg); animation:rf-figure 5s ease-in-out infinite; }
.scn-rationalizing-fear .shadow { position:absolute; bottom:15%; left:48%; width:40px; height:10px; background:radial-gradient(ellipse, rgba(0,0,0,.4) 0%, transparent 70%); animation:rf-shadow 5s ease-in-out infinite; }
@keyframes rf-map { 0%,100% { transform:rotate(-2deg) translateY(0); } 50% { transform:rotate(1deg) translateY(-2px); } }
@keyframes rf-glow { 0% { opacity:.6; transform:scale(1); } 50% { opacity:1; transform:scale(1.1); } 100% { opacity:.7; transform:scale(1); } }
@keyframes rf-figure { 0%,100% { transform:rotate(2deg) translateY(0); } 50% { transform:rotate(-1deg) translateY(-3px); } }
@keyframes rf-shadow { 0%,100% { transform:scaleX(1); opacity:.4; } 50% { transform:scaleX(.8); opacity:.6; } }

.scn-visions-of-jaws { background: linear-gradient(180deg, #0a0e1a 0%, #121a30 50%, #1a2040 100%), radial-gradient(ellipse at 50% 50%, #1a2040 0%, transparent 70%); }
.scn-visions-of-jaws .bg { position:absolute; inset:0; background:linear-gradient(135deg, #0a0e1a 0%, #1a2040 100%); }
.scn-visions-of-jaws .jaws-upper { position:absolute; top:10%; left:20%; width:60%; height:30%; background:radial-gradient(ellipse at 50% 100%, #5a2a1a 0%, #2a1a0a 100%); border-radius:50% 50% 20% 20% / 60% 60% 10% 10%; clip-path:polygon(0 60%, 50% 100%, 100% 60%, 100% 0, 0 0); animation:vj-jaws 6s ease-in-out infinite alternate; }
.scn-visions-of-jaws .jaws-lower { position:absolute; bottom:20%; left:20%; width:60%; height:20%; background:radial-gradient(ellipse at 50% 0%, #5a2a1a 0%, #2a1a0a 100%); border-radius:20% 20% 50% 50% / 10% 10% 60% 60%; clip-path:polygon(0 0, 50% 0, 100% 0, 100% 100%, 0 100%); animation:vj-jaws 6s ease-in-out infinite alternate-reverse; }
.scn-visions-of-jaws .teeth-row { position:absolute; top:35%; left:20%; width:60%; height:10%; background:repeating-linear-gradient(90deg, #b08050 0px, #b08050 6px, transparent 6px, transparent 12px); border-radius:4px; filter:drop-shadow(0 2px 4px rgba(0,0,0,.5)); animation:vj-teeth 3s ease-in-out infinite alternate; }
.scn-visions-of-jaws .water-mist { position:absolute; top:0; left:0; right:0; bottom:0; background:radial-gradient(ellipse at 50% 50%, rgba(30,60,90,.3) 0%, transparent 70%); animation:vj-mist 15s ease-in-out infinite alternate; }
.scn-visions-of-jaws .figure-torso { position:absolute; bottom:15%; left:45%; width:30px; height:40px; background:linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:30% 30% 40% 40% / 50% 50% 40% 40%; animation:vj-torso 4s ease-in-out infinite; }
.scn-visions-of-jaws .figure-head { position:absolute; bottom:42%; left:46%; width:18px; height:18px; background:linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius:50%; animation:vj-head 4s ease-in-out infinite; }
.scn-visions-of-jaws .thought-bubble { position:absolute; top:8%; right:10%; width:40px; height:40px; background:radial-gradient(circle, rgba(200,180,160,.4) 0%, transparent 70%); border-radius:50%; animation:vj-bubble 10s ease-in-out infinite; }
@keyframes vj-jaws { 0% { transform:translateY(0) scaleY(1); } 50% { transform:translateY(4px) scaleY(1.05); } 100% { transform:translateY(0) scaleY(1); } }
@keyframes vj-teeth { 0% { opacity:.7; filter:drop-shadow(0 2px 4px rgba(0,0,0,.3)); } 50% { opacity:1; filter:drop-shadow(0 4px 8px rgba(0,0,0,.6)); } 100% { opacity:.8; filter:drop-shadow(0 2px 4px rgba(0,0,0,.3)); } }
@keyframes vj-mist { 0% { opacity:.3; } 50% { opacity:.5; } 100% { opacity:.3; } }
@keyframes vj-torso { 0%,100% { transform:translateY(0) rotate(2deg); } 50% { transform:translateY(-3px) rotate(-1deg); } }
@keyframes vj-head { 0%,100% { transform:translateY(0) rotate(0); } 50% { transform:translateY(-4px) rotate(5deg); } }
@keyframes vj-bubble { 0%,100% { transform:scale(1); opacity:.3; } 50% { transform:scale(1.2); opacity:.5; } }

.scn-reading-sirr-book { background: linear-gradient(180deg, #f5e6d0 0%, #e8d4b0 50%, #d6b88a 100%), radial-gradient(ellipse at 50% 100%, #e8d4b0 0%, transparent 70%); }
.scn-reading-sirr-book .wall { position:absolute; inset:0; background:linear-gradient(135deg, #f5e6d0 0%, #e8d4b0 100%); }
.scn-reading-sirr-book .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background:linear-gradient(180deg, #d6b88a 0%, #b89a6a 100%); border-radius:20% 20% 0 0 / 10% 10% 0 0; }
.scn-reading-sirr-book .desk { position:absolute; bottom:25%; left:15%; width:140px; height:8px; background:linear-gradient(180deg, #8a6a4a 0%, #6a4a2a 100%); border-radius:4px; box-shadow:0 4px 8px rgba(0,0,0,.2); }
.scn-reading-sirr-book .book-open { position:absolute; bottom:30%; left:25%; width:70px; height:40px; background:linear-gradient(180deg, #d6c8b0 0%, #b8a68a 100%); border-radius:2px 2px 6px 6px; transform:rotate(-4deg); box-shadow:0 2px 6px rgba(0,0,0,.15); animation:rs-book 18s ease-in-out infinite; }
.scn-reading-sirr-book .lamp { position:absolute; bottom:35%; left:60%; width:10px; height:22px; background:linear-gradient(180deg, #c0a070 0%, #a08050 100%); border-radius:2px 2px 4px 4px; box-shadow:0 0 12px #ffd080; }
.scn-reading-sirr-book .lamp-glow { position:absolute; bottom:33%; left:55%; width:60px; height:60px; background:radial-gradient(circle, rgba(255,200,120,.4) 0%, transparent 70%); border-radius:50%; animation:rs-glow 3s ease-in-out infinite alternate; }
.scn-reading-sirr-book .figure { position:absolute; bottom:18%; left:40%; width:24px; height:55px; background:linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform:rotate(2deg); animation:rs-figure 5s ease-in-out infinite; }
.scn-reading-sirr-book .arm { position:absolute; bottom:28%; left:42%; width:20px; height:6px; background:linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:3px; transform:rotate(10deg); transform-origin:right center; animation:rs-arm 4s ease-in-out infinite alternate; }
@keyframes rs-book { 0%,100% { transform:rotate(-4deg) translateY(0); } 50% { transform:rotate(-2deg) translateY(-2px); } }
@keyframes rs-glow { 0% { opacity:.7; transform:scale(1); } 50% { opacity:1; transform:scale(1.05); } 100% { opacity:.8; transform:scale(1); } }
@keyframes rs-figure { 0%,100% { transform:rotate(2deg) translateY(0); } 50% { transform:rotate(0deg) translateY(-3px); } }
@keyframes rs-arm { 0% { transform:rotate(5deg); } 50% { transform:rotate(15deg); } 100% { transform:rotate(5deg); } }

.scn-madrepores-classification {
  background: linear-gradient(180deg, #0277bd 0%, #01579b 30%, #003f6f 60%, #002f4f 100%), radial-gradient(ellipse at 30% 10%, #5ac8fa 0%, transparent 60%);
}
.scn-madrepores-classification .ocean-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, rgba(255,255,255,0.15) 0%, transparent 40%);
  animation: mc-ocean 12s ease-in-out infinite alternate;
}
.scn-madrepores-classification .sandy-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #c2b280 0%, #a0895c 100%);
  border-radius: 40% 60% 0 0 / 100% 100% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.3);
  animation: mc-floor 20s ease-in-out infinite;
}
.scn-madrepores-classification .coral-cluster {
  position: absolute; bottom: 20%; left: 30%; width: 120px; height: 100px;
  background: radial-gradient(ellipse at 50% 50%, #e65f5c 0%, #bf4f4a 40%, #8a2e2a 100%);
  border-radius: 60% 40% 50% 50% / 50% 60% 40% 50%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.4);
  animation: mc-coral 8s ease-in-out infinite alternate;
}
.scn-madrepores-classification .polyp-detail-1 {
  position: absolute; bottom: 45%; left: 35%; width: 10px; height: 20px;
  background: linear-gradient(180deg, #ffb07c 0%, #d98a5e 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: mc-polyp-a 4s ease-in-out infinite;
}
.scn-madrepores-classification .polyp-detail-2 {
  position: absolute; bottom: 40%; left: 42%; width: 12px; height: 18px;
  background: linear-gradient(180deg, #f5b895 0%, #d4946d 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: mc-polyp-b 5s ease-in-out infinite 1s;
}
.scn-madrepores-classification .polyp-detail-3 {
  position: absolute; bottom: 38%; left: 50%; width: 8px; height: 16px;
  background: linear-gradient(180deg, #e6a87c 0%, #c4875e 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: mc-polyp-c 6s ease-in-out infinite 2s;
}
.scn-madrepores-classification .light-ray-1 {
  position: absolute; top: 0; left: 20%; width: 4px; height: 60%;
  background: linear-gradient(180deg, rgba(255,255,200,0.4) 0%, transparent 100%);
  transform: rotate(-5deg);
  filter: blur(2px);
  animation: mc-ray 10s ease-in-out infinite alternate;
}
.scn-madrepores-classification .light-ray-2 {
  position: absolute; top: 0; left: 70%; width: 6px; height: 50%;
  background: linear-gradient(180deg, rgba(255,255,200,0.3) 0%, transparent 100%);
  transform: rotate(8deg);
  filter: blur(3px);
  animation: mc-ray2 14s ease-in-out infinite alternate 2s;
}
.scn-madrepores-classification .float-specks {
  position: absolute; inset: 0; background: radial-gradient(circle at 30% 70%, rgba(255,255,255,0.1) 0%, transparent 30%);
  background-size: 100px 100px;
  animation: mc-specks 25s linear infinite;
}
@keyframes mc-ocean { 0% { opacity: 1; } 50% { opacity: 0.85; } 100% { opacity: 1; } }
@keyframes mc-floor { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-4px); } }
@keyframes mc-coral { 0% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.02) rotate(2deg); } 100% { transform: scale(0.98) rotate(-2deg); } }
@keyframes mc-polyp-a { 0%, 100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2px) rotate(10deg); } 75% { transform: translateX(-2px) rotate(-8deg); } }
@keyframes mc-polyp-b { 0%, 100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(3px) rotate(-10deg); } 75% { transform: translateX(-3px) rotate(8deg); } }
@keyframes mc-polyp-c { 0%, 100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(1.5px) rotate(12deg); } 75% { transform: translateX(-1.5px) rotate(-6deg); } }
@keyframes mc-ray { 0% { transform: rotate(-5deg) translateY(0); opacity: 0.6; } 50% { transform: rotate(-3deg) translateY(-10px); opacity: 1; } 100% { transform: rotate(-7deg) translateY(5px); opacity: 0.7; } }
@keyframes mc-ray2 { 0% { transform: rotate(8deg) translateY(0); opacity: 0.4; } 50% { transform: rotate(10deg) translateY(-15px); opacity: 0.8; } 100% { transform: rotate(6deg) translateY(8px); opacity: 0.5; } }
@keyframes mc-specks { 0% { background-position: 0 0; } 100% { background-position: 100px 100px; } }

.scn-limestone-deposits-build {
  background: linear-gradient(180deg, #0288d1 0%, #0277bd 30%, #01579b 60%, #003f6f 100%), radial-gradient(ellipse at 70% 20%, #5ac8fa 0%, transparent 50%);
}
.scn-limestone-deposits-build .deep-water {
  position: absolute; inset: 0; background: linear-gradient(180deg, rgba(255,255,255,0.1) 0%, transparent 60%);
  animation: ldb-deep 15s ease-in-out infinite alternate;
}
.scn-limestone-deposits-build .reef-walk {
  position: absolute; bottom: 20%; left: 10%; right: 10%; height: 12%;
  background: linear-gradient(180deg, #8b7355 0%, #5c4a32 100%);
  border-radius: 30% 70% 0 0 / 100% 100% 0 0;
  box-shadow: inset 0 6px 12px rgba(0,0,0,0.4);
  animation: ldb-reef 18s ease-in-out infinite;
}
.scn-limestone-deposits-build .lagoon-bowl {
  position: absolute; bottom: 32%; left: 25%; width: 50%; height: 15%;
  background: linear-gradient(180deg, #b0d4f1 0%, #7caacb 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  box-shadow: inset 0 -4px 8px rgba(0,0,0,0.2);
  animation: ldb-lagoon 12s ease-in-out infinite alternate;
}
.scn-limestone-deposits-build .coral-block-1 {
  position: absolute; bottom: 32%; left: 15%; width: 40px; height: 30px;
  background: radial-gradient(ellipse at 50% 80%, #e65f5c 0%, #bf4f4a 40%, #8a2e2a 100%);
  border-radius: 40% 60% 50% 50% / 50% 50% 40% 40%;
  transform: skewX(-5deg);
  animation: ldb-coral1 6s ease-in-out infinite;
}
.scn-limestone-deposits-build .coral-block-2 {
  position: absolute; bottom: 35%; left: 70%; width: 35px; height: 25px;
  background: radial-gradient(ellipse at 30% 70%, #f59f7a 0%, #d97d54 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform: skewX(5deg);
  animation: ldb-coral2 7s ease-in-out infinite 1s;
}
.scn-limestone-deposits-build .sediment-fall {
  position: absolute; top: 10%; left: 40%; width: 8px; height: 70%;
  background: linear-gradient(180deg, rgba(200,180,150,0.3) 0%, transparent 100%);
  filter: blur(1px);
  animation: ldb-sediment 8s linear infinite;
}
.scn-limestone-deposits-build .sun-patch {
  position: absolute; bottom: 30%; left: 45%; width: 60px; height: 60px;
  background: radial-gradient(circle, rgba(255,200,100,0.15) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(8px);
  animation: ldb-sun 10s ease-in-out infinite alternate;
}
.scn-limestone-deposits-build .fish-shoal {
  position: absolute; top: 25%; left: -10%; width: 80px; height: 30px;
  background: radial-gradient(ellipse at 50% 50%, #7cb342 0%, #558b2f 100%);
  border-radius: 50%;
  filter: blur(3px);
  animation: ldb-fish 22s linear infinite;
}
@keyframes ldb-deep { 0%, 100% { opacity: 0.8; } 50% { opacity: 1; } }
@keyframes ldb-reef { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes ldb-lagoon { 0% { transform: scale(1); } 50% { transform: scale(1.02); } 100% { transform: scale(0.98); } }
@keyframes ldb-coral1 { 0%, 100% { transform: skewX(-5deg) translateY(0); } 50% { transform: skewX(-3deg) translateY(-3px); } }
@keyframes ldb-coral2 { 0%, 100% { transform: skewX(5deg) translateY(0); } 50% { transform: skewX(7deg) translateY(-2px); } }
@keyframes ldb-sediment { 0% { transform: translateY(0); opacity: 0; } 25% { opacity: 0.6; } 75% { opacity: 0.3; } 100% { transform: translateY(80%); opacity: 0; } }
@keyframes ldb-sun { 0% { transform: translateX(0) scale(1); opacity: 0.4; } 50% { transform: translateX(10px) scale(1.2); opacity: 0.7; } 100% { transform: translateX(-5px) scale(0.9); opacity: 0.5; } }
@keyframes ldb-fish { 0% { transform: translateX(-80px); } 100% { transform: translateX(calc(100vw + 80px)); } }

.scn-fringing-reefs {
  background: linear-gradient(180deg, #0277bd 0%, #01579b 25%, #003f6f 50%, #002f4f 75%, #001a2e 100%), radial-gradient(ellipse at 50% 0%, #5ac8fa 0%, transparent 40%);
}
.scn-fringing-reefs .ocean-depth {
  position: absolute; inset: 0; background: linear-gradient(180deg, rgba(255,255,255,0.1) 0%, transparent 50%);
  animation: fr-depth 14s ease-in-out infinite alternate;
}
.scn-fringing-reefs .reef-cliff {
  position: absolute; bottom: 0; left: 50%; width: 30%; height: 70%;
  background: linear-gradient(180deg, #706550 0%, #3a3025 100%);
  border-radius: 50% 0 0 0 / 100% 0 0 0;
  box-shadow: -8px 0 20px rgba(0,0,0,0.5);
  animation: fr-cliff 20s ease-in-out infinite;
}
.scn-fringing-reefs .wave-lip-1 {
  position: absolute; top: 30%; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, rgba(255,255,255,0.2) 0%, transparent 100%);
  border-radius: 40% 60% 30% 70% / 100% 100% 0 0;
  animation: fr-wave1 6s ease-in-out infinite;
}
.scn-fringing-reefs .wave-lip-2 {
  position: absolute; top: 25%; left: 0; right: 0; height: 12%;
  background: linear-gradient(180deg, rgba(255,255,255,0.15) 0%, transparent 100%);
  border-radius: 60% 40% 70% 30% / 100% 100% 0 0;
  animation: fr-wave2 8s ease-in-out infinite 1s;
}
.scn-fringing-reefs .coral-shelf {
  position: absolute; bottom: 30%; left: 52%; width: 25%; height: 20%;
  background: linear-gradient(180deg, #c08858 0%, #a06a3e 100%);
  border-radius: 30% 70% 50% 50% / 50% 50% 40% 40%;
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.3);
  animation: fr-shelf 10s ease-in-out infinite alternate;
}
.scn-fringing-reefs .barnacle-cluster {
  position: absolute; bottom: 20%; left: 60%; width: 20px; height: 20px;
  background: radial-gradient(circle, #8a9a80 0%, #5c6b54 100%);
  border-radius: 50%;
  box-shadow: 0 0 0 4px #7a8a70;
  animation: fr-barnacle 5s ease-in-out infinite;
}
.scn-fringing-reefs .distant-boat {
  position: absolute; bottom: 55%; left: 70%; width: 30px; height: 12px;
  background: linear-gradient(90deg, #3a3228 0%, #1f1a14 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform: rotate(-5deg);
  animation: fr-boat 12s ease-in-out infinite;
}
.scn-fringing-reefs .spray-mist {
  position: absolute; top: 20%; left: 45%; width: 60px; height: 40px;
  background: radial-gradient(ellipse, rgba(255,255,255,0.2) 0%, transparent 70%);
  filter: blur(6px);
  animation: fr-mist 7s ease-in-out infinite alternate;
}
@keyframes fr-depth { 0%, 100% { opacity: 1; } 50% { opacity: 0.85; } }
@keyframes fr-cliff { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
@keyframes fr-wave1 { 0%, 100% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(8px) scaleY(1.1); } }
@keyframes fr-wave2 { 0%, 100% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-6px) scaleY(0.9); } }
@keyframes fr-shelf { 0% { transform: scaleX(1) rotate(0deg); } 50% { transform: scaleX(1.05) rotate(2deg); } 100% { transform: scaleX(0.95) rotate(-2deg); } }
@keyframes fr-barnacle { 0%, 100% { transform: scale(1); } 50% { transform: scale(1.1); } }
@keyframes fr-boat { 0%, 100% { transform: rotate(-5deg) translateX(0); } 50% { transform: rotate(-3deg) translateX(5px); } }
@keyframes fr-mist { 0% { transform: translateX(0) scale(1); opacity: 0.3; } 50% { transform: translateX(10px) scale(1.2); opacity: 0.6; } 100% { transform: translateX(-5px) scale(0.9); opacity: 0.2; } }

.scn-polyps-grow-in-upper-strata {
  background: linear-gradient(180deg, #4fc3f7 0%, #0288d1 20%, #01579b 50%, #003f6f 100%), radial-gradient(ellipse at 50% 0%, #b3e5fc 0%, transparent 50%);
}
.scn-polyps-grow-in-upper-strata .sky-water {
  position: absolute; inset: 0; background: linear-gradient(180deg, rgba(255,255,255,0.2) 0%, transparent 40%);
  animation: pg-sky 16s ease-in-out infinite alternate;
}
.scn-polyps-grow-in-upper-strata .wave-upper {
  position: absolute; top: 15%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, rgba(255,255,255,0.15) 0%, transparent 100%);
  border-radius: 50% 50% 30% 70% / 100% 100% 0 0;
  animation: pg-wave 5s ease-in-out infinite;
}
.scn-polyps-grow-in-upper-strata .polyp-group {
  position: absolute; bottom: 40%; left: 20%; width: 80px; height: 60px;
  background: radial-gradient(ellipse at 50% 0%, #e65f5c 0%, #8a2e2a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  animation: pg-group 10s ease-in-out infinite alternate;
}
.scn-polyps-grow-in-upper-strata .polyp-single-1 {
  position: absolute; bottom: 50%; left: 35%; width: 12px; height: 20px;
  background: linear-gradient(180deg, #ffb07c 0%, #d98a5e 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: pg-polyp1 4s ease-in-out infinite;
}
.scn-polyps-grow-in-upper-strata .polyp-single-2 {
  position: absolute; bottom: 45%; left: 55%; width: 10px; height: 18px;
  background: linear-gradient(180deg, #f5b895 0%, #d4946d 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: pg-polyp2 5s ease-in-out infinite 1.5s;
}
.scn-polyps-grow-in-upper-strata .subsurface-dust {
  position: absolute; inset: 0; background: radial-gradient(circle at 40% 60%, rgba(255,255,255,0.08) 0%, transparent 40%);
  background-size: 150px 150px;
  animation: pg-dust 30s linear infinite;
}
.scn-polyps-grow-in-upper-strata .sun-shaft-1 {
  position: absolute; top: 0; left: 30%; width: 5px; height: 70%;
  background: linear-gradient(180deg, rgba(255,255,200,0.4) 0%, transparent 100%);
  transform: rotate(-3deg);
  filter: blur(3px);
  animation: pg-shaft1 11s ease-in-out infinite alternate;
}
.scn-polyps-grow-in-upper-strata .sun-shaft-2 {
  position: absolute; top: 0; left: 65%; width: 4px; height: 50%;
  background: linear-gradient(180deg, rgba(255,255,200,0.3) 0%, transparent 100%);
  transform: rotate(5deg);
  filter: blur(2px);
  animation: pg-shaft2 9s ease-in-out infinite alternate 1s;
}
@keyframes pg-sky { 0%, 100% { opacity: 1; } 50% { opacity: 0.8; } }
@keyframes pg-wave { 0%, 100% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(10px) scaleY(1.1); } }
@keyframes pg-group { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-5px) rotate(3deg); } 100% { transform: translateY(2px) rotate(-2deg); } }
@keyframes pg-polyp1 { 0%, 100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2px) rotate(15deg); } 75% { transform: translateX(-2px) rotate(-10deg); } }
@keyframes pg-polyp2 { 0%, 100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(3px) rotate(-12deg); } 75% { transform: translateX(-3px) rotate(8deg); } }
@keyframes pg-dust { 0% { background-position: 0 0; } 100% { background-position: 150px 150px; } }
@keyframes pg-shaft1 { 0% { transform: rotate(-3deg) translateY(0); opacity: 0.5; } 50% { transform: rotate(-1deg) translateY(-12px); opacity: 0.9; } 100% { transform: rotate(-5deg) translateY(6px); opacity: 0.6; } }
@keyframes pg-shaft2 { 0% { transform: rotate(5deg) translateY(0); opacity: 0.4; } 50% { transform: rotate(7deg) translateY(-8px); opacity: 0.8; } 100% { transform: rotate(3deg) translateY(4px); opacity: 0.5; } }

.scn-telling-conseil-atlantis-story {
  background: linear-gradient(180deg, #3a2e28 0%, #5a4a3a 40%, #7a5a4a 100%), radial-gradient(ellipse at 30% 20%, #d4a070 0%, transparent 60%);
}
.scn-telling-conseil-atlantis-story .interior-bg {
  position: absolute; inset: 0; background: linear-gradient(135deg, #4a3a30 0%, #2a221c 100%); animation: cs-flicker 6s ease-in-out infinite alternate;
}
.scn-telling-conseil-atlantis-story .window-frame {
  position: absolute; bottom: 20%; left: 10%; width: 40%; height: 50%; border: 12px solid #6a4a3a; border-radius: 8px; box-shadow: inset 0 0 40px rgba(0,0,0,0.6), 0 0 60px rgba(180,120,60,0.3); background: transparent;
}
.scn-telling-conseil-atlantis-story .window-view {
  position: absolute; bottom: 20%; left: 10%; width: 40%; height: 50%; background: linear-gradient(180deg, #2a4a5a 0%, #1a3a4a 60%, #0a2a3a 100%); border-radius: 4px; overflow: hidden; animation: cs-window 20s linear infinite;
}
.scn-telling-conseil-atlantis-story .bookshelf {
  position: absolute; bottom: 20%; right: 8%; width: 20%; height: 40%; background: linear-gradient(90deg, #5a3a2a 0%, #4a2a1a 50%, #3a1a0a 100%); border-radius: 4px; box-shadow: inset 0 4px 8px rgba(0,0,0,0.5); animation: cs-shelf 10s ease-in-out infinite alternate;
}
.scn-telling-conseil-atlantis-story .figure-conseil {
  position: absolute; bottom: 28%; left: 28%; width: 20px; height: 40px; background: linear-gradient(180deg, #8a7a60 0%, #5a4a38 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cs-walk 8s ease-in-out infinite;
}
.scn-telling-conseil-atlantis-story .figure-narrator {
  position: absolute; bottom: 28%; left: 38%; width: 22px; height: 44px; background: linear-gradient(180deg, #7a6a50 0%, #4a3a28 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cs-talk 6s ease-in-out infinite;
}
.scn-telling-conseil-atlantis-story .lantern-glow {
  position: absolute; bottom: 40%; left: 32%; width: 8px; height: 8px; background: radial-gradient(circle, #e0a050 0%, transparent 70%); border-radius: 50%; box-shadow: 0 0 30px 10px #c08040; animation: cs-glow 4s ease-in-out infinite alternate;
}
.scn-telling-conseil-atlantis-story .bubbles {
  position: absolute; inset: 0; background: radial-gradient(circle at 20% 80%, rgba(200,180,140,0.15) 0%, transparent 50%), radial-gradient(circle at 80% 60%, rgba(200,180,140,0.1) 0%, transparent 40%); animation: cs-bubbles 15s linear infinite;
}

.scn-atlantic-fish-sightings {
  background: linear-gradient(180deg, #1a3a4a 0%, #2a5a6a 40%, #4a7a8a 100%), radial-gradient(ellipse at 50% 30%, #6aba8a 0%, transparent 70%);
}
.scn-atlantic-fish-sightings .water-bg {
  position: absolute; inset: 0; background: linear-gradient(135deg, #2a5a6a 0%, #1a4a5a 50%, #0a3a4a 100%); animation: af-water 12s ease-in-out infinite alternate;
}
.scn-atlantic-fish-sightings .light-rays {
  position: absolute; top: 0; left: 0; right: 0; height: 60%; background: linear-gradient(180deg, rgba(180,220,200,0.3) 0%, transparent 100%); animation: af-rays 8s ease-in-out infinite alternate;
}
.scn-atlantic-fish-sightings .ray-fish {
  position: absolute; top: 25%; left: 60%; width: 80px; height: 30px; background: linear-gradient(90deg, transparent 0%, #5a8a7a 30%, #4a7a6a 70%, transparent 100%); border-radius: 50% 80% 80% 50% / 70% 60% 60% 70%; transform: rotate(-10deg); animation: af-ray 20s ease-in-out infinite;
}
.scn-atlantic-fish-sightings .shark-silhouette {
  position: absolute; top: 50%; right: 10%; width: 100px; height: 20px; background: linear-gradient(90deg, transparent 10%, #1a3a4a 30%, #0a2a3a 70%, transparent 90%); border-radius: 40% 60% 60% 40% / 30% 50% 50% 30%; clip-path: polygon(10% 20%, 40% 0%, 80% 20%, 100% 50%, 80% 80%, 40% 100%, 10% 80%, 0% 50%); animation: af-shark 25s linear infinite;
}
.scn-atlantic-fish-sightings .small-fish {
  position: absolute; width: 12px; height: 8px; background: radial-gradient(ellipse, #8ab8a8 0%, transparent 100%); border-radius: 50%; animation: af-fish 12s ease-in-out infinite;
}
.scn-atlantic-fish-sightings .school-a {
  top: 35%; left: 20%; animation-duration: 14s; animation-delay: -3s;
}
.scn-atlantic-fish-sightings .school-b {
  top: 55%; left: 70%; animation-duration: 18s; animation-delay: -8s;
}
.scn-atlantic-fish-sightings .plankton-dots {
  position: absolute; inset: 0; background: radial-gradient(circle at 30% 70%, rgba(150,200,180,0.08) 0%, transparent 30%), radial-gradient(circle at 80% 40%, rgba(150,200,180,0.06) 0%, transparent 40%); animation: af-plankton 20s linear infinite alternate;
}

.scn-navigating-atlantis-terrain {
  background: linear-gradient(180deg, #2a3a2a 0%, #3a4a3a 40%, #4a5a4a 100%), radial-gradient(ellipse at 50% 80%, #5a7a5a 0%, transparent 60%);
}
.scn-navigating-atlantis-terrain .seafloor-plain {
  position: absolute; bottom: 0; left: 0; right: 0; height: 60%; background: linear-gradient(180deg, #4a6a4a 0%, #2a4a2a 100%); border-radius: 40% 40% 0 0 / 30% 30% 0 0; animation: nt-floor 20s linear infinite alternate;
}
.scn-navigating-atlantis-terrain .hill-left {
  position: absolute; bottom: 20%; left: 5%; width: 35%; height: 40%; background: linear-gradient(180deg, #4a6a4a 0%, #2a4a2a 100%); border-radius: 40% 60% 0 0 / 50% 70% 0 0; clip-path: polygon(0% 100%, 50% 0%, 100% 100%); animation: nt-hill 25s ease-in-out infinite alternate;
}
.scn-navigating-atlantis-terrain .hill-right {
  position: absolute; bottom: 20%; right: 5%; width: 30%; height: 35%; background: linear-gradient(180deg, #4a6a4a 0%, #2a4a2a 100%); border-radius: 60% 40% 0 0 / 70% 50% 0 0; clip-path: polygon(0% 100%, 100% 0%, 100% 100%); animation: nt-hill 30s ease-in-out infinite alternate-reverse;
}
.scn-navigating-atlantis-terrain .nautilus-sub {
  position: absolute; bottom: 35%; left: 40%; width: 50px; height: 20px; background: linear-gradient(90deg, #6a7a6a 0%, #8a9a8a 50%, #6a7a6a 100%); border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%; box-shadow: 0 2px 10px rgba(0,0,0,0.4); transform: rotate(-5deg); animation: nt-sub 15s ease-in-out infinite;
}
.scn-navigating-atlantis-terrain .channel-path {
  position: absolute; bottom: 10%; left: 20%; width: 60%; height: 10%; background: linear-gradient(180deg, #3a5a3a 0%, #5a7a5a 100%); border-radius: 0 0 50% 50%; animation: nt-channel 12s ease-in-out infinite;
}
.scn-navigating-atlantis-terrain .dust-trail {
  position: absolute; bottom: 30%; left: 42%; width: 30px; height: 6px; background: radial-gradient(ellipse, rgba(200,200,180,0.2) 0%, transparent 100%); border-radius: 50%; filter: blur(2px); animation: nt-dust 8s ease-in-out infinite;
}
.scn-navigating-atlantis-terrain .far-ruins {
  position: absolute; bottom: 40%; left: 70%; width: 20px; height: 15px; background: linear-gradient(180deg, #4a5a4a 0%, #3a4a3a 100%); border-radius: 10% 10% 0 0; transform: scale(0.8); opacity: 0.4; animation: nt-ruins 30s linear infinite alternate;
}

.scn-terrain-changes-to-rocky {
  background: linear-gradient(180deg, #3a3a2a 0%, #4a4a3a 40%, #5a5a4a 100%), radial-gradient(ellipse at 50% 20%, #7a7a5a 0%, transparent 60%);
}
.scn-terrain-changes-to-rocky .sky-gradient {
  position: absolute; top: 0; left: 0; right: 0; height: 40%; background: linear-gradient(180deg, #4a4a3a 0%, #3a3a2a 100%); animation: tr-sky 15s ease-in-out infinite alternate;
}
.scn-terrain-changes-to-rocky .rocky-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 70%; background: linear-gradient(180deg, #5a5a4a 0%, #3a3a2a 100%); clip-path: polygon(0% 30%, 20% 10%, 40% 20%, 60% 5%, 80% 15%, 100% 0%, 100% 100%, 0% 100%); animation: tr-ground 10s ease-in-out infinite alternate;
}
.scn-terrain-changes-to-rocky .large-boulder {
  position: absolute; bottom: 20%; left: 20%; width: 30px; height: 25px; background: linear-gradient(135deg, #6a6a5a 0%, #4a4a3a 100%); border-radius: 40% 60% 50% 50% / 50% 40% 60% 50%; box-shadow: inset -4px -4px 8px rgba(0,0,0,0.5); animation: tr-boulder 18s ease-in-out infinite;
}
.scn-terrain-changes-to-rocky .small-rocks {
  position: absolute; inset: 0; background: radial-gradient(circle at 70% 60%, #5a5a4a 4px, transparent 4px), radial-gradient(circle at 30% 80%, #6a6a5a 3px, transparent 3px), radial-gradient(circle at 85% 40%, #5a5a4a 2px, transparent 2px); animation: tr-rocks 25s linear infinite alternate;
}
.scn-terrain-changes-to-rocky .basalt-gravel {
  position: absolute; bottom: 10%; left: 10%; width: 80%; height: 15%; background: repeating-linear-gradient(45deg, #4a4a3a 0px, #4a4a3a 2px, #5a5a4a 2px, #5a5a4a 4px); border-radius: 10% 10% 0 0; animation: tr-gravel 12s ease-in-out infinite;
}
.scn-terrain-changes-to-rocky .petrified-branch {
  position: absolute; bottom: 25%; left: 55%; width: 40px; height: 4px; background: linear-gradient(90deg, #4a3a2a 0%, #5a4a3a 100%); border-radius: 2px; transform: rotate(30deg); animation: tr-branch 20s ease-in-out infinite;
}
.scn-terrain-changes-to-rocky .figure-explorer {
  position: absolute; bottom: 30%; left: 40%; width: 18px; height: 36px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: tr-walk 6s ease-in-out infinite;
}
.scn-terrain-changes-to-rocky .lava-glint {
  position: absolute; bottom: 15%; right: 25%; width: 4px; height: 4px; background: radial-gradient(circle, #d0a060 0%, transparent 70%); border-radius: 50%; box-shadow: 0 0 12px 4px rgba(200,160,80,0.4); animation: tr-glint 3s ease-in-out infinite alternate;
}

@keyframes cs-flicker { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes cs-window { 0% { background-position: 0% 0%; } 100% { background-position: 0% 100%; } }
@keyframes cs-shelf { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes cs-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(0deg); } }
@keyframes cs-talk { 0% { transform: rotate(-3deg); } 50% { transform: rotate(3deg); } 100% { transform: rotate(-2deg); } }
@keyframes cs-glow { 0% { opacity: 0.6; box-shadow: 0 0 20px 5px #b07040; } 50% { opacity: 1; box-shadow: 0 0 40px 15px #d09050; } 100% { opacity: 0.7; box-shadow: 0 0 25px 8px #b07040; } }
@keyframes cs-bubbles { 0% { transform: translateY(0); opacity: 0.3; } 50% { transform: translateY(-10px); opacity: 0.6; } 100% { transform: translateY(0); opacity: 0.3; } }

@keyframes af-water { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes af-rays { 0% { transform: rotate(-5deg); opacity: 0.4; } 50% { transform: rotate(0deg); opacity: 0.7; } 100% { transform: rotate(5deg); opacity: 0.4; } }
@keyframes af-ray { 0% { transform: rotate(-10deg) translateX(0); } 50% { transform: rotate(-5deg) translateX(20px); } 100% { transform: rotate(-10deg) translateX(0); } }
@keyframes af-shark { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-40px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes af-fish { 0% { transform: translateX(0) translateY(0); } 25% { transform: translateX(10px) translateY(-5px); } 50% { transform: translateX(20px) translateY(0); } 75% { transform: translateX(30px) translateY(-3px); } 100% { transform: translateX(40px) translateY(0); } }
@keyframes af-plankton { 0% { opacity: 0.2; } 50% { opacity: 0.5; } 100% { opacity: 0.2; } }

@keyframes nt-floor { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.98); } 100% { transform: scaleY(1); } }
@keyframes nt-hill { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-3px) scale(1.02); } 100% { transform: translateY(0) scale(1); } }
@keyframes nt-sub { 0% { transform: translateY(0) rotate(-5deg); } 50% { transform: translateY(-2px) rotate(-3deg); } 100% { transform: translateY(0) rotate(-5deg); } }
@keyframes nt-channel { 0% { opacity: 0.6; } 50% { opacity: 0.8; } 100% { opacity: 0.6; } }
@keyframes nt-dust { 0% { transform: translateX(0) scale(1); opacity: 0.3; } 50% { transform: translateX(5px) scale(1.5); opacity: 0.6; } 100% { transform: translateX(10px) scale(1); opacity: 0.3; } }
@keyframes nt-ruins { 0% { transform: scale(0.8) translateY(0); opacity: 0.4; } 50% { transform: scale(0.85) translateY(-2px); opacity: 0.5; } 100% { transform: scale(0.8) translateY(0); opacity: 0.4; } }

@keyframes tr-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes tr-ground { 0% { clip-path: polygon(0% 30%, 20% 10%, 40% 20%, 60% 5%, 80% 15%, 100% 0%, 100% 100%, 0% 100%); } 50% { clip-path: polygon(0% 35%, 20% 15%, 40% 25%, 60% 10%, 80% 20%, 100% 5%, 100% 100%, 0% 100%); } 100% { clip-path: polygon(0% 30%, 20% 10%, 40% 20%, 60% 5%, 80% 15%, 100% 0%, 100% 100%, 0% 100%); } }
@keyframes tr-boulder { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(2deg) translateY(-3px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes tr-rocks { 0% { background-position: 0% 0%; opacity: 0.6; } 50% { background-position: 5% 3%; opacity: 0.8; } 100% { background-position: 0% 0%; opacity: 0.6; } }
@keyframes tr-gravel { 0% { background-position: 0% 0%; } 50% { background-position: 10% 0%; } 100% { background-position: 0% 0%; } }
@keyframes tr-branch { 0% { transform: rotate(30deg) translateX(0); } 50% { transform: rotate(32deg) translateX(2px); } 100% { transform: rotate(30deg) translateX(0); } }
@keyframes tr-walk { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 25% { transform: translateX(3px) translateY(-1px) rotate(1deg); } 50% { transform: translateX(6px) translateY(0) rotate(-1deg); } 75% { transform: translateX(9px) translateY(-1px) rotate(2deg); } 100% { transform: translateX(12px) translateY(0) rotate(0deg); } }
@keyframes tr-glint { 0% { opacity: 0.3; box-shadow: 0 0 8px 2px rgba(200,160,80,0.3); } 50% { opacity: 1; box-shadow: 0 0 16px 6px rgba(200,160,80,0.6); } 100% { opacity: 0.3; box-shadow: 0 0 8px 2px rgba(200,160,80,0.3); } }

.scn-jidda-sight {
  background: 
    linear-gradient(180deg, #7fb6c4 0%, #3b6b8e 40%, #1a3a5c 80%, #0d1f33 100%),
    radial-gradient(ellipse at 80% 20%, #f0d0a0 0%, transparent 70%);
}
.scn-jidda-sight .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #9ac7d6 0%, #6ea5b3 100%);
  animation: jd-sky 20s ease-in-out infinite alternate;
}
.scn-jidda-sight .sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #1e5a7a 0%, #0f3a52 100%);
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.3);
  animation: jd-sea 8s ease-in-out infinite alternate;
}
.scn-jidda-sight .city-skyline {
  position: absolute; bottom: 45%; left: 10%; right: 10%; height: 20%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1f150d 100%);
  border-radius: 20% 10% 0 0 / 40% 30% 0 0;
  clip-path: polygon(0% 100%, 3% 40%, 7% 100%, 10% 30%, 14% 100%, 18% 50%, 22% 100%, 25% 20%, 30% 100%, 35% 60%, 40% 100%, 45% 35%, 50% 100%, 55% 45%, 60% 100%, 65% 25%, 70% 100%, 75% 55%, 80% 100%, 85% 30%, 90% 100%, 95% 50%, 100% 100%);
  animation: jd-city 12s ease-in-out infinite;
}
.scn-jidda-sight .minaret {
  position: absolute; bottom: 55%; left: 28%; width: 6px; height: 60px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 2px 2px 0 0;
  transform: translateX(-50%);
  animation: jd-minaret 10s ease-in-out infinite alternate;
}
.scn-jidda-sight .dome {
  position: absolute; bottom: 60%; left: 62%; width: 30px; height: 20px;
  background: radial-gradient(ellipse at 50% 100%, #7a6a5a 0%, #4a3a2a 100%);
  border-radius: 50% 50% 0 0;
  transform: translateX(-50%);
  animation: jd-dome 6s ease-in-out infinite;
}
.scn-jidda-sight .boat {
  position: absolute; bottom: 35%; left: 15%; width: 40px; height: 10px;
  background: linear-gradient(90deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.4);
  animation: jd-boat 7s ease-in-out infinite alternate;
}
.scn-jidda-sight .sun-reflection {
  position: absolute; bottom: 40%; left: 70%; width: 60px; height: 120px;
  background: linear-gradient(180deg, rgba(255,230,180,0.6) 0%, rgba(255,200,120,0) 100%);
  border-radius: 50% 50% 0 0;
  filter: blur(8px);
  animation: jd-sunref 5s ease-in-out infinite alternate;
}
.scn-jidda-sight .cloud-a {
  position: absolute; top: 8%; left: 20%; width: 100px; height: 20px;
  background: rgba(255,255,255,0.4);
  border-radius: 50%;
  filter: blur(8px);
  animation: jd-cloud-a 40s linear infinite;
}
.scn-jidda-sight .cloud-b {
  position: absolute; top: 15%; right: 10%; width: 70px; height: 14px;
  background: rgba(255,255,255,0.3);
  border-radius: 50%;
  filter: blur(6px);
  animation: jd-cloud-b 50s linear infinite reverse;
}
@keyframes jd-sky { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes jd-sea { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-2px) scaleY(1.02) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes jd-city { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes jd-minaret { 0% { transform: translateX(-50%) } 50% { transform: translateX(-50%) translateY(-2px) } 100% { transform: translateX(-50%) } }
@keyframes jd-dome { 0% { transform: translateX(-50%) scaleY(1) } 50% { transform: translateX(-50%) scaleY(1.02) } 100% { transform: translateX(-50%) scaleY(1) } }
@keyframes jd-boat { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(4px) rotate(2deg) } 75% { transform: translateX(-4px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes jd-sunref { 0% { opacity:0.5; transform: scaleY(0.9) } 50% { opacity:0.8; transform: scaleY(1.1) } 100% { opacity:0.6; transform: scaleY(0.95) } }
@keyframes jd-cloud-a { 0% { transform: translateX(-40px) } 100% { transform: translateX(120vw) } }
@keyframes jd-cloud-b { 0% { transform: translateX(0) } 100% { transform: translateX(-100vw) } }

.scn-next-morning-sighting {
  background: 
    linear-gradient(180deg, #a4c8d4 0%, #4a7a94 40%, #1a4a64 80%, #0a2a3e 100%),
    radial-gradient(ellipse at 60% 30%, #f5e6c0 0%, transparent 50%);
}
.scn-next-morning-sighting .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #b3d6e3 0%, #7fb5c6 100%);
  animation: nm-sky 18s ease-in-out infinite alternate;
}
.scn-next-morning-sighting .sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #2a6a82 0%, #0f3a4e 100%);
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.3);
  animation: nm-sea 6s ease-in-out infinite alternate;
}
.scn-next-morning-sighting .ship-left {
  position: absolute; bottom: 35%; left: 15%; width: 80px; height: 50px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1f14 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 20% 20%;
  transform: skewY(-3deg);
  animation: nm-ship-left 10s ease-in-out infinite alternate;
}
.scn-next-morning-sighting .ship-right {
  position: absolute; bottom: 40%; right: 20%; width: 70px; height: 40px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1f14 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 20% 20%;
  transform: skewY(2deg);
  animation: nm-ship-right 12s ease-in-out infinite alternate;
}
.scn-next-morning-sighting .sail-1 {
  position: absolute; bottom: 58%; left: 20%; width: 40px; height: 55px;
  background: radial-gradient(ellipse at 50% 0%, #f5ece0 0%, #d4c4b0 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%;
  transform: rotate(-5deg);
  animation: nm-sail1 8s ease-in-out infinite alternate;
}
.scn-next-morning-sighting .sail-2 {
  position: absolute; bottom: 60%; right: 25%; width: 35px; height: 45px;
  background: radial-gradient(ellipse at 50% 0%, #f0e8d8 0%, #d0c0a8 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%;
  transform: rotate(4deg);
  animation: nm-sail2 7s ease-in-out infinite alternate;
}
.scn-next-morning-sighting .sun {
  position: absolute; top: 10%; left: 70%; width: 40px; height: 40px;
  background: radial-gradient(circle, #fff8e0 0%, #f5d090 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 10px rgba(245,208,144,0.4), 0 0 80px 20px rgba(245,208,144,0.2);
  animation: nm-sun 4s ease-in-out infinite alternate;
}
.scn-next-morning-sighting .cloud-a {
  position: absolute; top: 5%; left: 10%; width: 120px; height: 25px;
  background: rgba(255,255,255,0.4);
  border-radius: 50%;
  filter: blur(10px);
  animation: nm-cloud-a 35s linear infinite;
}
.scn-next-morning-sighting .cloud-b {
  position: absolute; top: 12%; right: 5%; width: 80px; height: 18px;
  background: rgba(255,255,255,0.3);
  border-radius: 50%;
  filter: blur(8px);
  animation: nm-cloud-b 45s linear infinite reverse;
}
@keyframes nm-sky { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes nm-sea { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes nm-ship-left { 0% { transform: skewY(-3deg) translateX(0) } 50% { transform: skewY(-3deg) translateX(5px) } 100% { transform: skewY(-3deg) translateX(0) } }
@keyframes nm-ship-right { 0% { transform: skewY(2deg) translateX(0) } 50% { transform: skewY(2deg) translateX(-4px) } 100% { transform: skewY(2deg) translateX(0) } }
@keyframes nm-sail1 { 0% { transform: rotate(-5deg) scaleY(1) } 50% { transform: rotate(-3deg) scaleY(1.05) } 100% { transform: rotate(-5deg) scaleY(1) } }
@keyframes nm-sail2 { 0% { transform: rotate(4deg) scaleY(1) } 50% { transform: rotate(6deg) scaleY(1.04) } 100% { transform: rotate(4deg) scaleY(1) } }
@keyframes nm-sun { 0% { box-shadow: 0 0 30px 8px rgba(245,208,144,0.3), 0 0 60px 15px rgba(245,208,144,0.15) } 50% { box-shadow: 0 0 50px 15px rgba(255,220,160,0.5), 0 0 90px 25px rgba(255,220,160,0.3) } 100% { box-shadow: 0 0 35px 10px rgba(245,208,144,0.35), 0 0 70px 18px rgba(245,208,144,0.2) } }
@keyframes nm-cloud-a { 0% { transform: translateX(-50px) } 100% { transform: translateX(130vw) } }
@keyframes nm-cloud-b { 0% { transform: translateX(0) } 100% { transform: translateX(-120vw) } }

.scn-object-spotted {
  background: 
    linear-gradient(180deg, #b0c8d4 0%, #5a7a8a 40%, #2a4a5a 80%, #0a1a2a 100%),
    radial-gradient(ellipse at 50% 20%, #f0e6c0 0%, transparent 60%);
}
.scn-object-spotted .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #c3dce8 0%, #8ab0c0 100%);
  animation: ob-sky 6s ease-in-out infinite alternate;
}
.scn-object-spotted .sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #1a5a72 0%, #0a3a4e 100%);
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.4);
  animation: ob-sea 4s ease-in-out infinite alternate;
}
.scn-object-spotted .object {
  position: absolute; bottom: 38%; left: 45%; width: 120px; height: 30px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a12 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.6);
  transform: translateX(-50%);
  animation: ob-object 5s ease-in-out infinite alternate;
}
.scn-object-spotted .ripple {
  position: absolute; bottom: 35%; left: 45%; width: 160px; height: 10px;
  border: 2px solid rgba(255,255,255,0.3);
  border-radius: 50%;
  transform: translateX(-50%);
  animation: ob-ripple 3s ease-out infinite;
}
.scn-object-spotted .wake {
  position: absolute; bottom: 32%; left: 42%; width: 100px; height: 20px;
  background: linear-gradient(90deg, rgba(255,255,255,0.4) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(4px);
  animation: ob-wake 6s ease-in-out infinite alternate;
}
.scn-object-spotted .reflection {
  position: absolute; bottom: 30%; left: 45%; width: 80px; height: 60px;
  background: linear-gradient(180deg, rgba(100,120,140,0.5) 0%, transparent 100%);
  filter: blur(6px);
  transform: translateX(-50%);
  animation: ob-reflection 4s ease-in-out infinite alternate;
}
.scn-object-spotted .cloud-dark {
  position: absolute; top: 10%; left: 30%; width: 150px; height: 30px;
  background: rgba(40,50,60,0.5);
  border-radius: 50%;
  filter: blur(12px);
  animation: ob-cloud 8s linear infinite;
}
@keyframes ob-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes ob-sea { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-4px) scaleY(1.03) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes ob-object { 0% { transform: translateX(-50%) translateY(0) scaleX(1) } 50% { transform: translateX(-50%) translateY(-3px) scaleX(1.02) } 100% { transform: translateX(-50%) translateY(0) scaleX(1) } }
@keyframes ob-ripple { 0% { opacity:1; transform: translateX(-50%) scale(1) } 100% { opacity:0; transform: translateX(-50%) scale(1.5) } }
@keyframes ob-wake { 0% { transform: translateX(0) scaleX(0.8) } 50% { transform: translateX(10px) scaleX(1.1) } 100% { transform: translateX(0) scaleX(0.8) } }
@keyframes ob-reflection { 0% { opacity:0.3; transform: translateX(-50%) scaleY(1) } 50% { opacity:0.6; transform: translateX(-50%) scaleY(1.2) } 100% { opacity:0.4; transform: translateX(-50%) scaleY(1) } }
@keyframes ob-cloud { 0% { transform: translateX(-60px) } 100% { transform: translateX(130vw) } }

.scn-dugong-identified {
  background: 
    linear-gradient(180deg, #b8ccd4 0%, #5a7a8a 40%, #2a4a5a 80%, #0a1a2a 100%),
    radial-gradient(ellipse at 50% 25%, #f0e6c0 0%, transparent 50%);
}
.scn-dugong-identified .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #cbe0ec 0%, #90b8c8 100%);
  animation: dg-sky 8s ease-in-out infinite alternate;
}
.scn-dugong-identified .sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #1e627a 0%, #0e3a4e 100%);
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.4);
  animation: dg-sea 3s ease-in-out infinite alternate;
}
.scn-dugong-identified .dugong-body {
  position: absolute; bottom: 35%; left: 40%; width: 140px; height: 50px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 30% 20% 40% / 60% 40% 30% 50%;
  box-shadow: 0 6px 20px rgba(0,0,0,0.5);
  transform: translateX(-50%);
  animation: dg-body 7s ease-in-out infinite alternate;
}
.scn-dugong-identified .dugong-tail {
  position: absolute; bottom: 38%; left: 55%; width: 60px; height: 20px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 0 50% 50% 0 / 0 40% 40% 0;
  transform: translateY(-50%);
  animation: dg-tail 5s ease-in-out infinite alternate;
}
.scn-dugong-identified .splash {
  position: absolute; bottom: 30%; left: 38%; width: 80px; height: 40px;
  background: radial-gradient(ellipse at 50% 100%, rgba(255,255,255,0.5) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(8px);
  animation: dg-splash 4s ease-in-out infinite alternate;
}
.scn-dugong-identified .foam {
  position: absolute; bottom: 28%; left: 42%; width: 50px; height: 10px;
  background: rgba(255,255,255,0.4);
  border-radius: 50%;
  filter: blur(4px);
  animation: dg-foam 3s ease-in-out infinite;
}
.scn-dugong-identified .wave {
  position: absolute; bottom: 20%; left: 20%; right: 20%; height: 15px;
  background: linear-gradient(90deg, transparent 0%, rgba(255,255,255,0.2) 30%, transparent 70%);
  border-radius: 50%;
  filter: blur(3px);
  animation: dg-wave 6s ease-in-out infinite alternate;
}
@keyframes dg-sky { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes dg-sea { 0% { transform: translateY(0) } 50% { transform: translateY(-5px) } 100% { transform: translateY(0) } }
@keyframes dg-body { 0% { transform: translateX(-50%) translateY(0) rotate(-2deg) scaleX(1) } 50% { transform: translateX(-50%) translateY(-8px) rotate(0deg) scaleX(1.03) } 100% { transform: translateX(-50%) translateY(0) rotate(2deg) scaleX(1) } }
@keyframes dg-tail { 0% { transform: translateY(-50%) rotate(0deg) } 50% { transform: translateY(-50%) rotate(10deg) } 100% { transform: translateY(-50%) rotate(0deg) } }
@keyframes dg-splash { 0% { opacity:0.3; transform: scaleY(0.8) } 50% { opacity:0.8; transform: scaleY(1.2) } 100% { opacity:0.4; transform: scaleY(0.9) } }
@keyframes dg-foam { 0% { transform: translateX(0) scale(1); opacity:0.4 } 50% { transform: translateX(10px) scale(1.2); opacity:0.7 } 100% { transform: translateX(0) scale(1); opacity:0.4 } }
@keyframes dg-wave { 0% { transform: translateX(0) scaleX(0.8) } 50% { transform: translateX(20px) scaleX(1.1) } 100% { transform: translateX(0) scaleX(0.8) } }

.scn-cable-condition {
  background: linear-gradient(180deg, #1a2a3a 0%, #0d1a2a 40%, #061220 100%), radial-gradient(ellipse at 50% 60%, #1a3a4a 0%, transparent 80%);
}
.scn-cable-condition .bg-dark {
  position: absolute; inset: 30% 0 0 0;
  background: linear-gradient(180deg, #0a1828 0%, #030d1a 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
  animation: cc-pulse 12s ease-in-out infinite alternate;
}
.scn-cable-condition .bg-mid {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #0d2233 0%, #1a3a4a 50%, #0d1a2a 100%);
  opacity: 0.6;
  animation: cc-drift 20s ease-in-out infinite;
}
.scn-cable-condition .cable-body {
  position: absolute; bottom: 35%; left: 15%; right: 15%; height: 18px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 50%, #4a3a2a 100%);
  border-radius: 40% 40% 40% 40% / 50% 50% 50% 50%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.6);
  transform: rotate(-2deg) scaleX(1.1);
  animation: cc-cable 8s ease-in-out infinite alternate;
}
.scn-cable-condition .cable-crust {
  position: absolute; bottom: 36%; left: 18%; right: 22%; height: 14px;
  background: linear-gradient(90deg, transparent 0%, #6a5a4a 10%, #5a4a3a 30%, #7a6a5a 50%, #4a3a2a 70%, #6a5a4a 90%, transparent 100%);
  border-radius: 30% 30% 30% 30% / 40% 40% 40% 40%;
  filter: blur(1px);
  opacity: 0.8;
  animation: cc-crust 10s ease-in-out infinite alternate;
}
.scn-cable-condition .foram-a {
  position: absolute; bottom: 40%; left: 25%; width: 8px; height: 6px;
  background: radial-gradient(circle, #8a7a6a 0%, #4a3a2a 100%);
  border-radius: 40% 60% 50% 50% / 50% 50% 40% 60%;
  box-shadow: 0 0 4px rgba(0,0,0,0.3);
  animation: cc-foram 15s ease-in-out infinite;
}
.scn-cable-condition .foram-b {
  position: absolute; bottom: 38%; right: 28%; width: 6px; height: 8px;
  background: radial-gradient(circle, #7a6a5a 0%, #3a2a1a 100%);
  border-radius: 60% 40% 40% 60% / 50% 50% 60% 40%;
  box-shadow: 0 0 4px rgba(0,0,0,0.3);
  animation: cc-foram 18s ease-in-out infinite reverse;
}
.scn-cable-condition .seashell {
  position: absolute; bottom: 40%; left: 60%; width: 12px; height: 8px;
  background: radial-gradient(ellipse at 30% 40%, #b0a090 0%, #6a5a4a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform: rotate(15deg);
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: cc-shell 20s ease-in-out infinite alternate;
}
.scn-cable-condition .gravel {
  position: absolute; bottom: 33%; left: 40%; width: 20px; height: 10px;
  background: linear-gradient(90deg, #4a3a2a 0%, #5a4a3a 30%, #3a2a1a 70%, #4a3a2a 100%);
  border-radius: 20% 30% 30% 20% / 40% 40% 40% 40%;
  filter: blur(1.5px);
  opacity: 0.7;
  animation: cc-gravel 25s ease-in-out infinite;
}
.scn-cable-condition .shadow-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, transparent 0%, #030d1a 100%);
  opacity: 0.5;
  animation: cc-shade 16s ease-in-out infinite alternate;
}
@keyframes cc-pulse { 0% { opacity: 0.7 } 50% { opacity: 0.9 } 100% { opacity: 0.6 } }
@keyframes cc-drift { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(2px) } }
@keyframes cc-cable { 0% { transform: rotate(-2deg) scaleX(1.1) } 50% { transform: rotate(0deg) scaleX(1.08) } 100% { transform: rotate(-3deg) scaleX(1.12) } }
@keyframes cc-crust { 0% { opacity: 0.7 } 50% { opacity: 0.9 } 100% { opacity: 0.6 } }
@keyframes cc-foram { 0% { transform: translate(0, 0) scale(1) } 33% { transform: translate(2px, -1px) scale(1.1) } 66% { transform: translate(-1px, 1px) scale(0.95) } 100% { transform: translate(0, 0) scale(1) } }
@keyframes cc-shell { 0% { transform: rotate(15deg) } 50% { transform: rotate(20deg) translateY(-2px) } 100% { transform: rotate(12deg) } }
@keyframes cc-gravel { 0% { transform: translateX(0) } 50% { transform: translateX(3px) } 100% { transform: translateX(-2px) } }
@keyframes cc-shade { 0% { opacity: 0.4 } 50% { opacity: 0.6 } 100% { opacity: 0.5 } }

.scn-approaching-ireland {
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 40%, #1a1a2a 100%), radial-gradient(ellipse at 50% 100%, #1a2a3a 0%, transparent 80%);
}
.scn-approaching-ireland .sky-heavy {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #2a2a3a 0%, #4a4a5a 40%, #3a3a4a 100%);
  animation: ai-sky 15s ease-in-out infinite alternate;
}
.scn-approaching-ireland .sea-dark {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 50%, #060d1a 100%);
  border-radius: 30% 70% 0 0 / 20% 40% 0 0;
  animation: ai-sea 8s ease-in-out infinite alternate;
}
.scn-approaching-ireland .cliff-left {
  position: absolute; bottom: 35%; left: 0; width: 25%; height: 45%;
  background: linear-gradient(90deg, #2a2a3a 0%, #3a3a4a 60%, transparent 100%);
  border-radius: 0 40% 20% 0 / 0 30% 10% 0;
  box-shadow: inset -8px 0 16px rgba(0,0,0,0.5);
  animation: ai-cliff 20s ease-in-out infinite;
}
.scn-approaching-ireland .lighthouse {
  position: absolute; bottom: 50%; left: 10%; width: 12px; height: 40px;
  background: linear-gradient(180deg, #4a4a5a 0%, #3a3a4a 50%, #2a2a3a 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 10% 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: ai-tower 6s ease-in-out infinite;
}
.scn-approaching-ireland .light-beam {
  position: absolute; bottom: 55%; left: 12%; width: 80px; height: 6px;
  background: linear-gradient(90deg, #c0a060 0%, rgba(192,160,96,0.2) 100%);
  border-radius: 50%;
  filter: blur(3px);
  box-shadow: 0 0 20px 10px rgba(192,160,96,0.3);
  transform-origin: left center;
  transform: rotate(-10deg);
  animation: ai-beam 3s ease-in-out infinite alternate;
}
.scn-approaching-ireland .boat-hull {
  position: absolute; bottom: 32%; right: 20%; width: 50px; height: 16px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.5);
  animation: ai-hull 5s ease-in-out infinite alternate;
}
.scn-approaching-ireland .boat-sail {
  position: absolute; bottom: 38%; right: 25%; width: 8px; height: 24px;
  background: linear-gradient(180deg, #6a6a7a 0%, #4a4a5a 100%);
  border-radius: 10% 10% 20% 20% / 20% 20% 30% 30%;
  transform: skewX(5deg);
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: ai-sail 4s ease-in-out infinite alternate;
}
.scn-approaching-ireland .spray {
  position: absolute; bottom: 36%; right: 22%; width: 30px; height: 8px;
  background: radial-gradient(ellipse, rgba(200,200,220,0.4) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(4px);
  animation: ai-spray 2s ease-in-out infinite alternate;
}
.scn-approaching-ireland .fog-bank {
  position: absolute; bottom: 40%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, rgba(60,60,80,0.3) 0%, transparent 100%);
  filter: blur(8px);
  animation: ai-fog 30s ease-in-out infinite;
}
@keyframes ai-sky { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.7 } }
@keyframes ai-sea { 0% { transform: translateY(0) } 50% { transform: translateY(3px) } 100% { transform: translateY(-2px) } }
@keyframes ai-cliff { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(0.98) } }
@keyframes ai-tower { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes ai-beam { 0% { opacity: 0.6; transform: rotate(-15deg) } 50% { opacity: 1; transform: rotate(-10deg) } 100% { opacity: 0.7; transform: rotate(-8deg) } }
@keyframes ai-hull { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-3px) rotate(1deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes ai-sail { 0% { transform: skewX(5deg) } 50% { transform: skewX(8deg) translateX(2px) } 100% { transform: skewX(3deg) } }
@keyframes ai-spray { 0% { opacity: 0.3; transform: translate(0, 0) scale(1) } 100% { opacity: 0.6; transform: translate(5px, -5px) scale(1.2) } }
@keyframes ai-fog { 0% { opacity: 0.3 } 50% { opacity: 0.6 } 100% { opacity: 0.2 } }

.scn-circling-south {
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 30%, #0a0a1a 100%), radial-gradient(ellipse at 50% 100%, #1a2a3a 0%, transparent 80%);
}
.scn-circling-south .sky-grey {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 60%, #1a1a2a 100%);
  animation: cs-sky 18s ease-in-out infinite alternate;
}
.scn-circling-south .sea-rough {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 30%, #060d1a 70%, #030d1a 100%);
  border-radius: 50% 50% 0 0 / 20% 20% 0 0;
  animation: cs-sea 7s ease-in-out infinite alternate;
}
.scn-circling-south .headland {
  position: absolute; bottom: 30%; right: 0; width: 30%; height: 50%;
  background: linear-gradient(90deg, transparent 0%, #2a3a3a 30%, #1a2a2a 100%);
  border-radius: 60% 0 0 40% / 40% 0 0 20%;
  box-shadow: inset 10px 0 20px rgba(0,0,0,0.5);
  animation: cs-head 25s ease-in-out infinite;
}
.scn-circling-south .ship-hull {
  position: absolute; bottom: 28%; left: 25%; width: 45px; height: 14px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.6);
  animation: cs-hull 6s ease-in-out infinite alternate;
}
.scn-circling-south .ship-mast {
  position: absolute; bottom: 34%; left: 30%; width: 4px; height: 30px;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 10%;
  transform: rotate(3deg);
  box-shadow: -2px 0 4px rgba(0,0,0,0.3);
  animation: cs-mast 5s ease-in-out infinite alternate;
}
.scn-circling-south .wave-foam-a {
  position: absolute; bottom: 30%; left: 15%; width: 40px; height: 8px;
  background: radial-gradient(ellipse, rgba(200,200,220,0.3) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(3px);
  animation: cs-foam-a 4s ease-in-out infinite alternate;
}
.scn-circling-south .wave-foam-b {
  position: absolute; bottom: 26%; right: 20%; width: 30px; height: 6px;
  background: radial-gradient(ellipse, rgba(200,200,220,0.25) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(3px);
  animation: cs-foam-b 5s ease-in-out infinite alternate;
  animation-delay: 1.5s;
}
.scn-circling-south .cloud-cover {
  position: absolute; top: 10%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, rgba(50,50,60,0.4) 0%, transparent 100%);
  filter: blur(10px);
  animation: cs-cloud 40s ease-in-out infinite;
}
.scn-circling-south .bird {
  position: absolute; top: 25%; left: 50%; width: 12px; height: 6px;
  background: #1a1a2a;
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  transform: rotate(-15deg);
  animation: cs-bird 7s ease-in-out infinite;
}
@keyframes cs-sky { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.6 } }
@keyframes cs-sea { 0% { transform: translateY(0) } 50% { transform: translateY(4px) } 100% { transform: translateY(-3px) } }
@keyframes cs-head { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.01) } 100% { transform: scaleX(0.99) } }
@keyframes cs-hull { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-2px) rotate(2deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes cs-mast { 0% { transform: rotate(3deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(1deg) } }
@keyframes cs-foam-a { 0% { opacity: 0.3; transform: translate(0, 0) scale(1) } 100% { opacity: 0.6; transform: translate(8px, -4px) scale(1.3) } }
@keyframes cs-foam-b { 0% { opacity: 0.2; transform: translate(0, 0) scale(1) } 100% { opacity: 0.5; transform: translate(-6px, -3px) scale(1.2) } }
@keyframes cs-cloud { 0% { opacity: 0.3 } 50% { opacity: 0.6 } 100% { opacity: 0.2 } }
@keyframes cs-bird { 0% { transform: translate(0, 0) rotate(-15deg) } 25% { transform: translate(15px, -8px) rotate(-10deg) } 50% { transform: translate(30px, -2px) rotate(-20deg) } 75% { transform: translate(45px, -10px) rotate(-12deg) } 100% { transform: translate(60px, -4px) rotate(-18deg) } }

.scn-finding-wreck-site {
  background: linear-gradient(180deg, #4a7a8a 0%, #2a5a6a 20%, #1a4a5a 50%, #0a3a4a 100%), radial-gradient(ellipse at 60% 30%, #6a9aaa 0%, transparent 70%);
}
.scn-finding-wreck-site .bg-bright {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #6a9aaa 0%, #4a7a8a 40%, #2a5a6a 100%);
  animation: fws-sky 15s ease-in-out infinite alternate;
}
.scn-finding-wreck-site .sun-glare {
  position: absolute; top: 8%; right: 25%; width: 60px; height: 60px;
  background: radial-gradient(circle, rgba(255,240,200,0.6) 0%, rgba(255,220,160,0.2) 40%, transparent 100%);
  border-radius: 50%;
  filter: blur(8px);
  animation: fws-glare 6s ease-in-out infinite alternate;
}
.scn-finding-wreck-site .horizon-line {
  position: absolute; bottom: 35%; left: 0; right: 0; height: 2px;
  background: linear-gradient(90deg, #1a4a5a 0%, #6a9aaa 50%, #1a4a5a 100%);
  box-shadow: 0 1px 4px rgba(0,0,0,0.3);
  animation: fws-horizon 10s ease-in-out infinite;
}
.scn-finding-wreck-site .steamer-hull {
  position: absolute; bottom: 32%; left: 55%; width: 80px; height: 18px;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%;
  box-shadow: 0 6px 16px rgba(0,0,0,0.5), inset 0 -4px 8px rgba(0,0,0,0.3);
  animation: fws-steamer 8s ease-in-out infinite alternate;
}
.scn-finding-wreck-site .steamer-smoke {
  position: absolute; bottom: 48%; left: 60%; width: 10px; height: 20px;
  background: linear-gradient(180deg, rgba(100,100,110,0.4) 0%, rgba(80,80,90,0.2) 50%, transparent 100%);
  border-radius: 50%;
  filter: blur(4px);
  animation: fws-smoke 4s ease-in-out infinite alternate;
}
.scn-finding-wreck-site .captain-fig {
  position: absolute; bottom: 26%; left: 30%; width: 8px; height: 16px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  box-shadow: 2px 0 6px rgba(0,0,0,0.4);
  animation: fws-captain 5s ease-in-out infinite;
}
.scn-finding-wreck-site .sextant {
  position: absolute; bottom: 28%; left: 32%; width: 6px; height: 10px;
  background: linear-gradient(180deg, #8a7a6a 0%, #4a3a2a 100%);
  border-radius: 20% 20% 30% 30% / 30% 30% 40% 40%;
  transform: rotate(20deg);
  box-shadow: 0 1px 4px rgba(0,0,0,0.3);
  animation: fws-sextant 4s ease-in-out infinite alternate;
}
.scn-finding-wreck-site .deck-rail {
  position: absolute; bottom: 30%; left: 25%; right: 20%; height: 2px;
  background: #2a2a3a;
  box-shadow: 0 0 4px rgba(0,0,0,0.3);
  animation: fws-rail 7s ease-in-out infinite;
}
.scn-finding-wreck-site .shadow-sharp {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,20,30,0.5) 100%);
  animation: fws-shadow 12s ease-in-out infinite alternate;
}
@keyframes fws-sky { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.7 } }
@keyframes fws-glare { 0% { opacity: 0.5; transform: scale(1) } 50% { opacity: 0.8; transform: scale(1.1) } 100% { opacity: 0.6; transform: scale(0.95) } }
@keyframes fws-horizon { 0% { opacity: 0.6 } 50% { opacity: 0.8 } 100% { opacity: 0.5 } }
@keyframes fws-steamer { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes fws-smoke { 0% { transform: translate(0, 0) scale(1); opacity: 0.3 } 100% { transform: translate(4px, -8px) scale(1.5); opacity: 0.1 } }
@keyframes fws-captain { 0% { transform: translateX(0) translateY(0) rotate(-1deg) } 25% { transform: translateX(2px) translateY(-1px) rotate(0deg) } 50% { transform: translateX(0) translateY(0) rotate(1deg) } 75% { transform: translateX(-2px) translateY(-1px) rotate(0deg) } 100% { transform: translateX(0) translateY(0) rotate(-1deg) } }
@keyframes fws-sextant { 0% { transform: rotate(20deg) } 50% { transform: rotate(25deg) } 100% { transform: rotate(18deg) } }
@keyframes fws-rail { 0% { opacity: 0.6 } 50% { opacity: 0.8 } 100% { opacity: 0.5 } }
@keyframes fws-shadow { 0% { opacity: 0.4 } 50% { opacity: 0.6 } 100% { opacity: 0.5 } }

/* Scene: missed-fish-at-speed (Dim interior, porthole view) */
.scn-missed-fish-at-speed {
  background: linear-gradient(180deg, #1e1e2a 0%, #2a2a3a 40%, #3a3a4e 100%),
              radial-gradient(ellipse at 70% 80%, #2a2a3a 0%, #1a1a2a 70%);
}
.scn-missed-fish-at-speed .room-bg {
  position:absolute; inset:0; background: #1e1e2a; opacity:0.6;
  animation: mfs-pulse 8s ease-in-out infinite alternate;
}
.scn-missed-fish-at-speed .porthole-ring {
  position:absolute; top:20%; left:30%; width:160px; height:160px;
  border-radius:50%; border:8px solid #4a4a5e; box-sizing:border-box;
  background: transparent; box-shadow: inset 0 0 30px rgba(0,0,0,0.7), 0 0 40px rgba(100,100,130,0.3);
  animation: mfs-float 12s ease-in-out infinite alternate;
}
.scn-missed-fish-at-speed .porthole-glass {
  position:absolute; top:20%; left:30%; width:160px; height:160px;
  border-radius:50%; background: radial-gradient(circle at 30% 40%, rgba(180,200,255,0.1) 0%, rgba(20,30,50,0.8) 100%);
  box-shadow: inset 0 0 40px rgba(0,20,40,0.6);
  animation: mfs-view 20s ease-in-out infinite alternate;
}
.scn-missed-fish-at-speed .fish-shadow {
  position:absolute; top:40%; left:25%; width:80px; height:20px;
  background: rgba(100,130,170,0.3); border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%;
  filter: blur(2px); transform-origin: left center;
  animation: mfs-fish 6s ease-in-out infinite;
}
.scn-missed-fish-at-speed .fish-2 {
  top:55%; left:15%; width:60px; height:15px; animation-delay: -2s; opacity:0.5;
}
.scn-missed-fish-at-speed .fish-3 {
  top:70%; left:35%; width:50px; height:12px; animation-delay: -4s; opacity:0.4;
}
.scn-missed-fish-at-speed .glow-spot {
  position:absolute; bottom:15%; left:40%; width:30px; height:30px;
  background: radial-gradient(circle, #d4a060 0%, transparent 100%);
  border-radius:50%; box-shadow: 0 0 40px 20px rgba(212,160,96,0.3);
  animation: mfs-glow 5s ease-in-out infinite alternate;
}
.scn-missed-fish-at-speed .shadow-figure {
  position:absolute; bottom:10%; right:20%; width:40px; height:70px;
  background: rgba(20,20,30,0.8); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  filter: blur(3px); animation: mfs-figure 8s ease-in-out infinite alternate;
}
@keyframes mfs-pulse { 0% {opacity:0.6;} 50% {opacity:0.8;} 100% {opacity:0.6;} }
@keyframes mfs-float { 0% {transform:translateY(0);} 50% {transform:translateY(-8px);} 100% {transform:translateY(0);} }
@keyframes mfs-view { 0% {opacity:0.7; transform:scale(1);} 50% {opacity:1; transform:scale(1.02);} 100% {opacity:0.8; transform:scale(1);} }
@keyframes mfs-fish { 0% {transform:translateX(0) rotate(0deg);} 50% {transform:translateX(30px) rotate(5deg);} 100% {transform:translateX(0) rotate(-3deg);} }
@keyframes mfs-glow { 0% {opacity:0.5; transform:scale(1);} 50% {opacity:1; transform:scale(1.3);} 100% {opacity:0.6; transform:scale(0.9);} }
@keyframes mfs-figure { 0% {transform:translateY(0) rotate(2deg);} 50% {transform:translateY(-5px) rotate(-2deg);} 100% {transform:translateY(0) rotate(1deg);} }

/* Scene: turtle-and-zoophytes (Window-lit interior, turtle outside) */
.scn-turtle-and-zoophytes {
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 50%, #0a1a0a 100%),
              radial-gradient(ellipse at 60% 30%, #3a5a3a 0%, transparent 70%);
}
.scn-turtle-and-zoophytes .window-frame {
  position:absolute; top:10%; left:20%; width:200px; height:250px;
  background: #3a2a1a; border-radius:4px 4px 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,0.5);
  transform:perspective(400px) rotateX(5deg);
  animation: tuz-frame 20s ease-in-out infinite alternate;
}
.scn-turtle-and-zoophytes .window-glass {
  position:absolute; top:15%; left:25%; width:170px; height:220px;
  background: linear-gradient(180deg, rgba(100,180,200,0.2) 0%, rgba(200,230,255,0.1) 100%);
  border-radius:2px; box-shadow: inset 0 0 30px rgba(100,180,200,0.1);
  animation: tuz-glass 25s ease-in-out infinite alternate;
}
.scn-turtle-and-zoophytes .turtle-body {
  position:absolute; top:55%; left:30%; width:120px; height:60px;
  background: radial-gradient(ellipse at 40% 50%, #5a7a5a 0%, #3a5a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  filter: blur(1px); animation: tuz-swim 15s ease-in-out infinite alternate;
}
.scn-turtle-and-zoophytes .turtle-shell {
  position:absolute; top:50%; left:30%; width:100px; height:60px;
  background: radial-gradient(ellipse at 50% 30%, #7a9a6a 0%, #4a6a3a 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  filter: blur(2px); opacity:0.8; animation: tuz-swim 15s ease-in-out infinite alternate 2s;
}
.scn-turtle-and-zoophytes .light-ray {
  position:absolute; top:15%; left:25%; width:4px; height:0;
  background: linear-gradient(180deg, rgba(220,240,255,0.4) 0%, transparent 100%);
  transform-origin: top center; animation: tuz-ray 8s ease-in-out infinite;
}
.scn-turtle-and-zoophytes .ray-1 { left:30%; height:160px; transform: rotate(10deg); animation-delay:0s; }
.scn-turtle-and-zoophytes .ray-2 { left:35%; height:200px; transform: rotate(-5deg); animation-delay:-3s; }
.scn-turtle-and-zoophytes .dust-particle {
  position:absolute; top:30%; left:40%; width:6px; height:6px;
  background: rgba(200,220,255,0.6); border-radius:50%; filter: blur(2px);
  animation: tuz-dust 12s ease-in-out infinite alternate;
}
.scn-turtle-and-zoophytes .zoophyte-base {
  position:absolute; bottom:10%; left:50%; width:80px; height:30px;
  background: linear-gradient(180deg, #4a5a3a 0%, #2a3a1a 100%);
  border-radius: 40% 40% 10% 10% / 60% 60% 20% 20%;
  animation: tuz-breathe 6s ease-in-out infinite;
}
.scn-turtle-and-zoophytes .zoophyte-top {
  position:absolute; bottom:22%; left:55%; width:20px; height:40px;
  background: linear-gradient(180deg, #6a8a5a 0%, #4a6a3a 100%);
  border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%;
  transform-origin: bottom center; animation: tuz-sway 4s ease-in-out infinite alternate;
}
@keyframes tuz-frame { 0% {opacity:0.9; transform:perspective(400px) rotateX(5deg);} 50% {opacity:1; transform:perspective(400px) rotateX(3deg) translateY(-2px);} 100% {opacity:0.95; transform:perspective(400px) rotateX(6deg);} }
@keyframes tuz-glass { 0% {opacity:0.6; transform:scale(1);} 50% {opacity:0.8; transform:scale(1.01);} 100% {opacity:0.7; transform:scale(0.98);} }
@keyframes tuz-swim { 0% {transform:translateX(0) translateY(0) rotate(2deg);} 50% {transform:translateX(15px) translateY(-5px) rotate(-1deg);} 100% {transform:translateX(0) translateY(0) rotate(-2deg);} }
@keyframes tuz-ray { 0% {opacity:0; height:0;} 30% {opacity:1; height:160px;} 70% {opacity:0.8; height:180px;} 100% {opacity:0; height:0;} }
@keyframes tuz-dust { 0% {transform:translate(0,0) scale(1); opacity:0.6;} 50% {transform:translate(10px,-20px) scale(1.5); opacity:0;} 100% {transform:translate(0,0) scale(1); opacity:0.6;} }
@keyframes tuz-breathe { 0% {transform:scaleY(1);} 50% {transform:scaleY(1.1);} 100% {transform:scaleY(1);} }
@keyframes tuz-sway { 0% {transform:rotate(-5deg);} 50% {transform:rotate(5deg);} 100% {transform:rotate(-3deg);} }

/* Scene: slowing-down-near-sicily (Dim interior, control panel) */
.scn-slowing-down-near-sicily {
  background: linear-gradient(180deg, #1a1a1e 0%, #2a2a30 40%, #3a3a42 100%),
              radial-gradient(ellipse at 30% 60%, #2a2a30 0%, #1a1a1e 70%);
}
.scn-slowing-down-near-sicily .panel-back {
  position:absolute; top:10%; left:10%; width:80%; height:80%;
  background: linear-gradient(135deg, #2a2a30 0%, #1a1a1e 100%);
  border-radius: 8px; box-shadow: inset 0 0 30px rgba(0,0,0,0.8), 0 4px 10px rgba(0,0,0,0.6);
}
.scn-slowing-down-near-sicily .dial {
  position:absolute; border-radius:50%; background: radial-gradient(circle at 40% 40%, #3a4a5a 0%, #1a2a3a 100%);
  box-shadow: inset 0 0 20px rgba(0,0,0,0.5), 0 2px 6px rgba(0,0,0,0.4);
}
.scn-slowing-down-near-sicily .large-dial {
  top:25%; left:25%; width:120px; height:120px;
  animation: sic-pulse 10s ease-in-out infinite alternate;
}
.scn-slowing-down-near-sicily .small-dial {
  top:30%; left:60%; width:80px; height:80px;
  animation: sic-pulse 8s ease-in-out infinite alternate-reverse;
}
.scn-slowing-down-near-sicily .needle {
  position:absolute; background: linear-gradient(180deg, #8a7060 0%, #5a4a3a 100%);
  border-radius: 2px 2px 50% 50%; transform-origin: bottom center;
  box-shadow: 0 1px 4px rgba(0,0,0,0.5);
}
.scn-slowing-down-near-sicily .large-needle {
  top:40%; left:40%; width:6px; height:50px; transform: rotate(-30deg);
  animation: sic-needle 12s ease-in-out infinite alternate;
}
.scn-slowing-down-near-sicily .small-needle {
  top:35%; left:63%; width:4px; height:35px; transform: rotate(45deg);
  animation: sic-needle 9s ease-in-out infinite alternate-reverse;
}
.scn-slowing-down-near-sicily .button {
  position:absolute; border-radius:50%; width:20px; height:20px;
  box-shadow: inset 0 0 8px rgba(0,0,0,0.6), 0 2px 4px rgba(0,0,0,0.3);
}
.scn-slowing-down-near-sicily .red-button {
  top:15%; left:20%; background: radial-gradient(circle at 40% 40%, #c8553d 0%, #a0461a 100%);
  animation: sic-blink 5s ease-in-out infinite;
}
.scn-slowing-down-near-sicily .green-button {
  top:15%; left:30%; background: radial-gradient(circle at 40% 40%, #5a8a5a 0%, #3a6a3a 100%);
  animation: sic-blink 7s ease-in-out infinite alternate;
}
.scn-slowing-down-near-sicily .gear-knob {
  position:absolute; bottom:20%; left:50%; width:30px; height:30px;
  background: radial-gradient(circle at 40% 40%, #5a5a6a 0%, #3a3a4a 100%);
  border-radius:50%; box-shadow: inset 0 0 10px rgba(0,0,0,0.5);
  transform:translateX(-50%); animation: sic-gear 4s ease-in-out infinite;
}
@keyframes sic-pulse { 0% {opacity:0.8; box-shadow: inset 0 0 20px rgba(0,0,0,0.5);} 50% {opacity:1; box-shadow: inset 0 0 30px rgba(0,0,0,0.6);} 100% {opacity:0.9; box-shadow: inset 0 0 25px rgba(0,0,0,0.55);} }
@keyframes sic-needle { 0% {transform:rotate(-30deg);} 50% {transform:rotate(-10deg);} 100% {transform:rotate(-20deg);} }
@keyframes sic-blink { 0% {opacity:0.7; box-shadow: 0 0 8px currentColor;} 50% {opacity:1; box-shadow: 0 0 16px currentColor;} 100% {opacity:0.8; box-shadow: 0 0 10px currentColor;} }
@keyframes sic-gear { 0% {transform:translateX(-50%) rotate(0deg);} 50% {transform:translateX(-50%) rotate(15deg);} 100% {transform:translateX(-50%) rotate(0deg);} }

/* Scene: discussing-isthmus (Dim interior, table with chart and lantern) */
.scn-discussing-isthmus {
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0e 50%, #0e0e06 100%),
              radial-gradient(circle at 50% 30%, #3a3a2a 0%, #1a1a0e 70%);
}
.scn-discussing-isthmus .table-top {
  position:absolute; top:50%; left:10%; width:80%; height:40%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%);
  border-radius: 4px; box-shadow: 0 4px 20px rgba(0,0,0,0.7);
  transform:perspective(200px) rotateX(5deg);
}
.scn-discussing-isthmus .chart-paper {
  position:absolute; top:40%; left:20%; width:60%; height:45%;
  background: linear-gradient(135deg, #d4c8a0 0%, #c4b890 100%);
  border-radius: 2px; box-shadow: inset 0 0 20px rgba(0,0,0,0.1);
  transform:rotate(-2deg);
  animation: dis-paper 20s ease-in-out infinite alternate;
}
.scn-discussing-isthmus .chart-line {
  position:absolute; background: #6a5a3a; opacity:0.4;
  height:2px; border-radius: 1px;
}
.scn-discussing-isthmus .line-a {
  top:50%; left:25%; width:50%; transform:rotate(15deg);
  animation: dis-line 15s ease-in-out infinite alternate;
}
.scn-discussing-isthmus .line-b {
  top:55%; left:30%; width:40%; transform:rotate(-10deg);
  animation: dis-line 18s ease-in-out infinite alternate-reverse;
}
.scn-discussing-isthmus .lantern-body {
  position:absolute; bottom:35%; left:70%; width:30px; height:40px;
  background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%);
  border-radius: 20% 20% 10% 10%; transform:rotate(5deg);
  box-shadow: 0 2px 8px rgba(0,0,0,0.4);
  animation: dis-lantern 6s ease-in-out infinite alternate;
}
.scn-discussing-isthmus .lantern-glow {
  position:absolute; bottom:30%; left:65%; width:50px; height:60px;
  background: radial-gradient(circle at 50% 50%, rgba(240,200,120,0.5) 0%, rgba(240,200,120,0) 100%);
  filter: blur(8px);
  animation: dis-glow 4s ease-in-out infinite alternate;
}
.scn-discussing-isthmus .hand-silhouette {
  position:absolute; bottom:45%; left:40%; width:30px; height:20px;
  background: rgba(20,15,10,0.7); border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  filter: blur(2px); transform:rotate(-10deg);
  animation: dis-hand 8s ease-in-out infinite alternate;
}
.scn-discussing-isthmus .ink-bottle {
  position:absolute; bottom:30%; left:25%; width:20px; height:25px;
  background: linear-gradient(180deg, #3a3a2a 0%, #1a1a0e 100%);
  border-radius: 30% 30% 10% 10%; box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: dis-bottle 12s ease-in-out infinite alternate;
}
.scn-discussing-isthmus .quill {
  position:absolute; bottom:35%; left:22%; width:8px; height:40px;
  background: linear-gradient(180deg, #8a7a5a 0%, #4a3a2a 100%);
  border-radius: 50% 50% 10% 10%; transform:rotate(15deg);
  transform-origin: bottom center;
  animation: dis-quill 10s ease-in-out infinite alternate;
}
@keyframes dis-paper { 0% {opacity:0.8; transform:rotate(-2deg) translateY(0);} 50% {opacity:1; transform:rotate(-1deg) translateY(-3px);} 100% {opacity:0.9; transform:rotate(-2.5deg) translateY(0);} }
@keyframes dis-line { 0% {opacity:0.3; transform:rotate(15deg) scaleX(1);} 50% {opacity:0.5; transform:rotate(13deg) scaleX(1.02);} 100% {opacity:0.35; transform:rotate(16deg) scaleX(0.98);} }
@keyframes dis-lantern { 0% {transform:rotate(5deg);} 50% {transform:rotate(2deg);} 100% {transform:rotate(6deg);} }
@keyframes dis-glow { 0% {opacity:0.5; transform:scale(1);} 50% {opacity:0.9; transform:scale(1.1);} 100% {opacity:0.6; transform:scale(0.95);} }
@keyframes dis-hand { 0% {transform:translateX(0) rotate(-10deg);} 50% {transform:translateX(10px) rotate(-8deg);} 100% {transform:translateX(0) rotate(-12deg);} }
@keyframes dis-bottle { 0% {transform:translateY(0) rotate(0deg);} 50% {transform:translateY(-2px) rotate(2deg);} 100% {transform:translateY(0) rotate(-1deg);} }
@keyframes dis-quill { 0% {transform:rotate(15deg);} 50% {transform:rotate(10deg);} 100% {transform:rotate(18deg);} }

.scn-neds-glee {
  background:
    linear-gradient(180deg, #87CEEB 0%, #fff4c2 40%, #f0a040 100%),
    radial-gradient(ellipse at 50% 0%, #f0d080 0%, transparent 60%);
  position: relative; overflow: hidden;
}
.scn-neds-glee .sky-bg {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #b0d4f0 0%, transparent 100%);
  animation: ng-sky 10s ease-in-out infinite alternate;
}
.scn-neds-glee .sun {
  position: absolute; top: 12%; left: 65%;
  width: 50px; height: 50px;
  background: radial-gradient(circle, #ffe680 0%, #f0c040 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px rgba(255,200,80,0.6);
  animation: ng-sun 6s ease-in-out infinite alternate;
}
.scn-neds-glee .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #7c5c3a 0%, #5a3e28 100%);
  border-radius: 30% 70% 0 0 / 20% 40% 0 0;
}
.scn-neds-glee .fire-pit {
  position: absolute; bottom: 28%; left: 35%;
  width: 60px; height: 30px;
  background: radial-gradient(ellipse, #e07020 0%, #a04010 70%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px #e08030;
  animation: ng-fire 2s ease-in-out infinite alternate;
}
.scn-neds-glee .spit {
  position: absolute; bottom: 36%; left: 34%;
  width: 70px; height: 4px;
  background: #4a3a2a;
  border-radius: 2px;
  transform-origin: 0% 50%;
  animation: ng-spit 4s ease-in-out infinite;
}
.scn-neds-glee .meat {
  position: absolute; bottom: 38%; left: 42%;
  width: 20px; height: 16px;
  background: radial-gradient(circle at 30% 30%, #c8553d 0%, #8a3a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform: rotate(-10deg);
  animation: ng-meat 3s ease-in-out infinite alternate;
}
.scn-neds-glee .hunter {
  position: absolute; bottom: 18%; left: 55%;
  width: 24px; height: 50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: ng-hunter 5s ease-in-out infinite;
}
.scn-neds-glee .sparkle {
  position: absolute; width: 6px; height: 6px;
  background: #ffe880;
  border-radius: 50%;
  box-shadow: 0 0 8px 2px rgba(255,232,128,0.8);
}
.scn-neds-glee .spark-1 { top: 25%; left: 38%; animation: ng-sparkle 2s ease-in-out infinite 0.3s; }
.scn-neds-glee .spark-2 { top: 30%; left: 45%; animation: ng-sparkle 2.5s ease-in-out infinite 0.7s; }
@keyframes ng-sky { 0% { opacity: 0.6 } 50% { opacity: 1 } 100% { opacity: 0.7 } }
@keyframes ng-sun { 0% { transform: translateX(0) scale(1); } 50% { transform: translateX(10px) scale(1.05); } 100% { transform: translateX(0) scale(1); } }
@keyframes ng-fire { 0% { transform: scaleY(1); box-shadow: 0 0 30px 10px #e08030; } 50% { transform: scaleY(1.15); box-shadow: 0 0 40px 15px #f09040; } 100% { transform: scaleY(0.9); box-shadow: 0 0 25px 8px #d07020; } }
@keyframes ng-spit { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(3deg); } }
@keyframes ng-meat { 0% { transform: rotate(-10deg) scale(1); } 50% { transform: rotate(-5deg) scale(1.05); } 100% { transform: rotate(-12deg) scale(1); } }
@keyframes ng-hunter { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(8px) rotate(2deg); } 60% { transform: translateX(4px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes ng-sparkle { 0%,100% { opacity: 0; transform: translateY(0) scale(0.8); } 50% { opacity: 1; transform: translateY(-20px) scale(1.2); } }

.scn-conseil-mouth-watering {
  background:
    linear-gradient(180deg, #a8d8a0 0%, #c8e0b0 30%, #e0d090 70%, #b0a060 100%),
    radial-gradient(ellipse at 50% 0%, #d0e8c0 0%, transparent 70%);
  position: relative; overflow: hidden;
}
.scn-conseil-mouth-watering .clearing {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, transparent 30%, #7a8a3a 50%, #5a6a2a 100%);
  border-radius: 20% 60% 0 0 / 30% 50% 0 0;
}
.scn-conseil-mouth-watering .tree-l {
  position: absolute; bottom: 20%; left: 8%;
  width: 40px; height: 80px;
  background: linear-gradient(180deg, #4a3a1a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%;
  transform: skewX(-5deg);
  animation: cm-tree 12s ease-in-out infinite alternate;
}
.scn-conseil-mouth-watering .tree-r {
  position: absolute; bottom: 15%; right: 5%;
  width: 50px; height: 90px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e08 100%);
  border-radius: 20% 20% 40% 40% / 30% 30% 50% 50%;
  transform: skewX(8deg);
  animation: cm-tree2 14s ease-in-out infinite alternate;
}
.scn-conseil-mouth-watering .campfire {
  position: absolute; bottom: 22%; left: 44%;
  width: 50px; height: 25px;
  background: radial-gradient(ellipse, #e07020 0%, #c05010 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 8px #d06020;
  animation: cm-campfire 3s ease-in-out infinite;
}
.scn-conseil-mouth-watering .cook-meat {
  position: absolute; bottom: 30%; left: 46%;
  width: 16px; height: 12px;
  background: radial-gradient(circle at 40% 30%, #c8553d 0%, #8a3a1a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  transform: rotate(-15deg);
  animation: cm-meat 4s ease-in-out infinite alternate;
}
.scn-conseil-mouth-watering .figure-conseil {
  position: absolute; bottom: 8%; left: 32%;
  width: 22px; height: 55px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%;
  transform-origin: bottom center;
  animation: cm-figure 6s ease-in-out infinite;
}
.scn-conseil-mouth-watering .drool {
  position: absolute; bottom: 18%; left: 37%;
  width: 4px; height: 10px;
  background: linear-gradient(180deg, #c0d0e0 0%, #a0b0c0 100%);
  border-radius: 0 0 50% 50%;
  opacity: 0.7;
  animation: cm-drool 3s ease-in-out infinite;
}
.scn-conseil-mouth-watering .steam {
  position: absolute; bottom: 40%; width: 20px; height: 8px;
  background: rgba(240,240,240,0.3);
  border-radius: 50%;
  filter: blur(4px);
}
.scn-conseil-mouth-watering .steam-a { left: 44%; animation: cm-steam 5s ease-in-out infinite; }
.scn-conseil-mouth-watering .steam-b { left: 48%; animation: cm-steam 5.5s ease-in-out infinite 1s; }
@keyframes cm-tree { 0% { transform: skewX(-5deg) scaleY(1); } 50% { transform: skewX(-3deg) scaleY(1.02); } 100% { transform: skewX(-5deg) scaleY(1); } }
@keyframes cm-tree2 { 0% { transform: skewX(8deg) scaleY(1); } 50% { transform: skewX(10deg) scaleY(1.03); } 100% { transform: skewX(8deg) scaleY(1); } }
@keyframes cm-campfire { 0%,100% { transform: scaleY(1); box-shadow: 0 0 30px 8px #d06020; } 50% { transform: scaleY(1.2); box-shadow: 0 0 40px 12px #e08030; } }
@keyframes cm-meat { 0% { transform: rotate(-15deg) translateY(0); } 50% { transform: rotate(-10deg) translateY(-2px); } 100% { transform: rotate(-15deg) translateY(0); } }
@keyframes cm-figure { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(6px) rotate(3deg); } 60% { transform: translateX(2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes cm-drool { 0%,100% { transform: translateY(0) scaleY(1); opacity: 0.7; } 50% { transform: translateY(8px) scaleY(1.5); opacity: 0.9; } }
@keyframes cm-steam { 0% { transform: translateY(0) scale(1); opacity: 0.3; } 50% { transform: translateY(-30px) scale(1.5); opacity: 0.6; } 100% { transform: translateY(-60px) scale(2); opacity: 0; } }

.scn-ned-threatens-all-game {
  background:
    linear-gradient(180deg, #b0c8e0 0%, #e0d090 40%, #c8a060 70%, #8a6a3a 100%),
    radial-gradient(ellipse at 50% 0%, #d0d8e0 0%, transparent 60%);
  position: relative; overflow: hidden;
}
.scn-ned-threatens-all-game .savanna-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, transparent 20%, #6a8a3a 50%, #4a5a2a 100%);
  border-radius: 10% 40% 0 0 / 20% 30% 0 0;
}
.scn-ned-threatens-all-game .bush {
  position: absolute; bottom: 15%; left: 20%;
  width: 60px; height: 40px;
  background: radial-gradient(ellipse at 30% 40%, #5a7a2a 0%, #3a5a1a 100%);
  border-radius: 50% 50% 30% 30% / 40% 40% 20% 20%;
  animation: nt-bush 8s ease-in-out infinite alternate;
}
.scn-ned-threatens-all-game .ned-silhouette {
  position: absolute; bottom: 5%; left: 50%;
  width: 24px; height: 60px;
  background: linear-gradient(180deg, #1a1008 0%, #0a0604 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 10% 10%;
  transform: translateX(-50%);
  transform-origin: bottom center;
  animation: nt-ned 6s ease-in-out infinite;
}
.scn-ned-threatens-all-game .gun-barrel {
  position: absolute; bottom: 38%; left: 45%;
  width: 50px; height: 4px;
  background: #2a1a0a;
  border-radius: 2px;
  transform-origin: 0% 50%;
  animation: nt-gun 4s ease-in-out infinite alternate;
}
.scn-ned-threatens-all-game .target-animal {
  position: absolute; bottom: 12%; left: 70%;
  width: 30px; height: 20px;
  background: radial-gradient(circle at 30% 30%, #8a5a3a 0%, #4a2a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform: scaleX(-1);
  animation: nt-animal 5s ease-in-out infinite;
}
.scn-ned-threatens-all-game .dust {
  position: absolute; bottom: 5%; width: 10px; height: 6px;
  background: rgba(180,160,120,0.4);
  border-radius: 50%;
  filter: blur(2px);
}
.scn-ned-threatens-all-game .dust-1 { left: 48%; animation: nt-dust 4s ease-in-out infinite 0.2s; }
.scn-ned-threatens-all-game .dust-2 { left: 54%; animation: nt-dust 4.5s ease-in-out infinite 0.8s; }
.scn-ned-threatens-all-game .sun-haze {
  position: absolute; top: 15%; left: 30%;
  width: 120px; height: 40px;
  background: radial-gradient(ellipse, rgba(255,240,200,0.2) 0%, transparent 100%);
  filter: blur(12px);
  animation: nt-haze 12s ease-in-out infinite alternate;
}
@keyframes nt-bush { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.1); } 100% { transform: scaleX(1); } }
@keyframes nt-ned { 0% { transform: translateX(-50%) rotate(0deg) scaleY(1); } 30% { transform: translateX(-45%) rotate(1deg) scaleY(1.02); } 60% { transform: translateX(-55%) rotate(-2deg) scaleY(1); } 100% { transform: translateX(-50%) rotate(0deg) scaleY(1); } }
@keyframes nt-gun { 0% { transform: rotate(-10deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-10deg); } }
@keyframes nt-animal { 0% { transform: scaleX(-1) translateX(0); } 50% { transform: scaleX(-1) translateX(-8px); } 100% { transform: scaleX(-1) translateX(0); } }
@keyframes nt-dust { 0%,100% { opacity: 0; transform: translateY(0) scale(0.8); } 50% { opacity: 0.6; transform: translateY(-20px) scale(1.5); } }
@keyframes nt-haze { 0% { transform: translateX(0) scale(1); opacity: 0.3; } 50% { transform: translateX(20px) scale(1.1); opacity: 0.5; } 100% { transform: translateX(0) scale(1); opacity: 0.3; } }

.scn-landing-on-beach {
  background:
    linear-gradient(180deg, #87CEEB 0%, #b0e0f0 30%, #e0f0e0 70%, #f0d8a0 100%),
    radial-gradient(ellipse at 50% 100%, #f0d8a0 0%, transparent 60%);
  position: relative; overflow: hidden;
}
.scn-landing-on-beach .beach-sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #a0d0f0 0%, transparent 100%);
  animation: lb-sky 15s ease-in-out infinite alternate;
}
.scn-landing-on-beach .beach-water {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #5a8ab0 0%, #3a6a80 100%);
  border-radius: 0 0 30% 70% / 0 0 20% 40%;
  animation: lb-water 8s ease-in-out infinite alternate;
}
.scn-landing-on-beach .beach-sand {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: radial-gradient(ellipse at 50% 0%, #f0d0a0 0%, #d0b080 60%, #b08860 100%);
  border-radius: 60% 40% 0 0 / 30% 20% 0 0;
}
.scn-landing-on-beach .skiff {
  position: absolute; bottom: 18%; left: 40%;
  width: 80px; height: 20px;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 30% 30% / 20% 20% 50% 50%;
  transform-origin: center bottom;
  animation: lb-skiff 6s ease-in-out infinite;
}
.scn-landing-on-beach .palm-tree {
  position: absolute; bottom: 16%; right: 12%;
  transform-origin: bottom center;
  animation: lb-palm 10s ease-in-out infinite alternate;
  width: 20px; height: 100px;
  background: linear-gradient(180deg, #4a3a1a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%;
}
.scn-landing-on-beach .wave {
  position: absolute; bottom: 45%;
  width: 100%; height: 10px;
  background: rgba(255,255,255,0.2);
  border-radius: 50%;
  filter: blur(4px);
}
.scn-landing-on-beach .wave-l { left: -20%; animation: lb-wave 7s ease-in-out infinite; }
.scn-landing-on-beach .wave-r { left: 20%; animation: lb-wave 8s ease-in-out infinite 1.5s; }
.scn-landing-on-beach .cloud {
  position: absolute; top: 12%;
  width: 80px; height: 20px;
  background: rgba(255,255,255,0.5);
  border-radius: 50%;
  filter: blur(6px);
}
.scn-landing-on-beach .cloud-l { left: 10%; animation: lb-cloud 40s linear infinite; }
.scn-landing-on-beach .cloud-r { right: 15%; animation: lb-cloud 50s linear infinite reverse; }
@keyframes lb-sky { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes lb-water { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(3px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes lb-skiff { 0% { transform: rotate(0deg) translateY(0); } 30% { transform: rotate(2deg) translateY(-2px); } 60% { transform: rotate(-1deg) translateY(-1px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes lb-palm { 0% { transform: rotate(0deg); } 50% { transform: rotate(3deg); } 100% { transform: rotate(0deg); } }
@keyframes lb-wave { 0% { transform: translateX(0) scaleX(1); opacity: 0.3; } 50% { transform: translateX(50px) scaleX(1.2); opacity: 0.6; } 100% { transform: translateX(0) scaleX(1); opacity: 0.3; } }
@keyframes lb-cloud { 0% { transform: translateX(-30px); } 100% { transform: translateX(120vw); } }

.scn-hawaii-sight {
  background: linear-gradient(180deg, #4a7a9a 0%, #6aa0c0 30%, #f0d8a0 60%, #d4b080 100%),
              radial-gradient(ellipse at 50% 20%, #f0e8c0 0%, transparent 70%);
}
.scn-hawaii-sight .sky-grad {
  position: absolute;
  inset: 0 0 65% 0;
  background: linear-gradient(180deg, #5a8aaa 0%, #8ac0e0 40%, #f0e0b0 100%);
  animation: hs-sky 20s ease-in-out infinite alternate;
}
.scn-hawaii-sight .sun {
  position: absolute;
  top: 10%;
  right: 30%;
  width: 60px;
  height: 60px;
  background: radial-gradient(circle, #fff8e0 0%, #f0d060 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 80px 40px rgba(240,208,96,0.4);
  animation: hs-sun 8s ease-in-out infinite alternate;
}
.scn-hawaii-sight .ocean {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 35%;
  background: linear-gradient(180deg, #3a8a7a 0%, #1a5a4a 100%);
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.3);
  animation: hs-ocean 12s ease-in-out infinite alternate;
}
.scn-hawaii-sight .island-mountain {
  position: absolute;
  bottom: 30%;
  left: 40%;
  width: 120px;
  height: 120px;
  background: linear-gradient(135deg, #4a7a4a 0%, #2a5a2a 60%, #1a3a1a 100%);
  border-radius: 60% 50% 30% 40% / 80% 70% 40% 50%;
  transform: translateX(-50%);
  box-shadow: 0 8px 20px rgba(0,0,0,0.5);
  animation: hs-island 18s ease-in-out infinite alternate;
}
.scn-hawaii-sight .foreground-ship {
  position: absolute;
  bottom: 25%;
  left: 20%;
  width: 100px;
  height: 40px;
  background: linear-gradient(90deg, #5a3a2a 0%, #3a2a1a 60%, #1a1a0a 100%);
  border-radius: 0 0 20% 20% / 0 0 40% 40%;
  transform: scale(0.95);
  box-shadow: 0 4px 12px rgba(0,0,0,0.6);
  animation: hs-ship 6s ease-in-out infinite;
}
.scn-hawaii-sight .cloud-drift-a {
  position: absolute;
  top: 18%;
  left: 10%;
  width: 90px;
  height: 20px;
  background: linear-gradient(90deg, rgba(255,255,255,0.6), rgba(255,255,255,0.1));
  border-radius: 50%;
  filter: blur(8px);
  animation: hs-cloud-a 35s linear infinite;
}
.scn-hawaii-sight .cloud-drift-b {
  position: absolute;
  top: 22%;
  right: 15%;
  width: 70px;
  height: 16px;
  background: linear-gradient(90deg, rgba(255,255,255,0.4), rgba(255,255,255,0.05));
  border-radius: 50%;
  filter: blur(6px);
  animation: hs-cloud-b 50s linear infinite reverse;
}
.scn-hawaii-sight .seabird {
  position: absolute;
  top: 25%;
  left: 60%;
  width: 14px;
  height: 10px;
  background: radial-gradient(circle, #1a1a1a 30%, transparent 70%);
  border-radius: 50%;
  transform: rotate(-10deg);
  animation: hs-bird 9s ease-in-out infinite;
}

@keyframes hs-sky {
  0% { opacity: 0.9; background-position: 0 0; }
  50% { opacity: 1; background-position: 0 10%; }
  100% { opacity: 0.85; background-position: 0 0; }
}
@keyframes hs-sun {
  0% { transform: translateY(0) scale(1); opacity: 0.9; }
  50% { transform: translateY(-8px) scale(1.05); opacity: 1; }
  100% { transform: translateY(0) scale(1); opacity: 0.95; }
}
@keyframes hs-ocean {
  0% { background-position: 0 0; }
  50% { background-position: 0 5%; }
  100% { background-position: 0 0; }
}
@keyframes hs-island {
  0% { transform: translateX(-50%) translateY(0); }
  50% { transform: translateX(-50%) translateY(-4px) scale(1.02); }
  100% { transform: translateX(-50%) translateY(0); }
}
@keyframes hs-ship {
  0% { transform: scale(0.95) translateX(0) rotate(0deg); }
  25% { transform: scale(0.95) translateX(4px) rotate(-2deg); }
  50% { transform: scale(0.95) translateX(8px) rotate(0deg); }
  75% { transform: scale(0.95) translateX(4px) rotate(2deg); }
  100% { transform: scale(0.95) translateX(0) rotate(0deg); }
}
@keyframes hs-cloud-a {
  0% { transform: translateX(-30px); }
  100% { transform: translateX(120vw); }
}
@keyframes hs-cloud-b {
  0% { transform: translateX(0); }
  100% { transform: translateX(-100vw); }
}
@keyframes hs-bird {
  0% { transform: rotate(-10deg) translateX(0); }
  30% { transform: rotate(-5deg) translateX(10px); }
  60% { transform: rotate(-15deg) translateX(20px); }
  100% { transform: rotate(-10deg) translateX(30px); }
}

.scn-peacock-coral-nets {
  background: linear-gradient(180deg, #0a2a3a 0%, #1a4a5a 40%, #3a7a8a 70%, #5aaaca 100%),
              radial-gradient(ellipse at 50% 30%, #4ab0d0 0%, transparent 60%);
}
.scn-peacock-coral-nets .underwater-bg {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(10,42,58,0.6), rgba(58,122,138,0.3));
  animation: pc-uw 25s ease-in-out infinite alternate;
}
.scn-peacock-coral-nets .light-rays {
  position: absolute;
  top: 0;
  left: 30%;
  width: 60px;
  height: 100%;
  background: linear-gradient(180deg, rgba(255,255,200,0.15), transparent);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  animation: pc-rays 10s ease-in-out infinite alternate;
}
.scn-peacock-coral-nets .coral-peacock {
  position: absolute;
  bottom: 20%;
  right: 20%;
  width: 80px;
  height: 80px;
  background: radial-gradient(circle at 50% 30%, #4ac8d0 0%, #2080a0 40%, #0a4060 80%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  box-shadow: 0 0 30px 10px rgba(74,200,208,0.4);
  animation: pc-coral 15s ease-in-out infinite alternate;
}
.scn-peacock-coral-nets .net-left {
  position: absolute;
  bottom: 10%;
  left: 5%;
  width: 120px;
  height: 60px;
  background: repeating-linear-gradient(45deg, rgba(200,180,160,0.3) 0px, rgba(200,180,160,0.3) 4px, transparent 4px, transparent 8px),
              repeating-linear-gradient(-45deg, rgba(200,180,160,0.3) 0px, rgba(200,180,160,0.3) 4px, transparent 4px, transparent 8px);
  border-radius: 30% 30% 20% 20%;
  animation: pc-net-left 8s ease-in-out infinite alternate;
}
.scn-peacock-coral-nets .net-right {
  position: absolute;
  bottom: 15%;
  right: 5%;
  width: 100px;
  height: 50px;
  background: repeating-linear-gradient(30deg, rgba(200,180,160,0.25) 0px, rgba(200,180,160,0.25) 3px, transparent 3px, transparent 6px),
              repeating-linear-gradient(-30deg, rgba(200,180,160,0.25) 0px, rgba(200,180,160,0.25) 3px, transparent 3px, transparent 6px);
  border-radius: 20% 40% 30% 20%;
  animation: pc-net-right 10s ease-in-out infinite alternate;
}
.scn-peacock-coral-nets .polyp-cluster {
  position: absolute;
  bottom: 30%;
  left: 35%;
  width: 40px;
  height: 50px;
  background: radial-gradient(circle at 50% 80%, #d0a08a 0%, #a0705a 50%, transparent 80%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 20px 8px rgba(160,112,90,0.3);
  animation: pc-polyp 12s ease-in-out infinite;
}
.scn-peacock-coral-nets .fish-shoal {
  position: absolute;
  top: 40%;
  left: 20%;
  width: 60px;
  height: 20px;
  background: radial-gradient(ellipse at 30% 50%, #8ad0e0 0%, transparent 70%),
              radial-gradient(ellipse at 70% 50%, #8ad0e0 0%, transparent 70%);
  filter: blur(2px);
  animation: pc-fish 18s linear infinite;
}
.scn-peacock-coral-nets .bubble-stream {
  position: absolute;
  bottom: 5%;
  left: 50%;
  width: 8px;
  height: 80px;
  background: radial-gradient(circle at 50% 20%, rgba(255,255,255,0.3) 0%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 10px 2px rgba(255,255,255,0.2);
  animation: pc-bubble 6s ease-in-out infinite;
}

@keyframes pc-uw {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes pc-rays {
  0% { transform: translateX(-10px) scaleX(1); opacity: 0.6; }
  50% { transform: translateX(5px) scaleX(1.1); opacity: 1; }
  100% { transform: translateX(-10px) scaleX(0.9); opacity: 0.7; }
}
@keyframes pc-coral {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-6px) rotate(3deg); }
  100% { transform: translateY(0) rotate(-2deg); }
}
@keyframes pc-net-left {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(4px) rotate(1deg); }
  100% { transform: translateY(-2px) rotate(-1deg); }
}
@keyframes pc-net-right {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(-2deg); }
  100% { transform: translateY(2px) rotate(1deg); }
}
@keyframes pc-polyp {
  0% { transform: scale(1) translateX(0); }
  33% { transform: scale(1.05) translateX(5px); }
  66% { transform: scale(0.95) translateX(-3px); }
  100% { transform: scale(1) translateX(0); }
}
@keyframes pc-fish {
  0% { transform: translateX(-30px) scaleX(1); }
  50% { transform: translateX(30px) scaleX(-1); }
  100% { transform: translateX(-30px) scaleX(1); }
}
@keyframes pc-bubble {
  0% { transform: translateY(0) scale(1); opacity: 0.8; }
  50% { transform: translateY(-40px) scale(1.2); opacity: 0.4; }
  100% { transform: translateY(-80px) scale(0.8); opacity: 0; }
}

.scn-nuku-hiva-sight {
  background: linear-gradient(180deg, #5a8aaa 0%, #8ab8d0 30%, #d0c8a0 60%, #b8a080 100%),
              radial-gradient(ellipse at 50% 15%, #f0e0c0 0%, transparent 70%);
}
.scn-nuku-hiva-sight .sky-horizon {
  position: absolute;
  inset: 0 0 55% 0;
  background: linear-gradient(180deg, #6a9aba 0%, #a0d0e0 40%, #e0d0a0 100%);
  animation: nh-sky 18s ease-in-out infinite alternate;
}
.scn-nuku-hiva-sight .sun-haze {
  position: absolute;
  top: 8%;
  left: 60%;
  width: 70px;
  height: 70px;
  background: radial-gradient(circle, #fff8d0 0%, #f0d070 30%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 100px 50px rgba(240,208,112,0.35);
  animation: nh-sun 10s ease-in-out infinite alternate;
}
.scn-nuku-hiva-sight .ocean-flat {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 55%;
  background: linear-gradient(180deg, #4a8a7a 0%, #2a6050 100%);
  box-shadow: inset 0 8px 25px rgba(0,0,0,0.2);
  animation: nh-ocean 14s ease-in-out infinite alternate;
}
.scn-nuku-hiva-sight .island-forest {
  position: absolute;
  bottom: 45%;
  left: 30%;
  width: 140px;
  height: 90px;
  background: linear-gradient(150deg, #3a6a3a 0%, #1a4a1a 60%, #0a2a0a 100%);
  border-radius: 40% 60% 30% 50% / 70% 80% 40% 50%;
  transform: translateX(-50%);
  box-shadow: 0 10px 25px rgba(0,0,0,0.4);
  animation: nh-island 22s ease-in-out infinite alternate;
}
.scn-nuku-hiva-sight .foreground-rail {
  position: absolute;
  bottom: 20%;
  left: 0;
  right: 0;
  height: 30px;
  background: linear-gradient(90deg, #5a3a2a 0%, #4a2a1a 40%, #3a1a0a 100%);
  border-radius: 0 0 10% 10% / 0 0 40% 40%;
  transform: scaleY(0.8);
  box-shadow: 0 4px 12px rgba(0,0,0,0.5);
  animation: nh-rail 5s ease-in-out infinite;
}
.scn-nuku-hiva-sight .wave-travel {
  position: absolute;
  bottom: 15%;
  left: 10%;
  width: 80px;
  height: 8px;
  background: linear-gradient(90deg, #5a9a8a 0%, #3a7a6a 50%, transparent 100%);
  border-radius: 50%;
  filter: blur(2px);
  animation: nh-wave 20s linear infinite;
}
.scn-nuku-hiva-sight .cloud-bank {
  position: absolute;
  top: 20%;
  right: 5%;
  width: 100px;
  height: 24px;
  background: linear-gradient(90deg, rgba(255,255,255,0.5), rgba(255,255,255,0.1));
  border-radius: 50%;
  filter: blur(10px);
  animation: nh-cloud 40s linear infinite reverse;
}

@keyframes nh-sky {
  0% { opacity: 0.9; background-position: 0 0; }
  50% { opacity: 1; background-position: 0 8%; }
  100% { opacity: 0.85; background-position: 0 0; }
}
@keyframes nh-sun {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-10px) scale(1.03); }
  100% { transform: translateY(0) scale(0.98); }
}
@keyframes nh-ocean {
  0% { background-position: 0 0; }
  50% { background-position: 0 3%; }
  100% { background-position: 0 0; }
}
@keyframes nh-island {
  0% { transform: translateX(-50%) translateY(0) rotate(0deg); }
  50% { transform: translateX(-50%) translateY(-5px) rotate(2deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(-1deg); }
}
@keyframes nh-rail {
  0% { transform: scaleY(0.8) translateX(0); }
  25% { transform: scaleY(0.8) translateX(3px); }
  50% { transform: scaleY(0.8) translateX(0); }
  75% { transform: scaleY(0.8) translateX(-3px); }
  100% { transform: scaleY(0.8) translateX(0); }
}
@keyframes nh-wave {
  0% { transform: translateX(-20px); }
  100% { transform: translateX(120vw); }
}
@keyframes nh-cloud {
  0% { transform: translateX(0); }
  100% { transform: translateX(-100vw); }
}

.scn-fish-nets-marquesas {
  background: linear-gradient(180deg, #0a2a3a 0%, #1a4a5a 30%, #2a6a7a 60%, #3a8a9a 100%),
              radial-gradient(ellipse at 50% 25%, #5aa0b0 0%, transparent 70%);
}
.scn-fish-nets-marquesas .deep-water {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(10,42,58,0.5), rgba(42,106,122,0.2));
  animation: fm-water 20s ease-in-out infinite alternate;
}
.scn-fish-nets-marquesas .net-mesh {
  position: absolute;
  bottom: 10%;
  left: 5%;
  right: 5%;
  height: 60%;
  background: repeating-linear-gradient(45deg, rgba(180,160,140,0.2) 0px, rgba(180,160,140,0.2) 3px, transparent 3px, transparent 6px),
              repeating-linear-gradient(-45deg, rgba(180,160,140,0.2) 0px, rgba(180,160,140,0.2) 3px, transparent 3px, transparent 6px);
  border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%;
  animation: fm-net 12s ease-in-out infinite alternate;
}
.scn-fish-nets-marquesas .dolphinfish {
  position: absolute;
  top: 30%;
  left: 10%;
  width: 50px;
  height: 18px;
  background: linear-gradient(90deg, #3a8ac0 0%, #60b8e0 30%, #90d0f0 60%, #f0d080 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 15px 4px rgba(60,138,192,0.4);
  animation: fm-dolphin 8s ease-in-out infinite;
}
.scn-fish-nets-marquesas .wrasse {
  position: absolute;
  top: 50%;
  left: 30%;
  width: 35px;
  height: 12px;
  background: linear-gradient(90deg, #4a9a6a 0%, #70c08a 50%, #a0e0b0 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  animation: fm-wrasse 6s ease-in-out infinite;
}
.scn-fish-nets-marquesas .knifejaw {
  position: absolute;
  top: 60%;
  left: 55%;
  width: 30px;
  height: 14px;
  background: linear-gradient(90deg, #6a5a4a 0%, #8a7a5a 50%, #ba9a7a 100%);
  border-radius: 60% 30% 30% 60% / 50% 50% 50% 50%;
  box-shadow: 0 0 8px 2px rgba(106,90,74,0.3);
  animation: fm-knifejaw 9s ease-in-out infinite;
}
.scn-fish-nets-marquesas .albacore {
  position: absolute;
  top: 45%;
  left: 70%;
  width: 45px;
  height: 16px;
  background: linear-gradient(90deg, #4a6a8a 0%, #6a9aba 50%, #8ac0da 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: scaleX(-1);
  animation: fm-albacore 10s ease-in-out infinite alternate;
}
.scn-fish-nets-marquesas .bubbles {
  position: absolute;
  bottom: 5%;
  left: 40%;
  width: 6px;
  height: 60px;
  background: radial-gradient(circle at 50% 20%, rgba(255,255,255,0.2) 0%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 8px 2px rgba(255,255,255,0.15);
  animation: fm-bubbles 7s ease-in-out infinite;
}

@keyframes fm-water {
  0% { opacity: 0.85; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes fm-net {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(5px) rotate(2deg); }
  100% { transform: translateY(-3px) rotate(-1deg); }
}
@keyframes fm-dolphin {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  25% { transform: translateX(20px) translateY(-4px) rotate(5deg); }
  50% { transform: translateX(40px) translateY(0) rotate(-2deg); }
  75% { transform: translateX(20px) translateY(3px) rotate(3deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes fm-wrasse {
  0% { transform: translateX(0) rotate(0deg); }
  33% { transform: translateX(10px) rotate(2deg); }
  66% { transform: translateX(-5px) rotate(-3deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes fm-knifejaw {
  0% { transform: translateX(0) scaleX(1); }
  50% { transform: translateX(-8px) scaleX(-1); }
  100% { transform: translateX(0) scaleX(1); }
}
@keyframes fm-albacore {
  0% { transform: scaleX(-1) translateX(0); }
  100% { transform: scaleX(-1) translateX(-30px); }
}
@keyframes fm-bubbles {
  0% { transform: translateY(0) scale(1); opacity: 0.6; }
  50% { transform: translateY(-30px) scale(1.3); opacity: 0.3; }
  100% { transform: translateY(-60px) scale(0.7); opacity: 0; }
}

.scn-report-of-savages { background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%), radial-gradient(ellipse at 50% 0%, #6a5a3a 0%, transparent 60%); }
.scn-report-of-savages .wall-lamp   { position:absolute; top:8%; left:12%; width:14px; height:24px; background: radial-gradient(circle, #f0d090 0%, #b08040 70%); border-radius:40% 40% 60% 60% / 50% 50% 40% 40%; box-shadow: 0 0 20px 6px #c08040, 0 0 40px 12px rgba(192,128,64,.3); animation: ros-lamp 5s ease-in-out infinite alternate; }
.scn-report-of-savages .porthole    { position:absolute; top:10%; right:12%; width:50px; height:50px; border-radius:50%; background: radial-gradient(circle at 50% 50%, #1a3a5a 0%, #0a1a2a 80%); border:4px solid #5a4a3a; box-shadow: inset 0 0 20px rgba(0,0,0,.6); animation: ros-porthole 8s ease-in-out infinite alternate; }
.scn-report-of-savages .organ       { position:absolute; bottom:15%; left:50%; width:120px; height:80px; transform:translateX(-50%); background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%); border-radius:12% 12% 30% 30% / 20% 20% 40% 40%; box-shadow: 0 8px 16px rgba(0,0,0,.5); animation: ros-organ 12s ease-in-out infinite; }
.scn-report-of-savages .captain-silhouette { position:absolute; bottom:16%; left:40%; width:30px; height:60px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ros-captain 9s ease-in-out infinite; }
.scn-report-of-savages .professor-silhouette { position:absolute; bottom:16%; right:35%; width:28px; height:55px; background: linear-gradient(180deg, #2a1a2a 0%, #0a0a1a 100%); border-radius:50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: ros-professor 7s ease-in-out infinite; }
.scn-report-of-savages .music-sheet { position:absolute; bottom:38%; left:55%; width:8px; height:12px; background: #d0c0a0; border-radius:2px; opacity:.6; animation: ros-music 15s linear infinite; }
@keyframes ros-lamp     { 0% { box-shadow:0 0 15px 4px #c08040,0 0 30px 8px rgba(192,128,64,.3); opacity:.85 } 50% { box-shadow:0 0 25px 8px #f0d090,0 0 50px 20px rgba(240,208,144,.5); opacity:1 } 100% { box-shadow:0 0 18px 5px #c08040,0 0 35px 10px rgba(192,128,64,.3); opacity:.9 } }
@keyframes ros-porthole { 0% { box-shadow:inset 0 0 15px rgba(0,0,0,.6); } 50% { box-shadow:inset 0 0 30px rgba(0,40,80,.6); } 100% { box-shadow:inset 0 0 20px rgba(0,0,0,.6); } }
@keyframes ros-organ    { 0%,100% { transform:translateX(-50%) scaleY(1); } 50% { transform:translateX(-50%) scaleY(1.03); } }
@keyframes ros-captain  { 0% { transform:translateX(0) rotate(0deg); } 25% { transform:translateX(4px) rotate(-1deg); } 50% { transform:translateX(0) rotate(1deg); } 75% { transform:translateX(-4px) rotate(0deg); } 100% { transform:translateX(0) rotate(0); } }
@keyframes ros-professor { 0% { transform:translateX(0) rotate(0deg); } 33% { transform:translateX(3px) rotate(2deg); } 66% { transform:translateX(-2px) rotate(-1deg); } 100% { transform:translateX(0) rotate(0); } }
@keyframes ros-music    { 0% { transform:translateY(0) rotate(0deg); opacity:.6; } 20% { transform:translateY(-10px) rotate(-5deg); opacity:.8; } 40% { transform:translateY(-20px) rotate(0deg); opacity:.4; } 60% { transform:translateY(-10px) rotate(5deg); opacity:.7; } 80% { transform:translateY(-5px) rotate(0); opacity:.5; } 100% { transform:translateY(0) rotate(0); opacity:.6; } }

.scn-nemo-dismisses-danger { background: linear-gradient(135deg, #3a2a1a 0%, #1a1a2a 100%), radial-gradient(ellipse at 70% 50%, #5a4a3a 0%, transparent 60%); }
.scn-nemo-dismisses-danger .desk     { position:absolute; bottom:12%; left:50%; transform:translateX(-50%); width:100px; height:50px; background: linear-gradient(180deg, #5a3a2a 0%, #2a1a1a 100%); border-radius:8% 8% 4% 4% / 10% 10% 5% 5%; box-shadow: 0 6px 12px rgba(0,0,0,.5); animation: ndd-desk 6s ease-in-out infinite; }
.scn-nemo-dismisses-danger .porthole { position:absolute; top:12%; right:12%; width:45px; height:45px; border-radius:50%; background: radial-gradient(circle, #1a3a5a 0%, #0a1a2a 80%); border:3px solid #5a4a3a; box-shadow: inset 0 0 20px rgba(0,0,0,.6); animation: ndd-porthole 10s ease-in-out infinite alternate; }
.scn-nemo-dismisses-danger .captain-seated { position:absolute; bottom:18%; left:30%; width:45px; height:55px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: ndd-captain 8s ease-in-out infinite; }
.scn-nemo-dismisses-danger .professor-standing { position:absolute; bottom:14%; right:25%; width:28px; height:70px; background: linear-gradient(180deg, #2a1a2a 0%, #0a0a1a 100%); border-radius:50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: ndd-professor 6s ease-in-out infinite; }
.scn-nemo-dismisses-danger .lamp     { position:absolute; top:5%; right:20%; width:12px; height:30px; background: linear-gradient(180deg, #f0d090 0%, #c08040 100%); border-radius:30% 30% 10% 10% / 40% 40% 20% 20%; box-shadow: 0 0 20px 8px #c08040; animation: ndd-lamp 4s ease-in-out infinite alternate; }
.scn-nemo-dismisses-danger .shadow-scroll { position:absolute; bottom:22%; left:45%; width:6px; height:16px; background: #2a1a1a; border-radius:20%; opacity:.4; animation: ndd-scroll 7s ease-in-out infinite; }
@keyframes ndd-desk       { 0%,100% { transform:translateX(-50%) scaleY(1); } 50% { transform:translateX(-50%) scaleY(1.02); } }
@keyframes ndd-porthole   { 0% { box-shadow:inset 0 0 15px rgba(0,0,0,.6); } 50% { box-shadow:inset 0 0 35px rgba(0,40,80,.6); } 100% { box-shadow:inset 0 0 20px rgba(0,0,0,.6); } }
@keyframes ndd-captain    { 0% { transform:translateX(0) rotate(0deg); } 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 ndd-professor  { 0% { transform:translateX(0) rotate(0deg); } 20% { transform:translateX(5px) rotate(1deg); } 40% { transform:translateX(-5px) rotate(-1deg); } 60% { transform:translateX(3px) rotate(0); } 80% { transform:translateX(-3px) rotate(1deg); } 100% { transform:translateX(0) rotate(0); } }
@keyframes ndd-lamp       { 0% { box-shadow:0 0 15px 4px #c08040,0 0 30px 8px rgba(192,128,64,.3); opacity:.9; } 50% { box-shadow:0 0 30px 8px #f0d090,0 0 60px 16px rgba(240,208,144,.5); opacity:1; } 100% { box-shadow:0 0 18px 5px #c08040,0 0 35px 10px rgba(192,128,64,.35); opacity:.8; } }
@keyframes ndd-scroll     { 0% { transform:translateY(0) rotate(0deg); opacity:.4; } 50% { transform:translateY(-5px) rotate(3deg); opacity:.6; } 100% { transform:translateY(0) rotate(-2deg); opacity:.4; } }

.scn-nemo-unfazed { background: linear-gradient(180deg, #3a2a1a 0%, #1a1a2a 100%), radial-gradient(ellipse at 30% 60%, #5a4a3a 0%, transparent 50%); }
.scn-nemo-unfazed .organ-keyboard { position:absolute; bottom:10%; left:50%; width:130px; height:20px; transform:translateX(-50%); background: linear-gradient(180deg, #7a5a3a 0%, #4a3a2a 100%); border-radius:10px; box-shadow: 0 8px 12px rgba(0,0,0,.5); animation: nfu-keyboard 16s ease-in-out infinite; }
.scn-nemo-unfazed .nemo-hands    { position:absolute; bottom:12%; left:50%; width:40px; height:12px; transform:translateX(-50%); background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius:20px; transform-origin: center; animation: nfu-hands 3s ease-in-out infinite alternate; }
.scn-nemo-unfazed .sheet-music  { position:absolute; bottom:28%; left:45%; width:10px; height:14px; background: #d0c0a0; border-radius:2px; opacity:.5; animation: nfu-sheet 12s ease-in-out infinite; }
.scn-nemo-unfazed .captain-body { position:absolute; bottom:10%; left:32%; width:50px; height:70px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 30% 30%; animation: nfu-captain 8s ease-in-out infinite; }
.scn-nemo-unfazed .professor-listening { position:absolute; bottom:12%; right:22%; width:30px; height:65px; background: linear-gradient(180deg, #2a1a2a 0%, #0a0a1a 100%); border-radius:50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: nfu-prof 5s ease-in-out infinite; }
.scn-nemo-unfazed .porthole-glow { position:absolute; top:10%; left:10%; width:40px; height:40px; border-radius:50%; background: radial-gradient(circle, #1a3a5a 0%, #0a1a2a 80%); border:3px solid #5a4a3a; box-shadow: inset 0 0 20px rgba(0,0,0,.6); animation: nfu-window 9s ease-in-out infinite alternate; }
@keyframes nfu-keyboard { 0%,100% { transform:translateX(-50%) scaleX(1); } 50% { transform:translateX(-50%) scaleX(1.02); } }
@keyframes nfu-hands     { 0% { transform:translateX(-50%) rotate(0deg) translateY(0); } 25% { transform:translateX(-48%) rotate(-3deg) translateY(-1px); } 50% { transform:translateX(-52%) rotate(3deg) translateY(1px); } 75% { transform:translateX(-50%) rotate(-1deg) translateY(-1px); } 100% { transform:translateX(-50%) rotate(0deg) translateY(0); } }
@keyframes nfu-sheet     { 0% { transform:translateY(0) rotate(0deg); opacity:.5; } 20% { transform:translateY(-8px) rotate(-4deg); opacity:.7; } 40% { transform:translateY(-16px) rotate(2deg); opacity:.4; } 60% { transform:translateY(-8px) rotate(-1deg); opacity:.6; } 80% { transform:translateY(-4px) rotate(3deg); opacity:.5; } 100% { transform:translateY(0) rotate(0); opacity:.5; } }
@keyframes nfu-captain   { 0% { transform:translateX(0) rotate(0deg); } 25% { transform:translateX(2px) rotate(1deg); } 50% { transform:translateX(0) rotate(-1deg); } 75% { transform:translateX(-2px) rotate(0); } 100% { transform:translateX(0) rotate(0); } }
@keyframes nfu-prof      { 0% { transform:translateX(0) rotate(0deg); } 30% { transform:translateX(-3px) rotate(2deg); } 60% { transform:translateX(2px) rotate(-2deg); } 100% { transform:translateX(0) rotate(0); } }
@keyframes nfu-window    { 0% { box-shadow:inset 0 0 15px rgba(0,0,0,.6); } 50% { box-shadow:inset 0 0 30px rgba(0,40,80,.6); } 100% { box-shadow:inset 0 0 20px rgba(0,0,0,.6); } }

.scn-solitary-contemplation { background: linear-gradient(180deg, #0a0a2a 0%, #1a1a3a 40%, #0a0a1a 100%), radial-gradient(ellipse at 80% 20%, #2a3a5a 0%, transparent 40%); }
.scn-solitary-contemplation .moon   { position:absolute; top:8%; right:25%; width:40px; height:40px; background: radial-gradient(circle at 60% 40%, #e0e8f0 0%, #a0b0c0 80%); border-radius:50%; box-shadow: 0 0 30px 10px rgba(160,176,192,.4), 0 0 60px 20px rgba(160,176,192,.15); animation: sc-moon 12s ease-in-out infinite alternate; }
.scn-solitary-contemplation .sea    { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #0a1a2a 0%, #1a2a3a 100%); border-radius:60% 40% 0 0 / 80% 60% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.5); animation: sc-sea 6s ease-in-out infinite; }
.scn-solitary-contemplation .deck-rail { position:absolute; bottom:30%; left:0; right:0; height:4px; background: linear-gradient(90deg, transparent 0%, #3a4a5a 20%, #4a5a6a 50%, #3a4a5a 80%, transparent 100%); box-shadow: 0 2px 4px rgba(0,0,0,.6); animation: sc-rail 8s ease-in-out infinite; }
.scn-solitary-contemplation .figure-silhouette { position:absolute; bottom:22%; left:40%; width:22px; height:60px; background: linear-gradient(180deg, #0a0a1a 0%, #000000 100%); border-radius:50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: sc-figure 5s ease-in-out infinite; }
.scn-solitary-contemplation .star-1  { position:absolute; top:15%; left:10%; width:3px; height:3px; background:#c0d0e0; border-radius:50%; box-shadow: 0 0 6px 1px #c0d0e0; animation: sc-star1 3s ease-in-out infinite alternate; }
.scn-solitary-contemplation .star-2  { position:absolute; top:20%; left:50%; width:2px; height:2px; background:#b0c0d0; border-radius:50%; box-shadow: 0 0 5px 1px #b0c0d0; animation: sc-star2 4s ease-in-out infinite alternate 1s; }
.scn-solitary-contemplation .star-3  { position:absolute; top:12%; left:70%; width:4px; height:4px; background:#d0e0f0; border-radius:50%; box-shadow: 0 0 8px 2px #d0e0f0; animation: sc-star3 2s ease-in-out infinite alternate 0.5s; }
@keyframes sc-moon   { 0% { transform:translateX(0) scale(1); } 50% { transform:translateX(-5px) scale(1.02); } 100% { transform:translateX(5px) scale(0.98); } }
@keyframes sc-sea    { 0% { transform:translateY(0); } 50% { transform:translateY(-3px); } 100% { transform:translateY(0); } }
@keyframes sc-rail   { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.85; } }
@keyframes sc-figure { 0% { transform:translateX(0) rotate(0deg); } 25% { transform:translateX(2px) rotate(1deg); } 50% { transform:translateX(-2px) rotate(-1deg); } 75% { transform:translateX(1px) rotate(0); } 100% { transform:translateX(0) rotate(0); } }
@keyframes sc-star1  { 0% { opacity:.3; } 100% { opacity:1; } }
@keyframes sc-star2  { 0% { opacity:.2; } 100% { opacity:.8; } }
@keyframes sc-star3  { 0% { opacity:.5; } 100% { opacity:1; } }

/* Scene 1: leaving-marquesas */
.scn-leaving-marquesas {
  background:
    linear-gradient(180deg, #6eb5e0 0%, #f9d77e 60%, #d49a4a 100%),
    radial-gradient(ellipse at 30% 40%, rgba(255,220,150,0.5) 0%, transparent 60%);
}
.scn-leaving-marquesas .sky {
  position:absolute; inset:0 0 50% 0;
  background: linear-gradient(180deg, #87ceeb 0%, #b0e0e6 40%, transparent 100%);
  animation: lm-sky 15s ease-in-out infinite alternate;
}
.scn-leaving-marquesas .sun {
  position:absolute; top:15%; left:30%; width:60px; height:60px;
  background: radial-gradient(circle, #ffdf80 0%, #ffb347 60%, transparent 100%);
  border-radius:50%;
  box-shadow: 0 0 80px 30px rgba(255,200,80,0.4);
  animation: lm-sun 8s ease-in-out infinite alternate;
}
.scn-leaving-marquesas .clouds {
  position:absolute; top:8%; left:0; right:0; height:20%;
  background: repeating-linear-gradient(90deg, rgba(255,255,255,0.4) 0px, rgba(255,255,255,0.4) 40px, transparent 40px, transparent 80px);
  filter: blur(8px);
  animation: lm-clouds 40s linear infinite;
}
.scn-leaving-marquesas .ocean {
  position:absolute; bottom:0; left:0; right:0; height:50%;
  background: linear-gradient(180deg, #2e8b8c 0%, #1a4a5e 100%);
  border-radius: 10% 30% 0 0;
  box-shadow: inset 0 20px 30px rgba(0,0,0,0.3);
  animation: lm-ocean 12s ease-in-out infinite alternate;
}
.scn-leaving-marquesas .nautilus {
  position:absolute; bottom:30%; left:50%; width:100px; height:20px;
  background: linear-gradient(90deg, #4a4a5a 0%, #2a2a3a 50%, #4a4a5a 100%);
  border-radius: 50%;
  transform: translateX(-50%);
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: lm-nautilus 20s ease-in-out infinite;
}
.scn-leaving-marquesas .squid-1 {
  position:absolute; bottom:40%; left:20%; width:15px; height:25px;
  background: radial-gradient(ellipse at 50% 30%, #d4a574 0%, #8b5e3c 100%);
  border-radius: 40% 40% 30% 30%;
  animation: lm-squid 6s ease-in-out infinite alternate;
  filter: blur(1px);
}
.scn-leaving-marquesas .squid-2 {
  position:absolute; bottom:35%; right:25%; width:12px; height:20px;
  background: radial-gradient(ellipse at 50% 30%, #c9956a 0%, #7a4e2e 100%);
  border-radius: 40% 40% 30% 30%;
  animation: lm-squid 7s ease-in-out infinite alternate-reverse;
  filter: blur(1px);
}
@keyframes lm-sky { 0% { opacity:0.8; } 50% { opacity:0.95; } 100% { opacity:0.85; } }
@keyframes lm-sun { 0% { transform: scale(0.95); box-shadow: 0 0 60px 20px rgba(255,200,80,0.3); } 50% { transform: scale(1.05); box-shadow: 0 0 100px 40px rgba(255,200,80,0.6); } 100% { transform: scale(0.98); box-shadow: 0 0 70px 25px rgba(255,200,80,0.35); } }
@keyframes lm-clouds { 0% { transform: translateX(0); } 100% { transform: translateX(-200px); } }
@keyframes lm-ocean { 0% { transform: translateY(0); } 50% { transform: translateY(-5px); } 100% { transform: translateY(0); } }
@keyframes lm-nautilus { 0%,100% { transform: translateX(-50%) translateY(0) rotate(0deg); } 25% { transform: translateX(-45%) translateY(-2px) rotate(-1deg); } 75% { transform: translateX(-55%) translateY(1px) rotate(1deg); } }
@keyframes lm-squid { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 50% { transform: translateX(15px) translateY(-5px) rotate(5deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }

/* Scene 2: cuckoldfish-explanation */
.scn-cuckoldfish-explanation {
  background:
    linear-gradient(180deg, #87ceeb 0%, #3b9e9e 50%, #1e6b6b 100%),
    radial-gradient(ellipse at 70% 30%, rgba(200,230,255,0.3) 0%, transparent 70%);
}
.scn-cuckoldfish-explanation .water-bg {
  position:absolute; inset:0;
  background: linear-gradient(180deg, rgba(135,206,235,0.3) 0%, rgba(30,107,107,0.2) 100%);
  animation: ce-water 20s ease-in-out infinite alternate;
}
.scn-cuckoldfish-explanation .cuttlefish-body {
  position:absolute; bottom:35%; left:50%; width:80px; height:50px;
  background: radial-gradient(ellipse at 50% 40%, #c9956a 0%, #8b5e3c 60%, #5a3a24 100%);
  border-radius: 50% 50% 40% 40%;
  transform: translateX(-50%);
  box-shadow: 0 4px 12px rgba(0,0,0,0.4);
  animation: ce-body 4s ease-in-out infinite alternate;
}
.scn-cuckoldfish-explanation .cuttlefish-fin {
  position:absolute; bottom:40%; left:48%; width:30px; height:12px;
  background: linear-gradient(90deg, #d4a574 0%, #a07050 100%);
  border-radius: 40% 40% 20% 20%;
  transform-origin: center left;
  animation: ce-fin 3s ease-in-out infinite alternate;
}
.scn-cuckoldfish-explanation .cuttlefish-eye {
  position:absolute; bottom:45%; left:55%; width:12px; height:14px;
  background: radial-gradient(circle at 30% 30%, #f0e0c0 0%, #1a1a1a 100%);
  border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(0,0,0,0.3);
  animation: ce-eye 5s ease-in-out infinite;
}
.scn-cuckoldfish-explanation .tentacle-1 {
  position:absolute; bottom:30%; left:42%; width:8px; height:20px;
  background: linear-gradient(180deg, #c9956a 0%, #8b5e3c 100%);
  border-radius: 40% 40% 20% 20%;
  transform-origin: top center;
  animation: ce-tentacle 6s ease-in-out infinite;
}
.scn-cuckoldfish-explanation .tentacle-2 {
  bottom:30%; left:58%; width:8px; height:20px;
  position:absolute;
  background: linear-gradient(180deg, #c9956a 0%, #8b5e3c 100%);
  border-radius: 40% 40% 20% 20%;
  transform-origin: top center;
  animation: ce-tentacle 6s ease-in-out infinite 1s;
}
.scn-cuckoldfish-explanation .tentacle-3 {
  bottom:25%; left:50%; width:6px; height:18px;
  position:absolute;
  background: linear-gradient(180deg, #b88462 0%, #7a4e2e 100%);
  border-radius: 40% 40% 20% 20%;
  transform-origin: top center;
  animation: ce-tentacle 6s ease-in-out infinite 2s;
}
.scn-cuckoldfish-explanation .particle {
  position:absolute; top:60%; left:20%; width:4px; height:4px;
  background: rgba(255,255,255,0.6);
  border-radius: 50%;
  animation: ce-particle 8s linear infinite;
}
.scn-cuckoldfish-explanation .particle:nth-child(8) { left:70%; animation-delay:3s; width:3px; height:3px; }
@keyframes ce-water { 0% { opacity:0.5; } 50% { opacity:0.8; } 100% { opacity:0.6; } }
@keyframes ce-body { 0% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-45%) scale(1.02); } 100% { transform: translateX(-55%) scale(0.98); } }
@keyframes ce-fin { 0% { transform: rotate(-10deg); } 50% { transform: rotate(10deg); } 100% { transform: rotate(-5deg); } }
@keyframes ce-eye { 0%,100% { transform: scaleY(1); } 30% { transform: scaleY(0.2); } 70% { transform: scaleY(0.2); } }
@keyframes ce-tentacle { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-5px) rotate(15deg); } }
@keyframes ce-particle { 0% { transform: translateY(0) translateX(0); opacity:1; } 50% { transform: translateY(-30px) translateX(20px); opacity:0.6; } 100% { transform: translateY(-80px) translateX(-10px); opacity:0; } }

/* Scene 3: nocturnal-squid-migration */
.scn-nocturnal-squid-migration {
  background:
    linear-gradient(180deg, #0a1b2a 0%, #1b3a4a 40%, #2a4a5a 100%),
    radial-gradient(ellipse at 50% 20%, rgba(200,220,255,0.3) 0%, transparent 70%);
}
.scn-nocturnal-squid-migration .night-sky {
  position:absolute; inset:0 0 50% 0;
  background: linear-gradient(180deg, #0a1b2a 0%, #142e3e 100%);
  animation: ns-sky 20s ease-in-out infinite alternate;
}
.scn-nocturnal-squid-migration .moon {
  position:absolute; top:12%; right:20%; width:40px; height:40px;
  background: radial-gradient(circle, #e8f0ff 0%, #c0d0e0 80%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px rgba(200,220,255,0.4);
  animation: ns-moon 10s ease-in-out infinite alternate;
}
.scn-nocturnal-squid-migration .moon-reflection {
  position:absolute; bottom:40%; left:45%; width:60px; height:80px;
  background: linear-gradient(180deg, rgba(200,220,255,0.3) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(10px);
  animation: ns-reflect 15s ease-in-out infinite alternate;
}
.scn-nocturnal-squid-migration .ocean-dark {
  position:absolute; bottom:0; left:0; right:0; height:50%;
  background: linear-gradient(180deg, #1a3a4a 0%, #0a1a2a 100%);
  border-radius: 20% 10% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.5);
  animation: ns-ocean 18s ease-in-out infinite alternate;
}
.scn-nocturnal-squid-migration .squid-wave-1 {
  position:absolute; bottom:30%; left:10%; width:12px; height:20px;
  background: radial-gradient(ellipse at 50% 30%, #a0b8c8 0%, #506878 100%);
  border-radius: 40% 40% 30% 30%;
  filter: blur(1px);
  animation: ns-squid 12s linear infinite;
}
.scn-nocturnal-squid-migration .squid-wave-2 {
  position:absolute; bottom:25%; left:35%; width:10px; height:16px;
  background: radial-gradient(ellipse at 50% 30%, #90a8b8 0%, #405868 100%);
  border-radius: 40% 40% 30% 30%;
  filter: blur(1px);
  animation: ns-squid 14s linear infinite 4s;
}
.scn-nocturnal-squid-migration .squid-wave-3 {
  position:absolute; bottom:35%; left:60%; width:14px; height:22px;
  background: radial-gradient(ellipse at 50% 30%, #b0c8d8 0%, #607888 100%);
  border-radius: 40% 40% 30% 30%;
  filter: blur(1px);
  animation: ns-squid 16s linear infinite 8s;
}
@keyframes ns-sky { 0% { opacity:0.7; } 50% { opacity:0.9; } 100% { opacity:0.8; } }
@keyframes ns-moon { 0% { transform: scale(0.95); box-shadow: 0 0 40px 15px rgba(200,220,255,0.3); } 50% { transform: scale(1.05); box-shadow: 0 0 80px 30px rgba(200,220,255,0.5); } 100% { transform: scale(0.98); box-shadow: 0 0 50px 20px rgba(200,220,255,0.35); } }
@keyframes ns-reflect { 0% { opacity:0.3; transform: scaleY(0.95); } 50% { opacity:0.5; transform: scaleY(1.05); } 100% { opacity:0.35; transform: scaleY(0.98); } }
@keyframes ns-ocean { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(0); } }
@keyframes ns-squid { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 25% { transform: translateX(40px) translateY(-10px) rotate(10deg); } 50% { transform: translateX(80px) translateY(0) rotate(0deg); } 75% { transform: translateX(120px) translateY(5px) rotate(-5deg); } 100% { transform: translateX(160px) translateY(0) rotate(0deg); } }

/* Scene 4: squid-viewed-through-windows */
.scn-squid-viewed-through-windows {
  background:
    linear-gradient(180deg, #141a2a 0%, #2a3a4a 50%, #1a2a3a 100%),
    radial-gradient(ellipse at 50% 50%, rgba(100,150,200,0.2) 0%, transparent 70%);
}
.scn-squid-viewed-through-windows .window-frame {
  position:absolute; inset:10% 10% 10% 10%;
  border: 8px solid #4a5a6a;
  border-radius: 8px;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.8), 0 0 20px rgba(0,0,0,0.5);
  background: none;
  pointer-events: none;
}
.scn-squid-viewed-through-windows .glass-shine {
  position:absolute; inset:12% 12% 12% 12%;
  background: linear-gradient(135deg, rgba(255,255,255,0.15) 0%, transparent 50%, rgba(255,255,255,0.05) 100%);
  background-size: 200% 200%;
  animation: sv-glass 8s ease-in-out infinite alternate;
}
.scn-squid-viewed-through-windows .squid-large {
  position:absolute; bottom:40%; left:60%; width:50px; height:80px;
  background: radial-gradient(ellipse at 50% 30%, #8a9aa8 0%, #4a5a6a 100%);
  border-radius: 40% 40% 30% 30%;
  filter: blur(2px);
  animation: sv-squid-large 12s linear infinite;
}
.scn-squid-viewed-through-windows .squid-small-1 {
  position:absolute; bottom:50%; left:30%; width:20px; height:30px;
  background: radial-gradient(ellipse at 50% 30%, #7a8a98 0%, #3a4a5a 100%);
  border-radius: 40% 40% 30% 30%;
  filter: blur(1px);
  animation: sv-squid-small 10s linear infinite 2s;
}
.scn-squid-viewed-through-windows .squid-small-2 {
  position:absolute; bottom:35%; left:80%; width:18px; height:28px;
  background: radial-gradient(ellipse at 50% 30%, #6a7a88 0%, #2a3a4a 100%);
  border-radius: 40% 40% 30% 30%;
  filter: blur(1px);
  animation: sv-squid-small 14s linear infinite 5s;
}
.scn-squid-viewed-through-windows .bubble {
  position:absolute; bottom:20%; left:45%; width:10px; height:10px;
  border-radius: 50%;
  background: rgba(200,220,255,0.3);
  border: 1px solid rgba(200,220,255,0.5);
  animation: sv-bubble 6s ease-in-out infinite;
}
.scn-squid-viewed-through-windows .bubble-2 {
  position:absolute; bottom:30%; left:70%; width:8px; height:8px;
  border-radius: 50%;
  background: rgba(200,220,255,0.2);
  border: 1px solid rgba(200,220,255,0.4);
  animation: sv-bubble 8s ease-in-out infinite 3s;
}
@keyframes sv-glass { 0% { background-position: 0% 0%; } 50% { background-position: 100% 100%; } 100% { background-position: 0% 0%; } }
@keyframes sv-squid-large { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 25% { transform: translateX(-30px) translateY(-10px) rotate(5deg); } 50% { transform: translateX(-60px) translateY(0) rotate(0deg); } 75% { transform: translateX(-90px) translateY(10px) rotate(-5deg); } 100% { transform: translateX(-120px) translateY(0) rotate(0deg); } }
@keyframes sv-squid-small { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 50% { transform: translateX(-40px) translateY(-5px) rotate(3deg); } 100% { transform: translateX(-80px) translateY(0) rotate(0deg); } }
@keyframes sv-bubble { 0%,100% { transform: translateY(0) scale(1); opacity:0.6; } 50% { transform: translateY(-40px) scale(1.2); opacity:0.9; } }

/* fish-variety - calm sunlit underwater with rays */
.scn-fish-variety {
  background: 
    linear-gradient(180deg, #b8d4e3 0%, #4f8db4 40%, #1a4b6e 100%),
    radial-gradient(ellipse at 30% 20%, #ffeebb 0%, transparent 60%);
}
.scn-fish-variety .water-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(255,255,200,0.2) 0%, transparent 30%, rgba(0,50,80,0.3) 100%);
  animation: fv-water 12s ease-in-out infinite alternate;
}
.scn-fish-variety .light-rays {
  position: absolute; top: 0; left: 10%; width: 20%; height: 100%;
  background: linear-gradient(135deg, rgba(255,230,150,0.25) 0%, transparent 70%);
  clip-path: polygon(20% 0%, 80% 0%, 60% 100%, 40% 100%);
  animation: fv-rays 8s ease-in-out infinite alternate;
}
.scn-fish-variety .ray-fish {
  position: absolute; width: 80px; height: 50px;
  background: radial-gradient(ellipse 70% 50% at 30% 50%, #d98a6b 0%, #b03a2a 60%, #6e1d12 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 0 12px rgba(180,60,40,0.3);
}
.scn-fish-variety .ray-1 {
  top: 25%; left: 15%;
  animation: fv-ray1 6s ease-in-out infinite alternate;
}
.scn-fish-variety .ray-2 {
  top: 45%; left: 55%; width: 70px; height: 40px;
  background: radial-gradient(ellipse 70% 50% at 30% 50%, #b8a070 0%, #8a6040 60%, #4a2a1a 100%);
  animation: fv-ray2 9s ease-in-out infinite alternate;
  animation-delay: -2s;
}
.scn-fish-variety .small-fish {
  position: absolute; width: 12px; height: 6px;
  background: #b0c8d0;
  border-radius: 50% 50% 50% 0 / 30% 30% 30% 0;
  box-shadow: 0 0 4px rgba(200,220,230,0.4);
}
.scn-fish-variety .school-1 {
  top: 30%; left: 40%;
  animation: fv-school1 20s linear infinite;
  box-shadow: 15px 8px 0 #98b0b8, 30px 2px 0 #b0c8d0, -10px 12px 0 #a0b8c0;
}
.scn-fish-variety .school-2 {
  top: 55%; left: 70%;
  animation: fv-school2 25s linear infinite reverse;
  box-shadow: -20px 5px 0 #90a8b0, -8px -10px 0 #b0c8d0, 12px 15px 0 #a8b8c0;
}
.scn-fish-variety .bubbles {
  position: absolute; bottom: 10%; left: 20%; width: 100%; height: 30%;
  background: radial-gradient(circle at 30% 100%, rgba(255,255,255,0.15) 0%, transparent 50%),
              radial-gradient(circle at 70% 80%, rgba(255,255,255,0.1) 0%, transparent 40%);
  animation: fv-bubbles 4s ease-in-out infinite alternate;
}
.scn-fish-variety .sand-bed {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #c8b08a 0%, #a89070 30%, #7a6a50 100%);
  border-radius: 60% 40% 0 0 / 40% 30% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.3);
}

@keyframes fv-water { 0% { opacity:0.6; transform: translateY(0); } 50% { opacity:0.8; transform: translateY(-5px); } 100% { opacity:0.6; transform: translateY(0); } }
@keyframes fv-rays { 0% { opacity:0.3; transform: scale(1) rotate(0deg); } 50% { opacity:0.6; transform: scale(1.05) rotate(2deg); } 100% { opacity:0.3; transform: scale(1) rotate(-1deg); } }
@keyframes fv-ray1 { 0% { transform: translateX(0) translateY(0) rotate(-3deg); } 50% { transform: translateX(20px) translateY(-8px) rotate(5deg); } 100% { transform: translateX(0) translateY(0) rotate(2deg); } }
@keyframes fv-ray2 { 0% { transform: translateX(0) translateY(0) rotate(2deg); } 50% { transform: translateX(-15px) translateY(-5px) rotate(-4deg); } 100% { transform: translateX(0) translateY(0) rotate(-1deg); } }
@keyframes fv-school1 { 0% { transform: translateX(-30px); } 50% { transform: translateX(20px); } 100% { transform: translateX(80vw); } }
@keyframes fv-school2 { 0% { transform: translateX(0); } 50% { transform: translateX(-30px); } 100% { transform: translateX(-100vw); } }
@keyframes fv-bubbles { 0% { transform: translateY(0) scale(0.9); opacity:0.3; } 50% { transform: translateY(-20px) scale(1.1); opacity:0.6; } 100% { transform: translateY(0) scale(1); opacity:0.3; } }

/* widest-part - calm sunlit Red Sea horizon with Nautilus */
.scn-widest-part {
  background: 
    linear-gradient(180deg, #7db8d4 0%, #4a8ba8 40%, #1a4a6a 100%),
    radial-gradient(ellipse at 50% 30%, #f0e8c0 0%, transparent 50%);
}
.scn-widest-part .sky-grad {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #d4e6f0 0%, #a0c8e0 30%, transparent 100%);
  animation: wp-sky 20s ease-in-out infinite alternate;
}
.scn-widest-part .sun-disc {
  position: absolute; top: 10%; left: 40%; width: 60px; height: 60px;
  background: radial-gradient(circle, #ffeebb 0%, #f0d080 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px #f0d080, 0 0 100px 30px rgba(240,208,128,0.3);
  animation: wp-sun 15s ease-in-out infinite alternate;
}
.scn-widest-part .sea-surface {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #4a8ba8 0%, #2a6a8a 50%, #1a4a6a 100%);
  border-radius: 0 0 20% 20% / 0 0 10% 10%;
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.3);
}
.scn-widest-part .shore-silhouette {
  position: absolute; bottom: 45%; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #3a5a3a 0%, #2a4a2a 100%);
  clip-path: polygon(0% 100%, 5% 60%, 12% 80%, 20% 50%, 28% 70%, 35% 40%, 45% 65%, 55% 30%, 65% 55%, 75% 20%, 85% 40%, 92% 10%, 100% 0%, 100% 100%);
}
.scn-widest-part .nautilus-hull {
  position: absolute; bottom: 38%; left: 50%; width: 180px; height: 60px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #6a7a8a 0%, #3a4a5a 50%, #1a2a3a 100%);
  border-radius: 40% 40% 50% 50% / 60% 60% 40% 40%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.5), inset 0 4px 10px rgba(200,220,240,0.3);
  animation: wp-nautilus 10s ease-in-out infinite alternate;
}
.scn-widest-part .nautilus-fin {
  position: absolute; bottom: 42%; left: 50%; width: 40px; height: 20px;
  transform: translateX(-50%) rotate(-5deg);
  background: linear-gradient(180deg, #4a5a6a 0%, #2a3a4a 100%);
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  animation: wp-fin 6s ease-in-out infinite alternate;
}
.scn-widest-part .wave-line {
  position: absolute; bottom: 20%; width: 200px; height: 8px;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,0.2), transparent);
  border-radius: 50%;
}
.scn-widest-part .wave-1 {
  left: 10%; animation: wp-wave1 8s ease-in-out infinite;
}
.scn-widest-part .wave-2 {
  right: 20%; animation: wp-wave2 10s ease-in-out infinite; animation-delay: -3s;
  width: 150px; height: 6px;
}
.scn-widest-part .gull {
  position: absolute; top: 15%; right: 20%; width: 30px; height: 10px;
  background: #d0d8e0;
  clip-path: polygon(0% 50%, 30% 0%, 50% 40%, 70% 0%, 100% 50%, 70% 100%, 50% 60%, 30% 100%);
  animation: wp-gull 25s linear infinite;
}

@keyframes wp-sky { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes wp-sun { 0% { transform: translateY(0) scale(1); opacity:0.8; } 50% { transform: translateY(-5px) scale(1.05); opacity:1; } 100% { transform: translateY(0) scale(0.98); opacity:0.85; } }
@keyframes wp-nautilus { 0% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-3px); } 100% { transform: translateX(-50%) translateY(0); } }
@keyframes wp-fin { 0% { transform: translateX(-50%) rotate(-6deg); } 50% { transform: translateX(-50%) rotate(6deg); } 100% { transform: translateX(-50%) rotate(-4deg); } }
@keyframes wp-wave1 { 0% { transform: translateX(0) translateY(0); opacity:0.4; } 50% { transform: translateX(30px) translateY(-3px); opacity:0.7; } 100% { transform: translateX(0) translateY(0); opacity:0.4; } }
@keyframes wp-wave2 { 0% { transform: translateX(0) translateY(0); opacity:0.3; } 50% { transform: translateX(-20px) translateY(-2px); opacity:0.6; } 100% { transform: translateX(0) translateY(0); opacity:0.3; } }
@keyframes wp-gull { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 50% { transform: translateX(-30px) translateY(-10px) rotate(-5deg); } 100% { transform: translateX(80vw) translateY(5px) rotate(2deg); } }

/* nemo-praises-nautilus - interior cabin glowing, Nemo silhouette */
.scn-nemo-praises-nautilus {
  background: 
    linear-gradient(135deg, #2a3a4a 0%, #1a2a3a 30%, #0a1a2a 100%),
    radial-gradient(circle at 50% 60%, #305070 0%, transparent 60%);
}
.scn-nemo-praises-nautilus .cabin-walls {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #3a4a5a 0%, #1a2a3a 50%, #0a1a2a 100%);
  border-radius: 4% 4% 6% 6% / 6% 6% 4% 4%;
  box-shadow: inset 0 0 60px rgba(0,0,0,0.6);
  animation: np-walls 20s ease-in-out infinite alternate;
}
.scn-nemo-praises-nautilus .porthole {
  position: absolute; width: 70px; height: 70px;
  background: radial-gradient(circle, #b0d4e8 0%, #5090a8 40%, transparent 60%);
  border-radius: 50%;
  border: 6px solid #5a6a7a;
  box-shadow: inset 0 0 30px rgba(80,144,168,0.3), 0 0 40px rgba(80,144,168,0.2);
}
.scn-nemo-praises-nautilus .porthole-l {
  top: 15%; left: 8%;
  animation: np-porthole 8s ease-in-out infinite alternate;
}
.scn-nemo-praises-nautilus .porthole-r {
  top: 15%; right: 8%;
  animation: np-porthole 8s ease-in-out infinite alternate;
  animation-delay: -4s;
}
.scn-nemo-praises-nautilus .instrument-panel {
  position: absolute; bottom: 20%; left: 10%; right: 10%; height: 30%;
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: inset 0 4px 20px rgba(0,0,0,0.5), 0 -4px 10px rgba(100,150,200,0.2);
}
.scn-nemo-praises-nautilus .nemo-silhouette {
  position: absolute; bottom: 25%; left: 50%; width: 40px; height: 80px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #0a1a2a 0%, #000a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: np-nemo 5s ease-in-out infinite alternate;
}
.scn-nemo-praises-nautilus .desk-lamp {
  position: absolute; bottom: 38%; left: 55%; width: 12px; height: 20px;
  background: linear-gradient(180deg, #b0a080 0%, #6a5a4a 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 -10px 30px 10px rgba(240,200,120,0.4);
}
.scn-nemo-praises-nautilus .chart-roll {
  position: absolute; bottom: 28%; left: 48%; width: 50px; height: 10px;
  background: linear-gradient(90deg, #c8b090 0%, #a89070 50%, #c8b090 100%);
  border-radius: 30% 30% 30% 30% / 50% 50% 50% 50%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: np-chart 12s ease-in-out infinite alternate;
}

@keyframes np-walls { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes np-porthole { 0% { transform: scale(1); opacity:0.8; } 50% { transform: scale(1.05); opacity:1; box-shadow: 0 0 60px rgba(80,144,168,0.5); } 100% { transform: scale(0.98); opacity:0.85; } }
@keyframes np-nemo { 0% { transform: translateX(-50%) translateY(0) rotate(0deg); } 50% { transform: translateX(-50%) translateY(-2px) rotate(2deg); } 100% { transform: translateX(-50%) translateY(0) rotate(-1deg); } }
@keyframes np-chart { 0% { transform: translateX(0) scale(1); } 50% { transform: translateX(5px) scale(1.02); } 100% { transform: translateX(-3px) scale(0.98); } }

/* ancient-reputation - calm sunlit sea with wrecked ship and ancient columns */
.scn-ancient-reputation {
  background: 
    linear-gradient(180deg, #c8d8c0 0%, #a0b890 40%, #6a8a6a 100%),
    radial-gradient(ellipse at 70% 30%, #f0e8c0 0%, transparent 50%);
}
.scn-ancient-reputation .sand-dune {
  position: absolute; bottom: 0; left: 0; right: 20%; height: 40%;
  background: linear-gradient(180deg, #c8b080 0%, #907050 100%);
  border-radius: 0 70% 0 0 / 0 60% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.2);
  animation: ar-dune 15s ease-in-out infinite alternate;
}
.scn-ancient-reputation .sea-expansive {
  position: absolute; bottom: 30%; left: 20%; right: 0; height: 45%;
  background: linear-gradient(180deg, #6a8a9a 0%, #3a5a6a 50%, #1a3a4a 100%);
  border-radius: 40% 0 0 0 / 30% 0 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.3);
  animation: ar-sea 18s ease-in-out infinite alternate;
}
.scn-ancient-reputation .sun-haze {
  position: absolute; top: 0; left: 30%; width: 40%; height: 40%;
  background: linear-gradient(135deg, rgba(255,240,200,0.2) 0%, transparent 60%);
  clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%);
  animation: ar-haze 12s ease-in-out infinite alternate;
}
.scn-ancient-reputation .shipwreck-hull {
  position: absolute; bottom: 32%; left: 35%; width: 140px; height: 40px;
  transform: rotate(-15deg);
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.5);
  animation: ar-hull 10s ease-in-out infinite alternate;
}
.scn-ancient-reputation .broken-mast {
  position: absolute; bottom: 38%; left: 30%; width: 8px; height: 80px;
  transform: rotate(10deg);
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: ar-mast 8s ease-in-out infinite alternate;
}
.scn-ancient-reputation .driftwood {
  position: absolute; bottom: 28%; left: 55%; width: 30px; height: 6px;
  transform: rotate(-30deg);
  background: linear-gradient(90deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 20% 20% / 50% 50% 50% 50%;
  animation: ar-wood 7s ease-in-out infinite alternate;
}
.scn-ancient-reputation .seabirds {
  position: absolute; top: 10%; left: 20%; width: 100px; height: 30px;
  background: 
    radial-gradient(ellipse 10% 100% at 20% 50%, #1a1a2a 0%, transparent 100%),
    radial-gradient(ellipse 10% 100% at 50% 50%, #1a1a2a 0%, transparent 100%),
    radial-gradient(ellipse 10% 100% at 80% 50%, #1a1a2a 0%, transparent 100%);
  animation: ar-birds 30s linear infinite;
}
.scn-ancient-reputation .ancient-column {
  position: absolute; bottom: 40%; left: 70%; width: 18px; height: 50px;
  background: linear-gradient(180deg, #b8a888 0%, #8a7a6a 30%, #5a4a3a 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: ar-column 14s ease-in-out infinite alternate;
}

@keyframes ar-dune { 0% { transform: translateX(0) skewX(0); } 50% { transform: translateX(5px) skewX(-2deg); } 100% { transform: translateX(0) skewX(1deg); } }
@keyframes ar-sea { 0% { opacity:0.7; transform: translateY(0); } 50% { opacity:0.9; transform: translateY(-4px); } 100% { opacity:0.8; transform: translateY(0); } }
@keyframes ar-haze { 0% { opacity:0.3; } 50% { opacity:0.6; } 100% { opacity:0.4; } }
@keyframes ar-hull { 0% { transform: rotate(-15deg) translateY(0); } 50% { transform: rotate(-13deg) translateY(-2px); } 100% { transform: rotate(-16deg) translateY(0); } }
@keyframes ar-mast { 0% { transform: rotate(10deg) translateY(0) scaleY(1); } 50% { transform: rotate(12deg) translateY(-3px) scaleY(1.02); } 100% { transform: rotate(9deg) translateY(0) scaleY(0.98); } }
@keyframes ar-wood { 0% { transform: rotate(-30deg) translateX(0); } 50% { transform: rotate(-28deg) translateX(5px); } 100% { transform: rotate(-32deg) translateX(-2px); } }
@keyframes ar-birds { 0% { transform: translateX(0) translateY(0); opacity:0.6; } 50% { transform: translateX(30px) translateY(-8px); opacity:1; } 100% { transform: translateX(80vw) translateY(5px); opacity:0.3; } }
@keyframes ar-column { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-3px) scaleY(1.03); } 100% { transform: translateY(0) scaleY(0.97); } }

/* sponge-species */
.scn-sponge-species { background: linear-gradient(180deg, #7fc8d0 0%, #4b9ba0 60%, #2d7a80 100%), radial-gradient(ellipse at 50% 0%, #a0d8dd 0%, transparent 60%); }
.scn-sponge-species .water-bg { position:absolute; inset:0; background: linear-gradient(180deg, rgba(127,200,208,0.3) 0%, transparent 100%); animation: ss-water 12s ease-in-out infinite alternate; }
.scn-sponge-species .light-rays { position:absolute; top:0; left:20%; width:30%; height:100%; background: linear-gradient(135deg, rgba(255,255,200,0.15) 0%, transparent 80%); filter: blur(8px); animation: ss-rays 8s ease-in-out infinite alternate; }
.scn-sponge-species .seabed { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #8b6f47 0%, #5c4a2e 100%); border-radius: 40% 60% 0 0 / 60% 40% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,0.3); }
.scn-sponge-species .sponge-round { position:absolute; bottom:25%; left:15%; width:35px; height:30px; background: radial-gradient(circle at 30% 30%, #e8c88a, #c09a5a 70%); border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%; box-shadow: inset -2px -2px 8px rgba(0,0,0,0.2); animation: ss-sponge1 6s ease-in-out infinite; }
.scn-sponge-species .sponge-tall { position:absolute; bottom:28%; left:55%; width:20px; height:45px; background: linear-gradient(180deg, #d9ae6c, #b58a4a); border-radius: 40% 40% 20% 20% / 60% 60% 40% 40%; transform: rotate(5deg); animation: ss-sponge2 7s ease-in-out infinite; }
.scn-sponge-species .bubble { position:absolute; width:8px; height:8px; background: radial-gradient(circle, rgba(255,255,255,0.6) 0%, rgba(200,230,240,0.2) 80%); border-radius: 50%; filter: blur(1px); }
.scn-sponge-species .b1 { bottom:40%; left:30%; animation: ss-bubble1 10s linear infinite; }
.scn-sponge-species .b2 { bottom:35%; left:65%; animation: ss-bubble2 14s linear infinite; animation-delay: 4s; }
.scn-sponge-species .fish { position:absolute; bottom:40%; right:20%; width:25px; height:10px; background: linear-gradient(to right, #7ba5b0, #4a7885); border-radius: 50% 50% 50% 50% / 40% 40% 60% 60%; animation: ss-fish 15s ease-in-out infinite; }

@keyframes ss-water { 0% { opacity:0.7; } 50% { opacity:0.9; } 100% { opacity:0.7; } }
@keyframes ss-rays { 0% { transform:translateX(0) scaleY(1); opacity:0.5; } 50% { transform:translateX(10px) scaleY(1.1); opacity:0.8; } 100% { transform:translateX(-5px) scaleY(0.95); opacity:0.6; } }
@keyframes ss-sponge1 { 0% { transform: translate(0,0) rotate(0deg); } 50% { transform: translate(-2px, -1px) rotate(2deg); } 100% { transform: translate(0,0) rotate(-1deg); } }
@keyframes ss-sponge2 { 0% { transform: translate(0,0) rotate(5deg); } 50% { transform: translate(1px, -2px) rotate(7deg); } 100% { transform: translate(0,0) rotate(4deg); } }
@keyframes ss-bubble1 { 0% { transform: translate(0,0) scale(1); opacity:0.8; } 50% { transform: translate(20px, -30px) scale(1.2); opacity:0.4; } 100% { transform: translate(40px, -60px) scale(0.8); opacity:0; } }
@keyframes ss-bubble2 { 0% { transform: translate(0,0) scale(1); opacity:0.7; } 50% { transform: translate(-15px, -25px) scale(0.9); opacity:0.5; } 100% { transform: translate(-30px, -50px) scale(0.7); opacity:0; } }
@keyframes ss-fish { 0% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(-40px) scaleX(-1); } 100% { transform: translateX(0) scaleX(1); } }

/* sponge-observation */
.scn-sponge-observation { background: linear-gradient(180deg, #1a2a3a 0%, #0e1a28 60%, #060d15 100%), radial-gradient(ellipse at 50% 80%, #1f3b4a 0%, transparent 70%); }
.scn-sponge-observation .porthole-frame { position:absolute; inset:5% 10% 8% 12%; border: 6px solid #3a4a5a; border-radius: 50%; box-shadow: inset 0 0 30px rgba(0,0,0,0.8), 0 0 20px rgba(0,0,0,0.5); background: transparent; clip-path: circle(45% at 50% 50%); }
.scn-sponge-observation .outside-water { position:absolute; inset:0; background: radial-gradient(circle at 50% 50%, #1f3b4a, #0b1620); border-radius: 50%; clip-path: circle(45% at 50% 50%); animation: so-water 10s ease-in-out infinite alternate; }
.scn-sponge-observation .rock { position:absolute; bottom:15%; left:20%; right:50%; height:20%; background: linear-gradient(180deg, #3a4a3a, #1a2a1a); border-radius: 70% 30% 50% 50% / 60% 40% 60% 40%; box-shadow: inset 0 5px 12px rgba(0,0,0,0.5); }
.scn-sponge-observation .sponge-glob { position:absolute; bottom:20%; left:25%; width:25px; height:20px; background: radial-gradient(circle at 30% 30%, #b8a070, #8c6a4a); border-radius: 50%; box-shadow: inset -2px -2px 6px rgba(0,0,0,0.3); animation: so-sg 7s ease-in-out infinite; }
.scn-sponge-observation .sponge-stalk { position:absolute; bottom:25%; left:45%; width:12px; height:35px; background: linear-gradient(180deg, #c0a078, #8c6a4a); border-radius: 30% 30% 20% 20% / 60% 60% 40% 40%; transform: rotate(-10deg); animation: so-ss 8s ease-in-out infinite; }
.scn-sponge-observation .sponge-leaf { position:absolute; bottom:28%; left:60%; width:30px; height:15px; background: linear-gradient(135deg, #b8a070, #7a5e3a); border-radius: 0 80% 80% 0 / 50% 50% 50% 50%; transform: rotate(15deg); animation: so-sl 9s ease-in-out infinite; }
.scn-sponge-observation .particle { position:absolute; width:3px; height:3px; background: rgba(200,220,240,0.4); border-radius: 50%; }
.scn-sponge-observation .p1 { top:25%; left:30%; animation: so-p1 20s linear infinite; }
.scn-sponge-observation .p2 { top:40%; left:55%; animation: so-p2 25s linear infinite; animation-delay: 5s; }

@keyframes so-water { 0% { opacity:0.6; } 50% { opacity:0.8; } 100% { opacity:0.7; } }
@keyframes so-sg { 0% { transform: translate(0,0) scale(1); } 50% { transform: translate(1px, -1px) scale(1.05); } 100% { transform: translate(-1px, 0) scale(0.95); } }
@keyframes so-ss { 0% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-8deg) translateY(-2px); } 100% { transform: rotate(-12deg) translateY(1px); } }
@keyframes so-sl { 0% { transform: rotate(15deg) scaleX(1); } 50% { transform: rotate(18deg) scaleX(0.95); } 100% { transform: rotate(13deg) scaleX(1.05); } }
@keyframes so-p1 { 0% { transform: translate(0,0); opacity:0.6; } 50% { transform: translate(30px, -20px); opacity:0.2; } 100% { transform: translate(60px, -40px); opacity:0; } }
@keyframes so-p2 { 0% { transform: translate(0,0); opacity:0.5; } 50% { transform: translate(-20px, -30px); opacity:0.3; } 100% { transform: translate(-40px, -60px); opacity:0; } }

/* sponge-tissue */
.scn-sponge-tissue { background: linear-gradient(180deg, #0a1620 0%, #121c28 40%, #1c2a3a 100%), radial-gradient(ellipse at 50% 50%, #1c3a3a 0%, transparent 70%); }
.scn-sponge-tissue .bg-deep { position:absolute; inset:0; background: linear-gradient(135deg, rgba(20,30,40,0.7) 0%, rgba(10,18,28,0.9) 100%); animation: st-deep 8s ease-in-out infinite alternate; }
.scn-sponge-tissue .sponge-body { position:absolute; top:20%; left:25%; width:50%; height:60%; background: radial-gradient(ellipse at 50% 40%, #6a5a3a, #3a2a1a 70%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; box-shadow: inset 0 -10px 30px rgba(0,0,0,0.6); animation: st-body 12s ease-in-out infinite; }
.scn-sponge-tissue .tissue-fibers { position:absolute; top:30%; left:30%; width:40%; height:40%; background: repeating-linear-gradient(45deg, rgba(100,80,60,0.2) 0px, rgba(100,80,60,0.2) 4px, rgba(200,180,140,0.1) 4px, rgba(200,180,140,0.1) 8px); border-radius: 30%; filter: blur(2px); animation: st-fibers 6s ease-in-out infinite alternate; }
.scn-sponge-tissue .inner-glow { position:absolute; top:35%; left:40%; width:20%; height:25%; background: radial-gradient(circle, #b89050 0%, transparent 70%); border-radius: 50%; animation: st-glow 4s ease-in-out infinite alternate; }
.scn-sponge-tissue .droplet { position:absolute; width:6px; height:6px; background: radial-gradient(circle, rgba(200,220,240,0.6) 0%, rgba(100,120,140,0.2) 80%); border-radius: 50%; filter: blur(1px); }
.scn-sponge-tissue .d1 { top:50%; left:55%; animation: st-d1 3s ease-in-out infinite; }
.scn-sponge-tissue .d2 { top:55%; left:45%; animation: st-d2 4s ease-in-out infinite; animation-delay: 1.5s; }
.scn-sponge-tissue .water-flow { position:absolute; top:60%; left:35%; width:30%; height:5%; background: linear-gradient(90deg, transparent, rgba(100,180,200,0.3), transparent); border-radius: 50%; filter: blur(3px); animation: st-flow 5s ease-in-out infinite; }

@keyframes st-deep { 0% { opacity:0.8; } 50% { opacity:0.95; } 100% { opacity:0.85; } }
@keyframes st-body { 0% { transform: translate(0,0) scale(1); } 50% { transform: translate(0,-2px) scale(1.02); } 100% { transform: translate(0,1px) scale(0.98); } }
@keyframes st-fibers { 0% { transform: rotate(0deg); opacity:0.6; } 50% { transform: rotate(5deg); opacity:0.8; } 100% { transform: rotate(-5deg); opacity:0.7; } }
@keyframes st-glow { 0% { opacity:0.4; box-shadow: 0 0 10px 5px rgba(184,144,80,0.3); } 50% { opacity:0.8; box-shadow: 0 0 20px 10px rgba(184,144,80,0.6); } 100% { opacity:0.5; box-shadow: 0 0 15px 8px rgba(184,144,80,0.4); } }
@keyframes st-d1 { 0% { transform: translate(0,0) scale(1); opacity:0.7; } 50% { transform: translate(3px, -6px) scale(0.9); opacity:0.4; } 100% { transform: translate(6px, -12px) scale(0.7); opacity:0; } }
@keyframes st-d2 { 0% { transform: translate(0,0) scale(1); opacity:0.6; } 50% { transform: translate(-2px, -5px) scale(0.8); opacity:0.3; } 100% { transform: translate(-4px, -10px) scale(0.6); opacity:0; } }
@keyframes st-flow { 0% { transform: translateX(0) scaleX(1); opacity:0.5; } 50% { transform: translateX(5%) scaleX(1.2); opacity:0.8; } 100% { transform: translateX(-5%) scaleX(0.9); opacity:0.4; } }

/* fishing-methods */
.scn-fishing-methods { background: linear-gradient(180deg, #0a1a2a 0%, #0c2030 50%, #0a1520 100%), radial-gradient(ellipse at 50% 30%, #1a3040 0%, transparent 70%); }
.scn-fishing-methods .ocean-bg { position:absolute; inset:0; background: linear-gradient(180deg, rgba(10,26,42,0.5) 0%, transparent 100%); animation: fm-ocean 14s ease-in-out infinite alternate; }
.scn-fishing-methods .jellyfish { position:absolute; top:20%; left:30%; width:40px; height:35px; background: radial-gradient(circle at 50% 30%, #b0a0c0, #7a6a8a 70%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; box-shadow: inset 0 -5px 10px rgba(0,0,0,0.3); animation: fm-jelly 9s ease-in-out infinite; }
.scn-fishing-methods .squid { position:absolute; top:35%; right:25%; width:30px; height:45px; background: linear-gradient(180deg, #a0b0b8, #607078); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform: rotate(-10deg); animation: fm-squid 11s ease-in-out infinite; }
.scn-fishing-methods .turtle { position:absolute; bottom:25%; left:20%; width:50px; height:30px; background: radial-gradient(ellipse at 50% 40%, #5a6a4a, #3a4a2a 70%); border-radius: 50% 50% 40% 40% / 60% 50% 50% 40%; box-shadow: inset 0 -4px 8px rgba(0,0,0,0.4); animation: fm-turtle 15s ease-in-out infinite; }
.scn-fishing-methods .bubbles { position:absolute; width:6px; height:6px; background: radial-gradient(circle, rgba(200,220,240,0.5) 0%, rgba(100,140,160,0.1) 80%); border-radius: 50%; filter: blur(1px); }
.scn-fishing-methods .bf1 { bottom:30%; left:50%; animation: fm-b1 12s linear infinite; }
.scn-fishing-methods .bf2 { bottom:35%; left:60%; animation: fm-b2 16s linear infinite; animation-delay: 3s; }
.scn-fishing-methods .light-dots { position:absolute; top:10%; left:10%; width:80%; height:20%; background: radial-gradient(circle at 20% 0%, rgba(200,220,240,0.1) 0%, transparent 70%); filter: blur(5px); animation: fm-dots 20s ease-in-out infinite alternate; }

@keyframes fm-ocean { 0% { opacity:0.6; } 50% { opacity:0.9; } 100% { opacity:0.7; } }
@keyframes fm-jelly { 0% { transform: translate(0,0) rotate(0deg); } 50% { transform: translate(2px, -3px) rotate(2deg); } 100% { transform: translate(-1px, 0) rotate(-1deg); } }
@keyframes fm-squid { 0% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-8deg) translateY(-2px); } 100% { transform: rotate(-12deg) translateY(1px); } }
@keyframes fm-turtle { 0% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(10px) scaleX(0.95); } 100% { transform: translateX(0) scaleX(1); } }
@keyframes fm-b1 { 0% { transform: translate(0,0) scale(1); opacity:0.6; } 50% { transform: translate(10px, -20px) scale(1.1); opacity:0.3; } 100% { transform: translate(20px, -40px) scale(0.8); opacity:0; } }
@keyframes fm-b2 { 0% { transform: translate(0,0) scale(1); opacity:0.5; } 50% { transform: translate(-8px, -15px) scale(0.9); opacity:0.4; } 100% { transform: translate(-16px, -30px) scale(0.7); opacity:0; } }
@keyframes fm-dots { 0% { opacity:0.2; background-position: 0% 0%; } 50% { opacity:0.5; background-position: 50% 50%; } 100% { opacity:0.3; background-position: 100% 0%; } }

.scn-nemo-explains-refuge {
  background:
    radial-gradient(ellipse at 50% 30%, #f0d4a0 0%, #c09860 40%, #7a583a 100%),
    linear-gradient(180deg, #3a2a1a 0%, #5a3a22 50%, #2a1a0e 100%);
}
.scn-nemo-explains-refuge .cavern-wall-bg {
  position:absolute; inset:0; background:
    radial-gradient(ellipse at 50% 80%, #4a3220 0%, transparent 70%),
    linear-gradient(0deg, #1a1008 0%, #3a2518 40%, transparent 100%);
  animation: nemo-wall-fade 12s ease-in-out infinite alternate;
}
.scn-nemo-explains-refuge .light-shaft {
  position:absolute; top:0; left:35%; width:30%; height:70%;
  background: linear-gradient(180deg, rgba(255,230,180,0.5) 0%, rgba(255,210,150,0.2) 50%, transparent 100%);
  clip-path: polygon(0 0, 100% 0, 70% 100%, 30% 100%);
  animation: nemo-shaft-pulse 8s ease-in-out infinite;
}
.scn-nemo-explains-refuge .rock-left {
  position:absolute; bottom:20%; left:5%; width:30%; height:45%;
  background: linear-gradient(135deg, #4a3520 0%, #2a1a0e 100%);
  border-radius: 40% 60% 30% 70% / 50% 40% 60% 50%;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.5);
  animation: nemo-rock-sway 20s ease-in-out infinite alternate;
}
.scn-nemo-explains-refuge .rock-right {
  position:absolute; bottom:25%; right:8%; width:25%; height:35%;
  background: linear-gradient(225deg, #3a2518 0%, #1a1008 100%);
  border-radius: 70% 30% 60% 40% / 40% 60% 50% 50%;
  box-shadow: inset 0 -8px 16px rgba(0,0,0,0.6);
  animation: nemo-rock-sway 18s ease-in-out infinite alternate-reverse;
}
.scn-nemo-explains-refuge .figure-nemo {
  position:absolute; bottom:22%; left:38%; width:20px; height:40px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: nemo-gesture 5s ease-in-out infinite;
}
.scn-nemo-explains-refuge .figure-aronnax {
  position:absolute; bottom:22%; left:55%; width:18px; height:38px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: nemo-listen 6s ease-in-out infinite;
}
.scn-nemo-explains-refuge .dust-motes {
  position:absolute; top:10%; left:20%; width:60%; height:30%;
  background: radial-gradient(circle at 50% 50%, rgba(255,220,180,0.3) 0%, transparent 70%);
  filter: blur(4px);
  animation: nemo-dust-drift 30s linear infinite;
}
@keyframes nemo-wall-fade {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes nemo-shaft-pulse {
  0% { opacity: 0.6; transform: scaleY(0.95); }
  50% { opacity: 1; transform: scaleY(1.05); }
  100% { opacity: 0.7; transform: scaleY(1); }
}
@keyframes nemo-rock-sway {
  0% { transform: rotate(-1deg) translateX(0); }
  50% { transform: rotate(1deg) translateX(3px); }
  100% { transform: rotate(-0.5deg) translateX(-1px); }
}
@keyframes nemo-gesture {
  0% { transform: translateX(0) rotate(-2deg); }
  25% { transform: translateX(4px) rotate(3deg) scaleX(1.02); }
  50% { transform: translateX(8px) rotate(-1deg); }
  75% { transform: translateX(4px) rotate(1deg) scaleX(0.98); }
  100% { transform: translateX(0) rotate(-2deg); }
}
@keyframes nemo-listen {
  0%,100% { transform: translateX(0) rotate(0); }
  50% { transform: translateX(2px) rotate(2deg); }
}
@keyframes nemo-dust-drift {
  0% { transform: translate(0, 0) scale(1); }
  33% { transform: translate(15px, -10px) scale(1.1); }
  66% { transform: translate(-10px, 5px) scale(0.9); }
  100% { transform: translate(0, 0) scale(1); }
}

/* ------- crater-as-skylight ------- */
.scn-crater-as-skylight {
  background:
    radial-gradient(ellipse at 50% 20%, #ffe8c0 0%, #d4b080 50%, #8a6a4a 100%),
    linear-gradient(180deg, #4a3020 0%, #2a1a10 100%);
}
.scn-crater-as-skylight .crater-rim {
  position:absolute; top:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #5a3a22 0%, #3a2518 100%);
  border-radius: 0 0 50% 50% / 0 0 80% 80%;
  box-shadow: inset 0 -20px 40px rgba(0,0,0,0.5);
  animation: crater-rim-breathe 14s ease-in-out infinite alternate;
}
.scn-crater-as-skylight .sky-hole {
  position:absolute; top:5%; left:30%; width:40%; height:25%;
  background: radial-gradient(circle at 50% 100%, #f0e0c0 0%, #c09860 60%, transparent 100%);
  border-radius: 50%;
  animation: crater-hole-glow 10s ease-in-out infinite alternate;
}
.scn-crater-as-skylight .light-beam {
  position:absolute; top:20%; left:35%; width:30%; height:60%;
  background: linear-gradient(180deg, rgba(255,240,200,0.6) 0%, rgba(200,160,100,0.15) 60%, transparent 100%);
  clip-path: polygon(30% 0, 70% 0, 80% 100%, 20% 100%);
  animation: crater-beam-sway 16s ease-in-out infinite;
}
.scn-crater-as-skylight .pool-reflection {
  position:absolute; bottom:10%; left:30%; width:40%; height:20%;
  background: radial-gradient(ellipse at 50% 30%, #ffe0a0 0%, #a08050 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.3);
  animation: crater-pool-shimmer 6s ease-in-out infinite alternate;
}
.scn-crater-as-skylight .rock-ledge {
  position:absolute; bottom:32%; left:5%; width:20%; height:18%;
  background: linear-gradient(135deg, #4a3220 0%, #2a1a0e 100%);
  border-radius: 60% 20% 80% 40% / 40% 60% 50% 50%;
  box-shadow: inset 0 -6px 12px rgba(0,0,0,0.5);
  animation: crater-ledge-drift 22s ease-in-out infinite alternate;
}
.scn-crater-as-skylight .water-ripple {
  position:absolute; bottom:12%; left:40%; width:20%; height:6%;
  background: radial-gradient(ellipse at 50% 50%, rgba(255,230,180,0.4) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(3px);
  animation: crater-ripple-expand 4s ease-out infinite;
}
@keyframes crater-rim-breathe {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.02); }
  100% { transform: scaleY(0.98); }
}
@keyframes crater-hole-glow {
  0% { opacity: 0.7; transform: scale(0.95); }
  50% { opacity: 1; transform: scale(1.05); }
  100% { opacity: 0.8; transform: scale(1); }
}
@keyframes crater-beam-sway {
  0% { transform: translateX(-5px) skewX(-2deg); }
  50% { transform: translateX(5px) skewX(2deg); }
  100% { transform: translateX(-5px) skewX(-2deg); }
}
@keyframes crater-pool-shimmer {
  0% { opacity: 0.7; background-position: 0% 50%; }
  50% { opacity: 1; background-position: 100% 50%; }
  100% { opacity: 0.8; background-position: 0% 50%; }
}
@keyframes crater-ledge-drift {
  0% { transform: translateX(0) rotate(-2deg); }
  50% { transform: translateX(5px) rotate(1deg); }
  100% { transform: translateX(-3px) rotate(-1deg); }
}
@keyframes crater-ripple-expand {
  0% { transform: scale(0.5); opacity: 0.6; }
  50% { transform: scale(1.5); opacity: 0.2; }
  100% { transform: scale(2); opacity: 0; }
}

/* ------- coal-mining-purpose ------- */
.scn-coal-mining-purpose {
  background:
    radial-gradient(ellipse at 50% 40%, #c09060 0%, #7a5030 50%, #3a2518 100%),
    linear-gradient(180deg, #1a1008 0%, #2a1a0e 70%, #0e0804 100%);
}
.scn-coal-mining-purpose .mine-face {
  position:absolute; inset:0; background:
    linear-gradient(90deg, #4a3220 0%, #2a1a0e 30%, #1a1008 70%, #4a3220 100%);
  clip-path: polygon(0 20%, 10% 10%, 25% 0, 50% 5%, 75% 0, 90% 10%, 100% 20%, 100% 100%, 0 100%);
  animation: mine-wall-shimmer 15s ease-in-out infinite alternate;
}
.scn-coal-mining-purpose .coal-seam {
  position:absolute; bottom:40%; left:20%; width:60%; height:8%;
  background: linear-gradient(180deg, #1a1a1a 0%, #2a2a2a 50%, #0e0e0e 100%);
  border-radius: 20px;
  box-shadow: inset 0 4px 8px rgba(255,255,255,0.1), 0 0 8px rgba(0,0,0,0.5);
  animation: coal-glimmer 6s ease-in-out infinite alternate;
}
.scn-coal-mining-purpose .pickaxe-silhouette {
  position:absolute; bottom:35%; left:35%; width:40px; height:60px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  clip-path: polygon(50% 0, 60% 10%, 55% 40%, 70% 45%, 65% 55%, 50% 50%, 35% 55%, 30% 45%, 45% 40%, 40% 10%);
  transform-origin: bottom center;
  animation: pickaxe-strike 3s ease-in-out infinite;
}
.scn-coal-mining-purpose .miner-figure {
  position:absolute; bottom:28%; left:30%; width:22px; height:40px;
  background: linear-gradient(180deg, #1e1e2e 0%, #0a0a16 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: miner-bend 4s ease-in-out infinite;
}
.scn-coal-mining-purpose .lamp-glow {
  position:absolute; bottom:45%; left:38%; width:12px; height:12px;
  background: radial-gradient(circle, #ffd080 0%, #d09040 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px rgba(255,208,128,0.6), 0 0 40px 12px rgba(255,208,128,0.3);
  animation: lamp-flicker 2s steps(3) infinite;
}
.scn-coal-mining-purpose .coal-cart {
  position:absolute; bottom:15%; left:60%; width:50px; height:25px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%);
  border-radius: 10% 10% 20% 20% / 30% 30% 40% 40%;
  box-shadow: inset 0 -4px 8px rgba(0,0,0,0.5);
  animation: cart-rock 7s ease-in-out infinite alternate;
}
@keyframes mine-wall-shimmer {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes coal-glimmer {
  0% { box-shadow: inset 0 4px 8px rgba(255,255,255,0.1), 0 0 8px rgba(0,0,0,0.5); }
  50% { box-shadow: inset 0 4px 12px rgba(255,255,200,0.3), 0 0 12px rgba(0,0,0,0.7); }
  100% { box-shadow: inset 0 4px 8px rgba(255,255,255,0.1), 0 0 8px rgba(0,0,0,0.5); }
}
@keyframes pickaxe-strike {
  0% { transform: rotate(-20deg); }
  25% { transform: rotate(10deg); }
  50% { transform: rotate(-5deg); }
  75% { transform: rotate(20deg); }
  100% { transform: rotate(-20deg); }
}
@keyframes miner-bend {
  0%,100% { transform: translateY(0) rotate(0); }
  50% { transform: translateY(-6px) rotate(5deg); }
}
@keyframes lamp-flicker {
  0% { opacity: 1; transform: scale(1); }
  33% { opacity: 0.8; transform: scale(0.9); }
  66% { opacity: 1; transform: scale(1.1); }
  100% { opacity: 0.9; transform: scale(1); }
}
@keyframes cart-rock {
  0% { transform: translateX(0) rotate(0); }
  50% { transform: translateX(3px) rotate(2deg); }
  100% { transform: translateX(-2px) rotate(-1deg); }
}

/* ------- no-time-to-see-mining ------- */
.scn-no-time-to-see-mining {
  background:
    radial-gradient(ellipse at 50% 60%, #b08050 0%, #7a5030 40%, #3a2518 100%),
    linear-gradient(180deg, #2a1a0e 0%, #1a1008 100%);
}
.scn-no-time-to-see-mining .storage-cavern {
  position:absolute; inset:0;
  background: radial-gradient(ellipse at 50% 30%, #4a3220 0%, transparent 80%),
              linear-gradient(0deg, #1a1008 0%, #2a1a0e 100%);
  animation: stor-wall-shift 18s ease-in-out infinite alternate;
}
.scn-no-time-to-see-mining .sodium-stack {
  position:absolute; bottom:25%; left:50%; width:40px; height:50px;
  background: linear-gradient(180deg, #c0b0a0 0%, #a09080 50%, #807060 100%);
  border-radius: 5px;
  box-shadow: 2px 2px 8px rgba(0,0,0,0.5), inset 0 1px 0 rgba(255,255,255,0.2);
  transform: translateX(-50%);
  animation: sodium-glint 5s ease-in-out infinite alternate;
}
.scn-no-time-to-see-mining .figure-loading {
  position:absolute; bottom:20%; left:30%; width:20px; height:36px;
  background: linear-gradient(180deg, #1e1e2e 0%, #0a0a16 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: loading-carry 6s ease-in-out infinite;
}
.scn-no-time-to-see-mining .barrel-row {
  position:absolute; bottom:16%; left:60%; width:80px; height:20px;
  background: 
    radial-gradient(circle at 20% 50%, #5a4a3a 0%, transparent 10%),
    radial-gradient(circle at 50% 50%, #5a4a3a 0%, transparent 10%),
    radial-gradient(circle at 80% 50%, #5a4a3a 0%, transparent 10%);
  background-size: 40px 40px;
  background-repeat: no-repeat;
  animation: barrel-bob 10s ease-in-out infinite alternate;
}
.scn-no-time-to-see-mining .overhead-lamp {
  position:absolute; top:10%; left:45%; width:16px; height:8px;
  background: radial-gradient(ellipse at 50% 100%, #ffd080 0%, #d09040 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 8px rgba(255,208,128,0.5), 0 0 60px 16px rgba(255,208,128,0.2);
  animation: overhead-swing 8s ease-in-out infinite alternate;
}
.scn-no-time-to-see-mining .conveyor-belt {
  position:absolute; bottom:10%; left:10%; width:80%; height:4px;
  background: repeating-linear-gradient(90deg, #5a4a3a 0px, #5a4a3a 4px, #3a2a1a 4px, #3a2a1a 8px);
  border-radius: 2px;
  animation: belt-move 3s linear infinite;
}
@keyframes stor-wall-shift {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.02); }
  100% { transform: scaleY(0.98); }
}
@keyframes sodium-glint {
  0% { box-shadow: 2px 2px 8px rgba(0,0,0,0.5), inset 0 1px 0 rgba(255,255,255,0.2); }
  50% { box-shadow: 2px 2px 12px rgba(0,0,0,0.6), inset 0 1px 0 rgba(255,255,200,0.5); }
  100% { box-shadow: 2px 2px 8px rgba(0,0,0,0.5), inset 0 1px 0 rgba(255,255,255,0.2); }
}
@keyframes loading-carry {
  0%,100% { transform: translateX(0) rotate(0); }
  25% { transform: translateX(8px) rotate(3deg); }
  50% { transform: translateX(16px) rotate(-2deg); }
  75% { transform: translateX(8px) rotate(1deg); }
}
@keyframes barrel-bob {
  0% { transform: translateX(0) rotate(0); }
  50% { transform: translateX(4px) rotate(2deg); }
  100% { transform: translateX(-2px) rotate(-1deg); }
}
@keyframes overhead-swing {
  0% { transform: rotate(-4deg); }
  50% { transform: rotate(4deg); }
  100% { transform: rotate(-4deg); }
}
@keyframes belt-move {
  0% { background-position: 0 0; }
  100% { background-position: 8px 0; }
}

/* Scene: last-day-aboard */
.scn-last-day-aboard {
  background: linear-gradient(135deg, #1a1512 0%, #2a1f18 50%, #1e1610 100%), radial-gradient(ellipse at 70% 60%, #3a2a1e 0%, transparent 70%);
}
.scn-last-day-aboard .bg-wall {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #2c211c 0%, #1a1512 100%);
}
.scn-last-day-aboard .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #1f1814 0%, #2a1f18 100%);
  border-radius: 60% 60% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 20px 30px rgba(0,0,0,0.6);
}
.scn-last-day-aboard .table {
  position: absolute; bottom: 25%; left: 30%; width: 45%; height: 8%;
  background: linear-gradient(180deg, #4a3428 0%, #2a1a12 100%);
  border-radius: 10px;
  box-shadow: 0 8px 20px rgba(0,0,0,0.5);
  transform: perspective(400px) rotateX(30deg);
  animation: lda-table 8s ease-in-out infinite alternate;
}
.scn-last-day-aboard .globe-lamp {
  position: absolute; bottom: 32%; left: 48%; width: 28px; height: 28px;
  background: radial-gradient(circle at 30% 30%, #e8d4a0 0%, #b88a5a 60%, #6a4a2a 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 12px #c8925a, 0 0 80px 24px rgba(200,146,90,0.4);
  animation: lda-lamp 6s ease-in-out infinite alternate;
}
.scn-last-day-aboard .chair {
  position: absolute; bottom: 23%; left: 38%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #2a1a12 0%, #1a0e08 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%;
  transform: rotate(-5deg);
  animation: lda-chair 12s ease-in-out infinite alternate;
}
.scn-last-day-aboard .figure-lda {
  position: absolute; bottom: 24%; left: 52%; width: 24px; height: 48px;
  background: linear-gradient(180deg, #0d0806 0%, #1a0e08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lda-figure 4s ease-in-out infinite alternate;
}
.scn-last-day-aboard .curtain {
  position: absolute; top: 0; left: 0; width: 20%; height: 55%;
  background: linear-gradient(90deg, #2a1a12 0%, #1a0e08 50%, transparent 100%);
  border-radius: 0 40% 40% 0;
  animation: lda-curtain 10s ease-in-out infinite alternate;
}
.scn-last-day-aboard .shadow-pool {
  position: absolute; bottom: 20%; left: 20%; width: 60%; height: 10%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.3) 0%, transparent 100%);
  animation: lda-shadow 8s ease-in-out infinite alternate;
}
@keyframes lda-table { 0% { transform: perspective(400px) rotateX(30deg) translateY(0); } 50% { transform: perspective(400px) rotateX(30deg) translateY(-2px); } 100% { transform: perspective(400px) rotateX(30deg) translateY(0); } }
@keyframes lda-lamp { 0% { opacity:0.85; box-shadow: 0 0 30px 8px #c8925a, 0 0 60px 16px rgba(200,146,90,0.3); } 50% { opacity:1; box-shadow: 0 0 50px 16px #e0b07a, 0 0 80px 24px rgba(224,176,122,0.5); } 100% { opacity:0.9; box-shadow: 0 0 35px 10px #c8925a, 0 0 70px 20px rgba(200,146,90,0.35); } }
@keyframes lda-chair { 0% { transform: rotate(-5deg) scale(1); } 50% { transform: rotate(-3deg) scale(1.02); } 100% { transform: rotate(-6deg) scale(0.98); } }
@keyframes lda-figure { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes lda-curtain { 0% { left:0; } 50% { left:-5px; } 100% { left:0; } }
@keyframes lda-shadow { 0% { opacity:0.3; } 50% { opacity:0.5; } 100% { opacity:0.2; } }

/* Scene: last-moments-aboard */
.scn-last-moments-aboard {
  background: linear-gradient(180deg, #1a1512 0%, #0f0b08 60%, #1a1512 100%), radial-gradient(ellipse at 50% 30%, #2a1f18 0%, transparent 70%);
}
.scn-last-moments-aboard .bg-deep-lma {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, transparent 0%, #0f0b08 80%);
}
.scn-last-moments-aboard .coffered-ceiling {
  position: absolute; top: 0; left: 0; right: 0; height: 15%;
  background: repeating-linear-gradient(90deg, #2a1f18 0px, #2a1f18 40px, #1a1512 40px, #1a1512 42px);
  border-bottom: 2px solid #3a2a1e;
  box-shadow: 0 4px 20px rgba(0,0,0,0.5);
  animation: lma-ceiling 20s linear infinite;
}
.scn-last-moments-aboard .glass-case-left {
  position: absolute; bottom: 30%; left: 10%; width: 35%; height: 40%;
  background: linear-gradient(135deg, rgba(180,160,140,0.15) 0%, rgba(100,80,60,0.3) 100%);
  border: 1px solid rgba(200,180,150,0.2);
  border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(200,180,150,0.1), 0 4px 15px rgba(0,0,0,0.4);
  animation: lma-case 10s ease-in-out infinite alternate;
}
.scn-last-moments-aboard .glass-case-right {
  position: absolute; bottom: 30%; right: 10%; width: 35%; height: 40%;
  background: linear-gradient(225deg, rgba(180,160,140,0.15) 0%, rgba(100,80,60,0.3) 100%);
  border: 1px solid rgba(200,180,150,0.2);
  border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(200,180,150,0.1), 0 4px 15px rgba(0,0,0,0.4);
  animation: lma-case 10s ease-in-out infinite alternate-reverse;
}
.scn-last-moments-aboard .treasure-glow {
  position: absolute; bottom: 35%; left: 20%; width: 20px; height: 20px;
  background: radial-gradient(circle, #c8b080 0%, #8a7040 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 8px #c8b080, 0 0 60px 16px rgba(200,176,128,0.3);
  animation: lma-treasure 3s ease-in-out infinite alternate;
}
.scn-last-moments-aboard .figure-lma {
  position: absolute; bottom: 20%; left: 48%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #1a1512 0%, #0f0b08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lma-figure 6s ease-in-out infinite alternate;
}
.scn-last-moments-aboard .light-ray {
  position: absolute; top: 15%; left: 45%; width: 10%; height: 30%;
  background: linear-gradient(180deg, rgba(220,200,170,0.3) 0%, transparent 100%);
  clip-path: polygon(40% 0, 60% 0, 100% 100%, 0% 100%);
  animation: lma-ray 8s ease-in-out infinite alternate;
}
.scn-last-moments-aboard .shadow-line {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.5) 100%);
  animation: lma-shadow 12s linear infinite alternate;
}
@keyframes lma-ceiling { 0% { background-position: 0 0; } 100% { background-position: 100% 0; } }
@keyframes lma-case { 0% { opacity:0.6; } 50% { opacity:0.9; } 100% { opacity:0.7; } }
@keyframes lma-treasure { 0% { opacity:0.7; transform:scale(1); } 50% { opacity:1; transform:scale(1.15); } 100% { opacity:0.8; transform:scale(0.95); } }
@keyframes lma-figure { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes lma-ray { 0% { opacity:0.1; } 50% { opacity:0.4; } 100% { opacity:0.2; } }
@keyframes lma-shadow { 0% { opacity:0.4; } 50% { opacity:0.7; } 100% { opacity:0.5; } }

/* Scene: escape-through-lounge */
.scn-escape-through-lounge {
  background: linear-gradient(135deg, #0f0b08 0%, #1a1512 50%, #0a0705 100%), radial-gradient(ellipse at 30% 70%, #1f1814 0%, transparent 70%);
}
.scn-escape-through-lounge .bg-dark-etl {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #0f0b08 0%, #1a1512 100%);
}
.scn-escape-through-lounge .floor-etl {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #1a1512 0%, #0f0b08 100%);
  border-radius: 50% 50% 0 0 / 10% 10% 0 0;
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.7);
}
.scn-escape-through-lounge .door-frame {
  position: absolute; bottom: 30%; left: 35%; width: 30%; height: 50%;
  background: linear-gradient(180deg, #2a1f18 0%, #1a1512 100%);
  border: 4px solid #3a2a1e;
  border-radius: 4px;
  box-shadow: 0 0 0 6px #0f0b08;
  animation: etl-door 12s ease-in-out infinite alternate;
}
.scn-escape-through-lounge .door-light {
  position: absolute; bottom: 35%; left: 38%; width: 24%; height: 40%;
  background: radial-gradient(ellipse at 50% 80%, #d4ae7a 0%, #8a6040 50%, transparent 100%);
  border-radius: 2px;
  box-shadow: 0 0 40px 10px #b08050, 0 0 80px 20px rgba(176,128,80,0.3);
  animation: etl-light 3s ease-in-out infinite alternate;
}
.scn-escape-through-lounge .figure-ned {
  position: absolute; bottom: 22%; left: 20%; width: 20px; height: 42px;
  background: linear-gradient(180deg, #1a1512 0%, #0f0b08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: etl-ned 4s ease-in-out infinite;
}
.scn-escape-through-lounge .figure-nemo-sil {
  position: absolute; bottom: 22%; right: 18%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #0d0806 0%, #1a1512 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: etl-nemo 6s ease-in-out infinite alternate;
}
.scn-escape-through-lounge .dagger-glint {
  position: absolute; bottom: 30%; left: 28%; width: 4px; height: 10px;
  background: radial-gradient(circle, #e8d4a0 0%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 10px 2px #c8b080;
  animation: etl-dagger 2s ease-in-out infinite;
}
.scn-escape-through-lounge .dust-motes {
  position: absolute; top: 20%; left: 10%; width: 80%; height: 60%;
  background: radial-gradient(ellipse at 50% 50%, rgba(200,180,150,0.05) 0%, transparent 100%);
  filter: blur(4px);
  animation: etl-dust 15s linear infinite;
}
@keyframes etl-door { 0% { transform: scaleX(1); } 50% { transform: scaleX(0.97); } 100% { transform: scaleX(1); } }
@keyframes etl-light { 0% { opacity:0.6; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes etl-ned { 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 etl-nemo { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-3px) scale(0.98); } 100% { transform: translateY(0) scale(1); } }
@keyframes etl-dagger { 0% { opacity:0; } 50% { opacity:0.8; } 100% { opacity:0; } }
@keyframes etl-dust { 0% { transform: translateY(0) translateX(0); } 50% { transform: translateY(-20px) translateX(10px); } 100% { transform: translateY(0) translateX(0); } }

/* Scene: maelstrom-alert */
.scn-maelstrom-alert {
  background: linear-gradient(180deg, #0c131a 0%, #141e2b 30%, #0a1118 60%, #050a0f 100%), radial-gradient(ellipse at 70% 20%, #2a3a4a 0%, transparent 70%);
}
.scn-maelstrom-alert .sky-ma {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #0c131a 0%, #141e2b 50%, #0a1118 100%);
  animation: ma-sky 8s ease-in-out infinite alternate;
}
.scn-maelstrom-alert .moon {
  position: absolute; top: 12%; right: 25%; width: 50px; height: 50px;
  background: radial-gradient(circle at 40% 40%, #e8e4dc 0%, #b8b4ac 60%, #909088 100%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px rgba(180,176,168,0.3), 0 0 120px 40px rgba(180,176,168,0.1);
  animation: ma-moon 12s ease-in-out infinite alternate;
}
.scn-maelstrom-alert .cloud-ma {
  position: absolute; top: 18%; left: 10%; width: 120px; height: 30px;
  background: linear-gradient(180deg, rgba(60,80,100,0.3) 0%, rgba(40,50,60,0.1) 100%);
  border-radius: 50%;
  filter: blur(6px);
  animation: ma-cloud 35s linear infinite;
}
.scn-maelstrom-alert .sea-back {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #1a2a3a 0%, #0a1118 100%);
  border-radius: 80% 80% 0 0 / 30% 30% 0 0;
}
.scn-maelstrom-alert .wave-ma {
  position: absolute; bottom: 15%; left: -10%; width: 120%; height: 20%;
  background: repeating-linear-gradient(90deg, transparent 0%, rgba(60,100,130,0.4) 3%, transparent 6%);
  border-radius: 50%;
  filter: blur(3px);
  animation: ma-wave 4s ease-in-out infinite alternate;
}
.scn-maelstrom-alert .ship-silhouette {
  position: absolute; bottom: 30%; left: 40%; width: 50px; height: 20px;
  background: linear-gradient(180deg, #0a0f14 0%, #1a222a 100%);
  clip-path: polygon(0% 100%, 20% 30%, 30% 30%, 40% 0%, 60% 0%, 70% 30%, 80% 30%, 100% 100%);
  animation: ma-ship 6s ease-in-out infinite alternate;
}
.scn-maelstrom-alert .figure-deck {
  position: absolute; bottom: 34%; left: 45%; width: 8px; height: 16px;
  background: #1a222a;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ma-figure 3s ease-in-out infinite alternate;
}
.scn-maelstrom-alert .spray {
  position: absolute; bottom: 10%; left: 30%; width: 40px; height: 30px;
  background: radial-gradient(ellipse, rgba(180,200,220,0.3) 0%, transparent 100%);
  filter: blur(4px);
  animation: ma-spray 2s ease-in-out infinite alternate;
}
.scn-maelstrom-alert .lightning-flash {
  position: absolute; top: 5%; left: 60%; width: 5px; height: 60px;
  background: linear-gradient(180deg, #e8e8e0 0%, transparent 100%);
  clip-path: polygon(50% 0, 45% 40%, 55% 40%, 40% 100%, 60% 60%, 50% 60%, 60% 0);
  opacity: 0;
  animation: ma-lightning 8s linear infinite;
}
@keyframes ma-sky { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes ma-moon { 0% { transform: translateY(0); } 50% { transform: translateY(-4px) scale(1.01); } 100% { transform: translateY(0); } }
@keyframes ma-cloud { 0% { transform: translateX(0); } 100% { transform: translateX(100vw); } }
@keyframes ma-wave { 0% { transform: translateX(0) translateY(0); } 50% { transform: translateX(10px) translateY(-5px); } 100% { transform: translateX(-10px) translateY(0); } }
@keyframes ma-ship { 0% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(2deg) translateY(-3px); } 100% { transform: rotate(-1deg) translateY(0); } }
@keyframes ma-figure { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes ma-spray { 0% { opacity:0.2; transform: scale(1); } 50% { opacity:0.6; transform: scale(1.3); } 100% { opacity:0.3; transform: scale(0.9); } }
@keyframes ma-lightning { 0%, 95% { opacity: 0; } 96% { opacity: 1; } 97% { opacity: 0; } 98% { opacity: 0.8; } 99% { opacity: 0; } 100% { opacity: 0; } }

/* wall-of-rocks */
.scn-wall-of-rocks {
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a28 40%, #0e0e1a 100%), radial-gradient(ellipse at 30% 60%, #3a3a4e 0%, transparent 70%);
}
.scn-wall-of-rocks .cliff-bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 0 0 20% 20%;
  animation: wr-cliffbg 15s ease-in-out infinite alternate;
}
.scn-wall-of-rocks .cliff-wall {
  position: absolute; bottom: 20%; left: 5%; right: 5%; height: 60%;
  background: linear-gradient(135deg, #2c2c3c 0%, #1c1c2c 50%, #12121a 100%);
  border-radius: 5% 5% 0 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.6);
  animation: wr-cliffwall 20s ease-in-out infinite alternate;
}
.scn-wall-of-rocks .cave-dark {
  position: absolute; bottom: 35%; left: 20%; width: 30%; height: 25%;
  background: radial-gradient(ellipse at 50% 60%, #0a0a10 0%, #1a1a2a 70%);
  border-radius: 20% 30% 40% 30% / 40% 50% 20% 30%;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.8);
  animation: wr-cave 12s ease-in-out infinite;
}
.scn-wall-of-rocks .cave-shadow {
  position: absolute; bottom: 38%; left: 50%; width: 25%; height: 20%;
  background: radial-gradient(ellipse at 60% 40%, #0a0a12 0%, #181828 80%);
  border-radius: 30% 20% 50% 30%;
  filter: blur(4px);
  animation: wr-caveshadow 14s ease-in-out infinite alternate;
}
.scn-wall-of-rocks .boulder-left {
  position: absolute; bottom: 10%; left: 5%; width: 18%; height: 25%;
  background: linear-gradient(180deg, #3a3a4e 0%, #2a2a3a 50%, #1a1a28 100%);
  border-radius: 40% 30% 20% 30% / 50% 40% 30% 40%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.5);
  animation: wr-boulder 8s ease-in-out infinite;
}
.scn-wall-of-rocks .boulder-right {
  position: absolute; bottom: 12%; right: 8%; width: 22%; height: 20%;
  background: linear-gradient(180deg, #3e3e52 0%, #2e2e40 100%);
  border-radius: 30% 50% 40% 30% / 40% 60% 30% 40%;
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.4);
  animation: wr-boulder 10s ease-in-out infinite reverse;
}
.scn-wall-of-rocks .crack-glow {
  position: absolute; bottom: 45%; left: 35%; width: 8%; height: 2%;
  background: radial-gradient(ellipse, #4a6a8a 0%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 12px 4px rgba(70,100,130,0.3);
  animation: wr-crackglow 6s ease-in-out infinite alternate;
}
.scn-wall-of-rocks .lantern {
  position: absolute; bottom: 28%; left: 72%; width: 6px; height: 8px;
  background: radial-gradient(circle, #d0a050 0%, #8a6a2a 100%);
  border-radius: 20% 20% 40% 40%;
  box-shadow: 0 0 18px 6px rgba(180,140,60,0.5);
  animation: wr-lantern 4s ease-in-out infinite;
}
@keyframes wr-cliffbg { 0% { opacity: 0.8; transform: scaleY(1); } 50% { opacity: 1; transform: scaleY(1.02); } 100% { opacity: 0.85; transform: scaleY(0.98); } }
@keyframes wr-cliffwall { 0% { transform: translateX(0) scale(1); } 50% { transform: translateX(-1px) scale(1.01); } 100% { transform: translateX(1px) scale(0.99); } }
@keyframes wr-cave { 0% { opacity: 0.7; transform: scale(1); } 50% { opacity: 0.9; transform: scale(1.03) rotate(-1deg); } 100% { opacity: 0.75; transform: scale(0.97); } }
@keyframes wr-caveshadow { 0% { opacity: 0.5; transform: translate(0,0); } 50% { opacity: 0.7; transform: translate(2px,-1px); } 100% { opacity: 0.6; transform: translate(-1px,1px); } }
@keyframes wr-boulder { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-1px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes wr-crackglow { 0% { opacity: 0.3; transform: scaleX(1); } 50% { opacity: 0.7; transform: scaleX(1.5); } 100% { opacity: 0.4; transform: scaleX(0.8); } }
@keyframes wr-lantern { 0% { transform: translateY(0) rotate(-2deg); box-shadow: 0 0 12px 4px rgba(180,140,60,0.4); } 50% { transform: translateY(-2px) rotate(3deg); box-shadow: 0 0 24px 8px rgba(180,140,60,0.6); } 100% { transform: translateY(0) rotate(0); box-shadow: 0 0 14px 5px rgba(180,140,60,0.3); } }

/* captain-nemo-halts */
.scn-captain-nemo-halts {
  background: linear-gradient(180deg, #1a1a30 0%, #101020 40%, #0a0a18 100%), radial-gradient(ellipse at 50% 80%, #202040 0%, transparent 70%);
}
.scn-captain-nemo-halts .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2a 100%);
  border-radius: 30% 40% 0 0 / 60% 50% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.5);
  animation: cnh-ground 18s ease-in-out infinite;
}
.scn-captain-nemo-halts .back-wall {
  position: absolute; bottom: 20%; left: 10%; right: 10%; height: 50%;
  background: linear-gradient(135deg, #2c2c44 0%, #1c1c30 50%, #0e0e1c 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.7);
  animation: cnh-backwall 22s ease-in-out infinite alternate;
}
.scn-captain-nemo-halts .void {
  position: absolute; bottom: 20%; left: 60%; width: 30%; height: 60%;
  background: radial-gradient(ellipse at 50% 40%, #05050a 0%, #12122a 80%);
  border-radius: 40% 20% 30% 50% / 30% 40% 60% 20%;
  filter: blur(8px);
  animation: cnh-void 15s ease-in-out infinite alternate;
}
.scn-captain-nemo-halts .figure-captain {
  position: absolute; bottom: 15%; left: 38%; width: 22px; height: 40px;
  background: linear-gradient(180deg, #2a2a3e 0%, #0e0e1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 0 0 10px 2px rgba(0,0,0,0.5);
  animation: cnh-figure 5s ease-in-out infinite;
}
.scn-captain-nemo-halts .gesture-arm {
  position: absolute; bottom: 28%; left: 40%; width: 16px; height: 4px;
  background: linear-gradient(90deg, #2a2a3e 0%, #1a1a28 100%);
  border-radius: 40% 10% 10% 40%;
  transform-origin: right center;
  animation: cnh-arm 6s ease-in-out infinite;
}
.scn-captain-nemo-halts .boundary-line {
  position: absolute; bottom: 22%; left: 50%; width: 2px; height: 30%;
  background: linear-gradient(180deg, #4a4a6a 0%, transparent 100%);
  box-shadow: 0 0 8px 2px rgba(60,60,100,0.3);
  animation: cnh-boundary 7s ease-in-out infinite alternate;
}
.scn-captain-nemo-halts .dust-particles {
  position: absolute; bottom: 30%; left: 20%; width: 60%; height: 40%;
  background: radial-gradient(ellipse at 40% 60%, rgba(180,180,200,0.05) 0%, transparent 70%);
  filter: blur(4px);
  animation: cnh-dust 25s linear infinite;
}
@keyframes cnh-ground { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(1px); } }
@keyframes cnh-backwall { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.01) translateX(-1px); } 100% { transform: scaleX(0.99); } }
@keyframes cnh-void { 0% { opacity: 0.6; transform: scale(1); } 50% { opacity: 0.8; transform: scale(1.05); } 100% { opacity: 0.7; transform: scale(0.95); } }
@keyframes cnh-figure { 0% { transform: translate(0,0) rotate(-1deg); } 30% { transform: translate(0, -1px) rotate(1deg); } 60% { transform: translate(1px,0) rotate(0); } 100% { transform: translate(0,0) rotate(-1deg); } }
@keyframes cnh-arm { 0% { transform: rotate(20deg) scaleX(1); } 50% { transform: rotate(30deg) scaleX(1.1); } 100% { transform: rotate(18deg) scaleX(0.9); } }
@keyframes cnh-boundary { 0% { opacity: 0.4; transform: scaleY(1); } 50% { opacity: 0.8; transform: scaleY(1.2); } 100% { opacity: 0.5; transform: scaleY(0.8); } }
@keyframes cnh-dust { 0% { transform: translate(0,0) scale(1); } 50% { transform: translate(4px, -3px) scale(1.02); } 100% { transform: translate(-2px, 2px) scale(0.98); } }

/* return-journey-begins */
.scn-return-journey-begins {
  background: linear-gradient(180deg, #4a2a1a 0%, #6a3a1a 30%, #8a5a2a 60%, #ac7a3a 100%), radial-gradient(ellipse at 50% 0%, #d0a050 0%, transparent 70%);
}
.scn-return-journey-begins .sky-dusk {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #6a3a2a 0%, #9a5a3a 40%, #d08a5a 100%);
  animation: rjb-sky 18s ease-in-out infinite alternate;
}
.scn-return-journey-begins .horizon {
  position: absolute; bottom: 50%; left: 0; right: 0; height: 4%;
  background: linear-gradient(180deg, #d09a5a 0%, #b07a3a 100%);
  filter: blur(2px);
  animation: rjb-horizon 20s ease-in-out infinite;
}
.scn-return-journey-begins .path-slope {
  position: absolute; bottom: 15%; left: 10%; right: 10%; height: 35%;
  background: linear-gradient(135deg, #5a3a1a 0%, #3a2a0a 100%);
  border-radius: 40% 30% 0 0 / 60% 40% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.5);
  animation: rjb-slope 15s ease-in-out infinite alternate;
}
.scn-return-journey-begins .figure-leader {
  position: absolute; bottom: 25%; left: 30%; 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: rjb-walk-leader 5s ease-in-out infinite;
}
.scn-return-journey-begins .figure-followers {
  position: absolute; bottom: 23%; left: 45%; width: 18px; 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: rjb-walk-follower 6s ease-in-out infinite;
}
.scn-return-journey-begins .rock-ledge {
  position: absolute; bottom: 30%; right: 5%; width: 25%; height: 20%;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a0a 100%);
  border-radius: 30% 20% 0 0 / 40% 30% 0 0;
  box-shadow: inset 0 4px 10px rgba(0,0,0,0.4);
  animation: rjb-ledge 10s ease-in-out infinite alternate;
}
.scn-return-journey-begins .cloud-soft {
  position: absolute; top: 10%; left: 20%; width: 120px; height: 20px;
  background: linear-gradient(180deg, rgba(255,200,150,0.4) 0%, rgba(255,200,150,0.05) 100%);
  border-radius: 50%;
  filter: blur(10px);
  animation: rjb-cloud 40s linear infinite;
}
@keyframes rjb-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes rjb-horizon { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.1); } 100% { transform: scaleY(0.9); } }
@keyframes rjb-slope { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(0.5deg); } 100% { transform: translateY(1px) rotate(-0.5deg); } }
@keyframes rjb-walk-leader { 0% { transform: translate(0,0) rotate(-2deg); } 25% { transform: translate(4px,-1px) rotate(2deg); } 50% { transform: translate(8px,0) rotate(-1deg); } 75% { transform: translate(12px,-1px) rotate(1deg); } 100% { transform: translate(16px,0) rotate(0); } }
@keyframes rjb-walk-follower { 0% { transform: translate(0,0) rotate(-1deg); } 25% { transform: translate(3px,-1px) rotate(1deg); } 50% { transform: translate(6px,0) rotate(-2deg); } 75% { transform: translate(9px,-1px) rotate(2deg); } 100% { transform: translate(12px,0) rotate(0); } }
@keyframes rjb-ledge { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-2px) scaleX(1.02); } 100% { transform: translateY(0) scaleX(0.98); } }
@keyframes rjb-cloud { 0% { transform: translateX(-50px); } 100% { transform: translateX(120vw); } }

/* gradual-ascent */
.scn-gradual-ascent {
  background: linear-gradient(180deg, #0a2a3a 0%, #1a3a4a 30%, #2a5a6a 60%, #4a7a8a 100%), radial-gradient(ellipse at 50% 20%, #6a9aaa 0%, transparent 70%);
}
.scn-gradual-ascent .deep-water {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #0a1a2a 0%, #1a3a4a 50%, #2a5a6a 100%);
  animation: ga-deepwater 16s ease-in-out infinite alternate;
}
.scn-gradual-ascent .light-rays {
  position: absolute; top: 0; left: 20%; right: 20%; height: 100%;
  background: linear-gradient(180deg, rgba(200,220,240,0.15) 0%, transparent 50%), linear-gradient(90deg, transparent 20%, rgba(255,240,200,0.1) 50%, transparent 80%);
  filter: blur(6px);
  animation: ga-lightrays 10s ease-in-out infinite alternate;
}
.scn-gradual-ascent .upward-current {
  position: absolute; bottom: 20%; left: 40%; width: 20%; height: 60%;
  background: radial-gradient(ellipse at 50% 40%, rgba(150,200,220,0.08) 0%, transparent 70%);
  filter: blur(15px);
  animation: ga-current 20s linear infinite;
}
.scn-gradual-ascent .bubbles {
  position: absolute; bottom: 10%; left: 30%; width: 12px; height: 12px;
  background: radial-gradient(circle, rgba(220,240,255,0.6) 0%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 8px rgba(220,240,255,0.2);
  animation: ga-bubbles 8s ease-in-out infinite;
}
.scn-gradual-ascent .diver-silhouette {
  position: absolute; bottom: 25%; left: 50%; width: 24px; height: 40px;
  background: linear-gradient(180deg, #0a1a2a 0%, #051015 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform: translateX(-50%);
  animation: ga-diver 14s ease-in-out infinite;
}
.scn-gradual-ascent .particles-sparkle {
  position: absolute; bottom: 0; left: 0; right: 0; height: 100%;
  background: radial-gradient(circle at 30% 60%, rgba(255,240,200,0.06) 0%, transparent 50%), radial-gradient(circle at 70% 80%, rgba(200,220,255,0.04) 0%, transparent 50%);
  filter: blur(3px);
  animation: ga-sparkle 12s ease-in-out infinite alternate;
}
.scn-gradual-ascent .surface-glow {
  position: absolute; top: 0; left: 10%; right: 10%; height: 8%;
  background: linear-gradient(180deg, rgba(200,220,255,0.3) 0%, transparent 100%);
  border-radius: 0 0 50% 50%;
  filter: blur(10px);
  animation: ga-surface 7s ease-in-out infinite alternate;
}
.scn-gradual-ascent .rock-wall-pass {
  position: absolute; bottom: 15%; left: 0; width: 20%; height: 50%;
  background: linear-gradient(180deg, #1a2a2a 0%, #0a1a1a 100%);
  border-radius: 0 40% 40% 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.6);
  animation: ga-wall 25s ease-in-out infinite alternate;
}
@keyframes ga-deepwater { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes ga-lightrays { 0% { opacity: 0.3; transform: rotate(-1deg); } 50% { opacity: 0.7; transform: rotate(1deg); } 100% { opacity: 0.4; transform: rotate(0); } }
@keyframes ga-current { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-15px) scaleY(1.2); } 100% { transform: translateY(10px) scaleY(0.8); } }
@keyframes ga-bubbles { 0% { transform: translateY(0) scale(1); opacity: 0.6; } 50% { transform: translateY(-20px) scale(1.5); opacity: 0.2; } 100% { transform: translateY(10px) scale(0.8); opacity: 0.6; } }
@keyframes ga-diver { 0% { transform: translateX(-50%) translateY(0) rotate(0deg); } 25% { transform: translateX(-48%) translateY(-5px) rotate(3deg); } 50% { transform: translateX(-50%) translateY(-10px) rotate(0); } 75% { transform: translateX(-52%) translateY(-5px) rotate(-3deg); } 100% { transform: translateX(-50%) translateY(0) rotate(0); } }
@keyframes ga-sparkle { 0% { opacity: 0.3; } 50% { opacity: 0.8; } 100% { opacity: 0.5; } }
@keyframes ga-surface { 0% { opacity: 0.2; transform: scaleX(1); } 50% { opacity: 0.6; transform: scaleX(1.1); } 100% { opacity: 0.3; transform: scaleX(0.9); } }
@keyframes ga-wall { 0% { transform: translateX(0) scaleY(1); } 50% { transform: translateX(-2px) scaleY(1.02); } 100% { transform: translateX(2px) scaleY(0.98); } }

/* entering-gibraltar-strait */
.scn-entering-gibraltar-strait {
  background: 
    linear-gradient(180deg, #2a1a3e 0%, #5a3a5e 30%, #8a6a7e 60%, #b8a090 100%),
    radial-gradient(ellipse at 20% 80%, #c8b0a0 0%, transparent 50%);
}
.scn-entering-gibraltar-strait .sky {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #4a2a5e 0%, #7a5a7e 40%, #c8a080 100%);
  animation: esg-sky 12s ease-in-out infinite alternate;
}
.scn-entering-gibraltar-strait .sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #2a4a5e 0%, #1a2a3e 100%);
  border-radius: 0 0 40% 40% / 0 0 20% 20%;
  box-shadow: inset 0 20px 40px rgba(0,0,0,.4);
  animation: esg-sea 8s ease-in-out infinite alternate;
}
.scn-entering-gibraltar-strait .ruins-left {
  position: absolute; bottom: 30%; left: 10%; width: 30px; height: 80px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 4px 4px 2px 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
  transform-origin: bottom center;
  animation: esg-ruin-sway 6s ease-in-out infinite;
}
.scn-entering-gibraltar-strait .ruins-right {
  position: absolute; bottom: 28%; right: 18%; width: 25px; height: 70px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%);
  border-radius: 4px 4px 2px 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
  transform-origin: bottom center;
  animation: esg-ruin-sway 7s ease-in-out infinite alternate;
}
.scn-entering-gibraltar-strait .current-1 {
  position: absolute; bottom: 40%; left: 0; right: 0; height: 12px;
  background: linear-gradient(90deg, rgba(200,180,160,.3) 0%, rgba(200,180,160,.6) 50%, rgba(200,180,160,.1) 100%);
  transform: skewY(-5deg);
  filter: blur(2px);
  animation: esg-drift-current 20s linear infinite;
}
.scn-entering-gibraltar-strait .current-2 {
  position: absolute; bottom: 45%; left: 0; right: 0; height: 10px;
  background: linear-gradient(90deg, rgba(200,180,160,.2) 0%, rgba(200,180,160,.5) 50%, rgba(200,180,160,.1) 100%);
  transform: skewY(3deg);
  filter: blur(3px);
  animation: esg-drift-current 25s linear infinite reverse;
}
.scn-entering-gibraltar-strait .nautilus {
  position: absolute; bottom: 35%; left: -60px; width: 80px; height: 20px;
  background: linear-gradient(180deg, #3a3a2a 0%, #1a1a0a 100%);
  border-radius: 50% 10% 10% 50% / 50% 20% 20% 50%;
  box-shadow: 0 2px 4px rgba(0,0,0,.5);
  animation: esg-nautilus-glide 16s linear infinite;
}
@keyframes esg-sky {
  0% { opacity: .7; }
  50% { opacity: 1; }
  100% { opacity: .6; }
}
@keyframes esg-sea {
  0% { transform: translateY(0); }
  50% { transform: translateY(-4px); }
  100% { transform: translateY(2px); }
}
@keyframes esg-ruin-sway {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(2deg); }
  100% { transform: rotate(-1deg); }
}
@keyframes esg-drift-current {
  0% { transform: translateX(-50px) skewY(-5deg); opacity: .4; }
  50% { transform: translateX(50vw) skewY(-5deg); opacity: .8; }
  100% { transform: translateX(100vw) skewY(-5deg); opacity: .3; }
}
@keyframes esg-nautilus-glide {
  0% { transform: translateX(0) translateY(0); }
  25% { transform: translateX(30vw) translateY(-3px); }
  50% { transform: translateX(60vw) translateY(0); }
  75% { transform: translateX(80vw) translateY(-2px); }
  100% { transform: translateX(110vw) translateY(0); }
}

/* through-the-strait */
.scn-through-the-strait {
  background: 
    linear-gradient(180deg, #0a1a3e 0%, #1a3a5e 40%, #2a5a7e 70%, #3a7a9e 100%),
    radial-gradient(ellipse at 30% 20%, #5aa0c0 0%, transparent 60%);
}
.scn-through-the-strait .water-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #1a3a5e 0%, #0a1a2e 100%);
  animation: tts-water 20s ease-in-out infinite alternate;
}
.scn-through-the-strait .light-ray-1 {
  position: absolute; top: 0; left: 20%; width: 40px; height: 100%;
  background: linear-gradient(180deg, rgba(255,255,200,.3) 0%, transparent 100%);
  transform: skewX(-10deg);
  filter: blur(8px);
  animation: tts-ray 4s ease-in-out infinite alternate;
}
.scn-through-the-strait .light-ray-2 {
  position: absolute; top: 0; right: 30%; width: 50px; height: 100%;
  background: linear-gradient(180deg, rgba(255,255,200,.2) 0%, transparent 100%);
  transform: skewX(15deg);
  filter: blur(10px);
  animation: tts-ray 5s ease-in-out infinite alternate-reverse;
}
.scn-through-the-strait .temple-arch {
  position: absolute; bottom: 25%; left: 50%; width: 120px; height: 80px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 100%, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 60% 60% 20% 20% / 40% 40% 10% 10%;
  box-shadow: 0 8px 16px rgba(0,0,0,.6);
  animation: tts-arch-glow 6s ease-in-out infinite;
}
.scn-through-the-strait .column-left {
  position: absolute; bottom: 15%; left: 35%; width: 16px; height: 120px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%);
  border-radius: 4px;
  box-shadow: 0 6px 12px rgba(0,0,0,.4);
  animation: tts-column-sway 8s ease-in-out infinite;
}
.scn-through-the-strait .column-right {
  position: absolute; bottom: 15%; right: 35%; width: 16px; height: 120px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%);
  border-radius: 4px;
  box-shadow: 0 6px 12px rgba(0,0,0,.4);
  animation: tts-column-sway 8s ease-in-out infinite reverse;
}
.scn-through-the-strait .nautilus {
  position: absolute; bottom: 30%; left: -80px; width: 100px; height: 24px;
  background: linear-gradient(180deg, #4a4a3a 0%, #2a2a1a 100%);
  border-radius: 50% 15% 15% 50% / 50% 25% 25% 50%;
  box-shadow: 0 4px 8px rgba(0,0,0,.6);
  animation: tts-nautilus 14s linear infinite;
}
@keyframes tts-water {
  0% { opacity: .8; }
  50% { opacity: 1; }
  100% { opacity: .9; }
}
@keyframes tts-ray {
  0% { opacity: .2; transform: skewX(-10deg) scaleY(1); }
  50% { opacity: .6; transform: skewX(-8deg) scaleY(1.1); }
  100% { opacity: .3; transform: skewX(-12deg) scaleY(.95); }
}
@keyframes tts-arch-glow {
  0% { box-shadow: 0 8px 16px rgba(0,0,0,.6), inset 0 0 0 rgba(255,255,200,0); }
  50% { box-shadow: 0 8px 24px rgba(0,0,0,.6), inset 0 0 20px rgba(255,255,200,.2); }
  100% { box-shadow: 0 8px 16px rgba(0,0,0,.6), inset 0 0 0 rgba(255,255,200,0); }
}
@keyframes tts-column-sway {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(2deg); }
  100% { transform: rotate(-1deg); }
}
@keyframes tts-nautilus {
  0% { transform: translateX(0) translateY(0); }
  25% { transform: translateX(30vw) translateY(-2px); }
  50% { transform: translateX(60vw) translateY(1px); }
  75% { transform: translateX(80vw) translateY(-1px); }
  100% { transform: translateX(110vw) translateY(0); }
}

/* nautilus-in-atlantic */
.scn-nautilus-in-atlantic {
  background: 
    linear-gradient(180deg, #5a8abe 0%, #8abade 40%, #badaee 70%, #e0f0f8 100%),
    radial-gradient(ellipse at 50% 0%, #f8f8e8 0%, transparent 40%);
}
.scn-nautilus-in-atlantic .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #6a9ace 0%, #a0d0e8 60%, #d0e8f0 100%);
  animation: nia-sky 10s ease-in-out infinite alternate;
}
.scn-nautilus-in-atlantic .sun {
  position: absolute; top: 12%; left: 40%; width: 60px; height: 60px;
  background: radial-gradient(circle, #fff0c0 0%, #f8d878 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px rgba(248,216,120,.4);
  animation: nia-sun-pulse 6s ease-in-out infinite;
}
.scn-nautilus-in-atlantic .clouds {
  position: absolute; top: 8%; left: 0; right: 0; height: 30%;
  background: repeating-linear-gradient(90deg, 
    rgba(255,255,255,.3) 0px, rgba(255,255,255,.6) 80px, rgba(255,255,255,.1) 160px, transparent 240px);
  filter: blur(12px);
  animation: nia-cloud-drift 35s linear infinite;
}
.scn-nautilus-in-atlantic .sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #3a7a9e 0%, #1a4a6e 50%, #0a2a4e 100%);
  border-radius: 0 0 30% 30% / 0 0 15% 15%;
  box-shadow: inset 0 10px 30px rgba(0,0,0,.3);
  animation: nia-sea 8s ease-in-out infinite alternate;
}
.scn-nautilus-in-atlantic .wave-break {
  position: absolute; bottom: 35%; left: 20%; width: 120px; height: 40px;
  background: radial-gradient(ellipse at 50% 20%, rgba(200,230,255,.6) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(4px);
  animation: nia-wave-break 3s ease-in-out infinite alternate;
}
.scn-nautilus-in-atlantic .nautilus {
  position: absolute; bottom: 32%; left: 15%; width: 100px; height: 22px;
  background: linear-gradient(180deg, #4a4a3a 0%, #2a2a1a 100%);
  border-radius: 50% 10% 10% 50% / 50% 20% 20% 50%;
  box-shadow: 0 3px 8px rgba(0,0,0,.5);
  animation: nia-nautilus-bob 4s ease-in-out infinite;
}
@keyframes nia-sky {
  0% { opacity: .8; }
  50% { opacity: 1; }
  100% { opacity: .9; }
}
@keyframes nia-sun-pulse {
  0% { transform: scale(1); box-shadow: 0 0 60px 20px rgba(248,216,120,.4); }
  50% { transform: scale(1.05); box-shadow: 0 0 80px 30px rgba(248,216,120,.6); }
  100% { transform: scale(1); box-shadow: 0 0 60px 20px rgba(248,216,120,.4); }
}
@keyframes nia-cloud-drift {
  0% { transform: translateX(0); }
  100% { transform: translateX(-60vw); }
}
@keyframes nia-sea {
  0% { transform: translateY(0); }
  50% { transform: translateY(-5px); }
  100% { transform: translateY(3px); }
}
@keyframes nia-wave-break {
  0% { transform: translateX(0) scaleX(1); opacity: .4; }
  50% { transform: translateX(10px) scaleX(1.2); opacity: .8; }
  100% { transform: translateX(-5px) scaleX(.9); opacity: .5; }
}
@keyframes nia-nautilus-bob {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-4px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}

/* rough-weather-cape-st-vincent */
.scn-rough-weather-cape-st-vincent {
  background: 
    linear-gradient(180deg, #1a1a2e 0%, #2a2a4e 30%, #3a3a5e 60%, #4a4a6e 100%),
    radial-gradient(ellipse at 80% 50%, #5a5a7e 0%, transparent 50%);
}
.scn-rough-weather-cape-st-vincent .storm-sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #2a2a4e 0%, #1a1a2e 40%, #0a0a1e 100%);
  animation: rwc-storm-sky 3s ease-in-out infinite alternate;
}
.scn-rough-weather-cape-st-vincent .wave-1 {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #3a4a5e 0%, #2a3a4e 50%, #1a2a3e 100%);
  border-radius: 60% 40% 0 0 / 40% 30% 0 0;
  box-shadow: inset 0 20px 40px rgba(0,0,0,.5);
  animation: rwc-wave 2s ease-in-out infinite;
}
.scn-rough-weather-cape-st-vincent .wave-2 {
  position: absolute; bottom: 5%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #3a4a5e 0%, #1a2a3e 100%);
  border-radius: 50% 50% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 15px 30px rgba(0,0,0,.4);
  animation: rwc-wave 2.5s ease-in-out infinite reverse;
}
.scn-rough-weather-cape-st-vincent .spray {
  position: absolute; bottom: 35%; left: 10%; width: 80px; height: 60px;
  background: radial-gradient(ellipse at 50% 100%, rgba(200,220,240,.3) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(6px);
  animation: rwc-spray 1.5s ease-in-out infinite alternate;
}
.scn-rough-weather-cape-st-vincent .nautilus {
  position: absolute; bottom: 20%; left: 40%; width: 120px; height: 28px;
  background: linear-gradient(180deg, #3a3a2a 0%, #1a1a0a 100%);
  border-radius: 50% 15% 15% 50% / 50% 25% 25% 50%;
  box-shadow: 0 4px 10px rgba(0,0,0,.7);
  transform-origin: center bottom;
  animation: rwc-nautilus-toss 1.2s ease-in-out infinite;
}
.scn-rough-weather-cape-st-vincent .lightning {
  position: absolute; top: 5%; left: 70%; width: 4px; height: 120px;
  background: linear-gradient(180deg, #fff8e0 0%, rgba(255,248,224,.5) 60%, transparent 100%);
  filter: blur(1px);
  animation: rwc-lightning 4s steps(1) infinite;
}
@keyframes rwc-storm-sky {
  0% { background-position: 0% 0%; }
  50% { background-position: 100% 0%; }
  100% { background-position: 0% 0%; }
}
@keyframes rwc-wave {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-10px) scaleY(1.1); }
  100% { transform: translateY(0) scaleY(1); }
}
@keyframes rwc-spray {
  0% { transform: translateY(0) scale(1); opacity: .3; }
  50% { transform: translateY(-8px) scale(1.3); opacity: .7; }
  100% { transform: translateY(0) scale(1); opacity: .3; }
}
@keyframes rwc-nautilus-toss {
  0% { transform: rotate(-3deg) translateY(0); }
  25% { transform: rotate(2deg) translateY(-5px); }
  50% { transform: rotate(-4deg) translateY(2px); }
  75% { transform: rotate(3deg) translateY(-3px); }
  100% { transform: rotate(-3deg) translateY(0); }
}
@keyframes rwc-lightning {
  0%, 10%, 20%, 30%, 40%, 50%, 60%, 70%, 80%, 90%, 100% { opacity: 0; }
  5% { opacity: 1; }
  15% { opacity: .6; }
  45% { opacity: 0; }
  55% { opacity: 0; }
  65% { opacity: 0; }
  85% { opacity: 1; }
  95% { opacity: .3; }
}

.scn-hurricane-descent {
  background: linear-gradient(180deg, #0b1628 0%, #122640 40%, #1a3d5c 100%), radial-gradient(ellipse at 50% 20%, #2a5a7a 0%, transparent 80%);
}
.scn-hurricane-descent .water-top {
  position: absolute; inset: 0 0 60% 0; background: linear-gradient(180deg, #0a1c30 0%, #0f2a45 40%, transparent 100%); animation: hd-water 8s ease-in-out infinite alternate;
}
.scn-hurricane-descent .nautilus {
  position: absolute; bottom: 30%; left: 50%; width: 120px; height: 50px; transform: translate(-50%,0); background: linear-gradient(90deg, #2a4a5a 0%, #4a6a7a 30%, #3a5a6a 70%, #1a3a4a 100%); border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%; box-shadow: inset 0 -8px 20px rgba(0,0,0,0.6), 0 0 30px rgba(200,160,80,0.2); animation: hd-nautilus 14s ease-in-out infinite;
}
.scn-hurricane-descent .window {
  position: absolute; bottom: 34%; left: 50%; width: 16px; height: 20px; transform: translate(-50%,0); background: radial-gradient(circle, #f0c068 0%, #b08040 70%); border-radius: 30%; box-shadow: 0 0 20px 6px #c08040, 0 0 40px 12px rgba(192,128,64,0.3); animation: hd-window 3s ease-in-out infinite alternate;
}
.scn-hurricane-descent .fish {
  position: absolute; bottom: 45%; left: 20%; width: 24px; height: 10px; background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%); border-radius: 50% 50% 30% 30%; animation: hd-fish 12s linear infinite;
}
.scn-hurricane-descent .particle {
  position: absolute; bottom: 55%; left: 60%; width: 6px; height: 6px; background: rgba(200,180,100,0.6); border-radius: 50%; filter: blur(2px); animation: hd-particle 20s linear infinite;
}
.scn-hurricane-descent .lightbeam {
  position: absolute; top: 10%; left: 40%; width: 40%; height: 50%; background: linear-gradient(180deg, rgba(255,200,80,0.15) 0%, transparent 100%); clip-path: polygon(30% 0%, 70% 0%, 100% 100%, 0% 100%); animation: hd-beam 6s ease-in-out infinite alternate;
}
.scn-hurricane-descent .bubbles {
  position: absolute; bottom: 20%; left: 30%; width: 10px; height: 10px; background: rgba(200,220,255,0.4); border-radius: 50%; box-shadow: 0 0 8px rgba(200,220,255,0.3); animation: hd-bubbles 5s ease-out infinite;
}

@keyframes hd-water { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.75; } }
@keyframes hd-nautilus { 0%,100% { transform: translate(-50%, 0) rotate(0deg); } 30% { transform: translate(-50%, -4px) rotate(1deg); } 60% { transform: translate(-50%, 2px) rotate(-1deg); } 80% { transform: translate(-50%, -2px) rotate(0.5deg); } }
@keyframes hd-window { 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 32px 10px #ffd060, 0 0 64px 18px rgba(255,208,96,0.5); opacity: 1; } 100% { box-shadow: 0 0 22px 5px #c08040, 0 0 40px 10px rgba(192,128,64,0.35); opacity: 0.9; } }
@keyframes hd-fish { 0% { transform: translateX(0) translateY(0); } 25% { transform: translateX(20px) translateY(-3px); } 50% { transform: translateX(40px) translateY(1px); } 75% { transform: translateX(60px) translateY(-2px); } 100% { transform: translateX(80px) translateY(0); } }
@keyframes hd-particle { 0% { transform: translate(0, 0) scale(1); opacity:0.6; } 50% { transform: translate(10px, -30px) scale(1.5); opacity:0.2; } 100% { transform: translate(20px, -60px) scale(0.8); opacity:0; } }
@keyframes hd-beam { 0% { opacity: 0.3; } 50% { opacity: 0.7; } 100% { opacity: 0.4; } }
@keyframes hd-bubbles { 0% { transform: translateY(0) scale(1); opacity:0.6; } 50% { transform: translateY(-40px) scale(1.2); opacity:0.3; } 100% { transform: translateY(-80px) scale(0.5); opacity:0; } }

.scn-after-storm-eastward {
  background: linear-gradient(180deg, #3a4a5a 0%, #4a5a6a 30%, #5a6a7a 70%, #6a7a8a 100%), radial-gradient(ellipse at 50% 0%, #8a9aaa 0%, transparent 80%);
}
.scn-after-storm-eastward .sky {
  position: absolute; inset: 0; background: linear-gradient(180deg, #2a3a4a 0%, #4a5a6a 40%, transparent 100%); animation: ase-sky 10s ease-in-out infinite alternate;
}
.scn-after-storm-eastward .clouds {
  position: absolute; top: 5%; left: -10%; width: 120%; height: 30%; background: radial-gradient(ellipse at 30% 50%, rgba(200,210,220,0.4) 0%, transparent 70%), radial-gradient(ellipse at 70% 30%, rgba(180,190,200,0.3) 0%, transparent 60%); filter: blur(8px); animation: ase-clouds 30s linear infinite;
}
.scn-after-storm-eastward .clouds2 {
  position: absolute; top: 18%; right: -10%; width: 100%; height: 20%; background: radial-gradient(ellipse at 50% 60%, rgba(180,190,210,0.35) 0%, transparent 70%); filter: blur(6px); animation: ase-clouds2 40s linear infinite reverse;
}
.scn-after-storm-eastward .sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%; background: linear-gradient(180deg, #4a5a6a 0%, #2a3a4a 100%); box-shadow: inset 0 10px 30px rgba(0,0,0,0.4); animation: ase-sea 12s ease-in-out infinite alternate;
}
.scn-after-storm-eastward .waves1 {
  position: absolute; bottom: 20%; left: 0; width: 100%; height: 15%; background: repeating-linear-gradient(90deg, transparent 0%, transparent 20%, rgba(100,130,160,0.4) 20%, rgba(100,130,160,0.4) 25%, transparent 25%); animation: ase-waves1 8s ease-in-out infinite;
}
.scn-after-storm-eastward .waves2 {
  position: absolute; bottom: 10%; left: 0; width: 100%; height: 12%; background: repeating-linear-gradient(90deg, transparent 0%, transparent 30%, rgba(120,150,180,0.3) 30%, rgba(120,150,180,0.3) 35%, transparent 35%); animation: ase-waves2 10s ease-in-out infinite reverse;
}
.scn-after-storm-eastward .ship {
  position: absolute; bottom: 20%; left: 30%; width: 60px; height: 40px; background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%); clip-path: polygon(0% 40%, 100% 40%, 80% 100%, 20% 100%); box-shadow: inset 0 -4px 10px rgba(0,0,0,0.6); animation: ase-ship 6s ease-in-out infinite;
}

@keyframes ase-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes ase-clouds { 0% { transform: translateX(0); } 50% { transform: translateX(20%); } 100% { transform: translateX(0); } }
@keyframes ase-clouds2 { 0% { transform: translateX(0); } 50% { transform: translateX(-15%); } 100% { transform: translateX(0); } }
@keyframes ase-sea { 0% { transform: translateY(0); } 50% { transform: translateY(3px); } 100% { transform: translateY(-2px); } }
@keyframes ase-waves1 { 0% { transform: translateX(0) scaleY(1); } 25% { transform: translateX(10%) scaleY(1.05); } 50% { transform: translateX(20%) scaleY(0.95); } 75% { transform: translateX(10%) scaleY(1.02); } 100% { transform: translateX(0) scaleY(1); } }
@keyframes ase-waves2 { 0% { transform: translateX(0) scaleY(1); } 25% { transform: translateX(-8%) scaleY(1.03); } 50% { transform: translateX(-16%) scaleY(0.97); } 75% { transform: translateX(-8%) scaleY(1.01); } 100% { transform: translateX(0) scaleY(1); } }
@keyframes ase-ship { 0%,100% { transform: translate(0, 0) rotate(0deg); } 25% { transform: translate(2px, -3px) rotate(-2deg); } 50% { transform: translate(4px, 0) rotate(1deg); } 75% { transform: translate(2px, -2px) rotate(-1deg); } }

.scn-graveyard-of-ships {
  background: linear-gradient(180deg, #0a1420 0%, #121c2c 40%, #1a2a3a 100%), radial-gradient(ellipse at 50% 80%, #0a1a2a 0%, transparent 80%);
}
.scn-graveyard-of-ships .seabed {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%; background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%); border-radius: 30% 30% 0 0 / 100% 100% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.6); animation: gos-bed 15s ease-in-out infinite alternate;
}
.scn-graveyard-of-ships .ship1 {
  position: absolute; bottom: 10%; left: 20%; width: 100px; height: 40px; background: linear-gradient(180deg, #3a4a3a 0%, #2a3a2a 100%); border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%; transform: rotate(-5deg); box-shadow: inset 0 -6px 12px rgba(0,0,0,0.5); animation: gos-ship1 20s ease-in-out infinite;
}
.scn-graveyard-of-ships .ship2 {
  position: absolute; bottom: 15%; left: 60%; width: 80px; height: 30px; background: linear-gradient(180deg, #4a5a4a 0%, #3a4a3a 100%); border-radius: 10% 10% 20% 20% / 30% 30% 50% 50%; transform: rotate(8deg); box-shadow: inset 0 -4px 8px rgba(0,0,0,0.4); animation: gos-ship2 18s ease-in-out infinite reverse;
}
.scn-graveyard-of-ships .beacon {
  position: absolute; bottom: 30%; left: 35%; width: 12px; height: 12px; background: radial-gradient(circle, #d0a050 0%, #804020 70%); border-radius: 50%; box-shadow: 0 0 30px 8px #a06030, 0 0 60px 20px rgba(160,96,48,0.4); animation: gos-beacon 4s ease-in-out infinite alternate;
}
.scn-graveyard-of-ships .lightglow {
  position: absolute; bottom: 20%; left: 30%; width: 25%; height: 30%; background: radial-gradient(ellipse at 50% 50%, rgba(200,160,80,0.2) 0%, transparent 70%); filter: blur(6px); animation: gos-glow 6s ease-in-out infinite alternate;
}
.scn-graveyard-of-ships .debris {
  position: absolute; bottom: 5%; left: 40%; width: 20px; height: 6px; background: #5a4a3a; border-radius: 20px; filter: blur(1px); animation: gos-debris 25s linear infinite;
}
.scn-graveyard-of-ships .bubbles {
  position: absolute; bottom: 40%; left: 50%; width: 8px; height: 8px; background: rgba(180,200,220,0.3); border-radius: 50%; box-shadow: 0 0 6px rgba(180,200,220,0.2); animation: gos-bubbles 10s ease-out infinite;
}

@keyframes gos-bed { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes gos-ship1 { 0%,100% { transform: rotate(-5deg) translateY(0); } 30% { transform: rotate(-4deg) translateY(-3px); } 60% { transform: rotate(-6deg) translateY(1px); } }
@keyframes gos-ship2 { 0%,100% { transform: rotate(8deg) translateY(0); } 30% { transform: rotate(9deg) translateY(-2px); } 60% { transform: rotate(7deg) translateY(1px); } }
@keyframes gos-beacon { 0% { box-shadow: 0 0 20px 6px #a06030, 0 0 40px 12px rgba(160,96,48,0.3); opacity: 0.8; } 50% { box-shadow: 0 0 40px 12px #d09050, 0 0 80px 24px rgba(208,144,80,0.5); opacity: 1; } 100% { box-shadow: 0 0 25px 8px #a06030, 0 0 50px 16px rgba(160,96,48,0.35); opacity: 0.9; } }
@keyframes gos-glow { 0% { opacity: 0.3; } 50% { opacity: 0.6; } 100% { opacity: 0.4; } }
@keyframes gos-debris { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 25% { transform: translateX(15px) translateY(-5px) rotate(20deg); } 50% { transform: translateX(30px) translateY(-10px) rotate(40deg); } 75% { transform: translateX(45px) translateY(-5px) rotate(60deg); } 100% { transform: translateX(60px) translateY(0) rotate(80deg); } }
@keyframes gos-bubbles { 0% { transform: translateY(0) scale(1); opacity:0.5; } 50% { transform: translateY(-60px) scale(1.3); opacity:0.2; } 100% { transform: translateY(-120px) scale(0.6); opacity:0; } }

.scn-grand-banks-arrival {
  background: linear-gradient(180deg, #6a7a8a 0%, #7a8a9a 50%, #8a9aaa 100%), radial-gradient(ellipse at 50% 0%, #9aaaba 0%, transparent 70%);
}
.scn-grand-banks-arrival .sky {
  position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #5a6a7a 0%, #7a8a9a 60%, transparent 100%); animation: gba-sky 12s ease-in-out infinite alternate;
}
.scn-grand-banks-arrival .sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%; background: linear-gradient(180deg, #7a8a9a 0%, #5a6a7a 100%); box-shadow: inset 0 8px 20px rgba(0,0,0,0.2); animation: gba-sea 15s ease-in-out infinite alternate;
}
.scn-grand-banks-arrival .fog {
  position: absolute; top: 20%; left: 0; width: 100%; height: 40%; background: radial-gradient(ellipse at 50% 60%, rgba(200,210,220,0.3) 0%, transparent 70%); filter: blur(12px); animation: gba-fog 25s linear infinite;
}
.scn-grand-banks-arrival .land {
  position: absolute; bottom: 30%; left: 20%; width: 40px; height: 20px; background: linear-gradient(180deg, #5a6a4a 0%, #3a4a2a 100%); border-radius: 40% 40% 0 0 / 60% 60% 0 0; box-shadow: inset 0 -4px 8px rgba(0,0,0,0.3); animation: gba-land 20s ease-in-out infinite;
}
.scn-grand-banks-arrival .bird {
  position: absolute; top: 15%; left: 60%; width: 12px; height: 4px; background: #4a5a4a; border-radius: 50%; filter: blur(0.5px); animation: gba-bird 6s ease-in-out infinite;
}
.scn-grand-banks-arrival .buoy {
  position: absolute; bottom: 20%; left: 70%; width: 6px; height: 12px; background: linear-gradient(180deg, #c07030 0%, #804020 100%); border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%; box-shadow: inset 0 -2px 4px rgba(0,0,0,0.4); animation: gba-buoy 8s ease-in-out infinite;
}

@keyframes gba-sky { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes gba-sea { 0% { transform: translateY(0); } 50% { transform: translateY(2px); } 100% { transform: translateY(-1px); } }
@keyframes gba-fog { 0% { transform: translateX(0) scale(1); opacity:0.4; } 50% { transform: translateX(10%) scale(1.05); opacity:0.6; } 100% { transform: translateX(0) scale(1); opacity:0.4; } }
@keyframes gba-land { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes gba-bird { 0% { transform: translate(0, 0) rotate(0deg) scaleX(1); } 25% { transform: translate(5px, -3px) rotate(-5deg) scaleX(-1); } 50% { transform: translate(10px, 0) rotate(0deg) scaleX(1); } 75% { transform: translate(5px, -2px) rotate(5deg) scaleX(-1); } 100% { transform: translate(0, 0) rotate(0deg) scaleX(1); } }
@keyframes gba-buoy { 0%,100% { transform: rotate(0deg) translateY(0); } 25% { transform: rotate(5deg) translateY(-2px); } 50% { transform: rotate(-3deg) translateY(1px); } 75% { transform: rotate(4deg) translateY(-1px); } }

.scn-nemo-asks-spanish-history {
  background: linear-gradient(180deg, #2a1e14 0%, #1a120c 40%, #0d0a07 100%), radial-gradient(ellipse at 50% 30%, #4a3424 0%, transparent 70%);
}
.scn-nemo-asks-spanish-history .bg {
  position: absolute; inset: 0; background: linear-gradient(135deg, #1a120c 0%, #2a1e14 50%, #1a120c 100%); animation: nas-bg 20s ease infinite;
}
.scn-nemo-asks-spanish-history .wall-panel {
  position: absolute; left: 5%; top: 15%; width: 15%; height: 70%; background: linear-gradient(180deg, #3d2b1a 0%, #2a1e14 100%); border-radius: 4px; box-shadow: inset -2px 0 8px rgba(0,0,0,.6); animation: nas-panel 12s ease-in-out infinite alternate;
}
.scn-nemo-asks-spanish-history .desk {
  position: absolute; bottom: 10%; left: 10%; right: 10%; height: 12%; background: linear-gradient(180deg, #5a3e28 0%, #3d2b1a 100%); border-radius: 2px; box-shadow: 0 4px 12px rgba(0,0,0,.5); animation: nas-desk 8s ease-in-out infinite;
}
.scn-nemo-asks-spanish-history .book {
  position: absolute; bottom: 22%; left: 35%; width: 20%; height: 8%; background: linear-gradient(135deg, #7a5a3a 0%, #5a3e28 100%); border-radius: 1px 30% 1px 30%; transform: perspective(600px) rotateX(15deg) rotateY(-5deg); transform-origin: bottom left; box-shadow: 0 4px 8px rgba(0,0,0,.4); animation: nas-book 6s ease-in-out infinite alternate;
}
.scn-nemo-asks-spanish-history .lamp {
  position: absolute; bottom: 32%; left: 20%; width: 6%; height: 18%; background: linear-gradient(180deg, #8a6a3a 0%, #5a4020 100%); border-radius: 20% 20% 5% 5%; box-shadow: 0 -10px 30px 8px rgba(200,160,80,.3); animation: nas-lamp 4s ease-in-out infinite alternate;
}
.scn-nemo-asks-spanish-history .figure-nemo {
  position: absolute; bottom: 12%; left: 55%; width: 10%; height: 35%; background: linear-gradient(180deg, #0d0a07 0%, #2a1e14 80%, #1a120c 100%); border-radius: 40% 40% 30% 30% / 60% 60% 35% 35%; transform-origin: bottom center; box-shadow: 2px 0 8px rgba(0,0,0,.7); animation: nas-figure 5s ease-in-out infinite;
}
.scn-nemo-asks-spanish-history .shadow-on-wall {
  position: absolute; left: 45%; top: 20%; width: 20%; height: 50%; background: radial-gradient(ellipse, rgba(0,0,0,.3) 0%, transparent 70%); filter: blur(8px); animation: nas-shadow 10s ease-in-out infinite alternate;
}
@keyframes nas-bg { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes nas-panel { 0% { transform: translateX(0) } 100% { transform: translateX(3px) } }
@keyframes nas-desk { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }
@keyframes nas-book { 0% { transform: perspective(600px) rotateX(15deg) rotateY(-5deg) scale(1) } 50% { transform: perspective(600px) rotateX(18deg) rotateY(-8deg) scale(1.02) } 100% { transform: perspective(600px) rotateX(15deg) rotateY(-5deg) scale(1) } }
@keyframes nas-lamp { 0% { box-shadow: 0 -10px 30px 8px rgba(200,160,80,.3); opacity:.9 } 50% { box-shadow: 0 -10px 40px 12px rgba(255,200,100,.5); opacity:1 } 100% { box-shadow: 0 -10px 30px 8px rgba(200,160,80,.3); opacity:.85 } }
@keyframes nas-figure { 0%,100% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-2px) rotate(1.5deg) } }
@keyframes nas-shadow { 0% { opacity:.4 } 100% { opacity:.6 } }

.scn-nemo-recounts-1702 {
  background: linear-gradient(180deg, #131b2a 0%, #0e1520 50%, #080c14 100%), radial-gradient(ellipse at 50% 80%, #1a2a3a 0%, transparent 70%);
}
.scn-nemo-recounts-1702 .bg-deep {
  position: absolute; inset: 0; background: linear-gradient(135deg, #0e1520 0%, #1a2a3a 50%, #0e1520 100%); animation: nre-bg 25s ease infinite;
}
.scn-nemo-recounts-1702 .porthole {
  position: absolute; right: 5%; top: 15%; width: 30%; height: 50%; border-radius: 50%; background: radial-gradient(circle at 30% 30%, #2a4a6a 0%, #0e1520 100%); border: 8px solid #4a5a3a; box-shadow: inset 0 0 30px rgba(0,0,0,.7), 0 0 20px rgba(0,40,80,.2); animation: nre-porthole 10s ease-in-out infinite alternate;
}
.scn-nemo-recounts-1702 .sea-outside {
  position: absolute; right: 6%; top: 16%; width: 28%; height: 48%; border-radius: 50%; background: linear-gradient(180deg, #1a3a5a 0%, #0a1a2a 100%); clip-path: inset(0 round 50%); animation: nre-sea 16s linear infinite;
}
.scn-nemo-recounts-1702 .interior-wall {
  position: absolute; left: 0; top: 0; width: 65%; height: 100%; background: linear-gradient(90deg, #1a1a22 0%, #2a2a36 50%, #1a1a22 100%); box-shadow: inset -8px 0 20px rgba(0,0,0,.5); animation: nre-wall 14s ease-in-out infinite alternate;
}
.scn-nemo-recounts-1702 .nemo-figure {
  position: absolute; bottom: 15%; left: 20%; width: 12%; height: 40%; background: linear-gradient(180deg, #0c111a 0%, #1a2028 80%, #0c111a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 35% 35%; transform-origin: bottom center; box-shadow: 4px 0 12px rgba(0,0,0,.6); animation: nre-figure 6s ease-in-out infinite;
}
.scn-nemo-recounts-1702 .chart {
  position: absolute; left: 30%; bottom: 30%; width: 18%; height: 22%; background: linear-gradient(135deg, #3a4038 0%, #2a3028 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.5); transform: perspective(400px) rotateY(-10deg); animation: nre-chart 8s ease-in-out infinite alternate;
}
.scn-nemo-recounts-1702 .glow {
  position: absolute; left: 40%; bottom: 45%; width: 8%; height: 8%; background: radial-gradient(circle, #c8a060 0%, transparent 100%); animation: nre-glow 3s ease-in-out infinite alternate;
}
@keyframes nre-bg { 0% { opacity:.75 } 50% { opacity:.9 } 100% { opacity:.8 } }
@keyframes nre-porthole { 0% { transform: scale(1) } 50% { transform: scale(1.02) } 100% { transform: scale(1) } }
@keyframes nre-sea { 0% { background-position: 0 0 } 100% { background-position: 0 50px } }
@keyframes nre-wall { 0% { opacity:.9 } 100% { opacity:1 } }
@keyframes nre-figure { 0%,100% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-3px) rotate(2deg) } }
@keyframes nre-chart { 0% { transform: perspective(400px) rotateY(-10deg) scale(1) } 100% { transform: perspective(400px) rotateY(-15deg) scale(1.02) } }
@keyframes nre-glow { 0% { opacity:.3; transform: scale(1) } 50% { opacity:.7; transform: scale(1.3) } 100% { opacity:.4; transform: scale(1.1) } }

.scn-convoy-to-vigo {
  background: linear-gradient(180deg, #1a222a 0%, #0e141a 50%, #080c12 100%), radial-gradient(ellipse at 50% 20%, #2a3a4a 0%, transparent 70%);
}
.scn-convoy-to-vigo .window {
  position: absolute; left: 10%; top: 10%; width: 80%; height: 60%; border-radius: 20px; background: radial-gradient(ellipse at 50% 50%, #2a4a6a 0%, #0e1a2a 100%); border: 6px solid #4a5a3a; box-shadow: inset 0 0 40px rgba(0,0,0,.6); animation: cv-window 12s ease-in-out infinite alternate;
}
.scn-convoy-to-vigo .sea {
  position: absolute; left: 12%; top: 12%; width: 76%; height: 56%; border-radius: 16px; background: linear-gradient(180deg, #1a3a5a 0%, #0e1a2a 100%); clip-path: inset(0 round 16px); animation: cv-sea 20s linear infinite;
}
.scn-convoy-to-vigo .ship-1 {
  position: absolute; left: 20%; bottom: 35%; width: 18%; height: 10%; background: linear-gradient(90deg, #1a1a1a 0%, #2a2a2a 100%); border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%; transform: rotate(-2deg); box-shadow: 0 2px 8px rgba(0,0,0,.4); animation: cv-ship1 14s ease-in-out infinite;
}
.scn-convoy-to-vigo .ship-2 {
  position: absolute; left: 50%; bottom: 30%; width: 15%; height: 8%; background: linear-gradient(90deg, #1a1a1a 0%, #2a2a2a 100%); border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%; transform: rotate(1deg); box-shadow: 0 2px 6px rgba(0,0,0,.3); animation: cv-ship2 18s ease-in-out infinite alternate;
}
.scn-convoy-to-vigo .ship-3 {
  position: absolute; left: 70%; bottom: 40%; width: 12%; height: 7%; background: linear-gradient(90deg, #1a1a1a 0%, #2a2a2a 100%); border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%; transform: rotate(-1deg); box-shadow: 0 2px 6px rgba(0,0,0,.3); animation: cv-ship3 22s ease-in-out infinite;
}
.scn-convoy-to-vigo .nemo-silhouette {
  position: absolute; bottom: 8%; left: 15%; width: 14%; height: 30%; background: linear-gradient(180deg, #0a0e12 0%, #14181e 100%); border-radius: 40% 40% 30% 30% / 60% 60% 35% 35%; transform-origin: bottom center; box-shadow: 2px 0 8px rgba(0,0,0,.5); animation: cv-figure 6s ease-in-out infinite;
}
.scn-convoy-to-vigo .candle {
  position: absolute; bottom: 8%; left: 38%; width: 4%; height: 15%; background: linear-gradient(180deg, #7a5a3a 0%, #3a2a1a 100%); border-radius: 10% 10% 5% 5%; animation: cv-candle 4s ease-in-out infinite alternate;
}
.scn-convoy-to-vigo .candle-glow {
  position: absolute; bottom: 18%; left: 37%; width: 10%; height: 10%; background: radial-gradient(circle, #c8a060 0%, transparent 100%); animation: cv-glow 3s ease-in-out infinite alternate;
}
@keyframes cv-window { 0% { transform: scale(1) } 100% { transform: scale(1.01) } }
@keyframes cv-sea { 0% { background-position: 0 0 } 100% { background-position: 0 40px } }
@keyframes cv-ship1 { 0%,100% { transform: rotate(-2deg) translateX(0) } 25% { transform: rotate(-3deg) translateX(5px) } 50% { transform: rotate(-1deg) translateX(10px) } 75% { transform: rotate(-3deg) translateX(5px) } }
@keyframes cv-ship2 { 0% { transform: rotate(1deg) translateX(0) } 100% { transform: rotate(2deg) translateX(-12px) } }
@keyframes cv-ship3 { 0%,100% { transform: rotate(-1deg) translateX(0) } 50% { transform: rotate(1deg) translateX(8px) } }
@keyframes cv-figure { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes cv-candle { 0% { transform: scaleY(1) } 100% { transform: scaleY(1.05) } }
@keyframes cv-glow { 0% { opacity:.4; transform: scale(1) } 50% { opacity:.8; transform: scale(1.4) } 100% { opacity:.5; transform: scale(1.2) } }

.scn-trade-dispute-delays-unloading {
  background: linear-gradient(180deg, #1e1610 0%, #120c08 50%, #080604 100%), radial-gradient(ellipse at 50% 30%, #3a2a1a 0%, transparent 70%);
}
.scn-trade-dispute-delays-unloading .bg {
  position: absolute; inset: 0; background: linear-gradient(135deg, #120c08 0%, #2a1e14 50%, #120c08 100%); animation: td-bg 8s ease infinite alternate;
}
.scn-trade-dispute-delays-unloading .clock-face {
  position: absolute; left: 50%; top: 15%; width: 30%; height: 35%; transform: translateX(-50%); background: radial-gradient(circle at 50% 50%, #3a4038 0%, #1a1e1c 100%); border-radius: 50%; border: 6px solid #4a3a2a; box-shadow: 0 0 20px rgba(0,0,0,.7); animation: td-clock 5s ease-in-out infinite alternate;
}
.scn-trade-dispute-delays-unloading .pendulum {
  position: absolute; left: 50%; top: 30%; width: 2%; height: 20%; transform-origin: top center; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 20% 20% / 30% 30% 60% 60%; animation: td-pendulum 2s ease-in-out infinite;
}
.scn-trade-dispute-delays-unloading .figure-pacing {
  position: absolute; bottom: 12%; left: 30%; width: 14%; height: 35%; background: linear-gradient(180deg, #0a0e12 0%, #14181e 100%); border-radius: 40% 40% 30% 30% / 60% 60% 35% 35%; transform-origin: bottom center; box-shadow: 4px 0 12px rgba(0,0,0,.8); animation: td-figure 3s ease-in-out infinite;
}
.scn-trade-dispute-delays-unloading .desk {
  position: absolute; bottom: 10%; left: 10%; right: 10%; height: 14%; background: linear-gradient(180deg, #5a3e28 0%, #3d2b1a 100%); border-radius: 2px; box-shadow: 0 -4px 12px rgba(0,0,0,.5); animation: td-desk 4s ease-in-out infinite alternate;
}
.scn-trade-dispute-delays-unloading .stack-coins {
  position: absolute; bottom: 24%; left: 60%; width: 8%; height: 12%; background: linear-gradient(180deg, #7a6a3a 0%, #5a4a2a 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 2px 8px rgba(0,0,0,.4); animation: td-coins 6s ease-in-out infinite;
}
.scn-trade-dispute-delays-unloading .flicker {
  position: absolute; left: 45%; bottom: 45%; width: 6%; height: 6%; background: radial-gradient(circle, #c8a060 0%, transparent 100%); animation: td-flicker 0.8s ease-in-out infinite alternate;
}
@keyframes td-bg { 0% { opacity:.85 } 100% { opacity:1 } }
@keyframes td-clock { 0% { transform: translateX(-50%) scale(1); box-shadow: 0 0 20px rgba(0,0,0,.7) } 100% { transform: translateX(-50%) scale(1.02); box-shadow: 0 0 30px rgba(0,0,0,.9) } }
@keyframes td-pendulum { 0% { transform: rotate(-20deg) } 25% { transform: rotate(0deg) } 50% { transform: rotate(20deg) } 75% { transform: rotate(0deg) } 100% { transform: rotate(-20deg) } }
@keyframes td-figure { 0% { transform: translateX(0) } 25% { transform: translateX(15px) } 50% { transform: translateX(30px) } 75% { transform: translateX(15px) } 100% { transform: translateX(0) } }
@keyframes td-desk { 0% { transform: translateY(0) } 100% { transform: translateY(-1px) } }
@keyframes td-coins { 0%,100% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-2px) rotate(3deg) } }
@keyframes td-flicker { 0% { opacity:.3; transform: scale(1) } 100% { opacity:.8; transform: scale(1.5) } }

/* explanation-infusoria – calm, moonlit underwater infusoria scene */
.scn-explanation-infusoria {
  background:
    radial-gradient(ellipse at 20% 80%, #0a2a3a 0%, transparent 60%),
    linear-gradient(180deg, #0a1620 0%, #142a3a 50%, #0f1a28 100%);
}
.scn-explanation-infusoria .water-deep {
  position: absolute; inset: 50% 0 0 0;
  background: linear-gradient(180deg, #142a3a 0%, #0a1a2a 100%);
  opacity: 0.6; animation: ei-deep 8s ease-in-out infinite alternate;
}
.scn-explanation-infusoria .water-sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #1a3a4a 0%, #2a4a5a 40%, transparent 100%);
  animation: ei-sky 12s ease-in-out infinite alternate;
}
.scn-explanation-infusoria .light-shaft {
  position: absolute; top: 10%; left: 30%; width: 40%; height: 60%;
  background: linear-gradient(180deg, rgba(180,220,255,0.15) 0%, rgba(180,220,255,0.03) 100%);
  clip-path: polygon(30% 0%, 70% 0%, 60% 100%, 40% 100%);
  animation: ei-shaft 6s ease-in-out infinite alternate;
}
.scn-explanation-infusoria .infusoria-1 {
  position: absolute; top: 30%; left: 20%; width: 4px; height: 4px;
  border-radius: 50%;
  background: radial-gradient(circle, #c0d8ff 0%, #8090b0 100%);
  box-shadow: 0 0 6px 2px rgba(192,216,255,0.4);
  animation: ei-float1 5s ease-in-out infinite;
}
.scn-explanation-infusoria .infusoria-2 {
  position: absolute; top: 55%; left: 60%; width: 6px; height: 6px;
  border-radius: 50%;
  background: radial-gradient(circle, #d0e0ff 0%, #90a0c0 100%);
  box-shadow: 0 0 8px 3px rgba(208,224,255,0.3);
  animation: ei-float2 7s ease-in-out infinite;
}
.scn-explanation-infusoria .infusoria-3 {
  position: absolute; top: 70%; left: 45%; width: 3px; height: 3px;
  border-radius: 50%;
  background: radial-gradient(circle, #b0c8e0 0%, #708090 100%);
  box-shadow: 0 0 5px 1px rgba(176,200,224,0.5);
  animation: ei-float3 4s ease-in-out infinite;
}
.scn-explanation-infusoria .infusoria-glow {
  position: absolute; top: 40%; left: 35%; width: 20px; height: 20px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(200,220,255,0.2) 0%, transparent 70%);
  filter: blur(4px);
  animation: ei-glow 3s ease-in-out infinite alternate;
}
@keyframes ei-deep {
  0% { opacity: 0.5; transform: translateY(0); }
  50% { opacity: 0.7; transform: translateY(-2px); }
  100% { opacity: 0.4; transform: translateY(3px); }
}
@keyframes ei-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes ei-shaft {
  0% { opacity: 0.3; transform: skewX(0deg); }
  50% { opacity: 0.6; transform: skewX(5deg); }
  100% { opacity: 0.2; transform: skewX(-4deg); }
}
@keyframes ei-float1 {
  0% { transform: translate(0, 0) scale(1); }
  25% { transform: translate(8px, -12px) scale(1.2); }
  50% { transform: translate(15px, -5px) scale(0.8); }
  75% { transform: translate(5px, -20px) scale(1.1); }
  100% { transform: translate(0, 0) scale(1); }
}
@keyframes ei-float2 {
  0% { transform: translate(0, 0) scale(1); }
  33% { transform: translate(-10px, 8px) scale(1.3); }
  66% { transform: translate(5px, 15px) scale(0.7); }
  100% { transform: translate(0, 0) scale(1); }
}
@keyframes ei-float3 {
  0% { transform: translate(0, 0); }
  50% { transform: translate(12px, -6px); }
  100% { transform: translate(0, 0); }
}
@keyframes ei-glow {
  0% { opacity: 0.3; transform: scale(1); }
  50% { opacity: 0.7; transform: scale(1.5); }
  100% { opacity: 0.2; transform: scale(0.8); }
}

/* conseil-mulls – funny, moonlit, Conseil deep in thought */
.scn-conseil-mulls {
  background:
    radial-gradient(ellipse at 50% 20%, #2a3a5a 0%, transparent 60%),
    linear-gradient(180deg, #0a0a1a 0%, #1a1a3a 50%, #0a0a1a 100%);
}
.scn-conseil-mulls .bg-night {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(20,20,40,0.8) 0%, transparent 40%);
  animation: cm-night 18s ease-in-out infinite alternate;
}
.scn-conseil-mulls .figure-conseil {
  position: absolute; bottom: 15%; left: 50%; width: 30px; height: 50px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 45% 45% 40% 40% / 55% 55% 40% 40%;
  box-shadow: inset -2px 2px 4px rgba(255,255,255,0.1);
  animation: cm-conseil 3s ease-in-out infinite;
}
.scn-conseil-mulls .thought-bubble {
  position: absolute; top: 12%; left: 30%; width: 60px; height: 50px;
  border-radius: 50%;
  background: radial-gradient(circle at 40% 40%, rgba(180,200,255,0.2) 0%, rgba(180,200,255,0.05) 100%);
  box-shadow: 0 0 20px 4px rgba(180,200,255,0.15);
  animation: cm-bubble 8s ease-in-out infinite;
}
.scn-conseil-mulls .calc-dot-1 {
  position: absolute; top: 20%; left: 35%; width: 6px; height: 6px;
  border-radius: 50%;
  background: #80a0c0;
  box-shadow: 0 0 4px 1px rgba(128,160,192,0.5);
  animation: cm-calc1 2s ease-in-out infinite alternate;
}
.scn-conseil-mulls .calc-dot-2 {
  position: absolute; top: 15%; left: 55%; width: 5px; height: 5px;
  border-radius: 50%;
  background: #90b0d0;
  box-shadow: 0 0 3px 1px rgba(144,176,208,0.4);
  animation: cm-calc2 2.4s ease-in-out infinite alternate;
}
.scn-conseil-mulls .calc-dot-3 {
  position: absolute; top: 25%; left: 60%; width: 7px; height: 7px;
  border-radius: 50%;
  background: #70a0c0;
  box-shadow: 0 0 6px 2px rgba(112,160,192,0.3);
  animation: cm-calc3 1.8s ease-in-out infinite alternate;
}
.scn-conseil-mulls .calc-rod {
  position: absolute; top: 18%; left: 50%; width: 30px; height: 3px;
  border-radius: 2px;
  background: linear-gradient(90deg, #a0b8d0, #7090b0, #a0b8d0);
  animation: cm-rod 4s ease-in-out infinite alternate;
}
@keyframes cm-night {
  0% { opacity: 0.6; }
  50% { opacity: 0.9; }
  100% { opacity: 0.5; }
}
@keyframes cm-conseil {
  0% { transform: translateX(-50%) translateY(0) rotate(-2deg); }
  30% { transform: translateX(-50%) translateY(-2px) rotate(3deg); }
  60% { transform: translateX(-50%) translateY(0) rotate(-1deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(-2deg); }
}
@keyframes cm-bubble {
  0% { transform: scale(1) translate(0, 0); }
  50% { transform: scale(1.1) translate(5px, -3px); }
  100% { transform: scale(1) translate(0, 0); }
}
@keyframes cm-calc1 {
  0% { opacity: 0.4; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.5); }
  100% { opacity: 0.4; transform: scale(0.8); }
}
@keyframes cm-calc2 {
  0% { opacity: 0.3; transform: translateY(0); }
  50% { opacity: 1; transform: translateY(-5px); }
  100% { opacity: 0.3; transform: translateY(0); }
}
@keyframes cm-calc3 {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(180deg); }
  100% { transform: rotate(360deg); }
}
@keyframes cm-rod {
  0% { transform: rotate(-10deg); }
  50% { transform: rotate(10deg); }
  100% { transform: rotate(-5deg); }
}

/* ceylon-sight – calm, sunlit, mountains and sea */
.scn-ceylon-sight {
  background:
    radial-gradient(ellipse at 50% 0%, #f8e0b0 0%, transparent 50%),
    linear-gradient(180deg, #7ab8d0 0%, #a0d0e0 30%, #c0e0f0 60%, #e0f0ff 100%);
}
.scn-ceylon-sight .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #b0d8e8 0%, #c8e8f8 50%, transparent 100%);
  animation: cs-sky 15s ease-in-out infinite alternate;
}
.scn-ceylon-sight .sun {
  position: absolute; top: 10%; left: 70%; width: 30px; height: 30px;
  border-radius: 50%;
  background: radial-gradient(circle, #fff0b0 0%, #ffd880 40%, transparent 70%);
  box-shadow: 0 0 30px 10px rgba(255,216,128,0.5);
  animation: cs-sun 8s ease-in-out infinite alternate;
}
.scn-ceylon-sight .mountains-far {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #5a7a5a 0%, #4a6a4a 100%);
  border-radius: 60% 40% 0 0 / 80% 70% 0 0;
  transform: scaleX(1.1);
  box-shadow: inset 0 4px 10px rgba(0,0,0,0.3);
  animation: cs-far 20s ease-in-out infinite alternate;
}
.scn-ceylon-sight .mountains-near {
  position: absolute; bottom: 25%; left: 10%; right: 10%; height: 15%;
  background: linear-gradient(180deg, #4a6a3a 0%, #3a5a2a 100%);
  border-radius: 50% 50% 0 0 / 90% 80% 0 0;
  clip-path: polygon(10% 100%, 20% 20%, 40% 40%, 60% 10%, 80% 30%, 90% 100%);
  box-shadow: inset 0 6px 12px rgba(0,0,0,0.4);
  animation: cs-near 14s ease-in-out infinite alternate;
}
.scn-ceylon-sight .sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2080a0 0%, #106080 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.3);
  animation: cs-sea 6s ease-in-out infinite alternate;
}
.scn-ceylon-sight .ship {
  position: absolute; bottom: 25%; left: 20%; width: 50px; height: 10px;
  background: linear-gradient(90deg, #2a4a3a, #1a3a2a);
  border-radius: 30% 30% 10% 10%;
  transform: rotate(-5deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation: cs-ship 10s ease-in-out infinite alternate;
}
.scn-ceylon-sight .cloud {
  position: absolute; top: 15%; left: 30%; width: 80px; height: 20px;
  background: radial-gradient(ellipse at 50% 50%, rgba(255,255,255,0.6) 0%, rgba(255,255,255,0.1) 100%);
  filter: blur(5px);
  border-radius: 50%;
  animation: cs-cloud 40s linear infinite;
}
@keyframes cs-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes cs-sun {
  0% { transform: scale(1); opacity: 0.9; }
  50% { transform: scale(1.1); opacity: 1; }
  100% { transform: scale(0.95); opacity: 0.85; }
}
@keyframes cs-far {
  0% { transform: scaleX(1.1) translateY(0); }
  50% { transform: scaleX(1.1) translateY(-3px); }
  100% { transform: scaleX(1.1) translateY(2px); }
}
@keyframes cs-near {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes cs-sea {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes cs-ship {
  0% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(3deg) translateY(-3px); }
  100% { transform: rotate(-5deg) translateY(0); }
}
@keyframes cs-cloud {
  0% { transform: translateX(-100px); }
  100% { transform: translateX(120vw); }
}

/* ceylon-book – calm, bright-interior library scene */
.scn-ceylon-book {
  background:
    radial-gradient(ellipse at 50% 40%, #d8b080 0%, transparent 50%),
    linear-gradient(180deg, #c8a060 0%, #b08050 40%, #907040 100%);
}
.scn-ceylon-book .wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #d8c0a0 0%, #bfa080 60%, #a08060 100%);
  animation: cb-wall 20s ease-in-out infinite alternate;
}
.scn-ceylon-book .bookshelf-left {
  position: absolute; top: 10%; left: 5%; width: 10%; height: 70%;
  background: linear-gradient(90deg, #5a3a20, #7a5a3a, #5a3a20);
  border-radius: 4px;
  box-shadow: inset -3px 0 6px rgba(0,0,0,0.5);
  animation: cb-shelf 12s ease-in-out infinite alternate;
}
.scn-ceylon-book .bookshelf-right {
  position: absolute; top: 10%; right: 5%; width: 10%; height: 70%;
  background: linear-gradient(90deg, #5a3a20, #7a5a3a, #5a3a20);
  border-radius: 4px;
  box-shadow: inset 3px 0 6px rgba(0,0,0,0.5);
  animation: cb-shelf 12s ease-in-out infinite alternate-reverse;
}
.scn-ceylon-book .table {
  position: absolute; bottom: 10%; left: 25%; width: 50%; height: 8%;
  background: linear-gradient(180deg, #6a4a2a, #5a3a1a);
  border-radius: 6px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
}
.scn-ceylon-book .lamp {
  position: absolute; bottom: 28%; left: 32%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #d0b080, #b09060);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 -4px 12px 2px rgba(255,200,100,0.4);
  animation: cb-lamp 4s ease-in-out infinite alternate;
}
.scn-ceylon-book .figure-reader {
  position: absolute; bottom: 12%; left: 38%; width: 28px; height: 40px;
  background: linear-gradient(180deg, #3a2a1a, #2a1a0a);
  border-radius: 45% 45% 40% 40% / 55% 55% 40% 40%;
  transform-origin: bottom center;
  animation: cb-figure 3s ease-in-out infinite;
}
.scn-ceylon-book .book-open {
  position: absolute; bottom: 16%; left: 42%; width: 30px; height: 20px;
  background: linear-gradient(90deg, #d0b080, #c0a070, #d0b080);
  border-radius: 4px;
  transform: rotate(-5deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: cb-book 6s ease-in-out infinite alternate;
}
@keyframes cb-wall {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes cb-shelf {
  0% { transform: scaleY(1) translateY(0); }
  50% { transform: scaleY(1.02) translateY(-1px); }
  100% { transform: scaleY(1) translateY(0); }
}
@keyframes cb-lamp {
  0% { opacity: 0.8; box-shadow: 0 -4px 12px 2px rgba(255,200,100,0.4); }
  50% { opacity: 1; box-shadow: 0 -6px 20px 6px rgba(255,200,100,0.6); }
  100% { opacity: 0.9; box-shadow: 0 -4px 14px 3px rgba(255,200,100,0.4); }
}
@keyframes cb-figure {
  0% { transform: translateY(0) rotate(-2deg); }
  30% { transform: translateY(-1px) rotate(2deg); }
  60% { transform: translateY(0) rotate(-1deg); }
  100% { transform: translateY(0) rotate(-2deg); }
}
@keyframes cb-book {
  0% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(-3deg) translateY(-2px); }
  100% { transform: rotate(-5deg) translateY(0); }
}

.scn-ned-presses-for-escape {
  background: linear-gradient(135deg, #f9e4b0 0%, #d4a86a 40%, #b88850 100%),
              radial-gradient(ellipse at 30% 70%, rgba(255,215,140,0.3) 0%, transparent 60%);
  overflow: hidden;
}
.scn-ned-presses-for-escape .interior-wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #d4a86a 0%, #c09050 100%); box-shadow: inset 0 0 80px rgba(0,0,0,0.2); animation: npf-wall 12s ease-in-out infinite alternate;
}
.scn-ned-presses-for-escape .porthole-ring {
  position: absolute; top: 20%; left: 50%; width: 140px; height: 140px; transform: translate(-50%, -20%); background: radial-gradient(circle at 50% 50%, #5a4a3a 0%, #3a2a1a 70%, #2a1a0a 100%); border-radius: 50%; box-shadow: 0 0 0 8px #7a6a5a, 0 0 0 12px #5a4a3a; animation: npf-ring 6s ease-in-out infinite;
}
.scn-ned-presses-for-escape .porthole-glass {
  position: absolute; top: 20%; left: 50%; width: 100px; height: 100px; transform: translate(-50%, -20%); background: radial-gradient(circle at 40% 35%, rgba(200,230,255,0.6) 0%, rgba(120,180,230,0.3) 60%, transparent 100%); border-radius: 50%; box-shadow: inset 0 0 20px rgba(255,255,200,0.3); animation: npf-glass 8s ease-in-out infinite alternate;
}
.scn-ned-presses-for-escape .hand-left {
  position: absolute; bottom: 25%; left: 36%; width: 16px; height: 40px; background: linear-gradient(180deg, #2a1a0a 0%, #4a3a2a 50%, #2a1a0a 100%); border-radius: 50% 30% 30% 50% / 60% 50% 50% 60%; transform-origin: bottom center; animation: npf-press-l 4s ease-in-out infinite;
}
.scn-ned-presses-for-escape .hand-right {
  position: absolute; bottom: 25%; right: 36%; width: 16px; height: 40px; background: linear-gradient(180deg, #2a1a0a 0%, #4a3a2a 50%, #2a1a0a 100%); border-radius: 30% 50% 50% 30% / 50% 60% 60% 50%; transform-origin: bottom center; animation: npf-press-r 4s ease-in-out infinite;
}
.scn-ned-presses-for-escape .figure-body {
  position: absolute; bottom: 12%; left: 50%; width: 60px; height: 120px; transform: translateX(-50%); background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 40% 40% 50% 50% / 60% 60% 40% 40%; box-shadow: 0 0 20px rgba(0,0,0,0.5); animation: npf-body 6s ease-in-out infinite;
}
.scn-ned-presses-for-escape .sunburst {
  position: absolute; top: 0; left: 20%; width: 300%; height: 300%; background: radial-gradient(ellipse at 30% 0%, rgba(255,230,150,0.15) 0%, transparent 40%); animation: npf-sun 25s linear infinite;
}
.scn-ned-presses-for-escape .shadow-stripe {
  position: absolute; top: 30%; left: 10%; width: 80%; height: 10%; background: linear-gradient(90deg, transparent 0%, rgba(0,0,0,0.15) 30%, transparent 60%); animation: npf-stripe 10s ease-in-out infinite alternate;
}
@keyframes npf-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes npf-ring { 0%,100% { transform: translate(-50%, -20%) scale(1); } 50% { transform: translate(-50%, -20%) scale(1.02); } }
@keyframes npf-glass { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes npf-press-l { 0% { transform: translateX(0) translateY(0) rotate(2deg); } 50% { transform: translateX(4px) translateY(-3px) rotate(-3deg); } 100% { transform: translateX(0) translateY(-1px) rotate(1deg); } }
@keyframes npf-press-r { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 50% { transform: translateX(-4px) translateY(-3px) rotate(3deg); } 100% { transform: translateX(0) translateY(-1px) rotate(-1deg); } }
@keyframes npf-body { 0%,100% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(1.02); } }
@keyframes npf-sun { 0% { transform: translate(-50%, -50%) rotate(0deg); } 100% { transform: translate(-50%, -50%) rotate(360deg); } }
@keyframes npf-stripe { 0% { transform: translateX(0) scaleX(1); } 100% { transform: translateX(20%) scaleX(0.8); } }

.scn-aronnax-deflects {
  background: linear-gradient(135deg, #f7e8d0 0%, #dfc29a 50%, #c4a47a 100%),
              radial-gradient(ellipse at 60% 80%, rgba(255,240,210,0.4) 0%, transparent 60%);
}
.scn-aronnax-deflects .bg-wood {
  position: absolute; inset: 0; background: linear-gradient(180deg, #b08a62 0%, #8a6a4a 100%); box-shadow: inset 0 0 60px rgba(0,0,0,0.15); animation: ad-wood 15s ease-in-out infinite alternate;
}
.scn-aronnax-deflects .desk-top {
  position: absolute; bottom: 10%; left: 10%; width: 80%; height: 30%; background: linear-gradient(180deg, #c49a6e 0%, #a07040 100%); border-radius: 4px 4px 0 0; box-shadow: 0 4px 12px rgba(0,0,0,0.3); animation: ad-desk 12s ease-in-out infinite;
}
.scn-aronnax-deflects .book-closed {
  position: absolute; bottom: 20%; left: 25%; width: 60px; height: 20px; background: linear-gradient(90deg, #5a3a2a 0%, #7a5a3a 50%, #5a3a2a 100%); border-radius: 2px; box-shadow: 2px 2px 6px rgba(0,0,0,0.4); transform: rotate(-8deg); animation: ad-book 8s ease-in-out infinite alternate;
}
.scn-aronnax-deflects .globe-stand {
  position: absolute; bottom: 15%; right: 20%; width: 8px; height: 60px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 4px; transform-origin: bottom center; animation: ad-stand 10s ease-in-out infinite;
}
.scn-aronnax-deflects .globe-sphere {
  position: absolute; bottom: 38%; right: 20%; width: 50px; height: 50px; transform: translateX(-50%); background: radial-gradient(circle at 40% 35%, #6a9ac0 0%, #3a6a8a 70%, #2a4a6a 100%); border-radius: 50%; box-shadow: 0 0 0 4px #4a3a2a, 0 0 20px rgba(0,0,0,0.3); animation: ad-globe 20s ease-in-out infinite;
}
.scn-aronnax-deflects .sunbeam-1 {
  position: absolute; top: -10%; left: 30%; width: 120%; height: 200%; background: linear-gradient(135deg, rgba(255,240,180,0.12) 0%, transparent 40%, rgba(255,240,180,0.08) 70%, transparent 100%); transform: rotate(20deg); animation: ad-beam1 25s linear infinite alternate;
}
.scn-aronnax-deflects .sunbeam-2 {
  position: absolute; top: 0; right: 20%; width: 80%; height: 150%; background: linear-gradient(225deg, rgba(255,240,180,0.1) 0%, transparent 50%); transform: rotate(-15deg); animation: ad-beam2 30s linear infinite alternate reverse;
}
.scn-aronnax-deflects .arm-calm {
  position: absolute; bottom: 18%; left: 40%; width: 14px; height: 50px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 40% 20% 20% 40% / 60% 30% 30% 60%; transform-origin: bottom center; transform: rotate(-30deg); animation: ad-arm 6s ease-in-out infinite;
}
@keyframes ad-wood { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes ad-desk { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes ad-book { 0% { transform: translate(0,0) rotate(-8deg) scale(1); } 50% { transform: translate(2px,-1px) rotate(-9deg) scale(1.01); } 100% { transform: translate(-1px,1px) rotate(-7deg) scale(1); } }
@keyframes ad-stand { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(2deg); } }
@keyframes ad-globe { 0% { transform: translateX(-50%) rotate(0deg); } 100% { transform: translateX(-50%) rotate(360deg); } }
@keyframes ad-beam1 { 0% { transform: rotate(20deg) translateX(-10%); } 100% { transform: rotate(20deg) translateX(10%); } }
@keyframes ad-beam2 { 0% { transform: rotate(-15deg) translateX(-5%); } 100% { transform: rotate(-15deg) translateX(5%); } }
@keyframes ad-arm { 0% { transform: rotate(-30deg); } 50% { transform: rotate(-35deg); } 100% { transform: rotate(-28deg); } }

.scn-gulf-of-oman-cruising {
  background: linear-gradient(180deg, #0a2a3a 0%, #0e3a4a 30%, #1a5a6a 60%, #2a7a8a 100%),
              radial-gradient(ellipse at 50% 70%, rgba(100,200,230,0.2) 0%, transparent 60%);
}
.scn-gulf-of-oman-cruising .water-depth {
  position: absolute; inset: 0; background: linear-gradient(180deg, transparent 0%, rgba(10,40,60,0.6) 100%); animation: goc-depth 15s ease-in-out infinite alternate;
}
.scn-gulf-of-oman-cruising .seafloor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%; background: linear-gradient(180deg, #3a5a3a 0%, #1a3a1a 100%); border-radius: 40% 60% 0 0 / 60% 70% 0 0; box-shadow: inset 0 4px 20px rgba(0,0,0,0.4); animation: goc-floor 20s ease-in-out infinite alternate;
}
.scn-gulf-of-oman-cruising .coral-left {
  position: absolute; bottom: 20%; left: 8%; width: 40px; height: 50px; background: radial-gradient(ellipse at 50% 80%, #c8553d 0%, #5e1a1d 70%, #2a0a0a 100%); border-radius: 40% 50% 30% 40% / 60% 70% 30% 40%; transform: rotate(10deg); animation: goc-coral1 6s ease-in-out infinite alternate;
}
.scn-gulf-of-oman-cruising .coral-right {
  position: absolute; bottom: 18%; right: 12%; width: 50px; height: 60px; background: radial-gradient(ellipse at 50% 80%, #a0461a 0%, #5e1a1d 60%, #2a0a0a 100%); border-radius: 50% 40% 40% 50% / 70% 60% 40% 50%; transform: rotate(-15deg); animation: goc-coral2 8s ease-in-out infinite alternate;
}
.scn-gulf-of-oman-cruising .fish-school {
  position: absolute; top: 40%; left: 0; width: 100%; height: 20px; background: transparent; display: flex; gap: 20px; padding-left: 20px; animation: goc-fish 35s linear infinite;
}
.scn-gulf-of-oman-cruising .fish-school::before {
  content: ''; display: block; width: 12px; height: 8px; background: radial-gradient(ellipse at 40% 50%, #b8d8e8 0%, #6a9ac0 100%); border-radius: 50%; box-shadow: -4px 0 0 2px #4a7a9a; animation: goc-fish-bob 4s ease-in-out infinite;
}
.scn-gulf-of-oman-cruising .submarine-hull {
  position: absolute; top: 30%; left: 50%; width: 180px; height: 40px; transform: translateX(-50%); background: linear-gradient(180deg, #4a6a7a 0%, #2a4a5a 50%, #1a2a3a 100%); border-radius: 50% / 80%; box-shadow: 0 0 20px rgba(0,0,0,0.5), inset 0 2px 8px rgba(200,230,255,0.1); animation: goc-sub 12s ease-in-out infinite alternate;
}
.scn-gulf-of-oman-cruising .propeller-glow {
  position: absolute; top: 28%; right: 15%; width: 20px; height: 20px; background: radial-gradient(circle, rgba(255,230,150,0.6) 0%, transparent 70%); border-radius: 50%; animation: goc-prop 3s ease-in-out infinite;
}
.scn-gulf-of-oman-cruising .light-shafts {
  position: absolute; top: 0; left: 0; width: 100%; height: 100%; background: linear-gradient(90deg, transparent 20%, rgba(255,255,200,0.05) 40%, transparent 60%, rgba(255,255,200,0.03) 80%, transparent 100%); animation: goc-shafts 30s linear infinite alternate;
}
@keyframes goc-depth { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes goc-floor { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes goc-coral1 { 0%,100% { transform: rotate(10deg) scale(1); } 50% { transform: rotate(12deg) scale(1.02); } }
@keyframes goc-coral2 { 0%,100% { transform: rotate(-15deg) scale(1); } 50% { transform: rotate(-13deg) scale(1.01); } }
@keyframes goc-fish { 0% { transform: translateX(0); } 100% { transform: translateX(-100%); } }
@keyframes goc-fish-bob { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes goc-sub { 0%,100% { transform: translateX(-50%) translateY(0) rotate(-1deg); } 50% { transform: translateX(-50%) translateY(-3px) rotate(1deg); } }
@keyframes goc-prop { 0%,100% { opacity: 0.6; transform: scale(1); } 50% { opacity: 1; transform: scale(1.3); } }
@keyframes goc-shafts { 0% { opacity: 0.3; transform: translateX(-5%); } 100% { opacity: 0.5; transform: translateX(5%); } }

.scn-arabian-coasts {
  background: linear-gradient(180deg, #f5e6c8 0%, #e0c8a0 40%, #bfa67a 70%, #8a7a5a 100%),
              radial-gradient(ellipse at 70% 20%, rgba(255,220,160,0.3) 0%, transparent 60%);
}
.scn-arabian-coasts .sky-grad {
  position: absolute; top: 0; left: 0; right: 0; height: 55%; background: linear-gradient(180deg, #a0c8e0 0%, #d0e0f0 40%, #f5e6c8 100%); animation: ac-sky 18s ease-in-out infinite alternate;
}
.scn-arabian-coasts .sea-surface {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%; background: linear-gradient(180deg, #3a6a8a 0%, #1a4a6a 50%, #0a2a3a 100%); border-top: 2px solid rgba(255,255,200,0.2); animation: ac-sea 14s ease-in-out infinite alternate;
}
.scn-arabian-coasts .mountain-range {
  position: absolute; bottom: 40%; left: 5%; right: 5%; height: 18%; background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%); border-radius: 60% 70% 0 0 / 100% 80% 0 0; clip-path: polygon(0% 100%, 15% 70%, 30% 85%, 50% 60%, 70% 80%, 85% 65%, 100% 90%, 100% 100%); animation: ac-mtn 22s ease-in-out infinite alternate;
}
.scn-arabian-coasts .ruins-column {
  position: absolute; bottom: 38%; left: 25%; width: 12px; height: 60px; background: linear-gradient(180deg, #b89878 0%, #8a6a4a 100%); border-radius: 4px 4px 0 0; box-shadow: 4px 0 0 #6a4a2a, -4px 0 0 #6a4a2a; transform: rotate(2deg); animation: ac-col 10s ease-in-out infinite;
}
.scn-arabian-coasts .ruins-capital {
  position: absolute; bottom: 70%; left: 25%; width: 20px; height: 8px; transform: translateX(-4px); background: linear-gradient(180deg, #c8a880 0%, #a08060 100%); border-radius: 2px; box-shadow: 4px 0 0 #6a4a2a, -4px 0 0 #6a4a2a; animation: ac-cap 10s ease-in-out infinite alternate;
}
.scn-arabian-coasts .ship-hull {
  position: absolute; bottom: 25%; right: 15%; width: 100px; height: 30px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 60% 60% 20% 20% / 80% 80% 40% 40%; box-shadow: 0 4px 10px rgba(0,0,0,0.4); animation: ac-hull 12s ease-in-out infinite alternate;
}
.scn-arabian-coasts .ship-sail {
  position: absolute; bottom: 40%; right: 18%; width: 8px; height: 50px; background: linear-gradient(180deg, #f5e6c8 0%, #d0b890 100%); clip-path: polygon(50% 0%, 100% 30%, 80% 100%, 50% 80%, 20% 100%, 0% 30%); animation: ac-sail 15s ease-in-out infinite alternate;
}
.scn-arabian-coasts .sun-reflection {
  position: absolute; top: 30%; left: 60%; width: 30px; height: 30px; background: radial-gradient(circle, rgba(255,240,180,0.6) 0%, transparent 70%); border-radius: 50%; box-shadow: 0 0 40px rgba(255,240,180,0.3); animation: ac-sun 25s linear infinite alternate;
}
@keyframes ac-sky { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(0.98); } }
@keyframes ac-sea { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
@keyframes ac-mtn { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes ac-col { 0% { transform: rotate(2deg) scaleY(1); } 50% { transform: rotate(1deg) scaleY(1.01); } 100% { transform: rotate(3deg) scaleY(1); } }
@keyframes ac-cap { 0% { transform: translateX(-4px) rotate(0deg); } 100% { transform: translateX(-4px) rotate(2deg); } }
@keyframes ac-hull { 0%,100% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-2px) rotate(1deg); } }
@keyframes ac-sail { 0%,100% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } }
@keyframes ac-sun { 0% { opacity: 0.7; transform: scale(1); } 50% { opacity: 1; transform: scale(1.1); } 100% { opacity: 0.8; transform: scale(1.05); } }

.scn-papuan-distrust {
  background: linear-gradient(180deg, #f9e4c0 0%, #b5d8e8 40%, #6a9ab8 70%, #2c5a7a 100%), radial-gradient(ellipse at 50% 100%, #c8a060 0%, transparent 60%);
}
.scn-papuan-distrust .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #fadfad 0%, #b0d0e8 100%);
  animation: ppd-sky 12s ease-in-out infinite alternate;
}
.scn-papuan-distrust .sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #4a7a9a 0%, #1a3a5a 100%);
  box-shadow: inset 0 20px 30px rgba(0,0,0,0.3);
  animation: ppd-sea 6s ease-in-out infinite alternate;
}
.scn-papuan-distrust .sun {
  position: absolute; top: 10%; left: 70%; width: 50px; height: 50px;
  background: radial-gradient(circle, #fff5d0 0%, #f0c060 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 80px 30px rgba(240,192,96,0.6);
  animation: ppd-sun 8s ease-in-out infinite alternate;
}
.scn-papuan-distrust .nautilus {
  position: absolute; bottom: 40%; left: 20%; width: 180px; height: 30px;
  background: linear-gradient(180deg, #5a5a5a 0%, #2a2a2a 100%);
  border-radius: 50% / 60% 60% 40% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: ppd-nau 10s ease-in-out infinite alternate;
}
.scn-papuan-distrust .canoe {
  position: absolute; bottom: 45%; left: 12%; width: 100px; height: 12px;
  background: linear-gradient(90deg, #8a6040 0%, #5a3a2a 100%);
  border-radius: 0 0 50% 50%;
  box-shadow: 0 -2px 4px rgba(0,0,0,0.3);
  animation: ppd-canoe 3s ease-in-out infinite alternate;
}
.scn-papuan-distrust .figure-ppd {
  position: absolute; bottom: 46%; width: 10px; height: 22px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ppd-fig 4s ease-in-out infinite alternate;
}
.scn-papuan-distrust .fig1 { left: 20%; }
.scn-papuan-distrust .fig2 { left: 28%; animation-delay: 0.5s; }
.scn-papuan-distrust .palm {
  position: absolute; bottom: 48%; left: 5%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%);
  border-radius: 0 0 20% 20%;
  transform-origin: bottom center;
  animation: ppd-palm 7s ease-in-out infinite alternate;
}

@keyframes ppd-sky    { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes ppd-sea    { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(2px); } }
@keyframes ppd-sun    { 0% { opacity:0.8; transform: scale(0.95); } 50% { opacity:1; transform: scale(1.05); } 100% { opacity:0.9; transform: scale(1); } }
@keyframes ppd-nau    { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-2px) scaleX(1.02); } 100% { transform: translateY(0) scaleX(0.98); } }
@keyframes ppd-canoe  { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes ppd-fig    { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-1px) rotate(1deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes ppd-palm   { 0% { transform: rotate(-3deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-3deg); } }

.scn-need-noise {
  background: linear-gradient(180deg, #fbe8d0 0%, #c8d8e0 40%, #7a9aaa 70%, #3a5a6a 100%), radial-gradient(ellipse at 50% 30%, #f0c080 0%, transparent 60%);
}
.scn-need-noise .sky-nns {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #fde0c0 0%, #b8d4e0 100%);
  animation: nns-sky 15s ease-in-out infinite alternate;
}
.scn-need-noise .ground-nns {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #8a7a5a 0%, #5a4a3a 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.4);
}
.scn-need-noise .tree-nns {
  position: absolute; bottom: 38%; right: 20%; width: 20px; height: 90px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 20% 20%;
  transform-origin: bottom center;
  animation: nns-tree 10s ease-in-out infinite alternate;
}
.scn-need-noise .gunner {
  position: absolute; bottom: 35%; left: 30%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: nns-gunner 3s ease-in-out infinite alternate;
}
.scn-need-noise .flash {
  position: absolute; bottom: 40%; left: 38%; width: 40px; height: 40px;
  background: radial-gradient(circle, #fff8e0 0%, #ffe080 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px rgba(255,224,128,0.8);
  animation: nns-flash 1s ease-in-out infinite alternate;
}
.scn-need-noise .islander {
  position: absolute; bottom: 35%; right: 35%; width: 18px; height: 36px;
  background: linear-gradient(180deg, #4a3a2a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: nns-islander 5s ease-in-out infinite alternate;
}
.scn-need-noise .rock {
  position: absolute; bottom: 37%; right: 15%; width: 30px; height: 20px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 40% 60% 50% 50%;
  animation: nns-rock 8s ease-in-out infinite alternate;
}

@keyframes nns-sky      { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes nns-tree     { 0% { transform: rotate(-3deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-3deg); } }
@keyframes nns-gunner   { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes nns-flash    { 0% { opacity:0; transform: scale(0.5); } 30% { opacity:1; transform: scale(1.2); } 70% { opacity:0.8; transform: scale(1); } 100% { opacity:0; transform: scale(0.6); } }
@keyframes nns-islander { 0% { transform: translateX(0); } 50% { transform: translateX(-5px); } 100% { transform: translateX(0); } }
@keyframes nns-rock     { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.05); } 100% { transform: scaleY(1); } }

.scn-arrows-rain {
  background: linear-gradient(180deg, #fce8c8 0%, #b5d0e0 40%, #6a8aaa 70%, #2a4a6a 100%), radial-gradient(ellipse at 50% 40%, #d0a860 0%, transparent 70%);
}
.scn-arrows-rain .sky-arr {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #fde0b0 0%, #c0d0e0 100%);
  animation: arr-sky 14s ease-in-out infinite alternate;
}
.scn-arrows-rain .sea-arr {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #4a6a8a 0%, #1a2a4a 100%);
  box-shadow: inset 0 15px 25px rgba(0,0,0,0.4);
  animation: arr-sea 5s ease-in-out infinite alternate;
}
.scn-arrows-rain .hull-arr {
  position: absolute; bottom: 40%; left: 10%; width: 200px; height: 50px;
  background: linear-gradient(180deg, #5a5a5a 0%, #2a2a2a 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.5);
  animation: arr-hull 8s ease-in-out infinite alternate;
}
.scn-arrows-rain .conseil {
  position: absolute; bottom: 42%; left: 25%; width: 14px; height: 30px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: arr-conseil 3s ease-in-out infinite alternate;
}
.scn-arrows-rain .arrow {
  position: absolute; bottom: 60%; width: 4px; height: 24px;
  background: linear-gradient(180deg, #8a7040 0%, #4a3020 100%);
  border-radius: 0 0 20% 20%;
  transform-origin: bottom center;
  animation: arr-fall 2s ease-in infinite;
}
.scn-arrows-rain .arr1 { left: 30%; height: 20px; animation-delay: 0s; }
.scn-arrows-rain .arr2 { left: 40%; height: 28px; animation-delay: 0.4s; transform: rotate(15deg); }
.scn-arrows-rain .arr3 { left: 50%; height: 22px; animation-delay: 0.8s; transform: rotate(-10deg); }
.scn-arrows-rain .arr4 { left: 35%; height: 26px; animation-delay: 1.2s; transform: rotate(5deg); }

@keyframes arr-sky     { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes arr-sea     { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(1px); } }
@keyframes arr-hull    { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-1px) scaleX(1.01); } 100% { transform: translateY(0) scaleX(0.99); } }
@keyframes arr-conseil { 0% { transform: translateY(0) rotate(-3deg); } 50% { transform: translateY(-1px) rotate(2deg); } 100% { transform: translateY(0) rotate(-3deg); } }
@keyframes arr-fall    { 0% { transform: translateY(0) rotate(0deg); opacity:1; } 50% { transform: translateY(30px) rotate(20deg); opacity:0.7; } 100% { transform: translateY(60px) rotate(40deg); opacity:0; } }

.scn-nemo-at-calculations {
  background: linear-gradient(135deg, #f5e6c8 0%, #d4c4a0 40%, #a09070 100%), radial-gradient(ellipse at 30% 50%, #e8d8b0 0%, transparent 70%);
}
.scn-nemo-at-calculations .wall-ncl {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #d8c8a8 0%, #b8a888 100%);
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.1);
}
.scn-nemo-at-calculations .floor-ncl {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #8a7050 0%, #5a4a30 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.3);
}
.scn-nemo-at-calculations .desk-ncl {
  position: absolute; bottom: 20%; left: 20%; width: 60%; height: 12%;
  background: linear-gradient(180deg, #6a5a3a 0%, #3a2a1a 100%);
  border-radius: 4% 4% 2% 2%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.4);
  animation: ncl-desk 12s ease-in-out infinite alternate;
}
.scn-nemo-at-calculations .lamp-ncl {
  position: absolute; bottom: 32%; left: 30%; width: 30px; height: 40px;
  background: radial-gradient(ellipse at 50% 100%, #ffe080 0%, #c8a050 60%, transparent 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 40px 15px rgba(255,224,128,0.6);
  animation: ncl-lamp 4s ease-in-out infinite alternate;
}
.scn-nemo-at-calculations .paper-ncl {
  position: absolute; bottom: 22%; left: 35%; width: 80px; height: 10px;
  background: linear-gradient(180deg, #fff8e0 0%, #e8d8b0 100%);
  border-radius: 10% 10% 5% 5%;
  transform: rotate(-5deg);
  animation: ncl-paper 6s ease-in-out infinite alternate;
}
.scn-nemo-at-calculations .nemo-silhouette {
  position: absolute; bottom: 25%; left: 22%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ncl-nemo 5s ease-in-out infinite alternate;
}
.scn-nemo-at-calculations .hand-ncl {
  position: absolute; bottom: 26%; left: 38%; width: 8px; height: 14px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: ncl-hand 2s ease-in-out infinite alternate;
}

@keyframes ncl-desk   { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes ncl-lamp   { 0% { opacity:0.9; box-shadow: 0 0 30px 10px rgba(255,224,128,0.5); } 50% { opacity:1; box-shadow: 0 0 50px 20px rgba(255,224,128,0.8); } 100% { opacity:0.9; box-shadow: 0 0 30px 10px rgba(255,224,128,0.5); } }
@keyframes ncl-paper  { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-1px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes ncl-nemo   { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-1px) rotate(0deg); } 100% { transform: translateY(0) rotate(1deg); } }
@keyframes ncl-hand   { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(5deg); } 100% { transform: translateY(0) rotate(0deg); } }

.scn-phosphorescent-phenomenon {
  background: linear-gradient(180deg, #0b0e20 0%, #1a2350 40%, #2a3a6a 100%), radial-gradient(ellipse at 50% 100%, #203060 0%, transparent 60%);
}
.scn-phosphorescent-phenomenon .porthole-frame {
  position: absolute; top: 15%; left: 15%; width: 70%; height: 40%;
  border-radius: 50%; border: 12px solid #4a5a7a; box-shadow: 0 0 30px rgba(0,0,0,0.8);
  background: transparent; pointer-events: none;
}
.scn-phosphorescent-phenomenon .porthole-glass {
  position: absolute; top: 15%; left: 15%; width: 70%; height: 40%;
  border-radius: 50%; background: radial-gradient(circle at 40% 30%, rgba(100,150,220,0.15) 0%, rgba(0,20,60,0.6) 80%);
  animation: ph1-glass 10s ease-in-out infinite alternate;
}
.scn-phosphorescent-phenomenon .deep-sea {
  position: absolute; top: 15%; left: 15%; width: 70%; height: 40%;
  border-radius: 50%; background: linear-gradient(180deg, #0c1a3a 0%, #020810 100%);
  opacity: 0.8; animation: ph1-deep 12s ease-in-out infinite;
}
.scn-phosphorescent-phenomenon .glow-patches {
  position: absolute; top: 15%; left: 15%; width: 70%; height: 40%;
  border-radius: 50%; background: radial-gradient(circle at 70% 60%, #5cb8b0 0%, transparent 50%), radial-gradient(circle at 20% 80%, #7ad4c0 0%, transparent 40%);
  mix-blend-mode: screen; animation: ph1-glow 5s ease-in-out infinite alternate;
}
.scn-phosphorescent-phenomenon .storm-cloud {
  position: absolute; top: 5%; left: 20%; width: 60%; height: 10%;
  background: radial-gradient(ellipse at 50% 100%, rgba(60,70,100,0.6) 0%, transparent 70%);
  filter: blur(6px); animation: ph1-cloud 20s linear infinite;
}
.scn-phosphorescent-phenomenon .hull-edge {
  position: absolute; bottom: 20%; left: 10%; width: 80%; height: 8%;
  background: linear-gradient(180deg, #3a4a6a 0%, #1a2a4a 100%);
  border-radius: 20% 20% 0 0; box-shadow: 0 -8px 20px rgba(0,0,0,0.7);
}
.scn-phosphorescent-phenomenon .vignette {
  position: absolute; inset: 0; background: radial-gradient(circle, transparent 40%, rgba(0,0,0,0.6) 100%);
  pointer-events: none; animation: ph1-vignette 8s ease-in-out infinite alternate;
}
@keyframes ph1-glass { 0% { opacity: 0.7; transform: scale(0.98); } 50% { opacity: 1; transform: scale(1); } 100% { opacity: 0.75; transform: scale(0.99); } }
@keyframes ph1-deep { 0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.75; } }
@keyframes ph1-glow { 0% { opacity: 0.5; transform: translateX(0px); } 50% { opacity: 0.8; transform: translateX(8px); } 100% { opacity: 0.6; transform: translateX(-4px); } }
@keyframes ph1-cloud { 0% { transform: translateX(-30px) scaleX(1); } 50% { transform: translateX(20px) scaleX(1.1); } 100% { transform: translateX(-30px) scaleX(1); } }
@keyframes ph1-vignette { 0% { opacity: 0.5; } 50% { opacity: 0.7; } 100% { opacity: 0.55; } }

.scn-phosphorescent-strata {
  background: linear-gradient(180deg, #071020 0%, #0f1e40 40%, #1a2d5a 100%), radial-gradient(ellipse at 50% 0%, #2a4a7a 0%, transparent 50%);
}
.scn-phosphorescent-strata .bg-abyss {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 50% 70%, #0c1a30 0%, transparent 70%);
}
.scn-phosphorescent-strata .hull-curve {
  position: absolute; bottom: 0; left: -10%; width: 120%; height: 30%;
  background: linear-gradient(180deg, #3a4a6a 0%, #1a2a4a 100%);
  border-radius: 50% 50% 0 0 / 100% 100% 0 0; box-shadow: 0 -15px 30px rgba(0,0,0,0.8);
}
.scn-phosphorescent-strata .strata-band-upper {
  position: absolute; top: 10%; left: 5%; width: 90%; height: 10%;
  background: linear-gradient(90deg, transparent 0%, #4ab5a8 20%, #5cc8b8 40%, transparent 60%, #4ab5a8 80%, transparent 100%);
  filter: blur(4px); mix-blend-mode: screen; animation: ph2-strata-u 8s ease-in-out infinite alternate;
}
.scn-phosphorescent-strata .strata-band-lower {
  position: absolute; top: 25%; left: 5%; width: 90%; height: 8%;
  background: linear-gradient(90deg, transparent 0%, #68d8c8 15%, #7ae0d0 30%, transparent 45%, #68d8c8 70%, transparent 85%);
  filter: blur(4px); mix-blend-mode: screen; animation: ph2-strata-l 12s ease-in-out infinite alternate;
  animation-delay: -3s;
}
.scn-phosphorescent-strata .sparkles-cloud {
  position: absolute; top: 5%; left: 10%; width: 80%; height: 40%;
  background: radial-gradient(circle at 20% 30%, #6ae0d0 1px, transparent 1px), radial-gradient(circle at 60% 50%, #7aeada 2px, transparent 2px), radial-gradient(circle at 80% 20%, #8cf0e0 1px, transparent 1px);
  background-size: 30px 30px, 40px 40px, 25px 25px; background-repeat: repeat;
  mix-blend-mode: screen; animation: ph2-sparkle 6s linear infinite;
}
.scn-phosphorescent-strata .beacon-shadow {
  position: absolute; top: 30%; left: 40%; width: 20%; height: 20%;
  background: radial-gradient(circle, rgba(0,0,0,0.4) 0%, transparent 70%);
  animation: ph2-beacon 4s ease-in-out infinite alternate;
}
@keyframes ph2-strata-u { 0% { opacity: 0.3; transform: translateX(-10px); } 50% { opacity: 0.7; transform: translateX(10px); } 100% { opacity: 0.4; transform: translateX(0px); } }
@keyframes ph2-strata-l { 0% { opacity: 0.5; transform: translateX(10px); } 50% { opacity: 0.9; transform: translateX(-15px); } 100% { opacity: 0.6; transform: translateX(5px); } }
@keyframes ph2-sparkle { 0% { background-position: 0% 0%; } 100% { background-position: 100% 50%; } }
@keyframes ph2-beacon { 0% { opacity: 0.3; transform: scale(0.8); } 50% { opacity: 0.8; transform: scale(1.2); } 100% { opacity: 0.4; transform: scale(0.9); } }

.scn-noctiluca-description {
  background: linear-gradient(180deg, #0a1225 0%, #152245 30%, #1c2d55 70%, #0f1a35 100%), radial-gradient(circle at 50% 50%, #1a3050 0%, transparent 70%);
}
.scn-noctiluca-description .depths {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 50% 20%, #1a3050 0%, transparent 70%);
}
.scn-noctiluca-description .jellyfish {
  position: absolute; top: 15%; left: 20%; width: 18%; height: 25%;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  background: radial-gradient(circle at 35% 30%, #7ae0d0 0%, #2a5a50 70%);
  box-shadow: 0 0 40px 10px rgba(100,220,200,0.4);
  animation: ph3-jelly 6s ease-in-out infinite;
}
.scn-noctiluca-description .jellyfish::after {
  content: ''; position: absolute; bottom: 0; left: 50%; width: 80%; height: 40%;
  background: radial-gradient(ellipse at 50% 100%, #4ab5a8 0%, transparent 80%);
  filter: blur(3px); transform: translateX(-50%) scaleY(1.2);
}
.scn-noctiluca-description .starfish {
  position: absolute; top: 40%; left: 60%; width: 12%; height: 12%;
  border-radius: 50%; background: radial-gradient(circle at 40% 40%, #f0c080 0%, #c09850 100%);
  box-shadow: 0 0 30px 8px rgba(200,160,80,0.5);
  animation: ph3-star 8s ease-in-out infinite alternate;
}
.scn-noctiluca-description .starfish::before, .starfish::after {
  content: ''; position: absolute; width: 60%; height: 60%;
  border-radius: 50%; background: inherit; top: -20%; left: 20%;
}
.scn-noctiluca-description .starfish::after { top: 20%; left: -20%; }
.scn-noctiluca-description .angel-clam {
  position: absolute; bottom: 30%; left: 30%; width: 15%; height: 10%;
  border-radius: 40% 40% 60% 60% / 30% 30% 70% 70%;
  background: linear-gradient(180deg, #b8d0d8 0%, #607880 100%);
  box-shadow: 0 0 25px 5px rgba(150,200,220,0.5);
  animation: ph3-clam 7s ease-in-out infinite;
}
.scn-noctiluca-description .zoophyte-glows {
  position: absolute; inset: 0; background: radial-gradient(circle at 80% 20%, #6ae0d0 4px, transparent 4px), radial-gradient(circle at 30% 70%, #8cf0e0 3px, transparent 3px), radial-gradient(circle at 50% 40%, #7aeada 5px, transparent 5px);
  background-size: 60px 60px, 40px 40px, 80px 80px; background-repeat: repeat;
  mix-blend-mode: screen; animation: ph3-zoophyte 12s linear infinite;
}
.scn-noctiluca-description .creature-shadow {
  position: absolute; bottom: 20%; left: 20%; width: 60%; height: 10%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 70%);
  animation: ph3-shadow 5s ease-in-out infinite alternate;
}
@keyframes ph3-jelly { 0% { transform: translateY(0px) scale(1); } 50% { transform: translateY(-15px) scale(1.05); } 100% { transform: translateY(0px) scale(1); } }
@keyframes ph3-star { 0% { transform: rotate(0deg) scale(1); } 50% { transform: rotate(15deg) scale(1.1); } 100% { transform: rotate(0deg) scale(1); } }
@keyframes ph3-clam { 0% { transform: scaleX(1) rotate(0deg); } 50% { transform: scaleX(1.2) rotate(-5deg); } 100% { transform: scaleX(1) rotate(0deg); } }
@keyframes ph3-zoophyte { 0% { background-position: 0% 0%; } 100% { background-position: 100% 50%; } }
@keyframes ph3-shadow { 0% { opacity: 0.3; } 50% { opacity: 0.7; } 100% { opacity: 0.4; } }

.scn-marine-animals-cavorting {
  background: linear-gradient(180deg, #081828 0%, #0f2540 40%, #1c3055 100%), radial-gradient(ellipse at 50% 30%, #1a3a5a 0%, transparent 60%);
}
.scn-marine-animals-cavorting .tide-bg {
  position: absolute; inset: 0; background: radial-gradient(circle at 60% 50%, #4ab5a8 0%, transparent 80%);
  mix-blend-mode: screen; opacity: 0.3; animation: ph4-tide 10s ease-in-out infinite alternate;
}
.scn-marine-animals-cavorting .porpoise-1 {
  position: absolute; top: 20%; left: 20%; width: 20%; height: 12%;
  border-radius: 60% 40% 40% 60% / 50% 50% 50% 50%;
  background: radial-gradient(ellipse at 40% 40%, #6080a0 0%, #304060 100%);
  transform: rotate(-15deg); box-shadow: 0 0 30px 5px rgba(80,120,160,0.4);
  animation: ph4-porpoise1 6s ease-in-out infinite;
}
.scn-marine-animals-cavorting .porpoise-2 {
  position: absolute; top: 40%; right: 10%; width: 18%; height: 10%;
  border-radius: 40% 60% 60% 40% / 50% 50% 50% 50%;
  background: radial-gradient(ellipse at 40% 40%, #507090 0%, #203050 100%);
  transform: rotate(10deg); box-shadow: 0 0 25px 4px rgba(60,100,140,0.4);
  animation: ph4-porpoise2 8s ease-in-out infinite alternate;
}
.scn-marine-animals-cavorting .salamander {
  position: absolute; bottom: 25%; left: 40%; width: 25%; height: 8%;
  border-radius: 30% 10% 10% 30% / 40% 20% 20% 40%;
  background: linear-gradient(90deg, #4a5a7a 0%, #6a7a9a 50%, #4a5a7a 100%);
  transform: skewX(-10deg); box-shadow: 0 0 20px 3px rgba(80,100,140,0.4);
  animation: ph4-salamander 5s ease-in-out infinite;
}
.scn-marine-animals-cavorting .cavort-trails {
  position: absolute; inset: 0; background: radial-gradient(circle at 30% 70%, #7aeada 1px, transparent 1px), radial-gradient(circle at 80% 40%, #8cf0e0 2px, transparent 2px);
  background-size: 30px 30px, 40px 40px; background-repeat: repeat;
  mix-blend-mode: screen; animation: ph4-trails 4s linear infinite;
}
.scn-marine-animals-cavorting .sparkle-trail {
  position: absolute; top: 10%; left: 5%; width: 90%; height: 20%;
  background: linear-gradient(90deg, transparent 0%, #6ae0d0 20%, transparent 40%, #6ae0d0 60%, transparent 80%);
  filter: blur(5px); mix-blend-mode: screen; animation: ph4-sparkle 3s ease-in-out infinite alternate;
}
@keyframes ph4-tide { 0% { opacity: 0.2; transform: scale(0.95); } 50% { opacity: 0.4; transform: scale(1.1); } 100% { opacity: 0.25; transform: scale(0.98); } }
@keyframes ph4-porpoise1 { 0% { transform: translateX(0) rotate(-15deg) scale(1); } 50% { transform: translateX(30px) rotate(-10deg) scale(1.05); } 100% { transform: translateX(0) rotate(-15deg) scale(1); } }
@keyframes ph4-porpoise2 { 0% { transform: translateX(0) rotate(10deg) scale(1); } 50% { transform: translateX(-20px) rotate(5deg) scale(1.05); } 100% { transform: translateX(0) rotate(10deg) scale(1); } }
@keyframes ph4-salamander { 0% { transform: translateX(0) skewX(-10deg) scaleX(1); } 50% { transform: translateX(-10px) skewX(-5deg) scaleX(1.1); } 100% { transform: translateX(0) skewX(-10deg) scaleX(1); } }
@keyframes ph4-trails { 0% { background-position: 0% 0%; } 100% { background-position: 100% 50%; } }
@keyframes ph4-sparkle { 0% { opacity: 0.3; transform: translateX(-10px); } 50% { opacity: 0.7; transform: translateX(10px); } 100% { opacity: 0.4; transform: translateX(-5px); } }

/* Scene 1: second-part-begins (calm, sunlit) */
.scn-second-part-begins {
  background: linear-gradient(180deg, #4a9bc7 0%, #2a6a8a 40%, #1a3a5a 100%),
              radial-gradient(ellipse at 50% 0%, rgba(255,255,200,0.3) 0%, transparent 60%);
}
.scn-second-part-begins .water-surface {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, rgba(100,180,220,0.6) 0%, transparent 100%);
  animation: spb-surface 10s ease-in-out infinite alternate;
}
.scn-second-part-begins .sunrays {
  position: absolute; inset: 0 0 50% 0;
  background: repeating-linear-gradient(90deg, rgba(255,255,180,0.1) 0px, transparent 30px, transparent 60px);
  animation: spb-rays 8s linear infinite;
}
.scn-second-part-begins .coral-bg {
  position: absolute; bottom: 25%; left: 10%; width: 35%; height: 20%;
  background: radial-gradient(ellipse at 30% 100%, #b87878 0%, #a85747 40%, transparent 70%);
  border-radius: 80% 20% 60% 40% / 50% 70% 30% 50%;
  animation: spb-coral-sway 12s ease-in-out infinite;
}
.scn-second-part-begins .coral-fg {
  position: absolute; bottom: 18%; right: 5%; width: 25%; height: 30%;
  background: radial-gradient(ellipse at 70% 100%, #c8553d 0%, #a0461a 40%, transparent 70%);
  border-radius: 40% 80% 30% 70% / 60% 50% 70% 40%;
  animation: spb-coral-sway 14s ease-in-out infinite reverse;
}
.scn-second-part-begins .figure {
  position: absolute; bottom: 30%; left: 45%; width: 16px; height: 40px;
  background: linear-gradient(180deg, #2a3a4a 0%, #111a22 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: spb-figure 5s ease-in-out infinite;
}
.scn-second-part-begins .bubble {
  position: absolute; width: 8px; height: 8px;
  background: radial-gradient(circle at 30% 30%, rgba(255,255,255,0.6), transparent);
  border-radius: 50%;
}
.scn-second-part-begins .bubble-1 {
  left: 25%; bottom: 10%;
  animation: spb-bubble-rise 6s ease-out infinite;
}
.scn-second-part-begins .bubble-2 {
  left: 70%; bottom: 5%;
  animation: spb-bubble-rise 8s ease-out infinite 2s;
}
.scn-second-part-begins .sparkle {
  position: absolute; width: 4px; height: 4px;
  background: radial-gradient(circle, #fff, transparent);
  border-radius: 50%;
  animation: spb-sparkle 3s ease-in-out infinite alternate;
}
.scn-second-part-begins .sparkle-1 { top: 15%; left: 30%; }
.scn-second-part-begins .sparkle-2 { top: 10%; right: 25%; animation-delay: 1.5s; }
@keyframes spb-surface { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes spb-rays { 0% { transform: translateX(0); } 100% { transform: translateX(60px); } }
@keyframes spb-coral-sway { 0%,100% { transform: rotate(-2deg); } 50% { transform: rotate(2deg) translateY(-4px); } }
@keyframes spb-figure { 0%,100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-6px) rotate(2deg); } }
@keyframes spb-bubble-rise { 0% { transform: translateY(0) scale(0.6); opacity:0; } 30% { opacity:0.8; } 100% { transform: translateY(-200px) scale(1.2); opacity:0; } }
@keyframes spb-sparkle { 0% { opacity:0; transform: scale(0.5); } 50% { opacity:1; transform: scale(1.2); } 100% { opacity:0.3; transform: scale(0.8); } }

/* Scene 2: defiance-of-society (calm, sunlit) */
.scn-defiance-of-society {
  background: linear-gradient(180deg, #87CEEB 0%, #4a90d9 50%, #2c5f8a 100%),
              radial-gradient(ellipse at 50% 100%, #2c5f8a 0%, transparent 70%);
}
.scn-defiance-of-society .sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #b0d4f0 0%, #87CEEB 100%);
  animation: dos-sky 8s ease-in-out infinite alternate;
}
.scn-defiance-of-society .sun {
  position: absolute; top: 12%; left: 70%; width: 50px; height: 50px;
  background: radial-gradient(circle, #fff5c0 0%, #ffd700 50%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px rgba(255,215,0,0.5);
  animation: dos-sun-pulse 6s ease-in-out infinite;
}
.scn-defiance-of-society .horizon {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 2px;
  background: rgba(255,255,255,0.6);
}
.scn-defiance-of-society .deck {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #4a4a3a 0%, #2a2a1a 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.4);
  animation: dos-deck 10s ease-in-out infinite alternate;
}
.scn-defiance-of-society .captain {
  position: absolute; bottom: 28%; left: 45%; width: 20px; height: 60px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dos-captain 4s ease-in-out infinite;
}
.scn-defiance-of-society .flag {
  position: absolute; bottom: 60%; left: 48%; width: 30px; height: 20px;
  background: linear-gradient(135deg, #5e1a1d 0%, #8a2a2a 100%);
  clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
  animation: dos-flag 3s ease-in-out infinite;
}
.scn-defiance-of-society .cloud {
  position: absolute; height: 20px;
  background: linear-gradient(180deg, rgba(255,255,255,0.6) 0%, rgba(255,255,255,0.1) 100%);
  border-radius: 50%;
  filter: blur(4px);
}
.scn-defiance-of-society .cloud-1 { top: 10%; left: -20%; width: 100px; animation: dos-cloud 45s linear infinite; }
.scn-defiance-of-society .cloud-2 { top: 25%; right: -20%; width: 70px; animation: dos-cloud 60s linear infinite reverse; }
@keyframes dos-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes dos-sun-pulse { 0%,100% { transform: scale(1); opacity:0.9; } 50% { transform: scale(1.1); opacity:1; } }
@keyframes dos-deck { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes dos-captain { 0%,100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-2px) rotate(1deg); } }
@keyframes dos-flag { 0%,100% { transform: rotate(-5deg); } 50% { transform: rotate(5deg); } }
@keyframes dos-cloud { 0% { transform: translateX(0); } 100% { transform: translateX(120vw); } }

/* Scene 3: mystery-deepens (tense, sunlit) */
.scn-mystery-deepens {
  background: linear-gradient(180deg, #2c4a6a 0%, #1a2a3a 40%, #0a1a2a 100%),
              radial-gradient(ellipse at 50% 20%, rgba(200,220,255,0.2) 0%, transparent 60%);
}
.scn-mystery-deepens .hull {
  position: absolute; bottom: 20%; left: 10%; right: 10%; height: 50%;
  background: linear-gradient(180deg, #3a4a5a 0%, #1a2a3a 100%);
  border-radius: 40% 40% 10% 10% / 80% 80% 20% 20%;
  box-shadow: inset 0 -20px 40px rgba(0,0,0,0.6);
  animation: mdp-hull 8s ease-in-out infinite alternate;
}
.scn-mystery-deepens .porthole-glow {
  position: absolute; top: 30%; left: 35%; width: 60px; height: 60px;
  background: radial-gradient(circle, #ffd060 0%, #b08040 60%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px #b08040, 0 0 60px 20px rgba(176,128,64,0.3);
  animation: mdp-glow 2s ease-in-out infinite alternate;
}
.scn-mystery-deepens .eye-dark {
  position: absolute; top: 32%; left: 37%; width: 40px; height: 40px;
  background: radial-gradient(circle, #0a0a1a 0%, #1a1a2a 60%);
  border-radius: 50%;
  animation: mdp-eye 4s ease-in-out infinite;
}
.scn-mystery-deepens .rivet {
  position: absolute; width: 8px; height: 8px;
  background: radial-gradient(circle at 40% 40%, #6a7a8a, #2a3a4a);
  border-radius: 50%;
}
.scn-mystery-deepens .rivet-1 { top: 40%; left: 20%; }
.scn-mystery-deepens .rivet-2 { top: 45%; right: 25%; }
.scn-mystery-deepens .rivet-3 { top: 55%; left: 50%; }
.scn-mystery-deepens .shadow-overlay {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 30% 40%, transparent 30%, rgba(0,0,0,0.6) 100%);
  animation: mdp-shadow 5s ease-in-out infinite alternate;
}
.scn-mystery-deepens .water-particle {
  position: absolute; width: 6px; height: 6px;
  background: radial-gradient(circle, rgba(255,255,255,0.4), transparent);
  border-radius: 50%;
}
.scn-mystery-deepens .water-particle-1 { top: 10%; left: 20%; animation: mdp-particle 7s linear infinite; }
.scn-mystery-deepens .water-particle-2 { bottom: 15%; right: 15%; animation: mdp-particle 9s linear infinite 3s; }
@keyframes mdp-hull { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(2px); } }
@keyframes mdp-glow { 0% { opacity:0.7; transform: scale(0.95); } 50% { opacity:1; transform: scale(1.05); } 100% { opacity:0.8; transform: scale(1); } }
@keyframes mdp-eye { 0%,100% { transform: scale(1); } 50% { transform: scale(0.9) translateY(2px); } }
@keyframes mdp-shadow { 0% { opacity:0.8; } 100% { opacity:1; } }
@keyframes mdp-particle { 0% { transform: translate(0,0) scale(0.5); opacity:0; } 30% { opacity:0.8; } 100% { transform: translate(30px, -50px) scale(1.2); opacity:0; } }

/* Scene 4: still-unclear (tense, sunlit) */
.scn-still-unclear {
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 50%, #0a0a1a 100%),
              radial-gradient(ellipse at 50% 80%, #2a3a4a 0%, transparent 70%);
}
.scn-still-unclear .wall-left {
  position: absolute; top: 0; left: 0; width: 25%; height: 100%;
  background: linear-gradient(90deg, #1a1a2a 0%, #2a2a3a 100%);
  box-shadow: 10px 0 20px rgba(0,0,0,0.5);
  animation: suc-wall 6s ease-in-out infinite alternate;
}
.scn-still-unclear .wall-right {
  position: absolute; top: 0; right: 0; width: 25%; height: 100%;
  background: linear-gradient(270deg, #1a1a2a 0%, #2a2a3a 100%);
  box-shadow: -10px 0 20px rgba(0,0,0,0.5);
  animation: suc-wall 6s ease-in-out infinite alternate-reverse;
}
.scn-still-unclear .floor {
  position: absolute; bottom: 0; left: 25%; right: 25%; height: 15%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 10% 10% 0 0;
}
.scn-still-unclear .window-glow {
  position: absolute; top: 30%; left: 40%; width: 80px; height: 100px;
  background: radial-gradient(ellipse at 50% 50%, #ffd080 0%, #b08040 60%, transparent 80%);
  border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%;
  box-shadow: 0 0 40px 15px #b08040, 0 0 80px 30px rgba(176,128,64,0.3);
  animation: suc-glow 3s ease-in-out infinite alternate;
}
.scn-still-unclear .figure-shadow {
  position: absolute; bottom: 15%; left: 50%; width: 30px; height: 80px;
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: suc-figure 5s ease-in-out infinite;
}
.scn-still-unclear .light-beam {
  position: absolute; top: 30%; left: 43%; width: 70px; height: 200px;
  background: linear-gradient(180deg, rgba(255,215,150,0.4) 0%, transparent 100%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  animation: suc-beam 4s ease-in-out infinite alternate;
}
.scn-still-unclear .particle {
  position: absolute; width: 4px; height: 4px;
  background: radial-gradient(circle, #fff, transparent);
  border-radius: 50%;
  animation: suc-particle 8s linear infinite;
}
.scn-still-unclear .particle-1 { top: 20%; left: 30%; }
.scn-still-unclear .particle-2 { top: 50%; left: 60%; animation-delay: 2s; }
.scn-still-unclear .particle-3 { bottom: 30%; left: 45%; animation-delay: 4s; }
@keyframes suc-wall { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes suc-glow { 0% { opacity:0.8; transform: scale(0.96); } 50% { opacity:1; transform: scale(1.04); } 100% { opacity:0.9; transform: scale(1); } }
@keyframes suc-figure { 0%,100% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-5px); } }
@keyframes suc-beam { 0% { opacity:0.5; transform: scaleX(0.9); } 100% { opacity:0.9; transform: scaleX(1.1); } }
@keyframes suc-particle { 0% { transform: translate(0,0) scale(0.5); opacity:0; } 20% { opacity:0.8; } 100% { transform: translate(20px, -60px) scale(1.2); opacity:0; } }

.scn-smaller-fish {
  background: linear-gradient(180deg, #0b1a2e 0%, #1a3a5c 40%, #0e2a4a 100%),
              radial-gradient(ellipse at 50% 0%, #4a7a9a 0%, transparent 60%);
}
.scn-smaller-fish .sea-bottom {
  position: absolute; inset: auto 0 0; height: 35%;
  background: linear-gradient(0deg, #1a2a3a 0%, #0a1a2a 100%);
  border-radius: 60% 40% 0 0 / 30% 20% 0 0;
  animation: sf-sea 12s ease-in-out infinite alternate;
}
.scn-smaller-fish .moon {
  position: absolute; top: 8%; left: 70%; width: 50px; height: 50px;
  background: radial-gradient(circle, #c8d8e8 0%, #a0bcd0 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(160,188,208,0.5), 0 0 80px 40px rgba(160,188,208,0.2);
  animation: sf-moon 8s ease-in-out infinite alternate;
}
.scn-smaller-fish .moonlight {
  position: absolute; top: 0; left: 50%; width: 200px; height: 120%;
  background: linear-gradient(180deg, rgba(200,216,232,0.15) 0%, transparent 100%);
  transform-origin: top center;
  filter: blur(12px);
  animation: sf-light 14s ease-in-out infinite alternate;
}
.scn-smaller-fish .fish-school-a,
.scn-smaller-fish .fish-school-b,
.scn-smaller-fish .fish-school-c {
  position: absolute; width: 30px; height: 10px;
  background: radial-gradient(ellipse at 30% 50%, #b0c8d8 0%, #6a8a9a 100%);
  border-radius: 50%;
  filter: blur(1px);
}
.scn-smaller-fish .fish-school-a {
  top: 45%; left: 10%;
  animation: sf-fish-a 9s ease-in-out infinite;
}
.scn-smaller-fish .fish-school-b {
  top: 55%; left: 30%;
  animation: sf-fish-b 12s ease-in-out infinite alternate;
}
.scn-smaller-fish .fish-school-c {
  top: 35%; left: 60%;
  animation: sf-fish-c 15s ease-in-out infinite;
}
.scn-smaller-fish .ripple {
  position: absolute; bottom: 30%; left: 20%; width: 80px; height: 8px;
  background: radial-gradient(ellipse, rgba(160,188,208,0.2) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(2px);
  animation: sf-ripple 6s ease-in-out infinite;
}
@keyframes sf-sea {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-2px) scaleY(1.02); }
  100% { transform: translateY(1px) scaleY(0.98); }
}
@keyframes sf-moon {
  0% { box-shadow: 0 0 30px 15px rgba(160,188,208,0.4); }
  50% { box-shadow: 0 0 50px 25px rgba(160,188,208,0.7); }
  100% { box-shadow: 0 0 40px 20px rgba(160,188,208,0.5); }
}
@keyframes sf-light {
  0% { transform: rotate(-3deg) scaleX(0.95); opacity: 0.6; }
  50% { transform: rotate(2deg) scaleX(1.05); opacity: 0.9; }
  100% { transform: rotate(-1deg) scaleX(0.98); opacity: 0.7; }
}
@keyframes sf-fish-a {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  25% { transform: translateX(40px) translateY(-5px) rotate(5deg); }
  50% { transform: translateX(80px) translateY(0) rotate(-2deg); }
  75% { transform: translateX(120px) translateY(-3px) rotate(3deg); }
  100% { transform: translateX(160px) translateY(0) rotate(0deg); }
}
@keyframes sf-fish-b {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  50% { transform: translateX(-30px) translateY(-8px) rotate(-4deg); }
  100% { transform: translateX(-60px) translateY(0) rotate(0deg); }
}
@keyframes sf-fish-c {
  0% { transform: translateX(0) translateY(0) scaleX(1); }
  33% { transform: translateX(40px) translateY(-10px) scaleX(0.9); }
  66% { transform: translateX(80px) translateY(5px) scaleX(1.1); }
  100% { transform: translateX(120px) translateY(0) scaleX(1); }
}
@keyframes sf-ripple {
  0% { transform: scaleX(1) scaleY(1); opacity: 0.3; }
  50% { transform: scaleX(1.5) scaleY(0.5); opacity: 0.6; }
  100% { transform: scaleX(1) scaleY(1); opacity: 0.3; }
}

.scn-life-in-aquarium {
  background: linear-gradient(135deg, #f5e6d0 0%, #d4b896 50%, #c2a584 100%),
              radial-gradient(ellipse at 80% 20%, #fffae5 0%, transparent 60%);
}
.scn-life-in-aquarium .room-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #e8d4b8 0%, #d0b894 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.1);
}
.scn-life-in-aquarium .window-arch {
  position: absolute; top: 15%; left: 10%; right: 10%; bottom: 40%;
  background: radial-gradient(ellipse at 50% 30%, #5a7a9a 0%, #2a4a6a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.3);
}
.scn-life-in-aquarium .outside-water {
  position: absolute; top: 15%; left: 10%; right: 10%; bottom: 40%;
  background: linear-gradient(180deg, #3a6a8a 0%, #1a3a5a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%;
  animation: la-water 20s ease-in-out infinite;
}
.scn-life-in-aquarium .fish-swarm {
  position: absolute; top: 25%; left: 15%; width: 60px; height: 40px;
  background: radial-gradient(ellipse at 40% 50%, #7a9a8a 0%, transparent 100%);
  filter: blur(3px);
  animation: la-swarm 18s ease-in-out infinite alternate;
}
.scn-life-in-aquarium .light-column {
  position: absolute; top: 5%; left: 45%; width: 40px; height: 60%;
  background: linear-gradient(180deg, rgba(255,250,230,0.3) 0%, transparent 100%);
  filter: blur(8px);
  animation: la-light 10s ease-in-out infinite alternate;
}
.scn-life-in-aquarium .table {
  position: absolute; bottom: 25%; left: 20%; right: 20%; height: 15%;
  background: linear-gradient(180deg, #8a6a4a 0%, #6a4a2a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.3);
}
.scn-life-in-aquarium .conseil-figure {
  position: absolute; bottom: 25%; left: 28%; width: 20px; height: 45px;
  background: linear-gradient(180deg, #2a3a3a 0%, #1a2a2a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: la-conseil 5s ease-in-out infinite;
}
.scn-life-in-aquarium .ned-figure {
  position: absolute; bottom: 25%; right: 30%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: la-ned 7s ease-in-out infinite;
}
@keyframes la-water {
  0% { background-position: 0 0; }
  50% { background-position: 0 5px; }
  100% { background-position: 0 0; }
}
@keyframes la-swarm {
  0% { transform: translateX(0) translateY(0) rotate(0deg); opacity: 0.7; }
  50% { transform: translateX(20px) translateY(-10px) rotate(5deg); opacity: 1; }
  100% { transform: translateX(40px) translateY(0) rotate(0deg); opacity: 0.7; }
}
@keyframes la-light {
  0% { transform: scaleX(1) scaleY(1); opacity: 0.3; }
  50% { transform: scaleX(1.2) scaleY(0.9); opacity: 0.6; }
  100% { transform: scaleX(0.9) scaleY(1.1); opacity: 0.3; }
}
@keyframes la-conseil {
  0% { transform: rotate(-2deg) translateY(0); }
  50% { transform: rotate(2deg) translateY(-2px); }
  100% { transform: rotate(-2deg) translateY(0); }
}
@keyframes la-ned {
  0% { transform: rotate(0deg) translateX(0); }
  33% { transform: rotate(3deg) translateX(3px); }
  66% { transform: rotate(-3deg) translateX(-3px); }
  100% { transform: rotate(0deg) translateX(0); }
}

.scn-january-18 {
  background: linear-gradient(180deg, #2e3a4a 0%, #1a2230 50%, #0e1420 100%),
              radial-gradient(ellipse at 50% 30%, #4a5a6a 0%, transparent 60%);
}
.scn-january-18 .stormy-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #3a4a5a 0%, #1a2a3a 100%);
  animation: j18-sky 15s ease-in-out infinite alternate;
}
.scn-january-18 .rough-sea {
  position: absolute; bottom: 10%; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%);
  border-radius: 30% 70% 0 0 / 50% 80% 0 0;
  animation: j18-sea 6s ease-in-out infinite alternate;
}
.scn-january-18 .nautilus-hull {
  position: absolute; bottom: 25%; left: 20%; right: 20%; height: 30%;
  background: linear-gradient(180deg, #4a5a6a 0%, #2a3a4a 100%);
  border-radius: 40% 40% 10% 10% / 60% 60% 20% 20%;
  box-shadow: 0 10px 20px rgba(0,0,0,0.5);
  animation: j18-hull 8s ease-in-out infinite;
}
.scn-january-18 .deck {
  position: absolute; bottom: 35%; left: 25%; right: 25%; height: 8%;
  background: linear-gradient(90deg, #3a4a5a 0%, #2a3a4a 100%);
  border-radius: 10%;
}
.scn-january-18 .captain-figure {
  position: absolute; bottom: 35%; left: 45%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #1a2a3a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: j18-captain 4s ease-in-out infinite;
}
.scn-january-18 .wave-crest-a,
.scn-january-18 .wave-crest-b {
  position: absolute; bottom: 20%; height: 10px; width: 60px;
  background: linear-gradient(180deg, rgba(200,220,240,0.3) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(3px);
}
.scn-january-18 .wave-crest-a {
  left: 10%;
  animation: j18-wave-a 5s ease-in-out infinite;
}
.scn-january-18 .wave-crest-b {
  right: 15%;
  animation: j18-wave-b 7s ease-in-out infinite alternate;
}
@keyframes j18-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.6; filter: brightness(1.2); }
}
@keyframes j18-sea {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-4px) scaleY(1.03); }
  100% { transform: translateY(2px) scaleY(0.97); }
}
@keyframes j18-hull {
  0% { transform: translateY(0) rotate(-0.5deg); }
  50% { transform: translateY(-2px) rotate(0.5deg); }
  100% { transform: translateY(0) rotate(-0.5deg); }
}
@keyframes j18-captain {
  0% { transform: rotate(-2deg) translateY(0); }
  50% { transform: rotate(2deg) translateY(-2px); }
  100% { transform: rotate(-2deg) translateY(0); }
}
@keyframes j18-wave-a {
  0% { transform: translateX(0) translateY(0) scaleX(1); }
  50% { transform: translateX(15px) translateY(-5px) scaleX(1.2); }
  100% { transform: translateX(30px) translateY(0) scaleX(0.8); }
}
@keyframes j18-wave-b {
  0% { transform: translateX(0) scaleY(1); }
  100% { transform: translateX(-20px) scaleY(1.5); }
}

.scn-chief-officer-unusual {
  background: linear-gradient(180deg, #2a3644 0%, #1e2835 50%, #141c28 100%),
              radial-gradient(ellipse at 60% 10%, #3e4e5e 0%, transparent 70%);
}
.scn-chief-officer-unusual .overcast-sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #3a4e5e 0%, #1e2a3a 100%);
  animation: cou-sky 20s ease-in-out infinite alternate;
}
.scn-chief-officer-unusual .platform {
  position: absolute; bottom: 30%; left: 15%; right: 15%; height: 20%;
  background: linear-gradient(90deg, #2a3a4a 0%, #1a2a3a 100%);
  border-radius: 5% 5% 0 0;
  box-shadow: 0 -4px 10px rgba(0,0,0,0.4);
}
.scn-chief-officer-unusual .officer-figure {
  position: absolute; bottom: 30%; left: 35%; width: 18px; height: 42px;
  background: linear-gradient(180deg, #1a2a3a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cou-officer 4s ease-in-out infinite;
}
.scn-chief-officer-unusual .sextant {
  position: absolute; bottom: 38%; left: 38%; width: 12px; height: 12px;
  background: radial-gradient(circle, #c0d0e0 0%, #8090a0 100%);
  border-radius: 50%;
  box-shadow: 0 0 8px 2px rgba(192,208,224,0.5);
  animation: cou-sextant 2s ease-in-out infinite alternate;
}
.scn-chief-officer-unusual .nemo-figure {
  position: absolute; bottom: 30%; right: 28%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #1a2a3a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cou-nemo 9s ease-in-out infinite;
}
.scn-chief-officer-unusual .deck-railing {
  position: absolute; bottom: 30%; left: 10%; right: 10%; height: 2px;
  background: linear-gradient(90deg, transparent, #4a5a6a 20%, #4a5a6a 80%, transparent);
  animation: cou-railing 5s ease-in-out infinite alternate;
}
.scn-chief-officer-unusual .wind-line {
  position: absolute; top: 20%; left: 0%; width: 100%; height: 1px;
  background: linear-gradient(90deg, transparent 0%, rgba(200,220,240,0.2) 30%, transparent 60%);
  filter: blur(1px);
  animation: cou-wind 3s linear infinite;
}
@keyframes cou-sky {
  0% { opacity: 0.7; filter: brightness(0.9); }
  50% { opacity: 1; filter: brightness(1.1); }
  100% { opacity: 0.8; filter: brightness(1); }
}
@keyframes cou-officer {
  0% { transform: rotate(-1deg) translateY(0); }
  50% { transform: rotate(1deg) translateY(-1px); }
  100% { transform: rotate(-1deg) translateY(0); }
}
@keyframes cou-sextant {
  0% { transform: rotate(-5deg) scale(1); }
  100% { transform: rotate(5deg) scale(1.1); }
}
@keyframes cou-nemo {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-3px) scaleY(1.02); }
  100% { transform: translateY(0) scaleY(1); }
}
@keyframes cou-railing {
  0% { transform: scaleX(0.95); }
  100% { transform: scaleX(1.05); }
}
@keyframes cou-wind {
  0% { transform: translateX(-100%) translateY(0); opacity: 0; }
  20% { opacity: 1; }
  80% { opacity: 1; }
  100% { transform: translateX(100%) translateY(5px); opacity: 0; }
}

/* heartland-of-blacks */
.scn-heartland-of-blacks { background: linear-gradient(180deg, #f7dba7 0%, #e8c37a 30%, #b8944e 100%), radial-gradient(ellipse at 50% 0%, #fff2d0 0%, transparent 70%); }
.scn-heartland-of-blacks .sky    { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #fcedc0 0%, #e8c37a 60%, #c9a258 100%); animation: hb-sky 14s ease-in-out infinite alternate; }
.scn-heartland-of-blacks .sea    { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #4a7c8c 0%, #2c5a6a 100%); box-shadow: inset 0 10px 20px rgba(0,0,0,.3); animation: hb-sea 6s ease-in-out infinite alternate; }
.scn-heartland-of-blacks .land   { position:absolute; bottom:40%; left:5%; right:5%; height:20%; background: linear-gradient(180deg, #6b8a3e 0%, #3a5a1a 100%); border-radius: 30% 40% 0 0 / 70% 60% 0 0; box-shadow: inset 0 8px 12px rgba(0,0,0,.4); animation: hb-land 10s ease-in-out infinite alternate; }
.scn-heartland-of-blacks .sun    { position:absolute; top:10%; left:60%; width:60px; height:60px; background: radial-gradient(circle, #fff4b0 0%, #f5c040 50%, #d08020 100%); border-radius:50%; box-shadow: 0 0 40px 20px #f5c040, 0 0 80px 40px rgba(245,192,64,.4); animation: hb-sun 20s ease-in-out infinite alternate; }
.scn-heartland-of-blacks .figure-left  { position:absolute; bottom:36%; left:15%; width:20px; height:40px; background: linear-gradient(180deg, #2c1a0e 0%, #1a0e06 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hb-figure-l 3s ease-in-out infinite; }
.scn-heartland-of-blacks .figure-right { position:absolute; bottom:36%; right:18%; width:20px; height:40px; background: linear-gradient(180deg, #2c1a0e 0%, #1a0e06 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hb-figure-r 3.2s ease-in-out infinite; }
.scn-heartland-of-blacks .palm   { position:absolute; bottom:44%; left:40%; width:8px; height:30px; background: linear-gradient(180deg, #4a3a1a 0%, #2a1a0a 100%); border-radius: 2px; transform-origin: bottom center; animation: hb-palm 5s ease-in-out infinite; }
@keyframes hb-sky     { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes hb-sea     { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(0) } }
@keyframes hb-land    { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes hb-sun     { 0% { transform: translateX(0) translateY(0); box-shadow:0 0 30px 10px #f5c040; } 50% { transform: translateX(10px) translateY(-5px); box-shadow:0 0 50px 20px #f5c040; } 100% { transform: translateX(-10px) translateY(0); box-shadow:0 0 40px 15px #f5c040; } }
@keyframes hb-figure-l { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 25% { transform: translateX(4px) translateY(-1px) rotate(1deg); } 50% { transform: translateX(8px) translateY(0) rotate(-1deg); } 75% { transform: translateX(4px) translateY(-1px) rotate(2deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes hb-figure-r { 0% { transform: translateX(0) translateY(0) rotate(2deg); } 25% { transform: translateX(-4px) translateY(-1px) rotate(-1deg); } 50% { transform: translateX(-8px) translateY(0) rotate(1deg); } 75% { transform: translateX(-4px) translateY(-1px) rotate(-2deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes hb-palm    { 0% { transform: rotate(-5deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-3deg); } }

/* nautilus-enters-strait */
.scn-nautilus-enters-strait { background: linear-gradient(180deg, #b4d4e0 0%, #7aaac4 40%, #4a7a94 100%), radial-gradient(ellipse at 50% 100%, #4a7a94 0%, transparent 60%); }
.scn-nautilus-enters-strait .sky   { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #d0e6f0 0%, #a0c8d8 100%); animation: es-sky 10s ease-in-out infinite alternate; }
.scn-nautilus-enters-strait .sea   { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #3a6a7a 0%, #1a3a4a 100%); box-shadow: inset 0 12px 24px rgba(0,0,0,.3); animation: es-sea 8s ease-in-out infinite alternate; }
.scn-nautilus-enters-strait .nautilus   { position:absolute; bottom:30%; left:20%; width:120px; height:30px; background: linear-gradient(90deg, #5a5a6a 0%, #8a8a9a 30%, #6a6a7a 70%, #3a3a4a 100%); border-radius: 50% / 100% 100% 40% 40%; box-shadow: 0 8px 16px rgba(0,0,0,.5); animation: es-nautilus 5s ease-in-out infinite; }
.scn-nautilus-enters-strait .conning-tower { position:absolute; bottom:36%; left:45%; width:20px; height:24px; background: linear-gradient(180deg, #6a6a7a 0%, #4a4a5a 100%); border-radius: 20% 20% 10% 10%; transform: scale(1.2); animation: es-conning 5s ease-in-out infinite; }
.scn-nautilus-enters-strait .wave-1 { position:absolute; bottom:25%; left:0; width:100%; height:12px; background: radial-gradient(ellipse at 50% 100%, rgba(255,255,255,.4) 0%, transparent 70%); border-radius:50%; filter: blur(3px); animation: es-wave1 4s ease-in-out infinite; }
.scn-nautilus-enters-strait .wave-2 { position:absolute; bottom:28%; left:0; width:100%; height:10px; background: radial-gradient(ellipse at 50% 100%, rgba(255,255,255,.3) 0%, transparent 70%); border-radius:50%; filter: blur(3px); animation: es-wave2 4.5s ease-in-out infinite reverse; }
.scn-nautilus-enters-strait .reef-left { position:absolute; bottom:32%; left:5%; width:40px; height:30px; background: linear-gradient(180deg, #4a4a3a 0%, #2a2a1a 100%); border-radius: 60% 20% 40% 20% / 80% 30% 70% 20%; box-shadow: inset 0 4px 8px rgba(0,0,0,.5); animation: es-reef 12s ease-in-out infinite; }
.scn-nautilus-enters-strait .reef-right{ position:absolute; bottom:35%; right:8%; width:50px; height:28px; background: linear-gradient(180deg, #4a4a3a 0%, #2a2a1a 100%); border-radius: 30% 60% 20% 50% / 40% 90% 30% 70%; box-shadow: inset 0 4px 8px rgba(0,0,0,.5); animation: es-reef 12.5s ease-in-out infinite alternate; }
@keyframes es-sky      { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes es-sea      { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes es-nautilus { 0% { transform: translateX(0) translateY(0) rotate(-1deg); } 50% { transform: translateX(8px) translateY(-2px) rotate(1deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes es-conning  { 0% { transform: translateY(0) scale(1.2); } 50% { transform: translateY(-2px) scale(1.25); } 100% { transform: translateY(0) scale(1.2); } }
@keyframes es-wave1    { 0% { transform: translateX(0) scaleY(1); } 50% { transform: translateX(-20px) scaleY(1.2); } 100% { transform: translateX(0) scaleY(1); } }
@keyframes es-wave2    { 0% { transform: translateX(0) scaleY(1); } 50% { transform: translateX(20px) scaleY(1.1); } 100% { transform: translateX(0) scaleY(1); } }
@keyframes es-reef     { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(-1deg); } }

/* cautious-navigation */
.scn-cautious-navigation { background: linear-gradient(180deg, #a8c8d8 0%, #6a9ab0 40%, #3a6a7a 100%), radial-gradient(ellipse at 50% 100%, #3a6a7a 0%, transparent 70%); }
.scn-cautious-navigation .sky   { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #c0dce8 0%, #8ab4c8 100%); animation: cn-sky 12s ease-in-out infinite alternate; }
.scn-cautious-navigation .sea   { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #2a5a6a 0%, #1a3a4a 100%); box-shadow: inset 0 8px 16px rgba(0,0,0,.3); animation: cn-sea 7s ease-in-out infinite alternate; }
.scn-cautious-navigation .nautilus-ship { position:absolute; bottom:32%; left:30%; width:100px; height:28px; background: linear-gradient(90deg, #4a4a5a 0%, #7a7a8a 40%, #5a5a6a 70%, #3a3a4a 100%); border-radius: 50% / 100% 100% 30% 30%; box-shadow: 0 6px 12px rgba(0,0,0,.5); animation: cn-ship 6s ease-in-out infinite; }
.scn-cautious-navigation .rock-1 { position:absolute; bottom:38%; left:10%; width:30px; height:20px; background: linear-gradient(180deg, #4a4a3a 0%, #2a2a1a 100%); border-radius: 40% 30% 20% 50% / 70% 40% 60% 30%; animation: cn-rock1 9s ease-in-out infinite; }
.scn-cautious-navigation .rock-2 { position:absolute; bottom:35%; left:55%; width:40px; height:25px; background: linear-gradient(180deg, #4a4a3a 0%, #2a2a1a 100%); border-radius: 30% 50% 40% 20% / 50% 80% 30% 60%; animation: cn-rock2 10.2s ease-in-out infinite alternate; }
.scn-cautious-navigation .rock-3 { position:absolute; bottom:40%; right:12%; width:25px; height:18px; background: linear-gradient(180deg, #4a4a3a 0%, #2a2a1a 100%); border-radius: 50% 30% 40% 50% / 60% 50% 70% 40%; animation: cn-rock3 8.5s ease-in-out infinite; }
.scn-cautious-navigation .foam-1 { position:absolute; bottom:28%; left:0; width:100%; height:8px; background: radial-gradient(ellipse at 50% 100%, rgba(255,255,255,.4) 0%, transparent 70%); filter: blur(2px); animation: cn-foam1 3s ease-in-out infinite; }
.scn-cautious-navigation .foam-2 { position:absolute; bottom:31%; left:0; width:100%; height:6px; background: radial-gradient(ellipse at 50% 100%, rgba(255,255,255,.3) 0%, transparent 70%); filter: blur(2px); animation: cn-foam2 3.8s ease-in-out infinite reverse; }
@keyframes cn-sky    { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes cn-sea    { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes cn-ship   { 0% { transform: translateX(0) translateY(0) rotate(-1deg); } 50% { transform: translateX(6px) translateY(-2px) rotate(1deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes cn-rock1  { 0% { transform: translateY(0) rotate(-3deg); } 50% { transform: translateY(-2px) rotate(3deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes cn-rock2  { 0% { transform: translateY(0) rotate(2deg); } 50% { transform: translateY(-3px) rotate(-2deg); } 100% { transform: translateY(0) rotate(3deg); } }
@keyframes cn-rock3  { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes cn-foam1  { 0% { transform: scaleX(1) translateX(0); } 50% { transform: scaleX(1.1) translateX(-10px); } 100% { transform: scaleX(1) translateX(0); } }
@keyframes cn-foam2  { 0% { transform: scaleX(1) translateX(0); } 50% { transform: scaleX(1.1) translateX(10px); } 100% { transform: scaleX(1) translateX(0); } }

/* on-platform-observing */
.scn-on-platform-observing { background: linear-gradient(180deg, #fce8c0 0%, #d0b88a 40%, #a08050 100%), radial-gradient(ellipse at 50% 100%, #a08050 0%, transparent 60%); }
.scn-on-platform-observing .sky   { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #ffe4b0 0%, #f0d098 60%, #d0b070 100%); animation: op-sky 15s ease-in-out infinite alternate; }
.scn-on-platform-observing .sea   { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #4a7a8a 0%, #2a5a6a 100%); box-shadow: inset 0 10px 20px rgba(0,0,0,.2); animation: op-sea 10s ease-in-out infinite alternate; }
.scn-on-platform-observing .deck  { position:absolute; bottom:42%; left:0; right:0; height:10%; background: linear-gradient(180deg, #6a5a3a 0%, #4a3a2a 100%); border-radius: 4% 4% 0 0; box-shadow: inset 0 6px 12px rgba(0,0,0,.3); animation: op-deck 6s ease-in-out infinite; }
.scn-on-platform-observing .pilothouse { position:absolute; bottom:52%; left:45%; width:40px; height:30px; background: linear-gradient(180deg, #7a6a4a 0%, #5a4a2a 100%); border-radius: 10% 10% 4% 4%; box-shadow: 0 4px 8px rgba(0,0,0,.4); transform-origin: bottom center; animation: op-pilot 8s ease-in-out infinite; }
.scn-on-platform-observing .figure-sitting-1 { position:absolute; bottom:42%; left:30%; width:18px; height:28px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%; transform-origin: bottom center; animation: op-fig1 4s ease-in-out infinite; }
.scn-on-platform-observing .figure-sitting-2 { position:absolute; bottom:42%; left:55%; width:18px; height:28px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%; transform-origin: bottom center; animation: op-fig2 4.5s ease-in-out infinite; }
.scn-on-platform-observing .railing { position:absolute; bottom:44%; left:0; right:0; height:4px; background: linear-gradient(90deg, transparent 10%, #7a6a4a 15%, #7a6a4a 85%, transparent 90%); border-radius: 1px; animation: op-rail 5s ease-in-out infinite; }
@keyframes op-sky    { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes op-sea    { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes op-deck   { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes op-pilot  { 0% { transform: scaleY(1) translateY(0) } 50% { transform: scaleY(1.02) translateY(-1px) } 100% { transform: scaleY(1) translateY(0) } }
@keyframes op-fig1   { 0% { transform: rotate(-2deg) translateY(0); } 25% { transform: rotate(1deg) translateY(-1px); } 50% { transform: rotate(-1deg) translateY(0); } 75% { transform: rotate(2deg) translateY(-1px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes op-fig2   { 0% { transform: rotate(2deg) translateY(0); } 25% { transform: rotate(-1deg) translateY(-1px); } 50% { transform: rotate(1deg) translateY(0); } 75% { transform: rotate(-2deg) translateY(-1px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes op-rail   { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.9 } }

/* Scene: english-attack-and-scuttling (dark/dim-interior) */
.scn-english-attack-and-scuttling {
  background: linear-gradient(180deg, #1a1410 0%, #2c2018 40%, #1f1612 100%),
              radial-gradient(ellipse at 50% 30%, #3a2a1e 0%, transparent 70%);
}
.scn-english-attack-and-scuttling .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(90deg, #2a201a 0%, #3a2e24 50%, #2a201a 100%);
  box-shadow: inset 0 0 40px #0a0806;
}
.scn-english-attack-and-scuttling .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(0deg, #1a120e 0%, #2e221c 100%);
  border-radius: 0 0 40% 40% / 0 0 20% 20%;
}
.scn-english-attack-and-scuttling .window {
  position: absolute; top: 12%; left: 50%; transform: translateX(-50%);
  width: 120px; height: 90px;
  background: radial-gradient(ellipse at 50% 30%, #4a5a6a 0%, #1a2a3a 70%);
  border-radius: 30% 30% 10% 10%;
  border: 6px solid #2a1e16;
  box-shadow: inset 0 0 30px #0a101a;
  animation: ea-window-glint 6s ease-in-out infinite alternate;
}
.scn-english-attack-and-scuttling .moonlight {
  position: absolute; top: 12%; left: 50%; transform: translateX(-50%);
  width: 140px; height: 110px;
  background: radial-gradient(ellipse at 50% 30%, rgba(180,200,220,0.15) 0%, transparent 70%);
  filter: blur(8px);
  animation: ea-moon-pulse 8s ease-in-out infinite alternate;
}
.scn-english-attack-and-scuttling .figure {
  position: absolute; bottom: 28%; left: 40%;
  width: 24px; height: 50px;
  background: linear-gradient(180deg, #1a1412 0%, #0e0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ea-figure-turn 5s ease-in-out infinite;
}
.scn-english-attack-and-scuttling .lantern {
  position: absolute; bottom: 30%; left: 58%;
  width: 8px; height: 12px;
  background: radial-gradient(circle, #b87a4a 0%, #6a3a1a 70%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 20px 6px #b87a4a, 0 0 40px 12px rgba(184,122,74,0.4);
  animation: ea-lantern-flicker 2s ease-in-out infinite alternate;
}
.scn-english-attack-and-scuttling .table {
  position: absolute; bottom: 28%; left: 50%; transform: translateX(-50%);
  width: 70px; height: 10px;
  background: linear-gradient(180deg, #3a2a1e 0%, #1f140e 100%);
  border-radius: 10%;
  box-shadow: 0 4px 6px rgba(0,0,0,0.6);
}
.scn-english-attack-and-scuttling .paper {
  position: absolute; bottom: 34%; left: 48%;
  width: 12px; height: 8px;
  background: #4a3a2e;
  border-radius: 2px;
  transform: rotate(5deg);
  animation: ea-paper-rustle 4s ease-in-out infinite;
}
@keyframes ea-window-glint {
  0% { opacity: 0.7; box-shadow: inset 0 0 20px #0a101a; }
  50% { opacity: 0.85; box-shadow: inset 0 0 40px #2a3a4a; }
  100% { opacity: 0.6; box-shadow: inset 0 0 15px #0a101a; }
}
@keyframes ea-moon-pulse {
  0% { transform: translateX(-50%) scale(1); opacity: 0.3; }
  50% { transform: translateX(-50%) scale(1.05); opacity: 0.6; }
  100% { transform: translateX(-50%) scale(0.95); opacity: 0.2; }
}
@keyframes ea-figure-turn {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(4px) rotate(6deg); }
  50% { transform: translateX(8px) rotate(0deg); }
  75% { transform: translateX(12px) rotate(-6deg); }
  100% { transform: translateX(16px) rotate(0deg); }
}
@keyframes ea-lantern-flicker {
  0% { opacity: 0.8; box-shadow: 0 0 15px 4px #b87a4a, 0 0 30px 8px rgba(184,122,74,0.3); }
  50% { opacity: 1; box-shadow: 0 0 25px 8px #d9a050, 0 0 50px 16px rgba(217,160,80,0.5); }
  100% { opacity: 0.85; box-shadow: 0 0 18px 5px #b87a4a, 0 0 35px 10px rgba(184,122,74,0.35); }
}
@keyframes ea-paper-rustle {
  0%,100% { transform: rotate(5deg) scale(1); }
  50% { transform: rotate(8deg) scale(1.02); }
}

/* Scene: nemo-shows-vigo-treasure (calm/window-lit) */
.scn-nemo-shows-vigo-treasure {
  background: linear-gradient(180deg, #0e1a2a 0%, #122233 40%, #0a1624 100%),
              radial-gradient(ellipse at 50% 60%, #1a3a5a 0%, transparent 70%);
}
.scn-nemo-shows-vigo-treasure .lounge-wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(90deg, #101a24 0%, #1a2634 50%, #101a24 100%);
  box-shadow: inset 0 0 60px #060a12;
}
.scn-nemo-shows-vigo-treasure .lounge-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(0deg, #0a121c 0%, #162234 100%);
  border-radius: 0 0 30% 30% / 0 0 15% 15%;
}
.scn-nemo-shows-vigo-treasure .window-left {
  position: absolute; top: 18%; left: 22%; width: 130px; height: 100px;
  background: radial-gradient(ellipse at 50% 40%, #1c3a5a 0%, #0a1a2a 80%);
  border: 5px solid #1e2a36;
  border-radius: 30% 30% 10% 10%;
  box-shadow: inset 0 0 30px #0a101a;
}
.scn-nemo-shows-vigo-treasure .window-right {
  position: absolute; top: 18%; right: 22%; width: 130px; height: 100px;
  background: radial-gradient(ellipse at 50% 40%, #1c3a5a 0%, #0a1a2a 80%);
  border: 5px solid #1e2a36;
  border-radius: 30% 30% 10% 10%;
  box-shadow: inset 0 0 30px #0a101a;
}
.scn-nemo-shows-vigo-treasure .sea-bg {
  position: absolute; top: 18%; left: 22%; width: 130px; height: 100px;
  background: radial-gradient(ellipse at 50% 60%, #1a4a6a 0%, #0a1a2a 100%);
  opacity: 0.6;
  animation: nv-sea-shimmer 12s ease-in-out infinite alternate;
}
.scn-nemo-shows-vigo-treasure .treasure-glow {
  position: absolute; top: 35%; left: 50%; transform: translateX(-50%);
  width: 200px; height: 180px;
  background: radial-gradient(ellipse at 50% 30%, #c8a040 0%, #7a5a20 40%, transparent 70%);
  filter: blur(12px);
  animation: nv-treasure-pulse 5s ease-in-out infinite alternate;
}
.scn-nemo-shows-vigo-treasure .light-rays {
  position: absolute; top: 18%; left: 22%; width: 130px; height: 100px;
  background: linear-gradient(180deg, rgba(200,220,255,0.05) 0%, rgba(200,220,255,0.15) 50%, transparent 100%);
  clip-path: polygon(20% 0%, 80% 0%, 60% 100%, 40% 100%);
  animation: nv-rays-sway 9s ease-in-out infinite;
}
.scn-nemo-shows-vigo-treasure .nemo-silhouette {
  position: absolute; bottom: 32%; left: 50%; transform: translateX(-50%);
  width: 30px; height: 60px;
  background: linear-gradient(180deg, #080e14 0%, #04080c 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: nemo-stand 8s ease-in-out infinite;
}
@keyframes nv-sea-shimmer {
  0% { opacity: 0.5; transform: scale(1); }
  50% { opacity: 0.8; transform: scale(1.02); }
  100% { opacity: 0.4; transform: scale(0.98); }
}
@keyframes nv-treasure-pulse {
  0% { opacity: 0.3; transform: translateX(-50%) scale(1); }
  50% { opacity: 0.7; transform: translateX(-50%) scale(1.15); }
  100% { opacity: 0.25; transform: translateX(-50%) scale(0.9); }
}
@keyframes nv-rays-sway {
  0% { transform: rotate(0deg); opacity: 0.4; }
  50% { transform: rotate(3deg); opacity: 0.7; }
  100% { transform: rotate(-1deg); opacity: 0.5; }
}
@keyframes nemo-stand {
  0%,100% { transform: translateX(-50%) rotate(0deg); }
  50% { transform: translateX(-50%) rotate(2deg) scaleY(1.01); }
}

/* Scene: nemos-treasure-fishing (warm/window-lit) */
.scn-nemos-treasure-fishing {
  background: linear-gradient(180deg, #1a1e12 0%, #2a281c 40%, #14180e 100%),
              radial-gradient(ellipse at 30% 50%, #3a3a1a 0%, transparent 70%);
}
.scn-nemos-treasure-fishing .cabin-wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(90deg, #2a281c 0%, #3a3628 50%, #2a281c 100%);
  box-shadow: inset 0 0 40px #0a0a06;
}
.scn-nemos-treasure-fishing .porthole {
  position: absolute; top: 15%; left: 50%; transform: translateX(-50%);
  width: 140px; height: 140px;
  background: radial-gradient(circle at 50% 40%, #1a3a4a 0%, #0a1a2a 80%);
  border: 8px solid #3a2a1a;
  border-radius: 50%;
  box-shadow: inset 0 0 30px #0a101a;
  animation: nt-porthole-glow 4s ease-in-out infinite alternate;
}
.scn-nemos-treasure-fishing .wreck-silhouette {
  position: absolute; top: 28%; left: 20%; width: 80px; height: 60px;
  background: linear-gradient(180deg, #1a1a12 0%, #0e0e08 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
  transform: rotate(-10deg);
  animation: nt-wreck-sway 15s ease-in-out infinite;
}
.scn-nemos-treasure-fishing .treasure-pile {
  position: absolute; top: 48%; left: 45%;
  width: 60px; height: 30px;
  background: radial-gradient(ellipse at 50% 30%, #c8a040 0%, #7a5a20 60%, transparent 80%);
  border-radius: 30% 30% 10% 10%;
  filter: blur(4px);
  animation: nt-treasure-glint 3s ease-in-out infinite alternate;
}
.scn-nemos-treasure-fishing .bubbles {
  position: absolute; bottom: 40%; left: 30%; width: 8px; height: 8px;
  background: radial-gradient(circle, rgba(180,220,240,0.6) 0%, transparent 70%);
  border-radius: 50%;
  animation: nt-bubble-rise 6s ease-in infinite;
  filter: blur(1px);
}
.scn-nemos-treasure-fishing .nemo-diver {
  position: absolute; bottom: 25%; left: 38%;
  width: 20px; height: 40px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: nt-diver-move 8s ease-in-out infinite;
}
.scn-nemos-treasure-fishing .light-beam {
  position: absolute; top: 15%; left: 50%; transform: translateX(-50%);
  width: 100px; height: 200px;
  background: linear-gradient(180deg, rgba(240,220,180,0.1) 0%, rgba(200,180,120,0.05) 50%, transparent 100%);
  clip-path: polygon(40% 0%, 60% 0%, 70% 100%, 30% 100%);
  animation: nt-beam-shift 7s ease-in-out infinite alternate;
}
@keyframes nt-porthole-glow {
  0% { box-shadow: inset 0 0 30px #0a101a, 0 0 10px #3a2a1a; }
  50% { box-shadow: inset 0 0 50px #2a3a4a, 0 0 20px #6a4a2a; }
  100% { box-shadow: inset 0 0 25px #0a101a, 0 0 12px #3a2a1a; }
}
@keyframes nt-wreck-sway {
  0% { transform: rotate(-10deg) translateY(0); }
  50% { transform: rotate(-8deg) translateY(-2px); }
  100% { transform: rotate(-12deg) translateY(1px); }
}
@keyframes nt-treasure-glint {
  0% { opacity: 0.3; transform: scale(1); }
  50% { opacity: 0.7; transform: scale(1.1); }
  100% { opacity: 0.2; transform: scale(0.9); }
}
@keyframes nt-bubble-rise {
  0% { transform: translateY(0) scale(1); opacity: 0.6; }
  50% { transform: translateY(-30px) scale(1.2); opacity: 0.4; }
  100% { transform: translateY(-60px) scale(0.8); opacity: 0; }
}
@keyframes nt-diver-move {
  0%,100% { transform: translateX(0) rotate(0deg); }
  30% { transform: translateX(10px) rotate(3deg); }
  60% { transform: translateX(-5px) rotate(-2deg); }
}
@keyframes nt-beam-shift {
  0% { transform: translateX(-50%) rotate(0deg); opacity: 0.4; }
  50% { transform: translateX(-50%) rotate(2deg); opacity: 0.7; }
  100% { transform: translateX(-50%) rotate(-1deg); opacity: 0.5; }
}

/* Scene: nemo-rich-beyond-measure (warm/window-lit) */
.scn-nemo-rich-beyond-measure {
  background: linear-gradient(180deg, #1a1e14 0%, #2a2a1c 40%, #10140e 100%),
              radial-gradient(ellipse at 50% 60%, #3a3a20 0%, transparent 70%);
}
.scn-nemo-rich-beyond-measure .cabin-interior {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(90deg, #2a281c 0%, #3a3628 50%, #2a281c 100%);
  box-shadow: inset 0 0 50px #0a0a06;
}
.scn-nemo-rich-beyond-measure .window-panel {
  position: absolute; top: 12%; left: 10%; right: 10%; bottom: 40%;
  background: radial-gradient(ellipse at 50% 30%, #1a3a4a 0%, #0a1a2a 80%);
  border: 6px solid #3a2a1a;
  border-radius: 20% 20% 5% 5%;
  box-shadow: inset 0 0 30px #0a101a;
}
.scn-nemo-rich-beyond-measure .wreck-field {
  position: absolute; top: 40%; left: 15%; width: 30%; height: 20%;
  background: linear-gradient(180deg, #1a1a12 0%, #0e0e08 100%);
  border-radius: 10% 10% 0 0 / 30% 30% 0 0;
  transform: rotate(-5deg);
  animation: nr-wreck-sway 20s ease-in-out infinite;
}
.scn-nemo-rich-beyond-measure .treasure-heap {
  position: absolute; top: 55%; left: 40%; width: 120px; height: 50px;
  background: radial-gradient(ellipse at 50% 20%, #d9b050 0%, #8a6020 50%, transparent 70%);
  border-radius: 40% 40% 10% 10%;
  filter: blur(6px);
  animation: nr-treasure-glow 4s ease-in-out infinite alternate;
}
.scn-nemo-rich-beyond-measure .light-cascade {
  position: absolute; top: 12%; left: 10%; right: 10%; bottom: 40%;
  background: linear-gradient(180deg, rgba(240,220,180,0.08) 0%, rgba(200,180,120,0.04) 50%, transparent 100%);
  clip-path: polygon(30% 0%, 70% 0%, 60% 100%, 40% 100%);
  animation: nr-cascade-dance 8s ease-in-out infinite;
}
.scn-nemo-rich-beyond-measure .nemo-figure {
  position: absolute; bottom: 24%; left: 50%; transform: translateX(-50%);
  width: 28px; height: 55px;
  background: linear-gradient(180deg, #12101a 0%, #080610 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: nr-nemo-turn 6s ease-in-out infinite;
}
.scn-nemo-rich-beyond-measure .sea-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #0e1210 0%, #1a1e1c 100%);
  border-radius: 40% 40% 0 0 / 60% 60% 0 0;
}
.scn-nemo-rich-beyond-measure .kelp {
  position: absolute; bottom: 10%; left: 20%;
  width: 6px; height: 40px;
  background: linear-gradient(180deg, #2a3a1a 0%, #1a2a0e 100%);
  border-radius: 40% 40% 20% 20%;
  transform-origin: bottom center;
  animation: nr-kelp-sway 7s ease-in-out infinite alternate;
}
@keyframes nr-wreck-sway {
  0% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(-3deg) translateY(-2px); }
  100% { transform: rotate(-7deg) translateY(1px); }
}
@keyframes nr-treasure-glow {
  0% { opacity: 0.3; transform: scale(1) rotate(0deg); }
  50% { opacity: 0.6; transform: scale(1.08) rotate(2deg); }
  100% { opacity: 0.25; transform: scale(0.95) rotate(-1deg); }
}
@keyframes nr-cascade-dance {
  0% { transform: rotate(0deg); opacity: 0.3; }
  50% { transform: rotate(2deg); opacity: 0.6; }
  100% { transform: rotate(-1deg); opacity: 0.4; }
}
@keyframes nr-nemo-turn {
  0%,100% { transform: translateX(-50%) rotate(0deg); }
  40% { transform: translateX(-50%) rotate(4deg); }
  70% { transform: translateX(-50%) rotate(-2deg); }
}
@keyframes nr-kelp-sway {
  0% { transform: rotate(-5deg) scaleY(1); }
  50% { transform: rotate(5deg) scaleY(1.02); }
  100% { transform: rotate(-4deg) scaleY(0.98); }
}

/* --- adornments (calm dawn) --- */
.scn-adornments {
  background: linear-gradient(180deg, #f7d9c4 0%, #e6b8a0 40%, #c28e6e 100%), radial-gradient(ellipse at 50% 0%, #f7d9c4 0%, transparent 70%);
}
.scn-adornments .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #fce4d6 0%, #f0c8b0 60%, transparent 100%);
  animation: ad1-sky 12s ease-in-out infinite alternate;
}
.scn-adornments .shore {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #d4a574 0%, #b8865a 100%);
  border-radius: 60% 40% 0 0 / 30% 20% 0 0;
  box-shadow: inset 0 -20px 30px rgba(0,0,0,.2);
}
.scn-adornments .figure1 {
  position: absolute; bottom: 20%; left: 20%; width: 40px; height: 60px;
  background: radial-gradient(ellipse at 50% 30%, #8b6f5c 0%, #4a3729 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ad1-figure 5s ease-in-out infinite;
}
.scn-adornments .figure2 {
  position: absolute; bottom: 22%; left: 45%; width: 36px; height: 56px;
  background: radial-gradient(ellipse at 50% 30%, #7a5f4a 0%, #3d2e1f 100%);
  border-radius: 45% 55% 40% 40% / 55% 60% 40% 40%;
  transform: scale(0.95);
  animation: ad1-figure 6s ease-in-out infinite 0.5s;
}
.scn-adornments .figure3 {
  position: absolute; bottom: 18%; right: 18%; width: 44px; height: 64px;
  background: radial-gradient(ellipse at 50% 30%, #9b7b65 0%, #5a4233 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ad1-figure 5.5s ease-in-out infinite 1s;
}
.scn-adornments .beads {
  position: absolute; bottom: 48%; left: 26%; width: 30px; height: 20px;
  background: radial-gradient(circle at 30% 50%, #d4a373 4px, transparent 4px),
              radial-gradient(circle at 50% 50%, #c48a5e 4px, transparent 4px),
              radial-gradient(circle at 70% 50%, #b8734a 4px, transparent 4px);
  background-size: 10px 10px; background-repeat: no-repeat;
  animation: ad1-swing 3s ease-in-out infinite;
}
.scn-adornments .skirt {
  position: absolute; bottom: 15%; left: 42%; width: 20px; height: 25px;
  background: linear-gradient(180deg, #6a8a4a 0%, #3e5a2a 50%, #2a3e1a 100%);
  border-radius: 10% 10% 30% 30%;
  clip-path: polygon(10% 0%, 90% 0%, 100% 100%, 0% 100%);
  animation: ad1-skirt 4s ease-in-out infinite alternate;
}
.scn-adornments .adornment {
  position: absolute; bottom: 40%; right: 22%; width: 14px; height: 14px;
  background: radial-gradient(circle, #e6b88a 0%, #c28a5e 70%);
  border-radius: 50%;
  box-shadow: 0 0 8px 2px rgba(194, 138, 94, 0.6);
  animation: ad1-glow 3s ease-in-out infinite alternate;
}
.scn-adornments .sun {
  position: absolute; top: 10%; left: 60%; width: 50px; height: 50px;
  background: radial-gradient(circle, #fff3d4 0%, #f7c78a 50%, transparent 70%);
  border-radius: 50%;
  filter: blur(4px);
  animation: ad1-sunrise 20s ease-in-out infinite alternate;
}
@keyframes ad1-sky { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes ad1-figure { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes ad1-swing { 0% { transform: rotate(-5deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-5deg); } }
@keyframes ad1-skirt { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.95); } 100% { transform: scaleY(1); } }
@keyframes ad1-glow { 0% { box-shadow: 0 0 6px 1px rgba(194,138,94,0.4); opacity: 0.8; } 50% { box-shadow: 0 0 12px 4px rgba(230,184,138,0.7); opacity: 1; } 100% { box-shadow: 0 0 8px 2px rgba(194,138,94,0.5); opacity: 0.9; } }
@keyframes ad1-sunrise { 0% { transform: translateX(-10px) scale(0.95); opacity: 0.9; } 50% { transform: translateX(0) scale(1.05); opacity: 1; } 100% { transform: translateX(10px) scale(0.98); opacity: 0.95; } }

/* --- weapons (tense dawn) --- */
.scn-weapons {
  background: linear-gradient(180deg, #6a4a3a 0%, #4a2e22 40%, #2a1a12 100%), radial-gradient(ellipse at 50% 0%, #8a5a3a 0%, transparent 60%);
}
.scn-weapons .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #c08050 0%, #8a5a3a 50%, #4a2e22 100%);
  animation: we2-sky 8s ease-in-out infinite alternate;
}
.scn-weapons .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 40% 60% 0 0 / 30% 40% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.5);
}
.scn-weapons .chieftain-body {
  position: absolute; bottom: 28%; left: 30%; width: 50px; height: 70px;
  background: radial-gradient(ellipse at 50% 40%, #3a2a1a 0%, #1a1008 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: we2-tremble 0.5s ease-in-out infinite;
}
.scn-weapons .chieftain-head {
  position: absolute; bottom: 63%; left: 34%; width: 30px; height: 32px;
  background: radial-gradient(ellipse at 50% 30%, #4a3222 0%, #2a1a0e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: we2-head 1s ease-in-out infinite alternate;
}
.scn-weapons .bow {
  position: absolute; bottom: 35%; left: 25%; width: 8px; height: 50px;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a22 100%);
  border-radius: 50% 50% 30% 30% / 20% 20% 10% 10%;
  transform: rotate(-20deg);
  transform-origin: bottom center;
  animation: we2-bow 2s ease-in-out infinite alternate;
}
.scn-weapons .shield {
  position: absolute; bottom: 35%; left: 38%; width: 40px; height: 50px;
  background: radial-gradient(ellipse at 50% 50%, #6a4a32 0%, #3a2820 100%);
  border-radius: 50% 50% 40% 40% / 40% 40% 30% 30%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.7);
  animation: we2-shield 1.5s ease-in-out infinite alternate;
}
.scn-weapons .sling-stones {
  position: absolute; bottom: 52%; left: 42%; width: 20px; height: 30px;
  background: radial-gradient(circle at 30% 40%, #7a5a3a 4px, transparent 4px),
              radial-gradient(circle at 60% 50%, #6a4a2a 5px, transparent 5px);
  background-size: 10px 10px; background-repeat: no-repeat;
  animation: we2-sling 3s ease-in-out infinite;
}
.scn-weapons .arrow-shaft {
  position: absolute; bottom: 30%; left: 20%; width: 6px; height: 40px;
  background: linear-gradient(180deg, #a08060 0%, #604020 100%);
  border-radius: 30%;
  transform: rotate(15deg);
  transform-origin: bottom center;
  animation: we2-arrow 4s ease-in-out infinite alternate;
}
@keyframes we2-sky { 0% { opacity: 0.85; } 100% { opacity: 1; } }
@keyframes we2-tremble { 0% { transform: translate(0, 0) rotate(0deg); } 25% { transform: translate(1px, -1px) rotate(0.5deg); } 50% { transform: translate(-1px, 0) rotate(-0.5deg); } 75% { transform: translate(1px, 1px) rotate(0.5deg); } 100% { transform: translate(0, 0) rotate(0deg); } }
@keyframes we2-head { 0% { transform: rotate(-3deg); } 50% { transform: rotate(3deg); } 100% { transform: rotate(-2deg); } }
@keyframes we2-bow { 0% { transform: rotate(-25deg) scaleX(1); } 50% { transform: rotate(-15deg) scaleX(1.05); } 100% { transform: rotate(-20deg) scaleX(1); } }
@keyframes we2-shield { 0% { transform: translateX(0) scale(1); } 50% { transform: translateX(2px) scale(1.02); } 100% { transform: translateX(0) scale(1); } }
@keyframes we2-sling { 0% { transform: rotate(0deg); } 50% { transform: rotate(10deg); } 100% { transform: rotate(0deg); } }
@keyframes we2-arrow { 0% { transform: rotate(10deg) translateY(0); } 50% { transform: rotate(20deg) translateY(-2px); } 100% { transform: rotate(15deg) translateY(0); } }

/* --- no-shooting (calm dawn) --- */
.scn-no-shooting {
  background: linear-gradient(180deg, #d6b89a 0%, #b89878 40%, #8a6a52 100%), radial-gradient(ellipse at 50% 0%, #e6c8a8 0%, transparent 70%);
}
.scn-no-shooting .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #f0d4b8 0%, #d6b89a 60%, transparent 100%);
  animation: nsh3-sky 14s ease-in-out infinite alternate;
}
.scn-no-shooting .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(180deg, #8a6a52 0%, #5a4232 100%);
  border-radius: 50% 40% 0 0 / 20% 15% 0 0;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.3);
}
.scn-no-shooting .foreground-figure {
  position: absolute; bottom: 25%; left: 15%; width: 45px; height: 70px;
  background: radial-gradient(ellipse at 50% 30%, #4a3a2a 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: nsh3-breathe 6s ease-in-out infinite;
}
.scn-no-shooting .gun {
  position: absolute; bottom: 30%; left: 22%; width: 40px; height: 6px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 20% 20% / 50% 50% 50% 50%;
  transform: rotate(15deg);
  transform-origin: left center;
  animation: nsh3-gun 8s ease-in-out infinite;
}
.scn-no-shooting .islander {
  position: absolute; bottom: 20%; right: 25%; width: 35px; height: 55px;
  background: radial-gradient(ellipse at 50% 30%, #6a4a3a 0%, #2a1a12 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: scale(0.9);
  animation: nsh3-islander 7s ease-in-out infinite 1s;
}
.scn-no-shooting .sun {
  position: absolute; top: 15%; right: 20%; width: 45px; height: 45px;
  background: radial-gradient(circle, #fff0d0 0%, #f0c080 50%, transparent 70%);
  border-radius: 50%;
  filter: blur(3px);
  animation: nsh3-sunrise 25s ease-in-out infinite alternate;
}
@keyframes nsh3-sky { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.95; } }
@keyframes nsh3-breathe { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-1px) scaleY(1.01); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes nsh3-gun { 0% { transform: rotate(12deg); } 50% { transform: rotate(18deg); } 100% { transform: rotate(15deg); } }
@keyframes nsh3-islander { 0% { transform: translateX(0) scale(0.9); } 50% { transform: translateX(3px) scale(0.92); } 100% { transform: translateX(0) scale(0.9); } }
@keyframes nsh3-sunrise { 0% { transform: translateX(-5px) scale(0.95); opacity: 0.85; } 50% { transform: translateX(0) scale(1.05); opacity: 1; } 100% { transform: translateX(5px) scale(0.98); opacity: 0.9; } }

/* --- low-tide-lurking (calm sunlit) --- */
.scn-low-tide-lurking {
  background: linear-gradient(180deg, #87c0d0 0%, #6aacb8 40%, #4a8a96 100%), radial-gradient(ellipse at 50% 0%, #a8d8e8 0%, transparent 60%);
}
.scn-low-tide-lurking .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #b8dce8 0%, #87c0d0 60%, transparent 100%);
  animation: lt4-sky 15s ease-in-out infinite alternate;
}
.scn-low-tide-lurking .sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #4a8a96 0%, #2a5a6a 100%);
  border-radius: 30% 70% 0 0 / 10% 20% 0 0;
  animation: lt4-sea 10s ease-in-out infinite alternate;
}
.scn-low-tide-lurking .beach {
  position: absolute; bottom: 30%; left: 10%; right: 10%; height: 25%;
  background: linear-gradient(180deg, #d4b88a 0%, #b89868 100%);
  border-radius: 50% 50% 0 0 / 40% 40% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.2);
}
.scn-low-tide-lurking .nautilus {
  position: absolute; bottom: 40%; left: 50%; width: 100px; height: 40px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform: translateX(-50%) scaleX(0.8);
  box-shadow: 0 -4px 10px rgba(0,0,0,0.4);
  animation: lt4-nautilus 12s ease-in-out infinite alternate;
}
.scn-low-tide-lurking .figure1 {
  position: absolute; bottom: 20%; left: 20%; width: 30px; height: 50px;
  background: radial-gradient(ellipse at 50% 30%, #5a4a3a 0%, #2a1a12 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: lt4-walk 5s ease-in-out infinite;
}
.scn-low-tide-lurking .figure2 {
  position: absolute; bottom: 22%; right: 25%; width: 28px; height: 48px;
  background: radial-gradient(ellipse at 50% 30%, #4a3a2a 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: scale(0.85);
  animation: lt4-walk 6s ease-in-out infinite 0.7s;
}
.scn-low-tide-lurking .sun {
  position: absolute; top: 10%; left: 50%; width: 60px; height: 60px;
  background: radial-gradient(circle, #fff8e0 0%, #f0d090 40%, transparent 70%);
  border-radius: 50%;
  filter: blur(5px);
  transform: translateX(-50%);
  animation: lt4-sun 30s ease-in-out infinite alternate;
}
.scn-low-tide-lurking .wave {
  position: absolute; bottom: 38%; left: 0; right: 0; height: 10px;
  background: linear-gradient(180deg, #6aacb8 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(3px);
  animation: lt4-wave 4s ease-in-out infinite alternate;
}
@keyframes lt4-sky { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.95; } }
@keyframes lt4-sea { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-2px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes lt4-nautilus { 0% { transform: translateX(-50%) scaleX(0.8) rotate(-1deg); } 50% { transform: translateX(-50%) scaleX(0.82) rotate(1deg); } 100% { transform: translateX(-50%) scaleX(0.8) rotate(0deg); } }
@keyframes lt4-walk { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 25% { transform: translateX(4px) translateY(-1px) rotate(2deg); } 50% { transform: translateX(8px) translateY(0) rotate(0deg); } 75% { transform: translateX(4px) translateY(-1px) rotate(-2deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes lt4-sun { 0% { transform: translateX(-55%) scale(0.95); opacity: 0.9; } 50% { transform: translateX(-45%) scale(1.05); opacity: 1; } 100% { transform: translateX(-50%) scale(0.98); opacity: 0.95; } }
@keyframes lt4-wave { 0% { transform: translateX(-5px) scaleY(1); } 50% { transform: translateX(5px) scaleY(1.1); } 100% { transform: translateX(-3px) scaleY(1); } }

.scn-clearing-decks-attack {
  background: linear-gradient(180deg, #ff9966 0%, #ffb380 30%, #87ceeb 100%), radial-gradient(ellipse at 30% 80%, #ffccaa 0%, transparent 70%);
  animation: cda-bg 8s ease-in-out infinite alternate;
}
.scn-clearing-decks-attack .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, rgba(255,180,100,0.8) 0%, rgba(135,206,235,0.4) 100%);
  animation: cda-sky 12s ease-in-out infinite alternate;
}
.scn-clearing-decks-attack .sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #2a5a6a 0%, #1a3a4a 100%);
  border-radius: 60% 40% 0 0 / 30% 20% 0 0;
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.5);
  animation: cda-sea 9s ease-in-out infinite alternate;
}
.scn-clearing-decks-attack .deck {
  position: absolute; bottom: 30%; left: 5%; right: 5%; height: 25%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 -4px 12px rgba(0,0,0,0.6);
  animation: cda-deck 3s ease-in-out infinite alternate;
}
.scn-clearing-decks-attack .railing {
  position: absolute; bottom: 55%; left: 10%; right: 10%; height: 4px;
  background: linear-gradient(90deg, transparent, #5a4a3a 20%, #5a4a3a 80%, transparent);
  border-radius: 2px;
  animation: cda-railing 4s ease-in-out infinite;
}
.scn-clearing-decks-attack .captain {
  position: absolute; bottom: 35%; left: 35%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: cda-captain 6s ease-in-out infinite;
}
.scn-clearing-decks-attack .seaman-1 {
  position: absolute; bottom: 35%; left: 45%; width: 18px; height: 44px;
  background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: cda-seaman1 5s ease-in-out infinite alternate;
}
.scn-clearing-decks-attack .seaman-2 {
  position: absolute; bottom: 35%; left: 55%; width: 18px; height: 44px;
  background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: cda-seaman2 7s ease-in-out infinite alternate;
}
.scn-clearing-decks-attack .hatch {
  position: absolute; bottom: 40%; left: 65%; width: 30px; height: 10px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 0 0;
  box-shadow: 0 2px 6px rgba(0,0,0,0.8);
  animation: cda-hatch 9s ease-in-out infinite;
}
@keyframes cda-bg { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes cda-sky { 0% { transform: translateY(0); opacity: 0.8; } 50% { transform: translateY(-5px); opacity: 1; } 100% { transform: translateY(0); opacity: 0.9; } }
@keyframes cda-sea { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-3px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes cda-deck { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes cda-railing { 0%,100% { transform: scaleX(1); } 50% { transform: scaleX(1.01); } }
@keyframes cda-captain { 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 cda-seaman1 { 0% { transform: translateX(0) rotate(-1deg); } 50% { transform: translateX(4px) rotate(1deg); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes cda-seaman2 { 0% { transform: translateX(0) rotate(1deg); } 50% { transform: translateX(-4px) rotate(-1deg); } 100% { transform: translateX(0) rotate(1deg); } }
@keyframes cda-hatch { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(0.95); } }

.scn-final-collision-ram {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a4e 50%, #0a0a1a 100%), radial-gradient(circle at 70% 50%, #3a4a6a 0%, transparent 60%);
  animation: fcr-bg 15s ease-in-out infinite alternate;
}
.scn-final-collision-ram .wall {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #0a0a1a 0%, #1a1a2e 50%, #0a0a1a 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 40px rgba(0,0,0,0.8);
}
.scn-final-collision-ram .porthole {
  position: absolute; top: 30%; left: 25%; width: 80px; height: 80px;
  background: radial-gradient(circle at 40% 40%, #2a4a6a 0%, #1a2a4a 70%, #0a0a1a 100%);
  border-radius: 50%;
  border: 8px solid #3a3a4a;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.6), 0 0 10px rgba(0,0,0,0.5);
  animation: fcr-porthole 12s ease-in-out infinite alternate;
}
.scn-final-collision-ram .dawn-glow {
  position: absolute; top: 28%; left: 23%; width: 70px; height: 70px;
  background: radial-gradient(circle, rgba(255,150,80,0.6) 0%, rgba(255,200,150,0.2) 50%, transparent 100%);
  border-radius: 50%;
  filter: blur(8px);
  animation: fcr-dawn 18s ease-in-out infinite alternate;
}
.scn-final-collision-ram .nemo-figure {
  position: absolute; bottom: 20%; left: 50%; width: 22px; height: 60px;
  background: linear-gradient(180deg, #0a0a0a 0%, #1a1a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: fcr-nemo 6s ease-in-out infinite;
}
.scn-final-collision-ram .chair {
  position: absolute; bottom: 18%; left: 55%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 4px 6px rgba(0,0,0,0.8);
  animation: fcr-chair 8s ease-in-out infinite alternate;
}
.scn-final-collision-ram .ram-silhouette {
  position: absolute; bottom: 15%; left: 10%; width: 200px; height: 30px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 80% 20% 0 0 / 100% 20% 0 0;
  transform: rotate(-5deg);
  animation: fcr-ram 10s ease-in-out infinite alternate;
}
.scn-final-collision-ram .instrument {
  position: absolute; top: 50%; right: 15%; width: 20px; height: 20px;
  background: radial-gradient(circle, #4a5a6a 0%, #1a2a3a 100%);
  border-radius: 50%;
  box-shadow: 0 0 8px rgba(0,0,0,0.5);
  animation: fcr-instrument 3s ease-in-out infinite;
}
@keyframes fcr-bg { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes fcr-porthole { 0% { box-shadow: inset 0 0 20px rgba(0,0,0,0.6), 0 0 10px rgba(0,0,0,0.5); } 50% { box-shadow: inset 0 0 30px rgba(0,0,0,0.8), 0 0 15px rgba(255,150,80,0.3); } 100% { box-shadow: inset 0 0 20px rgba(0,0,0,0.6), 0 0 10px rgba(0,0,0,0.5); } }
@keyframes fcr-dawn { 0% { opacity: 0.3; transform: scale(1); } 50% { opacity: 0.6; transform: scale(1.1); } 100% { opacity: 0.4; transform: scale(0.95); } }
@keyframes fcr-nemo { 0% { transform: translateX(0) rotate(-3deg); } 20% { transform: translateX(5px) rotate(0deg); } 40% { transform: translateX(0) rotate(3deg); } 60% { transform: translateX(-5px) rotate(0deg); } 80% { transform: translateX(0) rotate(-3deg); } 100% { transform: translateX(0) rotate(-3deg); } }
@keyframes fcr-chair { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(-2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes fcr-ram { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-4deg) translateY(-2px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes fcr-instrument { 0%,100% { box-shadow: 0 0 8px rgba(0,0,0,0.5); } 50% { box-shadow: 0 0 12px rgba(255,200,100,0.3); } }

.scn-nemo-grief-portrait {
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a3a 40%, #0a0a1a 100%), radial-gradient(ellipse at 50% 30%, #2a2a4a 0%, transparent 80%);
  animation: ngp-bg 20s ease-in-out infinite alternate;
}
.scn-nemo-grief-portrait .stateroom-wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 60px rgba(0,0,0,0.9);
}
.scn-nemo-grief-portrait .portrait-a {
  position: absolute; top: 8%; left: 20%; width: 50px; height: 70px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border: 3px solid #3a2a1a;
  border-radius: 2px;
  box-shadow: 0 0 10px rgba(0,0,0,0.5);
  animation: ngp-portrait 12s ease-in-out infinite alternate;
}
.scn-nemo-grief-portrait .portrait-b {
  position: absolute; top: 8%; right: 20%; width: 50px; height: 70px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border: 3px solid #3a2a1a;
  border-radius: 2px;
  box-shadow: 0 0 10px rgba(0,0,0,0.5);
  animation: ngp-portrait 14s ease-in-out infinite alternate;
}
.scn-nemo-grief-portrait .nemo-grief {
  position: absolute; bottom: 8%; left: 50%; width: 24px; height: 55px;
  background: linear-gradient(180deg, #0a0a0a 0%, #1a1a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: ngp-nemo 5s ease-in-out infinite;
}
.scn-nemo-grief-portrait .desk {
  position: absolute; bottom: 5%; left: 35%; right: 35%; height: 10px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.8);
  animation: ngp-desk 7s ease-in-out infinite alternate;
}
.scn-nemo-grief-portrait .candle-glow {
  position: absolute; bottom: 18%; left: 48%; width: 30px; height: 30px;
  background: radial-gradient(circle, rgba(255,180,80,0.4) 0%, rgba(255,200,100,0.1) 50%, transparent 100%);
  border-radius: 50%;
  filter: blur(6px);
  animation: ngp-candle-glow 3s ease-in-out infinite alternate;
}
.scn-nemo-grief-portrait .candle-flame {
  position: absolute; bottom: 22%; left: 49%; width: 8px; height: 14px;
  background: radial-gradient(circle, #ffe080 0%, #ffcc60 40%, #ffa030 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%;
  box-shadow: 0 0 12px 4px rgba(255,200,80,0.6);
  animation: ngp-flame 2s ease-in-out infinite alternate;
}
@keyframes ngp-bg { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes ngp-portrait { 0% { transform: rotate(0deg) scale(1); } 50% { transform: rotate(2deg) scale(1.02); } 100% { transform: rotate(0deg) scale(1); } }
@keyframes ngp-nemo { 0% { transform: translateX(0) rotate(-2deg) translateY(0); } 25% { transform: translateX(2px) rotate(0deg) translateY(-1px); } 50% { transform: translateX(0) rotate(2deg) translateY(0); } 75% { transform: translateX(-2px) rotate(0deg) translateY(-1px); } 100% { transform: translateX(0) rotate(-2deg) translateY(0); } }
@keyframes ngp-desk { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes ngp-candle-glow { 0% { opacity: 0.3; transform: scale(1); } 50% { opacity: 0.6; transform: scale(1.2); } 100% { opacity: 0.4; transform: scale(0.9); } }
@keyframes ngp-flame { 0% { transform: scaleY(1) rotate(-3deg); } 25% { opacity: 0.8; } 50% { transform: scaleY(1.2) rotate(3deg); } 75% { opacity: 1; } 100% { transform: scaleY(1) rotate(-3deg); } }

.scn-after-massacre-flight {
  background: linear-gradient(180deg, #05050a 0%, #0a0a1a 50%, #000005 100%), radial-gradient(ellipse at 50% 20%, #1a1a2a 0%, transparent 70%);
  animation: amf-bg 25s ease-in-out infinite alternate;
}
.scn-after-massacre-flight .lounge-wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #05050a 0%, #0a0a15 100%);
  border-radius: 2px;
  box-shadow: inset 0 0 80px rgba(0,0,0,0.9);
  animation: amf-wall 10s ease-in-out infinite alternate;
}
.scn-after-massacre-flight .panel-left {
  position: absolute; top: 10%; left: 5%; width: 40%; height: 70%;
  background: linear-gradient(180deg, #0a0a15 0%, #15152a 100%);
  border-right: 2px solid #1a1a2a;
  border-radius: 2px;
  box-shadow: inset -4px 0 8px rgba(0,0,0,0.5);
  animation: amf-panel 15s ease-in-out infinite alternate;
}
.scn-after-massacre-flight .panel-right {
  position: absolute; top: 10%; right: 5%; width: 40%; height: 70%;
  background: linear-gradient(180deg, #0a0a15 0%, #15152a 100%);
  border-left: 2px solid #1a1a2a;
  border-radius: 2px;
  box-shadow: inset 4px 0 8px rgba(0,0,0,0.5);
  animation: amf-panel 15s ease-in-out infinite alternate;
}
.scn-after-massacre-flight .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #0a0a15 0%, #05050a 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.6);
}
.scn-after-massacre-flight .chair-empty {
  position: absolute; bottom: 10%; left: 30%; width: 25px; height: 35px;
  background: linear-gradient(180deg, #0a0a15 0%, #15152a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.7);
  animation: amf-chair 8s ease-in-out infinite;
}
.scn-after-massacre-flight .table {
  position: absolute; bottom: 8%; left: 50%; width: 40px; height: 5px;
  background: linear-gradient(180deg, #15152a 0%, #0a0a15 100%);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.6);
  animation: amf-table 12s ease-in-out infinite alternate;
}
.scn-after-massacre-flight .emergency-light {
  position: absolute; top: 15%; left: 50%; width: 12px; height: 12px;
  background: radial-gradient(circle, #2a3a4a 0%, #0a0a15 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px rgba(40,60,80,0.3);
  animation: amf-light 4s ease-in-out infinite alternate;
}
@keyframes amf-bg { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes amf-wall { 0% { transform: translateX(0); } 50% { transform: translateX(-1px) translateY(-1px); } 100% { transform: translateX(0); } }
@keyframes amf-panel { 0% { opacity: 0.6; } 50% { opacity: 0.8; } 100% { opacity: 0.6; } }
@keyframes amf-chair { 0% { transform: translateY(0) rotate(0deg); } 20% { transform: translateY(-1px) rotate(-2deg); } 40% { transform: translateY(0) rotate(2deg); } 60% { transform: translateY(-1px) rotate(0deg); } 80% { transform: translateY(0) rotate(-2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes amf-table { 0% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(1px) scaleX(0.98); } 100% { transform: translateX(0) scaleX(1); } }
@keyframes amf-light { 0% { opacity: 0.2; box-shadow: 0 0 10px rgba(40,60,80,0.2); } 50% { opacity: 0.5; box-shadow: 0 0 30px rgba(40,60,80,0.4); } 100% { opacity: 0.2; box-shadow: 0 0 10px rgba(40,60,80,0.2); } }

.scn-natives-hostile {
  background: 
    linear-gradient(180deg, #1a0e0a 0%, #2a140e 30%, #4a2018 60%, #6a3022 100%),
    radial-gradient(ellipse at 50% 100%, #c8553d 0%, transparent 70%);
}
.scn-natives-hostile .sky-night {
  position:absolute; inset:0 0 50% 0;
  background: linear-gradient(180deg, #0e0806 0%, #2a140e 100%);
  animation: nh-sky 12s ease-in-out infinite alternate;
}
.scn-natives-hostile .sand-beach {
  position:absolute; bottom:0; left:0; right:0; height:50%;
  background: linear-gradient(180deg, #5c3a22 0%, #3a1e12 100%);
  border-radius: 60% 40% 0 0 / 40% 30% 0 0;
  box-shadow: inset 0 12px 24px rgba(0,0,0,.5);
  animation: nh-sand 18s ease-in-out infinite alternate;
}
.scn-natives-hostile .fire {
  position:absolute; bottom:40%; left:30%; width:60px; height:80px;
  background: radial-gradient(ellipse at 50% 80%, #ff8c42 0%, #c8553d 40%, #5c1a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  box-shadow: 0 0 40px 20px #c8553d, 0 0 80px 40px rgba(200,85,61,.3);
  animation: nh-fire 2s ease-in-out infinite alternate;
}
.scn-natives-hostile .figure-ned {
  position:absolute; bottom:38%; left:50%; width:20px; height:45px;
  background: linear-gradient(180deg, #1a120e 0%, #0e0806 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: nh-walk 4s ease-in-out infinite;
}
.scn-natives-hostile .figure-native {
  position:absolute; bottom:38%; left:40%; width:18px; height:42px;
  background: linear-gradient(180deg, #2a1c16 0%, #1a0e0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: nh-native-approach 6s ease-in-out infinite alternate;
}
.scn-natives-hostile .pig {
  position:absolute; bottom:38%; left:55%; width:18px; height:12px;
  background: #5c3a2a;
  border-radius: 50% 50% 30% 30%;
  animation: nh-pig 3s ease-in-out infinite;
}
.scn-natives-hostile .arrow {
  position:absolute; bottom:50%; left:60%; width:30px; height:4px;
  background: #8b5e3c;
  border-radius: 2px;
  transform: rotate(30deg);
  animation: nh-arrow 1.5s ease-in-out infinite;
}
.scn-natives-hostile .kangaroo {
  position:absolute; bottom:38%; right:30%; width:22px; height:28px;
  background: #6a4a32;
  border-radius: 40% 50% 30% 40% / 50% 60% 40% 40%;
  animation: nh-kangaroo 4s ease-in-out infinite alternate;
}
.scn-natives-hostile .smoke {
  position:absolute; bottom:50%; left:32%; width:40px; height:20px;
  background: rgba(140,100,80,.3);
  border-radius: 50%;
  filter: blur(6px);
  animation: nh-smoke 8s linear infinite;
}
@keyframes nh-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.6 } }
@keyframes nh-sand { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes nh-fire { 0% { transform: scaleY(1) scaleX(1) } 50% { transform: scaleY(1.1) scaleX(.95) } 100% { transform: scaleY(1) scaleX(1.05) } }
@keyframes nh-walk { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(5px) rotate(2deg) } 50% { transform: translateX(10px) rotate(-2deg) } 75% { transform: translateX(15px) rotate(2deg) } 100% { transform: translateX(20px) rotate(0) } }
@keyframes nh-native-approach { 0% { transform: translateX(0) scale(1) } 50% { transform: translateX(-8px) scale(1.02) } 100% { transform: translateX(0) scale(1) } }
@keyframes nh-pig { 0%,100% { transform: translateX(0) } 50% { transform: translateX(3px) } }
@keyframes nh-arrow { 0% { transform: rotate(30deg) translateX(0); opacity:1 } 50% { transform: rotate(20deg) translateX(20px); opacity:.5 } 100% { transform: rotate(30deg) translateX(0); opacity:1 } }
@keyframes nh-kangaroo { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-3px) scaleY(1.05) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes nh-smoke { 0% { transform: translateY(0) translateX(0) scale(1); opacity:.4 } 50% { transform: translateY(-30px) translateX(10px) scale(1.3); opacity:.1 } 100% { transform: translateY(-60px) translateX(5px) scale(1.6); opacity:0 } }

.scn-escape-to-skiff {
  background: 
    linear-gradient(180deg, #0e0806 0%, #1a0e0a 30%, #2a1410 70%, #0e0806 100%),
    radial-gradient(ellipse at 50% 0%, #c8553d 0%, transparent 50%);
}
.scn-escape-to-skiff .night-sky {
  position:absolute; inset:0 0 40% 0;
  background: linear-gradient(180deg, #0a0504 0%, #1a0e0a 100%);
  animation: es-sky 10s ease-in-out infinite alternate;
}
.scn-escape-to-skiff .sea {
  position:absolute; bottom:0; left:0; right:0; height:70%;
  background: linear-gradient(180deg, #1a1412 0%, #0e0a0a 100%);
  animation: es-sea 6s ease-in-out infinite alternate;
}
.scn-escape-to-skiff .beach {
  position:absolute; bottom:30%; left:0; right:0; height:20%;
  background: linear-gradient(180deg, #5c3a22 0%, #3a1e12 100%);
  border-radius: 40% 60% 0 0;
}
.scn-escape-to-skiff .skiff {
  position:absolute; bottom:45%; left:40%; width:80px; height:30px;
  background: linear-gradient(180deg, #6a4a32 0%, #3a2216 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
  animation: es-skiff 4s ease-in-out infinite alternate;
}
.scn-escape-to-skiff .figure-ned {
  position:absolute; bottom:48%; left:42%; width:18px; height:40px;
  background: linear-gradient(180deg, #1a120e 0%, #0e0806 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: es-row 3s ease-in-out infinite;
}
.scn-escape-to-skiff .figure-native-water {
  position:absolute; bottom:38%; right:25%; width:16px; height:36px;
  background: linear-gradient(180deg, #2a1c16 0%, #1a0e0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: es-swim 5s ease-in-out infinite alternate;
}
.scn-escape-to-skiff .torch {
  position:absolute; bottom:60%; left:30%; width:10px; height:40px;
  background: linear-gradient(180deg, #c8553d 0%, #5c1a1a 100%);
  border-radius: 5px;
  box-shadow: 0 0 20px 10px #c8553d;
  animation: es-torch 2s ease-in-out infinite alternate;
}
.scn-escape-to-skiff .oar {
  position:absolute; bottom:47%; left:50%; width:40px; height:6px;
  background: #6a4a32;
  border-radius: 3px;
  transform-origin: right center;
  animation: es-oar 2s ease-in-out infinite;
}
.scn-escape-to-skiff .splash {
  position:absolute; bottom:38%; left:35%; width:30px; height:15px;
  background: rgba(200,150,100,.3);
  border-radius: 50%;
  filter: blur(4px);
  animation: es-splash 3s ease-in-out infinite;
}
@keyframes es-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes es-sea { 0% { transform: translateY(0) } 50% { transform: translateY(3px) } 100% { transform: translateY(0) } }
@keyframes es-skiff { 0% { transform: translateX(0) rotate(-2deg) } 50% { transform: translateX(5px) rotate(2deg) } 100% { transform: translateX(0) rotate(-2deg) } }
@keyframes es-row { 0% { transform: translateY(0) rotate(-5deg) } 50% { transform: translateY(-3px) rotate(5deg) } 100% { transform: translateY(0) rotate(-5deg) } }
@keyframes es-swim { 0% { transform: translateX(0) translateY(0) } 50% { transform: translateX(-10px) translateY(-2px) } 100% { transform: translateX(0) translateY(0) } }
@keyframes es-torch { 0% { transform: scaleY(1) scaleX(1); opacity:.9 } 50% { transform: scaleY(1.1) scaleX(.9); opacity:1 } 100% { transform: scaleY(1) scaleX(1); opacity:.8 } }
@keyframes es-oar { 0% { transform: rotate(-20deg) } 50% { transform: rotate(20deg) } 100% { transform: rotate(-20deg) } }
@keyframes es-splash { 0% { transform: scale(1); opacity:.6 } 50% { transform: scale(1.2); opacity:0 } 100% { transform: scale(1); opacity:.6 } }

.scn-nautilus-deserted {
  background: 
    linear-gradient(180deg, #0a0a12 0%, #14142a 40%, #1a1a3a 100%),
    radial-gradient(ellipse at 30% 50%, #2a2040 0%, transparent 60%);
}
.scn-nautilus-deserted .sea-dark {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(180deg, #0e0e1a 0%, #1a1a2e 100%);
  animation: nd-sea 15s ease-in-out infinite alternate;
}
.scn-nautilus-deserted .nautilus-hull {
  position:absolute; bottom:30%; left:20%; width:60%; height:40%;
  background: linear-gradient(180deg, #2a2a4a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
  box-shadow: inset 0 0 30px rgba(0,0,0,.6), 0 10px 20px rgba(0,0,0,.4);
  animation: nd-hull 12s ease-in-out infinite alternate;
}
.scn-nautilus-deserted .platform {
  position:absolute; bottom:45%; left:25%; width:50%; height:8%;
  background: linear-gradient(180deg, #3a3a5a 0%, #2a2a4a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 4px 8px rgba(0,0,0,.4);
}
.scn-nautilus-deserted .hatch-open {
  position:absolute; bottom:50%; left:45%; width:12%; height:15%;
  background: #1a1a2a;
  border-radius: 0 0 10% 10%;
  box-shadow: inset 0 0 10px rgba(0,0,0,.8);
  animation: nd-hatch 8s ease-in-out infinite;
}
.scn-nautilus-deserted .interior-glow {
  position:absolute; bottom:50%; left:42%; width:18%; height:20%;
  background: radial-gradient(ellipse at center, #c0a080 0%, #806040 50%, transparent 100%);
  border-radius: 40%;
  box-shadow: 0 0 30px 15px rgba(192,160,128,.3);
  animation: nd-glow 5s ease-in-out infinite alternate;
}
.scn-nautilus-deserted .skiff-tied {
  position:absolute; bottom:38%; left:28%; width:60px; height:20px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%);
  border-radius: 30% 30% 20% 20%;
  animation: nd-skiff 7s ease-in-out infinite alternate;
}
.scn-nautilus-deserted .figure-board {
  position:absolute; bottom:42%; left:32%; width:16px; height:38px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: nd-climb 5s ease-in-out infinite;
}
.scn-nautilus-deserted .wave {
  position:absolute; bottom:25%; left:0; right:0; height:15%;
  background: linear-gradient(180deg, #1e1e32 0%, transparent 100%);
  border-radius: 50% 60% 0 0;
  filter: blur(4px);
  animation: nd-wave 10s ease-in-out infinite alternate;
}
@keyframes nd-sea { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes nd-hull { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-3px) scale(1.01) } 100% { transform: translateY(0) scale(1) } }
@keyframes nd-hatch { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.05) } 100% { transform: scaleY(1) } }
@keyframes nd-glow { 0% { opacity:.6; transform: scale(1) } 50% { opacity:1; transform: scale(1.1) } 100% { opacity:.7; transform: scale(1) } }
@keyframes nd-skiff { 0% { transform: translateX(0) rotate(-1deg) } 50% { transform: translateX(4px) rotate(1deg) } 100% { transform: translateX(0) rotate(-1deg) } }
@keyframes nd-climb { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(0) } }
@keyframes nd-wave { 0% { transform: translateX(0) scaleY(1) } 50% { transform: translateX(10px) scaleY(1.2) } 100% { transform: translateX(0) scaleY(1) } }

.scn-nemo-at-organ {
  background: 
    linear-gradient(180deg, #3a2a1a 0%, #5a3a22 30%, #8a5a32 100%),
    radial-gradient(ellipse at 50% 70%, #c0a060 0%, transparent 60%);
}
.scn-nemo-at-organ .room-interior {
  position:absolute; inset:0;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 0 60px rgba(0,0,0,.5);
}
.scn-nemo-at-organ .organ-pipes {
  position:absolute; bottom:40%; left:50%; width:60px; height:100px;
  background: linear-gradient(90deg, #6a5a3a 0%, #8a7a5a 30%, #6a5a3a 100%);
  border-radius: 10% 10% 5% 5%;
  transform: translateX(-50%);
  box-shadow: 0 8px 16px rgba(0,0,0,.4);
  animation: no-pipes 12s ease-in-out infinite alternate;
}
.scn-nemo-at-organ .nemo-silhouette {
  position:absolute; bottom:30%; left:50%; width:22px; height:55px;
  background: linear-gradient(180deg, #1a120e 0%, #0e0806 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  transform-origin: bottom center;
  animation: no-nemo 8s ease-in-out infinite;
}
.scn-nemo-at-organ .organ-keyboard {
  position:absolute; bottom:35%; left:40%; width:20%; height:6%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0e 100%);
  border-radius: 2px;
  box-shadow: inset 0 2px 4px rgba(255,255,255,.1);
}
.scn-nemo-at-organ .light-ray {
  position:absolute; top:10%; left:30%; width:40%; height:70%;
  background: linear-gradient(135deg, rgba(255,200,100,.15) 0%, transparent 100%);
  clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%);
  animation: no-light 15s ease-in-out infinite alternate;
}
.scn-nemo-at-organ .music-note {
  position:absolute; bottom:50%; left:55%; width:8px; height:12px;
  background: #c0a060;
  border-radius: 50% 50% 0 0;
  box-shadow: 0 4px 0 #c0a060;
  animation: no-note 6s ease-in-out infinite;
}
.scn-nemo-at-organ .music-note::after {
  content: '';
  position:absolute; top:100%; left:50%; width:2px; height:20px;
  background: #c0a060;
  transform: translateX(-50%);
}
@keyframes no-pipes { 0% { transform: translateX(-50%) scaleY(1) } 50% { transform: translateX(-50%) scaleY(1.02) } 100% { transform: translateX(-50%) scaleY(1) } }
@keyframes no-nemo { 0% { transform: translateX(-50%) rotate(-2deg) } 50% { transform: translateX(-50%) rotate(2deg) } 100% { transform: translateX(-50%) rotate(-2deg) } }
@keyframes no-light { 0% { opacity:.3; transform: translateX(0) } 50% { opacity:.6; transform: translateX(10px) } 100% { opacity:.3; transform: translateX(0) } }
@keyframes no-note { 0% { transform: translateY(0) rotate(0deg); opacity:.8 } 50% { transform: translateY(-20px) rotate(10deg); opacity:1 } 100% { transform: translateY(0) rotate(0deg); opacity:.8 } }

/* la-perouse-final-voyage – solemn, bright interior */
.scn-la-perouse-final-voyage {
  background: linear-gradient(180deg, #4a3728 0%, #3a2a1a 60%, #2a1a0e 100%),
              radial-gradient(ellipse at 50% 100%, #2a1a0e 0%, transparent 70%);
}
.scn-la-perouse-final-voyage .bg-interior { position:absolute; inset:0; background: linear-gradient(135deg, #5a4538 0%, #3a2a1a 100%); animation: lfv-shimmer 12s ease-in-out infinite alternate; }
.scn-la-perouse-final-voyage .floor      { position:absolute; bottom:0; left:0; right:0; height:18%; background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 50%, #2a1a0e 100%); border-radius:4% 4% 0 0; box-shadow: inset 0 6px 12px rgba(0,0,0,.5); }
.scn-la-perouse-final-voyage .window     { position:absolute; top:15%; right:12%; width:22%; height:40%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border: 4px solid #3a2a1a; border-radius:6% 6% 4% 4%; box-shadow: inset 0 0 30px rgba(0,0,0,.6); animation: lfv-window 8s ease-in-out infinite alternate; }
.scn-la-perouse-final-voyage .desk       { position:absolute; bottom:18%; right:24%; width:30%; height:10%; background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%); border-radius:6% 6% 0 0; box-shadow: 0 4px 8px rgba(0,0,0,.5); }
.scn-la-perouse-final-voyage .candle     { position:absolute; bottom:28%; right:34%; width:4%; height:20%; background: linear-gradient(180deg, #e8d8c0 0%, #c8b090 100%); border-radius:20% 20% 30% 30% / 40% 40% 60% 60%; box-shadow: 0 0 10px rgba(232,216,192,.4); animation: lfv-candle 5s ease-in-out infinite; }
.scn-la-perouse-final-voyage .flame      { position:absolute; bottom:48%; right:34%; width:3%; height:12%; background: radial-gradient(ellipse, #f0e0c0 0%, #d0a060 50%, transparent 100%); border-radius:50%; box-shadow: 0 0 20px 6px #d0a060, 0 0 40px 12px rgba(208,160,96,.5); animation: lfv-flame 1.5s ease-in-out infinite alternate; }
.scn-la-perouse-final-voyage .chair      { position:absolute; bottom:18%; right:8%; width:18%; height:28%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%); border-radius:30% 30% 10% 10% / 50% 50% 20% 20%; }
.scn-la-perouse-final-voyage .seaman     { position:absolute; bottom:18%; left:8%; width:12%; height:34%; background: linear-gradient(180deg, #2a1a0e 0%, #1a0e06 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lfv-figure 8s ease-in-out infinite; }
@keyframes lfv-shimmer { 0% { opacity:.9; filter: brightness(1); } 50% { opacity:1; filter: brightness(1.05); } 100% { opacity:.9; filter: brightness(1); } }
@keyframes lfv-window  { 0% { box-shadow: inset 0 0 30px rgba(0,0,0,.6); } 50% { box-shadow: inset 0 0 30px rgba(0,0,0,.8); } 100% { box-shadow: inset 0 0 30px rgba(0,0,0,.6); } }
@keyframes lfv-candle  { 0%,100% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(1deg) translateY(1px); } }
@keyframes lfv-flame   { 0% { transform: scaleY(1) scaleX(1); opacity:.8; } 50% { transform: scaleY(1.3) scaleX(0.9); opacity:1; } 100% { transform: scaleY(0.9) scaleX(1.1); opacity:.7; } }
@keyframes lfv-figure  { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2px) rotate(1deg); } 50% { transform: translateX(0) rotate(-1deg); } 75% { transform: translateX(-2px) rotate(1deg); } }

/* aronnax-asks-how-knows – tense, bright interior */
.scn-aronnax-asks-how-knows {
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 60%, #2a1a0e 100%),
              radial-gradient(ellipse at 50% 80%, #4a3a2a 0%, transparent 70%);
}
.scn-aronnax-asks-how-knows .bg-wall    { position:absolute; inset:0; background: linear-gradient(135deg, #5a4a3a 0%, #3a2a1a 100%); animation: ahk-wall 10s ease-in-out infinite alternate; }
.scn-aronnax-asks-how-knows .table      { position:absolute; bottom:14%; left:20%; right:20%; height:20%; background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius:8% 8% 2% 2% / 20% 20% 5% 5%; box-shadow: 0 8px 16px rgba(0,0,0,.6); }
.scn-aronnax-asks-how-knows .box        { position:absolute; bottom:30%; left:30%; width:16%; height:18%; background: linear-gradient(135deg, #8a6a4a 0%, #5a3a2a 100%); border-radius:8%; box-shadow: 0 0 20px rgba(0,0,0,.5), inset 0 0 6px rgba(200,180,140,.2); animation: ahk-box 6s ease-in-out infinite; }
.scn-aronnax-asks-how-knows .papers     { position:absolute; bottom:28%; left:48%; width:22%; height:14%; background: linear-gradient(180deg, #d8c8a8 0%, #b8a888 100%); border-radius:4%; transform: rotate(5deg); box-shadow: 0 4px 8px rgba(0,0,0,.3); animation: ahk-papers 4s ease-in-out infinite alternate; }
.scn-aronnax-asks-how-knows .lamp       { position:absolute; top:10%; left:45%; right:45%; height:12%; background: linear-gradient(180deg, #c8b090 0%, #a08060 100%); border-radius:50% 50% 40% 40% / 60% 60% 30% 30%; box-shadow: 0 0 30px rgba(192,160,128,.5); animation: ahk-lamp 3s ease-in-out infinite; }
.scn-aronnax-asks-how-knows .light-cone { position:absolute; top:22%; left:38%; right:38%; height:40%; background: linear-gradient(180deg, rgba(232,216,192,.5) 0%, transparent 100%); clip-path: polygon(30% 0%, 70% 0%, 90% 100%, 10% 100%); animation: ahk-cone 5s ease-in-out infinite alternate; }
.scn-aronnax-asks-how-knows .hand       { position:absolute; bottom:34%; left:28%; width:8%; height:18%; background: linear-gradient(180deg, #c8b090 0%, #a08060 100%); border-radius:50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom right; animation: ahk-hand 7s ease-in-out infinite; }
@keyframes ahk-wall   { 0% { opacity:.95; filter: brightness(1); } 50% { opacity:1; filter: brightness(1.08); } 100% { opacity:.95; filter: brightness(1); } }
@keyframes ahk-box    { 0%,100% { transform: rotate(0deg) scale(1); } 25% { transform: rotate(-1deg) scale(1.02); } 50% { transform: rotate(0deg) scale(1); } 75% { transform: rotate(1deg) scale(0.98); } }
@keyframes ahk-papers { 0% { transform: rotate(5deg) translateX(0); } 50% { transform: rotate(8deg) translateX(4px); } 100% { transform: rotate(5deg) translateX(0); } }
@keyframes ahk-lamp   { 0% { transform: scaleY(1) rotate(0deg); } 50% { transform: scaleY(1.05) rotate(1deg); } 100% { transform: scaleY(1) rotate(-1deg); } }
@keyframes ahk-cone   { 0% { opacity:.4; } 50% { opacity:.6; } 100% { opacity:.4; } }
@keyframes ahk-hand   { 0%,100% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(0deg) translateY(-2px); } }

/* kings-marginal-notes – tense, bright interior */
.scn-kings-marginal-notes {
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 60%, #2a1a0e 100%),
              radial-gradient(ellipse at 50% 90%, #3a2a1a 0%, transparent 70%);
}
.scn-kings-marginal-notes .bg-wall      { position:absolute; inset:0; background: linear-gradient(135deg, #5a4a3a 0%, #3a2a1a 100%); animation: kmn-wall 12s ease-in-out infinite alternate; }
.scn-kings-marginal-notes .desk         { position:absolute; bottom:16%; left:16%; right:16%; height:18%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius:6% 6% 2% 2% / 15% 15% 5% 5%; box-shadow: 0 6px 12px rgba(0,0,0,.5); }
.scn-kings-marginal-notes .document     { position:absolute; bottom:30%; left:35%; width:30%; height:20%; background: linear-gradient(180deg, #d8c8a8 0%, #b8a888 100%); border-radius:2%; transform: rotate(-2deg); box-shadow: 0 4px 8px rgba(0,0,0,.3); animation: kmn-doc 8s ease-in-out infinite alternate; }
.scn-kings-marginal-notes .quill        { position:absolute; bottom:48%; left:40%; width:4%; height:22%; background: linear-gradient(180deg, #e0d0b0 0%, #c0a880 100%); border-radius:30% 30% 20% 20% / 50% 50% 30% 30%; transform-origin: bottom left; animation: kmn-quill 3s ease-in-out infinite; }
.scn-kings-marginal-notes .inkwell      { position:absolute; bottom:27%; left:34%; width:6%; height:8%; background: linear-gradient(180deg, #4a3a2a 0%, #1a0e06 100%); border-radius:30% 30% 50% 50% / 40% 40% 60% 60%; box-shadow: 0 2px 4px rgba(0,0,0,.4); }
.scn-kings-marginal-notes .candle-left  { position:absolute; bottom:24%; left:20%; width:3%; height:18%; background: linear-gradient(180deg, #e8d8c0 0%, #c8b090 100%); border-radius:20%; box-shadow: 0 0 8px rgba(232,216,192,.3); animation: kmn-candle-l 5s ease-in-out infinite; }
.scn-kings-marginal-notes .candle-right { position:absolute; bottom:24%; right:22%; width:3%; height:18%; background: linear-gradient(180deg, #e8d8c0 0%, #c8b090 100%); border-radius:20%; box-shadow: 0 0 8px rgba(232,216,192,.3); animation: kmn-candle-r 5s ease-in-out infinite 2.5s; }
.scn-kings-marginal-notes .flame-left   { position:absolute; bottom:42%; left:20%; width:3%; height:10%; background: radial-gradient(ellipse, #f0e0c0 0%, #d0a060 50%, transparent 100%); border-radius:50%; box-shadow: 0 0 16px 4px #d0a060; animation: kmn-flame 1.8s ease-in-out infinite alternate; }
.scn-kings-marginal-notes .flame-right  { position:absolute; bottom:42%; right:22%; width:3%; height:10%; background: radial-gradient(ellipse, #f0e0c0 0%, #d0a060 50%, transparent 100%); border-radius:50%; box-shadow: 0 0 16px 4px #d0a060; animation: kmn-flame 1.8s ease-in-out infinite alternate 0.9s; }
@keyframes kmn-wall   { 0% { opacity:.95; filter: brightness(1); } 50% { opacity:1; filter: brightness(1.05); } 100% { opacity:.95; filter: brightness(1); } }
@keyframes kmn-doc    { 0% { transform: rotate(-2deg); } 50% { transform: rotate(1deg); } 100% { transform: rotate(-2deg); } }
@keyframes kmn-quill  { 0%,100% { transform: rotate(20deg) translateY(0); } 50% { transform: rotate(-10deg) translateY(2px); } }
@keyframes kmn-candle-l { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(2deg); } }
@keyframes kmn-candle-r { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(-2deg); } }
@keyframes kmn-flame  { 0% { transform: scaleY(1) scaleX(1); opacity:.8; } 50% { transform: scaleY(1.4) scaleX(0.85); opacity:1; } 100% { transform: scaleY(0.85) scaleX(1.15); opacity:.7; } }

/* leaving-vanikoro – calm, dawn */
.scn-leaving-vanikoro {
  background: linear-gradient(180deg, #4a6a8a 0%, #7a9aba 30%, #c0d0e0 60%, #e8d0b0 100%),
              radial-gradient(ellipse at 50% 100%, #e8d0b0 0%, transparent 70%);
}
.scn-leaving-vanikoro .sky-dawn       { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #4a6a8a 0%, #7a9aba 40%, #c0d0e0 70%, #f0d8c0 100%); animation: lvk-sky 20s ease-in-out infinite alternate; }
.scn-leaving-vanikoro .ocean          { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #5a7a6a 0%, #3a5a4a 100%); animation: lvk-ocean 15s ease-in-out infinite; }
.scn-leaving-vanikoro .nautilus-hull  { position:absolute; bottom:20%; left:30%; width:40%; height:12%; background: linear-gradient(135deg, #2a4a3a 0%, #1a2a1a 100%); border-radius:40% 40% 50% 50% / 60% 60% 40% 40%; box-shadow: 0 4px 8px rgba(0,0,0,.3); animation: lvk-hull 12s ease-in-out infinite; }
.scn-leaving-vanikoro .nautilus-conning { position:absolute; bottom:32%; left:42%; width:16%; height:8%; background: linear-gradient(180deg, #3a6a5a 0%, #2a4a3a 100%); border-radius:30% 30% 60% 60% / 40% 40% 60% 60%; animation: lvk-conning 12s ease-in-out infinite; }
.scn-leaving-vanikoro .foam           { position:absolute; bottom:15%; left:20%; right:20%; height:4%; background: linear-gradient(90deg, transparent 0%, rgba(220,240,220,.6) 30%, rgba(220,240,220,.8) 50%, rgba(220,240,220,.6) 70%, transparent 100%); border-radius:50%; filter: blur(2px); animation: lvk-foam 8s ease-in-out infinite; }
.scn-leaving-vanikoro .wave-1         { position:absolute; bottom:12%; left:0; right:0; height:10%; background: linear-gradient(180deg, transparent 0%, rgba(100,140,120,.4) 50%, transparent 100%); filter: blur(4px); animation: lvk-wave1 25s linear infinite; }
.scn-leaving-vanikoro .wave-2         { position:absolute; bottom:8%; left:0; right:0; height:8%; background: linear-gradient(180deg, transparent 0%, rgba(120,160,140,.3) 50%, transparent 100%); filter: blur(6px); animation: lvk-wave2 35s linear infinite reverse; }
@keyframes lvk-sky   { 0% { opacity:.9; } 50% { opacity:1; } 100% { opacity:.85; } }
@keyframes lvk-ocean { 0% { background-position: 0% 0%; } 50% { background-position: 5% 2%; } 100% { background-position: 0% 0%; } }
@keyframes lvk-hull  { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(0.5deg); } }
@keyframes lvk-conning { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes lvk-foam  { 0%,100% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(10px) scaleX(1.05); } }
@keyframes lvk-wave1 { 0% { transform: translateX(-20px); } 100% { transform: translateX(120vw); } }
@keyframes lvk-wave2 { 0% { transform: translateX(0); } 100% { transform: translateX(-100vw); } }

/* Scene: nemo-objection-ignored (funny, sunlit) */
.scn-nemo-objection-ignored {
  background: linear-gradient(180deg, #7ec8e3 0%, #b8d4e8 40%, #fce4a8 100%),
              radial-gradient(ellipse at 50% 0%, #fff9e0 0%, transparent 60%);
}
.scn-nemo-objection-ignored .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(135deg, #89cff0 0%, #d4e9f7 100%);
  animation: nmo-sky 12s ease-in-out infinite alternate;
}
.scn-nemo-objection-ignored .sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #4a90d9 0%, #1b6ca8 100%);
  animation: nmo-sea 3s ease-in-out infinite alternate;
}
.scn-nemo-objection-ignored .sand {
  position: absolute; bottom: 12%; left: 5%; right: 5%; height: 20%;
  background: linear-gradient(135deg, #e8c87a 0%, #d4a54a 100%);
  border-radius: 50% 50% 0 0;
  animation: nmo-sand 5s ease-in-out infinite alternate;
}
.scn-nemo-objection-ignored .palm-trunk {
  position: absolute; bottom: 22%; left: 30%; width: 10px; height: 60px;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a301a 100%);
  border-radius: 3px;
  transform-origin: bottom center;
  animation: nmo-palm-sway 4s ease-in-out infinite alternate;
}
.scn-nemo-objection-ignored .palm-top {
  position: absolute; bottom: 50%; left: 28%; width: 50px; height: 30px;
  background: radial-gradient(ellipse 70% 100% at 50% 100%, #3e7d3e 0%, #1e4a1e 100%);
  border-radius: 50%;
  animation: nmo-palm-sway 4s ease-in-out infinite alternate-reverse;
}
.scn-nemo-objection-ignored .skiff {
  position: absolute; bottom: 18%; left: 55%; width: 80px; height: 20px;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a301a 100%);
  border-radius: 0 0 30% 30%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: nmo-skiff 3s ease-in-out infinite alternate;
}
.scn-nemo-objection-ignored .ned {
  position: absolute; bottom: 23%; left: 58%; width: 16px; height: 28px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: nmo-ned 1.5s ease-in-out infinite alternate;
}
.scn-nemo-objection-ignored .conseil {
  position: absolute; bottom: 24%; left: 63%; width: 14px; height: 26px;
  background: linear-gradient(180deg, #4a3a2a 0%, #1a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: nmo-conseil 2s ease-in-out infinite alternate;
}
.scn-nemo-objection-ignored .coconuts {
  position: absolute; bottom: 22%; left: 60%; width: 12px; height: 12px;
  background: radial-gradient(circle at 40% 30%, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 50%;
  box-shadow: 16px -2px 0 #3a2a1a, -8px 4px 0 #4a3a2a;
  animation: nmo-coco 0.8s ease-in-out infinite alternate;
}
@keyframes nmo-sky { 0% { opacity: 0.85 } 50% { opacity: 1 } 100% { opacity: 0.9 } }
@keyframes nmo-sea { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(2px) } }
@keyframes nmo-sand { 0% { transform: scaleX(1) } 50% { transform: scaleX(0.98) translateY(-2px) } 100% { transform: scaleX(1.01) } }
@keyframes nmo-palm-sway { 0% { transform: rotate(-2deg) } 50% { transform: rotate(3deg) } 100% { transform: rotate(-1deg) } }
@keyframes nmo-skiff { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-3px) rotate(2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes nmo-ned { 0% { transform: translateY(0) rotate(-3deg) } 50% { transform: translateY(-2px) rotate(5deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes nmo-conseil { 0% { transform: translateY(0) rotate(2deg) } 50% { transform: translateY(-1px) rotate(-4deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes nmo-coco { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-2px) scale(1.05) } 100% { transform: translateY(0) scale(1) } }

/* Scene: caution-about-other-produce (calm, sunlit) */
.scn-caution-about-other-produce {
  background: linear-gradient(180deg, #a0d4e8 0%, #cfe6f0 40%, #fce4a8 100%),
              radial-gradient(ellipse at 80% 30%, #fff5d0 0%, transparent 60%);
}
.scn-caution-about-other-produce .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(135deg, #b8d8f0 0%, #e0f0ff 100%);
  animation: cau-sky 15s ease-in-out infinite alternate;
}
.scn-caution-about-other-produce .sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #5a9dd4 0%, #2a6fa8 100%);
  animation: cau-sea 6s ease-in-out infinite alternate;
}
.scn-caution-about-other-produce .shore {
  position: absolute; bottom: 15%; left: 10%; right: 20%; height: 18%;
  background: linear-gradient(135deg, #e0c080 0%, #c0a060 100%);
  border-radius: 60% 40% 0 0;
  animation: cau-shore 8s ease-in-out infinite alternate;
}
.scn-caution-about-other-produce .palm-trunk {
  position: absolute; bottom: 25%; left: 25%; width: 8px; height: 50px;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a301a 100%);
  border-radius: 3px;
  transform-origin: bottom center;
  animation: cau-palm 6s ease-in-out infinite alternate;
}
.scn-caution-about-other-produce .palm-top {
  position: absolute; bottom: 48%; left: 22%; width: 45px; height: 28px;
  background: radial-gradient(ellipse 70% 100% at 50% 100%, #4a8a4a 0%, #2a5a2a 100%);
  border-radius: 50%;
  animation: cau-palm 6s ease-in-out infinite alternate-reverse;
}
.scn-caution-about-other-produce .aronnax {
  position: absolute; bottom: 26%; left: 50%; width: 18px; height: 30px;
  background: linear-gradient(180deg, #3a3a2a 0%, #1a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cau-aronnax 4s ease-in-out infinite alternate;
}
.scn-caution-about-other-produce .fruit {
  position: absolute; bottom: 32%; left: 55%; width: 10px; height: 10px;
  background: radial-gradient(circle at 40% 30%, #d4a54a 0%, #a08030 100%);
  border-radius: 50%;
  box-shadow: 12px -4px 0 #c09030;
  animation: cau-fruit 7s ease-in-out infinite alternate;
}
.scn-caution-about-other-produce .bird {
  position: absolute; top: 12%; left: 70%; width: 16px; height: 8px;
  background: linear-gradient(135deg, #4a4a3a 0%, #2a2a1a 100%);
  border-radius: 50%;
  clip-path: polygon(0% 50%, 50% 0%, 100% 50%, 50% 100%);
  animation: cau-bird 10s linear infinite;
}
@keyframes cau-sky { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.95 } }
@keyframes cau-sea { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(1px) } }
@keyframes cau-shore { 0% { transform: translateX(0) } 50% { transform: translateX(2px) } 100% { transform: translateX(-1px) } }
@keyframes cau-palm { 0% { transform: rotate(-1deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-1.5deg) } }
@keyframes cau-aronnax { 0% { transform: rotate(0) } 50% { transform: rotate(3deg) translateX(2px) } 100% { transform: rotate(0) } }
@keyframes cau-fruit { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes cau-bird { 0% { transform: translateX(-20px) } 100% { transform: translateX(110vw) } }

/* Scene: keep-lookout (tense, sunlit) */
.scn-keep-lookout {
  background: linear-gradient(180deg, #b0d0e0 0%, #d8e8f0 40%, #f0d890 100%),
              radial-gradient(ellipse at 30% 0%, #ffe8a0 0%, transparent 50%);
}
.scn-keep-lookout .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(135deg, #90b8d0 0%, #c0d8e8 100%);
  animation: loo-sky 8s ease-in-out infinite alternate;
}
.scn-keep-lookout .sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #3a7ab0 0%, #1a4a78 100%);
  animation: loo-sea 2s ease-in-out infinite alternate;
}
.scn-keep-lookout .rock {
  position: absolute; bottom: 18%; left: 15%; width: 60px; height: 40px;
  background: linear-gradient(135deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 40% 60% 30% 70%;
  box-shadow: inset 0 -4px 8px rgba(0,0,0,0.5);
  animation: loo-rock 1.5s ease-in-out infinite alternate;
}
.scn-keep-lookout .ned-lookout {
  position: absolute; bottom: 28%; left: 18%; width: 16px; height: 32px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0000 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: loo-ned 0.8s ease-in-out infinite alternate;
}
.scn-keep-lookout .conseil-crouch {
  position: absolute; bottom: 22%; left: 12%; width: 14px; height: 20px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: loo-conseil 1.2s ease-in-out infinite alternate;
}
.scn-keep-lookout .binoculars {
  position: absolute; bottom: 36%; left: 22%; width: 6px; height: 10px;
  background: #1a1a1a;
  border-radius: 30%;
  box-shadow: 4px 0 0 #1a1a1a;
  animation: loo-binoc 0.6s ease-in-out infinite alternate;
}
.scn-keep-lookout .shadow {
  position: absolute; bottom: 15%; left: 10%; width: 80px; height: 12px;
  background: rgba(0,0,0,0.3);
  border-radius: 50%;
  filter: blur(4px);
  animation: loo-shadow 2s ease-in-out infinite alternate;
}
.scn-keep-lookout .brush {
  position: absolute; bottom: 25%; right: 20%; width: 30px; height: 20px;
  background: radial-gradient(ellipse 80% 100% at 50% 100%, #3a6a3a 0%, #1a3a1a 100%);
  border-radius: 50%;
  animation: loo-brush 3s ease-in-out infinite alternate;
}
@keyframes loo-sky { 0% { opacity: 0.8 } 50% { opacity: 0.9 } 100% { opacity: 0.7 } }
@keyframes loo-sea { 0% { transform: translateY(0) } 50% { transform: translateY(-5px) } 100% { transform: translateY(3px) } }
@keyframes loo-rock { 0% { transform: translate(0, 0) } 50% { transform: translate(2px, -1px) } 100% { transform: translate(-1px, 1px) } }
@keyframes loo-ned { 0% { transform: rotate(-5deg) } 50% { transform: rotate(7deg) translateX(3px) } 100% { transform: rotate(0) } }
@keyframes loo-conseil { 0% { transform: scaleY(1) } 50% { transform: scaleY(0.9) translateY(2px) } 100% { transform: scaleY(1) } }
@keyframes loo-binoc { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-2px) rotate(5deg) } 100% { transform: translateY(0) rotate(-2deg) } }
@keyframes loo-shadow { 0% { transform: scaleX(1) opacity(0.3) } 50% { transform: scaleX(0.9) opacity(0.4) } 100% { transform: scaleX(1.1) opacity(0.2) } }
@keyframes loo-brush { 0% { transform: rotate(0) } 50% { transform: rotate(5deg) } 100% { transform: rotate(-3deg) } }

/* Scene: cannibal-joke (funny, sunlit) */
.scn-cannibal-joke {
  background: linear-gradient(180deg, #a8d8e8 0%, #c8e0f0 40%, #ffe8b0 100%),
              radial-gradient(ellipse at 70% 40%, #fff0c0 0%, transparent 50%);
}
.scn-cannibal-joke .sky {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(135deg, #a0c8e0 0%, #d0e8f8 100%);
  animation: can-sky 10s ease-in-out infinite alternate;
}
.scn-cannibal-joke .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%);
  border-radius: 20% 20% 0 0;
  animation: can-ground 4s ease-in-out infinite alternate;
}
.scn-cannibal-joke .fire-pit {
  position: absolute; bottom: 18%; left: 40%; width: 40px; height: 20px;
  background: radial-gradient(ellipse at 50% 100%, #c85a1a 0%, #a04010 50%, #5a2000 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 8px #d06a20;
  animation: can-fire 1.5s ease-in-out infinite alternate;
}
.scn-cannibal-joke .ned-ama {
  position: absolute; bottom: 28%; left: 28%; width: 18px; height: 34px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0000 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: can-ned 0.7s ease-in-out infinite alternate;
}
.scn-cannibal-joke .conseil-scared {
  position: absolute; bottom: 29%; left: 48%; width: 16px; height: 28px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: can-conseil 0.9s ease-in-out infinite alternate;
}
.scn-cannibal-joke .joke-bubble {
  position: absolute; bottom: 44%; left: 35%; width: 30px; height: 20px;
  background: rgba(255,255,255,0.4);
  border-radius: 50%;
  filter: blur(2px);
  animation: can-bubble 2s ease-in-out infinite alternate;
}
.scn-cannibal-joke .spark {
  position: absolute; bottom: 32%; left: 52%; width: 4px; height: 4px;
  background: #ffd060;
  border-radius: 50%;
  box-shadow: 0 0 8px 4px #ffd060;
  animation: can-spark 1.2s ease-in-out infinite alternate;
}
@keyframes can-sky { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.9 } }
@keyframes can-ground { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes can-fire { 0% { transform: scaleY(0.95) } 50% { transform: scaleY(1.05) scaleX(1.02) } 100% { transform: scaleY(0.98) } }
@keyframes can-ned { 0% { transform: rotate(-4deg) } 50% { transform: rotate(8deg) translateX(4px) } 100% { transform: rotate(0) } }
@keyframes can-conseil { 0% { transform: scale(1) } 50% { transform: scale(0.9) translateY(-3px) } 100% { transform: scale(1) } }
@keyframes can-bubble { 0% { transform: scale(1) opacity(0.4) } 50% { transform: scale(1.2) opacity(0.6) } 100% { transform: scale(0.9) opacity(0.3) } }
@keyframes can-spark { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-2px) scale(1.5) } 100% { transform: translateY(0) scale(0.8) } }

/* one block per scene id. Append to style.css. */

.scn-dUrville-perplexed {
  background: linear-gradient(180deg, #87CEEB 0%, #FFD700 35%, #F4A460 50%, #B0E0E6 70%, #4682B4 100%),
              radial-gradient(ellipse at 50% 100%, #4682B4 0%, transparent 60%);
}
.scn-dUrville-perplexed .sky    { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #B0E0E6 0%, #87CEEB 40%, transparent 100%); animation: dp-sky 12s ease-in-out infinite alternate; }
.scn-dUrville-perplexed .ocean  { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #4682B4 0%, #2E6B8A 50%, #1A4A6A 100%); border-top:2px solid rgba(255,255,255,0.2); animation: dp-ocean 8s ease-in-out infinite alternate; }
.scn-dUrville-perplexed .sun    { position:absolute; top:15%; left:70%; width:60px; height:60px; background: radial-gradient(circle, #FFF8DC 0%, #FFD700 40%, #F4A460 70%, transparent 100%); border-radius:50%; box-shadow: 0 0 40px 20px rgba(255,215,0,0.5); animation: dp-sun 10s ease-in-out infinite; }
.scn-dUrville-perplexed .ship   { position:absolute; bottom:22%; left:20%; width:120px; height:50px; background: linear-gradient(180deg, #4A3B2A 0%, #2E2318 100%); border-radius: 0 0 30% 30%/0 0 100% 100%; clip-path: polygon(0% 100%, 100% 100%, 90% 40%, 70% 10%, 30% 10%, 10% 40%); animation: dp-ship 6s ease-in-out infinite alternate; }
.scn-dUrville-perplexed .figure { position:absolute; bottom:30%; left:55%; width:20px; height:50px; background: linear-gradient(180deg, #2A1E14 0%, #1A120A 100%); border-radius: 30% 30% 20% 20%/50% 50% 40% 40%; transform-origin: bottom center; animation: dp-figure 4s ease-in-out infinite; }
.scn-dUrville-perplexed .cloud-a{ position:absolute; top:12%; left:10%; width:90px; height:20px; background: linear-gradient(180deg, rgba(255,255,255,0.6) 0%, rgba(255,255,255,0.1) 100%); border-radius:50%; filter: blur(5px); animation: dp-drift-a 40s linear infinite; }
.scn-dUrville-perplexed .cloud-b{ position:absolute; top:20%; right:5%; width:70px; height:16px; 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: dp-drift-b 50s linear infinite reverse; }

@keyframes dp-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes dp-ocean { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes dp-sun { 0% { transform: scale(0.95); box-shadow:0 0 30px 15px rgba(255,215,0,0.3) } 50% { transform: scale(1.05); box-shadow:0 0 50px 25px rgba(255,215,0,0.6) } 100% { transform: scale(1); box-shadow:0 0 40px 20px rgba(255,215,0,0.5) } }
@keyframes dp-ship { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes dp-figure { 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 dp-drift-a { 0% { transform: translateX(-50px) } 100% { transform: translateX(calc(100vw + 50px)) } }
@keyframes dp-drift-b { 0% { transform: translateX(0) } 100% { transform: translateX(-100vw) } }

.scn-astrolabe-arrives-tikopia {
  background: linear-gradient(180deg, #5B9BD5 0%, #87CEEB 30%, #F0E68C 50%, #F4A460 70%, #2E8B57 100%),
              radial-gradient(ellipse at 50% 100%, #2E8B57 0%, transparent 70%);
}
.scn-astrolabe-arrives-tikopia .sky    { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #87CEEB 0%, #B0E0E6 50%, transparent 100%); animation: at-sky 15s ease-in-out infinite alternate; }
.scn-astrolabe-arrives-tikopia .ocean  { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #5B9BD5 0%, #3A7BD5 50%, #1E4D7A 100%); border-top:2px solid rgba(255,255,255,0.3); animation: at-ocean 10s ease-in-out infinite alternate; }
.scn-astrolabe-arrives-tikopia .island { position:absolute; bottom:30%; left:50%; width:160px; height:70px; transform:translateX(-50%); background: linear-gradient(180deg, #3A5F0B 0%, #2E4A08 100%); border-radius: 40% 40% 20% 20%/60% 60% 40% 40%; clip-path: polygon(0% 100%, 100% 100%, 85% 50%, 70% 20%, 30% 20%, 15% 50%); animation: at-island 12s ease-in-out infinite alternate; }
.scn-astrolabe-arrives-tikopia .palm-left { position:absolute; bottom:35%; left:43%; width:20px; height:50px; background: linear-gradient(180deg, #5A3A1A 0%, #3A2A12 100%); border-radius: 20% 20% 10% 10%; transform-origin: bottom center; animation: at-palm 5s ease-in-out infinite alternate; }
.scn-astrolabe-arrives-tikopia .palm-left::after { content:''; position:absolute; top:-15px; left:50%; width:40px; height:20px; background: radial-gradient(ellipse at 50% 100%, #3A6B0C 0%, #2A4A08 60%, transparent 100%); border-radius:50%; transform:translateX(-50%) rotate(30deg); }
.scn-astrolabe-arrives-tikopia .palm-right { position:absolute; bottom:35%; left:55%; width:18px; height:45px; background: linear-gradient(180deg, #5A3A1A 0%, #3A2A12 100%); border-radius: 20% 20% 10% 10%; transform-origin: bottom center; animation: at-palm 6s ease-in-out infinite alternate-reverse; }
.scn-astrolabe-arrives-tikopia .palm-right::after { content:''; position:absolute; top:-12px; left:50%; width:35px; height:18px; background: radial-gradient(ellipse at 50% 100%, #3A6B0C 0%, #2A4A08 60%, transparent 100%); border-radius:50%; transform:translateX(-50%) rotate(-25deg); }
.scn-astrolabe-arrives-tikopia .ship   { position:absolute; bottom:28%; left:25%; width:100px; height:40px; background: linear-gradient(90deg, #4A3B2A 0%, #2E2318 100%); border-radius: 0 0 50% 50%/0 0 100% 100%; clip-path: polygon(0% 100%, 100% 100%, 85% 30%, 70% 5%, 30% 5%, 15% 30%); animation: at-ship 7s ease-in-out infinite alternate; }
.scn-astrolabe-arrives-tikopia .ship::before { content:''; position:absolute; top:-30px; left:40%; width:2px; height:30px; background:#3A2A12; transform:rotate(5deg); }
.scn-astrolabe-arrives-tikopia .ship::after { content:''; position:absolute; top:-25px; left:35%; width:30px; height:2px; background:rgba(255,255,255,0.4); transform:rotate(10deg); transform-origin:left; animation: at-sail 4s ease-in-out infinite alternate; }
.scn-astrolabe-arrives-tikopia .reef   { position:absolute; bottom:20%; left:40%; 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(2px); animation: at-reef 15s ease-in-out infinite alternate; }
.scn-astrolabe-arrives-tikopia .guide  { position:absolute; bottom:32%; left:45%; width:16px; height:40px; background: linear-gradient(180deg, #8B5A2B 0%, #5A3A1A 100%); border-radius: 30% 30% 20% 20%/50% 50% 40% 40%; transform-origin: bottom center; animation: at-guide 6s ease-in-out infinite; }

@keyframes at-sky { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes at-ocean { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes at-island { 0% { transform: translateX(-50%) scale(1) } 50% { transform: translateX(-50%) scale(1.02) } 100% { transform: translateX(-50%) scale(0.98) } }
@keyframes at-palm { 0% { transform: rotate(-5deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(-5deg) } }
@keyframes at-ship { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-1px) rotate(-1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes at-sail { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.3) } 100% { transform: scaleX(1) } }
@keyframes at-reef { 0% { opacity:0.6; transform: scaleX(1) } 50% { opacity:1; transform: scaleX(1.1) } 100% { opacity:0.7; transform: scaleX(1) } }
@keyframes at-guide { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-1px) rotate(2deg) } 100% { transform: translateY(0) rotate(0deg) } }

.scn-rubble-of-little-importance {
  background: linear-gradient(180deg, #A2B5C2 0%, #7A8A9F 30%, #5B6B7A 50%, #3A4A5A 70%, #2A3A4A 100%),
              radial-gradient(ellipse at 50% 100%, #2A3A4A 0%, transparent 70%);
}
.scn-rubble-of-little-importance .sky    { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #C8D0D8 0%, #A2B5C2 50%, transparent 100%); animation: ri-sky 18s ease-in-out infinite alternate; }
.scn-rubble-of-little-importance .cliffs { position:absolute; bottom:30%; left:0; right:0; height:30%; background: linear-gradient(180deg, #6A7A8A 0%, #4A5A6A 100%); border-radius: 30% 70% 0 0/60% 80% 0 0; clip-path: polygon(0% 100%, 100% 100%, 80% 60%, 50% 40%, 20% 70%); animation: ri-cliffs 20s ease-in-out infinite alternate; }
.scn-rubble-of-little-importance .shore  { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #8B7355 0%, #6B5B45 50%, #4B3B2A 100%); border-radius: 40% 60% 0 0/30% 40% 0 0; }
.scn-rubble-of-little-importance .rubble-1 { position:absolute; bottom:12%; left:20%; width:25px; height:15px; background: linear-gradient(135deg, #7A6A5A 0%, #5A4A3A 100%); border-radius: 20% 20% 10% 10%; transform: rotate(15deg); animation: ri-rubble 14s ease-in-out infinite; }
.scn-rubble-of-little-importance .rubble-2 { position:absolute; bottom:18%; left:45%; width:30px; height:12px; background: linear-gradient(-45deg, #6B5B45 0%, #4B3B2A 100%); border-radius: 10% 30% 10% 10%; transform: rotate(-10deg); animation: ri-rubble 16s ease-in-out infinite alternate; }
.scn-rubble-of-little-importance .officer-a { position:absolute; bottom:20%; left:30%; width:18px; height:50px; background: linear-gradient(180deg, #2A2A3A 0%, #1A1A2A 100%); border-radius: 30% 30% 20% 20%/50% 50% 40% 40%; transform-origin: bottom center; animation: ri-officer 8s ease-in-out infinite; }
.scn-rubble-of-little-importance .officer-b { position:absolute; bottom:18%; left:55%; width:18px; height:45px; background: linear-gradient(180deg, #2A2A3A 0%, #1A1A2A 100%); border-radius: 30% 30% 20% 20%/50% 50% 40% 40%; transform-origin: bottom center; animation: ri-officer 9s ease-in-out infinite reverse; }
.scn-rubble-of-little-importance .native  { position:absolute; bottom:15%; right:20%; width:20px; height:35px; background: linear-gradient(180deg, #5A3A1A 0%, #3A2A12 100%); border-radius: 40% 40% 30% 30%/50% 50% 40% 40%; transform-origin: bottom center; animation: ri-native 12s ease-in-out infinite; }

@keyframes ri-sky { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes ri-cliffs { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-2px) scaleY(1.02) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes ri-rubble { 0% { transform: translate(0,0) rotate(15deg) } 50% { transform: translate(2px,-2px) rotate(20deg) } 100% { transform: translate(0,0) rotate(15deg) } }
@keyframes ri-officer { 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 ri-native { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-3px) scale(1.05) } 100% { transform: translateY(0) scale(1) } }

.scn-gifts-gain-trust {
  background: linear-gradient(180deg, #87CEEB 0%, #E0F0E0 30%, #C4D8A0 50%, #8B7355 70%, #5B4520 100%),
              radial-gradient(ellipse at 50% 100%, #5B4520 0%, transparent 70%);
}
.scn-gifts-gain-trust .sky    { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #B0E0E6 0%, #87CEEB 50%, transparent 100%); animation: gg-sky 16s ease-in-out infinite alternate; }
.scn-gifts-gain-trust .ocean  { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #5B9BD5 0%, #3A7BD5 100%); animation: gg-ocean 12s ease-in-out infinite alternate; }
.scn-gifts-gain-trust .palms  { position:absolute; bottom:30%; left:0; right:0; height:40%; background: 
    linear-gradient(0deg, transparent 30%, #3A5F0B 30%, #2E4A08 100%);
  clip-path: polygon(0% 100%, 100% 100%, 90% 50%, 80% 20%, 70% 60%, 60% 10%, 50% 40%, 40% 15%, 30% 50%, 20% 25%, 10% 60%);
  animation: gg-palms 20s ease-in-out infinite alternate;
}
.scn-gifts-gain-trust .path   { position:absolute; bottom:15%; left:50%; width:80px; height:100px; transform:translateX(-50%); background: linear-gradient(180deg, #A08060 0%, #7A6040 100%); border-radius: 50% 50% 20% 20%/30% 30% 20% 20%; clip-path: polygon(0% 100%, 100% 100%, 70% 0%, 30% 0%); animation: gg-path 20s ease-in-out infinite alternate; }
.scn-gifts-gain-trust .figure-jacquinot { position:absolute; bottom:18%; left:45%; width:18px; height:50px; background: linear-gradient(180deg, #2A2A3A 0%, #1A1A2A 100%); border-radius: 30% 30% 20% 20%/50% 50% 40% 40%; transform-origin: bottom center; animation: gg-walk 8s ease-in-out infinite; }
.scn-gifts-gain-trust .figure-jacquinot::after { content:''; position:absolute; top:2px; left:50%; width:14px; height:14px; background: #3A2A1A; border-radius:50%; transform:translateX(-50%); }
.scn-gifts-gain-trust .figure-native { position:absolute; bottom:16%; left:55%; width:20px; height:45px; background: linear-gradient(180deg, #5A3A1A 0%, #3A2A12 100%); border-radius: 30% 30% 20% 20%/50% 50% 40% 40%; transform-origin: bottom center; animation: gg-walk 9s ease-in-out infinite reverse; }
.scn-gifts-gain-trust .figure-native::after { content:''; position:absolute; top:0; left:50%; width:16px; height:16px; background: #4A2A12; border-radius:50%; transform:translateX(-50%); }
.scn-gifts-gain-trust .wreck  { position:absolute; bottom:5%; right:5%; width:100px; height:40px; background: linear-gradient(180deg, #4A3B2A 0%, #2E2318 100%); border-radius: 30% 10% 10% 30%/50% 20% 20% 50%; transform: rotate(-10deg); animation: gg-wreck 15s ease-in-out infinite alternate; }
.scn-gifts-gain-trust .gift-box { position:absolute; bottom:12%; left:30%; width:20px; height:20px; background: linear-gradient(135deg, #C8553D 0%, #A0461A 100%); border-radius: 10%; box-shadow: 0 4px 8px rgba(0,0,0,0.3); animation: gg-gift 6s ease-in-out infinite; }

@keyframes gg-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes gg-ocean { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes gg-palms { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(0.98) } }
@keyframes gg-path { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes gg-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 gg-wreck { 0% { transform: rotate(-10deg) translateY(0) } 50% { transform: rotate(-8deg) translateY(-2px) } 100% { transform: rotate(-10deg) translateY(0) } }
@keyframes gg-gift { 0% { transform: scale(1) rotate(0deg) } 50% { transform: scale(1.1) rotate(10deg) } 100% { transform: scale(1) rotate(0deg) } }

.scn-turtles-caught {
  background: linear-gradient(180deg, #1e5b6e 0%, #0d3b47 40%, #062430 100%), radial-gradient(ellipse at 60% 30%, #3a9bb5 0%, transparent 70%);
}
.scn-turtles-caught .water-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, rgba(20,90,120,0.6) 0%, transparent 60%);
  animation: tc-water 12s ease-in-out infinite alternate;
}
.scn-turtles-caught .light-rays {
  position: absolute; top: 0; left: 20%; right: 20%; height: 60%; background: linear-gradient(180deg, rgba(255,230,180,0.2) 0%, transparent 100%);
  animation: tc-rays 8s ease-in-out infinite alternate;
}
.scn-turtles-caught .net-bg {
  position: absolute; top: 10%; left: 10%; width: 80%; height: 70%; background: repeating-linear-gradient(45deg, transparent, transparent 6px, rgba(100,80,60,0.3) 6px, rgba(100,80,60,0.3) 7px);
  animation: tc-net 20s linear infinite;
}
.scn-turtles-caught .turtle-1 {
  position: absolute; bottom: 25%; left: 30%; width: 50px; height: 40px;
  background: radial-gradient(ellipse at 40% 50%, #4f6a4a 0%, #2d3a28 100%);
  border-radius: 45% 45% 35% 35% / 50% 50% 40% 40%;
  animation: tc-swim1 15s ease-in-out infinite;
}
.scn-turtles-caught .turtle-2 {
  position: absolute; bottom: 40%; left: 55%; width: 35px; height: 30px;
  background: radial-gradient(ellipse at 45% 50%, #5c7a55 0%, #3a5030 100%);
  border-radius: 45% 45% 35% 35% / 50% 50% 40% 40%;
  animation: tc-swim2 18s ease-in-out infinite reverse;
}
.scn-turtles-caught .bubbles-1 {
  position: absolute; bottom: 20%; left: 20%; width: 8px; height: 8px;
  background: radial-gradient(circle, rgba(255,255,255,0.5) 0%, transparent 70%);
  border-radius: 50%; animation: tc-bubble1 6s ease-in infinite;
}
.scn-turtles-caught .bubbles-2 {
  position: absolute; bottom: 35%; left: 50%; width: 5px; height: 5px;
  background: radial-gradient(circle, rgba(255,255,255,0.3) 0%, transparent 70%);
  border-radius: 50%; animation: tc-bubble2 8s ease-in infinite;
}
.scn-turtles-caught .window-frame {
  position: absolute; inset: 5% 5% 10% 5%;
  border: 6px solid #3a4b5a; border-radius: 8px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.5);
}
@keyframes tc-water {
  0% { opacity: 0.8; } 50% { opacity: 0.95; } 100% { opacity: 0.85; }
}
@keyframes tc-rays {
  0% { opacity: 0.3; transform: scaleY(0.9); } 50% { opacity: 0.6; transform: scaleY(1); } 100% { opacity: 0.4; transform: scaleY(0.95); }
}
@keyframes tc-net {
  0% { background-position: 0 0; } 100% { background-position: 40px 40px; }
}
@keyframes tc-swim1 {
  0% { transform: translateX(0) translateY(0) rotate(-2deg); } 25% { transform: translateX(15px) translateY(-5px) rotate(1deg); } 50% { transform: translateX(30px) translateY(0) rotate(-1deg); } 75% { transform: translateX(45px) translateY(-3px) rotate(2deg); } 100% { transform: translateX(60px) translateY(0) rotate(0); }
}
@keyframes tc-swim2 {
  0% { transform: translateX(0) translateY(0) rotate(1deg); } 30% { transform: translateX(-20px) translateY(-2px) rotate(-2deg); } 60% { transform: translateX(-35px) translateY(0) rotate(1deg); } 100% { transform: translateX(-50px) translateY(-1px) rotate(0); }
}
@keyframes tc-bubble1 {
  0% { transform: translateY(0) scale(1); opacity: 0.6; } 50% { transform: translateY(-40px) scale(1.3); opacity: 0.3; } 100% { transform: translateY(-80px) scale(0.8); opacity: 0; }
}
@keyframes tc-bubble2 {
  0% { transform: translateY(0) scale(0.8); opacity: 0.4; } 50% { transform: translateY(-60px) scale(1.1); opacity: 0.2; } 100% { transform: translateY(-120px) scale(0.6); opacity: 0; }
}

.scn-fish-trunkfish {
  background: linear-gradient(135deg, #1e6b7a 0%, #0d4452 40%, #062e3a 100%), radial-gradient(ellipse at 30% 40%, #3fa5c0 0%, transparent 60%);
}
.scn-fish-trunkfish .ocean-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, rgba(40,140,170,0.4) 0%, transparent 50%);
  animation: ft-ocean 14s ease-in-out infinite alternate;
}
.scn-fish-trunkfish .sunbeams {
  position: absolute; top: -10%; left: 30%; width: 40%; height: 120%;
  background: linear-gradient(180deg, rgba(255,220,160,0.25) 0%, transparent 100%);
  transform: rotate(10deg); animation: ft-beams 10s ease-in-out infinite alternate;
}
.scn-fish-trunkfish .panel-left {
  position: absolute; top: 15%; left: 5%; width: 20%; height: 70%;
  background: linear-gradient(90deg, #2a3a4a 0%, #4a5a6a 100%);
  border-radius: 4px; box-shadow: inset -4px 0 8px rgba(0,0,0,0.4);
}
.scn-fish-trunkfish .panel-right {
  position: absolute; top: 15%; right: 5%; width: 20%; height: 70%;
  background: linear-gradient(270deg, #2a3a4a 0%, #4a5a6a 100%);
  border-radius: 4px; box-shadow: inset 4px 0 8px rgba(0,0,0,0.4);
}
.scn-fish-trunkfish .trunkfish-main {
  position: absolute; bottom: 35%; left: 35%; width: 60px; height: 45px;
  background: linear-gradient(135deg, #d4b48a 0%, #a68050 100%);
  border-radius: 30% 30% 40% 40% / 40% 40% 30% 30%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.3);
  animation: ft-dance 4s ease-in-out infinite;
}
.scn-fish-trunkfish .trunkfish-small {
  position: absolute; bottom: 45%; left: 55%; width: 35px; height: 25px;
  background: linear-gradient(135deg, #b89870 0%, #8a6a40 100%);
  border-radius: 30% 30% 40% 40% / 40% 40% 30% 30%;
  animation: ft-swim-small 6s ease-in-out infinite;
}
.scn-fish-trunkfish .particles {
  position: absolute; inset: 0; background-image: radial-gradient(circle, rgba(255,255,255,0.2) 1px, transparent 1px);
  background-size: 30px 30px; animation: ft-dust 25s linear infinite;
}
.scn-fish-trunkfish .floor-edge {
  position: absolute; bottom: 0; left: 0; right: 0; height: 8%;
  background: linear-gradient(180deg, #1a2a32 0%, #0a1a22 100%);
  border-radius: 0 0 4px 4px;
}
@keyframes ft-ocean {
  0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.75; }
}
@keyframes ft-beams {
  0% { opacity: 0.2; transform: rotate(8deg) scaleY(0.9); } 50% { opacity: 0.5; transform: rotate(12deg) scaleY(1.1); } 100% { opacity: 0.3; transform: rotate(10deg) scaleY(1); }
}
@keyframes ft-dance {
  0% { transform: translateY(0) rotate(-2deg); } 40% { transform: translateY(-4px) rotate(1deg); } 70% { transform: translateY(-2px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0); }
}
@keyframes ft-swim-small {
  0% { transform: translateX(0) translateY(0); } 25% { transform: translateX(12px) translateY(-3px); } 50% { transform: translateX(10px) translateY(-1px); } 75% { transform: translateX(22px) translateY(-4px); } 100% { transform: translateX(30px) translateY(-2px); }
}
@keyframes ft-dust {
  0% { background-position: 0 0; } 100% { background-position: 60px 60px; }
}

.scn-triangular-trunkfish {
  background: linear-gradient(180deg, #1f7a8a 0%, #0d4d5a 40%, #062e3a 100%), radial-gradient(ellipse at 40% 50%, #3fa0b5 0%, transparent 60%);
}
.scn-triangular-trunkfish .sea-back {
  position: absolute; inset: 0; background: linear-gradient(180deg, rgba(30,140,170,0.3) 0%, transparent 60%);
  animation: tt-deep 15s ease-in-out infinite alternate;
}
.scn-triangular-trunkfish .light-dappled {
  position: absolute; top: 0; left: 0; width: 100%; height: 50%;
  background: radial-gradient(ellipse at 30% 20%, rgba(255,230,150,0.2) 0%, transparent 70%);
  animation: tt-dapple 10s ease-in-out infinite alternate;
}
.scn-triangular-trunkfish .trunkfish-body {
  position: absolute; bottom: 30%; left: 40%; width: 0; height: 0;
  border-left: 30px solid transparent;
  border-right: 30px solid transparent;
  border-bottom: 50px solid #a08050;
  animation: tt-pulse 5s ease-in-out infinite;
}
.scn-triangular-trunkfish .tail-brown {
  position: absolute; bottom: 28%; left: 38%; width: 15px; height: 20px;
  background: #6a5030; border-radius: 0 50% 50% 0;
  transform: rotate(15deg); animation: tt-tail 5s ease-in-out infinite;
}
.scn-triangular-trunkfish .fin-yellow-left {
  position: absolute; bottom: 40%; left: 43%; width: 12px; height: 8px;
  background: #d4b040; border-radius: 50% 0 0 50%;
  animation: tt-fin 4s ease-in-out infinite alternate;
}
.scn-triangular-trunkfish .fin-yellow-right {
  position: absolute; bottom: 40%; right: 43%; width: 12px; height: 8px;
  background: #d4b040; border-radius: 0 50% 50% 0;
  animation: tt-fin 4s ease-in-out infinite alternate-reverse;
}
.scn-triangular-trunkfish .spots-white {
  position: absolute; bottom: 38%; left: 48%; width: 4px; height: 4px;
  background: rgba(255,255,255,0.6); border-radius: 50%;
  box-shadow: 6px -4px 0 rgba(255,255,255,0.6), -8px 2px 0 rgba(255,255,255,0.6);
}
.scn-triangular-trunkfish .bubble-group {
  position: absolute; bottom: 20%; right: 20%; width: 6px; height: 6px;
  background: radial-gradient(circle, rgba(255,255,255,0.4) 0%, transparent 70%);
  border-radius: 50%; animation: tt-bubbles 7s ease-in infinite;
}
@keyframes tt-deep {
  0% { opacity: 0.8; } 50% { opacity: 0.95; } 100% { opacity: 0.85; }
}
@keyframes tt-dapple {
  0% { opacity: 0.3; transform: scale(0.9); } 50% { opacity: 0.6; transform: scale(1.05); } 100% { opacity: 0.4; transform: scale(0.95); }
}
@keyframes tt-pulse {
  0% { transform: scale(1) rotate(0deg); } 25% { transform: scale(1.05) rotate(-3deg); } 50% { transform: scale(1.02) rotate(2deg); } 75% { transform: scale(1.08) rotate(-1deg); } 100% { transform: scale(1) rotate(0); }
}
@keyframes tt-tail {
  0% { transform: rotate(10deg); } 25% { transform: rotate(20deg); } 50% { transform: rotate(15deg); } 75% { transform: rotate(25deg); } 100% { transform: rotate(10deg); }
}
@keyframes tt-fin {
  0% { width: 10px; } 50% { width: 14px; } 100% { width: 10px; }
}
@keyframes tt-bubbles {
  0% { transform: translateY(0) scale(1); opacity: 0.5; } 50% { transform: translateY(-50px) scale(1.2); opacity: 0.2; } 100% { transform: translateY(-100px) scale(0.6); opacity: 0; }
}

.scn-quadrangular-trunkfish {
  background: linear-gradient(180deg, #1c6b7a 0%, #0d4452 40%, #062e3a 100%), radial-gradient(ellipse at 50% 40%, #3a9bb5 0%, transparent 70%);
}
.scn-quadrangular-trunkfish .water-gradient {
  position: absolute; inset: 0; background: linear-gradient(135deg, rgba(30,130,160,0.4) 0%, transparent 60%);
  animation: qt-water 16s ease-in-out infinite alternate;
}
.scn-quadrangular-trunkfish .rays-soft {
  position: absolute; top: -10%; left: 20%; width: 60%; height: 130%;
  background: linear-gradient(180deg, rgba(255,210,160,0.2) 0%, transparent 100%);
  transform: rotate(8deg); animation: qt-rays 12s ease-in-out infinite alternate;
}
.scn-quadrangular-trunkfish .box-body {
  position: absolute; bottom: 25%; left: 38%; width: 60px; height: 50px;
  background: linear-gradient(135deg, #c8a880 0%, #9a7848 100%);
  border-radius: 15% 15% 20% 20% / 20% 20% 15% 15%;
  box-shadow: 0 6px 16px rgba(0,0,0,0.4);
  animation: qt-float 8s ease-in-out infinite;
}
.scn-quadrangular-trunkfish .protuberance.tl {
  position: absolute; bottom: 50%; left: 40%; width: 10px; height: 10px;
  background: #8a6a40; border-radius: 50%;
  box-shadow: 0 0 6px rgba(0,0,0,0.3);
  animation: qt-protuberance 6s ease-in-out infinite;
}
.scn-quadrangular-trunkfish .protuberance.tr {
  position: absolute; bottom: 50%; left: 58%; width: 10px; height: 10px;
  background: #8a6a40; border-radius: 50%;
  box-shadow: 0 0 6px rgba(0,0,0,0.3);
  animation: qt-protuberance 6s ease-in-out infinite 1.5s;
}
.scn-quadrangular-trunkfish .protuberance.bl {
  position: absolute; bottom: 30%; left: 42%; width: 8px; height: 8px;
  background: #8a6a40; border-radius: 50%;
  box-shadow: 0 0 6px rgba(0,0,0,0.3);
  animation: qt-protuberance 7s ease-in-out infinite 3s;
}
.scn-quadrangular-trunkfish .protuberance.br {
  position: absolute; bottom: 30%; left: 56%; width: 8px; height: 8px;
  background: #8a6a40; border-radius: 50%;
  box-shadow: 0 0 6px rgba(0,0,0,0.3);
  animation: qt-protuberance 7s ease-in-out infinite 4.5s;
}
.scn-quadrangular-trunkfish .spots-under {
  position: absolute; bottom: 33%; left: 44%; width: 4px; height: 4px;
  background: rgba(255,255,255,0.5); border-radius: 50%;
  box-shadow: 8px -2px 0 rgba(255,255,255,0.5), -5px 4px 0 rgba(255,255,255,0.5), 12px 6px 0 rgba(255,255,255,0.5);
}
.scn-quadrangular-trunkfish .drift-fin {
  position: absolute; bottom: 35%; left: 33%; width: 10px; height: 16px;
  background: #d4b040; border-radius: 40% 0 0 40%;
  transform: rotate(10deg); animation: qt-fin 5s ease-in-out infinite alternate;
}
@keyframes qt-water {
  0% { opacity: 0.75; } 50% { opacity: 0.9; } 100% { opacity: 0.8; }
}
@keyframes qt-rays {
  0% { opacity: 0.2; transform: rotate(6deg) scaleY(0.9); } 50% { opacity: 0.5; transform: rotate(10deg) scaleY(1.1); } 100% { opacity: 0.3; transform: rotate(8deg) scaleY(1); }
}
@keyframes qt-float {
  0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-5px) rotate(-2deg); } 50% { transform: translateY(-2px) rotate(1deg); } 75% { transform: translateY(-6px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0); }
}
@keyframes qt-protuberance {
  0% { transform: scale(1); } 50% { transform: scale(1.3); } 100% { transform: scale(1); }
}
@keyframes qt-fin {
  0% { width: 8px; height: 14px; } 50% { width: 12px; height: 18px; } 100% { width: 8px; height: 14px; }
}

/* aronnax-doubts – tense dim interior */
.scn-aronnax-doubts {
  background: linear-gradient(180deg, #0b0f1a 0%, #141826 50%, #1f2a3a 100%), radial-gradient(ellipse at 50% 70%, #1a2030 0%, transparent 60%);
  position: relative;
  overflow: hidden;
}
.scn-aronnax-doubts .bg-deep { position:absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #0a0e15 0%, #0f131e 100%); animation: ad-deep 12s ease-in-out infinite alternate; }
.scn-aronnax-doubts .bg-mid { position:absolute; inset: 30% 10% 20% 10%; background: linear-gradient(180deg, #1c2333 0%, #2a3143 100%); border-radius: 20% 20% 0 0 / 40% 40% 0 0; box-shadow: inset 0 12px 20px rgba(0,0,0,.5); animation: ad-mid 8s ease-in-out infinite alternate; }
.scn-aronnax-doubts .porthole { position:absolute; top: 12%; left: 35%; width: 30%; height: 40%; background: radial-gradient(circle at 50% 60%, #1a3345 0%, #0b111a 70%); border-radius: 50%; border: 6px solid #2c3a4a; box-shadow: inset 0 0 30px #000, 0 0 20px rgba(0,0,0,.5); animation: ad-porthole 6s ease-in-out infinite alternate; }
.scn-aronnax-doubts .figure { position:absolute; bottom: 18%; width: 14%; height: 40%; background: linear-gradient(180deg, #1a1f2a 0%, #0a0e15 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; }
.scn-aronnax-doubts .figure-left { left: 22%; animation: ad-figure-left 2.8s ease-in-out infinite; }
.scn-aronnax-doubts .figure-center { left: 43%; width: 16%; height: 44%; animation: ad-figure-center 3.2s ease-in-out infinite; }
.scn-aronnax-doubts .figure-right { left: 62%; animation: ad-figure-right 3.6s ease-in-out infinite; }
.scn-aronnax-doubts .lantern-glow { position:absolute; bottom: 30%; left: 38%; width: 8px; height: 8px; background: #c8a050; border-radius: 50%; box-shadow: 0 0 30px 8px #a08030, 0 0 60px 18px rgba(160,128,48,.3); animation: ad-glow 2s ease-in-out infinite alternate; }
.scn-aronnax-doubts .shadow-stripe { position:absolute; top: 0; left: 50%; width: 2px; height: 100%; background: rgba(0,0,0,.3); transform: translateX(-50%); animation: ad-stripe 5s ease-in-out infinite; }
@keyframes ad-deep { 0% { opacity: .9; } 50% { opacity: 1; } 100% { opacity: .8; } }
@keyframes ad-mid { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(.98); } 100% { transform: translateY(0) scale(1); } }
@keyframes ad-porthole { 0% { box-shadow: inset 0 0 40px #000, 0 0 20px rgba(0,0,0,.5); } 50% { box-shadow: inset 0 0 60px #000, 0 0 30px rgba(0,0,0,.7); } 100% { box-shadow: inset 0 0 35px #000, 0 0 25px rgba(0,0,0,.5); } }
@keyframes ad-figure-left { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 30% { transform: translateX(2px) translateY(-1px) rotate(1deg); } 60% { transform: translateX(-1px) translateY(0) rotate(-.5deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes ad-figure-center { 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 ad-figure-right { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 40% { transform: translateX(-2px) translateY(-1px) rotate(-1deg); } 70% { transform: translateX(1px) translateY(0) rotate(.5deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes ad-glow { 0% { box-shadow: 0 0 20px 5px #a08030, 0 0 50px 12px rgba(160,128,48,.2); opacity: .8; } 50% { box-shadow: 0 0 35px 10px #c8a050, 0 0 70px 20px rgba(200,160,80,.4); opacity: 1; } 100% { box-shadow: 0 0 25px 6px #a08030, 0 0 55px 15px rgba(160,128,48,.25); opacity: .85; } }
@keyframes ad-stripe { 0% { opacity: .1; } 30% { opacity: .4; } 70% { opacity: .2; } 100% { opacity: .1; } }

/* ending-conversation – calm dim interior */
.scn-ending-conversation {
  background: linear-gradient(180deg, #121726 0%, #1d2336 50%, #2a3042 100%), radial-gradient(ellipse at 50% 80%, #1f2538 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-ending-conversation .bg-deep { position:absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #0f1420 0%, #151b2a 100%); animation: ec-deep 15s ease-in-out infinite alternate; }
.scn-ending-conversation .bg-mid { position:absolute; inset: 25% 5% 15% 5%; background: linear-gradient(180deg, #232b40 0%, #323c55 100%); border-radius: 10% 10% 0 0 / 30% 30% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.4); animation: ec-mid 20s ease-in-out infinite alternate; }
.scn-ending-conversation .table { position:absolute; bottom: 18%; left: 30%; width: 40%; height: 8%; background: linear-gradient(180deg, #3a2f24 0%, #2a1f14 100%); border-radius: 6px; box-shadow: 0 6px 12px rgba(0,0,0,.5); animation: ec-table 12s ease-in-out infinite; }
.scn-ending-conversation .figure { position:absolute; bottom: 22%; width: 16%; height: 35%; background: linear-gradient(180deg, #1e2130 0%, #0e111a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; }
.scn-ending-conversation .seated-left { left: 32%; animation: ec-figure-left 4.5s ease-in-out infinite; }
.scn-ending-conversation .seated-right { left: 52%; animation: ec-figure-right 5s ease-in-out infinite; }
.scn-ending-conversation .mug { position:absolute; bottom: 20%; width: 6%; height: 8%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%; }
.scn-ending-conversation .mug-left { left: 40%; animation: ec-mug 6s ease-in-out infinite; }
.scn-ending-conversation .mug-right { left: 54%; animation: ec-mug 6s ease-in-out infinite reverse; }
.scn-ending-conversation .soft-glow { position:absolute; top: 10%; left: 35%; width: 30%; height: 30%; background: radial-gradient(circle, rgba(200,180,120,.08) 0%, transparent 70%); animation: ec-glow 8s ease-in-out infinite alternate; }
@keyframes ec-deep { 0% { opacity: .8; } 50% { opacity: .95; } 100% { opacity: .85; } }
@keyframes ec-mid { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-1px) scale(.99); } 100% { transform: translateY(0) scale(1); } }
@keyframes ec-table { 0% { box-shadow: 0 6px 12px rgba(0,0,0,.5); } 50% { box-shadow: 0 8px 18px rgba(0,0,0,.6); } 100% { box-shadow: 0 6px 12px rgba(0,0,0,.5); } }
@keyframes ec-figure-left { 0% { transform: translateY(0) rotate(-1deg); } 25% { transform: translateY(-1px) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } 75% { transform: translateY(-1px) rotate(0deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes ec-figure-right { 0% { transform: translateY(0) rotate(1deg); } 25% { transform: translateY(-1px) rotate(0deg); } 50% { transform: translateY(-2px) rotate(-1deg); } 75% { transform: translateY(-1px) rotate(0deg); } 100% { transform: translateY(0) rotate(1deg); } }
@keyframes ec-mug { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-1px) rotate(-3deg); } 60% { transform: translateY(0) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes ec-glow { 0% { opacity: .4; } 50% { opacity: .7; } 100% { opacity: .5; } }

/* nemos-distrust – tense dim interior */
.scn-nemos-distrust {
  background: linear-gradient(180deg, #080b12 0%, #0f1320 40%, #181e2e 100%), radial-gradient(ellipse at 60% 90%, #0d1120 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-nemos-distrust .bg-deep { position:absolute; inset: 0 0 30% 0; background: linear-gradient(180deg, #060910 0%, #0b0e18 100%); animation: nd-deep 10s ease-in-out infinite alternate; }
.scn-nemos-distrust .bg-mid { position:absolute; inset: 20% 5% 10% 5%; background: linear-gradient(180deg, #151c2e 0%, #212a42 100%); border-radius: 15% 15% 0 0 / 35% 35% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.6); animation: nd-mid 14s ease-in-out infinite alternate; }
.scn-nemos-distrust .viewport-slit { position:absolute; top: 8%; left: 35%; width: 30%; height: 50%; background: radial-gradient(ellipse at 50% 60%, #2a3a4a 0%, #0a1018 70%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; border: 4px solid #1a2a3a; box-shadow: inset 0 0 40px #000, 0 0 20px rgba(0,0,0,.7); animation: nd-slit 5s ease-in-out infinite alternate; }
.scn-nemos-distrust .figure { position:absolute; bottom: 10%; left: 41%; width: 18%; height: 45%; background: linear-gradient(180deg, #0a0e17 0%, #030509 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; }
.scn-nemos-distrust .nemo { animation: nd-figure 4s ease-in-out infinite; }
.scn-nemos-distrust .cape { position:absolute; bottom: 10%; left: 39%; width: 22%; height: 48%; background: radial-gradient(ellipse at 30% 100%, #0e141f 0%, #030509 60%); border-radius: 20% 80% 40% 60% / 60% 40% 60% 40%; transform-origin: bottom center; animation: nd-cape 3.8s ease-in-out infinite; }
.scn-nemos-distrust .light-fall { position:absolute; top: 0; left: 40%; width: 20%; height: 100%; background: linear-gradient(180deg, rgba(180,200,220,.06) 0%, transparent 50%, rgba(0,0,0,.2) 100%); animation: nd-light 7s ease-in-out infinite alternate; }
.scn-nemos-distrust .gauge { position:absolute; top: 55%; right: 15%; width: 8%; height: 5%; background: linear-gradient(90deg, #2a3a2a 0%, #4a5a3a 50%, #2a3a2a 100%); border-radius: 4px; box-shadow: inset 0 2px 4px rgba(0,255,0,.1); animation: nd-gauge 3s ease-in-out infinite; }
@keyframes nd-deep { 0% { opacity: .9; } 50% { opacity: 1; } 100% { opacity: .85; } }
@keyframes nd-mid { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(.97); } 100% { transform: translateY(0) scale(1); } }
@keyframes nd-slit { 0% { box-shadow: inset 0 0 50px #000, 0 0 30px rgba(0,0,0,.7); } 50% { box-shadow: inset 0 0 70px #000, 0 0 40px rgba(0,0,0,.9); } 100% { box-shadow: inset 0 0 45px #000, 0 0 25px rgba(0,0,0,.7); } }
@keyframes nd-figure { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-3px) rotate(1deg); } 60% { transform: translateY(0) rotate(-.5deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes nd-cape { 0% { transform: rotate(0deg) scaleX(1); } 30% { transform: rotate(2deg) scaleX(1.02); } 60% { transform: rotate(-1deg) scaleX(.98); } 100% { transform: rotate(0deg) scaleX(1); } }
@keyframes nd-light { 0% { opacity: .2; } 50% { opacity: .5; } 100% { opacity: .25; } }
@keyframes nd-gauge { 0% { opacity: .3; } 50% { opacity: .7; } 100% { opacity: .3; } }

/* karpathos-sighting – calm window-lit */
.scn-karpathos-sighting {
  background: linear-gradient(180deg, #e6d5b8 0%, #cbb59a 50%, #b8a088 100%), radial-gradient(ellipse at 50% 30%, #f5e6d0 0%, transparent 60%);
  position: relative;
  overflow: hidden;
}
.scn-karpathos-sighting .wall-left { position:absolute; top: 0; left: 0; width: 20%; height: 100%; background: linear-gradient(180deg, #b89a7a 0%, #a08060 100%); border-right: 2px solid #8a7050; animation: ks-wall 20s ease-in-out infinite alternate; }
.scn-karpathos-sighting .wall-right { position:absolute; top: 0; right: 0; width: 20%; height: 100%; background: linear-gradient(180deg, #b89a7a 0%, #a08060 100%); border-left: 2px solid #8a7050; animation: ks-wall 20s ease-in-out infinite alternate-reverse; }
.scn-karpathos-sighting .windowsill { position:absolute; bottom: 22%; left: 20%; width: 60%; height: 8%; background: linear-gradient(180deg, #c8b098 0%, #a88870 100%); border-radius: 4px 4px 8px 8px; box-shadow: 0 -4px 8px rgba(0,0,0,.2); animation: ks-sill 12s ease-in-out infinite; }
.scn-karpathos-sighting .window-view { position:absolute; top: 8%; left: 22%; width: 56%; height: 65%; background: linear-gradient(180deg, #b0d4e8 0%, #a0c0d8 40%, #8ab4cc 100%); border: 4px solid #6a5a4a; box-shadow: inset 0 0 30px rgba(0,0,0,.1); animation: ks-view 18s ease-in-out infinite alternate; }
.scn-karpathos-sighting .figure { position:absolute; bottom: 26%; left: 36%; width: 12%; height: 30%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; }
.scn-karpathos-sighting .profile { animation: ks-profile 5s ease-in-out infinite; }
.scn-karpathos-sighting .island { position:absolute; top: 35%; left: 40%; width: 20%; height: 15%; background: linear-gradient(180deg, #6a8a5a 0%, #4a6040 100%); border-radius: 60% 40% 10% 10% / 80% 60% 20% 20%; box-shadow: 0 4px 8px rgba(0,0,0,.3); animation: ks-island 30s ease-in-out infinite alternate; }
.scn-karpathos-sighting .sea { position:absolute; bottom: 25%; left: 22%; width: 56%; height: 30%; background: linear-gradient(180deg, #78a8b8 0%, #5a8090 100%); border-radius: 0 0 10px 10px; box-shadow: inset 0 8px 20px rgba(0,0,0,.2); animation: ks-sea 8s ease-in-out infinite alternate; }
.scn-karpathos-sighting .cloud { position:absolute; }
.scn-karpathos-sighting .wisp { top: 12%; left: 10%; width: 15%; height: 6%; background: linear-gradient(180deg, rgba(255,255,255,.6) 0%, rgba(255,255,255,.1) 100%); border-radius: 50%; filter: blur(8px); animation: ks-wisp 40s linear infinite; }
@keyframes ks-wall { 0% { opacity: .9; } 50% { opacity: 1; } 100% { opacity: .8; } }
@keyframes ks-sill { 0% { box-shadow: 0 -4px 8px rgba(0,0,0,.2); } 50% { box-shadow: 0 -6px 12px rgba(0,0,0,.3); } 100% { box-shadow: 0 -4px 8px rgba(0,0,0,.2); } }
@keyframes ks-view { 0% { filter: brightness(1); } 50% { filter: brightness(1.05); } 100% { filter: brightness(.95); } }
@keyframes ks-profile { 0% { transform: translateY(0) rotate(-1deg); } 30% { transform: translateY(-1px) rotate(0deg); } 60% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes ks-island { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(1.01); } 100% { transform: translateY(0) scale(1); } }
@keyframes ks-sea { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes ks-wisp { 0% { transform: translateX(-20px); } 100% { transform: translateX(120vw); } }

.scn-nautilus-dives-deep {
  background: linear-gradient(180deg, #0a1628 0%, #0d1f3a 40%, #14305a 100%),
              radial-gradient(ellipse at 50% 100%, #1a3b6b 0%, transparent 70%);
}
.scn-nautilus-dives-deep .nd-water {
  position: absolute; inset: 0; background: linear-gradient(180deg, rgba(10,30,60,.6) 0%, transparent 50%);
  animation: nd-water-pulse 12s ease-in-out infinite alternate;
}
.scn-nautilus-dives-deep .nd-porthole {
  position: absolute; top: 50%; left: 50%; width: 160px; height: 160px; transform: translate(-50%, -50%);
  background: radial-gradient(circle, #2a3a4a 0%, #0a1220 60%);
  border: 12px solid #3a4a5a; border-radius: 50%; box-shadow: inset 0 0 30px rgba(0,0,0,.8), 0 0 20px rgba(100,150,200,.3);
  animation: nd-porthole-breathe 8s ease-in-out infinite;
}
.scn-nautilus-dives-deep .nd-glass {
  position: absolute; top: 50%; left: 50%; width: 130px; height: 130px; transform: translate(-50%, -50%);
  background: radial-gradient(circle at 30% 30%, rgba(20,60,100,.5) 0%, rgba(5,15,40,.9) 80%);
  border-radius: 50%; overflow: hidden;
}
.scn-nautilus-dives-deep .nd-coral-a {
  position: absolute; top: 58%; left: 44%; width: 24px; height: 30px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%);
  border-radius: 40% 60% 50% 50% / 60% 40% 50% 50%; transform: rotate(-10deg);
  animation: nd-coral-sway 5s ease-in-out infinite alternate;
}
.scn-nautilus-dives-deep .nd-coral-b {
  position: absolute; top: 60%; left: 52%; width: 18px; height: 24px;
  background: linear-gradient(180deg, #4a4a3a 0%, #2a2a1a 100%);
  border-radius: 50% 40% 60% 40% / 40% 60% 40% 60%; transform: rotate(15deg);
  animation: nd-coral-sway 7s ease-in-out infinite alternate-reverse;
}
.scn-nautilus-dives-deep .nd-glow {
  position: absolute; top: 46%; left: 48%; width: 6px; height: 6px;
  background: radial-gradient(circle, #70c0ff 0%, transparent 70%);
  border-radius: 50%; box-shadow: 0 0 12px 4px #4090d0;
  animation: nd-glow-pulse 3s ease-in-out infinite alternate;
}
.scn-nautilus-dives-deep .nd-figure {
  position: absolute; bottom: 30%; left: 55%; width: 20px; height: 36px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: nd-figure-sway 6s ease-in-out infinite;
}
@keyframes nd-water-pulse {
  0% { opacity: .6; } 50% { opacity: .8; } 100% { opacity: .5; }
}
@keyframes nd-porthole-breathe {
  0% { transform: translate(-50%, -50%) scale(1); box-shadow: inset 0 0 30px rgba(0,0,0,.8), 0 0 20px rgba(100,150,200,.3); }
  50% { transform: translate(-50%, -50%) scale(1.02); box-shadow: inset 0 0 40px rgba(0,0,0,.8), 0 0 30px rgba(100,150,200,.5); }
  100% { transform: translate(-50%, -50%) scale(1); box-shadow: inset 0 0 30px rgba(0,0,0,.8), 0 0 20px rgba(100,150,200,.3); }
}
@keyframes nd-coral-sway {
  0% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-5deg) translateY(-3px); } 100% { transform: rotate(-10deg) translateY(0); }
}
@keyframes nd-glow-pulse {
  0% { box-shadow: 0 0 8px 2px #4090d0; opacity: .7; } 50% { box-shadow: 0 0 18px 6px #60b0f0; opacity: 1; } 100% { box-shadow: 0 0 10px 3px #4090d0; opacity: .8; }
}
@keyframes nd-figure-sway {
  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); }
}

.scn-albacore-school {
  background: linear-gradient(180deg, #0a1628 0%, #0d1f3a 40%, #14305a 100%),
              radial-gradient(ellipse at 50% 100%, #1a3b6b 0%, transparent 70%);
}
.scn-albacore-school .ab-water {
  position: absolute; inset: 0; background: linear-gradient(180deg, rgba(10,30,60,.6) 0%, transparent 50%);
  animation: ab-water-sway 14s ease-in-out infinite alternate;
}
.scn-albacore-school .ab-rail {
  position: absolute; bottom: 20%; left: 10%; right: 10%; height: 4px;
  background: linear-gradient(90deg, transparent, #3a4a5a 20%, #4a5a6a 50%, #3a4a5a 80%, transparent);
  border-radius: 2px; box-shadow: 0 6px 12px rgba(0,0,0,.5);
}
.scn-albacore-school .ab-fish-1 {
  position: absolute; top: 30%; left: -30px; width: 50px; height: 18px;
  background: linear-gradient(180deg, #5a7a9a 0%, #4a6a8a 100%);
  border-radius: 50% 40% 40% 50% / 60% 50% 50% 40%; transform: scaleX(1);
  animation: ab-fish-swim 8s linear infinite;
}
.scn-albacore-school .ab-fish-2 {
  position: absolute; top: 50%; left: -20px; width: 40px; height: 14px;
  background: linear-gradient(180deg, #6a8aaa 0%, #5a7a9a 100%);
  border-radius: 50% 40% 40% 50% / 60% 50% 50% 40%; transform: scaleX(1);
  animation: ab-fish-swim 10s linear infinite 2s;
}
.scn-albacore-school .ab-fish-3 {
  position: absolute; top: 40%; left: -40px; width: 55px; height: 20px;
  background: linear-gradient(180deg, #4a6a8a 0%, #3a5a7a 100%);
  border-radius: 50% 40% 40% 50% / 60% 50% 50% 40%; transform: scaleX(-1);
  animation: ab-fish-swim 12s linear infinite 4s;
}
.scn-albacore-school .ab-fish-4 {
  position: absolute; top: 60%; left: -25px; width: 35px; height: 12px;
  background: linear-gradient(180deg, #7a9aba 0%, #5a7a9a 100%);
  border-radius: 50% 40% 40% 50% / 60% 50% 50% 40%; transform: scaleX(1);
  animation: ab-fish-swim 9s linear infinite 6s;
}
.scn-albacore-school .ab-light {
  position: absolute; top: 10%; left: 50%; width: 40px; height: 40px;
  background: radial-gradient(circle, rgba(200,220,255,.4) 0%, transparent 70%);
  border-radius: 50%; transform: translateX(-50%);
  animation: ab-light-flicker 4s ease-in-out infinite alternate;
}
@keyframes ab-water-sway {
  0% { opacity: .6; } 50% { opacity: .8; } 100% { opacity: .5; }
}
@keyframes ab-fish-swim {
  0% { transform: translateX(-40px) translateY(0) rotate(0deg); }
  25% { transform: translateX(20vw) translateY(-5px) rotate(2deg); }
  50% { transform: translateX(40vw) translateY(0) rotate(0deg); }
  75% { transform: translateX(60vw) translateY(5px) rotate(-2deg); }
  100% { transform: translateX(80vw) translateY(0) rotate(0deg); }
}
@keyframes ab-light-flicker {
  0% { opacity: .3; box-shadow: 0 0 10px 5px rgba(200,220,255,.2); }
  50% { opacity: .6; box-shadow: 0 0 25px 10px rgba(200,220,255,.5); }
  100% { opacity: .3; box-shadow: 0 0 10px 5px rgba(200,220,255,.2); }
}

.scn-gilthead-flying-gurnards {
  background: linear-gradient(180deg, #0a1628 0%, #0d1f3a 40%, #14305a 100%),
              radial-gradient(ellipse at 50% 100%, #1a3b6b 0%, transparent 70%);
}
.scn-gilthead-flying-gurnards .gf-water {
  position: absolute; inset: 0; background: linear-gradient(180deg, rgba(10,30,60,.6) 0%, transparent 50%);
  animation: gf-water-pulse 15s ease-in-out infinite alternate;
}
.scn-gilthead-flying-gurnards .gf-body {
  position: absolute; top: 40%; left: 30%; width: 60px; height: 24px;
  background: linear-gradient(180deg, #4a7a5a 0%, #2a5a3a 100%);
  border-radius: 50% 40% 40% 50% / 60% 50% 50% 40%;
  animation: gf-fish-move 6s ease-in-out infinite alternate;
}
.scn-gilthead-flying-gurnards .gf-tail {
  position: absolute; top: 40%; left: 22%; width: 20px; height: 12px;
  background: linear-gradient(180deg, #3a6a4a 0%, #1a4a2a 100%);
  border-radius: 0 60% 60% 0 / 50% 50%;
  animation: gf-tail-wag 0.8s ease-in-out infinite alternate;
}
.scn-gilthead-flying-gurnards .gf-fin-l {
  position: absolute; top: 36%; left: 35%; width: 30px; height: 16px;
  background: radial-gradient(ellipse at 50% 50%, #6a9a7a 0%, transparent 80%);
  border-radius: 50% 20% 50% 20%; transform: rotate(-30deg);
  animation: gf-fin-flap 1.2s ease-in-out infinite alternate;
}
.scn-gilthead-flying-gurnards .gf-fin-r {
  position: absolute; top: 44%; left: 38%; width: 30px; height: 16px;
  background: radial-gradient(ellipse at 50% 50%, #6a9a7a 0%, transparent 80%);
  border-radius: 20% 50% 20% 50%; transform: rotate(30deg);
  animation: gf-fin-flap 1s ease-in-out infinite alternate-reverse;
}
.scn-gilthead-flying-gurnards .gf-glow-1 {
  position: absolute; top: 38%; left: 28%; width: 8px; height: 8px;
  background: radial-gradient(circle, #70ffa0 0%, transparent 70%);
  border-radius: 50%; box-shadow: 0 0 15px 5px #50d080;
  animation: gf-glow-pulse 2s ease-in-out infinite alternate;
}
.scn-gilthead-flying-gurnards .gf-glow-2 {
  position: absolute; top: 46%; left: 45%; width: 6px; height: 6px;
  background: radial-gradient(circle, #a0ff70 0%, transparent 70%);
  border-radius: 50%; box-shadow: 0 0 10px 3px #80d050;
  animation: gf-glow-pulse 2.5s ease-in-out infinite alternate 1s;
}
@keyframes gf-water-pulse {
  0% { opacity: .5; } 50% { opacity: .7; } 100% { opacity: .5; }
}
@keyframes gf-fish-move {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  50% { transform: translateX(20px) translateY(-5px) rotate(3deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes gf-tail-wag {
  0% { transform: rotate(0deg); } 50% { transform: rotate(20deg); } 100% { transform: rotate(0deg); }
}
@keyframes gf-fin-flap {
  0% { transform: rotate(-30deg) scaleX(1); } 50% { transform: rotate(-10deg) scaleX(1.2); } 100% { transform: rotate(-30deg) scaleX(1); }
}
@keyframes gf-glow-pulse {
  0% { box-shadow: 0 0 8px 2px #50d080; opacity: .6; } 50% { box-shadow: 0 0 20px 8px #70f0a0; opacity: 1; } 100% { box-shadow: 0 0 10px 3px #50d080; opacity: .7; }
}

.scn-floating-algae {
  background: linear-gradient(180deg, #3a7ab0 0%, #5a9ac8 30%, #4a8ab8 60%, #2a5a7a 100%),
              radial-gradient(ellipse at 50% 0%, #a0d8ff 0%, transparent 60%);
}
.scn-floating-algae .fa-water {
  position: absolute; inset: 0; background: linear-gradient(180deg, rgba(255,255,255,.15) 0%, transparent 40%, rgba(0,20,40,.2) 100%);
  animation: fa-water-shimmer 10s ease-in-out infinite alternate;
}
.scn-floating-algae .fa-sunrays {
  position: absolute; top: 0; left: 20%; width: 60%; height: 100%;
  background: linear-gradient(135deg, rgba(255,240,200,.3) 0%, transparent 50%, rgba(255,240,200,.1) 80%, transparent 100%);
  animation: fa-rays-move 8s ease-in-out infinite alternate;
}
.scn-floating-algae .fa-kelp-1 {
  position: absolute; bottom: 30%; left: 20%; width: 14px; height: 120px;
  background: linear-gradient(180deg, #5a8a4a 0%, #3a6a2a 50%, #2a5a1a 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%; transform-origin: bottom center;
  animation: fa-kelp-sway 5s ease-in-out infinite alternate;
}
.scn-floating-algae .fa-kelp-2 {
  position: absolute; bottom: 35%; left: 35%; width: 12px; height: 100px;
  background: linear-gradient(180deg, #6a9a5a 0%, #4a7a3a 50%, #2a5a1a 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%; transform-origin: bottom center;
  animation: fa-kelp-sway 6s ease-in-out infinite alternate-reverse;
}
.scn-floating-algae .fa-kelp-3 {
  position: absolute; bottom: 40%; left: 50%; width: 10px; height: 140px;
  background: linear-gradient(180deg, #4a7a3a 0%, #2a5a2a 50%, #1a4a1a 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%; transform-origin: bottom center;
  animation: fa-kelp-sway 7s ease-in-out infinite alternate 2s;
}
.scn-floating-algae .fa-algae-blob {
  position: absolute; top: 30%; right: 25%; width: 50px; height: 40px;
  background: radial-gradient(ellipse at 40% 30%, #7aaa6a 0%, #4a7a3a 60%, #2a5a1a 100%);
  border-radius: 50% 40% 60% 40% / 40% 50% 50% 60%;
  animation: fa-blob-drift 12s ease-in-out infinite alternate;
}
.scn-floating-algae .fa-fish {
  position: absolute; bottom: 20%; left: -20px; width: 30px; height: 12px;
  background: linear-gradient(180deg, #8ab8a0 0%, #6a9a8a 100%);
  border-radius: 50% 40% 40% 50% / 60% 50% 50% 40%;
  animation: fa-fish-swim 10s linear infinite;
}
@keyframes fa-water-shimmer {
  0% { opacity: .6; } 50% { opacity: .8; } 100% { opacity: .7; }
}
@keyframes fa-rays-move {
  0% { transform: translateX(-5%) rotate(0deg); } 50% { transform: translateX(5%) rotate(2deg); } 100% { transform: translateX(-3%) rotate(0deg); }
}
@keyframes fa-kelp-sway {
  0% { transform: rotate(-3deg); } 50% { transform: rotate(3deg); } 100% { transform: rotate(-2deg); }
}
@keyframes fa-blob-drift {
  0% { transform: translate(0, 0) rotate(0deg); } 50% { transform: translate(10px, -10px) rotate(5deg); } 100% { transform: translate(0, 0) rotate(0deg); }
}
@keyframes fa-fish-swim {
  0% { transform: translateX(-30px) translateY(0); }
  25% { transform: translateX(20vw) translateY(-3px); }
  50% { transform: translateX(40vw) translateY(0); }
  75% { transform: translateX(60vw) translateY(3px); }
  100% { transform: translateX(80vw) translateY(0); }
}

.scn-tuamotu-islands-raised {
  background: linear-gradient(180deg, #f7e8c8 0%, #b8c9e8 40%, #3a5f7a 100%), radial-gradient(ellipse at 30% 60%, #f7e8c8 10%, transparent 60%);
}
.scn-tuamotu-islands-raised .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #fff5e0 0%, #d4e4f7 60%, #b8c9e8 100%);
  animation: tu-sky 12s ease-in-out infinite alternate;
}
.scn-tuamotu-islands-raised .ocean {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #1a4a6a 0%, #0d2b40 100%);
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.5);
  animation: tu-ocean 8s ease-in-out infinite;
}
.scn-tuamotu-islands-raised .sun {
  position: absolute; top: 18%; left: 70%; width: 50px; height: 50px;
  border-radius: 50%;
  background: radial-gradient(circle, #fff7c0 0%, #f2d47a 100%);
  box-shadow: 0 0 60px 30px #f2d47a, 0 0 120px 60px rgba(242,212,122,0.4);
  animation: tu-sun 20s ease-in-out infinite alternate;
}
.scn-tuamotu-islands-raised .island-far {
  position: absolute; bottom: 45%; left: 20%; width: 120px; height: 30px;
  border-radius: 50% 50% 10% 10% / 20% 20% 5% 5%;
  background: linear-gradient(180deg, #8b7355 0%, #4a6b3a 100%);
  filter: blur(2px); opacity: 0.7;
  animation: tu-island-far 25s ease-in-out infinite;
}
.scn-tuamotu-islands-raised .island-mid {
  position: absolute; bottom: 40%; left: 50%; width: 100px; height: 40px;
  border-radius: 30% 70% 20% 20% / 40% 60% 10% 10%;
  background: linear-gradient(180deg, #7a9e6b 0%, #3a5a2a 100%);
  box-shadow: inset 0 -8px 12px rgba(0,0,0,0.4);
  animation: tu-island-mid 18s ease-in-out infinite alternate;
}
.scn-tuamotu-islands-raised .submarine {
  position: absolute; bottom: 30%; left: 35%; width: 120px; height: 30px;
  border-radius: 40% 40% 30% 30% / 60% 60% 20% 20%;
  background: linear-gradient(180deg, #2a3a3a 0%, #0a1a1a 100%);
  box-shadow: 0 4px 8px rgba(0,0,0,0.6), inset 0 2px 4px #4a5a5a;
  animation: tu-sub 10s ease-in-out infinite;
}
.scn-tuamotu-islands-raised .cloud-a,
.scn-tuamotu-islands-raised .cloud-b {
  position: absolute; height: 20px;
  background: linear-gradient(180deg, rgba(255,255,240,0.7) 0%, rgba(200,210,230,0.2) 100%);
  border-radius: 50%; filter: blur(6px);
}
.scn-tuamotu-islands-raised .cloud-a {
  top: 12%; left: 10%; width: 100px;
  animation: tu-drift-a 40s linear infinite;
}
.scn-tuamotu-islands-raised .cloud-b {
  top: 15%; left: 60%; width: 70px;
  animation: tu-drift-b 55s linear infinite reverse;
}
@keyframes tu-sky {
  0% { opacity: 0.8; background-position: 0% 0%; }
  50% { opacity: 1; background-position: 10% 5%; }
  100% { opacity: 0.9; background-position: 0% 0%; }
}
@keyframes tu-ocean {
  0% { transform: translateY(0); }
  50% { transform: translateY(3px); }
  100% { transform: translateY(0); }
}
@keyframes tu-sun {
  0% { transform: translate(0, 0); box-shadow: 0 0 50px 25px #f2d47a; }
  50% { transform: translate(5px, -5px); box-shadow: 0 0 80px 40px #ffe792; }
  100% { transform: translate(0, 0); box-shadow: 0 0 50px 25px #f2d47a; }
}
@keyframes tu-island-far {
  0% { transform: scale(1) translateY(0); opacity: 0.7; }
  50% { transform: scale(1.02) translateY(-2px); opacity: 0.8; }
  100% { transform: scale(1) translateY(0); opacity: 0.7; }
}
@keyframes tu-island-mid {
  0% { transform: translateX(-50%) scale(1); }
  50% { transform: translateX(-50%) scale(1.01) translateY(-1px); }
  100% { transform: translateX(-50%) scale(1); }
}
@keyframes tu-sub {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(8px) rotate(2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes tu-drift-a {
  0% { transform: translateX(-50px); }
  100% { transform: translateX(120vw); }
}
@keyframes tu-drift-b {
  0% { transform: translateX(0); }
  100% { transform: translateX(-100vw); }
}

.scn-island-group-description {
  background: linear-gradient(180deg, #1a3a5a 0%, #2b5f7a 40%, #0d2b40 100%), radial-gradient(ellipse at 50% 60%, #3a7a9a 20%, transparent 70%);
}
.scn-island-group-description .deep-water {
  position: absolute; inset: 0;
  background: linear-gradient(0deg, #0d2b40 0%, #1a4a6a 100%);
  animation: ig-water 20s ease-in-out infinite alternate;
}
.scn-island-group-description .atoll-ring {
  position: absolute; top: 50%; left: 50%; width: 250px; height: 100px;
  transform: translate(-50%, -50%);
  border-radius: 20% 80% 30% 70% / 40% 60% 60% 40%;
  background: linear-gradient(135deg, #5a8a6a 0%, #7aae7a 60%, #3a5a3a 100%);
  box-shadow: 0 0 40px 10px rgba(90,138,106,0.4);
  animation: ig-atoll 30s ease-in-out infinite;
}
.scn-island-group-description .lagoon {
  position: absolute; top: 50%; left: 50%; width: 180px; height: 60px;
  transform: translate(-50%, -50%);
  border-radius: 30% 70% 40% 60% / 50% 50% 50% 50%;
  background: radial-gradient(circle at 60% 40%, #6ab8a0 0%, #2a7a6a 70%);
  box-shadow: inset 0 0 20px #184a40;
  animation: ig-lagoon 18s ease-in-out infinite alternate;
}
.scn-island-group-description .polyps {
  position: absolute; top: 50%; left: 50%; width: 220px; height: 80px;
  transform: translate(-50%, -50%);
  background: radial-gradient(circle at 30% 20%, #8a9a5a 4px, transparent 4px),
              radial-gradient(circle at 55% 40%, #6a8a4a 5px, transparent 5px),
              radial-gradient(circle at 70% 60%, #4a7a3a 6px, transparent 6px),
              radial-gradient(circle at 20% 70%, #7a9a5a 4px, transparent 4px);
  background-size: 40px 40px;
  background-repeat: no-repeat;
  animation: ig-polyps 25s ease-in-out infinite;
}
.scn-island-group-description .reef-line {
  position: absolute; top: 50%; left: 50%; width: 260px; height: 90px;
  transform: translate(-50%, -50%);
  border-radius: 30% 70% 20% 80% / 50% 30% 70% 50%;
  border: 2px solid rgba(200,180,120,0.3);
  box-shadow: 0 0 30px 15px rgba(200,180,120,0.15);
  animation: ig-reef 35s linear infinite;
}
.scn-island-group-description .sub-dot {
  position: absolute; bottom: 45%; left: 60%; width: 10px; height: 6px;
  border-radius: 50%;
  background: #3a4a5a;
  box-shadow: 0 0 4px 2px #2a3a4a;
  animation: ig-sub 12s ease-in-out infinite;
}
@keyframes ig-water {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes ig-atoll {
  0% { transform: translate(-50%, -50%) scale(1) rotate(0deg); }
  50% { transform: translate(-50%, -50%) scale(1.02) rotate(2deg); }
  100% { transform: translate(-50%, -50%) scale(1) rotate(0deg); }
}
@keyframes ig-lagoon {
  0% { transform: translate(-50%, -50%) scale(1); }
  50% { transform: translate(-50%, -50%) scale(1.01); }
  100% { transform: translate(-50%, -50%) scale(1); }
}
@keyframes ig-polyps {
  0% { background-position: 0% 0%; }
  50% { background-position: 10% 5%; }
  100% { background-position: 0% 0%; }
}
@keyframes ig-reef {
  0% { transform: translate(-50%, -50%) rotate(0deg); border-color: rgba(200,180,120,0.3); }
  50% { transform: translate(-50%, -50%) rotate(5deg); border-color: rgba(200,180,120,0.6); }
  100% { transform: translate(-50%, -50%) rotate(0deg); border-color: rgba(200,180,120,0.3); }
}
@keyframes ig-sub {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-2px) scale(1.2); }
  100% { transform: translateY(0) scale(1); }
}

.scn-fifth-continent-vision {
  background: linear-gradient(180deg, #0a1628 0%, #1a2a4a 40%, #2a4a6a 80%, #4a7a9a 100%), radial-gradient(ellipse at 50% 20%, #3a6a9a 30%, transparent 70%);
}
.scn-fifth-continent-vision .deep-sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #0a1628 0%, #1a2a4a 100%);
  animation: fc-sky 15s ease-in-out infinite alternate;
}
.scn-fifth-continent-vision .horizon-glow {
  position: absolute; bottom: 50%; left: 0; right: 0; height: 15%;
  background: linear-gradient(0deg, #5a8aba 0%, transparent 100%);
  opacity: 0.6;
  animation: fc-glow 20s ease-in-out infinite;
}
.scn-fifth-continent-vision .continent-silhouette {
  position: absolute; bottom: 50%; left: 50%; width: 300px; height: 120px;
  transform: translate(-50%, 0);
  border-radius: 10% 90% 30% 70% / 20% 30% 70% 80%;
  background: linear-gradient(180deg, #2a3a2a 0%, #0a1a0a 100%);
  box-shadow: 0 -10px 40px rgba(42,58,42,0.5);
  animation: fc-continent 30s ease-in-out infinite alternate;
}
.scn-fifth-continent-vision .stars-layer {
  position: absolute; top: 0; left: 0; right: 0; height: 70%;
  background: radial-gradient(2px 2px at 10% 20%, #fff 50%, transparent 50%),
              radial-gradient(3px 3px at 30% 40%, #fff 50%, transparent 50%),
              radial-gradient(2px 2px at 60% 10%, #fff 50%, transparent 50%),
              radial-gradient(2px 2px at 80% 30%, #fff 50%, transparent 50%),
              radial-gradient(3px 3px at 50% 60%, #fff 50%, transparent 50%);
  background-size: 100% 100%; background-repeat: no-repeat;
  animation: fc-stars 40s linear infinite;
}
.scn-fifth-continent-vision .moon-glow {
  position: absolute; top: 15%; left: 75%; width: 30px; height: 30px;
  border-radius: 50%;
  background: radial-gradient(circle, #fffde0 0%, #e0d8b0 100%);
  box-shadow: 0 0 60px 30px rgba(224,216,176,0.3);
  animation: fc-moon 25s ease-in-out infinite alternate;
}
.scn-fifth-continent-vision .sub-silhouette {
  position: absolute; bottom: 45%; left: 30%; width: 80px; height: 20px;
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  background: #1a2a3a;
  opacity: 0.7;
  animation: fc-sub 14s ease-in-out infinite;
}
.scn-fifth-continent-vision .cloud-wisp {
  position: absolute; top: 35%; left: 10%; width: 120px; height: 10px;
  background: linear-gradient(90deg, rgba(200,210,230,0.4) 0%, transparent 100%);
  filter: blur(8px);
  animation: fc-wisp 50s linear infinite;
}
@keyframes fc-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; background-position: 0% 0%; }
  100% { opacity: 0.9; }
}
@keyframes fc-glow {
  0% { opacity: 0.4; transform: scaleY(1); }
  50% { opacity: 0.8; transform: scaleY(1.2); }
  100% { opacity: 0.4; transform: scaleY(1); }
}
@keyframes fc-continent {
  0% { transform: translate(-50%, 0) scale(1); border-radius: 10% 90% 30% 70% / 20% 30% 70% 80%; }
  50% { transform: translate(-50%, 0) scale(1.01) translateY(-3px); border-radius: 15% 85% 35% 65% / 25% 35% 65% 75%; }
  100% { transform: translate(-50%, 0) scale(1); border-radius: 10% 90% 30% 70% / 20% 30% 70% 80%; }
}
@keyframes fc-stars {
  0% { opacity: 0.6; transform: rotate(0deg); }
  50% { opacity: 1; transform: rotate(2deg); }
  100% { opacity: 0.6; transform: rotate(0deg); }
}
@keyframes fc-moon {
  0% { transform: translate(0, 0); box-shadow: 0 0 50px 20px rgba(224,216,176,0.2); }
  50% { transform: translate(-3px, 3px); box-shadow: 0 0 80px 40px rgba(224,216,176,0.4); }
  100% { transform: translate(0, 0); box-shadow: 0 0 50px 20px rgba(224,216,176,0.2); }
}
@keyframes fc-sub {
  0% { transform: translateX(0) scaleX(1); }
  50% { transform: translateX(10px) scaleX(1.05); }
  100% { transform: translateX(0) scaleX(1); }
}
@keyframes fc-wisp {
  0% { transform: translateX(-50px); opacity: 0; }
  10% { opacity: 0.5; }
  90% { opacity: 0.5; }
  100% { transform: translateX(120vw); opacity: 0; }
}

.scn-reao-island-approach {
  background: linear-gradient(180deg, #b8d4e8 0%, #7a9ec8 30%, #3a6a8a 70%, #0d2b40 100%), radial-gradient(ellipse at 70% 30%, #e8d8b0 30%, transparent 70%);
}
.scn-reao-island-approach .ocean-bg {
  position: absolute; bottom: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(180deg, #1a4a6a 0%, #0d2b40 100%);
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.4);
  animation: re-ocean 9s ease-in-out infinite alternate;
}
.scn-reao-island-approach .sky-bg {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #fff5e0 0%, #d4e4f7 40%, #7a9ec8 100%);
  animation: re-sky 14s ease-in-out infinite;
}
.scn-reao-island-approach .sun-glow {
  position: absolute; top: 15%; left: 80%; width: 45px; height: 45px;
  border-radius: 50%;
  background: radial-gradient(circle, #fff7c0 0%, #f2d47a 100%);
  box-shadow: 0 0 70px 30px #f2d47a, 0 0 140px 60px rgba(242,212,122,0.4);
  animation: re-sun 22s ease-in-out infinite alternate;
}
.scn-reao-island-approach .island-shore {
  position: absolute; bottom: 40%; left: 50%; width: 180px; height: 100px;
  transform: translateX(-50%);
  border-radius: 40% 60% 20% 20% / 30% 40% 30% 20%;
  background: linear-gradient(180deg, #7a6a4a 0%, #5a8a5a 50%, #3a5a2a 100%);
  box-shadow: 0 -6px 20px rgba(0,0,0,0.3);
  animation: re-island 20s ease-in-out infinite;
}
.scn-reao-island-approach .palm-trunk {
  position: absolute; bottom: 50%; left: 55%; width: 8px; height: 80px;
  border-radius: 20%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  transform-origin: bottom center;
  animation: re-trunk 6s ease-in-out infinite;
}
.scn-reao-island-approach .palm-fronds {
  position: absolute; bottom: 70%; left: 52%; width: 60px; height: 30px;
  border-radius: 50% 10% 50% 10% / 20% 80% 20% 80%;
  background: radial-gradient(circle at 30% 70%, #3a7a2a, #1a4a1a 70%);
  transform-origin: 20% bottom;
  animation: re-fronds 8s ease-in-out infinite alternate;
}
.scn-reao-island-approach .near-wave {
  position: absolute; bottom: 35%; left: 0; right: 0; height: 10%;
  background: linear-gradient(0deg, rgba(20,60,80,0.8) 0%, transparent 100%);
  border-radius: 0 0 40% 40%;
  filter: blur(4px);
  animation: re-wave 5s ease-in-out infinite;
}
@keyframes re-ocean {
  0% { transform: translateY(0); }
  50% { transform: translateY(2px); }
  100% { transform: translateY(0); }
}
@keyframes re-sky {
  0% { opacity: 0.85; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes re-sun {
  0% { transform: translate(0, 0); box-shadow: 0 0 60px 25px #f2d47a; }
  50% { transform: translate(4px, -3px); box-shadow: 0 0 90px 45px #ffe792; }
  100% { transform: translate(0, 0); box-shadow: 0 0 60px 25px #f2d47a; }
}
@keyframes re-island {
  0% { transform: translateX(-50%) scale(1); }
  50% { transform: translateX(-50%) scale(1.01) translateY(-2px); }
  100% { transform: translateX(-50%) scale(1); }
}
@keyframes re-trunk {
  0% { transform: rotate(-2deg); }
  50% { transform: rotate(2deg); }
  100% { transform: rotate(-2deg); }
}
@keyframes re-fronds {
  0% { transform: rotate(-5deg) scaleX(1); }
  50% { transform: rotate(5deg) scaleX(1.05); }
  100% { transform: rotate(-5deg) scaleX(1); }
}
@keyframes re-wave {
  0% { transform: translateY(0) scaleY(1); opacity: 0.6; }
  50% { transform: translateY(3px) scaleY(1.2); opacity: 0.8; }
  100% { transform: translateY(0) scaleY(1); opacity: 0.6; }
}

/* Scene: ned-honest-opinion (tense, sunlit) */
.scn-ned-honest-opinion {
  background: 
    linear-gradient(180deg, #e8d4b0 0%, #c9a86c 40%, #8a6e4e 100%),
    radial-gradient(ellipse at 60% 30%, #f5e6c8 0%, transparent 70%);
}
.scn-ned-honest-opinion .bg-panel {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, #b89870 0%, #d4b88a 30%, #b89870 70%, #a08060 100%);
  clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%);
  animation: nh-bg-pulse 6s ease-in-out infinite alternate;
}
.scn-ned-honest-opinion .porthole {
  position: absolute; top: 12%; left: 68%; width: 100px; height: 100px;
  border-radius: 50%;
  background: radial-gradient(circle at 35% 35%, #9cd0e0 0%, #2a5a7a 70%);
  border: 6px solid #a08060;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.4), 0 0 30px rgba(255,200,100,0.5);
  animation: nh-porthole-sway 12s ease-in-out infinite alternate;
}
.scn-ned-honest-opinion .porthole-glow {
  position: absolute; top: 8%; left: 63%; width: 120px; height: 120px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(255,220,150,0.4) 0%, transparent 70%);
  filter: blur(8px);
  animation: nh-glow-pulse 4s ease-in-out infinite alternate;
}
.scn-ned-honest-opinion .figure-ned {
  position: absolute; bottom: 28%; left: 42%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #2e2a24 0%, #1e1a16 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: nh-ned-tense 3s ease-in-out infinite;
}
.scn-ned-honest-opinion .figure-aronnax {
  position: absolute; bottom: 30%; left: 54%; width: 28px; height: 65px;
  background: linear-gradient(180deg, #3a342c 0%, #2a2420 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: nh-aronnax-gesture 5s ease-in-out infinite alternate;
}
.scn-ned-honest-opinion .table {
  position: absolute; bottom: 30%; left: 46%; width: 60px; height: 8px;
  background: linear-gradient(180deg, #6a4a2e 0%, #4a2a1a 100%);
  border-radius: 4px;
  transform: perspective(200px) rotateX(10deg);
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: nh-table-bob 8s ease-in-out infinite;
}
.scn-ned-honest-opinion .shadow-floor {
  position: absolute; bottom: 20%; left: 35%; width: 70px; height: 30px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.3) 0%, transparent 70%);
  filter: blur(4px);
  animation: nh-shadow-sway 6s ease-in-out infinite alternate;
}
.scn-ned-honest-opinion .light-beam {
  position: absolute; top: 10%; left: 65%; width: 40px; height: 90px;
  background: linear-gradient(180deg, rgba(255,220,150,0.25) 0%, transparent 100%);
  transform: rotate(15deg);
  filter: blur(6px);
  animation: nh-beam-flicker 3s ease-in-out infinite alternate;
}

@keyframes nh-bg-pulse {
  0% { opacity: 0.85; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes nh-porthole-sway {
  0% { transform: translate(0, 0) scale(1); }
  50% { transform: translate(2px, -1px) scale(1.02); }
  100% { transform: translate(-1px, 1px) scale(0.98); }
}
@keyframes nh-glow-pulse {
  0% { opacity: 0.5; transform: scale(0.9); }
  50% { opacity: 0.8; transform: scale(1.1); }
  100% { opacity: 0.6; transform: scale(1); }
}
@keyframes nh-ned-tense {
  0% { transform: translate(0, 0) rotate(-1deg); }
  25% { transform: translate(2px, -1px) rotate(1deg); }
  50% { transform: translate(0, 0) rotate(0deg); }
  75% { transform: translate(-2px, -1px) rotate(-1deg); }
  100% { transform: translate(0, 0) rotate(0deg); }
}
@keyframes nh-aronnax-gesture {
  0% { transform: translate(0, 0) rotate(2deg); }
  50% { transform: translate(3px, -2px) rotate(-2deg); }
  100% { transform: translate(0, 0) rotate(1deg); }
}
@keyframes nh-table-bob {
  0% { transform: perspective(200px) rotateX(10deg) translateY(0); }
  50% { transform: perspective(200px) rotateX(10deg) translateY(-1px); }
  100% { transform: perspective(200px) rotateX(10deg) translateY(0); }
}
@keyframes nh-shadow-sway {
  0% { transform: translateX(-2px) scale(1); }
  100% { transform: translateX(2px) scale(1.1); }
}
@keyframes nh-beam-flicker {
  0% { opacity: 0.2; transform: rotate(15deg) scaleY(1); }
  50% { opacity: 0.4; transform: rotate(18deg) scaleY(1.1); }
  100% { opacity: 0.25; transform: rotate(13deg) scaleY(0.95); }
}

/* Scene: ned-fears-force (tense, sunlit) */
.scn-ned-fears-force {
  background: 
    linear-gradient(180deg, #d4c0a0 0%, #a08060 40%, #705040 100%),
    radial-gradient(ellipse at 55% 25%, #f0d8b0 0%, transparent 70%);
}
.scn-ned-fears-force .bg-panel {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, #a08060 0%, #c9a86c 30%, #a08060 70%, #8a6e4e 100%);
  clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%);
  animation: nf-bg-pulse 4s ease-in-out infinite alternate;
}
.scn-ned-fears-force .porthole {
  position: absolute; top: 15%; right: 10%; width: 80px; height: 80px;
  border-radius: 50%;
  background: radial-gradient(circle at 30% 30%, #8cc8e0 0%, #1a4a6a 70%);
  border: 5px solid #8a6e4e;
  box-shadow: inset 0 0 15px rgba(0,0,0,0.5), 0 0 25px rgba(255,200,100,0.4);
  animation: nf-porthole-sway 8s ease-in-out infinite alternate;
}
.scn-ned-fears-force .porthole-glow {
  position: absolute; top: 11%; right: 6%; width: 100px; height: 100px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(255,220,150,0.3) 0%, transparent 60%);
  filter: blur(8px);
  animation: nf-glow-pulse 3s ease-in-out infinite alternate;
}
.scn-ned-fears-force .figure-ned-exclaim {
  position: absolute; bottom: 26%; left: 38%; width: 34px; height: 75px;
  background: linear-gradient(180deg, #2a2622 0%, #1a1612 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: nf-ned-exclaim 2.5s ease-in-out infinite;
}
.scn-ned-fears-force .figure-aronnax-stepback {
  position: absolute; bottom: 30%; left: 56%; width: 26px; height: 62px;
  background: linear-gradient(180deg, #3a342c 0%, #2a2420 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: nf-aronnax-step 4s ease-in-out infinite alternate;
}
.scn-ned-fears-force .figure-conseil {
  position: absolute; bottom: 28%; left: 64%; width: 24px; height: 60px;
  background: linear-gradient(180deg, #4a443c 0%, #3a342e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: nf-conseil-static 6s ease-in-out infinite;
}
.scn-ned-fears-force .table {
  position: absolute; bottom: 30%; left: 44%; width: 70px; height: 8px;
  background: linear-gradient(180deg, #5a3a22 0%, #3a2212 100%);
  border-radius: 4px;
  transform: perspective(200px) rotateX(5deg);
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: nf-table-shake 2s ease-in-out infinite;
}
.scn-ned-fears-force .shadow-floor {
  position: absolute; bottom: 18%; left: 30%; width: 100px; height: 35px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.35) 0%, transparent 70%);
  filter: blur(5px);
  animation: nf-shadow-sway 5s ease-in-out infinite alternate;
}

@keyframes nf-bg-pulse {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes nf-porthole-sway {
  0% { transform: translate(0, 0) scale(1); }
  50% { transform: translate(3px, -2px) scale(1.03); }
  100% { transform: translate(-2px, 1px) scale(0.97); }
}
@keyframes nf-glow-pulse {
  0% { opacity: 0.4; transform: scale(0.9); }
  50% { opacity: 0.7; transform: scale(1.2); }
  100% { opacity: 0.5; transform: scale(1); }
}
@keyframes nf-ned-exclaim {
  0% { transform: translate(0, 0) rotate(-2deg) scaleY(1); }
  20% { transform: translate(4px, -3px) rotate(3deg) scaleY(1.05); }
  40% { transform: translate(-2px, -1px) rotate(-1deg) scaleY(0.95); }
  60% { transform: translate(3px, -2px) rotate(2deg) scaleY(1.02); }
  80% { transform: translate(-3px, -1px) rotate(-2deg) scaleY(0.98); }
  100% { transform: translate(0, 0) rotate(0deg) scaleY(1); }
}
@keyframes nf-aronnax-step {
  0% { transform: translate(0, 0) rotate(3deg); }
  50% { transform: translate(-5px, -2px) rotate(-1deg); }
  100% { transform: translate(-2px, 0) rotate(1deg); }
}
@keyframes nf-conseil-static {
  0%,100% { transform: translate(0, 0); }
  50% { transform: translate(1px, -1px); }
}
@keyframes nf-table-shake {
  0% { transform: perspective(200px) rotateX(5deg) translateX(0); }
  25% { transform: perspective(200px) rotateX(5deg) translateX(-1px); }
  50% { transform: perspective(200px) rotateX(5deg) translateX(1px); }
  75% { transform: perspective(200px) rotateX(5deg) translateX(-1px); }
  100% { transform: perspective(200px) rotateX(5deg) translateX(0); }
}
@keyframes nf-shadow-sway {
  0% { transform: translateX(-3px) scale(1); }
  100% { transform: translateX(3px) scale(1.15); }
}

/* Scene: aronnax-reasons (calm, sunlit) */
.scn-aronnax-reasons {
  background: 
    linear-gradient(180deg, #f5ecd8 0%, #e0d0b0 40%, #c9b898 100%),
    radial-gradient(ellipse at 50% 40%, #fff5e0 0%, transparent 70%);
}
.scn-aronnax-reasons .bg-panel {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, #d4c4a8 0%, #e8d8c0 30%, #d4c4a8 70%, #c0b098 100%);
  clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%);
  animation: ar-bg-soft 10s ease-in-out infinite alternate;
}
.scn-aronnax-reasons .porthole {
  position: absolute; top: 15%; left: 65%; width: 90px; height: 90px;
  border-radius: 50%;
  background: radial-gradient(circle at 40% 40%, #b0e0f0 0%, #4a8aaa 70%);
  border: 5px solid #b09878;
  box-shadow: inset 0 0 15px rgba(0,0,0,0.2), 0 0 20px rgba(255,210,120,0.3);
  animation: ar-porthole-gentle 15s ease-in-out infinite alternate;
}
.scn-aronnax-reasons .porthole-glow {
  position: absolute; top: 11%; left: 60%; width: 110px; height: 110px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(255,230,180,0.2) 0%, transparent 60%);
  filter: blur(10px);
  animation: ar-glow-soft 7s ease-in-out infinite alternate;
}
.scn-aronnax-reasons .figure-aronnax-seated {
  position: absolute; bottom: 28%; left: 44%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #4a443c 0%, #3a342e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ar-aronnax-sit 8s ease-in-out infinite alternate;
}
.scn-aronnax-reasons .figure-ned-standing {
  position: absolute; bottom: 26%; left: 52%; width: 32px; height: 72px;
  background: linear-gradient(180deg, #2e2a24 0%, #1e1a16 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ar-ned-stand 10s ease-in-out infinite alternate;
}
.scn-aronnax-reasons .table-with-map {
  position: absolute; bottom: 30%; left: 46%; width: 50px; height: 6px;
  background: linear-gradient(180deg, #8a7048 0%, #6a5030 100%);
  border-radius: 3px;
  transform: perspective(200px) rotateX(8deg);
  box-shadow: 0 3px 6px rgba(0,0,0,0.3);
  animation: ar-table-still 12s ease-in-out infinite;
}
.scn-aronnax-reasons .shadow-floor {
  position: absolute; bottom: 22%; left: 38%; width: 80px; height: 25px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.15) 0%, transparent 70%);
  filter: blur(6px);
  animation: ar-shadow-drift 15s ease-in-out infinite alternate;
}
.scn-aronnax-reasons .light-beam-soft {
  position: absolute; top: 12%; left: 62%; width: 60px; height: 80px;
  background: linear-gradient(180deg, rgba(255,230,180,0.15) 0%, transparent 100%);
  transform: rotate(10deg);
  filter: blur(8px);
  animation: ar-beam-soft 9s ease-in-out infinite alternate;
}

@keyframes ar-bg-soft {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.95; }
}
@keyframes ar-porthole-gentle {
  0% { transform: translate(0, 0) scale(1); }
  50% { transform: translate(1px, -1px) scale(1.01); }
  100% { transform: translate(-1px, 0) scale(0.99); }
}
@keyframes ar-glow-soft {
  0% { opacity: 0.3; transform: scale(0.95); }
  50% { opacity: 0.5; transform: scale(1.05); }
  100% { opacity: 0.35; transform: scale(1); }
}
@keyframes ar-aronnax-sit {
  0% { transform: translate(0, 0) rotate(1deg); }
  50% { transform: translate(1px, -1px) rotate(-1deg); }
  100% { transform: translate(0, 0) rotate(0.5deg); }
}
@keyframes ar-ned-stand {
  0% { transform: translate(0, 0) rotate(0deg); }
  50% { transform: translate(2px, -1px) rotate(1deg); }
  100% { transform: translate(-1px, 0) rotate(-0.5deg); }
}
@keyframes ar-table-still {
  0% { transform: perspective(200px) rotateX(8deg) translateY(0); }
  50% { transform: perspective(200px) rotateX(8deg) translateY(-0.5px); }
  100% { transform: perspective(200px) rotateX(8deg) translateY(0); }
}
@keyframes ar-shadow-drift {
  0% { transform: translateX(-1px) scale(1); }
  100% { transform: translateX(1px) scale(1.05); }
}
@keyframes ar-beam-soft {
  0% { opacity: 0.1; transform: rotate(10deg) scaleY(0.95); }
  50% { opacity: 0.25; transform: rotate(12deg) scaleY(1.05); }
  100% { opacity: 0.15; transform: rotate(9deg) scaleY(1); }
}

/* Scene: conseil-neutral (calm, sunlit) */
.scn-conseil-neutral {
  background: 
    linear-gradient(180deg, #f0e8d8 0%, #dcd0b8 40%, #c8bca8 100%),
    radial-gradient(ellipse at 45% 35%, #fff8e8 0%, transparent 70%);
}
.scn-conseil-neutral .bg-panel {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, #c8bca8 0%, #e0d4c0 30%, #c8bca8 70%, #b8ac98 100%);
  clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%);
  animation: cn-bg-calm 12s ease-in-out infinite alternate;
}
.scn-conseil-neutral .porthole {
  position: absolute; top: 18%; right: 8%; width: 70px; height: 70px;
  border-radius: 50%;
  background: radial-gradient(circle at 35% 35%, #a8d8e8 0%, #3a7a9a 70%);
  border: 5px solid #b09878;
  box-shadow: inset 0 0 12px rgba(0,0,0,0.2), 0 0 18px rgba(255,220,140,0.2);
  animation: cn-porthole-slow 18s ease-in-out infinite alternate;
}
.scn-conseil-neutral .porthole-glow {
  position: absolute; top: 14%; right: 4%; width: 90px; height: 90px;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(255,230,180,0.15) 0%, transparent 60%);
  filter: blur(8px);
  animation: cn-glow-soft 8s ease-in-out infinite alternate;
}
.scn-conseil-neutral .figure-conseil-static {
  position: absolute; bottom: 28%; left: 48%; width: 28px; height: 65px;
  background: linear-gradient(180deg, #4a443c 0%, #3a342e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cn-conseil-still 10s ease-in-out infinite;
}
.scn-conseil-neutral .figure-aronnax-side {
  position: absolute; bottom: 30%; left: 38%; width: 26px; height: 62px;
  background: linear-gradient(180deg, #3a342c 0%, #2a2420 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cn-aronnax-side 14s ease-in-out infinite alternate;
}
.scn-conseil-neutral .figure-ned-side {
  position: absolute; bottom: 30%; left: 56%; width: 30px; height: 68px;
  background: linear-gradient(180deg, #2e2a24 0%, #1e1a16 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cn-ned-side 12s ease-in-out infinite alternate;
}
.scn-conseil-neutral .shadow-floor {
  position: absolute; bottom: 22%; left: 35%; width: 90px; height: 28px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.12) 0%, transparent 70%);
  filter: blur(6px);
  animation: cn-shadow-calm 16s ease-in-out infinite alternate;
}
.scn-conseil-neutral .light-beam-wide {
  position: absolute; top: 15%; left: 60%; width: 80px; height: 70px;
  background: linear-gradient(180deg, rgba(255,240,200,0.12) 0%, transparent 100%);
  transform: rotate(8deg);
  filter: blur(10px);
  animation: cn-beam-wide 11s ease-in-out infinite alternate;
}

@keyframes cn-bg-calm {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.95; }
}
@keyframes cn-porthole-slow {
  0% { transform: translate(0, 0) scale(1); }
  50% { transform: translate(1px, -1px) scale(1.01); }
  100% { transform: translate(-1px, 0) scale(0.99); }
}
@keyframes cn-glow-soft {
  0% { opacity: 0.2; transform: scale(0.95); }
  50% { opacity: 0.4; transform: scale(1.05); }
  100% { opacity: 0.25; transform: scale(1); }
}
@keyframes cn-conseil-still {
  0% { transform: translate(0, 0) rotate(0deg); }
  50% { transform: translate(0, -1px) rotate(0deg); }
  100% { transform: translate(0, 0) rotate(0deg); }
}
@keyframes cn-aronnax-side {
  0% { transform: translate(0, 0) rotate(1deg); }
  50% { transform: translate(1px, -1px) rotate(-1deg); }
  100% { transform: translate(0, 0) rotate(0.5deg); }
}
@keyframes cn-ned-side {
  0% { transform: translate(0, 0) rotate(-0.5deg); }
  50% { transform: translate(-1px, -1px) rotate(1deg); }
  100% { transform: translate(0, 0) rotate(0deg); }
}
@keyframes cn-shadow-calm {
  0% { transform: translateX(-1px) scale(1); }
  100% { transform: translateX(1px) scale(1.03); }
}
@keyframes cn-beam-wide {
  0% { opacity: 0.1; transform: rotate(8deg) scaleY(0.95); }
  50% { opacity: 0.2; transform: rotate(10deg) scaleY(1.05); }
  100% { opacity: 0.12; transform: rotate(7deg) scaleY(1); }
}

/* Grave-digging scene */
.scn-grave-digging {
  background: 
    linear-gradient(180deg, #1b3b4f 0%, #0f2a38 40%, #0a1d25 100%),
    radial-gradient(ellipse at 50% 100%, #3a6a7a 0%, transparent 70%);
}
.scn-grave-digging .bg-seafloor {
  position: absolute; inset: 0; 
  background: linear-gradient(0deg, #1a3a45 0%, #0f2a38 60%, transparent 100%);
  animation: gd-seafloor 20s ease-in-out infinite alternate;
}
.scn-grave-digging .grave-hole {
  position: absolute; bottom: 30%; left: 45%; width: 90px; height: 40px;
  background: radial-gradient(ellipse, #0a1d25 0%, #000a10 100%);
  border-radius: 50%; transform: translateX(-50%);
  box-shadow: inset 0 -6px 12px rgba(0,0,0,.6);
  animation: gd-grave 8s ease-in-out infinite alternate;
}
.scn-grave-digging .body-wrapped {
  position: absolute; bottom: 32%; left: 50%; width: 60px; height: 30px;
  background: linear-gradient(180deg, #b8c8c8 0%, #9aa8a8 100%);
  border-radius: 40% 40% 20% 20%; transform: translateX(-50%);
  box-shadow: 0 4px 8px rgba(0,0,0,.4);
  animation: gd-body 6s ease-in-out infinite;
}
.scn-grave-digging .coral-left {
  position: absolute; bottom: 35%; left: 20%; width: 40px; height: 60px;
  background: radial-gradient(ellipse at 50% 100%, #8a6a5a 0%, #5a3a2a 100%);
  border-radius: 50% 50% 30% 30%; filter: blur(1px);
  animation: gd-coral1 14s ease-in-out infinite alternate;
}
.scn-grave-digging .coral-right {
  position: absolute; bottom: 33%; right: 18%; width: 50px; height: 70px;
  background: radial-gradient(ellipse at 50% 100%, #7a5a4a 0%, #4a2a1a 100%);
  border-radius: 40% 60% 20% 20%; filter: blur(1px);
  animation: gd-coral2 18s ease-in-out infinite alternate;
  animation-delay: -6s;
}
.scn-grave-digging .nemo-figure {
  position: absolute; bottom: 29%; left: 38%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #1a2a33 0%, #0e1a22 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gd-nemo 5s ease-in-out infinite;
}
.scn-grave-digging .rays-light {
  position: absolute; top: 10%; left: 30%; width: 120px; height: 80px;
  background: linear-gradient(180deg, rgba(200,220,230,0.3) 0%, transparent 100%);
  filter: blur(12px); border-radius: 30% 70% 50% 50%;
  animation: gd-rays 10s linear infinite alternate;
}
@keyframes gd-seafloor {
  0% { opacity: 0.7; transform: scale(1); }
  50% { opacity: 0.9; transform: scale(1.01); }
  100% { opacity: 0.75; transform: scale(0.99); }
}
@keyframes gd-grave {
  0% { transform: translateX(-50%) scaleY(1); }
  50% { transform: translateX(-50%) scaleY(0.96); }
  100% { transform: translateX(-50%) scaleY(1.02); }
}
@keyframes gd-body {
  0% { transform: translateX(-50%) rotate(-1deg); }
  50% { transform: translateX(-50%) rotate(1deg) translateY(-2px); }
  100% { transform: translateX(-50%) rotate(0deg); }
}
@keyframes gd-coral1 {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(3deg) scale(1.02); }
  100% { transform: rotate(-2deg); }
}
@keyframes gd-coral2 {
  0% { transform: rotate(0deg) scale(1); }
  50% { transform: rotate(-4deg) scale(1.05); }
  100% { transform: rotate(2deg); }
}
@keyframes gd-nemo {
  0% { transform: translateY(0) rotate(-2deg); }
  50% { transform: translateY(-3px) rotate(0deg); }
  100% { transform: translateY(0) rotate(2deg); }
}
@keyframes gd-rays {
  0% { transform: translateX(-10px) rotate(-3deg); opacity: 0.3; }
  50% { transform: translateX(10px) rotate(0deg); opacity: 0.6; }
  100% { transform: translateX(-5px) rotate(2deg); opacity: 0.4; }
}

/* Burial scene */
.scn-burial {
  background: 
    linear-gradient(180deg, #1b3a4a 0%, #0f2733 50%, #071a22 100%),
    radial-gradient(ellipse at 60% 40%, #3a5a6a 0%, transparent 60%);
}
.scn-burial .bg-deep {
  position: absolute; inset: 0;
  background: linear-gradient(0deg, #0a1a22 0%, #13303a 60%, transparent 100%);
  animation: bu-deep 18s ease-in-out infinite alternate;
}
.scn-burial .grave-open {
  position: absolute; bottom: 25%; left: 50%; width: 100px; height: 50px;
  background: radial-gradient(ellipse, #050f12 0%, #1a2d33 100%);
  border-radius: 50%; transform: translateX(-50%);
  box-shadow: inset 0 -8px 16px rgba(0,0,0,.7);
  animation: bu-grave 9s ease-in-out infinite alternate;
}
.scn-burial .body-lowered {
  position: absolute; bottom: 28%; left: 50%; width: 55px; height: 32px;
  background: linear-gradient(180deg, #b0c0c0 0%, #8a9a9a 100%);
  border-radius: 40% 40% 10% 10%; transform: translateX(-50%);
  box-shadow: 0 3px 6px rgba(0,0,0,.5);
  animation: bu-body 7s ease-in-out infinite;
}
.scn-burial .pallbearer-left {
  position: absolute; bottom: 27%; left: 30%; width: 22px; height: 46px;
  background: linear-gradient(180deg, #1a2a33 0%, #0e1a22 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bu-pall1 5s ease-in-out infinite;
}
.scn-burial .pallbearer-right {
  position: absolute; bottom: 27%; right: 30%; width: 22px; height: 46px;
  background: linear-gradient(180deg, #1a2a33 0%, #0e1a22 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bu-pall2 5s ease-in-out infinite;
  animation-delay: -1.5s;
}
.scn-burial .nemo-praying {
  position: absolute; bottom: 26%; left: 20%; width: 24px; height: 44px;
  background: linear-gradient(180deg, #1a2a33 0%, #0e1a22 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: bu-nemo 6s ease-in-out infinite;
}
.scn-burial .coral-cluster {
  position: absolute; bottom: 30%; right: 12%; width: 70px; height: 90px;
  background: radial-gradient(ellipse at 50% 100%, #7a5a4a 0%, #3a2a1a 100%);
  border-radius: 50% 60% 20% 20%; filter: blur(2px);
  animation: bu-coral 15s ease-in-out infinite alternate;
}
.scn-burial .bubble-float {
  position: absolute; bottom: 60%; left: 40%; width: 8px; height: 8px;
  background: radial-gradient(circle, rgba(200,220,230,0.5) 0%, transparent 100%);
  border-radius: 50%; filter: blur(1px);
  animation: bu-bubble 12s linear infinite;
}
@keyframes bu-deep {
  0% { opacity: 0.8; }
  50% { opacity: 0.95; }
  100% { opacity: 0.85; }
}
@keyframes bu-grave {
  0% { transform: translateX(-50%) scaleY(1); }
  50% { transform: translateX(-50%) scaleY(0.95); }
  100% { transform: translateX(-50%) scaleY(1.03); }
}
@keyframes bu-body {
  0% { transform: translateX(-50%) rotate(0deg) translateY(0); }
  50% { transform: translateX(-50%) rotate(-1deg) translateY(-3px); }
  100% { transform: translateX(-50%) rotate(1deg) translateY(0); }
}
@keyframes bu-pall1 {
  0% { transform: translateY(0) rotate(-2deg); }
  50% { transform: translateY(-2px) rotate(0deg); }
  100% { transform: translateY(0) rotate(2deg); }
}
@keyframes bu-pall2 {
  0% { transform: translateY(0) rotate(2deg); }
  50% { transform: translateY(-2px) rotate(0deg); }
  100% { transform: translateY(0) rotate(-2deg); }
}
@keyframes bu-nemo {
  0% { transform: translateY(0) rotate(0deg) scale(1); }
  50% { transform: translateY(-1px) rotate(-1deg) scale(1.02); }
  100% { transform: translateY(0) rotate(0deg) scale(1); }
}
@keyframes bu-coral {
  0% { transform: rotate(0deg) scale(1); }
  50% { transform: rotate(5deg) scale(1.03); }
  100% { transform: rotate(-3deg) scale(0.98); }
}
@keyframes bu-bubble {
  0% { transform: translateY(0) scale(1); opacity: 0; }
  20% { opacity: 0.5; }
  100% { transform: translateY(-120px) scale(0.5); opacity: 0; }
}

/* Return-to-ship scene */
.scn-return-to-ship {
  background: 
    linear-gradient(180deg, #051015 0%, #0a1a22 40%, #071a24 100%),
    radial-gradient(ellipse at 80% 50%, #2a4a5a 0%, transparent 70%);
}
.scn-return-to-ship .bg-darkwater {
  position: absolute; inset: 0;
  background: linear-gradient(0deg, #0a1a24 0%, #122a34 50%, transparent 100%);
  animation: rs-bg 22s ease-in-out infinite alternate;
}
.scn-return-to-ship .path-upward {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 60%;
  background: linear-gradient(180deg, #1a2a33 0%, #0f1e26 100%);
  clip-path: polygon(0% 100%, 20% 80%, 50% 85%, 80% 75%, 100% 90%, 100% 100%);
  animation: rs-path 12s linear infinite;
}
.scn-return-to-ship .coral-thicket-left {
  position: absolute; bottom: 30%; left: 8%; width: 60px; height: 80px;
  background: radial-gradient(ellipse at 50% 100%, #6a4a3a 0%, #2a1a0a 100%);
  border-radius: 40% 60% 20% 20%; filter: blur(2px);
  animation: rs-coral1 16s ease-in-out infinite alternate;
}
.scn-return-to-ship .coral-thicket-right {
  position: absolute; bottom: 28%; right: 10%; width: 70px; height: 90px;
  background: radial-gradient(ellipse at 50% 100%, #5a3a2a 0%, #1a0a00 100%);
  border-radius: 50% 50% 30% 30%; filter: blur(2px);
  animation: rs-coral2 20s ease-in-out infinite alternate;
  animation-delay: -8s;
}
.scn-return-to-ship .nautilus-light {
  position: absolute; top: 25%; right: 15%; width: 40px; height: 40px;
  background: radial-gradient(circle, #f0e8c0 0%, #c8b880 40%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 60px 20px rgba(200,180,120,0.3), 0 0 120px 40px rgba(200,180,120,0.1);
  animation: rs-light 3s ease-in-out infinite alternate;
}
.scn-return-to-ship .figure-1 {
  position: absolute; bottom: 35%; left: 30%; width: 18px; height: 38px;
  background: linear-gradient(180deg, #12202a 0%, #0a141c 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rs-figure1 8s ease-in-out infinite;
}
.scn-return-to-ship .figure-2 {
  position: absolute; bottom: 32%; left: 38%; width: 18px; height: 38px;
  background: linear-gradient(180deg, #12202a 0%, #0a141c 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rs-figure2 10s ease-in-out infinite;
  animation-delay: -4s;
}
.scn-return-to-ship .rays-from-ship {
  position: absolute; top: 20%; right: 10%; width: 200px; height: 150px;
  background: linear-gradient(135deg, rgba(200,180,120,0.2) 0%, transparent 80%);
  filter: blur(10px); border-radius: 30% 70% 50% 50%;
  animation: rs-rays 7s linear infinite alternate;
}
@keyframes rs-bg {
  0% { opacity: 0.8; }
  50% { opacity: 0.95; }
  100% { opacity: 0.85; }
}
@keyframes rs-path {
  0% { transform: translateY(0) scaleX(1); }
  50% { transform: translateY(-2px) scaleX(1.01); }
  100% { transform: translateY(0) scaleX(0.99); }
}
@keyframes rs-coral1 {
  0% { transform: rotate(0deg) scale(1); }
  50% { transform: rotate(4deg) scale(1.04); }
  100% { transform: rotate(-2deg) scale(0.98); }
}
@keyframes rs-coral2 {
  0% { transform: rotate(0deg) scale(1); }
  50% { transform: rotate(-5deg) scale(1.06); }
  100% { transform: rotate(3deg) scale(0.96); }
}
@keyframes rs-light {
  0% { transform: scale(1); opacity: 0.7; box-shadow: 0 0 40px 15px rgba(200,180,120,0.2); }
  50% { transform: scale(1.1); opacity: 1; box-shadow: 0 0 70px 25px rgba(200,180,120,0.4); }
  100% { transform: scale(0.95); opacity: 0.8; box-shadow: 0 0 50px 20px rgba(200,180,120,0.3); }
}
@keyframes rs-figure1 {
  0% { transform: translateX(0) rotate(-1deg); }
  50% { transform: translateX(8px) rotate(1deg) translateY(-1px); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes rs-figure2 {
  0% { transform: translateX(0) rotate(1deg); }
  50% { transform: translateX(6px) rotate(-1deg) translateY(-2px); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes rs-rays {
  0% { transform: rotate(-2deg) translateX(-5px); opacity: 0.2; }
  50% { transform: rotate(0deg) translateX(5px); opacity: 0.4; }
  100% { transform: rotate(3deg) translateX(-2px); opacity: 0.3; }
}

/* Conversation-with-nemo scene */
.scn-conversation-with-nemo {
  background: 
    linear-gradient(180deg, #2a4a3a 0%, #1a3a2a 50%, #0f2a1c 100%),
    radial-gradient(ellipse at 50% 30%, #4a7a5a 0%, transparent 70%);
}
.scn-conversation-with-nemo .bg-sunlitwater {
  position: absolute; inset: 0;
  background: linear-gradient(0deg, #1a3a2a 0%, #2a5a4a 30%, #3a6a5a 60%, transparent 100%);
  animation: cn-bg 20s ease-in-out infinite alternate;
}
.scn-conversation-with-nemo .sun-rays {
  position: absolute; top: 0; left: 20%; width: 60%; height: 100%;
  background: linear-gradient(180deg, rgba(255,240,200,0.15) 0%, rgba(200,200,150,0.05) 60%, transparent 100%);
  filter: blur(8px); 
  clip-path: polygon(30% 0%, 70% 0%, 60% 100%, 40% 100%);
  animation: cn-rays 14s ease-in-out infinite alternate;
}
.scn-conversation-with-nemo .coral-grave-marker {
  position: absolute; bottom: 25%; left: 45%; width: 30px; height: 50px;
  background: radial-gradient(ellipse at 50% 100%, #7a5a4a 0%, #4a2a1a 100%);
  border-radius: 50% 50% 20% 20%; transform: translateX(-50%);
  box-shadow: 0 4px 8px rgba(0,0,0,.4);
  animation: cn-marker 12s ease-in-out infinite alternate;
}
.scn-conversation-with-nemo .nemo-standing {
  position: absolute; bottom: 22%; left: 35%; width: 22px; height: 44px;
  background: linear-gradient(180deg, #1a2a22 0%, #0e1a14 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cn-nemo 6s ease-in-out infinite;
}
.scn-conversation-with-nemo .aronnax-standing {
  position: absolute; bottom: 22%; left: 50%; width: 22px; height: 46px;
  background: linear-gradient(180deg, #1a2a22 0%, #0e1a14 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cn-aronnax 7s ease-in-out infinite;
  animation-delay: -2s;
}
.scn-conversation-with-nemo .coral-bush {
  position: absolute; bottom: 30%; right: 15%; width: 50px; height: 70px;
  background: radial-gradient(ellipse at 50% 100%, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 40% 60% 30% 30%; filter: blur(1px);
  animation: cn-bush 18s ease-in-out infinite alternate;
}
.scn-conversation-with-nemo .ground-sand {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #3a4a3a 0%, #2a3a2a 100%);
  border-radius: 30% 30% 0 0 / 50% 50% 0 0;
  animation: cn-sand 25s ease-in-out infinite alternate;
}
@keyframes cn-bg {
  0% { opacity: 0.8; }
  50% { opacity: 0.95; }
  100% { opacity: 0.85; }
}
@keyframes cn-rays {
  0% { transform: rotate(-2deg) translateX(-5px); opacity: 0.2; }
  50% { transform: rotate(0deg) translateX(5px); opacity: 0.4; }
  100% { transform: rotate(2deg) translateX(-3px); opacity: 0.3; }
}
@keyframes cn-marker {
  0% { transform: translateX(-50%) rotate(-2deg); }
  50% { transform: translateX(-50%) rotate(2deg) scale(1.02); }
  100% { transform: translateX(-50%) rotate(0deg); }
}
@keyframes cn-nemo {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes cn-aronnax {
  0% { transform: translateY(0) rotate(1deg); }
  50% { transform: translateY(-3px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes cn-bush {
  0% { transform: rotate(0deg) scale(1); }
  50% { transform: rotate(4deg) scale(1.03); }
  100% { transform: rotate(-2deg) scale(0.97); }
}
@keyframes cn-sand {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(0.98); }
  100% { transform: scaleY(1.01); }
}

/* ====== albatross-falls ====== */
.scn-albatross-falls {
  background: linear-gradient(180deg, #f8d4a0 0%, #e8a86a 30%, #b07040 60%, #604030 100%);
}
.scn-albatross-falls .af-sky {
  position:absolute; inset:0 0 35% 0;
  background: linear-gradient(180deg, #ffcc80 0%, #e8a86a 50%, #d08050 100%);
  animation: af-skyglow 12s ease-in-out infinite alternate;
}
.scn-albatross-falls .af-sun {
  position:absolute; bottom:32%; left:50%; width:60px; height:60px;
  transform:translateX(-50%);
  background: radial-gradient(circle at 50% 50%, #ffe0a0 0%, #ffa060 60%, transparent 100%);
  border-radius:50%;
  box-shadow: 0 0 60px 30px rgba(255,180,90,0.6);
  animation: af-sunpulse 8s ease-in-out infinite;
}
.scn-albatross-falls .af-cloud {
  position:absolute; width:120px; height:30px;
  background: linear-gradient(180deg, rgba(255,200,150,0.7) 0%, rgba(200,140,80,0.2) 100%);
  border-radius:50%;
  filter: blur(8px);
}
.scn-albatross-falls .af-cloud-a {
  top:10%; left:5%;
  animation: af-drift-left 40s linear infinite;
}
.scn-albatross-falls .af-cloud-b {
  top:20%; left:60%;
  width:90px; height:20px;
  animation: af-drift-right 55s linear infinite reverse;
}
.scn-albatross-falls .af-sea {
  position:absolute; bottom:0; left:0; right:0; height:35%;
  background: linear-gradient(180deg, #605040 0%, #3a2a1a 100%);
  border-radius: 30% 50% 0 0 / 50% 80% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.4);
  animation: af-seawave 6s ease-in-out infinite alternate;
}
.scn-albatross-falls .af-ship {
  position:absolute; bottom:28%; left:20%; width:70px; height:35px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 0 0 50% 50%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: af-shipbob 5s ease-in-out infinite;
}
.scn-albatross-falls .af-bird {
  position:absolute; top:15%; left:40%; width:50px; height:30px;
  background: linear-gradient(135deg, #2a1a0a 0%, #1a1008 100%);
  border-radius: 50% 50% 80% 20% / 60% 60% 40% 40%;
  transform: rotate(-20deg);
  box-shadow: inset -5px 0 5px rgba(0,0,0,0.3);
  animation: af-fall 4s ease-in-out infinite;
}
.scn-albatross-falls .af-bird::after {
  content:''; position:absolute; top:-5px; left:0; width:100%; height:100%;
  background: radial-gradient(ellipse at 30% 50%, transparent 0%, transparent 40%, #1a1008 41%, #1a1008 100%);
  border-radius: inherit;
}
.scn-albatross-falls .af-hunter {
  position:absolute; bottom:30%; left:25%; width:16px; height:30px;
  background: linear-gradient(180deg, #2a2010 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  transform-origin: bottom center;
  animation: af-huntersway 3s ease-in-out infinite alternate;
}
@keyframes af-skyglow {
  0% { opacity:0.8; }
  50% { opacity:1; }
  100% { opacity:0.85; }
}
@keyframes af-sunpulse {
  0% { box-shadow: 0 0 40px 20px rgba(255,180,90,0.5); transform:translateX(-50%) scale(1); }
  50% { box-shadow: 0 0 80px 40px rgba(255,200,100,0.7); transform:translateX(-50%) scale(1.04); }
  100% { box-shadow: 0 0 50px 25px rgba(255,180,90,0.55); transform:translateX(-50%) scale(0.98); }
}
@keyframes af-drift-left {
  0% { transform:translateX(-100px); }
  100% { transform:translateX(calc(100vw + 100px)); }
}
@keyframes af-drift-right {
  0% { transform:translateX(0); }
  100% { transform:translateX(-120vw); }
}
@keyframes af-seawave {
  0% { border-radius: 30% 50% 0 0 / 50% 80% 0 0; }
  50% { border-radius: 40% 60% 0 0 / 60% 70% 0 0; }
  100% { border-radius: 25% 55% 0 0 / 45% 85% 0 0; }
}
@keyframes af-shipbob {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes af-fall {
  0% { transform: rotate(-20deg) translateY(0) scale(1); }
  25% { transform: rotate(-15deg) translateY(15px) scale(0.95); }
  50% { transform: rotate(-10deg) translateY(30px) scale(0.9); }
  75% { transform: rotate(-5deg) translateY(45px) scale(0.85); }
  100% { transform: rotate(0deg) translateY(60px) scale(0.8); opacity:0.5; }
}
@keyframes af-huntersway {
  0% { transform: rotate(-2deg); }
  50% { transform: rotate(2deg); }
  100% { transform: rotate(-1deg); }
}

/* ====== weary-walk ====== */
.scn-weary-walk {
  background: linear-gradient(180deg, #3a2a4e 0%, #2a1a3e 40%, #1a0a2e 100%);
}
.scn-weary-walk .ww-sky {
  position:absolute; inset:0 0 40% 0;
  background: linear-gradient(180deg, #5a3a5a 0%, #3a1a3a 50%, #1a0a1a 100%);
  animation: ww-sky-pulse 15s ease-in-out infinite alternate;
}
.scn-weary-walk .ww-dune {
  position:absolute; bottom:0; left:0; right:0;
  border-radius: 50% 60% 0 0 / 80% 70% 0 0;
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.5);
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%);
}
.scn-weary-walk .ww-dune-back {
  bottom:20%; height:25%;
  opacity:0.7;
  animation: ww-dune-sway 18s ease-in-out infinite alternate;
}
.scn-weary-walk .ww-dune-front {
  bottom:5%; height:25%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  animation: ww-dune-sway 12s ease-in-out infinite alternate reverse;
}
.scn-weary-walk .ww-glow {
  position:absolute; bottom:35%; right:20%; width:30px; height:30px;
  background: radial-gradient(circle, #ffd080 0%, #d09050 40%, transparent 80%);
  border-radius:50%;
  box-shadow: 0 0 40px 20px rgba(255,200,100,0.4);
  animation: ww-glow-flicker 4s ease-in-out infinite alternate;
}
.scn-weary-walk .ww-figure {
  position:absolute; bottom:15%; left:30%; width:14px; 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: ww-walk 4s ease-in-out infinite;
}
.scn-weary-walk .ww-weed {
  position:absolute; bottom:10%; width:20px; height:40px;
  background: linear-gradient(180deg, #3a4a2a 0%, #1a2a0a 100%);
  border-radius: 80% 20% 50% 50% / 30% 50% 50% 70%;
  transform-origin: bottom center;
  filter: blur(1px);
}
.scn-weary-walk .ww-weed-1 {
  left:40%; animation: ww-weed-sway 5s ease-in-out infinite;
}
.scn-weary-walk .ww-weed-2 {
  left:55%; height:50px; animation: ww-weed-sway 6s ease-in-out infinite 1s;
}
@keyframes ww-sky-pulse {
  0% { opacity:0.8; }
  50% { opacity:1; }
  100% { opacity:0.9; }
}
@keyframes ww-dune-sway {
  0% { transform: translateY(0) scaleX(1); }
  50% { transform: translateY(-2px) scaleX(1.02); }
  100% { transform: translateY(0) scaleX(0.98); }
}
@keyframes ww-glow-flicker {
  0% { box-shadow: 0 0 30px 15px rgba(255,200,100,0.3); opacity:0.8; }
  50% { box-shadow: 0 0 50px 25px rgba(255,220,120,0.6); opacity:1; }
  100% { box-shadow: 0 0 35px 18px rgba(255,200,100,0.35); opacity:0.85; }
}
@keyframes ww-walk {
  0% { transform: translateX(0) rotate(-2deg); }
  25% { transform: translateX(5px) rotate(2deg) translateY(-1px); }
  50% { transform: translateX(10px) rotate(-1deg); }
  75% { transform: translateX(15px) rotate(1deg) translateY(-1px); }
  100% { transform: translateX(20px) rotate(0deg); }
}
@keyframes ww-weed-sway {
  0% { transform: rotate(-5deg); }
  50% { transform: rotate(5deg); }
  100% { transform: rotate(-3deg); }
}

/* ====== nautilus-beacon ====== */
.scn-nautilus-beacon {
  background: linear-gradient(180deg, #0a0a2a 0%, #1a1a3e 40%, #0a0a1a 100%), radial-gradient(ellipse at 50% 0%, #2a2a5e 0%, transparent 70%);
}
.scn-nautilus-beacon .nb-bg {
  position:absolute; inset:0;
  background: linear-gradient(180deg, #0a0a2a 0%, #15153a 50%, #0a0a1a 100%);
  animation: nb-bg-pulse 20s ease-in-out infinite alternate;
}
.scn-nautilus-beacon .nb-moon {
  position:absolute; top:8%; left:50%; width:40px; height:40px;
  transform:translateX(-50%);
  background: radial-gradient(circle, #e0e8ff 0%, #a0b0e0 60%, transparent 100%);
  border-radius:50%;
  box-shadow: 0 0 60px 30px rgba(160,180,220,0.5);
  animation: nb-moon-pulse 10s ease-in-out infinite;
}
.scn-nautilus-beacon .nb-rays {
  position:absolute; top:0; left:0; right:0; bottom:0;
  background: repeating-linear-gradient(45deg, transparent 0%, transparent 15%, rgba(200,220,255,0.03) 15%, rgba(200,220,255,0.03) 16%);
  animation: nb-rays-sway 15s ease-in-out infinite alternate;
}
.scn-nautilus-beacon .nb-surface {
  position:absolute; top:12%; left:0; right:0; height:30%;
  background: linear-gradient(180deg, rgba(50,70,100,0.6) 0%, transparent 100%);
  border-radius: 0 0 50% 50% / 0 0 20% 20%;
  box-shadow: inset 0 4px 12px rgba(200,220,255,0.1);
  animation: nb-surface-wave 8s ease-in-out infinite alternate;
}
.scn-nautilus-beacon .nb-ship {
  position:absolute; bottom:30%; left:40%; width:80px; height:40px;
  background: linear-gradient(180deg, #2a2a4a 0%, #1a1a2a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.6);
  animation: nb-ship-hover 6s ease-in-out infinite;
}
.scn-nautilus-beacon .nb-beacon {
  position:absolute; bottom:32%; left:42%; width:12px; height:12px;
  background: radial-gradient(circle, #c0e0ff 0%, #80a0e0 60%, transparent 100%);
  border-radius:50%;
  box-shadow: 0 0 30px 15px rgba(128,160,224,0.7), 0 0 60px 30px rgba(128,160,224,0.3);
  animation: nb-beacon-blink 4s ease-in-out infinite alternate;
}
.scn-nautilus-beacon .nb-swimmer {
  position:absolute; bottom:20%; width:10px; height:18px;
  background: linear-gradient(180deg, #3a3a5a 0%, #1a1a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: center bottom;
  filter: blur(0.5px);
}
.scn-nautilus-beacon .nb-swimmer-1 {
  left:30%;
  animation: nb-swim 5s ease-in-out infinite;
}
.scn-nautilus-beacon .nb-swimmer-2 {
  left:55%;
  animation: nb-swim 6s ease-in-out infinite 2s;
}
@keyframes nb-bg-pulse {
  0% { opacity:0.9; }
  50% { opacity:1; }
  100% { opacity:0.95; }
}
@keyframes nb-moon-pulse {
  0% { box-shadow: 0 0 50px 25px rgba(160,180,220,0.4); transform:translateX(-50%) scale(1); }
  50% { box-shadow: 0 0 80px 40px rgba(160,180,220,0.6); transform:translateX(-50%) scale(1.02); }
  100% { box-shadow: 0 0 60px 30px rgba(160,180,220,0.5); transform:translateX(-50%) scale(0.98); }
}
@keyframes nb-rays-sway {
  0% { transform: rotate(-2deg); }
  50% { transform: rotate(2deg); }
  100% { transform: rotate(0deg); }
}
@keyframes nb-surface-wave {
  0% { border-radius: 0 0 50% 50% / 0 0 20% 20%; transform:scaleY(1); }
  50% { border-radius: 0 0 55% 45% / 0 0 25% 15%; transform:scaleY(1.05); }
  100% { border-radius: 0 0 45% 55% / 0 0 18% 22%; transform:scaleY(0.98); }
}
@keyframes nb-ship-hover {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-3px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes nb-beacon-blink {
  0% { box-shadow: 0 0 30px 15px rgba(128,160,224,0.5); opacity:0.7; }
  50% { box-shadow: 0 0 60px 30px rgba(128,160,224,0.8); opacity:1; }
  100% { box-shadow: 0 0 40px 20px rgba(128,160,224,0.6); opacity:0.8; }
}
@keyframes nb-swim {
  0% { transform: translateY(0) rotate(-5deg); }
  25% { transform: translateY(-5px) rotate(5deg) translateX(3px); }
  50% { transform: translateY(0) rotate(-3deg) translateX(6px); }
  75% { transform: translateY(-5px) rotate(3deg) translateX(9px); }
  100% { transform: translateY(0) rotate(-5deg) translateX(12px); }
}

/* ====== sudden-assault ====== */
.scn-sudden-assault {
  background: linear-gradient(180deg, #0a0a12 0%, #0e0e1a 40%, #05050a 100%), radial-gradient(ellipse at 50% 70%, #1a1a2e 0%, transparent 70%);
}
.scn-sudden-assault .sa-bg {
  position:absolute; inset:0;
  background: linear-gradient(180deg, #0a0a18 0%, #12122a 50%, #080810 100%);
  animation: sa-bg-pulse 12s ease-in-out infinite alternate;
}
.scn-sudden-assault .sa-floor {
  position:absolute; bottom:0; left:0; right:0; height:35%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a12 100%);
  border-radius: 60% 40% 0 0 / 80% 60% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.6);
  animation: sa-floor-shift 20s ease-in-out infinite alternate;
}
.scn-sudden-assault .sa-nemo {
  position:absolute; bottom:30%; left:35%; width:40px; height:55px;
  background: linear-gradient(135deg, #1a1a2a 0%, #0a0a12 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  box-shadow: -5px 0 15px rgba(0,0,0,0.7);
  animation: sa-nemo-lunge 3s ease-in-out infinite;
}
.scn-sudden-assault .sa-nemo::after {
  content:''; position:absolute; top:0; left:50%; width:40%; height:80%;
  background: linear-gradient(180deg, #0a0a12 0%, #1a1a2a 100%);
  border-radius: 50%;
  transform: translate(-50%, -10%) rotate(-15deg); 
}
.scn-sudden-assault .sa-narrator {
  position:absolute; bottom:25%; left:45%; width:16px; height:30px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sa-narrator-fall 2.5s ease-in-out infinite;
}
.scn-sudden-assault .sa-biolum {
  position:absolute; bottom:20%; left:20%; width:6px; height:6px;
  background: radial-gradient(circle, #80ff80 0%, transparent 100%);
  border-radius:50%;
  box-shadow: 0 0 12px 6px rgba(128,255,128,0.3);
  animation: sa-biolum-pulse 4s ease-in-out infinite;
}
.scn-sudden-assault .sa-dist-glow {
  position:absolute; top:30%; right:20%; width:20px; height:20px;
  background: radial-gradient(circle, #505080 0%, transparent 100%);
  border-radius:50%;
  opacity:0.4;
  animation: sa-dist-glow 10s ease-in-out infinite alternate;
}
@keyframes sa-bg-pulse {
  0% { opacity:0.9; }
  50% { opacity:1; }
  100% { opacity:0.95; }
}
@keyframes sa-floor-shift {
  0% { transform: translateY(0) scaleX(1); }
  50% { transform: translateY(-2px) scaleX(1.02); }
  100% { transform: translateY(0) scaleX(0.98); }
}
@keyframes sa-nemo-lunge {
  0% { transform: translateX(0) rotate(0deg) scale(1); }
  25% { transform: translateX(-8px) rotate(-10deg) scale(1.1); }
  50% { transform: translateX(0) rotate(0deg) scale(1); }
  75% { transform: translateX(-4px) rotate(-5deg) scale(1.05); }
  100% { transform: translateX(0) rotate(0deg) scale(1); }
}
@keyframes sa-narrator-fall {
  0% { transform: rotate(0deg) translateY(0); }
  25% { transform: rotate(15deg) translateY(8px); }
  50% { transform: rotate(10deg) translateY(4px); }
  75% { transform: rotate(5deg) translateY(2px); }
  100% { transform: rotate(0deg) translateY(0); }
}
@keyframes sa-biolum-pulse {
  0% { opacity:0.2; box-shadow: 0 0 8px 4px rgba(128,255,128,0.1); }
  50% { opacity:0.8; box-shadow: 0 0 20px 10px rgba(128,255,128,0.4); }
  100% { opacity:0.3; box-shadow: 0 0 10px 5px rgba(128,255,128,0.15); }
}
@keyframes sa-dist-glow {
  0% { opacity:0.2; transform: scale(1); }
  50% { opacity:0.5; transform: scale(1.2); }
  100% { opacity:0.3; transform: scale(0.9); }
}

/* Scene: ned-craves-meat */
.scn-ned-craves-meat {
  background: linear-gradient(180deg, #ffd700 0%, #ff8c00 40%, #4a2c17 100%),
              radial-gradient(ellipse at 50% 0%, #fff3b0 0%, transparent 70%);
}
.scn-ned-craves-meat .ncm-sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #ffd700 0%, #ffe44d 100%); animation: ncm-sky 8s ease-in-out infinite alternate; }
.scn-ned-craves-meat .ncm-sun { position:absolute; top:12%; left:45%; width:60px; height:60px; background: radial-gradient(circle, #fff8dc 0%, #ffd700 60%, #ff8c00 100%); border-radius:50%; box-shadow: 0 0 40px 15px rgba(255,215,0,0.5); animation: ncm-sun 6s ease-in-out infinite alternate; }
.scn-ned-craves-meat .ncm-hills { position:absolute; bottom:30%; left:0; right:0; height:30%; background: linear-gradient(180deg, #6b4226 0%, #3a2210 100%); border-radius: 60% 40% 0 0 / 70% 60% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.4); animation: ncm-hills 12s ease-in-out infinite alternate; }
.scn-ned-craves-meat .ncm-figure { position:absolute; bottom:22%; left:30%; width:24px; 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: ncm-figure 1.5s cubic-bezier(0.68, -0.55, 0.27, 1.55) infinite; }
.scn-ned-craves-meat .ncm-plate { position:absolute; bottom:28%; left:55%; width:40px; height:20px; background: radial-gradient(ellipse, #f5f5dc 0%, #c8b89a 100%); border-radius:50%; box-shadow: 0 2px 6px rgba(0,0,0,0.3); animation: ncm-plate 3s ease-in-out infinite; }
.scn-ned-craves-meat .ncm-cloud-a { position:absolute; top:18%; left:10%; width:70px; height:16px; background: linear-gradient(180deg, rgba(255,255,255,0.6) 0%, rgba(255,255,255,0.1) 100%); border-radius:50%; filter: blur(5px); animation: ncm-drift-a 40s linear infinite; }
.scn-ned-craves-meat .ncm-cloud-b { position:absolute; top:25%; right:5%; width:50px; height:12px; 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: ncm-drift-b 35s linear infinite reverse; }
@keyframes ncm-sky { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes ncm-sun { 0% { transform: scale(1) translateY(0) rotate(0deg); box-shadow:0 0 30px 10px rgba(255,215,0,0.4); } 50% { transform: scale(1.08) translateY(-4px) rotate(3deg); box-shadow:0 0 50px 20px rgba(255,215,0,0.7); } 100% { transform: scale(0.95) translateY(2px) rotate(-2deg); box-shadow:0 0 35px 12px rgba(255,215,0,0.5); } }
@keyframes ncm-hills { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(0) } }
@keyframes ncm-figure { 0% { transform: translateX(0) translateY(0) rotate(-5deg); } 25% { transform: translateX(4px) translateY(-2px) rotate(3deg); } 50% { transform: translateX(8px) translateY(0) rotate(-4deg); } 75% { transform: translateX(12px) translateY(-1px) rotate(2deg); } 100% { transform: translateX(16px) translateY(0) rotate(0deg); } }
@keyframes ncm-plate { 0%,100% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-2px) rotate(5deg); } }
@keyframes ncm-drift-a { 0% { transform: translateX(-40px); } 100% { transform: translateX(130vw); } }
@keyframes ncm-drift-b { 0% { transform: translateX(0); } 100% { transform: translateX(-140vw); } }

/* Scene: conseil-wishes-master */
.scn-conseil-wishes-master {
  background: linear-gradient(180deg, #b0d4f1 0%, #87ceeb 50%, #5ba3d9 100%),
              radial-gradient(ellipse at 70% 20%, #fffbe0 0%, transparent 60%);
}
.scn-conseil-wishes-master .cwm-sky { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #b0d4f1 0%, #87ceeb 100%); animation: cwm-sky 10s ease-in-out infinite alternate; }
.scn-conseil-wishes-master .cwm-sea { position:absolute; bottom:20%; left:0; right:0; height:45%; background: linear-gradient(180deg, #5ba3d9 0%, #3b7ea8 100%); border-radius:0 0 30% 30% / 0 0 20% 20%; box-shadow: inset 0 6px 12px rgba(0,0,0,0.2); animation: cwm-sea 15s ease-in-out infinite alternate; }
.scn-conseil-wishes-master .cwm-deck { position:absolute; bottom:40%; left:25%; right:25%; height:6px; background: linear-gradient(90deg, #8b5a2b 0%, #a06b3e 50%, #8b5a2b 100%); border-radius:2px; box-shadow: 0 2px 4px rgba(0,0,0,0.3); }
.scn-conseil-wishes-master .cwm-figure { position:absolute; bottom:44%; left:48%; width:18px; height:36px; background: linear-gradient(180deg, #2c2c3a 0%, #1a1a24 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cwm-figure 8s ease-in-out infinite; }
.scn-conseil-wishes-master .cwm-cloud-a { position:absolute; top:12%; left:15%; width:80px; height:15px; background: linear-gradient(180deg, rgba(255,255,255,0.7) 0%, rgba(255,255,255,0.2) 100%); border-radius:50%; filter: blur(6px); animation: cwm-drift-a 50s linear infinite; }
.scn-conseil-wishes-master .cwm-cloud-b { position:absolute; top:20%; right:8%; width:55px; height:10px; background: linear-gradient(180deg, rgba(255,255,255,0.5) 0%, rgba(255,255,255,0.1) 100%); border-radius:50%; filter: blur(4px); animation: cwm-drift-b 45s linear infinite reverse; }
.scn-conseil-wishes-master .cwm-sun { position:absolute; top:8%; right:18%; width:40px; height:40px; background: radial-gradient(circle, #fffbe0 0%, #ffe680 60%, #ffcc00 100%); border-radius:50%; box-shadow: 0 0 30px 12px rgba(255,230,128,0.5); animation: cwm-sun 12s ease-in-out infinite; }
@keyframes cwm-sky { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes cwm-sea { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes cwm-figure { 0% { transform: translateX(0) translateY(0) rotate(0deg) scale(1); } 33% { transform: translateX(2px) translateY(-1px) rotate(1deg) scale(1.02); } 66% { transform: translateX(-2px) translateY(0) rotate(-1deg) scale(0.98); } 100% { transform: translateX(0) translateY(0) rotate(0deg) scale(1); } }
@keyframes cwm-drift-a { 0% { transform: translateX(-40px); } 100% { transform: translateX(130vw); } }
@keyframes cwm-drift-b { 0% { transform: translateX(0); } 100% { transform: translateX(-120vw); } }
@keyframes cwm-sun { 0% { transform: scale(1) rotate(0deg); box-shadow:0 0 20px 8px rgba(255,230,128,0.3); } 50% { transform: scale(1.05) rotate(2deg); box-shadow:0 0 40px 16px rgba(255,230,128,0.6); } 100% { transform: scale(0.95) rotate(-1deg); box-shadow:0 0 25px 10px rgba(255,230,128,0.4); } }

/* Scene: coral-sea-approach */
.scn-coral-sea-approach {
  background: linear-gradient(180deg, #40e0d0 0%, #48d1cc 30%, #20b2aa 60%, #008080 100%),
              radial-gradient(ellipse at 50% 80%, #66cdaa 0%, transparent 50%);
}
.scn-coral-sea-approach .csa-sky { position:absolute; top:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #87ceeb 0%, #b0e0e6 100%); animation: csa-sky 12s ease-in-out infinite alternate; }
.scn-coral-sea-approach .csa-ocean { position:absolute; bottom:30%; left:0; right:0; height:70%; background: linear-gradient(180deg, #20b2aa 0%, #008080 100%); border-radius: 0 0 40% 40% / 0 0 20% 20%; box-shadow: inset 0 10px 30px rgba(0,0,0,0.3); animation: csa-ocean 18s ease-in-out infinite alternate; }
.scn-coral-sea-approach .csa-coral-left { position:absolute; bottom:40%; left:8%; width:70px; height:50px; background: radial-gradient(ellipse at 30% 50%, #c8553d 0%, #a0461a 70%, #5e1a1d 100%); border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%; box-shadow: inset 0 -4px 8px rgba(0,0,0,0.3); animation: csa-coral 8s ease-in-out infinite alternate; }
.scn-coral-sea-approach .csa-coral-right { position:absolute; bottom:45%; right:5%; width:80px; height:40px; background: radial-gradient(ellipse at 70% 40%, #d2691e 0%, #a0522d 60%, #5e1a1d 100%); border-radius: 40% 60% 40% 40% / 50% 70% 30% 30%; box-shadow: inset 0 -4px 8px rgba(0,0,0,0.3); animation: csa-coral 10s ease-in-out infinite alternate-reverse; }
.scn-coral-sea-approach .csa-nautilus { position:absolute; bottom:50%; left:40%; width:90px; height:30px; background: linear-gradient(180deg, #2c3e50 0%, #34495e 50%, #1a252f 100%); border-radius: 40% 60% 40% 40% / 60% 40% 60% 40%; box-shadow: 0 4px 12px rgba(0,0,0,0.5); animation: csa-nautilus 20s ease-in-out infinite; }
.scn-coral-sea-approach .csa-light-ray { position:absolute; top:10%; left:30%; width:4px; height:80px; background: linear-gradient(180deg, rgba(255,255,255,0.4) 0%, transparent 100%); transform-origin: top center; animation: csa-ray 5s ease-in-out infinite; }
.scn-coral-sea-approach .csa-bubble { position:absolute; bottom:60%; left:50%; width:6px; height:6px; background: rgba(255,255,255,0.2); border-radius:50%; border:1px solid rgba(255,255,255,0.3); animation: csa-bubble 4s ease-in-out infinite; animation-delay:0s; }
.scn-coral-sea-approach .csa-bubble-2 { position:absolute; bottom:55%; left:55%; width:8px; height:8px; background: rgba(255,255,255,0.15); border-radius:50%; border:1px solid rgba(255,255,255,0.25); animation: csa-bubble 5s ease-in-out infinite; animation-delay:1.2s; }
@keyframes csa-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes csa-ocean { 0% { transform: translateY(0) } 50% { transform: translateY(-5px) } 100% { transform: translateY(0) } }
@keyframes csa-coral { 0% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.03) rotate(2deg); } 100% { transform: scale(0.98) rotate(-1deg); } }
@keyframes csa-nautilus { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 33% { transform: translateX(6px) translateY(-2px) rotate(1deg); } 66% { transform: translateX(-4px) translateY(1px) rotate(-1deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes csa-ray { 0% { opacity:0.3; transform: rotate(-3deg); } 50% { opacity:0.8; transform: rotate(3deg); } 100% { opacity:0.3; transform: rotate(-3deg); } }
@keyframes csa-bubble { 0% { transform: translateY(0) scale(1); opacity:0.5; } 50% { transform: translateY(-20px) scale(1.2); opacity:0; } 100% { transform: translateY(-40px) scale(1.5); opacity:0; } }

/* Scene: cook-reef-incident */
.scn-cook-reef-incident {
  background: linear-gradient(180deg, #66cdaa 0%, #20b2aa 40%, #008080 100%),
              radial-gradient(ellipse at 60% 30%, #48d1cc 0%, transparent 70%);
}
.scn-cook-reef-incident .cri-water { position:absolute; inset:0; background: linear-gradient(180deg, #20b2aa 0%, #008080 50%, #006060 100%); animation: cri-water 14s ease-in-out infinite alternate; }
.scn-cook-reef-incident .cri-hull { position:absolute; bottom:20%; left:30%; width:120px; height:80px; background: linear-gradient(180deg, #8b5a2b 0%, #5c3a1e 100%); border-radius: 8% 8% 20% 20% / 20% 20% 40% 40%; transform: rotate(-10deg); box-shadow: 0 8px 20px rgba(0,0,0,0.5); animation: cri-hull 6s ease-in-out infinite; }
.scn-cook-reef-incident .cri-coral { position:absolute; bottom:15%; left:20%; width:100px; height:60px; background: radial-gradient(ellipse at 30% 60%, #c8553d 0%, #a0461a 50%, #5e1a1d 100%); border-radius: 40% 60% 30% 40% / 50% 40% 60% 50%; box-shadow: inset 0 -6px 12px rgba(0,0,0,0.4); animation: cri-coral 8s ease-in-out infinite alternate; }
.scn-cook-reef-incident .cri-piece { position:absolute; bottom:30%; left:50%; width:15px; height:12px; background: #a0461a; border-radius: 30% 50% 40% 50%; transform: rotate(20deg); box-shadow: 0 2px 4px rgba(0,0,0,0.3); animation: cri-piece 3s ease-in-out infinite; }
.scn-cook-reef-incident .cri-splash { position:absolute; bottom:30%; left:45%; width:30px; height:20px; background: radial-gradient(ellipse, rgba(255,255,255,0.4) 0%, transparent 100%); border-radius:50%; animation: cri-splash 2s ease-out infinite; }
.scn-cook-reef-incident .cri-ripple { position:absolute; bottom:25%; left:35%; width:50px; height:20px; border:2px solid rgba(255,255,255,0.2); border-radius:50%; background: transparent; animation: cri-ripple 4s ease-out infinite; }
@keyframes cri-water { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes cri-hull { 0% { transform: translateY(0) rotate(-10deg); } 50% { transform: translateY(-4px) rotate(-8deg); } 100% { transform: translateY(0) rotate(-10deg); } }
@keyframes cri-coral { 0% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.02) rotate(1deg); } 100% { transform: scale(0.98) rotate(-1deg); } }
@keyframes cri-piece { 0% { transform: translate(0,0) rotate(20deg); opacity:1; } 50% { transform: translate(-10px, -8px) rotate(60deg); opacity:0.8; } 100% { transform: translate(-20px, -16px) rotate(100deg); opacity:0; } }
@keyframes cri-splash { 0% { transform: scale(1); opacity:0.6; } 50% { transform: scale(2); opacity:0.2; } 100% { transform: scale(3); opacity:0; } }
@keyframes cri-ripple { 0% { transform: scale(1); opacity:0.3; } 100% { transform: scale(2.5); opacity:0; } }

/* coral-growth-rate */
.scn-coral-growth-rate {
  background: linear-gradient(180deg, #f5f0e0 0%, #d0d8e0 70%), radial-gradient(ellipse at 70% 50%, #ffe8c0 0%, transparent 60%);
}
.scn-coral-growth-rate .view-port {
  position:absolute; inset:10% 8% 10% 8%;
  border:4px solid #5a5a6a; border-radius:20px;
  background:rgba(10,20,30,0.3); box-shadow:inset 0 0 30px #204060;
}
.scn-coral-growth-rate .coral-wall {
  position:absolute; left:55%; bottom:20%; width:30%; height:70%;
  background: linear-gradient(135deg, #d98c5e 0%, #a0643a 50%, #7a4530 100%);
  border-radius: 40% 10% 10% 40%; box-shadow: 0 0 20px rgba(200,120,60,0.5);
  animation: crg-grow 10s ease-in-out infinite alternate;
}
.scn-coral-growth-rate .coral-polyp {
  position:absolute; left:58%; top:30%; width:6%; height:12%;
  background: radial-gradient(circle, #ffcc80 0%, #c78a40 70%);
  border-radius: 50% 50% 30% 30%; filter: blur(1px);
  animation: crg-openclose 4s ease-in-out infinite;
}
.scn-coral-growth-rate .figure {
  position:absolute; right:15%; bottom:25%; width:5%; height:18%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 80%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: crg-sway 8s ease-in-out infinite;
}
.scn-coral-growth-rate .bubble-a {
  position:absolute; left:50%; bottom:10%; width:1.5%; height:1.5%;
  background:#d0e8ff; border-radius:50%;
  box-shadow: 0 0 6px #a0c8ff;
  animation: crg-bubble 6s linear infinite;
  animation-delay:0s;
}
.scn-coral-growth-rate .bubble-b {
  left:52%; bottom:15%; width:1%; height:1%;
  animation: crg-bubble 7s linear infinite;
  animation-delay:-1.5s;
}
.scn-coral-growth-rate .light-beam {
  position:absolute; left:25%; top:0; width:2%; height:60%;
  background: linear-gradient(180deg, rgba(255,255,200,0.4) 0%, transparent 100%);
  transform: rotate(10deg); filter: blur(4px);
  animation: crg-flicker 3s ease-in-out infinite alternate;
}
.scn-coral-growth-rate .data-monitor {
  position:absolute; right:8%; top:15%; width:8%; height:10%;
  background: linear-gradient(135deg, #2a4a2a 0%, #102010 100%);
  border-radius:4px; border:1px solid #4a6a4a;
  animation: crg-blink 2s step-end infinite;
}
@keyframes crg-grow {
  0% { transform: scaleY(1) translateY(0); }
  50% { transform: scaleY(1.02) translateY(-2px); }
  100% { transform: scaleY(0.97) translateY(1px); }
}
@keyframes crg-openclose {
  0% { transform: scale(1) rotate(0deg); }
  50% { transform: scale(1.3) rotate(5deg); }
  100% { transform: scale(0.8) rotate(-3deg); }
}
@keyframes crg-sway {
  0% { transform: rotate(-2deg) translateX(0); }
  30% { transform: rotate(1deg) translateX(3px); }
  60% { transform: rotate(-1deg) translateX(-2px); }
  100% { transform: rotate(0deg) translateX(0); }
}
@keyframes crg-bubble {
  0% { transform: translateY(0) scale(1); opacity:0.8; }
  50% { transform: translateY(-80px) scale(1.3); opacity:0.5; }
  100% { transform: translateY(-160px) scale(0.7); opacity:0; }
}
@keyframes crg-flicker {
  0% { opacity:0.6; filter: blur(4px); }
  50% { opacity:1; filter: blur(2px); }
  100% { opacity:0.7; filter: blur(5px); }
}
@keyframes crg-blink {
  0%,90% { opacity:1; }
  95% { opacity:0.1; }
  100% { opacity:1; }
}

/* geological-time */
.scn-geological-time {
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%), radial-gradient(ellipse at 50% 20%, #6a5a3a 0%, transparent 70%);
}
.scn-geological-time .study-desk {
  position:absolute; left:5%; bottom:10%; width:90%; height:30%;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2a0a 100%);
  border-radius:8px 8px 0 0; box-shadow: 0 4px 12px rgba(0,0,0,0.5);
}
.scn-geological-time .bookshelf {
  position:absolute; left:10%; top:10%; width:15%; height:60%;
  background: repeating-linear-gradient(180deg, #4a2a1a 0px, #4a2a1a 4px, #5a3a2a 4px, #5a3a2a 8px);
  border-radius:2px; box-shadow: 0 0 10px rgba(0,0,0,0.6);
  animation: gt-shelf 20s ease-in-out infinite alternate;
}
.scn-geological-time .fossil-case {
  position:absolute; left:30%; top:20%; width:20%; height:20%;
  background: linear-gradient(135deg, #8a7a6a 0%, #5a4a3a 100%);
  border-radius:4px; border:2px solid #6a5a4a;
  box-shadow: inset 0 0 10px #4a3a2a;
  animation: gt-fossil 8s ease-in-out infinite alternate;
}
.scn-geological-time .figure-reading {
  position:absolute; right:15%; bottom:20%; width:6%; height:25%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 70%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: gt-read 6s ease-in-out infinite alternate;
}
.scn-geological-time .lamp-glow {
  position:absolute; right:25%; top:30%; width:4%; height:8%;
  background: radial-gradient(circle, #ffe0a0 0%, #d0a060 50%, transparent 100%);
  border-radius:50%; filter: blur(6px);
  animation: gt-globe 3s ease-in-out infinite alternate;
}
.scn-geological-time .window-view {
  position:absolute; left:55%; top:8%; width:30%; height:45%;
  border:6px solid #3a2a1a; border-radius:8px;
  background: linear-gradient(180deg, #a0b0c0 0%, #607080 70%);
  box-shadow: inset 0 0 20px #202030;
  animation: gt-window 12s ease-in-out infinite alternate;
}
.scn-geological-time .clock-hands {
  position:absolute; right:10%; top:10%; width:2%; height:6%;
  background:#8a7a6a; border-radius:2px;
  transform-origin: bottom center;
  animation: gt-clock 60s linear infinite;
}
@keyframes gt-shelf {
  0% { transform: scaleX(1); }
  50% { transform: scaleX(1.005); }
  100% { transform: scaleX(0.99); }
}
@keyframes gt-fossil {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(1px) rotate(-1deg); }
}
@keyframes gt-read {
  0% { transform: rotate(-1deg) translateY(0); }
  50% { transform: rotate(1.5deg) translateY(-2px); }
  100% { transform: rotate(0deg) translateY(1px); }
}
@keyframes gt-globe {
  0% { opacity:0.8; transform: scale(1); }
  50% { opacity:1; transform: scale(1.2); }
  100% { opacity:0.7; transform: scale(0.9); }
}
@keyframes gt-window {
  0% { opacity:0.9; }
  50% { opacity:1; }
  100% { opacity:0.8; }
}
@keyframes gt-clock {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}

/* reao-island-surface */
.scn-reao-island-surface {
  background: linear-gradient(180deg, #7ab0d0 0%, #d0e8f0 40%, #f0d8a0 75%, #d0b070 100%), radial-gradient(ellipse at 70% 20%, #ffe8c0 0%, transparent 50%);
}
.scn-reao-island-surface .sky-layer {
  position:absolute; inset:0 0 40% 0;
  background: linear-gradient(180deg, #8ac0e0 0%, #d0e0f0 100%);
  animation: ris-sky 15s ease-in-out infinite alternate;
}
.scn-reao-island-surface .ocean-far {
  position:absolute; bottom:25%; left:0; right:0; height:20%;
  background: linear-gradient(180deg, #3070a0 0%, #5090c0 100%);
  border-radius: 40% 60% 0 0 / 20% 30% 0 0;
  animation: ris-wave 8s ease-in-out infinite alternate;
}
.scn-reao-island-surface .island-flat {
  position:absolute; bottom:15%; left:10%; right:10%; height:15%;
  background: linear-gradient(180deg, #8a6a3a 0%, #6a4a2a 100%);
  border-radius: 80% 80% 0 0;
  box-shadow: 0 5px 15px rgba(0,0,0,0.3);
}
.scn-reao-island-surface .tree-line {
  position:absolute; bottom:22%; left:15%; right:15%; height:20%;
  background: radial-gradient(ellipse at 30% 100%, #2a5a2a 0%, #1a3a1a 80%);
  border-radius: 50% 50% 10% 10%;
  animation: ris-sway 12s ease-in-out infinite;
}
.scn-reao-island-surface .rock-mound {
  position:absolute; bottom:10%; left:40%; width:10%; height:8%;
  background: linear-gradient(135deg, #8a8070 0%, #5a4a3a 100%);
  border-radius: 70% 30% 40% 60% / 50% 60% 40% 50%;
  transform: rotate(-5deg);
  animation: ris-rock 20s ease-in-out infinite alternate;
}
.scn-reao-island-surface .sun-disk {
  position:absolute; top:8%; right:18%; width:12%; height:12%;
  background: radial-gradient(circle, #ffe68a 0%, #f0c040 60%, transparent 100%);
  border-radius:50%;
  animation: ris-sun 30s linear infinite;
}
.scn-reao-island-surface .wave-curl {
  position:absolute; bottom:20%; left:20%; width:40%; height:6%;
  background: radial-gradient(ellipse at 50% 0%, rgba(255,255,255,0.6) 0%, transparent 100%);
  filter: blur(2px);
  animation: ris-curl 6s ease-in-out infinite alternate;
}
.scn-reao-island-surface .shadow-foliage {
  position:absolute; bottom:0; left:0; right:0; height:10%;
  background: linear-gradient(180deg, rgba(30,40,20,0.4) 0%, transparent 100%);
  animation: ris-dapple 10s ease-in-out infinite alternate;
}
@keyframes ris-sky {
  0% { opacity:0.9; }
  50% { opacity:1; }
  100% { opacity:0.8; }
}
@keyframes ris-wave {
  0% { transform: translateY(0) scaleX(1); }
  50% { transform: translateY(-3px) scaleX(1.02); }
  100% { transform: translateY(2px) scaleX(0.98); }
}
@keyframes ris-sway {
  0% { transform: rotate(-1deg) translateX(0); }
  50% { transform: rotate(2deg) translateX(3px); }
  100% { transform: rotate(-2deg) translateX(-2px); }
}
@keyframes ris-rock {
  0% { transform: translateY(0) rotate(-5deg); }
  50% { transform: translateY(-2px) rotate(0deg); }
  100% { transform: translateY(1px) rotate(-8deg); }
}
@keyframes ris-sun {
  0% { transform: translateX(0) scale(1); }
  50% { transform: translateX(5px) scale(1.05); }
  100% { transform: translateX(-5px) scale(0.95); }
}
@keyframes ris-curl {
  0% { transform: translateX(0) scaleY(1); }
  50% { transform: translateX(-5px) scaleY(1.3); }
  100% { transform: translateX(5px) scaleY(0.8); }
}
@keyframes ris-dapple {
  0% { opacity:0.6; }
  50% { opacity:0.9; }
  100% { opacity:0.5; }
}

/* seed-arrival */
.scn-seed-arrival {
  background: linear-gradient(180deg, #b0d8f0 0%, #e0e8c0 50%, #d0b880 100%), radial-gradient(ellipse at 30% 80%, #ffe0a0 0%, transparent 60%);
}
.scn-seed-arrival .beach-sky {
  position:absolute; inset:0 0 35% 0;
  background: linear-gradient(180deg, #90c8e0 0%, #c8dcc0 80%);
  animation: sa-sky 12s ease-in-out infinite alternate;
}
.scn-seed-arrival .ocean-near {
  position:absolute; bottom:20%; left:0; right:0; height:20%;
  background: linear-gradient(180deg, #4080a0 0%, #60a0c0 100%);
  border-radius: 30% 50% 0 0 / 20% 30% 0 0;
  animation: sa-ocean 10s ease-in-out infinite alternate;
}
.scn-seed-arrival .sand-strand {
  position:absolute; bottom:0; left:0; right:0; height:25%;
  background: linear-gradient(180deg, #d0b070 0%, #c0a060 30%, #a08050 100%);
  border-radius: 70% 80% 0 0;
  box-shadow: inset 0 5px 15px rgba(120,80,30,0.3);
}
.scn-seed-arrival .lime-rock {
  position:absolute; bottom:20%; left:30%; width:12%; height:10%;
  background: linear-gradient(135deg, #a0a098 0%, #706860 100%);
  border-radius: 50% 40% 60% 30% / 40% 60% 40% 60%;
  transform: rotate(-10deg);
  box-shadow: 0 3px 8px rgba(0,0,0,0.2);
}
.scn-seed-arrival .coconut {
  position:absolute; bottom:15%; left:55%; width:6%; height:8%;
  background: radial-gradient(circle at 30% 30%, #8a6a3a 0%, #4a2a0a 100%);
  border-radius: 50%; box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation: sa-roll 8s ease-in-out infinite alternate;
}
.scn-seed-arrival .seedling {
  position:absolute; bottom:20%; left:58%; width:2%; height:10%;
  background: linear-gradient(180deg, #2a6a2a 0%, #1a4a1a 100%);
  border-radius: 40% 40% 20% 20% / 80% 80% 20% 20%;
  transform-origin: bottom center;
  animation: sa-grow 6s ease-in-out infinite alternate;
}
.scn-seed-arrival .foam-edge {
  position:absolute; bottom:22%; left:0; right:0; height:2%;
  background: linear-gradient(90deg, transparent 0%, rgba(255,255,255,0.5) 50%, transparent 100%);
  filter: blur(3px);
  animation: sa-foam 5s ease-in-out infinite;
}
.scn-seed-arrival .cloud-light {
  position:absolute; top:10%; right:10%; width:18%; height:8%;
  background: radial-gradient(ellipse, rgba(255,255,255,0.4) 0%, transparent 100%);
  filter: blur(8px);
  animation: sa-cloud 25s linear infinite;
}
@keyframes sa-sky {
  0% { opacity:0.9; }
  50% { opacity:1; }
  100% { opacity:0.8; }
}
@keyframes sa-ocean {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-2px) scaleY(1.02); }
  100% { transform: translateY(2px) scaleY(0.98); }
}
@keyframes sa-roll {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(8px) rotate(10deg); }
  100% { transform: translateX(-5px) rotate(-5deg); }
}
@keyframes sa-grow {
  0% { transform: scaleY(1) translateY(0); }
  50% { transform: scaleY(1.3) translateY(-5px); }
  100% { transform: scaleY(0.9) translateY(2px); }
}
@keyframes sa-foam {
  0% { transform: translateX(0) scaleX(1); }
  50% { transform: translateX(10px) scaleX(1.2); }
  100% { transform: translateX(-10px) scaleX(0.9); }
}
@keyframes sa-cloud {
  0% { transform: translateX(0) scale(1); }
  50% { transform: translateX(30px) scale(1.1); }
  100% { transform: translateX(-30px) scale(0.9); }
}

.scn-oyster-bank { background: linear-gradient(180deg, #fce4c0 0%, #e8c9a0 30%, #b8d8e8 60%, #6a9fc0 100%), radial-gradient(ellipse at 60% 20%, #fff8e0 0%, transparent 50%); }
.scn-oyster-bank .room-bg { position:absolute; inset:0; background: linear-gradient(180deg, #f8e8c8 0%, #d4b888 100%); border-radius:0 0 30% 30% / 0 0 10% 10%; animation: ob1-room 20s ease-in-out infinite alternate; }
.scn-oyster-bank .table { position:absolute; bottom:0; left:5%; right:5%; height:35%; background: linear-gradient(180deg, #8b6f4e 0%, #5c4a32 100%); border-radius: 20% 20% 0 0 / 8% 8% 0 0; box-shadow: inset 0 12px 20px rgba(0,0,0,0.3); }
.scn-oyster-bank .plate { position:absolute; bottom:20%; left:50%; width:120px; height:35px; transform:translateX(-50%); background: radial-gradient(ellipse, #f0ead6 40%, #d4c4a0 70%); border-radius:50%; box-shadow: 0 4px 8px rgba(0,0,0,0.2), inset 0 -2px 4px rgba(0,0,0,0.1); animation: ob1-plate 12s ease-in-out infinite; }
.scn-oyster-bank .oyster { position:absolute; bottom:22%; left:50%; width:50px; height:30px; transform:translateX(-50%); background: linear-gradient(180deg, #c9a87c 0%, #a0835a 100%); border-radius: 40% 40% 30% 30%; box-shadow: inset 0 2px 6px rgba(0,0,0,0.3); animation: ob1-oyster 8s ease-in-out infinite alternate; }
.scn-oyster-bank .pearl { position:absolute; bottom:25%; left:50%; width:12px; height:12px; transform:translateX(-50%); background: radial-gradient(circle, #fff8f0 0%, #f0d8b0 70%); border-radius:50%; box-shadow: 0 0 16px 4px #ffe0b0; animation: ob1-pearl 4s ease-in-out infinite alternate; }
.scn-oyster-bank .hand { position:absolute; bottom:26%; left:36%; width:16px; height:38px; background: linear-gradient(180deg, #d4b888 0%, #a08060 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ob1-hand 6s ease-in-out infinite; }
.scn-oyster-bank .sunbeam { position:absolute; top:0; left:20%; width:8px; bottom:60%; background: linear-gradient(180deg, rgba(255,255,200,0.6) 0%, transparent 100%); transform: rotate(-10deg); filter: blur(4px); animation: ob1-beam 15s ease-in-out infinite alternate; }
.scn-oyster-bank .shadow { position:absolute; bottom:18%; left:30%; width:60px; height:10px; background: radial-gradient(ellipse, rgba(0,0,0,0.15) 0%, transparent 100%); animation: ob1-shadow 6s ease-in-out infinite; }
@keyframes ob1-room { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes ob1-plate { 0%,100% { transform:translateX(-50%) } 50% { transform:translateX(-50%) scale(1.02) } }
@keyframes ob1-oyster { 0% { transform:translateX(-50%) rotate(0deg) } 50% { transform:translateX(-50%) rotate(2deg) scale(1.02) } 100% { transform:translateX(-50%) rotate(-2deg) } }
@keyframes ob1-pearl { 0% { opacity:0.7; box-shadow:0 0 12px 2px #ffe0b0 } 50% { opacity:1; box-shadow:0 0 28px 8px #ffe0b0 } 100% { opacity:0.8; box-shadow:0 0 16px 4px #ffe0b0 } }
@keyframes ob1-hand { 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 ob1-beam { 0% { transform:rotate(-12deg) scaleY(1) } 50% { transform:rotate(-8deg) scaleY(1.1) } 100% { transform:rotate(-10deg) scaleY(0.9) } }
@keyframes ob1-shadow { 0%,100% { opacity:0.2; transform:scaleX(1) } 50% { opacity:0.4; transform:scaleX(1.2) } }

.scn-extensive-oysterbank { background: linear-gradient(180deg, #1a3a4a 0%, #2c5a6a 30%, #4a7a8a 60%, #6a9a9a 80%, #8acaca 100%), radial-gradient(ellipse at 50% 20%, #b0e0e0 0%, transparent 60%); }
.scn-extensive-oysterbank .sea { position:absolute; inset:0; background: linear-gradient(180deg, #1a3a4a 0%, #2c5a6a 30%, #4a7a8a 60%, #6a9a9a 100%); animation: eob-sea 25s ease-in-out infinite alternate; }
.scn-extensive-oysterbank .surface { position:absolute; top:0; left:0; right:0; height:12%; background: linear-gradient(180deg, #b0e0e0 0%, #8acaca 100%); border-radius:0 0 50% 50%; box-shadow: inset 0 -4px 12px rgba(255,255,255,0.3); animation: eob-surface 18s ease-in-out infinite alternate; }
.scn-extensive-oysterbank .ray { position:absolute; top:0; left:30%; width:6px; bottom:40%; background: linear-gradient(180deg, rgba(200,240,240,0.6) 0%, transparent 100%); filter: blur(4px); transform: rotate(8deg); animation: eob-ray 30s linear infinite; }
.scn-extensive-oysterbank .oysterbed { position:absolute; bottom:0; left:0; right:0; height:40%; background: radial-gradient(ellipse at 50% 100%, #4a3a2a 0%, #2a1a0a 60%, transparent 100%); border-radius: 40% 40% 0 0 / 20% 20% 0 0; box-shadow: inset 0 20px 30px rgba(0,0,0,0.4); animation: eob-bed 30s ease-in-out infinite; }
.scn-extensive-oysterbank .oyster-1 { position:absolute; bottom:28%; left:20%; width:40px; height:24px; background: linear-gradient(135deg, #b09878 0%, #8a7050 100%); border-radius: 50% 50% 40% 40%; box-shadow: 0 2px 6px rgba(0,0,0,0.3); animation: eob-oyster1 12s ease-in-out infinite; }
.scn-extensive-oysterbank .oyster-2 { position:absolute; bottom:32%; right:25%; width:35px; height:20px; background: linear-gradient(135deg, #c0a888 0%, #9a8060 100%); border-radius: 50% 50% 40% 40%; box-shadow: 0 2px 6px rgba(0,0,0,0.3); animation: eob-oyster2 14s ease-in-out infinite alternate; }
.scn-extensive-oysterbank .fish { position:absolute; top:45%; left:10%; width:30px; height:12px; background: linear-gradient(90deg, #608080 0%, #90a0a0 100%); border-radius: 50% 50% 40% 60%; filter: blur(1px); animation: eob-fish 20s linear infinite; }
.scn-extensive-oysterbank .bubble { position:absolute; bottom:60%; left:15%; width:8px; height:8px; background: radial-gradient(circle, rgba(200,240,240,0.6) 0%, transparent 100%); border-radius:50%; animation: eob-bubble 18s linear infinite; animation-delay: -5s; }
@keyframes eob-sea { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes eob-surface { 0% { transform:translateY(0) } 50% { transform:translateY(2px) } 100% { transform:translateY(-2px) } }
@keyframes eob-ray { 0% { transform:rotate(6deg) translateX(0) } 100% { transform:rotate(10deg) translateX(40%) } }
@keyframes eob-bed { 0%,100% { transform:scaleY(1) } 50% { transform:scaleY(1.02) translateY(-2px) } }
@keyframes eob-oyster1 { 0% { transform:translateY(0) rotate(0deg) } 50% { transform:translateY(-2px) rotate(3deg) } 100% { transform:translateY(0) rotate(-2deg) } }
@keyframes eob-oyster2 { 0% { transform:translateY(0) rotate(0deg) } 100% { transform:translateY(-3px) rotate(5deg) } }
@keyframes eob-fish { 0% { transform:translateX(0) } 50% { transform:translateX(60px) translateY(-2px) } 100% { transform:translateX(120px) translateY(0) } }
@keyframes eob-bubble { 0% { transform:translateY(0) scale(1); opacity:0.8 } 50% { transform:translateY(-60px) scale(1.5); opacity:0.4 } 100% { transform:translateY(-120px) scale(0.8); opacity:0 } }

.scn-no-indigestion { background: linear-gradient(180deg, #fce4c0 0%, #e8c9a0 30%, #b8d8e8 60%, #6a9fc0 100%), radial-gradient(ellipse at 60% 20%, #fff8e0 0%, transparent 50%); }
.scn-no-indigestion .room-bg { position:absolute; inset:0; background: linear-gradient(180deg, #f8e8c8 0%, #d4b888 100%); border-radius:0 0 30% 30% / 0 0 10% 10%; animation: ni-room 20s ease-in-out infinite alternate; }
.scn-no-indigestion .table { position:absolute; bottom:0; left:5%; right:5%; height:30%; background: linear-gradient(180deg, #8b6f4e 0%, #5c4a32 100%); border-radius: 20% 20% 0 0 / 8% 8% 0 0; box-shadow: inset 0 12px 20px rgba(0,0,0,0.3); }
.scn-no-indigestion .figure { position:absolute; bottom:22%; left:30%; width:24px; 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: ni-figure 4s ease-in-out infinite; }
.scn-no-indigestion .hand-belly { position:absolute; bottom:28%; left:32%; width:12px; height:14px; background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%); border-radius: 50%; animation: ni-hand 4s ease-in-out infinite; }
.scn-no-indigestion .plate { position:absolute; bottom:12%; left:55%; width:90px; height:25px; background: radial-gradient(ellipse, #f0ead6 40%, #d4c4a0 70%); border-radius:50%; box-shadow: 0 4px 8px rgba(0,0,0,0.2); animation: ni-plate 10s ease-in-out infinite alternate; }
.scn-no-indigestion .shell { position:absolute; bottom:15%; left:50%; width:30px; height:18px; background: linear-gradient(135deg, #c0a888 0%, #9a8060 100%); border-radius: 50% 50% 40% 40%; animation: ni-shell 6s ease-in-out infinite; }
.scn-no-indigestion .sunbeam { position:absolute; top:0; left:20%; width:8px; bottom:60%; background: linear-gradient(180deg, rgba(255,255,200,0.6) 0%, transparent 100%); transform: rotate(-10deg); filter: blur(4px); animation: ni-beam 15s ease-in-out infinite alternate; }
@keyframes ni-room { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes ni-figure { 0% { transform:translateX(0) rotate(-2deg) } 25% { transform:translateX(2px) rotate(3deg) } 50% { transform:translateX(0) rotate(-1deg) } 75% { transform:translateX(-2px) rotate(2deg) } 100% { transform:translateX(0) rotate(0) } }
@keyframes ni-hand { 0%,100% { transform:translateY(0) scale(1); opacity:0.8 } 50% { transform:translateY(-3px) scale(1.1); opacity:1 } }
@keyframes ni-plate { 0% { transform:translateX(0) scale(1) } 50% { transform:translateX(5px) scale(1.03) rotate(3deg) } 100% { transform:translateX(-5px) scale(0.97) rotate(-3deg) } }
@keyframes ni-shell { 0% { transform:translateY(0) rotate(0deg) } 50% { transform:translateY(-4px) rotate(10deg) } 100% { transform:translateY(0) rotate(5deg) } }
@keyframes ni-beam { 0% { transform:rotate(-12deg) scaleY(1) } 50% { transform:rotate(-8deg) scaleY(1.1) } 100% { transform:rotate(-10deg) scaleY(0.9) } }

.scn-new-hebrides-navigated { background: linear-gradient(180deg, #1a3a4a 0%, #2c5a6a 30%, #4a7a8a 60%, #6a9a9a 80%, #8acaca 100%), radial-gradient(ellipse at 50% 20%, #b0e0e0 0%, transparent 60%); }
.scn-new-hebrides-navigated .sea-bg { position:absolute; inset:0; background: linear-gradient(180deg, #1a3a4a 0%, #2c5a6a 30%, #4a7a8a 60%, #6a9a9a 100%); animation: nh-sea 25s ease-in-out infinite alternate; }
.scn-new-hebrides-navigated .surface { position:absolute; top:0; left:0; right:0; height:10%; background: linear-gradient(180deg, #b0e0e0 0%, #8acaca 100%); border-radius:0 0 50% 50%; box-shadow: inset 0 -4px 12px rgba(255,255,255,0.3); animation: nh-surface 18s ease-in-out infinite alternate; }
.scn-new-hebrides-navigated .ray-1 { position:absolute; top:0; left:25%; width:5px; bottom:50%; background: linear-gradient(180deg, rgba(200,240,240,0.5) 0%, transparent 100%); filter: blur(3px); transform: rotate(6deg); animation: nh-ray1 30s linear infinite; }
.scn-new-hebrides-navigated .ray-2 { position:absolute; top:0; right:35%; width:4px; bottom:45%; background: linear-gradient(180deg, rgba(200,240,240,0.4) 0%, transparent 100%); filter: blur(3px); transform: rotate(-5deg); animation: nh-ray2 25s linear infinite reverse; }
.scn-new-hebrides-navigated .island-base { position:absolute; bottom:0; left:20%; right:20%; height:45%; background: radial-gradient(ellipse at 50% 100%, #3a5a3a 0%, #1a3a2a 40%, transparent 80%); border-radius: 50% 50% 0 0 / 30% 30% 0 0; box-shadow: inset 0 -20px 30px rgba(0,0,0,0.4); animation: nh-island 20s ease-in-out infinite alternate; }
.scn-new-hebrides-navigated .nautilus { position:absolute; bottom:35%; left:15%; width:60px; height:20px; background: linear-gradient(90deg, #4a6a6a 0%, #6a8a8a 100%); border-radius: 50% 50% 40% 60%; box-shadow: 0 2px 6px rgba(0,0,0,0.3); animation: nh-nautilus 20s linear infinite; }
.scn-new-hebrides-navigated .fish { position:absolute; top:40%; right:10%; width:20px; height:8px; background: linear-gradient(90deg, #608080 0%, #90a0a0 100%); border-radius: 50% 50% 40% 60%; filter: blur(1px); animation: nh-fish 15s linear infinite; }
.scn-new-hebrides-navigated .bubble { position:absolute; bottom:50%; left:20%; width:6px; height:6px; background: radial-gradient(circle, rgba(200,240,240,0.6) 0%, transparent 100%); border-radius:50%; animation: nh-bubble 22s linear infinite; animation-delay: -8s; }
@keyframes nh-sea { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.75 } }
@keyframes nh-surface { 0% { transform:translateY(0) } 50% { transform:translateY(3px) } 100% { transform:translateY(-2px) } }
@keyframes nh-ray1 { 0% { transform:rotate(4deg) translateX(0) } 100% { transform:rotate(8deg) translateX(30%) } }
@keyframes nh-ray2 { 0% { transform:rotate(-7deg) translateX(0) } 100% { transform:rotate(-3deg) translateX(-20%) } }
@keyframes nh-island { 0% { transform:scaleY(1) } 50% { transform:scaleY(1.02) translateY(-3px) } 100% { transform:scaleY(0.98) translateY(0) } }
@keyframes nh-nautilus { 0% { transform:translateX(0) } 50% { transform:translateX(30px) translateY(-2px) } 100% { transform:translateX(60px) translateY(0) } }
@keyframes nh-fish { 0% { transform:translateX(0) } 50% { transform:translateX(-30px) translateY(-1px) } 100% { transform:translateX(-60px) translateY(0) } }
@keyframes nh-bubble { 0% { transform:translateY(0) scale(1); opacity:0.8 } 50% { transform:translateY(-60px) scale(1.4); opacity:0.4 } 100% { transform:translateY(-120px) scale(0.6); opacity:0 } }

/* Scene: skiff-stays */
.scn-skiff-stays {
  background: linear-gradient(180deg, #6fa8dc 0%, #3c78b0 40%, #2d5a87 100%),
    radial-gradient(ellipse at 80% 20%, #fff3c4 0%, transparent 50%);
}
.scn-skiff-stays .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #b0d4f1 0%, #6fa8dc 60%, transparent 100%);
  animation: sk-sky 12s ease-in-out infinite alternate;
}
.scn-skiff-stays .sun {
  position: absolute; top: 8%; right: 30%; width: 60px; height: 60px;
  background: radial-gradient(circle, #fff8d6 0%, #ffe066 40%, transparent 70%);
  border-radius: 50%;
  animation: sk-sun 8s ease-in-out infinite;
}
.scn-skiff-stays .sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #3a7ca5 0%, #1a4a6a 100%);
  border-radius: 20% 80% 0 0 / 30% 70% 0 0;
  transform-origin: bottom center;
  animation: sk-sea 6s ease-in-out infinite alternate;
}
.scn-skiff-stays .ship {
  position: absolute; bottom: 38%; left: 10%; width: 200px; height: 160px;
  background: linear-gradient(90deg, #4a3a2a 0%, #6a5a4a 50%, #4a3a2a 100%);
  border-radius: 10% 10% 40% 40% / 20% 20% 60% 60%;
  box-shadow: 0 10px 20px rgba(0,0,0,0.5);
  animation: sk-ship 10s ease-in-out infinite;
}
.scn-skiff-stays .skiff {
  position: absolute; bottom: 36%; left: 45%; width: 80px; height: 30px;
  background: linear-gradient(180deg, #7a6a5a 0%, #4a3a2a 100%);
  border-radius: 40% 40% 20% 20%;
  transform-origin: bottom center;
  animation: sk-skiff 4s ease-in-out infinite;
}
.scn-skiff-stays .figure {
  position: absolute; bottom: 46%; left: 46%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sk-figure 3s ease-in-out infinite;
}
.scn-skiff-stays .barrel1 {
  position: absolute; bottom: 42%; left: 42%; width: 18px; height: 24px;
  background: radial-gradient(circle at 50% 40%, #8a7a5a 0%, #5a4a2a 100%);
  border-radius: 30%;
  box-shadow: 2px 2px 4px rgba(0,0,0,0.4);
  animation: sk-barrel1 5s ease-in-out infinite;
}
.scn-skiff-stays .barrel2 {
  position: absolute; bottom: 42%; left: 50%; width: 18px; height: 24px;
  background: radial-gradient(circle at 50% 40%, #8a7a5a 0%, #5a4a2a 100%);
  border-radius: 30%;
  box-shadow: 2px 2px 4px rgba(0,0,0,0.4);
  animation: sk-barrel2 5s ease-in-out infinite 2.5s;
}
@keyframes sk-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes sk-sun { 0% { transform: scale(0.9); } 50% { transform: scale(1.1); } 100% { transform: scale(0.95); } }
@keyframes sk-sea { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-4px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes sk-ship { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(0.3deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes sk-skiff { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes sk-figure { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes sk-barrel1 { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(5deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes sk-barrel2 { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(-5deg); } 100% { transform: translateY(0) rotate(0deg); } }

/* Scene: numbers-swell */
.scn-numbers-swell {
  background: linear-gradient(180deg, #9dc3e6 0%, #4a8bbd 50%, #2a5a7a 100%),
    radial-gradient(ellipse at 60% 10%, #fff4c0 0%, transparent 60%);
}
.scn-numbers-swell .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #c4e0f0 0%, #9dc3e6 70%, transparent 100%);
  animation: ns-sky 15s ease-in-out infinite alternate;
}
.scn-numbers-swell .sun {
  position: absolute; top: 5%; left: 35%; width: 50px; height: 50px;
  background: radial-gradient(circle, #fff9e0 0%, #ffe080 40%, transparent 70%);
  border-radius: 50%;
  animation: ns-sun 9s ease-in-out infinite;
}
.scn-numbers-swell .sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #3a7ca5 0%, #1a4a6a 100%);
  border-radius: 30% 70% 0 0 / 40% 60% 0 0;
  animation: ns-sea 7s ease-in-out infinite alternate;
}
.scn-numbers-swell .sand {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #d4c4a0 0%, #b8a880 100%);
  border-radius: 50% 30% 0 0 / 80% 40% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.15);
  animation: ns-sand 10s ease-in-out infinite;
}
.scn-numbers-swell .figure1 {
  position: absolute; bottom: 10%; left: 20%; width: 24px; height: 42px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ns-fig1 4s ease-in-out infinite;
}
.scn-numbers-swell .figure2 {
  position: absolute; bottom: 12%; left: 35%; width: 22px; height: 38px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ns-fig2 5s ease-in-out infinite 1s;
}
.scn-numbers-swell .figure3 {
  position: absolute; bottom: 8%; left: 55%; width: 26px; height: 44px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ns-fig3 6s ease-in-out infinite 2s;
}
.scn-numbers-swell .tree {
  position: absolute; bottom: 20%; right: 15%; width: 30px; height: 80px;
  background: linear-gradient(180deg, #4a6a3a 0%, #2a4a1a 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 20% 20%;
  transform-origin: bottom center;
  animation: ns-tree 8s ease-in-out infinite;
}
.scn-numbers-swell .cloud {
  position: absolute; top: 15%; right: 20%; 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(5px);
  animation: ns-cloud 30s linear infinite;
}
@keyframes ns-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes ns-sun { 0% { transform: scale(0.95); } 50% { transform: scale(1.05); } 100% { transform: scale(0.95); } }
@keyframes ns-sea { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes ns-sand { 0% { transform: translateY(0); } 50% { transform: translateY(1px); } 100% { transform: translateY(0); } }
@keyframes ns-fig1 { 0% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(4px) rotate(2deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes ns-fig2 { 0% { transform: translateX(0) rotate(1deg); } 50% { transform: translateX(-3px) rotate(-1deg); } 100% { transform: translateX(0) rotate(1deg); } }
@keyframes ns-fig3 { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(5px) rotate(3deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes ns-tree { 0% { transform: rotate(0deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(0deg); } }
@keyframes ns-cloud { 0% { transform: translateX(0); } 100% { transform: translateX(-100vw); } }

/* Scene: dredging-shells */
.scn-dredging-shells {
  background: linear-gradient(180deg, #1a4a6a 0%, #0a3a5a 50%, #052a4a 100%),
    radial-gradient(ellipse at 50% 100%, #2a6a8a 0%, transparent 60%);
}
.scn-dredging-shells .water {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, rgba(100,200,255,0.2) 0%, transparent 40%, rgba(0,50,100,0.3) 100%);
  animation: ds-water 12s ease-in-out infinite alternate;
}
.scn-dredging-shells .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #3a6a4a 0%, #1a3a2a 100%);
  border-radius: 30% 70% 0 0 / 50% 50% 0 0;
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.5);
}
.scn-dredging-shells .shell1 {
  position: absolute; bottom: 15%; left: 25%; width: 30px; height: 20px;
  background: radial-gradient(circle at 30% 30%, #e8d4b0 0%, #c0a880 100%);
  border-radius: 60% 40% 40% 60% / 50% 50% 50% 50%;
  transform: rotate(-10deg);
  animation: ds-shell1 6s ease-in-out infinite;
}
.scn-dredging-shells .shell2 {
  position: absolute; bottom: 18%; left: 45%; width: 25px; height: 18px;
  background: radial-gradient(circle at 40% 40%, #f0dcc0 0%, #d0b890 100%);
  border-radius: 50% 50% 30% 70% / 60% 40% 60% 40%;
  transform: rotate(20deg);
  animation: ds-shell2 7s ease-in-out infinite 2s;
}
.scn-dredging-shells .seaweed {
  position: absolute; bottom: 10%; left: 60%; width: 10px; height: 60px;
  background: linear-gradient(180deg, #4a9a4a 0%, #2a6a2a 100%);
  border-radius: 50%;
  transform-origin: bottom center;
  animation: ds-seaweed 3s ease-in-out infinite;
}
.scn-dredging-shells .bubbles {
  position: absolute; bottom: 20%; left: 40%; width: 8px; height: 8px;
  background: radial-gradient(circle, rgba(255,255,255,0.6) 0%, transparent 100%);
  border-radius: 50%;
  box-shadow: 15px -20px 0 2px rgba(255,255,255,0.4), -10px -35px 0 4px rgba(255,255,255,0.3);
  animation: ds-bubbles 5s linear infinite;
}
.scn-dredging-shells .nautilus {
  position: absolute; top: 20%; left: 15%; width: 120px; height: 60px;
  background: linear-gradient(90deg, #4a6a8a 0%, #2a4a6a 100%);
  border-radius: 40% 60% 60% 40% / 50% 50% 50% 50%;
  box-shadow: 0 10px 30px rgba(0,20,40,0.5);
  transform: rotate(-10deg);
  animation: ds-nautilus 20s ease-in-out infinite;
}
.scn-dredging-shells .coral {
  position: absolute; bottom: 5%; right: 20%; width: 40px; height: 50px;
  background: linear-gradient(135deg, #c0553d 0%, #8a3a2a 100%);
  border-radius: 60% 40% 30% 70% / 50% 60% 40% 50%;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.3);
  animation: ds-coral 8s ease-in-out infinite;
}
@keyframes ds-water { 0% { background-position: 0% 0%; } 50% { background-position: 50% 10%; } 100% { background-position: 0% 0%; } }
@keyframes ds-shell1 { 0% { transform: translateY(0) rotate(-10deg); } 50% { transform: translateY(-2px) rotate(-5deg); } 100% { transform: translateY(0) rotate(-10deg); } }
@keyframes ds-shell2 { 0% { transform: translateY(0) rotate(20deg); } 50% { transform: translateY(-2px) rotate(15deg); } 100% { transform: translateY(0) rotate(20deg); } }
@keyframes ds-seaweed { 0% { transform: rotate(5deg); } 50% { transform: rotate(-5deg); } 100% { transform: rotate(5deg); } }
@keyframes ds-bubbles { 0% { transform: translateY(0) scale(1); opacity: 1; } 100% { transform: translateY(-60px) scale(0.5); opacity: 0; } }
@keyframes ds-nautilus { 0% { transform: translateX(0) rotate(-10deg); } 50% { transform: translateX(30px) rotate(-5deg); } 100% { transform: translateX(0) rotate(-10deg); } }
@keyframes ds-coral { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.05); } 100% { transform: scaleY(1); } }

/* Scene: cannibal-discussion */
.scn-cannibal-discussion {
  background: linear-gradient(180deg, #f8e8c0 0%, #e8d0a0 40%, #c8b080 100%),
    radial-gradient(ellipse at 50% 20%, #fff4d0 0%, transparent 50%);
}
.scn-cannibal-discussion .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #d4e8f8 0%, #b8d4e8 70%, transparent 100%);
  animation: cd-sky 14s ease-in-out infinite alternate;
}
.scn-cannibal-discussion .sun {
  position: absolute; top: 12%; left: 30%; width: 45px; height: 45px;
  background: radial-gradient(circle, #fffce0 0%, #ffe888 40%, transparent 70%);
  border-radius: 50%;
  animation: cd-sun 7s ease-in-out infinite;
}
.scn-cannibal-discussion .sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #4a8ab8 0%, #2a5a7a 100%);
  border-radius: 40% 60% 0 0 / 30% 70% 0 0;
  animation: cd-sea 8s ease-in-out infinite alternate;
}
.scn-cannibal-discussion .sand {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #d8c8a8 0%, #b8a888 100%);
  border-radius: 30% 70% 0 0 / 80% 40% 0 0;
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.1);
}
.scn-cannibal-discussion .figure1 {
  position: absolute; bottom: 15%; left: 25%; 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: cd-fig1 4s ease-in-out infinite;
}
.scn-cannibal-discussion .figure2 {
  position: absolute; bottom: 15%; left: 50%; width: 30px; 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: cd-fig2 5s ease-in-out infinite 0.5s;
}
.scn-cannibal-discussion .pot {
  position: absolute; bottom: 18%; left: 38%; width: 28px; height: 20px;
  background: radial-gradient(circle at 50% 30%, #8a7a5a 0%, #5a4a2a 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: cd-pot 3s ease-in-out infinite;
}
.scn-cannibal-discussion .flame {
  position: absolute; bottom: 22%; left: 39.5%; width: 8px; height: 10px;
  background: radial-gradient(circle, #ff8c40 0%, #ff5a00 50%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 -4px 12px #ff5a00;
  animation: cd-flame 1.5s ease-in-out infinite alternate;
}
@keyframes cd-sky { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes cd-sun { 0% { transform: scale(0.95) rotate(0deg); } 50% { transform: scale(1.1) rotate(10deg); } 100% { transform: scale(0.95) rotate(0deg); } }
@keyframes cd-sea { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes cd-fig1 { 0% { transform: translateX(0) rotate(-3deg); } 50% { transform: translateX(5px) rotate(2deg); } 100% { transform: translateX(0) rotate(-3deg); } }
@keyframes cd-fig2 { 0% { transform: translateX(0) rotate(2deg); } 50% { transform: translateX(-4px) rotate(-1deg); } 100% { transform: translateX(0) rotate(2deg); } }
@keyframes cd-pot { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(5deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes cd-flame { 0% { transform: scaleY(0.8) translateY(0); } 50% { transform: scaleY(1.2) translateY(-2px); } 100% { transform: scaleY(0.8) translateY(0); } }

/* Scene 1: days-pass-quietly - dim interior, calm mood */
.scn-days-pass-quietly {
  background:
    linear-gradient(180deg, #1a1a3e 0%, #2c2244 40%, #1a1a2e 100%),
    radial-gradient(ellipse at 50% 100%, #2c2244 0%, transparent 60%);
}
.scn-days-pass-quietly .dpq-bg { position:absolute; inset:0; background:linear-gradient(180deg, #0e0e1e 0%, #1a1a2e 100%); }
.scn-days-pass-quietly .dpq-wall { position:absolute; inset:10% 5% 30% 5%; background:linear-gradient(135deg, #3a2a1a 0%, #5a3a2a 50%, #2a1a0a 100%); border-radius:4px; box-shadow:inset 0 0 30px rgba(0,0,0,.7); }
.scn-days-pass-quietly .dpq-porthole { position:absolute; top:15%; right:8%; width:80px; height:80px; border-radius:50%; border:6px solid #6a5a4a; background:radial-gradient(circle at 30% 30%, #1a3a5a 0%, #0a0a2a 100%); box-shadow:0 0 20px rgba(0,0,0,.5) inset, 0 0 10px #8a7a6a; animation:dpq-flicker 4s ease-in-out infinite alternate; }
.scn-days-pass-quietly .dpq-table { position:absolute; bottom:28%; left:20%; width:60%; height:8%; background:linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:2px; box-shadow:0 4px 12px rgba(0,0,0,.6); }
.scn-days-pass-quietly .dpq-chart { position:absolute; bottom:32%; left:35%; width:30%; height:5%; background:linear-gradient(135deg, #d4c8b0 0%, #b8a88a 50%, #a09070 100%); border-radius:1px; transform:rotate(-3deg); box-shadow:0 2px 6px rgba(0,0,0,.4); animation:dpq-sway 12s ease-in-out infinite; }
.scn-days-pass-quietly .dpq-lamp { position:absolute; bottom:38%; left:48%; width:12px; height:18px; background:radial-gradient(circle, #ffd080 0%, #b08040 70%); border-radius:50% 50% 30% 30% / 60% 60% 40% 40%; box-shadow:0 0 30px 6px #c08040, 0 0 60px 12px rgba(192,128,64,.3); animation:dpq-glow 3s ease-in-out infinite alternate; }
.scn-days-pass-quietly .dpq-figure { position:absolute; bottom:25%; left:30%; width:16px; 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:dpq-figure 6s ease-in-out infinite; }
@keyframes dpq-flicker { 0% { opacity:.85; box-shadow:0 0 20px rgba(0,0,0,.5) inset, 0 0 10px #8a7a6a; } 50% { opacity:1; box-shadow:0 0 30px rgba(0,50,80,.3) inset, 0 0 15px #9a8a7a; } 100% { opacity:.9; box-shadow:0 0 25px rgba(0,0,0,.5) inset, 0 0 12px #8a7a6a; } }
@keyframes dpq-sway { 0%,100% { transform:rotate(-3deg) translateX(0); } 50% { transform:rotate(-1deg) translateX(2px); } }
@keyframes dpq-glow { 0% { box-shadow:0 0 24px 4px #c08040, 0 0 48px 10px rgba(192,128,64,.3); opacity:.9; } 50% { box-shadow:0 0 40px 12px #ffd080, 0 0 80px 20px rgba(255,208,128,.5); opacity:1; } 100% { box-shadow:0 0 30px 6px #c08040, 0 0 60px 12px rgba(192,128,64,.35); opacity:.85; } }
@keyframes dpq-figure { 0%,100% { transform:translateY(0) rotate(0); } 30% { transform:translateY(-2px) rotate(2deg); } 70% { transform:translateY(-1px) rotate(-1deg); } }

/* Scene 2: conseil-land-companions - bright interior, calm */
.scn-conseil-land-companions {
  background:
    linear-gradient(180deg, #c0e8f0 0%, #a0d0e0 50%, #80b8c8 100%),
    radial-gradient(ellipse at 50% 0%, #e0f4ff 0%, transparent 60%);
}
.scn-conseil-land-companions .clc-bg { position:absolute; inset:0; background:linear-gradient(180deg, #d0e8f0 0%, #b0d0e0 100%); }
.scn-conseil-land-companions .clc-window-frame { position:absolute; inset:8% 5% 25% 5%; background:linear-gradient(135deg, #6a7a6a 0%, #4a5a4a 50%, #3a4a3a 100%); border-radius:12px; box-shadow:inset 0 0 30px rgba(0,0,0,.3); }
.scn-conseil-land-companions .clc-water-view { position:absolute; inset:10% 7% 27% 7%; background:linear-gradient(180deg, #80c0d0 0%, #408090 100%); border-radius:8px; animation:clc-shimmer 15s ease-in-out infinite alternate; box-shadow:inset 0 0 20px rgba(0,60,80,.2); }
.scn-conseil-land-companions .clc-conseil { position:absolute; bottom:22%; left:30%; width:14px; height:40px; background:linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:clc-figure1 4s ease-in-out infinite; }
.scn-conseil-land-companions .clc-land { position:absolute; bottom:22%; left:55%; width:16px; height:42px; background:linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:clc-figure2 5s ease-in-out infinite 1s; }
.scn-conseil-land-companions .clc-table { position:absolute; bottom:18%; left:35%; width:30%; height:6%; background:linear-gradient(180deg, #c8b8a8 0%, #a09080 100%); border-radius:4px; box-shadow:0 4px 8px rgba(0,0,0,.2); }
.scn-conseil-land-companions .clc-light-rays { position:absolute; top:0; left:20%; width:60%; height:100%; background:linear-gradient(135deg, rgba(255,255,200,.4) 0%, transparent 50%, rgba(200,255,255,.2) 100%); filter:blur(8px); animation:clc-rays 10s ease-in-out infinite alternate; }
@keyframes clc-shimmer { 0% { opacity:.7; } 50% { opacity:.9; } 100% { opacity:.8; } }
@keyframes clc-figure1 { 0%,100% { transform:translateY(0) rotate(0); } 25% { transform:translateY(-2px) rotate(3deg); } 75% { transform:translateY(-1px) rotate(-2deg); } }
@keyframes clc-figure2 { 0%,100% { transform:translateY(0) rotate(0); } 20% { transform:translateY(-1px) rotate(-2deg); } 80% { transform:translateY(-2px) rotate(3deg); } }
@keyframes clc-rays { 0% { transform:translateX(-5%) scale(1); } 50% { transform:translateX(5%) scale(1.05); } 100% { transform:translateX(-2%) scale(0.95); } }

/* Scene 3: southeast-course - dim interior, calm */
.scn-southeast-course {
  background:
    linear-gradient(180deg, #0a0a1a 0%, #1a1a2e 50%, #0e0e1e 100%),
    radial-gradient(ellipse at 50% 80%, #1a3a4a 0%, transparent 70%);
}
.scn-southeast-course .sec-bg { position:absolute; inset:0; background:linear-gradient(180deg, #05050f 0%, #0a0a1a 100%); }
.scn-southeast-course .sec-instrument-panel { position:absolute; bottom:20%; left:15%; width:70%; height:40%; background:linear-gradient(135deg, #2a3a2a 0%, #1a2a1a 50%, #0a1a0a 100%); border-radius:8px; box-shadow:inset 0 0 30px rgba(0,20,0,.6); }
.scn-southeast-course .sec-depth-gauge { position:absolute; bottom:35%; left:30%; width:60px; height:60px; border-radius:50%; background:radial-gradient(circle, #1a3a3a 0%, #0a1a1a 100%); border:4px solid #3a5a4a; box-shadow:0 0 20px rgba(0,80,80,.3) inset; animation:sec-gauge-pulse 6s ease-in-out infinite alternate; }
.scn-southeast-course .sec-needle { position:absolute; bottom:50%; left:50%; width:4px; height:30px; background:linear-gradient(180deg, #c0d0c0 0%, #809080 100%); border-radius:2px; transform-origin:50% 100%; transform:translate(-50%,-100%) rotate(-30deg); animation:sec-needle-sweep 8s ease-in-out infinite; }
.scn-southeast-course .sec-figure { position:absolute; bottom:15%; left:45%; width:18px; height:40px; background:linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:sec-figure-move 5s ease-in-out infinite; }
.scn-southeast-course .sec-bubbles { position:absolute; bottom:60%; left:10%; width:12px; height:12px; border-radius:50%; background:radial-gradient(circle, rgba(100,200,200,.3) 0%, transparent 70%); filter:blur(2px); animation:sec-bubbles 12s linear infinite; }
.scn-southeast-course .sec-indicator { position:absolute; bottom:55%; left:20%; width:8px; height:40px; background:linear-gradient(180deg, #80c0a0 0%, transparent 100%); border-radius:2px; animation:sec-indicator-drop 10s ease-in-out infinite; }
@keyframes sec-gauge-pulse { 0% { box-shadow:0 0 20px rgba(0,80,80,.3) inset; } 50% { box-shadow:0 0 40px rgba(0,120,120,.5) inset; } 100% { box-shadow:0 0 25px rgba(0,80,80,.3) inset; } }
@keyframes sec-needle-sweep { 0% { transform:translate(-50%,-100%) rotate(-30deg); } 50% { transform:translate(-50%,-100%) rotate(20deg); } 100% { transform:translate(-50%,-100%) rotate(-30deg); } }
@keyframes sec-figure-move { 0%,100% { transform:translateY(0) rotate(0); } 30% { transform:translateY(-2px) rotate(2deg); } 70% { transform:translateY(-1px) rotate(-1deg); } }
@keyframes sec-bubbles { 0% { transform:translateY(0) scale(1); opacity:.3; } 50% { transform:translateY(-30px) scale(1.5); opacity:.2; } 100% { transform:translateY(-60px) scale(2); opacity:0; } }
@keyframes sec-indicator-drop { 0% { height:40px; opacity:.6; } 50% { height:20px; opacity:.8; } 100% { height:10px; opacity:.4; } }

/* Scene 4: tropic-of-cancer-crossed - sunlit, calm */
.scn-tropic-of-cancer-crossed {
  background:
    linear-gradient(180deg, #f0c890 0%, #c0a070 30%, #80a0c0 100%),
    radial-gradient(ellipse at 50% 0%, #ffe0b0 0%, transparent 60%);
}
.scn-tropic-of-cancer-crossed .tcc-sky { position:absolute; inset:0 0 40% 0; background:linear-gradient(180deg, #ffd8b0 0%, #90b8d0 100%); animation:tcc-sky-pulse 20s ease-in-out infinite alternate; }
.scn-tropic-of-cancer-crossed .tcc-sea { position:absolute; bottom:0; left:0; right:0; height:45%; background:linear-gradient(180deg, #408090 0%, #206070 100%); animation:tcc-sea-wave 8s ease-in-out infinite; }
.scn-tropic-of-cancer-crossed .tcc-sun { position:absolute; top:10%; left:60%; width:60px; height:60px; border-radius:50%; background:radial-gradient(circle, #ffe0a0 0%, #ffc060 40%, #ffa030 70%, transparent 100%); box-shadow:0 0 80px 20px rgba(255,192,96,.5); animation:tcc-sun-glow 6s ease-in-out infinite alternate; }
.scn-tropic-of-cancer-crossed .tcc-island-a { position:absolute; bottom:40%; left:20%; width:80px; height:50px; background:linear-gradient(135deg, #6a8a5a 0%, #4a6a3a 50%, #3a5a2a 100%); border-radius:40% 60% 20% 80% / 60% 40% 80% 20%; filter:blur(1px); transform:rotate(-5deg); animation:tcc-island-drift 30s ease-in-out infinite; }
.scn-tropic-of-cancer-crossed .tcc-island-b { position:absolute; bottom:38%; right:25%; width:60px; height:40px; background:linear-gradient(135deg, #5a7a4a 0%, #3a5a2a 50%, #2a4a1a 100%); border-radius:50% 40% 30% 70% / 50% 60% 40% 50%; filter:blur(2px); transform:rotate(3deg); animation:tcc-island-drift 35s ease-in-out infinite 5s; }
.scn-tropic-of-cancer-crossed .tcc-nautilus { position:absolute; bottom:15%; left:45%; width:120px; height:30px; background:linear-gradient(180deg, #2a3a3a 0%, #1a2a2a 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; box-shadow:0 4px 10px rgba(0,0,0,.3); animation:tcc-nautilus-bob 4s ease-in-out infinite; }
.scn-tropic-of-cancer-crossed .tcc-horizon { position:absolute; bottom:40%; left:0; right:0; height:2px; background:linear-gradient(90deg, #f0d8b0 0%, #80a0c0 50%, #f0d8b0 100%); filter:blur(1px); animation:tcc-horizon-mist 12s ease-in-out infinite alternate; }
@keyframes tcc-sky-pulse { 0% { opacity:.85; } 50% { opacity:1; } 100% { opacity:.9; } }
@keyframes tcc-sea-wave { 0%,100% { transform:translateY(0); } 50% { transform:translateY(-3px); } }
@keyframes tcc-sun-glow { 0% { box-shadow:0 0 60px 15px rgba(255,192,96,.4); opacity:.9; } 50% { box-shadow:0 0 100px 30px rgba(255,192,96,.7); opacity:1; } 100% { box-shadow:0 0 70px 20px rgba(255,192,96,.5); opacity:.85; } }
@keyframes tcc-island-drift { 0%,100% { transform:rotate(-5deg) scale(1); } 50% { transform:rotate(-2deg) scale(1.02); } }
@keyframes tcc-nautilus-bob { 0%,100% { transform:translateY(0) rotate(0); } 50% { transform:translateY(-2px) rotate(1deg); } }
@keyframes tcc-horizon-mist { 0% { opacity:.3; } 50% { opacity:.6; } 100% { opacity:.4; } }

/* papua-coast-raised - calm, sunlit, approaching shore */
.scn-papua-coast-raised {
  background: linear-gradient(180deg, #87CEEB 0%, #B0E0E6 30%, #F5DEB3 70%, #DEB887 100%),
              radial-gradient(ellipse at 80% 20%, #FFD700 0%, transparent 50%);
  position: relative; overflow: hidden;
}
.scn-papua-coast-raised .sun {
  position: absolute; top: 12%; right: 18%; width: 60px; height: 60px;
  background: radial-gradient(circle, #FFD700 0%, #FFA500 60%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 80px 40px rgba(255,215,0,.3);
  animation: pcr-sun 20s ease-in-out infinite alternate;
}
.scn-papua-coast-raised .sky {
  position: absolute; top: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #87CEEB 0%, #B0E0E6 50%, transparent 100%);
  animation: pcr-sky 10s ease-in-out infinite alternate;
}
.scn-papua-coast-raised .sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #4682B4 0%, #2E4A62 100%);
  animation: pcr-sea 8s ease-in-out infinite;
}
.scn-papua-coast-raised .land-back {
  position: absolute; bottom: 30%; left: 20%; right: 10%; height: 30%;
  background: linear-gradient(180deg, #6B8E23 0%, #556B2F 100%);
  border-radius: 60% 40% 0 0 / 80% 70% 0 0;
  transform-origin: bottom; animation: pcr-land 15s ease-in-out infinite alternate;
}
.scn-papua-coast-raised .coast {
  position: absolute; bottom: 28%; left: 10%; right: 25%; height: 20%;
  background: linear-gradient(180deg, #DEB887 0%, #C4A882 70%, #A0865A 100%);
  border-radius: 30% 70% 0 0 / 90% 60% 0 0;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,.2);
  animation: pcr-coast 12s ease-in-out infinite alternate;
}
.scn-papua-coast-raised .ship {
  position: absolute; bottom: 32%; left: 45%; width: 80px; height: 30px;
  background: linear-gradient(180deg, #8B4513 0%, #5C3A21 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%;
  transform-origin: bottom center;
  animation: pcr-ship 6s ease-in-out infinite;
}
.scn-papua-coast-raised .sail {
  position: absolute; bottom: 43%; left: 48%; width: 30px; height: 40px;
  background: linear-gradient(135deg, #F5F5DC 0%, #FFF8DC 100%);
  clip-path: polygon(50% 0%, 100% 100%, 0% 100%);
  transform-origin: bottom center;
  animation: pcr-sail 4s ease-in-out infinite alternate;
}
.scn-papua-coast-raised .figure {
  position: absolute; bottom: 34%; left: 50%; width: 12px; height: 24px;
  background: linear-gradient(180deg, #2C1810 0%, #1A0E08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pcr-figure 3s ease-in-out infinite;
}
.scn-papua-coast-raised .cloud {
  position: absolute; width: 100px; height: 25px;
  background: linear-gradient(180deg, rgba(255,255,255,.6) 0%, rgba(255,255,255,.1) 100%);
  border-radius: 50%; filter: blur(5px);
}
.scn-papua-coast-raised .cloud-a { top: 15%; left: 10%; animation: pcr-cloud-a 30s linear infinite; }
.scn-papua-coast-raised .cloud-b { top: 22%; right: 5%; width: 70px; height: 18px; animation: pcr-cloud-b 40s linear infinite reverse; }

@keyframes pcr-sun { 0% { transform: translateY(0); opacity: .9; } 50% { transform: translateY(-8px); opacity: 1; } 100% { transform: translateY(0) scale(1.02); opacity: .95; } }
@keyframes pcr-sky { 0% { opacity: .9; } 50% { opacity: 1; } 100% { opacity: .85; } }
@keyframes pcr-sea { 0% { transform: translateY(0); } 50% { transform: translateY(3px); } 100% { transform: translateY(0); } }
@keyframes pcr-land { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-4px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes pcr-coast { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-2px) rotate(.5deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes pcr-ship { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2px) rotate(-.5deg); } 75% { transform: translateX(-2px) rotate(.5deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes pcr-sail { 0% { transform: rotate(0deg); } 50% { transform: rotate(-2deg); } 100% { transform: rotate(2deg); } }
@keyframes pcr-figure { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-1px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes pcr-cloud-a { 0% { transform: translateX(-200px); } 100% { transform: translateX(120vw); } }
@keyframes pcr-cloud-b { 0% { transform: translateX(120vw); } 100% { transform: translateX(-200px); } }

/* torres-strait-dangers - tense, sunlit, jagged reefs */
.scn-torres-strait-dangers {
  background: linear-gradient(180deg, #1E3A5F 0%, #3A6D8C 40%, #6B9EBF 60%, #F0E6D2 80%, #C0A080 100%),
              radial-gradient(ellipse at 30% 80%, #FFD700 0%, transparent 50%);
  position: relative; overflow: hidden;
}
.scn-torres-strait-dangers .reef-back {
  position: absolute; bottom: 20%; left: 5%; right: 5%; height: 45%;
  background: linear-gradient(180deg, #4A3B32 0%, #2A1C14 100%);
  clip-path: polygon(0% 100%, 10% 30%, 25% 60%, 40% 10%, 55% 50%, 70% 15%, 85% 40%, 100% 100%);
  animation: tsd-reef-back 4s ease-in-out infinite alternate;
}
.scn-torres-strait-dangers .reef-mid {
  position: absolute; bottom: 15%; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #5C4A3D 0%, #3A2A1E 100%);
  clip-path: polygon(0% 100%, 8% 40%, 20% 70%, 30% 20%, 45% 55%, 60% 10%, 75% 45%, 90% 25%, 100% 100%);
  animation: tsd-reef-mid 3s ease-in-out infinite alternate;
}
.scn-torres-strait-dangers .reef-fore {
  position: absolute; bottom: 10%; left: -10%; right: -10%; height: 35%;
  background: linear-gradient(180deg, #6E5B4E 0%, #4C3626 100%);
  clip-path: polygon(0% 100%, 5% 50%, 15% 80%, 22% 30%, 35% 60%, 45% 5%, 58% 45%, 68% 15%, 80% 50%, 90% 20%, 100% 100%);
  box-shadow: 0 -10px 30px rgba(0,0,0,.5);
  animation: tsd-reef-fore 2.5s ease-in-out infinite alternate;
}
.scn-torres-strait-dangers .wave {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, rgba(255,255,255,.8) 0%, #4682B4 100%);
  animation: tsd-wave 1.5s ease-in-out infinite;
}
.scn-torres-strait-dangers .wave-1 { opacity: .7; animation-delay: 0s; }
.scn-torres-strait-dangers .wave-2 { opacity: .5; animation-delay: .5s; height: 25%; }
.scn-torres-strait-dangers .spray {
  position: absolute; bottom: 25%; left: 40%; width: 20px; height: 40px;
  background: radial-gradient(ellipse, rgba(255,255,255,.6) 0%, transparent 100%);
  filter: blur(3px);
  animation: tsd-spray 1s ease-in-out infinite;
}
.scn-torres-strait-dangers .figure {
  position: absolute; bottom: 38%; left: 55%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #1A0E0A 0%, #0A0503 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tsd-figure 2s ease-in-out infinite;
}
.scn-torres-strait-dangers .cloud {
  position: absolute; top: 10%; left: 20%; width: 120px; height: 30px;
  background: linear-gradient(180deg, rgba(80,80,80,.5) 0%, rgba(80,80,80,.1) 100%);
  border-radius: 50%; filter: blur(8px);
  animation: tsd-cloud 15s linear infinite;
}
@keyframes tsd-reef-back { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(5px) scaleX(1.02); } 100% { transform: translateY(0) scaleX(1); } }
@keyframes tsd-reef-mid { 0% { transform: translateY(0) skewX(0deg); } 50% { transform: translateY(-3px) skewX(-1deg); } 100% { transform: translateY(0) skewX(0deg); } }
@keyframes tsd-reef-fore { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-5px) rotate(.5deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes tsd-wave { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-8px) scaleY(1.1); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes tsd-spray { 0% { transform: translateY(0) scale(1); opacity: .6; } 50% { transform: translateY(-15px) scale(1.5); opacity: 0; } 100% { transform: translateY(0) scale(1); opacity: .6; } }
@keyframes tsd-figure { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes tsd-cloud { 0% { transform: translateX(-200px); } 100% { transform: translateX(120vw); } }

/* papua-geography - calm, sunlit, sextant and map */
.scn-papua-geography {
  background: linear-gradient(135deg, #F5DEB3 0%, #D2B48C 40%, #C4A882 70%, #A0865A 100%),
              radial-gradient(ellipse at 70% 20%, #FFD700 0%, transparent 50%);
  position: relative; overflow: hidden;
}
.scn-papua-geography .chart {
  position: absolute; inset: 10% 10% 20% 10%; border-radius: 8px;
  background: linear-gradient(135deg, #FFF8DC 0%, #F5DEB3 100%);
  box-shadow: inset 0 0 40px rgba(139,90,43,.3), 0 8px 30px rgba(0,0,0,.2);
  animation: pg-chart 12s ease-in-out infinite alternate;
}
.scn-papua-geography .compass-base {
  position: absolute; top: 30%; left: 30%; width: 120px; height: 120px;
  background: radial-gradient(circle, #D2B48C 0%, #A0865A 60%, #8B7355 100%);
  border-radius: 50%; border: 4px solid #8B7355;
  animation: pg-compass 20s linear infinite;
}
.scn-papua-geography .needle {
  position: absolute; top: 33%; left: 37%; width: 16px; height: 60px;
  background: linear-gradient(180deg, #8B0000 0%, #FF4500 50%, #FFD700 100%);
  clip-path: polygon(50% 0%, 100% 100%, 0% 100%);
  transform-origin: 8px 60px;
  animation: pg-needle 5s ease-in-out infinite alternate;
}
.scn-papua-geography .globe {
  position: absolute; bottom: 25%; right: 20%; width: 80px; height: 80px;
  background: radial-gradient(circle at 30% 30%, #4A90D9 0%, #2E5A8A 70%, #1A3A5A 100%);
  border-radius: 50%; box-shadow: 0 0 30px rgba(0,0,0,.3);
  animation: pg-globe 15s ease-in-out infinite;
}
.scn-papua-geography .sextant-arm {
  position: absolute; top: 28%; left: 60%; width: 10px; height: 80px;
  background: linear-gradient(180deg, #C0A080 0%, #8B7355 100%);
  border-radius: 20%; transform-origin: 5px 80px;
  animation: pg-arm 8s ease-in-out infinite alternate;
}
.scn-papua-geography .sextant-arc {
  position: absolute; top: 18%; left: 55%; width: 60px; height: 30px;
  border: 4px solid #8B7355; border-bottom: none; border-radius: 60px 60px 0 0;
  background: transparent; animation: pg-arc 10s ease-in-out infinite alternate;
}
.scn-papua-geography .sun {
  position: absolute; top: 8%; right: 12%; width: 50px; height: 50px;
  background: radial-gradient(circle, #FFD700 0%, #FF8C00 60%, transparent 100%);
  border-radius: 50%; animation: pg-sun 25s ease-in-out infinite alternate;
}
.scn-papua-geography .cloud {
  position: absolute; top: 12%; left: 5%; width: 80px; height: 20px;
  background: linear-gradient(180deg, rgba(255,255,255,.4) 0%, transparent 100%);
  border-radius: 50%; filter: blur(4px);
  animation: pg-cloud 40s linear infinite;
}
@keyframes pg-chart { 0% { transform: translateY(0); box-shadow: 0 8px 30px rgba(0,0,0,.2); } 50% { transform: translateY(-5px); box-shadow: 0 12px 40px rgba(0,0,0,.3); } 100% { transform: translateY(0); box-shadow: 0 8px 30px rgba(0,0,0,.2); } }
@keyframes pg-compass { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }
@keyframes pg-needle { 0% { transform: rotate(-30deg); } 50% { transform: rotate(20deg); } 100% { transform: rotate(-30deg); } }
@keyframes pg-globe { 0% { transform: rotateY(0deg); } 50% { transform: rotateY(180deg); } 100% { transform: rotateY(360deg); } }
@keyframes pg-arm { 0% { transform: rotate(10deg); } 50% { transform: rotate(30deg); } 100% { transform: rotate(10deg); } }
@keyframes pg-arc { 0% { transform: rotate(0deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(0deg); } }
@keyframes pg-sun { 0% { transform: translateY(0); opacity: .9; } 50% { transform: translateY(-6px); opacity: 1; } 100% { transform: translateY(0); opacity: .95; } }
@keyframes pg-cloud { 0% { transform: translateX(-200px); } 100% { transform: translateX(120vw); } }

/* history-of-discovery - calm, sunlit, ships of explorers */
.scn-history-of-discovery {
  background: linear-gradient(180deg, #87CEEB 0%, #B0D4E8 40%, #F0E6D2 80%, #D2B48C 100%),
              radial-gradient(ellipse at 80% 10%, #FFD700 0%, transparent 40%);
  position: relative; overflow: hidden;
}
.scn-history-of-discovery .sky {
  position: absolute; top: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(180deg, #87CEEB 0%, #B0D4E8 50%, transparent 100%);
  animation: hod-sky 8s ease-in-out infinite alternate;
}
.scn-history-of-discovery .sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #5B86A0 0%, #3A5F7A 100%);
  animation: hod-sea 6s ease-in-out infinite;
}
.scn-history-of-discovery .ship {
  position: absolute; bottom: 15%; width: 80px; height: 35px;
  background: linear-gradient(180deg, #8B4513 0%, #5C3A21 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%;
  transform-origin: bottom center;
  animation: hod-ship 10s ease-in-out infinite;
}
.scn-history-of-discovery .ship-1 { left: 10%; animation-delay: 0s; }
.scn-history-of-discovery .ship-2 { left: 40%; animation-delay: -3s; width: 60px; height: 28px; }
.scn-history-of-discovery .ship-3 { left: 70%; animation-delay: -6s; width: 70px; height: 32px; }
.scn-history-of-discovery .scroll {
  position: absolute; top: 10%; left: 50%; transform: translateX(-50%); width: 40px; height: 120px;
  background: linear-gradient(180deg, #FFF8DC 0%, #F5DEB3 50%, #EED9A0 100%);
  border-radius: 4px; box-shadow: 2px 0 10px rgba(0,0,0,.2);
  animation: hod-scroll 20s ease-in-out infinite alternate;
}
.scn-history-of-discovery .scroll-handle {
  position: absolute; left: 50%; transform: translateX(-50%); width: 50px; height: 12px;
  background: linear-gradient(180deg, #A0865A 0%, #8B7355 100%);
  border-radius: 6px;
}
.scn-history-of-discovery .top { top: 8%; animation: hod-handle-top 20s ease-in-out infinite alternate; }
.scn-history-of-discovery .bottom { bottom: 8%; animation: hod-handle-bottom 20s ease-in-out infinite alternate; }
.scn-history-of-discovery .sun {
  position: absolute; top: 6%; right: 15%; width: 55px; height: 55px;
  background: radial-gradient(circle, #FFD700 0%, #FFA500 60%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 60px 30px rgba(255,215,0,.3);
  animation: hod-sun 25s ease-in-out infinite alternate;
}
@keyframes hod-sky { 0% { opacity: .9; } 50% { opacity: 1; } 100% { opacity: .8; } }
@keyframes hod-sea { 0% { transform: translateY(0); } 50% { transform: translateY(2px); } 100% { transform: translateY(0); } }
@keyframes hod-ship { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(5px) rotate(-.5deg); } 75% { transform: translateX(-5px) rotate(.5deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes hod-scroll { 0% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(1.05); } 100% { transform: translateX(-50%) scaleY(1); } }
@keyframes hod-handle-top { 0% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-2px); } 100% { transform: translateX(-50%) translateY(0); } }
@keyframes hod-handle-bottom { 0% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(2px); } 100% { transform: translateX(-50%) translateY(0); } }
@keyframes hod-sun { 0% { transform: translateY(0); opacity: .9; } 50% { transform: translateY(-8px); opacity: 1; } 100% { transform: translateY(0); opacity: .95; } }

/* Scenes for calm, window-lit (1-3) and dim-interior (4) moods */

/* --- Scene: articulates-classification --- */
.scn-articulates-classification {
  background:
    linear-gradient(135deg, #e8f0f6 0%, #c0d0dd 40%, #9bb0c4 100%),
    radial-gradient(ellipse at 30% 60%, #f2f6fa 0%, transparent 60%);
}
.scn-articulates-classification .window {
  position: absolute; top: 0; right: 0; width: 30%; height: 45%;
  background: linear-gradient(180deg, #ddeeff 0%, #b8d0e8 100%);
  border-radius: 3%; box-shadow: inset 0 0 20px rgba(255,255,255,0.4);
  animation: ar-window 8s ease-in-out infinite alternate;
}
.scn-articulates-classification .light-beam {
  position: absolute; top: 20%; left: 60%; width: 40%; height: 50%;
  background: linear-gradient(-45deg, rgba(255,255,240,0.25) 0%, transparent 80%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  animation: ar-beam 12s ease-in-out infinite alternate;
}
.scn-articulates-classification .bookshelf {
  position: absolute; bottom: 20%; left: 5%; width: 20%; height: 45%;
  background: linear-gradient(180deg, #704e3a 0%, #54372a 100%);
  border-radius: 2%; box-shadow: 4px 0 8px rgba(0,0,0,0.3);
  animation: ar-shelf 20s ease-in-out infinite;
}
.scn-articulates-classification .desk {
  position: absolute; bottom: 5%; left: 25%; width: 55%; height: 18%;
  background: linear-gradient(180deg, #b5946a 0%, #8b6f4e 100%);
  border-radius: 2% 2% 0 0; box-shadow: 0 -4px 10px rgba(0,0,0,0.2);
  transform: perspective(500px) rotateX(5deg);
  animation: ar-desk 16s ease-in-out infinite alternate;
}
.scn-articulates-classification .figure {
  position: absolute; bottom: 12%; left: 35%; width: 12%; height: 30%;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ar-figure 5s ease-in-out infinite alternate;
}
.scn-articulates-classification .notebook {
  position: absolute; bottom: 8%; left: 48%; width: 12%; height: 8%;
  background: #f5f0e0; border-radius: 2%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.15);
  transform: rotate(-2deg);
  animation: ar-notebook 9s ease-in-out infinite alternate;
}
@keyframes ar-window { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes ar-beam { 0% { opacity: 0.4; transform: translateX(0); } 100% { opacity: 0.7; transform: translateX(10px); } }
@keyframes ar-shelf { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(1px); } }
@keyframes ar-desk { 0% { transform: perspective(500px) rotateX(5deg) translateY(0); } 100% { transform: perspective(500px) rotateX(3deg) translateY(-2px); } }
@keyframes ar-figure { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(8px) rotate(2deg); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes ar-notebook { 0% { transform: rotate(-2deg) scale(1); } 50% { transform: rotate(0deg) scale(1.02); } 100% { transform: rotate(-3deg) scale(0.98); } }

/* --- Scene: brachyura-crabs --- */
.scn-brachyura-crabs {
  background:
    linear-gradient(145deg, #e4ece8 0%, #c8d8d4 50%, #aabbc0 100%),
    radial-gradient(ellipse at 60% 30%, #f0f8f4 0%, transparent 70%);
}
.scn-brachyura-crabs .desk {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #b8946c 0%, #8a6b4a 100%);
  border-radius: 4% 4% 0 0; box-shadow: 0 -6px 12px rgba(0,0,0,0.2);
  transform: perspective(800px) rotateX(10deg);
}
.scn-brachyura-crabs .paper {
  position: absolute; bottom: 12%; left: 30%; width: 40%; height: 22%;
  background: linear-gradient(135deg, #f5f0e6 0%, #ede5d8 100%);
  border-radius: 1% 4% 3% 1%; box-shadow: 0 4px 8px rgba(0,0,0,0.1);
  transform: rotate(-1deg);
  animation: br-paper 12s ease-in-out infinite alternate;
}
.scn-brachyura-crabs .crab-body {
  position: absolute; bottom: 18%; left: 44%; width: 10%; height: 8%;
  background: radial-gradient(ellipse at 50% 60%, #c8553d 0%, #a0461a 100%);
  border-radius: 50%; box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: br-body 4s ease-in-out infinite alternate;
}
.scn-brachyura-crabs .crab-claw-left,
.scn-brachyura-crabs .crab-claw-right {
  position: absolute; bottom: 20%; width: 5%; height: 6%;
  background: radial-gradient(ellipse at 30% 40%, #c8553d 0%, #883c1a 100%);
  border-radius: 40% 50% 30% 40%; box-shadow: 0 1px 4px rgba(0,0,0,0.2);
  animation: br-claw 2s ease-in-out infinite alternate;
}
.scn-brachyura-crabs .crab-claw-left { left: 42%; transform: rotate(-20deg); }
.scn-brachyura-crabs .crab-claw-right { right: 42%; transform: rotate(20deg); }
.scn-brachyura-crabs .inkwell {
  position: absolute; bottom: 14%; left: 32%; width: 6%; height: 8%;
  background: radial-gradient(circle at 50% 30%, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30%; box-shadow: 0 3px 8px rgba(0,0,0,0.4);
  animation: br-ink 7s ease-in-out infinite;
}
.scn-brachyura-crabs .magnifier {
  position: absolute; bottom: 16%; right: 32%; width: 10%; height: 12%;
  background: radial-gradient(circle at 50% 40%, rgba(200,220,240,0.6) 0%, transparent 60%);
  border: 2px solid #7a7a5a; border-radius: 50%;
  transform: rotate(-15deg);
  animation: br-mag 9s ease-in-out infinite alternate;
}
@keyframes br-paper { 0% { transform: rotate(-1deg) translateX(0); } 50% { transform: rotate(0deg) translateX(5px); } 100% { transform: rotate(-2deg) translateX(-3px); } }
@keyframes br-body { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(2px); } }
@keyframes br-claw { 0% { transform: rotate(-20deg) scale(1); } 50% { transform: rotate(-25deg) scale(1.1); } 100% { transform: rotate(-15deg) scale(0.95); } }
@keyframes br-ink { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(1px); } }
@keyframes br-mag { 0% { transform: rotate(-15deg) scale(1); } 50% { transform: rotate(-10deg) scale(1.02); } 100% { transform: rotate(-18deg) scale(0.98); } }

/* --- Scene: macrura-and-anomura --- */
.scn-macrura-and-anomura {
  background:
    linear-gradient(150deg, #cbd9d4 0%, #a8bdb8 45%, #809a94 100%),
    radial-gradient(ellipse at 70% 20%, #deece8 0%, transparent 65%);
}
.scn-macrura-and-anomura .shelf {
  position: absolute; bottom: 30%; left: 10%; right: 10%; height: 8%;
  background: linear-gradient(180deg, #5e4836 0%, #3d2f22 100%);
  border-radius: 2%; box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: ma-shelf 18s ease-in-out infinite alternate;
}
.scn-macrura-and-anomura .jar {
  position: absolute; bottom: 20%; left: 40%; width: 14%; height: 26%;
  background: linear-gradient(135deg, rgba(200,230,240,0.4) 0%, rgba(160,200,220,0.2) 100%);
  border: 2px solid #7a8a90; border-radius: 20% 20% 10% 10%;
  box-shadow: inset 0 0 30px rgba(200,230,255,0.3), 0 4px 12px rgba(0,0,0,0.15);
  animation: ma-jar 6s ease-in-out infinite alternate;
}
.scn-macrura-and-anomura .lobster-body {
  position: absolute; bottom: 24%; left: 43%; width: 8%; height: 12%;
  background: radial-gradient(ellipse at 40% 60%, #b87878 0%, #8a5a5a 100%);
  border-radius: 50% 40% 40% 50%; transform: rotate(10deg);
  animation: ma-lobster 4s ease-in-out infinite alternate;
}
.scn-macrura-and-anomura .lobster-tail {
  position: absolute; bottom: 22%; left: 39%; width: 6%; height: 10%;
  background: radial-gradient(ellipse at 50% 30%, #b87878 0%, #7a4a4a 100%);
  border-radius: 30% 50% 30% 50%; transform: rotate(-20deg);
  animation: ma-tail 3.5s ease-in-out infinite alternate;
}
.scn-macrura-and-anomura .label {
  position: absolute; bottom: 26%; left: 42%; width: 10%; height: 3%;
  background: #f0e8d0; border-radius: 1px; box-shadow: 0 1px 3px rgba(0,0,0,0.2);
  animation: ma-label 10s ease-in-out infinite alternate;
}
.scn-macrura-and-anomura .light-beam {
  position: absolute; top: 5%; left: 20%; width: 60%; height: 35%;
  background: linear-gradient(135deg, rgba(255,255,240,0.2) 0%, transparent 60%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  animation: ma-beam 14s ease-in-out infinite alternate;
}
.scn-macrura-and-anomura .desk-edge {
  position: absolute; bottom: 0; left: 5%; right: 5%; height: 15%;
  background: linear-gradient(180deg, #b8946c 0%, #8a6b4a 100%);
  border-radius: 4% 4% 0 0; box-shadow: 0 -6px 12px rgba(0,0,0,0.2);
  transform: perspective(600px) rotateX(8deg);
}
@keyframes ma-shelf { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(1px); } }
@keyframes ma-jar { 0% { opacity: 0.85; transform: scale(1); } 50% { opacity: 1; transform: scale(1.01); } 100% { opacity: 0.9; transform: scale(0.99); } }
@keyframes ma-lobster { 0% { transform: rotate(10deg) translateY(0); } 50% { transform: rotate(8deg) translateY(-3px); } 100% { transform: rotate(12deg) translateY(2px); } }
@keyframes ma-tail { 0% { transform: rotate(-20deg); } 50% { transform: rotate(-15deg); } 100% { transform: rotate(-22deg); } }
@keyframes ma-label { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes ma-beam { 0% { opacity: 0.3; transform: translateX(0); } 100% { opacity: 0.5; transform: translateX(-15px); } }

/* --- Scene: end-of-crustacea-study (dim interior) --- */
.scn-end-of-crustacea-study {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #2c2a3a 40%, #3e3c4e 70%, #2a2838 100%),
    radial-gradient(ellipse at 30% 20%, #4a4a5e 0%, transparent 70%);
}
.scn-end-of-crustacea-study .wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #1e1e30 0%, #282642 100%);
  animation: en-wall 20s ease-in-out infinite alternate;
}
.scn-end-of-crustacea-study .desk {
  position: absolute; bottom: 0; left: 5%; right: 5%; height: 20%;
  background: linear-gradient(180deg, #3e3228 0%, #2a201a 100%);
  border-radius: 3% 3% 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,0.5);
  transform: perspective(500px) rotateX(6deg);
}
.scn-end-of-crustacea-study .lamp {
  position: absolute; bottom: 22%; left: 30%; width: 10%; height: 15%;
  background: radial-gradient(ellipse at 50% 20%, #d4a85a 0%, #b08030 100%);
  border-radius: 40% 40% 10% 10%; box-shadow: 0 0 40px #d4a85a, 0 0 80px rgba(212,168,90,0.3);
  animation: en-lamp 3s ease-in-out infinite alternate;
}
.scn-end-of-crustacea-study .light-cone {
  position: absolute; bottom: 10%; left: 28%; width: 14%; height: 40%;
  background: linear-gradient(135deg, rgba(212,168,90,0.2) 0%, transparent 80%);
  clip-path: polygon(50% 0, 100% 100%, 0 100%);
  animation: en-cone 4s ease-in-out infinite alternate;
}
.scn-end-of-crustacea-study .book {
  position: absolute; bottom: 6%; left: 35%; width: 20%; height: 10%;
  background: linear-gradient(135deg, #4a3a2a 0%, #6a5a4a 100%);
  border-radius: 2%; box-shadow: 0 2px 8px rgba(0,0,0,0.4);
  transform: rotate(-3deg);
  animation: en-book 8s ease-in-out infinite alternate;
}
.scn-end-of-crustacea-study .hand {
  position: absolute; bottom: 8%; left: 38%; width: 6%; height: 12%;
  background: linear-gradient(180deg, #3a2e28 0%, #2a1e18 100%);
  border-radius: 30% 30% 40% 40% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: en-hand 6s ease-in-out infinite alternate;
}
.scn-end-of-crustacea-study .lantern {
  position: absolute; bottom: 20%; right: 25%; width: 8%; height: 12%;
  background: radial-gradient(circle at 50% 30%, #e0b050 0%, #a07020 100%);
  border-radius: 30% 30% 20% 20%; box-shadow: 0 0 30px #e0b050, 0 0 60px rgba(224,176,80,0.3);
  animation: en-lantern 5s ease-in-out infinite alternate;
}
@keyframes en-wall { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes en-lamp { 0% { opacity: 0.85; box-shadow: 0 0 30px #d4a85a, 0 0 60px rgba(212,168,90,0.3); } 50% { opacity: 1; box-shadow: 0 0 50px #d4a85a, 0 0 100px rgba(212,168,90,0.5); } 100% { opacity: 0.9; box-shadow: 0 0 35px #d4a85a, 0 0 70px rgba(212,168,90,0.35); } }
@keyframes en-cone { 0% { opacity: 0.5; transform: scaleY(1); } 50% { opacity: 0.7; transform: scaleY(1.05); } 100% { opacity: 0.55; transform: scaleY(0.98); } }
@keyframes en-book { 0% { transform: rotate(-3deg) translateY(0); } 50% { transform: rotate(-2deg) translateY(-2px); } 100% { transform: rotate(-4deg) translateY(1px); } }
@keyframes en-hand { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(6px) rotate(4deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes en-lantern { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-3px) rotate(3deg); } 100% { transform: translateY(1px) rotate(-2deg); } }

/* night-scene */
.scn-night-scene {
  background: 
    linear-gradient(180deg, #0a1628 0%, #162040 40%, #1c2a4a 70%, #2a3a5a 100%),
    radial-gradient(ellipse at 50% 80%, #2a3a5a 0%, transparent 70%);
}
.scn-night-scene .sky { position: absolute; inset: 0 0 55% 0; background: linear-gradient(180deg, #0a1628 0%, #162040 50%, transparent 100%); animation: ns-ambient 12s ease-in-out infinite alternate; }
.scn-night-scene .stars { position: absolute; inset: 5% 10% 60% 10%; background: radial-gradient(circle at 20% 30%, #fff 1px, transparent 1px), radial-gradient(circle at 45% 70%, #fff 0.5px, transparent 0.5px), radial-gradient(circle at 70% 20%, #fff 0.8px, transparent 0.8px), radial-gradient(circle at 85% 55%, #fff 1px, transparent 1px), radial-gradient(circle at 10% 80%, #fff 0.6px, transparent 0.6px); filter: blur(0.3px); opacity: 0.8; animation: ns-twinkle 4s ease-in-out infinite alternate; }
.scn-night-scene .moon { position: absolute; top: 12%; left: 65%; width: 50px; height: 50px; background: radial-gradient(circle, #f0f4ff 0%, #c0c8e0 60%, transparent 80%); border-radius: 50%; box-shadow: 0 0 40px 15px rgba(192, 200, 224, 0.5), 0 0 80px 30px rgba(192, 200, 224, 0.2); animation: ns-moon-glow 8s ease-in-out infinite alternate; }
.scn-night-scene .cloud-1 { position: absolute; top: 18%; left: 5%; width: 120px; height: 25px; background: linear-gradient(90deg, rgba(32, 48, 72, 0.7) 0%, rgba(48, 64, 88, 0.4) 50%, transparent 100%); border-radius: 50%; filter: blur(8px); animation: ns-drift-a 30s linear infinite; }
.scn-night-scene .cloud-2 { position: absolute; top: 28%; right: 15%; width: 90px; height: 18px; background: linear-gradient(90deg, transparent 0%, rgba(40, 56, 80, 0.5) 50%, rgba(32, 48, 72, 0.7) 100%); border-radius: 50%; filter: blur(6px); animation: ns-drift-b 40s linear infinite reverse; }
.scn-night-scene .sea { position: absolute; bottom: 0; left: 0; right: 0; height: 55%; background: linear-gradient(180deg, #1c2a4a 0%, #0e1a30 100%); box-shadow: inset 0 20px 30px rgba(0,0,0,0.5); animation: ns-sea 6s ease-in-out infinite alternate; }
.scn-night-scene .land { position: absolute; bottom: 40%; left: 10%; right: 30%; height: 8%; background: linear-gradient(180deg, #1a2a3a 0%, #0e1a2a 100%); border-radius: 60% 40% 0 0 / 100% 80% 0 0; box-shadow: inset 0 -5px 10px rgba(0,0,0,0.6); animation: ns-land 10s ease-in-out infinite alternate; }

@keyframes ns-ambient { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes ns-twinkle { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes ns-moon-glow { 0% { box-shadow: 0 0 30px 10px rgba(192, 200, 224, 0.4), 0 0 60px 20px rgba(192, 200, 224, 0.15); } 50% { box-shadow: 0 0 50px 20px rgba(192, 200, 224, 0.6), 0 0 100px 40px rgba(192, 200, 224, 0.3); } 100% { box-shadow: 0 0 35px 12px rgba(192, 200, 224, 0.45), 0 0 70px 25px rgba(192, 200, 224, 0.2); } }
@keyframes ns-drift-a { 0% { transform: translateX(-80px); } 100% { transform: translateX(110vw); } }
@keyframes ns-drift-b { 0% { transform: translateX(60px); } 100% { transform: translateX(-100vw); } }
@keyframes ns-sea { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes ns-land { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.03) translateY(1px); } 100% { transform: scaleY(0.98); } }

/* skiff-south */
.scn-skiff-south {
  background: 
    linear-gradient(180deg, #101e3a 0%, #1a2a48 40%, #2a3c5a 70%, #3a4e6e 100%),
    radial-gradient(ellipse at 30% 90%, #3a4e6e 0%, transparent 60%);
}
.scn-skiff-south .sky { position: absolute; inset: 0 0 50% 0; background: linear-gradient(180deg, #101e3a 0%, #1a2a48 50%, transparent 100%); animation: ss-sky 10s ease-in-out infinite alternate; }
.scn-skiff-south .sea { position: absolute; bottom: 0; left: 0; right: 0; height: 50%; background: linear-gradient(180deg, #2a3c5a 0%, #1a2a3a 100%); box-shadow: inset 0 10px 20px rgba(0,0,0,0.4); animation: ss-sea 5s ease-in-out infinite alternate; }
.scn-skiff-south .boat { position: absolute; bottom: 28%; left: 50%; width: 130px; height: 25px; transform: translateX(-50%); background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 40% 40% 20% 20%; box-shadow: 0 4px 8px rgba(0,0,0,0.5); animation: ss-rock 4s ease-in-out infinite; }
.scn-skiff-south .fig-captain { position: absolute; bottom: 30%; left: 52%; 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: ss-fig 4s ease-in-out infinite; }
.scn-skiff-south .fig-conseil { position: absolute; bottom: 30%; left: 44%; width: 12px; height: 26px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ss-fig 4s ease-in-out infinite 0.3s; }
.scn-skiff-south .fig-ned { position: absolute; bottom: 30%; left: 36%; width: 15px; 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: ss-fig 4s ease-in-out infinite 0.6s; }
.scn-skiff-south .oars { position: absolute; bottom: 28%; left: 30%; width: 8px; height: 50px; background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%); border-radius: 4px; transform-origin: bottom; animation: ss-oar 3s ease-in-out infinite alternate; box-shadow: 0 0 0 2px #6a4a3a; }
.scn-skiff-south .ripples { position: absolute; bottom: 25%; left: 20%; right: 20%; height: 10px; background: radial-gradient(ellipse at 50% 100%, rgba(200,220,240,0.1) 0%, transparent 70%); filter: blur(2px); animation: ss-ripple 3s ease-in-out infinite alternate; }

@keyframes ss-sky { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes ss-sea { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes ss-rock { 0% { transform: translateX(-50%) rotate(0deg); } 25% { transform: translateX(-50%) rotate(-1deg); } 50% { transform: translateX(-50%) rotate(0deg); } 75% { transform: translateX(-50%) rotate(1deg); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes ss-fig { 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 ss-oar { 0% { transform: rotate(0deg); } 50% { transform: rotate(-20deg); } 100% { transform: rotate(20deg); } }
@keyframes ss-ripple { 0% { opacity: 0.2; transform: scaleX(1); } 50% { opacity: 0.5; transform: scaleX(1.2); } 100% { opacity: 0.3; transform: scaleX(0.8); } }

/* silent-thoughts */
.scn-silent-thoughts {
  background: 
    linear-gradient(180deg, #0e1c32 0%, #1a2c48 40%, #2a3e5a 70%, #3a4e6e 100%),
    radial-gradient(ellipse at 50% 85%, #3a4e6e 0%, transparent 70%);
}
.scn-silent-thoughts .sky { position: absolute; inset: 0 0 50% 0; background: linear-gradient(180deg, #0e1c32 0%, #1a2c48 50%, transparent 100%); animation: st-sky 8s ease-in-out infinite alternate; }
.scn-silent-thoughts .sea { position: absolute; bottom: 0; left: 0; right: 0; height: 50%; background: linear-gradient(180deg, #2a3e5a 0%, #1a2a3a 100%); box-shadow: inset 0 15px 25px rgba(0,0,0,0.5); animation: st-sea 6s ease-in-out infinite alternate; }
.scn-silent-thoughts .boat-stern { position: absolute; bottom: 30%; left: 50%; width: 80px; height: 20px; transform: translateX(-50%); background: linear-gradient(180deg, #3a2a1a 0%, #1a0e06 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 3px 6px rgba(0,0,0,0.6); animation: st-rock 5s ease-in-out infinite; }
.scn-silent-thoughts .captain { position: absolute; bottom: 33%; left: 52%; width: 16px; height: 34px; background: linear-gradient(180deg, #12121e 0%, #060610 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: st-fig 6s ease-in-out infinite; }
.scn-silent-thoughts .tiller { position: absolute; bottom: 33%; left: 48%; width: 4px; height: 20px; background: linear-gradient(180deg, #5a3a1a 0%, #3a2a0a 100%); border-radius: 2px; transform-origin: bottom; animation: st-tiller 4s ease-in-out infinite; }
.scn-silent-thoughts .moon-silent { position: absolute; top: 10%; right: 15%; width: 40px; height: 40px; background: radial-gradient(circle, #d0d8ec 0%, #a0b0d0 60%, transparent 80%); border-radius: 50%; box-shadow: 0 0 30px 10px rgba(160, 176, 208, 0.4), 0 0 60px 20px rgba(160, 176, 208, 0.2); animation: st-moon 12s ease-in-out infinite alternate; }
.scn-silent-thoughts .stars-silent { position: absolute; inset: 5% 10% 60% 10%; background: radial-gradient(circle at 30% 40%, #fff 0.8px, transparent 0.8px), radial-gradient(circle at 60% 20%, #fff 0.5px, transparent 0.5px), radial-gradient(circle at 80% 70%, #fff 0.6px, transparent 0.6px), radial-gradient(circle at 15% 85%, #fff 0.7px, transparent 0.7px); filter: blur(0.3px); opacity: 0.7; animation: st-twinkle 5s ease-in-out infinite alternate; }
.scn-silent-thoughts .horizon-silent { position: absolute; bottom: 50%; left: 0; right: 0; height: 2px; background: rgba(100, 120, 150, 0.3); filter: blur(1px); animation: st-horizon 10s ease-in-out infinite alternate; }

@keyframes st-sky { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes st-sea { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(1px); } }
@keyframes st-rock { 0% { transform: translateX(-50%) rotate(0deg); } 25% { transform: translateX(-48%) rotate(-1.5deg); } 50% { transform: translateX(-50%) rotate(0deg); } 75% { transform: translateX(-52%) rotate(1.5deg); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes st-fig { 0% { transform: rotate(0deg); } 25% { transform: rotate(2deg); } 50% { transform: rotate(-1deg); } 75% { transform: rotate(3deg); } 100% { transform: rotate(0deg); } }
@keyframes st-tiller { 0% { transform: rotate(0deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-3deg); } }
@keyframes st-moon { 0% { box-shadow: 0 0 25px 8px rgba(160, 176, 208, 0.3), 0 0 50px 15px rgba(160, 176, 208, 0.15); } 50% { box-shadow: 0 0 40px 15px rgba(160, 176, 208, 0.5), 0 0 80px 30px rgba(160, 176, 208, 0.25); } 100% { box-shadow: 0 0 30px 10px rgba(160, 176, 208, 0.35), 0 0 60px 20px rgba(160, 176, 208, 0.2); } }
@keyframes st-twinkle { 0% { opacity: 0.5; } 50% { opacity: 1; } 100% { opacity: 0.6; } }
@keyframes st-horizon { 0% { opacity: 0.2; } 50% { opacity: 0.5; } 100% { opacity: 0.3; } }

/* sunrise */
.scn-sunrise {
  background: 
    linear-gradient(180deg, #1a2a4a 0%, #3a5a7a 20%, #d4a050 50%, #f4c060 70%, #ffe070 100%),
    radial-gradient(ellipse at 70% 30%, #ffe070 0%, transparent 60%);
}
.scn-sunrise .sky { position: absolute; inset: 0 0 45% 0; background: linear-gradient(180deg, #1a2a4a 0%, #3a5a7a 30%, #c08040 60%, #f0b050 100%); animation: sr-dawn 12s ease-in-out infinite alternate; }
.scn-sunrise .sun { position: absolute; top: 30%; left: 70%; width: 60px; height: 60px; background: radial-gradient(circle, #fff8e0 0%, #ffd060 50%, #f09030 80%, transparent 100%); border-radius: 50%; box-shadow: 0 0 60px 20px #ffd060, 0 0 120px 50px rgba(240, 144, 48, 0.4); animation: sr-sunrise 5s ease-in-out infinite alternate; }
.scn-sunrise .cloud-a { position: absolute; top: 20%; left: 10%; width: 150px; height: 30px; background: linear-gradient(90deg, rgba(255, 200, 100, 0.3) 0%, rgba(255, 180, 80, 0.2) 50%, transparent 100%); border-radius: 50%; filter: blur(10px); animation: sr-drift-a 25s linear infinite; }
.scn-sunrise .cloud-b { position: absolute; top: 15%; right: 5%; width: 120px; height: 25px; background: linear-gradient(90deg, transparent 0%, rgba(255, 200, 100, 0.4) 50%, rgba(255, 180, 80, 0.2) 100%); border-radius: 50%; filter: blur(8px); animation: sr-drift-b 35s linear infinite reverse; }
.scn-sunrise .sea { position: absolute; bottom: 0; left: 0; right: 0; height: 45%; background: linear-gradient(180deg, #3a5a7a 0%, #1a2a4a 50%, #0e1a30 100%); box-shadow: inset 0 20px 30px rgba(0,0,0,0.5); animation: sr-sea 6s ease-in-out infinite alternate; }
.scn-sunrise .shore { position: absolute; bottom: 25%; left: 15%; right: 20%; height: 12%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0e06 100%); border-radius: 80% 60% 0 0 / 100% 80% 0 0; box-shadow: inset 0 -5px 10px rgba(0,0,0,0.6); animation: sr-shore 8s ease-in-out infinite alternate; }
.scn-sunrise .palm-a { position: absolute; bottom: 28%; left: 22%; width: 8px; height: 40px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e06 100%); border-radius: 4px; transform-origin: bottom; animation: sr-palm 4s ease-in-out infinite; }
.scn-sunrise .palm-a::after { content: ''; position: absolute; top: -8px; left: -12px; width: 30px; height: 14px; background: radial-gradient(ellipse at 50% 100%, #3a5a2a 0%, transparent 70%); border-radius: 50%; transform: rotate(-30deg); animation: sr-leaf 4s ease-in-out infinite; }
.scn-sunrise .palm-b { position: absolute; bottom: 28%; left: 30%; width: 6px; height: 35px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e06 100%); border-radius: 3px; transform-origin: bottom; animation: sr-palm 4s ease-in-out infinite 0.5s; }
.scn-sunrise .palm-b::after { content: ''; position: absolute; top: -6px; left: -10px; width: 25px; height: 12px; background: radial-gradient(ellipse at 50% 100%, #3a5a2a 0%, transparent 70%); border-radius: 50%; transform: rotate(-20deg); animation: sr-leaf 4s ease-in-out infinite 0.5s; }
.scn-sunrise .reflection { position: absolute; bottom: 10%; left: 60%; width: 40px; height: 60px; background: linear-gradient(180deg, rgba(255, 200, 100, 0.4) 0%, transparent 100%); filter: blur(6px); animation: sr-reflect 3s ease-in-out infinite alternate; }

@keyframes sr-dawn { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes sr-sunrise { 0% { transform: translateY(0) scale(0.95); opacity: 0.8; } 50% { transform: translateY(-10px) scale(1.05); opacity: 1; } 100% { transform: translateY(0) scale(0.98); opacity: 0.9; } }
@keyframes sr-drift-a { 0% { transform: translateX(-100px); } 100% { transform: translateX(120vw); } }
@keyframes sr-drift-b { 0% { transform: translateX(80px); } 100% { transform: translateX(-100vw); } }
@keyframes sr-sea { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(1px); } }
@keyframes sr-shore { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.04) translateY(2px); } 100% { transform: scaleY(0.96); } }
@keyframes sr-palm { 0% { transform: rotate(0deg); } 25% { transform: rotate(5deg); } 50% { transform: rotate(-3deg); } 75% { transform: rotate(4deg); } 100% { transform: rotate(0deg); } }
@keyframes sr-leaf { 0% { transform: rotate(-30deg); } 25% { transform: rotate(-25deg); } 50% { transform: rotate(-35deg); } 75% { transform: rotate(-28deg); } 100% { transform: rotate(-30deg); } }
@keyframes sr-reflect { 0% { opacity: 0.3; transform: scaleX(0.8); } 50% { opacity: 0.6; transform: scaleX(1.2); } 100% { opacity: 0.4; transform: scaleX(0.9); } }

.scn-item-avenger-wreck { background: linear-gradient(180deg, #0a0e1a 0%, #141a2e 40%, #0a1220 100%), radial-gradient(ellipse at 30% 60%, #1a2240 0%, transparent 70%); }
.scn-item-avenger-wreck .room { position:absolute; inset:0; background: linear-gradient(135deg, #2a2a3e 0%, #1a1a2a 50%, #0f0f1a 100%); border-radius:8px; box-shadow:inset 0 0 60px rgba(0,0,0,.8), 0 0 40px rgba(0,0,0,.5); }
.scn-item-avenger-wreck .porthole { position:absolute; top:18%; left:65%; width:80px; height:80px; border-radius:50%; background: radial-gradient(circle at 40% 35%, #1a2a3a 0%, #0a121a 80%); border:6px solid #4a4a5a; box-shadow:0 0 20px rgba(0,0,0,.7), inset 0 0 30px rgba(0,20,40,.5); overflow:hidden; }
.scn-item-avenger-wreck .water { position:absolute; top:30%; left:62%; width:90px; height:70px; border-radius:0 0 50% 50%; background: linear-gradient(180deg, #0a1525 0%, #050a12 100%); animation: awr-water 12s ease-in-out infinite alternate; }
.scn-item-avenger-wreck .desk { position:absolute; bottom:10%; left:15%; width:120px; height:20px; background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%); border-radius:2px; box-shadow:0 -4px 8px rgba(0,0,0,.5); }
.scn-item-avenger-wreck .lamp { position:absolute; bottom:30%; left:20%; width:10px; height:18px; background: linear-gradient(180deg, #8a6a30 0%, #4a3020 100%); border-radius:4px 4px 2px 2px; }
.scn-item-avenger-wreck .lamp::after { content:''; position:absolute; top:100%; left:-4px; width:18px; height:18px; background: radial-gradient(circle, #d0a050 0%, #b08030 40%, transparent 70%); border-radius:50%; box-shadow:0 0 30px 8px #b08030; animation: awr-lamp 3s ease-in-out infinite alternate; }
.scn-item-avenger-wreck .gauge { position:absolute; bottom:22%; right:18%; width:32px; height:32px; border-radius:50%; background: radial-gradient(circle at 45% 45%, #2a2a3a 0%, #1a1a2a 80%); border:3px solid #4a5a4a; box-shadow:0 2px 8px rgba(0,0,0,.6); }
.scn-item-avenger-wreck .needle { position:absolute; bottom:28%; right:28%; width:3px; height:16px; background: linear-gradient(180deg, #c0a050 0%, #a08030 100%); border-radius:2px; transform-origin: 50% 100%; animation: awr-needle 10s ease-in-out infinite; }
.scn-item-avenger-wreck .figure { position:absolute; bottom:8%; 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: bottom center; animation: awr-figure 6s ease-in-out infinite; }
@keyframes awr-water { 0% { transform:translateY(0) scaleY(1); opacity:.6; } 50% { transform:translateY(-4px) scaleY(1.02); opacity:.8; } 100% { transform:translateY(2px) scaleY(.95); opacity:.5; } }
@keyframes awr-lamp { 0% { opacity:.85; transform:scale(1); } 50% { opacity:1; transform:scale(1.05); } 100% { opacity:.9; transform:scale(.98); } }
@keyframes awr-needle { 0% { transform:rotate(-10deg); } 50% { transform:rotate(15deg); } 100% { transform:rotate(0deg); } }
@keyframes awr-figure { 0% { transform:translateX(0) translateY(0) rotate(-1deg); } 25% { transform:translateX(2px) translateY(-1px) rotate(0deg); } 50% { transform:translateX(4px) translateY(0) rotate(1deg); } 75% { transform:translateX(2px) translateY(-2px) rotate(0deg); } 100% { transform:translateX(0) translateY(0) rotate(-1deg); } }

.scn-avenger-history { background: linear-gradient(180deg, #1a1410 0%, #2a2018 40%, #0e0a08 100%), radial-gradient(ellipse at 40% 30%, #3a2a1a 0%, transparent 70%); }
.scn-avenger-history .wall { position:absolute; inset:0; background: linear-gradient(135deg, #1e1a16 0%, #14100c 100%); box-shadow:inset 0 0 80px rgba(0,0,0,.7); }
.scn-avenger-history .frame { position:absolute; top:25%; left:30%; width:40%; height:50%; border:4px solid #8a7a5a; border-radius:6px; background: linear-gradient(135deg, #b0a080 0%, #8a7a5a 50%, #6a5a3a 100%); box-shadow:0 0 30px rgba(0,0,0,.6), inset 0 0 20px rgba(0,0,0,.3); }
.scn-avenger-history .ship-hull { position:absolute; bottom:40%; left:35%; width:30%; height:18%; background: linear-gradient(180deg, #2a1a10 0%, #1a0a08 100%); border-radius:20% 40% 0 0 / 60% 80% 0 0; transform-origin: bottom center; animation: ahi-ship 8s ease-in-out infinite; }
.scn-avenger-history .sail { position:absolute; bottom:55%; left:42%; width:8%; height:25%; background: linear-gradient(180deg, #c0b090 0%, #a09070 100%); border-radius:0 30% 30% 0; transform:skewY(-5deg); animation: ahi-sail 10s ease-in-out infinite alternate; }
.scn-avenger-history .waves { position:absolute; bottom:38%; left:32%; width:36%; height:8%; background: linear-gradient(180deg, #4a6a7a 0%, #2a4a5a 100%); border-radius:50% 50% 0 0; filter:blur(2px); animation: ahi-waves 12s ease-in-out infinite; }
.scn-avenger-history .light-spot { position:absolute; top:20%; left:25%; width:50%; height:60%; background: radial-gradient(ellipse at 50% 30%, rgba(255,230,180,.15) 0%, transparent 70%); animation: ahi-spot 14s ease-in-out infinite alternate; }
.scn-avenger-history .viewer { position:absolute; bottom:8%; left:45%; width:12%; 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: ahi-viewer 7s ease-in-out infinite; }
@keyframes ahi-ship { 0% { transform:translateY(0) rotate(-1deg); } 50% { transform:translateY(-2px) rotate(1deg); } 100% { transform:translateY(1px) rotate(-0.5deg); } }
@keyframes ahi-sail { 0% { transform:skewY(-5deg) scaleY(1); } 50% { transform:skewY(-8deg) scaleY(1.02); } 100% { transform:skewY(-4deg) scaleY(.98); } }
@keyframes ahi-waves { 0% { transform:translateX(0) scaleX(1); opacity:.7; } 50% { transform:translateX(3px) scaleX(1.05); opacity:.9; } 100% { transform:translateX(-2px) scaleX(.95); opacity:.6; } }
@keyframes ahi-spot { 0% { opacity:.3; transform:translateX(-5px); } 50% { opacity:.7; transform:translateX(3px); } 100% { opacity:.4; transform:translateX(-2px); } }
@keyframes ahi-viewer { 0% { transform:translateX(0) rotate(-2deg); } 25% { transform:translateX(2px) rotate(0deg); } 50% { transform:translateX(4px) rotate(2deg); } 75% { transform:translateX(2px) rotate(1deg); } 100% { transform:translateX(0) rotate(-2deg); } }

.scn-avenger-reflection { background: linear-gradient(180deg, #0a0808 0%, #141010 40%, #080606 100%), radial-gradient(ellipse at 50% 60%, #1a1210 0%, transparent 70%); }
.scn-avenger-reflection .surface { position:absolute; bottom:0; left:5%; width:90%; height:50%; background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%); border-radius:4px 4px 0 0; box-shadow:inset 0 10px 30px rgba(0,0,0,.8); transform:perspective(600px) rotateX(5deg); }
.scn-avenger-reflection .book { position:absolute; bottom:30%; left:35%; width:30%; height:18%; background: linear-gradient(135deg, #4a3a2a 0%, #2a1a10 100%); border-radius:4px; box-shadow:0 6px 12px rgba(0,0,0,.5); transform-origin: left center; animation: aref-book 12s ease-in-out infinite alternate; }
.scn-avenger-reflection .hand { position:absolute; bottom:35%; left:28%; width:6%; height:12%; background: linear-gradient(180deg, #c0a880 0%, #a08060 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: 50% 100%; animation: aref-hand 5s ease-in-out infinite; }
.scn-avenger-reflection .plaque { position:absolute; bottom:48%; left:42%; width:16%; height:6%; background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%); border-radius:2px; box-shadow:0 2px 6px rgba(0,0,0,.4); }
.scn-avenger-reflection .candle { position:absolute; bottom:42%; right:25%; width:4%; height:15%; background: linear-gradient(180deg, #e0c080 0%, #c0a060 100%); border-radius:2px; }
.scn-avenger-reflection .candle::after { content:''; position:absolute; bottom:100%; left:-50%; width:200%; height:15px; background: radial-gradient(circle, #f0d090 0%, #d0a050 40%, transparent 80%); animation: aref-candle 3s ease-in-out infinite alternate; }
.scn-avenger-reflection .shadow-figure { position:absolute; bottom:5%; left:20%; width:15%; height:60%; background: linear-gradient(180deg, #0a0808 0%, #040202 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; opacity:.4; animation: aref-shadow 9s ease-in-out infinite; }
.scn-avenger-reflection .reflection-layer { position:absolute; bottom:0; left:5%; width:90%; height:50%; background: linear-gradient(180deg, rgba(20,16,12,.3) 0%, rgba(10,8,6,.1) 100%); transform:perspective(600px) rotateX(-5deg); filter:blur(3px); animation: aref-reflect 15s ease-in-out infinite; }
@keyframes aref-book { 0% { transform: rotateY(0deg); } 50% { transform: rotateY(4deg); } 100% { transform: rotateY(-2deg); } }
@keyframes aref-hand { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-1px) rotate(-2deg); } 50% { transform: translateY(0) rotate(1deg); } 75% { transform: translateY(1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes aref-candle { 0% { opacity:.8; transform:scaleY(1); } 50% { opacity:1; transform:scaleY(1.2); } 100% { opacity:.9; transform:scaleY(.95); } }
@keyframes aref-shadow { 0% { opacity:.3; transform:translateX(0); } 50% { opacity:.5; transform:translateX(2px); } 100% { opacity:.4; transform:translateX(-1px); } }
@keyframes aref-reflect { 0% { opacity:.2; transform:perspective(600px) rotateX(-5deg) translateY(0); } 50% { opacity:.5; transform:perspective(600px) rotateX(-5deg) translateY(2px); } 100% { opacity:.3; transform:perspective(600px) rotateX(-5deg) translateY(-1px); } }

.scn-approaching-warship { background: linear-gradient(180deg, #4a8cba 0%, #87b8d4 30%, #c0d8e8 60%, #f0e8d0 100%), radial-gradient(ellipse at 50% 20%, #f8d090 0%, transparent 60%); }
.scn-approaching-warship .sky { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #2a6090 0%, #5a9ac0 30%, #90b8d0 60%, #c8d8e0 100%); animation: aws-sky 18s ease-in-out infinite alternate; }
.scn-approaching-warship .sun { position:absolute; top:10%; left:60%; width:60px; height:60px; border-radius:50%; background: radial-gradient(circle, #ffe0a0 0%, #ffc860 30%, #f0b040 60%, transparent 75%); box-shadow:0 0 80px 20px rgba(255,200,80,.5); animation: aws-sun 8s ease-in-out infinite alternate; }
.scn-approaching-warship .sea { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #2a6a8a 0%, #1a4a6a 50%, #0a2a4a 100%); border-radius:20% 20% 0 0 / 10% 10% 0 0; box-shadow:inset 0 10px 30px rgba(0,0,0,.4); }
.scn-approaching-warship .warship { position:absolute; bottom:30%; left:35%; width:35%; height:25%; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius:30% 30% 10% 10% / 40% 40% 20% 20%; transform-origin: bottom center; animation: aws-ship 4s ease-in-out infinite; box-shadow:0 6px 12px rgba(0,0,0,.6); }
.scn-approaching-warship .smoke { position:absolute; bottom:55%; left:38%; width:30px; height:20px; background: radial-gradient(ellipse at 30% 50%, rgba(200,200,200,.5) 0%, rgba(200,200,200,.1) 100%); filter:blur(5px); animation: aws-smoke 5s ease-out infinite; }
.scn-approaching-warship .flash { position:absolute; bottom:52%; left:40%; width:12px; height:12px; border-radius:50%; background: radial-gradient(circle, #ffd0a0 0%, #ff8020 60%, transparent 80%); box-shadow:0 0 30px 6px rgba(255,128,32,.6); animation: aws-flash 2s ease-in-out infinite; }
.scn-approaching-warship .spray { position:absolute; bottom:25%; left:30%; width:20px; height:15px; background: radial-gradient(ellipse at 50% 100%, rgba(180,220,240,.4) 0%, transparent 70%); filter:blur(3px); animation: aws-spray 3s ease-in-out infinite; }
.scn-approaching-warship .clouds { position:absolute; top:5%; left:-20%; width:40%; height:12%; background: linear-gradient(180deg, rgba(255,255,255,.6) 0%, rgba(200,220,240,.3) 100%); border-radius:50%; filter:blur(8px); animation: aws-cloud 25s linear infinite; }
@keyframes aws-sky { 0% { opacity:.9; } 50% { opacity:1; } 100% { opacity:.85; } }
@keyframes aws-sun { 0% { transform:scale(1) translateX(0); opacity:.9; } 50% { transform:scale(1.04) translateX(3px); opacity:1; } 100% { transform:scale(.98) translateX(-2px); opacity:.85; } }
@keyframes aws-ship { 0% { transform:rotate(-1deg) translateY(0); } 25% { transform:rotate(0deg) translateY(-2px); } 50% { transform:rotate(1deg) translateY(0); } 75% { transform:rotate(0deg) translateY(-1px); } 100% { transform:rotate(-1deg) translateY(0); } }
@keyframes aws-smoke { 0% { opacity:0; transform:translateY(0) scale(0.5); } 20% { opacity:.6; transform:translateY(-8px) scale(1.2); } 40% { opacity:.4; transform:translateY(-16px) scale(1.6); } 60% { opacity:.2; transform:translateY(-22px) scale(2); } 100% { opacity:0; transform:translateY(-30px) scale(2.5); } }
@keyframes aws-flash { 0% { opacity:0; transform:scale(0.3); } 20% { opacity:1; transform:scale(1.2); } 40% { opacity:.7; transform:scale(0.9); } 60% { opacity:0; transform:scale(0.5); } 100% { opacity:0; transform:scale(0.2); } }
@keyframes aws-spray { 0% { opacity:0; transform:translateY(0) scale(0.5); } 30% { opacity:.7; transform:translateY(-6px) scale(1.3); } 60% { opacity:.3; transform:translateY(-12px) scale(0.8); } 100% { opacity:0; transform:translateY(-18px) scale(0.4); } }
@keyframes aws-cloud { 0% { transform:translateX(0); } 100% { transform:translateX(150%); } }

/* aden-sight - sunlit calm, city on promontory */
.scn-aden-sight { background: linear-gradient(180deg, #4a7fb5 0%, #87ceeb 50%, #eebb88 100%), radial-gradient(ellipse at 50% 60%, #ffddaa 0%, transparent 70%); }
.scn-aden-sight .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #2171b5 0%, #87ceeb 60%, #f7e4c8 100%); animation: as-sky 20s ease-in-out infinite alternate; }
.scn-aden-sight .sun { position:absolute; top:15%; left:60%; width:40px; height:40px; background: radial-gradient(circle, #ffe877 0%, #ffb347 70%); border-radius:50%; box-shadow: 0 0 80px 30px rgba(255,200,80,0.6); animation: as-sun 8s ease-in-out infinite; }
.scn-aden-sight .sea { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #3288bd 0%, #1e5f8a 100%); animation: as-sea 12s ease-in-out infinite alternate; }
.scn-aden-sight .cliff { position:absolute; bottom:45%; left:10%; right:40%; height:30%; background: linear-gradient(180deg, #c09a6b 0%, #8b6240 100%); border-radius: 40% 20% 0 0; box-shadow: inset 0 -10px 20px rgba(0,0,0,0.3); animation: as-cliff 15s ease-in-out infinite alternate; }
.scn-aden-sight .city { position:absolute; bottom:50%; left:12%; right:42%; height:15%; background: linear-gradient(180deg, #d4b896 0%, #b8955a 100%); border-radius: 10% 10% 0 0; box-shadow: 0 -4px 8px rgba(0,0,0,0.2); animation: as-city 18s ease-in-out infinite; }
.scn-aden-sight .minaret { position:absolute; bottom:65%; left:20%; width:8px; height:50px; background: linear-gradient(180deg, #e3cba8 0%, #b8955a 100%); border-radius: 0 0 4px 4px; transform-origin: bottom center; box-shadow: 0 0 6px rgba(0,0,0,0.3); animation: as-minaret 5s ease-in-out infinite alternate; }
.scn-aden-sight .ship { position:absolute; bottom:42%; left:55%; width:60px; height:20px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 40% 40% 20% 20%; box-shadow: 0 3px 6px rgba(0,0,0,0.5); animation: as-ship 10s ease-in-out infinite; }
.scn-aden-sight .cloud-a { position:absolute; top:18%; left:5%; width:70px; height:16px; background: rgba(255,255,255,0.4); filter: blur(6px); border-radius:50%; animation: as-cloud 30s linear infinite; }
.scn-aden-sight .cloud-b { position:absolute; top:25%; right:10%; width:50px; height:12px; background: rgba(255,255,255,0.3); filter: blur(5px); border-radius:50%; animation: as-cloud 40s linear infinite reverse; }
@keyframes as-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes as-sun { 0% { transform: scale(1); opacity:0.9 } 50% { transform: scale(1.1); opacity:1 } 100% { transform: scale(1); opacity:0.85 } }
@keyframes as-sea { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes as-cliff { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes as-city { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(1) } }
@keyframes as-minaret { 0% { transform: rotate(-1deg) } 50% { transform: rotate(1deg) } 100% { transform: rotate(-1deg) } }
@keyframes as-ship { 0% { transform: translateX(0) translateY(0) rotate(-1deg) } 50% { transform: translateX(5px) translateY(-1px) rotate(1deg) } 100% { transform: translateX(0) translateY(0) rotate(-1deg) } }
@keyframes as-cloud { 0% { transform: translateX(-30px) } 50% { transform: translateX(100px) } 100% { transform: translateX(250vw) } }

/* bab-el-mandeb - dim interior of Nautilus */
.scn-bab-el-mandeb { background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1a 50%, #0a0a14 100%), radial-gradient(ellipse at 50% 40%, #3a2a1a 0%, transparent 70%); }
.scn-bab-el-mandeb .ceiling { position:absolute; top:0; left:0; right:0; height:15%; background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%); border-bottom: 2px solid #4a3a2a; }
.scn-bab-el-mandeb .wall-left { position:absolute; top:15%; left:0; bottom:10%; width:30%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1a2e 100%); border-right: 3px solid #4a3a2a; }
.scn-bab-el-mandeb .wall-right { position:absolute; top:15%; right:0; bottom:10%; width:30%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1a2e 100%); border-left: 3px solid #4a3a2a; }
.scn-bab-el-mandeb .floor { position:absolute; bottom:0; left:0; right:0; height:10%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); }
.scn-bab-el-mandeb .porthole { position:absolute; top:25%; left:50%; width:80px; height:80px; transform:translateX(-50%); border-radius:50%; border: 6px solid #5a4a3a; background: #1a2a3a; overflow:hidden; box-shadow: inset 0 0 20px rgba(0,0,0,0.8); }
.scn-bab-el-mandeb .strait-view { position:absolute; left:50%; top:25%; width:80px; height:80px; transform:translateX(-50%); border-radius:50%; background: linear-gradient(180deg, #3a5a6a 0%, #2a4a5a 100%); animation: bem-strait 15s ease-in-out infinite alternate; }
.scn-bab-el-mandeb .lamp { position:absolute; top:20%; left:35%; width:12px; height:18px; background: radial-gradient(circle, #ffd080 0%, #c08040 70%); border-radius: 50% 50% 20% 20%; box-shadow: 0 0 30px 10px rgba(255,208,128,0.5); animation: bem-lamp 4s ease-in-out infinite alternate; }
.scn-bab-el-mandeb .table { position:absolute; bottom:15%; left:40%; width:40px; height:15px; background: linear-gradient(180deg, #5a3a1a 0%, #3a1a0a 100%); border-radius: 4px; box-shadow: 0 2px 4px rgba(0,0,0,0.6); animation: bem-table 12s ease-in-out infinite; }
@keyframes bem-strait { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.6 } }
@keyframes bem-lamp { 0% { box-shadow: 0 0 20px 5px rgba(255,208,128,0.3); opacity:0.85 } 50% { box-shadow: 0 0 40px 15px rgba(255,208,128,0.6); opacity:1 } 100% { box-shadow: 0 0 20px 5px rgba(255,208,128,0.3); opacity:0.85 } }
@keyframes bem-table { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.03) } 100% { transform: scaleY(1) } }

/* red-sea-intro - sunlit surface */
.scn-red-sea-intro { background: linear-gradient(180deg, #1f78b4 0%, #87ceeb 50%, #eecfa8 100%), radial-gradient(ellipse at 80% 20%, #ffddaa 0%, transparent 60%); }
.scn-red-sea-intro .sky { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #2171b5 0%, #87ceeb 60%, #f7e4c8 100%); animation: rsi-sky 25s ease-in-out infinite alternate; }
.scn-red-sea-intro .sun { position:absolute; top:10%; left:75%; width:50px; height:50px; background: radial-gradient(circle, #fff4b0 0%, #ffb347 60%); border-radius:50%; box-shadow: 0 0 100px 40px rgba(255,200,80,0.7); animation: rsi-sun 9s ease-in-out infinite; }
.scn-red-sea-intro .water { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #3288bd 0%, #1e5f8a 100%); animation: rsi-water 14s ease-in-out infinite alternate; }
.scn-red-sea-intro .wave-1 { position:absolute; bottom:45%; left:0; right:0; height:8%; background: radial-gradient(ellipse at 30% 50%, rgba(255,255,255,0.2) 0%, transparent 70%); filter: blur(3px); animation: rsi-wave1 8s ease-in-out infinite alternate; }
.scn-red-sea-intro .wave-2 { position:absolute; bottom:35%; left:0; right:0; height:6%; background: radial-gradient(ellipse at 70% 50%, rgba(255,255,255,0.15) 0%, transparent 70%); filter: blur(2px); animation: rsi-wave2 10s ease-in-out infinite alternate-reverse; }
.scn-red-sea-intro .dhow { position:absolute; bottom:50%; left:50%; width:60px; height:40px; transform: translateX(-50%); background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 40% 40% 20% 20%; box-shadow: 0 4px 8px rgba(0,0,0,0.4); animation: rsi-dhow 20s ease-in-out infinite; }
.scn-red-sea-intro .reflection { position:absolute; bottom:5%; left:20%; right:20%; height:2px; background: linear-gradient(90deg, transparent, rgba(255,255,255,0.2), transparent); animation: rsi-reflect 6s ease-in-out infinite alternate; }
@keyframes rsi-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.75 } }
@keyframes rsi-sun { 0% { transform: scale(1); opacity:0.9 } 50% { transform: scale(1.15); opacity:1 } 100% { transform: scale(1); opacity:0.85 } }
@keyframes rsi-water { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes rsi-wave1 { 0% { transform: translateX(-10px) } 50% { transform: translateX(10px) } 100% { transform: translateX(-10px) } }
@keyframes rsi-wave2 { 0% { transform: translateX(10px) } 50% { transform: translateX(-10px) } 100% { transform: translateX(10px) } }
@keyframes rsi-dhow { 0% { transform: translateX(-50%) translateY(0) rotate(-1deg) } 50% { transform: translateX(-50%) translateY(-2px) rotate(1deg) } 100% { transform: translateX(-50%) translateY(0) rotate(-1deg) } }
@keyframes rsi-reflect { 0% { opacity:0.3 } 50% { opacity:0.8 } 100% { opacity:0.3 } }

/* nemo's-whim - Nautilus on sunlit surface */
.scn-nemo-s-whim { background: linear-gradient(180deg, #2c7bb6 0%, #87ceeb 40%, #f7e4c8 100%), radial-gradient(ellipse at 70% 30%, #ffddaa 0%, transparent 60%); }
.scn-nemo-s-whim .sky { position:absolute; inset:0 0 60% 0; background: linear-gradient(180deg, #2171b5 0%, #87ceeb 60%, #f7e4c8 100%); animation: nw-sky 22s ease-in-out infinite alternate; }
.scn-nemo-s-whim .sea { position:absolute; bottom:0; left:0; right:0; height:60%; background: linear-gradient(180deg, #3288bd 0%, #1e5f8a 100%); animation: nw-sea 13s ease-in-out infinite alternate; }
.scn-nemo-s-whim .hull { position:absolute; bottom:35%; left:40%; width:100px; height:25px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 50% 50% 30% 30%; box-shadow: 0 5px 12px rgba(0,0,0,0.5); animation: nw-hull 11s ease-in-out infinite; }
.scn-nemo-s-whim .tower { position:absolute; bottom:50%; left:52%; width:20px; height:35px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 20% 20% 10% 10%; transform-origin: bottom center; box-shadow: 0 2px 6px rgba(0,0,0,0.4); animation: nw-tower 8s ease-in-out infinite alternate; }
.scn-nemo-s-whim .wake { position:absolute; bottom:30%; left:25%; right:15%; height:8px; background: linear-gradient(90deg, transparent, rgba(255,255,255,0.3), transparent); filter: blur(2px); animation: nw-wake 4s ease-in-out infinite alternate; }
.scn-nemo-s-whim .coast { position:absolute; bottom:50%; right:8%; width:80px; height:50px; background: linear-gradient(180deg, #c09a6b 0%, #8b6240 100%); border-radius: 40% 20% 0 0; box-shadow: inset 0 -8px 16px rgba(0,0,0,0.3); animation: nw-coast 25s ease-in-out infinite alternate; }
.scn-nemo-s-whim .cloud { position:absolute; top:20%; left:50%; width:60px; height:14px; background: rgba(255,255,255,0.35); filter: blur(5px); border-radius:50%; animation: nw-cloud 35s linear infinite; }
@keyframes nw-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.75 } }
@keyframes nw-sea { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes nw-hull { 0% { transform: translateX(0) translateY(0) rotate(-1deg) } 50% { transform: translateX(3px) translateY(-1px) rotate(1deg) } 100% { transform: translateX(0) translateY(0) rotate(-1deg) } }
@keyframes nw-tower { 0% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-2deg) } }
@keyframes nw-wake { 0% { transform: scaleX(1); opacity:0.4 } 50% { transform: scaleX(1.2); opacity:0.8 } 100% { transform: scaleX(1); opacity:0.4 } }
@keyframes nw-coast { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(0) } }
@keyframes nw-cloud { 0% { transform: translateX(-50px) } 50% { transform: translateX(100px) } 100% { transform: translateX(300vw) } }

.scn-papuans-retreat {
  background: linear-gradient(180deg, #f5e6c8 0%, #d4a574 100%), radial-gradient(ellipse at 50% 0%, #fff8e0 0%, transparent 60%);
}
.scn-papuans-retreat .room {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #e6d4b3 0%, #b89a6a 100%);
  border-radius: 20px;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.2);
  animation: pr-room 6s ease-in-out infinite alternate;
}
.scn-papuans-retreat .porthole {
  position: absolute; top: 15%; right: 10%;
  width: 120px; height: 120px;
  border-radius: 50%;
  background: #2a4a6a;
  border: 8px solid #8a6a4a;
  animation: pr-porthole 3s ease-in-out infinite alternate;
}
.scn-papuans-retreat .sea-view {
  position: absolute; top: 18%; right: 13%;
  width: 90px; height: 90px;
  border-radius: 50%;
  background: linear-gradient(180deg, #3a6a8a 0%, #1a3a5a 100%);
  animation: pr-sea 8s ease-in-out infinite alternate;
}
.scn-papuans-retreat .coral {
  position: absolute; top: 22%; right: 17%;
  width: 40px; height: 30px;
  background: radial-gradient(ellipse at 30% 50%, #c8553d 0%, #a0461a 40%, transparent 60%);
  border-radius: 40% 60% 30% 50%;
  transform: rotate(-10deg);
  animation: pr-coral 5s ease-in-out infinite alternate;
}
.scn-papuans-retreat .figure {
  position: absolute; bottom: 30%; left: 30%;
  width: 30px; height: 60px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: pr-figure 1.5s ease-in-out infinite alternate;
}
.scn-papuans-retreat .chair {
  position: absolute; bottom: 28%; left: 26%;
  width: 40px; height: 35px;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 30% 30%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: pr-chair 3s ease-in-out infinite alternate;
}
.scn-papuans-retreat .lamp {
  position: absolute; top: 10%; left: 20%;
  width: 12px; height: 20px;
  background: #d4a574;
  border-radius: 50% 50% 30% 30%;
  transform-origin: top center;
  animation: pr-lamp 2s ease-in-out infinite alternate;
}
.scn-papuans-retreat .shadow {
  position: absolute; bottom: 28%; left: 28%;
  width: 70px; height: 40px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.3) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(4px);
  animation: pr-shadow 3s ease-in-out infinite alternate;
}
@keyframes pr-room {
  0% { opacity: 0.9; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.02); }
  100% { opacity: 0.95; transform: scale(0.98); }
}
@keyframes pr-porthole {
  0% { box-shadow: 0 0 0 2px rgba(138,106,74,0.5); }
  50% { box-shadow: 0 0 12px 4px rgba(255,200,100,0.3); }
  100% { box-shadow: 0 0 0 2px rgba(138,106,74,0.5); }
}
@keyframes pr-sea {
  0% { background-position: 0% 0%; }
  100% { background-position: 10% 20%; }
}
@keyframes pr-coral {
  0% { transform: rotate(-10deg) scale(1); }
  50% { transform: rotate(5deg) scale(1.1); }
  100% { transform: rotate(-15deg) scale(0.95); }
}
@keyframes pr-figure {
  0% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(5deg) translateY(-3px); }
  100% { transform: rotate(-3deg) translateY(1px); }
}
@keyframes pr-chair {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(1px); }
}
@keyframes pr-lamp {
  0% { transform: rotate(-8deg); }
  50% { transform: rotate(8deg); }
  100% { transform: rotate(-5deg); }
}
@keyframes pr-shadow {
  0% { opacity: 0.3; transform: scale(1); }
  50% { opacity: 0.5; transform: scale(1.1); }
  100% { opacity: 0.4; transform: scale(0.9); }
}

.scn-after-strait {
  background: linear-gradient(180deg, #7ec8e3 0%, #b0e0f0 40%, #f0e68c 100%), radial-gradient(ellipse at 50% 20%, #fff8dc 0%, transparent 50%);
}
.scn-after-strait .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #a0d8ef 0%, transparent 100%);
  animation: as-sky 12s ease-in-out infinite alternate;
}
.scn-after-strait .sun {
  position: absolute; top: 12%; left: 45%;
  width: 80px; height: 80px;
  border-radius: 50%;
  background: radial-gradient(circle, #fff8dc 0%, #f0e68c 40%, transparent 70%);
  animation: as-sun 6s ease-in-out infinite alternate;
}
.scn-after-strait .ray1 {
  position: absolute; top: 16%; left: 50%;
  width: 400px; height: 4px;
  transform-origin: left center;
  background: linear-gradient(90deg, rgba(255,248,220,0.6) 0%, transparent 100%);
  animation: as-ray1 10s linear infinite;
}
.scn-after-strait .ray2 {
  position: absolute; top: 20%; left: 50%;
  width: 350px; height: 4px;
  transform-origin: left center;
  background: linear-gradient(90deg, rgba(255,248,220,0.4) 0%, transparent 100%);
  animation: as-ray2 12s linear infinite;
}
.scn-after-strait .ray3 {
  position: absolute; top: 10%; left: 50%;
  width: 300px; height: 4px;
  transform-origin: left center;
  background: linear-gradient(90deg, rgba(255,248,220,0.5) 0%, transparent 100%);
  animation: as-ray3 8s linear infinite;
}
.scn-after-strait .sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #3a7a9a 0%, #2a5a7a 100%);
  animation: as-sea 8s ease-in-out infinite alternate;
}
.scn-after-strait .nautilus {
  position: absolute; bottom: 20%; left: 35%;
  width: 140px; height: 50px;
  background: linear-gradient(180deg, #5a7a8a 0%, #3a5a6a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform: rotate(-5deg);
  box-shadow: 0 2px 10px rgba(0,0,0,0.3);
  animation: as-nautilus 15s ease-in-out infinite alternate;
}
.scn-after-strait .window {
  position: absolute; bottom: 23%; left: 42%;
  width: 16px; height: 20px;
  border-radius: 50% 50% 30% 30%;
  background: radial-gradient(circle, #fff8dc 0%, #b0d0e0 70%);
  box-shadow: 0 0 12px 4px rgba(255,248,220,0.5);
  animation: as-window 3s ease-in-out infinite alternate;
}
.scn-after-strait .ripple {
  position: absolute; bottom: 10%; left: 20%;
  width: 200px; height: 10px;
  border-radius: 50%;
  border: 2px solid rgba(255,255,255,0.3);
  animation: as-ripple 6s ease-in-out infinite;
}
@keyframes as-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes as-sun {
  0% { transform: scale(1); opacity: 0.9; }
  50% { transform: scale(1.1); opacity: 1; }
  100% { transform: scale(0.95); opacity: 0.95; }
}
@keyframes as-ray1 {
  0% { transform: rotate(-20deg) translateX(0); opacity: 0.5; }
  50% { transform: rotate(-25deg) translateX(20px); opacity: 0.8; }
  100% { transform: rotate(-20deg) translateX(0); opacity: 0.5; }
}
@keyframes as-ray2 {
  0% { transform: rotate(-10deg) translateX(0); opacity: 0.3; }
  50% { transform: rotate(-15deg) translateX(40px); opacity: 0.6; }
  100% { transform: rotate(-10deg) translateX(0); opacity: 0.3; }
}
@keyframes as-ray3 {
  0% { transform: rotate(10deg) translateX(0); opacity: 0.4; }
  50% { transform: rotate(15deg) translateX(-30px); opacity: 0.7; }
  100% { transform: rotate(10deg) translateX(0); opacity: 0.4; }
}
@keyframes as-sea {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(2px); }
}
@keyframes as-nautilus {
  0% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(-3deg) translateY(-4px); }
  100% { transform: rotate(-7deg) translateY(2px); }
}
@keyframes as-window {
  0% { box-shadow: 0 0 8px 2px rgba(255,248,220,0.4); }
  50% { box-shadow: 0 0 20px 6px rgba(255,248,220,0.8); }
  100% { box-shadow: 0 0 12px 4px rgba(255,248,220,0.5); }
}
@keyframes as-ripple {
  0% { transform: scale(1); opacity: 0.3; }
  50% { transform: scale(1.5); opacity: 0.1; }
  100% { transform: scale(1); opacity: 0.3; }
}

.scn-west-course {
  background: linear-gradient(180deg, #a0d8ef 0%, #c2e0f0 30%, #e8f4f8 70%, #d4e8d4 100%), radial-gradient(ellipse at 60% 30%, #fff8e0 0%, transparent 70%);
}
.scn-west-course .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #c8e6f0 0%, transparent 100%);
  animation: wc-sky 15s ease-in-out infinite alternate;
}
.scn-west-course .sun {
  position: absolute; top: 10%; right: 20%;
  width: 70px; height: 70px;
  border-radius: 50%;
  background: radial-gradient(circle, #fff8dc 0%, #f0e68c 40%, transparent 70%);
  animation: wc-sun 8s ease-in-out infinite alternate;
}
.scn-west-course .sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #4a8aaa 0%, #2a6a8a 100%);
  animation: wc-sea 10s ease-in-out infinite alternate;
}
.scn-west-course .reef1 {
  position: absolute; bottom: 32%; left: 15%;
  width: 80px; height: 30px;
  background: linear-gradient(180deg, #5a9a6a 0%, #3a7a4a 100%);
  border-radius: 40% 60% 20% 40%;
  transform: rotate(-10deg);
  animation: wc-reef1 6s ease-in-out infinite alternate;
}
.scn-west-course .reef2 {
  position: absolute; bottom: 35%; right: 20%;
  width: 100px; height: 40px;
  background: linear-gradient(180deg, #6aaa7a 0%, #4a8a5a 100%);
  border-radius: 60% 40% 30% 50%;
  transform: rotate(15deg);
  animation: wc-reef2 8s ease-in-out infinite alternate;
}
.scn-west-course .cape {
  position: absolute; bottom: 30%; left: 40%;
  width: 120px; height: 80px;
  background: linear-gradient(180deg, #7a8a6a 0%, #4a5a3a 100%);
  clip-path: polygon(0 100%, 100% 100%, 50% 0);
  animation: wc-cape 12s ease-in-out infinite alternate;
}
.scn-west-course .wave1 {
  position: absolute; bottom: 10%; left: 0;
  width: 100%; height: 15px;
  background: repeating-linear-gradient(90deg, transparent, transparent 20px, rgba(255,255,255,0.2) 20px, rgba(255,255,255,0.2) 25px);
  animation: wc-wave1 4s ease-in-out infinite;
}
.scn-west-course .wave2 {
  position: absolute; bottom: 5%; left: 0;
  width: 100%; height: 12px;
  background: repeating-linear-gradient(90deg, transparent, transparent 30px, rgba(255,255,255,0.15) 30px, rgba(255,255,255,0.15) 35px);
  animation: wc-wave2 6s ease-in-out infinite;
}
.scn-west-course .cloud {
  position: absolute; top: 20%; left: 10%;
  width: 90px; height: 20px;
  background: radial-gradient(ellipse at 30% 50%, rgba(255,255,255,0.6) 0%, transparent 70%);
  filter: blur(4px);
  animation: wc-cloud 35s linear infinite;
}
@keyframes wc-sky {
  0% { opacity: 0.85; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes wc-sun {
  0% { transform: scale(1); opacity: 0.9; }
  50% { transform: scale(1.08); opacity: 1; }
  100% { transform: scale(0.95); opacity: 0.95; }
}
@keyframes wc-sea {
  0% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
  100% { transform: translateY(1px); }
}
@keyframes wc-reef1 {
  0% { transform: rotate(-10deg) scale(1); }
  50% { transform: rotate(-8deg) scale(1.05); }
  100% { transform: rotate(-12deg) scale(0.95); }
}
@keyframes wc-reef2 {
  0% { transform: rotate(15deg) scale(1); }
  50% { transform: rotate(18deg) scale(1.03); }
  100% { transform: rotate(12deg) scale(0.97); }
}
@keyframes wc-cape {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.05); }
  100% { transform: scaleY(0.95); }
}
@keyframes wc-wave1 {
  0% { transform: translateX(0); }
  50% { transform: translateX(-20px); }
  100% { transform: translateX(0); }
}
@keyframes wc-wave2 {
  0% { transform: translateX(0); }
  50% { transform: translateX(30px); }
  100% { transform: translateX(0); }
}
@keyframes wc-cloud {
  0% { transform: translateX(-30px); }
  100% { transform: translateX(110vw); }
}

.scn-timor-island {
  background: radial-gradient(ellipse at 50% 50%, #3a6a9a 0%, #1a3a5a 100%), linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.1) 100%);
}
.scn-timor-island .sea {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 50%, #2a5a7a 0%, #0a2a4a 100%);
  animation: ti-sea 12s ease-in-out infinite alternate;
}
.scn-timor-island .island {
  position: absolute; top: 30%; left: 30%;
  width: 200px; height: 140px;
  background: linear-gradient(180deg, #6aaa6a 0%, #3a7a3a 100%);
  border-radius: 50% 40% 60% 50% / 60% 50% 50% 40%;
  box-shadow: 0 4px 20px rgba(0,0,0,0.3);
  animation: ti-island 8s ease-in-out infinite alternate;
}
.scn-timor-island .croc {
  position: absolute; top: 45%; left: 45%;
  width: 60px; height: 20px;
  background: linear-gradient(90deg, #4a6a3a 0%, #2a4a1a 100%);
  border-radius: 80% 20% 30% 70% / 60% 40% 60% 40%;
  transform: rotate(15deg);
  animation: ti-croc 4s ease-in-out infinite alternate;
}
.scn-timor-island .compass {
  position: absolute; bottom: 15%; right: 15%;
  width: 40px; height: 40px;
  background: radial-gradient(circle, #d4a574 0%, #8a6a4a 100%);
  border-radius: 50%;
  border: 2px solid #b89a6a;
  animation: ti-compass 30s linear infinite;
}
.scn-timor-island .ring1 {
  position: absolute; bottom: 12%; right: 12%;
  width: 60px; height: 60px;
  border-radius: 50%;
  border: 2px solid rgba(255,255,255,0.2);
  animation: ti-ring1 10s ease-in-out infinite;
}
.scn-timor-island .ring2 {
  position: absolute; bottom: 8%; right: 8%;
  width: 80px; height: 80px;
  border-radius: 50%;
  border: 2px solid rgba(255,255,255,0.1);
  animation: ti-ring2 15s ease-in-out infinite;
}
@keyframes ti-sea {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.95; }
}
@keyframes ti-island {
  0% { transform: scale(1) rotate(0deg); }
  50% { transform: scale(1.02) rotate(2deg); }
  100% { transform: scale(0.98) rotate(-2deg); }
}
@keyframes ti-croc {
  0% { transform: rotate(15deg) scaleX(1); }
  50% { transform: rotate(20deg) scaleX(1.1); }
  100% { transform: rotate(10deg) scaleX(0.9); }
}
@keyframes ti-compass {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}
@keyframes ti-ring1 {
  0% { transform: scale(1); opacity: 0.3; }
  50% { transform: scale(1.2); opacity: 0.1; }
  100% { transform: scale(1); opacity: 0.3; }
}
@keyframes ti-ring2 {
  0% { transform: scale(1); opacity: 0.2; }
  50% { transform: scale(1.3); opacity: 0.05; }
  100% { transform: scale(1); opacity: 0.2; }
}

.scn-report-of-attack {
  background:
    radial-gradient(ellipse at 30% 40%, #8b5a2b 0%, transparent 60%),
    linear-gradient(135deg, #2a1a0a 0%, #4a2e15 40%, #8b5a2b 100%);
}
.scn-report-of-attack .bg-interior { position: absolute; inset: 0; background: linear-gradient(135deg, transparent 0%, #3a1e0a 100%); opacity: 0.6; animation: si-report-shadow 8s ease-in-out infinite; }
.scn-report-of-attack .porthole { position: absolute; top: 25%; left: 15%; width: 55%; height: 55%; border-radius: 50%; border: 24px solid #2a1a0a; background: #021a2a; box-shadow: inset 0 0 40px #000, 0 0 20px #000; overflow: hidden; }
.scn-report-of-attack .sea-exterior { position: absolute; top: 25%; left: 15%; width: 55%; height: 55%; border-radius: 50%; background: linear-gradient(180deg, #051a30 0%, #0a3a50 50%, #020d15 100%); animation: si-report-sea 6s ease-in-out infinite alternate; }
.scn-report-of-attack .dugout { position: absolute; top: 25%; left: 15%; width: 55%; height: 55%; border-radius: 50%; }
.scn-report-of-attack .dugout-1 { background: radial-gradient(ellipse at 70% 80%, #1a2a1a 0%, transparent 70%); animation: si-report-dugout 4s ease-in-out infinite; }
.scn-report-of-attack .dugout-2 { background: radial-gradient(ellipse at 30% 90%, #1a2a1a 0%, transparent 60%); animation: si-report-dugout 4s ease-in-out infinite reverse; animation-delay: -2s; }
.scn-report-of-attack .nemo-figure { position: absolute; bottom: 10%; left: 35%; width: 20%; height: 45%; background: linear-gradient(180deg, #0a0a0a 0%, #1a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: si-report-nemo 3s ease-in-out infinite; }
.scn-report-of-attack .alert-light { position: absolute; top: 5%; right: 10%; width: 12px; height: 12px; border-radius: 50%; background: #c8553d; box-shadow: 0 0 24px 8px #c8553d, 0 0 48px 16px rgba(200,85,61,0.4); animation: si-report-alert 1.2s step-end infinite; }
.scn-report-of-attack .shadow-overlay { position: absolute; inset: 0; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.7) 100%); pointer-events: none; animation: si-report-shadow 8s ease-in-out infinite alternate; }
@keyframes si-report-shadow { 0% { opacity: 0.4; } 50% { opacity: 0.7; } 100% { opacity: 0.4; } }
@keyframes si-report-sea { 0% { background-position: 0% 0%; } 50% { background-position: 10% 5%; } 100% { background-position: -5% -2%; } }
@keyframes si-report-dugout { 0% { transform: translateX(-20%) rotate(-5deg); opacity: 0.2; } 50% { transform: translateX(10%) rotate(5deg); opacity: 0.8; } 100% { transform: translateX(30%) rotate(-3deg); opacity: 0.1; } }
@keyframes si-report-nemo { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-4px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes si-report-alert { 0% { opacity: 0.1; box-shadow: 0 0 12px 2px #c8553d; } 50% { opacity: 1; box-shadow: 0 0 32px 12px #c8553d; } 100% { opacity: 0.1; box-shadow: 0 0 12px 2px #c8553d; } }

.scn-hatches-closed {
  background:
    radial-gradient(ellipse at 50% 80%, #2c3e50 0%, transparent 70%),
    linear-gradient(180deg, #1a252f 0%, #2c3e50 50%, #0d1219 100%);
}
.scn-hatches-closed .corridor-bg { position: absolute; inset: 0; background: linear-gradient(90deg, #1a252f 0%, #2c3e50 50%, #1a252f 100%); animation: si-hatches-bg 15s ease-in-out infinite alternate; }
.scn-hatches-closed .floor { position: absolute; bottom: 0; left: 0; right: 0; height: 35%; background: linear-gradient(180deg, transparent 0%, #0d1219 30%, #1a252f 100%); border-radius: 20% 20% 0 0 / 40% 40% 0 0; animation: si-hatches-floor 12s ease-in-out infinite; }
.scn-hatches-closed .hatch-door { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 30%; padding-bottom: 30%; border-radius: 50%; background: radial-gradient(circle at 40% 40%, #5d6d7e 0%, #34495e 100%); box-shadow: 0 10px 30px #000, inset 0 -10px 20px #1a252f; }
.scn-hatches-closed .hatch-lock { position: absolute; top: 50%; left: 50%; transform: translate(-50%, -50%); width: 10%; padding-bottom: 10%; border-radius: 50%; background: radial-gradient(circle at 30% 30%, #aeb6bf 0%, #5d6d7e 100%); box-shadow: 0 0 10px #000; animation: si-hatches-lock 20s ease-in-out infinite; }
.scn-hatches-closed .pipe-left { position: absolute; top: 0; left: 5%; width: 4%; height: 100%; background: linear-gradient(180deg, #2c3e50 0%, #1a252f 100%); box-shadow: inset -2px 0 4px #000; }
.scn-hatches-closed .pipe-right { position: absolute; top: 0; right: 5%; width: 4%; height: 100%; background: linear-gradient(180deg, #2c3e50 0%, #1a252f 100%); box-shadow: inset 2px 0 4px #000; }
.scn-hatches-closed .ambient-light { position: absolute; top: 20%; left: 30%; width: 40%; height: 60%; background: radial-gradient(ellipse, rgba(174,182,191,0.1) 0%, transparent 70%); animation: si-hatches-light 8s ease-in-out infinite alternate; }
@keyframes si-hatches-bg { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes si-hatches-floor { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.95); } 100% { transform: scaleY(1); } }
@keyframes si-hatches-lock { 0% { transform: translate(-50%, -50%) rotate(0deg) scale(1); } 50% { transform: translate(-50%, -50%) rotate(180deg) scale(0.95); } 100% { transform: translate(-50%, -50%) rotate(360deg) scale(1); } }
@keyframes si-hatches-light { 0% { opacity: 0.2; transform: scale(0.9); } 50% { opacity: 0.6; transform: scale(1.1); } 100% { opacity: 0.3; transform: scale(0.95); } }

.scn-air-renewal-concern {
  background:
    radial-gradient(ellipse at 50% 0%, #f9e79f 0%, transparent 60%),
    linear-gradient(180deg, #2c3e50 0%, #0b131b 100%);
}
.scn-air-renewal-concern .shaft-bg { position: absolute; inset: 0; background: linear-gradient(180deg, #0b131b 0%, #1a252f 50%, #0b131b 100%); }
.scn-air-renewal-concern .hatch-above { position: absolute; top: -5%; left: 50%; transform: translateX(-50%); width: 30%; padding-bottom: 30%; border-radius: 50%; background: radial-gradient(circle at 50% 60%, #f9e79f 0%, #e8da8e 100%); box-shadow: 0 0 40px #f9e79f, 0 0 80px #f1c40f; animation: si-air-hatch 6s ease-in-out infinite alternate; }
.scn-air-renewal-concern .ladder { position: absolute; top: 0; bottom: 0; width: 4%; background: repeating-linear-gradient(180deg, #5d6d7e 0px, #5d6d7e 8px, transparent 8px, transparent 40px); }
.scn-air-renewal-concern .leg-left { left: 25%; }
.scn-air-renewal-concern .leg-right { right: 25%; }
.scn-air-renewal-concern .papuan-shadow { position: absolute; top: -5%; left: 50%; transform: translateX(-50%); width: 30%; padding-bottom: 30%; border-radius: 50%; background: radial-gradient(ellipse at 50% 100%, #000 0%, transparent 70%); opacity: 0.6; animation: si-air-shadow 8s linear infinite; }
.scn-air-renewal-concern .vent-grille { position: absolute; bottom: 10%; left: 10%; width: 80%; height: 20%; background: repeating-linear-gradient(90deg, #2c3e50 0px, #2c3e50 6px, transparent 6px, transparent 20px); opacity: 0.3; }
.scn-air-renewal-concern .breath-mist { position: absolute; top: 30%; left: 20%; width: 60%; height: 40%; background: radial-gradient(ellipse at 50% 50%, rgba(255,255,255,0.15) 0%, transparent 70%); filter: blur(8px); animation: si-air-mist 10s ease-in-out infinite; }
@keyframes si-air-hatch { 0% { transform: translateX(-50%) scale(1); box-shadow: 0 0 40px #f9e79f; } 50% { transform: translateX(-50%) scale(0.98); box-shadow: 0 0 60px #f1c40f; } 100% { transform: translateX(-50%) scale(1.02); box-shadow: 0 0 30px #f9e79f; } }
@keyframes si-air-shadow { 0% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(10px); } 100% { transform: translateX(-50%) translateY(0); } }
@keyframes si-air-mist { 0% { opacity: 0.1; transform: scale(0.9); } 50% { opacity: 0.4; transform: scale(1.1); } 100% { opacity: 0.2; transform: scale(0.95); } }

.scn-nemo-lets-them-come {
  background:
    radial-gradient(ellipse at 50% 30%, #f1c40f 0%, transparent 60%),
    linear-gradient(180deg, #e67e22 0%, #f39c12 30%, #1a5276 100%);
}
.scn-nemo-lets-them-come .sky-exterior { position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #f39c12 0%, #f1c40f 50%, #e67e22 100%); animation: si-nemo-sky 15s ease-in-out infinite alternate; }
.scn-nemo-lets-them-come .sea-exterior { position: absolute; bottom: 10%; left: 0; right: 0; height: 40%; background: linear-gradient(180deg, #1a5276 0%, #0e2f44 100%); border-radius: 30% 70% 0 0 / 50% 50% 0 0; animation: si-nemo-sea 12s ease-in-out infinite alternate; }
.scn-nemo-lets-them-come .dugout-flotilla { position: absolute; bottom: 35%; left: 10%; width: 80%; height: 15%; background: radial-gradient(ellipse at 30% 50%, #1a2a1a 0%, transparent 50%), radial-gradient(ellipse at 70% 30%, #1a2a1a 0%, transparent 40%); animation: si-nemo-boats 20s linear infinite; }
.scn-nemo-lets-them-come .viewport-frame { position: absolute; inset: 0; border: 40px solid #0b0c10; border-radius: 20px; box-shadow: inset 0 0 60px rgba(0,0,0,0.8); }
.scn-nemo-lets-them-come .nemo-silhouette { position: absolute; bottom: 15%; left: 40%; width: 20%; height: 50%; background: linear-gradient(180deg, #0b0c10 0%, #1f2833 100%); border-radius: 30% 30% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: si-nemo-breathe 6s ease-in-out infinite; }
.scn-nemo-lets-them-come .deck-floor { position: absolute; bottom: 0; left: 0; right: 0; height: 15%; background: linear-gradient(180deg, #0b0c10 0%, #1f2833 100%); }
.scn-nemo-lets-them-come .warm-glare { position: absolute; top: 0; left: 30%; width: 40%; height: 60%; background: radial-gradient(ellipse, rgba(241,196,15,0.15) 0%, transparent 70%); animation: si-nemo-glare 10s ease-in-out infinite alternate; }
@keyframes si-nemo-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes si-nemo-sea { 0% { transform: translateY(0) scale(1); border-radius: 30% 70% 0 0 / 50% 50% 0 0; } 50% { transform: translateY(-5px) scale(1.02); border-radius: 40% 60% 0 0 / 60% 40% 0 0; } 100% { transform: translateY(0) scale(1); border-radius: 30% 70% 0 0 / 50% 50% 0 0; } }
@keyframes si-nemo-boats { 0% { transform: translateX(-10%); } 50% { transform: translateX(5%); } 100% { transform: translateX(-10%); } }
@keyframes si-nemo-breathe { 0% { transform: scale(1) translateY(0); } 50% { transform: scale(1.005) translateY(-2px); } 100% { transform: scale(1) translateY(0); } }
@keyframes si-nemo-glare { 0% { opacity: 0.2; transform: scale(0.95); } 50% { opacity: 0.5; transform: scale(1.05); } 100% { opacity: 0.3; transform: scale(0.98); } }

.scn-lava-flow-underwater {
  background: linear-gradient(180deg, #0b1a30 0%, #061020 70%), radial-gradient(ellipse at 50% 100%, #c8553d 0%, #7a2a1a 40%, transparent 70%);
}
.scn-lava-flow-underwater .depth-gradient {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #0a2a3a 0%, transparent 100%);
  animation: lfu-deep 12s ease-in-out infinite alternate;
}
.scn-lava-flow-underwater .crater {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 30%;
  background: radial-gradient(ellipse at 50% 20%, #2a1a0a 0%, #0a1a20 70%);
  border-radius: 50%; transform-origin: bottom center;
  animation: lfu-crater 8s ease-in-out infinite;
}
.scn-lava-flow-underwater .lava-flow {
  position: absolute; bottom: 12%; left: 5%; right: 5%; height: 8%;
  background: linear-gradient(90deg, #e07a3a 0%, #c8553d 50%, #d48a3a 100%);
  border-radius: 30%; filter: blur(3px);
  animation: lfu-flow 9s ease-in-out infinite alternate;
}
.scn-lava-flow-underwater .glow-core {
  position: absolute; bottom: 15%; left: 50%; width: 40px; height: 40px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #ffa050 0%, #d46a30 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px #d46a30, 0 0 60px 20px rgba(212,106,48,0.4);
  animation: lfu-glow 4s ease-in-out infinite alternate;
}
.scn-lava-flow-underwater .bubble {
  position: absolute; bottom: 20%; width: 8px; height: 8px;
  background: rgba(180,180,200,0.3); border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(180,180,200,0.2);
  animation: lfu-rise 5s ease-in-out infinite;
}
.scn-lava-flow-underwater .b1 { left: 20%; animation-delay: 0s; width: 10px; height: 10px; }
.scn-lava-flow-underwater .b2 { left: 45%; animation-delay: 1.8s; width: 6px; height: 6px; }
.scn-lava-flow-underwater .b3 { left: 70%; animation-delay: 3.2s; width: 9px; height: 9px; }

@keyframes lfu-deep  { 0% { opacity:0.6 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes lfu-crater { 0% { transform: scaleY(1) } 50% { transform: scaleY(0.95) } 100% { transform: scaleY(1) } }
@keyframes lfu-flow { 0% { transform: translateX(0) scaleX(1) } 50% { transform: translateX(8%) scaleX(1.1) } 100% { transform: translateX(-4%) scaleX(0.9) } }
@keyframes lfu-glow { 0% { opacity:0.8; transform: translateX(-50%) scale(0.9) } 50% { opacity:1; transform: translateX(-50%) scale(1.1) } 100% { opacity:0.85; transform: translateX(-50%) scale(0.95) } }
@keyframes lfu-rise { 0% { transform: translateY(0) rotate(0deg); opacity:0.3 } 50% { transform: translateY(-25px) rotate(180deg); opacity:0.7 } 100% { transform: translateY(-50px) rotate(360deg); opacity:0 } }

/* Scene 2: nemo-writes-atlantis */
.scn-nemo-writes-atlantis {
  background: linear-gradient(180deg, #1a0e04 0%, #2a1a0a 40%, #3a1e0a 100%), radial-gradient(ellipse at 50% 30%, #c8683a 0%, #4a2a1a 50%, transparent 80%);
}
.scn-nemo-writes-atlantis .cave-wall {
  position: absolute; inset: 0 30% 0 0;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e04 100%);
  border-radius: 0 40% 0 0;
  box-shadow: inset -8px 0 20px rgba(0,0,0,0.6);
  animation: nem-wall 15s ease-in-out infinite alternate;
}
.scn-nemo-writes-atlantis .figure-writer {
  position: absolute; bottom: 20%; left: 20%; width: 28px; height: 50px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0e0602 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: nem-write 4s ease-in-out infinite;
}
.scn-nemo-writes-atlantis .copper-sphere {
  position: absolute; bottom: 45%; left: 25%; width: 30px; height: 30px;
  background: radial-gradient(circle at 35% 35%, #d49a5a 0%, #a06a3a 60%, #6a3a1a 100%);
  border-radius: 50%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.5), inset 0 -4px 8px rgba(0,0,0,0.3);
  animation: nem-sphere 8s ease-in-out infinite alternate;
}
.scn-nemo-writes-atlantis .chalk-mark {
  position: absolute; bottom: 30%; left: 22%; width: 40px; height: 2px;
  background: linear-gradient(90deg, #f0e8d0 0%, #d0c0a0 100%);
  border-radius: 1px;
  transform-origin: left center;
  animation: nem-chalk 6s ease-in-out infinite alternate;
}
.scn-nemo-writes-atlantis .lantern {
  position: absolute; bottom: 50%; left: 10%; width: 12px; height: 16px;
  background: radial-gradient(circle at 50% 50%, #ffc860 0%, #d48a30 70%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 24px 6px #d48a30, 0 0 48px 12px rgba(212,138,48,0.4);
  animation: nem-lantern 3s ease-in-out infinite alternate;
}
.scn-nemo-writes-atlantis .basalt-rock {
  position: absolute; bottom: 0; left: 5%; right: 50%; height: 25%;
  background: linear-gradient(135deg, #1a0e04 0%, #2a1a0a 50%, #0e0602 100%);
  border-radius: 40% 20% 0 0 / 60% 30% 0 0;
  transform: skewX(-5deg);
  box-shadow: 0 -6px 12px rgba(0,0,0,0.5);
}

@keyframes nem-wall { 0% { opacity:0.7 } 50% { opacity:0.85 } 100% { opacity:0.7 } }
@keyframes nem-write { 0% { transform: rotate(0deg) translateY(0) } 25% { transform: rotate(8deg) translateY(-1px) } 50% { transform: rotate(0deg) translateY(0) } 75% { transform: rotate(-6deg) translateY(-1px) } 100% { transform: rotate(0deg) translateY(0) } }
@keyframes nem-sphere { 0% { box-shadow: 0 4px 12px rgba(0,0,0,0.5); transform: translateY(0) } 50% { box-shadow: 0 8px 18px rgba(0,0,0,0.7); transform: translateY(-3px) } 100% { box-shadow: 0 2px 8px rgba(0,0,0,0.4); transform: translateY(0) } }
@keyframes nem-chalk { 0% { transform: scaleX(0.2); opacity:0.3 } 50% { transform: scaleX(1); opacity:0.9 } 100% { transform: scaleX(0.6); opacity:0.6 } }
@keyframes nem-lantern { 0% { box-shadow: 0 0 20px 4px #d48a30, 0 0 40px 8px rgba(212,138,48,0.3); transform: scale(1) } 50% { box-shadow: 0 0 30px 8px #ffc860, 0 0 60px 16px rgba(255,200,96,0.5); transform: scale(1.1) } 100% { box-shadow: 0 0 20px 4px #d48a30, 0 0 40px 8px rgba(212,138,48,0.3); transform: scale(0.95) } }

/* Scene 3: plato-and-solon-story */
.scn-plato-and-solon-story {
  background: linear-gradient(180deg, #d4c3a3 0%, #a0825a 30%, #4a3a2a 100%), radial-gradient(ellipse at 50% 0%, #c8683a 0%, #6a4a2a 50%, transparent 80%);
}
.scn-plato-and-solon-story .temple-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #b8a07a 0%, #8a6a4a 100%);
  border-radius: 0 0 20% 20%;
  box-shadow: inset 0 10px 40px rgba(0,0,0,0.2);
  animation: pla-wall 20s ease-in-out infinite alternate;
}
.scn-plato-and-solon-story .column {
  position: absolute; bottom: 25%; width: 18px;
  background: linear-gradient(180deg, #e0d0b0 0%, #b8a07a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
}
.scn-plato-and-solon-story .left { left: 12%; height: 90px; animation: pla-col 6s ease-in-out infinite; }
.scn-plato-and-solon-story .right { right: 12%; height: 90px; animation: pla-col 6s ease-in-out infinite reverse; }
.scn-plato-and-solon-story .fire-pit {
  position: absolute; bottom: 8%; left: 50%; width: 40px; height: 30px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 70%, #ffa040 0%, #c8683a 60%, #6a2a0a 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 30px 10px rgba(200,104,58,0.5);
  animation: pla-fire 4s ease-in-out infinite alternate;
}
.scn-plato-and-solon-story .figure-plato {
  position: absolute; bottom: 20%; left: 30%; width: 24px; height: 45px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e04 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 20% 20%;
  transform-origin: bottom center;
  animation: pla-figure 5s ease-in-out infinite;
}
.scn-plato-and-solon-story .figure-solon {
  position: absolute; bottom: 20%; right: 30%; width: 26px; height: 50px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 45% 45% 30% 30% / 55% 55% 20% 20%;
  transform-origin: bottom center;
  animation: pla-figure 5s ease-in-out infinite reverse;
}
.scn-plato-and-solon-story .scroll {
  position: absolute; bottom: 18%; left: 43%; width: 30px; height: 4px;
  background: linear-gradient(90deg, #f0e8d0 0%, #d4c3a3 100%);
  border-radius: 4px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
  transform-origin: left center;
  animation: pla-scroll 8s ease-in-out infinite alternate;
}

@keyframes pla-wall { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes pla-col { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes pla-fire { 0% { transform: translateX(-50%) scale(0.95); opacity:0.8 } 50% { transform: translateX(-50%) scale(1.1); opacity:1 } 100% { transform: translateX(-50%) scale(0.9); opacity:0.85 } }
@keyframes pla-figure { 0% { transform: rotate(0deg) } 25% { transform: rotate(3deg) } 50% { transform: rotate(0deg) } 75% { transform: rotate(-3deg) } 100% { transform: rotate(0deg) } }
@keyframes pla-scroll { 0% { transform: scaleX(0.3); opacity:0.5 } 50% { transform: scaleX(1); opacity:1 } 100% { transform: scaleX(0.7); opacity:0.8 } }

/* Scene 4: walking-on-ancient-ruins */
.scn-walking-on-ancient-ruins {
  background: linear-gradient(180deg, #1a0a0a 0%, #0e0505 100%), radial-gradient(ellipse at 50% 0%, #d48a3a 0%, #6a2a0a 40%, transparent 70%);
}
.scn-walking-on-ancient-ruins .night-sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #1a0a0a 0%, #2a1a0a 100%);
  animation: wal-sky 30s ease-in-out infinite alternate;
}
.scn-walking-on-ancient-ruins .ruins-step {
  position: absolute; bottom: 5%; left: 10%; right: 10%; height: 30%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.5);
  clip-path: polygon(0% 0%, 100% 0%, 90% 100%, 10% 100%);
  animation: wal-step 8s ease-in-out infinite;
}
.scn-walking-on-ancient-ruins .broken-column {
  position: absolute; bottom: 25%; left: 70%; width: 20px; height: 60px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 6px;
  transform: skewX(10deg) rotate(5deg);
  box-shadow: 2px 0 6px rgba(0,0,0,0.4);
  animation: wal-column 12s ease-in-out infinite alternate;
}
.scn-walking-on-ancient-ruins .figure-walker {
  position: absolute; bottom: 12%; left: 20%; width: 22px; height: 44px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0e0602 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%;
  transform-origin: bottom center;
  animation: wal-walk 5s ease-in-out infinite;
}
.scn-walking-on-ancient-ruins .torch {
  position: absolute; bottom: 30%; left: 18%; width: 8px; height: 12px;
  background: radial-gradient(circle at 50% 70%, #ffc860 0%, #d48a30 60%, transparent 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 20px 6px #d48a30, 0 0 40px 12px rgba(212,138,48,0.3);
  animation: wal-torch 3s ease-in-out infinite alternate;
}
.scn-walking-on-ancient-ruins .distant-ruin {
  position: absolute; bottom: 35%; right: 10%; width: 40px; height: 30px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e04 100%);
  border-radius: 10% 10% 0 0;
  transform: scale(0.7);
  opacity: 0.6;
  filter: blur(2px);
  animation: wal-distant 25s ease-in-out infinite alternate;
}

@keyframes wal-sky { 0% { opacity:0.6 } 50% { opacity:0.9 } 100% { opacity:0.7 } }
@keyframes wal-step { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes wal-column { 0% { transform: skewX(10deg) rotate(5deg) translateY(0) } 50% { transform: skewX(8deg) rotate(3deg) translateY(-3px) } 100% { transform: skewX(12deg) rotate(6deg) translateY(0) } }
@keyframes wal-walk { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(15px) rotate(3deg) translateY(-2px) } 50% { transform: translateX(30px) rotate(0deg) translateY(0) } 75% { transform: translateX(45px) rotate(-3deg) translateY(-2px) } 100% { transform: translateX(60px) rotate(0deg) translateY(0) } }
@keyframes wal-torch { 0% { transform: scale(1) rotate(-5deg); box-shadow: 0 0 18px 4px #d48a30 } 50% { transform: scale(1.2) rotate(5deg); box-shadow: 0 0 28px 8px #ffc860 } 100% { transform: scale(0.95) rotate(-2deg); box-shadow: 0 0 18px 4px #d48a30 } }
@keyframes wal-distant { 0% { opacity:0.4 } 50% { opacity:0.7 } 100% { opacity:0.5 } }

/* work-observed */
.scn-work-observed {
  background: linear-gradient(180deg, #2a6b7a 0%, #0b2b3a 40%, #041220 100%),
              radial-gradient(ellipse at 30% 20%, #ffecb0 0%, transparent 60%);
}
.scn-work-observed .wo-water     { position:absolute; inset:0; background:radial-gradient(ellipse at 50% 0%, transparent 0%, #041220 80%); animation:wo-shimmer 12s ease-in-out infinite alternate; }
.scn-work-observed .wo-sunrays   { position:absolute; inset:0; background:linear-gradient(135deg, rgba(255,240,200,0.15) 0%, transparent 30%, transparent 70%, rgba(255,240,200,0.1) 100%); animation:wo-sunray 8s ease-in-out infinite; }
.scn-work-observed .wo-rock      { position:absolute; bottom:10%; left:5%; width:30%; height:35%; background:linear-gradient(135deg, #4a4030 0%, #2a2010 100%); border-radius:60% 40% 40% 60% / 50% 30% 70% 50%; box-shadow:inset 0 10px 20px rgba(0,0,0,0.5); animation:wo-rock-bob 20s ease-in-out infinite alternate; }
.scn-work-observed .wo-oysters   { position:absolute; bottom:10%; left:40%; width:20%; height:10%; background:radial-gradient(circle at 20% 30%, #c8b090 0%, transparent 8%), radial-gradient(circle at 70% 40%, #c8b090 0%, transparent 6%), radial-gradient(circle at 45% 60%, #c8b090 0%, transparent 10%); background-size:20% 20%; background-position:0 0, 10px 0, -5px -5px; animation:wo-oyster-glow 6s ease-in-out infinite alternate; }
.scn-work-observed .wo-diver     { position:absolute; bottom:25%; left:35%; width:24px; height:40px; background:linear-gradient(180deg, #1a2028 0%, #0A1018 100%); border-radius:45% 45% 40% 40% / 55% 55% 45% 45%; transform-origin:50% 80%; animation:wo-diver 4s ease-in-out infinite; }
.scn-work-observed .wo-bubbles   { position:absolute; bottom:20%; left:38%; width:60px; height:80px; background:radial-gradient(circle 3px at 30% 70%, rgba(255,255,255,0.6) 0%, transparent 100%), radial-gradient(circle 2px at 60% 60%, rgba(255,255,255,0.5) 0%, transparent 100%), radial-gradient(circle 2px at 45% 85%, rgba(255,255,255,0.4) 0%, transparent 100%); background-size:100% 100%; animation:wo-bubbles-rise 3s ease-in-out infinite; }
.scn-work-observed .wo-seaweed   { position:absolute; bottom:10%; left:15%; width:15%; height:30%; background:linear-gradient(180deg, #2a4a2a 0%, #1a2a1a 100%); border-radius:50% 50% 0 0; transform-origin:50% 100%; animation:wo-seaweed 5s ease-in-out infinite alternate; }
@keyframes wo-shimmer   { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes wo-sunray    { 0% { transform:rotate(0deg) scale(1); opacity:0.3 } 50% { transform:rotate(5deg) scale(1.1); opacity:0.6 } 100% { transform:rotate(0deg) scale(1); opacity:0.3 } }
@keyframes wo-rock-bob  { 0% { transform:translateY(0) } 50% { transform:translateY(-3px) } 100% { transform:translateY(0) } }
@keyframes wo-oyster-glow { 0% { filter:brightness(1) } 50% { filter:brightness(1.2) } 100% { filter:brightness(0.9) } }
@keyframes wo-diver     { 0% { transform:translateX(0) translateY(0) rotate(0deg) } 25% { transform:translateX(6px) translateY(-1px) rotate(3deg) } 50% { transform:translateX(12px) translateY(0) rotate(-2deg) } 75% { transform:translateX(18px) translateY(-1px) rotate(1deg) } 100% { transform:translateX(24px) translateY(0) rotate(0deg) } }
@keyframes wo-bubbles-rise { 0% { transform:translateY(0) scale(1) } 50% { transform:translateY(-20px) scale(0.8) } 100% { transform:translateY(-40px) scale(0.6) opacity:0 } }
@keyframes wo-seaweed   { 0% { transform:rotate(-5deg) } 50% { transform:rotate(5deg) } 100% { transform:rotate(-5deg) } }

/* shark-attack */
.scn-shark-attack {
  background: linear-gradient(180deg, #0a1a2a 0%, #04101a 40%, #000810 100%),
              radial-gradient(ellipse at 40% 10%, #fffbe0 0%, transparent 50%);
}
.scn-shark-attack .sa-deep      { position:absolute; inset:0; background:radial-gradient(ellipse at 50% 0%, transparent 0%, #000810 70%); animation:sa-pulse 10s ease-in-out infinite alternate; }
.scn-shark-attack .sa-sunrays   { position:absolute; inset:0; background:linear-gradient(160deg, rgba(255,250,200,0.2) 0%, transparent 35%, transparent 65%, rgba(255,250,200,0.1) 100%); animation:sa-sunray 8s ease-in-out infinite; }
.scn-shark-attack .sa-shark-body{ position:absolute; bottom:30%; left:10%; width:55%; height:20%; background:linear-gradient(180deg, #2a3a4a 0%, #18242e 100%); border-radius:40% 60% 60% 40% / 50% 40% 40% 50%; box-shadow:0 15px 30px rgba(0,0,0,0.6); animation:sa-shark 2s ease-in-out infinite; }
.scn-shark-attack .sa-shark-fin { position:absolute; bottom:44%; left:15%; width:8%; height:18%; background:linear-gradient(180deg, #24303a 0%, #18242e 100%); border-radius:80% 80% 0 0; transform-origin:50% 100%; animation:sa-shark 2s ease-in-out infinite; }
.scn-shark-attack .sa-diver     { position:absolute; bottom:35%; right:20%; width:20px; height:36px; background:linear-gradient(180deg, #1a1a28 0%, #0a0a18 100%); border-radius:50% 50% 40% 40% / 55% 55% 45% 45%; animation:sa-diver-flee 1.5s ease-in-out infinite; }
.scn-shark-attack .sa-bubbles   { position:absolute; bottom:40%; right:25%; width:40px; height:60px; background:radial-gradient(circle 2px at 30% 50%, rgba(255,255,255,0.6) 0%, transparent 100%), radial-gradient(circle 2px at 70% 40%, rgba(255,255,255,0.5) 0%, transparent 100%), radial-gradient(circle 1px at 50% 70%, rgba(255,255,255,0.4) 0%, transparent 100%); animation:sa-bubbles 0.8s ease-out infinite; }
.scn-shark-attack .sa-shadow    { position:absolute; bottom:25%; left:12%; width:60%; height:15%; background:radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.4) 0%, transparent 80%); animation:sa-shadow-sway 3s ease-in-out infinite alternate; }
@keyframes sa-pulse       { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes sa-sunray      { 0% { transform:rotate(0deg) scale(1); opacity:0.15 } 50% { transform:rotate(8deg) scale(1.2); opacity:0.3 } 100% { transform:rotate(0deg) scale(1); opacity:0.15 } }
@keyframes sa-shark       { 0% { transform:translateX(0) rotate(0deg) } 25% { transform:translateX(10px) rotate(2deg) } 50% { transform:translateX(20px) rotate(0deg) } 75% { transform:translateX(10px) rotate(-2deg) } 100% { transform:translateX(0) rotate(0deg) } }
@keyframes sa-diver-flee  { 0% { transform:translateX(0) translateY(0) rotate(0deg) } 25% { transform:translateX(-8px) translateY(2px) rotate(-5deg) } 50% { transform:translateX(-16px) translateY(0) rotate(0deg) } 75% { transform:translateX(-8px) translateY(-2px) rotate(5deg) } 100% { transform:translateX(0) translateY(0) rotate(0deg) } }
@keyframes sa-bubbles     { 0% { transform:translateY(0) scale(1) } 100% { transform:translateY(-30px) scale(0.5) opacity:0 } }
@keyframes sa-shadow-sway { 0% { transform:scaleX(1) } 50% { transform:scaleX(1.2) } 100% { transform:scaleX(1) } }

/* nemo-fights-shark */
.scn-nemo-fights-shark {
  background: linear-gradient(180deg, #1a5a6a 0%, #0a2a3a 40%, #03101a 100%),
              radial-gradient(ellipse at 60% 20%, #fff8c0 0%, transparent 50%);
}
.scn-nemo-fights-shark .nfs-water     { position:absolute; inset:0; background:radial-gradient(ellipse at 50% 0%, transparent 0%, #03101a 70%); animation:nfs-shimmer 15s ease-in-out infinite alternate; }
.scn-nemo-fights-shark .nfs-sunbeams  { position:absolute; inset:0; background:linear-gradient(145deg, rgba(255,250,200,0.2) 0%, transparent 30%, transparent 70%, rgba(255,250,200,0.15) 100%); animation:nfs-sunray 7s ease-in-out infinite; }
.scn-nemo-fights-shark .nfs-shark-body{ position:absolute; bottom:25%; left:15%; width:50%; height:22%; background:linear-gradient(180deg, #2a3a4a 0%, #14202a 100%); border-radius:40% 60% 60% 40% / 50% 40% 40% 50%; box-shadow:0 20px 40px rgba(0,0,0,0.7); animation:nfs-shark-lunge 2.5s ease-in-out infinite; }
.scn-nemo-fights-shark .nfs-shark-jaw { position:absolute; bottom:30%; left:45%; width:20%; height:10%; background:linear-gradient(180deg, #2a3a4a 0%, #1a2630 100%); border-radius:20% 20% 50% 50%; transform-origin:80% 50%; animation:nfs-jaw 0.6s ease-in-out infinite alternate; }
.scn-nemo-fights-shark .nfs-nemo      { position:absolute; bottom:30%; left:38%; width:22px; height:42px; background:linear-gradient(180deg, #1a1a28 0%, #0a0a18 100%); border-radius:45% 45% 40% 40% / 55% 55% 45% 45%; transform-origin:50% 80%; animation:nfs-nemo-stab 1s ease-in-out infinite; }
.scn-nemo-fights-shark .nfs-coral     { position:absolute; bottom:5%; right:5%; width:25%; height:30%; background:radial-gradient(circle at 30% 30%, #d4a060 0%, #8a6030 40%, transparent 60%), radial-gradient(circle at 70% 50%, #b08040 0%, #6a4020 40%, transparent 60%); background-size:100% 100%; border-radius:30% 50% 20% 40%; animation:nfs-coral-sway 4s ease-in-out infinite alternate; }
.scn-nemo-fights-shark .nfs-bubbles   { position:absolute; bottom:25%; left:42%; width:50px; height:70px; background:radial-gradient(circle 2px at 30% 60%, rgba(255,255,255,0.7) 0%, transparent 100%), radial-gradient(circle 2px at 70% 50%, rgba(255,255,255,0.5) 0%, transparent 100%), radial-gradient(circle 1px at 40% 80%, rgba(255,255,255,0.4) 0%, transparent 100%); animation:nfs-bubbles 2s ease-in-out infinite; }
@keyframes nfs-shimmer   { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes nfs-sunray    { 0% { transform:rotate(0deg) scale(1); opacity:0.2 } 50% { transform:rotate(6deg) scale(1.1); opacity:0.5 } 100% { transform:rotate(0deg) scale(1); opacity:0.2 } }
@keyframes nfs-shark-lunge { 0% { transform:translateX(0) translateY(0) rotate(0deg) } 25% { transform:translateX(-20px) translateY(-5px) rotate(-2deg) } 50% { transform:translateX(-40px) translateY(0) rotate(0deg) } 75% { transform:translateX(-20px) translateY(5px) rotate(2deg) } 100% { transform:translateX(0) translateY(0) rotate(0deg) } }
@keyframes nfs-jaw       { 0% { transform:rotate(-15deg) } 50% { transform:rotate(10deg) } 100% { transform:rotate(-15deg) } }
@keyframes nfs-nemo-stab { 0% { transform:translateX(0) translateY(0) rotate(0deg) } 20% { transform:translateX(8px) translateY(-3px) rotate(10deg) } 40% { transform:translateX(16px) translateY(0) rotate(0deg) } 60% { transform:translateX(8px) translateY(3px) rotate(-10deg) } 80% { transform:translateX(0) translateY(0) rotate(0deg) } 100% { transform:translateX(0) translateY(0) rotate(0deg) } }
@keyframes nfs-coral-sway { 0% { transform:rotate(-3deg) } 50% { transform:rotate(3deg) } 100% { transform:rotate(-3deg) } }
@keyframes nfs-bubbles   { 0% { transform:translateY(0) scale(1); opacity:0.8 } 50% { transform:translateY(-15px) scale(0.9); opacity:0.5 } 100% { transform:translateY(-30px) scale(0.7); opacity:0 } }

/* nemo-clings-to-fin */
.scn-nemo-clings-to-fin {
  background: linear-gradient(180deg, #1a5a6a 0%, #0a2a3a 40%, #03101a 100%),
              radial-gradient(ellipse at 50% 25%, #fff8c0 0%, transparent 60%);
}
.scn-nemo-clings-to-fin .ncf-water     { position:absolute; inset:0; background:radial-gradient(ellipse at 50% 0%, transparent 0%, #03101a 70%); animation:ncf-shimmer 12s ease-in-out infinite alternate; }
.scn-nemo-clings-to-fin .ncf-sunrays   { position:absolute; inset:0; background:linear-gradient(170deg, rgba(255,250,200,0.2) 0%, transparent 35%, transparent 65%, rgba(255,250,200,0.1) 100%); animation:ncf-sunray 8s ease-in-out infinite; }
.scn-nemo-clings-to-fin .ncf-shark-fin { position:absolute; bottom:30%; left:40%; width:20%; height:40%; background:linear-gradient(180deg, #2a3a4a 0%, #14202a 100%); border-radius:80% 80% 20% 20% / 60% 60% 40% 40%; box-shadow:0 20px 40px rgba(0,0,0,0.6); animation:ncf-fin-sway 3s ease-in-out infinite alternate; }
.scn-nemo-clings-to-fin .ncf-nemo      { position:absolute; bottom:45%; left:42%; width:22px; height:38px; background:linear-gradient(180deg, #1a1a28 0%, #0a0a18 100%); border-radius:45% 45% 40% 40% / 55% 55% 45% 45%; transform-origin:50% 100%; animation:ncf-nemo-cling 1.8s ease-in-out infinite; }
.scn-nemo-clings-to-fin .ncf-knife     { position:absolute; bottom:48%; left:46%; width:4px; height:12px; background:linear-gradient(180deg, #d0d0d0 0%, #808080 100%); border-radius:10%; box-shadow:0 0 6px 2px rgba(255,255,255,0.5); animation:ncf-knife-glint 0.5s ease-in-out infinite alternate; }
.scn-nemo-clings-to-fin .ncf-bubbles   { position:absolute; bottom:35%; left:50%; width:50px; height:60px; background:radial-gradient(circle 2px at 20% 40%, rgba(255,255,255,0.6) 0%, transparent 100%), radial-gradient(circle 2px at 60% 30%, rgba(255,255,255,0.5) 0%, transparent 100%), radial-gradient(circle 1px at 40% 60%, rgba(255,255,255,0.4) 0%, transparent 100%); animation:ncf-bubbles 2s ease-in-out infinite; }
@keyframes ncf-shimmer   { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes ncf-sunray    { 0% { transform:rotate(0deg) scale(1); opacity:0.2 } 50% { transform:rotate(7deg) scale(1.1); opacity:0.4 } 100% { transform:rotate(0deg) scale(1); opacity:0.2 } }
@keyframes ncf-fin-sway  { 0% { transform:rotate(-5deg) translateX(0) } 50% { transform:rotate(5deg) translateX(5px) } 100% { transform:rotate(-5deg) translateX(0) } }
@keyframes ncf-nemo-cling { 0% { transform:translateX(0) translateY(0) rotate(0deg) } 25% { transform:translateX(3px) translateY(-2px) rotate(5deg) } 50% { transform:translateX(6px) translateY(0) rotate(0deg) } 75% { transform:translateX(3px) translateY(2px) rotate(-5deg) } 100% { transform:translateX(0) translateY(0) rotate(0deg) } }
@keyframes ncf-knife-glint { 0% { opacity:0.3 } 50% { opacity:1 } 100% { opacity:0.3 } }
@keyframes ncf-bubbles   { 0% { transform:translateY(0) scale(1); opacity:0.8 } 50% { transform:translateY(-10px) scale(0.9); opacity:0.5 } 100% { transform:translateY(-20px) scale(0.7); opacity:0 } }

.scn-nemo-grows-pearl {
  background: linear-gradient(180deg, #0a192f 0%, #112240 40%, #1a365d 100%), radial-gradient(ellipse at 50% 80%, #234e52 0%, transparent 80%);
  position: relative;
  overflow: hidden;
}
.scn-nemo-grows-pearl .cave-bg { position: absolute; inset: 0; background: radial-gradient(ellipse at 50% 60%, #1a365d 0%, #0a192f 80%); animation: ngp-ambient 20s ease-in-out infinite alternate; }
.scn-nemo-grows-pearl .clam-shell-b { position: absolute; bottom: 10%; left: 50%; width: 60%; height: 50%; transform: translateX(-50%); background: radial-gradient(ellipse at 50% 100%, #2d3748 0%, #1a202c 100%); border-radius: 50% 50% 0 0 / 80% 80% 0 0; box-shadow: inset 0 20px 40px rgba(0,0,0,.5); }
.scn-nemo-grows-pearl .clam-shell-f { position: absolute; bottom: 10%; left: 50%; width: 65%; height: 30%; transform: translateX(-50%); background: linear-gradient(180deg, #4a5568 0%, #2d3748 100%); border-radius: 50% 50% 20% 20% / 100% 100% 40% 40%; box-shadow: 0 -10px 30px rgba(0,0,0,.4); animation: ngp-breathe 8s ease-in-out infinite; transform-origin: bottom center; }
.scn-nemo-grows-pearl .pearl-glow { position: absolute; bottom: 32%; left: 50%; width: 40px; height: 40px; transform: translate(-50%, 50%); background: radial-gradient(circle, #fefcbf 0%, #f6e05e 30%, transparent 70%); border-radius: 50%; box-shadow: 0 0 30px 10px #f6e05e, 0 0 60px 20px rgba(246,224,94,.4); animation: ngp-shine 4s ease-in-out infinite alternate; }
.scn-nemo-grows-pearl .nemo-hand { position: absolute; bottom: 25%; left: 35%; width: 40px; height: 60px; background: radial-gradient(ellipse at 50% 0%, #2d3748 0%, #0a192f 100%); border-radius: 40% 40% 60% 60% / 60% 60% 40% 40%; transform: rotate(-15deg); transform-origin: 80% 80%; animation: ngp-reach 12s ease-in-out infinite; }
.scn-nemo-grows-pearl .rock-ledge { position: absolute; bottom: 0; left: 0; right: 0; height: 12%; background: linear-gradient(180deg, #1a202c 0%, #0a192f 100%); border-radius: 60% 40% 0 0 / 100% 80% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.6); }

@keyframes ngp-ambient { 0% { opacity: .8; } 50% { opacity: 1; } 100% { opacity: .85; } }
@keyframes ngp-breathe { 0% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(1.03); } 100% { transform: translateX(-50%) scaleY(1); } }
@keyframes ngp-shine { 0% { box-shadow: 0 0 20px 5px #f6e05e, 0 0 40px 10px rgba(246,224,94,.3); opacity: .8; } 50% { box-shadow: 0 0 40px 15px #fefcbf, 0 0 80px 30px rgba(246,224,94,.5); opacity: 1; } 100% { box-shadow: 0 0 25px 8px #f6e05e, 0 0 50px 15px rgba(246,224,94,.35); opacity: .85; } }
@keyframes ngp-reach { 0% { transform: rotate(-15deg) translate(0, 0); } 50% { transform: rotate(-5deg) translate(5px, -10px); } 100% { transform: rotate(-15deg) translate(0, 0); } }

.scn-leaving-cave {
  background: linear-gradient(180deg, #b2f5ea 0%, #4fd1c5 40%, #234e52 100%), radial-gradient(ellipse at 50% 0%, #e6fffa 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-leaving-cave .water-col { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(182,245,234,.2) 0%, rgba(79,209,197,.4) 100%); }
.scn-leaving-cave .sun-rays { position: absolute; top: -10%; left: -10%; width: 120%; height: 120%; background: repeating-linear-gradient(135deg, rgba(255,255,255,.3) 0px, rgba(255,255,255,.1) 20px, transparent 40px); mix-blend-mode: overlay; animation: lvc-rays 15s linear infinite; }
.scn-leaving-cave .sand-flat { position: absolute; bottom: 0; left: 0; right: 0; height: 25%; background: linear-gradient(180deg, #e6fffa 0%, #b2f5ea 100%); border-radius: 70% 30% 0 0 / 100% 40% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,.2); }
.scn-leaving-cave .fig-nemo { position: absolute; bottom: 15%; left: 30%; width: 20px; height: 40px; background: radial-gradient(ellipse at 50% 30%, #234e52 0%, #1a365d 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: lvc-walk 6s ease-in-out infinite; }
.scn-leaving-cave .fig-arn { position: absolute; bottom: 16%; left: 45%; width: 18px; height: 38px; background: radial-gradient(ellipse at 50% 30%, #2c5282 0%, #1a365d 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: lvc-walk 6s ease-in-out infinite reverse; }
.scn-leaving-cave .bubble-a { position: absolute; bottom: 20%; left: 25%; width: 8px; height: 8px; background: radial-gradient(circle, #e6fffa 0%, transparent 80%); border-radius: 50%; filter: blur(1px); animation: lvc-float 8s ease-in-out infinite; }
.scn-leaving-cave .bubble-b { position: absolute; bottom: 30%; right: 30%; width: 6px; height: 6px; background: radial-gradient(circle, #e6fffa 0%, transparent 80%); border-radius: 50%; filter: blur(1px); animation: lvc-float 11s ease-in-out infinite; animation-delay: -4s; }

@keyframes lvc-rays { 0% { transform: translateX(-10%) rotate(0deg); opacity: .5; } 50% { transform: translateX(10%) rotate(2deg); opacity: .8; } 100% { transform: translateX(-10%) rotate(0deg); opacity: .5; } }
@keyframes lvc-walk { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 25% { transform: translateX(8px) translateY(-2px) rotate(2deg); } 50% { transform: translateX(16px) translateY(0) rotate(-1deg); } 75% { transform: translateX(8px) translateY(-1px) rotate(1deg); } 100% { transform: translateX(0) translateY(0) rotate(-2deg); } }
@keyframes lvc-float { 0% { transform: translateY(0) scale(1); opacity: .7; } 50% { transform: translateY(-60px) scale(1.5); opacity: 1; } 100% { transform: translateY(-120px) scale(0.8); opacity: 0; } }

.scn-diver-appears {
  background: linear-gradient(180deg, #fefcbf 0%, #81e6d9 40%, #1a365d 100%), linear-gradient(90deg, #2b6cb0 0%, transparent 50%, #2b6cb0 100%);
  position: relative;
  overflow: hidden;
}
.scn-diver-appears .abyss-bg { position: absolute; inset: 0; background: radial-gradient(ellipse at 50% 100%, #1a365d 0%, transparent 70%); }
.scn-diver-appears .reef-sky { position: absolute; top: 0; left: 0; right: 0; height: 50%; background: linear-gradient(180deg, #fefcbf 0%, #81e6d9 100%); clip-path: polygon(0 0, 100% 0, 100% 100%, 0 85%); filter: blur(2px); animation: dap-shimmer 8s ease-in-out infinite alternate; }
.scn-diver-appears .crevice-l { position: absolute; top: 10%; left: 0; width: 25%; height: 90%; background: linear-gradient(90deg, #1a202c 0%, #2d3748 100%); border-radius: 0 60% 80% 0 / 0 80% 60% 0; box-shadow: 10px 0 30px rgba(0,0,0,.6); z-index: 2; animation: dap-crevice 12s ease-in-out infinite; }
.scn-diver-appears .crevice-r { position: absolute; top: 5%; right: 0; width: 30%; height: 95%; background: linear-gradient(270deg, #1a202c 0%, #2d3748 100%); border-radius: 60% 0 0 80% / 80% 0 0 60%; box-shadow: -10px 0 30px rgba(0,0,0,.6); z-index: 2; animation: dap-crevice 15s ease-in-out infinite reverse; }
.scn-diver-appears .diver-dist { position: absolute; bottom: 30%; left: 50%; width: 16px; height: 30px; transform: translateX(-50%); background: #000; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 0 20px 5px rgba(255,255,255,.4); z-index: 3; animation: dap-appear 6s ease-in-out infinite; }
.scn-diver-appears .shadow-vign { position: absolute; inset: 0; background: radial-gradient(ellipse at 50% 50%, transparent 40%, rgba(10,25,47,.8) 100%); z-index: 4; pointer-events: none; }

@keyframes dap-shimmer { 0% { transform: translateY(0) skewX(0deg); opacity: .8; } 50% { transform: translateY(-5px) skewX(2deg); opacity: 1; } 100% { transform: translateY(3px) skewX(-1deg); opacity: .85; } }
@keyframes dap-crevice { 0% { transform: scaleY(1) translateX(0); } 50% { transform: scaleY(1.02) translateX(-3px); } 100% { transform: scaleY(1) translateX(0); } }
@keyframes dap-appear { 0% { transform: translateX(-50%) scale(.8); opacity: .3; } 30% { transform: translateX(-50%) scale(1.1); opacity: 1; } 60% { transform: translateX(-50%) scale(.95); opacity: .9; } 100% { transform: translateX(-50%) scale(1); opacity: .8; } }

.scn-diving-method {
  background: linear-gradient(180deg, #e6fffa 0%, #4fd1c5 30%, #1a365d 100%), radial-gradient(ellipse at 50% 0%, #fefcbf 0%, transparent 80%);
  position: relative;
  overflow: hidden;
}
.scn-diving-method .surf-bright { position: absolute; top: 0; left: 0; right: 0; height: 15%; background: linear-gradient(180deg, #fefcbf 0%, #e6fffa 100%); border-radius: 0 0 50% 50% / 0 0 100% 100%; box-shadow: 0 5px 20px rgba(255,255,255,.5); }
.scn-diving-method .depth-down { position: absolute; top: 15%; left: 0; right: 0; bottom: 0; background: linear-gradient(180deg, #4fd1c5 0%, #1a365d 100%); }
.scn-diving-method .boat-sil { position: absolute; top: 5%; left: 50%; width: 60px; height: 20px; transform: translateX(-50%); background: #1a202c; border-radius: 40% 40% 20% 20% / 100% 100% 40% 40%; z-index: 2; animation: dvm-bob 4s ease-in-out infinite; }
.scn-diving-method .boat-sil::after { content: ''; position: absolute; top: -15px; left: 50%; transform: translateX(-50%); width: 2px; height: 20px; background: #1a202c; }
.scn-diving-method .rope-line { position: absolute; top: 12%; left: 50%; width: 2px; height: 75%; transform: translateX(-50%); background: linear-gradient(180deg, #a0aec0 0%, #4a5568 100%); z-index: 1; animation: dvm-sway 6s ease-in-out infinite; transform-origin: top center; }
.scn-diving-method .stone-weight { position: absolute; top: 60%; left: 50%; width: 40px; height: 50px; transform: translateX(-50%); background: #4a5568; clip-path: polygon(50% 0%, 0% 100%, 100% 100%); box-shadow: 0 10px 30px rgba(0,0,0,.5); z-index: 3; animation: dvm-descend 8s ease-in-out infinite; }
.scn-diving-method .diver-drop { position: absolute; top: 40%; left: 50%; width: 20px; height: 40px; transform: translateX(-50%); background: #1a202c; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; z-index: 4; animation: dvm-descend 8s ease-in-out infinite reverse; }
.scn-diving-method .ray-shaft { position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: repeating-linear-gradient(0deg, transparent 0px, transparent 30px, rgba(255,255,255,.05) 30px, rgba(255,255,255,.1) 32px); mix-blend-mode: overlay; pointer-events: none; animation: dvm-light 10s ease-in-out infinite alternate; }

@keyframes dvm-bob { 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 dvm-sway { 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 dvm-descend { 0% { transform: translateX(-50%) translateY(-20%) scale(1); } 50% { transform: translateX(-50%) translateY(20%) scale(1.05); } 100% { transform: translateX(-50%) translateY(-20%) scale(1); } }
@keyframes dvm-light { 0% { opacity: .3; } 50% { opacity: .7; } 100% { opacity: .4; } }

/* volcanic-upheaval-conjecture */
.scn-volcanic-upheaval-conjecture {
  background: linear-gradient(180deg, #2a1e1e 0%, #1a1010 50%, #0a0808 100%),
    radial-gradient(ellipse at 60% 80%, #5a3a2a 0%, transparent 60%);
}
.scn-volcanic-upheaval-conjecture .wl { position:absolute; inset:0; background: linear-gradient(180deg, #3a2a2a 0%, #1a0e0e 100%); border-radius: 6px; }
.scn-volcanic-upheaval-conjecture .ph { position:absolute; top:15%; left:20%; width:60%; height:65%; border:6px solid #5a4a3a; border-radius:50%; background: radial-gradient(circle at 50% 50%, #4a6a8a 0%, #1a2a4a 70%, #0a0a2a 100%); overflow:hidden; }
.scn-volcanic-upheaval-conjecture .wt { position:absolute; bottom:20%; left:20%; width:60%; height:30%; background: linear-gradient(180deg, #3a5a7a 0%, #1a2a3a 100%); border-radius:0 0 50% 50%; animation: vu-wave 8s ease-in-out infinite; }
.scn-volcanic-upheaval-conjecture .rl { position:absolute; bottom:25%; left:30%; width:8%; height:20%; background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%); border-radius: 20% 20% 0 0; transform: translateY(100%); animation: vu-rise 4s ease-out infinite; animation-delay:0.5s; }
.scn-volcanic-upheaval-conjecture .rr { position:absolute; bottom:25%; right:30%; width:8%; height:20%; background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%); border-radius: 20% 20% 0 0; transform: translateY(100%); animation: vu-rise 4s ease-out infinite; animation-delay:1s; }
.scn-volcanic-upheaval-conjecture .cs { position:absolute; bottom:30%; left:45%; width:6%; height:12%; background: #1a1a2a; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: translateX(-50%); animation: vu-jump 3s ease-in-out infinite; }
.scn-volcanic-upheaval-conjecture .b1 { position:absolute; bottom:40%; left:35%; width:3%; height:3%; background: radial-gradient(circle, #c8d8e8 0%, transparent 70%); border-radius:50%; animation: vu-float 5s ease-in-out infinite; }
.scn-volcanic-upheaval-conjecture .b2 { position:absolute; bottom:38%; right:35%; width:2%; height:2%; background: radial-gradient(circle, #c8d8e8 0%, transparent 70%); border-radius:50%; animation: vu-float 6s ease-in-out infinite; animation-delay:1.5s; }

@keyframes vu-wave { 0% { transform: translateY(0); } 50% { transform: translateY(-3%); } 100% { transform: translateY(0); } }
@keyframes vu-rise { 0% { transform: translateY(100%); } 50% { transform: translateY(0); } 100% { transform: translateY(-5%); } }
@keyframes vu-jump { 0%,100% { transform: translateX(-50%) translateY(0) rotate(0deg); } 25% { transform: translateX(-40%) translateY(-5%) rotate(-5deg); } 75% { transform: translateX(-60%) translateY(-3%) rotate(5deg); } }
@keyframes vu-float { 0%,100% { transform: translateY(0) scale(1); opacity:0.6; } 50% { transform: translateY(-15%) scale(1.2); opacity:1; } }

/* earth-cooling-discussion */
.scn-earth-cooling-discussion {
  background: linear-gradient(180deg, #1a1a3e 0%, #2a2a4e 40%, #1a1a2e 100%),
    radial-gradient(ellipse at 50% 30%, #4a4a6e 0%, transparent 70%);
}
.scn-earth-cooling-discussion .wl { position:absolute; inset:0; background: linear-gradient(180deg, #2a2a4e 0%, #1a1a3e 100%); }
.scn-earth-cooling-discussion .fl { position:absolute; bottom:20%; left:0; right:0; height:5%; background: linear-gradient(180deg, #3a3a5a 0%, #2a2a4a 100%); }
.scn-earth-cooling-discussion .dk { position:absolute; bottom:25%; left:35%; width:30%; height:20%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:4px; }
.scn-earth-cooling-discussion .lp { position:absolute; bottom:40%; left:38%; width:4%; height:8%; background: radial-gradient(circle, #b09060 0%, #705030 70%); border-radius:50%; box-shadow: 0 0 20px 5px rgba(176,144,96,0.4); animation: ec-glow 4s ease-in-out infinite alternate; }
.scn-earth-cooling-discussion .gb { position:absolute; bottom:28%; left:42%; width:12%; height:12%; background: radial-gradient(circle at 40% 40%, #4a7a9a 0%, #2a4a6a 60%, #1a2a4a 100%); border-radius:50%; animation: ec-bob 7s ease-in-out infinite; }
.scn-earth-cooling-discussion .fg { position:absolute; bottom:22%; left:40%; width:10%; height:18%; background: linear-gradient(180deg, #2a2a4a 0%, #1a1a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: translateX(-50%); animation: ec-sway 6s ease-in-out infinite; }
.scn-earth-cooling-discussion .cl { position:absolute; bottom:50%; left:60%; width:6%; height:10%; background: radial-gradient(circle, #6a6a8a 0%, #3a3a5a 70%); border-radius:50%; box-shadow: 0 0 0 2px #4a4a6a; animation: ec-tick 1s steps(2) infinite; }
.scn-earth-cooling-discussion .br { position:absolute; bottom:30%; left:45%; width:2%; height:3%; background: rgba(200,200,220,0.2); border-radius:50%; filter:blur(2px); animation: ec-breathe 5s ease-in-out infinite; }

@keyframes ec-glow { 0% { opacity:0.6; box-shadow: 0 0 10px 2px rgba(176,144,96,0.2); } 50% { opacity:1; box-shadow: 0 0 25px 8px rgba(176,144,96,0.5); } 100% { opacity:0.7; box-shadow: 0 0 15px 4px rgba(176,144,96,0.3); } }
@keyframes ec-bob { 0%,100% { transform: translateY(0) scale(1); } 50% { transform: translateY(-3%) scale(0.97); } }
@keyframes ec-sway { 0%,100% { transform: translateX(-50%) rotate(0deg); } 25% { transform: translateX(-48%) rotate(2deg); } 75% { transform: translateX(-52%) rotate(-2deg); } }
@keyframes ec-tick { 0% { opacity:1; } 50% { opacity:0.5; } 100% { opacity:1; } }
@keyframes ec-breathe { 0%,100% { transform: scale(1); opacity:0.2; } 50% { transform: scale(1.5); opacity:0.4; } }

/* volcanic-seafloor-life */
.scn-volcanic-seafloor-life {
  background: linear-gradient(180deg, #2a4a3a 0%, #1a3a2a 50%, #0a1a0a 100%),
    radial-gradient(ellipse at 50% 100%, #4a7a5a 0%, transparent 60%);
}
.scn-volcanic-seafloor-life .wl { position:absolute; inset:0; background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%); }
.scn-volcanic-seafloor-life .wf { position:absolute; top:10%; left:10%; width:80%; height:80%; border:5px solid #3a5a3a; border-radius:50%; background: radial-gradient(circle at 30% 30%, #4a7a5a 0%, #1a3a2a 70%); overflow:hidden; }
.scn-volcanic-seafloor-life .sf { position:absolute; bottom:10%; left:15%; width:70%; height:40%; background: linear-gradient(180deg, #2a4a2a 0%, #1a2a1a 100%); border-radius:30% 70% 0 0 / 50% 50% 0 0; }
.scn-volcanic-seafloor-life .vt { position:absolute; bottom:30%; left:35%; width:10%; height:20%; background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%); border-radius:20% 20% 0 0; animation: vs-pulse 3s ease-in-out infinite alternate; }
.scn-volcanic-seafloor-life .sp { position:absolute; bottom:20%; left:25%; width:12%; height:8%; background: radial-gradient(circle at 30% 40%, #6a8a6a 0%, #3a5a3a 70%); border-radius:50%; animation: vs-wiggle 5s ease-in-out infinite; }
.scn-volcanic-seafloor-life .jf { position:absolute; bottom:25%; right:30%; width:10%; height:14%; background: radial-gradient(circle at 40% 50%, rgba(200,220,240,0.6) 0%, rgba(100,150,200,0.1) 70%); border-radius:50%; filter: blur(2px); animation: vs-drift 8s ease-in-out infinite; }
.scn-volcanic-seafloor-life .ry { position:absolute; top:15%; left:25%; width:50%; height:5%; background: linear-gradient(180deg, rgba(255,255,200,0.3) 0%, transparent 100%); transform: rotate(-15deg); filter: blur(3px); animation: vs-ray 10s ease-in-out infinite; }
.scn-volcanic-seafloor-life .sw { position:absolute; bottom:15%; left:20%; width:6%; height:15%; background: linear-gradient(180deg, #4a7a4a 0%, #2a4a2a 100%); border-radius:50% 50% 0 0; animation: vs-sway 4s ease-in-out infinite; }

@keyframes vs-pulse { 0% { opacity:0.6; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes vs-wiggle { 0%,100% { transform: scale(1) rotate(0deg); } 25% { transform: scale(1.05) rotate(3deg); } 75% { transform: scale(0.95) rotate(-2deg); } }
@keyframes vs-drift { 0%,100% { transform: translate(0,0) scale(1); } 50% { transform: translate(-5%, -8%) scale(1.1); } }
@keyframes vs-ray { 0%,100% { opacity:0.3; transform: rotate(-15deg) translateX(0); } 50% { opacity:0.6; transform: rotate(-10deg) translateX(10%); } }
@keyframes vs-sway { 0%,100% { transform: rotate(0deg) scaleY(1); } 50% { transform: rotate(5deg) scaleY(1.1); } }

/* conseils-mollusk-catalog */
.scn-conseils-mollusk-catalog {
  background: linear-gradient(180deg, #f5e6d0 0%, #e0c8b0 50%, #c8a88a 100%),
    radial-gradient(ellipse at 60% 20%, #fff5e6 0%, transparent 70%);
}
.scn-conseils-mollusk-catalog .wd { position:absolute; inset:0; background: linear-gradient(180deg, #f0e0c0 0%, #d8c0a0 100%); }
.scn-conseils-mollusk-catalog .bc { position:absolute; top:5%; left:5%; width:30%; height:60%; background: linear-gradient(180deg, #8a6a4a 0%, #6a4a2a 100%); border-radius:5px; box-shadow: inset -2px 0 5px rgba(0,0,0,0.2); }
.scn-conseils-mollusk-catalog .dk { position:absolute; bottom:15%; left:30%; width:40%; height:25%; background: linear-gradient(180deg, #8a6a4a 0%, #6a4a2a 100%); border-radius:3px 3px 0 0; }
.scn-conseils-mollusk-catalog .ch { position:absolute; bottom:18%; left:35%; width:8%; height:20%; background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; }
.scn-conseils-mollusk-catalog .cs { position:absolute; bottom:20%; left:34%; width:8%; height:18%; background: linear-gradient(180deg, #2a2a4a 0%, #1a1a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: cm-rock 5s ease-in-out infinite; }
.scn-conseils-mollusk-catalog .ml { position:absolute; bottom:18%; left:50%; width:10%; height:12%; background: radial-gradient(circle at 30% 40%, #b09080 0%, #705040 70%); border-radius: 60% 40% 50% 50% / 40% 50% 50% 60%; transform: rotate(15deg); animation: cm-glow 6s ease-in-out infinite alternate; }
.scn-conseils-mollusk-catalog .mg { position:absolute; bottom:22%; left:45%; width:6%; height:6%; background: linear-gradient(135deg, transparent 40%, #a0a0c0 40%, #c0c0e0 60%, transparent 60%); border-radius:50%; transform: rotate(-20deg); animation: cm-tilt 4s ease-in-out infinite; }
.scn-conseils-mollusk-catalog .sp { position:absolute; bottom:18%; left:60%; width:3%; height:3%; background: #8a6a4a; border-radius:50%; animation: cm-scatter 7s ease-in-out infinite; }

@keyframes cm-rock { 0%,100% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-48%) rotate(3deg); } }
@keyframes cm-glow { 0% { opacity:0.7; box-shadow: 0 0 5px rgba(112,80,64,0.2); } 100% { opacity:1; box-shadow: 0 0 15px 3px rgba(112,80,64,0.4); } }
@keyframes cm-tilt { 0%,100% { transform: rotate(-20deg) scale(1); } 50% { transform: rotate(-15deg) scale(1.05); } }
@keyframes cm-scatter { 0%,100% { transform: translate(0,0) scale(1); } 50% { transform: translate(2%, -1%) scale(1.1); } }

.scn-nets-catch-squid {
  background:
    linear-gradient(180deg, #0a1a3a 0%, #1a2a5a 40%, #2a4a7a 70%, #1a2a4a 100%),
    radial-gradient(ellipse at 50% 20%, #2a5a9a 0%, transparent 60%);
}

.scn-nets-catch-squid .bg-deep {
  position: absolute; inset: 0; background: linear-gradient(180deg, #0a1a3a 40%, #1a2a5a 100%);
  animation: sq1-deep 18s ease-in-out infinite alternate;
}

.scn-nets-catch-squid .bg-mid {
  position: absolute; inset: 30% 0 0 0; background: linear-gradient(180deg, rgba(42,74,122,0.6) 0%, transparent 100%);
  animation: sq1-mid 24s ease-in-out infinite alternate;
}

.scn-nets-catch-squid .moon {
  position: absolute; top: 12%; left: 70%; width: 40px; height: 40px;
  background: radial-gradient(circle, #e0ecff 0%, #c0d8f0 50%, transparent 70%);
  border-radius: 50%; box-shadow: 0 0 40px 12px rgba(192,216,240,0.5), 0 0 80px 24px rgba(192,216,240,0.2);
  animation: sq1-moon 8s ease-in-out infinite alternate;
}

.scn-nets-catch-squid .net {
  position: absolute; bottom: 20%; left: 30%; width: 140px; height: 120px;
  background:
    repeating-linear-gradient(90deg, rgba(200,220,240,0.15) 0px, rgba(200,220,240,0.15) 2px, transparent 2px, transparent 18px),
    repeating-linear-gradient(0deg, rgba(200,220,240,0.15) 0px, rgba(200,220,240,0.15) 2px, transparent 2px, transparent 18px);
  border: 2px solid rgba(200,220,240,0.3); border-radius: 20% 40% 30% 20%;
  transform: rotate(-8deg); animation: sq1-net 6s ease-in-out infinite alternate;
}

.scn-nets-catch-squid .squid1 {
  position: absolute; bottom: 32%; left: 32%; width: 28px; height: 40px;
  background: linear-gradient(180deg, #d0e0f0 0%, #b0c8e0 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-15deg); animation: sq1-squid1 5s ease-in-out infinite;
}

.scn-nets-catch-squid .tentacle1 {
  position: absolute; bottom: 25%; left: 34%; width: 8px; height: 28px;
  background: linear-gradient(180deg, #c0d8f0 0%, #90b0d0 100%);
  border-radius: 50%; transform-origin: top center;
  animation: sq1-tentacle1 3s ease-in-out infinite alternate;
}

.scn-nets-catch-squid .squid2 {
  position: absolute; bottom: 45%; right: 28%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #c8d8e8 0%, #a0b8d0 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(10deg); animation: sq1-squid2 6s ease-in-out infinite;
}

.scn-nets-catch-squid .tentacle2 {
  position: absolute; bottom: 40%; right: 26%; width: 6px; height: 20px;
  background: linear-gradient(180deg, #c0d0e0 0%, #80a0c0 100%);
  border-radius: 50%; transform-origin: top center;
  animation: sq1-tentacle2 3.5s ease-in-out infinite alternate;
}

@keyframes sq1-deep { 0% { opacity: 0.8; } 50% { opacity: 0.95; } 100% { opacity: 0.85; } }
@keyframes sq1-mid { 0% { transform: translateY(0); } 50% { transform: translateY(6px); } 100% { transform: translateY(-4px); } }
@keyframes sq1-moon { 0% { transform: scale(0.95); box-shadow: 0 0 30px 8px rgba(192,216,240,0.4); } 50% { transform: scale(1.05); box-shadow: 0 0 50px 16px rgba(192,216,240,0.6); } 100% { transform: scale(0.98); box-shadow: 0 0 35px 10px rgba(192,216,240,0.45); } }
@keyframes sq1-net { 0% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-6deg) translateY(-4px); } 100% { transform: rotate(-12deg) translateY(2px); } }
@keyframes sq1-squid1 { 0% { transform: rotate(-18deg) translateX(0); } 50% { transform: rotate(-10deg) translateX(8px); } 100% { transform: rotate(-20deg) translateX(-4px); } }
@keyframes sq1-tentacle1 { 0% { transform: rotate(0deg) scaleY(1); } 50% { transform: rotate(25deg) scaleY(1.1); } 100% { transform: rotate(-10deg) scaleY(0.9); } }
@keyframes sq1-squid2 { 0% { transform: rotate(12deg) translateX(0) translateY(0); } 50% { transform: rotate(6deg) translateX(-6px) translateY(3px); } 100% { transform: rotate(15deg) translateX(4px) translateY(-2px); } }
@keyframes sq1-tentacle2 { 0% { transform: rotate(0deg) scaleY(1); } 50% { transform: rotate(-30deg) scaleY(1.2); } 100% { transform: rotate(10deg) scaleY(0.85); } }

.scn-marvels-continue {
  background:
    linear-gradient(180deg, #a8d0e8 0%, #c8e0f0 30%, #f0e6c0 60%, #e0d0a0 100%),
    radial-gradient(ellipse at 60% 20%, #ffe0a0 0%, transparent 50%);
}

.scn-marvels-continue .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #a8d0e8 0%, #d8e8f0 60%, transparent 100%);
  animation: mc1-sky 20s ease-in-out infinite alternate;
}

.scn-marvels-continue .sun {
  position: absolute; top: 12%; left: 65%; width: 60px; height: 60px;
  background: radial-gradient(circle, #fff5d0 0%, #ffe080 40%, #ffcc60 70%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px rgba(255,200,80,0.5), 0 0 120px 40px rgba(255,200,80,0.2);
  animation: mc1-sun 14s ease-in-out infinite alternate;
}

.scn-marvels-continue .horizon {
  position: absolute; bottom: 40%; left: 0; right: 0; height: 4px;
  background: linear-gradient(90deg, transparent 0%, #f0e6c0 20%, #f5deb3 50%, #f0e6c0 80%, transparent 100%);
  animation: mc1-horizon 10s ease-in-out infinite alternate;
}

.scn-marvels-continue .ocean {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #2a6a9a 0%, #1a4a7a 50%, #0a2a5a 100%);
  border-radius: 0 0 40% 40% / 0 0 20% 20%;
  animation: mc1-ocean 30s ease-in-out infinite alternate;
}

.scn-marvels-continue .wave1 {
  position: absolute; bottom: 35%; left: -10%; width: 120%; height: 20px;
  background: linear-gradient(180deg, #4a8ab0 0%, transparent 100%);
  border-radius: 50%; filter: blur(2px);
  animation: mc1-wave1 5s ease-in-out infinite;
}

.scn-marvels-continue .wave2 {
  position: absolute; bottom: 30%; left: -5%; width: 110%; height: 16px;
  background: linear-gradient(180deg, #3a7aa0 0%, transparent 100%);
  border-radius: 50%; filter: blur(2px);
  animation: mc1-wave2 6s ease-in-out infinite reverse;
}

.scn-marvels-continue .fish1 {
  position: absolute; bottom: 50%; left: 20%; width: 32px; height: 12px;
  background: linear-gradient(90deg, #c0d8e8 0%, #a0c0d8 100%);
  border-radius: 50% 30% 30% 50% / 50% 50% 50% 50%;
  transform: rotate(-10deg) scaleX(1.2);
  animation: mc1-fish1 4s ease-in-out infinite;
}

.scn-marvels-continue .fish2 {
  position: absolute; bottom: 55%; right: 25%; width: 24px; height: 10px;
  background: linear-gradient(90deg, #b0c8e0 0%, #90b0d0 100%);
  border-radius: 50% 30% 30% 50% / 50% 50% 50% 50%;
  transform: rotate(15deg) scaleX(1.1);
  animation: mc1-fish2 4.5s ease-in-out infinite alternate;
}

.scn-marvels-continue .bird {
  position: absolute; top: 16%; right: 30%; width: 20px; height: 10px;
  background: linear-gradient(180deg, #4a4a5a 0%, #3a3a4a 100%);
  border-radius: 50% 50% 0 0; transform: rotate(-20deg);
  box-shadow: 8px 6px 0 -2px #3a3a4a;
  animation: mc1-bird 12s ease-in-out infinite;
}

@keyframes mc1-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes mc1-sun { 0% { transform: scale(0.9); box-shadow: 0 0 40px 12px rgba(255,200,80,0.4); } 50% { transform: scale(1.05); box-shadow: 0 0 80px 24px rgba(255,200,80,0.6); } 100% { transform: scale(0.95); box-shadow: 0 0 50px 15px rgba(255,200,80,0.45); } }
@keyframes mc1-horizon { 0% { opacity: 0.6; transform: scaleY(0.8); } 50% { opacity: 1; transform: scaleY(1.2); } 100% { opacity: 0.7; transform: scaleY(0.9); } }
@keyframes mc1-ocean { 0% { transform: translateY(0); } 50% { transform: translateY(4px); } 100% { transform: translateY(-3px); } }
@keyframes mc1-wave1 { 0% { transform: translateX(-10px) scaleX(1); } 50% { transform: translateX(20px) scaleX(1.2); } 100% { transform: translateX(-10px) scaleX(0.9); } }
@keyframes mc1-wave2 { 0% { transform: translateX(0) scaleY(1); } 50% { transform: translateX(-15px) scaleY(1.3); } 100% { transform: translateX(10px) scaleY(0.8); } }
@keyframes mc1-fish1 { 0% { transform: translateX(0) rotate(-12deg); } 50% { transform: translateX(20px) rotate(-6deg); } 100% { transform: translateX(0) rotate(-15deg); } }
@keyframes mc1-fish2 { 0% { transform: translateX(0) rotate(18deg); } 50% { transform: translateX(-15px) rotate(8deg); } 100% { transform: translateX(0) rotate(20deg); } }
@keyframes mc1-bird { 0% { transform: translateX(0) rotate(-25deg); } 50% { transform: translateX(40px) rotate(-15deg); } 100% { transform: translateX(0) rotate(-30deg); } }

.scn-reading-in-lounge {
  background:
    linear-gradient(180deg, #d4b38a 0%, #c49a70 30%, #b08860 60%, #a07850 100%),
    radial-gradient(ellipse at 80% 60%, #e0c8a0 0%, transparent 70%);
}

.scn-reading-in-lounge .wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #d4b38a 0%, #b08860 100%);
  animation: rl1-wall 20s ease-in-out infinite alternate;
}

.scn-reading-in-lounge .bookshelf {
  position: absolute; top: 10%; left: 5%; width: 18%; height: 60%;
  background:
    repeating-linear-gradient(0deg, #6a4a2a 0px, #6a4a2a 6px, #8a6a4a 6px, #8a6a4a 8px, #a08060 8px, #a08060 10px, transparent 10px, transparent 16px);
  border: 4px solid #5a3a1a; border-radius: 4px;
  animation: rl1-shelf 30s ease-in-out infinite;
}

.scn-reading-in-lounge .window {
  position: absolute; top: 15%; right: 10%; width: 30%; height: 40%;
  background: linear-gradient(180deg, #1a4a7a 0%, #2a6a9a 60%, #1a4a7a 100%);
  border: 6px solid #6a4a2a; border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.5), 0 0 30px rgba(26,74,122,0.3);
  animation: rl1-window 12s ease-in-out infinite alternate;
}

.scn-reading-in-lounge .figure {
  position: absolute; bottom: 12%; left: 28%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(5deg);
  animation: rl1-figure 4s ease-in-out infinite;
}

.scn-reading-in-lounge .chair {
  position: absolute; bottom: 8%; left: 22%; width: 50px; height: 40px;
  background: linear-gradient(180deg, #5a3a2a 0%, #4a2a1a 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 10% 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: rl1-chair 6s ease-in-out infinite alternate;
}

.scn-reading-in-lounge .lamp {
  position: absolute; top: 20%; left: 35%; width: 16px; height: 60px;
  background: linear-gradient(180deg, #c0a060 0%, #a08040 100%);
  border-radius: 4px;
}
.scn-reading-in-lounge .lamp::after {
  content: ''; position: absolute; top: -12px; left: -8px; width: 32px; height: 20px;
  background: radial-gradient(ellipse, #f0d080 0%, #e0b060 60%, transparent 100%);
  border-radius: 50%;
  animation: rl1-lamp 3s ease-in-out infinite alternate;
}

.scn-reading-in-lounge .book {
  position: absolute; bottom: 14%; left: 34%; width: 24px; height: 18px;
  background: linear-gradient(180deg, #f5f0e0 0%, #e0d8c0 100%);
  border-radius: 2px;
  transform: rotate(-10deg);
  box-shadow: 2px 2px 4px rgba(0,0,0,0.3);
  animation: rl1-book 5s ease-in-out infinite;
}

@keyframes rl1-wall { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes rl1-shelf { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(2px); } }
@keyframes rl1-window { 0% { opacity: 0.8; box-shadow: inset 0 0 20px rgba(0,0,0,0.4); } 50% { opacity: 1; box-shadow: inset 0 0 30px rgba(0,0,0,0.6); } 100% { opacity: 0.85; box-shadow: inset 0 0 15px rgba(0,0,0,0.5); } }
@keyframes rl1-figure { 0% { transform: rotate(4deg) translateX(0); } 50% { transform: rotate(6deg) translateX(2px); } 100% { transform: rotate(3deg) translateX(-1px); } }
@keyframes rl1-chair { 0% { transform: scaleX(1); } 50% { transform: scaleX(0.95); } 100% { transform: scaleX(1.02); } }
@keyframes rl1-lamp { 0% { transform: scale(0.95); opacity: 0.9; } 50% { transform: scale(1.1); opacity: 1; } 100% { transform: scale(1); opacity: 0.95; } }
@keyframes rl1-book { 0% { transform: rotate(-12deg) translateY(0); } 50% { transform: rotate(-8deg) translateY(-2px); } 100% { transform: rotate(-14deg) translateY(1px); } }

.scn-jean-mace-book {
  background:
    linear-gradient(180deg, #6b4226 0%, #8a5a3a 30%, #a07050 60%, #b08860 100%),
    radial-gradient(ellipse at 50% 70%, #d0a880 0%, transparent 60%);
}

.scn-jean-mace-book .table {
  position: absolute; inset: 60% 5% 0  5%;
  background: linear-gradient(180deg, #6b4226 0%, #5a321a 100%);
  border-radius: 10% 10% 0 0;
  animation: jm1-table 20s ease-in-out infinite alternate;
}

.scn-jean-mace-book .book-left {
  position: absolute; bottom: 32%; left: 28%; width: 24%; height: 30%;
  background: linear-gradient(180deg, #fdf5e6 0%, #f0e6d0 100%);
  border-radius: 4% 0 0 4%;
  box-shadow: -2px 2px 6px rgba(0,0,0,0.3);
  animation: jm1-book-left 6s ease-in-out infinite;
}

.scn-jean-mace-book .book-right {
  position: absolute; bottom: 32%; left: 52%; width: 24%; height: 30%;
  background: linear-gradient(180deg, #fdf5e6 0%, #f0e6d0 100%);
  border-radius: 0 4% 4% 0;
  box-shadow: 2px 2px 6px rgba(0,0,0,0.3);
  animation: jm1-book-right 6s ease-in-out infinite;
}

.scn-jean-mace-book .page-flip {
  position: absolute; bottom: 39%; left: 48%; width: 8%; height: 16%;
  background: linear-gradient(180deg, #fff8dc 0%, #f5edc0 100%);
  border-radius: 2px;
  transform-origin: left center;
  animation: jm1-page-flip 4s ease-in-out infinite;
}

.scn-jean-mace-book .hand {
  position: absolute; bottom: 36%; left: 18%; width: 18px; height: 22px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform: rotate(-20deg);
  animation: jm1-hand 5s ease-in-out infinite;
}

.scn-jean-mace-book .lamp {
  position: absolute; top: 15%; left: 55%; width: 14px; height: 50px;
  background: linear-gradient(180deg, #c0a060 0%, #a08040 100%);
  border-radius: 4px;
}
.scn-jean-mace-book .lamp::after {
  content: ''; position: absolute; top: -10px; left: -6px; width: 26px; height: 18px;
  background: radial-gradient(ellipse, #f0d080 0%, #e0b060 60%, transparent 100%);
  border-radius: 50%;
  animation: jm1-lamp 3s ease-in-out infinite alternate;
}

.scn-jean-mace-book .pen {
  position: absolute; bottom: 28%; left: 42%; width: 40px; height: 4px;
  background: linear-gradient(90deg, #2a1a0a 0%, #4a3a2a 50%, #2a1a0a 100%);
  border-radius: 2px;
  transform: rotate(-40deg);
  animation: jm1-pen 8s ease-in-out infinite;
}

@keyframes jm1-table { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes jm1-book-left { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-4px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes jm1-book-right { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-4px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes jm1-page-flip { 0% { transform: rotateY(0deg) scaleX(1); } 50% { transform: rotateY(60deg) scaleX(0.6); } 100% { transform: rotateY(0deg) scaleX(1); } }
@keyframes jm1-hand { 0% { transform: rotate(-22deg) translateX(0); } 50% { transform: rotate(-18deg) translateX(4px); } 100% { transform: rotate(-24deg) translateX(-2px); } }
@keyframes jm1-lamp { 0% { transform: scale(0.95); opacity: 0.9; } 50% { transform: scale(1.1); opacity: 1; } 100% { transform: scale(1); opacity: 0.95; } }
@keyframes jm1-pen { 0% { transform: rotate(-42deg) translateX(0); } 50% { transform: rotate(-38deg) translateX(8px); } 100% { transform: rotate(-44deg) translateX(-4px); } }

.scn-arabian-tunnel { background: linear-gradient(180deg, #3a6b8a 0%, #2a5a7a 30%, #1a3a5a 70%, #0a1a3a 100%), radial-gradient(ellipse at 50% 20%, #8ab4c8 0%, transparent 60%); }
.scn-arabian-tunnel .rock-top { position:absolute; top:0; left:0; right:0; height:35%; background:linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 0 0 40% 40%; box-shadow: inset 0 10px 20px rgba(0,0,0,.5); }
.scn-arabian-tunnel .rock-left { position:absolute; top:10%; left:0; bottom:20%; width:25%; background:linear-gradient(90deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 0 50% 50% 0; }
.scn-arabian-tunnel .rock-right { position:absolute; top:15%; right:0; bottom:25%; width:20%; background:linear-gradient(270deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 50% 0 0 50%; }
.scn-arabian-tunnel .water { position:absolute; bottom:0; left:0; right:0; height:50%; background:linear-gradient(180deg, #2a6a8a 0%, #0a3a5a 100%); opacity:0.8; }
.scn-arabian-tunnel .light-shaft { position:absolute; top:0; left:40%; width:20%; bottom:40%; background:linear-gradient(180deg, rgba(255,235,180,.6) 0%, rgba(255,235,180,0) 100%); filter: blur(8px); animation: at1-shaft 8s ease-in-out infinite alternate; }
.scn-arabian-tunnel .submarine { position:absolute; bottom:35%; left:50%; width:80px; height:20px; transform:translateX(-50%); background:linear-gradient(90deg, #6a7a6a 0%, #4a5a4a 50%, #3a4a3a 100%); border-radius: 50%; box-shadow: 0 0 10px rgba(0,0,0,.4); animation: at1-sub 20s linear infinite; }
.scn-arabian-tunnel .bubble-1 { position:absolute; bottom:20%; left:30%; width:10px; height:10px; background:radial-gradient(circle, #b0d0e0 0%, transparent 70%); border-radius:50%; animation: at1-bubble 4s ease-in-out infinite; }
.scn-arabian-tunnel .bubble-2 { position:absolute; bottom:15%; left:60%; width:8px; height:8px; background:radial-gradient(circle, #b0d0e0 0%, transparent 70%); border-radius:50%; animation: at1-bubble 5s ease-in-out infinite 1s; }
@keyframes at1-shaft { 0% { opacity:0.3; transform:scaleY(0.8); } 50% { opacity:0.8; transform:scaleY(1.1); } 100% { opacity:0.4; transform:scaleY(0.9); } }
@keyframes at1-sub { 0% { transform:translateX(-50%) translateY(0); } 50% { transform:translateX(-50%) translateY(-3px); } 100% { transform:translateX(-50%) translateY(0); } }
@keyframes at1-bubble { 0% { transform:translateY(0) scale(1); } 50% { transform:translateY(-30px) scale(1.2); } 100% { transform:translateY(-60px) scale(0.8); opacity:0; } }

.scn-proof-of-connection { background: linear-gradient(135deg, #c8b89a 0%, #a89070 50%, #8a7050 100%), radial-gradient(ellipse at 70% 30%, #e0d0b0 0%, transparent 70%); }
.scn-proof-of-connection .bg-paper { position:absolute; inset:5% 10%; background:linear-gradient(135deg, #e8dcc8 0%, #c8b89a 100%); border-radius:4px; box-shadow: 0 4px 12px rgba(0,0,0,.3); }
.scn-proof-of-connection .ink-line { position:absolute; top:40%; left:15%; right:15%; height:2px; background:#4a3a2a; transform-origin: left center; animation: pc2-draw 6s ease-in-out infinite; }
.scn-proof-of-connection .globe { position:absolute; top:30%; left:50%; width:60px; height:60px; transform:translateX(-50%); background:radial-gradient(circle at 40% 35%, #6a8aaa 0%, #3a5a7a 60%, #1a2a4a 100%); border-radius:50%; box-shadow: -4px -4px 12px rgba(0,0,0,.3); animation: pc2-glow 9s ease-in-out infinite alternate; }
.scn-proof-of-connection .hand { position:absolute; bottom:30%; left:35%; width:16px; height:30px; background:linear-gradient(180deg, #b89878 0%, #8a7050 100%); border-radius: 50% 50% 40% 40%; transform-origin: bottom; animation: pc2-point 4s ease-in-out infinite; }
.scn-proof-of-connection .shadow-figure { position:absolute; bottom:15%; right:20%; width:30px; height:50px; background:linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 40% 40% 30% 30%; opacity:0.6; animation: pc2-breathe 7s ease-in-out infinite; }
.scn-proof-of-connection .motes-1 { position:absolute; top:10%; left:20%; width:4px; height:4px; background:#f0e0c0; border-radius:50%; animation: pc2-drift 15s linear infinite; }
.scn-proof-of-connection .motes-2 { position:absolute; top:25%; left:60%; width:3px; height:3px; background:#f0e0c0; border-radius:50%; animation: pc2-drift 20s linear infinite 5s; }
@keyframes pc2-draw { 0% { transform:scaleX(0); } 50% { transform:scaleX(1); } 100% { transform:scaleX(0.5); } }
@keyframes pc2-glow { 0% { box-shadow: -2px -2px 8px rgba(0,0,0,.2); } 50% { box-shadow: -6px -6px 20px rgba(60,90,130,.5); } 100% { box-shadow: -2px -2px 8px rgba(0,0,0,.2); } }
@keyframes pc2-point { 0% { transform:rotate(-10deg); } 50% { transform:rotate(10deg); } 100% { transform:rotate(-10deg); } }
@keyframes pc2-breathe { 0% { transform:scale(1); } 50% { transform:scale(1.05); } 100% { transform:scale(1); } }
@keyframes pc2-drift { 0% { transform:translateY(0) translateX(0); opacity:0.3; } 50% { transform:translateY(30px) translateX(10px); opacity:0.8; } 100% { transform:translateY(60px) translateX(20px); opacity:0; } }

.scn-fish-experiment { background: linear-gradient(180deg, #1a4a6a 0%, #2a6a8a 40%, #1a5a7a 70%, #0a3a5a 100%), radial-gradient(ellipse at 50% 40%, #4a9aba 0%, transparent 70%); }
.scn-fish-experiment .water-bg { position:absolute; inset:0; background:linear-gradient(180deg, #1a4a6a 0%, #0a2a4a 100%); opacity:0.5; animation: fe3-tide 12s ease-in-out infinite alternate; }
.scn-fish-experiment .light-beam { position:absolute; top:0; left:20%; width:60%; bottom:30%; background:linear-gradient(180deg, rgba(200,220,255,0.4) 0%, rgba(200,220,255,0) 100%); filter: blur(12px); animation: fe3-beam 8s ease-in-out infinite alternate; }
.scn-fish-experiment .fish-a { position:absolute; top:40%; left:10%; width:30px; height:10px; background:linear-gradient(90deg, #a0b8c8 0%, #708898 100%); border-radius: 50% 50% 40% 40%; transform: scaleX(-1); animation: fe3-fish1 14s linear infinite; }
.scn-fish-experiment .fish-b { position:absolute; top:55%; left:60%; width:25px; height:8px; background:linear-gradient(90deg, #b8a878 0%, #887858 100%); border-radius: 50% 50% 40% 40%; animation: fe3-fish2 18s linear infinite 3s; }
.scn-fish-experiment .fish-c { position:absolute; top:30%; left:70%; width:20px; height:6px; background:linear-gradient(90deg, #a0c0a0 0%, #709070 100%); border-radius: 50% 50% 40% 40%; transform: scaleX(-1); animation: fe3-fish3 22s linear infinite 7s; }
.scn-fish-experiment .net { position:absolute; top:20%; left:30%; width:40%; height:40%; border:2px solid rgba(160,180,200,0.4); border-radius: 50%; background: repeating-linear-gradient(45deg, transparent, transparent 8px, rgba(160,180,200,0.2) 8px, rgba(160,180,200,0.2) 10px); animation: fe3-net 20s linear infinite; }
.scn-fish-experiment .bubble-set-1 { position:absolute; bottom:10%; left:20%; width:6px; height:6px; background:radial-gradient(circle, #b0d0e0 0%, transparent 70%); border-radius:50%; animation: fe3-bub 6s ease-in-out infinite; }
.scn-fish-experiment .bubble-set-2 { position:absolute; bottom:5%; left:70%; width:4px; height:4px; background:radial-gradient(circle, #b0d0e0 0%, transparent 70%); border-radius:50%; animation: fe3-bub 7s ease-in-out infinite 2s; }
@keyframes fe3-tide { 0% { opacity:0.4; } 50% { opacity:0.6; } 100% { opacity:0.4; } }
@keyframes fe3-beam { 0% { opacity:0.2; transform:scaleY(0.9); } 50% { opacity:0.7; transform:scaleY(1.2); } 100% { opacity:0.3; transform:scaleY(1); } }
@keyframes fe3-fish1 { 0% { transform:translateX(-30px) scaleX(-1); } 50% { transform:translateX(60px) scaleX(-1); } 100% { transform:translateX(130px) scaleX(-1); } }
@keyframes fe3-fish2 { 0% { transform:translateX(0) scaleX(1); } 50% { transform:translateX(-50px) scaleX(1); } 100% { transform:translateX(-100px) scaleX(1); } }
@keyframes fe3-fish3 { 0% { transform:translateX(0) scaleX(-1); } 50% { transform:translateX(40px) scaleX(-1); } 100% { transform:translateX(80px) scaleX(-1); } }
@keyframes fe3-net { 0% { transform:rotate(0deg); } 50% { transform:rotate(180deg); } 100% { transform:rotate(360deg); } }
@keyframes fe3-bub { 0% { transform:translateY(0) scale(1); opacity:1; } 50% { transform:translateY(-40px) scale(1.2); opacity:0.6; } 100% { transform:translateY(-80px) scale(0.5); opacity:0; } }

.scn-reporting-to-companions { background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 40%, #2a1a0a 100%), radial-gradient(ellipse at 50% 40%, #7a6a4a 0%, transparent 70%); }
.scn-reporting-to-companions .wall-left { position:absolute; top:0; bottom:0; left:0; width:25%; background:linear-gradient(90deg, #5a4a3a 0%, #3a2a1a 100%); border-right: 2px solid #2a1a0a; }
.scn-reporting-to-companions .wall-right { position:absolute; top:0; bottom:0; right:0; width:25%; background:linear-gradient(270deg, #5a4a3a 0%, #3a2a1a 100%); border-left: 2px solid #2a1a0a; }
.scn-reporting-to-companions .table { position:absolute; bottom:10%; left:30%; right:30%; height:15%; background:linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 4px; box-shadow: 0 -4px 8px rgba(0,0,0,.3); }
.scn-reporting-to-companions .figure-conseil { position:absolute; bottom:20%; left:25%; width:20px; height:40px; background:linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%); border-radius: 40% 40% 30% 30%; transform-origin: bottom; animation: rc4-idle 6s ease-in-out infinite; }
.scn-reporting-to-companions .figure-ned { position:absolute; bottom:20%; left:48%; width:22px; height:44px; background:linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius: 30% 30% 40% 40%; transform-origin: bottom; animation: rc4-shrug 8s ease-in-out infinite; }
.scn-reporting-to-companions .figure-arronax { position:absolute; bottom:20%; right:25%; width:20px; height:40px; background:linear-gradient(180deg, #7a6a5a 0%, #4a3a2a 100%); border-radius: 40% 40% 30% 30%; transform-origin: bottom; animation: rc4-gesture 7s ease-in-out infinite; }
.scn-reporting-to-companions .lantern-glow { position:absolute; top:15%; left:50%; width:40px; height:40px; transform:translateX(-50%); background:radial-gradient(circle, #f0d090 0%, #c0a060 50%, transparent 100%); filter: blur(10px); animation: rc4-glow 4s ease-in-out infinite alternate; }
.scn-reporting-to-companions .shadow-stripe { position:absolute; top:0; bottom:0; left:40%; width:20%; background:linear-gradient(90deg, rgba(0,0,0,0.2) 0%, rgba(0,0,0,0.5) 50%, rgba(0,0,0,0.2) 100%); animation: rc4-stripe 10s ease-in-out infinite; }
@keyframes rc4-idle { 0% { transform:scaleY(1) rotate(0deg); } 50% { transform:scaleY(1.02) rotate(2deg); } 100% { transform:scaleY(1) rotate(0deg); } }
@keyframes rc4-shrug { 0% { transform:translateY(0) rotate(0deg); } 30% { transform:translateY(-2px) rotate(5deg); } 60% { transform:translateY(0) rotate(-3deg); } 100% { transform:translateY(0) rotate(0deg); } }
@keyframes rc4-gesture { 0% { transform:rotate(0deg) translateX(0); } 50% { transform:rotate(5deg) translateX(5px); } 100% { transform:rotate(0deg) translateX(0); } }
@keyframes rc4-glow { 0% { opacity:0.3; transform:scale(0.9); } 50% { opacity:0.8; transform:scale(1.1); } 100% { opacity:0.4; transform:scale(1); } }
@keyframes rc4-stripe { 0% { opacity:0.3; } 50% { opacity:0.7; } 100% { opacity:0.3; } }

/* fast-speed-no-escape (tense, dim-interior) */
.scn-fast-speed-no-escape {
  background: linear-gradient(180deg, #1a1a2e 0%, #0f0f1a 40%, #1a1a2e 100%), radial-gradient(ellipse at 50% 100%, #2a2a3e 0%, transparent 70%);
}
.scn-fast-speed-no-escape .interior-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a12 100%);
  animation: fsi-interior 6s ease-in-out infinite alternate;
}
.scn-fast-speed-no-escape .window {
  position: absolute; top: 20%; left: 25%; width: 50%; height: 35%;
  background: linear-gradient(135deg, #2a3a5a 0%, #1a2a4a 50%, #2a3a5a 100%);
  border: 3px solid #3a4a6a; border-radius: 4px; overflow: hidden;
  animation: fsi-window 2s ease-in-out infinite alternate;
}
.scn-fast-speed-no-escape .streaks {
  position: absolute; inset: 0;
  background: repeating-linear-gradient(0deg, transparent, transparent 8px, #4a6a8a 8px, #4a6a8a 10px);
  animation: fsi-streaks 0.8s linear infinite;
}
.scn-fast-speed-no-escape .figure {
  position: absolute; bottom: 12%; left: 30%; width: 20%; height: 45%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fsi-figure 4s ease-in-out infinite;
}
.scn-fast-speed-no-escape .shadow {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 80%, transparent 0%, rgba(0,0,0,0.7) 100%);
  animation: fsi-shadow 8s ease-in-out infinite alternate;
}
.scn-fast-speed-no-escape .warning-light {
  position: absolute; bottom: 15%; right: 18%; width: 12px; height: 12px;
  background: radial-gradient(circle, #ff6a4a 0%, #ff4a2a 60%, transparent 100%);
  border-radius: 50%;
  animation: fsi-warning 1.2s ease-in-out infinite;
}
@keyframes fsi-interior {
  0% { opacity: 0.85; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.02); }
  100% { opacity: 0.9; transform: scale(0.98); }
}
@keyframes fsi-window {
  0% { transform: translateX(-2px) rotate(-0.5deg); }
  50% { transform: translateX(2px) rotate(0.5deg); }
  100% { transform: translateX(-1px) rotate(-0.3deg); }
}
@keyframes fsi-streaks {
  0% { background-position: 0 0; }
  100% { background-position: 0 40px; }
}
@keyframes fsi-figure {
  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 fsi-shadow {
  0% { opacity: 0.5; }
  50% { opacity: 0.8; }
  100% { opacity: 0.6; }
}
@keyframes fsi-warning {
  0% { transform: scale(0.8); opacity: 0.3; box-shadow: 0 0 4px 2px #ff4a2a; }
  50% { transform: scale(1.2); opacity: 1; box-shadow: 0 0 12px 6px #ff4a2a; }
  100% { transform: scale(0.9); opacity: 0.6; box-shadow: 0 0 8px 4px #ff4a2a; }
}

/* observing-fish-at-speed (calm, window-lit) */
.scn-observing-fish-at-speed {
  background: linear-gradient(180deg, #2a4a6a 0%, #1a3a5a 50%, #2a4a6a 100%), radial-gradient(ellipse at 50% 0, #4a7a9a 0%, transparent 80%);
}
.scn-observing-fish-at-speed .window-frame {
  position: absolute; top: 10%; left: 20%; width: 60%; height: 65%;
  background: linear-gradient(180deg, #5a7a8a 0%, #3a5a6a 100%);
  border: 5px solid #4a6a7a; border-radius: 10px;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.3);
  animation: of-frame 20s ease-in-out infinite alternate;
}
.scn-observing-fish-at-speed .window-glass {
  position: absolute; top: 12%; left: 22%; width: 56%; height: 61%;
  background: linear-gradient(135deg, rgba(150,200,255,0.3) 0%, rgba(100,150,200,0.1) 100%);
  border-radius: 6px;
  animation: of-glass 15s ease-in-out infinite alternate;
}
.scn-observing-fish-at-speed .light-beam {
  position: absolute; top: 15%; left: 30%; width: 40%; height: 25%;
  background: linear-gradient(135deg, rgba(240,255,255,0.25) 0%, transparent 100%);
  transform: rotate(-8deg);
  animation: of-beam 8s ease-in-out infinite alternate;
}
.scn-observing-fish-at-speed .fish {
  position: absolute;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
}
.scn-observing-fish-at-speed .fish-silver {
  top: 30%; left: 30%; width: 50px; height: 20px;
  background: linear-gradient(90deg, #c0d0e0 0%, #a0b0c0 100%);
  animation: of-fish1 12s ease-in-out infinite;
}
.scn-observing-fish-at-speed .fish-gold {
  top: 50%; left: 50%; width: 40px; height: 18px;
  background: linear-gradient(90deg, #d4a840 0%, #c09830 100%);
  animation: of-fish2 14s ease-in-out infinite 2s;
}
.scn-observing-fish-at-speed .fish-blue {
  top: 45%; left: 10%; width: 45px; height: 16px;
  background: linear-gradient(90deg, #4a7a9a 0%, #3a6a8a 100%);
  animation: of-fish3 16s ease-in-out infinite 4s;
}
.scn-observing-fish-at-speed .bubbles {
  position: absolute; top: 20%; left: 25%; width: 50%; height: 40%;
  background: radial-gradient(circle at 20% 30%, rgba(255,255,255,0.4) 0%, transparent 10%),
              radial-gradient(circle at 70% 60%, rgba(255,255,255,0.3) 0%, transparent 8%),
              radial-gradient(circle at 40% 80%, rgba(255,255,255,0.25) 0%, transparent 6%);
  background-size: 20px 20px;
  animation: of-bubbles 10s linear infinite;
}
@keyframes of-frame {
  0% { box-shadow: inset 0 0 30px rgba(0,0,0,0.3); }
  50% { box-shadow: inset 0 0 40px rgba(0,0,0,0.4); }
  100% { box-shadow: inset 0 0 25px rgba(0,0,0,0.25); }
}
@keyframes of-glass {
  0% { opacity: 0.6; }
  50% { opacity: 0.8; }
  100% { opacity: 0.7; }
}
@keyframes of-beam {
  0% { transform: rotate(-8deg) scaleX(1); opacity: 0.5; }
  50% { transform: rotate(-5deg) scaleX(1.1); opacity: 0.8; }
  100% { transform: rotate(-10deg) scaleX(0.95); opacity: 0.4; }
}
@keyframes of-fish1 {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  25% { transform: translateX(40px) translateY(-5px) rotate(3deg); }
  50% { transform: translateX(80px) translateY(0) rotate(0deg); }
  75% { transform: translateX(40px) translateY(5px) rotate(-3deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes of-fish2 {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  33% { transform: translateX(-30px) translateY(-4px) rotate(-2deg); }
  66% { transform: translateX(-60px) translateY(4px) rotate(2deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes of-fish3 {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  20% { transform: translateX(60px) translateY(-3px) rotate(4deg); }
  40% { transform: translateX(120px) translateY(0) rotate(0deg); }
  60% { transform: translateX(60px) translateY(3px) rotate(-4deg); }
  80% { transform: translateX(0) translateY(0) rotate(0deg); }
  100% { transform: translateX(-10px) translateY(0) rotate(0deg); }
}
@keyframes of-bubbles {
  0% { background-position: 0 0; }
  100% { background-position: 0 -100px; }
}

/* electric-lit-fish (warm, electric beam) */
.scn-electric-lit-fish {
  background: linear-gradient(180deg, #0d1b2a 0%, #14273a 40%, #1a3450 100%), radial-gradient(ellipse at 20% 30%, #2a3a5a 0%, transparent 70%);
}
.scn-electric-lit-fish .beam {
  position: absolute; top: 0; left: 0; width: 100%; height: 100%;
  background: linear-gradient(135deg, rgba(255,220,100,0.3) 0%, rgba(255,200,80,0.1) 40%, transparent 70%);
  transform: rotate(15deg);
  animation: el-beam 5s ease-in-out infinite alternate;
}
.scn-electric-lit-fish .glow-overlay {
  position: absolute; top: 0; left: 0; width: 100%; height: 100%;
  background: radial-gradient(ellipse at 20% 30%, rgba(255,200,80,0.2) 0%, transparent 60%);
  animation: el-glow 4s ease-in-out infinite alternate;
}
.scn-electric-lit-fish .fish {
  position: absolute;
  border-radius: 50%;
}
.scn-electric-lit-fish .lamprey {
  top: 35%; left: 40%; width: 70px; height: 12px;
  background: linear-gradient(90deg, #8a9aaa 0%, #6a7a8a 100%);
  border-radius: 50% 50% 50% 50% / 20% 20% 20% 20%;
  animation: el-fish1 8s ease-in-out infinite;
}
.scn-electric-lit-fish .ray {
  top: 55%; left: 25%; width: 80px; height: 30px;
  background: linear-gradient(180deg, #d0d8e0 0%, #b0b8c0 100%);
  border-radius: 50%;
  animation: el-fish2 10s ease-in-out infinite 2s;
}
.scn-electric-lit-fish .eel {
  top: 25%; left: 15%; width: 50px; height: 8px;
  background: linear-gradient(90deg, #2a4a5a 0%, #1a3a4a 100%);
  border-radius: 50% 50% 50% 50% / 10% 10% 10% 10%;
  animation: el-fish3 12s ease-in-out infinite 4s;
}
.scn-electric-lit-fish .particles {
  position: absolute; top: 0; left: 0; width: 100%; height: 100%;
  background: radial-gradient(circle at 10% 20%, rgba(255,255,255,0.3) 0%, transparent 5%),
              radial-gradient(circle at 30% 50%, rgba(255,255,200,0.2) 0%, transparent 8%),
              radial-gradient(circle at 60% 30%, rgba(255,255,255,0.25) 0%, transparent 6%),
              radial-gradient(circle at 80% 70%, rgba(255,220,150,0.15) 0%, transparent 7%),
              radial-gradient(circle at 15% 80%, rgba(255,255,255,0.2) 0%, transparent 4%);
  background-size: 50px 50px;
  animation: el-particles 20s linear infinite;
}
@keyframes el-beam {
  0% { transform: rotate(15deg) scale(0.95); opacity: 0.7; }
  50% { transform: rotate(18deg) scale(1.05); opacity: 1; }
  100% { transform: rotate(12deg) scale(1); opacity: 0.8; }
}
@keyframes el-glow {
  0% { opacity: 0.4; }
  50% { opacity: 0.7; }
  100% { opacity: 0.5; }
}
@keyframes el-fish1 {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  33% { transform: translateX(30px) translateY(-5px) rotate(5deg); }
  66% { transform: translateX(60px) translateY(0) rotate(0deg); }
  100% { transform: translateX(30px) translateY(-3px) rotate(3deg); }
}
@keyframes el-fish2 {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  25% { transform: translateX(40px) translateY(4px) rotate(-3deg); }
  50% { transform: translateX(80px) translateY(0) rotate(0deg); }
  75% { transform: translateX(40px) translateY(-4px) rotate(3deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes el-fish3 {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  30% { transform: translateX(-20px) translateY(-2px) rotate(-4deg); }
  60% { transform: translateX(-40px) translateY(2px) rotate(4deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes el-particles {
  0% { background-position: 0 0; }
  100% { background-position: 0 200px; }
}

/* various-sharks-and-fish (warm, window-lit) */
.scn-various-sharks-and-fish {
  background: linear-gradient(180deg, #1a3a4a 0%, #2a5a6a 40%, #1a4a5a 100%), radial-gradient(ellipse at 50% 0, #3a7a8a 0%, transparent 80%);
}
.scn-various-sharks-and-fish .window-frame {
  position: absolute; top: 8%; left: 15%; width: 70%; height: 75%;
  background: linear-gradient(180deg, #4a6a7a 0%, #2a4a5a 100%);
  border: 6px solid #3a5a6a; border-radius: 12px;
  box-shadow: inset 0 0 40px rgba(0,0,0,0.3);
  animation: vs-frame 18s ease-in-out infinite alternate;
}
.scn-various-sharks-and-fish .window-glass {
  position: absolute; top: 10%; left: 17%; width: 66%; height: 71%;
  background: linear-gradient(135deg, rgba(180,220,255,0.2) 0%, rgba(120,160,200,0.1) 100%);
  border-radius: 8px;
  animation: vs-glass 12s ease-in-out infinite alternate;
}
.scn-various-sharks-and-fish .light-beam {
  position: absolute; top: 12%; left: 25%; width: 50%; height: 30%;
  background: linear-gradient(135deg, rgba(240,255,240,0.2) 0%, transparent 100%);
  transform: rotate(-5deg);
  animation: vs-beam 6s ease-in-out infinite alternate;
}
.scn-various-sharks-and-fish .fish {
  position: absolute;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
}
.scn-various-sharks-and-fish .dorado {
  top: 35%; left: 30%; width: 55px; height: 22px;
  background: linear-gradient(90deg, #d4a030 0%, #b89028 100%);
  animation: vs-fish1 10s ease-in-out infinite;
}
.scn-various-sharks-and-fish .silver-fish {
  top: 45%; left: 20%; width: 45px; height: 18px;
  background: linear-gradient(90deg, #b0c0d0 0%, #90a0b0 100%);
  animation: vs-fish2 12s ease-in-out infinite 3s;
}
.scn-various-sharks-and-fish .small-gold {
  top: 55%; left: 45%; width: 30px; height: 12px;
  background: linear-gradient(90deg, #c09830 0%, #a08020 100%);
  animation: vs-fish3 9s ease-in-out infinite 5s;
}
.scn-various-sharks-and-fish .seaweed {
  position: absolute; bottom: 10%; left: 10%; width: 8%; height: 30%;
  background: linear-gradient(180deg, #2a6a3a 0%, #1a4a2a 100%);
  border-radius: 30% 30% 10% 10% / 80% 80% 20% 20%;
  transform-origin: bottom;
  animation: vs-seaweed 5s ease-in-out infinite alternate;
}
@keyframes vs-frame {
  0% { box-shadow: inset 0 0 40px rgba(0,0,0,0.3); }
  50% { box-shadow: inset 0 0 50px rgba(0,0,0,0.4); }
  100% { box-shadow: inset 0 0 35px rgba(0,0,0,0.25); }
}
@keyframes vs-glass {
  0% { opacity: 0.5; }
  50% { opacity: 0.7; }
  100% { opacity: 0.6; }
}
@keyframes vs-beam {
  0% { transform: rotate(-5deg) scaleX(1); opacity: 0.4; }
  50% { transform: rotate(-2deg) scaleX(1.1); opacity: 0.7; }
  100% { transform: rotate(-7deg) scaleX(0.95); opacity: 0.5; }
}
@keyframes vs-fish1 {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  20% { transform: translateX(30px) translateY(-3px) rotate(4deg); }
  40% { transform: translateX(60px) translateY(0) rotate(0deg); }
  60% { transform: translateX(30px) translateY(3px) rotate(-4deg); }
  80% { transform: translateX(0) translateY(0) rotate(0deg); }
  100% { transform: translateX(10px) translateY(0) rotate(0deg); }
}
@keyframes vs-fish2 {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  25% { transform: translateX(-40px) translateY(2px) rotate(-2deg); }
  50% { transform: translateX(-80px) translateY(0) rotate(0deg); }
  75% { transform: translateX(-40px) translateY(-2px) rotate(2deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes vs-fish3 {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  30% { transform: translateX(50px) translateY(-3px) rotate(3deg); }
  60% { transform: translateX(100px) translateY(0) rotate(0deg); }
  100% { transform: translateX(50px) translateY(3px) rotate(-3deg); }
}
@keyframes vs-seaweed {
  0% { transform: rotate(-8deg); }
  50% { transform: rotate(8deg); }
  100% { transform: rotate(-6deg); }
}

/* gulf-stream-storm-approach */
.scn-gulf-stream-storm-approach {
  background: linear-gradient(180deg, #3a4a5a 0%, #2a3a4a 40%, #1a2a3a 100%), radial-gradient(ellipse at 50% 0%, #4a5a6a 0%, transparent 70%);
}
.scn-gulf-stream-storm-approach .sky { position:absolute; inset:0 0 50% 0; background:linear-gradient(180deg, #5a6a7a 0%, #3a4a5a 100%); animation:gssa-sky 15s ease-in-out infinite alternate; }
.scn-gulf-stream-storm-approach .clouds-bg { position:absolute; top:10%; left:0; width:100%; height:35%; background:linear-gradient(90deg, rgba(80,90,100,0.6) 0%, rgba(60,70,80,0.4) 50%, rgba(80,90,100,0.6) 100%); border-radius:50% 50% 0 0; filter:blur(8px); animation:gssa-clouds 30s linear infinite; }
.scn-gulf-stream-storm-approach .sea { position:absolute; bottom:0; left:0; width:100%; height:50%; background:linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%); }
.scn-gulf-stream-storm-approach .boat { position:absolute; bottom:24%; left:30%; width:60px; height:20px; background:linear-gradient(90deg, #4a3a2a 0%, #3a2a1a 100%); border-radius:30% 30% 10% 10%; transform-origin:center bottom; box-shadow:0 4px 8px rgba(0,0,0,0.5); animation:gssa-boat 2s ease-in-out infinite alternate; }
.scn-gulf-stream-storm-approach .wave-1 { position:absolute; bottom:22%; left:10%; width:200px; height:20px; background:linear-gradient(180deg, #3a5a6a 0%, #2a4a5a 100%); border-radius:50%; filter:blur(3px); animation:gssa-wave1 4s ease-in-out infinite; }
.scn-gulf-stream-storm-approach .wave-2 { position:absolute; bottom:26%; right:5%; width:250px; height:25px; background:linear-gradient(180deg, #4a6a7a 0%, #3a5a6a 100%); border-radius:50%; filter:blur(4px); animation:gssa-wave2 5s ease-in-out infinite reverse; }
.scn-gulf-stream-storm-approach .figure { position:absolute; bottom:22%; left:35%; width:10px; height:20px; background:linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation:gssa-figure 2s ease-in-out infinite alternate; }
@keyframes gssa-sky { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.6 } }
@keyframes gssa-clouds { 0% { transform:translateX(-20%) } 50% { transform:translateX(0%) } 100% { transform:translateX(20%) } }
@keyframes gssa-boat { 0% { transform:rotate(-5deg) translateY(0) } 50% { transform:rotate(3deg) translateY(-2px) } 100% { transform:rotate(-5deg) translateY(0) } }
@keyframes gssa-wave1 { 0% { transform:translateX(0) translateY(0) } 50% { transform:translateX(20px) translateY(-5px) } 100% { transform:translateX(0) translateY(0) } }
@keyframes gssa-wave2 { 0% { transform:translateX(0) translateY(0) } 50% { transform:translateX(-15px) translateY(3px) } 100% { transform:translateX(0) translateY(0) } }
@keyframes gssa-figure { 0% { transform:rotate(-5deg) } 50% { transform:rotate(5deg) } 100% { transform:rotate(-3deg) } }

/* confronting-captain-nemo */
.scn-confronting-captain-nemo {
  background: linear-gradient(135deg, #2a1a1a 0%, #4a2a1a 50%, #3a1a0a 100%), radial-gradient(ellipse at 70% 30%, #5a3a2a 0%, transparent 60%);
}
.scn-confronting-captain-nemo .wall { position:absolute; inset:0; background:linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%); }
.scn-confronting-captain-nemo .door { position:absolute; top:10%; left:30%; width:30%; height:80%; background:linear-gradient(90deg, #5a3a2a 0%, #4a2a1a 100%); border-radius:4% 4% 0 0; box-shadow:inset 0 0 20px rgba(0,0,0,0.5); animation:ccn-door 6s ease-in-out infinite; transform-origin:left center; }
.scn-confronting-captain-nemo .light { position:absolute; top:15%; left:35%; width:20%; height:70%; background:radial-gradient(ellipse at 50% 30%, rgba(255,200,100,0.8) 0%, rgba(255,200,100,0) 100%); animation:ccn-light 2s ease-in-out infinite alternate; }
.scn-confronting-captain-nemo .figure { position:absolute; bottom:10%; left:45%; width:16px; height:40px; background:linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation:ccn-figure 3s ease-in-out infinite; }
.scn-confronting-captain-nemo .hand { position:absolute; bottom:25%; left:42%; width:12px; height:6px; background:#2a1a1a; border-radius:50% 50% 0 0; transform-origin:right center; animation:ccn-hand 2s ease-in-out infinite alternate; }
.scn-confronting-captain-nemo .shadow { position:absolute; bottom:5%; left:30%; width:40%; height:40%; background:radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.4) 0%, transparent 100%); animation:ccn-shadow 4s ease-in-out infinite; }
@keyframes ccn-door { 0% { transform:rotateY(0deg) } 50% { transform:rotateY(-5deg) } 100% { transform:rotateY(0deg) } }
@keyframes ccn-light { 0% { opacity:0.8; transform:scale(1) } 50% { opacity:1; transform:scale(1.05) } 100% { opacity:0.7; transform:scale(0.95) } }
@keyframes ccn-figure { 0% { transform:translateY(0) } 50% { transform:translateY(-2px) } 100% { transform:translateY(0) } }
@keyframes ccn-hand { 0% { transform:rotate(0deg) } 50% { transform:rotate(10deg) } 100% { transform:rotate(0deg) } }
@keyframes ccn-shadow { 0% { opacity:0.3 } 50% { opacity:0.6 } 100% { opacity:0.4 } }

/* approaching-hurricane */
.scn-approaching-hurricane {
  background: linear-gradient(180deg, #4a5a6a 0%, #3a4a5a 30%, #2a3a4a 100%), radial-gradient(ellipse at 50% 0%, #5a6a7a 0%, transparent 80%);
}
.scn-approaching-hurricane .sky-dark { position:absolute; inset:0 0 60% 0; background:linear-gradient(180deg, #5a6a7a 0%, #3a4a5a 100%); animation:ah-sky 20s ease-in-out infinite alternate; }
.scn-approaching-hurricane .cirrus { position:absolute; top:10%; left:0; width:100%; height:20%; background:linear-gradient(90deg, transparent 0%, rgba(200,220,240,0.3) 20%, rgba(200,220,240,0.5) 50%, rgba(200,220,240,0.3) 80%, transparent 100%); filter:blur(4px); animation:ah-cirrus 40s linear infinite; }
.scn-approaching-hurricane .nimbus { position:absolute; top:25%; left:20%; width:60%; height:40%; background:radial-gradient(ellipse at 50% 50%, #4a5a6a 0%, #2a3a4a 100%); border-radius:40% 60% 50% 50%; filter:blur(10px); animation:ah-nimbus 15s ease-in-out infinite; }
.scn-approaching-hurricane .low-clouds { position:absolute; top:40%; left:-10%; width:120%; height:30%; background:linear-gradient(90deg, #3a4a5a 0%, #4a5a6a 50%, #3a4a5a 100%); border-radius:30% 30% 0 0; filter:blur(6px); animation:ah-low 50s linear infinite reverse; }
.scn-approaching-hurricane .sea-horizon { position:absolute; bottom:30%; left:0; width:100%; height:5px; background:#2a3a4a; }
.scn-approaching-hurricane .waves { position:absolute; bottom:0; left:0; width:100%; height:30%; background:linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%); }
.scn-approaching-hurricane .spray { position:absolute; bottom:28%; left:40%; width:60px; height:30px; background:radial-gradient(ellipse at 50% 50%, rgba(200,220,240,0.2) 0%, transparent 100%); filter:blur(6px); animation:ah-spray 3s ease-in-out infinite alternate; }
@keyframes ah-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.6 } }
@keyframes ah-cirrus { 0% { transform:translateX(-30%) } 50% { transform:translateX(0%) } 100% { transform:translateX(30%) } }
@keyframes ah-nimbus { 0% { transform:scale(1) translateX(0) } 50% { transform:scale(1.1) translateX(10px) } 100% { transform:scale(1) translateX(0) } }
@keyframes ah-low { 0% { transform:translateX(0) } 50% { transform:translateX(-10%) } 100% { transform:translateX(-20%) } }
@keyframes ah-spray { 0% { transform:translateY(0) scale(1) } 50% { transform:translateY(-5px) scale(1.2) } 100% { transform:translateY(0) scale(1) } }

/* hurricane-burst */
.scn-hurricane-burst {
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 50%, #000010 100%), radial-gradient(ellipse at 50% 50%, #2a2a3a 0%, transparent 90%);
}
.scn-hurricane-burst .sky-black { position:absolute; inset:0 0 50% 0; background:linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%); animation:hb-sky 10s ease-in-out infinite; }
.scn-hurricane-burst .rain { position:absolute; inset:0; background:repeating-linear-gradient(0deg, transparent 0px, transparent 4px, rgba(180,200,220,0.05) 4px, rgba(180,200,220,0.05) 5px); animation:hb-rain 0.5s linear infinite; }
.scn-hurricane-burst .lightning-flash { position:absolute; top:0; left:20%; width:5px; height:30%; background:linear-gradient(180deg, rgba(255,255,255,0.9) 0%, rgba(255,255,255,0) 100%); transform:skewX(-10deg); box-shadow:0 0 20px 10px rgba(200,220,255,0.5); animation:hb-lightning 3s ease-in-out infinite; }
.scn-hurricane-burst .sea-wild { position:absolute; bottom:0; left:0; width:100%; height:50%; background:linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%); }
.scn-hurricane-burst .wave-crash { position:absolute; bottom:20%; left:0; width:120%; height:40px; background:radial-gradient(ellipse at 30% 50%, #2a4a5a 0%, transparent 100%); border-radius:50%; filter:blur(6px); animation:hb-wave 2s ease-in-out infinite; }
.scn-hurricane-burst .foam { position:absolute; bottom:18%; left:10%; width:100px; height:10px; background:radial-gradient(ellipse at 50% 50%, rgba(200,220,240,0.3) 0%, transparent 100%); filter:blur(4px); animation:hb-foam 1.5s ease-in-out infinite alternate; }
.scn-hurricane-burst .debris { position:absolute; top:60%; left:70%; width:15px; height:8px; background:#2a3a2a; border-radius:20%; animation:hb-debris 4s ease-in-out infinite; }
@keyframes hb-sky { 0%,100% { opacity:0.5 } 50% { opacity:1 } }
@keyframes hb-rain { 0% { transform:translateY(0) } 50% { transform:translateY(5px) } 100% { transform:translateY(10px) } }
@keyframes hb-lightning { 0%,95% { opacity:0 } 96% { opacity:1 } 98% { opacity:0 } 100% { opacity:0 } }
@keyframes hb-wave { 0% { transform:translateX(0) scale(1) } 50% { transform:translateX(20px) scale(1.2) } 100% { transform:translateX(0) scale(1) } }
@keyframes hb-foam { 0% { transform:translateX(0) } 50% { transform:translateX(5px) } 100% { transform:translateX(10px) } }
@keyframes hb-debris { 0% { transform:rotate(0deg) translate(0,0) } 50% { transform:rotate(180deg) translate(10px,-10px) } 100% { transform:rotate(360deg) translate(0,0) } }

.scn-anchoring { background: linear-gradient(180deg, #87CEEB 0%, #f0e68c 50%, #fff8dc 100%), radial-gradient(ellipse at 40% 0, #87CEEB 0%, transparent 60%); }
.scn-anchoring .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #b0e0e6 0%, #87CEEB 100%); animation: an-sky 12s ease-in-out infinite alternate; }
.scn-anchoring .water { position:absolute; inset:40% 0 0 0; background: linear-gradient(180deg, #1e90ff 0%, #00bfff 50%, #87ceeb 100%); animation: an-water 8s ease-in-out infinite alternate; }
.scn-anchoring .boat { position:absolute; bottom:35%; left:30%; width:40%; height:10%; background: linear-gradient(90deg, #8b4513 0%, #cd853f 50%, #8b4513 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 4px 8px rgba(0,0,0,.3); animation: an-boat 6s ease-in-out infinite; }
.scn-anchoring .anchor { position:absolute; bottom:30%; left:50%; width:4%; height:8%; background: #555; border-radius: 50% 50% 10% 10%; transform: translateX(-50%); animation: an-anchor 4s ease-in-out infinite; }
.scn-anchoring .chain { position:absolute; bottom:30%; left:50%; width:2%; height:25%; background: repeating-linear-gradient(0deg, #888 0px, #888 4px, transparent 4px, transparent 8px); transform-origin: top center; animation: an-chain 3s ease-in-out infinite; }
.scn-anchoring .seabed { position:absolute; bottom:0; left:0; right:0; height:8%; background: linear-gradient(180deg, #deb887 0%, #c2b280 100%); border-radius: 50% 50% 0 0 / 30% 30% 0 0; animation: an-seabed 10s ease-in-out infinite; }
.scn-anchoring .figure { position:absolute; bottom:38%; left:45%; width:6%; height:15%; background: linear-gradient(180deg, #2f4f4f 0%, #1a1a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: an-figure 5s ease-in-out infinite; }
@keyframes an-sky { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.9; } }
@keyframes an-water { 0% { transform: translateY(0); } 50% { transform: translateY(2px); } 100% { transform: translateY(0); } }
@keyframes an-boat { 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 an-anchor { 0% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(5deg); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes an-chain { 0% { transform: skewX(0deg); } 50% { transform: skewX(3deg); } 100% { transform: skewX(0deg); } }
@keyframes an-seabed { 0% { opacity:1; } 50% { opacity:0.8; } 100% { opacity:1; } }
@keyframes an-figure { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(1); } }

.scn-no-lantern { background: linear-gradient(180deg, #000080 0%, #1e90ff 30%, #87ceeb 60%, #b0e0e6 100%), radial-gradient(ellipse at 50% 0%, #87ceeb 0%, transparent 70%); }
.scn-no-lantern .sky-water { position:absolute; inset:0; background: linear-gradient(180deg, rgba(0,0,128,0.8) 0%, rgba(30,144,255,0.6) 50%, rgba(135,206,235,0.4) 100%); animation: nl-skywater 5s ease-in-out infinite alternate; }
.scn-no-lantern .sun { position:absolute; top:5%; left:50%; width:15%; height:20%; background: radial-gradient(circle, #fff8dc 0%, #ffd700 50%, transparent 70%); border-radius:50%; transform: translateX(-50%); animation: nl-sun 2s ease-in-out infinite alternate; }
.scn-no-lantern .rays { position:absolute; top:0; left:0; right:0; bottom:0; background: repeating-linear-gradient(0deg, transparent 0px, transparent 20px, rgba(255,255,0,0.15) 20px, rgba(255,255,0,0.15) 22px); animation: nl-rays 1s linear infinite; }
.scn-no-lantern .helmet { position:absolute; top:25%; left:50%; width:30%; height:35%; background: radial-gradient(ellipse, #b87333 0%, #8b4513 60%, #5c2e0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: translateX(-50%); box-shadow: 0 0 20px #8b4513; animation: nl-helmet 3s ease-in-out infinite; }
.scn-no-lantern .glass { position:absolute; top:30%; left:35%; width:18%; height:20%; background: radial-gradient(ellipse, rgba(100,180,255,0.8) 0%, rgba(100,180,255,0.2) 100%); border-radius:50%; box-shadow: inset 0 0 20px #fff; animation: nl-glass 4s ease-in-out infinite alternate; }
.scn-no-lantern .figure { position:absolute; bottom:15%; left:50%; width:12%; height:35%; background: linear-gradient(180deg, #1a1a1a 0%, #0d0d0d 100%); border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%; transform: translateX(-50%); animation: nl-figure 2s ease-in-out infinite; }
.scn-no-lantern .shadow { position:absolute; bottom:5%; left:30%; width:40%; height:8%; background: rgba(0,0,0,0.6); border-radius: 50% 50% 0 0 / 100% 100% 0 0; filter: blur(4px); animation: nl-shadow 3s ease-in-out infinite; }
@keyframes nl-skywater { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.95; } }
@keyframes nl-sun { 0% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.05); } 100% { transform: translateX(-50%) scale(1); } }
@keyframes nl-rays { 0% { transform: translateY(0); } 50% { transform: translateY(-5px); } 100% { transform: translateY(0); } }
@keyframes nl-helmet { 0% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(2deg); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes nl-glass { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes nl-figure { 0% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(1.03); } 100% { transform: translateX(-50%) scaleY(1); } }
@keyframes nl-shadow { 0% { transform: scaleX(1); opacity:0.6; } 50% { transform: scaleX(1.1); opacity:0.4; } 100% { transform: scaleX(1); opacity:0.6; } }

.scn-entering-water { background: linear-gradient(180deg, #87CEEB 0%, #b0e0e6 30%, #fff8dc 70%, #f0e68c 100%), radial-gradient(ellipse at 50% 100%, #fff8dc 0%, transparent 60%); }
.scn-entering-water .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #b0e0e6 0%, #87CEEB 100%); animation: ew-sky 10s ease-in-out infinite alternate; }
.scn-entering-water .water { position:absolute; inset:50% 0 0 0; background: linear-gradient(180deg, transparent 0%, #1e90ff 30%, #00bfff 70%, #87ceeb 100%); animation: ew-water 7s ease-in-out infinite alternate; }
.scn-entering-water .sand { position:absolute; bottom:0; left:0; right:0; height:15%; background: linear-gradient(180deg, #deb887 0%, #c2b280 100%); border-radius: 30% 40% 0 0 / 50% 60% 0 0; animation: ew-sand 12s ease-in-out infinite; }
.scn-entering-water .figure1 { position:absolute; bottom:40%; left:35%; width:8%; height:18%; background: linear-gradient(180deg, #2f4f4f 0%, #1a1a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: ew-figure1 6s ease-in-out infinite; }
.scn-entering-water .figure2 { position:absolute; bottom:35%; left:55%; width:9%; height:20%; background: linear-gradient(180deg, #3a5f5f 0%, #2a3a3a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: ew-figure2 7s ease-in-out infinite; }
.scn-entering-water .waterline { position:absolute; top:50%; left:0; right:0; height:2%; background: rgba(255,255,255,0.3); filter: blur(2px); animation: ew-waterline 5s ease-in-out infinite alternate; }
.scn-entering-water .bubbles { position:absolute; bottom:40%; left:40%; width:4%; height:4%; background: radial-gradient(circle, rgba(255,255,255,0.6) 0%, transparent 100%); border-radius:50%; animation: ew-bubbles 4s ease-in-out infinite; }
@keyframes ew-sky { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.95; } }
@keyframes ew-water { 0% { transform: translateY(0); } 50% { transform: translateY(3px); } 100% { transform: translateY(0); } }
@keyframes ew-sand { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.98); } 100% { transform: scaleY(1); } }
@keyframes ew-figure1 { 0% { transform: translateX(0) translateY(0) rotate(-1deg); } 50% { transform: translateX(8px) translateY(-2px) rotate(1deg); } 100% { transform: translateX(16px) translateY(0) rotate(0deg); } }
@keyframes ew-figure2 { 0% { transform: translateX(0) translateY(0) rotate(1deg); } 50% { transform: translateX(-6px) translateY(-1px) rotate(-1deg); } 100% { transform: translateX(-12px) translateY(0) rotate(0deg); } }
@keyframes ew-waterline { 0% { height:1%; } 50% { height:3%; } 100% { height:1%; } }
@keyframes ew-bubbles { 0% { transform: translateY(0) scale(1); opacity:0; } 25% { opacity:1; } 100% { transform: translateY(-60px) scale(0.5); opacity:0; } }

.scn-fish-school { background: linear-gradient(180deg, #0a2a4a 0%, #1e90ff 40%, #87ceeb 70%, #b0e0e6 100%), radial-gradient(ellipse at 50% 0%, #b0e0e6 0%, transparent 70%); }
.scn-fish-school .water-bg { position:absolute; inset:0; background: linear-gradient(180deg, rgba(10,42,74,0.9) 0%, rgba(30,144,255,0.5) 50%, rgba(135,206,235,0.3) 100%); animation: fs-waterbg 15s ease-in-out infinite alternate; }
.scn-fish-school .rays { position:absolute; top:0; left:0; right:0; bottom:0; background: repeating-linear-gradient(45deg, transparent 0px, transparent 30px, rgba(255,255,200,0.08) 30px, rgba(255,255,200,0.08) 32px); animation: fs-rays 20s linear infinite; }
.scn-fish-school .fish1 { position:absolute; top:30%; left:10%; width:12%; height:5%; background: radial-gradient(ellipse at 30% 50%, #ffd700 0%, #ffa500 100%); border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%; transform: rotate(-10deg); animation: fs-fish1 8s ease-in-out infinite; }
.scn-fish-school .fish2 { position:absolute; bottom:40%; right:15%; width:10%; height:4%; background: radial-gradient(ellipse at 30% 50%, #ff6347 0%, #b22222 100%); border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%; transform: rotate(15deg); animation: fs-fish2 12s ease-in-out infinite reverse; }
.scn-fish-school .eel { position:absolute; bottom:25%; left:20%; width:3%; height:30%; background: linear-gradient(180deg, #708090 0%, #2f4f4f 50%, #708090 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; animation: fs-eel 5s ease-in-out infinite; }
.scn-fish-school .seaweed { position:absolute; bottom:10%; left:30%; width:4%; height:15%; background: linear-gradient(180deg, #228b22 0%, #006400 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; animation: fs-seaweed 6s ease-in-out infinite; }
.scn-fish-school .light-spot { position:absolute; top:40%; left:30%; width:8%; height:10%; background: radial-gradient(circle, rgba(255,255,200,0.3) 0%, transparent 100%); border-radius:50%; filter: blur(8px); animation: fs-lightspot 4s ease-in-out infinite alternate; }
@keyframes fs-waterbg { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.95; } }
@keyframes fs-rays { 0% { transform: translate(0,0); } 50% { transform: translate(10px,10px); } 100% { transform: translate(0,0); } }
@keyframes fs-fish1 { 0% { transform: rotate(-10deg) translateX(0); } 50% { transform: rotate(-10deg) translateX(30px); } 100% { transform: rotate(-10deg) translateX(0); } }
@keyframes fs-fish2 { 0% { transform: rotate(15deg) translateX(0); } 50% { transform: rotate(15deg) translateX(-20px); } 100% { transform: rotate(15deg) translateX(0); } }
@keyframes fs-eel { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-5px) rotate(2deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(5px) rotate(-2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes fs-seaweed { 0% { transform: translateY(0) skewX(0deg); } 50% { transform: translateY(-3px) skewX(5deg); } 100% { transform: translateY(0) skewX(0deg); } }
@keyframes fs-lightspot { 0% { opacity:0.3; } 50% { opacity:0.6; } 100% { opacity:0.3; } }

.scn-new-year-greeting { background: linear-gradient(180deg, #87CEEB 0%, #1E90FF 60%, #000080 100%), radial-gradient(ellipse at 20% 30%, #FFD700 0%, transparent 70%); }
.scn-new-year-greeting .water-bg { position:absolute; inset:0; background: linear-gradient(180deg, rgba(135,206,235,0.2) 0%, rgba(30,144,255,0.5) 100%); animation: nyg-water 10s ease-in-out infinite alternate; }
.scn-new-year-greeting .sun-rays { position:absolute; top:0; left:30%; width:120px; height:100%; background: repeating-linear-gradient(0deg, transparent, transparent 20px, rgba(255,215,0,0.2) 20px, rgba(255,215,0,0.2) 40px); clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%); animation: nyg-rays 8s ease-in-out infinite alternate; }
.scn-new-year-greeting .platform { position:absolute; bottom:30%; left:15%; right:15%; height:8px; background: linear-gradient(180deg, #B8860B 0%, #8B4513 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.5); animation: nyg-platform 12s ease-in-out infinite alternate; }
.scn-new-year-greeting .conseil { position:absolute; bottom:30%; left:45%; width:30px; height:60px; background: linear-gradient(180deg, #2F4F4F 0%, #1C1C1C 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: translateX(-50%); animation: nyg-figure 6s ease-in-out infinite; }
.scn-new-year-greeting .arm { position:absolute; bottom:42%; left:55%; width:20px; height:8px; background: linear-gradient(90deg, #2F4F4F 0%, #1C1C1C 100%); border-radius: 50%; transform-origin: left center; animation: nyg-arm 4s ease-in-out infinite; }
.scn-new-year-greeting .light-spot { position:absolute; bottom:30%; left:50%; width:20px; height:20px; background: radial-gradient(circle, #FFD700 0%, rgba(255,215,0,0.5) 50%, transparent 70%); border-radius: 50%; animation: nyg-light 5s ease-in-out infinite alternate; }
.scn-new-year-greeting .bubbles { position:absolute; bottom:30%; left:20%; width:8px; height:8px; background: rgba(255,255,255,0.6); border-radius: 50%; animation: nyg-bubbles 3s ease-in-out infinite; box-shadow: 20px -10px 0 rgba(255,255,255,0.4), -15px -20px 0 rgba(255,255,255,0.3); }
@keyframes nyg-water { 0% { opacity:0.7 } 50% { opacity:0.9 } 100% { opacity:0.7 } }
@keyframes nyg-rays { 0% { transform: scaleX(1) translateY(0) } 50% { transform: scaleX(1.2) translateY(-10px) } 100% { transform: scaleX(1) translateY(0) } }
@keyframes nyg-platform { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes nyg-figure { 0% { transform: translateX(-50%) translateY(0) rotate(0) } 25% { transform: translateX(-48%) translateY(-2px) rotate(-1deg) } 50% { transform: translateX(-50%) translateY(0) rotate(0) } 75% { transform: translateX(-52%) translateY(-2px) rotate(1deg) } 100% { transform: translateX(-50%) translateY(0) rotate(0) } }
@keyframes nyg-arm { 0% { transform: rotate(0) } 50% { transform: rotate(20deg) translateX(10px) } 100% { transform: rotate(0) } }
@keyframes nyg-light { 0% { opacity:0.5; transform: scale(1) } 50% { opacity:1; transform: scale(1.5) } 100% { opacity:0.5; transform: scale(1) } }
@keyframes nyg-bubbles { 0% { transform: translate(0,0); opacity:0 } 50% { transform: translate(-10px,-30px); opacity:1 } 100% { transform: translate(-20px,-60px); opacity:0 } }

.scn-happy-year-debate { background: linear-gradient(180deg, #0B0C10 0%, #1F2833 60%, #45A29E 100%), radial-gradient(ellipse at 50% 80%, #66FCF1 0%, transparent 70%); }
.scn-happy-year-debate .bg-deep { position:absolute; inset:0; background: linear-gradient(180deg, rgba(11,12,16,0.8) 0%, rgba(31,40,51,0.6) 100%); animation: hyd-deep 15s ease-in-out infinite alternate; }
.scn-happy-year-debate .bg-mid { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #2E4057 0%, #1F2833 100%); border-radius: 30% 30% 0 0; animation: hyd-mid 12s ease-in-out infinite alternate; }
.scn-happy-year-debate .window-frame { position:absolute; top:15%; left:50%; transform: translateX(-50%); width:100px; height:100px; border-radius:50%; border: 6px solid #8B5A2B; box-shadow: 0 0 20px rgba(139,90,43,0.5); background: transparent; animation: hyd-frame 20s ease-in-out infinite; }
.scn-happy-year-debate .window-glass { position:absolute; top:15%; left:50%; transform: translateX(-50%); width:94px; height:94px; border-radius:50%; background: radial-gradient(circle, #A2D9CE 0%, #1F6182 100%); animation: hyd-glass 8s ease-in-out infinite alternate; }
.scn-happy-year-debate .conseil-figure { position:absolute; bottom:25%; left:35%; width:28px; height:55px; background: linear-gradient(180deg, #3E4A5C 0%, #2C3E50 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: translateX(-50%); animation: hyd-conseil 6s ease-in-out infinite; }
.scn-happy-year-debate .ned-figure { position:absolute; bottom:25%; left:65%; width:34px; height:60px; background: linear-gradient(180deg, #5D6D7E 0%, #34495E 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: translateX(-50%); animation: hyd-ned 8s ease-in-out infinite; }
.scn-happy-year-debate .table { position:absolute; bottom:25%; left:40%; right:40%; height:6px; background: linear-gradient(180deg, #B8860B 0%, #8B4513 100%); border-radius: 4px; animation: hyd-table 10s ease-in-out infinite alternate; }
@keyframes hyd-deep { 0% { opacity:0.5 } 50% { opacity:0.8 } 100% { opacity:0.5 } }
@keyframes hyd-mid { 0% { transform: scaleY(1) } 50% { transform: scaleY(0.95) } 100% { transform: scaleY(1) } }
@keyframes hyd-frame { 0% { transform: translateX(-50%) rotate(0) } 50% { transform: translateX(-50%) rotate(2deg) } 100% { transform: translateX(-50%) rotate(0) } }
@keyframes hyd-glass { 0% { opacity:0.9; transform: translateX(-50%) scale(1) } 50% { opacity:1; transform: translateX(-50%) scale(1.05) } 100% { opacity:0.9; transform: translateX(-50%) scale(1) } }
@keyframes hyd-conseil { 0% { transform: translateX(-50%) translateY(0) rotate(0) } 25% { transform: translateX(-48%) translateY(-2px) rotate(-2deg) } 50% { transform: translateX(-50%) translateY(0) rotate(0) } 75% { transform: translateX(-52%) translateY(-2px) rotate(2deg) } 100% { transform: translateX(-50%) translateY(0) rotate(0) } }
@keyframes hyd-ned { 0% { transform: translateX(-50%) translateY(0) rotate(0) } 25% { transform: translateX(-52%) translateY(-3px) rotate(3deg) } 50% { transform: translateX(-50%) translateY(0) rotate(0) } 75% { transform: translateX(-48%) translateY(-3px) rotate(-3deg) } 100% { transform: translateX(-50%) translateY(0) rotate(0) } }
@keyframes hyd-table { 0% { transform: translateY(0) scaleX(1) } 50% { transform: translateY(-2px) scaleX(0.95) } 100% { transform: translateY(0) scaleX(1) } }

.scn-conseil-opinion { background: linear-gradient(180deg, #0D1B2A 0%, #1B2838 50%, #415A77 100%), radial-gradient(ellipse at 30% 70%, #778DA9 0%, transparent 70%); }
.scn-conseil-opinion .bg-water { position:absolute; inset:0; background: linear-gradient(180deg, rgba(13,27,42,0.8) 0%, rgba(65,90,119,0.5) 100%); animation: cop-water 12s ease-in-out infinite alternate; }
.scn-conseil-opinion .porthole { position:absolute; top:20%; right:20%; width:80px; height:80px; border-radius:50%; border:4px solid #8B5A2B; background: radial-gradient(circle, #A2D9CE 0%, #1F6182 100%); animation: cop-porthole 15s ease-in-out infinite; }
.scn-conseil-opinion .porthole-glow { position:absolute; top:20%; right:20%; width:80px; height:80px; border-radius:50%; box-shadow: 0 0 30px rgba(162,217,206,0.3); animation: cop-glow 8s ease-in-out infinite alternate; }
.scn-conseil-opinion .conseil-body { position:absolute; bottom:25%; left:30%; width:25px; height:50px; background: linear-gradient(180deg, #2E4057 0%, #1C2833 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: translateX(-50%); animation: cop-figure 6s ease-in-out infinite; }
.scn-conseil-opinion .conseil-arm { position:absolute; bottom:45%; left:45%; width:20px; height:6px; background: linear-gradient(90deg, #2E4057 0%, #1C2833 100%); border-radius: 50%; transform-origin: left center; animation: cop-arm 4s ease-in-out infinite; }
.scn-conseil-opinion .light-rays { position:absolute; top:0; left:50%; width:100px; height:100%; background: repeating-linear-gradient(0deg, transparent, transparent 15px, rgba(255,215,0,0.1) 15px, rgba(255,215,0,0.1) 30px); clip-path: polygon(50% 0, 100% 0, 80% 100%, 20% 100%); animation: cop-rays 10s ease-in-out infinite alternate; }
@keyframes cop-water { 0% { opacity:0.6 } 50% { opacity:0.9 } 100% { opacity:0.6 } }
@keyframes cop-porthole { 0% { transform: scale(1) } 50% { transform: scale(1.05) } 100% { transform: scale(1) } }
@keyframes cop-glow { 0% { opacity:0.5 } 50% { opacity:1 } 100% { opacity:0.5 } }
@keyframes cop-figure { 0% { transform: translateX(-50%) translateY(0) rotate(0) } 25% { transform: translateX(-48%) translateY(-2px) rotate(-1deg) } 50% { transform: translateX(-50%) translateY(0) rotate(0) } 75% { transform: translateX(-52%) translateY(-2px) rotate(1deg) } 100% { transform: translateX(-50%) translateY(0) rotate(0) } }
@keyframes cop-arm { 0% { transform: rotate(0) } 50% { transform: rotate(30deg) translateX(8px) } 100% { transform: rotate(0) } }
@keyframes cop-rays { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.3) translateY(-5px) } 100% { transform: scaleX(1) } }

.scn-ned-land-different { background: linear-gradient(180deg, #87CEEB 0%, #00BFFF 30%, #1E90FF 100%), radial-gradient(ellipse at 80% 20%, #FFD700 0%, transparent 50%); }
.scn-ned-land-different .water-bg { position:absolute; inset:0; background: linear-gradient(180deg, rgba(135,206,235,0.3) 0%, rgba(30,144,255,0.5) 100%); animation: nld-water 8s ease-in-out infinite alternate; }
.scn-ned-land-different .sun-rays { position:absolute; top:0; right:20%; width:80px; height:100%; background: repeating-linear-gradient(0deg, transparent, transparent 10px, rgba(255,215,0,0.3) 10px, rgba(255,215,0,0.3) 20px); clip-path: polygon(20% 0, 100% 0, 80% 100%, 0% 100%); animation: nld-rays 6s ease-in-out infinite alternate; }
.scn-ned-land-different .platform { position:absolute; bottom:30%; left:10%; right:10%; height:10px; background: linear-gradient(180deg, #DAA520 0%, #B8860B 100%); border-radius: 4px; animation: nld-platform 4s ease-in-out infinite; }
.scn-ned-land-different .ned-figure { position:absolute; bottom:30%; left:50%; width:40px; height:70px; background: linear-gradient(180deg, #5D6D7E 0%, #2C3E50 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: translateX(-50%); animation: nld-figure 2s ease-in-out infinite; }
.scn-ned-land-different .ned-hat { position:absolute; bottom:68%; left:50%; width:50px; height:20px; background: linear-gradient(180deg, #A0522D 0%, #8B4513 100%); border-radius: 50% 50% 0 0; transform: translateX(-50%) rotate(-5deg); animation: nld-hat 3s ease-in-out infinite; }
.scn-ned-land-different .fish { position:absolute; bottom:40%; left:20%; width:25px; height:10px; background: linear-gradient(90deg, #FFD700 0%, #FFA500 100%); border-radius: 50% 50% 50% 50% / 50% 50% 50% 50%; animation: nld-fish 5s ease-in-out infinite; }
.scn-ned-land-different .sparkle { position:absolute; top:20%; left:30%; width:8px; height:8px; background: radial-gradient(circle, #FFFF00 0%, transparent 100%); border-radius: 50%; animation: nld-sparkle 2s ease-in-out infinite; box-shadow: 30px -20px 0 #FFFF00, -20px 10px 0 #FFFF00; }
@keyframes nld-water { 0% { opacity:0.6 } 50% { opacity:0.9 } 100% { opacity:0.6 } }
@keyframes nld-rays { 0% { transform: scaleX(1) translateX(0) } 50% { transform: scaleX(1.2) translateX(15px) } 100% { transform: scaleX(1) translateX(0) } }
@keyframes nld-platform { 0% { transform: translateY(0) } 25% { transform: translateY(-3px) } 50% { transform: translateY(0) } 75% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes nld-figure { 0% { transform: translateX(-50%) translateY(0) rotate(0) } 25% { transform: translateX(-45%) translateY(-5px) rotate(5deg) } 50% { transform: translateX(-50%) translateY(0) rotate(0) } 75% { transform: translateX(-55%) translateY(-5px) rotate(-5deg) } 100% { transform: translateX(-50%) translateY(0) rotate(0) } }
@keyframes nld-hat { 0% { transform: translateX(-50%) rotate(-5deg) } 50% { transform: translateX(-50%) rotate(5deg) } 100% { transform: translateX(-50%) rotate(-5deg) } }
@keyframes nld-fish { 0% { transform: translate(0,0) rotate(0) } 50% { transform: translate(40px,-10px) rotate(10deg) } 100% { transform: translate(0,0) rotate(0) } }
@keyframes nld-sparkle { 0% { opacity:0; transform: scale(0) } 50% { opacity:1; transform: scale(1.5) } 100% { opacity:0; transform: scale(0) } }

/* Scene: enormous-black-mass – dim interior, tense */
.scn-enormous-black-mass {
  background: linear-gradient(180deg, #1a1a2e 0%, #0f0f1a 40%, #050510 100%),
              radial-gradient(ellipse at 50% 60%, #2a2a3e 0%, transparent 70%);
}
.scn-enormous-black-mass .wall {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #1e1e2a 0%, #14141e 50%, #0a0a12 100%);
  animation: eb-wall 20s ease-in-out infinite alternate;
}
.scn-enormous-black-mass .window-frame {
  position: absolute; top: 20%; left: 25%; width: 50%; height: 40%;
  border: 6px solid #3a3a4a; border-radius: 4px;
  background: transparent;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.8);
}
.scn-enormous-black-mass .window-glass {
  position: absolute; top: 22%; left: 27%; width: 46%; height: 36%;
  background: radial-gradient(ellipse at 40% 30%, #4a4a5e 0%, #1a1a2e 70%);
  border-radius: 2px;
  animation: eb-glass 8s ease-in-out infinite alternate;
}
.scn-enormous-black-mass .mass {
  position: absolute; top: 10%; left: 30%; width: 40%; height: 50%;
  background: radial-gradient(ellipse at 50% 40%, #0a0a1a 0%, #000011 80%);
  border-radius: 60% 40% 50% 50% / 50% 60% 40% 50%;
  transform: scaleX(1.2);
  animation: eb-mass 12s ease-in-out infinite alternate;
  box-shadow: 0 0 30px rgba(0,0,0,0.9);
}
.scn-enormous-black-mass .mass-glow {
  position: absolute; top: 8%; left: 28%; width: 44%; height: 54%;
  background: radial-gradient(ellipse at 50% 40%, rgba(40,40,60,0.3) 0%, transparent 70%);
  border-radius: 50%; filter: blur(10px);
  animation: eb-glow 15s ease-in-out infinite alternate;
}
.scn-enormous-black-mass .observer {
  position: absolute; bottom: 20%; left: 28%; width: 12%; height: 30%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a12 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: eb-observer 5s ease-in-out infinite;
}
@keyframes eb-wall {
  0% { opacity: 0.9; } 50% { opacity: 0.95; } 100% { opacity: 0.85; }
}
@keyframes eb-glass {
  0% { opacity: 0.7; filter: blur(2px); }
  50% { opacity: 0.85; filter: blur(1px); }
  100% { opacity: 0.75; filter: blur(3px); }
}
@keyframes eb-mass {
  0% { transform: scaleX(1.2) translateY(0); }
  50% { transform: scaleX(1.25) translateY(-3px); }
  100% { transform: scaleX(1.15) translateY(2px); }
}
@keyframes eb-glow {
  0% { transform: scale(0.95); opacity: 0.3; }
  50% { transform: scale(1.05); opacity: 0.5; }
  100% { transform: scale(0.9); opacity: 0.2; }
}
@keyframes eb-observer {
  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); }
}

/* Scene: shipwreck-detail – dark underwater */
.scn-shipwreck-detail {
  background: linear-gradient(180deg, #0c1a2e 0%, #07101f 40%, #030b15 100%),
              radial-gradient(ellipse at 50% 30%, #0f2a4a 0%, transparent 70%);
}
.scn-shipwreck-detail .water-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(10,30,50,0.5) 0%, transparent 50%, rgba(5,15,25,0.3) 100%);
  animation: sw-water 25s ease-in-out infinite alternate;
}
.scn-shipwreck-detail .ship-hull {
  position: absolute; bottom: 20%; left: 20%; width: 60%; height: 20%;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%;
  box-shadow: 0 0 20px rgba(0,0,0,0.6);
  transform: rotate(-5deg);
  animation: sw-hull 18s ease-in-out infinite alternate;
}
.scn-shipwreck-detail .mast-1,
.scn-shipwreck-detail .mast-2,
.scn-shipwreck-detail .mast-3 {
  position: absolute; top: 30%; width: 2%; height: 25%;
  background: linear-gradient(180deg, #3a3a3a 0%, #1a1a1a 100%);
  border-radius: 2px;
  transform-origin: bottom center;
}
.scn-shipwreck-detail .mast-1 { left: 30%; animation: sw-mast 12s ease-in-out infinite alternate; }
.scn-shipwreck-detail .mast-2 { left: 50%; animation: sw-mast 14s ease-in-out infinite alternate-reverse; }
.scn-shipwreck-detail .mast-3 { left: 70%; animation: sw-mast 10s ease-in-out infinite alternate; }
.scn-shipwreck-detail .shrouds {
  position: absolute; top: 35%; left: 28%; width: 44%; height: 30%;
  background: repeating-linear-gradient(90deg, transparent 0px, transparent 8px, #2a2a2a 8px, #2a2a2a 9px);
  opacity: 0.4;
  animation: sw-shrouds 8s ease-in-out infinite alternate;
}
.scn-shipwreck-detail .debris {
  position: absolute; bottom: 15%; left: 15%; width: 5%; height: 5%;
  background: radial-gradient(circle, #3a3a2a, #1a1a0a);
  border-radius: 60% 40% 50% 50% / 50% 60% 40% 50%;
  animation: sw-debris 20s linear infinite;
}
@keyframes sw-water {
  0% { opacity: 0.8; } 50% { opacity: 0.9; } 100% { opacity: 0.7; }
}
@keyframes sw-hull {
  0% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(-3deg) translateY(-2px); }
  100% { transform: rotate(-6deg) translateY(1px); }
}
@keyframes sw-mast {
  0% { transform: rotate(0deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-1deg); }
}
@keyframes sw-shrouds {
  0% { opacity: 0.3; } 50% { opacity: 0.5; } 100% { opacity: 0.4; }
}
@keyframes sw-debris {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  100% { transform: translateX(30px) translateY(-10px) rotate(360deg); }
}

/* Scene: ship-listing – dark, listing deck with corpses */
.scn-ship-listing {
  background: linear-gradient(180deg, #0a1420 0%, #05080f 40%, #02050a 100%),
              radial-gradient(ellipse at 30% 20%, #0f1a2a 0%, transparent 60%);
}
.scn-ship-listing .water-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(5,15,25,0.6) 0%, transparent 60%);
  animation: sl-water 30s ease-in-out infinite alternate;
}
.scn-ship-listing .deck {
  position: absolute; bottom: 10%; left: 10%; width: 80%; height: 40%;
  background: linear-gradient(180deg, #1a1a1a 0%, #0d0d0d 100%);
  transform: rotate(15deg) translateX(5%);
  transform-origin: bottom center;
  border-radius: 5% 5% 2% 2% / 30% 30% 10% 10%;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.8);
  animation: sl-deck 20s ease-in-out infinite alternate;
}
.scn-ship-listing .corpse-1,
.scn-ship-listing .corpse-2,
.scn-ship-listing .corpse-3 {
  position: absolute; bottom: 15%; width: 6%; height: 12%;
  background: linear-gradient(180deg, #5e1a1d 0%, #3a0a0d 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  opacity: 0.8;
  transform-origin: center bottom;
}
.scn-ship-listing .corpse-1 { left: 20%; animation: sl-corpse 12s ease-in-out infinite; }
.scn-ship-listing .corpse-2 { left: 40%; animation: sl-corpse 14s ease-in-out infinite alternate; }
.scn-ship-listing .corpse-3 { left: 60%; animation: sl-corpse 16s ease-in-out infinite; }
.scn-ship-listing .rope {
  position: absolute; bottom: 20%; left: 18%; width: 64%; height: 2%;
  background: repeating-linear-gradient(90deg, #3a2a1a 0px, #3a2a1a 4px, transparent 4px, transparent 8px);
  transform: rotate(10deg);
  animation: sl-rope 8s ease-in-out infinite alternate;
}
.scn-ship-listing .figure-standing {
  position: absolute; bottom: 40%; left: 50%; width: 5%; height: 18%;
  background: linear-gradient(180deg, #151515 0%, #050505 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: sl-figure 5s ease-in-out infinite;
}
@keyframes sl-water {
  0% { opacity: 0.7; } 50% { opacity: 0.85; } 100% { opacity: 0.75; }
}
@keyframes sl-deck {
  0% { transform: rotate(15deg) translateX(5%); }
  50% { transform: rotate(13deg) translateX(4%); }
  100% { transform: rotate(16deg) translateX(6%); }
}
@keyframes sl-corpse {
  0% { transform: rotate(0deg); }
  25% { transform: rotate(3deg); }
  50% { transform: rotate(-2deg); }
  75% { transform: rotate(4deg); }
  100% { transform: rotate(0deg); }
}
@keyframes sl-rope {
  0% { transform: rotate(10deg) scaleX(1); }
  50% { transform: rotate(12deg) scaleX(1.02); }
  100% { transform: rotate(9deg) scaleX(0.98); }
}
@keyframes sl-figure {
  0% { transform: translateX(-50%) rotate(-1deg); }
  25% { transform: translateX(-48%) rotate(1deg); }
  50% { transform: translateX(-50%) rotate(0deg); }
  75% { transform: translateX(-52%) rotate(2deg); }
  100% { transform: translateX(-50%) rotate(-1deg); }
}

/* Scene: four-men-woman-child – Nautilus light, underwater */
.scn-four-men-woman-child {
  background: linear-gradient(180deg, #0a1a2e 0%, #040e1a 40%, #01050a 100%),
              radial-gradient(ellipse at 50% 40%, #0f2a4a 0%, transparent 70%);
}
.scn-four-men-woman-child .water-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(5,20,35,0.7) 0%, transparent 50%);
  animation: fm-water 28s ease-in-out infinite alternate;
}
.scn-four-men-woman-child .beam-light {
  position: absolute; top: 5%; left: 35%; width: 30%; height: 60%;
  background: linear-gradient(180deg, rgba(200,230,255,0.3) 0%, transparent 70%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  opacity: 0.6;
  animation: fm-beam 6s ease-in-out infinite alternate;
}
.scn-four-men-woman-child .woman {
  position: absolute; bottom: 25%; left: 38%; width: 6%; height: 18%;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1010 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: center bottom;
  animation: fm-woman 8s ease-in-out infinite;
}
.scn-four-men-woman-child .child {
  position: absolute; bottom: 25%; left: 44%; width: 4%; height: 10%;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: center bottom;
  animation: fm-child 10s ease-in-out infinite;
}
.scn-four-men-woman-child .man-helm {
  position: absolute; bottom: 35%; left: 50%; width: 5%; height: 16%;
  background: linear-gradient(180deg, #1a1a1a 0%, #050505 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: center bottom;
  animation: fm-helm 7s ease-in-out infinite;
}
.scn-four-men-woman-child .man-lying1 {
  position: absolute; bottom: 18%; left: 20%; width: 6%; height: 10%;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform: rotate(80deg);
  animation: fm-lying1 15s ease-in-out infinite alternate;
}
.scn-four-men-woman-child .man-lying2 {
  position: absolute; bottom: 15%; left: 65%; width: 6%; height: 10%;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform: rotate(-70deg);
  animation: fm-lying2 13s ease-in-out infinite alternate;
}
@keyframes fm-water {
  0% { opacity: 0.7; } 50% { opacity: 0.85; } 100% { opacity: 0.75; }
}
@keyframes fm-beam {
  0% { opacity: 0.5; transform: scaleY(1); }
  50% { opacity: 0.7; transform: scaleY(1.05); }
  100% { opacity: 0.4; transform: scaleY(0.95); }
}
@keyframes fm-woman {
  0% { transform: translateX(0) rotate(1deg); }
  25% { transform: translateX(2px) rotate(-1deg); }
  50% { transform: translateX(-1px) rotate(2deg); }
  75% { transform: translateX(1px) rotate(0deg); }
  100% { transform: translateX(0) rotate(1deg); }
}
@keyframes fm-child {
  0% { transform: translateX(0) rotate(-2deg); }
  50% { transform: translateX(3px) rotate(2deg); }
  100% { transform: translateX(0) rotate(-2deg); }
}
@keyframes fm-helm {
  0% { transform: translateX(-50%) rotate(-1deg); }
  25% { transform: translateX(-48%) rotate(1deg); }
  50% { transform: translateX(-50%) rotate(0deg); }
  75% { transform: translateX(-52%) rotate(2deg); }
  100% { transform: translateX(-50%) rotate(-1deg); }
}
@keyframes fm-lying1 {
  0% { transform: rotate(80deg) translateY(0); }
  50% { transform: rotate(78deg) translateY(-2px); }
  100% { transform: rotate(82deg) translateY(1px); }
}
@keyframes fm-lying2 {
  0% { transform: rotate(-70deg) translateY(0); }
  50% { transform: rotate(-72deg) translateY(-2px); }
  100% { transform: rotate(-68deg) translateY(1px); }
}

.scn-birds-of-paradise-sight{background:linear-gradient(180deg,#87ceeb,#ffe4b5),radial-gradient(circle at 70% 10%,#fff7e0,transparent);}
.scn-birds-of-paradise-sight .sky{position:absolute;inset:0;background:linear-gradient(180deg,rgba(255,255,255,.3),transparent);animation:bop-sky 12s ease-in-out infinite alternate;}
.scn-birds-of-paradise-sight .sun-glow{position:absolute;top:8%;left:70%;width:60px;height:60px;background:radial-gradient(circle,#ffe4b5,rgba(255,228,181,0));border-radius:50%;box-shadow:0 0 80px 20px #ffe4b5;animation:bop-sun 10s ease-in-out infinite alternate;}
.scn-birds-of-paradise-sight .mountains{position:absolute;bottom:30%;left:0;right:0;height:40%;background:linear-gradient(180deg,#6b8e23,#3c5a1a);border-radius:30% 50% 0 0/60% 70% 0 0;animation:bop-mtn 20s ease-in-out infinite;}
.scn-birds-of-paradise-sight .tree{position:absolute;bottom:20%;left:15%;width:50px;height:120px;background:linear-gradient(180deg,#5a3a1a,#3a2a0a);border-radius:10% 10% 40% 40%/20% 20% 60% 60%;transform-origin:bottom;animation:bop-tree 8s ease-in-out infinite;}
.scn-birds-of-paradise-sight .bird-1{position:absolute;top:20%;left:10%;width:20px;height:10px;background:radial-gradient(circle at 10% 50%,#8b4513,#6b3a0a);border-radius:50%;animation:bop-fly 15s linear infinite;}
.scn-birds-of-paradise-sight .bird-2{position:absolute;top:15%;left:30%;width:24px;height:12px;background:radial-gradient(circle at 10% 50%,#6b8e23,#4a6a1a);border-radius:50%;animation:bop-fly 18s linear infinite reverse;animation-delay:-5s;}
.scn-birds-of-paradise-sight .bird-3{position:absolute;top:25%;left:50%;width:18px;height:9px;background:radial-gradient(circle at 10% 50%,#d2691e,#a0522d);border-radius:50%;animation:bop-fly 13s linear infinite;animation-delay:-10s;}
@keyframes bop-sky{0%{opacity:.8}50%{opacity:1}100%{opacity:.7}}
@keyframes bop-sun{0%{transform:scale(.9);opacity:.8}50%{transform:scale(1.05);opacity:1}100%{transform:scale(.95);opacity:.85}}
@keyframes bop-mtn{0%{transform:translateY(0)}50%{transform:translateY(-2px)}100%{transform:translateY(0)}}
@keyframes bop-tree{0%{transform:rotate(-1deg)}50%{transform:rotate(1deg)}100%{transform:rotate(-1deg)}}
@keyframes bop-fly{0%{transform:translateX(0) translateY(0) scale(1)}25%{transform:translateX(30vw) translateY(-5px) scale(1.1)}50%{transform:translateX(60vw) translateY(2px) scale(.95)}75%{transform:translateX(90vw) translateY(-3px) scale(1.05)}100%{transform:translateX(120vw) translateY(0) scale(1)}}

.scn-ned-reluctant{background:linear-gradient(180deg,#87ceeb,#5cacee),radial-gradient(circle at 30% 20%,#fff7e0 0%,transparent 60%);}
.scn-ned-reluctant .sky{position:absolute;inset:0;background:linear-gradient(180deg,rgba(255,255,255,.3),transparent);animation:nr-sky 8s ease-in-out infinite alternate;}
.scn-ned-reluctant .sun{position:absolute;top:15%;left:25%;width:80px;height:80px;background:radial-gradient(circle,#fff7e0,#ffe4b5,transparent);border-radius:50%;box-shadow:0 0 60px 15px #ffe4b5;animation:nr-sun 5s ease-in-out infinite alternate;}
.scn-ned-reluctant .ground{position:absolute;bottom:0;left:0;right:0;height:40%;background:linear-gradient(180deg,#90ee90,#228b22);border-radius:20% 20% 0 0/40% 40% 0 0;}
.scn-ned-reluctant .figure{position:absolute;bottom:35%;left:60%;width:30px;height:80px;background:linear-gradient(180deg,#2a2a2a,#0a0a0a);border-radius:30% 30% 20% 20%/40% 40% 30% 30%;transform-origin:bottom;animation:nr-figure 4s ease-in-out infinite;}
.scn-ned-reluctant .harpoon{position:absolute;bottom:45%;left:65%;width:4px;height:60px;background:linear-gradient(180deg,#696969,#333);border-radius:2px;transform-origin:100% 100%;animation:nr-harpoon 3s ease-in-out infinite;}
.scn-ned-reluctant .bird{position:absolute;top:25%;left:10%;width:20px;height:10px;background:radial-gradient(circle at 30% 50%,#333,#222);border-radius:50%;animation:nr-bird 6s linear infinite;}
@keyframes nr-sky{0%{opacity:.8}50%{opacity:1}100%{opacity:.7}}
@keyframes nr-sun{0%{transform:scale(.95)}50%{transform:scale(1.08)}100%{transform:scale(.96)}}
@keyframes nr-figure{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 nr-harpoon{0%{transform:rotate(0) translateY(0)}50%{transform:rotate(10deg) translateY(-2px)}100%{transform:rotate(0) translateY(0)}}
@keyframes nr-bird{0%{transform:translateX(0) translateY(0)}50%{transform:translateX(80vw) translateY(-10px)}100%{transform:translateX(0) translateY(0)}}

.scn-noon-mountain{background:linear-gradient(180deg,#87ceeb,#f0e68c),radial-gradient(circle at 50% 10%,#ffe4b5,transparent);}
.scn-noon-mountain .sky{position:absolute;inset:0;background:linear-gradient(180deg,rgba(255,255,255,.2),transparent);animation:nm-sky 15s ease-in-out infinite alternate;}
.scn-noon-mountain .sun{position:absolute;top:10%;left:50%;width:70px;height:70px;background:radial-gradient(circle,#fff7e0,#ffe4b5,transparent);border-radius:50%;box-shadow:0 0 80px 20px #ffe4b5;animation:nm-sun 20s linear infinite;}
.scn-noon-mountain .mountain-back{position:absolute;bottom:40%;left:0;right:0;height:60%;background:linear-gradient(180deg,#7cb342,#3d5a1e);border-radius:50% 50% 0 0/80% 80% 0 0;animation:nm-mtn 30s ease-in-out infinite;}
.scn-noon-mountain .mountain-mid{position:absolute;bottom:35%;left:-10%;right:10%;height:50%;background:linear-gradient(180deg,#689f38,#2e4e12);border-radius:30% 70% 0 0/60% 80% 0 0;animation:nm-mtn 40s ease-in-out infinite reverse;}
.scn-noon-mountain .path{position:absolute;bottom:5%;left:40%;width:20%;height:30%;background:linear-gradient(180deg,#c2a77a,#8b7355);border-radius:40% 40% 20% 20%/20% 20% 10% 10%;transform:rotate(5deg);animation:nm-path 12s ease-in-out infinite alternate;}
.scn-noon-mountain .tree{position:absolute;bottom:45%;left:65%;width:30px;height:80px;background:linear-gradient(180deg,#5a3a1a,#3a2a0a);border-radius:20% 20% 40% 40%/30% 30% 50% 50%;animation:nm-tree 18s ease-in-out infinite;}
.scn-noon-mountain .figure{position:absolute;bottom:15%;left:45%;width:8px;height:20px;background:#1a1a1a;border-radius:50% 50% 30% 30%/60% 60% 40% 40%;animation:nm-figure 8s ease-in-out infinite;}
@keyframes nm-sky{0%{opacity:.7}50%{opacity:1}100%{opacity:.8}}
@keyframes nm-sun{0%{transform:rotate(0deg) scale(1)}50%{transform:rotate(180deg) scale(1.05)}100%{transform:rotate(360deg) scale(1)}}
@keyframes nm-mtn{0%{transform:translateY(0)}50%{transform:translateY(-2px)}100%{transform:translateY(0)}}
@keyframes nm-path{0%{opacity:.6}50%{opacity:1}100%{opacity:.7}}
@keyframes nm-tree{0%{transform:rotate(-2deg)}50%{transform:rotate(2deg)}100%{transform:rotate(-2deg)}}
@keyframes nm-figure{0%{transform:translateX(0) translateY(0)}50%{transform:translateX(3px) translateY(-1px)}100%{transform:translateX(0) translateY(0)}}

.scn-cooking-game{background:linear-gradient(180deg,#1a1a3e,#0a0a1e),radial-gradient(ellipse at 50% 60%,#ff8c00 0%,transparent 60%);}
.scn-cooking-game .sky{position:absolute;inset:0;background:linear-gradient(180deg,rgba(255,255,255,.05),transparent);animation:cg-sky 10s ease-in-out infinite alternate;}
.scn-cooking-game .stars{position:absolute;inset:0;background:radial-gradient(2px 2px at 20% 10%,#fff,transparent),radial-gradient(2px 2px at 60% 30%,#fff,transparent),radial-gradient(2px 2px at 80% 15%,#fff,transparent);animation:cg-stars 5s ease-in-out infinite alternate;}
.scn-cooking-game .campfire-glow{position:absolute;bottom:20%;left:50%;width:200px;height:100px;transform:translateX(-50%);background:radial-gradient(ellipse,#ff8c00,rgba(255,140,0,0));border-radius:50%;animation:cg-glow 3s ease-in-out infinite alternate;}
.scn-cooking-game .fire{position:absolute;bottom:25%;left:50%;width:30px;height:40px;transform:translateX(-50%);background:linear-gradient(180deg,#ffa500,#ff4500);border-radius:40% 40% 20% 20%/60% 60% 30% 30%;animation:cg-fire .8s ease-in-out infinite alternate;}
.scn-cooking-game .pot{position:absolute;bottom:28%;left:50%;width:40px;height:25px;transform:translateX(-50%);background:linear-gradient(180deg,#555,#222);border-radius:10% 10% 30% 30%/20% 20% 40% 40%;animation:cg-pot 4s ease-in-out infinite;}
.scn-cooking-game .bread{position:absolute;bottom:30%;left:40%;width:25px;height:15px;background:radial-gradient(circle at 30% 30%,#d2a679,#b08040);border-radius:30% 30% 20% 20%;animation:cg-bread 6s ease-in-out infinite alternate;}
.scn-cooking-game .figure{position:absolute;bottom:20%;left:30%;width:20px;height:50px;background:linear-gradient(180deg,#2a2a2a,#0a0a0a);border-radius:30% 30% 20% 20%/40% 40% 30% 30%;transform-origin:bottom;animation:cg-figure 5s ease-in-out infinite;}
@keyframes cg-sky{0%{opacity:.8}50%{opacity:1}100%{opacity:.7}}
@keyframes cg-stars{0%{opacity:.5}50%{opacity:1}100%{opacity:.6}}
@keyframes cg-glow{0%{transform:translateX(-50%) scaleX(.9) scaleY(.8);opacity:.7}50%{transform:translateX(-50%) scaleX(1.1) scaleY(1.1);opacity:1}100%{transform:translateX(-50%) scaleX(.95) scaleY(.85);opacity:.75}}
@keyframes cg-fire{0%{transform:translateX(-50%) scaleY(.9)}50%{transform:translateX(-50%) scaleY(1.2)}100%{transform:translateX(-50%) scaleY(.9)}}
@keyframes cg-pot{0%{transform:translateX(-50%) translateY(0)}50%{transform:translateX(-50%) translateY(-2px)}100%{transform:translateX(-50%) translateY(0)}}
@keyframes cg-bread{0%{transform:scale(.95) rotate(-2deg)}50%{transform:scale(1.05) rotate(2deg)}100%{transform:scale(.98) rotate(-1deg)}}
@keyframes cg-figure{0%{transform:translateX(0) rotate(0)}25%{transform:translateX(2px) rotate(5deg)}50%{transform:translateX(0) rotate(0)}75%{transform:translateX(-2px) rotate(-5deg)}100%{transform:translateX(0) rotate(0)}}

.scn-night-observations-stars { background: linear-gradient(180deg, #0a0a2e 0%, #1a1a4e 40%, #0a1a3e 100%), radial-gradient(ellipse at 50% 20%, #1a2a5e 0%, transparent 50%); }
.scn-night-observations-stars .starfield { position: absolute; top:0; left:0; right:0; height:30%; background: #0a0a2e; background-image: radial-gradient(1px 1px at 10% 20%, #fff 0%, transparent 100%), radial-gradient(1px 1px at 30% 50%, #fff 0%, transparent 100%), radial-gradient(1px 1px at 60% 30%, #fff 0%, transparent 100%), radial-gradient(1px 1px at 80% 70%, #fff 0%, transparent 100%), radial-gradient(1px 1px at 50% 80%, #fff 0%, transparent 100%); animation: no-twinkle 4s ease-in-out infinite alternate; }
.scn-night-observations-stars .water-surface { position: absolute; top:30%; left:0; right:0; height:5%; background: linear-gradient(180deg, transparent 0%, rgba(20,60,100,0.5) 100%); animation: no-water 6s ease-in-out infinite; }
.scn-night-observations-stars .nautilus { position: absolute; top:38%; left:50%; width:80px; height:30px; transform:translateX(-50%); background: linear-gradient(90deg, #2a2a4a, #4a4a6a, #2a2a4a); border-radius: 40% 40% 10% 10%; box-shadow: 0 4px 10px rgba(0,0,0,0.6); animation: no-nautilus 8s ease-in-out infinite; }
.scn-night-observations-stars .window { position: absolute; top:40%; left:50%; width:12px; height:8px; transform:translateX(-50%); background: radial-gradient(circle, #b0d0ff, #6080c0); border-radius: 50%; box-shadow: 0 0 10px 2px #6080c0; animation: no-window 3s ease-in-out infinite alternate; }
.scn-night-observations-stars .seafloor { position: absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #1a2a2a, #0a1a1a); border-radius: 30% 70% 0 0 / 50% 50% 0 0; animation: no-seafloor 12s ease-in-out infinite alternate; }
.scn-night-observations-stars .bioluminescent { position: absolute; width:6px; height:6px; border-radius:50%; background: radial-gradient(circle, #60ffc0, #008050); box-shadow: 0 0 10px 2px #008050; }
.scn-night-observations-stars .lum1 { top:50%; left:25%; animation: no-biolum 7s ease-in-out infinite; }
.scn-night-observations-stars .lum2 { top:60%; left:70%; animation: no-biolum 9s ease-in-out infinite 2s; }
@keyframes no-twinkle { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes no-water { 0% { transform:translateY(0); opacity:0.6 } 50% { transform:translateY(3px); opacity:0.8 } 100% { transform:translateY(0); opacity:0.6 } }
@keyframes no-nautilus { 0%,100% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-5px) } }
@keyframes no-window { 0% { box-shadow: 0 0 5px 1px #6080c0; opacity:0.8 } 50% { box-shadow: 0 0 15px 4px #b0d0ff; opacity:1 } 100% { box-shadow: 0 0 8px 2px #6080c0; opacity:0.9 } }
@keyframes no-seafloor { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes no-biolum { 0%,100% { transform: translate(0,0) scale(1); opacity:0.6 } 50% { transform: translate(5px,-3px) scale(1.3); opacity:1 } }

.scn-waking-in-darkness { background: linear-gradient(180deg, #0a0a0a 0%, #1a1a1a 50%, #0a0a1a 100%), radial-gradient(ellipse at 50% 50%, #1a1a2a 0%, transparent 70%); }
.scn-waking-in-darkness .room { position: absolute; inset: 5% 5% 5% 5%; background: linear-gradient(135deg, #151515, #0a0a0a); border-radius: 10px; box-shadow: inset 0 0 30px rgba(0,0,0,0.8); animation: wd-room 10s ease-in-out infinite alternate; }
.scn-waking-in-darkness .porthole { position: absolute; top: 20%; right: 10%; width: 60px; height: 60px; border-radius: 50%; border: 4px solid #2a2a2a; background: #000; box-shadow: 0 0 10px rgba(0,0,0,0.5); animation: wd-porthole 8s ease-in-out infinite; }
.scn-waking-in-darkness .figure { position: absolute; bottom: 20%; left: 30%; width: 25px; height: 50px; background: linear-gradient(180deg, #1a1a2a, #0a0a1a); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: wd-figure 4s ease-in-out infinite; }
.scn-waking-in-darkness .gauge { position: absolute; top: 30%; left: 15%; width: 30px; height: 30px; border-radius: 50%; background: radial-gradient(circle at 30% 30%, #4a6a8a, #2a3a5a); border: 2px solid #1a2a3a; box-shadow: 0 0 8px rgba(60,100,150,0.3); animation: wd-gauge 3s ease-in-out infinite alternate; }
.scn-waking-in-darkness .gauge-light { position: absolute; top: 30%; left: 15%; width: 30px; height: 30px; border-radius: 50%; background: radial-gradient(circle, rgba(60,100,150,0.6), transparent); box-shadow: 0 0 30px 10px rgba(60,100,150,0.2); animation: wd-glow 2s ease-in-out infinite alternate; }
.scn-waking-in-darkness .shelf { position: absolute; top: 45%; left: 15%; right: 15%; height: 4px; background: linear-gradient(90deg, #1a1a1a, #2a2a2a, #1a1a1a); border-radius: 2px; animation: wd-shelf 6s ease-in-out infinite; }
@keyframes wd-room { 0% { box-shadow: inset 0 0 30px rgba(0,0,0,0.8) } 50% { box-shadow: inset 0 0 40px rgba(0,0,0,0.9) } 100% { box-shadow: inset 0 0 30px rgba(0,0,0,0.8) } }
@keyframes wd-porthole { 0%,100% { opacity:0.3 } 50% { opacity:0.6 } }
@keyframes wd-figure { 0% { transform: translateX(0) rotate(-1deg) } 25% { transform: translateX(3px) rotate(1deg) } 50% { transform: translateX(0) rotate(-1deg) } 75% { transform: translateX(-3px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes wd-gauge { 0% { background: radial-gradient(circle at 30% 30%, #4a6a8a, #2a3a5a); box-shadow: 0 0 5px rgba(60,100,150,0.2) } 50% { background: radial-gradient(circle at 30% 30%, #5a7a9a, #3a4a6a); box-shadow: 0 0 12px rgba(60,100,150,0.4) } 100% { background: radial-gradient(circle at 30% 30%, #4a6a8a, #2a3a5a); box-shadow: 0 0 8px rgba(60,100,150,0.3) } }
@keyframes wd-glow { 0%,100% { opacity:0.4; transform: scale(1) } 50% { opacity:0.8; transform: scale(1.2) } }
@keyframes wd-shelf { 0%,100% { opacity:0.5 } 50% { opacity:0.8 } }

.scn-inside-extinct-volcano { background: linear-gradient(135deg, #0a0a1a 0%, #1a1a2a 50%, #0a0a1a 100%), radial-gradient(ellipse at 50% 80%, #1a1a3a 0%, transparent 70%); }
.scn-inside-extinct-volcano .cavern { position: absolute; inset: 0; background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 60%, #0a0a1a 100%); clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%); border-radius: 0 0 40% 40% / 0 0 30% 30%; animation: iv-cavern 15s ease-in-out infinite alternate; }
.scn-inside-extinct-volcano .water { position: absolute; bottom: 0; left: 0; right: 0; height: 40%; background: linear-gradient(180deg, transparent 0%, #0a1a2a 100%); animation: iv-water 10s ease-in-out infinite; }
.scn-inside-extinct-volcano .nautilus { position: absolute; bottom: 20%; left: 50%; width: 70px; height: 25px; transform:translateX(-50%); background: linear-gradient(90deg, #1a2a3a, #2a4a5a, #1a2a3a); border-radius: 30% 30% 10% 10%; box-shadow: 0 2px 8px rgba(0,0,0,0.5); animation: iv-nautilus 7s ease-in-out infinite; }
.scn-inside-extinct-volcano .beacon { position: absolute; bottom: 30%; left: 50%; width: 10px; height: 10px; transform:translateX(-50%); background: radial-gradient(circle, #ffa040, #804010); border-radius:50%; box-shadow: 0 0 20px 5px rgba(255,160,64,0.3); animation: iv-beacon 5s ease-in-out infinite alternate; }
.scn-inside-extinct-volcano .reflection { position: absolute; bottom: 22%; left: 40%; right: 40%; height: 20px; background: linear-gradient(90deg, transparent, rgba(255,160,64,0.15), transparent); animation: iv-reflection 5s ease-in-out infinite alternate; }
.scn-inside-extinct-volcano .stalactite { position: absolute; top: 0; width: 20px; height: 80px; background: linear-gradient(180deg, #1a1a2a, #0a0a1a); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; }
.scn-inside-extinct-volcano .left { left: 10%; transform-origin: top center; animation: iv-stalactite 12s ease-in-out infinite; }
.scn-inside-extinct-volcano .right { right: 10%; animation: iv-stalactite 12s ease-in-out infinite 3s; }
@keyframes iv-cavern { 0%,100% { opacity:0.8; transform: scale(1) } 50% { opacity:1; transform: scale(1.01) } }
@keyframes iv-water { 0% { opacity:0.6; transform: translateY(0) } 50% { opacity:0.8; transform: translateY(3px) } 100% { opacity:0.6; transform: translateY(0) } }
@keyframes iv-nautilus { 0%,100% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-4px) } }
@keyframes iv-beacon { 0% { box-shadow: 0 0 10px 2px rgba(255,160,64,0.2); opacity:0.5 } 50% { box-shadow: 0 0 30px 8px rgba(255,160,64,0.6); opacity:1 } 100% { box-shadow: 0 0 20px 5px rgba(255,160,64,0.4); opacity:0.8 } }
@keyframes iv-reflection { 0% { opacity:0.2; transform: scaleY(0.5) } 50% { opacity:0.6; transform: scaleY(1.2) } 100% { opacity:0.3; transform: scaleY(0.8) } }
@keyframes iv-stalactite { 0%,100% { transform: rotate(0deg) } 50% { transform: rotate(2deg) } }

.scn-view-of-lake-inside-volcano { background: linear-gradient(180deg, #2a3a4a 0%, #4a6a7a 50%, #2a3a4a 100%), radial-gradient(ellipse at 50% 30%, #6a8a9a 0%, transparent 70%); }
.scn-view-of-lake-inside-volcano .cavern-walls { position: absolute; inset: 0; background: radial-gradient(ellipse at 50% 0%, #6a8a9a 0%, #2a3a4a 80%); border-radius: 0 0 30% 30% / 0 0 20% 20%; animation: vl-walls 20s ease-in-out infinite alternate; }
.scn-view-of-lake-inside-volcano .lake { position: absolute; bottom: 0; left: 0; right: 0; height: 50%; background: linear-gradient(180deg, transparent 0%, #1a2a3a 100%); animation: vl-lake 10s ease-in-out infinite; }
.scn-view-of-lake-inside-volcano .nautilus { position: absolute; bottom: 25%; left: 55%; width: 80px; height: 30px; transform:translateX(-50%); background: linear-gradient(90deg, #3a4a5a, #5a7a8a, #3a4a5a); border-radius: 40% 40% 10% 10%; box-shadow: 0 4px 10px rgba(0,0,0,0.3); animation: vl-nautilus 8s ease-in-out infinite; }
.scn-view-of-lake-inside-volcano .wharf { position: absolute; bottom: 20%; left: 30%; width: 40px; height: 10px; background: linear-gradient(180deg, #5a4a3a, #3a2a1a); border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.4); animation: vl-wharf 6s ease-in-out infinite; }
.scn-view-of-lake-inside-volcano .light-beam { position: absolute; top: 0; left: 40%; right: 40%; bottom: 40%; background: linear-gradient(180deg, rgba(200,220,255,0.4), transparent); clip-path: polygon(50% 0, 0 100%, 100% 100%); animation: vl-beam 5s ease-in-out infinite alternate; }
.scn-view-of-lake-inside-volcano .rock-formation { position: absolute; top: 5%; left: 5%; width: 60px; height: 120px; background: linear-gradient(180deg, #3a4a3a, #2a3a2a); border-radius: 30% 70% 50% 50% / 80% 60% 40% 20%; animation: vl-rock 15s ease-in-out infinite; }
.scn-view-of-lake-inside-volcano .reflection { position: absolute; bottom: 30%; left: 50%; width: 30px; height: 40px; transform:translateX(-50%); background: linear-gradient(180deg, rgba(90,122,138,0.3), transparent); animation: vl-reflection 4s ease-in-out infinite alternate; }
@keyframes vl-walls { 0%,100% { opacity:0.9; transform: scale(1) } 50% { opacity:1; transform: scale(1.01) } }
@keyframes vl-lake { 0% { opacity:0.7; transform: translateY(0) } 50% { opacity:0.9; transform: translateY(2px) } 100% { opacity:0.7; transform: translateY(0) } }
@keyframes vl-nautilus { 0%,100% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-3px) } }
@keyframes vl-wharf { 0%,100% { transform: translateY(0) } 50% { transform: translateY(2px) } }
@keyframes vl-beam { 0% { opacity:0.3 } 50% { opacity:0.7 } 100% { opacity:0.5 } }
@keyframes vl-rock { 0%,100% { transform: rotate(0deg) } 50% { transform: rotate(2deg) } }
@keyframes vl-reflection { 0% { opacity:0.2; transform: translateX(-50%) scaleY(0.8) } 50% { opacity:0.6; transform: translateX(-50%) scaleY(1.2) } 100% { opacity:0.3; transform: translateX(-50%) scaleY(1) } }

/* --- magnificent-sturgeons --- */
.scn-magnificent-sturgeons {
  background:
    linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%),
    radial-gradient(ellipse at 50% 40%, #6a5a3a 0%, transparent 70%);
}
.scn-magnificent-sturgeons .interior {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #2a1a0a 0%, transparent 40%, transparent 60%, #2a1a0a 100%);
  pointer-events: none;
}
.scn-magnificent-sturgeons .window-frame {
  position: absolute; top: 10%; left: 20%; right: 20%; bottom: 10%;
  border: 6px solid #4a3a2a; border-radius: 4px;
  background: linear-gradient(135deg, rgba(200,220,255,0.15), rgba(200,220,255,0.3));
  box-shadow: inset 0 0 30px rgba(0,0,0,0.5);
  animation: st-frame 12s ease-in-out infinite alternate;
}
.scn-magnificent-sturgeons .water-bg {
  position: absolute; top: 10%; left: 20%; right: 20%; bottom: 10%;
  background: linear-gradient(180deg, #1a3a5a 0%, #0a2a4a 100%);
  border-radius: 4px;
  animation: st-water 14s ease-in-out infinite;
}
.scn-magnificent-sturgeons .sturgeon-1 {
  position: absolute; left: 30%; top: 30%; width: 80px; height: 20px;
  background:
    radial-gradient(circle at 20% 40%, #3a2a1a 3px, transparent 3px),
    radial-gradient(circle at 60% 60%, #3a2a1a 4px, transparent 4px),
    linear-gradient(180deg, #3a5a7a 0%, #2a4a6a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: st-sturgeon1 4s ease-in-out infinite;
}
.scn-magnificent-sturgeons .sturgeon-2 {
  position: absolute; left: 50%; top: 45%; width: 70px; height: 18px;
  background:
    radial-gradient(circle at 30% 30%, #3a2a1a 3px, transparent 3px),
    radial-gradient(circle at 70% 50%, #3a2a1a 3px, transparent 3px),
    linear-gradient(180deg, #2a5a7a 0%, #1a4a6a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: st-sturgeon2 4s 2s ease-in-out infinite;
}
.scn-magnificent-sturgeons .glow {
  position: absolute; left: 20%; top: 10%; width: 60%; height: 80%;
  background: radial-gradient(ellipse at 50% 50%, rgba(255,220,150,0.3) 0%, transparent 70%);
  pointer-events: none;
  animation: st-glow 5s ease-in-out infinite alternate;
}
.scn-magnificent-sturgeons .figure {
  position: absolute; bottom: 10%; left: 15%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #1a1a1a, #0a0a0a);
  border-radius: 45% 45% 40% 40% / 60% 60% 40% 40%;
  animation: st-figure 8s ease-in-out infinite;
}
@keyframes st-frame {
  0% { box-shadow: inset 0 0 30px rgba(0,0,0,0.5); }
  50% { box-shadow: inset 0 0 50px rgba(0,0,0,0.6); }
  100% { box-shadow: inset 0 0 30px rgba(0,0,0,0.5); }
}
@keyframes st-water {
  0% { background-position: 0% 0%; }
  50% { background-position: 5% 0%; }
  100% { background-position: 0% 0%; }
}
@keyframes st-sturgeon1 {
  0% { transform: translateX(0) rotate(0); }
  50% { transform: translateX(20px) rotate(-5deg) scale(1.05); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes st-sturgeon2 {
  0% { transform: translateX(0) rotate(0); }
  50% { transform: translateX(-15px) rotate(4deg) scale(1.05); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes st-glow {
  0% { opacity: 0.5; }
  100% { opacity: 1; }
}
@keyframes st-figure {
  0% { transform: translateY(0) rotate(0); }
  50% { transform: translateY(-2px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0); }
}

/* --- tuna-following-nautilus --- */
.scn-tuna-following-nautilus {
  background:
    linear-gradient(180deg, #4a7a9a 0%, #1a3a5a 100%),
    radial-gradient(ellipse at 50% 0%, #ffdd99 0%, transparent 70%);
}
.scn-tuna-following-nautilus .surface {
  position: absolute; top: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #87ceeb, #6bb3d9);
  border-radius: 0 0 50% 50%;
  animation: tu-surface 10s ease-in-out infinite;
}
.scn-tuna-following-nautilus .sunray {
  position: absolute; top: 0; left: 10%; width: 20%; height: 100%;
  background: linear-gradient(180deg, rgba(255,255,200,0.3) 0%, transparent 100%);
  transform: rotate(30deg);
  animation: tu-sunray 6s ease-in-out infinite alternate;
}
.scn-tuna-following-nautilus .tuna-1 {
  position: absolute; top: 30%; left: 20%; width: 70px; height: 18px;
  background: linear-gradient(180deg, #2a4a6a 0%, #c0c0c0 50%, #2a4a6a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  animation: tu-tuna1 6s ease-in-out infinite;
}
.scn-tuna-following-nautilus .tuna-2 {
  position: absolute; top: 50%; left: 40%; width: 55px; height: 14px;
  background: linear-gradient(180deg, #1a3a5a 0%, #b0b0b0 50%, #1a3a5a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  animation: tu-tuna2 6s 3s ease-in-out infinite;
}
.scn-tuna-following-nautilus .water-depth {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 70%, #0a2a4a 0%, transparent 60%);
  animation: tu-depth 8s ease-in-out infinite alternate;
}
.scn-tuna-following-nautilus .bubbles {
  position: absolute; top: 20%; left: 30%; width: 40%; height: 60%;
  background:
    radial-gradient(circle at 10% 20%, rgba(255,255,255,0.2) 2px, transparent 2px),
    radial-gradient(circle at 30% 50%, rgba(255,255,255,0.3) 3px, transparent 3px),
    radial-gradient(circle at 60% 30%, rgba(255,255,255,0.1) 4px, transparent 4px),
    radial-gradient(circle at 80% 70%, rgba(255,255,255,0.15) 2px, transparent 2px);
  animation: tu-bubbles 15s linear infinite;
}
.scn-tuna-following-nautilus .reflection {
  position: absolute; top: 10%; left: 25%; width: 50%; height: 4px;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,0.2), transparent);
  animation: tu-reflection 5s ease-in-out infinite alternate;
}
@keyframes tu-surface {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-3px) scaleY(1.1); }
  100% { transform: translateY(0) scaleY(1); }
}
@keyframes tu-sunray {
  0% { opacity: 0.3; transform: rotate(25deg); }
  100% { opacity: 0.7; transform: rotate(35deg); }
}
@keyframes tu-tuna1 {
  0% { transform: translateX(0) rotate(0); }
  50% { transform: translateX(30px) rotate(-3deg) scaleX(1.1); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes tu-tuna2 {
  0% { transform: translateX(0) rotate(0); }
  50% { transform: translateX(20px) rotate(3deg) scaleX(1.05); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes tu-depth {
  0% { opacity: 0.5; }
  100% { opacity: 0.8; }
}
@keyframes tu-bubbles {
  0% { transform: translateY(0) translateX(0); }
  50% { transform: translateY(-20px) translateX(10px); }
  100% { transform: translateY(0) translateX(0); }
}
@keyframes tu-reflection {
  0% { transform: scaleX(1); opacity: 0.5; }
  100% { transform: scaleX(1.5); opacity: 0.9; }
}

/* --- tuna-geometry-and-fishing --- */
.scn-tuna-geometry-and-fishing {
  background:
    linear-gradient(180deg, #87ceeb 0%, #f0e68c 50%, #4682b4 100%),
    radial-gradient(ellipse at 50% 30%, #ffef99 0%, transparent 70%);
}
.scn-tuna-geometry-and-fishing .sky {
  position: absolute; top: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #4a90d9, #87ceeb);
  animation: tg-sky 20s ease-in-out infinite alternate;
}
.scn-tuna-geometry-and-fishing .sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(180deg, #2e5a7a 0%, #1a3a5a 100%);
  animation: tg-sea 10s ease-in-out infinite alternate;
}
.scn-tuna-geometry-and-fishing .boat {
  position: absolute; bottom: 30%; left: 30%; width: 80px; height: 20px;
  background: linear-gradient(180deg, #6a4a2a, #4a2a1a);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  animation: tg-boat 6s ease-in-out infinite;
}
.scn-tuna-geometry-and-fishing .net {
  position: absolute; bottom: 25%; left: 20%; width: 120px; height: 80px;
  background: repeating-linear-gradient(45deg, transparent, transparent 4px, rgba(255,255,255,0.2) 4px, rgba(255,255,255,0.2) 6px);
  border: 1px solid rgba(255,255,255,0.3);
  border-radius: 0 0 50% 50%;
  animation: tg-net 4s ease-in-out infinite;
}
.scn-tuna-geometry-and-fishing .tuna-jump {
  position: absolute; bottom: 40%; left: 50%; width: 60px; height: 15px;
  background: linear-gradient(180deg, #2a4a6a, #c0c0c0);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform: rotate(-20deg);
  animation: tg-tuna 2s ease-in-out infinite;
}
.scn-tuna-geometry-and-fishing .fisherman {
  position: absolute; bottom: 30%; left: 25%; width: 12px; height: 30px;
  background: #1a1a1a;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(5deg);
  animation: tg-fisherman 5s ease-in-out infinite;
}
.scn-tuna-geometry-and-fishing .sun {
  position: absolute; top: 5%; left: 70%; width: 30px; height: 30px;
  background: radial-gradient(circle, #fff5cc, #ffdd99);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px #ffdd99;
  animation: tg-sun 12s ease-in-out infinite alternate;
}
@keyframes tg-sky {
  0% { background-position: 0% 0%; }
  100% { background-position: 10% 0%; }
}
@keyframes tg-sea {
  0% { transform: translateY(0); }
  50% { transform: translateY(-4px); }
  100% { transform: translateY(0); }
}
@keyframes tg-boat {
  0% { transform: translateX(0) rotate(-2deg); }
  50% { transform: translateX(10px) rotate(2deg); }
  100% { transform: translateX(0) rotate(-2deg); }
}
@keyframes tg-net {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-5px) scaleY(1.1); }
  100% { transform: translateY(0) scaleY(1); }
}
@keyframes tg-tuna {
  0% { transform: translateY(0) rotate(-20deg); }
  30% { transform: translateY(-40px) rotate(-10deg); }
  70% { transform: translateY(-30px) rotate(-25deg); }
  100% { transform: translateY(0) rotate(-20deg); }
}
@keyframes tg-fisherman {
  0% { transform: rotate(5deg); }
  50% { transform: rotate(-5deg) translateX(2px); }
  100% { transform: rotate(5deg); }
}
@keyframes tg-sun {
  0% { opacity: 0.8; transform: scale(1); }
  100% { opacity: 1; transform: scale(1.05); }
}

/* --- glimpsed-fish-list --- */
.scn-glimpsed-fish-list {
  background:
    linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%),
    radial-gradient(ellipse at 50% 50%, #4a3a2a 0%, transparent 70%);
}
.scn-glimpsed-fish-list .window-frame {
  position: absolute; top: 10%; left: 15%; right: 15%; bottom: 10%;
  border: 8px solid #3a2a1a; border-radius: 6px;
  background: rgba(20,30,40,0.5);
  box-shadow: inset 0 0 40px rgba(0,0,0,0.6);
  animation: gf-frame 12s ease-in-out infinite alternate;
}
.scn-glimpsed-fish-list .water-bg {
  position: absolute; top: 10%; left: 15%; right: 15%; bottom: 10%;
  background: linear-gradient(180deg, #1a3a5a 0%, #0a1a2a 100%);
  border-radius: 6px;
  animation: gf-water 8s ease-in-out infinite;
}
.scn-glimpsed-fish-list .eel-whitish {
  position: absolute; top: 25%; left: 30%; width: 80px; height: 10px;
  background: linear-gradient(90deg, rgba(255,255,240,0.8), rgba(200,200,180,0.8));
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(10deg);
  animation: gf-eel1 12s ease-in-out infinite;
}
.scn-glimpsed-fish-list .conger-eel {
  position: absolute; top: 45%; left: 20%; width: 100px; height: 12px;
  background: linear-gradient(90deg, #2a5a3a, #4a7a5a, #5a8a6a);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-5deg);
  animation: gf-eel2 15s ease-in-out infinite;
}
.scn-glimpsed-fish-list .hake {
  position: absolute; top: 55%; left: 50%; width: 40px; height: 8px;
  background: linear-gradient(90deg, #5a4a3a, #8a6a5a);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(15deg);
  animation: gf-hake 10s ease-in-out infinite;
}
.scn-glimpsed-fish-list .wormfish {
  position: absolute; top: 35%; left: 60%; width: 30px; height: 4px;
  background: linear-gradient(90deg, #8a6a5a, #6a4a3a);
  border-radius: 50%;
  transform: rotate(-15deg);
  animation: gf-worm 8s ease-in-out infinite;
}
.scn-glimpsed-fish-list .glow {
  position: absolute; top: 10%; left: 15%; right: 15%; bottom: 10%;
  background: radial-gradient(ellipse at 40% 30%, rgba(255,200,100,0.3) 0%, transparent 70%);
  pointer-events: none;
  animation: gf-glow 6s ease-in-out infinite alternate;
}
@keyframes gf-frame {
  0% { box-shadow: inset 0 0 40px rgba(0,0,0,0.6); }
  50% { box-shadow: inset 0 0 60px rgba(0,0,0,0.8); }
  100% { box-shadow: inset 0 0 40px rgba(0,0,0,0.6); }
}
@keyframes gf-water {
  0% { background-position: 0% 0%; }
  50% { background-position: 5% 0%; }
  100% { background-position: 0% 0%; }
}
@keyframes gf-eel1 {
  0% { transform: translateX(0) rotate(10deg) scaleX(1); }
  50% { transform: translateX(30px) rotate(15deg) scaleX(1.1); }
  100% { transform: translateX(0) rotate(10deg) scaleX(1); }
}
@keyframes gf-eel2 {
  0% { transform: translateX(0) rotate(-5deg) scaleX(1); }
  50% { transform: translateX(20px) rotate(0deg) scaleX(1.1); }
  100% { transform: translateX(0) rotate(-5deg) scaleX(1); }
}
@keyframes gf-hake {
  0% { transform: translateX(0) rotate(15deg); }
  50% { transform: translateX(-20px) rotate(-5deg); }
  100% { transform: translateX(0) rotate(15deg); }
}
@keyframes gf-worm {
  0% { transform: translateY(0) rotate(-15deg); }
  50% { transform: translateY(5px) rotate(10deg); }
  100% { transform: translateY(0) rotate(-15deg); }
}
@keyframes gf-glow {
  0% { opacity: 0.4; }
  100% { opacity: 0.9; }
}

.scn-pearl-oyster-meleagrina {
  background: radial-gradient(ellipse at 45% 55%, #f5e6d0 0%, #e0c8a8 40%, #c8b090 70%, #a89878 100%), linear-gradient(180deg, #fff5e8 0%, #f0e0c8 50%, #d8c8a8 100%);
  position: relative; overflow: hidden;
}
.scn-pearl-oyster-meleagrina .shell-back {
  position: absolute; inset: 8% 5% 10% 5%;
  background: radial-gradient(ellipse at 45% 55%, #e8d5b8 20%, #d4c0a0 50%, #b8a080 80%);
  border-radius: 45% 55% 50% 50% / 55% 50% 45% 50%;
  box-shadow: inset 0 0 40px rgba(180,150,120,.3);
  animation: po-breathe 24s ease-in-out infinite;
}
.scn-pearl-oyster-meleagrina .shell-front {
  position: absolute; inset: 15% 2% 5% 8%;
  background: linear-gradient(160deg, #f0e0d0 0%, #d8c0a8 60%, #c0a888 100%);
  border-radius: 50% 45% 55% 50% / 50% 55% 45% 50%;
  box-shadow: 0 8px 24px rgba(100,80,60,.2);
  animation: po-breathe 24s ease-in-out infinite reverse;
}
.scn-pearl-oyster-meleagrina .nucleus {
  position: absolute; top: 48%; left: 50%; width: 6px; height: 6px;
  transform: translate(-50%,-50%);
  background: radial-gradient(circle, #d4a060 0%, #a08040 100%);
  border-radius: 50%; box-shadow: 0 0 4px rgba(180,140,80,.6);
}
.scn-pearl-oyster-meleagrina .pearl {
  position: absolute; top: 48%; left: 50%; width: 36px; height: 36px;
  transform: translate(-50%,-50%);
  background: radial-gradient(circle at 35% 35%, #fff 0%, #f0e8d8 30%, #e0d0b8 60%, #c8b898 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px rgba(200,180,160,.3), 0 0 60px rgba(200,180,160,.1);
  animation: po-glow 6s ease-in-out infinite;
}
.scn-pearl-oyster-meleagrina .nacre-ring {
  position: absolute; top: 48%; left: 50%; width: 56px; height: 56px;
  transform: translate(-50%,-50%);
  background: radial-gradient(circle, rgba(240,230,210,.3) 0%, rgba(220,200,180,.1) 50%, transparent 70%);
  border-radius: 50%; animation: po-nacre 8s ease-in-out infinite;
}
.scn-pearl-oyster-meleagrina .light-glow {
  position: absolute; top: 20%; left: 30%; width: 60%; height: 50%;
  background: radial-gradient(ellipse at center, rgba(255,240,220,.15) 0%, transparent 70%);
  pointer-events: none; animation: po-shimmer 10s ease-in-out infinite;
}
.scn-pearl-oyster-meleagrina .glint {
  position: absolute; top: 40%; left: 52%; width: 12px; height: 12px;
  background: radial-gradient(circle, rgba(255,255,255,.9) 0%, rgba(255,255,255,.2) 50%, transparent 70%);
  border-radius: 50%; animation: po-glint 4s ease-in-out infinite;
}
@keyframes po-breathe{0%{transform:scale(1)}50%{transform:scale(1.005)}100%{transform:scale(1)}}
@keyframes po-glow{0%{box-shadow:0 0 20px rgba(200,180,160,.3),0 0 40px rgba(200,180,160,.1);transform:translate(-50%,-50%) scale(1)}50%{box-shadow:0 0 40px rgba(220,200,180,.5),0 0 80px rgba(220,200,180,.2);transform:translate(-50%,-50%) scale(1.02)}100%{box-shadow:0 0 20px rgba(200,180,160,.3),0 0 40px rgba(200,180,160,.1);transform:translate(-50%,-50%) scale(1)}}
@keyframes po-nacre{0%{width:56px;height:56px;opacity:.6}50%{width:64px;height:64px;opacity:.8}100%{width:56px;height:56px;opacity:.6}}
@keyframes po-shimmer{0%{opacity:.6}50%{opacity:.9}100%{opacity:.6}}
@keyframes po-glint{0%{opacity:0;transform:scale(.5)}25%{opacity:1;transform:scale(1.2)}50%{opacity:0;transform:scale(.8)}75%{opacity:.6;transform:scale(1)}100%{opacity:0;transform:scale(.5)}}

.scn-pearl-count-misu {
  background: radial-gradient(ellipse at 50% 60%, #f5e0b0 0%, #e8d0a0 30%, #d0b888 60%, #b8a070 100%), linear-gradient(180deg, #fff5e0 0%, #f0e0c0 50%, #d8c8a0 100%);
  position: relative; overflow: hidden;
}
.scn-pearl-count-misu .bg-warm {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 40% 50%, rgba(255,240,200,.2) 0%, transparent 70%);
}
.scn-pearl-count-misu .ned-figure {
  position: absolute; bottom: 12%; left: 18%; width: 28px; height: 60px;
  background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 60%, #1a1a2a 100%);
  border-radius: 45% 55% 40% 40% / 55% 55% 40% 40%;
  transform-origin: bottom center; animation: pc-jump 1.5s ease-in-out infinite;
}
.scn-pearl-count-misu .conseil-figure {
  position: absolute; bottom: 12%; left: 42%; width: 24px; height: 54px;
  background: linear-gradient(180deg, #3a4a4a 0%, #2a3a3a 60%, #1a2a2a 100%);
  border-radius: 50% 50% 45% 45% / 55% 55% 40% 40%;
  animation: pc-stand 2s ease-in-out infinite;
}
.scn-pearl-count-misu .aronnax-figure {
  position: absolute; bottom: 12%; right: 20%; width: 26px; height: 56px;
  background: linear-gradient(180deg, #4a3a3a 0%, #3a2a2a 60%, #2a1a1a 100%);
  border-radius: 48% 52% 42% 42% / 54% 54% 40% 40%;
  animation: pc-gesture 3s ease-in-out infinite;
}
.scn-pearl-count-misu .oyster-big {
  position: absolute; bottom: 28%; left: 50%; width: 60px; height: 40px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 60%, #d4b090 0%, #b89070 50%, #a07858 100%);
  border-radius: 45% 55% 50% 50% / 60% 60% 40% 40%;
  box-shadow: 0 4px 12px rgba(100,70,50,.3);
  animation: pc-shake 2s ease-in-out infinite;
}
.scn-pearl-count-misu .pearls-burst {
  position: absolute; bottom: 40%; left: 50%; width: 50px; height: 50px;
  transform: translate(-50%,0);
  background: radial-gradient(circle at 30% 30%, rgba(255,255,255,.6) 0%, rgba(240,224,192,.2) 30%, transparent 60%);
  border-radius: 50%; animation: pc-burst 1.8s ease-out infinite;
}
.scn-pearl-count-misu .pearl-a {
  position: absolute; bottom: 42%; left: 46%; width: 8px; height: 8px;
  background: radial-gradient(circle, #f5e8d0 0%, #e0c8a8 100%);
  border-radius: 50%; box-shadow: 0 0 6px rgba(200,180,160,.5);
  animation: pc-spark 1.8s ease-out infinite .2s;
}
.scn-pearl-count-misu .pearl-b {
  position: absolute; bottom: 44%; left: 52%; width: 6px; height: 6px;
  background: radial-gradient(circle, #f5e8d0 0%, #e0c8a8 100%);
  border-radius: 50%; box-shadow: 0 0 4px rgba(200,180,160,.5);
  animation: pc-spark 1.8s ease-out infinite .5s;
}
.scn-pearl-count-misu .exclamation {
  position: absolute; top: 15%; right: 25%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #c87030 0%, #a85820 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
  animation: pc-pop 1.5s ease-in-out infinite;
}
@keyframes pc-jump{0%{transform:translateY(0) rotate(-2deg)}25%{transform:translateY(-12px) rotate(3deg)}50%{transform:translateY(-16px) rotate(5deg)}75%{transform:translateY(-8px) rotate(1deg)}100%{transform:translateY(0) rotate(-2deg)}}
@keyframes pc-stand{0%{transform:translateY(0)}50%{transform:translateY(-2px)}100%{transform:translateY(0)}}
@keyframes pc-gesture{0%{transform:translateY(0) rotate(-1deg)}50%{transform:translateY(-3px) rotate(2deg)}100%{transform:translateY(0) rotate(-1deg)}}
@keyframes pc-shake{0%{transform:translateX(-50%) rotate(-2deg)}25%{transform:translateX(-48%) rotate(3deg)}50%{transform:translateX(-50%) rotate(-1deg)}75%{transform:translateX(-52%) rotate(4deg)}100%{transform:translateX(-50%) rotate(-2deg)}}
@keyframes pc-burst{0%{transform:translate(-50%,0) scale(.5);opacity:1}50%{transform:translate(-40%,-30%) scale(1.3);opacity:.7}100%{transform:translate(-30%,-60%) scale(.6);opacity:0}}
@keyframes pc-spark{0%{opacity:0;transform:scale(.5)}50%{opacity:1;transform:scale(1.3)}100%{opacity:0;transform:scale(.4)}}
@keyframes pc-pop{0%{transform:scale(1);opacity:.5}30%{transform:scale(1.4);opacity:1}60%{transform:scale(.9);opacity:.7}100%{transform:scale(1);opacity:.5}}

.scn-processing-pearls {
  background: radial-gradient(ellipse at 50% 40%, #f0e4d0 0%, #dcc8b0 40%, #c0a890 70%, #a08878 100%), linear-gradient(180deg, #faf0e0 0%, #ede0c8 50%, #d8c8b0 100%);
  position: relative; overflow: hidden;
}
.scn-processing-pearls .bg-workshop {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(200,180,160,.1) 0%, transparent 60%, rgba(160,140,120,.1) 100%);
}
.scn-processing-pearls .tank {
  position: absolute; top: 8%; left: 12%; width: 30%; height: 30%;
  background: linear-gradient(180deg, #b8d8e8 0%, #8cb8d0 50%, #60a0b8 100%);
  border-radius: 8% 8% 4% 4%; box-shadow: inset 0 -8px 20px rgba(60,120,140,.3), 0 4px 12px rgba(80,100,120,.2);
}
.scn-processing-pearls .tank-water {
  position: absolute; top: 10%; left: 14%; width: 26%; height: 26%;
  background: radial-gradient(ellipse at 50% 40%, rgba(180,220,240,.2) 0%, rgba(120,180,200,.1) 60%, transparent 100%);
  pointer-events: none; animation: pp-ripple 6s ease-in-out infinite;
}
.scn-processing-pearls .water-ripple {
  position: absolute; top: 16%; left: 22%; width: 20px; height: 20px;
  border: 2px solid rgba(180,220,240,.3);
  border-radius: 50%; animation: pp-ring 5s ease-out infinite;
}
.scn-processing-pearls .work-table {
  position: absolute; bottom: 18%; left: 5%; right: 5%; height: 14%;
  background: linear-gradient(180deg, #c8b898 0%, #a89070 60%, #907858 100%);
  border-radius: 4% 4% 2% 2%; box-shadow: 0 -4px 12px rgba(80,60,40,.2);
}
.scn-processing-pearls .oyster-open {
  position: absolute; bottom: 22%; left: 35%; width: 50px; height: 34px;
  background: radial-gradient(ellipse at 50% 55%, #e0c8b0 0%, #c0a888 50%, #a08868 100%);
  border-radius: 40% 60% 50% 50% / 55% 55% 40% 40%;
  box-shadow: 0 2px 8px rgba(80,60,40,.3);
  animation: pp-oyster 12s ease-in-out infinite;
}
.scn-processing-pearls .pearl-line {
  position: absolute; bottom: 24%; left: 48%; width: 40px; height: 8px;
  background: repeating-linear-gradient(90deg, #f0e0c8 0px, #f0e0c8 6px, transparent 6px, transparent 10px);
  border-radius: 2px; animation: pp-line 4s ease-in-out infinite;
}
.scn-processing-pearls .pearl-line::before {
  content: ''; position: absolute; left: 0; top: -2px; width: 8px; height: 8px;
  background: radial-gradient(circle, #f5e8d0 0%, #e0c8a8 100%);
  border-radius: 50%; box-shadow: 0 0 4px rgba(200,180,160,.4);
  animation: pp-drop 4s ease-in-out infinite;
}
.scn-processing-pearls .hand-shadow {
  position: absolute; bottom: 20%; left: 30%; width: 40px; height: 30px;
  background: radial-gradient(ellipse at 50% 60%, rgba(60,40,30,.25) 0%, transparent 70%);
  border-radius: 50%; animation: pp-hand 8s ease-in-out infinite;
}
@keyframes pp-ripple{0%{transform:scale(1);opacity:.4}50%{transform:scale(1.03);opacity:.6}100%{transform:scale(1);opacity:.4}}
@keyframes pp-ring{0%{width:0;height:0;opacity:.6;border-width:3px}100%{width:40px;height:40px;opacity:0;border-width:1px}}
@keyframes pp-oyster{0%{transform:rotate(-1deg)}50%{transform:rotate(1deg)}100%{transform:rotate(-1deg)}}
@keyframes pp-line{0%{background-position:0 0}50%{background-position:20px 0}100%{background-position:0 0}}
@keyframes pp-drop{0%{left:0;opacity:0}30%{left:0;opacity:1}70%{left:30px;opacity:1}100%{left:40px;opacity:0}}
@keyframes pp-hand{0%{transform:translateX(-10px);opacity:.3}50%{transform:translateX(10px);opacity:.6}100%{transform:translateX(-10px);opacity:.3}}

.scn-pearl-grading {
  background: radial-gradient(ellipse at 40% 50%, #f5ede0 0%, #e8dcc8 30%, #d0c0a8 60%, #b8a890 100%), linear-gradient(180deg, #faf5ec 0%, #f0e8d8 50%, #e0d0c0 100%);
  position: relative; overflow: hidden;
}
.scn-pearl-grading .bg-shelf {
  position: absolute; inset: 0 0 50% 0;
  background: repeating-linear-gradient(0deg, transparent 0px, transparent 40px, rgba(180,160,140,.08) 40px, rgba(180,160,140,.08) 42px);
}
.scn-pearl-grading .table-surface {
  position: absolute; bottom: 10%; left: 2%; right: 2%; height: 30%;
  background: linear-gradient(180deg, #d8c8b0 0%, #b8a890 60%, #a08878 100%);
  border-radius: 4% 4% 2% 2%; box-shadow: 0 -6px 20px rgba(80,60,40,.15);
}
.scn-pearl-grading .tray-large {
  position: absolute; bottom: 20%; left: 18%; width: 60px; height: 30px;
  background: radial-gradient(ellipse at 50% 50%, #f5e8d0 0%, #e0c8a8 60%, #c0a888 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  box-shadow: 0 2px 8px rgba(80,60,40,.2);
  animation: pg-glow-lg 5s ease-in-out infinite;
}
.scn-pearl-grading .tray-medium {
  position: absolute; bottom: 22%; left: 44%; width: 48px; height: 24px;
  background: radial-gradient(ellipse at 50% 50%, #f0e4d0 0%, #dcc8b0 60%, #b8a088 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  box-shadow: 0 2px 8px rgba(80,60,40,.2);
  animation: pg-glow-md 4.2s ease-in-out infinite .5s;
}
.scn-pearl-grading .tray-small {
  position: absolute; bottom: 24%; left: 68%; width: 36px; height: 18px;
  background: radial-gradient(ellipse at 50% 50%, #f0e4d0 0%, #d8c8b0 60%, #b8a088 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  box-shadow: 0 2px 8px rgba(80,60,40,.2);
  animation: pg-glow-sm 3.6s ease-in-out infinite .8s;
}
.scn-pearl-grading .light-ray {
  position: absolute; top: 0; left: 35%; width: 30%; height: 60%;
  background: linear-gradient(180deg, rgba(255,248,230,.15) 0%, rgba(255,248,230,.05) 50%, transparent 100%);
  clip-path: polygon(20% 0, 80% 0, 60% 100%, 40% 100%);
  pointer-events: none; animation: pg-sweep 8s ease-in-out infinite;
}
.scn-pearl-grading .loupe {
  position: absolute; bottom: 28%; left: 52%; width: 24px; height: 24px;
  border: 3px solid #b8a088;
  border-radius: 50%;
  background: radial-gradient(circle, rgba(255,255,255,.1) 0%, rgba(200,180,160,.05) 60%, transparent 80%);
  box-shadow: 0 0 12px rgba(180,160,140,.2);
  animation: pg-loupe 6s ease-in-out infinite;
}
.scn-pearl-grading .shadow-soft {
  position: absolute; bottom: 5%; left: 10%; right: 10%; height: 8%;
  background: radial-gradient(ellipse at 50% 50%, rgba(80,60,40,.08) 0%, transparent 70%);
  pointer-events: none; animation: pg-shadow 12s ease-in-out infinite;
}
@keyframes pg-glow-lg{0%{box-shadow:0 2px 8px rgba(80,60,40,.2)}50%{box-shadow:0 0 20px rgba(220,200,180,.4),0 0 40px rgba(220,200,180,.15)}100%{box-shadow:0 2px 8px rgba(80,60,40,.2)}}
@keyframes pg-glow-md{0%{box-shadow:0 2px 8px rgba(80,60,40,.2)}50%{box-shadow:0 0 16px rgba(210,190,170,.35),0 0 32px rgba(210,190,170,.12)}100%{box-shadow:0 2px 8px rgba(80,60,40,.2)}}
@keyframes pg-glow-sm{0%{box-shadow:0 2px 8px rgba(80,60,40,.2)}50%{box-shadow:0 0 12px rgba(200,180,160,.3),0 0 24px rgba(200,180,160,.1)}100%{box-shadow:0 2px 8px rgba(80,60,40,.2)}}
@keyframes pg-sweep{0%{opacity:.5;transform:translateX(-5%)}50%{opacity:.9;transform:translateX(5%)}100%{opacity:.5;transform:translateX(-5%)}}
@keyframes pg-loupe{0%{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-4px) rotate(2deg)}100%{transform:translateY(0) rotate(-2deg)}}
@keyframes pg-shadow{0%{transform:scaleX(1);opacity:.4}50%{transform:scaleX(1.05);opacity:.6}100%{transform:scaleX(1);opacity:.4}}

.scn-ph {
  background:
    linear-gradient(180deg, #78bbff 0%, #b8d8ff 30%, #ffe8b0 70%, #d4a860 100%),
    radial-gradient(ellipse at 60% 20%, #fff4d0 0%, transparent 60%);
}
.scn-ph .sky {
  position: absolute;
  inset: 0 0 55% 0;
  background: linear-gradient(180deg, #9acdff 0%, transparent 100%);
  animation: ph-sky 16s ease-in-out infinite alternate;
}
.scn-ph .sun-halo {
  position: absolute;
  top: 8%;
  right: 18%;
  width: 80px;
  height: 80px;
  background: radial-gradient(circle, #fffbe0 0%, #ffe680 30%, transparent 70%);
  border-radius: 50%;
  filter: blur(12px);
  opacity: 0.7;
  animation: ph-sun 20s ease-in-out infinite alternate;
}
.scn-ph .dune-back {
  position: absolute;
  bottom: 38%;
  left: 0;
  right: 0;
  height: 22%;
  background: linear-gradient(180deg, #c8944a 0%, #a87838 100%);
  border-radius: 70% 30% 0 0 / 60% 40% 0 0;
  box-shadow: inset 0 6px 18px rgba(0,0,0,0.15);
  animation: ph-dune 24s ease-in-out infinite alternate;
}
.scn-ph .dune-mid {
  position: absolute;
  bottom: 28%;
  left: -5%;
  right: -5%;
  height: 20%;
  background: linear-gradient(180deg, #d4a860 0%, #b89048 100%);
  border-radius: 40% 60% 0 0 / 50% 50% 0 0;
  box-shadow: inset 0 4px 12px rgba(0,0,0,0.2);
  animation: ph-dune 28s ease-in-out infinite alternate-reverse;
}
.scn-ph .dune-front {
  position: absolute;
  bottom: 18%;
  left: -10%;
  right: -10%;
  height: 18%;
  background: linear-gradient(180deg, #e8c080 0%, #c8a058 100%);
  border-radius: 50% 50% 0 0 / 70% 70% 0 0;
  box-shadow: inset 0 2px 8px rgba(0,0,0,0.25);
  animation: ph-dune 32s ease-in-out infinite alternate;
}
.scn-ph .chariot-wheel {
  position: absolute;
  bottom: 22%;
  left: 30%;
  width: 40px;
  height: 40px;
  border: 4px solid #6a4420;
  border-radius: 50%;
  background: radial-gradient(circle, #8a5a2a 20%, transparent 20%);
  box-shadow: 0 0 0 2px #5a3418, inset 0 0 0 2px #5a3418;
  opacity: 0.7;
  transform: rotate(15deg);
  animation: ph-bury 40s ease-in-out infinite;
}
.scn-ph .spear {
  position: absolute;
  bottom: 26%;
  left: 55%;
  width: 4px;
  height: 50px;
  background: linear-gradient(180deg, #7a5220 0%, #5a3a14 50%, #3a2210 100%);
  border-radius: 2px 2px 0 0;
  transform-origin: bottom center;
  animation: ph-spear 6s ease-in-out infinite;
}
.scn-ph .spear::before {
  content: "";
  position: absolute;
  top: -8px;
  left: -4px;
  width: 12px;
  height: 10px;
  background: #8a6a2a;
  clip-path: polygon(50% 0%, 0% 100%, 100% 100%);
}
.scn-ph .helmet {
  position: absolute;
  bottom: 24%;
  left: 70%;
  width: 28px;
  height: 20px;
  background: radial-gradient(ellipse at 50% 30%, #9a7a4a 0%, #6a522a 60%, #4a3a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-10deg);
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: ph-bury 42s ease-in-out infinite reverse;
}
.scn-ph .sand-particle {
  position: absolute;
  width: 4px;
  height: 4px;
  background: #e0c080;
  border-radius: 50%;
  opacity: 0.5;
  filter: blur(1px);
}
.scn-ph .sand-particle.a {
  bottom: 15%;
  left: 20%;
  animation: ph-sand 8s linear infinite;
}
.scn-ph .sand-particle.b {
  bottom: 20%;
  right: 25%;
  width: 3px;
  height: 3px;
  background: #d4b060;
  animation: ph-sand 10s linear infinite 3s;
}
@keyframes ph-sky {
  0% { opacity: 0.85; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes ph-sun {
  0% { transform: scale(0.95); opacity: 0.6; }
  50% { transform: scale(1.05) translateX(-3px); opacity: 0.8; }
  100% { transform: scale(0.98); opacity: 0.7; }
}
@keyframes ph-dune {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(1px); }
}
@keyframes ph-spear {
  0% { transform: rotate(-2deg); }
  50% { transform: rotate(3deg); }
  100% { transform: rotate(-1deg); }
}
@keyframes ph-bury {
  0% { transform: rotate(10deg) translateY(0); opacity: 0.6; }
  50% { transform: rotate(0deg) translateY(-2px); opacity: 0.8; }
  100% { transform: rotate(-5deg) translateY(1px); opacity: 0.5; }
}
@keyframes ph-sand {
  0% { transform: translateX(0) translateY(0) scale(1); opacity: 0.4; }
  25% { transform: translateX(15px) translateY(-5px) scale(1.2); opacity: 0.7; }
  50% { transform: translateX(30px) translateY(-2px) scale(0.9); opacity: 0.3; }
  75% { transform: translateX(45px) translateY(3px) scale(1.1); opacity: 0.6; }
  100% { transform: translateX(60px) translateY(0) scale(1); opacity: 0.4; }
}

.scn-nemo's-benefaction {
  background: 
    linear-gradient(180deg, #4a7a9a 0%, #2a5a7a 30%, #1a3a5a 60%, #0a1a2a 100%),
    radial-gradient(ellipse at 50% 80%, #6a9aba 0%, transparent 60%);
}
.scn-nemo's-benefaction .bg-deep {
  position: absolute; inset: 0; background: rgba(10,26,42,0.6);
  animation: nb-deep 8s ease-in-out infinite alternate;
}
.scn-nemo's-benefaction .light-ray {
  position: absolute; top: 0; width: 60%; height: 100%; background: linear-gradient(180deg, rgba(255,230,170,0.35) 0%, rgba(255,230,170,0) 70%);
  filter: blur(4px);
}
.scn-nemo's-benefaction .ray-a {
  left: 10%; transform: rotate(8deg); animation: nb-ray 12s ease-in-out infinite alternate;
  background: linear-gradient(180deg, rgba(255,230,170,0.3) 0%, transparent 80%);
}
.scn-nemo's-benefaction .ray-b {
  right: 10%; transform: rotate(-6deg); animation: nb-ray 16s ease-in-out infinite alternate-reverse;
  background: linear-gradient(180deg, rgba(255,230,170,0.25) 0%, transparent 80%);
}
.scn-nemo's-benefaction .seafloor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #8a6a4a 0%, #6a4a2a 50%, #4a2a1a 100%);
  border-radius: 60% 40% 0 0 / 100% 80% 0 0;
  box-shadow: inset 0 4px 20px rgba(0,0,0,0.4);
}
.scn-nemo's-benefaction .coral {
  position: absolute; bottom: 15%; width: 30px; height: 40px;
  background: linear-gradient(135deg, #d87050 0%, #a04030 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 30% 30%;
  box-shadow: inset 0 -4px 8px rgba(0,0,0,0.3);
  transform-origin: bottom center;
}
.scn-nemo's-benefaction .coral-left {
  left: 18%; animation: nb-coral 5s ease-in-out infinite;
}
.scn-nemo's-benefaction .coral-right {
  right: 18%; animation: nb-coral 6s ease-in-out infinite reverse;
  background: linear-gradient(135deg, #c86848 0%, #904028 100%);
}
.scn-nemo's-benefaction .figure-nemo {
  position: absolute; bottom: 18%; left: 32%; width: 30px; 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: nb-nemo 4s ease-in-out infinite;
}
.scn-nemo's-benefaction .figure-nemo::before {
  content:''; position: absolute; top: 5%; left: 50%; transform: translateX(-50%);
  width: 8px; height: 12px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; /* side profile, no face */
}
.scn-nemo's-benefaction .figure-nemo::after {
  content:''; position: absolute; bottom: 10%; left: 50%; transform: translateX(-50%);
  width: 4px; height: 14px;
  background: #2a1a0a; border-radius: 30%; /* arm extending */
  animation: nb-arm 4s ease-in-out infinite;
}
.scn-nemo's-benefaction .figure-indian {
  position: absolute; bottom: 18%; right: 35%; width: 26px; height: 50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1a0a 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 45% 45%;
  transform-origin: bottom center;
  animation: nb-indian 4.5s ease-in-out infinite;
}
.scn-nemo's-benefaction .figure-indian::before {
  content:''; position: absolute; top: 8%; left: 50%; transform: translateX(-50%);
  width: 6px; height: 10px;
  background: #2a1a0a; border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
}
.scn-nemo's-benefaction .pearl {
  position: absolute; bottom: 32%; left: 50%; transform: translate(-50%, 0);
  width: 14px; height: 14px;
  background: radial-gradient(circle at 35% 35%, #fff8e0 0%, #ffe080 60%, #c89040 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px rgba(255,200,100,0.6), 0 0 40px 12px rgba(255,200,100,0.3);
  animation: nb-pearl 3s ease-in-out infinite alternate;
}
@keyframes nb-deep { 0% { opacity: 0.5 } 50% { opacity: 0.7 } 100% { opacity: 0.5 } }
@keyframes nb-ray { 0% { opacity: 0.3; transform: rotate(6deg) scaleX(1) } 50% { opacity: 0.6; transform: rotate(10deg) scaleX(1.1) } 100% { opacity: 0.3; transform: rotate(6deg) scaleX(1) } }
@keyframes nb-coral { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-3px) rotate(3deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes nb-nemo { 0% { transform: translateX(0) translateY(0) rotate(-1deg) } 50% { transform: translateX(2px) translateY(-1px) rotate(1deg) } 100% { transform: translateX(0) translateY(0) rotate(-1deg) } }
@keyframes nb-arm { 0% { transform: translate(-50%, 0) rotate(0) } 50% { transform: translate(-50%, -2px) rotate(10deg) } 100% { transform: translate(-50%, 0) rotate(0) } }
@keyframes nb-indian { 0% { transform: translateX(0) translateY(0) rotate(1deg) } 50% { transform: translateX(-2px) translateY(-1px) rotate(-1deg) } 100% { transform: translateX(0) translateY(0) rotate(1deg) } }
@keyframes nb-pearl { 0% { transform: translate(-50%, 0) scale(1); box-shadow: 0 0 20px 6px rgba(255,200,100,0.5), 0 0 40px 12px rgba(255,200,100,0.2); } 50% { transform: translate(-50%, -2px) scale(1.15); box-shadow: 0 0 30px 10px rgba(255,200,100,0.8), 0 0 60px 20px rgba(255,200,100,0.4); } 100% { transform: translate(-50%, 0) scale(1); box-shadow: 0 0 20px 6px rgba(255,200,100,0.5), 0 0 40px 12px rgba(255,200,100,0.2); } }

.scn-nemo's-whim {
  background:
    linear-gradient(180deg, #4a7a7a 0%, #2a5a6a 30%, #1a3a4a 60%, #0a1a2a 100%),
    radial-gradient(ellipse at 50% 20%, #6a9a8a 0%, transparent 60%);
}
.scn-nemo's-whim .bg-water {
  position: absolute; inset: 0; background: rgba(10,26,34,0.3);
  animation: nw-water 10s ease-in-out infinite alternate;
}
.scn-nemo's-whim .wall-left {
  position: absolute; top: 5%; bottom: 5%; left: 0; width: 22%;
  background: linear-gradient(90deg, #2a3a2a 0%, #1a2a1a 40%, transparent 100%);
  border-radius: 0 30% 30% 0 / 0 40% 40% 0;
  box-shadow: inset -8px 0 20px rgba(0,0,0,0.5);
  animation: nw-wall 15s ease-in-out infinite;
}
.scn-nemo's-whim .wall-right {
  position: absolute; top: 5%; bottom: 5%; right: 0; width: 18%;
  background: linear-gradient(270deg, #2a3a2a 0%, #1a2a1a 40%, transparent 100%);
  border-radius: 30% 0 0 30% / 40% 0 0 40%;
  box-shadow: inset 8px 0 20px rgba(0,0,0,0.5);
  animation: nw-wall 18s ease-in-out infinite reverse;
}
.scn-nemo's-whim .nautilus {
  position: absolute; bottom: 25%; left: 50%; transform: translateX(-50%);
  width: 100px; height: 30px;
  background: linear-gradient(180deg, #6a6a7a 0%, #4a4a5a 50%, #3a3a4a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.6), inset 0 2px 4px rgba(255,255,255,0.1);
  transform-origin: center center;
  animation: nw-sub 8s ease-in-out infinite;
}
.scn-nemo's-whim .nautilus::before {
  content:''; position: absolute; top: 20%; left: 10%; width: 12px; height: 12px;
  background: radial-gradient(circle, #4a6a6a 0%, #2a4a4a 100%);
  border-radius: 50%;
  box-shadow: inset 0 0 4px rgba(0,0,0,0.3);
}
.scn-nemo's-whim .nautilus::after {
  content:''; position: absolute; bottom: -10%; left: 50%; transform: translateX(-50%);
  width: 30px; height: 8px;
  background: linear-gradient(180deg, #5a5a6a 0%, #3a3a4a 100%);
  border-radius: 0 0 30% 30%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
}
.scn-nemo's-whim .propeller {
  position: absolute; bottom: 27%; right: 18%; width: 12px; height: 4px;
  background: #8a8a9a;
  border-radius: 20%;
  animation: nw-prop 2s ease-in-out infinite alternate;
}
.scn-nemo's-whim .bubbles {
  position: absolute; bottom: 35%; width: 6px; height: 6px;
  background: rgba(200,230,255,0.3);
  border-radius: 50%;
  animation: nw-bubble 6s linear infinite;
}
.scn-nemo's-whim .bubble-a {
  left: 45%; animation-delay: 0s;
}
.scn-nemo's-whim .bubble-b {
  left: 52%; width: 4px; height: 4px; animation-delay: 2s;
}
.scn-nemo's-whim .shaft {
  position: absolute; top: 0; width: 30%; height: 100%;
  background: linear-gradient(180deg, rgba(200,240,230,0.2) 0%, transparent 60%);
  filter: blur(4px);
}
.scn-nemo's-whim .shaft-a {
  left: 15%; transform: rotate(5deg); animation: nw-shaft 14s ease-in-out infinite alternate;
}
.scn-nemo's-whim .shaft-b {
  right: 15%; transform: rotate(-3deg); animation: nw-shaft 18s ease-in-out infinite alternate-reverse;
}
@keyframes nw-water { 0% { opacity: 0.4 } 50% { opacity: 0.6 } 100% { opacity: 0.4 } }
@keyframes nw-wall { 0% { transform: translateX(0) } 50% { transform: translateX(-2px) } 100% { transform: translateX(0) } }
@keyframes nw-sub { 0% { transform: translateX(-50%) translateY(0) rotate(0deg) } 25% { transform: translateX(-50%) translateY(-1px) rotate(0.5deg) } 50% { transform: translateX(-50%) translateY(0) rotate(-0.5deg) } 75% { transform: translateX(-50%) translateY(1px) rotate(0deg) } 100% { transform: translateX(-50%) translateY(0) rotate(0deg) } }
@keyframes nw-prop { 0% { transform: scaleY(1) } 100% { transform: scaleY(1.4) } }
@keyframes nw-bubble { 0% { transform: translateY(0) scale(1); opacity: 0.4 } 50% { transform: translateY(-20px) scale(1.2); opacity: 0.6 } 100% { transform: translateY(-40px) scale(0.8); opacity: 0 } }
@keyframes nw-shaft { 0% { opacity: 0.2; transform: rotate(4deg) scaleX(1) } 50% { opacity: 0.4; transform: rotate(6deg) scaleX(1.1) } 100% { opacity: 0.2; transform: rotate(4deg) scaleX(1) } }

.scn-nemo\'s-whim {
  background:
    linear-gradient(180deg, #a6c8ff 0%, #3a6ea0 40%, #1a3050 70%, #0a1a30 100%),
    radial-gradient(ellipse at 50% 20%, #d0eaff 0%, transparent 60%);
  position: relative;
  overflow: hidden;
}
.scn-nemo\'s-whim .sunrays {
  position: absolute;
  inset: 0 0 50% 0;
  background: linear-gradient(135deg, rgba(255,240,200,.3), transparent 50%, rgba(200,230,255,.1) 80%);
  background-size: 200% 200%;
  animation: nem-sunrays 12s ease-in-out infinite alternate;
}
.scn-nemo\'s-whim .surface {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  height: 18%;
  background: linear-gradient(180deg, #c8e0ff 0%, #80b8e0 100%);
  border-radius: 0 0 50% 50% / 0 0 30% 30%;
  opacity: .7;
  animation: nem-surface 6s ease-in-out infinite alternate;
}
.scn-nemo\'s-whim .nautilus {
  position: absolute;
  bottom: 40%;
  left: 50%;
  width: 160px;
  height: 50px;
  transform: translateX(-50%);
  background:
    radial-gradient(ellipse 60% 80% at 30% 50%, #4a6a8a 0%, #1a2a4a 100%),
    linear-gradient(90deg, #2a4a6a, #3a5a7a 30%, #2a4a6a 70%);
  border-radius: 45% 45% 40% 40% / 50% 50% 40% 40%;
  box-shadow: 0 4px 20px rgba(0,0,0,.5), inset 0 -4px 8px rgba(150,200,255,.2);
  animation: nem-nautilus 8s ease-in-out infinite alternate;
}
.scn-nemo\'s-whim .porthole {
  position: absolute;
  bottom: 44%;
  left: 50%;
  width: 22px;
  height: 22px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #d0eaff, #6a9abf);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px rgba(200,230,255,.5), inset 0 -2px 4px rgba(0,0,0,.3);
  animation: nem-glow 4s ease-in-out infinite alternate;
}
.scn-nemo\'s-whim .bubble {
  position: absolute;
  width: 12px;
  height: 12px;
  background: radial-gradient(circle at 35% 35%, rgba(255,255,255,.6), rgba(200,230,255,.1));
  border-radius: 50%;
  box-shadow: inset 0 -2px 4px rgba(0,0,0,.1);
  animation: nem-float 7s ease-in-out infinite;
}
.scn-nemo\'s-whim .bubble-1 {
  bottom: 50%;
  left: 44%;
  animation-delay: 0s;
  width: 10px;
  height: 10px;
}
.scn-nemo\'s-whim .bubble-2 {
  bottom: 48%;
  left: 58%;
  animation-delay: 2.5s;
  width: 14px;
  height: 14px;
}
.scn-nemo\'s-whim .fish {
  position: absolute;
  width: 20px;
  height: 8px;
  background: linear-gradient(90deg, #8ab8d0, #4a7a9a);
  border-radius: 50% 50% 50% 0 / 60% 60% 40% 40%;
  box-shadow: inset -3px 0 4px rgba(0,0,0,.2);
  animation: nem-swim 15s linear infinite;
}
.scn-nemo\'s-whim .fish-1 {
  bottom: 35%;
  left: 10%;
  animation-delay: 0s;
  transform: scaleX(1);
}
.scn-nemo\'s-whim .fish-2 {
  bottom: 45%;
  right: 5%;
  animation-delay: -6s;
  transform: scaleX(-1);
  width: 16px;
  height: 6px;
}
.scn-nemo\'s-whim .seabed {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 28%;
  background: linear-gradient(180deg, #1a2a3a 0%, #0a1420 100%);
  border-radius: 60% 60% 0 0 / 40% 40% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.6);
  animation: nem-seabed 20s ease-in-out infinite alternate;
}
@keyframes nem-sunrays {
  0% { background-position: 0% 0%; opacity: .6; }
  50% { background-position: 100% 50%; opacity: 1; }
  100% { background-position: 50% 100%; opacity: .7; }
}
@keyframes nem-surface {
  0% { transform: translateY(0) scaleY(1); opacity: .5; }
  100% { transform: translateY(-4px) scaleY(1.03); opacity: .8; }
}
@keyframes nem-nautilus {
  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 nem-glow {
  0% { box-shadow: 0 0 12px 4px rgba(200,230,255,.4); opacity: .8; }
  50% { box-shadow: 0 0 30px 10px rgba(200,230,255,.7); opacity: 1; }
  100% { box-shadow: 0 0 16px 5px rgba(200,230,255,.5); opacity: .9; }
}
@keyframes nem-float {
  0% { transform: translateY(0) scale(1); opacity: .7; }
  50% { transform: translateY(-60px) scale(1.1); opacity: .4; }
  100% { transform: translateY(-120px) scale(0.8); opacity: 0; }
}
@keyframes nem-swim {
  0% { transform: translateX(0) scaleX(1); }
  25% { transform: translateX(50px) scaleX(1); }
  50% { transform: translateX(100px) scaleX(-1); }
  75% { transform: translateX(50px) scaleX(-1); }
  100% { transform: translateX(0) scaleX(1); }
}
@keyframes nem-seabed {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-2px) scale(1.01); }
  100% { transform: translateY(-1px) scale(1); }
}

.scn-pharaohs-army {
  background:
    radial-gradient(ellipse at 70% 20%, rgba(255, 215, 0, 0.5) 0%, transparent 60%),
    linear-gradient(180deg, #4a90d9 0%, #f5a623 55%, #f7e5b5 100%);
  position: relative;
  overflow: hidden;
}

.scn-pharaohs-army .sun {
  position: absolute;
  top: 10%;
  right: 22%;
  width: 80px;
  height: 80px;
  background: radial-gradient(circle, #fff5e0 0%, #ffd700 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 10px rgba(255, 215, 0, 0.4);
  animation: pa-sun 20s ease-in-out infinite alternate;
}

.scn-pharaohs-army .dunes-bg {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 40%;
  background: linear-gradient(180deg, #d4a56e 0%, #b88a5a 100%);
  border-radius: 80% 50% 0 0 / 60% 40% 0 0;
  animation: pa-dunes 15s ease-in-out infinite alternate;
}

.scn-pharaohs-army .dunes-mid {
  position: absolute;
  bottom: 0;
  left: -10%;
  width: 120%;
  height: 30%;
  background: linear-gradient(180deg, #c4945e 0%, #a07040 100%);
  border-radius: 60% 40% 0 0 / 40% 30% 0 0;
  animation: pa-dunes 20s ease-in-out infinite alternate reverse;
}

.scn-pharaohs-army .dunes-fore {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 20%;
  background: linear-gradient(180deg, #b0804a 0%, #8c6038 100%);
  border-radius: 40% 60% 0 0 / 30% 40% 0 0;
  animation: pa-dunes 12s ease-in-out infinite alternate;
}

.scn-pharaohs-army .figure {
  position: absolute;
  bottom: 25%;
  left: 40%;
  width: 20px;
  height: 50px;
  background: linear-gradient(180deg, #2c2c3a 0%, #1a1a28 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pa-figure 6s ease-in-out infinite;
}

.scn-pharaohs-army .spear {
  position: absolute;
  bottom: 25%;
  left: 42%;
  width: 3px;
  height: 40px;
  background: #5c4030;
  transform: rotate(-10deg);
  transform-origin: bottom center;
  animation: pa-spear 6s ease-in-out infinite;
}

.scn-pharaohs-army .shield {
  position: absolute;
  bottom: 20%;
  left: 55%;
  width: 30px;
  height: 35px;
  background: radial-gradient(circle, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 50%;
  box-shadow: 0 4px 8px rgba(0, 0, 0, 0.5);
  animation: pa-shield 8s ease-in-out infinite alternate;
}

@keyframes pa-sun {
  0% { transform: translate(0, 0) scale(1); }
  50% { transform: translate(8px, -6px) scale(1.03); }
  100% { transform: translate(0, 0) scale(1); }
}

@keyframes pa-dunes {
  0% { transform: translateY(0); }
  50% { transform: translateY(-4px); }
  100% { transform: translateY(0); }
}

@keyframes pa-figure {
  0% { transform: translate(0, 0) rotate(0deg); }
  25% { transform: translate(2px, -1px) rotate(1deg); }
  50% { transform: translate(4px, 0) rotate(0deg); }
  75% { transform: translate(2px, 1px) rotate(-1deg); }
  100% { transform: translate(0, 0) rotate(0deg); }
}

@keyframes pa-spear {
  0% { transform: rotate(-10deg); }
  50% { transform: rotate(-5deg); }
  100% { transform: rotate(-10deg); }
}

@keyframes pa-shield {
  0% { transform: rotate(0deg) scale(1); }
  50% { transform: rotate(5deg) scale(1.02); }
  100% { transform: rotate(0deg) scale(1); }
}
/* end per-scene blocks */

/* auto-stub: parent tag-classes flagged by CSS audit */
.cargo { position: absolute; pointer-events: none; }
.chip { position: absolute; pointer-events: none; }
.cloud-drift { position: absolute; pointer-events: none; }
.foliage { position: absolute; pointer-events: none; }
.group { position: absolute; pointer-events: none; }
.layer { position: absolute; pointer-events: none; }
.leg { position: absolute; pointer-events: none; }
.listener { position: absolute; pointer-events: none; }
.officer { position: absolute; pointer-events: none; }
.pillar { position: absolute; pointer-events: none; }
.plant { position: absolute; pointer-events: none; }
.rubble { position: absolute; pointer-events: none; }
.savage { position: absolute; pointer-events: none; }
.scn { position: absolute; pointer-events: none; }
.stool { position: absolute; pointer-events: none; }

/* ============ tier A ============ */
/* per-scene blocks (EXP step_scenes) */
.scn-dimensions-and-hulls { background: linear-gradient(180deg, #f4e8c8 0%, #d4c8a8 40%, #b8a888 100%), radial-gradient(ellipse at 30% 20%, #fff4e0 0%, transparent 60%); }
.scn-dimensions-and-hulls .hull-bg { position:absolute; inset:10% 5% 15% 5%; background: linear-gradient(135deg, #e0d0b0 0%, #c8b890 100%); border-radius: 50% / 30%; box-shadow: inset 0 -8px 20px rgba(0,0,0,.2), 0 4px 12px rgba(0,0,0,.1); }
.scn-dimensions-and-hulls .hull-structure { position:absolute; inset:12% 8% 17% 8%; background: linear-gradient(180deg, #b0a080 0%, #908060 40%, #b0a080 100%); border-radius: 50% / 30%; box-shadow: inset 0 0 0 1px #c0b090; }
.scn-dimensions-and-hulls .gauge-dial { position:absolute; top:22%; right:18%; width:40px; height:40px; background: radial-gradient(circle at 50% 50%, #fff8ee 0%, #d4c8a8 70%, #b8a888 100%); border-radius:50%; box-shadow: 0 2px 6px rgba(0,0,0,.3), inset 0 0 0 2px #a09070; }
.scn-dimensions-and-hulls .gauge-needle { position:absolute; top:32%; right:28%; width:14px; height:2px; background: #705030; border-radius: 1px; transform-origin: 100% 50%; transform: rotate(-45deg); animation: dh-needle 10s ease-in-out infinite alternate; }
.scn-dimensions-and-hulls .pipe-horiz { position:absolute; bottom:30%; left:10%; right:10%; height:8px; background: linear-gradient(180deg, #8a7a60 0%, #6a5a40 100%); border-radius: 4px; box-shadow: 0 2px 4px rgba(0,0,0,.3); }
.scn-dimensions-and-hulls .pipe-vert { position:absolute; bottom:30%; left:25%; width:8px; height:40px; background: linear-gradient(90deg, #8a7a60 0%, #6a5a40 100%); border-radius: 4px; box-shadow: 2px 0 4px rgba(0,0,0,.2); }
.scn-dimensions-and-hulls .rivet-row { position:absolute; bottom:28%; left:15%; right:15%; height:4px; background: repeating-linear-gradient(90deg, #706040 0px, #706040 4px, transparent 4px, transparent 12px); }
@keyframes dh-needle { 0% { transform: rotate(-60deg); } 50% { transform: rotate(-10deg); } 100% { transform: rotate(-45deg); } }

.scn-submergence-math { background: linear-gradient(180deg, #f0e4c8 0%, #d8c8a8 50%, #b8a888 100%), radial-gradient(ellipse at 50% 20%, #fff8e8 0%, transparent 70%); }
.scn-submergence-math .tank-bg { position:absolute; inset:15% 10% 20% 10%; background: linear-gradient(135deg, #d0c0a0 0%, #b8a888 100%); border-radius: 10px; box-shadow: inset 0 -4px 10px rgba(0,0,0,.2); }
.scn-submergence-math .tank-wall { position:absolute; inset:15% 10% 20% 10%; border: 3px solid #908060; border-radius: 10px; background: transparent; }
.scn-submergence-math .water-surface { position:absolute; top:35%; left:12%; right:12%; height:4px; background: linear-gradient(90deg, #6ab0d0 0%, #4a90b0 100%); border-radius: 2px; box-shadow: 0 0 8px #6ab0d0; animation: sm-surface 6s ease-in-out infinite; }
.scn-submergence-math .water-fill { position:absolute; bottom:20%; left:12%; right:12%; height:20%; background: linear-gradient(180deg, #5aa0c0 0%, #3a7090 100%); border-radius: 0 0 8px 8px; animation: sm-fill 12s ease-in-out infinite alternate; }
.scn-submergence-math .pressure-line { position:absolute; top:30%; left:20%; width:40%; height:2px; background: #705030; box-shadow: 0 0 0 1px #b0a080; }
.scn-submergence-math .dial-small { position:absolute; top:20%; right:15%; width:30px; height:30px; background: radial-gradient(circle at 50% 50%, #fff8ee 0%, #c8b898 100%); border-radius:50%; box-shadow: 0 2px 4px rgba(0,0,0,.3), inset 0 0 0 2px #908060; }
.scn-submergence-math .dial-needle { position:absolute; top:28%; right:22%; width:10px; height:2px; background: #705030; border-radius:1px; transform-origin: 100% 50%; animation: sm-needle 8s ease-in-out infinite alternate; }
@keyframes sm-surface { 0% { transform: translateY(0); opacity:0.9; } 50% { transform: translateY(-2px); opacity:1; } 100% { transform: translateY(0); opacity:0.9; } }
@keyframes sm-fill { 0% { height: 20%; } 50% { height: 30%; } 100% { height: 20%; } }
@keyframes sm-needle { 0% { transform: rotate(30deg); } 50% { transform: rotate(90deg); } 100% { transform: rotate(30deg); } }

.scn-descent-method { background: linear-gradient(180deg, #f4ecd0 0%, #dcd0b0 50%, #c0b490 100%), radial-gradient(ellipse at 30% 30%, #fff8e0 0%, transparent 60%); }
.scn-descent-method .depth-bg { position:absolute; inset:12% 8% 15% 8%; background: linear-gradient(180deg, #d8c8a8 0%, #b8a888 100%); border-radius: 8px; box-shadow: inset 0 -4px 8px rgba(0,0,0,.15); }
.scn-descent-method .depth-marker { position:absolute; top:20%; left:20%; right:20%; height:4px; background: #906840; border-radius:2px; box-shadow: 0 0 0 1px #b0a080; }
.scn-descent-method .depth-line { position:absolute; top:20%; left:50%; width:2px; height:50%; background: #705030; transform: translateX(-50%); animation: dm-line 15s linear infinite; }
.scn-descent-method .ballast-indicator { position:absolute; bottom:20%; left:15%; width:70%; height:8px; background: #b0a080; border-radius: 4px; box-shadow: inset 0 2px 4px rgba(0,0,0,.2); }
.scn-descent-method .ballast-fill { position:absolute; bottom:20%; left:15%; width:40%; height:8px; background: linear-gradient(90deg, #5a90b0 0%, #3a7090 100%); border-radius: 4px; animation: dm-fill 10s ease-in-out infinite alternate; }
.scn-descent-method .control-valve { position:absolute; top:30%; left:15%; width:20px; height:20px; background: radial-gradient(circle at 50% 50%, #c0b090 0%, #908060 100%); border-radius: 50%; box-shadow: 0 2px 4px rgba(0,0,0,.3); }
.scn-descent-method .vent-grid { position:absolute; bottom:30%; right:15%; width:30px; height:30px; background: repeating-linear-gradient(0deg, #706040 0px, #706040 2px, transparent 2px, transparent 6px), repeating-linear-gradient(90deg, #706040 0px, #706040 2px, transparent 2px, transparent 6px); }
@keyframes dm-line { 0% { height: 50%; } 50% { height: 30%; } 100% { height: 50%; } }
@keyframes dm-fill { 0% { width: 20%; } 50% { width: 40%; } 100% { width: 20%; } }

.scn-pump-power { background: linear-gradient(180deg, #2d1a0a 0%, #4a2a10 30%, #6a3a18 60%, #3a2010 100%), radial-gradient(ellipse at 40% 30%, #b06030 0%, transparent 50%); }
.scn-pump-power .engine-bg { position:absolute; inset:10% 5% 15% 5%; background: linear-gradient(135deg, #4a2a10 0%, #3a2010 100%); border-radius: 10px; box-shadow: inset 0 -8px 20px rgba(0,0,0,.5), 0 4px 12px rgba(0,0,0,.4); }
.scn-pump-power .pump-body { position:absolute; bottom:25%; left:15%; right:15%; height:30%; background: linear-gradient(180deg, #8a5020 0%, #6a3a18 50%, #4a2a10 100%); border-radius: 10px; box-shadow: 0 4px 8px rgba(0,0,0,.5); }
.scn-pump-power .pump-piston { position:absolute; bottom:40%; left:20%; width:60%; height:6px; background: #a06030; border-radius: 3px; box-shadow: 0 2px 4px rgba(0,0,0,.3); animation: pp-piston 1.5s linear infinite; }
.scn-pump-power .pressure-gauge { position:absolute; top:15%; right:10%; width:50px; height:50px; background: radial-gradient(circle at 50% 50%, #ffeedd 0%, #c0a080 70%, #806040 100%); border-radius:50%; box-shadow: 0 4px 8px rgba(0,0,0,.4), inset 0 0 0 4px #604020; }
.scn-pump-power .pressure-gauge::after { content:''; position:absolute; top:10px; left:10px; width:30px; height:30px; border:2px solid #403020; border-top-color: #c0a080; border-radius:50%; animation: pp-gauge-spin 3s linear infinite; }
.scn-pump-power .pipe-thick { position:absolute; top:30%; left:5%; width:8px; height:40%; background: linear-gradient(90deg, #705030 0%, #503010 100%); border-radius: 4px; box-shadow: 2px 0 4px rgba(0,0,0,.3); }
.scn-pump-power .spark-particle { position:absolute; bottom:35%; left:30%; width:4px; height:4px; background: #ffd080; border-radius:50%; box-shadow: 0 0 8px #ffd080; animation: pp-spark 0.8s ease-out infinite; }
.scn-pump-power .vibration-line { position:absolute; bottom:20%; left:25%; right:25%; height:2px; background: #c0a080; filter: blur(1px); animation: pp-vibe 0.3s linear infinite; }
@keyframes pp-piston { 0% { transform: translateX(-20%); } 50% { transform: translateX(20%); } 100% { transform: translateX(-20%); } }
@keyframes pp-gauge-spin { 0% { transform: rotate(0deg); } 50% { transform: rotate(180deg); } 100% { transform: rotate(360deg); } }
@keyframes pp-spark { 0% { transform: translateY(0) scale(1); opacity:1; } 50% { transform: translateY(-10px) scale(0.5); opacity:0.6; } 100% { transform: translateY(-20px) scale(0); opacity:0; } }
@keyframes pp-vibe { 0% { transform: translateX(-2px); } 50% { transform: translateX(2px); } 100% { transform: translateX(-2px); } }

/* ============================================ */
/* item-seaweed-cigar – calm, bright interior   */
.scn-item-seaweed-cigar {
  background: 
    linear-gradient(180deg, #f5e6c8 0%, #d9c9a0 40%, #bfa87a 100%),
    radial-gradient(ellipse at 50% 80%, #ffe7b0 0%, transparent 70%);
}
.scn-item-seaweed-cigar .table {
  position: absolute;
  bottom: 20%; left: 30%; width: 40%; height: 10%;
  background: linear-gradient(180deg, #8b6f4c 0%, #6b4f2c 100%);
  border-radius: 8% 8% 0 0;
  box-shadow: 0 -4px 12px rgba(0,0,0,0.3);
  animation: sc1-table 12s ease-in-out infinite alternate;
}
.scn-item-seaweed-cigar .cigar {
  position: absolute;
  bottom: 28%; left: 45%; width: 60px; height: 12px;
  background: linear-gradient(90deg, #5a3a1a 0%, #8a6a4a 50%, #5a3a1a 100%);
  border-radius: 40px;
  transform: rotate(-15deg) translateY(-20px);
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: sc1-cigar 4s ease-in-out infinite alternate;
}
.scn-item-seaweed-cigar .seaweed {
  position: absolute;
  bottom: 26%; left: 42%; width: 20px; height: 70px;
  background: linear-gradient(180deg, #4a7a3a 0%, #2a5a1a 100%);
  border-radius: 50% 50% 10% 10% / 60% 60% 20% 20%;
  transform: rotate(-20deg);
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
  animation: sc1-seaweed 8s ease-in-out infinite alternate;
}
.scn-item-seaweed-cigar .smoke {
  position: absolute;
  bottom: 38%; left: 48%; width: 30px; height: 60px;
  background: rgba(200,180,140,0.3);
  border-radius: 50%;
  filter: blur(10px);
  animation: sc1-smoke 6s ease-in-out infinite;
}
.scn-item-seaweed-cigar .s1 {
  animation-delay: 0s;
  left: 46%;
}
.scn-item-seaweed-cigar .s2 {
  animation-delay: 3s;
  left: 50%;
}
.scn-item-seaweed-cigar .lamp {
  position: absolute;
  top: 10%; left: 30%; width: 40%; height: 30%;
  background: radial-gradient(ellipse at 50% 100%, rgba(255,230,180,0.8) 0%, transparent 70%);
  pointer-events: none;
  animation: sc1-lamp 5s ease-in-out infinite alternate;
}
@keyframes sc1-table {
  0% { bottom: 20%; }
  50% { bottom: 19%; }
  100% { bottom: 20%; }
}
@keyframes sc1-cigar {
  0% { transform: rotate(-15deg) translateY(-20px); }
  50% { transform: rotate(-12deg) translateY(-22px); }
  100% { transform: rotate(-15deg) translateY(-20px); }
}
@keyframes sc1-seaweed {
  0% { transform: rotate(-20deg) scaleY(1); }
  50% { transform: rotate(-15deg) scaleY(1.05); }
  100% { transform: rotate(-20deg) scaleY(1); }
}
@keyframes sc1-smoke {
  0% { transform: translateY(0) scale(1); opacity: 0.3; }
  50% { transform: translateY(-40px) scale(1.5); opacity: 0.1; }
  100% { transform: translateY(-80px) scale(2); opacity: 0; }
}
@keyframes sc1-lamp {
  0%,100% { opacity: 0.6; }
  50% { opacity: 1; }
}

/* ============================================ */
/* lounge-wonders – warm, bright interior       */
.scn-lounge-wonders {
  background:
    linear-gradient(135deg, #d4b896 0%, #b0956a 50%, #8a704a 100%),
    radial-gradient(ellipse at 50% 30%, #f0d8b0 0%, transparent 70%);
}
.scn-lounge-wonders .wall {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, #c4a880 0%, #9a7a5a 100%);
  opacity: 0.5;
}
.scn-lounge-wonders .frame {
  position: absolute;
  width: 120px; height: 160px;
  background: linear-gradient(135deg, #5a3a1a 0%, #3a2a0a 100%);
  border: 8px solid #8a6a3a;
  border-radius: 4px;
  box-shadow: 0 8px 20px rgba(0,0,0,0.4);
  animation: sc2-frame 20s ease-in-out infinite alternate;
}
.scn-lounge-wonders .fr1 { top: 15%; left: 10%; }
.scn-lounge-wonders .fr2 { top: 20%; left: 35%; width: 100px; height: 140px; }
.scn-lounge-wonders .fr3 { top: 12%; left: 55%; width: 140px; height: 180px; }
.scn-lounge-wonders .fr4 { top: 18%; left: 78%; width: 90px; height: 130px; }
.scn-lounge-wonders .viewer {
  position: absolute;
  bottom: 10%; left: 50%;
  width: 40px; height: 100px;
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%);
  border-radius: 50% 50% 20% 20% / 40% 40% 30% 30%;
  transform: translateX(-50%);
  animation: sc2-viewer 6s ease-in-out infinite alternate;
}
@keyframes sc2-frame {
  0% { transform: rotate(0deg) scale(1); }
  50% { transform: rotate(1deg) scale(1.02); }
  100% { transform: rotate(-1deg) scale(1); }
}
@keyframes sc2-viewer {
  0% { transform: translateX(-50%) rotate(0deg); }
  50% { transform: translateX(-50%) rotate(3deg); }
  100% { transform: translateX(-50%) rotate(0deg); }
}

/* ============================================ */
/* captain-collector – warm, bright interior     */
.scn-captain-collector {
  background:
    linear-gradient(180deg, #d9b28a 0%, #b8926a 40%, #8a6a4a 100%),
    radial-gradient(ellipse at 50% 60%, #f0c888 0%, transparent 70%);
}
.scn-captain-collector .captain-figure {
  position: absolute;
  bottom: 5%; left: 25%;
  width: 70px; height: 180px;
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform: rotate(-5deg);
  animation: sc3-captain 8s ease-in-out infinite alternate;
}
.scn-captain-collector .table-stack {
  position: absolute;
  bottom: 10%; left: 50%; width: 200px; height: 40px;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a0a 100%);
  border-radius: 6%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.5);
  transform: translateX(-50%);
}
.scn-captain-collector .painting-stack {
  position: absolute;
  bottom: 25%; left: 55%; width: 80px; height: 100px;
  background: linear-gradient(135deg, #8a6a4a 0%, #5a3a1a 100%);
  border: 4px solid #6a4a2a;
  border-radius: 4px;
  transform: rotate(8deg);
  box-shadow: 0 4px 12px rgba(0,0,0,0.4);
  animation: sc3-painting 12s ease-in-out infinite alternate;
}
.scn-captain-collector .scattered-paper {
  position: absolute;
  width: 60px; height: 80px;
  background: #e8dcc8;
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.2);
  animation: sc3-paper 10s ease-in-out infinite alternate;
}
.scn-captain-collector .p1 { bottom: 18%; left: 35%; transform: rotate(-10deg); }
.scn-captain-collector .p2 { bottom: 15%; left: 65%; transform: rotate(15deg); animation-delay: 5s; }
.scn-captain-collector .desk-lamp {
  position: absolute;
  top: 10%; left: 45%; width: 30%; height: 40%;
  background: radial-gradient(ellipse at 50% 100%, rgba(255,200,120,0.9) 0%, transparent 70%);
  pointer-events: none;
  animation: sc3-lamp 4s ease-in-out infinite alternate;
}
@keyframes sc3-captain {
  0% { transform: rotate(-5deg) translateX(0); }
  50% { transform: rotate(-3deg) translateX(5px); }
  100% { transform: rotate(-5deg) translateX(0); }
}
@keyframes sc3-painting {
  0% { transform: rotate(8deg) scale(1); }
  50% { transform: rotate(10deg) scale(1.03); }
  100% { transform: rotate(8deg) scale(1); }
}
@keyframes sc3-paper {
  0% { transform: rotate(-10deg) translateY(0); opacity: 0.8; }
  50% { transform: rotate(-8deg) translateY(-5px); opacity: 1; }
  100% { transform: rotate(-10deg) translateY(0); opacity: 0.8; }
}
@keyframes sc3-lamp {
  0%,100% { opacity: 0.5; }
  50% { opacity: 0.9; }
}

/* ============================================ */
/* item-organ-music – warm, bright interior     */
.scn-item-organ-music {
  background:
    linear-gradient(180deg, #e0c8a0 0%, #c4a880 40%, #a08060 100%),
    radial-gradient(ellipse at 50% 40%, #f5d8a0 0%, transparent 70%);
}
.scn-item-organ-music .piano-body {
  position: absolute;
  bottom: 10%; left: 20%; width: 60%; height: 30%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 6% 6% 0 0;
  box-shadow: 0 -6px 20px rgba(0,0,0,0.5), inset 0 4px 8px rgba(255,255,255,0.05);
}
.scn-item-organ-music .keys {
  position: absolute;
  bottom: 25%; left: 22%; width: 56%; height: 8%;
  background: repeating-linear-gradient(90deg, #fff 0px 18px, #1a1a1a 18px 20px, #fff 20px 38px, #1a1a1a 38px 40px);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 -2px 6px rgba(0,0,0,0.3);
  animation: sc4-keys 6s ease-in-out infinite alternate;
}
.scn-item-organ-music .music-stand {
  position: absolute;
  bottom: 40%; left: 45%; width: 80px; height: 60px;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a1a 100%);
  border-radius: 4px;
  transform: rotate(-2deg);
  box-shadow: 0 4px 12px rgba(0,0,0,0.3);
}
.scn-item-organ-music .sheet {
  position: absolute;
  width: 60px; height: 80px;
  background: #f0e8d0;
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
  animation: sc4-sheet 8s ease-in-out infinite alternate;
}
.scn-item-organ-music .sht1 { bottom: 42%; left: 46%; transform: rotate(-5deg); }
.scn-item-organ-music .sht2 { bottom: 41%; left: 50%; transform: rotate(8deg); animation-delay: 4s; }
.scn-item-organ-music .hand {
  position: absolute;
  bottom: 30%; left: 35%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #c09060 0%, #a07050 100%);
  border-radius: 40% 30% 20% 40% / 50% 40% 30% 50%;
  transform: rotate(-20deg);
  animation: sc4-hand 3s ease-in-out infinite alternate;
}
@keyframes sc4-keys {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes sc4-sheet {
  0% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(-3deg) translateY(-4px); }
  100% { transform: rotate(-5deg) translateY(0); }
}
@keyframes sc4-hand {
  0% { transform: rotate(-20deg) translateY(0); }
  50% { transform: rotate(-15deg) translateY(-5px); }
  100% { transform: rotate(-20deg) translateY(0); }
}

.scn-article-wavering {
  background:
    linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 60%, #1a0a00 100%),
    radial-gradient(ellipse at 50% 80%, #5a3a2a 0%, transparent 70%);
}
.scn-article-wavering .wall { position:absolute; inset:0; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); }
.scn-article-wavering .desk {
  position:absolute; bottom:10%; left:15%; right:15%; height:30%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 4% 4% 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,0.6);
  animation: aw-desk 10s ease-in-out infinite alternate;
}
.scn-article-wavering .lamp {
  position:absolute; bottom:40%; left:25%; width:30px; height:50px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 30px 8px #b08040;
  animation: aw-lamp 4s ease-in-out infinite alternate;
}
.scn-article-wavering .figure {
  position:absolute; bottom:22%; left:30%; width:24px; height:50px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0505 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: aw-figure 8s ease-in-out infinite;
}
.scn-article-wavering .paper {
  position:absolute; bottom:18%; left:38%; width:80px; height:60px;
  background: linear-gradient(135deg, #d4c4a4 0%, #b8a888 100%);
  border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: aw-paper 6s ease-in-out infinite;
}
.scn-article-wavering .ink-splash {
  position:absolute; bottom:20%; left:34%; width:14px; height:14px;
  background: radial-gradient(circle, #2a1a2a 0%, #0a0a1a 70%);
  border-radius: 50%; filter: blur(1px);
  animation: aw-ink 5s ease-in-out infinite alternate;
}
.scn-article-wavering .shadow-monster {
  position:absolute; bottom:5%; right:10%; width:80px; height:100px;
  background: linear-gradient(180deg, #1a0a0a 0%, #0a0505 100%);
  border-radius: 40% 60% 30% 50% / 50% 40% 60% 50%;
  opacity: 0.3; filter: blur(6px);
  animation: aw-monster 12s ease-in-out infinite alternate;
}
@keyframes aw-desk {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes aw-lamp {
  0% { opacity: 0.7; box-shadow: 0 0 20px 4px #b08040; }
  50% { opacity: 1; box-shadow: 0 0 40px 12px #d0a050; }
  100% { opacity: 0.8; box-shadow: 0 0 25px 6px #b08040; }
}
@keyframes aw-figure {
  0% { transform: translateX(0) rotate(-2deg); }
  25% { transform: translateX(2px) rotate(1deg); }
  50% { transform: translateX(0) rotate(0deg); }
  75% { transform: translateX(-2px) rotate(1deg); }
  100% { transform: translateX(0) rotate(-2deg); }
}
@keyframes aw-paper {
  0% { transform: translate(0,0) rotate(0deg); }
  25% { transform: translate(1px,-1px) rotate(1deg); }
  50% { transform: translate(0,0) rotate(0deg); }
  75% { transform: translate(-1px,1px) rotate(-1deg); }
  100% { transform: translate(0,0) rotate(0deg); }
}
@keyframes aw-ink {
  0% { transform: scale(1); opacity: 0.6; }
  50% { transform: scale(1.5); opacity: 1; }
  100% { transform: scale(1); opacity: 0.7; }
}
@keyframes aw-monster {
  0% { transform: translateY(0) scale(1) rotate(-3deg); opacity: 0.2; }
  50% { transform: translateY(-10px) scale(1.1) rotate(5deg); opacity: 0.4; }
  100% { transform: translateY(0) scale(1) rotate(3deg); opacity: 0.3; }
}

.scn-public-acceptance {
  background:
    linear-gradient(180deg, #8a9aa8 0%, #6a7a8a 40%, #4a5a6a 100%),
    radial-gradient(ellipse at 50% 0%, #9aaaba 0%, transparent 60%);
}
.scn-public-acceptance .sky {
  position:absolute; inset:0 0 40% 0;
  background: linear-gradient(180deg, #8a9aaa 0%, #6a7a8a 50%, #5a6a7a 100%);
  animation: pa-sky 20s ease-in-out infinite alternate;
}
.scn-public-acceptance .sea {
  position:absolute; bottom:0; left:0; right:0; height:45%;
  background: linear-gradient(180deg, #4a5a6a 0%, #2a3a4a 100%);
  border-radius: 50% 60% 0 0 / 80% 70% 0 0;
  animation: pa-sea 12s ease-in-out infinite alternate;
}
.scn-public-acceptance .horizon-fade {
  position:absolute; bottom:40%; left:0; right:0; height:10%;
  background: linear-gradient(180deg, transparent 0%, #4a5a6a 100%);
}
.scn-public-acceptance .whale {
  position:absolute; bottom:25%; left:10%; width:120px; height:40px;
  background: linear-gradient(180deg, #3a4a5a 0%, #1a2a3a 100%);
  border-radius: 60% 40% 50% 40% / 80% 60% 60% 40%;
  animation: pa-whale 25s ease-in-out infinite;
}
.scn-public-acceptance .boat {
  position:absolute; bottom:30%; right:20%; width:40px; height:20px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30%;
  animation: pa-boat 18s ease-in-out infinite alternate;
}
.scn-public-acceptance .cloud {
  position:absolute; top:15%; left:30%; width:100px; height:20px;
  background: linear-gradient(180deg, #b0c0d0 0%, #8090a0 100%);
  border-radius: 40%; filter: blur(4px);
  animation: pa-cloud 40s linear infinite;
}
@keyframes pa-sky {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes pa-sea {
  0% { transform: translateY(0); }
  50% { transform: translateY(-4px); }
  100% { transform: translateY(0); }
}
@keyframes pa-whale {
  0% { transform: translateX(0) scale(1); }
  25% { transform: translateX(10px) scale(1.02); }
  50% { transform: translateX(20px) scale(1); }
  75% { transform: translateX(10px) scale(0.98); }
  100% { transform: translateX(0) scale(1); }
}
@keyframes pa-boat {
  0% { transform: translate(0,0) rotate(-2deg); }
  50% { transform: translate(5px,-2px) rotate(3deg); }
  100% { transform: translate(0,0) rotate(-2deg); }
}
@keyframes pa-cloud {
  0% { transform: translateX(-50px); }
  100% { transform: translateX(120vw); }
}

.scn-practical-action {
  background:
    linear-gradient(180deg, #5a6a7a 0%, #3a4a5a 50%, #2a3a4a 100%),
    radial-gradient(ellipse at 50% 100%, #3a4a5a 0%, transparent 70%);
}
.scn-practical-action .sky {
  position:absolute; inset:0 0 45% 0;
  background: linear-gradient(180deg, #6a7a8a 0%, #4a5a6a 100%);
  animation: pact-sky 15s ease-in-out infinite alternate;
}
.scn-practical-action .sea {
  position:absolute; bottom:0; left:0; right:0; height:55%;
  background: linear-gradient(180deg, #3a4a5a 0%, #1a2a3a 100%);
  border-radius: 40% 60% 0 0 / 70% 80% 0 0;
  animation: pact-sea 8s ease-in-out infinite alternate;
}
.scn-practical-action .ship {
  position:absolute; bottom:25%; left:40%; width:70px; height:30px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 20% 20% 10% 10%;
  transform: rotate(-3deg);
  animation: pact-ship 10s ease-in-out infinite;
}
.scn-practical-action .harpoon {
  position:absolute; bottom:40%; left:45%; width:8px; height:50px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 30% 30% 10% 10%;
  transform: rotate(15deg);
  animation: pact-harpoon 4s ease-in-out infinite alternate;
}
.scn-practical-action .spray {
  position:absolute; bottom:20%; left:35%; width:30px; height:20px;
  background: radial-gradient(ellipse at 50% 100%, #c0d0e0 0%, transparent 70%);
  filter: blur(2px);
  animation: pact-spray 3s ease-in-out infinite;
}
.scn-practical-action .fin {
  position:absolute; bottom:10%; right:20%; width:60px; height:30px;
  background: linear-gradient(180deg, #2a3a4a 0%, #0a1a2a 100%);
  border-radius: 60% 40% 30% 50% / 50% 60% 40% 60%;
  animation: pact-fin 6s ease-in-out infinite alternate;
}
@keyframes pact-sky {
  0% { opacity: 0.6; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes pact-sea {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-5px) scale(1.02); }
  100% { transform: translateY(0) scale(1); }
}
@keyframes pact-ship {
  0% { transform: translateX(0) rotate(-3deg); }
  25% { transform: translateX(3px) rotate(-2deg); }
  50% { transform: translateX(0) rotate(-4deg); }
  75% { transform: translateX(-3px) rotate(-2deg); }
  100% { transform: translateX(0) rotate(-3deg); }
}
@keyframes pact-harpoon {
  0% { transform: rotate(10deg) scale(1); }
  50% { transform: rotate(20deg) scale(1.1); }
  100% { transform: rotate(10deg) scale(1); }
}
@keyframes pact-spray {
  0% { transform: translate(0,0) scale(1); opacity: 0.5; }
  50% { transform: translate(5px,-3px) scale(1.3); opacity: 1; }
  100% { transform: translate(0,0) scale(1); opacity: 0.6; }
}
@keyframes pact-fin {
  0% { transform: translateY(0) rotate(-5deg); }
  50% { transform: translateY(-8px) rotate(5deg); }
  100% { transform: translateY(0) rotate(-5deg); }
}

.scn-false-hope {
  background:
    linear-gradient(180deg, #6a7a8a 0%, #4a5a6a 40%, #3a4a5a 100%),
    radial-gradient(ellipse at 50% 100%, #4a5a6a 0%, transparent 60%);
}
.scn-false-hope .sky {
  position:absolute; inset:0 0 40% 0;
  background: linear-gradient(180deg, #7a8a9a 0%, #5a6a7a 100%);
  animation: fh-sky 18s ease-in-out infinite alternate;
}
.scn-false-hope .sea {
  position:absolute; bottom:0; left:0; right:0; height:45%;
  background: linear-gradient(180deg, #4a5a6a 0%, #2a3a4a 100%);
  border-radius: 40% 60% 0 0 / 70% 80% 0 0;
  animation: fh-sea 20s ease-in-out infinite alternate;
}
.scn-false-hope .ship-hull {
  position:absolute; bottom:20%; left:40%; width:80px; height:35px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%);
  border-radius: 20% 20% 10% 10%;
  animation: fh-hull 12s ease-in-out infinite;
}
.scn-false-hope .mast {
  position:absolute; bottom:40%; left:44%; width:6px; height:80px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 10%;
  transform-origin: bottom center;
  animation: fh-mast 8s ease-in-out infinite;
}
.scn-false-hope .lookout {
  position:absolute; bottom:68%; left:44%; width:12px; height:16px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0505 100%);
  border-radius: 50% 50% 40% 40%;
  animation: fh-lookout 6s ease-in-out infinite alternate;
}
.scn-false-hope .horizon-line {
  position:absolute; bottom:40%; left:0; right:0; height:2px;
  background: linear-gradient(90deg, transparent 0%, #8a9aaa 50%, transparent 100%);
  animation: fh-horizon 15s ease-in-out infinite;
}
.scn-false-hope .flag {
  position:absolute; bottom:67%; left:46%; width:12px; height:10px;
  background: linear-gradient(180deg, #b87878 0%, #8a5a5a 100%);
  border-radius: 0 40% 40% 0;
  animation: fh-flag 5s ease-in-out infinite alternate;
}
@keyframes fh-sky {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes fh-sea {
  0% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
  100% { transform: translateY(0); }
}
@keyframes fh-hull {
  0% { transform: translateX(0) rotate(-2deg); }
  25% { transform: translateX(2px) rotate(-1deg); }
  50% { transform: translateX(0) rotate(0deg); }
  75% { transform: translateX(-2px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(-2deg); }
}
@keyframes fh-mast {
  0% { transform: rotate(-1deg); }
  50% { transform: rotate(1.5deg); }
  100% { transform: rotate(-1deg); }
}
@keyframes fh-lookout {
  0% { transform: translate(0,0) rotate(-3deg); }
  50% { transform: translate(2px,-1px) rotate(2deg); }
  100% { transform: translate(0,0) rotate(-3deg); }
}
@keyframes fh-horizon {
  0% { opacity: 0.3; }
  50% { opacity: 0.7; }
  100% { opacity: 0.4; }
}
@keyframes fh-flag {
  0% { transform: rotate(-5deg); }
  50% { transform: rotate(5deg); }
  100% { transform: rotate(-5deg); }
}

.scn-underwater-boat-theory {
  background: linear-gradient(180deg, #2a1a0e 0%, #4a2e18 40%, #6b4a24 80%, #8a6a3a 100%), radial-gradient(ellipse at 50% 30%, #8a6a3a 0%, transparent 60%);
}
.scn-underwater-boat-theory .interior-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #1c100a 0%, #3a2010 50%, #5a3a18 100%);
  animation: ubt-pulse 12s ease-in-out infinite alternate;
}
.scn-underwater-boat-theory .porthole {
  position: absolute; top: 12%; left: 40%; width: 60px; height: 60px; border-radius: 50%; background: radial-gradient(circle, #6a8a9a 0%, #2a4a5a 70%, #1a2a3a 100%);
  border: 4px solid #4a3a2a; box-shadow: inset 0 0 20px rgba(10,20,30,0.8); animation: ubt-glow 8s ease-in-out infinite alternate;
}
.scn-underwater-boat-theory .porthole-light {
  position: absolute; top: 12%; left: 40%; width: 60px; height: 60px; border-radius: 50%; background: radial-gradient(circle, rgba(200,160,80,0.4) 0%, transparent 70%);
  animation: ubt-lightwave 6s ease-in-out infinite;
}
.scn-underwater-boat-theory .engine-block {
  position: absolute; bottom: 30%; left: 20%; width: 120px; height: 50px; background: linear-gradient(180deg, #5a4020 0%, #3a2a10 100%); border-radius: 8px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.7); animation: ubt-engine 10s ease-in-out infinite;
}
.scn-underwater-boat-theory .gauge {
  position: absolute; top: 30%; right: 20%; width: 30px; height: 30px; border-radius: 50%; background: radial-gradient(circle, #c8a060 0%, #5a4020 100%);
  border: 2px solid #8a6a3a; animation: ubt-needle 5s ease-in-out infinite;
}
.scn-underwater-boat-theory .chair {
  position: absolute; bottom: 20%; left: 50%; width: 30px; height: 40px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%); border-radius: 20% 20% 10% 10%;
  transform-origin: bottom center; animation: ubt-sway 7s ease-in-out infinite;
}
@keyframes ubt-pulse {
  0% { opacity: 0.85; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes ubt-glow {
  0% { box-shadow: inset 0 0 10px rgba(10,20,30,0.8); }
  50% { box-shadow: inset 0 0 30px rgba(20,40,60,1), 0 0 20px rgba(60,80,100,0.3); }
  100% { box-shadow: inset 0 0 15px rgba(10,20,30,0.9); }
}
@keyframes ubt-lightwave {
  0% { transform: scale(1); opacity: 0.3; }
  50% { transform: scale(1.2); opacity: 0.6; }
  100% { transform: scale(0.9); opacity: 0.4; }
}
@keyframes ubt-engine {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-4px); }
}
@keyframes ubt-needle {
  0% { transform: rotate(-30deg); }
  50% { transform: rotate(20deg); }
  100% { transform: rotate(-10deg); }
}
@keyframes ubt-sway {
  0% { transform: rotate(-2deg); }
  50% { transform: rotate(2deg); }
  100% { transform: rotate(-1deg); }
}

.scn-government-testing {
  background: linear-gradient(180deg, #0a0f1a 0%, #1a2230 30%, #2a3340 60%, #3a4a5a 100%), radial-gradient(ellipse at 70% 50%, #3a4a5a 0%, transparent 70%);
}
.scn-government-testing .chamber-bg {
  position: absolute; inset: 0; background: linear-gradient(135deg, #1a2230 0%, #0a0f1a 100%);
  animation: gt-flicker 14s ease-in-out infinite alternate;
}
.scn-government-testing .torpedo {
  position: absolute; bottom: 35%; left: 15%; width: 120px; height: 30px; background: linear-gradient(180deg, #5a5a60 0%, #3a3a40 50%, #2a2a30 100%); border-radius: 50% / 100% 100% 0 0;
  box-shadow: 0 8px 20px rgba(0,0,0,0.8); animation: gt-torpedo 8s ease-in-out infinite;
}
.scn-government-testing .blueprint {
  position: absolute; top: 20%; left: 55%; width: 80px; height: 60px; background: linear-gradient(135deg, #c8b898 0%, #a89878 100%); border-radius: 2px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.5); animation: gt-paper 12s ease-in-out infinite;
}
.scn-government-testing .tool {
  position: absolute; bottom: 20%; right: 25%; width: 20px; height: 50px; background: linear-gradient(180deg, #6a6a6a 0%, #4a4a4a 100%); border-radius: 2px 2px 10px 10px;
  transform: rotate(15deg); animation: gt-tool 6s ease-in-out infinite;
}
.scn-government-testing .light-beam {
  position: absolute; top: 10%; left: 20%; width: 200px; height: 8px; background: linear-gradient(90deg, rgba(200,180,100,0.6) 0%, transparent 100%);
  transform: rotate(-20deg); filter: blur(2px); animation: gt-sweep 9s linear infinite;
}
.scn-government-testing .shadow-figure {
  position: absolute; bottom: 15%; left: 10%; width: 30px; height: 60px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: gt-stance 4s ease-in-out infinite alternate;
}
@keyframes gt-flicker {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes gt-torpedo {
  0%, 100% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(10px) rotate(2deg); }
}
@keyframes gt-paper {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(3deg); }
  100% { transform: rotate(1deg); }
}
@keyframes gt-tool {
  0% { transform: rotate(10deg); }
  50% { transform: rotate(25deg); }
  100% { transform: rotate(12deg); }
}
@keyframes gt-sweep {
  0% { left: 10%; }
  50% { left: 60%; }
  100% { left: 110%; }
}
@keyframes gt-stance {
  0% { transform: translateY(0) rotate(-2deg); }
  50% { transform: translateY(-3px) rotate(2deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}

.scn-monster-resurfaces {
  background: linear-gradient(180deg, #0a1a2a 0%, #1a2a3a 30%, #2a3a4a 60%, #3a4a5a 100%), radial-gradient(ellipse at 50% 80%, #3a4a5a 0%, transparent 70%);
}
.scn-monster-resurfaces .deep-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #0a121a 0%, #1a2a38 50%, #2a3a48 100%);
  animation: mr-swell 15s ease-in-out infinite alternate;
}
.scn-monster-resurfaces .monster-body {
  position: absolute; bottom: 20%; left: 30%; width: 160px; height: 120px; background: linear-gradient(135deg, #2a3a2a 0%, #1a2a1a 50%, #0a1a0a 100%); border-radius: 40% 60% 30% 70% / 50% 40% 60% 50%;
  box-shadow: 0 0 40px 10px rgba(10,20,10,0.5); animation: mr-rise 10s ease-in-out infinite;
}
.scn-monster-resurfaces .monster-eye {
  position: absolute; bottom: 55%; left: 45%; width: 20px; height: 20px; background: radial-gradient(circle, #ffcc00 0%, #997700 60%, #334400 100%); border-radius: 50%;
  box-shadow: 0 0 20px #ffcc00; animation: mr-eye 3s ease-in-out infinite alternate;
}
.scn-monster-resurfaces .bubbles {
  position: absolute; bottom: 10%; left: 20%; width: 12px; height: 12px; background: radial-gradient(circle, rgba(200,220,240,0.6) 0%, transparent 100%); border-radius: 50%;
  animation: mr-bubble-up 6s ease-in-out infinite;
}
.scn-monster-resurfaces .sub-frame {
  position: absolute; top: 15%; right: 15%; width: 80px; height: 60px; border: 4px solid #4a5a6a; border-radius: 10px; background: linear-gradient(135deg, #2a3a4a 0%, #1a2a3a 100%);
  box-shadow: inset 0 0 20px rgba(0,0,0,0.7); animation: mr-frame 12s ease-in-out infinite;
}
.scn-monster-resurfaces .panicked-figure {
  position: absolute; bottom: 30%; left: 55%; width: 20px; height: 40px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: mr-shake 2s ease-in-out infinite;
}
@keyframes mr-swell {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes mr-rise {
  0%, 100% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-15px) scale(1.08); }
}
@keyframes mr-eye {
  0% { transform: scale(1); opacity: 0.7; }
  50% { transform: scale(1.5); opacity: 1; }
  100% { transform: scale(1.2); opacity: 0.9; }
}
@keyframes mr-bubble-up {
  0% { transform: translateY(0) scale(1); opacity: 0.6; }
  50% { transform: translateY(-40px) scale(1.3); opacity: 0.3; }
  100% { transform: translateY(-80px) scale(0.8); opacity: 0; }
}
@keyframes mr-frame {
  0%, 100% { border-color: #4a5a6a; }
  50% { border-color: #6a8a9a; }
}
@keyframes mr-shake {
  0% { transform: translateX(0) rotate(-5deg); }
  50% { transform: translateX(5px) rotate(5deg); }
  100% { transform: translateX(-2px) rotate(-3deg); }
}

.scn-aronnax-article {
  background: linear-gradient(180deg, #2a1a10 0%, #4a2e1a 40%, #6b4424 80%, #8a6a3a 100%), radial-gradient(ellipse at 50% 40%, #8a6a3a 0%, transparent 60%);
}
.scn-aronnax-article .desk-top {
  position: absolute; bottom: 25%; left: 10%; width: 80%; height: 50%; background: linear-gradient(180deg, #5a3a20 0%, #4a2a10 100%); border-radius: 4px 4px 0 0;
  box-shadow: 0 -4px 12px rgba(0,0,0,0.5); animation: aa-desk 12s ease-in-out infinite alternate;
}
.scn-aronnax-article .candle {
  position: absolute; bottom: 50%; left: 30%; width: 12px; height: 30px; background: linear-gradient(180deg, #e8c898 0%, #c8a878 100%); border-radius: 4px 4px 2px 2px;
  transform: rotate(2deg); animation: aa-flicker 3s ease-in-out infinite;
}
.scn-aronnax-article .candle-glow {
  position: absolute; bottom: 55%; left: 28%; width: 40px; height: 40px; background: radial-gradient(circle, rgba(255,200,100,0.5) 0%, transparent 70%);
  animation: aa-glow 4s ease-in-out infinite alternate;
}
.scn-aronnax-article .paper-stack {
  position: absolute; bottom: 38%; left: 45%; width: 60px; height: 30px; background: linear-gradient(180deg, #f0e0c0 0%, #d0c0a0 100%); border-radius: 2px;
  box-shadow: 0 2px 8px rgba(0,0,0,0.3); animation: aa-paper 10s ease-in-out infinite;
}
.scn-aronnax-article .quill {
  position: absolute; bottom: 45%; left: 55%; width: 4px; height: 40px; background: linear-gradient(180deg, #d0c0a0 0%, #8a7a6a 100%); border-radius: 50%;
  transform: rotate(-15deg); transform-origin: bottom center; animation: aa-quill 7s ease-in-out infinite;
}
.scn-aronnax-article .inkwell {
  position: absolute; bottom: 40%; left: 62%; width: 20px; height: 20px; background: radial-gradient(circle, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5); animation: aa-ink 15s ease-in-out infinite alternate;
}
.scn-aronnax-article .globe {
  position: absolute; bottom: 30%; right: 20%; width: 40px; height: 40px; background: radial-gradient(circle at 35% 35%, #6a8a6a 0%, #3a5a3a 50%, #2a3a2a 100%); border-radius: 50%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.4); animation: aa-globe 20s linear infinite;
}
@keyframes aa-desk {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.95; }
}
@keyframes aa-flicker {
  0% { transform: rotate(1deg) scaleY(1); }
  50% { transform: rotate(3deg) scaleY(1.05); }
  100% { transform: rotate(2deg) scaleY(0.98); }
}
@keyframes aa-glow {
  0% { opacity: 0.3; transform: scale(0.8); }
  50% { opacity: 0.7; transform: scale(1.2); }
  100% { opacity: 0.4; transform: scale(0.9); }
}
@keyframes aa-paper {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(0.5deg); }
}
@keyframes aa-quill {
  0% { transform: rotate(-12deg); }
  50% { transform: rotate(-18deg); }
  100% { transform: rotate(-14deg); }
}
@keyframes aa-ink {
  0% { box-shadow: 0 2px 6px rgba(0,0,0,0.5); }
  50% { box-shadow: 0 0 10px rgba(0,0,0,0.7); }
  100% { box-shadow: 0 2px 8px rgba(0,0,0,0.6); }
}
@keyframes aa-globe {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}

.scn-evasive-maneuver { background: linear-gradient(180deg, #0a0a1a 0%, #0d1725 40%, #0f2027 100%), radial-gradient(ellipse at 70% 40%, #1a2a3a 0%, transparent 60%); }

.scn-evasive-maneuver .sea {
  position: absolute; inset: 60% 0 0 0;
  background: linear-gradient(180deg, #0f2027 0%, #071014 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,.6);
  animation: ev-sea 20s ease-in-out infinite alternate;
}

.scn-evasive-maneuver .ship-hull {
  position: absolute; bottom: 42%; left: 45%; width: 120px; height: 30px;
  background: linear-gradient(180deg, #2a1e0e 0%, #1a1000 100%);
  border-radius: 30% 30% 10% 10%;
  transform-origin: bottom right;
  box-shadow: 0 4px 8px rgba(0,0,0,.7);
  animation: ev-turn 8s ease-in-out infinite alternate;
}

.scn-evasive-maneuver .mast {
  position: absolute; bottom: 50%; left: 50%; width: 4px; height: 60px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e00 100%);
  transform-origin: bottom center;
  animation: ev-mast 8s ease-in-out infinite alternate;
  border-radius: 2px;
}

.scn-evasive-maneuver .steam-puff {
  position: absolute; width: 20px; height: 20px;
  background: radial-gradient(circle, rgba(200,200,200,.3) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(3px);
}

.scn-evasive-maneuver .puff-1 { bottom: 48%; left: 55%; animation: ev-puff 3s ease-out infinite; }
.scn-evasive-maneuver .puff-2 { bottom: 45%; left: 58%; animation: ev-puff 3.5s ease-out infinite 1s; }

.scn-evasive-maneuver .wake {
  position: absolute; bottom: 40%; left: 30%; right: 70%; height: 6px;
  background: linear-gradient(90deg, rgba(180,200,210,.2) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(2px);
  animation: ev-wake 8s ease-in-out infinite alternate;
}

.scn-evasive-maneuver .helm {
  position: absolute; bottom: 44%; left: 52%; width: 10px; height: 14px;
  background: radial-gradient(circle, #5a3a1a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 20% 20%;
  transform-origin: bottom center;
  animation: ev-helm 8s ease-in-out infinite alternate;
}

@keyframes ev-sea {
  0% { transform: translateY(0); opacity: 0.9; }
  50% { transform: translateY(-4px); opacity: 1; }
  100% { transform: translateY(2px); opacity: 0.85; }
}
@keyframes ev-turn {
  0% { transform: rotate(0deg) scaleX(1); }
  50% { transform: rotate(-8deg) scaleX(0.95); }
  100% { transform: rotate(0deg) scaleX(1); }
}
@keyframes ev-mast {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(-6deg); }
  100% { transform: rotate(0deg); }
}
@keyframes ev-puff {
  0% { transform: translate(0,0) scale(0.5); opacity: 0.6; }
  50% { transform: translate(10px,-20px) scale(1.2); opacity: 0.3; }
  100% { transform: translate(25px,-50px) scale(0.8); opacity: 0; }
}
@keyframes ev-wake {
  0% { transform: scaleX(1); opacity: 0.5; }
  50% { transform: scaleX(1.3); opacity: 0.8; }
  100% { transform: scaleX(0.9); opacity: 0.4; }
}
@keyframes ev-helm {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(15deg); }
  100% { transform: rotate(-5deg); }
}

/* ------------------ circling-spectacle ------------------ */
.scn-circling-spectacle { background: linear-gradient(180deg, #0a0a1a 0%, #0d1420 40%, #0f181c 100%), radial-gradient(ellipse at 30% 60%, #0a2a2a 0%, transparent 60%); }

.scn-circling-spectacle .sea {
  position: absolute; inset: 55% 0 0 0;
  background: linear-gradient(180deg, #0f1820 0%, #060e12 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,.7);
  animation: cs-sea 15s ease-in-out infinite alternate;
}

.scn-circling-spectacle .frigate {
  position: absolute; bottom: 40%; left: 10%; width: 100px; height: 25px;
  background: linear-gradient(180deg, #1e1404 0%, #0e0a00 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 2px 6px rgba(0,0,0,.8);
  transform-origin: center 50%;
  animation: cs-rock 10s ease-in-out infinite alternate;
}

.scn-circling-spectacle .creature-glow {
  position: absolute; bottom: 20%; left: 50%; width: 60px; height: 40px;
  background: radial-gradient(circle, rgba(0,200,180,.6) 0%, rgba(0,180,200,.2) 40%, transparent 70%);
  border-radius: 40% 60% 60% 40% / 50% 50% 50% 50%;
  filter: blur(8px);
  animation: cs-circle 12s ease-in-out infinite alternate;
}

.scn-circling-spectacle .electric-arc {
  position: absolute; width: 30px; height: 4px;
  background: linear-gradient(90deg, transparent, rgba(160,255,230,.8), transparent);
  border-radius: 50%;
  filter: blur(1px);
}

.scn-circling-spectacle .arc-1 { top: 40%; left: 40%; transform: rotate(-30deg); animation: cs-arc 2s ease-in-out infinite; }
.scn-circling-spectacle .arc-2 { top: 35%; left: 55%; transform: rotate(45deg); animation: cs-arc 2.3s ease-in-out infinite 0.5s; }

.scn-circling-spectacle .spark {
  position: absolute; width: 4px; height: 4px;
  background: #a0ffea;
  border-radius: 50%;
  box-shadow: 0 0 10px 2px rgba(160,255,234,.6);
  animation: cs-spark 1.5s ease-out infinite;
}

.scn-circling-spectacle .horizon {
  position: absolute; top: 55%; left: 0; right: 0; height: 2px;
  background: linear-gradient(90deg, transparent, rgba(100,200,180,.2), transparent);
}

@keyframes cs-sea {
  0% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
  100% { transform: translateY(2px); }
}
@keyframes cs-rock {
  0% { transform: rotate(0deg) translateX(0); }
  50% { transform: rotate(-2deg) translateX(-5px); }
  100% { transform: rotate(2deg) translateX(5px); }
}
@keyframes cs-circle {
  0% { transform: translate(0,0) scale(1); opacity: 0.6; }
  25% { transform: translate(20px,-10px) scale(1.1); opacity: 0.8; }
  50% { transform: translate(0,-20px) scale(1.2); opacity: 1; }
  75% { transform: translate(-20px,-10px) scale(1.1); opacity: 0.8; }
  100% { transform: translate(0,0) scale(1); opacity: 0.6; }
}
@keyframes cs-arc {
  0% { opacity: 0; transform: rotate(0deg) scaleX(0.5); }
  20% { opacity: 1; transform: rotate(5deg) scaleX(1); }
  50% { opacity: 0.8; transform: rotate(-3deg) scaleX(1.2); }
  80% { opacity: 0.6; transform: rotate(2deg) scaleX(0.8); }
  100% { opacity: 0; transform: rotate(0deg) scaleX(0.5); }
}
@keyframes cs-spark {
  0% { transform: scale(1); opacity: 1; }
  50% { transform: scale(3); opacity: 0.5; }
  100% { transform: scale(0.5); opacity: 0; }
}

/* ------------------ captain-hesitates ------------------ */
.scn-captain-hesitates { background: linear-gradient(180deg, #050810 0%, #0a0f18 40%, #0d141e 100%), radial-gradient(ellipse at 20% 80%, #0a1420 0%, transparent 70%); }

.scn-captain-hesitates .dark-water {
  position: absolute; inset: 55% 0 0 0;
  background: linear-gradient(180deg, #0a111a 0%, #040810 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,.8);
  animation: ch-water 25s ease-in-out infinite alternate;
}

.scn-captain-hesitates .deck {
  position: absolute; bottom: 40%; left: 5%; right: 5%; height: 15%;
  background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%);
  border-radius: 10px 10px 0 0;
  box-shadow: 0 -2px 6px rgba(0,0,0,.5);
}

.scn-captain-hesitates .railing {
  position: absolute; bottom: 48%; left: 10%; right: 10%; height: 3px;
  background: linear-gradient(90deg, transparent, #2a1e14, transparent);
  border-radius: 2px;
}

.scn-captain-hesitates .captain-figure {
  position: absolute; bottom: 44%; left: 48%; width: 12px; height: 28px;
  background: linear-gradient(180deg, #0a0a0a 0%, #050505 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ch-stand 6s ease-in-out infinite alternate;
}

.scn-captain-hesitates .horizon-glow {
  position: absolute; top: 54%; left: 30%; right: 30%; height: 8px;
  background: radial-gradient(ellipse, rgba(40,70,100,.2) 0%, transparent 70%);
  filter: blur(4px);
  animation: ch-glow 20s ease-in-out infinite alternate;
}

.scn-captain-hesitates .fog {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, rgba(10,20,30,.05) 0%, rgba(10,20,30,.3) 100%);
  filter: blur(10px);
  animation: ch-fog 30s ease-in-out infinite alternate;
}

@keyframes ch-water {
  0% { transform: translateY(0); opacity: 0.9; }
  50% { transform: translateY(2px); opacity: 1; }
  100% { transform: translateY(-1px); opacity: 0.8; }
}
@keyframes ch-stand {
  0% { transform: scaleY(1) rotate(0deg); }
  50% { transform: scaleY(1.02) rotate(1deg); }
  100% { transform: scaleY(0.98) rotate(-1deg); }
}
@keyframes ch-glow {
  0% { opacity: 0.3; transform: scaleY(1); }
  50% { opacity: 0.6; transform: scaleY(2); }
  100% { opacity: 0.2; transform: scaleY(0.8); }
}
@keyframes ch-fog {
  0% { opacity: 0.6; }
  50% { opacity: 0.8; }
  100% { opacity: 0.5; }
}

/* ------------------ electrocution-fear ------------------ */
.scn-electrocution-fear { background: linear-gradient(180deg, #030610 0%, #080c18 40%, #0d1220 100%), radial-gradient(ellipse at 60% 70%, #0a2025 0%, transparent 60%); }

.scn-electrocution-fear .deck {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%);
  border-radius: 10px 10px 0 0;
  box-shadow: 0 -4px 10px rgba(0,0,0,.7);
}

.scn-electrocution-fear .crew-silhouette {
  position: absolute; width: 10px; height: 26px;
  background: linear-gradient(180deg, #0a0808 0%, #040202 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ef-stand 8s ease-in-out infinite alternate;
}

.scn-electrocution-fear .crew-1 { bottom: 32%; left: 20%; animation-delay: 0s; }
.scn-electrocution-fear .crew-2 { bottom: 33%; left: 70%; animation-delay: 1.5s; }

.scn-electrocution-fear .water-glow {
  position: absolute; bottom: 25%; left: 30%; right: 30%; height: 15%;
  background: radial-gradient(ellipse, rgba(0,180,150,.15) 0%, transparent 70%);
  filter: blur(10px);
  animation: ef-glow 4s ease-in-out infinite alternate;
}

.scn-electrocution-fear .electric-arc {
  position: absolute; bottom: 28%; left: 35%; width: 40px; height: 5px;
  background: linear-gradient(90deg, transparent, rgba(0,200,170,.9), transparent);
  border-radius: 50%;
  filter: blur(2px);
  animation: ef-arc 1.8s ease-in-out infinite;
}

.scn-electrocution-fear .lantern {
  position: absolute; bottom: 38%; left: 50%; width: 8px; height: 10px;
  background: radial-gradient(circle, #805020 0%, #402010 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 0 12px 3px rgba(255,160,50,.2);
  animation: ef-lantern 5s ease-in-out infinite alternate;
}

.scn-electrocution-fear .shadow {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 10%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.4) 100%);
  border-radius: 0 0 50% 50% ;
}

@keyframes ef-stand {
  0% { transform: scaleY(1) rotate(0deg); }
  50% { transform: scaleY(1.03) rotate(1deg); }
  100% { transform: scaleY(0.97) rotate(-1deg); }
}
@keyframes ef-glow {
  0% { transform: scaleY(0.8); opacity: 0.3; }
  50% { transform: scaleY(1.2); opacity: 0.6; }
  100% { transform: scaleY(0.9); opacity: 0.4; }
}
@keyframes ef-arc {
  0% { transform: translateX(0) scaleX(0.5); opacity: 0; }
  20% { opacity: 0.8; transform: translateX(-10px) scaleX(1); }
  50% { opacity: 1; transform: translateX(5px) scaleX(1.3); }
  80% { opacity: 0.6; transform: translateX(-5px) scaleX(0.8); }
  100% { opacity: 0; transform: translateX(0) scaleX(0.5); }
}
@keyframes ef-lantern {
  0% { box-shadow: 0 0 8px 2px rgba(255,160,50,.15); transform: scale(1); }
  50% { box-shadow: 0 0 16px 5px rgba(255,160,50,.3); transform: scale(1.1); }
  100% { box-shadow: 0 0 10px 3px rgba(255,160,50,.2); transform: scale(0.95); }
}

/* calling-conseil: calm, bright interior */
.scn-calling-conseil {
  background:
    linear-gradient(180deg, #e8e4da 0%, #c8c0b0 50%, #a09888 100%),
    radial-gradient(ellipse at 60% 70%, #ffffff 0%, transparent 60%);
}
.scn-calling-conseil .wall { position:absolute; inset:0 0 20% 0; background: linear-gradient(90deg, #d4cdc0 0%, #b8ae9e 100%); }
.scn-calling-conseil .window { position:absolute; top:8%; left:55%; width:25%; height:45%; background: linear-gradient(180deg, #d9dff0 0%, #b0c0d8 50%, #8898b0 100%); border-radius:4% 4% 8% 8%; box-shadow: inset 0 0 20px rgba(255,255,200,0.3); animation: cc-window 8s ease-in-out infinite alternate; }
.scn-calling-conseil .desk { position:absolute; bottom:22%; left:30%; width:40%; height:12%; background: linear-gradient(180deg, #9a8a7a 0%, #7a6a5a 100%); border-radius:4px 4px 0 0; box-shadow: 0 6px 12px rgba(0,0,0,0.2); }
.scn-calling-conseil .conseil { position:absolute; bottom:18%; left:35%; width:10%; height:35%; background: linear-gradient(180deg, #c06040 0%, #8a3a2a 50%, #5a2018 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cc-enter 6s ease-in-out infinite; }
.scn-calling-conseil .door { position:absolute; bottom:2%; right:8%; width:18%; height:90%; background: linear-gradient(180deg, #b8a898 0%, #8a7a6a 100%); border-radius: 6% 0 0 6% / 4% 0 0 4%; box-shadow: -8px 0 12px rgba(0,0,0,0.15); }
@keyframes cc-window {
  0% { opacity:0.7; transform:scaleY(0.98); }
  50% { opacity:1; transform:scaleY(1); }
  100% { opacity:0.8; transform:scaleY(0.99); }
}
@keyframes cc-enter {
  0% { transform: translateX(-30px) translateY(5px) rotate(2deg); opacity:0; }
  30% { transform: translateX(-10px) translateY(0) rotate(1deg); opacity:0.6; }
  50% { transform: translateX(0) translateY(-2px) rotate(0deg); opacity:1; }
  70% { transform: translateX(6px) translateY(0) rotate(-1deg); opacity:0.9; }
  100% { transform: translateX(10px) translateY(2px) rotate(0deg); opacity:0.7; }
}

/* conseil-loyalty: warm, dim interior */
.scn-conseil-loyalty {
  background:
    linear-gradient(180deg, #3a3028 0%, #4a3e32 30%, #5a4e3e 60%, #4a3e32 100%),
    radial-gradient(ellipse at 50% 60%, #7a5a3a 0%, transparent 70%);
}
.scn-conseil-loyalty .bg-warm { position:absolute; inset:0; background:linear-gradient(135deg, rgba(200,160,100,0.15) 0%, transparent 60%); }
.scn-conseil-loyalty .table { position:absolute; bottom:25%; left:30%; width:40%; height:8%; background: linear-gradient(180deg, #6a5a48 0%, #4a3a28 100%); border-radius:8px; box-shadow: 0 4px 10px rgba(0,0,0,0.5); }
.scn-conseil-loyalty .lamp { position:absolute; bottom:35%; left:48%; width:6%; height:20%; background: linear-gradient(180deg, #c8a060 0%, #a08040 100%); border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%; box-shadow: 0 0 30px 10px rgba(200,160,80,0.5), 0 0 60px 20px rgba(200,160,80,0.2); animation: cl-lamp 3s ease-in-out infinite alternate; }
.scn-conseil-loyalty .book { position:absolute; bottom:24%; left:45%; width:8%; height:3%; background: #7a6a4a; border-radius:2px; box-shadow: 0 2px 4px rgba(0,0,0,0.3); animation: cl-book 6s ease-in-out infinite; }
.scn-conseil-loyalty .figure { position:absolute; bottom:22%; left:43%; width:12%; height:40%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: cl-sway 4s ease-in-out infinite; }
.scn-conseil-loyalty .chair { position:absolute; bottom:20%; left:38%; width:20%; height:10%; background: linear-gradient(180deg, #6a5a48 0%, #5a4a38 100%); border-radius: 10% 10% 20% 20%; box-shadow: 0 4px 6px rgba(0,0,0,0.4); }
@keyframes cl-lamp {
  0% { transform:scale(0.98); opacity:0.7; box-shadow: 0 0 20px 8px rgba(200,160,80,0.4), 0 0 40px 15px rgba(200,160,80,0.2); }
  50% { transform:scale(1.02); opacity:1; box-shadow: 0 0 35px 15px rgba(200,160,80,0.6), 0 0 70px 30px rgba(200,160,80,0.3); }
  100% { transform:scale(0.99); opacity:0.8; box-shadow: 0 0 25px 10px rgba(200,160,80,0.5), 0 0 50px 20px rgba(200,160,80,0.25); }
}
@keyframes cl-book {
  0%,100% { transform: rotate(-2deg) translateY(0); }
  50% { transform: rotate(2deg) translateY(-1px); }
}
@keyframes cl-sway {
  0%,100% { transform: translateX(0) rotate(0); }
  25% { transform: translateX(4px) rotate(2deg); }
  50% { transform: translateX(0) rotate(1deg); }
  75% { transform: translateX(-4px) rotate(-1deg); }
}

/* preparations: tense, bright interior */
.scn-preparations {
  background:
    linear-gradient(180deg, #d8d0c0 0%, #b8a898 40%, #908070 100%),
    radial-gradient(ellipse at 40% 50%, #e0d8c8 0%, transparent 70%);
}
.scn-preparations .bg-tense { position:absolute; inset:0; background:linear-gradient(135deg, rgba(160,100,60,0.2) 0%, transparent 50%); }
.scn-preparations .trunk { position:absolute; bottom:20%; left:40%; width:25%; height:15%; background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%); border-radius:6% 6% 4% 4%; box-shadow: 0 6px 10px rgba(0,0,0,0.3); animation: pp-trunk 2s ease-in-out infinite alternate; }
.scn-preparations .clothes { position:absolute; bottom:27%; left:35%; width:8%; height:10%; background: linear-gradient(180deg, #9a8a7a 0%, #7a6a5a 100%); border-radius: 30% 30% 10% 10%; clip-path: polygon(0 0, 100% 0, 90% 100%, 0 100%); animation: pp-clothes 1.5s ease-in-out infinite; }
.scn-preparations .watch { position:absolute; bottom:32%; left:50%; width:5%; height:5%; background: radial-gradient(circle, #d0b060 0%, #a08040 70%); border-radius:50%; box-shadow: 0 0 10px 3px rgba(200,160,80,0.6); animation: pp-watch 1s ease-in-out infinite; }
.scn-preparations .map { position:absolute; bottom:22%; left:55%; width:18%; height:12%; background: linear-gradient(135deg, #c8b898 0%, #a89878 50%, #908060 100%); border-radius:4px; transform: rotate(-10deg); box-shadow: 0 2px 6px rgba(0,0,0,0.3); animation: pp-map 4s ease-in-out infinite alternate; }
.scn-preparations .figure-hurried { position:absolute; bottom:18%; left:25%; width:12%; height:40%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pp-hurry 1.8s ease-in-out infinite; }
@keyframes pp-trunk {
  0% { transform: translateY(0) scale(1); }
  100% { transform: translateY(-3px) scale(1.02); }
}
@keyframes pp-clothes {
  0%,100% { transform: rotate(-5deg) translateX(0); }
  50% { transform: rotate(5deg) translateX(3px); }
}
@keyframes pp-watch {
  0% { transform: rotate(0deg) scale(1); }
  25% { transform: rotate(10deg) scale(1.1); }
  50% { transform: rotate(0deg) scale(1); }
  75% { transform: rotate(-10deg) scale(0.9); }
  100% { transform: rotate(0deg) scale(1); }
}
@keyframes pp-map {
  0% { transform: rotate(-10deg) translateY(0); }
  50% { transform: rotate(-8deg) translateY(-2px); }
  100% { transform: rotate(-12deg) translateY(0); }
}
@keyframes pp-hurry {
  0% { transform: translateX(0) rotate(0); }
  15% { transform: translateX(8px) rotate(4deg); }
  30% { transform: translateX(0) rotate(0); }
  45% { transform: translateX(-8px) rotate(-4deg); }
  60% { transform: translateX(6px) rotate(2deg); }
  75% { transform: translateX(-4px) rotate(-2deg); }
  100% { transform: translateX(0) rotate(0); }
}

/* detour-explanation: calm, bright interior */
.scn-detour-explanation {
  background:
    linear-gradient(180deg, #e0dcc8 0%, #c8c0a8 50%, #a8a088 100%),
    radial-gradient(ellipse at 60% 40%, #f0ecd8 0%, transparent 60%);
}
.scn-detour-explanation .bg-soft { position:absolute; inset:0; background:linear-gradient(160deg, rgba(200,190,160,0.2) 0%, transparent 50%); }
.scn-detour-explanation .globe { position:absolute; bottom:25%; left:48%; width:20%; height:25%; background: radial-gradient(circle at 40% 40%, #4a8a6a 0%, #2a5a3a 30%, #1a3a2a 60%, #0a1a0a 100%); border-radius:50%; box-shadow: 0 0 20px 6px rgba(60,120,90,0.3); animation: de-globe 12s linear infinite; }
.scn-detour-explanation .table-map { position:absolute; bottom:18%; left:30%; width:45%; height:8%; background: linear-gradient(180deg, #9a8a72 0%, #7a6a52 100%); border-radius:6px; box-shadow: 0 4px 10px rgba(0,0,0,0.2); }
.scn-detour-explanation .figure1 { position:absolute; bottom:20%; left:22%; width:12%; height:38%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 35% 35% / 60% 60% 35% 35%; transform-origin: bottom center; animation: de-gesture1 5s ease-in-out infinite alternate; }
.scn-detour-explanation .figure2 { position:absolute; bottom:20%; left:45%; width:12%; height:38%; background: linear-gradient(180deg, #6a5a48 0%, #4a3a28 100%); border-radius: 50% 50% 35% 35% / 60% 60% 35% 35%; transform-origin: bottom center; animation: de-gesture2 5s ease-in-out infinite alternate-reverse; }
.scn-detour-explanation .compass { position:absolute; bottom:20%; left:38%; width:8%; height:8%; background: radial-gradient(circle, #d0b060 0%, #a08040 50%, #7a5a30 100%); border-radius:50%; box-shadow: 0 0 12px 4px rgba(200,160,80,0.4); animation: de-compass 8s ease-in-out infinite; }
@keyframes de-globe {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(180deg); }
  100% { transform: rotate(360deg); }
}
@keyframes de-gesture1 {
  0% { transform: translateY(0) rotate(-5deg); }
  50% { transform: translateY(-4px) rotate(0deg); }
  100% { transform: translateY(0) rotate(5deg); }
}
@keyframes de-gesture2 {
  0% { transform: translateY(0) rotate(5deg); }
  50% { transform: translateY(-4px) rotate(0deg); }
  100% { transform: translateY(0) rotate(-5deg); }
}
@keyframes de-compass {
  0%,100% { transform: rotate(0deg) scale(1); }
  25% { transform: rotate(45deg) scale(1.05); }
  50% { transform: rotate(0deg) scale(1); }
  75% { transform: rotate(-45deg) scale(0.95); }
}

.scn-article-excerpt {
  background: linear-gradient(180deg, #1e1a1c 0%, #2a2326 40%, #1f191b 100%), radial-gradient(ellipse at 30% 80%, #3a2b28 0%, transparent 60%);
}
.scn-article-excerpt .wall {
  position: absolute; inset: 0; background: linear-gradient(135deg, #2a2224 0%, #1c1618 100%); 
}
.scn-article-excerpt .bookshelf {
  position: absolute; bottom: 20%; left: 5%; width: 28%; height: 45%; background: linear-gradient(180deg, #3a2e28 0%, #1f1814 100%); border-radius: 2px; box-shadow: inset 0 0 12px rgba(0,0,0,0.6); 
  animation: ae-shelf 20s ease-in-out infinite alternate;
}
.scn-article-excerpt .desk {
  position: absolute; bottom: 0; left: 20%; right: 20%; height: 18%; background: linear-gradient(180deg, #4a3728 0%, #2a1e14 100%); border-radius: 4px 4px 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,0.5);
}
.scn-article-excerpt .book-open {
  position: absolute; bottom: 22%; left: 50%; width: 100px; height: 60px; transform: translate(-50%, 0); background: radial-gradient(ellipse at 50% 50%, #8a7a5a 0%, #5a4a2a 70%); border-radius: 6px 6px 12px 12px; 
  animation: ae-book 8s ease-in-out infinite;
}
.scn-article-excerpt .lamp-glow {
  position: absolute; bottom: 28%; left: 38%; width: 80px; height: 80px; background: radial-gradient(circle, #ffd080 0%, #b08040 40%, transparent 70%); border-radius: 50%; filter: blur(6px); 
  animation: ae-lamp 4s ease-in-out infinite alternate;
}
.scn-article-excerpt .window {
  position: absolute; top: 10%; right: 8%; width: 25%; height: 35%; background: linear-gradient(180deg, #0c1a2a 0%, #142236 100%); border: 4px solid #3a2a1a; border-radius: 2px; box-shadow: inset 0 0 20px rgba(0,0,0,0.4);
}
.scn-article-excerpt .ocean-glow {
  position: absolute; top: 15%; right: 10%; width: 20%; height: 25%; background: radial-gradient(ellipse at 50% 100%, #1a3a5a 0%, transparent 60%); opacity: 0.5; 
  animation: ae-ocean 12s ease-in-out infinite alternate;
}
.scn-article-excerpt .figure-silhouette {
  position: absolute; bottom: 18%; left: 35%; width: 28px; height: 40px; background: linear-gradient(180deg, #0a0a0a 0%, #1a1414 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; 
  animation: ae-figure 6s ease-in-out infinite;
}
@keyframes ae-shelf { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(1); } }
@keyframes ae-book { 0%,100% { transform: translate(-50%, 0) rotate(0deg); } 50% { transform: translate(-50%, -2px) rotate(2deg); } }
@keyframes ae-lamp { 0% { opacity: 0.6; transform: scale(1); } 50% { opacity: 1; transform: scale(1.2); } 100% { opacity: 0.8; transform: scale(1.1); } }
@keyframes ae-ocean { 0% { opacity: 0.3; } 50% { opacity: 0.7; } 100% { opacity: 0.4; } }
@keyframes ae-figure { 0%,100% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-1px) rotate(2deg); } }

.scn-article-more {
  background: linear-gradient(180deg, #1b1618 0%, #221c1e 50%, #171214 100%), radial-gradient(ellipse at 70% 20%, #3a2c28 0%, transparent 60%);
}
.scn-article-more .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%; background: linear-gradient(180deg, #2a1e16 0%, #1a120e 100%); border-radius: 0; 
}
.scn-article-more .wall {
  position: absolute; inset: 0; bottom: 15%; background: linear-gradient(135deg, #2a2220 0%, #1a1412 100%); 
}
.scn-article-more .chair {
  position: absolute; bottom: 15%; left: 10%; width: 50px; height: 60px; background: linear-gradient(180deg, #3a2a1e 0%, #1f1410 100%); border-radius: 8% 8% 4% 4%; 
  animation: am-chair 15s ease-in-out infinite alternate;
}
.scn-article-more .desk {
  position: absolute; bottom: 15%; left: 20%; right: 20%; height: 12%; background: linear-gradient(180deg, #4a3525 0%, #2a1e14 100%); border-radius: 3px; box-shadow: 0 -2px 8px rgba(0,0,0,0.4);
}
.scn-article-more .scroll {
  position: absolute; bottom: 27%; left: 40%; width: 80px; height: 20px; background: linear-gradient(90deg, #c8b07a 0%, #a08850 50%, #c8b07a 100%); border-radius: 30% 30% 10% 10%; 
  animation: am-scroll 10s ease-in-out infinite;
}
.scn-article-more .inkwell {
  position: absolute; bottom: 28%; left: 70%; width: 12px; height: 16px; background: #1a1412; border-radius: 50% 50% 30% 30%; box-shadow: 0 0 4px rgba(0,0,0,0.6);
}
.scn-article-more .hand-writing {
  position: absolute; bottom: 30%; left: 50%; width: 14px; height: 20px; background: radial-gradient(circle at 30% 20%, #d4c49a 0%, #b09868 100%); border-radius: 30% 20% 20% 30%; 
  animation: am-hand 3s ease-in-out infinite;
}
.scn-article-more .candle {
  position: absolute; bottom: 30%; left: 15%; width: 6px; height: 20px; background: linear-gradient(180deg, #f0e0a0 0%, #b09050 100%); border-radius: 20%; box-shadow: 0 0 16px 4px rgba(255,200,100,0.4); 
  animation: am-candle 4s ease-in-out infinite alternate;
}
@keyframes am-chair { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes am-scroll { 0%,100% { transform: scaleX(1); } 50% { transform: scaleX(1.05); } }
@keyframes am-hand { 0% { transform: translate(0,0) rotate(0deg); } 25% { transform: translate(4px,-2px) rotate(10deg); } 75% { transform: translate(8px,0) rotate(-5deg); } 100% { transform: translate(12px,-1px) rotate(0deg); } }
@keyframes am-candle { 0% { opacity: 0.7; transform: scaleY(1); } 50% { opacity: 1; transform: scaleY(1.05); } 100% { opacity: 0.8; transform: scaleY(0.95); } }

.scn-narwhale-argument {
  background: linear-gradient(180deg, #2a1c12 0%, #3a2818 40%, #1f140e 100%), radial-gradient(ellipse at 40% 60%, #5a3a1a 0%, transparent 70%);
}
.scn-narwhale-argument .wall {
  position: absolute; inset: 0; background: linear-gradient(135deg, #3a281c 0%, #1f1410 100%); 
}
.scn-narwhale-argument .hearth {
  position: absolute; bottom: 10%; left: 50%; width: 120px; height: 100px; transform: translateX(-50%); background: linear-gradient(180deg, #4a2a1a 0%, #1f0e08 100%); border-radius: 10% 10% 5% 5%; box-shadow: inset 0 0 20px rgba(0,0,0,0.7); 
}
.scn-narwhale-argument .fire {
  position: absolute; bottom: 12%; left: 50%; width: 80px; height: 80px; transform: translateX(-50%); background: radial-gradient(circle, #ff8030 0%, #d05010 40%, #802010 70%, transparent 100%); filter: blur(4px); 
  animation: na-fire 2s ease-in-out infinite alternate;
}
.scn-narwhale-argument .tusk-shelf {
  position: absolute; bottom: 35%; left: 15%; width: 70%; height: 8px; background: linear-gradient(90deg, #3a2a1e 0%, #5a3a28 50%, #3a2a1e 100%); border-radius: 2px; box-shadow: 0 -2px 6px rgba(0,0,0,0.4);
}
.scn-narwhale-argument .tusk {
  position: absolute; bottom: 45%; left: 50%; width: 8px; height: 120px; transform: translateX(-50%); background: linear-gradient(180deg, #f0e8d0 0%, #c8b890 40%, #a08870 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 12px rgba(200,180,140,0.3); 
  animation: na-tusk 6s ease-in-out infinite;
}
.scn-narwhale-argument .map-scroll {
  position: absolute; bottom: 10%; left: 15%; width: 100px; height: 60px; background: linear-gradient(135deg, #b8a070 0%, #90785a 100%); border-radius: 5px; transform: rotate(-5deg); 
  animation: na-map 12s ease-in-out infinite alternate;
}
.scn-narwhale-argument .tankard {
  position: absolute; bottom: 15%; right: 18%; width: 20px; height: 24px; background: linear-gradient(180deg, #6a5038 0%, #3a2818 100%); border-radius: 10% 10% 20% 20%; box-shadow: 0 2px 6px rgba(0,0,0,0.5);
}
.scn-narwhale-argument .shadow-figure {
  position: absolute; bottom: 10%; left: 45%; width: 30px; height: 50px; background: linear-gradient(180deg, #0e0a08 0%, #1a1410 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; 
  animation: na-figure 8s ease-in-out infinite;
}
@keyframes na-fire { 0% { transform: translateX(-50%) scale(1); opacity: 0.8; } 50% { transform: translateX(-50%) scale(1.2); opacity: 1; } 100% { transform: translateX(-50%) scale(0.9); opacity: 0.7; } }
@keyframes na-tusk { 0%,100% { transform: translateX(-50%) rotate(0deg); } 25% { transform: translateX(-50%) rotate(-2deg); } 75% { transform: translateX(-50%) rotate(2deg); } }
@keyframes na-map { 0% { transform: rotate(-5deg) scale(1); } 50% { transform: rotate(-3deg) scale(1.03); } 100% { transform: rotate(-5deg) scale(1); } }
@keyframes na-figure { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }

.scn-conclusion-article {
  background: linear-gradient(180deg, #1a1e22 0%, #121418 50%, #0a0c0e 100%), radial-gradient(ellipse at 80% 30%, #2a3a4a 0%, transparent 60%);
}
.scn-conclusion-article .wall {
  position: absolute; inset: 0; background: linear-gradient(135deg, #1a1c1e 0%, #0e1012 100%); 
}
.scn-conclusion-article .window {
  position: absolute; top: 5%; left: 25%; width: 50%; height: 45%; background: linear-gradient(180deg, #0a121a 0%, #162030 100%); border: 6px solid #1a1a1a; border-radius: 2px; box-shadow: inset 0 0 30px rgba(0,0,0,0.6); 
  overflow: hidden;
}
.scn-conclusion-article .storm-rain {
  position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: repeating-linear-gradient(45deg, rgba(255,255,255,0.02) 0px, rgba(255,255,255,0.02) 2px, transparent 2px, transparent 6px); 
  animation: ca-rain 0.5s linear infinite;
}
.scn-conclusion-article .lightning-flash {
  position: absolute; top: 10%; left: 40%; width: 60px; height: 200px; background: linear-gradient(180deg, #ffffff 0%, #a0b8ff 30%, transparent 70%); border-radius: 0; filter: blur(2px); opacity: 0; 
  animation: ca-lightning 4s ease-in-out infinite;
}
.scn-conclusion-article .desk {
  position: absolute; bottom: 8%; left: 20%; right: 20%; height: 14%; background: linear-gradient(180deg, #2a2420 0%, #1a1412 100%); border-radius: 4px 4px 0 0; box-shadow: 0 -4px 10px rgba(0,0,0,0.5);
}
.scn-conclusion-article .paper {
  position: absolute; bottom: 22%; left: 45%; width: 80px; height: 50px; background: linear-gradient(135deg, #d0c0a0 0%, #a89878 100%); border-radius: 3px; transform: rotate(-2deg); 
  animation: ca-paper 6s ease-in-out infinite alternate;
}
.scn-conclusion-article .hand-clenched {
  position: absolute; bottom: 18%; left: 35%; width: 20px; height: 26px; background: radial-gradient(circle at 40% 30%, #b09878 0%, #6a5040 100%); border-radius: 30% 20% 10% 20%; 
  animation: ca-hand 2s ease-in-out infinite;
}
.scn-conclusion-article .lamp-swing {
  position: absolute; top: 8%; right: 15%; width: 60px; height: 80px; background: radial-gradient(ellipse at 50% 20%, #e0c080 0%, #a08040 50%, transparent 80%); filter: blur(8px); 
  animation: ca-lamp 3s ease-in-out infinite alternate;
}
@keyframes ca-rain { 0% { transform: translateY(0); } 100% { transform: translateY(10px); } }
@keyframes ca-lightning { 0%,92%,100% { opacity: 0; } 93% { opacity: 0.8; } 95% { opacity: 0; } 96% { opacity: 0.6; } 97% { opacity: 0; } }
@keyframes ca-paper { 0% { transform: rotate(-2deg) translate(0,0); } 50% { transform: rotate(3deg) translate(2px,-2px); } 100% { transform: rotate(-2deg) translate(0,0); } }
@keyframes ca-hand { 0%,100% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.1) rotate(5deg); } }
@keyframes ca-lamp { 0% { transform: rotate(-5deg); opacity: 0.6; } 50% { transform: rotate(5deg); opacity: 1; } 100% { transform: rotate(-5deg); opacity: 0.8; } }

.scn-unique-instruments { background: linear-gradient(180deg, #f5efd8 0%, #c8bda0 100%), radial-gradient(circle at 50% 50%, rgba(200,180,130,0.15) 0%, transparent 70%); }
.scn-unique-instruments .panel { position:absolute; inset:15% 10% 20% 10%; background: linear-gradient(180deg, #3b2e1e 0%, #2a1f12 100%); border-radius:12% 12% 4% 4%; box-shadow: inset 0 0 30px rgba(0,0,0,0.6), 0 8px 20px rgba(0,0,0,0.4); }
.scn-unique-instruments .gauge { position:absolute; top:25%; left:50%; width:28%; height:0; padding-bottom:28%; transform:translateX(-50%); background: radial-gradient(circle at 40% 35%, #faf0da 0%, #e0d4b4 50%, #b8a88a 100%); border-radius:50%; box-shadow: inset 0 -4px 10px rgba(0,0,0,0.3), 0 6px 16px rgba(0,0,0,0.5); }
.scn-unique-instruments .needle { position:absolute; top:38%; left:50%; width:2%; height:18%; background: linear-gradient(180deg, #c04120 0%, #8a2a14 100%); transform-origin:50% 100%; border-radius:30% 30% 50% 50% / 60% 60% 40% 40%; animation: ui-needle 6s ease-in-out infinite alternate; }
.scn-unique-instruments .dials { position:absolute; top:50%; left:30%; width:8%; height:0; padding-bottom:8%; background: radial-gradient(circle, #d4c8a8 0%, #a09070 100%); border-radius:50%; box-shadow: inset 0 -2px 6px rgba(0,0,0,0.3); animation: ui-dial-shimmer 4s ease-in-out infinite alternate; }
.scn-unique-instruments .dials + .dials { left:62%; width:6%; padding-bottom:6%; animation-delay:1.2s; }
.scn-unique-instruments .glow { position:absolute; top:28%; left:48%; width:30%; height:30%; background: radial-gradient(circle, rgba(255,235,180,0.4) 0%, transparent 70%); animation: ui-glow-pulse 3s ease-in-out infinite alternate; }
.scn-unique-instruments .shadow { position:absolute; bottom:18%; left:15%; right:15%; height:4%; background: linear-gradient(180deg, rgba(0,0,0,0.15) 0%, transparent 100%); filter: blur(6px); }
.scn-unique-instruments .brass-reflection { position:absolute; top:28%; left:35%; width:30%; height:15%; background: linear-gradient(135deg, rgba(255,220,150,0.3) 0%, transparent 50%); border-radius:20% 80% 50% 50% / 30% 70% 50% 50%; animation: ui-brass 8s ease-in-out infinite; }
@keyframes ui-needle { 0% { transform:rotate(-18deg) } 50% { transform:rotate(6deg) } 100% { transform:rotate(-14deg) } }
@keyframes ui-dial-shimmer { 0% { box-shadow: inset 0 -2px 6px rgba(0,0,0,0.3) } 50% { box-shadow: inset 0 0 12px rgba(200,180,110,0.5) } 100% { box-shadow: inset 0 -2px 6px rgba(0,0,0,0.3) } }
@keyframes ui-glow-pulse { 0% { opacity:0.6 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes ui-brass { 0% { transform:rotate(0deg) scale(1) } 50% { transform:rotate(3deg) scale(1.02) } 100% { transform:rotate(0deg) scale(1) } }

.scn-electric-power { background: linear-gradient(180deg, #f8edd0 0%, #d6c290 100%), radial-gradient(circle at 60% 40%, rgba(255,200,80,0.12) 0%, transparent 70%); }
.scn-electric-power .cell { position:absolute; bottom:20%; left:25%; width:50%; height:55%; background: linear-gradient(135deg, #6a5a3a 0%, #4a3a1a 50%, #3a2a0a 100%); border-radius:10% 10% 30% 30% / 20% 20% 40% 40%; box-shadow: 0 10px 30px rgba(0,0,0,0.6), inset 0 -8px 20px rgba(0,0,0,0.5); }
.scn-electric-power .liquid { position:absolute; bottom:25%; left:28%; width:44%; height:40%; background: linear-gradient(180deg, #b0d0c0 0%, #608070 100%); border-radius:0 0 30% 30% / 0 0 40% 40%; animation: ep-liquid 12s ease-in-out infinite; }
.scn-electric-power .electrode { position:absolute; bottom:40%; width:4%; height:40%; background: linear-gradient(180deg, #808080 0%, #404040 100%); border-radius:20% 20% 10% 10%; box-shadow: 0 0 8px rgba(0,0,0,0.3); }
.scn-electric-power .anode { left:32%; }
.scn-electric-power .cathode { left:64%; }
.scn-electric-power .glow { position:absolute; bottom:45%; left:45%; width:10%; height:10%; background: radial-gradient(circle, rgba(255,220,100,0.6) 0%, transparent 60%); animation: ep-glow 2s ease-in-out infinite alternate; }
.scn-electric-power .bubble { position:absolute; left:40%; width:3%; height:0; padding-bottom:3%; background: radial-gradient(circle, rgba(255,255,255,0.6) 0%, transparent); border-radius:50%; }
.scn-electric-power .bubble-a { bottom:45%; animation: ep-bubble 3s ease-in-out infinite; }
.scn-electric-power .bubble-b { left:55%; bottom:40%; width:2%; padding-bottom:2%; animation: ep-bubble 4s ease-in-out infinite 0.5s; }
.scn-electric-power .pipe { position:absolute; top:20%; left:20%; width:60%; height:4%; background: linear-gradient(180deg, #5a4a2a 0%, #3a2a0a 100%); border-radius:10% / 50%; }
@keyframes ep-liquid { 0% { transform:translateY(0) } 50% { transform:translateY(-3px) } 100% { transform:translateY(0) } }
@keyframes ep-glow { 0% { opacity:0.7; transform:scale(1) } 50% { opacity:1; transform:scale(1.3) } 100% { opacity:0.8; transform:scale(1.1) } }
@keyframes ep-bubble { 0%,100% { transform:translateY(0) scale(1); opacity:0.6 } 50% { transform:translateY(-30px) scale(0.6); opacity:0 } }

.scn-sodium-extraction { background: linear-gradient(180deg, #e8eef0 0%, #bcc8d0 100%), radial-gradient(circle at 30% 20%, rgba(180,200,220,0.2) 0%, transparent 70%); }
.scn-sodium-extraction .tank { position:absolute; bottom:15%; left:15%; width:70%; height:65%; background: linear-gradient(180deg, #7a8a8a 0%, #4a5a5a 100%); border-radius:10% 10% 20% 20% / 15% 15% 30% 30%; box-shadow: 0 8px 25px rgba(0,0,0,0.5), inset 0 0 30px rgba(0,0,0,0.3); }
.scn-sodium-extraction .mercury { position:absolute; bottom:20%; left:18%; width:64%; height:15%; background: linear-gradient(180deg, #c0c8d0 0%, #808890 50%, #606870 100%); border-radius:30% / 40%; animation: se-mercury 8s ease-in-out infinite; }
.scn-sodium-extraction .sodium { position:absolute; bottom:28%; left:40%; width:20%; height:20%; background: radial-gradient(circle at 40% 35%, #e8e0d0 0%, #b8b0a0 100%); border-radius:50%; box-shadow: inset 0 -4px 10px rgba(0,0,0,0.2); animation: se-sodium 6s ease-in-out infinite alternate; }
.scn-sodium-extraction .pipes { position:absolute; top:10%; width:6%; height:40%; background: linear-gradient(90deg, #5a6a6a 0%, #3a4a4a 100%); border-radius:10% / 20%; }
.scn-sodium-extraction .pipe-1 { left:25%; transform:rotate(-5deg); }
.scn-sodium-extraction .pipe-2 { right:25%; transform:rotate(5deg); }
.scn-sodium-extraction .valve { position:absolute; top:45%; left:48%; width:8%; height:8%; background: radial-gradient(circle, #a0a0a0 0%, #606060 100%); border-radius:50%; box-shadow: 0 0 8px rgba(0,0,0,0.4); animation: se-valve 10s ease-in-out infinite; }
.scn-sodium-extraction .liquid-surface { position:absolute; bottom:32%; left:20%; right:20%; height:2%; background: linear-gradient(90deg, transparent 0%, rgba(200,220,240,0.4) 30%, rgba(200,220,240,0.1) 60%, transparent 100%); animation: se-surface 5s ease-in-out infinite alternate; }
@keyframes se-mercury { 0%,100% { transform:translateY(0) } 50% { transform:translateY(-2px) } }
@keyframes se-sodium { 0% { transform:rotate(0deg) } 50% { transform:rotate(5deg) scale(0.98) } 100% { transform:rotate(0deg) } }
@keyframes se-valve { 0% { transform:rotate(0deg) } 25% { transform:rotate(15deg) } 50% { transform:rotate(0deg) } 75% { transform:rotate(-10deg) } 100% { transform:rotate(0deg) } }
@keyframes se-surface { 0% { opacity:0.3 } 50% { opacity:0.7 } 100% { opacity:0.4 } }

.scn-air-supply { background: linear-gradient(180deg, #e0e8ec 0%, #b8c4cc 100%), radial-gradient(circle at 50% 30%, rgba(200,210,220,0.2) 0%, transparent 70%); }
.scn-air-supply .tanks { position:absolute; bottom:18%; width:20%; height:55%; background: linear-gradient(180deg, #6a7a80 0%, #4a5a60 100%); border-radius:20% 20% 30% 30% / 15% 15% 20% 20%; box-shadow: 0 6px 18px rgba(0,0,0,0.4), inset 0 0 20px rgba(0,0,0,0.3); }
.scn-air-supply .tank-left { left:22%; }
.scn-air-supply .tank-right { right:22%; }
.scn-air-supply .gauge-bg { position:absolute; top:22%; left:45%; width:10%; height:0; padding-bottom:10%; background: radial-gradient(circle, #e0d8c8 0%, #a8a090 100%); border-radius:50%; box-shadow: inset 0 -3px 8px rgba(0,0,0,0.3); }
.scn-air-supply .needle { position:absolute; top:26%; left:49.5%; width:1%; height:8%; background: linear-gradient(180deg, #c04020 0%, #802010 100%); transform-origin:50% 100%; border-radius:30%; animation: as-needle 5s ease-in-out infinite alternate; }
.scn-air-supply .pipes { position:absolute; top:30%; left:40%; width:20%; height:4%; background: linear-gradient(180deg, #608898 0%, #406878 100%); border-radius:10% / 50%; box-shadow: 0 2px 6px rgba(0,0,0,0.3); animation: as-pipe 8s ease-in-out infinite; }
.scn-air-supply .glow { position:absolute; top:20%; left:42%; width:16%; height:16%; background: radial-gradient(circle, rgba(200,210,230,0.3) 0%, transparent 60%); animation: as-glow 4s ease-in-out infinite alternate; }
.scn-air-supply .vent { position:absolute; top:45%; left:48%; width:4%; height:8%; background: linear-gradient(180deg, #404040 0%, #202020 100%); border-radius:10% / 20%; }
@keyframes as-needle { 0% { transform:rotate(-12deg) } 50% { transform:rotate(8deg) } 100% { transform:rotate(-10deg) } }
@keyframes as-pipe { 0% { transform:translateY(0) } 50% { transform:translateY(-1px) } 100% { transform:translateY(0) } }
@keyframes as-glow { 0% { opacity:0.5 } 50% { opacity:0.8 } 100% { opacity:0.6 } }

.scn-beyond-laws { background: linear-gradient(180deg, #1a1a2e 0%, #2a2a4e 40%, #3a3a5e 70%, #4a3a3e 100%), radial-gradient(ellipse at 60% 30%, #6a4a3a 0%, transparent 60%); }
.scn-beyond-laws .wall-bg { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #2a2a3e 0%, #4a4a5e 100%); box-shadow: inset 0 8px 20px rgba(0,0,0,.5); animation: bl-wall 15s ease-in-out infinite alternate; }
.scn-beyond-laws .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 30% 30% 0 0 / 20% 20% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.6); }
.scn-beyond-laws .figure-silhouette { position:absolute; bottom:30%; left:35%; width:40px; height:80px; background: linear-gradient(180deg, #0a0a1e 0%, #1a1a2e 70%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bl-figure 6s ease-in-out infinite; box-shadow: 0 0 20px 5px rgba(0,0,0,.6); }
.scn-beyond-laws .porthole { position:absolute; bottom:45%; right:20%; width:50px; height:50px; background: radial-gradient(circle, #3a5a8a 0%, #1a2a4a 70%, #0a0a1a 100%); border-radius: 50%; border: 4px solid #5a4a3a; box-shadow: inset 0 0 20px rgba(0,0,0,.8), 0 0 30px rgba(255,255,255,.1); animation: bl-porthole 8s ease-in-out infinite alternate; }
.scn-beyond-laws .light-beam { position:absolute; top:10%; left:50%; width:120px; height:200px; transform: translateX(-50%) skewX(-8deg); background: linear-gradient(180deg, rgba(255,220,150,.15) 0%, rgba(255,220,150,.05) 100%); filter: blur(10px); animation: bl-beam 4s ease-in-out infinite alternate; }
.scn-beyond-laws .shadow-form { position:absolute; bottom:30%; left:15%; width:30px; height:60px; background: linear-gradient(180deg, rgba(0,0,0,.5) 0%, transparent 100%); border-radius: 50%; filter: blur(8px); animation: bl-shadow 6s ease-in-out infinite reverse; }
@keyframes bl-wall { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes bl-figure { 0%,100% { transform: translateX(0) rotate(0) } 25% { transform: translateX(4px) rotate(2deg) } 50% { transform: translateX(-2px) rotate(-1deg) } 75% { transform: translateX(6px) rotate(1deg) } }
@keyframes bl-porthole { 0% { box-shadow: inset 0 0 20px rgba(0,0,0,.8), 0 0 30px rgba(255,255,255,.1); } 50% { box-shadow: inset 0 0 30px rgba(0,0,0,.9), 0 0 40px rgba(255,255,255,.2); } 100% { box-shadow: inset 0 0 15px rgba(0,0,0,.7), 0 0 20px rgba(255,255,255,.05); } }
@keyframes bl-beam { 0% { opacity:.4 } 50% { opacity:.7 } 100% { opacity:.3 } }
@keyframes bl-shadow { 0% { transform: translateY(0) scaleX(1) } 50% { transform: translateY(5px) scaleX(.9) } 100% { transform: translateY(0) scaleX(1) } }

.scn-ned-defiance { background: linear-gradient(180deg, #1a1a2e 0%, #2a2a4e 40%, #4a3a3a 70%, #5a4a3a 100%), radial-gradient(ellipse at 50% 20%, #8a6a4a 0%, transparent 50%); }
.scn-ned-defiance .wall-bg { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #3a2a2a 0%, #5a4a3a 100%); box-shadow: inset 0 8px 20px rgba(0,0,0,.5); animation: nd-wall 10s ease-in-out infinite alternate; }
.scn-ned-defiance .floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 20% 20% 0 0 / 40% 40% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.6); }
.scn-ned-defiance .table { position:absolute; bottom:30%; left:50%; width:120px; height:30px; transform: translateX(-50%); background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 6px 12px rgba(0,0,0,.5); }
.scn-ned-defiance .lamp { position:absolute; bottom:48%; left:50%; width:12px; height:20px; transform: translateX(-50%); background: radial-gradient(circle, #ffd060 0%, #b08040 70%); border-radius: 50% 50% 20% 20%; box-shadow: 0 0 30px 6px #c08040, 0 0 60px 12px rgba(192,128,64,.4); animation: nd-lamp 2s ease-in-out infinite alternate; }
.scn-ned-defiance .figure-left { position:absolute; bottom:30%; left:25%; width:40px; height:80px; background: linear-gradient(180deg, #0a0a1e 0%, #1a1a2e 70%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: nd-figure-left 4s ease-in-out infinite; }
.scn-ned-defiance .figure-right { position:absolute; bottom:30%; right:25%; width:40px; height:80px; background: linear-gradient(180deg, #0a0a1e 0%, #1a1a2e 70%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: nd-figure-right 4s ease-in-out infinite reverse; }
.scn-ned-defiance .tense-shadow { position:absolute; bottom:30%; left:30%; right:30%; height:40px; background: radial-gradient(ellipse, rgba(0,0,0,.7) 0%, transparent 70%); filter: blur(10px); animation: nd-shadow 3s ease-in-out infinite alternate; }
@keyframes nd-wall { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes nd-lamp { 0% { box-shadow: 0 0 20px 4px #c08040, 0 0 40px 8px rgba(192,128,64,.3); } 50% { box-shadow: 0 0 35px 10px #ffd060, 0 0 70px 18px rgba(255,208,96,.5); } 100% { box-shadow: 0 0 25px 6px #c08040, 0 0 50px 10px rgba(192,128,64,.4); } }
@keyframes nd-figure-left { 0%,100% { transform: translateX(0) rotate(0) } 25% { transform: translateX(8px) rotate(3deg) } 50% { transform: translateX(-2px) rotate(-2deg) } 75% { transform: translateX(12px) rotate(5deg) } }
@keyframes nd-figure-right { 0%,100% { transform: translateX(0) rotate(0) } 25% { transform: translateX(-6px) rotate(-2deg) } 50% { transform: translateX(4px) rotate(1deg) } 75% { transform: translateX(-10px) rotate(-4deg) } }
@keyframes nd-shadow { 0% { opacity:.6 } 50% { opacity:1 } 100% { opacity:.4 } }

.scn-captain-invitation { background: linear-gradient(180deg, #2a1a0e 0%, #4a3a2a 30%, #6a5a4a 60%, #8a7a6a 100%), radial-gradient(ellipse at 30% 40%, #b09070 0%, transparent 60%); }
.scn-captain-invitation .wall-bg { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #5a4a3a 0%, #7a6a5a 100%); box-shadow: inset 0 8px 20px rgba(0,0,0,.4); animation: ci-wall 12s ease-in-out infinite alternate; }
.scn-captain-invitation .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%); border-radius: 20% 20% 0 0 / 30% 30% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.5); }
.scn-captain-invitation .desk { position:absolute; bottom:32%; left:50%; width:150px; height:40px; transform: translateX(-50%); background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 6px 12px rgba(0,0,0,.5); }
.scn-captain-invitation .globe { position:absolute; bottom:40%; left:40%; width:50px; height:50px; background: radial-gradient(circle at 30% 30%, #6a8a6a 0%, #3a5a3a 60%, #1a2a1a 100%); border-radius: 50%; box-shadow: 0 0 20px 5px rgba(0,0,0,.4); animation: ci-globe 20s linear infinite; }
.scn-captain-invitation .figure-captain { position:absolute; bottom:30%; left:30%; width:45px; height:85px; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1e 70%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ci-figure-captain 5s ease-in-out infinite; }
.scn-captain-invitation .figure-professor { position:absolute; bottom:30%; right:30%; width:40px; height:75px; background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 70%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ci-figure-professor 5s ease-in-out infinite reverse; }
.scn-captain-invitation .warm-glow { position:absolute; top:10%; left:30%; right:30%; height:60%; background: radial-gradient(ellipse at 50% 0%, rgba(255,200,150,.2) 0%, transparent 70%); filter: blur(20px); animation: ci-glow 6s ease-in-out infinite alternate; }
@keyframes ci-wall { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes ci-globe { 0% { transform: rotate(0deg) } 100% { transform: rotate(360deg) } }
@keyframes ci-figure-captain { 0%,100% { transform: translateX(0) rotate(0) } 33% { transform: translateX(6px) rotate(2deg) } 66% { transform: translateX(-3px) rotate(-1deg) } }
@keyframes ci-figure-professor { 0%,100% { transform: translateX(0) rotate(0) } 33% { transform: translateX(-5px) rotate(-1deg) } 66% { transform: translateX(4px) rotate(2deg) } }
@keyframes ci-glow { 0% { opacity:.3 } 50% { opacity:.6 } 100% { opacity:.4 } }

.scn-meal-invitation { background: linear-gradient(180deg, #3a2a1a 0%, #5a4a3a 30%, #7a6a5a 60%, #9a8a7a 100%), radial-gradient(ellipse at 50% 30%, #c0a080 0%, transparent 50%); }
.scn-meal-invitation .wall-bg { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #6a5a4a 0%, #8a7a6a 100%); box-shadow: inset 0 8px 20px rgba(0,0,0,.3); animation: mi-wall 15s ease-in-out infinite alternate; }
.scn-meal-invitation .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%); border-radius: 10% 10% 0 0 / 20% 20% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.4); }
.scn-meal-invitation .dining-table { position:absolute; bottom:25%; left:50%; width:180px; height:20px; transform: translateX(-50%); background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 6px 12px rgba(0,0,0,.5); }
.scn-meal-invitation .plate { position:absolute; bottom:32%; left:30%; width:40px; height:12px; background: linear-gradient(180deg, #c0b0a0 0%, #a09080 100%); border-radius: 50%; box-shadow: 0 2px 4px rgba(0,0,0,.3); }
.scn-meal-invitation .candle { position:absolute; bottom:35%; left:55%; width:6px; height:25px; background: linear-gradient(180deg, #ffd080 0%, #b08040 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 15px 3px rgba(255,180,80,.6); animation: mi-candle 3s ease-in-out infinite alternate; }
.scn-meal-invitation .figure-seated-1 { position:absolute; bottom:22%; left:20%; width:40px; height:70px; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1e 70%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mi-seated-1 6s ease-in-out infinite; }
.scn-meal-invitation .figure-seated-2 { position:absolute; bottom:22%; right:20%; width:40px; height:70px; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1e 70%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mi-seated-2 6s ease-in-out infinite reverse; }
.scn-meal-invitation .soft-light { position:absolute; top:10%; left:20%; right:20%; height:50%; background: radial-gradient(ellipse at 50% 0%, rgba(255,220,180,.15) 0%, transparent 70%); filter: blur(15px); animation: mi-soft 8s ease-in-out infinite alternate; }
@keyframes mi-wall { 0% { opacity:.95 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes mi-candle { 0% { box-shadow: 0 0 10px 2px rgba(255,180,80,.5); } 50% { box-shadow: 0 0 20px 6px rgba(255,180,80,.8); } 100% { box-shadow: 0 0 12px 3px rgba(255,180,80,.5); } }
@keyframes mi-seated-1 { 0%,100% { transform: translateX(0) rotate(0) } 25% { transform: translateX(4px) rotate(1deg) } 50% { transform: translateX(-2px) rotate(-1deg) } 75% { transform: translateX(6px) rotate(2deg) } }
@keyframes mi-seated-2 { 0%,100% { transform: translateX(0) rotate(0) } 25% { transform: translateX(-4px) rotate(-1deg) } 50% { transform: translateX(2px) rotate(1deg) } 75% { transform: translateX(-6px) rotate(-2deg) } }
@keyframes mi-soft { 0% { opacity:.3 } 50% { opacity:.5 } 100% { opacity:.2 } }

.scn-forward-layout { background: linear-gradient(180deg, #e8dcc8 0%, #c8bca0 40%, #a09070 100%), radial-gradient(ellipse at 50% 30%, #fff8e0 0%, transparent 70%); }
.scn-forward-layout .wall-bg { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #f0e8d8 0%, #d8ccb0 100%); }
.scn-forward-layout .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #9a8a6a 0%, #6a5a3a 100%); border-radius: 0 0 10% 10% / 0 0 20% 20%; }
.scn-forward-layout .door-left { position:absolute; bottom:20%; left:15%; width:15%; height:50%; background: linear-gradient(180deg, #b09070 0%, #806040 100%); border-radius: 4px; box-shadow: inset 2px 0 4px rgba(0,0,0,.2); transform: perspective(600px) rotateY(15deg); }
.scn-forward-layout .door-right { position:absolute; bottom:20%; right:15%; width:15%; height:50%; background: linear-gradient(180deg, #b09070 0%, #806040 100%); border-radius: 4px; box-shadow: inset -2px 0 4px rgba(0,0,0,.2); transform: perspective(600px) rotateY(-15deg); }
.scn-forward-layout .porthole { position:absolute; top:20%; left:50%; width:12%; padding-bottom:12%; background: radial-gradient(circle, #a0d8ff 0%, #4080b0 60%, #1a3a5a 100%); border-radius: 50%; border: 4px solid #705030; box-shadow: 0 0 20px 6px rgba(64,128,176,.4), inset 0 0 10px rgba(0,0,0,.3); }
.scn-forward-layout .lamp { position:absolute; top:10%; left:50%; width:6%; padding-bottom:4%; background: radial-gradient(circle, #ffecb0 0%, #d0a050 60%, transparent 100%); border-radius: 50%; transform: translateX(-50%); box-shadow: 0 0 30px 10px rgba(208,160,80,.5); animation: fl-lamp 4s ease-in-out infinite alternate; }
.scn-forward-layout .figure { position:absolute; bottom:25%; left:40%; width:10%; height:40%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fl-walk 6s ease-in-out infinite; }
.scn-forward-layout .shelf { position:absolute; top:35%; left:20%; right:20%; height:4%; background: linear-gradient(90deg, #a08060 0%, #c0a080 50%, #a08060 100%); border-radius: 2px; box-shadow: 0 4px 6px rgba(0,0,0,.2); }
@keyframes fl-lamp { 0% { opacity:.85; transform: translateX(-50%) scale(1); } 50% { opacity:1; transform: translateX(-50%) scale(1.05); } 100% { opacity:.9; transform: translateX(-50%) scale(.98); } }
@keyframes fl-walk { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 25% { transform: translateX(8%) translateY(-3%) rotate(0deg); } 50% { transform: translateX(16%) translateY(0) rotate(2deg); } 75% { transform: translateX(24%) translateY(-2%) rotate(0deg); } 100% { transform: translateX(32%) translateY(0) rotate(-2deg); } }

.scn-galley-and-crew { background: linear-gradient(180deg, #f5efe0 0%, #d8cca0 60%, #b0a080 100%), radial-gradient(ellipse at 50% 40%, #fff8e0 0%, transparent 70%); }
.scn-galley-and-crew .wall-tile { position:absolute; inset:0 0 35% 0; background: linear-gradient(90deg, #f0e8d8 0%, #e0d4c0 50%, #f0e8d8 100%); background-size: 20px 20px; background-repeat: repeat; opacity:.4; }
.scn-galley-and-crew .counter { position:absolute; bottom:30%; left:10%; right:30%; height:15%; background: linear-gradient(180deg, #b8a080 0%, #8a7050 100%); border-radius: 4px 4px 0 0; box-shadow: inset 0 2px 4px rgba(0,0,0,.2); }
.scn-galley-and-crew .griddle { position:absolute; bottom:38%; left:15%; width:20%; height:4%; background: linear-gradient(180deg, #d0b090 0%, #b09070 100%); border-radius: 2px; animation: gc-griddle 8s ease-in-out infinite alternate; }
.scn-galley-and-crew .table { position:absolute; bottom:25%; left:40%; right:8%; height:12%; background: linear-gradient(180deg, #c8a880 0%, #a08060 100%); border-radius: 6px; box-shadow: 0 4px 8px rgba(0,0,0,.3); transform: perspective(400px) rotateX(10deg); }
.scn-galley-and-crew .plate { position:absolute; bottom:30%; left:45%; width:12%; padding-bottom:3%; background: radial-gradient(circle, #f0e8d8 0%, #c8b8a0 60%, #b0a090 100%); border-radius: 50%; border: 2px solid #a09080; }
.scn-galley-and-crew .silhouette-a { position:absolute; bottom:25%; left:20%; width:8%; height:35%; background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: gc-eat 5s ease-in-out infinite; }
.scn-galley-and-crew .silhouette-b { position:absolute; bottom:25%; left:32%; width:8%; height:35%; background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: gc-eat 5s ease-in-out infinite reverse; }
.scn-galley-and-crew .cabinet { position:absolute; bottom:20%; right:5%; width:18%; height:45%; background: linear-gradient(180deg, #a08060 0%, #704830 100%); border-radius: 4px; box-shadow: inset 0 0 10px rgba(0,0,0,.3); transform: perspective(400px) rotateY(-8deg); }
@keyframes gc-griddle { 0% { opacity:.7; transform: scaleX(1); } 50% { opacity:1; transform: scaleX(1.02); } 100% { opacity:.8; transform: scaleX(.98); } }
@keyframes gc-eat { 0% { transform: translateY(0) rotate(2deg); } 25% { transform: translateY(-3%) rotate(-2deg); } 50% { transform: translateY(0) rotate(3deg); } 75% { transform: translateY(-2%) rotate(-1deg); } 100% { transform: translateY(0) rotate(2deg); } }

.scn-engine-smell { background: linear-gradient(180deg, #3a3a2a 0%, #5a4a3a 30%, #4a3a2a 70%, #2a1a0a 100%), radial-gradient(ellipse at 50% 80%, #6a5a4a 0%, transparent 70%); }
.scn-engine-smell .floor-grid { position:absolute; bottom:0; left:0; right:0; height:15%; background: repeating-linear-gradient(90deg, #4a3a2a 0px, #4a3a2a 8px, #3a2a1a 8px, #3a2a1a 10px); }
.scn-engine-smell .bunsen-cell { position:absolute; bottom:30%; left:20%; width:20%; height:25%; background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%); border-radius: 30% 30% 10% 10% / 40% 40% 10% 10%; box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: es-heat 3s ease-in-out infinite alternate; }
.scn-engine-smell .electromagnet { position:absolute; top:15%; left:50%; width:30%; height:20%; background: linear-gradient(180deg, #705030 0%, #402010 100%); border-radius: 50% 50% 30% 30% / 40% 40% 20% 20%; transform: translateX(-50%); box-shadow: 0 6px 12px rgba(0,0,0,.6); }
.scn-engine-smell .pipe-left { position:absolute; top:10%; left:5%; width:8%; height:60%; background: linear-gradient(90deg, #8a7050 0%, #5a3a1a 100%); border-radius: 10% / 5%; box-shadow: inset 0 0 6px rgba(0,0,0,.4); }
.scn-engine-smell .pipe-right { position:absolute; top:10%; right:5%; width:8%; height:60%; background: linear-gradient(90deg, #5a3a1a 0%, #8a7050 100%); border-radius: 10% / 5%; box-shadow: inset 0 0 6px rgba(0,0,0,.4); }
.scn-engine-smell .vent { position:absolute; top:0; left:30%; right:30%; height:8%; background: repeating-linear-gradient(90deg, #5a4a3a 0px, #5a4a3a 10px, #3a2a1a 10px, #3a2a1a 12px); opacity:.6; animation: es-vent 12s linear infinite; }
.scn-engine-smell .glow-panel { position:absolute; bottom:20%; left:45%; width:10%; padding-bottom:5%; background: radial-gradient(circle, #ffa050 0%, #d06010 60%, transparent 100%); border-radius: 50%; box-shadow: 0 0 40px 15px rgba(208,96,16,.5); animation: es-glow 5s ease-in-out infinite alternate; }
@keyframes es-heat { 0% { transform: scaleY(.95); opacity:.8; } 50% { transform: scaleY(1.05); opacity:1; } 100% { transform: scaleY(.98); opacity:.9; } }
@keyframes es-vent { 0% { background-position: 0 0; } 100% { background-position: 0 12px; } }
@keyframes es-glow { 0% { opacity:.7; box-shadow: 0 0 30px 10px rgba(208,96,16,.4); } 50% { opacity:1; box-shadow: 0 0 50px 20px rgba(208,96,16,.6); } 100% { opacity:.8; box-shadow: 0 0 35px 12px rgba(208,96,16,.45); } }

.scn-steering-mech { background: linear-gradient(135deg, #2a2a3a 0%, #3a3a4a 40%, #4a4a5a 100%), radial-gradient(ellipse at 50% 60%, #5a5a6a 0%, transparent 70%); }
.scn-steering-mech .console-back { position:absolute; bottom:10%; left:15%; right:15%; height:60%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 20% 20% 8% 8% / 30% 30% 10% 10%; box-shadow: inset 0 0 30px rgba(0,0,0,.5); }
.scn-steering-mech .wheel { position:absolute; bottom:40%; left:50%; width:20%; padding-bottom:20%; background: linear-gradient(135deg, #8a7a5a 0%, #5a4a2a 50%, #3a2a1a 100%); border-radius: 50%; transform: translateX(-50%); box-shadow: 0 0 20px 6px rgba(0,0,0,.4); animation: sm-wheel 15s linear infinite; }
.scn-steering-mech .lever-left { position:absolute; bottom:30%; left:25%; width:4%; height:30%; background: linear-gradient(180deg, #b0a080 0%, #705030 100%); border-radius: 20% 20% 10% 10% / 30% 30% 10% 10%; transform-origin: bottom center; animation: sm-lever 6s ease-in-out infinite alternate; }
.scn-steering-mech .lever-right { position:absolute; bottom:30%; right:25%; width:4%; height:30%; background: linear-gradient(180deg, #b0a080 0%, #705030 100%); border-radius: 20% 20% 10% 10% / 30% 30% 10% 10%; transform-origin: bottom center; animation: sm-lever 6s ease-in-out infinite alternate-reverse; }
.scn-steering-mech .dial-inner { position:absolute; bottom:20%; left:38%; width:8%; padding-bottom:8%; background: radial-gradient(circle, #a0d0ff 0%, #4090c0 60%, #1a4060 100%); border-radius: 50%; border: 2px solid #8a7a5a; animation: sm-dial 8s ease-in-out infinite; }
.scn-steering-mech .dial-outer { position:absolute; bottom:20%; left:52%; width:8%; padding-bottom:8%; background: radial-gradient(circle, #ffc060 0%, #d09030 60%, #804010 100%); border-radius: 50%; border: 2px solid #8a7a5a; animation: sm-dial 8s ease-in-out infinite reverse; }
.scn-steering-mech .flashlight { position:absolute; top:20%; left:50%; width:4%; height:12%; background: linear-gradient(180deg, #fff8e0 0%, transparent 100%); transform: translateX(-50%) rotate(10deg); opacity:.6; animation: sm-flash 4s ease-in-out infinite alternate; }
.scn-steering-mech .nemo-shadow { position:absolute; bottom:25%; left:55%; width:12%; height:45%; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sm-nemo 10s ease-in-out infinite; }
@keyframes sm-wheel { 0% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(180deg); } 100% { transform: translateX(-50%) rotate(360deg); } }
@keyframes sm-lever { 0% { transform: rotate(10deg); } 50% { transform: rotate(-10deg); } 100% { transform: rotate(5deg); } }
@keyframes sm-dial { 0% { opacity:.7; box-shadow: 0 0 6px 2px rgba(0,0,0,.3); } 50% { opacity:1; box-shadow: 0 0 20px 6px rgba(0,0,0,.5); } 100% { opacity:.8; box-shadow: 0 0 10px 3px rgba(0,0,0,.4); } }
@keyframes sm-flash { 0% { opacity:.3; } 50% { opacity:.8; } 100% { opacity:.4; } }
@keyframes sm-nemo { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2%) rotate(1deg); } 50% { transform: translateY(0) rotate(-1deg); } 75% { transform: translateY(-1%) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }

.scn-pilot-house { background: linear-gradient(180deg, #f4e9d0 0%, #d8c8a8 40%, #b8a888 100%), radial-gradient(ellipse at 50% 0%, #fff5e0 0%, transparent 70%); }
.scn-pilot-house .room { position:absolute; inset:0; background: linear-gradient(180deg, rgba(255,245,224,0.3) 0%, transparent 100%); }
.scn-pilot-house .window-left { position:absolute; top:20%; left:10%; width:30%; height:40%; background: linear-gradient(135deg, #a0d0e0 0%, #70a0c0 100%); border-radius: 10px; box-shadow: inset 0 0 20px #fff, 0 0 30px rgba(160,208,224,0.3); animation: ph-window 6s ease-in-out infinite alternate; }
.scn-pilot-house .window-right { position:absolute; top:20%; right:10%; width:30%; height:40%; background: linear-gradient(225deg, #a0d0e0 0%, #70a0c0 100%); border-radius: 10px; box-shadow: inset 0 0 20px #fff, 0 0 30px rgba(160,208,224,0.3); animation: ph-window 6s ease-in-out infinite alternate; animation-delay: -3s; }
.scn-pilot-house .helmsman { position:absolute; bottom:25%; left:50%; width:40px; height:60px; transform: translateX(-50%); background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: ph-helm 4s ease-in-out infinite; }
.scn-pilot-house .glass-pane { position:absolute; top:25%; left:10%; right:10%; height:30%; background: linear-gradient(180deg, rgba(255,255,255,0.15) 0%, transparent 100%); border-radius: 5px; box-shadow: 0 0 40px rgba(255,255,255,0.2); animation: ph-glass 8s ease-in-out infinite alternate; }
.scn-pilot-house .instrument-panel { position:absolute; bottom:15%; left:20%; right:20%; height:8%; background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius: 4px; box-shadow: 0 -4px 10px rgba(0,0,0,0.3); }
.scn-pilot-house .light-source { position:absolute; top:5%; left:45%; width:10%; height:8%; background: radial-gradient(ellipse, #ffd680 0%, #f0b060 50%, transparent 100%); border-radius: 50%; box-shadow: 0 0 60px 20px rgba(240,176,96,0.4); animation: ph-light 5s ease-in-out infinite alternate; }
@keyframes ph-window { 0% { opacity:0.95; transform: scale(1); } 50% { opacity:1; transform: scale(1.02); } 100% { opacity:0.9; transform: scale(0.98); } }
@keyframes ph-helm { 0% { transform: translateX(-50%) translateY(0) rotate(-2deg); } 50% { transform: translateX(-50%) translateY(-3px) rotate(2deg); } 100% { transform: translateX(-50%) translateY(0) rotate(0); } }
@keyframes ph-glass { 0% { opacity:0.1; } 50% { opacity:0.3; } 100% { opacity:0.15; } }
@keyframes ph-light { 0% { opacity:0.7; transform: scale(1) translateY(0); } 50% { opacity:1; transform: scale(1.1) translateY(-2px); } 100% { opacity:0.8; transform: scale(0.95) translateY(0); } }

.scn-accidental-collision { background: linear-gradient(180deg, #d0d8e0 0%, #b0b8c0 40%, #9098a0 100%), radial-gradient(ellipse at 50% 0%, #e0e8f0 0%, transparent 70%); }
.scn-accidental-collision .interior-bg { position:absolute; inset:0; background: linear-gradient(180deg, rgba(200,210,220,0.4) 0%, transparent 100%); }
.scn-accidental-collision .hull-plate { position:absolute; bottom:20%; left:10%; right:10%; height:50%; background: linear-gradient(180deg, #807060 0%, #504030 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,0.4); animation: ac-hull 12s ease-in-out infinite alternate; }
.scn-accidental-collision .crack { position:absolute; top:30%; left:35%; width:30%; height:4%; background: linear-gradient(90deg, transparent 0%, #4a3a2a 20%, #4a3a2a 80%, transparent 100%); border-radius: 2px; transform: rotate(-20deg); box-shadow: 0 0 10px #2a1a0a; animation: ac-crack 3s ease-in-out infinite alternate; }
.scn-accidental-collision .figure-nemo { position:absolute; bottom:15%; left:40%; width:30px; height:50px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: ac-figure 5s ease-in-out infinite; }
.scn-accidental-collision .water-drops { position:absolute; top:10%; left:20%; right:20%; height:20%; background: radial-gradient(circle at 30% 50%, rgba(160,200,220,0.3) 0%, transparent 50%), radial-gradient(circle at 70% 30%, rgba(160,200,220,0.3) 0%, transparent 50%); animation: ac-drops 4s ease-in-out infinite alternate; }
.scn-accidental-collision .shockwave { position:absolute; top:40%; left:30%; width:40%; height:20%; background: radial-gradient(ellipse, rgba(255,255,255,0.2) 0%, transparent 80%); border-radius: 50%; animation: ac-shock 2s ease-in-out infinite; }
@keyframes ac-hull { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-5px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(0.98); } }
@keyframes ac-crack { 0% { opacity:0.5; transform: rotate(-20deg) scaleX(0.9); } 50% { opacity:1; transform: rotate(-18deg) scaleX(1); } 100% { opacity:0.6; transform: rotate(-22deg) scaleX(0.95); } }
@keyframes ac-figure { 0% { transform: translateX(0) translateY(0) rotate(-1deg); } 50% { transform: translateX(10px) translateY(-2px) rotate(1deg); } 100% { transform: translateX(0) translateY(0) rotate(0); } }
@keyframes ac-drops { 0% { opacity:0.2; transform: translateY(0); } 50% { opacity:0.5; transform: translateY(-8px); } 100% { opacity:0.3; transform: translateY(0); } }
@keyframes ac-shock { 0% { transform: scale(0.5); opacity:0.8; } 50% { transform: scale(1.5); opacity:0; } 100% { transform: scale(0.5); opacity:0.8; } }

.scn-engineering-background { background: linear-gradient(180deg, #e8d4b0 0%, #c8b090 40%, #a89070 100%), radial-gradient(ellipse at 50% 0%, #f0e0c0 0%, transparent 70%); }
.scn-engineering-background .workshop-bg { position:absolute; inset:0; background: linear-gradient(180deg, rgba(200,176,144,0.3) 0%, transparent 100%); }
.scn-engineering-background .machinery { position:absolute; bottom:10%; left:5%; right:5%; height:40%; background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,0.5); }
.scn-engineering-background .gear-a { position:absolute; bottom:25%; left:20%; width:40px; height:40px; background: radial-gradient(circle, #b0a090 0%, #807060 70%); border-radius: 50%; box-shadow: 0 0 0 6px #605040; animation: eb-gear 6s linear infinite; }
.scn-engineering-background .gear-b { position:absolute; bottom:30%; right:25%; width:30px; height:30px; background: radial-gradient(circle, #b0a090 0%, #807060 70%); border-radius: 50%; box-shadow: 0 0 0 4px #605040; animation: eb-gear 4s linear infinite reverse; animation-delay: -2s; }
.scn-engineering-background .figure-engineer { position:absolute; bottom:12%; left:45%; width:35px; height:55px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: eb-figure 7s ease-in-out infinite; }
.scn-engineering-background .steam { position:absolute; top:25%; left:30%; right:30%; height:20%; background: radial-gradient(ellipse, rgba(200,180,160,0.2) 0%, transparent 70%); filter: blur(4px); animation: eb-steam 12s ease-in-out infinite alternate; }
.scn-engineering-background .light-globe { position:absolute; top:8%; left:40%; width:20%; height:15%; background: radial-gradient(ellipse, #ffe080 0%, #f0c060 50%, transparent 100%); border-radius: 50%; box-shadow: 0 0 60px 30px rgba(240,192,96,0.5); animation: eb-light 5s ease-in-out infinite alternate; }
@keyframes eb-gear { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }
@keyframes eb-figure { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(3deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes eb-steam { 0% { opacity:0.1; transform: translateY(0) scale(1); } 50% { opacity:0.4; transform: translateY(-10px) scale(1.2); } 100% { opacity:0.2; transform: translateY(0) scale(0.9); } }
@keyframes eb-light { 0% { opacity:0.8; transform: scale(0.95); } 50% { opacity:1; transform: scale(1.05); } 100% { opacity:0.9; transform: scale(1); } }

.scn-secret-construction { background: linear-gradient(180deg, #a0b0c0 0%, #8090a0 40%, #607080 100%), radial-gradient(ellipse at 50% 0%, #b0c0d0 0%, transparent 70%); }
.scn-secret-construction .cave-workshop { position:absolute; inset:0; background: linear-gradient(180deg, rgba(80,90,100,0.3) 0%, transparent 100%); }
.scn-secret-construction .hull-section { position:absolute; bottom:15%; left:15%; right:15%; height:45%; background: linear-gradient(180deg, #706050 0%, #403020 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,0.5), 0 0 20px rgba(0,0,0,0.3); }
.scn-secret-construction .workbench { position:absolute; bottom:8%; left:20%; right:20%; height:12%; background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%); border-radius: 4px; box-shadow: 0 4px 10px rgba(0,0,0,0.4); }
.scn-secret-construction .tools { position:absolute; bottom:12%; left:25%; width:8%; height:15%; background: linear-gradient(180deg, #b0a090 0%, #807060 100%); border-radius: 2px; transform: rotate(15deg); animation: sc-tools 4s ease-in-out infinite alternate; }
.scn-secret-construction .figure-worker { position:absolute; bottom:10%; left:45%; width:30px; height:50px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: sc-figure 6s ease-in-out infinite; }
.scn-secret-construction .lantern { position:absolute; top:20%; left:35%; width:10%; height:12%; background: radial-gradient(ellipse, #ffc080 0%, #e09050 60%, transparent 100%); border-radius: 50%; box-shadow: 0 0 50px 20px rgba(224,144,80,0.6); animation: sc-lantern 5s ease-in-out infinite alternate; }
.scn-secret-construction .smoke { position:absolute; top:5%; left:30%; right:30%; height:25%; background: radial-gradient(ellipse, rgba(160,150,140,0.15) 0%, transparent 70%); filter: blur(6px); animation: sc-smoke 15s ease-in-out infinite alternate; }
@keyframes sc-tools { 0% { transform: rotate(15deg) translateY(0); } 50% { transform: rotate(10deg) translateY(-2px); } 100% { transform: rotate(20deg) translateY(0); } }
@keyframes sc-figure { 0% { transform: translateX(0) translateY(0) rotate(-1deg); } 50% { transform: translateX(5px) translateY(-1px) rotate(1deg); } 100% { transform: translateX(0) translateY(0) rotate(0); } }
@keyframes sc-lantern { 0% { opacity:0.6; transform: scale(0.9); } 50% { opacity:1; transform: scale(1.1); } 100% { opacity:0.7; transform: scale(1); } }
@keyframes sc-smoke { 0% { opacity:0.05; transform: translateY(0) scale(1); } 50% { opacity:0.2; transform: translateY(-15px) scale(1.3); } 100% { opacity:0.1; transform: translateY(0) scale(0.8); } }

/* cannon-attempt – tense, sunlit, wide horizon */
.scn-cannon-attempt {
  background:
    linear-gradient(180deg, #87ceeb 0%, #f0d080 40%, #4a90d9 60%, #1a3a6a 100%),
    radial-gradient(ellipse at 50% 0%, #fff6e0 0%, transparent 60%);
}
.scn-cannon-attempt .sky-ca {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #b0d4f0 0%, #f5e6b0 70%, transparent 100%);
  animation: ca-sky 12s ease-in-out infinite alternate;
}
.scn-cannon-attempt .sea-ca {
  position: absolute; top: 45%; left: 0; right: 0; bottom: 0;
  background: linear-gradient(180deg, #2a5a8a 0%, #1a3a6a 50%, #0a1a3a 100%);
  animation: ca-sea 8s ease-in-out infinite alternate;
}
.scn-cannon-attempt .ship-hull-ca {
  position: absolute; bottom: 30%; left: 15%; width: 60%; height: 15%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%);
  border-radius: 0 0 20% 20% / 0 0 100% 100%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.5);
}
.scn-cannon-attempt .deck-ca {
  position: absolute; bottom: 42%; left: 17%; width: 56%; height: 8%;
  background: linear-gradient(180deg, #8a6a4a 0%, #6a4a2a 100%);
  border-radius: 4px;
}
.scn-cannon-attempt .cannon-ca {
  position: absolute; bottom: 38%; left: 30%; width: 12%; height: 10%;
  background: linear-gradient(90deg, #4a3a2a 0%, #6a5a4a 50%, #4a3a2a 100%);
  border-radius: 50% 50% 10% 10% / 80% 80% 10% 10%;
  transform-origin: 100% 100%;
  animation: ca-cannon 4s ease-in-out infinite;
}
.scn-cannon-attempt .flash-ca {
  position: absolute; bottom: 38%; left: 42%; width: 8%; height: 8%;
  background: radial-gradient(circle, #fff8e0 0%, #ffd070 40%, transparent 80%);
  border-radius: 50%;
  opacity: 0;
  animation: ca-flash 4s ease-in-out infinite;
  animation-delay: 0.5s;
}
.scn-cannon-attempt .creature-ca {
  position: absolute; bottom: 25%; right: 10%; width: 15%; height: 10%;
  background: radial-gradient(ellipse at 50% 100%, #1a4a3a 0%, #0a2a1a 100%);
  border-radius: 50% 50% 30% 30% / 80% 80% 20% 20%;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.6);
  animation: ca-creature 6s ease-in-out infinite alternate;
}
@keyframes ca-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes ca-sea { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(2px); } }
@keyframes ca-cannon { 0% { transform: rotate(-10deg); } 50% { transform: rotate(0deg); } 100% { transform: rotate(-5deg); } }
@keyframes ca-flash { 0%,90%,100% { opacity: 0; transform: scale(0.5); } 5%,20% { opacity: 1; transform: scale(1.5); } 30% { opacity: 0.6; transform: scale(1); } }
@keyframes ca-creature { 0% { transform: translateX(0) scaleY(1); } 50% { transform: translateX(-10px) scaleY(1.1); } 100% { transform: translateX(5px) scaleY(0.9); } }

/* old-gunner-attempt – tense, sunlit, close-up on gunner */
.scn-old-gunner-attempt {
  background:
    linear-gradient(180deg, #b0d4f0 0%, #f5e6b0 40%, #7ab0d0 70%, #2a5a8a 100%),
    radial-gradient(ellipse at 50% 0%, #fff6e0 0%, transparent 60%);
}
.scn-old-gunner-attempt .sky-og {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #c0d8f0 0%, #f0d4a0 100%);
  animation: og-sky 10s ease-in-out infinite alternate;
}
.scn-old-gunner-attempt .sea-og {
  position: absolute; top: 50%; left: 0; right: 0; bottom: 0;
  background: linear-gradient(180deg, #3a6a9a 0%, #1a3a6a 100%);
}
.scn-old-gunner-attempt .rail-og {
  position: absolute; bottom: 35%; left: 10%; width: 80%; height: 6%;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 4px;
}
.scn-old-gunner-attempt .cannon-og {
  position: absolute; bottom: 30%; left: 40%; width: 18%; height: 16%;
  background: linear-gradient(90deg, #4a3a2a 0%, #6a5a4a 50%, #4a3a2a 100%);
  border-radius: 40% 40% 10% 10% / 60% 60% 10% 10%;
  transform-origin: 50% 100%;
  animation: og-cannon 5s ease-in-out infinite;
}
.scn-old-gunner-attempt .gunner-og {
  position: absolute; bottom: 30%; left: 30%; width: 14%; height: 25%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: og-gunner 4s ease-in-out infinite;
}
.scn-old-gunner-attempt .shell-trail-og {
  position: absolute; bottom: 38%; left: 58%; width: 20%; height: 2%;
  background: linear-gradient(90deg, rgba(255,240,200,0.8) 0%, transparent 100%);
  border-radius: 2px;
  opacity: 0;
  animation: og-shell 5s ease-in-out infinite;
  animation-delay: 1s;
}
@keyframes og-sky { 0% { opacity: 0.8; transform: translateY(0); } 50% { opacity: 1; transform: translateY(-3px); } 100% { opacity: 0.9; transform: translateY(0); } }
@keyframes og-cannon { 0% { transform: rotate(-15deg); } 30% { transform: rotate(0deg); } 70% { transform: rotate(0deg); } 100% { transform: rotate(-10deg); } }
@keyframes og-gunner { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(5px) rotate(2deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-3px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes og-shell { 0%,80%,100% { opacity: 0; transform: translateX(0) scaleX(1); } 10%,30% { opacity: 1; transform: translateX(60px) scaleX(0.5); } 50% { opacity: 0.5; transform: translateX(120px) scaleX(0.2); } }

/* relentless-chase – dark mood, sunlit becomes sunset */
.scn-relentless-chase {
  background:
    linear-gradient(180deg, #4a3060 0%, #7a4080 20%, #d07050 50%, #2a4a6a 80%, #0a1a2a 100%),
    radial-gradient(ellipse at 50% 30%, #e09060 0%, transparent 50%);
}
.scn-relentless-chase .sky-rc {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #5a3a6a 0%, #c07850 60%, transparent 100%);
  animation: rc-sky 20s ease-in-out infinite alternate;
}
.scn-relentless-chase .sunset-glow-rc {
  position: absolute; top: 20%; left: 30%; width: 40%; height: 20%;
  background: radial-gradient(ellipse, #ffc080 0%, #d07050 60%, transparent 100%);
  opacity: 0.5;
  animation: rc-glow 10s ease-in-out infinite alternate;
}
.scn-relentless-chase .sea-rc {
  position: absolute; top: 55%; left: 0; right: 0; bottom: 0;
  background: linear-gradient(180deg, #1a3a5a 0%, #0a1a2a 100%);
  animation: rc-sea 15s ease-in-out infinite alternate;
}
.scn-relentless-chase .ship-rc {
  position: absolute; bottom: 25%; left: 10%; width: 50%; height: 18%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 0 0 20% 20% / 0 0 100% 100%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.6);
  animation: rc-ship 12s ease-in-out infinite;
}
.scn-relentless-chase .wake-rc {
  position: absolute; bottom: 22%; left: 10%; width: 55%; height: 4%;
  background: linear-gradient(90deg, rgba(200,220,255,0.4) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(3px);
  animation: rc-wake 6s ease-in-out infinite;
}
.scn-relentless-chase .clouds-rc {
  position: absolute; top: 5%; left: -10%; width: 120%; height: 30%;
  background: repeating-linear-gradient(90deg, rgba(80,60,80,0.3) 0px, transparent 40px, rgba(80,60,80,0.1) 80px);
  filter: blur(8px);
  animation: rc-clouds 50s linear infinite;
}
@keyframes rc-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes rc-glow { 0% { transform: scale(1); opacity: 0.4; } 50% { transform: scale(1.1); opacity: 0.6; } 100% { transform: scale(0.9); opacity: 0.5; } }
@keyframes rc-sea { 0% { transform: translateY(0); } 50% { transform: translateY(3px); } 100% { transform: translateY(-2px); } }
@keyframes rc-ship { 0%,100% { transform: translateY(0); } 25% { transform: translateY(2px); } 75% { transform: translateY(-2px); } }
@keyframes rc-wake { 0% { transform: scaleX(1); opacity: 0.4; } 50% { transform: scaleX(1.2); opacity: 0.3; } 100% { transform: scaleX(0.9); opacity: 0.5; } }
@keyframes rc-clouds { 0% { transform: translateX(0); } 100% { transform: translateX(-50%); } }

/* midnight-approach – tense, dark, moonlit */
.scn-midnight-approach {
  background:
    linear-gradient(180deg, #0a0a2a 0%, #1a1a4a 40%, #0a1a3a 80%, #05050f 100%),
    radial-gradient(ellipse at 50% 20%, #d0d0e0 0%, transparent 70%);
}
.scn-midnight-approach .sky-ma {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #0a0a2a 0%, #1a1a3a 60%, transparent 100%);
  animation: ma-sky 15s ease-in-out infinite alternate;
}
.scn-midnight-approach .moon-ma {
  position: absolute; top: 8%; left: 40%; width: 12%; height: 12%;
  background: radial-gradient(circle, #f0f0ff 0%, #d0d0e8 70%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 10px rgba(200,200,255,0.3);
  animation: ma-moon 8s ease-in-out infinite alternate;
}
.scn-midnight-approach .sea-ma {
  position: absolute; top: 50%; left: 0; right: 0; bottom: 0;
  background: linear-gradient(180deg, #0a1a3a 0%, #050510 100%);
  animation: ma-sea 10s ease-in-out infinite alternate;
}
.scn-midnight-approach .ship-ma {
  position: absolute; bottom: 25%; left: 5%; width: 55%; height: 20%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 0 0 15% 15% / 0 0 80% 80%;
  box-shadow: 0 2px 10px rgba(0,0,0,0.8);
}
.scn-midnight-approach .harpooner-ma {
  position: absolute; bottom: 35%; left: 48%; width: 10%; height: 22%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%;
  transform-origin: bottom center;
  animation: ma-harpooner 4s ease-in-out infinite;
}
.scn-midnight-approach .harpoon-ma {
  position: absolute; bottom: 42%; left: 56%; width: 12%; height: 3%;
  background: linear-gradient(90deg, #2a2a3a 0%, #4a4a5a 100%);
  border-radius: 0 50% 50% 0;
  transform-origin: 0% 50%;
  animation: ma-harpoon 4s ease-in-out infinite;
  animation-delay: 0.3s;
}
.scn-midnight-approach .reflection-ma {
  position: absolute; bottom: 10%; left: 30%; width: 40%; height: 6%;
  background: linear-gradient(90deg, rgba(200,200,255,0.05) 0%, rgba(200,200,255,0.15) 50%, rgba(200,200,255,0.05) 100%);
  filter: blur(4px);
  animation: ma-reflection 6s ease-in-out infinite;
}
@keyframes ma-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes ma-moon { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-3px) scale(1.05); } 100% { transform: translateY(0) scale(1); } }
@keyframes ma-sea { 0% { transform: translateY(0); } 50% { transform: translateY(2px); } 100% { transform: translateY(-1px); } }
@keyframes ma-harpooner { 0%,100% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(2px) rotate(2deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-2px) rotate(-2deg); } }
@keyframes ma-harpoon { 0%,100% { transform: rotate(0deg) translateX(0); } 25% { transform: rotate(5deg) translateX(3px); } 50% { transform: rotate(-2deg) translateX(0); } 75% { transform: rotate(3deg) translateX(-2px); } }
@keyframes ma-reflection { 0% { opacity: 0.3; transform: scaleY(1); } 50% { opacity: 0.5; transform: scaleY(1.1); } 100% { opacity: 0.3; transform: scaleY(0.9); } }

/* Scene: news-excitement (tense, overcast) */
.scn-news-excitement {
  background: linear-gradient(180deg, #3b4c5e 0%, #2c3a4a 40%, #1e2a36 100%), radial-gradient(ellipse at 50% 0%, #5f7a8c 0%, transparent 70%);
}
.scn-news-excitement .sky-overcast {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #5b7184 0%, #3c4f62 60%, #2a3a48 100%);
  animation: nei-sky 20s ease-in-out infinite alternate;
}
.scn-news-excitement .harbor-fog {
  position: absolute; bottom: 35%; left: 0; right: 0; height: 20%;
  background: linear-gradient(90deg, rgba(180,195,210,0.3), rgba(120,140,160,0.5), rgba(180,195,210,0.3));
  border-radius: 40% 60% 30% 70% / 60% 40% 70% 30%;
  filter: blur(12px);
  animation: nei-fog 30s linear infinite alternate;
}
.scn-news-excitement .ship-hull {
  position: absolute; bottom: 15%; left: 25%; width: 50%; height: 20%;
  background: linear-gradient(180deg, #2a3a3e 0%, #141c20 100%);
  border-radius: 0 20% 40% 40% / 0 30% 20% 20%;
  box-shadow: 0 -4px 10px rgba(0,0,0,0.5);
  animation: nei-hull 6s ease-in-out infinite;
}
.scn-news-excitement .smoke-stack {
  position: absolute; bottom: 35%; left: 60%; width: 6%; height: 18%;
  background: linear-gradient(90deg, #2a3438, #1a2226, #2a3438);
  border-radius: 10% 10% 0 0;
}
.scn-news-excitement .smoke-puff {
  position: absolute; bottom: 52%; left: 60%; width: 8%; height: 6%;
  background: radial-gradient(circle, rgba(180,190,200,0.6), rgba(120,130,140,0.2));
  border-radius: 50%;
  filter: blur(8px);
}
.scn-news-excitement .smoke-1 {
  animation: nei-smoke 10s ease-out infinite;
  animation-delay: 0s;
}
.scn-news-excitement .smoke-2 {
  animation: nei-smoke 10s ease-out infinite;
  animation-delay: 5s;
  left: 62%;
}
.scn-news-excitement .mast-rig {
  position: absolute; bottom: 30%; left: 30%; width: 2%; height: 40%;
  background: linear-gradient(180deg, #3a3e40, #1a1e20);
  transform: rotate(-5deg);
}
.scn-news-excitement .figure-captain {
  position: absolute; bottom: 18%; left: 45%; width: 4%; height: 12%;
  background: linear-gradient(180deg, #2c3035 0%, #101418 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: nei-figure 4s ease-in-out infinite;
}
@keyframes nei-sky { 0% { opacity: 0.7; transform: scale(1); } 50% { opacity: 0.85; transform: scale(1.02); } 100% { opacity: 0.7; transform: scale(1); } }
@keyframes nei-fog { 0% { transform: translateX(-10%) scaleX(0.9); } 50% { transform: translateX(0%) scaleX(1.1); } 100% { transform: translateX(10%) scaleX(0.9); } }
@keyframes nei-hull { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes nei-smoke { 0% { transform: translateY(0) scale(0.5); opacity: 0.8; } 100% { transform: translateY(-80px) scale(2); opacity: 0; } }
@keyframes nei-figure { 0%, 100% { transform: translateX(0) translateY(0) rotate(-2deg); } 50% { transform: translateX(8px) translateY(-2px) rotate(2deg); } }

/* Scene: letter-invitation (warm, bright-interior) */
.scn-letter-invitation {
  background: linear-gradient(180deg, #f5e6d3 0%, #e4d2bb 40%, #c8a882 100%), radial-gradient(ellipse at 50% 30%, #f8f0e0 0%, transparent 70%);
}
.scn-letter-invitation .wall-warm {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(90deg, #e8d9c4, #f0e2d0, #e0ccb5);
  border-radius: 0 0 20% 20%;
}
.scn-letter-invitation .desk-wood {
  position: absolute; bottom: 10%; left: 15%; width: 70%; height: 35%;
  background: linear-gradient(180deg, #a67c52 0%, #7a5838 50%, #5c3f27 100%);
  border-radius: 8px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
}
.scn-letter-invitation .letter-sheet {
  position: absolute; bottom: 30%; left: 35%; width: 30%; height: 25%;
  background: linear-gradient(135deg, #faf5eb, #efe3d1);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.15);
  transform: rotate(2deg);
  animation: let-letter 8s ease-in-out infinite;
}
.scn-letter-invitation .seal-wax {
  position: absolute; bottom: 38%; left: 48%; width: 6%; height: 5%;
  background: radial-gradient(circle, #b8533a 0%, #8a3f2a 70%);
  border-radius: 50%;
  box-shadow: 0 0 8px 2px rgba(200,80,50,0.3);
  animation: let-seal 4s ease-in-out infinite alternate;
}
.scn-letter-invitation .inkwell {
  position: absolute; bottom: 28%; left: 68%; width: 10%; height: 12%;
  background: linear-gradient(180deg, #2a2a3a, #101018);
  border-radius: 50% 50% 30% 30%;
  box-shadow: inset 0 -4px 6px rgba(0,0,0,0.5);
}
.scn-letter-invitation .pen-nib {
  position: absolute; bottom: 38%; left: 70%; width: 2%; height: 15%;
  background: linear-gradient(180deg, #8a7a5a, #5c4c3a);
  transform: rotate(-15deg);
  transform-origin: bottom;
  animation: let-pen 6s ease-in-out infinite;
}
.scn-letter-invitation .candle-glow {
  position: absolute; bottom: 32%; left: 20%; width: 8%; height: 10%;
  background: radial-gradient(circle, #ffd98c 0%, #e8a030 50%, transparent 80%);
  border-radius: 50%;
  animation: let-candle 3s ease-in-out infinite alternate;
}
.scn-letter-invitation .shadow-hand {
  position: absolute; bottom: 22%; left: 40%; width: 12%; height: 18%;
  background: linear-gradient(180deg, rgba(60,45,35,0.7), rgba(30,20,15,0.9));
  border-radius: 30% 30% 40% 40% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: let-hand 5s ease-in-out infinite;
}
@keyframes let-letter { 0%, 100% { transform: rotate(2deg) translateY(0); } 50% { transform: rotate(0deg) translateY(-3px); } }
@keyframes let-seal { 0% { transform: scale(0.9); opacity: 0.8; } 100% { transform: scale(1.1); opacity: 1; } }
@keyframes let-pen { 0%, 100% { transform: rotate(-15deg) translateY(0); } 50% { transform: rotate(-10deg) translateY(-5px); } }
@keyframes let-candle { 0% { transform: scale(0.95); opacity: 0.8; } 100% { transform: scale(1.1); opacity: 1; } }
@keyframes let-hand { 0%, 100% { transform: translateX(0) translateY(0) rotate(-5deg); } 50% { transform: translateX(5px) translateY(-3px) rotate(3deg); } }

/* Scene: decision-moment (warm, dim-interior) */
.scn-decision-moment {
  background: linear-gradient(180deg, #2b251e 0%, #1f1a14 50%, #14100c 100%), radial-gradient(ellipse at 50% 50%, #3a2f24 0%, transparent 80%);
}
.scn-decision-moment .room-dim {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #3a3025 0%, #2a221a 100%);
  animation: dec-room 12s ease-in-out infinite alternate;
}
.scn-decision-moment .table-edge {
  position: absolute; bottom: 20%; left: 10%; width: 80%; height: 30%;
  background: linear-gradient(180deg, #4a3a28, #2e2216);
  border-radius: 10px 10px 20px 20px;
  box-shadow: 0 -4px 10px rgba(0,0,0,0.6);
}
.scn-decision-moment .letter-open {
  position: absolute; bottom: 35%; left: 30%; width: 40%; height: 20%;
  background: linear-gradient(135deg, #e8d4b0, #c8b090);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  transform: rotate(-3deg);
  animation: dec-letter 7s ease-in-out infinite;
}
.scn-decision-moment .candle-flame {
  position: absolute; bottom: 40%; left: 20%; width: 6%; height: 12%;
  background: radial-gradient(circle at 50% 30%, #ffb04a 0%, #ff8830 40%, #c84010 70%, transparent 80%);
  border-radius: 50%;
  filter: blur(2px);
  box-shadow: 0 0 20px 8px rgba(200,80,30,0.5);
  animation: dec-flame 3s ease-in-out infinite alternate;
}
.scn-decision-moment .hand-reaching {
  position: absolute; bottom: 30%; left: 50%; width: 14%; height: 22%;
  background: linear-gradient(180deg, #3a2e22, #1a120c);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dec-hand 4s ease-in-out infinite;
}
.scn-decision-moment .shadow-cross {
  position: absolute; bottom: 10%; left: 35%; width: 30%; height: 4%;
  background: linear-gradient(90deg, transparent, rgba(0,0,0,0.4), transparent);
  filter: blur(4px);
  animation: dec-shadow 8s ease-in-out infinite alternate;
}
.scn-decision-moment .dust-mote {
  position: absolute; top: 30%; left: 60%; width: 2%; height: 2%;
  background: radial-gradient(circle, rgba(255,220,160,0.6), rgba(255,200,100,0.1));
  border-radius: 50%;
  filter: blur(2px);
  animation: dec-dust 12s linear infinite;
}
@keyframes dec-room { 0% { opacity: 0.8; } 50% { opacity: 0.95; } 100% { opacity: 0.8; } }
@keyframes dec-letter { 0%, 100% { transform: rotate(-3deg) translateY(0); } 50% { transform: rotate(0deg) translateY(-4px); } }
@keyframes dec-flame { 0% { transform: scale(0.9) translateY(0); } 50% { transform: scale(1.1) translateY(-3px); } 100% { transform: scale(0.95) translateY(-1px); } }
@keyframes dec-hand { 0% { transform: translateX(0) translateY(0) rotate(-10deg); } 50% { transform: translateX(-10px) translateY(-5px) rotate(5deg); } 100% { transform: translateX(0) translateY(0) rotate(-10deg); } }
@keyframes dec-shadow { 0% { transform: scaleX(0.8); opacity: 0.3; } 100% { transform: scaleX(1.2); opacity: 0.6; } }
@keyframes dec-dust { 0% { transform: translate(0,0) scale(1); opacity: 0; } 20% { opacity: 0.8; } 80% { opacity: 0.6; } 100% { transform: translate(20px,-40px) scale(0.5); opacity: 0; } }

/* Scene: musing-home (warm, dim-interior) */
.scn-musing-home {
  background: linear-gradient(180deg, #3a322a 0%, #2a231c 50%, #1a140e 100%), radial-gradient(ellipse at 50% 60%, #5c4a38 0%, transparent 70%);
}
.scn-musing-home .study-wall {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(90deg, #4a3e32, #5c4e3e, #3e3228);
  border-radius: 0 0 30% 30%;
}
.scn-musing-home .globe-sphere {
  position: absolute; bottom: 25%; left: 20%; width: 18%; height: 30%;
  background: linear-gradient(135deg, #6a8a6a 0%, #3a5a3a 50%, #1a3a1a 100%);
  border-radius: 50%;
  box-shadow: inset -8px -8px 20px rgba(0,0,0,0.5), 0 4px 10px rgba(0,0,0,0.3);
  animation: mus-globe 15s ease-in-out infinite alternate;
}
.scn-musing-home .map-scroll {
  position: absolute; bottom: 20%; left: 42%; width: 35%; height: 18%;
  background: linear-gradient(180deg, #d4c4a0, #b8a682);
  border-radius: 4px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.2);
  transform: rotate(-2deg);
  animation: mus-map 10s ease-in-out infinite;
}
.scn-musing-home .ivory-tusk {
  position: absolute; bottom: 30%; left: 60%; width: 4%; height: 25%;
  background: linear-gradient(180deg, #f0e8d0, #d4c8a8);
  border-radius: 0 0 40% 40% / 0 0 80% 80%;
  transform: rotate(25deg);
  transform-origin: bottom center;
  box-shadow: 0 0 8px rgba(200,180,140,0.3);
  animation: mus-tusk 8s ease-in-out infinite alternate;
}
.scn-musing-home .figure-silhouette {
  position: absolute; bottom: 12%; left: 35%; width: 8%; height: 25%;
  background: linear-gradient(180deg, #1a1612, #0a0806);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  animation: mus-figure 6s ease-in-out infinite;
}
.scn-musing-home .lamp-glow {
  position: absolute; bottom: 20%; left: 15%; width: 12%; height: 14%;
  background: radial-gradient(circle, #ffd48a 0%, #e8a040 50%, transparent 70%);
  border-radius: 50%;
  filter: blur(6px);
  animation: mus-lamp 4s ease-in-out infinite alternate;
}
.scn-musing-home .curtain-drape {
  position: absolute; top: 0; right: 0; width: 15%; height: 100%;
  background: linear-gradient(180deg, #6a4e3a, #3a2a1a);
  border-radius: 0 0 0 40%;
  box-shadow: -4px 0 10px rgba(0,0,0,0.4);
  animation: mus-curtain 12s ease-in-out infinite alternate;
}
@keyframes mus-globe { 0% { transform: rotate(0deg); } 100% { transform: rotate(20deg); } }
@keyframes mus-map { 0%, 100% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(1deg) translateY(-4px); } }
@keyframes mus-tusk { 0% { transform: rotate(25deg) scaleY(1); } 100% { transform: rotate(30deg) scaleY(1.05); } }
@keyframes mus-figure { 0%, 100% { transform: translateX(0) translateY(0) rotate(-3deg); } 50% { transform: translateX(5px) translateY(-2px) rotate(2deg); } }
@keyframes mus-lamp { 0% { transform: scale(0.9); opacity: 0.7; } 100% { transform: scale(1.1); opacity: 1; } }
@keyframes mus-curtain { 0% { transform: translateX(0); } 100% { transform: translateX(-10px); } }

/* new-danger */
.scn-new-danger {
  background: linear-gradient(180deg, #2a3b4b 0%, #1c2a33 40%, #0f1a22 100%), radial-gradient(ellipse at 50% 40%, #3a4b5b 0%, transparent 70%);
}
.scn-new-danger .sky-overcast {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #3a4b5b 0%, #2a3b4b 50%, #1c2a33 100%);
  animation: nd-sky 12s ease-in-out infinite alternate;
}
.scn-new-danger .sea-deep {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #1c2a33 0%, #0f1a22 50%, #080e12 100%);
  box-shadow: inset 0 20px 30px rgba(0,0,0,0.6);
  animation: nd-sea 8s ease-in-out infinite alternate;
}
.scn-new-danger .reef-shadow {
  position: absolute; bottom: 20%; left: 20%; right: 20%; height: 15%;
  background: radial-gradient(ellipse at 50% 100%, #0a1218 0%, transparent 80%);
  border-radius: 40% 40% 0 0;
  animation: nd-reef-grow 20s ease-in-out infinite alternate;
}
.scn-new-danger .reef-spike {
  position: absolute; bottom: 28%; left: 35%; width: 8px; height: 40px;
  background: linear-gradient(180deg, #1c2a33 0%, #0f1a22 100%);
  border-radius: 50% 50% 10% 10%;
  transform: rotate(-10deg);
  box-shadow: 0 0 6px 2px rgba(0,0,0,0.5);
  animation: nd-spike 7s ease-in-out infinite alternate;
}
.scn-new-danger .ship-dark {
  position: absolute; bottom: 40%; left: 10%; width: 120px; height: 60px;
  background: linear-gradient(180deg, #1a2026 0%, #0a0f14 100%);
  border-radius: 30% 30% 10% 10% / 80% 80% 20% 20%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.8);
  animation: nd-ship-rock 6s ease-in-out infinite;
}
.scn-new-danger .wave-white {
  position: absolute; bottom: 38%; left: 15%; width: 100px; height: 8px;
  background: linear-gradient(90deg, transparent 0%, rgba(180,200,220,0.3) 30%, transparent 100%);
  border-radius: 50%;
  filter: blur(2px);
  animation: nd-wave 4s ease-in-out infinite;
}
.scn-new-danger .warning-light {
  position: absolute; top: 30%; right: 25%; width: 6px; height: 6px;
  background: radial-gradient(circle, #c8a060 0%, #a08040 60%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px rgba(200,160,96,0.5), 0 0 40px 12px rgba(200,160,96,0.3);
  animation: nd-glow 2s ease-in-out infinite alternate;
}
.scn-new-danger .fog-bank {
  position: absolute; top: 15%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, rgba(200,210,220,0.15) 0%, transparent 100%);
  filter: blur(10px);
  animation: nd-fog 30s linear infinite;
}
@keyframes nd-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes nd-sea { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(0); } }
@keyframes nd-reef-grow { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.1); } 100% { transform: scaleY(1); } }
@keyframes nd-spike { 0% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-8deg) translateY(-2px); } 100% { transform: rotate(-10deg) translateY(0); } }
@keyframes nd-ship-rock { 0%,100% { transform: translate(0,0) rotate(-1deg); } 25% { transform: translate(2px,-1px) rotate(0deg); } 75% { transform: translate(-2px,-1px) rotate(-2deg); } }
@keyframes nd-wave { 0% { opacity:0.2; transform: translateX(0); } 50% { opacity:0.6; transform: translateX(10px); } 100% { opacity:0.2; transform: translateX(0); } }
@keyframes nd-glow { 0% { box-shadow: 0 0 16px 4px rgba(200,160,96,0.4); } 100% { box-shadow: 0 0 30px 10px rgba(200,160,96,0.8); } }
@keyframes nd-fog { 0% { transform: translateX(-20px); } 100% { transform: translateX(120vw); } }

/* cunard-incident */
.scn-cunard-incident {
  background: linear-gradient(180deg, #2f3a45 0%, #1e2630 50%, #0e141c 100%), radial-gradient(ellipse at 40% 60%, #3f4a55 0%, transparent 70%);
}
.scn-cunard-incident .storm-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #3f4a55 0%, #2f3a45 40%, #1e2630 100%);
  animation: ci-storm 10s ease-in-out infinite alternate;
}
.scn-cunard-incident .angry-sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(180deg, #1e2630 0%, #0e141c 60%, #05080c 100%);
  box-shadow: inset 0 15px 25px rgba(0,0,0,0.7);
  animation: ci-sea 9s ease-in-out infinite alternate;
}
.scn-cunard-incident .cunard-hull {
  position: absolute; bottom: 35%; left: 30%; width: 140px; height: 70px;
  background: linear-gradient(180deg, #2a2f36 0%, #1a1f26 60%, #0c0f14 100%);
  border-radius: 30% 30% 10% 10% / 70% 70% 20% 20%;
  box-shadow: 0 6px 18px rgba(0,0,0,0.8);
  animation: ci-hull 7s ease-in-out infinite;
}
.scn-cunard-incident .smoke-plume {
  position: absolute; top: 8%; left: 45%; width: 80px; height: 40px;
  background: radial-gradient(ellipse, rgba(80,90,100,0.4) 0%, transparent 80%);
  filter: blur(6px);
  animation: ci-smoke 5s ease-in-out infinite alternate;
}
.scn-cunard-incident .tension-wave {
  position: absolute; bottom: 30%; left: 10%; right: 10%; height: 12px;
  background: linear-gradient(90deg, transparent 0%, rgba(160,180,200,0.3) 30%, transparent 70%);
  border-radius: 50%;
  filter: blur(3px);
  animation: ci-twave 3s ease-in-out infinite;
}
.scn-cunard-incident .distant-jetsam {
  position: absolute; bottom: 45%; right: 15%; width: 20px; height: 6px;
  background: #1a1f26;
  border-radius: 40%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation: ci-jetsam 15s linear infinite;
}
.scn-cunard-incident .glint-of-metal {
  position: absolute; top: 30%; left: 55%; width: 8px; height: 8px;
  background: radial-gradient(circle, #b0b8c0 0%, #8090a0 60%);
  border-radius: 50%;
  box-shadow: 0 0 12px 4px rgba(176,184,192,0.4);
  animation: ci-glint 2s ease-in-out infinite alternate;
}
@keyframes ci-storm { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes ci-sea { 0% { transform: translateY(0); } 50% { transform: translateY(-5px); } 100% { transform: translateY(0); } }
@keyframes ci-hull { 0%,100% { transform: translate(0,0) rotate(-1deg); } 25% { transform: translate(3px,-1px) rotate(0deg); } 75% { transform: translate(-3px,-1px) rotate(-2deg); } }
@keyframes ci-smoke { 0% { transform: translateY(0) scale(1); opacity:0.3; } 100% { transform: translateY(-10px) scale(1.2); opacity:0.5; } }
@keyframes ci-twave { 0% { transform: translateX(0); opacity:0.3; } 50% { transform: translateX(15px); opacity:0.6; } 100% { transform: translateX(0); opacity:0.3; } }
@keyframes ci-jetsam { 0% { transform: translateX(0); } 100% { transform: translateX(-200px); } }
@keyframes ci-glint { 0% { box-shadow: 0 0 10px 2px rgba(176,184,192,0.2); } 100% { box-shadow: 0 0 20px 6px rgba(176,184,192,0.6); } }

/* scotia-collision */
.scn-scotia-collision {
  background: linear-gradient(180deg, #1c242c 0%, #10161c 60%, #080c10 100%), radial-gradient(ellipse at 60% 40%, #2c3440 0%, transparent 60%);
}
.scn-scotia-collision .hull-interior {
  position: absolute; inset: 0 20% 10% 10%;
  background: linear-gradient(180deg, #2a3038 0%, #1a2026 50%, #0e141c 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.8);
}
.scn-scotia-collision .breach-crack {
  position: absolute; bottom: 25%; left: 30%; width: 80px; height: 30px;
  background: radial-gradient(ellipse at 50% 100%, #0a0e12 0%, transparent 80%);
  border-radius: 0 0 30% 30%;
  box-shadow: inset 0 6px 12px rgba(0,0,0,0.6);
  animation: sc-crack 6s ease-in-out infinite alternate;
}
.scn-scotia-collision .gushing-water {
  position: absolute; bottom: 22%; left: 35%; width: 20px; height: 40px;
  background: linear-gradient(180deg, rgba(80,100,120,0.6) 0%, rgba(40,60,80,0.3) 100%);
  border-radius: 0 0 50% 50%;
  filter: blur(3px);
  animation: sc-geyser 2s ease-in-out infinite;
}
.scn-scotia-collision .paddle-wheel {
  position: absolute; bottom: 20%; right: 15%; width: 50px; height: 50px;
  background: radial-gradient(circle, #1a2026 30%, #0e141c 60%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 10px 2px rgba(0,0,0,0.5);
  animation: sc-wheel 5s linear infinite;
}
.scn-scotia-collision .alarm-light {
  position: absolute; top: 30%; left: 20%; width: 8px; height: 8px;
  background: radial-gradient(circle, #b05840 0%, #803020 60%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px rgba(176,88,64,0.6);
  animation: sc-alarm 1s ease-in-out infinite alternate;
}
.scn-scotia-collision .crew-silhouette {
  position: absolute; bottom: 15%; left: 40%; width: 14px; height: 30px;
  background: linear-gradient(180deg, #0e141c 0%, #080c10 100%);
  border-radius: 40% 40% 20% 20%;
  transform: rotate(5deg);
  animation: sc-crew 3s ease-in-out infinite;
}
.scn-scotia-collision .flood-dark {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, transparent 0%, #05080c 100%);
  animation: sc-flood 8s ease-in-out infinite alternate;
}
@keyframes sc-crack { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.1); } 100% { transform: scaleX(1); } }
@keyframes sc-geyser { 0% { transform: translateY(0) scaleY(1); opacity:0.6; } 50% { transform: translateY(5px) scaleY(1.3); opacity:1; } 100% { transform: translateY(0) scaleY(1); opacity:0.6; } }
@keyframes sc-wheel { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } }
@keyframes sc-alarm { 0% { box-shadow: 0 0 12px 3px rgba(176,88,64,0.4); } 100% { box-shadow: 0 0 28px 8px rgba(176,88,64,0.8); } }
@keyframes sc-crew { 0%,100% { transform: rotate(5deg) translateY(0); } 50% { transform: rotate(3deg) translateY(-2px); } }
@keyframes sc-flood { 0% { opacity:0.3; } 100% { opacity:0.7; } }

/* captain-anderson-reassurance */
.scn-captain-anderson-reassurance {
  background: linear-gradient(180deg, #1a1c20 0%, #121418 50%, #0a0c10 100%), radial-gradient(ellipse at 50% 70%, #2a2e34 0%, transparent 60%);
}
.scn-captain-anderson-reassurance .cabin-wall {
  position: absolute; inset: 0 15% 0 15%;
  background: linear-gradient(180deg, #2a2e34 0%, #1a1c20 60%, #0e1014 100%);
  border-radius: 5%;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.6);
}
.scn-captain-anderson-reassurance .captain-figure {
  position: absolute; bottom: 15%; left: 50%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #1a1c20 0%, #0e1014 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  transform: translateX(-50%) rotate(-2deg);
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: ca-captain 4s ease-in-out infinite;
}
.scn-captain-anderson-reassurance .passenger-shapes {
  position: absolute; bottom: 10%; left: 25%; right: 25%; height: 30px;
  background: radial-gradient(ellipse at 30% 50%, #1a1c20 0%, transparent 50%),
              radial-gradient(ellipse at 70% 50%, #1a1c20 0%, transparent 50%);
  animation: ca-people 6s ease-in-out infinite alternate;
}
.scn-captain-anderson-reassurance .compartment-diagram {
  position: absolute; top: 25%; left: 35%; width: 60px; height: 40px;
  background: linear-gradient(180deg, #2a2e34 0%, #1a1c20 100%);
  border: 1px solid #3a3e44;
  border-radius: 4px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: ca-diagram 8s ease-in-out infinite alternate;
}
.scn-captain-anderson-reassurance .dim-lantern {
  position: absolute; top: 10%; left: 50%; width: 12px; height: 16px;
  background: radial-gradient(circle, #c8a060 0%, #a08040 60%, transparent 70%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 30px 10px rgba(200,160,96,0.4);
  transform: translateX(-50%);
  animation: ca-lantern 5s ease-in-out infinite alternate;
}
.scn-captain-anderson-reassurance .shadow-stripes {
  position: absolute; top: 0; bottom: 0; left: 20%; right: 20%;
  background: repeating-linear-gradient(90deg, transparent 0%, rgba(0,0,0,0.1) 5%, transparent 10%);
  pointer-events: none;
  animation: ca-stripes 4s ease-in-out infinite alternate;
}
.scn-captain-anderson-reassurance .reassuring-halo {
  position: absolute; top: 35%; left: 40%; right: 40%; height: 20px;
  background: radial-gradient(ellipse, rgba(200,180,140,0.15) 0%, transparent 70%);
  filter: blur(8px);
  animation: ca-halo 3s ease-in-out infinite alternate;
}
@keyframes ca-captain { 0%,100% { transform: translateX(-50%) rotate(-2deg) translateY(0); } 50% { transform: translateX(-50%) rotate(0deg) translateY(-3px); } }
@keyframes ca-people { 0% { opacity:0.4; } 100% { opacity:0.8; } }
@keyframes ca-diagram { 0% { transform: scale(1); opacity:0.6; } 100% { transform: scale(1.05); opacity:0.9; } }
@keyframes ca-lantern { 0% { box-shadow: 0 0 20px 6px rgba(200,160,96,0.3); } 100% { box-shadow: 0 0 40px 14px rgba(200,160,96,0.6); } }
@keyframes ca-stripes { 0% { opacity:0.2; } 100% { opacity:0.6; } }
@keyframes ca-halo { 0% { opacity:0.2; } 100% { opacity:0.5; } }

.scn-groping-in-dark {
  background: linear-gradient(180deg, #0a0a1a 0%, #12122a 40%, #0d0d1e 100%), radial-gradient(ellipse at 50% 20%, #1c1c3e 0%, transparent 70%);
}
.scn-groping-in-dark .bg-deep {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #0f0f22 0%, #060612 100%);
  animation: gp-fade 8s ease-in-out infinite alternate;
}
.scn-groping-in-dark .wall-iron {
  position: absolute; left: 5%; top: 10%; width: 10%; height: 80%;
  background: linear-gradient(90deg, #2a2a3a 0%, #1a1a2a 50%, #2a2a3a 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 10px rgba(100,100,120,0.2);
  animation: gp-pulse 3s ease-in-out infinite;
}
.scn-groping-in-dark .table {
  position: absolute; bottom: 28%; left: 30%; width: 40%; height: 6%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 6px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
}
.scn-groping-in-dark .stool-a,
.scn-groping-in-dark .stool-b {
  position: absolute; bottom: 18%; width: 8%; height: 12%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 4px 4px 2px 2px;
}
.scn-groping-in-dark .stool-a { left: 34%; animation: gp-rock 4s ease-in-out infinite; }
.scn-groping-in-dark .stool-b { left: 58%; animation: gp-rock 4s ease-in-out infinite reverse; }
.scn-groping-in-dark .figure-groping {
  position: absolute; bottom: 20%; left: 20%; width: 12%; 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: gp-grope 5s ease-in-out infinite;
}
.scn-groping-in-dark .hand {
  position: absolute; bottom: 38%; left: 16%; width: 4%; height: 6%;
  background: radial-gradient(circle, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50%;
  animation: gp-hand 5s ease-in-out infinite alternate;
}
@keyframes gp-fade {
  0% { opacity: 0.9 }
  50% { opacity: 0.7 }
  100% { opacity: 0.85 }
}
@keyframes gp-pulse {
  0% { box-shadow: inset 0 0 8px rgba(100,100,120,0.1); transform: scaleX(1); }
  50% { box-shadow: inset 0 0 20px rgba(100,100,120,0.4); transform: scaleX(1.02); }
  100% { box-shadow: inset 0 0 8px rgba(100,100,120,0.1); transform: scaleX(1); }
}
@keyframes gp-rock {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(2px) rotate(1deg); }
  75% { transform: translateX(-2px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes gp-grope {
  0% { transform: translateX(0) translateY(0) rotate(-3deg); }
  20% { transform: translateX(10px) translateY(-2px) rotate(0deg); }
  40% { transform: translateX(20px) translateY(-1px) rotate(2deg); }
  60% { transform: translateX(10px) translateY(-2px) rotate(-1deg); }
  80% { transform: translateX(0) translateY(0) rotate(2deg); }
  100% { transform: translateX(0) translateY(0) rotate(-3deg); }
}
@keyframes gp-hand {
  0% { transform: translateX(0) translateY(0) scale(1); }
  50% { transform: translateX(8px) translateY(-10px) scale(1.1); }
  100% { transform: translateX(0) translateY(0) scale(1); }
}

.scn-lit-cell {
  background: linear-gradient(180deg, #f2e8d5 0%, #d4c4a8 40%, #b8a88a 100%), radial-gradient(ellipse at 50% 30%, #ffe6c0 0%, transparent 70%);
}
.scn-lit-cell .bg-warm {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #f0e0c8 0%, #d0c0a0 100%);
  animation: lt-warm 12s ease-in-out infinite alternate;
}
.scn-lit-cell .wall-light {
  position: absolute; left: 2%; top: 5%; width: 96%; height: 90%;
  background: linear-gradient(180deg, #e8d8b8 0%, #d0c0a0 100%);
  border-radius: 8px;
  box-shadow: inset 0 0 30px rgba(255,230,180,0.3);
}
.scn-lit-cell .lantern {
  position: absolute; top: 10%; left: 50%; width: 6%; height: 10%;
  transform: translateX(-50%);
  background: radial-gradient(circle at 50% 40%, #fff6d0 0%, #e0c060 60%, #a08030 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 0 0 40px 15px rgba(255,220,150,0.5), 0 0 80px 30px rgba(255,200,100,0.2);
  animation: lt-glow 4s ease-in-out infinite alternate;
}
.scn-lit-cell .table {
  position: absolute; bottom: 25%; left: 20%; width: 60%; height: 5%;
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%);
  border-radius: 6px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.3);
}
.scn-lit-cell .stool-1,
.scn-lit-cell .stool-2,
.scn-lit-cell .stool-3 {
  position: absolute; bottom: 15%; width: 8%; height: 12%;
  background: linear-gradient(180deg, #7a6a4a 0%, #5a4a2a 100%);
  border-radius: 4px 4px 2px 2px;
}
.scn-lit-cell .stool-1 { left: 25%; animation: lt-sway 6s ease-in-out infinite; }
.scn-lit-cell .stool-2 { left: 45%; animation: lt-sway 6s ease-in-out infinite 2s; }
.scn-lit-cell .stool-3 { left: 65%; animation: lt-sway 6s ease-in-out infinite 4s; }
.scn-lit-cell .figure-seated {
  position: absolute; bottom: 20%; left: 50%; width: 14%; height: 24%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: lt-breathe 8s ease-in-out infinite;
}
@keyframes lt-warm {
  0% { opacity: 0.95; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes lt-glow {
  0% { box-shadow: 0 0 30px 10px rgba(255,220,150,0.4), 0 0 60px 20px rgba(255,200,100,0.15); }
  50% { box-shadow: 0 0 50px 20px rgba(255,230,180,0.7), 0 0 100px 40px rgba(255,210,120,0.3); }
  100% { box-shadow: 0 0 34px 12px rgba(255,220,150,0.5), 0 0 70px 25px rgba(255,200,100,0.2); }
}
@keyframes lt-sway {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(1px) rotate(0.5deg); }
  75% { transform: translateX(-1px) rotate(-0.5deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes lt-breathe {
  0% { transform: translateX(-50%) scaleY(1); }
  50% { transform: translateX(-50%) scaleY(1.02); }
  100% { transform: translateX(-50%) scaleY(1); }
}

.scn-captain-nemo-first {
  background: linear-gradient(180deg, #c8a868 0%, #a88848 40%, #8a7040 100%), radial-gradient(ellipse at 40% 30%, #e0c080 0%, transparent 70%);
}
.scn-captain-nemo-first .bg-amber {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #d4b878 0%, #b89858 100%);
  animation: nm-warm 10s ease-in-out infinite alternate;
}
.scn-captain-nemo-first .panel-wood {
  position: absolute; left: 5%; top: 5%; width: 90%; height: 90%;
  background: linear-gradient(180deg, #8a7a4a 0%, #6a5a2a 100%);
  border-radius: 10px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.3);
}
.scn-captain-nemo-first .figure-nemo {
  position: absolute; bottom: 20%; left: 35%; width: 18%; height: 40%;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: nm-nemo 8s ease-in-out infinite;
}
.scn-captain-nemo-first .figure-escort {
  position: absolute; bottom: 20%; left: 55%; width: 15%; height: 36%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: nm-escort 8s ease-in-out infinite 2s;
}
.scn-captain-nemo-first .light-spot {
  position: absolute; top: 10%; left: 45%; width: 20%; height: 30%;
  background: radial-gradient(circle, #fff6d0 0%, #e0c080 40%, transparent 70%);
  opacity: 0.6;
  animation: nm-spot 5s ease-in-out infinite alternate;
}
.scn-captain-nemo-first .fur-cap.nar {
  position: absolute; bottom: 52%; left: 52%; width: 8%; height: 8%;
  background: radial-gradient(circle, #5a4a2a 0%, #2a1a0a 100%);
  border-radius: 50%;
  animation: nm-cap-n 6s ease-in-out infinite;
}
.scn-captain-nemo-first .fur-cap.nemo {
  position: absolute; bottom: 54%; left: 38%; width: 10%; height: 9%;
  background: radial-gradient(circle, #4a3a1a 0%, #1a0a00 100%);
  border-radius: 50%;
  animation: nm-cap-e 6s ease-in-out infinite 3s;
}
@keyframes nm-warm {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.95; }
}
@keyframes nm-nemo {
  0% { transform: translateY(0) rotate(-2deg); }
  25% { transform: translateY(-3px) rotate(0deg); }
  50% { transform: translateY(0) rotate(1deg); }
  75% { transform: translateY(-2px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(-2deg); }
}
@keyframes nm-escort {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-2px) rotate(-1deg); }
  50% { transform: translateY(0) rotate(0deg); }
  75% { transform: translateY(-1px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes nm-spot {
  0% { opacity: 0.5; transform: scale(0.95); }
  50% { opacity: 0.7; transform: scale(1.05); }
  100% { opacity: 0.5; transform: scale(0.95); }
}
@keyframes nm-cap-n {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(2px) rotate(3deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes nm-cap-e {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(-2px) rotate(-3deg); }
  100% { transform: translateX(0) rotate(0deg); }
}

.scn-language-attempts {
  background: linear-gradient(180deg, #e8d8b0 0%, #c8b888 40%, #a89868 100%), radial-gradient(ellipse at 60% 40%, #f0e0c0 0%, transparent 60%);
}
.scn-language-attempts .bg-bright {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #eee0c0 0%, #d0c0a0 100%);
  animation: lg-flicker 6s ease-in-out infinite alternate;
}
.scn-language-attempts .wall-cell {
  position: absolute; left: 2%; top: 4%; width: 96%; height: 92%;
  background: linear-gradient(180deg, #d8c8a8 0%, #b8a888 100%);
  border-radius: 6px;
  box-shadow: inset 0 0 15px rgba(0,0,0,0.15);
}
.scn-language-attempts .table {
  position: absolute; bottom: 25%; left: 20%; width: 60%; height: 5%;
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
}
.scn-language-attempts .figure-ned {
  position: absolute; bottom: 18%; left: 30%; width: 16%; height: 32%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lg-ned 5s ease-in-out infinite;
}
.scn-language-attempts .figure-other {
  position: absolute; bottom: 20%; left: 52%; width: 14%; height: 28%;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lg-other 5s ease-in-out infinite 2.5s;
}
.scn-language-attempts .gesture-arm {
  position: absolute; bottom: 40%; left: 40%; width: 3%; height: 12%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 4px;
  transform-origin: bottom center;
  animation: lg-arm 3s ease-in-out infinite;
}
.scn-language-attempts .shadow-sharp {
  position: absolute; bottom: 0; left: 25%; width: 50%; height: 20%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.25) 100%);
  animation: lg-shadow 4s ease-in-out infinite alternate;
}
@keyframes lg-flicker {
  0% { opacity: 0.95; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes lg-ned {
  0% { transform: translateX(0) rotate(-3deg); }
  20% { transform: translateX(8px) rotate(2deg); }
  40% { transform: translateX(-4px) rotate(-2deg); }
  60% { transform: translateX(12px) rotate(4deg); }
  80% { transform: translateX(-8px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(-3deg); }
}
@keyframes lg-other {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(2px) rotate(1deg); }
  75% { transform: translateX(-2px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes lg-arm {
  0% { transform: rotate(-30deg) scaleY(1); }
  25% { transform: rotate(20deg) scaleY(1.1); }
  50% { transform: rotate(-10deg) scaleY(0.95); }
  75% { transform: rotate(40deg) scaleY(1.05); }
  100% { transform: rotate(-30deg) scaleY(1); }
}
@keyframes lg-shadow {
  0% { opacity: 0.3; transform: scaleX(1); }
  50% { opacity: 0.5; transform: scaleX(1.1); }
  100% { opacity: 0.3; transform: scaleX(1); }
}

/* open-eyes - tense sunlit */
.scn-open-eyes {
  background: linear-gradient(180deg, #6ab0e6 0%, #4a90c0 30%, #3a70a0 60%, #2a5080 100%),
              radial-gradient(circle at 70% 20%, #ffd080 0%, transparent 60%);
}
.scn-open-eyes .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #8ac8f0 0%, #5a9ec8 100%); }
.scn-open-eyes .sun { position:absolute; top:10%; left:70%; width:60px; height:60px; background: radial-gradient(circle, #ffe080 0%, #ffcc60 40%, #e8b040 100%); border-radius:50%; box-shadow: 0 0 40px 20px rgba(255,200,80,.5); animation: s1-pulse 4s ease-in-out infinite; }
.scn-open-eyes .ocean { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #2a6a9a 0%, #1a4a7a 100%); box-shadow: inset 0 10px 20px rgba(0,0,0,.3); animation: s1-waves 8s ease-in-out infinite alternate; }
.scn-open-eyes .ship { position:absolute; bottom:30%; left:20%; width:120px; height:40px; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius: 0 0 20% 20%; box-shadow: 0 4px 8px rgba(0,0,0,.4); }
.scn-open-eyes .mast { position:absolute; bottom:30%; left:20px; width:4px; height:80px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:2px; transform-origin: bottom; animation: s1-sway 6s ease-in-out infinite; }
.scn-open-eyes .figure { position:absolute; bottom:30%; left:22px; width:16px; height:30px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: translateY(-80px); animation: s1-sway 6s ease-in-out infinite; }
.scn-open-eyes .binoculars { position:absolute; bottom:30%; left:22px; width:10px; height:6px; background: #1a1a2a; border-radius: 40%; transform: translate(-8px, -80px) rotate(10deg); box-shadow: 0 0 0 2px #4a4a5a; animation: s1-sway 6s ease-in-out infinite; }
.scn-open-eyes .gleam { position:absolute; top:10%; left:70%; width:10px; height:10px; background: radial-gradient(circle, #fff 0%, transparent 80%); border-radius:50%; animation: s1-spark 2s ease-in-out infinite; }
@keyframes s1-pulse { 0% { transform: scale(1); opacity:.9 } 50% { transform: scale(1.1); opacity:1 } 100% { transform: scale(1); opacity:.9 } }
@keyframes s1-waves { 0% { transform: translateY(0) } 50% { transform: translateY(-5px) } 100% { transform: translateY(0) } }
@keyframes s1-sway { 0% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-2deg) } }
@keyframes s1-spark { 0% { opacity:0; transform: scale(.5) } 50% { opacity:1; transform: scale(1.3) } 100% { opacity:0; transform: scale(.5) } }

/* frustration-grows - dark overcast */
.scn-frustration-grows {
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 40%, #1a1a2a 100%),
              radial-gradient(ellipse at 50% 100%, #4a4a5a 0%, transparent 70%);
}
.scn-frustration-grows .cabin-wall { position:absolute; bottom:0; left:0; right:0; top:0; background: linear-gradient(90deg, #2a2a3a 0%, #3a3a4a 30%, #2a2a3a 100%); }
.scn-frustration-grows .bunk { position:absolute; bottom:20%; left:10%; width:80%; height:30%; background: linear-gradient(180deg, #4a4a5a 0%, #3a3a4a 100%); border-radius: 8px; box-shadow: inset 0 -10px 20px rgba(0,0,0,.5); }
.scn-frustration-grows .figure { position:absolute; bottom:20%; left:20%; width:40px; height:50px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform: rotate(-15deg); animation: s2-rest 12s ease-in-out infinite; }
.scn-frustration-grows .book { position:absolute; bottom:25%; left:25%; width:30px; height:40px; background: linear-gradient(180deg, #6a5a3a 0%, #5a4a2a 100%); border-radius: 2px; transform: rotate(10deg); box-shadow: 2px 4px 6px rgba(0,0,0,.4); animation: s2-flip 6s ease-in-out infinite alternate; }
.scn-frustration-grows .window { position:absolute; top:15%; left:10%; width:50px; height:60px; background: linear-gradient(180deg, #5a6a7a 0%, #3a4a5a 100%); border-radius: 4px; box-shadow: inset 0 0 10px rgba(0,0,0,.5); }
.scn-frustration-grows .outside-cloud { position:absolute; top:10%; left:12%; width:40px; height:12px; background: rgba(200,200,220,.2); border-radius: 50%; filter: blur(8px); animation: s2-drift 30s linear infinite; }
.scn-frustration-grows .lamp { position:absolute; top:30%; right:20%; width:12px; height:20px; background: radial-gradient(circle at 50% 30%, #d0a050 0%, #a08040 100%); border-radius: 50% 50% 20% 20%; box-shadow: 0 0 20px 6px rgba(200,160,80,.5); animation: s2-flicker 3s ease-in-out infinite; }
.scn-frustration-grows .shadow-stripe { position:absolute; inset:0; background: repeating-linear-gradient(0deg, transparent, transparent 30%, rgba(0,0,0,.1) 30%, rgba(0,0,0,.1) 35%); pointer-events:none; }
@keyframes s2-rest { 0% { transform: rotate(-15deg) } 25% { transform: rotate(-10deg) } 50% { transform: rotate(-15deg) } 75% { transform: rotate(-18deg) } 100% { transform: rotate(-15deg) } }
@keyframes s2-flip { 0% { transform: rotate(10deg) scaleY(1) } 50% { transform: rotate(5deg) scaleY(.95) } 100% { transform: rotate(10deg) scaleY(1) } }
@keyframes s2-drift { 0% { transform: translateX(0) } 100% { transform: translateX(-60px) } }
@keyframes s2-flicker { 0% { opacity:.7; transform: scale(1) } 20% { opacity:1; transform: scale(1.05) } 40% { opacity:.8; transform: scale(1) } 60% { opacity:.9; transform: scale(1.02) } 80% { opacity:.7; transform: scale(.98) } 100% { opacity:.7; transform: scale(1) } }

/* limited-chances - tense overcast */
.scn-limited-chances {
  background: linear-gradient(180deg, #5a5a6a 0%, #4a4a5a 30%, #3a3a4a 60%, #2a2a3a 100%),
              radial-gradient(ellipse at 30% 50%, #6a6a7a 0%, transparent 80%);
}
.scn-limited-chances .fog-sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #7a7a8a 0%, #5a5a6a 100%); }
.scn-limited-chances .fog-mid { position:absolute; bottom:30%; left:0; right:0; height:30%; background: linear-gradient(180deg, rgba(150,150,170,.3) 0%, transparent 100%); filter: blur(10px); }
.scn-limited-chances .deck { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #4a4a5a 0%, #3a3a4a 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.4); }
.scn-limited-chances .rail { position:absolute; bottom:40%; left:5%; right:5%; height:6px; background: linear-gradient(90deg, #5a5a6a 0%, #4a4a5a 100%); border-radius: 3px; }
.scn-limited-chances .figure { position:absolute; bottom:35%; 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: bottom; animation: s3-look 8s ease-in-out infinite; }
.scn-limited-chances .lantern { position:absolute; bottom:38%; left:28%; width:8px; height:12px; background: radial-gradient(circle, #c8a060 0%, #a08040 100%); border-radius: 40%; box-shadow: 0 0 24px 8px rgba(200,160,96,.5); animation: s3-glow 4s ease-in-out infinite alternate; }
.scn-limited-chances .rope { position:absolute; bottom:42%; left:30%; width:2px; height:30px; background: #5a4a3a; border-radius: 1px; transform: rotate(-5deg); animation: s3-sway 6s ease-in-out infinite; }
.scn-limited-chances .spray { position:absolute; bottom:35%; right:20%; width:20px; height:10px; background: rgba(200,200,220,.3); border-radius: 50%; filter: blur(4px); animation: s3-mist 10s linear infinite; }
@keyframes s3-look { 0% { transform: rotate(-2deg) translateY(0) } 25% { transform: rotate(2deg) translateY(-2px) } 50% { transform: rotate(-1deg) translateY(0) } 75% { transform: rotate(3deg) translateY(-3px) } 100% { transform: rotate(-2deg) translateY(0) } }
@keyframes s3-glow { 0% { box-shadow: 0 0 16px 4px rgba(200,160,96,.3); opacity:.7 } 50% { box-shadow: 0 0 30px 12px rgba(200,160,96,.6); opacity:1 } 100% { box-shadow: 0 0 20px 6px rgba(200,160,96,.4); opacity:.8 } }
@keyframes s3-sway { 0% { transform: rotate(-5deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(-5deg) } }
@keyframes s3-mist { 0% { transform: translateX(0) scale(1) } 50% { transform: translateX(-10px) scale(1.2) } 100% { transform: translateX(-20px) scale(1) } }

/* life-threatening-tension - dark overcast */
.scn-life-threatening-tension {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 50%, #1a1a2e 100%),
              radial-gradient(ellipse at 50% 100%, #3a3a4e 0%, transparent 80%);
}
.scn-life-threatening-tension .storm-sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #3a3a4e 0%, #1a1a2e 100%); animation: s4-sky 15s ease-in-out infinite alternate; }
.scn-life-threatening-tension .wave-horizon { position:absolute; bottom:40%; left:0; right:0; height:20%; background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%); border-radius: 40% 60% 0 0; animation: s4-surge 10s ease-in-out infinite alternate; }
.scn-life-threatening-tension .ship-hull { position:absolute; bottom:30%; left:10%; right:10%; height:30%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 0 0 30% 30%; box-shadow: 0 -10px 20px rgba(0,0,0,.5); animation: s4-pitch 6s ease-in-out infinite; }
.scn-life-threatening-tension .rigging { position:absolute; bottom:30%; left:15%; width:2px; height:60px; background: #3a2a1a; transform-origin: bottom; box-shadow: 0 0 0 2px #2a1a0a; animation: s4-sway 4s ease-in-out infinite; }
.scn-life-threatening-tension .figure-left { 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; animation: s4-reach 5s ease-in-out infinite; }
.scn-life-threatening-tension .figure-right { position:absolute; bottom:32%; right: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; animation: s4-reach 5s ease-in-out infinite reverse; }
.scn-life-threatening-tension .spray { position:absolute; bottom:25%; left:30%; width:30px; height:15px; background: rgba(200,200,220,.2); border-radius: 50%; filter: blur(6px); animation: s4-foam 3s linear infinite; }
.scn-life-threatening-tension .flash { position:absolute; top:10%; left:50%; width:4px; height:4px; background: #fff; border-radius:50%; box-shadow: 0 0 60px 20px rgba(200,200,255,.3); animation: s4-lightning 12s ease-in-out infinite; }
@keyframes s4-sky { 0% { opacity:.7 } 50% { opacity:.9 } 100% { opacity:.6 } }
@keyframes s4-surge { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-4px) scaleY(1.05) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes s4-pitch { 0% { transform: rotate(-3deg) } 25% { transform: rotate(3deg) } 50% { transform: rotate(-2deg) } 75% { transform: rotate(4deg) } 100% { transform: rotate(-3deg) } }
@keyframes s4-sway { 0% { transform: rotate(-5deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(-5deg) } }
@keyframes s4-reach { 0% { transform: translateY(0) rotate(-2deg) } 25% { transform: translateY(-3px) rotate(3deg) } 50% { transform: translateY(-1px) rotate(-1deg) } 75% { transform: translateY(-2px) rotate(4deg) } 100% { transform: translateY(0) rotate(-2deg) } }
@keyframes s4-foam { 0% { transform: translateX(0) scale(1); opacity:.5 } 50% { transform: translateX(-10px) scale(1.3); opacity:.8 } 100% { transform: translateX(-20px) scale(1); opacity:.5 } }
@keyframes s4-lightning { 0% { opacity:0 } 2% { opacity:1 } 4% { opacity:0 } 6% { opacity:.8 } 8% { opacity:0 } 100% { opacity:0 } }

.scn-full-steam-chase { background: linear-gradient(180deg, #1a2b3c 0%, #3a5a6b 40%, #c48a5a 70%, #d4a86a 100%), radial-gradient(ellipse at 70% 20%, #ffcc88 0%, transparent 50%); }
.scn-full-steam-chase .sky-dawn { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #1a2b3c 0%, #3a5a6b 50%, #c48a5a 100%); animation: fsc-dawn 12s ease-in-out infinite alternate; }
.scn-full-steam-chase .sea-deep { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #2a4a5a 0%, #0a2a3a 100%); box-shadow: inset 0 10px 30px rgba(0,0,0,.5); animation: fsc-sea 6s ease-in-out infinite; }
.scn-full-steam-chase .ship-hull { position:absolute; bottom:35%; left:20%; width:55%; height:25%; background: linear-gradient(90deg, #3a2a1a 0%, #5a3a2a 50%, #2a1a0a 100%); border-radius: 0 70% 50% 0 / 0 80% 60% 0; animation: fsc-hull 4s ease-in-out infinite alternate; }
.scn-full-steam-chase .ship-deck { position:absolute; bottom:50%; left:22%; width:50%; height:6%; background: #6a5a4a; border-radius: 2px; animation: fsc-deck 3s ease-in-out infinite alternate; }
.scn-full-steam-chase .steam-puff-1 { position:absolute; bottom:55%; left:35%; width:20px; height:20px; background: radial-gradient(circle, rgba(200,180,160,.6) 0%, transparent 70%); filter: blur(4px); border-radius:50%; animation: fsc-steam 3s ease-in-out infinite; animation-delay:0s; }
.scn-full-steam-chase .steam-puff-2 { position:absolute; bottom:55%; left:45%; width:16px; height:16px; background: radial-gradient(circle, rgba(200,180,160,.5) 0%, transparent 70%); filter: blur(4px); border-radius:50%; animation: fsc-steam 3.5s ease-in-out infinite; animation-delay:1.5s; }
.scn-full-steam-chase .sun-dawn { position:absolute; top:10%; right:15%; width:60px; height:60px; background: radial-gradient(circle, #ffcc66 0%, #ff9933 40%, transparent 70%); border-radius:50%; box-shadow: 0 0 40px 10px #ff9933; animation: fsc-sun 15s ease-in-out infinite; }
.scn-full-steam-chase .figure-bow { position:absolute; bottom:48%; left:25%; width:12px; height:24px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: fsc-figure 2s ease-in-out infinite; }
@keyframes fsc-dawn { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes fsc-sea { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-4px) } }
@keyframes fsc-hull { 0% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-1deg) } }
@keyframes fsc-deck { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes fsc-steam { 0% { opacity:1; transform: scale(.8) translateY(0) } 50% { opacity:.6; transform: scale(1.4) translateY(-20px) } 100% { opacity:0; transform: scale(.9) translateY(-40px) } }
@keyframes fsc-sun { 0%,100% { transform: scale(1) } 50% { transform: scale(1.1) } }
@keyframes fsc-figure { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-3px) } }

.scn-ned-strategy { background: linear-gradient(180deg, #8ab4d4 0%, #4a7a9a 40%, #2a5a7a 80%, #1a3a5a 100%), radial-gradient(ellipse at 50% 100%, #4a7a9a 0%, transparent 70%); }
.scn-ned-strategy .sky-sunlit { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #6a9ab6 0%, #8ab4d4 50%, #a8c8e0 100%); animation: ns-sky 20s ease-in-out infinite alternate; }
.scn-ned-strategy .sea-bright { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #3a7a9a 0%, #1a4a6a 100%); box-shadow: inset 0 8px 20px rgba(0,0,0,.3); animation: ns-sea 5s ease-in-out infinite; }
.scn-ned-strategy .ship-bow { position:absolute; bottom:30%; left:10%; width:30%; height:40%; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius: 30% 40% 0 0 / 20% 80% 0 0; clip-path: polygon(0% 100%, 0% 60%, 70% 0%, 100% 0%, 100% 100%); animation: ns-bow 3s ease-in-out infinite alternate; }
.scn-ned-strategy .harpoon { position:absolute; bottom:55%; left:25%; width:40%; height:2px; background: #b0a090; transform-origin: left center; animation: ns-harpoon 4s ease-in-out infinite; }
.scn-ned-strategy .ned-figure { position:absolute; bottom:45%; left:20%; 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: ns-ned 3s ease-in-out infinite; }
.scn-ned-strategy .harpoon-line { position:absolute; bottom:52%; left:30%; width:50%; height:1px; background: #c0b0a0; animation: ns-line 4s ease-in-out infinite; }
.scn-ned-strategy .cloud-wisp { position:absolute; top:15%; right:10%; width:80px; height:16px; background: linear-gradient(90deg, rgba(255,255,255,.5), transparent); border-radius:50%; filter: blur(5px); animation: ns-cloud 40s linear infinite; }
@keyframes ns-sky { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes ns-sea { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-3px) } }
@keyframes ns-bow { 0% { transform: rotate(-1deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(0deg) } }
@keyframes ns-harpoon { 0%,100% { transform: rotate(-5deg) } 50% { transform: rotate(5deg) } }
@keyframes ns-ned { 0%,100% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-4px) rotate(2deg) } }
@keyframes ns-line { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(1.2) } }
@keyframes ns-cloud { 0% { transform: translateX(0) } 100% { transform: translateX(-120vw) } }

.scn-maximum-pressure { background: linear-gradient(180deg, #2a1a0a 0%, #3a2a1a 30%, #5a4a3a 70%, #7a6a5a 100%), radial-gradient(ellipse at 30% 60%, #a06030 0%, transparent 60%); }
.scn-maximum-pressure .wall-back { position:absolute; inset:0; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); animation: mp-wall 10s ease-in-out infinite; }
.scn-maximum-pressure .furnace-glow { position:absolute; bottom:20%; left:15%; width:30%; height:40%; background: radial-gradient(ellipse at center, #ff8833 0%, #cc4400 40%, #882200 70%, transparent 100%); border-radius: 50%; filter: blur(8px); animation: mp-furnace 4s ease-in-out infinite; }
.scn-maximum-pressure .gauge { position:absolute; top:25%; left:55%; width:50px; height:50px; background: radial-gradient(circle, #b0a090 0%, #8a7a6a 70%); border-radius:50%; border: 4px solid #4a3a2a; box-shadow: 0 0 10px rgba(0,0,0,.5); animation: mp-gauge 3s ease-in-out infinite alternate; }
.scn-maximum-pressure .needle { position:absolute; top:35%; left:58%; width:3px; height:20px; background: #cc0000; border-radius: 1px; transform-origin: bottom center; animation: mp-needle 2s ease-in-out infinite; }
.scn-maximum-pressure .steam-cloud { position:absolute; top:10%; left:20%; width:70px; height:30px; background: radial-gradient(ellipse, rgba(200,190,180,.5) 0%, transparent 70%); filter: blur(6px); border-radius:50%; animation: mp-steam 6s ease-in-out infinite; }
.scn-maximum-pressure .pipe { position:absolute; bottom:30%; left:20%; width:40%; height:4px; background: linear-gradient(90deg, #6a5a4a, #8a7a6a, #6a5a4a); border-radius:2px; animation: mp-pipe 8s ease-in-out infinite; }
.scn-maximum-pressure .coal-pile { position:absolute; bottom:10%; left:10%; width:20%; height:15%; background: radial-gradient(ellipse, #1a1a1a 0%, #0a0a0a 80%); border-radius: 50%; clip-path: inset(0 round 40% 40% 20% 20%); animation: mp-coal 12s linear infinite; }
.scn-maximum-pressure .engineer-figure { position:absolute; bottom:22%; left:45%; width:16px; height:34px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: mp-engineer 3s ease-in-out infinite; }
@keyframes mp-wall { 0%,100% { opacity:.9 } 50% { opacity:1 } }
@keyframes mp-furnace { 0%,100% { opacity:.7; transform: scale(1) } 50% { opacity:1; transform: scale(1.05) } }
@keyframes mp-gauge { 0% { transform: scale(1) } 50% { transform: scale(1.02) } 100% { transform: scale(.98) } }
@keyframes mp-needle { 0% { transform: rotate(-20deg) } 25% { transform: rotate(10deg) } 50% { transform: rotate(40deg) } 75% { transform: rotate(60deg) } 100% { transform: rotate(40deg) } }
@keyframes mp-steam { 0% { opacity:.6; transform: translateY(0) scaleX(1) } 50% { opacity:.3; transform: translateY(-30px) scaleX(1.3) } 100% { opacity:.1; transform: translateY(-60px) scaleX(1.5) } }
@keyframes mp-pipe { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(1.1) } }
@keyframes mp-coal { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes mp-engineer { 0%,100% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-2px) rotate(2deg) } }

.scn-futile-increase { background: linear-gradient(180deg, #8ab4d4 0%, #6a9ab6 40%, #3a7a9a 80%, #1a4a6a 100%), radial-gradient(ellipse at 50% 100%, #3a7a9a 0%, transparent 70%); }
.scn-futile-increase .sky-sunlit { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #8ab4d4, #a8c8e0); animation: fi-sky 25s ease-in-out infinite alternate; }
.scn-futile-increase .sea-bright { 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,.3); animation: fi-sea 6s ease-in-out infinite; }
.scn-futile-increase .ship-deck-wide { position:absolute; bottom:25%; left:10%; width:80%; height:12%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 4px; animation: fi-deck 4s ease-in-out infinite; }
.scn-futile-increase .smoke-stack-1 { position:absolute; bottom:35%; left:30%; width:10px; height:30px; background: #4a3a2a; border-radius: 4px 4px 0 0; animation: fi-stack 3s ease-in-out infinite; }
.scn-futile-increase .smoke-stack-2 { position:absolute; bottom:35%; left:55%; width:10px; height:30px; background: #4a3a2a; border-radius: 4px 4px 0 0; animation: fi-stack 3.5s ease-in-out infinite; animation-delay:1s; }
.scn-futile-increase .coal-bucket { position:absolute; bottom:18%; left:20%; width:20px; height:12px; background: #3a2a1a; border-radius: 4px; animation: fi-bucket 5s ease-in-out infinite; }
.scn-futile-increase .crew-figure-1 { position:absolute; bottom:20%; left:25%; width:12px; height:26px; background: linear-gradient(180deg, #2a2a3a, #1a1a2a); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: fi-crew 3s ease-in-out infinite; }
.scn-futile-increase .crew-figure-2 { position:absolute; bottom:20%; left:60%; width:12px; height:26px; background: linear-gradient(180deg, #2a2a3a, #1a1a2a); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: fi-crew 3.5s ease-in-out infinite; animation-delay:.5s; }
.scn-futile-increase .speed-log { position:absolute; top:15%; right:5%; width:40px; height:20px; background: #6a5a4a; border-radius: 4px; box-shadow: 0 2px 6px rgba(0,0,0,.4); animation: fi-log 15s ease-in-out infinite; }
@keyframes fi-sky { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes fi-sea { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-4px) } }
@keyframes fi-deck { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes fi-stack { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(1.15) } }
@keyframes fi-bucket { 0%,100% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-3px) rotate(2deg) } }
@keyframes fi-crew { 0%,100% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-2px) rotate(1deg) } }
@keyframes fi-log { 0%,100% { transform: scale(1) } 50% { transform: scale(1.05) } }

/* Scene: hissing-sound (hi) */
.scn-hissing-sound {
  background: linear-gradient(180deg, #0a0a1a 0%, #0f1a2a 40%, #0a1520 100%), radial-gradient(ellipse at 50% 20%, #0e1e2e 0%, transparent 70%);
}
.scn-hissing-sound .sea { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #0b1a2a 0%, #04101a 100%); animation: hi-sea 12s ease-in-out infinite alternate; }
.scn-hissing-sound .sky-dark { position:absolute; top:0; left:0; right:0; bottom:55%; background: linear-gradient(180deg, #050510 0%, #0e1e2e 100%); }
.scn-hissing-sound .deck { position:absolute; bottom:42%; left:10%; right:10%; height:8%; background: linear-gradient(90deg, #2a1a0a 0%, #3a2a1a 50%, #2a1a0a 100%); border-radius: 4px 4px 0 0; box-shadow: 0 -4px 8px rgba(0,0,0,0.6); }
.scn-hissing-sound .figure-left { position:absolute; bottom:46%; left:28%; width:16px; height:32px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a12 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hi-fig-left 5s ease-in-out infinite alternate; }
.scn-hissing-sound .figure-right { position:absolute; bottom:46%; right:30%; width:18px; height:34px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a12 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hi-fig-right 5s ease-in-out infinite alternate-reverse; }
.scn-hissing-sound .spout { position:absolute; bottom:50%; left:50%; width:8px; height:40px; transform:translateX(-50%); background: linear-gradient(180deg, #2a4a5a 0%, transparent 100%); border-radius: 50% 50% 0 0; filter: blur(2px); animation: hi-spout 3s ease-in-out infinite; }
.scn-hissing-sound .glowworm { position:absolute; bottom:15%; right:12%; width:14px; height:14px; background: radial-gradient(circle, #6aaa7a 0%, #2a5a3a 70%, transparent 100%); border-radius: 50%; box-shadow: 0 0 30px 10px #4a8a5a, 0 0 60px 20px rgba(74,138,90,0.3); animation: hi-glow 4s ease-in-out infinite alternate; }
.scn-hissing-sound .hiss-waves { position:absolute; bottom:45%; left:0; right:0; height:12%; background: radial-gradient(ellipse at 30% 100%, rgba(80,160,180,0.15) 0%, transparent 70%); filter: blur(3px); animation: hi-hiss 2s ease-in-out infinite; }
@keyframes hi-sea { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(2px) scaleY(0.98); } 100% { transform: translateY(-1px) scaleY(1.02); } }
@keyframes hi-fig-left { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(1px) rotate(-1deg); } }
@keyframes hi-fig-right { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(1px) rotate(-2deg); } 100% { transform: translateY(-2px) rotate(1deg); } }
@keyframes hi-spout { 0% { transform: translateX(-50%) scaleY(0.8); opacity:0.4; } 50% { transform: translateX(-50%) scaleY(1.2); opacity:0.9; } 100% { transform: translateX(-50%) scaleY(0.9); opacity:0.5; } }
@keyframes hi-glow { 0% { box-shadow: 0 0 20px 5px #4a8a5a, 0 0 40px 12px rgba(74,138,90,0.2); opacity:0.7; } 50% { box-shadow: 0 0 40px 15px #7acc8a, 0 0 80px 30px rgba(122,204,138,0.4); opacity:1; } 100% { box-shadow: 0 0 25px 8px #4a8a5a, 0 0 50px 18px rgba(74,138,90,0.25); opacity:0.8; } }
@keyframes hi-hiss { 0% { opacity:0.3; transform: scaleX(1); } 50% { opacity:0.8; transform: scaleX(1.05); } 100% { opacity:0.4; transform: scaleX(0.95); } }

/* Scene: prize-claim (pr) */
.scn-prize-claim {
  background: linear-gradient(180deg, #0a0e1a 0%, #121a2a 40%, #0a0e1a 100%), radial-gradient(ellipse at 50% 70%, #1a2a3a 0%, transparent 70%);
}
.scn-prize-claim .ocean { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #0e1a2a 0%, #050a12 100%); animation: pr-ocean 15s ease-in-out infinite alternate; }
.scn-prize-claim .ship-bow { position:absolute; bottom:42%; left:20%; right:40%; height:18%; background: linear-gradient(90deg, #2a1a0a 0%, #3a2a1a 50%, #2a1a0a 100%); border-radius: 0 60% 10% 0 / 0 80% 20% 0; box-shadow: 0 -6px 12px rgba(0,0,0,0.5); }
.scn-prize-claim .figure-ned { position:absolute; bottom:48%; left:30%; width:18px; 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: pr-ned 4s ease-in-out infinite; }
.scn-prize-claim .figure-narrator { position:absolute; bottom:48%; left:38%; width:16px; height:32px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a12 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pr-narrator 5s ease-in-out infinite alternate; }
.scn-prize-claim .whale-spout { position:absolute; bottom:55%; right:15%; width:6px; height:30px; background: linear-gradient(180deg, #4a6a7a 0%, transparent 100%); border-radius: 50% 50% 0 0; filter: blur(1px); animation: pr-spout 3.5s ease-in-out infinite; }
.scn-prize-claim .prize-chest { position:absolute; bottom:44%; left:45%; width:22px; height:16px; background: linear-gradient(180deg, #5a3a1a 0%, #3a1a0a 100%); border-radius: 4px; box-shadow: 0 2px 6px rgba(0,0,0,0.5); animation: pr-chest 6s ease-in-out infinite; }
.scn-prize-claim .moon { position:absolute; top:15%; right:20%; width:40px; height:40px; background: radial-gradient(circle, #c8d0e0 0%, #8a9aaa 60%, transparent 100%); border-radius: 50%; box-shadow: 0 0 40px 10px rgba(200,208,224,0.2); animation: pr-moon 20s ease-in-out infinite alternate; }
@keyframes pr-ocean { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(2px) scaleY(0.97); } 100% { transform: translateY(-1px) scaleY(1.03); } }
@keyframes pr-ned { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 25% { transform: translateX(2px) translateY(-1px) rotate(2deg); } 50% { transform: translateX(0) translateY(0) rotate(0deg); } 75% { transform: translateX(-2px) translateY(-1px) rotate(-2deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes pr-narrator { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(1px) rotate(-1deg); } }
@keyframes pr-spout { 0% { transform: scaleY(0.6); opacity:0.3; } 50% { transform: scaleY(1.3); opacity:0.8; } 100% { transform: scaleY(0.7); opacity:0.4; } }
@keyframes pr-chest { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(1.02); } 100% { transform: translateY(0) scale(1); } }
@keyframes pr-moon { 0% { transform: translateX(0) scale(1); opacity:0.6; } 50% { transform: translateX(-5px) scale(0.98); opacity:0.9; } 100% { transform: translateX(3px) scale(1.01); opacity:0.7; } }

/* Scene: light-reappears (li) */
.scn-light-reappears {
  background: linear-gradient(180deg, #050a15 0%, #101a2a 40%, #0a0e18 100%), radial-gradient(ellipse at 30% 10%, #1a2a3a 0%, transparent 70%);
}
.scn-light-reappears .night-sea { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #0c1a2a 0%, #030812 100%); animation: li-sea 14s ease-in-out infinite alternate; }
.scn-light-reappears .foreground-wave { position:absolute; bottom:0; left:0; right:0; height:15%; background: linear-gradient(180deg, #0e1a2a 0%, #050812 100%); border-radius: 50% 50% 0 0; filter: blur(4px); animation: li-wave 4s ease-in-out infinite; }
.scn-light-reappears .mast { position:absolute; bottom:45%; left:40%; width:4px; height:100px; background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%); border-radius: 2px; transform-origin: bottom center; animation: li-mast 8s ease-in-out infinite; }
.scn-light-reappears .figure-observer { position:absolute; bottom:55%; left:38%; width:16px; height:28px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a12 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: li-observer 6s ease-in-out infinite alternate; }
.scn-light-reappears .distant-light { position:absolute; top:25%; right:20%; width:20px; height:20px; background: radial-gradient(circle, #f0d080 0%, #c09040 60%, transparent 100%); border-radius: 50%; box-shadow: 0 0 50px 15px #d0a050, 0 0 100px 30px rgba(208,160,80,0.3); animation: li-light 3s ease-in-out infinite alternate; }
.scn-light-reappears .steam-cloud { position:absolute; top:22%; right:25%; width:60px; height:20px; background: linear-gradient(180deg, rgba(180,200,220,0.3) 0%, rgba(180,200,220,0.05) 100%); border-radius: 50%; filter: blur(8px); animation: li-steam 10s ease-in-out infinite; }
.scn-light-reappears .tail-splash { position:absolute; bottom:20%; right:30%; width:30px; height:12px; background: radial-gradient(ellipse at center, rgba(100,160,200,0.4) 0%, transparent 100%); border-radius: 50%; animation: li-splash 2.5s ease-in-out infinite; }
@keyframes li-sea { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(3px) scaleY(0.96); } 100% { transform: translateY(-2px) scaleY(1.04); } }
@keyframes li-wave { 0% { transform: translateX(0) scaleY(0.9); opacity:0.6; } 50% { transform: translateX(-10px) scaleY(1.1); opacity:0.9; } 100% { transform: translateX(5px) scaleY(0.95); opacity:0.7; } }
@keyframes li-mast { 0% { transform: rotate(-1deg); } 50% { transform: rotate(1deg); } 100% { transform: rotate(-0.5deg); } }
@keyframes li-observer { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(1px) rotate(-1deg); } }
@keyframes li-light { 0% { box-shadow: 0 0 30px 8px #d0a050, 0 0 60px 15px rgba(208,160,80,0.2); opacity:0.7; } 50% { box-shadow: 0 0 60px 20px #f0c060, 0 0 120px 40px rgba(240,192,96,0.4); opacity:1; } 100% { box-shadow: 0 0 35px 10px #d0a050, 0 0 70px 20px rgba(208,160,80,0.25); opacity:0.8; } }
@keyframes li-steam { 0% { transform: translateX(0) scale(0.9); opacity:0.3; } 50% { transform: translateX(20px) scale(1.1); opacity:0.6; } 100% { transform: translateX(-10px) scale(0.95); opacity:0.4; } }
@keyframes li-splash { 0% { transform: scale(0.8); opacity:0.2; } 50% { transform: scale(1.3); opacity:0.7; } 100% { transform: scale(0.9); opacity:0.3; } }

/* Scene: mist-lifts (mi) */
.scn-mist-lifts {
  background: linear-gradient(180deg, #4a3a2a 0%, #6a4a3a 20%, #8a6a4a 40%, #5a4a3a 100%), radial-gradient(ellipse at 50% 0%, #b08050 0%, transparent 70%);
}
.scn-mist-lifts .dawn-sky { position:absolute; top:0; left:0; right:0; bottom:40%; background: linear-gradient(180deg, #4a3a2a 0%, #8a6a4a 30%, #b0a080 60%, #c8b090 100%); animation: mi-sky 20s ease-in-out infinite alternate; }
.scn-mist-lifts .mist-layer { position:absolute; top:30%; left:0; right:0; bottom:35%; background: linear-gradient(180deg, rgba(180,160,130,0.4) 0%, rgba(180,160,130,0.05) 100%); filter: blur(10px); animation: mi-mist 15s ease-in-out infinite; }
.scn-mist-lifts .horizon-line { position:absolute; bottom:40%; left:0; right:0; height:2px; background: linear-gradient(90deg, transparent 0%, #a08870 50%, transparent 100%); animation: mi-horizon 10s ease-in-out infinite alternate; }
.scn-mist-lifts .ship-stern { position:absolute; bottom:35%; left:10%; width:80px; height:50px; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 0 0 20% 10%; clip-path: polygon(20% 0%, 100% 0%, 100% 100%, 0% 100%); box-shadow: -4px 0 8px rgba(0,0,0,0.5); animation: mi-ship 8s ease-in-out infinite; }
.scn-mist-lifts .figure-ned-mast { position:absolute; bottom:58%; left:14%; width:16px; height:40px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a12 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mi-ned 6s ease-in-out infinite; }
.scn-mist-lifts .whale-black { position:absolute; bottom:25%; right:15%; width:90px; height:28px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 4px 12px rgba(0,0,0,0.6); animation: mi-whale 12s ease-in-out infinite; }
.scn-mist-lifts .sun-glow { position:absolute; top:12%; left:45%; width:60px; height:60px; background: radial-gradient(circle, #f0d090 0%, #d0a050 40%, transparent 100%); border-radius: 50%; box-shadow: 0 0 80px 30px rgba(240,208,144,0.3), 0 0 160px 60px rgba(240,208,144,0.1); animation: mi-sun 25s ease-in-out infinite alternate; }
.scn-mist-lifts .clearing-mist { position:absolute; top:20%; left:0; right:0; bottom:30%; background: linear-gradient(180deg, rgba(200,180,150,0.2) 0%, transparent 100%); filter: blur(12px); animation: mi-clear 18s ease-in-out infinite alternate; }
@keyframes mi-sky { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes mi-mist { 0% { transform: translateY(0) scaleX(1); opacity:0.8; } 50% { transform: translateY(-5px) scaleX(1.05); opacity:0.4; } 100% { transform: translateY(3px) scaleX(0.95); opacity:0.7; } }
@keyframes mi-horizon { 0% { transform: scaleX(0.9); opacity:0.5; } 50% { transform: scaleX(1); opacity:1; } 100% { transform: scaleX(0.95); opacity:0.6; } }
@keyframes mi-ship { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(1px) rotate(-0.5deg); } }
@keyframes mi-ned { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(1px) rotate(-1deg); } }
@keyframes mi-whale { 0% { transform: translateX(0) scaleX(1); opacity:0.7; } 50% { transform: translateX(-8px) scaleX(1.02); opacity:0.9; } 100% { transform: translateX(5px) scaleX(0.98); opacity:0.8; } }
@keyframes mi-sun { 0% { transform: scale(0.9); opacity:0.6; } 50% { transform: scale(1.05); opacity:0.9; } 100% { transform: scale(0.95); opacity:0.7; } }
@keyframes mi-clear { 0% { opacity:0.5; } 50% { opacity:0.1; } 100% { opacity:0.3; } }

.scn-departure {
  background: linear-gradient(180deg, #c9a87c 0%, #a07a50 40%, #5a3a1a 100%), radial-gradient(ellipse at 30% 40%, #ffe0a0 0%, transparent 60%);
}
.scn-departure .room-bg { position:absolute; inset:0; background: linear-gradient(180deg, #b5926a 0%, #7a5a3a 100%); }
.scn-departure .window { position:absolute; top:15%; left:25%; width:30%; height:40%; background: radial-gradient(ellipse, #fff8d0 0%, #ffe080 60%, transparent 100%); border-radius:6px; box-shadow: inset 0 0 30px rgba(255,200,100,.5), 0 0 60px rgba(255,180,80,.3); animation: dep-window 3s ease-in-out infinite alternate; }
.scn-departure .desk { position:absolute; bottom:20%; left:20%; width:60%; height:8%; background: linear-gradient(180deg, #8b5e3c 0%, #5a3a1a 100%); border-radius:4px; box-shadow: 0 -4px 8px rgba(0,0,0,.3); }
.scn-departure .trunk { position:absolute; bottom:10%; right:10%; width:22%; height:18%; background: linear-gradient(135deg, #4a2a10 0%, #2a1505 100%); border-radius:6px; box-shadow: 0 6px 12px rgba(0,0,0,.5); }
.scn-departure .papers { position:absolute; bottom:26%; left:22%; width:8%; height:2%; background: #f5f0e0; border-radius:2px; box-shadow: 0 2px 6px rgba(0,0,0,.2); animation: dep-papers 6s ease-in-out infinite; }
.scn-departure .figure-packing { position:absolute; bottom:18%; left:40%; width:10%; height:25%; background: linear-gradient(180deg, #2a2218 0%, #0f0b06 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dep-figure 5s ease-in-out infinite alternate; }
.scn-departure .shadow { position:absolute; inset:0; background: rgba(0,0,0,.15); animation: dep-shadow 4s ease-in-out infinite alternate; }
@keyframes dep-window { 0% { opacity:.6; transform: scale(1); } 50% { opacity:1; transform: scale(1.02); } 100% { opacity:.8; transform: scale(.98); } }
@keyframes dep-figure { 0% { transform: translateY(0) rotate(2deg); } 50% { transform: translateY(-4px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes dep-papers { 0% { transform: translateX(0) rotate(-3deg); } 50% { transform: translateX(8px) rotate(2deg); } 100% { transform: translateX(0) rotate(-3deg); } }
@keyframes dep-shadow { 0% { opacity:.1; } 50% { opacity:.2; } 100% { opacity:.12; } }

.scn-meeting-farragut {
  background: linear-gradient(180deg, #b08050 0%, #805030 40%, #50301a 100%), radial-gradient(ellipse at 50% 30%, #ffe0a0 0%, transparent 70%);
}
.scn-meeting-farragut .cabin-bg { position:absolute; inset:0; background: linear-gradient(180deg, #a06a40 0%, #6a4220 100%); }
.scn-meeting-farragut .lamp { position:absolute; top:10%; left:15%; width:20%; height:30%; background: radial-gradient(ellipse at 50% 70%, #ffd080 0%, #b07830 80%, transparent 100%); border-radius:50%; filter: blur(4px); animation: far-lamp 4s ease-in-out infinite alternate; }
.scn-meeting-farragut .table { position:absolute; bottom:20%; left:30%; width:40%; height:10%; background: linear-gradient(180deg, #5a3a1a 0%, #3a2010 100%); border-radius:6px; box-shadow: 0 -4px 10px rgba(0,0,0,.3); }
.scn-meeting-farragut .figure-left { position:absolute; bottom:14%; left:32%; width:12%; height:30%; background: linear-gradient(180deg, #2a2018 0%, #0f0b06 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: far-fig-left 6s ease-in-out infinite; }
.scn-meeting-farragut .figure-right { position:absolute; bottom:14%; right:32%; width:12%; height:30%; background: linear-gradient(180deg, #3a2a20 0%, #1a1008 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: far-fig-right 6s ease-in-out infinite; }
.scn-meeting-farragut .handshake { position:absolute; bottom:28%; left:45%; width:10%; height:6%; background: #4a3420; border-radius: 30% 30% 20% 20%; box-shadow: 0 4px 8px rgba(0,0,0,.3); animation: far-handshake 3s ease-in-out infinite; }
.scn-meeting-farragut .shadow { position:absolute; inset:0; background: rgba(0,0,0,.08); }
@keyframes far-lamp { 0% { transform: scale(1); filter: blur(4px); } 50% { transform: scale(1.05); filter: blur(3px); } 100% { transform: scale(.97); filter: blur(5px); } }
@keyframes far-fig-left { 0% { transform: translateY(0) rotate(2deg); } 50% { transform: translateY(-2px) rotate(-1deg); } 100% { transform: translateY(0) rotate(1deg); } }
@keyframes far-fig-right { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes far-handshake { 0% { transform: translateX(0) scale(1); } 50% { transform: translateX(-2px) scale(1.03); } 100% { transform: translateX(0) scale(1); } }

.scn-cabin-comfort {
  background: linear-gradient(180deg, #b89070 0%, #90604a 50%, #583828 100%), radial-gradient(ellipse at 70% 40%, #ffd0a0 0%, transparent 60%);
}
.scn-cabin-comfort .cabin-interior { position:absolute; inset:0; background: linear-gradient(180deg, #a07050 0%, #684830 100%); }
.scn-cabin-comfort .porthole { position:absolute; top:8%; right:12%; width:22%; height:22%; background: radial-gradient(circle, #4a9ac8 0%, #2a6a9a 60%, transparent 100%); border-radius:50%; border:6px solid #4a3020; box-shadow: inset 0 0 20px rgba(0,0,0,.3); animation: cab-porthole 12s ease-in-out infinite alternate; }
.scn-cabin-comfort .bunk { position:absolute; bottom:10%; left:10%; width:50%; height:30%; background: linear-gradient(180deg, #6a5030 0%, #3a2818 100%); border-radius:8px; box-shadow: 0 -6px 12px rgba(0,0,0,.3); }
.scn-cabin-comfort .trunk-open { position:absolute; bottom:8%; right:10%; width:20%; height:14%; background: linear-gradient(135deg, #4a3018 0%, #2a1a0a 100%); border-radius:4px; box-shadow: 0 4px 8px rgba(0,0,0,.4); }
.scn-cabin-comfort .figure-conseil { position:absolute; bottom:16%; left:20%; width:10%; height:22%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cab-figure 7s ease-in-out infinite; }
.scn-cabin-comfort .lamp-glow { position:absolute; top:18%; left:35%; width:12%; height:12%; background: radial-gradient(circle, #ffd080 0%, #c09050 60%, transparent 100%); filter: blur(6px); animation: cab-lamp 5s ease-in-out infinite alternate; }
@keyframes cab-porthole { 0% { transform: scale(1); opacity:.8; } 50% { transform: scale(1.02); opacity:1; } 100% { transform: scale(.98); opacity:.85; } }
@keyframes cab-figure { 0% { transform: translateY(0) rotate(3deg); } 50% { transform: translateY(-3px) rotate(-2deg); } 100% { transform: translateY(0) rotate(1deg); } }
@keyframes cab-lamp { 0% { transform: scale(1); filter: blur(6px); } 50% { transform: scale(1.04); filter: blur(4px); } 100% { transform: scale(.97); filter: blur(7px); } }

.scn-departure-brooklyn {
  background: linear-gradient(180deg, #8ec8e8 0%, #c0e0f0 40%, #f0f8ff 70%), radial-gradient(ellipse at 30% 20%, #fff8e0 0%, transparent 60%);
}
.scn-departure-brooklyn .sky-bg { position:absolute; inset:0; background: linear-gradient(180deg, #a0d0f0 0%, #d0e8f8 100%); }
.scn-departure-brooklyn .water { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #3a7a9a 0%, #1a4a6a 100%); border-radius: 80% 70% 0 0 / 40% 30% 0 0; animation: bro-water 8s ease-in-out infinite; }
.scn-departure-brooklyn .ship-hull { position:absolute; bottom:10%; left:10%; width:50%; height:25%; background: linear-gradient(180deg, #2a1a10 0%, #0a0502 100%); border-radius: 20% 20% 40% 40% / 40% 40% 60% 60%; box-shadow: 0 -8px 16px rgba(0,0,0,.5); }
.scn-departure-brooklyn .ship-smoke { position:absolute; top:10%; left:30%; width:30%; height:40%; background: radial-gradient(ellipse at 50% 100%, rgba(255,255,255,.6) 0%, rgba(200,200,200,.2) 70%, transparent 100%); filter: blur(6px); animation: bro-smoke 6s linear infinite; }
.scn-departure-brooklyn .piston-arm { position:absolute; bottom:20%; left:25%; width:4%; height:18%; background: linear-gradient(180deg, #5a4a3a 0%, #2a1a10 100%); border-radius:2px; transform-origin: bottom center; animation: bro-piston 1.2s ease-in-out infinite; }
.scn-departure-brooklyn .ferry-boat { position:absolute; bottom:8%; right:15%; width:15%; height:8%; background: linear-gradient(180deg, #6a5040 0%, #3a2a1a 100%); border-radius: 50% 50% 30% 30%; animation: bro-ferry 10s linear infinite; }
.scn-departure-brooklyn .spectator-boats { position:absolute; bottom:8%; right:45%; width:10%; height:5%; background: #4a3a30; border-radius:50%; box-shadow: 12px 0 0 #4a3a30, 24px 0 0 #4a3a30, 36px 0 0 #4a3a30; animation: bro-boats 12s linear infinite; }
@keyframes bro-water { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-6px) scaleX(1.01); } 100% { transform: translateY(0) scaleX(1); } }
@keyframes bro-smoke { 0% { transform: translateY(0) scale(1); opacity:.6; } 50% { transform: translateY(-30px) scale(1.2); opacity:.3; } 100% { transform: translateY(-60px) scale(1.4); opacity:0; } }
@keyframes bro-piston { 0% { transform: rotate(-8deg); } 50% { transform: rotate(8deg); } 100% { transform: rotate(-8deg); } }
@keyframes bro-ferry { 0% { transform: translateX(0) translateY(0); } 50% { transform: translateX(-20px) translateY(-3px); } 100% { transform: translateX(-40px) translateY(0); } }
@keyframes bro-boats { 0% { transform: translateX(0) translateY(0); } 50% { transform: translateX(10px) translateY(-2px); } 100% { transform: translateX(20px) translateY(0); } }

/* Scene: ned-tales (warm, dim-interior) */
.scn-ned-tales { background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 60%, #1a0e05 100%), radial-gradient(circle at 30% 50%, #6a4a2a 0%, transparent 70%); }
.scn-ned-tales .wall   { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 0 0 40% 40% / 0 0 20% 20%; animation: nt-wall 12s ease-in-out infinite alternate; }
.scn-ned-tales .floor  { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e05 100%); border-radius: 30% 30% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,.6); }
.scn-ned-tales .fire   { position:absolute; bottom:28%; left:20%; width:40px; height:60px; background: radial-gradient(ellipse at 50% 100%, #ffa040 20%, #c06020 50%, transparent 70%); border-radius: 50% 50% 20% 20%; box-shadow: 0 0 50px 30px rgba(255,160,64,.4); animation: nt-fire 3s ease-in-out infinite; }
.scn-ned-tales .narrator{ position:absolute; bottom:22%; left:40%; width:20px; height:40px; background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: nt-narrator 6s ease-in-out infinite; }
.scn-ned-tales .ned    { position:absolute; bottom:20%; left:55%; width:22px; height:44px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e05 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: nt-ned 4s ease-in-out infinite alternate; }
.scn-ned-tales .table  { position:absolute; bottom:18%; left:42%; width:40px; height:8px; background: linear-gradient(180deg, #5a3a1a 0%, #3a1a00 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.5); }
.scn-ned-tales .mug    { position:absolute; bottom:21%; left:46%; width:8px; height:12px; background: radial-gradient(circle, #8a5a2a 0%, #4a2a0a 100%); border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,.3); animation: nt-mug 8s ease-in-out infinite; }
@keyframes nt-wall    { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes nt-fire    { 0% { transform: scaleY(1) translateY(0); opacity:.9 } 50% { transform: scaleY(1.2) translateY(-4px); opacity:1 } 100% { transform: scaleY(1) translateY(0); opacity:.9 } }
@keyframes nt-narrator{ 0% { transform: translateX(0) translateY(0) rotate(0) } 30% { transform: translateX(4px) translateY(-2px) rotate(2deg) } 60% { transform: translateX(-2px) translateY(0) rotate(-1deg) } 100% { transform: translateX(0) translateY(0) rotate(0) } }
@keyframes nt-ned     { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(-4px) rotate(2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes nt-mug     { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }

/* Scene: narrator-questioning (tense, dim-interior) */
.scn-narrator-questioning { background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1e 70%, #050510 100%), radial-gradient(circle at 60% 40%, #2a2a4e 0%, transparent 80%); }
.scn-narrator-questioning .cabin-wall { position:absolute; inset:0 0 20% 0; background: linear-gradient(90deg, #1a1a2e 0%, #0e0e1e 50%, #1a1a2e 100%); border-radius: 0 0 30% 30% / 0 0 10% 10%; box-shadow: inset 0 -10px 30px rgba(0,0,0,.7); animation: nq-wall 10s ease-in-out infinite alternate; }
.scn-narrator-questioning .porthole  { position:absolute; top:15%; right:15%; width:30px; height:30px; background: radial-gradient(circle, #4a6a8a 0%, #1a2a3a 80%); border: 3px solid #2a2a3a; border-radius: 50%; box-shadow: inset 0 0 10px rgba(0,0,0,.5), 0 0 20px rgba(74,106,138,.3); animation: nq-porthole 8s ease-in-out infinite; }
.scn-narrator-questioning .table     { position:absolute; bottom:15%; left:35%; width:50px; height:6px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 3px; box-shadow: 0 4px 8px rgba(0,0,0,.5); }
.scn-narrator-questioning .lamp      { position:absolute; bottom:30%; left:20%; width:10px; height:18px; background: radial-gradient(circle at 50% 20%, #c0a060 0%, #8a6a30 60%, transparent 80%); border-radius: 50% 50% 20% 20%; box-shadow: 0 0 30px 15px rgba(192,160,96,.3); animation: nq-lamp 4s ease-in-out infinite alternate; }
.scn-narrator-questioning .narrator  { position:absolute; bottom:8%; left:25%; width:22px; height:48px; background: linear-gradient(180deg, #0e0e1e 0%, #050510 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: nq-fig 5s ease-in-out infinite; }
.scn-narrator-questioning .ned       { position:absolute; bottom:6%; left:50%; width:24px; height:50px; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: nq-fig 5s ease-in-out infinite reverse; }
.scn-narrator-questioning .chair     { position:absolute; bottom:6%; left:48%; width:30px; height:20px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 4px; transform: rotate(-2deg); }
@keyframes nq-wall    { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.75 } }
@keyframes nq-porthole{ 0% { opacity:.6 } 50% { opacity:.9 } 100% { opacity:.6 } }
@keyframes nq-lamp    { 0% { transform: scale(1) translateY(0); opacity:.8 } 50% { transform: scale(1.1) translateY(-2px); opacity:1 } 100% { transform: scale(1) translateY(0); opacity:.9 } }
@keyframes nq-fig     { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(3px) rotate(1deg) } 50% { transform: translateX(0) rotate(-1deg) } 75% { transform: translateX(-3px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }

/* Scene: ned-doubt (tense, sunlit) */
.scn-ned-doubt { background: linear-gradient(180deg, #204080 0%, #4060a0 40%, #80a0c0 100%), radial-gradient(ellipse at 50% 100%, #80a0c0 0%, transparent 70%); }
.scn-ned-doubt .sky       { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #5080b0 0%, #c0d0e0 100%); animation: nd-sky 15s ease-in-out infinite alternate; }
.scn-ned-doubt .sea       { position:absolute; bottom:30%; left:0; right:0; height:50%; background: linear-gradient(180deg, #204070 0%, #102040 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,.3); animation: nd-sea 10s ease-in-out infinite; }
.scn-ned-doubt .deck      { position:absolute; bottom:20%; left:15%; right:15%; height:20%; background: linear-gradient(180deg, #8a6a3a 0%, #5a3a1a 100%); border-radius: 10% 10% 0 0; box-shadow: 0 -5px 15px rgba(0,0,0,.4); }
.scn-ned-doubt .railing   { position:absolute; bottom:35%; left:20%; right:20%; height:4px; background: #2a1a0a; border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,.5); }
.scn-ned-doubt .narrator  { position:absolute; bottom:25%; left:35%; width:20px; height:40px; background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: nd-fig 5s ease-in-out infinite; }
.scn-ned-doubt .ned       { position:absolute; bottom:27%; left:55%; width:24px; height:48px; background: linear-gradient(180deg, #3a4a5a 0%, #1a2a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: nd-ned 4s ease-in-out infinite; }
.scn-ned-doubt .harpoon   { position:absolute; bottom:30%; left:60%; width:3px; height:50px; background: linear-gradient(180deg, #a08050 0%, #6a4020 100%); transform: rotate(-15deg); transform-origin: bottom center; border-radius: 2px; animation: nd-harpoon 3s ease-in-out infinite; }
.scn-ned-doubt .sail      { position:absolute; top:5%; right:10%; width:50px; height:70px; background: linear-gradient(180deg, #d0c0a0 0%, #a09070 100%); border-radius: 30% 50% 20% 40%; clip-path: polygon(0% 0%, 100% 10%, 90% 100%, 0% 90%); box-shadow: 0 0 20px rgba(255,255,200,.2); animation: nd-sail 20s ease-in-out infinite alternate; }
@keyframes nd-sky    { 0% { background: linear-gradient(180deg, #5080b0 0%, #c0d0e0 100%) } 50% { background: linear-gradient(180deg, #4070a0 0%, #b0c0d0 100%) } 100% { background: linear-gradient(180deg, #6090c0 0%, #d0e0f0 100%) } }
@keyframes nd-sea    { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(0) } }
@keyframes nd-fig    { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(2px) rotate(1deg) } 50% { transform: translateX(-2px) rotate(-1deg) } 75% { transform: translateX(0) rotate(0) } }
@keyframes nd-ned    { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(3px) rotate(2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes nd-harpoon{ 0% { transform: rotate(-15deg) translateY(0) } 50% { transform: rotate(-10deg) translateY(-2px) } 100% { transform: rotate(-15deg) translateY(0) } }
@keyframes nd-sail   { 0% { transform: scale(1) } 50% { transform: scale(1.05) } 100% { transform: scale(1) } }

/* Scene: harpooner-skepticism (tense, sunlit) */
.scn-harpooner-skepticism { background: linear-gradient(180deg, #2a4a6a 0%, #5070a0 50%, #90b0d0 100%), radial-gradient(circle at 30% 80%, #90b0d0 0%, transparent 80%); }
.scn-harpooner-skepticism .sky      { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #6090c0 0%, #b0c0d0 100%); animation: hs-sky 18s ease-in-out infinite alternate; }
.scn-harpooner-skepticism .sea      { position:absolute; bottom:35%; left:0; right:0; height:40%; background: linear-gradient(180deg, #1a3050 0%, #081020 100%); border-radius: 30% 30% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.4); animation: hs-sea 12s ease-in-out infinite; }
.scn-harpooner-skepticism .ship-hull{ position:absolute; bottom:20%; left:25%; right:25%; height:30%; background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%); border-radius: 40% 40% 10% 10%; box-shadow: 0 -10px 30px rgba(0,0,0,.5); }
.scn-harpooner-skepticism .deck     { position:absolute; bottom:38%; left:30%; right:30%; height:6%; background: linear-gradient(180deg, #8a6a3a 0%, #5a3a1a 100%); border-radius: 5px; }
.scn-harpooner-skepticism .narrator { position:absolute; bottom:33%; left:38%; width:18px; height:36px; background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hs-fig 6s ease-in-out infinite; }
.scn-harpooner-skepticism .ned      { position:absolute; bottom:35%; left:55%; width:22px; height:44px; background: linear-gradient(180deg, #3a4a5a 0%, #1a2a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hs-ned 5s ease-in-out infinite; }
.scn-harpooner-skepticism .waves    { position:absolute; bottom:0; left:0; right:0; height:30%; background: repeating-linear-gradient(90deg, #204070 0px, #305080 10px, #204070 20px); border-radius: 50% 50% 0 0; animation: hs-waves 8s linear infinite; }
.scn-harpooner-skepticism .cloud    { position:absolute; top:10%; left:-10%; width:80px; height:20px; background: rgba(200,210,220,.4); border-radius: 50%; filter: blur(6px); animation: hs-cloud 40s linear infinite; }
@keyframes hs-sky   { 0% { background: linear-gradient(180deg, #6090c0 0%, #b0c0d0 100%) } 50% { background: linear-gradient(180deg, #5080b0 0%, #a0b0c0 100%) } 100% { background: linear-gradient(180deg, #70a0d0 0%, #c0d0e0 100%) } }
@keyframes hs-sea   { 0% { transform: translateY(0) } 50% { transform: translateY(-5px) } 100% { transform: translateY(0) } }
@keyframes hs-fig   { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(2px) rotate(1deg) } 50% { transform: translateX(-2px) rotate(-1deg) } 75% { transform: translateX(1px) rotate(0) } }
@keyframes hs-ned   { 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 hs-waves { 0% { background-position: 0 0 } 100% { background-position: 200px 0 } }
@keyframes hs-cloud { 0% { transform: translateX(-100px) } 100% { transform: translateX(100vw) } }

.scn-preface-verne-intro {
  background: 
    linear-gradient(135deg, #2b1e16 0%, #1b1310 40%, #0f0b08 100%),
    radial-gradient(ellipse at 60% 30%, #3d2a1e 0%, transparent 70%);
}
.scn-preface-verne-intro .room-wall {
  position: absolute; inset: 0; background: repeating-linear-gradient(0deg, rgba(70,50,35,0.15) 0px, transparent 1px, transparent 40px); animation: pvi-wall 30s linear infinite;
}
.scn-preface-verne-intro .desk {
  position: absolute; bottom: 18%; left: 10%; width: 55%; height: 8%; background: linear-gradient(180deg, #4a3528 0%, #2d1e14 100%); border-radius: 6px 6px 0 0; box-shadow: 0 8px 20px rgba(0,0,0,0.8); animation: pvi-desk 10s ease-in-out infinite;
}
.scn-preface-verne-intro .book-open {
  position: absolute; bottom: 24%; left: 25%; width: 20%; height: 7%; background: linear-gradient(135deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,0.6); transform: rotate(2deg); animation: pvi-book 6s ease-in-out infinite;
}
.scn-preface-verne-intro .globe {
  position: absolute; bottom: 30%; right: 18%; width: 12%; height: 18%; background: radial-gradient(circle at 40% 30%, #8a7a5a 0%, #4a3a2a 70%, #2a1a0a 100%); border-radius: 50%; box-shadow: 0 0 30px rgba(60,50,30,0.4), inset 0 -10px 20px rgba(0,0,0,0.5); animation: pvi-globe 20s ease-in-out infinite alternate;
}
.scn-preface-verne-intro .figure-seated {
  position: absolute; bottom: 22%; left: 14%; width: 14%; height: 24%; background: linear-gradient(180deg, #1a1510 0%, #0e0a07 100%); border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%; transform-origin: bottom; animation: pvi-figure 8s ease-in-out infinite;
}
.scn-preface-verne-intro .lamp-glow {
  position: absolute; bottom: 34%; left: 12%; width: 12%; height: 14%; background: radial-gradient(circle at 50% 60%, #c8a040 0%, #8a5a20 50%, transparent 100%); border-radius: 50%; box-shadow: 0 0 60px 20px rgba(200,160,64,0.3); animation: pvi-lamp 4s ease-in-out infinite alternate;
}
.scn-preface-verne-intro .window-frame {
  position: absolute; top: 10%; right: 8%; width: 28%; height: 40%; background: linear-gradient(135deg, #3a2820 0%, #1a100c 100%); border-radius: 10% 10% 4% 4%; box-shadow: inset 0 0 30px rgba(0,0,0,0.8); border: 4px solid #1a100c; animation: pvi-frame 14s ease-in-out infinite;
}
.scn-preface-verne-intro .window-sea {
  position: absolute; top: 12%; right: 10%; width: 24%; height: 34%; background: linear-gradient(180deg, #0a2a3a 0%, #071520 100%); border-radius: 8% 8% 2% 2%; opacity: 0.9; animation: pvi-sea 12s ease-in-out infinite alternate;
}
@keyframes pvi-wall { 0%{opacity:0.6} 50%{opacity:0.8} 100%{opacity:0.6} }
@keyframes pvi-desk { 0%{transform:translateY(0)} 50%{transform:translateY(-2px)} 100%{transform:translateY(0)} }
@keyframes pvi-book { 0%{transform:rotate(2deg) scaleY(1)} 50%{transform:rotate(1deg) scaleY(1.02)} 100%{transform:rotate(2deg) scaleY(1)} }
@keyframes pvi-globe { 0%{transform:rotate(0deg) scale(1)} 50%{transform:rotate(5deg) scale(1.02)} 100%{transform:rotate(0deg) scale(1)} }
@keyframes pvi-figure { 0%{transform:translateY(0) rotate(-1deg)} 50%{transform:translateY(-3px) rotate(1deg)} 100%{transform:translateY(0) rotate(-1deg)} }
@keyframes pvi-lamp { 0%{opacity:0.7;box-shadow:0 0 40px 15px rgba(200,160,64,0.2)} 100%{opacity:1;box-shadow:0 0 80px 25px rgba(200,160,64,0.4)} }
@keyframes pvi-frame { 0%{box-shadow:inset 0 0 20px rgba(0,0,0,0.7)} 50%{box-shadow:inset 0 0 40px rgba(0,0,0,0.9)} 100%{box-shadow:inset 0 0 20px rgba(0,0,0,0.7)} }
@keyframes pvi-sea { 0%{opacity:0.85;background-position:0% 0%} 50%{opacity:0.95;background-position:0% -5%} 100%{opacity:0.85;background-position:0% 0%} }

.scn-preface-verne-political {
  background: 
    linear-gradient(180deg, #2a1e14 0%, #1a100b 40%, #0d0805 100%),
    radial-gradient(ellipse at 30% 40%, #3d2a1a 0%, transparent 80%);
}
.scn-preface-verne-political .bg-shadow { position:absolute;inset:0;background:repeating-linear-gradient(0deg,rgba(0,0,0,0.1) 0px,transparent 2px,transparent 30px);animation:pvp-shadow 40s linear infinite; }
.scn-preface-verne-political .table { position:absolute;bottom:15%;left:5%;width:90%;height:6%;background:linear-gradient(180deg,#4a3525 0%,#2d1e12 100%);border-radius:4px;box-shadow:0 6px 15px rgba(0,0,0,0.9);animation:pvp-table 12s ease-in-out infinite; }
.scn-preface-verne-political .map { position:absolute;bottom:20%;left:20%;width:40%;height:12%;background:linear-gradient(135deg,#5a4a3a 0%,#3a2a1a 100%);border-radius:2px;transform:rotate(-3deg);box-shadow:0 4px 10px rgba(0,0,0,0.7);animation:pvp-map 18s ease-in-out infinite alternate; }
.scn-preface-verne-political .papers-stack { position:absolute;bottom:24%;left:45%;width:8%;height:4%;background:linear-gradient(180deg,#6a5a4a 0%,#4a3a2a 100%);border-radius:1px;box-shadow:2px 2px 6px rgba(0,0,0,0.6);animation:pvp-papers 8s ease-in-out infinite; }
.scn-preface-verne-political .figure-standing { position:absolute;bottom:22%;left:60%;width:12%;height:30%;background:linear-gradient(180deg,#15100c 0%,#0a0705 100%);border-radius:50% 50% 40% 40% / 70% 70% 40% 40%;transform-origin:bottom;animation:pvp-figure 6s ease-in-out infinite; }
.scn-preface-verne-political .candle-flame { position:absolute;bottom:32%;left:48%;width:6%;height:8%;background:radial-gradient(circle at 50% 60%,#f0c060 0%,#a86020 60%,transparent 100%);border-radius:50%;box-shadow:0 0 40px 15px rgba(200,120,40,0.5);animation:pvp-candle 3s ease-in-out infinite alternate; }
.scn-preface-verne-political .flag-drape { position:absolute;bottom:38%;left:30%;width:15%;height:20%;background:linear-gradient(135deg,#5e1a1d 0%,#3a0a0c 100%);border-radius:0 0 30% 30%/0 0 50% 50%;transform:rotate(-10deg) skewX(-5deg);box-shadow:0 4px 8px rgba(0,0,0,0.5);animation:pvp-flag 15s ease-in-out infinite alternate; }
@keyframes pvp-shadow {0%{opacity:0.5}50%{opacity:0.8}100%{opacity:0.5} }
@keyframes pvp-table {0%{transform:translateY(0)}50%{transform:translateY(-1px)}100%{transform:translateY(0)} }
@keyframes pvp-map {0%{transform:rotate(-3deg) scale(1)}50%{transform:rotate(-2deg) scale(1.01)}100%{transform:rotate(-3deg) scale(1)} }
@keyframes pvp-papers {0%{transform:translateY(0) rotate(0deg)}50%{transform:translateY(-2px) rotate(0.5deg)}100%{transform:translateY(0) rotate(0deg)} }
@keyframes pvp-figure {0%{transform:translateY(0) rotate(0deg)}50%{transform:translateY(-4px) rotate(2deg)}100%{transform:translateY(0) rotate(0deg)} }
@keyframes pvp-candle {0%{opacity:0.8;box-shadow:0 0 30px 10px rgba(200,120,40,0.4)}100%{opacity:1;box-shadow:0 0 60px 20px rgba(200,120,40,0.7)} }
@keyframes pvp-flag {0%{transform:rotate(-10deg) skewX(-5deg)}50%{transform:rotate(-8deg) skewX(-3deg)}100%{transform:rotate(-10deg) skewX(-5deg)} }

.scn-preface-verne-science {
  background: 
    linear-gradient(150deg, #2a2218 0%, #1a1410 40%, #0c0a07 100%),
    radial-gradient(ellipse at 40% 25%, #3a2c1e 0%, transparent 70%);
}
.scn-preface-verne-science .study-wall { position:absolute;inset:0;background:repeating-linear-gradient(90deg,rgba(60,40,25,0.1) 0px,transparent 1px,transparent 30px);animation:pvs-wall 25s linear infinite; }
.scn-preface-verne-science .bookshelf { position:absolute;top:10%;left:5%;width:15%;height:60%;background:linear-gradient(180deg,#3a2a1a 0%,#1a1008 100%);border-radius:4px;box-shadow:inset 0 0 20px rgba(0,0,0,0.8);animation:pvs-shelf 20s ease-in-out infinite; }
.scn-preface-verne-science .telescope { position:absolute;bottom:28%;left:35%;width:25%;height:4%;background:linear-gradient(135deg,#5a4a3a 0%,#2a1a0a 100%);border-radius:50% / 20% 80% 80% 20%;transform:rotate(-30deg) skewX(10deg);box-shadow:0 2px 8px rgba(0,0,0,0.6);animation:pvs-telescope 12s ease-in-out infinite alternate; }
.scn-preface-verne-science .clock-gears { position:absolute;top:15%;right:18%;width:12%;height:16%;background:radial-gradient(circle, #4a3a2a 0%, #1a1008 100%);border-radius:50%;box-shadow:inset 0 0 20px rgba(0,0,0,0.9), 0 0 0 3px #2a1a0a;animation:pvs-gears 30s linear infinite; }
.scn-preface-verne-science .figure-reading { position:absolute;bottom:22%;left:20%;width:12%;height:26%;background:linear-gradient(180deg,#181410 0%,#0c0905 100%);border-radius:50% 50% 40% 40% / 70% 70% 40% 40%;transform-origin:bottom;animation:pvs-figure 9s ease-in-out infinite; }
.scn-preface-verne-science .oil-lamp { position:absolute;bottom:40%;left:15%;width:6%;height:12%;background:radial-gradient(circle at 50% 60%,#c8a040 0%,#8a5a20 60%,transparent 100%);border-radius:50%;box-shadow:0 0 50px 15px rgba(200,160,64,0.3);animation:pvs-oil 4s ease-in-out infinite alternate; }
.scn-preface-verne-science .notes-scroll { position:absolute;bottom:22%;right:10%;width:18%;height:3%;background:linear-gradient(135deg,#5a4a3a 0%,#3a2a1a 100%);border-radius:2px;transform:rotate(-5deg);box-shadow:0 2px 6px rgba(0,0,0,0.5);animation:pvs-scroll 7s ease-in-out infinite; }
@keyframes pvs-wall {0%{opacity:0.4}50%{opacity:0.7}100%{opacity:0.4} }
@keyframes pvs-shelf {0%{box-shadow:inset 0 0 15px rgba(0,0,0,0.7)}50%{box-shadow:inset 0 0 25px rgba(0,0,0,0.9)}100%{box-shadow:inset 0 0 15px rgba(0,0,0,0.7)} }
@keyframes pvs-telescope {0%{transform:rotate(-30deg) skewX(10deg) scaleX(1)}50%{transform:rotate(-28deg) skewX(8deg) scaleX(1.02)}100%{transform:rotate(-30deg) skewX(10deg) scaleX(1)} }
@keyframes pvs-gears {0%{transform:rotate(0deg)}50%{transform:rotate(180deg)}100%{transform:rotate(360deg)} }
@keyframes pvs-figure {0%{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-3px) rotate(1deg)}100%{transform:translateY(0) rotate(-2deg)} }
@keyframes pvs-oil {0%{opacity:0.75;box-shadow:0 0 30px 10px rgba(200,160,64,0.2)}100%{opacity:1;box-shadow:0 0 70px 20px rgba(200,160,64,0.5)} }
@keyframes pvs-scroll {0%{transform:rotate(-5deg) translateY(0)}50%{transform:rotate(-4deg) translateY(-2px)}100%{transform:rotate(-5deg) translateY(0)} }

.scn-preface-verne-marine {
  background: 
    linear-gradient(180deg, #1a1a2e 0%, #0f1020 40%, #050810 100%),
    radial-gradient(ellipse at 50% 20%, #2a3a4a 0%, transparent 80%);
}
.scn-preface-verne-marine .cabin-wall { position:absolute;inset:0;background:repeating-linear-gradient(0deg,rgba(30,40,60,0.15) 0px,transparent 2px,transparent 40px);animation:pvm-wall 35s linear infinite; }
.scn-preface-verne-marine .porthole { position:absolute;top:12%;right:10%;width:12%;height:16%;background:radial-gradient(circle at 40% 40%, #3a6a8a 0%, #0a1a2a 100%);border-radius:50%;border:6px solid #1a2028;box-shadow:inset 0 0 30px rgba(0,20,30,0.8), 0 0 20px rgba(50,100,140,0.2);animation:pvm-porthole 10s ease-in-out infinite alternate; }
.scn-preface-verne-marine .diving-suit { position:absolute;bottom:20%;left:15%;width:18%;height:32%;background:linear-gradient(180deg,#3a4a3a 0%,#1a2a1a 100%);border-radius:40% 40% 30% 30% / 50% 50% 40% 40%;box-shadow:0 8px 20px rgba(0,0,0,0.7), inset 0 -10px 20px rgba(0,0,0,0.5);animation:pvm-suit 18s ease-in-out infinite; }
.scn-preface-verne-marine .nautilus-model { position:absolute;bottom:30%;right:15%;width:25%;height:8%;background:linear-gradient(90deg,#4a5a4a 0%,#2a3a2a 50%,#4a5a4a 100%);border-radius:50% / 100% 100% 0 0;box-shadow:0 4px 12px rgba(0,0,0,0.6), inset 0 -4px 8px rgba(0,20,0,0.3);animation:pvm-nautilus 25s ease-in-out infinite alternate; }
.scn-preface-verne-marine .charts { position:absolute;bottom:18%;left:30%;width:30%;height:4%;background:linear-gradient(135deg,#5a4a3a 0%,#3a2a1a 100%);border-radius:2px;transform:rotate(-2deg);box-shadow:0 2px 8px rgba(0,0,0,0.5);animation:pvm-charts 8s ease-in-out infinite; }
.scn-preface-verne-marine .seacreature { position:absolute;bottom:40%;left:40%;width:10%;height:8%;background:radial-gradient(ellipse at 30% 40%, #3a6a5a 0%, #1a2a1a 100%);border-radius:60% 40% 50% 50% / 80% 60% 40% 50%;animation:pvm-creature 14s ease-in-out infinite alternate; }
.scn-preface-verne-marine .lantern-swing { position:absolute;top:5%;left:40%;width:6%;height:8%;background:radial-gradient(circle at 50% 60%,#b08040 0%,#6a4020 60%,transparent 100%);border-radius:50%;box-shadow:0 0 40px 15px rgba(176,128,64,0.3);animation:pvm-lantern 5s ease-in-out infinite; }
@keyframes pvm-wall {0%{opacity:0.5}50%{opacity:0.8}100%{opacity:0.5} }
@keyframes pvm-porthole {0%{box-shadow:inset 0 0 20px rgba(0,20,30,0.7)}100%{box-shadow:inset 0 0 40px rgba(0,40,60,0.9)} }
@keyframes pvm-suit {0%{transform:translateY(0) rotate(-1deg)}50%{transform:translateY(-3px) rotate(1deg)}100%{transform:translateY(0) rotate(-1deg)} }
@keyframes pvm-nautilus {0%{transform:scaleX(1) translateX(0)}50%{transform:scaleX(1.02) translateX(5px)}100%{transform:scaleX(1) translateX(0)} }
@keyframes pvm-charts {0%{transform:rotate(-2deg) translateY(0)}50%{transform:rotate(-1deg) translateY(-2px)}100%{transform:rotate(-2deg) translateY(0)} }
@keyframes pvm-creature {0%{transform:translateX(0) scaleY(1)}50%{transform:translateX(15px) scaleY(1.1)}100%{transform:translateX(0) scaleY(1)} }
@keyframes pvm-lantern {0%{transform:rotate(-5deg);opacity:0.8}50%{transform:rotate(5deg);opacity:1}100%{transform:rotate(-5deg);opacity:0.8} }

.scn-waterspouts {
  background: linear-gradient(180deg, #7ab8e0 0%, #4a90c8 40%, #2c5f8a 70%), radial-gradient(ellipse at 20% 80%, #f0d080 0%, transparent 50%);
}
.scn-waterspouts .ocean {
  position:absolute; bottom:0; left:0; right:0; height:45%;
  background: linear-gradient(0deg, #1a4a6a 0%, #3a7a9a 40%, #5a9aba 80%);
  animation: ws1-ocean 8s ease-in-out infinite alternate;
}
.scn-waterspouts .sun {
  position:absolute; top:8%; right:15%; width:50px; height:50px;
  background: radial-gradient(circle, #ffe080 0%, #f0c040 60%, transparent 70%);
  border-radius:50%; box-shadow: 0 0 40px 10px #f0c040;
  animation: ws1-sun 6s ease-in-out infinite alternate;
}
.scn-waterspouts .ship {
  position:absolute; bottom:20%; left:10%; width:80px; height:30px;
  background: linear-gradient(90deg, #4a3a2a 0%, #6a5a4a 50%, #4a3a2a 100%);
  border-radius: 0 0 20px 20px; clip-path: polygon(10% 0%, 90% 0%, 100% 100%, 0% 100%);
  animation: ws1-ship 12s ease-in-out infinite;
}
.scn-waterspouts .creature {
  position:absolute; bottom:30%; left:45%; width:70px; height:40px;
  background: radial-gradient(ellipse at 50% 60%, #2a6a4a 0%, #1a4a2a 70%);
  border-radius: 50% 50% 30% 30%; box-shadow: 0 0 20px #1a4a2a;
  animation: ws1-creature 3s ease-in-out infinite alternate;
}
.scn-waterspouts .waterspout {
  position:absolute; bottom:55%; width:8px; height:80px;
  background: linear-gradient(0deg, transparent 0%, rgba(255,255,255,0.6) 40%, transparent 100%);
  border-radius: 4px; filter: blur(3px);
}
.scn-waterspouts .spout-a {
  left:48%; animation: ws1-spout-a 4s ease-in-out infinite;
}
.scn-waterspouts .spout-b {
  left:52%; animation: ws1-spout-b 4.5s ease-in-out infinite 0.5s;
}
.scn-waterspouts .cloud {
  position:absolute; top:12%; width:100px; height:20px;
  background: radial-gradient(ellipse, rgba(255,255,255,0.7) 0%, transparent 70%);
  filter: blur(5px);
}
.scn-waterspouts .c1 { left:5%; animation: ws1-cloud1 30s linear infinite; }
.scn-waterspouts .c2 { right:8%; width:70px; height:14px; animation: ws1-cloud2 40s linear infinite reverse; }

@keyframes ws1-ocean {
  0% { transform: translateY(0) scaleX(1); }
  50% { transform: translateY(-3px) scaleX(1.01); }
  100% { transform: translateY(0) scaleX(1); }
}
@keyframes ws1-sun {
  0% { opacity:0.8; transform: scale(0.95); }
  50% { opacity:1; transform: scale(1.05); }
  100% { opacity:0.85; transform: scale(1); }
}
@keyframes ws1-ship {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(10px) rotate(-1deg); }
  50% { transform: translateX(30px) rotate(0deg); }
  75% { transform: translateX(10px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes ws1-creature {
  0% { transform: scaleY(1) translateY(0); }
  50% { transform: scaleY(1.1) translateY(-10px); }
  100% { transform: scaleY(1) translateY(0); }
}
@keyframes ws1-spout-a {
  0% { height:80px; opacity:0.6; transform: rotate(-2deg); }
  30% { height:120px; opacity:1; transform: rotate(0deg); }
  60% { height:90px; opacity:0.8; transform: rotate(2deg); }
  100% { height:80px; opacity:0.6; transform: rotate(-2deg); }
}
@keyframes ws1-spout-b {
  0% { height:70px; opacity:0.5; transform: rotate(2deg); }
  30% { height:100px; opacity:0.9; transform: rotate(0deg); }
  60% { height:80px; opacity:0.7; transform: rotate(-2deg); }
  100% { height:70px; opacity:0.5; transform: rotate(2deg); }
}
@keyframes ws1-cloud1 {
  0% { transform: translateX(-120px); }
  100% { transform: translateX(120vw); }
}
@keyframes ws1-cloud2 {
  0% { transform: translateX(80vw); }
  100% { transform: translateX(-100px); }
}

.scn-sightings-multi {
  background: linear-gradient(180deg, #6a7a8a 0%, #4a5a6a 40%, #2a3a4a 80%), radial-gradient(ellipse at 50% 80%, #4a5a6a 0%, transparent 60%);
}
.scn-sightings-multi .sky {
  position:absolute; inset:0 0 45% 0;
  background: linear-gradient(180deg, #5a6a7a 0%, #8a9aaa 100%);
  animation: sm1-sky 15s ease-in-out infinite alternate;
}
.scn-sightings-multi .sea {
  position:absolute; bottom:0; left:0; right:0; height:45%;
  background: linear-gradient(0deg, #1a2a3a 0%, #3a4a5a 100%);
  animation: sm1-sea 10s ease-in-out infinite alternate;
}
.scn-sightings-multi .ship {
  position:absolute; bottom:25%; width:60px; height:20px;
  background: linear-gradient(90deg, #3a3a2a 0%, #5a4a3a 100%);
  clip-path: polygon(10% 0%, 90% 0%, 100% 100%, 0% 100%);
  border-radius: 0 0 10px 10px;
}
.scn-sightings-multi .ship1 { left:10%; animation: sm1-ship1 14s ease-in-out infinite; }
.scn-sightings-multi .ship2 { left:35%; width:50px; height:16px; animation: sm1-ship2 16s ease-in-out infinite 1s; }
.scn-sightings-multi .ship3 { left:65%; width:70px; height:24px; animation: sm1-ship3 12s ease-in-out infinite 2s; }
.scn-sightings-multi .creature.shadow {
  position:absolute; bottom:30%; left:50%; width:90px; height:30px;
  background: radial-gradient(ellipse, #1a2a2a 0%, transparent 70%);
  transform: translateX(-50%); filter: blur(4px);
  animation: sm1-shadow 5s ease-in-out infinite alternate;
}
.scn-sightings-multi .wave {
  position:absolute; bottom:20%; width:120px; height:12px;
  background: radial-gradient(ellipse, rgba(255,255,255,0.2) 0%, transparent 70%);
  filter: blur(5px);
}
.scn-sightings-multi .w1 { left:5%; animation: sm1-wave1 7s ease-in-out infinite; }
.scn-sightings-multi .w2 { right:10%; animation: sm1-wave2 8s ease-in-out infinite 1s; }

@keyframes sm1-sky {
  0% { opacity:0.7; }
  50% { opacity:1; }
  100% { opacity:0.8; }
}
@keyframes sm1-sea {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes sm1-ship1 {
  0% { transform: translate(0,0) rotate(0deg); }
  25% { transform: translate(10px,-5px) rotate(-1deg); }
  50% { transform: translate(30px,0) rotate(0deg); }
  75% { transform: translate(10px,5px) rotate(1deg); }
  100% { transform: translate(0,0) rotate(0deg); }
}
@keyframes sm1-ship2 {
  0% { transform: translate(0,0) scale(1); }
  33% { transform: translate(15px,-3px) scale(1.05); }
  66% { transform: translate(35px,2px) scale(0.95); }
  100% { transform: translate(0,0) scale(1); }
}
@keyframes sm1-ship3 {
  0% { transform: translate(0,0) rotate(0deg); }
  20% { transform: translate(-10px,-2px) rotate(1deg); }
  40% { transform: translate(-20px,0) rotate(0deg); }
  60% { transform: translate(-10px,2px) rotate(-1deg); }
  80% { transform: translate(0,0) rotate(0deg); }
  100% { transform: translate(0,0) rotate(0deg); }
}
@keyframes sm1-shadow {
  0% { transform: translateX(-50%) scaleX(1); opacity:0.4; }
  50% { transform: translateX(-50%) scaleX(1.2); opacity:0.8; }
  100% { transform: translateX(-50%) scaleX(1); opacity:0.4; }
}
@keyframes sm1-wave1 {
  0% { transform: translate(0,0) scale(1); }
  50% { transform: translate(40px,-5px) scale(1.1); }
  100% { transform: translate(80px,0) scale(1); }
}
@keyframes sm1-wave2 {
  0% { transform: translate(0,0) scale(1); }
  50% { transform: translate(-30px,3px) scale(1.05); }
  100% { transform: translate(-60px,0) scale(1); }
}

.scn-media-frenzy {
  background: linear-gradient(180deg, #8a8a7a 0%, #6a6a5a 40%, #4a4a3a 100%), radial-gradient(ellipse at 60% 50%, #b0a080 0%, transparent 60%);
}
.scn-media-frenzy .wall {
  position:absolute; inset:0; background: repeating-linear-gradient(90deg, transparent 0px, transparent 20px, rgba(255,255,255,0.05) 20px, rgba(255,255,255,0.05) 22px);
  animation: mf1-wall 20s linear infinite;
}
.scn-media-frenzy .paper {
  position:absolute; width:80px; height:50px;
  background: linear-gradient(135deg, #f0e0c0 0%, #d0c0a0 100%);
  border:1px solid #a09070; transform-origin: left top;
}
.scn-media-frenzy .paper1 { top:30%; left:20%; animation: mf1-paper1 6s ease-in-out infinite; }
.scn-media-frenzy .paper2 { top:50%; right:25%; width:60px; height:40px; animation: mf1-paper2 7s ease-in-out infinite 1s; }
.scn-media-frenzy .printer {
  position:absolute; bottom:10%; left:35%; width:100px; height:60px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 10px; box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: mf1-printer 3s ease-in-out infinite;
}
.scn-media-frenzy .ink-splash {
  position:absolute; bottom:15%; left:42%; width:20px; height:20px;
  background: radial-gradient(circle, #2a1a0a 0%, #1a0a00 70%);
  border-radius: 50%; animation: mf1-ink 2s ease-in-out infinite;
}
.scn-media-frenzy .monster-drawing {
  position:absolute; top:15%; left:50%; width:70px; height:50px;
  background: radial-gradient(ellipse at 30% 40%, #3a5a3a 0%, #1a2a1a 70%);
  border-radius: 50% 50% 40% 40%; clip-path: polygon(50% 0%, 100% 30%, 80% 100%, 20% 100%, 0% 30%);
  animation: mf1-monster 4s ease-in-out infinite alternate;
}
.scn-media-frenzy .flyer {
  position:absolute; width:40px; height:30px;
  background: linear-gradient(135deg, #f0e8d0 0%, #d0c8b0 100%);
  border:1px solid #b0a080;
}
.scn-media-frenzy .flyer1 { top:5%; left:10%; animation: mf1-flyer1 5s ease-in-out infinite; }
.scn-media-frenzy .flyer2 { top:8%; right:15%; animation: mf1-flyer2 6s ease-in-out infinite 0.5s; }

@keyframes mf1-wall {
  0% { background-position: 0 0; }
  100% { background-position: 22px 0; }
}
@keyframes mf1-paper1 {
  0% { transform: translate(0,0) rotate(0deg); opacity:1; }
  25% { transform: translate(20px,-10px) rotate(10deg); opacity:0.8; }
  50% { transform: translate(50px,0) rotate(15deg); opacity:1; }
  75% { transform: translate(20px,10px) rotate(5deg); opacity:0.9; }
  100% { transform: translate(0,0) rotate(0deg); opacity:1; }
}
@keyframes mf1-paper2 {
  0% { transform: translate(0,0) rotate(0deg) scale(1); }
  33% { transform: translate(-15px,5px) rotate(-8deg) scale(1.05); }
  66% { transform: translate(-30px,-5px) rotate(-12deg) scale(0.95); }
  100% { transform: translate(0,0) rotate(0deg) scale(1); }
}
@keyframes mf1-printer {
  0% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
  100% { transform: translateY(0); }
}
@keyframes mf1-ink {
  0% { transform: scale(1); opacity:0.8; }
  50% { transform: scale(1.3); opacity:1; }
  100% { transform: scale(1); opacity:0.8; }
}
@keyframes mf1-monster {
  0% { transform: scaleY(1) rotate(-5deg); }
  50% { transform: scaleY(1.1) rotate(0deg); }
  100% { transform: scaleY(1) rotate(5deg); }
}
@keyframes mf1-flyer1 {
  0% { transform: translate(0,0) rotate(0deg); }
  50% { transform: translate(30px,-20px) rotate(15deg); }
  100% { transform: translate(60px,-40px) rotate(30deg); }
}
@keyframes mf1-flyer2 {
  0% { transform: translate(0,0) rotate(0deg); }
  50% { transform: translate(-20px,10px) rotate(-10deg); }
  100% { transform: translate(-40px,20px) rotate(-20deg); }
}

.scn-debate-believers-skeptics {
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 40%, #1a1a2a 100%), radial-gradient(ellipse at 50% 30%, #4a4a5a 0%, transparent 70%);
}
.scn-debate-believers-skeptics .backdrop {
  position:absolute; inset:0; background: linear-gradient(180deg, rgba(200,180,160,0.05) 0%, transparent 60%);
  animation: db1-backdrop 12s ease-in-out infinite alternate;
}
.scn-debate-believers-skeptics .rostrum {
  position:absolute; bottom:30%; left:50%; width:120px; height:50px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  transform: translateX(-50%); border-radius: 5px 5px 0 0;
  box-shadow: 0 -4px 10px rgba(0,0,0,0.5);
}
.scn-debate-believers-skeptics .speaker {
  position:absolute; bottom:28%; width:40px; height:80px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
}
.scn-debate-believers-skeptics .left {
  left:20%; animation: db1-left 5s ease-in-out infinite;
}
.scn-debate-believers-skeptics .right {
  right:20%; animation: db1-right 5.2s ease-in-out infinite 0.2s;
}
.scn-debate-believers-skeptics .papers {
  position:absolute; bottom:35%; left:45%; width:30px; height:20px;
  background: linear-gradient(135deg, #d0c0a0 0%, #b0a080 100%);
  border:1px solid #8a7a5a; transform: rotate(-15deg);
  animation: db1-papers 8s ease-in-out infinite;
}
.scn-debate-believers-skeptics .ink-splat {
  position:absolute; bottom:33%; left:48%; width:15px; height:15px;
  background: radial-gradient(circle, #5e1a1d 0%, #2a0a0a 70%);
  border-radius: 50%; animation: db1-ink 3s ease-in-out infinite;
}
.scn-debate-believers-skeptics .lamp {
  position:absolute; top:8%; left:50%; width:40px; height:60px;
  background: radial-gradient(ellipse at 50% 0%, #f0d080 0%, #c0a060 40%, transparent 70%);
  transform: translateX(-50%); filter: blur(4px);
  animation: db1-lamp 4s ease-in-out infinite alternate;
}

@keyframes db1-backdrop {
  0% { opacity:0.3; }
  50% { opacity:0.6; }
  100% { opacity:0.3; }
}
@keyframes db1-left {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(5px) rotate(-3deg); }
  50% { transform: translateX(10px) rotate(0deg); }
  75% { transform: translateX(5px) rotate(3deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes db1-right {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(-5px) rotate(3deg); }
  50% { transform: translateX(-10px) rotate(0deg); }
  75% { transform: translateX(-5px) rotate(-3deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes db1-papers {
  0% { transform: rotate(-15deg) translateY(0); }
  50% { transform: rotate(-18deg) translateY(-3px); }
  100% { transform: rotate(-15deg) translateY(0); }
}
@keyframes db1-ink {
  0% { transform: scale(1); opacity:0.6; }
  50% { transform: scale(1.4); opacity:1; }
  100% { transform: scale(1); opacity:0.6; }
}
@keyframes db1-lamp {
  0% { opacity:0.4; transform: translateX(-50%) scaleY(1); }
  50% { opacity:0.8; transform: translateX(-50%) scaleY(1.1); }
  100% { opacity:0.4; transform: translateX(-50%) scaleY(1); }
}

/* Scene: ned-proposition */
.scn-ned-proposition {
  background: linear-gradient(180deg, #6b3a2a 0%, #3a1e12 40%, #1e0e08 100%),
              radial-gradient(ellipse at 50% 60%, #e8a040 0%, transparent 50%);
}
.scn-ned-proposition .bg { position:absolute; inset:0; background: linear-gradient(180deg, rgba(60,30,15,.8) 0%, transparent 60%); }
.scn-ned-proposition .table { position:absolute; bottom:22%; left:30%; width:40%; height:12%; background: linear-gradient(180deg, #8b5a3a 0%, #5a2a1a 100%); border-radius: 8px 8px 0 0; box-shadow: 0 -8px 20px rgba(0,0,0,.6); }
.scn-ned-proposition .lamp { position:absolute; bottom:38%; left:52%; width:20px; height:20px; background: radial-gradient(circle, #ffd070 0%, #c06a20 70%); border-radius: 50%; box-shadow: 0 0 30px 10px rgba(255,200,80,.5); animation: np-glow 3s ease-in-out infinite alternate; }
.scn-ned-proposition .figure-ned { position:absolute; bottom:20%; left:38%; width:22px; height:60px; background: linear-gradient(180deg, #1a0e0a 0%, #0e0604 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: np-breathe 4s ease-in-out infinite; }
.scn-ned-proposition .figure-aronnax { position:absolute; bottom:20%; left:56%; width:18px; height:50px; background: linear-gradient(180deg, #1a0e0a 0%, #0e0604 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: np-sway 5s ease-in-out infinite; }
.scn-ned-proposition .shadow { position:absolute; bottom:20%; left:35%; width:30%; height:8px; background: rgba(0,0,0,.5); border-radius: 50%; filter: blur(4px); animation: np-shadow 6s ease-in-out infinite; }
.scn-ned-proposition .porthole { position:absolute; top:15%; right:10%; width:40px; height:40px; background: radial-gradient(circle, #1a3a5a 0%, #0a1a2a 100%); border-radius: 50%; border: 4px solid #4a3a2a; box-shadow: inset 0 0 20px rgba(0,0,0,.5); animation: np-porthole 12s ease-in-out infinite alternate; }
@keyframes np-glow { 0% { box-shadow: 0 0 20px 8px rgba(255,200,80,.4); opacity:.8 } 50% { box-shadow: 0 0 40px 15px rgba(255,200,80,.7); opacity:1 } 100% { box-shadow: 0 0 25px 10px rgba(255,200,80,.5); opacity:.9 } }
@keyframes np-breathe { 0% { transform: translateY(0) } 30% { transform: translateY(-2px) } 60% { transform: translateY(0) } 100% { transform: translateY(-1px) } }
@keyframes np-sway { 0% { transform: rotate(0deg) } 25% { transform: rotate(1deg) translateX(2px) } 50% { transform: rotate(-1deg) translateX(-2px) } 75% { transform: rotate(1deg) translateX(1px) } 100% { transform: rotate(0deg) } }
@keyframes np-shadow { 0% { transform: scaleX(1) opacity:.5 } 50% { transform: scaleX(1.2) opacity:.3 } 100% { transform: scaleX(1) opacity:.5 } }
@keyframes np-porthole { 0% { box-shadow: inset 0 0 20px rgba(0,0,0,.5) } 50% { box-shadow: inset 0 0 30px rgba(0,0,0,.7) } 100% { box-shadow: inset 0 0 20px rgba(0,0,0,.5) } }

/* Scene: rage-grows */
.scn-rage-grows {
  background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1e 40%, #050510 100%),
              radial-gradient(ellipse at 30% 70%, #6a3a1a 0%, transparent 60%);
}
.scn-rage-grows .floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #2a1a0e 0%, #1a0e06 100%); }
.scn-rage-grows .wall-left { position:absolute; top:0; left:0; width:25%; height:100%; background: linear-gradient(90deg, #1a0e06 0%, transparent 100%); }
.scn-rage-grows .wall-right { position:absolute; top:0; right:0; width:25%; height:100%; background: linear-gradient(-90deg, #1a0e06 0%, transparent 100%); }
.scn-rage-grows .lantern { position:absolute; top:30%; left:20%; width:16px; height:20px; background: radial-gradient(circle, #e8a040 0%, #6a3a10 80%); border-radius: 50%; box-shadow: 0 0 30px 10px rgba(232,160,64,.6); animation: rg-swing 2s ease-in-out infinite alternate; transform-origin: top center; }
.scn-rage-grows .figure-ned { position:absolute; bottom:18%; left:40%; width:20px; height:55px; background: linear-gradient(180deg, #0e0604 0%, #060202 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: rg-pace 1.8s ease-in-out infinite; }
.scn-rage-grows .shadow { position:absolute; bottom:18%; left:35%; width:35%; height:6px; background: rgba(0,0,0,.6); border-radius: 50%; filter: blur(5px); animation: rg-shadow 1.8s ease-in-out infinite; }
.scn-rage-grows .door { position:absolute; bottom:20%; left:65%; width:30px; height:50px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e06 100%); border-radius: 4px; border: 2px solid #5a3a2a; box-shadow: inset 0 0 10px rgba(0,0,0,.5); animation: rg-door 4s ease-in-out infinite; }
@keyframes rg-swing { 0% { transform: rotate(-8deg) } 100% { transform: rotate(8deg) } }
@keyframes rg-pace { 0% { transform: translateX(0) translateY(0) rotate(0deg) } 20% { transform: translateX(10px) translateY(-2px) rotate(2deg) } 40% { transform: translateX(20px) translateY(0) rotate(0deg) } 60% { transform: translateX(30px) translateY(-2px) rotate(-2deg) } 80% { transform: translateX(40px) translateY(0) rotate(0deg) } 100% { transform: translateX(50px) translateY(-1px) rotate(1deg) } }
@keyframes rg-shadow { 0% { transform: translateX(0) scaleX(1) } 20% { transform: translateX(10px) scaleX(.9) } 40% { transform: translateX(20px) scaleX(1) } 60% { transform: translateX(30px) scaleX(.9) } 80% { transform: translateX(40px) scaleX(1) } 100% { transform: translateX(50px) scaleX(.95) } }
@keyframes rg-door { 0%,100% { box-shadow: inset 0 0 10px rgba(0,0,0,.5) } 50% { box-shadow: inset 0 0 20px rgba(0,0,0,.8) } }

/* Scene: captain-intervenes */
.scn-captain-intervenes {
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0e 50%, #1a0e06 100%),
              radial-gradient(ellipse at 50% 40%, #e8a040 0%, transparent 60%);
}
.scn-captain-intervenes .back-wall { position:absolute; inset:0; background: linear-gradient(180deg, rgba(70,40,20,.6) 0%, transparent 100%); }
.scn-captain-intervenes .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #3a1e12 0%, #1a0e06 100%); }
.scn-captain-intervenes .table { position:absolute; bottom:18%; left:38%; width:24%; height:10%; background: linear-gradient(180deg, #6a3a1a 0%, #3a1e12 100%); border-radius: 4px; box-shadow: 0 -4px 12px rgba(0,0,0,.7); }
.scn-captain-intervenes .lamp { position:absolute; bottom:30%; left:50%; width:18px; height:18px; background: radial-gradient(circle, #ffd070 0%, #c06a20 70%); border-radius: 50%; box-shadow: 0 0 40px 15px rgba(255,200,80,.5); animation: ci-glow 2.5s ease-in-out infinite alternate; }
.scn-captain-intervenes .figure-nemo { position:absolute; bottom:15%; left:50%; width:24px; height:65px; background: linear-gradient(180deg, #0e0a06 0%, #060402 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform: translateX(-50%); transform-origin: bottom center; animation: ci-nemo 3s ease-in-out infinite; }
.scn-captain-intervenes .figure-aronnax { position:absolute; bottom:15%; left:30%; width:18px; height:50px; background: linear-gradient(180deg, #0e0a06 0%, #060402 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: ci-breathe 4s ease-in-out infinite; }
.scn-captain-intervenes .figure-ned { position:absolute; bottom:15%; left:68%; width:20px; height:55px; background: linear-gradient(180deg, #0e0a06 0%, #060402 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: ci-breathe 3.5s ease-in-out infinite; }
.scn-captain-intervenes .shadow-nemo { position:absolute; bottom:13%; left:50%; transform: translateX(-50%); width:20px; height:8px; background: rgba(0,0,0,.6); border-radius: 50%; filter: blur(3px); animation: ci-shadow 3s ease-in-out infinite; }
@keyframes ci-glow { 0% { box-shadow: 0 0 30px 10px rgba(255,200,80,.4); opacity:.9 } 50% { box-shadow: 0 0 50px 20px rgba(255,200,80,.7); opacity:1 } 100% { box-shadow: 0 0 35px 15px rgba(255,200,80,.5); opacity:.95 } }
@keyframes ci-nemo { 0% { transform: translateX(-50%) translateY(0) rotate(0deg) } 30% { transform: translateX(-50%) translateY(-2px) rotate(1deg) } 60% { transform: translateX(-50%) translateY(0) rotate(-1deg) } 100% { transform: translateX(-50%) translateY(-1px) rotate(0deg) } }
@keyframes ci-breathe { 0% { transform: translateY(0) } 25% { transform: translateY(-1px) } 50% { transform: translateY(0) } 75% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes ci-shadow { 0% { transform: translateX(-50%) scaleX(1) } 50% { transform: translateX(-50%) scaleX(1.2) } 100% { transform: translateX(-50%) scaleX(1) } }

/* Scene: captain-justification */
.scn-captain-justification {
  background: linear-gradient(180deg, #5a3a2a 0%, #3a1e12 50%, #1a0e06 100%),
              radial-gradient(ellipse at 40% 50%, #e8a040 0%, transparent 50%);
}
.scn-captain-justification .floor { position:absolute; bottom:0; left:0; right:0; height:22%; background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0e 100%); }
.scn-captain-justification .desk { position:absolute; bottom:20%; left:45%; width:30%; height:8%; background: linear-gradient(180deg, #8b5a3a 0%, #5a2a1a 100%); border-radius: 4px; box-shadow: 0 -6px 15px rgba(0,0,0,.7); }
.scn-captain-justification .globe { position:absolute; bottom:26%; left:50%; width:22px; height:22px; background: radial-gradient(circle at 40% 30%, #5a7a5a 0%, #2a4a2a 100%); border-radius: 50%; border: 1px solid #8b7a5a; box-shadow: 0 0 10px rgba(0,0,0,.5); animation: cj-rotate 20s linear infinite; }
.scn-captain-justification .figure-nemo { position:absolute; bottom:18%; left:48%; width:22px; height:55px; background: linear-gradient(180deg, #0e0a06 0%, #060402 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: cj-nemo 3.5s ease-in-out infinite; }
.scn-captain-justification .figure-aronnax { position:absolute; bottom:18%; left:68%; width:18px; height:50px; background: linear-gradient(180deg, #0e0a06 0%, #060402 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: cj-aronnax 4s ease-in-out infinite; }
.scn-captain-justification .lamp { position:absolute; bottom:32%; left:30%; width:16px; height:16px; background: radial-gradient(circle, #ffd070 0%, #c06a20 70%); border-radius: 50%; box-shadow: 0 0 30px 10px rgba(255,200,80,.5); animation: cj-lamp 2.8s ease-in-out infinite alternate; }
.scn-captain-justification .bookcase { position:absolute; bottom:25%; left:12%; width:15%; height:45%; background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0e 100%); border-radius: 4px; box-shadow: inset 0 0 10px rgba(0,0,0,.6), 0 4px 8px rgba(0,0,0,.4); animation: cj-book 6s ease-in-out infinite; }
@keyframes cj-rotate { 0% { transform: rotate(0deg) } 100% { transform: rotate(360deg) } }
@keyframes cj-nemo { 0% { transform: translateY(0) rotate(0deg) } 30% { transform: translateY(-2px) rotate(1deg) } 60% { transform: translateY(0) rotate(-1deg) } 100% { transform: translateY(-1px) rotate(0deg) } }
@keyframes cj-aronnax { 0% { transform: translateY(0) } 30% { transform: translateY(-1px) } 60% { transform: translateY(0) } 100% { transform: translateY(-1px) } }
@keyframes cj-lamp { 0% { box-shadow: 0 0 20px 8px rgba(255,200,80,.4); opacity:.85 } 50% { box-shadow: 0 0 40px 15px rgba(255,200,80,.7); opacity:1 } 100% { box-shadow: 0 0 25px 10px rgba(255,200,80,.5); opacity:.9 } }
@keyframes cj-book { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(1) } }

/* moving-boat */
.scn-moving-boat {
  background: linear-gradient(180deg, #0a1628 0%, #0d1f33 40%, #122844 100%), radial-gradient(ellipse at 50% 100%, #1a3a5a 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-moving-boat .sky-mb {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #0d1f33 0%, #142c44 70%, transparent 100%);
  animation: mb-sky 20s ease-in-out infinite alternate;
}
.scn-moving-boat .sea-mb {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
}
.scn-moving-boat .deep {
  background: linear-gradient(180deg, #0a1628 0%, #081220 100%);
  animation: mb-deep 12s ease-in-out infinite;
}
.scn-moving-boat .mid {
  background: linear-gradient(0deg, #122844 0%, #1a3a5a 40%, transparent 100%);
  mask-image: repeating-linear-gradient(90deg, transparent 0 30px, #fff 30px 60px);
  animation: mb-waves 8s ease-in-out infinite alternate;
}
.scn-moving-boat .boat {
  position: absolute; bottom: 20%; left: 10%; width: 55%; height: 18%;
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%);
  border-radius: 60% 20% 10% 10% / 80% 40% 20% 20%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.6);
  animation: mb-boat 6s ease-in-out infinite;
}
.scn-moving-boat .hull-mb {
  position: absolute; bottom: 20%; left: 12%; width: 50%; height: 12%;
  background: linear-gradient(180deg, #3a4a5a 0%, #2a3a4a 100%);
  border-radius: 50% 40% 20% 20% / 40% 30% 10% 10%;
  box-shadow: inset 0 -6px 12px rgba(0,0,0,0.5);
}
.scn-moving-boat .propeller {
  position: absolute; bottom: 17%; left: 62%; width: 8%; height: 10%;
  background: radial-gradient(circle at 50% 50%, #4a5a6a 0%, #2a3a4a 70%);
  border-radius: 50%;
  transform-origin: 50% 100%;
  animation: mb-propeller 1.2s linear infinite;
}
.scn-moving-boat .wake {
  position: absolute; bottom: 18%; left: 10%; right: 0; height: 8%;
  background: radial-gradient(ellipse at 30% 50%, rgba(200,220,240,0.2) 0%, transparent 70%);
  filter: blur(3px);
}
.scn-moving-boat .wake-1 {
  animation: mb-wake 4s ease-in-out infinite alternate;
  opacity: 0.6;
}
.scn-moving-boat .wake-2 {
  animation: mb-wake 4s ease-in-out infinite alternate-reverse;
  opacity: 0.3;
  animation-delay: -2s;
}
@keyframes mb-sky { 0% { opacity: 0.7 } 50% { opacity: 0.9 } 100% { opacity: 0.6 } }
@keyframes mb-deep { 0%,100% { transform: translateY(0) } 50% { transform: translateY(4px) } }
@keyframes mb-waves { 0% { mask-position: 0 0 } 100% { mask-position: 60px 0 } }
@keyframes mb-boat { 0%,100% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-4px) rotate(1deg) } }
@keyframes mb-propeller { 0% { transform: rotate(0deg) scaleY(1) } 25% { transform: rotate(90deg) scaleY(0.8) } 50% { transform: rotate(180deg) scaleY(1) } 75% { transform: rotate(270deg) scaleY(0.8) } 100% { transform: rotate(360deg) scaleY(1) } }
@keyframes mb-wake { 0% { transform: translateX(0) scaleX(0.8); opacity: 0.4 } 50% { transform: translateX(10px) scaleX(1.2); opacity: 0.7 } 100% { transform: translateX(20px) scaleX(0.9); opacity: 0.3 } }

/* waiting-dawn */
.scn-waiting-dawn {
  background: linear-gradient(180deg, #0a0a1a 0%, #12122a 50%, #1a1a3a 100%), radial-gradient(ellipse at 30% 20%, #2a2a5a 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-waiting-dawn .interior-wd {
  position: absolute; inset: 5% 5% 5% 5%;
  background: linear-gradient(180deg, #1a1a3a 0%, #0a0a1a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.8);
  animation: wd-interior 15s ease-in-out infinite alternate;
}
.scn-waiting-dawn .porthole {
  position: absolute; top: 15%; left: 15%; width: 40%; height: 35%;
  background: radial-gradient(circle at 50% 50%, #1a2a4a 0%, #0a0a1a 70%);
  border-radius: 50%;
  border: 4px solid #2a2a4a;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.5);
  overflow: hidden;
}
.scn-waiting-dawn .water-wd {
  position: absolute; top: 15%; left: 15%; width: 40%; height: 35%;
  background: linear-gradient(180deg, #0a1a2a 0%, #081220 100%);
  border-radius: 50%;
  animation: wd-water 8s ease-in-out infinite alternate;
}
.scn-waiting-dawn .figure-wd {
  position: absolute; bottom: 15%; left: 10%; width: 20%; height: 40%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: wd-figure 6s ease-in-out infinite;
}
.scn-waiting-dawn .bubble {
  position: absolute; left: 25%; width: 3%; height: 3%;
  background: radial-gradient(circle, rgba(100,150,200,0.3) 0%, transparent 100%);
  border-radius: 50%;
}
.scn-waiting-dawn .bubble-1 {
  top: 50%; animation: wd-bubble 4s ease-in-out infinite;
}
.scn-waiting-dawn .bubble-2 {
  top: 60%; animation: wd-bubble 4s ease-in-out infinite reverse;
  animation-delay: -2s;
  width: 2%; height: 2%;
}
.scn-waiting-dawn .mooring-ring {
  position: absolute; bottom: 10%; left: 30%; width: 8%; height: 8%;
  background: radial-gradient(circle at 50% 50%, #3a4a5a 0%, #1a2a3a 100%);
  border-radius: 50%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.6);
  animation: wd-ring 5s ease-in-out infinite alternate;
}
@keyframes wd-interior { 0%,100% { opacity: 0.9 } 50% { opacity: 1 } }
@keyframes wd-water { 0% { transform: translate(0, 0) scale(1) } 50% { transform: translate(-2px, 2px) scale(1.02) } 100% { transform: translate(0, 0) scale(1) } }
@keyframes wd-figure { 0%,100% { transform: translateX(0) translateY(0) rotate(-2deg) } 25% { transform: translateX(5px) translateY(-1px) rotate(0deg) } 50% { transform: translateX(10px) translateY(0) rotate(2deg) } 75% { transform: translateX(5px) translateY(-1px) rotate(0deg) } }
@keyframes wd-bubble { 0% { transform: translateY(0) scale(1); opacity: 0.3 } 50% { transform: translateY(-30px) scale(0.8); opacity: 0.6 } 100% { transform: translateY(-60px) scale(0.5); opacity: 0 } }
@keyframes wd-ring { 0% { transform: scale(1) } 50% { transform: scale(0.9) } 100% { transform: scale(1) } }

/* hatch-opens */
.scn-hatch-opens {
  background: linear-gradient(180deg, #0a0a1a 0%, #12122a 40%, #1a1a2a 100%), radial-gradient(ellipse at 50% 30%, #2a2a4a 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-hatch-opens .deck-ho {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #2a3a3a 0%, #1a2a2a 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.5);
}
.scn-hatch-opens .hatch-cover {
  position: absolute; bottom: 20%; left: 50%; width: 30%; height: 20%;
  background: linear-gradient(180deg, #4a5a5a 0%, #2a3a3a 100%);
  border-radius: 10% 10% 0 0;
  transform: translateX(-50%);
  box-shadow: 0 -4px 12px rgba(0,0,0,0.6);
  animation: ho-hatch 3s ease-in-out infinite alternate;
  transform-origin: bottom center;
}
.scn-hatch-opens .glow-ho {
  position: absolute; bottom: 20%; left: 50%; width: 20%; height: 15%;
  background: radial-gradient(circle at 50% 50%, #c08040 0%, #8a5a2a 50%, transparent 100%);
  border-radius: 50%;
  transform: translateX(-50%);
  box-shadow: 0 0 30px 10px rgba(192,128,64,0.4);
  animation: ho-glow 2s ease-in-out infinite alternate;
}
.scn-hatch-opens .figure-ho {
  position: absolute; bottom: 25%; width: 12%; height: 25%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
}
.scn-hatch-opens .figure-1 {
  left: 35%; animation: ho-figure1 4s ease-in-out infinite;
}
.scn-hatch-opens .figure-2 {
  right: 35%; animation: ho-figure2 4s ease-in-out infinite reverse;
  animation-delay: -2s;
}
.scn-hatch-opens .chain {
  position: absolute; top: 10%; width: 4%; height: 30%;
  background: repeating-linear-gradient(0deg, #3a4a4a 0px, #3a4a4a 4px, #2a3a3a 4px, #2a3a3a 8px);
  border-radius: 10%;
}
.scn-hatch-opens .chain-left { left: 20%; animation: ho-chain 6s ease-in-out infinite alternate; }
.scn-hatch-opens .chain-right { right: 20%; animation: ho-chain 6s ease-in-out infinite alternate-reverse; }
@keyframes ho-hatch { 0% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(-5deg) translateY(-3px); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes ho-glow { 0% { box-shadow: 0 0 20px 5px rgba(192,128,64,0.3); opacity: 0.7 } 50% { box-shadow: 0 0 40px 15px rgba(255,180,80,0.6); opacity: 1 } 100% { box-shadow: 0 0 20px 5px rgba(192,128,64,0.3); opacity: 0.8 } }
@keyframes ho-figure1 { 0%,100% { transform: translateX(0) translateY(0) rotate(-2deg) scaleY(1) } 25% { transform: translateX(8px) translateY(-2px) rotate(0deg) scaleY(0.95) } 50% { transform: translateX(16px) translateY(-1px) rotate(2deg) scaleY(1) } 75% { transform: translateX(8px) translateY(-2px) rotate(0deg) scaleY(0.95) } }
@keyframes ho-figure2 { 0%,100% { transform: translateX(0) translateY(0) rotate(2deg) scaleY(1) } 25% { transform: translateX(-8px) translateY(-2px) rotate(0deg) scaleY(0.95) } 50% { transform: translateX(-16px) translateY(-1px) rotate(-2deg) scaleY(1) } 75% { transform: translateX(-8px) translateY(-2px) rotate(0deg) scaleY(0.95) } }
@keyframes ho-chain { 0% { transform: translateY(0) } 50% { transform: translateY(5px) } 100% { transform: translateY(0) } }

/* dark-imprisonment */
.scn-dark-imprisonment {
  background: linear-gradient(180deg, #0a0a0a 0%, #121212 50%, #1a1a1a 100%), radial-gradient(ellipse at 50% 50%, #1a1a1a 0%, transparent 80%);
  position: relative;
  overflow: hidden;
}
.scn-dark-imprisonment .wall-di {
  position: absolute; bottom: 0; height: 100%;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  box-shadow: inset 0 0 20px rgba(0,0,0,0.8);
}
.scn-dark-imprisonment .wall-back {
  left: 0; right: 0;
  background: linear-gradient(180deg, #121212 0%, #080808 100%);
  animation: di-wall-back 20s ease-in-out infinite alternate;
}
.scn-dark-imprisonment .wall-left {
  left: 0; width: 20%;
  transform: skewY(10deg);
  transform-origin: bottom left;
  animation: di-wall-side 15s ease-in-out infinite alternate;
}
.scn-dark-imprisonment .wall-right {
  right: 0; width: 20%;
  transform: skewY(-10deg);
  transform-origin: bottom right;
  animation: di-wall-side 15s ease-in-out infinite alternate-reverse;
}
.scn-dark-imprisonment .door-sl {
  position: absolute; bottom: 0; left: 45%; width: 10%; height: 40%;
  background: linear-gradient(180deg, #2a2a2a 0%, #0a0a0a 100%);
  border-left: 2px solid #3a3a3a;
  border-right: 2px solid #3a3a3a;
  box-shadow: inset 0 0 10px black;
  animation: di-door 10s ease-in-out infinite alternate;
}
.scn-dark-imprisonment .figure-di {
  position: absolute; bottom: 5%; left: 38%; width: 15%; height: 45%;
  background: linear-gradient(180deg, #0a0a0a 0%, #050505 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  box-shadow: 0 0 5px rgba(255,255,255,0.05);
  animation: di-figure 8s ease-in-out infinite;
}
.scn-dark-imprisonment .chain-di {
  position: absolute; top: 10%; left: 30%; width: 40%; height: 5%;
  background: repeating-linear-gradient(90deg, #2a2a2a 0px, #2a2a2a 6px, #1a1a1a 6px, #1a1a1a 12px);
  border-radius: 10%;
  animation: di-chain 12s ease-in-out infinite alternate;
}
.scn-dark-imprisonment .grate-floor {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 10%;
  background: repeating-linear-gradient(90deg, #1a1a1a 0px, #1a1a1a 10px, #0a0a0a 10px, #0a0a0a 12px);
  border-top: 2px solid #2a2a2a;
  animation: di-grate 6s ease-in-out infinite alternate;
}
@keyframes di-wall-back { 0%,100% { opacity: 0.9 } 50% { opacity: 1 } }
@keyframes di-wall-side { 0% { transform: skewY(10deg) scaleY(1) } 50% { transform: skewY(8deg) scaleY(0.98) } 100% { transform: skewY(10deg) scaleY(1) } }
@keyframes di-door { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.95) translateY(2px); } 100% { transform: scaleY(1); } }
@keyframes di-figure { 0%,100% { transform: translateX(0) translateY(0) rotate(-1deg) } 25% { transform: translateX(3px) translateY(-1px) rotate(0deg) } 50% { transform: translateX(6px) translateY(0) rotate(1deg) } 75% { transform: translateX(3px) translateY(-1px) rotate(0deg) } }
@keyframes di-chain { 0% { transform: translateY(0) scaleX(1) } 50% { transform: translateY(2px) scaleX(0.95) } 100% { transform: translateY(0) scaleX(1) } }
@keyframes di-grate { 0% { background-position: 0 0 } 50% { background-position: 12px 0 } 100% { background-position: 0 0 } }

/* scene exhaustion */
.scn-exhaustion {
  background: linear-gradient(180deg, #0a0a1a 0%, #101020 60%, #0d0d2e 100%),
              radial-gradient(circle at 50% 20%, #1a1a3a 0%, transparent 80%);
}
.scn-exhaustion .sky { position:absolute; inset:0 0 55% 0; background:linear-gradient(180deg, #141430 0%, #0a0a1a 100%); }
.scn-exhaustion .moon { position:absolute; top:12%; left:70%; width:40px; height:40px; background:radial-gradient(circle, #d0d0e0 0%, #a0a0c0 60%, transparent 80%); border-radius:50%; box-shadow:0 0 30px 15px rgba(160,160,200,0.3); animation:ex-moon 8s ease-in-out infinite alternate; }
.scn-exhaustion .water { position:absolute; bottom:0; left:0; right:0; height:55%; background:linear-gradient(180deg, #0a0a2a 0%, #050518 100%); animation:ex-water 6s ease-in-out infinite; }
.scn-exhaustion .frigate { position:absolute; bottom:45%; left:10%; width:120px; height:30px; background:linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius:30% 30% 10% 10%; box-shadow:0 -4px 8px rgba(0,0,0,0.5); transform-origin:bottom center; animation:ex-ship 10s ease-in-out infinite; }
.scn-exhaustion .frigate::after { content:''; position:absolute; top:-25px; left:30px; width:50px; height:30px; background:linear-gradient(180deg, #3a3a4a 0%, transparent 100%); clip-path:polygon(0% 100%, 50% 0%, 100% 100%); }
.scn-exhaustion .figure-left { position:absolute; bottom:30%; left:35%; width:12px; 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:ex-figure 4s ease-in-out infinite; }
.scn-exhaustion .figure-right { position:absolute; bottom:28%; left:50%; width:12px; 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:ex-figure 4.5s ease-in-out infinite 0.5s; }
.scn-exhaustion .sparkle { position:absolute; bottom:40%; left:60%; width:4px; height:4px; background:#c0c0d0; border-radius:50%; animation:ex-sparkle 3s ease-in-out infinite; }
@keyframes ex-moon { 0% { opacity:0.7; transform:scale(0.95); } 50% { opacity:1; transform:scale(1); } 100% { opacity:0.8; transform:scale(0.96); } }
@keyframes ex-water { 0% { transform:translateY(0); } 50% { transform:translateY(3px); } 100% { transform:translateY(0); } }
@keyframes ex-ship { 0% { transform:rotate(0deg) translateY(0); } 50% { transform:rotate(2deg) translateY(-2px); } 100% { transform:rotate(-1deg) translateY(0); } }
@keyframes ex-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 ex-sparkle { 0% { opacity:0; transform:scale(0); } 50% { opacity:1; transform:scale(1.5); } 100% { opacity:0; transform:scale(0); } }

/* scene voice-answers */
.scn-voice-answers {
  background: linear-gradient(180deg, #0c0c24 0%, #1a1a3a 40%, #0e0e28 100%),
              radial-gradient(circle at 30% 70%, #2a2a4a 0%, transparent 80%);
}
.scn-voice-answers .sky { position:absolute; inset:0 0 50% 0; background:linear-gradient(180deg, #12122e 0%, #0a0a1e 100%); }
.scn-voice-answers .moon { position:absolute; top:15%; left:20%; width:36px; height:36px; background:radial-gradient(circle, #d8d8e8 0%, #a8a8c8 50%, transparent 80%); border-radius:50%; box-shadow:0 0 25px 10px rgba(168,168,200,0.4); animation:va-moon 6s ease-in-out infinite alternate; }
.scn-voice-answers .water { position:absolute; bottom:0; left:0; right:0; height:50%; background:linear-gradient(180deg, #0e0e2c 0%, #06061a 100%); animation:va-water 4s ease-in-out infinite; }
.scn-voice-answers .figure-conseil { position:absolute; bottom:30%; left:45%; width:14px; height:32px; background:linear-gradient(180deg, #1c1c30 0%, #0a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:va-conseil 3s ease-in-out infinite; }
.scn-voice-answers .figure-conseil::after { content:''; position:absolute; top:-10px; left:4px; width:6px; height:8px; background:#1a1a2e; border-radius:50%; }
.scn-voice-answers .figure-narrator { position:absolute; bottom:25%; left:55%; width:13px; height:28px; background:linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:va-narrator 3.5s ease-in-out infinite 1s; }
.scn-voice-answers .voice-light { position:absolute; bottom:35%; left:30%; width:10px; height:10px; background:radial-gradient(circle, #e0e0f0 0%, #a0a0c0 60%, transparent 100%); border-radius:50%; box-shadow:0 0 20px 8px rgba(160,160,192,0.5); animation:va-light 2s ease-in-out infinite; }
@keyframes va-moon { 0% { opacity:0.8; transform:scale(0.98); } 50% { opacity:1; transform:scale(1.02); } 100% { opacity:0.85; transform:scale(0.99); } }
@keyframes va-water { 0% { transform:translateY(0); } 50% { transform:translateY(4px); } 100% { transform:translateY(0); } }
@keyframes va-conseil { 0% { transform:translateY(0) rotate(0deg); } 30% { transform:translateY(-4px) rotate(3deg); } 60% { transform:translateY(-2px) rotate(-2deg); } 100% { transform:translateY(0) rotate(0deg); } }
@keyframes va-narrator { 0% { transform:translateY(0) rotate(0deg) scaleY(1); } 25% { transform:translateY(2px) rotate(2deg) scaleY(0.95); } 50% { transform:translateY(4px) rotate(-1deg) scaleY(0.9); } 75% { transform:translateY(2px) rotate(1deg) scaleY(0.95); } 100% { transform:translateY(0) rotate(0deg) scaleY(1); } }
@keyframes va-light { 0% { opacity:0; transform:scale(0); } 40% { opacity:0.8; transform:scale(1.2); } 100% { opacity:0.2; transform:scale(0.5); } }

/* scene on-the-monster */
.scn-on-the-monster {
  background: linear-gradient(180deg, #0e0e28 0%, #161638 50%, #0a0a1e 100%),
              radial-gradient(circle at 50% 10%, #2a2a4a 0%, transparent 90%);
}
.scn-on-the-monster .sky { position:absolute; inset:0 0 45% 0; background:linear-gradient(180deg, #181840 0%, #0c0c28 100%); }
.scn-on-the-monster .moon { position:absolute; top:18%; left:60%; width:40px; height:40px; background:radial-gradient(circle, #d0d0e0 0%, #b0b0d0 60%, transparent 80%); border-radius:50%; box-shadow:0 0 30px 12px rgba(176,176,208,0.3); animation:om-moon 10s ease-in-out infinite alternate; }
.scn-on-the-monster .water { position:absolute; bottom:0; left:0; right:0; height:45%; background:linear-gradient(180deg, #121230 0%, #080820 100%); animation:om-water 7s ease-in-out infinite; }
.scn-on-the-monster .surface { position:absolute; bottom:10%; left:15%; right:15%; height:40%; background:linear-gradient(180deg, #3a3a4e 0%, #2a2a3a 100%); border-radius:8% 8% 0 0; box-shadow:0 -6px 20px rgba(0,0,0,0.6); animation:om-surface 15s ease-in-out infinite; }
.scn-on-the-monster .rivet-1 { position:absolute; bottom:35%; left:22%; width:8px; height:8px; background:#4a4a5e; border-radius:50%; box-shadow:0 0 4px rgba(0,0,0,0.5); animation:om-rivet 5s ease-in-out infinite; }
.scn-on-the-monster .rivet-2 { position:absolute; bottom:33%; left:40%; width:8px; height:8px; background:#4a4a5e; border-radius:50%; box-shadow:0 0 4px rgba(0,0,0,0.5); animation:om-rivet 5s ease-in-out infinite 1s; }
.scn-on-the-monster .rivet-3 { position:absolute; bottom:31%; left:60%; width:8px; height:8px; background:#4a4a5e; border-radius:50%; box-shadow:0 0 4px rgba(0,0,0,0.5); animation:om-rivet 5s ease-in-out infinite 2s; }
.scn-on-the-monster .figure-prof { position:absolute; bottom:15%; left:30%; width:16px; height:34px; background:linear-gradient(180deg, #1a1a30 0%, #0a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:om-figure 8s ease-in-out infinite; }
.scn-on-the-monster .figure-conseil { position:absolute; bottom:15%; left:45%; width:15px; height:32px; background:linear-gradient(180deg, #1c1c32 0%, #0a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:om-figure 8s ease-in-out infinite 2s; }
.scn-on-the-monster .figure-ned { position:absolute; bottom:15%; left:60%; width:18px; height:36px; background:linear-gradient(180deg, #1e1e34 0%, #0a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:om-figure 8s ease-in-out infinite 4s; }
@keyframes om-moon { 0% { opacity:0.8; transform:scale(0.97); } 50% { opacity:1; transform:scale(1); } 100% { opacity:0.85; transform:scale(0.98); } }
@keyframes om-water { 0% { transform:translateY(0); } 50% { transform:translateY(2px); } 100% { transform:translateY(0); } }
@keyframes om-surface { 0% { transform:translateY(0); } 50% { transform:translateY(-3px); } 100% { transform:translateY(0); } }
@keyframes om-rivet { 0% { opacity:0.7; transform:scale(1); } 50% { opacity:1; transform:scale(1.3); } 100% { opacity:0.7; transform:scale(1); } }
@keyframes om-figure { 0% { transform:translateX(0) rotate(0deg); } 25% { transform:translateX(4px) rotate(2deg); } 50% { transform:translateX(0) rotate(0deg); } 75% { transform:translateX(-4px) rotate(-2deg); } 100% { transform:translateX(0) rotate(0deg); } }

/* scene metal-monster */
.scn-metal-monster {
  background: linear-gradient(180deg, #0c0c20 0%, #141430 40%, #08081a 100%),
              radial-gradient(ellipse at 50% 20%, #1c1c3a 0%, transparent 85%);
}
.scn-metal-monster .sky { position:absolute; inset:0 0 50% 0; background:linear-gradient(180deg, #141430 0%, #08081a 100%); }
.scn-metal-monster .moon { position:absolute; top:12%; left:50%; width:44px; height:44px; background:radial-gradient(circle, #d8d8e8 0%, #b0b0d0 50%, transparent 75%); border-radius:50%; box-shadow:0 0 40px 18px rgba(176,176,208,0.4); animation:mm-moon 9s ease-in-out infinite alternate; }
.scn-metal-monster .water { position:absolute; bottom:0; left:0; right:0; height:50%; background:linear-gradient(180deg, #10102a 0%, #06061a 100%); animation:mm-water 5s ease-in-out infinite; }
.scn-metal-monster .metal-plate { position:absolute; bottom:5%; left:8%; right:8%; height:50%; background:linear-gradient(180deg, #4a4a5e 0%, #3a3a4e 50%, #2a2a3a 100%); border-radius:6% 6% 0 0; box-shadow:inset 0 4px 15px rgba(0,0,0,0.5), 0 -4px 10px rgba(255,255,255,0.1); animation:mm-plate 3s ease-in-out infinite; }
.scn-metal-monster .rivet-row { position:absolute; bottom:30%; left:12%; right:12%; height:6px; background: repeating-linear-gradient(90deg, #5a5a6e 0px, #5a5a6e 6px, transparent 6px, transparent 20px); animation:mm-rivets 4s ease-in-out infinite; }
.scn-metal-monster .boot { position:absolute; bottom:10%; left:45%; width:20px; height:12px; background:linear-gradient(180deg, #1a1a2e 0%, #0e0e1a 100%); border-radius:30% 30% 10% 10%; transform:rotate(10deg); animation:mm-boot 2s ease-in-out infinite; }
.scn-metal-monster .figure { position:absolute; bottom:10%; left:40%; width:16px; height:40px; background:linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation:mm-figure 4s ease-in-out infinite; }
.scn-metal-monster .shadow { position:absolute; bottom:4%; left:38%; right:38%; height:8px; background:radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 100%); animation:mm-shadow 4s ease-in-out infinite; }
@keyframes mm-moon { 0% { opacity:0.75; transform:scale(0.95); } 50% { opacity:1; transform:scale(1.02); } 100% { opacity:0.8; transform:scale(0.97); } }
@keyframes mm-water { 0% { transform:translateY(0); } 50% { transform:translateY(3px); } 100% { transform:translateY(0); } }
@keyframes mm-plate { 0% { background-position:0 0; } 50% { background-position:0 2px; } 100% { background-position:0 0; } }
@keyframes mm-rivets { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes mm-boot { 0% { transform:rotate(10deg) translateY(0); } 50% { transform:rotate(15deg) translateY(-1px); } 100% { transform:rotate(10deg) translateY(0); } }
@keyframes mm-figure { 0% { transform:translateY(0) rotate(0deg); } 25% { transform:translateY(-1px) rotate(2deg); } 50% { transform:translateY(0) rotate(0deg); } 75% { transform:translateY(-1px) rotate(-2deg); } 100% { transform:translateY(0) rotate(0deg); } }
@keyframes mm-shadow { 0% { transform:scaleX(1); opacity:0.6; } 50% { transform:scaleX(0.9); opacity:0.8; } 100% { transform:scaleX(1); opacity:0.6; } }

.scn-captain-explains-collection {
  background: linear-gradient(180deg, #e8d5b0 0%, #c8a87a 40%, #a08050 100%), radial-gradient(ellipse at 60% 20%, #f0e0c0 0%, transparent 60%);
}
.scn-captain-explains-collection .table {
  position: absolute; bottom: 10%; left: 10%; right: 10%; height: 40%;
  background: linear-gradient(180deg, #b0966a 0%, #7a6040 100%);
  border-radius: 8% 8% 0 0; box-shadow: 0 -6px 20px rgba(0,0,0,0.3);
  animation: cec-table 12s ease-in-out infinite alternate;
}
.scn-captain-explains-collection .shell-1 {
  position: absolute; bottom: 35%; left: 20%; width: 30px; height: 20px;
  background: radial-gradient(circle at 30% 30%, #f5e0b0 0%, #c8a060 70%);
  border-radius: 50% 50% 40% 40%; transform: rotate(-15deg);
  animation: cec-shell 6s ease-in-out infinite alternate, cec-float 8s ease-in-out infinite;
}
.scn-captain-explains-collection .shell-2 {
  position: absolute; bottom: 33%; left: 35%; width: 25px; height: 18px;
  background: radial-gradient(circle at 30% 30%, #f0d090 0%, #b88550 70%);
  border-radius: 50% 40% 50% 40%; transform: rotate(10deg);
  animation: cec-shell 6s ease-in-out infinite alternate-reverse, cec-float 8s ease-in-out 1.5s infinite;
}
.scn-captain-explains-collection .shell-3 {
  position: absolute; bottom: 37%; left: 50%; width: 35px; height: 22px;
  background: radial-gradient(circle at 30% 30%, #ffeac0 0%, #d4a86a 70%);
  border-radius: 40% 50% 50% 40%; transform: rotate(-5deg);
  animation: cec-shell 6s ease-in-out infinite alternate, cec-float 8s ease-in-out 0.8s infinite;
}
.scn-captain-explains-collection .captain {
  position: absolute; bottom: 25%; right: 12%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cec-captain 6s ease-in-out infinite alternate;
}
.scn-captain-explains-collection .lamp {
  position: absolute; top: 15%; left: 45%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #d4a060 0%, #a08040 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 30px 15px #ffe080, 0 0 60px 30px rgba(255,224,128,0.3);
  animation: cec-lamp-glow 4s ease-in-out infinite alternate;
}
.scn-captain-explains-collection .glow {
  position: absolute; top: 0; left: 0; right: 0; bottom: 0;
  background: radial-gradient(ellipse at 45% 20%, rgba(255,224,128,0.4) 0%, transparent 60%);
  animation: cec-glow-pulse 8s ease-in-out infinite alternate;
  pointer-events: none;
}
@keyframes cec-table { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes cec-shell { 0% { transform: rotate(-15deg) scale(1); } 50% { transform: rotate(-5deg) scale(1.05); } 100% { transform: rotate(-15deg) scale(1); } }
@keyframes cec-float { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes cec-captain { 0% { transform: rotate(-3deg) scaleX(1); } 50% { transform: rotate(3deg) scaleX(0.95); } 100% { transform: rotate(-3deg) scaleX(1); } }
@keyframes cec-lamp-glow { 0% { box-shadow: 0 0 20px 10px #ffd070, 0 0 40px 20px rgba(255,208,112,0.2); } 50% { box-shadow: 0 0 40px 20px #ffe090, 0 0 80px 40px rgba(255,224,144,0.4); } 100% { box-shadow: 0 0 25px 12px #ffd070, 0 0 50px 25px rgba(255,208,112,0.25); } }
@keyframes cec-glow-pulse { 0% { opacity: 0.6; } 50% { opacity: 0.9; } 100% { opacity: 0.7; } }

.scn-tour-offer {
  background: linear-gradient(180deg, #f0e0c0 0%, #c8b090 40%, #a08060 100%), radial-gradient(ellipse at 70% 30%, #f5e8d0 0%, transparent 60%);
}
.scn-tour-offer .arch {
  position: absolute; top: 10%; left: 15%; right: 15%; height: 40%;
  background: linear-gradient(180deg, #c8a87a 0%, #a08050 100%);
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.2);
  animation: toff-arch 20s ease-in-out infinite alternate;
}
.scn-tour-offer .wall-left {
  position: absolute; top: 0; left: 0; width: 15%; bottom: 0;
  background: linear-gradient(180deg, #b89a70 0%, #9a7650 100%);
  animation: toff-wall-fade 15s ease-in-out infinite alternate;
}
.scn-tour-offer .wall-right {
  position: absolute; top: 0; right: 0; width: 15%; bottom: 0;
  background: linear-gradient(180deg, #b89a70 0%, #9a7650 100%);
  animation: toff-wall-fade 15s ease-in-out 5s infinite alternate;
}
.scn-tour-offer .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #7a6040 0%, #4a3820 100%);
  border-radius: 10% 10% 0 0;
  animation: toff-floor 12s ease-in-out infinite alternate;
}
.scn-tour-offer .figure {
  position: absolute; bottom: 18%; left: 50%; width: 45px; height: 65px;
  background: linear-gradient(180deg, #4a3a2a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: toff-figure 5s ease-in-out infinite alternate, toff-step 8s ease-in-out infinite;
}
.scn-tour-offer .light-source {
  position: absolute; top: 15%; left: 30%; width: 30px; height: 40px;
  background: radial-gradient(circle, #ffe080 0%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 50px 30px rgba(255,224,128,0.3);
  animation: toff-light 3s ease-in-out infinite alternate;
}
.scn-tour-offer .shadow {
  position: absolute; bottom: 18%; left: 40%; width: 60px; height: 20px;
  background: rgba(0,0,0,0.2);
  border-radius: 50%;
  filter: blur(8px);
  animation: toff-shadow 5s ease-in-out infinite alternate;
}
@keyframes toff-arch { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes toff-wall-fade { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes toff-floor { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.98); } 100% { transform: scaleY(1); } }
@keyframes toff-figure { 0% { transform: translateX(-50%) rotate(-2deg) scaleX(1); } 50% { transform: translateX(-48%) rotate(2deg) scaleX(0.95); } 100% { transform: translateX(-50%) rotate(0deg) scaleX(1); } }
@keyframes toff-step { 0% { transform: translateY(0); } 25% { transform: translateY(-3px); } 50% { transform: translateY(0); } 75% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes toff-light { 0% { opacity: 0.8; transform: scale(1); } 50% { opacity: 1; transform: scale(1.1); } 100% { opacity: 0.9; transform: scale(0.95); } }
@keyframes toff-shadow { 0% { transform: scaleX(1) translateX(0); opacity: 0.3; } 50% { transform: scaleX(0.9) translateX(5px); opacity: 0.2; } 100% { transform: scaleX(1) translateX(0); opacity: 0.3; } }

.scn-cabin-adjoining {
  background: linear-gradient(180deg, #e0d0b8 0%, #c0b098 50%, #a09078 100%), radial-gradient(ellipse at 30% 50%, #f0e0c8 0%, transparent 70%);
}
.scn-cabin-adjoining .bed {
  position: absolute; bottom: 15%; left: 10%; width: 40%; height: 30%;
  background: linear-gradient(180deg, #a08868 0%, #786048 100%);
  border-radius: 12% 12% 6% 6%;
  box-shadow: inset 0 4px 10px rgba(0,0,0,0.2);
  animation: cadj-bed 10s ease-in-out infinite alternate;
}
.scn-cabin-adjoining .desk {
  position: absolute; bottom: 18%; right: 8%; width: 35%; height: 25%;
  background: linear-gradient(180deg, #b09878 0%, #886850 100%);
  border-radius: 4%;
  box-shadow: 0 6px 15px rgba(0,0,0,0.2);
  animation: cadj-desk 8s ease-in-out infinite alternate;
}
.scn-cabin-adjoining .lamp {
  position: absolute; top: 30%; right: 12%; width: 18px; height: 28px;
  background: linear-gradient(180deg, #d4a060 0%, #a08040 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 20px 8px #ffe080, 0 0 40px 16px rgba(255,224,128,0.3);
  animation: cadj-lamp 5s ease-in-out infinite alternate;
}
.scn-cabin-adjoining .window {
  position: absolute; top: 12%; left: 20%; width: 80px; height: 60px;
  background: radial-gradient(circle at 30% 40%, #f0f0e8 0%, #b0b0a0 100%);
  border: 4px solid #7a6a50;
  border-radius: 4%;
  box-shadow: inset 0 0 20px rgba(255,255,240,0.4);
  animation: cadj-window 12s ease-in-out infinite alternate;
}
.scn-cabin-adjoining .door {
  position: absolute; bottom: 30%; left: 55%; width: 20%; height: 50%;
  background: linear-gradient(180deg, #6a5a40 0%, #4a3a28 100%);
  border-radius: 6% 6% 0 0;
  box-shadow: -4px 0 8px rgba(0,0,0,0.3);
  animation: cadj-door 15s ease-in-out infinite alternate;
}
.scn-cabin-adjoining .figure {
  position: absolute; bottom: 12%; left: 35%; width: 35px; height: 55px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-2deg);
  animation: cadj-figure 6s ease-in-out infinite alternate;
}
.scn-cabin-adjoining .rug {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 12%;
  background: linear-gradient(90deg, #8a7a5a 0%, #b09878 30%, #8a7a5a 60%, #6a5a3a 100%);
  border-radius: 50% / 20% 20% 0 0;
  filter: blur(2px);
  animation: cadj-rug 14s ease-in-out infinite alternate;
}
@keyframes cadj-bed { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(0.98); } 100% { transform: translateY(0) scale(1); } }
@keyframes cadj-desk { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.95; } }
@keyframes cadj-lamp { 0% { box-shadow: 0 0 12px 4px #ffd070, 0 0 20px 8px rgba(255,208,112,0.2); } 50% { box-shadow: 0 0 24px 10px #ffe090, 0 0 40px 16px rgba(255,224,144,0.4); } 100% { box-shadow: 0 0 16px 6px #ffd070, 0 0 30px 12px rgba(255,208,112,0.3); } }
@keyframes cadj-window { 0% { opacity: 0.8; background-size: 100% 100%; } 50% { opacity: 1; background-size: 105% 105%; } 100% { opacity: 0.85; background-size: 100% 100%; } }
@keyframes cadj-door { 0% { transform: translateX(0); } 50% { transform: translateX(-2px); } 100% { transform: translateX(0); } }
@keyframes cadj-figure { 0% { transform: rotate(-2deg) scaleX(1); } 50% { transform: rotate(1deg) scaleX(0.96); } 100% { transform: rotate(-2deg) scaleX(1); } }
@keyframes cadj-rug { 0% { transform: scaleX(0.98); opacity: 0.8; } 50% { transform: scaleX(1.02); opacity: 1; } 100% { transform: scaleX(0.98); opacity: 0.85; } }

.scn-navigation-instruments {
  background: linear-gradient(180deg, #d8c8a8 0%, #b8a888 50%, #988868 100%), radial-gradient(ellipse at 40% 30%, #f0e0c8 0%, transparent 60%);
}
.scn-navigation-instruments .panel {
  position: absolute; bottom: 10%; left: 10%; right: 10%; height: 50%;
  background: linear-gradient(180deg, #7a6848 0%, #5a4828 100%);
  border-radius: 12% 12% 6% 6%;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.3), 0 10px 30px rgba(0,0,0,0.2);
  animation: nav-panel 10s ease-in-out infinite alternate;
}
.scn-navigation-instruments .dial-1 {
  position: absolute; bottom: 35%; left: 20%; width: 50px; height: 50px;
  background: radial-gradient(circle at 40% 40%, #f0e0c0 0%, #a08060 60%, #604830 100%);
  border-radius: 50%;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.5), 0 4px 10px rgba(0,0,0,0.3);
  animation: nav-dial 12s ease-in-out infinite alternate, nav-float 15s ease-in-out infinite;
}
.scn-navigation-instruments .dial-2 {
  position: absolute; bottom: 35%; right: 20%; width: 50px; height: 50px;
  background: radial-gradient(circle at 40% 40%, #f0e0c0 0%, #a08060 60%, #604830 100%);
  border-radius: 50%;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.5), 0 4px 10px rgba(0,0,0,0.3);
  animation: nav-dial 12s ease-in-out infinite alternate-reverse, nav-float 15s ease-in-out 7s infinite;
}
.scn-navigation-instruments .needle {
  position: absolute; bottom: 50%; left: 50%; width: 4px; height: 40px;
  background: linear-gradient(180deg, #c8a060 0%, #806040 100%);
  border-radius: 2px;
  transform-origin: bottom center;
  transform: translateX(-50%) rotate(45deg);
  animation: nav-needle 8s ease-in-out infinite alternate;
}
.scn-navigation-instruments .glass-case {
  position: absolute; bottom: 22%; left: 15%; right: 15%; height: 30%;
  background: rgba(200,180,160,0.15);
  border: 2px solid #887868;
  border-radius: 8px;
  box-shadow: inset 0 0 20px rgba(255,255,240,0.2);
  animation: nav-glass 6s ease-in-out infinite alternate;
}
.scn-navigation-instruments .hand {
  position: absolute; bottom: 18%; left: 45%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #4a3a2a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 80% 80% 50% 50%;
  transform-origin: bottom center;
  transform: rotate(-10deg);
  animation: nav-hand 5s ease-in-out infinite alternate;
}
@keyframes nav-panel { 0% { opacity: 0.9; transform: scaleY(1); } 50% { opacity: 1; transform: scaleY(0.98); } 100% { opacity: 0.95; transform: scaleY(1); } }
@keyframes nav-dial { 0% { transform: rotate(-5deg) scale(1); } 50% { transform: rotate(5deg) scale(1.03); } 100% { transform: rotate(-5deg) scale(1); } }
@keyframes nav-float { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes nav-needle { 0% { transform: translateX(-50%) rotate(30deg); } 50% { transform: translateX(-50%) rotate(50deg); } 100% { transform: translateX(-50%) rotate(35deg); } }
@keyframes nav-glass { 0% { opacity: 0.6; } 50% { opacity: 0.9; } 100% { opacity: 0.7; } }
@keyframes nav-hand { 0% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(5deg) translateY(-2px); } 100% { transform: rotate(-10deg) translateY(0); } }

.scn-german-attempt {
  background:
    linear-gradient(180deg, #f5e6c8 0%, #e3cfa8 50%, #c8b088 100%),
    radial-gradient(ellipse at 50% 70%, #e8d4b0 0%, transparent 60%);
}
.scn-german-attempt .room-bg {
  position: absolute; inset: 0 0 0 0;
  background: linear-gradient(180deg, #d8c4a0 0%, #b8a080 100%);
  animation: ga-room 12s ease-in-out infinite alternate;
}
.scn-german-attempt .table {
  position: absolute; bottom: 12%; left: 20%; width: 60%; height: 8%;
  background: linear-gradient(180deg, #6a4a32 0%, #4a3020 100%);
  border-radius: 4px;
  box-shadow: 0 8px 16px rgba(0,0,0,0.3);
  animation: ga-table 8s ease-in-out infinite;
}
.scn-german-attempt .chair-left {
  position: absolute; bottom: 18%; left: 25%; width: 12%; height: 14%;
  background: linear-gradient(180deg, #5a3e2e 0%, #3a2a1a 100%);
  border-radius: 6% 6% 10% 10% / 20% 20% 40% 40%;
  box-shadow: 4px 0 6px rgba(0,0,0,0.2);
  animation: ga-chair-l 6s ease-in-out infinite alternate;
}
.scn-german-attempt .chair-right {
  position: absolute; bottom: 18%; right: 25%; width: 12%; height: 14%;
  background: linear-gradient(180deg, #5a3e2e 0%, #3a2a1a 100%);
  border-radius: 6% 6% 10% 10% / 20% 20% 40% 40%;
  box-shadow: -4px 0 6px rgba(0,0,0,0.2);
  animation: ga-chair-r 6s ease-in-out infinite alternate;
}
.scn-german-attempt .figure-left {
  position: absolute; bottom: 18%; left: 30%; width: 10%; height: 22%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ga-fig-l 4s ease-in-out infinite;
}
.scn-german-attempt .figure-right {
  position: absolute; bottom: 18%; right: 30%; width: 10%; height: 22%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ga-fig-r 4.5s ease-in-out infinite;
}
.scn-german-attempt .lamp {
  position: absolute; top: 10%; left: 50%; width: 8%; height: 12%;
  background: radial-gradient(circle, #f5d080 0%, #d4a050 70%, #a07030 100%);
  border-radius: 50% 50% 10% 10% / 60% 60% 20% 20%;
  box-shadow: 0 0 40px 20px rgba(200,150,80,0.5);
  animation: ga-lamp 3s ease-in-out infinite alternate;
}
.scn-german-attempt .shadow-line {
  position: absolute; bottom: 10%; left: 10%; width: 80%; height: 2%;
  background: linear-gradient(90deg, transparent 0%, rgba(0,0,0,0.2) 30%, rgba(0,0,0,0.2) 70%, transparent 100%);
  animation: ga-shadow 10s ease-in-out infinite;
}
@keyframes ga-room { 0% { opacity: 0.9; transform: scale(1); } 50% { opacity: 1; transform: scale(1.02); } 100% { opacity: 0.85; transform: scale(1); } }
@keyframes ga-table { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes ga-chair-l { 0% { transform: rotate(0deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(0deg); } }
@keyframes ga-chair-r { 0% { transform: rotate(0deg); } 50% { transform: rotate(-2deg); } 100% { transform: rotate(0deg); } }
@keyframes ga-fig-l { 0% { transform: translateX(0) translateY(0) rotate(-1deg); } 25% { transform: translateX(4px) translateY(-1px) rotate(1deg); } 50% { transform: translateX(0) translateY(0) rotate(0deg); } 75% { transform: translateX(-3px) translateY(-1px) rotate(-1deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes ga-fig-r { 0% { transform: translateX(0) translateY(0) rotate(1deg); } 25% { transform: translateX(-4px) translateY(-1px) rotate(-1deg); } 50% { transform: translateX(0) translateY(0) rotate(0deg); } 75% { transform: translateX(3px) translateY(-1px) rotate(1deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes ga-lamp { 0% { box-shadow: 0 0 30px 15px rgba(200,150,80,0.4); opacity: 0.9; } 50% { box-shadow: 0 0 50px 25px rgba(200,150,80,0.7); opacity: 1; } 100% { box-shadow: 0 0 35px 18px rgba(200,150,80,0.5); opacity: 0.95; } }
@keyframes ga-shadow { 0% { opacity: 0.3; } 50% { opacity: 0.7; } 100% { opacity: 0.3; } }

.scn-strangers-withdraw {
  background:
    linear-gradient(180deg, #c8b090 0%, #a88060 50%, #806050 100%),
    radial-gradient(ellipse at 50% 80%, #b09070 0%, transparent 60%);
}
.scn-strangers-withdraw .corridor {
  position: absolute; inset: 0 0 0 0;
  background: linear-gradient(90deg, #a08060 0%, #b09070 30%, #b09070 70%, #a08060 100%);
  animation: sw-corridor 15s ease-in-out infinite;
}
.scn-strangers-withdraw .door {
  position: absolute; bottom: 10%; left: 40%; width: 20%; height: 50%;
  background: linear-gradient(180deg, #6a5030 0%, #4a3020 100%);
  border: 4px solid #3a2010;
  border-radius: 4px;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.3);
  animation: sw-door 6s ease-in-out infinite alternate;
}
.scn-strangers-withdraw .figure-a {
  position: absolute; bottom: 8%; left: 35%; width: 10%; height: 35%;
  background: linear-gradient(180deg, #1a2a2a 0%, #0a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: sw-fig-a 4s ease-in-out infinite;
}
.scn-strangers-withdraw .figure-b {
  position: absolute; bottom: 8%; right: 35%; width: 10%; height: 35%;
  background: linear-gradient(180deg, #1a2a2a 0%, #0a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: sw-fig-b 4.5s ease-in-out infinite;
}
.scn-strangers-withdraw .door-handle {
  position: absolute; bottom: 45%; left: 48%; width: 4%; height: 6%;
  background: radial-gradient(circle, #b0a090 0%, #807050 100%);
  border-radius: 30%;
  box-shadow: 2px 2px 4px rgba(0,0,0,0.4);
  animation: sw-handle 3s ease-in-out infinite alternate;
}
.scn-strangers-withdraw .floor-tile {
  position: absolute; bottom: 0%; left: 0%; width: 100%; height: 10%;
  background: repeating-linear-gradient(90deg, #705030 0px, #705030 4px, #806040 4px, #806040 8px);
  animation: sw-floor 10s linear infinite;
}
.scn-strangers-withdraw .wall-sconce {
  position: absolute; top: 15%; left: 15%; width: 6%; height: 12%;
  background: radial-gradient(circle at 50% 20%, #f0d080 0%, #c09040 70%, transparent 100%);
  box-shadow: 0 0 20px 10px rgba(200,150,80,0.5);
  animation: sw-sconce 4s ease-in-out infinite alternate;
}
@keyframes sw-corridor { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes sw-door { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.98); } 100% { transform: scaleY(1); } }
@keyframes sw-fig-a { 0% { transform: translateX(0) translateY(0) rotate(1deg); } 25% { transform: translateX(-6px) translateY(-2px) rotate(-1deg); } 50% { transform: translateX(0) translateY(0) rotate(0deg); } 75% { transform: translateX(4px) translateY(-1px) rotate(1deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes sw-fig-b { 0% { transform: translateX(0) translateY(0) rotate(-1deg); } 25% { transform: translateX(6px) translateY(-2px) rotate(1deg); } 50% { transform: translateX(0) translateY(0) rotate(0deg); } 75% { transform: translateX(-4px) translateY(-1px) rotate(-1deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes sw-handle { 0% { transform: rotate(0deg); } 50% { transform: rotate(10deg); } 100% { transform: rotate(0deg); } }
@keyframes sw-floor { 0% { background-position: 0 0; } 100% { background-position: -16px 0; } }
@keyframes sw-sconce { 0% { opacity: 0.8; box-shadow: 0 0 15px 8px rgba(200,150,80,0.3); } 50% { opacity: 1; box-shadow: 0 0 25px 12px rgba(200,150,80,0.6); } 100% { opacity: 0.9; box-shadow: 0 0 18px 10px rgba(200,150,80,0.4); } }

.scn-roguedom {
  background:
    linear-gradient(180deg, #f0e8d0 0%, #d8c8a8 50%, #b8a080 100%),
    radial-gradient(ellipse at 50% 60%, #e8d8b8 0%, transparent 60%);
}
.scn-roguedom .map-bg {
  position: absolute; inset: 0 0 0 0;
  background: linear-gradient(135deg, #e0d0b0 0%, #c0a880 100%);
  animation: rg-mapbg 12s ease-in-out infinite alternate;
}
.scn-roguedom .table-disc {
  position: absolute; bottom: 15%; left: 25%; width: 50%; height: 10%;
  background: radial-gradient(ellipse, #6a5030 0%, #4a3020 100%);
  border-radius: 50%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.3);
  animation: rg-tabled 10s ease-in-out infinite;
}
.scn-roguedom .map-scroll {
  position: absolute; bottom: 20%; left: 35%; width: 30%; height: 4%;
  background: linear-gradient(180deg, #e8d8b0 0%, #c8b890 100%);
  border-radius: 4px;
  transform-origin: center;
  animation: rg-scroll 8s ease-in-out infinite alternate;
}
.scn-roguedom .figure-ned {
  position: absolute; bottom: 10%; left: 28%; width: 12%; height: 25%;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rg-ned 5s ease-in-out infinite;
}
.scn-roguedom .figure-conseil {
  position: absolute; bottom: 10%; right: 28%; width: 11%; height: 24%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rg-conseil 5.5s ease-in-out infinite;
}
.scn-roguedom .figure-arm {
  position: absolute; bottom: 18%; left: 40%; width: 4%; height: 10%;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%);
  border-radius: 20% 20% 40% 40%;
  transform-origin: top center;
  animation: rg-arm 3s ease-in-out infinite alternate;
}
.scn-roguedom .inkwell {
  position: absolute; bottom: 20%; left: 50%; width: 6%; height: 5%;
  background: radial-gradient(circle, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.4);
  animation: rg-ink 6s ease-in-out infinite;
}
.scn-roguedom .quill {
  position: absolute; bottom: 24%; left: 52%; width: 2%; height: 12%;
  background: linear-gradient(180deg, #f0e0c0 0%, #c0a080 100%);
  border-radius: 50% 50% 0 0;
  transform-origin: bottom center;
  animation: rg-quill 4s ease-in-out infinite alternate;
}
@keyframes rg-mapbg { 0% { opacity: 0.9; transform: scale(1); } 50% { opacity: 1; transform: scale(1.03); } 100% { opacity: 0.85; transform: scale(1); } }
@keyframes rg-tabled { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes rg-scroll { 0% { transform: rotate(-2deg) scaleX(1); } 50% { transform: rotate(0deg) scaleX(1.05); } 100% { transform: rotate(2deg) scaleX(1); } }
@keyframes rg-ned { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 25% { transform: translateX(4px) translateY(-2px) rotate(0deg); } 50% { transform: translateX(0) translateY(0) rotate(2deg); } 75% { transform: translateX(-4px) translateY(-1px) rotate(0deg); } 100% { transform: translateX(0) translateY(0) rotate(-2deg); } }
@keyframes rg-conseil { 0% { transform: translateX(0) translateY(0) rotate(2deg); } 25% { transform: translateX(-4px) translateY(-2px) rotate(0deg); } 50% { transform: translateX(0) translateY(0) rotate(-2deg); } 75% { transform: translateX(4px) translateY(-1px) rotate(0deg); } 100% { transform: translateX(0) translateY(0) rotate(2deg); } }
@keyframes rg-arm { 0% { transform: rotate(-10deg); } 50% { transform: rotate(10deg); } 100% { transform: rotate(-10deg); } }
@keyframes rg-ink { 0% { transform: scale(1); } 50% { transform: scale(1.1); } 100% { transform: scale(1); } }
@keyframes rg-quill { 0% { transform: rotate(-5deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-5deg); } }

.scn-steward-appears {
  background:
    linear-gradient(180deg, #ead8b8 0%, #d4c0a0 50%, #b8a080 100%),
    radial-gradient(ellipse at 50% 50%, #f0e0c0 0%, transparent 70%);
}
.scn-steward-appears .dining-room {
  position: absolute; inset: 0 0 0 0;
  background: linear-gradient(180deg, #d8c8a8 0%, #c0b090 100%);
  animation: sa-room 14s ease-in-out infinite alternate;
}
.scn-steward-appears .table-cloth {
  position: absolute; bottom: 15%; left: 15%; width: 70%; height: 8%;
  background: linear-gradient(180deg, #f0f0e8 0%, #e0d8d0 100%);
  border-radius: 20px;
  box-shadow: 0 6px 12px rgba(0,0,0,0.2);
  animation: sa-cloth 8s ease-in-out infinite;
}
.scn-steward-appears .plate-l {
  position: absolute; bottom: 22%; left: 25%; width: 12%; height: 8%;
  background: radial-gradient(circle, #f8f8f0 0%, #d8d0c0 70%, #a8a090 100%);
  border-radius: 50%;
  box-shadow: 2px 2px 6px rgba(0,0,0,0.3);
  animation: sa-platel 6s ease-in-out infinite alternate;
}
.scn-steward-appears .plate-r {
  position: absolute; bottom: 22%; right: 25%; width: 12%; height: 8%;
  background: radial-gradient(circle, #f8f8f0 0%, #d8d0c0 70%, #a8a090 100%);
  border-radius: 50%;
  box-shadow: -2px 2px 6px rgba(0,0,0,0.3);
  animation: sa-plater 6s ease-in-out infinite alternate;
}
.scn-steward-appears .goblet {
  position: absolute; bottom: 20%; left: 48%; width: 4%; height: 10%;
  background: linear-gradient(180deg, #d0d0e0 0%, #b0b0c0 100%);
  border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%;
  box-shadow: 0 0 6px rgba(0,0,0,0.2);
  animation: sa-goblet 5s ease-in-out infinite;
}
.scn-steward-appears .chandelier {
  position: absolute; top: 5%; left: 30%; width: 40%; height: 20%;
  background: radial-gradient(ellipse at 50% 10%, #f0d080 0%, #c09040 60%, transparent 100%);
  box-shadow: 0 0 40px 20px rgba(200,150,80,0.4);
  animation: sa-chandelier 4s ease-in-out infinite alternate;
}
.scn-steward-appears .steward {
  position: absolute; bottom: 12%; right: 15%; width: 10%; height: 28%;
  background: linear-gradient(180deg, #3a4a3a 0%, #2a3a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sa-steward 6s ease-in-out infinite;
}
.scn-steward-appears .steam {
  position: absolute; bottom: 30%; left: 30%; width: 10%; height: 8%;
  background: radial-gradient(ellipse, rgba(255,255,240,0.4) 0%, transparent 100%);
  filter: blur(4px);
  animation: sa-steam 7s ease-in-out infinite;
}
@keyframes sa-room { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes sa-cloth { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes sa-platel { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-1px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes sa-plater { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-1px) rotate(-2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes sa-goblet { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.05); } 100% { transform: scaleY(1); } }
@keyframes sa-chandelier { 0% { opacity: 0.8; box-shadow: 0 0 30px 15px rgba(200,150,80,0.3); } 50% { opacity: 1; box-shadow: 0 0 50px 25px rgba(200,150,80,0.6); } 100% { opacity: 0.9; box-shadow: 0 0 35px 18px rgba(200,150,80,0.4); } }
@keyframes sa-steward { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 25% { transform: translateX(-3px) translateY(-2px) rotate(-1deg); } 50% { transform: translateX(0) translateY(0) rotate(0deg); } 75% { transform: translateX(3px) translateY(-2px) rotate(1deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes sa-steam { 0% { transform: translateY(0) scale(1); opacity: 0; } 25% { transform: translateY(-10px) scale(1.2); opacity: 0.6; } 50% { transform: translateY(-20px) scale(1.5); opacity: 0.3; } 75% { transform: translateY(-30px) scale(1.8); opacity: 0.1; } 100% { transform: translateY(-40px) scale(2); opacity: 0; } }

.scn-last-chance-banter { background: linear-gradient(180deg, #0a0a2e 0%, #1a1a3e 50%, #0d0d2a 100%), radial-gradient(ellipse at 50% 20%, #2a2a5e 0%, transparent 70%); }
.scn-last-chance-banter .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #0f0f3a 0%, #0a0a2e 100%); animation: lcb-sky 8s ease-in-out infinite alternate; }
.scn-last-chance-banter .deck { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(0deg, #1a1a1a 0%, #2a2a2a 100%); border-radius: 0 0 12px 12px; box-shadow: inset 0 4px 8px rgba(0,0,0,.8); }
.scn-last-chance-banter .railing { position:absolute; bottom:30%; left:0; right:0; height:3px; background: #3a3a4a; box-shadow: 0 0 4px #2a2a3a; animation: lcb-rail 6s ease-in-out infinite; }
.scn-last-chance-banter .figure-left { position:absolute; bottom:18%; left:30%; width:22px; height:40px; background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lcb-fig-l 5s ease-in-out infinite; }
.scn-last-chance-banter .figure-right { position:absolute; bottom:18%; right:30%; width:22px; height:42px; background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lcb-fig-r 5.5s ease-in-out infinite; }
.scn-last-chance-banter .lantern { position:absolute; bottom:38%; left:50%; width:8px; height:12px; transform:translateX(-50%); background: radial-gradient(circle, #f0c068 0%, #b08040 70%); border-radius: 30% 30% 20% 20%; box-shadow: 0 0 20px 6px #c08040, 0 0 40px 12px rgba(192,128,64,.4); animation: lcb-lantern 3s ease-in-out infinite alternate; }
@keyframes lcb-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes lcb-rail { 0% { transform:translateY(0) } 50% { transform:translateY(-1px) } 100% { transform:translateY(0) } }
@keyframes lcb-fig-l { 0% { transform: translateX(0) rotate(-2deg) } 50% { transform: translateX(3px) rotate(1deg) } 100% { transform: translateX(0) rotate(-2deg) } }
@keyframes lcb-fig-r { 0% { transform: translateX(0) rotate(2deg) } 50% { transform: translateX(-3px) rotate(-1deg) } 100% { transform: translateX(0) rotate(2deg) } }
@keyframes lcb-lantern { 0% { transform:translateX(-50%) rotate(-4deg) } 50% { transform:translateX(-50%) rotate(4deg) } 100% { transform:translateX(-50%) rotate(-4deg) } }

.scn-ridicule-ahead { background: linear-gradient(180deg, #0a0a2e 0%, #1a1a3e 50%, #0d0d2a 100%), radial-gradient(ellipse at 50% 20%, #2a2a5e 0%, transparent 70%); }
.scn-ridicule-ahead .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #0f0f3a 0%, #0a0a2e 100%); animation: ra-sky 10s ease-in-out infinite alternate; }
.scn-ridicule-ahead .deck { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(0deg, #1a1a1a 0%, #2a2a2a 100%); border-radius: 0 0 12px 12px; box-shadow: inset 0 4px 8px rgba(0,0,0,.8); }
.scn-ridicule-ahead .railing { position:absolute; bottom:30%; left:0; right:0; height:3px; background: #3a3a4a; box-shadow: 0 0 4px #2a2a3a; animation: ra-rail 7s ease-in-out infinite; }
.scn-ridicule-ahead .figure-left { position:absolute; bottom:18%; left:30%; width:22px; height:40px; background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ra-fig-l 6s ease-in-out infinite; }
.scn-ridicule-ahead .figure-right { position:absolute; bottom:18%; right:30%; width:22px; height:42px; background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; }
.scn-ridicule-ahead .arm-right { position:absolute; bottom:34%; right:24%; width:6px; height:20px; background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%); border-radius: 50% 50% 30% 30%; transform-origin: bottom center; animation: ra-arm 2s ease-in-out infinite; }
.scn-ridicule-ahead .lantern { position:absolute; bottom:38%; left:50%; width:8px; height:12px; transform:translateX(-50%); background: radial-gradient(circle, #f0c068 0%, #b08040 70%); border-radius: 30% 30% 20% 20%; box-shadow: 0 0 20px 6px #c08040, 0 0 40px 12px rgba(192,128,64,.4); animation: ra-lantern 3.5s ease-in-out infinite alternate; }
@keyframes ra-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes ra-rail { 0% { transform:translateY(0) } 50% { transform:translateY(-2px) } 100% { transform:translateY(0) } }
@keyframes ra-fig-l { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(4px) rotate(3deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes ra-arm { 0% { transform: rotate(-30deg) } 50% { transform: rotate(30deg) } 100% { transform: rotate(-30deg) } }
@keyframes ra-lantern { 0% { transform:translateX(-50%) rotate(-5deg) } 50% { transform:translateX(-50%) rotate(5deg) } 100% { transform:translateX(-50%) rotate(-5deg) } }

.scn-sudden-sighting { background: linear-gradient(180deg, #080818 0%, #0f0f2a 50%, #050510 100%), radial-gradient(ellipse at 50% 30%, #1a1a3e 0%, transparent 70%); }
.scn-sudden-sighting .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #0a0a20 0%, #050510 100%); animation: ss-sky 12s ease-in-out infinite alternate; }
.scn-sudden-sighting .deck { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(0deg, #111 0%, #1a1a1a 100%); border-radius: 0 0 12px 12px; box-shadow: inset 0 4px 8px rgba(0,0,0,.9); }
.scn-sudden-sighting .railing { position:absolute; bottom:30%; left:0; right:0; height:3px; background: #2a2a3a; animation: ss-rail 8s ease-in-out infinite; }
.scn-sudden-sighting .figure-center { position:absolute; bottom:18%; left:50%; width:24px; height:44px; transform:translateX(-50%); background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ss-fig-c 4s ease-in-out infinite; }
.scn-sudden-sighting .figure-left { position:absolute; bottom:18%; left:20%; width:20px; height:38px; background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ss-fig-l 4.5s ease-in-out infinite; }
.scn-sudden-sighting .figure-right { position:absolute; bottom:18%; right:20%; width:20px; height:36px; background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ss-fig-r 5s ease-in-out infinite; }
.scn-sudden-sighting .glow-object { position:absolute; bottom:50%; left:65%; width:6px; height:6px; background: radial-gradient(circle, #80c0e0 0%, #206080 100%); border-radius:50%; box-shadow: 0 0 24px 8px #406080, 0 0 48px 16px rgba(64,96,128,.5); animation: ss-glow 2s ease-in-out infinite alternate; }
@keyframes ss-sky { 0% { opacity:.6 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes ss-rail { 0% { transform:translateY(0) } 50% { transform:translateY(-1px) } 100% { transform:translateY(0) } }
@keyframes ss-fig-c { 0% { transform: translateX(-50%) rotate(0deg) } 50% { transform: translateX(-50%) rotate(3deg) translateY(-1px) } 100% { transform: translateX(-50%) rotate(0deg) } }
@keyframes ss-fig-l { 0% { transform: translateX(0) translateY(0) } 50% { transform: translateX(4px) translateY(-1px) } 100% { transform: translateX(0) translateY(0) } }
@keyframes ss-fig-r { 0% { transform: translateX(0) translateY(0) } 50% { transform: translateX(-4px) translateY(-1px) } 100% { transform: translateX(0) translateY(0) } }
@keyframes ss-glow { 0% { transform: scale(1); opacity:.7 } 50% { transform: scale(1.5); opacity:1 } 100% { transform: scale(1); opacity:.7 } }

.scn-electric-glow { background: linear-gradient(180deg, #020210 0%, #050520 30%, #0a0a30 70%, #020210 100%), radial-gradient(ellipse at 50% 60%, #102040 0%, transparent 70%); }
.scn-electric-glow .water { position:absolute; inset:0; background: linear-gradient(180deg, rgba(10,20,50,.8) 0%, rgba(5,10,30,.9) 100%); animation: eg-water 15s ease-in-out infinite alternate; }
.scn-electric-glow .glow-center { position:absolute; top:50%; left:50%; width:40px; height:40px; transform:translate(-50%,-50%); background: radial-gradient(circle, #60c0ff 0%, #2080c0 50%, #004080 100%); border-radius:50%; box-shadow: 0 0 60px 20px #2080c0, 0 0 120px 40px rgba(32,128,192,.5); animation: eg-center 3s ease-in-out infinite alternate; }
.scn-electric-glow .glow-ring { position:absolute; top:50%; left:50%; width:80px; height:80px; transform:translate(-50%,-50%); border:2px solid rgba(96,192,255,.3); border-radius:50%; box-shadow: 0 0 40px 8px rgba(96,192,255,.2); animation: eg-ring 4s linear infinite; }
.scn-electric-glow .particle-a { position:absolute; top:40%; left:30%; width:4px; height:4px; background:#80d0ff; border-radius:50%; box-shadow: 0 0 12px 4px #2080c0; animation: eg-part-a 6s ease-in-out infinite; }
.scn-electric-glow .particle-b { position:absolute; top:55%; left:70%; width:3px; height:3px; background:#80d0ff; border-radius:50%; box-shadow: 0 0 10px 3px #2080c0; animation: eg-part-b 7s ease-in-out infinite; }
.scn-electric-glow .particle-c { position:absolute; top:65%; left:45%; width:5px; height:5px; background:#60c0ff; border-radius:50%; box-shadow: 0 0 14px 5px #2080c0; animation: eg-part-c 5s ease-in-out infinite; }
.scn-electric-glow .figure-silhouette { position:absolute; bottom:15%; left:20%; width:18px; height:36px; background: #050510; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: eg-fig 8s ease-in-out infinite; }
@keyframes eg-water { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes eg-center { 0% { box-shadow: 0 0 40px 15px #2080c0, 0 0 80px 30px rgba(32,128,192,.4); transform:translate(-50%,-50%) scale(1); } 50% { box-shadow: 0 0 80px 25px #60c0ff, 0 0 160px 50px rgba(96,192,255,.5); transform:translate(-50%,-50%) scale(1.2); } 100% { box-shadow: 0 0 40px 15px #2080c0, 0 0 80px 30px rgba(32,128,192,.4); transform:translate(-50%,-50%) scale(1); } }
@keyframes eg-ring { 0% { transform:translate(-50%,-50%) rotate(0deg) scale(1); opacity:.4; } 50% { transform:translate(-50%,-50%) rotate(180deg) scale(1.1); opacity:.6; } 100% { transform:translate(-50%,-50%) rotate(360deg) scale(1); opacity:.4; } }
@keyframes eg-part-a { 0% { transform: translate(0,0) scale(1); } 50% { transform: translate(15px,-10px) scale(1.5); } 100% { transform: translate(0,0) scale(1); } }
@keyframes eg-part-b { 0% { transform: translate(0,0); } 50% { transform: translate(-10px,8px); } 100% { transform: translate(0,0); } }
@keyframes eg-part-c { 0% { transform: translate(0,0) scale(1); } 50% { transform: translate(8px,12px) scale(0.8); } 100% { transform: translate(0,0) scale(1); } }
@keyframes eg-fig { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(5px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }

.scn-overboard {
  position: relative;
  overflow: hidden;
  background: linear-gradient(180deg, #0a1a2a 0%, #051520 40%, #020c14 100%), radial-gradient(ellipse at 50% 20%, #1a3a5a 0%, transparent 70%);
  animation: ovb-bg 12s ease-in-out infinite alternate;
}
.scn-overboard .light-rays {
  position: absolute;
  top: 0; left: 10%; right: 10%; height: 50%;
  background: linear-gradient(180deg, rgba(100,180,255,0.15) 0%, transparent 100%);
  clip-path: polygon(0 0, 100% 0, 70% 100%, 30% 100%);
  opacity: 0.6;
  animation: ovb-rays 8s ease-in-out infinite;
}
.scn-overboard .figure {
  position: absolute;
  bottom: 30%; left: 40%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #1a2a3a 0%, #0d1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: center bottom;
  animation: ovb-sink 5s ease-in-out infinite;
}
.scn-overboard .bubbles {
  position: absolute;
  width: 8px; height: 8px;
  background: radial-gradient(circle, rgba(180,220,255,0.4) 0%, transparent 100%);
  border-radius: 50%;
  animation: ovb-rise 3s ease-in-out infinite;
}
.scn-overboard .bubble-a { left: 35%; bottom: 20%; animation-delay: 0s; }
.scn-overboard .bubble-b { left: 55%; bottom: 30%; animation-delay: 0.8s; }
.scn-overboard .bubble-c { left: 45%; bottom: 10%; animation-delay: 1.6s; }
.scn-overboard .ship-shadow {
  position: absolute;
  top: 5%; right: 15%; width: 60px; height: 20px;
  background: linear-gradient(180deg, rgba(20,30,40,0.5) 0%, transparent 100%);
  border-radius: 30% 30% 50% 50%;
  filter: blur(4px);
  animation: ovb-ship 20s linear infinite;
}
.scn-overboard .depth-overlay {
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at 50% 80%, transparent 30%, rgba(0,10,20,0.6) 100%);
  pointer-events: none;
}
@keyframes ovb-bg { 0% { filter: brightness(0.8); } 50% { filter: brightness(1); } 100% { filter: brightness(0.7); } }
@keyframes ovb-rays { 0% { transform: translateY(0) scaleX(1); opacity: 0.6; } 50% { transform: translateY(-10px) scaleX(1.1); opacity: 0.8; } 100% { transform: translateY(0) scaleX(1); opacity: 0.6; } }
@keyframes ovb-sink { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(8px) rotate(-3deg); } 50% { transform: translateY(16px) rotate(3deg); } 75% { transform: translateY(8px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes ovb-rise { 0% { transform: translateY(0) scale(1); opacity: 0.6; } 50% { transform: translateY(-30px) scale(1.5); opacity: 0.9; } 100% { transform: translateY(-60px) scale(0.8); opacity: 0; } }
@keyframes ovb-ship { 0% { transform: translateX(0); } 50% { transform: translateX(-10px); } 100% { transform: translateX(0); } }

.scn-cries-for-help {
  position: relative;
  overflow: hidden;
  background: linear-gradient(180deg, #0b1b2b 0%, #051015 50%, #010a10 100%), radial-gradient(ellipse at 50% 80%, #0a1a2a 0%, transparent 70%);
}
.scn-cries-for-help .surface-glow {
  position: absolute;
  top: 0; left: 20%; right: 20%; height: 15%;
  background: radial-gradient(ellipse at 50% 50%, rgba(80,160,255,0.2) 0%, transparent 100%);
  animation: cfh-glow 6s ease-in-out infinite alternate;
}
.scn-cries-for-help .figure-body {
  position: absolute;
  bottom: 25%; left: 40%; width: 22px; height: 38px;
  background: linear-gradient(180deg, #1c2a3a 0%, #0a1520 100%);
  border-radius: 50% 50% 45% 45% / 55% 55% 40% 40%;
  transform-origin: center bottom;
  animation: cfh-struggle 4s ease-in-out infinite;
}
.scn-cries-for-help .arm {
  position: absolute;
  bottom: 45%; left: 50%; width: 6px; height: 28px;
  background: linear-gradient(180deg, #1a2a3a 0%, #0a1520 100%);
  border-radius: 40% 40% 20% 20%;
  transform-origin: 50% 100%;
  animation: cfh-reach 3.5s ease-in-out infinite;
}
.scn-cries-for-help .mouth-water {
  position: absolute;
  bottom: 46%; left: 47%; width: 8px; height: 6px;
  background: radial-gradient(circle, rgba(120,200,255,0.5) 0%, transparent 100%);
  border-radius: 50%;
  animation: cfh-gulp 2.5s ease-in-out infinite;
}
.scn-cries-for-help .bubbles {
  position: absolute;
  width: 6px; height: 6px;
  background: radial-gradient(circle, rgba(180,230,255,0.3) 0%, transparent 100%);
  border-radius: 50%;
  animation: cfh-bubble 3s ease-in-out infinite;
}
.scn-cries-for-help .bubble-d { left: 42%; bottom: 20%; animation-delay: 0s; }
.scn-cries-for-help .bubble-e { left: 58%; bottom: 30%; animation-delay: 1.2s; }
.scn-cries-for-help .darkness {
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at 50% 60%, transparent 20%, rgba(0,5,15,0.6) 100%);
  pointer-events: none;
}
@keyframes cfh-glow { 0% { opacity: 0.3; transform: scaleY(1); } 50% { opacity: 0.6; transform: scaleY(1.2); } 100% { opacity: 0.3; transform: scaleY(1); } }
@keyframes cfh-struggle { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(3px) rotate(4deg); } 50% { transform: translateY(-2px) rotate(-3deg); } 75% { transform: translateY(4px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes cfh-reach { 0% { transform: rotate(0deg) translateY(0); } 25% { transform: rotate(15deg) translateY(-2px); } 50% { transform: rotate(5deg) translateY(1px); } 75% { transform: rotate(25deg) translateY(-3px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes cfh-gulp { 0% { transform: scale(1); opacity: 0.5; } 50% { transform: scale(1.3); opacity: 0.9; } 100% { transform: scale(0.8); opacity: 0.3; } }
@keyframes cfh-bubble { 0% { transform: translateY(0) scale(1); opacity: 0.5; } 50% { transform: translateY(-25px) scale(1.4); opacity: 0.8; } 100% { transform: translateY(-50px) scale(0.6); opacity: 0; } }

.scn-conseil-jumps {
  position: relative;
  overflow: hidden;
  background: linear-gradient(180deg, #0d1d2d 0%, #061420 50%, #030e1a 100%), radial-gradient(ellipse at 50% 30%, #142a3a 0%, transparent 70%);
}
.scn-conseil-jumps .master-figure {
  position: absolute;
  bottom: 28%; left: 30%; width: 20px; height: 38px;
  background: linear-gradient(180deg, #1c2a3a 0%, #0a1520 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: cjl-swim-master 6s ease-in-out infinite;
}
.scn-conseil-jumps .conseil-figure {
  position: absolute;
  bottom: 22%; left: 50%; width: 18px; height: 34px;
  background: linear-gradient(180deg, #1a2a3a 0%, #081520 100%);
  border-radius: 50% 50% 40% 40% / 55% 55% 35% 35%;
  transform: scale(0.9);
  animation: cjl-swim-conseil 6s ease-in-out infinite;
}
.scn-conseil-jumps .propeller-debris {
  position: absolute;
  bottom: 10%; right: 10%; width: 30px; height: 15px;
  background: linear-gradient(90deg, #2a3a3a 0%, #1a2a2a 100%);
  border-radius: 0 0 50% 50%;
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  transform: rotate(-20deg);
  animation: cjl-debris 10s ease-in-out infinite;
}
.scn-conseil-jumps .bubbles {
  position: absolute;
  width: 5px; height: 5px;
  background: radial-gradient(circle, rgba(160,210,255,0.3) 0%, transparent 100%);
  border-radius: 50%;
  animation: cjl-bubble 4s ease-in-out infinite;
}
.scn-conseil-jumps .bubble-f { left: 35%; bottom: 15%; animation-delay: 0s; }
.scn-conseil-jumps .bubble-g { left: 55%; bottom: 25%; animation-delay: 1.5s; }
.scn-conseil-jumps .sea-floor {
  position: absolute;
  bottom: 0; left: 0; right: 0; height: 8%;
  background: linear-gradient(180deg, transparent 0%, #0a1a1a 100%);
  border-radius: 50% 50% 0 0;
}
@keyframes cjl-swim-master { 0% { transform: translateX(0) translateY(0); } 25% { transform: translateX(8px) translateY(-4px); } 50% { transform: translateX(16px) translateY(0); } 75% { transform: translateX(8px) translateY(4px); } 100% { transform: translateX(0) translateY(0); } }
@keyframes cjl-swim-conseil { 0% { transform: translateX(0) translateY(0) scale(0.9); } 25% { transform: translateX(10px) translateY(-3px) scale(0.9); } 50% { transform: translateX(20px) translateY(0) scale(0.9); } 75% { transform: translateX(10px) translateY(3px) scale(0.9); } 100% { transform: translateX(0) translateY(0) scale(0.9); } }
@keyframes cjl-debris { 0% { transform: rotate(-20deg) translateX(0); } 50% { transform: rotate(-15deg) translateX(5px); } 100% { transform: rotate(-20deg) translateX(0); } }
@keyframes cjl-bubble { 0% { transform: translateY(0) scale(1); opacity: 0.4; } 50% { transform: translateY(-20px) scale(1.3); opacity: 0.7; } 100% { transform: translateY(-40px) scale(0.7); opacity: 0; } }

.scn-floating-hope {
  position: relative;
  overflow: hidden;
  background: linear-gradient(180deg, #060d18 0%, #0a1420 30%, #0e1a2a 60%, #0a1525 100%), radial-gradient(ellipse at 50% 100%, #0a1a30 0%, transparent 70%);
}
.scn-floating-hope .night-sky {
  position: absolute;
  top: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #050a14 0%, #0a1420 100%);
}
.scn-floating-hope .sea-surface {
  position: absolute;
  bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #0a1a2a 0%, #0e1e2e 100%);
  border-radius: 20% 20% 0 0;
  animation: flh-sea 8s ease-in-out infinite;
}
.scn-floating-hope .head {
  position: absolute;
  width: 14px; height: 18px;
  background: radial-gradient(circle at 50% 30%, #1a2a3a 0%, #0a1520 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
}
.scn-floating-hope .head1 { bottom: 50%; left: 35%; animation: flh-bob1 5s ease-in-out infinite; }
.scn-floating-hope .head2 { bottom: 48%; left: 55%; animation: flh-bob2 5s ease-in-out infinite; animation-delay: 0.5s; }
.scn-floating-hope .ripple {
  position: absolute;
  width: 30px; height: 8px;
  border-radius: 50%;
  background: radial-gradient(ellipse, rgba(100,180,255,0.15) 0%, transparent 100%);
  border: 1px solid rgba(100,180,255,0.1);
}
.scn-floating-hope .ripple1 { bottom: 48%; left: 33%; animation: flh-ripple 4s ease-out infinite; }
.scn-floating-hope .ripple2 { bottom: 46%; left: 53%; animation: flh-ripple 4s ease-out infinite; animation-delay: 1s; }
.scn-floating-hope .star {
  position: absolute;
  top: 12%; right: 20%; width: 4px; height: 4px;
  background: radial-gradient(circle, rgba(255,240,200,0.8) 0%, transparent 100%);
  border-radius: 50%;
  animation: flh-twinkle 3s ease-in-out infinite;
}
@keyframes flh-sea { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes flh-bob1 { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(2deg); } 50% { transform: translateY(1px) rotate(-1deg); } 75% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes flh-bob2 { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-1px) rotate(-2deg); } 50% { transform: translateY(2px) rotate(1deg); } 75% { transform: translateY(-2px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes flh-ripple { 0% { transform: scale(0.5); opacity: 0.6; } 50% { transform: scale(1.2); opacity: 0.3; } 100% { transform: scale(2); opacity: 0; } }
@keyframes flh-twinkle { 0% { opacity: 0.4; transform: scale(1); } 50% { opacity: 1; transform: scale(1.5); } 100% { opacity: 0.4; transform: scale(1); } }

/* ----- discouragement ----- */
.scn-discouragement {
  background: linear-gradient(180deg, #3b3f4f 0%, #2a2e3a 40%, #1c1f29 100%),
              radial-gradient(ellipse at 50% 80%, #2a2e3a 0%, transparent 70%);
}
.scn-discouragement .sky-disk {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #4a5060 0%, #2e3440 100%);
  animation: disc-sky 20s ease-in-out infinite alternate;
}
.scn-discouragement .sea-disk {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #1e2a30 0%, #141a20 100%);
  border-radius: 30% 70% 0 0 / 60% 80% 0 0;
  box-shadow: inset 0 20px 40px rgba(0,0,0,.6);
  animation: disc-sea 12s ease-in-out infinite alternate;
}
.scn-discouragement .hull-disk {
  position: absolute; bottom: 25%; left: 25%; width: 55%; height: 12%;
  background: linear-gradient(90deg, #2a2a2a 0%, #1a1a1a 50%, #2a2a2a 100%);
  border-radius: 0 0 30% 30% / 0 0 100% 100%;
  box-shadow: 0 -5px 20px rgba(0,0,0,.5);
  animation: disc-hull 8s ease-in-out infinite;
}
.scn-discouragement .mast-disk {
  position: absolute; bottom: 35%; left: 48%; width: 3%; height: 30%;
  background: linear-gradient(180deg, #3a3a3a 0%, #222 100%);
  transform-origin: bottom center;
  animation: disc-mast 10s ease-in-out infinite;
}
.scn-discouragement .crew-fig-leader {
  position: absolute; bottom: 24%; left: 40%; width: 3%; height: 12%;
  background: linear-gradient(180deg, #2a2a2a 0%, #0a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: disc-leader 4s ease-in-out infinite;
}
.scn-discouragement .crew-fig-huddle {
  position: absolute; bottom: 23%; left: 44%; width: 4%; height: 10%;
  background: linear-gradient(180deg, #252525 0%, #0e0e0e 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: disc-huddle 5s ease-in-out infinite;
}
.scn-discouragement .dark-cloud {
  position: absolute; top: 15%; left: 20%; width: 18%; height: 6%;
  background: linear-gradient(180deg, rgba(60,65,75,.8) 0%, rgba(40,45,55,.4) 100%);
  border-radius: 50%;
  filter: blur(8px);
  animation: disc-cloud 35s linear infinite;
}
@keyframes disc-sky {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes disc-sea {
  0% { transform: scaleY(1) translateY(0); }
  50% { transform: scaleY(1.02) translateY(-3px); }
  100% { transform: scaleY(1) translateY(0); }
}
@keyframes disc-hull {
  0%, 100% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(2px) rotate(0.5deg); }
  50% { transform: translateX(0) rotate(0deg); }
  75% { transform: translateX(-2px) rotate(-0.5deg); }
}
@keyframes disc-mast {
  0%, 100% { transform: rotate(0deg); }
  50% { transform: rotate(1deg); }
}
@keyframes disc-leader {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  30% { transform: translateY(-2px) rotate(2deg); }
  70% { transform: translateY(-1px) rotate(-1deg); }
}
@keyframes disc-huddle {
  0%, 100% { transform: translateY(0) scaleY(1); }
  25% { transform: translateY(-1px) scaleY(0.98); }
  75% { transform: translateY(-2px) scaleY(1.02); }
}
@keyframes disc-cloud {
  0% { transform: translateX(-30px); }
  100% { transform: translateX(120vw); }
}

/* ----- three-day-grace ----- */
.scn-three-day-grace {
  background: linear-gradient(180deg, #3c4a5a 0%, #2a3440 40%, #1e2830 100%),
              radial-gradient(ellipse at 50% 70%, #3a4a5a 0%, transparent 60%);
}
.scn-three-day-grace .deck-tgd {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(0deg, #2a3038 0%, #3a4248 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 15px 30px rgba(0,0,0,.5);
}
.scn-three-day-grace .railing-tgd {
  position: absolute; bottom: 30%; height: 8%; width: 4%;
  background: linear-gradient(90deg, #4a5058 0%, #3a4048 100%);
  border-radius: 2px;
}
.scn-three-day-grace .left-rail {
  left: 30%;
  animation: tgd-rail 6s ease-in-out infinite;
}
.scn-three-day-grace .right-rail {
  right: 30%;
  animation: tgd-rail 6s ease-in-out infinite reverse;
}
.scn-three-day-grace .commander-tgd {
  position: absolute; bottom: 25%; left: 45%; width: 5%; height: 20%;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 40% 40% 30% 30% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: tgd-cdr 4s ease-in-out infinite;
}
.scn-three-day-grace .crew-tgd {
  position: absolute; bottom: 24%; height: 12%;
  background: linear-gradient(180deg, #1e1e1e 0%, #0a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
}
.scn-three-day-grace .seated {
  left: 35%; width: 3%; animation: tgd-seated 5s ease-in-out infinite;
}
.scn-three-day-grace .standing {
  left: 55%; width: 3.5%; animation: tgd-standing 4.5s ease-in-out infinite;
}
.scn-three-day-grace .lantern-tgd {
  position: absolute; bottom: 32%; left: 49%; width: 1.5%; height: 4%;
  background: radial-gradient(circle, #d4a050 0%, #b07030 70%);
  border-radius: 20%;
  box-shadow: 0 0 20px 6px rgba(180,112,48,.6);
  animation: tgd-lantern 2.5s ease-in-out infinite alternate;
}
.scn-three-day-grace .hope-glow-tgd {
  position: absolute; bottom: 30%; left: 48%; width: 5%; height: 8%;
  background: radial-gradient(circle, rgba(200,160,80,.3) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(10px);
  animation: tgd-glow 3s ease-in-out infinite alternate;
}
@keyframes tgd-rail {
  0%, 100% { transform: scaleY(1); }
  50% { transform: scaleY(0.95); }
}
@keyframes tgd-cdr {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  30% { transform: translateY(-2px) rotate(1.5deg); }
  60% { transform: translateY(1px) rotate(-0.5deg); }
}
@keyframes tgd-seated {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  40% { transform: translateY(-1px) rotate(2deg); }
  80% { transform: translateY(1px) rotate(-1deg); }
}
@keyframes tgd-standing {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-3px) rotate(1deg); }
  75% { transform: translateY(-1px) rotate(-2deg); }
}
@keyframes tgd-lantern {
  0% { box-shadow: 0 0 12px 3px rgba(180,112,48,.4); opacity: 0.8; }
  50% { box-shadow: 0 0 28px 8px rgba(200,140,60,.7); opacity: 1; }
  100% { box-shadow: 0 0 16px 4px rgba(180,112,48,.5); opacity: 0.9; }
}
@keyframes tgd-glow {
  0% { transform: scale(0.9); opacity: 0.5; }
  100% { transform: scale(1.2); opacity: 0.8; }
}

/* ----- last-evening ----- */
.scn-last-evening {
  background: linear-gradient(180deg, #2a1f2e 0%, #4a3040 30%, #7a5a4a 50%, #5a3a3a 70%, #1a1a2a 100%),
              radial-gradient(ellipse at 50% 45%, #8a6a5a 0%, transparent 60%);
}
.scn-last-evening .dusk-sky-lse {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #1a1424 0%, #3a2a3a 40%, #6a4a3a 70%, #8a6a5a 100%);
  animation: lse-sky 15s ease-in-out infinite alternate;
}
.scn-last-evening .sunset-glow-lse {
  position: absolute; bottom: 42%; left: 40%; width: 20%; height: 15%;
  background: radial-gradient(circle, #d09050 0%, #b07040 40%, transparent 70%);
  filter: blur(15px);
  animation: lse-glow 8s ease-in-out infinite alternate;
}
.scn-last-evening .ocean-lse {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #1a2030 0%, #0e1420 100%);
  border-radius: 70% 30% 0 0 / 80% 40% 0 0;
  box-shadow: inset 0 20px 60px rgba(0,0,0,.7);
  animation: lse-sea 14s ease-in-out infinite alternate;
}
.scn-last-evening .ship-silhouette-lse {
  position: absolute; bottom: 28%; left: 30%; width: 40%; height: 20%;
  background: linear-gradient(180deg, #0a0a0a 0%, #1a1a1a 100%);
  clip-path: polygon(20% 100%, 25% 50%, 35% 30%, 65% 30%, 75% 50%, 80% 100%);
  animation: lse-ship 10s ease-in-out infinite;
}
.scn-last-evening .smoke-trail-lse {
  position: absolute; bottom: 35%; left: 60%; width: 15%; height: 12%;
  background: linear-gradient(90deg, rgba(80,80,80,.5) 0%, rgba(60,60,60,.2) 70%, transparent 100%);
  border-radius: 50%;
  filter: blur(6px);
  animation: lse-smoke 20s linear infinite;
}
.scn-last-evening .cabin-light-lse {
  position: absolute; bottom: 30%; left: 45%; width: 2%; height: 3%;
  background: radial-gradient(circle, #d0a050 0%, #b08040 70%);
  border-radius: 10%;
  box-shadow: 0 0 30px 8px rgba(192,128,64,.5);
  animation: lse-light 3s ease-in-out infinite alternate;
}
.scn-last-evening .moon-reflection-lse {
  position: absolute; bottom: 15%; left: 55%; width: 6%; height: 6%;
  background: radial-gradient(ellipse, rgba(200,200,200,.15) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(8px);
  animation: lse-reflect 12s ease-in-out infinite alternate;
}
@keyframes lse-sky {
  0% { opacity: 0.85; }
  50% { opacity: 1; }
  100% { opacity: 0.75; }
}
@keyframes lse-glow {
  0% { transform: scale(0.9); opacity: 0.7; }
  100% { transform: scale(1.2); opacity: 0.9; }
}
@keyframes lse-sea {
  0% { transform: translateY(0) scaleY(1); }
  30% { transform: translateY(-4px) scaleY(1.02); }
  60% { transform: translateY(2px) scaleY(0.98); }
  100% { transform: translateY(0) scaleY(1); }
}
@keyframes lse-ship {
  0%, 100% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(3px) rotate(1deg); }
  75% { transform: translateX(-3px) rotate(-1deg); }
}
@keyframes lse-smoke {
  0% { transform: translateX(0) scaleX(1); opacity: 0.5; }
  100% { transform: translateX(-100px) scaleX(0.6); opacity: 0; }
}
@keyframes lse-light {
  0% { box-shadow: 0 0 20px 5px rgba(192,128,64,.4); opacity: 0.8; }
  50% { box-shadow: 0 0 40px 12px rgba(192,128,64,.7); opacity: 1; }
  100% { box-shadow: 0 0 25px 6px rgba(192,128,64,.5); opacity: 0.9; }
}
@keyframes lse-reflect {
  0% { transform: scale(0.8); opacity: 0.3; }
  50% { transform: scale(1.1); opacity: 0.5; }
  100% { transform: scale(0.9); opacity: 0.4; }
}

/* ----- watching-gloom ----- */
.scn-watching-gloom {
  background: linear-gradient(180deg, #0e121c 0%, #141a26 30%, #1a2430 60%, #0e121c 100%),
              radial-gradient(ellipse at 50% 100%, #1a2430 0%, transparent 70%);
}
.scn-watching-gloom .night-sky-wgl {
  position: absolute; inset: 0 0 35% 0;
  background: radial-gradient(ellipse at 50% 100%, #1a1a2a 0%, #0a0a14 100%);
  animation: wgl-sky 18s ease-in-out infinite alternate;
}
.scn-watching-gloom .deep-water-wgl {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #0a0a14 0%, #050508 100%);
  border-radius: 60% 40% 0 0 / 50% 50% 0 0;
  box-shadow: inset 0 30px 60px rgba(0,0,0,.8);
  animation: wgl-water 10s ease-in-out infinite alternate;
}
.scn-watching-gloom .bow-rail-wgl {
  position: absolute; bottom: 28%; left: 0; right: 0; height: 10%;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  clip-path: polygon(0% 100%, 5% 20%, 95% 20%, 100% 100%);
  animation: wgl-rail 6s ease-in-out infinite;
}
.scn-watching-gloom .figure-left-wgl {
  position: absolute; bottom: 22%; left: 20%; width: 4%; height: 18%;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  transform-origin: bottom center;
  animation: wgl-fig-left 5s ease-in-out infinite;
}
.scn-watching-gloom .figure-right-wgl {
  position: absolute; bottom: 21%; left: 35%; width: 3.5%; height: 16%;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%;
  transform-origin: bottom center;
  animation: wgl-fig-right 4.5s ease-in-out infinite;
}
.scn-watching-gloom .distant-light-wgl {
  position: absolute; bottom: 30%; right: 20%; width: 2%; height: 2%;
  background: radial-gradient(circle, rgba(200,200,200,.3) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(4px);
  animation: wgl-light 8s ease-in-out infinite alternate;
}
.scn-watching-gloom .star-reflection-wgl {
  position: absolute; bottom: 10%; left: 40%; width: 4%; height: 4%;
  background: radial-gradient(circle, rgba(200,220,255,.1) 0%, transparent 60%);
  border-radius: 50%;
  filter: blur(6px);
  animation: wgl-star 14s ease-in-out infinite alternate;
}
.scn-watching-gloom .fog-bank-wgl {
  position: absolute; bottom: 15%; left: 10%; width: 80%; height: 20%;
  background: linear-gradient(180deg, rgba(20,25,35,.4) 0%, rgba(10,15,25,.2) 100%);
  border-radius: 50%;
  filter: blur(20px);
  animation: wgl-fog 30s linear infinite alternate;
}
@keyframes wgl-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes wgl-water {
  0% { transform: translateY(0) scaleY(1); }
  30% { transform: translateY(-5px) scaleY(1.01); }
  60% { transform: translateY(3px) scaleY(0.99); }
  100% { transform: translateY(0) scaleY(1); }
}
@keyframes wgl-rail {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
}
@keyframes wgl-fig-left {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  20% { transform: translateY(-3px) rotate(2deg); }
  60% { transform: translateY(1px) rotate(-1deg); }
}
@keyframes wgl-fig-right {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  30% { transform: translateY(-2px) rotate(1.5deg); }
  70% { transform: translateY(-1px) rotate(-2deg); }
}
@keyframes wgl-light {
  0% { transform: scale(0.8); opacity: 0.3; }
  100% { transform: scale(1.3); opacity: 0.7; }
}
@keyframes wgl-star {
  0% { transform: scale(0.9); opacity: 0.2; }
  50% { transform: scale(1.1); opacity: 0.5; }
  100% { transform: scale(0.8); opacity: 0.3; }
}
@keyframes wgl-fog {
  0% { transform: translateX(-10px); opacity: 0.6; }
  50% { transform: translateX(10px); opacity: 0.8; }
  100% { transform: translateX(-10px); opacity: 0.6; }
}

.scn-units-of-measure-continued {
  background:
    linear-gradient(180deg, #3c2a1a 0%, #2a1a0e 60%, #1a0e06 100%),
    radial-gradient(ellipse at 40% 20%, #4a3a2a 0%, transparent 70%);
}
.scn-units-of-measure-continued .bg-wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  animation: umc-wall 14s ease-in-out infinite alternate;
}
.scn-units-of-measure-continued .desk {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 40%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: inset 0 12px 24px rgba(0,0,0,0.6);
  animation: umc-desk 10s ease-in-out infinite;
}
.scn-units-of-measure-continued .book {
  position: absolute; bottom: 35%; left: 30%; width: 80px; height: 60px;
  background: linear-gradient(135deg, #8a6a4a 0%, #6a4a2a 100%);
  border-radius: 4px;
  transform: rotate(-3deg);
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: umc-book 8s ease-in-out infinite alternate;
}
.scn-units-of-measure-continued .candle {
  position: absolute; bottom: 38%; left: 60%; width: 8px; height: 30px;
  background: linear-gradient(180deg, #f0d080 0%, #c8a060 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%;
  box-shadow: 0 0 6px 2px rgba(240,208,128,0.3);
  animation: umc-candle 4s ease-in-out infinite alternate;
}
.scn-units-of-measure-continued .glow {
  position: absolute; bottom: 38%; left: 60%; width: 80px; height: 80px;
  background: radial-gradient(circle, rgba(240,200,120,0.4) 0%, transparent 60%);
  border-radius: 50%;
  transform: translate(-45%, -45%);
  animation: umc-glow 4s ease-in-out infinite alternate;
}
.scn-units-of-measure-continued .figure {
  position: absolute; bottom: 20%; left: 20%; width: 24px; height: 44px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: umc-figure 6s ease-in-out infinite;
}
@keyframes umc-wall { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes umc-desk { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes umc-book { 0% { transform: rotate(-3deg) translateY(0) } 50% { transform: rotate(-2deg) translateY(-1px) } 100% { transform: rotate(-4deg) translateY(0) } }
@keyframes umc-candle { 0% { height: 28px; opacity: 0.9 } 50% { height: 32px; opacity: 1 } 100% { height: 30px; opacity: 0.95 } }
@keyframes umc-glow { 0% { opacity: 0.3; transform: translate(-45%,-45%) scale(0.95) } 50% { opacity: 0.6; transform: translate(-45%,-45%) scale(1.1) } 100% { opacity: 0.4; transform: translate(-45%,-45%) scale(1) } }
@keyframes umc-figure { 0%,100% { transform: translateX(0) translateY(0) } 25% { transform: translateX(2px) translateY(-1px) } 50% { transform: translateX(0) translateY(-2px) } 75% { transform: translateX(-2px) translateY(-1px) } }

/* runaway-reef-intro */
.scn-runaway-reef-intro {
  background:
    linear-gradient(180deg, #3a4a5a 0%, #2a3a4a 50%, #1a2a3a 100%),
    radial-gradient(ellipse at 50% 30%, #4a5a6a 0%, transparent 70%);
}
.scn-runaway-reef-intro .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #4a6a7a 0%, #3a5a6a 100%);
  animation: rri-sky 20s ease-in-out infinite alternate;
}
.scn-runaway-reef-intro .ocean {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #1a3a4a 0%, #0a1a2a 100%);
  border-radius: 0 0 40% 40% / 0 0 20% 20%;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.4);
}
.scn-runaway-reef-intro .ship {
  position: absolute; bottom: 40%; left: 30%; width: 80px; height: 20px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 10% 10% 30% 30% / 40% 40% 20% 20%;
  transform: rotate(-2deg);
  animation: rri-ship 6s ease-in-out infinite alternate;
}
.scn-runaway-reef-intro .sail {
  position: absolute; bottom: 55%; left: 35%; width: 24px; height: 40px;
  background: linear-gradient(135deg, #c0c0d0 0%, #808090 100%);
  border-radius: 20% 20% 50% 50% / 30% 30% 70% 70%;
  transform: rotate(5deg);
  animation: rri-sail 6s ease-in-out infinite alternate;
}
.scn-runaway-reef-intro .steamer-smoke {
  position: absolute; bottom: 65%; left: 38%; width: 30px; height: 40px;
  background: radial-gradient(circle, rgba(180,180,200,0.3) 0%, transparent 60%);
  filter: blur(8px);
  animation: rri-smoke 10s ease-in-out infinite;
}
.scn-runaway-reef-intro .submerged-shape {
  position: absolute; bottom: 20%; left: 50%; width: 100px; height: 40px;
  background: radial-gradient(ellipse, #0a1a2a 0%, #1a3a4a 100%);
  border-radius: 50%;
  transform: translateX(-50%);
  box-shadow: 0 0 40px 10px rgba(0,0,0,0.6);
  animation: rri-shape 12s ease-in-out infinite;
}
.scn-runaway-reef-intro .wave-1 {
  position: absolute; bottom: 10%; left: 0; right: 0; height: 30px;
  background: linear-gradient(90deg, transparent 0%, rgba(80,140,180,0.3) 50%, transparent 100%);
  border-radius: 50%;
  filter: blur(4px);
  animation: rri-wave1 8s linear infinite;
}
.scn-runaway-reef-intro .wave-2 {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 20px;
  background: linear-gradient(90deg, transparent 0%, rgba(80,140,180,0.2) 50%, transparent 100%);
  border-radius: 50%;
  filter: blur(3px);
  animation: rri-wave2 12s linear infinite reverse;
}
@keyframes rri-sky { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes rri-ship { 0% { transform: rotate(-3deg) translateY(0) } 50% { transform: rotate(2deg) translateY(-2px) } 100% { transform: rotate(-1deg) translateY(0) } }
@keyframes rri-sail { 0% { transform: rotate(5deg) scaleY(1) } 50% { transform: rotate(8deg) scaleY(0.95) } 100% { transform: rotate(3deg) scaleY(1) } }
@keyframes rri-smoke { 0% { opacity: 0; transform: translateY(0) scale(1) } 30% { opacity: 0.6; transform: translateY(-20px) scale(1.5) } 100% { opacity: 0; transform: translateY(-60px) scale(2) } }
@keyframes rri-shape { 0% { transform: translateX(-50%) translateY(0) scaleX(1) } 50% { transform: translateX(-50%) translateY(-8px) scaleX(1.2) } 100% { transform: translateX(-50%) translateY(0) scaleX(0.9) } }
@keyframes rri-wave1 { 0% { transform: translateX(-20%) } 100% { transform: translateX(20%) } }
@keyframes rri-wave2 { 0% { transform: translateX(10%) } 100% { transform: translateX(-10%) } }

/* logic-data */
.scn-logic-data {
  background:
    linear-gradient(180deg, #2a3a3a 0%, #1a2a2a 50%, #0a1a1a 100%),
    radial-gradient(ellipse at 50% 20%, #3a4a4a 0%, transparent 70%);
}
.scn-logic-data .bg-desk {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #3a4a3a 0%, #1a2a1a 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.5);
}
.scn-logic-data .logbook {
  position: absolute; bottom: 20%; left: 25%; width: 120px; height: 80px;
  background: linear-gradient(135deg, #706050 0%, #504030 100%);
  border-radius: 6px;
  box-shadow: 0 6px 12px rgba(0,0,0,0.6);
  transform: rotate(2deg);
  animation: ld-logbook 14s ease-in-out infinite alternate;
}
.scn-logic-data .page {
  position: absolute; bottom: 28%; left: 30%; width: 100px; height: 60px;
  background: linear-gradient(135deg, #d0c8b0 0%, #b0a080 100%);
  border-radius: 2px;
  transform: rotate(2deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
  animation: ld-page 10s ease-in-out infinite alternate;
}
.scn-logic-data .quill {
  position: absolute; bottom: 40%; left: 48%; width: 4px; height: 50px;
  background: linear-gradient(180deg, #c0c0d0 0%, #808090 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%;
  transform-origin: 50% 100%;
  animation: ld-quill 3s ease-in-out infinite;
}
.scn-logic-data .inkwell {
  position: absolute; bottom: 18%; left: 55%; width: 18px; height: 20px;
  background: radial-gradient(circle, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 30% 30% 40% 40% / 50% 50% 30% 30%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.4);
}
.scn-logic-data .lamp {
  position: absolute; bottom: 45%; left: 60%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #c8a060 0%, #a08040 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%;
  box-shadow: 0 0 12px 6px rgba(200,160,96,0.3);
  animation: ld-lamp 4s ease-in-out infinite alternate;
}
.scn-logic-data .shadow {
  position: absolute; bottom: 0; left: 20%; width: 40%; height: 20%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 70%);
  animation: ld-shadow 8s ease-in-out infinite alternate;
}
@keyframes ld-logbook { 0% { transform: rotate(2deg) translateY(0) } 50% { transform: rotate(1.5deg) translateY(-1px) } 100% { transform: rotate(2.5deg) translateY(0) } }
@keyframes ld-page { 0% { transform: rotate(2deg) } 50% { transform: rotate(2.5deg) scaleX(1.01) } 100% { transform: rotate(1.8deg) } }
@keyframes ld-quill { 0% { transform: rotate(-5deg) } 30% { transform: rotate(5deg) } 60% { transform: rotate(-3deg) } 100% { transform: rotate(-5deg) } }
@keyframes ld-lamp { 0% { box-shadow: 0 0 8px 4px rgba(200,160,96,0.2); opacity: 0.9 } 50% { box-shadow: 0 0 18px 8px rgba(200,160,96,0.5); opacity: 1 } 100% { box-shadow: 0 0 10px 5px rgba(200,160,96,0.3); opacity: 0.95 } }
@keyframes ld-shadow { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.1) } 100% { transform: scaleX(0.95) } }

/* creature-exists */
.scn-creature-exists {
  background:
    linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 50%, #00101a 100%),
    radial-gradient(ellipse at 50% 20%, #2a3a4a 0%, transparent 70%);
}
.scn-creature-exists .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #2a4a5a 0%, #1a3a4a 100%);
  animation: ce-sky 18s ease-in-out infinite alternate;
}
.scn-creature-exists .ocean {
  position: absolute; bottom: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(180deg, #0a2a3a 0%, #00101a 100%);
  border-radius: 0 0 50% 50% / 0 0 30% 30%;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.6);
}
.scn-creature-exists .ship {
  position: absolute; bottom: 40%; left: 20%; width: 70px; height: 18px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 10% 10% 30% 30% / 40% 40% 20% 20%;
  transform: rotate(-4deg);
  animation: ce-ship 8s ease-in-out infinite alternate;
}
.scn-creature-exists .ship-light {
  position: absolute; bottom: 48%; left: 24%; width: 10px; height: 10px;
  background: radial-gradient(circle, #e0d090 0%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 20px 10px rgba(224,208,144,0.5);
  animation: ce-light 5s ease-in-out infinite alternate;
}
.scn-creature-exists .creature {
  position: absolute; bottom: 15%; right: 15%; width: 120px; height: 60px;
  background: radial-gradient(ellipse, #1a3a4a 0%, #0a1a2a 100%);
  border-radius: 40% 60% 50% 50% / 60% 40% 40% 40%;
  transform: scaleX(1.2);
  box-shadow: 0 0 60px 15px rgba(0,20,30,0.8);
  animation: ce-creature 14s ease-in-out infinite;
}
.scn-creature-exists .wave-1 {
  position: absolute; bottom: 10%; left: 0; right: 0; height: 25px;
  background: linear-gradient(90deg, transparent 0%, rgba(60,100,130,0.4) 50%, transparent 100%);
  border-radius: 50%;
  filter: blur(3px);
  animation: ce-wave1 7s linear infinite;
}
.scn-creature-exists .wave-2 {
  position: absolute; bottom: 22%; left: 0; right: 0; height: 18px;
  background: linear-gradient(90deg, transparent 0%, rgba(60,100,130,0.25) 50%, transparent 100%);
  border-radius: 50%;
  filter: blur(2px);
  animation: ce-wave2 13s linear infinite reverse;
}
.scn-creature-exists .fog {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 30% 50%, rgba(180,200,220,0.1) 0%, transparent 60%);
  animation: ce-fog 25s ease-in-out infinite alternate;
}
@keyframes ce-sky { 0% { opacity: 0.7 } 50% { opacity: 0.9 } 100% { opacity: 0.75 } }
@keyframes ce-ship { 0% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(3deg) translateY(-3px) } 100% { transform: rotate(-2deg) translateY(0) } }
@keyframes ce-light { 0% { opacity: 0.5; transform: scale(0.8) } 50% { opacity: 1; transform: scale(1.2) } 100% { opacity: 0.7; transform: scale(0.9) } }
@keyframes ce-creature { 0% { transform: scaleX(1.2) translateY(0) } 30% { transform: scaleX(1.3) translateY(-10px) } 60% { transform: scaleX(1.1) translateY(-5px) } 100% { transform: scaleX(1.2) translateY(0) } }
@keyframes ce-wave1 { 0% { transform: translateX(-15%) } 100% { transform: translateX(15%) } }
@keyframes ce-wave2 { 0% { transform: translateX(10%) } 100% { transform: translateX(-10%) } }
@keyframes ce-fog { 0% { opacity: 0.1 } 50% { opacity: 0.4 } 100% { opacity: 0.15 } }

/* scene: sea-food */
.scn-sea-food {
  background: linear-gradient(180deg, #f0e6d0 0%, #e0d4b8 30%, #c8b898 60%, #b0a080 100%),
              radial-gradient(ellipse at 20% 30%, rgba(150,200,230,.25) 0%, transparent 60%);
}
.scn-sea-food .sf-bg      { position:absolute; inset:0; background: linear-gradient(135deg, rgba(255,248,230,.6) 0%, transparent 50%); }
.scn-sea-food .sf-window  { position:absolute; top:8%; right:10%; width:30%; height:50%; background: radial-gradient(ellipse at 50% 50%, #0a3a5a 0%, #041a2a 80%); border-radius:50%; border:6px solid #8a7a5a; box-shadow: inset 0 0 30px rgba(0,0,0,.4); animation: sf-water 20s ease-in-out infinite; }
.scn-sea-food .sf-table   { position:absolute; bottom:10%; left:5%; right:5%; height:8%; background: linear-gradient(180deg, #6b5a3a 0%, #4a3a2a 100%); border-radius:4px; box-shadow: 0 4px 8px rgba(0,0,0,.3); }
.scn-sea-food .sf-plate1  { position:absolute; bottom:20%; left:20%; width:12%; height:6%; background: radial-gradient(circle at 50% 40%, #f8f0e0 0%, #d8c8a8 100%); border-radius:50%; box-shadow: 0 2px 6px rgba(0,0,0,.2); animation: sf-bob 6s ease-in-out infinite; }
.scn-sea-food .sf-plate2  { position:absolute; bottom:18%; left:45%; width:10%; height:5%; background: radial-gradient(circle at 50% 40%, #f8f0e0 0%, #d8c8a8 100%); border-radius:50%; animation: sf-bob 8s ease-in-out infinite 1s; }
.scn-sea-food .sf-food    { position:absolute; bottom:22%; left:23%; width:6%; height:4%; background: radial-gradient(circle, #c8a060 0%, #8a6a30 100%); border-radius:50% 50% 40% 40%; transform:rotate(-10deg); animation: sf-twitch 4s ease-in-out infinite; }
.scn-sea-food .sf-figure  { position:absolute; bottom:15%; left:55%; width:10%; height:35%; background: linear-gradient(180deg, #2a2218 0%, #1a140e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sf-breathe 5s ease-in-out infinite; }
.scn-sea-food .sf-ray     { position:absolute; top:10%; left:20%; width:2%; height:40%; background: linear-gradient(180deg, rgba(200,220,255,.2) 0%, transparent 100%); transform:rotate(-20deg); filter: blur(4px); animation: sf-ray 8s ease-in-out infinite alternate; }
@keyframes sf-water   { 0% { transform: scale(1) translate(0,0) } 50% { transform: scale(1.02) translate(3px,-2px) } 100% { transform: scale(1) translate(0,0) } }
@keyframes sf-bob     { 0% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-3px) rotate(2deg) } 75% { transform: translateY(1px) rotate(-1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes sf-twitch  { 0% { transform: rotate(-10deg) scale(1) } 30% { transform: rotate(-8deg) scale(1.05) } 70% { transform: rotate(-12deg) scale(.95) } 100% { transform: rotate(-10deg) scale(1) } }
@keyframes sf-breathe { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(1) } }
@keyframes sf-ray     { 0% { opacity: .3; transform: rotate(-20deg) scaleY(.9) } 100% { opacity: .7; transform: rotate(-15deg) scaleY(1.2) } }

/* scene: love-sea */
.scn-love-sea {
  background: linear-gradient(180deg, #f5c080 0%, #e0a060 30%, #c08040 70%, #a06030 100%),
              radial-gradient(ellipse at 50% 80%, #f0d090 0%, transparent 60%);
}
.scn-love-sea .ls-bg        { position:absolute; inset:0; background: linear-gradient(135deg, rgba(255,200,100,.3) 0%, transparent 50%); }
.scn-love-sea .ls-porthole  { position:absolute; top:5%; left:10%; width:40%; height:50%; background: radial-gradient(ellipse at 40% 30%, #1a5a8a 0%, #04122a 90%); border-radius:50%; border:8px solid #7a5a3a; box-shadow: inset 0 0 40px rgba(0,0,0,.5); animation: ls-sea 25s ease-in-out infinite; }
.scn-love-sea .ls-sun       { position:absolute; top:12%; left:12%; width:10%; height:10%; background: radial-gradient(circle, #ffd080 0%, #ffa030 60%, transparent 80%); border-radius:50%; box-shadow: 0 0 40px 20px rgba(255,200,80,.4); animation: ls-pulse 7s ease-in-out infinite; }
.scn-love-sea .ls-figure    { position:absolute; bottom:12%; left:22%; width:12%; height:40%; background: linear-gradient(180deg, #2a2018 0%, #1a1008 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ls-breathe 6s ease-in-out infinite; }
.scn-love-sea .ls-arm-left  { position:absolute; bottom:30%; left:20%; width:4%; height:18%; background: #1a1008; border-radius: 50% 50% 0 0; transform: rotate(20deg); transform-origin: bottom center; animation: ls-wave 8s ease-in-out infinite; }
.scn-love-sea .ls-arm-right { position:absolute; bottom:30%; left:32%; width:4%; height:18%; background: #1a1008; border-radius: 50% 50% 0 0; transform: rotate(-30deg); transform-origin: bottom center; animation: ls-wave 8s ease-in-out infinite 2s; }
.scn-love-sea .ls-glint     { position:absolute; top:10%; left:35%; width:3%; height:3%; background: radial-gradient(circle, #fff8e0 0%, transparent 70%); border-radius:50%; filter: blur(2px); animation: ls-glint 3s ease-in-out infinite; }
@keyframes ls-sea    { 0% { transform: scale(1) } 50% { transform: scale(1.01) translate(2px,-1px) } 100% { transform: scale(1) } }
@keyframes ls-pulse  { 0% { transform: scale(1); opacity: .8 } 50% { transform: scale(1.15); opacity: 1 } 100% { transform: scale(1); opacity: .8 } }
@keyframes ls-breathe{ 0% { transform: scaleY(1) } 50% { transform: scaleY(1.03) } 100% { transform: scaleY(1) } }
@keyframes ls-wave   { 0% { transform: rotate(20deg) } 25% { transform: rotate(30deg) } 75% { transform: rotate(10deg) } 100% { transform: rotate(20deg) } }
@keyframes ls-glint  { 0% { transform: translate(0,0); opacity: 0 } 50% { transform: translate(5px,-3px); opacity: 1 } 100% { transform: translate(0,0); opacity: 0 } }

/* scene: library-headroom */
.scn-library-headroom {
  background: linear-gradient(180deg, #b8a080 0%, #8a7050 30%, #5a4830 70%, #3a2818 100%),
              radial-gradient(ellipse at 50% 30%, #e0c8a0 0%, transparent 60%);
}
.scn-library-headroom .lb-bg       { position:absolute; inset:0; background: linear-gradient(135deg, rgba(200,180,150,.3) 0%, transparent 50%); }
.scn-library-headroom .lb-shelf-top{ position:absolute; top:15%; left:5%; right:5%; height:10%; background: linear-gradient(180deg, #6a5030 0%, #3a2810 100%); border-radius:4px; box-shadow: 0 4px 8px rgba(0,0,0,.4); }
.scn-library-headroom .lb-shelf-mid{ position:absolute; top:40%; left:5%; right:5%; height:10%; background: linear-gradient(180deg, #6a5030 0%, #3a2810 100%); border-radius:4px; box-shadow: 0 4px 8px rgba(0,0,0,.4); }
.scn-library-headroom .lb-books    { position:absolute; top:12%; left:8%; width:70%; height:8%; background: repeating-linear-gradient(90deg, #8a6a3a 0px, #8a6a3a 4px, #a08050 4px, #a08050 8px, #6a4a2a 8px, #6a4a2a 12px); border-radius:2px; box-shadow: 0 2px 4px rgba(0,0,0,.5); animation: lb-read 12s ease-in-out infinite; }
.scn-library-headroom .lb-lamp     { position:absolute; top:8%; left:20%; width:8%; height:12%; background: radial-gradient(ellipse at 50% 20%, #ffe8b0 0%, #c09848 100%); border-radius:50% 50% 30% 30%; box-shadow: 0 0 30px 10px rgba(200,150,60,.4); animation: lb-glow 5s ease-in-out infinite alternate; }
.scn-library-headroom .lb-desk     { position:absolute; bottom:18%; left:10%; right:10%; height:8%; background: linear-gradient(180deg, #5a4028 0%, #3a2818 100%); border-radius:4px; box-shadow: 0 4px 6px rgba(0,0,0,.5); }
.scn-library-headroom .lb-figure   { position:absolute; bottom:20%; left:35%; width:12%; height:30%; background: linear-gradient(180deg, #2a1c10 0%, #0e0804 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lb-reader 6s ease-in-out infinite; }
@keyframes lb-read   { 0% { transform: translateX(0) } 50% { transform: translateX(2px) } 100% { transform: translateX(0) } }
@keyframes lb-glow   { 0% { box-shadow: 0 0 20px 8px rgba(200,150,60,.3); opacity:.9 } 50% { box-shadow: 0 0 35px 15px rgba(200,150,60,.6); opacity:1 } 100% { box-shadow: 0 0 25px 10px rgba(200,150,60,.4); opacity:.9 } }
@keyframes lb-reader { 0% { transform: translateY(0) rotate(-1deg) } 30% { transform: translateY(-2px) rotate(2deg) } 70% { transform: translateY(1px) rotate(-2deg) } 100% { transform: translateY(0) rotate(-1deg) } }

/* scene: smoking-room */
.scn-smoking-room {
  background: linear-gradient(180deg, #1a1008 0%, #2a1c0e 30%, #3a2818 60%, #1a1008 100%),
              radial-gradient(ellipse at 50% 60%, #6a4020 0%, transparent 70%);
}
.scn-smoking-room .sr-bg      { position:absolute; inset:0; background: linear-gradient(135deg, rgba(60,40,20,.4) 0%, transparent 50%); }
.scn-smoking-room .sr-brazier { position:absolute; bottom:20%; left:15%; width:20%; height:15%; background: radial-gradient(ellipse at 50% 70%, #c05828 0%, #5a2010 100%); border-radius:50% 50% 40% 40%; box-shadow: inset 0 0 20px #f08030; animation: sr-fire 1.5s ease-in-out infinite alternate; }
.scn-smoking-room .sr-fire    { position:absolute; bottom:25%; left:17%; width:10%; height:10%; background: radial-gradient(circle, #ffb040 0%, #ff6020 40%, transparent 70%); border-radius:50%; box-shadow: 0 0 30px 15px #ff6020; animation: sr-flicker .8s ease-in-out infinite; }
.scn-smoking-room .sr-chair   { position:absolute; bottom:12%; left:45%; width:20%; height:30%; background: linear-gradient(180deg, #4a3020 0%, #2a1c0e 100%); border-radius: 10% 10% 30% 30%; box-shadow: 0 6px 12px rgba(0,0,0,.6); transform: skewX(-3deg); animation: sr-creak 12s ease-in-out infinite; }
.scn-smoking-room .sr-table   { position:absolute; bottom:20%; left:38%; width:10%; height:6%; background: linear-gradient(180deg, #6a4020 0%, #3a2010 100%); border-radius:6px; box-shadow: 0 4px 8px rgba(0,0,0,.5); }
.scn-smoking-room .sr-cigar   { position:absolute; bottom:23%; left:41%; width:4%; height:2%; background: #c8a060; border-radius:2px 50% 50% 2px; transform:rotate(-20deg); animation: sr-smolder 4s ease-in-out infinite; }
.scn-smoking-room .sr-smoke1  { position:absolute; bottom:27%; left:43%; width:6%; height:10%; background: radial-gradient(ellipse, rgba(180,160,140,.4) 0%, transparent 70%); filter: blur(6px); animation: sr-drift1 12s linear infinite; }
.scn-smoking-room .sr-smoke2  { position:absolute; bottom:25%; left:46%; width:5%; height:8%; background: radial-gradient(ellipse, rgba(180,160,140,.3) 0%, transparent 70%); filter: blur(5px); animation: sr-drift2 15s linear infinite 3s; }
@keyframes sr-fire    { 0% { transform: scaleY(1) } 100% { transform: scaleY(1.08) } }
@keyframes sr-flicker { 0% { opacity: .8; transform: scale(1) } 50% { opacity: 1; transform: scale(1.2) } 100% { opacity: .9; transform: scale(.95) } }
@keyframes sr-creak   { 0% { transform: skewX(-3deg) translateY(0) } 30% { transform: skewX(-2deg) translateY(-1px) } 70% { transform: skewX(-4deg) translateY(1px) } 100% { transform: skewX(-3deg) translateY(0) } }
@keyframes sr-smolder { 0% { opacity: .7; transform: rotate(-20deg) } 50% { opacity: 1; transform: rotate(-15deg) } 100% { opacity: .8; transform: rotate(-20deg) } }
@keyframes sr-drift1  { 0% { transform: translateY(0) translateX(0) scale(1); opacity: .4 } 25% { transform: translateY(-30px) translateX(10px) scale(1.2); opacity: .3 } 50% { transform: translateY(-60px) translateX(-5px) scale(1.5); opacity: .2 } 75% { transform: translateY(-90px) translateX(15px) scale(1.8); opacity: .1 } 100% { transform: translateY(-120px) translateX(0) scale(2); opacity: 0 } }
@keyframes sr-drift2  { 0% { transform: translateY(0) translateX(0) scale(1); opacity: .4 } 25% { transform: translateY(-25px) translateX(-12px) scale(1.1); opacity: .3 } 50% { transform: translateY(-50px) translateX(8px) scale(1.3); opacity: .2 } 75% { transform: translateY(-75px) translateX(-6px) scale(1.6); opacity: .1 } 100% { transform: translateY(-100px) translateX(0) scale(2); opacity: 0 } }

.scn-museum-treasures {
  background: linear-gradient(165deg, #f5e6c8 0%, #d4b896 40%, #a67c52 100%), radial-gradient(ellipse at 50% 30%, #f7d9a5 0%, transparent 60%);
}
.scn-museum-treasures .bg-mt {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #eedcc0 0%, #dcc4a0 100%);
  animation: mt-bg 12s ease-in-out infinite alternate;
}
.scn-museum-treasures .floor-mt {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #8b6b3e 0%, #5a4020 100%);
  border-radius: 20% 20% 0 0 / 30% 30% 0 0;
}
.scn-museum-treasures .jet-mt {
  position: absolute; bottom: 38%; left: 50%; width: 6px; height: 28%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #fffbe6 0%, #ffd966 50%, #b87a3a 100%);
  border-radius: 50% 50% 0 0;
  box-shadow: 0 0 30px 8px rgba(255, 217, 102, 0.6);
  animation: mt-jet 4s ease-in-out infinite;
}
.scn-museum-treasures .basin-mt {
  position: absolute; bottom: 20%; left: 50%; width: 100px; height: 40px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 60%, #2a4a6a 0%, #1a2a4a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: inset 0 4px 10px rgba(0,0,0,0.5), 0 0 20px rgba(100, 180, 255, 0.3);
  animation: mt-basin 8s ease-in-out infinite alternate;
}
.scn-museum-treasures .shelf-left-mt {
  position: absolute; top: 15%; left: 5%; width: 22%; height: 55%;
  background: linear-gradient(180deg, #7a5a30 0%, #4a3018 100%);
  border-radius: 4px;
  box-shadow: inset 0 2px 8px rgba(0,0,0,0.4);
  animation: mt-shelf-l 10s ease-in-out infinite alternate;
}
.scn-museum-treasures .shelf-right-mt {
  position: absolute; top: 10%; right: 5%; width: 20%; height: 65%;
  background: linear-gradient(180deg, #7a5a30 0%, #4a3018 100%);
  border-radius: 4px;
  box-shadow: inset 0 2px 8px rgba(0,0,0,0.4);
  animation: mt-shelf-r 12s ease-in-out infinite alternate;
}
.scn-museum-treasures .curio-mt {
  position: absolute; top: 20%; left: 10%; width: 12px; height: 16px;
  background: radial-gradient(circle at 50% 40%, #d4a05a 0%, #a07040 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: mt-curio 6s ease-in-out infinite;
}
.scn-museum-treasures .figure-mt {
  position: absolute; bottom: 34%; left: 50%; width: 24px; height: 50px;
  transform: translateX(-45%);
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 45% 45% 40% 40% / 55% 55% 45% 45%;
  animation: mt-figure 5s ease-in-out infinite alternate;
}
@keyframes mt-bg { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes mt-jet { 0% { transform: translateX(-50%) scaleY(0.9); opacity: 0.7; } 25% { transform: translateX(-50%) scaleY(1.05); opacity: 1; } 50% { transform: translateX(-50%) scaleY(0.95); opacity: 0.85; } 75% { transform: translateX(-50%) scaleY(1.02); opacity: 1; } 100% { transform: translateX(-50%) scaleY(0.9); opacity: 0.7; } }
@keyframes mt-basin { 0% { transform: translateX(-50%) scaleY(0.98); box-shadow: inset 0 4px 10px rgba(0,0,0,0.5), 0 0 15px rgba(100,180,255,0.2); } 50% { transform: translateX(-50%) scaleY(1.02); box-shadow: inset 0 4px 12px rgba(0,0,0,0.6), 0 0 25px rgba(100,180,255,0.4); } 100% { transform: translateX(-50%) scaleY(0.99); box-shadow: inset 0 4px 10px rgba(0,0,0,0.5), 0 0 18px rgba(100,180,255,0.25); } }
@keyframes mt-shelf-l { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes mt-shelf-r { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes mt-curio { 0% { transform: scale(1) rotate(-10deg); opacity: 0.8; } 50% { transform: scale(1.1) rotate(5deg); opacity: 1; } 100% { transform: scale(1) rotate(-5deg); opacity: 0.8; } }
@keyframes mt-figure { 0% { transform: translateX(-45%) scaleY(0.98); } 50% { transform: translateX(-45%) scaleY(1.02); } 100% { transform: translateX(-45%) scaleY(0.98); } }

.scn-zoophyte-collection {
  background: linear-gradient(180deg, #e8f0e0 0%, #c8d8b0 40%, #a0b88a 100%), radial-gradient(ellipse at 50% 20%, #f0f8e8 0%, transparent 60%);
}
.scn-zoophyte-collection .bg-zc {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #d8e8c8 0%, #b8c8a0 100%);
  animation: zc-bg 15s ease-in-out infinite alternate;
}
.scn-zoophyte-collection .case-zc {
  position: absolute; bottom: 10%; left: 10%; right: 10%; height: 65%;
  background: linear-gradient(135deg, #a0b890 0%, #7a9670 100%);
  border-radius: 8px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.2), 0 0 30px rgba(100,180,120,0.15);
  animation: zc-case 20s ease-in-out infinite alternate;
}
.scn-zoophyte-collection .coral-1-zc {
  position: absolute; bottom: 30%; left: 20%; width: 30px; height: 60px;
  background: radial-gradient(circle at 50% 30%, #d68a5a 0%, #a05a30 60%, #5a3018 100%);
  border-radius: 30% 70% 40% 60% / 50% 60% 40% 50%;
  transform-origin: bottom center;
  animation: zc-coral1 10s ease-in-out infinite;
}
.scn-zoophyte-collection .coral-2-zc {
  position: absolute; bottom: 28%; left: 45%; width: 40px; height: 72px;
  background: radial-gradient(circle at 50% 30%, #b07850 0%, #804828 60%, #48281a 100%);
  border-radius: 60% 40% 30% 70% / 40% 60% 40% 60%;
  transform-origin: bottom center;
  animation: zc-coral2 12s ease-in-out infinite alternate;
}
.scn-zoophyte-collection .coral-3-zc {
  position: absolute; bottom: 32%; right: 22%; width: 25px; height: 50px;
  background: radial-gradient(circle at 50% 30%, #c89070 0%, #906848 60%, #583828 100%);
  border-radius: 40% 60% 50% 50% / 55% 45% 55% 45%;
  transform-origin: bottom center;
  animation: zc-coral3 8s ease-in-out infinite;
}
.scn-zoophyte-collection .highlight-zc {
  position: absolute; top: 15%; left: 30%; width: 40px; height: 20px;
  background: radial-gradient(ellipse, rgba(255,255,220,0.4) 0%, transparent 100%);
  filter: blur(8px);
  animation: zc-highlight 5s ease-in-out infinite alternate;
}
@keyframes zc-bg { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes zc-case { 0% { transform: scaleY(0.98); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(0.98); } }
@keyframes zc-coral1 { 0% { transform: rotate(-5deg) scaleY(1); } 25% { transform: rotate(3deg) scaleY(0.97); } 50% { transform: rotate(-2deg) scaleY(1.03); } 75% { transform: rotate(4deg) scaleY(0.98); } 100% { transform: rotate(-5deg) scaleY(1); } }
@keyframes zc-coral2 { 0% { transform: rotate(4deg) scaleY(0.95); } 33% { transform: rotate(-3deg) scaleY(1.05); } 66% { transform: rotate(2deg) scaleY(0.98); } 100% { transform: rotate(-4deg) scaleY(0.95); } }
@keyframes zc-coral3 { 0% { transform: rotate(-8deg) scaleY(1); } 50% { transform: rotate(5deg) scaleY(0.96); } 100% { transform: rotate(-3deg) scaleY(1); } }
@keyframes zc-highlight { 0% { opacity: 0.3; transform: translateX(0); } 50% { opacity: 0.7; transform: translateX(10px); } 100% { opacity: 0.3; transform: translateX(0); } }

.scn-mollusk-collection {
  background: linear-gradient(180deg, #f5edd6 0%, #decfb0 40%, #b8a080 100%), radial-gradient(ellipse at 50% 20%, #faf0e0 0%, transparent 60%);
}
.scn-mollusk-collection .bg-mc {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #e8dcc8 0%, #c8b8a0 100%);
  animation: mc-bg 18s ease-in-out infinite alternate;
}
.scn-mollusk-collection .shelf-mc {
  position: absolute; bottom: 15%; left: 5%; right: 5%; height: 12%;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a1a 100%);
  border-radius: 6px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.4);
  animation: mc-shelf 14s ease-in-out infinite alternate;
}
.scn-mollusk-collection .shell-large-mc {
  position: absolute; bottom: 22%; left: 18%; width: 50px; height: 45px;
  background: radial-gradient(ellipse at 40% 40%, #dbb88a 0%, #b88858 50%, #8a6040 100%);
  border-radius: 45% 55% 50% 50% / 50% 50% 50% 50%;
  transform-origin: center bottom;
  animation: mc-shell-large 10s ease-in-out infinite alternate;
}
.scn-mollusk-collection .shell-small-mc {
  position: absolute; bottom: 25%; right: 28%; width: 28px; height: 24px;
  background: radial-gradient(ellipse at 60% 40%, #e0c098 0%, #b89068 50%, #886048 100%);
  border-radius: 50% 50% 40% 60% / 60% 40% 60% 40%;
  transform-origin: center bottom;
  animation: mc-shell-small 8s ease-in-out infinite alternate;
}
.scn-mollusk-collection .shell-spiral-mc {
  position: absolute; bottom: 20%; left: 55%; width: 36px; height: 40px;
  background: radial-gradient(circle at 40% 40%, #e8c8a0 0%, #c09060 40%, #906848 80%, #5a3820 100%);
  border-radius: 30% 70% 50% 50% / 60% 40% 60% 40%;
  clip-path: polygon(20% 0, 80% 0, 100% 50%, 80% 100%, 20% 100%, 0 50%);
  animation: mc-shell-spiral 12s ease-in-out infinite alternate;
}
.scn-mollusk-collection .shadow-mc {
  position: absolute; bottom: 16%; left: 15%; right: 15%; height: 8%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.15) 0%, transparent 100%);
  filter: blur(6px);
  animation: mc-shadow 10s ease-in-out infinite alternate;
}
.scn-mollusk-collection .sparkle-mc {
  position: absolute; top: 18%; left: 40%; width: 6px; height: 6px;
  background: radial-gradient(circle, #fff8e0 0%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 10px 4px rgba(255,248,224,0.5);
  animation: mc-sparkle 4s ease-in-out infinite;
}
@keyframes mc-bg { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes mc-shelf { 0% { transform: translateY(0); box-shadow: 0 4px 12px rgba(0,0,0,0.4); } 50% { transform: translateY(-2px); box-shadow: 0 6px 18px rgba(0,0,0,0.5); } 100% { transform: translateY(0); box-shadow: 0 4px 12px rgba(0,0,0,0.4); } }
@keyframes mc-shell-large { 0% { transform: rotate(-5deg) scaleY(1); } 50% { transform: rotate(3deg) scaleY(0.95); } 100% { transform: rotate(-5deg) scaleY(1); } }
@keyframes mc-shell-small { 0% { transform: rotate(8deg) scaleX(0.95); } 50% { transform: rotate(-4deg) scaleX(1.05); } 100% { transform: rotate(6deg) scaleX(0.95); } }
@keyframes mc-shell-spiral { 0% { transform: scale(0.98) rotate(-10deg); } 50% { transform: scale(1.02) rotate(5deg); } 100% { transform: scale(0.98) rotate(-10deg); } }
@keyframes mc-shadow { 0% { opacity: 0.6; transform: scaleX(0.95); } 50% { opacity: 0.9; transform: scaleX(1.05); } 100% { opacity: 0.6; transform: scaleX(0.95); } }
@keyframes mc-sparkle { 0% { opacity: 0.2; transform: scale(0.8); } 50% { opacity: 1; transform: scale(1.2); } 100% { opacity: 0.2; transform: scale(0.8); } }

.scn-pearl-collection {
  background: linear-gradient(180deg, #edebd8 0%, #d4cbb0 40%, #b0a280 100%), radial-gradient(ellipse at 50% 20%, #f8f2e0 0%, transparent 60%);
}
.scn-pearl-collection .bg-pc {
  position: absolute; inset: 0 0 15% 0;
  background: linear-gradient(180deg, #e0dac8 0%, #c0b8a0 100%);
  animation: pc-bg 16s ease-in-out infinite alternate;
}
.scn-pearl-collection .cabinet-pc {
  position: absolute; bottom: 10%; left: 15%; right: 15%; height: 70%;
  background: linear-gradient(135deg, #8a7050 0%, #5a4028 100%);
  border-radius: 8px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.4), 0 0 30px rgba(100,80,60,0.2);
  animation: pc-cabinet 22s ease-in-out infinite alternate;
}
.scn-pearl-collection .comp-1-pc {
  position: absolute; top: 12%; left: 12%; width: 20%; height: 30%;
  background: linear-gradient(135deg, #c8b898 0%, #a89070 100%);
  border-radius: 4px;
  box-shadow: inset 0 2px 4px rgba(0,0,0,0.2);
  animation: pc-comp 14s ease-in-out infinite alternate;
}
.scn-pearl-collection .comp-2-pc {
  position: absolute; top: 12%; left: 40%; width: 20%; height: 30%;
  background: linear-gradient(135deg, #c8b898 0%, #a89070 100%);
  border-radius: 4px;
  box-shadow: inset 0 2px 4px rgba(0,0,0,0.2);
  animation: pc-comp 14s ease-in-out infinite alternate-reverse;
}
.scn-pearl-collection .comp-3-pc {
  position: absolute; top: 12%; left: 68%; width: 20%; height: 30%;
  background: linear-gradient(135deg, #c8b898 0%, #a89070 100%);
  border-radius: 4px;
  box-shadow: inset 0 2px 4px rgba(0,0,0,0.2);
  animation: pc-comp 14s ease-in-out infinite alternate;
}
.scn-pearl-collection .pearl-1-pc {
  position: absolute; top: 18%; left: 18%; width: 14px; height: 14px;
  background: radial-gradient(circle at 40% 40%, #f8f0e8 0%, #e8d8c0 60%, #c8a888 100%);
  border-radius: 50%;
  box-shadow: 0 0 12px 4px rgba(200,180,160,0.5), inset 0 2px 4px rgba(255,255,255,0.6);
  animation: pc-pearl 6s ease-in-out infinite alternate;
}
.scn-pearl-collection .pearl-2-pc {
  position: absolute; top: 22%; left: 46%; width: 12px; height: 12px;
  background: radial-gradient(circle at 40% 40%, #f0ece0 0%, #d8c8a8 60%, #b89878 100%);
  border-radius: 50%;
  box-shadow: 0 0 10px 3px rgba(200,180,150,0.4), inset 0 2px 4px rgba(255,255,255,0.5);
  animation: pc-pearl 8s ease-in-out infinite alternate-reverse;
}
.scn-pearl-collection .pearl-3-pc {
  position: absolute; top: 20%; left: 74%; width: 16px; height: 16px;
  background: radial-gradient(circle at 40% 40%, #f8f4ee 0%, #e8dcc8 60%, #c8b098 100%);
  border-radius: 50%;
  box-shadow: 0 0 14px 5px rgba(200,180,160,0.5), inset 0 2px 4px rgba(255,255,255,0.6);
  animation: pc-pearl 7s ease-in-out infinite alternate;
}
.scn-pearl-collection .glow-pc {
  position: absolute; top: 8%; left: 30%; width: 40%; height: 15%;
  background: radial-gradient(ellipse, rgba(255,248,230,0.3) 0%, transparent 100%);
  filter: blur(12px);
  animation: pc-glow 5s ease-in-out infinite alternate;
}
@keyframes pc-bg { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes pc-cabinet { 0% { transform: scaleY(0.98); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(0.98); } }
@keyframes pc-comp { 0% { opacity: 0.9; transform: scaleX(0.98); } 50% { opacity: 1; transform: scaleX(1.02); } 100% { opacity: 0.9; transform: scaleX(0.98); } }
@keyframes pc-pearl { 0% { transform: scale(0.9) rotate(0); opacity: 0.8; box-shadow: 0 0 8px 2px rgba(200,180,160,0.3); } 50% { transform: scale(1.1) rotate(15deg); opacity: 1; box-shadow: 0 0 16px 6px rgba(200,180,160,0.6); } 100% { transform: scale(0.95) rotate(5deg); opacity: 0.85; box-shadow: 0 0 10px 3px rgba(200,180,160,0.4); } }
@keyframes pc-glow { 0% { opacity: 0.2; transform: translateX(0); } 50% { opacity: 0.5; transform: translateX(10px); } 100% { opacity: 0.2; transform: translateX(0); } }

/* wonder-and-skepticism */
.scn-wonder-and-skepticism {
  background: linear-gradient(180deg, #c8a87a 0%, #b89560 40%, #a07850 100%),
              radial-gradient(ellipse at 60% 40%, #e8d4a0 0%, transparent 70%);
}
.scn-wonder-and-skepticism .wall {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, rgba(200,168,122,0.6) 0%, rgba(180,149,96,0.3) 100%);
  animation: wands-wall 60s ease-in-out infinite alternate;
}
.scn-wonder-and-skepticism .window {
  position: absolute; top: 10%; left: 55%; width: 100px; height: 130px;
  background: linear-gradient(180deg, #6b8db8 0%, #aac4e0 60%, #c8ddf0 100%);
  border-radius: 6px; box-shadow: inset 0 0 20px rgba(255,255,200,0.6);
  animation: wands-window 20s ease-in-out infinite alternate;
}
.scn-wonder-and-skepticism .bookshelf {
  position: absolute; top: 18%; left: 6%; width: 160px; height: 200px;
  background: linear-gradient(90deg, #6a4a2a 0%, #8a6040 30%, #5a3a1a 70%);
  border-radius: 4px; box-shadow: 3px 3px 12px rgba(0,0,0,0.25);
  animation: wands-shelf 30s ease-in-out infinite;
}
.scn-wonder-and-skepticism .desk {
  position: absolute; bottom: 8%; left: 20%; width: 240px; height: 50px;
  background: linear-gradient(180deg, #a07850 0%, #805530 100%);
  border-radius: 6px; box-shadow: 0 4px 15px rgba(0,0,0,0.3);
  animation: wands-desk 18s ease-in-out infinite;
}
.scn-wonder-and-skepticism .globe {
  position: absolute; bottom: 32%; left: 42%; width: 60px; height: 60px;
  background: radial-gradient(circle at 30% 30%, #7aa0c0 0%, #4a6080 60%);
  border-radius: 50%; box-shadow: -2px 2px 8px rgba(0,0,0,0.3);
  animation: wands-globe 14s ease-in-out infinite;
}
.scn-wonder-and-skepticism .figure {
  position: absolute; bottom: 12%; left: 56%; width: 30px; height: 90px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 35% 35% / 50% 50% 35% 35%;
  transform-origin: bottom center;
  animation: wands-figure 6s ease-in-out infinite;
}
.scn-wonder-and-skepticism .lamp {
  position: absolute; top: 22%; left: 48%; width: 14px; height: 18px;
  background: radial-gradient(circle, #ffe8a0 0%, #c8a060 80%);
  border-radius: 20% 20% 10% 10%; box-shadow: 0 0 40px 12px rgba(255,232,160,0.5), 0 0 80px 25px rgba(200,160,96,0.3);
  animation: wands-lamp 4s ease-in-out infinite alternate;
}
.scn-wonder-and-skepticism .shadow {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 60% 50%, transparent 30%, rgba(0,0,0,0.08) 100%);
  animation: wands-shadow 15s ease-in-out infinite alternate;
}
@keyframes wands-wall { 0% { opacity: 1 } 50% { opacity: 0.8 } 100% { opacity: 0.95 } }
@keyframes wands-window { 0% { background: linear-gradient(180deg, #6b8db8 0%, #aac4e0 60%, #c8ddf0 100%); } 33% { background: linear-gradient(180deg, #809fc0 0%, #b0cce0 60%, #d8e8f0 100%); } 66% { background: linear-gradient(180deg, #5a7aa0 0%, #9ab8d0 60%, #b8d0e0 100%); } 100% { background: linear-gradient(180deg, #6b8db8 0%, #aac4e0 60%, #c8ddf0 100%); } }
@keyframes wands-shelf { 0%,100% { transform: translateY(0) } 25% { transform: translateY(-2px) } 50% { transform: translateY(0) } 75% { transform: translateY(-1px) } }
@keyframes wands-desk { 0% { transform: translateY(0) } 30% { transform: translateY(-1px) } 60% { transform: translateY(0) } 100% { transform: translateY(-1.5px) } }
@keyframes wands-globe { 0% { transform: rotate(0deg) scale(1) } 25% { transform: rotate(15deg) scale(1.02) } 50% { transform: rotate(0deg) scale(1) } 75% { transform: rotate(-15deg) scale(0.98) } 100% { transform: rotate(0deg) scale(1) } }
@keyframes wands-figure { 0% { transform: translateX(0) rotate(0deg) } 15% { transform: translateX(3px) rotate(-2deg) } 30% { transform: translateX(6px) rotate(2deg) } 45% { transform: translateX(9px) rotate(-1deg) } 60% { transform: translateX(12px) rotate(1deg) } 75% { transform: translateX(15px) rotate(-2deg) } 100% { transform: translateX(18px) rotate(0deg) } }
@keyframes wands-lamp { 0% { opacity: 0.7; box-shadow: 0 0 30px 8px rgba(255,232,160,0.4); } 50% { opacity: 1; box-shadow: 0 0 50px 20px rgba(255,232,160,0.7); } 100% { opacity: 0.85; box-shadow: 0 0 35px 10px rgba(255,232,160,0.5); } }
@keyframes wands-shadow { 0% { transform: scaleY(1) } 33% { transform: scaleY(0.95) } 66% { transform: scaleY(1.05) } 100% { transform: scaleY(1) } }

/* position-fix */
.scn-position-fix {
  background: linear-gradient(180deg, #87ceeb 0%, #b0d8f0 30%, #fff5d0 100%),
              radial-gradient(ellipse at 50% 0%, rgba(255,255,200,0.4) 0%, transparent 70%);
}
.scn-position-fix .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #60a8d0 0%, #b0d8f0 60%);
  animation: pofi-sky 30s ease-in-out infinite alternate;
}
.scn-position-fix .sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 48%;
  background: linear-gradient(180deg, #2078a0 0%, #10507a 70%);
  border-radius: 20% 30% 0 0 / 50% 60% 0 0;
  animation: pofi-sea 20s ease-in-out infinite alternate;
}
.scn-position-fix .deck {
  position: absolute; bottom: 32%; left: 10%; width: 80%; height: 18%;
  background: linear-gradient(0deg, #605040 0%, #8a7060 100%);
  border-radius: 8px 8px 0 0; box-shadow: 0 -4px 10px rgba(0,0,0,0.3);
  animation: pofi-deck 25s ease-in-out infinite;
}
.scn-position-fix .railing {
  position: absolute; bottom: 42%; left: 15%; width: 70%; height: 6px;
  background: linear-gradient(90deg, #4a3a2a 0%, #7a6050 50%, #4a3a2a 100%);
  border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.2);
  animation: pofi-rail 18s ease-in-out infinite;
}
.scn-position-fix .captain {
  position: absolute; bottom: 42%; left: 40%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: pofi-captain 8s ease-in-out infinite;
}
.scn-position-fix .sextant {
  position: absolute; bottom: 48%; left: 52%; width: 40px; height: 20px;
  background: linear-gradient(135deg, #c8b060 0%, #a08840 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 20% 20%;
  transform: rotate(15deg); box-shadow: 0 2px 5px rgba(0,0,0,0.3);
  animation: pofi-sextant 12s ease-in-out infinite;
}
.scn-position-fix .sun {
  position: absolute; top: 8%; right: 20%; width: 50px; height: 50px;
  background: radial-gradient(circle, #fff8e0 0%, #ffe080 60%);
  border-radius: 50%; box-shadow: 0 0 60px 30px rgba(255,224,128,0.6);
  animation: pofi-sun 50s ease-in-out infinite alternate;
}
.scn-position-fix .cloud {
  position: absolute; top: 15%; left: 10%; width: 100px; height: 20px;
  background: linear-gradient(180deg, rgba(255,255,255,0.5) 0%, rgba(255,255,255,0.1) 100%);
  border-radius: 50%; filter: blur(8px);
  animation: pofi-cloud 80s linear infinite;
}
@keyframes pofi-sky { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes pofi-sea { 0% { transform: translateY(0) scaleY(1) } 25% { transform: translateY(-4px) scaleY(1.02) } 50% { transform: translateY(0) scaleY(1) } 75% { transform: translateY(3px) scaleY(0.98) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes pofi-deck { 0%,100% { transform: translateY(0) } 30% { transform: translateY(-2px) } 60% { transform: translateY(1px) } }
@keyframes pofi-rail { 0% { transform: scaleX(1) } 50% { transform: scaleX(0.95) } 100% { transform: scaleX(1.03) } }
@keyframes pofi-captain { 0% { transform: translateX(0) rotate(0deg) } 20% { transform: translateX(4px) rotate(-1deg) } 40% { transform: translateX(8px) rotate(1deg) } 60% { transform: translateX(12px) rotate(-0.5deg) } 80% { transform: translateX(16px) rotate(0.5deg) } 100% { transform: translateX(20px) rotate(0deg) } }
@keyframes pofi-sextant { 0% { transform: rotate(10deg) scale(1) } 25% { transform: rotate(20deg) scale(1.02) } 50% { transform: rotate(15deg) scale(1) } 75% { transform: rotate(5deg) scale(0.98) } 100% { transform: rotate(10deg) scale(1) } }
@keyframes pofi-sun { 0% { opacity: 0.7; transform: scale(1) } 50% { opacity: 1; transform: scale(1.05) } 100% { opacity: 0.8; transform: scale(0.95) } }
@keyframes pofi-cloud { 0% { transform: translateX(-60px) } 25% { transform: translateX(30vw) } 50% { transform: translateX(60vw) } 75% { transform: translateX(90vw) } 100% { transform: translateX(120vw) } }

/* empty-sea */
.scn-empty-sea {
  background: linear-gradient(180deg, #6ba3d0 0%, #a0c8e8 40%, #f0e8d0 100%),
              radial-gradient(ellipse at 50% 100%, #e0f0ff 0%, transparent 70%);
}
.scn-empty-sea .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #6ba3d0 0%, #a0c8e8 70%);
  animation: emse-sky 40s ease-in-out infinite alternate;
}
.scn-empty-sea .sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 42%;
  background: linear-gradient(180deg, #2078a0 0%, #10507a 100%);
  border-radius: 30% 20% 0 0 / 70% 50% 0 0;
  animation: emse-sea 18s ease-in-out infinite alternate;
}
.scn-empty-sea .hull {
  position: absolute; bottom: 16%; left: 10%; width: 80%; height: 30%;
  background: linear-gradient(0deg, #405060 0%, #607080 100%);
  border-radius: 30% 30% 10% 10% / 60% 60% 20% 20%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.4);
  animation: emse-hull 30s ease-in-out infinite;
}
.scn-empty-sea .cupola {
  position: absolute; bottom: 38%; left: 38%; width: 60px; height: 50px;
  background: linear-gradient(180deg, rgba(160,200,232,0.7) 0%, rgba(160,200,232,0.3) 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 20% 20%;
  box-shadow: inset 0 -4px 6px rgba(255,255,255,0.3);
  animation: emse-cupola 22s ease-in-out infinite alternate;
}
.scn-empty-sea .beacon {
  position: absolute; bottom: 42%; left: 44%; width: 10px; height: 10px;
  background: radial-gradient(circle, #ffe8a0 0%, #c8a060 80%);
  border-radius: 50%; box-shadow: 0 0 30px 10px rgba(255,232,160,0.6);
  animation: emse-beacon 4s ease-in-out infinite alternate;
}
.scn-empty-sea .ripple {
  position: absolute; bottom: 22%; left: 30%; width: 120px; height: 8px;
  background: linear-gradient(90deg, transparent 0%, rgba(255,255,255,0.2) 50%, transparent 100%);
  border-radius: 50%; filter: blur(2px);
  animation: emse-ripple 12s ease-in-out infinite;
  animation-delay: -3s;
}
@keyframes emse-sky { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes emse-sea { 0% { transform: translateY(0) } 30% { transform: translateY(-3px) } 70% { transform: translateY(2px) } 100% { transform: translateY(0) } }
@keyframes emse-hull { 0%,100% { transform: translateX(0) scale(1) } 25% { transform: translateX(-2px) scale(1.01) } 50% { transform: translateX(0) scale(1) } 75% { transform: translateX(2px) scale(0.99) } }
@keyframes emse-cupola { 0% { opacity: 0.7; transform: scaleY(1) } 50% { opacity: 1; transform: scaleY(1.05) } 100% { opacity: 0.8; transform: scaleY(0.95) } }
@keyframes emse-beacon { 0% { opacity: 0.5; box-shadow: 0 0 20px 5px rgba(255,232,160,0.4); } 50% { opacity: 1; box-shadow: 0 0 40px 15px rgba(255,232,160,0.8); } 100% { opacity: 0.7; box-shadow: 0 0 25px 8px rgba(255,232,160,0.5); } }
@keyframes emse-ripple { 0%,100% { transform: translateX(0) scaleX(1) } 25% { transform: translateX(20px) scaleX(1.2) } 50% { transform: translateX(-20px) scaleX(0.8) } 75% { transform: translateX(10px) scaleX(1.1) } }

/* voyage-commences */
.scn-voyage-commences {
  background: linear-gradient(180deg, #d4b890 0%, #c8a070 30%, #b89060 60%, #a07850 100%),
              radial-gradient(ellipse at 40% 50%, #e8d0a0 0%, transparent 60%);
}
.scn-voyage-commences .table {
  position: absolute; bottom: 5%; left: 5%; width: 90%; height: 55%;
  background: linear-gradient(180deg, #9a7a5a 0%, #7a5a3a 100%);
  border-radius: 8px; box-shadow: 0 -6px 20px rgba(0,0,0,0.3);
  animation: voyc-table 25s ease-in-out infinite;
}
.scn-voyage-commences .chart {
  position: absolute; bottom: 15%; left: 15%; width: 60%; height: 40%;
  background: linear-gradient(135deg, #f0e0c0 0%, #e0c8a0 100%);
  border-radius: 4px;
  animation: voyc-chart 18s ease-in-out infinite alternate;
}
.scn-voyage-commences .compass {
  position: absolute; bottom: 30%; left: 20%; width: 40px; height: 40px;
  background: radial-gradient(circle at 40% 40%, #c8b060 0%, #a08840 70%);
  border-radius: 50%; box-shadow: 0 0 10px rgba(0,0,0,0.2);
  animation: voyc-compass 10s ease-in-out infinite;
}
.scn-voyage-commences .divider {
  position: absolute; bottom: 40%; left: 35%; width: 50px; height: 6px;
  background: linear-gradient(90deg, #b09060 0%, #d0b080 50%, #b09060 100%);
  border-radius: 3px; transform: rotate(30deg);
  animation: voyc-divider 14s ease-in-out infinite alternate;
}
.scn-voyage-commences .hand-left {
  position: absolute; bottom: 22%; left: 28%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #8a7055 0%, #6a5035 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 20% 20%;
  transform-origin: bottom right;
  animation: voyc-handL 8s ease-in-out infinite;
}
.scn-voyage-commences .hand-right {
  position: absolute; bottom: 20%; left: 45%; width: 20px; height: 38px;
  background: linear-gradient(180deg, #8a7055 0%, #6a5035 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 20% 20%;
  transform-origin: bottom left;
  animation: voyc-handR 8s ease-in-out infinite reverse;
}
.scn-voyage-commences .lamp {
  position: absolute; top: 12%; left: 45%; width: 12px; height: 16px;
  background: radial-gradient(circle, #ffe8a0 0%, #c8a060 80%);
  border-radius: 10% 10% 5% 5%; box-shadow: 0 0 40px 15px rgba(255,232,160,0.6);
  animation: voyc-lamp 4s ease-in-out infinite alternate;
}
.scn-voyage-commences .shadow-mid {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 45% 35%, transparent 30%, rgba(0,0,0,0.1) 100%);
  animation: voyc-shadow 20s ease-in-out infinite alternate;
}
@keyframes voyc-table { 0%,100% { transform: translateY(0) } 30% { transform: translateY(-2px) } 70% { transform: translateY(1px) } }
@keyframes voyc-chart { 0% { transform: scale(1) rotate(0deg) } 25% { transform: scale(1.02) rotate(1deg) } 50% { transform: scale(1) rotate(0deg) } 75% { transform: scale(0.98) rotate(-1deg) } 100% { transform: scale(1) rotate(0deg) } }
@keyframes voyc-compass { 0% { transform: rotate(0deg) } 20% { transform: rotate(10deg) } 40% { transform: rotate(-10deg) } 60% { transform: rotate(5deg) } 80% { transform: rotate(-5deg) } 100% { transform: rotate(0deg) } }
@keyframes voyc-divider { 0% { transform: rotate(25deg) scaleX(1) } 50% { transform: rotate(35deg) scaleX(1.1) } 100% { transform: rotate(30deg) scaleX(1) } }
@keyframes voyc-handL { 0% { transform: translate(0,0) rotate(0deg) } 20% { transform: translate(2px,-1px) rotate(-5deg) } 40% { transform: translate(4px,-2px) rotate(3deg) } 60% { transform: translate(6px,-1px) rotate(-2deg) } 80% { transform: translate(8px,0) rotate(1deg) } 100% { transform: translate(10px,0) rotate(0deg) } }
@keyframes voyc-handR { 0% { transform: translate(0,0) rotate(0deg) } 20% { transform: translate(-2px,-1px) rotate(5deg) } 40% { transform: translate(-4px,-2px) rotate(-3deg) } 60% { transform: translate(-6px,-1px) rotate(2deg) } 80% { transform: translate(-8px,0) rotate(-1deg) } 100% { transform: translate(-10px,0) rotate(0deg) } }
@keyframes voyc-lamp { 0% { opacity: 0.7; box-shadow: 0 0 30px 8px rgba(255,232,160,0.5); } 50% { opacity: 1; box-shadow: 0 0 50px 20px rgba(255,232,160,0.8); } 100% { opacity: 0.85; box-shadow: 0 0 35px 12px rgba(255,232,160,0.6); } }
@keyframes voyc-shadow { 0% { transform: scaleY(1) } 50% { transform: scaleY(0.95) } 100% { transform: scaleY(1.05) } }

/* sheet-iron-frigate */
.scn-sheet-iron-frigate {
  background: linear-gradient(180deg, #4a90d9 0%, #87CEEB 40%, #f5deb3 100%), radial-gradient(ellipse at 80% 20%, #fff8dc 0%, transparent 50%);
}
.scn-sheet-iron-frigate .sky {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #6ab0e8 0%, transparent 100%);
  animation: sif-sky 12s ease-in-out infinite alternate;
}
.scn-sheet-iron-frigate .sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(180deg, #2c5f7a 0%, #1a3a4a 100%);
  animation: sif-sea 8s ease-in-out infinite alternate;
}
.scn-sheet-iron-frigate .hull {
  position: absolute; bottom: 35%; left: 20%; width: 60%; height: 35%;
  background: linear-gradient(135deg, #4a3520 0%, #2a1a0a 100%);
  border-radius: 5% 5% 15% 15%;
  box-shadow: 0 -8px 20px rgba(0,0,0,0.6) inset, 0 4px 12px rgba(0,0,0,0.5);
  animation: sif-hull 10s ease-in-out infinite;
}
.scn-sheet-iron-frigate .deck {
  position: absolute; bottom: 62%; left: 25%; width: 50%; height: 6%;
  background: linear-gradient(180deg, #8a6a4a 0%, #6a4a2a 100%);
  border-radius: 2px;
  animation: sif-deck 10s ease-in-out infinite;
}
.scn-sheet-iron-frigate .mast {
  position: absolute; bottom: 68%; left: 48%; width: 4%; height: 25%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 2px;
  transform-origin: bottom center;
  animation: sif-mast 12s ease-in-out infinite;
}
.scn-sheet-iron-frigate .flag {
  position: absolute; bottom: 88%; left: 48%; width: 8%; height: 6%;
  background: linear-gradient(90deg, #a0461a 0%, #c8553d 50%, #a0461a 100%);
  border-radius: 0 30% 30% 0;
  transform: skewX(-10deg);
  animation: sif-flag 4s ease-in-out infinite;
}
.scn-sheet-iron-frigate .sun {
  position: absolute; top: 8%; right: 12%; width: 12%; height: 12%;
  background: radial-gradient(circle, #fff8dc 0%, #f5deb3 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(245,222,179,0.6);
  animation: sif-sun 20s ease-in-out infinite alternate;
}
.scn-sheet-iron-frigate .cloud {
  position: absolute; top: 20%; left: -10%; width: 25%; height: 6%;
  background: rgba(255,255,255,0.5);
  border-radius: 50%;
  filter: blur(8px);
  animation: sif-cloud 40s linear infinite;
}
@keyframes sif-sky { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes sif-sea { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(2px) } }
@keyframes sif-hull { 0% { transform: rotate(-1deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-1deg) } }
@keyframes sif-deck { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes sif-mast { 0% { transform: rotate(0deg) } 50% { transform: rotate(1deg) } 100% { transform: rotate(0deg) } }
@keyframes sif-flag { 0% { transform: skewX(-10deg) scaleX(1) } 50% { transform: skewX(5deg) scaleX(1.2) } 100% { transform: skewX(-10deg) scaleX(1) } }
@keyframes sif-sun { 0% { opacity:0.8; transform: scale(1) } 50% { opacity:1; transform: scale(1.05) } 100% { opacity:0.9; transform: scale(1) } }
@keyframes sif-cloud { 0% { transform: translateX(0) } 100% { transform: translateX(130vw) } }

/* scotia-mystery */
.scn-scotia-mystery {
  background: linear-gradient(180deg, #5a8ab5 0%, #7bb8e0 40%, #f0e68c 100%), radial-gradient(ellipse at 30% 50%, #fff8dc 0%, transparent 70%);
}
.scn-scotia-mystery .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #7bb8e0 0%, transparent 100%);
  animation: scm-sky 14s ease-in-out infinite;
}
.scn-scotia-mystery .sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #2c6a8a 0%, #1a3a4a 100%);
  animation: scm-sea 9s ease-in-out infinite alternate;
}
.scn-scotia-mystery .hull {
  position: absolute; bottom: 30%; left: 35%; width: 30%; height: 40%;
  background: linear-gradient(135deg, #5a3a2a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 0 -4px 12px rgba(0,0,0,0.5) inset;
  animation: scm-hull 10s ease-in-out infinite;
}
.scn-scotia-mystery .hole {
  position: absolute; bottom: 50%; left: 45%; width: 8%; height: 10%;
  background: radial-gradient(circle, #0a0a1a 0%, #1a1a2a 70%, transparent 100%);
  border-radius: 50%;
  box-shadow: inset 0 0 20px #000, 0 0 10px rgba(0,0,0,0.8);
  animation: scm-hole 4s ease-in-out infinite alternate;
}
.scn-scotia-mystery .tentacle {
  position: absolute; bottom: 40%; left: 50%; width: 4%; height: 20%;
  background: linear-gradient(180deg, #4a5a6a 0%, #2a3a4a 100%);
  border-radius: 50% 50% 20% 20%;
  transform-origin: bottom;
  animation: scm-tentacle 6s ease-in-out infinite;
}
.scn-scotia-mystery .spout {
  position: absolute; bottom: 60%; left: 50%; width: 2%; height: 15%;
  background: rgba(200,230,255,0.8);
  border-radius: 50%;
  filter: blur(6px);
  animation: scm-spout 3s ease-in-out infinite alternate;
}
.scn-scotia-mystery .cloud {
  position: absolute; top: 10%; right: -5%; width: 20%; height: 5%;
  background: rgba(255,255,255,0.4);
  border-radius: 50%;
  filter: blur(6px);
  animation: scm-cloud 50s linear infinite reverse;
}
@keyframes scm-sky { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes scm-sea { 0% { transform: translateY(0) } 50% { transform: translateY(-5px) } 100% { transform: translateY(3px) } }
@keyframes scm-hull { 0% { transform: rotate(0deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(0deg) } }
@keyframes scm-hole { 0% { transform: scale(1); box-shadow: inset 0 0 20px #000, 0 0 10px rgba(0,0,0,0.8) } 50% { transform: scale(1.1); box-shadow: inset 0 0 30px #000, 0 0 20px rgba(0,0,0,1) } 100% { transform: scale(1); box-shadow: inset 0 0 20px #000, 0 0 10px rgba(0,0,0,0.8) } }
@keyframes scm-tentacle { 0% { transform: rotate(-5deg) } 50% { transform: rotate(10deg) scaleY(0.9) } 100% { transform: rotate(-5deg) } }
@keyframes scm-spout { 0% { height: 10%; opacity:0.6 } 50% { height: 20%; opacity:1 } 100% { height: 10%; opacity:0.6 } }
@keyframes scm-cloud { 0% { transform: translateX(0) } 100% { transform: translateX(-120vw) } }

/* ned-skill-display */
.scn-ned-skill-display {
  background: linear-gradient(180deg, #87CEEB 0%, #f5deb3 50%, #fff8dc 100%), radial-gradient(ellipse at 50% 0%, #fff8dc 0%, transparent 60%);
}
.scn-ned-skill-display .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #a0d8f0 0%, transparent 100%);
  animation: nsd-sky 15s ease-in-out infinite alternate;
}
.scn-ned-skill-display .sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #3a7a9a 0%, #1a4a5a 100%);
  animation: nsd-sea 7s ease-in-out infinite alternate;
}
.scn-ned-skill-display .whale {
  position: absolute; bottom: 30%; left: 30%; width: 30%; height: 25%;
  background: radial-gradient(ellipse at 50% 50%, #2a3a4a 0%, #0a1a2a 100%);
  border-radius: 40% 40% 20% 20%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.4);
  animation: nsd-whale 6s ease-in-out infinite;
}
.scn-ned-skill-display .harpoon {
  position: absolute; bottom: 55%; left: 50%; width: 8%; height: 2%;
  background: linear-gradient(90deg, #8a7a6a 0%, #4a3a2a 100%);
  border-radius: 30% 0 0 30%;
  transform-origin: right;
  animation: nsd-harpoon 2s ease-in-out infinite;
}
.scn-ned-skill-display .boat {
  position: absolute; bottom: 20%; left: 60%; width: 12%; height: 8%;
  background: linear-gradient(135deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 30% 30% 10% 10%;
  animation: nsd-boat 5s ease-in-out infinite;
}
.scn-ned-skill-display .figure {
  position: absolute; bottom: 24%; left: 62%; width: 4%; height: 10%;
  background: linear-gradient(180deg, #2a1a0a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 30% 30%;
  animation: nsd-figure 3s ease-in-out infinite;
}
.scn-ned-skill-display .splash {
  position: absolute; bottom: 25%; left: 35%; width: 10%; height: 5%;
  background: rgba(255,255,255,0.6);
  border-radius: 50%;
  filter: blur(4px);
  animation: nsd-splash 4s ease-in-out infinite;
}
.scn-ned-skill-display .sun {
  position: absolute; top: 5%; right: 10%; width: 15%; height: 15%;
  background: radial-gradient(circle, #fff8dc 0%, #f5deb3 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 50px 30px rgba(245,222,179,0.5);
  animation: nsd-sun 18s ease-in-out infinite alternate;
}
@keyframes nsd-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes nsd-sea { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(2px) } }
@keyframes nsd-whale { 0% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-8px) rotate(2deg) } 100% { transform: translateY(0) rotate(-2deg) } }
@keyframes nsd-harpoon { 0% { transform: rotate(10deg) translateX(0) } 50% { transform: rotate(0deg) translateX(15px) } 100% { transform: rotate(10deg) translateX(0) } }
@keyframes nsd-boat { 0% { transform: rotate(-3deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(-3deg) } }
@keyframes nsd-figure { 0% { transform: rotate(0deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(0deg) } }
@keyframes nsd-splash { 0% { opacity:0.4; transform: scale(1) } 50% { opacity:1; transform: scale(1.5) } 100% { opacity:0.4; transform: scale(1) } }
@keyframes nsd-sun { 0% { transform: scale(1); opacity:0.9 } 50% { transform: scale(1.05); opacity:1 } 100% { transform: scale(1); opacity:0.9 } }

/* rounding-cape-horn */
.scn-rounding-cape-horn {
  background: linear-gradient(180deg, #4a5a6a 0%, #6a7a8a 40%, #8a9aaa 100%), radial-gradient(ellipse at 50% 0%, #6a7a8a 0%, transparent 70%);
}
.scn-rounding-cape-horn .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #5a6a7a 0%, transparent 100%);
  animation: rch-sky 20s ease-in-out infinite alternate;
}
.scn-rounding-cape-horn .sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #2a4a5a 0%, #0a1a2a 100%);
  animation: rch-sea 6s ease-in-out infinite alternate;
}
.scn-rounding-cape-horn .cliff-left {
  position: absolute; bottom: 40%; left: -5%; width: 35%; height: 50%;
  background: linear-gradient(135deg, #3a4a4a 0%, #1a2a2a 100%);
  border-radius: 0 40% 20% 0;
  box-shadow: 4px 0 12px rgba(0,0,0,0.5);
  animation: rch-cliff 12s ease-in-out infinite;
}
.scn-rounding-cape-horn .cliff-right {
  position: absolute; bottom: 40%; right: -5%; width: 35%; height: 55%;
  background: linear-gradient(225deg, #3a4a4a 0%, #1a2a2a 100%);
  border-radius: 40% 0 0 20%;
  box-shadow: -4px 0 12px rgba(0,0,0,0.5);
  animation: rch-cliff 12s ease-in-out infinite reverse;
}
.scn-rounding-cape-horn .ship {
  position: absolute; bottom: 30%; left: 35%; width: 20%; height: 18%;
  background: linear-gradient(135deg, #2a1a0a 0%, #0a0a1a 100%);
  border-radius: 10% 10% 30% 30%;
  animation: rch-ship 5s ease-in-out infinite;
}
.scn-rounding-cape-horn .wave {
  position: absolute; bottom: 5%; left: -10%; width: 120%; height: 8%;
  background: rgba(180,210,230,0.3);
  border-radius: 30% 70% 50% 50%;
  filter: blur(3px);
  animation: rch-wave 4s ease-in-out infinite;
}
.scn-rounding-cape-horn .fog {
  position: absolute; top: 0; left: 0; right: 0; bottom: 0;
  background: rgba(100,110,120,0.15);
  background: radial-gradient(ellipse at 50% 50%, rgba(200,210,220,0.2) 0%, transparent 70%);
  animation: rch-fog 15s ease-in-out infinite alternate;
}
.scn-rounding-cape-horn .rain {
  position: absolute; top: 0; left: 0; width: 100%; height: 100%;
  background: repeating-linear-gradient(0deg, rgba(200,220,240,0.1) 0px, rgba(200,220,240,0.1) 2px, transparent 2px, transparent 6px);
  background-size: 4px 8px;
  animation: rch-rain 0.5s linear infinite;
}
@keyframes rch-sky { 0% { opacity:0.6 } 50% { opacity:0.8 } 100% { opacity:0.7 } }
@keyframes rch-sea { 0% { transform: translateY(0) } 50% { transform: translateY(-6px) } 100% { transform: translateY(4px) } }
@keyframes rch-cliff { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes rch-ship { 0% { transform: rotate(-5deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(-5deg) } }
@keyframes rch-wave { 0% { transform: translateX(0) scaleY(1) } 50% { transform: translateX(20px) scaleY(1.3) } 100% { transform: translateX(0) scaleY(1) } }
@keyframes rch-fog { 0% { opacity:0.3 } 50% { opacity:0.5 } 100% { opacity:0.3 } }
@keyframes rch-rain { 0% { background-position: 0 0 } 100% { background-position: 0 8px } }

/* preface-book-characters */
.scn-preface-book-characters {
  background: linear-gradient(180deg, #2a1a0a 0%, #4a2a1a 30%, #3a1a0a 70%, #1a0a00 100%), radial-gradient(ellipse at 50% 100%, #4a2a1a 0%, transparent 60%);
}
.scn-preface-book-characters .bg {
  position: absolute; inset: 0 0 30% 0;
  background: repeating-linear-gradient(0deg, #3a2a1a 0px, #3a2a1a 6px, #2a1a0a 6px, #2a1a0a 8px);
  animation: pbc-bg 20s ease-in-out infinite;
}
.scn-preface-book-characters .shelf {
  position: absolute; bottom: 30%; left: 5%; width: 90%; height: 6px;
  background: linear-gradient(90deg, #5a3a1a, #7a5a3a, #5a3a1a);
  border-radius: 2px;
  box-shadow: 0 3px 6px rgba(0,0,0,0.5);
  animation: pbc-shelf 15s ease-in-out infinite;
}
.scn-preface-book-characters .table {
  position: absolute; bottom: 5%; left: 10%; width: 80%; height: 22%;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2a0a 100%);
  border-radius: 8% 8% 0 0;
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.6);
  animation: pbc-table 12s ease-in-out infinite;
}
.scn-preface-book-characters .lamp {
  position: absolute; bottom: 45%; left: 50%; width: 30px; height: 40px;
  background: radial-gradient(circle, #ffd060 0%, #b08030 50%, transparent 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  box-shadow: 0 0 40px 15px rgba(255,208,96,0.3);
  animation: pbc-lamp 3s ease-in-out infinite alternate;
}
.scn-preface-book-characters .figure {
  position: absolute; bottom: 8%; width: 20px; height: 48px;
  background: linear-gradient(180deg, #1a1000 0%, #0a0500 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pbc-figure 6s ease-in-out infinite;
}
.scn-preface-book-characters .figure-1 { left: 15%; animation-delay: 0s; }
.scn-preface-book-characters .figure-2 { left: 30%; animation-delay: 1.5s; }
.scn-preface-book-characters .figure-3 { left: 55%; animation-delay: 3s; }
.scn-preface-book-characters .figure-4 { left: 70%; animation-delay: 4.5s; }
@keyframes pbc-bg { 0%,100% { opacity: .85; } 50% { opacity: 1; } }
@keyframes pbc-shelf { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes pbc-table { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
@keyframes pbc-lamp { 0% { box-shadow: 0 0 30px 10px rgba(255,208,96,0.2); opacity: .9; } 50% { box-shadow: 0 0 50px 20px rgba(255,208,96,0.5); opacity: 1; } 100% { box-shadow: 0 0 35px 12px rgba(255,208,96,0.3); opacity: .95; } }
@keyframes pbc-figure { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(1deg); } 50% { transform: translateY(-3px) rotate(0deg); } 75% { transform: translateY(-1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }

/* preface-nemo-tragedy */
.scn-preface-nemo-tragedy {
  background: linear-gradient(180deg, #05051a 0%, #0a0a2a 30%, #0a1515 60%, #000a0a 100%), radial-gradient(ellipse at 50% 100%, #0a1a1a 0%, transparent 70%);
}
.scn-preface-nemo-tragedy .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 50%, transparent 100%);
  animation: pnt-sky 12s ease-in-out infinite alternate;
}
.scn-preface-nemo-tragedy .clouds {
  position: absolute; top: 5%; left: 0; right: 0; height: 40%;
  background: radial-gradient(ellipse at 20% 50%, rgba(30,30,50,0.8) 0%, transparent 50%), radial-gradient(ellipse at 80% 30%, rgba(30,30,50,0.6) 0%, transparent 40%);
  animation: pnt-clouds 20s ease-in-out infinite;
}
.scn-preface-nemo-tragedy .sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #0a1a1a 0%, #051010 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.8);
  animation: pnt-sea 18s ease-in-out infinite alternate;
}
.scn-preface-nemo-tragedy .whirlpool {
  position: absolute; bottom: 20%; left: 50%; width: 120px; height: 120px;
  background: radial-gradient(circle, #0a2a2a 0%, #051515 40%, transparent 70%);
  border-radius: 50%;
  transform: translateX(-50%) rotate(0deg);
  animation: pnt-whirl 8s linear infinite;
}
.scn-preface-nemo-tragedy .ship {
  position: absolute; bottom: 35%; left: 45%; width: 70px; height: 18px;
  background: linear-gradient(90deg, #1a1a1a 0%, #2a2a2a 100%);
  border-radius: 10% 50% 0 0;
  transform-origin: center bottom;
  animation: pnt-ship 4s ease-in-out infinite;
}
.scn-preface-nemo-tragedy .ship::after {
  content: ''; position: absolute; top: -20px; left: 50%; width: 4px; height: 25px;
  background: #1a1a1a; transform: translateX(-50%);
}
.scn-preface-nemo-tragedy .nemo {
  position: absolute; bottom: 36%; left: 46%; width: 14px; height: 30px;
  background: #0a0a0a;
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  animation: pnt-nemo 4s ease-in-out infinite;
}
.scn-preface-nemo-tragedy .lightning {
  position: absolute; top: 0; left: 0; width: 100%; height: 100%;
  background: rgba(200,200,255,0.1);
  animation: pnt-lightning 6s ease-in-out infinite;
  pointer-events: none;
}
.scn-preface-nemo-tragedy .rain {
  position: absolute; inset: 0;
  background: repeating-linear-gradient(0deg, transparent 0px, rgba(200,200,255,0.08) 1px, transparent 2px);
  animation: pnt-rain 1s linear infinite;
}
@keyframes pnt-sky { 0%,100% { opacity: .8; } 50% { opacity: 1; } }
@keyframes pnt-clouds { 0% { transform: translateX(0); } 50% { transform: translateX(-8px); } 100% { transform: translateX(4px); } }
@keyframes pnt-sea { 0% { transform: translateY(0); } 50% { transform: translateY(-5px); } 100% { transform: translateY(3px); } }
@keyframes pnt-whirl { 0% { transform: translateX(-50%) rotate(0deg); } 100% { transform: translateX(-50%) rotate(360deg); } }
@keyframes pnt-ship { 0%,100% { transform: rotate(-5deg); } 25% { transform: rotate(2deg); } 50% { transform: rotate(-8deg); } 75% { transform: rotate(5deg); } }
@keyframes pnt-nemo { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-4px); } }
@keyframes pnt-lightning { 0%,90%,100% { opacity: 0; } 5% { opacity: 0.4; } 10% { opacity: 0; } 15% { opacity: 0; } 20% { opacity: 0.2; } 22% { opacity: 0; } }
@keyframes pnt-rain { 0% { background-position: 0 0; } 100% { background-position: 0 20px; } }

/* preface-translation */
.scn-preface-translation {
  background: linear-gradient(180deg, #3a1a0a 0%, #5a2a1a 30%, #4a1a0a 70%, #2a0a00 100%), radial-gradient(ellipse at 50% 100%, #5a3a1a 0%, transparent 60%);
}
.scn-preface-translation .desk {
  position: absolute; bottom: 5%; left: 5%; width: 90%; height: 30%;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%);
  border-radius: 6% 6% 0 0;
  box-shadow: inset 0 6px 12px rgba(0,0,0,0.6);
  animation: ptl-desk 15s ease-in-out infinite;
}
.scn-preface-translation .book {
  position: absolute; bottom: 20%; left: 25%; width: 40%; height: 25%;
  background: linear-gradient(135deg, #7a5a3a 0%, #5a3a1a 100%);
  border-radius: 4% 4% 2% 2%;
  transform: skewX(-3deg);
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: ptl-book 12s ease-in-out infinite;
}
.scn-preface-translation .book::after {
  content: ''; position: absolute; top: 10%; left: 50%; width: 4px; height: 80%;
  background: #1a0a00; transform: translateX(-50%);
}
.scn-preface-translation .inkwell {
  position: absolute; bottom: 28%; right: 20%; width: 20px; height: 22px;
  background: radial-gradient(circle at 50% 30%, #2a1a0a 0%, #0a0500 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
  animation: ptl-ink 8s ease-in-out infinite alternate;
}
.scn-preface-translation .quill {
  position: absolute; bottom: 35%; right: 22%; width: 4px; height: 40px;
  background: linear-gradient(135deg, #8a7050 0%, #5a4030 100%);
  border-radius: 0 0 50% 50% / 0 0 100% 100%;
  transform: rotate(20deg);
  transform-origin: bottom center;
  animation: ptl-quill 4s ease-in-out infinite alternate;
}
.scn-preface-translation .hand {
  position: absolute; bottom: 30%; right: 18%; width: 22px; height: 30px;
  background: radial-gradient(circle at 50% 40%, #3a2010 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 50% 40% 30%;
  transform: rotate(-10deg);
  animation: ptl-hand 4s ease-in-out infinite alternate;
}
.scn-preface-translation .lamp {
  position: absolute; bottom: 55%; left: 15%; width: 25px; height: 35px;
  background: radial-gradient(circle, #ffd060 0%, #b08030 60%, transparent 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 0 30px 10px rgba(255,208,96,0.4);
  animation: ptl-lamp 3s ease-in-out infinite alternate;
}
.scn-preface-translation .glow {
  position: absolute; bottom: 40%; left: 10%; width: 200%; height: 200%;
  background: radial-gradient(ellipse at 30% 60%, rgba(255,200,100,0.15) 0%, transparent 60%);
  animation: ptl-glow 6s ease-in-out infinite alternate;
  pointer-events: none;
}
@keyframes ptl-desk { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
@keyframes ptl-book { 0%,100% { transform: skewX(-3deg) translateY(0); } 50% { transform: skewX(-1deg) translateY(-2px); } }
@keyframes ptl-ink { 0% { transform: translateY(0); opacity: .9; } 100% { transform: translateY(-2px); opacity: 1; } }
@keyframes ptl-quill { 0% { transform: rotate(15deg); } 50% { transform: rotate(25deg); } 100% { transform: rotate(18deg); } }
@keyframes ptl-hand { 0% { transform: rotate(-12deg) translateY(0); } 50% { transform: rotate(-5deg) translateY(-3px); } 100% { transform: rotate(-10deg) translateY(0); } }
@keyframes ptl-lamp { 0% { box-shadow: 0 0 20px 8px rgba(255,208,96,0.3); opacity: .85; } 100% { box-shadow: 0 0 40px 15px rgba(255,208,96,0.5); opacity: 1; } }
@keyframes ptl-glow { 0% { opacity: .5; } 50% { opacity: 1; } 100% { opacity: .7; } }

/* units-of-measure */
.scn-units-of-measure {
  background: linear-gradient(180deg, #2a1a0a 0%, #3a2a1a 50%, #2a1a0a 100%), radial-gradient(ellipse at 50% 100%, #3a2a1a 0%, transparent 60%);
}
.scn-units-of-measure .table {
  position: absolute; bottom: 5%; left: 5%; width: 90%; height: 25%;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%);
  border-radius: 6% 6% 0 0;
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.6);
  animation: uom-table 20s ease-in-out infinite;
}
.scn-units-of-measure .ruler {
  position: absolute; bottom: 20%; left: 10%; width: 35%; height: 6px;
  background: linear-gradient(90deg, #7a5a3a 0%, #9a7a5a 20%, #7a5a3a 40%, #9a7a5a 60%, #7a5a3a 80%, #9a7a5a 100%);
  border-radius: 2px;
  transform: rotate(-2deg);
  animation: uom-ruler 15s ease-in-out infinite;
}
.scn-units-of-measure .beaker {
  position: absolute; bottom: 15%; right: 20%; width: 30px; height: 40px;
  background: linear-gradient(180deg, rgba(200,200,200,0.3) 0%, rgba(200,200,200,0.1) 80%);
  border: 2px solid rgba(200,200,200,0.4);
  border-radius: 10% 10% 20% 20% / 20% 20% 30% 30%;
  animation: uom-beaker 12s ease-in-out infinite;
}
.scn-units-of-measure .beaker::after {
  content: ''; position: absolute; bottom: 0; left: 10%; width: 80%; height: 60%;
  background: linear-gradient(180deg, rgba(180,220,255,0.4) 0%, rgba(180,220,255,0.2) 100%);
  border-radius: 0 0 20% 20%;
}
.scn-units-of-measure .scale {
  position: absolute; bottom: 18%; left: 55%; width: 60px; height: 4px;
  background: #4a3a1a;
  border-radius: 2px;
  transform-origin: center center;
  animation: uom-scale 8s ease-in-out infinite alternate;
}
.scn-units-of-measure .cup {
  position: absolute; bottom: 14%; left: 62%; width: 18px; height: 22px;
  background: linear-gradient(180deg, rgba(150,150,150,0.4) 0%, rgba(150,150,150,0.2) 100%);
  border: 1px solid rgba(150,150,150,0.5);
  border-radius: 10% 10% 15% 15%;
  animation: uom-cup 10s ease-in-out infinite;
}
.scn-units-of-measure .shelf {
  position: absolute; bottom: 40%; left: 5%; width: 90%; height: 4px;
  background: linear-gradient(90deg, #5a3a1a, #7a5a3a, #5a3a1a);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation: uom-shelf 18s ease-in-out infinite;
}
@keyframes uom-table { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes uom-ruler { 0%,100% { transform: rotate(-4deg) translateY(0); } 50% { transform: rotate(1deg) translateY(-2px); } }
@keyframes uom-beaker { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-4px); } }
@keyframes uom-scale { 0% { transform: rotate(-10deg); } 50% { transform: rotate(10deg); } 100% { transform: rotate(-5deg); } }
@keyframes uom-cup { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(3deg); } }
@keyframes uom-shelf { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-1px); } }

/* devilfish-theory (tense, sunlit) */
.scn-devilfish-theory { background: linear-gradient(180deg, #b8d4f0 0%, #e6d68a 35%, #f0c060 60%, #b8d4f0 100%), radial-gradient(ellipse at 30% 15%, #fff8dc 0%, transparent 60%); }
.scn-devilfish-theory { position: relative; overflow: hidden; }
.scn-devilfish-theory .sky { position: absolute; inset: 0 0 45% 0; background: linear-gradient(180deg, #a0c8e8 0%, transparent 100%); animation: dt-sky 12s ease-in-out infinite alternate; }
.scn-devilfish-theory .sun { position: absolute; top: 12%; left: 20%; width: 40px; height: 40px; background: radial-gradient(circle, #ffd700, #ffb347 40%, transparent 70%); border-radius: 50%; box-shadow: 0 0 60px 20px rgba(255,215,0,0.4); animation: dt-sun 6s ease-in-out infinite alternate; }
.scn-devilfish-theory .ocean { position: absolute; bottom: 0; left: 0; right: 0; height: 50%; background: linear-gradient(180deg, #2a4a6a 0%, #1a3a5a 100%); animation: dt-ocean 8s ease-in-out infinite alternate; }
.scn-devilfish-theory .rail { position: absolute; bottom: 48%; left: 10%; right: 10%; height: 4px; background: #4a3a2a; border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.5); animation: dt-rail 4s ease-in-out infinite; }
.scn-devilfish-theory .devilfish { position: absolute; bottom: 38%; left: 60%; width: 80px; height: 40px; background: radial-gradient(ellipse at 30% 50%, #3a2a1a 0%, #1a0a0a 100%); border-radius: 60% 40% 30% 70% / 50% 50% 50% 50%; transform-origin: center; animation: dt-devilfish 10s ease-in-out infinite; }
.scn-devilfish-theory .figure { position: absolute; bottom: 44%; left: 30%; width: 20px; height: 50px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dt-figure 5s ease-in-out infinite; }
.scn-devilfish-theory .wave { position: absolute; bottom: 45%; left: 0; right: 0; height: 10px; background: linear-gradient(180deg, rgba(255,255,255,0.2) 0%, transparent 100%); border-radius: 50%; filter: blur(2px); animation: dt-wave 6s ease-in-out infinite alternate; }

@keyframes dt-sky { 0% { opacity:0.7; } 50% { opacity:0.95; } 100% { opacity:0.8; } }
@keyframes dt-sun { 0% { transform: scale(1) translate(0,0); box-shadow: 0 0 40px 10px rgba(255,215,0,0.3); } 50% { transform: scale(1.1) translate(3px,-2px); box-shadow: 0 0 80px 25px rgba(255,215,0,0.5); } 100% { transform: scale(0.95) translate(-2px,1px); box-shadow: 0 0 50px 15px rgba(255,215,0,0.35); } }
@keyframes dt-ocean { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(2px); } }
@keyframes dt-rail { 0%,100% { transform: translateX(0); } 50% { transform: translateX(-5px); } }
@keyframes dt-devilfish { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-8px) rotate(3deg); } 60% { transform: translateY(4px) rotate(-2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes dt-figure { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 30% { transform: translateX(8px) translateY(-3px) rotate(1deg); } 60% { transform: translateX(0) translateY(0) rotate(2deg); } 100% { transform: translateX(-4px) translateY(-1px) rotate(-1deg); } }
@keyframes dt-wave { 0% { transform: translateX(0) scaleY(1); } 50% { transform: translateX(10px) scaleY(1.2); } 100% { transform: translateX(-5px) scaleY(0.8); } }

/* pressure-proof (tense, sunlit) */
.scn-pressure-proof { background: linear-gradient(180deg, #6a9aca 0%, #3a5a8a 40%, #1a2a4a 100%), radial-gradient(ellipse at 50% 100%, #2a4a7a 0%, transparent 60%); position: relative; overflow: hidden; }
.scn-pressure-proof .bg-deep { position: absolute; inset: 0 0 30% 0; background: linear-gradient(180deg, #1a2a4a 0%, transparent 100%); animation: pp-bgdeep 15s ease-in-out infinite alternate; }
.scn-pressure-proof .bg-mid { position: absolute; inset: 30% 0 0 0; background: linear-gradient(180deg, #3a5a8a 0%, #2a4a7a 100%); animation: pp-bgmid 12s ease-in-out infinite alternate; }
.scn-pressure-proof .lightrays { position: absolute; top: 0; left: 20%; right: 20%; height: 25%; background: linear-gradient(180deg, rgba(255,255,200,0.3) 0%, transparent 100%); clip-path: polygon(0 0, 100% 0, 60% 100%, 40% 100%); filter: blur(6px); animation: pp-rays 8s ease-in-out infinite alternate; }
.scn-pressure-proof .figure { position: absolute; bottom: 40%; left: 40%; width: 22px; height: 55px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pp-figure 5s ease-in-out infinite; }
.scn-pressure-proof .gauge-ring { position: absolute; bottom: 45%; left: 65%; width: 40px; height: 40px; border: 4px solid #a08050; border-radius: 50%; background: radial-gradient(circle, #4a3a2a 40%, #2a1a0a 100%); box-shadow: 0 0 12px rgba(0,0,0,0.5); animation: pp-ring 6s ease-in-out infinite; }
.scn-pressure-proof .gauge-needle { position: absolute; bottom: 58%; left: 75%; width: 2px; height: 20px; background: #c06030; border-radius: 1px; transform-origin: bottom center; animation: pp-needle 4s ease-in-out infinite; }
.scn-pressure-proof .bubble { position: absolute; bottom: 20%; left: 30%; width: 8px; height: 8px; background: radial-gradient(circle, rgba(255,255,255,0.6) 0%, transparent 100%); border-radius: 50%; animation: pp-bubble 8s ease-in-out infinite; }

@keyframes pp-bgdeep { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes pp-bgmid { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(2px); } }
@keyframes pp-rays { 0% { transform: rotate(0deg) scaleY(1); opacity:0.5; } 50% { transform: rotate(3deg) scaleY(1.1); opacity:0.8; } 100% { transform: rotate(-2deg) scaleY(0.9); opacity:0.6; } }
@keyframes pp-figure { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 30% { transform: translateX(-6px) translateY(-2px) rotate(3deg); } 60% { transform: translateX(4px) translateY(1px) rotate(-2deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes pp-ring { 0% { transform: rotate(0deg); } 50% { transform: rotate(10deg); } 100% { transform: rotate(-5deg); } }
@keyframes pp-needle { 0% { transform: rotate(-20deg); } 50% { transform: rotate(30deg); } 100% { transform: rotate(-10deg); } }
@keyframes pp-bubble { 0% { transform: translate(0,0) scale(1); opacity:0.8; } 50% { transform: translate(15px,-30px) scale(1.3); opacity:0.4; } 100% { transform: translate(-10px,-60px) scale(0.7); opacity:0; } }

/* pressure-calculation (warm, sunlit) */
.scn-pressure-calculation { background: linear-gradient(180deg, #f5e6c8 0%, #e8d4a8 50%, #d4bc8a 100%), radial-gradient(ellipse at 50% 0%, #fff8e0 0%, transparent 60%); position: relative; overflow: hidden; }
.scn-pressure-calculation .bg { position: absolute; inset: 0 0 20% 0; background: linear-gradient(180deg, #e8d4a8 0%, transparent 100%); animation: pc-bg 10s ease-in-out infinite alternate; }
.scn-pressure-calculation .table { position: absolute; bottom: 0; left: 5%; right: 5%; height: 30%; background: linear-gradient(180deg, #a08060 0%, #806040 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.3); animation: pc-table 8s ease-in-out infinite alternate; }
.scn-pressure-calculation .paper1 { position: absolute; bottom: 28%; left: 25%; width: 60px; height: 45px; background: linear-gradient(180deg, #fdf5e6, #f0e0c0); border-radius: 2px; transform: rotate(-8deg); box-shadow: 0 2px 6px rgba(0,0,0,0.2); animation: pc-paper1 12s ease-in-out infinite alternate; }
.scn-pressure-calculation .paper2 { position: absolute; bottom: 30%; left: 55%; width: 55px; height: 40px; background: linear-gradient(180deg, #fdf5e6, #f0e0c0); border-radius: 2px; transform: rotate(5deg); box-shadow: 0 2px 6px rgba(0,0,0,0.2); animation: pc-paper2 14s ease-in-out infinite alternate; }
.scn-pressure-calculation .inkwell { position: absolute; bottom: 34%; left: 42%; width: 16px; height: 20px; background: linear-gradient(180deg, #4a3a2a, #2a1a0a); border-radius: 50% 50% 20% 20%; box-shadow: 0 4px 8px rgba(0,0,0,0.4); animation: pc-inkwell 6s ease-in-out infinite; }
.scn-pressure-calculation .quill { position: absolute; bottom: 42%; left: 42%; width: 2px; height: 40px; background: #d4a060; transform: rotate(20deg); transform-origin: bottom center; border-radius: 1px; animation: pc-quill 5s ease-in-out infinite; }
.scn-pressure-calculation .lamp { position: absolute; bottom: 48%; left: 70%; width: 30px; height: 40px; background: radial-gradient(ellipse at 50% 30%, #ffd700 0%, #c08040 60%, transparent 100%); border-radius: 50% 50% 30% 30%; box-shadow: 0 0 40px 15px #ffd700; animation: pc-lamp 4s ease-in-out infinite alternate; }
.scn-pressure-calculation .hand { position: absolute; bottom: 22%; left: 20%; width: 14px; height: 40px; background: linear-gradient(180deg, #c8a080, #8a6040); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pc-hand 7s ease-in-out infinite; }

@keyframes pc-bg { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes pc-table { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(1px); } }
@keyframes pc-paper1 { 0% { transform: rotate(-8deg) translateY(0); } 50% { transform: rotate(-6deg) translateY(-3px); } 100% { transform: rotate(-10deg) translateY(0); } }
@keyframes pc-paper2 { 0% { transform: rotate(5deg) translateY(0); } 50% { transform: rotate(7deg) translateY(-2px); } 100% { transform: rotate(3deg) translateY(1px); } }
@keyframes pc-inkwell { 0% { transform: rotate(0deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-1deg); } }
@keyframes pc-quill { 0% { transform: rotate(20deg) translateY(0); } 50% { transform: rotate(25deg) translateY(-5px); } 100% { transform: rotate(18deg) translateY(2px); } }
@keyframes pc-lamp { 0% { opacity:0.6; transform: scale(1); } 50% { opacity:1; transform: scale(1.1); } 100% { opacity:0.7; transform: scale(0.95); } }
@keyframes pc-hand { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 30% { transform: translateX(10px) translateY(-2px) rotate(5deg); } 70% { transform: translateX(-5px) translateY(1px) rotate(-3deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }

/* squashed-flat (tense, sunlit) */
.scn-squashed-flat { background: linear-gradient(180deg, #d68a3e 0%, #c07030 40%, #8a4020 100%), radial-gradient(ellipse at 50% 80%, #f0a050 0%, transparent 70%); position: relative; overflow: hidden; }
.scn-squashed-flat .bg { position: absolute; inset: 0 0 10% 0; background: linear-gradient(180deg, #e09840 0%, transparent 100%); animation: sf-bg 8s ease-in-out infinite alternate; }
.scn-squashed-flat .plate-top { position: absolute; top: 20%; left: 15%; right: 15%; height: 15%; background: linear-gradient(180deg, #605040 0%, #403020 100%); border-radius: 10px; box-shadow: 0 8px 20px rgba(0,0,0,0.6); animation: sf-plate-top 6s ease-in-out infinite; }
.scn-squashed-flat .plate-bottom { position: absolute; bottom: 35%; left: 15%; right: 15%; height: 15%; background: linear-gradient(180deg, #403020 0%, #605040 100%); border-radius: 10px; box-shadow: 0 -8px 20px rgba(0,0,0,0.6); animation: sf-plate-bottom 6s ease-in-out infinite; }
.scn-squashed-flat .figure { position: absolute; bottom: 20%; left: 40%; width: 20px; height: 50px; background: linear-gradient(180deg, #2a1a0a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sf-figure 4s ease-in-out infinite; }
.scn-squashed-flat .spark-1 { position: absolute; top: 30%; left: 25%; width: 6px; height: 6px; background: radial-gradient(circle, #ffd700, #c06030); border-radius: 50%; box-shadow: 0 0 10px 4px rgba(255,215,0,0.6); animation: sf-spark1 3s ease-in-out infinite; }
.scn-squashed-flat .spark-2 { position: absolute; top: 40%; left: 60%; width: 5px; height: 5px; background: radial-gradient(circle, #ffd700, #c06030); border-radius: 50%; box-shadow: 0 0 8px 3px rgba(255,215,0,0.6); animation: sf-spark2 4s ease-in-out infinite; animation-delay: 1.5s; }
.scn-squashed-flat .spark-3 { position: absolute; top: 35%; left: 45%; width: 4px; height: 4px; background: radial-gradient(circle, #ffd700, #c06030); border-radius: 50%; box-shadow: 0 0 6px 2px rgba(255,215,0,0.6); animation: sf-spark3 5s ease-in-out infinite; animation-delay: 0.7s; }

@keyframes sf-bg { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes sf-plate-top { 0% { transform: translateY(0); } 50% { transform: translateY(18px); } 100% { transform: translateY(0); } }
@keyframes sf-plate-bottom { 0% { transform: translateY(0); } 50% { transform: translateY(-18px); } 100% { transform: translateY(0); } }
@keyframes sf-figure { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 20% { transform: translateX(-8px) translateY(-4px) rotate(8deg); } 60% { transform: translateX(8px) translateY(2px) rotate(-6deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes sf-spark1 { 0% { transform: translate(0,0) scale(1); opacity:1; } 50% { transform: translate(20px,-30px) scale(1.8); opacity:0.3; } 100% { transform: translate(-10px,10px) scale(0.5); opacity:0; } }
@keyframes sf-spark2 { 0% { transform: translate(0,0) scale(1); opacity:1; } 50% { transform: translate(-15px,-25px) scale(1.5); opacity:0.4; } 100% { transform: translate(12px,8px) scale(0.4); opacity:0; } }
@keyframes sf-spark3 { 0% { transform: translate(0,0) scale(1); opacity:1; } 50% { transform: translate(10px,-35px) scale(2); opacity:0.2; } 100% { transform: translate(-20px,5px) scale(0.6); opacity:0; } }

/* Scene: fort-salutes */
.scn-fort-salutes { background: linear-gradient(180deg, #ffb347 0%, #ffcc80 30%, #87CEEB 60%, #4682B4 100%), radial-gradient(ellipse at 70% 20%, #fff9c4 0%, transparent 50%); }
.scn-fort-salutes .sky { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 0%, rgba(255,255,200,0.3) 0%, transparent 70%); animation: fs-sky 10s ease-in-out infinite alternate; }
.scn-fort-salutes .sun { position:absolute; top:12%; left:65%; width:60px; height:60px; border-radius:50%; background: radial-gradient(circle, #fff9c4 0%, #ffd54f 50%, transparent 70%); box-shadow: 0 0 40px 20px rgba(255,235,59,0.6); animation: fs-sun 8s ease-in-out infinite; }
.scn-fort-salutes .clouds { position:absolute; top:15%; left:0; right:0; height:50px; }
.scn-fort-salutes .clouds::before, .scn-fort-salutes .clouds::after { content:''; position:absolute; border-radius:50%; background: rgba(255,255,255,0.8); filter: blur(6px); }
.scn-fort-salutes .clouds::before { width:120px; height:30px; top:0; left:10%; animation: fs-cloud1 30s linear infinite; }
.scn-fort-salutes .clouds::after { width:80px; height:20px; top:20px; left:50%; animation: fs-cloud2 40s linear infinite reverse; }
.scn-fort-salutes .fort { position:absolute; bottom:40%; left:12%; width:110px; height:70px; background: linear-gradient(180deg, #7a5230 0%, #4a2e1b 100%); clip-path: polygon(10% 0%, 90% 0%, 100% 100%, 0% 100%); animation: fs-fort 12s ease-in-out infinite; }
.scn-fort-salutes .fort::before { content:''; position:absolute; bottom:100%; left:15px; width:24px; height:35px; background: #4a2e1b; border-radius: 2px 2px 0 0; }
.scn-fort-salutes .fort::after { content:''; position:absolute; bottom:30%; left:20px; width:8px; height:4px; background: #8B4513; border-radius: 2px; }
.scn-fort-salutes .frigate { position:absolute; bottom:34%; left:55%; width:100px; height:40px; clip-path: polygon(0% 50%, 20% 0%, 80% 0%, 100% 50%, 80% 100%, 20% 100%); background: linear-gradient(180deg, #a0522d, #6b3a1f); animation: fs-frigate 6s ease-in-out infinite; }
.scn-fort-salutes .frigate::after { content:''; position:absolute; top:-30px; left:40px; width:20px; height:35px; background: #8B4513; border-radius: 0; }
.scn-fort-salutes .flag { position:absolute; bottom:34%; left:58%; width:24px; height:16px; background: linear-gradient(90deg, #9e3a2c 50%, #cdcdcd 50%); background-size: 50% 100%; transform-origin: left center; animation: fs-flag 3s ease-in-out infinite alternate; }
.scn-fort-salutes .water { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #4682B4 0%, #2E5A77 100%); }
.scn-fort-salutes .water::before { content:''; position:absolute; inset:0; background: repeating-linear-gradient(90deg, rgba(255,255,255,0.1) 0px, transparent 2px, transparent 10px); animation: fs-water 8s linear infinite; }
.scn-fort-salutes .lightship { position:absolute; bottom:30%; left:85%; width:30px; height:40px; border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%; background: linear-gradient(180deg, #8B4513, #5c3a1e); animation: fs-lightship 10s ease-in-out infinite; }
.scn-fort-salutes .lightship::after { content:''; position:absolute; top:-10px; left:50%; transform:translateX(-50%); width:10px; height:10px; background: #ffd700; border-radius:50%; box-shadow: 0 0 12px 4px rgba(255,215,0,0.8); animation: fs-light 2s ease-in-out infinite alternate; }
@keyframes fs-sky { 0% { opacity:0.6; } 50% { opacity:0.9; } 100% { opacity:0.7; } }
@keyframes fs-sun { 0% { transform: scale(1); opacity:0.9; } 50% { transform: scale(1.05); opacity:1; } 100% { transform: scale(0.98); opacity:0.85; } }
@keyframes fs-cloud1 { 0% { transform: translateX(0); } 100% { transform: translateX(120vw); } }
@keyframes fs-cloud2 { 0% { transform: translateX(0); } 100% { transform: translateX(-100vw); } }
@keyframes fs-fort { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes fs-frigate { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-3px) rotate(-1deg); } 60% { transform: translateY(1px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes fs-flag { 0% { transform: rotate(-15deg); } 100% { transform: rotate(15deg); } }
@keyframes fs-water { 0% { transform: translateX(0); } 100% { transform: translateX(-20px); } }
@keyframes fs-lightship { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes fs-light { 0% { opacity:0.6; box-shadow: 0 0 8px 2px rgba(255,215,0,0.6); } 100% { opacity:1; box-shadow: 0 0 20px 8px rgba(255,215,0,0.9); } }

/* Scene: farragut-belief */
.scn-farragut-belief { background: linear-gradient(180deg, #1a1a2e 0%, #2c1e1e 30%, #3a2a2a 60%, #0d0d0d 100%); }
.scn-farragut-belief .bg-wall { position:absolute; inset:0; background: linear-gradient(90deg, rgba(80,50,30,0.3) 0%, transparent 50%, rgba(80,50,30,0.2) 100%); }
.scn-farragut-belief .desk { position:absolute; bottom:30%; left:20%; right:20%; height:40%; background: linear-gradient(180deg, #5c3a1e, #3a2a1a); border-radius: 4% 4% 0 0; box-shadow: inset 0 -8px 12px rgba(0,0,0,0.5); }
.scn-farragut-belief .candle { position:absolute; bottom:32%; left:38%; width:12px; height:30px; background: linear-gradient(180deg, #8B4513, #5c3a1e); border-radius: 10%; animation: fb-candle 4s ease-in-out infinite; }
.scn-farragut-belief .candle::after { content:''; position:absolute; top:-10px; left:50%; transform:translateX(-50%); width:6px; height:12px; background: radial-gradient(circle, #ffd700 0%, #ff8c00 60%, transparent 80%); border-radius:50%; box-shadow: 0 0 20px 8px rgba(255,140,0,0.6); animation: fb-flame 2s ease-in-out infinite alternate; }
.scn-farragut-belief .figure { position:absolute; bottom:32%; left:45%; width:30px; height:60px; background: linear-gradient(180deg, #1a1a2e 0%, #0d0d1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fb-figure 6s ease-in-out infinite; }
.scn-farragut-belief .book { position:absolute; bottom:34%; left:30%; width:40px; height:30px; background: linear-gradient(180deg, #6b4a3a, #4a2e1b); border-radius: 2px; transform: rotate(-10deg); box-shadow: 0 4px 8px rgba(0,0,0,0.5); animation: fb-book 8s ease-in-out infinite; }
.scn-farragut-belief .chair { position:absolute; bottom:30%; right:25%; width:40px; height:50px; background: linear-gradient(180deg, #3a2a1a, #1a1a0e); border-radius: 10% 10% 30% 30%; animation: fb-chair 10s ease-in-out infinite; }
@keyframes fb-candle { 0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.05) translateY(-1px); } 100% { transform: scaleY(0.98) translateY(0); } }
@keyframes fb-flame { 0% { transform: translateX(-50%) scale(1); opacity:0.8; } 50% { transform: translateX(-50%) scale(1.1); opacity:1; } 100% { transform: translateX(-50%) scale(0.9); opacity:0.7; } }
@keyframes fb-figure { 0% { transform: translate(0,0) rotate(0deg); } 25% { transform: translate(2px,-1px) rotate(2deg); } 50% { transform: translate(-1px,1px) rotate(-2deg); } 75% { transform: translate(3px,0) rotate(1deg); } 100% { transform: translate(0,0) rotate(0deg); } }
@keyframes fb-book { 0% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-8deg) translateY(-2px); } 100% { transform: rotate(-12deg) translateY(0); } }
@keyframes fb-chair { 0% { transform: scale(1); opacity:0.8; } 50% { transform: scale(1.02); opacity:1; } 100% { transform: scale(0.98); opacity:0.85; } }

/* Scene: aronnax-observation */
.scn-aronnax-observation { background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 20%, #0d1a2a 60%, #050a14 100%); }
.scn-aronnax-observation .bg-cabin { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 100%, rgba(100,120,140,0.2) 0%, transparent 70%); }
.scn-aronnax-observation .shelf { position:absolute; top:15%; left:5%; right:5%; height:12%; background: linear-gradient(180deg, #3a2a1a, #2a1a0e); border-radius: 4px; box-shadow: 0 -2px 6px rgba(0,0,0,0.3); }
.scn-aronnax-observation .shelf::before { content:''; position:absolute; bottom:2px; left:10%; width:80%; height:2px; background: #a08060; box-shadow: 0 -8px 0 #a08060, 0 -16px 0 #a08060; } /* books as lines */
.scn-aronnax-observation .desk { position:absolute; bottom:30%; left:15%; right:15%; height:35%; background: linear-gradient(180deg, #5c4a3a, #3a2a1a); border-radius: 6% 6% 0 0; box-shadow: inset 0 -10px 12px rgba(0,0,0,0.4); }
.scn-aronnax-observation .lamp { position:absolute; bottom:33%; left:30%; width:16px; height:24px; background: linear-gradient(180deg, #8B7355, #5c4a3a); border-radius: 20% 20% 10% 10%; }
.scn-aronnax-observation .lamp::after { content:''; position:absolute; top:-8px; left:50%; transform:translateX(-50%); width:8px; height:10px; background: radial-gradient(circle, #f0e68c 0%, #deb887 60%, transparent 80%); border-radius:50%; box-shadow: 0 0 30px 12px rgba(240,230,140,0.3); animation: ao-glow 5s ease-in-out infinite alternate; }
.scn-aronnax-observation .microscope { position:absolute; bottom:35%; left:25%; width:20px; height:30px; background: linear-gradient(180deg, #706050, #302820); border-radius: 40% 40% 20% 20%; transform: rotate(3deg); animation: ao-micro 7s ease-in-out infinite; }
.scn-aronnax-observation .figure-a { position:absolute; bottom:32%; left:40%; width:25px; height:50px; background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ao-fig-a 8s ease-in-out infinite; }
.scn-aronnax-observation .figure-c { position:absolute; bottom:30%; right:18%; width:20px; height:45px; background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ao-fig-c 12s ease-in-out infinite; }
@keyframes ao-glow { 0% { opacity:0.5; box-shadow: 0 0 20px 6px rgba(240,230,140,0.2); } 50% { opacity:0.8; box-shadow: 0 0 40px 18px rgba(240,230,140,0.35); } 100% { opacity:0.6; box-shadow: 0 0 30px 10px rgba(240,230,140,0.25); } }
@keyframes ao-micro { 0% { transform: rotate(3deg) translateY(0); } 50% { transform: rotate(5deg) translateY(-2px); } 100% { transform: rotate(1deg) translateY(0); } }
@keyframes ao-fig-a { 0% { transform: translate(0,0) rotate(0deg); } 30% { transform: translate(2px,-1px) rotate(2deg); } 60% { transform: translate(-1px,1px) rotate(-1deg); } 100% { transform: translate(0,0) rotate(0deg); } }
@keyframes ao-fig-c { 0% { transform: translate(0,0) scale(1); } 50% { transform: translate(0,-2px) scale(1.02); } 100% { transform: translate(0,0) scale(1); } }

/* Scene: item-harpooners-kit */
.scn-item-harpooners-kit { background: linear-gradient(180deg, #f5deb3 0%, #d2b48c 20%, #c4a882 40%, #8b7355 100%); }
.scn-item-harpooners-kit .bg-wall { position:absolute; inset:0; background: linear-gradient(135deg, rgba(200,180,150,0.3) 0%, transparent 50%, rgba(160,140,120,0.2) 100%); }
.scn-item-harpooners-kit .window { position:absolute; top:10%; left:5%; width:30%; height:50%; background: linear-gradient(180deg, #87CEEB 0%, #4682B4 100%); border-radius: 4px; box-shadow: inset 0 0 20px rgba(255,255,255,0.3); }
.scn-item-harpooners-kit .sunbeam { position:absolute; top:10%; left:5%; width:40%; height:80%; background: linear-gradient(135deg, rgba(255,255,200,0.4) 0%, transparent 70%); clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 0% 100%); animation: hk-beam 8s ease-in-out infinite alternate; }
.scn-item-harpooners-kit .rack { position:absolute; top:25%; left:40%; width:50%; height:10%; background: linear-gradient(180deg, #6b4a3a, #4a2e1b); border-radius: 4px; }
.scn-item-harpooners-kit .rack::after { content:''; position:absolute; top:-20px; left:10%; width:4px; height:30px; background: #8B4513; box-shadow: 15px 0 0 #8B4513, 30px 0 0 #8B4513, 45px 0 0 #8B4513; } /* harpoons */
.scn-item-harpooners-kit .table { position:absolute; bottom:30%; left:20%; right:20%; height:30%; background: linear-gradient(180deg, #a08060, #7a5230); border-radius: 6% 6% 0 0; box-shadow: inset 0 -10px 12px rgba(0,0,0,0.3); }
.scn-item-harpooners-kit .tools { position:absolute; bottom:35%; left:25%; width:50%; height:15%; background: repeating-linear-gradient(90deg, #706050 0px, #706050 2px, transparent 2px, transparent 10px); }
.scn-item-harpooners-kit .figure { position:absolute; bottom:28%; left:55%; width:35px; height:70px; background: linear-gradient(180deg, #2a1a0e 0%, #1a0e06 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hk-figure 6s ease-in-out infinite; }
@keyframes hk-beam { 0% { opacity:0.3; transform: skewX(0deg); } 50% { opacity:0.6; transform: skewX(-3deg); } 100% { opacity:0.4; transform: skewX(2deg); } }
@keyframes hk-figure { 0% { transform: translate(0,0) rotate(0deg); } 25% { transform: translate(3px,-1px) rotate(3deg); } 50% { transform: translate(-2px,1px) rotate(-2deg); } 75% { transform: translate(2px,0) rotate(1deg); } 100% { transform: translate(0,0) rotate(0deg); } }

.scn-hole-discovery { background: linear-gradient(135deg, #e8f0f8 0%, #b0c8d8 40%, #708090 100%), radial-gradient(ellipse at 80% 20%, #fff 0%, transparent 60%); }
.scn-hole-discovery .hull { position:absolute; bottom:10%; left:5%; width:60%; height:70%; background: linear-gradient(135deg, #4a5a6a 0%, #2a3a4a 100%); border-radius: 0 40% 0 0 / 0 60% 0 0; box-shadow: inset -20px -10px 30px rgba(0,0,0,0.6); }
.scn-hole-discovery .gash { position:absolute; bottom:25%; left:25%; width:20%; height:30%; background: radial-gradient(ellipse at 40% 30%, #ffe080 0%, #cc8840 30%, #402010 100%); clip-path: polygon(50% 0%, 100% 100%, 0% 100%); animation: hd-glow 2s ease-in-out infinite alternate; box-shadow: 0 0 30px 10px rgba(255,224,128,0.5); }
.scn-hole-discovery .diver { position:absolute; bottom:20%; left:15%; width:40px; height:60px; background: linear-gradient(180deg, #606870 0%, #303840 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hd-diver 4s ease-in-out infinite; }
.scn-hole-discovery .light-beam { position:absolute; top:10%; left:20%; width:80px; height:300px; background: linear-gradient(135deg, rgba(255,255,255,0.4) 0%, rgba(255,255,255,0) 100%); transform-origin: top left; clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%); animation: hd-beam 6s ease-in-out infinite alternate; filter: blur(2px); }
.scn-hole-discovery .tool { position:absolute; bottom:28%; left:45%; width:20px; height:10px; background: linear-gradient(90deg, #8a6040 0%, #5a4030 100%); border-radius: 2px; transform: rotate(-10deg); animation: hd-tool 1s ease-in-out infinite; }
.scn-hole-discovery .spark { position:absolute; bottom:30%; left:30%; width:6px; height:6px; background: radial-gradient(circle, #ffd080 0%, #ffa000 100%); border-radius:50%; box-shadow: 0 0 10px 3px #ffa000; animation: hd-spark 0.8s ease-in-out infinite; }

@keyframes hd-glow { 0% { opacity:0.7; transform: scale(1); } 50% { opacity:0.85; transform: scale(1.03); } 100% { opacity:1; transform: scale(1.05) rotate(2deg); } }
@keyframes hd-diver { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-5px) rotate(2deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes hd-beam { 0% { transform: rotate(-3deg) scaleY(1); opacity:0.6; } 50% { transform: rotate(0deg) scaleY(1.1); opacity:0.8; } 100% { transform: rotate(3deg) scaleY(0.95); opacity:0.5; } }
@keyframes hd-tool { 0% { transform: rotate(-10deg) translateX(0); } 50% { transform: rotate(-8deg) translateX(2px); } 100% { transform: rotate(-10deg) translateX(0); } }
@keyframes hd-spark { 0% { transform: translate(0,0) scale(1); opacity:1; } 50% { transform: translate(5px,-5px) scale(1.5); opacity:0.7; } 100% { transform: translate(0,0) scale(1); opacity:1; } }

.scn-public-outrage { background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 40%, #1a1a2a 100%), radial-gradient(ellipse at 50% 100%, #3a3a4a 0%, transparent 70%); }
.scn-public-outrage .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #6a6a7a 0%, #3a3a4a 100%); animation: po-sky 15s ease-in-out infinite alternate; }
.scn-public-outrage .sea { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #2a3a3a 0%, #1a2a3a 100%); animation: po-sea 12s ease-in-out infinite; }
.scn-public-outrage .crowd { position:absolute; bottom:30%; left:5%; width:90%; height:25%; background: #1a1a2a; clip-path: polygon(0% 100%, 2% 70%, 5% 60%, 8% 50%, 11% 55%, 14% 45%, 17% 40%, 20% 35%, 23% 30%, 26% 25%, 29% 20%, 32% 15%, 35% 10%, 38% 20%, 41% 15%, 44% 25%, 47% 30%, 50% 35%, 53% 40%, 56% 30%, 59% 35%, 62% 25%, 65% 20%, 68% 15%, 71% 10%, 74% 5%, 77% 0%, 80% 10%, 83% 15%, 86% 20%, 89% 25%, 92% 30%, 95% 35%, 98% 40%, 100% 50%, 100% 100%); animation: po-crowd 6s ease-in-out infinite; }
.scn-public-outrage .ship { position:absolute; bottom:15%; left:50%; width:100px; height:40px; transform:translateX(-50%); background: linear-gradient(180deg, #4a4a4a 0%, #2a2a2a 100%); clip-path: polygon(0% 100%, 20% 20%, 80% 20%, 100% 100%); animation: po-ship 10s ease-in-out infinite; }
.scn-public-outrage .monster { position:absolute; bottom:10%; left:60%; width:150px; height:100px; background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%); border-radius: 70% 30% 50% 50% / 60% 40% 60% 40%; filter: blur(3px); animation: po-monster 8s ease-in-out infinite alternate; }
.scn-public-outrage .wave { position:absolute; bottom:0; left:0; right:0; height:15%; background: linear-gradient(180deg, #3a4a5a 0%, #2a3a4a 100%); border-radius: 50% 50% 0 0 / 30% 30% 0 0; animation: po-wave 4s ease-in-out infinite; }

@keyframes po-sky { 0% { opacity:0.6; } 50% { opacity:0.8; } 100% { opacity:0.5; } }
@keyframes po-sea { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes po-crowd { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.05); } 100% { transform: scaleY(1); } }
@keyframes po-ship { 0% { transform: translateX(-50%) rotate(-2deg); } 50% { transform: translateX(-50%) rotate(2deg); } 100% { transform: translateX(-50%) rotate(-2deg); } }
@keyframes po-monster { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-5px) scaleX(1.05); } 100% { transform: translateY(-10px) scaleX(1.1); } }
@keyframes po-wave { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }

.scn-aronnax-return { background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 50%, #1a0a0a 100%), radial-gradient(ellipse at 50% 0%, #4a3a3a 0%, transparent 70%); }
.scn-aronnax-return .bg-wall { position:absolute; inset:0; background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%); }
.scn-aronnax-return .lamp { position:absolute; top:20%; left:40%; width:40px; height:60px; background: radial-gradient(circle at 50% 0%, #ffd080 0%, #cc8840 30%, #402010 100%); border-radius: 40% 40% 10% 10%; box-shadow: 0 0 40px 20px rgba(255,208,128,0.3); animation: ar-lamp 4s ease-in-out infinite alternate; }
.scn-aronnax-return .desk { position:absolute; bottom:10%; left:15%; width:70%; height:30%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 2% 2% 0 0; box-shadow: 0 -5px 15px rgba(0,0,0,0.5); }
.scn-aronnax-return .bookshelf { position:absolute; top:10%; right:5%; width:20%; height:30%; background: repeating-linear-gradient(90deg, #3a2a1a 0px, #3a2a1a 8px, #5a4a3a 8px, #5a4a3a 10px, #4a3a2a 10px, #4a3a2a 18px); border-radius: 4px; box-shadow: inset 0 0 10px rgba(0,0,0,0.7); }
.scn-aronnax-return .figure { position:absolute; bottom:15%; left:30%; width:50px; height:80px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(5deg); animation: ar-figure 5s ease-in-out infinite alternate; }
.scn-aronnax-return .papers { position:absolute; bottom:20%; left:35%; width:40px; height:20px; background: linear-gradient(180deg, #e8e0c0 0%, #c0b8a0 100%); border-radius: 2px; transform: rotate(-10deg); box-shadow: 2px 2px 5px rgba(0,0,0,0.3); animation: ar-papers 6s ease-in-out infinite; }

@keyframes ar-lamp { 0% { transform: scaleY(0.95); opacity:0.8; } 50% { transform: scaleY(1.05); opacity:1; } 100% { transform: scaleY(0.95); opacity:0.8; } }
@keyframes ar-figure { 0% { transform: rotate(5deg) translateY(0); } 50% { transform: rotate(0deg) translateY(-2px); } 100% { transform: rotate(5deg) translateY(0); } }
@keyframes ar-papers { 0% { transform: rotate(-10deg) translateX(0); } 50% { transform: rotate(-5deg) translateX(3px); } 100% { transform: rotate(-10deg) translateX(0); } }

.scn-hypotheses-eliminated { background: linear-gradient(180deg, #2a3a3a 0%, #1a2a2a 50%, #0a1a1a 100%), radial-gradient(ellipse at 50% 100%, #3a4a4a 0%, transparent 70%); }
.scn-hypotheses-eliminated .bg { position:absolute; inset:0; background: linear-gradient(180deg, #2a3a3a, #1a2a2a); }
.scn-hypotheses-eliminated .chalkboard { position:absolute; top:15%; left:15%; width:70%; height:50%; background: #1a2a2a; border: 6px solid #3a4a4a; border-radius: 4px; box-shadow: inset 0 0 30px rgba(0,0,0,0.8); animation: he-board 12s ease-in-out infinite; }
.scn-hypotheses-eliminated .lines { position:absolute; top:20%; left:20%; width:60%; height:40%; background: repeating-linear-gradient(45deg, rgba(200,200,200,0.1) 0px, rgba(200,200,200,0.1) 4px, transparent 4px, transparent 8px); animation: he-lines 8s ease-in-out infinite alternate; filter: blur(1px); }
.scn-hypotheses-eliminated .figure { position:absolute; bottom:10%; left:30%; width:40px; height:70px; background: linear-gradient(180deg, #3a3a3a 0%, #1a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: he-figure 6s ease-in-out infinite; }
.scn-hypotheses-eliminated .table { position:absolute; bottom:5%; left:20%; width:60%; height:15%; background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); border-radius: 4px; box-shadow: 0 -4px 10px rgba(0,0,0,0.5); }
.scn-hypotheses-eliminated .globe { position:absolute; bottom:20%; left:60%; width:30px; height:30px; background: radial-gradient(circle at 30% 30%, #7a9a7a 0%, #4a6a4a 100%); border-radius: 50%; box-shadow: 0 0 10px 2px rgba(100,150,100,0.3); animation: he-globe 15s ease-in-out infinite alternate; }

@keyframes he-board { 0% { border-color: #3a4a4a; } 50% { border-color: #4a5a5a; } 100% { border-color: #3a4a4a; } }
@keyframes he-lines { 0% { opacity:0.3; transform: rotate(0deg); } 50% { opacity:0.45; transform: rotate(5deg); } 100% { opacity:0.6; transform: rotate(10deg); } }
@keyframes he-figure { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes he-globe { 0% { transform: rotate(0deg); } 50% { transform: rotate(15deg); } 100% { transform: rotate(30deg); } }

.scn-meal-and-sleep {
  background: linear-gradient(180deg, #f7eddf 0%, #d9c4a8 60%, #bfa68a 100%), 
              radial-gradient(ellipse at 50% 0%, #fff8e7 0%, transparent 60%);
}
.scn-meal-and-sleep .bg {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 80%, rgba(0,0,0,0.1) 0%, transparent 70%);
  animation: ms-vignette 12s ease-in-out infinite;
}
.scn-meal-and-sleep .carpet {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #a0856e 0%, #7a654f 100%);
  border-radius: 10% 10% 0 0;
}
.scn-meal-and-sleep .table {
  position: absolute; bottom: 30%; left: 30%; width: 40%; height: 12%;
  background: linear-gradient(180deg, #8b7355 0%, #6b563a 100%);
  border-radius: 4%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
}
.scn-meal-and-sleep .chair {
  position: absolute; bottom: 20%; left: 25%; width: 10%; height: 15%;
  background: linear-gradient(180deg, #6b563a 0%, #4a3a26 100%);
  border-radius: 10% 10% 0 0;
}
.scn-meal-and-sleep .plate {
  position: absolute; bottom: 35%; left: 40%; width: 8%; height: 5%;
  background: radial-gradient(circle, #f5f0e0 0%, #e0d5c0 100%);
  border-radius: 50%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
  animation: ms-glow 6s ease-in-out infinite;
}
.scn-meal-and-sleep .napper1 {
  position: absolute; bottom: 5%; left: 10%; width: 30%; height: 12%;
  background: linear-gradient(180deg, #6b5b4a 0%, #4a3a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: center;
  animation: ms-breathe1 4s ease-in-out infinite;
}
.scn-meal-and-sleep .napper2 {
  position: absolute; bottom: 5%; left: 55%; width: 25%; height: 12%;
  background: linear-gradient(180deg, #5c4e3e 0%, #3e2e1e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: center;
  animation: ms-breathe2 4s ease-in-out infinite 2s;
}
.scn-meal-and-sleep .watcher {
  position: absolute; bottom: 15%; left: 20%; width: 10%; height: 25%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ms-sway 8s ease-in-out infinite;
}
@keyframes ms-vignette {
  0% { opacity: 0.3; }
  50% { opacity: 0.5; }
  100% { opacity: 0.3; }
}
@keyframes ms-glow {
  0% { box-shadow: 0 0 2px rgba(255,200,100,0.3); }
  50% { box-shadow: 0 0 8px rgba(255,200,100,0.6); }
  100% { box-shadow: 0 0 2px rgba(255,200,100,0.3); }
}
@keyframes ms-breathe1 {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.03); }
  100% { transform: scaleY(1); }
}
@keyframes ms-breathe2 {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.03); }
  100% { transform: scaleY(1); }
}
@keyframes ms-sway {
  0% { transform: translateX(0); }
  50% { transform: translateX(3px); }
  100% { transform: translateX(0); }
}

.scn-air-renewal {
  background: linear-gradient(180deg, #1a2035 0%, #2a3345 40%, #151b2a 100%), 
              radial-gradient(ellipse at 20% 10%, #3a4a5a 0%, transparent 70%);
}
.scn-air-renewal .bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, rgba(0,0,0,0.4) 0%, transparent 50%);
}
.scn-air-renewal .wall {
  position: absolute; top: 0; bottom: 0; right: 0; width: 50%;
  background: linear-gradient(180deg, #20253a 0%, #101525 100%);
}
.scn-air-renewal .vent {
  position: absolute; top: 15%; left: 10%; width: 15%; height: 8%;
  background: linear-gradient(90deg, #4a5a6a 0%, #6a7a8a 20%, #4a5a6a 40%, #6a7a8a 60%, #4a5a6a 80%, #6a7a8a 100%);
  border-radius: 10%;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.5);
}
.scn-air-renewal .stream {
  position: absolute; top: 18%; left: 18%; width: 60%; height: 40%;
  background: radial-gradient(ellipse at 30% 0%, rgba(200,230,255,0.3) 0%, transparent 70%);
  border-radius: 50% 50% 0 0;
  transform: rotate(-20deg);
  animation: ar-flow 5s ease-in-out infinite;
}
.scn-air-renewal .figure {
  position: absolute; bottom: 25%; left: 35%; width: 12%; height: 35%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ar-tremble 1s ease-in-out infinite;
}
.scn-air-renewal .shadow {
  position: absolute; bottom: 25%; left: 25%; width: 12%; height: 35%;
  background: rgba(0,0,0,0.4);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ar-shadow 2s ease-in-out infinite;
}
.scn-air-renewal .particle {
  position: absolute; top: 20%; left: 20%; width: 4px; height: 4px;
  background: rgba(200,230,255,0.8);
  border-radius: 50%;
  animation: ar-drift 4s linear infinite;
}
.scn-air-renewal .particle2 {
  position: absolute; top: 25%; left: 22%; width: 3px; height: 3px;
  background: rgba(200,230,255,0.6);
  border-radius: 50%;
  animation: ar-drift 4s linear infinite 2s;
}
@keyframes ar-flow {
  0% { transform: rotate(-20deg) scaleX(1); opacity: 0.3; }
  50% { transform: rotate(-15deg) scaleX(1.1); opacity: 0.6; }
  100% { transform: rotate(-20deg) scaleX(1); opacity: 0.3; }
}
@keyframes ar-tremble {
  0% { transform: translate(0,0); }
  25% { transform: translate(2px,-2px); }
  50% { transform: translate(-1px,1px); }
  75% { transform: translate(1px,2px); }
  100% { transform: translate(0,0); }
}
@keyframes ar-shadow {
  0% { opacity: 0.3; }
  50% { opacity: 0.6; }
  100% { opacity: 0.3; }
}
@keyframes ar-drift {
  0% { transform: translate(0,0); opacity: 0; }
  50% { transform: translate(20px,-30px); opacity: 1; }
  100% { transform: translate(40px,-60px); opacity: 0; }
}

.scn-waiting-meal {
  background: linear-gradient(180deg, #fff4e0 0%, #fce4c0 50%, #f0c8a0 100%), 
              radial-gradient(ellipse at 50% 0%, #fff8e8 0%, transparent 60%);
}
.scn-waiting-meal .bg {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 70% 20%, rgba(255,240,200,0.3) 0%, transparent 60%);
}
.scn-waiting-meal .table {
  position: absolute; bottom: 25%; left: 20%; width: 60%; height: 15%;
  background: linear-gradient(180deg, #c8a07a 0%, #a8805a 100%);
  border-radius: 5%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.3);
}
.scn-waiting-meal .plate1 {
  position: absolute; bottom: 30%; left: 25%; width: 10%; height: 7%;
  background: radial-gradient(circle, #fff8f0 0%, #e8d8c0 100%);
  border-radius: 50%;
  animation: wm-shimmer 4s ease-in-out infinite;
}
.scn-waiting-meal .plate2 {
  position: absolute; bottom: 30%; left: 45%; width: 10%; height: 7%;
  background: radial-gradient(circle, #fff8f0 0%, #e8d8c0 100%);
  border-radius: 50%;
  animation: wm-shimmer 4s ease-in-out infinite 1s;
}
.scn-waiting-meal .plate3 {
  position: absolute; bottom: 30%; left: 65%; width: 10%; height: 7%;
  background: radial-gradient(circle, #fff8f0 0%, #e8d8c0 100%);
  border-radius: 50%;
  animation: wm-shimmer 4s ease-in-out infinite 2s;
}
.scn-waiting-meal .clock {
  position: absolute; top: 10%; left: 45%; width: 12%; height: 20%;
  background: radial-gradient(circle, #e0c090 0%, #c0a070 100%);
  border-radius: 50%;
  box-shadow: 0 0 10px rgba(0,0,0,0.2);
  animation: wm-swing 2s ease-in-out infinite;
  transform-origin: top center;
}
.scn-waiting-meal .character1 {
  position: absolute; bottom: 10%; left: 15%; width: 20%; height: 35%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: wm-bounce 1.5s ease-in-out infinite;
}
.scn-waiting-meal .character2 {
  position: absolute; bottom: 15%; left: 40%; width: 15%; height: 30%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: wm-sigh 4s ease-in-out infinite;
}
.scn-waiting-meal .character3 {
  position: absolute; bottom: 12%; left: 65%; width: 12%; height: 28%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: wm-fidget 3s ease-in-out infinite;
}
@keyframes wm-shimmer {
  0% { box-shadow: 0 0 2px rgba(255,255,200,0.5); }
  50% { box-shadow: 0 0 10px rgba(255,255,200,0.8); }
  100% { box-shadow: 0 0 2px rgba(255,255,200,0.5); }
}
@keyframes wm-swing {
  0% { transform: rotate(-15deg); }
  25% { transform: rotate(5deg); }
  50% { transform: rotate(-10deg); }
  75% { transform: rotate(3deg); }
  100% { transform: rotate(-15deg); }
}
@keyframes wm-bounce {
  0% { transform: translateY(0); }
  30% { transform: translateY(-10px); }
  60% { transform: translateY(-5px); }
  100% { transform: translateY(0); }
}
@keyframes wm-sigh {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(0.97); }
  100% { transform: scaleY(1); }
}
@keyframes wm-fidget {
  0% { transform: translateX(0); }
  25% { transform: translateX(3px); }
  50% { transform: translateX(-2px); }
  75% { transform: translateX(2px); }
  100% { transform: translateX(0); }
}

.scn-escape-options {
  background: linear-gradient(180deg, #f5f0e0 0%, #e0d5c0 40%, #c8b8a0 100%), 
              radial-gradient(ellipse at 80% 20%, #fff8e0 0%, transparent 50%);
}
.scn-escape-options .bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, rgba(0,0,0,0.05) 0%, transparent 50%);
}
.scn-escape-options .table {
  position: absolute; bottom: 25%; left: 25%; width: 50%; height: 12%;
  background: linear-gradient(180deg, #b8a080 0%, #988060 100%);
  border-radius: 5%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
}
.scn-escape-options .map {
  position: absolute; bottom: 28%; left: 30%; width: 30%; height: 8%;
  background: linear-gradient(135deg, #d4c8b0 0%, #c8b8a0 100%);
  border-radius: 2%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.1);
  animation: eo-flutter 4s ease-in-out infinite;
}
.scn-escape-options .figure-left {
  position: absolute; bottom: 10%; left: 10%; width: 12%; height: 30%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: eo-shrug 6s ease-in-out infinite;
}
.scn-escape-options .figure-center {
  position: absolute; bottom: 10%; left: 35%; width: 14%; height: 32%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: eo-lean 3s ease-in-out infinite;
}
.scn-escape-options .figure-right {
  position: absolute; bottom: 8%; left: 60%; width: 16%; height: 34%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: eo-clench 1s ease-in-out infinite;
}
.scn-escape-options .porthole {
  position: absolute; top: 10%; right: 10%; width: 12%; height: 12%;
  background: radial-gradient(circle, #a0c8e8 0%, #5080a0 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px rgba(160,200,232,0.8);
  animation: eo-pulse 2s ease-in-out infinite;
}
@keyframes eo-shrug {
  0% { transform: translateY(0) rotate(0); }
  50% { transform: translateY(-3px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes eo-lean {
  0% { transform: translateX(0) scaleX(1); }
  50% { transform: translateX(6px) scaleX(1.05); }
  100% { transform: translateX(0) scaleX(1); }
}
@keyframes eo-clench {
  0% { transform: scale(1); }
  50% { transform: scale(1.04); }
  100% { transform: scale(1); }
}
@keyframes eo-flutter {
  0% { transform: translateY(0) rotate(0); }
  50% { transform: translateY(-1px) rotate(0.5deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes eo-pulse {
  0% { box-shadow: 0 0 10px rgba(160,200,232,0.6); }
  50% { box-shadow: 0 0 25px rgba(160,200,232,1); }
  100% { box-shadow: 0 0 10px rgba(160,200,232,0.6); }
}

.scn-frustation-grows {
  background: 
    linear-gradient(135deg, #1a1a2e 0%, #2a2a3e 40%, #1e1e32 70%, #0e0e1a 100%),
    radial-gradient(ellipse at 70% 40%, #3a3a4e 0%, transparent 60%);
}
.scn-frustation-grows .cabin-bg {
  position:absolute; inset:0; 
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2a 50%, #0e0e1a 100%);
  border-radius: 8% 8% 0 0;
  box-shadow: inset 0 0 40px rgba(0,0,0,0.6);
}
.scn-frustation-grows .porthole {
  position:absolute; top:12%; right:8%; width:60px; height:60px;
  border-radius:50%;
  background: radial-gradient(circle at 40% 30%, #4a5a6a 0%, #2a3a4a 60%, #1a2a3a 100%);
  box-shadow: inset 0 0 20px rgba(0,0,0,0.7), 0 0 10px rgba(0,0,0,0.5);
  overflow:hidden;
}
.scn-frustation-grows .sea-outside {
  position:absolute; top:12%; right:8%; width:60px; height:60px;
  border-radius:50%;
  background: linear-gradient(180deg, #4a5a6a 0%, #3a4a5a 40%, #2a3a4a 100%);
  opacity:0.8;
  animation: fr-sea 8s ease-in-out infinite alternate;
}
.scn-frustation-grows .bunk {
  position:absolute; bottom:20%; left:15%; width:55%; height:30%;
  background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 100%);
  border-radius: 4px 4px 12px 12px;
  box-shadow: 0 -4px 12px rgba(0,0,0,0.6);
  transform: perspective(300px) rotateX(5deg);
}
.scn-frustation-grows .figure {
  position:absolute; bottom:25%; left:25%; width:20%; height:18%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fr-turn 12s ease-in-out infinite;
}
.scn-frustation-grows .book {
  position:absolute; bottom:30%; left:38%; width:8%; height:6%;
  background: #4a3a2a;
  border-radius: 2px 2px 6px 6px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  transform: rotate(-10deg);
  animation: fr-book 20s ease-in-out infinite;
}
.scn-frustation-grows .lamp {
  position:absolute; top:25%; left:60%; width:12px; height:16px;
  background: radial-gradient(circle at 50% 30%, #c8a060 0%, #8a6030 60%, transparent 100%);
  border-radius: 40% 40% 20% 20%;
  box-shadow: 0 0 24px 8px rgba(200,160,96,0.3), 0 0 48px 16px rgba(200,160,96,0.1);
  animation: fr-flicker 3s ease-in-out infinite alternate;
}
.scn-frustation-grows .shadow {
  position:absolute; bottom:0; left:10%; width:80%; height:20%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.4) 100%);
  border-radius: 0 0 50% 50% / 0 0 100% 100%;
}

@keyframes fr-sea {
  0% { transform: translateY(0); opacity:0.7; }
  50% { transform: translateY(-4px); opacity:0.9; }
  100% { transform: translateY(2px); opacity:0.6; }
}
@keyframes fr-turn {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(4px) rotate(3deg); }
  50% { transform: translateX(-2px) rotate(-2deg); }
  75% { transform: translateX(3px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes fr-book {
  0% { transform: rotate(-10deg) translateY(0); }
  50% { transform: rotate(-8deg) translateY(-2px); }
  100% { transform: rotate(-12deg) translateY(0); }
}
@keyframes fr-flicker {
  0% { opacity:0.6; box-shadow: 0 0 16px 4px rgba(200,160,96,0.2), 0 0 32px 8px rgba(200,160,96,0.08); }
  50% { opacity:0.9; box-shadow: 0 0 28px 10px rgba(200,160,96,0.4), 0 0 48px 16px rgba(200,160,96,0.15); }
  100% { opacity:0.7; box-shadow: 0 0 20px 6px rgba(200,160,96,0.25), 0 0 36px 10px rgba(200,160,96,0.1); }
}
/* end per-scene blocks */

/* auto-stub: parent tag-classes flagged by CSS audit */
.cloud-disk { position: absolute; pointer-events: none; }
.cloud-s-1 { position: absolute; pointer-events: none; }
.cloud-sea { position: absolute; pointer-events: none; }
.dot-track { position: absolute; pointer-events: none; }
.fish-hanging { position: absolute; pointer-events: none; }
.hanging { position: absolute; pointer-events: none; }
.mile-line { position: absolute; pointer-events: none; }
.pearl- { position: absolute; pointer-events: none; }
.row-1 { position: absolute; pointer-events: none; }
.sp-1 { position: absolute; pointer-events: none; }

/* ============ tier S ============ */
/* per-scene blocks (EXP step_scenes) */
/* hurricane-and-cable */
.scn-hurricane-and-cable {
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a3a 40%, #2a2a4a 70%, #3a3a5a 100%),
              radial-gradient(ellipse at 50% 0%, #4a4a6a 0%, transparent 60%);
}
.scn-hurricane-and-cable .storm-sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #0f0f2f 0%, transparent 100%); animation: hc-sky 8s ease-in-out infinite alternate; }
.scn-hurricane-and-cable .lightning-flash { position:absolute; top:10%; left:70%; width:4px; height:60px; background: #d0e0ff; filter: blur(2px); box-shadow: 0 0 40px 20px rgba(160,200,255,.3), 0 0 80px 40px rgba(100,150,255,.1); animation: hc-lightning 6s ease-in-out infinite; }
.scn-hurricane-and-cable .wave-far { position:absolute; bottom:40%; left:0; right:0; height:18%; background: linear-gradient(180deg, #2a4a5a 0%, transparent 100%); border-radius: 50% 40% 0 0; filter: blur(3px); animation: hc-wave-far 9s ease-in-out infinite alternate; }
.scn-hurricane-and-cable .wave-mid { position:absolute; bottom:28%; left:0; right:0; height:20%; background: linear-gradient(180deg, #1a2a3a 0%, #2a3a4a 50%, transparent 100%); border-radius: 60% 50% 0 0; animation: hc-wave-mid 7s ease-in-out infinite alternate; }
.scn-hurricane-and-cable .wave-near { position:absolute; bottom:12%; left:0; right:0; height:25%; background: linear-gradient(180deg, #0a1a2a 0%, #1a2a3a 60%, #2a3a4a 100%); border-radius: 80% 70% 0 0; animation: hc-wave-near 5s ease-in-out infinite alternate; }
.scn-hurricane-and-cable .nautilus-hull { position:absolute; bottom:20%; left:38%; width:160px; height:50px; background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 50%, #1a1a2a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform: rotate(-5deg); box-shadow: 0 8px 20px rgba(0,0,0,.7); animation: hc-roll 4s ease-in-out infinite; }
.scn-hurricane-and-cable .platform { position:absolute; bottom:30%; left:40%; width:120px; height:8px; background: #3a3a4a; border-radius: 4px; transform: rotate(-5deg); box-shadow: 0 2px 6px rgba(0,0,0,.5); animation: hc-rock 4s ease-in-out infinite; }
.scn-hurricane-and-cable .figure-lashed { position:absolute; bottom:29%; left:42%; width:16px; height:40px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hc-figure 4s ease-in-out infinite; }
.scn-hurricane-and-cable .cable { position:absolute; bottom:32%; left:41%; width:2px; height:30px; background: #4a4a5a; transform: rotate(10deg); box-shadow: 0 0 2px rgba(200,200,220,.3); animation: hc-cable 4s ease-in-out infinite; }
@keyframes hc-sky { 0% { opacity:.6 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes hc-lightning { 0% { opacity:0; transform: translateY(0) scale(1) } 10% { opacity:1; transform: translateY(0) scale(1.2) } 15% { opacity:0; transform: translateY(-10px) scale(1) } 100% { opacity:0 } }
@keyframes hc-wave-far { 0% { transform: translateY(0) scaleX(1) } 50% { transform: translateY(-6px) scaleX(1.05) } 100% { transform: translateY(0) scaleX(1) } }
@keyframes hc-wave-mid { 0% { transform: translateY(0) scaleX(1) } 50% { transform: translateY(-10px) scaleX(1.08) } 100% { transform: translateY(0) scaleX(1) } }
@keyframes hc-wave-near { 0% { transform: translateY(0) scaleX(1) } 50% { transform: translateY(-14px) scaleX(1.12) } 100% { transform: translateY(0) scaleX(1) } }
@keyframes hc-roll { 0% { transform: rotate(-5deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(-5deg) } }
@keyframes hc-rock { 0% { transform: rotate(-5deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(-5deg) } }
@keyframes hc-figure { 0% { transform: rotate(0deg) } 50% { transform: rotate(3deg) } 100% { transform: rotate(0deg) } }
@keyframes hc-cable { 0% { transform: rotate(10deg) scaleY(1) } 50% { transform: rotate(-5deg) scaleY(1.1) } 100% { transform: rotate(10deg) scaleY(1) } }

/* warship-rammed */
.scn-warship-rammed {
  background: linear-gradient(180deg, #0a0a1a 0%, #14142a 50%, #1e1e3a 100%),
              radial-gradient(ellipse at 50% 100%, #2a2a4a 0%, transparent 60%);
}
.scn-warship-rammed .deep-sea { position:absolute; inset:0; background: linear-gradient(180deg, #0f0f2f 0%, #1a1a3a 60%, #2a2a4a 100%); animation: wr-sea 10s ease-in-out infinite alternate; }
.scn-warship-rammed .warship-hull { position:absolute; bottom:40%; left:10%; width:180px; height:60px; background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 60%, #1a1a2a 100%); border-radius: 30% 30% 20% 20% / 50% 50% 40% 40%; transform: rotate(-8deg); box-shadow: 0 10px 30px rgba(0,0,0,.8); animation: wr-ship 8s ease-in-out infinite; }
.scn-warship-rammed .nautilus-ram { position:absolute; bottom:28%; left:65%; width:120px; height:40px; background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%); border-radius: 40% 60% 30% 30% / 60% 80% 40% 40%; transform: rotate(15deg); box-shadow: 0 6px 15px rgba(0,0,0,.6); animation: wr-ram 6s ease-in-out infinite alternate; }
.scn-warship-rammed .impact-spray { position:absolute; bottom:35%; left:72%; width:40px; height:30px; background: radial-gradient(ellipse at 50% 100%, rgba(200,220,255,.6) 0%, transparent 70%); filter: blur(5px); animation: wr-spray 4s ease-in-out infinite; }
.scn-warship-rammed .bubble-cluster { position:absolute; bottom:25%; left:58%; width:80px; height:80px; background: radial-gradient(circle at 30% 40%, rgba(180,200,255,.3) 0%, transparent 50%); filter: blur(4px); animation: wr-bubbles 7s ease-in-out infinite alternate; }
.scn-warship-rammed .debris-mist { position:absolute; bottom:30%; left:50%; width:100px; height:40px; background: radial-gradient(ellipse, rgba(100,120,160,.2) 0%, transparent 80%); filter: blur(10px); animation: wr-debris 9s ease-in-out infinite; }
.scn-warship-rammed .moon-shaft { position:absolute; top:0; left:20%; width:60px; height:100%; background: linear-gradient(180deg, rgba(180,200,255,.15) 0%, transparent 70%); transform: skew(-15deg); animation: wr-moon 12s ease-in-out infinite alternate; }
.scn-warship-rammed .shadow-slice { position:absolute; inset:0; background: linear-gradient(90deg, transparent 40%, rgba(0,0,0,.4) 60%, transparent 80%); animation: wr-shadow 8s ease-in-out infinite alternate; }
@keyframes wr-sea { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes wr-ship { 0% { transform: rotate(-8deg) translateY(0) } 50% { transform: rotate(-4deg) translateY(-3px) } 100% { transform: rotate(-8deg) translateY(0) } }
@keyframes wr-ram { 0% { transform: rotate(15deg) scaleX(1) } 50% { transform: rotate(12deg) scaleX(1.05) } 100% { transform: rotate(15deg) scaleX(1) } }
@keyframes wr-spray { 0% { opacity:.3; transform: scale(0.8) } 50% { opacity:.7; transform: scale(1.2) } 100% { opacity:.3; transform: scale(0.8) } }
@keyframes wr-bubbles { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-10px) scale(1.1) } 100% { transform: translateY(0) scale(1) } }
@keyframes wr-debris { 0% { transform: translateX(0) } 50% { transform: translateX(15px) } 100% { transform: translateX(0) } }
@keyframes wr-moon { 0% { opacity:.4 } 50% { opacity:.8 } 100% { opacity:.4 } }
@keyframes wr-shadow { 0% { opacity:.3 } 50% { opacity:.6 } 100% { opacity:.3 } }

/* maelstrom-escape */
.scn-maelstrom-escape {
  background: linear-gradient(180deg, #0a1a2a 0%, #1a2a3a 40%, #2a3a4a 70%, #3a4a5a 100%),
              radial-gradient(ellipse at 50% 0%, #4a6a8a 0%, transparent 60%);
}
.scn-maelstrom-escape .moonlit-sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #1a2a4a 0%, transparent 100%); animation: me-sky 15s ease-in-out infinite alternate; }
.scn-maelstrom-escape .cliff-wall { position:absolute; bottom:0; left:0; width:30%; height:70%; background: linear-gradient(90deg, #2a3a4a 0%, transparent 100%); border-radius: 0 40% 0 0; box-shadow: inset -10px 0 20px rgba(0,0,0,.5); animation: me-wall 20s ease-in-out infinite alternate; }
.scn-maelstrom-escape .whirlpool-spiral { position:absolute; bottom:20%; left:50%; width:120px; height:120px; border-radius:50%; background: radial-gradient(circle at 40% 40%, #0a1a2a 0%, #1a2a3a 30%, #2a3a4a 60%, transparent 80%); box-shadow: 0 0 30px rgba(0,40,70,.5); transform: translateX(-50%); animation: me-spiral 6s linear infinite; }
.scn-maelstrom-escape .skiff-wreck { position:absolute; bottom:30%; left:35%; width:40px; height:20px; background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%); border-radius: 20% 20% 30% 30% / 40% 40% 30% 30%; transform: rotate(-20deg); box-shadow: 0 4px 8px rgba(0,0,0,.6); animation: me-skiff 4s ease-in-out infinite; }
.scn-maelstrom-escape .figure-prone { position:absolute; bottom:20%; left:65%; width:20px; height:30px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 30% 30% 50% 50%; transform: rotate(-10deg); animation: me-figure 5s ease-in-out infinite; }
.scn-maelstrom-escape .spray-foam { position:absolute; bottom:15%; left:40%; width:60px; height:20px; background: radial-gradient(ellipse, rgba(180,200,220,.3) 0%, transparent 70%); filter: blur(3px); animation: me-foam 7s ease-in-out infinite alternate; }
.scn-maelstrom-escape .moon-glow { position:absolute; top:5%; right:20%; width:40px; height:40px; background: radial-gradient(circle, rgba(200,220,255,.4) 0%, transparent 70%); border-radius:50%; filter: blur(8px); animation: me-moon 10s ease-in-out infinite alternate; }
@keyframes me-sky { 0% { opacity:.6 } 50% { opacity:.9 } 100% { opacity:.7 } }
@keyframes me-wall { 0% { transform: translateX(0) } 50% { transform: translateX(-5px) } 100% { transform: translateX(0) } }
@keyframes me-spiral { 0% { transform: translateX(-50%) rotate(0deg) scale(1) } 50% { transform: translateX(-50%) rotate(180deg) scale(0.95) } 100% { transform: translateX(-50%) rotate(360deg) scale(1) } }
@keyframes me-skiff { 0% { transform: rotate(-20deg) translateY(0) } 50% { transform: rotate(-25deg) translateY(-3px) } 100% { transform: rotate(-20deg) translateY(0) } }
@keyframes me-figure { 0% { transform: rotate(-10deg) } 50% { transform: rotate(-5deg) } 100% { transform: rotate(-10deg) } }
@keyframes me-foam { 0% { opacity:.2; transform: scale(1) } 50% { opacity:.5; transform: scale(1.1) } 100% { opacity:.2; transform: scale(1) } }
@keyframes me-moon { 0% { opacity:.4; transform: scale(0.8) } 50% { opacity:.8; transform: scale(1.2) } 100% { opacity:.4; transform: scale(0.8) } }

/* scene 1: wreck-and-la-perouse — tense sunlit underwater wreck */
.scn-wreck-and-la-perouse {
  background:
    linear-gradient(180deg, #0a4a6e 0%, #083a5a 30%, #052a4a 60%, #021a2a 100%),
    radial-gradient(ellipse at 30% 50%, rgba(200,230,255,0.15) 0%, transparent 60%);
}
.scn-wreck-and-la-perouse .bg-ocean {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, #052a4a 0%, #0a4a6e 40%, #052a4a 100%);
  animation: wl1-ocean 20s ease-in-out infinite;
}
.scn-wreck-and-la-perouse .sunrays {
  position: absolute; top: 10%; left: 30%; width: 40%; height: 2px;
  background: linear-gradient(90deg, transparent 0%, rgba(255,255,220,0.6) 50%, transparent 100%);
  filter: blur(4px);
  animation: wl1-rays 8s ease-in-out infinite alternate;
}
.scn-wreck-and-la-perouse .wreck-hull {
  position: absolute; bottom: 20%; left: 20%; width: 50%; height: 25%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 0 30% 20% 0 / 0 40% 30% 0;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.8), 0 0 0 2px #6a5a4a;
  animation: wl1-wreck 30s ease-in-out infinite;
}
.scn-wreck-and-la-perouse .debris {
  position: absolute; bottom: 15%; left: 10%; width: 15%; height: 8%;
  background: #3a2a1a;
  border-radius: 20% 40% 10% 60%;
  box-shadow: inset 0 -4px 6px rgba(0,0,0,0.6);
  animation: wl1-debris 22s linear infinite;
}
.scn-wreck-and-la-perouse .corpse-silhouette {
  position: absolute; bottom: 22%; left: 35%; width: 12px; height: 30px;
  background: #1a1a2a;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(15deg);
  animation: wl1-corpse 15s ease-in-out infinite;
}
.scn-wreck-and-la-perouse .fish-school {
  position: absolute; top: 30%; right: 10%; width: 60px; height: 10px;
  background: repeating-linear-gradient(90deg, #6a8a9a 0px, #6a8a9a 6px, transparent 6px, transparent 12px);
  border-radius: 50%;
  filter: blur(1px);
  animation: wl1-fish 25s linear infinite;
}
.scn-wreck-and-la-perouse .bubbles {
  position: absolute; bottom: 30%; left: 50%; width: 4px; height: 4px;
  background: rgba(200,230,255,0.5);
  border-radius: 50%;
  box-shadow: 0 0 8px 2px rgba(200,230,255,0.3);
  animation: wl1-bubble 6s ease-in-out infinite;
}
@keyframes wl1-ocean { 0%,100% { opacity: 0.8; } 50% { opacity: 1; } }
@keyframes wl1-rays { 0% { transform: skewX(-5deg) scaleY(1); } 100% { transform: skewX(5deg) scaleY(2); } }
@keyframes wl1-wreck { 0%,100% { transform: translateX(0) rotate(-1deg); } 50% { transform: translateX(-3px) rotate(1deg); } }
@keyframes wl1-debris { 0% { transform: translate(0,0); } 50% { transform: translate(5px,-2px); } 100% { transform: translate(0,0); } }
@keyframes wl1-corpse { 0%,100% { transform: rotate(15deg) translateY(0); } 50% { transform: rotate(20deg) translateY(-2px); } }
@keyframes wl1-fish { 0% { transform: translateX(30px); } 100% { transform: translateX(-150vw); } }
@keyframes wl1-bubble { 0% { transform: translate(0,0) scale(1); opacity: 0.7; } 50% { transform: translate(-10px,-20px) scale(1.3); opacity: 0.9; } 100% { transform: translate(-20px,-40px) scale(0.8); opacity: 0; } }

/* scene 2: torres-strait-reef — tense sunlit reef grounding */
.scn-torres-strait-reef {
  background:
    linear-gradient(180deg, #4a8aae 0%, #6ab0d0 30%, #8ad0f0 60%, #a0e0ff 100%),
    radial-gradient(ellipse at 60% 10%, rgba(255,255,200,0.6) 0%, transparent 50%);
}
.scn-torres-strait-reef .sky-bright {
  position: absolute; top: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #b0d8ff 0%, #a0c8e8 100%);
  animation: tsr-sky 15s ease-in-out infinite alternate;
}
.scn-torres-strait-reef .sun-hot {
  position: absolute; top: 8%; right: 20%; width: 50px; height: 50px;
  background: radial-gradient(circle, #fff8e0 0%, #ffe080 40%, #ffc040 70%, transparent 100%);
  border-radius: 50%;
  filter: blur(3px);
  animation: tsr-sun 6s ease-in-out infinite;
}
.scn-torres-strait-reef .reef-cluster {
  position: absolute; bottom: 30%; left: 10%; width: 30%; height: 20%;
  background: linear-gradient(180deg, #8a6a4a 0%, #6a4a2a 100%);
  border-radius: 60% 40% 20% 20% / 30% 30% 10% 10%;
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.4);
  animation: tsr-reef 25s ease-in-out infinite;
}
.scn-torres-strait-reef .nautilus-hull {
  position: absolute; bottom: 25%; left: 40%; width: 120px; height: 40px;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
  border-radius: 50% 30% 30% 50%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.5), inset 0 2px 0 #5a5a6a;
  animation: tsr-nautilus 12s ease-in-out infinite;
}
.scn-torres-strait-reef .water-surface {
  position: absolute; bottom: 35%; left: 0; right: 0; height: 8%;
  background: linear-gradient(180deg, #a0e0ff 0%, transparent 100%);
  filter: blur(2px);
  animation: tsr-water 8s ease-in-out infinite alternate;
}
.scn-torres-strait-reef .foam-spray {
  position: absolute; bottom: 30%; left: 38%; width: 60px; height: 15px;
  background: radial-gradient(ellipse, rgba(255,255,255,0.8) 0%, transparent 100%);
  filter: blur(4px);
  animation: tsr-foam 3s ease-in-out infinite;
}
.scn-torres-strait-reef .reef-shadow {
  position: absolute; bottom: 0; left: 5%; width: 40%; height: 35%;
  background: linear-gradient(180deg, rgba(0,0,0,0.3) 0%, transparent 100%);
  animation: tsr-shadow 20s ease-in-out infinite;
}
@keyframes tsr-sky { 0% { opacity: 0.85; } 100% { opacity: 1; } }
@keyframes tsr-sun { 0%,100% { transform: scale(1) translateY(0); } 50% { transform: scale(1.1) translateY(-4px); } }
@keyframes tsr-reef { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px) scale(1.01); } }
@keyframes tsr-nautilus { 0%,100% { transform: translateX(0) rotate(-1deg); } 50% { transform: translateX(-4px) rotate(1deg); } }
@keyframes tsr-water { 0% { opacity: 0.6; } 100% { opacity: 1; } }
@keyframes tsr-foam { 0%,100% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-3px) scaleX(1.1); } }
@keyframes tsr-shadow { 0%,100% { opacity: 0.5; } 50% { opacity: 0.8; } }

/* scene 3: ashore-gathering-food — warm sunlit cooking on beach */
.scn-ashore-gathering-food {
  background:
    linear-gradient(180deg, #f0d8a0 0%, #d8b878 30%, #c09850 60%, #a07830 100%),
    radial-gradient(ellipse at 40% 20%, rgba(255,240,200,0.5) 0%, transparent 60%);
}
.scn-ashore-gathering-food .sand-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #d8b878 0%, #b89858 100%);
  border-radius: 0 0 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.1);
  animation: agf-sand 30s ease-in-out infinite;
}
.scn-ashore-gathering-food .fire-pit {
  position: absolute; bottom: 20%; left: 30%; width: 60px; height: 20px;
  background: radial-gradient(ellipse, #ff7040 0%, #b04020 50%, #5a2a10 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(255,112,64,0.6);
  animation: agf-fire 4s ease-in-out infinite;
}
.scn-ashore-gathering-food .breadfruit-roast {
  position: absolute; bottom: 22%; left: 40%; width: 22px; height: 18px;
  background: radial-gradient(circle, #c09840 0%, #8a6a20 100%);
  border-radius: 50%;
  box-shadow: 0 0 12px 3px rgba(200,150,60,0.5);
  animation: agf-breadfruit 5s ease-in-out infinite;
}
.scn-ashore-gathering-food .ned-silhouette {
  position: absolute; bottom: 22%; left: 50%; width: 20px; height: 40px;
  background: #2a2a1a;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(10deg);
  animation: agf-ned 6s ease-in-out infinite;
}
.scn-ashore-gathering-food .palm-trunk {
  position: absolute; bottom: 30%; right: 15%; width: 12px; height: 60%;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%);
  border-radius: 20%;
  box-shadow: inset -3px 0 6px rgba(0,0,0,0.3);
  animation: agf-trunk 25s linear infinite;
}
.scn-ashore-gathering-food .palm-leaves {
  position: absolute; top: 20%; right: 8%; width: 80px; height: 30px;
  background: radial-gradient(ellipse at 30% 50%, #3a7a3a 0%, #1a5a1a 50%, transparent 100%);
  filter: blur(2px);
  animation: agf-leaves 12s ease-in-out infinite alternate;
}
.scn-ashore-gathering-food .sun-glow {
  position: absolute; top: 10%; left: 20%; width: 60px; height: 60px;
  background: radial-gradient(circle, #fff8d0 0%, rgba(255,248,200,0.3) 40%, transparent 100%);
  filter: blur(8px);
  animation: agf-sun 8s ease-in-out infinite;
}
@keyframes agf-sand { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes agf-fire { 0%,100% { transform: scale(1) rotate(-2deg); } 50% { transform: scale(1.1) rotate(2deg); } }
@keyframes agf-breadfruit { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-3px) scale(1.05); } }
@keyframes agf-ned { 0% { transform: rotate(10deg) translateY(0); } 50% { transform: rotate(15deg) translateY(-2px); } 100% { transform: rotate(10deg) translateY(0); } }
@keyframes agf-trunk { 0% { transform: translateY(0); } 100% { transform: translateY(-8px); } }
@keyframes agf-leaves { 0% { transform: rotate(-5deg) scaleX(1); } 100% { transform: rotate(5deg) scaleX(1.1); } }
@keyframes agf-sun { 0%,100% { opacity: 0.7; transform: scale(1); } 50% { opacity: 1; transform: scale(1.15); } }

/* scene 4: island-hunt-and-retreat — tense sunlit native attack on beach */
.scn-island-hunt-and-retreat {
  background:
    linear-gradient(180deg, #f0d8a0 0%, #c09850 40%, #a07830 70%, #806020 100%),
    radial-gradient(ellipse at 40% 10%, rgba(255,240,200,0.7) 0%, transparent 50%);
}
.scn-island-hunt-and-retreat .beach-sand {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #d8b878 0%, #b89858 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.15);
  animation: ihr-sand 18s ease-in-out infinite;
}
.scn-island-hunt-and-retreat .pig-carcass {
  position: absolute; bottom: 25%; left: 15%; width: 50px; height: 25px;
  background: #5a3a1a;
  border-radius: 50% 30% 40% 30%;
  box-shadow: inset 0 -4px 6px rgba(0,0,0,0.5);
  animation: ihr-pig 10s ease-in-out infinite;
}
.scn-island-hunt-and-retreat .kangaroo-silhouette {
  position: absolute; bottom: 28%; left: 30%; width: 30px; height: 40px;
  background: #3a2a1a;
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform: scaleX(-1) rotate(-10deg);
  animation: ihr-kangaroo 12s ease-in-out infinite;
}
.scn-island-hunt-and-retreat .native-warrior-a {
  position: absolute; bottom: 28%; right: 20%; width: 18px; height: 42px;
  background: #2a1a0a;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(20deg);
  animation: ihr-warrior-a 5s ease-in-out infinite;
}
.scn-island-hunt-and-retreat .native-warrior-b {
  position: absolute; bottom: 28%; right: 10%; width: 16px; height: 38px;
  background: #2a1a0a;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-15deg);
  animation: ihr-warrior-b 7s ease-in-out infinite;
}
.scn-island-hunt-and-retreat .skiff-retreat {
  position: absolute; bottom: 22%; left: 45%; width: 80px; height: 20px;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%);
  border-radius: 30% 10% 40% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: ihr-skiff 15s linear infinite;
}
.scn-island-hunt-and-retreat .arrows-stones {
  position: absolute; top: 40%; left: 0; width: 100%; height: 30%;
  background: radial-gradient(circle at 30% 50%, #4a3a1a 0%, transparent 4%) 0% 0% / 10px 10px,
              repeating-linear-gradient(45deg, rgba(100,80,40,0.8) 0px, rgba(100,80,40,0.8) 2px, transparent 2px, transparent 12px);
  filter: blur(1px);
  animation: ihr-arrows 3s ease-in-out infinite alternate;
}
.scn-island-hunt-and-retreat .sun-bare {
  position: absolute; top: 10%; left: 30%; width: 40px; height: 40px;
  background: radial-gradient(circle, #fff8d0 0%, rgba(255,248,200,0.2) 50%, transparent 100%);
  border-radius: 50%;
  filter: blur(2px);
  animation: ihr-sun 6s ease-in-out infinite;
}
@keyframes ihr-sand { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes ihr-pig { 0%,100% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(3px) rotate(2deg); } }
@keyframes ihr-kangaroo { 0%,100% { transform: scaleX(-1) rotate(-10deg) translateY(0); } 50% { transform: scaleX(-1) rotate(-8deg) translateY(-4px); } }
@keyframes ihr-warrior-a { 0%,100% { transform: rotate(20deg) translateX(0); } 50% { transform: rotate(25deg) translateX(-3px); } }
@keyframes ihr-warrior-b { 0%,100% { transform: rotate(-15deg) translateX(0); } 50% { transform: rotate(-10deg) translateX(4px); } }
@keyframes ihr-skiff { 0% { transform: translateX(0); } 100% { transform: translateX(-100vw); } }
@keyframes ihr-arrows { 0% { transform: translateY(0) rotate(-3deg); } 100% { transform: translateY(-8px) rotate(3deg); } }
@keyframes ihr-sun { 0%,100% { opacity: 0.8; } 50% { opacity: 1; } }

/* Arabian Tunnel Passage */
.scn-arabian-tunnel-passage {
  background:
    linear-gradient(180deg, #0a0f1a 0%, #111a2b 40%, #0f1e2e 100%),
    radial-gradient(ellipse at 80% 50%, #1a2a3a 0%, transparent 60%);
}
.scn-arabian-tunnel-passage .tunnel-wall-left {
  position: absolute; top: 0; left: 0; width: 25%; height: 100%;
  background: linear-gradient(180deg, #141c2c 0%, #0a0f1a 100%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 0 100%);
  animation: at-tunnel-pulse 8s ease-in-out infinite;
}
.scn-arabian-tunnel-passage .tunnel-wall-right {
  position: absolute; top: 0; right: 0; width: 25%; height: 100%;
  background: linear-gradient(180deg, #141c2c 0%, #0a0f1a 100%);
  clip-path: polygon(20% 0, 100% 0, 100% 100%, 0 100%);
  animation: at-tunnel-pulse 8s ease-in-out infinite reverse;
}
.scn-arabian-tunnel-passage .water-surface {
  position: absolute; top: 30%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, rgba(20,40,60,0.4) 0%, rgba(10,20,30,0.8) 100%);
  filter: blur(2px);
  animation: at-current 12s ease-in-out infinite alternate;
}
.scn-arabian-tunnel-passage .figure-swimmer-1 {
  position: absolute; bottom: 40%; left: 40%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: at-swim 6s ease-in-out infinite;
}
.scn-arabian-tunnel-passage .figure-swimmer-2 {
  position: absolute; bottom: 38%; left: 48%; width: 18px; height: 36px;
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: at-swim 7s ease-in-out infinite 0.5s;
}
.scn-arabian-tunnel-passage .exit-light {
  position: absolute; top: 45%; right: 15%; width: 30px; height: 60px;
  background: radial-gradient(ellipse, rgba(180,220,255,0.6) 0%, transparent 100%);
  filter: blur(4px);
  animation: at-light-flicker 3s ease-in-out infinite alternate;
}
.scn-arabian-tunnel-passage .bubble {
  position: absolute; border-radius: 50%;
  background: radial-gradient(circle, rgba(200,230,255,0.3) 20%, transparent 80%);
  filter: blur(1px);
}
.scn-arabian-tunnel-passage .bubble-1 {
  bottom: 20%; left: 30%; width: 8px; height: 8px;
  animation: at-bubble-rise 10s linear infinite;
}
.scn-arabian-tunnel-passage .bubble-2 {
  bottom: 35%; left: 55%; width: 6px; height: 6px;
  animation: at-bubble-rise 12s linear infinite 3s;
}
.scn-arabian-tunnel-passage .bubble-3 {
  bottom: 25%; left: 70%; width: 7px; height: 7px;
  animation: at-bubble-rise 9s linear infinite 6s;
}
@keyframes at-tunnel-pulse {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes at-current {
  0% { transform: translateX(0) scaleY(1); }
  50% { transform: translateX(-10px) scaleY(0.95); }
  100% { transform: translateX(10px) scaleY(1.05); }
}
@keyframes at-swim {
  0% { transform: rotate(-2deg) translateX(0); }
  50% { transform: rotate(2deg) translateX(12px); }
  100% { transform: rotate(-2deg) translateX(0); }
}
@keyframes at-light-flicker {
  0% { opacity: 0.6; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.1); }
  100% { opacity: 0.6; transform: scale(0.95); }
}
@keyframes at-bubble-rise {
  0% { transform: translateY(0) scale(0.5); opacity: 0.7; }
  50% { transform: translateY(-80px) scale(1); opacity: 0.4; }
  100% { transform: translateY(-160px) scale(0.5); opacity: 0; }
}

/* Nemo Gold Dispatch */
.scn-nemo-gold-dispatch {
  background:
    linear-gradient(180deg, #1c0a0a 0%, #2a0e05 40%, #1a0808 100%),
    radial-gradient(ellipse at 60% 80%, #4a1a0a 0%, transparent 70%);
}
.scn-nemo-gold-dispatch .interior-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(10,5,5,0.9) 0%, transparent 50%, rgba(10,5,5,0.8) 100%);
}
.scn-nemo-gold-dispatch .fire-glow {
  position: absolute; bottom: 20%; left: 30%; width: 80px; height: 80px;
  background: radial-gradient(circle, rgba(255,120,40,0.7) 0%, rgba(255,80,20,0.3) 40%, transparent 70%);
  filter: blur(12px);
  animation: ng-fire 2s ease-in-out infinite alternate;
}
.scn-nemo-gold-dispatch .chest {
  position: absolute; bottom: 25%; left: 35%; width: 50px; height: 30px;
  background: linear-gradient(180deg, #5e3a1a 0%, #3a2010 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6), inset 0 2px 4px rgba(200,150,80,0.3);
  animation: ng-chest-glow 4s ease-in-out infinite;
}
.scn-nemo-gold-dispatch .gold-ingot {
  position: absolute; bottom: 22%; width: 20px; height: 10px;
  background: linear-gradient(180deg, #d4a840 0%, #b08020 100%);
  border-radius: 4px;
  box-shadow: 0 0 6px 2px rgba(212,168,64,0.6);
  animation: ng-gold-sparkle 3s ease-in-out infinite;
}
.scn-nemo-gold-dispatch .ingot-1 { left: 42%; }
.scn-nemo-gold-dispatch .ingot-2 { left: 48%; animation-delay: 0.5s; }
.scn-nemo-gold-dispatch .nemo-figure {
  position: absolute; bottom: 30%; left: 20%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #0a0a1a 0%, #050510 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ng-nemo-turn 10s ease-in-out infinite;
}
.scn-nemo-gold-dispatch .nicolas-diver {
  position: absolute; bottom: 28%; left: 55%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ng-diver-wave 6s ease-in-out infinite;
}
.scn-nemo-gold-dispatch .skiff {
  position: absolute; bottom: 32%; left: 60%; width: 40px; height: 12px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 0 0 20px 20px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation: ng-skiff-rock 5s ease-in-out infinite;
}
.scn-nemo-gold-dispatch .volcanic-glare {
  position: absolute; top: 10%; right: 10%; width: 60px; height: 100px;
  background: radial-gradient(ellipse at top, rgba(255,80,20,0.8) 0%, transparent 60%);
  filter: blur(8px);
  animation: ng-volcano-pulse 4s ease-in-out infinite alternate;
}
@keyframes ng-fire {
  0% { transform: scale(1); opacity: 0.7; }
  50% { transform: scale(1.15); opacity: 1; }
  100% { transform: scale(0.9); opacity: 0.8; }
}
@keyframes ng-chest-glow {
  0% { box-shadow: 0 4px 8px rgba(0,0,0,0.6), inset 0 2px 4px rgba(200,150,80,0.3); }
  50% { box-shadow: 0 4px 12px rgba(200,150,80,0.4), inset 0 2px 6px rgba(200,150,80,0.5); }
  100% { box-shadow: 0 4px 8px rgba(0,0,0,0.6), inset 0 2px 4px rgba(200,150,80,0.3); }
}
@keyframes ng-gold-sparkle {
  0% { transform: scaleY(1); box-shadow: 0 0 6px 2px rgba(212,168,64,0.6); }
  50% { transform: scaleY(1.2); box-shadow: 0 0 12px 4px rgba(212,168,64,0.8); }
  100% { transform: scaleY(1); box-shadow: 0 0 6px 2px rgba(212,168,64,0.6); }
}
@keyframes ng-nemo-turn {
  0% { transform: rotate(0) translateX(0); }
  50% { transform: rotate(-8deg) translateX(-6px); }
  100% { transform: rotate(0) translateX(0); }
}
@keyframes ng-diver-wave {
  0% { transform: rotate(2deg) translateY(0); }
  50% { transform: rotate(-2deg) translateY(-4px); }
  100% { transform: rotate(2deg) translateY(0); }
}
@keyframes ng-skiff-rock {
  0% { transform: rotate(0); }
  25% { transform: rotate(3deg); }
  75% { transform: rotate(-3deg); }
  100% { transform: rotate(0); }
}
@keyframes ng-volcano-pulse {
  0% { opacity: 0.6; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.2); }
  100% { opacity: 0.7; transform: scale(0.9); }
}

/* Mediterranean Shipwrecks */
.scn-mediterranean-shipwrecks {
  background:
    linear-gradient(180deg, #05121a 0%, #0a1e2e 50%, #04101a 100%),
    radial-gradient(ellipse at 50% 100%, #0a2a3a 0%, transparent 80%);
}
.scn-mediterranean-shipwrecks .deep-water {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(10,30,40,0.8) 0%, transparent 40%, rgba(5,15,25,0.9) 100%);
  animation: ms-water-pulse 15s ease-in-out infinite alternate;
}
.scn-mediterranean-shipwrecks .seafloor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1a2a2a 0%, #0a1a1a 100%);
  border-radius: 60% 40% 0 0 / 80% 70% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.6);
}
.scn-mediterranean-shipwrecks .shipwreck-hull {
  position: absolute; bottom: 15%; left: 20%; width: 120px; height: 40px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a05 100%);
  border-radius: 0 0 30% 30%;
  clip-path: polygon(0 20%, 100% 20%, 90% 100%, 10% 100%);
  box-shadow: inset 0 -4px 8px rgba(0,0,0,0.5);
  animation: ms-hull-sway 12s ease-in-out infinite;
}
.scn-mediterranean-shipwrecks .jellyfish {
  position: absolute; border-radius: 50%;
  background: radial-gradient(circle at 50% 30%, rgba(180,230,255,0.3) 0%, transparent 80%);
  filter: blur(3px);
}
.scn-mediterranean-shipwrecks .jellyfish-1 {
  top: 30%; left: 60%; width: 30px; height: 25px;
  animation: ms-jelly-drift 18s linear infinite;
}
.scn-mediterranean-shipwrecks .jellyfish-2 {
  top: 50%; left: 30%; width: 24px; height: 20px;
  animation: ms-jelly-drift 22s linear infinite 5s;
}
.scn-mediterranean-shipwrecks .crinoid {
  position: absolute; bottom: 25%;
  width: 2px; height: 30px;
  background: linear-gradient(180deg, #4a6a5a 0%, #2a4a3a 100%);
  border-radius: 50% 50% 0 0;
  transform-origin: bottom center;
}
.scn-mediterranean-shipwrecks .crinoid-1 { left: 40%; animation: ms-crinoid-sway 6s ease-in-out infinite; }
.scn-mediterranean-shipwrecks .crinoid-2 { left: 50%; height: 35px; animation: ms-crinoid-sway 7s ease-in-out infinite 1s; }
.scn-mediterranean-shipwrecks .conseil-silhouette {
  position: absolute; bottom: 22%; left: 15%; width: 16px; height: 34px;
  background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ms-catalogue 8s ease-in-out infinite;
}
.scn-mediterranean-shipwrecks .bubble {
  position: absolute; border-radius: 50%;
  background: radial-gradient(circle, rgba(200,230,255,0.2) 20%, transparent 80%);
  filter: blur(1px);
}
.scn-mediterranean-shipwrecks .bubble-1 {
  bottom: 10%; left: 70%; width: 6px; height: 6px;
  animation: ms-bubble-rise 9s linear infinite;
}
.scn-mediterranean-shipwrecks .bubble-2 {
  bottom: 20%; left: 45%; width: 8px; height: 8px;
  animation: ms-bubble-rise 11s linear infinite 4s;
}
@keyframes ms-water-pulse {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.6; }
}
@keyframes ms-hull-sway {
  0% { transform: translateX(0) rotate(0); }
  50% { transform: translateX(4px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes ms-jelly-drift {
  0% { transform: translateX(-10px) translateY(0); opacity: 0.3; }
  50% { transform: translateX(20px) translateY(-8px); opacity: 0.7; }
  100% { transform: translateX(-10px) translateY(0); opacity: 0.3; }
}
@keyframes ms-crinoid-sway {
  0% { transform: rotate(0); }
  50% { transform: rotate(6deg); }
  100% { transform: rotate(0); }
}
@keyframes ms-catalogue {
  0% { transform: translateX(0) rotate(-2deg); }
  50% { transform: translateX(10px) rotate(2deg); }
  100% { transform: translateX(0) rotate(-2deg); }
}
@keyframes ms-bubble-rise {
  0% { transform: translateY(0) scale(0.5); opacity: 0.6; }
  50% { transform: translateY(-60px) scale(1); opacity: 0.3; }
  100% { transform: translateY(-120px) scale(0.5); opacity: 0; }
}

/* Vigo Bay Treasure */
.scn-vigo-bay-treasure {
  background:
    linear-gradient(180deg, #1a0a05 0%, #2a1008 40%, #0a0505 100%),
    radial-gradient(ellipse at 50% 30%, #3a1505 0%, transparent 80%);
}
.scn-vigo-bay-treasure .wreck-exterior {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, rgba(20,10,5,0.9) 0%, transparent 100%);
  clip-path: polygon(0 40%, 20% 20%, 40% 30%, 60% 15%, 80% 25%, 100% 10%, 100% 100%, 0 100%);
  animation: vb-wreck-sway 20s ease-in-out infinite alternate;
}
.scn-vigo-bay-treasure .treasure-chest {
  position: absolute; bottom: 15%; width: 45px; height: 28px;
  background: linear-gradient(180deg, #5e3a1a 0%, #3a2010 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.7), inset 0 2px 4px rgba(200,150,80,0.3);
}
.scn-vigo-bay-treasure .chest-1 { left: 25%; animation: vb-chest-glow 5s ease-in-out infinite; }
.scn-vigo-bay-treasure .chest-2 { left: 50%; width: 40px; height: 24px; animation: vb-chest-glow 5s ease-in-out infinite 2s; }
.scn-vigo-bay-treasure .gold-coin {
  position: absolute; bottom: 10%; width: 10px; height: 10px;
  background: radial-gradient(circle, #d4a840 0%, #b08020 100%);
  border-radius: 50%;
  box-shadow: 0 0 4px 2px rgba(212,168,64,0.5);
  animation: vb-coin-sparkle 3s ease-in-out infinite;
}
.scn-vigo-bay-treasure .coin-1 { left: 35%; }
.scn-vigo-bay-treasure .coin-2 { left: 55%; animation-delay: 1s; }
.scn-vigo-bay-treasure .crewman {
  position: absolute; bottom: 20%; width: 18px; height: 38px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: vb-crewman-bend 6s ease-in-out infinite;
}
.scn-vigo-bay-treasure .crewman-1 { left: 30%; }
.scn-vigo-bay-treasure .crewman-2 { left: 45%; animation-delay: 3s; }
.scn-vigo-bay-treasure .nemo-silhouette {
  position: absolute; bottom: 25%; left: 15%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #0a0a1a 0%, #050510 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: vb-nemo-watch 8s ease-in-out infinite;
}
.scn-vigo-bay-treasure .fire-glare {
  position: absolute; top: 20%; right: 20%; width: 100px; height: 100px;
  background: radial-gradient(circle, rgba(255,100,30,0.6) 0%, rgba(255,50,10,0.2) 40%, transparent 70%);
  filter: blur(12px);
  animation: vb-fire-glare 3s ease-in-out infinite alternate;
}
@keyframes vb-wreck-sway {
  0% { transform: translateX(0) rotate(0); }
  50% { transform: translateX(8px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes vb-chest-glow {
  0% { box-shadow: 0 4px 8px rgba(0,0,0,0.7), inset 0 2px 4px rgba(200,150,80,0.3); }
  50% { box-shadow: 0 4px 14px rgba(200,150,80,0.5), inset 0 2px 6px rgba(200,150,80,0.5); }
  100% { box-shadow: 0 4px 8px rgba(0,0,0,0.7), inset 0 2px 4px rgba(200,150,80,0.3); }
}
@keyframes vb-coin-sparkle {
  0% { transform: scale(1) rotate(0); opacity: 0.8; }
  50% { transform: scale(1.3) rotate(15deg); opacity: 1; }
  100% { transform: scale(1) rotate(0); opacity: 0.8; }
}
@keyframes vb-crewman-bend {
  0% { transform: translateY(0) rotate(-2deg); }
  50% { transform: translateY(-6px) rotate(2deg); }
  100% { transform: translateY(0) rotate(-2deg); }
}
@keyframes vb-nemo-watch {
  0% { transform: rotate(0) translateX(0); }
  50% { transform: rotate(-10deg) translateX(-8px); }
  100% { transform: rotate(0) translateX(0); }
}
@keyframes vb-fire-glare {
  0% { opacity: 0.6; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.2); }
  100% { opacity: 0.7; transform: scale(0.9); }
}

/* frigate-encounter-night */
.scn-frigate-encounter-night {
  background: linear-gradient(180deg, #0d0d2e 0%, #1a1a4e 30%, #2c2c6e 60%, #1f1f3f 100%),
              radial-gradient(ellipse at 50% 0%, #3b3b7e 0%, transparent 60%);
}
.scn-frigate-encounter-night .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #1e1e4e, transparent); animation: fen-sky 14s ease-in-out infinite alternate; }
.scn-frigate-encounter-night .moon { position:absolute; top:12%; right:15%; width:40px; height:40px; background: radial-gradient(circle, #d0d0f0, #9090c0); border-radius:50%; box-shadow: 0 0 30px 10px rgba(144,144,192,.5), 0 0 60px 20px rgba(96,96,160,.3); animation: fen-moon 6s ease-in-out infinite; }
.scn-frigate-encounter-night .clouds { position:absolute; top:8%; left:0; right:0; height:20%; background: linear-gradient(90deg, rgba(200,200,220,.15) 0%, rgba(200,200,220,.05) 50%, transparent 70%); filter: blur(8px); animation: fen-clouds 40s linear infinite; }
.scn-frigate-encounter-night .sea { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #0a0a2a 0%, #15153a 40%, #0f0f2f 100%); animation: fen-sea 10s ease-in-out infinite alternate; }
.scn-frigate-encounter-night .frigate { position:absolute; bottom:35%; left:25%; width:140px; height:60px; background: linear-gradient(180deg, #2a2a4a 0%, #1a1a3a 100%); border-radius: 10% 10% 5% 5%; transform-origin: bottom center; animation: fen-ship 5s ease-in-out infinite; }
.scn-frigate-encounter-night .mast { position:absolute; bottom:50%; left:28%; width:4px; height:50px; background: linear-gradient(180deg, #6a6a8a, #3a3a5a); border-radius: 2px; transform-origin: bottom; animation: fen-mast 5s ease-in-out infinite; }
.scn-frigate-encounter-night .monster { position:absolute; bottom:30%; left:60%; width:80px; height:30px; background: linear-gradient(180deg, #0f0f2f 0%, #0a0a1a 100%); border-radius: 40% 60% 40% 40%; filter: blur(2px); box-shadow: 0 0 15px 5px rgba(0,255,200,.15); animation: fen-monster 12s ease-in-out infinite alternate; }
.scn-frigate-encounter-night .wake { position:absolute; bottom:35%; left:15%; width:120px; height:10px; background: radial-gradient(ellipse, rgba(200,220,255,.2) 0%, transparent 100%); filter: blur(3px); animation: fen-wake 3s ease-in-out infinite alternate; }
@keyframes fen-sky { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.75 } }
@keyframes fen-moon { 0% { transform: translateX(0) scale(1) } 50% { transform: translateX(-4px) scale(1.02) } 100% { transform: translateX(0) scale(1) } }
@keyframes fen-clouds { 0% { transform: translateX(0) } 100% { transform: translateX(40vw) } }
@keyframes fen-sea { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) translateY(-2px) } 100% { transform: scaleY(1) } }
@keyframes fen-ship { 0% { transform: rotate(-2deg) translateY(0) } 50% { transform: rotate(2deg) translateY(-3px) } 100% { transform: rotate(-1deg) translateY(0) } }
@keyframes fen-mast { 0% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-1deg) } }
@keyframes fen-monster { 0% { transform: translateX(0) scale(1) } 50% { transform: translateX(-30px) scale(0.95) } 100% { transform: translateX(0) scale(1) } }
@keyframes fen-wake { 0% { opacity:.3 } 50% { opacity:1 } 100% { opacity:.4 } }

/* harpoon-strike-man-overboard */
.scn-harpoon-strike-man-overboard {
  background: linear-gradient(180deg, #0a0a1a 0%, #12122a 30%, #080818 70%, #03030a 100%),
              radial-gradient(ellipse at 30% 80%, #1a1a3a 0%, transparent 70%);
}
.scn-harpoon-strike-man-overboard .dark-sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #0f0f2f, transparent); animation: hsk-sky 12s ease-in-out infinite alternate; }
.scn-harpoon-strike-man-overboard .sea { position:absolute; bottom:0; left:0; right:0; height:60%; background: linear-gradient(180deg, #050515 0%, #0a0a20 40%, #03030c 100%); animation: hsk-sea 8s ease-in-out infinite alternate; }
.scn-harpoon-strike-man-overboard .frigate { position:absolute; bottom:50%; left:10%; width:100px; height:40px; background: linear-gradient(180deg, #1a1a30 0%, #0a0a18 100%); border-radius:5% 5% 3% 3%; transform-origin: bottom center; animation: hsk-frigate 4s ease-in-out infinite; }
.scn-harpoon-strike-man-overboard .harpoon { position:absolute; bottom:55%; left:25%; width:3px; height:40px; background: linear-gradient(180deg, #b0b0c0, #606070); border-radius: 1px; transform: rotate(15deg); transform-origin: bottom; animation: hsk-harpoon 1s ease-out 1; animation-fill-mode: forwards; }
.scn-harpoon-strike-man-overboard .splash { position:absolute; bottom:45%; left:30%; width:60px; height:30px; background: radial-gradient(ellipse, rgba(200,220,255,.3) 0%, transparent 100%); border-radius:50%; filter: blur(4px); animation: hsk-splash 2s ease-out infinite; }
.scn-harpoon-strike-man-overboard .figure1 { position:absolute; bottom:35%; left:35%; width:16px; height:30px; background: linear-gradient(180deg, #2a2a4a 0%, #15152a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: hsk-figure1 6s ease-in-out infinite; }
.scn-harpoon-strike-man-overboard .figure2 { position:absolute; bottom:38%; left:38%; width:14px; height:28px; background: linear-gradient(180deg, #1f1f3f 0%, #0f0f1f 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: hsk-figure2 6s ease-in-out infinite 0.5s; }
@keyframes hsk-sky { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes hsk-sea { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-5px) scaleY(1.03) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes hsk-frigate { 0% { transform: rotate(-3deg) translateY(0) } 50% { transform: rotate(3deg) translateY(-4px) } 100% { transform: rotate(-2deg) translateY(0) } }
@keyframes hsk-harpoon { 0% { transform: rotate(15deg) translateY(0) } 100% { transform: rotate(15deg) translateY(-40px) opacity:0 } }
@keyframes hsk-splash { 0% { transform: scale(0) opacity:1 } 50% { transform: scale(1.5) opacity:.6 } 100% { transform: scale(2) opacity:0 } }
@keyframes hsk-figure1 { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(5px) rotate(2deg) } 50% { transform: translateX(10px) rotate(-1deg) } 75% { transform: translateX(15px) rotate(1deg) } 100% { transform: translateX(20px) rotate(0) } }
@keyframes hsk-figure2 { 0% { transform: translateX(0) translateY(0) rotate(2deg) } 25% { transform: translateX(4px) translateY(-4px) rotate(-2deg) } 50% { transform: translateX(8px) translateY(-2px) rotate(1deg) } 75% { transform: translateX(12px) translateY(-6px) rotate(-1deg) } 100% { transform: translateX(16px) translateY(-3px) rotate(0) } }

/* rescue-on-submarine */
.scn-rescue-on-submarine {
  background: linear-gradient(180deg, #12123a 0%, #1e1e4e 30%, #0f0f2f 70%, #08081a 100%),
              radial-gradient(ellipse at 70% 20%, #2a2a6e 0%, transparent 60%);
}
.scn-rescue-on-submarine .sky-moon { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #16163e, transparent); animation: rsn-sky 15s ease-in-out infinite alternate; }
.scn-rescue-on-submarine .moon { position:absolute; top:8%; left:65%; width:34px; height:34px; background: radial-gradient(circle, #c0c0e0, #8080b0); border-radius:50%; box-shadow: 0 0 25px 8px rgba(128,128,176,.4), 0 0 50px 15px rgba(80,80,140,.2); animation: rsn-moon 7s ease-in-out infinite; }
.scn-rescue-on-submarine .sea { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #0a0a22 0%, #11113a 40%, #060618 100%); animation: rsn-sea 9s ease-in-out infinite alternate; }
.scn-rescue-on-submarine .frigate-far { position:absolute; bottom:50%; right:10%; width:80px; height:30px; background: linear-gradient(180deg, #1a1a3a 0%, #0a0a1a 100%); border-radius: 8% 8% 3% 3%; filter: blur(1px); animation: rsn-frigate 6s ease-in-out infinite; }
.scn-rescue-on-submarine .longboat { position:absolute; bottom:40%; left:30%; width:70px; height:20px; background: linear-gradient(180deg, #2a2a4a 0%, #181830 100%); border-radius: 12% 12% 5% 5%; transform-origin: bottom center; animation: rsn-boat 4s ease-in-out infinite; }
.scn-rescue-on-submarine .rower1 { position:absolute; bottom:43%; left:35%; width:12px; height:18px; background: linear-gradient(180deg, #1f1f3f 0%, #0f0f1f 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: rsn-row1 2s ease-in-out infinite; }
.scn-rescue-on-submarine .rower2 { position:absolute; bottom:44%; left:40%; width:12px; height:18px; background: linear-gradient(180deg, #1f1f3f 0%, #0f0f1f 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: rsn-row2 2s ease-in-out infinite 0.3s; }
.scn-rescue-on-submarine .wave-foam { position:absolute; bottom:40%; left:20%; right:20%; height:8px; background: radial-gradient(ellipse, rgba(200,220,255,.15) 0%, transparent 100%); filter: blur(3px); animation: rsn-foam 3s ease-in-out infinite alternate; }
@keyframes rsn-sky { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.75 } }
@keyframes rsn-moon { 0% { transform: translateX(0) scale(1) } 50% { transform: translateX(-3px) scale(1.01) } 100% { transform: translateX(0) scale(1) } }
@keyframes rsn-sea { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-3px) scaleY(1.02) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes rsn-frigate { 0% { transform: rotate(-1deg) } 50% { transform: rotate(1deg) } 100% { transform: rotate(-0.5deg) } }
@keyframes rsn-boat { 0% { transform: rotate(-3deg) translateY(0) } 50% { transform: rotate(3deg) translateY(-4px) } 100% { transform: rotate(-2deg) translateY(0) } }
@keyframes rsn-row1 { 0% { transform: rotate(0deg) translateY(0) } 50% { transform: rotate(-15deg) translateY(-5px) } 100% { transform: rotate(0deg) translateY(0) } }
@keyframes rsn-row2 { 0% { transform: rotate(0deg) translateY(0) } 50% { transform: rotate(-15deg) translateY(-5px) } 100% { transform: rotate(0deg) translateY(0) } }
@keyframes rsn-foam { 0% { opacity:.2 } 50% { opacity:.6 } 100% { opacity:.3 } }

/* dragged-aboard-nautilus */
.scn-dragged-aboard-nautilus {
  background: linear-gradient(180deg, #1a1a2a 0%, #0f0f1f 30%, #1e1e2e 60%, #0a0a14 100%),
              radial-gradient(ellipse at 50% 20%, #3a3a5a 0%, transparent 70%);
}
.scn-dragged-aboard-nautilus .wall { position:absolute; inset:0; background: linear-gradient(90deg, #2a2a3a 0%, #1a1a2a 20%, #1e1e2e 80%, #2a2a3a 100%); border: 2px solid #3a3a4a; box-shadow: inset 0 0 40px rgba(0,0,10,.5); }
.scn-dragged-aboard-nautilus .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #1c1c2c 0%, #0e0e1a 100%); box-shadow: inset 0 5px 20px rgba(0,0,0,.6); }
.scn-dragged-aboard-nautilus .hatch { position:absolute; top:15%; left:50%; width:50px; height:50px; transform:translateX(-50%); background: radial-gradient(circle, #2a2a3a 0%, #1a1a2a 70%); border-radius:50%; border: 3px solid #4a4a5a; box-shadow: 0 0 15px rgba(0,0,0,.7); }
.scn-dragged-aboard-nautilus .masked1 { position:absolute; bottom:20%; left:20%; width:18px; height:40px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a14 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: dbn-mask1 5s ease-in-out infinite; }
.scn-dragged-aboard-nautilus .masked2 { position:absolute; bottom:20%; left:40%; width:18px; height:38px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a14 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: dbn-mask2 5s ease-in-out infinite 0.5s; }
.scn-dragged-aboard-nautilus .masked3 { position:absolute; bottom:20%; right:25%; width:18px; height:42px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a14 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: dbn-mask3 5s ease-in-out infinite 1s; }
.scn-dragged-aboard-nautilus .glow-lamp { position:absolute; top:8%; left:50%; width:10px; height:10px; transform:translateX(-50%); background: radial-gradient(circle, #b08040 0%, #604020 100%); border-radius:50%; box-shadow: 0 0 30px 10px rgba(176,128,64,.4), 0 0 60px 20px rgba(96,64,32,.2); animation: dbn-glow 4s ease-in-out infinite alternate; }
.scn-dragged-aboard-nautilus .rivet-row { position:absolute; top:25%; left:10%; right:10%; height:2px; background: repeating-linear-gradient(90deg, #5a5a6a 0px, #5a5a6a 3px, transparent 3px, transparent 15px); animation: dbn-rivets 20s linear infinite; }
@keyframes dbn-mask1 { 0% { transform: translateX(0) rotate(-1deg) } 50% { transform: translateX(5px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes dbn-mask2 { 0% { transform: translateX(0) rotate(1deg) } 50% { transform: translateX(-3px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes dbn-mask3 { 0% { transform: translateX(0) scale(1) } 50% { transform: translateX(4px) scale(1.02) } 100% { transform: translateX(0) scale(1) } }
@keyframes dbn-glow { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes dbn-rivets { 0% { background-position: 0 0 } 100% { background-position: 100vw 0 } }

.scn-atlantis-revelation {
  background:
    radial-gradient(ellipse at 50% 60%, #0a2940 0%, #030b14 60%, #000208 100%),
    linear-gradient(180deg, #041626 0%, #0a2240 40%, #0e3050 100%);
}
.scn-atlantis-revelation .deep-water { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, transparent 0%, #0b1e30 70%, #041626 100%); animation: ar-water 18s ease-in-out infinite alternate; }
.scn-atlantis-revelation .seabed { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #1e2a1a 0%, #0a1208 100%); border-radius: 60% 40% 0 0 / 40% 60% 0 0; box-shadow: inset 0 8px 20px #000; clip-path: polygon(0 0, 10% 35%, 20% 10%, 40% 45%, 60% 20%, 80% 50%, 100% 15%, 100% 100%, 0 100%); }
.scn-atlantis-revelation .nautilus-silhouette { position:absolute; bottom:30%; left:40%; width:120px; height:40px; background: linear-gradient(90deg, #1a2028 0%, #2a3540 50%, #1a2028 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-5deg); box-shadow: 0 4px 12px #000; animation: ar-nautilus 8s ease-in-out infinite; }
.scn-atlantis-revelation .figure-aronnax { position:absolute; bottom:35%; left:52%; width:14px; height:28px; background: linear-gradient(180deg, #1c2a36 0%, #0a141e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: ar-figure 5s ease-in-out infinite; }
.scn-atlantis-revelation .distant-glow { position:absolute; bottom:40%; left:70%; width:40px; height:40px; background: radial-gradient(circle at 50% 50%, #b84c24 0%, #7a2806 50%, transparent 80%); border-radius: 50%; box-shadow: 0 0 60px 20px #b84c24, 0 0 120px 40px rgba(184,76,36,0.4); animation: ar-glow 6s ease-in-out infinite alternate; }
.scn-atlantis-revelation .bubble-1 { position:absolute; bottom:20%; left:30%; width:6px; height:6px; background: radial-gradient(circle, rgba(160,200,220,0.6) 0%, transparent 70%); border-radius: 50%; animation: ar-bubble 4s ease-in-out infinite; }
.scn-atlantis-revelation .bubble-2 { position:absolute; bottom:45%; left:55%; width:8px; height:8px; background: radial-gradient(circle, rgba(160,200,220,0.5) 0%, transparent 70%); border-radius: 50%; animation: ar-bubble 5s ease-in-out infinite 1.5s; }
.scn-atlantis-revelation .seaweed { position:absolute; bottom:18%; left:20%; width:30px; height:50px; background: linear-gradient(180deg, #1a4a2a 0%, #0a2a1a 100%); border-radius: 50% 50% 30% 30% / 40% 40% 30% 30%; transform-origin: bottom; animation: ar-seaweed 7s ease-in-out infinite alternate; }
@keyframes ar-water { 0% { opacity:0.7; transform: translateY(0); } 50% { opacity:0.85; transform: translateY(-5px); } 100% { opacity:0.7; transform: translateY(0); } }
@keyframes ar-nautilus { 0%,100% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-3px); } }
@keyframes ar-figure { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 25% { transform: translateX(3px) translateY(-2px) rotate(2deg); } 50% { transform: translateX(5px) translateY(0) rotate(0deg); } 75% { transform: translateX(2px) translateY(-1px) rotate(-2deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes ar-glow { 0% { opacity:0.6; box-shadow: 0 0 40px 15px #b84c24, 0 0 80px 30px rgba(184,76,36,0.3); } 50% { opacity:1; box-shadow: 0 0 80px 30px #d86c34, 0 0 140px 50px rgba(216,108,52,0.5); } 100% { opacity:0.7; box-shadow: 0 0 50px 18px #b84c24, 0 0 100px 35px rgba(184,76,36,0.35); } }
@keyframes ar-bubble { 0% { transform: translateY(0) scale(1); opacity:0.6; } 50% { transform: translateY(-40px) scale(1.2); opacity:0.8; } 100% { transform: translateY(-80px) scale(0.8); opacity:0; } }
@keyframes ar-seaweed { 0% { transform: rotate(-15deg); } 50% { transform: rotate(10deg); } 100% { transform: rotate(-15deg); } }

.scn-volcano-crater-harbor {
  background:
    radial-gradient(ellipse at 50% 20%, #8a3c1a 0%, #4a1e0a 40%, #1a0a04 100%),
    linear-gradient(180deg, #2a1206 0%, #4a1e0a 30%, #6a2e14 60%, #2a1206 100%);
}
.scn-volcano-crater-harbor .volcanic-sky { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #3a1a08 0%, #7a3a18 40%, #a85a24 70%, #d47a34 100%); animation: vh-sky 20s ease-in-out infinite alternate; }
.scn-volcano-crater-harbor .crater-wall { position:absolute; bottom:40%; left:0; right:0; height:40%; background: linear-gradient(180deg, #5a2e14 0%, #3a1a08 100%); clip-path: polygon(0% 0%, 15% 30%, 30% 15%, 50% 40%, 70% 20%, 85% 35%, 100% 10%, 100% 100%, 0% 100%); filter: drop-shadow(0 -8px 12px #000); }
.scn-volcano-crater-harbor .dragon-tree { position:absolute; bottom:25%; left:50%; width:40px; height:80px; background: linear-gradient(180deg, #6a3a1a 0%, #3a1a08 100%); border-radius: 20% 20% 40% 40% / 30% 30% 50% 50%; transform: translateX(-50%); animation: vh-tree 7s ease-in-out infinite; }
.scn-volcano-crater-harbor .beehive { position:absolute; bottom:40%; left:45%; width:20px; height:24px; background: linear-gradient(180deg, #c8a858 0%, #b08838 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: inset -3px -3px 6px #6a4a18; animation: vh-hive 5s ease-in-out infinite alternate; }
.scn-volcano-crater-harbor .figure-ned { position:absolute; bottom:22%; left:38%; width:16px; height:32px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0e04 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: vh-figure 6s ease-in-out infinite; }
.scn-volcano-crater-harbor .figure-conseil { position:absolute; bottom:24%; left:55%; width:14px; height:28px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0e04 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: vh-figure 6s ease-in-out infinite 1s; }
.scn-volcano-crater-harbor .fire-glow { position:absolute; bottom:50%; left:30%; width:60px; height:60px; background: radial-gradient(circle at 50% 50%, #f0a040 0%, #d06020 30%, #7a1a06 60%, transparent 80%); border-radius: 50%; box-shadow: 0 0 80px 40px #d06020; animation: vh-fire 4s ease-in-out infinite alternate; }
.scn-volcano-crater-harbor .bustard { position:absolute; bottom:50%; left:65%; width:20px; height:14px; background: linear-gradient(180deg, #7a5a3a 0%, #4a3020 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-10deg); animation: vh-bustard 8s ease-in-out infinite; }
.scn-volcano-crater-harbor .cave-shadow { position:absolute; bottom:10%; left:10%; right:10%; height:30%; background: linear-gradient(180deg, transparent 0%, #0a0402 100%); border-radius: 30% 30% 0 0; }
@keyframes vh-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes vh-tree { 0%,100% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(3deg); } }
@keyframes vh-hive { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-3px) scale(1.05); } 100% { transform: translateY(0) scale(1); } }
@keyframes vh-figure { 0% { transform: translateX(0) rotate(-2deg); } 30% { transform: translateX(4px) rotate(2deg); } 60% { transform: translateX(8px) rotate(-1deg); } 100% { transform: translateX(12px) rotate(0deg); } }
@keyframes vh-fire { 0% { opacity:0.7; transform: scale(0.95); } 50% { opacity:1; transform: scale(1.05); } 100% { opacity:0.8; transform: scale(0.98); } }
@keyframes vh-bustard { 0%,100% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-5deg) translateY(-6px); } }

.scn-whale-debate-and-slaughter {
  background:
    linear-gradient(180deg, #4a8abf 0%, #7ab8e8 40%, #d0e8f8 70%, #fff0d0 100%),
    radial-gradient(ellipse at 50% 100%, #f8d8a0 0%, transparent 70%);
}
.scn-whale-debate-and-slaughter .sky-bright { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #5a9ad0 0%, #8ac0f0 50%, #c0e0f8 100%); animation: ws-sky 14s ease-in-out infinite alternate; }
.scn-whale-debate-and-slaughter .sun { position:absolute; top:10%; right:20%; width:40px; height:40px; background: radial-gradient(circle at 50% 50%, #fff8e0 0%, #f8d080 50%, transparent 70%); border-radius: 50%; box-shadow: 0 0 60px 30px #f8d080, 0 0 120px 60px rgba(248,208,128,0.3); animation: ws-sun 12s ease-in-out infinite alternate; }
.scn-whale-debate-and-slaughter .sea-deck { position:absolute; bottom:20%; left:0; right:0; height:30%; background: linear-gradient(180deg, #2070a0 0%, #104060 100%); clip-path: polygon(0 25%, 10% 20%, 20% 28%, 30% 22%, 40% 30%, 50% 25%, 60% 28%, 70% 22%, 80% 26%, 90% 20%, 100% 24%, 100% 100%, 0 100%); }
.scn-whale-debate-and-slaughter .ship-railing { position:absolute; bottom:35%; left:0; right:0; height:6px; background: linear-gradient(90deg, #6a5a4a 0%, #8a7a6a 50%, #6a5a4a 100%); border-radius: 2px; box-shadow: 0 2px 6px #000; }
.scn-whale-debate-and-slaughter .figure-aronnax { position:absolute; bottom:38%; left:35%; width:16px; height:36px; background: linear-gradient(180deg, #3a4a5a 0%, #1a2a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: ws-figure 5s ease-in-out infinite; }
.scn-whale-debate-and-slaughter .figure-ned { position:absolute; bottom:38%; left:50%; width:18px; height:38px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: ws-figure 5s ease-in-out infinite 0.5s; }
.scn-whale-debate-and-slaughter .whale-spout { position:absolute; bottom:30%; left:70%; width:10px; height:20px; background: radial-gradient(circle at 50% 0%, rgba(255,255,255,0.8) 0%, transparent 70%); border-radius: 50%; filter: blur(3px); animation: ws-spout 6s ease-in-out infinite; }
.scn-whale-debate-and-slaughter .whale-body { position:absolute; bottom:20%; left:65%; width:80px; height:30px; background: linear-gradient(90deg, #2a3a4a 0%, #4a6070 50%, #2a3a4a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: translateX(-50%); animation: ws-whale 10s ease-in-out infinite; }
.scn-whale-debate-and-slaughter .sail { position:absolute; bottom:50%; left:60%; width:8px; height:50px; background: linear-gradient(180deg, #e8e0d0 0%, #c8b8a0 100%); clip-path: polygon(0 0, 100% 20%, 100% 80%, 0 100%); transform: rotate(5deg); animation: ws-sail 16s ease-in-out infinite alternate; }
@keyframes ws-sky { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes ws-sun { 0% { transform: scale(0.95); opacity:0.8; } 50% { transform: scale(1.05); opacity:1; } 100% { transform: scale(0.98); opacity:0.9; } }
@keyframes ws-figure { 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(0deg); } }
@keyframes ws-spout { 0% { opacity:0.3; transform: scaleY(0.6); } 50% { opacity:0.8; transform: scaleY(1.2); } 100% { opacity:0.3; transform: scaleY(0.8); } }
@keyframes ws-whale { 0%,100% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-4px); } }
@keyframes ws-sail { 0% { transform: rotate(3deg); } 50% { transform: rotate(8deg); } 100% { transform: rotate(5deg); } }

.scn-trapped-under-ice {
  background:
    radial-gradient(ellipse at 50% 30%, #1a3a5a 0%, #0a1e32 50%, #020b14 100%),
    linear-gradient(180deg, #0e2a42 0%, #06101e 100%);
}
.scn-trapped-under-ice .ice-ceiling { position:absolute; top:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #b0d0e8 0%, #4070a0 60%, transparent 100%); border-bottom: 8px solid #80b8d8; clip-path: polygon(0 0, 10% 15%, 20% 5%, 35% 20%, 50% 8%, 65% 25%, 80% 12%, 100% 18%, 100% 0); animation: ti-ice 12s ease-in-out infinite alternate; }
.scn-trapped-under-ice .dark-water { position:absolute; bottom:0; left:0; right:0; height:65%; background: linear-gradient(180deg, #0e2640 0%, #020a14 100%); animation: ti-water 18s ease-in-out infinite; }
.scn-trapped-under-ice .nautilus-hull { position:absolute; bottom:25%; left:50%; width:100px; height:40px; background: linear-gradient(90deg, #2a3848 0%, #4a6078 50%, #2a3848 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: translateX(-50%); box-shadow: 0 4px 20px #000, inset 0 2px 6px #6a8aa0; animation: ti-nautilus 7s ease-in-out infinite; }
.scn-trapped-under-ice .propeller { position:absolute; bottom:28%; left:45%; width:20px; height:10px; background: linear-gradient(90deg, #1a2a3a 0%, #2a4050 100%); border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%; transform: rotate(-15deg); animation: ti-propeller 4s linear infinite; }
.scn-trapped-under-ice .crack-line { position:absolute; top:25%; left:20%; width:60%; height:2px; background: linear-gradient(90deg, transparent 0%, #c0e0f8 30%, #a0c8e8 50%, #c0e0f8 70%, transparent 100%); filter: blur(1px); animation: ti-crack 8s ease-in-out infinite; }
.scn-trapped-under-ice .ice-block { position:absolute; top:30%; left:70%; width:30px; height:20px; background: linear-gradient(180deg, #b8d8f0 0%, #6090b0 100%); clip-path: polygon(0 30%, 40% 0, 100% 20%, 100% 100%, 0 100%); transform: rotate(10deg); animation: ti-block 10s ease-in-out infinite; }
.scn-trapped-under-ice .bubble-particle.particle-1 { position:absolute; bottom:15%; left:30%; width:4px; height:4px; background: radial-gradient(circle, rgba(160,200,230,0.6) 0%, transparent 70%); border-radius: 50%; animation: ti-particle 6s ease-in-out infinite; }
.scn-trapped-under-ice .bubble-particle.particle-2 { position:absolute; bottom:35%; left:65%; width:5px; height:5px; background: radial-gradient(circle, rgba(160,200,230,0.5) 0%, transparent 70%); border-radius: 50%; animation: ti-particle 7s ease-in-out infinite 2s; }
@keyframes ti-ice { 0% { opacity:0.7; transform: translateY(0); } 50% { opacity:0.9; transform: translateY(-2px); } 100% { opacity:0.8; transform: translateY(0); } }
@keyframes ti-water { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes ti-nautilus { 0%,100% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-3px); } }
@keyframes ti-propeller { 0% { transform: rotate(-15deg); } 25% { transform: rotate(0deg); } 50% { transform: rotate(15deg); } 75% { transform: rotate(0deg); } 100% { transform: rotate(-15deg); } }
@keyframes ti-crack { 0% { opacity:0.2; transform: scaleX(0.8); } 50% { opacity:0.6; transform: scaleX(1.2); } 100% { opacity:0.3; transform: scaleX(0.9); } }
@keyframes ti-block { 0% { transform: rotate(10deg) translateX(0); } 50% { transform: rotate(5deg) translateX(-5px); } 100% { transform: rotate(10deg) translateX(0); } }
@keyframes ti-particle { 0% { transform: translateY(0) scale(1); opacity:0.7; } 50% { transform: translateY(-30px) scale(1.3); opacity:1; } 100% { transform: translateY(-60px) scale(0.8); opacity:0; } }

.scn-papuan-attack-repelled {
  background:
    linear-gradient(180deg, #ffe0a0 0%, #ffcc80 30%, #b8a080 100%),
    radial-gradient(ellipse at 30% 80%, #d4b060 0%, transparent 60%);
}
.scn-papuan-attack-repelled .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #87ceeb 0%, #ffe0a0 100%);
  animation: par-sky 10s ease-in-out infinite alternate;
}
.scn-papuan-attack-repelled .sun {
  position: absolute; top: 5%; left: 70%; width: 60px; height: 60px;
  background: radial-gradient(circle, #fff5d0 0%, #ffd080 60%, transparent 80%);
  border-radius: 50%; box-shadow: 0 0 80px 30px rgba(255,200,100,0.6);
  animation: par-sun 8s ease-in-out infinite;
}
.scn-papuan-attack-repelled .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #8b7a5a 0%, #6a5a3a 40%, #4a3a2a 100%);
  border-radius: 60% 40% 0 0 / 40% 30% 0 0;
  box-shadow: inset 0 -20px 30px rgba(0,0,0,0.5);
}
.scn-papuan-attack-repelled .archer {
  position: absolute; bottom: 40%; left: 25%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: par-archer 2s ease-in-out infinite;
}
.scn-papuan-attack-repelled .arrow {
  position: absolute; bottom: 52%; left: 30%; width: 100px; height: 4px;
  background: linear-gradient(90deg, #5a3a1a 0%, #8a6a3a 100%);
  border-radius: 2px; transform: rotate(-15deg);
  animation: par-arrow 0.6s ease-in-out infinite;
}
.scn-papuan-attack-repelled .sling {
  position: absolute; bottom: 42%; left: 10%; width: 12px; height: 12px;
  background: #8a7050; border-radius: 50%;
  animation: par-sling 1.2s ease-in-out infinite alternate;
}
.scn-papuan-attack-repelled .shatter {
  position: absolute; bottom: 45%; left: 55%; width: 30px; height: 30px;
  background: radial-gradient(circle, #ffe0c0 0%, #d4b080 60%, transparent 80%);
  border-radius: 50%; clip-path: polygon(0 20%, 40% 0, 100% 30%, 70% 100%, 20% 80%);
  animation: par-shatter 3s ease-in-out infinite;
}
.scn-papuan-attack-repelled .shadow-tree {
  position: absolute; bottom: 45%; left: 80%; width: 20px; height: 100px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 10% 10% / 20% 20% 10% 10%; transform: scaleY(0.8);
  animation: par-tree 12s ease-in-out infinite alternate;
}

@keyframes par-sky { 0% { opacity: 0.9; filter: brightness(1); } 50% { opacity: 1; filter: brightness(1.2); } 100% { opacity: 0.8; filter: brightness(1); } }
@keyframes par-sun { 0%,100% { transform: scale(0.9) translate(0,0); } 50% { transform: scale(1.1) translate(5px, -3px); } }
@keyframes par-archer { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(3px) rotate(2deg); } 50% { transform: translateX(0) rotate(-1deg); } 75% { transform: translateX(-3px) rotate(1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes par-arrow { 0% { transform: rotate(-15deg) translateX(0); } 50% { transform: rotate(-12deg) translateX(10px); } 100% { transform: rotate(-15deg) translateX(0); } }
@keyframes par-sling { 0% { transform: scale(1) translate(0,0); } 100% { transform: scale(1.3) translate(-2px, -2px); } }
@keyframes par-shatter { 0% { transform: scale(1) rotate(0deg); opacity: 0.7; } 50% { transform: scale(1.2) rotate(45deg); opacity: 1; } 100% { transform: scale(0.9) rotate(0deg); opacity: 0.5; } }
@keyframes par-tree { 0% { transform: scaleY(0.8) rotate(0deg); } 50% { transform: scaleY(1) rotate(3deg); } 100% { transform: scaleY(0.9) rotate(-2deg); } }

.scn-crewman-burial-coral {
  background:
    linear-gradient(180deg, #0a1a2a 0%, #0a1020 60%, #000810 100%),
    radial-gradient(ellipse at 50% 70%, #1a4a6a 0%, transparent 70%);
}
.scn-crewman-burial-coral .deep-water {
  position: absolute; inset: 0; background: linear-gradient(180deg, transparent 0%, #001020 40%, #000810 100%);
  animation: cbc-water 15s ease-in-out infinite alternate;
}
.scn-crewman-burial-coral .coral-grave {
  position: absolute; bottom: 20%; left: 30%; width: 200px; height: 60px;
  background: linear-gradient(180deg, #8a4a3a 0%, #5a2a1a 100%);
  border-radius: 30% 70% 20% 80% / 60% 40% 60% 40%;
  filter: drop-shadow(0 4px 8px rgba(0,0,0,0.8));
  animation: cbc-grave 6s ease-in-out infinite;
}
.scn-crewman-burial-coral .body-shroud {
  position: absolute; bottom: 28%; left: 40%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #c8b090 0%, #a07050 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: cbc-body 4s ease-in-out infinite alternate;
}
.scn-crewman-burial-coral .cross {
  position: absolute; bottom: 35%; left: 48%; width: 8px; height: 80px;
  background: linear-gradient(180deg, #e0d0b0 0%, #b0a080 100%);
  border-radius: 2px; transform: translateX(-50%);
  animation: cbc-cross 10s ease-in-out infinite;
}
.scn-crewman-burial-coral .phosphor {
  position: absolute; top: 10%; left: 20%; width: 120px; height: 120px;
  background: radial-gradient(circle, rgba(120,220,255,0.4) 0%, transparent 70%);
  filter: blur(10px); animation: cbc-phosphor 8s ease-in-out infinite alternate;
}
.scn-crewman-burial-coral .light-rays {
  position: absolute; top: 0; left: 30%; width: 10px; height: 100%;
  background: linear-gradient(180deg, rgba(200,230,255,0.2) 0%, transparent 100%);
  transform: rotate(10deg); animation: cbc-rays 6s ease-in-out infinite alternate;
}
.scn-crewman-burial-coral .particles {
  position: absolute; inset: 0; 
  background: radial-gradient(2px 2px at 20% 30%, rgba(150,220,255,0.6) 0%, transparent 100%),
              radial-gradient(2px 2px at 70% 50%, rgba(150,220,255,0.4) 0%, transparent 100%),
              radial-gradient(2px 2px at 40% 80%, rgba(150,220,255,0.5) 0%, transparent 100%);
  background-size: 200px 200px;
  animation: cbc-particles 12s linear infinite;
}

@keyframes cbc-water { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes cbc-grave { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-5px) scale(1.02); } 100% { transform: translateY(3px) scale(0.98); } }
@keyframes cbc-body { 0% { transform: translateY(0) rotate(0deg); } 100% { transform: translateY(-8px) rotate(5deg); } }
@keyframes cbc-cross { 0% { transform: translateX(-50%) scaleY(0.95); } 50% { transform: translateX(-50%) scaleY(1.05); } 100% { transform: translateX(-50%) scaleY(0.95); } }
@keyframes cbc-phosphor { 0% { opacity: 0.3; transform: scale(0.8) translate(0,0); } 50% { opacity: 0.6; transform: scale(1.2) translate(10px,-5px); } 100% { opacity: 0.4; transform: scale(1) translate(5px,5px); } }
@keyframes cbc-rays { 0% { opacity: 0.2; transform: rotate(10deg) translateX(0); } 50% { opacity: 0.5; transform: rotate(15deg) translateX(5px); } 100% { opacity: 0.3; transform: rotate(8deg) translateX(-3px); } }
@keyframes cbc-particles { 0% { background-position: 0 0, 0 0, 0 0; } 100% { background-position: 200px 200px, -200px 100px, 100px -200px; } }

.scn-coral-cemetery-funeral {
  background:
    linear-gradient(180deg, #0a1420 0%, #101a2a 40%, #1a2a3a 100%),
    radial-gradient(ellipse at 40% 60%, #2a3a4a 0%, transparent 80%);
}
.scn-coral-cemetery-funeral .dim-water {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(0,20,40,0.8) 0%, rgba(0,10,20,0.9) 100%);
  animation: ccf-water 20s ease-in-out infinite alternate;
}
.scn-coral-cemetery-funeral .coral-arch {
  position: absolute; bottom: 30%; left: 10%; width: 80%; height: 50%;
  background: linear-gradient(180deg, #6a3a2a 0%, #4a2a1a 40%, #2a1a0a 100%);
  clip-path: polygon(0% 100%, 10% 30%, 20% 60%, 30% 20%, 40% 50%, 50% 10%, 60% 40%, 70% 25%, 80% 55%, 90% 30%, 100% 100%);
  border-radius: 10% 10% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.5);
  animation: ccf-arch 14s ease-in-out infinite;
}
.scn-coral-cemetery-funeral .grave-pit {
  position: absolute; bottom: 25%; left: 35%; width: 120px; height: 40px;
  background: #0a0a1a; border-radius: 30% 30% 10% 10%;
  box-shadow: inset 0 5px 10px rgba(0,0,0,0.8);
}
.scn-coral-cemetery-funeral .shrouded-body {
  position: absolute; bottom: 30%; left: 42%; width: 50px; height: 30px;
  background: linear-gradient(180deg, #d0c0a0 0%, #a09070 100%);
  border-radius: 20% 20% 40% 40% / 40% 40% 30% 30%;
  transform-origin: bottom center;
  animation: ccf-shroud 8s ease-in-out infinite alternate;
}
.scn-coral-cemetery-funeral .nemo-figure {
  position: absolute; bottom: 25%; left: 55%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #1a2a3a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ccf-nemo 12s ease-in-out infinite;
}
.scn-coral-cemetery-funeral .coral-cross {
  position: absolute; bottom: 35%; left: 42%; width: 8px; height: 60px;
  background: linear-gradient(180deg, #b09070 0%, #705040 100%);
  border-radius: 2px; transform: rotate(-5deg);
  animation: ccf-cross 5s ease-in-out infinite alternate;
}
.scn-coral-cemetery-funeral .bubbles {
  position: absolute; bottom: 40%; left: 20%; width: 100%; height: 100%;
  background: radial-gradient(3px 3px at 10% 20%, rgba(200,230,255,0.3) 0%, transparent 100%),
              radial-gradient(3px 3px at 60% 10%, rgba(200,230,255,0.2) 0%, transparent 100%),
              radial-gradient(4px 4px at 80% 50%, rgba(200,230,255,0.4) 0%, transparent 100%);
  background-size: 80px 80px;
  animation: ccf-bubbles 6s linear infinite;
}

@keyframes ccf-water { 0% { opacity: 0.6; } 50% { opacity: 0.8; } 100% { opacity: 0.5; } }
@keyframes ccf-arch { 0% { transform: scaleX(1) translateY(0); } 50% { transform: scaleX(1.02) translateY(-5px); } 100% { transform: scaleX(0.98) translateY(3px); } }
@keyframes ccf-shroud { 0% { transform: translateY(0) rotate(0deg); } 100% { transform: translateY(-5px) rotate(3deg); } }
@keyframes ccf-nemo { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(2px) rotate(-2deg); } 50% { transform: translateY(-2px) rotate(2deg); } 75% { transform: translateY(1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes ccf-cross { 0% { transform: rotate(-5deg) scaleY(1); } 100% { transform: rotate(-2deg) scaleY(0.95); } }
@keyframes ccf-bubbles { 0% { background-position: 0 0, 0 0, 0 0; } 100% { background-position: 80px 80px, -80px 40px, 40px -80px; } }

.scn-pearl-fisheries-approach {
  background:
    linear-gradient(180deg, #f0e8c0 0%, #d4c8a0 30%, #a8b8c0 60%, #5080a0 100%),
    radial-gradient(ellipse at 70% 90%, #60a0c0 0%, transparent 60%);
}
.scn-pearl-fisheries-approach .sea-sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #c0d8e8 0%, #f0e8c0 100%);
  animation: pfa-sky 12s ease-in-out infinite alternate;
}
.scn-pearl-fisheries-approach .sun-glint {
  position: absolute; top: 10%; right: 15%; width: 80px; height: 80px;
  background: radial-gradient(circle, #fffae0 0%, #ffd080 40%, transparent 70%);
  border-radius: 50%; box-shadow: 0 0 100px 40px rgba(255,220,120,0.5);
  animation: pfa-sun 10s ease-in-out infinite;
}
.scn-pearl-fisheries-approach .water-surface {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #60a0c0 0%, #2070a0 40%, #004060 100%);
  clip-path: polygon(0 20%, 100% 0%, 100% 100%, 0 100%);
  animation: pfa-water 8s ease-in-out infinite alternate;
}
.scn-pearl-fisheries-approach .nautilus {
  position: absolute; bottom: 30%; left: 5%; width: 120px; height: 30px;
  background: linear-gradient(180deg, #a0a0a0 0%, #606060 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: pfa-nautilus 6s ease-in-out infinite;
}
.scn-pearl-fisheries-approach .diver {
  position: absolute; bottom: 35%; left: 50%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #2a2a2a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: pfa-diver 4s ease-in-out infinite alternate;
}
.scn-pearl-fisheries-approach .pearl-oyster {
  position: absolute; bottom: 28%; left: 65%; width: 40px; height: 30px;
  background: linear-gradient(180deg, #d0c8a0 0%, #a09870 100%);
  border-radius: 50% 50% 20% 20% / 40% 40% 20% 20%;
  transform: rotate(-10deg);
  animation: pfa-oyster 5s ease-in-out infinite;
}
.scn-pearl-fisheries-approach .shadow-wave {
  position: absolute; bottom: 20%; left: -10%; width: 120%; height: 20px;
  background: linear-gradient(90deg, transparent 0%, #103050 30%, #204060 70%, transparent 100%);
  filter: blur(4px); animation: pfa-wave 7s ease-in-out infinite alternate;
}
.scn-pearl-fisheries-approach .distant-boat {
  position: absolute; top: 30%; right: 10%; width: 15px; height: 10px;
  background: linear-gradient(90deg, #6a4a2a 0%, #8a6a3a 100%);
  border-radius: 20% 20% 40% 40% / 60% 60% 30% 30%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: pfa-boat 20s linear infinite;
}

@keyframes pfa-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes pfa-sun { 0% { transform: scale(0.9) translate(0,0); } 50% { transform: scale(1.1) translate(8px,-4px); } 100% { transform: scale(1) translate(-5px,2px); } }
@keyframes pfa-water { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-3px) scaleY(1.02); } 100% { transform: translateY(2px) scaleY(0.98); } }
@keyframes pfa-nautilus { 0% { transform: translateX(0) translateY(0); } 25% { transform: translateX(10px) translateY(-1px); } 50% { transform: translateX(20px) translateY(0); } 75% { transform: translateX(10px) translateY(1px); } 100% { transform: translateX(0) translateY(0); } }
@keyframes pfa-diver { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-6px) rotate(3deg); } 100% { transform: translateY(2px) rotate(-2deg); } }
@keyframes pfa-oyster { 0% { transform: rotate(-10deg) scale(1); } 50% { transform: rotate(-5deg) scale(1.05); } 100% { transform: rotate(-10deg) scale(1); } }
@keyframes pfa-wave { 0% { transform: translateX(0) scaleX(1); } 100% { transform: translateX(20px) scaleX(1.1); } }
@keyframes pfa-boat { 0% { transform: translateX(0) scaleX(1); } 100% { transform: translateX(-140px) scaleX(0.9); } }

.scn-first-sightings-monster {
  background:
    linear-gradient(180deg, #5ba3c6 0%, #ffd79e 50%, #e6965f 100%) 0 0 / 100% 60% no-repeat,
    radial-gradient(ellipse at 50% 100%, #4a7a8a 0%, #1f3a4a 100%);
  background-blend-mode: normal;
}
.scn-first-sightings-monster .sky {
  position: absolute; inset: 0 0 65% 0;
  background: linear-gradient(180deg, rgba(91,163,198,0.3) 0%, transparent 100%);
  animation: fs-sky 15s ease-in-out infinite alternate;
}
.scn-first-sightings-monster .sun {
  position: absolute; top: 18%; left: 70%; width: 40px; height: 40px;
  background: radial-gradient(circle, #ffe9b0 0%, #f5c080 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px rgba(255,215,150,0.5);
  animation: fs-sun 12s ease-in-out infinite alternate;
}
.scn-first-sightings-monster .ocean {
  position: absolute; bottom: 0; left: 0; right: 0; height: 65%;
  background: linear-gradient(180deg, #2b6b7b 0%, #14333f 100%);
  box-shadow: inset 0 20px 30px rgba(0,0,0,0.4);
  animation: fs-ocean 8s ease-in-out infinite alternate;
}
.scn-first-sightings-monster .ship {
  position: absolute; bottom: 40%; left: 25%; width: 70px; height: 35px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.6);
  transform-origin: bottom center;
  animation: fs-ship 6s ease-in-out infinite;
}
.scn-first-sightings-monster .monster-body {
  position: absolute; bottom: 30%; right: 10%; width: 120px; height: 30px;
  background: linear-gradient(180deg, #1e3a2a 0%, #0f2619 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 40px 10px rgba(80,200,120,0.3);
  transform-origin: center;
  animation: fs-monster-body 9s ease-in-out infinite;
}
.scn-first-sightings-monster .monster-glow {
  position: absolute; bottom: 30%; right: 10%; width: 140px; height: 40px;
  background: radial-gradient(ellipse, rgba(80,220,120,0.25) 0%, transparent 70%);
  border-radius: 50%;
  animation: fs-monster-glow 4s ease-in-out infinite alternate;
}
.scn-first-sightings-monster .wave-1,
.scn-first-sightings-monster .wave-2 {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 30px;
  background: linear-gradient(180deg, rgba(43,107,123,0.6) 0%, transparent 100%);
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
}
.scn-first-sightings-monster .wave-1 { animation: fs-wave1 7s linear infinite; }
.scn-first-sightings-monster .wave-2 { animation: fs-wave2 9s linear infinite; animation-delay: -2s; }
@keyframes fs-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes fs-sun { 0% { transform: translate(0, 0) scale(1); } 50% { transform: translate(8px, -4px) scale(1.05); } 100% { transform: translate(-4px, 2px) scale(0.95); } }
@keyframes fs-ocean { 0% { transform: translateY(0); } 50% { transform: translateY(-5px); } 100% { transform: translateY(3px); } }
@keyframes fs-ship { 0% { transform: translateX(0) rotate(-1deg); } 25% { transform: translateX(2px) rotate(1deg); } 50% { transform: translateX(0) rotate(-2deg); } 75% { transform: translateX(-2px) rotate(1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes fs-monster-body { 0% { transform: translateX(0) scaleX(1); } 25% { transform: translateX(-3px) scaleX(1.02); } 50% { transform: translateX(3px) scaleX(0.98); } 75% { transform: translateX(-2px) scaleX(1.01); } 100% { transform: translateX(0) scaleX(1); } }
@keyframes fs-monster-glow { 0% { opacity: 0.5; box-shadow: 0 0 40px 10px rgba(80,220,120,0.3); } 50% { opacity: 1; box-shadow: 0 0 80px 20px rgba(80,220,120,0.6); } 100% { opacity: 0.6; box-shadow: 0 0 50px 15px rgba(80,220,120,0.4); } }
@keyframes fs-wave1 { 0% { transform: translateX(-100vw); } 100% { transform: translateX(100vw); } }
@keyframes fs-wave2 { 0% { transform: translateX(100vw); } 100% { transform: translateX(-100vw); } }

.scn-public-frenzy-narwhale {
  background:
    linear-gradient(180deg, #6a7a8a 0%, #4a5a6a 40%, #2a3a4a 100%) 0 0 / 100% 60% no-repeat,
    radial-gradient(ellipse at 50% 100%, #3a4a5a 0%, #1a2a3a 100%);
}
.scn-public-frenzy-narwhale .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #8a9aaa 0%, transparent 100%);
  animation: pf-sky 20s ease-in-out infinite alternate;
}
.scn-public-frenzy-narwhale .ocean {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #2a4a5a 0%, #0a1a2a 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.5);
  animation: pf-ocean 10s ease-in-out infinite alternate;
}
.scn-public-frenzy-narwhale .ship-hull {
  position: absolute; bottom: 35%; left: 30%; width: 120px; height: 50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #16100a 100%);
  border-radius: 20% 20% 10% 10% / 60% 60% 20% 20%;
  transform-origin: bottom center;
  animation: pf-hull 13s ease-in-out infinite;
}
.scn-public-frenzy-narwhale .gash {
  position: absolute; bottom: 38%; left: 48%; width: 20px; height: 30px;
  background: #0a0a0a;
  clip-path: polygon(0% 100%, 100% 100%, 50% 0%);
  box-shadow: inset 0 0 8px rgba(0,0,0,0.8);
  animation: pf-gash 7s ease-in-out infinite alternate;
}
.scn-public-frenzy-narwhale .cloud-1,
.scn-public-frenzy-narwhale .cloud-2 {
  position: absolute; top: 15%; width: 90px; height: 20px;
  background: linear-gradient(180deg, rgba(180,190,200,0.5) 0%, rgba(180,190,200,0.1) 100%);
  border-radius: 50%; filter: blur(6px);
}
.scn-public-frenzy-narwhale .cloud-1 { left: 10%; animation: pf-cloud1 45s linear infinite; }
.scn-public-frenzy-narwhale .cloud-2 { right: 8%; animation: pf-cloud2 60s linear infinite reverse; }
.scn-public-frenzy-narwhale .wave-1,
.scn-public-frenzy-narwhale .wave-2 {
  position: absolute; bottom: 10%; left: 0; right: 0; height: 25px;
  background: linear-gradient(180deg, rgba(42,74,90,0.5) 0%, transparent 100%);
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
}
.scn-public-frenzy-narwhale .wave-1 { animation: pf-wave1 12s linear infinite; }
.scn-public-frenzy-narwhale .wave-2 { animation: pf-wave2 14s linear infinite; animation-delay: -4s; }
@keyframes pf-sky { 0% { opacity: 0.6; } 50% { opacity: 0.9; } 100% { opacity: 0.7; } }
@keyframes pf-ocean { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(2px); } }
@keyframes pf-hull { 0% { transform: translateX(0) rotate(0); } 20% { transform: translateX(1px) rotate(-1deg); } 40% { transform: translateX(-1px) rotate(1deg); } 60% { transform: translateX(2px) rotate(0); } 80% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes pf-gash { 0% { opacity: 0.7; } 50% { opacity: 1; box-shadow: inset 0 0 15px rgba(40,20,10,0.6); } 100% { opacity: 0.8; } }
@keyframes pf-cloud1 { 0% { transform: translateX(-120px); } 100% { transform: translateX(100vw); } }
@keyframes pf-cloud2 { 0% { transform: translateX(0); } 100% { transform: translateX(-100vw); } }
@keyframes pf-wave1 { 0% { transform: translateX(-100vw); } 100% { transform: translateX(100vw); } }
@keyframes pf-wave2 { 0% { transform: translateX(100vw); } 100% { transform: translateX(-100vw); } }

.scn-farragut-expedition {
  background:
    linear-gradient(180deg, #b3d4e6 0%, #f0e6a0 50%, #f0c060 100%) 0 0 / 100% 60% no-repeat,
    radial-gradient(ellipse at 50% 100%, #4a7a8a 0%, #1f3a4a 100%);
}
.scn-farragut-expedition .sky {
  position: absolute; inset: 0 0 65% 0;
  background: linear-gradient(180deg, rgba(179,212,230,0.4) 0%, transparent 100%);
  animation: fa-sky 18s ease-in-out infinite alternate;
}
.scn-farragut-expedition .sun {
  position: absolute; top: 20%; left: 80%; width: 45px; height: 45px;
  background: radial-gradient(circle, #fff4c0 0%, #f0d080 50%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 70px 30px rgba(240,208,128,0.5);
  animation: fa-sun 20s ease-in-out infinite alternate;
}
.scn-farragut-expedition .ocean {
  position: absolute; bottom: 0; left: 0; right: 0; height: 65%;
  background: linear-gradient(180deg, #3a7a8a 0%, #1a3a4a 100%);
  box-shadow: inset 0 15px 25px rgba(0,0,0,0.3);
  animation: fa-ocean 14s ease-in-out infinite alternate;
}
.scn-farragut-expedition .ship {
  position: absolute; bottom: 40%; left: 30%; width: 100px; height: 50px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 10% 10% 5% 5% / 40% 40% 15% 15%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.5);
  transform-origin: bottom center;
  animation: fa-ship 10s ease-in-out infinite;
}
.scn-farragut-expedition .fort {
  position: absolute; bottom: 38%; left: 8%; width: 80px; height: 60px;
  background: linear-gradient(180deg, #b09878 0%, #7a6040 100%);
  border-radius: 5% 5% 0 0 / 10% 10% 0 0;
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.3);
  animation: fa-fort 16s ease-in-out infinite alternate;
}
.scn-farragut-expedition .flag {
  position: absolute; bottom: 50%; left: 42%; width: 20px; height: 14px;
  background: linear-gradient(135deg, #c8553d 0%, #8a3020 100%);
  clip-path: polygon(0% 0%, 100% 0%, 100% 70%, 0% 100%);
  animation: fa-flag 3s ease-in-out infinite alternate;
}
.scn-farragut-expedition .crowd {
  position: absolute; bottom: 36%; left: 55%; width: 40px; height: 50px;
  background: radial-gradient(ellipse at 50% 100%, #3a2a1a 0%, transparent 80%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  animation: fa-crowd 9s ease-in-out infinite;
}
@keyframes fa-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes fa-sun { 0% { transform: translate(0, 0) scale(1) rotate(0); } 50% { transform: translate(-5px, 3px) scale(1.02) rotate(5deg); } 100% { transform: translate(3px, -2px) scale(0.98) rotate(-3deg); } }
@keyframes fa-ocean { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(2px); } }
@keyframes fa-ship { 0% { transform: translateX(0) rotate(0); } 30% { transform: translateX(1px) rotate(-0.5deg); } 60% { transform: translateX(-1px) rotate(0.5deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes fa-fort { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(1); } }
@keyframes fa-flag { 0% { transform: rotate(-5deg) scaleX(1); } 50% { transform: rotate(5deg) scaleX(0.9); } 100% { transform: rotate(-3deg) scaleX(1); } }
@keyframes fa-crowd { 0% { transform: translateX(0) scaleY(1); } 25% { transform: translateX(2px) scaleY(1.01); } 50% { transform: translateX(-1px) scaleY(0.99); } 75% { transform: translateX(2px) scaleY(1.02); } 100% { transform: translateX(0) scaleY(1); } }

.scn-captain-land-sighting {
  background:
    linear-gradient(180deg, #1a1a3a 0%, #3a2a5a 20%, #d09050 70%, #e8b070 100%) 0 0 / 100% 65% no-repeat,
    radial-gradient(ellipse at 50% 100%, #2a3a4a 0%, #0a1a2a 100%);
}
.scn-captain-land-sighting .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #2a2a4a 0%, #4a3a6a 40%, transparent 100%);
  animation: cl-sky 16s ease-in-out infinite alternate;
}
.scn-captain-land-sighting .horizon-glow {
  position: absolute; bottom: 38%; left: 0; right: 0; height: 15%;
  background: linear-gradient(0deg, #e8b070 0%, transparent 100%);
  opacity: 0.6;
  animation: cl-glow 8s ease-in-out infinite alternate;
}
.scn-captain-land-sighting .ocean {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #1a2a3a 0%, #0a1220 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.6);
  animation: cl-ocean 9s ease-in-out infinite alternate;
}
.scn-captain-land-sighting .ship {
  position: absolute; bottom: 30%; left: 25%; width: 100px; height: 50px;
  background: linear-gradient(180deg, #2a1a10 0%, #100a05 100%);
  border-radius: 15% 15% 5% 5% / 40% 40% 10% 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.7);
  transform-origin: bottom center;
  animation: cl-ship 7s ease-in-out infinite;
}
.scn-captain-land-sighting .bow-figure {
  position: absolute; bottom: 44%; left: 20%; width: 16px; height: 40px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a15 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cl-figure 4s ease-in-out infinite;
}
.scn-captain-land-sighting .monster {
  position: absolute; bottom: 22%; right: 12%; width: 140px; height: 35px;
  background: linear-gradient(180deg, #1e3a2a 0%, #0f2619 100%);
  border-radius: 50% 50% 30% 30% / 80% 80% 20% 20%;
  box-shadow: 0 0 30px 5px rgba(40,180,100,0.3);
  transform-origin: center;
  animation: cl-monster 10s ease-in-out infinite;
}
.scn-captain-land-sighting .cloud-1,
.scn-captain-land-sighting .cloud-2 {
  position: absolute; top: 12%; width: 80px; height: 16px;
  background: linear-gradient(180deg, rgba(200,170,150,0.4) 0%, rgba(200,170,150,0.05) 100%);
  border-radius: 50%; filter: blur(5px);
}
.scn-captain-land-sighting .cloud-1 { left: 5%; animation: cl-cloud1 40s linear infinite; }
.scn-captain-land-sighting .cloud-2 { right: 10%; animation: cl-cloud2 55s linear infinite reverse; }
@keyframes cl-sky { 0% { opacity: 0.6; } 50% { opacity: 0.9; } 100% { opacity: 0.7; } }
@keyframes cl-glow { 0% { opacity: 0.4; } 50% { opacity: 0.8; } 100% { opacity: 0.5; } }
@keyframes cl-ocean { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(3px); } }
@keyframes cl-ship { 0% { transform: translateX(0) rotate(-1deg); } 20% { transform: translateX(2px) rotate(0.5deg); } 40% { transform: translateX(-2px) rotate(-0.5deg); } 60% { transform: translateX(1px) rotate(1deg); } 80% { transform: translateX(-1px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes cl-figure { 0% { transform: translateX(0) rotate(-2deg); } 30% { transform: translateX(3px) rotate(2deg); } 60% { transform: translateX(-1px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes cl-monster { 0% { transform: translateX(0) scaleY(1); } 25% { transform: translateX(-4px) scaleY(1.02); } 50% { transform: translateX(4px) scaleY(0.98); } 75% { transform: translateX(-2px) scaleY(1.01); } 100% { transform: translateX(0) scaleY(1); } }
@keyframes cl-cloud1 { 0% { transform: translateX(-100px); } 100% { transform: translateX(110vw); } }
@keyframes cl-cloud2 { 0% { transform: translateX(0); } 100% { transform: translateX(-110vw); } }

.scn-pearl-formation-explained { background: linear-gradient(180deg, #c8b89a 0%, #a09070 40%, #7a6a50 100%), radial-gradient(ellipse at 50% 20%, #e8dcc8 0%, transparent 60%); }
.scn-pearl-formation-explained .wall-panel { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #c8b89a 0%, #b0a080 100%); border-bottom:2px solid #8a7a5a; box-shadow:inset 0 8px 30px rgba(60,50,30,.15); animation:pf-wall 20s ease-in-out infinite; }
.scn-pearl-formation-explained .table { position:absolute; bottom:18%; left:20%; right:20%; height:22%; background: linear-gradient(180deg, #6a5a3a 0%, #4a3a1a 100%); border-radius: 0 0 8px 8px; box-shadow:0 -4px 12px rgba(0,0,0,.3), inset 0 4px 8px rgba(255,220,180,.08); transform: perspective(500px) rotateX(10deg); }
.scn-pearl-formation-explained .shelf { position:absolute; top:18%; left:62%; width:24%; height:4%; background: linear-gradient(180deg, #5a4a2a 0%, #3a2a0a 100%); border-radius:2px; box-shadow:0 4px 8px rgba(0,0,0,.2); }
.scn-pearl-formation-explained .lamp { position:absolute; top:12%; left:48%; width:18px; height:26px; background: radial-gradient(circle at 50% 60%, #ffe090 0%, #d0a040 70%); border-radius: 50% 50% 30% 30% / 40% 40% 60% 60%; box-shadow: 0 0 40px 16px rgba(255,200,100,.35), 0 0 80px 30px rgba(255,180,80,.12); animation:pf-lamp 4s ease-in-out infinite alternate; }
.scn-pearl-formation-explained .book-stack { position:absolute; bottom:18%; left:65%; width:28px; height:20px; background: linear-gradient(180deg, #7a3a2a 0%, #4a1a0a 100%); border-radius:2px 2px 4px 4px; box-shadow:0 2px 6px rgba(0,0,0,.4), inset 0 1px 0 rgba(255,200,150,.1); transform:rotate(-4deg); animation:pf-book 12s ease-in-out infinite; }
.scn-pearl-formation-explained .professor { position:absolute; bottom:18%; left:36%; width:32px; height:52px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 55% 45% 40%; transform-origin:bottom center; box-shadow:-2px 0 8px rgba(0,0,0,.25); animation:pf-pro 6s ease-in-out infinite; }
.scn-pearl-formation-explained .professor::before { content:''; position:absolute; top:8px; left:50%; width:14px; height:12px; transform:translateX(-50%); background: radial-gradient(circle, #d0b080 0%, #a08050 100%); border-radius:50%; box-shadow:0 1px 4px rgba(0,0,0,.2); }
.scn-pearl-formation-explained .listener-a { position:absolute; bottom:18%; left:50%; width:26px; height:44px; background: linear-gradient(180deg, #3a4a5a 0%, #1a2a3a 100%); border-radius: 50% 50% 40% 40% / 55% 55% 45% 45%; transform:translateX(-50%); box-shadow:0 2px 8px rgba(0,0,0,.2); animation:pf-listen 7s ease-in-out infinite; }
.scn-pearl-formation-explained .listener-b { position:absolute; bottom:18%; left:58%; width:28px; height:46px; background: linear-gradient(180deg, #4a4a3a 0%, #2a2a1a 100%); border-radius: 48% 52% 42% 42% / 58% 55% 45% 42%; box-shadow:2px 0 8px rgba(0,0,0,.15); animation:pf-listen 9s ease-in-out infinite reverse; }
.scn-pearl-formation-explained .pearl-group { position:absolute; bottom:24%; left:42%; width:14px; height:14px; background: radial-gradient(circle, #f0e8d0 0%, #c0b898 100%); border-radius:50%; box-shadow:0 0 12px 4px rgba(240,220,180,.5), 0 0 24px 8px rgba(240,220,180,.2); animation:pf-pearl 5s ease-in-out infinite; }
@keyframes pf-wall { 0%,100% { opacity:.85 } 50% { opacity:1 } }
@keyframes pf-lamp { 0% { box-shadow:0 0 30px 12px rgba(255,200,100,.3),0 0 60px 20px rgba(255,180,80,.1);opacity:.9 } 50% { box-shadow:0 0 50px 20px rgba(255,220,120,.4),0 0 100px 40px rgba(255,200,100,.15);opacity:1 } 100% { box-shadow:0 0 35px 14px rgba(255,200,100,.32),0 0 70px 24px rgba(255,180,80,.12);opacity:.92 } }
@keyframes pf-book { 0%,100% { transform:rotate(-4deg) translateY(0) } 50% { transform:rotate(-2deg) translateY(-2px) } }
@keyframes pf-pro { 0% { transform:translateX(0) rotate(-2deg) } 25% { transform:translateX(3px) rotate(1deg) } 50% { transform:translateX(0) rotate(0) } 75% { transform:translateX(-2px) rotate(2deg) } 100% { transform:translateX(0) rotate(-1deg) } }
@keyframes pf-listen { 0%,100% { transform:translateX(0) rotate(0) } 25% { transform:translateX(2px) rotate(1deg) } 50% { transform:translateX(0) rotate(0) } 75% { transform:translateX(-1px) rotate(-1deg) } }
@keyframes pf-pearl { 0%,100% { transform:scale(1) rotate(0) } 50% { transform:scale(1.1) rotate(15deg) } }

.scn-giant-clam-pearl { background: linear-gradient(180deg, #0a1a2a 0%, #0e2238 30%, #0a1e32 60%, #060e18 100%), radial-gradient(ellipse at 40% 60%, #0a2a3a 0%, transparent 70%); }
.scn-giant-clam-pearl .cave-wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #1a2a3a 0%, #0e1e2e 50%, #0a1a2a 100%); border-radius:0 0 60% 40% / 0 0 30% 20%; box-shadow:inset 0 12px 40px rgba(0,0,0,.6); animation:gc-wall 20s ease-in-out infinite alternate; }
.scn-giant-clam-pearl .cave-floor { position:absolute; bottom:0; left:0; right:0; height:32%; background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%); border-radius:40% 30% 0 0 / 20% 10% 0 0; box-shadow:inset 0 8px 20px rgba(0,0,0,.5); animation:gc-floor 30s ease-in-out infinite; }
.scn-giant-clam-pearl .giant-clam { position:absolute; bottom:22%; left:38%; width:44px; height:38px; background: linear-gradient(135deg, #4a5a4a 0%, #2a3a2a 40%, #1a2a1a 100%); border-radius:60% 40% 50% 50% / 70% 50% 50% 30%; box-shadow:0 8px 24px rgba(0,0,0,.6), inset 0 4px 12px rgba(100,150,100,.08); transform:rotate(-10deg); animation:gc-clam 12s ease-in-out infinite; }
.scn-giant-clam-pearl .giant-clam::before { content:''; position:absolute; top:10px; left:10px; width:20px; height:16px; background: radial-gradient(circle at 50% 40%, #f0e0c0 0%, #d0c098 50%, #b0a078 100%); border-radius:50%; box-shadow:0 0 8px 2px rgba(200,180,120,.3); animation:gc-clam-inner 5s ease-in-out infinite alternate; }
.scn-giant-clam-pearl .giant-clam::after { content:''; position:absolute; top:14px; left:14px; width:12px; height:10px; background: radial-gradient(circle at 50% 40%, #ffe8d0 0%, #d0b890 100%); border-radius:50%; box-shadow:0 0 20px 6px rgba(255,220,180,.4),0 0 40px 12px rgba(255,200,160,.15); animation:gc-pearl 4s ease-in-out infinite alternate; }
.scn-giant-clam-pearl .pearl-glow { position:absolute; bottom:28%; left:42%; width:20px; height:18px; background: radial-gradient(circle, rgba(255,230,200,.4) 0%, transparent 70%); border-radius:50%; filter:blur(8px); animation:gc-glow 5s ease-in-out infinite alternate; }
.scn-giant-clam-pearl .nemo-figure { position:absolute; bottom:18%; left:55%; width:20px; height:38px; background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%); border-radius:45% 55% 40% 40% / 60% 55% 45% 40%; transform-origin:bottom center; box-shadow:-2px 0 8px rgba(0,0,0,.3); animation:gc-nemo 8s ease-in-out infinite; }
.scn-giant-clam-pearl .rock-spire { position:absolute; bottom:0; left:12%; width:18px; height:40%; background: linear-gradient(180deg, #2a3a4a 0%, #0e1e2e 100%); border-radius:30% 30% 20% 20% / 100% 100% 0 0; transform:skewX(-8deg); box-shadow:inset 0 6px 20px rgba(0,0,0,.4); animation:gc-spire 25s ease-in-out infinite; }
.scn-giant-clam-pearl .bubble-stream { position:absolute; top:32%; left:48%; width:4px; height:30px; background: radial-gradient(circle at 50% 50%, rgba(180,220,255,.15) 0%, transparent 70%); border-radius:50%; filter:blur(2px); animation:gc-bubbles 8s linear infinite; }
.scn-giant-clam-pearl .seaweed { position:absolute; bottom:20%; left:68%; width:6px; height:28px; background: linear-gradient(180deg, #2a5a3a 0%, #1a3a2a 50%, #0a1a1a 100%); border-radius:50%; transform-origin:bottom center; animation:gc-weed 10s ease-in-out infinite; }
.scn-giant-clam-pearl .spear-light { position:absolute; bottom:28%; left:52%; width:2px; height:24px; background: linear-gradient(180deg, rgba(200,220,255,.6) 0%, transparent 100%); transform:rotate(25deg); filter:blur(1px); animation:gc-spear 6s ease-in-out infinite alternate; }
@keyframes gc-wall { 0%,100% { opacity:.85;transform:translateY(0) } 50% { opacity:1;transform:translateY(-2px) } }
@keyframes gc-floor { 0%,100% { transform:translateY(0) } 50% { transform:translateY(1px) } }
@keyframes gc-clam { 0%,100% { transform:rotate(-10deg) scale(1) } 50% { transform:rotate(-6deg) scale(1.02) } }
@keyframes gc-clam-inner { 0% { box-shadow:0 0 6px 1px rgba(200,180,120,.25);opacity:.8 } 100% { box-shadow:0 0 14px 4px rgba(200,180,120,.5);opacity:1 } }
@keyframes gc-pearl { 0% { box-shadow:0 0 12px 4px rgba(255,220,180,.3),0 0 30px 8px rgba(255,200,160,.1);opacity:.85 } 100% { box-shadow:0 0 28px 10px rgba(255,240,200,.5),0 0 50px 16px rgba(255,220,180,.2);opacity:1 } }
@keyframes gc-glow { 0% { opacity:.5;transform:scale(1) } 100% { opacity:.9;transform:scale(1.3) } }
@keyframes gc-nemo { 0% { transform:translateX(0) rotate(0) } 25% { transform:translateX(3px) rotate(2deg) } 50% { transform:translateX(0) rotate(0) } 75% { transform:translateX(-2px) rotate(-1deg) } 100% { transform:translateX(0) rotate(0) } }
@keyframes gc-spire { 0%,100% { transform:skewX(-8deg) translateY(0) } 50% { transform:skewX(-8deg) translateY(1px) } }
@keyframes gc-bubbles { 0% { transform:translateY(0) scale(1);opacity:.6 } 50% { transform:translateY(-20px) scale(1.2);opacity:.3 } 100% { transform:translateY(-40px) scale(.6);opacity:0 } }
@keyframes gc-weed { 0%,100% { transform:rotate(0) } 50% { transform:rotate(12deg) } }
@keyframes gc-spear { 0% { opacity:.3;transform:rotate(20deg) scaleY(1) } 100% { opacity:.7;transform:rotate(30deg) scaleY(1.3) } }

.scn-rescued-diver-shark-battle { background: linear-gradient(180deg, #2a6a8a 0%, #1a5a7a 30%, #0e3a5a 60%, #0a1a2a 100%), radial-gradient(ellipse at 30% 20%, #4a9aba 0%, transparent 60%); }
.scn-rescued-diver-shark-battle .water-sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #3a8aaa 0%, #2a6a8a 50%, #1a4a6a 100%); box-shadow:inset 0 8px 40px rgba(0,0,0,.25); animation:rb-sky 15s ease-in-out infinite alternate; }
.scn-rescued-diver-shark-battle .sea-floor { position:absolute; bottom:0; left:0; right:0; height:52%; background: linear-gradient(180deg, #1a3a4a 0%, #0a1a2a 100%); border-radius:60% 40% 0 0 / 20% 10% 0 0; box-shadow:inset 0 12px 40px rgba(0,0,0,.5); animation:rb-floor 25s ease-in-out infinite; }
.scn-rescued-diver-shark-battle .shark-body { position:absolute; bottom:38%; left:38%; width:56px; height:20px; background: linear-gradient(135deg, #3a4a5a 0%, #2a3a4a 40%, #1a2a3a 100%); border-radius:50% 40% 30% 30% / 60% 50% 40% 40%; transform:rotate(-15deg) scaleX(-1); box-shadow:0 4px 16px rgba(0,0,0,.4), inset 0 2px 8px rgba(100,150,180,.08); animation:rb-shark 6s ease-in-out infinite; }
.scn-rescued-diver-shark-battle .shark-body::before { content:''; position:absolute; top:2px; left:40px; width:16px; height:10px; background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%); border-radius:0 60% 40% 0 / 0 80% 60% 0; transform:rotate(10deg); }
.scn-rescued-diver-shark-battle .shark-body::after { content:''; position:absolute; top:-4px; left:12px; width:14px; height:14px; background: linear-gradient(180deg, #4a5a6a 0%, #2a3a4a 100%); border-radius:50%; clip-path:polygon(30% 0, 100% 20%, 80% 60%, 0 100%); transform:rotate(30deg); }
.scn-rescued-diver-shark-battle .shark-fin { position:absolute; bottom:50%; left:42%; width:16px; height:18px; background: linear-gradient(180deg, #3a4a5a 0%, #2a3a4a 100%); border-radius:50% 50% 30% 30% / 100% 100% 0 0; transform:rotate(-20deg) skewX(-10deg); box-shadow:0 2px 8px rgba(0,0,0,.3); animation:rb-fin 5s ease-in-out infinite alternate; }
.scn-rescued-diver-shark-battle .diver-figure { position:absolute; bottom:26%; left:26%; width:18px; height:30px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:40% 40% 30% 30% / 50% 50% 40% 40%; transform:rotate(20deg); box-shadow:2px 0 10px rgba(0,0,0,.3); animation:rb-diver 4s ease-in-out infinite; }
.scn-rescued-diver-shark-battle .diver-figure::before { content:''; position:absolute; top:2px; left:-4px; width:10px; height:8px; background: radial-gradient(circle, #a08050 0%, #7a5a3a 100%); border-radius:50%; }
.scn-rescued-diver-shark-battle .nemo-assault { position:absolute; bottom:32%; left:50%; width:16px; height:28px; background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%); border-radius:45% 55% 35% 35% / 60% 50% 40% 40%; transform:rotate(-30deg); box-shadow:0 2px 8px rgba(0,0,0,.3); animation:rb-nemo 4s ease-in-out infinite alternate; }
.scn-rescued-diver-shark-battle .nemo-assault::after { content:''; position:absolute; bottom:4px; right:-6px; width:12px; height:3px; background: linear-gradient(180deg, #c0d0e0 0%, #8aa0b0 100%); border-radius:0 50% 50% 0; transform:rotate(-20deg); box-shadow:0 0 6px 2px rgba(200,220,240,.3); animation:rb-dagger 3s ease-in-out infinite alternate; }
.scn-rescued-diver-shark-battle .blood-sheen { position:absolute; bottom:36%; left:44%; width:12px; height:8px; background: radial-gradient(circle, #a0461a 0%, transparent 70%); border-radius:50%; filter:blur(3px); animation:rb-blood 5s ease-in-out infinite; }
.scn-rescued-diver-shark-battle .bubble-cluster { position:absolute; top:24%; left:42%; width:6px; height:20px; background: radial-gradient(circle at 50% 50%, rgba(180,220,255,.2) 0%, transparent 70%); border-radius:50%; filter:blur(2px); animation:rb-bubble 7s linear infinite; }
.scn-rescued-diver-shark-battle .sunbeam { position:absolute; top:0; left:28%; width:60px; height:100%; background: linear-gradient(180deg, rgba(255,240,200,.08) 0%, rgba(200,220,255,.04) 50%, transparent 100%); transform:rotate(15deg); filter:blur(12px); animation:rb-beam 10s ease-in-out infinite alternate; }
@keyframes rb-sky { 0%,100% { opacity:.85 } 50% { opacity:1 } }
@keyframes rb-floor { 0%,100% { transform:translateY(0) } 50% { transform:translateY(-1px) } }
@keyframes rb-shark { 0% { transform:rotate(-15deg) scaleX(-1) translateY(0) } 25% { transform:rotate(-10deg) scaleX(-1) translateY(-4px) } 50% { transform:rotate(-18deg) scaleX(-1) translateY(0) } 75% { transform:rotate(-12deg) scaleX(-1) translateY(-2px) } 100% { transform:rotate(-15deg) scaleX(-1) translateY(0) } }
@keyframes rb-fin { 0% { transform:rotate(-20deg) skewX(-10deg) scaleY(1) } 100% { transform:rotate(-10deg) skewX(-5deg) scaleY(1.2) } }
@keyframes rb-diver { 0%,100% { transform:rotate(20deg) translateY(0) } 50% { transform:rotate(15deg) translateY(-3px) } }
@keyframes rb-nemo { 0% { transform:rotate(-30deg) translateX(0) } 100% { transform:rotate(-20deg) translateX(-6px) } }
@keyframes rb-dagger { 0% { opacity:.5;transform:rotate(-20deg) scaleX(1) } 100% { opacity:1;transform:rotate(-10deg) scaleX(1.3) } }
@keyframes rb-blood { 0%,100% { opacity:.3;transform:scale(1) } 50% { opacity:.6;transform:scale(1.5) } }
@keyframes rb-bubble { 0% { transform:translateY(0) scale(1);opacity:.5 } 50% { transform:translateY(-15px) scale(1.2);opacity:.2 } 100% { transform:translateY(-30px) scale(.5);opacity:0 } }
@keyframes rb-beam { 0%,100% { opacity:.3;transform:rotate(13deg) scaleY(1) } 50% { opacity:.6;transform:rotate(18deg) scaleY(1.1) } }

.scn-dugong-hunt { background: linear-gradient(180deg, #4a8aba 0%, #2a6a9a 30%, #1a4a7a 60%, #0a2a5a 100%), radial-gradient(ellipse at 60% 30%, #6a9aba 0%, transparent 60%); }
.scn-dugong-hunt .ocean-bg { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #5a9aba 0%, #3a7a9a 50%, #1a5a7a 100%); border-bottom:2px solid #2a5a7a; box-shadow:inset 0 8px 40px rgba(0,0,0,.15); animation:dh-ocean 20s ease-in-out infinite alternate; }
.scn-dugong-hunt .skiff-hull { position:absolute; bottom:24%; left:22%; width:48px; height:22px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 50%, #2a1a0a 100%); border-radius:60% 60% 20% 20% / 100% 100% 40% 40%; box-shadow:0 4px 16px rgba(0,0,0,.4), inset 0 4px 12px rgba(200,180,150,.06); animation:dh-skiff 6s ease-in-out infinite; }
.scn-dugong-hunt .skiff-rim { position:absolute; bottom:32%; left:24%; width:44px; height:6px; background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%); border-radius:50% 50% 0 0; box-shadow:0 2px 6px rgba(0,0,0,.2); animation:dh-rim 6s ease-in-out infinite; }
.scn-dugong-hunt .dugong-body { position:absolute; bottom:18%; left:48%; width:40px; height:18px; background: linear-gradient(135deg, #4a5a5a 0%, #2a3a3a 40%, #1a2a2a 100%); border-radius:60% 30% 40% 40% / 80% 50% 50% 30%; transform:rotate(8deg); box-shadow:0 4px 12px rgba(0,0,0,.3), inset 0 2px 8px rgba(100,130,130,.06); animation:dh-dugong 5s ease-in-out infinite; }
.scn-dugong-hunt .dugong-body::before { content:''; position:absolute; top:2px; left:32px; width:8px; height:10px; background: linear-gradient(180deg, #3a4a4a 0%, #1a2a2a 100%); border-radius:0 80% 40% 0 / 0 100% 60% 0; }
.scn-dugong-hunt .dugong-tail { position:absolute; bottom:20%; left:70%; width:14px; height:8px; background: linear-gradient(180deg, #3a4a4a 0%, #1a2a2a 100%); border-radius:0 50% 50% 0 / 0 80% 80% 0; transform:rotate(15deg); box-shadow:0 2px 6px rgba(0,0,0,.2); animation:dh-tail 5s ease-in-out infinite alternate; }
.scn-dugong-hunt .ned-figure { position:absolute; bottom:26%; left:28%; width:20px; height:34px; background: linear-gradient(180deg, #4a4a3a 0%, #2a2a1a 100%); border-radius:45% 55% 40% 40% / 55% 55% 45% 45%; transform-origin:bottom center; box-shadow:0 2px 8px rgba(0,0,0,.2); animation:dh-ned 7s ease-in-out infinite; }
.scn-dugong-hunt .ned-figure::after { content:''; position:absolute; top:6px; right:-4px; width:12px; height:3px; background: linear-gradient(90deg, #8a7a6a 0%, #6a5a4a 100%); border-radius:0 50% 50% 0; transform:rotate(-40deg); animation:dh-harpoon 4s ease-in-out infinite alternate; }
.scn-dugong-hunt .conseil-figure { position:absolute; bottom:26%; left:16%; width:18px; height:30px; background: linear-gradient(180deg, #3a4a5a 0%, #1a2a3a 100%); border-radius:45% 55% 40% 40% / 55% 55% 45% 45%; box-shadow:0 2px 8px rgba(0,0,0,.15); animation:dh-conseil 8s ease-in-out infinite; }
.scn-dugong-hunt .harpoon-arc { position:absolute; bottom:32%; left:38%; width:20px; height:14px; border:2px solid rgba(180,180,160,.3); border-color:transparent transparent transparent rgba(180,180,160,.3); border-radius:0 0 0 80%; transform:rotate(20deg); filter:blur(1px); animation:dh-arc 4s ease-in-out infinite alternate; }
.scn-dugong-hunt .spray { position:absolute; bottom:30%; left:46%; width:10px; height:8px; background: radial-gradient(circle, rgba(200,230,255,.2) 0%, transparent 70%); border-radius:50%; filter:blur(3px); animation:dh-spray 3s ease-in-out infinite; }
@keyframes dh-ocean { 0%,100% { opacity:.85 } 50% { opacity:1 } }
@keyframes dh-skiff { 0%,100% { transform:translateY(0) rotate(0) } 25% { transform:translateY(-4px) rotate(2deg) } 50% { transform:translateY(0) rotate(0) } 75% { transform:translateY(-3px) rotate(-1deg) } }
@keyframes dh-rim { 0%,100% { transform:translateY(0) rotate(0) } 25% { transform:translateY(-3px) rotate(2deg) } 50% { transform:translateY(0) rotate(0) } 75% { transform:translateY(-2px) rotate(-1deg) } }
@keyframes dh-dugong { 0% { transform:rotate(8deg) translateY(0) } 25% { transform:rotate(5deg) translateY(-5px) } 50% { transform:rotate(10deg) translateY(0) } 75% { transform:rotate(3deg) translateY(-3px) } 100% { transform:rotate(8deg) translateY(0) } }
@keyframes dh-tail { 0% { transform:rotate(15deg) scaleX(1) } 100% { transform:rotate(30deg) scaleX(1.2) } }
@keyframes dh-ned { 0% { transform:translateX(0) rotate(-1deg) } 25% { transform:translateX(4px) rotate(1deg) } 50% { transform:translateX(0) rotate(0) } 75% { transform:translateX(-2px) rotate(-1deg) } 100% { transform:translateX(0) rotate(0) } }
@keyframes dh-harpoon { 0% { transform:rotate(-40deg) translateX(0) } 100% { transform:rotate(-20deg) translateX(6px) } }
@keyframes dh-conseil { 0%,100% { transform:translateY(0) rotate(0) } 50% { transform:translateY(-2px) rotate(1deg) } }
@keyframes dh-arc { 0% { opacity:.2;transform:rotate(15deg) scaleY(1) } 100% { opacity:.5;transform:rotate(30deg) scaleY(1.3) } }
@keyframes dh-spray { 0%,100% { opacity:.2;transform:scale(1) } 50% { opacity:.5;transform:scale(1.6) } }

.scn-south-pole-claimed {
  background: linear-gradient(180deg, #bcc6cc 0%, #8b9bb0 40%, #5c6f82 100%),
              radial-gradient(ellipse at 50% 0%, #dce3e8 0%, transparent 70%);
}
.scn-south-pole-claimed .sky {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #d1d8de 0%, #bcc6cc 50%, transparent 100%);
  animation: spc-sky 20s ease-in-out infinite alternate;
}
.scn-south-pole-claimed .ice-field {
  position: absolute; bottom: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(180deg, #dbe3e8 0%, #b2c1cc 40%, #8fa3b5 100%);
  border-radius: 80% 80% 0 0 / 60% 60% 0 0;
  box-shadow: inset 0 15px 30px rgba(0,0,0,0.15);
  animation: spc-ice 15s ease-in-out infinite alternate;
}
.scn-south-pole-claimed .rock-formation {
  position: absolute; bottom: 35%; left: 20%; width: 120px; height: 80px;
  background: linear-gradient(135deg, #5a6f82 0%, #3c4f60 50%, #2a3a4a 100%);
  border-radius: 30% 30% 40% 40% / 50% 40% 60% 50%;
  box-shadow: 0 8px 15px rgba(0,0,0,0.3);
  transform: skewX(-5deg);
  animation: spc-rock 12s ease-in-out infinite alternate;
}
.scn-south-pole-claimed .walrus-1 {
  position: absolute; bottom: 25%; left: 35%; width: 60px; height: 30px;
  background: radial-gradient(ellipse 70% 100% at 50% 100%, #5c6b78 0%, #2f3e47 100%);
  border-radius: 50% 50% 40% 40% / 80% 80% 20% 20%;
  box-shadow: 0 5px 10px rgba(0,0,0,0.2);
  animation: spc-walrus 8s ease-in-out infinite alternate;
}
.scn-south-pole-claimed .walrus-2 {
  position: absolute; bottom: 22%; left: 50%; width: 50px; height: 25px;
  background: radial-gradient(ellipse 70% 100% at 50% 100%, #6b7c8a 0%, #3a4d5b 100%);
  border-radius: 50% 50% 40% 40% / 80% 80% 20% 20%;
  box-shadow: 0 5px 10px rgba(0,0,0,0.2);
  animation: spc-walrus 9s ease-in-out infinite alternate-reverse;
  animation-delay: -2s;
}
.scn-south-pole-claimed .figure-nemo {
  position: absolute; bottom: 20%; right: 25%; width: 20px; height: 45px;
  background: linear-gradient(180deg, #1f2b36 0%, #0d141c 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: spc-figure 6s ease-in-out infinite;
}
.scn-south-pole-claimed .instrument {
  position: absolute; bottom: 26%; right: 28%; width: 12px; height: 12px;
  background: radial-gradient(circle, #d9c89e 0%, #b59a6a 70%);
  border-radius: 50%;
  box-shadow: 0 0 8px 3px rgba(181,154,106,0.5);
  animation: spc-glow 4s ease-in-out infinite alternate;
}
@keyframes spc-sky { 0% { opacity: 0.6 } 50% { opacity: 1 } 100% { opacity: 0.7 } }
@keyframes spc-ice { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) scale(1.01) } 100% { transform: translateY(0) } }
@keyframes spc-rock { 0% { transform: skewX(-5deg) translateY(0) } 50% { transform: skewX(-3deg) translateY(-3px) } 100% { transform: skewX(-5deg) translateY(0) } }
@keyframes spc-walrus { 0% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-1px) rotate(1deg) } 100% { transform: translateY(0) rotate(2deg) } }
@keyframes spc-figure { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes spc-glow { 0% { box-shadow: 0 0 6px 2px rgba(181,154,106,0.4); opacity: 0.7 } 50% { box-shadow: 0 0 12px 5px rgba(181,154,106,0.7); opacity: 1 } 100% { box-shadow: 0 0 8px 3px rgba(181,154,106,0.5); opacity: 0.85 } }

.scn-ice-tunnel-escape {
  background: linear-gradient(180deg, #0d1117 0%, #191f2b 50%, #2a3547 100%),
              radial-gradient(ellipse at 50% 70%, #3a4a6a 0%, transparent 70%);
}
.scn-ice-tunnel-escape .bg-deep {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #0a0e14 0%, #141e2e 40%, #1a263a 100%);
  animation: ite-bg 6s ease-in-out infinite alternate;
}
.scn-ice-tunnel-escape .wall-ice {
  position: absolute; bottom: 10%; left: 5%; right: 5%; height: 60%;
  background: linear-gradient(135deg, #3a4a66 0%, #1f2b40 50%, #0f1828 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 -20px 40px rgba(0,0,0,0.6);
  animation: ite-ice 8s ease-in-out infinite alternate;
}
.scn-ice-tunnel-escape .gauge {
  position: absolute; top: 20%; left: 15%; width: 40px; height: 40px;
  background: radial-gradient(circle at 30% 30%, #2a3a50 0%, #121a2a 100%);
  border-radius: 50%;
  border: 3px solid #4a5a70;
  box-shadow: 0 0 10px 2px rgba(74,90,112,0.3);
  animation: ite-gauge 2s ease-in-out infinite;
}
.scn-ice-tunnel-escape .gauge::before {
  content: ''; position: absolute; top: 50%; left: 50%; width: 2px; height: 16px;
  background: #8fa5c0; transform-origin: bottom center;
  animation: ite-needle 3s ease-in-out infinite;
}
.scn-ice-tunnel-escape .light-flicker {
  position: absolute; top: 12%; right: 20%; width: 10px; height: 10px;
  background: radial-gradient(circle, #f0d89a 0%, #c8a860 60%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px rgba(200,168,96,0.5), 0 0 40px 12px rgba(200,168,96,0.2);
  animation: ite-flicker 0.4s steps(2) infinite;
}
.scn-ice-tunnel-escape .figure-ned {
  position: absolute; bottom: 15%; left: 25%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #1a2230 0%, #0b0f16 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: ite-figure 3s ease-in-out infinite;
}
.scn-ice-tunnel-escape .figure-captain {
  position: absolute; bottom: 18%; right: 20%; width: 20px; height: 42px;
  background: linear-gradient(180deg, #1a2a3a 0%, #0a141c 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: ite-figure 3.5s ease-in-out infinite reverse;
}
.scn-ice-tunnel-escape .vibration {
  position: absolute; inset: 0;
  background: repeating-linear-gradient(0deg, transparent, transparent 8px, rgba(255,255,255,0.02) 8px, rgba(255,255,255,0.02) 10px);
  animation: ite-vibrate 0.5s linear infinite;
}
@keyframes ite-bg { 0% { opacity: 0.8 } 50% { opacity: 0.95 } 100% { opacity: 0.8 } }
@keyframes ite-ice { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-3px) scale(1.02) } 100% { transform: translateY(0) scale(1) } }
@keyframes ite-gauge { 0% { box-shadow: 0 0 8px 1px rgba(74,90,112,0.2) } 50% { box-shadow: 0 0 14px 4px rgba(74,90,112,0.5) } 100% { box-shadow: 0 0 8px 1px rgba(74,90,112,0.2) } }
@keyframes ite-needle { 0% { transform: rotate(-20deg) } 50% { transform: rotate(30deg) } 100% { transform: rotate(-10deg) } }
@keyframes ite-flicker { 0%, 100% { opacity: 0.7 } 50% { opacity: 1 } }
@keyframes ite-figure { 0% { transform: translateY(0) rotate(-2deg) } 25% { transform: translateY(-3px) rotate(1deg) } 50% { transform: translateY(0) rotate(-1deg) } 75% { transform: translateY(-2px) rotate(2deg) } 100% { transform: translateY(0) rotate(-2deg) } }
@keyframes ite-vibrate { 0% { transform: translate(0,0) } 25% { transform: translate(-1px,1px) } 50% { transform: translate(1px,-1px) } 75% { transform: translate(-1px,-1px) } 100% { transform: translate(0,0) } }

.scn-northward-voyage {
  background: linear-gradient(180deg, #87ceeb 0%, #c8e6f0 30%, #f0f8ff 60%, #b0d4e8 100%),
              radial-gradient(ellipse at 50% 0%, #fff8e7 0%, transparent 60%);
}
.scn-northward-voyage .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #73b9e0 0%, #b8def0 50%, transparent 100%);
  animation: nv-sky 15s ease-in-out infinite alternate;
}
.scn-northward-voyage .sun-glow {
  position: absolute; top: 10%; left: 50%; width: 50px; height: 50px;
  background: radial-gradient(circle, #fff8d0 0%, #ffd080 40%, transparent 70%);
  border-radius: 50%;
  transform: translateX(-50%);
  box-shadow: 0 0 60px 20px rgba(255,208,128,0.4);
  animation: nv-sun 20s ease-in-out infinite alternate;
}
.scn-northward-voyage .sea-bg {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #4a7a9a 0%, #2a5a7a 100%);
  border-radius: 40% 60% 0 0 / 20% 30% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.1);
  animation: nv-sea 12s ease-in-out infinite alternate;
}
.scn-northward-voyage .ship-hull {
  position: absolute; bottom: 30%; left: 50%; width: 100px; height: 40px;
  background: linear-gradient(180deg, #6a4a32 0%, #3a2a1a 100%);
  border-radius: 0 0 30% 30% / 0 0 60% 60%;
  transform: translateX(-50%);
  box-shadow: 0 8px 15px rgba(0,0,0,0.3);
  animation: nv-ship 8s ease-in-out infinite;
}
.scn-northward-voyage .sail-fore {
  position: absolute; bottom: 48%; left: 50%; width: 30px; height: 50px;
  background: linear-gradient(135deg, #f0e8d8 0%, #c8bda8 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
  transform: translateX(-30px) rotate(-5deg);
  box-shadow: -2px 0 5px rgba(0,0,0,0.2);
  animation: nv-sail 7s ease-in-out infinite alternate;
}
.scn-northward-voyage .sail-aft {
  position: absolute; bottom: 46%; left: 50%; width: 25px; height: 45px;
  background: linear-gradient(135deg, #e8e0d0 0%, #b8a890 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
  transform: translateX(15px) rotate(3deg);
  box-shadow: 2px 0 5px rgba(0,0,0,0.2);
  animation: nv-sail 9s ease-in-out infinite alternate-reverse;
}
.scn-northward-voyage .wave-1 {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 15px;
  background: linear-gradient(180deg, #5a8aaa 0%, #3a6a8a 100%);
  border-radius: 50% 50% 0 0;
  transform: translateY(0);
  animation: nv-wave 4s ease-in-out infinite;
}
.scn-northward-voyage .wave-2 {
  position: absolute; bottom: 15%; left: 0; right: 0; height: 12px;
  background: linear-gradient(180deg, #4a7a9a 0%, #2a5a7a 100%);
  border-radius: 50% 50% 0 0;
  transform: translateY(0);
  animation: nv-wave 5s ease-in-out infinite reverse;
  animation-delay: -2s;
}
.scn-northward-voyage .figure-deck {
  position: absolute; bottom: 33%; left: 50%; width: 15px; height: 30px;
  background: linear-gradient(180deg, #1f2b36 0%, #0d141c 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform: translateX(-55px);
  animation: nv-figure 6s ease-in-out infinite;
}
@keyframes nv-sky { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes nv-sun { 0% { transform: translateX(-50%) scale(0.95); opacity: 0.85 } 50% { transform: translateX(-50%) scale(1.05); opacity: 1 } 100% { transform: translateX(-50%) scale(1); opacity: 0.9 } }
@keyframes nv-sea { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-3px) scaleY(1.02) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes nv-ship { 0% { transform: translateX(-50%) rotate(-2deg) } 50% { transform: translateX(-50%) rotate(1deg) } 100% { transform: translateX(-50%) rotate(-2deg) } }
@keyframes nv-sail { 0% { transform: translateX(-30px) rotate(-5deg) scaleY(1) } 50% { transform: translateX(-30px) rotate(-7deg) scaleY(1.03) } 100% { transform: translateX(-30px) rotate(-5deg) scaleY(1) } }
@keyframes nv-wave { 0% { transform: translateY(0) scaleX(1) } 50% { transform: translateY(-2px) scaleX(1.01) } 100% { transform: translateY(0) scaleX(1) } }
@keyframes nv-figure { 0% { transform: translateX(-55px) rotate(-1deg) } 50% { transform: translateX(-55px) rotate(1deg) } 100% { transform: translateX(-55px) rotate(-1deg) } }

.scn-giant-squid-battle {
  background: linear-gradient(180deg, #02040a 0%, #0a1420 40%, #14283e 100%),
              radial-gradient(ellipse at 50% 80%, #1a3a5a 0%, transparent 70%);
}
.scn-giant-squid-battle .abyss {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #0a0e14 0%, #060a10 50%, #020408 100%);
  animation: gsb-abyss 10s ease-in-out infinite alternate;
}
.scn-giant-squid-battle .window {
  position: absolute; top: 20%; left: 50%; width: 80px; height: 60px;
  background: radial-gradient(ellipse, #2a4a6a 0%, #0e1e30 70%);
  border-radius: 50%;
  transform: translateX(-50%);
  border: 4px solid #4a6a8a;
  box-shadow: inset 0 0 20px 5px rgba(0,0,0,0.5), 0 0 30px 10px rgba(74,106,138,0.3);
  overflow: hidden;
}
.scn-giant-squid-battle .window::before {
  content: ''; position: absolute; inset: 10%;
  background: radial-gradient(ellipse, #1a3a5a 0%, #0a1a2a 100%);
  border-radius: 50%;
  animation: gsb-window 3s ease-in-out infinite;
}
.scn-giant-squid-battle .tentacle-1 {
  position: absolute; top: 10%; left: 30%; width: 120px; height: 14px;
  background: linear-gradient(90deg, #4a3a2a 0%, #8a6a4a 50%, #4a3a2a 100%);
  border-radius: 50% 50% 30% 30%;
  transform: rotate(-20deg);
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: gsb-tentacle 2s ease-in-out infinite;
}
.scn-giant-squid-battle .tentacle-1::after {
  content: ''; position: absolute; left: 100%; top: 50%; width: 30px; height: 10px;
  background: linear-gradient(90deg, #8a6a4a 0%, #5a4a3a 100%);
  border-radius: 50% 50% 40% 40%;
  transform: translateY(-50%);
}
.scn-giant-squid-battle .tentacle-2 {
  position: absolute; bottom: 30%; right: 20%; width: 100px; height: 12px;
  background: linear-gradient(90deg, #5a4a3a 0%, #8a6a4a 50%, #5a4a3a 100%);
  border-radius: 50% 50% 30% 30%;
  transform: rotate(40deg);
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: gsb-tentacle 2.5s ease-in-out infinite reverse;
}
.scn-giant-squid-battle .tentacle-2::after {
  content: ''; position: absolute; right: 100%; top: 50%; width: 25px; height: 8px;
  background: linear-gradient(90deg, #5a4a3a 0%, #8a6a4a 100%);
  border-radius: 50% 50% 40% 40%;
  transform: translateY(-50%);
}
.scn-giant-squid-battle .figure-axe {
  position: absolute; bottom: 15%; left: 40%; width: 18px; height: 35px;
  background: linear-gradient(180deg, #1a2230 0%, #0b0f16 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: gsb-figure 1.2s ease-in-out infinite;
}
.scn-giant-squid-battle .figure-axe::before {
  content: ''; position: absolute; top: -10px; left: 50%; width: 14px; height: 14px;
  background: radial-gradient(circle, #6a5a4a 0%, #3a2a1a 70%);
  border-radius: 50% 50% 30% 30%;
  transform: translateX(-50%) rotate(45deg);
  box-shadow: 0 0 4px rgba(0,0,0,0.5);
}
.scn-giant-squid-battle .lantern {
  position: absolute; top: 25%; right: 15%; width: 8px; height: 12px;
  background: radial-gradient(circle at 50% 30%, #f0c868 0%, #b08040 70%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 0 20px 6px rgba(176,128,64,0.5), 0 0 40px 12px rgba(176,128,64,0.2);
  animation: gsb-lantern 1.5s ease-in-out infinite alternate;
}
.scn-giant-squid-battle .splash {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: radial-gradient(ellipse at 50% 0%, rgba(42,74,106,0.4) 0%, transparent 70%);
  animation: gsb-splash 0.8s steps(3) infinite;
}
@keyframes gsb-abyss { 0% { opacity: 0.85 } 50% { opacity: 1 } 100% { opacity: 0.9 } }
@keyframes gsb-window { 0% { transform: scale(1) } 50% { transform: scale(0.95) translateY(-2px) } 100% { transform: scale(1) } }
@keyframes gsb-tentacle { 0% { transform: rotate(-20deg) translateY(0) } 25% { transform: rotate(-15deg) translateY(-5px) } 50% { transform: rotate(-22deg) translateY(2px) } 75% { transform: rotate(-18deg) translateY(-3px) } 100% { transform: rotate(-20deg) translateY(0) } }
@keyframes gsb-figure { 0% { transform: translateY(0) rotate(-5deg) } 50% { transform: translateY(-4px) rotate(5deg) } 100% { transform: translateY(0) rotate(-5deg) } }
@keyframes gsb-lantern { 0% { opacity: 0.7; box-shadow: 0 0 15px 4px rgba(176,128,64,0.4) } 100% { opacity: 1; box-shadow: 0 0 30px 10px rgba(176,128,64,0.7) } }
@keyframes gsb-splash { 0% { transform: translateY(0) scaleY(1) } 33% { transform: translateY(-5px) scaleY(0.8) } 66% { transform: translateY(-2px) scaleY(1.1) } 100% { transform: translateY(0) scaleY(1) } }

.scn-underwater-voyage-begins { background: linear-gradient(180deg, #0a0a2e 0%, #101040 50%, #0a0a2e 100%), radial-gradient(ellipse at 50% 100%, #1a1a5e 0%, transparent 70%); }
.scn-underwater-voyage-begins .wall { position:absolute; inset:0; background: linear-gradient(180deg, #15153a 0%, #0f0f2a 100%); }
.scn-underwater-voyage-begins .porthole { position:absolute; top:20%; left:20%; width:120px; height:120px; border-radius:50%; background: #1a1a5e; box-shadow: inset 0 0 20px #0a0a2e; }
.scn-underwater-voyage-begins .window { position:absolute; top:20%; left:20%; width:100px; height:100px; border-radius:50%; transform:translate(10px,10px); background: radial-gradient(circle, #2a4a7e 0%, #0a2a5e 100%); box-shadow: inset 0 0 10px #4a6a9e; }
.scn-underwater-voyage-begins .figure { position:absolute; bottom:20%; left:40%; width:24px; height:50px; background: linear-gradient(180deg, #2a2a4a 0%, #1a1a3a 100%); border-radius:50% 50% 40% 40%/60% 60% 40% 40%; animation: ub-figure 4s ease-in-out infinite; }
.scn-underwater-voyage-begins .rays { position:absolute; top:0; left:0; right:0; bottom:0; background: linear-gradient(135deg, transparent 30%, rgba(100,150,200,0.1) 30%, transparent 31%, transparent 60%, rgba(100,150,200,0.15) 60%); animation: ub-rays 15s linear infinite; }
.scn-underwater-voyage-begins .bubble { position:absolute; width:10px; height:10px; border-radius:50%; background: rgba(200,230,255,0.3); }
.scn-underwater-voyage-begins .bubble-a { bottom:0; left:30%; animation: ub-bubble 6s ease-in-out infinite; }
.scn-underwater-voyage-begins .bubble-b { bottom:0; left:60%; animation: ub-bubble 8s ease-in-out infinite; animation-delay: 2s; }
@keyframes ub-figure { 0%{transform:translateY(0) scale(1)} 50%{transform:translateY(-3px) scale(1.02)} 100%{transform:translateY(0) scale(1)} }
@keyframes ub-rays { 0%{background-position:0 0} 100%{background-position:100% 100%} }
@keyframes ub-bubble { 0%{transform:translateY(0) scale(1);opacity:0.7} 50%{transform:translateY(-80px) scale(1.5);opacity:0.3} 100%{transform:translateY(-160px) scale(0.8);opacity:0} }

.scn-invitation-to-undersea-hunt { background: linear-gradient(180deg, #1a1a3e 0%, #2c2244 50%, #4a3a6e 100%), radial-gradient(ellipse at 50% 100%, #4a3a6e 0%, transparent 70%); }
.scn-invitation-to-undersea-hunt .wall { position:absolute; inset:0; background: linear-gradient(180deg, #2a2a4e 0%, #1a1a3e 100%); }
.scn-invitation-to-undersea-hunt .table { position:absolute; bottom:20%; left:30%; width:60%; height:12px; background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); border-radius:4px; box-shadow:0 6px 12px rgba(0,0,0,0.5); }
.scn-invitation-to-undersea-hunt .chair { position:absolute; bottom:20%; left:45%; width:20px; height:30px; background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 100%); border-radius:8% 8% 4% 4%; transform-origin:bottom; animation: iu-chair 6s ease-in-out infinite; }
.scn-invitation-to-undersea-hunt .figure { position:absolute; bottom:32%; left:40%; width:20px; height:40px; background: linear-gradient(180deg, #2a2a4a 0%, #1a1a3a 100%); border-radius:50% 50% 40% 40%/60% 60% 40% 40%; animation: iu-figure 4s ease-in-out infinite; }
.scn-invitation-to-undersea-hunt .lantern { position:absolute; bottom:40%; left:35%; width:8px; height:12px; background: #d08040; border-radius:20% 20% 10% 10%; box-shadow:0 0 20px 6px rgba(208,128,64,0.6); animation: iu-lantern 3s ease-in-out infinite alternate; }
.scn-invitation-to-undersea-hunt .plate { position:absolute; bottom:26%; left:44%; width:30px; height:4px; background: #6a5a4a; border-radius:50%; }
.scn-invitation-to-undersea-hunt .window { position:absolute; top:10%; left:10%; width:60px; height:40px; border-radius:10%; background: radial-gradient(ellipse, #2a4a7e 0%, #0a2a5e 100%); box-shadow:inset 0 0 10px #4a6a9e; }
.scn-invitation-to-undersea-hunt .fish { position:absolute; width:20px; height:8px; background: #3a5a7a; border-radius:50% 50% 40% 40%; }
.scn-invitation-to-undersea-hunt .fish-a { top:15%; left:20%; animation: iu-fish 12s linear infinite; }
.scn-invitation-to-undersea-hunt .fish-b { top:22%; left:80%; animation: iu-fish 15s linear infinite reverse; animation-delay:3s; }
@keyframes iu-chair { 0%,100%{transform:rotate(0deg)} 50%{transform:rotate(2deg)} }
@keyframes iu-figure { 0%{transform:translateY(0)} 50%{transform:translateY(-1px)} 100%{transform:translateY(0)} }
@keyframes iu-lantern { 0%{box-shadow:0 0 10px 3px rgba(208,128,64,0.4);opacity:0.8} 50%{box-shadow:0 0 25px 8px rgba(208,128,64,0.7);opacity:1} 100%{box-shadow:0 0 15px 5px rgba(208,128,64,0.5);opacity:0.9} }
@keyframes iu-fish { 0%{transform:translateX(-30px)} 100%{transform:translateX(120vw)} }

.scn-diving-equipment-demonstrated { background: linear-gradient(180deg, #1a3a5e 0%, #2a5a7e 50%, #1a3a5e 100%), radial-gradient(ellipse at 50% 0%, #4a8aae 0%, transparent 70%); }
.scn-diving-equipment-demonstrated .bg-water { position:absolute; inset:0; background: linear-gradient(180deg, rgba(30,60,90,0.5) 0%, transparent 100%); }
.scn-diving-equipment-demonstrated .sand { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #a09060 0%, #807040 100%); border-radius:40% 60% 0 0 / 80% 70% 0 0; }
.scn-diving-equipment-demonstrated .kelp { position:absolute; bottom:20%; width:8px; height:80px; background: linear-gradient(180deg, #2a5a2a 0%, #1a3a1a 100%); border-radius:50%; transform-origin:bottom center; }
.scn-diving-equipment-demonstrated .kelp-a { left:20%; animation: de-kelp 5s ease-in-out infinite; }
.scn-diving-equipment-demonstrated .kelp-b { left:40%; height:60px; animation: de-kelp 6s ease-in-out infinite; animation-delay:1s; }
.scn-diving-equipment-demonstrated .kelp-c { left:60%; height:70px; animation: de-kelp 7s ease-in-out infinite; animation-delay:2s; }
.scn-diving-equipment-demonstrated .figure { position:absolute; bottom:15%; width:24px; height:50px; background: linear-gradient(180deg, #4a5a6a 0%, #2a3a4a 100%); border-radius:50% 50% 40% 40%/60% 60% 40% 40%; }
.scn-diving-equipment-demonstrated .fig-a { left:30%; animation: de-walk 8s ease-in-out infinite; }
.scn-diving-equipment-demonstrated .fig-b { left:50%; animation: de-walk 8s ease-in-out infinite; animation-delay:2s; }
.scn-diving-equipment-demonstrated .fig-c { left:70%; animation: de-walk 8s ease-in-out infinite; animation-delay:4s; }
.scn-diving-equipment-demonstrated .bubble { position:absolute; width:8px; height:8px; border-radius:50%; background: rgba(200,230,255,0.4); }
.scn-diving-equipment-demonstrated .bubble-a { bottom:50%; left:30%; animation: de-bubble 4s ease-in-out infinite; }
.scn-diving-equipment-demonstrated .bubble-b { bottom:60%; left:70%; animation: de-bubble 5s ease-in-out infinite; animation-delay:1.5s; }
@keyframes de-kelp { 0%{transform:rotate(-5deg)} 50%{transform:rotate(5deg)} 100%{transform:rotate(-5deg)} }
@keyframes de-walk { 0%{transform:translateX(0) scale(1)} 25%{transform:translateX(10px) scale(0.95)} 50%{transform:translateX(20px) scale(1)} 75%{transform:translateX(10px) scale(1.05)} 100%{transform:translateX(0) scale(1)} }
@keyframes de-bubble { 0%{transform:translateY(0) scale(1);opacity:0.6} 50%{transform:translateY(-60px) scale(1.3);opacity:0.2} 100%{transform:translateY(-120px) scale(0.6);opacity:0} }

.scn-return-from-submarine-forest { background: linear-gradient(180deg, #050515 0%, #1a1a3a 50%, #0a0a2a 100%), radial-gradient(ellipse at 50% 100%, #2a2a5e 0%, transparent 70%); }
.scn-return-from-submarine-forest .dark-water { position:absolute; inset:0; background: linear-gradient(180deg, transparent 0%, rgba(10,10,30,0.8) 100%); }
.scn-return-from-submarine-forest .cliff { position:absolute; right:10%; bottom:0; width:30%; height:70%; background: linear-gradient(180deg, #2a2a4a 0%, #1a1a3a 100%); border-radius:20% 20% 0 0; box-shadow:inset 0 10px 20px rgba(0,0,0,0.5); }
.scn-return-from-submarine-forest .shark { position:absolute; width:40px; height:12px; background: #2a3a5a; border-radius:50% 50% 40% 40%; }
.scn-return-from-submarine-forest .shark-a { top:30%; left:10%; animation: rf-shark 3s ease-in-out infinite; }
.scn-return-from-submarine-forest .shark-b { top:40%; left:70%; animation: rf-shark 4s ease-in-out infinite; animation-delay:0.5s; }
.scn-return-from-submarine-forest .figure-run { position:absolute; bottom:20%; left:40%; width:18px; height:40px; background: linear-gradient(180deg, #1a1a3a 0%, #0a0a2a 100%); border-radius:50% 50% 40% 40%/60% 60% 40% 40%; animation: rf-run 1.5s ease-in-out infinite; }
.scn-return-from-submarine-forest .lantern-beam { position:absolute; bottom:30%; left:38%; width:100px; height:10px; background: linear-gradient(90deg, rgba(255,200,100,0.6) 0%, transparent 100%); transform-origin:left; animation: rf-lantern 2s ease-in-out infinite alternate; }
.scn-return-from-submarine-forest .bubble { position:absolute; width:6px; height:6px; border-radius:50%; background: rgba(200,230,255,0.2); }
.scn-return-from-submarine-forest .bubble-a { bottom:30%; left:20%; animation: rf-bubble 2s linear infinite; }
.scn-return-from-submarine-forest .bubble-b { bottom:50%; left:60%; animation: rf-bubble 2.5s linear infinite; animation-delay:0.8s; }
@keyframes rf-shark { 0%{transform:translateX(0) scale(1)} 50%{transform:translateX(30px) scale(0.9)} 100%{transform:translateX(0) scale(1)} }
@keyframes rf-run { 0%{transform:translateY(0) rotate(0deg)} 25%{transform:translateY(-2px) rotate(5deg)} 50%{transform:translateY(-4px) rotate(0deg)} 75%{transform:translateY(-2px) rotate(-5deg)} 100%{transform:translateY(0) rotate(0deg)} }
@keyframes rf-lantern { 0%{width:80px;opacity:0.6} 50%{width:120px;opacity:1} 100%{width:80px;opacity:0.6} }
@keyframes rf-bubble { 0%{transform:translateY(0) scale(1);opacity:0.4} 50%{transform:translateY(-30px) scale(1.2);opacity:0.1} 100%{transform:translateY(-60px) scale(0.5);opacity:0} }

.scn-captain-nemo-revealed {
  background: linear-gradient(180deg, #0f0f2e 0%, #1a1a4a 40%, #2a205a 80%, #201a40 100%), radial-gradient(ellipse at 30% 20%, #3a3a6a 0%, transparent 60%);
}
.scn-captain-nemo-revealed .bg-deep { position:absolute; inset:0; background:linear-gradient(135deg,#0a0a1a 0%,transparent 70%); animation:cnr1-deep 12s ease-in-out infinite alternate; }
.scn-captain-nemo-revealed .bg-mid { position:absolute; inset:10% 5% 15% 10%; background:radial-gradient(ellipse at 40% 30%,#2a2a4a 0%,transparent 70%); border-radius:20%; animation:cnr1-mid 8s ease-in-out infinite alternate; }
.scn-captain-nemo-revealed .figure-nemo { position:absolute; bottom:20%; left:35%; width:50px; height:90px; background:linear-gradient(180deg,#0a0a1a 0%,#050515 100%); border-radius:40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin:bottom center; animation:cnr1-figure 5s ease-in-out infinite; }
.scn-captain-nemo-revealed .light-beam { position:absolute; top:10%; left:20%; width:30%; height:8%; background:linear-gradient(135deg,rgba(200,180,140,0.4) 0%,rgba(200,180,140,0) 100%); transform:rotate(30deg); filter:blur(4px); animation:cnr1-beam 6s ease-in-out infinite alternate; }
.scn-captain-nemo-revealed .porthole { position:absolute; top:15%; right:15%; width:40px; height:40px; background:radial-gradient(circle,#4a6a9a 0%,#2a3a5a 70%); border:2px solid #5a5a7a; border-radius:50%; box-shadow:inset 0 0 10px #1a1a3a,0 0 15px rgba(74,106,154,0.5); animation:cnr1-port 10s ease-in-out infinite; }
.scn-captain-nemo-revealed .shadow { position:absolute; bottom:10%; left:20%; width:60%; height:30%; background:radial-gradient(ellipse at 50% 100%,#0a0a1a 0%,transparent 70%); filter:blur(8px); animation:cnr1-shadow 7s ease-in-out infinite alternate; }
.scn-captain-nemo-revealed .mist { position:absolute; inset:0; background:radial-gradient(ellipse at 40% 60%,rgba(30,30,60,0.3) 0%,transparent 70%); filter:blur(15px); animation:cnr1-mist 20s ease-in-out infinite alternate; }
@keyframes cnr1-deep { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes cnr1-mid { 0% { transform:scale(1); } 50% { transform:scale(0.95) translateY(5px); } 100% { transform:scale(1); } }
@keyframes cnr1-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 cnr1-beam { 0% { opacity:0.2; transform:rotate(30deg) scaleX(1); } 50% { opacity:0.6; transform:rotate(25deg) scaleX(1.2); } 100% { opacity:0.3; transform:rotate(30deg) scaleX(0.9); } }
@keyframes cnr1-port { 0% { box-shadow:0 0 10px rgba(74,106,154,0.3); } 50% { box-shadow:0 0 20px rgba(74,106,154,0.8),0 0 40px rgba(74,106,154,0.4); } 100% { box-shadow:0 0 10px rgba(74,106,154,0.3); } }
@keyframes cnr1-shadow { 0% { transform:scaleX(1); opacity:0.5; } 50% { transform:scaleX(1.1); opacity:0.7; } 100% { transform:scaleX(1); opacity:0.5; } }
@keyframes cnr1-mist { 0% { opacity:0.3; filter:blur(15px); } 50% { opacity:0.6; filter:blur(20px); } 100% { opacity:0.4; filter:blur(10px); } }

.scn-nautilus-wonders-offered {
  background: linear-gradient(180deg, #f5e6c8 0%, #e0c8a0 50%, #c8a878 100%), radial-gradient(ellipse at 30% 40%, #ffebc0 0%, transparent 60%);
}
.scn-nautilus-wonders-offered .bg-warm { position:absolute; inset:5%; background:linear-gradient(135deg,#f0d8b0 0%,transparent 70%); border-radius:20px; animation:nw2-warm 10s ease-in-out infinite alternate; }
.scn-nautilus-wonders-offered .bookshelf-left { position:absolute; left:5%; top:10%; width:15%; height:60%; background:linear-gradient(90deg,#6a4a2a 0%,#8a6a4a 50%,#6a4a2a 100%); border-radius:4px; box-shadow:2px 0 10px rgba(0,0,0,0.2); animation:nw2-shelf 15s linear infinite; }
.scn-nautilus-wonders-offered .bookshelf-right { position:absolute; right:5%; top:15%; width:15%; height:55%; background:linear-gradient(90deg,#6a4a2a 0%,#8a6a4a 50%,#6a4a2a 100%); border-radius:4px; box-shadow:-2px 0 10px rgba(0,0,0,0.2); animation:nw2-shelf 18s linear infinite reverse; }
.scn-nautilus-wonders-offered .figure-aronnax { position:absolute; bottom:25%; left:35%; width:40px; height:70px; background:linear-gradient(180deg,#4a3a2a 0%,#2a1a0a 100%); border-radius:40% 40% 35% 35% / 55% 55% 45% 45%; transform-origin:bottom center; animation:nw2-aronnax 4s ease-in-out infinite; }
.scn-nautilus-wonders-offered .figure-nemo { position:absolute; bottom:25%; right:35%; width:45px; height:75px; background:linear-gradient(180deg,#3a2a1a 0%,#1a0a00 100%); border-radius:40% 40% 35% 35% / 55% 55% 45% 45%; transform-origin:bottom center; animation:nw2-nemo 4.5s ease-in-out infinite alternate; }
.scn-nautilus-wonders-offered .painting { position:absolute; top:20%; left:42%; width:16%; height:30%; background:linear-gradient(135deg,#8a6a4a 0%,#a08060 50%,#6a4a2a 100%); border:3px solid #b09070; border-radius:4px; transform:rotate(2deg); box-shadow:0 0 15px rgba(0,0,0,0.3); animation:nw2-paint 9s ease-in-out infinite alternate; }
.scn-nautilus-wonders-offered .smoke { position:absolute; top:8%; left:55%; width:60px; height:40px; background:radial-gradient(ellipse,rgba(200,200,180,0.3) 0%,transparent 70%); filter:blur(6px); animation:nw2-smoke 7s ease-in-out infinite; }
.scn-nautilus-wonders-offered .lamp { position:absolute; top:5%; left:60%; width:16px; height:30px; background:linear-gradient(180deg,#d09040 0%,#b07020 100%); border-radius:50% 50% 10% 10%; box-shadow:0 0 20px 8px #f0c060; animation:nw2-lamp 3s ease-in-out infinite alternate; }
@keyframes nw2-warm { 0%{opacity:0.8}50%{opacity:1}100%{opacity:0.9} }
@keyframes nw2-shelf { 0%{transform:translateY(0)}50%{transform:translateY(-2px)}100%{transform:translateY(0)} }
@keyframes nw2-aronnax { 0%{transform:translateX(0) rotate(0deg)}25%{transform:translateX(5px) rotate(2deg)}50%{transform:translateX(0) rotate(0deg)}75%{transform:translateX(-5px) rotate(-2deg)}100%{transform:translateX(0) rotate(0deg)} }
@keyframes nw2-nemo { 0%{transform:translateX(0) rotate(0deg)}33%{transform:translateX(-3px) rotate(1deg)}66%{transform:translateX(3px) rotate(-1deg)}100%{transform:translateX(0) rotate(0deg)} }
@keyframes nw2-paint { 0%{transform:rotate(2deg) scale(1)}50%{transform:rotate(0deg) scale(0.98)}100%{transform:rotate(2deg) scale(1)} }
@keyframes nw2-smoke { 0%{transform:translateY(0) scale(1);opacity:0.3}50%{transform:translateY(-10px) scale(1.2);opacity:0.6}100%{transform:translateY(0) scale(1);opacity:0.3} }
@keyframes nw2-lamp { 0%{box-shadow:0 0 15px 5px #f0c060}50%{box-shadow:0 0 30px 12px #f0c060}100%{box-shadow:0 0 20px 7px #d09040} }

.scn-nemo-explains-electricity {
  background: linear-gradient(180deg, #d4d4e0 0%, #b0b4c8 50%, #9098b0 100%), radial-gradient(ellipse at 60% 30%, #e0e4f0 0%, transparent 70%);
}
.scn-nemo-explains-electricity .bg-instruments { position:absolute; inset:0; background:linear-gradient(135deg,#c0c8d8 0%,transparent 70%); animation:ne3-bg 10s ease-in-out infinite alternate; }
.scn-nemo-explains-electricity .panel { position:absolute; bottom:20%; left:20%; width:60%; height:30%; background:linear-gradient(180deg,#5a5a6a 0%,#3a3a4a 100%); border-radius:8px; box-shadow:inset 0 0 20px #2a2a3a,0 5px 15px rgba(0,0,0,0.5); animation:ne3-panel 7s ease-in-out infinite; }
.scn-nemo-explains-electricity .dial-glow { position:absolute; bottom:35%; left:30%; width:30px; height:30px; background:radial-gradient(circle,#00aaff 0%,#0066cc 60%,transparent 80%); border-radius:50%; box-shadow:0 0 30px 10px #0088ff; animation:ne3-dial 4s ease-in-out infinite alternate; }
.scn-nemo-explains-electricity .figure-nemo { position:absolute; bottom:22%; left:10%; width:45px; height:80px; background:linear-gradient(180deg,#2a2a3a 0%,#151520 100%); border-radius:40% 40% 35% 35% / 55% 55% 45% 45%; transform-origin:bottom center; animation:ne3-nemo 5s ease-in-out infinite; }
.scn-nemo-explains-electricity .gauge { position:absolute; bottom:30%; right:25%; width:22px; height:35px; background:linear-gradient(180deg,#808898 0%,#606878 100%); border-radius:4px 4px 2px 2px; box-shadow:inset 0 2px 4px #2a3038; animation:ne3-gauge 8s ease-in-out infinite alternate; }
.scn-nemo-explains-electricity .wire { position:absolute; bottom:40%; left:18%; width:2px; height:40px; background:#cc6600; transform:rotate(30deg); transform-origin:bottom left; animation:ne3-wire 6s linear infinite; }
.scn-nemo-explains-electricity .spark { position:absolute; bottom:40%; left:18%; width:6px; height:6px; background:#ffffaa; border-radius:50%; box-shadow:0 0 10px 5px #ffff00; animation:ne3-spark 0.5s ease-in-out infinite alternate; }
@keyframes ne3-bg { 0%{opacity:0.8}50%{opacity:1}100%{opacity:0.85} }
@keyframes ne3-panel { 0%{box-shadow:inset 0 0 20px #2a2a3a}50%{box-shadow:inset 0 0 30px #3a3a4a}100%{box-shadow:inset 0 0 20px #2a2a3a} }
@keyframes ne3-dial { 0%{box-shadow:0 0 20px 5px #0088ff;opacity:0.7}50%{box-shadow:0 0 40px 15px #00aaff;opacity:1}100%{box-shadow:0 0 20px 5px #0088ff;opacity:0.7} }
@keyframes ne3-nemo { 0%{transform:translateX(0) rotate(0deg)}25%{transform:translateX(4px) rotate(2deg)}50%{transform:translateX(0) rotate(0deg)}75%{transform:translateX(-4px) rotate(-2deg)}100%{transform:translateX(0) rotate(0deg)} }
@keyframes ne3-gauge { 0%{height:35px}50%{height:30px}100%{height:35px} }
@keyframes ne3-wire { 0%{transform:rotate(30deg)}50%{transform:rotate(25deg)}100%{transform:rotate(30deg)} }
@keyframes ne3-spark { 0%{opacity:1;transform:scale(1)}100%{opacity:0.2;transform:scale(0.5)} }

.scn-secret-ship-construction {
  background: linear-gradient(180deg, #87CEEB 0%, #b0d4e6 50%, #e8f4f8 100%), radial-gradient(ellipse at 30% 20%, #f0f8ff 0%, transparent 60%);
}
.scn-secret-ship-construction .bg-sky { position:absolute; inset:0; background:linear-gradient(180deg,#b0d4e6 0%,transparent 50%); animation:ssc4-sky 18s ease-in-out infinite alternate; }
.scn-secret-ship-construction .hull { position:absolute; bottom:20%; left:10%; width:80%; height:35%; background:linear-gradient(90deg,#3a5a6a 0%,#4a6a7a 50%,#3a5a6a 100%); border-radius:40% 40% 10% 10% / 90% 90% 20% 20%; box-shadow:0 8px 20px rgba(0,0,0,0.3); animation:ssc4-hull 12s ease-in-out infinite; }
.scn-secret-ship-construction .scaffold { position:absolute; bottom:50%; left:30%; width:2%; height:35%; background:#8a7a5a; transform:rotate(-5deg); box-shadow:0 0 0 3px #6a5a3a; animation:ssc4-scaffold 6s ease-in-out infinite alternate; }
.scn-secret-ship-construction .figure-worker { position:absolute; bottom:38%; left:35%; width:12px; height:30px; background:linear-gradient(180deg,#2a3a4a 0%,#1a2a3a 100%); border-radius:40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin:bottom center; animation:ssc4-worker 4s ease-in-out infinite; }
.scn-secret-ship-construction .sun-light { position:absolute; top:5%; right:20%; width:80px; height:80px; background:radial-gradient(circle,#ffffcc 0%,#ffe680 40%,transparent 70%); border-radius:50%; filter:blur(10px); animation:ssc4-sun 14s ease-in-out infinite alternate; }
.scn-secret-ship-construction .rivet-line { position:absolute; bottom:28%; left:15%; width:70%; height:2px; background:repeating-linear-gradient(90deg,#5a6a7a 0px,#5a6a7a 4px,transparent 4px,transparent 8px); animation:ssc4-rivet 20s linear infinite; }
.scn-secret-ship-construction .fin { position:absolute; bottom:25%; left:15%; width:30px; height:50px; background:linear-gradient(180deg,#6a7a8a 0%,#4a5a6a 100%); border-radius:20% 80% 20% 80% / 30% 70% 30% 70%; transform:rotate(-10deg); animation:ssc4-fin 9s ease-in-out infinite alternate; }
@keyframes ssc4-sky { 0%{opacity:0.8}50%{opacity:1}100%{opacity:0.85} }
@keyframes ssc4-hull { 0%{transform:translateY(0) scaleX(1)}50%{transform:translateY(-3px) scaleX(1.02)}100%{transform:translateY(0) scaleX(1)} }
@keyframes ssc4-scaffold { 0%{transform:rotate(-5deg) scaleY(1)}50%{transform:rotate(-3deg) scaleY(0.95)}100%{transform:rotate(-5deg) scaleY(1)} }
@keyframes ssc4-worker { 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 ssc4-sun { 0%{opacity:0.6;transform:scale(1)}50%{opacity:1;transform:scale(1.1)}100%{opacity:0.7;transform:scale(0.95)} }
@keyframes ssc4-rivet { 0%{background-position:0 0}100%{background-position:100px 0} }
@keyframes ssc4-fin { 0%{transform:rotate(-10deg) scaleY(1)}50%{transform:rotate(-5deg) scaleY(0.9)}100%{transform:rotate(-10deg) scaleY(1)} }
/* end per-scene blocks */
