/* per-scene blocks (EXP step_scenes) */
.scn-churchyard-first-meeting { background: linear-gradient(180deg, #0f1a24 0%, #1c2b3a 50%, #2d3e4f 100%), radial-gradient(ellipse at 20% 10%, rgba(60, 80, 110, 0.4) 0%, transparent 50%); }
.scn-churchyard-first-meeting .bg-tombstones { position: absolute; inset: 40% 0 0 0; background: linear-gradient(180deg, #1a252a 0%, #0a151a 100%); border-radius: 30% 40% 0 0 / 60% 50% 0 0; box-shadow: inset 0 10px 25px rgba(0,0,0,0.6); animation: cf-tomb-bg 22s ease-in-out infinite alternate; }
.scn-churchyard-first-meeting .bg-church-wall { position: absolute; top: 0; left: 10%; right: 10%; height: 45%; background: linear-gradient(180deg, #3a3a3a 0%, #2a2a2a 100%); border-radius: 0 0 8% 8%; box-shadow: 0 8px 20px rgba(0,0,0,0.7); animation: cf-wall 14s ease-in-out infinite; }
.scn-churchyard-first-meeting .tombstone-a { position: absolute; bottom: 25%; left: 30%; width: 24px; height: 40px; background: linear-gradient(180deg, #8a9a8a 0%, #5a6a5a 100%); border-radius: 15% 15% 5% 5%; transform: rotate(-2deg); box-shadow: 0 4px 8px rgba(0,0,0,0.5); animation: cf-tomb-a 9s ease-in-out infinite; }
.scn-churchyard-first-meeting .tombstone-b { position: absolute; bottom: 22%; right: 35%; width: 20px; height: 36px; background: linear-gradient(180deg, #7a8a7a 0%, #4a5a4a 100%); border-radius: 12% 12% 4% 4%; transform: rotate(3deg); box-shadow: 0 4px 8px rgba(0,0,0,0.5); animation: cf-tomb-b 11s ease-in-out infinite; }
.scn-churchyard-first-meeting .figure-pip { position: absolute; bottom: 20%; left: 45%; width: 16px; height: 30px; background: linear-gradient(180deg, #4a5a6a 0%, #2a3a4a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cf-pip 5s ease-in-out infinite; }
.scn-churchyard-first-meeting .figure-convict { position: absolute; bottom: 18%; right: 45%; 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: cf-convict 7s ease-in-out infinite; }
.scn-churchyard-first-meeting .fog-layer-a { position: absolute; inset: 30% 0 0 0; background: linear-gradient(180deg, rgba(140, 160, 180, 0.15) 0%, transparent 100%); filter: blur(12px); animation: cf-fog-a 40s linear infinite; }
.scn-churchyard-first-meeting .fog-layer-b { position: absolute; inset: 40% 0 0 0; background: linear-gradient(180deg, rgba(120, 140, 160, 0.1) 0%, transparent 100%); filter: blur(10px); animation: cf-fog-b 55s linear infinite reverse; }
.scn-churchyard-first-meeting .moon-glow { position: absolute; top: 12%; left: 15%; width: 50px; height: 50px; background: radial-gradient(circle, rgba(220, 230, 255, 0.3) 0%, transparent 70%); border-radius: 50%; filter: blur(8px); animation: cf-moon 20s ease-in-out infinite alternate; }
@keyframes cf-tomb-bg { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(0); } }
@keyframes cf-wall { 0%,100% { opacity: 0.95; } 50% { opacity: 1; } }
@keyframes cf-tomb-a { 0% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(-1deg) translateY(-2px); } 100% { transform: rotate(-2deg) translateY(0); } }
@keyframes cf-tomb-b { 0% { transform: rotate(3deg) translateY(0); } 50% { transform: rotate(4deg) translateY(-3px); } 100% { transform: rotate(3deg) translateY(0); } }
@keyframes cf-pip { 0% { transform: translateX(0) rotate(-1deg); } 25% { transform: translateX(-3px) rotate(0.5deg); } 50% { transform: translateX(-6px) rotate(-1deg); } 75% { transform: translateX(-9px) rotate(0.5deg); } 100% { transform: translateX(-12px) rotate(0deg); } }
@keyframes cf-convict { 0% { transform: translateX(0) rotate(1deg); } 33% { transform: translateX(4px) rotate(-0.5deg); } 66% { transform: translateX(8px) rotate(1deg); } 100% { transform: translateX(12px) rotate(0deg); } }
@keyframes cf-fog-a { 0% { transform: translateX(-30px); opacity: 0.7; } 100% { transform: translateX(120vw); opacity: 0.9; } }
@keyframes cf-fog-b { 0% { transform: translateX(0); opacity: 0.6; } 100% { transform: translateX(-100vw); opacity: 0.8; } }
@keyframes cf-moon { 0% { opacity: 0.6; transform: scale(0.95); } 50% { opacity: 0.9; transform: scale(1.05); } 100% { opacity: 0.7; transform: scale(1); } }

.scn-convicts-terrible-demand { background: linear-gradient(180deg, #0a151a 0%, #1a2a2a 50%, #2a3a3a 100%), radial-gradient(ellipse at 80% 90%, rgba(40, 60, 50, 0.3) 0%, transparent 60%); }
.scn-convicts-terrible-demand .bg-marsh-deep { position: absolute; inset: 0 0 30% 0; background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%); border-radius: 40% 50% 0 0 / 30% 40% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,0.7); animation: cd-marsh 18s ease-in-out infinite alternate; }
.scn-convicts-terrible-demand .marsh-grass { position: absolute; bottom: 30%; left: 0; right: 0; height: 15%; background: linear-gradient(180deg, #2a3a2a 0%, transparent 100%); border-radius: 50% 50% 0 0 / 100% 100% 0 0; filter: blur(2px); animation: cd-grass 12s ease-in-out infinite; }
.scn-convicts-terrible-demand .convict-silhouette { position: absolute; bottom: 25%; left: 40%; width: 22px; height: 42px; background: linear-gradient(180deg, #0a0a0a 0%, #1a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cd-conv-body 8s ease-in-out infinite; }
.scn-convicts-terrible-demand .convict-arm { position: absolute; bottom: 35%; left: 52%; width: 25px; height: 6px; background: linear-gradient(90deg, #0a0a0a 0%, #1a1a1a 100%); border-radius: 20% 40% 40% 20%; transform-origin: left center; animation: cd-arm 3s ease-in-out infinite alternate; }
.scn-convicts-terrible-demand .pip-silhouette { position: absolute; bottom: 28%; right: 40%; width: 14px; height: 28px; background: linear-gradient(180deg, #3a4a5a 0%, #1a2a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cd-pip 4s ease-in-out infinite; }
.scn-convicts-terrible-demand .chain-link { position: absolute; bottom: 40%; left: 50%; width: 30px; height: 4px; background: linear-gradient(90deg, #5a5a5a 0%, #8a8a8a 50%, #5a5a5a 100%); border-radius: 10%; transform: translateX(-50%); animation: cd-chain 5s ease-in-out infinite; }
.scn-convicts-terrible-demand .mist-drift-a { position: absolute; bottom: 20%; left: 0; right: 0; height: 25%; background: linear-gradient(180deg, rgba(80, 100, 90, 0.2) 0%, transparent 100%); filter: blur(15px); animation: cd-mist-a 50s linear infinite; }
.scn-convicts-terrible-demand .mist-drift-b { position: absolute; bottom: 15%; left: 0; right: 0; height: 20%; background: linear-gradient(180deg, rgba(60, 80, 70, 0.15) 0%, transparent 100%); filter: blur(12px); animation: cd-mist-b 65s linear infinite reverse; animation-delay: 2s; }
@keyframes cd-marsh { 0% { transform: translateY(0); } 50% { transform: translateY(-5px); } 100% { transform: translateY(0); } }
@keyframes cd-grass { 0%,100% { transform: translateY(0); opacity: 0.8; } 50% { transform: translateY(-2px); opacity: 1; } }
@keyframes cd-conv-body { 0% { transform: translateX(0) rotate(-1deg); } 50% { transform: translateX(3px) rotate(1deg); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes cd-arm { 0% { transform: rotate(15deg); } 100% { transform: rotate(25deg); } }
@keyframes cd-pip { 0% { transform: translateX(0) scale(0.98); } 50% { transform: translateX(-4px) scale(1.02); } 100% { transform: translateX(0) scale(1); } }
@keyframes cd-chain { 0% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(5deg); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes cd-mist-a { 0% { transform: translateX(-20px); opacity: 0.5; } 100% { transform: translateX(100vw); opacity: 0.7; } }
@keyframes cd-mist-b { 0% { transform: translateX(0); opacity: 0.4; } 100% { transform: translateX(-100vw); opacity: 0.6; } }

.scn-forge-home-life { background: linear-gradient(180deg, #1a0f0a 0%, #2a1a14 50%, #3a2a1e 100%), radial-gradient(ellipse at 30% 50%, rgba(90, 50, 30, 0.5) 0%, transparent 60%); }
.scn-forge-home-life .bg-forge-interior { position: absolute; inset: 0; background: linear-gradient(180deg, #2a1a14 0%, #1a0f0a 100%); border-radius: 4%; box-shadow: inset 0 0 60px rgba(0,0,0,0.9); animation: fh-bg 20s ease-in-out infinite alternate; }
.scn-forge-home-life .hearth-structure { position: absolute; bottom: 25%; left: 50%; width: 100px; height: 40px; transform: translateX(-50%); background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 10% 10% 4% 4%; box-shadow: 0 8px 20px rgba(0,0,0,0.8); animation: fh-hearth 12s ease-in-out infinite; }
.scn-forge-home-life .forge-fire-core { position: absolute; bottom: 35%; left: 50%; width: 30px; height: 40px; transform: translateX(-50%); background: radial-gradient(ellipse at 50% 30%, #ffa050 0%, #c8553d 60%, transparent 90%); border-radius: 40% 40% 30% 30%; animation: fh-core 2s ease-in-out infinite alternate; }
.scn-forge-home-life .forge-fire-glow { position: absolute; bottom: 30%; left: 50%; width: 80px; height: 60px; transform: translateX(-50%); background: radial-gradient(ellipse at 50% 40%, rgba(255, 160, 80, 0.4) 0%, transparent 70%); filter: blur(10px); animation: fh-glow 3s ease-in-out infinite; }
.scn-forge-home-life .anvil { position: absolute; bottom: 40%; left: 30%; width: 50px; height: 20px; background: linear-gradient(180deg, #6a6a6a 0%, #4a4a4a 100%); border-radius: 10% 10% 5% 5%; transform: rotate(5deg); animation: fh-anvil 9s ease-in-out infinite; }
.scn-forge-home-life .hammer { position: absolute; bottom: 45%; right: 35%; width: 30px; height: 8px; background: linear-gradient(90deg, #8a5a3a 0%, #5a3a1a 100%); border-radius: 20%; transform-origin: left center; animation: fh-hammer 4s ease-in-out infinite; }
.scn-forge-home-life .figure-joe { position: absolute; bottom: 20%; left: 35%; width: 22px; height: 40px; background: linear-gradient(180deg, #3a4a5a 0%, #1a2a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: fh-joe 7s ease-in-out infinite; }
.scn-forge-home-life .figure-mrs-joe { position: absolute; bottom: 22%; right: 35%; width: 20px; height: 38px; background: linear-gradient(180deg, #5a3a4a 0%, #3a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: fh-mrs 8s ease-in-out infinite; }
.scn-forge-home-life .spark-a { position: absolute; top: 30%; left: 45%; width: 4px; height: 4px; background: radial-gradient(circle, #ffd080 0%, transparent 70%); border-radius: 50%; animation: fh-spark-a 1.5s ease-out infinite; }
.scn-forge-home-life .spark-b { position: absolute; top: 35%; right: 40%; width: 3px; height: 3px; background: radial-gradient(circle, #ffc060 0%, transparent 70%); border-radius: 50%; animation: fh-spark-b 2s ease-out infinite; animation-delay: 0.7s; }
@keyframes fh-bg { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.95; } }
@keyframes fh-hearth { 0%,100% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-3px); } }
@keyframes fh-core { 0% { transform: translateX(-50%) scale(0.9); opacity: 0.8; } 100% { transform: translateX(-50%) scale(1.1); opacity: 1; } }
@keyframes fh-glow { 0% { opacity: 0.6; transform: translateX(-50%) scale(0.95); } 50% { opacity: 0.9; transform: translateX(-50%) scale(1.05); } 100% { opacity: 0.7; transform: translateX(-50%) scale(1); } }
@keyframes fh-anvil { 0% { transform: rotate(5deg) translateY(0); } 50% { transform: rotate(4deg) translateY(-2px); } 100% { transform: rotate(5deg) translateY(0); } }
@keyframes fh-hammer { 0% { transform: rotate(-10deg); } 50% { transform: rotate(30deg); } 100% { transform: rotate(-10deg); } }
@keyframes fh-joe { 0% { transform: translateX(0) rotate(-1deg); } 50% { transform: translateX(5px) rotate(1deg); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes fh-mrs { 0% { transform: translateX(0) rotate(1deg); } 50% { transform: translateX(-4px) rotate(-1deg); } 100% { transform: translateX(0) rotate(1deg); } }
@keyframes fh-spark-a { 0% { transform: translate(0,0) scale(1); opacity: 1; } 100% { transform: translate(20px, -40px) scale(0); opacity: 0; } }
@keyframes fh-spark-b { 0% { transform: translate(0,0) scale(1); opacity: 1; } 100% { transform: translate(-15px, -35px) scale(0); opacity: 0; } }

.scn-item-joe-forge-file { background: linear-gradient(180deg, #2a1a14 0%, #3a2a1e 50%, #4a3a2e 100%), radial-gradient(ellipse at 70% 30%, rgba(80, 60, 40, 0.4) 0%, transparent 60%); }
.scn-item-joe-forge-file .bg-workbench { position: absolute; bottom: 30%; left: 10%; right: 10%; height: 30%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 4% 4% 2% 2%; box-shadow: 0 10px 25px rgba(0,0,0,0.8), inset 0 4px 10px rgba(0,0,0,0.5); animation: ij-bench 15s ease-in-out infinite alternate; }
.scn-item-joe-forge-file .file-tool { position: absolute; bottom: 40%; left: 50%; width: 60px; height: 6px; background: linear-gradient(90deg, #7a7a7a 0%, #9a9a9a 50%, #7a7a7a 100%); border-radius: 10%; transform: translateX(-50%) rotate(5deg); animation: ij-file 8s ease-in-out infinite; }
.scn-item-joe-forge-file .file-handle { position: absolute; bottom: 40%; left: 30%; width: 20px; height: 10px; background: linear-gradient(180deg, #8a5a3a 0%, #5a3a1a 100%); border-radius: 20% 40% 40% 20%; transform: rotate(5deg); animation: ij-handle 8s ease-in-out infinite; }
.scn-item-joe-forge-file .metal-shaving-a { position: absolute; bottom: 45%; left: 55%; width: 25px; height: 2px; background: linear-gradient(90deg, #d0d0d0 0%, #a0a0a0 100%); border-radius: 50%; transform: rotate(15deg); animation: ij-shaving-a 4s ease-out infinite; }
.scn-item-joe-forge-file .metal-shaving-b { position: absolute; bottom: 43%; right: 20%; width: 20px; height: 2px; background: linear-gradient(90deg, #c0c0c0 0%, #909090 100%); border-radius: 50%; transform: rotate(-10deg); animation: ij-shaving-b 5s ease-out infinite; animation-delay: 1s; }
.scn-item-joe-forge-file .hand-joe { position: absolute; bottom: 38%; right: 45%; width: 16px; height: 10px; background: linear-gradient(180deg, #c8a878 0%, #a08058 100%); border-radius: 40% 40% 30% 30%; animation: ij-hand 3s ease-in-out infinite; }
.scn-item-joe-forge-file .forge-light-shaft { position: absolute; top: 0; left: 50%; right: 0; height: 50%; background: linear-gradient(90deg, rgba(255, 180, 100, 0.15) 0%, transparent 100%); filter: blur(8px); transform: translateX(-50%); animation: ij-light 10s ease-in-out infinite alternate; }
.scn-item-joe-forge-file .dust-particle-a { position: absolute; top: 20%; left: 30%; width: 3px; height: 3px; background: rgba(200, 180, 140, 0.6); border-radius: 50%; filter: blur(1px); animation: ij-dust-a 12s linear infinite; }
.scn-item-joe-forge-file .dust-particle-b { position: absolute; top: 40%; right: 25%; width: 2px; height: 2px; background: rgba(180, 160, 120, 0.5); border-radius: 50%; filter: blur(1px); animation: ij-dust-b 15s linear infinite reverse; }
@keyframes ij-bench { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(0); } }
@keyframes ij-file { 0% { transform: translateX(-50%) rotate(5deg) translateY(0); } 50% { transform: translateX(-50%) rotate(4deg) translateY(-2px); } 100% { transform: translateX(-50%) rotate(5deg) translateY(0); } }
@keyframes ij-handle { 0% { transform: rotate(5deg) translateY(0); } 50% { transform: rotate(6deg) translateY(-1px); } 100% { transform: rotate(5deg) translateY(0); } }
@keyframes ij-shaving-a { 0% { transform: rotate(15deg) translate(0,0); opacity: 1; } 100% { transform: rotate(15deg) translate(30px, -20px); opacity: 0; } }
@keyframes ij-shaving-b { 0% { transform: rotate(-10deg) translate(0,0); opacity: 1; } 100% { transform: rotate(-10deg) translate(-25px, -15px); opacity: 0; } }
@keyframes ij-hand { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-3px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes ij-light { 0% { opacity: 0.3; } 50% { opacity: 0.7; } 100% { opacity: 0.4; } }
@keyframes ij-dust-a { 0% { transform: translate(0,0); } 100% { transform: translate(40px, 60px); } }
@keyframes ij-dust-b { 0% { transform: translate(0,0); } 100% { transform: translate(-50px, 40px); } }

.scn-pip-steals-for-escape { background: linear-gradient(180deg, #0c1a2a 0%, #1a2c3a 50%, #2a3c4a 100%), radial-gradient(ellipse at 80% 20%, #3a4c5a 0%, transparent 60%); }
.scn-pip-steals-for-escape .bg-night { position:absolute; inset:0; background: linear-gradient(180deg, rgba(20,40,60,.7) 0%, transparent 50%, rgba(10,25,40,.9) 100%); animation: pse-bg 25s ease-in-out infinite alternate; }
.scn-pip-steals-for-escape .wall { position:absolute; inset:0 0 0 30%; background: linear-gradient(90deg, #3a2e22 0%, #2a1e12 100%); box-shadow: inset -20px 0 30px rgba(0,0,0,.5); animation: pse-wall 15s ease-in-out infinite; }
.scn-pip-steals-for-escape .window-frame { position:absolute; top:15%; left:10%; width:120px; height:90px; background: #1a0e0a; border-radius: 4px; box-shadow: inset 0 0 20px rgba(0,0,0,.8), 0 0 15px rgba(0,0,0,.6); animation: pse-frame 8s ease-in-out infinite; }
.scn-pip-steals-for-escape .moonlight { position:absolute; top:16%; left:11%; width:118px; height:88px; background: radial-gradient(ellipse at 30% 40%, rgba(180,200,220,.4) 0%, transparent 70%); border-radius: 3px; animation: pse-moon 12s ease-in-out infinite alternate; }
.scn-pip-steals-for-escape .figure-pip { position:absolute; bottom:25%; left:45%; width:22px; height:50px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: pse-pip 5s ease-in-out infinite; }
.scn-pip-steals-for-escape .sack { position:absolute; bottom:30%; left:52%; width:28px; height:20px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform: rotate(-10deg); animation: pse-sack 7s ease-in-out infinite; }
.scn-pip-steals-for-escape .shelf { position:absolute; bottom:50%; left:65%; width:80px; height:10px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: pse-shelf 10s ease-in-out infinite; }
.scn-pip-steals-for-escape .jar-a { position:absolute; bottom:52%; left:68%; width:16px; height:24px; background: radial-gradient(ellipse at 30% 30%, rgba(220,200,180,.9) 0%, rgba(160,140,120,.7) 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; animation: pse-jar-a 9s ease-in-out infinite; }
.scn-pip-steals-for-escape .jar-b { position:absolute; bottom:52%; left:78%; width:14px; height:20px; background: radial-gradient(ellipse at 40% 40%, rgba(180,220,200,.8) 0%, rgba(120,160,140,.6) 100%); border-radius: 35% 35% 25% 25% / 45% 45% 35% 35%; animation: pse-jar-b 11s ease-in-out infinite; }
@keyframes pse-bg { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes pse-wall { 0%,100% { transform: translateX(0); } 50% { transform: translateX(-2px); } }
@keyframes pse-frame { 0%,100% { transform: translate(0, 0) rotate(0.5deg); } 50% { transform: translate(1px, -1px) rotate(-0.5deg); } }
@keyframes pse-moon { 0% { opacity: 0.3; transform: translate(0,0); } 50% { opacity: 0.6; transform: translate(1px, 1px); } 100% { opacity: 0.4; transform: translate(-1px, 0); } }
@keyframes pse-pip { 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 pse-sack { 0%,100% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-8deg) translateY(-3px); } }
@keyframes pse-shelf { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-1px); } }
@keyframes pse-jar-a { 0%,100% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(1.02); } }
@keyframes pse-jar-b { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(0); } }

.scn-marshes-second-meeting { background: linear-gradient(180deg, #2a3a4a 0%, #3a4a5a 50%, #4a5a6a 100%), radial-gradient(ellipse at 50% 100%, #5a6a7a 0%, transparent 80%); }
.scn-marshes-second-meeting .fog-deep { position:absolute; inset:0; background: linear-gradient(180deg, rgba(180,200,220,.15) 0%, rgba(140,160,180,.25) 100%); filter: blur(12px); animation: msm-fogdeep 40s linear infinite alternate; }
.scn-marshes-second-meeting .fog-mid { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, rgba(200,220,240,.1) 0%, transparent 100%); filter: blur(8px); animation: msm-fogmid 30s linear infinite alternate; }
.scn-marshes-second-meeting .water { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(0deg, #3a4a5a 0%, #2a3a4a 100%); border-radius: 50% 50% 0 0 / 30% 30% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,.5); animation: msm-water 20s ease-in-out infinite alternate; }
.scn-marshes-second-meeting .mound-a { position:absolute; bottom:30%; left:10%; width:100px; height:40px; background: linear-gradient(180deg, #4a5a3a 0%, #2a3a1a 100%); border-radius: 50% 50% 40% 40% / 80% 80% 20% 20%; animation: msm-mounda 25s ease-in-out infinite; }
.scn-marshes-second-meeting .mound-b { position:absolute; bottom:28%; right:15%; width:80px; height:35px; background: linear-gradient(180deg, #3a4a2a 0%, #1a2a0a 100%); border-radius: 40% 60% 30% 30% / 70% 70% 30% 30%; animation: msm-moundb 30s ease-in-out infinite; }
.scn-marshes-second-meeting .figure-magwitch { position:absolute; bottom:32%; left:30%; width:26px; height:60px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: msm-mag 7s ease-in-out infinite; }
.scn-marshes-second-meeting .figure-pip-marsh { position:absolute; bottom:33%; right:30%; width:20px; height:55px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: msm-pipm 6s ease-in-out infinite; }
.scn-marshes-second-meeting .reed-clump { position:absolute; bottom:30%; left:50%; width:8px; height:50px; background: linear-gradient(180deg, #3a5a3a 0%, #1a3a1a 100%); border-radius: 40% 40% 10% 10% / 60% 60% 20% 20%; animation: msm-reed 4s ease-in-out infinite; }
.scn-marshes-second-meeting .mist-patch { position:absolute; bottom:40%; right:10%; width:60px; height:20px; background: rgba(220,240,255,.2); border-radius: 50%; filter: blur(10px); animation: msm-mist 15s linear infinite; }
@keyframes msm-fogdeep { 0% { opacity: 0.2; transform: translateX(0); } 50% { opacity: 0.35; transform: translateX(10px); } 100% { opacity: 0.25; transform: translateX(-10px); } }
@keyframes msm-fogmid { 0% { opacity: 0.1; transform: translateY(0); } 50% { opacity: 0.2; transform: translateY(5px); } 100% { opacity: 0.15; transform: translateY(-5px); } }
@keyframes msm-water { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-4px) scaleX(1.02); } 100% { transform: translateY(0) scaleX(1); } }
@keyframes msm-mounda { 0%,100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-3px) rotate(1deg); } }
@keyframes msm-moundb { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(1.03); } 100% { transform: translateY(0) scale(1); } }
@keyframes msm-mag { 0% { transform: translateX(0) translateY(0) rotate(-1deg); } 25% { transform: translateX(-3px) translateY(-1px) rotate(0.5deg); } 50% { transform: translateX(-6px) translateY(0) rotate(-0.5deg); } 75% { transform: translateX(-9px) translateY(-1px) rotate(1deg); } 100% { transform: translateX(-12px) translateY(0) rotate(0); } }
@keyframes msm-pipm { 0% { transform: translateX(0) translateY(0) rotate(1deg); } 25% { transform: translateX(2px) translateY(-1px) rotate(-0.5deg); } 50% { transform: translateX(4px) translateY(0) rotate(0.5deg); } 75% { transform: translateX(6px) translateY(-1px) rotate(-1deg); } 100% { transform: translateX(8px) translateY(0) rotate(0); } }
@keyframes msm-reed { 0%,100% { transform: translateY(0) skew(0); } 50% { transform: translateY(-5px) skew(2deg); } }
@keyframes msm-mist { 0% { transform: translateX(0) scale(1); opacity: 0.1; } 50% { transform: translateX(20px) scale(1.2); opacity: 0.25; } 100% { transform: translateX(40px) scale(1); opacity: 0.1; } }

.scn-christmas-day-interrogation { background: linear-gradient(180deg, #3a2e22 0%, #2a1e12 50%, #1a120a 100%), radial-gradient(ellipse at 20% 80%, #4a3a2a 0%, transparent 70%); }
.scn-christmas-day-interrogation .room-bg { position:absolute; inset:0; background: linear-gradient(90deg, rgba(40,30,20,.8) 0%, rgba(30,20,10,.9) 100%); animation: cdi-room 20s ease-in-out infinite alternate; }
.scn-christmas-day-interrogation .fireplace { position:absolute; bottom:25%; left:20%; width:100px; height:80px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 8% 8% 0 0; box-shadow: inset 0 -10px 20px rgba(0,0,0,.6); animation: cdi-fireplace 12s ease-in-out infinite; }
.scn-christmas-day-interrogation .hearth { position:absolute; bottom:25%; left:19%; width:102px; height:10px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 4px; animation: cdi-hearth 10s ease-in-out infinite; }
.scn-christmas-day-interrogation .fire-glow { position:absolute; bottom:45%; left:22%; width:60px; height:40px; background: radial-gradient(ellipse at 50% 100%, rgba(255,160,80,.7) 0%, rgba(192,96,48,.3) 50%, transparent 80%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; filter: blur(8px); animation: cdi-glow 3s ease-in-out infinite alternate; }
.scn-christmas-day-interrogation .figure-mrs-joe { position:absolute; bottom:30%; right:25%; width:24px; height:65px; background: linear-gradient(180deg, #4a3a6a 0%, #2a1a4a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: cdi-mrsjoe 5s ease-in-out infinite; }
.scn-christmas-day-interrogation .figure-joe { position:absolute; bottom:30%; right:40%; width:26px; height:70px; background: linear-gradient(180deg, #3a4a5a 0%, #1a2a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: cdi-joe 6s ease-in-out infinite; }
.scn-christmas-day-interrogation .figure-pip-chair { position:absolute; bottom:28%; left:50%; width:18px; height:50px; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; animation: cdi-pip 4s ease-in-out infinite; }
.scn-christmas-day-interrogation .table { position:absolute; bottom:35%; left:45%; width:80px; height:12px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 10% 10% 5% 5% / 30% 30% 20% 20%; box-shadow: 0 6px 12px rgba(0,0,0,.5); animation: cdi-table 8s ease-in-out infinite; }
.scn-christmas-day-interrogation .book { position:absolute; bottom:38%; left:48%; width:24px; height:16px; background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%); border-radius: 10% 10% 5% 5% / 20% 20% 15% 15%; transform: rotate(15deg); animation: cdi-book 7s ease-in-out infinite; }
@keyframes cdi-room { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes cdi-fireplace { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes cdi-hearth { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-1px); } }
@keyframes cdi-glow { 0% { opacity: 0.6; transform: scale(1); } 50% { opacity: 1; transform: scale(1.1); } 100% { opacity: 0.7; transform: scale(0.95); } }
@keyframes cdi-mrsjoe { 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(0); } }
@keyframes cdi-joe { 0% { transform: translateX(0) translateY(0) rotate(1deg); } 25% { transform: translateX(-2px) translateY(-1px) rotate(-0.5deg); } 50% { transform: translateX(-4px) translateY(0) rotate(0.5deg); } 75% { transform: translateX(-6px) translateY(-1px) rotate(-1deg); } 100% { transform: translateX(-8px) translateY(0) rotate(0); } }
@keyframes cdi-pip { 0%,100% { transform: translateY(0) scale(1); } 50% { transform: translateY(-3px) scale(1.02); } }
@keyframes cdi-table { 0%,100% { transform: translateY(0) rotate(0.5deg); } 50% { transform: translateY(-1px) rotate(-0.5deg); } }
@keyframes cdi-book { 0% { transform: rotate(15deg) translateY(0); } 50% { transform: rotate(18deg) translateY(-2px); } 100% { transform: rotate(15deg) translateY(0); } }

.scn-item-soldiers-handcuffs { background: linear-gradient(180deg, #4a5a6a 0%, #3a4a5a 50%, #2a3a4a 100%), radial-gradient(ellipse at 50% 0%, #5a6a7a 0%, transparent 70%); }
.scn-item-soldiers-handcuffs .yard-bg { position:absolute; inset:0; background: linear-gradient(0deg, #3a4a3a 0%, #2a3a2a 100%); animation: ish-yard 25s ease-in-out infinite alternate; }
.scn-item-soldiers-handcuffs .fence { position:absolute; bottom:40%; left:0; right:0; height:60px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 2px; box-shadow: inset 0 10px 20px rgba(0,0,0,.4); animation: ish-fence 15s ease-in-out infinite; }
.scn-item-soldiers-handcuffs .post { position:absolute; bottom:40%; left:50%; width:12px; height:80px; background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%); border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%; transform: translateX(-50%); animation: ish-post 10s ease-in-out infinite; }
.scn-item-soldiers-handcuffs .soldier-a { position:absolute; bottom:42%; left:35%; width:22px; height:70px; background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: ish-soldiera 6s ease-in-out infinite; }
.scn-item-soldiers-handcuffs .soldier-b { position:absolute; bottom:42%; right:35%; width:22px; height:70px; background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: ish-soldierb 7s ease-in-out infinite; }
.scn-item-soldiers-handcuffs .handcuffs { position:absolute; bottom:50%; left:50%; width:30px; height:12px; background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform: translateX(-50%); animation: ish-cuffs 5s ease-in-out infinite; }
.scn-item-soldiers-handcuffs .chain { position:absolute; bottom:52%; left:50%; width:40px; height:4px; background: linear-gradient(90deg, #5a5a5a 0%, #7a7a7a 50%, #5a5a5a 100%); border-radius: 2px; transform: translateX(-50%); animation: ish-chain 3s ease-in-out infinite; }
.scn-item-soldiers-handcuffs .toolbox { position:absolute; bottom:30%; left:60%; width:40px; height:20px; background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%); border-radius: 10% 10% 5% 5% / 20% 20% 15% 15%; animation: ish-toolbox 8s ease-in-out infinite; }
.scn-item-soldiers-handcuffs .puddle { position:absolute; bottom:30%; right:20%; width:50px; height:10px; background: radial-gradient(ellipse at 50% 100%, rgba(80,100,120,.6) 0%, transparent 70%); border-radius: 50%; filter: blur(4px); animation: ish-puddle 12s ease-in-out infinite; }
@keyframes ish-yard { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.95; } }
@keyframes ish-fence { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes ish-post { 0%,100% { transform: translateX(-50%) rotate(0); } 50% { transform: translateX(-50%) rotate(1deg); } }
@keyframes ish-soldiera { 0% { transform: translateX(0) translateY(0) rotate(-1deg); } 25% { transform: translateX(2px) translateY(-1px) rotate(0.5deg); } 50% { transform: translateX(4px) translateY(0) rotate(-0.5deg); } 75% { transform: translateX(6px) translateY(-1px) rotate(1deg); } 100% { transform: translateX(8px) translateY(0) rotate(0); } }
@keyframes ish-soldierb { 0% { transform: translateX(0) translateY(0) rotate(1deg); } 25% { transform: translateX(-2px) translateY(-1px) rotate(-0.5deg); } 50% { transform: translateX(-4px) translateY(0) rotate(0.5deg); } 75% { transform: translateX(-6px) translateY(-1px) rotate(-1deg); } 100% { transform: translateX(-8px) translateY(0) rotate(0); } }
@keyframes ish-cuffs { 0%,100% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-3px); } }
@keyframes ish-chain { 0% { opacity: 0.7; transform: translateX(-50%) scaleX(1); } 50% { opacity: 1; transform: translateX(-50%) scaleX(1.05); } 100% { opacity: 0.7; transform: translateX(-50%) scaleX(1); } }
@keyframes ish-toolbox { 0%,100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-2px) rotate(2deg); } }
@keyframes ish-puddle { 0% { opacity: 0.4; transform: scale(1); } 50% { opacity: 0.7; transform: scale(1.1); } 100% { opacity: 0.4; transform: scale(1); } }

.scn-capture-on-the-marshes { background: linear-gradient(180deg, #1c2d3a 0%, #2a3c4a 40%, #3a4d5a 100%), radial-gradient(ellipse at 80% 20%, rgba(90, 120, 140, 0.3) 0%, transparent 50%); position: relative; overflow: hidden; }
.scn-capture-on-the-marshes .marsh-sky { position: absolute; inset: 0 0 60% 0; background: linear-gradient(180deg, #2d4050 0%, #3a5265 100%); animation: cm-sky 25s ease-in-out infinite alternate; }
.scn-capture-on-the-marshes .marsh-fog { position: absolute; inset: 30% 0 40% 0; background: linear-gradient(180deg, rgba(120, 150, 170, 0.15) 0%, rgba(90, 120, 140, 0.3) 50%, transparent 100%); filter: blur(12px); animation: cm-fog 40s linear infinite; }
.scn-capture-on-the-marshes .marsh-ground { position: absolute; bottom: 0; left: 0; right: 0; height: 45%; background: linear-gradient(180deg, #2a352a 0%, #1a251a 100%); border-radius: 50% 50% 0 0 / 30% 30% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,0.5); animation: cm-ground 15s ease-in-out infinite; }
.scn-capture-on-the-marshes .marsh-ditch { position: absolute; bottom: 10%; left: 20%; width: 60%; height: 15%; background: linear-gradient(180deg, #1a252a 0%, #0a151a 100%); border-radius: 50%; filter: blur(4px); animation: cm-ditch 12s ease-in-out infinite; }
.scn-capture-on-the-marshes .marsh-figure { position: absolute; bottom: 22%; left: 35%; width: 14px; 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: cm-figure 8s ease-in-out infinite; }
.scn-capture-on-the-marshes .marsh-soldier-1 { position: absolute; bottom: 23%; left: 55%; width: 12px; height: 34px; background: linear-gradient(180deg, #2a352a 0%, #1a251a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; animation: cm-soldier1 7s ease-in-out infinite; }
.scn-capture-on-the-marshes .marsh-soldier-2 { position: absolute; bottom: 24%; left: 65%; width: 12px; height: 32px; background: linear-gradient(180deg, #2a352a 0%, #1a251a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; animation: cm-soldier2 9s ease-in-out infinite; }
.scn-capture-on-the-marshes .marsh-gibbet { position: absolute; top: 30%; right: 15%; width: 4px; height: 40px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); transform: rotate(2deg); animation: cm-gibbet 30s ease-in-out infinite; }
.scn-capture-on-the-marshes .marsh-mist { position: absolute; bottom: 15%; left: 0; right: 0; height: 20%; background: linear-gradient(90deg, transparent 0%, rgba(150, 180, 200, 0.1) 50%, transparent 100%); filter: blur(8px); animation: cm-mist 60s linear infinite; }
@keyframes cm-sky { 0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.8; } }
@keyframes cm-fog { 0% { transform: translateX(-10%); opacity: 0.2; } 50% { transform: translateX(0); opacity: 0.4; } 100% { transform: translateX(10%); opacity: 0.2; } }
@keyframes cm-ground { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
@keyframes cm-ditch { 0% { transform: scaleY(1); opacity: 0.6; } 50% { transform: scaleY(1.05); opacity: 0.8; } 100% { transform: scaleY(1); opacity: 0.6; } }
@keyframes cm-figure { 0% { transform: translateX(0) rotate(-1deg); } 33% { transform: translateX(-8px) rotate(1deg); } 66% { transform: translateX(-16px) rotate(-1deg); } 100% { transform: translateX(-24px) rotate(0); } }
@keyframes cm-soldier1 { 0%,100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-2px) rotate(1deg); } }
@keyframes cm-soldier2 { 0%,100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-1px) rotate(-1deg); } }
@keyframes cm-gibbet { 0% { transform: rotate(2deg) translateY(0); } 50% { transform: rotate(1deg) translateY(-1px); } 100% { transform: rotate(2deg) translateY(0); } }
@keyframes cm-mist { 0% { transform: translateX(-100%); } 100% { transform: translateX(100%); } }

.scn-convicts-confession { background: linear-gradient(180deg, #0a0a14 0%, #1a1a24 50%, #0a0a14 100%), radial-gradient(circle at 20% 30%, #1a1a2a 0%, transparent 70%); position: relative; overflow: hidden; }
.scn-convicts-confession .cell-wall { position: absolute; inset: 0; background: linear-gradient(90deg, #1a1820 0%, #25222a 30%, #1a1820 100%); box-shadow: inset 0 0 60px rgba(0,0,0,0.7); animation: cc-wall 20s ease-in-out infinite; }
.scn-convicts-confession .cell-floor { position: absolute; bottom: 0; left: 0; right: 0; height: 25%; background: linear-gradient(180deg, #25201a 0%, #1a1510 100%); border-radius: 10% 10% 0 0 / 40% 40% 0 0; animation: cc-floor 15s ease-in-out infinite; }
.scn-convicts-confession .cell-window { position: absolute; top: 15%; right: 10%; width: 30px; height: 20px; background: radial-gradient(ellipse at 30% 50%, #3a4a5a 0%, #1a2a3a 70%); border-radius: 10% 5% 5% 10%; box-shadow: inset -2px 0 8px rgba(0,0,0,0.8); animation: cc-window 10s ease-in-out infinite; }
.scn-convicts-confession .cell-chain { position: absolute; bottom: 40%; left: 50%; width: 2px; height: 50px; background: linear-gradient(180deg, #3a3a3a 0%, #5a5a5a 50%, #3a3a3a 100%); transform: translateX(-50%) rotate(15deg); transform-origin: top center; animation: cc-chain 5s ease-in-out infinite; }
.scn-convicts-confession .convict-silhouette { position: absolute; bottom: 25%; left: 40%; width: 20px; height: 45px; background: linear-gradient(180deg, #1a1510 0%, #0a0500 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: cc-convict 8s ease-in-out infinite; }
.scn-convicts-confession .convict-hands { position: absolute; bottom: 40%; left: 38%; width: 24px; height: 10px; background: linear-gradient(90deg, #1a1510 0%, #0a0500 100%); border-radius: 30%; transform-origin: center; animation: cc-hands 3s ease-in-out infinite; }
.scn-convicts-confession .confession-light { position: absolute; top: 20%; left: 30%; width: 60px; height: 40px; background: radial-gradient(ellipse at 30% 50%, rgba(90, 80, 60, 0.4) 0%, transparent 70%); filter: blur(10px); animation: cc-light 6s ease-in-out infinite alternate; }
.scn-convicts-confession .cell-bar-shadow { position: absolute; top: 0; left: 20%; width: 4px; height: 100%; background: linear-gradient(90deg, rgba(0,0,0,0.6) 0%, transparent 100%); filter: blur(2px); animation: cc-bar 25s linear infinite; }
@keyframes cc-wall { 0% { background-position: 0% 0%; } 50% { background-position: 100% 50%; } 100% { background-position: 0% 100%; } }
@keyframes cc-floor { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes cc-window { 0% { opacity: 0.3; box-shadow: inset -2px 0 8px rgba(0,0,0,0.8); } 50% { opacity: 0.6; box-shadow: inset -2px 0 12px rgba(30,40,50,0.5); } 100% { opacity: 0.3; box-shadow: inset -2px 0 8px rgba(0,0,0,0.8); } }
@keyframes cc-chain { 0%,100% { transform: translateX(-50%) rotate(15deg); } 50% { transform: translateX(-50%) rotate(10deg); } }
@keyframes cc-convict { 0% { transform: translateX(0) scale(1); } 50% { transform: translateX(5px) scale(1.02); } 100% { transform: translateX(0) scale(1); } }
@keyframes cc-hands { 0%,100% { transform: rotate(0deg) scaleY(1); } 50% { transform: rotate(5deg) scaleY(1.1); } }
@keyframes cc-light { 0% { opacity: 0.2; transform: scale(1); } 100% { opacity: 0.5; transform: scale(1.1); } }
@keyframes cc-bar { 0% { transform: translateX(0); } 100% { transform: translateX(30px); } }

.scn-satis-house-first-visit { background: linear-gradient(180deg, #3a4a5a 0%, #2a3a4a 30%, #4a5a6a 100%), radial-gradient(ellipse at 50% 0%, rgba(90, 110, 130, 0.4) 0%, transparent 60%); position: relative; overflow: hidden; }
.scn-satis-house-first-visit .satis-facade { position: absolute; bottom: 20%; left: 50%; width: 140px; height: 100px; transform: translateX(-50%); background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 5% 5% 0 0; box-shadow: 0 10px 30px rgba(0,0,0,0.5); animation: sh-house 12s ease-in-out infinite; }
.scn-satis-house-first-visit .satis-roof { position: absolute; bottom: 43%; left: 50%; width: 160px; height: 25px; transform: translateX(-50%); background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); border-radius: 10% 10% 0 0; animation: sh-roof 15s ease-in-out infinite; }
.scn-satis-house-first-visit .satis-window-1 { position: absolute; bottom: 55%; left: 42%; width: 18px; height: 24px; background: radial-gradient(circle at 30% 40%, #a09070 0%, #705a40 70%); border-radius: 15%; box-shadow: 0 0 20px 5px rgba(160, 140, 100, 0.5); animation: sh-window1 8s ease-in-out infinite; }
.scn-satis-house-first-visit .satis-window-2 { position: absolute; bottom: 55%; right: 42%; width: 18px; height: 24px; background: radial-gradient(circle at 70% 40%, #a09070 0%, #705a40 70%); border-radius: 15%; box-shadow: 0 0 20px 5px rgba(160, 140, 100, 0.5); animation: sh-window2 10s ease-in-out infinite; }
.scn-satis-house-first-visit .satis-door { position: absolute; bottom: 20%; left: 50%; width: 30px; height: 50px; transform: translateX(-50%); background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 10% 10% 0 0; animation: sh-door 9s ease-in-out infinite; }
.scn-satis-house-first-visit .satis-steps { position: absolute; bottom: 20%; left: 50%; width: 40px; height: 10px; transform: translateX(-50%); background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 20% 20% 0 0; animation: sh-steps 7s ease-in-out infinite; }
.scn-satis-house-first-visit .satis-ivy { position: absolute; bottom: 43%; left: 55%; width: 40px; height: 50px; background: linear-gradient(90deg, #2a3a2a 0%, #1a2a1a 100%); border-radius: 30% 0 0 30%; filter: blur(1px); animation: sh-ivy 25s ease-in-out infinite; }
.scn-satis-house-first-visit .satis-gate { position: absolute; bottom: 25%; left: 30%; width: 40px; height: 30px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 5%; transform: rotate(5deg); animation: sh-gate 20s ease-in-out infinite; }
.scn-satis-house-first-visit .satis-garden { position: absolute; bottom: 0; left: 0; right: 0; height: 20%; background: linear-gradient(180deg, #2a352a 0%, #1a251a 100%); border-radius: 50% 50% 0 0 / 30% 30% 0 0; animation: sh-garden 18s ease-in-out infinite; }
@keyframes sh-house { 0%,100% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-3px); } }
@keyframes sh-roof { 0% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.01); } 100% { transform: translateX(-50%) scale(1); } }
@keyframes sh-window1 { 0% { opacity: 0.7; box-shadow: 0 0 15px 3px rgba(160,140,100,0.5); } 50% { opacity: 1; box-shadow: 0 0 30px 8px rgba(200,180,120,0.7); } 100% { opacity: 0.7; box-shadow: 0 0 15px 3px rgba(160,140,100,0.5); } }
@keyframes sh-window2 { 0% { opacity: 0.6; } 50% { opacity: 0.9; } 100% { opacity: 0.6; } }
@keyframes sh-door { 0%,100% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(0.98); } }
@keyframes sh-steps { 0%,100% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-1px); } }
@keyframes sh-ivy { 0% { transform: translateX(0) scale(1); } 50% { transform: translateX(-5px) scale(1.05); } 100% { transform: translateX(0) scale(1); } }
@keyframes sh-gate { 0% { transform: rotate(5deg); } 50% { transform: rotate(4deg); } 100% { transform: rotate(5deg); } }
@keyframes sh-garden { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }

.scn-estellas-scornful-game { background: linear-gradient(180deg, #2a2230 0%, #3a2a40 50%, #2a2230 100%), radial-gradient(circle at 20% 80%, #4a3a50 0%, transparent 60%); position: relative; overflow: hidden; }
.scn-estellas-scornful-game .game-room-wall { position: absolute; inset: 0; background: linear-gradient(180deg, #3a3240 0%, #2a2230 100%); box-shadow: inset 0 0 50px rgba(0,0,0,0.6); animation: eg-wall 30s linear infinite; }
.scn-estellas-scornful-game .game-room-floor { position: absolute; bottom: 0; left: 0; right: 0; height: 30%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 20% 20% 0 0 / 40% 40% 0 0; animation: eg-floor 15s ease-in-out infinite; }
.scn-estellas-scornful-game .game-fireplace { position: absolute; bottom: 30%; left: 10%; width: 50px; height: 40px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 10% 10% 0 0; animation: eg-fireplace 10s ease-in-out infinite; }
.scn-estellas-scornful-game .game-table { position: absolute; bottom: 35%; left: 50%; width: 80px; height: 20px; transform: translateX(-50%); background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 10%; animation: eg-table 8s ease-in-out infinite; }
.scn-estellas-scornful-game .estella-figure { position: absolute; bottom: 30%; right: 30%; width: 16px; height: 40px; background: linear-gradient(180deg, #5a3a5a 0%, #3a1a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: eg-estella 7s ease-in-out infinite; }
.scn-estellas-scornful-game .pip-figure { position: absolute; bottom: 30%; left: 30%; width: 14px; height: 38px; background: linear-gradient(180deg, #3a4a3a 0%, #1a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: eg-pip 9s ease-in-out infinite; }
.scn-estellas-scornful-game .game-cards { position: absolute; bottom: 38%; left: 50%; width: 30px; height: 8px; background: linear-gradient(180deg, #f8f0e8 0%, #d8c8b8 100%); border-radius: 10%; transform: translateX(-50%) rotate(5deg); animation: eg-cards 5s ease-in-out infinite; }
.scn-estellas-scornful-game .game-candle { position: absolute; bottom: 50%; left: 50%; width: 6px; height: 25px; background: linear-gradient(180deg, #f8e8a0 0%, #d8c880 50%, #b8a860 100%); border-radius: 30%; transform: translateX(-50%); box-shadow: 0 0 20px 5px rgba(248, 232, 160, 0.6); animation: eg-candle 3s ease-in-out infinite alternate; }
.scn-estellas-scornful-game .game-shadow { position: absolute; bottom: 30%; left: 0; right: 0; height: 20%; background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.4) 0%, transparent 70%); filter: blur(5px); animation: eg-shadow 12s ease-in-out infinite; }
@keyframes eg-wall { 0% { background-position: 0% 0%; } 100% { background-position: 100% 100%; } }
@keyframes eg-floor { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
@keyframes eg-fireplace { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes eg-table { 0%,100% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(0.5deg); } }
@keyframes eg-estella { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-5px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes eg-pip { 0% { transform: translateX(0) scale(1); } 50% { transform: translateX(3px) scale(0.98); } 100% { transform: translateX(0) scale(1); } }
@keyframes eg-cards { 0%,100% { transform: translateX(-50%) rotate(5deg) translateY(0); } 50% { transform: translateX(-50%) rotate(7deg) translateY(-2px); } }
@keyframes eg-candle { 0% { box-shadow: 0 0 15px 3px rgba(248,232,160,0.5); opacity: 0.9; } 100% { box-shadow: 0 0 30px 10px rgba(255,240,180,0.8); opacity: 1; } }
@keyframes eg-shadow { 0% { opacity: 0.3; transform: scale(1); } 50% { opacity: 0.5; transform: scale(1.05); } 100% { opacity: 0.3; transform: scale(1); } }

.scn-forge-confession-to-joe { background: linear-gradient(180deg, #1a0f0f 0%, #2c1818 30%, #3a1f1f 70%, #1a0f0f 100%), radial-gradient(ellipse at 80% 20%, #5a2a1a 0%, transparent 40%); }
.scn-forge-confession-to-joe .anvil { position:absolute; bottom:30%; left:50%; width:100px; height:40px; transform:translateX(-50%); background: linear-gradient(180deg, #4a4a4a 0%, #2a2a2a 100%); border-radius: 10% 10% 40% 40% / 20% 20% 60% 60%; box-shadow: 0 8px 16px rgba(0,0,0,.6), inset 0 -4px 8px rgba(255,255,255,.1); animation: fc-anvil 7s ease-in-out infinite; }
.scn-forge-confession-to-joe .forge-glow { position:absolute; bottom:35%; left:30%; width:60px; height:60px; background: radial-gradient(circle, #ff8c42 0%, #c8553d 40%, transparent 70%); border-radius:50%; box-shadow: 0 0 40px 20px rgba(200,85,61,.5); animation: fc-glow 3s ease-in-out infinite alternate; }
.scn-forge-confession-to-joe .hammer { position:absolute; bottom:50%; left:60%; width:30px; height:60px; background: linear-gradient(90deg, #5a3a2a 0%, #3a2a1a 100%); border-radius: 30% 10% 10% 30% / 50% 20% 20% 50%; transform-origin: bottom center; animation: fc-hammer 2s ease-in-out infinite; }
.scn-forge-confession-to-joe .spark-a { position:absolute; bottom:38%; left:32%; width:4px; height:4px; background: radial-gradient(circle, #ffd42a 0%, #ff8c42 100%); border-radius:50%; animation: fc-spark-a 1.2s ease-out infinite; }
.scn-forge-confession-to-joe .spark-b { position:absolute; bottom:40%; left:28%; width:3px; height:3px; background: radial-gradient(circle, #ffd42a 0%, #ff8c42 100%); border-radius:50%; animation: fc-spark-b 1.5s ease-out infinite; }
.scn-forge-confession-to-joe .spark-c { position:absolute; bottom:36%; left:34%; width:5px; height:5px; background: radial-gradient(circle, #ffd42a 0%, #ff8c42 100%); border-radius:50%; animation: fc-spark-c 1s ease-out infinite; }
.scn-forge-confession-to-joe .steam-a { position:absolute; bottom:25%; left:35%; width:30px; height:20px; background: linear-gradient(180deg, rgba(255,255,255,.3) 0%, transparent 100%); border-radius:50%; filter: blur(4px); animation: fc-steam-a 8s ease-out infinite; }
.scn-forge-confession-to-joe .steam-b { position:absolute; bottom:20%; left:40%; width:25px; height:15px; background: linear-gradient(180deg, rgba(255,255,255,.2) 0%, transparent 100%); border-radius:50%; filter: blur(3px); animation: fc-steam-b 10s ease-out infinite; }
.scn-forge-confession-to-joe .shadow-figure { position:absolute; bottom:20%; right:20%; width:30px; height:70px; background: linear-gradient(180deg, transparent 0%, #1a0a0a 30%, #0a0a0a 100%); border-radius: 40% 40% 10% 10% / 60% 60% 20% 20%; animation: fc-shadow 12s ease-in-out infinite; }
@keyframes fc-anvil { 0% { transform: translateX(-50%) translateY(0) rotate(0deg); } 33% { transform: translateX(-50%) translateY(-2px) rotate(.5deg); } 66% { transform: translateX(-50%) translateY(1px) rotate(-.5deg); } 100% { transform: translateX(-50%) translateY(0) rotate(0deg); } }
@keyframes fc-glow { 0% { opacity: 0.7; transform: scale(1); box-shadow: 0 0 40px 20px rgba(200,85,61,.5); } 50% { opacity: 1; transform: scale(1.1); box-shadow: 0 0 60px 30px rgba(255,140,66,.6); } 100% { opacity: 0.8; transform: scale(0.95); box-shadow: 0 0 35px 15px rgba(200,85,61,.4); } }
@keyframes fc-hammer { 0% { transform: rotate(0deg); } 30% { transform: rotate(60deg); } 70% { transform: rotate(-10deg); } 100% { transform: rotate(0deg); } }
@keyframes fc-spark-a { 0% { transform: translate(0,0) scale(1); opacity:1; } 100% { transform: translate(20px, -40px) scale(0); opacity:0; } }
@keyframes fc-spark-b { 0% { transform: translate(0,0) scale(1); opacity:1; } 100% { transform: translate(15px, -35px) scale(0); opacity:0; } }
@keyframes fc-spark-c { 0% { transform: translate(0,0) scale(1); opacity:1; } 100% { transform: translate(25px, -30px) scale(0); opacity:0; } }
@keyframes fc-steam-a { 0% { transform: translateY(0) scale(1); opacity:0; } 20% { opacity:0.5; } 100% { transform: translateY(-80px) scale(1.5); opacity:0; } }
@keyframes fc-steam-b { 0% { transform: translateY(0) scale(1); opacity:0; } 30% { opacity:0.4; } 100% { transform: translateY(-100px) scale(1.8); opacity:0; } }
@keyframes fc-shadow { 0% { transform: translateX(0) translateY(0); opacity:0.8; } 50% { transform: translateX(-5px) translateY(-3px); opacity:1; } 100% { transform: translateX(0) translateY(0); opacity:0.8; } }

.scn-jagger-announces-expectations { background: linear-gradient(180deg, #2c2c3a 0%, #3a3a4a 30%, #2a2a3a 70%, #1a1a2a 100%), radial-gradient(ellipse at 90% 10%, #4a4a6a 0%, transparent 50%); }
.scn-jagger-announces-expectations .desk { position:absolute; bottom:20%; left:10%; right:10%; height:30%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 4px 4px 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.5), 0 8px 16px rgba(0,0,0,.4); animation: je-desk 20s ease-in-out infinite alternate; }
.scn-jagger-announces-expectations .ledger { position:absolute; bottom:35%; left:50%; width:120px; height:80px; transform:translateX(-50%); background: linear-gradient(180deg, #f5f0e6 0%, #e8dfd0 100%); border-radius:2px; box-shadow: 0 4px 12px rgba(0,0,0,.3); animation: je-ledger 15s ease-in-out infinite; }
.scn-jagger-announces-expectations .quill { position:absolute; bottom:38%; left:55%; width:40px; height:6px; background: linear-gradient(90deg, #8b7355 0%, #5d4a30 100%); border-radius: 50% 10% 10% 50% / 50% 50% 50% 50%; transform-origin: left center; animation: je-quill 5s ease-in-out infinite; }
.scn-jagger-announces-expectations .inkwell { position:absolute; bottom:33%; right:25%; width:20px; height:25px; background: radial-gradient(ellipse at 30% 30%, #1a1a2a 0%, #0a0a1a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; box-shadow: inset 0 -4px 8px rgba(255,255,255,.1); animation: je-inkwell 8s ease-in-out infinite; }
.scn-jagger-announces-expectations .hand-hand { position:absolute; bottom:36%; left:48%; width:30px; height:20px; background: linear-gradient(180deg, #e8c8a8 0%, #d0a888 100%); border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%; animation: je-hand 7s ease-in-out infinite; }
.scn-jagger-announces-expectations .hand-sleeve { position:absolute; bottom:40%; left:45%; width:40px; height:25px; background: linear-gradient(180deg, #4a3a6a 0%, #3a2a5a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; animation: je-sleeve 7s ease-in-out infinite; }
.scn-jagger-announces-expectations .window-light { position:absolute; top:15%; right:15%; width:80px; height:60px; background: linear-gradient(180deg, rgba(255,248,220,0.4) 0%, rgba(255,248,220,0.1) 100%); border-radius: 10%; filter: blur(2px); animation: je-window 25s linear infinite alternate; }
.scn-jagger-announces-expectations .spec-dust.spec-a { position:absolute; top:30%; left:20%; width:4px; height:4px; background: radial-gradient(circle, rgba(255,248,220,0.8) 0%, transparent 70%); border-radius:50%; animation: je-dust-a 12s linear infinite; }
.scn-jagger-announces-expectations .spec-dust.spec-b { position:absolute; top:40%; left:70%; width:3px; height:3px; background: radial-gradient(circle, rgba(255,248,220,0.6) 0%, transparent 70%); border-radius:50%; animation: je-dust-b 15s linear infinite; }
@keyframes je-desk { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes je-ledger { 0% { transform: translateX(-50%) rotate(0deg); } 33% { transform: translateX(-50%) rotate(0.5deg); } 66% { transform: translateX(-50%) rotate(-0.5deg); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes je-quill { 0% { transform: rotate(0deg); } 25% { transform: rotate(5deg); } 75% { transform: rotate(-3deg); } 100% { transform: rotate(0deg); } }
@keyframes je-inkwell { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(1.02); } 100% { transform: translateY(0) scale(1); } }
@keyframes je-hand { 0% { transform: translate(0,0); } 50% { transform: translate(3px, -1px); } 100% { transform: translate(0,0); } }
@keyframes je-sleeve { 0% { transform: translate(0,0); } 50% { transform: translate(2px, -1px); } 100% { transform: translate(0,0); } }
@keyframes je-window { 0% { opacity: 0.3; } 50% { opacity: 0.7; } 100% { opacity: 0.3; } }
@keyframes je-dust-a { 0% { transform: translate(0,0); opacity:0; } 10% { opacity:1; } 100% { transform: translate(40px, 60px); opacity:0; } }
@keyframes je-dust-b { 0% { transform: translate(0,0); opacity:0; } 20% { opacity:0.8; } 100% { transform: translate(-30px, 50px); opacity:0; } }

.scn-goodbye-to-joe-and-biddy { background: linear-gradient(180deg, #a8c0d8 0%, #7890a8 40%, #506078 80%, #304050 100%), radial-gradient(ellipse at 50% 0%, #d8e8f8 0%, transparent 60%); }
.scn-goodbye-to-joe-and-biddy .road { position:absolute; bottom:0; left:20%; right:20%; height:25%; background: linear-gradient(180deg, #5a4a3a 0%, #4a3a2a 100%); border-radius: 50% 50% 0 0 / 100% 100% 0 0; animation: gb-road 30s linear infinite alternate; }
.scn-goodbye-to-joe-and-biddy .gate { position:absolute; bottom:25%; left:50%; width:10px; height:50px; transform:translateX(-50%); background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%); border-radius:2px; box-shadow: 4px 0 0 #6a5a4a, -4px 0 0 #6a5a4a; animation: gb-gate 10s ease-in-out infinite; }
.scn-goodbye-to-joe-and-biddy .figure-joe { position:absolute; bottom:30%; left:40%; width:25px; height:60px; background: linear-gradient(180deg, #3a5a4a 0%, #2a4a3a 100%); border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%; animation: gb-joe 8s ease-in-out infinite; }
.scn-goodbye-to-joe-and-biddy .figure-biddy { position:absolute; bottom:30%; left:50%; width:22px; height:55px; background: linear-gradient(180deg, #6a4a5a 0%, #5a3a4a 100%); border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%; animation: gb-biddy 8s ease-in-out infinite; }
.scn-goodbye-to-joe-and-biddy .figure-pip { position:absolute; bottom:30%; left:60%; width:20px; height:50px; background: linear-gradient(180deg, #4a5a6a 0%, #3a4a5a 100%); border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%; animation: gb-pip 8s ease-in-out infinite; }
.scn-goodbye-to-joe-and-biddy .tree-a { position:absolute; bottom:30%; left:15%; width:30px; height:70px; background: linear-gradient(180deg, #2a4a2a 0%, #1a3a1a 100%); border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%; animation: gb-tree-a 12s ease-in-out infinite; }
.scn-goodbye-to-joe-and-biddy .tree-b { position:absolute; bottom:30%; right:15%; width:25px; height:65px; background: linear-gradient(180deg, #2a4a2a 0%, #1a3a1a 100%); border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%; animation: gb-tree-b 15s ease-in-out infinite; }
.scn-goodbye-to-joe-and-biddy .sky-grad { position:absolute; top:0; left:0; right:0; height:60%; background: linear-gradient(180deg, rgba(216,232,248,0.6) 0%, rgba(168,192,216,0.3) 100%); animation: gb-sky 40s linear infinite alternate; }
@keyframes gb-road { 0% { background-position: 0% 0%; } 100% { background-position: 100% 0%; } }
@keyframes gb-gate { 0% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(2deg); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes gb-joe { 0% { transform: translateY(0) rotate(0deg); } 33% { transform: translateY(-2px) rotate(-1deg); } 66% { transform: translateY(1px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes gb-biddy { 0% { transform: translateY(0) rotate(0deg); } 33% { transform: translateY(-3px) rotate(1deg); } 66% { transform: translateY(0) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes gb-pip { 0% { transform: translateY(0) rotate(0deg); } 33% { transform: translateY(-4px) rotate(2deg); } 66% { transform: translateY(-1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes gb-tree-a { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-5px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes gb-tree-b { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes gb-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.8; } }

.scn-london-meeting-herbert { background: linear-gradient(180deg, #3a3a4a 0%, #4a4a5a 30%, #3a3a4a 70%, #2a2a3a 100%), radial-gradient(ellipse at 30% 70%, #5a5a7a 0%, transparent 50%); }
.scn-london-meeting-herbert .table { position:absolute; bottom:25%; left:15%; right:15%; height:25%; background: linear-gradient(180deg, #5a4a3a 0%, #4a3a2a 100%); border-radius: 10px 10px 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.4), 0 8px 16px rgba(0,0,0,.5); animation: lm-table 25s ease-in-out infinite alternate; }
.scn-london-meeting-herbert .chair-a { position:absolute; bottom:25%; left:20%; width:30px; height:40px; background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); border-radius: 5px 5px 0 0; transform-origin: bottom center; animation: lm-chair-a 10s ease-in-out infinite; }
.scn-london-meeting-herbert .chair-b { position:absolute; bottom:25%; right:20%; width:30px; height:40px; background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); border-radius: 5px 5px 0 0; transform-origin: bottom center; animation: lm-chair-b 12s ease-in-out infinite; }
.scn-london-meeting-herbert .glass-a { position:absolute; bottom:40%; left:40%; width:15px; height:25px; background: linear-gradient(180deg, rgba(200,220,255,0.6) 0%, rgba(150,180,220,0.3) 100%); border-radius: 30% 30% 10% 10% / 40% 40% 20% 20%; animation: lm-glass-a 8s ease-in-out infinite; }
.scn-london-meeting-herbert .glass-b { position:absolute; bottom:40%; right:40%; width:15px; height:25px; background: linear-gradient(180deg, rgba(200,220,255,0.6) 0%, rgba(150,180,220,0.3) 100%); border-radius: 30% 30% 10% 10% / 40% 40% 20% 20%; animation: lm-glass-b 9s ease-in-out infinite; }
.scn-london-meeting-herbert .bottle { position:absolute; bottom:45%; left:50%; width:12px; height:35px; transform:translateX(-50%); background: linear-gradient(180deg, #2a4a3a 0%, #1a3a2a 100%); border-radius: 20% 20% 30% 30% / 40% 40% 50% 50%; animation: lm-bottle 15s ease-in-out infinite; }
.scn-london-meeting-herbert .coat-herbert { position:absolute; bottom:30%; left:25%; width:40px; height:70px; background: linear-gradient(180deg, #5a4a7a 0%, #4a3a6a 100%); border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%; animation: lm-coat-h 7s ease-in-out infinite; }
.scn-london-meeting-herbert .coat-pip { position:absolute; bottom:30%; right:25%; width:40px; height:70px; background: linear-gradient(180deg, #4a5a6a 0%, #3a4a5a 100%); border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%; animation: lm-coat-p 7s ease-in-out infinite; }
.scn-london-meeting-herbert .lamp-glow { position:absolute; top:20%; left:50%; width:80px; height:40px; transform:translateX(-50%); background: radial-gradient(ellipse, rgba(255,248,200,0.5) 0%, transparent 70%); filter: blur(10px); animation: lm-glow 5s ease-in-out infinite alternate; }
@keyframes lm-table { 0% { transform: translateY(0); } 100% { transform: translateY(-2px); } }
@keyframes lm-chair-a { 0% { transform: rotate(0deg); } 33% { transform: rotate(1deg); } 66% { transform: rotate(-1deg); } 100% { transform: rotate(0deg); } }
@keyframes lm-chair-b { 0% { transform: rotate(0deg); } 33% { transform: rotate(-1deg); } 66% { transform: rotate(1deg); } 100% { transform: rotate(0deg); } }
@keyframes lm-glass-a { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes lm-glass-b { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-4px) rotate(-2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes lm-bottle { 0% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(5deg); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes lm-coat-h { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes lm-coat-p { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes lm-glow { 0% { opacity: 0.4; transform: translateX(-50%) scale(1); } 100% { opacity: 0.7; transform: translateX(-50%) scale(1.1); } }

.scn-story-of-miss-havisham { background: linear-gradient(180deg, #2c1e2a 0%, #4a3246 30%, #6a4a5a 70%), radial-gradient(ellipse at 80% 20%, #5a3a4a 0%, transparent 40%); }
.scn-story-of-miss-havisham .bg-wall { position:absolute; inset:0; background: linear-gradient(90deg, #3a2a35 0%, #4a3a45 30%, #3a2a35 70%, #2a1a25 100%); animation: mh-wall 20s ease-in-out infinite alternate; }
.scn-story-of-miss-havisham .bg-curtain { position:absolute; top:0; right:10%; width:30%; height:70%; background: linear-gradient(90deg, #5a4a55 0%, #7a6a75 50%, #5a4a55 100%); border-radius: 0 0 40% 40% / 0 0 30% 30%; box-shadow: inset -8px 0 16px rgba(0,0,0,.3); animation: mh-curtain 14s ease-in-out infinite; }
.scn-story-of-miss-havisham .table { position:absolute; bottom:25%; left:50%; width:70%; height:12%; background: linear-gradient(180deg, #6a554a 0%, #8a756a 20%, #6a554a 100%); border-radius: 4% 4% 0 0; transform: translateX(-50%); animation: mh-table 9s ease-in-out infinite; }
.scn-story-of-miss-havisham .cake { position:absolute; bottom:32%; left:50%; width:18%; height:8%; background: linear-gradient(180deg, #d0b080 0%, #b09060 50%, #8a7050 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform: translateX(-50%); animation: mh-cake 6s ease-in-out infinite; }
.scn-story-of-miss-havisham .cake-top { position:absolute; bottom:38%; left:50%; width:14%; height:4%; background: radial-gradient(ellipse at 50% 100%, #f0d0a0 0%, #d0b080 70%, #b09060 100%); border-radius: 50% 50% 40% 40% / 60% 60% 20% 20%; transform: translateX(-50%); animation: mh-caketop 12s ease-in-out infinite; }
.scn-story-of-miss-havisham .chair { position:absolute; bottom:20%; left:30%; width:8%; height:15%; background: linear-gradient(90deg, #5a453a 0%, #7a655a 50%, #5a453a 100%); border-radius: 10% 10% 0 0; transform: rotate(5deg); animation: mh-chair 16s ease-in-out infinite; }
.scn-story-of-miss-havisham .figure-dress { position:absolute; bottom:20%; right:25%; width:12%; height:35%; background: linear-gradient(180deg, #c0b0a8 0%, #a09088 30%, #807068 100%); border-radius: 40% 40% 10% 10% / 50% 50% 20% 20%; animation: mh-dress 8s ease-in-out infinite; }
.scn-story-of-miss-havisham .figure-veil { position:absolute; bottom:52%; right:24%; width:14%; height:25%; background: linear-gradient(180deg, rgba(255,255,255,.7) 0%, rgba(255,255,255,.3) 50%, transparent 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; filter: blur(2px); animation: mh-veil 10s ease-in-out infinite; }
.scn-story-of-miss-havisham .cobweb-a { position:absolute; top:15%; left:20%; width:40px; height:40px; background: radial-gradient(circle, rgba(255,255,255,.2) 1px, transparent 2px); background-size: 10px 10px; filter: blur(.5px); animation: mh-web-a 40s linear infinite; }
.scn-story-of-miss-havisham .cobweb-b { position:absolute; top:25%; right:15%; width:30px; height:30px; background: radial-gradient(circle, rgba(255,255,255,.15) 1px, transparent 2px); background-size: 8px 8px; filter: blur(.5px); animation: mh-web-b 60s linear infinite reverse; }
@keyframes mh-wall { 0% { background-position: 0% 0% } 33% { background-position: 100% 50% } 66% { background-position: 50% 100% } 100% { background-position: 0% 0% } }
@keyframes mh-curtain { 0%,100% { transform: translateX(0) skewY(0deg) } 50% { transform: translateX(-4px) skewY(1deg) } }
@keyframes mh-table { 0%,100% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-2px) } }
@keyframes mh-cake { 0%,100% { transform: translateX(-50%) scale(1) } 50% { transform: translateX(-50%) scale(1.02) } }
@keyframes mh-caketop { 0% { opacity: 0.8; transform: translateX(-50%) rotate(0deg) } 50% { opacity: 1; transform: translateX(-50%) rotate(180deg) } 100% { opacity: 0.8; transform: translateX(-50%) rotate(360deg) } }
@keyframes mh-chair { 0%,100% { transform: rotate(5deg) } 50% { transform: rotate(7deg) } }
@keyframes mh-dress { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-3px) } }
@keyframes mh-veil { 0% { transform: translateX(0) translateY(0) skewX(0deg); opacity:0.3 } 50% { transform: translateX(2px) translateY(-1px) skewX(2deg); opacity:0.5 } 100% { transform: translateX(0) translateY(0) skewX(0deg); opacity:0.3 } }
@keyframes mh-web-a { 0% { transform: rotate(0deg) scale(1) } 50% { transform: rotate(180deg) scale(1.1) } 100% { transform: rotate(360deg) scale(1) } }
@keyframes mh-web-b { 0% { transform: rotate(0deg) scale(1) } 50% { transform: rotate(180deg) scale(0.9) } 100% { transform: rotate(360deg) scale(1) } }

.scn-magwitchs-return { background: linear-gradient(180deg, #1a2a2a 0%, #2a3a3a 30%, #3a4a4a 70%), radial-gradient(ellipse at 50% 100%, #2a4a4a 0%, transparent 60%); }
.scn-magwitchs-return .bg-marsh { position:absolute; inset:0; background: linear-gradient(180deg, transparent 40%, #2a352a 70%, #1a251a 100%); animation: mr-marsh 25s ease-in-out infinite alternate; }
.scn-magwitchs-return .bg-fog { position:absolute; inset:0; background: linear-gradient(180deg, rgba(120,140,140,.1) 0%, rgba(80,100,100,.3) 50%, transparent 100%); filter: blur(8px); animation: mr-fog 30s linear infinite; }
.scn-magwitchs-return .post-a { position:absolute; bottom:30%; left:20%; width:4px; height:20%; background: linear-gradient(180deg, #5a453a 0%, #3a251a 100%); border-radius: 1px; animation: mr-post-a 12s ease-in-out infinite; }
.scn-magwitchs-return .post-b { position:absolute; bottom:30%; right:25%; width:4px; height:18%; background: linear-gradient(180deg, #5a453a 0%, #3a251a 100%); border-radius: 1px; animation: mr-post-b 15s ease-in-out infinite; }
.scn-magwitchs-return .boat { position:absolute; bottom:35%; left:40%; width:15%; height:8%; background: linear-gradient(180deg, #4a352a 0%, #6a554a 50%, #4a352a 100%); border-radius: 50% 50% 10% 10% / 60% 60% 20% 20%; animation: mr-boat 8s ease-in-out infinite; }
.scn-story-of-miss-havisham .figure-coat { position:absolute; bottom:35%; right:40%; width:10%; height:25%; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 50%, #0a0000 100%); border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%; animation: mr-coat 7s ease-in-out infinite; }
.scn-magwitchs-return .lantern { position:absolute; bottom:45%; right:42%; width:8px; height:12px; background: radial-gradient(ellipse at 50% 30%, #ffd080 0%, #e0b060 50%, transparent 70%); box-shadow: 0 0 20px 8px rgba(255,208,128,.4); animation: mr-lantern 3s ease-in-out infinite alternate; }
.scn-magwitchs-return .ripple-a { position:absolute; bottom:30%; left:45%; width:60px; height:10px; background: radial-gradient(ellipse, rgba(160,180,180,.2) 0%, transparent 70%); border-radius: 50%; filter: blur(3px); animation: mr-ripple-a 5s linear infinite; }
.scn-magwitchs-return .ripple-b { position:absolute; bottom:30%; right:45%; width:50px; height:8px; background: radial-gradient(ellipse, rgba(160,180,180,.15) 0%, transparent 70%); border-radius: 50%; filter: blur(3px); animation: mr-ripple-b 7s linear infinite reverse; }
@keyframes mr-marsh { 0% { background-position: 0% 0% } 50% { background-position: 100% 50% } 100% { background-position: 0% 100% } }
@keyframes mr-fog { 0% { opacity: 0.1; transform: translateY(0) } 50% { opacity: 0.3; transform: translateY(-20px) } 100% { opacity: 0.1; transform: translateY(0) } }
@keyframes mr-post-a { 0%,100% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(1deg) } }
@keyframes mr-post-b { 0%,100% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-3px) rotate(-1deg) } }
@keyframes mr-boat { 0%,100% { transform: translateY(0) rotate(0deg) } 33% { transform: translateY(-4px) rotate(-1deg) } 66% { transform: translateY(-2px) rotate(1deg) } }
@keyframes mr-coat { 0%,100% { transform: translateX(0) translateY(0) } 50% { transform: translateX(2px) translateY(-1px) } }
@keyframes mr-lantern { 0% { opacity: 0.7; transform: scale(1) } 100% { opacity: 1; transform: scale(1.1) } }
@keyframes mr-ripple-a { 0% { transform: scale(1); opacity: 0.2 } 50% { transform: scale(1.5); opacity: 0.1 } 100% { transform: scale(1); opacity: 0.2 } }
@keyframes mr-ripple-b { 0% { transform: scale(1); opacity: 0.15 } 50% { transform: scale(1.3); opacity: 0.05 } 100% { transform: scale(1); opacity: 0.15 } }

.scn-satis-house-fire { background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 30%, #2a2a3a 70%), radial-gradient(ellipse at 50% 20%, #3a1a1a 0%, transparent 50%); }
.scn-satis-house-fire .bg-night { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 30%, transparent 30%, #1a0a0a 70%); animation: shf-night 15s ease-in-out infinite alternate; }
.scn-satis-house-fire .house-wall { position:absolute; bottom:20%; left:50%; width:40%; height:50%; background: linear-gradient(90deg, #3a2a2a 0%, #5a3a3a 50%, #3a2a2a 100%); border-radius: 4% 4% 0 0; transform: translateX(-50%); animation: shf-wall 10s ease-in-out infinite; }
.scn-satis-house-fire .house-roof { position:absolute; bottom:70%; left:50%; width:44%; height:15%; background: linear-gradient(180deg, #5a352a 0%, #7a554a 50%, #5a352a 100%); border-radius: 50% 50% 0 0 / 100% 100% 0 0; transform: translateX(-50%); animation: shf-roof 8s ease-in-out infinite; }
.scn-satis-house-fire .window-frame { position:absolute; bottom:45%; left:50%; width:15%; height:20%; background: linear-gradient(180deg, #1a0a0a 0%, #0a0000 100%); border-radius: 10%; transform: translateX(-50%); animation: shf-window 6s ease-in-out infinite; }
.scn-satis-house-fire .flame-core { position:absolute; bottom:55%; left:50%; width:12%; height:25%; background: radial-gradient(ellipse at 50% 100%, #ffa050 0%, #e08030 50%, transparent 70%); border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%; transform: translateX(-50%); animation: shf-flamecore 1.5s ease-in-out infinite alternate; }
.scn-satis-house-fire .flame-mid { position:absolute; bottom:55%; left:50%; width:18%; height:30%; background: radial-gradient(ellipse at 50% 100%, rgba(255,160,80,.6) 0%, rgba(224,128,48,.3) 50%, transparent 70%); border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%; transform: translateX(-50%); animation: shf-flamemid 2s ease-in-out infinite alternate; }
.scn-satis-house-fire .flame-outer { position:absolute; bottom:55%; left:50%; width:24%; height:35%; background: radial-gradient(ellipse at 50% 100%, rgba(255,160,80,.3) 0%, rgba(224,128,48,.1) 50%, transparent 70%); border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%; transform: translateX(-50%); animation: shf-flameouter 2.5s ease-in-out infinite alternate; }
.scn-satis-house-fire .ember-a { position:absolute; top:30%; left:40%; width:6px; height:6px; background: radial-gradient(circle, #ff8040 0%, transparent 70%); animation: shf-ember-a 4s linear infinite; }
.scn-satis-house-fire .ember-b { position:absolute; top:25%; right:35%; width:4px; height:4px; background: radial-gradient(circle, #ffa050 0%, transparent 70%); animation: shf-ember-b 5s linear infinite; }
.scn-satis-house-fire .smoke { position:absolute; top:20%; left:50%; width:30%; height:20%; background: radial-gradient(ellipse, rgba(80,80,80,.1) 0%, transparent 70%); filter: blur(10px); animation: shf-smoke 12s linear infinite; }
@keyframes shf-night { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes shf-wall { 0%,100% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-1px) } }
@keyframes shf-roof { 0%,100% { transform: translateX(-50%) scale(1) } 50% { transform: translateX(-50%) scale(1.02) } }
@keyframes shf-window { 0%,100% { opacity: 0.9 } 50% { opacity: 1 } }
@keyframes shf-flamecore { 0% { transform: translateX(-50%) scaleY(1) } 100% { transform: translateX(-50%) scaleY(1.2) } }
@keyframes shf-flamemid { 0% { transform: translateX(-50%) scaleY(1) rotate(0deg) } 100% { transform: translateX(-50%) scaleY(1.3) rotate(2deg) } }
@keyframes shf-flameouter { 0% { transform: translateX(-50%) scaleY(1) rotate(0deg) } 100% { transform: translateX(-50%) scaleY(1.4) rotate(-2deg) } }
@keyframes shf-ember-a { 0% { transform: translateY(0) translateX(0); opacity:1 } 50% { transform: translateY(-40px) translateX(10px); opacity:0 } 100% { transform: translateY(-80px) translateX(20px); opacity:0 } }
@keyframes shf-ember-b { 0% { transform: translateY(0) translateX(0); opacity:1 } 50% { transform: translateY(-30px) translateX(-15px); opacity:0.5 } 100% { transform: translateY(-60px) translateX(-30px); opacity:0 } }
@keyframes shf-smoke { 0% { transform: translateX(-50%) scale(1) translateY(0); opacity:0.1 } 50% { transform: translateX(-50%) scale(1.2) translateY(-20px); opacity:0.3 } 100% { transform: translateX(-50%) scale(1.4) translateY(-40px); opacity:0 } }

.scn-escape-attempt-captured { background: linear-gradient(180deg, #1a252a 0%, #2a353a 30%, #3a454a 70%), radial-gradient(ellipse at 50% 0%, #4a555a 0%, transparent 50%); }
.scn-escape-attempt-captured .bg-yard { position:absolute; inset:0; background: linear-gradient(180deg, transparent 50%, #2a352a 80%, #1a251a 100%); animation: eac-yard 20s ease-in-out infinite alternate; }
.scn-escape-attempt-captured .wall { position:absolute; bottom:30%; left:0; right:0; height:40%; background: linear-gradient(90deg, #4a3a35 0%, #5a4a45 30%, #4a3a35 70%, #3a2a25 100%); border-radius: 10% 10% 0 0 / 20% 20% 0 0; animation: eac-wall 15s ease-in-out infinite; }
.scn-escape-attempt-captured .gate { position:absolute; bottom:30%; left:50%; width:20%; height:30%; background: linear-gradient(180deg, #5a453a 0%, #7a655a 30%, #5a453a 100%); border-radius: 4% 4% 0 0; transform: translateX(-50%); animation: eac-gate 8s ease-in-out infinite; }
.scn-escape-attempt-captured .figure-run { position:absolute; bottom:35%; left:30%; width:8%; height:25%; background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 50%, #1a0a0a 100%); border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%; animation: eac-run 2s ease-in-out infinite; }
.scn-escape-attempt-captured .figure-grasp { position:absolute; bottom:35%; right:30%; width:10%; height:30%; background: linear-gradient(180deg, #4a3a3a 0%, #3a2a2a 50%, #2a1a1a 100%); border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%; animation: eac-grasp 3s ease-in-out infinite; }
.scn-escape-attempt-captured .lantern-glow { position:absolute; bottom:50%; right:32%; width:12px; height:18px; background: radial-gradient(ellipse at 50% 30%, #ffd080 0%, #e0b060 50%, transparent 70%); box-shadow: 0 0 24px 10px rgba(255,208,128,.5); animation: eac-lantern 1.5s ease-in-out infinite alternate; }
.scn-escape-attempt-captured .shadow-long { position:absolute; bottom:30%; left:0; right:0; height:10%; background: linear-gradient(90deg, transparent 20%, rgba(0,0,0,.4) 50%, transparent 80%); filter: blur(5px); animation: eac-shadow 4s ease-in-out infinite; }
.scn-escape-attempt-captured .chain { position:absolute; bottom:50%; left:50%; width:2px; height:15%; background: linear-gradient(180deg, #7a756a 0%, #5a554a 50%, #3a352a 100%); transform: translateX(-50%); animation: eac-chain 5s ease-in-out infinite; }
@keyframes eac-yard { 0% { background-position: 0% 0% } 50% { background-position: 100% 50% } 100% { background-position: 0% 100% } }
@keyframes eac-wall { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes eac-gate { 0%,100% { transform: translateX(-50%) rotate(0deg) } 50% { transform: translateX(-50%) rotate(1deg) } }
@keyframes eac-run { 0%,100% { transform: translateX(0) translateY(0) } 25% { transform: translateX(4px) translateY(-2px) } 50% { transform: translateX(8px) translateY(0) } 75% { transform: translateX(12px) translateY(-2px) } }
@keyframes eac-grasp { 0%,100% { transform: translateX(0) translateY(0) } 50% { transform: translateX(-2px) translateY(-1px) } }
@keyframes eac-lantern { 0% { opacity: 0.8; transform: scale(1) } 100% { opacity: 1; transform: scale(1.1) } }
@keyframes eac-shadow { 0%,100% { opacity: 0.3 } 50% { opacity: 0.6 } }
@keyframes eac-chain { 0%,100% { transform: translateX(-50%) translateY(0) rotate(0deg) } 50% { transform: translateX(-50%) translateY(-3px) rotate(5deg) } }

.scn-magwitchs-trial-and-death { background: linear-gradient(180deg, #2c2c3e 0%, #1a1a2a 40%, #0a0a14 100%), radial-gradient(ellipse at 50% 10%, #3a3a5a 0%, transparent 60%); }
.scn-magwitchs-trial-and-death .courtroom-bg { position:absolute; inset:0 0 0 0; background: linear-gradient(90deg, #1a1a22 0%, #2a2a32 30%, #2a2a32 70%, #1a1a22 100%); animation: mtd-bg-pulse 20s ease-in-out infinite alternate; }
.scn-magwitchs-trial-and-death .bench-row { position:absolute; height:12px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 4px 4px 0 0; box-shadow: 0 -2px 4px rgba(0,0,0,.3); }
.scn-magwitchs-trial-and-death .bench-a { bottom:30%; left:10%; right:10%; animation: mtd-bench-a 15s ease-in-out infinite; }
.scn-magwitchs-trial-and-death .bench-b { bottom:40%; left:15%; right:15%; animation: mtd-bench-b 18s ease-in-out infinite; }
.scn-magwitchs-trial-and-death .dock { position:absolute; bottom:20%; left:30%; right:30%; height:6px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 2px; box-shadow: 0 0 8px rgba(192,128,64,.2); animation: mtd-dock 8s ease-in-out infinite; }
.scn-magwitchs-trial-and-death .figure-magwitch { position:absolute; bottom:22%; left:50%; width:16px; height:32px; transform:translateX(-50%); background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; animation: mtd-magwitch 5s ease-in-out infinite; }
.scn-magwitchs-trial-and-death .figure-judge { position:absolute; bottom:50%; left:50%; width:20px; height:24px; transform:translateX(-50%); background: linear-gradient(180deg, #e8e0d8 0%, #c8b8a8 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; box-shadow: 0 4px 8px rgba(0,0,0,.4); animation: mtd-judge 7s ease-in-out infinite; }
.scn-magwitchs-trial-and-death .window-light { position:absolute; top:15%; left:20%; right:20%; height:30%; background: radial-gradient(ellipse at 50% 0%, rgba(255,248,200,.4) 0%, transparent 70%); filter: blur(4px); animation: mtd-light 12s ease-in-out infinite alternate; }
.scn-magwitchs-trial-and-death .chain-link { position:absolute; bottom:24%; left:48%; width:4px; height:8px; background: linear-gradient(90deg, #888888 0%, #cccccc 50%, #888888 100%); border-radius: 1px; animation: mtd-chain 3s ease-in-out infinite; }
.scn-magwitchs-trial-and-death .shadow-pool { position:absolute; bottom:0; left:0; right:0; height:15%; background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,.6) 0%, transparent 70%); animation: mtd-shadow 10s ease-in-out infinite; }
@keyframes mtd-bg-pulse { 0% { opacity: 0.95; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes mtd-bench-a { 0% { transform: translateY(0px); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0px); } }
@keyframes mtd-bench-b { 0% { transform: translateY(0px) scale(1); } 50% { transform: translateY(-2px) scale(1.002); } 100% { transform: translateY(0px) scale(1); } }
@keyframes mtd-dock { 0%,100% { transform: translateY(0px); box-shadow: 0 0 8px rgba(192,128,64,.2); } 50% { transform: translateY(-1px); box-shadow: 0 0 12px rgba(192,128,64,.3); } }
@keyframes mtd-magwitch { 0% { transform: translateX(-50%) translateY(0px) rotate(0deg); } 33% { transform: translateX(-52%) translateY(-1px) rotate(-1deg); } 66% { transform: translateX(-48%) translateY(-1px) rotate(1deg); } 100% { transform: translateX(-50%) translateY(0px) rotate(0deg); } }
@keyframes mtd-judge { 0% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.02); } 100% { transform: translateX(-50%) scale(1); } }
@keyframes mtd-light { 0% { opacity: 0.3; transform: scale(1); } 50% { opacity: 0.5; transform: scale(1.05); } 100% { opacity: 0.4; transform: scale(0.98); } }
@keyframes mtd-chain { 0%,100% { transform: translateY(0px) rotate(0deg); } 50% { transform: translateY(1px) rotate(5deg); } }
@keyframes mtd-shadow { 0% { opacity: 0.7; transform: scale(1); } 50% { opacity: 0.9; transform: scale(1.1); } 100% { opacity: 0.7; transform: scale(1); } }

.scn-joe-nurses-pip { background: linear-gradient(180deg, #f8f0e8 0%, #e8d8c8 30%, #d0c0b0 100%), radial-gradient(ellipse at 20% 80%, #a89078 0%, transparent 40%); }
.scn-joe-nurses-pip .sickroom-bg { position:absolute; inset:0 0 0 0; background: linear-gradient(90deg, #e8e0d8 0%, #f0e8e0 50%, #e8e0d8 100%); animation: jnp-bg-shift 25s ease-in-out infinite alternate; }
.scn-joe-nurses-pip .bed-frame { position:absolute; bottom:25%; left:15%; right:15%; height:40px; background: linear-gradient(180deg, #a08060 0%, #806040 100%); border-radius: 6px 6px 0 0; box-shadow: inset 0 4px 8px rgba(0,0,0,.2); animation: jnp-bed 18s ease-in-out infinite; }
.scn-joe-nurses-pip .bed-pillow { position:absolute; bottom:58%; left:50%; width:36px; height:12px; transform:translateX(-50%); background: linear-gradient(180deg, #f8f8f0 0%, #e8e0d0 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; animation: jnp-pillow 8s ease-in-out infinite; }
.scn-joe-nurses-pip .figure-pip { position:absolute; bottom:30%; left:40%; width:14px; height:28px; background: linear-gradient(180deg, #2a4a6a 0%, #1a2a4a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; animation: jnp-pip 6s ease-in-out infinite; }
.scn-joe-nurses-pip .figure-joe { position:absolute; bottom:30%; left:60%; width:18px; height:32px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 40% 40% 35% 35% / 60% 60% 40% 40%; animation: jnp-joe 9s ease-in-out infinite; }
.scn-joe-nurses-pip .bedside-table { position:absolute; bottom:25%; left:5%; width:20px; height:24px; background: linear-gradient(180deg, #806850 0%, #604830 100%); border-radius: 4px; box-shadow: 0 2px 6px rgba(0,0,0,.3); animation: jnp-table 12s ease-in-out infinite; }
.scn-joe-nurses-pip .medicine-bottle { position:absolute; bottom:50%; left:8%; width:6px; height:10px; background: linear-gradient(180deg, #a0c0d0 0%, #708090 100%); border-radius: 2px; box-shadow: 0 0 4px rgba(160,192,208,.5); animation: jnp-bottle 5s ease-in-out infinite; }
.scn-joe-nurses-pip .curtain-a { position:absolute; top:0; left:0; width:30%; height:60%; background: linear-gradient(90deg, rgba(180,160,140,.8) 0%, rgba(200,180,160,.6) 100%); border-radius: 0 0 20% 0; animation: jnp-curtain-a 40s ease-in-out infinite alternate; }
.scn-joe-nurses-pip .curtain-b { position:absolute; top:0; right:0; width:30%; height:60%; background: linear-gradient(-90deg, rgba(180,160,140,.8) 0%, rgba(200,180,160,.6) 100%); border-radius: 0 0 0 20%; animation: jnp-curtain-b 35s ease-in-out infinite alternate; }
@keyframes jnp-bg-shift { 0% { background-position: 0% 0%; } 50% { background-position: 2% 1%; } 100% { background-position: -1% 0%; } }
@keyframes jnp-bed { 0% { transform: translateY(0px); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0px); } }
@keyframes jnp-pillow { 0%,100% { transform: translateX(-50%) translateY(0px) rotate(0deg); } 50% { transform: translateX(-52%) translateY(-1px) rotate(-2deg); } }
@keyframes jnp-pip { 0% { transform: translateY(0px) scale(1); } 33% { transform: translateY(-1px) scale(1.01); } 66% { transform: translateY(0px) scale(1); } 100% { transform: translateY(0px) scale(1); } }
@keyframes jnp-joe { 0% { transform: translateY(0px) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0px) rotate(0deg); } }
@keyframes jnp-table { 0%,100% { transform: translateY(0px); } 50% { transform: translateY(-1px); } }
@keyframes jnp-bottle { 0%,100% { transform: translateY(0px); opacity: 0.9; } 50% { transform: translateY(-1px); opacity: 1; } }
@keyframes jnp-curtain-a { 0% { transform: translateX(0px); } 50% { transform: translateX(2px); } 100% { transform: translateX(-1px); } }
@keyframes jnp-curtain-b { 0% { transform: translateX(0px); } 50% { transform: translateX(-2px); } 100% { transform: translateX(1px); } }

.scn-return-to-the-forge { background: linear-gradient(180deg, #4a5a6a 0%, #2a3a4a 50%, #1a2a3a 100%), radial-gradient(ellipse at 70% 30%, #5a6a7a 0%, transparent 50%); }
.scn-return-to-the-forge .forge-exterior-bg { position:absolute; inset:0 0 0 0; background: linear-gradient(180deg, #3a4a5a 0%, #2a3a4a 30%, #1a2a3a 70%); animation: rtf-bg-drift 30s linear infinite alternate; }
.scn-return-to-the-forge .forge-building { position:absolute; bottom:20%; left:20%; right:20%; height:40%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 8px 8px 0 0; box-shadow: inset 0 8px 16px rgba(0,0,0,.4); animation: rtf-building 20s ease-in-out infinite; }
.scn-return-to-the-forge .doorway { position:absolute; bottom:20%; left:50%; width:24px; height:36px; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 100%, #c8a878 0%, #a08058 70%, #604830 100%); border-radius: 4px 4px 0 0; animation: rtf-doorway 8s ease-in-out infinite alternate; }
.scn-return-to-the-forge .figure-pip-return { position:absolute; bottom:20%; left:30%; width:14px; height:32px; background: linear-gradient(180deg, #2a3a5a 0%, #1a2a4a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; animation: rtf-pip 7s ease-in-out infinite; }
.scn-return-to-the-forge .anvil-silhouette { position:absolute; bottom:25%; right:30%; width:28px; height:12px; background: linear-gradient(180deg, #4a4a4a 0%, #2a2a2a 100%); border-radius: 20% 20% 40% 40% / 50% 50% 30% 30%; animation: rtf-anvil 12s ease-in-out infinite; }
.scn-return-to-the-forge .smoke-plume-a { position:absolute; top:30%; left:50%; width:40px; height:60px; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 0%, rgba(255,255,255,.2) 0%, transparent 70%); filter: blur(8px); animation: rtf-smoke-a 25s linear infinite; }
.scn-return-to-the-forge .smoke-plume-b { position:absolute; top:25%; left:48%; width:30px; height:50px; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 0%, rgba(255,255,255,.15) 0%, transparent 70%); filter: blur(6px); animation: rtf-smoke-b 30s linear infinite; animation-delay: -5s; }
.scn-return-to-the-forge .tree-silhouette { position:absolute; bottom:20%; left:10%; width:20px; height:50px; background: linear-gradient(180deg, transparent 0%, #1a2a1a 30%, #0a1a0a 100%); border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%; animation: rtf-tree 18s ease-in-out infinite; }
.scn-return-to-the-forge .path { position:absolute; bottom:0; left:30%; right:30%; height:15%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 0 0 / 100% 100% 0 0; animation: rtf-path 15s ease-in-out infinite; }
@keyframes rtf-bg-drift { 0% { background-position: 0% 0%; } 100% { background-position: 2% 1%; } }
@keyframes rtf-building { 0% { transform: translateY(0px); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0px); } }
@keyframes rtf-doorway { 0% { opacity: 0.7; box-shadow: 0 0 20px rgba(200,168,120,.3); } 50% { opacity: 1; box-shadow: 0 0 30px rgba(200,168,120,.5); } 100% { opacity: 0.8; box-shadow: 0 0 25px rgba(200,168,120,.4); } }
@keyframes rtf-pip { 0% { transform: translateX(0px) translateY(0px); } 33% { transform: translateX(2px) translateY(-1px); } 66% { transform: translateX(-1px) translateY(0px); } 100% { transform: translateX(0px) translateY(0px); } }
@keyframes rtf-anvil { 0%,100% { transform: translateY(0px) rotate(0deg); } 50% { transform: translateY(-1px) rotate(0.5deg); } }
@keyframes rtf-smoke-a { 0% { transform: translateX(-50%) translateY(0px) scale(1); opacity: 0.3; } 50% { transform: translateX(-48%) translateY(-20px) scale(1.2); opacity: 0.5; } 100% { transform: translateX(-52%) translateY(-40px) scale(1.5); opacity: 0; } }
@keyframes rtf-smoke-b { 0% { transform: translateX(-50%) translateY(0px) scale(1); opacity: 0.2; } 50% { transform: translateX(-52%) translateY(-15px) scale(1.1); opacity: 0.4; } 100% { transform: translateX(-48%) translateY(-30px) scale(1.3); opacity: 0; } }
@keyframes rtf-tree { 0% { transform: translateY(0px) rotate(0deg); } 50% { transform: translateY(-1px) rotate(1deg); } 100% { transform: translateY(0px) rotate(0deg); } }
@keyframes rtf-path { 0% { transform: translateY(0px); } 50% { transform: translateY(1px); } 100% { transform: translateY(0px); } }

.scn-forge-years-later { background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 50%, #000000 100%), radial-gradient(ellipse at 50% 50%, #3a1a0a 0%, transparent 70%); }
.scn-forge-years-later .forge-interior-bg { position:absolute; inset:0 0 0 0; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); animation: fyl-bg-pulse 15s ease-in-out infinite alternate; }
.scn-forge-years-later .hearth-glow { position:absolute; bottom:30%; left:50%; width:80px; height:60px; transform:translateX(-50%); background: radial-gradient(ellipse at 50% 100%, rgba(255,128,0,.6) 0%, rgba(255,64,0,.3) 50%, transparent 70%); filter: blur(10px); animation: fyl-glow 4s ease-in-out infinite alternate; }
.scn-forge-years-later .forge-hearth { position:absolute; bottom:30%; left:50%; width:60px; height:30px; transform:translateX(-50%); background: linear-gradient(180deg, #8a4a2a 0%, #5a2a1a 100%); border-radius: 40% 40% 0 0 / 80% 80% 0 0; box-shadow: inset 0 8px 16px rgba(255,128,0,.4); animation: fyl-hearth 8s ease-in-out infinite; }
.scn-forge-years-later .bellows { position:absolute; bottom:35%; left:30%; width:24px; height:16px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 20% 20% 40% 40% / 50% 50% 30% 30%; animation: fyl-bellows 5s ease-in-out infinite; }
.scn-forge-years-later .figure-joe-working { position:absolute; bottom:25%; left:60%; width:18px; height:36px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; animation: fyl-joe 6s ease-in-out infinite; }
.scn-forge-years-later .tool-rack { position:absolute; top:20%; right:20%; width:40px; height:10px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,.5); animation: fyl-rack 12s ease-in-out infinite; }
.scn-forge-years-later .spark-cluster-a { position:absolute; bottom:45%; left:48%; width:4px; height:4px; background: radial-gradient(circle, #ffaa00 0%, #ff5500 100%); border-radius:50%; box-shadow: 0 0 8px #ffaa00; animation: fyl-spark-a 1.5s ease-in-out infinite; }
.scn-forge-years-later .spark-cluster-b { position:absolute; bottom:50%; left:52%; width:3px; height:3px; background: radial-gradient(circle, #ffcc00 0%, #ff7700 100%); border-radius:50%; box-shadow: 0 0 6px #ffcc00; animation: fyl-spark-b 2s ease-in-out infinite; animation-delay: -0.5s; }
.scn-forge-years-later .ingot-pile { position:absolute; bottom:20%; right:30%; width:30px; height:12px; background: linear-gradient(180deg, #a08060 0%, #806040 100%); border-radius: 20% 20% 10% 10% / 50% 50% 30% 30%; animation: fyl-ingot 10s ease-in-out infinite; }
@keyframes fyl-bg-pulse { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.95; } }
@keyframes fyl-glow { 0% { opacity: 0.4; transform: translateX(-50%) scale(1); } 50% { opacity: 0.7; transform: translateX(-50%) scale(1.1); } 100% { opacity: 0.5; transform: translateX(-50%) scale(0.9); } }
@keyframes fyl-hearth { 0%,100% { transform: translateX(-50%) translateY(0px); } 50% { transform: translateX(-50%) translateY(-1px); } }
@keyframes fyl-bellows { 0% { transform: translateY(0px) scale(1); } 50% { transform: translateY(-2px) scale(1.05); } 100% { transform: translateY(0px) scale(1); } }
@keyframes fyl-joe { 0% { transform: translateY(0px) rotate(0deg); } 33% { transform: translateY(-1px) rotate(1deg); } 66% { transform: translateY(0px) rotate(-1deg); } 100% { transform: translateY(0px) rotate(0deg); } }
@keyframes fyl-rack { 0%,100% { transform: translateY(0px); } 50% { transform: translateY(-1px); } }
@keyframes fyl-spark-a { 0% { transform: translate(0,0) scale(1); opacity: 1; } 50% { transform: translate(4px, -8px) scale(1.2); opacity: 0.8; } 100% { transform: translate(8px, -16px) scale(0); opacity: 0; } }
@keyframes fyl-spark-b { 0% { transform: translate(0,0) scale(1); opacity: 1; } 50% { transform: translate(-3px, -10px) scale(1.1); opacity: 0.7; } 100% { transform: translate(-6px, -20px) scale(0); opacity: 0; } }
@keyframes fyl-ingot { 0% { transform: translateY(0px) rotate(0deg); } 50% { transform: translateY(-1px) rotate(0.5deg); } 100% { transform: translateY(0px) rotate(0deg); } }

.scn-ruins-of-satis-house { background: linear-gradient(180deg, #2a1c2e 0%, #3a2c3e 30%, #5a4c5e 100%), radial-gradient(ellipse at 20% 80%, rgba(120, 90, 140, 0.4) 0%, transparent 50%); position: relative; overflow: hidden; }
.scn-ruins-of-satis-house .bg-sky { position: absolute; inset: 0 0 60% 0; background: linear-gradient(180deg, #4a3c5e 0%, #3a2c4e 50%, #2a1c3e 100%); animation: rhs-sky-pulse 25s ease-in-out infinite alternate; }
.scn-ruins-of-satis-house .bg-ruins { position: absolute; bottom: 0; left: 0; right: 0; height: 65%; background: linear-gradient(180deg, #3a2c2a 0%, #2a1c1a 30%, #1a0c0a 100%); border-radius: 40% 40% 0 0 / 20% 20% 0 0; box-shadow: inset 0 20px 40px rgba(0,0,0,0.7); animation: rhs-ruins-shift 40s ease-in-out infinite alternate; }
.scn-ruins-of-satis-house .pillar { position: absolute; bottom: 0; width: 24px; height: 70%; background: linear-gradient(180deg, #6a5c5a 0%, #4a3c3a 40%, #2a1c1a 100%); border-radius: 8px 8px 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,0.5), 4px 0 12px rgba(0,0,0,0.3); }
.scn-ruins-of-satis-house .pillar-left { left: 30%; animation: rhs-pillar-left 14s ease-in-out infinite; }
.scn-ruins-of-satis-house .pillar-right { right: 30%; animation: rhs-pillar-right 18s ease-in-out infinite; }
.scn-ruins-of-satis-house .arch { position: absolute; bottom: 40%; left: 50%; width: 140px; height: 60px; transform: translateX(-50%); background: linear-gradient(180deg, #7a6c6a 0%, #5a4c4a 100%); border-radius: 100px 100px 0 0 / 60px 60px 0 0; box-shadow: inset 0 -10px 20px rgba(0,0,0,0.4); animation: rhs-arch-breathe 22s ease-in-out infinite; }
.scn-ruins-of-satis-house .vines { position: absolute; background: linear-gradient(180deg, #2a4a2a 0%, #1a3a1a 100%); border-radius: 4px; filter: blur(0.5px); }
.scn-ruins-of-satis-house .vines-a { bottom: 45%; left: 32%; width: 6px; height: 120px; transform: rotate(-5deg); animation: rhs-vines-sway-a 13s ease-in-out infinite; }
.scn-ruins-of-satis-house .vines-b { bottom: 42%; right: 32%; width: 6px; height: 90px; transform: rotate(5deg); animation: rhs-vines-sway-b 17s ease-in-out infinite; }
.scn-ruins-of-satis-house .light-shaft { position: absolute; top: 15%; left: 50%; width: 180px; height: 300px; transform: translateX(-50%); background: linear-gradient(180deg, rgba(255, 240, 200, 0.15) 0%, rgba(255, 240, 200, 0.05) 30%, transparent 100%); border-radius: 50%; filter: blur(10px); animation: rhs-light-drift 30s linear infinite; }
.scn-ruins-of-satis-house .dust-mote { position: absolute; background: radial-gradient(circle, rgba(255, 240, 220, 0.7) 0%, transparent 70%); border-radius: 50%; filter: blur(1px); }
.scn-ruins-of-satis-house .dust-1 { top: 20%; left: 20%; width: 4px; height: 4px; animation: rhs-dust-float-1 28s linear infinite; }
.scn-ruins-of-satis-house .dust-2 { top: 40%; left: 70%; width: 3px; height: 3px; animation: rhs-dust-float-2 35s linear infinite; animation-delay: -10s; }
.scn-ruins-of-satis-house .dust-3 { top: 60%; left: 40%; width: 5px; height: 5px; animation: rhs-dust-float-3 32s linear infinite; animation-delay: -5s; }
@keyframes rhs-sky-pulse { 0% { opacity: 0.8; } 33% { opacity: 1; background: linear-gradient(180deg, #4a3c5e 0%, #3a2c4e 50%, #2a1c3e 100%); } 66% { opacity: 0.9; background: linear-gradient(180deg, #4a3c6e 0%, #3a2c5e 50%, #2a1c4e 100%); } 100% { opacity: 0.85; } }
@keyframes rhs-ruins-shift { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-4px) scale(1.002); } 100% { transform: translateY(0) scale(1); } }
@keyframes rhs-pillar-left { 0%, 100% { transform: translateY(0) rotate(-0.5deg); } 25% { transform: translateY(-2px) rotate(0.5deg); } 50% { transform: translateY(0) rotate(-0.5deg); } 75% { transform: translateY(-1px) rotate(0.5deg); } }
@keyframes rhs-pillar-right { 0%, 100% { transform: translateY(0) rotate(0.5deg); } 25% { transform: translateY(-3px) rotate(-0.5deg); } 50% { transform: translateY(0) rotate(0.5deg); } 75% { transform: translateY(-2px) rotate(-0.5deg); } }
@keyframes rhs-arch-breathe { 0%, 100% { transform: translateX(-50%) scaleY(1); } 33% { transform: translateX(-50%) scaleY(1.02); } 66% { transform: translateX(-50%) scaleY(0.99); } }
@keyframes rhs-vines-sway-a { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-8deg) translateY(-3px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes rhs-vines-sway-b { 0% { transform: rotate(5deg) translateY(0); } 50% { transform: rotate(8deg) translateY(-4px); } 100% { transform: rotate(5deg) translateY(0); } }
@keyframes rhs-light-drift { 0% { transform: translateX(-50%) translateY(0) rotate(0deg); opacity: 0.7; } 50% { transform: translateX(-48%) translateY(10px) rotate(1deg); opacity: 1; } 100% { transform: translateX(-50%) translateY(0) rotate(0deg); opacity: 0.7; } }
@keyframes rhs-dust-float-1 { 0% { transform: translate(0, 0) scale(1); opacity: 0.3; } 33% { transform: translate(20px, 30px) scale(1.2); opacity: 0.7; } 66% { transform: translate(40px, 10px) scale(0.9); opacity: 0.5; } 100% { transform: translate(60px, 40px) scale(1); opacity: 0.3; } }
@keyframes rhs-dust-float-2 { 0% { transform: translate(0, 0) scale(1); opacity: 0.4; } 33% { transform: translate(-25px, 35px) scale(1.1); opacity: 0.8; } 66% { transform: translate(-50px, 15px) scale(0.8); opacity: 0.6; } 100% { transform: translate(-75px, 45px) scale(1); opacity: 0.4; } }
@keyframes rhs-dust-float-3 { 0% { transform: translate(0, 0) scale(1); opacity: 0.5; } 33% { transform: translate(15px, -20px) scale(1.3); opacity: 0.9; } 66% { transform: translate(30px, -40px) scale(0.7); opacity: 0.6; } 100% { transform: translate(45px, -60px) scale(1); opacity: 0.5; } }

.scn-magwitchs-return { background: linear-gradient(180deg, #0c1a1f 0%, #1a2b2f 40%, #2a3a3f 100%), radial-gradient(ellipse at 80% 20%, rgba(50, 70, 80, 0.3) 0%, transparent 50%); }
.scn-magwitchs-return .river-bank { position: absolute; bottom: 0; left: 0; right: 0; height: 30%; background: linear-gradient(180deg, #2a231a 0%, #1a1510 100%); border-radius: 60% 40% 0 0 / 100% 30% 0 0; box-shadow: inset 0 10px 25px rgba(0, 0, 0, 0.7); animation: mr-bank 22s ease-in-out infinite alternate; }
.scn-magwitchs-return .marsh-mist { position: absolute; bottom: 30%; left: 0; right: 0; height: 40%; background: linear-gradient(180deg, rgba(120, 140, 150, 0.15) 0%, transparent 100%); filter: blur(12px); }
.scn-magwitchs-return .mist-a { animation: mr-mist-a 40s linear infinite; }
.scn-magwitchs-return .mist-b { animation: mr-mist-b 55s linear infinite reverse; opacity: 0.6; }
.scn-magwitchs-return .water-dark { position: absolute; bottom: 0; left: 0; right: 0; height: 25%; background: linear-gradient(180deg, #1a252a 0%, #0c151a 100%); border-radius: 50% 50% 0 0 / 30% 30% 0 0; animation: mr-water 18s ease-in-out infinite alternate; }
.scn-magwitchs-return .water-ripple { position: absolute; bottom: 0; left: 0; right: 0; height: 25%; background: radial-gradient(circle at 30% 100%, rgba(80, 110, 120, 0.2) 0%, transparent 50%), radial-gradient(circle at 70% 100%, rgba(80, 110, 120, 0.15) 0%, transparent 50%); border-radius: 50% 50% 0 0 / 30% 30% 0 0; }
.scn-magwitchs-return .ripple-a { animation: mr-ripple-a 9s ease-in-out infinite; }
.scn-magwitchs-return .ripple-b { animation: mr-ripple-b 13s ease-in-out infinite 0.5s; opacity: 0.7; }
.scn-magwitchs-return .boat-hull { position: absolute; bottom: 23%; left: 50%; width: 100px; height: 20px; transform: translateX(-50%); background: linear-gradient(180deg, #3a2a1a 0%, #1a0f0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 20% 20%; box-shadow: 0 4px 10px rgba(0, 0, 0, 0.8); animation: mr-boat 6s ease-in-out infinite; }
.scn-magwitchs-return .figure-magwitch { position: absolute; bottom: 33%; left: 50%; width: 22px; height: 50px; transform: translateX(-50%); background: linear-gradient(180deg, #2a1a0a 0%, #1a0f05 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: mr-figure 4s ease-in-out infinite; }
.scn-magwitchs-return .lantern-glow { position: absolute; bottom: 45%; left: 44%; width: 10px; height: 10px; background: radial-gradient(circle, #e0a850 0%, #a07030 70%); border-radius: 50%; box-shadow: 0 0 20px 8px rgba(224, 168, 80, 0.6), 0 0 40px 16px rgba(160, 112, 48, 0.3); animation: mr-lantern 2.5s ease-in-out infinite alternate; }
.scn-magwitchs-return .oar { position: absolute; bottom: 28%; left: 60%; width: 4px; height: 60px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 2px; transform-origin: bottom center; animation: mr-oar 3s ease-in-out infinite; }
@keyframes mr-bank { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-4px) scale(1.02); } 100% { transform: translateY(2px) scale(0.98); } }
@keyframes mr-mist-a { 0% { transform: translateX(-20px) scaleY(1); opacity: 0.4; } 50% { transform: translateX(0) scaleY(1.05); opacity: 0.7; } 100% { transform: translateX(20px) scaleY(1); opacity: 0.4; } }
@keyframes mr-mist-b { 0% { transform: translateX(10px) scaleY(0.95); opacity: 0.3; } 50% { transform: translateX(-10px) scaleY(1); opacity: 0.6; } 100% { transform: translateX(30px) scaleY(0.95); opacity: 0.3; } }
@keyframes mr-water { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-2px) scaleX(1.03); } 100% { transform: translateY(1px) scaleX(0.97); } }
@keyframes mr-ripple-a { 0% { background-position: 30% 100%, 70% 100%; opacity: 0.8; } 50% { background-position: 32% 102%, 68% 102%; opacity: 1; } 100% { background-position: 30% 100%, 70% 100%; opacity: 0.8; } }
@keyframes mr-ripple-b { 0% { background-position: 28% 101%, 72% 101%; opacity: 0.5; } 50% { background-position: 30% 103%, 70% 103%; opacity: 0.8; } 100% { background-position: 28% 101%, 72% 101%; opacity: 0.5; } }
@keyframes mr-boat { 0%, 100% { transform: translateX(-50%) translateY(0) rotate(-1deg); } 50% { transform: translateX(-50%) translateY(-3px) rotate(1deg); } }
@keyframes mr-figure { 0% { transform: translateX(-50%) translateY(0) rotate(-2deg); } 25% { transform: translateX(-50%) translateY(-1px) rotate(0deg); } 50% { transform: translateX(-50%) translateY(0) rotate(2deg); } 75% { transform: translateX(-50%) translateY(-1px) rotate(0deg); } 100% { transform: translateX(-50%) translateY(0) rotate(-2deg); } }
@keyframes mr-lantern { 0% { transform: translate(-50%, 0) scale(1); box-shadow: 0 0 18px 6px rgba(224, 168, 80, 0.5), 0 0 36px 12px rgba(160, 112, 48, 0.2); } 100% { transform: translate(-50%, -2px) scale(1.1); box-shadow: 0 0 24px 10px rgba(224, 168, 80, 0.8), 0 0 48px 20px rgba(160, 112, 48, 0.4); } }
@keyframes mr-oar { 0% { transform: translateY(0) rotate(15deg); } 50% { transform: translateY(-5px) rotate(-10deg); } 100% { transform: translateY(0) rotate(15deg); } }

.scn-magwitchs-return { background: linear-gradient(180deg, #0d1a26 0%, #1a2d3a 30%, #2c3e50 70%), radial-gradient(ellipse at 80% 20%, rgba(60, 80, 100, 0.4) 0%, transparent 50%); }
.scn-magwitchs-return .river-bank { position: absolute; bottom: 0; left: 0; right: 0; height: 25%; background: linear-gradient(180deg, #2a231c 0%, #1a1510 100%); border-radius: 60% 40% 0 0 / 100% 30% 0 0; box-shadow: inset 0 10px 25px rgba(0,0,0,0.6); animation: mr-bank 22s ease-in-out infinite alternate; }
.scn-magwitchs-return .marshes { position: absolute; bottom: 22%; left: 10%; right: 10%; height: 15%; background: linear-gradient(180deg, #3a332a 0%, #2a231c 100%); border-radius: 50% 40% 30% 60% / 80% 60% 40% 30%; filter: blur(2px); animation: mr-marshes 18s ease-in-out infinite; }
.scn-magwitchs-return .fog-a { position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, rgba(140, 160, 180, 0.12) 0%, transparent 50%); filter: blur(12px); animation: mr-fog-a 40s linear infinite; }
.scn-magwitchs-return .fog-b { position: absolute; inset: 10% 0 50% 0; background: linear-gradient(180deg, rgba(120, 140, 160, 0.08) 0%, transparent 60%); filter: blur(10px); animation: mr-fog-b 55s linear infinite reverse; animation-delay: 3s; }
.scn-magwitchs-return .water { position: absolute; bottom: 25%; left: 0; right: 0; height: 30%; background: linear-gradient(0deg, #1c2b36 0%, #2a3e4a 30%, #1c2b36 100%); border-radius: 50% 50% 0 0 / 20% 20% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.7); animation: mr-water 7s ease-in-out infinite alternate; }
.scn-magwitchs-return .boat { position: absolute; bottom: 40%; left: 30%; width: 70px; height: 12px; background: linear-gradient(180deg, #5d4a3a 0%, #3a2d22 100%); border-radius: 40% 40% 10% 10% / 80% 80% 20% 20%; transform-origin: center bottom; animation: mr-boat 5s ease-in-out infinite; }
.scn-magwitchs-return .figure-magwitch { position: absolute; bottom: 42%; left: 33%; width: 20px; height: 50px; background: linear-gradient(180deg, #2c2c3a 0%, #1a1a2a 100%); border-radius: 45% 45% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: mr-figure 4s ease-in-out infinite; }
.scn-magwitchs-return .lantern-light { position: absolute; bottom: 52%; left: 28%; width: 8px; height: 8px; background: radial-gradient(circle, #ffd47a 0%, #c8953a 70%); border-radius: 50%; box-shadow: 0 0 20px 8px rgba(255, 200, 100, 0.6), 0 0 40px 16px rgba(200, 150, 60, 0.3); animation: mr-lantern 3s ease-in-out infinite alternate; }
.scn-magwitchs-return .ripple-1 { position: absolute; bottom: 38%; left: 35%; width: 30px; height: 6px; background: rgba(100, 140, 180, 0.2); border-radius: 50%; filter: blur(3px); animation: mr-ripple 6s linear infinite; }
.scn-magwitchs-return .ripple-2 { position: absolute; bottom: 37%; left: 32%; width: 25px; height: 5px; background: rgba(100, 140, 180, 0.15); border-radius: 50%; filter: blur(2px); animation: mr-ripple 8s linear infinite; animation-delay: 1.5s; }
@keyframes mr-bank { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-4px) scale(1.01); } 100% { transform: translateY(0) scale(1); } }
@keyframes mr-marshes { 0%, 100% { transform: translateY(0) rotate(0.5deg); } 50% { transform: translateY(-2px) rotate(-0.5deg); } }
@keyframes mr-fog-a { 0% { transform: translateX(-20px) scale(1); opacity: 0.7; } 50% { transform: translateX(10px) scale(1.05); opacity: 0.9; } 100% { transform: translateX(40px) scale(1); opacity: 0.7; } }
@keyframes mr-fog-b { 0% { transform: translateX(0) scale(1.1); opacity: 0.5; } 50% { transform: translateX(-30px) scale(1); opacity: 0.7; } 100% { transform: translateX(-60px) scale(1.1); opacity: 0.5; } }
@keyframes mr-water { 0% { background-position: 0% 0%; } 50% { background-position: 0% 5%; } 100% { background-position: 0% 0%; } }
@keyframes mr-boat { 0%, 100% { transform: translateX(0) translateY(0) rotate(-1deg); } 25% { transform: translateX(3px) translateY(-2px) rotate(1deg); } 50% { transform: translateX(6px) translateY(0) rotate(-1deg); } 75% { transform: translateX(3px) translateY(-1px) rotate(0.5deg); } }
@keyframes mr-figure { 0%, 100% { transform: translateX(0) translateY(0) rotate(-0.5deg); } 50% { transform: translateX(2px) translateY(-1px) rotate(0.5deg); } }
@keyframes mr-lantern { 0% { transform: translate(0, 0) scale(0.95); box-shadow: 0 0 18px 6px rgba(255, 200, 100, 0.5), 0 0 36px 12px rgba(200, 150, 60, 0.2); } 50% { transform: translate(1px, -1px) scale(1.05); box-shadow: 0 0 26px 10px rgba(255, 210, 120, 0.8), 0 0 52px 20px rgba(210, 160, 70, 0.4); } 100% { transform: translate(0, 0) scale(1); box-shadow: 0 0 22px 8px rgba(255, 200, 100, 0.6), 0 0 44px 16px rgba(200, 150, 60, 0.3); } }
@keyframes mr-ripple { 0% { transform: scale(0.8); opacity: 0.3; } 50% { transform: scale(1.2); opacity: 0.1; } 100% { transform: scale(1.5); opacity: 0; } }
/* end per-scene blocks */
