/* style.css -- merged from per-tier scene CSS by wizard2.stages.build_deploy */
/* Scene root must fill its positioning container. */
.scn { position: absolute; inset: 0; }

/* ============ tier U ============ */
/* per-scene blocks (EXP step_scenes) */
.scn-midnight-murder-stains { background: linear-gradient(180deg, #0d0d1a 0%, #1a1a2e 40%, #2a1a2a 100%), radial-gradient(ellipse at 50% 100%, #2a1a2a 0%, transparent 60%); }
.scn-midnight-murder-stains .wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(135deg, #1a1a2e 0%, #2a2233 50%, #3a2a3a 100%); }
.scn-midnight-murder-stains .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #2a2233 0%, #1a1a2e 50%, #0d0d1a 100%); box-shadow: inset 0 4px 12px rgba(0,0,0,.6); }
.scn-midnight-murder-stains .window { position:absolute; top:20%; left:35%; width:80px; height:100px; background: #0a0a1a; border: 4px solid #1a1a2a; border-radius:4px; box-shadow: inset 0 0 20px rgba(100,120,200,.2); }
.scn-midnight-murder-stains .moonlight { position:absolute; top:20%; left:35%; width:80px; height:100px; background: linear-gradient(135deg, rgba(180,200,255,0.15) 0%, rgba(180,200,255,0.05) 100%); filter: blur(8px); animation: mms-moon 12s ease-in-out infinite alternate; }
.scn-midnight-murder-stains .stain { position:absolute; width:40px; height:30px; background: radial-gradient(ellipse, #5e2a1a 0%, #3a1a0a 60%, transparent 100%); border-radius:50% 40% 30% 50%; filter: blur(2px); }
.scn-midnight-murder-stains .stain-1 { bottom:30%; left:20%; transform:rotate(15deg); animation: mms-stain 20s ease-in-out infinite; }
.scn-midnight-murder-stains .stain-2 { bottom:28%; right:25%; width:50px; height:20px; transform:rotate(-20deg); animation: mms-stain 25s ease-in-out infinite reverse; }
.scn-midnight-murder-stains .figure { position:absolute; bottom:30%; left:50%; width:20px; height:50px; transform:translateX(-50%); background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:40% 40% 30% 30% / 50% 50% 30% 30%; box-shadow: -4px 0 6px rgba(0,0,0,.5); animation: mms-figure 6s ease-in-out infinite; }
@keyframes mms-moon { 0% { opacity:.3 } 50% { opacity:.6 } 100% { opacity:.4 } }
@keyframes mms-stain { 0% { filter: blur(2px) saturate(0.8) } 50% { filter: blur(4px) saturate(1.2) } 100% { filter: blur(2px) saturate(0.9) } }
@keyframes mms-figure { 0%,100% { transform:translateX(-50%) rotate(0deg) } 25% { transform:translateX(-50%) translateY(-2px) rotate(-2deg) } 75% { transform:translateX(-50%) translateY(1px) rotate(2deg) } }

.scn-storm-approaching { background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2e 50%, #2a2a3e 100%), radial-gradient(ellipse at 50% 0%, #3a3a5a 0%, transparent 70%); }
.scn-storm-approaching .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #1a1a2e 0%, #2a2a4e 100%); animation: sa-sky 15s ease-in-out infinite alternate; }
.scn-storm-approaching .cloud { position:absolute; width:200px; height:40px; background: linear-gradient(180deg, rgba(80,80,100,0.7) 0%, rgba(40,40,60,0.3) 100%); border-radius:50%; filter: blur(12px); }
.scn-storm-approaching .cloud-1 { top:10%; left:-10%; animation: sa-drift 40s linear infinite; }
.scn-storm-approaching .cloud-2 { top:20%; left:40%; width:160px; height:30px; animation: sa-drift 55s linear infinite reverse; animation-delay: -10s; }
.scn-storm-approaching .cypress { position:absolute; bottom:30%; width:20px; height:100px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:50% 50% 20% 20% / 60% 60% 20% 20%; }
.scn-storm-approaching .cypress-1 { left:20%; transform:scale(1.2); }
.scn-storm-approaching .cypress-2 { right:30%; height:80px; transform:scale(0.9); }
.scn-storm-approaching .road { position:absolute; bottom:0; left:20%; right:20%; height:30%; background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2a 100%); border-radius:30% 30% 0 0 / 100% 100% 0 0; clip-path: polygon(0% 0%, 10% 100%, 90% 100%, 100% 0%); }
.scn-storm-approaching .hills { position:absolute; bottom:30%; left:0; right:0; height:20%; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%); border-radius:40% 60% 0 0 / 80% 70% 0 0; animation: sa-hills 18s ease-in-out infinite alternate; }
@keyframes sa-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes sa-drift { 0% { transform: translateX(-30px) } 50% { transform: translateX(40px) } 100% { transform: translateX(-30px) } }
@keyframes sa-hills { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(0) } }

.scn-omen-lance-flame { background: linear-gradient(180deg, #0a0a12 0%, #1a1a2a 60%, #2a1a1a 100%), radial-gradient(ellipse at 50% 80%, #2a1a1a 0%, transparent 60%); }
.scn-omen-lance-flame .bg-dark { position:absolute; inset:0; background: linear-gradient(135deg, #0a0a12 0%, #1a1a2a 100%); }
.scn-omen-lance-flame .pike { position:absolute; bottom:30%; left:50%; width:4px; height:200px; transform:translateX(-50%) rotate(-15deg); background: linear-gradient(180deg, #5a4a3a 0%, #2a1a1a 100%); transform-origin: bottom center; border-radius:2px; }
.scn-omen-lance-flame .pike-hand { position:absolute; bottom:30%; left:50%; width:12px; height:30px; transform:translateX(-50%) rotate(-15deg); background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%); border-radius: 20% 20% 40% 40%; }
.scn-omen-lance-flame .flame { position:absolute; top:15%; left:50%; width:6px; height:20px; transform:translateX(-50%); background: radial-gradient(ellipse at center, #ffc060 0%, #ff8030 40%, transparent 100%); border-radius:50% 50% 20% 20%; animation: olf-flame 0.8s ease-in-out infinite; }
.scn-omen-lance-flame .glow-glow { position:absolute; top:13%; left:50%; width:40px; height:40px; transform:translate(-50%, -50%); background: radial-gradient(circle, rgba(255,160,60,0.4) 0%, rgba(255,60,30,0.1) 60%, transparent 100%); filter: blur(6px); animation: olf-glow 1.2s ease-in-out infinite; }
.scn-omen-lance-flame .arm { position:absolute; bottom:30%; left:40%; width:40px; height:12px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 20% 40% 40% 20%; transform: rotate(20deg); transform-origin: right center; }
.scn-omen-lance-flame .body { position:absolute; bottom:20%; left:35%; width:30px; height:70px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:40% 40% 30% 30% / 60% 60% 30% 30%; }
@keyframes olf-flame { 0% { transform: translateX(-50%) scaleY(1) } 50% { transform: translateX(-50%) scaleY(1.3) scaleX(0.9) } 100% { transform: translateX(-50%) scaleY(0.9) scaleX(1.1) } }
@keyframes olf-glow { 0% { opacity:.5; transform: translate(-50%, -50%) scale(0.9) } 50% { opacity:.8; transform: translate(-50%, -50%) scale(1.1) } 100% { opacity:.5; transform: translate(-50%, -50%) scale(0.9) } }

.scn-lightning-storm { background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2e 50%, #2a2a3e 100%), radial-gradient(ellipse at 50% 50%, #3a3a5a 0%, transparent 80%); }
.scn-lightning-storm .bg-storm { position:absolute; inset:0; background: linear-gradient(135deg, #0a0a1a 0%, #1a1a2e 100%); }
.scn-lightning-storm .castle { position:absolute; bottom:20%; left:30%; width:120px; height:150px; background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2a 100%); border-radius: 10% 10% 5% 5%; clip-path: polygon(0% 100%, 20% 70%, 20% 40%, 40% 20%, 60% 40%, 60% 70%, 80% 100%); box-shadow: 0 0 20px rgba(0,0,0,.8); }
.scn-lightning-storm .lightning { position:absolute; top:10%; width:4px; height:60px; background: linear-gradient(180deg, #fff 0%, #aaccff 50%, transparent 100%); filter: blur(2px); box-shadow: 0 0 20px rgba(170,204,255,0.5); }
.scn-lightning-storm .bolt-1 { left:20%; transform: rotate(-20deg); animation: ls-flash 3s ease-in-out infinite; }
.scn-lightning-storm .bolt-2 { right:25%; transform: rotate(15deg); height:80px; animation: ls-flash 3.5s ease-in-out infinite reverse; animation-delay: 1.5s; }
.scn-lightning-storm .rain { position:absolute; inset:0; background: linear-gradient(180deg, transparent 0%, rgba(100,120,180,0.1) 100%); animation: ls-rain 0.5s linear infinite; }
.scn-lightning-storm .cloud-bg { position:absolute; top:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #1a1a2e 0%, #2a2a4e 100%); filter: blur(20px); }
.scn-lightning-storm .flash { position:absolute; inset:0; background: rgba(200,220,255,0.2); animation: ls-flash-bg 4s ease-in-out infinite; pointer-events: none; }
@keyframes ls-flash { 0%,100% { opacity:0 } 10% { opacity:1 } 20% { opacity:0.3 } 30% { opacity:0 } 90% { opacity:0 } }
@keyframes ls-rain { 0% { background-position: 0 0 } 100% { background-position: 0 50px } }
@keyframes ls-flash-bg { 0%,90%,100% { opacity:0 } 10% { opacity:0.5 } 20% { opacity:0.1 } }

.scn-emily-weary-of-scold {
  background: linear-gradient(180deg, #2a1e1a 0%, #1a1410 40%, #120c0a 100%), radial-gradient(ellipse at 50% 100%, #3a2a1e 0%, transparent 60%);
}
.scn-emily-weary-of-scold .wall   { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #3a2a1e 0%, #2a1e14 100%); animation: ewos-wall 10s ease-in-out infinite alternate; }
.scn-emily-weary-of-scold .floor  { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #1a140e 0%, #120c0a 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 8px 12px rgba(0,0,0,.5); }
.scn-emily-weary-of-scold .window { position:absolute; top:15%; left:35%; width:30%; height:50%; background: linear-gradient(180deg, rgba(80,60,40,.3) 0%, rgba(40,30,20,.1) 100%); border: 4px solid #1a140e; border-radius:4px; box-shadow: inset 0 0 20px rgba(0,0,0,.4); animation: ewos-window 8s ease-in-out infinite alternate; }
.scn-emily-weary-of-scold .candle { position:absolute; bottom:45%; left:50%; width:8px; height:50px; background: linear-gradient(180deg, #f0c080 0%, #c08040 50%, #4a3020 100%); border-radius: 2px 2px 0 0; transform:translateX(-50%); }
.scn-emily-weary-of-scold .figure { position:absolute; bottom:25%; left:50%; width:28px; height:80px; transform:translateX(-50%); background: linear-gradient(180deg, #2a1e1a 0%, #1a0e0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: ewos-figure 6s ease-in-out infinite; }
.scn-emily-weary-of-scold .chair  { position:absolute; bottom:20%; left:40%; width:40px; height:60px; background: linear-gradient(180deg, #1a140e 0%, #0a0806 100%); border-radius: 10% 10% 0 0; transform: skewY(3deg); animation: ewos-chair 5s ease-in-out infinite; }
.scn-emily-weary-of-scold .shadow { position:absolute; bottom:20%; left:45%; width:60px; height:20px; background: radial-gradient(ellipse, rgba(0,0,0,.5) 0%, transparent 100%); filter: blur(6px); animation: ewos-shadow 4s ease-in-out infinite alternate; }

@keyframes ewos-wall { 0% { opacity: .7 } 50% { opacity: .85 } 100% { opacity: .7 } }
@keyframes ewos-window { 0% { opacity: .1 } 50% { opacity: .25 } 100% { opacity: .1 } }
@keyframes ewos-figure { 0%,100% { transform: translateX(-50%) translateY(0) rotate(0) } 25% { transform: translateX(-48%) translateY(-2px) rotate(-2deg) } 75% { transform: translateX(-52%) translateY(1px) rotate(2deg) } }
@keyframes ewos-chair { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }
@keyframes ewos-shadow { 0% { transform: scale(1) } 50% { transform: scale(1.1) } 100% { transform: scale(.95) } }

.scn-emily-wishes-otherwise {
  background: linear-gradient(180deg, #2a1e1a 0%, #1a1410 40%, #120c0a 100%), radial-gradient(ellipse at 50% 100%, #3a2a1e 0%, transparent 60%);
}
.scn-emily-wishes-otherwise .wall    { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #3a2a1e 0%, #2a1e14 100%); animation: ewwi-wall 12s ease-in-out infinite alternate; }
.scn-emily-wishes-otherwise .floor   { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #1a140e 0%, #120c0a 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 10px 15px rgba(0,0,0,.6); }
.scn-emily-wishes-otherwise .table   { position:absolute; bottom:25%; left:20%; width:60%; height:20px; background: linear-gradient(180deg, #1a140e 0%, #0a0806 100%); border-radius: 4px; transform: perspective(200px) rotateX(10deg); animation: ewwi-table 7s ease-in-out infinite; }
.scn-emily-wishes-otherwise .candle  { position:absolute; bottom:40%; left:50%; width:8px; height:45px; transform:translateX(-50%); background: linear-gradient(180deg, #f0c080 0%, #c08040 50%, #4a3020 100%); border-radius: 2px; animation: ewwi-candle 3s ease-in-out infinite alternate; }
.scn-emily-wishes-otherwise .figure  { position:absolute; bottom:20%; left:35%; width:26px; height:70px; background: linear-gradient(180deg, #2a1e1a 0%, #1a0e0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ewwi-figure 8s ease-in-out infinite; }
.scn-emily-wishes-otherwise .books   { position:absolute; bottom:35%; left:25%; width:20px; height:30px; background: linear-gradient(180deg, #3a2a1e 0%, #1a140e 100%); border-radius: 2px; box-shadow: 4px 0 0 #2a1e0e, 8px 0 0 #1a140e; animation: ewwi-books 6s ease-in-out infinite; }
.scn-emily-wishes-otherwise .curtain { position:absolute; top:10%; right:15%; width:20%; height:70%; background: linear-gradient(180deg, #1a140e 0%, #0a0806 100%); filter: blur(2px); border-radius: 10% 10% 0 0; animation: ewwi-curtain 10s ease-in-out infinite alternate; }

@keyframes ewwi-wall { 0% { opacity: .75 } 50% { opacity: .9 } 100% { opacity: .75 } }
@keyframes ewwi-table { 0%,100% { transform: perspective(200px) rotateX(10deg) translateY(0) } 50% { transform: perspective(200px) rotateX(12deg) translateY(-1px) } }
@keyframes ewwi-candle { 0% { opacity: .7; transform: translateX(-50%) scaleY(1) } 50% { opacity: 1; transform: translateX(-50%) scaleY(1.05) } 100% { opacity: .8; transform: translateX(-50%) scaleY(.95) } }
@keyframes ewwi-figure { 0%,100% { transform: translateX(0) rotate(0) } 30% { transform: translateX(4px) rotate(-1deg) } 70% { transform: translateX(-3px) rotate(1deg) } }
@keyframes ewwi-books { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes ewwi-curtain { 0% { transform: translateX(0) } 50% { transform: translateX(-5px) } 100% { transform: translateX(0) } }

.scn-aunt-twists-reason {
  background: linear-gradient(180deg, #2a1e1a 0%, #1a1410 40%, #120c0a 100%), radial-gradient(ellipse at 50% 100%, #3a2a1e 0%, transparent 60%);
}
.scn-aunt-twists-reason .wall      { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #3a2a1e 0%, #2a1e14 100%); animation: atr-wall 5s ease-in-out infinite alternate; }
.scn-aunt-twists-reason .floor     { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #1a140e 0%, #120c0a 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 10px 18px rgba(0,0,0,.7); }
.scn-aunt-twists-reason .fireplace { position:absolute; bottom:20%; left:50%; width:80px; height:80px; transform:translateX(-50%); background: linear-gradient(180deg, #1a140e 0%, #0a0806 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 -10px 20px rgba(0,0,0,.6); }
.scn-aunt-twists-reason .fire      { position:absolute; bottom:30%; left:50%; width:40px; height:40px; transform:translateX(-50%); background: radial-gradient(circle, #c07030 0%, #802010 60%, #1a0800 100%); border-radius:50%; filter: blur(4px); animation: atr-fire 2s ease-in-out infinite alternate; }
.scn-aunt-twists-reason .figure-a  { position:absolute; bottom:20%; left:30%; width:28px; height:75px; background: linear-gradient(180deg, #2a1e1a 0%, #1a0e0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: atr-figure-a 3s ease-in-out infinite; }
.scn-aunt-twists-reason .figure-b  { position:absolute; bottom:22%; left:60%; width:30px; height:70px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: atr-figure-b 4s ease-in-out infinite; }
.scn-aunt-twists-reason .shadow    { position:absolute; bottom:18%; left:40%; width:80px; height:15px; background: radial-gradient(ellipse, rgba(0,0,0,.6) 0%, transparent 100%); filter: blur(5px); animation: atr-shadow 2s ease-in-out infinite alternate; }

@keyframes atr-wall { 0% { opacity: .8 } 50% { opacity: .9 } 100% { opacity: .8 } }
@keyframes atr-fire { 0% { transform: translateX(-50%) scale(1); opacity: .7 } 50% { transform: translateX(-50%) scale(1.1); opacity: 1 } 100% { transform: translateX(-50%) scale(.95); opacity: .6 } }
@keyframes atr-figure-a { 0%,100% { transform: translateX(0) rotate(0) } 25% { transform: translateX(3px) rotate(-3deg) } 75% { transform: translateX(-2px) rotate(2deg) } }
@keyframes atr-figure-b { 0%,100% { transform: translateX(0) rotate(0) } 30% { transform: translateX(-4px) rotate(4deg) } 70% { transform: translateX(2px) rotate(-2deg) } }
@keyframes atr-shadow { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.2) } 100% { transform: scaleX(.9) } }

.scn-aunt-final-word {
  background: linear-gradient(180deg, #2a1e1a 0%, #1a1410 40%, #120c0a 100%), radial-gradient(ellipse at 50% 100%, #3a2a1e 0%, transparent 60%);
}
.scn-aunt-final-word .wall   { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #3a2a1e 0%, #2a1e14 100%); animation: afw-wall 4s ease-in-out infinite alternate; }
.scn-aunt-final-word .floor  { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #1a140e 0%, #120c0a 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 8px 15px rgba(0,0,0,.6); }
.scn-aunt-final-word .window { position:absolute; top:15%; right:20%; width:30%; height:50%; background: linear-gradient(180deg, rgba(60,40,20,.2) 0%, rgba(20,10,0,.05) 100%); border: 4px solid #1a140e; border-radius:4px; box-shadow: inset 0 0 30px rgba(0,0,0,.5); animation: afw-window 6s ease-in-out infinite alternate; }
.scn-aunt-final-word .table  { position:absolute; bottom:25%; left:10%; width:40%; height:18px; background: linear-gradient(180deg, #1a140e 0%, #0a0806 100%); border-radius: 4px; transform: perspective(200px) rotateX(15deg); animation: afw-table 5s ease-in-out infinite; }
.scn-aunt-final-word .figure { position:absolute; bottom:20%; left:25%; width:28px; height:78px; background: linear-gradient(180deg, #2a1e1a 0%, #1a0e0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: afw-figure 3s ease-in-out infinite; }
.scn-aunt-final-word .candle { position:absolute; bottom:35%; left:60%; width:8px; height:40px; transform:translateX(-50%); background: linear-gradient(180deg, #f0c080 0%, #c08040 50%, #4a3020 100%); border-radius: 2px; animation: afw-candle 2s ease-in-out infinite alternate; }
.scn-aunt-final-word .letter { position:absolute; bottom:30%; left:15%; width:30px; height:40px; background: linear-gradient(180deg, #d0b080 0%, #a08050 100%); border-radius:2px; transform: rotate(-5deg); box-shadow: 0 2px 4px rgba(0,0,0,.4); animation: afw-letter 8s ease-in-out infinite; }

@keyframes afw-wall { 0% { opacity: .75 } 50% { opacity: .85 } 100% { opacity: .7 } }
@keyframes afw-window { 0% { opacity: .1 } 50% { opacity: .2 } 100% { opacity: .1 } }
@keyframes afw-table { 0%,100% { transform: perspective(200px) rotateX(15deg) translateY(0) } 50% { transform: perspective(200px) rotateX(18deg) translateY(-1px) } }
@keyframes afw-figure { 0%,100% { transform: translateX(0) rotate(0) } 25% { transform: translateX(2px) rotate(-2deg) } 75% { transform: translateX(-2px) rotate(1deg) } }
@keyframes afw-candle { 0% { opacity: .6; transform: translateX(-50%) scaleY(1) } 50% { opacity: 1; transform: translateX(-50%) scaleY(1.05) } 100% { opacity: .7; transform: translateX(-50%) scaleY(.95) } }
@keyframes afw-letter { 0% { transform: rotate(-5deg) translateY(0) } 50% { transform: rotate(-3deg) translateY(-2px) } 100% { transform: rotate(-5deg) translateY(0) } }

.scn-montoni-threatens { background: linear-gradient(180deg, #1c1a2a 0%, #2a2436 40%, #3a2e40 100%), radial-gradient(ellipse at 30% 50%, #4a3c50 0%, transparent 60%); }
.scn-montoni-threatens .wall-left { position:absolute; left:0; top:0; width:35%; height:100%; background: linear-gradient(90deg, #2a2436 0%, #3a2e40 100%); }
.scn-montoni-threatens .wall-right { position:absolute; right:0; top:0; width:35%; height:100%; background: linear-gradient(270deg, #1c1a2a 0%, #2a2436 100%); }
.scn-montoni-threatens .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #3a2e40 0%, #1c1a2a 100%); }
.scn-montoni-threatens .window-arch { position:absolute; inset:10% 40% 40% 40%; background: radial-gradient(ellipse at 50% 70%, #4a5050 0%, #2a2e30 60%, transparent 100%); border-radius:50% 50% 0 0 / 80% 80% 0 0; box-shadow: inset 0 -20px 30px rgba(0,0,0,.8); }
.scn-montoni-threatens .moonlight { position:absolute; top:8%; left:42%; width:16%; height:25%; background: radial-gradient(ellipse at center, rgba(180,200,230,.3) 0%, rgba(180,200,230,.05) 60%, transparent 100%); border-radius:50%; animation: mt-moonlight 8s ease-in-out infinite alternate; }
.scn-montoni-threatens .figure-montoni { position:absolute; bottom:25%; left:30%; width:60px; height:120px; background: linear-gradient(180deg, #1a1a28 0%, #0a0a14 100%); border-radius:50% 50% 40% 40% / 70% 70% 50% 50%; transform-origin: bottom center; animation: mt-montoni 5s ease-in-out infinite; }
.scn-montoni-threatens .figure-emily { position:absolute; bottom:25%; right:30%; width:45px; height:100px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a28 100%); border-radius:50% 50% 40% 40% / 70% 70% 50% 50%; transform-origin: bottom center; animation: mt-emily 5s ease-in-out infinite; }
.scn-montoni-threatens .candle-glow { position:absolute; bottom:38%; left:38%; width:8px; height:8px; background:radial-gradient(circle, #e0a060 0%, #b07040 40%, transparent 70%); border-radius:50%; box-shadow: 0 0 30px 10px rgba(192,120,60,.5); animation: mt-candle 2s ease-in-out infinite alternate; }
@keyframes mt-moonlight { 0% { opacity:.3; transform: scale(1); } 50% { opacity:.6; transform: scale(1.15); } 100% { opacity:.4; transform: scale(.95); } }
@keyframes mt-montoni { 0% { transform: translateX(0) rotate(-1deg); } 25% { transform: translateX(-5px) rotate(2deg); } 50% { transform: translateX(0) rotate(-2deg); } 75% { transform: translateX(5px) rotate(1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes mt-emily { 0% { transform: translateX(0) translateY(0) rotate(0); } 50% { transform: translateX(3px) translateY(-2px) rotate(2deg); } 100% { transform: translateX(0) translateY(0) rotate(0); } }
@keyframes mt-candle { 0% { opacity:.7; transform: scale(1); box-shadow: 0 0 20px 8px rgba(192,120,60,.4); } 100% { opacity:1; transform: scale(1.2); box-shadow: 0 0 35px 14px rgba(224,160,96,.5); } }

.scn-aunt-fits { background: linear-gradient(180deg, #16121c 0%, #221a2a 50%, #2a1e2e 100%), radial-gradient(ellipse at 50% 0%, #3c2a3a 0%, transparent 70%); }
.scn-aunt-fits .bg-dark { position:absolute; inset:0; background: linear-gradient(180deg, rgba(22,18,28,.8) 0%, rgba(34,26,42,.9) 100%); }
.scn-aunt-fits .floor-tiles { position:absolute; bottom:0; left:0; right:0; height:20%; background: repeating-linear-gradient(90deg, #2a1e2e 0px, #3a2a3a 2px, #2a1e2e 4px); border-radius: 0 0 4% 4%; }
.scn-aunt-fits .chair { position:absolute; bottom:20%; left:50%; width:80px; height:100px; transform:translateX(-50%); background: linear-gradient(180deg, #3a2a2a 0%, #1a1212 100%); border-radius:20% 20% 10% 10%; box-shadow: inset 0 -10px 20px rgba(0,0,0,.6); animation: af-chair 6s ease-in-out infinite; }
.scn-aunt-fits .figure-aunt { position:absolute; bottom:25%; left:45%; width:50px; height:90px; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: af-aunt 2s ease-in-out infinite; }
.scn-aunt-fits .figure-emily { position:absolute; bottom:25%; right:30%; width:40px; height:80px; background: linear-gradient(180deg, #3a2a3a 0%, #1a121a 100%); border-radius:50% 50% 40% 40% / 70% 70% 50% 50%; animation: af-emily 4s ease-in-out infinite; }
.scn-aunt-fits .water-basin { position:absolute; bottom:18%; left:38%; width:30px; height:15px; background: radial-gradient(ellipse at 50% 30%, #4a5a5a 0%, #2a3a3a 100%); border-radius:50%; box-shadow: 0 2px 8px rgba(0,0,0,.5); }
.scn-aunt-fits .spasm-mist { position:absolute; top:30%; left:40%; width:20%; height:30%; background: radial-gradient(ellipse at center, rgba(60,30,40,.2) 0%, transparent 70%); border-radius:50%; filter: blur(8px); animation: af-mist 3s ease-in-out infinite alternate; }
@keyframes af-chair { 0% { transform:translateX(-50%) rotate(-2deg); } 50% { transform:translateX(-50%) rotate(3deg); } 100% { transform:translateX(-50%) rotate(-2deg); } }
@keyframes af-aunt { 0% { transform: translateX(0) rotate(-5deg) scale(1); } 25% { transform: translateX(2px) rotate(8deg) scale(1.05); } 50% { transform: translateX(-3px) rotate(-10deg) scale(1.1); } 75% { transform: translateX(1px) rotate(5deg) scale(1.05); } 100% { transform: translateX(0) rotate(0) scale(1); } }
@keyframes af-emily { 0% { transform: translateX(0) translateY(0); } 50% { transform: translateX(4px) translateY(-3px); } 100% { transform: translateX(0) translateY(0); } }
@keyframes af-mist { 0% { opacity:.1; transform: scale(1); } 100% { opacity:.4; transform: scale(1.3); } }

.scn-emily-wounded { background: linear-gradient(180deg, #18141c 0%, #2a1e2a 40%, #3a2a3a 100%), radial-gradient(ellipse at 20% 80%, #3c2a30 0%, transparent 60%); }
.scn-emily-wounded .bg-shadow { position:absolute; inset:0; background: linear-gradient(180deg, rgba(24,20,28,.8) 0%, rgba(42,30,42,.9) 100%); }
.scn-emily-wounded .wall-texture { position:absolute; right:0; top:20%; width:15%; height:60%; background: repeating-linear-gradient(180deg, #3a2a3a 0px, #2a1e2a 3px, #3a2a3a 6px); border-radius:10% 0 0 10%; }
.scn-emily-wounded .figure-emily { position:absolute; bottom:20%; left:40%; width:50px; height:110px; background: linear-gradient(180deg, #3a2a3a 0%, #1a121a 100%); border-radius:50% 50% 40% 40% / 70% 70% 50% 50%; transform-origin: bottom center; animation: ew-emily 5s ease-in-out infinite; }
.scn-emily-wounded .blood-drip { position:absolute; top:12%; left:38%; width:12px; height:30px; background: linear-gradient(180deg, #8c2a1a 0%, #5a1a10 100%); border-radius:50% 50% 30% 30% / 60% 60% 30% 30%; box-shadow: 0 0 10px 3px rgba(140,42,26,.5); animation: ew-drip 3s ease-in-out infinite; }
.scn-emily-wounded .figure-annette { position:absolute; bottom:20%; right:25%; width:45px; height:90px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius:50% 50% 40% 40% / 70% 70% 50% 50%; animation: ew-annette 6s ease-in-out infinite; }
.scn-emily-wounded .door-slit { position:absolute; left:5%; top:30%; width:8%; height:40%; background: #1a1a2a; box-shadow: inset 0 0 20px rgba(0,0,0,.8); border-radius: 0 4% 4% 0; animation: ew-door 8s ease-in-out infinite alternate; }
@keyframes ew-emily { 0% { transform: translateX(0) rotate(-1deg); } 30% { transform: translateX(2px) rotate(3deg); } 60% { transform: translateX(-1px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes ew-drip { 0% { transform: translateY(0) scale(1); opacity:.8; } 50% { transform: translateY(8px) scale(1.1); opacity:1; } 100% { transform: translateY(0) scale(1); opacity:.8; } }
@keyframes ew-annette { 0% { transform: translateX(0) translateY(0) rotate(0); } 50% { transform: translateX(5px) translateY(-2px) rotate(2deg); } 100% { transform: translateX(0) translateY(0) rotate(0); } }
@keyframes ew-door { 0% { width:8%; } 100% { width:10%; } }

.scn-annette-talks { background: linear-gradient(180deg, #1a1620 0%, #2a2230 50%, #3a2e3e 100%), radial-gradient(ellipse at 50% 30%, #3a2e3e 0%, transparent 70%); }
.scn-annette-talks .bg-dim { position:absolute; inset:0; background: linear-gradient(180deg, rgba(26,22,32,.85) 0%, rgba(42,34,48,.9) 100%); }
.scn-annette-talks .wall-panel { position:absolute; top:10%; left:10%; width:80%; height:70%; border:2px solid #2a2230; border-radius:4%; box-shadow: inset 0 0 30px rgba(0,0,0,.5); }
.scn-annette-talks .figure-annette { position:absolute; bottom:20%; left:35%; width:45px; height:90px; background: linear-gradient(180deg, #3a2e3a 0%, #1a121a 100%); border-radius:50% 50% 40% 40% / 70% 70% 50% 50%; transform-origin: bottom center; animation: at-annette 3s ease-in-out infinite; }
.scn-annette-talks .figure-emily { position:absolute; bottom:20%; right:30%; width:50px; height:100px; background: linear-gradient(180deg, #2a2230 0%, #1a1620 100%); border-radius:50% 50% 40% 40% / 70% 70% 50% 50%; animation: at-emily 4s ease-in-out infinite; }
.scn-annette-talks .whisper-ripple-a { position:absolute; top:40%; left:30%; width:40px; height:40px; border: 2px solid rgba(180,180,200,.15); border-radius:50%; animation: at-ripple-a 4s ease-out infinite; }
.scn-annette-talks .whisper-ripple-b { position:absolute; top:40%; left:30%; width:40px; height:40px; border: 2px solid rgba(180,180,200,.1); border-radius:50%; animation: at-ripple-b 4s ease-out infinite 2s; }
.scn-annette-talks .candle-globe { position:absolute; bottom:30%; left:48%; width:12px; height:12px; background:radial-gradient(circle, #e0a060 0%, #b07040 50%, transparent 80%); border-radius:50%; box-shadow: 0 0 40px 15px rgba(192,120,60,.3); animation: at-candle 3s ease-in-out infinite alternate; }
@keyframes at-annette { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(3px) rotate(-3deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes at-emily { 0% { transform: translateX(0) translateY(0) rotate(0); } 50% { transform: translateX(-4px) translateY(-2px) rotate(2deg); } 100% { transform: translateX(0) translateY(0) rotate(0); } }
@keyframes at-ripple-a { 0% { transform: scale(.5); opacity:.6; } 100% { transform: scale(2.5); opacity:0; } }
@keyframes at-ripple-b { 0% { transform: scale(.5); opacity:.6; } 100% { transform: scale(2.5); opacity:0; } }
@keyframes at-candle { 0% { opacity:.7; transform: scale(1); box-shadow: 0 0 30px 10px rgba(192,120,60,.3); } 100% { opacity:1; transform: scale(1.1); box-shadow: 0 0 50px 20px rgba(224,160,96,.4); } }

/* carlo-ambiguous – dim interior, trust (warm amber, soft browns) */
.scn-carlo-ambiguous { background: linear-gradient(180deg, #2a1e18 0%, #3a2a22 40%, #4a3a32 100%), radial-gradient(ellipse at 50% 100%, #4a3a32 0%, transparent 60%); }
.scn-carlo-ambiguous .wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #4a3a32 0%, #3a2a22 100%); z-index:1; }
.scn-carlo-ambiguous .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #2a1e18 0%, #1a1210 100%); z-index:2; }
.scn-carlo-ambiguous .table { position:absolute; bottom:28%; left:38%; width:100px; height:12px; background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%); border-radius:2px; box-shadow: 0 3px 8px rgba(0,0,0,.6); z-index:3; animation: ca-table 8s ease-in-out infinite; }
.scn-carlo-ambiguous .candle { position:absolute; bottom:38%; left:48%; width:8px; height:18px; background: linear-gradient(180deg, #c05a30 30%, #8a3a20 70%, #4a2010 100%); border-radius:30% 30% 10% 10%; box-shadow: 0 0 20px 10px rgba(192,90,48,.5), 0 0 40px 20px rgba(192,90,48,.2); z-index:4; animation: ca-candle 3s ease-in-out infinite alternate; }
.scn-carlo-ambiguous .figure { position:absolute; bottom:22%; left:45%; width:22px; height:48px; background: linear-gradient(180deg, #3a2a22 0%, #1a1210 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; z-index:5; transform-origin: bottom center; animation: ca-figure 12s ease-in-out infinite; }
.scn-carlo-ambiguous .window { position:absolute; top:12%; right:15%; width:60px; height:80px; background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 100%); border:4px solid #3a2a22; border-radius:4px 4px 8px 8px; box-shadow: inset 0 0 20px rgba(255,255,255,.05); z-index:6; animation: ca-window 20s ease-in-out infinite alternate; }
.scn-carlo-ambiguous .shadow-left { position:absolute; bottom:0; left:0; width:30%; height:50%; background: linear-gradient(90deg, #1a1210 0%, transparent 100%); z-index:7; }
.scn-carlo-ambiguous .shadow-right { position:absolute; bottom:0; right:0; width:30%; height:50%; background: linear-gradient(270deg, #1a1210 0%, transparent 100%); z-index:8; }

@keyframes ca-table { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes ca-candle { 0% { opacity:.8; transform: scaleY(1); box-shadow: 0 0 15px 6px rgba(192,90,48,.4); } 50% { opacity:1; transform: scaleY(1.05); box-shadow: 0 0 30px 12px rgba(192,90,48,.6); } 100% { opacity:.85; transform: scaleY(0.95); box-shadow: 0 0 20px 8px rgba(192,90,48,.35); } }
@keyframes ca-figure { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(-3px) rotate(-2deg); } 70% { transform: translateX(2px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes ca-window { 0% { opacity:.6; } 50% { opacity:.8; } 100% { opacity:.7; } }

/* anette-weeps – dim interior, sad (muted greys, soft blue, despair) */
.scn-anette-weeps { background: linear-gradient(180deg, #1e1e2e 0%, #2e2e3e 40%, #3e3e4e 100%), radial-gradient(ellipse at 50% 100%, #3e3e4e 0%, transparent 70%); }
.scn-anette-weeps .wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #3e3e4e 0%, #2e2e3e 100%); z-index:1; }
.scn-anette-weeps .floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #2e2e3e 0%, #1e1e2e 100%); z-index:2; }
.scn-anette-weeps .chair { position:absolute; bottom:30%; left:35%; width:60px; height:70px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:10% 10% 0 0; z-index:3; box-shadow: 0 4px 10px rgba(0,0,0,.5); }
.scn-anette-weeps .figure-weeping { position:absolute; bottom:25%; left:38%; width:26px; height:50px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; z-index:4; animation: aw-weep 6s ease-in-out infinite; transform-origin: bottom center; }
.scn-anette-weeps .handkerchief { position:absolute; bottom:32%; left:42%; width:14px; height:10px; background: linear-gradient(180deg, #6a6a6a 0%, #4a4a4a 100%); border-radius:30% 30% 60% 60%; z-index:5; animation: aw-handkerchief 6s ease-in-out infinite; }
.scn-anette-weeps .doorway { position:absolute; top:10%; left:50%; width:70px; height:120px; transform:translateX(-50%); background: #1a1a2a; border:4px solid #2a2a3a; border-radius:4px 4px 8px 8px; z-index:6; box-shadow: inset 0 0 30px rgba(0,0,0,.8); }
.scn-anette-weeps .shadow { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, transparent 0%, #1a1a2a 100%); z-index:7; }

@keyframes aw-weep { 0% { transform: translateX(0) rotate(-2deg); } 30% { transform: translateX(-4px) rotate(-4deg); } 60% { transform: translateX(2px) rotate(0deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes aw-handkerchief { 0% { transform: translateY(0) rotate(0deg); } 40% { transform: translateY(-3px) rotate(8deg); } 80% { transform: translateY(1px) rotate(-5deg); } 100% { transform: translateY(0) rotate(0deg); } }

/* no-news – dim interior, sad (muted browns, heavy shadows) */
.scn-no-news { background: linear-gradient(180deg, #1a1810 0%, #2a2218 40%, #3a2a1a 100%), radial-gradient(ellipse at 50% 100%, #3a2a1a 0%, transparent 70%); }
.scn-no-news .wall { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #3a2a1a 0%, #2a2218 100%); z-index:1; }
.scn-no-news .floor { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #2a2218 0%, #1a1810 100%); z-index:2; }
.scn-no-news .table { position:absolute; bottom:28%; left:40%; width:90px; height:10px; background: linear-gradient(180deg, #5a3a2a 0%, #3a2010 100%); border-radius:2px; box-shadow: 0 3px 8px rgba(0,0,0,.6); z-index:3; animation: nn-table 10s ease-in-out infinite; }
.scn-no-news .candle { position:absolute; bottom:36%; left:48%; width:6px; height:15px; background: linear-gradient(180deg, #b05030 30%, #7a3010 70%, #3a1000 100%); border-radius:30% 30% 10% 10%; box-shadow: 0 0 15px 6px rgba(176,80,48,.4); z-index:4; animation: nn-candle 4s ease-in-out infinite alternate; }
.scn-no-news .figure { position:absolute; bottom:22%; left:44%; width:20px; height:45px; background: linear-gradient(180deg, #2a2218 0%, #1a1810 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; z-index:5; transform-origin: bottom center; animation: nn-figure 8s ease-in-out infinite; }
.scn-no-news .doorway { position:absolute; top:8%; right:12%; width:60px; height:100px; background: #1a1810; border:4px solid #2a2218; border-radius:4px 4px 8px 8px; z-index:6; box-shadow: inset 0 0 20px rgba(0,0,0,.8); }
.scn-no-news .book { position:absolute; bottom:30%; left:30%; width:16px; height:22px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:3px; transform: rotate(8deg); z-index:6; box-shadow: 1px 1px 4px rgba(0,0,0,.5); }
.scn-no-news .shadow { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, transparent 0%, #1a1810 100%); z-index:7; }

@keyframes nn-table { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-1px); } }
@keyframes nn-candle { 0% { opacity:.7; box-shadow: 0 0 10px 4px rgba(176,80,48,.3); } 50% { opacity:1; box-shadow: 0 0 25px 10px rgba(176,80,48,.5); } 100% { opacity:.8; box-shadow: 0 0 15px 6px rgba(176,80,48,.35); } }
@keyframes nn-figure { 0% { transform: translateX(0) rotate(0deg); } 40% { transform: translateX(-2px) rotate(-1deg); } 80% { transform: translateX(1px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }

/* night-serenity – moonlit, calm (cool blues, silvers, slow drift) */
.scn-night-serenity { background: linear-gradient(180deg, #0a0a1a 0%, #1a1a30 40%, #2a2a4a 100%), radial-gradient(ellipse at 50% 0%, #2a2a4a 0%, transparent 80%); }
.scn-night-serenity .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #0a0a1a 0%, #1a1a30 60%, transparent 100%); z-index:1; animation: ns-sky 20s ease-in-out infinite alternate; }
.scn-night-serenity .moon { position:absolute; top:12%; left:20%; width:50px; height:50px; background: radial-gradient(circle at 40% 40%, #f0f0ff 0%, #c0c0e0 60%, #a0a0c0 100%); border-radius:50%; box-shadow: 0 0 40px 20px rgba(200,200,255,.3), 0 0 100px 40px rgba(200,200,255,.1); z-index:2; animation: ns-moon 15s ease-in-out infinite alternate; }
.scn-night-serenity .stars { position:absolute; inset:0 0 45% 0; background: radial-gradient(2px 2px at 20% 20%, #ffffff 0%, transparent 100%), radial-gradient(2px 2px at 40% 70%, #ffffff 0%, transparent 100%), radial-gradient(1px 1px at 60% 30%, #ffffff 0%, transparent 100%), radial-gradient(1px 1px at 80% 60%, #ffffff 0%, transparent 100%), radial-gradient(2px 2px at 10% 90%, #ffffff 0%, transparent 100%), radial-gradient(1px 1px at 90% 10%, #ffffff 0%, transparent 100%), radial-gradient(2px 2px at 50% 50%, #ffffff 0%, transparent 100%); z-index:3; animation: ns-stars 30s linear infinite; }
.scn-night-serenity .castle { position:absolute; bottom:40%; left:10%; width:80%; height:30%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:0 0 4% 4%; z-index:4; box-shadow: 0 -4px 20px rgba(0,0,0,.6); }
.scn-night-serenity .tower-left { position:absolute; bottom:55%; left:15%; width:18%; height:30%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:2% 2% 0 0; z-index:5; box-shadow: -2px 0 10px rgba(0,0,0,.4); animation: ns-tower 8s ease-in-out infinite alternate; }
.scn-night-serenity .tower-right { position:absolute; bottom:55%; right:15%; width:18%; height:30%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:2% 2% 0 0; z-index:6; box-shadow: 2px 0 10px rgba(0,0,0,.4); animation: ns-tower 8s ease-in-out infinite alternate-reverse; }
.scn-night-serenity .rampart { position:absolute; bottom:45%; left:5%; right:5%; height:4%; background: #1a1a2a; z-index:7; border-radius:2px; box-shadow: 0 -2px 8px rgba(0,0,0,.5); }
.scn-night-serenity .sentinel { position:absolute; bottom:42%; left:50%; width:12px; height:30px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; z-index:8; transform-origin: bottom center; animation: ns-sentinel 12s ease-in-out infinite; }

@keyframes ns-sky { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.9; } }
@keyframes ns-moon { 0% { transform: translateY(0) scale(1); opacity:.9; } 50% { transform: translateY(-5px) scale(1.02); opacity:1; } 100% { transform: translateY(0) scale(1); opacity:.92; } }
@keyframes ns-stars { 0% { opacity:.6; } 50% { opacity:.9; } 100% { opacity:.6; } }
@keyframes ns-tower { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.03); } 100% { transform: scaleY(1); } }
@keyframes ns-sentinel { 0% { transform: translateX(0) rotate(0deg); } 40% { transform: translateX(-8px) rotate(-2deg); } 80% { transform: translateX(8px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }

.scn-lamp-omens { background: radial-gradient(ellipse at 40% 50%, #3a1a0a 0%, #1a0a05 60%), linear-gradient(180deg, #1a0a05 0%, #0a0502 100%); }
.scn-lamp-omens .chamber-bg { position:absolute; inset:0; background: linear-gradient(135deg, #2a1210 0%, #1a0805 100%); animation: lo-shift 12s ease-in-out infinite alternate; }
.scn-lamp-omens .lamp-glow { position:absolute; bottom:45%; left:35%; width:80px; height:80px; background: radial-gradient(circle, #ff8c42 0%, #d46020 40%, transparent 70%); border-radius:50%; box-shadow: 0 0 60px 30px #ff8c4280, 0 0 120px 60px #d4602040; animation: lo-pulse 3s ease-in-out infinite; }
.scn-lamp-omens .lamp-body { position:absolute; bottom:40%; left:37%; width:30px; height:50px; background: linear-gradient(180deg, #b87333 0%, #8b5e3c 100%); border-radius:40% 40% 20% 20% / 60% 60% 20% 20%; transform:rotate(5deg); animation: lo-flicker 2s ease-in-out infinite; }
.scn-lamp-omens .table { position:absolute; bottom:30%; left:30%; right:30%; height:12px; background: linear-gradient(180deg, #5a3e2e 0%, #3a261a 100%); border-radius:4px; box-shadow: 0 -4px 8px rgba(0,0,0,0.5); }
.scn-lamp-omens .figure-silhouette { position:absolute; bottom:25%; left:55%; width:24px; height:60px; background: linear-gradient(180deg, #1a0a05 0%, #0a0502 100%); border-radius:50% 50% 40% 40% / 70% 70% 30% 30%; transform-origin: bottom; animation: lo-turn 6s ease-in-out infinite; }
.scn-lamp-omens .curtain { position:absolute; top:0; right:0; width:40%; height:100%; background: linear-gradient(180deg, #2a1a12 0%, #1a0a05 100%); border-radius: 0 0 0 30%; box-shadow: inset 8px 0 12px rgba(0,0,0,0.6); animation: lo-drape 8s ease-in-out infinite; }
@keyframes lo-shift { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes lo-pulse { 0% { transform: scale(1); opacity:0.9 } 50% { transform: scale(1.1); opacity:1 } 100% { transform: scale(0.95); opacity:0.8 } }
@keyframes lo-flicker { 0% { transform: rotate(3deg) } 50% { transform: rotate(-2deg) } 100% { transform: rotate(4deg) } }
@keyframes lo-turn { 0% { transform: rotate(-5deg) } 50% { transform: rotate(5deg) translateX(2px) } 100% { transform: rotate(-3deg) } }
@keyframes lo-drape { 0% { transform: translateX(0) } 50% { transform: translateX(-8px) } 100% { transform: translateX(0) } }

.scn-disappearance { background: linear-gradient(180deg, #0a0a14 0%, #141020 40%, #1a1a30 100%), radial-gradient(ellipse at 80% 20%, #2a2a40 0%, transparent 70%); }
.scn-disappearance .night-sky { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #1a1a30 0%, #0a0a20 100%); animation: di-fade 15s ease-in-out infinite alternate; }
.scn-disappearance .castle-silhouette { position:absolute; bottom:25%; left:10%; right:10%; height:30%; background: linear-gradient(180deg, #1a1620 0%, #0a0a10 100%); border-radius: 10% 10% 0 0 / 30% 30% 0 0; box-shadow: 0 0 20px rgba(0,0,0,0.8); animation: di-breathe 12s ease-in-out infinite; }
.scn-disappearance .tree-left { position:absolute; bottom:20%; left:5%; width:60px; height:120px; background: linear-gradient(180deg, #1a130e 0%, #0a0705 100%); border-radius: 50% 50% 10% 10% / 80% 80% 20% 20%; transform:rotate(10deg); animation: di-sway 8s ease-in-out infinite; }
.scn-disappearance .tree-right { position:absolute; bottom:20%; right:5%; width:70px; height:140px; background: linear-gradient(180deg, #1a130e 0%, #0a0705 100%); border-radius: 50% 50% 10% 10% / 80% 80% 20% 20%; transform:rotate(-8deg); animation: di-sway 9s ease-in-out infinite reverse; }
.scn-disappearance .falling-leaves { position:absolute; top:10%; left:0; width:100%; height:100%; background: radial-gradient(ellipse at 30% 20%, #5a4020 0%, transparent 20%), radial-gradient(ellipse at 70% 40%, #5a4020 0%, transparent 15%), radial-gradient(ellipse at 50% 70%, #4a3010 0%, transparent 10%); background-size: 10px 20px, 15px 25px, 8px 15px; background-repeat: repeat; animation: di-fall 7s linear infinite; }
.scn-disappearance .maid-figure { position:absolute; bottom:18%; left:35%; width:20px; height:50px; background: linear-gradient(180deg, #2a1a14 0%, #1a0a05 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom; animation: di-walk 5s ease-in-out infinite; }
@keyframes di-fade { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes di-breathe { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(0.98) } }
@keyframes di-sway { 0% { transform: rotate(8deg) } 50% { transform: rotate(-5deg) } 100% { transform: rotate(10deg) } }
@keyframes di-fall { 0% { background-position: 0 -20px, 0 -30px, 0 -15px; } 100% { background-position: 0 120vh, 0 150vh, 0 100vh; } }
@keyframes di-walk { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(10px) rotate(1deg) } 50% { transform: translateX(20px) rotate(-1deg) } 75% { transform: translateX(30px) rotate(2deg) } 100% { transform: translateX(40px) rotate(0) } }

.scn-search-in-vain { background: radial-gradient(ellipse at 50% 80%, #2a1808 0%, #0a0502 70%), linear-gradient(180deg, #0a0502 0%, #1a0e05 100%); }
.scn-search-in-vain .deep-bg { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #0a0a10 0%, #1a0e05 100%); animation: sv-sky 18s ease-in-out infinite alternate; }
.scn-search-in-vain .ground-mid { position:absolute; bottom:20%; left:0; right:0; height:40%; background: linear-gradient(180deg, #1a1208 0%, #0a0602 100%); border-radius: 30% 70% 0 0 / 50% 40% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,0.7); }
.scn-search-in-vain .distant-trees { position:absolute; bottom:30%; left:0; right:0; height:20%; background: linear-gradient(180deg, #1a1208 0%, #0a0602 100%); border-radius: 40% 60% 0 0; filter: blur(4px); animation: sv-drift 25s ease-in-out infinite; }
.scn-search-in-vain .lantern-left { position:absolute; bottom:35%; left:20%; width:10px; height:15px; background: radial-gradient(circle, #ffa050 0%, #d06020 70%); border-radius: 20%; box-shadow: 0 0 20px 6px #ffa05080; animation: sv-swing 3s ease-in-out infinite; }
.scn-search-in-vain .lantern-right { position:absolute; bottom:40%; left:60%; width:10px; height:15px; background: radial-gradient(circle, #ffa050 0%, #d06020 70%); border-radius: 20%; box-shadow: 0 0 20px 6px #ffa05080; animation: sv-swing 4s ease-in-out infinite reverse; }
.scn-search-in-vain .searcher-figure { position:absolute; bottom:25%; left:22%; width:18px; height:40px; background: linear-gradient(180deg, #1a0e05 0%, #0a0502 100%); border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%; transform-origin: bottom; animation: sv-search 7s ease-in-out infinite; }
.scn-search-in-vain .searcher-second { position:absolute; bottom:28%; left:55%; width:18px; height:40px; background: linear-gradient(180deg, #1a0e05 0%, #0a0502 100%); border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%; transform-origin: bottom; animation: sv-search 8s ease-in-out infinite 1s; }
@keyframes sv-sky { 0% { opacity:0.7 } 50% { opacity:0.9 } 100% { opacity:0.6 } }
@keyframes sv-drift { 0% { transform: translateX(0) } 50% { transform: translateX(-10px) } 100% { transform: translateX(0) } }
@keyframes sv-swing { 0% { transform: rotate(-5deg) translateX(0) } 25% { transform: rotate(3deg) translateX(3px) } 50% { transform: rotate(-2deg) translateX(0) } 75% { transform: rotate(4deg) translateX(-2px) } 100% { transform: rotate(-4deg) translateX(0) } }
@keyframes sv-search { 0% { transform: translateX(0) rotate(-2deg) } 30% { transform: translateX(15px) rotate(2deg) } 60% { transform: translateX(30px) rotate(-1deg) } 100% { transform: translateX(45px) rotate(0) } }

.scn-emily-skeptical { background: radial-gradient(ellipse at 50% 60%, #4a2a1a 0%, #1a0a05 70%), linear-gradient(180deg, #1a0a05 0%, #0a0502 100%); }
.scn-emily-skeptical .room-bg { position:absolute; inset:0; background: linear-gradient(135deg, #2a1a10 0%, #1a0a05 100%); animation: es-warm 14s ease-in-out infinite alternate; }
.scn-emily-skeptical .lamp-center { position:absolute; bottom:35%; left:50%; width:50px; height:60px; transform:translateX(-50%); background: radial-gradient(circle at 50% 30%, #ff9840 0%, #d06020 50%, transparent 80%); border-radius: 40% 40% 20% 20%; box-shadow: 0 0 40px 20px #ff984060, 0 0 80px 40px #d0602030; animation: es-glow 4s ease-in-out infinite; }
.scn-emily-skeptical .emily-profile { position:absolute; bottom:25%; left:35%; width:22px; height:55px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom right; animation: es-listen 6s ease-in-out infinite; }
.scn-emily-skeptical .annette-silhouette { position:absolute; bottom:25%; right:30%; width:20px; height:50px; background: linear-gradient(180deg, #2a1a10 0%, #0a0502 100%); border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%; transform-origin: bottom; animation: es-tale 5s ease-in-out infinite; }
.scn-emily-skeptical .bookshelf { position:absolute; top:10%; right:5%; width:30%; height:40%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.6); }
@keyframes es-warm { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes es-glow { 0% { transform: translateX(-50%) scale(1); opacity:0.9 } 50% { transform: translateX(-50%) scale(1.05); opacity:1 } 100% { transform: translateX(-50%) scale(0.95); opacity:0.85 } }
@keyframes es-listen { 0% { transform: rotate(0deg) } 50% { transform: rotate(3deg) translateX(2px) } 100% { transform: rotate(-1deg) } }
@keyframes es-tale { 0% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-3px) rotate(1deg) } 100% { transform: translateY(0) rotate(-1deg) } }

.scn-prisoners {
  background: linear-gradient(180deg, #0e0a1a 0%, #1a1228 40%, #08060e 100%), radial-gradient(ellipse at 50% 30%, #2a1a2e 0%, transparent 70%);
}
.scn-prisoners .wall { position:absolute; inset:0; background: linear-gradient(180deg, #1a1228 0%, #0a0614 100%); }
.scn-prisoners .bars { position:absolute; top:10%; width:4px; height:70%; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius:2px; box-shadow:0 0 8px rgba(0,0,0,.6); }
.scn-prisoners .bar-left { left:25%; animation:pr-bars 8s ease-in-out infinite alternate; }
.scn-prisoners .bar-right { right:25%; animation:pr-bars 8s ease-in-out infinite alternate-reverse; }
.scn-prisoners .figure-prisoner { position:absolute; bottom:20%; left:40%; width:30px; height:50px; background: radial-gradient(ellipse 70% 50% at 50% 60%, #2a1a2e 0%, #0a0610 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation:pr-crouch 6s ease-in-out infinite; }
.scn-prisoners .figure-aunt { position:absolute; bottom:20%; right:35%; width:28px; height:48px; background: radial-gradient(ellipse 70% 50% at 50% 60%, #3a2a3a 0%, #1a1220 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation:pr-aunt 10s ease-in-out infinite; }
.scn-prisoners .light-source { position:absolute; top:15%; left:55%; width:20px; height:30px; background: radial-gradient(circle at 50% 30%, #b87878 0%, #5e1a1d 60%, transparent 80%); border-radius:20px; box-shadow:0 0 40px 20px rgba(94,26,29,.3); animation:pr-flicker 12s ease-in-out infinite; }
.scn-prisoners .shadow-overlay { position:absolute; inset:0; background: linear-gradient(180deg, transparent 50%, rgba(0,0,0,.7) 100%); pointer-events:none; }
@keyframes pr-bars { 0% { transform:translateY(0); } 50% { transform:translateY(-4px); opacity:.7; } 100% { transform:translateY(2px); opacity:1; } }
@keyframes pr-crouch { 0%,100% { transform:translateY(0) rotate(0deg); } 25% { transform:translateY(-2px) rotate(2deg); } 75% { transform:translateY(1px) rotate(-1deg); } }
@keyframes pr-aunt { 0%,100% { transform:translateY(0); } 50% { transform:translateY(-3px); } }
@keyframes pr-flicker { 0%,100% { opacity:.6; transform:scale(1); } 25% { opacity:1; transform:scale(1.05); } 50% { opacity:.7; transform:scale(.95); } 75% { opacity:.9; transform:scale(1.02); } }

.scn-sounds-of-tumult {
  background: linear-gradient(180deg, #0a0a14 0%, #1a1420 50%, #0a060e 100%), radial-gradient(ellipse at 50% 20%, #2a1a2a 0%, transparent 80%);
}
.scn-sounds-of-tumult .floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #1a1a24 0%, #0a0a10 100%); }
.scn-sounds-of-tumult .pillar { position:absolute; top:0; width:12px; height:80%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a22 100%); border-radius:4px; }
.scn-sounds-of-tumult .pillar-a { left:20%; animation:st-pillar 14s ease-in-out infinite; }
.scn-sounds-of-tumult .pillar-b { right:20%; animation:st-pillar 14s ease-in-out infinite reverse; }
.scn-sounds-of-tumult .sword { position:absolute; width:100px; height:4px; background: linear-gradient(90deg, #5a5a6a 0%, #aaaabe 50%, #5a5a6a 100%); border-radius:2px; transform-origin:0 50%; }
.scn-sounds-of-tumult .sword-a { top:30%; left:30%; animation:st-sword 3s ease-in-out infinite; }
.scn-sounds-of-tumult .sword-b { top:50%; left:50%; animation:st-sword 2.5s ease-in-out infinite reverse; }
.scn-sounds-of-tumult .figure-tumult { position:absolute; width:24px; height:50px; background: radial-gradient(ellipse 70% 50% at 50% 60%, #1a1a2a 0%, #0a0a14 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; }
.scn-sounds-of-tumult .fugitive { bottom:25%; left:35%; animation:st-flee 7s ease-in-out infinite; }
.scn-sounds-of-tumult .attacker { bottom:25%; right:30%; animation:st-chase 5s ease-in-out infinite; }
.scn-sounds-of-tumult .dust { position:absolute; inset:0; background: radial-gradient(circle at 20% 80%, rgba(200,200,220,.1) 0%, transparent 70%); filter: blur(4px); animation:st-dust 30s linear infinite; }
@keyframes st-pillar { 0%,100% { transform:scaleY(1); } 50% { transform:scaleY(0.98); } }
@keyframes st-sword { 0% { transform:rotate(-30deg) translateY(0); } 50% { transform:rotate(20deg) translateY(-3px); } 100% { transform:rotate(-30deg) translateY(0); } }
@keyframes st-flee { 0%,100% { transform:translateX(0); } 50% { transform:translateX(-15px); } }
@keyframes st-chase { 0%,100% { transform:translateX(0); } 50% { transform:translateX(10px); } }
@keyframes st-dust { 0% { opacity:.3; } 50% { opacity:.6; } 100% { opacity:.3; } }

.scn-annette-at-door {
  background: linear-gradient(180deg, #0e0e1a 0%, #1a1624 50%, #0a0a12 100%), radial-gradient(ellipse at 30% 60%, #2a2030 0%, transparent 70%);
}
.scn-annette-at-door .door-frame { position:absolute; bottom:10%; left:50%; width:80px; height:120px; transform:translateX(-50%); background: linear-gradient(180deg, #2a2a3a 0%, #1a1a24 100%); border-radius:6px; box-shadow:0 0 20px rgba(0,0,0,.6); }
.scn-annette-at-door .door-panel { position:absolute; bottom:12%; left:50%; width:65px; height:105px; transform:translateX(-50%); background: linear-gradient(180deg, #1a1624 0%, #0e0c1a 100%); border-radius:4px; border:2px solid #2a2a3a; }
.scn-annette-at-door .figure-indoor { position:absolute; bottom:15%; left:57%; width:22px; height:45px; background: radial-gradient(ellipse 70% 50% at 50% 60%, #2a1a2a 0%, #1a0e1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation:ad-inside 9s ease-in-out infinite; }
.scn-annette-at-door .figure-outdoor { position:absolute; bottom:15%; left:38%; width:20px; height:44px; background: radial-gradient(ellipse 70% 50% at 50% 60%, #1a1a2a 0%, #0e0e1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation:ad-outside 7s ease-in-out infinite; }
.scn-annette-at-door .keyhole { position:absolute; bottom:45%; left:50%; width:4px; height:6px; transform:translateX(-50%); background: #b87878; border-radius:1px; box-shadow:0 0 10px 2px rgba(184,120,120,.4); animation:ad-keyhole 3s ease-in-out infinite; }
.scn-annette-at-door .light-sliver { position:absolute; bottom:15%; left:50%; width:8px; height:90px; transform:translateX(-50%); background: linear-gradient(180deg, transparent 10%, rgba(184,120,120,.2) 50%, transparent 90%); filter:blur(2px); animation:ad-sliver 8s ease-in-out infinite; }
@keyframes ad-inside { 0%,100% { transform:translateY(0); } 50% { transform:translateY(-4px); } }
@keyframes ad-outside { 0%,100% { transform:translateX(0); } 50% { transform:translateX(-5px); } }
@keyframes ad-keyhole { 0%,100% { opacity:.6; } 50% { opacity:1; transform:translateX(-50%) scale(1.2); } }
@keyframes ad-sliver { 0%,100% { opacity:.3; } 50% { opacity:.6; } }

.scn-montoni-enters {
  background: linear-gradient(180deg, #0a0610 0%, #1a1222 40%, #08040a 100%), radial-gradient(ellipse at 50% 20%, #2a1a2e 0%, transparent 80%);
}
.scn-montoni-enters .threshold { position:absolute; bottom:15%; left:0; right:0; height:10%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a14 100%); }
.scn-montoni-enters .doorway { position:absolute; bottom:15%; left:50%; width:80px; height:100px; transform:translateX(-50%); background: #140e1e; border:4px solid #2a2a3a; border-radius:8px; box-shadow:inset 0 0 30px rgba(0,0,0,.8); }
.scn-montoni-enters .montoni-figure { position:absolute; bottom:18%; left:54%; width:26px; height:55px; background: radial-gradient(ellipse 70% 50% at 50% 60%, #1a1a2a 0%, #0a0a14 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation:me-montoni 6s ease-in-out infinite; }
.scn-montoni-enters .ruffian { position:absolute; bottom:18%; width:24px; height:50px; background: radial-gradient(ellipse 70% 50% at 50% 60%, #2a1a2a 0%, #0e0a14 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; }
.scn-montoni-enters .ruf-1 { left:38%; animation:me-ruf 4s ease-in-out infinite; }
.scn-montoni-enters .ruf-2 { left:46%; animation:me-ruf 4.2s ease-in-out infinite 0.3s; }
.scn-montoni-enters .ruf-3 { left:30%; animation:me-ruf 3.8s ease-in-out infinite 0.6s; }
.scn-montoni-enters .entering-shadow { position:absolute; bottom:15%; left:30%; right:30%; height:25%; background: linear-gradient(180deg, transparent, rgba(0,0,0,.6)); pointer-events:none; animation:me-shadow 10s ease-in-out infinite; }
@keyframes me-montoni { 0%,100% { transform:translateX(0) rotate(0deg); } 25% { transform:translateX(3px) rotate(1deg); } 75% { transform:translateX(-2px) rotate(-1deg); } }
@keyframes me-ruf { 0%,100% { transform:translateY(0); } 50% { transform:translateY(-3px); } }
@keyframes me-shadow { 0%,100% { opacity:.5; } 50% { opacity:.8; } }

/* gothic-hall */
.scn-gothic-hall {
  background: 
    radial-gradient(ellipse at 50% 100%, #3a1e0e 0%, transparent 70%),
    linear-gradient(180deg, #1a0a06 0%, #2b1409 40%, #4a2a14 100%);
}
.scn-gothic-hall .bg-walls { position:absolute; inset:0; background: linear-gradient(90deg, #1a0a06 0%, #1f0e07 50%, #1a0a06 100%); }
.scn-gothic-hall .pillar-l { position:absolute; left:5%; top:10%; width:8%; height:80%; background: linear-gradient(90deg, #3a1e0e 0%, #2a1409 40%, #1f0e07 100%); border-radius: 4%/2%; box-shadow: 4px 0 12px rgba(0,0,0,0.6); animation: gh-pillar 12s ease-in-out infinite; }
.scn-gothic-hall .pillar-r { position:absolute; right:5%; top:10%; width:8%; height:80%; background: linear-gradient(90deg, #1f0e07 0%, #2a1409 60%, #3a1e0e 100%); border-radius: 4%/2%; box-shadow: -4px 0 12px rgba(0,0,0,0.6); animation: gh-pillar 12s ease-in-out infinite 2s; }
.scn-gothic-hall .arch { position:absolute; top:0; left:15%; right:15%; height:30%; background: radial-gradient(ellipse at 50% 0%, transparent 60%, #2b1409 60%, #2b1409 65%, transparent 65%); animation: gh-arch 20s ease-in-out infinite; }
.scn-gothic-hall .lamp { position:absolute; top:28%; left:50%; width:16px; height:24px; transform:translate(-50%,-50%); background: radial-gradient(circle, #f0a050 0%, #c07030 70%); border-radius: 50% 50% 30% 30%; box-shadow: 0 0 32px 12px rgba(200,100,30,0.6), 0 0 64px 24px rgba(200,100,30,0.3); animation: gh-lamp 3s ease-in-out infinite alternate; }
.scn-gothic-hall .glow-spot { position:absolute; top:25%; left:45%; right:45%; height:40%; background: radial-gradient(ellipse at 50% 0%, #f0a050 0%, transparent 80%); opacity:0.15; animation: gh-glow 4s ease-in-out infinite; }
.scn-gothic-hall .shadow-stretch { position:absolute; bottom:0; left:20%; right:20%; height:60%; background: linear-gradient(180deg, transparent 0%, #0f0703 100%); opacity:0.6; animation: gh-shadow 10s ease-in-out infinite; }
@keyframes gh-pillar { 0%{ transform: translateY(0); } 50%{ transform: translateY(-2px); } 100%{ transform: translateY(0); } }
@keyframes gh-arch { 0%,100%{ transform: scaleY(1); opacity:0.8; } 50%{ transform: scaleY(0.98); opacity:0.9; } }
@keyframes gh-lamp { 0%{ box-shadow: 0 0 28px 8px rgba(200,100,30,0.5); } 50%{ box-shadow: 0 0 40px 16px rgba(200,100,30,0.7); } 100%{ box-shadow: 0 0 32px 10px rgba(200,100,30,0.4); } }
@keyframes gh-glow { 0%,100%{ opacity:0.1; } 50%{ opacity:0.2; } }
@keyframes gh-shadow { 0%,100%{ transform: translateY(0); opacity:0.5; } 50%{ transform: translateY(4px); opacity:0.7; } }

/* marble-staircase-glimpse */
.scn-marble-staircase-glimpse {
  background: 
    radial-gradient(ellipse at 50% 30%, #f0d8a0 0%, transparent 60%),
    linear-gradient(180deg, #1e1109 0%, #2c1a0e 50%, #3a2212 100%);
}
.scn-marble-staircase-glimpse .vault { position:absolute; top:0; left:10%; right:10%; height:40%; background: linear-gradient(180deg, #3a2212 0%, transparent 100%); border-radius: 50% 50% 0 0; box-shadow: inset 0 12px 24px rgba(0,0,0,0.5); animation: ms-vault 16s ease-in-out infinite; }
.scn-marble-staircase-glimpse .tripod-lamp { position:absolute; top:25%; left:50%; width:20px; height:30px; transform:translate(-50%,-50%); background: radial-gradient(circle at 50% 60%, #f0b060 0%, #c08030 50%, #2a1409 100%); border-radius: 0 0 40% 40%; box-shadow: 0 0 24px 8px rgba(200,120,40,0.5); animation: ms-lamp 3s ease-in-out infinite alternate; }
.scn-marble-staircase-glimpse .corridor { position:absolute; right:8%; top:35%; width:20%; height:50%; background: linear-gradient(90deg, #1e1109 0%, #2c1a0e 100%); border-radius: 0 10% 0 0; box-shadow: -4px 0 12px rgba(0,0,0,0.6); animation: ms-corridor 20s ease-in-out infinite; }
.scn-marble-staircase-glimpse .painted-window { position:absolute; left:15%; top:15%; width:20%; height:35%; background: linear-gradient(135deg, #804020 0%, #f0a050 30%, #3060c0 60%, #202060 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; box-shadow: 0 0 40px 10px rgba(100,150,200,0.3); animation: ms-window 6s ease-in-out infinite; }
.scn-marble-staircase-glimpse .fretwork { position:absolute; top:0; left:0; right:0; height:15%; background: repeating-linear-gradient(90deg, #3a2212 0px, #3a2212 6px, #1e1109 6px, #1e1109 12px); opacity:0.6; animation: ms-fret 30s linear infinite; }
.scn-marble-staircase-glimpse .stair-edge { position:absolute; bottom:10%; left:20%; right:20%; height:5%; background: linear-gradient(180deg, #2c1a0e 0%, #1e1109 100%); border-radius: 10%/50%; box-shadow: 0 -4px 8px rgba(0,0,0,0.5); animation: ms-stair 8s ease-in-out infinite; }
@keyframes ms-vault { 0%,100%{ transform: scaleY(1); opacity:0.8; } 50%{ transform: scaleY(0.97); opacity:0.9; } }
@keyframes ms-lamp { 0%{ box-shadow: 0 0 20px 6px rgba(200,120,40,0.4); } 50%{ box-shadow: 0 0 36px 12px rgba(200,120,40,0.7); } 100%{ box-shadow: 0 0 24px 8px rgba(200,120,40,0.5); } }
@keyframes ms-corridor { 0%,100%{ transform: scaleX(1); } 50%{ transform: scaleX(0.98); } }
@keyframes ms-window { 0%,100%{ opacity:0.7; } 50%{ opacity:1; } }
@keyframes ms-fret { 0%{ background-position: 0 0; } 100%{ background-position: 24px 0; } }
@keyframes ms-stair { 0%,100%{ transform: translateY(0); } 50%{ transform: translateY(2px); } }

/* entering-cedar-room */
.scn-entering-cedar-room {
  background: 
    radial-gradient(ellipse at 50% 80%, #1a0a06 0%, transparent 70%),
    linear-gradient(180deg, #0a0402 0%, #1a0a06 50%, #2a1208 100%);
}
.scn-entering-cedar-room .dark-panel { position:absolute; inset:0; background: repeating-linear-gradient(90deg, #0a0402 0px, #0a0402 10px, #120804 10px, #120804 12px); opacity:0.8; }
.scn-entering-cedar-room .doorway { position:absolute; bottom:20%; left:35%; right:35%; height:55%; background: #0a0402; border: 2px solid #2a1208; border-radius: 0 0 6% 6%; box-shadow: inset 0 0 20px rgba(0,0,0,0.8); animation: cr-doorway 15s ease-in-out infinite; }
.scn-entering-cedar-room .servant-lamp { position:absolute; bottom:38%; left:40%; width:14px; height:20px; background: radial-gradient(circle, #f0a050 0%, #c08030 60%); border-radius: 40% 40% 20% 20%; box-shadow: 0 0 28px 10px rgba(200,100,30,0.7); animation: cr-lamp 2s ease-in-out infinite alternate; }
.scn-entering-cedar-room .lamp-glow { position:absolute; bottom:30%; left:35%; right:35%; height:45%; background: radial-gradient(ellipse at 50% 70%, #f0a050 0%, transparent 80%); opacity:0.2; animation: cr-glow 4s ease-in-out infinite; }
.scn-entering-cedar-room .floor-shadow { position:absolute; bottom:0; left:10%; right:10%; height:20%; background: linear-gradient(180deg, transparent 0%, #050202 100%); animation: cr-shadow 8s ease-in-out infinite; }
@keyframes cr-doorway { 0%,100%{ transform: translateY(0); } 50%{ transform: translateY(-3px); } }
@keyframes cr-lamp { 0%{ box-shadow: 0 0 24px 8px rgba(200,100,30,0.6); } 50%{ box-shadow: 0 0 36px 14px rgba(200,100,30,0.9); } 100%{ box-shadow: 0 0 28px 10px rgba(200,100,30,0.7); } }
@keyframes cr-glow { 0%,100%{ opacity:0.15; } 50%{ opacity:0.3; } }
@keyframes cr-shadow { 0%,100%{ transform: scaleY(1); opacity:0.8; } 50%{ transform: scaleY(0.95); opacity:0.6; } }

/* solitary-room */
.scn-solitary-room {
  background: 
    radial-gradient(ellipse at 50% 60%, #3a1e0e 0%, transparent 70%),
    linear-gradient(180deg, #0a0402 0%, #1a0a06 50%, #2a1208 100%);
}
.scn-solitary-room .room-bg { position:absolute; inset:0; background: linear-gradient(135deg, #0a0402 0%, #1a0a06 50%, #0a0402 100%); }
.scn-solitary-room .couch { position:absolute; bottom:15%; left:15%; right:55%; height:30%; background: linear-gradient(180deg, #2a1208 0%, #1a0a06 100%); border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%; box-shadow: 0 8px 16px rgba(0,0,0,0.7); animation: sr-couch 10s ease-in-out infinite; }
.scn-solitary-room .single-lamp { position:absolute; top:40%; left:70%; width:12px; height:18px; background: radial-gradient(circle, #f0a050 0%, #c08030 70%); border-radius: 50% 50% 30% 30%; box-shadow: 0 0 30px 12px rgba(200,100,30,0.6), 0 0 60px 24px rgba(200,100,30,0.3); animation: sr-lamp 3s ease-in-out infinite alternate; }
.scn-solitary-room .mirror-frame { position:absolute; top:20%; left:55%; right:10%; height:40%; background: linear-gradient(135deg, #2a1a0e 0%, #1a0e06 100%); border: 4px solid #3a2212; border-radius: 4%; box-shadow: 0 0 20px rgba(0,0,0,0.5); }
.scn-solitary-room .mirror-reflection { position:absolute; top:22%; left:57%; right:12%; height:36%; background: linear-gradient(135deg, rgba(10,4,2,0.6) 0%, rgba(20,10,5,0.3) 100%); border-radius: 2%; box-shadow: inset 0 0 30px rgba(200,100,30,0.2); animation: sr-mirror 8s ease-in-out infinite; }
.scn-solitary-room .shadow-figure { position:absolute; bottom:18%; left:30%; width:16px; height:32px; background: linear-gradient(180deg, #0a0402 0%, #050202 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sr-figure 6s ease-in-out infinite; }
@keyframes sr-couch { 0%,100%{ transform: translateY(0); } 50%{ transform: translateY(-2px); } }
@keyframes sr-lamp { 0%{ box-shadow: 0 0 24px 8px rgba(200,100,30,0.5); } 50%{ box-shadow: 0 0 40px 16px rgba(200,100,30,0.8); } 100%{ box-shadow: 0 0 28px 10px rgba(200,100,30,0.6); } }
@keyframes sr-mirror { 0%,100%{ opacity:0.3; } 50%{ opacity:0.5; } }
@keyframes sr-figure { 0%{ transform: translateX(0) rotate(0deg); } 25%{ transform: translateX(2px) rotate(1deg); } 50%{ transform: translateX(0) rotate(0deg); } 75%{ transform: translateX(-2px) rotate(-1deg); } 100%{ transform: translateX(0) rotate(0deg); } }

.scn-music-awaited {
  background: linear-gradient(180deg, #0f0f28 0%, #1a1a3e 30%, #2c2244 60%, #4a3a6e 100%);
  background: radial-gradient(ellipse at 20% 80%, #4a3a6e 0%, transparent 60%), linear-gradient(180deg, #0f0f28 0%, #1a1a3e 30%, #2c2244 60%, #4a3a6e 100%);
}
.scn-music-awaited .sky-ni { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #1a1a3e 0%, transparent 100%); animation: mu-sky 15s ease-in-out infinite alternate; }
.scn-music-awaited .castle-tower { position:absolute; bottom:30%; left:40%; width:120px; height:200px; background: linear-gradient(180deg, #2a2a4e 0%, #1a1a3e 100%); border-radius:10% 10% 4% 4%; box-shadow: inset 0 -20px 30px rgba(0,0,0,.6), 0 0 0 1px #3a3a5e; transform:translateX(-50%); animation: mu-tower 12s ease-in-out infinite alternate; }
.scn-music-awaited .window-light { position:absolute; bottom:55%; left:43%; width:20px; height:30px; background: radial-gradient(circle, #f0c870 0%, #b08040 60%); border-radius:10% 10% 5% 5%; box-shadow: 0 0 24px 8px #c08040, 0 0 48px 16px rgba(192,128,64,.3); animation: mu-glow 3s ease-in-out infinite alternate; }
.scn-music-awaited .figure-listening { position:absolute; bottom:25%; left:44%; width:20px; height:40px; background: linear-gradient(180deg, #15152a 0%, #0a0a1a 100%); border-radius:50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mu-listen 5s ease-in-out infinite; }
.scn-music-awaited .music-note { position:absolute; bottom:60%; left:50%; width:8px; height:8px; background: #f0c870; border-radius:50%; box-shadow: 0 0 12px 4px rgba(240,200,112,.4); animation: mu-note 6s ease-in-out infinite; }
.scn-music-awaited .note-a { left:52%; animation-delay:-2s; }
.scn-music-awaited .note-b { left:48%; width:6px; height:6px; animation-delay:-4s; }
.scn-music-awaited .mist { position:absolute; bottom:20%; left:0; right:0; height:20%; background: linear-gradient(180deg, rgba(30,30,50,.4) 0%, transparent 100%); filter: blur(8px); animation: mu-mist 25s linear infinite; }
@keyframes mu-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes mu-tower { 0% { transform:translateX(-50%) translateY(0) } 50% { transform:translateX(-50%) translateY(-2px) } 100% { transform:translateX(-50%) translateY(0) } }
@keyframes mu-glow { 0% { box-shadow: 0 0 18px 4px #b08040, 0 0 36px 8px rgba(176,128,64,.3); opacity:.85 } 50% { box-shadow: 0 0 32px 10px #f0c870, 0 0 64px 18px rgba(240,200,112,.5); opacity:1 } 100% { box-shadow: 0 0 22px 5px #b08040, 0 0 40px 10px rgba(176,128,64,.35); opacity:.9 } }
@keyframes mu-listen { 0%,100% { transform: translateX(0) translateY(0) rotate(0deg) } 25% { transform: translateX(-3px) translateY(-2px) rotate(-2deg) } 50% { transform: translateX(0) translateY(0) rotate(0) } 75% { transform: translateX(3px) translateY(-1px) rotate(2deg) } }
@keyframes mu-note { 0% { transform: translateY(0) scale(1); opacity:1 } 50% { transform: translateY(-30px) scale(1.2); opacity:.6 } 100% { transform: translateY(0) scale(1); opacity:1 } }
@keyframes mu-mist { 0% { transform: translateX(-20px) } 100% { transform: translateX(120vw) } }

.scn-no-music {
  background: linear-gradient(180deg, #0f0f28 0%, #1a1a3e 40%, #2c2c50 70%, #3a3a6e 100%);
  background: radial-gradient(ellipse at 70% 30%, #3a3a6e 0%, transparent 60%), linear-gradient(180deg, #0f0f28 0%, #1a1a3e 40%, #2c2c50 70%, #3a3a6e 100%);
}
.scn-no-music .moon { position:absolute; top:12%; right:20%; width:60px; height:60px; background: radial-gradient(circle at 35% 35%, #e8e8ff 0%, #b0b0d0 60%, #8080a0 100%); border-radius:50%; box-shadow: 0 0 40px 15px rgba(200,200,255,.3), 0 0 80px 30px rgba(200,200,255,.1); animation: nm-moon 8s ease-in-out infinite alternate; }
.scn-no-music .night-sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #0f0f28 0%, transparent 100%); animation: nm-sky 12s linear infinite; }
.scn-no-music .terrace-wall { position:absolute; bottom:30%; left:30%; right:30%; height:100px; background: linear-gradient(180deg, #2a2a4e 0%, #1a1a3e 100%); border-radius:8% 8% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.5); transform:scaleX(1.2); }
.scn-no-music .silhouette-figure { position:absolute; bottom:32%; left:45%; width:18px; height:50px; background: linear-gradient(180deg, #0f0f28 0%, #0a0a1a 100%); border-radius:50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: nm-figure 10s ease-in-out infinite alternate; }
.scn-no-music .empty-air { position:absolute; bottom:50%; left:38%; width:30px; height:30px; background: radial-gradient(circle, rgba(200,200,255,.05) 0%, transparent 70%); filter:blur(6px); animation: nm-empty 7s ease-in-out infinite; }
@keyframes nm-moon { 0%,100% { transform:translate(0,0) scale(1); opacity:.9 } 50% { transform:translate(-5px,-3px) scale(1.02); opacity:1 } }
@keyframes nm-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes nm-figure { 0% { transform: translateX(0) translateY(0) rotate(0deg) } 50% { transform: translateX(5px) translateY(-2px) rotate(-3deg) } 100% { transform: translateX(-5px) translateY(0) rotate(3deg) } }
@keyframes nm-empty { 0%,100% { opacity:0 } 50% { opacity:.3 } }

.scn-new-day-doubts {
  background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3e 50%, #3a3a4e 100%);
  background: radial-gradient(ellipse at 50% 100%, #3a3a4e 0%, transparent 70%), linear-gradient(180deg, #1a1a2a 0%, #2a2a3e 50%, #3a3a4e 100%);
}
.scn-new-day-doubts .stone-wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius:0 0 10% 10%; box-shadow: inset 0 10px 30px rgba(0,0,0,.6); }
.scn-new-day-doubts .door-recess { position:absolute; bottom:40%; left:40%; width:50px; height:100px; background: #1a1a2a; border-radius:5% 5% 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,.8); }
.scn-new-day-doubts .candle-spark { position:absolute; bottom:65%; left:46%; width:8px; height:16px; background: linear-gradient(180deg, #f0c870 0%, #b08040 100%); border-radius:50% 50% 30% 30%; box-shadow: 0 0 20px 6px #c08040, 0 0 40px 12px rgba(192,128,64,.3); animation: nd-flame 2s ease-in-out infinite alternate; }
.scn-new-day-doubts .shadow-figure { position:absolute; bottom:25%; left:38%; width:30px; height:60px; background: linear-gradient(180deg, #0a0a1a 0%, #000 100%); border-radius:40% 40% 20% 20% / 60% 60% 30% 30%; transform-origin: bottom center; animation: nd-shadow 6s ease-in-out infinite; }
.scn-new-day-doubts .window-slit { position:absolute; top:15%; right:25%; width:6px; height:40px; background: #2a2a3e; border-radius:2px; box-shadow: inset 0 0 10px rgba(0,0,0,.5), 0 0 0 2px #3a3a4e; }
.scn-new-day-doubts .floor-plank { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius:10% 10% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.7); }
@keyframes nd-flame { 0% { transform: scaleY(1) translateX(0); opacity:.9 } 50% { transform: scaleY(1.2) translateX(1px); opacity:1 } 100% { transform: scaleY(.9) translateX(-1px); opacity:.85 } }
@keyframes nd-shadow { 0%,100% { transform: translateX(0) translateY(0) rotate(0deg) } 50% { transform: translateX(8px) translateY(-3px) rotate(2deg) } }

.scn-key-provided {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a42 50%, #3a3a52 100%);
  background: radial-gradient(ellipse at 40% 100%, #3a3a52 0%, transparent 80%), linear-gradient(180deg, #1a1a2e 0%, #2a2a42 50%, #3a3a52 100%);
}
.scn-key-provided .arch-dark { position:absolute; bottom:20%; left:20%; right:20%; height:200px; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%); border-radius:50% 50% 10% 10% / 80% 80% 10% 10%; box-shadow: inset 0 20px 40px rgba(0,0,0,.8); }
.scn-key-provided .figure-hand { position:absolute; bottom:35%; left:38%; width:22px; height:45px; background: linear-gradient(180deg, #15152a 0%, #0a0a1a 100%); border-radius:50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: kp-hand 4s ease-in-out infinite; }
.scn-key-provided .key-gleam { position:absolute; bottom:42%; left:36%; width:12px; height:6px; background: #d0a060; border-radius:2px; box-shadow: 0 0 12px 4px rgba(208,160,96,.6); animation: kp-key 4s ease-in-out infinite alternate; }
.scn-key-provided .lantern-light { position:absolute; bottom:25%; left:55%; width:10px; height:16px; background: radial-gradient(circle at 50% 30%, #f0c870 0%, #b08040 100%); border-radius:30% 30% 10% 10%; box-shadow: 0 0 20px 8px #c08040, 0 0 40px 16px rgba(192,128,64,.3); animation: kp-lantern 3s ease-in-out infinite alternate; }
.scn-key-provided .stone-step { position:absolute; bottom:0; left:10%; right:10%; height:15%; background: linear-gradient(180deg, #2a2a42 0%, #1a1a2e 100%); border-radius:5% 5% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.6); }
.scn-key-provided .curtain-shadow { position:absolute; top:0; left:0; right:0; height:100%; background: linear-gradient(90deg, #1a1a2e 0%, transparent 20%, transparent 80%, #1a1a2e 100%); animation: kp-curtain 10s ease-in-out infinite alternate; }
@keyframes kp-hand { 0%,100% { transform: translateX(0) translateY(0) rotate(0deg) } 50% { transform: translateX(10px) translateY(-5px) rotate(5deg) } }
@keyframes kp-key { 0%,100% { transform: scale(1) rotate(0deg); opacity:.8 } 50% { transform: scale(1.1) rotate(-10deg); opacity:1 } }
@keyframes kp-lantern { 0% { transform: translateY(0); opacity:.9 } 50% { transform: translateY(-3px); opacity:1 } 100% { transform: translateY(0); opacity:.85 } }
@keyframes kp-curtain { 0% { opacity:.5 } 50% { opacity:1 } 100% { opacity:.7 } }

/* Cannon-Ghost (excited, firelit) */
.scn-cannon-ghost {
  background: 
    linear-gradient(180deg, #2a1a0e 0%, #1a0f0a 60%, #100a05 100%),
    radial-gradient(ellipse at 60% 40%, rgba(200,80,20,0.3) 0%, transparent 50%);
}
.scn-cannon-ghost .room-bg {
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at 50% 30%, #3a1f10 0%, #1a0f0a 70%);
}
.scn-cannon-ghost .window-frame {
  position: absolute;
  top: 10%;
  left: 20%;
  width: 60%;
  height: 50%;
  border: 8px solid #3a2a1a;
  border-radius: 4px;
  background: #0a0a0a;
  box-shadow: inset 0 0 40px rgba(200,80,20,0.1);
}
.scn-cannon-ghost .cannon {
  position: absolute;
  bottom: 25%;
  left: 30%;
  width: 40%;
  height: 12%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% / 40%;
  transform: rotate(-5deg);
  box-shadow: 0 4px 12px rgba(0,0,0,0.8);
  animation: cg-cannon 6s ease-in-out infinite;
}
.scn-cannon-ghost .ghost {
  position: absolute;
  bottom: 30%;
  left: 45%;
  width: 15%;
  height: 25%;
  background: radial-gradient(ellipse at 50% 30%, rgba(220,200,180,0.4) 0%, transparent 70%);
  filter: blur(4px);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  animation: cg-ghost 3s ease-in-out infinite alternate;
}
.scn-cannon-ghost .fire-glow {
  position: absolute;
  bottom: 10%;
  left: 35%;
  width: 30%;
  height: 20%;
  background: radial-gradient(ellipse, #ff8030 0%, #c04010 40%, transparent 70%);
  opacity: 0.7;
  animation: cg-fire 2s ease-in-out infinite alternate;
}
.scn-cannon-ghost .curtain-left,
.scn-cannon-ghost .curtain-right {
  position: absolute;
  top: 8%;
  width: 18%;
  height: 60%;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%);
  border-radius: 0 40% 40% 0 / 0 20% 20% 0;
  animation: cg-curtain 8s ease-in-out infinite alternate;
}
.scn-cannon-ghost .curtain-left { left: 10%; animation-delay: 0s; }
.scn-cannon-ghost .curtain-right { right: 10%; transform: scaleX(-1); animation-delay: 1s; }

@keyframes cg-cannon {
  0%, 100% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(-2deg) translateY(-2px); }
}
@keyframes cg-ghost {
  0% { opacity: 0.3; transform: scale(1) translateY(0); }
  50% { opacity: 0.7; transform: scale(1.05) translateY(-5px); }
  100% { opacity: 0.4; transform: scale(0.95) translateY(3px); }
}
@keyframes cg-fire {
  0% { opacity: 0.5; transform: scale(1); }
  100% { opacity: 0.9; transform: scale(1.1); }
}
@keyframes cg-curtain {
  0% { transform: translateX(0); }
  100% { transform: translateX(8px); }
}

/* Talk-of-Venice (calm, firelit) */
.scn-talk-of-venice {
  background: 
    linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 40%, #150e08 100%),
    radial-gradient(ellipse at 50% 80%, rgba(200,100,30,0.2) 0%, transparent 60%);
}
.scn-talk-of-venice .night-sky {
  position: absolute;
  inset: 0 0 50% 0;
  background: linear-gradient(180deg, #0a1520 0%, #1a2a3a 100%);
  animation: tv-sky 15s ease-in-out infinite alternate;
}
.scn-talk-of-venice .moon {
  position: absolute;
  top: 10%;
  right: 20%;
  width: 8%;
  padding-bottom: 8%;
  background: radial-gradient(circle, #f0e8c0 0%, #c0b090 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px rgba(240,232,192,0.4);
  animation: tv-moon 20s linear infinite;
}
.scn-talk-of-venice .palazzo {
  position: absolute;
  bottom: 30%;
  left: 10%;
  width: 40%;
  height: 35%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 0 20px rgba(200,100,30,0.3);
}
.scn-talk-of-venice .gondola {
  position: absolute;
  bottom: 22%;
  left: 30%;
  width: 25%;
  height: 8%;
  background: linear-gradient(90deg, #2a1a0a 0%, #4a3a2a 50%, #2a1a0a 100%);
  border-radius: 50% / 100%;
  animation: tv-gondola 6s ease-in-out infinite;
}
.scn-talk-of-venice .water {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 35%;
  background: linear-gradient(180deg, #1a2a3a 0%, #0a1520 100%);
  background-size: 200% 200%;
  animation: tv-water 8s ease-in-out infinite alternate;
}
.scn-talk-of-venice .torch-left,
.scn-talk-of-venice .torch-right {
  position: absolute;
  bottom: 45%;
  width: 6%;
  height: 15%;
  background: radial-gradient(ellipse at 50% 30%, #ff8030 0%, #c04010 40%, transparent 70%);
  filter: blur(4px);
  animation: tv-torch 3s ease-in-out infinite alternate;
}
.scn-talk-of-venice .torch-left { left: 15%; }
.scn-talk-of-venice .torch-right { right: 20%; animation-delay: 1.2s; }

@keyframes tv-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes tv-moon {
  0% { transform: translateX(0); }
  50% { transform: translateX(10px) scale(1.02); }
  100% { transform: translateX(0); }
}
@keyframes tv-gondola {
  0%, 100% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(8px) rotate(2deg); }
}
@keyframes tv-water {
  0% { background-position: 0% 0%; }
  100% { background-position: 20% 100%; }
}
@keyframes tv-torch {
  0% { opacity: 0.6; transform: scaleY(1); }
  100% { opacity: 1; transform: scaleY(1.2); }
}

/* Annette-knew (curiosity, firelit) */
.scn-annette-knew {
  background: 
    linear-gradient(180deg, #1a0f0a 0%, #2a1a0e 50%, #1a0f0a 100%),
    radial-gradient(ellipse at 70% 50%, rgba(200,80,20,0.2) 0%, transparent 60%);
}
.scn-annette-knew .wall {
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, #2a1a0e 0%, #3a2a1a 50%, #2a1a0e 100%);
}
.scn-annette-knew .door-frame {
  position: absolute;
  bottom: 20%;
  left: 20%;
  width: 60%;
  height: 70%;
  border: 10px solid #4a3a2a;
  border-radius: 2px;
  background: #1a0f0a;
  box-shadow: inset 0 0 30px rgba(200,80,20,0.2);
}
.scn-annette-knew .door-crack {
  position: absolute;
  bottom: 25%;
  left: 40%;
  width: 5%;
  height: 55%;
  background: radial-gradient(ellipse at 50% 50%, #ffa040 0%, #c05020 60%, transparent 80%);
  animation: ak-crack 4s ease-in-out infinite alternate;
}
.scn-annette-knew .figure-shadow {
  position: absolute;
  bottom: 20%;
  left: 35%;
  width: 12%;
  height: 40%;
  background: linear-gradient(180deg, transparent 0%, #0a0502 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  animation: ak-figure 6s ease-in-out infinite;
}
.scn-annette-knew .floor {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 20%;
  background: linear-gradient(180deg, #2a1a0e 0%, #1a0f0a 100%);
  border-top: 2px solid #4a3a2a;
}
.scn-annette-knew .candle-glow {
  position: absolute;
  bottom: 15%;
  left: 60%;
  width: 4%;
  height: 10%;
  background: radial-gradient(circle, #ffd060 0%, #c08020 40%, transparent 70%);
  animation: ak-candle 3s ease-in-out infinite alternate;
}

@keyframes ak-crack {
  0% { opacity: 0.4; transform: scaleX(0.8); }
  50% { opacity: 0.9; transform: scaleX(1.2); }
  100% { opacity: 0.5; transform: scaleX(0.9); }
}
@keyframes ak-figure {
  0%, 100% { transform: translateX(0) rotate(-2deg); }
  50% { transform: translateX(3px) rotate(2deg) scale(1.02); }
}
@keyframes ak-candle {
  0% { opacity: 0.6; filter: blur(6px); }
  100% { opacity: 1; filter: blur(3px); }
}

/* Suspicion-mounts (fear, firelit) */
.scn-suspicion-mounts {
  background: 
    linear-gradient(180deg, #0a0502 0%, #1a0a05 50%, #2a1005 100%),
    radial-gradient(ellipse at 50% 70%, rgba(200,50,10,0.15) 0%, transparent 60%);
}
.scn-suspicion-mounts .deep-shadow {
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at 50% 60%, transparent 0%, #0a0502 80%);
}
.scn-suspicion-mounts .fire-pit {
  position: absolute;
  bottom: 10%;
  left: 40%;
  width: 20%;
  height: 12%;
  background: radial-gradient(ellipse at 50% 0%, #ff6030 0%, #c02010 50%, transparent 80%);
  animation: sm-fire 2s ease-in-out infinite alternate;
}
.scn-suspicion-mounts .figure-silhouette {
  position: absolute;
  bottom: 15%;
  left: 30%;
  width: 25%;
  height: 55%;
  background: linear-gradient(180deg, #0a0502 0%, #1a0a05 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  animation: sm-figure 4s ease-in-out infinite;
}
.scn-suspicion-mounts .clutching-hand {
  position: absolute;
  bottom: 35%;
  left: 38%;
  width: 10%;
  height: 15%;
  background: radial-gradient(ellipse at 50% 50%, #2a1a0a 0%, #0a0502 100%);
  border-radius: 50% 50% 30% 30% / 40% 40% 60% 60%;
  animation: sm-hand 6s ease-in-out infinite;
}
.scn-suspicion-mounts .embers {
  position: absolute;
  bottom: 18%;
  left: 42%;
  width: 3%;
  height: 3%;
  background: #ff8040;
  border-radius: 50%;
  box-shadow: 0 0 20px rgba(255,128,64,0.6);
  animation: sm-ember 3s ease-in-out infinite;
}
.scn-suspicion-mounts .ground {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 18%;
  background: linear-gradient(180deg, #1a0a05 0%, #0a0502 100%);
}
.scn-suspicion-mounts .flicker-light {
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at 50% 50%, transparent 0%, rgba(200,50,10,0.05) 100%);
  animation: sm-flicker 1.5s ease-in-out infinite alternate;
}

@keyframes sm-fire {
  0% { transform: scaleY(1); opacity: 0.8; }
  50% { transform: scaleY(1.1); opacity: 1; }
  100% { transform: scaleY(0.9); opacity: 0.6; }
}
@keyframes sm-figure {
  0%, 100% { transform: rotate(0deg) translateX(0); }
  25% { transform: rotate(-3deg) translateX(-5px); }
  50% { transform: rotate(2deg) translateX(3px); }
  75% { transform: rotate(-1deg) translateX(-2px); }
}
@keyframes sm-hand {
  0%, 100% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-8px) scale(1.1); }
}
@keyframes sm-ember {
  0% { transform: translate(0, 0) scale(1); opacity: 1; }
  50% { transform: translate(10px, -20px) scale(0.7); opacity: 0.5; }
  100% { transform: translate(-5px, -30px) scale(0.3); opacity: 0; }
}
@keyframes sm-flicker {
  0% { opacity: 0.6; }
  100% { opacity: 1; }
}

.scn-morano-plots-kidnap {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #2c2c44 40%, #1e1e30 70%, #0f0f1a 100%),
    radial-gradient(ellipse at 40% 30%, #3a3a5a 0%, transparent 70%);
}
.scn-morano-plots-kidnap .wall-left { 
  position: absolute; left: 0; top: 0; width: 40%; height: 100%; 
  background: linear-gradient(90deg, #12121c 0%, #242438 100%); 
  transform: skewX(2deg); 
}
.scn-morano-plots-kidnap .wall-right { 
  position: absolute; right: 0; top: 0; width: 40%; height: 100%; 
  background: linear-gradient(270deg, #12121c 0%, #242438 100%); 
  transform: skewX(-2deg); 
}
.scn-morano-plots-kidnap .floor { 
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%; 
  background: linear-gradient(180deg, #1a1a2a 0%, #0c0c14 100%); 
  border-radius: 20% 20% 0 0 / 10% 10% 0 0; 
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.6); 
}
.scn-morano-plots-kidnap .table { 
  position: absolute; bottom: 18%; left: 50%; width: 100px; height: 6px; margin-left: -50px; 
  background: linear-gradient(90deg, #3a2a1a 0%, #2a1a0a 100%); 
  border-radius: 2px; 
  box-shadow: 0 4px 8px rgba(0,0,0,0.5); 
}
.scn-morano-plots-kidnap .candle-glow { 
  position: absolute; bottom: 25%; left: 50%; width: 60px; height: 60px; margin-left: -30px; 
  background: radial-gradient(circle, #ffcc66 0%, #ff9933 40%, transparent 70%); 
  border-radius: 50%; 
  animation: mpk-glow 3s ease-in-out infinite alternate; 
  opacity: 0.8;
}
.scn-morano-plots-kidnap .figure-plot { 
  position: absolute; bottom: 19%; left: 50%; width: 34px; height: 70px; margin-left: -17px; 
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a14 100%); 
  border-radius: 50% 50% 45% 45% / 60% 60% 45% 45%; 
  box-shadow: 0 0 12px 2px rgba(0,0,0,0.4); 
  transform-origin: bottom center; 
  animation: mpk-figure 6s ease-in-out infinite; 
}
.scn-morano-plots-kidnap .shadow-figure { 
  position: absolute; bottom: 19%; left: 38%; width: 28px; height: 55px; 
  background: rgba(0,0,0,0.4); 
  border-radius: 50% 50% 45% 45% / 60% 60% 45% 45%; 
  transform: skewX(-15deg) translateX(10px); 
  filter: blur(2px); 
  animation: mpk-shadow 6s ease-in-out infinite; 
}
@keyframes mpk-glow {
  0% { transform: scale(0.9); opacity: 0.7; }
  50% { transform: scale(1.1); opacity: 1; }
  100% { transform: scale(0.95); opacity: 0.8; }
}
@keyframes mpk-figure {
  0% { transform: translateY(0) rotate(-1deg); }
  25% { transform: translateY(-2px) rotate(1deg); }
  50% { transform: translateY(0) rotate(2deg); }
  75% { transform: translateY(-1px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes mpk-shadow {
  0% { opacity: 0.3; transform: skewX(-15deg) translateX(10px); }
  50% { opacity: 0.6; transform: skewX(-15deg) translateX(8px); }
  100% { opacity: 0.4; transform: skewX(-15deg) translateX(12px); }
}

.scn-carlo-overhears {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #2a2a44 50%, #16162a 100%),
    radial-gradient(ellipse at 60% 50%, #2c2c4a 0%, transparent 70%);
}
.scn-carlo-overhears .door-frame {
  position: absolute; left: 30%; top: 5%; width: 40%; height: 95%; 
  background: linear-gradient(90deg, #2a2a3e 0%, #3a3a4e 50%, #2a2a3e 100%); 
  border-radius: 4px 4px 0 0; 
  box-shadow: inset 0 0 20px rgba(0,0,0,0.5); 
}
.scn-carlo-overhears .door-sliver {
  position: absolute; left: 48%; top: 5%; width: 4%; height: 95%; 
  background: linear-gradient(180deg, #4a4a5e 0%, #5a5a6e 100%); 
  opacity: 0.4; 
  animation: coh-sliver 4s ease-in-out infinite alternate; 
}
.scn-carlo-overhears .wall-dark {
  position: absolute; left: 0; right: 0; top: 0; bottom: 0; 
  background: linear-gradient(180deg, #0e0e1a 0%, #1a1a30 100%); 
  opacity: 0.3; 
}
.scn-carlo-overhears .carlo-silhouette {
  position: absolute; bottom: 10%; left: 55%; width: 32px; height: 68px; 
  background: linear-gradient(180deg, #0a0a14 0%, #05050a 100%); 
  border-radius: 50% 40% 45% 55% / 60% 55% 45% 40%; 
  transform: skewX(-3deg); 
  box-shadow: 0 0 8px rgba(0,0,0,0.6); 
  animation: coh-ear 8s ease-in-out infinite; 
}
.scn-carlo-overhears .candle-light {
  position: absolute; bottom: 20%; left: 25%; width: 40px; height: 40px; 
  background: radial-gradient(circle, #ffdd99 0%, #ffaa44 40%, transparent 70%); 
  border-radius: 50%; 
  animation: coh-candle 3s ease-in-out infinite alternate; 
  opacity: 0.7;
}
.scn-carlo-overhears .curtain-top {
  position: absolute; top: 0; left: 25%; width: 50%; height: 12%; 
  background: linear-gradient(180deg, #2a1a1a 0%, #3a2a2a 100%); 
  border-radius: 0 0 50% 50%; 
  box-shadow: 0 6px 12px rgba(0,0,0,0.4); 
}
@keyframes coh-sliver {
  0% { opacity: 0.2; }
  50% { opacity: 0.6; }
  100% { opacity: 0.3; }
}
@keyframes coh-ear {
  0% { transform: skewX(-3deg) translateY(0); }
  25% { transform: skewX(-3deg) translateY(-1px); }
  50% { transform: skewX(-3deg) translateY(0); }
  75% { transform: skewX(-3deg) translateY(1px); }
  100% { transform: skewX(-3deg) translateY(0); }
}
@keyframes coh-candle {
  0% { transform: scale(0.9); opacity: 0.6; }
  50% { transform: scale(1.05); opacity: 0.9; }
  100% { transform: scale(0.95); opacity: 0.7; }
}

.scn-carlo-alerts-montoni {
  background:
    linear-gradient(180deg, #1c1c2e 0%, #2e2e44 40%, #1a1a2c 100%),
    radial-gradient(ellipse at 30% 60%, #3a3a52 0%, transparent 70%);
}
.scn-carlo-alerts-montoni .room-bg {
  position: absolute; inset: 0; 
  background: linear-gradient(135deg, #1a1a2e 0%, #28283e 50%, #121224 100%); 
  opacity: 0.8; 
}
.scn-carlo-alerts-montoni .fireplace {
  position: absolute; bottom: 10%; left: 20%; width: 35%; height: 50%; 
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); 
  border-radius: 20% 20% 10% 10% / 30% 30% 10% 10%; 
  box-shadow: inset 0 0 30px rgba(0,0,0,0.7); 
}
.scn-carlo-alerts-montoni .fire-glow {
  position: absolute; bottom: 25%; left: 25%; width: 25%; height: 25%; 
  background: radial-gradient(circle, #ff9933 0%, #cc6600 50%, transparent 80%); 
  border-radius: 50%; 
  animation: cam-fire 4s ease-in-out infinite; 
  opacity: 0.8;
}
.scn-carlo-alerts-montoni .montoni-figure {
  position: absolute; bottom: 15%; left: 45%; width: 40px; height: 80px; 
  background: linear-gradient(180deg, #0e0e1a 0%, #06060c 100%); 
  border-radius: 50% 45% 50% 50% / 65% 60% 45% 45%; 
  box-shadow: 0 0 10px rgba(0,0,0,0.5); 
  transform-origin: bottom center; 
  animation: cam-montoni 8s ease-in-out infinite alternate; 
}
.scn-carlo-alerts-montoni .carlo-figure {
  position: absolute; bottom: 15%; left: 30%; width: 30px; height: 65px; 
  background: linear-gradient(180deg, #12121e 0%, #080812 100%); 
  border-radius: 50% 40% 45% 55% / 60% 50% 45% 40%; 
  transform: scaleX(0.85) skewX(-5deg); 
  box-shadow: 0 0 8px rgba(0,0,0,0.4); 
  animation: cam-carlo 6s ease-in-out infinite; 
}
.scn-carlo-alerts-montoni .table {
  position: absolute; bottom: 12%; left: 35%; width: 60px; height: 5px; 
  background: linear-gradient(90deg, #3a2a1a 0%, #2a1a0a 100%); 
  border-radius: 2px; 
}
.scn-carlo-alerts-montoni .chair {
  position: absolute; bottom: 10%; left: 50%; width: 25px; height: 40px; 
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); 
  border-radius: 10% 10% 20% 20%; 
  transform: skewX(3deg); 
}
@keyframes cam-fire {
  0% { transform: scale(0.9); opacity: 0.6; }
  50% { transform: scale(1.1); opacity: 1; }
  100% { transform: scale(1); opacity: 0.8; }
}
@keyframes cam-montoni {
  0% { transform: translateY(0) rotate(0); }
  50% { transform: translateY(-1px) rotate(1deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes cam-carlo {
  0% { transform: scaleX(0.85) skewX(-5deg) translateY(0); }
  25% { transform: scaleX(0.85) skewX(-5deg) translateY(-1px); }
  50% { transform: scaleX(0.85) skewX(-5deg) translateY(0); }
  75% { transform: scaleX(0.85) skewX(-5deg) translateY(1px); }
  100% { transform: scaleX(0.85) skewX(-5deg) translateY(0); }
}

.scn-morano-recovers {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #2a2a44 40%, #141428 100%),
    radial-gradient(ellipse at 50% 70%, #2e2e4a 0%, transparent 80%);
}
.scn-morano-recovers .cottage-wall {
  position: absolute; inset: 0; 
  background: linear-gradient(135deg, #1e1e30 0%, #2c2c42 50%, #121224 100%); 
  opacity: 0.9; 
}
.scn-morano-recovers .bed {
  position: absolute; bottom: 0; left: 10%; width: 80%; height: 35%; 
  background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 100%); 
  border-radius: 20% 20% 0 0 / 30% 30% 0 0; 
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.5); 
}
.scn-morano-recovers .morano-figure {
  position: absolute; bottom: 8%; left: 40%; width: 50px; height: 70px; 
  background: linear-gradient(180deg, #0a0a14 0%, #040408 100%); 
  border-radius: 50% 50% 45% 45% / 65% 65% 40% 40%; 
  transform: rotate(-5deg); 
  box-shadow: 0 0 12px rgba(0,0,0,0.6); 
  animation: mrc-figure 6s ease-in-out infinite; 
}
.scn-morano-recovers .window-moon {
  position: absolute; top: 8%; right: 15%; width: 30%; height: 40%; 
  background: linear-gradient(180deg, #3a4a5a 0%, #1a2a3a 100%); 
  border-radius: 4px; 
  box-shadow: inset 0 0 20px rgba(0,0,0,0.6); 
}
.scn-morano-recovers .moon-beam {
  position: absolute; top: 12%; right: 18%; width: 20%; height: 35%; 
  background: linear-gradient(180deg, rgba(200,220,255,0.2) 0%, transparent 100%); 
  filter: blur(8px); 
  animation: mrc-beam 12s ease-in-out infinite alternate; 
}
.scn-morano-recovers .candle {
  position: absolute; bottom: 25%; left: 22%; width: 8px; height: 20px; 
  background: linear-gradient(180deg, #ffcc66 0%, #cc9933 100%); 
  border-radius: 2px 2px 4px 4px; 
  box-shadow: 0 0 6px rgba(255,200,100,0.5); 
}
.scn-morano-recovers .candle-glow {
  position: absolute; bottom: 22%; left: 18%; width: 50px; height: 50px; 
  background: radial-gradient(circle, #ffdd88 0%, #ffaa44 40%, transparent 70%); 
  border-radius: 50%; 
  animation: mrc-glow 3s ease-in-out infinite alternate; 
  opacity: 0.7;
}
@keyframes mrc-figure {
  0% { transform: rotate(-5deg) translateY(0); }
  25% { transform: rotate(-5deg) translateY(-1px); }
  50% { transform: rotate(-5deg) translateY(0); }
  75% { transform: rotate(-5deg) translateY(1px); }
  100% { transform: rotate(-5deg) translateY(0); }
}
@keyframes mrc-beam {
  0% { opacity: 0.2; transform: scaleY(0.9); }
  50% { opacity: 0.5; transform: scaleY(1.1); }
  100% { opacity: 0.3; transform: scaleY(0.95); }
}
@keyframes mrc-glow {
  0% { transform: scale(0.85); opacity: 0.5; }
  50% { transform: scale(1.15); opacity: 1; }
  100% { transform: scale(0.95); opacity: 0.7; }
}

.scn-musing-on-miniature {
  background: 
    radial-gradient(ellipse at 50% 60%, #3a2a1a 0%, transparent 70%),
    linear-gradient(180deg, #2a1f14 0%, #1a1208 100%);
}
.scn-musing-on-miniature .wall-back {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1208 100%);
  animation: msm-shadow 12s ease-in-out infinite alternate;
}
.scn-musing-on-miniature .table {
  position: absolute; bottom: 10%; left: 20%; right: 20%; height: 30%;
  background: linear-gradient(180deg, #4a3520 0%, #2a1a0e 100%);
  border-radius: 8% 8% 10% 10% / 20% 20% 10% 10%;
  box-shadow: 0 -8px 20px rgba(0,0,0,0.6);
}
.scn-musing-on-miniature .candle {
  position: absolute; bottom: 40%; left: 50%; width: 8px; height: 30px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #e0c070 0%, #b08040 100%);
  border-radius: 20% 20% 10% 10%;
}
.scn-musing-on-miniature .candle-glow {
  position: absolute; bottom: 42%; left: 50%; width: 80px; height: 80px;
  transform: translate(-50%, -50%);
  background: radial-gradient(circle, rgba(255,200,100,0.6) 0%, transparent 70%);
  animation: msm-flicker 2s ease-in-out infinite alternate;
}
.scn-musing-on-miniature .miniature {
  position: absolute; bottom: 30%; left: 50%; width: 40px; height: 50px;
  transform: translate(-50%, 0);
  background: linear-gradient(135deg, #a08060 0%, #705040 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: msm-tilt 6s ease-in-out infinite;
}
.scn-musing-on-miniature .figure {
  position: absolute; bottom: 8%; left: 30%; width: 40px; height: 90px;
  background: linear-gradient(180deg, #2a1a0e 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: -8px 0 12px rgba(0,0,0,0.4);
  animation: msm-breathe 4s ease-in-out infinite;
}
.scn-musing-on-miniature .chair {
  position: absolute; bottom: 8%; left: 26%; width: 50px; height: 70px;
  background: linear-gradient(180deg, #4a3520 0%, #2a1a0e 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
  animation: msm-chair 8s ease-in-out infinite;
}
@keyframes msm-shadow { 0% { opacity: 0.6; } 50% { opacity: 0.8; } 100% { opacity: 0.5; } }
@keyframes msm-flicker { 0% { transform: translate(-50%, -50%) scale(1); opacity: 0.8; } 50% { transform: translate(-50%, -50%) scale(1.1); opacity: 1; } 100% { transform: translate(-50%, -50%) scale(0.95); opacity: 0.7; } }
@keyframes msm-tilt { 0% { transform: translate(-50%, 0) rotate(0deg); } 50% { transform: translate(-50%, 0) rotate(2deg); } 100% { transform: translate(-50%, 0) rotate(0deg); } }
@keyframes msm-breathe { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-2px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes msm-chair { 0% { transform: rotate(0deg); } 50% { transform: rotate(1deg); } 100% { transform: rotate(0deg); } }

.scn-remembrance-of-manuscript {
  background: 
    linear-gradient(180deg, #1a1418 0%, #0a080c 100%),
    radial-gradient(ellipse at 40% 50%, #3a2a2a 0%, transparent 70%);
}
.scn-remembrance-of-manuscript .wall-dark {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #1a1418 0%, #0a080c 100%);
  animation: rom-pulse 15s ease-in-out infinite alternate;
}
.scn-remembrance-of-manuscript .table-front {
  position: absolute; bottom: 10%; left: 25%; right: 25%; height: 25%;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 10% 10% 15% 15% / 25% 25% 15% 15%;
  box-shadow: 0 -10px 30px rgba(0,0,0,0.7);
}
.scn-remembrance-of-manuscript .manuscript {
  position: absolute; bottom: 22%; left: 45%; width: 50px; height: 30px;
  transform: translate(-10%, 0);
  background: linear-gradient(135deg, #5a4030 0%, #3a2018 100%);
  border-radius: 3px;
  box-shadow: 2px 2px 6px rgba(0,0,0,0.5);
  animation: rom-shake 3s ease-in-out infinite;
}
.scn-remembrance-of-manuscript .candle-flicker {
  position: absolute; bottom: 38%; left: 55%; width: 6px; height: 20px;
  background: linear-gradient(180deg, #e0a050 0%, #a06030 100%);
  border-radius: 20% 20% 10% 10%;
  animation: rom-candle 1.5s ease-in-out infinite alternate;
}
.scn-remembrance-of-manuscript .shadow-hand {
  position: absolute; bottom: 20%; left: 40%; width: 30px; height: 40px;
  background: linear-gradient(180deg, transparent 0%, #0a080c 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(20deg);
  animation: rom-hand 4s ease-in-out infinite;
}
.scn-remembrance-of-manuscript .figure-tremble {
  position: absolute; bottom: 5%; left: 30%; width: 35px; height: 80px;
  background: linear-gradient(180deg, #1a1010 0%, #0a0808 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: rom-tremble 0.5s ease-in-out infinite;
}
.scn-remembrance-of-manuscript .door-crack {
  position: absolute; top: 10%; right: 10%; width: 2px; height: 60px;
  background: #2a1a1a;
  box-shadow: 0 0 20px 6px rgba(0,0,0,0.8);
  animation: rom-door 8s ease-in-out infinite;
}
@keyframes rom-pulse { 0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.6; } }
@keyframes rom-shake { 0% { transform: translate(-10%, 0) rotate(0deg); } 25% { transform: translate(-10%, 0) rotate(1deg); } 50% { transform: translate(-10%, 0) rotate(0deg); } 75% { transform: translate(-10%, 0) rotate(-1deg); } 100% { transform: translate(-10%, 0) rotate(0deg); } }
@keyframes rom-candle { 0% { transform: scaleY(1) scaleX(1); opacity: 0.8; } 50% { transform: scaleY(1.1) scaleX(0.9); opacity: 1; } 100% { transform: scaleY(0.9) scaleX(1.1); opacity: 0.7; } }
@keyframes rom-hand { 0% { transform: rotate(20deg) translateX(0); } 50% { transform: rotate(15deg) translateX(2px); } 100% { transform: rotate(20deg) translateX(0); } }
@keyframes rom-tremble { 0% { transform: translate(0,0); } 25% { transform: translate(1px,1px); } 50% { transform: translate(-1px,0); } 75% { transform: translate(0,1px); } 100% { transform: translate(0,0); } }
@keyframes rom-door { 0% { transform: scaleY(1); opacity: 0.6; } 50% { transform: scaleY(1.05); opacity: 0.9; } 100% { transform: scaleY(1); opacity: 0.6; } }

.scn-staircase-door-fear {
  background: 
    linear-gradient(180deg, #0e101a 0%, #060810 100%),
    radial-gradient(ellipse at 50% 20%, #2a2a3a 0%, transparent 70%);
}
.scn-staircase-door-fear .wall-stone {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #0e101a 0%, #060810 100%);
  animation: sdf-pulse 20s ease-in-out infinite alternate;
}
.scn-staircase-door-fear .door-arch {
  position: absolute; top: 15%; left: 35%; width: 90px; height: 160px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 5% 5% / 60% 60% 5% 5%;
  box-shadow: 0 0 30px 10px rgba(0,0,0,0.8);
}
.scn-staircase-door-fear .staircase {
  position: absolute; bottom: 0; left: 35%; width: 90px; height: 40%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  clip-path: polygon(0 0, 20% 0, 20% 100%, 0 100%);
  animation: sdf-stairs 10s ease-in-out infinite;
}
.scn-staircase-door-fear .shadow-creep {
  position: absolute; bottom: 0; left: 30%; width: 120px; height: 50%;
  background: linear-gradient(180deg, transparent 0%, #0a0a1a 80%);
  animation: sdf-creep 6s ease-in-out infinite alternate;
}
.scn-staircase-door-fear .hand-grip {
  position: absolute; top: 40%; left: 42%; width: 20px; height: 18px;
  background: linear-gradient(135deg, #3a3a4a 0%, #2a2a3a 100%);
  border-radius: 50% 20% 20% 50% / 50% 30% 30% 50%;
  transform: rotate(-10deg);
  animation: sdf-hand 2s ease-in-out infinite;
}
.scn-staircase-door-fear .door-glow {
  position: absolute; top: 30%; left: 45%; width: 40px; height: 80px;
  background: radial-gradient(ellipse at 50% 50%, rgba(80,80,140,0.3) 0%, transparent 70%);
  animation: sdf-glow 4s ease-in-out infinite alternate;
}
@keyframes sdf-pulse { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes sdf-stairs { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes sdf-creep { 0% { transform: scaleY(0); } 50% { transform: scaleY(1); } 100% { transform: scaleY(0.8); } }
@keyframes sdf-hand { 0% { transform: rotate(-10deg) translate(0,0); } 50% { transform: rotate(0deg) translate(2px,2px); } 100% { transform: rotate(-10deg) translate(0,0); } }
@keyframes sdf-glow { 0% { opacity: 0.3; } 50% { opacity: 0.7; } 100% { opacity: 0.2; } }

.scn-disturbed-sleep {
  background: 
    radial-gradient(ellipse at 50% 50%, #1a1420 0%, #0a0810 100%),
    linear-gradient(180deg, #1a1420 0%, #0a0810 100%);
}
.scn-disturbed-sleep .room-dark {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #1a1420 0%, #0a0810 100%);
  animation: ds-dim 10s ease-in-out infinite alternate;
}
.scn-disturbed-sleep .bed-frame {
  position: absolute; bottom: 5%; left: 20%; right: 20%; height: 35%;
  background: linear-gradient(180deg, #2a2030 0%, #1a1020 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 -8px 20px rgba(0,0,0,0.7);
}
.scn-disturbed-sleep .pillow {
  position: absolute; bottom: 30%; left: 35%; width: 50px; height: 20px;
  background: linear-gradient(180deg, #3a3040 0%, #2a2030 100%);
  border-radius: 40% 40% 30% 30%;
  transform: rotate(5deg);
  animation: ds-pillow 8s ease-in-out infinite;
}
.scn-disturbed-sleep .sleeping-figure {
  position: absolute; bottom: 10%; left: 32%; width: 60px; height: 80px;
  background: linear-gradient(180deg, #2a2030 0%, #1a1020 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(10deg);
  animation: ds-sleep 6s ease-in-out infinite;
}
.scn-disturbed-sleep .noise-ring {
  position: absolute; top: 25%; left: 50%; width: 100px; height: 100px;
  transform: translate(-50%, -50%);
  border: 2px solid rgba(100,100,160,0.1);
  border-radius: 50%;
  animation: ds-ring 3s ease-out infinite;
}
.scn-disturbed-sleep .ring-pulse {
  position: absolute; top: 25%; left: 50%; width: 100px; height: 100px;
  transform: translate(-50%, -50%);
  background: radial-gradient(circle, rgba(100,100,160,0.05) 0%, transparent 70%);
  animation: ds-pulse 3s ease-out infinite;
}
@keyframes ds-dim { 0% { opacity: 0.6; } 50% { opacity: 0.8; } 100% { opacity: 0.5; } }
@keyframes ds-pillow { 0% { transform: rotate(5deg) translateY(0); } 50% { transform: rotate(3deg) translateY(-1px); } 100% { transform: rotate(5deg) translateY(0); } }
@keyframes ds-sleep { 0% { transform: rotate(10deg) scaleY(1); } 50% { transform: rotate(8deg) scaleY(1.02); } 100% { transform: rotate(10deg) scaleY(1); } }
@keyframes ds-ring { 0% { width: 0; height: 0; opacity: 0.5; } 50% { width: 100px; height: 100px; opacity: 0.2; } 100% { width: 200px; height: 200px; opacity: 0; } }
@keyframes ds-pulse { 0% { transform: translate(-50%, -50%) scale(0); opacity: 0.5; } 50% { transform: translate(-50%, -50%) scale(1); opacity: 0.2; } 100% { transform: translate(-50%, -50%) scale(2); opacity: 0; } }

.scn-examining-room { background: linear-gradient(180deg, #2a1f0f 0%, #4b3220 30%, #3a2416 70%) , radial-gradient(ellipse at 30% 60%, #c8683a 0%, transparent 60%); }
.scn-examining-room .walls { position:absolute; inset:0; background: linear-gradient(90deg, #1f140a 0%, #3c2815 50%, #1a130b 100%); box-shadow: inset 0 0 100px rgba(0,0,0,.5); }
.scn-examining-room .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #4a3220 0%, #2a1a0c 100%); border-radius: 2% 2% 0 0; box-shadow: inset 0 20px 30px rgba(0,0,0,.4); }
.scn-examining-room .door { position:absolute; bottom:25%; left:8%; width:25%; height:55%; background: linear-gradient(180deg, #5a4030 0%, #3a2820 100%); border: 2px solid #2a1a10; border-radius: 4px 8px 4px 4px; box-shadow: inset 0 0 10px rgba(0,0,0,.3); animation: ex-door 8s ease-in-out infinite; }
.scn-examining-room .chair { position:absolute; bottom:30%; left:52%; width:20%; height:40%; background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 4px 8px rgba(0,0,0,.5); transform: rotate(-2deg); animation: ex-chair 12s ease-in-out infinite; }
.scn-examining-room .hearth { position:absolute; bottom:10%; left:72%; width:18%; height:32%; background: linear-gradient(180deg, #2a1a0c 0%, #1a0e06 100%); border-radius: 30% 30% 10% 10%; box-shadow: inset 0 -10px 30px rgba(200,100,50,.3); }
.scn-examining-room .fire { position:absolute; bottom:15%; left:74%; width:12%; height:18%; background: radial-gradient(ellipse at 50% 100%, #ff8c42 0%, #c85830 40%, transparent 70%); animation: ex-fire 1.2s ease-in-out infinite alternate; }
.scn-examining-room .figure { position:absolute; bottom:25%; left:30%; width:12%; height:40%; background: linear-gradient(180deg, #2a1a10 0%, #140c06 100%); border-radius: 50% 40% 30% 30% / 60% 50% 40% 40%; transform-origin: bottom; animation: ex-figure 5s ease-in-out infinite; }
.scn-examining-room .candle { position:absolute; bottom:32%; left:43%; width:3%; height:8%; background: linear-gradient(180deg, #e0c080 0%, #a08050 100%); border-radius: 10% 10% 20% 20%; box-shadow: 0 0 15px 4px #c08040; animation: ex-candle 3s ease-in-out infinite; }
@keyframes ex-door { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-5px); } }
@keyframes ex-chair { 0% { transform: rotate(-2deg); } 50% { transform: rotate(1deg); } 100% { transform: rotate(-2deg); } }
@keyframes ex-fire { 0% { opacity: .7; transform: scaleY(1); } 100% { opacity: 1; transform: scaleY(1.1); } }
@keyframes ex-figure { 0%,100% { transform: translateX(0) rotate(0); } 25% { transform: translateX(10px) rotate(-2deg); } 50% { transform: translateX(20px) rotate(2deg); } 75% { transform: translateX(10px) rotate(-1deg); } }
@keyframes ex-candle { 0%,100% { transform: scaleY(1); opacity: .8; } 50% { transform: scaleY(1.15); opacity: 1; } }

.scn-staircase-door { background: linear-gradient(180deg, #0e0e1a 0%, #1a1a2e 40%, #0f0f1f 100%), radial-gradient(ellipse at 80% 40%, #2a2a3e 0%, transparent 70%); }
.scn-staircase-door .bg-wall { position:absolute; inset:0; background: linear-gradient(90deg, #0f0f1f 0%, #1a1a2e 50%, #101020 100%); }
.scn-staircase-door .stairs { position:absolute; bottom:0; left:30%; right:0; height:60%; background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 40%, #0e0e1a 100%); clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%); box-shadow: inset 0 20px 40px rgba(0,0,0,.7); }
.scn-staircase-door .stairs { width:40%; left:auto; right:10%; height:70%; background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%); clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%); animation: st-stairs 15s ease-in-out infinite; }
.scn-staircase-door .door { position:absolute; bottom:25%; left:12%; width:18%; height:45%; background: linear-gradient(180deg, #3a3a4e 0%, #2a2a3e 100%); border: 2px solid #1a1a2e; border-radius: 4px 8px 4px 4px; box-shadow: 0 0 20px 5px rgba(100,100,150,.2); animation: st-door 5s ease-in-out infinite; }
.scn-staircase-door .door-glow { position:absolute; bottom:25%; left:12%; width:18%; height:45%; background: radial-gradient(ellipse at 50% 60%, rgba(200,200,255,.15) 0%, transparent 70%); pointer-events: none; animation: st-glow 4s ease-in-out infinite alternate; }
.scn-staircase-door .shadow-hand { position:absolute; bottom:20%; left:8%; width:10%; height:20%; background: rgba(0,0,0,.6); border-radius: 60% 40% 30% 30% / 70% 50% 40% 40%; transform: rotate(10deg); filter: blur(3px); animation: st-hand 8s ease-in-out infinite; }
.scn-staircase-door .cobweb { position:absolute; top:10%; left:5%; width:30%; height:20%; background: radial-gradient(circle at 50% 50%, rgba(200,200,255,.1) 1px, transparent 1px); background-size: 8px 8px; opacity: .3; animation: st-web 20s linear infinite; }
@keyframes st-stairs { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-4px); } }
@keyframes st-door { 0% { transform: scaleY(1); } 25% { transform: scaleY(1.02); } 50% { transform: scaleY(1); } 75% { transform: scaleY(1.01); } 100% { transform: scaleY(1); } }
@keyframes st-glow { 0% { opacity: .3; } 100% { opacity: .6; } }
@keyframes st-hand { 0%,100% { transform: translateX(0) rotate(10deg); } 50% { transform: translateX(-15px) rotate(15deg); } }
@keyframes st-web { 0% { transform: scale(1); } 50% { transform: scale(1.05); } 100% { transform: scale(1); } }

.scn-wish-for-company { background: linear-gradient(180deg, #12101c 0%, #1c1a2a 40%, #0e0c18 100%), radial-gradient(ellipse at 30% 70%, #2a2840 0%, transparent 60%); }
.scn-wish-for-company .walls { position:absolute; inset:0; background: linear-gradient(180deg, #1a1826 0%, #0f0d1a 100%); }
.scn-wish-for-company .floor { position:absolute; bottom:0; left:20%; right:0; height:30%; background: linear-gradient(180deg, #2a2840 0%, #1a1826 100%); border-radius: 20% 10% 0 0; box-shadow: inset 0 15px 25px rgba(0,0,0,.5); }
.scn-wish-for-company .door { position:absolute; bottom:25%; left:55%; width:20%; height:45%; background: linear-gradient(180deg, #3a3850 0%, #2a2840 100%); border: 2px solid #1a1826; border-radius: 4px; box-shadow: 0 0 30px 5px rgba(100,80,150,.15); animation: wc-door 10s ease-in-out infinite; }
.scn-wish-for-company .candle { position:absolute; bottom:32%; left:20%; width:3%; height:8%; background: linear-gradient(180deg, #e0c080 0%, #a08050 100%); border-radius: 10% 10% 20% 20%; box-shadow: 0 0 20px 6px #c08040; animation: wc-candle 4s ease-in-out infinite; }
.scn-wish-for-company .candle-glow { position:absolute; bottom:30%; left:17%; width:10%; height:15%; background: radial-gradient(circle, rgba(200,150,80,.3) 0%, transparent 70%); animation: wc-glow 4s ease-in-out infinite alternate; }
.scn-wish-for-company .figure { position:absolute; bottom:25%; left:25%; width:12%; height:40%; background: linear-gradient(180deg, #1c1a2a 0%, #0e0c18 100%); border-radius: 50% 40% 30% 30% / 60% 50% 40% 40%; transform-origin: bottom; animation: wc-figure 6s ease-in-out infinite; }
.scn-wish-for-company .shadow { position:absolute; bottom:0; left:22%; width:20%; height:25%; background: rgba(0,0,0,.6); border-radius: 50% 50% 20% 20%; filter: blur(8px); animation: wc-shadow 6s ease-in-out infinite; }
@keyframes wc-door { 0%,100% { transform: translateX(0); } 50% { transform: translateX(-3px); } }
@keyframes wc-candle { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(1.1); } }
@keyframes wc-glow { 0% { opacity: .5; transform: scale(1); } 100% { opacity: .8; transform: scale(1.2); } }
@keyframes wc-figure { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(-5px) rotate(3deg); } 50% { transform: translateX(-10px) rotate(-2deg); } 75% { transform: translateX(-5px) rotate(1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes wc-shadow { 0%,100% { transform: scale(1); opacity: .6; } 50% { transform: scale(0.9); opacity: .4; } }

.scn-annette-begins-story { background: linear-gradient(180deg, #2a1a0a 0%, #4a3220 40%, #1a0e06 100%), radial-gradient(ellipse at 40% 70%, #c8683a 0%, transparent 50%); }
.scn-annette-begins-story .walls { position:absolute; inset:0; background: linear-gradient(180deg, #2a1a0a 0%, #3a2416 100%); box-shadow: inset 0 0 80px rgba(0,0,0,.5); }
.scn-annette-begins-story .hearth { position:absolute; bottom:10%; left:70%; width:20%; height:35%; background: linear-gradient(180deg, #1a0e06 0%, #0a0502 100%); border-radius: 30% 30% 10% 10%; box-shadow: inset 0 -10px 30px rgba(200,100,50,.4); }
.scn-annette-begins-story .fire { position:absolute; bottom:15%; left:72%; width:14%; height:20%; background: radial-gradient(ellipse at 50% 100%, #ff9c4a 0%, #c86030 30%, transparent 70%); animation: an-fire 1.5s ease-in-out infinite alternate; }
.scn-annette-begins-story .figure-emily { position:absolute; bottom:25%; left:18%; width:12%; height:40%; background: linear-gradient(180deg, #2a1a10 0%, #140c06 100%); border-radius: 50% 40% 30% 30% / 60% 50% 40% 40%; transform-origin: bottom; animation: an-emily 8s ease-in-out infinite; }
.scn-annette-begins-story .figure-annette { position:absolute; bottom:25%; left:48%; width:14%; height:42%; background: linear-gradient(180deg, #3a2210 0%, #1a0e06 100%); border-radius: 40% 50% 30% 30% / 50% 60% 40% 40%; transform-origin: bottom; animation: an-annette 6s ease-in-out infinite; }
.scn-annette-begins-story .chair-annette { position:absolute; bottom:22%; left:52%; width:18%; height:38%; background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 4px 8px rgba(0,0,0,.5); transform: rotate(3deg); animation: an-chair 10s ease-in-out infinite; }
.scn-annette-begins-story .shadow-shape { position:absolute; bottom:0; left:40%; width:30%; height:20%; background: rgba(0,0,0,.5); border-radius: 50% 50% 20% 20%; filter: blur(10px); animation: an-shadow 12s ease-in-out infinite; }
@keyframes an-fire { 0% { opacity: .7; transform: scaleY(1) translateY(0); } 100% { opacity: 1; transform: scaleY(1.15) translateY(-3px); } }
@keyframes an-emily { 0%,100% { transform: translateX(0) rotate(0); } 30% { transform: translateX(5px) rotate(2deg); } 60% { transform: translateX(-2px) rotate(-1deg); } }
@keyframes an-annette { 0% { transform: translateX(0) rotate(0); } 20% { transform: translateX(3px) rotate(3deg); } 40% { transform: translateX(-2px) rotate(-2deg); } 60% { transform: translateX(4px) rotate(1deg); } 80% { transform: translateX(-1px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes an-chair { 0%,100% { transform: rotate(3deg); } 50% { transform: rotate(0deg); } }
@keyframes an-shadow { 0%,100% { opacity: .4; } 50% { opacity: .6; } }

.scn-anette-overhears { background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 60%, #1a0a00 100%), radial-gradient(ellipse at 30% 70%, #5a4a3a 0%, transparent 70%); }
.scn-anette-overhears .room-back    { position:absolute; inset:0; background: linear-gradient(135deg, #4a3a2a 0%, #2a1a0a 100%); }
.scn-anette-overhears .door-frame   { position:absolute; bottom:10%; left:25%; width:45%; height:75%; border:6px solid #3a2a1a; border-radius:4px; background: #1a1008; box-shadow: inset 0 0 30px #000; }
.scn-anette-overhears .door-crack   { position:absolute; bottom:15%; left:45%; width:2%; height:60%; background: linear-gradient(180deg, #c8a85a 0%, #a08040 50%, #604020 100%); box-shadow: 0 0 20px #c8a85a; animation: an-crack 4s ease-in-out infinite alternate; }
.scn-anette-overhears .figure-eavesdrop { position:absolute; bottom:12%; left:30%; width:8%; height:25%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: an-eavesdrop 5s ease-in-out infinite; }
.scn-anette-overhears .shadow-sweep { position:absolute; inset:0; background: linear-gradient(135deg, transparent 30%, rgba(0,0,0,.4) 70%); animation: an-shadowsweep 8s ease-in-out infinite alternate; }
.scn-anette-overhears .dust-mote    { position:absolute; top:50%; left:60%; width:1%; height:1%; background: rgba(200,168,90,.6); border-radius:50%; box-shadow: 0 0 8px 2px #c8a85a; animation: an-dust 6s ease-in-out infinite; }
.scn-anette-overhears .lantern-dim  { position:absolute; top:20%; left:55%; width:4%; height:6%; background: radial-gradient(circle, #d4a860 0%, transparent 70%); border-radius:50%; box-shadow: 0 0 30px 10px #b08040; animation: an-lantern 3s ease-in-out infinite alternate; }
@keyframes an-crack { 0% { opacity:.5; transform: scaleX(1); } 50% { opacity:.8; transform: scaleX(1.04); } 100% { opacity:.6; transform: scaleX(1); } }
@keyframes an-eavesdrop { 0% { transform: translateY(0) rotate(2deg); } 25% { transform: translateY(-2px) rotate(-1deg); } 50% { transform: translateY(0) rotate(3deg); } 75% { transform: translateY(-1px) rotate(-2deg); } 100% { transform: translateY(0) rotate(1deg); } }
@keyframes an-shadowsweep { 0% { opacity:.3; } 50% { opacity:.6; } 100% { opacity:.4; } }
@keyframes an-dust { 0% { transform: translateY(0) translateX(0); opacity:.3; } 50% { transform: translateY(-20px) translateX(10px); opacity:.7; } 100% { transform: translateY(-40px) translateX(5px); opacity:.2; } }
@keyframes an-lantern { 0% { opacity:.5; box-shadow: 0 0 15px 5px #b08040; } 50% { opacity:.8; box-shadow: 0 0 30px 12px #d4a860; } 100% { opacity:.6; box-shadow: 0 0 20px 8px #b08040; } }

.scn-montoni-rages-again { background: linear-gradient(180deg, #1a0a05 0%, #2a1008 40%, #3a1a0a 100%), radial-gradient(ellipse at 60% 50%, #4a2010 0%, transparent 60%); }
.scn-montoni-rages-again .chamber-dark { position:absolute; inset:0; background: radial-gradient(ellipse at 40% 50%, rgba(50,20,10,0.6) 0%, rgba(0,0,0,0.9) 100%); animation: mr-chamber 7s ease-in-out infinite alternate; }
.scn-montoni-rages-again .figure-montoni { position:absolute; bottom:10%; left:30%; width:25%; height:50%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mr-montoni 1s ease-in-out infinite; }
.scn-montoni-rages-again .figure-emily   { position:absolute; bottom:10%; right:25%; width:12%; height:35%; background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%); border-radius:50% 50% 40% 40% / 70% 70% 30% 30%; transform-origin: bottom center; animation: mr-emily 2s ease-in-out infinite; }
.scn-montoni-rages-again .table-obj      { position:absolute; bottom:10%; left:48%; width:20%; height:5%; background: #4a2a1a; border-radius:4px; box-shadow: 0 4px 8px #000; }
.scn-montoni-rages-again .candle-flare   { position:absolute; bottom:15%; left:52%; width:2%; height:8%; background: radial-gradient(circle, #ffa040 0%, #ff6000 50%, transparent 80%); box-shadow: 0 0 30px 10px #ffa040; animation: mr-flare .5s ease-in-out infinite alternate; }
.scn-montoni-rages-again .shadow-stab    { position:absolute; bottom:10%; left:20%; width:60%; height:60%; background: linear-gradient(135deg, transparent 40%, rgba(0,0,0,.7) 70%); animation: mr-shadowstab 0.8s ease-in-out infinite; }
.scn-montoni-rages-again .wall-crack     { position:absolute; top:5%; right:10%; width:15%; height:40%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); clip-path: polygon(20% 0%, 80% 0%, 70% 20%, 85% 40%, 60% 60%, 75% 80%, 40% 100%, 10% 90%, 25% 70%, 15% 50%, 30% 30%, 10% 20%); animation: mr-crack 3s ease-in-out infinite alternate; }
@keyframes mr-chamber { 0% { opacity:.9; } 50% { opacity:1; } 100% { opacity:.85; } }
@keyframes mr-montoni { 0% { transform: translateX(0) rotate(0deg) scaleY(1); } 33% { transform: translateX(3px) rotate(1deg) scaleY(1.02); } 66% { transform: translateX(-2px) rotate(-0.5deg) scaleY(0.98); } 100% { transform: translateX(0) rotate(0deg) scaleY(1); } }
@keyframes mr-emily { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-2px) rotate(-2deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(1px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes mr-flare { 0% { opacity:.7; box-shadow: 0 0 20px 5px #ffa040; } 50% { opacity:1; box-shadow: 0 0 40px 15px #ff8040; } 100% { opacity:.8; box-shadow: 0 0 25px 8px #ffa040; } }
@keyframes mr-shadowstab { 0% { opacity:.3; transform: scaleX(1); } 50% { opacity:.6; transform: scaleX(1.05); } 100% { opacity:.4; transform: scaleX(1); } }
@keyframes mr-crack { 0% { opacity:.5; } 50% { opacity:.9; } 100% { opacity:.6; } }

.scn-emily-faints { background: linear-gradient(180deg, #0a0a1a 0%, #1a0a1a 40%, #2a0a0a 100%), radial-gradient(ellipse at 50% 40%, #3a0a0a 0%, transparent 70%); }
.scn-emily-faints .corridor-dark { position:absolute; inset:0; background: linear-gradient(180deg, #1a0a1a 0%, #0a0a0a 100%); }
.scn-emily-faints .door-arch     { position:absolute; bottom:5%; left:30%; width:40%; height:80%; border-radius:50% 50% 0 0 / 60% 60% 0 0; border:4px solid #2a1a1a; background: #0a0a0a; box-shadow: inset 0 0 40px #000; }
.scn-emily-faints .figure-faint   { position:absolute; bottom:10%; left:35%; width:14%; height:35%; background: linear-gradient(180deg, #4a2a2a 0%, #2a0a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ef-faint 4s ease-in-out infinite; }
.scn-emily-faints .chair-obj      { position:absolute; bottom:8%; left:46%; width:15%; height:20%; background: #2a1a0a; border-radius:6px; box-shadow: 0 0 10px #000; }
.scn-emily-faints .pool-light     { position:absolute; bottom:0; left:30%; width:40%; height:20%; background: radial-gradient(ellipse at 50% 0%, #3a1a1a 0%, transparent 70%); animation: ef-pool 5s ease-in-out infinite alternate; }
.scn-emily-faints .dust-fall      { position:absolute; top:20%; left:40%; width:2%; height:10%; background: linear-gradient(180deg, rgba(200,180,160,.5) 0%, transparent 100%); border-radius:50%; filter: blur(2px); animation: ef-dust 8s linear infinite; }
.scn-emily-faints .wall-drip      { position:absolute; top:60%; right:20%; width:3%; height:12%; background: linear-gradient(180deg, #2a1a0a 0%, transparent 100%); border-radius:0 0 50% 50%; animation: ef-drip 6s ease-in-out infinite; }
@keyframes ef-faint { 0% { transform: rotate(0deg) translateY(0); } 25% { transform: rotate(-3deg) translateY(-2px); } 50% { transform: rotate(0deg) translateY(0); } 75% { transform: rotate(2deg) translateY(-1px); } 100% { transform: rotate(0deg) translateY(0) scaleY(0.95); } }
@keyframes ef-pool { 0% { opacity:.4; } 50% { opacity:.8; } 100% { opacity:.5; } }
@keyframes ef-dust { 0% { transform: translateY(-30px); opacity:.3; } 50% { transform: translateY(20px); opacity:.7; } 100% { transform: translateY(70px); opacity:0; } }
@keyframes ef-drip { 0% { transform: scaleY(1); opacity:.6; } 50% { transform: scaleY(1.4); opacity:.9; } 100% { transform: scaleY(1); opacity:.5; } }

.scn-troops-return { background: linear-gradient(180deg, #87ceeb 0%, #b0d4e8 40%, #e8f0f8 100%), radial-gradient(ellipse at 70% 30%, #f0f8ff 0%, transparent 70%); }
.scn-troops-return .sky-bright    { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #c8e0f0 0%, #e0f0f8 100%); animation: tr-sky 12s ease-in-out infinite alternate; }
.scn-troops-return .mountains     { position:absolute; bottom:20%; left:0; right:0; height:30%; background: linear-gradient(180deg, #6a7a5a 0%, #4a5a3a 100%); border-radius:40% 60% 0 0 / 50% 70% 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,.3); animation: tr-mountains 20s ease-in-out infinite; }
.scn-troops-return .window-frame  { position:absolute; bottom:5%; left:10%; width:30%; height:40%; border:8px solid #4a3a2a; border-radius:4px; background: linear-gradient(180deg, #a0b8c8 0%, #8098a8 100%); box-shadow: 0 0 30px rgba(0,0,0,.5); animation: tr-window 3s ease-in-out infinite alternate; }
.scn-troops-return .window-sill   { position:absolute; bottom:0; left:7%; width:36%; height:5%; background: #5a4a3a; border-radius:4px; box-shadow: 0 4px 10px #3a2a1a; }
.scn-troops-return .troop-column  { position:absolute; bottom:22%; left:15%; width:8%; height:30%; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius:20% 20% 10% 10%; transform-origin: bottom center; animation: tr-troops 6s ease-in-out infinite; }
.scn-troops-return .banner-small  { position:absolute; bottom:38%; left:16%; width:4%; height:8%; background: #a06030; border-radius:2px 2px 0 0; box-shadow: 0 0 10px #a06030; animation: tr-banner 1.5s ease-in-out infinite alternate; }
.scn-troops-return .dust-cloud    { position:absolute; bottom:18%; left:10%; width:20%; height:8%; background: radial-gradient(ellipse, rgba(200,180,160,.6) 0%, transparent 70%); filter: blur(4px); animation: tr-dust 10s linear infinite; }
.scn-troops-return .insect-drift  { position:absolute; top:15%; right:10%; width:1%; height:1%; background: #e0c080; border-radius:50%; box-shadow: 0 0 6px 2px #e0c080; animation: tr-insect 4s ease-in-out infinite; }
@keyframes tr-sky { 0% { opacity:.8; } 50% { opacity:1; } 100% { opacity:.9; } }
@keyframes tr-mountains { 0% { transform: translateY(0); } 50% { transform: translateY(-5px); } 100% { transform: translateY(0); } }
@keyframes tr-window { 0% { box-shadow: 0 0 20px rgba(0,0,0,.4); } 50% { box-shadow: 0 0 40px rgba(0,0,0,.6); } 100% { box-shadow: 0 0 25px rgba(0,0,0,.5); } }
@keyframes tr-troops { 0% { transform: translateX(0) scaleY(1); } 25% { transform: translateX(2px) scaleY(1.02); } 50% { transform: translateX(0) scaleY(0.98); } 75% { transform: translateX(-2px) scaleY(1.01); } 100% { transform: translateX(0) scaleY(1); } }
@keyframes tr-banner { 0% { transform: rotate(-3deg); } 50% { transform: rotate(3deg); } 100% { transform: rotate(-1deg); } }
@keyframes tr-dust { 0% { transform: translateX(-10px); opacity:.3; } 50% { transform: translateX(20px); opacity:.6; } 100% { transform: translateX(50px); opacity:.1; } }
@keyframes tr-insect { 0% { transform: translateY(0) translateX(0); } 25% { transform: translateY(-10px) translateX(5px); } 50% { transform: translateY(0) translateX(10px); } 75% { transform: translateY(-5px) translateX(5px); } 100% { transform: translateY(0) translateX(0); } }

.scn-emily-suggests-resource {
  background: linear-gradient(180deg, #3a2e1f 0%, #2a1f12 40%, #1f150b 100%),
              radial-gradient(ellipse at 30% 70%, #4a3828 0%, transparent 60%);
}
.scn-emily-suggests-resource .bg-wall {
  position: absolute; inset: 0; background: linear-gradient(135deg, #3a2e1f 0%, #2a1f12 100%);
}
.scn-emily-suggests-resource .window {
  position: absolute; inset: 15% 65% 50% 15%; background: linear-gradient(180deg, #1a1a3a 0%, #2a2a4a 60%, #1a1a3a 100%);
  border: 4px solid #5a4a3a; border-radius: 4px; box-shadow: inset 0 0 20px rgba(0,0,0,.7);
  animation: esr-window 12s ease-in-out infinite alternate;
}
.scn-emily-suggests-resource .figure {
  position: absolute; bottom: 18%; left: 48%; width: 28px; height: 50px;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center;
  animation: esr-figure 6s ease-in-out infinite;
}
.scn-emily-suggests-resource .candle {
  position: absolute; bottom: 22%; left: 40%; width: 8px; height: 14px;
  background: linear-gradient(180deg, #e8c890 0%, #c8a060 100%);
  border-radius: 2px; box-shadow: 0 0 12px 4px rgba(200,160,96,.4);
  animation: esr-candle 3s ease-in-out infinite alternate;
}
.scn-emily-suggests-resource .glow {
  position: absolute; bottom: 18%; left: 35%; width: 80px; height: 80px;
  background: radial-gradient(circle, rgba(200,160,96,.25) 0%, transparent 70%);
  border-radius: 50%; filter: blur(8px);
  animation: esr-glow 4s ease-in-out infinite alternate;
}
.scn-emily-suggests-resource .shadow {
  position: absolute; bottom: 0; left: 30%; right: 20%; height: 20%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.5) 100%);
  animation: esr-shadow 8s ease-in-out infinite alternate;
}
.scn-emily-suggests-resource .curtain {
  position: absolute; inset: 10% 68% 45% 12%;
  background: linear-gradient(90deg, #5a3a2a 0%, #4a2a1a 50%, #5a3a2a 100%);
  border-radius: 0 0 4px 4px; filter: blur(2px);
  animation: esr-curtain 10s ease-in-out infinite alternate;
}
@keyframes esr-window { 0% { opacity: .6 } 50% { opacity: .9 } 100% { opacity: .7 } }
@keyframes esr-figure { 0%,100% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-3px) rotate(1deg) } }
@keyframes esr-candle { 0% { transform: scaleY(1) scaleX(1) } 50% { transform: scaleY(1.05) scaleX(1.02) } 100% { transform: scaleY(0.95) scaleX(1) } }
@keyframes esr-glow { 0% { opacity: .5; transform: scale(.9) } 50% { opacity: .8; transform: scale(1.1) } 100% { opacity: .6; transform: scale(1) } }
@keyframes esr-shadow { 0% { opacity: .7 } 50% { opacity: 1 } 100% { opacity: .8 } }
@keyframes esr-curtain { 0% { transform: translateX(0) } 50% { transform: translateX(-4px) } 100% { transform: translateX(2px) } }

.scn-emily-retires {
  background: linear-gradient(180deg, #2a2030 0%, #1a1520 50%, #0f0a10 100%),
              radial-gradient(ellipse at 50% 30%, #3a2a3a 0%, transparent 60%);
}
.scn-emily-retires .bg-room {
  position: absolute; inset: 0; background: linear-gradient(135deg, #2a2030 0%, #1a1520 100%);
}
.scn-emily-retires .bed {
  position: absolute; bottom: 10%; left: 20%; right: 20%; height: 30%;
  background: linear-gradient(180deg, #3a2a3a 0%, #1a1020 100%);
  border-radius: 8px; box-shadow: inset 0 8px 20px rgba(0,0,0,.5);
  animation: er-bed 12s ease-in-out infinite;
}
.scn-emily-retires .figure {
  position: absolute; bottom: 14%; left: 40%; width: 24px; height: 40px;
  background: linear-gradient(180deg, #3a2a3a 0%, #1a1020 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: er-figure 8s ease-in-out infinite;
}
.scn-emily-retires .door {
  position: absolute; inset: 20% 6% 20% 68%;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 2px 2px 4px 4px; box-shadow: -4px 0 8px rgba(0,0,0,.4);
  animation: er-door 6s ease-in-out infinite alternate;
}
.scn-emily-retires .moonlight {
  position: absolute; inset: 30% 70% 50% 15%;
  background: linear-gradient(180deg, rgba(120,140,180,.15) 0%, transparent 100%);
  filter: blur(6px); border-radius: 20px;
  animation: er-moonlight 15s ease-in-out infinite alternate;
}
.scn-emily-retires .shadow-sad {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.6) 100%);
  animation: er-shadow 10s ease-in-out infinite alternate;
}
@keyframes er-bed { 0%,100% { opacity: .8 } 50% { opacity: 1 } }
@keyframes er-figure { 0% { transform: translateY(0) rotate(0) } 33% { transform: translateY(-2px) rotate(-2deg) } 66% { transform: translateY(1px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes er-door { 0% { transform: scaleX(1) } 50% { transform: scaleX(.95) } 100% { transform: scaleX(1.02) } }
@keyframes er-moonlight { 0% { opacity: .2 } 50% { opacity: .5 } 100% { opacity: .3 } }
@keyframes er-shadow { 0% { opacity: .6 } 50% { opacity: .9 } 100% { opacity: .7 } }

.scn-anxiety-increases {
  background: linear-gradient(180deg, #1a1a2a 0%, #0f0f1a 40%, #050510 100%),
              radial-gradient(ellipse at 60% 20%, #2a2a3a 0%, transparent 50%);
}
.scn-anxiety-increases .bg-stairs {
  position: absolute; inset: 0; background: linear-gradient(180deg, #1a1a2a 0%, #0f0f1a 100%);
}
.scn-anxiety-increases .stairs {
  position: absolute; bottom: 0; left: 30%; right: 30%; height: 60%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  clip-path: polygon(0% 0%, 100% 0%, 85% 100%, 15% 100%);
  animation: ai-stairs 4s ease-in-out infinite alternate;
}
.scn-anxiety-increases .figure {
  position: absolute; bottom: 44%; left: 48%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #2a2a3a 0%, #0f0f1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ai-figure 3s ease-in-out infinite;
}
.scn-anxiety-increases .window-high {
  position: absolute; inset: 5% 65% 70% 20%;
  background: linear-gradient(180deg, #3a3a5a 0%, #1a1a3a 100%);
  border: 3px solid #2a2a3a; border-radius: 2px;
  box-shadow: inset 0 0 16px rgba(0,0,0,.6);
  animation: ai-window 5s ease-in-out infinite alternate;
}
.scn-anxiety-increases .torch {
  position: absolute; bottom: 46%; left: 34%; width: 10px; height: 18px;
  background: linear-gradient(180deg, #d08040 0%, #a06030 100%);
  border-radius: 2px; box-shadow: 0 0 20px 4px rgba(160,96,48,.5);
  animation: ai-torch 2s ease-in-out infinite alternate;
}
.scn-anxiety-increases .shadow-sharp {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.7) 100%);
  animation: ai-shadow 3s ease-in-out infinite alternate;
}
@keyframes ai-stairs { 0% { transform: skewX(-2deg) } 50% { transform: skewX(2deg) } 100% { transform: skewX(-1deg) } }
@keyframes ai-figure { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-4px) scaleY(1.03) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes ai-window { 0% { opacity: .5 } 50% { opacity: .9 } 100% { opacity: .6 } }
@keyframes ai-torch { 0% { transform: scale(1) translateY(0) } 50% { transform: scale(1.05) translateY(-1px) } 100% { transform: scale(.95) translateY(0) } }
@keyframes ai-shadow { 0% { opacity: .7 } 50% { opacity: .95 } 100% { opacity: .8 } }

.scn-morano-hints-remembered {
  background: linear-gradient(180deg, #0f0a12 0%, #08040a 50%, #020001 100%),
              radial-gradient(ellipse at 20% 50%, #1a0f1a 0%, transparent 60%);
}
.scn-morano-hints-remembered .bg-hallway {
  position: absolute; inset: 0; background: linear-gradient(90deg, #0f0a12 0%, #08040a 100%);
}
.scn-morano-hints-remembered .door {
  position: absolute; inset: 15% 12% 40% 55%;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 4px; box-shadow: 4px 0 12px rgba(0,0,0,.6);
  animation: mhr-door 6s ease-in-out infinite;
}
.scn-morano-hints-remembered .figure-silhouette {
  position: absolute; bottom: 22%; left: 60%; width: 22px; height: 44px;
  background: #050205;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mhr-figure 4s ease-in-out infinite;
}
.scn-morano-hints-remembered .lantern {
  position: absolute; bottom: 34%; left: 48%; width: 10px; height: 14px;
  background: linear-gradient(180deg, #c0a060 0%, #a08040 100%);
  border-radius: 2px; box-shadow: 0 0 30px 10px rgba(160,128,64,.4);
  animation: mhr-lantern 2s ease-in-out infinite alternate;
}
.scn-morano-hints-remembered .glow-flicker {
  position: absolute; bottom: 30%; left: 44%; width: 40px; height: 40px;
  background: radial-gradient(circle, rgba(160,128,64,.2) 0%, transparent 70%);
  filter: blur(6px);
  animation: mhr-glow 1.5s ease-in-out infinite alternate;
}
.scn-morano-hints-remembered .shadow-fear {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.8) 100%);
  animation: mhr-shadow 5s ease-in-out infinite alternate;
}
.scn-morano-hints-remembered .window-door {
  position: absolute; inset: 18% 14% 50% 57%;
  background: linear-gradient(180deg, #1a1a3a 0%, #0f0f2a 100%);
  border: 2px solid #3a2a2a; border-radius: 2px;
  animation: mhr-window 4s ease-in-out infinite alternate;
}
@keyframes mhr-door { 0% { transform: rotateY(0deg) } 50% { transform: rotateY(-3deg) } 100% { transform: rotateY(2deg) } }
@keyframes mhr-figure { 0%,100% { transform: translateY(0) scaleX(1) } 50% { transform: translateY(-2px) scaleX(.96) } }
@keyframes mhr-lantern { 0% { opacity: .6; transform: scale(.95) } 50% { opacity: 1; transform: scale(1.05) } 100% { opacity: .7; transform: scale(1) } }
@keyframes mhr-glow { 0% { opacity: .3; transform: scale(.8) } 50% { opacity: .7; transform: scale(1.2) } 100% { opacity: .5; transform: scale(1) } }
@keyframes mhr-shadow { 0% { opacity: .7 } 50% { opacity: 1 } 100% { opacity: .8 } }
@keyframes mhr-window { 0% { opacity: .4 } 50% { opacity: .8 } 100% { opacity: .5 } }

.scn-despondence-prayer {
  background: radial-gradient(ellipse at 50% 30%, #1a2a4e 0%, #0e162a 60%, #050a12 100%);
}
.scn-despondence-prayer .moon-window {
  position: absolute; top: 8%; left: 22%; width: 40%; height: 50%;
  background: #0e162a; border: 2px solid #2a3a5e; box-shadow: inset 0 0 30px #0e162a;
  border-radius: 4px 4px 20px 20px / 6px 6px 18px 18px;
}
.scn-despondence-prayer .moon {
  position: absolute; top: 16%; left: 38%; width: 12%; height: 20%;
  background: radial-gradient(circle at 50% 50%, #d8e8f0 0%, #a0b8d0 50%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(160,184,208,0.3);
  animation: moon-pulse 12s ease-in-out infinite alternate;
}
.scn-despondence-prayer .moonlight-beam {
  position: absolute; top: 30%; left: 34%; width: 2%; height: 50%;
  background: linear-gradient(180deg, rgba(200,220,240,0.15) 0%, transparent 100%);
  transform: skewX(-6deg) rotate(-4deg);
  filter: blur(6px);
  animation: beam-flicker 8s ease-in-out infinite alternate;
}
.scn-despondence-prayer .kneeling-figure {
  position: absolute; bottom: 20%; left: 44%; width: 12%; height: 30%;
  background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: kneel-bow 6s ease-in-out infinite;
}
.scn-despondence-prayer .praying-hands {
  position: absolute; bottom: 24%; left: 49%; width: 6%; height: 8%;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%);
  border-radius: 30% 30% 50% 50% / 40% 40% 60% 60%;
  transform: translateX(-50%);
  animation: hands-clasp 4s ease-in-out infinite alternate;
}
.scn-despondence-prayer .shadow-arch {
  position: absolute; bottom: 0; left: 10%; width: 80%; height: 50%;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.6) 0%, transparent 70%);
  pointer-events: none;
}
.scn-despondence-prayer .dust-motes {
  position: absolute; top: 40%; left: 30%; width: 2%; height: 2%;
  background: #d8e8f0;
  border-radius: 50%;
  box-shadow: 
    20px -30px 0 rgba(216,232,240,0.4),
    -40px 60px 0 rgba(216,232,240,0.3),
    80px -20px 0 rgba(216,232,240,0.5),
    -60px -10px 0 rgba(216,232,240,0.2);
  animation: motes-drift 20s linear infinite;
}
@keyframes moon-pulse {
  0% { opacity: 0.7; transform: scale(1); }
  50% { opacity: 0.9; transform: scale(1.02); }
  100% { opacity: 0.6; transform: scale(0.98); }
}
@keyframes beam-flicker {
  0% { opacity: 0.2; }
  25% { opacity: 0.4; }
  75% { opacity: 0.15; }
  100% { opacity: 0.3; }
}
@keyframes kneel-bow {
  0% { transform: translateY(0) rotate(0deg); }
  30% { transform: translateY(-2px) rotate(-2deg); }
  60% { transform: translateY(1px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes hands-clasp {
  0% { transform: translateX(-50%) scale(1); }
  100% { transform: translateX(-50%) scale(1.05); }
}
@keyframes motes-drift {
  0% { transform: translate(0, 0); }
  25% { transform: translate(30px, -20px); }
  50% { transform: translate(-10px, 10px); }
  75% { transform: translate(50px, -30px); }
  100% { transform: translate(0, 0); }
}

.scn-maddelina-kindness {
  background: linear-gradient(180deg, #2a1a0e 0%, #1a0e06 50%, #0e0602 100%);
}
.scn-maddelina-kindness .door-frame {
  position: absolute; left: 25%; top: 5%; width: 50%; height: 95%;
  background: #1a1a1a;
  border: 4px solid #3a2a1a;
  border-radius: 6px 6px 12px 12px;
  box-shadow: inset 0 0 40px rgba(0,0,0,0.6);
}
.scn-maddelina-kindness .door-open {
  position: absolute; left: 38%; top: 5%; width: 24%; height: 85%;
  background: linear-gradient(180deg, #1a120e 0%, #0e0a06 100%);
  transform: perspective(800px) rotateY(-15deg);
  transform-origin: left center;
  border-radius: 0 4px 4px 0;
  box-shadow: -10px 0 20px rgba(0,0,0,0.5);
  animation: door-creak 8s ease-in-out infinite;
}
.scn-maddelina-kindness .figure-emily {
  position: absolute; bottom: 15%; left: 32%; width: 12%; height: 40%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  animation: figure-shift 4s ease-in-out infinite alternate;
}
.scn-maddelina-kindness .figure-maddelina {
  position: absolute; bottom: 15%; left: 52%; width: 12%; height: 40%;
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0e 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  animation: figure-shift 4s ease-in-out infinite alternate-reverse;
}
.scn-maddelina-kindness .candlelight {
  position: absolute; bottom: 40%; right: 20%; width: 8%; height: 6%;
  background: radial-gradient(circle, #ffd080 0%, #c08040 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 100px 40px rgba(192,128,64,0.4);
  animation: candle-flicker 2s ease-in-out infinite alternate;
}
.scn-maddelina-kindness .candle-flame {
  position: absolute; bottom: 42%; right: 22%; width: 3%; height: 8%;
  background: linear-gradient(180deg, #ffd080 0%, #ff8040 50%, #c04020 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 30% 30%;
  animation: flame-dance 1.5s ease-in-out infinite;
}
.scn-maddelina-kindness .warm-haze {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 70% 40%, rgba(255,200,100,0.1) 0%, transparent 60%);
  animation: haze-breathe 10s ease-in-out infinite alternate;
}
@keyframes door-creak {
  0% { transform: perspective(800px) rotateY(-15deg); }
  25% { transform: perspective(800px) rotateY(-17deg); }
  75% { transform: perspective(800px) rotateY(-13deg); }
  100% { transform: perspective(800px) rotateY(-15deg); }
}
@keyframes figure-shift {
  0% { transform: translateY(0); }
  100% { transform: translateY(-2px); }
}
@keyframes candle-flicker {
  0% { transform: scale(1); opacity: 0.8; }
  50% { transform: scale(1.03); opacity: 1; }
  100% { transform: scale(0.97); opacity: 0.7; }
}
@keyframes flame-dance {
  0% { transform: translateY(0) scale(1); }
  30% { transform: translateY(-2px) scale(1.05); }
  70% { transform: translateY(1px) scale(0.95); }
  100% { transform: translateY(0) scale(1); }
}
@keyframes haze-breathe {
  0% { opacity: 0.3; }
  100% { opacity: 0.6; }
}

.scn-maddelina-generosity {
  background: linear-gradient(180deg, #1a120e 0%, #0e0a06 100%);
}
.scn-maddelina-generosity .bg-warm {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 40% 60%, rgba(200,150,80,0.15) 0%, transparent 50%);
}
.scn-maddelina-generosity .table-edge {
  position: absolute; bottom: 20%; left: 10%; width: 80%; height: 4%;
  background: linear-gradient(180deg, #2a1a0e 0%, #1a0e06 100%);
  border-radius: 20% 20% 0 0 / 50% 50% 0 0;
  box-shadow: 0 8px 20px rgba(0,0,0,0.6);
}
.scn-maddelina-generosity .hand-offering {
  position: absolute; bottom: 30%; left: 35%; width: 10%; height: 14%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0e 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform: rotate(15deg);
  transform-origin: bottom left;
  animation: hand-offer 3s ease-in-out infinite alternate;
}
.scn-maddelina-generosity .hand-receiving {
  position: absolute; bottom: 28%; left: 50%; width: 10%; height: 14%;
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0e 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform: rotate(-10deg);
  transform-origin: bottom right;
  animation: hand-receive 3s ease-in-out infinite alternate 0.5s;
}
.scn-maddelina-generosity .fruit-bunch {
  position: absolute; bottom: 38%; left: 42%; width: 6%; height: 8%;
  background: radial-gradient(circle at 30% 30%, #c08040 0%, #a06030 60%, #5e3018 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: fruit-glow 4s ease-in-out infinite alternate;
}
.scn-maddelina-generosity .glow-around-hands {
  position: absolute; bottom: 25%; left: 30%; width: 40%; height: 30%;
  background: radial-gradient(ellipse, rgba(200,150,80,0.2) 0%, transparent 60%);
  filter: blur(10px);
  animation: warm-glow 5s ease-in-out infinite alternate;
}
.scn-maddelina-generosity .shadow-beneath {
  position: absolute; bottom: 15%; left: 20%; width: 60%; height: 10%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 80%);
}
@keyframes hand-offer {
  0% { transform: rotate(15deg) translateY(0); }
  50% { transform: rotate(12deg) translateY(-3px); }
  100% { transform: rotate(18deg) translateY(-1px); }
}
@keyframes hand-receive {
  0% { transform: rotate(-10deg) translateY(0); }
  50% { transform: rotate(-8deg) translateY(-2px); }
  100% { transform: rotate(-12deg) translateY(-1px); }
}
@keyframes fruit-glow {
  0% { box-shadow: 0 0 4px rgba(160,96,48,0.3); }
  100% { box-shadow: 0 0 16px 6px rgba(160,96,48,0.5); }
}
@keyframes warm-glow {
  0% { opacity: 0.3; transform: scale(1); }
  100% { opacity: 0.7; transform: scale(1.1); }
}

.scn-days-of-quiet {
  background: linear-gradient(180deg, #f0e8d0 0%, #d8d0b8 50%, #c0b8a0 100%);
}
.scn-days-of-quiet .sunlit-wall {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #f0e8d0 0%, #e0d8c0 100%);
}
.scn-days-of-quiet .window-frame {
  position: absolute; top: 10%; left: 55%; width: 30%; height: 50%;
  background: #a09880;
  border: 6px solid #807060;
  border-radius: 10px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.2);
}
.scn-days-of-quiet .window-light {
  position: absolute; top: 12%; left: 57%; width: 26%; height: 46%;
  background: linear-gradient(180deg, #f4f0e0 0%, #e8e0c8 100%);
  box-shadow: 0 0 60px 20px rgba(244,240,224,0.6);
  animation: light-shift 15s ease-in-out infinite alternate;
}
.scn-days-of-quiet .chair-silhouette {
  position: absolute; bottom: 20%; left: 30%; width: 20%; height: 40%;
  background: linear-gradient(180deg, #807060 0%, #605040 100%);
  border-radius: 10% 10% 20% 20% / 40% 40% 30% 30%;
  box-shadow: 0 20px 30px rgba(0,0,0,0.2);
}
.scn-days-of-quiet .book-open {
  position: absolute; bottom: 28%; left: 36%; width: 8%; height: 6%;
  background: linear-gradient(135deg, #a09080 0%, #c0b0a0 50%, #b0a090 100%);
  border-radius: 2% 2% 10% 10% / 4% 4% 15% 15%;
  transform: rotate(-5deg);
  box-shadow: 1px 1px 4px rgba(0,0,0,0.3);
  animation: book-breathe 8s ease-in-out infinite alternate;
}
.scn-days-of-quiet .dust-motes-slow {
  position: absolute; top: 50%; left: 20%; width: 1%; height: 1%;
  background: #f0e8d0;
  border-radius: 50%;
  box-shadow: 
    30px -20px 0 rgba(240,232,208,0.5),
    -50px 30px 0 rgba(240,232,208,0.3),
    100px -10px 0 rgba(240,232,208,0.4),
    -80px 50px 0 rgba(240,232,208,0.2);
  animation: motes-slow 30s linear infinite;
}
@keyframes light-shift {
  0% { transform: scale(1); opacity: 0.8; }
  25% { transform: scale(1.02); opacity: 0.9; }
  75% { transform: scale(0.98); opacity: 0.7; }
  100% { transform: scale(1); opacity: 0.8; }
}
@keyframes book-breathe {
  0% { transform: rotate(-5deg) scale(1); }
  50% { transform: rotate(-3deg) scale(1.02); }
  100% { transform: rotate(-7deg) scale(0.98); }
}
@keyframes motes-slow {
  0% { transform: translate(0, 0); }
  20% { transform: translate(40px, -30px); }
  40% { transform: translate(-20px, 20px); }
  60% { transform: translate(60px, -10px); }
  80% { transform: translate(-30px, 40px); }
  100% { transform: translate(0, 0); }
}

/* scene: breath-heard (terror) */
.scn-breath-heard {
  background: 
    linear-gradient(180deg, #1a1a2e 0%, #0f0f23 40%, #16213e 70%, #0a0a15 100%),
    radial-gradient(ellipse at 50% 30%, #1a2744 0%, transparent 70%);
}
.scn-breath-heard .wall   { position:absolute; inset:0 0 40% 0; background: linear-gradient(90deg, #1a1a2e 0%, #2a2a40 50%, #1a1a2e 100%); }
.scn-breath-heard .floor  { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(0deg, #0d0d1a 0%, #1a1a2e 100%); }
.scn-breath-heard .candle-glow {
  position:absolute; bottom:38%; left:30%; width:20px; height:20px;
  background: radial-gradient(circle, #f4c797 0%, rgba(244,199,151,0.3) 60%, transparent 80%);
  border-radius:50%;
  box-shadow: 0 0 40px 20px rgba(244,199,151,0.15), 0 0 80px 40px rgba(244,199,151,0.05);
  animation: bh-candle 4s ease-in-out infinite alternate;
}
.scn-breath-heard .figure-listener {
  position:absolute; bottom:35%; left:50%; width:30px; height:70px;
  background: linear-gradient(180deg, #15152a 0%, #0a0a15 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: bh-listen 3s ease-in-out infinite;
}
.scn-breath-heard .breath-vapor {
  position:absolute; bottom:42%; left:48%; width:16px; height:16px;
  background: radial-gradient(circle, rgba(200,210,230,0.2) 0%, transparent 100%);
  border-radius:50%;
  filter: blur(4px);
  animation: bh-breath 2.5s ease-in-out infinite;
}
.scn-breath-heard .shadow-strange {
  position:absolute; bottom:20%; right:15%; width:50px; height:80px;
  background: linear-gradient(180deg, rgba(10,10,20,0.8) 0%, transparent 100%);
  border-radius: 40% 60% 30% 70% / 50% 50% 50% 50%;
  transform: scale(1.2) rotate(5deg);
  animation: bh-shad 6s ease-in-out infinite;
}
@keyframes bh-candle {
  0% { transform: scale(1); opacity:0.7; box-shadow: 0 0 30px 15px rgba(244,199,151,0.1); }
  50% { transform: scale(1.1); opacity:1; box-shadow: 0 0 50px 25px rgba(244,199,151,0.2); }
  100% { transform: scale(0.95); opacity:0.6; }
}
@keyframes bh-listen {
  0% { transform: translateX(-50%) rotate(-2deg) translateY(0); }
  50% { transform: translateX(-50%) rotate(2deg) translateY(-2px); }
  100% { transform: translateX(-50%) rotate(-1deg) translateY(0); }
}
@keyframes bh-breath {
  0% { transform: translate(0,0) scale(0.8); opacity:0.3; }
  50% { transform: translate(2px,-4px) scale(1.2); opacity:0.7; }
  100% { transform: translate(-1px,-2px) scale(0.9); opacity:0.2; }
}
@keyframes bh-shad {
  0% { transform: scale(1.2) rotate(5deg) translateX(0); opacity:0.5; }
  50% { transform: scale(1.3) rotate(-10deg) translateX(8px); opacity:0.8; }
  100% { transform: scale(1.18) rotate(3deg) translateX(0); opacity:0.4; }
}

/* scene: annette-revives (fear) */
.scn-annette-revives {
  background: 
    linear-gradient(180deg, #1a1a2e 0%, #2a1f3a 35%, #1f1a2e 70%, #0a0a15 100%),
    radial-gradient(ellipse at 30% 45%, #3a2a4e 0%, transparent 60%);
}
.scn-annette-revives .wall   { position:absolute; inset:0 0 35% 0; background: linear-gradient(90deg, #1a1a2e 0%, #2a2a40 50%, #1a1a2e 100%); }
.scn-annette-revives .floor  { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(0deg, #0d0d1a 0%, #1a1a2e 100%); }
.scn-annette-revives .table  { position:absolute; bottom:35%; left:25%; width:80px; height:20px; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.6); }
.scn-annette-revives .lamp-glow {
  position:absolute; bottom:45%; left:27%; width:24px; height:24px;
  background: radial-gradient(circle, #f4c797 0%, rgba(244,199,151,0.2) 60%, transparent 80%);
  border-radius:50%;
  box-shadow: 0 0 60px 30px rgba(244,199,151,0.15);
  animation: ar-lamp 5s ease-in-out infinite alternate;
}
.scn-annette-revives .emily {
  position:absolute; bottom:32%; left:35%; width:28px; height:60px;
  background: linear-gradient(180deg, #2a2a40 0%, #1a1a2e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(10deg);
  animation: ar-emily 4s ease-in-out infinite;
}
.scn-annette-revives .annette {
  position:absolute; bottom:32%; left:45%; width:26px; height:56px;
  background: linear-gradient(180deg, #2a2a40 0%, #1a1a2e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-5deg) scale(0.95);
  animation: ar-annette 3.5s ease-in-out infinite;
}
.scn-annette-revives .ghost-gaze {
  position:absolute; bottom:40%; left:55%; width:10px; height:5px;
  background: radial-gradient(ellipse, rgba(180,200,230,0.3) 0%, transparent 100%);
  border-radius:50%;
  filter: blur(3px);
  animation: ar-ghost 7s ease-in-out infinite;
}
@keyframes ar-lamp {
  0% { transform: scale(1); opacity:0.7; box-shadow: 0 0 40px 20px rgba(244,199,151,0.1); }
  100% { transform: scale(1.05); opacity:1; box-shadow: 0 0 70px 35px rgba(244,199,151,0.2); }
}
@keyframes ar-emily {
  0% { transform: rotate(10deg) translateY(0); }
  50% { transform: rotate(12deg) translateY(-2px); }
  100% { transform: rotate(8deg) translateY(0); }
}
@keyframes ar-annette {
  0% { transform: rotate(-5deg) scale(0.95) translateY(0); }
  50% { transform: rotate(-8deg) scale(0.95) translateY(-1px); }
  100% { transform: rotate(-3deg) scale(0.95) translateY(0); }
}
@keyframes ar-ghost {
  0% { transform: translate(0,0) scale(1); opacity:0.4; }
  50% { transform: translate(10px,-5px) scale(1.3); opacity:0.7; }
  100% { transform: translate(-5px,0) scale(0.8); opacity:0.2; }
}

/* scene: emily-skeptical-again (calm) */
.scn-emily-skeptical-again {
  background: 
    linear-gradient(180deg, #1a1a2e 0%, #2a2440 35%, #1f1a2e 65%, #0a0a15 100%),
    radial-gradient(ellipse at 50% 50%, #2a2a48 0%, transparent 60%);
}
.scn-emily-skeptical-again .wall   { position:absolute; inset:0 0 30% 0; background: linear-gradient(90deg, #1a1a2e 0%, #2a2a40 50%, #1a1a2e 100%); }
.scn-emily-skeptical-again .floor  { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(0deg, #0d0d1a 0%, #1a1a2e 100%); }
.scn-emily-skeptical-again .table  { position:absolute; bottom:30%; left:40%; width:100px; height:16px; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.5); }
.scn-emily-skeptical-again .candle-glow {
  position:absolute; bottom:38%; left:45%; width:18px; height:18px;
  background: radial-gradient(circle, #e2a76f 0%, rgba(226,167,111,0.2) 60%, transparent 80%);
  border-radius:50%;
  box-shadow: 0 0 40px 20px rgba(226,167,111,0.1);
  animation: esa-candle 8s ease-in-out infinite alternate;
}
.scn-emily-skeptical-again .emily-stand {
  position:absolute; bottom:28%; left:38%; width:28px; height:62px;
  background: linear-gradient(180deg, #2a2a40 0%, #1a1a2e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(5deg);
  animation: esa-emily 6s ease-in-out infinite;
}
.scn-emily-skeptical-again .annette-gesture {
  position:absolute; bottom:28%; left:50%; width:24px; height:54px;
  background: linear-gradient(180deg, #2a2a40 0%, #1a1a2e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-8deg);
  animation: esa-annette 5s ease-in-out infinite;
}
.scn-emily-skeptical-again .shadow-question {
  position:absolute; bottom:18%; left:55%; width:40px; height:50px;
  background: linear-gradient(135deg, rgba(10,10,20,0.6) 0%, transparent 100%);
  border-radius: 40% 60% 30% 70% / 50% 50% 50% 50%;
  transform: rotate(20deg);
  animation: esa-shadow 12s ease-in-out infinite;
}
@keyframes esa-candle {
  0% { transform: scale(1); opacity:0.8; }
  100% { transform: scale(1.03); opacity:1; }
}
@keyframes esa-emily {
  0% { transform: rotate(5deg) translateY(0); }
  50% { transform: rotate(6deg) translateY(-1px); }
  100% { transform: rotate(4deg) translateY(0); }
}
@keyframes esa-annette {
  0% { transform: rotate(-8deg) translateY(0) translateX(0); }
  50% { transform: rotate(-10deg) translateY(-1px) translateX(2px); }
  100% { transform: rotate(-6deg) translateY(0) translateX(0); }
}
@keyframes esa-shadow {
  0% { transform: rotate(20deg) scale(1); opacity:0.3; }
  50% { transform: rotate(25deg) scale(1.1); opacity:0.6; }
  100% { transform: rotate(18deg) scale(0.95); opacity:0.2; }
}

/* scene: emily-prevails (calm) */
.scn-emily-prevails {
  background: 
    linear-gradient(180deg, #1a1a2e 0%, #2a2440 30%, #1f1a2e 60%, #0a0a15 100%),
    radial-gradient(ellipse at 70% 20%, #3a4a6e 0%, transparent 50%);
}
.scn-emily-prevails .wall   { position:absolute; inset:0 0 35% 0; background: linear-gradient(90deg, #1a1a2e 0%, #2a2a40 50%, #1a1a2e 100%); }
.scn-emily-prevails .floor  { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(0deg, #0d0d1a 0%, #1a1a2e 100%); }
.scn-emily-prevails .window-line {
  position:absolute; top:10%; right:15%; width:40px; height:50px;
  background: linear-gradient(180deg, rgba(200,210,230,0.05) 0%, rgba(200,210,230,0.2) 100%);
  border: 1px solid rgba(200,210,230,0.2);
  border-radius: 0 0 8px 8px;
  box-shadow: inset 0 0 20px rgba(200,210,230,0.1);
  animation: ep-window 30s ease-in-out infinite alternate;
}
.scn-emily-prevails .moonlight {
  position:absolute; top:15%; right:20%; width:60px; height:60px;
  background: radial-gradient(circle, rgba(200,210,230,0.1) 0%, transparent 100%);
  border-radius:50%;
  filter: blur(10px);
  animation: ep-moon 20s ease-in-out infinite;
}
.scn-emily-prevails .emily-comfort {
  position:absolute; bottom:30%; left:40%; width:30px; height:65px;
  background: linear-gradient(180deg, #2a2a40 0%, #1a1a2e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-3deg);
  animation: ep-emily 7s ease-in-out infinite;
}
.scn-emily-prevails .annette-comforted {
  position:absolute; bottom:30%; left:48%; width:26px; height:55px;
  background: linear-gradient(180deg, #2a2a40 0%, #1a1a2e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(5deg) scale(0.95);
  animation: ep-annette 8s ease-in-out infinite;
}
.scn-emily-prevails .calm-dust {
  position:absolute; top:20%; left:25%; width:4px; height:4px;
  background: rgba(200,210,230,0.2);
  border-radius:50%;
  filter: blur(1px);
  animation: ep-dust1 25s linear infinite;
}
.scn-emily-prevails .calm-dust2 {
  position:absolute; top:35%; left:70%; width:3px; height:3px;
  background: rgba(200,210,230,0.15);
  border-radius:50%;
  filter: blur(1px);
  animation: ep-dust2 30s linear infinite;
}
@keyframes ep-window {
  0% { opacity:0.3; }
  50% { opacity:0.6; }
  100% { opacity:0.4; }
}
@keyframes ep-moon {
  0% { transform: scale(1); opacity:0.3; }
  50% { transform: scale(1.05); opacity:0.5; }
  100% { transform: scale(0.95); opacity:0.2; }
}
@keyframes ep-emily {
  0% { transform: rotate(-3deg) translateY(0); }
  50% { transform: rotate(-1deg) translateY(-1px); }
  100% { transform: rotate(-3deg) translateY(0); }
}
@keyframes ep-annette {
  0% { transform: rotate(5deg) scale(0.95) translateY(0); }
  50% { transform: rotate(4deg) scale(0.95) translateY(1px); }
  100% { transform: rotate(5deg) scale(0.95) translateY(0); }
}
@keyframes ep-dust1 {
  0% { transform: translateY(0) rotate(0deg); }
  100% { transform: translateY(-100px) rotate(360deg); }
}
@keyframes ep-dust2 {
  0% { transform: translateY(0) rotate(0deg); }
  100% { transform: translateY(-120px) rotate(-360deg); }
}

.scn-morano-pursues {
  background: linear-gradient(180deg, #1a1a2e 0%, #2c1f24 50%, #3a2a2a 100%), radial-gradient(ellipse at 50% 70%, #4a3a3a 0%, transparent 60%);
}
.scn-morano-pursues .wall-left {
  position:absolute; inset:0 50% 0 0; background: linear-gradient(90deg, #2a1e1e 0%, #4a3530 50%, #3a2a25 100%); box-shadow: inset -10px 0 20px rgba(0,0,0,0.5);
}
.scn-morano-pursues .wall-right {
  position:absolute; inset:0 0 0 50%; background: linear-gradient(90deg, #3a2a25 0%, #2a1e1e 100%); box-shadow: inset 10px 0 20px rgba(0,0,0,0.5);
}
.scn-morano-pursues .floor {
  position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #3a2a20 0%, #1a1410 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.6);
}
.scn-morano-pursues .arch {
  position:absolute; bottom:30%; left:40%; width:20%; height:35%; background: radial-gradient(ellipse at 50% 100%, #5a4a44 0%, #2a1e1e 100%); border-radius: 50% 50% 0 0 / 80% 80% 0 0; box-shadow: 0 -6px 12px rgba(0,0,0,0.4);
}
.scn-morano-pursues .figure-morano {
  position:absolute; bottom:30%; left:45%; width:20px; height:50px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mp-figure 5s ease-in-out infinite alternate;
}
.scn-morano-pursues .candle {
  position:absolute; bottom:35%; left:30%; width:6px; height:16px; background: linear-gradient(180deg, #c8a060 0%, #8a6a3a 100%); border-radius: 2px 2px 0 0; transform: rotate(-5deg);
}
.scn-morano-pursues .candle-glow {
  position:absolute; bottom:38%; left:29%; width:20px; height:20px; background: radial-gradient(circle, rgba(255,200,120,0.7) 0%, rgba(255,150,80,0.2) 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 40px 10px rgba(200,120,60,0.4); animation: mp-glow 2.5s ease-in-out infinite alternate;
}
.scn-morano-pursues .dust {
  position:absolute; width:4px; height:4px; background: rgba(200,180,160,0.3); border-radius:50%; filter: blur(2px);
}
.scn-morano-pursues .motes-1 { top:20%; left:20%; animation: mp-dust 15s linear infinite; }
.scn-morano-pursues .motes-2 { top:40%; left:70%; animation: mp-dust 22s linear infinite reverse; }
@keyframes mp-figure {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(5px) rotate(2deg); }
  100% { transform: translateX(-5px) rotate(-2deg); }
}
@keyframes mp-glow {
  0% { opacity:0.6; transform: scale(0.95); }
  50% { opacity:1; transform: scale(1.05); }
  100% { opacity:0.7; transform: scale(0.9); }
}
@keyframes mp-dust {
  0% { transform: translateY(0) translateX(0) scale(1); opacity:0.3; }
  50% { transform: translateY(-20px) translateX(10px) scale(1.5); opacity:0.5; }
  100% { transform: translateY(-50px) translateX(-10px) scale(0.8); opacity:0.1; }
}

.scn-montoni-selfish-motives {
  background: linear-gradient(180deg, #1e1715 0%, #2a2018 50%, #3a2a20 100%), radial-gradient(ellipse at 50% 60%, #4a3a30 0%, transparent 70%);
}
.scn-montoni-selfish-motives .table {
  position:absolute; bottom:20%; left:15%; width:70%; height:20%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 10% 10% 0 0; box-shadow: 0 8px 20px rgba(0,0,0,0.6);
}
.scn-montoni-selfish-motives .coins {
  position:absolute; bottom:30%; width:30px; height:10px; background: radial-gradient(ellipse, #c8a040 0%, #a08020 100%); border-radius: 50%; box-shadow: 0 2px 6px rgba(0,0,0,0.5);
}
.scn-montoni-selfish-motives .pile-1 { left:30%; animation: ms-coin-pile 6s ease-in-out infinite alternate; }
.scn-montoni-selfish-motives .pile-2 { left:55%; animation: ms-coin-pile 8s ease-in-out infinite alternate-reverse; }
.scn-montoni-selfish-motives .hand {
  position:absolute; bottom:28%; left:42%; width:30px; height:20px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ms-hand 4s ease-in-out infinite alternate;
}
.scn-montoni-selfish-motives .candle-left {
  position:absolute; bottom:35%; left:20%; width:5px; height:18px; background: linear-gradient(180deg, #c8a060 0%, #8a6a3a 100%); border-radius: 2px; transform: rotate(3deg);
}
.scn-montoni-selfish-motives .candle-right {
  position:absolute; bottom:35%; right:20%; width:5px; height:18px; background: linear-gradient(180deg, #c8a060 0%, #8a6a3a 100%); border-radius: 2px; transform: rotate(-3deg);
}
.scn-montoni-selfish-motives .shadow-bg {
  position:absolute; inset:0; background: radial-gradient(ellipse at 50% 60%, transparent 40%, rgba(0,0,0,0.4) 100%); animation: ms-shadow 7s ease-in-out infinite alternate;
}
.scn-montoni-selfish-motives .flicker {
  position:absolute; inset:0; background: radial-gradient(ellipse at 30% 35%, rgba(255,180,100,0.05) 0%, transparent 60%); animation: ms-flicker 2s ease-in-out infinite alternate;
}
@keyframes ms-coin-pile {
  0% { transform: translateY(0) scale(1); opacity:0.9; }
  50% { transform: translateY(-2px) scale(1.02); opacity:1; }
  100% { transform: translateY(0) scale(0.98); opacity:0.9; }
}
@keyframes ms-hand {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(3px) rotate(3deg); }
  100% { transform: translateX(-3px) rotate(-3deg); }
}
@keyframes ms-shadow {
  0% { opacity:0.5; }
  50% { opacity:0.7; }
  100% { opacity:0.4; }
}
@keyframes ms-flicker {
  0% { opacity:0.8; }
  50% { opacity:1; }
  100% { opacity:0.85; }
}

.scn-montoni-decides-to-flee {
  background: linear-gradient(180deg, #12101a 0%, #1a1418 40%, #2a2018 100%), radial-gradient(ellipse at 50% 80%, #3a2a28 0%, transparent 70%);
}
.scn-montoni-decides-to-flee .stair-wall {
  position:absolute; inset:0 70% 0 0; background: linear-gradient(180deg, #2a1e1e 0%, #1a1212 100%); box-shadow: inset -10px 0 20px rgba(0,0,0,0.6);
}
.scn-montoni-decides-to-flee .steps {
  position:absolute; bottom:10%; left:10%; width:80%; height:60%; background: repeating-linear-gradient(0deg, #3a2a20 0px, #3a2a20 12px, #2a1a10 12px, #2a1a10 24px); clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%); animation: md-steps 12s ease-in-out infinite alternate;
}
.scn-montoni-decides-to-flee .figure-montoni {
  position:absolute; bottom:40%; left:25%; width:22px; height:55px; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: md-figure 6s ease-in-out infinite alternate;
}
.scn-montoni-decides-to-flee .cape {
  position:absolute; bottom:40%; left:23%; width:40px; height:30px; background: linear-gradient(135deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 80% 0 50% 50% / 100% 0 50% 50%; transform-origin: top left; animation: md-cape 4s ease-in-out infinite alternate;
}
.scn-montoni-decides-to-flee .lamp {
  position:absolute; bottom:50%; left:65%; width:8px; height:12px; background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%); border-radius: 2px 2px 4px 4px; box-shadow: 0 0 10px 2px rgba(200,180,100,0.3);
}
.scn-montoni-decides-to-flee .lamp-glow {
  position:absolute; bottom:45%; left:63%; width:30px; height:30px; background: radial-gradient(circle, rgba(200,180,100,0.3) 0%, transparent 70%); border-radius:50%; animation: md-glow 3s ease-in-out infinite alternate;
}
.scn-montoni-decides-to-flee .suitcase {
  position:absolute; bottom:30%; left:55%; width:18px; height:12px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%); border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.5); transform: rotate(5deg); animation: md-case 8s ease-in-out infinite alternate;
}
@keyframes md-steps {
  0% { opacity:0.8; }
  50% { opacity:1; }
  100% { opacity:0.7; }
}
@keyframes md-figure {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(-8px) rotate(-2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes md-cape {
  0% { transform: rotate(0deg) scaleX(1); }
  50% { transform: rotate(5deg) scaleX(0.95); }
  100% { transform: rotate(-5deg) scaleX(1.05); }
}
@keyframes md-glow {
  0% { opacity:0.4; transform: scale(0.9); }
  50% { opacity:0.7; transform: scale(1.1); }
  100% { opacity:0.5; transform: scale(0.95); }
}
@keyframes md-case {
  0% { transform: rotate(3deg) translateY(0); }
  50% { transform: rotate(-3deg) translateY(-2px); }
  100% { transform: rotate(3deg) translateY(0); }
}

.scn-count-follows {
  background: linear-gradient(180deg, #1a1620 0%, #2a2028 50%, #1a1418 100%), radial-gradient(ellipse at 50% 60%, #3a2a30 0%, transparent 70%);
}
.scn-count-follows .corridor-left {
  position:absolute; inset:0 60% 0 0; background: linear-gradient(180deg, #2a2028 0%, #1a1620 100%); box-shadow: inset -15px 0 30px rgba(0,0,0,0.7);
}
.scn-count-follows .corridor-right {
  position:absolute; inset:0 0 0 60%; background: linear-gradient(180deg, #1a1620 0%, #2a2028 100%); box-shadow: inset 15px 0 30px rgba(0,0,0,0.7);
}
.scn-count-follows .corridor-floor {
  position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #3a2a30 0%, #1a1218 100%); border-radius: 30% 30% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,0.6);
}
.scn-count-follows .window-narrow {
  position:absolute; top:20%; left:65%; width:12%; height:40%; background: radial-gradient(ellipse at 50% 50%, #3a4a6a 0%, #1a2a3a 100%); border: 4px solid #2a1a1a; border-radius: 2px; box-shadow: inset 0 0 20px rgba(100,150,200,0.2); animation: cf-window 8s ease-in-out infinite alternate;
}
.scn-count-follows .figure-count {
  position:absolute; bottom:25%; left:55%; width:22px; height:55px; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cf-figure 7s ease-in-out infinite alternate;
}
.scn-count-follows .shadow-long {
  position:absolute; bottom:0; left:50%; width:40px; height:60%; background: linear-gradient(180deg, rgba(0,0,0,0.5) 0%, transparent 100%); transform: skewX(-10deg) translateX(-20px); filter: blur(3px); animation: cf-shadow 9s ease-in-out infinite alternate;
}
.scn-count-follows .torch {
  position:absolute; bottom:40%; left:30%; width:6px; height:20px; background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%); border-radius: 2px 2px 0 0; transform: rotate(2deg);
}
.scn-count-follows .torch-glow {
  position:absolute; bottom:42%; left:28%; width:40px; height:40px; background: radial-gradient(circle, rgba(255,180,100,0.5) 0%, rgba(200,120,60,0.1) 50%, transparent 100%); border-radius:50%; animation: cf-torch 3s ease-in-out infinite alternate;
}
@keyframes cf-window {
  0% { opacity:0.6; transform: scaleY(1); }
  50% { opacity:0.9; transform: scaleY(1.02); }
  100% { opacity:0.7; transform: scaleY(0.98); }
}
@keyframes cf-figure {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(4px) rotate(1deg); }
  100% { transform: translateX(-4px) rotate(-1deg); }
}
@keyframes cf-shadow {
  0% { opacity:0.3; transform: skewX(-10deg) translateX(-20px) scaleY(1); }
  50% { opacity:0.5; transform: skewX(-10deg) translateX(-20px) scaleY(1.05); }
  100% { opacity:0.2; transform: skewX(-10deg) translateX(-20px) scaleY(0.95); }
}
@keyframes cf-torch {
  0% { opacity:0.7; transform: scale(0.95); }
  50% { opacity:1; transform: scale(1.1); }
  100% { opacity:0.8; transform: scale(0.9); }
}

.scn-ludovico-comments { background: linear-gradient(180deg, #1a1820 0%, #2c2518 40%, #3a2e20 70%, #1c1610 100%), radial-gradient(ellipse at 40% 50%, #3a2e20 0%, transparent 70%); }
.scn-ludovico-comments .wall-bg { position:absolute; inset:0; background: linear-gradient(180deg, #2c2518 0%, #1c1610 100%); }
.scn-ludovico-comments .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(0deg, #0e0a06 0%, #1c1610 60%, #2c2518 100%); border-radius: 0 0 30% 30% / 0 0 10% 10%; box-shadow: inset 0 12px 30px rgba(0,0,0,.6); }
.scn-ludovico-comments .candle-glow { position:absolute; bottom:50%; left:30%; width:20px; height:20px; background: radial-gradient(circle, #ffc078 0%, #cc7a30 40%, transparent 70%); border-radius:50%; box-shadow: 0 0 40px 20px rgba(255,192,120,.3), 0 0 80px 40px rgba(255,192,120,.15); animation: lc-flicker 2s ease-in-out infinite alternate; }
.scn-ludovico-comments .table { position:absolute; bottom:28%; left:20%; width:80px; height:10px; background: linear-gradient(180deg, #5a4030 0%, #3a2818 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.4); transform: perspective(300px) rotateX(10deg); }
.scn-ludovico-comments .figure-ludovico { position:absolute; bottom:25%; left:55%; width:28px; height:70px; background: linear-gradient(180deg, #1a1610 0%, #0c0a06 100%); border-radius: 45% 45% 40% 40% / 60% 60% 35% 35%; transform-origin: bottom center; animation: lc-tower 6s ease-in-out infinite; }
.scn-ludovico-comments .figure-annette { position:absolute; bottom:25%; left:35%; width:22px; height:55px; background: linear-gradient(180deg, #2a2218 0%, #14100a 100%); border-radius: 40% 40% 35% 35% / 55% 55% 30% 30%; transform-origin: bottom center; animation: lc-cower 4s ease-in-out infinite; }
.scn-ludovico-comments .shadow { position:absolute; bottom:20%; left:50%; width:40px; height:20px; background: radial-gradient(ellipse, rgba(0,0,0,.5) 0%, transparent 70%); transform: translateX(-50%); animation: lc-shadow-pulse 4s ease-in-out infinite; }
@keyframes lc-flicker { 0% { opacity:.8; transform: scale(1); } 50% { opacity:1; transform: scale(1.05); } 100% { opacity:.85; transform: scale(0.95); } }
@keyframes lc-tower { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-2px) rotate(-1deg); } 50% { transform: translateX(0) rotate(1deg); } 75% { transform: translateX(2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes lc-cower { 0% { transform: translateX(0) scaleY(1); } 50% { transform: translateX(3px) scaleY(0.95); } 100% { transform: translateX(0) scaleY(1); } }
@keyframes lc-shadow-pulse { 0% { opacity:.4; } 50% { opacity:.6; } 100% { opacity:.4; } }

.scn-annette-repeats-conversation { background: linear-gradient(180deg, #181616 0%, #2a2420 30%, #1a1614 100%), radial-gradient(ellipse at 60% 80%, #2a2420 0%, transparent 60%); }
.scn-annette-repeats-conversation .room-wall { position:absolute; inset:0; background: linear-gradient(180deg, #24201c 0%, #181412 100%); }
.scn-annette-repeats-conversation .window-frame { position:absolute; top:20%; left:15%; width:120px; height:160px; border: 6px solid #3a3028; background: transparent; border-radius: 4px; box-shadow: inset 0 0 20px rgba(0,0,0,.6); }
.scn-annette-repeats-conversation .window-pane { position:absolute; top:22%; left:17%; width:110px; height:150px; background: linear-gradient(135deg, #2a2a3a 0%, #1c1c2a 100%); box-shadow: inset 0 0 30px #0a0a14; animation: arc-pane-shimmer 8s ease-in-out infinite alternate; }
.scn-annette-repeats-conversation .window-bars { position:absolute; top:22%; left:17%; width:110px; height:150px; background: repeating-linear-gradient(0deg, transparent, transparent 18px, #2a2018 18px, #2a2018 20px), repeating-linear-gradient(90deg, transparent, transparent 18px, #2a2018 18px, #2a2018 20px); }
.scn-annette-repeats-conversation .outside-figures { position:absolute; top:30%; left:20%; width:100px; height:100px; background: radial-gradient(ellipse at 70% 50%, #0c0a0e 0%, transparent 80%); animation: arc-outside-move 12s ease-in-out infinite; }
.scn-annette-repeats-conversation .annette-silhouette { position:absolute; bottom:22%; left:5%; width:30px; height:60px; background: linear-gradient(180deg, #1a1612 0%, #0e0c08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: arc-annette-turn 6s ease-in-out infinite; }
.scn-annette-repeats-conversation .hand-gesture { position:absolute; bottom:40%; left:20%; width:14px; height:18px; background: radial-gradient(circle, #2a221c 0%, #1a1410 100%); border-radius: 50% 50% 0 0; transform: rotate(30deg); animation: arc-hand 5s ease-in-out infinite; }
@keyframes arc-pane-shimmer { 0% { opacity:.6; } 50% { opacity:.9; } 100% { opacity:.7; } }
@keyframes arc-outside-move { 0% { transform: translateX(0) scale(1); } 50% { transform: translateX(-10px) scale(1.1); } 100% { transform: translateX(0) scale(1); } }
@keyframes arc-annette-turn { 0% { transform: rotate(0deg); } 25% { transform: rotate(5deg); } 50% { transform: rotate(-3deg); } 75% { transform: rotate(2deg); } 100% { transform: rotate(0deg); } }
@keyframes arc-hand { 0% { transform: rotate(30deg) translate(0,0); } 50% { transform: rotate(40deg) translate(4px,-2px); } 100% { transform: rotate(30deg) translate(0,0); } }

.scn-emily-apprehends { background: linear-gradient(180deg, #1c1a24 0%, #2a262e 30%, #18141c 100%), radial-gradient(ellipse at 50% 70%, #2a262e 0%, transparent 80%); }
.scn-emily-apprehends .chamber-wall { position:absolute; inset:0; background: linear-gradient(180deg, #2a262e 0%, #1c1a24 100%); }
.scn-emily-apprehends .door { position:absolute; bottom:0; left:35%; width:120px; height:180px; background: linear-gradient(180deg, #3a3028 0%, #201a14 100%); border-radius: 2px; box-shadow: 0 8px 20px rgba(0,0,0,.5); transform: perspective(600px) rotateY(-5deg); }
.scn-emily-apprehends .door-shadow { position:absolute; bottom:10px; left:38%; width:100px; height:20px; background: radial-gradient(ellipse, rgba(0,0,0,.4) 0%, transparent 70%); transform: translateX(-50%); animation: ea-shadow-pulse 4s ease-in-out infinite; }
.scn-emily-apprehends .emily-figure { position:absolute; bottom:5%; left:20%; width:24px; height:60px; background: linear-gradient(180deg, #2a2422 0%, #100e0c 100%); border-radius: 45% 45% 40% 40% / 60% 60% 35% 35%; transform-origin: bottom center; animation: ea-turn 7s ease-in-out infinite; }
.scn-emily-apprehends .dress-hem { position:absolute; bottom:3%; left:18%; width:30px; height:20px; background: radial-gradient(ellipse, #3a322a 0%, #1c1612 100%); border-radius: 50%; filter: blur(2px); }
.scn-emily-apprehends .chamber-light { position:absolute; top:5%; left:70%; width:30px; height:30px; background: radial-gradient(circle, #ffd080 0%, transparent 70%); box-shadow: 0 0 60px 30px rgba(255,208,128,.2); animation: ea-light-glow 5s ease-in-out infinite alternate; }
@keyframes ea-shadow-pulse { 0% { opacity:.3; transform: translateX(-50%) scale(1); } 50% { opacity:.6; transform: translateX(-50%) scale(1.2); } 100% { opacity:.3; transform: translateX(-50%) scale(1); } }
@keyframes ea-turn { 0% { transform: rotate(0deg); } 30% { transform: rotate(-10deg); } 60% { transform: rotate(5deg); } 100% { transform: rotate(0deg); } }
@keyframes ea-light-glow { 0% { opacity:.6; transform: scale(.95); } 100% { opacity:1; transform: scale(1.05); } }

.scn-terror-at-door { background: linear-gradient(180deg, #1a1616 0%, #0e0c0c 40%, #141012 100%), radial-gradient(ellipse at 50% 60%, #141012 0%, transparent 90%); }
.scn-terror-at-door .door-surface { position:absolute; inset:0; background: linear-gradient(180deg, #2a221c 0%, #1a140e 100%); border-radius: 0 0 8px 8px; box-shadow: inset 0 0 40px rgba(0,0,0,.5); }
.scn-terror-at-door .door-handle { position:absolute; bottom:35%; left:48%; width:6px; height:12px; background: #5a4a3a; border-radius: 2px; box-shadow: 0 0 6px 2px rgba(0,0,0,.4); transform: rotate(10deg); animation: tad-handle-rattle 3s ease-in-out infinite; }
.scn-terror-at-door .shadow-under-door { position:absolute; bottom:0; left:10%; width:80%; height:20px; background: radial-gradient(ellipse, rgba(0,0,0,.6) 0%, transparent 70%); animation: tad-shadow-flicker 2s ease-in-out infinite alternate; }
.scn-terror-at-door .hand-reaching { position:absolute; bottom:30%; left:40%; width:20px; height:30px; background: linear-gradient(180deg, #3a2e24 0%, #1e1812 100%); border-radius: 50% 50% 0 0; transform: rotate(20deg); transform-origin: bottom center; animation: tad-hand-reach 5s ease-in-out infinite; }
.scn-terror-at-door .flicker-light { position:absolute; top:15%; left:20%; width:40px; height:40px; background: radial-gradient(circle, #ffc080 0%, transparent 70%); box-shadow: 0 0 80px 40px rgba(255,192,128,.15); animation: tad-flicker 2s ease-in-out infinite alternate; }
.scn-terror-at-door .floor-edge { position:absolute; bottom:0; left:0; right:0; height:15%; background: linear-gradient(0deg, #0a0806 0%, #141010 100%); }
.scn-terror-at-door .wall-panel { position:absolute; top:0; left:0; right:0; height:10%; background: linear-gradient(180deg, #1c1816 0%, #0e0c0a 100%); box-shadow: 0 4px 12px rgba(0,0,0,.5); }
@keyframes tad-handle-rattle { 0% { transform: rotate(10deg); } 50% { transform: rotate(15deg); } 100% { transform: rotate(10deg); } }
@keyframes tad-shadow-flicker { 0% { opacity:.4; } 100% { opacity:.8; } }
@keyframes tad-hand-reach { 0% { transform: rotate(20deg) translateY(0); } 50% { transform: rotate(30deg) translateY(-5px); } 100% { transform: rotate(20deg) translateY(0); } }
@keyframes tad-flicker { 0% { opacity:.6; transform: scale(1); } 100% { opacity:.9; transform: scale(1.05); } }

/* Scene 1: barnardine-conditional – tension */
.scn-barnardine-conditional {
  background: 
    linear-gradient(180deg, #1a1a2e 0%, #2a1a2e 40%, #1e1e2e 100%),
    radial-gradient(ellipse at 40% 30%, #3a2a3e 0%, transparent 60%);
}
.scn-barnardine-conditional .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%);
  border-radius: 20% 30% 0 0;
}
.scn-barnardine-conditional .wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(135deg, #2a1e2e 0%, #1a1220 100%);
}
.scn-barnardine-conditional .candle {
  position: absolute; bottom: 30%; left: 60%;
  width: 8px; height: 16px;
  background: linear-gradient(180deg, #e8d0a0 0%, #b08050 100%);
  border-radius: 2px;
  box-shadow: 0 0 10px 2px #b08050;
}
.scn-barnardine-conditional .flame {
  position: absolute; bottom: 44%; left: 60%;
  width: 8px; height: 14px;
  background: radial-gradient(ellipse, #ffd080 0%, #ffa040 40%, transparent 70%);
  border-radius: 50%;
  animation: barcon-flame 2s ease-in-out infinite alternate;
}
.scn-barnardine-conditional .figure-right {
  position: absolute; bottom: 18%; right: 15%;
  width: 30px; height: 80px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: barcon-fig-right 6s ease-in-out infinite;
}
.scn-barnardine-conditional .figure-left {
  position: absolute; bottom: 20%; left: 20%;
  width: 28px; height: 76px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1e 100%);
  border-radius: 45% 45% 30% 30% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: barcon-fig-left 8s ease-in-out infinite alternate;
}
.scn-barnardine-conditional .shadow-bar {
  position: absolute; bottom: 28%; left: 0; right: 0; height: 4%;
  background: linear-gradient(90deg, transparent, #000, transparent);
  filter: blur(8px);
  animation: barcon-shadow 5s ease-in-out infinite alternate;
}
.scn-barnardine-conditional .doorway {
  position: absolute; bottom: 20%; left: 5%;
  width: 50px; height: 80px;
  background: #0a0a1a;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,.8);
  animation: barcon-door 12s ease-in-out infinite;
}
@keyframes barcon-flame {
  0%,100% { transform: scaleY(1) translateX(0); opacity: 0.9; }
  50% { transform: scaleY(1.2) translateX(2px); opacity: 1; }
}
@keyframes barcon-fig-right {
  0%,100% { transform: translateX(0) translateY(0) rotate(0deg); }
  30% { transform: translateX(-2px) translateY(-1px) rotate(-2deg); }
  70% { transform: translateX(1px) translateY(1px) rotate(1deg); }
}
@keyframes barcon-fig-left {
  0%,100% { transform: translateX(0) translateY(0) rotate(1deg); }
  50% { transform: translateX(3px) translateY(-2px) rotate(-1deg); }
}
@keyframes barcon-shadow {
  0% { opacity: 0.3; transform: scaleX(0.9); }
  100% { opacity: 0.7; transform: scaleX(1.1); }
}
@keyframes barcon-door {
  0%,100% { transform: scaleY(1) translateY(0); border-width: 2px; }
  50% { transform: scaleY(0.98) translateY(1px); border-width: 0; }
}

/* Scene 2: barnardine-hints – terror */
.scn-barnardine-hints {
  background: 
    linear-gradient(180deg, #0e0e1a 0%, #1a1a2e 40%, #0a0a14 100%),
    radial-gradient(ellipse at 50% 70%, #2a1e2e 0%, transparent 70%);
}
.scn-barnardine-hints .bg-dark {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 30% 60%, #1e1428, transparent 80%);
}
.scn-barnardine-hints .table {
  position: absolute; bottom: 15%; left: 50%;
  width: 80px; height: 12px;
  background: linear-gradient(180deg, #3a2a22 0%, #2a1a12 100%);
  border-radius: 2px;
  transform: translateX(-50%) skewX(-10deg);
}
.scn-barnardine-hints .candle {
  position: absolute; bottom: 28%; left: 50%;
  width: 6px; height: 20px;
  background: linear-gradient(180deg, #d0b080 0%, #a08050 100%);
  border-radius: 2px;
  transform: translateX(-50%);
  box-shadow: 0 0 8px 2px #a08050;
}
.scn-barnardine-hints .flame-hint {
  position: absolute; bottom: 44%; left: 50%;
  width: 8px; height: 16px;
  background: radial-gradient(ellipse, #ffd080 0%, #ff8020 50%, transparent 80%);
  border-radius: 50%;
  transform: translateX(-50%);
  animation: barhint-flame 0.8s ease-in-out infinite alternate;
}
.scn-barnardine-hints .hand {
  position: absolute; bottom: 18%; left: 38%;
  width: 14px; height: 20px;
  background: linear-gradient(180deg, #2a2020 0%, #1a1010 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
  transform: rotate(-10deg);
  animation: barhint-hand 4s ease-in-out infinite alternate;
}
.scn-barnardine-hints .face-silhouette {
  position: absolute; bottom: 35%; left: 20%;
  width: 22px; height: 26px;
  background: #0a0a0a;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 20px rgba(0,0,0,.9);
  animation: barhint-face 3s ease-in-out infinite;
}
.scn-barnardine-hints .shadow-arm {
  position: absolute; bottom: 22%; left: 10%;
  width: 60px; height: 8px;
  background: linear-gradient(90deg, #0a0a14, transparent);
  border-radius: 50%;
  filter: blur(6px);
  animation: barhint-arm 7s ease-in-out infinite alternate;
}
@keyframes barhint-flame {
  0% { transform: translateX(-50%) scaleY(1) rotate(0deg); opacity: 0.8; }
  50% { transform: translateX(-50%) scaleY(1.3) rotate(5deg); opacity: 1; }
  100% { transform: translateX(-50%) scaleY(0.9) rotate(-5deg); opacity: 0.9; }
}
@keyframes barhint-hand {
  0% { transform: rotate(-10deg) translateY(0); }
  100% { transform: rotate(10deg) translateY(-2px); }
}
@keyframes barhint-face {
  0%,100% { transform: scale(1) translateX(0); }
  50% { transform: scale(1.05) translateX(3px); }
}
@keyframes barhint-arm {
  0% { width: 60px; opacity: 0.4; }
  100% { width: 70px; opacity: 0.7; }
}

/* Scene 3: barnardine-reveals – relief */
.scn-barnardine-reveals {
  background: 
    linear-gradient(180deg, #1a1a2e 0%, #2a2236 40%, #1e1a2e 100%),
    radial-gradient(ellipse at 50% 70%, #3a2a44 0%, transparent 70%);
}
.scn-barnardine-reveals .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #2e2a3a 0%, #1e1a2a 100%);
  border-radius: 30% 20% 0 0;
}
.scn-barnardine-reveals .wall-reveal {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(135deg, #2a2236 0%, #1a1228 100%);
}
.scn-barnardine-reveals .lantern {
  position: absolute; bottom: 40%; left: 30%;
  width: 12px; height: 20px;
  background: linear-gradient(180deg, #b09070 0%, #806050 100%);
  border-radius: 4px;
  box-shadow: 0 0 30px 8px #b09070;
  animation: barrev-lantern 4s ease-in-out infinite alternate;
}
.scn-barnardine-reveals .glow-reveal {
  position: absolute; bottom: 38%; left: 28%;
  width: 40px; height: 40px;
  background: radial-gradient(circle, rgba(255,180,80,.4) 0%, transparent 70%);
  border-radius: 50%;
  animation: barrev-glow 6s ease-in-out infinite alternate;
}
.scn-barnardine-reveals .figure-kneeling {
  position: absolute; bottom: 22%; left: 45%;
  width: 26px; height: 50px;
  background: linear-gradient(180deg, #1e1a2e 0%, #0e0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: barrev-kneel 8s ease-in-out infinite;
}
.scn-barnardine-reveals .figure-standing {
  position: absolute; bottom: 24%; left: 60%;
  width: 24px; height: 70px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%);
  border-radius: 45% 45% 30% 30% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: barrev-stand 10s ease-in-out infinite alternate;
}
.scn-barnardine-reveals .window-reveal {
  position: absolute; bottom: 40%; right: 15%;
  width: 40px; height: 50px;
  background: #0a0a1a;
  border: 2px solid #2a1e3e;
  border-radius: 2px;
  box-shadow: inset 0 0 20px rgba(0,0,0,.8);
  animation: barrev-window 15s ease-in-out infinite;
}
.scn-barnardine-reveals .dust {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 50%, rgba(255,200,150,0.03) 0%, transparent 60%);
  pointer-events: none;
  animation: barrev-dust 20s linear infinite;
}
@keyframes barrev-lantern {
  0% { box-shadow: 0 0 20px 4px #b09070; }
  100% { box-shadow: 0 0 40px 12px #c0a080; }
}
@keyframes barrev-glow {
  0% { opacity: 0.6; }
  100% { opacity: 1; }
}
@keyframes barrev-kneel {
  0%,100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(-3deg); }
}
@keyframes barrev-stand {
  0% { transform: translateX(0) translateY(0); }
  100% { transform: translateX(2px) translateY(-1px); }
}
@keyframes barrev-window {
  0%,100% { border-color: #2a1e3e; opacity: 0.9; }
  50% { border-color: #4a2e5e; opacity: 0.7; }
}
@keyframes barrev-dust {
  0% { transform: translateY(0); }
  100% { transform: translateY(-100%); }
}

/* Scene 4: doubt-lingers – suspicion */
.scn-doubt-lingers {
  background: 
    linear-gradient(180deg, #0e1a1a 0%, #1a2a2a 40%, #0e1a1a 100%),
    radial-gradient(ellipse at 70% 30%, #1e2e2e 0%, transparent 70%);
}
.scn-doubt-lingers .corridor-wall {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 70%;
  background: linear-gradient(135deg, #1a2a2a 0%, #0e1e1e 100%);
  clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%);
}
.scn-doubt-lingers .floor-tiles {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: repeating-linear-gradient(90deg, #1a2e2e 0px, #2a3e3e 4px, transparent 4px, transparent 8px);
  background-size: 8px 100%;
  opacity: 0.3;
  animation: doub-tiles 20s linear infinite;
}
.scn-doubt-lingers .shadow-lurker {
  position: absolute; bottom: 22%; left: 65%;
  width: 30px; height: 70px;
  background: linear-gradient(180deg, #0a1a1a 0%, #000 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: doub-lurk 5s ease-in-out infinite alternate;
}
.scn-doubt-lingers .eye-glow {
  position: absolute; bottom: 40%; left: 68%;
  width: 10px; height: 4px;
  background: radial-gradient(ellipse, #80ff80 0%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 10px 6px #80ff80;
  animation: doub-eye 2s ease-in-out infinite alternate;
}
.scn-doubt-lingers .door-ajar {
  position: absolute; bottom: 20%; right: 10%;
  width: 40px; height: 70px;
  background: #0e1e1e;
  border-right: 4px solid #2a3e3e;
  border-radius: 2px;
  transform: skewY(5deg);
  animation: doub-door 8s ease-in-out infinite alternate;
}
.scn-doubt-lingers .cobweb {
  position: absolute; top: 10%; left: 20%;
  width: 40px; height: 40px;
  background: radial-gradient(circle, rgba(200,200,200,0.1) 0%, transparent 80%);
  border-radius: 50%;
  animation: doub-web 30s linear infinite;
}
.scn-doubt-lingers .fog {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, transparent, rgba(150,200,200,0.05) 50%, transparent);
  pointer-events: none;
  animation: doub-fog 15s ease-in-out infinite alternate;
}
@keyframes doub-tiles {
  0% { background-position: 0 0; }
  100% { background-position: 16px 0; }
}
@keyframes doub-lurk {
  0% { transform: translateX(0) rotate(0deg); opacity: 0.7; }
  100% { transform: translateX(5px) rotate(-3deg); opacity: 1; }
}
@keyframes doub-eye {
  0% { opacity: 0.3; }
  100% { opacity: 1; }
}
@keyframes doub-door {
  0% { transform: skewY(5deg) scaleX(0.95); }
  100% { transform: skewY(-2deg) scaleX(1.05); }
}
@keyframes doub-web {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}
@keyframes doub-fog {
  0% { transform: translateX(-20%); }
  100% { transform: translateX(20%); }
}

/* Scene 1: evening-alone (dusk, sad) */
.scn-evening-alone {
  background:
    linear-gradient(180deg, #2a2548 0%, #3d2e5c 40%, #5a4a7a 70%, #2d2340 100%),
    radial-gradient(ellipse at 50% 0%, #4a3a6a 0%, transparent 60%);
}
.scn-evening-alone .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #4d3b6e 0%, #3a2e5a 50%, #2a1e3e 100%);
  animation: ea-sky 12s ease-in-out infinite alternate;
}
.scn-evening-alone .distant-mountains {
  position: absolute; bottom: 35%; left: 0; right: 0; height: 18%;
  background: linear-gradient(180deg, #2a2a3e 0%, #3a3a4e 100%);
  border-radius: 50% 40% 0 0 / 60% 50% 0 0;
  filter: blur(3px);
  animation: ea-mountains 20s ease-in-out infinite;
}
.scn-evening-alone .rampart {
  position: absolute; bottom: 0; left: 0; right: 0; height: 38%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 0 0 0 0;
  box-shadow: inset 0 12px 24px rgba(0,0,0,0.5);
}
.scn-evening-alone .figure {
  position: absolute; bottom: 20%; left: 50%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #1a1010 0%, #0a0606 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: ea-figure 6s ease-in-out infinite alternate;
}
.scn-evening-alone .cloud-a {
  position: absolute; top: 12%; left: 10%; width: 100px; height: 20px;
  background: linear-gradient(180deg, rgba(200,180,220,0.4) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(10px);
  animation: ea-drift-a 40s linear infinite;
}
.scn-evening-alone .cloud-b {
  position: absolute; top: 25%; right: 15%; width: 70px; height: 14px;
  background: linear-gradient(180deg, rgba(200,180,220,0.3) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(8px);
  animation: ea-drift-b 55s linear infinite reverse;
}
@keyframes ea-sky { 0%{ opacity:0.7; transform: scaleY(1); } 50%{ opacity:1; transform: scaleY(1.02); } 100%{ opacity:0.6; transform: scaleY(1); } }
@keyframes ea-mountains { 0%{ transform: translateY(0); } 50%{ transform: translateY(-4px); } 100%{ transform: translateY(0); } }
@keyframes ea-figure { 0%{ transform: translateX(-50%) translateY(0) rotate(0deg); } 50%{ transform: translateX(-50%) translateY(-3px) rotate(2deg); } 100%{ transform: translateX(-50%) translateY(0) rotate(0deg); } }
@keyframes ea-drift-a { 0%{ transform: translateX(-40px); } 100%{ transform: translateX(110vw); } }
@keyframes ea-drift-b { 0%{ transform: translateX(0); } 100%{ transform: translateX(-100vw); } }

/* Scene 2: aunt-in-tears (sad, dim-interior) */
.scn-aunt-in-tears {
  background:
    linear-gradient(180deg, #2a1e14 0%, #3a281a 30%, #2a1a10 70%, #1a0e06 100%),
    radial-gradient(ellipse at 50% 30%, #4a3020 0%, transparent 50%);
}
.scn-aunt-in-tears .bg-wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0e 100%);
  opacity: 0.8;
  animation: ait-wall 15s ease-in-out infinite alternate;
}
.scn-aunt-in-tears .table {
  position: absolute; bottom: 12%; left: 35%; width: 70px; height: 20px;
  background: linear-gradient(180deg, #5a3a22 0%, #3a2210 100%);
  border-radius: 6px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
  transform: perspective(100px) rotateX(5deg);
}
.scn-aunt-in-tears .candle-glow {
  position: absolute; bottom: 30%; left: 42%; width: 8px; height: 16px;
  background: radial-gradient(circle at 50% 100%, #ffd080 0%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 24px 8px #d0a060, 0 0 50px 18px rgba(200,150,80,0.5);
  animation: ait-candle 3s ease-in-out infinite alternate;
}
.scn-aunt-in-tears .figure-aunt {
  position: absolute; bottom: 18%; left: 38%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #2a1a0e 0%, #1a0e06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform: translateX(-50%);
  animation: ait-aunt 8s ease-in-out infinite;
}
.scn-aunt-in-tears .figure-emily {
  position: absolute; bottom: 22%; left: 56%; width: 20px; height: 48px;
  background: linear-gradient(180deg, #3a281a 0%, #1a1008 100%);
  border-radius: 50% 50% 30% 30% / 55% 55% 35% 35%;
  transform: translateX(-50%);
  animation: ait-emily 6s ease-in-out infinite;
}
.scn-aunt-in-tears .shadow {
  position: absolute; bottom: 10%; left: 30%; width: 120px; height: 30px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 70%);
  filter: blur(5px);
  animation: ait-shadow 4s ease-in-out infinite alternate;
}
@keyframes ait-wall { 0%{ opacity:0.7; } 100%{ opacity:0.9; } }
@keyframes ait-candle { 0%{ transform: scaleY(1); opacity:0.5; } 50%{ transform: scaleY(1.1); opacity:0.8; } 100%{ transform: scaleY(1); opacity:0.6; } }
@keyframes ait-aunt { 0%,100%{ transform: translateX(-50%) translateY(0); } 50%{ transform: translateX(-50%) translateY(-5px) rotate(-2deg); } }
@keyframes ait-emily { 0%,100%{ transform: translateX(-50%) translateY(0); } 50%{ transform: translateX(-50%) translateY(-3px) rotate(1deg); } }
@keyframes ait-shadow { 0%{ opacity:0.6; } 100%{ opacity:0.4; } }

/* Scene 3: alone-in-gloomy-chamber (fear, dim-interior) */
.scn-alone-in-gloomy-chamber {
  background:
    linear-gradient(180deg, #0a0a14 0%, #14141e 40%, #1a1a24 70%, #101018 100%),
    radial-gradient(ellipse at 50% 0%, #1a1a2a 0%, transparent 60%);
}
.scn-alone-in-gloomy-chamber .bg-chamber {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #12121c 0%, #0a0a14 100%);
  animation: agc-bg 10s ease-in-out infinite alternate;
}
.scn-alone-in-gloomy-chamber .window-bars {
  position: absolute; top: 10%; left: 60%; width: 60px; height: 80px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 4px;
  clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
  box-shadow: inset 0 0 8px #0a0a14;
}
.scn-alone-in-gloomy-chamber .window-bars::before {
  content: ''; position: absolute; top: 0; left: 50%; width: 4px; height: 100%;
  background: #2a2a3a; transform: translateX(-50%);
}
.scn-alone-in-gloomy-chamber .window-bars::after {
  content: ''; position: absolute; top: 50%; left: 0; width: 100%; height: 4px;
  background: #2a2a3a; transform: translateY(-50%);
}
/* Note: using pseudo-elements for bars to save divs */
.scn-alone-in-gloomy-chamber .door {
  position: absolute; bottom: 0; left: 0; width: 80px; height: 120px;
  background: linear-gradient(180deg, #2a1e10 0%, #1a1008 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: -4px 0 8px rgba(0,0,0,0.6);
}
.scn-alone-in-gloomy-chamber .figure-emily {
  position: absolute; bottom: 8%; left: 45%; width: 20px; height: 44px;
  background: linear-gradient(180deg, #1a1010 0%, #0a0606 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform: translateX(-50%);
  animation: agc-emily 5s ease-in-out infinite alternate;
}
.scn-alone-in-gloomy-chamber .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 10%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a14 100%);
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.8);
}
.scn-alone-in-gloomy-chamber .shadow {
  position: absolute; bottom: 8%; left: 30%; width: 80px; height: 20px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.7) 0%, transparent 70%);
  filter: blur(6px);
  animation: agc-shadow 3s ease-in-out infinite;
}
@keyframes agc-bg { 0%{ opacity:0.5; } 100%{ opacity:0.8; } }
@keyframes agc-emily { 0%{ transform: translateX(-50%) translateY(0) rotate(0deg); } 50%{ transform: translateX(-50%) translateY(-2px) rotate(2deg); } 100%{ transform: translateX(-50%) translateY(0) rotate(0deg); } }
@keyframes agc-shadow { 0%,100%{ transform: scale(1); } 50%{ transform: scale(1.1); } }

/* Scene 4: passing-the-suite (fear, dim-interior) */
.scn-passing-the-suite {
  background:
    linear-gradient(180deg, #0c0c1c 0%, #141428 40%, #1a1a30 70%, #101020 100%),
    radial-gradient(ellipse at 50% 0%, #1a1a3a 0%, transparent 60%);
}
.scn-passing-the-suite .bg-corridor-left {
  position: absolute; inset: 0 50% 0 0;
  background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1c 100%);
  box-shadow: inset -8px 0 12px rgba(0,0,0,0.8);
}
.scn-passing-the-suite .bg-corridor-right {
  position: absolute; inset: 0 0 0 50%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1c 100%);
  box-shadow: inset 8px 0 12px rgba(0,0,0,0.8);
  animation: pts-wall 12s ease-in-out infinite alternate;
}
.scn-passing-the-suite .door-ajar {
  position: absolute; bottom: 5%; left: 35%; width: 70px; height: 110px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a1006 100%);
  border-radius: 4px 4px 0 0;
  transform: scaleX(0.8);
  box-shadow: 0 0 12px rgba(0,0,0,0.7);
}
.scn-passing-the-suite .light-crack {
  position: absolute; bottom: 40%; left: 52%; width: 4px; height: 30px;
  background: radial-gradient(circle, #ffd080 0%, transparent 80%);
  box-shadow: 0 0 20px 6px #d0a060, 0 0 40px 12px rgba(200,150,80,0.4);
  animation: pts-light 4s ease-in-out infinite alternate;
}
.scn-passing-the-suite .figure-emily {
  position: absolute; bottom: 10%; left: 65%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #1a1010 0%, #0a0606 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform: translateX(-50%);
  animation: pts-emily 6s ease-in-out infinite;
}
.scn-passing-the-suite .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 8%;
  background: linear-gradient(180deg, #141428 0%, #0c0c1c 100%);
  box-shadow: inset 0 6px 10px rgba(0,0,0,0.9);
}
@keyframes pts-wall { 0%{ opacity:0.6; } 100%{ opacity:0.9; } }
@keyframes pts-light { 0%{ opacity:0.4; } 50%{ opacity:0.9; } 100%{ opacity:0.5; } }
@keyframes pts-emily { 0%{ transform: translateX(-50%) translateY(0); } 25%{ transform: translateX(-50%) translateY(-2px) rotate(1deg); } 50%{ transform: translateX(-50%) translateY(0); } 75%{ transform: translateX(-50%) translateY(-2px) rotate(-1deg); } 100%{ transform: translateX(-50%) translateY(0); } }

/* morano-resigned */
.scn-morano-resigned { background: linear-gradient(180deg, #2a1e1a 0%, #1a1210 40%, #0e0806 100%), radial-gradient(ellipse at 50% 0%, #3a2a22 0%, transparent 70%); }
.scn-morano-resigned .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(90deg, #1e1612 0%, #2a1e18 50%, #1e1612 100%); }
.scn-morano-resigned .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #1a100a 0%, #0e0804 100%); box-shadow: inset 0 10px 20px rgba(0,0,0,.6); }
.scn-morano-resigned .window { position:absolute; top:12%; left:50%; width:50px; height:70px; transform:translateX(-50%); background: linear-gradient(180deg, #4a3a32 0%, #2a1e18 100%); border-radius:4px; border:2px solid #3a2a22; box-shadow: inset 0 0 20px rgba(60,40,30,.5); }
.scn-morano-resigned .curtain { position:absolute; top:8%; left:50%; width:60px; height:80px; transform:translateX(-50%); background: linear-gradient(180deg, #4a2a1a 0%, #2a1a10 100%); border-radius:6px 6px 2px 2px; filter:blur(1px); opacity:.8; }
.scn-morano-resigned .bed { position:absolute; bottom:28%; left:35%; width:120px; height:40px; background: linear-gradient(180deg, #3a2a22 0%, #1a1210 100%); border-radius:8px; box-shadow: 0 4px 8px rgba(0,0,0,.5); }
.scn-morano-resigned .figure.lying { position:absolute; bottom:30%; left:38%; width:60px; height:40px; background: linear-gradient(180deg, #1e1612 0%, #0e0806 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mor-lying 6s ease-in-out infinite alternate; }
.scn-morano-resigned .blanket { position:absolute; bottom:28%; left:36%; width:80px; height:18px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1e12 100%); border-radius:6px 6px 20px 20px; opacity:.8; }
.scn-morano-resigned .candle { position:absolute; bottom:32%; left:72%; width:4px; height:20px; background: linear-gradient(180deg, #b08040 0%, #806030 100%); border-radius:2px; box-shadow: 0 0 12px 4px rgba(200,160,80,.3); animation: mor-candle 3s ease-in-out infinite alternate; }
.scn-morano-resigned .shadow { position:absolute; bottom:26%; left:30%; width:100px; height:20px; background: radial-gradient(ellipse, rgba(0,0,0,.4) 0%, transparent 80%); filter:blur(4px); animation: mor-shadow-fade 8s ease-in-out infinite alternate; }
@keyframes mor-lying { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes mor-candle { 0% { opacity:.6; transform: scaleY(1); } 50% { opacity:1; transform: scaleY(1.1); } 100% { opacity:.7; transform: scaleY(.95); } }
@keyframes mor-shadow-fade { 0% { opacity:.3; } 50% { opacity:.6; } 100% { opacity:.4; } }

/* morano-departs */
.scn-morano-departs { background: linear-gradient(180deg, #1e1612 0%, #12100e 50%, #080604 100%), radial-gradient(ellipse at 50% 100%, #2a1e18 0%, transparent 80%); }
.scn-morano-departs .wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(90deg, #1a1210 0%, #2a1e18 50%, #1a1210 100%); }
.scn-morano-departs .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #14100a 0%, #0a0604 100%); }
.scn-morano-departs .doorway { position:absolute; bottom:32%; left:50%; width:80px; height:100px; transform:translateX(-50%); background: linear-gradient(180deg, #2a1e18 0%, #0e0806 100%); border-radius:8px 8px 0 0; border:3px solid #3a2a22; }
.scn-morano-departs .servant-left { position:absolute; bottom:30%; left:38%; width:28px; height:60px; background: linear-gradient(180deg, #2a1e1a 0%, #12100e 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mod-servant 8s ease-in-out infinite; }
.scn-morano-departs .servant-right { position:absolute; bottom:30%; left:56%; width:28px; height:60px; background: linear-gradient(180deg, #2a1e1a 0%, #12100e 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mod-servant 8s ease-in-out infinite reverse; }
.scn-morano-departs .figure.carried { position:absolute; bottom:32%; left:47%; width:30px; height:50px; background: linear-gradient(180deg, #1a1410 0%, #0a0604 100%); border-radius:30% 30% 20% 20% / 50% 50% 30% 30%; transform-origin: bottom center; animation: mod-carried 6s ease-in-out infinite alternate; }
.scn-morano-departs .cloak { position:absolute; bottom:30%; left:46%; width:40px; height:30px; background: linear-gradient(180deg, #3a2a22 0%, #1e1612 100%); border-radius:0 0 50% 50%; opacity:.8; }
.scn-morano-departs .torch { position:absolute; bottom:32%; left:28%; width:4px; height:24px; background: linear-gradient(180deg, #c08040 0%, #806020 100%); border-radius:2px; box-shadow: 0 0 16px 6px rgba(200,160,80,.4); animation: mod-torch 2s ease-in-out infinite alternate; }
.scn-morano-departs .light-pool { position:absolute; bottom:20%; left:30%; width:120px; height:40px; background: radial-gradient(ellipse, rgba(200,160,80,.15) 0%, transparent 70%); filter:blur(8px); animation: mod-pool 4s ease-in-out infinite alternate; }
@keyframes mod-servant { 0% { transform: translateX(0) rotate(-1deg); } 50% { transform: translateX(-4px) rotate(1deg); } 100% { transform: translateX(2px) rotate(0deg); } }
@keyframes mod-carried { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes mod-torch { 0% { opacity:.7; transform: scaleY(1); } 50% { opacity:1; transform: scaleY(1.2); } 100% { opacity:.8; transform: scaleY(.9); } }
@keyframes mod-pool { 0% { opacity:.4; transform: scale(1); } 50% { opacity:.7; transform: scale(1.1); } 100% { opacity:.5; transform: scale(.95); } }

/* morano-defies */
.scn-morano-defies { background: linear-gradient(180deg, #1a1410 0%, #0e0a08 50%, #040202 100%), radial-gradient(ellipse at 50% 30%, #2a1e18 0%, transparent 70%); }
.scn-morano-defies .hall-wall { position:absolute; inset:0 0 25% 0; background: linear-gradient(90deg, #1e1612 0%, #2a1e18 50%, #1e1612 100%); }
.scn-morano-defies .hall-floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #14100a 0%, #080604 100%); box-shadow: inset 0 8px 16px rgba(0,0,0,.6); }
.scn-morano-defies .pillar-left { position:absolute; bottom:20%; left:20%; width:20px; height:120px; background: linear-gradient(180deg, #3a2a22 0%, #1a1210 100%); border-radius:6px; box-shadow: 0 4px 8px rgba(0,0,0,.4); }
.scn-morano-defies .pillar-right { position:absolute; bottom:20%; right:20%; width:20px; height:120px; background: linear-gradient(180deg, #3a2a22 0%, #1a1210 100%); border-radius:6px; box-shadow: 0 4px 8px rgba(0,0,0,.4); }
.scn-morano-defies .figure.standing { position:absolute; bottom:22%; left:50%; width:30px; height:70px; transform:translateX(-50%); background: linear-gradient(180deg, #1e1612 0%, #0a0604 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: modf-stand 5s ease-in-out infinite alternate; }
.scn-morano-defies .arm { position:absolute; bottom:38%; left:52%; width:30px; height:8px; background: linear-gradient(180deg, #1a1210 0%, #0e0806 100%); border-radius:0 50% 50% 0; transform-origin: left center; animation: modf-arm 3s ease-in-out infinite; }
.scn-morano-defies .lantern { position:absolute; bottom:42%; left:18%; width:8px; height:12px; background: radial-gradient(circle, #e0a050 0%, #b07030 70%); border-radius:4px; box-shadow: 0 0 20px 6px rgba(200,140,60,.5); animation: modf-lantern 4s ease-in-out infinite alternate; }
.scn-morano-defies .chain { position:absolute; bottom:48%; left:18%; width:2px; height:30px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:1px; }
.scn-morano-defies .shadow-defiant { position:absolute; bottom:18%; left:40%; width:80px; height:30px; background: radial-gradient(ellipse, rgba(0,0,0,.5) 0%, transparent 70%); filter:blur(6px); animation: modf-shadow 7s ease-in-out infinite alternate; }
@keyframes modf-stand { 0% { transform: translateX(-50%) rotate(-1deg); } 50% { transform: translateX(-50%) rotate(2deg); } 100% { transform: translateX(-50%) rotate(-2deg); } }
@keyframes modf-arm { 0% { transform: rotate(-20deg); } 50% { transform: rotate(30deg); } 100% { transform: rotate(-10deg); } }
@keyframes modf-lantern { 0% { opacity:.7; transform: scale(1); } 50% { opacity:1; transform: scale(1.1); } 100% { opacity:.8; transform: scale(.95); } }
@keyframes modf-shadow { 0% { opacity:.4; transform: scaleX(1); } 50% { opacity:.6; transform: scaleX(1.2); } 100% { opacity:.5; transform: scaleX(1.05); } }

/* verezzi-restrained */
.scn-verezzi-restrained { background: linear-gradient(180deg, #1a1210 0%, #0e0a08 50%, #040202 100%), radial-gradient(ellipse at 50% 60%, #2a1e18 0%, transparent 80%); }
.scn-verezzi-restrained .cell-wall { position:absolute; inset:0 0 20% 0; background: linear-gradient(90deg, #1e1612 0%, #2a1e18 50%, #1e1612 100%); }
.scn-verezzi-restrained .cell-floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #14100a 0%, #080604 100%); }
.scn-verezzi-restrained .verezzi { position:absolute; bottom:22%; left:50%; width:34px; height:56px; transform:translateX(-50%); background: linear-gradient(180deg, #1e1612 0%, #0a0604 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ver-struggle 3s ease-in-out infinite; }
.scn-verezzi-restrained .grip-left { position:absolute; bottom:30%; left:44%; width:12px; height:20px; background: linear-gradient(180deg, #2a1e1a 0%, #181210 100%); border-radius:6px; transform-origin: top center; animation: ver-grip 2s ease-in-out infinite alternate; }
.scn-verezzi-restrained .grip-right { position:absolute; bottom:30%; right:44%; width:12px; height:20px; background: linear-gradient(180deg, #2a1e1a 0%, #181210 100%); border-radius:6px; transform-origin: top center; animation: ver-grip 2s ease-in-out infinite alternate-reverse; }
.scn-verezzi-restrained .restrainer-back { position:absolute; bottom:22%; left:34%; width:40px; height:60px; background: linear-gradient(180deg, #2a1e18 0%, #12100e 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; opacity:.7; }
.scn-verezzi-restrained .restrainer-arm { position:absolute; bottom:30%; left:38%; width:6px; height:30px; background: linear-gradient(180deg, #1e1612 0%, #0e0806 100%); border-radius:3px; transform-origin: top center; animation: ver-arm 2.5s ease-in-out infinite; }
.scn-verezzi-restrained .rope { position:absolute; bottom:26%; left:46%; width:20px; height:4px; background: linear-gradient(90deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:2px; animation: ver-rope 4s ease-in-out infinite alternate; }
.scn-verezzi-restrained .torch-flicker { position:absolute; bottom:50%; right:15%; width:6px; height:20px; background: linear-gradient(180deg, #c08040 0%, #806020 100%); border-radius:3px; box-shadow: 0 0 24px 8px rgba(200,140,60,.3); animation: ver-torch 1.5s ease-in-out infinite alternate; }
@keyframes ver-struggle { 0% { transform: translateX(-50%) rotate(-3deg); } 25% { transform: translateX(-50%) rotate(2deg) translateY(-2px); } 50% { transform: translateX(-50%) rotate(-1deg); } 75% { transform: translateX(-50%) rotate(3deg) translateY(-1px); } 100% { transform: translateX(-50%) rotate(-2deg); } }
@keyframes ver-grip { 0% { transform: rotate(10deg); } 100% { transform: rotate(-10deg); } }
@keyframes ver-arm { 0% { transform: rotate(15deg); } 50% { transform: rotate(-15deg); } 100% { transform: rotate(10deg); } }
@keyframes ver-rope { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(2px) scaleX(1.1); } 100% { transform: translateY(0) scaleX(1); } }
@keyframes ver-torch { 0% { opacity:.7; transform: scaleY(1); } 50% { opacity:1; transform: scaleY(1.3); } 100% { opacity:.8; transform: scaleY(.9); } }

/* === emily-fears-violence (EVF) === */
.scn-emily-fears-violence {
  background:
    linear-gradient(180deg, #1f1a2e 0%, #2a2238 40%, #1a1520 100%),
    radial-gradient(ellipse at 50% 100%, #2a1f14 0%, transparent 80%);
}
.scn-emily-fears-violence .wall-shadow  { position:absolute; inset: 10% 5% 10% 5%; background: linear-gradient(135deg, #110e1a 0%, transparent 70%); border-radius: 12% 8% 4% 8%; animation: evf1-wall 8s ease-in-out infinite alternate; }
.scn-emily-fears-violence .door-frame   { position:absolute; right:12%; top:8%; width:30%; height:70%; background: linear-gradient(180deg, #3b2b1e 0%, #251b12 100%); border-radius: 4% 4% 0 0; box-shadow: inset -6px 0 10px rgba(0,0,0,.6); }
.scn-emily-fears-violence .figure-emily { position:absolute; left:25%; bottom:12%; width:30px; height:50px; background: radial-gradient(ellipse at 50% 30%, #3a2c20 0%, #1c1410 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: evf1-tremble 2.5s ease-in-out infinite; }
.scn-emily-fears-violence .candle-stick { position:absolute; left:50%; bottom:16%; width:8px; height:22px; background: linear-gradient(180deg, #c8b48a 0%, #a09070 100%); border-radius: 2px; box-shadow: inset 0 -3px 6px rgba(0,0,0,.3); }
.scn-emily-fears-violence .flame-glow   { position:absolute; left:50%; bottom:32%; width:60px; height:50px; background: radial-gradient(circle, rgba(255,175,80,.35) 0%, rgba(255,140,30,.2) 40%, transparent 70%); transform: translateX(-50%); animation: evf1-flicker 0.8s ease-in-out infinite alternate; }
.scn-emily-fears-violence .flame-core   { position:absolute; left:50%; bottom:35%; width:6px; height:10px; background: radial-gradient(ellipse at 50% 20%, #ffdd88 0%, #ffb040 50%, #e07020 100%); border-radius: 60% 60% 30% 30% / 70% 70% 30% 30%; transform: translateX(-50%); animation: evf1-flame 1.2s ease-in-out infinite alternate; }
.scn-emily-fears-violence .shadow-cast  { position:absolute; left:10%; bottom:14%; width:40%; height:6px; background: linear-gradient(90deg, rgba(0,0,0,.6) 0%, transparent 100%); border-radius: 50%; transform: skewX(-20deg); animation: evf1-shadow 2.5s ease-in-out infinite; }
@keyframes evf1-wall    { 0% { opacity:.6 } 50% { opacity:.8 } 100% { opacity:.5 } }
@keyframes evf1-tremble { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(3px) rotate(1deg) } 50% { transform: translateX(0) rotate(0) } 75% { transform: translateX(-3px) rotate(-1deg) } 100% { transform: translateX(0) rotate(2deg) } }
@keyframes evf1-flicker { 0% { transform: translateX(-50%) scaleY(1) } 50% { transform: translateX(-50%) scaleY(.9) scaleX(1.05) } 100% { transform: translateX(-50%) scaleY(1.1) scaleX(.95) } }
@keyframes evf1-flame   { 0% { transform: translateX(-50%) scaleY(.9) } 50% { transform: translateX(-50%) scaleY(1.1) } 100% { transform: translateX(-50%) scaleY(.95) } }
@keyframes evf1-shadow  { 0% { transform: skewX(-20deg) scaleX(1) } 50% { transform: skewX(-18deg) scaleX(.9) } 100% { transform: skewX(-22deg) scaleX(1.05) } }

/* === emily-pleads-reason (EPR) === */
.scn-emily-pleads-reason {
  background:
    linear-gradient(180deg, #1e1a24 0%, #2a2535 50%, #181520 100%),
    radial-gradient(ellipse at 70% 50%, #3a2f22 0%, transparent 60%);
}
.scn-emily-pleads-reason .bg-panel   { position:absolute; inset: 15% 10% 15% 10%; background: linear-gradient(180deg, #2a2230 0%, #1a1420 100%); border-radius: 10% / 8%; opacity:.6; animation: epr2-bg 12s ease-in-out infinite alternate; }
.scn-emily-pleads-reason .figure-count { position:absolute; right:20%; bottom:12%; width:40px; height:52px; background: radial-gradient(ellipse at 50% 30%, #3a3228 0%, #201c14 100%); border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%; transform-origin: bottom center; animation: epr2-bow 6s ease-in-out infinite; }
.scn-emily-pleads-reason .figure-emily { position:absolute; left:30%; bottom:10%; width:28px; height:48px; background: radial-gradient(ellipse at 50% 30%, #3a2c22 0%, #1c1410 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: epr2-reach 5s ease-in-out infinite alternate; }
.scn-emily-pleads-reason .table-lamp  { position:absolute; left:48%; bottom:18%; width:10px; height:18px; background: linear-gradient(180deg, #b09870 0%, #8a7850 100%); border-radius: 2px; box-shadow: inset 0 -2px 4px rgba(0,0,0,.4); }
.scn-emily-pleads-reason .lamp-halo   { position:absolute; left:48%; bottom:30%; width:80px; height:60px; background: radial-gradient(circle, rgba(220,200,160,.25) 0%, rgba(200,180,140,.1) 40%, transparent 70%); transform: translateX(-50%); animation: epr2-glow 8s ease-in-out infinite alternate; }
.scn-emily-pleads-reason .chair       { position:absolute; left:18%; bottom:14%; width:18px; height:20px; background: linear-gradient(180deg, #4a3a28 0%, #2a1e12 100%); border-radius: 4% 4% 6% 6%; box-shadow: 2px 0 4px rgba(0,0,0,.4); }
@keyframes epr2-bg   { 0% { opacity:.4 } 50% { opacity:.6 } 100% { opacity:.5 } }
@keyframes epr2-bow  { 0% { transform: rotate(0) translateY(0) } 25% { transform: rotate(-8deg) translateY(-2px) } 50% { transform: rotate(-3deg) translateY(0) } 75% { transform: rotate(5deg) translateY(-1px) } 100% { transform: rotate(0) translateY(0) } }
@keyframes epr2-reach{ 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-3px) rotate(4deg) } 100% { transform: translateY(0) rotate(-2deg) } }
@keyframes epr2-glow { 0% { opacity:.6; transform: translateX(-50%) scale(.9) } 50% { opacity:.9; transform: translateX(-50%) scale(1.05) } 100% { opacity:.7; transform: translateX(-50%) scale(.95) } }

/* === morano-threatens-force (MRF) === */
.scn-morano-threatens-force {
  background:
    linear-gradient(180deg, #161220 0%, #221c30 40%, #0f0c18 100%),
    radial-gradient(ellipse at 30% 80%, #2a1f14 0%, transparent 70%);
}
.scn-morano-threatens-force .wall-dark      { position:absolute; inset: 5% 5% 5% 5%; background: linear-gradient(135deg, #0e0b16 0%, #1a142a 100%); border-radius: 6%; animation: mrf3-wall 15s ease-in-out infinite alternate; }
.scn-morano-threatens-force .window-grate   { position:absolute; right:8%; top:12%; width:16%; height:30%; background: repeating-linear-gradient(0deg, #2a2020 0%, #2a2020 3px, transparent 3px, transparent 10px); border: 3px solid #3a2a1e; border-radius: 4%; box-shadow: inset 0 0 20px rgba(0,0,0,.8); }
.scn-morano-threatens-force .figure-morano  { position:absolute; right:40%; bottom:6%; width:50px; height:60px; background: radial-gradient(ellipse at 50% 20%, #2a2218 0%, #100c08 100%); border-radius: 45% 45% 35% 35% / 55% 55% 30% 30%; transform-origin: bottom center; animation: mrf3-lunge 2s ease-in-out infinite; }
.scn-morano-threatens-force .figure-emily   { position:absolute; left:25%; bottom:10%; width:24px; height:40px; background: radial-gradient(ellipse at 50% 30%, #3a2c22 0%, #1c1410 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: mrf3-recoil 1.5s ease-in-out infinite alternate; }
.scn-morano-threatens-force .sharp-shadow   { position:absolute; left:20%; bottom:4%; width:55%; height:4px; background: linear-gradient(90deg, rgba(0,0,0,.8) 0%, transparent 100%); border-radius: 50%; transform: skewX(-30deg); animation: mrf3-shadow 2s ease-in-out infinite alternate; }
.scn-morano-threatens-force .floor-stripes  { position:absolute; bottom:0; left:0; right:0; height:10%; background: repeating-linear-gradient(90deg, #1a1420 0%, #1a1420 8px, #0e0c14 8px, #0e0c14 16px); opacity:.7; }
@keyframes mrf3-wall   { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.75 } }
@keyframes mrf3-lunge  { 0% { transform: translateY(0) rotate(0) } 30% { transform: translateY(-4px) rotate(-6deg) } 50% { transform: translateY(0) rotate(2deg) } 70% { transform: translateY(-2px) rotate(-4deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes mrf3-recoil { 0% { transform: translateX(0) scale(1) } 50% { transform: translateX(6px) scale(.9) } 100% { transform: translateX(0) scale(1) } }
@keyframes mrf3-shadow { 0% { transform: skewX(-30deg) scaleX(1) } 50% { transform: skewX(-25deg) scaleX(.8) } 100% { transform: skewX(-35deg) scaleX(1.2) } }

/* === emily-summons-courage (ESC) === */
.scn-emily-summons-courage {
  background:
    linear-gradient(180deg, #1c1a28 0%, #2a2438 50%, #141220 100%),
    radial-gradient(ellipse at 50% 30%, #2a1f18 0%, transparent 70%);
}
.scn-emily-summons-courage .drape-back   { position:absolute; inset: 8% 4% 8% 4%; background: linear-gradient(180deg, #1a1422 0%, #0e0c16 100%); border-radius: 20% 15% 10% 15%; opacity:.5; animation: esc4-drape 20s ease-in-out infinite alternate; }
.scn-emily-summons-courage .chair-frame  { position:absolute; left:30%; bottom:10%; width:30px; height:24px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 8% 8% 12% 12%; box-shadow: inset -2px 0 6px rgba(0,0,0,.5); }
.scn-emily-summons-courage .figure-seated{ position:absolute; left:32%; bottom:16%; width:24px; height:36px; background: radial-gradient(ellipse at 50% 30%, #3a2c22 0%, #1c1410 100%); border-radius: 50% 50% 40% 40% / 55% 55% 35% 35%; transform-origin: bottom center; animation: esc4-sitstill 4s ease-in-out infinite; }
.scn-emily-summons-courage .small-lamp   { position:absolute; left:52%; bottom:22%; width:6px; height:12px; background: linear-gradient(180deg, #b09870 0%, #8a7848 100%); border-radius: 2px; }
.scn-emily-summons-courage .faint-glow   { position:absolute; left:52%; bottom:30%; width:50px; height:40px; background: radial-gradient(circle, rgba(200,180,140,.15) 0%, transparent 60%); transform: translateX(-50%); animation: esc4-glow 9s ease-in-out infinite alternate; }
.scn-emily-summons-courage .shadow-settle{ position:absolute; left:20%; bottom:8%; width:55%; height:4px; background: linear-gradient(90deg, rgba(0,0,0,.5) 0%, transparent 100%); border-radius: 50%; transform: skewX(-10deg); animation: esc4-shade 4s ease-in-out infinite; }
@keyframes esc4-drape  { 0% { opacity:.4 } 50% { opacity:.6 } 100% { opacity:.5 } }
@keyframes esc4-sitstill { 0% { transform: translateY(0) rotate(-1deg) } 25% { transform: translateY(-1px) rotate(0) } 50% { transform: translateY(0) rotate(1deg) } 75% { transform: translateY(-1px) rotate(0) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes esc4-glow   { 0% { opacity:.3; transform: translateX(-50%) scale(.8) } 50% { opacity:.6; transform: translateX(-50%) scale(1) } 100% { opacity:.4; transform: translateX(-50%) scale(.9) } }
@keyframes esc4-shade  { 0% { transform: skewX(-10deg) scaleX(1) } 50% { transform: skewX(-8deg) scaleX(.9) } 100% { transform: skewX(-12deg) scaleX(1.1) } }

.scn-dog-growls {
  background: linear-gradient(180deg, #1a1118 0%, #2a1c1c 40%, #1c1214 100%),
              radial-gradient(ellipse at 50% 80%, #3a2a2a 0%, transparent 70%);
  box-shadow: inset 0 0 80px rgba(0,0,0,0.6);
}
.scn-dog-growls .bg-dark { position:absolute; inset:0; background: linear-gradient(180deg, #0d080a 0%, #1a1115 60%); animation: dg-bg 10s ease-in-out infinite alternate; }
.scn-dog-growls .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(0deg, #241a16 0%, #1a1210 100%); border-radius: 30% 30% 0 0; box-shadow: inset 0 20px 20px rgba(0,0,0,0.5); }
.scn-dog-growls .door { position:absolute; right:10%; bottom:20%; width:90px; height:140px; background: linear-gradient(180deg, #3a2a1f 0%, #261812 100%); border-radius: 4px 4px 0 0; box-shadow: -4px 0 12px rgba(0,0,0,0.7); animation: dg-door 6s ease-in-out infinite; }
.scn-dog-growls .dog { position:absolute; left:25%; bottom:28%; width:50px; height:40px; background: linear-gradient(180deg, #1a1a1a 0%, #0d0d0d 100%); border-radius: 40% 50% 30% 30% / 50% 60% 40% 30%; transform-origin: bottom center; animation: dg-dog 3s ease-in-out infinite; }
.scn-dog-growls .shadow-dog { position:absolute; left:22%; bottom:22%; width:60px; height:20px; background: rgba(0,0,0,0.4); border-radius: 50%; filter: blur(6px); animation: dg-shadow 3s ease-in-out infinite; }
.scn-dog-growls .figure-emily { position:absolute; left:55%; bottom:20%; width:28px; height:80px; background: linear-gradient(180deg, #1c1518 0%, #110c0e 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; animation: dg-emily 5s ease-in-out infinite; }
.scn-dog-growls .glow { position:absolute; top:30%; left:45%; width:80px; height:80px; background: radial-gradient(circle, rgba(200,150,100,0.15) 0%, transparent 70%); filter: blur(20px); animation: dg-glow 8s ease-in-out infinite alternate; }
@keyframes dg-bg { 0% { opacity:0.5 } 50% { opacity:0.7 } 100% { opacity:0.5 } }
@keyframes dg-door { 0% { transform: scaleX(1) } 50% { transform: scaleX(0.99) rotate(1deg) } 100% { transform: scaleX(1) } }
@keyframes dg-dog { 0% { transform: translateY(0) rotate(0deg) scaleX(1) } 30% { transform: translateY(-2px) rotate(-3deg) scaleX(1.02) } 60% { transform: translateY(-1px) rotate(2deg) scaleX(0.98) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes dg-shadow { 0% { transform: scale(1); opacity:0.6 } 50% { transform: scale(1.1); opacity:0.8 } 100% { transform: scale(1); opacity:0.6 } }
@keyframes dg-emily { 0% { transform: translateX(0) } 50% { transform: translateX(-3px) } 100% { transform: translateX(0) } }
@keyframes dg-glow { 0% { opacity:0.3; transform: scale(0.9) } 50% { opacity:0.6; transform: scale(1.1) } 100% { opacity:0.3; transform: scale(0.9) } }

.scn-morano-furious {
  background: linear-gradient(135deg, #1c1414 0%, #2a1c1c 30%, #1a1212 70%, #0d0808 100%),
              radial-gradient(ellipse at 70% 50%, #3a2222 0%, transparent 60%);
}
.scn-morano-furious .bg-deep { position:absolute; inset:0; background: linear-gradient(180deg, #0a0608 0%, #1a1012 100%); animation: mf-bg 12s ease-in-out infinite alternate; }
.scn-morano-furious .wall-left { position:absolute; left:0; top:0; bottom:0; width:25%; background: linear-gradient(90deg, #1e1414 0%, transparent 100%); }
.scn-morano-furious .wall-right { position:absolute; right:0; top:0; bottom:0; width:25%; background: linear-gradient(270deg, #1e1414 0%, transparent 100%); }
.scn-morano-furious .table { position:absolute; bottom:22%; left:30%; width:160px; height:30px; background: linear-gradient(180deg, #3a2a20 0%, #1e1410 100%); border-radius: 40%; box-shadow: 0 8px 20px rgba(0,0,0,0.6); }
.scn-morano-furious .candle { position:absolute; bottom:44%; left:38%; width:8px; height:20px; background: linear-gradient(180deg, #e0c080 0%, #a08050 100%); border-radius: 2px; box-shadow: 0 0 20px 6px #c08040; animation: mf-candle 2s ease-in-out infinite alternate; }
.scn-morano-furious .morano { position:absolute; right:20%; bottom:20%; width:40px; height:100px; background: linear-gradient(180deg, #1a121a 0%, #0d080d 100%); border-radius: 35% 35% 20% 20% / 60% 60% 30% 30%; transform-origin: bottom center; animation: mf-figure 4s ease-in-out infinite; }
.scn-morano-furious .shadow-morano { position:absolute; right:15%; bottom:14%; width:70px; height:40px; background: rgba(0,0,0,0.5); border-radius: 50%; filter: blur(8px); animation: mf-shadow 4s ease-in-out infinite; }
.scn-morano-furious .door { position:absolute; left:5%; bottom:18%; width:80px; height:130px; background: linear-gradient(180deg, #2a1c16 0%, #1a0e0a 100%); border-radius: 4px; box-shadow: 4px 0 12px rgba(0,0,0,0.8); animation: mf-door 7s ease-in-out infinite; }
@keyframes mf-bg { 0% { opacity:0.4 } 50% { opacity:0.6 } 100% { opacity:0.4 } }
@keyframes mf-candle { 0% { transform: scaleY(1); opacity:0.8 } 50% { transform: scaleY(1.05); opacity:1 } 100% { transform: scaleY(1); opacity:0.8 } }
@keyframes mf-figure { 0% { transform: translateY(0) rotate(-1deg) } 30% { transform: translateY(-3px) rotate(3deg) } 60% { transform: translateY(-2px) rotate(-2deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes mf-shadow { 0% { transform: scale(1); opacity:0.5 } 50% { transform: scale(1.15); opacity:0.7 } 100% { transform: scale(1); opacity:0.5 } }
@keyframes mf-door { 0% { transform: rotate(0deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(0deg) } }

.scn-montoni-bursts-in {
  background: linear-gradient(90deg, #1a1212 0%, #2a1a18 50%, #1a1212 100%),
              radial-gradient(ellipse at 50% 30%, #3a2828 0%, transparent 80%);
}
.scn-montoni-bursts-in .bg-dark { position:absolute; inset:0; background: linear-gradient(180deg, #0d080a 0%, #1a1012 60%); animation: mb-bg 8s ease-in-out infinite alternate; }
.scn-montoni-bursts-in .door { position:absolute; left:5%; bottom:15%; width:100px; height:160px; background: linear-gradient(180deg, #2e1c18 0%, #1a0e0c 100%); border-radius: 4px; box-shadow: 6px 0 20px rgba(0,0,0,0.7); transform-origin: left center; animation: mb-door 3s ease-out infinite; }
.scn-montoni-bursts-in .montoni { position:absolute; left:20%; bottom:18%; width:45px; height:110px; background: linear-gradient(180deg, #1c1a1a 0%, #0d0d0d 100%); border-radius: 30% 30% 20% 20% / 60% 60% 30% 30%; transform-origin: bottom center; animation: mb-montoni 2s ease-in-out infinite; }
.scn-montoni-bursts-in .morano { position:absolute; right:25%; bottom:18%; width:40px; height:105px; background: linear-gradient(180deg, #1a141a 0%, #0d080d 100%); border-radius: 35% 35% 20% 20% / 60% 60% 30% 30%; transform-origin: bottom center; animation: mb-morano 2.5s ease-in-out infinite; }
.scn-montoni-bursts-in .emily { position:absolute; right:5%; bottom:20%; width:25px; height:70px; background: linear-gradient(180deg, #1c1518 0%, #110c0e 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; animation: mb-emily 3s ease-in-out infinite; }
.scn-montoni-bursts-in .clash-light { position:absolute; top:30%; left:40%; width:120px; height:120px; background: radial-gradient(circle, rgba(180,130,80,0.2) 0%, transparent 70%); filter: blur(15px); animation: mb-light 1.5s ease-in-out infinite alternate; }
.scn-montoni-bursts-in .shadow-floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(0deg, rgba(0,0,0,0.3) 0%, transparent 100%); }
@keyframes mb-bg { 0% { opacity:0.5 } 50% { opacity:0.8 } 100% { opacity:0.5 } }
@keyframes mb-door { 0% { transform: rotate(-70deg); opacity:0 } 30% { transform: rotate(0deg); opacity:1 } 60% { transform: rotate(3deg) } 100% { transform: rotate(0deg) } }
@keyframes mb-montoni { 0% { transform: translateX(-30px) rotate(-5deg); opacity:0 } 20% { transform: translateX(0) rotate(0deg); opacity:1 } 50% { transform: translateY(-3px) rotate(2deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes mb-morano { 0% { transform: translateX(0) rotate(0deg) } 30% { transform: translateX(-5px) rotate(-4deg) } 60% { transform: translateX(3px) rotate(3deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes mb-emily { 0% { transform: translateY(0) scaleY(1) } 40% { transform: translateY(-4px) scaleY(0.95) } 80% { transform: translateY(-2px) scaleY(1) } 100% { transform: translateY(0) } }
@keyframes mb-light { 0% { transform: scale(0.8); opacity:0.2 } 50% { transform: scale(1.2); opacity:0.5 } 100% { transform: scale(0.8); opacity:0.2 } }

.scn-fight-in-corridor {
  background: linear-gradient(180deg, #0f0b0d 0%, #1a1012 40%, #0f0b0d 100%),
              radial-gradient(ellipse at 50% 60%, #2a1c1c 0%, transparent 70%);
}
.scn-fight-in-corridor .bg-corridor { position:absolute; inset:0; background: linear-gradient(90deg, #0d080a 0%, #181010 50%, #0d080a 100%); animation: fc-bg 12s ease-in-out infinite alternate; }
.scn-fight-in-corridor .wall-left { position:absolute; left:0; top:0; bottom:0; width:15%; background: linear-gradient(90deg, #1a1112 0%, transparent 100%); }
.scn-fight-in-corridor .wall-right { position:absolute; right:0; top:0; bottom:0; width:15%; background: linear-gradient(270deg, #1a1112 0%, transparent 100%); }
.scn-fight-in-corridor .fighter1 { position:absolute; left:20%; bottom:22%; width:45px; height:105px; background: linear-gradient(180deg, #1a141a 0%, #0d080d 100%); border-radius: 35% 35% 20% 20% / 60% 60% 30% 30%; transform-origin: bottom center; animation: fc-f1 2s ease-in-out infinite; }
.scn-fight-in-corridor .fighter2 { position:absolute; right:20%; bottom:22%; width:45px; height:105px; background: linear-gradient(180deg, #1c1a1a 0%, #0d0d0d 100%); border-radius: 35% 35% 20% 20% / 60% 60% 30% 30%; transform-origin: bottom center; animation: fc-f2 2.5s ease-in-out infinite; }
.scn-fight-in-corridor .sword-clash { position:absolute; left:45%; bottom:45%; width:20px; height:20px; background: radial-gradient(circle, #e0a050 0%, #c08040 40%, transparent 70%); border-radius: 50%; box-shadow: 0 0 30px 10px rgba(200,150,80,0.4); animation: fc-clash 0.8s ease-in-out infinite alternate; }
.scn-fight-in-corridor .shadow1 { position:absolute; left:18%; bottom:16%; width:60px; height:30px; background: rgba(0,0,0,0.4); border-radius: 50%; filter: blur(6px); animation: fc-shadow1 2s ease-in-out infinite; }
.scn-fight-in-corridor .shadow2 { position:absolute; right:18%; bottom:16%; width:60px; height:30px; background: rgba(0,0,0,0.4); border-radius: 50%; filter: blur(6px); animation: fc-shadow2 2.5s ease-in-out infinite; }
@keyframes fc-bg { 0% { opacity:0.6 } 50% { opacity:0.8 } 100% { opacity:0.6 } }
@keyframes fc-f1 { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(5px) rotate(5deg) } 50% { transform: translateX(-5px) rotate(-4deg) } 75% { transform: translateX(3px) rotate(2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes fc-f2 { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(-5px) rotate(-5deg) } 50% { transform: translateX(5px) rotate(4deg) } 75% { transform: translateX(-3px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes fc-clash { 0% { transform: scale(0.8); opacity:0.5 } 50% { transform: scale(1.5); opacity:1 } 100% { transform: scale(0.8); opacity:0.5 } }
@keyframes fc-shadow1 { 0% { transform: scale(1); opacity:0.4 } 50% { transform: scale(1.2); opacity:0.6 } 100% { transform: scale(1); opacity:0.4 } }
@keyframes fc-shadow2 { 0% { transform: scale(1); opacity:0.4 } 50% { transform: scale(1.15); opacity:0.6 } 100% { transform: scale(1); opacity:0.4 } }

/* Gates of Udolpho */
.scn-gates-of-udolpho {
  background: 
    linear-gradient(180deg, #2b1f3d 0%, #4a2e44 30%, #7a5a4a 60%, #c8a080 100%),
    radial-gradient(ellipse at 50% 20%, #d9b090 0%, transparent 70%);
}
.scn-gates-of-udolpho .dusk-sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #6b5070 0%, #b08070 60%, transparent);
  animation: gu-sky 12s ease-in-out infinite alternate;
}
.scn-gates-of-udolpho .gate-arch {
  position: absolute; bottom: 20%; left: 30%; right: 30%; height: 40%;
  background: radial-gradient(ellipse at 50% 100%, #3a2020 0%, #1a1010 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  box-shadow: inset 0 20px 60px rgba(0,0,0,0.6), 0 0 40px rgba(200,120,80,0.2);
}
.scn-gates-of-udolpho .tower-left {
  position: absolute; bottom: 20%; left: 10%; width: 12%; height: 55%;
  background: linear-gradient(90deg, #4a3530 0%, #5a4540 30%, #4a3530 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: -5px 0 15px rgba(0,0,0,0.4);
  animation: gu-tower 8s ease-in-out infinite;
}
.scn-gates-of-udolpho .tower-right {
  position: absolute; bottom: 20%; right: 10%; width: 12%; height: 55%;
  background: linear-gradient(90deg, #5a4540 0%, #4a3530 70%, #3a2520 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 5px 0 15px rgba(0,0,0,0.4);
  animation: gu-tower 8s ease-in-out infinite reverse;
}
.scn-gates-of-udolpho .banner-weeds {
  position: absolute; bottom: 55%; left: 50%; width: 2px; height: 30%;
  background: #6a5a40;
  transform-origin: top center;
  animation: gu-weeds 6s ease-in-out infinite;
}
.scn-gates-of-udolpho .banner-weeds::before {
  content: ''; position: absolute; top: 0; left: -4px; width: 10px; height: 80%;
  background: radial-gradient(ellipse, #8a7050 0%, transparent 80%);
  border-radius: 50%;
}
.scn-gates-of-udolpho .grass-clump {
  position: absolute; bottom: 18%; left: 20%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #5a6a3a 0%, #3a4a2a 100%);
  border-radius: 60% 40% 50% 50% / 20% 30% 70% 80%;
  transform: rotate(-10deg);
  animation: gu-grass 4s ease-in-out infinite alternate;
}
.scn-gates-of-udolpho .glow-haze {
  position: absolute; bottom: 30%; left: 35%; right: 35%; height: 20%;
  background: radial-gradient(ellipse at 50% 100%, rgba(220,180,120,0.3) 0%, transparent 70%);
  filter: blur(12px);
  animation: gu-haze 10s ease-in-out infinite alternate;
}
@keyframes gu-sky { 0% { opacity:0.6 } 50% { opacity:0.9 } 100% { opacity:0.7 } }
@keyframes gu-tower { 0%,100% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-4px) scaleY(1.02) } }
@keyframes gu-weeds { 0%,100% { transform: rotate(-5deg) } 50% { transform: rotate(5deg) } }
@keyframes gu-grass { 0% { transform: rotate(-15deg) } 100% { transform: rotate(5deg) } }
@keyframes gu-haze { 0% { opacity:0.4 } 50% { opacity:0.7 } 100% { opacity:0.5 } }

/* Portcullis Description */
.scn-portcullis-description {
  background: 
    linear-gradient(180deg, #2b1f3d 0%, #4a2e44 40%, #7a5a4a 100%),
    radial-gradient(ellipse at 50% 30%, #b08060 0%, transparent 80%);
}
.scn-portcullis-description .dusk-wall {
  position: absolute; bottom: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(180deg, #4a3a30 0%, #2a1a10 100%);
  border-radius: 20% 20% 0 0;
}
.scn-portcullis-description .curtain {
  position: absolute; bottom: 20%; left: 20%; right: 20%; height: 40%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 5% 5% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.5);
}
.scn-portcullis-description .portcullis {
  position: absolute; bottom: 25%; left: 38%; right: 38%; height: 35%;
  background: 
    linear-gradient(90deg, #2a1a10 0%, #4a3a30 20%, #2a1a10 40%, #4a3a30 60%, #2a1a10 80%, #4a3a30 100%);
  clip-path: polygon(10% 0%, 90% 0%, 100% 100%, 0% 100%);
  animation: pc-portcullis 6s ease-in-out infinite alternate;
}
.scn-portcullis-description .arch-pointed {
  position: absolute; bottom: 25%; left: 30%; right: 30%; height: 30%;
  background: transparent;
  border: 8px solid #5a3a2a;
  border-radius: 50% 50% 0 0;
  clip-path: inset(0 0 50% 0);
  animation: pc-arch 10s ease-in-out infinite;
}
.scn-portcullis-description .battlement {
  position: absolute; bottom: 55%; left: 18%; right: 18%; height: 10%;
  background: linear-gradient(90deg, #4a3a30 25%, transparent 25%, transparent 35%, #4a3a30 35%, #4a3a30 75%, transparent 75%, transparent 85%, #4a3a30 85%);
  background-size: 20% 100%;
  animation: pc-battle 8s linear infinite;
}
.scn-portcullis-description .ivy-1 {
  position: absolute; bottom: 20%; left: 15%; width: 8px; height: 50%;
  background: linear-gradient(180deg, #3a5a2a 0%, #2a4a1a 100%);
  border-radius: 50%;
  transform: rotate(15deg);
  animation: pc-ivy 5s ease-in-out infinite alternate;
}
.scn-portcullis-description .ivy-2 {
  position: absolute; bottom: 20%; right: 15%; width: 8px; height: 45%;
  background: linear-gradient(180deg, #3a5a2a 0%, #2a4a1a 100%);
  border-radius: 50%;
  transform: rotate(-10deg);
  animation: pc-ivy 5s ease-in-out infinite alternate-reverse;
}
@keyframes pc-portcullis { 0%,100% { transform: translateY(0) scaleX(1) } 50% { transform: translateY(-8px) scaleX(1.05) } }
@keyframes pc-arch { 0%,100% { opacity:0.7 } 50% { opacity:1 } }
@keyframes pc-battle { 0% { background-position: 0 0 } 100% { background-position: 20% 0 } }
@keyframes pc-ivy { 0% { transform: rotate(10deg) scaleY(1) } 100% { transform: rotate(20deg) scaleY(1.1) } }

/* Entrance into Courtyard */
.scn-entrance-into-courtyard {
  background: 
    linear-gradient(180deg, #0a0a14 0%, #141020 40%, #1a1420 100%),
    radial-gradient(ellipse at 50% 60%, #2a2030 0%, transparent 70%);
}
.scn-entrance-into-courtyard .dark-ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1a141a 0%, #0a0a10 100%);
}
.scn-entrance-into-courtyard .portal-left {
  position: absolute; bottom: 10%; left: 15%; width: 30%; height: 60%;
  background: linear-gradient(90deg, #2a1a1a 0%, #3a2a2a 50%, #2a1a1a 100%);
  border-radius: 5% 0 0 5%;
  box-shadow: -10px 0 30px rgba(0,0,0,0.6);
  animation: ec-portal 6s ease-in-out infinite;
}
.scn-entrance-into-courtyard .portal-right {
  position: absolute; bottom: 10%; right: 15%; width: 30%; height: 60%;
  background: linear-gradient(90deg, #3a2a2a 0%, #2a1a1a 50%, #1a1010 100%);
  border-radius: 0 5% 5% 0;
  box-shadow: 10px 0 30px rgba(0,0,0,0.6);
  animation: ec-portal 6s ease-in-out infinite reverse;
}
.scn-entrance-into-courtyard .carriage-wheel {
  position: absolute; bottom: 25%; left: 50%; width: 20px; height: 20px;
  background: radial-gradient(circle, #2a1a1a 0%, #1a1010 80%);
  border-radius: 50%;
  box-shadow: 0 0 10px rgba(0,0,0,0.5);
  transform: translateX(-50%);
  animation: ec-wheel 4s ease-in-out infinite;
}
.scn-entrance-into-courtyard .shadow-bolts {
  position: absolute; bottom: 35%; left: 38%; right: 38%; height: 4px;
  background: linear-gradient(90deg, transparent 20%, #1a1010 40%, #1a1010 60%, transparent 80%);
  animation: ec-bolts 3s ease-in-out infinite alternate;
}
.scn-entrance-into-courtyard .torch-glow {
  position: absolute; bottom: 50%; left: 50%; width: 30px; height: 40px;
  background: radial-gradient(ellipse, #ffa060 0%, #d08040 40%, transparent 80%);
  filter: blur(8px);
  transform: translate(-50%, -50%);
  animation: ec-torch 2s ease-in-out infinite alternate;
}
.scn-entrance-into-courtyard .figure-servant {
  position: absolute; bottom: 15%; left: 55%; width: 14px; height: 30px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: ec-fig 5s ease-in-out infinite;
}
.scn-entrance-into-courtyard .fig-foot {
  position: absolute; bottom: 12%; left: 55%; width: 6px; height: 4px;
  background: #1a1a2a;
  border-radius: 50%;
  transform: translateX(-50%);
  animation: ec-foot 5s ease-in-out infinite;
}
@keyframes ec-portal { 0%,100% { transform: scaleX(1) } 50% { transform: scaleX(1.02) } }
@keyframes ec-wheel { 0% { transform: translateX(-50%) rotate(0deg) } 100% { transform: translateX(-50%) rotate(360deg) } }
@keyframes ec-bolts { 0% { opacity:0.3 } 100% { opacity:0.7 } }
@keyframes ec-torch { 0% { opacity:0.6; transform: translate(-50%,-50%) scale(0.9) } 100% { opacity:1; transform: translate(-50%,-50%) scale(1.1) } }
@keyframes ec-fig { 0%,100% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-2px) } }
@keyframes ec-foot { 0%,100% { opacity:0.6 } 50% { opacity:1 } }

/* Second Court Horror */
.scn-second-court-horror {
  background: 
    linear-gradient(180deg, #0a0a0e 0%, #141420 50%, #1a1828 100%),
    radial-gradient(ellipse at 50% 40%, #2a2840 0%, transparent 70%);
}
.scn-second-court-horror .hall-back {
  position: absolute; bottom: 0; left: 0; right: 0; height: 80%;
  background: linear-gradient(180deg, #1a1828 0%, #0a0a14 100%);
  border-radius: 0 0 20% 20%;
}
.scn-second-court-horror .arch-1 {
  position: absolute; bottom: 10%; left: 10%; width: 20%; height: 60%;
  background: transparent;
  border: 6px solid #2a2840;
  border-radius: 50% 50% 0 0;
  clip-path: inset(0 0 40% 0);
  animation: sc-arch 8s ease-in-out infinite;
}
.scn-second-court-horror .arch-2 {
  position: absolute; bottom: 10%; left: 35%; width: 20%; height: 60%;
  background: transparent;
  border: 6px solid #2a2840;
  border-radius: 50% 50% 0 0;
  clip-path: inset(0 0 40% 0);
  animation: sc-arch 8s ease-in-out infinite 2s;
}
.scn-second-court-horror .arch-3 {
  position: absolute; bottom: 10%; left: 60%; width: 20%; height: 60%;
  background: transparent;
  border: 6px solid #2a2840;
  border-radius: 50% 50% 0 0;
  clip-path: inset(0 0 40% 0);
  animation: sc-arch 8s ease-in-out infinite 4s;
}
.scn-second-court-horror .distant-light {
  position: absolute; bottom: 40%; right: 15%; width: 12px; height: 20px;
  background: radial-gradient(ellipse, #a0a0c0 0%, #606080 60%, transparent 100%);
  filter: blur(4px);
  animation: sc-light 3s ease-in-out infinite alternate;
}
.scn-second-court-horror .shadow-crawl {
  position: absolute; bottom: 0; left: 20%; right: 20%; height: 30%;
  background: linear-gradient(180deg, transparent 0%, #0a0a14 100%);
  animation: sc-shadow 6s ease-in-out infinite;
}
.scn-second-court-horror .vignette {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 50%, transparent 40%, rgba(0,0,0,0.6) 100%);
  animation: sc-vignette 10s ease-in-out infinite alternate;
}
@keyframes sc-arch { 0%,100% { opacity:0.5; transform: scaleY(1) } 50% { opacity:1; transform: scaleY(1.05) } }
@keyframes sc-light { 0% { opacity:0.3; transform: scale(0.8) } 100% { opacity:0.8; transform: scale(1.2) } }
@keyframes sc-shadow { 0%,100% { opacity:0.4 } 50% { opacity:0.8 } }
@keyframes sc-vignette { 0% { opacity:0.5 } 50% { opacity:1 } 100% { opacity:0.6 } }

/* one block per scene id. Append to style.css. */
.scn-aunt-insults-father { background: linear-gradient(180deg, #0d0d1a 0%, #1a1a2e 40%, #2a1e2e 100%), radial-gradient(ellipse at 50% 0%, #3a2a3a 0%, transparent 60%); }
.scn-aunt-insults-father .bg-deep { position:absolute; inset:0; background: radial-gradient(ellipse at 30% 20%, #1a1a2e 0%, transparent 80%); animation: aif-deep 8s ease-in-out infinite alternate; }
.scn-aunt-insults-father .bg-wall { position:absolute; inset:10% 5% 30% 5%; background: linear-gradient(180deg, #1e1e2e 0%, #2a2e3a 100%); border-radius: 4px; box-shadow: inset 0 0 60px rgba(0,0,0,.6); }
.scn-aunt-insults-father .figure-aunt { position:absolute; bottom:30%; left:20%; width:28px; height:60px; background: linear-gradient(180deg, #0e0e12 0%, #1a1a24 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: aif-aunt 6s ease-in-out infinite; }
.scn-aunt-insults-father .figure-emily { position:absolute; bottom:28%; left:55%; width:22px; height:50px; background: linear-gradient(180deg, #12121a 0%, #202028 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: aif-emily 4s ease-in-out infinite alternate; }
.scn-aunt-insults-father .table { position:absolute; bottom:28%; left:45%; width:60px; height:6px; background: #2a2a34; border-radius: 2px; box-shadow: 0 2px 8px rgba(0,0,0,.5); }
.scn-aunt-insults-father .candle { position:absolute; bottom:33%; left:50%; width:4px; height:18px; background: linear-gradient(180deg, #d4a060 0%, #8a6030 100%); border-radius: 2px 2px 1px 1px; transform: translateX(-50%); }
.scn-aunt-insults-father .candle-glow { position:absolute; bottom:36%; left:50%; width:20px; height:20px; transform: translate(-50%, -50%); background: radial-gradient(circle, #ffd080 0%, #c08040 40%, transparent 70%); border-radius: 50%; box-shadow: 0 0 40px 20px rgba(192,128,64,.4); animation: aif-flame 1.5s ease-in-out infinite alternate; }
.scn-aunt-insults-father .shadow-floor { position:absolute; bottom:20%; left:0; right:0; height:10%; background: linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,.7) 100%); border-radius: 0 0 50% 50%; }
@keyframes aif-deep { 0% { opacity:.6 } 100% { opacity:.9 } }
@keyframes aif-aunt { 0%,100% { transform: translateY(0) rotate(0) scale(1) } 50% { transform: translateY(-2px) rotate(-2deg) scale(1.02) } }
@keyframes aif-emily { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-1px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes aif-flame { 0% { transform: translate(-50%, -50%) scale(1) rotate(-2deg); opacity:.9 } 50% { transform: translate(-50%, -50%) scale(1.15) rotate(3deg); opacity:1 } 100% { transform: translate(-50%, -50%) scale(.95) rotate(-1deg); opacity:.85 } }

.scn-emily-weeps-private { background: linear-gradient(180deg, #0c0c18 0%, #14142a 50%, #1a1a30 100%), radial-gradient(ellipse at 50% 30%, #1a1a3a 0%, transparent 70%); }
.scn-emily-weeps-private .bg-room { position:absolute; inset:0; background: linear-gradient(135deg, #111122 0%, #1a1a32 100%); }
.scn-emily-weeps-private .window-moon { position:absolute; top:15%; right:10%; width:50px; height:60px; background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 100%); border-radius: 4px; border: 2px solid #2a2a3e; box-shadow: inset 0 0 20px rgba(100,120,180,0.2); }
.scn-emily-weeps-private .moonlight-beam { position:absolute; top:18%; right:12%; width:40px; height:80px; background: linear-gradient(180deg, rgba(180,200,240,0.15) 0%, transparent 100%); border-radius: 50% 50% 0 0; transform: rotate(-10deg); animation: ewp-beam 10s ease-in-out infinite alternate; }
.scn-emily-weeps-private .figure-emily { position:absolute; bottom:22%; left:35%; width:24px; height:48px; background: linear-gradient(180deg, #14141e 0%, #202032 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ewp-emily 5s ease-in-out infinite; }
.scn-emily-weeps-private .bed { position:absolute; bottom:18%; left:20%; right:20%; height:20px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 10px 10px 4px 4px; box-shadow: 0 4px 12px rgba(0,0,0,.6); }
.scn-emily-weeps-private .pillow { position:absolute; bottom:20%; left:35%; width:30px; height:10px; background: #3a3040; border-radius: 50%; transform: translateY(-50%); box-shadow: 0 2px 8px rgba(0,0,0,.4); }
.scn-emily-weeps-private .tear { position:absolute; width:4px; height:6px; background: radial-gradient(ellipse, #b8c8e8 0%, transparent 70%); border-radius: 50%; opacity:0.6; }
.scn-emily-weeps-private .teard-1 { top:45%; left:48%; animation: ewp-tear1 2.5s ease-in-out infinite; }
.scn-emily-weeps-private .teard-2 { top:48%; left:52%; animation: ewp-tear2 3s ease-in-out infinite 1s; }
@keyframes ewp-beam { 0% { opacity:.6; transform: rotate(-10deg) scaleX(1) } 50% { opacity:.9; transform: rotate(-8deg) scaleX(1.1) } 100% { opacity:.5; transform: rotate(-12deg) scaleX(.9) } }
@keyframes ewp-emily { 0%,100% { transform: translateY(0) rotate(0) scale(1) } 30% { transform: translateY(-1px) rotate(1deg) scale(1.01) } 60% { transform: translateY(0) rotate(-1deg) scale(1) } 90% { transform: translateY(-2px) rotate(0) scale(1.01) } }
@keyframes ewp-tear1 { 0% { transform: translate(0,0) scale(1); opacity:.6 } 50% { transform: translate(1px,12px) scale(.8); opacity:.2 } 100% { transform: translate(0,0) scale(0); opacity:0 } }
@keyframes ewp-tear2 { 0% { transform: translate(0,0) scale(1); opacity:.5 } 50% { transform: translate(-1px,15px) scale(.7); opacity:.15 } 100% { transform: translate(0,0) scale(0); opacity:0 } }

.scn-emily-reflections-resentment { background: linear-gradient(180deg, #0a0a14 0%, #121224 40%, #1e1e30 100%), radial-gradient(ellipse at 40% 60%, #2a2030 0%, transparent 60%); }
.scn-emily-reflections-resentment .bg-dark { position:absolute; inset:0; background: linear-gradient(135deg, #0f0f1a 0%, #1a1a2a 100%); }
.scn-emily-reflections-resentment .mirror-frame { position:absolute; top:12%; left:30%; width:100px; height:150px; background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 100%); border-radius: 10px; box-shadow: 0 0 20px rgba(0,0,0,.8), inset 0 0 10px rgba(0,0,0,.5); border: 4px solid #1a1a1a; }
.scn-emily-reflections-resentment .mirror-reflection { position:absolute; top:15%; left:33%; width:90px; height:140px; background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3e 100%); border-radius: 6px; box-shadow: inset 0 0 30px rgba(0,0,0,.7); transform: scaleY(-1); opacity:.25; animation: err-reflect 6s ease-in-out infinite alternate; }
.scn-emily-reflections-resentment .figure-emily { position:absolute; bottom:22%; left:40%; width:22px; height:50px; background: linear-gradient(180deg, #161624 0%, #222238 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: err-emily 4s ease-in-out infinite; }
.scn-emily-reflections-resentment .candle { position:absolute; bottom:25%; left:55%; width:4px; height:16px; background: linear-gradient(180deg, #c09050 0%, #8a6030 100%); border-radius: 2px 2px 1px 1px; }
.scn-emily-reflections-resentment .candle-glow { position:absolute; bottom:28%; left:55%; width:18px; height:18px; background: radial-gradient(circle, #e8b060 0%, #c08040 30%, transparent 60%); border-radius: 50%; transform: translate(-50%, -50%); box-shadow: 0 0 30px 15px rgba(192,128,64,.4); animation: err-flame 2s ease-in-out infinite alternate; }
.scn-emily-reflections-resentment .shadow-mirror { position:absolute; bottom:10%; left:25%; right:25%; height:40px; background: linear-gradient(180deg, rgba(0,0,0,.3) 0%, transparent 100%); border-radius: 50%; }
@keyframes err-reflect { 0% { opacity:.2; transform: scaleY(-1) translateY(0) } 50% { opacity:.3; transform: scaleY(-1) translateY(2px) } 100% { opacity:.15; transform: scaleY(-1) translateY(0) } }
@keyframes err-emily { 0%,100% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-1px) rotate(2deg) } }
@keyframes err-flame { 0% { transform: translate(-50%, -50%) scale(1) rotate(-1deg); opacity:.8 } 50% { transform: translate(-50%, -50%) scale(1.1) rotate(2deg); opacity:1 } 100% { transform: translate(-50%, -50%) scale(.9) rotate(-2deg); opacity:.7 } }

.scn-emily-conjectures { background: linear-gradient(180deg, #0e0e18 0%, #16162a 50%, #1a1a2e 100%), radial-gradient(ellipse at 30% 50%, #221e2e 0%, transparent 70%); }
.scn-emily-conjectures .bg-chamber { position:absolute; inset:0; background: linear-gradient(135deg, #12121e 0%, #1c1c2e 100%); }
.scn-emily-conjectures .figure-emily { position:absolute; bottom:20%; left:45%; width:22px; height:52px; background: linear-gradient(180deg, #141420 0%, #202034 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ec-emily 3s ease-in-out infinite alternate; }
.scn-emily-conjectures .chair { position:absolute; bottom:18%; left:40%; width:40px; height:30px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 6px 6px 2px 2px; box-shadow: 0 4px 12px rgba(0,0,0,.5); }
.scn-emily-conjectures .door { position:absolute; bottom:10%; right:15%; width:40px; height:90px; background: linear-gradient(180deg, #2a2a38 0%, #1e1e2c 100%); border-radius: 4px; border: 2px solid #1a1a22; box-shadow: inset 0 0 10px rgba(0,0,0,.4); animation: ec-door 20s ease-in-out infinite; }
.scn-emily-conjectures .clock-case { position:absolute; top:20%; left:70%; width:30px; height:60px; background: linear-gradient(180deg, #2a2834 0%, #1e1c2a 100%); border-radius: 4px; box-shadow: 0 0 10px rgba(0,0,0,.6); }
.scn-emily-conjectures .pendulum { position:absolute; top:35%; left:72%; width:4px; height:30px; background: #3a3040; border-radius: 2px; transform-origin: top center; animation: ec-pendulum 2s ease-in-out infinite alternate; }
.scn-emily-conjectures .shadow-clock { position:absolute; bottom:15%; left:68%; width:40px; height:20px; background: radial-gradient(ellipse, rgba(0,0,0,.4) 0%, transparent 70%); }
@keyframes ec-emily { 0% { transform: translateY(0) rotate(-1deg) scale(1) } 50% { transform: translateY(-2px) rotate(1deg) scale(1.02) } 100% { transform: translateY(0) rotate(0) scale(1) } }
@keyframes ec-door { 0% { transform: translateX(0) rotate(0) } 5% { transform: translateX(-2px) rotate(1deg) } 10% { transform: translateX(0) rotate(0) } 100% { transform: translateX(0) rotate(0) } }
@keyframes ec-pendulum { 0% { transform: rotate(-15deg) } 50% { transform: rotate(0) } 100% { transform: rotate(15deg) } }

.scn-grave-sight { background: linear-gradient(180deg, #1a1a2e 0%, #0d0d1a 40%, #1a1a2e 80%), radial-gradient(ellipse at 50% 60%, #2a1a1a 0%, transparent 60%); }
.scn-grave-sight .bg-wall { position:absolute; inset:0; background: linear-gradient(90deg, #1a1a2e 0%, #2a1a2a 20%, #1a1a2e 40%, #2a1a1a 60%, #1a1a2e 100%); animation: gs-wall 15s ease-in-out infinite alternate; }
.scn-grave-sight .ground { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 30% 70% 0 0 / 20% 60% 0 0; }
.scn-grave-sight .grave { position:absolute; bottom:20%; left:35%; width:30%; height:18%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 20% 20% 60% 60% / 10% 10% 80% 80%; box-shadow: inset 0 8px 20px rgba(0,0,0,.6); animation: gs-grave 20s ease-in-out infinite alternate; }
.scn-grave-sight .torch { position:absolute; bottom:55%; left:20%; width:6px; height:40px; background: linear-gradient(180deg, #8a5a2a 0%, #4a2a0a 100%); border-radius: 20% 20% 0 0; transform: rotate(8deg); transform-origin: bottom center; animation: gs-torch 3s ease-in-out infinite; }
.scn-grave-sight .torch-glow { position:absolute; bottom:52%; left:20%; width:80px; height:80px; background: radial-gradient(circle, #d08040 0%, #b06030 20%, transparent 70%); border-radius:50%; transform: translate(-50%, -50%); animation: gs-glpulse 2s ease-in-out infinite alternate; }
.scn-grave-sight .figure-woman { position:absolute; bottom:25%; left:55%; width:24px; height:48px; background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: gs-woman 6s ease-in-out infinite; }
.scn-grave-sight .figure-barnardine { position:absolute; bottom:25%; left:28%; width:22px; height:50px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: gs-barnardine 5s ease-in-out infinite alternate; }
@keyframes gs-wall { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes gs-grave { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-2px) scale(1.02) } 100% { transform: translateY(0) scale(1) } }
@keyframes gs-torch { 0% { transform: rotate(5deg) } 25% { transform: rotate(10deg) } 50% { transform: rotate(5deg) } 75% { transform: rotate(12deg) } 100% { transform: rotate(5deg) } }
@keyframes gs-glpulse { 0% { opacity:0.6; transform: translate(-50%, -50%) scale(1) } 50% { opacity:1; transform: translate(-50%, -50%) scale(1.1) } 100% { opacity:0.7; transform: translate(-50%, -50%) scale(1) } }
@keyframes gs-woman { 0% { transform: translateX(0) translateY(0) rotate(-1deg) } 25% { transform: translateX(3px) translateY(-1px) rotate(1deg) } 50% { transform: translateX(0) translateY(0) rotate(-1deg) } 75% { transform: translateX(-3px) translateY(-1px) rotate(1deg) } 100% { transform: translateX(0) translateY(0) rotate(-1deg) } }
@keyframes gs-barnardine { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) rotate(-2deg) } 100% { transform: translateY(0) } }

.scn-portal-approach { background: linear-gradient(180deg, #0d0d1a 0%, #1a1a2e 30%, #0f0f1f 70%), radial-gradient(ellipse at 50% 30%, #2a1a2a 0%, transparent 60%); }
.scn-portal-approach .bg-dark { position:absolute; inset:0; background: linear-gradient(90deg, #0a0a15 0%, #1a1a2e 50%, #0a0a15 100%); animation: pa-dark 20s ease-in-out infinite alternate; }
.scn-portal-approach .portal { position:absolute; bottom:20%; left:50%; width:30%; height:60%; background: linear-gradient(180deg, #2a1a1a 0%, #0d0d1a 100%); border-radius: 0 0 10% 10% / 0 0 20% 20%; transform: translateX(-50%); box-shadow: inset 0 0 20px rgba(0,0,0,.7); }
.scn-portal-approach .portal-arch { position:absolute; bottom:20%; left:50%; width:28%; height:55%; background: linear-gradient(180deg, #1a1a2e 0%, #0d0d1a 100%); border-radius: 50% 50% 0 0 / 60% 60% 0 0; transform: translateX(-50%); box-shadow: inset 0 4px 8px rgba(255,255,255,.05), 0 0 30px rgba(0,0,0,.8); }
.scn-portal-approach .figure-emily { position:absolute; bottom:25%; left:48%; width:22px; height:50px; background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pa-emily 7s ease-in-out infinite; }
.scn-portal-approach .casement { position:absolute; top:15%; right:25%; width:30px; height:40px; background: linear-gradient(180deg, rgba(255,255,255,.1) 0%, rgba(255,255,255,.05) 100%); border: 2px solid rgba(255,255,255,.15); border-radius: 5% 5% 10% 10%; animation: pa-casement 12s ease-in-out infinite alternate; }
.scn-portal-approach .stairs { position:absolute; bottom:0; left:55%; width:20%; height:25%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 30% 30% 0 0 / 40% 40% 0 0; transform: rotate(-5deg); transform-origin: bottom left; animation: pa-stairs 15s ease-in-out infinite alternate; }
.scn-portal-approach .light-spot { position:absolute; top:40%; left:48%; width:60px; height:60px; background: radial-gradient(circle, rgba(200,180,140,.15) 0%, transparent 60%); border-radius:50%; animation: pa-light 4s ease-in-out infinite alternate; }
@keyframes pa-dark { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes pa-emily { 0% { transform: translateX(0) translateY(0) } 25% { transform: translateX(4px) translateY(-1px) rotate(1deg) } 50% { transform: translateX(0) translateY(0) rotate(0) } 75% { transform: translateX(-4px) translateY(-1px) rotate(-1deg) } 100% { transform: translateX(0) translateY(0) } }
@keyframes pa-casement { 0% { opacity:0.3; transform: scale(1) } 50% { opacity:0.7; transform: scale(1.05) } 100% { opacity:0.4; transform: scale(1) } }
@keyframes pa-stairs { 0% { transform: rotate(-3deg) } 50% { transform: rotate(-7deg) } 100% { transform: rotate(-3deg) } }
@keyframes pa-light { 0% { opacity:0.2; transform: scale(1) } 50% { opacity:0.6; transform: scale(1.3) } 100% { opacity:0.3; transform: scale(1) } }

.scn-trapped { background: linear-gradient(180deg, #0d0d1a 0%, #1a1a2e 40%, #0f0f1f 80%), radial-gradient(ellipse at 50% 50%, #1a1a2e 0%, transparent 70%); }
.scn-trapped .bg-steps { position:absolute; inset:0; background: linear-gradient(90deg, #0a0a15 0%, #151525 30%, #0a0a15 60%, #151525 100%); animation: tr-steps 25s ease-in-out infinite alternate; }
.scn-trapped .stair-rail { position:absolute; bottom:10%; left:20%; width:60%; height:5%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 10px; transform: rotate(-15deg); transform-origin: left center; animation: tr-rail 8s ease-in-out infinite alternate; }
.scn-trapped .figure { position:absolute; bottom:28%; left:45%; width:20px; height:45px; background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: tr-figure 5s ease-in-out infinite; }
.scn-trapped .portal-shadow { position:absolute; bottom:20%; left:55%; width:25%; height:50%; background: linear-gradient(180deg, #1a1a2e 0%, #0d0d1a 100%); border-radius: 40% 40% 0 0 / 60% 60% 0 0; opacity:0.7; animation: tr-shadow 12s ease-in-out infinite alternate; }
.scn-trapped .wind-gust { position:absolute; top:20%; right:10%; width:120px; height:40px; background: linear-gradient(90deg, transparent 0%, rgba(200,200,220,.1) 20%, transparent 60%); filter: blur(10px); border-radius:50%; animation: tr-wind 4s ease-in-out infinite; }
.scn-trapped .sound-ripple { position:absolute; bottom:35%; left:30%; width:60px; height:60px; border: 2px solid rgba(200,200,220,.1); border-radius:50%; animation: tr-ripple 6s linear infinite; }
.scn-trapped .sound-ripple2 { position:absolute; bottom:35%; left:30%; width:60px; height:60px; border: 2px solid rgba(200,200,220,.08); border-radius:50%; animation: tr-ripple2 8s linear infinite; animation-delay: -2s; }
@keyframes tr-steps { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes tr-rail { 0% { transform: rotate(-10deg) } 50% { transform: rotate(-20deg) } 100% { transform: rotate(-10deg) } }
@keyframes tr-figure { 0% { transform: translateX(0) translateY(0) rotate(-1deg) } 25% { transform: translateX(5px) translateY(-2px) rotate(1deg) } 50% { transform: translateX(0) translateY(0) rotate(-1deg) } 75% { transform: translateX(-5px) translateY(-2px) rotate(1deg) } 100% { transform: translateX(0) translateY(0) rotate(-1deg) } }
@keyframes tr-shadow { 0% { opacity:0.5; transform: scaleY(1) } 50% { opacity:0.8; transform: scaleY(1.05) } 100% { opacity:0.6; transform: scaleY(1) } }
@keyframes tr-wind { 0% { transform: translateX(0) scaleX(1) } 50% { transform: translateX(30px) scaleX(1.3) } 100% { transform: translateX(0) scaleX(1) } }
@keyframes tr-ripple { 0% { transform: scale(0); opacity:0.4 } 50% { transform: scale(2); opacity:0.1 } 100% { transform: scale(4); opacity:0 } }
@keyframes tr-ripple2 { 0% { transform: scale(0); opacity:0.3 } 50% { transform: scale(2.5); opacity:0.08 } 100% { transform: scale(5); opacity:0 } }

.scn-iron-chair { background: linear-gradient(180deg, #0a0a12 0%, #151520 40%, #0a0a12 80%), radial-gradient(ellipse at 40% 50%, #1a1a2a 0%, transparent 60%); }
.scn-iron-chair .bg-room { position:absolute; inset:0; background: linear-gradient(180deg, #0d0d1a 0%, #2a2a3a 30%, #0d0d1a 70%); animation: ic-room 18s ease-in-out infinite alternate; }
.scn-iron-chair .wall-wainscot { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 20% 20% 0 0 / 10% 10% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.5); }
.scn-iron-chair .grated-window { position:absolute; top:20%; right:20%; width:18%; height:30%; background: linear-gradient(180deg, #1a1a2e 0%, #0d0d1a 100%); border: 4px solid #2a2a3a; border-radius: 10%; box-shadow: inset 0 0 20px rgba(0,0,0,.8); }
.scn-iron-chair .bars { position:absolute; top:20%; right:20%; width:18%; height:30%; background: linear-gradient(90deg, transparent 35%, #3a3a4a 35%, #3a3a4a 40%, transparent 40%, transparent 60%, #3a3a4a 60%, #3a3a4a 65%, transparent 65%); border-radius: inherit; animation: ic-bars 4s ease-in-out infinite alternate; }
.scn-iron-chair .iron-chair { position:absolute; bottom:15%; left:30%; width:25%; height:30%; background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%); border-radius: 10% 10% 20% 20% / 30% 30% 40% 40%; transform: rotate(5deg); transform-origin: bottom center; box-shadow: inset 0 -6px 12px rgba(0,0,0,.6); animation: ic-chair 10s ease-in-out infinite; }
.scn-iron-chair .shadow-chair { position:absolute; bottom:10%; left:32%; width:22%; height:20%; background: rgba(0,0,0,.4); border-radius: 30% 30% 50% 50% / 40% 40% 60% 60%; filter: blur(8px); animation: ic-shadow 10s ease-in-out infinite alternate; }
.scn-iron-chair .lamp-glow { position:absolute; top:5%; left:15%; width:50px; height:50px; background: radial-gradient(circle, rgba(200,180,120,.15) 0%, transparent 50%); border-radius:50%; animation: ic-lamp 5s ease-in-out infinite alternate; }
@keyframes ic-room { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes ic-bars { 0% { opacity:0.6 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes ic-chair { 0% { transform: rotate(3deg) } 50% { transform: rotate(7deg) } 100% { transform: rotate(3deg) } }
@keyframes ic-shadow { 0% { transform: scaleX(1) scaleY(1) } 50% { transform: scaleX(1.1) scaleY(0.9) } 100% { transform: scaleX(1) scaleY(1) } }
@keyframes ic-lamp { 0% { opacity:0.2; transform: scale(1) } 50% { opacity:0.5; transform: scale(1.2) } 100% { opacity:0.3; transform: scale(1) } }

.scn-seeking-anette {
  background:
    linear-gradient(180deg, #f9f3e0 0%, #e0d0b0 40%, #c0a080 100%),
    radial-gradient(ellipse at 50% 0%, #fffbe6 0%, transparent 70%);
}
.scn-seeking-anette .gallery-bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #e8dcc0 0%, #cdb89a 100%);
  border-radius: 0 0 60% 60% / 0 0 20% 20%;
  animation: sa-sky 12s ease-in-out infinite alternate;
}
.scn-seeking-anette .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #a08560 0%, #8a7050 100%);
  border-radius: 10% 10% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.2);
}
.scn-seeking-anette .column-left {
  position: absolute; bottom: 30%; left: 15%; width: 20px; height: 70%;
  background: linear-gradient(180deg, #c8b494 0%, #a88c6c 100%);
  border-radius: 6px;
  box-shadow: 6px 0 8px rgba(0,0,0,0.15);
  animation: sa-column 10s ease-in-out infinite alternate;
}
.scn-seeking-anette .column-right {
  position: absolute; bottom: 30%; right: 15%; width: 20px; height: 70%;
  background: linear-gradient(180deg, #c8b494 0%, #a88c6c 100%);
  border-radius: 6px;
  box-shadow: -6px 0 8px rgba(0,0,0,0.15);
  animation: sa-column 10s ease-in-out infinite alternate-reverse;
}
.scn-seeking-anette .window {
  position: absolute; top: 20%; left: 50%; transform: translateX(-50%);
  width: 80px; height: 120px;
  background: radial-gradient(ellipse at 50% 50%, #fff6d0 0%, #f0d8a0 70%, transparent 100%);
  border: 6px solid #b09878;
  border-radius: 8px;
  box-shadow: 0 0 40px 20px rgba(255, 230, 150, 0.4);
  animation: sa-window 8s ease-in-out infinite alternate;
}
.scn-seeking-anette .sunbeam {
  position: absolute; top: 20%; left: 50%; transform: translateX(-50%);
  width: 60px; height: 80%;
  background: linear-gradient(180deg, rgba(255, 250, 200, 0.3) 0%, transparent 100%);
  filter: blur(8px);
  animation: sa-beam 6s ease-in-out infinite alternate;
}
.scn-seeking-anette .figure-distant {
  position: absolute; bottom: 30%; left: 50%; transform: translateX(-50%);
  width: 16px; height: 40px;
  background: linear-gradient(180deg, #e0d0b0 0%, #b09878 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: sa-figure 7s ease-in-out infinite alternate;
}
@keyframes sa-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes sa-column { 0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.02) translateY(-2px); } 100% { transform: scaleY(1) translateY(0); } }
@keyframes sa-window { 0% { opacity: 0.6; box-shadow: 0 0 30px 10px rgba(255,230,150,0.3); } 50% { opacity: 1; box-shadow: 0 0 60px 30px rgba(255,230,150,0.5); } 100% { opacity: 0.7; box-shadow: 0 0 40px 15px rgba(255,230,150,0.35); } }
@keyframes sa-beam { 0% { transform: translateX(-50%) skewX(0deg); } 50% { transform: translateX(-50%) skewX(-3deg); } 100% { transform: translateX(-50%) skewX(0deg); } }
@keyframes sa-figure { 0% { transform: translateX(-50%) translateY(0) rotate(0deg); } 50% { transform: translateX(-50%) translateY(-3px) rotate(1deg); } 100% { transform: translateX(-50%) translateY(0) rotate(0deg); } }

.scn-meeting-montoni {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #2a1e3a 40%, #3a2a4a 100%),
    radial-gradient(ellipse at 50% 100%, #3a2a4a 0%, transparent 70%);
}
.scn-meeting-montoni .hall-bg {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #2a1e3a 0%, #1a1a2e 100%);
  border-radius: 0 0 40% 40% / 0 0 30% 30%;
  animation: mm-hall 15s ease-in-out infinite alternate;
}
.scn-meeting-montoni .arch-left {
  position: absolute; bottom: 20%; left: 10%; width: 80px; height: 180px;
  background: linear-gradient(180deg, #3a2a4a 0%, #1a1a2e 100%);
  border: 4px solid #4a3a5a;
  border-radius: 50% 50% 0 0 / 60% 60% 0 0;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.6);
  animation: mm-arch 12s ease-in-out infinite alternate;
}
.scn-meeting-montoni .arch-right {
  position: absolute; bottom: 20%; right: 10%; width: 80px; height: 180px;
  background: linear-gradient(180deg, #3a2a4a 0%, #1a1a2e 100%);
  border: 4px solid #4a3a5a;
  border-radius: 50% 50% 0 0 / 60% 60% 0 0;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.6);
  animation: mm-arch 12s ease-in-out infinite alternate-reverse;
}
.scn-meeting-montoni .door {
  position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%);
  width: 60px; height: 120px;
  background: linear-gradient(180deg, #4a3a5a 0%, #2a1e3a 100%);
  border-radius: 4px;
  box-shadow: 0 0 20px 5px rgba(100, 80, 60, 0.4);
  animation: mm-door 9s ease-in-out infinite;
}
.scn-meeting-montoni .candle-glow {
  position: absolute; bottom: 30%; left: 50%; transform: translateX(-50%);
  width: 20px; height: 30px;
  background: radial-gradient(circle, #d08040 0%, #b06030 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 15px #b06030, 0 0 60px 30px rgba(160, 80, 40, 0.4);
  animation: mm-candle 2s ease-in-out infinite alternate;
}
.scn-meeting-montoni .figure-montoni {
  position: absolute; bottom: 20%; left: 40%;
  width: 24px; height: 60px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: mm-figure 5s ease-in-out infinite alternate;
}
@keyframes mm-hall { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes mm-arch { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(1); } }
@keyframes mm-door { 0%, 100% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(0.98); } }
@keyframes mm-candle { 0% { opacity: 0.8; transform: translateX(-50%) scale(1); } 50% { opacity: 1; transform: translateX(-50%) scale(1.05); } 100% { opacity: 0.9; transform: translateX(-50%) scale(0.95); } }
@keyframes mm-figure { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 50% { transform: translateX(3px) translateY(-2px) rotate(2deg); } 100% { transform: translateX(0) translateY(0) rotate(-2deg); } }

.scn-aurelie {
  background:
    linear-gradient(180deg, #1e1a2e 0%, #2a223a 50%, #3a2a4a 100%),
    radial-gradient(ellipse at 50% 0%, #3a2a4a 0%, transparent 70%);
}
.scn-aurelie .room-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a223a 0%, #1e1a2e 100%);
  border-radius: 0 0 20% 20% / 0 0 10% 10%;
  animation: au-wall 14s ease-in-out infinite alternate;
}
.scn-aurelie .window-bars {
  position: absolute; top: 20%; left: 50%; transform: translateX(-50%);
  width: 60px; height: 90px;
  background: radial-gradient(ellipse at 50% 50%, #4a4050 0%, #2a223a 70%, transparent 100%);
  border: 4px solid #5a4a60;
  border-radius: 6px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.5);
  animation: au-window 10s ease-in-out infinite alternate;
}
.scn-aurelie .bed {
  position: absolute; bottom: 10%; left: 50%; transform: translateX(-50%);
  width: 80px; height: 40px;
  background: linear-gradient(180deg, #3a3040 0%, #2a1e30 100%);
  border-radius: 8px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.4);
  animation: au-bed 8s ease-in-out infinite;
}
.scn-aurelie .figure-seated {
  position: absolute; bottom: 15%; left: 50%; transform: translateX(-50%);
  width: 18px; height: 34px;
  background: linear-gradient(180deg, #4a3a4a 0%, #2a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: au-figure 6s ease-in-out infinite alternate;
}
.scn-aurelie .shadow {
  position: absolute; bottom: 10%; left: 50%; transform: translateX(-50%);
  width: 60px; height: 15px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 100%);
  filter: blur(4px);
  animation: au-shadow 8s ease-in-out infinite alternate;
}
@keyframes au-wall { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes au-window { 0% { opacity: 0.5; box-shadow: inset 0 0 10px rgba(0,0,0,0.3); } 50% { opacity: 0.8; box-shadow: inset 0 0 30px rgba(0,0,0,0.6); } 100% { opacity: 0.6; box-shadow: inset 0 0 15px rgba(0,0,0,0.4); } }
@keyframes au-bed { 0%, 100% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(2px); } }
@keyframes au-figure { 0% { transform: translateX(-50%) translateY(0) rotate(-1deg); } 50% { transform: translateX(-50%) translateY(-2px) rotate(1deg); } 100% { transform: translateX(-50%) translateY(0) rotate(-1deg); } }
@keyframes au-shadow { 0% { transform: translateX(-50%) scaleX(1); } 50% { transform: translateX(-50%) scaleX(1.2); } 100% { transform: translateX(-50%) scaleX(1); } }

.scn-horror-returns {
  background:
    linear-gradient(180deg, #0a0a14 0%, #1a1020 40%, #2a1a30 100%),
    radial-gradient(ellipse at 50% 50%, #2a1a30 0%, transparent 70%);
}
.scn-horror-returns .dark-room {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #0a0a14 0%, #1a1020 100%);
  animation: hr-room 20s ease-in-out infinite alternate;
}
.scn-horror-returns .shadow-one {
  position: absolute; bottom: 10%; left: 20%; width: 100px; height: 120px;
  background: linear-gradient(180deg, rgba(20,10,20,0.8) 0%, transparent 100%);
  border-radius: 40% 60% 50% 50% / 40% 50% 50% 60%;
  filter: blur(10px);
  animation: hr-shadow1 12s ease-in-out infinite alternate;
}
.scn-horror-returns .shadow-two {
  position: absolute; bottom: 10%; right: 20%; width: 120px; height: 100px;
  background: linear-gradient(180deg, rgba(30,15,30,0.7) 0%, transparent 100%);
  border-radius: 60% 40% 50% 50% / 50% 40% 60% 50%;
  filter: blur(8px);
  animation: hr-shadow2 14s ease-in-out infinite alternate-reverse;
}
.scn-horror-returns .figure-emily {
  position: absolute; bottom: 15%; left: 50%; transform: translateX(-50%);
  width: 16px; height: 36px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a14 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hr-figure 4s ease-in-out infinite alternate;
}
.scn-horror-returns .dim-light {
  position: absolute; top: 20%; left: 50%; transform: translateX(-50%);
  width: 30px; height: 40px;
  background: radial-gradient(circle, #404060 0%, #202040 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 8px rgba(60, 40, 80, 0.3);
  animation: hr-light 5s ease-in-out infinite alternate;
}
@keyframes hr-room { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes hr-shadow1 { 0% { transform: translateX(0) translateY(0) scale(1); } 50% { transform: translateX(-10px) translateY(5px) scale(1.1); } 100% { transform: translateX(5px) translateY(-5px) scale(0.9); } }
@keyframes hr-shadow2 { 0% { transform: translateX(0) translateY(0) scale(1); } 50% { transform: translateX(10px) translateY(-5px) scale(1.15); } 100% { transform: translateX(-5px) translateY(5px) scale(0.95); } }
@keyframes hr-figure { 0% { transform: translateX(-50%) translateY(0) rotate(0deg); } 50% { transform: translateX(-50%) translateY(-3px) rotate(2deg); } 100% { transform: translateX(-50%) translateY(0) rotate(-1deg); } }
@keyframes hr-light { 0% { opacity: 0.3; transform: translateX(-50%) scale(0.9); } 50% { opacity: 0.6; transform: translateX(-50%) scale(1.1); } 100% { opacity: 0.4; transform: translateX(-50%) scale(0.95); } }

/* annette-announces-cavigni – dim interior, excited mood */
.scn-annette-announces-cavigni {
  background: 
    linear-gradient(180deg, #2a1e1a 0%, #3d2b22 40%, #4a3528 100%),
    radial-gradient(ellipse at 60% 30%, #6b4f3a 0%, transparent 60%);
}
.scn-annette-announces-cavigni .bg-wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, rgba(0,0,0,0.3) 0%, transparent 40%, rgba(0,0,0,0.1) 100%);
}
.scn-annette-announces-cavigni .candle-stand {
  position: absolute; bottom: 10%; left: 25%; width: 8px; height: 60px;
  background: linear-gradient(180deg, #4a3b30 0%, #2a1e16 100%);
  border-radius: 2px;
  transform: translateX(-50%);
}
.scn-annette-announces-cavigni .candle-flame {
  position: absolute; bottom: calc(10% + 62px); left: 25%; width: 14px; height: 28px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 60%, #ffd080 0%, #e08a40 50%, #c05530 80%, transparent 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%;
  box-shadow: 0 0 40px 15px rgba(192,80,40,0.6), 0 0 80px 30px rgba(192,80,40,0.3);
  animation: aac-flame 2s ease-in-out infinite alternate;
}
.scn-annette-announces-cavigni .figure-annette {
  position: absolute; bottom: 12%; left: 55%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #4a3a2e 0%, #2a1e16 70%, #1a1210 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: aac-figure 4s ease-in-out infinite alternate;
  box-shadow: 0 2px 8px rgba(0,0,0,0.5);
}
.scn-annette-announces-cavigni .figure-emily {
  position: absolute; bottom: 15%; left: 40%; width: 20px; height: 44px;
  background: linear-gradient(180deg, #3a2a22 0%, #1e1410 100%);
  border-radius: 50% 50% 35% 35% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: aac-emily 5s ease-in-out infinite alternate;
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
}
.scn-annette-announces-cavigni .table-cloth {
  position: absolute; bottom: 10%; left: 30%; right: 20%; height: 5px;
  background: linear-gradient(90deg, #6b5540 0%, #8a6e54 50%, #6b5540 100%);
  border-radius: 2px;
  filter: blur(1px);
}
.scn-annette-announces-cavigni .chair-back {
  position: absolute; bottom: 18%; left: 35%; width: 14px; height: 34px;
  background: linear-gradient(180deg, #3a2a1e 0%, #241a12 100%);
  border-radius: 4px;
}
.scn-annette-announces-cavigni .shadow-dance {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 30%;
  background: radial-gradient(ellipse at 40% 0%, rgba(0,0,0,0.4) 0%, transparent 60%);
  animation: aac-shadow 6s ease-in-out infinite alternate;
}
@keyframes aac-flame {
  0% { transform: translateX(-50%) scaleY(1) scaleX(0.9); opacity: 0.9; }
  50% { transform: translateX(-50%) scaleY(1.15) scaleX(1); opacity: 1; }
  100% { transform: translateX(-50%) scaleY(0.95) scaleX(0.85); opacity: 0.8; }
}
@keyframes aac-figure {
  0% { transform: translateX(0) rotate(-2deg); }
  50% { transform: translateX(4px) rotate(0deg); }
  100% { transform: translateX(0) rotate(2deg); }
}
@keyframes aac-emily {
  0% { transform: translateX(0) rotate(1deg); }
  50% { transform: translateX(-3px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes aac-shadow {
  0% { opacity: 0.5; transform: scaleY(1); }
  50% { opacity: 0.7; transform: scaleY(1.1); }
  100% { opacity: 0.4; transform: scaleY(0.9); }
}

/* relief-that-morano-not-arrived – dim interior, relief mood */
.scn-relief-that-morano-not-arrived {
  background: 
    linear-gradient(180deg, #1e2328 0%, #2a3038 50%, #1a1e24 100%),
    radial-gradient(ellipse at 70% 20%, #3a4450 0%, transparent 70%);
}
.scn-relief-that-morano-not-arrived .bg-room {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, rgba(0,0,0,0.2) 0%, transparent 50%, rgba(0,0,0,0.1) 100%);
}
.scn-relief-that-morano-not-arrived .window-sill {
  position: absolute; bottom: 25%; left: 20%; right: 20%; height: 8px;
  background: linear-gradient(180deg, #4a4a4a 0%, #2a2a2a 100%);
  border-radius: 2px;
}
.scn-relief-that-morano-not-arrived .casement-open {
  position: absolute; bottom: 30%; left: 20%; right: 20%; height: 40%;
  background: linear-gradient(180deg, #2a3038 0%, #1a1e24 100%);
  border: 2px solid #3a4048;
  border-radius: 4px;
  transform: scale(0.8);
  animation: rl-casement 8s ease-in-out infinite alternate;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.5);
}
.scn-relief-that-morano-not-arrived .figure-emily-relief {
  position: absolute; bottom: 10%; left: 35%; width: 20px; height: 42px;
  background: linear-gradient(180deg, #2e343a 0%, #1a1e24 100%);
  border-radius: 50% 50% 35% 35% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rl-emily 3s ease-in-out infinite alternate;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
}
.scn-relief-that-morano-not-arrived .chair-leg {
  position: absolute; bottom: 8%; left: 42%; width: 4px; height: 20px;
  background: #3a4048;
  border-radius: 1px;
}
.scn-relief-that-morano-not-arrived .candle-holder {
  position: absolute; bottom: 12%; right: 28%; width: 10px; height: 5px;
  background: #4a4a4a;
  border-radius: 2px;
}
.scn-relief-that-morano-not-arrived .faint-glow {
  position: absolute; bottom: 12%; right: 28%; width: 20px; height: 20px;
  transform: translate(5px, -15px);
  background: radial-gradient(circle, #a08060 0%, #6a5038 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(160,128,96,0.3);
  animation: rl-glow 4s ease-in-out infinite alternate;
}
.scn-relief-that-morano-not-arrived .moth {
  position: absolute; bottom: 40%; right: 30%; width: 4px; height: 4px;
  background: #c0b0a0;
  border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(192,176,160,0.5);
  animation: rl-moth 12s linear infinite;
}
@keyframes rl-casement {
  0% { transform: scale(0.8) rotate(0deg); opacity: 0.9; }
  50% { transform: scale(0.82) rotate(1deg); opacity: 1; }
  100% { transform: scale(0.78) rotate(-1deg); opacity: 0.85; }
}
@keyframes rl-emily {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(-5px) rotate(-3deg); }
  100% { transform: translateX(0) rotate(2deg); }
}
@keyframes rl-glow {
  0% { opacity: 0.7; transform: translate(5px, -15px) scale(0.9); }
  50% { opacity: 1; transform: translate(5px, -15px) scale(1.1); }
  100% { opacity: 0.6; transform: translate(5px, -15px) scale(0.85); }
}
@keyframes rl-moth {
  0% { transform: translate(0, 0) rotate(0deg); opacity: 1; }
  25% { transform: translate(10px, -5px) rotate(10deg); opacity: 0.8; }
  50% { transform: translate(20px, 0) rotate(-5deg); opacity: 1; }
  75% { transform: translate(10px, 5px) rotate(15deg); opacity: 0.7; }
  100% { transform: translate(0, 0) rotate(0deg); opacity: 0.9; }
}

/* annette-chatters – dim interior, excited mood */
.scn-annette-chatters {
  background: 
    linear-gradient(180deg, #241e1a 0%, #352b24 50%, #1e1612 100%),
    radial-gradient(ellipse at 40% 50%, #4a3a2e 0%, transparent 60%);
}
.scn-annette-chatters .bg-corridor {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, rgba(0,0,0,0.3) 0%, transparent 30%, transparent 70%, rgba(0,0,0,0.2) 100%);
}
.scn-annette-chatters .barred-window {
  position: absolute; top: 15%; left: 15%; right: 15%; bottom: 55%;
  background: linear-gradient(180deg, #1e1a16 0%, #2a2420 100%);
  border: 3px solid #3a3028;
  border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.7);
  animation: ac-chatter-window 7s ease-in-out infinite alternate;
}
.scn-annette-chatters .figure-annette-chatter {
  position: absolute; bottom: 15%; left: 50%; width: 22px; height: 46px;
  background: linear-gradient(180deg, #4a3a2e 0%, #2a1e16 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%) scale(1.1);
  transform-origin: bottom center;
  animation: ac-annette 4s ease-in-out infinite alternate;
}
.scn-annette-chatters .figure-emily-chatter {
  position: absolute; bottom: 18%; left: 30%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #3a2a22 0%, #1e1410 100%);
  border-radius: 50% 50% 35% 35% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ac-emily 5s ease-in-out infinite alternate;
}
.scn-annette-chatters .rusty-bars {
  position: absolute; top: 15%; left: 15%; right: 15%; bottom: 55%;
  display: flex;
  justify-content: space-around;
  padding: 0 10%;
}
.scn-annette-chatters .rusty-bars::before {
  content: '';
  position: absolute;
  top: 0; bottom: 0; left: 25%; width: 4px;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a3024 50%, #3a241a 100%);
  border-radius: 1px;
}
.scn-annette-chatters .rusty-bars::after {
  content: '';
  position: absolute;
  top: 0; bottom: 0; left: 50%; width: 4px;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a3024 50%, #3a241a 100%);
  border-radius: 1px;
}
.scn-annette-chatters .dust-motes {
  position: absolute; top: 20%; left: 20%; right: 20%; bottom: 60%;
  background: radial-gradient(circle at 30% 40%, rgba(200,180,160,0.15) 0%, transparent 50%);
  filter: blur(8px);
  animation: ac-dust 12s ease-in-out infinite alternate;
}
.scn-annette-chatters .door-frame {
  position: absolute; bottom: 0; left: 30%; right: 30%; height: 60%;
  border: 3px solid #3a2e26;
  border-bottom: none;
  border-radius: 4px 4px 0 0;
  background: linear-gradient(180deg, #2a221c 0%, #1a1410 100%);
  box-shadow: inset 0 0 20px rgba(0,0,0,0.5);
}
@keyframes ac-chatter-window {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.02); }
  100% { transform: scaleY(0.98); }
}
@keyframes ac-annette {
  0% { transform: translateX(-50%) rotate(-1deg) scale(1.1); }
  50% { transform: translateX(-50%) rotate(2deg) scale(1.05); }
  100% { transform: translateX(-50%) rotate(-2deg) scale(1.1); }
}
@keyframes ac-emily {
  0% { transform: translateX(0) rotate(1deg); }
  50% { transform: translateX(-4px) rotate(-2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes ac-dust {
  0% { opacity: 0.3; transform: translateY(0); }
  50% { opacity: 0.6; transform: translateY(-5px); }
  100% { opacity: 0.2; transform: translateY(3px); }
}

/* emily-weary – dim interior, calm mood */
.scn-emily-weary {
  background: 
    linear-gradient(180deg, #1a1816 0%, #2a2622 40%, #1e1a16 100%),
    radial-gradient(ellipse at 20% 60%, #3a322e 0%, transparent 70%);
}
.scn-emily-weary .bg-chamber {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, rgba(0,0,0,0.2) 0%, transparent 40%, rgba(0,0,0,0.1) 100%);
}
.scn-emily-weary .bedframe {
  position: absolute; bottom: 0; left: 20%; right: 20%; height: 40%;
  background: linear-gradient(180deg, #4a3a30 0%, #2a1e16 100%);
  border-radius: 6px 6px 0 0;
  box-shadow: 0 -2px 10px rgba(0,0,0,0.5);
}
.scn-emily-weary .pillow {
  position: absolute; bottom: 25%; left: 40%; width: 40px; height: 20px;
  background: linear-gradient(180deg, #5a4a3e 0%, #3a2e26 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform: rotate(-5deg);
  box-shadow: inset 0 -2px 6px rgba(0,0,0,0.3);
}
.scn-emily-weary .figure-emily-weary {
  position: absolute; bottom: 20%; left: 42%; width: 20px; height: 44px;
  background: linear-gradient(180deg, #3a2e26 0%, #1e1612 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ew-figure 8s ease-in-out infinite alternate;
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
}
.scn-emily-weary .lamp-stand {
  position: absolute; bottom: 10%; left: 15%; width: 6px; height: 30px;
  background: linear-gradient(180deg, #4a3a30 0%, #2a1e16 100%);
  border-radius: 2px;
}
.scn-emily-weary .lamp-glow {
  position: absolute; bottom: calc(10% + 32px); left: 15%; width: 16px; height: 24px;
  transform: translateX(-3px);
  background: radial-gradient(ellipse at 50% 40%, #b09070 0%, #8a6e54 40%, transparent 70%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  box-shadow: 0 0 30px 10px rgba(176,144,112,0.4), 0 0 60px 20px rgba(176,144,112,0.2);
  animation: ew-lamp 6s ease-in-out infinite alternate;
}
.scn-emily-weary .curtain-drape {
  position: absolute; top: 0; left: 80%; bottom: 0; width: 20%;
  background: linear-gradient(180deg, #3a2e26 0%, #2a221c 50%, #1a1612 100%);
  border-radius: 10px 0 0 10px;
  filter: blur(2px);
  animation: ew-curtain 10s ease-in-out infinite alternate;
}
@keyframes ew-figure {
  0% { transform: translateX(0) rotate(0deg) scale(0.98); }
  50% { transform: translateX(-2px) rotate(1deg) scale(1); }
  100% { transform: translateX(0) rotate(-1deg) scale(0.98); }
}
@keyframes ew-lamp {
  0% { opacity: 0.8; transform: translateX(-3px) scaleY(0.95); }
  50% { opacity: 1; transform: translateX(-3px) scaleY(1.05); }
  100% { opacity: 0.85; transform: translateX(-3px) scaleY(0.9); }
}
@keyframes ew-curtain {
  0% { transform: scaleX(1); opacity: 0.9; }
  50% { transform: scaleX(1.02); opacity: 1; }
  100% { transform: scaleX(0.98); opacity: 0.85; }
}

/* garden-walk - calm sunlit */
.scn-garden-walk {
  background:
    linear-gradient(180deg, #87CEEB 0%, #b0d4e8 30%, #f5e6c8 70%, #c8b28b 100%),
    radial-gradient(ellipse at 50% 0%, #ffeaa7 0%, transparent 50%);
}
.scn-garden-walk .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #87CEEB 0%, #c8e6ff 60%); animation: gw-sky 12s ease-in-out infinite alternate; }
.scn-garden-walk .sun { position:absolute; top:8%; left:55%; width:60px; height:60px; border-radius:50%; background: radial-gradient(circle, #fff7b0 0%, #ffe066 40%, transparent 70%); box-shadow: 0 0 80px 40px #ffe066; animation: gw-sun 20s linear infinite; }
.scn-garden-walk .path { position:absolute; bottom:18%; left:20%; right:20%; height:12%; background: linear-gradient(90deg, #c8a96a 0%, #d4b87a 30%, #c8a96a 70%, #b8995a 100%); border-radius: 30% 70% 50% 50% / 50% 50% 50% 50%; transform: perspective(400px) rotateX(60deg); animation: gw-path 8s ease-in-out infinite alternate; }
.scn-garden-walk .cypress { position:absolute; bottom:35%; width:20px; height:90px; background: linear-gradient(180deg, #2d5a1e 0%, #1a3d0e 100%); border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%; transform-origin: bottom center; }
.scn-garden-walk .cypress.left  { left:22%; animation: gw-tree-l 6s ease-in-out infinite; }
.scn-garden-walk .cypress.right { right:22%; animation: gw-tree-r 6s ease-in-out infinite reverse; }
.scn-garden-walk .foliage { position:absolute; bottom:42%; left:10%; right:10%; height:20%; background: linear-gradient(180deg, #3d7a2a 0%, #2d5a1e 100%); border-radius: 60% 40% 50% 50% / 80% 70% 30% 20%; filter: blur(2px); animation: gw-foliage 15s ease-in-out infinite alternate; }
.scn-garden-walk .dapple { position:absolute; top:30%; left:25%; width:50px; height:40px; background: radial-gradient(circle, rgba(255,240,100,0.3) 0%, transparent 70%); border-radius:50%; filter: blur(8px); animation: gw-dapple 10s ease-in-out infinite alternate; }
@keyframes gw-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes gw-sun { 0% { transform: translateX(-20px) translateY(0) } 25% { transform: translateX(-10px) translateY(-5px) } 50% { transform: translateX(0) translateY(0) } 75% { transform: translateX(10px) translateY(-3px) } 100% { transform: translateX(20px) translateY(0) } }
@keyframes gw-path { 0% { transform: perspective(400px) rotateX(60deg) translateX(0) } 50% { transform: perspective(400px) rotateX(62deg) translateX(5px) } 100% { transform: perspective(400px) rotateX(60deg) translateX(0) } }
@keyframes gw-tree-l { 0% { transform: rotate(0deg) scaleY(1) } 50% { transform: rotate(2deg) scaleY(1.02) } 100% { transform: rotate(0deg) scaleY(1) } }
@keyframes gw-tree-r { 0% { transform: rotate(0deg) scaleY(1) } 50% { transform: rotate(-2deg) scaleY(1.02) } 100% { transform: rotate(0deg) scaleY(1) } }
@keyframes gw-foliage { 0% { transform: translateY(0) scaleX(1) } 50% { transform: translateY(-4px) scaleX(1.02) } 100% { transform: translateY(0) scaleX(1) } }
@keyframes gw-dapple { 0% { opacity:0.3; transform: translate(0,0) } 50% { opacity:0.6; transform: translate(10px,-5px) } 100% { opacity:0.3; transform: translate(0,0) } }

/* garden-vistas - calm sunlit, distant landscape */
.scn-garden-vistas {
  background:
    linear-gradient(180deg, #87CEEB 0%, #b0d4e8 40%, #e4d5b0 60%, #c8b28b 100%),
    radial-gradient(ellipse at 50% 100%, #e4d5b0 0%, transparent 60%);
}
.scn-garden-vistas .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #87CEEB 0%, #c8e6ff 100%); animation: gv-sky 15s ease-in-out infinite alternate; }
.scn-garden-vistas .mountains { position:absolute; bottom:30%; left:0; right:0; height:25%; background: linear-gradient(180deg, #6b7b8a 0%, #4a5b6a 100%); border-radius: 50% 40% 0 0 / 80% 70% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.3); animation: gv-mountains 20s ease-in-out infinite alternate; }
.scn-garden-vistas .foreground { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #3d7a2a 0%, #2d5a1e 100%); border-radius: 30% 70% 0 0 / 60% 40% 0 0; animation: gv-foreground 18s ease-in-out infinite alternate; }
.scn-garden-vistas .tree { position:absolute; bottom:25%; width:20px; height:80px; background: linear-gradient(180deg, #2d5a1e 0%, #1a3d0e 100%); border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%; transform-origin: bottom center; }
.scn-garden-vistas .tree.left  { left:10%; animation: gv-tree-l 7s ease-in-out infinite; }
.scn-garden-vistas .tree.right { right:10%; animation: gv-tree-r 7s ease-in-out infinite reverse; }
.scn-garden-vistas .vista-glow { position:absolute; top:25%; left:40%; width:150px; height:100px; background: radial-gradient(circle, rgba(255,240,150,0.3) 0%, transparent 70%); border-radius:50%; filter: blur(15px); animation: gv-glow 12s ease-in-out infinite alternate; }
@keyframes gv-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes gv-mountains { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes gv-foreground { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-2px) scaleY(1.01) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes gv-tree-l { 0% { transform: rotate(0deg) scaleY(1) } 50% { transform: rotate(3deg) scaleY(1.02) } 100% { transform: rotate(0deg) scaleY(1) } }
@keyframes gv-tree-r { 0% { transform: rotate(0deg) scaleY(1) } 50% { transform: rotate(-3deg) scaleY(1.02) } 100% { transform: rotate(0deg) scaleY(1) } }
@keyframes gv-glow { 0% { opacity:0.4; transform: scale(1) } 50% { opacity:0.8; transform: scale(1.1) } 100% { opacity:0.4; transform: scale(1) } }

/* garden-change-of-view - calm sunlit, architecture */
.scn-garden-change-of-view {
  background:
    linear-gradient(180deg, #f5d6a0 0%, #e4c78a 30%, #c8a96a 70%, #a88b4a 100%),
    radial-gradient(ellipse at 50% 0%, #ffeaa7 0%, transparent 50%);
}
.scn-garden-change-of-view .sky { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #ffd27f 0%, #f5e6c8 100%); animation: gcv-sky 10s ease-in-out infinite alternate; }
.scn-garden-change-of-view .sunrise { position:absolute; top:10%; left:50%; width:70px; height:70px; border-radius:50%; background: radial-gradient(circle, #fff7b0 0%, #ffcc33 40%, transparent 70%); box-shadow: 0 0 100px 50px #ffcc33; animation: gcv-sunrise 15s linear infinite; }
.scn-garden-change-of-view .villa { position:absolute; bottom:20%; left:30%; right:20%; height:50%; background: linear-gradient(180deg, #d4b87a 0%, #c8a96a 100%); border-radius: 5% 5% 0 0; box-shadow: 0 -10px 30px rgba(0,0,0,0.3); animation: gcv-villa 8s ease-in-out infinite alternate; }
.scn-garden-change-of-view .roof { position:absolute; bottom:65%; left:28%; right:18%; height:15%; background: linear-gradient(180deg, #a08050 0%, #806040 100%); border-radius: 10% 10% 0 0; transform: perspective(300px) rotateX(20deg); animation: gcv-roof 10s ease-in-out infinite alternate; }
.scn-garden-change-of-view .window { position:absolute; bottom:40%; left:40%; width:20px; height:30px; background: radial-gradient(circle, #f5d6a0 0%, #c8a96a 100%); border-radius: 5px; box-shadow: 0 0 20px 5px rgba(200,169,106,0.5); animation: gcv-window 4s ease-in-out infinite alternate; }
.scn-garden-change-of-view .column { position:absolute; bottom:20%; left:32%; width:8px; height:40%; background: linear-gradient(180deg, #d4b87a 0%, #b8995a 100%); border-radius: 2px; box-shadow: 0 0 5px rgba(0,0,0,0.2); animation: gcv-column 6s ease-in-out infinite; }
.scn-garden-change-of-view .shadow { position:absolute; bottom:18%; left:25%; right:30%; height:5%; background: linear-gradient(90deg, rgba(0,0,0,0.1) 0%, rgba(0,0,0,0.3) 50%, transparent 100%); border-radius: 50%; filter: blur(5px); animation: gcv-shadow 12s ease-in-out infinite alternate; }
.scn-garden-change-of-view .garden-wall { position:absolute; bottom:15%; left:5%; right:5%; height:10%; background: linear-gradient(180deg, #a08868 0%, #806850 100%); border-radius: 0 0 10% 10%; animation: gcv-wall 14s ease-in-out infinite alternate; }
@keyframes gcv-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes gcv-sunrise { 0% { transform: translateX(-30px) translateY(-5px) } 25% { transform: translateX(-15px) translateY(0) } 50% { transform: translateX(0) translateY(-5px) } 75% { transform: translateX(15px) translateY(0) } 100% { transform: translateX(30px) translateY(-5px) } }
@keyframes gcv-villa { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-2px) scaleY(1.005) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes gcv-roof { 0% { transform: perspective(300px) rotateX(20deg) translateY(0) } 50% { transform: perspective(300px) rotateX(22deg) translateY(-2px) } 100% { transform: perspective(300px) rotateX(20deg) translateY(0) } }
@keyframes gcv-window { 0% { box-shadow: 0 0 20px 5px rgba(200,169,106,0.5); opacity:0.9 } 50% { box-shadow: 0 0 40px 10px rgba(255,210,127,0.8); opacity:1 } 100% { box-shadow: 0 0 20px 5px rgba(200,169,106,0.5); opacity:0.9 } }
@keyframes gcv-column { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.01) } 100% { transform: scaleY(1) } }
@keyframes gcv-shadow { 0% { opacity:0.3; transform: translateX(0) } 50% { opacity:0.6; transform: translateX(10px) } 100% { opacity:0.3; transform: translateX(0) } }
@keyframes gcv-wall { 0% { transform: translateY(0) } 50% { transform: translateY(1px) } 100% { transform: translateY(0) } }

/* quesnel-refuses-appeal - tense dim-interior */
.scn-quesnel-refuses-appeal {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #2c2244 40%, #3a2a2a 100%),
    radial-gradient(ellipse at 50% 100%, #4a3a3a 0%, transparent 70%);
}
.scn-quesnel-refuses-appeal .wall { position:absolute; inset:0; background: linear-gradient(180deg, #1e1e30 0%, #2a2a40 100%); animation: qra-wall 20s ease-in-out infinite alternate; }
.scn-quesnel-refuses-appeal .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); animation: qra-floor 15s ease-in-out infinite alternate; }
.scn-quesnel-refuses-appeal .desk { position:absolute; bottom:18%; left:25%; right:25%; height:12%; background: linear-gradient(90deg, #4a3a2a 0%, #5a4a3a 50%, #4a3a2a 100%); border-radius: 5% 5% 20% 20%; box-shadow: 0 -5px 20px rgba(0,0,0,0.8); animation: qra-desk 8s ease-in-out infinite; }
.scn-quesnel-refuses-appeal .figure { position:absolute; bottom:22%; left:30%; width:30px; height:60px; background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2e 100%); border-radius: 50% 40% 30% 30% / 60% 50% 30% 30%; transform-origin: bottom center; animation: qra-figure 5s ease-in-out infinite; }
.scn-quesnel-refuses-appeal .candle { position:absolute; bottom:28%; left:50%; width:4px; height:15px; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius: 2px; animation: qra-candle 7s ease-in-out infinite alternative; }
.scn-quesnel-refuses-appeal .glow { position:absolute; bottom:30%; left:47%; width:30px; height:30px; border-radius:50%; background: radial-gradient(circle, #ffd060 0%, #c08040 40%, transparent 70%); box-shadow: 0 0 40px 20px rgba(192,128,64,0.6); animation: qra-glow 3s ease-in-out infinite alternate; }
.scn-quesnel-refuses-appeal .shadow { position:absolute; bottom:18%; left:40%; right:15%; height:10%; background: linear-gradient(90deg, transparent 0%, rgba(0,0,0,0.5) 50%, transparent 100%); filter: blur(8px); animation: qra-shadow 12s ease-in-out infinite alternate; }
@keyframes qra-wall { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes qra-floor { 0% { opacity:0.6 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes qra-desk { 0% { transform: translateY(0) } 25% { transform: translateY(-2px) } 50% { transform: translateY(0) } 75% { transform: translateY(2px) } 100% { transform: translateY(0) } }
@keyframes qra-figure { 0% { transform: rotate(0deg) scaleY(1) } 25% { transform: rotate(-2deg) scaleY(0.98) } 50% { transform: rotate(0deg) scaleY(1) } 75% { transform: rotate(2deg) scaleY(1.02) } 100% { transform: rotate(0deg) scaleY(1) } }
@keyframes qra-candle { 0% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-1px) rotate(2deg) } 100% { transform: translateY(0) rotate(-2deg) } }
@keyframes qra-glow { 0% { opacity:0.6; box-shadow: 0 0 30px 15px rgba(192,128,64,0.5) } 50% { opacity:1; box-shadow: 0 0 60px 30px rgba(255,208,96,0.7) } 100% { opacity:0.6; box-shadow: 0 0 30px 15px rgba(192,128,64,0.5) } }
@keyframes qra-shadow { 0% { opacity:0.3; transform: scaleX(1) } 50% { opacity:0.7; transform: scaleX(1.2) } 100% { opacity:0.3; transform: scaleX(1) } }

.scn-aunt-ambition-wins {
  background: linear-gradient(180deg, #1b1b2e 0%, #2c2040 60%, #3a2848 100%),
              radial-gradient(ellipse at 50% 80%, #4a3a5a 0%, transparent 70%);
}
.scn-aunt-ambition-wins .wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #2a1e3e 0%, #1e1630 100%);
  animation: aw-wall 20s ease-in-out infinite alternate;
}
.scn-aunt-ambition-wins .window {
  position: absolute; top: 12%; left: 60%; width: 80px; height: 120px;
  background: linear-gradient(180deg, #1a2540 0%, #0f1a30 100%);
  border-radius: 4px; box-shadow: inset 0 0 20px rgba(10,15,30,.6);
  animation: aw-window 15s ease-in-out infinite;
}
.scn-aunt-ambition-wins .desk {
  position: absolute; bottom: 22%; left: 50%; transform: translateX(-50%);
  width: 120px; height: 40px;
  background: linear-gradient(180deg, #432c1a 0%, #2e1d10 100%);
  border-radius: 4px; box-shadow: 0 6px 12px rgba(0,0,0,.5);
  animation: aw-desk 8s ease-in-out infinite;
}
.scn-aunt-ambition-wins .chair {
  position: absolute; bottom: 24%; left: 46%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #351f14 0%, #1f0f08 100%);
  border-radius: 20% 20% 10% 10%; box-shadow: 0 4px 8px rgba(0,0,0,.4);
  animation: aw-chair 6s ease-in-out infinite;
}
.scn-aunt-ambition-wins .aunt-figure {
  position: absolute; bottom: 26%; left: 44%; width: 28px; height: 70px;
  background: linear-gradient(180deg, #2b1a1a 0%, #120a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: aw-aunt 5s ease-in-out infinite;
}
.scn-aunt-ambition-wins .emily-shadow {
  position: absolute; bottom: 24%; left: 28%; width: 22px; height: 55px;
  background: linear-gradient(180deg, #1e1428 0%, #0c0818 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 35% 35%; opacity: 0.7;
  animation: aw-emily 7s ease-in-out infinite;
}
.scn-aunt-ambition-wins .candle-glow {
  position: absolute; bottom: 28%; left: 52%; width: 40px; height: 40px;
  background: radial-gradient(circle, #e8c070 0%, #b8863a 40%, transparent 70%);
  border-radius: 50%; filter: blur(6px);
  animation: aw-candle 3s ease-in-out infinite alternate;
}
@keyframes aw-wall { 0% { opacity:0.8 } 50% { opacity:0.95 } 100% { opacity:0.85 } }
@keyframes aw-window { 0% { box-shadow:inset 0 0 20px rgba(10,15,30,.6) } 50% { box-shadow:inset 0 0 30px rgba(20,30,50,.8) } 100% { box-shadow:inset 0 0 15px rgba(10,15,30,.5) } }
@keyframes aw-desk { 0%,100% { transform:translateX(-50%) } 50% { transform:translateX(-50%) translateY(-1px) } }
@keyframes aw-chair { 0% { transform:translateY(0) } 50% { transform:translateY(-2px) } 100% { transform:translateY(0) } }
@keyframes aw-aunt { 0% { transform:translateX(0) rotate(-1deg) } 50% { transform:translateX(2px) rotate(1deg) } 100% { transform:translateX(-1px) rotate(-1deg) } }
@keyframes aw-emily { 0% { opacity:0.6; transform:translateX(0) } 50% { opacity:0.8; transform:translateX(3px) } 100% { opacity:0.65; transform:translateX(-1px) } }
@keyframes aw-candle { 0% { transform:scale(1); opacity:0.85 } 50% { transform:scale(1.15); opacity:1 } 100% { transform:scale(1.05); opacity:0.9 } }

.scn-emily-considers-resistance {
  background: linear-gradient(180deg, #1e1c2a 0%, #282040 50%, #3a2c50 100%),
              radial-gradient(ellipse at 60% 70%, #4a3a5e 0%, transparent 70%);
}
.scn-emily-considers-resistance .wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #2a2240 0%, #1c1630 100%);
  animation: er-wall 18s ease-in-out infinite alternate;
}
.scn-emily-considers-resistance .barred-window {
  position: absolute; top: 10%; left: 20%; width: 70px; height: 100px;
  background: linear-gradient(180deg, #1a1a30 0%, #0e0e20 100%);
  border-radius: 2px; box-shadow: inset 0 0 10px rgba(0,0,0,.7);
  animation: er-window 14s ease-in-out infinite;
}
.scn-emily-considers-resistance .writing-desk {
  position: absolute; bottom: 20%; left: 40%; width: 100px; height: 35px;
  background: linear-gradient(180deg, #4a3018 0%, #2e1c0c 100%);
  border-radius: 4px; box-shadow: 0 6px 10px rgba(0,0,0,.6);
  animation: er-desk 9s ease-in-out infinite;
}
.scn-emily-considers-resistance .chair {
  position: absolute; bottom: 22%; left: 38%; width: 36px; height: 55px;
  background: linear-gradient(180deg, #3a2412 0%, #1e1008 100%);
  border-radius: 15% 15% 8% 8%; box-shadow: 0 4px 8px rgba(0,0,0,.5);
  animation: er-chair 7s ease-in-out infinite;
}
.scn-emily-considers-resistance .emily-figure {
  position: absolute; bottom: 24%; left: 37%; width: 24px; height: 60px;
  background: linear-gradient(180deg, #1e1628 0%, #0c0818 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: er-emily 5s ease-in-out infinite alternate;
}
.scn-emily-considers-resistance .candle {
  position: absolute; bottom: 30%; left: 43%; width: 10px; height: 20px;
  background: linear-gradient(180deg, #e8d080 0%, #b89040 100%);
  border-radius: 20% 20% 10% 10%; box-shadow: 0 0 20px 10px rgba(200,160,80,.4);
  animation: er-candle 3s ease-in-out infinite;
}
.scn-emily-considers-resistance .paper {
  position: absolute; bottom: 22%; left: 43%; width: 50px; height: 30px;
  background: linear-gradient(180deg, #f5e6c0 0%, #d4c09a 100%);
  border-radius: 2px; transform: rotate(-5deg);
  animation: er-paper 8s ease-in-out infinite;
}
@keyframes er-wall { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes er-window { 0% { box-shadow:inset 0 0 10px rgba(0,0,0,.7) } 50% { box-shadow:inset 0 0 20px rgba(0,0,0,.9) } 100% { box-shadow:inset 0 0 12px rgba(0,0,0,.6) } }
@keyframes er-desk { 0%,100% { transform:translateY(0) } 50% { transform:translateY(-2px) } }
@keyframes er-chair { 0% { transform:translateY(0) } 50% { transform:translateY(-3px) } 100% { transform:translateY(0) } }
@keyframes er-emily { 0% { transform:translateX(0) rotate(-1deg) } 50% { transform:translateX(1px) rotate(1deg) } 100% { transform:translateX(-1px) rotate(-2deg) } }
@keyframes er-candle { 0% { opacity:0.9; transform:scaleY(1) } 50% { opacity:1; transform:scaleY(1.1) } 100% { opacity:0.85; transform:scaleY(0.95) } }
@keyframes er-paper { 0% { transform:rotate(-5deg) translateY(0) } 50% { transform:rotate(-4deg) translateY(-1px) } 100% { transform:rotate(-6deg) translateY(0) } }

.scn-orsino-visits-renewed {
  background: linear-gradient(180deg, #0f0f1a 0%, #1a1430 50%, #2a1e3e 100%),
              radial-gradient(ellipse at 40% 70%, #3a2a4e 0%, transparent 70%);
}
.scn-orsino-visits-renewed .dark-hall {
  position: absolute; inset: 0 0 15% 0;
  background: linear-gradient(180deg, #14142a 0%, #0c0c1e 100%);
  animation: ov-hall 25s ease-in-out infinite alternate;
}
.scn-orsino-visits-renewed .table {
  position: absolute; bottom: 20%; left: 30%; width: 140px; height: 20px;
  background: linear-gradient(180deg, #2a1a0e 0%, #1a0e06 100%);
  border-radius: 10px; box-shadow: 0 4px 10px rgba(0,0,0,.7);
  animation: ov-table 12s ease-in-out infinite;
}
.scn-orsino-visits-renewed .orsino-figure {
  position: absolute; bottom: 22%; left: 28%; width: 30px; height: 75px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a18 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ov-orsino 4s ease-in-out infinite;
}
.scn-orsino-visits-renewed .montoni-figure {
  position: absolute; bottom: 22%; left: 48%; width: 32px; height: 78px;
  background: linear-gradient(180deg, #1e1e30 0%, #0e0e20 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ov-montoni 5s ease-in-out infinite alternate;
}
.scn-orsino-visits-renewed .council-candle {
  position: absolute; bottom: 28%; left: 38%; width: 14px; height: 24px;
  background: linear-gradient(180deg, #e8c470 0%, #b88a3a 100%);
  border-radius: 20% 20% 10% 10%; box-shadow: 0 0 30px 12px rgba(200,160,60,.5);
  animation: ov-candle 3s ease-in-out infinite;
}
.scn-orsino-visits-renewed .shadow-pool {
  position: absolute; bottom: 15%; left: 20%; width: 60%; height: 30%;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,.6) 0%, transparent 80%);
  filter: blur(8px); animation: ov-shadow 10s ease-in-out infinite alternate;
}
@keyframes ov-hall { 0% { opacity:0.7 } 50% { opacity:0.9 } 100% { opacity:0.75 } }
@keyframes ov-table { 0%,100% { transform:translateY(0) } 50% { transform:translateY(-1px) } }
@keyframes ov-orsino { 0% { transform:translateX(0) rotate(-2deg) } 30% { transform:translateX(2px) rotate(1deg) } 60% { transform:translateX(-1px) rotate(-1deg) } 100% { transform:translateX(0) rotate(2deg) } }
@keyframes ov-montoni { 0% { transform:translateX(0) rotate(0deg) } 50% { transform:translateX(3px) rotate(2deg) } 100% { transform:translateX(0) rotate(0deg) } }
@keyframes ov-candle { 0% { transform:scaleY(1); opacity:0.85 } 50% { transform:scaleY(1.15); opacity:1 } 100% { transform:scaleY(0.95); opacity:0.8 } }
@keyframes ov-shadow { 0% { opacity:0.5 } 50% { opacity:0.7 } 100% { opacity:0.4 } }

.scn-orsino-murder-discovered {
  background: linear-gradient(180deg, #0a0a14 0%, #120e24 50%, #1e1830 100%),
              radial-gradient(ellipse at 30% 60%, #2a1e3a 0%, transparent 70%);
}
.scn-orsino-murder-discovered .chamber-wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #121022 0%, #080614 100%);
  animation: om-wall 22s ease-in-out infinite alternate;
}
.scn-orsino-murder-discovered .door {
  position: absolute; top: 10%; left: 50%; transform: translateX(-50%);
  width: 60px; height: 100px;
  background: linear-gradient(180deg, #2a1a0c 0%, #1a0e04 100%);
  border-radius: 4px; box-shadow: inset 0 0 10px rgba(0,0,0,.5);
  animation: om-door 15s ease-in-out infinite;
}
.scn-orsino-murder-discovered .servant-figure {
  position: absolute; bottom: 24%; left: 40%; width: 26px; height: 65px;
  background: linear-gradient(180deg, #1a1428 0%, #0a0818 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: om-servant 3s ease-in-out infinite;
}
.scn-orsino-murder-discovered .orsino-agitated {
  position: absolute; bottom: 22%; left: 22%; width: 30px; height: 72px;
  background: linear-gradient(180deg, #22223a 0%, #101018 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: om-orsino 2s ease-in-out infinite;
}
.scn-orsino-murder-discovered .dropped-candelabra {
  position: absolute; bottom: 15%; left: 35%; width: 18px; height: 50px;
  background: linear-gradient(180deg, #4a3018 0%, #2e1c0c 100%);
  border-radius: 10% 10% 30% 30%; transform: rotate(30deg);
  animation: om-candelabra 4s ease-in-out infinite;
}
.scn-orsino-murder-discovered .candle-flame {
  position: absolute; bottom: 55%; left: 36%; width: 20px; height: 20px;
  background: radial-gradient(circle, #e8c870 0%, #c89030 50%, transparent 70%);
  border-radius: 50%; filter: blur(3px);
  animation: om-flame 0.8s ease-in-out infinite alternate;
}
.scn-orsino-murder-discovered .spilled-wax {
  position: absolute; bottom: 18%; left: 33%; width: 40px; height: 8px;
  background: linear-gradient(180deg, #f0dbb0 0%, #c8a870 100%);
  border-radius: 50% 50% 30% 30%; opacity: 0.6;
  animation: om-wax 6s ease-in-out infinite;
}
@keyframes om-wall { 0% { opacity:0.7 } 50% { opacity:0.9 } 100% { opacity:0.75 } }
@keyframes om-door { 0%,100% { transform:translateX(-50%) scaleX(1) } 50% { transform:translateX(-50%) scaleX(0.02) } }
@keyframes om-servant { 0% { transform:translateX(0) rotate(0deg) } 30% { transform:translateX(3px) rotate(1deg) } 60% { transform:translateX(-2px) rotate(-1deg) } 100% { transform:translateX(0) rotate(0deg) } }
@keyframes om-orsino { 0% { transform:translateX(0) rotate(-2deg) } 50% { transform:translateX(4px) rotate(3deg) } 100% { transform:translateX(0) rotate(-1deg) } }
@keyframes om-candelabra { 0% { transform:rotate(30deg) } 50% { transform:rotate(35deg) } 100% { transform:rotate(28deg) } }
@keyframes om-flame { 0% { transform:scale(0.9); opacity:0.8 } 100% { transform:scale(1.2); opacity:1 } }
@keyframes om-wax { 0% { opacity:0.4 } 50% { opacity:0.6 } 100% { opacity:0.3 } }

.scn-ludovico-admitted {
  background: 
    radial-gradient(ellipse at 60% 50%, #3a2510 0%, #1a0f05 70%),
    linear-gradient(180deg, #2a1a08 0%, #1a0a02 100%);
}
.scn-ludovico-admitted .wall { position:absolute; left:0; top:0; bottom:0; width:25%; background: linear-gradient(90deg, #2a1a08, #3a2510); }
.scn-ludovico-admitted .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #2a1a08, #1a0a02); }
.scn-ludovico-admitted .door { position:absolute; left:40%; bottom:20%; width:70px; height:110px; background: linear-gradient(180deg, #4a3a28, #2a1a08); border-radius: 4px 4px 2px 2px; box-shadow: inset 0 0 20px rgba(0,0,0,.8); }
.scn-ludovico-admitted .crack-light { position:absolute; left:44%; bottom:35%; width:4px; height:40px; background: radial-gradient(ellipse, #ffd080, #c08040 30%, transparent 70%); transform: skewX(-5deg); animation: la-glow 2s ease-in-out infinite alternate; }
.scn-ludovico-admitted .guard { position:absolute; right:30%; bottom:20%; width:30px; height:80px; background: #1a0a02; border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform: scaleX(-1); animation: la-guard 5s ease-in-out infinite; }
.scn-ludovico-admitted .figure { position:absolute; left:38%; bottom:23%; width:24px; height:60px; background: #1a0a02; border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; animation: la-step 4s ease-in-out infinite; }
.scn-ludovico-admitted .shadow { position:absolute; left:35%; bottom:20%; width:80px; height:20px; background: radial-gradient(ellipse, rgba(0,0,0,.6) 0%, transparent 80%); filter: blur(6px); }
@keyframes la-glow { 0% { opacity:.6; box-shadow: 0 0 4px #c08040; } 50% { opacity:1; box-shadow: 0 0 12px #ffd080, 0 0 24px #c08040; } 100% { opacity:.7; box-shadow: 0 0 6px #c08040; } }
@keyframes la-guard { 0% { transform: scaleX(-1) translateX(0); } 50% { transform: scaleX(-1) translateX(3px) rotate(1deg); } 100% { transform: scaleX(-1) translateX(0); } }
@keyframes la-step { 0% { transform: translateY(0) rotate(0); } 25% { transform: translateY(-2px) rotate(-2deg); } 50% { transform: translateY(0) rotate(0); } 75% { transform: translateY(-1px) rotate(2deg); } 100% { transform: translateY(0) rotate(0); } }

.scn-message-and-portrait {
  background: 
    radial-gradient(ellipse at 40% 60%, #4a2a10 0%, #1a0a02 70%),
    linear-gradient(180deg, #2a1a08, #0a0500);
}
.scn-message-and-portrait .bg-wall { position:absolute; inset:0; background: linear-gradient(180deg, #1a0a02, #2a1a08); }
.scn-message-and-portrait .table { position:absolute; bottom:20%; left:30%; width:100px; height:12px; background: linear-gradient(180deg, #3a2510, #2a1a08); border-radius: 2px; box-shadow: 0 2px 8px rgba(0,0,0,.5); }
.scn-message-and-portrait .candle { position:absolute; bottom:32%; left:32%; width:8px; height:20px; background: linear-gradient(180deg, #d0a060, #8a6020); border-radius: 2px 2px 1px 1px; box-shadow: 0 0 16px 4px #ffb060; animation: mp-flicker 1.5s ease-in-out infinite alternate; }
.scn-message-and-portrait .emily { position:absolute; left:20%; bottom:25%; width:30px; height:70px; background: #1a0a02; border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform: rotate(5deg); animation: mp-sway 6s ease-in-out infinite; }
.scn-message-and-portrait .annette { position:absolute; right:25%; bottom:25%; width:28px; height:68px; background: #1a0a02; border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform: rotate(-3deg); animation: mp-sway 7s ease-in-out infinite 1s; }
.scn-message-and-portrait .ludovico { position:absolute; left:45%; bottom:25%; width:32px; height:72px; background: #1a0a02; border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform: rotate(2deg); animation: mp-step 4s ease-in-out infinite; }
.scn-message-and-portrait .portrait { position:absolute; left:48%; bottom:50%; width:20px; height:28px; background: linear-gradient(180deg, #c09050, #a07030); border-radius: 2px; box-shadow: 0 2px 8px rgba(0,0,0,.4); animation: mp-lift 6s ease-in-out infinite; }
.scn-message-and-portrait .glow { position:absolute; left:45%; bottom:30%; width:40px; height:50px; background: radial-gradient(ellipse, rgba(255,180,80,.4) 0%, transparent 70%); }
@keyframes mp-flicker { 0% { opacity:.8; box-shadow: 0 0 12px 2px #ffb060; } 50% { opacity:1; box-shadow: 0 0 20px 4px #ffb060, 0 0 30px 6px #d08030; } 100% { opacity:.75; box-shadow: 0 0 14px 3px #ffb060; } }
@keyframes mp-sway { 0% { transform: rotate(5deg) translateX(0); } 50% { transform: rotate(3deg) translateX(2px); } 100% { transform: rotate(5deg) translateX(0); } }
@keyframes mp-step { 0% { transform: rotate(2deg) translateY(0); } 25% { transform: rotate(0deg) translateY(-1px) scaleY(1.01); } 50% { transform: rotate(2deg) translateY(0); } 75% { transform: rotate(4deg) translateY(-1px) scaleY(1.01); } 100% { transform: rotate(2deg) translateY(0); } }
@keyframes mp-lift { 0% { transform: translateY(0); } 30% { transform: translateY(-3px) scale(1.05); } 50% { transform: translateY(-2px); } 70% { transform: translateY(-3px) scale(1.05); } 100% { transform: translateY(0); } }

.scn-portrait-returned {
  background: 
    radial-gradient(ellipse at 50% 60%, #3a2010 0%, #1a0a02 70%),
    linear-gradient(180deg, #2a1a08, #0a0500);
}
.scn-portrait-returned .bg-wall { position:absolute; inset:0; background: linear-gradient(180deg, #1a0a02, #2a1a08); }
.scn-portrait-returned .light { position:absolute; left:30%; top:20%; width:60px; height:60px; background: radial-gradient(ellipse, #ffb060, #c08040 40%, transparent 70%); animation: pr-glow 3s ease-in-out infinite alternate; }
.scn-portrait-returned .hand-left { position:absolute; left:40%; bottom:40%; width:40px; height:50px; background: #2a1a08; border-radius: 50% 40% 40% 50% / 60% 50% 50% 60%; transform: rotate(-20deg); animation: pr-hand 4s ease-in-out infinite; }
.scn-portrait-returned .hand-right { position:absolute; left:55%; bottom:40%; width:40px; height:50px; background: #2a1a08; border-radius: 40% 50% 50% 40% / 50% 60% 60% 50%; transform: rotate(15deg); animation: pr-hand 4s ease-in-out infinite 1s; }
.scn-portrait-returned .pocket { position:absolute; right:25%; bottom:45%; width:20px; height:30px; background: #1a0a02; border: 2px solid #3a2510; border-radius: 4px; }
.scn-portrait-returned .portrait { position:absolute; left:48%; bottom:48%; width:18px; height:24px; background: linear-gradient(180deg, #c09050, #a07030); border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,.5); animation: pr-appear 6s ease-in-out infinite; }
.scn-portrait-returned .shadow { position:absolute; bottom:35%; left:30%; width:120px; height:20px; background: radial-gradient(ellipse, rgba(0,0,0,.7) 0%, transparent 80%); filter: blur(8px); }
@keyframes pr-glow { 0% { opacity:.7; transform: scale(1); } 50% { opacity:1; transform: scale(1.1); } 100% { opacity:.8; transform: scale(1.05); } }
@keyframes pr-hand { 0% { transform: rotate(-20deg) translateY(0); } 25% { transform: rotate(-15deg) translateY(-2px); } 50% { transform: rotate(-20deg) translateY(0); } 75% { transform: rotate(-25deg) translateY(-1px); } 100% { transform: rotate(-20deg) translateY(0); } }
@keyframes pr-appear { 0% { opacity:0; transform: translateY(10px) scale(0.8); } 30% { opacity:1; transform: translateY(0) scale(1); } 70% { opacity:1; } 100% { opacity:0; transform: translateY(-5px) scale(1); } }

.scn-interview-arranged {
  background: 
    radial-gradient(ellipse at 30% 50%, #3a2510 0%, #1a0f05 70%),
    linear-gradient(180deg, #2a1a08, #0a0500);
}
.scn-interview-arranged .wall-left { position:absolute; left:0; top:0; bottom:0; width:20%; background: linear-gradient(90deg, #1a0a02, #2a1a08); }
.scn-interview-arranged .wall-right { position:absolute; right:0; top:0; bottom:0; width:20%; background: linear-gradient(270deg, #1a0a02, #2a1a08); }
.scn-interview-arranged .floor { position:absolute; bottom:0; left:0; right:0; height:15%; background: linear-gradient(180deg, #2a1a08, #1a0a02); }
.scn-interview-arranged .ludovico { position:absolute; left:30%; bottom:20%; width:28px; height:70px; background: #1a0a02; border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform: rotate(-5deg); animation: ia-sway 6s ease-in-out infinite; }
.scn-interview-arranged .valancourt { position:absolute; right:30%; bottom:20%; width:30px; height:72px; background: #1a0a02; border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform: rotate(5deg); animation: ia-sway 6s ease-in-out infinite 2s; }
.scn-interview-arranged .sentinel { position:absolute; right:15%; bottom:20%; width:26px; height:85px; background: #1a0a02; border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; animation: ia-guard 8s ease-in-out infinite; }
.scn-interview-arranged .window { position:absolute; left:65%; top:10%; width:40px; height:50px; background: radial-gradient(ellipse, #3a2510, #1a0f05); border: 2px solid #2a1a08; border-radius: 4px; }
.scn-interview-arranged .bars { position:absolute; left:65%; top:10%; width:40px; height:50px; background: repeating-linear-gradient(90deg, transparent 0 7px, #1a0a02 7px 9px); border-radius: 4px; animation: ia-bars 10s linear infinite alternate; }
@keyframes ia-sway { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-1px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes ia-guard { 0% { transform: translateY(0); } 30% { transform: translateY(-2px); } 60% { transform: translateY(0); } 100% { transform: translateY(0); } }
@keyframes ia-bars { 0% { opacity:.6; } 50% { opacity:1; } 100% { opacity:.7; } }

.scn-montoni-threatens-force {
  background: 
    linear-gradient(180deg, #1a1410 0%, #2a1e18 30%, #1a1410 70%, #0d0a08 100%),
    radial-gradient(ellipse at 50% 60%, #3a2a20 0%, #1a1410 70%);
}
.scn-montoni-threatens-force .wall {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(135deg, #2a1e18 0%, #1a1410 50%, #3a2a20 100%);
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.6);
  animation: mtf-wall 12s ease-in-out infinite alternate;
}
.scn-montoni-threatens-force .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(0deg, #1a1410 0%, #2a1e18 60%, #3a2a20 100%);
  box-shadow: inset 0 -10px 30px rgba(0,0,0,0.8);
}
.scn-montoni-threatens-force .figure-left {
  position: absolute; bottom: 30%; left: 25%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #2a1e18 0%, #0d0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mtf-fig-l 6s ease-in-out infinite;
}
.scn-montoni-threatens-force .figure-right {
  position: absolute; bottom: 30%; right: 25%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #3a2a20 0%, #1a1410 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mtf-fig-r 8s ease-in-out infinite;
}
.scn-montoni-threatens-force .table {
  position: absolute; bottom: 28%; left: 50%; width: 120px; height: 15px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e18 100%);
  border-radius: 4px;
  box-shadow: 0 8px 20px rgba(0,0,0,0.5);
}
.scn-montoni-threatens-force .candle {
  position: absolute; bottom: 33%; left: 50%; width: 6px; height: 18px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #d4a060 0%, #8a6030 100%);
  border-radius: 2px;
}
.scn-montoni-threatens-force .glow {
  position: absolute; bottom: 30%; left: 50%; width: 120px; height: 120px;
  transform: translate(-50%, 0);
  background: radial-gradient(circle, rgba(200,140,60,0.3) 0%, transparent 70%);
  animation: mtf-glow 4s ease-in-out infinite alternate;
}
.scn-montoni-threatens-force .shadow {
  position: absolute; bottom: 25%; left: 20%; width: 200px; height: 40px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 70%);
  filter: blur(10px);
  animation: mtf-shadow 12s ease-in-out infinite alternate;
}
@keyframes mtf-wall { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes mtf-fig-l { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 50% { transform: translateX(5px) translateY(-2px) rotate(2deg); } 100% { transform: translateX(0) translateY(0) rotate(-2deg); } }
@keyframes mtf-fig-r { 0% { transform: translateX(0) translateY(0) rotate(2deg); } 50% { transform: translateX(-5px) translateY(-2px) rotate(-2deg); } 100% { transform: translateX(0) translateY(0) rotate(2deg); } }
@keyframes mtf-glow { 0% { opacity: 0.5; transform: translate(-50%, 0) scale(0.9); } 50% { opacity: 1; transform: translate(-50%, -2px) scale(1.1); } 100% { opacity: 0.6; transform: translate(-50%, 0) scale(0.95); } }
@keyframes mtf-shadow { 0% { transform: scaleX(1); opacity: 0.3; } 50% { transform: scaleX(1.2); opacity: 0.5; } 100% { transform: scaleX(1); opacity: 0.3; } }

.scn-montoni-claims-will {
  background: 
    linear-gradient(180deg, #1a1410 0%, #2a1e18 40%, #1a1410 80%, #0d0a08 100%),
    radial-gradient(ellipse at 50% 70%, #3a2a20 0%, #1a1410 70%);
}
.scn-montoni-claims-will .wall {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(135deg, #2a1e18 0%, #1a1410 50%, #3a2a20 100%);
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.6);
  animation: mcw-wall 15s ease-in-out infinite alternate;
}
.scn-montoni-claims-will .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(0deg, #1a1410 0%, #2a1e18 60%, #3a2a20 100%);
  box-shadow: inset 0 -10px 30px rgba(0,0,0,0.8);
}
.scn-montoni-claims-will .figure-seated {
  position: absolute; bottom: 30%; left: 35%; width: 28px; height: 60px;
  background: linear-gradient(180deg, #2a1e18 0%, #0d0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mcw-seated 7s ease-in-out infinite;
}
.scn-montoni-claims-will .figure-standing {
  position: absolute; bottom: 30%; right: 25%; width: 38px; height: 80px;
  background: linear-gradient(180deg, #3a2a20 0%, #1a1410 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mcw-standing 9s ease-in-out infinite;
}
.scn-montoni-claims-will .desk {
  position: absolute; bottom: 25%; left: 50%; width: 100px; height: 12px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e18 100%);
  border-radius: 4px;
  box-shadow: 0 6px 15px rgba(0,0,0,0.5);
}
.scn-montoni-claims-will .scroll {
  position: absolute; bottom: 30%; left: 50%; width: 30px; height: 10px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #c8a870 0%, #8a6a40 100%);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: mcw-scroll 5s ease-in-out infinite alternate;
}
.scn-montoni-claims-will .candle {
  position: absolute; bottom: 33%; left: 50%; width: 5px; height: 20px;
  transform: translateX(-50%) translateX(-20px);
  background: linear-gradient(180deg, #d4a060 0%, #8a6030 100%);
  border-radius: 2px;
}
.scn-montoni-claims-will .glow {
  position: absolute; bottom: 30%; left: 50%; width: 100px; height: 100px;
  transform: translate(-50%, 0);
  background: radial-gradient(circle, rgba(200,140,60,0.25) 0%, transparent 70%);
  animation: mcw-glow 4s ease-in-out infinite alternate;
}
@keyframes mcw-wall { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes mcw-seated { 0% { transform: translateX(0) translateY(0) rotate(-1deg); } 50% { transform: translateX(3px) translateY(-1px) rotate(1deg); } 100% { transform: translateX(0) translateY(0) rotate(-1deg); } }
@keyframes mcw-standing { 0% { transform: translateX(0) translateY(0) rotate(2deg); } 50% { transform: translateX(-4px) translateY(-2px) rotate(-2deg); } 100% { transform: translateX(0) translateY(0) rotate(2deg); } }
@keyframes mcw-scroll { 0% { transform: translateX(-50%) rotate(-5deg); } 50% { transform: translateX(-50%) rotate(5deg); } 100% { transform: translateX(-50%) rotate(-5deg); } }
@keyframes mcw-glow { 0% { opacity: 0.4; transform: translate(-50%, 0) scale(0.9); } 50% { opacity: 0.9; transform: translate(-50%, -2px) scale(1.1); } 100% { opacity: 0.5; transform: translate(-50%, 0) scale(0.95); } }

.scn-montoni-warning {
  background: 
    linear-gradient(180deg, #1a1410 0%, #2a1e18 35%, #1a1410 75%, #0d0a08 100%),
    radial-gradient(ellipse at 50% 50%, #3a2a20 0%, #1a1410 70%);
}
.scn-montoni-warning .wall {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(135deg, #2a1e18 0%, #1a1410 50%, #3a2a20 100%);
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.6);
  animation: mw-wall 14s ease-in-out infinite alternate;
}
.scn-montoni-warning .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(0deg, #1a1410 0%, #2a1e18 60%, #3a2a20 100%);
  box-shadow: inset 0 -10px 30px rgba(0,0,0,0.8);
}
.scn-montoni-warning .arch {
  position: absolute; bottom: 35%; left: 50%; width: 160px; height: 80px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 0%, transparent 60%, #1a1410 61%);
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  box-shadow: 0 -10px 30px rgba(0,0,0,0.5);
}
.scn-montoni-warning .figure-left {
  position: absolute; bottom: 30%; left: 30%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #2a1e18 0%, #0d0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mw-fig-l 6.5s ease-in-out infinite;
}
.scn-montoni-warning .figure-right {
  position: absolute; bottom: 30%; right: 28%; width: 40px; height: 85px;
  background: linear-gradient(180deg, #3a2a20 0%, #1a1410 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mw-fig-r 8.5s ease-in-out infinite;
}
.scn-montoni-warning .candle-left {
  position: absolute; bottom: 33%; left: 35%; width: 5px; height: 18px;
  background: linear-gradient(180deg, #d4a060 0%, #8a6030 100%);
  border-radius: 2px;
}
.scn-montoni-warning .candle-right {
  position: absolute; bottom: 33%; right: 32%; width: 5px; height: 18px;
  background: linear-gradient(180deg, #d4a060 0%, #8a6030 100%);
  border-radius: 2px;
}
.scn-montoni-warning .glow {
  position: absolute; bottom: 30%; left: 50%; width: 140px; height: 140px;
  transform: translate(-50%, 0);
  background: radial-gradient(circle, rgba(200,140,60,0.2) 0%, transparent 70%);
  animation: mw-glow 4s ease-in-out infinite alternate;
}
.scn-montoni-warning .shadow {
  position: absolute; bottom: 25%; left: 15%; width: 240px; height: 40px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 70%);
  filter: blur(12px);
  animation: mw-shadow 10s ease-in-out infinite alternate;
}
@keyframes mw-wall { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes mw-fig-l { 0% { transform: translateX(0) translateY(0) rotate(-3deg); } 50% { transform: translateX(4px) translateY(-2px) rotate(3deg); } 100% { transform: translateX(0) translateY(0) rotate(-3deg); } }
@keyframes mw-fig-r { 0% { transform: translateX(0) translateY(0) rotate(3deg); } 50% { transform: translateX(-5px) translateY(-2px) rotate(-3deg); } 100% { transform: translateX(0) translateY(0) rotate(3deg); } }
@keyframes mw-glow { 0% { opacity: 0.4; transform: translate(-50%, 0) scale(0.9); } 50% { opacity: 1; transform: translate(-50%, -2px) scale(1.1); } 100% { opacity: 0.5; transform: translate(-50%, 0) scale(0.95); } }
@keyframes mw-shadow { 0% { transform: scaleX(1); opacity: 0.2; } 50% { transform: scaleX(1.3); opacity: 0.4; } 100% { transform: scaleX(1); opacity: 0.2; } }

.scn-aunt-kindness-brief {
  background: 
    linear-gradient(180deg, #1a1810 0%, #2a2218 40%, #1a1810 75%, #0d0b08 100%),
    radial-gradient(ellipse at 50% 60%, #3a2e20 0%, #1a1810 70%);
}
.scn-aunt-kindness-brief .wall {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(135deg, #2a2218 0%, #1a1810 50%, #3a2e20 100%);
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.5);
  animation: akb-wall 16s ease-in-out infinite alternate;
}
.scn-aunt-kindness-brief .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(0deg, #1a1810 0%, #2a2218 60%, #3a2e20 100%);
  box-shadow: inset 0 -10px 30px rgba(0,0,0,0.7);
}
.scn-aunt-kindness-brief .window {
  position: absolute; bottom: 35%; left: 50%; width: 60px; height: 80px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 30%, #4a5a6a 0%, #1a1810 70%);
  border: 4px solid #2a2218;
  border-radius: 4px;
  box-shadow: 0 0 20px rgba(74,90,106,0.3);
  animation: akb-window 8s ease-in-out infinite alternate;
}
.scn-aunt-kindness-brief .figure-seated {
  position: absolute; bottom: 30%; left: 30%; width: 26px; height: 58px;
  background: linear-gradient(180deg, #2a2218 0%, #0d0b08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: akb-seated 5s ease-in-out infinite;
}
.scn-aunt-kindness-brief .figure-standing {
  position: absolute; bottom: 30%; right: 25%; width: 35px; height: 75px;
  background: linear-gradient(180deg, #3a2e20 0%, #1a1810 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: akb-standing 7s ease-in-out infinite;
}
.scn-aunt-kindness-brief .chair {
  position: absolute; bottom: 25%; left: 25%; width: 50px; height: 30px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e18 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 4px 10px rgba(0,0,0,0.4);
}
.scn-aunt-kindness-brief .candle {
  position: absolute; bottom: 33%; left: 50%; width: 5px; height: 18px;
  transform: translateX(-50%) translateX(30px);
  background: linear-gradient(180deg, #d4a060 0%, #8a6030 100%);
  border-radius: 2px;
}
.scn-aunt-kindness-brief .glow {
  position: absolute; bottom: 30%; left: 50%; width: 100px; height: 100px;
  transform: translate(-50%, 0);
  background: radial-gradient(circle, rgba(200,140,60,0.2) 0%, transparent 70%);
  animation: akb-glow 4.5s ease-in-out infinite alternate;
}
@keyframes akb-wall { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes akb-window { 0% { opacity: 0.3; background: radial-gradient(ellipse at 50% 30%, #4a5a6a 0%, #1a1810 70%); } 50% { opacity: 0.6; background: radial-gradient(ellipse at 50% 30%, #6a7a8a 0%, #1a1810 70%); } 100% { opacity: 0.3; background: radial-gradient(ellipse at 50% 30%, #4a5a6a 0%, #1a1810 70%); } }
@keyframes akb-seated { 0% { transform: translateX(0) translateY(0) rotate(-1deg); } 50% { transform: translateX(2px) translateY(-1px) rotate(1deg); } 100% { transform: translateX(0) translateY(0) rotate(-1deg); } }
@keyframes akb-standing { 0% { transform: translateX(0) translateY(0) rotate(1deg); } 50% { transform: translateX(-3px) translateY(-1px) rotate(-1deg); } 100% { transform: translateX(0) translateY(0) rotate(1deg); } }
@keyframes akb-glow { 0% { opacity: 0.3; transform: translate(-50%, 0) scale(0.9); } 50% { opacity: 0.8; transform: translate(-50%, -2px) scale(1.1); } 100% { opacity: 0.4; transform: translate(-50%, 0) scale(0.95); } }

/* Scene: ludovico’s thoughts */
.scn-ludovico’s-thoughts {
  background: linear-gradient(180deg, #0a0a2e 0%, #1a1a4e 40%, #2a2a5e 100%), radial-gradient(ellipse at 50% 20%, #3a3a6e 0%, transparent 70%);
}
.scn-ludovico’s-thoughts .moon {
  position: absolute; top: 6%; left: 70%; width: 50px; height: 50px;
  background: radial-gradient(circle, #e8e8ff 0%, #b0b0d0 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 10px rgba(200,200,255,0.3);
  animation: li1-moon 12s ease-in-out infinite alternate;
}
.scn-ludovico’s-thoughts .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #0a0a2e 0%, #1a1a4e 60%, transparent 100%);
  animation: li1-sky 20s ease-in-out infinite;
}
.scn-ludovico’s-thoughts .mountains {
  position: absolute; bottom: 25%; left: -5%; right: -5%; height: 30%;
  background: linear-gradient(135deg, #1a2a3a 0%, #2a3a4a 50%, #1a2a3a 100%);
  border-radius: 60% 50% 0 0 / 40% 30% 0 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.4);
  animation: li1-mount 30s ease-in-out infinite alternate;
}
.scn-ludovico’s-thoughts .road {
  position: absolute; bottom: 15%; left: 20%; right: 20%; height: 10%;
  background: linear-gradient(90deg, #2a2a3a 0%, #3a3a4a 50%, #2a2a3a 100%);
  border-radius: 20% 20% 0 0;
  opacity: 0.6;
}
.scn-ludovico’s-thoughts .figure {
  position: absolute; bottom: 22%; left: 30%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: li1-fig 4s ease-in-out infinite;
}
.scn-ludovico’s-thoughts .figure2 {
  position: absolute; bottom: 22%; left: 45%; width: 18px; height: 38px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: li1-fig2 4.5s ease-in-out infinite;
  animation-delay: 1s;
}
.scn-ludovico’s-thoughts .tree {
  position: absolute; bottom: 28%; left: 60%; width: 30px; height: 80px;
  background: linear-gradient(180deg, #1a2a1a 0%, #2a3a2a 50%, #0a1a0a 100%);
  border-radius: 50% 50% 30% 30% / 80% 80% 20% 20%;
  transform-origin: bottom center;
  animation: li1-tree 8s ease-in-out infinite alternate;
}
@keyframes li1-moon { 0% { transform: translateY(0); box-shadow: 0 0 30px 8px rgba(200,200,255,0.2); } 50% { transform: translateY(-5px); box-shadow: 0 0 50px 15px rgba(200,200,255,0.4); } 100% { transform: translateY(0); box-shadow: 0 0 30px 8px rgba(200,200,255,0.2); } }
@keyframes li1-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes li1-mount { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes li1-fig { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(4px) rotate(1deg); } 50% { transform: translateX(0) rotate(-2deg); } 75% { transform: translateX(-4px) rotate(1deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes li1-fig2 { 0% { transform: translateX(0); } 50% { transform: translateX(6px) rotate(2deg); } 100% { transform: translateX(-6px) rotate(-2deg); } }
@keyframes li1-tree { 0% { transform: rotate(-2deg) scale(1); } 50% { transform: rotate(2deg) scale(1.02); } 100% { transform: rotate(-2deg) scale(1); } }

/* Scene: money-worries */
.scn-money-worries {
  background: linear-gradient(180deg, #0c0c24 0%, #1c1c3c 50%, #2c2c4c 100%), radial-gradient(ellipse at 50% 80%, #3c3c5c 0%, transparent 70%);
}
.scn-money-worries .bg-wall {
  position: absolute; inset: 20% 10% 0 10%;
  background: linear-gradient(180deg, #1a1a30 0%, #2a2a40 100%);
  border-radius: 8% 8% 0 0;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.5);
}
.scn-money-worries .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  box-shadow: inset 0 8px 12px rgba(0,0,0,0.6);
}
.scn-money-worries .moonbeam {
  position: absolute; top: 10%; left: 40%; width: 60px; height: 200px;
  background: linear-gradient(180deg, rgba(180,180,255,0.15) 0%, transparent 100%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  animation: mw2-beam 6s ease-in-out infinite alternate;
}
.scn-money-worries .figure-a {
  position: absolute; bottom: 18%; left: 25%; width: 24px; height: 42px;
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mw2-figA 2s ease-in-out infinite;
}
.scn-money-worries .figure-b {
  position: absolute; bottom: 18%; left: 45%; width: 22px; height: 40px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mw2-figB 2.3s ease-in-out infinite;
  animation-delay: 0.5s;
}
.scn-money-worries .purse {
  position: absolute; bottom: 20%; left: 35%; width: 16px; height: 12px;
  background: #5e3a2a;
  border-radius: 40% 40% 50% 50% / 30% 30% 70% 70%;
  box-shadow: 0 0 4px rgba(0,0,0,0.5);
  animation: mw2-purse 4s ease-in-out infinite;
}
.scn-money-worries .shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 8%;
  background: linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,0.4) 100%);
}
@keyframes mw2-beam { 0% { opacity: 0.3; transform: scale(1); } 50% { opacity: 0.7; transform: scale(1.1); } 100% { opacity: 0.3; transform: scale(1); } }
@keyframes mw2-figA { 0% { transform: translateX(0) rotate(-3deg); } 30% { transform: translateX(8px) rotate(2deg); } 60% { transform: translateX(4px) rotate(-1deg); } 100% { transform: translateX(0) rotate(-3deg); } }
@keyframes mw2-figB { 0% { transform: translateX(0) rotate(2deg); } 25% { transform: translateX(-6px) rotate(-2deg); } 50% { transform: translateX(-2px) rotate(1deg); } 100% { transform: translateX(0) rotate(2deg); } }
@keyframes mw2-purse { 0%,100% { transform: translateY(0) scale(1); } 25% { transform: translateY(-2px) scale(1.05); } 50% { transform: translateY(0) scale(1); } 75% { transform: translateY(2px) scale(0.95); } }

/* Scene: pastoral-valley */
.scn-pastoral-valley {
  background: linear-gradient(180deg, #0e1a2e 0%, #1a2a4e 40%, #2a3a5e 100%), radial-gradient(ellipse at 50% 10%, #2a4a6e 0%, transparent 70%);
}
.scn-pastoral-valley .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #1a2a4e 0%, #2a3a5e 60%, transparent 100%);
  animation: pv3-sky 15s ease-in-out infinite alternate;
}
.scn-pastoral-valley .moon {
  position: absolute; top: 8%; left: 65%; width: 36px; height: 36px;
  background: radial-gradient(circle, #e0e0ff 0%, #a0a0c0 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 6px rgba(180,180,255,0.2);
  animation: pv3-moon 20s ease-in-out infinite;
}
.scn-pastoral-valley .hills-fore {
  position: absolute; bottom: 15%; left: -5%; right: -5%; height: 30%;
  background: linear-gradient(135deg, #2a3a2a 0%, #3a4a3a 50%, #2a3a2a 100%);
  border-radius: 40% 60% 0 0 / 80% 70% 0 0;
  box-shadow: inset 0 6px 12px rgba(0,0,0,0.3);
  animation: pv3-hills1 25s ease-in-out infinite alternate;
}
.scn-pastoral-valley .hills-back {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 20%;
  background: linear-gradient(135deg, #1a2a2a 0%, #2a3a3a 50%, #1a2a2a 100%);
  border-radius: 60% 40% 0 0 / 60% 80% 0 0;
  opacity: 0.7;
}
.scn-pastoral-valley .road {
  position: absolute; bottom: 10%; left: 15%; right: 15%; height: 6%;
  background: linear-gradient(90deg, #3a3a4a 0%, #4a4a5a 50%, #3a3a4a 100%);
  border-radius: 20%;
  opacity: 0.5;
  animation: pv3-road 8s ease-in-out infinite alternate;
}
.scn-pastoral-valley .tree-cluster {
  position: absolute; bottom: 20%; left: 50%; width: 60px; height: 100px;
  background: radial-gradient(ellipse at 50% 100%, #1a2a1a 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(4px);
  animation: pv3-tree 12s ease-in-out infinite alternate;
}
.scn-pastoral-valley .distant-bell {
  position: absolute; bottom: 30%; left: 20%; width: 12px; height: 20px;
  background: linear-gradient(180deg, #4a4a3a 0%, #3a3a2a 100%);
  border-radius: 30% 30% 50% 50% / 20% 20% 30% 30%;
  transform-origin: top center;
  animation: pv3-bell 3s ease-in-out infinite;
}
@keyframes pv3-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes pv3-moon { 0% { transform: translateY(0); box-shadow: 0 0 20px 4px rgba(180,180,255,0.2); } 50% { transform: translateY(-4px); box-shadow: 0 0 40px 10px rgba(180,180,255,0.4); } 100% { transform: translateY(0); box-shadow: 0 0 20px 4px rgba(180,180,255,0.2); } }
@keyframes pv3-hills1 { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(1.01); } 100% { transform: translateY(0) scale(1); } }
@keyframes pv3-road { 0% { opacity: 0.4; transform: scaleX(1); } 50% { opacity: 0.6; transform: scaleX(1.02); } 100% { opacity: 0.4; transform: scaleX(1); } }
@keyframes pv3-tree { 0% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-2deg); } }
@keyframes pv3-bell { 0% { transform: rotate(-5deg); } 25% { transform: rotate(3deg); } 50% { transform: rotate(-5deg); } 75% { transform: rotate(5deg); } 100% { transform: rotate(-5deg); } }

/* Scene: town-inn */
.scn-town-inn {
  background: linear-gradient(180deg, #f0e8d0 0%, #d0c0a0 40%, #c0b090 100%), radial-gradient(ellipse at 50% 30%, #e0d8c0 0%, transparent 70%);
}
.scn-town-inn .sky-dawn {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #ffe8c0 0%, #f0d8b0 40%, transparent 100%);
  animation: ti4-sky 14s ease-in-out infinite alternate;
}
.scn-town-inn .inn-wall {
  position: absolute; bottom: 15%; left: 10%; right: 10%; height: 50%;
  background: linear-gradient(180deg, #c8b898 0%, #b0a080 100%);
  border-radius: 10% 10% 4% 4%;
  box-shadow: inset 0 4px 10px rgba(0,0,0,0.2);
}
.scn-town-inn .inn-roof {
  position: absolute; bottom: 60%; left: 8%; right: 8%; height: 12%;
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%);
  clip-path: polygon(10% 0, 90% 0, 100% 100%, 0 100%);
  border-radius: 4% 4% 0 0;
}
.scn-town-inn .door {
  position: absolute; bottom: 15%; left: 40%; width: 20%; height: 40%;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a1a 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
  box-shadow: inset -4px 0 8px rgba(0,0,0,0.3);
}
.scn-town-inn .window {
  position: absolute; bottom: 45%; left: 30%; width: 15%; height: 20%;
  background: radial-gradient(circle, #f0d090 0%, #c0a060 70%);
  border-radius: 10%;
  box-shadow: 0 0 16px 4px rgba(240,208,144,0.4);
  animation: ti4-window 4s ease-in-out infinite alternate;
}
.scn-town-inn .figure {
  position: absolute; bottom: 18%; left: 42%; width: 20px; height: 42px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ti4-fig 5s ease-in-out infinite;
}
.scn-town-inn .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 18%;
  background: linear-gradient(180deg, #a09070 0%, #807050 100%);
  border-radius: 30% 30% 0 0 / 20% 20% 0 0;
}
@keyframes ti4-sky { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.95; } }
@keyframes ti4-window { 0% { box-shadow: 0 0 10px 2px rgba(240,208,144,0.3); opacity: 0.8; } 50% { box-shadow: 0 0 24px 8px rgba(240,208,144,0.6); opacity: 1; } 100% { box-shadow: 0 0 10px 2px rgba(240,208,144,0.3); opacity: 0.8; } }
@keyframes ti4-fig { 0% { transform: translateX(0) rotate(-1deg); } 30% { transform: translateX(3px) rotate(2deg); } 60% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(-1deg); } }

/* scene: annette-again – fear, dim interior (firelit corridor) */
.scn-annette-again { background: 
  linear-gradient(180deg, #2a1a10 0%, #1a0e06 50%, #0d0603 100%),
  radial-gradient(ellipse at 60% 40%, #3a2210 0%, transparent 60%);
}
.scn-annette-again .corridor-walls { position:absolute; inset:0 0 20% 0; background: linear-gradient(90deg, #1f130a 0%, #3a2818 50%, #1f130a 100%); animation: ann-walls 8s ease-in-out infinite alternate; }
.scn-annette-again .door { position:absolute; bottom:25%; left:35%; width:22%; height:55%; background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%); border-radius: 4% 4% 2% 2%; box-shadow: 6px 0 12px rgba(0,0,0,.6), -4px 0 8px rgba(0,0,0,.4); animation: ann-door 3s ease-in-out infinite; }
.scn-annette-again .candle { position:absolute; bottom:30%; right:40%; width:4px; height:18px; background: linear-gradient(180deg, #ffd080 0%, #b07030 100%); border-radius: 40% 40% 10% 10%; box-shadow: 0 0 20px 8px #ffa040, 0 0 40px 16px rgba(200,100,30,.4); animation: ann-glow 2s ease-in-out infinite alternate; }
.scn-annette-again .shadow { position:absolute; bottom:20%; left:42%; width:25%; height:40%; background: linear-gradient(180deg, rgba(0,0,0,.5) 0%, rgba(0,0,0,.8) 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; filter: blur(4px); animation: ann-shift 6s ease-in-out infinite; }
.scn-annette-again .figure { position:absolute; bottom:22%; left:38%; width:12%; height:38%; background: linear-gradient(180deg, #1a0e06 0%, #0d0603 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ann-walk 4s ease-in-out infinite; }
.scn-annette-again .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #2a1a10 0%, #1a0e06 100%); box-shadow: inset 0 8px 20px rgba(0,0,0,.7); }
.scn-annette-again .crack { position:absolute; bottom:30%; left:30%; width:3%; height:40%; background: rgba(0,0,0,.3); border-radius: 0 0 20% 20%; animation: ann-crack 10s ease-in-out infinite; }
@keyframes ann-walls { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes ann-door { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(0.98) translateX(1px) } }
@keyframes ann-glow { 0% { box-shadow: 0 0 16px 4px #ffa040,0 0 30px 8px rgba(200,100,30,.2); opacity:.7 } 50% { box-shadow: 0 0 28px 12px #ffb060,0 0 50px 20px rgba(200,100,30,.5); opacity:1 } 100% { box-shadow: 0 0 20px 6px #ffa040,0 0 36px 10px rgba(200,100,30,.3); opacity:.8 } }
@keyframes ann-shift { 0% { transform: translateX(0) scaleX(1) } 50% { transform: translateX(6px) scaleX(1.1) } 100% { transform: translateX(-4px) scaleX(0.95) } }
@keyframes ann-walk { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 25% { transform: translateX(4%) translateY(-2px) rotate(2deg) } 50% { transform: translateX(8%) translateY(0) rotate(-1deg) } 75% { transform: translateX(12%) translateY(-2px) rotate(1deg) } 100% { transform: translateX(16%) translateY(0) rotate(0) } }
@keyframes ann-crack { 0%,100% { opacity:.3 } 50% { opacity:.6 } }

/* scene: ludovico-secret – tension, dim interior (table, two figures) */
.scn-ludovico-secret { background: 
  linear-gradient(180deg, #1f1808 0%, #2a200e 50%, #0f0a04 100%),
  radial-gradient(ellipse at 50% 70%, #3a2a1a 0%, transparent 70%);
}
.scn-ludovico-secret .room-bg { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #2a200e 0%, #0f0a04 100%); animation: lud-bg 12s ease-in-out infinite alternate; }
.scn-ludovico-secret .table { position:absolute; bottom:25%; left:20%; right:20%; height:12%; background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%); border-radius: 6% 6% 2% 2%; box-shadow: 0 6px 12px rgba(0,0,0,.7); }
.scn-ludovico-secret .candle { position:absolute; bottom:35%; left:48%; width:6px; height:22px; background: linear-gradient(180deg, #ffd080 0%, #b07030 100%); border-radius: 40% 40% 10% 10%; box-shadow: 0 0 24px 10px #ffa040, 0 0 48px 18px rgba(200,100,30,.5); animation: lud-candle 2.5s ease-in-out infinite alternate; }
.scn-ludovico-secret .figure-left { position:absolute; bottom:20%; left:18%; width:14%; height:50%; background: linear-gradient(180deg, #1a1006 0%, #0a0603 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lud-lean 5s ease-in-out infinite; }
.scn-ludovico-secret .figure-right { position:absolute; bottom:20%; right:18%; width:14%; height:50%; background: linear-gradient(180deg, #2a1a10 0%, #0d0603 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lud-lean 5s ease-in-out infinite reverse; }
.scn-ludovico-secret .table-cloth { position:absolute; bottom:30%; left:22%; right:22%; height:6%; background: linear-gradient(180deg, #5a4030 0%, #3a2818 100%); border-radius: 10% 10% 0 0; opacity:.6; animation: lud-cloth 8s ease-in-out infinite; }
.scn-ludovico-secret .shadow-sharp { position:absolute; bottom:10%; left:35%; width:30%; height:30%; background: linear-gradient(180deg, rgba(0,0,0,.6) 0%, transparent 100%); filter: blur(2px); animation: lud-shadow 4s ease-in-out infinite; }
@keyframes lud-bg { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes lud-candle { 0% { box-shadow: 0 0 18px 6px #ffa040,0 0 30px 12px rgba(200,100,30,.3); opacity:.8 } 50% { box-shadow: 0 0 30px 14px #ffb060,0 0 50px 24px rgba(200,100,30,.6); opacity:1 } 100% { box-shadow: 0 0 22px 8px #ffa040,0 0 38px 16px rgba(200,100,30,.4); opacity:.85 } }
@keyframes lud-lean { 0% { transform: translateX(0) translateY(0) rotate(0deg) } 50% { transform: translateX(-4%) translateY(-3px) rotate(-3deg) } 100% { transform: translateX(2%) translateY(0) rotate(2deg) } }
@keyframes lud-cloth { 0%,100% { opacity:.5 } 50% { opacity:.8 } }
@keyframes lud-shadow { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.2) } 100% { transform: scaleX(0.9) } }

/* scene: madame-montoni-angry – anger, dim interior (fireplace confrontation) */
.scn-madame-montoni-angry { background: 
  linear-gradient(180deg, #2a1408 0%, #1f0f05 50%, #0a0502 100%),
  radial-gradient(ellipse at 50% 40%, #5a3018 0%, transparent 70%);
}
.scn-madame-montoni-angry .fireplace { position:absolute; bottom:10%; left:25%; right:25%; height:55%; background: linear-gradient(180deg, #3a1a0a 0%, #1a0a04 100%); border-radius: 10% 10% 4% 4%; box-shadow: inset 0 20px 40px rgba(0,0,0,.8); }
.scn-madame-montoni-angry .fire { position:absolute; bottom:15%; left:38%; width:24%; height:30%; background: radial-gradient(ellipse at 50% 70%, #ff8030 0%, #ff5000 30%, #ff3000 60%, #7a1a00 100%); border-radius: 50% 50% 20% 20%; box-shadow: 0 0 80px 40px #ff5000, 0 0 120px 60px rgba(200,60,0,.4); animation: mam-fire 2s ease-in-out infinite alternate; }
.scn-madame-montoni-angry .figure-angry { position:absolute; bottom:20%; left:30%; width:18%; height:50%; background: linear-gradient(180deg, #1a0e06 0%, #0d0603 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mam-angry 0.8s ease-in-out infinite; }
.scn-madame-montoni-angry .figure-cringing { position:absolute; bottom:20%; right:28%; width:15%; height:45%; background: linear-gradient(180deg, #2a1a10 0%, #0f0804 100%); border-radius: 50% 50% 50% 50% / 60% 60% 50% 50%; transform: scale(0.9); transform-origin: bottom center; animation: mam-cringe 1.5s ease-in-out infinite; }
.scn-madame-montoni-angry .floor { position:absolute; bottom:0; left:0; right:0; height:12%; background: linear-gradient(180deg, #2a1408 0%, #1a0a04 100%); box-shadow: inset 0 8px 20px rgba(0,0,0,.8); }
.scn-madame-montoni-angry .wall-sconce { position:absolute; bottom:50%; left:15%; width:6px; height:20px; background: linear-gradient(180deg, #6a4030 0%, #3a2010 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 16px 6px #ff8040; animation: mam-sconce 3s ease-in-out infinite alternate; }
.scn-madame-montoni-angry .shadow-flicker { position:absolute; bottom:5%; left:20%; right:20%; height:50%; background: linear-gradient(180deg, rgba(0,0,0,.7) 0%, transparent 100%); filter: blur(8px); animation: mam-shade 1.2s ease-in-out infinite alternate; }
@keyframes mam-fire { 0% { transform: scaleY(1) scaleX(1); opacity:.9 } 50% { transform: scaleY(1.1) scaleX(1.05); opacity:1 } 100% { transform: scaleY(0.95) scaleX(0.98); opacity:.85 } }
@keyframes mam-angry { 0%,100% { transform: translateX(0) translateY(0) rotate(0deg) } 25% { transform: translateX(4%) translateY(-2px) rotate(-4deg) } 50% { transform: translateX(0) translateY(-4px) rotate(2deg) } 75% { transform: translateX(-2%) translateY(-2px) rotate(-2deg) } }
@keyframes mam-cringe { 0%,100% { transform: scale(0.9) translateX(0) } 50% { transform: scale(0.85) translateX(6px) } }
@keyframes mam-sconce { 0% { box-shadow: 0 0 12px 2px #ff8040 } 50% { box-shadow: 0 0 20px 8px #ffa060 } 100% { box-shadow: 0 0 14px 4px #ff8040 } }
@keyframes mam-shade { 0% { opacity:.6 } 50% { opacity:.9 } 100% { opacity:.7 } }

/* scene: montoni-demands-settlement – anger, dim interior (study) */
.scn-montoni-demands-settlement { background: 
  linear-gradient(180deg, #1f130a 0%, #140b05 50%, #0a0502 100%),
  radial-gradient(ellipse at 50% 50%, #3a2010 0%, transparent 80%);
}
.scn-montoni-demands-settlement .study-shelves { position:absolute; top:5%; left:5%; right:5%; height:30%; background: linear-gradient(180deg, #3a2010 0%, #1a0e06 100%); border-radius: 4% 4% 2% 2%; box-shadow: inset 0 0 20px rgba(0,0,0,.6); animation: mon-shelves 15s ease-in-out infinite alternate; }
.scn-montoni-demands-settlement .desk { position:absolute; bottom:25%; left:10%; right:25%; height:15%; background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%); border-radius: 4% 4% 2% 2%; box-shadow: 0 8px 16px rgba(0,0,0,.7); }
.scn-montoni-demands-settlement .figure-standing { position:absolute; bottom:20%; left:20%; width:15%; height:55%; background: linear-gradient(180deg, #1a0e06 0%, #0d0603 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mon-stand 6s ease-in-out infinite; }
.scn-montoni-demands-settlement .figure-seated { position:absolute; bottom:18%; right:20%; width:18%; height:40%; background: linear-gradient(180deg, #2a1a10 0%, #0f0804 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mon-seat 8s ease-in-out infinite; }
.scn-montoni-demands-settlement .lamp { position:absolute; bottom:35%; left:8%; width:8px; height:28px; background: linear-gradient(180deg, #ffd080 0%, #b07030 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 0 30px 12px #ffa040, 0 0 60px 24px rgba(200,100,30,.4); animation: mon-lamp 3s ease-in-out infinite alternate; }
.scn-montoni-demands-settlement .paper { position:absolute; bottom:30%; left:35%; width:16%; height:8%; background: linear-gradient(180deg, #ccaa7a 0%, #a08060 100%); border-radius: 2% 2% 4% 4%; box-shadow: 0 2px 4px rgba(0,0,0,.5); transform: rotate(6deg); animation: mon-paper 5s ease-in-out infinite; }
.scn-montoni-demands-settlement .shadow-heavy { position:absolute; bottom:5%; left:10%; right:30%; height:35%; background: linear-gradient(180deg, rgba(0,0,0,.8) 0%, transparent 100%); filter: blur(6px); animation: mon-shadow 4s ease-in-out infinite alternate; }
@keyframes mon-shelves { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes mon-stand { 0%,100% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-4px) rotate(2deg) } }
@keyframes mon-seat { 0%,100% { transform: translateX(0) rotate(0deg) } 33% { transform: translateX(6px) rotate(-2deg) } 66% { transform: translateX(-4px) rotate(3deg) } }
@keyframes mon-lamp { 0% { box-shadow: 0 0 20px 6px #ffa040,0 0 40px 16px rgba(200,100,30,.3); opacity:.8 } 50% { box-shadow: 0 0 36px 14px #ffb060,0 0 60px 28px rgba(200,100,30,.6); opacity:1 } 100% { box-shadow: 0 0 24px 8px #ffa040,0 0 44px 18px rgba(200,100,30,.35); opacity:.9 } }
@keyframes mon-paper { 0% { transform: rotate(4deg) scale(1) } 50% { transform: rotate(8deg) scale(1.02) } 100% { transform: rotate(3deg) scale(1) } }
@keyframes mon-shadow { 0% { opacity:.6 } 50% { opacity:.9 } 100% { opacity:.7 } }

.scn-self-accusation {
  background: linear-gradient(180deg, #0a0a2e 0%, #1a1a4e 40%, #2c2c6e 80%, #18184a 100%);
}
.scn-self-accusation .night-sky {
  position:absolute; inset:0; background: linear-gradient(180deg, #0c0c3a 0%, #1a1a5e 60%, #2a2a6e 100%);
  animation: sa-sky 20s ease-in-out infinite alternate;
}
.scn-self-accusation .moon {
  position:absolute; top:12%; left:70%; width:50px; height:50px;
  background: radial-gradient(circle at 30% 30%, #d0d8ff 0%, #9098d0 100%);
  border-radius:50%; box-shadow: 0 0 40px 20px rgba(144,152,208,0.4), 0 0 80px 40px rgba(144,152,208,0.15);
  animation: sa-moon-glow 6s ease-in-out infinite alternate;
}
.scn-self-accusation .balcony-rail {
  position:absolute; bottom:30%; left:10%; width:80%; height:8px;
  background: #2a2a3a; border-radius:4px; box-shadow: 0 -2px 4px rgba(0,0,0,0.6);
}
.scn-self-accusation .woman-silhouette {
  position:absolute; bottom:28%; left:30%; width:28px; height:70px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sa-turn 8s ease-in-out infinite alternate;
}
.scn-self-accusation .man-silhouette {
  position:absolute; bottom:28%; right:28%; width:30px; height:72px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sa-reach 10s ease-in-out infinite alternate;
}
.scn-self-accusation .drape-left {
  position:absolute; top:0; left:0; width:30%; height:100%;
  background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 80%, transparent 100%);
  animation: sa-drape 15s ease-in-out infinite;
}
.scn-self-accusation .drape-right {
  position:absolute; top:0; right:0; width:30%; height:100%;
  background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 80%, transparent 100%);
  animation: sa-drape 15s ease-in-out infinite reverse;
}
.scn-self-accusation .cloud {
  position:absolute; top:18%; left:10%; width:80px; height:18px;
  background: rgba(200,210,255,0.3); filter: blur(6px); border-radius:50%;
  animation: sa-cloud 40s linear infinite;
}
@keyframes sa-sky { 0%{ opacity:0.7 } 50%{ opacity:1; transform:translateY(-2px) } 100%{ opacity:0.8; transform:translateY(2px) } }
@keyframes sa-moon-glow { 0%{ box-shadow:0 0 30px 15px rgba(144,152,208,0.3); } 50%{ box-shadow:0 0 50px 25px rgba(144,152,208,0.6); } 100%{ box-shadow:0 0 40px 20px rgba(144,152,208,0.4); } }
@keyframes sa-turn { 0%{ transform:rotate(-3deg) } 50%{ transform:rotate(0deg) scaleX(1.02) } 100%{ transform:rotate(3deg) } }
@keyframes sa-reach { 0%{ transform:translateZ(0) rotate(2deg) } 50%{ transform:translateY(-3px) rotate(-1deg) } 100%{ transform:translateY(0) rotate(-2deg) } }
@keyframes sa-drape { 0%,100%{ transform:scaleX(1) } 50%{ transform:scaleX(1.05) } }
@keyframes sa-cloud { 0%{ transform: translateX(-30px) } 100%{ transform: translateX(120vw) } }

.scn-memories-of-pyrenees {
  background: linear-gradient(180deg, #0a0a2e 0%, #1a1a4e 40%, #2c2c6e 70%, #1e1e4a 100%);
}
.scn-memories-of-pyrenees .sky-mountain {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(180deg, #0f1a3a 0%, #1a2a5a 60%, transparent 100%);
  animation: mp-sky 18s ease-in-out infinite alternate;
}
.scn-memories-of-pyrenees .moon-large {
  position:absolute; top:10%; left:75%; width:70px; height:70px;
  background: radial-gradient(circle at 30% 30%, #d0d8ff 0%, #9098d0 100%);
  border-radius:50%; box-shadow: 0 0 60px 30px rgba(144,152,208,0.4);
  animation: mp-moon 8s ease-in-out infinite alternate;
}
.scn-memories-of-pyrenees .mountain-range {
  position:absolute; bottom:30%; left:5%; width:90%; height:40%;
  background: linear-gradient(180deg, #1a2a4a 0%, #0e1e3e 100%);
  border-radius: 60% 40% 0 0 / 100% 80% 0 0;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.5);
  animation: mp-mtn 25s ease-in-out infinite alternate;
}
.scn-memories-of-pyrenees .foreground-hill {
  position:absolute; bottom:15%; left:0; width:100%; height:25%;
  background: linear-gradient(180deg, #1a2a2a 0%, #0a1a1a 100%);
  border-radius: 80% 70% 0 0 / 120% 100% 0 0;
}
.scn-memories-of-pyrenees .figure-left {
  position:absolute; bottom:18%; left:20%; width:26px; height:60px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mp-fig 6s ease-in-out infinite alternate;
}
.scn-memories-of-pyrenees .figure-right {
  position:absolute; bottom:18%; left:42%; width:28px; height:62px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mp-fig 7s ease-in-out infinite alternate-reverse;
}
.scn-memories-of-pyrenees .mist {
  position:absolute; bottom:20%; left:0; width:100%; height:25%;
  background: linear-gradient(90deg, rgba(200,210,255,0.05), rgba(200,210,255,0.15), transparent);
  filter: blur(10px);
  animation: mp-mist 30s linear infinite;
}
@keyframes mp-sky { 0%{ opacity:0.6 } 50%{ opacity:1; transform:translateY(-2px) } 100%{ opacity:0.7; transform:translateY(2px) } }
@keyframes mp-moon { 0%{ box-shadow:0 0 40px 20px rgba(144,152,208,0.3); } 50%{ box-shadow:0 0 70px 35px rgba(144,152,208,0.6); } 100%{ box-shadow:0 0 50px 25px rgba(144,152,208,0.4); } }
@keyframes mp-mtn { 0%{ transform:translateY(0) scaleX(1) } 50%{ transform:translateY(-4px) scaleX(1.01) } 100%{ transform:translateY(2px) scaleX(1) } }
@keyframes mp-fig { 0%{ transform:rotate(-2deg) } 50%{ transform:rotate(0deg) translateY(-2px) } 100%{ transform:rotate(2deg) } }
@keyframes mp-mist { 0%{ transform:translateX(-10%) } 50%{ transform:translateX(10%) } 100%{ transform:translateX(-10%) } }

.scn-forced-calm {
  background: linear-gradient(180deg, #0e0e2a 0%, #1a1a3e 50%, #1e1a2e 100%);
}
.scn-forced-calm .room-wall {
  position:absolute; inset:0 0 20% 0;
  background: linear-gradient(180deg, #0a0a1a 0%, #151525 100%);
}
.scn-forced-calm .floor {
  position:absolute; bottom:0; width:100%; height:20%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  box-shadow: inset 0 8px 12px rgba(0,0,0,0.4);
}
.scn-forced-calm .window-frame {
  position:absolute; top:15%; left:35%; width:30%; height:50%;
  background: linear-gradient(135deg, #2a2a3e 0%, #1a1a2a 100%);
  border-radius: 4px 4px 8px 8px;
  box-shadow: 0 4px 10px rgba(0,0,0,0.6);
}
.scn-forced-calm .moonbeam {
  position:absolute; top:20%; left:38%; width:24%; height:55%;
  background: linear-gradient(180deg, rgba(200,210,255,0.2) 0%, transparent 80%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  animation: fc-beam 12s ease-in-out infinite alternate;
}
.scn-forced-calm .woman-figure {
  position:absolute; bottom:22%; left:32%; width:24px; height:60px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fc-fig 8s ease-in-out infinite;
}
.scn-forced-calm .man-figure {
  position:absolute; bottom:22%; left:48%; width:26px; height:64px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fc-fig 9s ease-in-out infinite reverse;
}
.scn-forced-calm .table {
  position:absolute; bottom:20%; left:38%; width:24%; height:10px;
  background: #1a1a2a;
  border-radius: 2px;
  box-shadow: 0 -3px 6px rgba(0,0,0,0.4);
}
.scn-forced-calm .curtain {
  position:absolute; top:15%; left:30%; width:10%; height:55%;
  background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 80%, transparent);
  animation: fc-curtain 20s ease-in-out infinite alternate;
}
@keyframes fc-beam { 0%{ opacity:0.3; transform:skewX(-3deg) } 50%{ opacity:0.6; transform:skewX(0deg) } 100%{ opacity:0.4; transform:skewX(3deg) } }
@keyframes fc-fig { 0%{ transform:rotate(-1deg) translateX(0) } 50%{ transform:rotate(0deg) translateX(3px) } 100%{ transform:rotate(1deg) translateX(0) } }
@keyframes fc-curtain { 0%{ transform:scaleX(1) } 50%{ transform:scaleX(1.08) } 100%{ transform:scaleX(1) } }

.scn-conversation-with-count {
  background: linear-gradient(180deg, #0a0a12 0%, #151520 40%, #0e0e18 100%);
}
.scn-conversation-with-count .study-wall {
  position:absolute; inset:0;
  background: linear-gradient(180deg, #1a1a24 0%, #0e0e16 100%);
}
.scn-conversation-with-count .desk {
  position:absolute; bottom:22%; left:30%; width:40%; height:12%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a28 100%);
  border-radius: 6px 6px 0 0;
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.4), 0 -4px 8px rgba(0,0,0,0.3);
}
.scn-conversation-with-count .candle-glow {
  position:absolute; bottom:30%; left:46%; width:14px; height:30px;
  background: radial-gradient(circle at 50% 30%, #ffd080 0%, #c08040 60%, transparent 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 40px 20px rgba(255,208,128,0.3), 0 0 80px 40px rgba(255,208,128,0.1);
  animation: cc-candle 4s ease-in-out infinite alternate;
}
.scn-conversation-with-count .count-silhouette {
  position:absolute; bottom:20%; left:38%; width:32px; height:70px;
  background: linear-gradient(180deg, #1a1a28 0%, #0a0a14 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cc-fig 6s ease-in-out infinite;
}
.scn-conversation-with-count .emily-silhouette {
  position:absolute; bottom:20%; left:52%; width:26px; height:62px;
  background: linear-gradient(180deg, #1a1a28 0%, #0a0a14 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cc-fig 7s ease-in-out infinite reverse;
}
.scn-conversation-with-count .bookshelf {
  position:absolute; top:8%; right:5%; width:15%; height:70%;
  background: linear-gradient(180deg, #1a1a24 0%, #0e0e16 100%);
  border-left: 2px solid #2a2a3a;
  box-shadow: -4px 0 8px rgba(0,0,0,0.3);
}
.scn-conversation-with-count .chair-shadow {
  position:absolute; bottom:20%; left:30%; width:18%; height:30%;
  background: rgba(0,0,0,0.3);
  filter: blur(10px);
  border-radius: 50%;
}
@keyframes cc-candle { 0%{ transform: scaleY(1); box-shadow:0 0 30px 15px rgba(255,208,128,0.3); } 50%{ transform: scaleY(1.08); box-shadow:0 0 50px 25px rgba(255,208,128,0.5); } 100%{ transform: scaleY(0.95); box-shadow:0 0 35px 18px rgba(255,208,128,0.35); } }
@keyframes cc-fig { 0%{ transform:rotate(-2deg) } 50%{ transform:rotate(0deg) translateY(-2px) } 100%{ transform:rotate(2deg) } }

.scn-poisoned-wine {
  background: linear-gradient(180deg, #1a0e0a 0%, #2c1814 30%, #4a2a1e 70%, #1a0e0a 100%), radial-gradient(ellipse at 50% 40%, #4a2a1e 0%, transparent 70%);
}
.scn-poisoned-wine .curtain-left {
  position: absolute; left: 0; top: 0; width: 25%; height: 100%;
  background: linear-gradient(180deg, #3a1a12 0%, #1a0a06 100%);
  border-radius: 0 40% 40% 0;
  transform: skewX(-5deg);
  animation: pw-curtain 6s ease-in-out infinite alternate;
}
.scn-poisoned-wine .curtain-right {
  position: absolute; right: 0; top: 0; width: 25%; height: 100%;
  background: linear-gradient(180deg, #3a1a12 0%, #1a0a06 100%);
  border-radius: 40% 0 0 40%;
  transform: skewX(5deg);
  animation: pw-curtain 6s ease-in-out infinite alternate-reverse;
}
.scn-poisoned-wine .table {
  position: absolute; bottom: 10%; left: 30%; width: 40%; height: 15%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2216 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: 0 -6px 20px rgba(0,0,0,.6);
}
.scn-poisoned-wine .goblet {
  position: absolute; bottom: 22%; left: 48%; width: 12%; height: 18%;
  background: linear-gradient(180deg, #8a6a3a 0%, #5a4a2a 100%);
  border-radius: 0 0 30% 30% / 0 0 50% 50%;
  clip-path: polygon(20% 0, 80% 0, 75% 100%, 25% 100%);
  box-shadow: 0 4px 12px rgba(0,0,0,.5);
  animation: pw-goblet 3s ease-in-out infinite;
}
.scn-poisoned-wine .drip {
  position: absolute; bottom: 40%; left: 51%; width: 4%; height: 8%;
  background: linear-gradient(180deg, #a04030 0%, #602820 100%);
  border-radius: 50% 50% 40% 40% / 30% 30% 60% 60%;
  animation: pw-drip 2s ease-in-out infinite;
}
.scn-poisoned-wine .hand {
  position: absolute; bottom: 25%; left: 38%; width: 10%; height: 20%;
  background: linear-gradient(180deg, #2a1a14 0%, #1a0e0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform: rotate(30deg);
  transform-origin: bottom center;
  animation: pw-hand 4s ease-in-out infinite alternate;
}
.scn-poisoned-wine .flicker {
  position: absolute; inset: 0;
  background: radial-gradient(circle at 50% 45%, rgba(200,160,80,.15) 0%, transparent 60%);
  pointer-events: none;
  animation: pw-flicker 0.5s steps(2) infinite;
}
@keyframes pw-curtain { 0% { opacity: .9; transform: skewX(-5deg) } 50% { opacity: .7; transform: skewX(-3deg) } 100% { opacity: .85; transform: skewX(-6deg) } }
@keyframes pw-goblet { 0%,100% { transform: rotate(0deg) } 50% { transform: rotate(3deg) translateY(-2px) } }
@keyframes pw-drip { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(6px) scaleY(1.2) opacity: .8 } 100% { transform: translateY(12px) scaleY(0) opacity: 0 } }
@keyframes pw-hand { 0% { transform: rotate(30deg) translateX(0) } 50% { transform: rotate(25deg) translateX(4px) } 100% { transform: rotate(28deg) translateX(2px) } }
@keyframes pw-flicker { 0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .7 } }

.scn-servants-chained {
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1426 40%, #2a1e3a 100%), radial-gradient(ellipse at 50% 30%, #3a2a4e 0%, transparent 70%);
}
.scn-servants-chained .wall {
  position: absolute; left: 10%; top: 0; width: 80%; height: 70%;
  background: linear-gradient(180deg, #2a2236 0%, #1a1422 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 0 60px rgba(0,0,0,.8);
}
.scn-servants-chained .floor {
  position: absolute; bottom: 0; left: 0; width: 100%; height: 30%;
  background: linear-gradient(180deg, #1a1622 0%, #0e0a14 100%);
  box-shadow: inset 0 20px 40px rgba(0,0,0,.9);
}
.scn-servants-chained .figure-left {
  position: absolute; left: 20%; bottom: 25%; width: 15%; height: 40%;
  background: linear-gradient(180deg, #1a1424 0%, #0e0a1a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  animation: sc-fig 8s ease-in-out infinite alternate;
}
.scn-servants-chained .figure-right {
  position: absolute; right: 20%; bottom: 25%; width: 15%; height: 40%;
  background: linear-gradient(180deg, #1a1424 0%, #0e0a1a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  animation: sc-fig 8s ease-in-out infinite alternate-reverse;
}
.scn-servants-chained .chain-left {
  position: absolute; left: 22%; top: 20%; width: 4%; height: 50%;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1e1e 100%);
  border-radius: 20%;
  transform: rotate(-10deg);
  animation: sc-chain 3s ease-in-out infinite;
}
.scn-servants-chained .chain-right {
  position: absolute; right: 22%; top: 20%; width: 4%; height: 50%;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1e1e 100%);
  border-radius: 20%;
  transform: rotate(10deg);
  animation: sc-chain 3s ease-in-out infinite alternate;
}
.scn-servants-chained .lantern {
  position: absolute; top: 10%; left: 50%; width: 8%; height: 12%;
  background: radial-gradient(circle at 50% 70%, #a08040 0%, #604820 70%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 30px 10px rgba(160,128,64,.5), 0 0 60px 20px rgba(80,60,30,.3);
  animation: sc-lantern 4s ease-in-out infinite;
}
@keyframes sc-fig { 0% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-4px) rotate(0deg) } 100% { transform: translateY(2px) rotate(2deg) } }
@keyframes sc-chain { 0%,100% { transform: rotate(-10deg) translateY(0) } 50% { transform: rotate(-8deg) translateY(3px) } }
@keyframes sc-lantern { 0%,100% { opacity: .7; box-shadow: 0 0 20px 8px rgba(160,128,64,.4) } 50% { opacity: 1; box-shadow: 0 0 40px 15px rgba(160,128,64,.7) } }

.scn-emily-defends-aunt {
  background: linear-gradient(180deg, #2c2e30 0%, #1e2022 50%, #3a3c3e 100%), radial-gradient(ellipse at 60% 30%, #4a4c4e 0%, transparent 70%);
}
.scn-emily-defends-aunt .wall {
  position: absolute; left: 0; top: 0; width: 100%; height: 60%;
  background: linear-gradient(180deg, #2e3032 0%, #1e2022 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,.4);
}
.scn-emily-defends-aunt .floor {
  position: absolute; bottom: 0; left: 0; width: 100%; height: 40%;
  background: linear-gradient(180deg, #3a3c3e 0%, #2a2c2e 100%);
  box-shadow: inset 0 20px 30px rgba(0,0,0,.3);
}
.scn-emily-defends-aunt .window {
  position: absolute; top: 20%; left: 70%; width: 20%; height: 30%;
  background: linear-gradient(180deg, #6a7a7e 0%, #4a5a5e 100%);
  border-radius: 10% 10% 0 0;
  border: 4px solid #2a2c2e;
  box-shadow: inset 0 0 20px rgba(100,120,130,.3);
  animation: ed-window 8s ease-in-out infinite alternate;
}
.scn-emily-defends-aunt .emily {
  position: absolute; left: 30%; bottom: 35%; width: 12%; height: 30%;
  background: linear-gradient(180deg, #2c2e32 0%, #1c1e22 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  animation: ed-emily 4s ease-in-out infinite alternate;
}
.scn-emily-defends-aunt .aunt {
  position: absolute; left: 50%; bottom: 35%; width: 14%; height: 32%;
  background: linear-gradient(180deg, #3a3c3e 0%, #2a2c2e 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 30% 30%;
  transform: scale(1.05);
  animation: ed-aunt 5s ease-in-out infinite alternate;
}
.scn-emily-defends-aunt .chair {
  position: absolute; left: 52%; bottom: 30%; width: 16%; height: 20%;
  background: linear-gradient(180deg, #5a4c3e 0%, #3a2c1e 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,.3);
  animation: ed-chair 6s ease-in-out infinite;
}
.scn-emily-defends-aunt .door {
  position: absolute; left: 5%; top: 10%; width: 15%; height: 50%;
  background: linear-gradient(180deg, #4a3c2e 0%, #2a1c0e 100%);
  border-radius: 5% 5% 0 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,.5);
}
@keyframes ed-window { 0% { opacity: .6 } 50% { opacity: .9 } 100% { opacity: .7 } }
@keyframes ed-emily { 0% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-3px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes ed-aunt { 0% { transform: scale(1.05) translateY(0) } 50% { transform: scale(1.02) translateY(-2px) } 100% { transform: scale(1.05) translateY(0) } }
@keyframes ed-chair { 0%,100% { transform: rotate(0deg) } 50% { transform: rotate(2deg) } }

.scn-montoni-rages {
  background: linear-gradient(180deg, #1a1410 0%, #2a1e18 40%, #3a2a20 100%), radial-gradient(ellipse at 40% 50%, #4a3428 0%, transparent 70%);
}
.scn-montoni-rages .wall {
  position: absolute; left: 0; top: 0; width: 100%; height: 60%;
  background: linear-gradient(180deg, #2a2018 0%, #1a1410 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,.6);
}
.scn-montoni-rages .floor {
  position: absolute; bottom: 0; left: 0; width: 100%; height: 40%;
  background: linear-gradient(180deg, #3a2a20 0%, #1a1410 100%);
}
.scn-montoni-rages .montoni {
  position: absolute; left: 30%; bottom: 20%; width: 20%; height: 60%;
  background: linear-gradient(180deg, #4a3428 0%, #2a1e18 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform: scale(1.2);
  animation: mr-montoni 3s ease-in-out infinite alternate;
}
.scn-montoni-rages .emily {
  position: absolute; right: 30%; bottom: 25%; width: 12%; height: 35%;
  background: linear-gradient(180deg, #2a2018 0%, #1a1410 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  animation: mr-emily 4s ease-in-out infinite;
}
.scn-montoni-rages .shadow {
  position: absolute; left: 28%; bottom: 0; width: 25%; height: 20%;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,.7) 0%, transparent 70%);
  animation: mr-shadow 3s ease-in-out infinite alternate;
}
.scn-montoni-rages .light {
  position: absolute; top: 15%; left: 20%; width: 10%; height: 15%;
  background: radial-gradient(circle at 50% 50%, #c8553d 0%, #a0461a 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px #a0461a, 0 0 80px 30px rgba(160,70,26,.4);
  animation: mr-light 2s ease-in-out infinite alternate;
}
@keyframes mr-montoni { 0% { transform: scale(1.2) rotate(-2deg) } 50% { transform: scale(1.25) rotate(1deg) } 100% { transform: scale(1.2) rotate(0) } }
@keyframes mr-emily { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-3px) } }
@keyframes mr-shadow { 0% { opacity: .5; transform: scaleX(1) } 50% { opacity: .8; transform: scaleX(1.1) } 100% { opacity: .6; transform: scaleX(1) } }
@keyframes mr-light { 0% { opacity: .6; box-shadow: 0 0 30px 15px #a0461a } 50% { opacity: 1; box-shadow: 0 0 60px 30px #c8553d } 100% { opacity: .7; box-shadow: 0 0 40px 20px #a0461a } }

/* portrait-of-signora */
.scn-portrait-of-signora {
  background: linear-gradient(180deg, #1a1423 0%, #2c1f33 40%, #1e1528 100%), radial-gradient(ellipse at 60% 40%, #4a2e44 0%, transparent 70%);
}
.scn-portrait-of-signora .wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #1e1528 0%, #2c1f33 60%, #1a1423 100%); opacity: 0.8;
}
.scn-portrait-of-signora .picture-frame {
  position: absolute; top: 15%; left: 50%; width: 45%; height: 50%; transform: translateX(-50%); background: linear-gradient(180deg, #2a1e2a 0%, #1a101a 100%); border: 6px solid #3a2a2a; border-radius: 4px; box-shadow: 0 8px 20px rgba(0,0,0,0.7), inset 0 0 20px rgba(0,0,0,0.4); animation: pos-frame 8s ease-in-out infinite;
}
.scn-portrait-of-signora .portrait-canvas {
  position: absolute; top: 18%; left: 52%; width: 38%; height: 44%; transform: translate(-50%,0); background: radial-gradient(ellipse at 50% 30%, #5a3a3a 0%, #2a1a1a 100%); border-radius: 2px; box-shadow: inset 0 0 30px #1a0a0a; animation: pos-canvas 12s ease-in-out infinite alternate;
}
.scn-portrait-of-signora .candle-glow {
  position: absolute; bottom: 10%; left: 10%; width: 20px; height: 30px; background: radial-gradient(circle, #ffb060 0%, #d08030 40%, transparent 70%); border-radius: 50%; box-shadow: 0 0 60px 20px rgba(255,176,96,0.3); animation: pos-candle 3s ease-in-out infinite alternate;
}
.scn-portrait-of-signora .figure-silhouette {
  position: absolute; bottom: 5%; left: 30%; width: 30px; height: 70px; background: linear-gradient(180deg, #0e0a12 0%, #1a1220 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom; animation: pos-figure 6s ease-in-out infinite;
}
.scn-portrait-of-signora .curtain-left {
  position: absolute; top: 5%; left: 5%; width: 18%; height: 90%; background: linear-gradient(180deg, #2a1a1a 0%, #1a0e0e 100%); border-radius: 0 40% 40% 0; box-shadow: 4px 0 12px rgba(0,0,0,0.6); animation: pos-curtain 20s ease-in-out infinite alternate;
}
.scn-portrait-of-signora .curtain-right {
  position: absolute; top: 5%; right: 5%; width: 18%; height: 90%; background: linear-gradient(180deg, #2a1a1a 0%, #1a0e0e 100%); border-radius: 40% 0 0 40%; box-shadow: -4px 0 12px rgba(0,0,0,0.6); animation: pos-curtain 20s ease-in-out infinite alternate-reverse;
}
@keyframes pos-frame { 0%,100% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.01); } }
@keyframes pos-canvas { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes pos-candle { 0% { transform: scale(1); opacity: 0.8; } 50% { transform: scale(1.1); opacity: 1; } 100% { transform: scale(0.95); opacity: 0.7; } }
@keyframes pos-figure { 0% { transform: rotate(0deg) translateY(0); } 25% { transform: rotate(2deg) translateY(-2px); } 50% { transform: rotate(-1deg) translateY(0); } 75% { transform: rotate(1deg) translateY(-1px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes pos-curtain { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.03); } 100% { transform: scaleY(0.97); } }

/* annette-remarks */
.scn-annette-remarks {
  background: linear-gradient(180deg, #1c1523 0%, #2f223a 40%, #1a1222 100%), radial-gradient(ellipse at 30% 80%, #3a2a3e 0%, transparent 70%);
}
.scn-annette-remarks .bg-dark {
  position: absolute; inset: 0; background: linear-gradient(180deg, #1c1523 0%, #2f223a 60%, #1a1222 100%); opacity: 0.9;
}
.scn-annette-remarks .wall-panel {
  position: absolute; top: 10%; left: 10%; right: 10%; bottom: 10%; background: linear-gradient(135deg, #2a1e32 0%, #1e1428 100%); border: 2px solid #3a2a42; border-radius: 6px; box-shadow: inset 0 0 30px #0e0820; animation: ar-panel 15s ease-in-out infinite alternate;
}
.scn-annette-remarks .picture-small {
  position: absolute; top: 20%; left: 25%; width: 20%; height: 28%; background: linear-gradient(180deg, #3a2a3a 0%, #2a1e2a 100%); border: 4px solid #4a3a4a; border-radius: 3px; box-shadow: 0 4px 10px rgba(0,0,0,0.6); animation: ar-pic 10s ease-in-out infinite;
}
.scn-annette-remarks .candle-flame {
  position: absolute; bottom: 15%; left: 40%; width: 16px; height: 24px; background: radial-gradient(circle, #ffb860 0%, #d08030 50%, transparent 70%); border-radius: 50%; box-shadow: 0 0 40px 15px rgba(255,184,96,0.3); animation: ar-candle 2.5s ease-in-out infinite alternate;
}
.scn-annette-remarks .annette-body {
  position: absolute; bottom: 8%; left: 55%; width: 28px; height: 65px; background: linear-gradient(180deg, #1a1420 0%, #0e0a14 100%); border-radius: 45% 45% 35% 35% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ar-body 6s ease-in-out infinite;
}
.scn-annette-remarks .annette-arm {
  position: absolute; bottom: 30%; left: 60%; width: 10px; height: 30px; background: linear-gradient(180deg, #1a1420 0%, #0e0a14 100%); border-radius: 30% 30% 20% 20%; transform-origin: top left; animation: ar-arm 4s ease-in-out infinite;
}
.scn-annette-remarks .dust-sparkle {
  position: absolute; top: 30%; left: 20%; width: 4px; height: 4px; background: #ffd8a0; border-radius: 50%; box-shadow: 0 0 6px 2px rgba(255,216,160,0.4); animation: ar-dust 8s linear infinite;
}
@keyframes ar-panel { 0% { transform: scale(1); } 50% { transform: scale(1.005); } 100% { transform: scale(0.995); } }
@keyframes ar-pic { 0% { filter: brightness(0.7); } 50% { filter: brightness(1); } 100% { filter: brightness(0.8); } }
@keyframes ar-candle { 0% { transform: scale(1) rotate(-2deg); opacity: 0.8; } 30% { transform: scale(1.2) rotate(1deg); opacity: 1; } 60% { transform: scale(0.9) rotate(-1deg); opacity: 0.7; } 100% { transform: scale(1.1) rotate(2deg); opacity: 0.9; } }
@keyframes ar-body { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-1px) rotate(1deg); } 50% { transform: translateY(0) rotate(-1deg); } 75% { transform: translateY(-1px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes ar-arm { 0% { transform: rotate(-10deg); } 25% { transform: rotate(5deg); } 50% { transform: rotate(-15deg); } 75% { transform: rotate(10deg); } 100% { transform: rotate(-10deg); } }
@keyframes ar-dust { 0% { transform: translate(0,0) scale(1); opacity: 0; } 20% { opacity: 0.6; } 80% { opacity: 0.3; } 100% { transform: translate(30px,-20px) scale(0.5); opacity: 0; } }

/* caution */
.scn-caution {
  background: linear-gradient(180deg, #1e1a28 0%, #2a243a 40%, #161222 100%), radial-gradient(ellipse at 70% 50%, #2c2440 0%, transparent 70%);
}
.scn-caution .door-frame {
  position: absolute; top: 5%; left: 30%; right: 30%; bottom: 5%; background: linear-gradient(180deg, #2a2235 0%, #1a1630 100%); border: 6px solid #3a2e42; border-radius: 4px 4px 0 0; box-shadow: inset 0 0 30px #0e0c20; animation: ca-door 12s ease-in-out infinite alternate;
}
.scn-caution .door-darkness {
  position: absolute; top: 8%; left: 33%; right: 33%; bottom: 8%; background: linear-gradient(180deg, #0e0c18 0%, #1a1628 100%); border-radius: 2px; box-shadow: inset 0 0 40px #0a0a10; animation: ca-darkness 8s ease-in-out infinite;
}
.scn-caution .emily-silhouette {
  position: absolute; bottom: 8%; left: 28%; width: 24px; height: 70px; background: linear-gradient(180deg, #0e0a1a 0%, #1a1420 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom; animation: ca-emily 5s ease-in-out infinite;
}
.scn-caution .annette-silhouette {
  position: absolute; bottom: 8%; left: 52%; width: 26px; height: 68px; background: linear-gradient(180deg, #0e0a1a 0%, #1a1420 100%); border-radius: 45% 45% 35% 35% / 65% 65% 40% 40%; transform-origin: bottom; animation: ca-annette 5.5s ease-in-out infinite reverse;
}
.scn-caution .floor-light {
  position: absolute; bottom: 0; left: 20%; right: 20%; height: 10%; background: linear-gradient(180deg, transparent 0%, rgba(80,60,100,0.15) 100%); border-radius: 50% 50% 0 0; animation: ca-light 10s ease-in-out infinite alternate;
}
.scn-caution .shadow-bars {
  position: absolute; top: 0; left: 0; right: 0; bottom: 0; background: repeating-linear-gradient(90deg, rgba(0,0,0,0.2) 0px, rgba(0,0,0,0.2) 8px, transparent 8px, transparent 16px); animation: ca-bars 20s linear infinite;
}
@keyframes ca-door { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.01); } 100% { transform: scaleX(0.99); } }
@keyframes ca-darkness { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes ca-emily { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-1px) rotate(1deg); } 50% { transform: translateY(0) rotate(-1deg); } 75% { transform: translateY(-2px) rotate(0deg); } 100% { transform: translateY(0) rotate(1deg); } }
@keyframes ca-annette { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-1px) rotate(-1deg); } 50% { transform: translateY(0) rotate(1deg); } 75% { transform: translateY(-1px) rotate(0deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes ca-light { 0% { opacity: 0.3; } 50% { opacity: 0.6; } 100% { opacity: 0.4; } }
@keyframes ca-bars { 0% { transform: translateX(0); } 100% { transform: translateX(16px); } }

/* aunt-weeping-again */
.scn-aunt-weeping-again {
  background: linear-gradient(180deg, #1a1625 0%, #22203a 40%, #141225 100%), radial-gradient(ellipse at 50% 20%, #2a2a4a 0%, transparent 70%);
}
.scn-aunt-weeping-again .room-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #1a1625 0%, #22203a 60%, #141225 100%); opacity: 0.9;
}
.scn-aunt-weeping-again .window-arch {
  position: absolute; top: 8%; left: 60%; width: 30%; height: 40%; background: linear-gradient(180deg, #2a2a4a 0%, #1a1a3a 100%); border-radius: 50% 50% 0 0 / 60% 60% 0 0; border: 4px solid #3a3a5a; box-shadow: inset 0 0 20px #0a0a20; animation: aw-window 15s ease-in-out infinite alternate;
}
.scn-aunt-weeping-again .moonlight {
  position: absolute; top: 10%; left: 62%; width: 20%; height: 35%; background: radial-gradient(ellipse at 50% 30%, rgba(180,200,240,0.15) 0%, transparent 70%); filter: blur(8px); animation: aw-moon 20s ease-in-out infinite alternate;
}
.scn-aunt-weeping-again .aunt-figure {
  position: absolute; bottom: 5%; left: 35%; width: 32px; height: 75px; background: linear-gradient(180deg, #1a1420 0%, #0e0a14 100%); border-radius: 45% 45% 40% 40% / 60% 60% 50% 50%; transform-origin: bottom; animation: aw-aunt 4s ease-in-out infinite;
}
.scn-aunt-weeping-again .shawl-drape {
  position: absolute; bottom: 10%; left: 30%; width: 20px; height: 40px; background: linear-gradient(180deg, #1a1425 0%, #0e0a1a 100%); border-radius: 20% 20% 40% 40%; transform-origin: top; animation: aw-shawl 3.5s ease-in-out infinite alternate;
}
.scn-aunt-weeping-again .tear-drop-1 {
  position: absolute; bottom: 55%; left: 40%; width: 4px; height: 6px; background: rgba(200,220,255,0.6); border-radius: 50% 50% 30% 30%; box-shadow: 0 0 6px rgba(200,220,255,0.3); animation: aw-tear1 2.5s ease-in infinite;
}
.scn-aunt-weeping-again .tear-drop-2 {
  position: absolute; bottom: 50%; left: 45%; width: 4px; height: 6px; background: rgba(200,220,255,0.5); border-radius: 50% 50% 30% 30%; box-shadow: 0 0 6px rgba(200,220,255,0.2); animation: aw-tear2 3s ease-in infinite 1s;
}
.scn-aunt-weeping-again .chair-leg {
  position: absolute; bottom: 5%; left: 60%; width: 6px; height: 40px; background: #1a1625; border-radius: 2px; box-shadow: 2px 0 4px rgba(0,0,0,0.5); animation: aw-chair 10s ease-in-out infinite;
}
@keyframes aw-window { 0% { transform: scale(1); } 50% { transform: scale(1.01) translateY(-2px); } 100% { transform: scale(0.99) translateY(0); } }
@keyframes aw-moon { 0% { opacity: 0.6; } 50% { opacity: 0.9; } 100% { opacity: 0.5; } }
@keyframes aw-aunt { 0% { transform: translateY(0) rotate(0deg); } 20% { transform: translateY(-2px) rotate(1deg); } 40% { transform: translateY(0) rotate(-1deg); } 60% { transform: translateY(-3px) rotate(0deg); } 80% { transform: translateY(-1px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes aw-shawl { 0% { transform: rotate(0deg) scaleY(1); } 50% { transform: rotate(3deg) scaleY(1.02); } 100% { transform: rotate(-2deg) scaleY(0.98); } }
@keyframes aw-tear1 { 0% { transform: translateY(0) scale(1); opacity: 0.8; } 40% { transform: translateY(20px) scale(0.8); opacity: 0.4; } 60% { transform: translateY(35px) scale(0.5); opacity: 0.2; } 100% { transform: translateY(50px) scale(0.1); opacity: 0; } }
@keyframes aw-tear2 { 0% { transform: translateY(0) scale(1); opacity: 0.7; } 30% { transform: translateY(15px) scale(0.8); opacity: 0.3; } 50% { transform: translateY(30px) scale(0.5); opacity: 0.1; } 100% { transform: translateY(45px) scale(0.1); opacity: 0; } }
@keyframes aw-chair { 0% { transform: rotate(0deg); } 50% { transform: rotate(1deg); } 100% { transform: rotate(-1deg); } }

.scn-denunzie-secrete { background: linear-gradient(180deg, #1a1a2e 0%, #2a1a2a 40%, #1a0a1a 100%), radial-gradient(ellipse at 50% 0%, #4a3a5a 0%, transparent 70%); }
.scn-denunzie-secrete .wall-bg { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%); }
.scn-denunzie-secrete .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); }
.scn-denunzie-secrete .lion-mouth { position:absolute; bottom:30%; left:40%; width:80px; height:50px; background: radial-gradient(circle at 50% 30%, #6a5a3a 0%, #3a2a1a 100%); border-radius: 30% 30% 50% 50% / 40% 40% 60% 60%; box-shadow: 0 4px 15px rgba(0,0,0,0.8); animation: den-lion 6s ease-in-out infinite; }
.scn-denunzie-secrete .letter { position:absolute; bottom:40%; left:45%; width:20px; height:10px; background: #c8a06a; border-radius: 10% 10% 20% 20%; box-shadow: 0 2px 4px rgba(0,0,0,0.5); animation: den-letter 4s ease-in-out infinite; }
.scn-denunzie-secrete .figure { position:absolute; bottom:18%; left:35%; width:25px; height:50px; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: den-figure 8s ease-in-out infinite; }
.scn-denunzie-secrete .candle-glow { position:absolute; bottom:28%; left:28%; width:10px; height:10px; background: radial-gradient(circle, #ffd080 0%, #b08040 50%, transparent 100%); border-radius: 50%; box-shadow: 0 0 30px 10px #b08040; animation: den-glow 3s ease-in-out infinite alternate; }
.scn-denunzie-secrete .shadow { position:absolute; bottom:18%; left:30%; width:100px; height:8px; background: rgba(0,0,0,0.6); border-radius: 50%; filter: blur(4px); animation: den-shadow 8s ease-in-out infinite; }
@keyframes den-lion { 0% { transform: scale(1); } 50% { transform: scale(1.05) translateY(-2px); } 100% { transform: scale(1); } }
@keyframes den-letter { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-8px) rotate(-5deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes den-figure { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(5px) rotate(2deg); } 50% { transform: translateX(10px) rotate(-1deg); } 75% { transform: translateX(15px) rotate(1deg); } 100% { transform: translateX(20px) rotate(0deg); } }
@keyframes den-glow { 0% { opacity: 0.6; box-shadow: 0 0 20px 5px #b08040; } 50% { opacity: 1; box-shadow: 0 0 40px 15px #ffd080; } 100% { opacity: 0.7; box-shadow: 0 0 25px 8px #b08040; } }
@keyframes den-shadow { 0% { transform: scale(1); opacity: 0.6; } 50% { transform: scale(1.2); opacity: 0.8; } 100% { transform: scale(1); opacity: 0.6; } }

.scn-siege-of-udolpho { background: linear-gradient(180deg, #4a5a5a 0%, #2a3a3a 50%, #1a2a2a 100%), radial-gradient(ellipse at 30% 100%, #5a6a5a 0%, transparent 70%); }
.scn-siege-of-udolpho .sky { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #3a4a4a 0%, #2a3a3a 100%); animation: sie-sky 12s ease-in-out infinite alternate; }
.scn-siege-of-udolpho .castle-wall { position:absolute; bottom:30%; left:10%; right:60%; height:50%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,0.5); }
.scn-siege-of-udolpho .siege-tower { position:absolute; bottom:30%; left:50%; width:60px; height:80px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 5% 5% 10% 10%; box-shadow: 0 8px 15px rgba(0,0,0,0.6); animation: sie-tower 10s ease-in-out infinite; }
.scn-siege-of-udolpho .soldiers { position:absolute; bottom:30%; left:30%; width:30px; height:40px; background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sie-soldiers 3s ease-in-out infinite; }
.scn-siege-of-udolpho .catapult { position:absolute; bottom:35%; left:65%; width:50px; height:30px; background: linear-gradient(90deg, #3a2a1a 0%, #5a3a2a 100%); border-radius: 20% 20% 40% 40%; transform: rotate(-10deg); animation: sie-catapult 8s ease-in-out infinite; }
.scn-siege-of-udolpho .flag { position:absolute; bottom:75%; left:35%; width:8px; height:20px; background: #5a3a3a; border-radius: 10% 10% 0 0; animation: sie-flag 4s ease-in-out infinite; }
.scn-siege-of-udolpho .debris { position:absolute; bottom:30%; left:20%; width:15px; height:15px; background: #4a3a2a; border-radius: 20% 30% 10% 40%; animation: sie-debris 6s ease-in-out infinite; }
@keyframes sie-sky { 0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.7; } }
@keyframes sie-tower { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-5px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes sie-soldiers { 0% { transform: translateX(0) scale(1); } 50% { transform: translateX(5px) scale(1.05); } 100% { transform: translateX(0) scale(1); } }
@keyframes sie-catapult { 0% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-15deg) translateY(-3px); } 100% { transform: rotate(-10deg) translateY(0); } }
@keyframes sie-flag { 0% { transform: rotate(0deg); } 25% { transform: rotate(10deg); } 75% { transform: rotate(-10deg); } 100% { transform: rotate(0deg); } }
@keyframes sie-debris { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(20px) rotate(45deg); } 100% { transform: translateX(0) rotate(0deg); } }

.scn-return-to-udolpho { background: linear-gradient(180deg, #0a0a2e 0%, #1a1a3e 40%, #2a2a4e 100%), radial-gradient(ellipse at 70% 30%, #3a3a6e 0%, transparent 70%); }
.scn-return-to-udolpho .moon { position:absolute; top:10%; right:20%; width:40px; height:40px; background: radial-gradient(circle, #e0e8ff 0%, #a0b0d0 80%); border-radius: 50%; box-shadow: 0 0 30px 10px #a0b0d0, 0 0 60px 20px rgba(160,176,208,0.3); animation: ret-moon 6s ease-in-out infinite alternate; }
.scn-return-to-udolpho .stars { position:absolute; top:5%; left:10%; width:4px; height:4px; background: #fff; border-radius: 50%; box-shadow: 15px 20px 0 0 #fff, 30px 5px 0 0 #fff, 50px 15px 0 0 #fff, 70px 10px 0 0 #fff; animation: ret-stars 20s linear infinite; }
.scn-return-to-udolpho .castle-silhouette { position:absolute; bottom:30%; left:5%; right:30%; height:50%; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%); border-radius: 30% 30% 0 0 / 50% 50% 0 0; }
.scn-return-to-udolpho .figure-carriage { position:absolute; bottom:25%; left:50%; width:30px; height:25px; background: linear-gradient(180deg, #2a2a4a 0%, #1a1a2a 100%); border-radius: 30% 30% 20% 20%; transform-origin: bottom center; animation: ret-carriage 8s ease-in-out infinite; }
.scn-return-to-udolpho .path { position:absolute; bottom:25%; left:40%; right:20%; height:5px; background: linear-gradient(90deg, #2a2a3a, #3a3a4a, #2a2a3a); border-radius: 50%; filter: blur(2px); animation: ret-path 8s linear infinite; }
.scn-return-to-udolpho .tree { position:absolute; bottom:30%; left:15%; width:20px; height:60px; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%); border-radius: 40% 40% 20% 20% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ret-tree 15s ease-in-out infinite alternate; }
.scn-return-to-udolpho .cloud { position:absolute; top:20%; left:0; width:80px; height:15px; background: rgba(255,255,255,0.1); border-radius: 50%; filter: blur(8px); animation: ret-cloud 40s linear infinite; }
@keyframes ret-moon { 0% { transform: scale(1); opacity: 0.8; } 50% { transform: scale(1.08); opacity: 1; } 100% { transform: scale(1); opacity: 0.9; } }
@keyframes ret-stars { 0% { opacity: 0.5; } 50% { opacity: 1; } 100% { opacity: 0.5; } }
@keyframes ret-carriage { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(10px) rotate(1deg); } 50% { transform: translateX(20px) rotate(-1deg); } 75% { transform: translateX(30px) rotate(0deg); } 100% { transform: translateX(40px) rotate(1deg); } }
@keyframes ret-path { 0% { background-position: 0% 50%; } 100% { background-position: 100% 50%; } }
@keyframes ret-tree { 0% { transform: scale(1) rotate(-2deg); } 50% { transform: scale(1.05) rotate(0deg); } 100% { transform: scale(1) rotate(2deg); } }
@keyframes ret-cloud { 0% { transform: translateX(-80px); } 100% { transform: translateX(120vw); } }

.scn-night-approach-castle { background: linear-gradient(180deg, #0a0a2e 0%, #1a1a3e 60%, #0a0a1a 100%), radial-gradient(ellipse at 50% 0%, #2a2a4e 0%, transparent 70%); }
.scn-night-approach-castle .moon-glow { position:absolute; top:15%; left:50%; width:50px; height:50px; background: radial-gradient(circle, #d0d8f0 0%, #8090b0 80%); border-radius: 50%; box-shadow: 0 0 40px 20px #8090b0, 0 0 80px 30px rgba(128,144,176,0.3); animation: nig-moon 8s ease-in-out infinite alternate; }
.scn-night-approach-castle .castle-gate { position:absolute; bottom:30%; left:35%; right:15%; height:40%; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%); border-radius: 30% 30% 0 0 / 20% 20% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,0.6); }
.scn-night-approach-castle .drawbridge { position:absolute; bottom:30%; left:42%; width:40px; height:15px; background: linear-gradient(90deg, #1a1a2a, #2a2a3a, #1a1a2a); transform: rotate(10deg); transform-origin: bottom left; border-radius: 10% 10% 0 0; animation: nig-bridge 6s ease-in-out infinite; }
.scn-night-approach-castle .moat { position:absolute; bottom:25%; left:20%; right:20%; height:5px; background: linear-gradient(90deg, #0a0a2e, #1a1a3e, #0a0a2e); border-radius: 50%; filter: blur(3px); animation: nig-moat 10s linear infinite; }
.scn-night-approach-castle .rider { position:absolute; bottom:25%; left:20%; width:20px; height:30px; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: nig-rider 12s ease-in-out infinite; }
.scn-night-approach-castle .path-far { position:absolute; bottom:25%; left:10%; right:40%; height:3px; background: linear-gradient(90deg, transparent, #2a2a4a, transparent); filter: blur(2px); animation: nig-path 8s linear infinite; }
.scn-night-approach-castle .clouds { position:absolute; top:10%; left:0; width:120px; height:18px; background: rgba(255,255,255,0.05); border-radius: 50%; filter: blur(10px); animation: nig-clouds 60s linear infinite; }
@keyframes nig-moon { 0% { opacity: 0.6; box-shadow: 0 0 30px 10px #8090b0; } 50% { opacity: 1; box-shadow: 0 0 50px 20px #d0d8f0; } 100% { opacity: 0.7; box-shadow: 0 0 35px 15px #8090b0; } }
@keyframes nig-bridge { 0% { transform: rotate(10deg); } 50% { transform: rotate(15deg); } 100% { transform: rotate(10deg); } }
@keyframes nig-moat { 0% { opacity: 0.3; } 50% { opacity: 0.6; } 100% { opacity: 0.3; } }
@keyframes nig-rider { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(8px) rotate(2deg); } 50% { transform: translateX(16px) rotate(-1deg); } 75% { transform: translateX(24px) rotate(1deg); } 100% { transform: translateX(32px) rotate(0deg); } }
@keyframes nig-path { 0% { background-position: 0% 50%; } 100% { background-position: 100% 50%; } }
@keyframes nig-clouds { 0% { transform: translateX(0); } 100% { transform: translateX(120vw); } }

/* Scene: emily-tries-to-undeceive */
.scn-emily-tries-to-undeceive {
  background: 
    linear-gradient(180deg, #2a1e1a 0%, #1a1210 40%, #0d0a08 100%),
    radial-gradient(ellipse at 50% 60%, #3a2a1a 0%, transparent 70%);
}
.scn-emily-tries-to-undeceive .bg-wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #2a1e1a 0%, #1a1210 100%);
}
.scn-emily-tries-to-undeceive .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #1a1210 0%, #0a0808 100%);
  border-radius: 60% 40% 0 0 / 40% 30% 0 0;
}
.scn-emily-tries-to-undeceive .candle {
  position: absolute; bottom: 35%; left: 50%; width: 8px; height: 40px;
  margin-left: -4px;
  background: linear-gradient(180deg, #c8a87a 0%, #8a6a4a 100%);
  border-radius: 2px;
}
.scn-emily-tries-to-undeceive .candle-flame {
  position: absolute; bottom: calc(35% + 40px); left: 50%; width: 12px; height: 20px;
  margin-left: -6px;
  background: radial-gradient(circle at 50% 80%, #ffe080 0%, #d08040 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px #d08040, 0 0 60px 20px rgba(208,128,64,0.3);
  animation: etu-flicker 2s ease-in-out infinite alternate;
}
.scn-emily-tries-to-undeceive .figure-emily {
  position: absolute; bottom: 35%; left: 30%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #1a141a 0%, #0d0a0d 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: etu-tremble 1.2s ease-in-out infinite alternate;
}
.scn-emily-tries-to-undeceive .figure-morano {
  position: absolute; bottom: 35%; right: 25%; width: 34px; height: 75px;
  background: linear-gradient(180deg, #1a141a 0%, #0d0a0d 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: etu-lean 3s ease-in-out infinite alternate;
}
.scn-emily-tries-to-undeceive .shadow-left {
  position: absolute; bottom: 35%; left: 20%; width: 60px; height: 20px;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.4) 0%, transparent 100%);
  animation: etu-shadow-sway 4s ease-in-out infinite alternate;
}
.scn-emily-tries-to-undeceive .shadow-right {
  position: absolute; bottom: 35%; right: 15%; width: 80px; height: 25px;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.5) 0%, transparent 100%);
  animation: etu-shadow-sway 4.5s ease-in-out infinite alternate-reverse;
}
@keyframes etu-flicker {
  0% { opacity: 0.8; transform: scaleY(1) translateY(0); }
  50% { opacity: 1; transform: scaleY(1.15) translateY(-2px); }
  100% { opacity: 0.85; transform: scaleY(0.95) translateY(1px); }
}
@keyframes etu-tremble {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(-2px) rotate(-1deg); }
  75% { transform: translateX(2px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes etu-lean {
  0% { transform: rotate(0deg) translateX(0); }
  50% { transform: rotate(3deg) translateX(4px); }
  100% { transform: rotate(-2deg) translateX(-2px); }
}
@keyframes etu-shadow-sway {
  0% { transform: scaleX(1) translateX(0); }
  50% { transform: scaleX(1.1) translateX(5px); }
  100% { transform: scaleX(0.9) translateX(-3px); }
}

/* Scene: quesnel-anger */
.scn-quesnel-anger {
  background:
    linear-gradient(180deg, #1f1410 0%, #120a08 50%, #080505 100%),
    radial-gradient(ellipse at 50% 30%, #2a1a12 0%, transparent 80%);
}
.scn-quesnel-anger .bg-panel {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #1f100a 0%, #120808 100%);
}
.scn-quesnel-anger .bg-shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(0deg, #080505 0%, transparent 100%);
}
.scn-quesnel-anger .desk {
  position: absolute; bottom: 0; left: 20%; right: 20%; height: 30%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e08 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 -4px 12px rgba(0,0,0,0.6);
}
.scn-quesnel-anger .paper {
  position: absolute; bottom: 12%; left: 42%; width: 16%; height: 20%;
  background: linear-gradient(135deg, #c8b89a 0%, #a0886a 100%);
  border-radius: 2px;
  transform: rotate(-5deg);
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: qa-paper 8s ease-in-out infinite alternate;
}
.scn-quesnel-anger .figure-quesnel {
  position: absolute; bottom: 30%; left: 50%; width: 40px; height: 80px;
  margin-left: -20px;
  background: linear-gradient(180deg, #1a121a 0%, #0d080d 100%);
  border-radius: 35% 35% 25% 25% / 45% 45% 25% 25%;
  transform-origin: bottom center;
  animation: qa-stamp 2.5s ease-in-out infinite;
}
.scn-quesnel-anger .candle-desk {
  position: absolute; bottom: 30%; left: 35%; width: 6px; height: 30px;
  background: linear-gradient(180deg, #b89a7a 0%, #7a5a3a 100%);
  border-radius: 2px;
}
.scn-quesnel-anger .candle-flame-desk {
  position: absolute; bottom: calc(30% + 30px); left: 35%; width: 10px; height: 16px;
  margin-left: -2px;
  background: radial-gradient(circle at 50% 80%, #ffd060 0%, #c08030 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px #c08030, 0 0 40px 12px rgba(192,128,48,0.2);
  animation: qa-flicker 1.8s ease-in-out infinite alternate;
}
.scn-quesnel-anger .wall-sconce {
  position: absolute; top: 18%; right: 15%; width: 10px; height: 20px;
  background: linear-gradient(180deg, #2a1a0e 0%, #1a0a04 100%);
  border-radius: 50% 50% 0 0;
  box-shadow: 0 0 8px 2px #c08030;
  animation: qa-flicker 2.5s ease-in-out infinite alternate-reverse;
}
@keyframes qa-paper {
  0% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(-8deg) translateY(-2px); }
  100% { transform: rotate(-3deg) translateY(1px); }
}
@keyframes qa-stamp {
  0% { transform: translateX(0) rotate(0deg); }
  30% { transform: translateX(3px) rotate(2deg); }
  60% { transform: translateX(-3px) rotate(-2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes qa-flicker {
  0% { opacity: 0.85; transform: scaleY(1) scaleX(1); }
  50% { opacity: 1; transform: scaleY(1.1) scaleX(0.95); }
  100% { opacity: 0.8; transform: scaleY(0.9) scaleX(1.05); }
}

/* Scene: emily-fortitude */
.scn-emily-fortitude {
  background:
    linear-gradient(180deg, #1e1412 0%, #120c0a 50%, #080606 100%),
    radial-gradient(ellipse at 40% 70%, #2a1a12 0%, transparent 70%);
}
.scn-emily-fortitude .bg-room {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #1f1210 0%, #0e0806 100%);
}
.scn-emily-fortitude .chair {
  position: absolute; bottom: 0; left: 10%; width: 40%; height: 35%;
  background: linear-gradient(180deg, #2a1a12 0%, #120a08 100%);
  border-radius: 20% 20% 5% 5% / 30% 30% 10% 10%;
  box-shadow: 0 -4px 10px rgba(0,0,0,0.5);
}
.scn-emily-fortitude .table {
  position: absolute; bottom: 5%; left: 30%; width: 35%; height: 20%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e08 100%);
  border-radius: 10%;
  box-shadow: 0 2px 8px rgba(0,0,0,0.6);
}
.scn-emily-fortitude .book {
  position: absolute; bottom: 12%; left: 38%; width: 8%; height: 10%;
  background: linear-gradient(135deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 2px;
  transform: rotate(5deg);
  box-shadow: 0 1px 4px rgba(0,0,0,0.5);
  animation: ef-book 10s ease-in-out infinite alternate;
}
.scn-emily-fortitude .figure-emily-stood {
  position: absolute; bottom: 30%; left: 48%; width: 28px; height: 70px;
  background: linear-gradient(180deg, #1a121a 0%, #0d080d 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: ef-stand 6s ease-in-out infinite;
}
.scn-emily-fortitude .candle-table {
  position: absolute; bottom: 20%; left: 43%; width: 6px; height: 28px;
  background: linear-gradient(180deg, #b89a7a 0%, #7a5a3a 100%);
  border-radius: 2px;
}
.scn-emily-fortitude .flame-table {
  position: absolute; bottom: calc(20% + 28px); left: 43%; width: 10px; height: 16px;
  margin-left: -2px;
  background: radial-gradient(circle at 50% 80%, #ffe0a0 0%, #c08040 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 18px 5px #c08040, 0 0 35px 10px rgba(192,128,64,0.25);
  animation: ef-flicker 1.5s ease-in-out infinite alternate;
}
.scn-emily-fortitude .shadow-fall {
  position: absolute; bottom: 25%; left: 40%; width: 50px; height: 60px;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.3) 0%, transparent 100%);
  animation: ef-shadow 7s ease-in-out infinite alternate;
}
@keyframes ef-book {
  0% { transform: rotate(5deg) scale(1); }
  50% { transform: rotate(7deg) scale(1.02); }
  100% { transform: rotate(2deg) scale(0.98); }
}
@keyframes ef-stand {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-1px) rotate(1deg); }
  75% { transform: translateY(-2px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes ef-flicker {
  0% { opacity: 0.9; transform: scaleY(1) scaleX(1); }
  50% { opacity: 1; transform: scaleY(1.12) scaleX(0.92); }
  100% { opacity: 0.85; transform: scaleY(0.92) scaleX(1.08); }
}
@keyframes ef-shadow {
  0% { transform: scaleX(1) translateX(0); }
  50% { transform: scaleX(1.15) translateX(3px); }
  100% { transform: scaleX(0.85) translateX(-4px); }
}

/* Scene: emily-remembers-father */
.scn-emily-remembers-father {
  background:
    linear-gradient(180deg, #141a20 0%, #0e1015 50%, #080a0d 100%),
    radial-gradient(ellipse at 30% 20%, #2a3a4a 0%, transparent 70%);
}
.scn-emily-remembers-father .bg-dark {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #0e1015 0%, #080a0d 100%);
}
.scn-emily-remembers-father .window-frame {
  position: absolute; top: 10%; left: 20%; right: 40%; bottom: 30%;
  border: 4px solid #1a1a1a;
  background: transparent;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.5);
}
.scn-emily-remembers-father .window-pane {
  position: absolute; top: 10%; left: 20%; right: 40%; bottom: 30%;
  background: linear-gradient(135deg, rgba(200,220,255,0.2) 0%, rgba(100,120,160,0.1) 100%);
  border-radius: 2px;
}
.scn-emily-remembers-father .moonlight {
  position: absolute; top: 15%; left: 25%; width: 30%; height: 25%;
  background: radial-gradient(ellipse at 50% 0%, rgba(200,220,255,0.12) 0%, transparent 100%);
  animation: erf-moon 12s ease-in-out infinite alternate;
}
.scn-emily-remembers-father .figure-emily-kneel {
  position: absolute; bottom: 10%; left: 35%; width: 26px; height: 50px;
  background: linear-gradient(180deg, #1a1a22 0%, #0d0d12 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%;
  transform-origin: bottom center;
  animation: erf-kneel 5s ease-in-out infinite;
}
.scn-emily-remembers-father .crucifix {
  position: absolute; bottom: 18%; left: 42%; width: 4px; height: 24px;
  background: #2a2a2a;
  border-radius: 1px;
  box-shadow: 0 0 4px rgba(255,255,255,0.1);
}
.scn-emily-remembers-father .locket {
  position: absolute; bottom: 18%; left: 48%; width: 12px; height: 16px;
  background: radial-gradient(circle, #8a7a5a 0%, #5a4a3a 100%);
  border-radius: 30%;
  box-shadow: 0 1px 4px rgba(0,0,0,0.4);
  animation: erf-locket 8s ease-in-out infinite alternate;
}
.scn-emily-remembers-father .shadow-grief {
  position: absolute; bottom: 0; left: 30%; right: 20%; height: 30%;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.3) 0%, transparent 100%);
  animation: erf-shadow-slow 10s ease-in-out infinite alternate;
}
@keyframes erf-moon {
  0% { opacity: 0.6; transform: scale(1) translateY(0); }
  50% { opacity: 0.8; transform: scale(1.05) translateY(-2px); }
  100% { opacity: 0.6; transform: scale(0.95) translateY(1px); }
}
@keyframes erf-kneel {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-1px) rotate(1deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes erf-locket {
  0% { transform: scale(1) rotate(0deg); opacity: 0.9; }
  50% { transform: scale(1.05) rotate(3deg); opacity: 1; }
  100% { transform: scale(0.95) rotate(-2deg); opacity: 0.85; }
}
@keyframes erf-shadow-slow {
  0% { opacity: 0.4; transform: scaleY(1); }
  50% { opacity: 0.6; transform: scaleY(1.1); }
  100% { opacity: 0.4; transform: scaleY(0.9); }
}

/* duel-continues */
.scn-duel-continues {
  background: linear-gradient(180deg, #1a1108 0%, #0e0a05 40%, #2a1a0a 60%, #1a1108 100%), radial-gradient(ellipse at 50% 100%, #3a2010 0%, transparent 70%);
}
.scn-duel-continues .bg-arch { position:absolute; inset:0 0 30% 0; background: linear-gradient(135deg, #1e1408 0%, #0d0805 50%, #1e1408 100%); border-radius: 50% 50% 0 0 / 60% 60% 0 0; animation: dc-arch 8s ease-in-out infinite alternate; }
.scn-duel-continues .bg-pillar { position:absolute; bottom:0; left:10%; width:8%; height:70%; background: linear-gradient(90deg, #2a1a0a 0%, #3a2210 30%, #2a1a0a 100%); border-radius: 4px; box-shadow: -2px 0 10px rgba(0,0,0,0.6); }
.scn-duel-continues .figure-left { position:absolute; bottom:15%; left:25%; width:30px; height:60px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 30% 30% 40% 40% / 50% 50% 40% 40%; transform-origin: bottom center; animation: dc-fig-left 0.6s ease-in-out infinite alternate; }
.scn-duel-continues .figure-right { position:absolute; bottom:15%; right:25%; width:30px; height:60px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 30% 30% 40% 40% / 50% 50% 40% 40%; transform-origin: bottom center; animation: dc-fig-right 0.6s ease-in-out infinite alternate; }
.scn-duel-continues .sword-left { position:absolute; bottom:40%; left:30%; width:40px; height:3px; background: linear-gradient(90deg, #a08060 0%, #c0a080 100%); border-radius: 2px; transform-origin: left center; animation: dc-sword-left 0.3s ease-in-out infinite alternate; box-shadow: 0 0 4px #d0b090; }
.scn-duel-continues .sword-right { position:absolute; bottom:40%; right:30%; width:40px; height:3px; background: linear-gradient(270deg, #a08060 0%, #c0a080 100%); border-radius: 2px; transform-origin: right center; animation: dc-sword-right 0.3s ease-in-out infinite alternate; box-shadow: 0 0 4px #d0b090; }
.scn-duel-continues .spark { position:absolute; width:6px; height:6px; background: radial-gradient(circle, #ffd080 0%, #ffa030 50%, transparent 100%); border-radius:50%; filter: blur(1px); }
.scn-duel-continues .spark-1 { bottom:50%; left:46%; animation: dc-spark 0.2s ease-in-out infinite; }
.scn-duel-continues .spark-2 { bottom:45%; left:50%; animation: dc-spark 0.2s ease-in-out infinite 0.1s; }
.scn-duel-continues .torch { position:absolute; bottom:70%; left:5%; width:10px; height:20px; background: linear-gradient(0deg, #a06030 0%, #e09040 50%, #ffc060 100%); border-radius: 50% 50% 20% 20%; animation: dc-torch 1.2s ease-in-out infinite alternate; box-shadow: 0 0 30px 10px #e08040; }
@keyframes dc-arch { 0% { opacity:0.6; transform:scaleY(0.95); } 50% { opacity:0.9; transform:scaleY(1.02); } 100% { opacity:0.7; transform:scaleY(0.98); } }
@keyframes dc-fig-left { 0% { transform: rotate(-5deg) translateX(0); } 50% { transform: rotate(5deg) translateX(-3px); } 100% { transform: rotate(-4deg) translateX(0); } }
@keyframes dc-fig-right { 0% { transform: rotate(5deg) translateX(0); } 50% { transform: rotate(-5deg) translateX(3px); } 100% { transform: rotate(4deg) translateX(0); } }
@keyframes dc-sword-left { 0% { transform: rotate(-20deg) scaleX(1); } 50% { transform: rotate(30deg) scaleX(1.1); } 100% { transform: rotate(-15deg) scaleX(0.9); } }
@keyframes dc-sword-right { 0% { transform: rotate(20deg) scaleX(1); } 50% { transform: rotate(-30deg) scaleX(1.1); } 100% { transform: rotate(15deg) scaleX(0.9); } }
@keyframes dc-spark { 0% { opacity:0; transform: scale(0.5) translateY(0); } 50% { opacity:1; transform: scale(1.5) translateY(-10px); } 100% { opacity:0; transform: scale(0.5) translateY(10px); } }
@keyframes dc-torch { 0% { opacity:0.8; transform:scaleY(0.8); } 50% { opacity:1; transform:scaleY(1.2); } 100% { opacity:0.9; transform:scaleY(0.9); } }

/* morano-wounded */
.scn-morano-wounded {
  background: linear-gradient(180deg, #1a1108 0%, #0e0a05 40%, #1e1008 70%, #0e0a05 100%), radial-gradient(ellipse at 50% 100%, #2a1808 0%, transparent 70%);
}
.scn-morano-wounded .bg-wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(90deg, #0e0a05 0%, #1a1108 50%, #0e0a05 100%); animation: mw-wall 6s ease-in-out infinite alternate; }
.scn-morano-wounded .bg-floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(0deg, #0a0604 0%, #1a1008 100%); border-radius: 10% 10% 0 0; }
.scn-morano-wounded .figure-falling { position:absolute; bottom:20%; left:30%; width:35px; height:65px; background: linear-gradient(180deg, #3a2210 0%, #1a1008 100%); border-radius: 30% 30% 40% 40% / 45% 45% 50% 50%; transform-origin: bottom center; animation: mw-fall 2s ease-in-out infinite; }
.scn-morano-wounded .figure-advancing { position:absolute; bottom:15%; right:28%; width:32px; height:60px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 30% 30% 40% 40% / 50% 50% 40% 40%; transform-origin: bottom center; animation: mw-advance 1.5s ease-in-out infinite alternate; }
.scn-morano-wounded .sword-fall { position:absolute; bottom:40%; left:38%; width:35px; height:4px; background: linear-gradient(90deg, #a08060 0%, #c0a080 100%); transform-origin: left center; border-radius: 2px; animation: mw-sword 1s ease-in-out infinite; }
.scn-morano-wounded .blood-drip { position:absolute; bottom:20%; left:35%; width:4px; height:20px; background: linear-gradient(0deg, transparent 0%, #a04020 50%, #c05030 100%); border-radius: 2px; animation: mw-blood 0.8s ease-in-out infinite; }
.scn-morano-wounded .torch-left { position:absolute; bottom:65%; left:8%; width:8px; height:18px; background: linear-gradient(0deg, #a06030 0%, #e09040 50%, #ffc060 100%); border-radius: 50% 50% 10% 10%; animation: mw-torch 1.5s ease-in-out infinite alternate; box-shadow: 0 0 25px 8px #d08040; }
.scn-morano-wounded .torch-right { position:absolute; bottom:60%; right:10%; width:8px; height:18px; background: linear-gradient(0deg, #a06030 0%, #e09040 50%, #ffc060 100%); border-radius: 50% 50% 10% 10%; animation: mw-torch 1.5s ease-in-out infinite alternate 0.7s; box-shadow: 0 0 25px 8px #d08040; }
@keyframes mw-wall { 0% { opacity:0.7; } 50% { opacity:0.9; } 100% { opacity:0.8; } }
@keyframes mw-fall { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(-20deg) translateY(-10px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes mw-advance { 0% { transform: rotate(3deg) translateX(0); } 50% { transform: rotate(-2deg) translateX(-8px); } 100% { transform: rotate(1deg) translateX(0); } }
@keyframes mw-sword { 0% { transform: rotate(-30deg) scaleX(1); } 50% { transform: rotate(10deg) scaleX(1.2); } 100% { transform: rotate(0deg) scaleX(1); } }
@keyframes mw-blood { 0% { opacity:0; transform: scaleY(0.5); } 50% { opacity:1; transform: scaleY(1.2); } 100% { opacity:0; transform: scaleY(0.5); } }
@keyframes mw-torch { 0% { opacity:0.7; transform:scaleY(0.7) rotate(-5deg); } 50% { opacity:1; transform:scaleY(1.1) rotate(3deg); } 100% { opacity:0.8; transform:scaleY(0.8) rotate(-2deg); } }

/* montoni-stays-hand */
.scn-montoni-stays-hand {
  background: linear-gradient(180deg, #0a0604 0%, #1a1008 40%, #2a1a0a 60%, #0a0604 100%), radial-gradient(ellipse at 50% 50%, #2a1a0a 0%, transparent 70%);
}
.scn-montoni-stays-hand .bg-shadow { position:absolute; inset:0; background: radial-gradient(ellipse at 60% 50%, transparent 30%, #0a0604 70%); animation: ms-shadow 10s ease-in-out infinite alternate; }
.scn-montoni-stays-hand .bg-column { position:absolute; bottom:0; left:50%; width:12%; height:70%; background: linear-gradient(90deg, #1a1008 0%, #2a1a0a 30%, #1a1008 100%); transform: translateX(-50%); border-radius: 4px; box-shadow: 2px 0 15px rgba(0,0,0,0.7); }
.scn-montoni-stays-hand .figure-standing { position:absolute; bottom:15%; left:40%; width:35px; height:65px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 30% 30% 40% 40% / 50% 50% 40% 40%; transform-origin: bottom center; animation: ms-stand 2s ease-in-out infinite alternate; }
.scn-montoni-stays-hand .figure-fallen { position:absolute; bottom:12%; left:55%; width:40px; height:50px; background: linear-gradient(180deg, #2a1a0a 0%, #0a0604 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform: rotate(30deg); transform-origin: bottom center; animation: ms-fallen 4s ease-in-out infinite; }
.scn-montoni-stays-hand .arm-raised { position:absolute; bottom:50%; left:42%; width:20px; height:30px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 20% 20% 50% 50% / 30% 30% 40% 40%; transform-origin: bottom center; animation: ms-arm 1.2s ease-in-out infinite; }
.scn-montoni-stays-hand .hand-open { position:absolute; bottom:75%; left:43%; width:12px; height:10px; background: radial-gradient(circle, #4a3018 0%, #2a1a0a 100%); border-radius: 50%; animation: ms-hand 0.8s ease-in-out infinite alternate; }
.scn-montoni-stays-hand .candle { position:absolute; bottom:68%; right:20%; width:6px; height:14px; background: linear-gradient(0deg, #a06030 0%, #e09040 50%, #ffc060 100%); border-radius: 4px 4px 0 0; animation: ms-candle 3s ease-in-out infinite alternate; box-shadow: 0 0 20px 5px #d08040; }
.scn-montoni-stays-hand .candle-glow { position:absolute; bottom:65%; right:20%; width:30px; height:30px; background: radial-gradient(circle, rgba(255,192,96,0.4) 0%, transparent 70%); border-radius:50%; animation: ms-glow 2s ease-in-out infinite alternate; }
@keyframes ms-shadow { 0% { opacity:0.8; } 50% { opacity:0.5; } 100% { opacity:0.9; } }
@keyframes ms-stand { 0% { transform: translateX(0) rotate(2deg); } 50% { transform: translateX(-5px) rotate(-1deg); } 100% { transform: translateX(0) rotate(1deg); } }
@keyframes ms-fallen { 0% { transform: rotate(30deg) translateY(0); } 50% { transform: rotate(25deg) translateY(5px); } 100% { transform: rotate(35deg) translateY(0); } }
@keyframes ms-arm { 0% { transform: rotate(-40deg) scaleY(0.8); } 50% { transform: rotate(10deg) scaleY(1.2); } 100% { transform: rotate(-30deg) scaleY(0.9); } }
@keyframes ms-hand { 0% { transform: scale(0.8) rotate(-5deg); } 50% { transform: scale(1.1) rotate(0deg); } 100% { transform: scale(0.9) rotate(5deg); } }
@keyframes ms-candle { 0% { opacity:0.6; transform:scaleY(0.8); } 50% { opacity:1; transform:scaleY(1.2); } 100% { opacity:0.8; transform:scaleY(0.9); } }
@keyframes ms-glow { 0% { opacity:0.3; transform:scale(0.9); } 50% { opacity:0.7; transform:scale(1.2); } 100% { opacity:0.4; transform:scale(1); } }

/* morano-refuses-help */
.scn-morano-refuses-help {
  background: linear-gradient(180deg, #0e0a05 0%, #1a1008 50%, #2a1a0a 70%, #0e0a05 100%), radial-gradient(ellipse at 50% 60%, #2a1a0a 0%, transparent 80%);
}
.scn-morano-refuses-help .bg-dark { position:absolute; inset:0; background: linear-gradient(135deg, #0e0a05 0%, #1a1008 50%, #0e0a05 100%); animation: mr-dark 12s ease-in-out infinite alternate; }
.scn-morano-refuses-help .bg-archway { position:absolute; bottom:0; left:50%; width:8%; height:80%; background: linear-gradient(180deg, #1a1008 0%, #0a0604 100%); transform: translateX(-50%); border-radius: 6px; box-shadow: -2px 0 12px rgba(0,0,0,0.8), 2px 0 12px rgba(0,0,0,0.8); }
.scn-morano-refuses-help .group-servants { position:absolute; bottom:25%; left:10%; width:15%; height:35%; background: radial-gradient(ellipse at 50% 100%, #2a1a0a 0%, #0e0a05 100%); border-radius: 40% 40% 0 0; animation: mr-group 6s ease-in-out infinite; }
.scn-morano-refuses-help .figure-wounded { position:absolute; bottom:15%; left:40%; width:38px; height:55px; background: linear-gradient(180deg, #3a2210 0%, #1a1008 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform: rotate(-10deg); transform-origin: bottom center; animation: mr-wounded 3s ease-in-out infinite; }
.scn-morano-refuses-help .figure-emily { position:absolute; bottom:20%; left:55%; width:28px; height:50px; background: linear-gradient(180deg, #4a3020 0%, #2a1a0a 100%); border-radius: 35% 35% 40% 40% / 45% 45% 45% 45%; transform-origin: bottom center; animation: mr-emily 2s ease-in-out infinite alternate; }
.scn-morano-refuses-help .water-bowl { position:absolute; bottom:30%; left:58%; width:14px; height:6px; background: linear-gradient(0deg, #a08060 0%, #d0b090 100%); border-radius: 0 0 50% 50%; animation: mr-bowl 2s ease-in-out infinite alternate; }
.scn-morano-refuses-help .hand-water { position:absolute; bottom:32%; left:60%; width:8px; height:12px; background: linear-gradient(180deg, #5a3a22 0%, #3a2010 100%); border-radius: 30% 30% 50% 50% / 40% 40% 30% 30%; animation: mr-hand 2s ease-in-out infinite alternate; }
.scn-morano-refuses-help .torch-flicker { position:absolute; bottom:60%; left:5%; width:10px; height:20px; background: linear-gradient(0deg, #a06030 0%, #e09040 50%, #ffc060 100%); border-radius: 50% 50% 10% 10%; animation: mr-torch 1.8s ease-in-out infinite alternate; box-shadow: 0 0 30px 10px #d08040; }
@keyframes mr-dark { 0% { opacity:0.8; } 50% { opacity:0.6; } 100% { opacity:0.9; } }
@keyframes mr-group { 0% { transform: translateY(0); } 50% { transform: translateY(3px); } 100% { transform: translateY(0); } }
@keyframes mr-wounded { 0% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-8deg) translateY(5px); } 100% { transform: rotate(-12deg) translateY(0); } }
@keyframes mr-emily { 0% { transform: rotate(-2deg) translateX(0); } 50% { transform: rotate(2deg) translateX(-5px); } 100% { transform: rotate(0deg) translateX(0); } }
@keyframes mr-bowl { 0% { transform: rotate(-3deg); } 50% { transform: rotate(3deg); } 100% { transform: rotate(-2deg); } }
@keyframes mr-hand { 0% { transform: rotate(-10deg) scaleY(0.9); } 50% { transform: rotate(5deg) scaleY(1.1); } 100% { transform: rotate(0deg) scaleY(1); } }
@keyframes mr-torch { 0% { opacity:0.6; transform:scaleY(0.7) rotate(-4deg); } 50% { opacity:1; transform:scaleY(1.15) rotate(4deg); } 100% { opacity:0.8; transform:scaleY(0.8) rotate(-2deg); } }

/* Scene: door-opens */
.scn-door-opens {
  background: 
    linear-gradient(180deg, #1a0e08 0%, #2a1810 30%, #3a2218 60%, #2a1810 100%),
    radial-gradient(ellipse at 60% 50%, #4a2820 0%, transparent 70%);
}
.scn-door-opens .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(135deg, #2a1a12 0%, #1a0e08 100%);
  animation: do-wall 20s ease-in-out infinite alternate;
}
.scn-door-opens .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #1a0e08 0%, #2a1810 100%);
  border-top: 2px solid #3a2218;
  animation: do-floor 18s ease-in-out infinite;
}
.scn-door-opens .bed {
  position: absolute; bottom: 25%; left: 10%; width: 40%; height: 35%;
  background: linear-gradient(180deg, #4a3020 0%, #2a1810 100%);
  border-radius: 6px;
  box-shadow: 0 4px 12px rgba(0,0,0,.5);
  animation: do-bed 6s ease-in-out infinite alternate;
}
.scn-door-opens .curtain {
  position: absolute; top: 15%; left: 5%; width: 20%; height: 50%;
  background: linear-gradient(135deg, #3a2218 0%, #2a1810 100%);
  border-radius: 0 20% 20% 0 / 0 50% 50% 0;
  transform-origin: left center;
  animation: do-curtain 7s ease-in-out infinite alternate;
}
.scn-door-opens .door {
  position: absolute; bottom: 25%; right: 12%; width: 18%; height: 55%;
  background: linear-gradient(180deg, #4a3020 0%, #2a1810 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 10px rgba(0,0,0,.6);
  transform-origin: right center;
  animation: do-door 12s ease-in-out infinite alternate;
}
.scn-door-opens .lamp {
  position: absolute; bottom: 30%; left: 45%; width: 12px; height: 16px;
  background: radial-gradient(circle, #ffd080 0%, #c08040 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 24px 8px #c08040, 0 0 48px 16px rgba(192,128,64,.3);
  animation: do-lamp 4s ease-in-out infinite alternate;
}
.scn-door-opens .shadow {
  position: absolute; bottom: 25%; right: 20%; width: 25%; height: 45%;
  background: linear-gradient(135deg, #0a0502 0%, transparent 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 20% 20%;
  filter: blur(2px);
  animation: do-shadow 8s ease-in-out infinite;
}
@keyframes do-wall { 0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes do-floor { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes do-bed { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }
@keyframes do-curtain { 0% { transform: scaleX(1) } 50% { transform: scaleX(0.9) } 100% { transform: scaleX(1) } }
@keyframes do-door { 0% { transform: perspective(300px) rotateY(0deg) } 50% { transform: perspective(300px) rotateY(-10deg) } 100% { transform: perspective(300px) rotateY(0deg) } }
@keyframes do-lamp { 0% { box-shadow: 0 0 20px 6px #c08040; opacity: .8 } 50% { box-shadow: 0 0 36px 12px #ffd080; opacity: 1 } 100% { box-shadow: 0 0 24px 8px #c08040; opacity: .9 } }
@keyframes do-shadow { 0% { transform: translateX(0) scale(1) } 50% { transform: translateX(-10px) scale(1.05) } 100% { transform: translateX(0) scale(1) } }

/* Scene: figure-advances */
.scn-figure-advances {
  background: 
    linear-gradient(180deg, #1a0e08 0%, #2a1810 40%, #1a0e08 100%),
    radial-gradient(ellipse at 45% 50%, #3a2218 0%, transparent 70%);
}
.scn-figure-advances .wall { position: absolute; inset: 0 0 30% 0; background: linear-gradient(135deg, #2a1a12 0%, #1a0e08 100%); animation: fa-wall 22s ease-in-out infinite; }
.scn-figure-advances .floor { position: absolute; bottom: 0; left: 0; right: 0; height: 30%; background: linear-gradient(0deg, #1a0e08 0%, #2a1810 100%); border-top: 2px solid #3a2218; }
.scn-figure-advances .bed { position: absolute; bottom: 25%; left: 10%; width: 40%; height: 35%; background: linear-gradient(180deg, #4a3020 0%, #2a1810 100%); border-radius: 6px; box-shadow: 0 4px 12px rgba(0,0,0,.5); animation: fa-bed 6s ease-in-out infinite alternate; }
.scn-figure-advances .curtain { position: absolute; top: 15%; left: 5%; width: 20%; height: 50%; background: linear-gradient(135deg, #3a2218 0%, #2a1810 100%); border-radius: 0 20% 20% 0 / 0 50% 50% 0; transform-origin: left center; animation: fa-curtain 8s ease-in-out infinite alternate; }
.scn-figure-advances .lamp { position: absolute; bottom: 30%; left: 45%; width: 12px; height: 16px; background: radial-gradient(circle, #ffd080 0%, #c08040 60%, transparent 100%); border-radius: 50%; box-shadow: 0 0 24px 8px #c08040, 0 0 48px 16px rgba(192,128,64,.3); animation: fa-lamp 3s ease-in-out infinite alternate; }
.scn-figure-advances .figure {
  position: absolute; bottom: 25%; left: 60%; width: 15%; height: 45%;
  background: linear-gradient(180deg, #0a0502 0%, #1a0e08 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  filter: blur(1px);
  animation: fa-figure 10s ease-in-out infinite alternate;
}
.scn-figure-advances .glow {
  position: absolute; bottom: 30%; left: 50%; width: 30%; height: 40%;
  background: radial-gradient(ellipse, rgba(255,208,128,.15) 0%, transparent 70%);
  filter: blur(8px);
  animation: fa-glow 5s ease-in-out infinite alternate;
}
@keyframes fa-wall { 0% { opacity: .7 } 50% { opacity: 1 } 100% { opacity: .8 } }
@keyframes fa-bed { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes fa-curtain { 0% { transform: scaleX(1) } 50% { transform: scaleX(0.85) } 100% { transform: scaleX(1) } }
@keyframes fa-lamp { 0% { box-shadow: 0 0 18px 4px #c08040; opacity: .8 } 50% { box-shadow: 0 0 40px 14px #ffd080; opacity: 1 } 100% { box-shadow: 0 0 22px 6px #c08040; opacity: .9 } }
@keyframes fa-figure { 0% { transform: translateX(0) scale(1) } 50% { transform: translateX(-15px) scale(1.03) } 100% { transform: translateX(0) scale(1) } }
@keyframes fa-glow { 0% { opacity: .3; transform: scale(1) } 50% { opacity: .7; transform: scale(1.1) } 100% { opacity: .4; transform: scale(1) } }

/* Scene: morano-revealed */
.scn-morano-revealed {
  background: 
    linear-gradient(180deg, #1a0e08 0%, #2a1810 50%, #1a0e08 100%),
    radial-gradient(ellipse at 50% 60%, #4a2820 0%, transparent 70%);
}
.scn-morano-revealed .wall { position: absolute; inset: 0 0 30% 0; background: linear-gradient(135deg, #2a1a12 0%, #1a0e08 100%); animation: mr-wall 18s ease-in-out infinite alternate; }
.scn-morano-revealed .floor { position: absolute; bottom: 0; left: 0; right: 0; height: 30%; background: linear-gradient(0deg, #1a0e08 0%, #2a1810 100%); border-top: 2px solid #3a2218; }
.scn-morano-revealed .hearth { position: absolute; bottom: 25%; left: 50%; width: 25%; height: 15%; background: linear-gradient(180deg, #3a2218 0%, #1a0e08 100%); border-radius: 12px 12px 4px 4px; box-shadow: inset 0 4px 8px rgbs(0,0,0,.5); transform: translateX(-50%); }
.scn-morano-revealed .bed { position: absolute; bottom: 25%; left: 8%; width: 35%; height: 35%; background: linear-gradient(180deg, #4a3020 0%, #2a1810 100%); border-radius: 6px; box-shadow: 0 4px 12px rgba(0,0,0,.5); animation: mr-bed 8s ease-in-out infinite alternate; }
.scn-morano-revealed .lamp { position: absolute; bottom: 28%; left: 52%; width: 14px; height: 18px; background: radial-gradient(circle, #ffd080 0%, #c08040 60%, transparent 100%); border-radius: 50%; box-shadow: 0 0 28px 10px #c08040, 0 0 56px 20px rgba(192,128,64,.3); animation: mr-lamp 4s ease-in-out infinite alternate; }
.scn-morano-revealed .figure {
  position: absolute; bottom: 25%; left: 40%; width: 18%; height: 50%;
  background: linear-gradient(180deg, #0a0502 0%, #1a0e08 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  filter: blur(1px);
  animation: mr-figure 12s ease-in-out infinite;
}
.scn-morano-revealed .dog {
  position: absolute; bottom: 28%; left: 15%; width: 10%; height: 12%;
  background: linear-gradient(180deg, #3a2218 0%, #1a0e08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: mr-dog 2s ease-in-out infinite alternate;
}
.scn-morano-revealed .door { position: absolute; bottom: 25%; right: 12%; width: 16%; height: 55%; background: linear-gradient(180deg, #4a3020 0%, #2a1810 100%); border-radius: 4px; box-shadow: inset 0 0 10px rgba(0,0,0,.6); }
@keyframes mr-wall { 0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes mr-bed { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-3px) } }
@keyframes mr-lamp { 0% { box-shadow: 0 0 20px 6px #c08040; opacity: .8 } 50% { box-shadow: 0 0 44px 16px #ffd080; opacity: 1 } 100% { box-shadow: 0 0 28px 8px #c08040; opacity: .9 } }
@keyframes mr-figure { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(10px) rotate(2deg) } 50% { transform: translateX(0) rotate(0deg) } 75% { transform: translateX(-10px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes mr-dog { 0% { transform: scale(1) } 50% { transform: scale(1.05) } 100% { transform: scale(1) } }

/* Scene: escape-attempt */
.scn-escape-attempt {
  background: 
    linear-gradient(180deg, #1a0e08 0%, #2a1810 40%, #1a0e08 100%),
    radial-gradient(ellipse at 40% 50%, #3a2218 0%, transparent 70%);
}
.scn-escape-attempt .wall { position: absolute; inset: 0 0 30% 0; background: linear-gradient(135deg, #2a1a12 0%, #1a0e08 100%); animation: ea-wall 20s ease-in-out infinite; }
.scn-escape-attempt .floor { position: absolute; bottom: 0; left: 0; right: 0; height: 30%; background: linear-gradient(0deg, #1a0e08 0%, #2a1810 100%); border-top: 2px solid #3a2218; }
.scn-escape-attempt .stairs {
  position: absolute; bottom: 10%; right: 5%; width: 30%; height: 60%;
  background: linear-gradient(180deg, #3a2218 0%, #1a0e08 100%);
  clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 80%);
  animation: ea-stairs 15s ease-in-out infinite alternate;
}
.scn-escape-attempt .door { position: absolute; bottom: 25%; right: 10%; width: 16%; height: 55%; background: linear-gradient(180deg, #4a3020 0%, #2a1810 100%); border-radius: 4px; box-shadow: inset 0 0 10px rgba(0,0,0,.6); transform-origin: left center; animation: ea-door 6s ease-in-out infinite alternate; }
.scn-escape-attempt .figure-a {
  position: absolute; bottom: 25%; left: 20%; width: 14%; height: 48%;
  background: linear-gradient(180deg, #0a0502 0%, #1a0e08 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  animation: ea-figure-a 8s ease-in-out infinite;
}
.scn-escape-attempt .figure-b {
  position: absolute; bottom: 25%; left: 45%; width: 16%; height: 50%;
  background: linear-gradient(180deg, #2a1810 0%, #1a0e08 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  filter: blur(1px);
  animation: ea-figure-b 10s ease-in-out infinite;
}
.scn-escape-attempt .hand {
  position: absolute; bottom: 55%; left: 35%; width: 8%; height: 6%;
  background: linear-gradient(180deg, #4a3020 0%, #2a1810 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform: rotate(-20deg);
  animation: ea-hand 3s ease-in-out infinite alternate;
}
@keyframes ea-wall { 0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes ea-stairs { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes ea-door { 0% { transform: perspective(400px) rotateY(0deg) } 50% { transform: perspective(400px) rotateY(-15deg) } 100% { transform: perspective(400px) rotateY(0deg) } }
@keyframes ea-figure-a { 0% { transform: translateX(0) } 25% { transform: translateX(15px) } 50% { transform: translateX(30px) } 75% { transform: translateX(15px) } 100% { transform: translateX(0) } }
@keyframes ea-figure-b { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(-20px) rotate(3deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes ea-hand { 0% { transform: rotate(-20deg) scale(1) } 50% { transform: rotate(-10deg) scale(1.1) } 100% { transform: rotate(-20deg) scale(1) } }

.scn-housekeeper-dorothee {
  background: linear-gradient(180deg, #2b1a0e 0%, #3d2a1a 40%, #4a3828 100%), radial-gradient(ellipse at 50% 80%, #6b4a2e 0%, transparent 70%);
}
.scn-housekeeper-dorothee .room-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #3a2a1a 0%, #2b1a0e 100%);
}
.scn-housekeeper-dorothee .floor-plank {
  position: absolute; bottom: 0; left: 0; right: 0; height: 28%;
  background: linear-gradient(180deg, #4a3828 0%, #3a2a1a 100%);
  border-top: 2px solid #5a4838;
  box-shadow: inset 0 6px 12px rgba(0,0,0,0.5);
}
.scn-housekeeper-dorothee .table-heavy {
  position: absolute; bottom: 22%; left: 35%; width: 30%; height: 8%;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2a0e 100%);
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
}
.scn-housekeeper-dorothee .candle-flame {
  position: absolute; bottom: 30%; left: 48%; width: 10px; height: 20px;
  background: radial-gradient(circle at 50% 40%, #ffcc70 0%, #e8a040 50%, #b07030 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 20px 6px #e8a040, 0 0 40px 12px rgba(232,160,64,0.4);
  animation: hd1-flicker 2s ease-in-out infinite;
}
.scn-housekeeper-dorothee .figure-silhouette {
  position: absolute; bottom: 26%; left: 42%; width: 20px; height: 38px;
  background: linear-gradient(180deg, #1a0e06 0%, #0a0502 100%);
  border-radius: 50% 50% 45% 45% / 55% 55% 40% 40%;
  transform-origin: bottom center;
  animation: hd1-breathe 4s ease-in-out infinite;
}
.scn-housekeeper-dorothee .window-sash {
  position: absolute; bottom: 34%; left: 70%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%);
  border: 2px solid #3a2a1a;
  border-radius: 2px;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.8);
}
.scn-housekeeper-dorothee .curtain-drape {
  position: absolute; bottom: 34%; left: 66%; width: 12px; height: 52px;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 20% 0 0 60%;
  animation: hd1-sway 8s ease-in-out infinite alternate;
}
@keyframes hd1-flicker {
  0% { opacity: 0.8; transform: scaleY(1); }
  25% { opacity: 1; transform: scaleY(1.05); }
  50% { opacity: 0.9; transform: scaleY(0.95) translateY(1px); }
  75% { opacity: 1; transform: scaleY(1.02); }
  100% { opacity: 0.85; transform: scaleY(1); }
}
@keyframes hd1-breathe {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-1px) scaleY(1.02); }
  100% { transform: translateY(0) scaleY(1); }
}
@keyframes hd1-sway {
  0% { transform: rotate(0deg) translateX(0); }
  50% { transform: rotate(3deg) translateX(2px); }
  100% { transform: rotate(-2deg) translateX(-1px); }
}

.scn-countess-displeasure {
  background: linear-gradient(180deg, #1a1210 0%, #2a2018 40%, #3a2a20 100%), radial-gradient(ellipse at 30% 60%, #4a3a2a 0%, transparent 70%);
}
.scn-countess-displeasure .scene-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #3a2a20 0%, #1a1210 100%);
  border-top: 1px solid #4a3a2a;
}
.scn-countess-displeasure .back-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(90deg, #2a2018 0%, #1a1210 50%, #2a2018 100%);
}
.scn-countess-displeasure .lamp-stand {
  position: absolute; bottom: 20%; left: 48%; width: 6px; height: 18%;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a20 100%);
  border-radius: 2px;
}
.scn-countess-displeasure .lamp-glow {
  position: absolute; bottom: 38%; left: 46%; width: 28px; height: 28px;
  background: radial-gradient(circle at 50% 60%, #e8c060 0%, #c09840 50%, #806028 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 8px #c09840, 0 0 60px 16px rgba(192,152,64,0.4);
  animation: cd2-pulse 1.5s ease-in-out infinite alternate;
}
.scn-countess-displeasure .countess-figure {
  position: absolute; bottom: 28%; left: 36%; width: 22px; height: 42px;
  background: linear-gradient(180deg, #302018 0%, #1a0e08 100%);
  border-radius: 50% 50% 40% 40% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: cd2-tense 2s ease-in-out infinite;
}
.scn-countess-displeasure .dorothee-figure {
  position: absolute; bottom: 26%; left: 58%; width: 20px; height: 36px;
  background: linear-gradient(180deg, #2a1a12 0%, #120a06 100%);
  border-radius: 45% 55% 40% 40% / 50% 60% 30% 40%;
  transform-origin: bottom center;
  animation: cd2-tense 2.5s ease-in-out infinite reverse;
}
.scn-countess-displeasure .shadow-slice {
  position: absolute; bottom: 28%; left: 44%; width: 12%; height: 50%;
  background: linear-gradient(90deg, rgba(0,0,0,0.6) 0%, transparent 100%);
  animation: cd2-shadow 3s ease-in-out infinite;
}
@keyframes cd2-pulse {
  0% { opacity: 0.7; transform: scale(0.95); }
  50% { opacity: 1; transform: scale(1.05); }
  100% { opacity: 0.85; transform: scale(0.98); }
}
@keyframes cd2-tense {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(2px) rotate(1deg); }
  50% { transform: translateX(-1px) rotate(-1deg); }
  75% { transform: translateX(3px) rotate(2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes cd2-shadow {
  0% { opacity: 0.8; transform: scaleX(1); }
  50% { opacity: 0.5; transform: scaleX(1.2); }
  100% { opacity: 0.9; transform: scaleX(0.9); }
}

.scn-count-vexed {
  background: linear-gradient(180deg, #1a1410 0%, #2a2018 40%, #382820 100%), radial-gradient(ellipse at 70% 50%, #4a3a2a 0%, transparent 60%);
}
.scn-count-vexed .chamber-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 28%;
  background: linear-gradient(180deg, #3a2a20 0%, #1a1410 100%);
}
.scn-count-vexed .chamber-wall {
  position: absolute; inset: 0 0 28% 0;
  background: linear-gradient(180deg, #2a2018 0%, #1a1410 100%);
}
.scn-count-vexed .window-frame {
  position: absolute; bottom: 35%; left: 60%; width: 70px; height: 90px;
  background: #1a1a2a;
  border: 4px solid #3a2a1a;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.8);
}
.scn-count-vexed .mountain-silhouette {
  position: absolute; bottom: 35%; left: 60%; width: 70px; height: 90px;
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 50%, #0a1a2a 100%);
  clip-path: polygon(0% 100%, 10% 60%, 30% 80%, 50% 30%, 70% 70%, 80% 40%, 100% 100%);
  animation: cv3-mountain 12s ease-in-out infinite alternate;
}
.scn-count-vexed .count-figure {
  position: absolute; bottom: 26%; left: 38%; width: 24px; height: 46px;
  background: linear-gradient(180deg, #1a1010 0%, #0a0606 100%);
  border-radius: 50% 50% 40% 40% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: cv3-point 4s ease-in-out infinite;
}
.scn-count-vexed .countess-figure {
  position: absolute; bottom: 28%; left: 54%; width: 22px; height: 40px;
  background: linear-gradient(180deg, #1a1412 0%, #0a0806 100%);
  border-radius: 50% 50% 45% 45% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: cv3-stand 5s ease-in-out infinite;
}
.scn-count-vexed .curtain-edge {
  position: absolute; bottom: 35%; left: 54%; width: 14px; height: 94px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a12 100%);
  border-radius: 20% 0 0 40%;
  animation: cv3-drape 10s ease-in-out infinite alternate;
}
@keyframes cv3-mountain {
  0% { opacity: 0.9; transform: translateY(0); }
  50% { opacity: 1; transform: translateY(-2px); }
  100% { opacity: 0.85; transform: translateY(1px); }
}
@keyframes cv3-point {
  0% { transform: translateX(0) rotate(-2deg); }
  25% { transform: translateX(4px) rotate(3deg); }
  50% { transform: translateX(-2px) rotate(-1deg); }
  75% { transform: translateX(3px) rotate(4deg); }
  100% { transform: translateX(0) rotate(-2deg); }
}
@keyframes cv3-stand {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(1px); }
}
@keyframes cv3-drape {
  0% { transform: rotate(0deg) translateX(0); }
  50% { transform: rotate(2deg) translateX(2px); }
  100% { transform: rotate(-3deg) translateX(-1px); }
}

.scn-blanche-explores {
  background: linear-gradient(180deg, #1a2a3a 0%, #2a3a4a 30%, #3a4a5a 100%), radial-gradient(ellipse at 50% 0%, #4a5a6a 0%, transparent 70%);
}
.scn-blanche-explores .gallery-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 24%;
  background: linear-gradient(180deg, #3a4a5a 0%, #2a3a4a 100%);
  border-top: 2px solid #4a5a6a;
  box-shadow: inset 0 6px 12px rgba(0,0,0,0.4);
}
.scn-blanche-explores .pilaster-left {
  position: absolute; bottom: 24%; left: 10%; width: 6%; height: 60%;
  background: linear-gradient(180deg, #4a5a6a 0%, #3a4a5a 100%);
  border-radius: 2px;
  box-shadow: 2px 0 8px rgba(0,0,0,0.3);
}
.scn-blanche-explores .pilaster-right {
  position: absolute; bottom: 24%; right: 10%; width: 6%; height: 60%;
  background: linear-gradient(180deg, #4a5a6a 0%, #3a4a5a 100%);
  border-radius: 2px;
  box-shadow: -2px 0 8px rgba(0,0,0,0.3);
}
.scn-blanche-explores .arch-top {
  position: absolute; top: 5%; left: 5%; width: 90%; height: 20%;
  background: linear-gradient(180deg, #4a5a6a 0%, #3a4a5a 100%);
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  box-shadow: 0 4px 12px rgba(0,0,0,0.3);
}
.scn-blanche-explores .mosaic-pattern {
  position: absolute; bottom: 24%; left: 0; right: 0; height: 6%;
  background: repeating-linear-gradient(45deg, #4a5a6a 0px, #3a4a5a 8px, #5a6a7a 8px, #4a5a6a 16px);
  opacity: 0.6;
}
.scn-blanche-explores .figure-blanche {
  position: absolute; bottom: 24%; left: 45%; width: 18px; height: 38px;
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%);
  border-radius: 50% 50% 40% 40% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: be4-walk 6s ease-in-out infinite;
}
.scn-blanche-explores .dusk-light {
  position: absolute; top: 0; left: 30%; width: 40%; height: 100%;
  background: radial-gradient(ellipse at 50% 20%, rgba(180,200,220,0.15) 0%, transparent 70%);
  animation: be4-light 10s ease-in-out infinite alternate;
}
.scn-blanche-explores .window-glow {
  position: absolute; bottom: 40%; left: 20%; width: 60px; height: 80px;
  background: radial-gradient(ellipse at 50% 50%, rgba(200,220,240,0.2) 0%, transparent 60%);
  border-radius: 4px;
  animation: be4-glow 8s ease-in-out infinite alternate;
}
@keyframes be4-walk {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  25% { transform: translateX(8px) translateY(-1px) rotate(1deg); }
  50% { transform: translateX(16px) translateY(0) rotate(0deg); }
  75% { transform: translateX(8px) translateY(-1px) rotate(-1deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes be4-light {
  0% { opacity: 0.6; }
  50% { opacity: 0.9; }
  100% { opacity: 0.7; }
}
@keyframes be4-glow {
  0% { opacity: 0.4; transform: scale(0.95); }
  50% { opacity: 0.7; transform: scale(1.05); }
  100% { opacity: 0.5; transform: scale(0.98); }
}

.scn-ladies-arrived {
  background: linear-gradient(180deg, #a0c4ff 0%, #f4e8c1 40%, #e0c478 100%),
              radial-gradient(ellipse at 30% 20%, #ffe08a 0%, transparent 60%);
}
.scn-ladies-arrived .sky-lr1 {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #89b9ff 0%, #ffe6a0 100%);
  animation: lr1-skydrift 30s ease-in-out infinite alternate;
}
.scn-ladies-arrived .sun-lr1 {
  position: absolute; top: 10%; left: 60%; width: 60px; height: 60px;
  background: radial-gradient(circle, #fff8d0 0%, #ffd770 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 80px 30px rgba(255,215,112,0.4);
  animation: lr1-sunpulse 6s ease-in-out infinite;
}
.scn-ladies-arrived .door-lr1 {
  position: absolute; bottom: 20%; left: 50%; width: 120px; height: 160px;
  transform: translateX(-50%);
  background: linear-gradient(90deg, #7a5a3a 0%, #9a7a5a 50%, #7a5a3a 100%);
  border-radius: 8px 8px 0 0;
  box-shadow: 0 8px 20px rgba(0,0,0,0.3);
}
.scn-ladies-arrived .threshold-lr1 {
  position: absolute; bottom: 20%; left: 46%; width: 12%; height: 6px;
  background: #4a3a2a;
  border-radius: 2px;
}
.scn-ladies-arrived .figure-left-lr1 {
  position: absolute; bottom: 22%; left: 32%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: lr1-walkleft 8s ease-in-out infinite;
}
.scn-ladies-arrived .figure-right-lr1 {
  position: absolute; bottom: 22%; left: 60%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: lr1-walkright 9s ease-in-out infinite;
}
.scn-ladies-arrived .dust-lr1 {
  position: absolute; top: 30%; left: 30%; width: 10px; height: 10px;
  background: rgba(255,255,200,0.6);
  border-radius: 50%;
  filter: blur(4px);
  animation: lr1-dust 14s ease-in-out infinite;
}
.scn-ladies-arrived .ray-lr1 {
  position: absolute; top: 0; left: 55%; width: 30%; height: 100%;
  background: linear-gradient(135deg, rgba(255,240,180,0.15) 0%, transparent 80%);
  transform: skewX(-10deg);
  animation: lr1-ray 12s ease-in-out infinite alternate;
}
@keyframes lr1-skydrift {
  0%, 100% { opacity: 0.9; }
  50% { opacity: 1; }
}
@keyframes lr1-sunpulse {
  0%, 100% { transform: scale(1); opacity: 0.9; box-shadow: 0 0 60px 20px rgba(255,215,112,0.3); }
  50% { transform: scale(1.1); opacity: 1; box-shadow: 0 0 100px 40px rgba(255,215,112,0.5); }
}
@keyframes lr1-walkleft {
  0% { transform: translateX(0) translateY(0) rotate(-2deg); }
  25% { transform: translateX(-8px) translateY(-2px) rotate(2deg); }
  50% { transform: translateX(-16px) translateY(0) rotate(-2deg); }
  75% { transform: translateX(-8px) translateY(-1px) rotate(2deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes lr1-walkright {
  0% { transform: translateX(0) translateY(0) rotate(2deg); }
  30% { transform: translateX(8px) translateY(-2px) rotate(-2deg); }
  60% { transform: translateX(16px) translateY(0) rotate(2deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes lr1-dust {
  0%, 100% { transform: translate(0, 0) scale(1); opacity: 0.3; }
  50% { transform: translate(20px, -30px) scale(2); opacity: 0.8; }
}
@keyframes lr1-ray {
  0% { opacity: 0.2; transform: skewX(-10deg) scaleY(1); }
  50% { opacity: 0.6; transform: skewX(-5deg) scaleY(1.2); }
  100% { opacity: 0.3; transform: skewX(-15deg) scaleY(0.9); }
}

.scn-evening-sounds {
  background: linear-gradient(180deg, #2a2a4a 0%, #3a3a5a 30%, #4a4a6a 100%),
              radial-gradient(ellipse at 50% 0%, #5a5a7a 0%, transparent 70%);
}
.scn-evening-sounds .sky-evs {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #4a4a6a 0%, #2a2a4a 100%);
  animation: evs-skydark 20s ease-in-out infinite alternate;
}
.scn-evening-sounds .window-evs {
  position: absolute; bottom: 25%; left: 50%; width: 100px; height: 120px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a5a7a 0%, #3a3a5a 100%);
  border: 4px solid #2a2a3a;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.5);
}
.scn-evening-sounds .frame-evs {
  position: absolute; bottom: 25%; left: 50%; width: 108px; height: 128px;
  transform: translateX(-50%);
  border: 6px solid #1a1a2a;
  border-radius: 6px;
  pointer-events: none;
}
.scn-evening-sounds .curtain-left-evs {
  position: absolute; bottom: 25%; left: calc(50% - 52px); width: 40px; height: 120px;
  background: linear-gradient(180deg, #4a3a4a 0%, #2a1a2a 100%);
  transform-origin: left top;
  animation: evs-curtainl 12s ease-in-out infinite alternate;
}
.scn-evening-sounds .curtain-right-evs {
  position: absolute; bottom: 25%; right: calc(50% - 52px); width: 40px; height: 120px;
  background: linear-gradient(180deg, #4a3a4a 0%, #2a1a2a 100%);
  transform-origin: right top;
  animation: evs-curtainr 12s ease-in-out infinite alternate reverse;
}
.scn-evening-sounds .figure-evs {
  position: absolute; bottom: 25%; left: 50%; width: 20px; height: 40px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: evs-figuresway 8s ease-in-out infinite;
}
.scn-evening-sounds .tree-evs {
  position: absolute; bottom: 25%; left: 10%; width: 80px; height: 100px;
  background: radial-gradient(ellipse at 50% 100%, #1a2a1a 0%, transparent 80%);
  transform-origin: bottom center;
  animation: evs-tree 18s ease-in-out infinite alternate;
}
.scn-evening-sounds .shadow-evs {
  position: absolute; bottom: 0; left: 0; width: 100%; height: 40%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.6) 100%);
  pointer-events: none;
}
@keyframes evs-skydark {
  0%, 100% { opacity: 0.8; }
  50% { opacity: 1; }
}
@keyframes evs-curtainl {
  0% { transform: rotate(0deg) skewY(0deg); }
  50% { transform: rotate(5deg) skewY(-2deg); }
  100% { transform: rotate(-3deg) skewY(1deg); }
}
@keyframes evs-curtainr {
  0% { transform: rotate(0deg) skewY(0deg); }
  50% { transform: rotate(-5deg) skewY(2deg); }
  100% { transform: rotate(3deg) skewY(-1deg); }
}
@keyframes evs-figuresway {
  0%,100% { transform: translateX(-50%) rotate(0deg); }
  50% { transform: translateX(-50%) rotate(3deg); }
}
@keyframes evs-tree {
  0% { transform: scaleX(1) rotate(0deg); }
  50% { transform: scaleX(1.05) rotate(2deg); }
  100% { transform: scaleX(0.95) rotate(-2deg); }
}

.scn-valancourt-falters {
  background: linear-gradient(180deg, #2a1a1a 0%, #3a2a1a 40%, #4a3a2a 100%),
              radial-gradient(ellipse at 50% 60%, #5a4a3a 0%, transparent 70%);
}
.scn-valancourt-falters .wall-vf {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #2a1a1a 0%, #3a2a1a 50%, #1a1a1a 100%);
}
.scn-valancourt-falters .floor-vf {
  position: absolute; bottom: 0; left: 0; width: 100%; height: 30%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  box-shadow: inset 0 8px 12px rgba(0,0,0,0.5);
}
.scn-valancourt-falters .candle-vf {
  position: absolute; bottom: 30%; left: 30%; width: 8px; height: 30px;
  background: linear-gradient(180deg, #e0c080 0%, #c0a060 100%);
  border-radius: 2px 2px 4px 4px;
  box-shadow: 0 0 10px 4px rgba(200,160,100,0.4);
}
.scn-valancourt-falters .flame-vf {
  position: absolute; bottom: calc(30% + 30px); left: 30%; width: 14px; height: 20px;
  background: radial-gradient(ellipse, #ffd080 0%, #ffa040 50%, transparent 100%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  animation: vf-flame 0.8s ease-in-out infinite alternate;
}
.scn-valancourt-falters .shadow-figure-vf {
  position: absolute; bottom: 10%; left: 40%; width: 100px; height: 150px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  opacity: 0.6;
  animation: vf-shadowswell 10s ease-in-out infinite;
}
.scn-valancourt-falters .emily-vf {
  position: absolute; bottom: 20%; left: 20%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: vf-tremble 4s ease-in-out infinite;
}
.scn-valancourt-falters .chair-vf {
  position: absolute; bottom: 18%; left: 55%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 4px;
  box-shadow: inset 0 -4px 6px rgba(0,0,0,0.3);
}
@keyframes vf-flame {
  0% { transform: scale(1) rotate(-2deg); opacity: 0.9; }
  50% { transform: scale(1.2) rotate(4deg); opacity: 1; box-shadow: 0 0 20px 8px rgba(255,160,64,0.6); }
  100% { transform: scale(0.9) rotate(-1deg); opacity: 0.95; }
}
@keyframes vf-shadowswell {
  0%,100% { transform: scaleX(1) translateX(0); opacity: 0.5; }
  50% { transform: scaleX(1.1) translateX(-10px); opacity: 0.8; }
}
@keyframes vf-tremble {
  0%,100% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-2px) rotate(2deg); }
  50% { transform: translateY(0) rotate(-1deg); }
  75% { transform: translateY(-1px) rotate(1deg); }
}

.scn-officer-accosts {
  background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 50%, #1a1a2a 100%),
              radial-gradient(ellipse at 60% 40%, #3a2a3a 0%, transparent 70%);
}
.scn-officer-accosts .wall-oa {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #1a1a2a 0%, #2a2a3a 100%);
}
.scn-officer-accosts .floor-oa {
  position: absolute; bottom: 0; left: 0; width: 100%; height: 30%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  box-shadow: inset 0 8px 12px rgba(0,0,0,0.6);
}
.scn-officer-accosts .door-oa {
  position: absolute; bottom: 20%; right: 10%; width: 60px; height: 100px;
  background: linear-gradient(90deg, #4a3a3a 0%, #3a2a2a 100%);
  border-radius: 4px;
  box-shadow: -4px 0 8px rgba(0,0,0,0.4);
}
.scn-officer-accosts .lantern-oa {
  position: absolute; bottom: 40%; left: 20%; width: 12px; height: 24px;
  background: radial-gradient(ellipse at 50% 20%, #ffd080 0%, #8a5a3a 100%);
  border-radius: 4px;
  box-shadow: 0 0 20px 10px rgba(200,160,100,0.3);
  animation: oa-lantern 5s ease-in-out infinite alternate;
}
.scn-officer-accosts .officer-oa {
  position: absolute; bottom: 18%; left: 45%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 30% 30% 25% 25% / 50% 50% 40% 40%;
  box-shadow: 6px 0 12px rgba(0,0,0,0.5);
  animation: oa-advance 8s ease-in-out infinite;
}
.scn-officer-accosts .emily-oa {
  position: absolute; bottom: 18%; left: 25%; width: 18px; height: 44px;
  background: linear-gradient(180deg, #3a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: oa-shrink 7s ease-in-out infinite;
}
.scn-officer-accosts .shadow-oa {
  position: absolute; bottom: 0; left: 30%; width: 40%; height: 60%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.7) 100%);
  pointer-events: none;
  animation: oa-shadowcreep 12s ease-in-out infinite alternate;
}
@keyframes oa-lantern {
  0%,100% { transform: translateY(0) rotate(-3deg); box-shadow: 0 0 15px 5px rgba(200,160,100,0.2); }
  50% { transform: translateY(-4px) rotate(3deg); box-shadow: 0 0 30px 12px rgba(200,160,100,0.5); }
}
@keyframes oa-advance {
  0% { transform: translateX(0) scale(1); }
  50% { transform: translateX(-10px) scale(1.05); }
  100% { transform: translateX(0) scale(1); }
}
@keyframes oa-shrink {
  0%,100% { transform: scale(1) translateY(0); }
  50% { transform: scale(0.9) translateY(-2px); }
}
@keyframes oa-shadowcreep {
  0% { opacity: 0.5; transform: scaleX(1); }
  50% { opacity: 0.8; transform: scaleX(1.2); }
  100% { opacity: 0.6; transform: scaleX(0.9); }
}

/* thoughts-of-valancourt (tv) — dim interior, sad mood */
.scn-thoughts-of-valancourt {
  background: 
    linear-gradient(180deg, #2a2538 0%, #1e1a2a 40%, #151220 100%),
    radial-gradient(ellipse at 60% 30%, #3a3250 0%, transparent 70%);
}
.scn-thoughts-of-valancourt .tv-wall {
  position: absolute; inset: 0;
  background: linear-gradient(160deg, #2e2940 0%, #1a1728 100%);
  animation: tv-wall 14s ease-in-out infinite alternate;
}
.scn-thoughts-of-valancourt .tv-window {
  position: absolute; top: 12%; left: 18%; width: 35%; height: 50%;
  background: linear-gradient(180deg, #1a2838 0%, #0e1722 40%, #080d14 100%);
  border-radius: 4px 4px 12px 12px;
  box-shadow: inset 0 0 30px rgba(20,30,50,0.8);
  animation: tv-window 20s ease-in-out infinite;
}
.scn-thoughts-of-valancourt .tv-frame {
  position: absolute; top: 12%; left: 18%; width: 35%; height: 50%;
  border: 4px solid #4a3e30;
  border-radius: 4px 4px 12px 12px;
  box-shadow: 0 0 0 2px #2a2018, inset 0 0 0 2px #2a2018;
  background: none;
  pointer-events: none;
  animation: tv-frame 10s ease-in-out infinite;
}
.scn-thoughts-of-valancourt .tv-trees {
  position: absolute; bottom: 8%; left: 12%; width: 40%; height: 30%;
  background: 
    radial-gradient(ellipse at 30% 100%, #1a2a1a 0%, transparent 60%),
    radial-gradient(ellipse at 70% 100%, #1a2a1a 0%, transparent 60%);
  filter: blur(4px);
  animation: tv-trees 25s ease-in-out infinite alternate;
}
.scn-thoughts-of-valancourt .tv-figure {
  position: absolute; bottom: 28%; left: 26%; width: 14px; height: 36px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a28 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tv-figure 6s ease-in-out infinite alternate;
}
@keyframes tv-wall {
  0% { opacity: 0.8; }
  50% { opacity: 0.95; }
  100% { opacity: 0.85; }
}
@keyframes tv-window {
  0% { opacity: 0.7; transform: scaleX(1); }
  50% { opacity: 0.9; transform: scaleX(1.02); }
  100% { opacity: 0.75; transform: scaleX(1); }
}
@keyframes tv-frame {
  0% { border-color: #4a3e30; }
  50% { border-color: #5a4a3a; }
  100% { border-color: #4a3e30; }
}
@keyframes tv-trees {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-2px) scaleY(1.02); }
  100% { transform: translateY(0) scaleY(1); }
}
@keyframes tv-figure {
  0% { transform: translateX(0) translateY(0) rotate(1deg); }
  50% { transform: translateX(3px) translateY(-2px) rotate(-1deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}

/* old-carlo-appears (oc) — dim interior, calm, lights */
.scn-old-carlo-appears {
  background: 
    linear-gradient(180deg, #2a1e1a 0%, #1f1612 50%, #140e0a 100%),
    radial-gradient(ellipse at 50% 80%, #3a2a20 0%, transparent 70%);
}
.scn-old-carlo-appears .oc-bg {
  position: absolute; inset: 0;
  background: linear-gradient(160deg, #2a1e1a 0%, #1a120e 100%);
  animation: oc-bg 18s ease-in-out infinite alternate;
}
.scn-old-carlo-appears .oc-carlo {
  position: absolute; bottom: 15%; left: 30%; width: 22px; height: 42px;
  background: linear-gradient(180deg, #3a2a22 0%, #1e1410 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: oc-carlo 8s ease-in-out infinite;
}
.scn-old-carlo-appears .oc-branches {
  position: absolute; bottom: 30%; left: 26%; width: 40px; height: 30px;
  background: radial-gradient(ellipse at 50% 100%, #3a4a2a 0%, transparent 70%);
  filter: blur(3px);
  animation: oc-branches 12s ease-in-out infinite alternate;
}
.scn-old-carlo-appears .oc-light1 {
  position: absolute; bottom: 30%; right: 25%; width: 8px; height: 8px;
  background: radial-gradient(circle, #ffbe70 0%, #c88040 70%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px #c88040, 0 0 40px 12px rgba(200,128,64,0.5);
  animation: oc-light1 3s ease-in-out infinite alternate;
}
.scn-old-carlo-appears .oc-light2 {
  position: absolute; bottom: 32%; right: 35%; width: 7px; height: 7px;
  background: radial-gradient(circle, #ffbe70 0%, #c88040 70%);
  border-radius: 50%;
  box-shadow: 0 0 16px 4px #b87838, 0 0 32px 10px rgba(184,120,56,0.4);
  animation: oc-light2 3.4s ease-in-out infinite alternate;
  animation-delay: -1.5s;
}
@keyframes oc-bg {
  0% { opacity: 0.85; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes oc-carlo {
  0% { transform: translateX(0) rotate(-2deg); }
  50% { transform: translateX(4px) rotate(2deg); }
  100% { transform: translateX(0) rotate(-1deg); }
}
@keyframes oc-branches {
  0% { transform: scaleX(1) scaleY(1); opacity: 0.7; }
  50% { transform: scaleX(1.05) scaleY(1.03); opacity: 0.9; }
  100% { transform: scaleX(1) scaleY(1); opacity: 0.75; }
}
@keyframes oc-light1 {
  0% { box-shadow: 0 0 18px 5px #c88040; opacity: 0.85; }
  50% { box-shadow: 0 0 30px 10px #e8a860; opacity: 1; }
  100% { box-shadow: 0 0 20px 6px #c88040; opacity: 0.9; }
}
@keyframes oc-light2 {
  0% { box-shadow: 0 0 14px 4px #b87838; opacity: 0.8; }
  50% { box-shadow: 0 0 28px 8px #d89850; opacity: 1; }
  100% { box-shadow: 0 0 16px 5px #b87838; opacity: 0.85; }
}

/* carlo-conversation (cc) — firelit, calm, two figures by fireplace */
.scn-carlo-conversation {
  background: 
    linear-gradient(180deg, #2a1a10 0%, #1a0e08 50%, #0e0604 100%),
    radial-gradient(ellipse at 50% 60%, #3a1e0e 0%, transparent 60%);
}
.scn-carlo-conversation .cc-bg {
  position: absolute; inset: 0;
  background: linear-gradient(160deg, #2a1a10 0%, #1a0e08 100%);
  animation: cc-bg 22s ease-in-out infinite alternate;
}
.scn-carlo-conversation .cc-fireplace {
  position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%);
  width: 80px; height: 60px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: inset 0 -8px 20px rgba(0,0,0,0.6);
}
.scn-carlo-conversation .cc-fire {
  position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%);
  width: 40px; height: 50px;
  background: radial-gradient(ellipse at 50% 80%, #ff7a30 0%, #c84010 40%, #6a1a08 70%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 30px 8px #c84010, 0 0 60px 20px rgba(200,64,16,0.4);
  animation: cc-fire 4s ease-in-out infinite alternate;
}
.scn-carlo-conversation .cc-montoni {
  position: absolute; bottom: 16%; left: 40%; width: 18px; height: 38px;
  background: linear-gradient(180deg, #2a2018 0%, #1a120e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cc-montoni 9s ease-in-out infinite;
}
.scn-carlo-conversation .cc-carlo {
  position: absolute; bottom: 14%; left: 56%; width: 20px; height: 36px;
  background: linear-gradient(180deg, #3a2a22 0%, #1e1410 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cc-carlo 7.5s ease-in-out infinite;
  animation-delay: -2s;
}
@keyframes cc-bg {
  0% { opacity: 0.8; }
  50% { opacity: 0.95; }
  100% { opacity: 0.85; }
}
@keyframes cc-fire {
  0% { transform: translateX(-50%) scaleY(1) scaleX(1); box-shadow: 0 0 25px 6px #c84010; }
  50% { transform: translateX(-50%) scaleY(1.08) scaleX(0.92); box-shadow: 0 0 40px 12px #e86020; }
  100% { transform: translateX(-50%) scaleY(1) scaleX(1); box-shadow: 0 0 30px 8px #c84010; }
}
@keyframes cc-montoni {
  0% { transform: translateX(0) rotate(-1deg); }
  50% { transform: translateX(-3px) rotate(2deg); }
  100% { transform: translateX(0) rotate(-1deg); }
}
@keyframes cc-carlo {
  0% { transform: translateX(0) rotate(1deg); }
  50% { transform: translateX(4px) rotate(-2deg); }
  100% { transform: translateX(0) rotate(1deg); }
}

/* carlo-reports-damage (rd) — firelit, calm, showing damage */
.scn-carlo-reports-damage {
  background: 
    linear-gradient(180deg, #2a1a10 0%, #1a0e08 50%, #0e0604 100%),
    radial-gradient(ellipse at 50% 60%, #3a1e0e 0%, transparent 60%);
}
.scn-carlo-reports-damage .rd-bg {
  position: absolute; inset: 0;
  background: linear-gradient(160deg, #2a1a10 0%, #1a0e08 100%);
  animation: rd-bg 24s ease-in-out infinite alternate;
}
.scn-carlo-reports-damage .rd-fireplace {
  position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%);
  width: 80px; height: 60px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: inset 0 -8px 20px rgba(0,0,0,0.6);
}
.scn-carlo-reports-damage .rd-fire {
  position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%);
  width: 40px; height: 50px;
  background: radial-gradient(ellipse at 50% 80%, #ff7a30 0%, #c84010 40%, #6a1a08 70%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 30px 8px #c84010, 0 0 60px 20px rgba(200,64,16,0.4);
  animation: rd-fire 3.6s ease-in-out infinite alternate;
}
.scn-carlo-reports-damage .rd-montoni {
  position: absolute; bottom: 16%; left: 40%; width: 18px; height: 38px;
  background: linear-gradient(180deg, #2a2018 0%, #1a120e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rd-montoni 8.5s ease-in-out infinite;
}
.scn-carlo-reports-damage .rd-carlo {
  position: absolute; bottom: 14%; left: 56%; width: 20px; height: 36px;
  background: linear-gradient(180deg, #3a2a22 0%, #1e1410 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rd-carlo 7s ease-in-out infinite;
  animation-delay: -1s;
}
.scn-carlo-reports-damage .rd-crack {
  position: absolute; top: 10%; left: 20%; width: 30px; height: 60px;
  background: linear-gradient(135deg, #1a1008 0%, transparent 40%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 0 100%);
  opacity: 0.6;
  animation: rd-crack 15s ease-in-out infinite alternate;
}
@keyframes rd-bg {
  0% { opacity: 0.8; }
  50% { opacity: 0.95; }
  100% { opacity: 0.85; }
}
@keyframes rd-fire {
  0% { transform: translateX(-50%) scaleY(1) scaleX(1); box-shadow: 0 0 25px 6px #c84010; }
  50% { transform: translateX(-50%) scaleY(1.06) scaleX(0.94); box-shadow: 0 0 38px 10px #e86020; }
  100% { transform: translateX(-50%) scaleY(1) scaleX(1); box-shadow: 0 0 30px 8px #c84010; }
}
@keyframes rd-montoni {
  0% { transform: translateX(0) rotate(-1deg); }
  50% { transform: translateX(-2px) rotate(1deg); }
  100% { transform: translateX(0) rotate(-1deg); }
}
@keyframes rd-carlo {
  0% { transform: translateX(0) rotate(1deg); }
  50% { transform: translateX(3px) rotate(-2deg); }
  100% { transform: translateX(0) rotate(1deg); }
}
@keyframes rd-crack {
  0% { opacity: 0.4; transform: scaleX(1); }
  50% { opacity: 0.7; transform: scaleX(1.03); }
  100% { opacity: 0.5; transform: scaleX(1); }
}

/* Scene: journey-south (sunlit, calm) */
.scn-journey-south { background: linear-gradient(180deg, #f9e2b0 0%, #b8d0e0 40%, #90b8d0 70%, #7aa0b8 100%), radial-gradient(ellipse at 50% 0%, #fff5d0 0%, transparent 60%); }
.scn-journey-south .sky    { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #e8f0ff 0%, #c0d8f0 100%); animation: js-sky 24s ease-in-out infinite alternate; }
.scn-journey-south .hills  { position:absolute; bottom:35%; left:0; right:0; height:20%; background: linear-gradient(180deg, #5a7a5a 0%, #3a5a3a 100%); border-radius: 40% 60% 0 0 / 80% 70% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.3); animation: js-hills 18s ease-in-out infinite alternate; }
.scn-journey-south .road   { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #c8a868 0%, #a08050 50%, #887040 100%); animation: js-road 4s ease-in-out infinite; }
.scn-journey-south .carriage{ position:absolute; bottom:20%; left:35%; width:80px; height:50px; background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: js-carriage 3s ease-in-out infinite; }
.scn-journey-south .wheel-a{ position:absolute; bottom:18%; left:38%; width:20px; height:20px; border-radius:50%; background: linear-gradient(135deg, #4a2a1a 0%, #2a1a0a 100%); border:2px solid #1a1008; animation: js-wheel 2s linear infinite; }
.scn-journey-south .wheel-b{ position:absolute; bottom:18%; left:50%; width:20px; height:20px; border-radius:50%; background: linear-gradient(135deg, #4a2a1a 0%, #2a1a0a 100%); border:2px solid #1a1008; animation: js-wheel 2s linear infinite reverse; }
.scn-journey-south .horse  { position:absolute; bottom:23%; left:28%; width:30px; height:40px; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: js-horse 3s ease-in-out infinite; }
.scn-journey-south .sunbeam{ position:absolute; top:10%; left:45%; width:40px; height:60px; background: linear-gradient(180deg, rgba(255,255,200,.6) 0%, transparent 100%); transform: rotate(15deg); filter: blur(8px); animation: js-sunbeam 6s ease-in-out infinite alternate; }
@keyframes js-sky     { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes js-hills   { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes js-road    { 0%,100% { background-position:0 0 } 50% { background-position:-10px 0 } }
@keyframes js-carriage{ 0%,100% { transform: translateY(0) } 50% { transform: translateY(-3px) } }
@keyframes js-wheel   { 0% { transform: rotate(0deg) } 100% { transform: rotate(360deg) } }
@keyframes js-horse   { 0%,100% { transform: translateX(0) rotate(0) } 50% { transform: translateX(2px) rotate(2deg) } }
@keyframes js-sunbeam { 0% { opacity:.4; transform: rotate(15deg) scaleX(1) } 50% { opacity:.8; transform: rotate(20deg) scaleX(1.2) } 100% { opacity:.5; transform: rotate(10deg) scaleX(.9) } }

/* Scene: approach-to-chateau (dusk, calm) */
.scn-approach-to-chateau { background: linear-gradient(180deg, #2a2a4e 0%, #4a3a5e 30%, #6a5a4a 60%, #8a7a5a 100%), radial-gradient(ellipse at 50% 0%, #6a4a3a 0%, transparent 70%); }
.scn-approach-to-chateau .sky       { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #3a2a4e 0%, #5a4a5e 50%, #8a7a6a 100%); animation: ap-sky 20s ease-in-out infinite alternate; }
.scn-approach-to-chateau .mountains { position:absolute; bottom:30%; left:0; right:0; height:30%; background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%); border-radius: 30% 70% 0 0 / 60% 80% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.4); animation: ap-mountains 25s ease-in-out infinite alternate; }
.scn-approach-to-chateau .chateau   { position:absolute; bottom:30%; left:60%; width:100px; height:80px; background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%); border-radius: 4% 4% 8% 8%; box-shadow: 0 4px 12px rgba(0,0,0,.6); animation: ap-chateau 4s ease-in-out infinite; }
.scn-approach-to-chateau .trees     { position:absolute; bottom:30%; left:10%; width:80px; height:60px; background: linear-gradient(180deg, #2a4a2a 0%, #1a2a1a 100%); border-radius: 50% 50% 0 0; filter: blur(2px); animation: ap-trees 12s ease-in-out infinite alternate; }
.scn-approach-to-chateau .path      { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%); animation: ap-path 6s ease-in-out infinite; }
.scn-approach-to-chateau .carriage  { position:absolute; bottom:12%; left:30%; width:70px; height:40px; background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: ap-carriage 3s ease-in-out infinite; }
.scn-approach-to-chateau .lantern   { position:absolute; bottom:18%; left:28%; width:8px; height:10px; background: radial-gradient(circle, #f0c060 0%, #c08030 70%); border-radius:50%; box-shadow: 0 0 16px 4px #c08030, 0 0 32px 8px rgba(192,128,48,.4); animation: ap-lantern 2s ease-in-out infinite alternate; }
@keyframes ap-sky      { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes ap-mountains{ 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes ap-chateau  { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-3px) } }
@keyframes ap-trees    { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.05) } 100% { transform: scaleX(1) } }
@keyframes ap-path     { 0%,100% { background-position:0 0 } 50% { background-position:-5px 0 } }
@keyframes ap-carriage { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes ap-lantern  { 0% { opacity:.8; transform: scale(1) } 50% { opacity:1; transform: scale(1.1) } 100% { opacity:.85; transform: scale(.95) } }

/* Scene: mansion-on-promontory (dusk, calm) */
.scn-mansion-on-promontory { background: linear-gradient(180deg, #1a2a3e 0%, #2a3a4e 30%, #4a5a6a 60%, #6a7a8a 100%), radial-gradient(ellipse at 50% 0%, #3a4a5a 0%, transparent 70%); }
.scn-mansion-on-promontory .sky    { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #2a3a5e 0%, #4a5a7a 40%, #6a7a9a 100%); animation: mn-sky 30s ease-in-out infinite alternate; }
.scn-mansion-on-promontory .sea    { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #3a4a6a 0%, #1a2a4a 100%); animation: mn-sea 8s ease-in-out infinite; }
.scn-mansion-on-promontory .cliff  { position:absolute; bottom:35%; left:30%; width:40%; height:30%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.5); animation: mn-cliff 15s ease-in-out infinite alternate; }
.scn-mansion-on-promontory .mansion{ position:absolute; bottom:40%; left:45%; width:70px; height:80px; background: linear-gradient(180deg, #7a6a5a 0%, #4a3a2a 100%); border-radius: 4% 4% 8% 8%; box-shadow: 0 4px 12px rgba(0,0,0,.6); animation: mn-mansion 4s ease-in-out infinite; }
.scn-mansion-on-promontory .trees-a{ position:absolute; bottom:38%; left:30%; width:50px; height:40px; background: linear-gradient(180deg, #2a4a2a 0%, #1a2a1a 100%); border-radius: 50% 50% 0 0; filter: blur(3px); animation: mn-trees 12s ease-in-out infinite alternate; }
.scn-mansion-on-promontory .trees-b{ position:absolute; bottom:38%; left:55%; width:60px; height:45px; background: linear-gradient(180deg, #2a4a2a 0%, #1a2a1a 100%); border-radius: 50% 50% 0 0; filter: blur(3px); animation: mn-trees 14s ease-in-out infinite alternate-reverse; }
.scn-mansion-on-promontory .mist   { position:absolute; bottom:20%; left:0; right:0; height:40%; background: linear-gradient(180deg, rgba(200,210,220,.3) 0%, transparent 100%); filter: blur(8px); animation: mn-mist 20s ease-in-out infinite alternate; }
@keyframes mn-sky   { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes mn-sea   { 0%,100% { background-position:0 0 } 50% { background-position:0 5px } }
@keyframes mn-cliff { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes mn-mansion{0%,100%{transform:translateY(0)}50%{transform:translateY(-2px)}}
@keyframes mn-trees { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.08) } 100% { transform: scaleX(1) } }
@keyframes mn-mist  { 0% { opacity:.3; transform: translateX(0) } 50% { opacity:.6; transform: translateX(10px) } 100% { opacity:.4; transform: translateX(-5px) } }

/* Scene: arrival-at-gates (dusk, calm) */
.scn-arrival-at-gates { background: linear-gradient(180deg, #1a1a2e 0%, #2a2a4e 30%, #4a3a4a 60%, #6a5a5a 100%), radial-gradient(ellipse at 50% 0%, #3a2a3a 0%, transparent 70%); }
.scn-arrival-at-gates .sky     { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #2a2a4e 0%, #4a3a5e 50%, #6a5a5a 100%); animation: ar-sky 22s ease-in-out infinite alternate; }
.scn-arrival-at-gates .gate    { position:absolute; bottom:25%; left:40%; width:80px; height:100px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 4% 4% 0 0; box-shadow: 0 4px 12px rgba(0,0,0,.7); animation: ar-gate 5s ease-in-out infinite; }
.scn-arrival-at-gates .wall    { position:absolute; bottom:25%; left:20%; width:60%; height:60px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 8% 8% 0 0; filter: blur(1px); animation: ar-wall 8s ease-in-out infinite alternate; }
.scn-arrival-at-gates .carriage{ position:absolute; bottom:15%; left:25%; width:80px; height:50px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: ar-carriage 3s ease-in-out infinite; }
.scn-arrival-at-gates .figure  { position:absolute; bottom:30%; left:50%; width:20px; height:35px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: ar-figure 4s ease-in-out infinite; }
.scn-arrival-at-gates .bell    { position:absolute; bottom:20%; left:55%; width:15px; height:15px; background: radial-gradient(circle, #8a7a5a 0%, #5a4a3a 70%); border-radius:50%; box-shadow: 0 0 8px 2px rgba(0,0,0,.4); animation: ar-bell 6s ease-in-out infinite; }
.scn-arrival-at-gates .ivy     { position:absolute; bottom:30%; left:40%; width:30px; height:40px; background: linear-gradient(180deg, #2a5a2a 0%, #1a3a1a 100%); border-radius: 0 50% 0 50%; filter: blur(2px); animation: ar-ivy 10s ease-in-out infinite alternate; }
.scn-arrival-at-gates .ground  { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); animation: ar-ground 4s ease-in-out infinite; }
@keyframes ar-sky     { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes ar-gate    { 0%,100% { transform: translateY(0) skewX(0) } 50% { transform: translateY(-3px) skewX(1deg) } }
@keyframes ar-wall    { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes ar-carriage{ 0%,100% { transform: translateY(0) } 50% { transform: translateY(-3px) } }
@keyframes ar-figure  { 0%,100% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-2px) rotate(3deg) } 50% { transform: translateY(-4px) rotate(0) } 75% { transform: translateY(-2px) rotate(-3deg) } }
@keyframes ar-bell    { 0%,100% { transform: rotate(0) } 50% { transform: rotate(15deg) } }
@keyframes ar-ivy     { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.1) } 100% { transform: scaleX(1) } }
@keyframes ar-ground  { 0%,100% { background-position:0 0 } 50% { background-position:-5px 0 } }

/* banter-at-supper */
.scn-banter-at-supper {
  background: 
    linear-gradient(180deg, #3a2e2a 0%, #4a3a32 40%, #2e221e 100%),
    radial-gradient(ellipse at 50% 120%, #5a3e32 0%, transparent 70%);
}
.scn-banter-at-supper .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #4a3a32 0%, #3a2e2a 100%); }
.scn-banter-at-supper .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #2e221e 0%, #1e1410 100%); }
.scn-banter-at-supper .table { position:absolute; bottom:20%; left:30%; width:40%; height:8%; background: linear-gradient(180deg, #5a3e32 0%, #3a2a1e 100%); border-radius:4px; box-shadow: 0 4px 8px rgba(0,0,0,.5); }
.scn-banter-at-supper .candle { position:absolute; bottom:28%; left:45%; width:10px; height:20px; background: linear-gradient(180deg, #e8c888 0%, #a07840 100%); border-radius:50% 50% 10% 10%; box-shadow: 0 0 16px 4px #d09040; animation: bs-candle 4s ease-in-out infinite alternate; }
.scn-banter-at-supper .figure-henri { position:absolute; bottom:10%; left:25%; width:20px; height:40px; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: bs-fig1 6s ease-in-out infinite; }
.scn-banter-at-supper .figure-bearn { position:absolute; bottom:10%; right:25%; width:18px; height:36px; background: linear-gradient(180deg, #3a2e22 0%, #2a1e12 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bs-fig2 6s ease-in-out infinite reverse; }
.scn-banter-at-supper .door { position:absolute; bottom:10%; right:10%; width:30px; height:60px; background: linear-gradient(180deg, #4a3a2e 0%, #2e2216 100%); border-radius:4px 4px 0 0; box-shadow: -2px 0 6px rgba(0,0,0,.3); }
.scn-banter-at-supper .glow { position:absolute; bottom:28%; left:48%; width:60px; height:60px; background: radial-gradient(circle, rgba(240,200,120,0.3) 0%, transparent 70%); border-radius:50%; filter: blur(10px); animation: bs-glow 3s ease-in-out infinite alternate; }
@keyframes bs-candle { 0% { transform: scaleY(1) translateY(0); opacity:0.9; } 50% { transform: scaleY(1.05) translateY(-1px); opacity:1; } 100% { transform: scaleY(0.95) translateY(1px); opacity:0.8; } }
@keyframes bs-fig1 { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(3px) rotate(1deg); } 50% { transform: translateX(0) rotate(2deg); } 75% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes bs-fig2 { 0% { transform: translateX(0) rotate(1deg); } 25% { transform: translateX(-2px) rotate(-2deg); } 50% { transform: translateX(0) rotate(-1deg); } 75% { transform: translateX(3px) rotate(2deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes bs-glow { 0% { opacity:0.5; transform: scale(1); } 50% { opacity:0.8; transform: scale(1.1); } 100% { opacity:0.4; transform: scale(0.9); } }

/* father's-melancholy */
.scn-fathers-melancholy {
  background: 
    linear-gradient(180deg, #2e2e3a 0%, #1e1e2a 40%, #0e0e1a 100%),
    radial-gradient(ellipse at 30% 80%, #2a2a3e 0%, transparent 60%);
}
.scn-fathers-melancholy .wall { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #1e1e2a 0%, #2a2a36 100%); }
.scn-fathers-melancholy .window { position:absolute; top:10%; left:50%; width:30%; height:40%; background: linear-gradient(180deg, #3a3a5e 0%, #2a2a4e 100%); border:2px solid #1a1a2a; border-radius:4px; box-shadow: inset 0 0 20px rgba(0,0,0,.5); }
.scn-fathers-melancholy .curtain { position:absolute; top:10%; left:42%; width:16%; height:42%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius:0 4px 4px 0; animation: fm-curtain 12s ease-in-out infinite alternate; }
.scn-fathers-melancholy .father { position:absolute; bottom:20%; left:30%; width:22px; height:44px; background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: fm-father 8s ease-in-out infinite; }
.scn-fathers-melancholy .blanche { position:absolute; bottom:20%; left:60%; width:18px; height:38px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fm-blanche 10s ease-in-out infinite; }
.scn-fathers-melancholy .desk { position:absolute; bottom:18%; left:25%; width:50%; height:6%; background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%); border-radius:2px; box-shadow: 0 2px 4px rgba(0,0,0,.4); }
.scn-fathers-melancholy .book { position:absolute; bottom:22%; left:35%; width:12px; height:16px; background: linear-gradient(180deg, #4a3a2e 0%, #3a2a1e 100%); border-radius:2px; transform: rotate(-10deg); animation: fm-book 20s ease-in-out infinite; }
@keyframes fm-curtain { 0% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(-4px) scaleX(0.95); } 100% { transform: translateX(0) scaleX(1); } }
@keyframes fm-father { 0% { transform: translateY(0) rotate(-1deg); } 25% { transform: translateY(-2px) rotate(1deg); } 50% { transform: translateY(0) rotate(2deg); } 75% { transform: translateY(-1px) rotate(-2deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes fm-blanche { 0% { transform: translateX(0) rotate(0); } 33% { transform: translateX(3px) rotate(2deg); } 66% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes fm-book { 0% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-5deg) translateY(-2px); } 100% { transform: rotate(-10deg) translateY(0); } }

/* blanche's-chamber */
.scn-blanches-chamber {
  background: 
    linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 40%, #0e0e1a 100%),
    radial-gradient(ellipse at 70% 50%, #3a2a3a 0%, transparent 60%);
}
.scn-blanches-chamber .wall { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); }
.scn-blanches-chamber .tapestry { position:absolute; top:5%; left:15%; width:70%; height:55%; background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%); border:2px solid #5a4a4a; border-radius:4px; box-shadow: inset 0 0 30px rgba(0,0,0,.6); overflow:hidden; }
.scn-blanches-chamber .tapestry::after { content:''; position:absolute; inset:0; background: repeating-linear-gradient(45deg, transparent, transparent 4px, rgba(100,80,60,0.1) 4px, rgba(100,80,60,0.1) 8px); }
.scn-blanches-chamber .woman { position:absolute; bottom:15%; left:30%; width:20px; height:42px; background: linear-gradient(180deg, #3a2a2a 0%, #1a1212 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: bc-woman 6s ease-in-out infinite; }
.scn-blanches-chamber .candle { position:absolute; bottom:30%; left:35%; width:8px; height:18px; background: linear-gradient(180deg, #e8b870 0%, #a06830 100%); border-radius:50% 50% 10% 10%; box-shadow: 0 0 20px 6px #c08040; animation: bc-candle 3s ease-in-out infinite alternate; }
.scn-blanches-chamber .light-glow { position:absolute; bottom:30%; left:30%; width:80px; height:80px; background: radial-gradient(circle, rgba(200,160,80,0.3) 0%, transparent 70%); border-radius:50%; filter: blur(15px); animation: bc-glow 4s ease-in-out infinite alternate; }
.scn-blanches-chamber .shadow { position:absolute; bottom:15%; right:20%; width:30px; height:50px; background: linear-gradient(180deg, rgba(0,0,0,0.2) 0%, rgba(0,0,0,0.4) 100%); border-radius: 40% 60% 20% 40%; animation: bc-shadow 8s ease-in-out infinite; }
@keyframes bc-woman { 0% { transform: translateX(0) rotate(-1deg); } 25% { transform: translateX(2px) rotate(2deg); } 50% { transform: translateX(-1px) rotate(-2deg); } 75% { transform: translateX(3px) rotate(1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes bc-candle { 0% { transform: scaleY(1) translateY(0); opacity:0.9; } 50% { transform: scaleY(1.1) translateY(-2px); opacity:1; } 100% { transform: scaleY(0.9) translateY(1px); opacity:0.7; } }
@keyframes bc-glow { 0% { opacity:0.4; transform: scale(1); } 50% { opacity:0.7; transform: scale(1.15); } 100% { opacity:0.3; transform: scale(0.85); } }
@keyframes bc-shadow { 0% { transform: translateX(0) scaleY(1); } 33% { transform: translateX(5px) scaleY(1.1); } 66% { transform: translateX(-3px) scaleY(0.9); } 100% { transform: translateX(0) scaleY(1); } }

/* morning-joy */
.scn-morning-joy {
  background: 
    linear-gradient(180deg, #f0d8b0 0%, #e8c898 30%, #d0a070 100%),
    radial-gradient(ellipse at 50% 0%, #ffe8c8 0%, transparent 70%);
}
.scn-morning-joy .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #ffd8a0 0%, #f0c080 50%, #e0a060 100%); animation: mj-sky 15s ease-in-out infinite alternate; }
.scn-morning-joy .window-frame { position:absolute; top:10%; left:20%; width:60%; height:70%; background: linear-gradient(180deg, #5a4a3a 0%, #4a3a2a 100%); border-radius:6px; box-shadow: 0 8px 16px rgba(0,0,0,.3); }
.scn-morning-joy .casement { position:absolute; top:12%; left:22%; width:56%; height:66%; background: linear-gradient(180deg, #e0c098 0%, #c0a078 100%); border:2px solid #8a7050; border-radius:3px; box-shadow: inset 0 0 20px rgba(200,180,140,0.5); }
.scn-morning-joy .figure { position:absolute; bottom:18%; left:38%; width:20px; height:44px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: mj-figure 8s ease-in-out infinite; }
.scn-morning-joy .morning-light { position:absolute; top:10%; left:30%; width:40%; height:40%; background: radial-gradient(circle, rgba(255,220,160,0.4) 0%, transparent 70%); border-radius:50%; filter: blur(20px); animation: mj-light 6s ease-in-out infinite alternate; }
.scn-morning-joy .curtain { position:absolute; top:12%; left:22%; width:20%; height:66%; background: linear-gradient(180deg, #c0a888 0%, #a08868 100%); border-radius:0 6px 6px 0; animation: mj-curtain 12s ease-in-out infinite alternate; }
.scn-morning-joy .lattice { position:absolute; top:12%; left:22%; width:56%; height:66%; background: repeating-linear-gradient(0deg, transparent, transparent 15px, rgba(100,80,60,0.15) 15px, rgba(100,80,60,0.15) 16px), repeating-linear-gradient(90deg, transparent, transparent 15px, rgba(100,80,60,0.15) 15px, rgba(100,80,60,0.15) 16px); pointer-events:none; }
@keyframes mj-sky { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes mj-figure { 0% { transform: translateY(0) rotate(-1deg); } 25% { transform: translateY(-3px) rotate(2deg); } 50% { transform: translateY(-1px) rotate(-2deg); } 75% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes mj-light { 0% { opacity:0.3; transform: scale(1); } 50% { opacity:0.6; transform: scale(1.2); } 100% { opacity:0.4; transform: scale(0.9); } }
@keyframes mj-curtain { 0% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(5px) scaleX(0.92); } 100% { transform: translateX(0) scaleX(1); } }

.scn-tears-relieve {
  background: 
    linear-gradient(180deg, #1a1625 0%, #2a2235 40%, #3a2a45 100%),
    radial-gradient(ellipse at 50% 80%, #4a3a55 0%, transparent 70%);
}
.scn-tears-relieve .room-bg {
  position:absolute; inset:0; background: linear-gradient(180deg, #2A2235 0%, #1E1A2A 100%); opacity:0.6;
}
.scn-tears-relieve .window {
  position:absolute; top:8%; left:10%; width:30%; height:40%; background: radial-gradient(ellipse at 50% 30%, #3a4a6a 0%, #1a2240 70%); 
  border-radius: 40% 40% 0 0 / 60% 60% 0 0; box-shadow: inset 0 0 40px rgba(0,0,0,0.5); animation: tr-window 12s ease-in-out infinite alternate;
}
.scn-tears-relieve .bed {
  position:absolute; bottom:18%; left:20%; right:20%; height:22%; background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%); border-radius: 10% 10% 20% 20%; box-shadow: 0 -8px 20px rgba(0,0,0,0.6);
}
.scn-tears-relieve .figure-emily {
  position:absolute; bottom:22%; left:35%; width:14%; height:20%; background: linear-gradient(180deg, #e5d0b0 0%, #8a7a5a 100%); 
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: tr-figure-emily 8s ease-in-out infinite;
}
.scn-tears-relieve .chair {
  position:absolute; bottom:19%; right:22%; width:12%; height:18%; background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%); border-radius: 10% 10% 20% 20%; box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-tears-relieve .figure-anette {
  position:absolute; bottom:20%; right:24%; width:10%; height:16%; background: linear-gradient(180deg, #8a7a6a 0%, #4a3a2a 100%); 
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: tr-figure-anette 10s ease-in-out infinite;
}
.scn-tears-relieve .candle {
  position:absolute; bottom:35%; left:55%; width:2%; height:6%; background: linear-gradient(180deg, #ffd080 0%, #a07030 100%); border-radius: 50% 50% 20% 20%; box-shadow: 0 0 20px 6px #ffc060, 0 0 40px 12px rgba(255,192,96,0.3); animation: tr-candle 3s ease-in-out infinite alternate;
}
.scn-tears-relieve .tear-drop {
  position:absolute; bottom:12%; left:38%; width:1.5%; height:2%; background: radial-gradient(circle, #a0c0e0 0%, transparent 70%); border-radius: 50%; animation: tr-tear 4s ease-in-out infinite;
}
@keyframes tr-window {
  0% { opacity:0.7; transform: translateY(0); }
  50% { opacity:1; transform: translateY(-4px); }
  100% { opacity:0.6; transform: translateY(2px); }
}
@keyframes tr-figure-emily {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-2px) rotate(-2deg); }
  50% { transform: translateY(0) rotate(0deg); }
  75% { transform: translateY(-1px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes tr-figure-anette {
  0% { transform: translateY(0) rotate(0deg); }
  33% { transform: translateY(-1px) rotate(1deg); }
  66% { transform: translateY(1px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes tr-candle {
  0% { box-shadow: 0 0 15px 4px #ffc060; opacity:0.8; }
  50% { box-shadow: 0 0 30px 8px #ffb040; opacity:1; }
  100% { box-shadow: 0 0 20px 6px #ffc060; opacity:0.85; }
}
@keyframes tr-tear {
  0% { opacity:0; transform: translateY(0); }
  30% { opacity:0.8; transform: translateY(10px); }
  60% { opacity:0.4; transform: translateY(20px); }
  100% { opacity:0; transform: translateY(30px); }
}

.scn-morning-awakening {
  background: 
    linear-gradient(180deg, #ffe8c8 0%, #f0d4a8 30%, #d4b88A 60%, #b89878 100%),
    radial-gradient(ellipse at 50% 0%, #fff0d0 0%, transparent 60%);
}
.scn-morning-awakening .sunlit-wall {
  position:absolute; inset:0; background: linear-gradient(135deg, #f8e4c4 0%, #e0c8a0 40%, #c8a880 100%); opacity:0.5;
}
.scn-morning-awakening .window-frame {
  position:absolute; top:5%; right:10%; width:35%; height:45%; background: linear-gradient(180deg, #8a6a4a 0%, #6a4a2a 100%); border-radius: 5% 5% 0 0; box-shadow: inset 0 0 30px rgba(0,0,0,0.3);
}
.scn-morning-awakening .sunbeam {
  position:absolute; top:10%; right:12%; width:2%; height:80%; background: linear-gradient(180deg, rgba(255,240,200,0.6) 0%, transparent 100%); 
  transform: skewX(-10deg); animation: ma-sunbeam 6s ease-in-out infinite alternate;
}
.scn-morning-awakening .bed {
  position:absolute; bottom:15%; left:18%; right:18%; height:25%; background: linear-gradient(180deg, #d4b08a 0%, #a08060 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 -4px 12px rgba(0,0,0,0.3);
}
.scn-morning-awakening .figure-emily {
  position:absolute; bottom:20%; left:32%; width:13%; height:22%; background: linear-gradient(180deg, #f0d8b0 0%, #a88a5a 100%); 
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: ma-figure-emily 8s ease-in-out infinite;
}
.scn-morning-awakening .chair {
  position:absolute; bottom:17%; right:20%; width:10%; height:16%; background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius: 10% 10% 15% 15%;
}
.scn-morning-awakening .figure-anette-sleep {
  position:absolute; bottom:18%; right:22%; width:10%; height:14%; background: linear-gradient(180deg, #b09878 0%, #6a4a2a 100%); 
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: ma-figure-anette 12s ease-in-out infinite;
}
.scn-morning-awakening .pillow {
  position:absolute; bottom:30%; left:38%; width:8%; height:4%; background: linear-gradient(180deg, #fff0e0 0%, #e8d4b8 100%); border-radius: 50%; box-shadow: 0 2px 6px rgba(0,0,0,0.2);
}
@keyframes ma-sunbeam {
  0% { opacity:0.3; transform: skewX(-10deg) scaleX(1); }
  50% { opacity:0.8; transform: skewX(-5deg) scaleX(1.2); }
  100% { opacity:0.4; transform: skewX(-10deg) scaleX(0.9); }
}
@keyframes ma-figure-emily {
  0% { transform: translateY(0) rotate(0deg); }
  40% { transform: translateY(-3px) rotate(2deg); }
  70% { transform: translateY(-1px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes ma-figure-anette {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}

.scn-anette-boasts {
  background: 
    linear-gradient(180deg, #1a1a24 0%, #2a2a3a 40%, #3a3a4a 100%),
    radial-gradient(ellipse at 50% 100%, #4a4a5a 0%, transparent 70%);
}
.scn-anette-boasts .corridor-bg {
  position:absolute; inset:0; background: linear-gradient(90deg, #1e1e2a 0%, #2e2e3e 50%, #1e1e2a 100%); opacity:0.7;
}
.scn-anette-boasts .archway {
  position:absolute; top:10%; left:25%; width:50%; height:60%; background: radial-gradient(ellipse at 50% 0%, transparent 50%, #0e0e1a 100%); 
  border-radius: 50% 50% 0 0 / 70% 70% 0 0; border: 4px solid #4a3a2a; box-shadow: inset 0 0 40px rgba(0,0,0,0.8);
}
.scn-anette-boasts .terrace-silhou {
  position:absolute; top:12%; left:28%; width:44%; height:55%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); 
  border-radius: 40% 40% 0 0 / 60% 60% 0 0; opacity:0.5; animation: ab-terrace 20s ease-in-out infinite alternate;
}
.scn-anette-boasts .figure-anette-standing {
  position:absolute; bottom:28%; left:45%; width:10%; height:20%; background: linear-gradient(180deg, #8a7a5a 0%, #3a2a1a 100%); 
  border-radius: 30% 30% 20% 20% / 50% 50% 20% 20%; transform-origin: bottom center; animation: ab-figure-anette 6s ease-in-out infinite;
}
.scn-anette-boasts .figure-emily-listening {
  position:absolute; bottom:28%; right:35%; width:10%; height:18%; background: linear-gradient(180deg, #e0c8a0 0%, #7a6040 100%); 
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: ab-figure-emily 8s ease-in-out infinite;
}
.scn-anette-boasts .railing {
  position:absolute; top:30%; left:30%; right:30%; height:2%; background: linear-gradient(90deg, #4a3a2a 0%, #6a5a4a 50%, #4a3a2a 100%); border-radius: 20%; box-shadow: 0 2px 4px rgba(0,0,0,0.5);
}
.scn-anette-boasts .lamp {
  position:absolute; top:40%; left:48%; width:3%; height:5%; background: radial-gradient(circle, #ffd060 0%, #b08030 80%); border-radius: 50%; box-shadow: 0 0 20px 6px #ffc040, 0 0 40px 12px rgba(255,192,64,0.3); animation: ab-lamp 4s ease-in-out infinite alternate;
}
@keyframes ab-terrace {
  0% { opacity:0.4; transform: translateY(0); }
  50% { opacity:0.6; transform: translateY(-5px); }
  100% { opacity:0.5; transform: translateY(2px); }
}
@keyframes ab-figure-anette {
  0% { transform: translateY(0) rotate(0deg); }
  30% { transform: translateY(-2px) rotate(3deg); }
  60% { transform: translateY(1px) rotate(-2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes ab-figure-emily {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-1px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes ab-lamp {
  0% { box-shadow: 0 0 15px 4px #ffc040; opacity:0.7; }
  50% { box-shadow: 0 0 30px 8px #ffb030; opacity:1; }
  100% { box-shadow: 0 0 20px 6px #ffc040; opacity:0.8; }
}

.scn-morano-suspected {
  background: 
    linear-gradient(180deg, #12121e 0%, #1a1a2e 40%, #22223a 100%),
    radial-gradient(ellipse at 50% 100%, #2a2a42 0%, transparent 70%);
}
.scn-morano-suspected .hall-bg {
  position:absolute; inset:0; background: linear-gradient(90deg, #0e0e18 0%, #1e1e2a 50%, #0e0e18 100%); opacity:0.8;
}
.scn-morano-suspected .door {
  position:absolute; bottom:20%; left:35%; width:30%; height:50%; background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%); 
  border-radius: 20% 20% 0 0; border-left: 3px solid #4a3a2a; border-right: 3px solid #4a3a2a; box-shadow: inset 0 0 20px rgba(0,0,0,0.7);
}
.scn-morano-suspected .figure-emily-approaching {
  position:absolute; bottom:22%; left:40%; width:12%; height:22%; background: linear-gradient(180deg, #e0c090 0%, #806040 100%); 
  border-radius: 40% 40% 20% 20% / 50% 50% 20% 20%; transform-origin: bottom center; animation: ms-figure-emily 5s ease-in-out infinite;
}
.scn-morano-suspected .shadow {
  position:absolute; bottom:18%; left:38%; width:16%; height:30%; background: linear-gradient(180deg, #0a0a12 0%, transparent 100%); 
  border-radius: 50%; filter: blur(6px); animation: ms-shadow 8s ease-in-out infinite alternate;
}
.scn-morano-suspected .candle-sconce {
  position:absolute; top:25%; right:20%; width:3%; height:8%; background: linear-gradient(180deg, #6a4a2a 0%, #2a1a0a 100%); border-radius: 10% 10% 30% 30%; 
  box-shadow: 0 0 12px 3px #b07030; animation: ms-sconce 3s ease-in-out infinite alternate;
}
.scn-morano-suspected .floor-line {
  position:absolute; bottom:15%; left:10%; right:10%; height:1%; background: linear-gradient(90deg, transparent, #3a3a4a 50%, transparent); 
  box-shadow: 0 0 8px 2px #2a2a3a;
}
@keyframes ms-figure-emily {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  25% { transform: translateX(3px) translateY(-2px) rotate(1deg); }
  50% { transform: translateX(0) translateY(0) rotate(0deg); }
  75% { transform: translateX(-2px) translateY(-1px) rotate(-1deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes ms-shadow {
  0% { opacity:0.3; transform: scaleY(1); }
  50% { opacity:0.6; transform: scaleY(1.2); }
  100% { opacity:0.4; transform: scaleY(0.9); }
}
@keyframes ms-sconce {
  0% { box-shadow: 0 0 10px 2px #b07030; opacity:0.6; }
  50% { box-shadow: 0 0 20px 5px #d08040; opacity:1; }
  100% { box-shadow: 0 0 12px 3px #b07030; opacity:0.8; }
}

.scn-meeting-valancourt {
  background: linear-gradient(180deg, #0b0f1a 0%, #1a2436 45%, #2c3a50 100%), radial-gradient(ellipse at 50% 20%, #3a5a7a 0%, transparent 80%);
}
.scn-meeting-valancourt .moon-glow { position:absolute; top:5%; left:55%; width:90px; height:90px; background: radial-gradient(circle, #c8d8f0 0%, #8090b0 40%, transparent 70%); border-radius:50%; animation: mva-moon 12s ease-in-out infinite alternate; }
.scn-meeting-valancourt .trees-far { position:absolute; bottom:30%; left:0; right:0; height:40%; background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%); border-radius: 30% 70% 0 0 / 50% 60% 0 0; filter: blur(3px); animation: mva-trees 20s ease-in-out infinite alternate; }
.scn-meeting-valancourt .path { position:absolute; bottom:20%; left:25%; right:25%; height:15%; background: linear-gradient(90deg, transparent 0%, #3a4a5a 30%, #5a6a7a 50%, #3a4a5a 70%, transparent 100%); border-radius: 50% / 100% 100% 0 0; filter: blur(2px); transform: perspective(200px) rotateX(5deg); }
.scn-meeting-valancourt .figure-stealth { position:absolute; bottom:28%; left:30%; width:20px; height:40px; background: linear-gradient(180deg, #0a0e1a 0%, #1a2a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mva-figure 5s ease-in-out infinite; filter: blur(0.5px); }
.scn-meeting-valancourt .trees-near { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #0a121a 0%, #05080d 100%); border-radius: 20% 80% 0 0 / 40% 70% 0 0; filter: blur(1px); animation: mva-trees-near 8s ease-in-out infinite alternate; }
.scn-meeting-valancourt .shadow-bars { position:absolute; inset:0; background: repeating-linear-gradient(90deg, transparent 0%, transparent 15%, rgba(0,0,0,0.3) 15%, rgba(0,0,0,0.3) 18%, transparent 18%); animation: mva-shadows 15s ease-in-out infinite; }
@keyframes mva-moon { 0% { opacity:0.8; transform: scale(0.95) } 50% { opacity:1; transform: scale(1.02) } 100% { opacity:0.9; transform: scale(0.98) } }
@keyframes mva-trees { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-4px) scaleY(1.02) } 100% { transform: translateY(0) } }
@keyframes mva-figure { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 25% { transform: translateX(5px) translateY(-2px) rotate(1deg) } 50% { transform: translateX(12px) translateY(0) rotate(-1deg) } 75% { transform: translateX(18px) translateY(-1px) rotate(2deg) } 100% { transform: translateX(24px) translateY(0) rotate(0) } }
@keyframes mva-trees-near { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.03) } 100% { transform: scaleY(0.98) } }
@keyframes mva-shadows { 0% { opacity:0.4 } 50% { opacity:0.7 } 100% { opacity:0.3 } }

.scn-valancourt’s-questions {
  background: linear-gradient(180deg, #0c1420 0%, #182836 45%, #2a3d50 100%), radial-gradient(ellipse at 50% 20%, #4a6a8a 0%, transparent 80%);
}
.scn-valancourt’s-questions .moon { position:absolute; top:4%; left:50%; width:70px; height:70px; background: radial-gradient(circle, #e0ecff 0%, #b0c8e0 50%, transparent 70%); border-radius:50%; animation: vqu-moon 15s ease-in-out infinite alternate; }
.scn-valancourt’s-questions .garden-bg { position:absolute; bottom:30%; left:0; right:0; height:50%; background: linear-gradient(180deg, #1a2a3a 0%, #0e1a26 100%); border-radius: 40% 60% 0 0 / 70% 80% 0 0; filter: blur(4px); animation: vqu-garden 25s ease-in-out infinite alternate; }
.scn-valancourt’s-questions .bench { position:absolute; bottom:25%; left:35%; right:35%; height:12%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 20% 20% 10% 10%; animation: vqu-bench 10s ease-in-out infinite; }
.scn-valancourt’s-questions .figure-left { position:absolute; bottom:30%; left:32%; width:22px; height:45px; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: vqu-figure-left 6s ease-in-out infinite; }
.scn-valancourt’s-questions .figure-right { position:absolute; bottom:30%; left:55%; width:22px; height:45px; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: vqu-figure-right 7s ease-in-out infinite; }
.scn-valancourt’s-questions .warm-glow { position:absolute; bottom:27%; left:45%; width:12px; height:12px; background: radial-gradient(circle, #d0a060 0%, #a08040 40%, transparent 60%); border-radius:50%; box-shadow: 0 0 20px 5px #b09050; animation: vqu-glow 4s ease-in-out infinite alternate; }
@keyframes vqu-moon { 0% { transform: scale(1); opacity:0.9 } 50% { transform: scale(1.03); opacity:1 } 100% { transform: scale(0.97); opacity:0.85 } }
@keyframes vqu-garden { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(0.98) } }
@keyframes vqu-bench { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes vqu-figure-left { 0% { transform: rotate(-4deg) translateX(0) } 25% { transform: rotate(2deg) translateX(3px) } 50% { transform: rotate(-1deg) translateX(6px) } 75% { transform: rotate(3deg) translateX(9px) } 100% { transform: rotate(0) translateX(12px) } }
@keyframes vqu-figure-right { 0% { transform: rotate(4deg) translateX(0) } 25% { transform: rotate(-2deg) translateX(-3px) } 50% { transform: rotate(1deg) translateX(-6px) } 75% { transform: rotate(-3deg) translateX(-9px) } 100% { transform: rotate(0) translateX(-12px) } }
@keyframes vqu-glow { 0% { opacity:0.6; transform: scale(0.9) } 50% { opacity:1; transform: scale(1.2) } 100% { opacity:0.8; transform: scale(1) } }

.scn-perceived-change {
  background: linear-gradient(180deg, #070c18 0%, #121e30 40%, #1a2a3e 100%), radial-gradient(ellipse at 50% 30%, #2a4060 0%, transparent 80%);
}
.scn-perceived-change .bg-deep { position:absolute; inset:0; background: radial-gradient(ellipse at 30% 50%, #182840 0%, transparent 70%); }
.scn-perceived-change .profile-mask { position:absolute; bottom:20%; left:30%; width:80px; height:120px; background: linear-gradient(180deg, #0a0e1a 0%, #1a2a3a 70%, #2a3a4a 100%); border-radius: 50% 40% 40% 50% / 60% 40% 40% 60%; transform: rotate(-5deg); animation: pch-profile 8s ease-in-out infinite; clip-path: polygon(0 0, 100% 0, 85% 100%, 0 100%); }
.scn-perceived-change .eye-glow { position:absolute; bottom:50%; left:38%; width:8px; height:6px; background: radial-gradient(circle, #e0d0a0 0%, #b0a080 60%, transparent 80%); border-radius:50%; animation: pch-eye 5s ease-in-out infinite alternate; box-shadow: 0 0 10px 3px #c0b090; }
.scn-perceived-change .shimmer-overlay { position:absolute; inset:0; background: linear-gradient(45deg, transparent 40%, rgba(200,220,255,0.08) 45%, transparent 50%, rgba(200,220,255,0.05) 55%, transparent 60%); animation: pch-shimmer 15s linear infinite; }
.scn-perceived-change .moonlight-beam { position:absolute; top:0; right:10%; width:3px; height:100%; background: linear-gradient(180deg, rgba(220,240,255,0.3) 0%, rgba(220,240,255,0.05) 100%); filter: blur(2px); animation: pch-beam 10s ease-in-out infinite alternate; }
@keyframes pch-profile { 0% { transform: rotate(-5deg) scaleX(1) } 50% { transform: rotate(-3deg) scaleX(1.02) } 100% { transform: rotate(-6deg) scaleX(0.98) } }
@keyframes pch-eye { 0% { opacity:0.3; transform: scale(0.8) } 50% { opacity:1; transform: scale(1.2) } 100% { opacity:0.6; transform: scale(0.9) } }
@keyframes pch-shimmer { 0% { background-position: 0% 0% } 50% { background-position: 100% 100% } 100% { background-position: 0% 0% } }
@keyframes pch-beam { 0% { opacity:0.2 } 50% { opacity:0.6 } 100% { opacity:0.3 } }

.scn-emily’s-narrative {
  background: linear-gradient(180deg, #0a0e14 0%, #141c28 40%, #1c2634 100%), radial-gradient(ellipse at 50% 20%, #2a3a4e 0%, transparent 80%);
}
.scn-emily’s-narrative .wall-bg { position:absolute; inset:0; background: linear-gradient(90deg, #0a0e14, #141c28, #0a0e14); }
.scn-emily’s-narrative .window-frame { position:absolute; top:15%; left:65%; width:60px; height:80px; background: linear-gradient(180deg, #1a2030 0%, #0a0e18 100%); border: 3px solid #3a4a5a; border-radius:4px; animation: ena-window 12s ease-in-out infinite alternate; }
.scn-emily’s-narrative .moon-outside { position:absolute; top:18%; left:68%; width:40px; height:40px; background: radial-gradient(circle, #e0ecff 0%, #a0b8d0 60%, transparent 80%); border-radius:50%; animation: ena-moon 15s ease-in-out infinite alternate; }
.scn-emily’s-narrative .figure-seated { position:absolute; bottom:15%; left:30%; width:30px; height:60px; background: linear-gradient(180deg, #1a1a2e 0%, #0a0e1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ena-figure 7s ease-in-out infinite; }
.scn-emily’s-narrative .book-shadow { position:absolute; bottom:17%; left:34%; width:20px; height:12px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 20% 20% 10% 10%; transform: rotate(10deg); animation: ena-book 9s ease-in-out infinite; }
.scn-emily’s-narrative .floor-line { position:absolute; bottom:10%; left:0; right:0; height:2px; background: linear-gradient(90deg, transparent 0%, #3a4a5a 20%, #5a6a7a 50%, #3a4a5a 80%, transparent 100%); opacity:0.4; animation: ena-floor 20s linear infinite; }
.scn-emily’s-narrative .shadow-cast { position:absolute; bottom:10%; left:20%; width:80px; height:40px; background: radial-gradient(ellipse at bottom, rgba(0,0,0,0.5) 0%, transparent 70%); transform-origin: top left; animation: ena-shadow 8s ease-in-out infinite alternate; }
@keyframes ena-window { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.02) } 100% { transform: scaleX(0.98) } }
@keyframes ena-moon { 0% { transform: translate(0,0) scale(1); opacity:0.8 } 50% { transform: translate(2px,-2px) scale(1.05); opacity:1 } 100% { transform: translate(-1px,1px) scale(0.95); opacity:0.7 } }
@keyframes ena-figure { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(4px) rotate(1deg) } 50% { transform: translateX(8px) rotate(-1deg) } 75% { transform: translateX(12px) rotate(2deg) } 100% { transform: translateX(16px) rotate(0) } }
@keyframes ena-book { 0% { transform: rotate(10deg) translateY(0) } 50% { transform: rotate(8deg) translateY(-2px) } 100% { transform: rotate(12deg) translateY(0) } }
@keyframes ena-floor { 0% { opacity:0.3 } 50% { opacity:0.6 } 100% { opacity:0.2 } }
@keyframes ena-shadow { 0% { transform: scaleY(1); opacity:0.5 } 50% { transform: scaleY(1.2); opacity:0.8 } 100% { transform: scaleY(0.8); opacity:0.3 } }

/* narrow-pass - awe, overcast */
.scn-narrow-pass {
  background: linear-gradient(180deg, #4a5058 0%, #2a303a 40%, #1f242a 80%), radial-gradient(ellipse at 50% 100%, #2a303a 0%, #1f242a 70%);
}
.scn-narrow-pass .sky-overcast {
  position:absolute; inset:0 0 55% 0;
  background: linear-gradient(180deg, #6a7078 0%, #4a5058 100%);
  animation: np-sky 12s ease-in-out infinite alternate;
}
.scn-narrow-pass .cliff-left {
  position:absolute; left:0; top:10%; width:30%; height:90%;
  background: linear-gradient(90deg, #2a303a 0%, #3a404a 100%);
  border-radius: 0 20% 0 0;
  box-shadow: inset -10px 0 20px rgba(0,0,0,0.5);
  animation: np-cliff-l 8s ease-in-out infinite alternate;
}
.scn-narrow-pass .cliff-right {
  position:absolute; right:0; top:10%; width:30%; height:90%;
  background: linear-gradient(270deg, #2a303a 0%, #3a404a 100%);
  border-radius: 20% 0 0 0;
  box-shadow: inset 10px 0 20px rgba(0,0,0,0.5);
  animation: np-cliff-r 8s ease-in-out infinite alternate-reverse;
}
.scn-narrow-pass .distant-mountains {
  position:absolute; bottom:30%; left:15%; right:15%; height:40%;
  background: linear-gradient(180deg, #5a606a 0%, #3a404a 100%);
  border-radius: 50% 50% 0 0;
  filter: blur(4px);
  animation: np-mountains 20s ease-in-out infinite alternate;
}
.scn-narrow-pass .path {
  position:absolute; bottom:0; left:40%; right:40%; height:30%;
  background: linear-gradient(180deg, #3a3a3a 0%, #2a2a2a 100%);
  clip-path: polygon(20% 0%, 80% 0%, 100% 100%, 0% 100%);
  animation: np-path 6s ease-in-out infinite;
}
.scn-narrow-pass .mist {
  position:absolute; bottom:20%; left:0; right:0; height:40%;
  background: radial-gradient(ellipse at 50% 100%, rgba(180,190,200,0.3) 0%, transparent 70%);
  filter: blur(8px);
  animation: np-mist 15s ease-in-out infinite alternate;
}
.scn-narrow-pass .pine-foreground {
  position:absolute; bottom:5%; left:35%; width:40px; height:60px;
  background: linear-gradient(180deg, #2a4a2a 0%, #1a3a1a 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  transform: scale(0.8);
  box-shadow: -30px 0 0 #1a3a1a, 30px 0 0 #1a3a1a;
  animation: np-pine 4s ease-in-out infinite alternate;
}
@keyframes np-sky {
  0% { opacity:0.7; transform: scaleY(1) }
  50% { opacity:0.9; transform: scaleY(1.05) }
  100% { opacity:0.6; transform: scaleY(0.95) }
}
@keyframes np-cliff-l {
  0% { transform: translateX(0) }
  50% { transform: translateX(-5px) scaleX(1.02) }
  100% { transform: translateX(0) }
}
@keyframes np-cliff-r {
  0% { transform: translateX(0) }
  50% { transform: translateX(5px) scaleX(1.02) }
  100% { transform: translateX(0) }
}
@keyframes np-mountains {
  0% { transform: translateY(0) scale(1); filter: blur(4px) }
  33% { transform: translateY(-3px) scale(1.02); filter: blur(3px) }
  66% { transform: translateY(2px) scale(0.98); filter: blur(5px) }
  100% { transform: translateY(0) scale(1); filter: blur(4px) }
}
@keyframes np-path {
  0% { opacity:0.8 }
  50% { opacity:0.6 }
  100% { opacity:0.8 }
}
@keyframes np-mist {
  0% { opacity:0.2; transform: translateY(0) }
  50% { opacity:0.5; transform: translateY(-5px) scaleY(1.1) }
  100% { opacity:0.3; transform: translateY(3px) }
}
@keyframes np-pine {
  0% { transform: scale(0.8) rotate(-2deg) }
  50% { transform: scale(0.85) rotate(0deg) }
  100% { transform: scale(0.8) rotate(2deg) }
}

/* shifting-scenes - sublime, sunlit */
.scn-shifting-scenes {
  background: linear-gradient(180deg, #d4e0f0 0%, #b8c8e0 30%, #90a8c0 70%), radial-gradient(ellipse at 50% 100%, #c0d0e0 0%, #90a8c0 70%);
}
.scn-shifting-scenes .sky-sunlit {
  position:absolute; inset:0 0 60% 0;
  background: linear-gradient(180deg, #e8f0ff 0%, #c8d8ee 100%);
  animation: ss-sky 10s ease-in-out infinite alternate;
}
.scn-shifting-scenes .road-winding {
  position:absolute; bottom:0; left:30%; right:30%; height:40%;
  background: linear-gradient(180deg, #c0a078 0%, #a08060 100%);
  clip-path: polygon(40% 0%, 60% 0%, 70% 100%, 30% 100%);
  animation: ss-road 8s ease-in-out infinite alternate;
}
.scn-shifting-scenes .hill-back {
  position:absolute; bottom:30%; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #6a8070 0%, #4a6050 100%);
  border-radius: 50% 50% 0 0;
  filter: blur(2px);
  animation: ss-hill-b 18s linear infinite;
}
.scn-shifting-scenes .hill-mid {
  position:absolute; bottom:20%; left:-10%; right:10%; height:35%;
  background: linear-gradient(180deg, #7a9a7a 0%, #5a7a5a 100%);
  border-radius: 40% 60% 0 0;
  filter: blur(1px);
  animation: ss-hill-m 15s linear infinite reverse;
}
.scn-shifting-scenes .hill-fore {
  position:absolute; bottom:10%; left:20%; right:0; height:30%;
  background: linear-gradient(180deg, #8aaa8a 0%, #6a8a6a 100%);
  border-radius: 60% 40% 0 0;
  animation: ss-hill-f 12s ease-in-out infinite alternate;
}
.scn-shifting-scenes .vapor-1 {
  position:absolute; top:15%; left:20%; width:100px; height:30px;
  background: radial-gradient(ellipse, rgba(255,255,255,0.4) 0%, transparent 70%);
  filter: blur(8px);
  animation: ss-vapor 25s ease-in-out infinite;
}
.scn-shifting-scenes .vapor-2 {
  position:absolute; top:25%; right:15%; width:80px; height:20px;
  background: radial-gradient(ellipse, rgba(255,255,255,0.3) 0%, transparent 70%);
  filter: blur(6px);
  animation: ss-vapor 30s ease-in-out infinite 5s;
}
@keyframes ss-sky {
  0% { opacity:0.9 }
  50% { opacity:0.7 }
  100% { opacity:1 }
}
@keyframes ss-road {
  0% { transform: translateX(-10px) skewX(-2deg) }
  50% { transform: translateX(10px) skewX(2deg) }
  100% { transform: translateX(-10px) skewX(-2deg) }
}
@keyframes ss-hill-b {
  0% { transform: translateX(0) }
  50% { transform: translateX(-20px) scaleX(1.05) }
  100% { transform: translateX(0) }
}
@keyframes ss-hill-m {
  0% { transform: translateX(0) }
  50% { transform: translateX(15px) scaleX(1.03) }
  100% { transform: translateX(0) }
}
@keyframes ss-hill-f {
  0% { transform: translateX(0) scale(1) }
  33% { transform: translateX(-5px) scale(1.02) }
  66% { transform: translateX(5px) scale(0.98) }
  100% { transform: translateX(0) scale(1) }
}
@keyframes ss-vapor {
  0% { opacity:0; transform: translateX(-30px) scale(1) }
  50% { opacity:0.6; transform: translateX(30px) scale(1.2) }
  100% { opacity:0; transform: translateX(-30px) scale(1) }
}

/* pastoral-interludes - calm, sunlit */
.scn-pastoral-interludes {
  background: linear-gradient(180deg, #e8f0e0 0%, #c8d8c0 40%, #a0b8a0 80%), radial-gradient(ellipse at 50% 100%, #c8d8c0 0%, #a0b8a0 70%);
}
.scn-pastoral-interludes .sky-calm {
  position:absolute; inset:0 0 50% 0;
  background: linear-gradient(180deg, #d4e8d4 0%, #b8d0b0 100%);
  animation: pi-sky 15s ease-in-out infinite alternate;
}
.scn-pastoral-interludes .mountain-range {
  position:absolute; bottom:35%; left:0; right:0; height:25%;
  background: linear-gradient(180deg, #8a9a7a 0%, #6a7a5a 100%);
  border-radius: 40% 60% 0 0;
  filter: blur(3px);
  animation: pi-mountain 20s ease-in-out infinite alternate;
}
.scn-pastoral-interludes .pine-forest {
  position:absolute; bottom:20%; left:10%; right:10%; height:20%;
  background: linear-gradient(180deg, #3a5a3a 0%, #1a3a1a 100%);
  border-radius: 30% 70% 0 0;
  animation: pi-pine 12s ease-in-out infinite alternate;
}
.scn-pastoral-interludes .cataract {
  position:absolute; top:45%; left:45%; width:10%; height:30%;
  background: linear-gradient(180deg, #e0f0ff 0%, #a0c0d0 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: 0 0 20px rgba(200,230,255,0.5);
  animation: pi-cat 3s ease-in-out infinite alternate;
}
.scn-pastoral-interludes .foam {
  position:absolute; bottom:25%; left:42%; width:16%; height:6%;
  background: radial-gradient(ellipse, rgba(255,255,255,0.6) 0%, transparent 70%);
  filter: blur(4px);
  animation: pi-foam 4s ease-in-out infinite alternate;
}
.scn-pastoral-interludes .valley-floor {
  position:absolute; bottom:0; left:0; right:0; height:20%;
  background: linear-gradient(180deg, #5a7a4a 0%, #3a5a2a 100%);
  border-radius: 0 0 30% 30%;
  animation: pi-valley 10s ease-in-out infinite alternate;
}
@keyframes pi-sky {
  0% { opacity:0.8 }
  50% { opacity:1 }
  100% { opacity:0.7 }
}
@keyframes pi-mountain {
  0% { transform: translateY(0) scale(1) }
  33% { transform: translateY(-2px) scale(1.01) }
  66% { transform: translateY(1px) scale(0.99) }
  100% { transform: translateY(0) scale(1) }
}
@keyframes pi-pine {
  0% { filter: blur(3px); transform: scaleY(1) }
  50% { filter: blur(2px); transform: scaleY(1.03) }
  100% { filter: blur(3px); transform: scaleY(1) }
}
@keyframes pi-cat {
  0% { height:30%; opacity:0.8 }
  50% { height:35%; opacity:1 }
  100% { height:30%; opacity:0.8 }
}
@keyframes pi-foam {
  0% { opacity:0.3; transform: scale(1) }
  50% { opacity:0.7; transform: scale(1.1) }
  100% { opacity:0.3; transform: scale(1) }
}
@keyframes pi-valley {
  0% { transform: scaleY(1) }
  50% { transform: scaleY(1.02) }
  100% { transform: scaleY(1) }
}

/* wild-vs-alps - sublime, sunlit */
.scn-wild-vs-alps {
  background: linear-gradient(180deg, #b8d0e0 0%, #90a8c0 30%, #7080a0 70%), radial-gradient(ellipse at 50% 100%, #90a8c0 0%, #7080a0 70%);
}
.scn-wild-vs-alps .sky-bright {
  position:absolute; inset:0 0 55% 0;
  background: linear-gradient(180deg, #d0e0f0 0%, #b0c0d8 100%);
  animation: wa-sky 14s ease-in-out infinite alternate;
}
.scn-wild-vs-alps .mountain-back {
  position:absolute; bottom:35%; left:0; right:0; height:35%;
  background: linear-gradient(180deg, #7080a0 0%, #506070 100%);
  border-radius: 50% 50% 0 0;
  filter: blur(2px);
  animation: wa-mtn-b 25s ease-in-out infinite alternate;
}
.scn-wild-vs-alps .mountain-mid {
  position:absolute; bottom:25%; left:10%; right:10%; height:30%;
  background: linear-gradient(180deg, #8090a0 0%, #607080 100%);
  border-radius: 40% 60% 0 0;
  animation: wa-mtn-m 18s ease-in-out infinite alternate-reverse;
}
.scn-wild-vs-alps .meadow {
  position:absolute; bottom:0; left:0; right:0; height:25%;
  background: linear-gradient(180deg, #6a9a6a 0%, #4a7a4a 100%);
  border-radius: 60% 40% 0 0;
  animation: wa-meadow 12s ease-in-out infinite alternate;
}
.scn-wild-vs-alps .wildflowers {
  position:absolute; bottom:10%; left:20%; width:10px; height:10px;
  background: radial-gradient(circle, #c8553d 0%, #a0461a 70%);
  border-radius: 50%;
  box-shadow: 20px -5px 0 #b87878, -15px 2px 0 #c8553d, 30px -8px 0 #a0461a, -30px 5px 0 #b87878;
  animation: wa-flower 4s ease-in-out infinite alternate;
}
.scn-wild-vs-alps .cloud-a {
  position:absolute; top:15%; left:10%; width:80px; height:20px;
  background: radial-gradient(ellipse, rgba(255,255,255,0.5) 0%, transparent 70%);
  filter: blur(5px);
  animation: wa-cloud 40s linear infinite;
}
.scn-wild-vs-alps .cloud-b {
  position:absolute; top:25%; right:15%; width:60px; height:15px;
  background: radial-gradient(ellipse, rgba(255,255,255,0.4) 0%, transparent 70%);
  filter: blur(4px);
  animation: wa-cloud 35s linear infinite reverse;
}
@keyframes wa-sky {
  0% { opacity:0.8; transform: scaleY(1) }
  50% { opacity:1; transform: scaleY(1.03) }
  100% { opacity:0.7; transform: scaleY(0.97) }
}
@keyframes wa-mtn-b {
  0% { transform: translateY(0) scaleX(1) }
  33% { transform: translateY(-2px) scaleX(1.02) }
  66% { transform: translateY(1px) scaleX(0.98) }
  100% { transform: translateY(0) scaleX(1) }
}
@keyframes wa-mtn-m {
  0% { transform: translateX(0) }
  50% { transform: translateX(5px) scaleX(1.01) }
  100% { transform: translateX(0) }
}
@keyframes wa-meadow {
  0% { transform: scaleY(1) }
  50% { transform: scaleY(1.02) }
  100% { transform: scaleY(1) }
}
@keyframes wa-flower {
  0% { transform: rotate(0deg) scale(1) }
  50% { transform: rotate(15deg) scale(1.1) }
  100% { transform: rotate(-15deg) scale(1) }
}
@keyframes wa-cloud {
  0% { transform: translateX(-50px) }
  100% { transform: translateX(120vw) }
}

.scn-sketching-stories {
  background: linear-gradient(180deg, #d4c9b0 0%, #b8a88a 60%, #8a7a6a 100%), radial-gradient(circle at 65% 30%, #fff5e0 0%, transparent 60%);
}
.scn-sketching-stories .window-frame {
  position:absolute; top:10%; left:55%; width:35%; height:45%;
  background: #6a5a4a;
  border-radius: 6px;
  box-shadow: inset 0 0 0 8px #4a3a2a;
}
.scn-sketching-stories .window-light {
  position:absolute; top:13%; left:58%; width:29%; height:39%;
  background: linear-gradient(135deg, #fff8e0 0%, #e8d8b0 100%);
  border-radius: 4px;
  animation: ss1-light 8s ease-in-out infinite alternate;
}
.scn-sketching-stories .easel {
  position:absolute; bottom:25%; left:20%; width:15%; height:40%;
  background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%);
  border-radius: 4px 4px 0 0;
  transform: rotate(2deg);
}
.scn-sketching-stories .figure {
  position:absolute; bottom:20%; left:35%; width:14%; height:45%;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  animation: ss1-breathe 6s ease-in-out infinite;
}
.scn-sketching-stories .arm {
  position:absolute; bottom:38%; left:30%; width:8%; height:20%;
  background: #3a2a2a;
  border-radius: 30% 30% 40% 40%;
  transform-origin: top left;
  animation: ss1-sketch 2s ease-in-out infinite alternate;
}
.scn-sketching-stories .sketch-paper {
  position:absolute; bottom:26%; left:20%; width:18%; height:25%;
  background: #f0e6d0;
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
}
.scn-sketching-stories .tear {
  position:absolute; bottom:25%; left:42%; width:3%; height:4%;
  background: radial-gradient(circle at 30% 30%, #c0e0ff 0%, #80b0e0 100%);
  border-radius: 50%;
  animation: ss1-fall 4s ease-in-out infinite;
}
.scn-sketching-stories .floor {
  position:absolute; bottom:0; left:0; right:0; height:20%;
  background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%);
  border-radius: 0 0 8px 8px;
}
@keyframes ss1-light {
  0% { opacity:0.7; transform: scale(1); }
  50% { opacity:1; transform: scale(1.05); }
  100% { opacity:0.8; transform: scale(0.98); }
}
@keyframes ss1-breathe {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes ss1-sketch {
  0% { transform: rotate(0deg) translateY(0); }
  100% { transform: rotate(15deg) translateY(-5px); }
}
@keyframes ss1-fall {
  0% { transform: translateY(0) rotate(0deg); opacity:1; }
  50% { transform: translateY(20px) rotate(10deg); opacity:0.7; }
  100% { transform: translateY(0) rotate(0deg); opacity:0; }
}

.scn-evening-walk-tuscany {
  background: linear-gradient(180deg, #f5a052 0%, #e87a3a 30%, #7a5a3a 60%, #3a2a1a 100%), radial-gradient(ellipse at 50% 0%, #ffb86b 0%, transparent 60%);
}
.scn-evening-walk-tuscany .sky {
  position:absolute; inset:0 0 40% 0;
  background: linear-gradient(180deg, #f5c060 0%, #e8a050 40%, #b07030 100%);
  animation: ev2-sky 15s ease-in-out infinite alternate;
}
.scn-evening-walk-tuscany .sun {
  position:absolute; top:15%; left:55%; width:12%; height:12%;
  background: radial-gradient(circle, #ffd080 0%, #ffa030 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px #ffa030;
  animation: ev2-sun 10s ease-in-out infinite alternate;
}
.scn-evening-walk-tuscany .hills {
  position:absolute; bottom:35%; left:0; right:0; height:25%;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a2a 100%);
  border-radius: 50% 50% 0 0 / 80% 60% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.4);
  animation: ev2-hills 20s ease-in-out infinite alternate;
}
.scn-evening-walk-tuscany .path {
  position:absolute; bottom:22%; left:45%; width:10%; height:18%;
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%);
  border-radius: 50% 50% 0 0;
  transform: perspective(400px) rotateX(30deg);
}
.scn-evening-walk-tuscany .cypress-1 {
  position:absolute; bottom:33%; left:30%; width:4%; height:30%;
  background: linear-gradient(180deg, #2a3a1a 0%, #1a2a0a 100%);
  border-radius: 40% 40% 20% 20%;
  animation: ev2-sway 8s ease-in-out infinite alternate;
}
.scn-evening-walk-tuscany .cypress-2 {
  position:absolute; bottom:33%; right:25%; width:3.5%; height:25%;
  background: linear-gradient(180deg, #2a3a1a 0%, #1a2a0a 100%);
  border-radius: 40% 40% 20% 20%;
  animation: ev2-sway 8s ease-in-out infinite alternate reverse;
}
.scn-evening-walk-tuscany .walker {
  position:absolute; bottom:20%; left:48%; width:6%; height:16%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  animation: ev2-walk 4s ease-in-out infinite;
}
@keyframes ev2-sky {
  0% { opacity:0.8; }
  50% { opacity:1; }
  100% { opacity:0.7; }
}
@keyframes ev2-sun {
  0% { transform: translateY(0); box-shadow: 0 0 40px 10px #ffa030; }
  50% { transform: translateY(-5px); box-shadow: 0 0 80px 30px #ffb040; }
  100% { transform: translateY(0); box-shadow: 0 0 40px 10px #ffa030; }
}
@keyframes ev2-hills {
  0% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
  100% { transform: translateY(0); }
}
@keyframes ev2-sway {
  0% { transform: skewX(0deg); }
  50% { transform: skewX(3deg); }
  100% { transform: skewX(-2deg); }
}
@keyframes ev2-walk {
  0% { transform: translateX(0) translateY(0) rotate(-2deg); }
  25% { transform: translateX(3px) translateY(-1px) rotate(0deg); }
  50% { transform: translateX(6px) translateY(0) rotate(2deg); }
  75% { transform: translateX(9px) translateY(-1px) rotate(0deg); }
  100% { transform: translateX(12px) translateY(0) rotate(-2deg); }
}

.scn-promontory-beacon {
  background: linear-gradient(180deg, #2a3a5a 0%, #1a2a4a 30%, #2a3a5a 60%, #1a2a3a 100%), radial-gradient(ellipse at 50% 40%, #5a7a9a 0%, transparent 60%);
}
.scn-promontory-beacon .sky {
  position:absolute; inset:0 0 35% 0;
  background: linear-gradient(180deg, #3a4a6a 0%, #2a3a5a 40%, #1a2a4a 100%);
  animation: pb3-sky 12s ease-in-out infinite alternate;
}
.scn-promontory-beacon .sea {
  position:absolute; bottom:0; left:0; right:0; height:35%;
  background: linear-gradient(180deg, #2a3a5a 0%, #1a2a3a 100%);
  border-radius: 60% 40% 0 0;
  box-shadow: inset 0 6px 20px #0a1a2a;
  animation: pb3-sea 20s ease-in-out infinite;
}
.scn-promontory-beacon .cliff {
  position:absolute; bottom:20%; left:10%; width:20%; height:55%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 0 0 / 20% 20% 0 0;
  transform: skewX(-5deg);
  box-shadow: 0 0 30px rgba(0,0,0,0.5);
}
.scn-promontory-beacon .tower {
  position:absolute; bottom:35%; left:14%; width:8%; height:30%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%;
  transform: skewX(0deg);
  box-shadow: 0 -4px 12px rgba(0,0,0,0.6);
}
.scn-promontory-beacon .beacon {
  position:absolute; bottom:60%; left:15%; width:6%; height:8%;
  background: radial-gradient(circle, #ffd060 0%, #ffa030 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 10px #ffa030, 0 0 80px 20px rgba(255,160,48,0.4);
  animation: pb3-beacon 3s ease-in-out infinite alternate;
}
.scn-promontory-beacon .bird-1 {
  position:absolute; top:15%; right:25%; width:8%; height:4%;
  background: #2a2a3a;
  border-radius: 50%;
  clip-path: polygon(0 50%, 50% 0, 100% 50%, 50% 100%);
  animation: pb3-fly-1 18s linear infinite;
}
.scn-promontory-beacon .bird-2 {
  position:absolute; top:20%; right:30%; width:6%; height:3%;
  background: #2a2a3a;
  border-radius: 50%;
  clip-path: polygon(0 50%, 50% 0, 100% 50%, 50% 100%);
  animation: pb3-fly-2 22s linear infinite;
}
@keyframes pb3-sky {
  0% { opacity:0.7; }
  50% { opacity:1; }
  100% { opacity:0.8; }
}
@keyframes pb3-sea {
  0% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
  100% { transform: translateY(0); }
}
@keyframes pb3-beacon {
  0% { opacity:0.6; box-shadow: 0 0 30px 5px #ffa030, 0 0 60px 10px rgba(255,160,48,0.3); }
  50% { opacity:1; box-shadow: 0 0 60px 20px #ffb040, 0 0 100px 30px rgba(255,176,64,0.5); }
  100% { opacity:0.7; box-shadow: 0 0 40px 10px #ffa030, 0 0 70px 15px rgba(255,160,48,0.3); }
}
@keyframes pb3-fly-1 {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  50% { transform: translateX(-30px) translateY(-5px) rotate(10deg); }
  100% { transform: translateX(-60px) translateY(0) rotate(0deg); }
}
@keyframes pb3-fly-2 {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  50% { transform: translateX(20px) translateY(-8px) rotate(-10deg); }
  100% { transform: translateX(40px) translateY(0) rotate(0deg); }
}

.scn-sea-calm-longing {
  background: linear-gradient(180deg, #f5c080 0%, #d08050 30%, #8a6040 60%, #4a2a1a 100%), radial-gradient(ellipse at 50% 100%, #ffd0a0 0%, transparent 70%);
}
.scn-sea-calm-longing .sky {
  position:absolute; inset:0 0 40% 0;
  background: linear-gradient(180deg, #f5b070 0%, #e09050 40%, #b07030 100%);
  animation: sc4-sky 15s ease-in-out infinite alternate;
}
.scn-sea-calm-longing .sunset {
  position:absolute; top:30%; left:55%; width:15%; height:10%;
  background: radial-gradient(ellipse, #ffd080 0%, #ffa030 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 80px 30px #ffa030;
  animation: sc4-sunset 12s ease-in-out infinite alternate;
}
.scn-sea-calm-longing .sea {
  position:absolute; bottom:0; left:0; right:0; height:40%;
  background: linear-gradient(180deg, #6a7a8a 0%, #4a5a6a 100%);
  border-radius: 40% 60% 0 0;
  box-shadow: inset 0 8px 20px #2a3a4a;
  animation: sc4-sea 20s ease-in-out infinite;
}
.scn-sea-calm-longing .figure {
  position:absolute; bottom:20%; left:40%; width:8%; height:25%;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  animation: sc4-figure 8s ease-in-out infinite;
}
.scn-sea-calm-longing .ship {
  position:absolute; bottom:30%; right:15%; width:12%; height:15%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 20% 20%;
  clip-path: polygon(0 70%, 100% 70%, 85% 100%, 15% 100%);
  animation: sc4-ship 25s linear infinite;
}
.scn-sea-calm-longing .reflection {
  position:absolute; bottom:12%; left:15%; width:70%; height:20%;
  background: linear-gradient(180deg, rgba(255,180,80,0.3) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(10px);
  animation: sc4-reflection 10s ease-in-out infinite alternate;
}
@keyframes sc4-sky {
  0% { opacity:0.8; }
  50% { opacity:1; }
  100% { opacity:0.7; }
}
@keyframes sc4-sunset {
  0% { transform: scale(1); opacity:0.8; }
  50% { transform: scale(1.1); opacity:1; }
  100% { transform: scale(0.95); opacity:0.7; }
}
@keyframes sc4-sea {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes sc4-figure {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(2px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes sc4-ship {
  0% { transform: translateX(0) translateY(0); }
  50% { transform: translateX(-5px) translateY(-1px); }
  100% { transform: translateX(0) translateY(0); }
}
@keyframes sc4-reflection {
  0% { opacity:0.3; filter: blur(10px); }
  50% { opacity:0.6; filter: blur(6px); }
  100% { opacity:0.2; filter: blur(14px); }
}

.scn-treasure-found { background: linear-gradient(180deg, #2a2015 0%, #4a3820 30%, #6a5030 60%, #806040 100%), radial-gradient(ellipse at 50% 100%, #806040 0%, transparent 70%); }
.scn-treasure-found .stable-wall { position:absolute; inset:0 0 25% 0; background: linear-gradient(90deg, #4a3a2a 0%, #5a4a3a 50%, #3a2a1a 100%); }
.scn-treasure-found .hay { position:absolute; bottom:20%; left:10%; width:40%; height:30%; background: radial-gradient(ellipse at 40% 50%, #b09860 0%, #8a7a4a 50%, #5a4a2a 100%); border-radius:40% 60% 30% 50%; animation: tr-hay 8s ease-in-out infinite alternate; }
.scn-treasure-found .figure { position:absolute; bottom:22%; left:35%; width:24px; height:40px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: tr-figure 6s ease-in-out infinite; }
.scn-treasure-found .lantern { position:absolute; bottom:38%; left:30%; width:8px; height:8px; background: #e0a030; border-radius:50%; box-shadow: 0 0 20px 6px rgba(224,160,48,.8), 0 0 40px 12px rgba(224,160,48,.4); animation: tr-lantern 3s ease-in-out infinite alternate; }
.scn-treasure-found .treasure { position:absolute; bottom:16%; left:44%; width:30px; height:18px; background: linear-gradient(180deg, #8a6a2a 0%, #5a4a1a 100%); border-radius:8% 8% 4% 4%; box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: tr-open 12s ease-in-out infinite; }
.scn-treasure-found .horse { position:absolute; bottom:15%; right:15%; width:60px; height:30px; background: radial-gradient(ellipse at 50% 50%, #6a4a2a 0%, #3a2a1a 100%); border-radius:50% 50% 40% 40%; animation: tr-horse 10s ease-in-out infinite; }
.scn-treasure-found .dust { position:absolute; bottom:18%; left:40%; width:20px; height:10px; background: radial-gradient(ellipse, rgba(200,180,120,.3) 0%, transparent 100%); filter: blur(4px); animation: tr-dust 15s linear infinite; }
@keyframes tr-hay { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.05) translateY(-2px) } 100% { transform: scaleX(1) } }
@keyframes tr-figure { 0% { transform: translateX(0) translateY(0) rotate(-1deg) } 25% { transform: translateX(4px) translateY(-1px) rotate(1deg) } 50% { transform: translateX(8px) translateY(0) rotate(-1deg) } 75% { transform: translateX(12px) translateY(-1px) rotate(1deg) } 100% { transform: translateX(16px) translateY(0) rotate(0) } }
@keyframes tr-lantern { 0% { opacity:.7; transform: scale(.9) } 50% { opacity:1; transform: scale(1.1) } 100% { opacity:.8; transform: scale(1) } }
@keyframes tr-open { 0% { transform: scaleY(1) translateY(0) } 50% { transform: scaleY(1.15) translateY(-2px) } 100% { transform: scaleY(1) translateY(0) } }
@keyframes tr-horse { 0% { transform: translateX(0) } 50% { transform: translateX(-3px) } 100% { transform: translateX(0) } }
@keyframes tr-dust { 0% { transform: translate(0,0) scale(1); opacity:.3 } 50% { transform: translate(10px,-5px) scale(1.5); opacity:.5 } 100% { transform: translate(20px,-10px) scale(2); opacity:0 } }

.scn-plan-to-leghorn { background: linear-gradient(180deg, #8a9aae 0%, #a4b6c8 40%, #c0d0de 70%, #d8e4ee 100%), radial-gradient(ellipse at 60% 30%, #d8e4ee 0%, transparent 60%); }
.scn-plan-to-leghorn .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #b8c6d4 0%, #d8e4ee 100%); animation: pl-sky 20s ease-in-out infinite alternate; }
.scn-plan-to-leghorn .sea { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #6a8aaa 0%, #4a6a8a 100%); animation: pl-sea 12s ease-in-out infinite; }
.scn-plan-to-leghorn .coast { position:absolute; bottom:35%; left:60%; width:30%; height:15%; background: linear-gradient(180deg, #8a7a5a 0%, #5a4a3a 100%); border-radius: 40% 20% 0 0 / 60% 30% 0 0; animation: pl-coast 18s ease-in-out infinite alternate; }
.scn-plan-to-leghorn .ship { position:absolute; bottom:32%; left:25%; width:60px; height:20px; background: linear-gradient(90deg, #3a2a1a 0%, #5a4a3a 40%, #3a2a1a 100%); border-radius:10% 10% 30% 30%; animation: pl-ship 16s ease-in-out infinite; }
.scn-plan-to-leghorn .sun { position:absolute; top:22%; right:20%; width:30px; height:30px; background: radial-gradient(circle, #ffd090 0%, #f0b060 50%, transparent 100%); border-radius:50%; box-shadow: 0 0 40px 10px #f0b060; animation: pl-sun 6s ease-in-out infinite alternate; }
.scn-plan-to-leghorn .gull { position:absolute; top:30%; left:40%; width:14px; height:8px; background: radial-gradient(ellipse at 30% 50%, rgba(0,0,0,.6) 0%, transparent 100%); filter: blur(1px); animation: pl-gull 30s linear infinite; }
@keyframes pl-sky { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes pl-sea { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes pl-coast { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.05) } 100% { transform: scaleY(1) } }
@keyframes pl-ship { 0% { transform: translateX(0) rotate(-1deg) } 25% { transform: translateX(5px) rotate(1deg) } 50% { transform: translateX(10px) rotate(-1deg) } 75% { transform: translateX(5px) rotate(1deg) } 100% { transform: translateX(0) } }
@keyframes pl-sun { 0% { transform: scale(.95); opacity:.8 } 50% { transform: scale(1.05); opacity:1 } 100% { transform: scale(1); opacity:.9 } }
@keyframes pl-gull { 0% { transform: translateX(0) translateY(0) } 50% { transform: translateX(20vw) translateY(-10px) } 100% { transform: translateX(40vw) translateY(0) } }

.scn-vale-of-arno { background: linear-gradient(180deg, #6a9ac0 0%, #8ab8d8 30%, #a8d0e8 60%, #c8e0f0 100%), radial-gradient(ellipse at 50% 50%, #c8e0f0 0%, transparent 70%); }
.scn-vale-of-arno .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #8ab8d8 0%, #c8e0f0 100%); animation: va-sky 18s ease-in-out infinite alternate; }
.scn-vale-of-arno .mountains { position:absolute; bottom:35%; left:0; right:0; height:25%; background: linear-gradient(180deg, #4a6a5a 0%, #2a4a3a 100%); border-radius: 40% 60% 0 0 / 80% 70% 0 0; animation: va-mt 24s ease-in-out infinite alternate; }
.scn-vale-of-arno .hills { position:absolute; bottom:20%; left:10%; width:80%; height:20%; background: linear-gradient(180deg, #5a8a6a 0%, #3a6a4a 100%); border-radius: 50% 40% 0 0; animation: va-hills 20s ease-in-out infinite alternate; }
.scn-vale-of-arno .river { position:absolute; bottom:18%; left:20%; width:60%; height:8%; background: linear-gradient(180deg, #6aa8c0 0%, #4a88a0 100%); border-radius: 40%; animation: va-river 15s ease-in-out infinite; }
.scn-vale-of-arno .trees { position:absolute; bottom:32%; left:30%; width:40px; height:30px; background: radial-gradient(ellipse at 50% 70%, #3a6a3a 0%, #1a4a2a 100%); border-radius: 50% 50% 30% 30%; animation: va-trees 10s ease-in-out infinite alternate; }
.scn-vale-of-arno .shrub { position:absolute; bottom:15%; left:5%; width:20px; height:12px; background: radial-gradient(ellipse, #5a8a4a 0%, #3a6a2a 100%); border-radius: 50%; box-shadow: 0 4px 8px rgba(0,0,0,.2); animation: va-shrub 8s ease-in-out infinite; }
.scn-vale-of-arno .glow { position:absolute; top:30%; left:45%; width:40px; height:40px; background: radial-gradient(circle, rgba(255,220,140,.4) 0%, transparent 100%); filter: blur(8px); animation: va-glow 14s ease-in-out infinite alternate; }
@keyframes va-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes va-mt { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-2px) scaleY(1.02) } 100% { transform: translateY(0) } }
@keyframes va-hills { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes va-river { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.05) } 100% { transform: scaleX(1) } }
@keyframes va-trees { 0% { transform: rotate(-2deg) scale(1) } 50% { transform: rotate(2deg) scale(1.05) } 100% { transform: rotate(-1deg) scale(1) } }
@keyframes va-shrub { 0% { transform: translateX(0) } 50% { transform: translateX(3px) } 100% { transform: translateX(0) } }
@keyframes va-glow { 0% { opacity:.5; transform: scale(.8) } 50% { opacity:.8; transform: scale(1.2) } 100% { opacity:.6; transform: scale(1) } }

.scn-long-for-home { background: linear-gradient(180deg, #6a8aae 0%, #8aaac8 30%, #aac8de 60%, #c8deee 100%), radial-gradient(ellipse at 50% 80%, #c8deee 0%, transparent 70%); }
.scn-long-for-home .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #8aaac8 0%, #c8deee 100%); animation: lh-sky 22s ease-in-out infinite alternate; }
.scn-long-for-home .sea { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #4a6a8a 0%, #2a4a6a 100%); animation: lh-sea 14s ease-in-out infinite; }
.scn-long-for-home .ship-hull { position:absolute; bottom:30%; left:35%; width:60px; height:24px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 8% 8% 20% 20%; animation: lh-ship 18s ease-in-out infinite; }
.scn-long-for-home .sail-fore { position:absolute; bottom:45%; left:38%; width:18px; height:30px; background: linear-gradient(180deg, #dad0c0 0%, #b8a890 100%); border-radius: 10% 10% 30% 30%; transform-origin: bottom; animation: lh-sail1 8s ease-in-out infinite alternate; }
.scn-long-for-home .sail-aft { position:absolute; bottom:42%; left:50%; width:22px; height:35px; background: linear-gradient(180deg, #dad0c0 0%, #b8a890 100%); border-radius: 10% 10% 30% 30%; transform-origin: bottom; animation: lh-sail2 10s ease-in-out infinite alternate; }
.scn-long-for-home .figure { position:absolute; bottom:33%; left:46%; width:16px; height:28px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lh-figure 6s ease-in-out infinite; }
.scn-long-for-home .wave-1 { position:absolute; bottom:15%; left:0; width:200%; height:20px; background: radial-gradient(ellipse at 50% 50%, rgba(100,140,180,.4) 0%, transparent 100%); border-radius: 50%; filter: blur(4px); animation: lh-wave1 12s ease-in-out infinite; }
.scn-long-for-home .wave-2 { position:absolute; bottom:8%; left:-20%; width:200%; height:30px; background: radial-gradient(ellipse at 50% 50%, rgba(80,120,160,.3) 0%, transparent 100%); border-radius: 50%; filter: blur(6px); animation: lh-wave2 16s ease-in-out infinite reverse; }
.scn-long-for-home .sun { position:absolute; top:25%; left:15%; width:28px; height:28px; background: radial-gradient(circle, #ffd090 0%, #f0b060 50%, transparent 100%); border-radius: 50%; box-shadow: 0 0 30px 8px #f0b060; animation: lh-sun 7s ease-in-out infinite alternate; }
@keyframes lh-sky { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes lh-sea { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes lh-ship { 0% { transform: translateX(0) rotate(-1deg) } 50% { transform: translateX(4px) rotate(1deg) } 100% { transform: translateX(0) } }
@keyframes lh-sail1 { 0% { transform: rotate(-3deg) } 50% { transform: rotate(3deg) } 100% { transform: rotate(-2deg) } }
@keyframes lh-sail2 { 0% { transform: rotate(2deg) } 50% { transform: rotate(-2deg) } 100% { transform: rotate(1deg) } }
@keyframes lh-figure { 0% { transform: translateX(0) translateY(0) rotate(0) } 25% { transform: translateX(2px) translateY(-1px) rotate(1deg) } 50% { transform: translateX(4px) translateY(0) rotate(0) } 75% { transform: translateX(6px) translateY(-1px) rotate(-1deg) } 100% { transform: translateX(8px) translateY(0) rotate(0) } }
@keyframes lh-wave1 { 0% { transform: translateX(0) scaleX(1) } 50% { transform: translateX(-30px) scaleX(1.1) } 100% { transform: translateX(0) } }
@keyframes lh-wave2 { 0% { transform: translateX(0) scaleY(1) } 50% { transform: translateX(20px) scaleY(1.2) } 100% { transform: translateX(0) } }
@keyframes lh-sun { 0% { transform: scale(.95); opacity:.9 } 50% { transform: scale(1.05); opacity:1 } 100% { transform: scale(1); opacity:.95 } }

/* plan-for-meeting */
.scn-plan-for-meeting {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a4a 60%, #3a3a5a 100%), radial-gradient(ellipse at 80% 50%, #4a4a6a 0%, transparent 70%);
}
.scn-plan-for-meeting .wall-left {
  position:absolute; left:0; top:0; width:30%; height:100%;
  background: linear-gradient(90deg, #1e1e32 0%, #2a2a44 100%);
  box-shadow: inset -8px 0 20px rgba(0,0,0,0.6);
  animation: pm-shadow 6s ease-in-out infinite alternate;
}
.scn-plan-for-meeting .wall-right {
  position:absolute; right:0; top:0; width:30%; height:100%;
  background: linear-gradient(270deg, #1e1e32 0%, #2a2a44 100%);
  box-shadow: inset 8px 0 20px rgba(0,0,0,0.6);
}
.scn-plan-for-meeting .window-arch {
  position:absolute; left:50%; top:20%; width:40%; height:50%;
  transform:translateX(-50%);
  background: radial-gradient(ellipse at 50% 30%, #3a3a5a 0%, #1a1a2e 80%);
  border-radius: 50% 50% 0 0 / 60% 60% 0 0;
  border: 4px solid #4a4a6a;
  box-shadow: inset 0 0 40px rgba(100,100,180,0.3), 0 0 30px rgba(100,100,180,0.1);
  animation: pm-arch 12s ease-in-out infinite;
}
.scn-plan-for-meeting .moonlight {
  position:absolute; left:50%; top:18%; width:25%; height:40%;
  transform:translateX(-50%);
  background: linear-gradient(180deg, rgba(180,200,255,0.15) 0%, transparent 100%);
  filter: blur(12px);
  animation: pm-moon 8s ease-in-out infinite alternate;
}
.scn-plan-for-meeting .figure {
  position:absolute; left:50%; bottom:28%; width:24px; height:44px;
  transform:translateX(-50%);
  background: linear-gradient(180deg, #0e0e1a 0%, #1a1a2e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 20px rgba(0,0,0,0.8);
  animation: pm-figure 4s ease-in-out infinite;
}
.scn-plan-for-meeting .shadow-stripe {
  position:absolute; left:0; bottom:20%; width:100%; height:8%;
  background: linear-gradient(90deg, transparent 0%, rgba(0,0,0,0.4) 40%, transparent 60%);
  filter: blur(4px);
  animation: pm-stripe 7s ease-in-out infinite alternate;
}
.scn-plan-for-meeting .dust-mote {
  position:absolute; left:45%; top:35%; width:6px; height:6px;
  background: rgba(200,200,255,0.3);
  border-radius:50%;
  filter: blur(1px);
  animation: pm-dust 10s linear infinite;
}

@keyframes pm-shadow {
  0% { opacity:0.7; }
  50% { opacity:1; }
  100% { opacity:0.8; }
}
@keyframes pm-arch {
  0% { box-shadow: inset 0 0 40px rgba(100,100,180,0.3), 0 0 30px rgba(100,100,180,0.1); }
  50% { box-shadow: inset 0 0 60px rgba(100,100,180,0.5), 0 0 50px rgba(100,100,180,0.2); }
  100% { box-shadow: inset 0 0 30px rgba(100,100,180,0.2), 0 0 20px rgba(100,100,180,0.05); }
}
@keyframes pm-moon {
  0% { opacity:0.3; transform: translateX(-50%) translateY(0) scale(1); }
  50% { opacity:0.7; transform: translateX(-50%) translateY(-5px) scale(1.02); }
  100% { opacity:0.4; transform: translateX(-50%) translateY(2px) scale(0.98); }
}
@keyframes pm-figure {
  0% { transform: translateX(-50%) translateY(0) rotate(0deg); }
  30% { transform: translateX(-45%) translateY(-1px) rotate(2deg); }
  60% { transform: translateX(-55%) translateY(-2px) rotate(-2deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(0deg); }
}
@keyframes pm-stripe {
  0% { transform: translateX(-10px); opacity:0.6; }
  100% { transform: translateX(10px); opacity:0.3; }
}
@keyframes pm-dust {
  0% { transform: translate(0,0) scale(1); opacity:0.3; }
  50% { transform: translate(20px,-30px) scale(1.5); opacity:0.7; }
  100% { transform: translate(40px,-60px) scale(0.8); opacity:0; }
}

/* count-recovered */
.scn-count-recovered {
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 50%, #2a1a0a 100%), radial-gradient(ellipse at 50% 60%, #6a4a2a 0%, transparent 70%);
}
.scn-count-recovered .wall-bg {
  position:absolute; inset:0;
  background: linear-gradient(135deg, #4a3a2a 0%, #3a2a1a 80%);
  box-shadow: inset 0 0 60px rgba(0,0,0,0.7);
}
.scn-count-recovered .hearth-glow {
  position:absolute; bottom:10%; left:20%; width:60%; height:30%;
  background: radial-gradient(ellipse at 50% 100%, #e09040 0%, #b07030 40%, transparent 80%);
  filter: blur(18px);
  animation: cr-hearth 5s ease-in-out infinite alternate;
}
.scn-count-recovered .candle {
  position:absolute; bottom:35%; left:40%; width:8px; height:50px;
  background: linear-gradient(180deg, #f0d080 0%, #c09040 60%, #6a4a2a 100%);
  border-radius: 2px 2px 4px 4px;
  box-shadow: 0 0 30px #e0a050, 0 0 60px rgba(224,160,80,0.3);
  animation: cr-candle 3s ease-in-out infinite;
}
.scn-count-recovered .candle::before {
  content: ''; position:absolute; top:-10px; left:50%; transform:translateX(-50%);
  width:10px; height:14px;
  background: radial-gradient(circle, #ffd080 0%, transparent 70%);
  border-radius:50%;
}
.scn-count-recovered .chair {
  position:absolute; bottom:18%; left:25%; width:50px; height:70px;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2a0a 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.6);
  transform: rotate(-5deg);
  animation: cr-chair 8s ease-in-out infinite;
}
.scn-count-recovered .figure {
  position:absolute; bottom:18%; left:48%; width:20px; height:50px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  box-shadow: 0 0 15px rgba(0,0,0,0.5);
  animation: cr-figure 6s ease-in-out infinite;
}
.scn-count-recovered .table {
  position:absolute; bottom:15%; left:38%; width:70px; height:20px;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2a0a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-count-recovered .letter {
  position:absolute; bottom:30%; left:44%; width:16px; height:22px;
  background: linear-gradient(180deg, #e8d8b8 0%, #c8b898 100%);
  border-radius: 2px;
  transform: rotate(10deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: cr-letter 4s ease-in-out infinite alternate;
}

@keyframes cr-hearth {
  0% { opacity:0.7; transform: scale(1); }
  50% { opacity:1; transform: scale(1.05); }
  100% { opacity:0.8; transform: scale(0.95); }
}
@keyframes cr-candle {
  0% { box-shadow: 0 0 20px #e0a050, 0 0 40px rgba(224,160,80,0.2); height:50px; }
  50% { box-shadow: 0 0 35px #f0b060, 0 0 70px rgba(240,176,96,0.4); height:48px; }
  100% { box-shadow: 0 0 25px #e0a050, 0 0 50px rgba(224,160,80,0.3); height:50px; }
}
@keyframes cr-chair {
  0% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(-3deg) translateY(-2px); }
  100% { transform: rotate(-5deg) translateY(0); }
}
@keyframes cr-figure {
  0% { transform: translateX(-50%) rotate(0deg) translateY(0); }
  30% { transform: translateX(-48%) rotate(3deg) translateY(-2px); }
  70% { transform: translateX(-52%) rotate(-3deg) translateY(-1px); }
  100% { transform: translateX(-50%) rotate(0deg) translateY(0); }
}
@keyframes cr-letter {
  0% { transform: rotate(10deg) scale(1); opacity:0.9; }
  100% { transform: rotate(8deg) scale(1.05); opacity:1; }
}

/* on-terrace */
.scn-on-terrace {
  background: linear-gradient(180deg, #2a1a2a 0%, #3a2a4a 30%, #5a4a6a 60%, #8a7a8a 100%), radial-gradient(ellipse at 50% 0%, #6a5a7a 0%, transparent 70%);
}
.scn-on-terrace .sky-dusk {
  position:absolute; inset:0 0 40% 0;
  background: linear-gradient(180deg, #2a1a2a 0%, #4a2a4a 40%, #7a4a5a 70%, #b08060 100%);
  animation: ot-sky 15s ease-in-out infinite alternate;
}
.scn-on-terrace .terrace-wall {
  position:absolute; bottom:30%; left:0; right:0; height:50%;
  background: linear-gradient(180deg, #4a3a4a 0%, #2a1a2a 100%);
  border-radius: 0 0 10% 10% / 0 0 5% 5%;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.5);
}
.scn-on-terrace .distant-window {
  position:absolute; bottom:45%; left:30%; width:30px; height:40px;
  background: radial-gradient(circle, #c08050 0%, #8a6030 60%);
  border-radius: 4px;
  box-shadow: 0 0 30px #c08050, 0 0 60px rgba(192,128,80,0.4);
  animation: ot-window 4s ease-in-out infinite alternate;
}
.scn-on-terrace .figure-silhouette {
  position:absolute; bottom:30%; left:50%; width:22px; height:50px;
  transform:translateX(-50%);
  background: linear-gradient(180deg, #0a0a0a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 20px rgba(0,0,0,0.7);
  animation: ot-figure 5s ease-in-out infinite;
}
.scn-on-terrace .lantern {
  position:absolute; bottom:38%; left:45%; width:8px; height:16px;
  background: radial-gradient(circle, #e0a050 0%, transparent 80%);
  border-radius: 4px;
  filter: blur(3px);
  animation: ot-lantern 3s ease-in-out infinite;
}
.scn-on-terrace .battlement {
  position:absolute; bottom:30%; left:0; right:0; height:8%;
  background: repeating-linear-gradient(90deg, #3a2a3a 0%, #3a2a3a 20px, transparent 20px, transparent 30px);
  box-shadow: 0 -4px 8px rgba(0,0,0,0.5);
}
.scn-on-terrace .mist {
  position:absolute; bottom:20%; left:-20%; width:140%; height:30%;
  background: linear-gradient(90deg, transparent 0%, rgba(150,130,160,0.2) 50%, transparent 100%);
  filter: blur(20px);
  animation: ot-mist 20s linear infinite;
}

@keyframes ot-sky {
  0% { opacity:0.8; }
  50% { opacity:0.5; }
  100% { opacity:0.9; }
}
@keyframes ot-window {
  0% { opacity:0.7; box-shadow: 0 0 20px #c08050, 0 0 40px rgba(192,128,80,0.2); }
  50% { opacity:1; box-shadow: 0 0 40px #d09060, 0 0 80px rgba(208,144,96,0.4); }
  100% { opacity:0.8; box-shadow: 0 0 30px #c08050, 0 0 60px rgba(192,128,80,0.3); }
}
@keyframes ot-figure {
  0% { transform: translateX(-50%) translateY(0) rotate(0deg); }
  25% { transform: translateX(-45%) translateY(-2px) rotate(2deg); }
  75% { transform: translateX(-55%) translateY(-1px) rotate(-2deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(0deg); }
}
@keyframes ot-lantern {
  0% { transform: translateY(0) scale(1); opacity:0.8; }
  50% { transform: translateY(-3px) scale(1.1); opacity:1; }
  100% { transform: translateY(0) scale(1); opacity:0.8; }
}
@keyframes ot-mist {
  0% { transform: translateX(0); }
  100% { transform: translateX(50%); }
}

/* waiting */
.scn-waiting {
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2e 40%, #2a2a4a 100%), radial-gradient(ellipse at 50% 30%, #3a3a5a 0%, transparent 80%);
}
.scn-waiting .sky-night {
  position:absolute; inset:0 0 50% 0;
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a3e 60%, #2a2a5a 100%);
  animation: wa-sky 10s ease-in-out infinite alternate;
}
.scn-waiting .turret-tower {
  position:absolute; left:40%; top:10%; width:20%; height:70%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 10% 10% 0 0 / 20% 20% 0 0;
  box-shadow: inset -5px 0 10px rgba(0,0,0,0.5), inset 5px 0 10px rgba(0,0,0,0.5);
  font-size: 0;
}
.scn-waiting .turret-window-low {
  position:absolute; left:44%; top:50%; width:8%; height:12%;
  background: radial-gradient(circle, #6a5a3a 0%, #3a2a1a 80%);
  border-radius: 2px;
  box-shadow: 0 0 20px #6a5a3a, 0 0 40px rgba(106,90,58,0.3);
  animation: wa-low 5s ease-in-out infinite alternate;
}
.scn-waiting .turret-window-high {
  position:absolute; left:44%; top:20%; width:8%; height:10%;
  background: #1a1a2e;
  border: 1px solid #3a3a4a;
  border-radius: 2px;
  box-shadow: inset 0 0 6px rgba(0,0,0,0.8);
  animation: wa-high 8s ease-in-out infinite;
}
.scn-waiting .lamp-move {
  position:absolute; left:44%; top:60%; width:6px; height:10px;
  background: radial-gradient(circle, #e0a050 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(4px);
  animation: wa-lamp 4s ease-in-out infinite;
}
.scn-waiting .figure-wait {
  position:absolute; left:50%; bottom:15%; width:18px; height:40px;
  transform:translateX(-50%);
  background: linear-gradient(180deg, #0a0a0a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 15px rgba(0,0,0,0.6);
  animation: wa-figure 3s ease-in-out infinite;
}
.scn-waiting .ground {
  position:absolute; bottom:0; left:0; right:0; height:15%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
}
.scn-waiting .shadow-arch {
  position:absolute; left:38%; bottom:12%; width:24%; height:20%;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.6) 0%, transparent 80%);
  filter: blur(6px);
  animation: wa-arch 7s ease-in-out infinite alternate;
}

@keyframes wa-sky {
  0% { opacity:0.6; }
  50% { opacity:0.9; }
  100% { opacity:0.7; }
}
@keyframes wa-low {
  0% { opacity:0.5; box-shadow: 0 0 10px #6a5a3a, 0 0 20px rgba(106,90,58,0.2); }
  50% { opacity:0.9; box-shadow: 0 0 25px #8a6a4a, 0 0 50px rgba(138,106,74,0.4); }
  100% { opacity:0.6; box-shadow: 0 0 15px #6a5a3a, 0 0 30px rgba(106,90,58,0.3); }
}
@keyframes wa-high {
  0% { background: #1a1a2e; }
  50% { background: #2a2a3e; }
  100% { background: #1a1a2e; }
}
@keyframes wa-lamp {
  0% { transform: translateY(0) scale(1); opacity:0.7; }
  50% { transform: translateY(-8px) scale(1.2); opacity:1; }
  100% { transform: translateY(0) scale(1); opacity:0.7; }
}
@keyframes wa-figure {
  0% { transform: translateX(-50%) translateY(0) rotate(0deg); }
  20% { transform: translateX(-48%) translateY(-2px) rotate(2deg); }
  40% { transform: translateX(-52%) translateY(-1px) rotate(-2deg); }
  60% { transform: translateX(-50%) translateY(0) rotate(1deg); }
  80% { transform: translateX(-48%) translateY(-2px) rotate(-1deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(0deg); }
}
@keyframes wa-arch {
  0% { transform: scale(1); opacity:0.4; }
  100% { transform: scale(1.1); opacity:0.8; }
}

.scn-night-reception {
  background: linear-gradient(180deg, #1a2a4a 0%, #2a3a5a 40%, #3a4a6a 70%, #4a5a7a 100%),
              radial-gradient(ellipse at 50% 100%, #4a5a7a 0%, transparent 60%);
}
.scn-night-reception .moon-sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #1a2a6a 0%, #2a3a8a 50%, #3a4a9a 100%);
  animation: nr-sky 12s ease-in-out infinite alternate;
}
.scn-night-reception .portico-roof {
  position: absolute; top: 15%; left: 10%; right: 10%; height: 8%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: 0 4px 10px rgba(0,0,0,0.5);
  animation: nr-roof 8s ease-in-out infinite alternate;
}
.scn-night-reception .pill-l, .scn-night-reception .pill-r {
  position: absolute; bottom: 20%; width: 6%; height: 55%;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
  border-radius: 10%;
  box-shadow: inset -2px 0 4px rgba(0,0,0,0.3);
}
.scn-night-reception .pill-l { left: 15%; animation: nr-pillar 10s ease-in-out infinite; }
.scn-night-reception .pill-r { right: 15%; animation: nr-pillar 10s ease-in-out infinite reverse; }
.scn-night-reception .sofa-left, .scn-night-reception .sofa-right {
  position: absolute; bottom: 18%; width: 18%; height: 12%;
  background: linear-gradient(180deg, #4a4a3a 0%, #3a3a2a 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
}
.scn-night-reception .sofa-left { left: 22%; animation: nr-sofa 14s ease-in-out infinite; }
.scn-night-reception .sofa-right { right: 22%; animation: nr-sofa 14s ease-in-out infinite reverse; }
.scn-night-reception .figure {
  position: absolute; bottom: 20%; width: 8%; height: 18%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
}
.scn-night-reception .fig-a { left: 28%; animation: nr-figure 4s ease-in-out infinite; }
.scn-night-reception .fig-b { right: 28%; animation: nr-figure 4s ease-in-out infinite 2s; }
.scn-night-reception .fruit-bowl {
  position: absolute; bottom: 22%; left: 45%; width: 10%; height: 8%;
  background: radial-gradient(circle at 30% 30%, #6a5a3a 0%, #4a3a2a 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 12px 2px rgba(255,200,100,0.3);
  animation: nr-bowl 6s ease-in-out infinite;
}
@keyframes nr-sky { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes nr-roof { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes nr-pillar { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(0.98) } }
@keyframes nr-sofa { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes nr-figure { 0%,100% { transform: translateX(0) rotate(0) } 25% { transform: translateX(1px) rotate(-1deg) } 50% { transform: translateX(2px) rotate(1deg) } 75% { transform: translateX(1px) rotate(0) } }
@keyframes nr-bowl { 0%,100% { transform: scale(1) } 50% { transform: scale(1.02) } }

.scn-marble-hall {
  background: linear-gradient(180deg, #4a3a2a 0%, #6a5a3a 30%, #8a7a5a 60%, #6a5a3a 100%),
              radial-gradient(ellipse at 50% 0%, #c0a060 0%, transparent 60%);
}
.scn-marble-hall .hall-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #5a4a3a 0%, #7a6a4a 50%, #5a4a3a 100%);
  animation: mh-bg 10s ease-in-out infinite alternate;
}
.scn-marble-hall .mh-p-l, .scn-marble-hall .mh-p-r {
  position: absolute; bottom: 0; width: 5%; height: 70%;
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%);
  border-radius: 4%;
  box-shadow: inset -3px 0 6px rgba(0,0,0,0.3);
}
.scn-marble-hall .mh-p-l { left: 12%; animation: mh-pillar 8s ease-in-out infinite; }
.scn-marble-hall .mh-p-r { right: 12%; animation: mh-pillar 8s ease-in-out infinite reverse; }
.scn-marble-hall .mh-lamp-1, .scn-marble-hall .mh-lamp-2 {
  position: absolute; top: 18%; width: 4%; height: 8%;
  background: radial-gradient(circle at 50% 30%, #ffd080 0%, #c0a060 50%, #8a6a30 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 20px 4px #c0a060, 0 0 40px 8px rgba(192,160,96,0.3);
  animation: mh-lamp 4s ease-in-out infinite alternate;
}
.scn-marble-hall .mh-lamp-1 { left: 28%; }
.scn-marble-hall .mh-lamp-2 { right: 28%; animation-delay: 2s; }
.scn-marble-hall .banquet-table {
  position: absolute; bottom: 10%; left: 20%; right: 20%; height: 14%;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a2a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.5);
  animation: mh-table 12s ease-in-out infinite;
}
.scn-marble-hall .chair {
  position: absolute; bottom: 8%; width: 10%; height: 20%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 30% 30% 10% 10%;
  transform-origin: bottom center;
}
.scn-marble-hall .ch-left { left: 14%; animation: mh-chair 6s ease-in-out infinite; }
.scn-marble-hall .ch-right { right: 14%; animation: mh-chair 6s ease-in-out infinite 3s; }
.scn-marble-hall .servant {
  position: absolute; bottom: 12%; width: 6%; height: 22%;
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
}
.scn-marble-hall .sv-1 { left: 38%; animation: mh-servant 5s ease-in-out infinite; }
@keyframes mh-bg { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes mh-pillar { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(0.97) } }
@keyframes mh-lamp { 0% { box-shadow: 0 0 15px 2px #c0a060 } 50% { box-shadow: 0 0 30px 6px #e0c080 } 100% { box-shadow: 0 0 20px 3px #c0a060 } }
@keyframes mh-table { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }
@keyframes mh-chair { 0%,100% { transform: rotate(0) } 25% { transform: rotate(1deg) } 50% { transform: rotate(-1deg) } 75% { transform: rotate(1deg) } }
@keyframes mh-servant { 0%,100% { transform: translateX(0) } 50% { transform: translateX(3px) } }

.scn-hall-description {
  background: linear-gradient(180deg, #2a2a4a 0%, #4a4a6a 40%, #6a6a8a 70%, #4a4a6a 100%),
              radial-gradient(ellipse at 50% 0%, #8a8aaa 0%, transparent 70%);
}
.scn-hall-description .hd-bg-interior {
  position: absolute; inset: 0 30% 0 30%;
  background: linear-gradient(180deg, #5a4a3a 0%, #7a6a4a 50%, #5a4a3a 100%);
  animation: hd-interior 10s ease-in-out infinite alternate;
}
.scn-hall-description .hd-portico-left, .scn-hall-description .hd-portico-right {
  position: absolute; inset: 0 60% 0 0;
  background: linear-gradient(180deg, #2a3a5a 0%, #3a4a6a 100%);
  animation: hd-portico 14s ease-in-out infinite alternate;
}
.scn-hall-description .hd-portico-right {
  left: 60%; right: 0;
  background: linear-gradient(180deg, #2a3a5a 0%, #3a4a6a 100%);
  animation: hd-portico 14s ease-in-out infinite alternate-reverse;
}
.scn-hall-description .hd-p-l, .scn-hall-description .hd-p-r {
  position: absolute; top: 10%; width: 4%; height: 60%;
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%);
  border-radius: 5%;
  box-shadow: inset -2px 0 4px rgba(0,0,0,0.3);
}
.scn-hall-description .hd-p-l { left: 32%; animation: hd-pillar 8s ease-in-out infinite; }
.scn-hall-description .hd-p-r { right: 32%; animation: hd-pillar 8s ease-in-out infinite reverse; }
.scn-hall-description .hd-lamp-1, .scn-hall-description .hd-lamp-2 {
  position: absolute; top: 8%; width: 3%; height: 10%;
  background: radial-gradient(circle at 50% 30%, #e0b060 0%, #a08040 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 16px 3px #c0a060, 0 0 32px 6px rgba(192,160,96,0.3);
  animation: hd-lamp 5s ease-in-out infinite alternate;
}
.scn-hall-description .hd-lamp-1 { left: 28%; }
.scn-hall-description .hd-lamp-2 { right: 28%; animation-delay: 2.5s; }
.scn-hall-description .hd-moon-ray {
  position: absolute; top: 10%; left: 10%; right: 10%; height: 20%;
  background: linear-gradient(180deg, rgba(200,200,255,0.2) 0%, transparent 100%);
  filter: blur(8px);
  animation: hd-ray 12s ease-in-out infinite;
}
@keyframes hd-interior { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes hd-portico { 0% { opacity:0.5 } 50% { opacity:0.8 } 100% { opacity:0.6 } }
@keyframes hd-pillar { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(0.96) } }
@keyframes hd-lamp { 0% { box-shadow: 0 0 10px 1px #a08040 } 50% { box-shadow: 0 0 20px 4px #e0b060 } 100% { box-shadow: 0 0 14px 2px #a08040 } }
@keyframes hd-ray { 0%,100% { opacity:0.1 } 50% { opacity:0.3 } }

.scn-quesnel-boasts {
  background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 40%, #3a3a4a 70%, #2a2a3a 100%),
              radial-gradient(ellipse at 50% 0%, #4a4a5a 0%, transparent 60%);
}
.scn-quesnel-boasts .qb-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #2a2a3a 0%, #3a3a4a 50%, #2a2a3a 100%);
  animation: qb-bg 8s ease-in-out infinite alternate;
}
.scn-quesnel-boasts .qb-lamp {
  position: absolute; top: 20%; left: 45%; width: 10%; height: 14%;
  background: radial-gradient(circle at 50% 20%, #e0a040 0%, #a07030 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 30px 6px #a07030, 0 0 60px 12px rgba(160,112,48,0.4);
  animation: qb-lamp 3s ease-in-out infinite alternate;
}
.scn-quesnel-boasts .qb-montoni, .scn-quesnel-boasts .qb-quesnel {
  position: absolute; bottom: 8%; width: 10%; height: 35%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
}
.scn-quesnel-boasts .qb-montoni {
  left: 28%;
  animation: qb-figure 6s ease-in-out infinite;
}
.scn-quesnel-boasts .qb-quesnel {
  right: 28%;
  animation: qb-figure 6s ease-in-out infinite 3s;
}
.scn-quesnel-boasts .qb-shadow-1, .scn-quesnel-boasts .qb-shadow-2 {
  position: absolute; bottom: 0; width: 20%; height: 30%;
  background: linear-gradient(180deg, rgba(0,0,0,0.3) 0%, transparent 100%);
  filter: blur(6px);
}
.scn-quesnel-boasts .qb-shadow-1 { left: 24%; animation: qb-shadow 7s ease-in-out infinite; }
.scn-quesnel-boasts .qb-shadow-2 { right: 24%; animation: qb-shadow 7s ease-in-out infinite 3.5s; }
@keyframes qb-bg { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes qb-lamp { 0% { box-shadow: 0 0 20px 3px #a07030 } 50% { box-shadow: 0 0 40px 8px #e0a040 } 100% { box-shadow: 0 0 25px 4px #a07030 } }
@keyframes qb-figure { 0%,100% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-2px) rotate(-2deg) } 50% { transform: translateY(0) rotate(2deg) } 75% { transform: translateY(-1px) rotate(0) } }
@keyframes qb-shadow { 0%,100% { transform: scaleX(1) } 50% { transform: scaleX(1.05) } }

.scn-aunt-weeps {
  background: linear-gradient(180deg, #f9e8d0 0%, #d4c4a8 50%, #b89a74 100%),
              radial-gradient(ellipse at 30% 20%, #fff7e0 0%, transparent 70%);
}
.scn-aunt-weeps .wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #f0e0c8 0%, #d4c0a8 100%);
  animation: aw-wall 20s ease-in-out infinite alternate;
}
.scn-aunt-weeps .window {
  position: absolute; top: 8%; left: 30%; width: 40%; height: 50%;
  background: linear-gradient(180deg, #bdd3e8 0%, #92b0d0 100%);
  border: 4px solid #a08060;
  border-radius: 2%;
  box-shadow: inset 0 0 30px rgba(255,240,200,0.6);
  animation: aw-window 8s ease-in-out infinite alternate;
}
.scn-aunt-weeps .curtain-l,
.scn-aunt-weeps .curtain-r {
  position: absolute; top: 8%; width: 15%; height: 50%;
  background: linear-gradient(180deg, #b08860 0%, #8a6a4a 100%);
  border-radius: 0 10% 10% 0 / 0 20% 20% 0;
  animation: aw-curtain 12s ease-in-out infinite alternate;
}
.scn-aunt-weeps .curtain-l { left: 30%; }
.scn-aunt-weeps .curtain-r { right: 30%; transform: scaleX(-1); }
.scn-aunt-weeps .light-beam {
  position: absolute; top: 8%; left: 38%; width: 24%; height: 55%;
  background: linear-gradient(135deg, rgba(255,240,200,0.35) 0%, transparent 100%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  opacity: 0.5;
  animation: aw-light 6s ease-in-out infinite alternate;
}
.scn-aunt-weeps .figure-weep {
  position: absolute; bottom: 22%; left: 45%; width: 40px; height: 55px;
  background: linear-gradient(180deg, #7a6a5a 0%, #4a3a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: aw-figure 5s ease-in-out infinite;
}
.scn-aunt-weeps .chair {
  position: absolute; bottom: 18%; left: 48%; width: 50px; height: 30px;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%);
  border-radius: 10% 10% 20% 20%;
  transform: translateX(-50%);
  animation: aw-chair 10s ease-in-out infinite alternate;
}
.scn-aunt-weeps .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #b89870 0%, #8a6a50 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.2);
}
@keyframes aw-wall { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes aw-window { 0% { box-shadow: inset 0 0 20px rgba(255,240,200,0.4) } 50% { box-shadow: inset 0 0 40px rgba(255,240,200,0.8) } 100% { box-shadow: inset 0 0 25px rgba(255,240,200,0.5) } }
@keyframes aw-curtain { 0% { transform: translateX(0) } 50% { transform: translateX(-5px) } 100% { transform: translateX(0) } }
@keyframes aw-light { 0% { opacity: 0.4; transform: skewX(-2deg) } 50% { opacity: 0.6; transform: skewX(0deg) } 100% { opacity: 0.45; transform: skewX(2deg) } }
@keyframes aw-figure { 0% { transform: translateY(0) rotate(-2deg) } 25% { transform: translateY(-3px) rotate(2deg) } 50% { transform: translateY(0) rotate(-1deg) } 75% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes aw-chair { 0%,100% { transform: translateX(-50%) } 50% { transform: translateX(-50%) translateY(2px) } }

.scn-emily-praises-castle {
  background: linear-gradient(180deg, #9fc5e8 0%, #6da3d0 40%, #5a8ab0 100%),
              radial-gradient(ellipse at 70% 30%, #ffe6a0 0%, transparent 60%);
}
.scn-emily-praises-castle .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #b8d6f0 0%, #88b8e0 100%);
  animation: epc-sky 25s ease-in-out infinite alternate;
}
.scn-emily-praises-castle .sun-glint {
  position: absolute; top: 8%; right: 30%; width: 60px; height: 60px;
  background: radial-gradient(circle, rgba(255,240,180,0.7) 0%, rgba(255,240,180,0.1) 60%, transparent 100%);
  border-radius: 50%;
  filter: blur(8px);
  animation: epc-glint 12s ease-in-out infinite alternate;
}
.scn-emily-praises-castle .mountains {
  position: absolute; bottom: 35%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #6a8a5a 0%, #4a6a3a 100%);
  clip-path: polygon(0 70%, 10% 40%, 20% 60%, 30% 20%, 40% 50%, 50% 10%, 60% 40%, 70% 25%, 80% 55%, 90% 30%, 100% 60%, 100% 100%, 0 100%);
  animation: epc-mountains 30s ease-in-out infinite alternate;
}
.scn-emily-praises-castle .castle {
  position: absolute; bottom: 32%; right: 20%; width: 100px; height: 80px;
  background: linear-gradient(180deg, #c0a080 0%, #907050 100%);
  clip-path: polygon(0 100%, 10% 20%, 30% 20%, 30% 0, 50% 0, 50% 20%, 70% 20%, 80% 40%, 80% 60%, 100% 60%, 100% 100%);
  box-shadow: 0 8px 20px rgba(0,0,0,0.3);
  animation: epc-castle 18s ease-in-out infinite alternate;
}
.scn-emily-praises-castle .foreground-grass {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #5a8a3a 0%, #3a6a2a 100%);
  border-radius: 60% 40% 0 0 / 80% 60% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.3);
  animation: epc-grass 15s ease-in-out infinite alternate;
}
.scn-emily-praises-castle .emily-figure {
  position: absolute; bottom: 25%; left: 20%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: epc-figure 6s ease-in-out infinite;
}
.scn-emily-praises-castle .cloud-a,
.scn-emily-praises-castle .cloud-b {
  position: absolute; top: 12%; width: 100px; height: 25px;
  background: linear-gradient(180deg, rgba(255,255,255,0.6) 0%, rgba(255,255,255,0.1) 100%);
  border-radius: 50%;
  filter: blur(6px);
}
.scn-emily-praises-castle .cloud-a { left: -10%; animation: epc-cloud-a 40s linear infinite; }
.scn-emily-praises-castle .cloud-b { left: 20%; width: 70px; height: 18px; top: 20%; animation: epc-cloud-b 55s linear infinite reverse; }
@keyframes epc-sky { 0% { opacity: 0.85 } 50% { opacity: 1 } 100% { opacity: 0.9 } }
@keyframes epc-glint { 0% { transform: scale(1) rotate(0deg); opacity: 0.6 } 50% { transform: scale(1.2) rotate(10deg); opacity: 1 } 100% { transform: scale(0.95) rotate(-5deg); opacity: 0.7 } }
@keyframes epc-mountains { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes epc-castle { 0% { transform: scale(1) } 50% { transform: scale(1.02) translateY(-2px) } 100% { transform: scale(0.98) } }
@keyframes epc-grass { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes epc-figure { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 25% { transform: translateX(5px) translateY(-2px) rotate(2deg) } 50% { transform: translateX(10px) translateY(0) rotate(-1deg) } 75% { transform: translateX(15px) translateY(-2px) rotate(1deg) } 100% { transform: translateX(20px) translateY(0) rotate(0) } }
@keyframes epc-cloud-a { 0% { transform: translateX(0) } 100% { transform: translateX(120vw) } }
@keyframes epc-cloud-b { 0% { transform: translateX(0) } 100% { transform: translateX(-100vw) } }

.scn-aunt-sarcastic {
  background: linear-gradient(180deg, #f0d8b0 0%, #c8b090 50%, #a08868 100%),
              radial-gradient(ellipse at 40% 30%, #fff0c0 0%, transparent 70%);
}
.scn-aunt-sarcastic .room-bg {
  position: absolute; inset: 0 0 15% 0;
  background: linear-gradient(180deg, #e8d0a8 0%, #b89870 100%);
  animation: as-bg 10s ease-in-out infinite alternate;
}
.scn-aunt-sarcastic .table {
  position: absolute; bottom: 30%; left: 25%; width: 50%; height: 8%;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%);
  border-radius: 2%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.4);
  animation: as-table 8s ease-in-out infinite alternate;
}
.scn-aunt-sarcastic .chair-left {
  position: absolute; bottom: 22%; left: 30%; width: 40px; height: 30px;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2a0a 100%);
  border-radius: 10%;
  transform: rotate(5deg);
  animation: as-chair 6s ease-in-out infinite alternate;
}
.scn-aunt-sarcastic .figure-aunt {
  position: absolute; bottom: 28%; left: 35%; width: 30px; height: 45px;
  background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: as-aunt 4s ease-in-out infinite;
}
.scn-aunt-sarcastic .doorway {
  position: absolute; right: 10%; bottom: 15%; width: 20%; height: 60%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 5% 5% 0 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.6);
  animation: as-door 12s ease-in-out infinite alternate;
}
.scn-aunt-sarcastic .figure-montoni {
  position: absolute; bottom: 25%; right: 15%; width: 35px; 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: as-montoni 3s ease-in-out infinite;
}
.scn-aunt-sarcastic .shadow-slice {
  position: absolute; top: 0; left: 50%; width: 50%; height: 100%;
  background: linear-gradient(135deg, rgba(0,0,0,0.25) 0%, transparent 50%);
  animation: as-shadow 5s ease-in-out infinite alternate;
}
@keyframes as-bg { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes as-table { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes as-chair { 0% { transform: rotate(3deg) } 50% { transform: rotate(8deg) } 100% { transform: rotate(4deg) } }
@keyframes as-aunt { 0% { transform: translateY(0) rotate(-1deg) } 25% { transform: translateY(-3px) rotate(3deg) } 50% { transform: translateY(0) rotate(-2deg) } 75% { transform: translateY(-2px) rotate(2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes as-door { 0% { opacity: 0.9; transform: scaleX(0.98) } 50% { opacity: 1; transform: scaleX(1) } 100% { opacity: 0.95; transform: scaleX(0.99) } }
@keyframes as-montoni { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 25% { transform: translateX(5px) translateY(-1px) rotate(2deg) } 50% { transform: translateX(-3px) translateY(0) rotate(-1deg) } 75% { transform: translateX(4px) translateY(-1px) rotate(1deg) } 100% { transform: translateX(0) translateY(0) rotate(0) } }
@keyframes as-shadow { 0% { opacity: 0.5 } 50% { opacity: 0.8 } 100% { opacity: 0.6 } }

.scn-montoni-refuses {
  background: linear-gradient(180deg, #b09878 0%, #8a7050 50%, #60483a 100%),
              radial-gradient(ellipse at 20% 30%, #d0b898 0%, transparent 60%);
}
.scn-montoni-refuses .corridor-wall {
  position: absolute; inset: 0 30% 0 0;
  background: linear-gradient(180deg, #8a7050 0%, #60483a 100%);
  box-shadow: inset -20px 0 30px rgba(0,0,0,0.4);
  animation: mr-wall 15s ease-in-out infinite alternate;
}
.scn-montoni-refuses .staircase {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  clip-path: polygon(0 100%, 0 20%, 15% 20%, 15% 10%, 30% 10%, 30% 0, 100% 0, 100% 100%);
  animation: mr-stairs 20s ease-in-out infinite alternate;
}
.scn-montoni-refuses .door {
  position: absolute; bottom: 30%; left: 10%; width: 30%; height: 50%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border: 3px solid #3a2a1a;
  border-radius: 3% 3% 0 0;
  box-shadow: inset 0 0 15px rgba(0,0,0,0.5);
  animation: mr-door 8s ease-in-out infinite alternate;
}
.scn-montoni-refuses .figure-montoni {
  position: absolute; bottom: 28%; right: 20%; width: 40px; height: 55px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: mr-montoni 4s ease-in-out infinite;
}
.scn-montoni-refuses .lantern {
  position: absolute; bottom: 35%; right: 25%; width: 8px; height: 10px;
  background: radial-gradient(circle, #ffd080 0%, #b08030 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px rgba(255,208,128,0.6);
  animation: mr-lantern 3s ease-in-out infinite alternate;
}
.scn-montoni-refuses .floor-shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, rgba(0,0,0,0.3) 0%, transparent 100%);
  animation: mr-floor 12s ease-in-out infinite alternate;
}
.scn-montoni-refuses .emily-shadow {
  position: absolute; bottom: 25%; left: 5%; width: 25px; height: 50px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  opacity: 0.6;
  animation: mr-emily 6s ease-in-out infinite alternate;
}
@keyframes mr-wall { 0% { opacity: 0.85; transform: scaleX(0.98) } 50% { opacity: 1; transform: scaleX(1) } 100% { opacity: 0.9; transform: scaleX(0.99) } }
@keyframes mr-stairs { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes mr-door { 0% { box-shadow: inset 0 0 10px rgba(0,0,0,0.4) } 50% { box-shadow: inset 0 0 25px rgba(0,0,0,0.7) } 100% { box-shadow: inset 0 0 15px rgba(0,0,0,0.5) } }
@keyframes mr-montoni { 0% { transform: translateX(0) translateY(0) rotate(-1deg) } 25% { transform: translateX(3px) translateY(-2px) rotate(2deg) } 50% { transform: translateX(-2px) translateY(0) rotate(-2deg) } 75% { transform: translateX(4px) translateY(-1px) rotate(1deg) } 100% { transform: translateX(0) translateY(0) rotate(0) } }
@keyframes mr-lantern { 0% { box-shadow: 0 0 15px 4px rgba(255,208,128,0.4); opacity: 0.8 } 50% { box-shadow: 0 0 30px 10px rgba(255,208,128,0.8); opacity: 1 } 100% { box-shadow: 0 0 18px 5px rgba(255,208,128,0.5); opacity: 0.9 } }
@keyframes mr-floor { 0% { opacity: 0.5 } 50% { opacity: 0.8 } 100% { opacity: 0.6 } }
@keyframes mr-emily { 0% { transform: translateX(0) scaleY(1) } 50% { transform: translateX(5px) scaleY(1.05) } 100% { transform: translateX(0) scaleY(1) } }

.scn-hope-of-justice { background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%), radial-gradient(ellipse at 70% 40%, #d4b878 0%, transparent 60%); position: relative; height: 100%; overflow: hidden; }
.scn-hope-of-justice .room-bg { position: absolute; inset: 0; background: linear-gradient(135deg, #5a4a3a 0%, #2a1a0a 100%); }
.scn-hope-of-justice .window-frame { position: absolute; top: 20%; left: 30%; width: 40%; height: 50%; border: 12px solid #8a6a4a; background: rgba(0,0,0,0.3); border-radius: 8px; box-shadow: inset 0 0 40px rgba(0,0,0,0.5); }
.scn-hope-of-justice .sky-out { position: absolute; top: 22%; left: 32%; width: 36%; height: 46%; background: linear-gradient(180deg, #b8d4f0 0%, #f0e8c8 60%); border-radius: 4px; }
.scn-hope-of-justice .sun-ray { position: absolute; top: 25%; left: 50%; width: 120px; height: 300px; transform: rotate(-20deg); background: linear-gradient(180deg, rgba(255,240,180,0.6) 0%, transparent 100%); filter: blur(10px); animation: hoj-ray 8s ease-in-out infinite alternate; }
.scn-hope-of-justice .figure { position: absolute; bottom: 22%; left: 38%; width: 24px; height: 60px; background: linear-gradient(180deg, #3a2a1a, #1a0a0a); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hoj-figure 6s ease-in-out infinite; }
.scn-hope-of-justice .bird { position: absolute; top: 35%; left: 60%; width: 16px; height: 10px; background: #4a3a2a; border-radius: 50% 50% 0 0; box-shadow: 0 6px 0 -3px #2a1a0a; animation: hoj-bird 3s ease-in-out infinite; }
.scn-hope-of-justice .cloud-c { position: absolute; top: 30%; left: 10%; width: 60px; height: 15px; background: rgba(255,255,255,0.4); border-radius: 50%; filter: blur(4px); animation: hoj-cloud 20s linear infinite; }
@keyframes hoj-ray { 0% { opacity: 0.4; transform: rotate(-20deg) scale(1); } 50% { opacity: 0.8; transform: rotate(-15deg) scale(1.1); } 100% { opacity: 0.5; transform: rotate(-25deg) scale(0.95); } }
@keyframes hoj-figure { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(4px) rotate(2deg); } 50% { transform: translateX(0) rotate(0); } 75% { transform: translateX(-4px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes hoj-bird { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-6px) scale(1.1); } 100% { transform: translateY(0) scale(1); } }
@keyframes hoj-cloud { 0% { transform: translateX(-60px); } 100% { transform: translateX(100vw); } }

.scn-siege-approaches { background: linear-gradient(180deg, #b0c4de 0%, #87ceeb 40%, #f0e68c 100%), radial-gradient(ellipse at 30% 20%, #fffacd 0%, transparent 60%); position: relative; height: 100%; overflow: hidden; }
.scn-siege-approaches .sky { position: absolute; inset: 0 0 30% 0; background: linear-gradient(180deg, #c8e6f0 0%, #fff8dc 100%); animation: sia-sky 12s ease-in-out infinite alternate; }
.scn-siege-approaches .mountains { position: absolute; bottom: 30%; left: 0; right: 0; height: 30%; background: linear-gradient(180deg, #6b8e6b 0%, #3a5a3a 100%); border-radius: 20% 40% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.3); animation: sia-mountains 18s ease-in-out infinite alternate; }
.scn-siege-approaches .sun { position: absolute; top: 8%; left: 70%; width: 60px; height: 60px; background: radial-gradient(circle, #fffacd 0%, #ffd700 60%, transparent 100%); border-radius: 50%; box-shadow: 0 0 40px 20px rgba(255,215,0,0.5); animation: sia-sun 6s ease-in-out infinite; }
.scn-siege-approaches .troops { position: absolute; bottom: 32%; left: 20%; width: 120px; height: 40px; background: repeating-linear-gradient(90deg, #2a1a0a 0px, #2a1a0a 4px, transparent 4px, transparent 8px); background-size: 8px 100%; animation: sia-troops 4s linear infinite; }
.scn-siege-approaches .foreground-wall { position: absolute; bottom: 0; left: 0; right: 0; height: 35%; background: linear-gradient(180deg, #8a7a6a, #5a4a3a); border-radius: 10% 10% 0 0; box-shadow: inset 0 20px 40px rgba(0,0,0,0.5); }
.scn-siege-approaches .dust { position: absolute; bottom: 35%; left: 40%; width: 80px; height: 30px; background: rgba(200,180,150,0.3); border-radius: 50%; filter: blur(6px); animation: sia-dust 5s ease-in-out infinite; }
.scn-siege-approaches .flag { position: absolute; top: 18%; left: 80%; width: 8px; height: 40px; background: #4a3a2a; transform: rotate(10deg); animation: sia-flag 2s ease-in-out infinite alternate; }
.scn-siege-approaches .flag::after { content: ''; position: absolute; top: -4px; left: -10px; width: 24px; height: 16px; background: #a0461a; border-radius: 0 4px 4px 0; }
@keyframes sia-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes sia-mountains { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(0); } }
@keyframes sia-sun { 0% { transform: scale(1) translateX(0); } 50% { transform: scale(1.05) translateX(5px); } 100% { transform: scale(1) translateX(0); } }
@keyframes sia-troops { 0% { background-position: 0 0; } 100% { background-position: -120px 0; } }
@keyframes sia-dust { 0% { transform: scale(1) translateY(0); opacity:0.5; } 50% { transform: scale(1.2) translateY(-10px); opacity:0.8; } 100% { transform: scale(1) translateY(0); opacity:0.5; } }
@keyframes sia-flag { 0% { transform: rotate(10deg); } 100% { transform: rotate(-10deg); } }

.scn-decision-to-flee { background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%), radial-gradient(ellipse at 50% 80%, #4a2a1a 0%, transparent 70%); position: relative; height: 100%; overflow: hidden; }
.scn-decision-to-flee .room-shadow { position: absolute; inset: 0; background: linear-gradient(135deg, #1a0a00 40%, transparent 60%); animation: dtf-shadow 10s ease-in-out infinite alternate; }
.scn-decision-to-flee .table { position: absolute; bottom: 10%; left: 25%; width: 50%; height: 8%; background: linear-gradient(180deg, #6a4a2a, #3a2a1a); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.6); }
.scn-decision-to-flee .candle { position: absolute; bottom: 20%; left: 40%; width: 10px; height: 30px; background: linear-gradient(180deg, #f0d090 0%, #c08040 100%); border-radius: 2px; animation: dtf-candle 3s ease-in-out infinite alternate; }
.scn-decision-to-flee .candle::before { content: ''; position: absolute; top: -12px; left: -4px; width: 18px; height: 18px; background: radial-gradient(circle, #ffd060 0%, #ffa030 60%, transparent 100%); border-radius: 50%; box-shadow: 0 0 24px 12px rgba(255,160,48,0.4); animation: dtf-flame 1s ease-in-out infinite alternate; }
.scn-decision-to-flee .package { position: absolute; bottom: 10%; left: 50%; width: 40px; height: 30px; background: linear-gradient(180deg, #8a6a4a, #5a3a2a); border-radius: 4px; border: 2px solid #4a2a1a; animation: dtf-package 4s ease-in-out infinite; }
.scn-decision-to-flee .figure { position: absolute; bottom: 18%; left: 30%; width: 18px; height: 50px; background: linear-gradient(180deg, #3a2a1a, #1a0a00); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dtf-figure 7s ease-in-out infinite; }
.scn-decision-to-flee .door { position: absolute; right: 5%; bottom: 0; width: 20%; height: 90%; background: linear-gradient(180deg, #4a2a1a, #2a1a0a); border-radius: 4px; border: 3px solid #3a2a1a; box-shadow: inset 0 0 10px rgba(0,0,0,0.5); }
.scn-decision-to-flee .chair { position: absolute; bottom: 10%; left: 15%; width: 30px; height: 45px; background: linear-gradient(180deg, #5a3a2a, #2a1a0a); border-radius: 4px; transform: rotate(5deg); animation: dtf-chair 8s ease-in-out infinite; }
@keyframes dtf-shadow { 0% { opacity:0.6; } 50% { opacity:0.9; } 100% { opacity:0.6; } }
@keyframes dtf-candle { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.05); } 100% { transform: scaleY(1); } }
@keyframes dtf-flame { 0% { transform: scale(1) translateY(0); opacity:0.9; } 50% { transform: scale(1.1) translateY(-2px); opacity:1; } 100% { transform: scale(1) translateY(0); opacity:0.9; } }
@keyframes dtf-package { 0% { transform: rotate(0) scale(1); } 25% { transform: rotate(5deg) scale(1.02); } 50% { transform: rotate(0) scale(1); } 75% { transform: rotate(-5deg) scale(0.98); } 100% { transform: rotate(0) scale(1); } }
@keyframes dtf-figure { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(5px) rotate(2deg); } 50% { transform: translateX(0) rotate(0); } 75% { transform: translateX(-5px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes dtf-chair { 0% { transform: rotate(5deg) translateY(0); } 50% { transform: rotate(3deg) translateY(-2px); } 100% { transform: rotate(5deg) translateY(0); } }

.scn-preparations { background: linear-gradient(180deg, #1a0a00 0%, #0a0000 100%), radial-gradient(ellipse at 60% 50%, #2a1a0a 0%, transparent 70%); position: relative; height: 100%; overflow: hidden; }
.scn-preparations .bg-wall { position: absolute; inset: 0; background: linear-gradient(135deg, #2a1a0a, #0a0000); }
.scn-preparations .bed { position: absolute; bottom: 0; left: 20%; width: 60%; height: 30%; background: linear-gradient(180deg, #4a2a1a, #2a1a0a); border-radius: 30% 30% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,0.8); }
.scn-preparations .bundle { position: absolute; bottom: 15%; left: 50%; width: 50px; height: 35px; background: linear-gradient(180deg, #8a6a4a, #5a3a2a); border-radius: 6px; border: 2px solid #4a2a1a; transform: translateX(-50%); animation: prp-bundle 5s ease-in-out infinite; }
.scn-preparations .hands { position: absolute; bottom: 18%; left: 48%; width: 20px; height: 20px; background: radial-gradient(circle, #b89878 0%, #8a6848 100%); border-radius: 40% 40% 60% 60%; transform: translateX(-50%); animation: prp-hands 3s ease-in-out infinite alternate; }
.scn-preparations .candle { position: absolute; bottom: 25%; left: 30%; width: 8px; height: 25px; background: linear-gradient(180deg, #f0d090, #c08040); border-radius: 2px; animation: prp-candle 4s ease-in-out infinite alternate; }
.scn-preparations .candle::before { content: ''; position: absolute; top: -10px; left: -3px; width: 14px; height: 14px; background: radial-gradient(circle, #ffd060 0%, #ffa030 60%, transparent 100%); border-radius: 50%; box-shadow: 0 0 20px 10px rgba(255,160,48,0.5); animation: prp-flame 1.5s ease-in-out infinite alternate; }
.scn-preparations .window-light { position: absolute; top: 30%; left: 70%; width: 80px; height: 100px; background: linear-gradient(135deg, rgba(180,200,230,0.3) 0%, transparent 100%); border-radius: 4px; filter: blur(8px); animation: prp-window 12s ease-in-out infinite alternate; }
.scn-preparations .shadow-figure { position: absolute; bottom: 20%; left: 60%; width: 15px; height: 40px; background: linear-gradient(180deg, #1a0a00, #0a0000); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; animation: prp-shadow 8s ease-in-out infinite; }
@keyframes prp-bundle { 0% { transform: translateX(-50%) rotate(0); } 25% { transform: translateX(-50%) rotate(3deg); } 50% { transform: translateX(-50%) rotate(0); } 75% { transform: translateX(-50%) rotate(-3deg); } 100% { transform: translateX(-50%) rotate(0); } }
@keyframes prp-hands { 0% { transform: translateX(-50%) scale(1) rotate(0); } 50% { transform: translateX(-50%) scale(1.05) rotate(5deg); } 100% { transform: translateX(-50%) scale(1) rotate(0); } }
@keyframes prp-candle { 0% { transform: scaleY(1); opacity:0.9; } 50% { transform: scaleY(1.04); opacity:1; } 100% { transform: scaleY(1); opacity:0.9; } }
@keyframes prp-flame { 0% { transform: scale(1) translateY(0); } 50% { transform: scale(1.15) translateY(-2px); } 100% { transform: scale(1) translateY(0); } }
@keyframes prp-window { 0% { opacity:0.2; transform: scale(1); } 50% { opacity:0.6; transform: scale(1.05); } 100% { opacity:0.3; transform: scale(1); } }
@keyframes prp-shadow { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(3px) rotate(1deg); } 50% { transform: translateX(0) rotate(0); } 75% { transform: translateX(-3px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0); } }

/* emily-encourages */
.scn-emily-encourages {
  background: linear-gradient(180deg, #1a0f0a 0%, #3a2518 40%, #5a3520 100%), radial-gradient(ellipse at 50% 100%, #5a3520 0%, transparent 70%);
}
.scn-emily-encourages .wall {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%);
  border-radius: 0 0 30% 30% / 0 0 10% 10%;
}
.scn-emily-encourages .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #3a2518 0%, #1a0f0a 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
}
.scn-emily-encourages .fireplace {
  position: absolute; bottom: 30%; left: 50%; transform: translateX(-50%);
  width: 120px; height: 100px;
  background: linear-gradient(180deg, #5a3a28 0%, #3a2010 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.6);
}
.scn-emily-encourages .fire {
  position: absolute; bottom: 33%; left: 50%; transform: translateX(-50%);
  width: 40px; height: 50px;
  background: radial-gradient(ellipse at 50% 100%, #ff8040 0%, #ff6020 40%, #b04010 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 30px 15px rgba(255,120,40,0.6), 0 0 60px 30px rgba(255,120,40,0.3);
  animation: ee-fire 0.8s ease-in-out infinite alternate;
}
.scn-emily-encourages .log {
  position: absolute; bottom: 31.5%; left: 50%; transform: translateX(-50%);
  width: 60px; height: 12px;
  background: linear-gradient(180deg, #3a2010 0%, #1a0f0a 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
}
.scn-emily-encourages .figure.emily {
  position: absolute; bottom: 27%; left: 38%;
  width: 22px; height: 50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1010 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ee-sit 6s ease-in-out infinite;
}
.scn-emily-encourages .figure.annette {
  position: absolute; bottom: 27%; right: 38%;
  width: 20px; height: 48px;
  background: linear-gradient(180deg, #4a3020 0%, #2a1810 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ee-sit 6s ease-in-out infinite reverse;
}
.scn-emily-encourages .glow {
  position: absolute; bottom: 30%; left: 30%; right: 30%; height: 40%;
  background: radial-gradient(ellipse at 50% 80%, rgba(255,150,80,0.2) 0%, transparent 70%);
  pointer-events: none;
  animation: ee-glow 4s ease-in-out infinite alternate;
}
@keyframes ee-fire {
  0% { transform: translateX(-50%) scale(1) skewX(0deg); opacity: 0.9; }
  50% { transform: translateX(-50%) scale(1.1, 1.2) skewX(3deg); opacity: 1; }
  100% { transform: translateX(-50%) scale(0.95, 1.05) skewX(-2deg); opacity: 0.85; }
}
@keyframes ee-sit {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes ee-glow {
  0% { opacity: 0.5; }
  100% { opacity: 1; }
}

/* story-of-signora */
.scn-story-of-signora {
  background: linear-gradient(180deg, #2a1a10 0%, #4a3020 40%, #6a4028 100%), radial-gradient(ellipse at 50% 100%, #6a4028 0%, transparent 70%);
}
.scn-story-of-signora .wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #5a3a28 0%, #3a2010 100%);
  border-radius: 0 0 20% 20% / 0 0 10% 10%;
}
.scn-story-of-signora .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #4a3020 0%, #1a0f0a 100%);
  border-radius: 10% 10% 0 0 / 30% 30% 0 0;
}
.scn-story-of-signora .hearth {
  position: absolute; bottom: 25%; left: 50%; transform: translateX(-50%);
  width: 100px; height: 80px;
  background: linear-gradient(180deg, #6a4828 0%, #3a2010 100%);
  border-radius: 15% 15% 5% 5%;
  box-shadow: inset 0 -8px 16px rgba(0,0,0,0.5);
}
.scn-story-of-signora .fire {
  position: absolute; bottom: 28%; left: 50%; transform: translateX(-50%);
  width: 35px; height: 55px;
  background: radial-gradient(ellipse at 50% 100%, #ff9040 0%, #ff7020 40%, #c05010 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 35px 18px rgba(255,150,60,0.7), 0 0 70px 35px rgba(255,150,60,0.3);
  animation: ss-fire 0.6s ease-in-out infinite alternate;
}
.scn-story-of-signora .shadow-portrait {
  position: absolute; top: 12%; right: 15%;
  width: 40px; height: 55px;
  background: linear-gradient(180deg, #2a1a10 0%, #1a0f0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  opacity: 0.4;
  animation: ss-portrait 8s ease-in-out infinite;
}
.scn-story-of-signora .figure.storyteller {
  position: absolute; bottom: 22%; left: 30%;
  width: 24px; height: 55px;
  background: linear-gradient(180deg, #4a3020 0%, #2a1810 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ss-tell 2.5s ease-in-out infinite;
}
.scn-story-of-signora .figure.listener {
  position: absolute; bottom: 22%; right: 30%;
  width: 22px; height: 52px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1010 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ss-listen 3s ease-in-out infinite;
}
.scn-story-of-signora .sparkles {
  position: absolute; top: 10%; left: 20%; right: 20%; height: 20%;
  background: radial-gradient(circle at 30% 40%, #ffd080 0%, transparent 20%),
              radial-gradient(circle at 70% 60%, #ffc060 0%, transparent 15%);
  opacity: 0.3;
  animation: ss-spark 2s ease-in-out infinite alternate;
}
@keyframes ss-fire {
  0% { transform: translateX(-50%) scale(1) skewX(0deg); opacity: 0.9; }
  50% { transform: translateX(-50%) scale(1.15, 1.3) skewX(5deg); opacity: 1; }
  100% { transform: translateX(-50%) scale(0.9, 1.1) skewX(-3deg); opacity: 0.85; }
}
@keyframes ss-portrait {
  0%,100% { transform: translateY(0) rotate(0deg); opacity: 0.3; }
  50% { transform: translateY(-3px) rotate(2deg); opacity: 0.5; }
}
@keyframes ss-tell {
  0% { transform: rotate(-5deg) translateY(0); }
  25% { transform: rotate(5deg) translateY(-2px); }
  50% { transform: rotate(-3deg) translateY(-1px); }
  75% { transform: rotate(4deg) translateY(-3px); }
  100% { transform: rotate(-5deg) translateY(0); }
}
@keyframes ss-listen {
  0%,100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(3deg); }
}
@keyframes ss-spark {
  0% { opacity: 0.2; transform: scale(0.9); }
  100% { opacity: 0.5; transform: scale(1.1); }
}

/* story-interrupted */
.scn-story-interrupted {
  background: linear-gradient(180deg, #120808 0%, #2a1a10 40%, #4a2a1a 100%), radial-gradient(ellipse at 50% 100%, #4a2a1a 0%, transparent 70%);
}
.scn-story-interrupted .wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #3a2010 0%, #1a0f0a 100%);
  border-radius: 0 0 20% 20% / 0 0 10% 10%;
}
.scn-story-interrupted .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #2a1810 0%, #0a0505 100%);
  border-radius: 15% 15% 0 0 / 30% 30% 0 0;
}
.scn-story-interrupted .door {
  position: absolute; bottom: 25%; left: 20%;
  width: 50px; height: 80px;
  background: linear-gradient(180deg, #3a2010 0%, #1a0f0a 100%);
  border-radius: 5% 5% 2% 2%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.6);
  animation: si-door 0.3s ease-in-out infinite alternate;
}
.scn-story-interrupted .window {
  position: absolute; bottom: 30%; right: 15%;
  width: 40px; height: 50px;
  background: linear-gradient(180deg, #0a1520 0%, #1a2a3a 100%);
  border: 4px solid #2a1a10;
  border-radius: 10% 10% 5% 5%;
  animation: si-window 7s ease-in-out infinite;
}
.scn-story-interrupted .fire {
  position: absolute; bottom: 28%; left: 50%; transform: translateX(-50%);
  width: 30px; height: 45px;
  background: radial-gradient(ellipse at 50% 100%, #ff6020 0%, #b03010 50%, #501008 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 25px 10px rgba(255,100,30,0.5), 0 0 50px 25px rgba(255,100,30,0.2);
  animation: si-fire 0.15s linear infinite alternate;
}
.scn-story-interrupted .figure.startled {
  position: absolute; bottom: 22%; left: 40%;
  width: 22px; height: 50px;
  background: linear-gradient(180deg, #4a3020 0%, #2a1810 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: si-jump 0.4s ease-in-out infinite alternate;
}
.scn-story-interrupted .figure.calm {
  position: absolute; bottom: 22%; right: 35%;
  width: 20px; height: 48px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1010 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: si-calm 4s ease-in-out infinite;
}
.scn-story-interrupted .shadow-creep {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 30%;
  background: linear-gradient(180deg, transparent 0%, rgba(10,5,5,0.8) 100%);
  animation: si-shadow 3s ease-in-out infinite alternate;
}
@keyframes si-door {
  0% { transform: translateX(0) rotate(0deg); }
  100% { transform: translateX(2px) rotate(1deg); }
}
@keyframes si-window {
  0%,100% { opacity: 0.6; }
  50% { opacity: 0.8; }
}
@keyframes si-fire {
  0% { transform: translateX(-50%) scale(1) skewX(0deg); opacity: 0.9; }
  50% { transform: translateX(-50%) scale(1.05, 1.1) skewX(2deg); opacity: 1; }
  100% { transform: translateX(-50%) scale(0.95) skewX(-2deg); opacity: 0.8; }
}
@keyframes si-jump {
  0% { transform: translateY(0) rotate(0deg); }
  100% { transform: translateY(-5px) rotate(4deg); }
}
@keyframes si-calm {
  0%,100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-1px) rotate(1deg); }
}
@keyframes si-shadow {
  0% { opacity: 0.7; }
  100% { opacity: 1; }
}

/* story-resumed */
.scn-story-resumed {
  background: linear-gradient(180deg, #1a0f0a 0%, #3a2010 35%, #5a3520 100%), radial-gradient(ellipse at 50% 100%, #5a3520 0%, transparent 70%);
}
.scn-story-resumed .wall {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a10 100%);
  border-radius: 0 0 25% 25% / 0 0 10% 10%;
}
.scn-story-resumed .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #3a2010 0%, #1a0f0a 100%);
  border-radius: 15% 15% 0 0 / 30% 30% 0 0;
}
.scn-story-resumed .candle {
  position: absolute; bottom: 35%; left: 30%;
  width: 12px; height: 40px;
  background: linear-gradient(180deg, #5a4a30 0%, #3a2a1a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 2px 8px rgba(0,0,0,0.5);
}
.scn-story-resumed .flame {
  position: absolute; bottom: 52%; left: 31%;
  width: 6px; height: 12px;
  background: radial-gradient(ellipse at 50% 100%, #ffd080 0%, #ffa040 60%, #803010 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 15px 6px rgba(255,200,100,0.5), 0 0 30px 12px rgba(255,200,100,0.2);
  animation: sr-flame 2s ease-in-out infinite alternate;
}
.scn-story-resumed .chair {
  position: absolute; bottom: 25%; left: 45%;
  width: 50px; height: 60px;
  background: linear-gradient(180deg, #4a3020 0%, #2a1810 100%);
  border-radius: 5% 5% 20% 20%;
  box-shadow: inset 0 -5px 10px rgba(0,0,0,0.4);
}
.scn-story-resumed .figure.listener {
  position: absolute; bottom: 22%; left: 30%;
  width: 22px; height: 50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1010 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sr-listener 5s ease-in-out infinite;
}
.scn-story-resumed .figure.memory {
  position: absolute; bottom: 35%; right: 20%;
  width: 18px; height: 40px;
  background: linear-gradient(180deg, #2a1a10 0%, #0a0505 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  opacity: 0.5;
  animation: sr-memory 8s ease-in-out infinite alternate;
}
.scn-story-resumed .hourglass {
  position: absolute; bottom: 30%; right: 35%;
  width: 20px; height: 30px;
  background: linear-gradient(180deg, #5a4a30 0%, #3a2a1a 100%);
  border-radius: 50% 50% 10% 10%;
  box-shadow: 0 0 6px rgba(0,0,0,0.3);
  animation: sr-hourglass 10s linear infinite;
}
@keyframes sr-flame {
  0% { transform: translateY(0) scale(1) rotate(0deg); opacity: 0.9; }
  25% { transform: translateY(-2px) scale(1.1, 1.2) rotate(3deg); opacity: 1; }
  50% { transform: translateY(-1px) scale(1.05, 1.1) rotate(-2deg); opacity: 0.95; }
  75% { transform: translateY(-3px) scale(1.15, 1.3) rotate(4deg); opacity: 1; }
  100% { transform: translateY(0) scale(1) rotate(0deg); opacity: 0.9; }
}
@keyframes sr-listener {
  0%,100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(2deg); }
}
@keyframes sr-memory {
  0% { transform: translateY(0) scale(0.9); opacity: 0.3; }
  100% { transform: translateY(-5px) scale(1); opacity: 0.6; }
}
@keyframes sr-hourglass {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}

.scn-corridor-appointed {
  background: linear-gradient(180deg, #1e1a14 0%, #2c241c 40%, #3a2e24 100%),
              radial-gradient(ellipse at 50% 80%, #4d3b2b 0%, transparent 60%);
}
.scn-corridor-appointed .cor-bg { position: absolute; inset: 0; background: linear-gradient(180deg, #2c241c 0%, transparent 60%); animation: cor-bg 12s ease-in-out infinite alternate; }
.scn-corridor-appointed .cor-floor { position: absolute; bottom: 0; left: 0; right: 0; height: 30%; background: linear-gradient(180deg, #3a2e24 0%, #1e1812 100%); border-radius: 20% 20% 0 0 / 40% 40% 0 0; }
.scn-corridor-appointed .cor-wall { position: absolute; top: 0; left: 0; right: 0; bottom: 30%; background: linear-gradient(0deg, #3a2e24 0%, #2c241c 30%, #1e1a14 100%); }
.scn-corridor-appointed .cor-arch { position: absolute; top: 10%; left: 50%; width: 60%; height: 50%; transform: translateX(-50%); background: radial-gradient(ellipse at 50% 100%, transparent 60%, #2c241c 61%); border-radius: 50% 50% 0 0 / 80% 80% 0 0; box-shadow: inset 0 0 30px rgba(0,0,0,0.6); }
.scn-corridor-appointed .cor-pillar-l { position: absolute; bottom: 30%; left: 15%; width: 6%; height: 50%; background: linear-gradient(90deg, #1e1812 0%, #3a2e24 50%, #1e1812 100%); border-radius: 10%; transform-origin: bottom; animation: cor-pillar 18s ease-in-out infinite alternate; }
.scn-corridor-appointed .cor-pillar-r { position: absolute; bottom: 30%; right: 15%; width: 6%; height: 50%; background: linear-gradient(90deg, #1e1812 0%, #3a2e24 50%, #1e1812 100%); border-radius: 10%; transform-origin: bottom; animation: cor-pillar 18s ease-in-out infinite alternate-reverse; }
.scn-corridor-appointed .cor-figure { position: absolute; bottom: 30%; left: 45%; width: 8%; height: 25%; background: linear-gradient(180deg, #1e1a14 0%, #0f0c08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cor-fig 4s ease-in-out infinite; }
.scn-corridor-appointed .cor-lantern { position: absolute; bottom: 40%; left: 38%; width: 4%; height: 6%; background: radial-gradient(circle, #d4a373 0%, #8b5a2b 100%); border-radius: 30% 30% 20% 20%; box-shadow: 0 0 20px 8px rgba(212,163,115,0.4); animation: cor-lantern 3s ease-in-out infinite alternate; }
.scn-corridor-appointed .cor-glow { position: absolute; bottom: 35%; left: 35%; width: 20%; height: 20%; background: radial-gradient(circle, rgba(212,163,115,0.2) 0%, transparent 70%); animation: cor-glow 6s ease-in-out infinite alternate; }
@keyframes cor-bg { 0% { opacity: 0.6 } 50% { opacity: 0.8 } 100% { opacity: 0.7 } }
@keyframes cor-pillar { 0% { transform: scaleY(1) } 50% { transform: scaleY(0.98) translateY(1px) } 100% { transform: scaleY(1) } }
@keyframes cor-fig { 0% { transform: translateX(0) rotate(-1deg) } 25% { transform: translateX(4%) rotate(1deg) } 50% { transform: translateX(8%) rotate(-1deg) } 75% { transform: translateX(4%) rotate(0deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes cor-lantern { 0% { opacity: 0.8; transform: scale(1) } 50% { opacity: 1; transform: scale(1.05) } 100% { opacity: 0.9; transform: scale(0.98) } }
@keyframes cor-glow { 0% { transform: scale(0.9) } 50% { transform: scale(1.1) } 100% { transform: scale(0.95) } }

.scn-midnight-strike {
  background: linear-gradient(180deg, #0a0a20 0%, #1a1a3e 50%, #2c2c5a 100%),
              radial-gradient(ellipse at 50% 0%, #3a3a7a 0%, transparent 60%);
}
.scn-midnight-strike .mid-bg { position: absolute; inset: 0; background: linear-gradient(180deg, #0f0f2a 0%, transparent 50%); animation: mid-bg 20s ease-in-out infinite alternate; }
.scn-midnight-strike .mid-floor { position: absolute; bottom: 0; left: 0; right: 0; height: 25%; background: linear-gradient(180deg, #1a1a30 0%, #0a0a18 100%); clip-path: polygon(0 30%, 100% 20%, 100% 100%, 0 100%); }
.scn-midnight-strike .mid-wall { position: absolute; top: 0; left: 0; right: 0; bottom: 25%; background: linear-gradient(0deg, #1a1a30 0%, #0f0f22 40%, #0a0a1a 100%); box-shadow: inset 0 0 40px rgba(0,0,0,0.8); }
.scn-midnight-strike .mid-window { position: absolute; top: 15%; left: 60%; width: 20%; height: 40%; background: radial-gradient(ellipse at 50% 30%, #4a6a9a 0%, #1a2a4a 100%); border: 6px solid #2c2c4a; border-radius: 10%; box-shadow: 0 0 30px rgba(74,106,154,0.3); animation: mid-window 8s ease-in-out infinite alternate; }
.scn-midnight-strike .mid-clock { position: absolute; top: 10%; left: 20%; width: 18%; height: 18%; background: radial-gradient(circle, #2a2a4a 0%, #0a0a1a 100%); border: 4px solid #4a4a6a; border-radius: 50%; box-shadow: 0 0 20px rgba(0,0,0,0.8); }
.scn-midnight-strike .mid-figure { position: absolute; bottom: 25%; left: 35%; width: 10%; height: 30%; background: linear-gradient(180deg, #1a1a3a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mid-fig 5s ease-in-out infinite; }
.scn-midnight-strike .mid-door { position: absolute; bottom: 25%; right: 15%; width: 20%; height: 50%; background: linear-gradient(0deg, #2c2c4a 0%, #1a1a3a 100%); border-radius: 10% 10% 0 0; border: 4px solid #3a3a5a; box-shadow: inset 0 0 20px rgba(0,0,0,0.6); animation: mid-door 12s ease-in-out infinite alternate; }
.scn-midnight-strike .mid-moonlight { position: absolute; top: 0; left: 55%; width: 30%; height: 80%; background: linear-gradient(180deg, rgba(100,140,200,0.15) 0%, transparent 100%); clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%); animation: mid-moon 15s ease-in-out infinite alternate; }
@keyframes mid-bg { 0% { opacity: 0.7 } 50% { opacity: 0.9 } 100% { opacity: 0.8 } }
@keyframes mid-window { 0% { opacity: 0.6; transform: scaleY(1) } 50% { opacity: 0.8; transform: scaleY(0.98) } 100% { opacity: 0.7; transform: scaleY(1) } }
@keyframes mid-fig { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(3%) rotate(2deg) } 50% { transform: translateX(6%) rotate(-1deg) } 75% { transform: translateX(3%) rotate(1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes mid-door { 0% { transform: scaleX(1) } 50% { transform: scaleX(0.98) } 100% { transform: scaleX(1) } }
@keyframes mid-moon { 0% { opacity: 0.3 } 50% { opacity: 0.5 } 100% { opacity: 0.4 } }

.scn-lute-signal {
  background: linear-gradient(180deg, #0b1a2a 0%, #1a2a4a 50%, #2a3a5a 100%),
              radial-gradient(ellipse at 50% 20%, #4a6a9a 0%, transparent 70%);
}
.scn-lute-signal .lut-bg { position: absolute; inset: 0; background: linear-gradient(180deg, #0f1f3a 0%, transparent 70%); animation: lut-bg 25s ease-in-out infinite alternate; }
.scn-lute-signal .lut-window { position: absolute; top: 10%; left: 25%; width: 50%; height: 50%; background: radial-gradient(ellipse at 50% 40%, #2a4a6a 0%, #0a1a2a 100%); border: 8px solid #1a2a3a; border-radius: 20% 20% 10% 10%; box-shadow: inset 0 0 50px rgba(0,0,0,0.7); }
.scn-lute-signal .lut-moon { position: absolute; top: 8%; left: 35%; width: 20%; height: 20%; background: radial-gradient(circle, #b0d0f0 0%, #8090b0 100%); border-radius: 50%; box-shadow: 0 0 40px 10px rgba(176,208,240,0.3); animation: lut-moon 10s ease-in-out infinite alternate; }
.scn-lute-signal .lut-figure { position: absolute; bottom: 20%; left: 40%; width: 12%; height: 35%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lut-fig 6s ease-in-out infinite; }
.scn-lute-signal .lut-lute { position: absolute; bottom: 28%; left: 46%; width: 8%; height: 20%; background: radial-gradient(ellipse at 50% 40%, #c8a470 0%, #8b5a2b 100%); border-radius: 30% 30% 20% 20%; transform: rotate(10deg); animation: lut-lute 4s ease-in-out infinite alternate; }
.scn-lute-signal .lut-glow { position: absolute; bottom: 25%; left: 40%; width: 25%; height: 25%; background: radial-gradient(circle, rgba(200,164,112,0.2) 0%, transparent 70%); animation: lut-glow 5s ease-in-out infinite alternate; }
.scn-lute-signal .lut-shadow { position: absolute; bottom: 20%; left: 35%; width: 30%; height: 10%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.3) 100%); border-radius: 50%; transform: skewX(-20deg); animation: lut-shadow 8s ease-in-out infinite; }
@keyframes lut-bg { 0% { opacity: 0.7 } 50% { opacity: 0.9 } 100% { opacity: 0.8 } }
@keyframes lut-moon { 0% { transform: translateY(0) } 50% { transform: translateY(2%) } 100% { transform: translateY(0) } }
@keyframes lut-fig { 0% { transform: translateX(0) rotate(-1deg) } 25% { transform: translateX(4%) rotate(2deg) } 50% { transform: translateX(8%) rotate(-1deg) } 75% { transform: translateX(4%) rotate(0deg) } 100% { transform: translateX(0) rotate(1deg) } }
@keyframes lut-lute { 0% { transform: rotate(8deg) scale(1) } 50% { transform: rotate(12deg) scale(1.02) } 100% { transform: rotate(10deg) scale(1) } }
@keyframes lut-glow { 0% { transform: scale(0.9); opacity: 0.6 } 50% { transform: scale(1.2); opacity: 1 } 100% { transform: scale(0.95); opacity: 0.7 } }
@keyframes lut-shadow { 0% { opacity: 0.3 } 50% { opacity: 0.5 } 100% { opacity: 0.4 } }

.scn-mistaken-identity {
  background: linear-gradient(180deg, #1a1210 0%, #2c1e1a 50%, #3a2a24 100%),
              radial-gradient(ellipse at 50% 80%, #4a342a 0%, transparent 70%);
}
.scn-mistaken-identity .mis-bg { position: absolute; inset: 0; background: linear-gradient(180deg, #2c1e1a 0%, transparent 60%); animation: mis-bg 15s ease-in-out infinite alternate; }
.scn-mistaken-identity .mis-floor { position: absolute; bottom: 0; left: 0; right: 0; height: 20%; background: linear-gradient(180deg, #3a2a24 0%, #1a1210 100%); border-radius: 30% 30% 0 0 / 60% 60% 0 0; }
.scn-mistaken-identity .mis-wall { position: absolute; top: 0; left: 0; right: 0; bottom: 20%; background: linear-gradient(0deg, #3a2a24 0%, #2c1e1a 40%, #1a1210 100%); box-shadow: inset 0 0 40px rgba(0,0,0,0.7); }
.scn-mistaken-identity .mis-fig-a { position: absolute; bottom: 20%; left: 30%; width: 10%; height: 40%; background: linear-gradient(180deg, #2a1e1a 0%, #0f0a08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mis-fig-a 3s ease-in-out infinite; }
.scn-mistaken-identity .mis-fig-b { position: absolute; bottom: 20%; left: 55%; width: 10%; height: 40%; background: linear-gradient(180deg, #3a2a24 0%, #1a1210 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mis-fig-b 3.5s ease-in-out infinite alternate; }
.scn-mistaken-identity .mis-door { position: absolute; bottom: 20%; right: 10%; width: 25%; height: 60%; background: linear-gradient(0deg, #2c1e1a 0%, #1a1210 100%); border-radius: 10% 10% 0 0; border: 4px solid #3a2a24; box-shadow: inset 0 0 20px rgba(0,0,0,0.8); animation: mis-door 10s ease-in-out infinite alternate; }
.scn-mistaken-identity .mis-shadow { position: absolute; bottom: 20%; left: 25%; width: 50%; height: 15%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.4) 100%); clip-path: polygon(20% 0, 80% 0, 100% 100%, 0 100%); animation: mis-shadow 4s ease-in-out infinite; }
@keyframes mis-bg { 0% { opacity: 0.6 } 50% { opacity: 0.8 } 100% { opacity: 0.7 } }
@keyframes mis-fig-a { 0% { transform: translateX(0) rotate(-3deg) } 20% { transform: translateX(5%) rotate(2deg) } 40% { transform: translateX(10%) rotate(-1deg) } 60% { transform: translateX(5%) rotate(1deg) } 80% { transform: translateX(2%) rotate(0deg) } 100% { transform: translateX(0) rotate(-2deg) } }
@keyframes mis-fig-b { 0% { transform: translateX(0) scaleY(1) } 50% { transform: translateX(-4%) scaleY(0.98) } 100% { transform: translateX(0) scaleY(1) } }
@keyframes mis-door { 0% { transform: scaleX(1) } 50% { transform: scaleX(0.96) } 100% { transform: scaleX(1) } }
@keyframes mis-shadow { 0% { opacity: 0.4 } 50% { opacity: 0.6 } 100% { opacity: 0.5 } }

.scn-emily-stunned { background: linear-gradient(180deg, #2d1f1a 0%, #1a1210 50%, #2a1c18 100%), radial-gradient(ellipse at 50% 60%, #2d1f1a 0%, #0d0a08 100%); }
.scn-emily-stunned .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #3a2a24 0%, #241a16 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.6); animation: es-floor-pulse 12s ease-in-out infinite alternate; }
.scn-emily-stunned .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(90deg, #1e1411 0%, #2a1e1a 40%, #1a100e 100%); }
.scn-emily-stunned .turret-window { position:absolute; top:18%; left:35%; width:50px; height:70px; background: radial-gradient(ellipse at center, #4a6a7a 0%, #1a2a3a 100%); border: 4px solid #3a2a1a; border-radius: 30% 30% 20% 20%; box-shadow: inset 0 0 30px rgba(0,0,0,.8), 0 0 20px rgba(74,106,122,.3); animation: es-window 8s ease-in-out infinite alternate; }
.scn-emily-stunned .candle { position:absolute; bottom:38%; left:55%; width:4px; height:14px; background: linear-gradient(180deg, #d4a060 0%, #8a5a30 100%); border-radius: 2px 2px 0 0; transform: rotate(-2deg); animation: es-candle-flicker 0.6s ease-in-out infinite; }
.scn-emily-stunned .candle-glow { position:absolute; bottom:42%; left:55%; width:40px; height:40px; transform: translate(-50%, 0); background: radial-gradient(circle, rgba(200,160,80,.5) 0%, transparent 70%); border-radius:50%; box-shadow: 0 0 50px 15px rgba(200,160,80,.3); animation: es-glow-pulse 1.5s ease-in-out infinite alternate; }
.scn-emily-stunned .figure-emily { position:absolute; bottom:30%; left:30%; width:20px; height:50px; background: linear-gradient(180deg, #2a1e1a 0%, #1a100e 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: es-emily-stun 3s ease-in-out infinite; }
.scn-emily-stunned .shadow-motion { position:absolute; bottom:30%; left:28%; width:30px; height:50px; background: rgba(0,0,0,.3); border-radius: 50% 50% 40% 40%; filter: blur(4px); animation: es-shadow-shift 5s ease-in-out infinite alternate; }
.scn-emily-stunned .ghost-hint { position:absolute; top:20%; right:25%; width:30px; height:60px; background: radial-gradient(ellipse, rgba(220,220,230,.15) 0%, transparent 100%); border-radius: 50% 50% 40% 40%; filter: blur(3px); animation: es-ghost-fade 10s ease-in-out infinite; }
@keyframes es-floor-pulse { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes es-window { 0% { box-shadow: inset 0 0 30px rgba(0,0,0,.8), 0 0 20px rgba(74,106,122,.3) } 50% { box-shadow: inset 0 0 40px rgba(0,0,0,.6), 0 0 30px rgba(74,106,122,.5) } 100% { box-shadow: inset 0 0 25px rgba(0,0,0,.9), 0 0 10px rgba(74,106,122,.2) } }
@keyframes es-candle-flicker { 0% { transform: rotate(-2deg) scaleY(1) } 25% { transform: rotate(1deg) scaleY(1.05) } 50% { transform: rotate(-3deg) scaleY(.95) } 75% { transform: rotate(2deg) scaleY(1.02) } 100% { transform: rotate(-1deg) scaleY(1) } }
@keyframes es-glow-pulse { 0% { opacity:.6; transform: translate(-50%, 0) scale(.9) } 100% { opacity:1; transform: translate(-50%, 0) scale(1.2) } }
@keyframes es-emily-stun { 0% { transform: translateY(0) rotate(0) } 25% { transform: translateY(-2px) rotate(-3deg) } 50% { transform: translateY(0) rotate(0) } 75% { transform: translateY(-1px) rotate(2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes es-shadow-shift { 0% { transform: translateX(0) } 50% { transform: translateX(5px) } 100% { transform: translateX(-3px) } }
@keyframes es-ghost-fade { 0% { opacity:0 } 50% { opacity:.4 } 100% { opacity:0 } }

.scn-aunt-alive { background: linear-gradient(180deg, #1e1816 0%, #2a201c 40%, #1a1210 100%), radial-gradient(ellipse at 30% 50%, #2a201c 0%, #0d0a08 100%); }
.scn-aunt-alive .room-back { position:absolute; inset:0 0 25% 0; background: linear-gradient(90deg, #1a1412 0%, #28201c 50%, #1c1412 100%); }
.scn-aunt-alive .doorway { position:absolute; bottom:25%; left:40%; width:60px; height:90px; background: #1a100e; border: 3px solid #3a2a22; border-radius: 4px 4px 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,.5); }
.scn-aunt-alive .door-light { position:absolute; bottom:28%; left:41%; width:50px; height:70px; background: radial-gradient(ellipse at center, #6a7a5a 0%, #3a4a2a 100%); border-radius: 2px; box-shadow: 0 0 30px 10px rgba(106,122,90,.4); animation: aa-door-glow 4s ease-in-out infinite alternate; }
.scn-aunt-alive .figure-aunt { position:absolute; bottom:25%; left:44%; width:22px; height:55px; background: linear-gradient(180deg, #2a2220 0%, #1a1210 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: aa-aunt-step 6s ease-in-out infinite; }
.scn-aunt-alive .figure-emily-relief { position:absolute; bottom:25%; left:30%; width:20px; height:50px; background: linear-gradient(180deg, #2a1e1a 0%, #1a100e 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: aa-emily-relief 5s ease-in-out infinite; }
.scn-aunt-alive .floorboards { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #3a2a22 0%, #1e1412 100%); box-shadow: inset 0 6px 15px rgba(0,0,0,.5); }
.scn-aunt-alive .dust-motes { position:absolute; top:10%; left:20%; width:4px; height:4px; background: rgba(200,200,180,.15); border-radius:50%; box-shadow: 0 0 8px 2px rgba(200,200,180,.1); animation: aa-dust 20s linear infinite; }
.scn-aunt-alive .dust-motes::after { content:''; position:absolute; top:20px; left:40px; width:3px; height:3px; background: rgba(200,200,180,.1); border-radius:50%; animation: aa-dust2 25s linear infinite; }
@keyframes aa-door-glow { 0% { opacity:.7; transform: scaleX(1) } 50% { opacity:1; transform: scaleX(1.05) } 100% { opacity:.6; transform: scaleX(.95) } }
@keyframes aa-aunt-step { 0% { transform: translateX(0) translateY(0) rotate(0) } 25% { transform: translateX(3px) translateY(-1px) rotate(1deg) } 50% { transform: translateX(6px) translateY(0) rotate(0) } 75% { transform: translateX(3px) translateY(-1px) rotate(-1deg) } 100% { transform: translateX(0) translateY(0) rotate(0) } }
@keyframes aa-emily-relief { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes aa-dust { 0% { transform: translateY(0) translateX(0); opacity:0 } 50% { opacity:.3 } 100% { transform: translateY(-80px) translateX(30px); opacity:0 } }
@keyframes aa-dust2 { 0% { transform: translateY(0) translateX(0); opacity:0 } 50% { opacity:.2 } 100% { transform: translateY(-60px) translateX(-20px); opacity:0 } }

.scn-story-of-confinement { background: linear-gradient(180deg, #1a1215 0%, #141010 50%, #0a080a 100%), radial-gradient(ellipse at 70% 40%, #1a1215 0%, #050505 100%); }
.scn-story-of-confinement .turret-wall { position:absolute; inset:0 0 20% 0; background: linear-gradient(135deg, #1a1416 0%, #0e0a0c 100%); }
.scn-story-of-confinement .barred-window { position:absolute; top:25%; left:15%; width:40px; height:60px; background: radial-gradient(ellipse at center, #3a4a5a 0%, #1a2a3a 100%); border: 3px solid #2a1a1a; border-radius: 20% 20% 10% 10%; box-shadow: inset 0 0 20px rgba(0,0,0,.7); animation: sc-window-pulse 10s ease-in-out infinite alternate; }
.scn-story-of-confinement .barred-window::before { content:''; position:absolute; left:50%; top:0; bottom:0; width:2px; background: #1a0a0a; transform:translateX(-50%); box-shadow: 8px 0 0 #1a0a0a, -8px 0 0 #1a0a0a; }
.scn-story-of-confinement .window-light { position:absolute; top:28%; left:17%; width:30px; height:40px; background: radial-gradient(ellipse, rgba(58,74,90,.3) 0%, transparent 100%); filter: blur(3px); animation: sc-light-fade 15s ease-in-out infinite; }
.scn-story-of-confinement .figure-aunt-confinement { position:absolute; bottom:20%; left:30%; width:22px; height:48px; background: linear-gradient(180deg, #1a1212 0%, #0a0808 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: sc-aunt-sit 8s ease-in-out infinite alternate; }
.scn-story-of-confinement .chain-shadow { position:absolute; bottom:22%; left:25%; width:30px; height:10px; background: #0a0a0a; border-radius: 20% 20% 0 0; box-shadow: 0 5px 10px rgba(0,0,0,.4); animation: sc-chain 6s ease-in-out infinite alternate; }
.scn-story-of-confinement .stone-floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #1a1412 0%, #0e0a08 100%); box-shadow: inset 0 4px 10px rgba(0,0,0,.5); }
.scn-story-of-confinement .rat { position:absolute; bottom:18%; left:60%; width:14px; height:6px; background: #1a1a1a; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: sc-rat 12s ease-in-out infinite; }
@keyframes sc-window-pulse { 0% { box-shadow: inset 0 0 20px rgba(0,0,0,.7), 0 0 10px rgba(58,74,90,.2) } 50% { box-shadow: inset 0 0 30px rgba(0,0,0,.5), 0 0 20px rgba(58,74,90,.4) } 100% { box-shadow: inset 0 0 15px rgba(0,0,0,.8), 0 0 5px rgba(58,74,90,.1) } }
@keyframes sc-light-fade { 0% { opacity:.4 } 50% { opacity:.8 } 100% { opacity:.2 } }
@keyframes sc-aunt-sit { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes sc-chain { 0% { transform: translateY(0) rotate(-3deg) } 50% { transform: translateY(2px) rotate(3deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes sc-rat { 0% { transform: translateX(0) } 25% { transform: translateX(-10px) rotate(-5deg) } 50% { transform: translateX(-20px) } 75% { transform: translateX(-30px) rotate(5deg) } 100% { transform: translateX(0) } }

.scn-emily-pleads-for-aunt { background: linear-gradient(180deg, #1e1412 0%, #2a1c18 40%, #140e0c 100%), radial-gradient(ellipse at 60% 30%, #2a1c18 0%, #0a0808 100%); }
.scn-emily-pleads-for-aunt .hall-back { position:absolute; inset:0 0 20% 0; background: linear-gradient(90deg, #1a1210 0%, #2a1e1a 50%, #1a100e 100%); }
.scn-emily-pleads-for-aunt .column { position:absolute; bottom:0; left:50%; width:30px; height:90%; background: linear-gradient(180deg, #3a2a22 0%, #1e1412 100%); border-radius: 6px; box-shadow: 2px 0 10px rgba(0,0,0,.3); transform: translateX(-50%); }
.scn-emily-pleads-for-aunt .figure-emily-pleading { position:absolute; bottom:20%; left:30%; width:20px; height:50px; background: linear-gradient(180deg, #2a1e1a 0%, #1a100e 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: ep-plead 3s ease-in-out infinite; }
.scn-emily-pleads-for-aunt .figure-montoni { position:absolute; bottom:20%; right:30%; width:24px; height:52px; background: linear-gradient(180deg, #1a1412 0%, #0a0808 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; box-shadow: -2px 0 8px rgba(0,0,0,.4); transform: rotate(5deg); animation: ep-montoni 4s ease-in-out infinite alternate; }
.scn-emily-pleads-for-aunt .tapestry { position:absolute; top:10%; left:10%; width:80px; height:80px; background: radial-gradient(ellipse at 30% 40%, #3a2a22 0%, #1a1210 100%); border-radius: 10% 10% 20% 20% / 20% 20% 30% 30%; filter: blur(2px); animation: ep-tapestry 20s ease-in-out infinite; }
.scn-emily-pleads-for-aunt .torch { position:absolute; bottom:40%; left:55%; width:6px; height:20px; background: linear-gradient(180deg, #b08040 0%, #6a4a2a 100%); border-radius: 2px 2px 0 0; transform: rotate(2deg); animation: ep-torch-flicker 0.8s ease-in-out infinite; }
.scn-emily-pleads-for-aunt .torch-glow { position:absolute; bottom:45%; left:55%; width:60px; height:60px; transform: translate(-50%, 0); background: radial-gradient(circle, rgba(200,160,80,.4) 0%, rgba(200,160,80,.1) 50%, transparent 80%); border-radius:50%; box-shadow: 0 0 70px 20px rgba(200,160,80,.3); animation: ep-torch-pulse 1.5s ease-in-out infinite alternate; }
.scn-emily-pleads-for-aunt .shadow-flecks { position:absolute; bottom:20%; left:40%; width:20px; height:20px; background: rgba(0,0,0,.2); border-radius:50%; filter: blur(8px); animation: ep-flecks 6s ease-in-out infinite alternate; }
@keyframes ep-plead { 0% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-4px) rotate(2deg) } 100% { transform: translateY(0) rotate(-2deg) } }
@keyframes ep-montoni { 0% { transform: rotate(5deg) translateX(0) } 50% { transform: rotate(-3deg) translateX(-2px) } 100% { transform: rotate(5deg) translateX(0) } }
@keyframes ep-tapestry { 0% { opacity:.7; transform: scale(1) } 50% { opacity:.9; transform: scale(1.02) } 100% { opacity:.7; transform: scale(1) } }
@keyframes ep-torch-flicker { 0% { transform: rotate(2deg) scaleY(1) } 25% { transform: rotate(-1deg) scaleY(1.03) } 50% { transform: rotate(3deg) scaleY(.97) } 75% { transform: rotate(0deg) scaleY(1.02) } 100% { transform: rotate(1deg) scaleY(1) } }
@keyframes ep-torch-pulse { 0% { opacity:.7; transform: translate(-50%, 0) scale(.9) } 100% { opacity:1; transform: translate(-50%, 0) scale(1.1) } }
@keyframes ep-flecks { 0% { transform: translateX(0) scale(1) } 50% { transform: translateX(5px) scale(1.3) } 100% { transform: translateX(-3px) scale(.9) } }

.scn-tasteful-grounds {
  background: linear-gradient(180deg, #fce9b5 0%, #f2c88a 40%, #d9a05a 70%, #b87c3a 100%),
              radial-gradient(ellipse at 50% 20%, #ffe8c0 0%, transparent 60%);
}
.scn-tasteful-grounds .sky {
  position:absolute; inset:0 0 55% 0;
  background: linear-gradient(180deg, #b1d4e0 0%, #f2e5c0 100%);
  animation: tg-sky 20s ease-in-out infinite alternate;
}
.scn-tasteful-grounds .sun {
  position:absolute; top:18%; left:65%; width:60px; height:60px;
  background: radial-gradient(circle, #ffe680 0%, #f2b341 70%, transparent 100%);
  border-radius:50%; box-shadow: 0 0 80px 40px rgba(242,179,65,0.3);
  animation: tg-sun 12s ease-in-out infinite alternate;
}
.scn-tasteful-grounds .manor {
  position:absolute; bottom:25%; left:35%; width:140px; height:90px;
  background: linear-gradient(180deg, #d4b48c 0%, #b8946a 40%, #9a7450 100%);
  border-radius: 8% 8% 4% 4%; box-shadow: 0 4px 12px rgba(0,0,0,0.3);
  animation: tg-manor 6s ease-in-out infinite alternate;
}
.scn-tasteful-grounds .larch-left {
  position:absolute; bottom:30%; left:28%; width:40px; height:110px;
  background: linear-gradient(180deg, #4a7a3a 0%, #2a5a2a 100%);
  border-radius: 50% 50% 30% 30% / 80% 80% 20% 20%;
  box-shadow: inset -4px 0 8px rgba(0,0,0,0.3);
  animation: tg-larch 15s ease-in-out infinite;
}
.scn-tasteful-grounds .larch-right {
  position:absolute; bottom:30%; right:28%; width:40px; height:110px;
  background: linear-gradient(180deg, #4a7a3a 0%, #2a5a2a 100%);
  border-radius: 50% 50% 30% 30% / 80% 80% 20% 20%;
  box-shadow: inset 4px 0 8px rgba(0,0,0,0.3);
  animation: tg-larch 15s ease-in-out infinite reverse;
}
.scn-tasteful-grounds .path {
  position:absolute; bottom:18%; left:40%; width:100px; height:20px;
  background: linear-gradient(180deg, #c49a6a 0%, #a87a4a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  filter: blur(2px);
  animation: tg-path 8s ease-in-out infinite alternate;
}
.scn-tasteful-grounds .flowerbed {
  position:absolute; bottom:20%; left:42%; width:60px; height:14px;
  background: radial-gradient(circle at 20% 50%, #a0461a 2px, transparent 4px),
              radial-gradient(circle at 50% 50%, #c8553d 3px, transparent 5px),
              radial-gradient(circle at 80% 50%, #d48c6a 2px, transparent 4px);
  background-size: 12px 12px;
  animation: tg-flowers 4s ease-in-out infinite;
}

@keyframes tg-sky { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes tg-sun { 0% { transform: translateY(0) scale(1); box-shadow: 0 0 80px 40px rgba(242,179,65,0.3); } 50% { transform: translateY(-5px) scale(1.05); box-shadow: 0 0 100px 50px rgba(242,179,65,0.4); } 100% { transform: translateY(0) scale(1); } }
@keyframes tg-manor { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes tg-larch { 0% { transform: rotate(-2deg) scale(1) } 50% { transform: rotate(2deg) scale(1.02) } 100% { transform: rotate(-2deg) scale(1) } }
@keyframes tg-path { 0% { transform: translateY(0) scaleX(1) } 50% { transform: translateY(-1px) scaleX(1.05) } 100% { transform: translateY(0) scaleX(1) } }
@keyframes tg-flowers { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }

.scn-plane-tree-evenings {
  background: linear-gradient(180deg, #f7ca80 0%, #e8a85a 30%, #c07a30 60%, #8a501a 100%),
              radial-gradient(ellipse at 60% 100%, #c07a30 0%, transparent 70%);
}
.scn-plane-tree-evenings .sky {
  position:absolute; inset:0 0 45% 0;
  background: linear-gradient(180deg, #fcd49a 0%, #e89a5a 40%, #c07030 100%);
  animation: pe-sky 15s ease-in-out infinite alternate;
}
.scn-plane-tree-evenings .distant-hills {
  position:absolute; bottom:42%; left:0; right:0; height:15%;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a2a 100%);
  border-radius: 60% 40% 0 0 / 100% 80% 0 0;
  filter: blur(4px);
  animation: pe-hills 20s ease-in-out infinite alternate;
}
.scn-plane-tree-evenings .tree-branch {
  position:absolute; top:8%; left:10%; width:200px; height:20px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 50% 50% 30% 30% / 80% 80% 20% 20%;
  transform: rotate(-15deg);
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: pe-branch 12s ease-in-out infinite alternate;
}
.scn-plane-tree-evenings .tree-trunk {
  position:absolute; bottom:30%; left:25%; width:24px; height:80px;
  background: linear-gradient(90deg, #3a2a1a 0%, #1a0a00 50%, #3a2a1a 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%;
  animation: pe-trunk 8s ease-in-out infinite;
}
.scn-plane-tree-evenings .family-group {
  position:absolute; bottom:32%; left:46%; width:50px; height:30px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  animation: pe-family 6s ease-in-out infinite alternate;
}
.scn-plane-tree-evenings .table {
  position:absolute; bottom:30%; left:48%; width:30px; height:6px;
  background: #4a3a2a;
  border-radius: 10%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation: pe-table 4s ease-in-out infinite;
}
.scn-plane-tree-evenings .candle {
  position:absolute; bottom:30.5%; left:49.2%; width:3px; height:8px;
  background: linear-gradient(180deg, #f2c88a 0%, #c08a4a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 0 12px 6px rgba(242,200,138,0.5);
  animation: pe-candle 3s ease-in-out infinite alternate;
}

@keyframes pe-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.75 } }
@keyframes pe-hills { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes pe-branch { 0% { transform: rotate(-15deg) translateY(0) } 50% { transform: rotate(-12deg) translateY(-3px) } 100% { transform: rotate(-15deg) translateY(0) } }
@keyframes pe-trunk { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(1) } }
@keyframes pe-family { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(2px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes pe-table { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes pe-candle { 0% { box-shadow: 0 0 10px 4px rgba(242,200,138,0.4); opacity:0.9 } 50% { box-shadow: 0 0 18px 8px rgba(242,200,138,0.7); opacity:1 } 100% { box-shadow: 0 0 12px 5px rgba(242,200,138,0.5); opacity:0.95 } }

.scn-twilight-melancholy {
  background: linear-gradient(180deg, #1a2a3e 0%, #2a3a5a 30%, #3a4a6a 60%, #4a5a7a 100%),
              radial-gradient(ellipse at 50% 0%, #2a3a5a 0%, transparent 70%);
}
.scn-twilight-melancholy .sky {
  position:absolute; inset:0 0 40% 0;
  background: linear-gradient(180deg, #2a3a5a 0%, #4a6a8a 40%, transparent 100%);
  animation: tm-sky 25s ease-in-out infinite alternate;
}
.scn-twilight-melancholy .moon {
  position:absolute; top:15%; left:50%; width:50px; height:50px;
  background: radial-gradient(circle, #e0e8f0 0%, #b0c8d8 70%, transparent 100%);
  border-radius:50%;
  box-shadow: 0 0 60px 30px rgba(176,200,216,0.3);
  animation: tm-moon 18s ease-in-out infinite alternate;
}
.scn-twilight-melancholy .figure-silhouette {
  position:absolute; bottom:30%; left:45%; width:24px; height:48px;
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tm-figure 6s ease-in-out infinite alternate;
}
.scn-twilight-melancholy .ground {
  position:absolute; bottom:18%; left:10%; right:10%; height:22%;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%);
  border-radius: 40% 50% 0 0 / 80% 70% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.4);
  animation: tm-ground 12s ease-in-out infinite alternate;
}
.scn-twilight-melancholy .distant-trees {
  position:absolute; bottom:35%; left:15%; width:120px; height:30px;
  background: linear-gradient(180deg, #2a3a3a 0%, #1a2a2a 100%);
  border-radius: 30% 40% 20% 30% / 60% 70% 40% 50%;
  filter: blur(5px);
  animation: tm-trees 20s ease-in-out infinite alternate;
}
.scn-twilight-melancholy .fireflies {
  position:absolute; top:40%; left:30%; width:4px; height:4px;
  background: radial-gradient(circle, #d0e890 0%, transparent 100%);
  border-radius:50%;
  box-shadow: 0 0 12px 4px rgba(208,232,144,0.4);
  animation: tm-firefly 4s ease-in-out infinite;
}

@keyframes tm-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes tm-moon { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-5px) scale(1.05) } 100% { transform: translateY(0) scale(1) } }
@keyframes tm-figure { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-2px) rotate(2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes tm-ground { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(1) } }
@keyframes tm-trees { 0% { transform: translateX(0) } 50% { transform: translateX(-5px) } 100% { transform: translateX(0) } }
@keyframes tm-firefly { 0% { transform: translate(0,0) scale(1); opacity:0.6 } 25% { transform: translate(10px,-8px) scale(1.5); opacity:1 } 50% { transform: translate(20px,-4px) scale(1.2); opacity:0.8 } 75% { transform: translate(30px,-12px) scale(1.8); opacity:1 } 100% { transform: translate(40px,-6px) scale(1); opacity:0.5 } }

.scn-nightingale-song {
  background: linear-gradient(180deg, #0a1222 0%, #1a2a3a 40%, #2a3a4a 70%, #3a4a5a 100%),
              radial-gradient(ellipse at 50% 80%, #2a3a4a 0%, transparent 70%);
}
.scn-nightingale-song .sky {
  position:absolute; inset:0 0 35% 0;
  background: linear-gradient(180deg, #1a2a3a 0%, #0a1222 100%);
  animation: ns-sky 10s ease-in-out infinite alternate;
}
.scn-nightingale-song .moon {
  position:absolute; top:12%; left:70%; width:45px; height:45px;
  background: radial-gradient(circle, #d0d8e0 0%, #a0b0c0 70%, transparent 100%);
  border-radius:50%;
  box-shadow: 0 0 50px 25px rgba(160,176,192,0.3);
  animation: ns-moon 15s ease-in-out infinite alternate;
}
.scn-nightingale-song .foliage {
  position:absolute; top:18%; left:10%; right:10%; height:25%;
  background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%);
  border-radius: 40% 50% 20% 30% / 60% 70% 40% 50%;
  filter: blur(6px);
  animation: ns-foliage 8s ease-in-out infinite alternate;
}
.scn-nightingale-song .nightingale {
  position:absolute; top:30%; left:45%; width:14px; height:12px;
  background: radial-gradient(circle at 30% 40%, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: center;
  animation: ns-bird 3s ease-in-out infinite;
}
.scn-nightingale-song .listener {
  position:absolute; bottom:22%; left:42%; width:20px; height:40px;
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ns-listener 4s ease-in-out infinite alternate;
}
.scn-nightingale-song .shadow-blade {
  position:absolute; bottom:30%; left:35%; width:8px; height:35px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%;
  transform: rotate(10deg);
  box-shadow: -2px 0 6px rgba(0,0,0,0.5);
  animation: ns-blade 5s ease-in-out infinite;
}
.scn-nightingale-song .dew-drop {
  position:absolute; bottom:28%; left:50%; width:4px; height:4px;
  background: radial-gradient(circle, #b0c8d8 0%, transparent 100%);
  border-radius:50%;
  box-shadow: 0 0 6px 2px rgba(176,200,216,0.4);
  animation: ns-dew 3.5s ease-in-out infinite alternate;
}

@keyframes ns-sky { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes ns-moon { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-4px) scale(1.04) } 100% { transform: translateY(0) scale(1) } }
@keyframes ns-foliage { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-3px) scaleY(1.05) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes ns-bird { 0% { transform: translate(0,0) rotate(-2deg) scale(1) } 25% { transform: translate(3px,-4px) rotate(4deg) scale(1.1) } 50% { transform: translate(6px,-2px) rotate(-1deg) scale(1) } 75% { transform: translate(9px,-6px) rotate(3deg) scale(1.15) } 100% { transform: translate(12px,-3px) rotate(0) scale(1) } }
@keyframes ns-listener { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes ns-blade { 0% { transform: rotate(10deg) translateY(0) } 50% { transform: rotate(8deg) translateY(-3px) } 100% { transform: rotate(10deg) translateY(0) } }
@keyframes ns-dew { 0% { transform: translateY(0) scale(1); opacity:0.7 } 50% { transform: translateY(-2px) scale(1.5); opacity:1 } 100% { transform: translateY(0) scale(1); opacity:0.8 } }

/* greenhouse-botany */
.scn-greenhouse-botany {
  background: linear-gradient(180deg, #d4e9d6 0%, #a2c4a5 30%, #588157 100%) /* warm green glass */,
              radial-gradient(ellipse at 70% 30%, #fce4b8 0%, transparent 60%);
}
.scn-greenhouse-botany .glass-roof {
  position: absolute; inset: 0 10% 60% 10%; 
  background: linear-gradient(135deg, rgba(255,255,220,0.3) 0%, rgba(144,224,160,0.2) 50%, rgba(200,230,180,0.1) 100%);
  clip-path: polygon(0% 100%, 20% 0%, 80% 0%, 100% 100%);
  animation: gb-glass 12s ease-in-out infinite alternate;
}
.scn-greenhouse-botany .shelf {
  position: absolute; bottom: 30%; left: 15%; right: 15%; height: 4px;
  background: linear-gradient(90deg, #5c4033, #8b6f47, #5c4033);
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
}
.scn-greenhouse-botany .pot-plant {
  position: absolute; bottom: 30%; left: 30%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #3a5a3a 0%, #2d4a2d 60%, #5c4033 60%, #4a3020 100%);
  border-radius: 30% 30% 10% 10%;
  animation: gb-plant 6s ease-in-out infinite;
}
.scn-greenhouse-botany .vine {
  position: absolute; width: 40px; height: 60px;
  background: linear-gradient(180deg, #4a7a4a, #2d5a2d);
  border-radius: 50%;
}
.scn-greenhouse-botany .vine-a {
  left: 50%; top: 15%; transform-origin: top left;
  animation: gb-vine-a 8s ease-in-out infinite alternate;
}
.scn-greenhouse-botany .vine-b {
  right: 40%; top: 20%; transform-origin: top right;
  animation: gb-vine-b 10s ease-in-out infinite alternate;
}
.scn-greenhouse-botany .sunbeam {
  position: absolute; top: -10%; left: 35%; width: 40px; height: 120%;
  background: linear-gradient(180deg, rgba(255,230,150,0.4) 0%, rgba(255,200,100,0.1) 100%);
  filter: blur(8px);
  animation: gb-sunbeam 15s linear infinite alternate;
}
.scn-greenhouse-botany .figure-botanist {
  position: absolute; bottom: 31%; left: 50%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #6a8a6a 0%, #3a5a3a 50%, #5c4033 50%, #4a3020 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gb-figure 5s ease-in-out infinite;
}
.scn-greenhouse-botany .butterfly {
  position: absolute; top: 25%; left: 20%; width: 8px; height: 6px;
  background: radial-gradient(circle, #f0c068, #c08040);
  border-radius: 50%;
  filter: blur(2px);
  animation: gb-butterfly 7s ease-in-out infinite;
}
@keyframes gb-glass { 0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.6; } }
@keyframes gb-plant { 0%,100% { transform: rotate(0deg); } 30% { transform: rotate(1deg); } 60% { transform: rotate(-1deg); } }
@keyframes gb-vine-a { 0% { transform: rotate(0deg) scaleY(1); } 50% { transform: rotate(5deg) scaleY(0.95); } 100% { transform: rotate(0deg) scaleY(1); } }
@keyframes gb-vine-b { 0% { transform: rotate(0deg) scaleY(1); } 50% { transform: rotate(-5deg) scaleY(0.95); } 100% { transform: rotate(0deg) scaleY(1); } }
@keyframes gb-sunbeam { 0% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(15px) rotate(2deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes gb-figure { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(5px) rotate(-2deg); } 75% { transform: translateX(-5px) rotate(2deg); } }
@keyframes gb-butterfly { 0% { transform: translate(0,0) scale(1); } 50% { transform: translate(20px,-10px) scale(1.1); } 100% { transform: translate(40px,0) scale(1); } }

/* mountain-excursions */
.scn-mountain-excursions {
  background: linear-gradient(180deg, #b0d0e0 0%, #d0e0f0 40%, #a0b8c8 100%) /* sky */,
              radial-gradient(ellipse at 50% 20%, #f0f8ff 0%, transparent 60%);
}
.scn-mountain-excursions .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #90b8d0, transparent);
  animation: me-sky 20s ease-in-out infinite alternate;
}
.scn-mountain-excursions .mountain-range {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #6a8a7a 0%, #4a6a5a 30%, #2a4a3a 100%);
  clip-path: polygon(0% 100%, 10% 30%, 20% 50%, 35% 10%, 50% 40%, 65% 5%, 80% 30%, 90% 20%, 100% 100%);
  animation: me-mountains 30s ease-in-out infinite alternate;
}
.scn-mountain-excursions .cliff-left {
  position: absolute; bottom: 25%; left: 0; width: 30%; height: 40%;
  background: linear-gradient(180deg, #8a7a6a, #5a4a3a);
  clip-path: polygon(0% 0%, 100% 20%, 100% 100%, 0% 100%);
  animation: me-cliff-l 25s ease-in-out infinite alternate;
}
.scn-mountain-excursions .cliff-right {
  position: absolute; bottom: 25%; right: 0; width: 30%; height: 35%;
  background: linear-gradient(180deg, #7a6a5a, #4a3a2a);
  clip-path: polygon(0% 20%, 100% 0%, 100% 100%, 0% 100%);
  animation: me-cliff-r 28s ease-in-out infinite alternate;
}
.scn-mountain-excursions .green-recess {
  position: absolute; bottom: 28%; left: 40%; right: 40%; height: 15%;
  background: radial-gradient(ellipse, #7a9a7a 0%, #5a7a5a 100%);
  border-radius: 50%;
  animation: me-recess 15s ease-in-out infinite alternate;
}
.scn-mountain-excursions .path {
  position: absolute; bottom: 20%; left: 30%; right: 30%; height: 8px;
  background: linear-gradient(90deg, transparent, #c0b090, transparent);
  border-radius: 50%;
  animation: me-path 10s ease-in-out infinite;
}
.scn-mountain-excursions .figure-hiker {
  position: absolute; bottom: 20%; left: 45%; width: 12px; height: 22px;
  background: linear-gradient(180deg, #2a2a4a, #1a1a2a);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: me-hiker 6s ease-in-out infinite;
}
.scn-mountain-excursions .bird {
  position: absolute; width: 12px; height: 4px;
  background: #1a1a2a;
  border-radius: 50%;
}
.scn-mountain-excursions .bird-a {
  top: 15%; left: 10%;
  animation: me-bird-a 40s linear infinite;
}
.scn-mountain-excursions .bird-b {
  top: 20%; right: 20%;
  animation: me-bird-b 55s linear infinite reverse;
}
@keyframes me-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes me-mountains { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(2px); } }
@keyframes me-cliff-l { 0% { transform: translateX(0); } 50% { transform: translateX(-4px); } 100% { transform: translateX(0); } }
@keyframes me-cliff-r { 0% { transform: translateX(0); } 50% { transform: translateX(4px); } 100% { transform: translateX(0); } }
@keyframes me-recess { 0% { transform: scale(1); } 50% { transform: scale(0.95); } 100% { transform: scale(1); } }
@keyframes me-path { 0%,100% { transform: scaleX(1); } 50% { transform: scaleX(0.9); } }
@keyframes me-hiker { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(8px) rotate(-2deg); } 50% { transform: translateX(16px) rotate(0deg); } 75% { transform: translateX(8px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes me-bird-a { 0% { transform: translateX(-30px); } 100% { transform: translateX(120vw); } }
@keyframes me-bird-b { 0% { transform: translateX(0); } 100% { transform: translateX(-100vw); } }

/* emilys-room */
.scn-emilys-room {
  background: linear-gradient(135deg, #e8dcc8 0%, #d0b898 50%, #b8a088 100%) /* warm wall */,
              radial-gradient(ellipse at 30% 40%, #f8eed8 0%, transparent 80%);
}
.scn-emilys-room .wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, transparent 60%, rgba(0,0,0,0.1) 100%);
}
.scn-emilys-room .window {
  position: absolute; top: 10%; left: 30%; width: 30%; height: 40%;
  background: linear-gradient(180deg, #c0d8f0 0%, #a0b8d0 100%);
  border: 6px solid #8a7050;
  border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(255,255,255,0.3), 0 0 20px rgba(200,220,255,0.2);
  animation: er-window 12s ease-in-out infinite alternate;
}
.scn-emilys-room .desk {
  position: absolute; bottom: 15%; left: 20%; right: 20%; height: 8%;
  background: linear-gradient(180deg, #6a5030, #4a3828);
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
}
.scn-emilys-room .chair {
  position: absolute; bottom: 18%; left: 35%; width: 12%; height: 15%;
  background: linear-gradient(180deg, #8a7050, #5a4030);
  border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%;
  animation: er-chair 8s ease-in-out infinite;
}
.scn-emilys-room .books {
  position: absolute; bottom: 20%; left: 25%; width: 15%; height: 10%;
  background: linear-gradient(90deg, #4a7a5a 0%, #6a4a3a 30%, #5a6a4a 60%, #4a4a6a 100%);
  border-radius: 2px;
  animation: er-books 10s ease-in-out infinite alternate;
}
.scn-emilys-room .instrument {
  position: absolute; bottom: 12%; left: 55%; width: 20%; height: 18%;
  background: linear-gradient(180deg, #4a2a1a 0%, #6a4030 30%, #3a2010 100%);
  border-radius: 30% 30% 10% 10%;
  animation: er-instrument 6s ease-in-out infinite;
}
.scn-emilys-room .bird {
  position: absolute; top: 8%; left: 60%; width: 10px; height: 8px;
  background: #8a6a3a;
  border-radius: 50%;
  animation: er-bird 7s ease-in-out infinite;
}
.scn-emilys-room .potted-plant {
  position: absolute; bottom: 10%; left: 10%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #3a6a3a 0%, #2a4a2a 60%, #6a5030 60%, #4a3828 100%);
  border-radius: 30% 30% 10% 10%;
  animation: er-plant 9s ease-in-out infinite;
}
@keyframes er-window { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes er-chair { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
@keyframes er-books { 0% { transform: scale(1); } 50% { transform: scale(0.95); } 100% { transform: scale(1); } }
@keyframes er-instrument { 0% { transform: rotate(0deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(0deg); } }
@keyframes er-bird { 0% { transform: translate(0,0); } 30% { transform: translate(10px,-5px); } 60% { transform: translate(20px,0); } 100% { transform: translate(0,0); } }
@keyframes er-plant { 0% { transform: rotate(0deg) scale(1); } 50% { transform: rotate(-1deg) scale(1.02); } 100% { transform: rotate(0deg) scale(1); } }

/* peasant-dances */
.scn-peasant-dances {
  background: linear-gradient(180deg, #4a3a5a 0%, #6a4a5a 30%, #8a5a4a 60%, #a06a3a 100%) /* dusk */,
              radial-gradient(ellipse at 50% 100%, #c08040 0%, transparent 70%);
}
.scn-peasant-dances .dusk-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #3a2a4a, transparent);
  animation: pd-sky 15s ease-in-out infinite alternate;
}
.scn-peasant-dances .river {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #4a5a6a, #2a3a4a);
  border-radius: 60% 40% 0 0 / 100% 80% 0 0;
  animation: pd-river 20s ease-in-out infinite alternate;
}
.scn-peasant-dances .riverbank {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 10%;
  background: linear-gradient(180deg, #6a5a3a, #4a3a2a);
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
}
.scn-peasant-dances .figure-dancer {
  position: absolute; bottom: 28%; width: 16px; height: 36px;
  background: linear-gradient(180deg, #4a2a3a 0%, #2a1a2a 50%, #6a3030 50%, #4a2020 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
}
.scn-peasant-dances .dancer-1 {
  left: 30%;
  animation: pd-dancer1 2s ease-in-out infinite;
}
.scn-peasant-dances .dancer-2 {
  left: 45%;
  animation: pd-dancer2 2.3s ease-in-out infinite reverse;
}
.scn-peasant-dances .dancer-3 {
  left: 60%;
  animation: pd-dancer3 2.6s ease-in-out infinite 0.5s;
}
.scn-peasant-dances .lantern {
  position: absolute; width: 8px; height: 10px;
  background: #c08040;
  border-radius: 10% 10% 30% 30%;
  box-shadow: 0 0 20px 6px rgba(192,128,64,0.7), 0 0 40px 12px rgba(255,200,100,0.3);
  animation: pd-lantern 4s ease-in-out infinite alternate;
}
.scn-peasant-dances .lantern-left {
  bottom: 30%; left: 20%;
  animation-delay: 0s;
}
.scn-peasant-dances .lantern-right {
  bottom: 30%; right: 20%;
  animation-delay: 1s;
}
.scn-peasant-dances .music-notes {
  position: absolute; top: 10%; left: 20%; width: 12px; height: 12px;
  background: radial-gradient(circle, #f0d080 0%, transparent 70%);
  border-radius: 50%;
  animation: pd-notes 3s ease-in-out infinite;
}
@keyframes pd-sky { 0% { opacity: 0.7; } 50% { opacity: 0.85; } 100% { opacity: 0.6; } }
@keyframes pd-river { 0% { transform: translateY(0); } 50% { transform: translateY(-5px); } 100% { transform: translateY(0); } }
@keyframes pd-dancer1 { 0%,100% { transform: rotate(-5deg) translateY(0); } 30% { transform: rotate(10deg) translateY(-8px); } 60% { transform: rotate(-8deg) translateY(-4px); } }
@keyframes pd-dancer2 { 0%,100% { transform: rotate(0deg) translateY(0); } 40% { transform: rotate(-12deg) translateY(-10px); } 80% { transform: rotate(8deg) translateY(-2px); } }
@keyframes pd-dancer3 { 0%,100% { transform: rotate(5deg) translateY(0); } 35% { transform: rotate(-10deg) translateY(-6px); } 70% { transform: rotate(6deg) translateY(-8px); } }
@keyframes pd-lantern { 0% { transform: scale(1); opacity: 0.8; } 50% { transform: scale(1.1); opacity: 1; } 100% { transform: scale(0.95); opacity: 0.7; } }
@keyframes pd-notes { 0% { transform: translate(0,0) rotate(0deg); } 30% { transform: translate(20px,-15px) rotate(20deg); } 60% { transform: translate(40px,-30px) rotate(40deg); } 100% { transform: translate(60px,-45px) rotate(60deg); opacity: 0; } }

.scn-gothic-magnificence { background: linear-gradient(180deg, #6a9ec7 0%, #b4d8f0 40%, #e5e5d0 70%, #f0e6c0 100%), radial-gradient(ellipse at 70% 10%, #fff4d0 0%, transparent 50%); }
.scn-gothic-magnificence .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #8bbce0 0%, #cce4f0 100%); }
.scn-gothic-magnificence .sun { position:absolute; top:8%; right:15%; width:40px; height:40px; background: radial-gradient(circle, #fffae0 0%, #f0d48a 70%); border-radius:50%; box-shadow: 0 0 60px 30px rgba(240,212,138,.5); animation: goth-sun 20s ease-in-out infinite; }
.scn-gothic-magnificence .castle-body { position:absolute; bottom:25%; left:20%; right:20%; height:50%; background: linear-gradient(180deg, #c8b89a 0%, #a08868 40%, #7a6040 100%); border-radius: 20px 20px 0 0; box-shadow: inset 0 -20px 30px rgba(0,0,0,.3); }
.scn-gothic-magnificence .tower-left { position:absolute; bottom:25%; left:18%; width:50px; height:70%; background: linear-gradient(180deg, #b8a888 0%, #8a7050 100%); border-radius: 8px 8px 0 0; box-shadow: -4px 0 8px rgba(0,0,0,.2); }
.scn-gothic-magnificence .tower-right { position:absolute; bottom:25%; right:18%; width:50px; height:70%; background: linear-gradient(180deg, #b8a888 0%, #8a7050 100%); border-radius: 8px 8px 0 0; box-shadow: 4px 0 8px rgba(0,0,0,.2); }
.scn-gothic-magnificence .window-arch { position:absolute; bottom:40%; left:50%; width:30px; height:40px; transform:translateX(-50%); background: radial-gradient(ellipse, #c0b090 0%, #7a6848 70%); border-radius: 50% 50% 10% 10%; box-shadow: inset 0 -4px 6px rgba(0,0,0,.4); animation: goth-arch 6s ease-in-out infinite; }
.scn-gothic-magnificence .battlement { position:absolute; bottom:40%; left:18%; width:64%; height:8px; background: #8a7050; box-shadow: 0 -4px 0 #7a6040, 0 4px 0 #a08868; }
.scn-gothic-magnificence .figure { position:absolute; bottom:25%; left:42%; width:12px; height:28px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: goth-figure 8s ease-in-out infinite; }
.scn-gothic-magnificence .cloud { position:absolute; top:12%; left:10%; width:100px; height:20px; background: rgba(255,255,255,.6); border-radius:50%; filter: blur(8px); animation: goth-cloud 50s linear infinite; }
@keyframes goth-sun { 0%,100% { transform: scale(1); opacity:.9 } 50% { transform: scale(1.05); opacity:1 } }
@keyframes goth-arch { 0%,100% { transform: translateX(-50%) scaleY(1) } 50% { transform: translateX(-50%) scaleY(1.02) } }
@keyframes goth-figure { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(4px) rotate(1deg) } 50% { transform: translateX(8px) rotate(-1deg) } 75% { transform: translateX(12px) rotate(2deg) } 100% { transform: translateX(16px) rotate(0) } }
@keyframes goth-cloud { 0% { transform: translateX(-50px) } 100% { transform: translateX(120vw) } }

.scn-montoni-on-cliff { background: linear-gradient(180deg, #6a9ec7 0%, #b4d8f0 40%, #d4c8a0 65%, #b8a070 85%, #8a6848 100%), radial-gradient(ellipse at 40% 30%, #fff4d0 0%, transparent 60%); }
.scn-montoni-on-cliff .sky { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #9ac4e0 0%, #cce4f0 100%); }
.scn-montoni-on-cliff .cliff { position:absolute; bottom:20%; left:10%; right:40%; height:50%; background: linear-gradient(180deg, #b8a070 0%, #7a6040 50%, #4a3820 100%); border-radius: 40% 0 0 0 / 60% 0 0 0; box-shadow: inset -10px 0 20px rgba(0,0,0,.3); }
.scn-montoni-on-cliff .path { position:absolute; bottom:30%; left:15%; width:40%; height:8px; background: #c8b890; border-radius: 4px; transform: rotate(-15deg); transform-origin: left center; animation: motn-path 12s ease-in-out infinite; }
.scn-montoni-on-cliff .figure-montoni { position:absolute; bottom:32%; left:25%; width:14px; height:30px; background: linear-gradient(180deg, #2a1a0a 0%, #0a0800 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: motn-fig1 6s ease-in-out infinite; }
.scn-montoni-on-cliff .figure-follower1 { position:absolute; bottom:28%; left:35%; width:12px; height:26px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: motn-fig2 6s ease-in-out infinite 0.5s; }
.scn-montoni-on-cliff .figure-follower2 { position:absolute; bottom:24%; left:42%; width:12px; height:24px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: motn-fig2 6s ease-in-out infinite 1s; }
.scn-montoni-on-cliff .rampart-distant { position:absolute; bottom:37%; left:55%; width:30%; height:20%; background: linear-gradient(180deg, #c8b890 0%, #a08868 100%); border-radius: 10px 10px 0 0; box-shadow: 0 4px 8px rgba(0,0,0,.2); }
.scn-montoni-on-cliff .sun-glint { position:absolute; top:5%; left:30%; width:20px; height:20px; background: radial-gradient(circle, #fffae0 0%, rgba(255,250,224,0) 80%); border-radius:50%; animation: motn-glint 8s ease-in-out infinite; }
@keyframes motn-path { 0%,100% { transform: rotate(-15deg) scaleX(1) } 50% { transform: rotate(-13deg) scaleX(1.02) } }
@keyframes motn-fig1 { 0% { transform: translateX(0) rotate(-3deg) } 25% { transform: translateX(5px) rotate(0deg) } 50% { transform: translateX(10px) rotate(2deg) } 75% { transform: translateX(15px) rotate(0deg) } 100% { transform: translateX(20px) rotate(-2deg) } }
@keyframes motn-fig2 { 0% { transform: translateX(0) rotate(-2deg) scaleY(1) } 25% { transform: translateX(4px) rotate(1deg) scaleY(1.02) } 50% { transform: translateX(8px) rotate(0deg) scaleY(0.98) } 75% { transform: translateX(12px) rotate(-1deg) scaleY(1.01) } 100% { transform: translateX(16px) rotate(2deg) scaleY(1) } }
@keyframes motn-glint { 0%,100% { opacity: .5; transform: scale(1) } 50% { opacity: 1; transform: scale(1.3) } }

.scn-fear-of-morano { background: linear-gradient(180deg, #b8c8d8 0%, #d0e0e8 40%, #e8e0d0 70%, #c8b090 100%), radial-gradient(ellipse at 80% 30%, #fff4d0 0%, transparent 70%); }
.scn-fear-of-morano .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #c8b890 0%, #a08868 100%); box-shadow: inset 0 10px 20px rgba(0,0,0,.2); }
.scn-fear-of-morano .arcade-left { position:absolute; bottom:30%; left:0; width:40%; height:60%; background: linear-gradient(180deg, #d8c8b0 0%, #b0a088 100%); border-radius: 0 20px 0 0; box-shadow: inset -10px 0 15px rgba(0,0,0,.1); }
.scn-fear-of-morano .arcade-right { position:absolute; bottom:30%; right:0; width:40%; height:60%; background: linear-gradient(180deg, #d8c8b0 0%, #b0a088 100%); border-radius: 20px 0 0 0; box-shadow: inset 10px 0 15px rgba(0,0,0,.1); }
.scn-fear-of-morano .folding-doors { position:absolute; bottom:30%; left:45%; right:45%; height:50%; background: linear-gradient(180deg, #a08868 0%, #7a6040 100%); border-radius: 10px 10px 0 0; box-shadow: 0 4px 8px rgba(0,0,0,.3); animation: moro-doors 4s ease-in-out infinite; }
.scn-fear-of-morano .figure-retreat { position:absolute; bottom:30%; left:20%; width:8px; height:22px; background: linear-gradient(180deg, #1a1008 0%, #000000 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: moro-retreat 3s ease-in-out infinite; }
.scn-fear-of-morano .figure-morano { position:absolute; bottom:30%; left:68%; width:10px; height:24px; background: linear-gradient(180deg, #2a1a0a 0%, #0a0800 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: moro-approach 3s ease-in-out infinite; }
.scn-fear-of-morano .shadow-morano { position:absolute; bottom:30%; left:66%; width:30px; height:10px; background: rgba(0,0,0,.3); border-radius:50%; filter: blur(4px); animation: moro-shadow 3s ease-in-out infinite; }
.scn-fear-of-morano .light-beam { position:absolute; top:0; left:55%; width:10%; height:100%; background: linear-gradient(180deg, rgba(255,255,200,.4) 0%, transparent 80%); animation: moro-beam 6s ease-in-out infinite; }
@keyframes moro-doors { 0%,100% { transform: scaleX(1) } 50% { transform: scaleX(0.95) } }
@keyframes moro-retreat { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(-6px) rotate(-2deg) } 50% { transform: translateX(-12px) rotate(0deg) } 75% { transform: translateX(-18px) rotate(2deg) } 100% { transform: translateX(-24px) rotate(0deg) } }
@keyframes moro-approach { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(-4px) rotate(1deg) } 50% { transform: translateX(-8px) rotate(0deg) } 75% { transform: translateX(-12px) rotate(-1deg) } 100% { transform: translateX(-16px) rotate(0deg) } }
@keyframes moro-shadow { 0%,100% { opacity: .3; transform: scaleX(1) } 50% { opacity: .5; transform: scaleX(1.2) translateX(-4px) } }
@keyframes moro-beam { 0%,100% { opacity: .4; transform: scaleY(1) } 50% { opacity: .7; transform: scaleY(1.05) } }

.scn-voices-on-rampart { background: linear-gradient(180deg, #7ab4d0 0%, #b4d8f0 40%, #d8e0c8 70%, #c8b090 100%), radial-gradient(ellipse at 60% 5%, #fff4d0 0%, transparent 50%); }
.scn-voices-on-rampart .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #9cc8e4 0%, #cce4f0 100%); }
.scn-voices-on-rampart .rampart-wall { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #c8b890 0%, #a08868 60%, #7a6040 100%); border-radius: 20px 20px 0 0; box-shadow: inset 0 20px 30px rgba(0,0,0,.3); }
.scn-voices-on-rampart .figure-montoni { position:absolute; bottom:20%; left:30%; width:12px; height:26px; background: linear-gradient(180deg, #2a1a0a 0%, #0a0800 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: ramp-fig1 8s ease-in-out infinite; }
.scn-voices-on-rampart .figure-cavigni { position:absolute; bottom:20%; left:44%; width:12px; height:24px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: ramp-fig2 8s ease-in-out infinite 0.3s; }
.scn-voices-on-rampart .distant-landscape { position:absolute; bottom:45%; left:0; right:0; height:15%; background: linear-gradient(180deg, #a0c8a0 0%, #80a880 100%); border-radius: 30% 30% 0 0 / 100% 100% 0 0; opacity:.6; }
.scn-voices-on-rampart .cloud-a { position:absolute; top:12%; left:15%; width:80px; height:16px; background: rgba(255,255,255,.5); border-radius:50%; filter: blur(6px); animation: ramp-cloud 40s linear infinite; }
.scn-voices-on-rampart .cloud-b { position:absolute; top:18%; right:20%; width:60px; height:12px; background: rgba(255,255,255,.4); border-radius:50%; filter: blur(5px); animation: ramp-cloud 50s linear infinite reverse; animation-delay: -20s; }
.scn-voices-on-rampart .sun { position:absolute; top:5%; left:70%; width:30px; height:30px; background: radial-gradient(circle, #fffae0 0%, #f0d48a 70%); border-radius:50%; box-shadow: 0 0 40px 20px rgba(240,212,138,.5); animation: ramp-sun 15s ease-in-out infinite; }
@keyframes ramp-fig1 { 0% { transform: translateX(0) rotate(-1deg) } 25% { transform: translateX(5px) rotate(1deg) } 50% { transform: translateX(10px) rotate(-1deg) } 75% { transform: translateX(15px) rotate(1deg) } 100% { transform: translateX(20px) rotate(0deg) } }
@keyframes ramp-fig2 { 0% { transform: translateX(0) rotate(0deg) scaleY(1) } 25% { transform: translateX(3px) rotate(-1deg) scaleY(1.02) } 50% { transform: translateX(6px) rotate(0deg) scaleY(0.98) } 75% { transform: translateX(9px) rotate(1deg) scaleY(1.01) } 100% { transform: translateX(12px) rotate(0deg) scaleY(1) } }
@keyframes ramp-cloud { 0% { transform: translateX(-40px) } 100% { transform: translateX(120vw) } }
@keyframes ramp-sun { 0%,100% { transform: scale(1); opacity:.85 } 50% { transform: scale(1.04); opacity:1 } }

/* appointment-at-night */
.scn-appointment-at-night { background: linear-gradient(180deg, #0f1420 0%, #1b2238 40%, #2a3040 70%, #1f2630 100%), radial-gradient(ellipse at 80% 60%, #2c354a 0%, transparent 60%); }
.scn-appointment-at-night .bg-wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #2a3040 0%, #1f2630 100%); border-radius:0 0 40% 40% / 0 0 20% 20%; }
.scn-appointment-at-night .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); border-radius:30% 30% 0 0 / 20% 20% 0 0; }
.scn-appointment-at-night .window-out { position:absolute; top:10%; left:15%; width:35%; height:50%; background: linear-gradient(180deg, #060a12 0%, #0e1420 100%); border:8px solid #3a3a4a; border-radius:4%; box-shadow: inset 0 0 30px rgba(0,0,0,.7); }
.scn-appointment-at-night .window-pane { position:absolute; top:12%; left:17%; width:31%; height:46%; background: radial-gradient(circle at 30% 70%, #1a2a40 0%, #0a1220 70%); border-radius:2%; box-shadow: 0 0 0 3px #4a4a5a; }
.scn-appointment-at-night .table { position:absolute; bottom:18%; left:40%; width:22%; height:8%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:6px; box-shadow: 0 -4px 12px rgba(0,0,0,.5); }
.scn-appointment-at-night .candle { position:absolute; bottom:26%; left:49%; width:2%; height:10%; background: linear-gradient(180deg, #e0c080 0%, #b08040 100%); border-radius:50% 50% 4px 4px; box-shadow: 0 0 20px 6px #b08040, 0 0 40px 12px rgba(176,128,64,.4); animation: aan-glow 4s ease-in-out infinite alternate; }
.scn-appointment-at-night .figure { position:absolute; bottom:15%; left:55%; width:12%; height:28%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: aan-figure 6s ease-in-out infinite; }
.scn-appointment-at-night .shadow { position:absolute; bottom:10%; left:52%; width:18%; height:4%; background: radial-gradient(ellipse, rgba(0,0,0,.6) 0%, transparent 70%); border-radius:50%; filter:blur(4px); animation: aan-shadow 6s ease-in-out infinite; }
@keyframes aan-glow { 0% { box-shadow: 0 0 16px 4px #b08040, 0 0 32px 8px rgba(176,128,64,.3); opacity:.85 } 50% { box-shadow: 0 0 28px 8px #d0a060, 0 0 56px 16px rgba(208,160,96,.5); opacity:1 } 100% { box-shadow: 0 0 20px 5px #b08040, 0 0 40px 10px rgba(176,128,64,.35); opacity:.9 } }
@keyframes aan-figure { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(3px) rotate(1deg) } 50% { transform: translateX(0) rotate(-1deg) } 75% { transform: translateX(-2px) rotate(2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes aan-shadow { 0% { transform: scaleX(1); opacity:.6 } 50% { transform: scaleX(1.1); opacity:.4 } 100% { transform: scaleX(1); opacity:.6 } }

/* vintage-dance-remembered */
.scn-vintage-dance-remembered { background: linear-gradient(180deg, #2a1a3e 0%, #3a2a4e 30%, #5a3a5e 60%, #7a5a6e 100%), radial-gradient(ellipse at 60% 100%, #5a3a5e 0%, transparent 70%); }
.scn-vintage-dance-remembered .sky-dusk { position:absolute; top:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #6a4a6e 0%, #8a6a7e 40%, #b08a8e 100%); animation: vdr-sky 12s ease-in-out infinite alternate; }
.scn-vintage-dance-remembered .ground { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #4a5a3a 0%, #3a4a2a 100%); border-radius:40% 40% 0 0 / 30% 30% 0 0; }
.scn-vintage-dance-remembered .vine-left { position:absolute; bottom:20%; left:8%; width:12%; height:35%; background: linear-gradient(180deg, #2a3a1a 0%, #1a2a0a 100%); border-radius:50% 50% 40% 40%; transform:rotate(10deg); animation: vdr-vine 8s ease-in-out infinite; }
.scn-vintage-dance-remembered .vine-right { position:absolute; bottom:20%; right:8%; width:12%; height:35%; background: linear-gradient(180deg, #2a3a1a 0%, #1a2a0a 100%); border-radius:50% 50% 40% 40%; transform:rotate(-10deg); animation: vdr-vine 8s ease-in-out infinite reverse; }
.scn-vintage-dance-remembered .dancer-a { position:absolute; bottom:15%; left:32%; width:10%; height:30%; background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: vdr-dance 3s ease-in-out infinite; }
.scn-vintage-dance-remembered .dancer-b { position:absolute; bottom:15%; right:32%; width:10%; height:30%; background: linear-gradient(180deg, #4a5a4a 0%, #2a3a2a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: vdr-dance 3s ease-in-out infinite reverse; }
.scn-vintage-dance-remembered .lantern { position:absolute; top:30%; left:50%; width:4%; height:6%; background: radial-gradient(circle, #f0c060 0%, #c0a040 70%); border-radius:50%; box-shadow: 0 0 30px 10px #f0c060, 0 0 60px 20px rgba(240,192,96,.4); animation: vdr-lantern 5s ease-in-out infinite alternate; }
@keyframes vdr-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes vdr-vine { 0% { transform:rotate(10deg) translateY(0) } 50% { transform:rotate(15deg) translateY(-3px) } 100% { transform:rotate(10deg) translateY(0) } }
@keyframes vdr-dance { 0% { transform: translateY(0) rotate(-5deg) } 25% { transform: translateY(-4px) rotate(0deg) } 50% { transform: translateY(0) rotate(5deg) } 75% { transform: translateY(-4px) rotate(0deg) } 100% { transform: translateY(0) rotate(-5deg) } }
@keyframes vdr-lantern { 0% { transform: translate(0,0); box-shadow: 0 0 20px 6px #f0c060; } 50% { transform: translate(2px,-4px); box-shadow: 0 0 40px 14px #f0c060; } 100% { transform: translate(0,0); box-shadow: 0 0 20px 6px #f0c060; } }

/* evening-festivities */
.scn-evening-festivities { background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3e 30%, #4a3a3a 60%, #6a4a3a 100%), radial-gradient(ellipse at 50% 100%, #4a3a3a 0%, transparent 60%); }
.scn-evening-festivities .clearing { position:absolute; top:15%; left:10%; width:80%; height:60%; background: radial-gradient(ellipse, #3a5a3a 0%, #2a4a2a 60%, #1a3a1a 100%); border-radius:50%; box-shadow: inset 0 0 100px rgba(0,0,0,.5); }
.scn-evening-festivities .trees-ring { position:absolute; top:10%; left:5%; width:90%; height:70%; border-radius:50%; background: radial-gradient(ellipse, transparent 50%, #1a2a1a 55%, #1a1a0a 70%, transparent 70%); }
.scn-evening-festivities .bonfire { position:absolute; bottom:30%; left:50%; width:12%; height:18%; transform:translateX(-50%); background: linear-gradient(180deg, #e08030 0%, #d06020 40%, #a04010 70%, #4a1a0a 100%); border-radius:50% 50% 20% 20%; box-shadow: 0 0 80px 30px #e07020, 0 0 160px 60px rgba(224,112,32,.4); animation: evf-fire 3s ease-in-out infinite alternate; }
.scn-evening-festivities .dancer-x { position:absolute; bottom:25%; left:25%; width:8%; height:24%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: evf-dancer 4s ease-in-out infinite; }
.scn-evening-festivities .dancer-y { position:absolute; bottom:25%; left:43%; width:8%; height:24%; background: linear-gradient(180deg, #2a3a2a 0%, #0a1a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: evf-dancer 4s ease-in-out infinite 0.5s; }
.scn-evening-festivities .dancer-z { position:absolute; bottom:25%; right:25%; width:8%; height:24%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: evf-dancer 4s ease-in-out infinite 1s; }
.scn-evening-festivities .sparks { position:absolute; bottom:45%; left:50%; width:2%; height:2%; background: radial-gradient(circle, #f0a040 0%, transparent 70%); border-radius:50%; box-shadow: -10px -12px 0 #f0a040, 8px -15px 0 #f0a040, -5px -20px 0 #d08030, 12px -8px 0 #e09040; filter:blur(2px); animation: evf-spark 2s ease-in-out infinite alternate; }
@keyframes evf-fire { 0% { transform: translateX(-50%) scale(1); box-shadow: 0 0 60px 20px #e07020; } 50% { transform: translateX(-50%) scale(1.1) translateY(-2px); box-shadow: 0 0 100px 40px #e07020; } 100% { transform: translateX(-50%) scale(1); box-shadow: 0 0 60px 20px #e07020; } }
@keyframes evf-dancer { 0% { transform: translateY(0) rotate(-10deg); } 25% { transform: translateY(-6px) rotate(-5deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-6px) rotate(5deg); } 100% { transform: translateY(0) rotate(10deg); } }
@keyframes evf-spark { 0% { transform: translate(0,0); opacity:1; } 50% { transform: translate(-3px,-5px); opacity:.6; } 100% { transform: translate(3px,-10px); opacity:0; } }

/* count’s-delight */
.scn-counts-delight { background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 30%, #3a3a4e 60%, #4a3a3a 100%), radial-gradient(ellipse at 70% 100%, #3a3a4e 0%, transparent 60%); }
.scn-counts-delight .sky-warm { position:absolute; top:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #6a5a6e 0%, #8a7a7e 40%, #b0a08e 100%); animation: ctd-sky 12s ease-in-out infinite alternate; }
.scn-counts-delight .meadow { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #3a5a3a 0%, #2a4a2a 100%); border-radius:40% 40% 0 0 / 30% 30% 0 0; }
.scn-counts-delight .tree-silhouette { position:absolute; top:12%; right:10%; width:20%; height:55%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:50% 50% 30% 30% / 60% 60% 30% 30%; transform:rotate(-8deg); filter:blur(1px); }
.scn-counts-delight .dance-couple { position:absolute; bottom:18%; left:30%; width:14%; height:28%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: ctd-couple 3s ease-in-out infinite; }
.scn-counts-delight .dance-partner { position:absolute; bottom:18%; left:44%; width:10%; height:25%; background: linear-gradient(180deg, #3a4a3a 0%, #1a2a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: ctd-couple 3s ease-in-out infinite 0.3s; }
.scn-counts-delight .figure-stand { position:absolute; bottom:15%; right:25%; width:8%; height:24%; background: linear-gradient(180deg, #2e2e3e 0%, #1a1a2a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: ctd-stand 5s ease-in-out infinite; }
.scn-counts-delight .ambient-glow { position:absolute; bottom:30%; left:40%; width:30%; height:40%; background: radial-gradient(ellipse, rgba(240,200,160,.15) 0%, transparent 70%); border-radius:50%; filter:blur(20px); animation: ctd-glow 8s ease-in-out infinite alternate; }
@keyframes ctd-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes ctd-couple { 0% { transform: translateY(0) rotate(-5deg); } 25% { transform: translateY(-4px) rotate(0deg); } 50% { transform: translateY(0) rotate(5deg); } 75% { transform: translateY(-4px) rotate(0deg); } 100% { transform: translateY(0) rotate(-5deg); } }
@keyframes ctd-stand { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes ctd-glow { 0% { opacity:.5; transform: scale(1); } 50% { opacity:.8; transform: scale(1.2); } 100% { opacity:.5; transform: scale(1); } }

/* Scene: evening-drive (dusk, tense) */
.scn-evening-drive {
  background:
    linear-gradient(180deg, #1e1a3a 0%, #3a2a5a 25%, #b06a3a 50%, #8a5a3a 75%, #1a1a2a 100%),
    radial-gradient(ellipse at 60% 80%, #b06a3a 0%, transparent 60%);
}
.scn-evening-drive .sky { position: absolute; inset: 0 0 45% 0; background: linear-gradient(180deg, #2a2a4e 0%, #6a4a3a 100%); animation: ed1-sky 14s ease-in-out infinite alternate; }
.scn-evening-drive .mountains { position: absolute; bottom: 35%; left: 0; right: 0; height: 30%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 60% 40% 0 0 / 70% 80% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.5); animation: ed1-mountains 18s ease-in-out infinite alternate; }
.scn-evening-drive .road { position: absolute; bottom: 20%; left: 0; right: 0; height: 18%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 0 0 20% 20%; box-shadow: inset 0 -6px 12px rgba(0,0,0,.4); animation: ed1-road 22s ease-in-out infinite; }
.scn-evening-drive .carriage { position: absolute; bottom: 22%; left: 10%; width: 80px; height: 50px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 40% 40% 20% 20%; transform: skewX(-5deg); box-shadow: 3px 3px 10px rgba(0,0,0,.6); animation: ed1-carriage 4s ease-in-out infinite; }
.scn-evening-drive .moon { position: absolute; top: 12%; right: 20%; width: 30px; height: 30px; background: radial-gradient(circle, #e0d0a0 0%, #c0a060 70%, transparent 100%); border-radius: 50%; box-shadow: 0 0 30px 10px rgba(192,160,96,.6), 0 0 60px 20px rgba(192,160,96,.3); animation: ed1-moon 20s ease-in-out infinite alternate; }
.scn-evening-drive .cloud { position: absolute; background: linear-gradient(180deg, rgba(255,255,255,.3) 0%, rgba(255,255,255,.05) 100%); border-radius: 50%; filter: blur(8px); }
.scn-evening-drive .c1 { top: 8%; left: 10%; width: 100px; height: 20px; animation: ed1-drift 35s linear infinite; }
.scn-evening-drive .c2 { top: 16%; right: 5%; width: 70px; height: 14px; animation: ed1-drift 50s linear infinite reverse; animation-delay: -10s; }
.scn-evening-drive .dust { position: absolute; bottom: 20%; left: 20%; width: 100px; height: 40px; background: radial-gradient(ellipse, rgba(180,140,80,.2) 0%, transparent 100%); border-radius: 50%; filter: blur(5px); animation: ed1-dust 8s ease-in-out infinite; }
@keyframes ed1-sky { 0% { opacity:.7 } 50% { opacity:.9 } 100% { opacity:.75 } }
@keyframes ed1-mountains { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-2px) scaleY(1.02) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes ed1-road { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(.95) } }
@keyframes ed1-carriage { 0% { transform: translateX(0) translateY(0) rotate(-1deg) } 25% { transform: translateX(8px) translateY(-1px) rotate(1deg) } 50% { transform: translateX(16px) translateY(0) rotate(-1deg) } 75% { transform: translateX(24px) translateY(-1px) rotate(1deg) } 100% { transform: translateX(32px) translateY(0) rotate(0) } }
@keyframes ed1-moon { 0% { opacity:.8; transform: scale(1) } 50% { opacity:1; transform: scale(1.05) } 100% { opacity:.9; transform: scale(.98) } }
@keyframes ed1-drift { 0% { transform: translateX(-60px) } 100% { transform: translateX(120vw) } }
@keyframes ed1-dust { 0%,100% { opacity:.3; transform: scale(1) } 50% { opacity:.6; transform: scale(1.3) } }

/* Scene: morano-arrives-villa (moonlit, tense) */
.scn-morano-arrives-villa {
  background:
    linear-gradient(180deg, #0a0a2a 0%, #1a1a4e 30%, #2a2a6e 60%, #1a1a3a 100%),
    radial-gradient(ellipse at 50% 100%, #2a2a6e 0%, transparent 50%);
}
.scn-morano-arrives-villa .water { position: absolute; bottom: 0; left: 0; right: 0; height: 45%; background: linear-gradient(180deg, #2a3a5a 0%, #1a2a4a 100%); box-shadow: inset 0 8px 20px rgba(0,0,0,.4); animation: mv1-water 12s ease-in-out infinite; }
.scn-morano-arrives-villa .villa { position: absolute; bottom: 40%; left: 25%; width: 150px; height: 100px; background: linear-gradient(180deg, #3a3a5a 0%, #2a2a4a 100%); border-radius: 10% 10% 4% 4%; box-shadow: inset 0 4px 10px rgba(0,0,0,.5), 0 0 20px rgba(100,120,200,.2); animation: mv1-villa 8s ease-in-out infinite alternate; }
.scn-morano-arrives-villa .steps { position: absolute; bottom: 42%; left: 38%; width: 80px; height: 20px; background: linear-gradient(180deg, #4a4a6a 0%, #3a3a5a 100%); border-radius: 10% 10% 0 0; box-shadow: 0 -4px 8px rgba(0,0,0,.3); transform: skewX(-5deg); }
.scn-morano-arrives-villa .barge { position: absolute; bottom: 38%; left: 45%; width: 120px; height: 30px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 40% 40% 30% 30%; box-shadow: 0 4px 12px rgba(0,0,0,.5); animation: mv1-barge 5s ease-in-out infinite; }
.scn-morano-arrives-villa .moon { position: absolute; top: 8%; left: 15%; width: 30px; height: 30px; background: radial-gradient(circle, #c0e0ff 0%, #8090c0 70%, transparent 100%); border-radius: 50%; box-shadow: 0 0 40px 15px rgba(128,144,192,.5), 0 0 80px 30px rgba(128,144,192,.2); animation: mv1-moon 20s ease-in-out infinite alternate; }
.scn-morano-arrives-villa .figure { position: absolute; bottom: 35%; width: 14px; height: 30px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; }
.scn-morano-arrives-villa .f1 { left: 48%; animation: mv1-figure1 3s ease-in-out infinite; }
.scn-morano-arrives-villa .f2 { left: 52%; animation: mv1-figure2 3.2s ease-in-out infinite; animation-delay: -1.5s; }
.scn-morano-arrives-villa .ripple { position: absolute; bottom: 40%; left: 50%; width: 40px; height: 10px; background: radial-gradient(ellipse, rgba(200,220,255,.3) 0%, transparent 100%); border-radius: 50%; filter: blur(3px); animation: mv1-ripple 4s ease-in-out infinite; }
@keyframes mv1-water { 0%,100% { opacity:.7 } 50% { opacity:.9 } }
@keyframes mv1-villa { 0% { transform: scale(1) } 50% { transform: scale(.98) } 100% { transform: scale(1) } }
@keyframes mv1-barge { 0% { transform: translateX(0) translateY(0) rotate(-1deg) } 25% { transform: translateX(5px) translateY(-1px) rotate(1deg) } 50% { transform: translateX(10px) translateY(0) rotate(-1deg) } 75% { transform: translateX(15px) translateY(-1px) rotate(1deg) } 100% { transform: translateX(20px) translateY(0) rotate(0) } }
@keyframes mv1-moon { 0% { opacity:.8; transform: scale(1) } 50% { opacity:1; transform: scale(1.05) } 100% { opacity:.85; transform: scale(.97) } }
@keyframes mv1-figure1 { 0%,100% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-2px) rotate(2deg) } }
@keyframes mv1-figure2 { 0%,100% { transform: translateY(0) rotate(2deg) } 50% { transform: translateY(-2px) rotate(-2deg) } }
@keyframes mv1-ripple { 0% { opacity:.5; transform: scale(1) } 50% { opacity:.8; transform: scale(1.5) } 100% { opacity:.4; transform: scale(1) } }

/* Scene: morano-persists (gaslit, tense) */
.scn-morano-persists {
  background:
    linear-gradient(135deg, #2a1a10 0%, #4a2a18 30%, #3a1a0a 70%, #1a0a05 100%),
    radial-gradient(ellipse at 60% 40%, #b06a3a 0%, transparent 60%);
}
.scn-morano-persists .wall { position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%); box-shadow: inset 0 8px 20px rgba(0,0,0,.5); }
.scn-morano-persists .floor { position: absolute; bottom: 0; left: 0; right: 0; height: 40%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 20% 20% 0 0; }
.scn-morano-persists .table { position: absolute; bottom: 25%; left: 40%; width: 100px; height: 20px; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius: 10% 10% 0 0; box-shadow: 0 6px 12px rgba(0,0,0,.3); transform: perspective(200px) rotateX(10deg); animation: mp1-table 6s ease-in-out infinite; }
.scn-morano-persists .figure-morano { position: absolute; bottom: 30%; left: 35%; width: 18px; height: 40px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mp1-morano 3s ease-in-out infinite; }
.scn-morano-persists .figure-emily { position: absolute; bottom: 30%; right: 35%; width: 16px; height: 38px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mp1-emily 2.8s ease-in-out infinite; }
.scn-morano-persists .gaslamp { position: absolute; top: 25%; left: 50%; width: 12px; height: 18px; background: radial-gradient(circle, #ffd080 0%, #c08040 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 0 30px 10px rgba(192,128,64,.4); animation: mp1-lamp 3s ease-in-out infinite alternate; }
.scn-morano-persists .glow { position: absolute; top: 20%; left: 40%; width: 120px; height: 120px; background: radial-gradient(circle, rgba(255,200,100,.15) 0%, transparent 100%); border-radius: 50%; animation: mp1-glow 4s ease-in-out infinite alternate; }
.scn-morano-persists .shadow { position: absolute; bottom: 0; left: 0; right: 0; height: 50%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.6) 100%); animation: mp1-shadow 5s ease-in-out infinite; }
@keyframes mp1-table { 0%,100% { transform: perspective(200px) rotateX(10deg) } 50% { transform: perspective(200px) rotateX(12deg) translateY(-2px) } }
@keyframes mp1-morano { 0%,100% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-3px) rotate(2deg) } }
@keyframes mp1-emily { 0%,100% { transform: translateY(0) rotate(2deg) } 50% { transform: translateY(-2px) rotate(-3deg) } }
@keyframes mp1-lamp { 0% { opacity:.7; box-shadow: 0 0 20px 5px rgba(192,128,64,.3) } 50% { opacity:1; box-shadow: 0 0 40px 15px rgba(255,200,100,.5) } 100% { opacity:.8; box-shadow: 0 0 25px 8px rgba(192,128,64,.35) } }
@keyframes mp1-glow { 0% { opacity:.6; transform: scale(1) } 50% { opacity:.9; transform: scale(1.2) } 100% { opacity:.7; transform: scale(.95) } }
@keyframes mp1-shadow { 0%,100% { opacity:.7 } 50% { opacity:.9 } }

/* Scene: emily-considers-confession (dim-interior, tense) */
.scn-emily-considers-confession {
  background:
    linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 40%, #1a1a2a 100%),
    radial-gradient(ellipse at 50% 60%, #3a3a5a 0%, transparent 60%);
}
.scn-emily-considers-confession .room { position: absolute; inset: 0; background: linear-gradient(135deg, #2a2a3a 0%, #1a1a2a 100%); box-shadow: inset 0 0 60px rgba(0,0,0,.6); }
.scn-emily-considers-confession .window { position: absolute; top: 15%; right: 10%; width: 60px; height: 80px; background: linear-gradient(180deg, #4a4a6a 0%, #3a3a5a 100%); border: 3px solid #2a2a3a; border-radius: 4px; box-shadow: inset 0 0 20px rgba(0,0,0,.5); transform: perspective(300px) rotateY(-10deg); animation: ec1-window 10s ease-in-out infinite alternate; }
.scn-emily-considers-confession .figure-emily { position: absolute; bottom: 25%; left: 35%; width: 20px; height: 45px; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ec1-figure 4s ease-in-out infinite; }
.scn-emily-considers-confession .letter { position: absolute; bottom: 30%; left: 45%; width: 30px; height: 40px; background: linear-gradient(180deg, #d0c0a0 0%, #a09070 100%); border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,.4); transform: rotate(10deg); animation: ec1-letter 5s ease-in-out infinite; }
.scn-emily-considers-confession .candle { position: absolute; bottom: 25%; left: 50%; width: 8px; height: 20px; background: linear-gradient(180deg, #e0c080 0%, #c09060 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 20px 8px rgba(200,150,80,.4); animation: ec1-candle 3s ease-in-out infinite alternate; }
.scn-emily-considers-confession .shadow { position: absolute; bottom: 0; left: 0; right: 0; height: 60%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.7) 100%); animation: ec1-shadow 6s ease-in-out infinite; }
.scn-emily-considers-confession .moonlight { position: absolute; top: 15%; right: 10%; width: 60px; height: 80px; background: linear-gradient(135deg, rgba(200,220,255,.1) 0%, transparent 100%); border-radius: 4px; filter: blur(4px); animation: ec1-moonlight 8s ease-in-out infinite alternate; }
@keyframes ec1-window { 0% { transform: perspective(300px) rotateY(-10deg) } 50% { transform: perspective(300px) rotateY(-8deg) } 100% { transform: perspective(300px) rotateY(-12deg) } }
@keyframes ec1-figure { 0%,100% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-2px) rotate(2deg) } }
@keyframes ec1-letter { 0%,100% { transform: rotate(10deg) translateX(0) } 50% { transform: rotate(8deg) translateX(2px) } }
@keyframes ec1-candle { 0% { opacity:.7; box-shadow: 0 0 15px 5px rgba(200,150,80,.3) } 50% { opacity:1; box-shadow: 0 0 30px 12px rgba(255,200,100,.5) } 100% { opacity:.8; box-shadow: 0 0 20px 8px rgba(200,150,80,.35) } }
@keyframes ec1-shadow { 0%,100% { opacity:.7 } 50% { opacity:.9 } }
@keyframes ec1-moonlight { 0% { opacity:.3 } 50% { opacity:.6 } 100% { opacity:.4 } }

.scn-wandering-in-turmoil {
  background:
    radial-gradient(ellipse at 30% 50%, #2a1a10 0%, transparent 60%),
    linear-gradient(180deg, #1c1210 0%, #2e1f1a 40%, #1a0e0a 100%);
}
.scn-wandering-in-turmoil .wall-left {
  position:absolute; left:0; top:0; width:30%; height:100%;
  background: linear-gradient(90deg, #0f0a08 0%, #1f1410 100%);
  box-shadow: inset -4px 0 12px rgba(0,0,0,.6);
}
.scn-wandering-in-turmoil .wall-right {
  position:absolute; right:0; top:0; width:30%; height:100%;
  background: linear-gradient(90deg, #1f1410 0%, #0f0a08 100%);
  box-shadow: inset 4px 0 12px rgba(0,0,0,.6);
}
.scn-wandering-in-turmoil .floor {
  position:absolute; bottom:0; left:0; right:0; height:20%;
  background: linear-gradient(180deg, #1f1410 0%, #0a0605 100%);
  box-shadow: inset 0 12px 20px rgba(0,0,0,.5);
}
.scn-wandering-in-turmoil .angel-glow {
  position:absolute; left:45%; top:30%; width:12%; height:30%;
  background: radial-gradient(ellipse, rgba(255,220,160,.3) 0%, transparent 70%);
  filter: blur(8px);
  animation: wt-glow 4s ease-in-out infinite alternate;
}
.scn-wandering-in-turmoil .figure-angel {
  position:absolute; left:47%; bottom:25%; width:6%; height:35%;
  background: linear-gradient(180deg, #d9b080 0%, #c09460 60%, #8a6040 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  filter: drop-shadow(0 0 20px rgba(255,200,150,.4));
  animation: wt-figure 6s ease-in-out infinite;
}
.scn-wandering-in-turmoil .fiendl {
  position:absolute; left:15%; bottom:22%; width:10%; height:40%;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 30% 40% 40% 30% / 60% 50% 50% 40%;
  transform: skewX(-5deg);
  animation: wt-fiend 7s ease-in-out infinite alternate;
}
.scn-wandering-in-turmoil .fiendr {
  position:absolute; right:15%; bottom:22%; width:10%; height:40%;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 40% 30% 30% 40% / 50% 60% 40% 50%;
  transform: skewX(5deg);
  animation: wt-fiend 7s ease-in-out infinite alternate-reverse;
}
.scn-wandering-in-turmoil .shadow-sweep {
  position:absolute; left:0; top:0; width:100%; height:100%;
  background: radial-gradient(ellipse at 50% 40%, transparent 30%, rgba(0,0,0,.4) 80%);
  pointer-events: none;
  animation: wt-sweep 12s ease-in-out infinite;
}
@keyframes wt-glow {
  0% { opacity: .2; transform: scale(.9); }
  50% { opacity: .5; transform: scale(1.1); }
  100% { opacity: .3; transform: scale(1); }
}
@keyframes wt-figure {
  0% { transform: translateY(0) rotate(-2deg); }
  40% { transform: translateY(-4px) rotate(1deg); }
  60% { transform: translateY(-1px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes wt-fiend {
  0% { opacity: .7; transform: translateX(0) scaleY(1); }
  30% { opacity: 1; transform: translateX(8px) scaleY(1.05); }
  70% { opacity: .8; transform: translateX(-5px) scaleY(.95); }
  100% { opacity: .6; transform: translateX(0) scaleY(1); }
}
@keyframes wt-sweep {
  0% { opacity: .6; }
  50% { opacity: .8; }
  100% { opacity: .6; }
}

.scn-wounded-man {
  background:
    radial-gradient(ellipse at 50% 30%, #2a1c1a 0%, transparent 60%),
    linear-gradient(180deg, #120d0b 0%, #1e1412 40%, #0c0807 100%);
}
.scn-wounded-man .back-wall {
  position:absolute; left:10%; right:10%; top:0; height:70%;
  background: linear-gradient(180deg, #1a1412 0%, #2a1e1a 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,.5);
  border-radius: 0 0 20% 20% / 0 0 8% 8%;
}
.scn-wounded-man .floor-damp {
  position:absolute; bottom:0; left:0; right:0; height:35%;
  background: linear-gradient(180deg, #1e1510 0%, #0a0605 60%, #15100e 100%);
  box-shadow: inset 0 12px 18px rgba(0,0,0,.4);
}
.scn-wounded-man .bench {
  position:absolute; bottom:18%; left:10%; width:20%; height:6%;
  background: linear-gradient(180deg, #3a2e28 0%, #1e1612 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 6px 10px rgba(0,0,0,.5);
}
.scn-wounded-man .emily-horror {
  position:absolute; bottom:16%; left:12%; width:8%; height:22%;
  background: linear-gradient(180deg, #c8a888 0%, #a88666 60%, #7a5a40 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-10deg) translateY(0);
  animation: wm-emily 5s ease-in-out infinite;
}
.scn-wounded-man .bearer {
  position:absolute; bottom:24%; width:10%; height:30%;
  background: linear-gradient(180deg, #1e1815 0%, #0f0a08 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 20% 20%;
}
.scn-wounded-man .beare1 {
  left:30%;
  animation: wm-bearer 8s ease-in-out infinite;
}
.scn-wounded-man .beare2 {
  right:30%;
  animation: wm-bearer 8s ease-in-out infinite 0.3s;
}
.scn-wounded-man .wounded-wraith {
  position:absolute; left:44%; bottom:28%; width:10%; height:25%;
  background: linear-gradient(180deg, #3a2520 0%, #1a100e 100%);
  border-radius: 40% 30% 40% 30% / 60% 40% 60% 40%;
  filter: blur(2px);
  animation: wm-wraith 6s ease-in-out infinite;
}
.scn-wounded-man .stretcher {
  position:absolute; left:35%; right:35%; bottom:32%; height:4%;
  background: linear-gradient(90deg, #4a3a32 0%, #5a4842 30%, #4a3a32 70%, #3a2e28 100%);
  border-radius: 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,.6);
}
.scn-wounded-man .chill-mist {
  position:absolute; left:0; top:0; width:100%; height:100%;
  background: radial-gradient(ellipse at 50% 40%, rgba(180,210,230,.12) 0%, transparent 60%);
  filter: blur(12px);
  animation: wm-mist 10s ease-in-out infinite alternate;
}
@keyframes wm-emily {
  0% { transform: rotate(-10deg) translateY(0); opacity: .8; }
  50% { transform: rotate(-8deg) translateY(-3px); opacity: .5; }
  100% { transform: rotate(-10deg) translateY(0); opacity: .8; }
}
@keyframes wm-bearer {
  0% { transform: translateY(0) rotate(0); }
  30% { transform: translateY(-5px) rotate(2deg); }
  60% { transform: translateY(-2px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes wm-wraith {
  0% { opacity: .5; transform: scaleX(1); }
  40% { opacity: .8; transform: scaleX(1.05); }
  70% { opacity: .6; transform: scaleX(.95); }
  100% { opacity: .5; transform: scaleX(1); }
}
@keyframes wm-mist {
  0% { opacity: .3; transform: scale(1); }
  50% { opacity: .7; transform: scale(1.1); }
  100% { opacity: .4; transform: scale(.95); }
}

.scn-safe-in-chamber {
  background:
    radial-gradient(ellipse at 50% 40%, #1f2a2e 0%, transparent 60%),
    linear-gradient(180deg, #0f181a 0%, #1a2428 40%, #0e1215 100%);
}
.scn-safe-in-chamber .chamber-wall {
  position:absolute; left:15%; right:15%; top:0; height:100%;
  background: linear-gradient(180deg, #1f2a2e 0%, #151e22 100%);
  box-shadow: inset 0 0 30px rgba(0,0,0,.4);
  border-radius: 4% 4% 0 0;
}
.scn-safe-in-chamber .chamber-door {
  position:absolute; left:20%; top:10%; width:25%; height:60%;
  background: linear-gradient(180deg, #3a2e28 0%, #2a201c 100%);
  border: 2px solid #1a1412;
  border-radius: 4%;
  box-shadow: -4px 0 8px rgba(0,0,0,.3);
}
.scn-safe-in-chamber .chamber-window {
  position:absolute; right:20%; top:15%; width:20%; height:30%;
  background: linear-gradient(180deg, #2a3a40 0%, #1c2a2e 100%);
  border: 2px solid #1a1412;
  border-radius: 2%;
  box-shadow: inset 0 0 20px rgba(100,140,160,.2);
}
.scn-safe-in-chamber .moonbeam {
  position:absolute; right:20%; top:15%; width:20%; height:45%;
  background: linear-gradient(180deg, rgba(200,220,240,.05) 0%, rgba(100,140,180,.02) 100%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  transform-origin: top center;
  animation: sc-moon 20s ease-in-out infinite alternate;
}
.scn-safe-in-chamber .emily-seated {
  position:absolute; left:45%; bottom:15%; width:10%; height:25%;
  background: linear-gradient(180deg, #c8a888 0%, #a88666 60%, #7a5a40 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform: rotate(0deg);
  animation: sc-seated 14s ease-in-out infinite;
}
.scn-safe-in-chamber .chair {
  position:absolute; left:43%; bottom:10%; width:14%; height:15%;
  background: linear-gradient(180deg, #2a201c 0%, #1a1412 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 20% 20%;
  box-shadow: 0 4px 6px rgba(0,0,0,.4);
}
.scn-safe-in-chamber .still-dust {
  position:absolute; left:0; top:0; width:100%; height:100%;
  background: radial-gradient(ellipse at 70% 30%, rgba(200,210,220,.08) 0%, transparent 60%);
  filter: blur(4px);
  animation: sc-dust 30s linear infinite;
}
@keyframes sc-moon {
  0% { transform: rotate(0deg) translateX(0); opacity: .2; }
  50% { transform: rotate(5deg) translateX(20px); opacity: .5; }
  100% { transform: rotate(-2deg) translateX(-10px); opacity: .3; }
}
@keyframes sc-seated {
  0% { transform: rotate(0deg) translateY(0); }
  30% { transform: rotate(-1deg) translateY(-1px); }
  60% { transform: rotate(1deg) translateY(-2px); }
  100% { transform: rotate(0deg) translateY(0); }
}
@keyframes sc-dust {
  0% { transform: translateY(0) scale(1); }
  25% { transform: translateY(-5px) scale(1.02); }
  50% { transform: translateY(0) scale(.98); }
  75% { transform: translateY(3px) scale(1.01); }
  100% { transform: translateY(0) scale(1); }
}

.scn-resolve-to-explore {
  background:
    radial-gradient(ellipse at 40% 30%, #1a2010 0%, transparent 60%),
    linear-gradient(180deg, #0c0e0a 0%, #1a1c12 50%, #10120c 100%);
}
.scn-resolve-to-explore .turret-stairs {
  position:absolute; left:55%; bottom:0; width:35%; height:100%;
  background: linear-gradient(135deg, #1c1e14 0%, #2a2c1e 40%, #14160e 100%);
  clip-path: polygon(0 0, 100% 0, 90% 100%, 10% 100%);
}
.scn-resolve-to-explore .stone-wall {
  position:absolute; left:10%; right:30%; top:0; height:90%;
  background: linear-gradient(180deg, #2a2c1e 0%, #1c1e14 100%);
  border-radius: 0 0 40% 0 / 0 0 20% 0;
  box-shadow: inset 4px 0 12px rgba(0,0,0,.4);
}
.scn-resolve-to-explore .door-arch {
  position:absolute; left:18%; top:35%; width:20%; height:40%;
  background: linear-gradient(180deg, #3a3420 0%, #2a2416 100%);
  border-radius: 50% 50% 0 0 / 60% 60% 0 0;
  box-shadow: 0 0 20px rgba(0,0,0,.5);
}
.scn-resolve-to-explore .emily-resolute {
  position:absolute; left:35%; bottom:20%; width:8%; height:28%;
  background: linear-gradient(180deg, #c8a888 0%, #a88666 60%, #7a5a40 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform: rotate(5deg);
  animation: re-emily 4s ease-in-out infinite;
}
.scn-resolve-to-explore .lantern-hand {
  position:absolute; left:39%; bottom:38%; width:3%; height:6%;
  background: #2a2416;
  border-radius: 20%;
  transform: rotate(20deg);
  animation: re-arm 4s ease-in-out infinite;
}
.scn-resolve-to-explore .lantern-glow {
  position:absolute; left:39%; bottom:40%; width:5%; height:5%;
  background: radial-gradient(circle, #f0c060 0%, #b08040 60%, #604020 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 8px #c08040, 0 0 60px 16px rgba(192,128,64,.3);
  animation: re-lantern 3s ease-in-out infinite alternate;
}
.scn-resolve-to-explore .shadow-step {
  position:absolute; left:30%; right:50%; bottom:0; height:25%;
  background: linear-gradient(180deg, rgba(0,0,0,.3) 0%, transparent 100%);
  filter: blur(6px);
  animation: re-shadow 6s ease-in-out infinite;
}
.scn-resolve-to-explore .keychain {
  position:absolute; left:34%; bottom:22%; width:2%; height:4%;
  background: #8a7a50;
  border-radius: 10% 10% 30% 30%;
  transform: rotate(10deg);
  animation: re-key 4s ease-in-out infinite 0.5s;
}
@keyframes re-emily {
  0% { transform: rotate(5deg) translateY(0); }
  40% { transform: rotate(4deg) translateY(-3px); }
  70% { transform: rotate(6deg) translateY(-1px); }
  100% { transform: rotate(5deg) translateY(0); }
}
@keyframes re-arm {
  0% { transform: rotate(20deg); }
  50% { transform: rotate(25deg); }
  100% { transform: rotate(20deg); }
}
@keyframes re-lantern {
  0% { opacity: .7; box-shadow: 0 0 20px 6px #b08040; }
  50% { opacity: 1; box-shadow: 0 0 40px 12px #f0c060, 0 0 80px 20px rgba(240,192,96,.4); }
  100% { opacity: .8; box-shadow: 0 0 25px 8px #b08040; }
}
@keyframes re-shadow {
  0% { opacity: .3; transform: scaleX(1); }
  30% { opacity: .6; transform: scaleX(1.1); }
  70% { opacity: .4; transform: scaleX(.9); }
  100% { opacity: .3; transform: scaleX(1); }
}
@keyframes re-key {
  0% { transform: rotate(10deg) translateY(0); opacity: .8; }
  50% { transform: rotate(15deg) translateY(-2px); opacity: 1; }
  100% { transform: rotate(10deg) translateY(0); opacity: .8; }
}

/* Scene 1: morano-pleads (tension, dim interior) */
.scn-morano-pleads {
  background:
    linear-gradient(180deg, #1a1210 0%, #2a1e1a 40%, #1a1412 100%),
    radial-gradient(ellipse at 50% 60%, #3a2a1a 0%, transparent 70%);
}
.scn-morano-pleads .bg-deep   { position:absolute; inset:0; background: linear-gradient(135deg, #0d0808 0%, #1a1210 50%, #2a1e1a 100%); }
.scn-morano-pleads .wall-left { position:absolute; left:0; top:10%; width:28%; height:80%; background: linear-gradient(90deg, #1a1412 0%, #2a1e1a 100%); border-radius: 0 4% 4% 0; box-shadow: inset 0 0 30px rgba(0,0,0,.6); }
.scn-morano-pleads .wall-right{ position:absolute; right:0; top:10%; width:28%; height:80%; background: linear-gradient(270deg, #1a1412 0%, #2a1e1a 100%); border-radius: 4% 0 0 4%; box-shadow: inset 0 0 30px rgba(0,0,0,.6); }
.scn-morano-pleads .floor    { position:absolute; bottom:0; left:10%; right:10%; height:12%; background: linear-gradient(180deg, #2a1e1a 0%, #1a1210 100%); border-radius: 40% 40% 0 0 / 100% 100% 0 0; }
.scn-morano-pleads .candle   { position:absolute; bottom:30%; left:50%; width:6px; height:20px; transform:translateX(-50%); background: linear-gradient(180deg, #e8c080 0%, #b08040 60%, #5a3a1a 100%); border-radius: 2px; box-shadow: 0 0 12px 4px rgba(200,150,80,.4); animation: mp-candle 5s ease-in-out infinite alternate; }
.scn-morano-pleads .morano-fig{ position:absolute; bottom:14%; left:30%; width:20px; height:50px; background: linear-gradient(180deg, #1a1412 0%, #0d0808 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mp-morano 4s ease-in-out infinite; }
.scn-morano-pleads .emily-fig { position:absolute; bottom:14%; right:28%; width:18px; height:48px; background: linear-gradient(180deg, #2a1e1a 0%, #1a1210 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mp-emily 4s ease-in-out infinite; }
.scn-morano-pleads .shadow   { position:absolute; bottom:12%; left:24%; right:24%; height:6%; background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,.6) 0%, transparent 100%); filter: blur(3px); animation: mp-shadow 5s ease-in-out infinite; }
.scn-morano-pleads .glow     { position:absolute; top:25%; left:40%; right:40%; bottom:25%; background: radial-gradient(circle at 50% 60%, rgba(200,150,80,.15) 0%, transparent 70%); pointer-events:none; animation: mp-glow 6s ease-in-out infinite; }
@keyframes mp-candle { 0% { transform: translateX(-50%) scaleY(1); opacity:.9 } 50% { transform: translateX(-50%) scaleY(1.05); opacity:1 } 100% { transform: translateX(-50%) scaleY(.95); opacity:.85 } }
@keyframes mp-morano { 0% { transform: translateX(0) rotate(-2deg) } 33% { transform: translateX(-2px) rotate(2deg) } 66% { transform: translateX(1px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes mp-emily  { 0% { transform: translateX(0) rotate(1deg) } 50% { transform: translateX(2px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes mp-shadow { 0% { opacity:.4 } 50% { opacity:.6 } 100% { opacity:.4 } }
@keyframes mp-glow   { 0% { opacity:.3 } 33% { opacity:.5 } 66% { opacity:.2 } 100% { opacity:.4 } }

/* Scene 2: emily-turns-on-morano (anger, dim interior) */
.scn-emily-turns-on-morano {
  background:
    linear-gradient(180deg, #1a1210 0%, #2a1e1a 50%, #1a1412 100%),
    radial-gradient(ellipse at 30% 60%, #3a2a1a 0%, transparent 70%);
}
.scn-emily-turns-on-morano .bg-deep     { position:absolute; inset:0; background: linear-gradient(135deg, #0d0808 0%, #1a1210 60%, #2a1e1a 100%); }
.scn-emily-turns-on-morano .wall-bg     { position:absolute; left:50%; top:5%; width:50%; height:85%; transform:translateX(-50%); background: linear-gradient(90deg, #1a1412 0%, #2a1e1a 100%); border-radius: 4%; }
.scn-emily-turns-on-morano .floor-plank { position:absolute; bottom:0; left:0; right:0; height:10%; background: linear-gradient(180deg, #2a1e1a 0%, #1a1210 100%); border-radius: 20% 20% 0 0; }
.scn-emily-turns-on-morano .morano-sil  { position:absolute; bottom:12%; left:20%; width:22px; height:52px; background: linear-gradient(180deg, #1a1412 0%, #0d0808 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: et-morano 3s ease-in-out infinite; }
.scn-emily-turns-on-morano .emily-sil   { position:absolute; bottom:12%; right:30%; width:20px; height:50px; background: linear-gradient(180deg, #2a1e1a 0%, #1a1210 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: et-emily 3s ease-in-out infinite; }
.scn-emily-turns-on-morano .emily-arm   { position:absolute; bottom:30%; right:38%; width:20px; height:4px; background: #2a1e1a; border-radius: 50%; transform-origin: right center; animation: et-arm 3.5s ease-in-out infinite; }
.scn-emily-turns-on-morano .candle-flame{ position:absolute; bottom:30%; left:48%; width:8px; height:14px; background: radial-gradient(circle at 50% 20%, #ffd080 0%, #b08040 60%, transparent 100%); border-radius: 50%; box-shadow: 0 0 20px 6px rgba(200,150,80,.5); animation: et-flame 2s ease-in-out infinite alternate; }
.scn-emily-turns-on-morano .light-ray   { position:absolute; left:20%; right:30%; bottom:20%; top:30%; background: linear-gradient(135deg, rgba(200,150,80,.08) 0%, transparent 100%); pointer-events:none; animation: et-ray 4s ease-in-out infinite; }
@keyframes et-morano { 0% { transform: translateX(0) rotate(2deg) } 50% { transform: translateX(3px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes et-emily  { 0% { transform: translateX(0) rotate(-3deg) } 33% { transform: translateX(-2px) rotate(6deg) } 66% { transform: translateX(1px) rotate(-4deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes et-arm    { 0% { transform: rotate(40deg) } 50% { transform: rotate(60deg) scaleX(1.1) } 100% { transform: rotate(45deg) } }
@keyframes et-flame  { 0% { transform: scaleY(1); opacity:.9 } 50% { transform: scaleY(1.2); opacity:1 } 100% { transform: scaleY(.85); opacity:.8 } }
@keyframes et-ray    { 0% { opacity:.3 } 50% { opacity:.5 } 100% { opacity:.3 } }

/* Scene 3: morano-urges-flight (desperate, dim interior with door) */
.scn-morano-urges-flight {
  background:
    linear-gradient(180deg, #1a1210 0%, #2a1e1a 60%, #1a1412 100%),
    radial-gradient(ellipse at 70% 50%, #3a2a1a 0%, transparent 70%);
}
.scn-morano-urges-flight .bg-dark      { position:absolute; inset:0; background: linear-gradient(135deg, #0d0808 0%, #1a1210 40%, #2a1e1a 100%); }
.scn-morano-urges-flight .door         { position:absolute; left:60%; bottom:20%; width:30%; height:70%; background: linear-gradient(180deg, #2a1e1a 0%, #1a1412 100%); border: 2px solid #3a2a1a; border-radius: 4% 4% 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,.5); }
.scn-morano-urges-flight .door-frame   { position:absolute; left:58%; bottom:18%; width:34%; height:74%; border: 4px solid #4a3a2a; border-radius: 6% 6% 0 0; box-shadow: 0 0 12px rgba(0,0,0,.4); }
.scn-morano-urges-flight .morano-kneel { position:absolute; bottom:10%; left:35%; width:22px; height:40px; background: linear-gradient(180deg, #1a1412 0%, #0d0808 100%); border-radius: 60% 60% 20% 20% / 80% 80% 20% 20%; transform-origin: bottom center; animation: mu-kneel 4s ease-in-out infinite; }
.scn-morano-urges-flight .emily-stand  { position:absolute; bottom:10%; left:65%; width:18px; height:50px; background: linear-gradient(180deg, #2a1e1a 0%, #1a1210 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mu-stand 3.5s ease-in-out infinite; }
.scn-morano-urges-flight .lantern-glow{ position:absolute; bottom:28%; left:40%; width:10px; height:16px; background: radial-gradient(circle at 50% 50%, #ffd080 0%, #b08040 60%, transparent 100%); border-radius: 50%; box-shadow: 0 0 30px 8px rgba(200,150,80,.6); animation: mu-lantern 6s ease-in-out infinite; }
.scn-morano-urges-flight .shadow-pool { position:absolute; bottom:8%; left:30%; right:30%; height:4%; background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,.5) 0%, transparent 100%); filter: blur(3px); animation: mu-pool 5s ease-in-out infinite; }
.scn-morano-urges-flight .crack-light { position:absolute; left:55%; bottom:20%; width:40%; height:4%; background: linear-gradient(90deg, rgba(200,150,80,.2) 0%, transparent 100%); border-radius: 50%; filter: blur(2px); animation: mu-crack 7s ease-in-out infinite; }
@keyframes mu-kneel { 0% { transform: translateY(0) rotate(3deg) } 50% { transform: translateY(-2px) rotate(-5deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes mu-stand { 0% { transform: translateX(0) rotate(-1deg) } 33% { transform: translateX(2px) rotate(2deg) } 66% { transform: translateX(-1px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes mu-lantern { 0% { opacity:.7; transform: scale(1) } 50% { opacity:1; transform: scale(1.1) } 100% { opacity:.8; transform: scale(.95) } }
@keyframes mu-pool { 0% { opacity:.4; transform: scaleY(1) } 50% { opacity:.6; transform: scaleY(1.2) } 100% { opacity:.4; transform: scaleY(1) } }
@keyframes mu-crack { 0% { opacity:.2 } 50% { opacity:.4 } 100% { opacity:.2 } }

/* Scene 4: emily-overcome (despair, dim interior, woman in chair) */
.scn-emily-overcome {
  background:
    linear-gradient(180deg, #1a1210 0%, #2a1e1a 50%, #1a1412 100%),
    radial-gradient(ellipse at 50% 70%, #3a2a1a 0%, transparent 70%);
}
.scn-emily-overcome .bg-shadow   { position:absolute; inset:0; background: linear-gradient(135deg, #0d0808 0%, #1a1210 50%, #2a1e1a 100%); }
.scn-emily-overcome .window-arch { position:absolute; right:10%; top:8%; width:25%; height:50%; background: linear-gradient(180deg, #1a1210 0%, #0d0808 100%); border-radius: 50% 50% 10% 10% / 80% 80% 10% 10%; border: 3px solid #2a1e1a; box-shadow: inset 0 0 20px rgba(0,0,0,.5); }
.scn-emily-overcome .chair       { position:absolute; bottom:8%; left:30%; right:30%; height:40%; background: linear-gradient(180deg, #2a1e1a 0%, #1a1210 100%); border-radius: 8% 8% 4% 4%; box-shadow: 0 4px 12px rgba(0,0,0,.6); animation: eo-chair 8s ease-in-out infinite; }
.scn-emily-overcome .emily-slump { position:absolute; bottom:10%; left:34%; right:34%; height:38%; background: linear-gradient(180deg, #2a1e1a 0%, #1a1210 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: eo-slump 6s ease-in-out infinite; }
.scn-emily-overcome .drape-left  { position:absolute; left:5%; top:20%; width:20%; height:60%; background: linear-gradient(180deg, #2a1e1a 0%, #1a1412 100%); border-radius: 0 60% 60% 0 / 0 40% 40% 0; animation: eo-drape-l 10s ease-in-out infinite; }
.scn-emily-overcome .drape-right { position:absolute; right:5%; top:20%; width:20%; height:60%; background: linear-gradient(180deg, #2a1e1a 0%, #1a1412 100%); border-radius: 60% 0 0 60% / 40% 0 0 40%; animation: eo-drape-r 12s ease-in-out infinite; }
.scn-emily-overcome .glimmer     { position:absolute; bottom:25%; left:45%; width:6px; height:6px; background: radial-gradient(circle, rgba(200,150,80,.2) 0%, transparent 100%); border-radius: 50%; box-shadow: 0 0 10px 2px rgba(200,150,80,.1); animation: eo-glimmer 4s ease-in-out infinite alternate; }
@keyframes eo-chair { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes eo-slump { 0% { transform: translateY(0) rotate(-2deg) scaleY(1) } 33% { transform: translateY(3px) rotate(4deg) scaleY(.95) } 66% { transform: translateY(-1px) rotate(-1deg) scaleY(1.02) } 100% { transform: translateY(0) rotate(0) scaleY(1) } }
@keyframes eo-drape-l { 0% { transform: translateX(0) skewY(0) } 50% { transform: translateX(-3px) skewY(2deg) } 100% { transform: translateX(0) skewY(0) } }
@keyframes eo-drape-r { 0% { transform: translateX(0) skewY(0) } 50% { transform: translateX(3px) skewY(-2deg) } 100% { transform: translateX(0) skewY(0) } }
@keyframes eo-glimmer { 0% { opacity:.2; transform: scale(1) } 50% { opacity:.4; transform: scale(1.2) } 100% { opacity:.1; transform: scale(.8) } }

.scn-montoni-defends {
  background: linear-gradient(180deg, #1a0e0a 0%, #2b1a12 40%, #3d261c 100%),
              radial-gradient(ellipse at 60% 70%, #4a2a1a 0%, transparent 60%);
}
.scn-montoni-defends .room-bg {
  position: absolute; inset: 0; background: linear-gradient(135deg, #1f1310 0%, #2c1c14 50%, #1a0e0a 100%);
  animation: md-bg 8s ease-in-out infinite alternate;
}
.scn-montoni-defends .table {
  position: absolute; bottom: 22%; left: 20%; width: 60%; height: 8%;
  background: linear-gradient(180deg, #4a3024 0%, #2a1a12 100%);
  border-radius: 4px; box-shadow: 0 4px 12px rgba(0,0,0,0.6);
  animation: md-table 6s ease-in-out infinite;
}
.scn-montoni-defends .montoni {
  position: absolute; bottom: 30%; left: 32%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #2a1e1a 0%, #120e0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: md-montoni 4s ease-in-out infinite;
}
.scn-montoni-defends .verezzi {
  position: absolute; bottom: 28%; right: 30%; width: 18px; height: 44px;
  background: linear-gradient(180deg, #1e1612 0%, #0c0806 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: md-verezzi 5s ease-in-out infinite alternate;
}
.scn-montoni-defends .candle {
  position: absolute; bottom: 30%; left: 48%; width: 6px; height: 20px;
  background: linear-gradient(180deg, #e8d4b0 0%, #c4a07a 100%);
  border-radius: 2px;
}
.scn-montoni-defends .flame {
  position: absolute; bottom: 48%; left: 48.5%; width: 8px; height: 14px;
  background: radial-gradient(ellipse 50% 60%, #ffcc66 0%, #ff8833 50%, transparent 100%);
  box-shadow: 0 0 16px 6px #ff8833, 0 0 32px 12px rgba(255,136,51,0.4);
  animation: md-flame 0.3s ease-in-out infinite alternate;
}
.scn-montoni-defends .shadow {
  position: absolute; bottom: 22%; left: 10%; width: 80%; height: 20%;
  background: linear-gradient(180deg, rgba(0,0,0,0.7) 0%, transparent 100%);
  filter: blur(8px);
  animation: md-shadow 6s ease-in-out infinite;
}
.scn-montoni-defends .smoke {
  position: absolute; top: 30%; left: 45%; width: 40px; height: 30px;
  background: radial-gradient(ellipse, rgba(200,180,160,0.15) 0%, transparent 100%);
  filter: blur(12px);
  animation: md-smoke 10s linear infinite;
}
@keyframes md-bg { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes md-table { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes md-montoni { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(2px) rotate(-2deg) } 50% { transform: translateX(0) rotate(1deg) } 75% { transform: translateX(-2px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes md-verezzi { 0% { transform: translateX(0) rotate(1deg) } 100% { transform: translateX(-2px) rotate(-1deg) } }
@keyframes md-flame { 0% { transform: scaleY(1) translateY(0); opacity: 0.9 } 100% { transform: scaleY(1.15) translateY(-2px); opacity: 1 } }
@keyframes md-shadow { 0%,100% { opacity: 0.6 } 50% { opacity: 0.8 } }
@keyframes md-smoke { 0% { transform: translateY(0) scale(1); opacity: 0.4 } 50% { transform: translateY(-20px) scale(1.3); opacity: 0.1 } 100% { transform: translateY(-40px) scale(1.6); opacity: 0 } }

.scn-story-of-castle {
  background: linear-gradient(180deg, #0d0b0a 0%, #1a1410 50%, #2c221e 100%),
              radial-gradient(ellipse at 50% 60%, #3a2a1e 0%, transparent 70%);
}
.scn-story-of-castle .castle-bg {
  position: absolute; inset: 0; background: linear-gradient(135deg, #14100e 0%, #1e1814 50%, #0e0c0a 100%);
  animation: sc-bg 12s ease-in-out infinite alternate;
}
.scn-story-of-castle .stone-wall {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #2a221e 0%, #161210 100%);
  box-shadow: inset 0 4px 12px rgba(0,0,0,0.5);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
  animation: sc-wall 18s ease-in-out infinite alternate;
}
.scn-story-of-castle .window-arch {
  position: absolute; top: 20%; left: 35%; width: 30%; height: 35%;
  background: radial-gradient(ellipse at 50% 100%, #0a0806 0%, #1a1410 60%);
  border: 4px solid #2a1e16;
  border-radius: 50% / 100% 100% 0 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.8);
}
.scn-story-of-castle .torch {
  position: absolute; bottom: 40%; left: 25%; width: 6px; height: 24px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a12 100%);
  border-radius: 2px;
}
.scn-story-of-castle .torch-flame {
  position: absolute; bottom: 62%; left: 25.5%; width: 12px; height: 18px;
  background: radial-gradient(ellipse 50% 60%, #ffcc44 0%, #ff8822 50%, transparent 100%);
  box-shadow: 0 0 18px 6px #ff8822, 0 0 36px 12px rgba(255,136,34,0.4);
  animation: sc-flame 0.4s ease-in-out infinite alternate;
}
.scn-story-of-castle .montoni-figure {
  position: absolute; bottom: 24%; left: 45%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #2a201e 0%, #0e0c0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sc-figure 6s ease-in-out infinite;
}
.scn-story-of-castle .shadow-beam {
  position: absolute; top: 0; left: 20%; width: 10%; height: 100%;
  background: linear-gradient(180deg, rgba(0,0,0,0.6) 0%, transparent 100%);
  filter: blur(6px);
  animation: sc-beam 8s ease-in-out infinite alternate;
}
@keyframes sc-bg { 0% { opacity: 0.85 } 50% { opacity: 1 } 100% { opacity: 0.9 } }
@keyframes sc-wall { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes sc-flame { 0% { transform: scaleY(1) translateY(0); opacity: 0.95 } 100% { transform: scaleY(1.2) translateY(-3px); opacity: 1 } }
@keyframes sc-figure { 0%,100% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(1px) rotate(1deg) } 50% { transform: translateX(0) rotate(-1deg) } 75% { transform: translateX(-1px) rotate(0deg) } }
@keyframes sc-beam { 0% { opacity: 0.3 } 50% { opacity: 0.5 } 100% { opacity: 0.2 } }

.scn-mysterious-voice {
  background: linear-gradient(180deg, #0e0c0a 0%, #1a1612 40%, #2c241e 100%),
              radial-gradient(ellipse at 40% 50%, #3a2a1a 0%, transparent 60%);
}
.scn-mysterious-voice .hall-bg {
  position: absolute; inset: 0; background: linear-gradient(135deg, #16120e 0%, #1e1814 50%, #0e0c0a 100%);
  animation: mv-bg 10s ease-in-out infinite alternate;
}
.scn-mysterious-voice .long-table {
  position: absolute; bottom: 20%; left: 10%; width: 80%; height: 6%;
  background: linear-gradient(180deg, #3a2a1e 0%, #1e1410 100%);
  border-radius: 4px; box-shadow: 0 4px 12px rgba(0,0,0,0.7);
  animation: mv-table 7s ease-in-out infinite;
}
.scn-mysterious-voice .chair {
  position: absolute; bottom: 26%; left: 25%; width: 14px; height: 28px;
  background: linear-gradient(180deg, #2a1e16 0%, #10100e 100%);
  border-radius: 4px 4px 2px 2px;
  transform-origin: bottom center;
  animation: mv-chair 5s ease-in-out infinite;
}
.scn-mysterious-voice .guest-figures {
  position: absolute; bottom: 24%; left: 35%; width: 40%; height: 20%;
  background: repeating-linear-gradient(90deg, transparent 0px 10px, rgba(30,24,20,0.6) 10px 14px, transparent 14px 24px);
  mask: linear-gradient(180deg, #000 0%, transparent 100%);
  animation: mv-guests 8s ease-in-out infinite alternate;
}
.scn-mysterious-voice .montoni-stand {
  position: absolute; bottom: 26%; left: 55%; width: 20px; height: 46px;
  background: linear-gradient(180deg, #241a16 0%, #0e0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: mv-montoni 6s ease-in-out infinite;
}
.scn-mysterious-voice .phantom-voice {
  position: absolute; top: 30%; left: 50%; width: 30px; height: 40px;
  background: radial-gradient(ellipse, rgba(100,200,100,0.4) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(10px);
  animation: mv-phantom 4s ease-in-out infinite alternate;
}
.scn-mysterious-voice .candle-row {
  position: absolute; bottom: 26%; left: 20%; width: 60%; height: 4px;
  display: flex; justify-content: space-around;
}
.scn-mysterious-voice .flicker {
  position: absolute; top: 0; left: 0; width: 100%; height: 100%;
  background: radial-gradient(ellipse at 20% 80%, #ffdd88 0%, transparent 60%);
  opacity: 0.3;
  animation: mv-flicker 0.5s ease-in-out infinite alternate;
}
@keyframes mv-bg { 0% { opacity: 0.85 } 50% { opacity: 0.95 } 100% { opacity: 0.8 } }
@keyframes mv-table { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }
@keyframes mv-chair { 0% { transform: rotate(0deg) } 25% { transform: rotate(2deg) } 75% { transform: rotate(-2deg) } 100% { transform: rotate(0deg) } }
@keyframes mv-guests { 0% { opacity: 0.6 } 50% { opacity: 0.8 } 100% { opacity: 0.5 } }
@keyframes mv-montoni { 0%,100% { transform: translateX(0) } 25% { transform: translateX(-2px) rotate(-1deg) } 75% { transform: translateX(2px) rotate(1deg) } }
@keyframes mv-phantom { 0% { transform: scale(1) translateY(0); opacity: 0.3 } 50% { transform: scale(1.3) translateY(-10px); opacity: 0.6 } 100% { transform: scale(1) translateY(0); opacity: 0.2 } }
@keyframes mv-flicker { 0% { opacity: 0.2 } 100% { opacity: 0.4 } }

.scn-mystery-deepens {
  background: linear-gradient(180deg, #0a0806 0%, #14100e 40%, #1e1814 100%),
              radial-gradient(ellipse at 50% 30%, #2a1a12 0%, transparent 70%);
}
.scn-mystery-deepens .chamber-bg {
  position: absolute; inset: 0; background: linear-gradient(135deg, #120e0c 0%, #1a1410 50%, #0c0a08 100%);
  animation: mdb-bg 14s ease-in-out infinite alternate;
}
.scn-mystery-deepens .door {
  position: absolute; bottom: 0; left: 40%; width: 20%; height: 40%;
  background: linear-gradient(180deg, #2a1e18 0%, #1a120e 100%);
  border-radius: 2px 2px 0 0;
  box-shadow: inset 0 0 12px rgba(0,0,0,0.8);
  border: 2px solid #1a120e;
}
.scn-mystery-deepens .figure-search {
  position: absolute; bottom: 18%; left: 25%; width: 16px; height: 40px;
  background: linear-gradient(180deg, #1e1612 0%, #0a0806 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: mdb-figure 6s ease-in-out infinite;
}
.scn-mystery-deepens .apparition {
  position: absolute; top: 20%; left: 55%; width: 28px; height: 36px;
  background: radial-gradient(ellipse, rgba(180,220,255,0.25) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(12px);
  animation: mdb-apparition 5s ease-in-out infinite alternate;
}
.scn-mystery-deepens .floor-pool {
  position: absolute; bottom: 0; left: 10%; width: 80%; height: 10%;
  background: linear-gradient(180deg, rgba(30,24,20,0.4) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(6px);
  animation: mdb-pool 8s ease-in-out infinite;
}
.scn-mystery-deepens .wall-torch {
  position: absolute; bottom: 40%; left: 15%; width: 5px; height: 20px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a12 100%);
  border-radius: 2px;
}
.scn-mystery-deepens .glow {
  position: absolute; bottom: 58%; left: 16%; width: 10px; height: 14px;
  background: radial-gradient(ellipse 50% 60%, #ffcc44 0%, #ff8822 50%, transparent 100%);
  box-shadow: 0 0 14px 4px #ff8822, 0 0 28px 8px rgba(255,136,34,0.3);
  animation: mdb-glow 0.4s ease-in-out infinite alternate;
}
@keyframes mdb-bg { 0% { opacity: 0.8 } 50% { opacity: 0.95 } 100% { opacity: 0.85 } }
@keyframes mdb-figure { 0%,100% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(3px) rotate(-2deg) } 75% { transform: translateX(-3px) rotate(2deg) } }
@keyframes mdb-apparition { 0% { transform: scale(0.8) translateY(0); opacity: 0.2 } 50% { transform: scale(1.2) translateY(-10px); opacity: 0.5 } 100% { transform: scale(0.9) translateY(5px); opacity: 0.1 } }
@keyframes mdb-pool { 0%,100% { opacity: 0.4 } 50% { opacity: 0.6 } }
@keyframes mdb-glow { 0% { transform: scaleY(1); opacity: 0.9 } 100% { transform: scaleY(1.2); opacity: 1 } }

/* noise-interrupts - firelit corridor with figure and lamp */
.scn-noise-interrupts {
  background: linear-gradient(180deg, #2b1a0e 0%, #3d2614 40%, #1f1209 100%), radial-gradient(ellipse at 50% 70%, #d97a3a 0%, transparent 60%);
}
.scn-noise-interrupts .gallery-bg {
  position: absolute; inset: 0 0 15% 0;
  background: linear-gradient(90deg, #1a0f06 0%, #4a2e16 30%, #3a2212 70%, #1a0f06 100%);
  mask-image: linear-gradient(90deg, transparent 20%, #000 30%, #000 70%, transparent 80%);
  animation: ni-flicker-bg 5s ease-in-out infinite alternate;
}
.scn-noise-interrupts .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #3a2414 0%, #1a0f06 100%);
  border-top: 2px solid #5a3a1a;
}
.scn-noise-interrupts .arch {
  position: absolute; bottom: 15%; width: 30%; height: 50%;
  background: radial-gradient(ellipse at 50% 100%, transparent 60%, #1a0f06 61%);
  border-radius: 50% 50% 0 0 / 60% 60% 0 0;
  box-shadow: inset 0 -20px 30px rgba(0,0,0,0.6);
}
.scn-noise-interrupts .arch-l { left: 5%; animation: ni-sway-arch 8s ease-in-out infinite; }
.scn-noise-interrupts .arch-r { right: 5%; animation: ni-sway-arch 8s ease-in-out infinite reverse; }
.scn-noise-interrupts .figure-walk {
  position: absolute; bottom: 12%; left: 40%; width: 14px; height: 40px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0e0702 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: ni-walk 2.5s ease-in-out infinite;
}
.scn-noise-interrupts .lantern-glow {
  position: absolute; bottom: 20%; left: 42%; width: 10px; height: 10px;
  background: radial-gradient(circle, #ffb347 0%, #e08020 50%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 15px rgba(255,180,60,0.5), 0 0 60px 30px rgba(255,160,40,0.2);
  animation: ni-lantern-pulse 2s ease-in-out infinite alternate;
}
.scn-noise-interrupts .lantern-body {
  position: absolute; bottom: 20%; left: 42%; width: 6px; height: 10px;
  background: linear-gradient(180deg, #c07030 0%, #804020 100%);
  border-radius: 20%;
  transform: translate(2px, -4px);
}
@keyframes ni-flicker-bg { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes ni-sway-arch { 0% { transform: rotateZ(0deg); } 50% { transform: rotateZ(1deg); } 100% { transform: rotateZ(-1deg); } }
@keyframes ni-walk { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(5px) rotate(1deg); } 50% { transform: translateX(10px) rotate(-1deg); } 75% { transform: translateX(15px) rotate(2deg); } 100% { transform: translateX(20px) rotate(0deg); } }
@keyframes ni-lantern-pulse { 0% { box-shadow: 0 0 20px 10px rgba(255,180,60,0.4); } 50% { box-shadow: 0 0 35px 20px rgba(255,200,80,0.7); } 100% { box-shadow: 0 0 25px 12px rgba(255,180,60,0.5); } }

/* fear-relieved - interior with fireplace and three figures */
.scn-fear-relieved {
  background: linear-gradient(180deg, #2c1a0e 0%, #3f2614 50%, #1f1209 100%), radial-gradient(ellipse at 30% 80%, #e06030 0%, transparent 70%);
}
.scn-fear-relieved .room-bg {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #2a1a0e 0%, #3a2a1a 60%, #1a0f06 100%);
  border-bottom: 2px solid #5a3a1a;
}
.scn-fear-relieved .fireplace {
  position: absolute; bottom: 20%; left: 10%; width: 25%; height: 45%;
  background: linear-gradient(180deg, #4a2e16 0%, #2a1a0a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.6);
}
.scn-fear-relieved .fire-flames {
  position: absolute; bottom: 22%; left: 14%; width: 17%; height: 25%;
  background: linear-gradient(180deg, #ff7a2a 0%, #e05020 40%, #a03010 100%);
  border-radius: 30% 30% 10% 10% / 60% 60% 20% 20%;
  animation: fr-flame 1.5s ease-in-out infinite alternate;
}
.scn-fear-relieved .figure-emily {
  position: absolute; bottom: 18%; left: 45%; width: 16px; height: 44px;
  background: linear-gradient(180deg, #3a1a0a 0%, #1a0a02 100%);
  border-radius: 45% 45% 35% 35% / 60% 60% 35% 35%;
  transform: scaleX(-1);
  animation: fr-tremble 3s ease-in-out infinite;
}
.scn-fear-relieved .figure-annette {
  position: absolute; bottom: 18%; left: 55%; width: 14px; height: 40px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 40% 40% 30% 30% / 55% 55% 30% 30%;
  animation: fr-tremble 3s ease-in-out infinite 0.5s;
}
.scn-fear-relieved .figure-caterina {
  position: absolute; bottom: 18%; left: 35%; width: 14px; height: 38px;
  background: linear-gradient(180deg, #2a1a0a 0%, #0e0702 100%);
  border-radius: 40% 40% 30% 30% / 55% 55% 30% 30%;
  animation: fr-tremble 3s ease-in-out infinite 1s;
}
.scn-fear-relieved .candle-glow {
  position: absolute; bottom: 30%; left: 50%; width: 8px; height: 8px;
  background: radial-gradient(circle, #ffcc66 0%, transparent 60%);
  border-radius: 50%;
  box-shadow: 0 0 20px 10px rgba(255,200,80,0.5);
  animation: fr-candle 2s ease-in-out infinite alternate;
}
@keyframes fr-flame { 0% { transform: scaleY(1) scaleX(1); } 50% { transform: scaleY(1.2) scaleX(0.9); } 100% { transform: scaleY(0.9) scaleX(1.1); } }
@keyframes fr-tremble { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-1px) rotate(1deg); } 50% { transform: translateY(0) rotate(-1deg); } 75% { transform: translateY(-2px) rotate(0deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes fr-candle { 0% { opacity: 0.8; box-shadow: 0 0 15px 8px rgba(255,200,80,0.4); } 50% { opacity: 1; box-shadow: 0 0 25px 15px rgba(255,220,100,0.7); } 100% { opacity: 0.9; box-shadow: 0 0 18px 10px rgba(255,200,80,0.5); } }

/* alone-with-thoughts - solitary figure in castle overlooking mountains */
.scn-alone-with-thoughts {
  background: linear-gradient(180deg, #0c0508 0%, #1a0d12 30%, #0f0a15 100%), radial-gradient(ellipse at 50% 40%, #1a2a3a 0%, transparent 60%);
}
.scn-alone-with-thoughts .night-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #0a0e1a 0%, #1a1a2a 50%, #2a2a3a 100%);
  animation: aw-sky 20s ease-in-out infinite alternate;
}
.scn-alone-with-thoughts .mountains {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%);
  border-radius: 30% 70% 0 0 / 50% 80% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.6);
  animation: aw-mountains 30s ease-in-out infinite alternate;
}
.scn-alone-with-thoughts .castle-tower {
  position: absolute; bottom: 30%; left: 40%; width: 60px; height: 100px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 5% 5% 5% 5%;
  box-shadow: 0 0 20px rgba(0,0,0,0.8);
  border-left: 2px solid #3a2a2a;
}
.scn-alone-with-thoughts .window-frame {
  position: absolute; bottom: 50%; left: 43%; width: 12px; height: 20px;
  background: transparent;
  border: 2px solid #3a2a2a;
  border-radius: 2px;
  box-shadow: inset 0 0 10px rgba(255,200,100,0.2);
}
.scn-alone-with-thoughts .figure-silhouette {
  position: absolute; bottom: 42%; left: 44%; width: 10px; height: 28px;
  background: #0a0505;
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: aw-turn 12s ease-in-out infinite;
}
.scn-alone-with-thoughts .fire-glow-bottom {
  position: absolute; bottom: 0; left: 20%; width: 60%; height: 20%;
  background: radial-gradient(ellipse at 50% 100%, rgba(200,120,40,0.15) 0%, transparent 100%);
  animation: aw-glow 4s ease-in-out infinite alternate;
}
@keyframes aw-sky { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes aw-mountains { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-2px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes aw-turn { 0% { transform: rotateY(0deg) translateX(0); } 25% { transform: rotateY(20deg) translateX(2px); } 50% { transform: rotateY(0deg) translateX(0); } 75% { transform: rotateY(-20deg) translateX(-2px); } 100% { transform: rotateY(0deg) translateX(0); } }
@keyframes aw-glow { 0% { opacity: 0.3; } 50% { opacity: 0.6; } 100% { opacity: 0.4; } }

/* reason-vs-fear - dim interior with two figures, one dominating */
.scn-reason-vs-fear {
  background: linear-gradient(180deg, #130a06 0%, #1a0f0a 40%, #0a0604 100%), radial-gradient(ellipse at 40% 60%, #1a1a0a 0%, transparent 70%);
}
.scn-reason-vs-fear .dim-wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #1a100a 0%, #0f0804 100%);
  border-bottom: 1px solid #2a1a10;
}
.scn-reason-vs-fear .table-surface {
  position: absolute; bottom: 25%; left: 10%; right: 10%; height: 10%;
  background: linear-gradient(180deg, #2a1a0e 0%, #1a0f06 100%);
  border-radius: 5% 5% 0 0;
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.5);
}
.scn-reason-vs-fear .candle {
  position: absolute; bottom: 32%; left: 20%; width: 6px; height: 18px;
  background: linear-gradient(180deg, #e0c070 0%, #c0a050 100%);
  border-radius: 10%;
  transform: rotate(5deg);
  box-shadow: 0 0 10px 5px rgba(255,200,100,0.3);
  animation: rf-candle-flicker 3s ease-in-out infinite;
}
.scn-reason-vs-fear .figure-montoni {
  position: absolute; bottom: 20%; left: 30%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #2a1a12 0%, #0a0502 100%);
  border-radius: 45% 45% 30% 30% / 60% 60% 30% 30%;
  transform: scaleX(-1);
  animation: rf-lean 5s ease-in-out infinite alternate;
}
.scn-reason-vs-fear .figure-madame {
  position: absolute; bottom: 18%; left: 55%; width: 14px; height: 38px;
  background: linear-gradient(180deg, #1a120a 0%, #0a0602 100%);
  border-radius: 40% 40% 30% 30% / 55% 55% 30% 30%;
  transform: scaleX(1) translateX(0);
  animation: rf-cower 5s ease-in-out infinite;
}
.scn-reason-vs-fear .shadow-pool {
  position: absolute; bottom: 15%; left: 40%; width: 30%; height: 20%;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.6) 0%, transparent 100%);
  animation: rf-shadow 8s ease-in-out infinite alternate;
}
.scn-reason-vs-fear .glow-small {
  position: absolute; bottom: 33%; left: 19%; width: 12px; height: 12px;
  background: radial-gradient(circle, rgba(255,200,100,0.4) 0%, transparent 70%);
  border-radius: 50%;
  animation: rf-glow-pulse 2s ease-in-out infinite alternate;
}
@keyframes rf-candle-flicker { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes rf-lean { 0% { transform: rotate(0deg) scaleX(-1); } 50% { transform: rotate(2deg) scaleX(-1); } 100% { transform: rotate(-1deg) scaleX(-1); } }
@keyframes rf-cower { 0% { transform: translateX(0) scaleY(1); } 50% { transform: translateX(-3px) scaleY(0.95); } 100% { transform: translateX(0) scaleY(1); } }
@keyframes rf-shadow { 0% { opacity: 0.5; transform: scaleX(1); } 50% { opacity: 0.8; transform: scaleX(1.1); } 100% { opacity: 0.5; transform: scaleX(1); } }
@keyframes rf-glow-pulse { 0% { opacity: 0.3; } 50% { opacity: 0.7; } 100% { opacity: 0.4; } }

/* despair-and-faint: dark mood, sunlit warm tones */
.scn-despair-and-faint {
  background: 
    linear-gradient(180deg, #5a3a2a 0%, #3a2216 40%, #1a100a 100%),
    radial-gradient(ellipse at 70% 20%, #d4a060 0%, transparent 60%);
}
.scn-despair-and-faint .wall-daf {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #4a3220 0%, #2a1a10 100%);
  animation: daf-wall 20s ease-in-out infinite alternate;
}
.scn-despair-and-faint .floor-daf {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(0deg, #2a1a0e 0%, #1a0e08 100%);
  animation: daf-floor 15s ease-in-out infinite;
}
.scn-despair-and-faint .window-daf {
  position: absolute; top: 18%; left: 22%; width: 100px; height: 120px;
  background: linear-gradient(135deg, #d4a060 0%, #a07030 100%);
  border-radius: 4px;
  box-shadow: 0 0 40px 12px rgba(180,120,40,0.4);
  animation: daf-window 6s ease-in-out infinite;
}
.scn-despair-and-faint .chair-daf {
  position: absolute; bottom: 20%; left: 50%; transform: translateX(-60%);
  width: 80px; height: 100px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 8% 8% 4% 4%;
  animation: daf-chair 12s ease-in-out infinite alternate;
}
.scn-despair-and-faint .figure-daf {
  position: absolute; bottom: 18%; left: 46%; 
  width: 40px; height: 80px;
  background: linear-gradient(180deg, #2a1a12 0%, #0e0a06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: daf-figure 4s ease-in-out infinite;
}
.scn-despair-and-faint .book-daf {
  position: absolute; bottom: 22%; left: 62%;
  width: 30px; height: 40px;
  background: linear-gradient(135deg, #8a6030 0%, #4a3018 100%);
  border-radius: 2px;
  transform: rotate(-15deg);
  animation: daf-book 8s ease-in-out infinite;
}
.scn-despair-and-faint .dust-daf {
  position: absolute; top: 30%; left: 40%;
  width: 60px; height: 60px;
  background: radial-gradient(circle, rgba(200,160,100,0.3) 0%, transparent 70%);
  filter: blur(8px);
  animation: daf-dust 25s linear infinite;
}
@keyframes daf-wall { 0% { opacity: 0.8 } 50% { opacity: 0.9 } 100% { opacity: 0.7 } }
@keyframes daf-floor { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.01) } 100% { transform: scaleY(1) } }
@keyframes daf-window { 0% { opacity: 0.7; box-shadow: 0 0 30px 8px rgba(180,120,40,0.3) } 50% { opacity: 1; box-shadow: 0 0 60px 16px rgba(200,130,50,0.6) } 100% { opacity: 0.8; box-shadow: 0 0 40px 10px rgba(180,120,40,0.4) } }
@keyframes daf-chair { 0% { transform: translateX(-60%) scale(1) } 50% { transform: translateX(-58%) scale(1.01) } 100% { transform: translateX(-60%) scale(1) } }
@keyframes daf-figure { 0% { transform: translateY(0) rotate(2deg) } 25% { transform: translateY(-2px) rotate(-1deg) } 50% { transform: translateY(0) rotate(3deg) } 75% { transform: translateY(-3px) rotate(0deg) } 100% { transform: translateY(0) rotate(1deg) } }
@keyframes daf-book { 0% { transform: rotate(-15deg) scale(1) } 50% { transform: rotate(-10deg) scale(1.02) } 100% { transform: rotate(-15deg) scale(1) } }
@keyframes daf-dust { 0% { transform: translate(0,0) scale(1) } 50% { transform: translate(10px,-5px) scale(1.2) } 100% { transform: translate(-10px,10px) scale(0.9) } }

/* confrontation: tense sunlit, sharp shadows */
.scn-confrontation {
  background: 
    linear-gradient(180deg, #c8a050 0%, #b08030 50%, #806020 100%),
    radial-gradient(ellipse at 30% 10%, #ffe0a0 0%, transparent 50%);
}
.scn-confrontation .sky-cnf {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #e8c060 0%, #c89830 100%);
  animation: cnf-sky 12s ease-in-out infinite alternate;
}
.scn-confrontation .ground-cnf {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(0deg, #5a3a10 0%, #7a5020 100%);
  animation: cnf-ground 8s ease-in-out infinite;
}
.scn-confrontation .left-figure-cnf {
  position: absolute; bottom: 25%; left: 25%;
  width: 40px; height: 100px;
  background: linear-gradient(180deg, #2a2018 0%, #0e0a06 100%);
  border-radius: 20% 20% 30% 30% / 40% 40% 20% 20%;
  transform-origin: bottom center;
  animation: cnf-left 3s ease-in-out infinite;
}
.scn-confrontation .right-figure-cnf {
  position: absolute; bottom: 25%; right: 25%;
  width: 40px; height: 110px;
  background: linear-gradient(180deg, #3a2010 0%, #1a0e08 100%);
  border-radius: 20% 20% 30% 30% / 40% 40% 20% 20%;
  transform-origin: bottom center;
  animation: cnf-right 3.5s ease-in-out infinite reverse;
}
.scn-confrontation .shadow-cnf {
  position: absolute; bottom: 0; left: 20%; right: 20%; height: 25%;
  background: linear-gradient(180deg, rgba(0,0,0,0.4) 0%, transparent 100%);
  animation: cnf-shadow 5s ease-in-out infinite;
}
.scn-confrontation .banner-cnf {
  position: absolute; top: 15%; left: 50%; transform: translateX(-50%);
  width: 80px; height: 50px;
  background: linear-gradient(180deg, #a0461a 0%, #602810 100%);
  border-radius: 6px;
  animation: cnf-banner 7s ease-in-out infinite;
}
@keyframes cnf-sky { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.9 } }
@keyframes cnf-ground { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes cnf-left { 0% { transform: translate(0,0) rotate(-2deg) } 25% { transform: translate(3px, -1px) rotate(3deg) } 50% { transform: translate(0,0) rotate(-4deg) } 75% { transform: translate(-2px, -2px) rotate(1deg) } 100% { transform: translate(0,0) rotate(-2deg) } }
@keyframes cnf-right { 0% { transform: translate(0,0) rotate(2deg) } 25% { transform: translate(-3px, -1px) rotate(-3deg) } 50% { transform: translate(0,0) rotate(4deg) } 75% { transform: translate(2px, -2px) rotate(-1deg) } 100% { transform: translate(0,0) rotate(2deg) } }
@keyframes cnf-shadow { 0% { opacity: 0.3 } 50% { opacity: 0.6 } 100% { opacity: 0.4 } }
@keyframes cnf-banner { 0% { transform: translateX(-50%) scale(1) rotate(0deg) } 50% { transform: translateX(-48%) scale(1.05) rotate(2deg) } 100% { transform: translateX(-50%) scale(1) rotate(0deg) } }

/* goodbye-until-morrow: tense sunlit, sunset parting */
.scn-goodbye-until-morrow {
  background: 
    linear-gradient(180deg, #f0c060 0%, #d09030 50%, #905020 100%),
    radial-gradient(ellipse at 50% 20%, #ffd080 0%, transparent 60%);
}
.scn-goodbye-until-morrow .sky-gbm {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #f0a040 0%, #e08020 100%);
  animation: gbm-sky 15s ease-in-out infinite alternate;
}
.scn-goodbye-until-morrow .sun-gbm {
  position: absolute; bottom: 35%; left: 50%; transform: translateX(-50%);
  width: 100px; height: 100px;
  background: radial-gradient(circle, #ffd060 0%, #e09020 60%, transparent 90%);
  border-radius: 50%;
  animation: gbm-sun 8s ease-in-out infinite;
}
.scn-goodbye-until-morrow .ground-gbm {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #5a3a10 0%, #3a2008 100%);
  animation: gbm-ground 10s ease-in-out infinite;
}
.scn-goodbye-until-morrow .left-figure-gbm {
  position: absolute; bottom: 20%; left: 20%;
  width: 40px; height: 100px;
  background: linear-gradient(180deg, #2a2018 0%, #0e0a06 100%);
  border-radius: 25% 25% 30% 30% / 45% 45% 25% 25%;
  transform-origin: bottom center;
  animation: gbm-left 4s ease-in-out infinite;
}
.scn-goodbye-until-morrow .right-figure-gbm {
  position: absolute; bottom: 20%; right: 20%;
  width: 40px; height: 90px;
  background: linear-gradient(180deg, #1a2018 0%, #080e06 100%);
  border-radius: 25% 25% 30% 30% / 45% 45% 25% 25%;
  transform-origin: bottom center;
  animation: gbm-right 4.5s ease-in-out infinite reverse;
}
.scn-goodbye-until-morrow .gate-gbm {
  position: absolute; bottom: 15%; left: 45%; width: 60px; height: 100px;
  background: linear-gradient(180deg, #4a3018 0%, #2a1808 100%);
  border-radius: 4px 4px 0 0;
  animation: gbm-gate 6s ease-in-out infinite;
}
@keyframes gbm-sky { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.7 } }
@keyframes gbm-sun { 0% { transform: translateX(-50%) scale(1); opacity: 0.8 } 50% { transform: translateX(-48%) scale(1.05); opacity: 1 } 100% { transform: translateX(-50%) scale(1); opacity: 0.9 } }
@keyframes gbm-ground { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes gbm-left { 0% { transform: translate(0,0) rotate(-3deg) } 30% { transform: translate(5px, -2px) rotate(2deg) } 60% { transform: translate(10px, -1px) rotate(-1deg) } 100% { transform: translate(0,0) rotate(-3deg) } }
@keyframes gbm-right { 0% { transform: translate(0,0) rotate(2deg) } 30% { transform: translate(-5px, -2px) rotate(-3deg) } 60% { transform: translate(-10px, -1px) rotate(1deg) } 100% { transform: translate(0,0) rotate(2deg) } }
@keyframes gbm-gate { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.02) } 100% { transform: scaleX(1) } }

/* solitary-grief: dark mood, dim interior */
.scn-solitary-grief {
  background: 
    linear-gradient(180deg, #1a1412 0%, #0e0a08 50%, #050302 100%),
    radial-gradient(ellipse at 50% 60%, #1a1412 0%, transparent 70%);
}
.scn-solitary-grief .wall-sgf {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a201c 0%, #14100e 100%);
  animation: sgf-wall 18s ease-in-out infinite alternate;
}
.scn-solitary-grief .floor-sgf {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #1a100e 0%, #0e0806 100%);
  animation: sgf-floor 12s ease-in-out infinite;
}
.scn-solitary-grief .candle-sgf {
  position: absolute; bottom: 35%; left: 50%; transform: translateX(-50%);
  width: 20px; height: 60px;
  background: linear-gradient(180deg, #d0a060 0%, #a07030 100%);
  border-radius: 6px 6px 2px 2px;
  animation: sgf-candle 3s ease-in-out infinite;
}
.scn-solitary-grief .figure-sgf {
  position: absolute; bottom: 18%; left: 48%;
  width: 40px; height: 90px;
  background: linear-gradient(180deg, #1a1410 0%, #0a0604 100%);
  border-radius: 45% 45% 40% 40% / 55% 55% 35% 35%;
  transform-origin: bottom center;
  animation: sgf-figure 5s ease-in-out infinite;
}
.scn-solitary-grief .chair-sgf {
  position: absolute; bottom: 15%; left: 42%; 
  width: 60px; height: 80px;
  background: linear-gradient(180deg, #1e1612 0%, #0e0a08 100%);
  border-radius: 6% 6% 3% 3%;
  animation: sgf-chair 10s ease-in-out infinite;
}
.scn-solitary-grief .window-sgf {
  position: absolute; top: 10%; left: 20%; width: 70px; height: 90px;
  background: linear-gradient(135deg, #1a1a2a 0%, #0e0e1a 100%);
  border-radius: 2px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.8);
  animation: sgf-window 20s linear infinite;
}
@keyframes sgf-wall { 0% { opacity: 0.6 } 50% { opacity: 0.8 } 100% { opacity: 0.7 } }
@keyframes sgf-floor { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.005) } 100% { transform: scaleY(1) } }
@keyframes sgf-candle { 0% { transform: translateX(-50%) scale(1); box-shadow: 0 0 20px 8px rgba(200,140,60,0.3) } 50% { transform: translateX(-48%) scale(1.05); box-shadow: 0 0 30px 12px rgba(220,160,80,0.5) } 100% { transform: translateX(-50%) scale(1); box-shadow: 0 0 20px 8px rgba(200,140,60,0.3) } }
@keyframes sgf-figure { 0% { transform: translateY(0) rotate(1deg) } 30% { transform: translateY(-2px) rotate(-2deg) } 60% { transform: translateY(0) rotate(0deg) } 100% { transform: translateY(0) rotate(1deg) } }
@keyframes sgf-chair { 0% { transform: scale(1) } 50% { transform: scale(1.01) } 100% { transform: scale(1) } }
@keyframes sgf-window { 0% { opacity: 0.1 } 50% { opacity: 0.3 } 100% { opacity: 0.1 } }

.scn-peasant-song-sea-nymph { background: linear-gradient(180deg, #f5b07a 0%, #d97a4a 30%, #8a4a2a 60%, #3a1a1a 100%), radial-gradient(ellipse at 50% 80%, #d97a4a88 0%, transparent 70%); }
.scn-peasant-song-sea-nymph .sky-glow { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #f5d0a0 0%, #f5b07a 40%, transparent 100%); animation: psn-sky 12s ease-in-out infinite alternate; }
.scn-peasant-song-sea-nymph .sea { position:absolute; bottom:0; left:0; right:0; height:60%; background: linear-gradient(180deg, #8a5a3a 0%, #4a2a1a 100%); border-radius: 0 0 30% 30%; box-shadow: inset 0 8px 30px #2a1a0acc; animation: psn-sea 8s ease-in-out infinite; }
.scn-peasant-song-sea-nymph .cliff-left { position:absolute; bottom:35%; left:5%; width:20%; height:35%; background: linear-gradient(135deg, #6a4a2a 0%, #3a2a1a 100%); border-radius: 30% 10% 0 0; transform: skewX(-5deg); animation: psn-cliff 20s ease-in-out infinite alternate; }
.scn-peasant-song-sea-nymph .cliff-right { position:absolute; bottom:35%; right:8%; width:18%; height:40%; background: linear-gradient(225deg, #5a3a1a 0%, #2a1a0a 100%); border-radius: 10% 30% 0 0; transform: skewX(5deg); animation: psn-cliff 25s ease-in-out infinite alternate-reverse; }
.scn-peasant-song-sea-nymph .figure-shore { position:absolute; bottom:30%; left:38%; width:20px; height:50px; background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: psn-figure 6s ease-in-out infinite; }
.scn-peasant-song-sea-nymph .nymph-horizon { position:absolute; bottom:55%; right:25%; width:14px; height:30px; background: linear-gradient(180deg, #c08040cc 0%, #a06030cc 100%); border-radius: 50% 50% 30% 30%; filter: blur(3px); opacity:0.6; animation: psn-nymph 10s ease-in-out infinite; }
.scn-peasant-song-sea-nymph .bird { position:absolute; top:20%; left:60%; width:12px; height:8px; background: transparent; border-top: 3px solid #3a2a1a; border-radius: 50%; transform: rotate(-10deg); animation: psn-bird 15s linear infinite; }
@keyframes psn-sky { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes psn-sea { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(0.98); } }
@keyframes psn-cliff { 0% { filter: brightness(0.9); } 50% { filter: brightness(1.1); } 100% { filter: brightness(0.95); } }
@keyframes psn-figure { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(2deg); } 50% { transform: translateY(0) rotate(-1deg); } 75% { transform: translateY(-1px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes psn-nymph { 0% { opacity:0.5; transform: translateY(0); } 50% { opacity:0.8; transform: translateY(-4px); } 100% { opacity:0.6; transform: translateY(0); } }
@keyframes psn-bird { 0% { transform: translateX(0) rotate(-10deg); } 100% { transform: translateX(200px) rotate(-10deg); } }

.scn-invocation-song { background: linear-gradient(180deg, #b08050 0%, #805030 35%, #503020 70%, #201008 100%), radial-gradient(ellipse at 50% 30%, #b0805088 0%, transparent 60%); }
.scn-invocation-song .dusk-sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #d0a070 0%, #b08050 40%, transparent 100%); animation: is-sky 10s ease-in-out infinite alternate; }
.scn-invocation-song .moon { position:absolute; top:10%; right:25%; width:40px; height:40px; background: radial-gradient(circle, #ffe0b0ff 0%, #ffd090aa 70%, transparent 100%); border-radius: 50%; box-shadow: 0 0 60px 20px #ffd09066; animation: is-moon 15s ease-in-out infinite alternate; }
.scn-invocation-song .wave-wave { position:absolute; bottom:20%; left:0; right:0; height:35%; background: linear-gradient(180deg, #7a5a3a 0%, #3a2a1a 100%); border-radius: 0 0 40% 40%; box-shadow: inset 0 4px 20px #1a0a00; animation: is-wave 6s ease-in-out infinite; }
.scn-invocation-song .nymph-figure { position:absolute; bottom:30%; right:30%; width:16px; height:36px; background: linear-gradient(180deg, #c08050cc 0%, #a06030cc 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; filter: blur(2px); animation: is-nymph 8s ease-in-out infinite; }
.scn-invocation-song .shore-kneel { position:absolute; bottom:15%; left:40%; width:22px; height:44px; background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: is-kneel 6s ease-in-out infinite; }
.scn-invocation-song .cloud-veil { position:absolute; top:30%; left:10%; width:120px; height:20px; background: linear-gradient(180deg, rgba(255,200,150,0.3) 0%, rgba(255,200,150,0.05) 100%); border-radius: 50%; filter: blur(10px); animation: is-cloud 40s linear infinite; }
.scn-invocation-song .ripple { position:absolute; bottom:40%; left:50%; width:60px; height:6px; background: transparent; border-bottom: 2px solid #c0805088; border-radius: 50%; transform: translateX(-50%); animation: is-ripple 5s ease-in-out infinite; }
@keyframes is-sky { 0% { opacity:0.85; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes is-moon { 0% { transform: translateY(0) scale(1); box-shadow: 0 0 40px 15px #ffd09066; } 50% { transform: translateY(-3px) scale(1.02); box-shadow: 0 0 60px 25px #ffd09099; } 100% { transform: translateY(0) scale(0.98); box-shadow: 0 0 50px 20px #ffd09077; } }
@keyframes is-wave { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.03); } 100% { transform: scaleY(0.97); } }
@keyframes is-nymph { 0% { opacity:0.5; transform: translateY(0) rotate(0deg); } 50% { opacity:0.8; transform: translateY(-5px) rotate(3deg); } 100% { opacity:0.6; transform: translateY(0) rotate(-2deg); } }
@keyframes is-kneel { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(2deg); } 50% { transform: translateY(0) rotate(-1deg); } 75% { transform: translateY(-1px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes is-cloud { 0% { transform: translateX(-60px); } 100% { transform: translateX(140vw); } }
@keyframes is-ripple { 0% { opacity:0.3; transform: translateX(-50%) scaleX(1); } 50% { opacity:0.8; transform: translateX(-50%) scaleX(1.5); } 100% { opacity:0.1; transform: translateX(-50%) scaleX(2); } }

.scn-garland-thrown { background: linear-gradient(180deg, #d09060 0%, #a06040 35%, #603020 65%, #301810 100%), radial-gradient(ellipse at 50% 100%, #d0906088 0%, transparent 60%); }
.scn-garland-thrown .sunset-sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #f0c09088 0%, #d09060 40%, transparent 100%); animation: gt-sky 14s ease-in-out infinite alternate; }
.scn-garland-thrown .sea-waves { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #a06040 0%, #502818 100%); border-radius: 0 0 30% 30%; box-shadow: inset 0 6px 30px #201008; animation: gt-sea 7s ease-in-out infinite; }
.scn-garland-thrown .shore-group { position:absolute; bottom:30%; left:10%; width:40%; height:20%; background: linear-gradient(180deg, #603020 0%, #403018 100%); border-radius: 30% 50% 0 0; box-shadow: inset 0 4px 12px #1a0a00; animation: gt-shore 12s ease-in-out infinite alternate; }
.scn-garland-thrown .thrower-arm { position:absolute; bottom:35%; left:35%; width:8px; height:40px; background: #4a2818; border-radius: 40% 40% 20% 20%; transform-origin: bottom center; animation: gt-arm 4s ease-in-out infinite; }
.scn-garland-thrown .garland-arc { position:absolute; bottom:55%; left:25%; width:40px; height:40px; border: 2px solid #c08050aa; border-radius: 50%; border-bottom-color: transparent; transform: rotate(30deg); animation: gt-garland 5s ease-in-out infinite; }
.scn-garland-thrown .chorus-figures { position:absolute; bottom:25%; right:10%; width:50px; height:70px; background: radial-gradient(ellipse at 50% 80%, #4a281888 0%, #2a181088 100%); border-radius: 40% 40% 20% 20%; filter: blur(2px); animation: gt-chorus 8s ease-in-out infinite; }
.scn-garland-thrown .splashes { position:absolute; bottom:48%; left:28%; width:20px; height:10px; background: radial-gradient(circle, #c08050aa 0%, transparent 70%); border-radius: 50%; animation: gt-splash 3s ease-in-out infinite; }
@keyframes gt-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes gt-sea { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.04); } 100% { transform: scaleY(0.96); } }
@keyframes gt-shore { 0% { filter: brightness(0.9); } 50% { filter: brightness(1.1); } 100% { filter: brightness(0.95); } }
@keyframes gt-arm { 0% { transform: rotate(0deg); } 25% { transform: rotate(20deg); } 50% { transform: rotate(-10deg); } 75% { transform: rotate(30deg); } 100% { transform: rotate(0deg); } }
@keyframes gt-garland { 0% { opacity:0.4; transform: rotate(30deg) translate(0,0); } 50% { opacity:0.9; transform: rotate(70deg) translate(10px,-15px); } 100% { opacity:0.2; transform: rotate(110deg) translate(20px,-30px); } }
@keyframes gt-chorus { 0% { opacity:0.5; transform: translateY(0); } 50% { opacity:0.8; transform: translateY(-5px); } 100% { opacity:0.6; transform: translateY(0); } }
@keyframes gt-splash { 0% { transform: scale(0.5); opacity:0.3; } 50% { transform: scale(2); opacity:0.8; } 100% { transform: scale(0.5); opacity:0; } }

.scn-peasant-dress { background: linear-gradient(180deg, #d0a070 0%, #b08050 30%, #805030 60%, #402010 100%), radial-gradient(ellipse at 50% 30%, #d0a07088 0%, transparent 70%); }
.scn-peasant-dress .rural-hill { position:absolute; bottom:30%; left:0; right:0; height:40%; background: linear-gradient(180deg, #a07040 0%, #603020 100%); border-radius: 40% 60% 0 0 / 60% 70% 0 0; box-shadow: inset 0 8px 20px #201008; animation: pd-hill 18s ease-in-out infinite alternate; }
.scn-peasant-dress .field-warm { position:absolute; bottom:10%; left:0; right:0; height:30%; background: linear-gradient(180deg, #b08050 0%, #805030 100%); border-radius: 30% 20% 0 0; filter: blur(4px); animation: pd-field 12s ease-in-out infinite; }
.scn-peasant-dress .tree-left { position:absolute; bottom:25%; left:8%; width:50px; height:120px; background: linear-gradient(180deg, #503020 0%, #301810 100%); border-radius: 40% 40% 10% 10% / 60% 60% 20% 20%; transform-origin: bottom center; animation: pd-tree 20s ease-in-out infinite alternate; }
.scn-peasant-dress .tree-right { position:absolute; bottom:25%; right:12%; width:40px; height:100px; background: linear-gradient(180deg, #603820 0%, #402010 100%); border-radius: 50% 50% 10% 10% / 50% 50% 20% 20%; transform: scaleX(0.8); animation: pd-tree 22s ease-in-out infinite alternate-reverse; }
.scn-peasant-dress .girl-profile { position:absolute; bottom:20%; left:30%; width:18px; height:48px; background: linear-gradient(180deg, #4a2818 0%, #2a1810 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pd-girl 8s ease-in-out infinite; }
.scn-peasant-dress .girl-distant { position:absolute; bottom:30%; right:25%; width:12px; height:36px; background: linear-gradient(180deg, #5a3828 0%, #3a2018 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; filter: blur(2px); opacity:0.7; animation: pd-distant 10s ease-in-out infinite; }
.scn-peasant-dress .dress-swirl { position:absolute; bottom:18%; left:32%; width:24px; height:12px; background: radial-gradient(ellipse, #b07040aa 0%, transparent 70%); border-radius: 50%; transform: rotate(-10deg); animation: pd-swirl 6s ease-in-out infinite; }
.scn-peasant-dress .butterfly { position:absolute; top:35%; left:45%; width:10px; height:8px; background: transparent; border-left: 2px solid #c08050; border-right: 2px solid #c08050; border-radius: 50%; transform: rotate(-20deg); animation: pd-butterfly 12s linear infinite; }
@keyframes pd-hill { 0% { filter: brightness(0.9); } 50% { filter: brightness(1.1); } 100% { filter: brightness(0.95); } }
@keyframes pd-field { 0% { opacity:0.6; transform: scaleY(1); } 50% { opacity:0.9; transform: scaleY(1.02); } 100% { opacity:0.7; transform: scaleY(0.98); } }
@keyframes pd-tree { 0% { transform: rotate(0deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-1deg); } }
@keyframes pd-girl { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(1deg); } 50% { transform: translateY(0) rotate(-1deg); } 75% { transform: translateY(-1px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes pd-distant { 0% { opacity:0.5; transform: translateY(0) scale(1); } 50% { opacity:0.8; transform: translateY(-3px) scale(1.02); } 100% { opacity:0.6; transform: translateY(0) scale(0.98); } }
@keyframes pd-swirl { 0% { transform: rotate(-10deg) scale(1); } 50% { transform: rotate(10deg) scale(1.2); } 100% { transform: rotate(-10deg) scale(0.9); } }
@keyframes pd-butterfly { 0% { transform: translateX(0) rotate(-20deg); } 50% { transform: translateX(40px) rotate(10deg); } 100% { transform: translateX(80px) rotate(-20deg); } }

.scn-wait-at-door {
  background: linear-gradient(180deg, #1a1410 0%, #2a1e18 40%, #1a120c 100%),
              radial-gradient(ellipse at 50% 100%, #3a2a1e 0%, transparent 70%);
}
.scn-wait-at-door .bg-dark { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 40%, #2a1e18 0%, #0f0a06 100%); animation: wad-pulse 8s ease-in-out infinite alternate; }
.scn-wait-at-door .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #2a1e18 0%, #1a120c 100%); border-radius: 30% 70% 0 0 / 20% 40% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.8); }
.scn-wait-at-door .wall-left { position:absolute; left:0; top:0; bottom:30%; width:20%; background: linear-gradient(180deg, #1a1410, #2a1e18); border-right: 2px solid rgba(0,0,0,.3); }
.scn-wait-at-door .wall-right { position:absolute; right:0; top:0; bottom:30%; width:20%; background: linear-gradient(180deg, #1a1410, #2a1e18); border-left: 2px solid rgba(0,0,0,.3); }
.scn-wait-at-door .door { position:absolute; bottom:30%; left:50%; width:80px; height:110px; transform:translateX(-50%); background: linear-gradient(180deg, #3a2a1e 0%, #2a1e14 50%, #1a120c 100%); border-radius: 4% 4% 0 0; box-shadow: 0 6px 12px rgba(0,0,0,.6); border: 2px solid #1a120c; }
.scn-wait-at-door .door-crack { position:absolute; bottom:30%; left:50%; width:4px; height:110px; transform:translateX(-50%); background: linear-gradient(180deg, #ffb060 0%, #c08040 100%); box-shadow: 0 0 20px 10px rgba(255,176,96,.3), 0 0 40px 20px rgba(255,176,96,.1); animation: wad-flicker 2s steps(2, start) infinite; }
.scn-wait-at-door .figure-listen { position:absolute; bottom:30%; left:42%; width:20px; height:40px; transform-origin: bottom center; background: linear-gradient(180deg, #0f0a06 0%, #1a120c 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: wad-lean 4s ease-in-out infinite; }
.scn-wait-at-door .shadow { position:absolute; bottom:30%; left:42%; width:30px; height:10px; background: rgba(0,0,0,.5); border-radius:50%; filter: blur(4px); transform: translateX(-10px); opacity:0.7; animation: wad-shiver 3s ease-in-out infinite alternate; }
@keyframes wad-pulse { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes wad-flicker { 0% { opacity:1 } 50% { opacity:.3 } 100% { opacity:1 } }
@keyframes wad-lean { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(-3px) rotate(-3deg) translateY(-2px) } 50% { transform: translateX(0) rotate(0deg) translateY(0) } 75% { transform: translateX(2px) rotate(2deg) translateY(-1px) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes wad-shiver { 0% { transform: translateX(-10px) scale(1) } 100% { transform: translateX(-8px) scale(1.05) } }

.scn-sentinel-tricked {
  background: linear-gradient(180deg, #1e1612 0%, #2a1e1a 50%, #1a120e 100%),
              radial-gradient(ellipse at 50% 100%, #3a2a22 0%, transparent 70%);
}
.scn-sentinel-tricked .bg-stable { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 30%, #2a1e1a 0%, #0f0a08 100%); animation: st-gloom 8s ease-in-out infinite alternate; }
.scn-sentinel-tricked .wall-back { position:absolute; left:10%; right:10%; top:0; bottom:40%; background: linear-gradient(180deg, #1a1410 0%, #2a1e1a 100%); border-radius: 0 0 10% 10% / 0 0 20% 20%; box-shadow: inset 0 8px 20px rgba(0,0,0,.7); }
.scn-sentinel-tricked .post-left { position:absolute; left:15%; bottom:40%; width:12px; height:80px; background: linear-gradient(180deg, #3a2a1e, #2a1e14); border-radius:2px; box-shadow: 0 4px 8px rgba(0,0,0,.5); }
.scn-sentinel-tricked .lantern-glow { position:absolute; left:20%; bottom:55%; width:20px; height:20px; background: radial-gradient(circle, #ffb860 0%, #d08040 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 30px 15px rgba(255,184,96,.4), 0 0 60px 30px rgba(255,184,96,.2); animation: st-swing 5s ease-in-out infinite alternate; }
.scn-sentinel-tricked .figure-sentinel { position:absolute; bottom:40%; left:30%; width:22px; height:45px; background: linear-gradient(180deg, #0f0a08 0%, #1a1410 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: st-shift 6s ease-in-out infinite; }
.scn-sentinel-tricked .figure-ludovico { position:absolute; bottom:40%; left:55%; width:20px; height:42px; background: linear-gradient(180deg, #0f0a08 0%, #1a1410 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: st-shift2 6s ease-in-out infinite 1s; }
.scn-sentinel-tricked .hay-bale { position:absolute; bottom:40%; left:8%; width:30px; height:20px; background: linear-gradient(180deg, #6a5a3a 0%, #4a3a1a 100%); border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%; box-shadow: 0 4px 8px rgba(0,0,0,.4); }
.scn-sentinel-tricked .horse-head { position:absolute; bottom:42%; right:12%; width:35px; height:40px; background: linear-gradient(180deg, #3a2a1a 0%, #2a1e0e 100%); border-radius: 40% 40% 50% 50% / 60% 60% 50% 50%; transform: rotate(10deg); box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: st-nod 4s ease-in-out infinite; }
@keyframes st-gloom { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes st-swing { 0% { transform: rotate(-5deg) } 50% { transform: rotate(3deg) } 100% { transform: rotate(-5deg) } }
@keyframes st-shift { 0% { transform: translateX(0) rotate(0deg) } 30% { transform: translateX(8px) rotate(2deg) translateY(-2px) } 60% { transform: translateX(0) rotate(0deg) } 100% { transform: translateX(-4px) rotate(-1deg) } }
@keyframes st-shift2 { 0% { transform: translateX(0) rotate(0deg) } 30% { transform: translateX(-6px) rotate(-2deg) translateY(-1px) } 60% { transform: translateX(0) rotate(0deg) } 100% { transform: translateX(3px) rotate(1deg) } }
@keyframes st-nod { 0% { transform: rotate(10deg) translateY(0) } 50% { transform: rotate(12deg) translateY(-3px) } 100% { transform: rotate(10deg) translateY(0) } }

.scn-trombone-procured {
  background: linear-gradient(180deg, #1c1411 0%, #2a1f1a 50%, #1a1310 100%),
              radial-gradient(ellipse at 50% 100%, #382922 0%, transparent 70%);
}
.scn-trombone-procured .bg-guardroom { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 50%, #2a1f1a 0%, #0f0b09 100%); animation: tp-dim 8s ease-in-out infinite alternate; }
.scn-trombone-procured .archway { position:absolute; left:20%; right:20%; top:10%; bottom:40%; background: linear-gradient(180deg, #1a1410 0%, #2a1f1a 100%); border-radius: 30% 30% 10% 10% / 40% 40% 10% 10%; box-shadow: inset 0 0 20px rgba(0,0,0,.6); }
.scn-trombone-procured .figure-soldier { position:absolute; bottom:40%; left:30%; width:24px; height:48px; background: linear-gradient(180deg, #0f0b09 0%, #1a1410 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: tp-pass 5s ease-in-out infinite; }
.scn-trombone-procured .figure-ludovico2 { position:absolute; bottom:40%; left:55%; width:20px; height:44px; background: linear-gradient(180deg, #0f0b09 0%, #1a1410 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: tp-reach 5s ease-in-out infinite 2.5s; }
.scn-trombone-procured .trombone { position:absolute; bottom:45%; left:38%; width:60px; height:8px; background: linear-gradient(180deg, #4a3a2a, #c0a060 50%, #8a7030 100%); border-radius: 10px 2px 2px 10px; transform: rotate(15deg); box-shadow: 0 2px 4px rgba(0,0,0,.5); animation: tp-slide 5s ease-in-out infinite; }
.scn-trombone-procured .helmet-rack { position:absolute; bottom:52%; left:12%; width:20px; height:25px; background: linear-gradient(180deg, #3a2a1a, #2a1a0a); border-radius: 50% 50% 10% 10% / 60% 60% 20% 20%; box-shadow: 0 4px 8px rgba(0,0,0,.4); }
.scn-trombone-procured .candle { position:absolute; bottom:50%; right:15%; width:6px; height:18px; background: linear-gradient(180deg, #ffc080 0%, #b06030 100%); border-radius: 3px; box-shadow: 0 0 20px 8px rgba(255,192,128,.3); animation: tp-flicker 3s steps(2, start) infinite; }
@keyframes tp-dim { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes tp-pass { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(8px) rotate(-3deg) translateY(-2px) } 50% { transform: translateX(12px) rotate(1deg) translateY(0) } 75% { transform: translateX(8px) rotate(2deg) translateY(-1px) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes tp-reach { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(-6px) rotate(3deg) translateY(-2px) } 50% { transform: translateX(-10px) rotate(-1deg) translateY(0) } 75% { transform: translateX(-6px) rotate(-2deg) translateY(-1px) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes tp-slide { 0% { transform: rotate(15deg) translateX(0) } 50% { transform: rotate(12deg) translateX(10px) } 100% { transform: rotate(15deg) translateX(0) } }
@keyframes tp-flicker { 0% { opacity:1 } 50% { opacity:.4 } 100% { opacity:1 } }

.scn-final-trick {
  background: linear-gradient(180deg, #1b1310 0%, #291e1a 50%, #1a1310 100%),
              radial-gradient(ellipse at 50% 100%, #382923 0%, transparent 70%);
}
.scn-final-trick .bg-tavern { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 40%, #291e1a 0%, #0f0b09 100%); animation: ft-haze 8s ease-in-out infinite alternate; }
.scn-final-trick .table { position:absolute; bottom:25%; left:20%; right:20%; height:30%; background: linear-gradient(180deg, #3a2a1e 0%, #2a1a12 100%); border-radius: 10% 10% 0 0 / 20% 20% 0 0; box-shadow: 0 -4px 8px rgba(0,0,0,.5); }
.scn-final-trick .wine-barrel { position:absolute; bottom:25%; left:65%; width:40px; height:50px; background: linear-gradient(180deg, #4a3a2a, #3a2a1a); border-radius: 20% 20% 10% 10%; box-shadow: 0 4px 8px rgba(0,0,0,.4); }
.scn-final-trick .figure-ludovico3 { position:absolute; bottom:28%; left:35%; width:22px; height:46px; background: linear-gradient(180deg, #0f0b09 0%, #1a1410 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ft-gesture 6s ease-in-out infinite; }
.scn-final-trick .figure-sebastian { position:absolute; bottom:28%; left:55%; width:20px; height:44px; background: linear-gradient(180deg, #0f0b09 0%, #1a1410 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ft-listen 6s ease-in-out infinite 3s; }
.scn-final-trick .mug { position:absolute; bottom:38%; left:42%; width:14px; height:18px; background: linear-gradient(180deg, #6a5a3a, #4a3a1a); border-radius: 4px 4px 10px 10px; box-shadow: 0 2px 4px rgba(0,0,0,.5); transform: rotate(-5deg); }
.scn-final-trick .lantern-tiny { position:absolute; bottom:55%; left:48%; width:12px; height:12px; background: radial-gradient(circle, #ffc080 0%, #c08040 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 24px 12px rgba(255,192,128,.3); animation: ft-glint 4s ease-in-out infinite alternate; }
@keyframes ft-haze { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes ft-gesture { 0% { transform: translateX(0) rotate(0deg) } 30% { transform: translateX(8px) rotate(5deg) translateY(-3px) } 60% { transform: translateX(0) rotate(0deg) translateY(0) } 100% { transform: translateX(-4px) rotate(-2deg) } }
@keyframes ft-listen { 0% { transform: translateX(0) rotate(0deg) } 30% { transform: translateX(-6px) rotate(-3deg) translateY(-2px) } 60% { transform: translateX(0) rotate(0deg) } 100% { transform: translateX(3px) rotate(1deg) } }
@keyframes ft-glint { 0% { opacity:.6; transform: scale(1) } 50% { opacity:1; transform: scale(1.1) } 100% { opacity:.7; transform: scale(.95) } }

/* ===== scene: consolation-from-virtue ===== */
.scn-consolation-from-virtue {
  background: 
    linear-gradient(180deg, #1c1820 0%, #2a222c 30%, #3a3038 70%, #2c2228 100%),
    radial-gradient(ellipse at 50% 100%, #3a3038 0%, #1c1820 60%);
}
.scn-consolation-from-virtue .wall-left {
  position: absolute; left: 0; top: 0; width: 45%; height: 100%;
  background: linear-gradient(90deg, #2c2528 0%, transparent 100%);
  animation: cv-wall 20s ease-in-out infinite alternate;
}
.scn-consolation-from-virtue .wall-right {
  position: absolute; right: 0; top: 0; width: 45%; height: 100%;
  background: linear-gradient(-90deg, #2c2528 0%, transparent 100%);
  animation: cv-wall 20s ease-in-out infinite alternate-reverse;
}
.scn-consolation-from-virtue .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #1e181c 0%, #0e0a0c 100%);
  border-radius: 30% 70% 0 0 / 20% 40% 0 0;
  box-shadow: inset 0 12px 24px rgba(0,0,0,.6);
}
.scn-consolation-from-virtue .fireplace {
  position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%);
  width: 120px; height: 90px;
  background: linear-gradient(180deg, #3a2a20 0%, #1e1210 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 10% 10%;
  box-shadow: 0 8px 16px rgba(0,0,0,.5);
  animation: cv-fireplace 14s ease-in-out infinite;
}
.scn-consolation-from-virtue .embers {
  position: absolute; bottom: 24%; left: 50%; transform: translateX(-50%);
  width: 50px; height: 30px;
  background: radial-gradient(ellipse at 50% 60%, #b04030 0%, #502010 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(180,60,30,.4);
  animation: cv-ember 3s ease-in-out infinite alternate;
}
.scn-consolation-from-virtue .lady {
  position: absolute; bottom: 18%; left: 30%; 
  width: 28px; height: 60px;
  background: linear-gradient(180deg, #1a1218 0%, #0a0608 100%);
  border-radius: 50% 50% 45% 45% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cv-lady 8s ease-in-out infinite;
}
.scn-consolation-from-virtue .drapery {
  position: absolute; top: 2%; left: 10%; width: 80%; height: 25%;
  background: linear-gradient(180deg, rgba(20,14,18,.6) 0%, transparent 100%);
  filter: blur(4px);
  border-radius: 0 0 60% 60%;
  animation: cv-drape 15s ease-in-out infinite alternate;
}
.scn-consolation-from-virtue .wind-whisper {
  position: absolute; top: 5%; left: -20%; width: 140%; height: 60%;
  background: linear-gradient(90deg, transparent 0%, rgba(180,200,220,.08) 50%, transparent 100%);
  filter: blur(20px);
  animation: cv-wind 12s linear infinite;
}

@keyframes cv-wall { 0% { opacity: .7 } 50% { opacity: .9 } 100% { opacity: .7 } }
@keyframes cv-fireplace { 0%,100% { transform: translateX(-50%) scaleY(1) } 50% { transform: translateX(-50%) scaleY(.98) } }
@keyframes cv-ember { 0% { opacity: .6; transform: translateX(-50%) scale(.9) } 50% { opacity: 1; transform: translateX(-50%) scale(1.1) } 100% { opacity: .7; transform: translateX(-50%) scale(.95) } }
@keyframes cv-lady { 0%,100% { transform: translate(0,0) rotate(-2deg) } 25% { transform: translate(2px,-2px) rotate(1deg) } 50% { transform: translate(4px,0) rotate(-3deg) } 75% { transform: translate(2px,-1px) rotate(1deg) } }
@keyframes cv-drape { 0% { transform: translateY(0) scaleY(1) } 100% { transform: translateY(-12px) scaleY(1.05) } }
@keyframes cv-wind { 0% { transform: translateX(0) } 100% { transform: translateX(20%) } }

/* ===== scene: door-stirs ===== */
.scn-door-stirs {
  background: 
    linear-gradient(180deg, #101218 0%, #1a1c24 40%, #222430 100%),
    radial-gradient(ellipse at 60% 40%, #222430 0%, transparent 50%);
}
.scn-door-stirs .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1c1a1e 0%, #0c0a0e 100%);
  border-radius: 50% 50% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.7);
}
.scn-door-stirs .wall-bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(90deg, #1c1e28 0%, #2a2c38 50%, #1c1e28 100%);
  animation: ds-wall 12s ease-in-out infinite alternate;
}
.scn-door-stirs .door-frame {
  position: absolute; bottom: 20%; left: 30%; 
  width: 70px; height: 140px;
  border: 4px solid #3a3828;
  background: linear-gradient(135deg, #2e2a20 0%, #1c1810 100%);
  border-radius: 6px 6px 0 0;
  box-shadow: 0 10px 20px rgba(0,0,0,.5);
}
.scn-door-stirs .door-half {
  position: absolute; bottom: 20%; left: 30%; 
  width: 35px; height: 140px;
  background: linear-gradient(135deg, #3a3428 0%, #2a2218 100%);
  border-radius: 6px 0 0 0;
  transform-origin: left center;
  animation: ds-door 5s ease-in-out infinite alternate;
}
.scn-door-stirs .stairwell {
  position: absolute; bottom: 20%; left: 30%; 
  width: 70px; height: 100px;
  background: linear-gradient(180deg, transparent 0%, #0a0810 100%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  opacity: .6;
}
.scn-door-stirs .lamp-glow {
  position: absolute; bottom: 30%; left: 40%; 
  width: 60px; height: 60px;
  background: radial-gradient(circle, #d0b080 0%, transparent 70%);
  filter: blur(8px);
  animation: ds-lamp 3s ease-in-out infinite alternate;
}
.scn-door-stirs .lamp-body {
  position: absolute; bottom: 35%; left: 42%; 
  width: 10px; height: 18px;
  background: radial-gradient(ellipse, #c8a060 0%, #a08040 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 10px 5px rgba(200,160,60,.3);
}
.scn-door-stirs .shadow-ripple {
  position: absolute; bottom: 20%; left: 20%; width: 60%; height: 30%;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,.5) 0%, transparent 70%);
  filter: blur(10px);
  animation: ds-shadow 8s ease-in-out infinite alternate;
}

@keyframes ds-wall { 0% { background-position: 0 0 } 100% { background-position: 20px 0 } }
@keyframes ds-door { 0% { transform: rotateY(0deg) } 50% { transform: rotateY(-40deg) } 100% { transform: rotateY(0deg) } }
@keyframes ds-lamp { 0% { opacity: .6; transform: scale(.9) } 50% { opacity: 1; transform: scale(1.1) } 100% { opacity: .7; transform: scale(.95) } }
@keyframes ds-shadow { 0% { transform: translateY(0) scale(1) } 100% { transform: translateY(-8px) scale(1.1) } }

/* ===== scene: first-night-sleep ===== */
.scn-first-night-sleep {
  background: 
    linear-gradient(180deg, #0c0e18 0%, #1a1c2a 30%, #202434 70%, #141620 100%),
    radial-gradient(ellipse at 30% 30%, #202434 0%, transparent 50%);
}
.scn-first-night-sleep .ceiling {
  position: absolute; top: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #181a24 0%, transparent 100%);
  animation: fs-ceil 20s ease-in-out infinite alternate;
}
.scn-first-night-sleep .wall-back {
  position: absolute; top: 10%; left: 0; right: 0; bottom: 20%;
  background: linear-gradient(90deg, #1a1c2a 0%, #24263a 50%, #1a1c2a 100%);
  border-radius: 0 0 30% 30%;
}
.scn-first-night-sleep .window {
  position: absolute; top: 12%; right: 15%; width: 60px; height: 80px;
  background: linear-gradient(135deg, #4a4a6a 0%, #2a2a4a 100%);
  border: 3px solid #2a2828;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(100,120,200,.2);
  overflow: hidden;
}
.scn-first-night-sleep .moonlight {
  position: absolute; top: 12%; right: 15%; width: 60px; height: 80px;
  background: linear-gradient(180deg, rgba(200,220,255,.15) 0%, transparent 100%);
  animation: fs-moonlight 8s ease-in-out infinite alternate;
}
.scn-first-night-sleep .clock {
  position: absolute; top: 28%; left: 20%; width: 40px; height: 40px;
  background: radial-gradient(circle, #4a3a2a 0%, #1a1812 100%);
  border-radius: 50%;
  box-shadow: 0 0 12px rgba(0,0,0,.6);
  animation: fs-clock 12s linear infinite;
}
.scn-first-night-sleep .bed-head {
  position: absolute; bottom: 25%; left: 30%; 
  width: 80px; height: 40px;
  background: linear-gradient(180deg, #2a2018 0%, #1a1410 100%);
  border-radius: 40% 40% 10% 10%;
  box-shadow: 0 8px 12px rgba(0,0,0,.5);
}
.scn-first-night-sleep .figure {
  position: absolute; bottom: 18%; left: 38%; 
  width: 20px; height: 50px;
  background: linear-gradient(180deg, #1c1820 0%, #0a0810 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fs-fig 6s ease-in-out infinite alternate;
}
.scn-first-night-sleep .shadow-shape {
  position: absolute; bottom: 10%; left: 10%; 
  width: 120px; height: 60px;
  background: radial-gradient(ellipse, rgba(0,0,0,.6) 0%, transparent 100%);
  filter: blur(15px);
  animation: fs-shadow 15s ease-in-out infinite alternate;
}

@keyframes fs-ceil { 0% { opacity: .6 } 50% { opacity: .9 } 100% { opacity: .6 } }
@keyframes fs-moonlight { 0% { opacity: .3 } 50% { opacity: .7 } 100% { opacity: .4 } }
@keyframes fs-clock { 0% { transform: rotate(0deg) scale(1) } 50% { transform: rotate(180deg) scale(.98) } 100% { transform: rotate(360deg) scale(1) } }
@keyframes fs-fig { 0%,100% { transform: translateX(0) rotate(-1deg) } 25% { transform: translateX(4px) rotate(1deg) } 50% { transform: translateX(8px) rotate(-2deg) } 75% { transform: translateX(4px) rotate(1deg) } }
@keyframes fs-shadow { 0% { transform: translateX(0) scale(1) } 100% { transform: translateX(10px) scale(1.05) } }

/* ===== scene: morning-view ===== */
.scn-morning-view {
  background: 
    linear-gradient(180deg, #b8c4d8 0%, #8aa0c0 40%, #5070a0 100%),
    radial-gradient(ellipse at 50% 100%, #6080b0 0%, transparent 60%);
}
.scn-morning-view .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #f0e8d0 0%, #b8c4d8 60%, transparent 100%);
  animation: mv-sky 20s ease-in-out infinite alternate;
}
.scn-morning-view .mountain-fore {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a3a30 0%, #1a2820 100%);
  border-radius: 60% 40% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.3);
  transform: scale(.95);
}
.scn-morning-view .mountain-mid {
  position: absolute; bottom: 35%; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #3a4a40 0%, #2a3a30 100%);
  border-radius: 50% 50% 0 0;
  filter: blur(2px);
  animation: mv-mount 25s ease-in-out infinite alternate;
}
.scn-morning-view .trees {
  position: absolute; bottom: 32%; left: 0; right: 0; height: 20%;
  background: radial-gradient(ellipse at 20% 100%, #1a3a1a 0%, transparent 60%),
              radial-gradient(ellipse at 50% 100%, #2a4a2a 0%, transparent 50%),
              radial-gradient(ellipse at 80% 100%, #1a3a1a 0%, transparent 60%);
  filter: blur(3px);
}
.scn-morning-view .castle-wall {
  position: absolute; bottom: 25%; left: 10%; 
  width: 200px; height: 60px;
  background: linear-gradient(180deg, #807070 0%, #605050 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 6px 12px rgba(0,0,0,.4);
}
.scn-morning-view .tower {
  position: absolute; bottom: 30%; left: 15%; 
  width: 30px; height: 80px;
  background: linear-gradient(180deg, #706060 0%, #504040 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 8px 16px rgba(0,0,0,.3);
  animation: mv-tower 16s ease-in-out infinite alternate;
}
.scn-morning-view .path {
  position: absolute; bottom: 8%; left: 20%; 
  width: 160px; height: 40px;
  background: linear-gradient(90deg, #8a7868 0%, #a09080 50%, #8a7868 100%);
  border-radius: 0 0 30% 30%;
  transform: perspective(200px) rotateX(20deg);
}
.scn-morning-view .figure {
  position: absolute; bottom: 20%; left: 30%; 
  width: 14px; height: 36px;
  background: linear-gradient(180deg, #1a2028 0%, #0a0e14 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mv-fig 6s ease-in-out infinite;
}
.scn-morning-view .mist {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 20%;
  background: linear-gradient(90deg, transparent 0%, rgba(220,230,240,.2) 20%, transparent 50%, rgba(220,230,240,.15) 80%, transparent 100%);
  filter: blur(20px);
  animation: mv-mist 30s linear infinite;
}

@keyframes mv-sky { 0% { opacity: .8 } 50% { opacity: .95 } 100% { opacity: .85 } }
@keyframes mv-mount { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-4px) scaleY(1.02) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes mv-tower { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes mv-fig { 0%,100% { transform: translateX(0) } 50% { transform: translateX(8px) } }
@keyframes mv-mist { 0% { transform: translateX(0) } 100% { transform: translateX(30%) } }

/* madame-quesnel-talks */
.scn-madame-quesnel-talks { background: linear-gradient(180deg, #0e0e2a 0%, #1a1a3e 40%, #2c2844 100%), radial-gradient(ellipse at 50% 0%, #3a3a6e 0%, transparent 60%); }
.scn-madame-quesnel-talks .night-sky { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #0a0a1e 0%, #1c1c3a 70%, transparent); animation: mqt-sky 15s ease-in-out infinite alternate; }
.scn-madame-quesnel-talks .moon { position:absolute; top:8%; left:72%; width:40px; height:40px; background: radial-gradient(circle, #d4d4e8 0%, #b0b0cc 100%); border-radius:50%; box-shadow: 0 0 30px 10px rgba(180,180,220,0.5); animation: mqt-moon 20s ease-in-out infinite alternate; }
.scn-madame-quesnel-talks .window-frame { position:absolute; bottom:30%; left:50%; transform:translateX(-50%); width:160px; height:200px; border:6px solid #3a2e2a; border-radius:4px; background: linear-gradient(180deg, #1a1a3a 0%, #2a2a4a 100%); box-shadow: inset 0 0 20px #000; }
.scn-madame-quesnel-talks .curtain-left { position:absolute; bottom:30%; left:calc(50% - 80px); width:60px; height:200px; background: linear-gradient(180deg, #4a3a4a 0%, #2a1a2a 100%); border-radius:0 4px 4px 0; transform-origin: top left; animation: mqt-curtain 6s ease-in-out infinite alternate; }
.scn-madame-quesnel-talks .curtain-right { position:absolute; bottom:30%; right:calc(50% - 80px); width:60px; height:200px; background: linear-gradient(180deg, #4a3a4a 0%, #2a1a2a 100%); border-radius:4px 0 0 4px; transform-origin: top right; animation: mqt-curtain 6s ease-in-out infinite alternate-reverse; }
.scn-madame-quesnel-talks .figure-a { position:absolute; bottom:32%; left:40%; width:22px; height:50px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 40% 50% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mqt-figure-a 7s ease-in-out infinite; }
.scn-madame-quesnel-talks .figure-b { position:absolute; bottom:32%; left:52%; width:24px; height:48px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 40% 50% 40% 50% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mqt-figure-b 8s ease-in-out infinite; }
.scn-madame-quesnel-talks .furniture { position:absolute; bottom:28%; left:46%; width:40px; height:20px; background: linear-gradient(90deg, #3a2a1a 0%, #5a3a2a 100%); border-radius:4px; box-shadow: 0 4px 6px rgba(0,0,0,0.6); }
@keyframes mqt-sky { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes mqt-moon { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-4px) scale(1.02) } 100% { transform: translateY(2px) scale(0.98) } }
@keyframes mqt-curtain { 0% { transform: rotate(0deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-1deg) } }
@keyframes mqt-figure-a { 0% { transform: translateX(0) translateY(0) rotate(-1deg) } 25% { transform: translateX(2px) translateY(-1px) rotate(0deg) } 50% { transform: translateX(0) translateY(0) rotate(1deg) } 75% { transform: translateX(-2px) translateY(-1px) rotate(0deg) } 100% { transform: translateX(0) translateY(0) rotate(-1deg) } }
@keyframes mqt-figure-b { 0% { transform: translateX(0) translateY(0) rotate(1deg) } 33% { transform: translateX(1px) translateY(-1px) rotate(0deg) } 66% { transform: translateX(-1px) translateY(0) rotate(-1deg) } 100% { transform: translateX(0) translateY(0) rotate(1deg) } }

/* madame-montoni-boasts */
.scn-madame-montoni-boasts { background: linear-gradient(180deg, #0c0c20 0%, #1a1a3a 40%, #2a2240 100%), radial-gradient(ellipse at 30% 20%, #3a3a6e 0%, transparent 70%); }
.scn-madame-montoni-boasts .night-bg { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #08081a 0%, #141430 60%, transparent); animation: mmb-night 12s ease-in-out infinite alternate; }
.scn-madame-montoni-boasts .moon-sharp { position:absolute; top:12%; left:20%; width:30px; height:30px; background: radial-gradient(circle, #e0e0f0 0%, #a0a0c0 100%); border-radius:50%; box-shadow: 0 0 20px 8px rgba(160,160,200,0.6); animation: mmb-moon 8s ease-in-out infinite alternate; }
.scn-madame-montoni-boasts .balcony { position:absolute; bottom:15%; left:50%; width:200px; height:30px; transform:translateX(-50%); background: linear-gradient(90deg, #2a2a3a 0%, #3a3a4a 50%, #2a2a3a 100%); border-radius:4px; box-shadow: 0 -4px 8px rgba(0,0,0,0.5); }
.scn-madame-montoni-boasts .city-skyline { position:absolute; bottom:30%; left:10%; right:10%; height:60px; background: linear-gradient(90deg, #1a1a2e 0%, #2a2a3e 30%, #1a1a2e 60%, #2a2a3e 100%); clip-path: polygon(0% 100%, 5% 70%, 10% 100%, 15% 60%, 20% 100%, 30% 50%, 35% 100%, 45% 40%, 50% 100%, 60% 30%, 65% 100%, 75% 50%, 80% 100%, 90% 60%, 95% 100%, 100% 100%); filter: blur(2px); opacity:0.6; }
.scn-madame-montoni-boasts .figure-emily { position:absolute; bottom:20%; left:35%; width:20px; height:46px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 40% 50% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mmb-emily 5s ease-in-out infinite; }
.scn-madame-montoni-boasts .figure-montoni { position:absolute; bottom:20%; left:55%; width:26px; height:50px; background: linear-gradient(180deg, #2a2a3a 0%, #0e0e1e 100%); border-radius: 40% 50% 40% 50% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mmb-montoni 4s ease-in-out infinite; }
.scn-madame-montoni-boasts .candle { position:absolute; bottom:24%; left:52%; width:6px; height:14px; background: linear-gradient(180deg, #c0a040 0%, #a08030 100%); border-radius:2px; box-shadow: 0 0 12px 4px #c0a040; animation: mmb-candle 3s ease-in-out infinite alternate; }
@keyframes mmb-night { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes mmb-moon { 0% { transform: scale(1) } 50% { transform: scale(1.05) } 100% { transform: scale(0.95) } }
@keyframes mmb-emily { 0% { transform: translateX(0) rotate(0deg) } 30% { transform: translateX(-2px) rotate(-2deg) } 60% { transform: translateX(0) rotate(0deg) } 100% { transform: translateX(2px) rotate(2deg) } }
@keyframes mmb-montoni { 0% { transform: translateY(0) scaleY(1) } 25% { transform: translateY(-2px) scaleY(1.02) } 50% { transform: translateY(0) scaleY(1) } 75% { transform: translateY(-1px) scaleY(1.01) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes mmb-candle { 0% { opacity:0.8; transform: scale(1) } 50% { opacity:1; transform: scale(1.1) } 100% { opacity:0.9; transform: scale(0.95) } }

/* dawn-over-landscape */
.scn-dawn-over-landscape { background: linear-gradient(180deg, #f0d8b0 0%, #d8b080 30%, #a08060 60%, #6a5a4a 100%), radial-gradient(ellipse at 50% 0%, #ffe0c0 0%, transparent 60%); }
.scn-dawn-over-landscape .sky-dawn { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #ffcc88 0%, #f0b870 40%, #d8a060 70%, transparent); animation: dol-sky 20s ease-in-out infinite alternate; }
.scn-dawn-over-landscape .sun { position:absolute; bottom:50%; left:50%; width:50px; height:50px; background: radial-gradient(circle, #ffe8a0 0%, #f0c060 60%, transparent 70%); border-radius:50%; box-shadow: 0 0 60px 20px rgba(240,192,96,0.6); animation: dol-sun 25s ease-in-out infinite alternate; }
.scn-dawn-over-landscape .mountains-back { position:absolute; bottom:30%; left:0; right:0; height:50%; background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%); border-radius: 60% 50% 0 0 / 40% 30% 0 0; filter: blur(2px); animation: dol-mountains 15s ease-in-out infinite alternate; }
.scn-dawn-over-landscape .mountains-front { position:absolute; bottom:20%; left:0; right:0; height:60%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 40% 60% 0 0 / 50% 40% 0 0; animation: dol-mountains 18s ease-in-out infinite alternate-reverse; }
.scn-dawn-over-landscape .tree-silhouette { position:absolute; bottom:18%; left:15%; width:30px; height:80px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%; transform-origin: bottom center; animation: dol-tree 9s ease-in-out infinite; }
.scn-dawn-over-landscape .ground { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 30% 70% 0 0 / 50% 50% 0 0; }
.scn-dawn-over-landscape .bird { position:absolute; top:18%; left:70%; width:20px; height:10px; background: #1a1a1a; border-radius:50% 50% 0 0; clip-path: polygon(0% 100%, 30% 0%, 50% 50%, 70% 0%, 100% 100%); animation: dol-bird 30s linear infinite; }
@keyframes dol-sky { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes dol-sun { 0% { transform: translateY(10px) scale(0.95); opacity:0.7 } 50% { transform: translateY(0) scale(1); opacity:1 } 100% { transform: translateY(-5px) scale(1.02); opacity:0.9 } }
@keyframes dol-mountains { 0% { transform: translateX(0) } 50% { transform: translateX(-5px) } 100% { transform: translateX(3px) } }
@keyframes dol-tree { 0% { transform: scaleX(1) } 33% { transform: scaleX(1.02) } 66% { transform: scaleX(0.98) } 100% { transform: scaleX(1) } }
@keyframes dol-bird { 0% { transform: translateX(0) translateY(0) } 25% { transform: translateX(20px) translateY(-8px) } 50% { transform: translateX(40px) translateY(0) } 75% { transform: translateX(60px) translateY(-4px) } 100% { transform: translateX(80px) translateY(0) } }

/* market-boats */
.scn-market-boats { background: linear-gradient(180deg, #b8d8e8 0%, #90b8d0 40%, #6090b0 100%), radial-gradient(ellipse at 50% 100%, #b0d0e0 0%, transparent 70%); }
.scn-market-boats .water { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #5090b0 0%, #306080 100%); animation: mkb-water 10s ease-in-out infinite alternate; }
.scn-market-boats .sky-sun { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #e8e0c0 0%, #c8d8e0 70%, transparent); }
.scn-market-boats .boat-hull-a { position:absolute; bottom:35%; left:15%; width:80px; height:24px; background: linear-gradient(90deg, #8a6a4a 0%, #6a4a2a 100%); border-radius: 30% 30% 50% 50% / 30% 30% 40% 40%; transform-origin: center bottom; animation: mkb-boat 6s ease-in-out infinite; }
.scn-market-boats .boat-hull-b { position:absolute; bottom:32%; right:20%; width:70px; height:20px; background: linear-gradient(90deg, #7a5a3a 0%, #5a3a1a 100%); border-radius: 30% 30% 50% 50% / 30% 30% 40% 40%; transform-origin: center bottom; animation: mkb-boat 7s ease-in-out infinite reverse; }
.scn-market-boats .awning-a { position:absolute; bottom:45%; left:20%; width:60px; height:20px; background: linear-gradient(90deg, #d8b870 0%, #c0a060 100%); border-radius: 30% 30% 0 0; transform: skewX(-5deg); animation: mkb-awning 8s ease-in-out infinite alternate; }
.scn-market-boats .awning-b { position:absolute; bottom:42%; right:25%; width:50px; height:18px; background: linear-gradient(90deg, #b08050 0%, #a07040 100%); border-radius: 30% 30% 0 0; transform: skewX(5deg); animation: mkb-awning 9s ease-in-out infinite alternate-reverse; }
.scn-market-boats .fruit-pile { position:absolute; bottom:38%; left:25%; width:40px; height:30px; background: radial-gradient(circle at 30% 40%, #c87040 0%, #a05030 60%, #6a3020 100%); border-radius:50%; box-shadow: 0 4px 8px rgba(0,0,0,0.3); animation: mkb-fruit 4s ease-in-out infinite; }
.scn-market-boats .figure-rower { position:absolute; bottom:36%; left:18%; width:18px; height:36px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mkb-rower 5s ease-in-out infinite; }
@keyframes mkb-water { 0% { background-position: 0% 0% } 50% { background-position: 10% 0% } 100% { background-position: -5% 0% } }
@keyframes mkb-boat { 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 mkb-awning { 0% { transform: skewX(-5deg) translateY(0) } 50% { transform: skewX(-3deg) translateY(-1px) } 100% { transform: skewX(-5deg) translateY(0) } }
@keyframes mkb-fruit { 0% { transform: scale(1) } 50% { transform: scale(1.05) } 100% { transform: scale(0.95) } }
@keyframes mkb-rower { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 25% { transform: translateX(3px) translateY(-1px) rotate(0deg) } 50% { transform: translateX(0) translateY(0) rotate(2deg) } 75% { transform: translateX(-3px) translateY(-1px) rotate(0deg) } 100% { transform: translateX(0) translateY(0) rotate(-2deg) } }

.scn-horror-suspicion {
  background:
    linear-gradient(180deg, #0b0b1a 0%, #1a1225 40%, #2a1a3a 70%, #0f0f1f 100%),
    radial-gradient(ellipse at 60% 40%, #2a1a3a 0%, transparent 60%);
}
.scn-horror-suspicion .hs-bg      { position:absolute; inset:0; background: linear-gradient(180deg, #121030 0%, #1a1040 100%); animation: hs-flicker 8s ease-in-out infinite alternate; }
.scn-horror-suspicion .hs-floor   { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 20% 20% 0 0; }
.scn-horror-suspicion .hs-wall    { position:absolute; top:0; left:0; right:0; bottom:30%; background: linear-gradient(135deg, #1a1a2a 0%, #2a2a4a 100%); }
.scn-horror-suspicion .hs-window  { position:absolute; top:20%; left:30%; width:40%; height:50%; background: radial-gradient(ellipse at center, #3a4a6a 0%, #1a2a3a 100%); border: 3px solid #3a2a1a; border-radius: 4px; box-shadow: inset 0 0 60px #0a0a2a; animation: hs-window 12s ease-in-out infinite alternate; }
.scn-horror-suspicion .hs-figure  { position:absolute; bottom:28%; left:42%; width:20px; height:50px; background: linear-gradient(180deg, #0a0a1a 0%, #000 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hs-figure 6s ease-in-out infinite; }
.scn-horror-suspicion .hs-chair   { position:absolute; bottom:30%; right:35%; width:30px; height:40px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); border-radius: 20% 20% 10% 10%; transform: rotate(5deg); animation: hs-chair 10s ease-in-out infinite alternate; }
.scn-horror-suspicion .hs-door    { position:absolute; bottom:30%; left:10%; width:30%; height:70%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 8px; box-shadow: inset 0 0 20px #0a0a0a; animation: hs-door 15s ease-in-out infinite alternate; }
.scn-horror-suspicion .hs-shadow  { position:absolute; bottom:30%; left:38%; width:50px; height:30px; background: radial-gradient(ellipse at center, rgba(0,0,0,0.6) 0%, transparent 100%); filter: blur(8px); animation: hs-shadow 5s ease-in-out infinite alternate; }
@keyframes hs-flicker  { 0% { opacity:0.7 } 25% { opacity:1 } 50% { opacity:0.8 } 75% { opacity:1 } 100% { opacity:0.6 } }
@keyframes hs-window   { 0% { opacity:0.6; filter: brightness(0.5) } 50% { opacity:1; filter: brightness(1) } 100% { opacity:0.7; filter: brightness(0.6) } }
@keyframes hs-figure   { 0% { transform: translateX(0) translateY(0) rotate(0deg) } 33% { transform: translateX(5px) translateY(-2px) rotate(2deg) } 66% { transform: translateX(-3px) translateY(1px) rotate(-1deg) } 100% { transform: translateX(0) translateY(0) rotate(0deg) } }
@keyframes hs-chair    { 0% { transform: rotate(5deg) translateX(0) } 50% { transform: rotate(0deg) translateX(-2px) } 100% { transform: rotate(5deg) translateX(0) } }
@keyframes hs-door     { 0% { transform: scaleX(1) } 25% { transform: scaleX(0.98) } 50% { transform: scaleX(1) } 75% { transform: scaleX(0.99) } 100% { transform: scaleX(1) } }
@keyframes hs-shadow   { 0% { transform: scale(1) translateY(0) } 50% { transform: scale(1.2) translateY(-5px) } 100% { transform: scale(1) translateY(0) } }

.scn-confession-murder {
  background:
    linear-gradient(180deg, #1a0e0a 0%, #2a1a12 40%, #3a2a1a 70%, #1a0e0a 100%),
    radial-gradient(ellipse at 60% 50%, #4a3a2a 0%, transparent 70%);
}
.scn-confession-murder .cm-bg      { position:absolute; inset:0; background: linear-gradient(180deg, #1a1212 0%, #2a1a1a 100%); animation: cm-flicker 7s ease-in-out infinite alternate; }
.scn-confession-murder .cm-table   { position:absolute; bottom:25%; left:30%; width:40%; height:15%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 10% 10% 0 0; box-shadow: 0 5px 20px rgba(0,0,0,0.8); }
.scn-confession-murder .cm-candle  { position:absolute; bottom:37%; left:45%; width:8px; height:20px; background: linear-gradient(180deg, #c8a060 0%, #a08040 100%); border-radius: 50% 50% 20% 20%; box-shadow: 0 0 30px 10px rgba(200,160,96,0.6), 0 0 60px 20px rgba(200,160,96,0.3); animation: cm-candle 3s ease-in-out infinite alternate; }
.scn-confession-murder .cm-figure1 { position:absolute; bottom:30%; left:35%; width:25px; height:55px; background: linear-gradient(180deg, #0a0a1a 0%, #000 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cm-fig1 4s ease-in-out infinite; }
.scn-confession-murder .cm-figure2 { position:absolute; bottom:30%; right:30%; width:22px; height:50px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cm-fig2 5s ease-in-out infinite alternate; }
.scn-confession-murder .cm-knife   { position:absolute; bottom:35%; left:50%; width:4px; height:25px; background: linear-gradient(180deg, #a0a0b0 0%, #606070 100%); border-radius: 20% 20% 0 0; transform: rotate(-20deg); box-shadow: 0 0 10px rgba(160,160,176,0.5); animation: cm-knife 6s ease-in-out infinite; }
.scn-confession-murder .cm-shadow  { position:absolute; bottom:25%; left:30%; width:50%; height:20%; background: radial-gradient(ellipse at center, rgba(0,0,0,0.7) 0%, transparent 100%); filter: blur(12px); animation: cm-shadow 8s ease-in-out infinite alternate; }
@keyframes cm-flicker { 0% { opacity:0.6 } 30% { opacity:1 } 60% { opacity:0.8 } 100% { opacity:0.5 } }
@keyframes cm-candle  { 0% { transform: scaleY(1); box-shadow: 0 0 20px 8px rgba(200,160,96,0.5), 0 0 40px 15px rgba(200,160,96,0.2) } 50% { transform: scaleY(1.1); box-shadow: 0 0 30px 12px rgba(200,160,96,0.7), 0 0 60px 25px rgba(200,160,96,0.4) } 100% { transform: scaleY(0.95); box-shadow: 0 0 25px 10px rgba(200,160,96,0.6), 0 0 50px 20px rgba(200,160,96,0.3) } }
@keyframes cm-fig1   { 0% { transform: translateX(0) translateY(0) rotate(0deg) } 25% { transform: translateX(3px) translateY(-1px) rotate(2deg) } 50% { transform: translateX(-2px) translateY(1px) rotate(-1deg) } 75% { transform: translateX(4px) translateY(0) rotate(1deg) } 100% { transform: translateX(0) translateY(0) rotate(0deg) } }
@keyframes cm-fig2   { 0% { transform: translateX(0) translateY(0) scaleX(1) } 50% { transform: translateX(-5px) translateY(2px) scaleX(0.95) } 100% { transform: translateX(0) translateY(0) scaleX(1) } }
@keyframes cm-knife  { 0% { transform: rotate(-20deg) translateY(0) } 33% { transform: rotate(-15deg) translateY(-2px) } 66% { transform: rotate(-25deg) translateY(1px) } 100% { transform: rotate(-20deg) translateY(0) } }
@keyframes cm-shadow { 0% { transform: scaleY(1) translateY(0) } 50% { transform: scaleY(0.8) translateY(5px) } 100% { transform: scaleY(1) translateY(0) } }

.scn-terror-concealment {
  background:
    linear-gradient(180deg, #0a0a14 0%, #14101e 40%, #1a1a28 70%, #0a0a14 100%),
    radial-gradient(ellipse at 70% 30%, #1a1a28 0%, transparent 60%);
}
.scn-terror-concealment .tc-bg      { position:absolute; inset:0; background: linear-gradient(180deg, #12101a 0%, #0a0a14 100%); animation: tc-pulse 10s ease-in-out infinite alternate; }
.scn-terror-concealment .tc-curtain { position:absolute; top:0; left:20%; width:60%; height:80%; background: linear-gradient(135deg, #1a1a2a 0%, #2a2a3a 50%, #1a1a2a 100%); border-radius: 0 0 40% 40% / 0 0 60% 60%; box-shadow: inset 0 0 40px #000; animation: tc-curtain 15s ease-in-out infinite alternate; }
.scn-terror-concealment .tc-figure { position:absolute; bottom:25%; left:35%; width:18px; height:40px; background: linear-gradient(180deg, #0a0a1a 0%, #05050f 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: tc-figure 8s ease-in-out infinite; }
.scn-terror-concealment .tc-chest   { position:absolute; bottom:25%; right:30%; width:40px; height:30px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); border-radius: 10px; box-shadow: inset 0 0 10px #000; animation: tc-chest 12s ease-in-out infinite alternate; }
.scn-terror-concealment .tc-wall    { position:absolute; top:0; left:0; right:0; bottom:30%; background: linear-gradient(90deg, #1a1a2a 0%, #10101a 100%); }
.scn-terror-concealment .tc-floor   { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 20% 20% 0 0; }
.scn-terror-concealment .tc-hand    { position:absolute; bottom:30%; left:55%; width:10px; height:25px; background: linear-gradient(180deg, #0a0a1a 0%, #000 100%); border-radius: 20% 20% 50% 50%; transform: rotate(15deg); animation: tc-hand 4s ease-in-out infinite alternate; }
@keyframes tc-pulse   { 0% { opacity:0.5 } 25% { opacity:0.8 } 50% { opacity:0.6 } 75% { opacity:0.9 } 100% { opacity:0.5 } }
@keyframes tc-curtain { 0% { transform: translateY(0) scaleX(1) } 50% { transform: translateY(3px) scaleX(0.98) } 100% { transform: translateY(0) scaleX(1) } }
@keyframes tc-figure  { 0% { transform: translateX(0) translateY(0) rotate(0deg) } 20% { transform: translateX(2px) translateY(-1px) rotate(1deg) } 40% { transform: translateX(-1px) translateY(0) rotate(-1deg) } 60% { transform: translateX(3px) translateY(1px) rotate(0deg) } 80% { transform: translateX(-2px) translateY(-2px) rotate(2deg) } 100% { transform: translateX(0) translateY(0) rotate(0deg) } }
@keyframes tc-chest   { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-2px) scale(1.02) } 100% { transform: translateY(0) scale(1) } }
@keyframes tc-hand    { 0% { transform: rotate(15deg) translateY(0) } 50% { transform: rotate(10deg) translateY(-3px) } 100% { transform: rotate(15deg) translateY(0) } }

.scn-thunderstorm-terror {
  background:
    linear-gradient(180deg, #1a0a0a 0%, #2a1010 30%, #3a1a1a 60%, #1a0a0a 100%),
    radial-gradient(ellipse at 50% 20%, #4a2020 0%, transparent 60%);
}
.scn-thunderstorm-terror .tt-sky      { position:absolute; inset:0; background: linear-gradient(180deg, #1a0a0a 0%, #2a1212 40%, #3a1a1a 70%, #1a0a0a 100%); animation: tt-sky 20s ease-in-out infinite alternate; }
.scn-thunderstorm-terror .tt-clouds   { position:absolute; top:0; left:0; right:0; height:40%; background: radial-gradient(ellipse at 30% 20%, #5a2a2a 0%, transparent 50%), radial-gradient(ellipse at 70% 30%, #4a1a1a 0%, transparent 60%); filter: blur(8px); animation: tt-clouds 15s ease-in-out infinite alternate; }
.scn-thunderstorm-terror .tt-lightning { position:absolute; top:5%; left:60%; width:5px; height:60%; background: linear-gradient(180deg, #ffffc0 0%, #e0e0a0 100%); border-radius: 30%; box-shadow: 0 0 40px 20px rgba(255,255,192,0.8), 0 0 80px 40px rgba(255,255,192,0.4); animation: tt-lightning 6s ease-in-out infinite; }
.scn-thunderstorm-terror .tt-tree1    { position:absolute; bottom:25%; left:40%; width:30px; height:70px; background: linear-gradient(180deg, #1a0a0a 0%, #2a1a0a 100%); border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%; transform-origin: bottom center; animation: tt-tree 6s ease-in-out infinite alternate; }
.scn-thunderstorm-terror .tt-tree2    { position:absolute; bottom:25%; right:30%; width:25px; height:60px; background: linear-gradient(180deg, #1a0a0a 0%, #2a1a0a 100%); border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%; transform-origin: bottom center; animation: tt-tree 6s ease-in-out infinite alternate-reverse; animation-delay: 1s; }
.scn-thunderstorm-terror .tt-ground   { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 30% 30% 0 0; }
.scn-thunderstorm-terror .tt-figure   { position:absolute; bottom:25%; left:50%; width:15px; height:35px; transform: translateX(-50%); background: linear-gradient(180deg, #0a0a1a 0%, #000 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: tt-figure 3s ease-in-out infinite alternate; }
@keyframes tt-sky       { 0% { opacity:0.5 } 25% { opacity:0.8 } 50% { opacity:0.4 } 75% { opacity:0.9 } 100% { opacity:0.5 } }
@keyframes tt-clouds    { 0% { transform: translateX(0) scale(1) } 50% { transform: translateX(10px) scale(1.05) } 100% { transform: translateX(-10px) scale(0.95) } }
@keyframes tt-lightning { 0% { opacity:0; transform: scaleY(0) } 10% { opacity:1; transform: scaleY(1) } 20% { opacity:0; transform: scaleY(0.5) } 30% { opacity:1; transform: scaleY(1) } 50% { opacity:0; transform: scaleY(0) } 100% { opacity:0; transform: scaleY(0) } }
@keyframes tt-tree      { 0% { transform: rotate(-2deg) translateY(0) } 50% { transform: rotate(2deg) translateY(-3px) } 100% { transform: rotate(-2deg) translateY(0) } }
@keyframes tt-figure    { 0% { transform: translateX(-50%) scaleY(1) } 50% { transform: translateX(-50%) scaleY(0.9) translateY(2px) } 100% { transform: translateX(-50%) scaleY(1) } }

.scn-montoni-stern-lecture { background: linear-gradient(135deg, #2c3e50 0%, #1a1a2e 50%, #0f0f1a 100%), radial-gradient(ellipse at 20% 40%, #d4a373 0%, transparent 70%); }
.scn-montoni-stern-lecture .shadow-bg { position:absolute; inset:0; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a14 100%); mix-blend-mode: multiply; animation: msl-shadow 8s ease-in-out infinite alternate; }
.scn-montoni-stern-lecture .window { position:absolute; top:10%; left:60%; width:120px; height:160px; background: linear-gradient(180deg, #f9e7c0 0%, #ffd6a0 100%); border-radius:4px; box-shadow: 0 0 40px 20px rgba(255,214,160,.5); animation: msl-window 6s ease-in-out infinite alternate; }
.scn-montoni-stern-lecture .light-beam { position:absolute; top:10%; left:60%; width:60px; height:70%; transform-origin: top left; transform: skewX(-15deg); background: linear-gradient(180deg, rgba(255,214,160,.6) 0%, transparent 100%); filter: blur(4px); animation: msl-beam 12s ease-in-out infinite alternate; }
.scn-montoni-stern-lecture .figure-montoni { position:absolute; bottom:15%; left:25%; width:60px; height:130px; background: linear-gradient(180deg, #2c2c3a 0%, #1a1a28 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; box-shadow: -10px 0 20px rgba(0,0,0,.5); animation: msl-montoni 4s ease-in-out infinite alternate; }
.scn-montoni-stern-lecture .figure-emily { position:absolute; bottom:15%; left:38%; width:40px; height:90px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: msl-emily 5s ease-in-out infinite alternate; }
.scn-montoni-stern-lecture .lectern { position:absolute; bottom:10%; left:20%; width:80px; height:40px; background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%); border-radius: 4px; box-shadow: 0 8px 12px rgba(0,0,0,.6); animation: msl-lectern 7s ease-in-out infinite alternate; }
.scn-montoni-stern-lecture .dust { position:absolute; top:15%; left:55%; width:100px; height:100px; background: radial-gradient(circle, rgba(255,214,160,.3) 0%, transparent 70%); filter: blur(8px); animation: msl-dust 10s ease-in-out infinite; }
@keyframes msl-shadow { 0% { opacity:.7; transform: translateY(0) } 50% { opacity:.9; transform: translateY(-2px) } 100% { opacity:.8; transform: translateY(0) } }
@keyframes msl-window { 0% { opacity:.8; transform: scaleX(.95) } 50% { opacity:1; transform: scaleX(1.02) } 100% { opacity:.9; transform: scaleX(.98) } }
@keyframes msl-beam { 0% { opacity:.4; transform: skewX(-15deg) translateX(-5px) } 50% { opacity:.7; transform: skewX(-15deg) translateX(5px) } 100% { opacity:.5; transform: skewX(-15deg) translateX(-5px) } }
@keyframes msl-montoni { 0% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-6px) rotate(1deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes msl-emily { 0% { transform: translateY(0) scaleX(1) } 50% { transform: translateY(-4px) scaleX(.95) } 100% { transform: translateY(0) scaleX(1) } }
@keyframes msl-lectern { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes msl-dust { 0% { opacity:.2; transform: translate(0,0) scale(1) } 50% { opacity:.6; transform: translate(10px,-10px) scale(1.2) } 100% { opacity:.3; transform: translate(-5px,5px) scale(.9) } }

.scn-carlo-brings-fruit { background: linear-gradient(180deg, #f5e6ca 0%, #d4c4a0 50%, #b8a88a 100%), radial-gradient(ellipse at 50% 70%, #fff8e0 0%, transparent 80%); }
.scn-carlo-brings-fruit .table { position:absolute; bottom:0; left:10%; right:10%; height:45%; background: linear-gradient(180deg, #a08060 0%, #806040 100%); border-radius: 8px 8px 0 0; box-shadow: 0 -8px 20px rgba(0,0,0,.2); animation: cbf-table 15s ease-in-out infinite alternate; }
.scn-carlo-brings-fruit .fruit-bowl { position:absolute; bottom:30%; left:40%; width:80px; height:50px; background: radial-gradient(ellipse at 50% 30%, #c07040 0%, #a05030 100%); border-radius: 50% 50% 40% 40%; box-shadow: 0 6px 12px rgba(0,0,0,.3); animation: cbf-bowl 10s ease-in-out infinite alternate; }
.scn-carlo-brings-fruit .carlo { position:absolute; bottom:10%; left:20%; width:50px; height:120px; background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cbf-carlo 6s ease-in-out infinite; }
.scn-carlo-brings-fruit .window-light { position:absolute; top:5%; left:10%; width:100px; height:150px; background: linear-gradient(180deg, #ffecd0 0%, transparent 100%); border-radius: 4px; box-shadow: 0 0 30px 15px rgba(255,236,208,.4); animation: cbf-light 8s ease-in-out infinite alternate; }
.scn-carlo-brings-fruit .shadow-ground { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, rgba(0,0,0,.1) 0%, rgba(0,0,0,.3) 100%); filter: blur(6px); animation: cbf-shadow 12s ease-in-out infinite alternate; }
.scn-carlo-brings-fruit .tiles { position:absolute; bottom:0; left:0; right:0; height:20%; background: repeating-linear-gradient(90deg, transparent 0px, transparent 20px, rgba(255,255,255,.05) 20px, rgba(255,255,255,.05) 40px); opacity:.3; animation: cbf-tiles 20s linear infinite; }
.scn-carlo-brings-fruit .carlo-hand { position:absolute; bottom:35%; left:25%; width:20px; height:30px; background: linear-gradient(180deg, #9a8a7a 0%, #7a6a5a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: cbf-hand 4s ease-in-out infinite; }
@keyframes cbf-table { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes cbf-bowl { 0% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-4px) rotate(2deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes cbf-carlo { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes cbf-light { 0% { opacity:.6; transform: scaleX(.95) } 50% { opacity:1; transform: scaleX(1) } 100% { opacity:.7; transform: scaleX(.98) } }
@keyframes cbf-shadow { 0% { opacity:.5 } 50% { opacity:.8 } 100% { opacity:.6 } }
@keyframes cbf-tiles { 0% { background-position:0 0 } 100% { background-position:40px 0 } }
@keyframes cbf-hand { 0% { transform: translateY(0) rotate(-5deg) } 50% { transform: translateY(-4px) rotate(5deg) } 100% { transform: translateY(0) rotate(-5deg) } }

.scn-carlo-friendly { background: linear-gradient(180deg, #f8e4c0 0%, #e0c8a0 40%, #c8b090 100%), radial-gradient(ellipse at 60% 50%, #fff0d0 0%, transparent 70%); }
.scn-carlo-friendly .table { position:absolute; bottom:0; left:5%; right:5%; height:40%; background: linear-gradient(180deg, #a08060 0%, #806040 100%); border-radius: 12px 12px 0 0; box-shadow: 0 -6px 20px rgba(0,0,0,.15); animation: caf-table 20s ease-in-out infinite alternate; }
.scn-carlo-friendly .basket { position:absolute; bottom:25%; left:30%; width:100px; height:70px; background: linear-gradient(180deg, #b08860 0%, #906840 100%); border-radius: 30% 30% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 4px 8px rgba(0,0,0,.2); animation: caf-basket 12s ease-in-out infinite alternate; }
.scn-carlo-friendly .cherries { position:absolute; bottom:32%; left:35%; width:40px; height:40px; background: radial-gradient(circle at 40% 40%, #c8553d 0%, #a0461a 100%); border-radius: 50%; box-shadow: 0 2px 6px rgba(0,0,0,.3); animation: caf-cherries 6s ease-in-out infinite alternate; }
.scn-carlo-friendly .carlo-hand { position:absolute; bottom:30%; left:20%; width:24px; height:40px; background: linear-gradient(180deg, #9a8a7a 0%, #7a6a5a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: caf-carlo-hand 5s ease-in-out infinite; }
.scn-carlo-friendly .emily-hand { position:absolute; bottom:32%; left:45%; width:20px; height:35px; background: linear-gradient(180deg, #c8a888 0%, #a88868 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: caf-emily-hand 5s ease-in-out infinite; }
.scn-carlo-friendly .sunburst { position:absolute; top:5%; left:50%; width:150px; height:150px; background: radial-gradient(circle, #fff0c0 0%, transparent 70%); filter: blur(20px); opacity:.5; animation: caf-sunburst 10s ease-in-out infinite alternate; }
.scn-carlo-friendly .shadow-soft { position:absolute; bottom:0; left:0; right:0; height:15%; background: linear-gradient(180deg, rgba(0,0,0,.1) 0%, rgba(0,0,0,.25) 100%); filter: blur(8px); animation: caf-shadow 14s ease-in-out infinite alternate; }
@keyframes caf-table { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes caf-basket { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-3px) rotate(1deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes caf-cherries { 0% { transform: translate(0,0) scale(1) } 50% { transform: translate(2px,-2px) scale(1.1) } 100% { transform: translate(-1px,1px) scale(.95) } }
@keyframes caf-carlo-hand { 0% { transform: translateY(0) rotate(-8deg) } 50% { transform: translateY(-4px) rotate(4deg) } 100% { transform: translateY(0) rotate(-8deg) } }
@keyframes caf-emily-hand { 0% { transform: translateY(0) rotate(5deg) } 50% { transform: translateY(-3px) rotate(-3deg) } 100% { transform: translateY(0) rotate(5deg) } }
@keyframes caf-sunburst { 0% { opacity:.3; transform: scale(.8) } 50% { opacity:.6; transform: scale(1.1) } 100% { opacity:.4; transform: scale(.9) } }
@keyframes caf-shadow { 0% { opacity:.4 } 50% { opacity:.7 } 100% { opacity:.5 } }

.scn-ramparts-walk { background: linear-gradient(180deg, #87cceb 0%, #b0d4e8 40%, #d4e8f0 70%, #e8f4f8 100%), radial-gradient(ellipse at 50% 0%, #fff8e0 0%, transparent 50%); }
.scn-ramparts-walk .sky { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #7ab8d4 0%, #b0d4e8 100%); animation: rpw-sky 20s ease-in-out infinite alternate; }
.scn-ramparts-walk .mountains { position:absolute; bottom:35%; left:0; right:0; height:25%; background: linear-gradient(180deg, #4a6a7a 0%, #2a4a5a 100%); border-radius: 50% 50% 0 0 / 80% 80% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.3); animation: rpw-mountains 30s ease-in-out infinite alternate; }
.scn-ramparts-walk .rampart-wall { position:absolute; bottom:0; left:10%; right:10%; height:40%; background: linear-gradient(90deg, #7a6a5a 0%, #9a8a7a 20%, #7a6a5a 40%, #6a5a4a 70%, #7a6a5a 100%); border-radius: 20px 20px 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,.3); animation: rpw-wall 15s ease-in-out infinite alternate; }
.scn-ramparts-walk .figure-emily { position:absolute; bottom:25%; left:45%; width:25px; height:60px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rpw-figure 8s ease-in-out infinite; }
.scn-ramparts-walk .cloud { position:absolute; top:12%; left:5%; width:120px; height:20px; background: linear-gradient(180deg, rgba(255,255,255,.7) 0%, rgba(255,255,255,.2) 100%); border-radius: 50%; filter: blur(8px); animation: rpw-cloud 40s linear infinite; }
.scn-ramparts-walk .precipice-edge { position:absolute; bottom:0; left:0; right:0; height:10%; background: linear-gradient(180deg, rgba(0,0,0,.2) 0%, rgba(0,0,0,.6) 100%); filter: blur(4px); animation: rpw-edge 25s ease-in-out infinite alternate; }
.scn-ramparts-walk .sun { position:absolute; top:5%; right:15%; width:80px; height:80px; background: radial-gradient(circle, #fff8e0 0%, #ffe080 100%); border-radius: 50%; box-shadow: 0 0 40px 20px rgba(255,224,128,.5); animation: rpw-sun 18s ease-in-out infinite alternate; }
@keyframes rpw-sky { 0% { opacity:.8; transform: translateY(0) } 50% { opacity:1; transform: translateY(-3px) } 100% { opacity:.9; transform: translateY(0) } }
@keyframes rpw-mountains { 0% { transform: translateY(0) scaleX(1) } 50% { transform: translateY(-4px) scaleX(1.02) } 100% { transform: translateY(0) scaleX(1) } }
@keyframes rpw-wall { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes rpw-figure { 0% { transform: translateY(0) rotate(-1deg) } 25% { transform: translateX(5px) translateY(-2px) rotate(1deg) } 50% { transform: translateX(10px) translateY(0) rotate(-1deg) } 75% { transform: translateX(15px) translateY(-2px) rotate(1deg) } 100% { transform: translateX(20px) translateY(0) rotate(0) } }
@keyframes rpw-cloud { 0% { transform: translateX(0) } 100% { transform: translateX(130vw) } }
@keyframes rpw-edge { 0% { opacity:.5 } 50% { opacity:.8 } 100% { opacity:.6 } }
@keyframes rpw-sun { 0% { transform: scale(.9); opacity:.7 } 50% { transform: scale(1.05); opacity:1 } 100% { transform: scale(.95); opacity:.8 } }

.scn-midnight-terrace-meeting {
  background:
    linear-gradient(180deg, #0b0e2a 0%, #1a2040 40%, #2a3060 100%),
    radial-gradient(ellipse at 50% 80%, #2a3060 0%, transparent 60%);
}
.scn-midnight-terrace-meeting .sky {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #0d112e 0%, transparent 100%);
  animation: mtm-sky 15s ease-in-out infinite alternate;
}
.scn-midnight-terrace-meeting .moon {
  position: absolute; top: 15%; left: 25%; width: 60px; height: 60px;
  background: radial-gradient(circle at 40% 40%, #e8e0ff 0%, #b0a8d0 60%, #7a72a0 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 15px rgba(200, 190, 255, 0.3), 0 0 80px 30px rgba(150, 140, 200, 0.2);
  animation: mtm-moon 20s ease-in-out infinite alternate;
}
.scn-midnight-terrace-meeting .cloud-a {
  position: absolute; top: 22%; left: 10%; width: 120px; height: 25px;
  background: linear-gradient(180deg, rgba(180, 180, 220, 0.6) 0%, rgba(180, 180, 220, 0.1) 100%);
  border-radius: 50%; filter: blur(8px);
  animation: mtm-drift-a 45s linear infinite;
}
.scn-midnight-terrace-meeting .cloud-b {
  position: absolute; top: 30%; right: 5%; width: 90px; height: 20px;
  background: linear-gradient(180deg, rgba(160, 160, 200, 0.5) 0%, transparent 100%);
  border-radius: 50%; filter: blur(6px);
  animation: mtm-drift-b 60s linear infinite reverse;
}
.scn-midnight-terrace-meeting .terrace-wall {
  position: absolute; bottom: 35%; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #3a3a5a 0%, #2a2a4a 100%);
  border-radius: 5% 5% 0 0 / 40% 40% 0 0;
  box-shadow: inset 0 4px 12px rgba(0,0,0,0.5);
  animation: mtm-wall 12s ease-in-out infinite alternate;
}
.scn-midnight-terrace-meeting .figure-a {
  position: absolute; bottom: 35%; left: 35%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mtm-figure-a 5s ease-in-out infinite;
}
.scn-midnight-terrace-meeting .figure-b {
  position: absolute; bottom: 35%; left: 55%; width: 22px; height: 42px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mtm-figure-b 5s ease-in-out infinite 2.5s;
}
.scn-midnight-terrace-meeting .lantern {
  position: absolute; bottom: 38%; left: 43%; width: 8px; height: 8px;
  background: radial-gradient(circle, #ffd080 0%, #c08040 70%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px rgba(255, 200, 100, 0.6), 0 0 40px 12px rgba(200, 150, 50, 0.3);
  animation: mtm-lantern 3s ease-in-out infinite alternate;
}

@keyframes mtm-sky { 0%{opacity:0.7} 50%{opacity:1} 100%{opacity:0.8} }
@keyframes mtm-moon { 0%{transform:translateY(0); opacity:0.9} 50%{transform:translateY(3px); opacity:1} 100%{transform:translateY(0); opacity:0.85} }
@keyframes mtm-drift-a { 0%{transform:translateX(-80px)} 100%{transform:translateX(120vw)} }
@keyframes mtm-drift-b { 0%{transform:translateX(0)} 100%{transform:translateX(-100vw)} }
@keyframes mtm-wall { 0%{transform:translateY(0)} 50%{transform:translateY(-2px)} 100%{transform:translateY(0)} }
@keyframes mtm-figure-a { 0%,100%{transform:translateX(0) rotate(-0.5deg)} 25%{transform:translateX(3px) rotate(1deg)} 50%{transform:translateX(0) rotate(-0.5deg)} 75%{transform:translateX(-3px) rotate(1deg)} }
@keyframes mtm-figure-b { 0%,100%{transform:translateX(0) rotate(0.5deg)} 25%{transform:translateX(-3px) rotate(-1deg)} 50%{transform:translateX(0) rotate(0.5deg)} 75%{transform:translateX(3px) rotate(-1deg)} }
@keyframes mtm-lantern { 0%{transform:scale(0.9); opacity:0.8} 50%{transform:scale(1.1); opacity:1} 100%{transform:scale(0.95); opacity:0.85} }

/* ---- scene: voice-on-terrace ---- */
.scn-voice-on-terrace {
  background:
    linear-gradient(180deg, #0c1028 0%, #181c38 50%, #242848 100%),
    radial-gradient(ellipse at 50% 70%, #242848 0%, transparent 60%);
}
.scn-voice-on-terrace .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #0a0e24 0%, transparent 100%);
  animation: vot-sky 18s ease-in-out infinite alternate;
}
.scn-voice-on-terrace .moon {
  position: absolute; top: 12%; left: 70%; width: 50px; height: 50px;
  background: radial-gradient(circle at 35% 35%, #f0e8ff 0%, #b8b0d8 60%, #7068a0 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(200, 190, 255, 0.4), 0 0 60px 20px rgba(150, 140, 200, 0.2);
  animation: vot-moon 22s ease-in-out infinite alternate;
}
.scn-voice-on-terrace .terrace-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #2a2a48 0%, #1e1e38 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
  box-shadow: inset 0 4px 12px rgba(0,0,0,0.5);
}
.scn-voice-on-terrace .wall {
  position: absolute; bottom: 40%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #3a3a58 0%, #2a2a48 100%);
  box-shadow: inset 0 -4px 8px rgba(0,0,0,0.4);
}
.scn-voice-on-terrace .door {
  position: absolute; bottom: 40%; left: 20%; width: 50px; height: 80px;
  background: linear-gradient(180deg, #4a4a68 0%, #3a3a58 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.5), 2px 0 6px rgba(0,0,0,0.3);
  transform-origin: left center;
  animation: vot-door 8s ease-in-out infinite;
}
.scn-voice-on-terrace .figure {
  position: absolute; bottom: 45%; left: 55%; width: 22px; height: 45px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: vot-figure 6s ease-in-out infinite;
}
.scn-voice-on-terrace .moonlight-beam {
  position: absolute; top: 10%; left: 50%; width: 90px; height: 200px;
  background: linear-gradient(180deg, rgba(200, 200, 255, 0.15) 0%, transparent 100%);
  transform: rotate(15deg) translateX(-50%);
  filter: blur(8px);
  animation: vot-beam 10s ease-in-out infinite alternate;
}

@keyframes vot-sky { 0%{opacity:0.6} 50%{opacity:0.9} 100%{opacity:0.7} }
@keyframes vot-moon { 0%{transform:translateY(0); opacity:0.85} 50%{transform:translateY(4px); opacity:1} 100%{transform:translateY(-2px); opacity:0.9} }
@keyframes vot-door { 0%,100%{transform:scaleX(1)} 50%{transform:scaleX(0.05)} }
@keyframes vot-figure { 0%,100%{transform:translateX(0) rotate(-0.5deg)} 25%{transform:translateX(2px) rotate(1deg)} 50%{transform:translateX(0) rotate(0deg)} 75%{transform:translateX(-2px) rotate(-1deg)} }
@keyframes vot-beam { 0%{opacity:0.3} 50%{opacity:0.7} 100%{opacity:0.4} }

/* ---- scene: trick-to-escape ---- */
.scn-trick-to-escape {
  background:
    linear-gradient(180deg, #0c1028 0%, #181c38 40%, #202440 100%),
    radial-gradient(ellipse at 50% 60%, #202440 0%, transparent 70%);
}
.scn-trick-to-escape .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #0a0e24 0%, transparent 100%);
  animation: tte-sky 14s ease-in-out infinite alternate;
}
.scn-trick-to-escape .terrace-bg {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #2a2a48 0%, #1e1e38 100%);
  border-radius: 30% 30% 0 0 / 50% 50% 0 0;
}
.scn-trick-to-escape .shadow-a {
  position: absolute; bottom: 50%; left: 20%; width: 30px; height: 60px;
  background: rgba(0,0,0,0.4);
  border-radius: 50% 50% 40% 40% / 40% 40% 30% 30%;
  transform: skewX(-10deg);
  animation: tte-shadow-a 5s ease-in-out infinite;
}
.scn-trick-to-escape .shadow-b {
  position: absolute; bottom: 50%; left: 60%; width: 35px; height: 65px;
  background: rgba(0,0,0,0.3);
  border-radius: 50% 50% 40% 40% / 40% 40% 30% 30%;
  transform: skewX(10deg);
  animation: tte-shadow-b 5s ease-in-out infinite 2s;
}
.scn-trick-to-escape .figure.runner {
  position: absolute; bottom: 50%; left: 25%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tte-runner 4s ease-in-out infinite;
}
.scn-trick-to-escape .figure.soldier {
  position: absolute; bottom: 50%; left: 65%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tte-soldier 4s ease-in-out infinite 1s;
}
.scn-trick-to-escape .sound-wave {
  position: absolute; top: 40%; left: 35%; width: 20px; height: 20px;
  background: radial-gradient(circle, rgba(180, 200, 255, 0.4) 0%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 20px 5px rgba(180, 200, 255, 0.3);
  animation: tte-sound 3s ease-out infinite;
}

@keyframes tte-sky { 0%{opacity:0.7} 50%{opacity:1} 100%{opacity:0.8} }
@keyframes tte-shadow-a { 0%,100%{transform:skewX(-10deg) translateX(0); opacity:0.4} 50%{transform:skewX(-10deg) translateX(15px); opacity:0.2} }
@keyframes tte-shadow-b { 0%,100%{transform:skewX(10deg) translateX(0); opacity:0.3} 50%{transform:skewX(10deg) translateX(-15px); opacity:0.15} }
@keyframes tte-runner { 0%{transform:translateX(0) translateY(0) rotate(-3deg)} 25%{transform:translateX(12px) translateY(-2px) rotate(2deg)} 50%{transform:translateX(24px) translateY(0) rotate(-1deg)} 75%{transform:translateX(36px) translateY(-3px) rotate(3deg)} 100%{transform:translateX(48px) translateY(0) rotate(0deg)} }
@keyframes tte-soldier { 0%{transform:translateX(0) translateY(0) rotate(-2deg)} 25%{transform:translateX(10px) translateY(-1px) rotate(1deg)} 50%{transform:translateX(20px) translateY(0) rotate(-2deg)} 75%{transform:translateX(30px) translateY(-2px) rotate(2deg)} 100%{transform:translateX(40px) translateY(0) rotate(0deg)} }
@keyframes tte-sound { 0%{transform:scale(1); opacity:0.6} 50%{transform:scale(2.5); opacity:0.2} 100%{transform:scale(4); opacity:0} }

/* ---- scene: emily-confirms ---- */
.scn-emily-confirms {
  background:
    linear-gradient(180deg, #fef8e8 0%, #f0e8d8 40%, #e0d8c8 100%),
    radial-gradient(ellipse at 20% 10%, #fffae8 0%, transparent 50%);
}
.scn-emily-confirms .room-wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #e8e0d0 0%, #d0c8b8 100%);
  border: 1px solid rgba(0,0,0,0.05);
}
.scn-emily-confirms .window {
  position: absolute; top: 15%; left: 60%; width: 100px; height: 130px;
  background: linear-gradient(180deg, #cce8f8 0%, #a0c8e8 100%);
  border: 4px solid rgba(100, 80, 60, 0.3);
  box-shadow: inset 0 0 20px rgba(255, 255, 200, 0.3);
  border-radius: 4% 4% 0 0;
}
.scn-emily-confirms .sunlight-beam {
  position: absolute; top: 18%; left: 62%; width: 200px; height: 300px;
  background: linear-gradient(135deg, rgba(255, 240, 200, 0.25) 0%, transparent 70%);
  transform: rotate(20deg) translateX(-40%);
  filter: blur(10px);
  animation: ec-beam 12s ease-in-out infinite alternate;
}
.scn-emily-confirms .table {
  position: absolute; bottom: 12%; left: 10%; width: 160px; height: 20px;
  background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%);
  border-radius: 4% 4% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
}
.scn-emily-confirms .chair-left {
  position: absolute; bottom: 12%; left: 15%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%);
  border-radius: 20% 20% 0 0 / 30% 30% 0 0;
  transform-origin: bottom center;
  animation: ec-chair-left 8s ease-in-out infinite;
}
.scn-emily-confirms .chair-right {
  position: absolute; bottom: 12%; left: 50%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%);
  border-radius: 20% 20% 0 0 / 30% 30% 0 0;
  transform-origin: bottom center;
  animation: ec-chair-right 8s ease-in-out infinite 4s;
}
.scn-emily-confirms .dust-motes {
  position: absolute; inset: 0;
  background: radial-gradient(circle at 70% 20%, rgba(255, 240, 200, 0.1) 0%, transparent 60%);
  filter: blur(3px);
  animation: ec-dust 18s ease-in-out infinite alternate;
}

@keyframes ec-beam { 0%{opacity:0.5; transform:rotate(20deg) translateX(-40%) scale(1)} 50%{opacity:0.8; transform:rotate(22deg) translateX(-38%) scale(1.05)} 100%{opacity:0.6; transform:rotate(18deg) translateX(-42%) scale(0.95)} }
@keyframes ec-chair-left { 0%,100%{transform:translateX(0) rotate(0deg)} 25%{transform:translateX(2px) rotate(1deg)} 50%{transform:translateX(0) rotate(0deg)} 75%{transform:translateX(-2px) rotate(-1deg)} }
@keyframes ec-chair-right { 0%,100%{transform:translateX(0) rotate(0deg)} 25%{transform:translateX(2px) rotate(1deg)} 50%{transform:translateX(0) rotate(0deg)} 75%{transform:translateX(-2px) rotate(-1deg)} }
@keyframes ec-dust { 0%{background-position:0% 0%; opacity:0.4} 50%{background-position:100% 100%; opacity:0.7} 100%{background-position:0% 100%; opacity:0.5} }

/* countess-reluctance - calm sunlit château exterior */
.scn-countess-reluctance {
  background: linear-gradient(180deg, #c8d8e8 0%, #a0b8d0 40%, #7a9ab8 100%),
              radial-gradient(ellipse at 50% 0%, #f0e8c0 0%, transparent 60%);
}
.scn-countess-reluctance .sky-cr {
  position: absolute;
  inset: 0 0 50% 0;
  background: linear-gradient(180deg, #d4e4f0 0%, #b8cce0 100%);
  animation: cr-sky 12s ease-in-out infinite alternate;
}
.scn-countess-reluctance .sun-cr {
  position: absolute;
  top: 8%;
  left: 70%;
  width: 60px;
  height: 60px;
  background: radial-gradient(circle, #fff5d0 0%, #f0d080 50%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 80px 30px rgba(240,208,128,0.4);
  animation: cr-sun 20s ease-in-out infinite alternate;
}
.scn-countess-reluctance .chateau-cr {
  position: absolute;
  bottom: 25%;
  left: 30%;
  width: 180px;
  height: 120px;
  background: linear-gradient(180deg, #b0a890 0%, #8a7e6a 60%, #6a5e4e 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 10px 20px rgba(0,0,0,0.3);
  transform: perspective(300px) rotateX(2deg);
  animation: cr-chateau 8s ease-in-out infinite;
}
.scn-countess-reluctance .ivy-cr {
  position: absolute;
  bottom: 25%;
  left: 30%;
  width: 180px;
  height: 100px;
  background: radial-gradient(ellipse at 20% 80%, #3a5a2a 0%, transparent 60%),
              radial-gradient(ellipse at 80% 90%, #2a4a1a 0%, transparent 50%);
  filter: blur(2px);
  animation: cr-ivy 6s ease-in-out infinite alternate;
}
.scn-countess-reluctance .window-cr {
  position: absolute;
  bottom: 45%;
  left: 38%;
  width: 30px;
  height: 40px;
  background: radial-gradient(circle, #e0d0a0 0%, #b0a070 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 0 30px 10px rgba(224,208,160,0.5), 0 0 60px 20px rgba(224,208,160,0.2);
  animation: cr-window 4s ease-in-out infinite alternate;
}
.scn-countess-reluctance .steward-cr {
  position: absolute;
  bottom: 22%;
  left: 35%;
  width: 20px;
  height: 40px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cr-steward 5s ease-in-out infinite;
}
@keyframes cr-sky { 0% { opacity: 0.7 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes cr-sun { 0% { transform: translateX(0) scale(1) } 50% { transform: translateX(-10px) scale(1.05) } 100% { transform: translateX(5px) scale(0.95) } }
@keyframes cr-chateau { 0% { transform: perspective(300px) rotateX(2deg) translateY(0) } 50% { transform: perspective(300px) rotateX(2deg) translateY(-2px) } 100% { transform: perspective(300px) rotateX(2deg) translateY(0) } }
@keyframes cr-ivy { 0% { opacity: 0.5; transform: scaleY(1) } 50% { opacity: 0.8; transform: scaleY(1.05) } 100% { opacity: 0.6; transform: scaleY(1) } }
@keyframes cr-window { 0% { box-shadow: 0 0 20px 5px rgba(224,208,160,0.3); opacity: 0.8 } 50% { box-shadow: 0 0 50px 15px rgba(224,208,160,0.7); opacity: 1 } 100% { box-shadow: 0 0 30px 8px rgba(224,208,160,0.4); opacity: 0.9 } }
@keyframes cr-steward { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 25% { transform: translateX(5px) translateY(-1px) rotate(2deg) } 50% { transform: translateX(10px) translateY(0) rotate(-1deg) } 75% { transform: translateX(15px) translateY(-1px) rotate(1deg) } 100% { transform: translateX(20px) translateY(0) rotate(0) } }

/* family-preparations - calm sunlit interior */
.scn-family-preparations {
  background: linear-gradient(180deg, #e8ddd0 0%, #c8b8a0 50%, #a89078 100%),
              radial-gradient(ellipse at 50% 30%, #f0e4d0 0%, transparent 70%);
}
.scn-family-preparations .wall-fp {
  position: absolute;
  inset: 0 0 20% 0;
  background: linear-gradient(180deg, #dcc8b0 0%, #b8a088 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,0.15);
  animation: fp-wall 10s ease-in-out infinite alternate;
}
.scn-family-preparations .window-fp {
  position: absolute;
  top: 20%;
  right: 15%;
  width: 50px;
  height: 70px;
  background: linear-gradient(180deg, #d0e0f0 0%, #a0b8d0 100%);
  border-radius: 10%;
  box-shadow: 0 0 30px 8px rgba(160,184,208,0.4);
  animation: fp-window 6s ease-in-out infinite alternate;
}
.scn-family-preparations .chest-fp {
  position: absolute;
  bottom: 20%;
  left: 20%;
  width: 80px;
  height: 40px;
  background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%);
  border-radius: 8%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.3);
  animation: fp-chest 4s ease-in-out infinite alternate;
}
.scn-family-preparations .map-fp {
  position: absolute;
  bottom: 30%;
  left: 22%;
  width: 60px;
  height: 40px;
  background: linear-gradient(135deg, #d0b890 0%, #b09870 100%);
  border-radius: 4%;
  transform: rotate(5deg);
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
  animation: fp-map 5s ease-in-out infinite alternate;
}
.scn-family-preparations .henri-fp {
  position: absolute;
  bottom: 18%;
  right: 28%;
  width: 24px;
  height: 50px;
  background: linear-gradient(180deg, #b05040 0%, #803030 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fp-henri 4s ease-in-out infinite;
}
.scn-family-preparations .blanche-fp {
  position: absolute;
  bottom: 18%;
  left: 30%;
  width: 18px;
  height: 36px;
  background: linear-gradient(180deg, #70a0c0 0%, #4878a0 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fp-blanche 5s ease-in-out infinite;
}
@keyframes fp-wall { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.95 } }
@keyframes fp-window { 0% { box-shadow: 0 0 20px 5px rgba(160,184,208,0.3); opacity: 0.8 } 50% { box-shadow: 0 0 40px 10px rgba(160,184,208,0.6); opacity: 1 } 100% { box-shadow: 0 0 25px 6px rgba(160,184,208,0.4); opacity: 0.9 } }
@keyframes fp-chest { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes fp-map { 0% { transform: rotate(5deg) translateX(0) } 50% { transform: rotate(3deg) translateX(3px) } 100% { transform: rotate(5deg) translateX(0) } }
@keyframes fp-henri { 0% { transform: translateX(0) translateY(0) rotate(-1deg) } 25% { transform: translateX(4px) translateY(-1px) rotate(1deg) } 50% { transform: translateX(8px) translateY(0) rotate(-1deg) } 75% { transform: translateX(12px) translateY(-1px) rotate(2deg) } 100% { transform: translateX(16px) translateY(0) rotate(0) } }
@keyframes fp-blanche { 0% { transform: translateX(0) translateY(0) rotate(1deg) } 33% { transform: translateX(-4px) translateY(-1px) rotate(-1deg) } 66% { transform: translateX(-8px) translateY(0) rotate(1deg) } 100% { transform: translateX(-12px) translateY(-1px) rotate(0) } }

/* blanche-freed - warm sunlit exterior with carriage */
.scn-blanche-freed {
  background: linear-gradient(180deg, #f0e8d8 0%, #d8c8a8 40%, #a89068 100%),
              radial-gradient(ellipse at 50% 0%, #ffe8c0 0%, transparent 60%);
}
.scn-blanche-freed .sky-bf {
  position: absolute;
  inset: 0 0 45% 0;
  background: linear-gradient(180deg, #e0d4b8 0%, #c8b898 100%);
  animation: bf-sky 15s ease-in-out infinite alternate;
}
.scn-blanche-freed .convent-wall-bf {
  position: absolute;
  bottom: 25%;
  left: 10%;
  width: 40%;
  height: 60%;
  background: linear-gradient(180deg, #b8a888 0%, #8a7a5a 100%);
  border-radius: 20% 0 0 0;
  box-shadow: 0 8px 16px rgba(0,0,0,0.2);
  animation: bf-wall 8s ease-in-out infinite alternate;
}
.scn-blanche-freed .door-bf {
  position: absolute;
  bottom: 25%;
  left: 28%;
  width: 60px;
  height: 90px;
  background: linear-gradient(180deg, #7a6040 0%, #5a4020 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: bf-door 6s ease-in-out infinite alternate;
}
.scn-blanche-freed .carriage-bf {
  position: absolute;
  bottom: 20%;
  right: 10%;
  width: 100px;
  height: 60px;
  background: linear-gradient(180deg, #c8a868 0%, #a08848 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.3);
  transform: skewX(-5deg);
  animation: bf-carriage 7s ease-in-out infinite alternate;
}
.scn-blanche-freed .blanche-bf {
  position: absolute;
  bottom: 18%;
  left: 25%;
  width: 18px;
  height: 38px;
  background: linear-gradient(180deg, #80a0c0 0%, #4870a0 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bf-blanche 5s ease-in-out infinite;
}
.scn-blanche-freed .postillion-bf {
  position: absolute;
  bottom: 18%;
  right: 12%;
  width: 20px;
  height: 42px;
  background: linear-gradient(180deg, #9a7a5a 0%, #6a4a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bf-postillion 6s ease-in-out infinite;
}
@keyframes bf-sky { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.9 } }
@keyframes bf-wall { 0% { transform: scaleY(1) } 50% { transform: scaleY(0.98) } 100% { transform: scaleY(1) } }
@keyframes bf-door { 0% { transform: translateX(0) } 50% { transform: translateX(2px) } 100% { transform: translateX(0) } }
@keyframes bf-carriage { 0% { transform: skewX(-5deg) translateX(0) } 50% { transform: skewX(-5deg) translateX(-5px) } 100% { transform: skewX(-5deg) translateX(0) } }
@keyframes bf-blanche { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 33% { transform: translateX(5px) translateY(-1px) rotate(1deg) } 66% { transform: translateX(10px) translateY(0) rotate(-2deg) } 100% { transform: translateX(15px) translateY(-1px) rotate(0) } }
@keyframes bf-postillion { 0% { transform: translateX(0) translateY(0) rotate(1deg) } 25% { transform: translateX(-3px) translateY(-1px) rotate(-1deg) } 50% { transform: translateX(-6px) translateY(0) rotate(1deg) } 75% { transform: translateX(-9px) translateY(-1px) rotate(-1deg) } 100% { transform: translateX(-12px) translateY(0) rotate(0) } }

/* blanche-joins-family - warm sunlit parlour */
.scn-blanche-joins-family {
  background: linear-gradient(180deg, #e8dcc8 0%, #c8b898 40%, #a89878 100%),
              radial-gradient(ellipse at 50% 40%, #f0e0c0 0%, transparent 60%);
}
.scn-blanche-joins-family .parlour-bj {
  position: absolute;
  inset: 0 0 15% 0;
  background: linear-gradient(180deg, #dcc8a8 0%, #b8a080 100%);
  box-shadow: inset 0 0 30px rgba(0,0,0,0.1);
  animation: bj-parlour 12s ease-in-out infinite alternate;
}
.scn-blanche-joins-family .window-bj {
  position: absolute;
  top: 18%;
  left: 12%;
  width: 55px;
  height: 75px;
  background: linear-gradient(180deg, #d0e0f0 0%, #a0b8d0 100%);
  border-radius: 8%;
  box-shadow: 0 0 40px 10px rgba(160,184,208,0.5);
  animation: bj-window 7s ease-in-out infinite alternate;
}
.scn-blanche-joins-family .hearth-bj {
  position: absolute;
  bottom: 15%;
  left: 55%;
  width: 50px;
  height: 60px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.4);
  animation: bj-hearth 9s ease-in-out infinite alternate;
}
.scn-blanche-joins-family .countess-bj {
  position: absolute;
  bottom: 18%;
  right: 25%;
  width: 22px;
  height: 48px;
  background: linear-gradient(180deg, #c0a888 0%, #907860 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bj-countess 4s ease-in-out infinite;
}
.scn-blanche-joins-family .blanche-bj {
  position: absolute;
  bottom: 18%;
  left: 30%;
  width: 18px;
  height: 40px;
  background: linear-gradient(180deg, #70a0c0 0%, #4878a0 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bj-blanche 5s ease-in-out infinite;
}
.scn-blanche-joins-family .chair-bj {
  position: absolute;
  bottom: 15%;
  left: 38%;
  width: 30px;
  height: 45px;
  background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%);
  border-radius: 20% 20% 5% 5%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
  animation: bj-chair 6s ease-in-out infinite alternate;
}
@keyframes bj-parlour { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.95 } }
@keyframes bj-window { 0% { box-shadow: 0 0 20px 5px rgba(160,184,208,0.3); opacity: 0.8 } 50% { box-shadow: 0 0 50px 15px rgba(160,184,208,0.7); opacity: 1 } 100% { box-shadow: 0 0 30px 8px rgba(160,184,208,0.4); opacity: 0.9 } }
@keyframes bj-hearth { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes bj-countess { 0% { transform: translateX(0) translateY(0) rotate(-1deg) } 33% { transform: translateX(3px) translateY(-1px) rotate(1deg) } 66% { transform: translateX(6px) translateY(0) rotate(-1deg) } 100% { transform: translateX(9px) translateY(-1px) rotate(0) } }
@keyframes bj-blanche { 0% { transform: translateX(0) translateY(0) rotate(1deg) } 25% { transform: translateX(-4px) translateY(-1px) rotate(-1deg) } 50% { transform: translateX(-8px) translateY(0) rotate(1deg) } 75% { transform: translateX(-12px) translateY(-1px) rotate(-1deg) } 100% { transform: translateX(-16px) translateY(0) rotate(0) } }
@keyframes bj-chair { 0% { transform: scaleY(1) } 50% { transform: scaleY(0.96) } 100% { transform: scaleY(1) } }

/* countess-lacleur — seductive gaslit salon */
.scn-countess-lacleur {
  background: linear-gradient(180deg, #2a1a12 0%, #3d261a 30%, #4a3020 60%, #1f0f08 100%), radial-gradient(ellipse at 70% 50%, #5a3a2a 0%, transparent 60%);
}
.scn-countess-lacleur .bg-warmer { position:absolute; inset:0; background: radial-gradient(ellipse at 30% 60%, #8a5a3a 0%, transparent 70%), #2a1a12; opacity:0.4; animation: cla-warm 6s ease-in-out infinite alternate; }
.scn-countess-lacleur .drapery { position:absolute; top:0; left:10%; width:80%; height:60%; background: linear-gradient(135deg, #5a2e1a 0%, #3a1a0a 50%, #2a0f05 100%); border-radius: 0 0 40% 40%; transform: skewX(-5deg); box-shadow: 0 10px 30px rgba(0,0,0,0.6); animation: cla-sway 8s ease-in-out infinite alternate; }
.scn-countess-lacleur .chair { position:absolute; bottom:12%; left:50%; width:60px; height:80px; transform:translateX(-50%); background: linear-gradient(180deg, #3a2010 0%, #1f0f05 100%); border-radius: 10% 10% 20% 20%; box-shadow: 0 4px 8px rgba(0,0,0,0.5); }
.scn-countess-lacleur .figure { position:absolute; bottom:22%; left:48%; width:24px; height:60px; background: linear-gradient(180deg, #2a1a0e 0%, #0a0502 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: cla-breathe 4s ease-in-out infinite; }
.scn-countess-lacleur .candle { position:absolute; bottom:15%; left:36%; width:6px; height:30px; background: linear-gradient(180deg, #f0d0a0 0%, #c09050 100%); border-radius: 2px 2px 0 0; box-shadow: 0 0 10px 2px #ffb060; transform:translateY(-8px); }
.scn-countess-lacleur .flame { position:absolute; bottom:42%; left:36%; width:8px; height:14px; margin-left:-1px; background: radial-gradient(circle, #ffe0a0 0%, #ffa030 60%, transparent 100%); border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%; animation: cla-flicker 1.5s ease-in-out infinite alternate; }
.scn-countess-lacleur .mirror { position:absolute; top:20%; right:20%; width:50px; height:70px; background: linear-gradient(135deg, #8a7a6a 0%, #c0b0a0 30%, #e0d0c0 50%, #b0a090 70%, #8a7a6a 100%); border-radius: 5% 5% 10% 10% / 8% 8% 12% 12%; box-shadow: 0 0 20px 10px rgba(255,200,120,0.3), inset 0 0 30px rgba(0,0,0,0.1); animation: cla-glint 5s ease-in-out infinite alternate; }
.scn-countess-lacleur .reflection { position:absolute; top:22%; right:22%; width:30px; height:40px; background: radial-gradient(ellipse at 30% 40%, rgba(255,220,160,0.3) 0%, transparent 70%); border-radius: 10%; filter: blur(3px); opacity:0.6; animation: cla-reflect 5s ease-in-out infinite alternate; }

@keyframes cla-warm { 0% { opacity:0.3; } 50% { opacity:0.5; } 100% { opacity:0.4; } }
@keyframes cla-sway { 0% { transform: skewX(-5deg) translateY(0); } 50% { transform: skewX(-3deg) translateY(-2px); } 100% { transform: skewX(-5deg) translateY(0); } }
@keyframes cla-breathe { 0%,100% { transform: translateX(-2px) scaleY(1); } 33% { transform: translateX(2px) scaleY(1.02); } 66% { transform: translateX(-1px) scaleY(0.98); } }
@keyframes cla-flicker { 0% { transform: scaleY(1) translateY(0); opacity:0.9; } 50% { transform: scaleY(1.3) translateY(-3px); opacity:1; } 100% { transform: scaleY(0.9) translateY(1px); opacity:0.8; } }
@keyframes cla-glint { 0% { box-shadow: 0 0 10px 2px rgba(255,200,120,0.1); } 50% { box-shadow: 0 0 30px 12px rgba(255,220,160,0.4); } 100% { box-shadow: 0 0 15px 5px rgba(255,200,120,0.2); } }
@keyframes cla-reflect { 0% { opacity:0.3; } 50% { opacity:0.7; } 100% { opacity:0.4; } }

/* petits-soupers — intimate gaslit dinner */
.scn-petits-soupers {
  background: linear-gradient(180deg, #1f0f05 0%, #3a2010 40%, #2a1508 70%, #0f0702 100%), radial-gradient(ellipse at 50% 60%, #4a2a1a 0%, transparent 60%);
}
.scn-petits-soupers .bg-intimate { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 45%, #6a3a20 0%, transparent 70%); animation: sou-glint 8s ease-in-out infinite alternate; }
.scn-petits-soupers .table { position:absolute; bottom:20%; left:20%; width:60%; height:30%; background: linear-gradient(180deg, #4a2a14 0%, #2a150a 100%); border-radius: 40% 40% 10% 10% / 60% 60% 20% 20%; box-shadow: 0 -4px 10px rgba(0,0,0,0.6); }
.scn-petits-soupers .plate { position:absolute; bottom:32%; left:38%; width:30px; height:8px; background: radial-gradient(circle, #f0f0e0 0%, #c0b090 70%); border-radius: 50%; box-shadow: 0 0 5px rgba(255,255,240,0.3); }
.scn-petits-soupers .wine-glass { position:absolute; bottom:35%; left:50%; width:12px; height:20px; background: linear-gradient(180deg, #c08050 0%, #a06030 100%); border-radius: 0 0 40% 40% / 0 0 60% 60%; clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%); transform: rotate(-5deg); box-shadow: 0 0 8px rgba(200,100,50,0.2); animation: sou-sway 6s ease-in-out infinite alternate; }
.scn-petits-soupers .figure-left { position:absolute; bottom:28%; left:25%; width:22px; height:50px; background: linear-gradient(180deg, #2a1a0e 0%, #0f0804 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform: rotate(5deg); animation: sou-breathe 4s ease-in-out infinite; }
.scn-petits-soupers .figure-right { position:absolute; bottom:28%; right:25%; width:20px; height:48px; background: linear-gradient(180deg, #1f1208 0%, #0a0502 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform: rotate(-5deg); animation: sou-breathe 4s ease-in-out infinite reverse; }
.scn-petits-soupers .candle-petit { position:absolute; bottom:38%; left:45%; width:4px; height:18px; background: linear-gradient(180deg, #f0d0a0 0%, #b08040 100%); border-radius: 1px; transform:translateY(-5px); box-shadow: 0 0 12px 4px rgba(255,180,80,0.5); animation: sou-flicker 1.2s ease-in-out infinite alternate; }

@keyframes sou-glint { 0% { opacity:0.3; } 50% { opacity:0.6; } 100% { opacity:0.4; } }
@keyframes sou-sway { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-1px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes sou-breathe { 0%,100% { transform: scaleY(1) translateY(0); } 33% { transform: scaleY(1.03) translateY(-1px); } 66% { transform: scaleY(0.97) translateY(1px); } }
@keyframes sou-flicker { 0% { transform: scaleY(1); opacity:0.8; } 50% { transform: scaleY(1.4) translateY(-2px); opacity:1; } 100% { transform: scaleY(0.9) translateY(1px); opacity:0.7; } }

/* dangerous-pleasures — gathering with music */
.scn-dangerous-pleasures {
  background: linear-gradient(180deg, #1a0f08 0%, #2a1a0e 30%, #3d261a 60%, #1f0f05 100%), radial-gradient(ellipse at 60% 50%, #4a2a14 0%, transparent 60%);
}
.scn-dangerous-pleasures .bg-party { position:absolute; inset:0; background: radial-gradient(ellipse at 40% 60%, #6a3a20 0%, transparent 70%); animation: dan-pulse 7s ease-in-out infinite alternate; }
.scn-dangerous-pleasures .archway { position:absolute; top:10%; left:5%; width:90%; height:60%; background: linear-gradient(135deg, #3a1a0a 0%, #2a0f05 50%, #1a0502 100%); border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%; box-shadow: 0 10px 20px rgba(0,0,0,0.7); }
.scn-dangerous-pleasures .harpsichord { position:absolute; bottom:15%; left:30%; width:80px; height:40px; background: linear-gradient(180deg, #5a3018 0%, #2a150a 100%); border-radius: 5% 5% 20% 20% / 10% 10% 30% 30%; box-shadow: 0 4px 8px rgba(0,0,0,0.5); transform: rotate(-2deg); }
.scn-dangerous-pleasures .player { position:absolute; bottom:20%; left:38%; width:20px; height:50px; background: linear-gradient(180deg, #2a1a0e 0%, #0f0804 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform: rotate(5deg); origin: bottom center; animation: dan-play 3s ease-in-out infinite; }
.scn-dangerous-pleasures .listener { position:absolute; bottom:20%; right:28%; width:18px; height:48px; background: linear-gradient(180deg, #1f1208 0%, #0a0502 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform: rotate(-5deg); animation: dan-listen 4s ease-in-out infinite; }
.scn-dangerous-pleasures .candelabra { position:absolute; top:40%; left:50%; width:10px; height:30px; background: linear-gradient(180deg, #b09070 0%, #705040 100%); border-radius: 5px; transform:translateX(-50%); box-shadow: 0 0 20px 6px rgba(255,180,80,0.3); }
.scn-dangerous-pleasures .music-stand { position:absolute; bottom:22%; left:45%; width:15px; height:20px; background: linear-gradient(180deg, #4a3018 0%, #2a180a 100%); border-radius: 2px; transform: rotate(3deg); box-shadow: 0 0 5px rgba(255,200,100,0.2); animation: dan-stand 5s ease-in-out infinite alternate; }
.scn-dangerous-pleasures .drapery-side { position:absolute; top:0; left:80%; width:20%; height:100%; background: linear-gradient(180deg, #4a2010 0%, #2a1005 100%); border-radius: 0 0 0 50%; box-shadow: inset 0 0 20px rgba(0,0,0,0.5); animation: dan-sway 9s ease-in-out infinite alternate; }

@keyframes dan-pulse { 0% { opacity:0.3; } 50% { opacity:0.6; } 100% { opacity:0.4; } }
@keyframes dan-play { 0%,100% { transform: rotate(5deg) translateY(0); } 33% { transform: rotate(3deg) translateY(-2px); } 66% { transform: rotate(6deg) translateY(1px); } }
@keyframes dan-listen { 0%,100% { transform: rotate(-5deg) scaleY(1); } 33% { transform: rotate(-3deg) scaleY(1.02); } 66% { transform: rotate(-6deg) scaleY(0.98); } }
@keyframes dan-stand { 0% { transform: rotate(3deg); } 50% { transform: rotate(-1deg); } 100% { transform: rotate(3deg); } }
@keyframes dan-sway { 0% { transform: translateX(0); } 50% { transform: translateX(-3px); } 100% { transform: translateX(0); } }

/* emily-absent-increases-danger — dim interior, sad mood */
.scn-emily-absent-increases-danger {
  background: linear-gradient(180deg, #0f0f16 0%, #1a1a24 30%, #14141d 60%, #0a0a10 100%), radial-gradient(ellipse at 50% 40%, #2a2a3a 0%, transparent 70%);
}
.scn-emily-absent-increases-danger .bg-dim { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 60%, #1f1f2a 0%, transparent 70%); animation: emi-fade 10s ease-in-out infinite alternate; }
.scn-emily-absent-increases-danger .wall { position:absolute; top:0; left:0; right:0; bottom:40%; background: linear-gradient(180deg, #1f1f2a 0%, #10101a 100%); box-shadow: inset 0 0 30px rgba(0,0,0,0.5); }
.scn-emily-absent-increases-danger .window-moon { position:absolute; top:20%; right:20%; width:40px; height:60px; background: linear-gradient(135deg, #3a3a5a 0%, #5a5a7a 50%, #3a3a5a 100%); border-radius: 5% 5% 10% 10% / 8% 8% 12% 12%; box-shadow: 0 0 30px 10px rgba(100,100,160,0.2), inset 0 0 20px rgba(200,200,255,0.1); animation: emi-moon 8s ease-in-out infinite alternate; }
.scn-emily-absent-increases-danger .chair-empty { position:absolute; bottom:10%; left:40%; width:50px; height:70px; background: linear-gradient(180deg, #2a2a30 0%, #15151a 100%); border-radius: 10% 10% 20% 20%; box-shadow: 0 4px 8px rgba(0,0,0,0.5); }
.scn-emily-absent-increases-danger .figure-slumped { position:absolute; bottom:14%; left:42%; width:20px; height:50px; background: linear-gradient(180deg, #14141a 0%, #08080c 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform: rotate(10deg) translateX(3px); transform-origin: bottom center; animation: emi-slump 5s ease-in-out infinite; }
.scn-emily-absent-increases-danger .table-small { position:absolute; bottom:8%; left:35%; width:30px; height:15px; background: linear-gradient(180deg, #2a2a30 0%, #1a1a20 100%); border-radius: 5px 5px 10px 10px; box-shadow: 0 2px 5px rgba(0,0,0,0.4); }
.scn-emily-absent-increases-danger .glass { position:absolute; bottom:12%; left:38%; width:8px; height:12px; background: linear-gradient(180deg, #3a3a50 0%, #1a1a2a 100%); border-radius: 0 0 5px 5px; transform: rotate(-5deg); animation: emi-glass 6s ease-in-out infinite alternate; }

@keyframes emi-fade { 0% { opacity:0.4; } 50% { opacity:0.6; } 100% { opacity:0.5; } }
@keyframes emi-moon { 0% { box-shadow: 0 0 20px 5px rgba(100,100,160,0.1); opacity:0.6; } 50% { box-shadow: 0 0 40px 15px rgba(140,140,200,0.3); opacity:0.8; } 100% { box-shadow: 0 0 25px 8px rgba(100,100,160,0.15); opacity:0.65; } }
@keyframes emi-slump { 0%,100% { transform: rotate(10deg) translateX(3px) scaleY(1); } 33% { transform: rotate(8deg) translateX(2px) scaleY(0.97); } 66% { transform: rotate(12deg) translateX(4px) scaleY(1.02); } }
@keyframes emi-glass { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-1px); } 100% { transform: rotate(-5deg) translateY(0); } }

/* night-watch */
.scn-night-watch {
  background: 
    linear-gradient(180deg, #0a1035 0%, #151f50 35%, #1a2a5a 65%, #0f1428 100%),
    radial-gradient(ellipse at 60% 20%, #b5c9e0 0%, transparent 60%);
}
.scn-night-watch .casement {
  position: absolute; inset: 0 0 0 0;
  background: linear-gradient(135deg, #1a1a2e 0%, #0e0e1a 100%);
  clip-path: polygon(10% 10%, 90% 10%, 90% 90%, 10% 90%);
  box-shadow: inset 0 0 60px 20px #050510;
  animation: nw-casement 14s ease-in-out infinite alternate;
}
.scn-night-watch .mountains {
  position: absolute; bottom: 35%; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #1b2845 0%, #2a3a5a 30%, #3a4a6a 60%, #4a5a7a 100%);
  border-radius: 30% 70% 0 0 / 50% 50% 0 0;
  transform: scaleY(0.9);
  animation: nw-shift 18s ease-in-out infinite alternate;
}
.scn-night-watch .woods {
  position: absolute; bottom: 30%; left: 20%; right: 20%; height: 12%;
  background: linear-gradient(90deg, #1a2a1a 0%, #0a1a0a 30%, #1a2a1a 60%, #0a1a0a 100%);
  border-radius: 40% 60% 0 0 / 100% 80% 0 0;
  filter: blur(2px);
  animation: nw-sway 12s ease-in-out infinite alternate;
}
.scn-night-watch .towers {
  position: absolute; bottom: 40%; left: 55%; width: 35px; height: 60px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: -1px 0 6px rgba(0,0,0,0.6);
  transform: skewY(-2deg);
}
.scn-night-watch .terrace {
  position: absolute; bottom: 25%; left: 15%; right: 15%; height: 12%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 0 0 20% 20%;
  box-shadow: 0 -5px 12px rgba(0,0,0,0.6);
}
.scn-night-watch .figure {
  position: absolute; bottom: 30%; right: 35%; width: 16px; height: 32px;
  background: linear-gradient(180deg, #0f0f1a 0%, #050510 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: nw-figure 6s ease-in-out infinite alternate;
}
.scn-night-watch .moonlight {
  position: absolute; top: 15%; left: 40%; width: 120px; height: 120px;
  background: radial-gradient(circle, rgba(200,215,255,0.25) 0%, rgba(200,215,255,0.1) 40%, transparent 70%);
  border-radius: 50%;
  animation: nw-moon 20s ease-in-out infinite alternate;
}
.scn-night-watch .shadow-mist {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 30% 70%, rgba(0,0,10,0.6) 0%, transparent 70%);
  animation: nw-mist 25s ease-in-out infinite alternate;
}
@keyframes nw-casement {
  0% { opacity: 0.85; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes nw-shift {
  0% { transform: translateY(0) scaleY(0.9); }
  50% { transform: translateY(-3px) scaleY(0.92); }
  100% { transform: translateY(0) scaleY(0.9); }
}
@keyframes nw-sway {
  0% { transform: translateX(0) skewX(0); }
  50% { transform: translateX(-2px) skewX(1deg); }
  100% { transform: translateX(2px) skewX(-1deg); }
}
@keyframes nw-figure {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(2deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes nw-moon {
  0% { opacity: 0.6; transform: scale(1); }
  50% { opacity: 0.9; transform: scale(1.05); }
  100% { opacity: 0.7; transform: scale(0.95); }
}
@keyframes nw-mist {
  0% { opacity: 0.3; }
  50% { opacity: 0.6; }
  100% { opacity: 0.4; }
}

/* morning-visit */
.scn-morning-visit {
  background: 
    linear-gradient(90deg, #f2e6c8 0%, #e8d5a8 20%, #d4b877 40%, #f0deac 60%, #f7eed0 100%),
    radial-gradient(ellipse at 70% 30%, #fff7e0 0%, transparent 60%);
}
.scn-morning-visit .hallway {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, #c0a878 0%, #b09060 30%, #c8b080 70%, #b89868 100%);
  clip-path: polygon(0 0, 100% 0, 100% 100%, 30% 100%, 25% 60%, 0 60%);
}
.scn-morning-visit .door {
  position: absolute; bottom: 20%; left: 60%; width: 50px; height: 100px;
  background: linear-gradient(180deg, #6b4c2a 0%, #4a3018 100%);
  border-radius: 5% 5% 0 0;
  box-shadow: 0 8px 16px rgba(0,0,0,0.4);
  transform: perspective(200px) rotateY(5deg);
  animation: mv-door 10s ease-in-out infinite alternate;
}
.scn-morning-visit .sunbeam {
  position: absolute; top: 10%; left: 40%; width: 60%; height: 80%;
  background: linear-gradient(135deg, rgba(255,245,200,0.4) 0%, rgba(255,245,200,0.1) 50%, transparent 80%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  animation: mv-sunbeam 16s ease-in-out infinite alternate;
}
.scn-morning-visit .figure {
  position: absolute; bottom: 22%; left: 45%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mv-figure 4s ease-in-out infinite;
}
.scn-morning-visit .stone-wall {
  position: absolute; top: 0; left: 0; right: 40%; bottom: 30%;
  background: 
    linear-gradient(90deg, #8a7a5a 0%, #7a6a4a 20%, #8a7a5a 40%, #6a5a3a 60%, #7a6a4a 80%, #8a7a5a 100%);
  border-radius: 0 0 30% 0;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.2);
}
.scn-morning-visit .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 22%;
  background: linear-gradient(180deg, #b09870 0%, #8a7858 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.15);
}
.scn-morning-visit .dust-motes {
  position: absolute; top: 20%; left: 30%; width: 100px; height: 100px;
  background: radial-gradient(circle, rgba(255,255,220,0.3) 0%, transparent 70%);
  filter: blur(8px);
  animation: mv-dust 12s ease-in-out infinite alternate;
}
@keyframes mv-door {
  0% { transform: perspective(200px) rotateY(5deg); }
  50% { transform: perspective(200px) rotateY(2deg); }
  100% { transform: perspective(200px) rotateY(6deg); }
}
@keyframes mv-sunbeam {
  0% { opacity: 0.4; transform: rotate(-2deg); }
  50% { opacity: 0.8; transform: rotate(1deg); }
  100% { opacity: 0.5; transform: rotate(0deg); }
}
@keyframes mv-figure {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  25% { transform: translateX(4px) translateY(-2px) rotate(2deg); }
  50% { transform: translateX(8px) translateY(0) rotate(-1deg); }
  75% { transform: translateX(12px) translateY(-1px) rotate(1deg); }
  100% { transform: translateX(16px) translateY(0) rotate(0deg); }
}
@keyframes mv-dust {
  0% { transform: translate(0,0) scale(1); opacity: 0.2; }
  50% { transform: translate(10px, -5px) scale(1.2); opacity: 0.5; }
  100% { transform: translate(-5px, 3px) scale(0.9); opacity: 0.3; }
}

/* council-and-dispute */
.scn-council-and-dispute {
  background: 
    linear-gradient(180deg, #1c1810 0%, #2a2218 30%, #3a2c1a 60%, #1a1410 100%),
    radial-gradient(ellipse at 50% 40%, #b87538 0%, transparent 70%);
}
.scn-council-and-dispute .table {
  position: absolute; bottom: 20%; left: 20%; right: 20%; height: 15%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 30% 30% 0 0;
  box-shadow: 0 -6px 12px rgba(0,0,0,0.6);
}
.scn-council-and-dispute .figure-orsino {
  position: absolute; bottom: 25%; left: 30%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #1a1410 0%, #0a0808 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform: skewX(-5deg);
  animation: cd-figure-orsino 8s ease-in-out infinite;
}
.scn-council-and-dispute .figure-verezzi {
  position: absolute; bottom: 25%; right: 30%; width: 22px; height: 42px;
  background: linear-gradient(180deg, #1a1410 0%, #0a0808 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform: skewX(5deg);
  animation: cd-figure-verezzi 7s ease-in-out infinite;
}
.scn-council-and-dispute .gas-lamp {
  position: absolute; top: 25%; left: 50%; width: 16px; height: 12px;
  background: radial-gradient(circle, #ffb060 0%, #c07020 60%);
  border-radius: 50%;
  box-shadow: 0 0 40px 12px #d08020, 0 0 80px 24px rgba(208,128,32,0.3);
  animation: cd-lamp 3s ease-in-out infinite alternate;
}
.scn-council-and-dispute .shadow-left {
  position: absolute; top: 0; left: 0; width: 45%; height: 100%;
  background: linear-gradient(90deg, rgba(0,0,0,0.8) 0%, transparent 100%);
  animation: cd-shadow-left 12s ease-in-out infinite alternate;
}
.scn-council-and-dispute .shadow-right {
  position: absolute; top: 0; right: 0; width: 45%; height: 100%;
  background: linear-gradient(270deg, rgba(0,0,0,0.8) 0%, transparent 100%);
  animation: cd-shadow-right 12s ease-in-out infinite alternate;
}
.scn-council-and-dispute .glow-aura {
  position: absolute; top: 15%; left: 35%; right: 35%; height: 40%;
  background: radial-gradient(ellipse, rgba(255,180,60,0.15) 0%, transparent 70%);
  animation: cd-glow 5s ease-in-out infinite alternate;
}
@keyframes cd-figure-orsino {
  0% { transform: translateX(0) skewX(-5deg); }
  50% { transform: translateX(-3px) skewX(-3deg); }
  100% { transform: translateX(3px) skewX(-5deg); }
}
@keyframes cd-figure-verezzi {
  0% { transform: translateX(0) skewX(5deg); }
  50% { transform: translateX(3px) skewX(3deg); }
  100% { transform: translateX(-3px) skewX(5deg); }
}
@keyframes cd-lamp {
  0% { box-shadow: 0 0 30px 8px #d08020, 0 0 60px 16px rgba(208,128,32,0.2); opacity: 0.8; }
  50% { box-shadow: 0 0 50px 15px #ffb040, 0 0 100px 30px rgba(255,176,64,0.4); opacity: 1; }
  100% { box-shadow: 0 0 35px 10px #d08020, 0 0 70px 20px rgba(208,128,32,0.25); opacity: 0.85; }
}
@keyframes cd-shadow-left {
  0% { opacity: 0.6; }
  50% { opacity: 0.9; }
  100% { opacity: 0.7; }
}
@keyframes cd-shadow-right {
  0% { opacity: 0.6; }
  50% { opacity: 0.9; }
  100% { opacity: 0.7; }
}
@keyframes cd-glow {
  0% { opacity: 0.2; }
  50% { opacity: 0.5; }
  100% { opacity: 0.3; }
}

/* verezzi-challenges */
.scn-verezzi-challenges {
  background: 
    linear-gradient(135deg, #1a1410 0%, #2a2018 30%, #1a1410 70%, #0a0808 100%),
    radial-gradient(ellipse at 40% 50%, #b06828 0%, transparent 60%);
}
.scn-verezzi-challenges .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.5);
}
.scn-verezzi-challenges .figure-verezzi {
  position: absolute; bottom: 22%; left: 25%; width: 24px; height: 48px;
  background: linear-gradient(180deg, #1a1410 0%, #0a0808 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform: rotate(-15deg) scale(1.1);
  animation: vc-verezzi 1.5s ease-in-out infinite alternate;
}
.scn-verezzi-challenges .figure-montoni {
  position: absolute; bottom: 22%; right: 25%; width: 26px; height: 50px;
  background: linear-gradient(180deg, #1a1410 0%, #0a0808 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform: rotate(10deg);
  animation: vc-montoni 2s ease-in-out infinite alternate;
}
.scn-verezzi-challenges .sword-hand {
  position: absolute; bottom: 28%; left: 23%; width: 8px; height: 20px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 30% 30% 10% 10%;
  transform: rotate(-30deg);
  transform-origin: bottom center;
  animation: vc-sword 0.8s ease-in-out infinite alternate;
}
.scn-verezzi-challenges .gas-lamp {
  position: absolute; top: 30%; left: 50%; width: 14px; height: 10px;
  background: radial-gradient(circle, #ffc070 0%, #b06020 70%);
  border-radius: 50%;
  box-shadow: 0 0 35px 10px #d08020, 0 0 70px 20px rgba(208,128,32,0.3);
  animation: vc-lamp 2.5s ease-in-out infinite alternate;
}
.scn-verezzi-challenges .shadow {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 30% 50%, rgba(0,0,0,0.7) 0%, transparent 60%);
  animation: vc-shadow 4s ease-in-out infinite alternate;
}
.scn-verezzi-challenges .spark {
  position: absolute; top: 35%; left: 20%; width: 4px; height: 4px;
  background: radial-gradient(circle, #ffd080 0%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 8px 2px #ffb040;
  animation: vc-spark 0.6s ease-in-out infinite;
}
@keyframes vc-verezzi {
  0% { transform: rotate(-15deg) scale(1.1) translateX(0); }
  100% { transform: rotate(-10deg) scale(1.15) translateX(5px); }
}
@keyframes vc-montoni {
  0% { transform: rotate(10deg) translateX(0); }
  100% { transform: rotate(8deg) translateX(-5px); }
}
@keyframes vc-sword {
  0% { transform: rotate(-30deg); }
  100% { transform: rotate(-15deg); }
}
@keyframes vc-lamp {
  0% { box-shadow: 0 0 25px 8px #d08020, 0 0 50px 15px rgba(208,128,32,0.2); opacity: 0.8; }
  50% { box-shadow: 0 0 45px 14px #ffb040, 0 0 90px 28px rgba(255,176,64,0.4); opacity: 1; }
  100% { box-shadow: 0 0 30px 10px #d08020, 0 0 60px 18px rgba(208,128,32,0.3); opacity: 0.85; }
}
@keyframes vc-shadow {
  0% { opacity: 0.5; }
  50% { opacity: 0.8; }
  100% { opacity: 0.6; }
}
@keyframes vc-spark {
  0% { transform: translate(0,0) scale(1); opacity: 1; }
  50% { transform: translate(8px,-4px) scale(0.8); opacity: 0.6; }
  100% { transform: translate(16px,0) scale(0.5); opacity: 0; }
}

.scn-last-moments {
  background: linear-gradient(180deg, #2d2418 0%, #1e1610 40%, #140f0c 100%),
              radial-gradient(ellipse at 50% 80%, #3a2a1a 0%, transparent 60%);
}
.scn-last-moments .wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #2d2418 0%, #1e1610 100%);
  animation: lm-wall 20s ease-in-out infinite alternate;
}
.scn-last-moments .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #1a1410 0%, #2d2418 100%);
  border-radius: 0 0 12% 12% / 0 0 20% 20%;
}
.scn-last-moments .window {
  position: absolute; top: 15%; left: 50%; width: 30%; height: 40%;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 30%, #4a6a7a 0%, #1c2a33 60%, transparent 80%);
  border: 4px solid #1a1410; border-radius: 4% 4% 2% 2%; box-shadow: inset 0 0 30px rgba(74,106,122,0.3);
  animation: lm-window 12s ease-in-out infinite alternate;
}
.scn-last-moments .figure {
  position: absolute; bottom: 25%; left: 38%; width: 12%; height: 35%;
  background: radial-gradient(ellipse at 50% 30%, #3a2a1a 20%, #1a1410 70%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lm-figure 6s ease-in-out infinite alternate;
}
.scn-last-moments .candle {
  position: absolute; bottom: 23%; left: 52%; width: 2%; height: 6%;
  background: linear-gradient(0deg, #c8a060 0%, #b88840 30%, #8a6020 100%);
  border-radius: 10% 10% 30% 30%; box-shadow: 0 0 8px 4px #d4a040;
  animation: lm-candle 3s ease-in-out infinite alternate;
}
.scn-last-moments .smoke {
  position: absolute; bottom: 29%; left: 52%; width: 8%; height: 20%;
  background: radial-gradient(ellipse at 50% 50%, rgba(140,120,80,0.4) 0%, transparent 70%);
  filter: blur(4px);
  animation: lm-smoke 8s ease-in-out infinite;
}
.scn-last-moments .shadow {
  position: absolute; bottom: 15%; left: 30%; width: 40%; height: 20%;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.6) 0%, transparent 70%);
  filter: blur(3px);
  animation: lm-shadow 12s ease-in-out infinite alternate;
}
@keyframes lm-wall { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes lm-window { 0% { opacity: 0.6; transform: translateX(-50%) translateY(0); } 50% { opacity: 0.9; transform: translateX(-50%) translateY(-2px); } 100% { opacity: 0.7; transform: translateX(-50%) translateY(0); } }
@keyframes lm-figure { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 25% { transform: translateX(2px) translateY(-1px) rotate(0.5deg); } 50% { transform: translateX(0) translateY(0) rotate(0deg); } 75% { transform: translateX(-2px) translateY(-1px) rotate(-0.5deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes lm-candle { 0% { opacity: 0.7; transform: scaleY(1); box-shadow: 0 0 4px 2px #d4a040; } 50% { opacity: 1; transform: scaleY(1.05); box-shadow: 0 0 10px 5px #e8b860; } 100% { opacity: 0.8; transform: scaleY(0.95); box-shadow: 0 0 6px 3px #d4a040; } }
@keyframes lm-smoke { 0% { opacity: 0; transform: translateY(0) scale(1); } 25% { opacity: 0.5; transform: translateY(-10px) scale(1.2); } 50% { opacity: 0.3; transform: translateY(-20px) scale(1.5); } 75% { opacity: 0.1; transform: translateY(-30px) scale(2); } 100% { opacity: 0; transform: translateY(-40px) scale(2.5); } }
@keyframes lm-shadow { 0% { opacity: 0.4; transform: scaleX(1); } 50% { opacity: 0.7; transform: scaleX(1.1); } 100% { opacity: 0.5; transform: scaleX(0.9); } }

.scn-midnight-music-again {
  background: linear-gradient(180deg, #0b162c 0%, #14213d 50%, #1b2a4a 100%),
              radial-gradient(ellipse at 50% 60%, #2a4a7a 0%, transparent 70%);
}
.scn-midnight-music-again .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #0b162c 0%, #1b2a4a 60%, #2a4a7a 100%);
  animation: mm-sky 15s ease-in-out infinite alternate;
}
.scn-midnight-music-again .mountains {
  position: absolute; bottom: 35%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #1a2a3a 0%, #0e1a2a 100%);
  border-radius: 60% 40% 0 0 / 80% 60% 0 0;
  clip-path: polygon(0% 100%, 5% 30%, 10% 60%, 20% 20%, 30% 50%, 40% 10%, 50% 40%, 60% 15%, 70% 45%, 80% 25%, 90% 55%, 100% 30%, 100% 100%);
  box-shadow: inset 0 0 20px rgba(0,0,0,0.5);
  animation: mm-mountains 20s ease-in-out infinite alternate;
}
.scn-midnight-music-again .woods {
  position: absolute; bottom: 25%; left: 5%; right: 5%; height: 15%;
  background: linear-gradient(180deg, #1a2a1a 0%, #0e1a0e 100%);
  border-radius: 30% 70% 0 0 / 50% 50% 0 0;
  filter: blur(2px);
  animation: mm-woods 25s ease-in-out infinite alternate;
}
.scn-midnight-music-again .moon {
  position: absolute; top: 12%; left: 70%; width: 10%; height: 18%;
  background: radial-gradient(circle at 50% 50%, #e0e8f0 0%, #c0c8d8 50%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(192,200,216,0.3);
  animation: mm-moon 10s ease-in-out infinite alternate;
}
.scn-midnight-music-again .casement {
  position: absolute; top: 10%; left: 30%; width: 40%; height: 60%;
  border: 6px solid #2a1a1a; border-radius: 4% 4% 2% 2%;
  background: transparent;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.6);
}
.scn-midnight-music-again .figure {
  position: absolute; bottom: 20%; left: 42%; width: 10%; height: 30%;
  background: radial-gradient(ellipse at 50% 30%, #2a2a3a 20%, #1a1a2a 70%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mm-figure 8s ease-in-out infinite alternate;
}
.scn-midnight-music-again .mist {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 20%;
  background: linear-gradient(0deg, rgba(200,210,220,0.15) 0%, transparent 100%);
  filter: blur(8px);
  animation: mm-mist 30s ease-in-out infinite alternate;
}
.scn-midnight-music-again .star-a {
  position: absolute; top: 8%; left: 15%; width: 2px; height: 2px;
  background: #fff; border-radius: 50%; box-shadow: 0 0 3px 2px rgba(255,255,255,0.5);
  animation: mm-star 4s ease-in-out infinite alternate;
}
.scn-midnight-music-again .star-b {
  position: absolute; top: 5%; left: 85%; width: 2px; height: 2px;
  background: #fff; border-radius: 50%; box-shadow: 0 0 3px 2px rgba(255,255,255,0.5);
  animation: mm-star 5s ease-in-out infinite alternate-reverse;
}
@keyframes mm-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes mm-mountains { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes mm-woods { 0% { transform: translateX(0); } 50% { transform: translateX(3px); } 100% { transform: translateX(0); } }
@keyframes mm-moon { 0% { opacity: 0.8; box-shadow: 0 0 30px 15px rgba(192,200,216,0.2); } 50% { opacity: 1; box-shadow: 0 0 50px 25px rgba(192,200,216,0.4); } 100% { opacity: 0.9; box-shadow: 0 0 35px 18px rgba(192,200,216,0.3); } }
@keyframes mm-figure { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(3px) rotate(1deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-3px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes mm-mist { 0% { opacity: 0.2; transform: translateY(0); } 50% { opacity: 0.5; transform: translateY(-5px); } 100% { opacity: 0.3; transform: translateY(0); } }
@keyframes mm-star { 0% { opacity: 0.3; transform: scale(0.8); } 50% { opacity: 1; transform: scale(1.2); } 100% { opacity: 0.6; transform: scale(0.9); } }

.scn-sentinels-alarm {
  background: linear-gradient(180deg, #0c141c 0%, #162230 50%, #1c2c3c 100%),
              radial-gradient(ellipse at 50% 80%, #2a4a6a 0%, transparent 60%);
}
.scn-sentinels-alarm .wall {
  position: absolute; bottom: 30%; left: 10%; right: 10%; height: 40%;
  background: linear-gradient(0deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 10% 10% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.8);
  animation: sa-wall 4s ease-in-out infinite alternate;
}
.scn-sentinels-alarm .terrace {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 10%;
  background: linear-gradient(0deg, #1a1a2a 0%, #2a2a3a 100%);
  border-radius: 0 0 30% 30% / 0 0 50% 50%;
}
.scn-sentinels-alarm .moon {
  position: absolute; top: 15%; right: 20%; width: 12%; height: 20%;
  background: radial-gradient(circle at 50% 50%, #c0c8d8 0%, #8a9aaa 60%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 50px 25px rgba(138,154,170,0.3);
  animation: sa-moon 10s ease-in-out infinite alternate;
}
.scn-sentinels-alarm .guard-a {
  position: absolute; bottom: 28%; left: 20%; width: 8%; height: 20%;
  background: radial-gradient(ellipse at 50% 30%, #1a2a3a 20%, #0e1a2a 70%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sa-guard 0.5s ease-in-out infinite alternate;
}
.scn-sentinels-alarm .guard-b {
  position: absolute; bottom: 28%; left: 70%; width: 8%; height: 20%;
  background: radial-gradient(ellipse at 50% 30%, #1a2a3a 20%, #0e1a2a 70%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sa-guard 0.6s ease-in-out infinite alternate-reverse;
}
.scn-sentinels-alarm .torch {
  position: absolute; bottom: 35%; left: 42%; width: 4%; height: 8%;
  background: linear-gradient(0deg, #c86030 0%, #e8a040 40%, #ffd080 70%);
  border-radius: 20% 20% 40% 40%;
  box-shadow: 0 0 20px 10px #ffa040, 0 0 40px 20px rgba(255,160,64,0.4);
  animation: sa-torch 2s ease-in-out infinite alternate;
}
.scn-sentinels-alarm .banner {
  position: absolute; top: 32%; left: 50%; width: 10%; height: 15%;
  background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%);
  border-radius: 5% 5% 10% 10% / 10% 10% 20% 20%;
  transform-origin: top center;
  animation: sa-banner 1s ease-in-out infinite alternate;
}
@keyframes sa-wall { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes sa-moon { 0% { opacity: 0.7; transform: scale(0.95); } 50% { opacity: 1; transform: scale(1); } 100% { opacity: 0.8; transform: scale(0.9); } }
@keyframes sa-guard { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(4px) rotate(2deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-4px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes sa-torch { 0% { opacity: 0.8; transform: scaleY(1); box-shadow: 0 0 15px 8px #ffa040; } 50% { opacity: 1; transform: scaleY(1.15); box-shadow: 0 0 30px 15px #ffb060; } 100% { opacity: 0.9; transform: scaleY(0.95); box-shadow: 0 0 20px 10px #ffa040; } }
@keyframes sa-banner { 0% { transform: rotate(-5deg); } 25% { transform: rotate(5deg); } 50% { transform: rotate(-3deg); } 75% { transform: rotate(3deg); } 100% { transform: rotate(-2deg); } }

.scn-soldiers-tale {
  background: linear-gradient(180deg, #0a1220 0%, #142238 50%, #1c2e4a 100%),
              radial-gradient(ellipse at 50% 70%, #2a4a7a 0%, transparent 70%);
}
.scn-soldiers-tale .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #0a1220 0%, #142238 60%, #1c2e4a 100%);
  animation: st-sky 20s ease-in-out infinite alternate;
}
.scn-soldiers-tale .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(0deg, #0e1a22 0%, #1a2a3a 100%);
  border-radius: 60% 40% 0 0 / 80% 60% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.5);
}
.scn-soldiers-tale .moon {
  position: absolute; top: 15%; left: 65%; width: 14%; height: 22%;
  background: radial-gradient(circle at 50% 50%, #d0d8e0 0%, #a0a8b8 50%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 60px 30px rgba(160,168,184,0.3);
  animation: st-moon 15s ease-in-out infinite alternate;
}
.scn-soldiers-tale .soldier {
  position: absolute; bottom: 25%; left: 30%; width: 10%; height: 28%;
  background: radial-gradient(ellipse at 50% 30%, #1a2a3a 20%, #0e1a2a 70%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: st-soldier 6s ease-in-out infinite alternate;
}
.scn-soldiers-tale .apparition {
  position: absolute; bottom: 30%; left: 55%; width: 8%; height: 25%;
  background: radial-gradient(ellipse at 50% 30%, rgba(200,210,220,0.4) 0%, transparent 70%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  filter: blur(5px);
  box-shadow: 0 0 40px 20px rgba(200,210,220,0.2);
  animation: st-apparition 8s ease-in-out infinite alternate;
}
.scn-soldiers-tale .light {
  position: absolute; top: 20%; right: 20%; width: 20%; height: 30%;
  background: radial-gradient(ellipse at 50% 50%, rgba(180,200,220,0.2) 0%, transparent 70%);
  filter: blur(10px);
  animation: st-light 12s ease-in-out infinite alternate;
}
.scn-soldiers-tale .dust {
  position: absolute; bottom: 20%; left: 40%; width: 4%; height: 4%;
  background: radial-gradient(circle, rgba(220,230,240,0.3) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(2px);
  animation: st-dust 5s ease-in-out infinite;
}
@keyframes st-sky { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes st-moon { 0% { opacity: 0.7; box-shadow: 0 0 40px 20px rgba(160,168,184,0.2); } 50% { opacity: 1; box-shadow: 0 0 70px 35px rgba(160,168,184,0.4); } 100% { opacity: 0.8; box-shadow: 0 0 50px 25px rgba(160,168,184,0.3); } }
@keyframes st-soldier { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2px) rotate(1deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes st-apparition { 0% { opacity: 0.2; transform: translateY(0) scale(0.9); } 50% { opacity: 0.6; transform: translateY(-5px) scale(1.1); } 100% { opacity: 0.3; transform: translateY(0) scale(0.95); } }
@keyframes st-light { 0% { opacity: 0.1; transform: scale(0.8); } 50% { opacity: 0.4; transform: scale(1.2); } 100% { opacity: 0.2; transform: scale(0.9); } }
@keyframes st-dust { 0% { opacity: 0; transform: translate(0,0) scale(0.5); } 25% { opacity: 0.4; transform: translate(5px,-5px) scale(1); } 50% { opacity: 0; transform: translate(10px,-10px) scale(0.5); } 75% { opacity: 0.2; transform: translate(5px,-5px) scale(0.8); } 100% { opacity: 0; transform: translate(0,0) scale(0.5); } }

/* days-of-mourning */
.scn-days-of-mourning {
  background:
    linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 40%, #0e0e1a 100%),
    radial-gradient(ellipse at 50% 80%, #3a3a4a 0%, transparent 60%);
}
.scn-days-of-mourning .ceiling {
  position: absolute; inset: 0 0 65% 0;
  background: linear-gradient(180deg, #1a1a2a 0%, transparent 100%);
  animation: dm-ceiling 20s ease-in-out infinite alternate;
}
.scn-days-of-mourning .wall {
  position: absolute; inset: 35% 30% 15% 10%;
  background: linear-gradient(135deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.5);
}
.scn-days-of-mourning .window {
  position: absolute; top: 15%; left: 15%; width: 30%; height: 25%;
  background: linear-gradient(180deg, #4a5a6a 0%, #2a3a4a 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 40px rgba(100,140,180,0.3);
  animation: dm-window 12s ease-in-out infinite alternate;
}
.scn-days-of-mourning .figure {
  position: absolute; bottom: 15%; right: 20%; width: 20%; height: 40%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dm-figure 4s ease-in-out infinite;
}
.scn-days-of-mourning .candle {
  position: absolute; bottom: 30%; right: 40%; width: 2%; height: 6%;
  background: linear-gradient(180deg, #c8a060 0%, #a08040 100%);
  border-radius: 2px;
  animation: dm-candle 3s ease-in-out infinite alternate;
}
.scn-days-of-mourning .glow {
  position: absolute; bottom: 30%; right: 38%; width: 15%; height: 15%;
  background: radial-gradient(circle, rgba(200,160,96,0.4) 0%, transparent 70%);
  animation: dm-glow 5s ease-in-out infinite alternate;
}
.scn-days-of-mourning .shadow {
  position: absolute; bottom: 10%; left: 50%; width: 40%; height: 30%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.6) 100%);
  border-radius: 50%;
  filter: blur(10px);
  animation: dm-shadow 12s ease-in-out infinite alternate;
}
@keyframes dm-ceiling {
  0% { opacity: 0.7; }
  50% { opacity: 0.9; }
  100% { opacity: 0.6; }
}
@keyframes dm-window {
  0% { filter: brightness(0.8); box-shadow: inset 0 0 20px rgba(100,140,180,0.2); }
  50% { filter: brightness(1.1); box-shadow: inset 0 0 60px rgba(100,140,180,0.4); }
  100% { filter: brightness(0.9); box-shadow: inset 0 0 30px rgba(100,140,180,0.3); }
}
@keyframes dm-figure {
  0%, 100% { transform: translateX(0) translateY(0) rotate(-1deg); }
  25% { transform: translateX(2%) translateY(-1%) rotate(1deg); }
  50% { transform: translateX(1%) translateY(0) rotate(-0.5deg); }
  75% { transform: translateX(-1%) translateY(-0.5%) rotate(0.5deg); }
}
@keyframes dm-candle {
  0% { transform: scaleY(1) translateY(0); opacity: 0.8; }
  50% { transform: scaleY(1.15) translateY(-2%); opacity: 1; }
  100% { transform: scaleY(0.95) translateY(0); opacity: 0.7; }
}
@keyframes dm-glow {
  0% { opacity: 0.3; transform: scale(0.9); }
  50% { opacity: 0.6; transform: scale(1.1); }
  100% { opacity: 0.4; transform: scale(1); }
}
@keyframes dm-shadow {
  0% { transform: translateX(-5%) scaleX(1); opacity: 0.5; }
  50% { transform: translateX(5%) scaleX(1.1); opacity: 0.7; }
  100% { transform: translateX(-2%) scaleX(0.95); opacity: 0.4; }
}

/* interview-with-montoni */
.scn-interview-with-montoni {
  background:
    linear-gradient(180deg, #1a1a1a 0%, #2a2a1a 30%, #3a3a2a 100%),
    radial-gradient(ellipse at 30% 50%, #4a4a2a 0%, transparent 70%);
}
.scn-interview-with-montoni .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #1a1a0a 0%, #0a0a00 100%);
  border-radius: 40% 60% 0 0 / 10% 10% 0 0;
}
.scn-interview-with-montoni .wall-left {
  position: absolute; inset: 0 50% 20% 0;
  background: linear-gradient(135deg, #2a2a1a 0%, #1a1a0a 100%);
  box-shadow: inset -10px 0 20px rgba(0,0,0,0.6);
}
.scn-interview-with-montoni .table {
  position: absolute; bottom: 25%; left: 20%; width: 60%; height: 10%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.7);
  animation: im-table 8s ease-in-out infinite alternate;
}
.scn-interview-with-montoni .papers {
  position: absolute; bottom: 28%; left: 30%; width: 30%; height: 6%;
  background: linear-gradient(135deg, #b8a078 0%, #988060 100%);
  border-radius: 2px;
  transform: rotate(-5deg);
  animation: im-papers 6s ease-in-out infinite alternate;
}
.scn-interview-with-montoni .lamp {
  position: absolute; bottom: 38%; left: 20%; width: 4%; height: 8%;
  background: radial-gradient(circle at 50% 0%, #e0b060 0%, #a08040 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 30px 10px rgba(200,160,80,0.5);
  animation: im-lamp 3s ease-in-out infinite alternate;
}
.scn-interview-with-montoni .figure-a {
  position: absolute; bottom: 20%; left: 10%; width: 18%; height: 45%;
  background: linear-gradient(180deg, #1a1a0a 0%, #0a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: im-figure-a 5s ease-in-out infinite;
}
.scn-interview-with-montoni .figure-b {
  position: absolute; bottom: 20%; left: 30%; width: 18%; height: 42%;
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: im-figure-b 4.5s ease-in-out infinite 1s;
}
.scn-interview-with-montoni .figure-c {
  position: absolute; bottom: 20%; left: 55%; width: 18%; height: 40%;
  background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: im-figure-c 6s ease-in-out infinite 0.5s;
}
@keyframes im-table {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2%) rotate(.5deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes im-papers {
  0% { transform: rotate(-5deg) translateX(0); }
  50% { transform: rotate(-3deg) translateX(2%); }
  100% { transform: rotate(-6deg) translateX(-1%); }
}
@keyframes im-lamp {
  0% { box-shadow: 0 0 20px 5px rgba(200,160,80,0.4); filter: brightness(0.9); }
  50% { box-shadow: 0 0 50px 20px rgba(200,160,80,0.7); filter: brightness(1.1); }
  100% { box-shadow: 0 0 30px 10px rgba(200,160,80,0.5); filter: brightness(1); }
}
@keyframes im-figure-a {
  0%, 100% { transform: translateX(0) translateY(0) rotate(-1deg); }
  25% { transform: translateX(3%) translateY(-2%) rotate(2deg); }
  50% { transform: translateX(-1%) translateY(0) rotate(-0.5deg); }
  75% { transform: translateX(2%) translateY(-1%) rotate(1deg); }
}
@keyframes im-figure-b {
  0%, 100% { transform: translateX(0) translateY(0) rotate(1deg); }
  30% { transform: translateX(-2%) translateY(-1%) rotate(-1deg); }
  60% { transform: translateX(1%) translateY(0) rotate(0deg); }
}
@keyframes im-figure-c {
  0%, 100% { transform: translateX(0) translateY(0) rotate(0deg); }
  40% { transform: translateX(2%) translateY(-1%) rotate(-2deg); }
  80% { transform: translateX(-1%) translateY(0) rotate(1deg); }
}

/* montoni-claims-heirship */
.scn-montoni-claims-heirship {
  background:
    linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 50%, #00000a 100%),
    radial-gradient(ellipse at 50% 30%, #3a3a5a 0%, transparent 60%);
}
.scn-montoni-claims-heirship .bg-wall {
  position: absolute; inset: 0 15% 10% 15%;
  background: linear-gradient(135deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 10px;
  box-shadow: inset 0 0 40px rgba(0,0,0,0.7);
}
.scn-montoni-claims-heirship .window-cold {
  position: absolute; top: 10%; right: 20%; width: 25%; height: 30%;
  background: linear-gradient(180deg, #4a5a7a 0%, #2a3a5a 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 60px rgba(100,140,200,0.2);
  animation: ch-window 15s ease-in-out infinite alternate;
}
.scn-montoni-claims-heirship .figure-montoni {
  position: absolute; bottom: 15%; left: 40%; width: 22%; height: 55%;
  background: linear-gradient(180deg, #0a0a1a 0%, #00000a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ch-figure 5s ease-in-out infinite;
}
.scn-montoni-claims-heirship .chair {
  position: absolute; bottom: 15%; right: 25%; width: 15%; height: 25%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 5px 10px rgba(0,0,0,0.6);
  animation: ch-chair 10s ease-in-out infinite alternate;
}
.scn-montoni-claims-heirship .breath {
  position: absolute; top: 30%; left: 30%; width: 5%; height: 8%;
  background: radial-gradient(circle, rgba(200,220,255,0.1) 0%, transparent 100%);
  border-radius: 50%;
  animation: ch-breath 4s ease-in-out infinite alternate;
}
.scn-montoni-claims-heirship .shadow-cold {
  position: absolute; bottom: 5%; left: 30%; width: 50%; height: 20%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,20,0.5) 100%);
  border-radius: 50%;
  filter: blur(8px);
  animation: ch-shadow 20s ease-in-out infinite alternate;
}
@keyframes ch-window {
  0% { filter: brightness(0.6); box-shadow: inset 0 0 30px rgba(100,140,200,0.1); }
  50% { filter: brightness(1); box-shadow: inset 0 0 80px rgba(100,140,200,0.3); }
  100% { filter: brightness(0.7); box-shadow: inset 0 0 40px rgba(100,140,200,0.15); }
}
@keyframes ch-figure {
  0%, 100% { transform: translateX(0) translateY(0) rotate(0deg); }
  25% { transform: translateX(2%) translateY(-2%) rotate(2deg); }
  50% { transform: translateX(-1%) translateY(0) rotate(-1deg); }
  75% { transform: translateX(1%) translateY(-1%) rotate(1deg); }
}
@keyframes ch-chair {
  0% { transform: scale(1) rotate(0deg); }
  50% { transform: scale(1.02) rotate(2deg); }
  100% { transform: scale(0.98) rotate(-1deg); }
}
@keyframes ch-breath {
  0% { opacity: 0.1; transform: scale(1); }
  50% { opacity: 0.4; transform: scale(1.5); }
  100% { opacity: 0.2; transform: scale(1.2); }
}
@keyframes ch-shadow {
  0% { transform: translateX(-3%) scaleX(1); opacity: 0.4; }
  50% { transform: translateX(3%) scaleX(1.1); opacity: 0.6; }
  100% { transform: translateX(0) scaleX(0.95); opacity: 0.3; }
}

/* papers-secured */
.scn-papers-secured {
  background:
    linear-gradient(180deg, #2a2a1a 0%, #1a1a0e 50%, #0e0e05 100%),
    radial-gradient(ellipse at 50% 70%, #4a4a2a 0%, transparent 60%);
}
.scn-papers-secured .room-bg {
  position: absolute; inset: 0 10% 5% 10%;
  background: linear-gradient(135deg, #3a3a2a 0%, #2a2a1a 100%);
  border-radius: 8px;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.5);
}
.scn-papers-secured .glow-soft {
  position: absolute; top: 20%; left: 25%; width: 30%; height: 30%;
  background: radial-gradient(circle, rgba(200,180,120,0.3) 0%, transparent 70%);
  animation: ps-glow 10s ease-in-out infinite alternate;
}
.scn-papers-secured .figure-emily {
  position: absolute; bottom: 15%; right: 20%; width: 18%; height: 45%;
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ps-figure 6s ease-in-out infinite;
}
.scn-papers-secured .desk {
  position: absolute; bottom: 20%; left: 30%; width: 30%; height: 12%;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
  animation: ps-desk 12s ease-in-out infinite alternate;
}
.scn-papers-secured .papers-sec {
  position: absolute; bottom: 25%; left: 45%; width: 15%; height: 5%;
  background: linear-gradient(135deg, #c8b080 0%, #a89060 100%);
  border-radius: 2px;
  transform: rotate(3deg);
  animation: ps-papers 5s ease-in-out infinite alternate;
}
.scn-papers-secured .chest {
  position: absolute; bottom: 15%; left: 10%; width: 12%; height: 15%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.5);
  animation: ps-chest 20s ease-in-out infinite alternate;
}
.scn-papers-secured .shadow-calm {
  position: absolute; bottom: 0; left: 20%; width: 60%; height: 20%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.4) 100%);
  border-radius: 50%;
  filter: blur(12px);
  animation: ps-shadow 25s ease-in-out infinite alternate;
}
@keyframes ps-glow {
  0% { opacity: 0.3; transform: scale(0.95); }
  50% { opacity: 0.6; transform: scale(1.1); }
  100% { opacity: 0.4; transform: scale(1); }
}
@keyframes ps-figure {
  0%, 100% { transform: translateX(0) translateY(0) rotate(0deg); }
  30% { transform: translateX(-2%) translateY(-1%) rotate(-1deg); }
  60% { transform: translateX(1%) translateY(0) rotate(0.5deg); }
}
@keyframes ps-desk {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-1%) rotate(0.5deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes ps-papers {
  0% { transform: rotate(3deg) translateX(0); opacity: 0.8; }
  50% { transform: rotate(5deg) translateX(2%); opacity: 1; }
  100% { transform: rotate(2deg) translateX(-1%); opacity: 0.9; }
}
@keyframes ps-chest {
  0% { transform: scale(1); box-shadow: inset 0 0 10px rgba(0,0,0,0.4); }
  50% { transform: scale(1.02); box-shadow: inset 0 0 20px rgba(0,0,0,0.6); }
  100% { transform: scale(0.98); box-shadow: inset 0 0 10px rgba(0,0,0,0.4); }
}
@keyframes ps-shadow {
  0% { transform: translateX(-2%) scaleX(1); opacity: 0.3; }
  50% { transform: translateX(2%) scaleX(1.1); opacity: 0.5; }
  100% { transform: translateX(0) scaleX(0.95); opacity: 0.4; }
}

.scn-emily-doubts-validity {
  background: linear-gradient(170deg, #2b1f1a 0%, #1a1210 40%, #0d0808 100%), radial-gradient(ellipse at 50% 80%, #3a2a1a 0%, transparent 60%);
}
.scn-emily-doubts-validity .room-wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #1a1512 0%, #0d0a08 100%);
  animation: edv-wall-fade 9s ease-in-out infinite alternate;
}
.scn-emily-doubts-validity .altar {
  position: absolute; bottom: 15%; left: 50%; width: 60px; height: 80px; transform: translateX(-50%);
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 4px; box-shadow: 0 4px 12px rgba(0,0,0,.6);
}
.scn-emily-doubts-validity .cross {
  position: absolute; bottom: 45%; left: 50%; width: 8px; height: 40px; transform: translateX(-50%);
  background: linear-gradient(180deg, #5a3a20 0%, #2a1a0a 100%);
  box-shadow: 0 0 6px #6a3a1a;
}
.scn-emily-doubts-validity .table {
  position: absolute; bottom: 10%; left: 30%; width: 70px; height: 12px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e0a 100%);
  border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,.5);
}
.scn-emily-doubts-validity .candle-glow {
  position: absolute; bottom: 42%; left: 32%; width: 10px; height: 14px;
  background: radial-gradient(circle, #ffd070 0%, #b07030 60%, transparent 80%);
  border-radius: 50%; filter: blur(3px);
  animation: edv-candle-pulse 2s ease-in-out infinite alternate;
}
.scn-emily-doubts-validity .figure-emily {
  position: absolute; bottom: 14%; left: 48%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #1a1210 0%, #0a0605 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: edv-tremble 3s ease-in-out infinite;
}
.scn-emily-doubts-validity .shadow-emily {
  position: absolute; bottom: 12%; left: 46%; width: 40px; height: 18px;
  background: rgba(0,0,0,.4); border-radius: 50%; filter: blur(8px);
  animation: edv-shadow-sway 3s ease-in-out infinite;
}
.scn-emily-doubts-validity .window-light {
  position: absolute; top: 10%; right: 12%; width: 50px; height: 70px;
  background: radial-gradient(ellipse at 50% 50%, rgba(160,140,120,.15) 0%, transparent 70%);
  border-radius: 2px; box-shadow: inset 0 0 20px rgba(200,180,160,.1);
  animation: edv-window-moon 12s ease-in-out infinite alternate;
}
@keyframes edv-wall-fade { 0% { opacity: .9; } 50% { opacity: .75; } 100% { opacity: .85; } }
@keyframes edv-candle-pulse { 0% { transform: scale(1); opacity: .8; } 50% { transform: scale(1.2); opacity: 1; } 100% { transform: scale(.9); opacity: .7; } }
@keyframes edv-tremble { 0%, 100% { transform: translateY(0) rotate(0); } 25% { transform: translateY(-1px) rotate(.5deg); } 50% { transform: translateY(1px) rotate(-.5deg); } 75% { transform: translateY(-.5px) rotate(.3deg); } }
@keyframes edv-shadow-sway { 0%, 100% { transform: translateX(0); } 50% { transform: translateX(4px); } }
@keyframes edv-window-moon { 0% { opacity: .6; } 50% { opacity: .9; } 100% { opacity: .7; } }

.scn-morano-seeks-interview {
  background: linear-gradient(0deg, #1a1010 0%, #2a1a15 40%, #1f1210 80%), radial-gradient(ellipse at 30% 50%, #3a2218 0%, transparent 70%);
}
.scn-morano-seeks-interview .hall-back {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #1f1512 0%, #0f0a08 100%);
  animation: msi-hall-shift 14s ease-in-out infinite alternate;
}
.scn-morano-seeks-interview .door-large {
  position: absolute; bottom: 30%; left: 12%; width: 80px; height: 130px;
  background: linear-gradient(90deg, #3a2a1a 0%, #2a1a0e 50%, #1f120a 100%);
  border-radius: 4px 0 0 4px; box-shadow: inset -4px 0 8px rgba(0,0,0,.6);
  animation: msi-door-light 6s ease-in-out infinite alternate;
}
.scn-morano-seeks-interview .servant-figure {
  position: absolute; bottom: 30%; left: 10%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #1a1210 0%, #0a0605 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; filter: blur(1px);
  animation: msi-servant-exit 5s ease-in-out infinite;
}
.scn-morano-seeks-interview .morano-figure {
  position: absolute; bottom: 30%; left: 60%; width: 22px; height: 56px;
  background: linear-gradient(180deg, #2a1a12 0%, #100a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: msi-morano-enter 7s ease-in-out infinite alternate;
}
.scn-morano-seeks-interview .emily-figure-doorway {
  position: absolute; bottom: 30%; left: 16%; width: 18px; height: 52px;
  background: linear-gradient(180deg, #1a1410 0%, #0a0605 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-20px);
  animation: msi-emily-hidden 7s ease-in-out infinite alternate;
}
.scn-morano-seeks-interview .candle-sconce {
  position: absolute; top: 18%; right: 25%; width: 8px; height: 12px;
  background: radial-gradient(circle, #ffc060 0%, #b07030 60%, transparent 80%);
  filter: blur(4px); animation: msi-sconce-flicker 2.5s ease-in-out infinite alternate;
}
.scn-morano-seeks-interview .floor-rush {
  position: absolute; bottom: 10%; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #1f1410 0%, #0f0a08 100%);
  border-radius: 30% 70% 0 0 / 100% 100% 0 0; box-shadow: inset 0 6px 12px rgba(0,0,0,.5);
}
@keyframes msi-hall-shift { 0% { opacity: .85; } 50% { opacity: .95; } 100% { opacity: .8; } }
@keyframes msi-door-light { 0% { box-shadow: inset -4px 0 8px rgba(0,0,0,.6); } 50% { box-shadow: inset -4px 0 12px rgba(0,0,0,.8); } 100% { box-shadow: inset -4px 0 8px rgba(0,0,0,.6); } }
@keyframes msi-servant-exit { 0% { transform: translateX(0) scaleX(1); } 25% { transform: translateX(-8px) scaleX(.95); opacity: .9; } 50% { transform: translateX(-16px) scaleX(.9); opacity: .7; } 75% { transform: translateX(-24px) scaleX(.85); opacity: .5; } 100% { transform: translateX(-32px) scaleX(.8); opacity: .3; } }
@keyframes msi-morano-enter { 0% { transform: translateX(20px) scaleX(1); } 50% { transform: translateX(0) scaleX(1); } 100% { transform: translateX(20px) scaleX(1); } }
@keyframes msi-emily-hidden { 0% { opacity: .3; } 50% { opacity: .8; } 100% { opacity: .3; } }
@keyframes msi-sconce-flicker { 0% { transform: scale(1) rotate(-2deg); opacity: .7; } 50% { transform: scale(1.15) rotate(2deg); opacity: 1; } 100% { transform: scale(.9) rotate(-1deg); opacity: .6; } }

.scn-morano-entreats {
  background: linear-gradient(180deg, #1f1410 0%, #2a1a12 30%, #1a0e0a 70%), radial-gradient(ellipse at 50% 100%, #3a2218 0%, transparent 60%);
}
.scn-morano-entreats .chamber-wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #221712 0%, #0f0a08 100%);
  animation: me-wall-dim 10s ease-in-out infinite alternate;
}
.scn-morano-entreats .hearth {
  position: absolute; bottom: 20%; left: 10%; width: 80px; height: 50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e0a 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.6);
}
.scn-morano-entreats .fire-glow {
  position: absolute; bottom: 28%; left: 14%; width: 40px; height: 50px;
  background: radial-gradient(ellipse at 50% 80%, #ffa040 0%, #d07030 40%, transparent 70%);
  filter: blur(6px); animation: me-fire-dance 3s ease-in-out infinite alternate;
}
.scn-morano-entreats .morano-kneeling {
  position: absolute; bottom: 12%; left: 40%; width: 28px; height: 44px;
  background: linear-gradient(180deg, #2a1a12 0%, #100a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; transform: scaleY(1.2);
  animation: me-kneel-bob 4s ease-in-out infinite;
}
.scn-morano-entreats .emily-standing {
  position: absolute; bottom: 12%; left: 60%; width: 22px; height: 56px;
  background: linear-gradient(180deg, #1a1410 0%, #0a0605 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: me-stand-still 6s ease-in-out infinite alternate;
}
.scn-morano-entreats .table-wine {
  position: absolute; bottom: 8%; left: 25%; width: 60px; height: 10px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e0a 100%);
  border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,.5);
}
.scn-morano-entreats .goblet {
  position: absolute; bottom: 16%; left: 28%; width: 12px; height: 20px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%);
  border-radius: 0 0 8% 8% / 0 0 20% 20%;
  box-shadow: 0 0 8px rgba(180,120,60,.3);
  animation: me-goblet-glow 2s ease-in-out infinite alternate;
}
@keyframes me-wall-dim { 0% { opacity: .8; } 50% { opacity: .9; } 100% { opacity: .7; } }
@keyframes me-fire-dance { 0% { transform: scale(1) translate(0,0); } 30% { transform: scale(1.08) translate(2px,-2px); } 60% { transform: scale(.95) translate(-1px,1px); } 100% { transform: scale(1.02) translate(-1px,-1px); } }
@keyframes me-kneel-bob { 0%, 100% { transform: scaleY(1.2) translateY(0); } 25% { transform: scaleY(1.18) translateY(-1px); } 50% { transform: scaleY(1.22) translateY(1px); } 75% { transform: scaleY(1.2) translateY(-.5px); } }
@keyframes me-stand-still { 0%, 100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes me-goblet-glow { 0% { box-shadow: 0 0 6px rgba(180,120,60,.2); } 50% { box-shadow: 0 0 16px rgba(180,120,60,.5); } 100% { box-shadow: 0 0 8px rgba(180,120,60,.3); } }

.scn-emily-solemn-refusal {
  background: linear-gradient(0deg, #2a1a12 0%, #1a0e0a 40%, #0f0806 100%), radial-gradient(ellipse at 60% 20%, #3a2a1a 0%, transparent 70%);
}
.scn-emily-solemn-refusal .parlour-back {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #1f1410 0%, #0f0a08 100%);
  animation: esr-parlour-fade 15s ease-in-out infinite alternate;
}
.scn-emily-solemn-refusal .window-arch {
  position: absolute; top: 8%; right: 15%; width: 60px; height: 80px;
  background: linear-gradient(180deg, rgba(160,140,120,.08) 0%, transparent 80%);
  border-radius: 30% 30% 0 0 / 50% 50% 0 0;
  box-shadow: inset 0 0 30px rgba(200,180,160,.05);
  animation: esr-window-moon 10s ease-in-out infinite alternate;
}
.scn-emily-solemn-refusal .figure-emily-profile {
  position: absolute; bottom: 15%; left: 35%; width: 24px; height: 56px;
  background: linear-gradient(180deg, #1a1410 0%, #0a0605 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: esr-emily-still 8s ease-in-out infinite alternate;
}
.scn-emily-solemn-refusal .figure-morano-receding {
  position: absolute; bottom: 15%; left: 70%; width: 22px; height: 54px;
  background: linear-gradient(180deg, #2a1a12 0%, #100a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  opacity: .7;
  animation: esr-morano-leave 6s ease-in-out infinite;
}
.scn-emily-solemn-refusal .floor-rug {
  position: absolute; bottom: 8%; left: 10%; width: 80%; height: 18%;
  background: linear-gradient(180deg, #2a1a12 0%, #1a0e0a 100%);
  border-radius: 30% 70% 10% 10% / 40% 40% 20% 20%;
  box-shadow: inset 0 4px 12px rgba(0,0,0,.5);
}
.scn-emily-solemn-refusal .candle-stand {
  position: absolute; bottom: 12%; left: 20%; width: 8px; height: 30px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e0a 100%);
  border-radius: 2px;
}
.scn-emily-solemn-refusal .flame-glow {
  position: absolute; bottom: 38%; left: 20.5%; width: 14px; height: 20px;
  background: radial-gradient(circle at 50% 60%, #ffd070 0%, #b07030 40%, transparent 70%);
  filter: blur(4px);
  animation: esr-candle-steady 4s ease-in-out infinite alternate;
}
@keyframes esr-parlour-fade { 0% { opacity: .85; } 50% { opacity: .95; } 100% { opacity: .8; } }
@keyframes esr-window-moon { 0% { opacity: .5; } 50% { opacity: .8; } 100% { opacity: .6; } }
@keyframes esr-emily-still { 0%, 100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-1px) rotate(.2deg); } }
@keyframes esr-morano-leave { 0% { transform: translateX(0) scaleX(1); opacity: .7; } 50% { transform: translateX(20px) scaleX(.95); opacity: .5; } 100% { transform: translateX(40px) scaleX(.9); opacity: .3; } }
@keyframes esr-candle-steady { 0% { transform: scale(1); opacity: .8; } 50% { transform: scale(1.05); opacity: .95; } 100% { transform: scale(.98); opacity: .85; } }

.scn-drunken-voices {
  background: linear-gradient(180deg, #1c1c2e 0%, #2a1e1a 40%, #3a2a1a 100%),
              radial-gradient(ellipse at 30% 80%, rgba(200,120,40,0.15) 0%, transparent 60%);
}
.scn-drunken-voices .wall-bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a221e 0%, #1a1412 100%);
  animation: dv-wall 15s ease-in-out infinite alternate;
}
.scn-drunken-voices .arch {
  position: absolute; top: 5%; left: 35%; width: 30%; height: 45%;
  background: radial-gradient(ellipse at 50% 0%, #1c1c2e 60%, transparent 70%);
  border-radius: 50% / 30% 30% 0 0;
  box-shadow: inset 0 -20px 30px rgba(0,0,0,0.6);
  animation: dv-arch 10s ease-in-out infinite alternate;
}
.scn-drunken-voices .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #1a1412 0%, #2a221e 60%, #3a2a1a 100%);
  border-radius: 40% 40% 0 0;
  animation: dv-floor 12s ease-in-out infinite alternate;
}
.scn-drunken-voices .figure-sit {
  position: absolute; bottom: 15%; left: 25%; width: 24px; height: 40px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1412 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: dv-sit 4s ease-in-out infinite;
}
.scn-drunken-voices .figure-stand {
  position: absolute; bottom: 18%; left: 55%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #2a221e 0%, #1a1412 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 45% 45%;
  transform-origin: bottom center;
  animation: dv-stand 5s ease-in-out infinite;
}
.scn-drunken-voices .candle {
  position: absolute; bottom: 28%; left: 42%; width: 6px; height: 12px;
  background: linear-gradient(180deg, #f0d080 0%, #c08040 100%);
  border-radius: 50% 50% 10% 10%;
  box-shadow: 0 0 20px 6px #f0c080;
  animation: dv-candle 2s ease-in-out infinite alternate;
}
.scn-drunken-voices .candle-glow {
  position: absolute; bottom: 26%; left: 40%; width: 20px; height: 30px;
  background: radial-gradient(circle, rgba(240,192,128,0.4) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(6px);
  animation: dv-glow 3s ease-in-out infinite alternate;
}
.scn-drunken-voices .shadow-cast {
  position: absolute; bottom: 10%; left: 20%; width: 60%; height: 20%;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.5) 0%, transparent 70%);
  animation: dv-shadow 8s ease-in-out infinite alternate;
}
@keyframes dv-wall { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes dv-arch { 0% { transform: scale(1) } 50% { transform: scale(1.02) } 100% { transform: scale(0.98) } }
@keyframes dv-floor { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes dv-sit { 0%,100% { transform: translateX(0) rotate(1deg) } 50% { transform: translateX(-4px) rotate(-2deg) } }
@keyframes dv-stand { 0%,100% { transform: translateX(0) rotate(-1deg) } 50% { transform: translateX(6px) rotate(2deg) } }
@keyframes dv-candle { 0% { opacity:0.7; transform: scaleY(1) } 50% { opacity:1; transform: scaleY(1.1) } 100% { opacity:0.8; transform: scaleY(0.95) } }
@keyframes dv-glow { 0%,100% { opacity:0.4; transform: scale(1) } 50% { opacity:0.7; transform: scale(1.2) } }
@keyframes dv-shadow { 0%,100% { opacity:0.5; transform: translateX(0) } 50% { opacity:0.7; transform: translateX(10px) } }

.scn-flight-from-verezzi {
  background: linear-gradient(180deg, #121424 0%, #1a1c30 30%, #2a2a3a 100%),
              radial-gradient(ellipse at 60% 40%, rgba(100,120,180,0.1) 0%, transparent 70%);
}
.scn-flight-from-verezzi .corridor-bg {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, #0e1020 0%, #1a1c30 50%, #0e1020 100%);
  animation: fv-bg 20s ease-in-out infinite alternate;
}
.scn-flight-from-verezzi .wall-left {
  position: absolute; top: 0; bottom: 20%; left: 0; width: 15%;
  background: linear-gradient(180deg, #1e2038 0%, #121424 100%);
  box-shadow: inset -8px 0 12px rgba(0,0,0,0.5);
  animation: fv-wall 15s ease-in-out infinite alternate;
}
.scn-flight-from-verezzi .wall-right {
  position: absolute; top: 0; bottom: 20%; right: 0; width: 15%;
  background: linear-gradient(180deg, #1e2038 0%, #121424 100%);
  box-shadow: inset 8px 0 12px rgba(0,0,0,0.5);
  animation: fv-wall 15s ease-in-out infinite alternate-reverse;
}
.scn-flight-from-verezzi .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #1a1c30 0%, #0e1020 100%);
  animation: fv-floor 12s ease-in-out infinite alternate;
}
.scn-flight-from-verezzi .figure-run {
  position: absolute; bottom: 12%; right: 25%; width: 20px; height: 44px;
  background: linear-gradient(180deg, #2a2a3a 0%, #121424 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 45% 45%;
  transform-origin: bottom center;
  animation: fv-run 2s steps(4) infinite;
}
.scn-flight-from-verezzi .doorway {
  position: absolute; bottom: 5%; left: 10%; width: 28%; height: 55%;
  background: radial-gradient(ellipse at 50% 50%, #1a1c30 0%, #0e1020 70%);
  border-radius: 30% 30% 0 0;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.7);
  animation: fv-door 8s ease-in-out infinite alternate;
}
.scn-flight-from-verezzi .light-ahead {
  position: absolute; bottom: 15%; left: 12%; width: 40px; height: 60px;
  background: radial-gradient(circle, rgba(180,200,255,0.3) 0%, transparent 70%);
  filter: blur(8px);
  animation: fv-light 6s ease-in-out infinite alternate;
}
.scn-flight-from-verezzi .shadow-fall {
  position: absolute; bottom: 0; left: 30%; width: 40%; height: 20%;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.6) 0%, transparent 70%);
  animation: fv-shadow 10s ease-in-out infinite alternate;
}
@keyframes fv-bg { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes fv-wall { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.03) } 100% { transform: scaleX(0.97) } }
@keyframes fv-floor { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes fv-run { 0% { transform: translateX(0) rotate(2deg) } 25% { transform: translateX(6px) rotate(-1deg) } 50% { transform: translateX(12px) rotate(3deg) } 75% { transform: translateX(18px) rotate(-2deg) } 100% { transform: translateX(24px) rotate(0deg) } }
@keyframes fv-door { 0%,100% { transform: scaleX(1) } 50% { transform: scaleX(1.05) } }
@keyframes fv-light { 0%,100% { opacity:0.3; transform: scale(1) } 50% { opacity:0.6; transform: scale(1.1) } }
@keyframes fv-shadow { 0%,100% { opacity:0.5; transform: translateX(0) } 50% { opacity:0.7; transform: translateX(-10px) } }

.scn-pursuit-in-the-dark {
  background: linear-gradient(180deg, #1a1412 0%, #2a1a12 30%, #3a2a1a 100%),
              radial-gradient(ellipse at 40% 70%, rgba(200,80,20,0.2) 0%, transparent 60%);
}
.scn-pursuit-in-the-dark .table {
  position: absolute; bottom: 15%; left: 20%; width: 60%; height: 10%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a12 100%);
  border-radius: 5% 5% 30% 30%;
  box-shadow: 0 -4px 12px rgba(0,0,0,0.6);
  animation: pd-table 12s ease-in-out infinite alternate;
}
.scn-pursuit-in-the-dark .wine-bottle {
  position: absolute; bottom: 25%; left: 35%; width: 12px; height: 28px;
  background: linear-gradient(180deg, #5a2a1a 0%, #3a1a0a 100%);
  border-radius: 20% 20% 30% 30%;
  box-shadow: 0 0 8px rgba(0,0,0,0.5);
  animation: pd-bottle 5s ease-in-out infinite;
}
.scn-pursuit-in-the-dark .wine-glass {
  position: absolute; bottom: 20%; left: 45%; width: 14px; height: 18px;
  background: rgba(100,40,20,0.6);
  border-radius: 50% 50% 10% 10%;
  box-shadow: 0 0 6px rgba(200,100,20,0.3);
  animation: pd-glass 3s ease-in-out infinite alternate;
}
.scn-pursuit-in-the-dark .figure-left {
  position: absolute; bottom: 15%; left: 10%; width: 24px; height: 52px;
  background: linear-gradient(180deg, #2a221e 0%, #1a1412 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 45% 45%;
  transform-origin: bottom center;
  animation: pd-left 6s ease-in-out infinite;
}
.scn-pursuit-in-the-dark .figure-right {
  position: absolute; bottom: 15%; right: 10%; width: 24px; height: 52px;
  background: linear-gradient(180deg, #2a221e 0%, #1a1412 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 45% 45%;
  transform-origin: bottom center;
  animation: pd-right 6s ease-in-out infinite reverse;
}
.scn-pursuit-in-the-dark .lamp {
  position: absolute; top: 20%; left: 48%; width: 16px; height: 24px;
  background: radial-gradient(circle, #d08030 0%, #a05020 70%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 30px 10px rgba(200,80,20,0.5);
  animation: pd-lamp 2s ease-in-out infinite alternate;
}
.scn-pursuit-in-the-dark .lamp-glow {
  position: absolute; top: 15%; left: 44%; width: 12%; height: 20%;
  background: radial-gradient(circle, rgba(200,100,20,0.4) 0%, transparent 70%);
  filter: blur(10px);
  animation: pd-glow 4s ease-in-out infinite alternate;
}
.scn-pursuit-in-the-dark .shadow-pool {
  position: absolute; bottom: 0; left: 20%; width: 60%; height: 25%;
  background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.6) 0%, transparent 70%);
  animation: pd-shadow 8s ease-in-out infinite alternate;
}
@keyframes pd-table { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes pd-bottle { 0%,100% { transform: rotate(0deg) } 50% { transform: rotate(3deg) } }
@keyframes pd-glass { 0%,100% { opacity:0.6; transform: scale(1) } 50% { opacity:0.8; transform: scale(1.05) } }
@keyframes pd-left { 0% { transform: translateX(0) rotate(1deg) } 25% { transform: translateX(3px) rotate(-1deg) } 50% { transform: translateX(0) rotate(2deg) } 75% { transform: translateX(-3px) rotate(0deg) } 100% { transform: translateX(0) rotate(-1deg) } }
@keyframes pd-right { 0% { transform: translateX(0) rotate(-1deg) } 25% { transform: translateX(-3px) rotate(1deg) } 50% { transform: translateX(0) rotate(-2deg) } 75% { transform: translateX(3px) rotate(0deg) } 100% { transform: translateX(0) rotate(1deg) } }
@keyframes pd-lamp { 0% { opacity:0.7; box-shadow: 0 0 20px 8px rgba(200,80,20,0.4) } 50% { opacity:1; box-shadow: 0 0 35px 12px rgba(200,80,20,0.6) } 100% { opacity:0.8; box-shadow: 0 0 25px 10px rgba(200,80,20,0.5) } }
@keyframes pd-glow { 0%,100% { opacity:0.3; transform: scale(1) } 50% { opacity:0.5; transform: scale(1.15) } }
@keyframes pd-shadow { 0%,100% { opacity:0.5; transform: translateX(0) } 50% { opacity:0.7; transform: translateX(5px) } }

.scn-passage-to-corridor {
  background: linear-gradient(180deg, #0c0e14 0%, #121620 30%, #1a1e28 60%, #0e1018 100%),
              radial-gradient(ellipse at 50% 80%, rgba(30,40,60,0.3) 0%, transparent 70%);
}
.scn-passage-to-corridor .passage-wall {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, #0c0e14 0%, #1a1e28 50%, #0c0e14 100%);
  animation: pc-wall 25s ease-in-out infinite alternate;
}
.scn-passage-to-corridor .stair-riser {
  position: absolute; bottom: 25%; left: 15%; width: 70%; height: 8%;
  background: linear-gradient(180deg, #1a1e28 0%, #0e1018 100%);
  border-radius: 0 0 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
  animation: pc-riser 8s ease-in-out infinite alternate;
}
.scn-passage-to-corridor .stair-tread {
  position: absolute; bottom: 25%; left: 15%; width: 70%; height: 4%;
  background: linear-gradient(0deg, #1a1e28 0%, #2a2e38 100%);
  border-radius: 10% 10% 0 0;
  animation: pc-tread 8s ease-in-out infinite alternate-reverse;
}
.scn-passage-to-corridor .figure-cautious {
  position: absolute; bottom: 12%; left: 35%; width: 18px; height: 46px;
  background: linear-gradient(180deg, #1a1e28 0%, #0c0e14 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 45% 45%;
  transform-origin: bottom center;
  animation: pc-figure 6s ease-in-out infinite;
}
.scn-passage-to-corridor .railing {
  position: absolute; bottom: 22%; left: 12%; width: 76%; height: 4px;
  background: linear-gradient(90deg, #2a2e38 0%, #4a4e58 100%);
  border-radius: 2px;
  animation: pc-rail 10s ease-in-out infinite alternate;
}
.scn-passage-to-corridor .void-abyss {
  position: absolute; bottom: 0; left: 20%; width: 60%; height: 30%;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.8) 0%, transparent 70%);
  animation: pc-void 15s ease-in-out infinite alternate;
}
.scn-passage-to-corridor .dust-mote {
  position: absolute; top: 30%; left: 50%; width: 8px; height: 8px;
  background: rgba(200,210,230,0.15);
  border-radius: 50%;
  filter: blur(2px);
  animation: pc-dust 20s linear infinite;
}
@keyframes pc-wall { 0% { opacity:0.7 } 50% { opacity:0.9 } 100% { opacity:0.8 } }
@keyframes pc-riser { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(0.95) } }
@keyframes pc-tread { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(1.05) } }
@keyframes pc-figure { 0% { transform: translateX(0) translateY(0) rotate(1deg) } 25% { transform: translateX(4px) translateY(-2px) rotate(-1deg) } 50% { transform: translateX(0) translateY(0) rotate(2deg) } 75% { transform: translateX(-4px) translateY(1px) rotate(0deg) } 100% { transform: translateX(0) translateY(0) rotate(-1deg) } }
@keyframes pc-rail { 0%,100% { transform: scaleX(1) } 50% { transform: scaleX(1.02) } }
@keyframes pc-void { 0%,100% { opacity:0.6; transform: scale(1) } 50% { opacity:0.8; } }
@keyframes pc-dust { 0% { transform: translate(0, 0) scale(1); opacity:0.1 } 25% { transform: translate(10px, -5px) scale(1.2); opacity:0.3 } 50% { transform: translate(0, 8px) scale(0.8); opacity:0.15 } 75% { transform: translate(-8px, -3px) scale(1.1); opacity:0.25 } 100% { transform: translate(0, 0) scale(1); opacity:0.1 } }

/* shattered-tower – moonlit dark */
.scn-shattered-tower {
  background: linear-gradient(180deg, #0b0e2a 0%, #141736 30%, #1d2352 60%, #2a335a 100%),
              radial-gradient(ellipse at 50% 10%, #3f4d8a 0%, transparent 60%);
}
.scn-shattered-tower .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #0b0e2a 0%, #141736 50%, transparent 100%);
  animation: st-sky 20s ease-in-out infinite alternate;
}
.scn-shattered-tower .moon {
  position: absolute; top: 8%; left: 70%; width: 60px; height: 60px;
  background: radial-gradient(circle, #d4e0f0 0%, #a0b8d0 90%);
  border-radius: 50%; box-shadow: 0 0 40px 15px rgba(160,184,208,0.5), 0 0 80px 30px rgba(200,220,240,0.2);
  animation: st-moon 30s ease-in-out infinite;
}
.scn-shattered-tower .tower {
  position: absolute; bottom: 30%; left: 30%; width: 80px; height: 120px;
  background: linear-gradient(180deg, #1a1f2e 0%, #0f131f 60%, #080b14 100%);
  border-radius: 4% 4% 2% 2%; clip-path: polygon(0 0, 100% 0, 85% 30%, 85% 100%, 15% 100%, 15% 30%);
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.7);
  animation: st-tower 10s ease-in-out infinite alternate;
}
.scn-shattered-tower .rubble {
  position: absolute; bottom: 20%; left: 20%; right: 20%; height: 12%;
  background: linear-gradient(180deg, #1f2440 0%, #131726 100%);
  border-radius: 30% 40% 20% 30% / 50% 60% 40% 40%;
  box-shadow: inset 0 4px 10px rgba(0,0,0,0.6);
  animation: st-rubble 14s ease-in-out infinite alternate;
}
.scn-shattered-tower .shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, transparent 0%, #0a0d1a 80%);
  animation: st-shadow 8s ease-in-out infinite alternate;
}
.scn-shattered-tower .figure {
  position: absolute; bottom: 22%; left: 55%; width: 20px; height: 35px;
  background: linear-gradient(180deg, #1a1d2e 0%, #0e111f 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: st-figure 5s ease-in-out infinite;
}

@keyframes st-sky { 0% { opacity: 0.7 } 50% { opacity: 0.9 } 100% { opacity: 0.7 } }
@keyframes st-moon { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-4px) scale(1.02) } 100% { transform: translateY(0) scale(1) } }
@keyframes st-tower { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(0.5deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes st-rubble { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-1px) scale(1.01) } 100% { transform: translateY(0) scale(1) } }
@keyframes st-shadow { 0% { opacity: 0.6 } 50% { opacity: 0.8 } 100% { opacity: 0.6 } }
@keyframes st-figure { 0% { transform: translateX(0) translateY(0) rotate(-1deg) } 25% { transform: translateX(3px) translateY(-1px) rotate(1deg) } 50% { transform: translateX(6px) translateY(0) rotate(-1deg) } 75% { transform: translateX(9px) translateY(-1px) rotate(1deg) } 100% { transform: translateX(12px) translateY(0) rotate(0deg) } }

/* portal-chamber-horror – dim interior dark */
.scn-portal-chamber-horror {
  background: linear-gradient(180deg, #0f0a12 0%, #1a121f 40%, #241a2e 70%, #1f1625 100%),
              radial-gradient(ellipse at 50% 100%, #2f2440 0%, transparent 70%);
}
.scn-portal-chamber-horror .wall {
  position: absolute; inset: 0; background: linear-gradient(90deg, #1a121f 0%, #221a2a 50%, #1a121f 100%);
  animation: pc-wall 12s ease-in-out infinite alternate;
}
.scn-portal-chamber-horror .door {
  position: absolute; bottom: 20%; left: 30%; width: 80px; height: 140px;
  background: linear-gradient(180deg, #2a1a1e 0%, #1a1014 100%);
  border-radius: 2% 2% 0 0; border: 2px solid #3a2a30; box-shadow: inset 0 0 30px rgba(0,0,0,0.8);
  animation: pc-door 8s ease-in-out infinite alternate;
}
.scn-portal-chamber-horror .curtain {
  position: absolute; bottom: 25%; left: 20%; width: 100px; height: 120px;
  background: linear-gradient(180deg, #3a202a 0%, #2a141e 100%);
  border-radius: 20% 20% 10% 10%; box-shadow: 0 4px 15px rgba(0,0,0,0.6);
  animation: pc-curtain 10s ease-in-out infinite alternate;
}
.scn-portal-chamber-horror .lamp {
  position: absolute; bottom: 35%; left: 50%; width: 14px; height: 20px;
  background: radial-gradient(circle, #d4a050 0%, #a07030 60%, transparent 100%);
  border-radius: 40%; box-shadow: 0 0 40px 15px rgba(180,130,70,0.4), 0 0 80px 30px rgba(150,100,50,0.2);
  animation: pc-lamp 3s ease-in-out infinite alternate;
}
.scn-portal-chamber-horror .figure {
  position: absolute; bottom: 22%; left: 55%; width: 24px; height: 40px;
  background: linear-gradient(180deg, #1a0e14 0%, #0e080c 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pc-figure 6s ease-in-out infinite;
}
.scn-portal-chamber-horror .shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, transparent 0%, #0a0510 80%);
  animation: pc-shadow 9s ease-in-out infinite alternate;
}

@keyframes pc-wall { 0% { opacity: 0.7 } 50% { opacity: 0.85 } 100% { opacity: 0.7 } }
@keyframes pc-door { 0% { transform: scaleX(1) } 50% { transform: scaleX(0.97) } 100% { transform: scaleX(1) } }
@keyframes pc-curtain { 0% { transform: translateX(0) scaleY(1) } 50% { transform: translateX(2px) scaleY(0.98) } 100% { transform: translateX(0) scaleY(1) } }
@keyframes pc-lamp { 0% { opacity: 0.6; box-shadow: 0 0 30px 10px rgba(180,130,70,0.3) } 50% { opacity: 1; box-shadow: 0 0 50px 20px rgba(200,150,80,0.6) } 100% { opacity: 0.7; box-shadow: 0 0 35px 12px rgba(180,130,70,0.35) } }
@keyframes pc-figure { 0% { transform: translateX(0) rotate(-1deg) } 25% { transform: translateX(4px) translateY(-1px) rotate(2deg) } 50% { transform: translateX(8px) translateY(0) rotate(-1deg) } 75% { transform: translateX(12px) translateY(-1px) rotate(2deg) } 100% { transform: translateX(16px) translateY(0) rotate(0deg) } }
@keyframes pc-shadow { 0% { opacity: 0.6 } 50% { opacity: 0.8 } 100% { opacity: 0.6 } }

/* postern-gate – moonlit dark */
.scn-postern-gate {
  background: linear-gradient(180deg, #0a0d1a 0%, #121829 30%, #1a223a 60%, #232d4a 100%),
              radial-gradient(ellipse at 50% 15%, #3a4a7a 0%, transparent 60%);
}
.scn-postern-gate .sky {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #0a0d1a 0%, #121829 50%, transparent 100%);
  animation: pg-sky 20s ease-in-out infinite alternate;
}
.scn-postern-gate .moon {
  position: absolute; top: 6%; left: 20%; width: 50px; height: 50px;
  background: radial-gradient(circle, #c8d8f0 0%, #90a8c8 90%);
  border-radius: 50%; box-shadow: 0 0 30px 10px rgba(144,168,200,0.5), 0 0 60px 20px rgba(200,216,240,0.2);
  animation: pg-moon 35s ease-in-out infinite alternate;
}
.scn-postern-gate .gate {
  position: absolute; bottom: 20%; left: 35%; width: 100px; height: 130px;
  background: linear-gradient(180deg, #1a1f2e 0%, #0e121f 100%);
  border-radius: 2% 2% 0 0; border: 2px solid #2a3040; box-shadow: inset 0 8px 20px rgba(0,0,0,0.7);
  animation: pg-gate 12s ease-in-out infinite alternate;
}
.scn-postern-gate .casement {
  position: absolute; bottom: 55%; left: 50%; width: 20px; height: 25px;
  background: radial-gradient(circle, #d4c080 0%, #b09860 70%);
  border-radius: 10%; box-shadow: 0 0 20px 6px rgba(180,160,100,0.4);
  animation: pg-casement 4s ease-in-out infinite alternate;
}
.scn-postern-gate .soldier {
  position: absolute; bottom: 20%; left: 25%; width: 22px; height: 38px;
  background: linear-gradient(180deg, #1a1f2e 0%, #0e121f 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pg-soldier 7s ease-in-out infinite;
}
.scn-postern-gate .prisoner {
  position: absolute; bottom: 20%; left: 45%; width: 20px; height: 36px;
  background: linear-gradient(180deg, #1a1f2e 0%, #0e121f 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pg-prisoner 8s ease-in-out infinite;
  animation-delay: 2s;
}
.scn-postern-gate .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 22%;
  background: linear-gradient(180deg, #141a2a 0%, #0a0d1a 100%);
  border-radius: 30% 30% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 8px 15px rgba(0,0,0,0.5);
  animation: pg-ground 15s ease-in-out infinite alternate;
}

@keyframes pg-sky { 0% { opacity: 0.7 } 50% { opacity: 0.9 } 100% { opacity: 0.7 } }
@keyframes pg-moon { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-3px) scale(1.01) } 100% { transform: translateY(0) scale(1) } }
@keyframes pg-gate { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes pg-casement { 0% { opacity: 0.5; box-shadow: 0 0 15px 4px rgba(180,160,100,0.3) } 50% { opacity: 0.8; box-shadow: 0 0 25px 8px rgba(200,180,110,0.5) } 100% { opacity: 0.6; box-shadow: 0 0 18px 5px rgba(180,160,100,0.35) } }
@keyframes pg-soldier { 0% { transform: translateX(0) rotate(-1deg) } 25% { transform: translateX(2px) translateY(-1px) rotate(1deg) } 50% { transform: translateX(4px) translateY(0) rotate(-1deg) } 75% { transform: translateX(6px) translateY(-1px) rotate(1deg) } 100% { transform: translateX(8px) translateY(0) rotate(0deg) } }
@keyframes pg-prisoner { 0% { transform: translateX(0) rotate(1deg) } 25% { transform: translateX(-2px) translateY(-1px) rotate(-1deg) } 50% { transform: translateX(-4px) translateY(0) rotate(1deg) } 75% { transform: translateX(-6px) translateY(-1px) rotate(-1deg) } 100% { transform: translateX(-8px) translateY(0) rotate(0deg) } }
@keyframes pg-ground { 0% { opacity: 0.7 } 50% { opacity: 0.85 } 100% { opacity: 0.7 } }

/* within-the-walls – dim interior dark */
.scn-within-the-walls {
  background: linear-gradient(180deg, #0e0b12 0%, #17131f 40%, #1f1a2c 70%, #16121e 100%),
              radial-gradient(ellipse at 50% 100%, #2a2240 0%, transparent 70%);
}
.scn-within-the-walls .courtyard {
  position: absolute; inset: 0; background: linear-gradient(180deg, #1a1624 0%, #12101a 100%);
  animation: ww-courtyard 15s ease-in-out infinite alternate;
}
.scn-within-the-walls .arch {
  position: absolute; bottom: 20%; left: 20%; width: 120px; height: 140px;
  background: linear-gradient(180deg, #1a1624 0%, #12101a 100%);
  border-radius: 50% 50% 10% 10% / 60% 60% 10% 10%;
  box-shadow: inset 0 15px 30px rgba(0,0,0,0.7);
  animation: ww-arch 10s ease-in-out infinite alternate;
}
.scn-within-the-walls .door {
  position: absolute; bottom: 20%; left: 20%; width: 60px; height: 110px;
  margin-left: 30px;
  background: linear-gradient(180deg, #2a1a1e 0%, #1a1014 100%);
  border-radius: 2% 2% 0 0; border: 2px solid #3a2a30; box-shadow: inset 0 0 20px rgba(0,0,0,0.8);
  animation: ww-door 8s ease-in-out infinite alternate;
}
.scn-within-the-walls .lamp {
  position: absolute; bottom: 40%; left: 50%; width: 12px; height: 18px;
  background: radial-gradient(circle, #c8a050 0%, #a07030 50%, transparent 100%);
  border-radius: 40%; box-shadow: 0 0 30px 10px rgba(160,110,50,0.4), 0 0 60px 20px rgba(130,80,40,0.2);
  animation: ww-lamp 3s ease-in-out infinite alternate;
}
.scn-within-the-walls .figure {
  position: absolute; bottom: 22%; left: 40%; width: 20px; height: 36px;
  background: linear-gradient(180deg, #1a0e14 0%, #0e080c 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ww-figure 5s ease-in-out infinite;
}
.scn-within-the-walls .shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 28%;
  background: linear-gradient(180deg, transparent 0%, #0a0510 80%);
  animation: ww-shadow 9s ease-in-out infinite alternate;
}
.scn-within-the-walls .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 22%;
  background: linear-gradient(180deg, #16111e 0%, #0e0a14 100%);
  border-radius: 40% 40% 0 0 / 25% 25% 0 0;
  box-shadow: inset 0 5px 12px rgba(0,0,0,0.5);
  animation: ww-floor 12s ease-in-out infinite alternate;
}

@keyframes ww-courtyard { 0% { opacity: 0.7 } 50% { opacity: 0.85 } 100% { opacity: 0.7 } }
@keyframes ww-arch { 0% { transform: scaleY(1) } 50% { transform: scaleY(0.98) } 100% { transform: scaleY(1) } }
@keyframes ww-door { 0% { transform: translateX(0) } 50% { transform: translateX(1px) } 100% { transform: translateX(0) } }
@keyframes ww-lamp { 0% { opacity: 0.5; box-shadow: 0 0 20px 8px rgba(160,110,50,0.3) } 50% { opacity: 0.9; box-shadow: 0 0 40px 15px rgba(180,130,60,0.6) } 100% { opacity: 0.6; box-shadow: 0 0 25px 10px rgba(160,110,50,0.35) } }
@keyframes ww-figure { 0% { transform: translateX(0) translateY(0) rotate(-1deg) } 25% { transform: translateX(3px) translateY(-1px) rotate(1deg) } 50% { transform: translateX(6px) translateY(0) rotate(-1deg) } 75% { transform: translateX(9px) translateY(-1px) rotate(1deg) } 100% { transform: translateX(12px) translateY(0) rotate(0deg) } }
@keyframes ww-shadow { 0% { opacity: 0.6 } 50% { opacity: 0.8 } 100% { opacity: 0.6 } }
@keyframes ww-floor { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }

.scn-resolution-to-submit {
  background:
    linear-gradient(180deg, #1a1512 0%, #2c221c 30%, #1f1915 70%, #0d0a08 100%),
    radial-gradient(ellipse at 30% 70%, #3a2a1a 0%, transparent 60%);
}

.scn-resolution-to-submit .wall {
  position: absolute;
  inset: 0 0 35% 0;
  background: linear-gradient(180deg, #2c221c 0%, #1a1512 100%);
  animation: rs-wall 12s ease-in-out infinite alternate;
}

.scn-resolution-to-submit .floor {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 35%;
  background: linear-gradient(180deg, #1a1512 0%, #0d0a08 100%);
  border-radius: 30% 20% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.6);
}

.scn-resolution-to-submit .table {
  position: absolute;
  bottom: 20%;
  left: 50%;
  width: 120px;
  height: 40px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a3525 0%, #2a1e14 100%);
  border-radius: 4px;
  box-shadow: 0 -4px 8px rgba(0,0,0,0.5);
  animation: rs-table 18s ease-in-out infinite;
}

.scn-resolution-to-submit .figure {
  position: absolute;
  bottom: 24%;
  left: 50%;
  width: 40px;
  height: 60px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a1e14 0%, #0d0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rs-figure 9s ease-in-out infinite;
}

.scn-resolution-to-submit .lamp {
  position: absolute;
  bottom: 42%;
  left: 55%;
  width: 14px;
  height: 20px;
  background: radial-gradient(circle, #a07850 0%, #603820 70%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: none;
  animation: rs-lamp 6s ease-in-out infinite;
}

.scn-resolution-to-submit .lamp-glow {
  position: absolute;
  bottom: 40%;
  left: 54%;
  width: 60px;
  height: 60px;
  background: radial-gradient(circle, rgba(160,120,80,0.3) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(8px);
  animation: rs-glow 4s ease-in-out infinite alternate;
}

.scn-resolution-to-submit .shadow {
  position: absolute;
  bottom: 22%;
  left: 50%;
  width: 100px;
  height: 30px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(6px);
  animation: rs-shadow 9s ease-in-out infinite;
}

@keyframes rs-wall {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}

@keyframes rs-table {
  0% { transform: translateX(-50%) scaleY(1); }
  50% { transform: translateX(-50%) scaleY(0.98) translateY(2px); }
  100% { transform: translateX(-50%) scaleY(1); }
}

@keyframes rs-figure {
  0% { transform: translateX(-50%) rotate(0deg); }
  33% { transform: translateX(-50%) rotate(2deg) translateY(-2px); }
  66% { transform: translateX(-50%) rotate(-1deg) translateY(0px); }
  100% { transform: translateX(-50%) rotate(0deg); }
}

@keyframes rs-lamp {
  0% { opacity: 0.8; transform: scale(1) rotate(-2deg); }
  50% { opacity: 1; transform: scale(1.05) rotate(2deg); }
  100% { opacity: 0.85; transform: scale(1) rotate(-2deg); }
}

@keyframes rs-glow {
  0% { opacity: 0.3; transform: scale(1); }
  50% { opacity: 0.6; transform: scale(1.2); }
  100% { opacity: 0.4; transform: scale(0.9); }
}

@keyframes rs-shadow {
  0% { transform: translateX(-50%) scaleX(1); }
  50% { transform: translateX(-50%) scaleX(1.1) translateY(2px); }
  100% { transform: translateX(-50%) scaleX(1); }
}

/* ---- music-from-gascony ---- */
.scn-music-from-gascony {
  background:
    linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 40%, #1a1a28 100%),
    radial-gradient(ellipse at 50% 60%, #3a3a4a 0%, transparent 70%);
}

.scn-music-from-gascony .bg-dark {
  position: absolute;
  inset: 0 0 30% 0;
  background: linear-gradient(180deg, #12121e 0%, #1a1a2a 100%);
  animation: mg-bg 20s ease-in-out infinite alternate;
}

.scn-music-from-gascony .spotlight {
  position: absolute;
  top: -10%; left: 30%;
  width: 90px;
  height: 140%;
  background: linear-gradient(180deg, rgba(200,180,160,0.15) 0%, rgba(200,180,160,0.02) 100%);
  clip-path: polygon(20% 0%, 80% 0%, 60% 100%, 40% 100%);
  animation: mg-spotlight 12s ease-in-out infinite alternate;
}

.scn-music-from-gascony .singer {
  position: absolute;
  bottom: 30%;
  left: 45%;
  width: 36px;
  height: 60px;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a12 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mg-singer 6s ease-in-out infinite;
}

.scn-music-from-gascony .stage {
  position: absolute;
  bottom: 18%;
  left: 10%;
  right: 10%;
  height: 20%;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 0 0 / 100% 100% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.5);
}

.scn-music-from-gascony .note {
  position: absolute;
  width: 12px;
  height: 12px;
  background: radial-gradient(circle, rgba(220,200,180,0.6) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(2px);
  animation: mg-note float 8s linear infinite;
}

.scn-music-from-gascony .note-2 {
  left: 50%;
  bottom: 60%;
  animation-delay: -2.5s;
  animation-duration: 10s;
  width: 10px;
  height: 10px;
}

.scn-music-from-gascony .note-3 {
  left: 55%;
  bottom: 55%;
  animation-delay: -5s;
  animation-duration: 9s;
  width: 8px;
  height: 8px;
}

@keyframes mg-bg {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}

@keyframes mg-spotlight {
  0% { transform: rotate(-2deg) scaleY(1); opacity: 0.7; }
  50% { transform: rotate(2deg) scaleY(1.05); opacity: 1; }
  100% { transform: rotate(-1deg) scaleY(1); opacity: 0.8; }
}

@keyframes mg-singer {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(2px) rotate(-2deg) scaleY(1.01); }
  50% { transform: translateX(0) rotate(2deg); }
  75% { transform: translateX(-2px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}

@keyframes mg-note {
  0% { transform: translateY(0) translateX(0) rotate(0deg); opacity: 0; }
  20% { opacity: 0.8; }
  50% { transform: translateY(-40px) translateX(10px) rotate(20deg); }
  80% { opacity: 0.5; }
  100% { transform: translateY(-90px) translateX(-5px) rotate(45deg); opacity: 0; }
}

/* ---- reasoning-hope ---- */
.scn-reasoning-hope {
  background:
    linear-gradient(180deg, #2a2218 0%, #3a2e1e 30%, #2a2218 60%, #1a150e 100%),
    radial-gradient(ellipse at 70% 40%, #5a4a2a 0%, transparent 60%);
}

.scn-reasoning-hope .room {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, #2a2218 0%, #1a150e 100%);
  animation: rh-room 20s ease-in-out infinite alternate;
}

.scn-reasoning-hope .window {
  position: absolute;
  top: 15%;
  left: 20%;
  width: 120px;
  height: 160px;
  background: linear-gradient(180deg, #0a0a0a 0%, #1a1a12 100%);
  border: 6px solid #3a2a1a;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.7);
  animation: rh-window 15s ease-in-out infinite;
}

.scn-reasoning-hope .light-beam {
  position: absolute;
  top: 12%;
  left: 25%;
  width: 120px;
  height: 180%;
  background: linear-gradient(180deg, rgba(220,190,140,0.12) 0%, rgba(220,190,140,0.02) 100%);
  clip-path: polygon(25% 0%, 75% 0%, 60% 100%, 40% 100%);
  animation: rh-beam 8s ease-in-out infinite alternate;
}

.scn-reasoning-hope .figure {
  position: absolute;
  bottom: 28%;
  left: 35%;
  width: 32px;
  height: 55px;
  background: linear-gradient(180deg, #2a1e14 0%, #0d0a06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rh-figure 7s ease-in-out infinite;
}

.scn-reasoning-hope .table {
  position: absolute;
  bottom: 22%;
  left: 28%;
  width: 80px;
  height: 30px;
  background: linear-gradient(180deg, #4a3525 0%, #2a1e14 100%);
  border-radius: 4px;
  box-shadow: 0 -4px 8px rgba(0,0,0,0.5);
  animation: rh-table 14s ease-in-out infinite;
}

.scn-reasoning-hope .paper {
  position: absolute;
  bottom: 28%;
  left: 35%;
  width: 20px;
  height: 14px;
  background: #d4c4a8;
  border-radius: 2px;
  transform: rotate(-10deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: rh-paper 5s ease-in-out infinite;
}

.scn-reasoning-hope .vine {
  position: absolute;
  top: 20%;
  left: 22%;
  width: 4px;
  height: 60px;
  background: linear-gradient(180deg, #3a5a2a 0%, #2a3a1a 100%);
  border-radius: 2px;
  transform-origin: top;
  animation: rh-vine 12s ease-in-out infinite alternate;
}

@keyframes rh-room {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}

@keyframes rh-window {
  0% { transform: scale(1); box-shadow: inset 0 0 20px rgba(0,0,0,0.7); }
  50% { transform: scale(1.01); box-shadow: inset 0 0 30px rgba(0,0,0,0.8); }
  100% { transform: scale(1); box-shadow: inset 0 0 20px rgba(0,0,0,0.7); }
}

@keyframes rh-beam {
  0% { opacity: 0.3; transform: rotate(-2deg); }
  50% { opacity: 0.6; transform: rotate(2deg); }
  100% { opacity: 0.4; transform: rotate(0deg); }
}

@keyframes rh-figure {
  0% { transform: translateX(0) rotate(0deg); }
  33% { transform: translateX(3px) rotate(-2deg) translateY(-1px); }
  66% { transform: translateX(-2px) rotate(1deg) translateY(0); }
  100% { transform: translateX(0) rotate(0deg); }
}

@keyframes rh-table {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(0.97) translateY(2px); }
  100% { transform: scaleY(1); }
}

@keyframes rh-paper {
  0% { transform: rotate(-10deg) translateY(0); }
  50% { transform: rotate(-8deg) translateY(-3px); }
  100% { transform: rotate(-10deg) translateY(0); }
}

@keyframes rh-vine {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.05); }
  100% { transform: scaleY(0.95); }
}

/* ---- night-of-suspense ---- */
.scn-night-of-suspense {
  background:
    linear-gradient(180deg, #0a0a1a 0%, #141428 40%, #0e0e22 70%, #060612 100%),
    radial-gradient(ellipse at 60% 30%, #1a1a3a 0%, transparent 70%);
}

.scn-night-of-suspense .bg-night {
  position: absolute;
  inset: 0 0 40% 0;
  background: linear-gradient(180deg, #060612 0%, #0a0a1a 100%);
  animation: ns-bg 15s ease-in-out infinite alternate;
}

.scn-night-of-suspense .window-frame {
  position: absolute;
  top: 18%;
  left: 25%;
  width: 140px;
  height: 180px;
  background: #1a1a2a;
  border: 8px solid #2a2a3a;
  border-radius: 6px;
  box-shadow: 0 0 30px rgba(0,0,0,0.8);
  animation: ns-frame 20s ease-in-out infinite;
}

.scn-night-of-suspense .window-pane {
  position: absolute;
  top: 22%;
  left: 28%;
  width: 120px;
  height: 160px;
  background: linear-gradient(180deg, #0a0a1a 0%, #141430 100%);
  border-radius: 2px;
  box-shadow: inset 0 0 40px rgba(0,0,0,0.9);
  animation: ns-pane 8s ease-in-out infinite alternate;
}

.scn-night-of-suspense .figure {
  position: absolute;
  bottom: 28%;
  left: 40%;
  width: 34px;
  height: 58px;
  background: linear-gradient(180deg, #1a1a28 0%, #0a0a12 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ns-figure 0.8s ease-in-out infinite;
}

.scn-night-of-suspense .curtain {
  position: absolute;
  top: 18%;
  width: 40px;
  height: 200px;
  background: linear-gradient(180deg, #1a1a28 0%, #0a0a14 100%);
  border-radius: 0 0 20px 20px;
  filter: blur(1px);
}

.scn-night-of-suspense .curtain-l {
  left: 22%;
  animation: ns-curtain-l 4s ease-in-out infinite alternate;
}

.scn-night-of-suspense .curtain-r {
  right: 30%;
  animation: ns-curtain-r 5s ease-in-out infinite alternate;
}

.scn-night-of-suspense .mountain-glimmer {
  position: absolute;
  top: 28%;
  left: 45%;
  width: 40px;
  height: 30px;
  background: linear-gradient(180deg, rgba(200,180,160,0.08) 0%, transparent 100%);
  clip-path: polygon(50% 100%, 0% 0%, 100% 0%);
  animation: ns-mountain 10s ease-in-out infinite alternate;
}

.scn-night-of-suspense .anxiety-shimmer {
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at 70% 30%, rgba(100,100,180,0.03) 0%, transparent 60%);
  animation: ns-shimmer 2s ease-in-out infinite alternate;
}

@keyframes ns-bg {
  0% { opacity: 0.6; }
  50% { opacity: 0.9; }
  100% { opacity: 0.7; }
}

@keyframes ns-frame {
  0% { transform: scale(1); }
  50% { transform: scale(1.005); }
  100% { transform: scale(1); }
}

@keyframes ns-pane {
  0% { opacity: 0.4; }
  50% { opacity: 0.7; }
  100% { opacity: 0.5; }
}

@keyframes ns-figure {
  0% { transform: translateX(-1px) rotate(1deg) translateY(0); }
  25% { transform: translateX(1px) rotate(-1deg) translateY(-1px); }
  50% { transform: translateX(-1px) rotate(0deg) translateY(0); }
  75% { transform: translateX(1px) rotate(1deg) translateY(-2px); }
  100% { transform: translateX(-1px) rotate(-1deg) translateY(0); }
}

@keyframes ns-curtain-l {
  0% { transform: translateX(0); }
  100% { transform: translateX(-6px); }
}

@keyframes ns-curtain-r {
  0% { transform: translateX(0); }
  100% { transform: translateX(6px); }
}

@keyframes ns-mountain {
  0% { opacity: 0.1; transform: scale(1); }
  50% { opacity: 0.3; transform: scale(1.02); }
  100% { opacity: 0.2; transform: scale(1); }
}

@keyframes ns-shimmer {
  0% { opacity: 0.2; }
  100% { opacity: 0.4; }
}

/* --- voice-in-the-wall --- */
.scn-voice-in-the-wall {
  background:
    linear-gradient(180deg, #2a2020 0%, #1a1210 40%, #0e0a08 100%),
    radial-gradient(ellipse at 30% 50%, #3a2820 0%, transparent 70%);
}
.scn-voice-in-the-wall .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(90deg, #3a2a20 0%, #2a1e14 50%, #1a120e 100%);
  border-radius: 0 0 20% 20%;
  animation: viw-wall 20s ease-in-out infinite alternate;
}
.scn-voice-in-the-wall .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%);
  border-radius: 40% 0 0 0;
  box-shadow: inset 0 20px 30px rgba(0,0,0,.6);
}
.scn-voice-in-the-wall .candle {
  position: absolute; bottom: 32%; left: 25%; width: 14px; height: 40px;
  background: linear-gradient(180deg, #6a5040 0%, #4a3a30 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 2px 4px 8px rgba(0,0,0,.5);
}
.scn-voice-in-the-wall .flame {
  position: absolute; bottom: 60%; left: 25.5%; width: 10px; height: 16px;
  background: radial-gradient(circle, #ffcc80 0%, #ff9933 40%, #e06020 70%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 8px #ff9933, 0 0 40px 16px rgba(255,153,51,.4);
  animation: viw-flame 2.5s ease-in-out infinite alternate;
}
.scn-voice-in-the-wall .shadow-figure {
  position: absolute; bottom: 28%; left: 55%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #0e0a08 0%, #060404 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  box-shadow: 0 0 30px rgba(0,0,0,.7);
  animation: viw-shadow 6s ease-in-out infinite alternate;
}
.scn-voice-in-the-wall .window-slit {
  position: absolute; top: 15%; right: 20%; width: 6px; height: 40px;
  background: rgba(180,200,220,.08);
  border: 1px solid rgba(180,200,220,.1);
  border-radius: 2px;
  box-shadow: 0 0 4px rgba(180,200,220,.1);
  animation: viw-window 15s linear infinite;
}
.scn-voice-in-the-wall .dust-mote {
  position: absolute; top: 50%; left: 40%; width: 4px; height: 4px;
  background: rgba(220,200,180,.2);
  border-radius: 50%;
  filter: blur(1px);
  animation: viw-dust 8s ease-in-out infinite alternate;
}
@keyframes viw-wall { 0% { opacity: .9 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes viw-flame { 0% { transform: scaleY(1) scaleX(1); opacity: .9 } 30% { transform: scaleY(1.1) scaleX(.9); opacity: 1 } 60% { transform: scaleY(.95) scaleX(1.05); opacity: .85 } 100% { transform: scaleY(1) scaleX(1); opacity: .95 } }
@keyframes viw-shadow { 0% { transform: translateX(0) rotate(1deg) } 50% { transform: translateX(-3px) rotate(-1deg) } 100% { transform: translateX(0) rotate(2deg) } }
@keyframes viw-window { 0% { opacity: .05; transform: translateY(0) } 50% { opacity: .15; transform: translateY(4px) } 100% { opacity: .05; transform: translateY(0) } }
@keyframes viw-dust { 0% { transform: translateY(0) translateX(0) scale(1) } 50% { transform: translateY(-8px) translateX(2px) scale(1.2) } 100% { transform: translateY(0) translateX(-1px) scale(1) } }

/* --- recollection --- */
.scn-recollection {
  background:
    linear-gradient(180deg, #c8d8e8 0%, #e8f0f5 30%, #f5f8fa 60%, #d0dce8 100%),
    radial-gradient(ellipse at 70% 20%, #fffcf0 0%, transparent 60%);
}
.scn-recollection .sky-sunlit {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #b8d0e8 0%, #e8f4ff 100%);
  animation: rec-sky 25s ease-in-out infinite alternate;
}
.scn-recollection .sun-rays {
  position: absolute; top: 8%; left: 60%; width: 120px; height: 400px;
  background: linear-gradient(180deg, rgba(255,240,200,.25) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(20px);
  animation: rec-rays 12s ease-in-out infinite alternate;
}
.scn-recollection .ground-path {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #b0a080 0%, #8a7a60 40%, #6a5a40 100%);
  border-radius: 60% 40% 0 0 / 30% 20% 0 0;
}
.scn-recollection .figure-left {
  position: absolute; bottom: 20%; left: 28%; width: 28px; height: 60px;
  background: linear-gradient(180deg, #4a5060 0%, #2a3040 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: rec-figure 8s ease-in-out infinite alternate;
}
.scn-recollection .figure-right {
  position: absolute; bottom: 22%; right: 30%; width: 30px; height: 62px;
  background: linear-gradient(180deg, #4a5060 0%, #2a3040 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: rec-figure 8s ease-in-out infinite alternate-reverse;
  animation-delay: -2s;
}
.scn-recollection .tree-canopy {
  position: absolute; top: 0; left: 10%; width: 200px; height: 180px;
  background: radial-gradient(ellipse at 50% 80%, rgba(60,100,50,.5) 0%, transparent 70%);
  filter: blur(15px);
  border-radius: 50%;
  animation: rec-tree 30s ease-in-out infinite;
}
.scn-recollection .butterfly {
  position: absolute; top: 45%; right: 20%; width: 8px; height: 6px;
  background: radial-gradient(circle, #c09050 0%, #a07030 60%, transparent 100%);
  border-radius: 50%;
  filter: blur(1px);
  animation: rec-butterfly 5s ease-in-out infinite alternate;
}
@keyframes rec-sky { 0% { opacity: .85 } 50% { opacity: 1 } 100% { opacity: .9 } }
@keyframes rec-rays { 0% { transform: rotate(-2deg) scale(1); opacity: .6 } 50% { transform: rotate(2deg) scale(1.05); opacity: .9 } 100% { transform: rotate(-1deg) scale(1); opacity: .7 } }
@keyframes rec-figure { 0% { transform: translateX(0) rotate(0) } 50% { transform: translateX(4px) rotate(-2deg) } 100% { transform: translateX(0) rotate(1deg) } }
@keyframes rec-tree { 0% { transform: translateY(0) scaleX(1) } 50% { transform: translateY(-3px) scaleX(1.02) } 100% { transform: translateY(0) scaleX(1) } }
@keyframes rec-butterfly { 0% { transform: translateY(0) rotate(-20deg) scale(1) } 50% { transform: translateY(-6px) rotate(10deg) scale(1.2) } 100% { transform: translateY(0) rotate(20deg) scale(1) } }

/* --- hope-for-estates --- */
.scn-hope-for-estates {
  background:
    linear-gradient(180deg, #fce8c0 0%, #f8d090 30%, #e8b870 60%, #d0a060 100%),
    radial-gradient(ellipse at 60% 20%, #fff0d0 0%, transparent 50%);
}
.scn-hope-for-estates .golden-sky {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #fce0b0 0%, #fce8c0 40%, #ffe0a0 100%);
  animation: hfe-sky 20s ease-in-out infinite alternate;
}
.scn-hope-for-estates .sun-glow {
  position: absolute; top: 10%; left: 65%; width: 160px; height: 160px;
  background: radial-gradient(circle, rgba(255,240,200,.5) 0%, rgba(255,220,150,.2) 40%, transparent 100%);
  border-radius: 50%;
  filter: blur(30px);
  animation: hfe-glow 10s ease-in-out infinite alternate;
}
.scn-hope-for-estates .distant-hills {
  position: absolute; bottom: 35%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #b09070 0%, #907050 100%);
  border-radius: 70% 50% 0 0 / 50% 40% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.3);
  animation: hfe-hills 18s ease-in-out infinite;
}
.scn-hope-for-estates .estate-grounds {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #a08050 0%, #806040 100%);
  border-radius: 40% 30% 0 0 / 20% 15% 0 0;
}
.scn-hope-for-estates .path-way {
  position: absolute; bottom: 12%; left: 20%; width: 60%; height: 30%;
  background: linear-gradient(180deg, #c0a070 0%, #a08050 100%);
  border-radius: 30% 30% 0 0 / 50% 40% 0 0;
  transform: perspective(300px) rotateX(10deg);
  animation: hfe-path 15s ease-in-out infinite alternate;
}
.scn-hope-for-estates .figure-silhouette {
  position: absolute; bottom: 20%; left: 50%; width: 24px; height: 56px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 45% 45% 30% 30% / 55% 55% 30% 30%;
  transform: translateX(-50%);
  box-shadow: 0 4px 6px rgba(0,0,0,.3);
  animation: hfe-figure 6s ease-in-out infinite alternate;
}
.scn-hope-for-estates .sparkle {
  position: absolute; top: 38%; left: 25%; width: 6px; height: 6px;
  background: radial-gradient(circle, #ffe680 0%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 12px 4px #ffe680;
  animation: hfe-sparkle 3s ease-in-out infinite;
}
.scn-hope-for-estates .cloud-soft {
  position: absolute; top: 16%; right: 10%; width: 80px; height: 20px;
  background: linear-gradient(180deg, rgba(255,255,240,.4) 0%, rgba(255,255,240,.1) 100%);
  border-radius: 50%;
  filter: blur(8px);
  animation: hfe-cloud 40s linear infinite reverse;
}
@keyframes hfe-sky { 0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes hfe-glow { 0% { opacity: .6; transform: scale(1) } 50% { opacity: .9; transform: scale(1.05) } 100% { opacity: .7; transform: scale(.98) } }
@keyframes hfe-hills { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes hfe-path { 0% { opacity: .9 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes hfe-figure { 0% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-2px) } 100% { transform: translateX(-50%) translateY(0) } }
@keyframes hfe-sparkle { 0% { opacity: .2; transform: scale(.5) } 50% { opacity: 1; transform: scale(1.3) } 100% { opacity: .3; transform: scale(.6) } }
@keyframes hfe-cloud { 0% { transform: translateX(0) } 100% { transform: translateX(-120vw) } }

/* --- fireflies-and-cicalas --- */
.scn-fireflies-and-cicalas {
  background:
    linear-gradient(180deg, #1a1a3a 0%, #2a284a 30%, #1e2444 60%, #0a0a1a 100%),
    radial-gradient(ellipse at 50% 100%, #2a3a4a 0%, transparent 70%);
}
.scn-fireflies-and-cicalas .twilight-bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a3050 0%, #1a1a30 50%, #10101e 100%);
  animation: ffc-sky 15s ease-in-out infinite alternate;
}
.scn-fireflies-and-cicalas .dark-foliage {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #1a2a1a 0%, #0e1a0e 100%);
  border-radius: 50% 20% 0 0 / 60% 30% 0 0;
  box-shadow: inset 0 20px 30px rgba(0,0,0,.5);
  animation: ffc-foliage 20s ease-in-out infinite;
}
.scn-fireflies-and-cicalas .firefly-a {
  position: absolute; bottom: 45%; left: 20%; width: 6px; height: 6px;
  background: radial-gradient(circle, #d0ff60 0%, #a0e040 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 14px 4px #a0e040, 0 0 30px 8px rgba(160,224,64,.3);
  animation: ffc-firefly-a 4s ease-in-out infinite alternate;
}
.scn-fireflies-and-cicalas .firefly-b {
  position: absolute; bottom: 40%; left: 55%; width: 5px; height: 5px;
  background: radial-gradient(circle, #d0ff60 0%, #a0e040 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 12px 3px #a0e040;
  animation: ffc-firefly-b 5s ease-in-out infinite alternate;
  animation-delay: -1.5s;
}
.scn-fireflies-and-cicalas .firefly-c {
  position: absolute; bottom: 50%; left: 70%; width: 4px; height: 4px;
  background: radial-gradient(circle, #d0ff60 0%, #a0e040 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 10px 2px #a0e040;
  animation: ffc-firefly-c 6s ease-in-out infinite alternate;
  animation-delay: -3s;
}
.scn-fireflies-and-cicalas .cicala-wing {
  position: absolute; bottom: 28%; left: 40%; width: 20px; height: 12px;
  background: linear-gradient(180deg, rgba(200,220,180,.15) 0%, transparent 100%);
  border-radius: 50%;
  transform: rotate(-20deg);
  filter: blur(2px);
  animation: ffc-cicala 3s ease-in-out infinite alternate;
}
.scn-fireflies-and-cicalas .moon-crescent {
  position: absolute; top: 8%; right: 20%; width: 30px; height: 30px;
  background: radial-gradient(circle at 40% 50%, #e0e8f0 0%, #b0c0d0 50%, transparent 60%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px rgba(180,200,220,.2);
  animation: ffc-moon 30s linear infinite;
}
.scn-fireflies-and-cicalas .star-tiny {
  position: absolute; top: 15%; left: 30%; width: 2px; height: 2px;
  background: #ffffff;
  border-radius: 50%;
  box-shadow: 0 0 2px #ffffff;
  animation: ffc-star 4s ease-in-out infinite alternate;
}
.scn-fireflies-and-cicalas .beetle {
  position: absolute; bottom: 48%; right: 25%; width: 10px; height: 6px;
  background: radial-gradient(circle, #6a5050 0%, #3a2a2a 100%);
  border-radius: 30% 30% 50% 50%;
  transform: rotate(-10deg);
  box-shadow: 0 0 4px rgba(0,0,0,.4);
  animation: ffc-beetle 8s ease-in-out infinite alternate;
}
@keyframes ffc-sky { 0% { opacity: .7 } 50% { opacity: 1 } 100% { opacity: .8 } }
@keyframes ffc-foliage { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes ffc-firefly-a { 0% { opacity: .2; transform: translate(0,0) scale(.6) } 50% { opacity: 1; transform: translate(8px,-12px) scale(1.2) } 100% { opacity: .3; transform: translate(-4px,-6px) scale(.7) } }
@keyframes ffc-firefly-b { 0% { opacity: .1; transform: translate(0,0) } 50% { opacity: 1; transform: translate(-6px,-14px) } 100% { opacity: .2; transform: translate(4px,-8px) } }
@keyframes ffc-firefly-c { 0% { opacity: .3; transform: translate(0,0) scale(.8) } 50% { opacity: 1; transform: translate(10px,-8px) scale(1.1) } 100% { opacity: .4; transform: translate(-2px,-4px) scale(.7) } }
@keyframes ffc-cicala { 0% { transform: rotate(-25deg) scale(1); opacity: .2 } 50% { transform: rotate(-15deg) scale(1.1); opacity: .5 } 100% { transform: rotate(-20deg) scale(1); opacity: .3 } }
@keyframes ffc-moon { 0% { transform: translateY(0) } 50% { transform: translateY(4px) } 100% { transform: translateY(0) } }
@keyframes ffc-star { 0% { opacity: .3 } 50% { opacity: .8 } 100% { opacity: .2 } }
@keyframes ffc-beetle { 0% { transform: rotate(-15deg) translateY(0) } 50% { transform: rotate(-5deg) translateY(-2px) } 100% { transform: rotate(-10deg) translateY(0) } }

/* orsino-hides-at-montoni */
.scn-orsino-hides-at-montoni {
  background: 
    radial-gradient(ellipse at 50% 120%, #0f0f1a 0%, transparent 70%),
    linear-gradient(180deg, #0c0c1a 0%, #1a1a2e 40%, #2a2a40 100%);
}
.scn-orsino-hides-at-montoni .floor {
  position:absolute; bottom:0; left:0; right:0; height:35%;
  background: linear-gradient(0deg, #1a1a1a 0%, #2a2a30 100%);
  box-shadow: inset 0 8px 12px rgba(0,0,0,.6);
}
.scn-orsino-hides-at-montoni .wall {
  position:absolute; top:0; left:0; right:0; bottom:35%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
}
.scn-orsino-hides-at-montoni .window-pane {
  position:absolute; top:12%; left:68%; width:80px; height:100px;
  background: radial-gradient(ellipse at 50% 50%, #4a6a8a 0%, #1a2a3a 100%);
  border: 4px solid #2a2a3a; border-radius: 4px;
  box-shadow: inset 0 0 20px #3a5a7a, 0 0 30px rgba(74,106,138,.3);
  animation: orsino-window 8s ease-in-out infinite alternate;
}
.scn-orsino-hides-at-montoni .curtain-left {
  position:absolute; top:8%; left:60%; width:50px; height:110px;
  background: linear-gradient(135deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 0 40% 40% 0 / 0 60% 60% 0;
  transform-origin: top left;
  animation: orsino-curtain 6s ease-in-out infinite alternate;
  filter: drop-shadow(4px 4px 6px rgba(0,0,0,.5));
}
.scn-orsino-hides-at-montoni .curtain-right {
  position:absolute; top:8%; right:20%; width:50px; height:110px;
  background: linear-gradient(225deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 0 0 40% / 60% 0 0 60%;
  transform-origin: top right;
  animation: orsino-curtain 6s ease-in-out infinite alternate-reverse;
  filter: drop-shadow(-4px 4px 6px rgba(0,0,0,.5));
}
.scn-orsino-hides-at-montoni .figure-hidden {
  position:absolute; bottom:28%; left:36%; width:30px; height:60px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 45% 45% 40% 40% / 55% 55% 45% 45%;
  transform-origin: bottom center;
  animation: orsino-hide 4s ease-in-out infinite;
}
.scn-orsino-hides-at-montoni .shadow-cast {
  position:absolute; bottom:10%; left:30%; width:80px; height:20px;
  background: radial-gradient(ellipse, rgba(0,0,0,.7) 0%, transparent 100%);
  animation: orsino-shadow 4s ease-in-out infinite;
}
.scn-orsino-hides-at-montoni .dust-mote {
  position:absolute; width:4px; height:4px;
  background: rgba(200,200,220,.3);
  border-radius:50%;
  filter: blur(1px);
}
.scn-orsino-hides-at-montoni .mote-1 {
  top:30%; left:20%;
  animation: orsino-dust 12s linear infinite;
}
.scn-orsino-hides-at-montoni .mote-2 {
  top:60%; left:70%;
  animation: orsino-dust 15s linear infinite reverse;
}
@keyframes orsino-window {
  0% { opacity:0.6; transform: scaleY(1); }
  50% { opacity:0.9; transform: scaleY(1.05); }
  100% { opacity:0.5; transform: scaleY(0.95); }
}
@keyframes orsino-curtain {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(3deg); }
  100% { transform: rotate(-2deg); }
}
@keyframes orsino-hide {
  0% { opacity:0.4; transform: translateX(0) translateY(0) rotate(-2deg); }
  33% { opacity:0.7; transform: translateX(-3px) translateY(-1px) rotate(0deg); }
  66% { opacity:0.5; transform: translateX(2px) translateY(2px) rotate(2deg); }
  100% { opacity:0.3; transform: translateX(0) translateY(0) rotate(-1deg); }
}
@keyframes orsino-shadow {
  0%,100% { transform: scaleX(1); opacity:0.5; }
  50% { transform: scaleX(1.2); opacity:0.8; }
}
@keyframes orsino-dust {
  0% { transform: translate(0,0) scale(1); opacity:0; }
  20% { opacity:0.6; }
  80% { opacity:0.3; }
  100% { transform: translate(30px,-80px) scale(1.5); opacity:0; }
}

/* montoni-hides-orsino */
.scn-montoni-hides-orsino {
  background: 
    radial-gradient(ellipse at 40% 60%, #3a2a1a 0%, transparent 60%),
    linear-gradient(180deg, #12121e 0%, #1e1e2a 40%, #2a2a3a 100%);
}
.scn-montoni-hides-orsino .stone-wall {
  position:absolute; top:0; left:0; right:0; bottom:30%;
  background: linear-gradient(135deg, #2a2a2a 0%, #3a3a3a 50%, #1a1a1a 100%);
  border-radius: 0 0 60% 40% / 0 0 20% 20%;
}
.scn-montoni-hides-orsino .alcove {
  position:absolute; bottom:25%; right:15%; width:80px; height:120px;
  background: radial-gradient(ellipse at 50% 60%, #0a0a0a 0%, #1a1a1a 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%;
  box-shadow: inset 0 0 30px rgba(0,0,0,.8);
}
.scn-montoni-hides-orsino .figure-orsino {
  position:absolute; bottom:22%; right:20%; width:32px; height:68px;
  background: linear-gradient(180deg, #1e1e1e 0%, #0a0a0a 100%);
  border-radius: 40% 40% 35% 35% / 55% 55% 45% 45%;
  transform-origin: bottom center;
  animation: mho-crouch 5s ease-in-out infinite;
}
.scn-montoni-hides-orsino .figure-montoni {
  position:absolute; bottom:10%; left:20%; width:36px; height:72px;
  background: linear-gradient(180deg, #2a2a2a 0%, #0e0e0e 100%);
  border-radius: 45% 45% 40% 40% / 55% 55% 45% 45%;
  animation: mho-turn 6s ease-in-out infinite;
  filter: drop-shadow(2px 2px 4px rgba(0,0,0,.5));
}
.scn-montoni-hides-orsino .lantern-light {
  position:absolute; bottom:50%; left:15%; width:16px; height:20px;
  background: radial-gradient(circle, #d4a050 0%, #a07030 60%, transparent 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 0 30px 8px #b08040, 0 0 60px 20px rgba(176,128,64,.4);
  animation: mho-lantern 3s ease-in-out infinite alternate;
}
.scn-montoni-hides-orsino .doorway-arch {
  position:absolute; bottom:0; left:50%; transform:translateX(-50%);
  width:100px; height:150px;
  border: 6px solid #1e1e1e;
  border-radius: 50% 50% 0 0 / 60% 60% 0 0;
  background: linear-gradient(135deg, #0a0a0a 0%, #1a1a1a 100%);
}
.scn-montoni-hides-orsino .floor-tile {
  position:absolute; bottom:0; left:0; right:0; height:12%;
  background: repeating-linear-gradient(90deg, #2a2a2a 0px, #3a3a3a 4px, #2a2a2a 8px);
  opacity:0.6;
}
.scn-montoni-hides-orsino .spiderweb {
  position:absolute; top:10%; left:60%; width:60px; height:60px;
  background: radial-gradient(circle at 50% 50%, transparent 50%, rgba(255,255,255,.08) 52%, transparent 54%);
  background-size: 10px 10px;
  mask-image: radial-gradient(circle, transparent 30%, black 31%, transparent 33%);
  animation: mho-web 20s linear infinite;
}
@keyframes mho-crouch {
  0% { transform: translateY(0) scaleY(1); }
  25% { transform: translateY(-2px) scaleY(0.98); }
  50% { transform: translateY(1px) scaleY(1.02); }
  75% { transform: translateY(-1px) scaleY(0.99); }
  100% { transform: translateY(0) scaleY(1); }
}
@keyframes mho-turn {
  0%,100% { transform: translateX(0) rotate(0deg); }
  33% { transform: translateX(5px) rotate(-3deg); }
  66% { transform: translateX(-3px) rotate(3deg); }
}
@keyframes mho-lantern {
  0% { opacity:0.7; transform: scale(0.95); box-shadow: 0 0 20px 5px #b08040; }
  50% { opacity:1; transform: scale(1.05); box-shadow: 0 0 40px 12px #d4a050; }
  100% { opacity:0.8; transform: scale(0.98); box-shadow: 0 0 25px 6px #b08040; }
}
@keyframes mho-web {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}

/* morano-nuptials-revived */
.scn-morano-nuptials-revived {
  background:
    radial-gradient(ellipse at 70% 30%, #1a1a2a 0%, transparent 50%),
    linear-gradient(180deg, #0c0c1a 0%, #1c1c2a 40%, #2c2c3a 100%);
}
.scn-morano-nuptials-revived .room-bg {
  position:absolute; inset:0;
  background: linear-gradient(135deg, #2a2a3a 0%, #1a1a2a 100%);
}
.scn-morano-nuptials-revived .table {
  position:absolute; bottom:20%; left:35%; width:100px; height:30px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 5px;
  box-shadow: 0 6px 10px rgba(0,0,0,.5);
}
.scn-morano-nuptials-revived .candle {
  position:absolute; bottom:45%; left:42%; width:10px; height:30px;
  background: linear-gradient(180deg, #d4c0a0 0%, #a08060 100%);
  border-radius: 2px;
}
.scn-morano-nuptials-revived .flame {
  position:absolute; bottom:52%; left:42.5%; width:8px; height:14px;
  background: radial-gradient(circle at 50% 0%, #ffd080 0%, #ffa040 50%, transparent 100%);
  border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%;
  box-shadow: 0 0 20px 6px #ffa040, 0 0 40px 10px rgba(255,160,64,.3);
  animation: mnr-flame 0.8s ease-in-out infinite alternate;
}
.scn-morano-nuptials-revived .figure-morano {
  position:absolute; bottom:8%; left:20%; width:40px; height:85px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 45% 45% 40% 40% / 55% 55% 45% 45%;
  transform-origin: bottom center;
  animation: mnr-loom 3s ease-in-out infinite;
  filter: drop-shadow(8px 8px 10px rgba(0,0,0,.7));
}
.scn-morano-nuptials-revived .figure-priest {
  position:absolute; bottom:10%; right:15%; width:32px; height:70px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 40% 35% 35% / 50% 50% 40% 40%;
  animation: mnr-bow 5s ease-in-out infinite;
}
.scn-morano-nuptials-revived .chair {
  position:absolute; bottom:22%; left:55%; width:40px; height:60px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 20% 20% 5% 5%;
  box-shadow: inset 0 -4px 6px rgba(0,0,0,.5);
}
.scn-morano-nuptials-revived .shadow-threat {
  position:absolute; bottom:0; left:10%; width:200px; height:100px;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,.8) 0%, transparent 100%);
  animation: mnr-shadow 4s ease-in-out infinite;
}
.scn-morano-nuptials-revived .pendulum {
  position:absolute; top:5%; left:50%; width:4px; height:100px;
  background: linear-gradient(180deg, #8a6a4a 0%, #4a2a1a 100%);
  transform-origin: top center;
  animation: mnr-pendulum 2s ease-in-out infinite alternate;
  border-radius: 2px;
}
@keyframes mnr-flame {
  0% { opacity:0.8; transform: scaleY(1) translateY(0); }
  50% { opacity:1; transform: scaleY(1.2) translateY(-2px); }
  100% { opacity:0.6; transform: scaleY(0.9) translateY(1px); }
}
@keyframes mnr-loom {
  0%,100% { transform: translateX(0) scaleY(1); }
  25% { transform: translateX(3px) scaleY(1.03); }
  50% { transform: translateX(-2px) scaleY(0.98); }
  75% { transform: translateX(4px) scaleY(1.05); }
}
@keyframes mnr-bow {
  0% { transform: rotate(0deg); }
  33% { transform: rotate(-4deg); }
  66% { transform: rotate(3deg); }
  100% { transform: rotate(0deg); }
}
@keyframes mnr-shadow {
  0%,100% { opacity:0.4; transform: scaleX(1); }
  50% { opacity:0.8; transform: scaleX(1.1); }
}
@keyframes mnr-pendulum {
  0% { transform: rotate(-15deg); }
  100% { transform: rotate(15deg); }
}

/* emily-prepares-for-crisis */
.scn-emily-prepares-for-crisis {
  background:
    radial-gradient(ellipse at 30% 40%, #1a1a2e 0%, transparent 60%),
    linear-gradient(180deg, #0e0e1e 0%, #1e1e2e 40%, #2e2e3e 100%);
}
.scn-emily-prepares-for-crisis .chamber-floor {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(0deg, #1a1a1a 0%, #2a2a2a 100%);
}
.scn-emily-prepares-for-crisis .desk {
  position:absolute; bottom:18%; left:30%; width:120px; height:40px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 6px;
  box-shadow: 0 4px 8px rgba(0,0,0,.4);
}
.scn-emily-prepares-for-crisis .candle-stick {
  position:absolute; bottom:36%; left:38%; width:8px; height:25px;
  background: linear-gradient(180deg, #c0a080 0%, #806040 100%);
  border-radius: 2px;
}
.scn-emily-prepares-for-crisis .figure-emily {
  position:absolute; bottom:16%; left:22%; width:30px; height:65px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 45% 45% 40% 40% / 55% 55% 45% 45%;
  transform-origin: bottom center;
  animation: epc-figure 4s ease-in-out infinite;
}
.scn-emily-prepares-for-crisis .open-book {
  position:absolute; bottom:22%; left:38%; width:40px; height:30px;
  background: linear-gradient(135deg, #c0b8a0 0%, #a09080 100%);
  border-radius: 4px;
  transform: skewX(-10deg);
  box-shadow: inset 0 0 10px rgba(0,0,0,.3);
  animation: epc-book 4s ease-in-out infinite alternate;
}
.scn-emily-prepares-for-crisis .window-night {
  position:absolute; top:10%; right:15%; width:70px; height:90px;
  background: radial-gradient(ellipse at 50% 50%, #2a3a5a 0%, #0a1a2a 100%);
  border: 4px solid #2a2a3a;
  border-radius: 4px;
  box-shadow: 0 0 20px rgba(42,58,90,.3);
}
.scn-emily-prepares-for-crisis .moon-beam {
  position:absolute; top:10%; right:15%; width:70px; height:90px;
  background: linear-gradient(135deg, rgba(180,200,255,.15) 0%, transparent 100%);
  animation: epc-beam 10s ease-in-out infinite alternate;
}
.scn-emily-prepares-for-crisis .trunk {
  position:absolute; bottom:12%; right:35%; width:50px; height:30px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 4px;
  box-shadow: 0 2px 6px rgba(0,0,0,.5);
}
@keyframes epc-figure {
  0%,100% { transform: translateY(0) rotate(0deg); }
  20% { transform: translateY(-1px) rotate(-2deg); }
  40% { transform: translateY(1px) rotate(2deg); }
  60% { transform: translateY(-2px) rotate(-1deg); }
  80% { transform: translateY(0) rotate(1deg); }
}
@keyframes epc-book {
  0% { opacity:0.7; transform: skewX(-10deg) scaleY(1); }
  50% { opacity:1; transform: skewX(-12deg) scaleY(1.02); }
  100% { opacity:0.8; transform: skewX(-8deg) scaleY(0.98); }
}
@keyframes epc-beam {
  0% { opacity:0.2; }
  50% { opacity:0.5; }
  100% { opacity:0.1; }
}

/* rescued */
.scn-rescued {
  background: linear-gradient(180deg, #1a0e0a 0%, #2a1510 40%, #3a2015 70%, #1a0e0a 100%),
              radial-gradient(ellipse at 40% 60%, #c8553d80 0%, transparent 60%);
}
.scn-rescued .chamber-bg { position:absolute; inset:0; background: linear-gradient(90deg, #120a08 0%, #2a1810 50%, #120a08 100%); animation: re-shimmer 8s ease-in-out infinite alternate; }
.scn-rescued .fire-glow { position:absolute; bottom:30%; left:25%; width:200px; height:200px; background: radial-gradient(circle, #d46a3e60 0%, #8a301a30 50%, transparent 70%); border-radius:50%; filter:blur(20px); animation: re-flicker 2s ease-in-out infinite; }
.scn-rescued .floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #2a1a10 0%, #0d0805 100%); border-radius:40% 60% 0 0 / 20% 20% 0 0; }
.scn-rescued .figure-carrier { position:absolute; bottom:20%; width:24px; height:50px; background: linear-gradient(180deg, #0d0d12 0%, #05060a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; }
.scn-rescued .figure-carrier-a { left:20%; animation: re-carry-walk 6s ease-in-out infinite, re-carry-bob 3s ease-in-out infinite; }
.scn-rescued .figure-carrier-b { left:35%; animation: re-carry-walk 6s ease-in-out infinite -1.2s, re-carry-bob 3s ease-in-out infinite -0.6s; }
.scn-rescued .figure-carried { position:absolute; bottom:25%; left:27%; width:30px; height:40px; background: linear-gradient(135deg, #1a1a22 0%, #0a0a10 100%); border-radius:40% 40% 20% 20% / 60% 60% 20% 20%; transform:rotate(10deg); animation: re-carried-sway 4s ease-in-out infinite; }
.scn-rescued .shadow { position:absolute; bottom:0; left:15%; right:15%; height:12%; background: linear-gradient(180deg, transparent 0%, #00000060 100%); border-radius:50%; filter:blur(8px); animation: re-shadow-pulse 3s ease-in-out infinite; }
@keyframes re-shimmer { 0% { opacity:.7 } 50% { opacity:.95 } 100% { opacity:.8 } }
@keyframes re-flicker { 0% { transform:scale(1); opacity:.8 } 25% { transform:scale(1.05); opacity:1 } 50% { transform:scale(0.95); opacity:.7 } 75% { transform:scale(1.02); opacity:.9 } 100% { transform:scale(1); opacity:.8 } }
@keyframes re-carry-walk { 0% { transform:translateX(0) } 50% { transform:translateX(10px) } 100% { transform:translateX(0) } }
@keyframes re-carry-bob { 0% { transform:translateY(0) } 50% { transform:translateY(-3px) } 100% { transform:translateY(0) } }
@keyframes re-carried-sway { 0% { transform:rotate(8deg) translateY(0) } 50% { transform:rotate(-8deg) translateY(-2px) } 100% { transform:rotate(8deg) translateY(0) } }
@keyframes re-shadow-pulse { 0% { opacity:.4 } 50% { opacity:.7 } 100% { opacity:.4 } }

/* montoni-appears */
.scn-montoni-appears {
  background: linear-gradient(180deg, #0a0a16 0%, #1a121e 40%, #2a1822 100%),
              radial-gradient(ellipse at 50% 100%, #a0461a60 0%, transparent 60%);
}
.scn-montoni-appears .night-sky { position:absolute; top:0; left:0; right:0; height:60%; background: linear-gradient(180deg, #0e0e1a 0%, #16162a 100%); animation: ma-sky-pulse 20s ease-in-out infinite alternate; }
.scn-montoni-appears .castle-gates { position:absolute; bottom:20%; left:50%; width:160px; height:180px; transform:translateX(-50%); background: linear-gradient(180deg, #2a1a10 0%, #0d0a06 100%); border-radius:50% 50% 10% 10% / 80% 80% 10% 10%; box-shadow: inset 0 -20px 30px rgba(0,0,0,.8); }
.scn-montoni-appears .torch { position:absolute; bottom:35%; width:8px; height:40px; background: linear-gradient(180deg, #a0461a 0%, #5a2a0a 100%); border-radius:50%; }
.scn-montoni-appears .torch-l { left:32%; animation: ma-torch-flicker 1.5s ease-in-out infinite; }
.scn-montoni-appears .torch-r { right:32%; animation: ma-torch-flicker 1.5s ease-in-out infinite -.5s; }
.scn-montoni-appears .figure-montoni { position:absolute; bottom:22%; left:36%; width:20px; height:46px; background: linear-gradient(180deg, #0e0e18 0%, #060612 100%); border-radius:50% 50% 40% 40% / 70% 70% 40% 40%; transform-origin: bottom center; animation: ma-walk-m 5s ease-in-out infinite; }
.scn-montoni-appears .figure-cavigni { position:absolute; bottom:22%; left:43%; width:18px; height:44px; background: linear-gradient(180deg, #10101a 0%, #070710 100%); border-radius:45% 45% 40% 40% / 65% 65% 35% 35%; transform-origin: bottom center; animation: ma-walk-c 5s ease-in-out infinite -.8s; }
.scn-montoni-appears .figures-others { position:absolute; bottom:20%; left:48%; right:8%; height:40px; background: linear-gradient(90deg, #0c0c18 0%, #121220 30%, #0e0e1a 50%, #10101c 70%, #0a0a14 100%); border-radius:40% 40% 20% 20% / 80% 80% 20% 20%; opacity:.6; animation: ma-figures-shift 8s ease-in-out infinite; }
.scn-montoni-appears .ground { position:absolute; bottom:0; left:0; right:0; height:22%; background: linear-gradient(180deg, #1a120e 0%, #0a0604 100%); border-radius:50% 50% 0 0 / 20% 20% 0 0; }
@keyframes ma-sky-pulse { 0% { opacity:.6 } 50% { opacity:.9 } 100% { opacity:.7 } }
@keyframes ma-torch-flicker { 0% { box-shadow: 0 0 12px 4px #d46a3e, 0 0 24px 8px #d46a3e60; opacity:.9 } 50% { box-shadow: 0 0 18px 8px #f08050, 0 0 36px 12px #f0805040; opacity:1 } 100% { box-shadow: 0 0 14px 6px #c85830, 0 0 28px 10px #c8583040; opacity:.85 } }
@keyframes ma-walk-m { 0% { transform:translateX(0) translateY(0) rotate(-2deg) } 25% { transform:translateX(8px) translateY(-2px) rotate(2deg) } 50% { transform:translateX(16px) translateY(0) rotate(-2deg) } 75% { transform:translateX(24px) translateY(-1px) rotate(1deg) } 100% { transform:translateX(32px) translateY(0) rotate(0) } }
@keyframes ma-walk-c { 0% { transform:translateX(0) translateY(0) rotate(2deg) } 30% { transform:translateX(6px) translateY(-1px) rotate(-1deg) } 60% { transform:translateX(12px) translateY(0) rotate(2deg) } 100% { transform:translateX(18px) translateY(0) rotate(0) } }
@keyframes ma-figures-shift { 0% { transform:scaleX(1) translateY(0) } 50% { transform:scaleX(1.05) translateY(-2px) } 100% { transform:scaleX(1) translateY(0) } }

/* montoni-questioning */
.scn-montoni-questioning {
  background: linear-gradient(180deg, #0e0806 0%, #1a100c 30%, #2a1a14 70%, #0e0806 100%);
}
.scn-montoni-questioning .bg-panels { position:absolute; inset:0; background: linear-gradient(90deg, #1a1410 0%, #221a16 30%, #1a1410 60%, #221a16 100%); background-size: 20% 100%; animation: mq-panel-light 15s ease-in-out infinite alternate; }
.scn-montoni-questioning .floor { position:absolute; bottom:0; left:0; right:0; height:18%; background: linear-gradient(180deg, #2a1a10 0%, #0d0805 100%); border-radius:20% 80% 0 0 / 10% 10% 0 0; }
.scn-montoni-questioning .table { position:absolute; bottom:18%; left:35%; right:35%; height:14%; background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%); border-radius:10% 10% 5% 5% / 40% 40% 10% 10%; box-shadow: 0 4px 8px rgba(0,0,0,.6); }
.scn-montoni-questioning .candle { position:absolute; bottom:28%; left:48%; width:6px; height:14px; background: linear-gradient(180deg, #b87878 0%, #8a5050 100%); border-radius:50% 50% 20% 20% / 60% 60% 20% 20%; box-shadow: 0 0 16px 6px #d46a3e, 0 0 32px 12px #d46a3e40; animation: mq-candle-flicker 1.8s ease-in-out infinite; }
.scn-montoni-questioning .figure-montoni { position:absolute; bottom:18%; left:22%; width:24px; height:58px; background: linear-gradient(180deg, #0e0e18 0%, #06060e 100%); border-radius:50% 50% 40% 40% / 70% 70% 40% 40%; transform-origin: bottom center; animation: mq-montoni-stance 4s ease-in-out infinite; }
.scn-montoni-questioning .figure-emily { position:absolute; bottom:16%; left:52%; width:20px; height:48px; background: linear-gradient(180deg, #1a1a24 0%, #0a0a14 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mq-emily-shake 2.5s ease-in-out infinite; }
@keyframes mq-panel-light { 0% { opacity:.6 } 50% { opacity:.85 } 100% { opacity:.7 } }
@keyframes mq-candle-flicker { 0% { transform:scaleY(1); opacity:.8 } 25% { transform:scaleY(1.1); opacity:1 } 50% { transform:scaleY(0.9); opacity:.7 } 75% { transform:scaleY(1.05); opacity:.9 } 100% { transform:scaleY(1); opacity:.8 } }
@keyframes mq-montoni-stance { 0% { transform:rotate(0deg) translateY(0) } 50% { transform:rotate(-2deg) translateY(-3px) } 100% { transform:rotate(0deg) translateY(0) } }
@keyframes mq-emily-shake { 0% { transform:rotate(0deg) translateX(0) } 20% { transform:rotate(1deg) translateX(1px) } 40% { transform:rotate(-2deg) translateX(-2px) } 60% { transform:rotate(3deg) translateX(3px) } 80% { transform:rotate(-1deg) translateX(-1px) } 100% { transform:rotate(0deg) translateX(0) } }

/* montoni-summons */
.scn-montoni-summons {
  background: linear-gradient(180deg, #0a0604 0%, #1a100c 50%, #0a0604 100%),
              radial-gradient(ellipse at 50% 100%, #5a2a0a30 0%, transparent 70%);
}
.scn-montoni-summons .corridor-bg { position:absolute; inset:0; background: linear-gradient(90deg, #0d0805 0%, #1a100c 30%, #0d0805 70%, #1a100c 100%); animation: ms-corridor-shimmer 20s ease-in-out infinite alternate; }
.scn-montoni-summons .floor-tiles { position:absolute; bottom:0; left:0; right:0; height:22%; background: linear-gradient(90deg, #1a120e 0%, #221a14 30%, #1a120e 60%, #221a14 100%); background-size: 15% 100%; }
.scn-montoni-summons .door { position:absolute; bottom:22%; width:40px; height:90px; background: linear-gradient(180deg, #2a1a12 0%, #100a06 100%); border-radius:5% 5% 2% 2% / 20% 20% 5% 5%; box-shadow: inset 0 4px 8px rgba(0,0,0,.6), 0 2px 4px rgba(0,0,0,.3); }
.scn-montoni-summons .door-l { left:18%; animation: ms-door-slight 10s ease-in-out infinite; }
.scn-montoni-summons .door-r { right:22%; animation: ms-door-slight 10s ease-in-out infinite -3s; }
.scn-montoni-summons .figure-anette { position:absolute; bottom:16%; left:30%; width:18px; height:44px; background: linear-gradient(180deg, #1a1a22 0%, #0a0a12 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ms-walk-anette 4s ease-in-out infinite; }
.scn-montoni-summons .figure-montoni { position:absolute; bottom:18%; right:28%; width:22px; height:52px; background: linear-gradient(180deg, #0e0e18 0%, #06060e 100%); border-radius:50% 50% 40% 40% / 70% 70% 40% 40%; transform-origin: bottom center; animation: ms-walk-montoni 5s ease-in-out infinite -1s; }
.scn-montoni-summons .lantern { position:absolute; bottom:30%; right:34%; width:10px; height:14px; background: radial-gradient(circle, #c85830 0%, #8a301a 70%); border-radius:30% 30% 20% 20% / 50% 50% 20% 20%; box-shadow: 0 0 20px 8px #c8583060, 0 0 40px 16px #c8583030; animation: ms-lantern-swing 3s ease-in-out infinite; }
@keyframes ms-corridor-shimmer { 0% { opacity:.6 } 50% { opacity:.85 } 100% { opacity:.7 } }
@keyframes ms-door-slight { 0% { transform:rotate(0deg) } 50% { transform:rotate(3deg) } 100% { transform:rotate(0deg) } }
@keyframes ms-walk-anette { 0% { transform:translateX(0) translateY(0) rotate(-3deg) } 25% { transform:translateX(10px) translateY(-1px) rotate(3deg) } 50% { transform:translateX(20px) translateY(0) rotate(-3deg) } 75% { transform:translateX(30px) translateY(-1px) rotate(2deg) } 100% { transform:translateX(40px) translateY(0) rotate(0) } }
@keyframes ms-walk-montoni { 0% { transform:translateX(0) translateY(0) rotate(2deg) } 30% { transform:translateX(-8px) translateY(-2px) rotate(-2deg) } 60% { transform:translateX(-16px) translateY(0) rotate(2deg) } 100% { transform:translateX(-24px) translateY(0) rotate(0) } }
@keyframes ms-lantern-swing { 0% { transform:rotate(-5deg) translateX(0) } 50% { transform:rotate(5deg) translateX(3px) } 100% { transform:rotate(-5deg) translateX(0) } }

/* false-alarm */
.scn-false-alarm {
  background: linear-gradient(180deg, #1a1a25 0%, #2c2830 40%, #3a2e30 100%), radial-gradient(ellipse at 30% 60%, #4a3a30 0%, transparent 70%);
}
.scn-false-alarm .bg-wall {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(180deg, #2a2626 0%, #1e1c1c 100%);
  animation: fa-wall 18s ease-in-out infinite;
}
.scn-false-alarm .bg-floor {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #2a2220 0%, #1a1412 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.6);
  animation: fa-floor 12s ease-in-out infinite alternate;
}
.scn-false-alarm .figure {
  position:absolute; bottom:28%; left:35%; width:24px; height:50px;
  background: linear-gradient(180deg, #1a1a1e 0%, #0a0a0c 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fa-figure 4s ease-in-out infinite;
}
.scn-false-alarm .candle {
  position:absolute; bottom:30%; left:50%; width:6px; height:16px;
  background: linear-gradient(180deg, #e8c088 0%, #b08040 100%);
  border-radius: 3px 3px 1px 1px;
  box-shadow: 0 0 20px 6px rgba(200,150,80,.5), 0 0 40px 12px rgba(200,150,80,.2);
  animation: fa-candle 3s ease-in-out infinite alternate;
}
.scn-false-alarm .object-shadow {
  position:absolute; bottom:30%; right:25%; width:30px; height:20px;
  background: radial-gradient(ellipse, rgba(0,0,0,.6) 0%, transparent 70%);
  border-radius: 50%;
  animation: fa-object 7s ease-in-out infinite;
}
.scn-false-alarm .window-dim {
  position:absolute; top:20%; right:15%; width:40px; height:50px;
  background: linear-gradient(180deg, rgba(40,40,60,.6) 0%, rgba(20,20,40,.8) 100%);
  border-radius: 2px;
  border: 2px solid rgba(60,60,80,.5);
  box-shadow: inset 0 0 10px rgba(0,0,0,.4);
  animation: fa-window 20s ease-in-out infinite alternate;
}
.scn-false-alarm .glow-spot {
  position:absolute; top:40%; left:48%; width:80px; height:80px;
  background: radial-gradient(circle, rgba(200,150,80,.15) 0%, transparent 70%);
  animation: fa-glow 5s ease-in-out infinite;
}
@keyframes fa-wall {
  0%,100% { opacity:1; }
  50% { opacity:.9; }
}
@keyframes fa-floor {
  0% { transform: translateY(0); }
  100% { transform: translateY(-2px); }
}
@keyframes fa-figure {
  0%,100% { transform: translateX(0) rotate(-2deg); }
  25% { transform: translateX(3px) rotate(1deg); }
  50% { transform: translateX(-2px) rotate(-3deg); }
  75% { transform: translateX(4px) rotate(2deg); }
}
@keyframes fa-candle {
  0% { box-shadow: 0 0 18px 4px rgba(200,150,80,.4), 0 0 36px 8px rgba(200,150,80,.15); transform: scaleY(1); }
  50% { box-shadow: 0 0 24px 8px rgba(200,150,80,.6), 0 0 48px 14px rgba(200,150,80,.3); transform: scaleY(1.02); }
  100% { box-shadow: 0 0 16px 3px rgba(200,150,80,.35), 0 0 32px 6px rgba(200,150,80,.12); transform: scaleY(.98); }
}
@keyframes fa-object {
  0%,100% { opacity:.5; transform: scale(1); }
  50% { opacity:.8; transform: scale(1.05); }
}
@keyframes fa-window {
  0% { opacity:.4; }
  100% { opacity:.8; }
}
@keyframes fa-glow {
  0%,100% { opacity:.3; transform: scale(1); }
  50% { opacity:.6; transform: scale(1.1); }
}

/* no-answer */
.scn-no-answer {
  background: linear-gradient(180deg, #0f0f1a 0%, #1a1a2e 30%, #252040 100%), radial-gradient(ellipse at 50% 80%, #2a1a3a 0%, transparent 60%);
}
.scn-no-answer .bg-dark {
  position:absolute; inset:0;
  background: linear-gradient(180deg, rgba(10,10,20,.8) 0%, transparent 40%, rgba(0,0,10,.6) 100%);
  animation: na-bg 15s ease-in-out infinite alternate;
}
.scn-no-answer .door {
  position:absolute; bottom:25%; left:50%; width:60px; height:90px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 4px 4px 0 0;
  border: 2px solid #3a3a4a;
  box-shadow: -4px 0 8px rgba(0,0,0,.5), 4px 0 8px rgba(0,0,0,.3);
  animation: na-door 9s ease-in-out infinite;
}
.scn-no-answer .figure-slumped {
  position:absolute; bottom:20%; left:48%; width:30px; height:45px;
  background: linear-gradient(180deg, #151520 0%, #0a0a12 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-5deg) translateX(-10px);
  transform-origin: bottom center;
  animation: na-figure 5s ease-in-out infinite;
}
.scn-no-answer .lock {
  position:absolute; bottom:50%; left:50%; width:8px; height:10px;
  margin-left: -4px;
  background: #c0a060;
  border-radius: 50% 50% 0 0;
  box-shadow: 0 0 6px 2px rgba(192,160,96,.6);
  animation: na-lock 4s ease-in-out infinite alternate;
}
.scn-no-answer .underlight {
  position:absolute; bottom:20%; left:44%; width:24px; height:8px;
  background: linear-gradient(90deg, rgba(200,180,100,.15) 0%, rgba(200,180,100,.3) 50%, transparent 100%);
  border-radius: 50%;
  filter: blur(3px);
  animation: na-light 6s ease-in-out infinite;
}
.scn-no-answer .shadow-door {
  position:absolute; bottom:25%; left:50%; width:70px; height:100px;
  transform: translateX(-50%) translateX(-5px);
  background: radial-gradient(ellipse, rgba(0,0,0,.5) 0%, transparent 70%);
  animation: na-shadow 7s ease-in-out infinite alternate;
}
@keyframes na-bg {
  0%,100% { opacity:.7; }
  50% { opacity:.9; }
}
@keyframes na-door {
  0%,100% { transform: translateX(-50%); }
  50% { transform: translateX(-50%) translateY(-2px); }
}
@keyframes na-figure {
  0%,100% { transform: rotate(-5deg) translateX(-10px); }
  25% { transform: rotate(-3deg) translateX(-8px); }
  50% { transform: rotate(-6deg) translateX(-12px); }
  75% { transform: rotate(-4deg) translateX(-9px); }
}
@keyframes na-lock {
  0% { box-shadow: 0 0 4px 1px rgba(192,160,96,.4); opacity:.8; }
  100% { box-shadow: 0 0 10px 4px rgba(192,160,96,.8); opacity:1; }
}
@keyframes na-light {
  0%,100% { opacity:.2; transform: scaleX(1); }
  50% { opacity:.5; transform: scaleX(1.2); }
}
@keyframes na-shadow {
  0% { opacity:.3; transform: translateX(-50%) translateX(-5px) scaleX(1); }
  100% { opacity:.6; transform: translateX(-50%) translateX(-8px) scaleX(1.1); }
}

/* tormenting-thoughts */
.scn-tormenting-thoughts {
  background: linear-gradient(0deg, #0a0a12 0%, #151520 40%, #2a1a2e 100%), radial-gradient(ellipse at 70% 40%, #3a1a2a 0%, transparent 60%);
}
.scn-tormenting-thoughts .bg-horror {
  position:absolute; inset:0;
  background: linear-gradient(180deg, rgba(10,10,20,.9) 0%, transparent 30%, rgba(20,10,20,.7) 100%);
  animation: tt-bg 10s ease-in-out infinite alternate;
}
.scn-tormenting-thoughts .figure-clutch {
  position:absolute; bottom:25%; left:40%; width:28px; height:48px;
  background: linear-gradient(180deg, #1a1a24 0%, #0a0a10 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(10deg);
  transform-origin: bottom center;
  animation: tt-figure 3s ease-in-out infinite;
}
.scn-tormenting-thoughts .shadow-loom {
  position:absolute; bottom:25%; right:20%; width:50px; height:70px;
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,.7) 0%, transparent 70%);
  filter: blur(5px);
  animation: tt-shadow 4s ease-in-out infinite alternate;
}
.scn-tormenting-thoughts .pendulum {
  position:absolute; top:10%; left:60%; width:4px; height:40px;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 2px;
  transform-origin: top center;
  animation: tt-pendulum 2s ease-in-out infinite;
}
.scn-tormenting-thoughts .crack-wall {
  position:absolute; top:20%; left:20%; width:80px; height:2px;
  background: #2a1a1a;
  transform: rotate(-30deg);
  box-shadow: 0 0 4px 1px rgba(0,0,0,.5);
  animation: tt-crack 7s ease-in-out infinite;
}
.scn-tormenting-thoughts .flash-faint {
  position:absolute; top:30%; left:45%; width:60px; height:60px;
  background: radial-gradient(circle, rgba(200,180,100,.1) 0%, transparent 70%);
  animation: tt-flash 3s ease-in-out infinite alternate;
}
.scn-tormenting-thoughts .fog-vignette {
  position:absolute; inset:0;
  background: radial-gradient(ellipse at 50% 60%, transparent 60%, rgba(0,0,10,.6) 100%);
  animation: tt-fog 8s ease-in-out infinite;
}
@keyframes tt-bg {
  0%,100% { opacity:.8; }
  50% { opacity:1; }
}
@keyframes tt-figure {
  0%,100% { transform: rotate(10deg) scale(1); }
  25% { transform: rotate(8deg) scale(1.02); }
  50% { transform: rotate(12deg) scale(.98); }
  75% { transform: rotate(9deg) scale(1.01); }
}
@keyframes tt-shadow {
  0% { transform: scale(1) translateX(0); opacity:.6; }
  100% { transform: scale(1.2) translateX(10px); opacity:.9; }
}
@keyframes tt-pendulum {
  0% { transform: rotate(-15deg); }
  50% { transform: rotate(15deg); }
  100% { transform: rotate(-15deg); }
}
@keyframes tt-crack {
  0%,100% { opacity:.4; }
  50% { opacity:.8; }
}
@keyframes tt-flash {
  0% { opacity:.1; transform: scale(.8); }
  100% { opacity:.4; transform: scale(1.2); }
}
@keyframes tt-fog {
  0%,100% { opacity:.7; }
  50% { opacity:1; }
}

/* next-morning */
.scn-next-morning {
  background: linear-gradient(180deg, #c8d8e0 0%, #e0e8f0 40%, #f0f4f8 100%), radial-gradient(ellipse at 80% 20%, #f0e8c0 0%, transparent 50%);
}
.scn-next-morning .bg-sunlit {
  position:absolute; inset:0;
  background: linear-gradient(0deg, rgba(255,248,240,.3) 0%, transparent 60%);
  animation: nm-bg 20s ease-in-out infinite alternate;
}
.scn-next-morning .window-frame {
  position:absolute; top:15%; left:15%; width:120px; height:160px;
  background: linear-gradient(180deg, #e8dcc0 0%, #c8b898 100%);
  border-radius: 8px 8px 4px 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,.1), 0 4px 12px rgba(0,0,0,.15);
  animation: nm-window 25s ease-in-out infinite;
}
.scn-next-morning .sunbeam {
  position:absolute; top:15%; left:25%; width:40px; height:200px;
  background: linear-gradient(180deg, rgba(255,240,200,.4) 0%, rgba(255,240,200,.1) 80%, transparent 100%);
  transform: rotate(-15deg);
  transform-origin: top left;
  filter: blur(4px);
  animation: nm-beam 8s ease-in-out infinite alternate;
}
.scn-next-morning .chair {
  position:absolute; bottom:20%; left:30%; width:30px; height:50px;
  background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%);
  border-radius: 4px 4px 2px 2px;
  box-shadow: 2px 2px 8px rgba(0,0,0,.2);
  animation: nm-chair 14s ease-in-out infinite;
}
.scn-next-morning .figure-sitting {
  position:absolute; bottom:22%; left:32%; width:22px; height:40px;
  background: linear-gradient(180deg, #7a6a5a 0%, #4a3a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: nm-figure 6s ease-in-out infinite;
}
.scn-next-morning .bars {
  position:absolute; top:18%; left:17%; width:116px; height:154px;
  border: 4px solid #6a5a4a;
  border-radius: 6px;
  background: repeating-linear-gradient(90deg, transparent 0, transparent 18px, #6a5a4a 18px, #6a5a4a 20px);
  opacity:.6;
  animation: nm-bars 30s ease-in-out infinite;
}
.scn-next-morning .dust-mote {
  position:absolute; top:30%; left:20%; width:4px; height:4px;
  background: rgba(255,255,240,.6);
  border-radius: 50%;
  animation: nm-dust 15s linear infinite;
}
.scn-next-morning .dust-mote.two {
  left:40%; top:40%;
  width:3px; height:3px;
  animation-duration: 20s;
  animation-delay: -5s;
}
@keyframes nm-bg {
  0%,100% { opacity:.8; }
  50% { opacity:1; }
}
@keyframes nm-window {
  0%,100% { transform: scale(1); box-shadow: 0 4px 12px rgba(0,0,0,.15); }
  50% { transform: scale(1.01); box-shadow: 0 6px 16px rgba(0,0,0,.1); }
}
@keyframes nm-beam {
  0% { opacity:.3; transform: rotate(-15deg) translateX(0); }
  100% { opacity:.6; transform: rotate(-13deg) translateX(5px); }
}
@keyframes nm-chair {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
}
@keyframes nm-figure {
  0%,100% { transform: rotate(2deg); }
  25% { transform: rotate(-1deg); }
  50% { transform: rotate(3deg); }
  75% { transform: rotate(0deg); }
}
@keyframes nm-bars {
  0%,100% { opacity:.5; }
  50% { opacity:.7; }
}
@keyframes nm-dust {
  0% { transform: translateY(0) rotate(0deg); opacity:0; }
  20% { opacity:1; }
  80% { opacity:1; }
  100% { transform: translateY(-30px) rotate(360deg); opacity:0; }
}

.scn-explanation-from-du-pont {
  background: 
    linear-gradient(180deg, #2a1e1a 0%, #1f1410 40%, #0e0806 100%),
    radial-gradient(ellipse at 50% 30%, #4a2a1a 0%, transparent 70%);
}
.scn-explanation-from-du-pont .wall-bg {
  position:absolute; inset:0; 
  background: radial-gradient(ellipse at 40% 20%, #3a2a22 0%, #1a100e 100%);
}
.scn-explanation-from-du-pont .floor {
  position:absolute; bottom:0; left:0; right:0; height:28%; 
  background: linear-gradient(180deg, #2a1a12 0%, #1a0e0a 100%);
  border-top: 2px solid #3a2a1e;
}
.scn-explanation-from-du-pont .door {
  position:absolute; bottom:28%; left:50%; width:80px; height:140px;
  transform:translateX(-50%); 
  background: linear-gradient(90deg, #4a3a2e 0%, #5a4a3e 40%, #4a3a2e 100%);
  border-radius:4% 4% 0 0; 
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.6), 0 8px 16px rgba(0,0,0,0.5);
  animation: edp-door 8s ease-in-out infinite alternate;
}
.scn-explanation-from-du-pont .figure-ludovico {
  position:absolute; bottom:24%; left:30%; width:24px; height:60px;
  background: linear-gradient(180deg, #1a1a1e 0%, #0e0e12 100%);
  border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; 
  transform-origin: bottom center;
  animation: edp-figure-l 5s ease-in-out infinite;
}
.scn-explanation-from-du-pont .figure-stranger {
  position:absolute; bottom:24%; right:30%; width:26px; height:62px;
  background: linear-gradient(180deg, #1e1a1a 0%, #0e0c0c 100%);
  border-radius:50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: edp-figure-s 6s ease-in-out infinite;
}
.scn-explanation-from-du-pont .candle {
  position:absolute; bottom:40%; left:45%; width:6px; height:18px;
  background: linear-gradient(180deg, #c8a068 0%, #8a6a3a 100%);
  border-radius:2px; 
  transform:rotate(-5deg);
  animation: edp-candle 4s ease-in-out infinite;
}
.scn-explanation-from-du-pont .candle-glow {
  position:absolute; bottom:42%; left:44%; width:20px; height:20px;
  background: radial-gradient(circle, rgba(230,180,100,0.7) 0%, transparent 100%);
  border-radius:50%; 
  box-shadow: 0 0 30px 10px rgba(230,180,100,0.3);
  animation: edp-glow 3s ease-in-out infinite alternate;
}
.scn-explanation-from-du-pont .shadow-ludovico {
  position:absolute; bottom:28%; left:30%; width:30px; height:10px; 
  transform:skewX(-20deg);
  background: rgba(0,0,0,0.4); border-radius:50%;
  filter: blur(3px);
  animation: edp-shadow-l 5s ease-in-out infinite;
}
.scn-explanation-from-du-pont .shadow-stranger {
  position:absolute; bottom:28%; right:30%; width:32px; height:10px;
  transform:skewX(20deg);
  background: rgba(0,0,0,0.4); border-radius:50%;
  filter: blur(3px);
  animation: edp-shadow-s 6s ease-in-out infinite;
}
@keyframes edp-door { 0% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(1.01); } 100% { transform: translateX(-50%) scaleY(1); } }
@keyframes edp-figure-l { 0%,100% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-2px) rotate(1deg); } }
@keyframes edp-figure-s { 0%,100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-2px) rotate(-1deg); } }
@keyframes edp-candle { 0%,100% { transform: rotate(-5deg) scaleY(1); } 30% { transform: rotate(-3deg) scaleY(1.03); } 70% { transform: rotate(-7deg) scaleY(0.97); } }
@keyframes edp-glow { 0% { opacity:0.7; box-shadow: 0 0 20px 8px rgba(230,180,100,0.2); } 50% { opacity:1; box-shadow: 0 0 40px 15px rgba(230,180,100,0.4); } 100% { opacity:0.8; box-shadow: 0 0 25px 10px rgba(230,180,100,0.3); } }
@keyframes edp-shadow-l { 0%,100% { transform: skewX(-20deg) scaleX(1); } 50% { transform: skewX(-20deg) scaleX(1.1); } }
@keyframes edp-shadow-s { 0%,100% { transform: skewX(20deg) scaleX(1); } 50% { transform: skewX(20deg) scaleX(1.15); } }

.scn-du-pont-confession {
  background: 
    linear-gradient(180deg, #1f1814 0%, #150e0c 40%, #0a0604 100%),
    radial-gradient(ellipse at 50% 50%, #2a1a12 0%, transparent 60%);
}
.scn-du-pont-confession .wall-corridor {
  position:absolute; inset:0 0 28% 0;
  background: radial-gradient(ellipse at 50% 20%, #2a1e1a 0%, #120a08 100%);
}
.scn-du-pont-confession .floor-corridor {
  position:absolute; bottom:0; left:0; right:0; height:28%; 
  background: linear-gradient(180deg, #1e120e 0%, #100a08 100%);
  border-top: 1px solid #2a1a12;
}
.scn-du-pont-confession .column {
  position:absolute; bottom:28%; left:25%; width:18px; height:160px;
  background: linear-gradient(90deg, #3a2a1e 0%, #4a3a2e 50%, #3a2a1e 100%);
  border-radius:4px; 
  box-shadow: 4px 0 8px rgba(0,0,0,0.3);
}
.scn-du-pont-confession .figure-du-pont {
  position:absolute; bottom:24%; left:40%; width:24px; height:64px;
  background: linear-gradient(180deg, #1a1614 0%, #0e0a08 100%);
  border-radius:50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dc-figure-d 7s ease-in-out infinite;
}
.scn-du-pont-confession .figure-woman {
  position:absolute; bottom:24%; right:35%; width:22px; height:60px;
  background: linear-gradient(180deg, #1a1412 0%, #0e0a08 100%);
  border-radius:50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dc-figure-w 8s ease-in-out infinite;
}
.scn-du-pont-confession .lantern {
  position:absolute; top:20%; left:50%; width:10px; height:16px;
  background: linear-gradient(180deg, #c8a068 0%, #8a6a3a 100%);
  border-radius:2px 2px 4px 4px; 
  transform:translateX(-50%);
  animation: dc-lantern 4s ease-in-out infinite;
}
.scn-du-pont-confession .lantern-glow {
  position:absolute; top:18%; left:47%; width:30px; height:30px;
  background: radial-gradient(circle, rgba(230,180,100,0.6) 0%, transparent 80%);
  border-radius:50%;
  box-shadow: 0 0 40px 12px rgba(230,180,100,0.2);
  animation: dc-glow-l 3s ease-in-out infinite alternate;
}
.scn-du-pont-confession .shadow-cast {
  position:absolute; bottom:28%; left:35%; width:60px; height:8px;
  background: rgba(0,0,0,0.5); border-radius:50%; filter: blur(4px);
  animation: dc-shadow 7s ease-in-out infinite;
}
@keyframes dc-figure-d { 0%,100% { transform: translateY(0) rotate(1deg); } 50% { transform: translateY(-2px) rotate(-1deg); } }
@keyframes dc-figure-w { 0%,100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-1px) rotate(2deg); } }
@keyframes dc-lantern { 0%,100% { transform: translateX(-50%) rotate(-2deg); } 30% { transform: translateX(-50%) rotate(1deg); } 70% { transform: translateX(-50%) rotate(-3deg); } }
@keyframes dc-glow-l { 0% { opacity:0.6; box-shadow: 0 0 30px 8px rgba(230,180,100,0.15); } 50% { opacity:1; box-shadow: 0 0 50px 18px rgba(230,180,100,0.35); } 100% { opacity:0.7; box-shadow: 0 0 35px 10px rgba(230,180,100,0.2); } }
@keyframes dc-shadow { 0%,100% { transform: scaleX(1); } 50% { transform: scaleX(1.2); } }

.scn-du-pont-pleads {
  background: 
    linear-gradient(180deg, #1c1410 0%, #140c08 40%, #080402 100%),
    radial-gradient(ellipse at 50% 40%, #3a1e12 0%, transparent 70%);
}
.scn-du-pont-pleads .wall-dim {
  position:absolute; inset:0 0 30% 0;
  background: radial-gradient(ellipse at 50% 10%, #2a1a14 0%, #120a06 100%);
}
.scn-du-pont-pleads .stone-floor {
  position:absolute; bottom:0; left:0; right:0; height:30%; 
  background: linear-gradient(180deg, #1e120e 0%, #0e0804 100%);
  border-top: 2px solid #2a1a0e;
}
.scn-du-pont-pleads .figure-kneeling {
  position:absolute; bottom:20%; left:50%; width:28px; height:70px;
  transform:translateX(-50%) scaleY(0.6);
  background: linear-gradient(180deg, #1a1412 0%, #0e0a08 100%);
  border-radius:50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: dp-kneel 6s ease-in-out infinite;
}
.scn-du-pont-pleads .hands-out {
  position:absolute; bottom:28%; left:40%; width:40px; height:12px;
  background: linear-gradient(180deg, #1e1816 0%, #120e0c 100%);
  border-radius:50% 50% 20% 20%; 
  transform:rotate(-20deg);
  animation: dp-hands 5s ease-in-out infinite;
}
.scn-du-pont-pleads .picture-frame {
  position:absolute; top:20%; right:20%; width:30px; height:38px;
  background: linear-gradient(90deg, #4a3a2e 0%, #5a4a3e 50%, #4a3a2e 100%);
  border: 2px solid #6a5a4e;
  border-radius:4px;
  transform:rotate(5deg);
  animation: dp-frame 9s ease-in-out infinite;
}
.scn-du-pont-pleads .candle-stand {
  position:absolute; bottom:32%; left:20%; width:8px; height:50px;
  background: linear-gradient(180deg, #4a3a2e 0%, #2a1a0e 100%);
  border-radius:2px;
}
.scn-du-pont-pleads .candle-flame {
  position:absolute; bottom:60%; left:20%; width:6px; height:14px;
  background: linear-gradient(180deg, #ffe0a0 0%, #c08040 100%);
  border-radius:50% 50% 20% 20%;
  animation: dp-flame 3s ease-in-out infinite alternate;
}
.scn-du-pont-pleads .candle-glow-soft {
  position:absolute; bottom:55%; left:17%; width:24px; height:24px;
  background: radial-gradient(circle, rgba(255,200,120,0.5) 0%, transparent 100%);
  border-radius:50%;
  box-shadow: 0 0 30px 10px rgba(255,200,120,0.2);
  animation: dp-glow-s 3s ease-in-out infinite alternate;
}
@keyframes dp-kneel { 0%,100% { transform: translateX(-50%) scaleY(0.6) rotate(0); } 50% { transform: translateX(-50%) scaleY(0.62) rotate(1deg); } }
@keyframes dp-hands { 0%,100% { transform: rotate(-20deg) scaleX(1); } 50% { transform: rotate(-15deg) scaleX(1.1); } }
@keyframes dp-frame { 0%,100% { transform: rotate(5deg) scale(1); } 50% { transform: rotate(8deg) scale(1.02); } }
@keyframes dp-flame { 0% { transform: scaleY(1) rotate(0); opacity:0.9; } 20% { transform: scaleY(1.1) rotate(-5deg); opacity:1; } 40% { transform: scaleY(0.95) rotate(3deg); opacity:0.8; } 60% { transform: scaleY(1.05) rotate(-2deg); opacity:1; } 80% { transform: scaleY(1.0) rotate(4deg); opacity:0.85; } 100% { transform: scaleY(0.98) rotate(0); opacity:0.9; } }
@keyframes dp-glow-s { 0% { opacity:0.5; box-shadow: 0 0 20px 6px rgba(255,200,120,0.15); } 50% { opacity:1; box-shadow: 0 0 40px 15px rgba(255,200,120,0.35); } 100% { opacity:0.6; box-shadow: 0 0 25px 8px rgba(255,200,120,0.2); } }

.scn-du-pont-offers-service {
  background: 
    linear-gradient(180deg, #1e1612 0%, #140c0a 40%, #0a0604 100%),
    radial-gradient(ellipse at 50% 60%, #2a1a12 0%, transparent 60%);
}
.scn-du-pont-offers-service .room-wall {
  position:absolute; inset:0 0 30% 0;
  background: radial-gradient(ellipse at 50% 10%, #2a1c18 0%, #120a08 100%);
}
.scn-du-pont-offers-service .wood-floor {
  position:absolute; bottom:0; left:0; right:0; height:30%; 
  background: linear-gradient(180deg, #1e120e 0%, #0e0806 100%);
  border-top: 1px solid #2a1a0e;
}
.scn-du-pont-offers-service .table {
  position:absolute; bottom:22%; left:20%; right:20%; height:12%;
  background: linear-gradient(180deg, #4a3a2e 0%, #3a2a1e 100%);
  border-radius:4% 4% 0 0; 
  box-shadow: 0 -4px 8px rgba(0,0,0,0.4);
}
.scn-du-pont-offers-service .chair {
  position:absolute; bottom:26%; left:35%; width:16px; height:40px;
  background: linear-gradient(180deg, #3a2a1e 0%, #2a1a0e 100%);
  border-radius:2px; 
  transform:rotate(3deg);
}
.scn-du-pont-offers-service .figure-seated {
  position:absolute; bottom:28%; left:36%; width:20px; height:48px;
  background: linear-gradient(180deg, #1a1412 0%, #0e0a08 100%);
  border-radius:50% 50% 35% 35% / 60% 60% 35% 35%;
  transform-origin: bottom center;
  animation: dos-seated 10s ease-in-out infinite;
}
.scn-du-pont-offers-service .candlestick {
  position:absolute; bottom:34%; left:28%; width:6px; height:30px;
  background: linear-gradient(180deg, #c8a068 0%, #8a6a3a 100%);
  border-radius:2px;
  animation: dos-stick 5s ease-in-out infinite;
}
.scn-du-pont-offers-service .candle-light {
  position:absolute; bottom:48%; left:27%; width:16px; height:16px;
  background: radial-gradient(circle, rgba(255,210,140,0.6) 0%, transparent 100%);
  border-radius:50%;
  box-shadow: 0 0 30px 10px rgba(255,210,140,0.2);
  animation: dos-candle-glow 4s ease-in-out infinite alternate;
}
.scn-du-pont-offers-service .window-night {
  position:absolute; top:15%; right:15%; width:50px; height:70px;
  background: linear-gradient(180deg, #0a0e14 0%, #060a0e 100%);
  border: 2px solid #3a2a1e;
  border-radius:4px;
  box-shadow: inset 0 0 12px rgba(0,0,0,0.8);
  animation: dos-window 20s ease-in-out infinite;
}
.scn-du-pont-offers-service .curtain {
  position:absolute; top:12%; right:12%; width:10px; height:80px;
  background: linear-gradient(180deg, #5a3a2e 0%, #3a1e12 100%);
  border-radius:50% 50% 0 0;
  transform:rotate(8deg);
  filter: blur(1px);
  animation: dos-curtain 15s ease-in-out infinite;
}
@keyframes dos-seated { 0%,100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-1px) rotate(1deg); } }
@keyframes dos-stick { 0%,100% { transform: rotate(0); } 50% { transform: rotate(2deg); } }
@keyframes dos-candle-glow { 0% { opacity:0.6; box-shadow: 0 0 20px 6px rgba(255,210,140,0.15); } 50% { opacity:1; box-shadow: 0 0 40px 15px rgba(255,210,140,0.35); } 100% { opacity:0.7; box-shadow: 0 0 25px 8px rgba(255,210,140,0.2); } }
@keyframes dos-window { 0%,100% { transform: scale(1); } 50% { transform: scale(1.01); } }
@keyframes dos-curtain { 0%,100% { transform: rotate(8deg) scaleY(1); } 50% { transform: rotate(10deg) scaleY(1.02); } }

.scn-counts-warning {
  background: linear-gradient(180deg, #e8dcc8 0%, #c4b49a 50%, #8f8069 100%),
              radial-gradient(ellipse at 60% 30%, #fff4e0 0%, transparent 50%);
  position: relative; overflow: hidden;
}
.scn-counts-warning .sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #9bb8d4 0%, #b8d0e0 60%, transparent 100%);
  animation: cw-sky 12s ease-in-out infinite alternate;
}
.scn-counts-warning .sunburst {
  position: absolute; top: 10%; left: 70%; width: 120px; height: 120px;
  background: radial-gradient(circle, #ffe490 0%, #ffe49040 40%, transparent 70%);
  border-radius: 50%;
  animation: cw-sun 6s ease-in-out infinite alternate;
}
.scn-counts-warning .figure-large {
  position: absolute; bottom: 18%; left: 25%; width: 80px; height: 140px;
  background: linear-gradient(135deg, #2c2c3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cw-figure 4s ease-in-out infinite;
}
.scn-counts-warning .gesture-arm {
  position: absolute; bottom: 55%; left: 38%; width: 8px; height: 40px;
  background: #2c2c3a;
  border-radius: 40% 40% 20% 20%;
  transform-origin: bottom left;
  animation: cw-arm 2.5s ease-in-out infinite alternate;
}
.scn-counts-warning .shadow-slice {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, transparent 0%, rgba(20,15,10,0.3) 100%);
  animation: cw-shadow 8s ease-in-out infinite alternate;
}
.scn-counts-warning .dust-particle {
  position: absolute; width: 3px; height: 3px;
  background: rgba(255,248,230,0.6);
  border-radius: 50%;
  filter: blur(1px);
}
.scn-counts-warning .dust-particle.a {
  top: 40%; left: 20%;
  animation: cw-dust-a 14s linear infinite;
}
.scn-counts-warning .dust-particle.b {
  top: 60%; left: 50%;
  animation: cw-dust-b 18s linear infinite reverse;
}

@keyframes cw-sky { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.7 } }
@keyframes cw-sun { 0% { transform: scale(0.9) rotate(0deg); opacity: 0.6 } 50% { transform: scale(1.1) rotate(5deg); opacity: 1 } 100% { transform: scale(0.95) rotate(-3deg); opacity: 0.8 } }
@keyframes cw-figure { 0% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-4px) rotate(1deg) } 50% { transform: translateY(0) rotate(-1deg) } 75% { transform: translateY(-2px) rotate(0deg) } 100% { transform: translateY(0) rotate(1deg) } }
@keyframes cw-arm { 0% { transform: rotate(10deg) } 50% { transform: rotate(-5deg) scaleY(1.1) } 100% { transform: rotate(15deg) } }
@keyframes cw-shadow { 0% { opacity: 0.3 } 50% { opacity: 0.6 } 100% { opacity: 0.4 } }
@keyframes cw-dust-a { 0% { transform: translate(0,0) scale(0.5); opacity: 0.2 } 25% { transform: translate(30px,-15px) scale(1); opacity: 0.8 } 50% { transform: translate(60px,10px) scale(0.7); opacity: 0.4 } 75% { transform: translate(90px,-5px) scale(1.2); opacity: 0.9 } 100% { transform: translate(120px,20px) scale(0.5); opacity: 0.1 } }
@keyframes cw-dust-b { 0% { transform: translate(0,0) scale(0.6); opacity: 0.3 } 33% { transform: translate(-40px,10px) scale(1.1); opacity: 0.7 } 66% { transform: translate(-80px,-20px) scale(0.8); opacity: 0.5 } 100% { transform: translate(-120px,5px) scale(0.4); opacity: 0.2 } }

.scn-brief-relation {
  background: linear-gradient(135deg, #dac4a0 0%, #b89a70 50%, #8a6e4a 100%),
              radial-gradient(ellipse at 30% 40%, #fff0d0 0%, transparent 60%);
  position: relative; overflow: hidden;
}
.scn-brief-relation .wall-left, .scn-brief-relation .wall-right {
  position: absolute; top: 0; bottom: 0; width: 30%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
}
.scn-brief-relation .wall-left { left: 0; border-radius: 0 10% 10% 0 / 0 20% 20% 0; }
.scn-brief-relation .wall-right { right: 0; border-radius: 10% 0 0 10% / 20% 0 0 20%; }
.scn-brief-relation .figure-seated {
  position: absolute; bottom: 10%; left: 15%; width: 60px; height: 100px;
  background: linear-gradient(180deg, #706050 0%, #4a3a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: br-seated 5s ease-in-out infinite;
}
.scn-brief-relation .figure-standing {
  position: absolute; bottom: 8%; left: 55%; width: 50px; height: 130px;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: br-standing 3.5s ease-in-out infinite alternate;
}
.scn-brief-relation .table {
  position: absolute; bottom: 0; left: 25%; right: 25%; height: 12%;
  background: linear-gradient(180deg, #6a4a30 0%, #4a2a18 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 -6px 10px rgba(0,0,0,0.3);
  animation: br-table 6s ease-in-out infinite;
}
.scn-brief-relation .light-shaft {
  position: absolute; top: 5%; left: 40%; width: 40%; height: 100%;
  background: linear-gradient(180deg, rgba(255,240,200,0.3) 0%, transparent 70%);
  clip-path: polygon(30% 0, 70% 0, 80% 100%, 20% 100%);
  animation: br-light 9s ease-in-out infinite alternate;
}
.scn-brief-relation .vignette {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 60%, transparent 40%, rgba(20,15,10,0.4) 100%);
  animation: br-vign 7s ease-in-out infinite alternate;
}

@keyframes br-seated { 0% { transform: translateY(0) rotate(0deg) } 30% { transform: translateY(-3px) rotate(2deg) } 60% { transform: translateY(0) rotate(-1deg) } 100% { transform: translateY(-2px) rotate(1deg) } }
@keyframes br-standing { 0% { transform: translateY(0) rotate(0deg) scale(1) } 50% { transform: translateY(-5px) rotate(1deg) scale(1.02) } 100% { transform: translateY(2px) rotate(-1deg) scale(0.98) } }
@keyframes br-table { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.03) } 100% { transform: scaleY(0.98) } }
@keyframes br-light { 0% { opacity: 0.4; transform: skewX(-2deg) } 50% { opacity: 0.8; transform: skewX(2deg) } 100% { opacity: 0.5; transform: skewX(0deg) } }
@keyframes br-vign { 0% { opacity: 0.5 } 50% { opacity: 1 } 100% { opacity: 0.6 } }

.scn-confirmation-of-vice {
  background: linear-gradient(180deg, #4a3a2a 0%, #2e2218 50%, #1a0e0a 100%),
              radial-gradient(ellipse at 50% 40%, #6a4a30 0%, transparent 60%);
  position: relative; overflow: hidden;
}
.scn-confirmation-of-vice .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1e0e08 100%);
  border-radius: 40% 40% 0 0 / 20% 20% 0 0;
}
.scn-confirmation-of-vice .back-wall {
  position: absolute; top: 0; left: 10%; right: 10%; bottom: 30%;
  background: linear-gradient(135deg, #6a5a4a 0%, #423228 50%, #2a1e14 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.5);
}
.scn-confirmation-of-vice .cards {
  position: absolute; bottom: 30%; left: 30%; width: 60px; height: 40px;
  background: linear-gradient(135deg, #f0e8d0 0%, #c8b890 70%);
  border-radius: 8%;
  box-shadow: 2px 2px 8px rgba(0,0,0,0.6), inset 0 0 4px rgba(0,0,0,0.2);
  transform: rotate(-15deg);
  animation: cv-cards 4s ease-in-out infinite;
}
.scn-confirmation-of-vice .hand-reach {
  position: absolute; bottom: 32%; left: 50%; width: 40px; height: 30px;
  background: linear-gradient(180deg, #8a7a60 0%, #5a4a30 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  transform-origin: bottom left;
  animation: cv-hand 3s ease-in-out infinite alternate;
}
.scn-confirmation-of-vice .shadow-fall {
  position: absolute; top: 0; left: 20%; right: 20%; bottom: 30%;
  background: linear-gradient(180deg, rgba(0,0,0,0.3) 0%, transparent 50%);
  clip-path: polygon(40% 0, 60% 0, 70% 100%, 30% 100%);
  animation: cv-shadow 5s ease-in-out infinite alternate;
}
.scn-confirmation-of-vice .coin-glow {
  position: absolute; bottom: 25%; left: 60%; width: 12px; height: 12px;
  background: radial-gradient(circle, #e0c070 0%, #a08030 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 16px 6px #a08030;
  animation: cv-coin 2.5s ease-in-out infinite;
}
.scn-confirmation-of-vice .smoke {
  position: absolute; width: 20px; height: 40px;
  background: radial-gradient(ellipse at center, rgba(100,80,60,0.3) 0%, transparent 70%);
  filter: blur(4px);
  border-radius: 50%;
}
.scn-confirmation-of-vice .smoke.wispa { top: 20%; left: 40%; animation: cv-smoke-a 8s ease-out infinite; }
.scn-confirmation-of-vice .smoke.wispa-b { top: 30%; left: 55%; animation: cv-smoke-b 10s ease-out infinite 2s; }

@keyframes cv-cards { 0% { transform: rotate(-15deg) translateY(0) } 50% { transform: rotate(-10deg) translateY(-3px) scale(1.02) } 100% { transform: rotate(-18deg) translateY(1px) } }
@keyframes cv-hand { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(-8px) rotate(5deg) } 100% { transform: translateX(2px) rotate(-3deg) } }
@keyframes cv-shadow { 0% { opacity: 0.4 } 50% { opacity: 0.8 } 100% { opacity: 0.5 } }
@keyframes cv-coin { 0% { transform: scale(1); opacity: 0.6; box-shadow: 0 0 12px 4px #a08030 } 50% { transform: scale(1.4); opacity: 1; box-shadow: 0 0 24px 8px #c0a040 } 100% { transform: scale(0.9); opacity: 0.7; box-shadow: 0 0 10px 3px #a08030 } }
@keyframes cv-smoke-a { 0% { transform: translateY(0) scale(0.5); opacity: 0.3 } 50% { transform: translateY(-60px) scale(1.2); opacity: 0.6 } 100% { transform: translateY(-120px) scale(2); opacity: 0 } }
@keyframes cv-smoke-b { 0% { transform: translateY(0) scale(0.6); opacity: 0.2 } 50% { transform: translateY(-80px) scale(1.4); opacity: 0.5 } 100% { transform: translateY(-150px) scale(2.5); opacity: 0 } }

.scn-proof-withheld {
  background: linear-gradient(180deg, #b8a890 0%, #8a7a60 50%, #5a4a30 100%),
              radial-gradient(ellipse at 50% 20%, #d8cab0 0%, transparent 60%);
  position: relative; overflow: hidden;
}
.scn-proof-withheld .arch-bg {
  position: absolute; top: 0; left: 20%; right: 20%; bottom: 20%;
  background: radial-gradient(ellipse at 50% 40%, #c8b8a0 0%, #8a7a60 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.3);
}
.scn-proof-withheld .pillar-left, .scn-proof-withheld .pillar-right {
  position: absolute; bottom: 0; width: 8%; height: 80%;
  background: linear-gradient(180deg, #a09080 0%, #6a5a4a 100%);
  border-radius: 4% 4% 0 0;
}
.scn-proof-withheld .pillar-left { left: 15%; }
.scn-proof-withheld .pillar-right { right: 15%; }
.scn-proof-withheld .count-figure {
  position: absolute; bottom: 10%; left: 30%; width: 70px; height: 130px;
  background: linear-gradient(135deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pw-count 5s ease-in-out infinite;
}
.scn-proof-withheld .emily-figure {
  position: absolute; bottom: 12%; left: 55%; width: 60px; height: 120px;
  background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pw-emily 4s ease-in-out infinite alternate;
}
.scn-proof-withheld .letter-seal {
  position: absolute; bottom: 45%; left: 47%; width: 30px; height: 30px;
  background: radial-gradient(circle, #c8a060 0%, #8a6030 80%);
  border-radius: 50%;
  box-shadow: 0 0 12px 3px rgba(200,160,96,0.5);
  animation: pw-seal 3s ease-in-out infinite;
}
.scn-proof-withheld .ray-light {
  position: absolute; top: 0; left: 35%; width: 30%; height: 60%;
  background: linear-gradient(180deg, rgba(255,240,200,0.2) 0%, transparent 80%);
  clip-path: polygon(30% 0, 70% 0, 60% 100%, 40% 100%);
  animation: pw-ray 7s ease-in-out infinite alternate;
}
.scn-proof-withheld .dust {
  position: absolute; width: 4px; height: 4px;
  background: rgba(255,245,220,0.5);
  border-radius: 50%;
  filter: blur(1px);
}
.scn-proof-withheld .dust.mota { top: 50%; left: 25%; animation: pw-dust-a 12s linear infinite; }
.scn-proof-withheld .dust.motb { top: 60%; left: 70%; animation: pw-dust-b 15s linear infinite reverse; }

@keyframes pw-count { 0% { transform: translateY(0) rotate(0deg) } 33% { transform: translateY(-3px) rotate(1deg) } 66% { transform: translateY(1px) rotate(-1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes pw-emily { 0% { transform: translateY(0) rotate(0deg) scale(1) } 50% { transform: translateY(-2px) rotate(2deg) scale(1.01) } 100% { transform: translateY(1px) rotate(-1deg) scale(0.99) } }
@keyframes pw-seal { 0% { transform: scale(1); opacity: 0.6 } 50% { transform: scale(1.3); opacity: 1; box-shadow: 0 0 20px 6px #c8a060 } 100% { transform: scale(0.8); opacity: 0.7 } }
@keyframes pw-ray { 0% { opacity: 0.3; transform: skewX(-3deg) } 50% { opacity: 0.7; transform: skewX(2deg) } 100% { opacity: 0.4; transform: skewX(0deg) } }
@keyframes pw-dust-a { 0% { transform: translate(0,0) scale(0.5); opacity: 0.1 } 25% { transform: translate(40px,-20px) scale(1); opacity: 0.6 } 50% { transform: translate(80px,10px) scale(0.7); opacity: 0.3 } 75% { transform: translate(120px,-15px) scale(1.2); opacity: 0.8 } 100% { transform: translate(160px,20px) scale(0.4); opacity: 0.2 } }
@keyframes pw-dust-b { 0% { transform: translate(0,0) scale(0.6); opacity: 0.2 } 33% { transform: translate(-50px,15px) scale(1.1); opacity: 0.7 } 66% { transform: translate(-100px,-10px) scale(0.8); opacity: 0.4 } 100% { transform: translate(-150px,25px) scale(0.5); opacity: 0.1 } }

/* morano-waits - tense dim interior */
.scn-morano-waits {
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0e0e 60%, #0a0505 100%),
              radial-gradient(ellipse at 50% 20%, #3a221a 0%, transparent 60%);
}
.scn-morano-waits .bg-wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #3a2520 0%, #1a0e0a 100%);
  animation: mw-wall 15s ease-in-out infinite alternate;
}
.scn-morano-waits .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(0deg, #2a1a12 0%, #1a0e08 100%);
  box-shadow: inset 0 20px 30px rgba(0,0,0,0.6);
}
.scn-morano-waits .figure-morano {
  position: absolute; bottom: 36%; left: 30%; width: 28px; height: 60px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0505 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mw-morano 6s ease-in-out infinite alternate;
}
.scn-morano-waits .figure-emily {
  position: absolute; bottom: 36%; right: 30%; width: 26px; height: 58px;
  background: linear-gradient(180deg, #3a2220 0%, #1a0a0a 100%);
  border-radius: 50% 50% 45% 45% / 55% 55% 45% 45%;
  transform-origin: bottom center;
  animation: mw-emily 8s ease-in-out infinite alternate;
}
.scn-morano-waits .candle {
  position: absolute; bottom: 30%; left: 50%; width: 4px; height: 14px;
  background: linear-gradient(0deg, #a06640 0%, #e0b060 100%);
  border-radius: 2px; transform: translateX(-50%);
  animation: mw-candle 2s ease-in-out infinite alternate;
}
.scn-morano-waits .candle-glow {
  position: absolute; bottom: 30%; left: 50%; width: 60px; height: 60px;
  transform: translate(-50%, 50%); background: radial-gradient(circle, rgba(200,140,60,0.4) 0%, transparent 70%);
  animation: mw-glow 3s ease-in-out infinite alternate;
}
.scn-morano-waits .shadow {
  position: absolute; bottom: 0; left: 10%; width: 200px; height: 100%;
  background: linear-gradient(180deg, rgba(0,0,0,0.3) 0%, transparent 100%);
  transform: skewX(-10deg); filter: blur(4px);
  animation: mw-shadow 10s ease-in-out infinite alternate;
}
@keyframes mw-wall {
  0% { opacity: 0.7 }
  50% { opacity: 0.9 }
  100% { opacity: 0.75 }
}
@keyframes mw-morano {
  0% { transform: translateX(0) translateY(0) rotate(-2deg); }
  50% { transform: translateX(2px) translateY(-1px) rotate(1deg); }
  100% { transform: translateX(0) translateY(0) rotate(-2deg); }
}
@keyframes mw-emily {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  50% { transform: translateX(-1px) translateY(-1px) rotate(1deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes mw-candle {
  0% { transform: translateX(-50%) scaleY(1) rotate(-2deg); }
  50% { transform: translateX(-50%) scaleY(1.05) rotate(2deg); }
  100% { transform: translateX(-50%) scaleY(1) rotate(-2deg); }
}
@keyframes mw-glow {
  0% { opacity: 0.6; transform: translate(-50%, 50%) scale(1); }
  50% { opacity: 1; transform: translate(-50%, 50%) scale(1.1); }
  100% { opacity: 0.7; transform: translate(-50%, 50%) scale(0.95); }
}
@keyframes mw-shadow {
  0% { transform: skewX(-10deg) translateX(0); opacity: 0.5; }
  50% { transform: skewX(-12deg) translateX(5px); opacity: 0.7; }
  100% { transform: skewX(-10deg) translateX(0); opacity: 0.5; }
}

/* morano-vows - desperate dim interior */
.scn-morano-vows {
  background: linear-gradient(180deg, #2e1e1a 0%, #1a0e0c 60%, #0a0605 100%),
              radial-gradient(ellipse at 30% 20%, #4a2a1a 0%, transparent 50%);
}
.scn-morano-vows .bg-wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #3a2520 0%, #1a0e0a 100%);
  animation: mv-wall 20s ease-in-out infinite alternate;
}
.scn-morano-vows .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(0deg, #2a1a12 0%, #1a0e08 100%);
  box-shadow: inset 0 20px 30px rgba(0,0,0,0.6);
}
.scn-morano-vows .figure-morano {
  position: absolute; bottom: 34%; left: 40%; width: 30px; height: 65px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0505 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mv-morano 4s ease-in-out infinite;
}
.scn-morano-vows .figure-emily {
  position: absolute; bottom: 36%; right: 30%; width: 26px; height: 58px;
  background: linear-gradient(180deg, #3a2220 0%, #1a0a0a 100%);
  border-radius: 50% 50% 45% 45% / 55% 55% 45% 45%;
  transform-origin: bottom center;
  animation: mv-emily 6s ease-in-out infinite alternate;
}
.scn-morano-vows .table {
  position: absolute; bottom: 28%; left: 50%; width: 80px; height: 8px;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%);
  border-radius: 2px; transform: translateX(-50%);
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-morano-vows .candle {
  position: absolute; bottom: 36%; left: 50%; width: 4px; height: 14px;
  background: linear-gradient(0deg, #a06640 0%, #e0b060 100%);
  border-radius: 2px; transform: translateX(-50%);
  animation: mv-candle 1.5s ease-in-out infinite alternate;
}
.scn-morano-vows .candle-glow {
  position: absolute; bottom: 36%; left: 50%; width: 50px; height: 50px;
  transform: translate(-50%, 30%); background: radial-gradient(circle, rgba(200,140,60,0.3) 0%, transparent 70%);
  animation: mv-glow 2s ease-in-out infinite alternate;
}
.scn-morano-vows .curtain {
  position: absolute; top: 0; right: 0; width: 60px; height: 100%;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%);
  border-left: 2px solid #5a3a2a; filter: blur(3px);
  animation: mv-curtain 12s ease-in-out infinite alternate;
}
@keyframes mv-wall {
  0% { opacity: 0.8 }
  50% { opacity: 0.95 }
  100% { opacity: 0.85 }
}
@keyframes mv-morano {
  0% { transform: translateX(0) translateY(0) rotate(-5deg) scaleY(1); }
  25% { transform: translateX(4px) translateY(-2px) rotate(3deg) scaleY(1.02); }
  50% { transform: translateX(-2px) translateY(-1px) rotate(-3deg) scaleY(0.98); }
  75% { transform: translateX(3px) translateY(-3px) rotate(4deg) scaleY(1.01); }
  100% { transform: translateX(0) translateY(0) rotate(-5deg) scaleY(1); }
}
@keyframes mv-emily {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(-3px) rotate(2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes mv-candle {
  0% { transform: translateX(-50%) scaleY(1) rotate(0deg); }
  50% { transform: translateX(-50%) scaleY(1.08) rotate(3deg); }
  100% { transform: translateX(-50%) scaleY(1) rotate(0deg); }
}
@keyframes mv-glow {
  0% { opacity: 0.5; transform: translate(-50%, 30%) scale(0.9); }
  50% { opacity: 1; transform: translate(-50%, 30%) scale(1.15); }
  100% { opacity: 0.6; transform: translate(-50%, 30%) scale(0.95); }
}
@keyframes mv-curtain {
  0% { transform: translateX(0) skewX(0deg); }
  50% { transform: translateX(5px) skewX(2deg); }
  100% { transform: translateX(0) skewX(0deg); }
}

/* morano-scorns-protection - anger dim interior */
.scn-morano-scorns-protection {
  background: linear-gradient(180deg, #2a1814 0%, #1a0e0a 50%, #0a0505 100%),
              radial-gradient(ellipse at 50% 30%, #4a2a1a 0%, transparent 60%);
}
.scn-morano-scorns-protection .bg-wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #3a2520 0%, #1a0e0a 100%);
  animation: msp-wall 18s ease-in-out infinite alternate;
}
.scn-morano-scorns-protection .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(0deg, #2a1a12 0%, #1a0e08 100%);
  box-shadow: inset 0 20px 30px rgba(0,0,0,0.6);
}
.scn-morano-scorns-protection .figure-morano {
  position: absolute; bottom: 35%; left: 35%; width: 32px; height: 68px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0505 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: msp-morano 3s ease-in-out infinite;
}
.scn-morano-scorns-protection .figure-emily {
  position: absolute; bottom: 36%; right: 28%; width: 26px; height: 58px;
  background: linear-gradient(180deg, #3a2220 0%, #1a0a0a 100%);
  border-radius: 50% 50% 45% 45% / 55% 55% 45% 45%;
  transform-origin: bottom center;
  animation: msp-emily 7s ease-in-out infinite alternate;
}
.scn-morano-scorns-protection .fireplace {
  position: absolute; bottom: 26%; left: 10%; width: 80px; height: 100px;
  background: linear-gradient(180deg, #4a2a1a 0%, #1a0e0a 100%);
  border-radius: 10% 10% 0 0; box-shadow: inset 0 -20px 30px rgba(0,0,0,0.7);
}
.scn-morano-scorns-protection .fire-glow {
  position: absolute; bottom: 26%; left: 10%; width: 80px; height: 100px;
  background: radial-gradient(ellipse at 50% 60%, rgba(200,100,40,0.3) 0%, transparent 70%);
  transform: translateY(20px); filter: blur(8px);
  animation: msp-fire 2s ease-in-out infinite alternate;
}
.scn-morano-scorns-protection .shadow-morano {
  position: absolute; bottom: 0; left: 20%; width: 150px; height: 80%;
  background: linear-gradient(180deg, rgba(0,0,0,0.4) 0%, transparent 100%);
  transform: skewX(-15deg); filter: blur(6px);
  animation: msp-shadow 8s ease-in-out infinite alternate;
}
.scn-morano-scorns-protection .candle {
  position: absolute; bottom: 32%; right: 20%; width: 4px; height: 14px;
  background: linear-gradient(0deg, #a06640 0%, #e0b060 100%);
  border-radius: 2px;
  animation: msp-candle 1.8s ease-in-out infinite alternate;
}
@keyframes msp-wall {
  0% { opacity: 0.7 }
  50% { opacity: 0.9 }
  100% { opacity: 0.75 }
}
@keyframes msp-morano {
  0% { transform: translateX(0) translateY(0) rotate(0deg) scaleX(1); }
  25% { transform: translateX(3px) translateY(-2px) rotate(3deg) scaleX(1.02); }
  50% { transform: translateX(-4px) translateY(-1px) rotate(-4deg) scaleX(0.98); }
  75% { transform: translateX(2px) translateY(-3px) rotate(2deg) scaleX(1.01); }
  100% { transform: translateX(0) translateY(0) rotate(0deg) scaleX(1); }
}
@keyframes msp-emily {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(-4px) rotate(3deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes msp-fire {
  0% { transform: translateY(20px) scaleY(1); opacity: 0.7; }
  50% { transform: translateY(18px) scaleY(1.08); opacity: 1; }
  100% { transform: translateY(20px) scaleY(1); opacity: 0.7; }
}
@keyframes msp-shadow {
  0% { transform: skewX(-15deg) translateX(0); opacity: 0.4; }
  50% { transform: skewX(-18deg) translateX(8px); opacity: 0.6; }
  100% { transform: skewX(-15deg) translateX(0); opacity: 0.4; }
}
@keyframes msp-candle {
  0% { transform: translateX(0) scaleY(1) rotate(0deg); }
  50% { transform: translateX(2px) scaleY(1.06) rotate(3deg); }
  100% { transform: translateX(0) scaleY(1) rotate(0deg); }
}

/* emily-stands-firm - calm dim interior */
.scn-emily-stands-firm {
  background: linear-gradient(180deg, #2e201a 0%, #1a100e 60%, #0a0805 100%),
              radial-gradient(ellipse at 50% 20%, #3a2218 0%, transparent 60%);
}
.scn-emily-stands-firm .bg-wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #3a2820 0%, #1a120e 100%);
  animation: ef-wall 25s ease-in-out infinite alternate;
}
.scn-emily-stands-firm .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(0deg, #2a1a12 0%, #1a1008 100%);
  box-shadow: inset 0 20px 30px rgba(0,0,0,0.5);
}
.scn-emily-stands-firm .figure-emily {
  position: absolute; bottom: 36%; left: 30%; width: 26px; height: 60px;
  background: linear-gradient(180deg, #3a2220 0%, #1a0a0a 100%);
  border-radius: 50% 50% 45% 45% / 55% 55% 45% 45%;
  transform-origin: bottom center;
  animation: ef-emily 10s ease-in-out infinite;
}
.scn-emily-stands-firm .figure-morano {
  position: absolute; bottom: 34%; right: 25%; width: 30px; height: 65px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0505 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ef-morano 5s ease-in-out infinite alternate;
}
.scn-emily-stands-firm .chair {
  position: absolute; bottom: 24%; right: 40%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%);
  border-radius: 10% 10% 5% 5%; box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: ef-chair 15s ease-in-out infinite alternate;
}
.scn-emily-stands-firm .candle {
  position: absolute; bottom: 32%; left: 50%; width: 4px; height: 14px;
  background: linear-gradient(0deg, #a06640 0%, #e0b060 100%);
  border-radius: 2px; transform: translateX(-50%);
  animation: ef-candle 3s ease-in-out infinite alternate;
}
.scn-emily-stands-firm .candle-glow {
  position: absolute; bottom: 32%; left: 50%; width: 50px; height: 50px;
  transform: translate(-50%, 30%); background: radial-gradient(circle, rgba(200,140,60,0.35) 0%, transparent 70%);
  animation: ef-glow 4s ease-in-out infinite alternate;
}
.scn-emily-stands-firm .shadow {
  position: absolute; bottom: 0; left: 5%; width: 180px; height: 90%;
  background: linear-gradient(180deg, rgba(0,0,0,0.25) 0%, transparent 100%);
  transform: skewX(-8deg); filter: blur(5px);
  animation: ef-shadow 20s ease-in-out infinite alternate;
}
@keyframes ef-wall {
  0% { opacity: 0.8 }
  50% { opacity: 0.9 }
  100% { opacity: 0.85 }
}
@keyframes ef-emily {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  25% { transform: translateX(1px) translateY(-1px) rotate(0.5deg); }
  50% { transform: translateX(0) translateY(-2px) rotate(0deg); }
  75% { transform: translateX(-1px) translateY(-1px) rotate(-0.5deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes ef-morano {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  50% { transform: translateX(6px) translateY(-1px) rotate(2deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes ef-chair {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(1px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes ef-candle {
  0% { transform: translateX(-50%) scaleY(1) rotate(0deg); }
  50% { transform: translateX(-50%) scaleY(1.04) rotate(1deg); }
  100% { transform: translateX(-50%) scaleY(1) rotate(0deg); }
}
@keyframes ef-glow {
  0% { opacity: 0.5; transform: translate(-50%, 30%) scale(1); }
  50% { opacity: 0.8; transform: translate(-50%, 30%) scale(1.05); }
  100% { opacity: 0.55; transform: translate(-50%, 30%) scale(0.98); }
}
@keyframes ef-shadow {
  0% { transform: skewX(-8deg) translateX(0); opacity: 0.3; }
  50% { transform: skewX(-10deg) translateX(3px); opacity: 0.5; }
  100% { transform: skewX(-8deg) translateX(0); opacity: 0.3; }
}

.scn-double-chamber { background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 40%, #3a3a4e 100%), radial-gradient(ellipse at 50% 20%, #3a3a4e 0%, transparent 70%); }
.scn-double-chamber .bg-deep { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 100%); border-radius:0 0 20% 20%; }
.scn-double-chamber .bg-mid { position:absolute; inset:10% 5% 35% 5%; background: linear-gradient(90deg, #2a2a3a 0%, #3a3a4a 50%, #2a2a3a 100%); border-radius:2% 2% 30% 30%; }
.scn-double-chamber .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%); border-radius:40% 60% 0 0 / 10% 10% 0 0; }
.scn-double-chamber .hearth { position:absolute; bottom:18%; left:25%; width:35%; height:15%; background: radial-gradient(ellipse at 50% 100%, #6a3a2a 0%, #3a2a1a 50%, transparent 100%); border-radius:50%; box-shadow: 0 0 30px 10px #8a4a2a; }
.scn-double-chamber .window { position:absolute; top:8%; right:10%; width:12%; height:20%; background: linear-gradient(45deg, #4a4a6a 0%, #6a6a8a 100%); border:2px solid #2a2a3a; border-radius:10% 10% 4% 4%; box-shadow: inset 0 0 20px #6a6a8a; animation: sc-dc-window 8s ease-in-out infinite alternate; }
.scn-double-chamber .figure { position:absolute; bottom:16%; left:48%; width:10%; height:20%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sc-dc-figure 5s ease-in-out infinite; }
.scn-double-chamber .smoke { position:absolute; top:12%; left:30%; width:40%; height:20%; background: radial-gradient(ellipse at 50% 50%, rgba(255,255,255,.08) 0%, transparent 100%); filter: blur(10px); animation: sc-dc-smoke 20s linear infinite; }
@keyframes sc-dc-window { 0% { opacity:.4; box-shadow: inset 0 0 10px #6a6a8a; } 50% { opacity:.7; box-shadow: inset 0 0 30px #8a8aaa; } 100% { opacity:.5; box-shadow: inset 0 0 15px #6a6a8a; } }
@keyframes sc-dc-figure { 0%,100% { transform: translateX(0) translateY(0) rotate(-2deg); } 25% { transform: translateX(5px) translateY(-3px) rotate(2deg); } 50% { transform: translateX(10px) translateY(0) rotate(-1deg); } 75% { transform: translateX(5px) translateY(-2px) rotate(1deg); } }
@keyframes sc-dc-smoke { 0% { transform: translateY(0) scaleX(1); opacity:.3; } 50% { transform: translateY(-20px) scaleX(1.2); opacity:.1; } 100% { transform: translateY(-40px) scaleX(0.8); opacity:0; } }

.scn-window-view { background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2e 40%, #2a2a3e 100%), radial-gradient(ellipse at 50% 100%, #2a2a3e 0%, transparent 60%); }
.scn-window-view .bg-sky { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2e 100%); }
.scn-window-view .bg-rampart { position:absolute; bottom:10%; left:0; right:0; height:15%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius:20% 20% 0 0 / 40% 40% 0 0; box-shadow: 0 -4px 10px #0a0a1a; }
.scn-window-view .window-frame { position:absolute; top:5%; left:30%; width:40%; height:60%; background: linear-gradient(90deg, #1a1a2a 0%, #2a2a3a 50%, #1a1a2a 100%); border:4px solid #3a3a4a; border-radius:4% 4% 8% 8%; box-shadow: inset 0 0 20px rgba(255,255,255,.05); }
.scn-window-view .window-glass { position:absolute; top:8%; left:33%; width:34%; height:54%; background: linear-gradient(135deg, rgba(255,255,255,.02) 0%, rgba(255,255,255,.08) 50%, rgba(255,255,255,.02) 100%); border-radius:2%; box-shadow: 0 0 30px rgba(255,255,255,.03); animation: sc-wv-glass 12s ease-in-out infinite alternate; }
.scn-window-view .figure { position:absolute; bottom:16%; left:42%; width:12%; height:28%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sc-wv-figure 6s ease-in-out infinite; }
.scn-window-view .candle { position:absolute; bottom:12%; left:48%; width:4%; height:8%; background: linear-gradient(180deg, #8a6a3a 0%, #4a3a1a 100%); border-radius:20% 20% 10% 10%; box-shadow: 0 0 20px 8px #8a6a3a; animation: sc-wv-candle 3s ease-in-out infinite alternate; }
.scn-window-view .breath { position:absolute; bottom:28%; left:40%; width:15%; height:10%; background: radial-gradient(ellipse, rgba(200,200,255,.04) 0%, transparent 100%); border-radius:50%; filter: blur(4px); animation: sc-wv-breath 5s ease-in-out infinite; }
@keyframes sc-wv-glass { 0% { opacity:.3; } 50% { opacity:.6; } 100% { opacity:.4; } }
@keyframes sc-wv-figure { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 33% { transform: translateX(4px) translateY(-2px) rotate(1deg); } 66% { transform: translateX(-2px) translateY(-1px) rotate(-1deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes sc-wv-candle { 0% { box-shadow: 0 0 15px 5px #8a6a3a; transform: scaleY(1); } 50% { box-shadow: 0 0 25px 10px #a08040; transform: scaleY(1.1); } 100% { box-shadow: 0 0 18px 6px #8a6a3a; transform: scaleY(0.95); } }
@keyframes sc-wv-breath { 0%,100% { opacity:.3; transform: scale(1); } 50% { opacity:.6; transform: scale(1.3); } }

.scn-annette-longs-to-tell { background: linear-gradient(180deg, #2a1a0a 0%, #3a2a1a 40%, #4a3a2a 100%), radial-gradient(ellipse at 50% 80%, #4a3a2a 0%, transparent 70%); }
.scn-annette-longs-to-tell .bg-wall { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #2a1a0a 0%, #3a2a1a 100%); border-radius:0 0 10% 10%; }
.scn-annette-longs-to-tell .hearth { position:absolute; bottom:10%; left:20%; width:60%; height:20%; background: linear-gradient(180deg, #6a3a2a 0%, #4a2a1a 100%); border-radius:30% 30% 0 0 / 50% 50% 0 0; box-shadow: inset 0 0 30px #8a4a2a; }
.scn-annette-longs-to-tell .fire { position:absolute; bottom:14%; left:30%; width:40%; height:18%; background: radial-gradient(ellipse at 50% 100%, #c06030 0%, #a04020 40%, #802010 70%, transparent 100%); border-radius:50%; box-shadow: 0 0 40px 15px #a04020, 0 0 80px 30px rgba(160,64,32,.4); animation: sc-alt-fire 2s ease-in-out infinite alternate; }
.scn-annette-longs-to-tell .figure-emily { position:absolute; bottom:22%; left:25%; width:12%; height:30%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sc-alt-emily 4s ease-in-out infinite; }
.scn-annette-longs-to-tell .figure-annette { position:absolute; bottom:20%; right:25%; width:14%; height:32%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sc-alt-annette 5s ease-in-out infinite; }
.scn-annette-longs-to-tell .chair { position:absolute; bottom:15%; left:42%; width:16%; height:20%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius:20% 20% 10% 10%; box-shadow: 0 0 10px #1a0a00; }
.scn-annette-longs-to-tell .tapestry { position:absolute; top:5%; left:15%; width:70%; height:40%; background: linear-gradient(90deg, #4a3a2a 0%, #5a4a3a 50%, #4a3a2a 100%); border-radius:2%; box-shadow: inset 0 0 20px #1a0a00; animation: sc-alt-tapestry 30s linear infinite; }
@keyframes sc-alt-fire { 0% { opacity:.7; box-shadow: 0 0 30px 10px #a04020, 0 0 60px 20px rgba(160,64,32,.3); } 50% { opacity:1; box-shadow: 0 0 50px 20px #c06030, 0 0 100px 40px rgba(192,96,48,.5); } 100% { opacity:.8; box-shadow: 0 0 35px 12px #a04020, 0 0 70px 25px rgba(160,64,32,.35); } }
@keyframes sc-alt-emily { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(3px) rotate(1deg); } 50% { transform: translateX(0) rotate(-1deg); } 75% { transform: translateX(-3px) rotate(0deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes sc-alt-annette { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 33% { transform: translateX(-5px) translateY(-3px) rotate(2deg); } 66% { transform: translateX(2px) translateY(-1px) rotate(-1deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes sc-alt-tapestry { 0% { background-position: 0% 50%; } 100% { background-position: 100% 50%; } }

.scn-alone-again { background: linear-gradient(180deg, #1a0a00 0%, #2a1a0a 40%, #3a2a1a 100%), radial-gradient(ellipse at 50% 70%, #3a2a1a 0%, transparent 60%); }
.scn-alone-again .bg-wall { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #1a0a00 0%, #2a1a0a 100%); border-radius:0 0 15% 15%; }
.scn-alone-again .hearth { position:absolute; bottom:12%; left:15%; width:70%; height:18%; background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%); border-radius:40% 40% 0 0 / 30% 30% 0 0; box-shadow: inset 0 0 20px #5a3a2a; }
.scn-alone-again .fire-glow { position:absolute; bottom:16%; left:30%; width:40%; height:16%; background: radial-gradient(ellipse at 50% 100%, #a06030 0%, #804020 50%, transparent 100%); border-radius:50%; box-shadow: 0 0 40px 15px #804020, 0 0 80px 30px rgba(128,64,32,.3); animation: sc-aa-glow 3s ease-in-out infinite alternate; }
.scn-alone-again .chair { position:absolute; bottom:20%; left:45%; width:12%; height:18%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius:10% 10% 5% 5%; box-shadow: 0 0 10px #0a0000; }
.scn-alone-again .figure { position:absolute; bottom:22%; left:48%; width:10%; height:24%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sc-aa-figure 7s ease-in-out infinite; }
.scn-alone-again .shadow { position:absolute; bottom:10%; left:20%; width:60%; height:10%; background: radial-gradient(ellipse, #0a0000 0%, transparent 80%); border-radius:50%; filter: blur(8px); animation: sc-aa-shadow 10s ease-in-out infinite alternate; }
.scn-alone-again .candle { position:absolute; bottom:26%; left:35%; width:3%; height:7%; background: linear-gradient(180deg, #a07030 0%, #604020 100%); border-radius:20% 20% 10% 10%; box-shadow: 0 0 15px 5px #a07030; animation: sc-aa-candle 4s ease-in-out infinite alternate; }
@keyframes sc-aa-glow { 0% { opacity:.5; box-shadow: 0 0 20px 8px #804020, 0 0 40px 15px rgba(128,64,32,.2); } 50% { opacity:.9; box-shadow: 0 0 40px 15px #a06030, 0 0 80px 30px rgba(160,96,48,.4); } 100% { opacity:.6; box-shadow: 0 0 25px 10px #804020, 0 0 50px 20px rgba(128,64,32,.25); } }
@keyframes sc-aa-figure { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 25% { transform: translateX(2px) translateY(-2px) rotate(1deg); } 50% { transform: translateX(0) translateY(0) rotate(-1deg); } 75% { transform: translateX(-2px) translateY(-1px) rotate(0deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes sc-aa-shadow { 0% { opacity:.4; transform: scaleX(1); } 50% { opacity:.6; transform: scaleX(1.1); } 100% { opacity:.3; transform: scaleX(0.9); } }
@keyframes sc-aa-candle { 0% { box-shadow: 0 0 10px 3px #a07030; transform: scaleY(1); } 50% { box-shadow: 0 0 20px 8px #c09040; transform: scaleY(1.1); } 100% { box-shadow: 0 0 12px 4px #a07030; transform: scaleY(0.95); } }

/* Scene: attempt-to-read */
.scn-attempt-to-read { background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 40%, #0e0e1a 100%), radial-gradient(ellipse at 30% 70%, #3a3a5e 0%, transparent 60%); }
.scn-attempt-to-read .bg-wall { position:absolute; inset:0; background:linear-gradient(135deg, #2e2e44 0%, #1a1a2c 100%); }
.scn-attempt-to-read .window { position:absolute; top:15%; left:60%; width:25%; height:30%; background:linear-gradient(180deg, #6a7a9a 0%, #4a5a7a 100%); border-radius:10%; box-shadow: inset 0 0 20px rgba(0,0,0,0.6); animation: atr-window 12s ease-in-out infinite alternate; }
.scn-attempt-to-read .chair { position:absolute; bottom:20%; left:30%; width:30%; height:20%; background:linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:10% / 20% 20% 10% 10%; box-shadow:0 4px 10px rgba(0,0,0,0.5); }
.scn-attempt-to-read .book { position:absolute; bottom:18%; left:45%; width:12%; height:8%; background:linear-gradient(135deg, #6b4a3a 0%, #3a2a1a 100%); border-radius:5%; transform:rotate(-15deg); animation: atr-book 6s ease-in-out infinite; }
.scn-attempt-to-read .candle { position:absolute; bottom:30%; left:50%; width:2%; height:6%; background:linear-gradient(180deg, #f0d0a0 0%, #c0a070 100%); border-radius:50% 50% 10% 10% / 80% 80% 20% 20%; }
.scn-attempt-to-read .candle::after { content:''; position:absolute; top:-100%; left:50%; width:200%; height:200%; background:radial-gradient(circle, #ffd080 0%, transparent 70%); transform:translateX(-50%); animation: atr-candle 2s ease-in-out infinite alternate; }
.scn-attempt-to-read .figure-sitting { position:absolute; bottom:18%; left:35%; width:20%; height:35%; background:linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%); border-radius:40% 40% 30% 30% / 50% 50% 30% 30%; animation: atr-sigh 8s ease-in-out infinite; }
.scn-attempt-to-read .shadow { position:absolute; bottom:15%; left:25%; width:50%; height:5%; background:radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 70%); animation: atr-shadow 10s ease-in-out infinite; }
@keyframes atr-window    { 0% { opacity:0.7 } 50% { opacity:0.9 } 100% { opacity:0.6 } }
@keyframes atr-book      { 0% { transform:rotate(-15deg) translateY(0) } 25% { transform:rotate(-10deg) translateY(-2px) } 50% { transform:rotate(-5deg) translateY(0) } 75% { transform:rotate(-12deg) translateY(1px) } 100% { transform:rotate(-15deg) translateY(0) } }
@keyframes atr-candle    { 0% { opacity:0.8; transform:translateX(-50%) scale(1) } 50% { opacity:1; transform:translateX(-50%) scale(1.1) } 100% { opacity:0.7; transform:translateX(-50%) scale(0.95) } }
@keyframes atr-sigh      { 0% { transform:translateY(0) scale(1) } 25% { transform:translateY(-3px) scale(1.01) } 50% { transform:translateY(1px) scale(1) } 75% { transform:translateY(-2px) scale(0.99) } 100% { transform:translateY(0) scale(1) } }
@keyframes atr-shadow    { 0% { opacity:0.4 } 50% { opacity:0.6 } 100% { opacity:0.3 } }

/* Scene: towards-veiled-picture */
.scn-towards-veiled-picture { background: linear-gradient(180deg, #1e1a2e 0%, #0e0a1a 50%, #05030a 100%), radial-gradient(ellipse at 70% 50%, #2a2a4a 0%, transparent 60%); }
.scn-towards-veiled-picture .corridor-bg { position:absolute; inset:0; background:linear-gradient(90deg, #0e0a1a 0%, #1a162a 30%, #0e0a1a 100%); }
.scn-towards-veiled-picture .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background:linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); }
.scn-towards-veiled-picture .veil-picture { position:absolute; top:15%; left:55%; width:30%; height:40%; background:linear-gradient(180deg, #4a3a5a 0%, #2a1a3a 100%); border:4px solid #6a5a7a; border-radius:5%; box-shadow:0 0 30px rgba(0,0,0,0.8); }
.scn-towards-veiled-picture .veil-picture::before { content:''; position:absolute; top:0; left:0; width:100%; height:100%; background:linear-gradient(135deg, rgba(255,255,255,0.1) 0%, transparent 40%, rgba(0,0,0,0.3) 100%); animation: tvp-veil 6s ease-in-out infinite; }
.scn-towards-veiled-picture .figure-approaching { position:absolute; bottom:15%; left:30%; width:15%; height:40%; background:linear-gradient(180deg, #0e0a1a 0%, #1a162a 100%); border-radius:30% 30% 20% 20% / 50% 50% 20% 20%; animation: tvp-walk 5s ease-in-out infinite; }
.scn-towards-veiled-picture .shadow-figure { position:absolute; bottom:12%; left:28%; width:18%; height:5%; background:radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 70%); animation: tvp-shadow 5s ease-in-out infinite; }
.scn-towards-veiled-picture .gaslight { position:absolute; top:20%; left:15%; width:3%; height:8%; background:linear-gradient(180deg, #f0c080 0%, #c09050 100%); border-radius:50% 50% 20% 20% / 80% 80% 20% 20%; }
.scn-towards-veiled-picture .gaslight::after { content:''; position:absolute; top:-50%; left:50%; width:300%; height:300%; background:radial-gradient(circle, #f0c080 0%, transparent 70%); transform:translateX(-50%); animation: tvp-glow 2s ease-in-out infinite alternate; }
@keyframes tvp-veil     { 0% { opacity:0.6 } 50% { opacity:0.8 } 100% { opacity:0.5 } }
@keyframes tvp-walk     { 0% { transform:translateX(0) translateY(0) rotate(-2deg) } 25% { transform:translateX(5px) translateY(-2px) rotate(1deg) } 50% { transform:translateX(10px) translateY(0) rotate(-1deg) } 75% { transform:translateX(15px) translateY(-1px) rotate(2deg) } 100% { transform:translateX(20px) translateY(0) rotate(0) } }
@keyframes tvp-shadow   { 0% { transform:translateX(0) scale(1); opacity:0.5 } 25% { transform:translateX(5px) scale(1.1); opacity:0.6 } 50% { transform:translateX(10px) scale(1); opacity:0.4 } 75% { transform:translateX(15px) scale(1.05); opacity:0.5 } 100% { transform:translateX(20px) scale(1); opacity:0.5 } }
@keyframes tvp-glow     { 0% { opacity:0.7; transform:translateX(-50%) scale(1) } 50% { opacity:1; transform:translateX(-50%) scale(1.2) } 100% { opacity:0.6; transform:translateX(-50%) scale(0.9) } }

/* Scene: unveiling-horror */
.scn-unveiling-horror { background: linear-gradient(180deg, #1a0a0a 0%, #0a0505 40%, #000 100%), radial-gradient(ellipse at 50% 40%, #3a1a1a 0%, transparent 60%); }
.scn-unveiling-horror .wall-dark { position:absolute; inset:0; background:linear-gradient(90deg, #0a0505 0%, #1a0a0a 30%, #0a0505 100%); }
.scn-unveiling-horror .frame { position:absolute; top:10%; left:25%; width:50%; height:60%; background:linear-gradient(180deg, #3a2a2a 0%, #1a1010 100%); border:5px solid #5a3a3a; border-radius:4%; box-shadow:0 0 40px rgba(0,0,0,0.9); }
.scn-unveiling-horror .veil { position:absolute; top:8%; left:30%; width:40%; height:50%; background:linear-gradient(135deg, rgba(220,200,200,0.2) 0%, rgba(100,80,80,0.4) 100%); border-radius:2%; filter:blur(2px); animation: uvh-veil 8s ease-in-out infinite; }
.scn-unveiling-horror .hand { position:absolute; bottom:30%; left:45%; width:8%; height:12%; background:linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: uvh-hand 10s ease-in-out infinite; }
.scn-unveiling-horror .horror-shape { position:absolute; top:20%; left:35%; width:30%; height:20%; background:radial-gradient(ellipse, #5e1a1d 0%, #1a0505 70%, transparent 100%); border-radius:40% 60% 60% 40% / 40% 40% 60% 60%; filter:blur(4px); animation: uvh-horror 4s ease-in-out infinite alternate; }
.scn-unveiling-horror .shadow-hand { position:absolute; bottom:28%; left:43%; width:12%; height:4%; background:radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 70%); animation: uvh-shadow 10s ease-in-out infinite; }
.scn-unveiling-horror .glow-faint { position:absolute; top:25%; left:40%; width:20%; height:10%; background:radial-gradient(circle, rgba(100,30,30,0.3) 0%, transparent 70%); animation: uvh-glow 5s ease-in-out infinite alternate; }
@keyframes uvh-veil    { 0% { opacity:0.7; transform:translateY(0) } 25% { opacity:0.9; transform:translateY(3px) } 50% { opacity:0.6; transform:translateY(-2px) } 75% { opacity:0.8; transform:translateY(1px) } 100% { opacity:0.7; transform:translateY(0) } }
@keyframes uvh-hand    { 0% { transform:translateY(0) rotate(-5deg) } 20% { transform:translateY(-20px) rotate(-2deg) } 40% { transform:translateY(-40px) rotate(0deg) } 60% { transform:translateY(-60px) rotate(2deg) } 80% { transform:translateY(-80px) rotate(0deg) } 100% { transform:translateY(-100px) rotate(1deg) } }
@keyframes uvh-horror  { 0% { opacity:0.3; transform:scale(0.8) } 50% { opacity:0.8; transform:scale(1.2) } 100% { opacity:0.4; transform:scale(0.9) } }
@keyframes uvh-shadow  { 0% { transform:translateX(0) scale(1); opacity:0.5 } 20% { transform:translateX(-5px) scale(1.1); opacity:0.6 } 40% { transform:translateX(-10px) scale(1.2); opacity:0.7 } 60% { transform:translateX(-15px) scale(1.3); opacity:0.6 } 80% { transform:translateX(-20px) scale(1.2); opacity:0.5 } 100% { transform:translateX(-25px) scale(1); opacity:0.5 } }
@keyframes uvh-glow    { 0% { opacity:0.2 } 50% { opacity:0.5 } 100% { opacity:0.1 } }

/* Scene: seeking-comfort */
.scn-seeking-comfort { background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1a 50%, #050510 100%), radial-gradient(ellipse at 60% 30%, #3a3a6e 0%, transparent 70%); }
.scn-seeking-comfort .window-arch { position:absolute; top:5%; left:20%; width:60%; height:40%; border-radius:50% 50% 10% 10% / 60% 60% 10% 10%; background:linear-gradient(180deg, #2a2a4e 0%, #1a1a3e 100%); border:4px solid #4a4a6a; box-shadow:inset 0 0 20px rgba(0,0,0,0.5); }
.scn-seeking-comfort .moonlight-beam { position:absolute; top:10%; left:30%; width:40%; height:60%; background:linear-gradient(180deg, rgba(180,200,255,0.15) 0%, transparent 100%); clip-path:polygon(20% 0%, 80% 0%, 70% 100%, 30% 100%); animation: sfc-beam 15s ease-in-out infinite alternate; }
.scn-seeking-comfort .seat { position:absolute; bottom:15%; left:30%; width:40%; height:20%; background:linear-gradient(180deg, #3a2a2a 0%, #1a1010 100%); border-radius:10% 10% 5% 5%; box-shadow:0 4px 8px rgba(0,0,0,0.4); }
.scn-seeking-comfort .figure-seated { position:absolute; bottom:12%; left:38%; width:24%; height:35%; background:linear-gradient(180deg, #0e0a1a 0%, #1a162a 100%); border-radius:40% 40% 30% 30% / 50% 50% 30% 30%; animation: sfc-breathe 7s ease-in-out infinite; }
.scn-seeking-comfort .book-on-lap { position:absolute; bottom:20%; left:45%; width:12%; height:8%; background:linear-gradient(135deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:4%; transform:rotate(-5deg); animation: sfc-book 10s ease-in-out infinite; }
.scn-seeking-comfort .curtain { position:absolute; top:5%; left:15%; width:20%; height:60%; background:linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 100%); border-radius:0 20% 20% 0 / 0 50% 50% 0; animation: sfc-curtain 12s ease-in-out infinite alternate; }
.scn-seeking-comfort .shadow-seat { position:absolute; bottom:10%; left:32%; width:36%; height:5%; background:radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 70%); animation: sfc-shadow 8s ease-in-out infinite; }
@keyframes sfc-beam     { 0% { opacity:0.3; transform:rotate(-2deg) } 50% { opacity:0.7; transform:rotate(1deg) } 100% { opacity:0.4; transform:rotate(0deg) } }
@keyframes sfc-breathe  { 0% { transform:translateY(0) scale(1) } 25% { transform:translateY(-2px) scale(1.01) } 50% { transform:translateY(1px) scale(1) } 75% { transform:translateY(-1px) scale(0.99) } 100% { transform:translateY(0) scale(1) } }
@keyframes sfc-book     { 0% { transform:rotate(-5deg) translateY(0) } 25% { transform:rotate(-3deg) translateY(-1px) } 50% { transform:rotate(-7deg) translateY(0) } 75% { transform:rotate(-4deg) translateY(1px) } 100% { transform:rotate(-5deg) translateY(0) } }
@keyframes sfc-curtain  { 0% { transform:translateX(0) skewX(2deg) } 50% { transform:translateX(-3px) skewX(0deg) } 100% { transform:translateX(2px) skewX(1deg) } }
@keyframes sfc-shadow   { 0% { opacity:0.4 } 50% { opacity:0.6 } 100% { opacity:0.3 } }

.scn-fallen-trees-death {
  background: linear-gradient(180deg, #1a0f08 0%, #2d1a0e 40%, #1c1008 100%),
              radial-gradient(ellipse at 30% 70%, #d46a2a 0%, transparent 60%),
              radial-gradient(ellipse at 70% 80%, #b3531a 0%, transparent 40%);
}
.scn-fallen-trees-death .sky-night {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #0d0805 0%, #1f130b 80%);
  animation: ft1-sky 20s ease-in-out infinite alternate;
}
.scn-fallen-trees-death .moon {
  position: absolute; top: 8%; left: 70%;
  width: 40px; height: 40px;
  background: radial-gradient(circle, #d4a373 0%, #b08040 60%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 30px 10px #b08040, 0 0 60px 20px rgba(176,128,64,0.3);
  animation: ft1-moon 12s ease-in-out infinite;
}
.scn-fallen-trees-death .trunk-left {
  position: absolute; bottom: 20%; left: 15%;
  width: 30px; height: 180px;
  background: linear-gradient(180deg, #3a2214 0%, #24130a 100%);
  border-radius: 20% 20% 40% 40% / 10% 10% 30% 30%;
  transform: rotate(-10deg);
  box-shadow: inset 0 4px 6px rgba(0,0,0,0.6);
}
.scn-fallen-trees-death .trunk-right {
  position: absolute; bottom: 25%; right: 20%;
  width: 25px; height: 150px;
  background: linear-gradient(180deg, #3d1f0f 0%, #28150a 100%);
  border-radius: 20% 20% 30% 30% / 15% 15% 25% 25%;
  transform: rotate(15deg);
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.7);
  animation: ft1-trunk 8s ease-in-out infinite alternate;
}
.scn-fallen-trees-death .branch-top {
  position: absolute; top: 15%; left: 40%;
  width: 200px; height: 8px;
  background: #2d180c;
  border-radius: 50%; transform: rotate(20deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
}
.scn-fallen-trees-death .torch-glow {
  position: absolute; bottom: 30%; left: 50%;
  width: 120px; height: 180px;
  background: radial-gradient(ellipse at 50% 80%, #ff9b5e 0%, #d46a2a 30%, transparent 60%);
  mix-blend-mode: screen;
  animation: ft1-torch 3s ease-in-out infinite alternate;
}
.scn-fallen-trees-death .figure-emily {
  position: absolute; bottom: 26%; left: 48%;
  width: 16px; height: 40px;
  background: linear-gradient(180deg, #0d0805 0%, #1f130b 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ft1-walk 6s ease-in-out infinite;
}
.scn-fallen-trees-death .leaf-drift {
  position: absolute; top: 12%; left: 20%;
  width: 10px; height: 6px;
  background: #7a4a2a;
  border-radius: 50%;
  filter: blur(1px);
  animation: ft1-leaf 15s linear infinite;
}
@keyframes ft1-sky {
  0% { opacity: 0.7; }
  50% { opacity: 0.9; }
  100% { opacity: 0.6; }
}
@keyframes ft1-moon {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-4px); }
}
@keyframes ft1-trunk {
  0% { transform: rotate(15deg); }
  100% { transform: rotate(18deg); }
}
@keyframes ft1-torch {
  0% { opacity: 0.7; transform: scale(0.95); }
  50% { opacity: 1; transform: scale(1); }
  100% { opacity: 0.8; transform: scale(0.98); }
}
@keyframes ft1-walk {
  0% { transform: translateX(0) translateY(0) rotate(-2deg); }
  25% { transform: translateX(4px) translateY(-1px) rotate(0deg); }
  50% { transform: translateX(8px) translateY(0) rotate(2deg); }
  75% { transform: translateX(12px) translateY(-1px) rotate(0deg); }
  100% { transform: translateX(16px) translateY(0) rotate(-2deg); }
}
@keyframes ft1-leaf {
  0% { transform: translate(0, 0) rotate(0deg); opacity: 1; }
  100% { transform: translate(30px, 80px) rotate(360deg); opacity: 0; }
}

.scn-trumpet-watch {
  background: linear-gradient(180deg, #11152e 0%, #1b2342 40%, #2a3554 100%),
              radial-gradient(ellipse at 50% 20%, #4e6080 0%, transparent 70%);
}
.scn-trumpet-watch .sky-moonlit {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #0d1126 0%, #1a2040 100%);
  animation: tw2-sky 18s ease-in-out infinite alternate;
}
.scn-trumpet-watch .moon-castle {
  position: absolute; top: 6%; right: 15%;
  width: 50px; height: 50px;
  background: radial-gradient(circle, #c0c8d8 0%, #8090b0 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 8px #8090b0, 0 0 40px 15px rgba(128,144,176,0.3);
  animation: tw2-moon 14s ease-in-out infinite;
}
.scn-trumpet-watch .tower {
  position: absolute; bottom: 20%; left: 35%;
  width: 80px; height: 180px;
  background: linear-gradient(180deg, #2a3248 0%, #1a1f30 100%);
  border-radius: 10% 10% 5% 5% / 5% 5% 2% 2%;
  box-shadow: inset 0 8px 12px rgba(0,0,0,0.5);
}
.scn-trumpet-watch .battlements {
  position: absolute; bottom: 70%; left: 33%;
  width: 90px; height: 30px;
  background: #252d42;
  border-radius: 10% 10% 0 0;
  clip-path: polygon(0% 100%, 8% 0%, 16% 100%, 24% 0%, 32% 100%, 40% 0%, 48% 100%, 56% 0%, 64% 100%, 72% 0%, 80% 100%, 88% 0%, 100% 100%);
  animation: tw2-battlements 4s ease-in-out infinite alternate;
}
.scn-trumpet-watch .flag {
  position: absolute; top: 5%; left: 38%;
  width: 24px; height: 6px;
  background: #5c3a4a; /* muted burgundy, not crimson */
  border-radius: 0 50% 50% 0;
  transform: rotate(-30deg);
  animation: tw2-flag 6s ease-in-out infinite;
}
.scn-trumpet-watch .trumpet {
  position: absolute; bottom: 38%; left: 45%;
  width: 40px; height: 14px;
  background: linear-gradient(180deg, #b0a080 0%, #808070 100%);
  border-radius: 50% 20% 20% 50% / 60% 40% 40% 60%;
  transform: rotate(-15deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.4);
}
.scn-trumpet-watch .sentinel-shadow {
  position: absolute; bottom: 25%; left: 42%;
  width: 18px; height: 50px;
  background: #1a1f30;
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform: scaleX(-1);
  animation: tw2-sentinel 8s ease-in-out infinite alternate;
}
.scn-trumpet-watch .clock-hand {
  position: absolute; top: 8%; left: 55%;
  width: 4px; height: 20px;
  background: #b0a080;
  border-radius: 10%;
  transform-origin: bottom center;
  animation: tw2-clock 12s linear infinite;
}
@keyframes tw2-sky {
  0% { opacity: 0.6; filter: brightness(0.8); }
  50% { opacity: 0.9; filter: brightness(1); }
  100% { opacity: 0.7; filter: brightness(0.9); }
}
@keyframes tw2-moon {
  0%, 100% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-3px) scale(1.02); }
}
@keyframes tw2-battlements {
  0% { transform: scaleY(1); }
  100% { transform: scaleY(1.05); }
}
@keyframes tw2-flag {
  0%, 100% { transform: rotate(-30deg); }
  50% { transform: rotate(-20deg); }
}
@keyframes tw2-sentinel {
  0% { transform: scale(-1, 1) translateX(0); }
  100% { transform: scale(-1, 1) translateX(5px); }
}
@keyframes tw2-clock {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}

.scn-sentinel-challenge {
  background: linear-gradient(180deg, #1a0e08 0%, #2d1a0e 50%, #1c1008 100%),
              radial-gradient(ellipse at 20% 50%, #d46a2a 0%, transparent 60%),
              radial-gradient(ellipse at 80% 30%, #b3531a 0%, transparent 40%);
}
.scn-sentinel-challenge .sky-torch {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #0d0805 0%, #1f130b 80%);
  animation: sc3-sky 16s ease-in-out infinite alternate;
}
.scn-sentinel-challenge .wall-gate {
  position: absolute; bottom: 20%; left: 20%; right: 20%;
  height: 60%;
  background: linear-gradient(180deg, #2a1a0e 0%, #1a0f08 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.7);
}
.scn-sentinel-challenge .gate-arch {
  position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%);
  width: 80px; height: 120px;
  background: #0d0805;
  border-radius: 50% 50% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 0 30px 10px #b3531a;
}
.scn-sentinel-challenge .torch-left {
  position: absolute; bottom: 50%; left: 25%;
  width: 20px; height: 30px;
  background: radial-gradient(circle, #e08030 0%, #b3531a 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px #b3531a;
  animation: sc3-torch 2s ease-in-out infinite alternate;
}
.scn-sentinel-challenge .torch-right {
  position: absolute; bottom: 45%; right: 25%;
  width: 20px; height: 30px;
  background: radial-gradient(circle, #e08030 0%, #b3531a 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px #b3531a;
  animation: sc3-torch 2.5s ease-in-out infinite alternate reverse;
}
.scn-sentinel-challenge .sentinel-body {
  position: absolute; bottom: 32%; left: 40%;
  width: 20px; height: 60px;
  background: linear-gradient(180deg, #1a0f08 0%, #0d0805 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform: scale(1.2);
  animation: sc3-sentinel 4s ease-in-out infinite alternate;
}
.scn-sentinel-challenge .bertrand-silhouette {
  position: absolute; bottom: 30%; left: 55%;
  width: 22px; height: 55px;
  background: #0d0805;
  border-radius: 50% 40% 30% 30% / 60% 50% 40% 40%;
  animation: sc3-bertrand 6s ease-in-out infinite;
}
.scn-sentinel-challenge .sparks {
  position: absolute; top: 25%; left: 30%;
  width: 8px; height: 8px;
  background: #ff9933;
  border-radius: 50%;
  box-shadow: 0 0 8px 4px #ff9933;
  animation: sc3-sparks 1.5s linear infinite;
}
@keyframes sc3-sky {
  0% { opacity: 0.5; }
  100% { opacity: 0.9; }
}
@keyframes sc3-torch {
  0% { opacity: 0.7; transform: scale(0.8); }
  100% { opacity: 1; transform: scale(1.1); }
}
@keyframes sc3-sentinel {
  0% { transform: scale(1.2) translateX(0); }
  100% { transform: scale(1.2) translateX(3px); }
}
@keyframes sc3-bertrand {
  0%, 100% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(5px) rotate(5deg); }
}
@keyframes sc3-sparks {
  0% { transform: translate(0, 0); opacity: 1; }
  100% { transform: translate(-20px, -40px); opacity: 0; }
}

.scn-boastful-ugolaugh {
  background: linear-gradient(180deg, #1f130b 0%, #3a2214 40%, #1c1008 100%),
              radial-gradient(ellipse at 50% 60%, #d46a2a 0%, transparent 70%);
}
.scn-boastful-ugolaugh .bg-courtyard {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #2a1a0e 0%, #1a0f08 100%);
  border-radius: 0 0 50% 50% / 0 0 20% 20%;
}
.scn-boastful-ugolaugh .fire-pit {
  position: absolute; bottom: 20%; left: 30%; right: 30%;
  height: 40%;
  background: radial-gradient(ellipse at 50% 100%, #e08030 0%, #b3531a 40%, transparent 70%);
  mix-blend-mode: screen;
  animation: bu4-fire 3s ease-in-out infinite alternate;
}
.scn-boastful-ugolaugh .ugolaugh-figure {
  position: absolute; bottom: 25%; left: 35%;
  width: 30px; height: 60px;
  background: #1a0f08;
  border-radius: 50% 40% 40% 40% / 60% 50% 50% 40%;
  transform: rotate(10deg);
  animation: bu4-ugolaugh 3s ease-in-out infinite;
}
.scn-boastful-ugolaugh .bertrand-surly {
  position: absolute; bottom: 28%; left: 50%;
  width: 22px; height: 50px;
  background: #0d0805;
  border-radius: 40% 50% 30% 30% / 50% 60% 40% 40%;
  transform: rotate(-5deg);
  animation: bu4-bertrand 5s ease-in-out infinite alternate;
}
.scn-boastful-ugolaugh .fleeing-knave-1 {
  position: absolute; bottom: 35%; left: 60%;
  width: 14px; height: 30px;
  background: #2a1a0e;
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform: skewX(-10deg);
  animation: bu4-flee 4s ease-in-out infinite;
}
.scn-boastful-ugolaugh .fleeing-knave-2 {
  position: absolute; bottom: 32%; left: 68%;
  width: 12px; height: 28px;
  background: #3a2214;
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform: skewX(5deg);
  animation: bu4-flee 4.5s ease-in-out infinite reverse;
}
.scn-boastful-ugolaugh .torch-wall {
  position: absolute; bottom: 40%; left: 15%;
  width: 18px; height: 24px;
  background: radial-gradient(circle, #e08030 0%, #b3531a 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 15px #b3531a;
  animation: bu4-torch 2s ease-in-out infinite alternate;
}
.scn-boastful-ugolaugh .shadow-dance {
  position: absolute; bottom: 25%; left: 20%; right: 20%;
  height: 40%;
  background: radial-gradient(ellipse at 30% 50%, #0d0805 0%, transparent 70%);
  mix-blend-mode: multiply;
  animation: bu4-shadow 8s ease-in-out infinite alternate;
}
@keyframes bu4-fire {
  0% { opacity: 0.7; transform: scale(0.95); }
  100% { opacity: 1; transform: scale(1.05); }
}
@keyframes bu4-ugolaugh {
  0%, 100% { transform: rotate(10deg) translateY(0); }
  50% { transform: rotate(25deg) translateY(-3px); }
}
@keyframes bu4-bertrand {
  0% { transform: rotate(-5deg) translateX(0); }
  100% { transform: rotate(-2deg) translateX(4px); }
}
@keyframes bu4-flee {
  0% { transform: translateX(0) skewX(-10deg); opacity: 1; }
  100% { transform: translateX(30px) skewX(-10deg); opacity: 0.3; }
}
@keyframes bu4-torch {
  0% { opacity: 0.6; transform: scale(0.8); }
  100% { opacity: 1; transform: scale(1.2); }
}
@keyframes bu4-shadow {
  0% { opacity: 0.3; }
  100% { opacity: 0.7; }
}

.scn-blanche-wishes-for-emily {
  background: linear-gradient(180deg, #87CEEB 0%, #f0e68c 60%, #7ccd7c 100%), radial-gradient(ellipse at 80% 20%, #fff8dc 0%, transparent 70%);
}
.scn-blanche-wishes-for-emily .sky { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #87CEEB 0%, #b0e0e6 80%); animation: blw-sky 15s ease-in-out infinite alternate; }
.scn-blanche-wishes-for-emily .sun { position:absolute; top:8%; left:70%; width:60px; height:60px; background: radial-gradient(circle, #fff8dc 0%, #f0e68c 60%, transparent 75%); border-radius:50%; box-shadow: 0 0 80px 20px #f0e68c; animation: blw-sun 20s ease-in-out infinite; }
.scn-blanche-wishes-for-emily .meadow { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #7ccd7c 0%, #3cb371 100%); border-radius:30% 70% 0 0 / 40% 60% 0 0; animation: blw-meadow 12s ease-in-out infinite alternate; }
.scn-blanche-wishes-for-emily .tree-a { position:absolute; bottom:28%; left:15%; width:50px; height:120px; background: radial-gradient(ellipse at 50% 20%, #2e8b57 0%, #006400 100%); border-radius:50% 50% 20% 20%; animation: blw-tree-a 8s ease-in-out infinite alternate; }
.scn-blanche-wishes-for-emily .tree-b { position:absolute; bottom:30%; right:20%; width:40px; height:100px; background: radial-gradient(ellipse at 50% 20%, #3cb371 0%, #228b22 100%); border-radius:50% 50% 20% 20%; animation: blw-tree-b 10s ease-in-out infinite alternate; animation-delay: -3s; }
.scn-blanche-wishes-for-emily .figure { position:absolute; bottom:18%; left:40%; width:20px; height:40px; background: linear-gradient(180deg, #f5deb3 0%, #deb887 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: blw-figure 6s ease-in-out infinite; }
.scn-blanche-wishes-for-emily .path { position:absolute; bottom:15%; left:35%; right:35%; height:8px; background: #d2b48c; border-radius:50%; filter: blur(2px); animation: blw-path 20s linear infinite; }
.scn-blanche-wishes-for-emily .cloud-a { position:absolute; top:12%; left:20%; width:90px; height:20px; background: rgba(255,255,255,0.7); border-radius:50%; filter: blur(8px); animation: blw-cloud-a 40s linear infinite; }
.scn-blanche-wishes-for-emily .cloud-b { position:absolute; top:18%; right:10%; width:70px; height:15px; background: rgba(255,255,255,0.5); border-radius:50%; filter: blur(6px); animation: blw-cloud-b 50s linear infinite reverse; }

@keyframes blw-sky { 0%{opacity:0.8} 50%{opacity:1} 100%{opacity:0.7} }
@keyframes blw-sun { 0%{transform:scale(1) translateX(0)} 50%{transform:scale(1.05) translateY(-3px)} 100%{transform:scale(0.95) translateX(5px)} }
@keyframes blw-meadow { 0%{transform:translateY(0)} 50%{transform:translateY(-4px)} 100%{transform:translateY(0)} }
@keyframes blw-tree-a { 0%{transform:rotate(-2deg)} 50%{transform:rotate(0deg)} 100%{transform:rotate(2deg)} }
@keyframes blw-tree-b { 0%{transform:rotate(1deg) scale(1)} 50%{transform:rotate(-1deg) scale(1.02)} 100%{transform:rotate(2deg) scale(1)} }
@keyframes blw-figure { 0%{transform:translateX(0) translateY(0) rotate(-1deg)} 25%{transform:translateX(5px) translateY(-2px) rotate(1deg)} 50%{transform:translateX(10px) translateY(0) rotate(-1deg)} 75%{transform:translateX(5px) translateY(-1px) rotate(0deg)} 100%{transform:translateX(0) translateY(0) rotate(1deg)} }
@keyframes blw-path { 0%{opacity:0.6; transform:scaleX(0.9)} 50%{opacity:0.9; transform:scaleX(1.1)} 100%{opacity:0.6; transform:scaleX(0.9)} }
@keyframes blw-cloud-a { 0%{transform:translateX(-40px)} 100%{transform:translateX(120vw)} }
@keyframes blw-cloud-b { 0%{transform:translateX(0)} 100%{transform:translateX(-100vw)} }

.scn-second-visit-to-chateau {
  background: linear-gradient(180deg, #87CEEB 0%, #f0e68c 40%, #8fbc8f 100%), radial-gradient(ellipse at 60% 20%, #fff8dc 0%, transparent 60%);
}
.scn-second-visit-to-chateau .bg-sky { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #87CEEB 0%, #b0e0e6 80%); animation: svc-sky 12s ease-in-out infinite alternate; }
.scn-second-visit-to-chateau .chateau-body { position:absolute; bottom:25%; left:25%; right:25%; height:45%; background: linear-gradient(180deg, #d2b48c 0%, #a0522d 100%); border-radius:4% 4% 2% 2%; box-shadow: 0 10px 20px rgba(0,0,0,0.3); animation: svc-body 8s ease-in-out infinite; }
.scn-second-visit-to-chateau .tower-left { position:absolute; bottom:45%; left:23%; width:30px; height:80px; background: linear-gradient(180deg, #d2b48c 0%, #8b4513 100%); border-radius:20% 20% 10% 10%; animation: svc-tower 10s ease-in-out infinite; }
.scn-second-visit-to-chateau .tower-right { position:absolute; bottom:45%; right:23%; width:30px; height:80px; background: linear-gradient(180deg, #d2b48c 0%, #8b4513 100%); border-radius:20% 20% 10% 10%; animation: svc-tower 10s ease-in-out infinite reverse; animation-delay: -5s; }
.scn-second-visit-to-chateau .entrance { position:absolute; bottom:25%; left:44%; right:44%; height:25%; background: #3e2723; border-radius:50% 50% 10% 10%; box-shadow: inset 0 -5px 10px rgba(0,0,0,0.5); animation: svc-door 15s ease-in-out infinite; }
.scn-second-visit-to-chateau .window { position:absolute; bottom:55%; left:50%; width:12px; height:18px; transform:translateX(-50%); background: radial-gradient(circle, #fff8dc 0%, #f0e68c 70%); border-radius:15%; box-shadow: 0 0 15px 3px #f0e68c, 0 0 30px 6px rgba(240,230,140,0.4); animation: svc-window 4s ease-in-out infinite alternate; }
.scn-second-visit-to-chateau .win1 { left:35%; animation-delay: -1s; }
.scn-second-visit-to-chateau .win2 { left:62%; animation-delay: -3s; }
.scn-second-visit-to-chateau .figure { position:absolute; bottom:18%; left:42%; width:16px; height:36px; background: linear-gradient(180deg, #f5deb3 0%, #deb887 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: svc-figure 7s ease-in-out infinite; }
.scn-second-visit-to-chateau .shadow { position:absolute; bottom:15%; left:38%; right:38%; height:6px; background: rgba(0,0,0,0.3); border-radius:50%; filter: blur(3px); animation: svc-shadow 7s ease-in-out infinite; }

@keyframes svc-sky { 0%{opacity:0.8} 50%{opacity:1} 100%{opacity:0.7} }
@keyframes svc-body { 0%{transform:translateY(0)} 50%{transform:translateY(-2px)} 100%{transform:translateY(0)} }
@keyframes svc-tower { 0%{transform:scaleY(1) translateY(0)} 50%{transform:scaleY(1.03) translateY(-3px)} 100%{transform:scaleY(1) translateY(0)} }
@keyframes svc-door { 0%{transform:scaleX(1)} 50%{transform:scaleX(0.98) scaleY(1.02)} 100%{transform:scaleX(1)} }
@keyframes svc-window { 0%{opacity:0.7; box-shadow:0 0 10px 2px #f0e68c} 50%{opacity:1; box-shadow:0 0 25px 6px #f0e68c} 100%{opacity:0.8; box-shadow:0 0 15px 3px #f0e68c} }
@keyframes svc-figure { 0%{transform:translateX(0) translateY(0) rotate(-1deg)} 25%{transform:translateX(4px) translateY(-2px) rotate(1deg)} 50%{transform:translateX(8px) translateY(0) rotate(-1deg)} 75%{transform:translateX(4px) translateY(-1px) rotate(0deg)} 100%{transform:translateX(0) translateY(0) rotate(1deg)} }
@keyframes svc-shadow { 0%{transform:translateX(0) scaleX(0.8)} 25%{transform:translateX(4px) scaleX(0.9)} 50%{transform:translateX(8px) scaleX(0.8)} 75%{transform:translateX(4px) scaleX(0.9)} 100%{transform:translateX(0) scaleX(0.8)} }

.scn-souvenir-review {
  background: linear-gradient(180deg, #3e2c1d 0%, #5c4033 50%, #2d1a0e 100%), radial-gradient(ellipse at 50% 60%, #6b4c3b 0%, transparent 70%);
}
.scn-souvenir-review .wall-left { position:absolute; inset:0 50% 0 0; background: linear-gradient(180deg, #5c4033 0%, #3e2c1d 100%); animation: svr-wall 20s ease-in-out infinite alternate; }
.scn-souvenir-review .wall-right { position:absolute; inset:0 0 0 50%; background: linear-gradient(180deg, #5c4033 0%, #3e2c1d 100%); animation: svr-wall 20s ease-in-out infinite alternate-reverse; }
.scn-souvenir-review .table { position:absolute; bottom:15%; left:20%; right:20%; height:20%; background: linear-gradient(180deg, #8b5a2b 0%, #5c3a1e 100%); border-radius:5%; box-shadow: 0 8px 15px rgba(0,0,0,0.5); animation: svr-table 10s ease-in-out infinite; }
.scn-souvenir-review .box { position:absolute; bottom:28%; left:36%; right:36%; height:12%; background: linear-gradient(180deg, #a0522d 0%, #6b3a1a 100%); border-radius:10%; box-shadow: inset 0 2px 5px rgba(255,255,255,0.1), 0 4px 8px rgba(0,0,0,0.6); animation: svr-box 12s ease-in-out infinite; }
.scn-souvenir-review .letter { position:absolute; bottom:30%; left:42%; width:20px; height:28px; background: #f5deb3; border-radius:3px; transform:rotate(-15deg); box-shadow: 0 2px 6px rgba(0,0,0,0.3); animation: svr-letter 6s ease-in-out infinite; }
.scn-souvenir-review .lamp { position:absolute; bottom:35%; left:28%; width:10px; height:20px; background: radial-gradient(circle, #ffd700 0%, #b8860b 100%); border-radius:30%; box-shadow: 0 0 20px 8px #ffd700, 0 0 40px 15px rgba(255,215,0,0.3); animation: svr-lamp 3s ease-in-out infinite alternate; }
.scn-souvenir-review .figure { position:absolute; bottom:12%; left:20%; width:18px; height:40px; background: linear-gradient(180deg, #f5deb3 0%, #deb887 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: svr-figure 8s ease-in-out infinite; }
.scn-souvenir-review .glow { position:absolute; bottom:0; left:0; right:0; height:40%; background: radial-gradient(ellipse at 28% 40%, #ffd700 0%, transparent 70%); opacity:0.3; animation: svr-glow 4s ease-in-out infinite alternate; }

@keyframes svr-wall { 0%{opacity:0.8} 50%{opacity:1} 100%{opacity:0.9} }
@keyframes svr-table { 0%{transform:translateY(0)} 50%{transform:translateY(-2px)} 100%{transform:translateY(0)} }
@keyframes svr-box { 0%{transform:rotate(0deg)} 50%{transform:rotate(1deg) translateY(-1px)} 100%{transform:rotate(0deg)} }
@keyframes svr-letter { 0%{transform:rotate(-15deg) translateX(0)} 50%{transform:rotate(-12deg) translateX(2px) translateY(-2px)} 100%{transform:rotate(-16deg) translateX(0)} }
@keyframes svr-lamp { 0%{opacity:0.8; box-shadow:0 0 15px 5px #ffd700} 50%{opacity:1; box-shadow:0 0 30px 10px #ffd700} 100%{opacity:0.9; box-shadow:0 0 20px 6px #ffd700} }
@keyframes svr-figure { 0%{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(0deg)} 100%{transform:translateX(0) translateY(0) rotate(1deg)} }
@keyframes svr-glow { 0%{opacity:0.2} 50%{opacity:0.4} 100%{opacity:0.25} }

.scn-dorothee-notices-miniature {
  background: linear-gradient(180deg, #4a3728 0%, #6b4c3b 50%, #2d1a0e 100%), radial-gradient(ellipse at 40% 50%, #7a5c4a 0%, transparent 60%);
}
.scn-dorothee-notices-miniature .room-bg { position:absolute; inset:0; background: linear-gradient(135deg, #5c4033 0%, #3e2c1d 100%); animation: dnm-bg 20s ease-in-out infinite alternate; }
.scn-dorothee-notices-miniature .table { position:absolute; bottom:10%; left:25%; right:25%; height:20%; background: linear-gradient(180deg, #8b5a2b 0%, #5c3a1e 100%); border-radius:10%; box-shadow: 0 8px 20px rgba(0,0,0,0.6); animation: dnm-table 12s ease-in-out infinite; }
.scn-dorothee-notices-miniature .miniature { position:absolute; bottom:25%; left:44%; width:14px; height:20px; background: #d4a76a; border-radius:10%; border: 2px solid #b8860b; transform:rotate(5deg); box-shadow: 0 2px 6px rgba(0,0,0,0.4); animation: dnm-mini 7s ease-in-out infinite; }
.scn-dorothee-notices-miniature .figure-emily { position:absolute; bottom:8%; left:20%; width:18px; height:38px; background: linear-gradient(180deg, #f5deb3 0%, #deb887 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dnm-emily 8s ease-in-out infinite; }
.scn-dorothee-notices-miniature .figure-dorothee { position:absolute; bottom:8%; right:20%; width:22px; height:40px; background: linear-gradient(180deg, #d2b48c 0%, #a0522d 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dnm-dorothee 9s ease-in-out infinite; animation-delay: -2s; }
.scn-dorothee-notices-miniature .candle { position:absolute; bottom:30%; left:35%; width:6px; height:18px; background: linear-gradient(180deg, #f5f5dc 0%, #ffd700 100%); border-radius:20%; box-shadow: 0 0 15px 5px #ffd700; animation: dnm-candle 4s ease-in-out infinite alternate; }
.scn-dorothee-notices-miniature .candle-glow { position:absolute; bottom:25%; left:30%; right:30%; height:30%; background: radial-gradient(ellipse at 50% 100%, #ffd700 0%, transparent 70%); opacity:0.3; animation: dnm-glow 5s ease-in-out infinite alternate; }
.scn-dorothee-notices-miniature .shadow { position:absolute; bottom:0; left:0; right:0; height:15%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.6) 100%); animation: dnm-shadow 10s ease-in-out infinite; }

@keyframes dnm-bg { 0%{opacity:0.8} 50%{opacity:1} 100%{opacity:0.9} }
@keyframes dnm-table { 0%{transform:translateY(0)} 50%{transform:translateY(-2px)} 100%{transform:translateY(0)} }
@keyframes dnm-mini { 0%{transform:rotate(5deg) translateY(0)} 50%{transform:rotate(3deg) translateY(-2px)} 100%{transform:rotate(6deg) translateY(0)} }
@keyframes dnm-emily { 0%{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(0deg)} 100%{transform:translateX(0) translateY(0) rotate(1deg)} }
@keyframes dnm-dorothee { 0%{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(0deg)} 100%{transform:translateX(0) translateY(0) rotate(-1deg)} }
@keyframes dnm-candle { 0%{opacity:0.9; box-shadow:0 0 12px 3px #ffd700} 50%{opacity:1; box-shadow:0 0 25px 8px #ffd700} 100%{opacity:0.95; box-shadow:0 0 15px 4px #ffd700} }
@keyframes dnm-glow { 0%{opacity:0.2} 50%{opacity:0.4} 100%{opacity:0.25} }
@keyframes dnm-shadow { 0%{opacity:0.7} 50%{opacity:0.9} 100%{opacity:0.7} }

.scn-emilys-rambles {
  background: 
    linear-gradient(180deg, #f7d9a0 0%, #c4956a 30%, #5a3d2b 60%, #2a1a10 100%),
    radial-gradient(ellipse at 70% 20%, #ffe080, transparent 50%);
}
.scn-emilys-rambles .sky {
  position:absolute; inset:0 0 40% 0;
  background: linear-gradient(180deg, #ffeaaa 0%, #f7d9a0 50%, transparent 100%);
  animation: si-sk 8s ease-in-out infinite alternate;
}
.scn-emilys-rambles .trees-left {
  position:absolute; bottom:30%; left:-10%; width:50%; height:70%;
  background: linear-gradient(180deg, #3d5a2a 0%, #1e3a14 100%);
  border-radius: 30% 70% 0 0 / 60% 80% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,.4);
  animation: si-tl 12s ease-in-out infinite;
}
.scn-emilys-rambles .trees-right {
  position:absolute; bottom:25%; right:-15%; width:60%; height:75%;
  background: linear-gradient(180deg, #2e4a20 0%, #142a0e 100%);
  border-radius: 70% 30% 0 0 / 80% 60% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,.5);
  animation: si-tr 14s ease-in-out infinite;
}
.scn-emilys-rambles .path {
  position:absolute; bottom:0; left:20%; right:20%; height:25%;
  background: linear-gradient(180deg, #6a4e30 0%, #3f2c18 100%);
  border-radius: 30% 30% 0 0;
  box-shadow: inset 0 4px 12px rgba(0,0,0,.3);
  animation: si-pa 6s ease-in-out infinite alternate;
}
.scn-emilys-rambles .light-rays {
  position:absolute; top:10%; left:0; width:30%; height:60%;
  background: linear-gradient(135deg, rgba(255,255,200,0.4), transparent 60%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  animation: si-lr 10s ease-in-out infinite alternate;
}
.scn-emilys-rambles .leaves {
  position:absolute; top:15%; left:30%; width:80px; height:20px;
  background: radial-gradient(circle at 20% 50%, #8a7040 0%, transparent 70%);
  filter: blur(4px);
  animation: si-lv 25s linear infinite;
}
.scn-emilys-rambles .figure {
  position:absolute; bottom:10%; left:45%; width:20px; height:50px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: si-fi 4s ease-in-out infinite;
}
@keyframes si-sk { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes si-tl { 0% { transform: translateX(0) } 50% { transform: translateX(-5px) } 100% { transform: translateX(0) } }
@keyframes si-tr { 0% { transform: translateX(0) } 50% { transform: translateX(5px) } 100% { transform: translateX(0) } }
@keyframes si-pa { 0% { transform: scaleY(1) } 50% { transform: scaleY(.95) } 100% { transform: scaleY(1) } }
@keyframes si-lr { 0% { opacity:.3; transform: rotate(0deg) } 50% { opacity:.6; transform: rotate(2deg) } 100% { opacity:.4; transform: rotate(-1deg) } }
@keyframes si-lv { 0% { transform: translateX(-40px) translateY(0) } 25% { transform: translateX(20px) translateY(8px) } 50% { transform: translateX(100px) translateY(-5px) } 75% { transform: translateX(180px) translateY(2px) } 100% { transform: translateX(300px) translateY(0) } }
@keyframes si-fi { 0% { transform: translateX(0) translateY(0) rotate(-1deg) } 25% { transform: translateX(8px) translateY(-1px) rotate(1.5deg) } 50% { transform: translateX(16px) translateY(0) rotate(-0.5deg) } 75% { transform: translateX(24px) translateY(-1px) rotate(1deg) } 100% { transform: translateX(32px) translateY(0) rotate(0) } }

.scn-fishing-house-retreat {
  background: 
    linear-gradient(180deg, #b8d4b0 0%, #8bb58a 30%, #5a7a5a 60%, #2a4a2a 100%),
    radial-gradient(ellipse at 50% 0%, #c8e0c0, transparent 60%);
}
.scn-fishing-house-retreat .sky {
  position:absolute; inset:0 0 50% 0;
  background: linear-gradient(180deg, #d8e8d0 0%, #a8c8a0 60%, transparent 100%);
  animation: fh-sk 10s ease-in-out infinite alternate;
}
.scn-fishing-house-retreat .hills {
  position:absolute; bottom:35%; left:-10%; right:-10%; height:30%;
  background: linear-gradient(180deg, #4a6e4a 0%, #2a4a2a 100%);
  border-radius: 40% 50% 0 0 / 70% 60% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.3);
  animation: fh-hl 20s ease-in-out infinite;
}
.scn-fishing-house-retreat .stream {
  position:absolute; bottom:18%; left:0; right:0; height:22%;
  background: linear-gradient(180deg, #7ea8b0 0%, #4a7a8a 50%, #2a5a6a 100%);
  border-radius: 0 0 30% 30%;
  animation: fh-st 8s ease-in-out infinite alternate;
}
.scn-fishing-house-retreat .house {
  position:absolute; bottom:28%; left:35%; width:120px; height:80px;
  background: linear-gradient(180deg, #c0a060 0%, #a08040 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 0 8px 16px rgba(0,0,0,.4);
  animation: fh-ho 6s ease-in-out infinite;
}
.scn-fishing-house-retreat .trees {
  position:absolute; bottom:20%; left:0; width:100%; height:50%;
  background: 
    radial-gradient(circle at 20% 80%, #2a5a2a 0%, transparent 30%),
    radial-gradient(circle at 80% 70%, #3a6a3a 0%, transparent 40%);
  animation: fh-tr 15s ease-in-out infinite alternate;
}
.scn-fishing-house-retreat .reflection {
  position:absolute; bottom:10%; left:28%; width:140px; height:60px;
  background: linear-gradient(180deg, rgba(160,128,64,0.5) 0%, transparent 100%);
  filter: blur(6px);
  animation: fh-re 12s ease-in-out infinite alternate;
}
.scn-fishing-house-retreat .sunlight {
  position:absolute; top:10%; left:20%; width:40%; height:10%;
  background: radial-gradient(ellipse, rgba(255,255,180,0.6), transparent 60%);
  filter: blur(10px);
  animation: fh-su 8s ease-in-out infinite alternate;
}
@keyframes fh-sk { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes fh-hl { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes fh-st { 0% { opacity:.7; transform: scaleY(1) } 50% { opacity:.9; transform: scaleY(1.02) } 100% { opacity:.75; transform: scaleY(1) } }
@keyframes fh-ho { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-3px) } }
@keyframes fh-tr { 0% { opacity:.6; transform: scale(.98) } 50% { opacity:.8; transform: scale(1) } 100% { opacity:.7; transform: scale(.99) } }
@keyframes fh-re { 0% { opacity:.3; transform: translateX(0) } 50% { opacity:.5; transform: translateX(-4px) } 100% { opacity:.35; transform: translateX(0) } }
@keyframes fh-su { 0% { opacity:.4; transform: rotate(0deg) } 50% { opacity:.7; transform: rotate(3deg) } 100% { opacity:.5; transform: rotate(-2deg) } }

.scn-st-aubert-s-fishing-house {
  background: 
    linear-gradient(180deg, #4a3a5a 0%, #6a4a4a 20%, #c08060 40%, #e0a070 60%, #7a5a3a 80%, #1a1a2a 100%),
    radial-gradient(ellipse at 30% 100%, #2a1a1a, transparent 60%);
}
.scn-st-aubert-s-fishing-house .sky-dusk {
  position:absolute; inset:0 0 45% 0;
  background: linear-gradient(180deg, #6a5a8a 0%, #b08060 50%, #e0a070 80%, transparent 100%);
  animation: sa-sk 12s ease-in-out infinite alternate;
}
.scn-st-aubert-s-fishing-house .hills-dusk {
  position:absolute; bottom:30%; left:-10%; right:-10%; height:35%;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 0 0 / 60% 60% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,.6);
  animation: sa-hl 18s ease-in-out infinite;
}
.scn-st-aubert-s-fishing-house .house-dusk {
  position:absolute; bottom:25%; left:35%; width:130px; height:90px;
  background: linear-gradient(180deg, #5a3a2a 0%, #2a1a1a 100%);
  border-radius: 10% 10% 4% 4%;
  box-shadow: 0 10px 20px rgba(0,0,0,.5);
  animation: sa-ho 9s ease-in-out infinite;
}
.scn-st-aubert-s-fishing-house .window-glow {
  position:absolute; bottom:35%; left:45%; width:20px; height:24px;
  background: radial-gradient(circle, #ffd080 0%, #d09050 70%);
  border-radius: 20%;
  box-shadow: 0 0 30px 8px #d09050, 0 0 60px 16px rgba(208,144,80,.4);
  animation: sa-gl 3s ease-in-out infinite alternate;
}
.scn-st-aubert-s-fishing-house .figure-dusk {
  position:absolute; bottom:20%; left:50%; width:18px; height:40px;
  background: linear-gradient(180deg, #0e0e1a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sa-fi 5s ease-in-out infinite;
}
.scn-st-aubert-s-fishing-house .nightingale {
  position:absolute; top:15%; right:20%; width:30px; height:12px;
  background: radial-gradient(circle at 30% 50%, #3a2a1a, transparent 60%);
  filter: blur(3px);
  animation: sa-ni 4s ease-in-out infinite alternate;
}
.scn-st-aubert-s-fishing-house .bush {
  position:absolute; bottom:18%; left:15%; width:100px; height:60px;
  background: radial-gradient(ellipse at 50% 100%, #2a3a1a, transparent 60%);
  filter: blur(5px);
  animation: sa-bu 20s linear infinite;
}
@keyframes sa-sk { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes sa-hl { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes sa-ho { 0%,100% { transform: scale(1) } 50% { transform: scale(1.02) } }
@keyframes sa-gl { 0% { box-shadow: 0 0 20px 4px #d09050, 0 0 40px 8px rgba(208,144,80,.3); opacity:.8 } 50% { box-shadow: 0 0 40px 12px #ffc070, 0 0 80px 20px rgba(255,192,112,.5); opacity:1 } 100% { box-shadow: 0 0 25px 6px #d09050, 0 0 50px 12px rgba(208,144,80,.35); opacity:.85 } }
@keyframes sa-fi { 0% { transform: translateY(0) rotate(-0.5deg) } 25% { transform: translateY(-2px) rotate(0.5deg) } 50% { transform: translateY(0) rotate(0deg) } 75% { transform: translateY(-1px) rotate(-0.5deg) } 100% { transform: translateY(0) rotate(0.5deg) } }
@keyframes sa-ni { 0% { transform: translateX(0) translateY(0) } 50% { transform: translateX(-8px) translateY(4px) } 100% { transform: translateX(6px) translateY(-2px) } }
@keyframes sa-bu { 0% { transform: scale(.95) } 50% { transform: scale(1.05) } 100% { transform: scale(.95) } }

.scn-item-pencilled-lines {
  background: 
    linear-gradient(180deg, #1a1a2a 0%, #2a1a1a 30%, #3a2a1a 60%, #1a0e0a 100%),
    radial-gradient(ellipse at 50% 50%, #3a2a2a, transparent 70%);
}
.scn-item-pencilled-lines .wall {
  position:absolute; inset:0;
  background: linear-gradient(135deg, #2a1e14 0%, #1a120e 50%, #2a1e14 100%);
  animation: ip-wa 20s ease-in-out infinite alternate;
}
.scn-item-pencilled-lines .desk {
  position:absolute; bottom:10%; left:10%; right:10%; height:30%;
  background: linear-gradient(180deg, #4a3622 0%, #2a1e14 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: inset 0 6px 20px rgba(0,0,0,.5);
  animation: ip-de 8s ease-in-out infinite alternate;
}
.scn-item-pencilled-lines .paper {
  position:absolute; bottom:20%; left:20%; width:60%; height:35%;
  background: radial-gradient(circle at 50% 50%, #6a5a3a, #3a2a1a 70%);
  border-radius: 2%;
  box-shadow: 0 4px 8px rgba(0,0,0,.6);
  transform: rotate(-1deg);
  animation: ip-pa 6s ease-in-out infinite alternate;
}
.scn-item-pencilled-lines .pencil {
  position:absolute; bottom:28%; left:30%; width:50px; height:6px;
  background: linear-gradient(90deg, #5a3a2a 0%, #3a2a1a 50%, #1a1a1a 100%);
  border-radius: 2px;
  transform: rotate(25deg);
  animation: ip-pe 4s ease-in-out infinite;
}
.scn-item-pencilled-lines .hand {
  position:absolute; bottom:22%; left:25%; width:30px; height:40px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%;
  transform: rotate(10deg);
  animation: ip-ha 3s ease-in-out infinite;
}
.scn-item-pencilled-lines .spectral-figure {
  position:absolute; top:5%; left:30%; width:40%; height:70%;
  background: radial-gradient(ellipse at 50% 50%, rgba(180,160,140,0.2), transparent 60%);
  filter: blur(10px);
  animation: ip-sf 7s ease-in-out infinite alternate;
}
.scn-item-pencilled-lines .shadow {
  position:absolute; bottom:0; left:0; right:0; height:20%;
  background: linear-gradient(180deg, transparent 0%, #0a060a 100%);
  animation: ip-sh 5s ease-in-out infinite alternate;
}
@keyframes ip-wa { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.95 } }
@keyframes ip-de { 0% { transform: scaleY(1) } 50% { transform: scaleY(.98) } 100% { transform: scaleY(1) } }
@keyframes ip-pa { 0% { transform: rotate(-1deg) } 50% { transform: rotate(1deg) } 100% { transform: rotate(-0.5deg) } }
@keyframes ip-pe { 0% { transform: rotate(25deg) translateX(0) } 25% { transform: rotate(20deg) translateX(5px) } 50% { transform: rotate(25deg) translateX(10px) } 75% { transform: rotate(30deg) translateX(5px) } 100% { transform: rotate(25deg) translateX(0) } }
@keyframes ip-ha { 0% { transform: rotate(10deg) translateY(0) } 50% { transform: rotate(8deg) translateY(-3px) } 100% { transform: rotate(12deg) translateY(0) } }
@keyframes ip-sf { 0% { opacity:.2; transform: translateY(0) } 50% { opacity:.4; transform: translateY(-10px) } 100% { opacity:.25; transform: translateY(0) } }
@keyframes ip-sh { 0% { opacity:.5 } 50% { opacity:.7 } 100% { opacity:.55 } }

.scn-picture-chamber { background: linear-gradient(180deg, #1a1410 0%, #2a1e18 35%, #1a1410 70%, #0d0a08 100%), radial-gradient(ellipse at 30% 40%, #3a2a1a 0%, transparent 70%); }
.scn-picture-chamber .wall-bg { position:absolute; inset:0; background: linear-gradient(135deg, #2a1e18 0%, #1a1410 50%, #0d0a08 100%); animation: pc-wall 20s ease-in-out infinite alternate; }
.scn-picture-chamber .wall-shadow { position:absolute; inset:5% 10% 15% 5%; background: linear-gradient(135deg, rgba(0,0,0,.6) 0%, transparent 60%); animation: pc-shadow 15s ease-in-out infinite alternate; }
.scn-picture-chamber .picture-frame { position:absolute; top:15%; left:25%; width:50%; height:55%; border:6px solid #5a3a2a; border-radius:4px; background: linear-gradient(135deg, #4a2a1a 0%, #3a1a0a 100%); box-shadow: inset 0 0 30px rgba(0,0,0,.8), 0 8px 24px rgba(0,0,0,.6); animation: pc-frame 8s ease-in-out infinite alternate; }
.scn-picture-chamber .battle-scene { position:absolute; top:18%; left:28%; width:44%; height:49%; background: linear-gradient(180deg, #3a2a1a 0%, #5a3a2a 30%, #4a2a1a 60%, #2a1a0a 100%), radial-gradient(ellipse at 50% 40%, #7a5a3a 0%, transparent 60%); border-radius:2px; animation: pc-battle 12s ease-in-out infinite alternate; }
.scn-picture-chamber .soldier-figure { position:absolute; top:45%; left:40%; width:8%; height:30%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius:40% 40% 30% 30% / 50% 50% 30% 30%; transform: rotate(-10deg); box-shadow: -2px 0 6px rgba(0,0,0,.5); animation: pc-soldier 6s ease-in-out infinite alternate; }
.scn-picture-chamber .light-source { position:absolute; bottom:25%; left:12%; width:4%; height:6%; background: radial-gradient(circle, #ffd080 0%, #b08040 50%, transparent 100%); border-radius:50%; box-shadow: 0 0 40px 20px rgba(255,208,128,.4), 0 0 80px 40px rgba(255,208,128,.2); animation: pc-light 4s ease-in-out infinite alternate; }
.scn-picture-chamber .light-beam { position:absolute; top:20%; left:12%; width:30%; height:60%; background: linear-gradient(135deg, rgba(255,208,128,.1) 0%, transparent 100%); transform: rotate(-15deg); animation: pc-beam 5s ease-in-out infinite alternate; }
.scn-picture-chamber .dust-motes { position:absolute; inset:0; background: radial-gradient(circle at 15% 40%, rgba(255,208,128,.15) 0%, transparent 50%), radial-gradient(circle at 25% 50%, rgba(255,208,128,.1) 0%, transparent 40%); animation: pc-dust 30s linear infinite; }
@keyframes pc-wall { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes pc-shadow { 0% { transform: scale(1) } 50% { transform: scale(1.02) } 100% { transform: scale(.98) } }
@keyframes pc-frame { 0% { box-shadow: inset 0 0 30px rgba(0,0,0,.8), 0 8px 24px rgba(0,0,0,.6) } 50% { box-shadow: inset 0 0 40px rgba(0,0,0,.9), 0 12px 32px rgba(0,0,0,.7) } 100% { box-shadow: inset 0 0 25px rgba(0,0,0,.7), 0 6px 20px rgba(0,0,0,.5) } }
@keyframes pc-battle { 0% { opacity:.7 } 50% { opacity:.85 } 100% { opacity:.7 } }
@keyframes pc-soldier { 0% { transform: rotate(-10deg) translateY(0) } 50% { transform: rotate(-8deg) translateY(-2px) } 100% { transform: rotate(-12deg) translateY(0) } }
@keyframes pc-light { 0% { opacity:.8; transform: scale(1) } 50% { opacity:1; transform: scale(1.1) } 100% { opacity:.85; transform: scale(.95) } }
@keyframes pc-beam { 0% { opacity:.3 } 50% { opacity:.5 } 100% { opacity:.3 } }
@keyframes pc-dust { 0% { background-position: 0% 0% } 100% { background-position: 100% 100% } }

.scn-veiled-picture-found { background: linear-gradient(180deg, #0d0a08 0%, #1a1410 30%, #0d0a08 70%, #050303 100%), radial-gradient(ellipse at 40% 45%, #1a1410 0%, transparent 80%); }
.scn-veiled-picture-found .wall-dark { position:absolute; inset:0; background: linear-gradient(135deg, #0d0a08 0%, #1a1410 40%, #0d0a08 100%); animation: vpf-wall 25s ease-in-out infinite alternate; }
.scn-veiled-picture-found .wall-glow { position:absolute; inset:10% 15% 20% 10%; background: radial-gradient(ellipse at 30% 40%, rgba(80,60,40,.15) 0%, transparent 70%); animation: vpf-glow 12s ease-in-out infinite alternate; }
.scn-veiled-picture-found .picture-frame { position:absolute; top:12%; left:28%; width:44%; height:56%; border:5px solid #3a2a1a; border-radius:3px; background: #1a0a00; box-shadow: inset 0 0 40px rgba(0,0,0,.9), 0 6px 20px rgba(0,0,0,.7); animation: vpf-frame 8s ease-in-out infinite alternate; }
.scn-veiled-picture-found .veil { position:absolute; top:12%; left:28%; width:44%; height:56%; background: linear-gradient(180deg, #0a0505 0%, #1a0a08 40%, #0a0505 100%); border-radius:2px; box-shadow: 0 0 30px rgba(0,0,0,.8), inset 0 0 20px rgba(0,0,0,.6); animation: vpf-veil 6s ease-in-out infinite alternate; }
.scn-veiled-picture-found .veil-fold { position:absolute; top:20%; left:35%; width:30%; height:40%; background: linear-gradient(135deg, #0d0a08 0%, #1a1410 50%, #0d0a08 100%); border-radius:60% 40% 50% 50% / 50% 40% 60% 50%; transform: rotate(-5deg); box-shadow: 0 4px 12px rgba(0,0,0,.5); animation: vpf-fold 10s ease-in-out infinite alternate; }
.scn-veiled-picture-found .light-spot { position:absolute; bottom:20%; left:15%; width:5%; height:8%; background: radial-gradient(circle, #c09050 0%, #805020 40%, transparent 100%); border-radius:50%; box-shadow: 0 0 50px 30px rgba(192,144,80,.3), 0 0 100px 60px rgba(192,144,80,.1); animation: vpf-spot 4s ease-in-out infinite alternate; }
.scn-veiled-picture-found .shadow-hand { position:absolute; bottom:25%; left:20%; width:12%; height:18%; background: linear-gradient(180deg, #0a0505 0%, #050303 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(20deg) scale(.9); box-shadow: -4px 0 8px rgba(0,0,0,.4); animation: vpf-hand 5s ease-in-out infinite alternate; }
.scn-veiled-picture-found .floor { position:absolute; bottom:0; left:0; right:0; height:15%; background: linear-gradient(180deg, #1a1410 0%, #0d0a08 100%); box-shadow: inset 0 8px 20px rgba(0,0,0,.5); animation: vpf-floor 20s ease-in-out infinite alternate; }
@keyframes vpf-wall { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes vpf-glow { 0% { opacity:.4 } 50% { opacity:.6 } 100% { opacity:.3 } }
@keyframes vpf-frame { 0% { box-shadow: inset 0 0 40px rgba(0,0,0,.9), 0 6px 20px rgba(0,0,0,.7) } 50% { box-shadow: inset 0 0 50px rgba(0,0,0,1), 0 8px 28px rgba(0,0,0,.8) } 100% { box-shadow: inset 0 0 35px rgba(0,0,0,.8), 0 4px 16px rgba(0,0,0,.6) } }
@keyframes vpf-veil { 0% { opacity:.9; transform: translateY(0) } 50% { opacity:.95; transform: translateY(-2px) } 100% { opacity:.85; transform: translateY(0) } }
@keyframes vpf-fold { 0% { transform: rotate(-5deg) scaleY(1) } 50% { transform: rotate(-3deg) scaleY(1.05) } 100% { transform: rotate(-7deg) scaleY(.95) } }
@keyframes vpf-spot { 0% { opacity:.7; transform: scale(1) } 50% { opacity:.9; transform: scale(1.15) } 100% { opacity:.75; transform: scale(.9) } }
@keyframes vpf-hand { 0% { transform: rotate(20deg) scale(.9) } 50% { transform: rotate(22deg) scale(1) } 100% { transform: rotate(18deg) scale(.85) } }
@keyframes vpf-floor { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }

.scn-annette-fears-veil { background: linear-gradient(180deg, #0d0a08 0%, #1a1410 40%, #0d0a08 80%, #050303 100%), radial-gradient(ellipse at 60% 45%, #1a1410 0%, transparent 70%); }
.scn-annette-fears-veil .corridor-bg { position:absolute; inset:0; background: linear-gradient(135deg, #0d0a08 0%, #1a1410 40%, #0d0a08 100%); animation: afv-bg 30s ease-in-out infinite alternate; }
.scn-annette-fears-veil .corridor-shadow { position:absolute; inset:5% 20% 10% 5%; background: linear-gradient(135deg, rgba(0,0,0,.7) 0%, transparent 50%); animation: afv-shadow 18s ease-in-out infinite alternate; }
.scn-annette-fears-veil .picture-frame { position:absolute; top:12%; left:55%; width:38%; height:48%; border:5px solid #3a2a1a; border-radius:3px; background: #1a0a00; box-shadow: inset 0 0 30px rgba(0,0,0,.9), 0 6px 20px rgba(0,0,0,.7); animation: afv-frame 10s ease-in-out infinite alternate; }
.scn-annette-fears-veil .veil-hanging { position:absolute; top:12%; left:55%; width:38%; height:48%; background: linear-gradient(180deg, #0a0505 0%, #1a0a08 40%, #0a0505 100%); border-radius:2px; box-shadow: 0 0 20px rgba(0,0,0,.7), inset 0 0 30px rgba(0,0,0,.8); animation: afv-veil 8s ease-in-out infinite alternate; }
.scn-annette-fears-veil .annette-figure { position:absolute; bottom:20%; left:15%; width:14%; height:38%; background: linear-gradient(180deg, #1a1410 0%, #0d0a08 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-15deg) translateX(-10px); box-shadow: -2px 0 6px rgba(0,0,0,.4); animation: afv-annette 4s ease-in-out infinite alternate; }
.scn-annette-fears-veil .annette-shadow { position:absolute; bottom:20%; left:10%; width:20%; height:10%; background: radial-gradient(ellipse, rgba(0,0,0,.5) 0%, transparent 100%); transform: rotate(-10deg); animation: afv-shadow-fig 5s ease-in-out infinite alternate; }
.scn-annette-fears-veil .light-moving { position:absolute; bottom:25%; left:20%; width:4%; height:6%; background: radial-gradient(circle, #c09050 0%, #805020 40%, transparent 100%); border-radius:50%; box-shadow: 0 0 40px 20px rgba(192,144,80,.4), 0 0 80px 40px rgba(192,144,80,.2); animation: afv-light 3s ease-in-out infinite alternate; }
.scn-annette-fears-veil .doorway { position:absolute; top:0; right:0; width:25%; height:100%; background: linear-gradient(180deg, #0a0505 0%, #0d0a08 60%, #050303 100%); box-shadow: inset -10px 0 20px rgba(0,0,0,.8); animation: afv-door 20s ease-in-out infinite alternate; }
@keyframes afv-bg { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes afv-shadow { 0% { transform: scale(1) } 50% { transform: scale(1.03) } 100% { transform: scale(.97) } }
@keyframes afv-frame { 0% { box-shadow: inset 0 0 30px rgba(0,0,0,.9), 0 6px 20px rgba(0,0,0,.7) } 50% { box-shadow: inset 0 0 40px rgba(0,0,0,1), 0 8px 28px rgba(0,0,0,.8) } 100% { box-shadow: inset 0 0 25px rgba(0,0,0,.8), 0 4px 16px rgba(0,0,0,.6) } }
@keyframes afv-veil { 0% { opacity:.9; transform: translateY(0) } 50% { opacity:.95; transform: translateY(-3px) } 100% { opacity:.85; transform: translateY(0) } }
@keyframes afv-annette { 0% { transform: rotate(-15deg) translateX(-10px) } 50% { transform: rotate(-12deg) translateX(-15px) } 100% { transform: rotate(-18deg) translateX(-5px) } }
@keyframes afv-shadow-fig { 0% { opacity:.5; transform: scale(1) } 50% { opacity:.7; transform: scale(1.1) } 100% { opacity:.4; transform: scale(.9) } }
@keyframes afv-light { 0% { transform: translateY(0) scale(1); opacity:.8 } 50% { transform: translateY(-5px) scale(1.15); opacity:1 } 100% { transform: translateY(3px) scale(.9); opacity:.7 } }
@keyframes afv-door { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }

.scn-annette-hints-secret { background: linear-gradient(180deg, #0d0a08 0%, #1a1410 35%, #0d0a08 75%, #050303 100%), radial-gradient(ellipse at 50% 45%, #1a1410 0%, transparent 80%); }
.scn-annette-hints-secret .hall-bg { position:absolute; inset:0; background: linear-gradient(135deg, #0d0a08 0%, #1a1410 50%, #0d0a08 100%); animation: ahs-bg 28s ease-in-out infinite alternate; }
.scn-annette-hints-secret .hall-shadow { position:absolute; inset:5% 10% 15% 15%; background: linear-gradient(180deg, rgba(0,0,0,.6) 0%, transparent 60%); animation: ahs-shadow 16s ease-in-out infinite alternate; }
.scn-annette-hints-secret .emily-figure { position:absolute; bottom:22%; left:25%; width:13%; height:36%; background: linear-gradient(180deg, #2a1e18 0%, #1a1410 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(5deg); box-shadow: -2px 0 6px rgba(0,0,0,.4), 0 0 20px rgba(200,160,100,.15); animation: ahs-emily 6s ease-in-out infinite alternate; }
.scn-annette-hints-secret .annette-figure { position:absolute; bottom:20%; left:55%; width:14%; height:38%; background: linear-gradient(180deg, #1a1410 0%, #0d0a08 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-12deg) scale(.95); box-shadow: -2px 0 6px rgba(0,0,0,.4); animation: ahs-annette 5s ease-in-out infinite alternate; }
.scn-annette-hints-secret .emily-arm { position:absolute; bottom:38%; left:30%; width:8%; height:16%; background: linear-gradient(180deg, #2a1e18 0%, #1a1410 100%); border-radius:40% 40% 30% 30% / 50% 50% 30% 30%; transform: rotate(-20deg); transform-origin: top center; animation: ahs-arm-e 4s ease-in-out infinite alternate; }
.scn-annette-hints-secret .annette-arm { position:absolute; bottom:36%; left:62%; width:7%; height:14%; background: linear-gradient(180deg, #1a1410 0%, #0d0a08 100%); border-radius:40% 40% 30% 30% / 50% 50% 30% 30%; transform: rotate(25deg) scale(.9); transform-origin: top center; animation: ahs-arm-a 4s ease-in-out infinite alternate-reverse; }
.scn-annette-hints-secret .light-source { position:absolute; bottom:25%; left:40%; width:3%; height:5%; background: radial-gradient(circle, #c09050 0%, #805020 40%, transparent 100%); border-radius:50%; box-shadow: 0 0 30px 15px rgba(192,144,80,.3), 0 0 60px 30px rgba(192,144,80,.15); animation: ahs-light 5s ease-in-out infinite alternate; }
.scn-annette-hints-secret .floor-tiles { position:absolute; bottom:0; left:0; right:0; height:18%; background: repeating-linear-gradient(90deg, #1a1410 0px, #1a1410 40px, #0d0a08 40px, #0d0a08 80px); box-shadow: inset 0 8px 20px rgba(0,0,0,.5); animation: ahs-floor 22s ease-in-out infinite alternate; }
@keyframes ahs-bg { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes ahs-shadow { 0% { transform: scale(1) } 50% { transform: scale(1.02) } 100% { transform: scale(.98) } }
@keyframes ahs-emily { 0% { transform: rotate(5deg) translateY(0) } 50% { transform: rotate(3deg) translateY(-2px) } 100% { transform: rotate(7deg) translateY(0) } }
@keyframes ahs-annette { 0% { transform: rotate(-12deg) scale(.95) } 50% { transform: rotate(-10deg) scale(1) } 100% { transform: rotate(-14deg) scale(.9) } }
@keyframes ahs-arm-e { 0% { transform: rotate(-20deg) } 50% { transform: rotate(-15deg) } 100% { transform: rotate(-25deg) } }
@keyframes ahs-arm-a { 0% { transform: rotate(25deg) scale(.9) } 50% { transform: rotate(20deg) scale(1) } 100% { transform: rotate(30deg) scale(.85) } }
@keyframes ahs-light { 0% { opacity:.7; transform: scale(1) } 50% { opacity:.9; transform: scale(1.12) } 100% { opacity:.75; transform: scale(.9) } }
@keyframes ahs-floor { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }

.scn-emily-relieved {
  background: linear-gradient(180deg, #f9e9d0 0%, #e4c8a0 40%, #c9a87a 100%),
              radial-gradient(ellipse at 70% 30%, #fff5e0 0%, transparent 60%);
}
.scn-emily-relieved .window-frame {
  position:absolute; inset: 15% 10% 25% 10%;
  background: linear-gradient(135deg, #b8986a 0%, #8a6f48 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,.2);
}
.scn-emily-relieved .sunbeam {
  position:absolute; top: 20%; left: 20%; width: 60%; height: 70%;
  background: linear-gradient(135deg, rgba(255,250,220,.5) 0%, rgba(255,240,200,.2) 40%, transparent 60%);
  filter: blur(10px);
  animation: er-sun 8s ease-in-out infinite alternate;
}
.scn-emily-relieved .sunbeam-a { opacity: .6; }
.scn-emily-relieved .sunbeam-b { transform: rotate(15deg); animation-delay: -4s; }
.scn-emily-relieved .chair {
  position:absolute; bottom: 26%; left: 48%; width: 60px; height: 80px;
  background: linear-gradient(180deg, #7a5e3a 0%, #4d381e 100%);
  border-radius: 20% 20% 10% 10%;
  transform: translateX(-50%);
}
.scn-emily-relieved .figure-sitting {
  position:absolute; bottom: 34%; left: 48%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #f0d5b0 0%, #dbb58a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: er-breathe 4s ease-in-out infinite;
}
.scn-emily-relieved .vase {
  position:absolute; bottom: 30%; left: 60%; width: 16px; height: 34px;
  background: linear-gradient(180deg, #a0794a 0%, #6b4f2a 100%);
  border-radius: 40% 40% 10% 10%;
  transform: rotate(5deg);
}
.scn-emily-relieved .bloom {
  position:absolute; bottom: 52%; left: 62%; width: 12px; height: 12px;
  background: radial-gradient(circle, #f5d0a0 0%, #e8b870 80%);
  border-radius: 50%;
  animation: er-sway 3s ease-in-out infinite alternate;
}
.scn-emily-relieved .bloom-a { left: 60%; animation-delay: -1s; }
.scn-emily-relieved .bloom-b { left: 64%; width: 8px; height: 8px; animation-delay: -2s; }
@keyframes er-sun {
  0% { opacity: .5; transform: scale(1) translateX(0); }
  50% { opacity: .9; transform: scale(1.05) translateX(10px); }
  100% { opacity: .6; transform: scale(1) translateX(20px); }
}
@keyframes er-breathe {
  0% { transform: translateX(-50%) scale(1); }
  50% { transform: translateX(-50%) scale(1.02) translateY(-2px); }
  100% { transform: translateX(-50%) scale(1); }
}
@keyframes er-sway {
  0% { transform: rotate(-5deg); }
  50% { transform: rotate(5deg); }
  100% { transform: rotate(-3deg); }
}

.scn-emily-attempts-drawing {
  background: linear-gradient(180deg, #fef7e8 0%, #f2e1c0 40%, #dcc29a 100%),
              radial-gradient(ellipse at 80% 20%, #fffce6 0%, transparent 50%);
}
.scn-emily-attempts-drawing .window-view {
  position:absolute; inset: 10% 5% 40% 5%;
  background: linear-gradient(180deg, #b8d4e8 0%, #8bbae0 50%, #5f9bc8 100%);
  border-radius: 8px;
  box-shadow: inset 0 0 30px rgba(0,0,0,.15);
}
.scn-emily-attempts-drawing .desk {
  position:absolute; bottom: 22%; left: 10%; right: 30%; height: 18%;
  background: linear-gradient(180deg, #bc9c6e 0%, #8a6f48 100%);
  border-radius: 6px 6px 0 0;
  box-shadow: 0 4px 12px rgba(0,0,0,.2);
}
.scn-emily-attempts-drawing .chair-desk {
  position:absolute; bottom: 18%; left: 42%; width: 50px; height: 70px;
  background: linear-gradient(180deg, #6b4f2a 0%, #4d381e 100%);
  border-radius: 20% 20% 10% 10%;
  transform: translateX(-50%);
}
.scn-emily-attempts-drawing .figure-drawing {
  position:absolute; bottom: 28%; left: 42%; width: 38px; height: 55px;
  background: linear-gradient(180deg, #f0d5b0 0%, #dbb58a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform: translateX(-50%) rotate(15deg);
  animation: ead-sketch 5s ease-in-out infinite;
}
.scn-emily-attempts-drawing .paper {
  position:absolute; bottom: 24%; left: 30%; width: 40px; height: 30px;
  background: #faf3e0;
  border-radius: 2px;
  transform: rotate(10deg);
  box-shadow: 0 2px 6px rgba(0,0,0,.1);
  animation: ead-paper 6s ease-in-out infinite alternate;
}
.scn-emily-attempts-drawing .pencil {
  position:absolute; bottom: 22%; left: 48%; width: 6px; height: 24px;
  background: linear-gradient(180deg, #c89e5c 0%, #a07a3a 100%);
  border-radius: 2px;
  transform: rotate(20deg);
  transform-origin: bottom center;
  animation: ead-draw 4s ease-in-out infinite;
}
.scn-emily-attempts-drawing .mountain-outline {
  position:absolute; bottom: 40%; left: 20%; width: 60%; height: 20%;
  background: linear-gradient(180deg, #7a9a7a 0%, #5a7a5a 100%);
  border-radius: 60% 40% 0 0 / 80% 60% 0 0;
  opacity: .6;
}
.scn-emily-attempts-drawing .sun-glow {
  position:absolute; top: 18%; right: 10%; width: 40px; height: 40px;
  background: radial-gradient(circle, #ffe080 0%, #ffd060 40%, transparent 70%);
  border-radius: 50%;
  filter: blur(8px);
  animation: ead-sun 12s ease-in-out infinite alternate;
}
@keyframes ead-sketch {
  0% { transform: translateX(-50%) rotate(15deg) translateY(0); }
  50% { transform: translateX(-50%) rotate(12deg) translateY(-3px); }
  100% { transform: translateX(-50%) rotate(15deg) translateY(0); }
}
@keyframes ead-paper {
  0% { transform: rotate(10deg) scale(1); }
  50% { transform: rotate(12deg) scale(1.02); }
  100% { transform: rotate(8deg) scale(1); }
}
@keyframes ead-draw {
  0% { transform: rotate(20deg) scaleY(1); }
  50% { transform: rotate(25deg) scaleY(0.95); }
  100% { transform: rotate(18deg) scaleY(1); }
}
@keyframes ead-sun {
  0% { opacity: .5; transform: scale(1); }
  50% { opacity: .9; transform: scale(1.2); }
  100% { opacity: .6; transform: scale(1.1); }
}

.scn-carlo-refuses-to-betray {
  background: linear-gradient(180deg, #dec9a0 0%, #c9b080 30%, #a88a5e 70%, #7a6a4a 100%),
              radial-gradient(ellipse at 30% 40%, #f2e0c0 0%, transparent 50%);
}
.scn-carlo-refuses-to-betray .room-wall {
  position:absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #dcc8a0 0%, #b8986a 100%);
  border-radius: 0 0 40% 40% / 0 0 20% 20%;
}
.scn-carlo-refuses-to-betray .table {
  position:absolute; bottom: 28%; left: 30%; width: 90px; height: 20px;
  background: linear-gradient(180deg, #8a6f48 0%, #5a452a 100%);
  border-radius: 4px;
  box-shadow: 0 6px 12px rgba(0,0,0,.3);
}
.scn-carlo-refuses-to-betray .chair-left {
  position:absolute; bottom: 24%; left: 32%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #6b4f2a 0%, #4d381e 100%);
  border-radius: 20% 20% 10% 10%;
}
.scn-carlo-refuses-to-betray .chair-right {
  position:absolute; bottom: 24%; right: 38%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #6b4f2a 0%, #4d381e 100%);
  border-radius: 20% 20% 10% 10%;
}
.scn-carlo-refuses-to-betray .figure-carlo {
  position:absolute; bottom: 22%; left: 28%; width: 32px; height: 60px;
  background: linear-gradient(180deg, #5a4530 0%, #3a2a1a 100%);
  border-radius: 50% 20% 10% 10% / 60% 30% 20% 20%;
  transform: rotate(5deg);
  animation: crb-bow 6s ease-in-out infinite;
}
.scn-carlo-refuses-to-betray .figure-guest {
  position:absolute; bottom: 26%; right: 36%; width: 36px; height: 50px;
  background: linear-gradient(180deg, #7a5a3a 0%, #4d381e 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
  transform: rotate(-5deg);
}
.scn-carlo-refuses-to-betray .tray {
  position:absolute; bottom: 32%; left: 32%; width: 30px; height: 8px;
  background: linear-gradient(180deg, #d4b87a 0%, #b8986a 100%);
  border-radius: 50%;
  box-shadow: 0 4px 8px rgba(0,0,0,.2);
  animation: crb-tray 5s ease-in-out infinite;
}
.scn-carlo-refuses-to-betray .mountain-window {
  position:absolute; top: 12%; left: 20%; width: 60%; height: 30%;
  background: linear-gradient(180deg, #8aa8ca 0%, #5a7a9a 100%);
  border-radius: 40% 60% 0 0 / 60% 80% 0 0;
  opacity: .4;
}
@keyframes crb-bow {
  0% { transform: rotate(5deg) translateY(0); }
  50% { transform: rotate(8deg) translateY(-2px); }
  100% { transform: rotate(5deg) translateY(0); }
}
@keyframes crb-tray {
  0% { transform: translateY(0); opacity: .8; }
  50% { transform: translateY(-3px); opacity: 1; }
  100% { transform: translateY(0); opacity: .9; }
}

.scn-barnardine-denies {
  background: linear-gradient(180deg, #d4c2a0 0%, #b8a07a 40%, #8a7a5a 70%, #5a4a3a 100%),
              radial-gradient(ellipse at 50% 60%, #e8d8b8 0%, transparent 60%);
}
.scn-barnardine-denies .arch-door {
  position:absolute; top: 10%; left: 30%; width: 100px; height: 90%;
  background: linear-gradient(180deg, #a0886a 0%, #6a5a3a 100%);
  border-radius: 50% 50% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 0 30px rgba(0,0,0,.3);
}
.scn-barnardine-denies .floor {
  position:absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #7a6a4a 0%, #4a3a2a 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
}
.scn-barnardine-denies .figure-montoni {
  position:absolute; bottom: 22%; left: 40%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e0a 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%;
  transform: rotate(-3deg);
  z-index: 2;
}
.scn-barnardine-denies .figure-barnardine {
  position:absolute; bottom: 24%; right: 32%; width: 36px; height: 70px;
  background: linear-gradient(180deg, #5a4530 0%, #2a1a0e 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%;
  transform: rotate(2deg);
  z-index: 2;
  animation: bd-stand 5s ease-in-out infinite;
}
.scn-barnardine-denies .lantern {
  position:absolute; top: 20%; left: 48%; width: 12px; height: 18px;
  background: radial-gradient(circle, #f0c060 0%, #b08030 80%);
  border-radius: 20%;
  box-shadow: 0 0 30px 10px rgba(200,150,60,.5), 0 0 60px 20px rgba(200,150,60,.2);
  animation: bd-glow 4s ease-in-out infinite alternate;
}
.scn-barnardine-denies .shadow-montoni {
  position:absolute; bottom: 0; left: 38%; width: 60px; height: 20%;
  background: radial-gradient(ellipse, rgba(0,0,0,.3) 0%, transparent 70%);
  transform: rotate(10deg);
  filter: blur(6px);
}
.scn-barnardine-denies .shadow-barnardine {
  position:absolute; bottom: 0; right: 30%; width: 50px; height: 18%;
  background: radial-gradient(ellipse, rgba(0,0,0,.25) 0%, transparent 70%);
  transform: rotate(-8deg);
  filter: blur(5px);
  animation: bd-shadow 6s ease-in-out infinite alternate;
}
@keyframes bd-stand {
  0% { transform: rotate(2deg) translateY(0); }
  50% { transform: rotate(0deg) translateY(-3px); }
  100% { transform: rotate(2deg) translateY(0); }
}
@keyframes bd-glow {
  0% { box-shadow: 0 0 20px 6px rgba(200,150,60,.4), 0 0 40px 12px rgba(200,150,60,.15); }
  50% { box-shadow: 0 0 40px 14px rgba(200,150,60,.6), 0 0 80px 24px rgba(200,150,60,.3); }
  100% { box-shadow: 0 0 25px 8px rgba(200,150,60,.5), 0 0 50px 16px rgba(200,150,60,.2); }
}
@keyframes bd-shadow {
  0% { opacity: .6; transform: rotate(-8deg) scale(1); }
  50% { opacity: .9; transform: rotate(-6deg) scale(1.05); }
  100% { opacity: .7; transform: rotate(-8deg) scale(1); }
}

/* soliloquy-enchantment */
.scn-soliloquy-enchantment {
  background:
    linear-gradient(180deg, #1f1c2e 0%, #2c2740 30%, #16141e 100%),
    radial-gradient(ellipse at 50% 100%, #4a3a5e 0%, transparent 70%);
}
.scn-soliloquy-enchantment .walls {
  position:absolute; inset:0 10% 15% 10%;
  background: linear-gradient(180deg, #2a2640 0%, #1e1a30 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: inset 0 0 40px rgba(0,0,0,.6);
  animation: se-walls 8s ease-in-out infinite alternate;
}
.scn-soliloquy-enchantment .window {
  position:absolute; top:8%; left:50%; width:36%; height:30%;
  transform:translateX(-50%);
  background: radial-gradient(ellipse at center, #4a5a7a 0%, #1a1c2e 60%, transparent 100%);
  border-radius: 10% 10% 6% 6%;
  box-shadow: inset 0 0 30px #0a0a1a;
  overflow:hidden;
}
.scn-soliloquy-enchantment .dusk-sky {
  position:absolute; top:8%; left:50%; width:34%; height:28%;
  transform:translateX(-50%);
  background: linear-gradient(180deg, #3a4466 0%, #6a5a7a 40%, #8a7a6a 70%, #b09a5a 100%);
  border-radius: 10% 10% 6% 6%;
  animation: se-dusk 15s ease-in-out infinite alternate;
}
.scn-soliloquy-enchantment .cottage-light {
  position:absolute; top:28%; left:42%; width:6px; height:6px;
  background: radial-gradient(circle, #ffe080 0%, #c08040 100%);
  border-radius:50%;
  box-shadow: 0 0 20px 8px #c08040, 0 0 40px 14px rgba(192,128,64,.5);
  animation: se-cottage 4s ease-in-out infinite;
}
.scn-soliloquy-enchantment .figure {
  position:absolute; bottom:18%; left:38%; width:30px; height:50px;
  background: linear-gradient(180deg, #0a0a12 0%, #1a1422 100%);
  border-radius: 45% 55% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: se-figure 6s ease-in-out infinite;
}
.scn-soliloquy-enchantment .fireplace-glow {
  position:absolute; bottom:15%; right:18%; width:40px; height:30px;
  background: radial-gradient(ellipse at 50% 100%, #ff8040 0%, #cc6020 40%, transparent 70%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 40px 20px rgba(255,128,64,.4);
  animation: se-fire 3s ease-in-out infinite alternate;
}
@keyframes se-walls { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.85 } }
@keyframes se-dusk { 0% { opacity:.7; transform: translateX(-50%) scaleY(.95) } 50% { opacity:.85; transform: translateX(-50%) scaleY(1) } 100% { opacity:.75; transform: translateX(-50%) scaleY(.98) } }
@keyframes se-cottage { 0% { box-shadow: 0 0 15px 5px #c08040; opacity:.8 } 30% { box-shadow: 0 0 35px 12px #ffe080; opacity:1 } 70% { box-shadow: 0 0 25px 8px #d09050; opacity:.9 } 100% { box-shadow: 0 0 18px 6px #c08040; opacity:.85 } }
@keyframes se-figure { 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(0) translateY(0) rotate(0) } }
@keyframes se-fire { 0% { opacity:.6; transform: scaleY(.9) } 50% { opacity:1; transform: scaleY(1.05) } 100% { opacity:.7; transform: scaleY(.95) } }

/* moonlight-beauty */
.scn-moonlight-beauty {
  background:
    linear-gradient(180deg, #1a2a3a 0%, #1e3040 30%, #24344a 60%, #1a2a3a 100%),
    radial-gradient(ellipse at 50% 0%, #4a6a8a 0%, transparent 70%);
}
.scn-moonlight-beauty .sky-mb {
  position:absolute; inset:0 0 50% 0;
  background: linear-gradient(180deg, #0e1a28 0%, #1e3050 40%, #3a4a6a 100%);
  animation: mb-sky 20s ease-in-out infinite alternate;
}
.scn-moonlight-beauty .moon-mb {
  position:absolute; top:8%; left:70%; width:40px; height:40px;
  background: radial-gradient(circle, #d0d8e0 0%, #a0b0c0 100%);
  border-radius:50%;
  box-shadow: 0 0 30px 10px #a0b0c0, 0 0 60px 20px rgba(160,176,192,.4);
  animation: mb-moon 12s ease-in-out infinite alternate;
}
.scn-moonlight-beauty .plains-mb {
  position:absolute; bottom:30%; left:0; right:0; height:35%;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%);
  border-radius: 30% 70% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.5);
  animation: mb-plains 15s ease-in-out infinite;
}
.scn-moonlight-beauty .monastery-mb {
  position:absolute; bottom:25%; right:20%; width:60px; height:50px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 4px 10px rgba(0,0,0,.6);
  animation: mb-monastery 18s ease-in-out infinite alternate;
}
.scn-moonlight-beauty .groves-mb {
  position:absolute; bottom:20%; left:10%; width:80px; height:40px;
  background: radial-gradient(ellipse at 30% 100%, #1a3a1a 0%, #0a1a0a 100%);
  border-radius: 50% 50% 30% 30%;
  filter: blur(3px);
  animation: mb-groves 25s ease-in-out infinite alternate;
}
.scn-moonlight-beauty .cloud-mb-a {
  position:absolute; top:18%; left:10%; width:70px; height:12px;
  background: linear-gradient(180deg, rgba(180,200,220,.4) 0%, rgba(180,200,220,.05) 100%);
  border-radius:50%;
  filter: blur(8px);
  animation: mb-drift-a 40s linear infinite;
}
.scn-moonlight-beauty .cloud-mb-b {
  position:absolute; top:24%; right:5%; width:50px; height:8px;
  background: linear-gradient(180deg, rgba(180,200,220,.3) 0%, transparent 100%);
  border-radius:50%;
  filter: blur(6px);
  animation: mb-drift-b 55s linear infinite;
}
@keyframes mb-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.75 } }
@keyframes mb-moon { 0% { transform: translateY(0) rotate(0); box-shadow: 0 0 25px 8px #a0b0c0 } 50% { transform: translateY(-3px) rotate(5deg); box-shadow: 0 0 40px 14px #b0c0d0 } 100% { transform: translateY(2px) rotate(-3deg); box-shadow: 0 0 30px 10px #a0b0c0 } }
@keyframes mb-plains { 0% { transform: translateY(0) } 25% { transform: translateY(-2px) } 75% { transform: translateY(1px) } 100% { transform: translateY(0) } }
@keyframes mb-monastery { 0% { transform: scaleY(.96); opacity:.85 } 50% { transform: scaleY(1); opacity:1 } 100% { transform: scaleY(.98); opacity:.9 } }
@keyframes mb-groves { 0% { transform: translateX(0) scaleX(.9) } 50% { transform: translateX(3px) scaleX(1) } 100% { transform: translateX(-2px) scaleX(.92) } }
@keyframes mb-drift-a { 0% { transform: translateX(-40px) } 100% { transform: translateX(120vw) } }
@keyframes mb-drift-b { 0% { transform: translateX(0) } 100% { transform: translateX(-100vw) } }

/* encounter-with-dorothee */
.scn-encounter-with-dorothee {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 40%, #1e1e30 100%),
    radial-gradient(ellipse at 50% 80%, #3a3a5a 0%, transparent 70%);
}
.scn-encounter-with-dorothee .hall-ed {
  position:absolute; inset:5% 5% 10% 5%;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%);
  border-radius: 2%;
  box-shadow: inset 0 0 50px rgba(0,0,0,.5);
}
.scn-encounter-with-dorothee .floor-ed {
  position:absolute; bottom:10%; left:5%; right:5%; height:8%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%);
  border-radius: 0 0 2% 2%;
}
.scn-encounter-with-dorothee .pillar-ed.left {
  position:absolute; bottom:18%; left:20%; width:8px; height:70%;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
  border-radius: 10%;
  box-shadow: 2px 0 6px rgba(0,0,0,.5);
}
.scn-encounter-with-dorothee .pillar-ed.right {
  position:absolute; bottom:18%; right:20%; width:8px; height:70%;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
  border-radius: 10%;
  box-shadow: -2px 0 6px rgba(0,0,0,.5);
}
.scn-encounter-with-dorothee .moonlight-beam {
  position:absolute; top:0; left:45%; width:10%; height:100%;
  background: linear-gradient(180deg, rgba(180,200,220,.3) 0%, rgba(180,200,220,.08) 100%);
  filter: blur(8px);
  animation: ed-beam 10s ease-in-out infinite alternate;
}
.scn-encounter-with-dorothee .figure-ed {
  position:absolute; bottom:10%; left:35%; width:20px; height:45px;
  background: linear-gradient(180deg, #0a0a12 0%, #1a1422 100%);
  border-radius: 45% 55% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ed-figure 5s ease-in-out infinite;
}
@keyframes ed-beam { 0% { opacity:.4; transform: scaleY(.9) } 50% { opacity:.7; transform: scaleY(1.05) } 100% { opacity:.5; transform: scaleY(.95) } }
@keyframes ed-figure { 0% { transform: translateX(0) rotate(-2deg) } 30% { transform: translateX(6px) rotate(1deg) } 70% { transform: translateX(12px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0) } }

/* exploring-turret */
.scn-exploring-turret {
  background:
    linear-gradient(180deg, #0e0e1a 0%, #1a1a2a 40%, #0e0e1a 100%),
    radial-gradient(ellipse at 50% 100%, #2a2a3a 0%, transparent 70%);
}
.scn-exploring-turret .turret-walls {
  position:absolute; inset:0 5% 10% 5%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%);
  border-radius: 50% 50% 2% 2%;
  box-shadow: inset 0 0 30px rgba(0,0,0,.6);
}
.scn-exploring-turret .staircase {
  position:absolute; bottom:15%; left:50%; width:15%; height:70%;
  transform:translateX(-50%);
  background: repeating-linear-gradient(0deg, #2a2a3a 0px, #2a2a3a 6px, #1a1a2a 6px, #1a1a2a 12px);
  border-radius: 50% 50% 0 0;
  animation: et-stairs 20s linear infinite;
}
.scn-exploring-turret .window-et {
  position:absolute; top:12%; left:55%; width:14%; height:20%;
  background: radial-gradient(ellipse at center, #4a5a7a 0%, #1a1c2e 100%);
  border-radius: 40% 40% 30% 30%;
  box-shadow: 0 0 20px 8px #2a3a5a;
  overflow:hidden;
}
.scn-exploring-turret .lantern-et {
  position:absolute; top:30%; left:62%; width:10px; height:14px;
  background: radial-gradient(circle, #ffe080 0%, #c08040 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 25px 8px #c08040, 0 0 50px 16px rgba(192,128,64,.4);
  animation: et-lantern 4s ease-in-out infinite alternate;
}
.scn-exploring-turret .figure-et {
  position:absolute; bottom:12%; left:48%; width:18px; height:40px;
  background: linear-gradient(180deg, #0a0a12 0%, #1a1422 100%);
  border-radius: 45% 55% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: et-figure 7s ease-in-out infinite;
}
.scn-exploring-turret .arch-et {
  position:absolute; bottom:10%; left:32%; width:36%; height:12%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 30% 30% 0 0;
  box-shadow: 0 -4px 8px rgba(0,0,0,.4);
}
@keyframes et-stairs { 0% { background-position: 0 0 } 100% { background-position: 0 20px } }
@keyframes et-lantern { 0% { box-shadow: 0 0 20px 6px #c08040; opacity:.9 } 30% { box-shadow: 0 0 35px 12px #ffe080; opacity:1 } 70% { box-shadow: 0 0 25px 8px #d09050; opacity:.95 } 100% { box-shadow: 0 0 22px 7px #c08040; opacity:.9 } }
@keyframes et-figure { 0% { transform: translateX(0) rotate(-1deg) } 25% { transform: translateX(3px) translateY(-1px) rotate(2deg) } 50% { transform: translateX(6px) rotate(-1deg) } 75% { transform: translateX(9px) translateY(-1px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }

.scn-betrayal-by-montoni {
  background: linear-gradient(180deg, #1a0e0a 0%, #2b1a12 40%, #4a2a1a 100%),
              radial-gradient(ellipse at 50% 70%, #c0552a 0%, transparent 60%);
}
.scn-betrayal-by-montoni .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #2b1a12 0%, #1a0e0a 100%);
  animation: bt-wall 8s ease-in-out infinite alternate;
}
.scn-betrayal-by-montoni .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #3a2215 0%, #1a0e0a 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.8);
}
.scn-betrayal-by-montoni .fireplace {
  position: absolute; bottom: 30%; left: 48%; width: 80px; height: 100px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a2a1a 0%, #2b1a12 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.9), 0 0 40px 20px rgba(200,80,30,0.3);
}
.scn-betrayal-by-montoni .fire {
  position: absolute; bottom: 30%; left: 50%; width: 30px; height: 50px;
  transform: translateX(-50%);
  background: radial-gradient(circle at 50% 100%, #ffa050 0%, #c0552a 50%, transparent 100%);
  border-radius: 50% 50% 40% 40%;
  box-shadow: 0 0 60px 30px #c0552a;
  animation: bt-fire 1.5s ease-in-out infinite alternate;
}
.scn-betrayal-by-montoni .table {
  position: absolute; bottom: 25%; left: 40%; width: 80px; height: 20px;
  background: linear-gradient(180deg, #5a3a25 0%, #3a2215 100%);
  border-radius: 5%;
  transform: perspective(200px) rotateX(5deg);
  box-shadow: 0 4px 10px rgba(0,0,0,0.7);
}
.scn-betrayal-by-montoni .montoni {
  position: absolute; bottom: 20%; left: 52%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #1a0e0a 0%, #0f0704 100%);
  border-radius: 40% 40% 30% 30%;
  transform: rotate(-5deg) translateY(0);
  animation: bt-montoni 4s ease-in-out infinite;
}
.scn-betrayal-by-montoni .emily {
  position: absolute; bottom: 22%; left: 38%; width: 22px; height: 60px;
  background: linear-gradient(180deg, #2b1a12 0%, #1a0e0a 100%);
  border-radius: 50% 50% 35% 35%;
  transform: rotate(2deg);
  animation: bt-emily 3s ease-in-out infinite;
}
.scn-betrayal-by-montoni .candle {
  position: absolute; bottom: 35%; left: 30%; width: 6px; height: 12px;
  background: linear-gradient(180deg, #ffd080 0%, #c08030 100%);
  border-radius: 50% 50% 10% 10%;
  box-shadow: 0 0 15px 5px #ffa050;
  animation: bt-candle 2s ease-in-out infinite alternate;
}
@keyframes bt-wall { 0%{opacity:0.9} 50%{opacity:1} 100%{opacity:0.8} }
@keyframes bt-fire { 0%{height:45px;opacity:0.8;box-shadow:0 0 40px 20px #c0552a} 50%{height:55px;opacity:1;box-shadow:0 0 70px 30px #ffa050} 100%{height:48px;opacity:0.85;box-shadow:0 0 50px 25px #c0552a} }
@keyframes bt-montoni { 0%,100%{transform:rotate(-5deg) translateY(0)} 50%{transform:rotate(-6deg) translateY(-2px)} }
@keyframes bt-emily { 0%,100%{transform:rotate(2deg) translateY(0)} 50%{transform:rotate(3deg) translateY(-1px)} }
@keyframes bt-candle { 0%{height:12px;opacity:0.7} 50%{height:14px;opacity:1} 100%{height:11px;opacity:0.8} }

.scn-reproachful-conversation {
  background: linear-gradient(180deg, #1a1a2e 0%, #2e243a 50%, #4a3050 100%),
              radial-gradient(ellipse at 30% 60%, #6a3a5a 0%, transparent 70%);
}
.scn-reproachful-conversation .bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2e243a 0%, #1a1a2e 100%);
  animation: rc-bg 6s ease-in-out infinite alternate;
}
.scn-reproachful-conversation .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #3a2a44 0%, #1a1a2e 100%);
  border-radius: 30% 30% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.8);
}
.scn-reproachful-conversation .light {
  position: absolute; bottom: 45%; left: 25%; width: 20px; height: 25px;
  background: radial-gradient(circle at 50% 100%, #ffe080 0%, #c09050 50%, transparent 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 60px 30px #c09050;
  animation: rc-light 2s ease-in-out infinite alternate;
}
.scn-reproachful-conversation .figure-a {
  position: absolute; bottom: 25%; left: 40%; width: 28px; height: 75px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0f0f1a 100%);
  border-radius: 45% 45% 30% 30%;
  transform: rotate(-3deg);
  animation: rc-figure-a 4s ease-in-out infinite;
}
.scn-reproachful-conversation .figure-b {
  position: absolute; bottom: 23%; left: 55%; width: 24px; height: 65px;
  background: linear-gradient(180deg, #2e243a 0%, #1a1a2e 100%);
  border-radius: 50% 50% 35% 35%;
  transform: rotate(2deg);
  animation: rc-figure-b 5s ease-in-out infinite;
}
.scn-reproachful-conversation .shadow-a {
  position: absolute; bottom: 15%; left: 30%; width: 50px; height: 20px;
  background: rgba(0,0,0,0.6);
  border-radius: 50%;
  transform: scaleX(1.5) rotate(-10deg);
  animation: rc-shadow-a 4s ease-in-out infinite;
}
.scn-reproachful-conversation .shadow-b {
  position: absolute; bottom: 13%; left: 60%; width: 45px; height: 18px;
  background: rgba(0,0,0,0.5);
  border-radius: 50%;
  transform: scaleX(1.2) rotate(8deg);
  animation: rc-shadow-b 5s ease-in-out infinite;
}
@keyframes rc-bg { 0%{opacity:0.8} 50%{opacity:1} 100%{opacity:0.7} }
@keyframes rc-light { 0%{box-shadow:0 0 40px 20px #c09050;opacity:0.8} 50%{box-shadow:0 0 70px 30px #ffe080;opacity:1} 100%{box-shadow:0 0 50px 25px #c09050;opacity:0.85} }
@keyframes rc-figure-a { 0%,100%{transform:rotate(-3deg) translateY(0)} 50%{transform:rotate(-4deg) translateY(-1px)} }
@keyframes rc-figure-b { 0%,100%{transform:rotate(2deg) translateY(0)} 50%{transform:rotate(3deg) translateY(1px)} }
@keyframes rc-shadow-a { 0%,100%{transform:scaleX(1.5) rotate(-10deg)} 50%{transform:scaleX(1.4) rotate(-12deg)} }
@keyframes rc-shadow-b { 0%,100%{transform:scaleX(1.2) rotate(8deg)} 50%{transform:scaleX(1.3) rotate(10deg)} }

.scn-retreat-to-chamber {
  background: linear-gradient(180deg, #0c0c1a 0%, #1a1a30 40%, #2a1a30 100%),
              radial-gradient(ellipse at 50% 100%, #303050 0%, transparent 70%);
}
.scn-retreat-to-chamber .bg {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #1a1a30 0%, #0c0c1a 100%);
  animation: rtc-bg 10s ease-in-out infinite alternate;
}
.scn-retreat-to-chamber .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #2a2035 0%, #0c0c1a 100%);
  border-radius: 15% 15% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.9);
}
.scn-retreat-to-chamber .column-left {
  position: absolute; bottom: 30%; left: 20%; width: 12px; height: 90px;
  background: linear-gradient(180deg, #3a3050 0%, #1a1a30 100%);
  border-radius: 10%;
  box-shadow: inset -2px 0 6px rgba(0,0,0,0.7);
}
.scn-retreat-to-chamber .column-right {
  position: absolute; bottom: 30%; right: 20%; width: 12px; height: 90px;
  background: linear-gradient(180deg, #3a3050 0%, #1a1a30 100%);
  border-radius: 10%;
  box-shadow: inset 2px 0 6px rgba(0,0,0,0.7);
}
.scn-retreat-to-chamber .door {
  position: absolute; bottom: 25%; left: 50%; width: 40px; height: 70px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a3a5a 0%, #2a1a30 100%);
  border-radius: 5% 5% 0 0;
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.8), 0 4px 10px rgba(0,0,0,0.6);
}
.scn-retreat-to-chamber .figure {
  position: absolute; bottom: 22%; left: 36%; width: 20px; height: 60px;
  background: linear-gradient(180deg, #0c0c1a 0%, #06060e 100%);
  border-radius: 50% 50% 35% 35%;
  animation: rtc-figure 3s ease-in-out infinite;
}
.scn-retreat-to-chamber .shadow {
  position: absolute; bottom: 10%; left: 30%; width: 40px; height: 15px;
  background: rgba(0,0,0,0.8);
  border-radius: 50%;
  transform: scaleX(1.8);
  animation: rtc-shadow 3s ease-in-out infinite;
}
@keyframes rtc-bg { 0%{opacity:0.7} 50%{opacity:1} 100%{opacity:0.6} }
@keyframes rtc-figure { 0%,100%{transform:translateX(0) translateY(0)} 25%{transform:translateX(5px) translateY(-1px)} 50%{transform:translateX(10px) translateY(0)} 75%{transform:translateX(15px) translateY(-1px)} 100%{transform:translateX(20px) translateY(0)} }
@keyframes rtc-shadow { 0%,100%{transform:scaleX(1.8) translateX(0)} 25%{transform:scaleX(1.7) translateX(3px)} 50%{transform:scaleX(1.8) translateX(6px)} 75%{transform:scaleX(1.7) translateX(9px)} 100%{transform:scaleX(1.8) translateX(12px)} }

.scn-relief-silence {
  background: linear-gradient(180deg, #e8dcc0 0%, #c8b89a 50%, #a89888 100%),
              radial-gradient(ellipse at 70% 30%, #fff0d0 0%, transparent 60%);
}
.scn-relief-silence .bg {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #f0e6d0 0%, #d8c8aa 100%);
  animation: rs-bg 12s ease-in-out infinite alternate;
}
.scn-relief-silence .window-frame {
  position: absolute; bottom: 35%; left: 55%; width: 80px; height: 110px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%);
  border-radius: 5%;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.3), 0 4px 12px rgba(0,0,0,0.2);
}
.scn-relief-silence .window-glass {
  position: absolute; bottom: 38%; left: 55%; width: 60px; height: 80px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #f0f5ff 0%, #d0d8e8 100%);
  border-radius: 3%;
  box-shadow: inset 0 0 20px rgba(255,255,255,0.5), 0 0 30px 10px rgba(255,255,255,0.2);
  animation: rs-glass 8s ease-in-out infinite alternate;
}
.scn-relief-silence .light-beam {
  position: absolute; top: 10%; left: 50%; width: 40px; height: 200px;
  transform: translateX(-50%) rotate(10deg);
  background: linear-gradient(180deg, rgba(255,255,255,0.4) 0%, transparent 100%);
  border-radius: 10%;
  filter: blur(10px);
  animation: rs-beam 10s ease-in-out infinite alternate;
}
.scn-relief-silence .figure {
  position: absolute; bottom: 25%; left: 30%; width: 25px; height: 70px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 35% 35%;
  transform: rotate(-2deg);
  animation: rs-figure 6s ease-in-out infinite;
}
.scn-relief-silence .chair {
  position: absolute; bottom: 15%; left: 20%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 40% 40% 10% 10%;
  transform: scale(0.9);
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
}
.scn-relief-silence .table {
  position: absolute; bottom: 20%; left: 60%; width: 50px; height: 15px;
  background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%);
  border-radius: 5%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.2);
}
.scn-relief-silence .curtain {
  position: absolute; top: 0; left: 52%; width: 20px; height: 100%;
  background: linear-gradient(180deg, #c8b89a 0%, #a89888 100%);
  border-radius: 0 20% 20% 0;
  box-shadow: inset -4px 0 10px rgba(0,0,0,0.2);
  animation: rs-curtain 5s ease-in-out infinite alternate;
}
@keyframes rs-bg { 0%{opacity:0.9} 50%{opacity:1} 100%{opacity:0.8} }
@keyframes rs-glass { 0%{box-shadow:0 0 20px 5px rgba(255,255,255,0.3);opacity:0.9} 50%{box-shadow:0 0 40px 15px rgba(255,255,255,0.5);opacity:1} 100%{box-shadow:0 0 25px 8px rgba(255,255,255,0.35);opacity:0.92} }
@keyframes rs-beam { 0%{transform:translateX(-50%) rotate(8deg) scale(1);opacity:0.6} 50%{transform:translateX(-50%) rotate(12deg) scale(1.05);opacity:0.8} 100%{transform:translateX(-50%) rotate(10deg) scale(1);opacity:0.7} }
@keyframes rs-figure { 0%,100%{transform:rotate(-2deg) translateY(0)} 50%{transform:rotate(-1deg) translateY(-2px)} }
@keyframes rs-curtain { 0%{transform:scaleX(1)} 50%{transform:scaleX(0.95)} 100%{transform:scaleX(1)} }

/* call-to-musician (ctm) */
.scn-call-to-musician {
  background:
    linear-gradient(180deg, #0f1322 0%, #1c1f3a 30%, #2a2e50 60%, #3b3f6a 100%),
    radial-gradient(ellipse at 50% 20%, #2a2e50 0%, transparent 70%);
}
.scn-call-to-musician .ctm-wall-left,
.scn-call-to-musician .ctm-wall-right {
  position: absolute; top: 0; bottom: 0; width: 20%;
  background: linear-gradient(180deg, #1f1f30 0%, #0f0f18 60%, #050510 100%);
  box-shadow: inset 0 0 20px rgba(0,0,0,.6);
}
.scn-call-to-musician .ctm-wall-left  { left: 0; }
.scn-call-to-musician .ctm-wall-right { right: 0; }
.scn-call-to-musician .ctm-window {
  position: absolute; top: 5%; left: 20%; right: 20%; bottom: 40%;
  background: linear-gradient(180deg, #1a1e3a 0%, #2a3050 100%);
  border-radius: 40% 40% 0 0;
  box-shadow: inset 0 0 30px rgba(0,0,0,.5);
}
.scn-call-to-musician .ctm-figure {
  position: absolute; bottom: 35%; left: 42%; width: 24px; height: 60px;
  background: linear-gradient(180deg, #1a2030 0%, #0a0f15 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ctm-figure 5s ease-in-out infinite alternate;
}
.scn-call-to-musician .ctm-moon {
  position: absolute; top: 8%; right: 25%; width: 40px; height: 40px;
  background: radial-gradient(circle, #d8e0f0 0%, #b0c0e0 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(180,200,230,.5), 0 0 60px 20px rgba(180,200,230,.2);
  animation: ctm-moon 10s ease-in-out infinite alternate;
}
.scn-call-to-musician .ctm-stars {
  position: absolute; top: 5%; left: 10%; right: 10%; bottom: 60%;
  background-image: radial-gradient(2px 2px at 20% 30%, #e0e8f0 0%, transparent 100%),
                    radial-gradient(3px 3px at 40% 10%, #d0d8e8 0%, transparent 100%),
                    radial-gradient(2px 2px at 60% 40%, #e0e8f0 0%, transparent 100%),
                    radial-gradient(3px 3px at 80% 20%, #d0d8e8 0%, transparent 100%);
  background-size: 100% 100%;
  background-repeat: no-repeat;
  opacity: 0.7;
  animation: ctm-stars 6s ease-in-out infinite alternate;
}
.scn-call-to-musician .ctm-light-below {
  position: absolute; bottom: 40%; left: 38%; width: 40px; height: 20px;
  background: radial-gradient(ellipse, rgba(200,180,120,.6) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(8px);
  animation: ctm-light 4s ease-in-out infinite alternate;
}
.scn-call-to-musician .ctm-curtain {
  position: absolute; top: 5%; left: 18%; right: 18%; bottom: 55%;
  background: linear-gradient(180deg, rgba(20,20,35,.4) 0%, transparent 40%, transparent 100%);
  pointer-events: none;
}
@keyframes ctm-figure { 0% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(3px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes ctm-moon { 0% { opacity: .8; transform: translate(0,0); } 50% { opacity: 1; transform: translate(2px, -2px); } 100% { opacity: .85; transform: translate(0,0); } }
@keyframes ctm-stars { 0% { opacity: .5; } 50% { opacity: .9; } 100% { opacity: .6; } }
@keyframes ctm-light { 0% { opacity: .4; filter: blur(6px); } 50% { opacity: .8; filter: blur(10px); } 100% { opacity: .5; filter: blur(6px); } }

/* french-song-identified (fsi) */
.scn-french-song-identified {
  background:
    linear-gradient(180deg, #1a1f3a 0%, #2a3050 40%, #3a4060 70%, #2a3050 100%),
    radial-gradient(ellipse at 70% 30%, #4a5080 0%, transparent 60%);
}
.scn-french-song-identified .fsi-wall-left,
.scn-french-song-identified .fsi-wall-right {
  position: absolute; top: 0; bottom: 0; width: 15%;
  background: linear-gradient(90deg, #1f1f30 0%, #0f0f18 100%);
  box-shadow: inset 0 0 15px rgba(0,0,0,.5);
}
.scn-french-song-identified .fsi-wall-left  { left: 0; }
.scn-french-song-identified .fsi-wall-right { right: 0; }
.scn-french-song-identified .fsi-window {
  position: absolute; top: 5%; left: 20%; right: 20%; bottom: 35%;
  background: linear-gradient(180deg, #1a1e3a 0%, #2a3050 100%);
  border-radius: 30% 30% 0 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,.4);
}
.scn-french-song-identified .fsi-curtain {
  position: absolute; top: 5%; left: 18%; right: 18%; bottom: 40%;
  background: linear-gradient(90deg, rgba(40,30,50,.3) 0%, transparent 30%, transparent 70%, rgba(40,30,50,.3) 100%);
  pointer-events: none;
}
.scn-french-song-identified .fsi-figure1 {
  position: absolute; bottom: 25%; left: 30%; width: 28px; height: 70px;
  background: linear-gradient(180deg, #2a3040 0%, #1a2028 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fsi-figure1 6s ease-in-out infinite alternate;
}
.scn-french-song-identified .fsi-figure2 {
  position: absolute; bottom: 20%; left: 55%; width: 26px; height: 65px;
  background: linear-gradient(180deg, #2a3040 0%, #1a2028 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fsi-figure2 7s ease-in-out infinite alternate;
  animation-delay: 0.5s;
}
.scn-french-song-identified .fsi-candle {
  position: absolute; bottom: 30%; left: 48%; width: 8px; height: 14px;
  background: linear-gradient(180deg, #ffd080 0%, #b08030 100%);
  border-radius: 40% 40% 20% 20%;
  box-shadow: 0 0 20px 8px rgba(255,200,100,.6), 0 0 40px 15px rgba(255,200,100,.3);
  animation: fsi-candle 3s ease-in-out infinite alternate;
}
.scn-french-song-identified .fsi-moon {
  position: absolute; top: 10%; right: 25%; width: 35px; height: 35px;
  background: radial-gradient(circle, #d8e0f0 0%, #b0c0e0 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 8px rgba(180,200,230,.5);
  animation: fsi-moon 12s ease-in-out infinite alternate;
}
.scn-french-song-identified .fsi-music {
  position: absolute; top: 15%; left: 40%; width: 60px; height: 30px;
  background: radial-gradient(circle at 10% 50%, rgba(200,180,150,.3) 0%, transparent 50%),
              radial-gradient(circle at 80% 40%, rgba(200,180,150,.2) 0%, transparent 50%);
  background-size: 20px 10px;
  background-repeat: no-repeat;
  opacity: 0.4;
  animation: fsi-music 5s ease-in-out infinite alternate;
}
@keyframes fsi-figure1 { 0% { transform: translateX(0) rotate(-1deg); } 50% { transform: translateX(2px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes fsi-figure2 { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes fsi-candle { 0% { opacity: .7; transform: scaleY(1); } 50% { opacity: 1; transform: scaleY(1.05); } 100% { opacity: .8; transform: scaleY(.95); } }
@keyframes fsi-moon { 0% { opacity: .8; } 50% { opacity: 1; } 100% { opacity: .85; } }
@keyframes fsi-music { 0% { opacity: .2; transform: scale(.9); } 50% { opacity: .5; transform: scale(1.1); } 100% { opacity: .3; transform: scale(.95); } }

/* name-in-song (nis) */
.scn-name-in-song {
  background:
    linear-gradient(180deg, #1a1f3a 0%, #2a3050 50%, #3a4060 100%),
    radial-gradient(ellipse at 60% 20%, #4a5080 0%, transparent 60%);
}
.scn-name-in-song .nis-window-frame {
  position: absolute; top: 0; left: 10%; right: 10%; bottom: 20%;
  background: linear-gradient(180deg, #1f1f30 0%, #0f0f18 100%);
  border-radius: 30% 30% 0 0;
  box-shadow: inset 0 0 30px rgba(0,0,0,.6);
}
.scn-name-in-song .nis-figure1 {
  position: absolute; bottom: 20%; left: 30%; width: 30px; height: 80px;
  background: linear-gradient(180deg, #2a3040 0%, #1a2028 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: nis-figure1 4s ease-in-out infinite alternate;
}
.scn-name-in-song .nis-figure2 {
  position: absolute; bottom: 25%; right: 30%; width: 26px; height: 70px;
  background: linear-gradient(180deg, #2a3040 0%, #1a2028 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: nis-figure2 5s ease-in-out infinite alternate;
  animation-delay: 1s;
}
.scn-name-in-song .nis-moon {
  position: absolute; top: 10%; left: 45%; width: 40px; height: 40px;
  background: radial-gradient(circle, #d8e0f0 0%, #b0c0e0 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(180,200,230,.5);
  animation: nis-moon 8s ease-in-out infinite alternate;
}
.scn-name-in-song .nis-cloud {
  position: absolute; top: 5%; left: 20%; width: 80px; height: 20px;
  background: linear-gradient(180deg, rgba(200,200,220,.3) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(6px);
  animation: nis-cloud 30s linear infinite;
}
.scn-name-in-song .nis-voice {
  position: absolute; bottom: 40%; left: 35%; right: 35%; height: 30px;
  background: radial-gradient(ellipse at 50% 100%, rgba(200,180,150,.2) 0%, transparent 70%);
  filter: blur(4px);
  animation: nis-voice 3s ease-in-out infinite alternate;
}
@keyframes nis-figure1 { 0% { transform: translateX(0) rotate(-2deg) scaleY(1); } 50% { transform: translateX(3px) rotate(2deg) scaleY(1.02); } 100% { transform: translateX(0) rotate(0deg) scaleY(1); } }
@keyframes nis-figure2 { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes nis-moon { 0% { opacity: .7; transform: translate(0,0); } 50% { opacity: 1; transform: translate(2px, -2px); } 100% { opacity: .8; transform: translate(0,0); } }
@keyframes nis-cloud { 0% { transform: translateX(0); } 100% { transform: translateX(100px); } }
@keyframes nis-voice { 0% { opacity: .2; transform: scaleY(.8); } 50% { opacity: .6; transform: scaleY(1.1); } 100% { opacity: .3; transform: scaleY(.9); } }

/* hope-confirmed (hc) */
.scn-hope-confirmed {
  background:
    linear-gradient(180deg, #0f1322 0%, #1c1f3a 40%, #2a2e50 70%, #3b3f6a 100%),
    radial-gradient(ellipse at 70% 40%, #3b3f6a 0%, transparent 60%);
}
.scn-hope-confirmed .hc-wall-top,
.scn-hope-confirmed .hc-wall-bottom {
  position: absolute; left: 0; right: 0;
  background: linear-gradient(90deg, #1f1f30 0%, #0f0f18 50%, #1f1f30 100%);
  box-shadow: inset 0 0 20px rgba(0,0,0,.6);
}
.scn-hope-confirmed .hc-wall-top    { top: 0; height: 8%; }
.scn-hope-confirmed .hc-wall-bottom { bottom: 0; height: 30%; }
.scn-hope-confirmed .hc-window {
  position: absolute; top: 8%; left: 15%; right: 15%; bottom: 30%;
  background: linear-gradient(180deg, #1a1e3a 0%, #2a3050 100%);
  border-radius: 30% 30% 0 0;
  box-shadow: inset 0 0 30px rgba(0,0,0,.5);
}
.scn-hope-confirmed .hc-shadows {
  position: absolute; top: 8%; left: 15%; right: 15%; bottom: 30%;
  background: repeating-linear-gradient(90deg, rgba(0,0,0,.3) 0%, transparent 5%, transparent 8%, rgba(0,0,0,.2) 8%, rgba(0,0,0,.2) 12%);
  pointer-events: none;
  animation: hc-shadows 10s ease-in-out infinite alternate;
}
.scn-hope-confirmed .hc-figure {
  position: absolute; bottom: 25%; left: 42%; width: 28px; height: 75px;
  background: linear-gradient(180deg, #2a3040 0%, #1a2028 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hc-figure 6s ease-in-out infinite alternate;
}
.scn-hope-confirmed .hc-voice {
  position: absolute; bottom: 35%; left: 38%; right: 38%; height: 20px;
  background: radial-gradient(ellipse at 50% 50%, rgba(200,180,150,.3) 0%, transparent 70%);
  filter: blur(5px);
  animation: hc-voice 3s ease-in-out infinite alternate;
}
.scn-hope-confirmed .hc-light-beam {
  position: absolute; top: 8%; left: 40%; right: 40%; bottom: 30%;
  background: linear-gradient(180deg, rgba(200,210,240,.2) 0%, transparent 100%);
  clip-path: polygon(30% 0%, 70% 0%, 60% 100%, 40% 100%);
  animation: hc-light 8s ease-in-out infinite alternate;
}
.scn-hope-confirmed .hc-moon {
  position: absolute; top: 3%; right: 20%; width: 45px; height: 45px;
  background: radial-gradient(circle, #d8e0f0 0%, #b0c0e0 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 15px rgba(180,200,230,.5);
  animation: hc-moon 12s ease-in-out infinite alternate;
}
@keyframes hc-shadows { 0% { opacity: .3; } 50% { opacity: .6; } 100% { opacity: .4; } }
@keyframes hc-figure { 0% { transform: translateX(0) rotate(-1deg); } 50% { transform: translateX(2px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes hc-voice { 0% { opacity: .1; transform: scaleY(.8); } 50% { opacity: .5; transform: scaleY(1.2); } 100% { opacity: .2; transform: scaleY(.9); } }
@keyframes hc-light { 0% { opacity: .2; transform: translateY(0); } 50% { opacity: .5; transform: translateY(-5px); } 100% { opacity: .3; transform: translateY(0); } }
@keyframes hc-moon { 0% { opacity: .7; transform: translate(0,0); } 50% { opacity: 1; transform: translate(1px, -1px); } 100% { opacity: .8; transform: translate(0,0); } }

/* Scene 1: emily-reflections-alone */
.scn-emily-reflections-alone { background: linear-gradient(180deg, #2a1f1a 0%, #1a1210 30%, #0f0a08 70%, #080504 100%), radial-gradient(ellipse at 30% 50%, #4a3525 0%, transparent 60%); position:relative; overflow:hidden; width:100%; height:100%; min-height:300px; }
.scn-emily-reflections-alone .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #4a3a2e 0%, #2a1f1a 100%); box-shadow: inset 0 -20px 40px rgba(0,0,0,0.6); }
.scn-emily-reflections-alone .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%); box-shadow: inset 0 10px 20px rgba(0,0,0,0.3); }
.scn-emily-reflections-alone .window { position:absolute; top:15%; left:60%; width:25%; height:40%; background: radial-gradient(ellipse at 50% 50%, #6a5a4a 0%, #2a221a 40%, #0a0804 100%); border: 4px solid #3a2a1a; border-radius: 4px; box-shadow: 0 0 20px rgba(100,80,60,0.3); animation: e1-window 12s ease-in-out infinite alternate; }
.scn-emily-reflections-alone .curtain { position:absolute; top:14%; left:58%; width:30%; height:42%; background: linear-gradient(180deg, rgba(80,60,40,0.6) 0%, rgba(60,40,20,0.3) 100%); border-radius: 0 0 40% 40%; filter: blur(2px); animation: e1-curtain 8s ease-in-out infinite; }
.scn-emily-reflections-alone .chair { position:absolute; bottom:28%; left:35%; width:20%; height:25%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 40% 40% 10% 10% / 60% 60% 20% 20%; box-shadow: 0 4px 8px rgba(0,0,0,0.5); }
.scn-emily-reflections-alone .figure { position:absolute; bottom:30%; left:38%; width:10%; height:22%; background: linear-gradient(180deg, #1a1210 0%, #0a0806 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: e1-figure 4s ease-in-out infinite; }
.scn-emily-reflections-alone .candle { position:absolute; bottom:40%; left:45%; width:3%; height:10%; background: linear-gradient(180deg, #c09040 0%, #8a6020 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 0 10px 2px #ffd070; animation: e1-candle 2s ease-in-out infinite; }
.scn-emily-reflections-alone .glow { position:absolute; bottom:38%; left:40%; width:16%; height:20%; background: radial-gradient(circle, rgba(255,200,100,0.25) 0%, transparent 70%); border-radius: 50%; pointer-events:none; animation: e1-glow 3s ease-in-out infinite alternate; }
@keyframes e1-window { 0% { opacity:0.4; box-shadow: 0 0 10px rgba(100,80,60,0.2); } 50% { opacity:0.7; box-shadow: 0 0 30px rgba(120,90,60,0.4); } 100% { opacity:0.5; box-shadow: 0 0 15px rgba(100,80,60,0.3); } }
@keyframes e1-curtain { 0% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(3px) scaleX(1.02); } 100% { transform: translateX(0) scaleX(1); } }
@keyframes e1-figure { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-1px) rotate(2deg); } 50% { transform: translateY(0) rotate(-1deg); } 75% { transform: translateY(-1px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes e1-candle { 0% { transform: translateY(0) scaleY(1); opacity:0.8; } 50% { transform: translateY(-2px) scaleY(1.1); opacity:1; } 100% { transform: translateY(0) scaleY(1); opacity:0.8; } }
@keyframes e1-glow { 0% { transform: scale(1); opacity:0.6; } 100% { transform: scale(1.2); opacity:1; } }

/* Scene 2: emily-determined-not-to-tell */
.scn-emily-determined-not-to-tell { background: linear-gradient(180deg, #2a1a12 0%, #1a0e08 40%, #0a0604 100%), radial-gradient(ellipse at 60% 40%, #3a2a1a 0%, transparent 70%); position:relative; overflow:hidden; width:100%; height:100%; min-height:300px; }
.scn-emily-determined-not-to-tell .wall { position:absolute; inset:0 0 25% 0; background: linear-gradient(135deg, #3a2a1e 0%, #2a1a12 100%); box-shadow: inset 0 -15px 30px rgba(0,0,0,0.5); }
.scn-emily-determined-not-to-tell .desk { position:absolute; bottom:22%; left:30%; right:20%; height:20%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 4% 4% 0 0; box-shadow: 0 -4px 10px rgba(0,0,0,0.4); }
.scn-emily-determined-not-to-tell .paper { position:absolute; bottom:35%; left:38%; width:20%; height:12%; background: linear-gradient(135deg, #e8dcc8 0%, #c8b498 100%); border-radius: 2px; transform: rotate(-3deg); box-shadow: 0 2px 6px rgba(0,0,0,0.3); animation: e2-paper 6s ease-in-out infinite; }
.scn-emily-determined-not-to-tell .ink { position:absolute; bottom:40%; left:58%; width:5%; height:8%; background: #1a1210; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 2px 4px rgba(0,0,0,0.5); }
.scn-emily-determined-not-to-tell .hand { position:absolute; bottom:36%; left:45%; width:8%; height:14%; background: linear-gradient(180deg, #c8a888 0%, #b09070 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: e2-hand 3s ease-in-out infinite alternate; }
.scn-emily-determined-not-to-tell .candle { position:absolute; bottom:42%; left:32%; width:3%; height:12%; background: linear-gradient(180deg, #c09040 0%, #8a6020 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 0 8px 2px #ffd070; animation: e2-candle 2s ease-in-out infinite; }
.scn-emily-determined-not-to-tell .glow { position:absolute; bottom:40%; left:28%; width:20%; height:20%; background: radial-gradient(circle, rgba(255,200,100,0.2) 0%, transparent 60%); border-radius: 50%; pointer-events:none; animation: e2-glow 3s ease-in-out infinite alternate; }
.scn-emily-determined-not-to-tell .shadow { position:absolute; bottom:20%; left:25%; right:25%; height:30%; background: linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,0.4) 100%); pointer-events:none; }
@keyframes e2-paper { 0% { transform: rotate(-3deg) translateX(0); } 50% { transform: rotate(-2deg) translateX(2px); } 100% { transform: rotate(-3deg) translateX(0); } }
@keyframes e2-hand { 0% { transform: translateY(0) rotate(0deg); } 100% { transform: translateY(-3px) rotate(5deg); } }
@keyframes e2-candle { 0% { transform: translateY(0) scaleY(1); opacity:0.9; } 50% { transform: translateY(-2px) scaleY(1.1); opacity:1; } 100% { transform: translateY(0) scaleY(1); opacity:0.9; } }
@keyframes e2-glow { 0% { transform: scale(1); opacity:0.5; } 100% { transform: scale(1.15); opacity:0.9; } }

/* Scene 3: emily-fears-la-vallee */
.scn-emily-fears-la-vallee { background: linear-gradient(180deg, #1a1210 0%, #2a1e18 30%, #3a2a22 60%, #1a1210 100%), radial-gradient(ellipse at 50% 70%, #4a3a2a 0%, transparent 50%); position:relative; overflow:hidden; width:100%; height:100%; min-height:300px; }
.scn-emily-fears-la-vallee .wall { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #3a2a1e 0%, #2a1a12 100%); box-shadow: inset 0 -20px 40px rgba(0,0,0,0.6); }
.scn-emily-fears-la-vallee .window { position:absolute; top:10%; left:20%; width:60%; height:50%; background: radial-gradient(ellipse at 50% 50%, #4a3a2a 0%, #2a221a 40%, #0a0804 100%); border: 6px solid #2a1a0a; border-radius: 6px; box-shadow: 0 0 30px rgba(60,40,20,0.4); }
.scn-emily-fears-la-vallee .estate-view { position:absolute; top:12%; left:22%; width:56%; height:46%; background: linear-gradient(135deg, #3a3a2a 0%, #1a2a1a 40%, #2a3a2a 100%); border-radius: 4px; filter: blur(8px); opacity:0.6; animation: e3-view 20s ease-in-out infinite alternate; }
.scn-emily-fears-la-vallee .figure { position:absolute; bottom:22%; left:45%; width:10%; height:20%; background: linear-gradient(180deg, #1a1210 0%, #0a0806 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: e3-figure 6s ease-in-out infinite; }
.scn-emily-fears-la-vallee .letter { position:absolute; bottom:26%; left:40%; width:12%; height:15%; background: linear-gradient(135deg, #e8dcc8 0%, #c8b498 100%); border-radius: 2px; transform: rotate(5deg); box-shadow: 0 4px 8px rgba(0,0,0,0.4); animation: e3-letter 10s ease-in-out infinite; }
.scn-emily-fears-la-vallee .candle { position:absolute; bottom:40%; left:30%; width:3%; height:12%; background: linear-gradient(180deg, #c09040 0%, #8a6020 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 0 10px 2px #ffd070; animation: e3-candle 4s ease-in-out infinite; }
.scn-emily-fears-la-vallee .glow.slow { position:absolute; bottom:38%; left:26%; width:20%; height:20%; background: radial-gradient(circle, rgba(255,200,100,0.15) 0%, transparent 60%); border-radius: 50%; pointer-events:none; animation: e3-glow 5s ease-in-out infinite alternate; }
.scn-emily-fears-la-vallee .curtain { position:absolute; top:9%; left:18%; width:64%; height:52%; background: linear-gradient(180deg, rgba(60,40,20,0.5) 0%, rgba(40,20,10,0.2) 100%); border-radius: 0 0 50% 50%; filter: blur(4px); animation: e3-curtain 15s ease-in-out infinite; }
@keyframes e3-view { 0% { transform: scale(1) translateX(0); opacity:0.5; } 50% { transform: scale(1.05) translateX(2px); opacity:0.7; } 100% { transform: scale(1) translateX(0); opacity:0.5; } }
@keyframes e3-figure { 0% { transform: translateY(0) rotate(0deg); } 33% { transform: translateY(-1px) rotate(-1deg); } 66% { transform: translateY(0) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes e3-letter { 0% { transform: rotate(5deg) translateY(0); } 50% { transform: rotate(4deg) translateY(2px); } 100% { transform: rotate(5deg) translateY(0); } }
@keyframes e3-candle { 0% { transform: translateY(0) scaleY(1); opacity:0.6; } 50% { transform: translateY(-2px) scaleY(1.05); opacity:0.9; } 100% { transform: translateY(0) scaleY(1); opacity:0.6; } }
@keyframes e3-glow { 0% { transform: scale(1); opacity:0.3; } 100% { transform: scale(1.2); opacity:0.7; } }
@keyframes e3-curtain { 0% { transform: translateX(0); } 50% { transform: translateX(2px); } 100% { transform: translateX(0); } }

/* Scene 4: emily-resolve-return-france */
.scn-emily-resolve-return-france { background: linear-gradient(180deg, #1a1210 0%, #2a1a12 30%, #3a2218 60%, #1a1210 100%), radial-gradient(ellipse at 40% 50%, #4a2a1a 0%, transparent 60%); position:relative; overflow:hidden; width:100%; height:100%; min-height:300px; }
.scn-emily-resolve-return-france .wall { position:absolute; inset:0 0 20% 0; background: linear-gradient(135deg, #3a2a1e 0%, #2a1a12 100%); box-shadow: inset 0 -10px 20px rgba(0,0,0,0.5); }
.scn-emily-resolve-return-france .trunk { position:absolute; bottom:10%; left:15%; width:30%; height:30%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 6% 6% 4% 4%; box-shadow: 0 8px 16px rgba(0,0,0,0.6); animation: e4-trunk 10s ease-in-out infinite; }
.scn-emily-resolve-return-france .coat { position:absolute; bottom:22%; left:55%; width:15%; height:25%; background: linear-gradient(180deg, #1a1210 0%, #0a0806 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform: rotate(5deg); animation: e4-coat 8s ease-in-out infinite; }
.scn-emily-resolve-return-france .map { position:absolute; top:18%; left:50%; width:30%; height:40%; background: linear-gradient(135deg, #c8b498 0%, #a89070 100%); border-radius: 4px; transform: rotate(2deg); box-shadow: 0 4px 12px rgba(0,0,0,0.4); animation: e4-map 12s ease-in-out infinite; }
.scn-emily-resolve-return-france .figure { position:absolute; bottom:28%; left:42%; width:10%; height:22%; background: linear-gradient(180deg, #1a1210 0%, #0a0806 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: e4-figure 3s ease-in-out infinite alternate; }
.scn-emily-resolve-return-france .candle { position:absolute; bottom:40%; left:25%; width:3%; height:12%; background: linear-gradient(180deg, #c09040 0%, #8a6020 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 0 10px 2px #ffd070; animation: e4-candle 2s ease-in-out infinite; }
.scn-emily-resolve-return-france .glow { position:absolute; bottom:38%; left:21%; width:20%; height:20%; background: radial-gradient(circle, rgba(255,200,100,0.2) 0%, transparent 60%); border-radius: 50%; pointer-events:none; animation: e4-glow 3s ease-in-out infinite alternate; }
.scn-emily-resolve-return-france .door { position:absolute; right:5%; bottom:0; width:15%; height:70%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border: 4px solid #1a0a00; border-bottom: none; border-radius: 4% 4% 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,0.4); }
@keyframes e4-trunk { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes e4-coat { 0% { transform: rotate(5deg) translateX(0); } 50% { transform: rotate(4deg) translateX(2px); } 100% { transform: rotate(5deg) translateX(0); } }
@keyframes e4-map { 0% { transform: rotate(2deg) scale(1); } 50% { transform: rotate(1deg) scale(1.02); } 100% { transform: rotate(2deg) scale(1); } }
@keyframes e4-figure { 0% { transform: translateY(0) rotate(0deg); } 100% { transform: translateY(-2px) rotate(2deg); } }
@keyframes e4-candle { 0% { transform: translateY(0) scaleY(1); opacity:0.8; } 50% { transform: translateY(-2px) scaleY(1.1); opacity:1; } 100% { transform: translateY(0) scaleY(1); opacity:0.8; } }
@keyframes e4-glow { 0% { transform: scale(1); opacity:0.6; } 100% { transform: scale(1.2); opacity:1; } }

.scn-valancourt-dazzled {
  background: radial-gradient(ellipse at 50% 30%, #f4c982 0%, #4a2a1a 70%, #1a0a0a 100%),
              linear-gradient(180deg, #6a3a2a 0%, #2a1a0a 100%);
}
.scn-valancourt-dazzled .chandelier {
  position: absolute; top: 8%; left: 50%; width: 120px; height: 60px;
  transform: translateX(-50%);
  background: radial-gradient(circle at 30% 30%, #ffeaa0 0%, #c8a060 40%, transparent 70%);
  border-radius: 50% 50% 30% 30%;
  filter: blur(2px);
  animation: vc-chandelier 6s ease-in-out infinite alternate;
}
.scn-valancourt-dazzled .curtain-left {
  position: absolute; top: 0; left: 0; width: 30%; height: 100%;
  background: linear-gradient(90deg, #702243 0%, #3a152a 60%, transparent 100%);
  border-radius: 0 60% 60% 0;
  animation: vc-curtain 9s ease-in-out infinite;
}
.scn-valancourt-dazzled .curtain-right {
  position: absolute; top: 0; right: 0; width: 30%; height: 100%;
  background: linear-gradient(270deg, #702243 0%, #3a152a 60%, transparent 100%);
  border-radius: 60% 0 0 60%;
  animation: vc-curtain 9s ease-in-out infinite reverse;
}
.scn-valancourt-dazzled .floor {
  position: absolute; bottom: 0; left: 15%; right: 15%; height: 20%;
  background: linear-gradient(180deg, #8a6a4a 0%, #4a3a2a 100%);
  border-radius: 40% 40% 0 0;
  transform: perspective(400px) rotateX(5deg);
  animation: vc-floor 12s ease-in-out infinite alternate;
}
.scn-valancourt-dazzled .valancourt {
  position: absolute; bottom: 18%; left: 48%; width: 24px; height: 56px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: vc-figure 4s ease-in-out infinite;
}
.scn-valancourt-dazzled .glow-center {
  position: absolute; top: 20%; left: 50%; width: 200px; height: 200px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #ffdda0 0%, #f0b860 30%, transparent 70%);
  mix-blend-mode: screen;
  opacity: 0.5;
  animation: vc-glow-pulse 3s ease-in-out infinite alternate;
}
.scn-valancourt-dazzled .sparkle {
  position: absolute; top: 12%; left: 42%; width: 10px; height: 10px;
  background: radial-gradient(circle, #fff8e0 0%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 20px 4px #ffdda0;
  animation: vc-sparkle 4s ease-in-out infinite;
}
@keyframes vc-chandelier {
  0% { transform: translateX(-50%) rotate(-2deg) scale(1); }
  50% { transform: translateX(-50%) rotate(1deg) scale(1.02); }
  100% { transform: translateX(-50%) rotate(-1deg) scale(1); }
}
@keyframes vc-curtain {
  0% { filter: brightness(0.7); }
  50% { filter: brightness(1); }
  100% { filter: brightness(0.8); }
}
@keyframes vc-floor {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes vc-figure {
  0% { transform: translateX(0) rotate(-1deg); }
  25% { transform: translateX(4px) rotate(1deg); }
  50% { transform: translateX(8px) rotate(-0.5deg); }
  75% { transform: translateX(12px) rotate(0.5deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes vc-glow-pulse {
  0% { opacity: 0.4; transform: translateX(-50%) scale(1); }
  50% { opacity: 0.7; transform: translateX(-50%) scale(1.15); }
  100% { opacity: 0.5; transform: translateX(-50%) scale(1.05); }
}
@keyframes vc-sparkle {
  0% { opacity: 0; transform: translateY(0) scale(0.8); }
  50% { opacity: 1; transform: translateY(-10px) scale(1.2); }
  100% { opacity: 0; transform: translateY(-20px) scale(0.6); }
}

.scn-back-to-udolpho {
  background: linear-gradient(180deg, #0a122a 0%, #1a2a4a 40%, #3a4a6a 100%),
              radial-gradient(ellipse at 50% 100%, #2a3a5a 0%, transparent 80%);
}
.scn-back-to-udolpho .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #1a2a4a 0%, #0a122a 100%);
  animation: bu-sky 15s ease-in-out infinite alternate;
}
.scn-back-to-udolpho .mountains {
  position: absolute; bottom: 35%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%);
  border-radius: 60% 40% 0 0;
  clip-path: polygon(0% 100%, 10% 30%, 20% 60%, 35% 20%, 50% 40%, 65% 15%, 80% 35%, 90% 25%, 100% 100%);
  animation: bu-mountains 20s ease-in-out infinite alternate;
}
.scn-back-to-udolpho .castle {
  position: absolute; bottom: 38%; left: 50%; width: 80px; height: 50px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 10% 10% 0 0;
  clip-path: polygon(0% 100%, 10% 40%, 20% 100%, 30% 20%, 40% 50%, 50% 0%, 60% 50%, 70% 20%, 80% 100%, 90% 40%, 100% 100%);
  animation: bu-castle 8s ease-in-out infinite;
}
.scn-back-to-udolpho .window-frame {
  position: absolute; bottom: 20%; left: 20%; width: 120px; height: 160px;
  border: 6px solid #2a3a4a;
  border-radius: 8px;
  background: transparent;
  animation: bu-window 12s ease-in-out infinite alternate;
}
.scn-back-to-udolpho .emily-silhouette {
  position: absolute; bottom: 22%; left: 22%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #0a0a1a 0%, #000 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform: scaleX(-1);
  animation: bu-figure 6s ease-in-out infinite;
}
.scn-back-to-udolpho .moon {
  position: absolute; top: 12%; right: 20%; width: 40px; height: 40px;
  background: radial-gradient(circle, #c8d0e0 0%, #8a9abd 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(138,154,189,0.4);
  animation: bu-moon 25s linear infinite;
}
.scn-back-to-udolpho .mist {
  position: absolute; bottom: 10%; left: 0; width: 100%; height: 30%;
  background: linear-gradient(180deg, transparent 0%, rgba(200,210,220,0.15) 100%);
  filter: blur(10px);
  animation: bu-mist 18s ease-in-out infinite alternate;
}
@keyframes bu-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes bu-mountains {
  0% { transform: translateY(0px); }
  50% { transform: translateY(-4px); }
  100% { transform: translateY(2px); }
}
@keyframes bu-castle {
  0% { transform: translateX(-50%) scale(1); }
  50% { transform: translateX(-50%) scale(0.95) translateY(-2px); }
  100% { transform: translateX(-50%) scale(1.02); }
}
@keyframes bu-window {
  0% { opacity: 0.6; border-color: #3a4a5a; }
  50% { opacity: 1; border-color: #5a6a7a; }
  100% { opacity: 0.7; border-color: #2a3a4a; }
}
@keyframes bu-figure {
  0% { transform: scaleX(-1) translateX(0) rotate(-1deg); }
  25% { transform: scaleX(-1) translateX(3px) rotate(1deg); }
  50% { transform: scaleX(-1) translateX(6px) rotate(0deg); }
  75% { transform: scaleX(-1) translateX(3px) rotate(-1deg); }
  100% { transform: scaleX(-1) translateX(0) rotate(0deg); }
}
@keyframes bu-moon {
  0% { transform: translateX(0); opacity: 0.8; }
  50% { transform: translateX(-10px); opacity: 1; }
  100% { transform: translateX(0); opacity: 0.8; }
}
@keyframes bu-mist {
  0% { opacity: 0.2; transform: translateY(0); }
  50% { opacity: 0.5; transform: translateY(-8px); }
  100% { opacity: 0.3; transform: translateY(4px); }
}

.scn-madame-montoni-dilemma {
  background: linear-gradient(180deg, #1a1310 0%, #2a1a10 40%, #3a2218 100%),
              radial-gradient(ellipse at 50% 70%, #4a2a1a 0%, transparent 70%);
}
.scn-madame-montoni-dilemma .wall {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, #3a2218 0%, #4a2a1a 50%, #2a1a10 100%);
  animation: mm-wall 20s ease-in-out infinite alternate;
}
.scn-madame-montoni-dilemma .table {
  position: absolute; bottom: 25%; left: 30%; right: 30%; height: 8%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2218 100%);
  border-radius: 10% 10% 0 0;
  transform: perspective(300px) rotateX(10deg);
  animation: mm-table 12s ease-in-out infinite;
}
.scn-madame-montoni-dilemma .candle {
  position: absolute; bottom: 30%; left: 45%; width: 8px; height: 40px;
  background: linear-gradient(180deg, #f0d0a0 0%, #c8a070 20%, #3a2218 100%);
  border-radius: 20% 20% 10% 10%;
  transform-origin: bottom center;
  animation: mm-candle 3s ease-in-out infinite alternate;
}
.scn-madame-montoni-dilemma .montoni {
  position: absolute; bottom: 20%; left: 20%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #1a0a0a 0%, #0a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: mm-figure 5s ease-in-out infinite;
}
.scn-madame-montoni-dilemma .madame {
  position: absolute; bottom: 20%; right: 20%; width: 36px; height: 70px;
  background: linear-gradient(180deg, #3a1a1a 0%, #2a1010 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: mm-figure 5s ease-in-out infinite reverse;
}
.scn-madame-montoni-dilemma .shadow-intense {
  position: absolute; bottom: 0; left: 10%; width: 80%; height: 40%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.6) 100%);
  animation: mm-shadow 8s ease-in-out infinite alternate;
}
@keyframes mm-wall {
  0% { filter: brightness(0.8); }
  50% { filter: brightness(1); }
  100% { filter: brightness(0.9); }
}
@keyframes mm-table {
  0% { transform: perspective(300px) rotateX(10deg) translateY(0); }
  50% { transform: perspective(300px) rotateX(10deg) translateY(-2px); }
  100% { transform: perspective(300px) rotateX(10deg) translateY(0); }
}
@keyframes mm-candle {
  0% { transform: rotate(-2deg); opacity: 0.9; }
  50% { transform: rotate(2deg); opacity: 1; }
  100% { transform: rotate(-1deg); opacity: 0.8; }
}
@keyframes mm-figure {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-3px) rotate(-2deg); }
  50% { transform: translateY(0) rotate(0deg); }
  75% { transform: translateY(-1px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes mm-shadow {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}

.scn-emily-tries-to-sooth {
  background: linear-gradient(180deg, #2a1a12 0%, #3a2218 40%, #4a2a1a 100%),
              radial-gradient(ellipse at 50% 30%, #5a3a2a 0%, transparent 80%);
}
.scn-emily-tries-to-sooth .window-arch {
  position: absolute; top: 5%; left: 10%; right: 10%; height: 40%;
  border: 8px solid #2a1a10;
  border-radius: 50% 50% 0 0;
  background: transparent;
  animation: et-window 20s ease-in-out infinite alternate;
}
.scn-emily-tries-to-sooth .sofa {
  position: absolute; bottom: 18%; left: 25%; right: 25%; height: 20%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2218 100%);
  border-radius: 20% 20% 10% 10%;
  transform: perspective(400px) rotateX(5deg);
  animation: et-sofa 15s ease-in-out infinite;
}
.scn-emily-tries-to-sooth .emily-soothing {
  position: absolute; bottom: 22%; left: 30%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #2a1a12 0%, #1a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: et-figure 6s ease-in-out infinite alternate;
}
.scn-emily-tries-to-sooth .aunt-madame {
  position: absolute; bottom: 22%; right: 30%; width: 34px; height: 64px;
  background: linear-gradient(180deg, #3a1a1a 0%, #2a1010 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: et-figure 6s ease-in-out infinite alternate 0.5s;
}
.scn-emily-tries-to-sooth .lamp-glow {
  position: absolute; top: 15%; left: 20%; width: 60px; height: 60px;
  background: radial-gradient(circle, #f0c060 0%, #c08840 40%, transparent 70%);
  mix-blend-mode: screen;
  opacity: 0.6;
  animation: et-lamp 4s ease-in-out infinite alternate;
}
.scn-emily-tries-to-sooth .rug {
  position: absolute; bottom: 5%; left: 20%; right: 20%; height: 12%;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a10 100%);
  border-radius: 30% 30% 0 0;
  animation: et-rug 25s linear infinite;
}
.scn-emily-tries-to-sooth .drapes {
  position: absolute; top: 0; left: 5%; width: 12%; height: 100%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2218 100%);
  clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 0% 100%);
  animation: et-drapes 12s ease-in-out infinite alternate;
  filter: drop-shadow(4px 0 6px rgba(0,0,0,0.5));
}
@keyframes et-window {
  0% { border-color: #3a2218; opacity: 0.8; }
  50% { border-color: #5a3a2a; opacity: 1; }
  100% { border-color: #2a1a10; opacity: 0.9; }
}
@keyframes et-sofa {
  0% { transform: perspective(400px) rotateX(5deg) translateY(0); }
  50% { transform: perspective(400px) rotateX(5deg) translateY(-3px); }
  100% { transform: perspective(400px) rotateX(5deg) translateY(0); }
}
@keyframes et-figure {
  0% { transform: translateY(0) rotate(-1deg); }
  25% { transform: translateY(-3px) rotate(1deg); }
  50% { transform: translateY(-1px) rotate(0deg); }
  75% { transform: translateY(-2px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes et-lamp {
  0% { opacity: 0.5; transform: scale(1); }
  50% { opacity: 0.8; transform: scale(1.1); }
  100% { opacity: 0.6; transform: scale(0.95); }
}
@keyframes et-rug {
  0% { background-position: 0% 50%; }
  50% { background-position: 50% 50%; }
  100% { background-position: 100% 50%; }
}
@keyframes et-drapes {
  0% { clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 0% 100%); }
  50% { clip-path: polygon(0% 0%, 100% 0%, 75% 100%, 0% 100%); }
  100% { clip-path: polygon(0% 0%, 100% 0%, 85% 100%, 0% 100%); }
}

/* praise-of-nature */
.scn-praise-of-nature {
  background: linear-gradient(180deg, #fbe7c6 0%, #f5cba7 40%, #d4a373 100%), radial-gradient(ellipse at 50% 30%, #fff5e1 0%, transparent 60%);
}
.scn-praise-of-nature .pn-sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #a3d2ca 0%, #f5e6c8 100%);
  animation: pn-sky 20s ease-in-out infinite alternate;
}
.scn-praise-of-nature .pn-sun {
  position: absolute; top: 8%; left: 60%; width: 50px; height: 50px;
  background: radial-gradient(circle, #ffdd77 0%, #ffb347 60%, transparent 70%);
  border-radius: 50%; box-shadow: 0 0 60px 20px rgba(255, 179, 71, 0.6);
  animation: pn-sun 15s ease-in-out infinite;
}
.scn-praise-of-nature .pn-hills {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #8db580 0%, #5a7a4a 100%);
  border-radius: 40% 60% 0 0 / 80% 70% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.2);
  animation: pn-hills 18s ease-in-out infinite alternate;
}
.scn-praise-of-nature .pn-tree {
  position: absolute; bottom: 32%; left: 35%; width: 20px; height: 70px;
  background: linear-gradient(180deg, #6b4226 0%, #3e2723 100%);
  border-radius: 20% 20% 0 0;
  transform-origin: bottom center;
  animation: pn-tree 12s ease-in-out infinite;
}
.scn-praise-of-nature .pn-tree::before {
  content: ''; position: absolute; top: -40px; left: -30px; width: 80px; height: 60px;
  background: radial-gradient(ellipse, #5a9e3a 0%, #3d7a2a 70%, transparent 100%);
  border-radius: 50%;
}
.scn-praise-of-nature .pn-figure {
  position: absolute; bottom: 20%; left: 50%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pn-figure 6s ease-in-out infinite;
}
.scn-praise-of-nature .pn-flowers {
  position: absolute; bottom: 5%; left: 10%; right: 10%; height: 8%;
  background: radial-gradient(ellipse at 20% 50%, #e8b84b 0%, transparent 30%),
              radial-gradient(ellipse at 40% 50%, #c9a959 0%, transparent 30%),
              radial-gradient(ellipse at 60% 50%, #e8b84b 0%, transparent 30%);
  animation: pn-flowers 8s ease-in-out infinite alternate;
}
.scn-praise-of-nature .pn-cloud {
  position: absolute; height: 20px; background: linear-gradient(180deg, rgba(255,255,240,0.8) 0%, rgba(255,255,240,0.2) 100%);
  border-radius: 50%; filter: blur(5px);
}
.scn-praise-of-nature .pn-cloud-a { top: 12%; left: 10%; width: 100px; animation: pn-clouds 35s linear infinite; }
.scn-praise-of-nature .pn-cloud-b { top: 18%; left: 60%; width: 70px; animation: pn-clouds 45s linear infinite reverse; }
@keyframes pn-sky { 0%{opacity:0.7} 50%{opacity:1} 100%{opacity:0.8} }
@keyframes pn-sun { 0%,100%{transform:scale(1) rotate(0deg)} 50%{transform:scale(1.05) rotate(5deg)} }
@keyframes pn-hills { 0%{transform:translateY(0)} 50%{transform:translateY(-4px)} 100%{transform:translateY(0)} }
@keyframes pn-tree { 0%,100%{transform:rotate(0)} 50%{transform:rotate(3deg)} }
@keyframes pn-figure { 0%{transform:translateY(0) rotate(-2deg)} 25%{transform:translateY(-1px) rotate(0)} 50%{transform:translateY(0) rotate(2deg)} 75%{transform:translateY(-1px) rotate(0)} 100%{transform:translateY(0) rotate(-2deg)} }
@keyframes pn-flowers { 0%{opacity:0.8; transform:scaleY(1)} 50%{opacity:1; transform:scaleY(1.05)} 100%{opacity:0.85; transform:scaleY(0.95)} }
@keyframes pn-clouds { 0%{transform:translateX(-30px)} 100%{transform:translateX(120vw)} }

/* morning-activities */
.scn-morning-activities {
  background: linear-gradient(180deg, #b2d8d8 0%, #93c3c3 35%, #6ba3a3 70%, #3d7a7a 100%),
              radial-gradient(ellipse at 50% 80%, #4a8c8c 0%, transparent 60%);
}
.scn-morning-activities .ma-sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #fce4b8 0%, #ffd580 40%, #b8d4c8 100%);
  animation: ma-sky 16s ease-in-out infinite alternate;
}
.scn-morning-activities .ma-water {
  position: absolute; bottom: 0; left: 0; right: 0; height: 55%;
  background: linear-gradient(180deg, #7fc0c0 0%, #4d7a7a 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.2);
  animation: ma-water 12s ease-in-out infinite alternate;
}
.scn-morning-activities .ma-shore {
  position: absolute; bottom: 35%; left: 0; right: 0; height: 18%;
  background: linear-gradient(180deg, #d4b87a 0%, #a68a5a 100%);
  border-radius: 0 0 40% 40% / 0 0 20% 20%;
  box-shadow: inset 0 5px 10px rgba(0,0,0,0.3);
}
.scn-morning-activities .ma-boat {
  position: absolute; bottom: 40%; left: 30%; width: 40px; height: 18px;
  background: linear-gradient(180deg, #6b4226 0%, #4a2e1a 100%);
  border-radius: 0 0 30% 30% / 0 0 60% 60%;
  transform-origin: center bottom;
  animation: ma-boat 5s ease-in-out infinite;
}
.scn-morning-activities .ma-figure {
  position: absolute; bottom: 42%; left: 32%; width: 12px; height: 22px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ma-figure 4s ease-in-out infinite;
}
.scn-morning-activities .ma-cloud {
  position: absolute; height: 16px; background: linear-gradient(180deg, rgba(255,255,255,0.8) 0%, rgba(255,255,255,0.2) 100%);
  border-radius: 50%; filter: blur(4px);
}
.scn-morning-activities .ma-cloud-a { top: 15%; left: 20%; width: 90px; animation: ma-clouds 50s linear infinite; }
.scn-morning-activities .ma-cloud-b { top: 22%; left: 70%; width: 60px; animation: ma-clouds 40s linear infinite reverse; }
@keyframes ma-sky { 0%{opacity:0.8} 50%{opacity:1} 100%{opacity:0.9} }
@keyframes ma-water { 0%{background-position:0 0} 50%{background-position:10px 0} 100%{background-position:0 0} }
@keyframes ma-boat { 0%,100%{transform:rotate(0) translateY(0)} 50%{transform:rotate(3deg) translateY(-2px)} }
@keyframes ma-figure { 0%{transform:translateY(0) rotate(-1deg)} 25%{transform:translateY(-1px) rotate(0)} 50%{transform:translateY(0) rotate(1deg)} 75%{transform:translateY(-1px) rotate(0)} 100%{transform:translateY(0) rotate(-1deg)} }
@keyframes ma-clouds { 0%{transform:translateX(-30px)} 100%{transform:translateX(120vw)} }

/* blanche-wanders */
.scn-blanche-wanders {
  background: linear-gradient(180deg, #cfe3c8 0%, #a5c9a0 30%, #7aad70 60%, #4d7a3a 100%),
              radial-gradient(ellipse at 50% 100%, #5a8a4a 0%, transparent 70%);
}
.scn-blanche-wanders .bw-sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #eff7e6 0%, #d4e8c8 100%);
  animation: bw-sky 18s ease-in-out infinite alternate;
}
.scn-blanche-wanders .bw-forest {
  position: absolute; bottom: 0; left: 0; right: 0; height: 60%;
  background: linear-gradient(180deg, #3a5a2a 0%, #1a2a0a 100%);
  border-radius: 0 70% 0 0 / 0 40% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.4);
}
.scn-blanche-wanders .bw-tree {
  position: absolute; bottom: 20%; width: 50px; height: 80px;
  transform-origin: bottom center;
}
.scn-blanche-wanders .bw-tree-a { left: 25%; background: radial-gradient(ellipse at 50% 20%, #4a7a3a 0%, #2a5a1a 70%, transparent 100%); animation: bw-tree-a 14s ease-in-out infinite; }
.scn-blanche-wanders .bw-tree-b { left: 55%; width: 60px; height: 90px; background: radial-gradient(ellipse at 50% 20%, #3a6a2a 0%, #1a4a0a 70%, transparent 100%); animation: bw-tree-b 16s ease-in-out infinite reverse; }
.scn-blanche-wanders .bw-path {
  position: absolute; bottom: 8%; left: 20%; right: 20%; height: 6%;
  background: linear-gradient(180deg, #c9b07a 0%, #a0895a 100%);
  border-radius: 40% / 50%;
  animation: bw-path 8s ease-in-out infinite alternate;
}
.scn-blanche-wanders .bw-figure {
  position: absolute; bottom: 22%; left: 45%; width: 14px; height: 30px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: bw-figure 4s ease-in-out infinite;
}
.scn-blanche-wanders .bw-light {
  position: absolute; top: 8%; left: 30%; right: 30%; height: 40%;
  background: radial-gradient(ellipse at 50% 0%, rgba(255,230,180,0.4) 0%, transparent 70%);
  filter: blur(10px);
  animation: bw-light 10s ease-in-out infinite alternate;
}
@keyframes bw-sky { 0%{opacity:0.7} 50%{opacity:1} 100%{opacity:0.8} }
@keyframes bw-tree-a { 0%,100%{transform:rotate(0)} 50%{transform:rotate(4deg)} }
@keyframes bw-tree-b { 0%,100%{transform:rotate(0)} 50%{transform:rotate(-5deg)} }
@keyframes bw-path { 0%{opacity:0.6; transform:scaleX(1)} 50%{opacity:0.8; transform:scaleX(1.05)} 100%{opacity:0.7; transform:scaleX(0.95)} }
@keyframes bw-figure { 0%{transform:translateY(0) rotate(-2deg) scaleX(1)} 25%{transform:translateY(-1px) rotate(-1deg) scaleX(1.01)} 50%{transform:translateY(0) rotate(0) scaleX(1)} 75%{transform:translateY(-1px) rotate(1deg) scaleX(1.01)} 100%{transform:translateY(0) rotate(2deg) scaleX(1)} }
@keyframes bw-light { 0%{opacity:0.3; transform:scaleY(1)} 50%{opacity:0.6; transform:scaleY(1.1)} 100%{opacity:0.4; transform:scaleY(0.9)} }

/* butterfly-poem */
.scn-butterfly-poem {
  background: linear-gradient(180deg, #f2e8d5 0%, #d9c9a3 40%, #bfa87a 100%),
              radial-gradient(ellipse at 50% 30%, #fff7e6 0%, transparent 60%);
}
.scn-butterfly-poem .bp-garden {
  position: absolute; inset: 0;
  background: radial-gradient(circle at 30% 70%, #a8d0a0 0%, transparent 50%),
              radial-gradient(circle at 70% 30%, #c5a0c0 0%, transparent 50%);
  opacity: 0.4; animation: bp-garden 12s ease-in-out infinite alternate;
}
.scn-butterfly-poem .bp-flower-stem {
  position: absolute; bottom: 10%; left: 50%; width: 6px; height: 120px;
  background: linear-gradient(180deg, #5a8a3a 0%, #2a5a1a 100%);
  border-radius: 0 0 20% 20%;
  transform: translateX(-5px);
  animation: bp-stem 8s ease-in-out infinite;
}
.scn-butterfly-poem .bp-flower {
  position: absolute; bottom: 55%; left: 50%; width: 40px; height: 40px;
  background: radial-gradient(circle, #f0b0c0 0%, #c87a90 60%, transparent 70%);
  border-radius: 50%;
  transform: translateX(-25px);
  box-shadow: 0 0 20px 10px rgba(200, 122, 144, 0.3);
  animation: bp-flower 10s ease-in-out infinite alternate;
}
.scn-butterfly-poem .bp-butterfly {
  position: absolute; bottom: 60%; left: 45%; width: 20px; height: 10px;
  background: linear-gradient(180deg, #a050a0 0%, #602060 100%);
  border-radius: 50% 50% 20% 20% / 50% 50% 10% 10%;
  transform-origin: center 0%;
  animation: bp-butterfly 2s ease-in-out infinite;
}
.scn-butterfly-poem .bp-wing {
  position: absolute; bottom: 58%; width: 16px; height: 16px;
  background: radial-gradient(ellipse, #d080d0 0%, #a050a0 50%, transparent 70%);
  border-radius: 50%;
  animation: bp-wing 0.4s ease-in-out infinite alternate;
}
.scn-butterfly-poem .bp-wing-l { left: 42%; transform-origin: right bottom; animation-delay: 0s; }
.scn-butterfly-poem .bp-wing-r { left: 50%; transform-origin: left bottom; animation-delay: 0.1s; }
.scn-butterfly-poem .bp-light {
  position: absolute; top: 0; left: 0; right: 0; bottom: 0;
  background: radial-gradient(ellipse at 60% 30%, rgba(255,230,150,0.3) 0%, transparent 60%);
  mix-blend-mode: overlay;
  animation: bp-light 6s ease-in-out infinite alternate;
}
@keyframes bp-garden { 0%{opacity:0.3; transform:scale(1)} 50%{opacity:0.5; transform:scale(1.02)} 100%{opacity:0.4; transform:scale(0.98)} }
@keyframes bp-stem { 0%,100%{transform:translateX(-5px) rotate(0)} 50%{transform:translateX(-5px) rotate(3deg)} }
@keyframes bp-flower { 0%{transform:translateX(-25px) scale(1)} 50%{transform:translateX(-25px) scale(1.05)} 100%{transform:translateX(-25px) scale(0.95)} }
@keyframes bp-butterfly { 0%,100%{transform:translateY(0) rotate(0)} 50%{transform:translateY(-5px) rotate(10deg)} }
@keyframes bp-wing { 0%{transform:scaleX(1) rotate(0)} 100%{transform:scaleX(0.3) rotate(15deg)} }
@keyframes bp-light { 0%{opacity:0.2} 50%{opacity:0.5} 100%{opacity:0.3} }

/* solitude-and-terror - dim interior, door, figure, candle */
.scn-solitude-and-terror {
  background:
    linear-gradient(180deg, #1c1620 0%, #2a1f2d 40%, #382a3a 70%, #1c1620 100%),
    radial-gradient(ellipse at 30% 70%, #4a3a4a 0%, transparent 60%);
}
.scn-solitude-and-terror .wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #2a1f2d 0%, #1c1620 100%);
  animation: st-wall 12s ease-in-out infinite alternate;
}
.scn-solitude-and-terror .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #1a141a 0%, #0e0a0e 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.6);
}
.scn-solitude-and-terror .door {
  position: absolute; bottom: 22%; left: 40%; width: 80px; height: 130px;
  background: linear-gradient(180deg, #3a2a30 0%, #1e1418 100%);
  border-radius: 2% 2% 0 0;
  box-shadow: 0 0 20px 4px rgba(20,10,15,0.8);
  animation: st-door 8s ease-in-out infinite;
}
.scn-solitude-and-terror .figure {
  position: absolute; bottom: 22%; left: 28%; width: 28px; height: 70px;
  background: linear-gradient(180deg, #1a1218 0%, #0a060a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: st-figure 4s ease-in-out infinite;
}
.scn-solitude-and-terror .candle {
  position: absolute; bottom: 26%; left: 52%; width: 8px; height: 22px;
  background: linear-gradient(180deg, #b08860 0%, #6a4a30 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 12px 4px #b08040;
  animation: st-candle-sway 3s ease-in-out infinite;
}
.scn-solitude-and-terror .candle-halo {
  position: absolute; bottom: 28%; left: 50%; width: 60px; height: 60px;
  background: radial-gradient(circle, rgba(200,150,80,0.15) 0%, transparent 70%);
  transform: translate(-50%, 30%);
  filter: blur(8px);
  animation: st-halo 5s ease-in-out infinite alternate;
}
.scn-solitude-and-terror .shadow {
  position: absolute; bottom: 0; left: 25%; width: 100px; height: 100px;
  background: radial-gradient(ellipse 60% 40%, rgba(0,0,0,0.6) 0%, transparent 80%);
  filter: blur(15px);
  animation: st-shadow-drift 7s ease-in-out infinite;
}
@keyframes st-wall { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes st-door { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(1.01) } }
@keyframes st-figure { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(2px) rotate(1deg) } 50% { transform: translateX(0) rotate(-1deg) } 75% { transform: translateX(-2px) rotate(1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes st-candle-sway { 0% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-1deg) } }
@keyframes st-halo { 0% { opacity: 0.4; transform: translate(-50%, 30%) scale(0.95) } 100% { opacity: 0.7; transform: translate(-50%, 30%) scale(1.05) } }
@keyframes st-shadow-drift { 0% { transform: translateX(0); opacity: 0.5 } 50% { transform: translateX(5px); opacity: 0.8 } 100% { transform: translateX(-3px); opacity: 0.6 } }

/* imaginary-terrors - large dim chamber, bed, figure sitting, apparition */
.scn-imaginary-terrors {
  background:
    linear-gradient(180deg, #1a1420 0%, #2c2230 35%, #3a2e40 70%, #1a1420 100%),
    radial-gradient(ellipse at 60% 40%, #3a2e40 0%, transparent 60%);
}
.scn-imaginary-terrors .chamber-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2c2230 0%, #1a1420 100%);
  animation: it-wall 15s ease-in-out infinite alternate;
}
.scn-imaginary-terrors .chamber-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #18121c 0%, #0c0810 100%);
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.7);
}
.scn-imaginary-terrors .bed {
  position: absolute; bottom: 20%; left: 20%; right: 20%; height: 50px;
  background: linear-gradient(180deg, #3a3040 0%, #1c1620 100%);
  border-radius: 4%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.6);
  animation: it-bed-breathe 10s ease-in-out infinite;
}
.scn-imaginary-terrors .figure-sitting {
  position: absolute; bottom: 28%; left: 38%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #1a1420 0%, #0a060e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: it-figure 5s ease-in-out infinite;
}
.scn-imaginary-terrors .shadow-shape {
  position: absolute; bottom: 0; left: 30%; width: 200px; height: 150px;
  background: radial-gradient(ellipse 50% 80%, rgba(0,0,0,0.5) 0%, transparent 80%);
  filter: blur(20px);
  animation: it-shadow 8s ease-in-out infinite alternate;
}
.scn-imaginary-terrors .faint-apparition {
  position: absolute; bottom: 40%; right: 22%; width: 40px; height: 80px;
  background: radial-gradient(ellipse 60% 100%, rgba(200,180,220,0.08) 0%, transparent 70%);
  filter: blur(12px);
  animation: it-apparition 6s ease-in-out infinite;
}
.scn-imaginary-terrors .candle-sconce {
  position: absolute; bottom: 50%; left: 12%; width: 12px; height: 30px;
  background: linear-gradient(180deg, #705840 0%, #3a2a20 100%);
  border-radius: 20%;
  box-shadow: 0 0 10px 2px #a08050;
  animation: it-sconce 4s ease-in-out infinite alternate;
}
.scn-imaginary-terrors .candle-glint {
  position: absolute; bottom: 52%; left: 12.5%; width: 8px; height: 8px;
  background: radial-gradient(circle, #ffc080 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(2px);
  animation: it-glint 2s ease-in-out infinite alternate;
}
@keyframes it-wall { 0% { opacity: 0.85 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes it-bed-breathe { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.005) } 100% { transform: scaleY(1) } }
@keyframes it-figure { 0% { transform: translateX(0) rotate(0deg) scale(1) } 30% { transform: translateX(2px) rotate(2deg) scale(1.02) } 60% { transform: translateX(-1px) rotate(-1deg) scale(0.98) } 100% { transform: translateX(0) rotate(0deg) scale(1) } }
@keyframes it-shadow { 0% { transform: translateX(0) scale(1); opacity: 0.4 } 100% { transform: translateX(10px) scale(1.1); opacity: 0.7 } }
@keyframes it-apparition { 0% { opacity: 0.2; transform: scale(0.9) } 50% { opacity: 0.5; transform: scale(1) } 100% { opacity: 0.1; transform: scale(1.05) } }
@keyframes it-sconce { 0% { transform: rotate(-2deg) } 100% { transform: rotate(2deg) } }
@keyframes it-glint { 0% { opacity: 0.6 } 100% { opacity: 1 } }

/* slumber-interrupted - bed, window, moonbeam, dark presence */
.scn-slumber-interrupted {
  background:
    linear-gradient(180deg, #141820 0%, #1e2430 40%, #2c3140 70%, #141820 100%),
    radial-gradient(ellipse at 70% 30%, #2c3140 0%, transparent 50%);
}
.scn-slumber-interrupted .room-back {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #1e2430 0%, #141820 100%);
  animation: si-room 20s ease-in-out infinite alternate;
}
.scn-slumber-interrupted .window {
  position: absolute; top: 12%; right: 10%; width: 80px; height: 100px;
  background: linear-gradient(180deg, #4a5060 0%, #2a3040 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: inset 0 0 30px rgba(100,120,180,0.3);
  animation: si-window 10s ease-in-out infinite alternate;
}
.scn-slumber-interrupted .moonbeam {
  position: absolute; top: 15%; right: 12%; width: 40px; height: 200px;
  background: linear-gradient(180deg, rgba(180,200,255,0.08) 0%, transparent 80%);
  filter: blur(6px);
  animation: si-moonbeam 12s ease-in-out infinite;
}
.scn-slumber-interrupted .bed-2 {
  position: absolute; bottom: 18%; left: 10%; right: 40%; height: 60px;
  background: linear-gradient(180deg, #3a3840 0%, #1c1a20 100%);
  border-radius: 6% 6% 4% 4%;
  box-shadow: 0 6px 20px rgba(0,0,0,0.5);
  animation: si-bed 8s ease-in-out infinite;
}
.scn-slumber-interrupted .figure-upright {
  position: absolute; bottom: 28%; left: 18%; width: 28px; height: 65px;
  background: linear-gradient(180deg, #181c24 0%, #0a0c10 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: si-figure-upright 4s ease-in-out infinite;
}
.scn-slumber-interrupted .dark-presence {
  position: absolute; bottom: 20%; right: 20%; width: 50px; height: 100px;
  background: radial-gradient(ellipse 60% 100%, rgba(0,0,0,0.7) 0%, transparent 80%);
  filter: blur(10px);
  animation: si-dark-presence 6s ease-in-out infinite alternate;
}
.scn-slumber-interrupted .pillow {
  position: absolute; bottom: 22%; left: 12%; width: 40px; height: 16px;
  background: linear-gradient(180deg, #4a4850 0%, #2a2830 100%);
  border-radius: 40% 40% 20% 20%;
  animation: si-pillow 5s ease-in-out infinite alternate;
}
.scn-slumber-interrupted .coverlet {
  position: absolute; bottom: 14%; left: 8%; width: 160px; height: 20px;
  background: linear-gradient(180deg, #3a3840 0%, #1c1a20 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: si-coverlet 7s ease-in-out infinite;
}
@keyframes si-room { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes si-window { 0% { opacity: 0.7; transform: scale(0.98) } 100% { opacity: 1; transform: scale(1.02) } }
@keyframes si-moonbeam { 0% { opacity: 0.3; transform: translateY(0) } 50% { opacity: 0.6; transform: translateY(-10px) } 100% { opacity: 0.2; transform: translateY(5px) } }
@keyframes si-bed { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes si-figure-upright { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(1px) rotate(2deg) scale(1.02) } 50% { transform: translateX(-1px) rotate(-1deg) scale(0.98) } 75% { transform: translateX(2px) rotate(1deg) scale(1.01) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes si-dark-presence { 0% { opacity: 0.3; transform: scale(0.95) } 100% { opacity: 0.7; transform: scale(1.05) } }
@keyframes si-pillow { 0% { transform: translateY(0) } 100% { transform: translateY(-4px) } }
@keyframes si-coverlet { 0% { transform: translateY(0) scaleX(1) } 50% { transform: translateY(-1px) scaleX(1.01) } 100% { transform: translateY(0) scaleX(1) } }

/* annette-announces-bustle - doorway, two figures (Emily seated, Annette entering), candle */
.scn-annette-announces-bustle {
  background:
    linear-gradient(180deg, #1c1820 0%, #2c2430 40%, #3a3040 70%, #1c1820 100%),
    radial-gradient(ellipse at 40% 50%, #3a3040 0%, transparent 50%);
}
.scn-annette-announces-bustle .bg-room {
  position: absolute; inset: 0 0 28% 0;
  background: linear-gradient(180deg, #2c2430 0%, #1c1820 100%);
  animation: aa-room 14s ease-in-out infinite alternate;
}
.scn-annette-announces-bustle .doorway {
  position: absolute; bottom: 20%; left: 60%; width: 70px; height: 140px;
  background: linear-gradient(180deg, #2c2430 0%, #140e18 100%);
  border-radius: 2% 2% 0 0;
  box-shadow: 0 0 30px 8px rgba(0,0,0,0.7);
  animation: aa-doorway 9s ease-in-out infinite;
}
.scn-annette-announces-bustle .figure-emily {
  position: absolute; bottom: 22%; left: 25%; width: 28px; height: 62px;
  background: linear-gradient(180deg, #1a1420 0%, #0a060e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: aa-emily 4s ease-in-out infinite;
}
.scn-annette-announces-bustle .figure-annette {
  position: absolute; bottom: 20%; left: 65%; width: 26px; height: 68px;
  background: linear-gradient(180deg, #1c1820 0%, #0c0810 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: aa-annette 5s ease-in-out infinite;
}
.scn-annette-announces-bustle .candle-stand {
  position: absolute; bottom: 26%; left: 43%; width: 6px; height: 30px;
  background: linear-gradient(180deg, #7a6040 0%, #3a2a18 100%);
  border-radius: 10%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.5);
}
.scn-annette-announces-bustle .candle-light {
  position: absolute; bottom: 30%; left: 42.5%; width: 14px; height: 14px;
  background: radial-gradient(circle, #ffcc80 0%, #b08040 50%, transparent 70%);
  border-radius: 50%;
  filter: blur(3px);
  animation: aa-candlelight 3s ease-in-out infinite alternate;
}
.scn-annette-announces-bustle .bedpost {
  position: absolute; bottom: 18%; left: 10%; width: 10px; height: 70px;
  background: linear-gradient(180deg, #3a3040 0%, #1c1820 100%);
  border-radius: 10%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.4);
  animation: aa-bedpost 8s ease-in-out infinite alternate;
}
.scn-annette-announces-bustle .shadow-anxiety {
  position: absolute; bottom: 0; left: 20%; width: 150px; height: 100px;
  background: radial-gradient(ellipse 70% 50%, rgba(0,0,0,0.6) 0%, transparent 80%);
  filter: blur(20px);
  animation: aa-shadow-anxiety 6s ease-in-out infinite;
}
@keyframes aa-room { 0% { opacity: 0.85 } 50% { opacity: 1 } 100% { opacity: 0.8 } }
@keyframes aa-doorway { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.01) } 100% { transform: scaleY(1) } }
@keyframes aa-emily { 0% { transform: translateX(0) rotate(0deg) scale(1) } 25% { transform: translateX(1px) rotate(2deg) scale(1.02) } 50% { transform: translateX(-2px) rotate(-1deg) scale(0.98) } 75% { transform: translateX(2px) rotate(1deg) scale(1.01) } 100% { transform: translateX(0) rotate(0deg) scale(1) } }
@keyframes aa-annette { 0% { transform: translateX(0) rotate(0deg) scale(1) } 30% { transform: translateX(-5px) rotate(2deg) scale(1.03) } 60% { transform: translateX(-10px) rotate(-1deg) scale(0.97) } 100% { transform: translateX(-15px) rotate(0deg) scale(1) } }
@keyframes aa-candlelight { 0% { opacity: 0.5; transform: scale(0.9) } 100% { opacity: 1; transform: scale(1.1) } }
@keyframes aa-bedpost { 0% { transform: scaleY(1) } 100% { transform: scaleY(1.02) } }
@keyframes aa-shadow-anxiety { 0% { transform: translateX(0); opacity: 0.4 } 50% { transform: translateX(8px); opacity: 0.7 } 100% { transform: translateX(-4px); opacity: 0.5 } }

/* hasty-departure — tense, dark interior */
.scn-hasty-departure { background: linear-gradient(180deg, #1a1410 0%, #2a1e16 40%, #1c1410 100%), radial-gradient(ellipse at 30% 60%, #3a2818 0%, transparent 70%); }
.scn-hasty-departure .wall-dark { position:absolute; inset:0; background: linear-gradient(135deg, #1e1814 0%, #2a2018 50%, #1a1410 100%); animation: hd-pulse 8s ease-in-out infinite alternate; }
.scn-hasty-departure .floor-shadow { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #0f0c0a 0%, #1a1410 60%, #0e0a08 100%); border-radius: 30% 70% 0 0 / 40% 50% 0 0; box-shadow: inset 0 20px 30px rgba(0,0,0,.8); }
.scn-hasty-departure .trunk { position:absolute; bottom:18%; left:20%; width:40%; height:22%; background: linear-gradient(135deg, #5a3a2a 0%, #3a2218 50%, #2a1810 100%); border-radius: 4% 4% 8% 8%; box-shadow: 0 8px 20px rgba(0,0,0,.7), inset 0 2px 6px rgba(120,80,50,.3); animation: hd-trunk 6s ease-in-out infinite; }
.scn-hasty-departure .figure-hurrying { position:absolute; bottom:15%; left:60%; width:16%; height:40%; background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%); border-radius: 45% 45% 40% 40% / 50% 50% 35% 35%; transform-origin: 50% 100%; animation: hd-hurry 2.5s ease-in-out infinite; }
.scn-hasty-departure .candle-glow { position:absolute; bottom:38%; left:15%; width:30px; height:30px; background: radial-gradient(circle, #ffd080 0%, #e8a040 30%, transparent 70%); border-radius:50%; box-shadow: 0 0 60px 30px rgba(200,120,40,.4), 0 0 120px 60px rgba(150,80,20,.2); animation: hd-candle 4s ease-in-out infinite alternate; }
.scn-hasty-departure .candle-flame { position:absolute; bottom:40%; left:16%; width:8px; height:20px; background: linear-gradient(180deg, #ffc060 0%, #ff8020 40%, #a04010 80%); border-radius:50% 50% 30% 30% / 60% 60% 30% 30%; box-shadow: 0 0 16px 8px rgba(255,160,40,.5); animation: hd-flame 0.8s ease-in-out infinite alternate; }
.scn-hasty-departure .door-arch { position:absolute; bottom:0; right:5%; width:30%; height:65%; background: linear-gradient(180deg, #2a2018 0%, #1a1410 100%); border-radius: 50% 50% 0 0 / 80% 80% 0 0; box-shadow: inset 0 0 30px rgba(0,0,0,.6); border: 2px solid #3a2a1e; opacity:.9; }
.scn-hasty-departure .shadow-sweep { position:absolute; bottom:0; left:0; right:0; height:100%; background: linear-gradient(135deg, transparent 40%, rgba(0,0,0,.4) 70%, transparent 85%); animation: hd-sweep 6s ease-in-out infinite alternate; }
@keyframes hd-pulse { 0% { opacity:.7 } 50% { opacity:.9 } 100% { opacity:.8 } }
@keyframes hd-trunk { 0%,100% { transform: translateX(0) rotate(0) } 25% { transform: translateX(-2px) rotate(-.5deg) } 50% { transform: translateX(0) rotate(0) } 75% { transform: translateX(2px) rotate(.5deg) } }
@keyframes hd-hurry { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 25% { transform: translateX(8px) translateY(-2px) rotate(2deg) } 50% { transform: translateX(16px) translateY(0) rotate(-1deg) } 75% { transform: translateX(24px) translateY(-2px) rotate(1deg) } 100% { transform: translateX(32px) translateY(0) rotate(0) } }
@keyframes hd-candle { 0% { opacity:.6; box-shadow:0 0 40px 20px rgba(200,120,40,.3),0 0 80px 40px rgba(150,80,20,.15) } 50% { opacity:.9; box-shadow:0 0 70px 35px rgba(200,120,40,.5),0 0 140px 70px rgba(150,80,20,.25) } 100% { opacity:.7; box-shadow:0 0 50px 25px rgba(200,120,40,.35),0 0 100px 50px rgba(150,80,20,.18) } }
@keyframes hd-flame { 0% { transform: scaleY(1) scaleX(1) translateY(0); opacity:.8 } 25% { transform: scaleY(1.1) scaleX(.9) translateY(-2px); opacity:1 } 50% { transform: scaleY(.95) scaleX(1.05) translateY(0); opacity:.9 } 75% { transform: scaleY(1.08) scaleX(.92) translateY(-1px); opacity:1 } 100% { transform: scaleY(1) scaleX(1) translateY(0); opacity:.85 } }
@keyframes hd-sweep { 0% { transform: translateX(-10%) } 50% { transform: translateX(5%) } 100% { transform: translateX(-10%) } }

/* embarkation — tense, dawn on lagoon */
.scn-embarkation { background: linear-gradient(180deg, #3a4a5a 0%, #5a6a7a 40%, #7a8a9a 100%), radial-gradient(ellipse at 50% 20%, #9aaaba 0%, transparent 70%); }
.scn-embarkation .dawn-sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #4a5a6a 0%, #7a8a9a 50%, #b0c0d0 100%); animation: eb-sky 12s ease-in-out infinite alternate; }
.scn-embarkation .lagoon-water { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #6a7a8a 0%, #4a5a6a 50%, #2a3a4a 100%); box-shadow: inset 0 20px 40px rgba(0,0,0,.3); }
.scn-embarkation .gondola { position:absolute; bottom:25%; left:30%; width:50%; height:8%; background: linear-gradient(180deg, #2a1a10 0%, #1a0e08 100%); border-radius: 0 80% 80% 0 / 0 100% 100% 0; box-shadow: 0 4px 12px rgba(0,0,0,.5); animation: eb-gondola 3s ease-in-out infinite; }
.scn-embarkation .figure-emily { position:absolute; bottom:27%; left:38%; width:8%; height:18%; background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%); border-radius: 40% 40% 35% 35% / 50% 50% 30% 30%; transform-origin: 50% 100%; animation: eb-rock 2s ease-in-out infinite alternate; }
.scn-embarkation .figure-montoni { position:absolute; bottom:26%; left:55%; width:10%; height:20%; background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%); border-radius: 35% 35% 30% 30% / 45% 45% 25% 25%; transform-origin: 50% 100%; animation: eb-rock 2s ease-in-out infinite alternate-reverse; }
.scn-embarkation .gondolier-oars { position:absolute; bottom:20%; left:45%; width:4%; height:30%; background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%); border-radius: 20% 20% 40% 40%; transform-origin: 50% 80%; animation: eb-oars 1.2s ease-in-out infinite; }
.scn-embarkation .palace-distant { position:absolute; bottom:30%; right:5%; width:25%; height:40%; background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%); border-radius: 10% 10% 0 0; opacity:.6; box-shadow: 0 0 20px rgba(100,80,60,.3); animation: eb-palace 8s ease-in-out infinite alternate; }
.scn-embarkation .ripple-1 { position:absolute; bottom:40%; left:20%; width:60px; height:6px; background: rgba(180,200,220,.2); border-radius:50%; transform: scaleX(2); filter: blur(2px); animation: eb-ripple1 3s ease-in-out infinite; }
.scn-embarkation .ripple-2 { position:absolute; bottom:35%; left:60%; width:80px; height:5px; background: rgba(180,200,220,.15); border-radius:50%; transform: scaleX(2.5); filter: blur(3px); animation: eb-ripple2 4s ease-in-out infinite; }
@keyframes eb-sky { 0% { opacity:.7; background:linear-gradient(180deg,#4a5a6a,#7a8a9a,#b0c0d0) } 50% { opacity:.9; background:linear-gradient(180deg,#5a6a7a,#8a9aaa,#c0d0e0) } 100% { opacity:.8; background:linear-gradient(180deg,#3a4a5a,#6a7a8a,#a0b0c0) } }
@keyframes eb-gondola { 0%,100% { transform: translateX(0) translateY(0) } 25% { transform: translateX(2px) translateY(-2px) } 50% { transform: translateX(0) translateY(0) } 75% { transform: translateX(-2px) translateY(1px) } }
@keyframes eb-rock { 0% { transform: rotate(-1deg) translateY(0) } 50% { transform: rotate(1deg) translateY(-2px) } 100% { transform: rotate(-1deg) translateY(0) } }
@keyframes eb-oars { 0% { transform: rotate(-20deg) } 50% { transform: rotate(20deg) } 100% { transform: rotate(-20deg) } }
@keyframes eb-palace { 0% { opacity:.4 } 50% { opacity:.7 } 100% { opacity:.5 } }
@keyframes eb-ripple1 { 0% { transform: scaleX(2) scaleY(1); opacity:.2 } 50% { transform: scaleX(3) scaleY(2); opacity:.05 } 100% { transform: scaleX(2) scaleY(1); opacity:.2 } }
@keyframes eb-ripple2 { 0% { transform: scaleX(2.5) scaleY(1); opacity:.15 } 50% { transform: scaleX(4) scaleY(3); opacity:.03 } 100% { transform: scaleX(2.5) scaleY(1); opacity:.15 } }

/* dawn-on-adriatic — calm, dawn seascape */
.scn-dawn-on-adriatic { background: linear-gradient(180deg, #d0b8a0 0%, #b0a090 30%, #8090a0 100%), radial-gradient(ellipse at 50% 20%, #e0c8a8 0%, transparent 60%); }
.scn-dawn-on-adriatic .sky-glow { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #f0d8c0 0%, #d0b8a0 40%, #90a0b0 100%); animation: da-sky 15s ease-in-out infinite alternate; }
.scn-dawn-on-adriatic .sea-horizon { position:absolute; bottom:35%; left:0; right:0; height:2px; background: linear-gradient(90deg, transparent, #c0a888 30%, #e0c090 60%, transparent); box-shadow: 0 0 12px 4px rgba(200,160,100,.3); }
.scn-dawn-on-adriatic .sea-deep { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #607080 0%, #405060 50%, #203040 100%); animation: da-sea 20s ease-in-out infinite alternate; }
.scn-dawn-on-adriatic .ship-hull { position:absolute; bottom:38%; left:50%; width:20%; height:6%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 0 40% 40% 0 / 0 80% 80% 0; box-shadow: 0 4px 10px rgba(0,0,0,.4); transform: translateX(-50%); animation: da-ship 6s ease-in-out infinite; }
.scn-dawn-on-adriatic .ship-sail { position:absolute; bottom:44%; left:50%; width:12%; height:20%; background: linear-gradient(135deg, #d0c8b8 0%, #a09888 100%); border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%; transform: translateX(-50%); box-shadow: 0 0 20px rgba(200,180,160,.3); animation: da-sail 8s ease-in-out infinite alternate; }
.scn-dawn-on-adriatic .sunrise-sparkle { position:absolute; top:15%; left:10%; width:40px; height:40px; background: radial-gradient(circle, #ffe8c0 0%, #e0b080 40%, transparent 80%); border-radius:50%; box-shadow: 0 0 80px 40px rgba(200,140,60,.4), 0 0 160px 80px rgba(200,140,60,.2); animation: da-sparkle 6s ease-in-out infinite alternate; }
.scn-dawn-on-adriatic .mist-bank { position:absolute; bottom:30%; left:0; right:0; height:25%; background: linear-gradient(180deg, rgba(200,180,160,.3) 0%, transparent 100%); filter: blur(20px); animation: da-mist 30s ease-in-out infinite alternate; }
@keyframes da-sky { 0% { opacity:.7; background:linear-gradient(180deg,#e8d0b8,#c8b098,#8090a0) } 50% { opacity:.9; background:linear-gradient(180deg,#f0d8c0,#d0b8a0,#90a0b0) } 100% { opacity:.8; background:linear-gradient(180deg,#dcc4ac,#b8a088,#708090) } }
@keyframes da-sea { 0% { opacity:.8 } 50% { opacity:.95 } 100% { opacity:.85 } }
@keyframes da-ship { 0%,100% { transform: translateX(-50%) rotate(0) } 25% { transform: translateX(-48%) rotate(-1deg) } 50% { transform: translateX(-50%) rotate(0) } 75% { transform: translateX(-52%) rotate(1deg) } }
@keyframes da-sail { 0% { transform: translateX(-50%) scaleX(1) } 50% { transform: translateX(-50%) scaleX(1.05) } 100% { transform: translateX(-50%) scaleX(1) } }
@keyframes da-sparkle { 0% { opacity:.5; box-shadow:0 0 60px 30px rgba(200,140,60,.3),0 0 120px 60px rgba(200,140,60,.15) } 50% { opacity:.9; box-shadow:0 0 100px 50px rgba(200,140,60,.5),0 0 200px 100px rgba(200,140,60,.25) } 100% { opacity:.6; box-shadow:0 0 70px 35px rgba(200,140,60,.35),0 0 140px 70px rgba(200,140,60,.18) } }
@keyframes da-mist { 0% { transform: translateY(0) scaleY(1); opacity:.4 } 50% { transform: translateY(-10px) scaleY(1.2); opacity:.6 } 100% { transform: translateY(0) scaleY(1); opacity:.4 } }

/* emily-watches-coast — sad, dawn, coastline */
.scn-emily-watches-coast { background: linear-gradient(180deg, #4a5a6a 0%, #6a7a8a 30%, #8a9aaa 100%), radial-gradient(ellipse at 50% 10%, #9aaaba 0%, transparent 70%); }
.scn-emily-watches-coast .morning-sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #5a6a7a 0%, #8a9aaa 40%, #b0c0d0 100%); animation: ew-sky 14s ease-in-out infinite alternate; }
.scn-emily-watches-coast .ocean-wide { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #5a7080 0%, #3a5060 50%, #1a3040 100%); box-shadow: inset 0 20px 40px rgba(0,0,0,.2); }
.scn-emily-watches-coast .coastline-far { position:absolute; bottom:35%; left:0; width:60%; height:20%; background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%); border-radius: 0 80% 0 0 / 0 100% 0 0; opacity:.5; box-shadow: 0 0 30px rgba(80,60,40,.2); animation: ew-coast 20s ease-in-out infinite alternate; }
.scn-emily-watches-coast .boat-rail { position:absolute; bottom:20%; left:40%; width:30%; height:3%; background: linear-gradient(90deg, #2a1a10 0%, #1a0e08 50%, #2a1a10 100%); border-radius: 20% 20% 0 0; box-shadow: 0 4px 8px rgba(0,0,0,.3); animation: ew-rail 3s ease-in-out infinite; }
.scn-emily-watches-coast .figure-emily-profile { position:absolute; bottom:15%; left:48%; width:8%; height:22%; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius: 40% 45% 35% 35% / 50% 55% 30% 30%; transform-origin: 50% 100%; animation: ew-figure 4s ease-in-out infinite alternate; }
.scn-emily-watches-coast .latin-sail { position:absolute; bottom:30%; left:75%; width:12%; height:25%; background: linear-gradient(135deg, #d0c8b8 0%, #a09888 100%); border-radius: 0 40% 40% 0 / 0 80% 80% 0; box-shadow: 0 0 20px rgba(200,180,160,.2); transform: rotate(-5deg); animation: ew-sail 10s ease-in-out infinite alternate; }
.scn-emily-watches-coast .light-streak { position:absolute; top:20%; left:30%; width:40%; height:2px; background: linear-gradient(90deg, transparent, rgba(220,200,180,.4) 50%, transparent); filter: blur(2px); animation: ew-light 8s ease-in-out infinite alternate; }
@keyframes ew-sky { 0% { opacity:.7; background:linear-gradient(180deg,#4a5a6a,#7a8a9a,#a0b0c0) } 50% { opacity:.9; background:linear-gradient(180deg,#5a6a7a,#8a9aaa,#b0c0d0) } 100% { opacity:.8; background:linear-gradient(180deg,#3a4a5a,#6a7a8a,#90a0b0) } }
@keyframes ew-coast { 0% { opacity:.4; transform: translateX(0) } 50% { opacity:.6; transform: translateX(-5px) } 100% { opacity:.5; transform: translateX(0) } }
@keyframes ew-rail { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes ew-figure { 0% { transform: rotate(0) translateY(0) } 50% { transform: rotate(2deg) translateY(-3px) } 100% { transform: rotate(0) translateY(0) } }
@keyframes ew-sail { 0% { transform: rotate(-5deg) scaleX(1) } 50% { transform: rotate(-3deg) scaleX(1.05) } 100% { transform: rotate(-5deg) scaleX(1) } }
@keyframes ew-light { 0% { opacity:.2; transform: translateX(-10%) } 50% { opacity:.5; transform: translateX(5%) } 100% { opacity:.3; transform: translateX(-10%) } }

/* annette-superstitious */
.scn-annette-superstitious {
  background: linear-gradient(180deg, #191a2e 0%, #2c2b44 40%, #1e1f34 100%),
              radial-gradient(ellipse at 50% 80%, #2c2b44 0%, transparent 60%);
}
.scn-annette-superstitious .wall.left {
  position: absolute; inset: 0 50% 0 0;
  background: linear-gradient(90deg, #26273d 0%, #1e1f34 100%);
  clip-path: polygon(0% 0%, 80% 0%, 60% 100%, 0% 100%);
  animation: annSup-wallLeft 8s ease-in-out infinite alternate;
}
.scn-annette-superstitious .wall.right {
  position: absolute; inset: 0 0 0 50%;
  background: linear-gradient(270deg, #26273d 0%, #1e1f34 100%);
  clip-path: polygon(20% 0%, 100% 0%, 100% 100%, 40% 100%);
  animation: annSup-wallRight 8s ease-in-out infinite alternate;
}
.scn-annette-superstitious .floor {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 25%;
  background: linear-gradient(180deg, #2c2b44 0%, #1a1b2e 100%);
  border-top: 1px solid #3a3b55;
  transform: perspective(400px) rotateX(60deg);
  transform-origin: bottom center;
}
.scn-annette-superstitious .ghost {
  position: absolute; bottom: 28%; left: 45%; width: 30px; height: 60px;
  background: linear-gradient(180deg, rgba(200,210,220,0.6) 0%, rgba(160,170,190,0.2) 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  filter: blur(3px);
  animation: annSup-ghost 6s ease-in-out infinite;
}
.scn-annette-superstitious .candle-flicker {
  position: absolute; bottom: 22%; left: 62%; width: 4px; height: 12px;
  background: #ffcc80;
  border-radius: 50% 50% 10% 10%;
  box-shadow: 0 0 20px 8px #ffa050, 0 0 40px 15px rgba(255,160,80,0.5);
  animation: annSup-candle 2s ease-in-out infinite alternate;
}
.scn-annette-superstitious .dust.motes-a,
.scn-annette-superstitious .dust.motes-b {
  position: absolute; border-radius: 50%; background: rgba(180,190,210,0.2); filter: blur(2px);
}
.scn-annette-superstitious .dust.motes-a {
  width: 6px; height: 6px; top: 40%; left: 30%;
  animation: annSup-dustA 15s linear infinite;
}
.scn-annette-superstitious .dust.motes-b {
  width: 4px; height: 4px; top: 55%; left: 70%;
  animation: annSup-dustB 20s linear infinite reverse;
}
@keyframes annSup-wallLeft {
  0%,100% { clip-path: polygon(0% 0%, 80% 0%, 60% 100%, 0% 100%); }
  50% { clip-path: polygon(0% 0%, 82% 0%, 58% 100%, 0% 100%); }
}
@keyframes annSup-wallRight {
  0%,100% { clip-path: polygon(20% 0%, 100% 0%, 100% 100%, 40% 100%); }
  50% { clip-path: polygon(18% 0%, 100% 0%, 100% 100%, 42% 100%); }
}
@keyframes annSup-ghost {
  0% { transform: translateY(0) scale(1); opacity: 0.7; }
  25% { transform: translateY(-8px) scale(1.05); opacity: 0.9; }
  50% { transform: translateY(2px) scale(0.98); opacity: 0.6; }
  75% { transform: translateY(-5px) scale(1.02); opacity: 0.8; }
  100% { transform: translateY(0) scale(1); opacity: 0.7; }
}
@keyframes annSup-candle {
  0% { transform: scale(1) rotate(-1deg); box-shadow: 0 0 18px 6px #ffa050; }
  50% { transform: scale(1.1) rotate(2deg); box-shadow: 0 0 28px 12px #ffb060; }
  100% { transform: scale(0.95) rotate(-2deg); box-shadow: 0 0 20px 8px #ffa050; }
}
@keyframes annSup-dustA {
  0% { transform: translate(0,0); opacity: 0.2; }
  50% { transform: translate(15px,-10px); opacity: 0.5; }
  100% { transform: translate(30px,-20px); opacity: 0; }
}
@keyframes annSup-dustB {
  0% { transform: translate(0,0); opacity: 0; }
  50% { transform: translate(-12px,8px); opacity: 0.4; }
  100% { transform: translate(-24px,16px); opacity: 0.2; }
}

/* lost-in-galleries */
.scn-lost-in-galleries {
  background: linear-gradient(180deg, #16162a 0%, #252540 50%, #1a1a30 100%),
              radial-gradient(ellipse at 30% 90%, #252540 0%, transparent 70%);
}
.scn-lost-in-galleries .arch {
  position: absolute; bottom: 20%; left: 50%; transform-origin: bottom center;
  border-top-left-radius: 50% 100%; border-top-right-radius: 50% 100%; border: 0;
  background: transparent;
  box-shadow: inset 0 0 0 2px #3a3a55;
}
.scn-lost-in-galleries .arch.arch-back {
  width: 80px; height: 100px; margin-left: -40px; opacity: 0.3;
  animation: losGal-archBack 25s ease-in-out infinite alternate;
}
.scn-lost-in-galleries .arch.arch-mid {
  width: 100px; height: 120px; margin-left: -50px; opacity: 0.5;
  animation: losGal-archMid 20s ease-in-out infinite alternate;
}
.scn-lost-in-galleries .arch.arch-fore {
  width: 130px; height: 150px; margin-left: -65px; opacity: 0.7;
  box-shadow: inset 0 0 0 3px #4a4a66;
  animation: losGal-archFore 15s ease-in-out infinite alternate;
}
.scn-lost-in-galleries .corridor-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a2a45 0%, #1c1c30 100%);
  transform: perspective(200px) rotateX(45deg);
  transform-origin: bottom center;
}
.scn-lost-in-galleries .figure-emily {
  position: absolute; bottom: 24%; left: 35%; width: 14px; height: 40px;
  background: linear-gradient(180deg, #2e2e4a 0%, #1a1a2e 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: losGal-figure 8s ease-in-out infinite;
}
.scn-lost-in-galleries .lantern-glow {
  position: absolute; bottom: 26%; left: 33%; width: 8px; height: 8px;
  background: #f0c060; border-radius: 50%;
  box-shadow: 0 0 24px 8px rgba(240,192,96,0.6), 0 0 48px 15px rgba(240,192,96,0.3);
  animation: losGal-lantern 3s ease-in-out infinite alternate;
}
.scn-lost-in-galleries .shadow.long {
  position: absolute; bottom: 0; left: 30%; right: 40%; height: 60%;
  background: linear-gradient(180deg, rgba(0,0,0,0) 0%, rgba(0,0,0,0.4) 100%);
  clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%);
  animation: losGal-shadow 12s ease-in-out infinite alternate;
}
@keyframes losGal-archBack {
  0%,100% { transform: scale(1) translateY(0); }
  50% { transform: scale(1.02) translateY(-2px); }
}
@keyframes losGal-archMid {
  0%,100% { transform: scale(1) translateY(0); }
  50% { transform: scale(1.03) translateY(-3px); }
}
@keyframes losGal-archFore {
  0%,100% { transform: scale(1) translateY(0); }
  50% { transform: scale(1.01) translateY(-1px); }
}
@keyframes losGal-figure {
  0% { transform: translateX(0) translateY(0) rotate(0); }
  25% { transform: translateX(8px) translateY(-2px) rotate(2deg); }
  50% { transform: translateX(16px) translateY(0) rotate(0); }
  75% { transform: translateX(8px) translateY(-1px) rotate(-2deg); }
  100% { transform: translateX(0) translateY(0) rotate(0); }
}
@keyframes losGal-lantern {
  0% { transform: scale(1); box-shadow: 0 0 20px 6px rgba(240,192,96,0.5); }
  50% { transform: scale(1.2); box-shadow: 0 0 30px 12px rgba(240,192,96,0.7); }
  100% { transform: scale(0.9); box-shadow: 0 0 22px 8px rgba(240,192,96,0.5); }
}
@keyframes losGal-shadow {
  0%,100% { opacity: 0.5; transform: scaleY(1); }
  50% { opacity: 0.8; transform: scaleY(1.1); }
}

/* door-opened */
.scn-door-opened {
  background: linear-gradient(180deg, #1a1a30 0%, #1e1e38 30%, #16162a 100%),
              radial-gradient(ellipse at 60% 70%, #2a2a48 0%, transparent 60%);
}
.scn-door-opened .door-frame {
  position: absolute; top: 10%; left: 25%; right: 25%; bottom: 20%;
  border: 4px solid #4a3a2a; border-radius: 4px;
  background: #2a2a40;
  box-shadow: inset 0 0 20px 8px rgba(0,0,0,0.6);
  animation: dooOpe-doorFrame 20s ease-in-out infinite alternate;
}
.scn-door-opened .light-spill {
  position: absolute; top: 12%; left: 28%; right: 28%; bottom: 22%;
  background: radial-gradient(ellipse at 50% 50%, rgba(255,240,200,0.4) 0%, transparent 70%);
  animation: dooOpe-lightSpill 4s ease-in-out infinite alternate;
}
.scn-door-opened .figure-emily-silhouette {
  position: absolute; bottom: 22%; left: 40%; width: 20px; height: 50px;
  background: #0a0a1a;
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: dooOpe-figureE 6s ease-in-out infinite;
}
.scn-door-opened .figure-annette-silhouette {
  position: absolute; bottom: 22%; left: 20%; width: 18px; height: 44px;
  background: #0a0a1a;
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform: scale(0.9);
  animation: dooOpe-figureA 6s ease-in-out infinite reverse;
}
.scn-door-opened .keyhole.glow {
  position: absolute; bottom: 40%; left: 48%; width: 6px; height: 10px;
  background: radial-gradient(circle, #ffe080 0%, #c08040 100%);
  border-radius: 30%;
  box-shadow: 0 0 16px 4px #c08040;
  animation: dooOpe-keyhole 3s ease-in-out infinite alternate;
}
.scn-door-opened .shadow-door {
  position: absolute; bottom: 0; left: 25%; right: 25%; height: 50%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.7) 100%);
  clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%);
  animation: dooOpe-shadow 15s ease-in-out infinite alternate;
}
.scn-door-opened .dust.motes-c {
  position: absolute; top: 30%; left: 60%; width: 5px; height: 5px;
  background: rgba(240,220,180,0.3); border-radius: 50%; filter: blur(1px);
  animation: dooOpe-dustC 12s linear infinite;
}
@keyframes dooOpe-doorFrame {
  0%,100% { box-shadow: inset 0 0 18px 6px rgba(0,0,0,0.5); }
  50% { box-shadow: inset 0 0 30px 12px rgba(0,0,0,0.7); }
}
@keyframes dooOpe-lightSpill {
  0% { transform: translate(0,0); opacity: 0.8; }
  50% { transform: translate(2px,-1px); opacity: 1; }
  100% { transform: translate(-2px,1px); opacity: 0.7; }
}
@keyframes dooOpe-figureE {
  0% { transform: translateX(0) translateY(0) rotate(0); }
  25% { transform: translateX(5px) translateY(-2px) rotate(2deg); }
  50% { transform: translateX(10px) translateY(0) rotate(0); }
  75% { transform: translateX(5px) translateY(-1px) rotate(-2deg); }
  100% { transform: translateX(0) translateY(0) rotate(0); }
}
@keyframes dooOpe-figureA {
  0% { transform: translateX(0) translateY(0) scale(0.9) rotate(0); }
  25% { transform: translateX(-3px) translateY(1px) scale(0.88) rotate(-1deg); }
  50% { transform: translateX(-6px) translateY(0) scale(0.9) rotate(0); }
  75% { transform: translateX(-3px) translateY(1px) scale(0.92) rotate(1deg); }
  100% { transform: translateX(0) translateY(0) scale(0.9) rotate(0); }
}
@keyframes dooOpe-keyhole {
  0% { transform: scale(1); box-shadow: 0 0 14px 3px #c08040; }
  50% { transform: scale(1.3); box-shadow: 0 0 24px 8px #ffd060; }
  100% { transform: scale(0.95); box-shadow: 0 0 16px 4px #c08040; }
}
@keyframes dooOpe-shadow {
  0%,100% { opacity: 0.6; }
  50% { opacity: 0.9; }
}
@keyframes dooOpe-dustC {
  0% { transform: translate(-10px,0); opacity: 0; }
  50% { transform: translate(20px,-15px); opacity: 0.5; }
  100% { transform: translate(40px,-30px); opacity: 0; }
}

/* suite-of-rooms */
.scn-suite-of-rooms {
  background: linear-gradient(180deg, #2d1d15 0%, #3a2a1e 30%, #2a1a12 100%),
              radial-gradient(ellipse at 50% 60%, #4a3a28 0%, transparent 70%);
}
.scn-suite-of-rooms .ceiling-wainscot {
  position: absolute; top: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #4a3a28 0%, #3a2a1e 100%);
  border-bottom: 2px solid #5a4a38;
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.5);
}
.scn-suite-of-rooms .floor-checkered {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: repeating-conic-gradient(#3a2a1e 0% 25%, #4a3828 0% 50%) 0 0 / 40px 40px;
  transform: perspective(200px) rotateX(50deg);
  transform-origin: bottom center;
}
.scn-suite-of-rooms .pillar {
  position: absolute; bottom: 30%; width: 20px; height: 120px;
  background: linear-gradient(90deg, #5a4a38 0%, #6a5a48 30%, #5a4a38 100%);
  border-right: 2px solid #7a6a58;
}
.scn-suite-of-rooms .pillar.pillar-left { left: 20%; }
.scn-suite-of-rooms .pillar.pillar-right { right: 20%; }
.scn-suite-of-rooms .pillar::before {
  content: ''; position: absolute; top: -10px; left: -4px; right: -4px; height: 20px;
  background: #7a6a58; border-radius: 50%;
}
.scn-suite-of-rooms .tapestry {
  position: absolute; top: 12%; left: 15%; right: 15%; bottom: 35%;
  background: linear-gradient(180deg, #702243 0%, #5e1a1d 40%, #4a1012 100%);
  border: 3px solid #8a7a68;
  clip-path: polygon(0% 0%, 100% 0%, 90% 100%, 10% 100%);
  animation: suiRoo-tapestry 20s ease-in-out infinite alternate;
}
.scn-suite-of-rooms .chandelier {
  position: absolute; top: 2%; left: 40%; right: 40%; height: 40px;
  background: radial-gradient(ellipse at 50% 0%, #c0a080 0%, transparent 80%);
}
.scn-suite-of-rooms .chandelier::after {
  content: ''; position: absolute; bottom: -8px; left: 50%; transform: translateX(-50%);
  width: 12px; height: 12px; background: #ffd060; border-radius: 50%;
  box-shadow: 0 0 20px 6px #ffd060, 0 0 40px 12px rgba(255,208,96,0.4);
  animation: suiRoo-chandelierLight 4s ease-in-out infinite alternate;
}
.scn-suite-of-rooms .figure-awe {
  position: absolute; bottom: 22%; left: 48%; width: 16px; height: 45px;
  background: linear-gradient(180deg, #3a2a1e 0%, #1a0e0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: suiRoo-figure 10s ease-in-out infinite;
}
.scn-suite-of-rooms .candle-cup {
  position: absolute; bottom: 28%; left: 32%; width: 4px; height: 10px;
  background: #ffcc80; border-radius: 20%;
  box-shadow: 0 0 12px 3px #ffa050;
  animation: suiRoo-candle 3s ease-in-out infinite alternate;
}
@keyframes suiRoo-tapestry {
  0%,100% { clip-path: polygon(0% 0%, 100% 0%, 90% 100%, 10% 100%); }
  50% { clip-path: polygon(2% 0%, 98% 0%, 88% 100%, 12% 100%); }
}
@keyframes suiRoo-chandelierLight {
  0% { transform: translateX(-50%) scale(1); box-shadow: 0 0 18px 5px #ffd060; }
  50% { transform: translateX(-50%) scale(1.15); box-shadow: 0 0 30px 10px #ffe080; }
  100% { transform: translateX(-50%) scale(0.95); box-shadow: 0 0 20px 6px #ffd060; }
}
@keyframes suiRoo-figure {
  0% { transform: translateY(0) scale(1); }
  25% { transform: translateY(-3px) scale(1.02); }
  50% { transform: translateY(0) scale(1); }
  75% { transform: translateY(-1px) scale(0.99); }
  100% { transform: translateY(0) scale(1); }
}
@keyframes suiRoo-candle {
  0% { transform: scale(1) rotate(-2deg); box-shadow: 0 0 10px 2px #ffa050; }
  50% { transform: scale(1.1) rotate(2deg); box-shadow: 0 0 18px 5px #ffb060; }
  100% { transform: scale(0.95) rotate(-1deg); box-shadow: 0 0 12px 3px #ffa050; }
}

/* decision-made – dim interior, determination */
.scn-decision-made {
  background: linear-gradient(180deg, #2a2018 0%, #3c2a1e 60%, #4a3222 100%),
              radial-gradient(ellipse at 50% 100%, #4a3222 0%, transparent 60%);
}
.scn-decision-made .wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e12 100%);
  border-radius: 0 0 20% 20%;
  box-shadow: inset 0 8px 30px rgba(0,0,0,.6);
}
.scn-decision-made .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #2a1e12 0%, #1a120a 100%);
  border-radius: 30% 30% 0 0;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,.5);
}
.scn-decision-made .table {
  position: absolute; bottom: 25%; left: 50%; width: 140px; height: 12px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2212 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
}
.scn-decision-made .candle {
  position: absolute; bottom: 37%; left: 50%; width: 10px; height: 30px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #ffe0a0 0%, #c88850 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 10px 2px #ffaa40;
}
.scn-decision-made .candle-glow {
  position: absolute; bottom: 34%; left: 50%; width: 60px; height: 70px;
  transform: translate(-50%, -10%);
  background: radial-gradient(circle, rgba(255,170,64,.3) 0%, transparent 70%);
  border-radius: 50%;
  animation: dm-glow 4s ease-in-out infinite alternate;
}
.scn-decision-made .figure {
  position: absolute; bottom: 22%; left: 40%; width: 24px; height: 60px;
  background: linear-gradient(180deg, #1a1410 0%, #0a0806 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dm-figure 6s ease-in-out infinite;
}
.scn-decision-made .shadow {
  position: absolute; bottom: 18%; left: 38%; width: 40px; height: 16px;
  background: rgba(0,0,0,.5);
  border-radius: 50%;
  filter: blur(4px);
  animation: dm-shadow 6s ease-in-out infinite;
}
@keyframes dm-glow {
  0% { opacity: .6; transform: translate(-50%, -10%) scale(1); }
  50% { opacity: 1; transform: translate(-50%, -10%) scale(1.05); }
  100% { opacity: .7; transform: translate(-50%, -10%) scale(.95); }
}
@keyframes dm-figure {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  33% { transform: translateX(2px) translateY(-1px) rotate(1deg); }
  66% { transform: translateX(4px) translateY(0) rotate(-1deg); }
  100% { transform: translateX(6px) translateY(-1px) rotate(0deg); }
}
@keyframes dm-shadow {
  0% { transform: scaleX(1) translateX(0); opacity: .5; }
  50% { transform: scaleX(1.1) translateX(3px); opacity: .3; }
  100% { transform: scaleX(.95) translateX(5px); opacity: .5; }
}

/* meeting-barnardine – dark passage, fear */
.scn-meeting-barnardine {
  background: linear-gradient(180deg, #0a0a14 0%, #141428 40%, #1a1a30 100%),
              radial-gradient(ellipse at 50% 0%, #1a1a30 0%, transparent 70%);
}
.scn-meeting-barnardine .wall-left {
  position: absolute; top: 0; bottom: 0; left: 0; width: 30%;
  background: linear-gradient(90deg, #0e0e1a 0%, #181828 100%);
  box-shadow: inset -8px 0 15px rgba(0,0,0,.7);
}
.scn-meeting-barnardine .wall-right {
  position: absolute; top: 0; bottom: 0; right: 0; width: 35%;
  background: linear-gradient(90deg, #181828 0%, #0e0e1a 100%);
  box-shadow: inset 8px 0 15px rgba(0,0,0,.7);
}
.scn-meeting-barnardine .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #141428 0%, #0a0a14 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,.6);
}
.scn-meeting-barnardine .figure {
  position: absolute; bottom: 15%; left: 45%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #1e1e2e 0%, #0c0c1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mb-figure 8s ease-in-out infinite;
}
.scn-meeting-barnardine .gloom {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 80%, rgba(10,10,20,.8) 0%, rgba(0,0,10,.95) 100%);
  animation: mb-gloom 12s ease-in-out infinite alternate;
}
.scn-meeting-barnardine .faint-light {
  position: absolute; bottom: 30%; left: 20%; width: 30px; height: 40px;
  background: radial-gradient(circle, rgba(200,200,255,.1) 0%, transparent 60%);
  border-radius: 50%;
  animation: mb-light 5s ease-in-out infinite alternate;
}
.scn-meeting-barnardine .shadow {
  position: absolute; bottom: 12%; left: 42%; width: 30px; height: 8px;
  background: rgba(0,0,0,.6);
  border-radius: 50%;
  filter: blur(3px);
  animation: mb-shadow 8s ease-in-out infinite;
}
@keyframes mb-figure {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  30% { transform: translateX(5px) translateY(-2px) rotate(2deg); }
  60% { transform: translateX(0) translateY(0) rotate(-1deg); }
  100% { transform: translateX(-3px) translateY(1px) rotate(0deg); }
}
@keyframes mb-gloom {
  0% { opacity: .8; }
  50% { opacity: 1; }
  100% { opacity: .7; }
}
@keyframes mb-light {
  0% { opacity: .2; transform: scale(1); }
  50% { opacity: .5; transform: scale(1.2); }
  100% { opacity: .1; transform: scale(.8); }
}
@keyframes mb-shadow {
  0% { transform: scaleX(1); opacity: .6; }
  50% { transform: scaleX(1.3); opacity: .4; }
  100% { transform: scaleX(.9); opacity: .6; }
}

/* ruined-chapel – firelit, fear */
.scn-ruined-chapel {
  background: linear-gradient(180deg, #1a0e0e 0%, #2a1414 40%, #3a1a1a 100%),
              radial-gradient(ellipse at 50% 100%, #3a1a1a 0%, transparent 70%);
}
.scn-ruined-chapel .sky {
  position: absolute; top: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #0a0a14 0%, #1a0e0e 100%);
  border-radius: 0 0 30% 30%;
}
.scn-ruined-chapel .walls {
  position: absolute; top: 10%; left: 10%; right: 10%; bottom: 20%;
  background: linear-gradient(180deg, #4a2a2a 0%, #2a1a1a 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: inset 0 0 30px rgba(0,0,0,.5);
}
.scn-ruined-chapel .column {
  position: absolute; bottom: 35%; left: 25%; width: 20px; height: 110px;
  background: linear-gradient(180deg, #5a3a3a 0%, #3a2222 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 4px 10px rgba(0,0,0,.5);
}
.scn-ruined-chapel .ivy {
  position: absolute; top: 15%; left: 30%; width: 100px; height: 60px;
  background: radial-gradient(ellipse, #3a5a2a 0%, transparent 70%);
  filter: blur(3px);
  animation: rc-ivy 20s ease-in-out infinite alternate;
}
.scn-ruined-chapel .fire {
  position: absolute; bottom: 20%; left: 55%; width: 30px; height: 40px;
  background: radial-gradient(ellipse at 50% 100%, #ff8030 0%, #c05020 40%, #5a2010 80%, transparent 100%);
  border-radius: 50%;
  animation: rc-fire 1.5s ease-in-out infinite alternate;
}
.scn-ruined-chapel .fire-glow {
  position: absolute; bottom: 15%; left: 50%; width: 120px; height: 120px;
  transform: translateX(-50%);
  background: radial-gradient(circle, rgba(255,128,48,.3) 0%, rgba(192,80,32,.1) 40%, transparent 70%);
  border-radius: 50%;
  animation: rc-fireglow 3s ease-in-out infinite alternate;
}
.scn-ruined-chapel .figure {
  position: absolute; bottom: 25%; left: 45%; width: 22px; height: 55px;
  background: linear-gradient(180deg, #1a1010 0%, #0a0808 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rc-figure 6s ease-in-out infinite;
}
.scn-ruined-chapel .debris {
  position: absolute; bottom: 10%; left: 20%; width: 40px; height: 10px;
  background: #2a1a1a;
  border-radius: 10% 20% 10% 20%;
  box-shadow: 2px 8px 0 #1a0e0e, -5px 12px 0 #2a1a1a;
  animation: rc-debris 15s linear infinite;
}
@keyframes rc-ivy {
  0% { transform: translateX(0) translateY(0) scaleX(1); }
  50% { transform: translateX(-3px) translateY(2px) scaleX(1.05); }
  100% { transform: translateX(2px) translateY(-1px) scaleX(.95); }
}
@keyframes rc-fire {
  0% { transform: scaleY(1) scaleX(1) translateY(0); }
  50% { transform: scaleY(1.15) scaleX(.9) translateY(-2px); }
  100% { transform: scaleY(.9) scaleX(1.05) translateY(0); }
}
@keyframes rc-fireglow {
  0% { opacity: .4; transform: translateX(-50%) scale(1); }
  50% { opacity: .7; transform: translateX(-50%) scale(1.1); }
  100% { opacity: .3; transform: translateX(-50%) scale(.9); }
}
@keyframes rc-figure {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  33% { transform: translateX(2px) translateY(-1px) rotate(2deg); }
  66% { transform: translateX(-1px) translateY(0) rotate(-1deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes rc-debris {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  50% { transform: translateX(-10px) translateY(3px) rotate(15deg); }
  100% { transform: translateX(-20px) translateY(0) rotate(-5deg); }
}

/* vaults – dim interior, horror */
.scn-vaults {
  background: linear-gradient(180deg, #0a0a12 0%, #14141e 40%, #1a1a28 100%),
              radial-gradient(ellipse at 50% 0%, #1a1a28 0%, transparent 70%);
}
.scn-vaults .wall {
  position: absolute; top: 0; left: 0; right: 0; bottom: 10%;
  background: linear-gradient(180deg, #1a1a28 0%, #0e0e18 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,.7);
  animation: vt-wall 20s ease-in-out infinite alternate;
}
.scn-vaults .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 10%;
  background: linear-gradient(180deg, #0e0e18 0%, #06060c 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,.6);
}
.scn-vaults .torch {
  position: absolute; bottom: 35%; left: 30%; width: 8px; height: 25px;
  background: linear-gradient(180deg, #4a3018 0%, #2a1a0e 100%);
  border-radius: 10% 10% 5% 5%;
  transform-origin: bottom center;
}
.scn-vaults .torch-glow {
  position: absolute; bottom: 30%; left: 28%; width: 60px; height: 80px;
  background: radial-gradient(circle, rgba(180,100,30,.15) 0%, rgba(100,50,20,.05) 40%, transparent 70%);
  border-radius: 50%;
  animation: vt-torchglow 3s ease-in-out infinite alternate;
}
.scn-vaults .figure {
  position: absolute; bottom: 8%; left: 45%; width: 20px; height: 45px;
  background: linear-gradient(180deg, #1a1a28 0%, #0a0a14 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: vt-figure 10s ease-in-out infinite;
}
.scn-vaults .shadow {
  position: absolute; bottom: 5%; left: 42%; width: 35px; height: 12px;
  background: rgba(0,0,0,.7);
  border-radius: 50%;
  filter: blur(5px);
  animation: vt-shadow 10s ease-in-out infinite;
}
.scn-vaults .vapor {
  position: absolute; bottom: 5%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, rgba(80,80,120,.08) 0%, transparent 100%);
  filter: blur(8px);
  animation: vt-vapor 25s linear infinite;
}
@keyframes vt-wall {
  0% { opacity: .9; }
  50% { opacity: 1; box-shadow: inset 0 0 50px rgba(0,0,0,.8); }
  100% { opacity: .8; }
}
@keyframes vt-torchglow {
  0% { opacity: .2; transform: scale(1); }
  50% { opacity: .5; transform: scale(1.1); }
  100% { opacity: .1; transform: scale(.9); }
}
@keyframes vt-figure {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  25% { transform: translateX(3px) translateY(-1px) rotate(2deg); }
  50% { transform: translateX(0) translateY(0) rotate(-2deg); }
  75% { transform: translateX(-2px) translateY(1px) rotate(1deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes vt-shadow {
  0% { transform: scaleX(1) translateX(0); opacity: .7; }
  50% { transform: scaleX(1.2) translateX(4px); opacity: .5; }
  100% { transform: scaleX(.9) translateX(-2px); opacity: .7; }
}
@keyframes vt-vapor {
  0% { transform: translateY(0) scaleY(1); opacity: .1; }
  50% { transform: translateY(-5px) scaleY(1.2); opacity: .15; }
  100% { transform: translateY(0) scaleY(1); opacity: .1; }
}

/* === scene: previous-sighting (ps) === */
.scn-previous-sighting {
  background: linear-gradient(180deg, #141428 0%, #1f2040 40%, #2c2a5a 100%), radial-gradient(ellipse at 55% 25%, #2a2a6a 0%, transparent 70%);
}
.scn-previous-sighting .sky {
  position: absolute; inset: 0; background: linear-gradient(180deg, #1a1a3a 0%, transparent 100%);
  animation: ps-sky 15s ease-in-out infinite alternate;
}
.scn-previous-sighting .moon {
  position: absolute; top: 8%; left: 60%; width: 50px; height: 50px;
  background: radial-gradient(circle, #e8e4d0 0%, #b8b4a0 50%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 40px 15px rgba(200,200,180,0.5), 0 0 80px 30px rgba(200,200,180,0.2);
  animation: ps-moon 20s ease-in-out infinite alternate;
}
.scn-previous-sighting .cloud-a {
  position: absolute; top: 12%; left: 10%; width: 90px; height: 20px;
  background: linear-gradient(180deg, rgba(180,180,200,0.5) 0%, rgba(180,180,200,0.1) 100%);
  border-radius: 50%; filter: blur(6px); animation: ps-cloud 40s linear infinite;
}
.scn-previous-sighting .cloud-b {
  position: absolute; top: 18%; right: 5%; width: 70px; height: 16px;
  background: linear-gradient(180deg, rgba(160,160,180,0.4) 0%, rgba(160,160,180,0.05) 100%);
  border-radius: 50%; filter: blur(5px); animation: ps-cloud 50s linear infinite reverse;
}
.scn-previous-sighting .rampart {
  position: absolute; bottom: 20%; left: 10%; right: 30%; height: 100px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 10% 50% 0 0 / 20% 60% 0 0; clip-path: polygon(0 100%, 0 20%, 15% 20%, 15% 0, 85% 0, 85% 20%, 100% 20%, 100% 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.6);
}
.scn-previous-sighting .figure {
  position: absolute; bottom: 27%; left: 30%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #0a0a14 0%, #06060e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: ps-figure 6s ease-in-out infinite;
}
.scn-previous-sighting .shadow {
  position: absolute; bottom: 19%; left: 28%; width: 40px; height: 8px;
  background: rgba(0,0,0,0.4); border-radius: 50%;
  filter: blur(4px); animation: ps-shadow 6s ease-in-out infinite;
}
@keyframes ps-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.75; } }
@keyframes ps-moon { 0% { transform: translateX(0) translateY(0) scale(1); } 50% { transform: translateX(-10px) translateY(5px) scale(0.98); } 100% { transform: translateX(5px) translateY(-3px) scale(1.02); } }
@keyframes ps-cloud { 0% { transform: translateX(0); } 100% { transform: translateX(120vw); } }
@keyframes ps-figure { 0% { transform: translateX(0) rotate(-1deg); } 25% { transform: translateX(5px) rotate(1deg); } 50% { transform: translateX(10px) rotate(-1deg); } 75% { transform: translateX(15px) rotate(1deg); } 100% { transform: translateX(20px) rotate(0); } }
@keyframes ps-shadow { 0% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(10px) scaleX(1.1); } 100% { transform: translateX(20px) scaleX(1); } }

/* === scene: roberto's-account (ra) === */
.scn-roberto's-account {
  background: linear-gradient(180deg, #161630 0%, #1f2050 40%, #30306a 100%), radial-gradient(ellipse at 40% 30%, #28286a 0%, transparent 70%);
}
.scn-roberto's-account .sky {
  position: absolute; inset: 0 0 30% 0; background: linear-gradient(180deg, #181840 0%, transparent 100%);
  animation: ra-sky 14s ease-in-out infinite alternate;
}
.scn-roberto's-account .moon {
  position: absolute; top: 6%; right: 25%; width: 46px; height: 46px;
  background: radial-gradient(circle, #ddd8c0 0%, #b0ac90 50%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 36px 12px rgba(200,200,170,0.5), 0 0 72px 25px rgba(200,200,170,0.2);
  animation: ra-moon 18s ease-in-out infinite alternate;
}
.scn-roberto's-account .cloud-a {
  position: absolute; top: 14%; left: -10%; width: 80px; height: 18px;
  background: linear-gradient(180deg, rgba(180,180,200,0.45) 0%, rgba(180,180,200,0.08) 100%);
  border-radius: 50%; filter: blur(7px); animation: ra-cloud 45s linear infinite;
}
.scn-roberto's-account .cloud-b {
  position: absolute; top: 22%; right: -5%; width: 65px; height: 14px;
  background: linear-gradient(180deg, rgba(170,170,190,0.4) 0%, rgba(170,170,190,0.05) 100%);
  border-radius: 50%; filter: blur(5px); animation: ra-cloud 55s linear infinite reverse;
}
.scn-roberto's-account .terrace {
  position: absolute; bottom: 18%; left: 5%; right: 5%; height: 70px;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a28 100%);
  border-radius: 20% 20% 0 0 / 30% 30% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.5);
}
.scn-roberto's-account .wall {
  position: absolute; bottom: 30%; left: 15%; width: 120px; height: 90px;
  background: linear-gradient(180deg, #252538 0%, #151520 100%);
  border-radius: 5% 5% 10% 10%; box-shadow: 0 4px 12px rgba(0,0,0,0.6);
  animation: ra-wall 8s ease-in-out infinite alternate;
}
.scn-roberto's-account .shadow {
  position: absolute; bottom: 20%; left: 20%; width: 30px; height: 50px;
  background: rgba(0,0,0,0.5); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  filter: blur(3px); animation: ra-shadow 5s ease-in-out infinite;
}
@keyframes ra-sky { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes ra-moon { 0% { transform: translateX(0) translateY(0); } 50% { transform: translateX(8px) translateY(-4px); } 100% { transform: translateX(-4px) translateY(2px); } }
@keyframes ra-cloud { 0% { transform: translateX(0); } 100% { transform: translateX(120vw); } }
@keyframes ra-wall { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.98); } 100% { transform: scaleY(1); } }
@keyframes ra-shadow { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(15px) rotate(2deg); } 50% { transform: translateX(30px) rotate(-1deg); } 75% { transform: translateX(45px) rotate(1deg); } 100% { transform: translateX(60px) rotate(0); } }

/* === scene: morning-after-vigil (mv) === */
.scn-morning-after-vigil {
  background: linear-gradient(180deg, #faf5ea 0%, #e8dfd0 40%, #d4c8b0 100%), radial-gradient(ellipse at 30% 20%, #fefefe 0%, transparent 70%);
}
.scn-morning-after-vigil .wall {
  position: absolute; inset: 0; background: linear-gradient(90deg, #eae0d0 0%, #f0e8da 50%, #e0d4c0 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,0.1);
}
.scn-morning-after-vigil .window {
  position: absolute; top: 12%; left: 10%; width: 100px; height: 130px;
  background: linear-gradient(180deg, #fefef8 0%, #e8e4d8 100%);
  border: 6px solid #b0a090; border-radius: 4px; box-shadow: inset 0 0 30px rgba(255,255,255,0.3);
  animation: mv-window 12s ease-in-out infinite alternate;
}
.scn-morning-after-vigil .sunbeam {
  position: absolute; top: 10%; left: 12%; width: 120px; height: 200px;
  background: linear-gradient(180deg, rgba(255,240,200,0.3) 0%, rgba(255,240,200,0.05) 100%);
  clip-path: polygon(0 0, 100% 0, 85% 100%, 15% 100%);
  filter: blur(8px); animation: mv-sunbeam 15s ease-in-out infinite alternate;
}
.scn-morning-after-vigil .bed {
  position: absolute; bottom: 10%; left: 15%; width: 140px; height: 80px;
  background: linear-gradient(180deg, #c8b8a0 0%, #a89880 100%);
  border-radius: 10% 10% 5% 5%; box-shadow: 0 8px 20px rgba(0,0,0,0.15);
  animation: mv-bed 9s ease-in-out infinite;
}
.scn-morning-after-vigil .figure {
  position: absolute; bottom: 12%; left: 40%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: mv-figure 7s ease-in-out infinite;
}
.scn-morning-after-vigil .curtain {
  position: absolute; top: 12%; left: 8%; width: 40px; height: 140px;
  background: linear-gradient(180deg, #d0c0a8 0%, #b8a890 100%);
  border-radius: 0 30% 30% 0 / 0 40% 40% 0;
  animation: mv-curtain 10s ease-in-out infinite alternate;
}
.scn-morning-after-vigil .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30px;
  background: linear-gradient(90deg, #b0a090 0%, #c0b0a0 50%, #a09080 100%);
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.1);
}
@keyframes mv-window { 0% { opacity: 0.9; transform: scaleY(1); } 50% { opacity: 1; transform: scaleY(1.02); } 100% { opacity: 0.95; transform: scaleY(1); } }
@keyframes mv-sunbeam { 0% { opacity: 0.6; transform: translateX(0) rotate(-2deg); } 50% { opacity: 0.8; transform: translateX(5px) rotate(1deg); } 100% { opacity: 0.7; transform: translateX(-3px) rotate(-1deg); } }
@keyframes mv-bed { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes mv-figure { 0% { transform: rotate(0); } 25% { transform: rotate(2deg) translateY(-1px); } 50% { transform: rotate(-2deg) translateY(1px); } 75% { transform: rotate(1deg) translateY(-1px); } 100% { transform: rotate(0); } }
@keyframes mv-curtain { 0% { transform: translateX(0); } 50% { transform: translateX(8px); } 100% { transform: translateX(-5px); } }

/* === scene: final-instructions (fi) === */
.scn-final-instructions {
  background: linear-gradient(180deg, #1a1210 0%, #2a1e1a 40%, #3a2a22 100%), radial-gradient(ellipse at 50% 50%, #2a1e1a 0%, transparent 70%);
}
.scn-final-instructions .bg-wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #2a1e1a 0%, #1a1210 100%);
  box-shadow: inset 0 0 80px rgba(0,0,0,0.6);
}
.scn-final-instructions .desk {
  position: absolute; bottom: 10%; left: 20%; right: 20%; height: 60px;
  background: linear-gradient(180deg, #4a3a2e 0%, #3a2a1e 100%);
  border-radius: 5% 5% 0 0; box-shadow: 0 10px 30px rgba(0,0,0,0.5);
}
.scn-final-instructions .candle {
  position: absolute; bottom: 35%; left: 30%; width: 18px; height: 50px;
  background: linear-gradient(180deg, #d0c080 0%, #b0a060 100%);
  border-radius: 5% 5% 10% 10%; box-shadow: 0 0 10px 2px rgba(200,180,120,0.3);
}
.scn-final-instructions .flame {
  position: absolute; bottom: 48%; left: 31%; width: 12px; height: 20px;
  background: radial-gradient(circle at 50% 30%, #ffd080 0%, #ffb040 50%, #ff8020 80%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 20px 10px rgba(255,160,60,0.6), 0 0 40px 20px rgba(255,160,60,0.3);
  animation: fi-flame 2s ease-in-out infinite alternate;
}
.scn-final-instructions .papers {
  position: absolute; bottom: 12%; left: 35%; width: 60px; height: 20px;
  background: linear-gradient(180deg, #c8b8a0 0%, #b0a088 100%);
  border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  transform: rotate(-5deg); animation: fi-papers 8s ease-in-out infinite;
}
.scn-final-instructions .figure {
  position: absolute; bottom: 15%; right: 25%; width: 24px; height: 46px;
  background: linear-gradient(180deg, #3a2a22 0%, #2a1a14 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: fi-figure 6s ease-in-out infinite;
}
@keyframes fi-flame { 0% { transform: scaleY(0.9) translateY(0); opacity: 0.8; } 50% { transform: scaleY(1.1) translateY(-2px); opacity: 1; } 100% { transform: scaleY(0.95) translateY(1px); opacity: 0.9; } }
@keyframes fi-papers { 0% { transform: rotate(-5deg) translateY(0); } 25% { transform: rotate(-3deg) translateY(-2px); } 50% { transform: rotate(-6deg) translateY(0); } 75% { transform: rotate(-4deg) translateY(1px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes fi-figure { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(-3px) rotate(1deg); } 50% { transform: translateX(2px) rotate(-1deg); } 75% { transform: translateX(-1px) rotate(0.5deg); } 100% { transform: translateX(0) rotate(0); } }

.scn-emily-silent {
  background: 
    linear-gradient(180deg, #1a1410 0%, #2a1c14 40%, #1e1510 100%),
    radial-gradient(ellipse at 30% 80%, #3a2a1a 0%, transparent 60%);
}
.scn-emily-silent .wall-bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(90deg, #2c1e16, #1a1410 50%, #2a1c14);
}
.scn-emily-silent .floor {
  position: absolute; bottom: 0; left: 5%; right: 5%; height: 28%;
  background: linear-gradient(180deg, #2a1c14 0%, #1a1210 100%);
  border-radius: 10% 10% 0 0;
  transform: perspective(200px) rotateX(5deg);
}
.scn-emily-silent .window-frame {
  position: absolute; bottom: 28%; left: 55%; width: 100px; height: 140px;
  background: linear-gradient(135deg, #3a2a1a, #2a1c14);
  border: 4px solid #4a3424;
  border-radius: 4% 4% 2% 2%;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.6);
}
.scn-emily-silent .window-pane {
  position: absolute; bottom: 33%; left: 57%; width: 80px; height: 110px;
  background: radial-gradient(ellipse at 50% 50%, #5a4a3a 0%, #2a1c14 70%);
  box-shadow: 0 0 30px 10px rgba(90,74,58,0.4);
  animation: es-glow 8s ease-in-out infinite alternate;
}
.scn-emily-silent .figure-emily {
  position: absolute; bottom: 22%; left: 38%; width: 24px; height: 70px;
  background: linear-gradient(180deg, #1a1210 0%, #0e0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: es-sway 4s ease-in-out infinite;
}
.scn-emily-silent .candle {
  position: absolute; bottom: 25%; left: 28%; width: 6px; height: 30px;
  background: linear-gradient(180deg, #e0c080, #806040);
  border-radius: 20% 20% 10% 10%;
  animation: es-candle 2s ease-in-out infinite;
}
.scn-emily-silent .candle-glow {
  position: absolute; bottom: 28%; left: 26%; width: 20px; height: 20px;
  background: radial-gradient(circle, rgba(224,192,128,0.6) 0%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 15px rgba(224,192,128,0.3);
  animation: es-glow 3s ease-in-out infinite alternate;
}
@keyframes es-sway {
  0% { transform: translateX(0) translateY(0) rotate(-1deg); }
  50% { transform: translateX(2px) translateY(-2px) rotate(1deg); }
  100% { transform: translateX(0) translateY(0) rotate(-1deg); }
}
@keyframes es-candle {
  0% { transform: scaleY(1); opacity: 0.9; }
  50% { transform: scaleY(1.05); opacity: 1; }
  100% { transform: scaleY(0.95); opacity: 0.85; }
}
@keyframes es-glow {
  0% { box-shadow: 0 0 20px 5px rgba(224,192,128,0.2); opacity: 0.7; }
  50% { box-shadow: 0 0 40px 15px rgba(224,192,128,0.5); opacity: 1; }
  100% { box-shadow: 0 0 30px 10px rgba(224,192,128,0.3); opacity: 0.8; }
}
@keyframes es-windowglow {
  0% { opacity: 0.5; }
  50% { opacity: 1; }
  100% { opacity: 0.6; }
}
/* end emily-silent */

.scn-emily-mild-reply {
  background:
    linear-gradient(180deg, #1e1814 0%, #2c221c 50%, #1a1410 100%),
    radial-gradient(ellipse at 70% 30%, #3a2a1a 0%, transparent 60%);
}
.scn-emily-mild-reply .wall-panel {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(90deg, #2a1e18, #1e1814 50%, #2c221c);
  border-bottom: 2px solid #3a2a20;
}
.scn-emily-mild-reply .desk {
  position: absolute; bottom: 28%; left: 45%; width: 80px; height: 20px;
  background: linear-gradient(180deg, #4a3424, #2a1c14);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 4px 10px rgba(0,0,0,0.5);
  transform: perspective(300px) rotateX(8deg);
}
.scn-emily-mild-reply .figure-seated {
  position: absolute; bottom: 28%; left: 50%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mr-seat 8s ease-in-out infinite;
}
.scn-emily-mild-reply .candle {
  position: absolute; bottom: 30%; left: 60%; width: 5px; height: 28px;
  background: linear-gradient(180deg, #e0c080, #806040);
  border-radius: 20% 20% 10% 10%;
  animation: mr-candle 6s ease-in-out infinite;
}
.scn-emily-mild-reply .candle-glow {
  position: absolute; bottom: 32%; left: 58%; width: 18px; height: 18px;
  background: radial-gradient(circle, rgba(224,192,128,0.6) 0%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 12px rgba(224,192,128,0.3);
  animation: mr-glow 7s ease-in-out infinite alternate;
}
.scn-emily-mild-reply .books {
  position: absolute; bottom: 32%; left: 48%; width: 30px; height: 8px;
  background: linear-gradient(90deg, #5a3a2a, #4a2a1a);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.4);
  transform: skewX(-10deg);
  animation: mr-books 10s ease-in-out infinite alternate;
}
@keyframes mr-seat {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-1px) rotate(0.5deg); }
}
@keyframes mr-candle {
  0% { transform: scaleY(1); opacity: 0.7; }
  50% { transform: scaleY(1.04); opacity: 1; }
  100% { transform: scaleY(0.96); opacity: 0.8; }
}
@keyframes mr-glow {
  0% { box-shadow: 0 0 20px 5px rgba(224,192,128,0.2); opacity: 0.6; }
  50% { box-shadow: 0 0 45px 18px rgba(224,192,128,0.5); opacity: 1; }
  100% { box-shadow: 0 0 30px 10px rgba(224,192,128,0.3); opacity: 0.8; }
}
@keyframes mr-books {
  0% { transform: skewX(-10deg) translateY(0); }
  50% { transform: skewX(-10deg) translateY(-1px); }
  100% { transform: skewX(-10deg) translateY(0); }
}
/* end emily-mild-reply */

.scn-aunt-defiant {
  background:
    linear-gradient(180deg, #1a1414 0%, #2c1c1c 40%, #1e1010 100%),
    radial-gradient(ellipse at 50% 90%, #3a2020 0%, transparent 50%);
}
.scn-aunt-defiant .wall-dark {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(90deg, #1c1414, #241818 50%, #1c1414);
}
.scn-aunt-defiant .table {
  position: absolute; bottom: 20%; left: 35%; width: 90px; height: 15px;
  background: linear-gradient(180deg, #4a2a2a, #2a1a1a);
  border-radius: 6% 6% 0 0;
  box-shadow: 0 4px 12px rgba(0,0,0,0.6);
  transform: perspective(250px) rotateX(10deg);
}
.scn-aunt-defiant .vase {
  position: absolute; bottom: 22%; left: 38%; width: 12px; height: 30px;
  background: linear-gradient(180deg, #5a3a2a, #3a2214);
  border-radius: 40% 40% 30% 30% / 30% 30% 20% 20%;
  transform-origin: bottom center;
  animation: ad-vase 2s ease-in-out infinite;
}
.scn-aunt-defiant .figure-aunt {
  position: absolute; bottom: 12%; left: 45%; width: 28px; height: 80px;
  background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%);
  border-radius: 50% 50% 40% 40% / 55% 55% 45% 45%;
  transform-origin: bottom center;
  animation: ad-tremble 0.5s ease-in-out infinite;
}
.scn-aunt-defiant .arm-pointing {
  position: absolute; bottom: 40%; left: 50%; width: 20px; height: 6px;
  background: linear-gradient(90deg, #1a1410, #0e0a08);
  border-radius: 0 50% 50% 0;
  transform-origin: left center;
  transform: rotate(-30deg);
  animation: ad-arm 1s ease-in-out infinite;
}
.scn-aunt-defiant .candle-fierce {
  position: absolute; bottom: 21%; left: 32%; width: 5px; height: 32px;
  background: linear-gradient(180deg, #e08060, #8a4030);
  border-radius: 20% 20% 10% 10%;
  animation: ad-candle 1.5s ease-in-out infinite;
}
.scn-aunt-defiant .shadow-sharp {
  position: absolute; bottom: 0; left: 20%; width: 60%; height: 40%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.5) 100%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  animation: ad-shadow 0.8s ease-in-out infinite alternate;
}
@keyframes ad-tremble {
  0% { transform: translateX(0) translateY(0) rotate(0deg); }
  25% { transform: translateX(1px) translateY(-1px) rotate(0.5deg); }
  50% { transform: translateX(-1px) translateY(0) rotate(-0.5deg); }
  75% { transform: translateX(1px) translateY(1px) rotate(0.3deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes ad-arm {
  0% { transform: rotate(-30deg); }
  50% { transform: rotate(-25deg); }
  100% { transform: rotate(-30deg); }
}
@keyframes ad-vase {
  0% { transform: rotate(0deg); }
  25% { transform: rotate(1deg); }
  50% { transform: rotate(-1deg); }
  75% { transform: rotate(0.5deg); }
  100% { transform: rotate(0deg); }
}
@keyframes ad-candle {
  0% { transform: scaleY(1) rotate(0deg); opacity: 0.8; }
  50% { transform: scaleY(1.1) rotate(2deg); opacity: 1; }
  100% { transform: scaleY(0.9) rotate(-2deg); opacity: 0.7; }
}
@keyframes ad-shadow {
  0% { opacity: 0.3; }
  100% { opacity: 0.7; }
}
/* end aunt-defiant */

.scn-emily-advises {
  background:
    linear-gradient(180deg, #1a1612 0%, #2c241c 50%, #1e1814 100%),
    radial-gradient(ellipse at 30% 70%, #3a2a1a 0%, transparent 60%);
}
.scn-emily-advises .wall-soft {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(90deg, #2a1e18, #1e1814 50%, #2c241c);
  border-bottom: 1px solid #3a2a20;
}
.scn-emily-advises .chair {
  position: absolute; bottom: 22%; left: 38%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #3a2a1a, #1e1410);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.5);
  transform: perspective(200px) rotateX(5deg);
}
.scn-emily-advises .figure-aunt-seated {
  position: absolute; bottom: 24%; left: 40%; width: 22px; height: 55px;
  background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ea-aunt 10s ease-in-out infinite;
}
.scn-emily-advises .figure-emily-standing {
  position: absolute; bottom: 18%; left: 52%; width: 20px; height: 72px;
  background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ea-emily 12s ease-in-out infinite;
}
.scn-emily-advises .candle {
  position: absolute; bottom: 26%; left: 55%; width: 5px; height: 28px;
  background: linear-gradient(180deg, #e0c080, #806040);
  border-radius: 20% 20% 10% 10%;
  animation: ea-candle 6s ease-in-out infinite;
}
.scn-emily-advises .candle-glow {
  position: absolute; bottom: 28%; left: 53%; width: 18px; height: 18px;
  background: radial-gradient(circle, rgba(224,192,128,0.5) 0%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 12px rgba(224,192,128,0.25);
  animation: ea-glow 8s ease-in-out infinite alternate;
}
@keyframes ea-aunt {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-1px) rotate(0.5deg); }
}
@keyframes ea-emily {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-1px) rotate(-0.5deg); }
}
@keyframes ea-candle {
  0% { transform: scaleY(1); opacity: 0.85; }
  50% { transform: scaleY(1.03); opacity: 1; }
  100% { transform: scaleY(0.97); opacity: 0.9; }
}
@keyframes ea-glow {
  0% { box-shadow: 0 0 20px 5px rgba(224,192,128,0.2); opacity: 0.6; }
  50% { box-shadow: 0 0 45px 18px rgba(224,192,128,0.5); opacity: 1; }
  100% { box-shadow: 0 0 30px 10px rgba(224,192,128,0.3); opacity: 0.8; }
}
/* end emily-advises */

.scn-rescued-strangers {
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 40%, #2a1a0a 100%), radial-gradient(ellipse at 40% 70%, #b87860 0%, transparent 60%);
}
.scn-rescued-strangers .wall-bg { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%); }
.scn-rescued-strangers .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(0deg, #2a1a0a 0%, #4a3a2a 100%); border-radius:0; }
.scn-rescued-strangers .fireplace { position:absolute; bottom:30%; left:10%; width:100px; height:80px; background: #2a1a0a; border-radius: 20% 20% 10% 10%; box-shadow: 0 -10px 20px rgba(200,80,40,.4); }
.scn-rescued-strangers .flame-a { position:absolute; bottom:38%; left:15%; width:12px; height:30px; background: radial-gradient(ellipse, #f0a060 0%, #c8553d 70%, transparent 100%); border-radius:50%; animation: rs-flame 1.5s ease-in-out infinite alternate; }
.scn-rescued-strangers .flame-b { position:absolute; bottom:36%; left:20%; width:16px; height:36px; background: radial-gradient(ellipse, #ffb070 0%, #d07040 60%, transparent 100%); border-radius:50%; animation: rs-flame 2s ease-in-out infinite alternate; animation-delay: .5s; }
.scn-rescued-strangers .group-figures { position:absolute; bottom:30%; left:40%; width:120px; height:60px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; box-shadow: -5px 0 10px rgba(200,80,40,.3); animation: rs-group 6s ease-in-out infinite; }
.scn-rescued-strangers .window-storm { position:absolute; top:5%; right:10%; width:80px; height:60px; background: radial-gradient(ellipse, #4a6a7a 0%, #2a3a4a 100%); border:4px solid #3a2a1a; border-radius: 4px; box-shadow: inset 0 0 20px rgba(100,150,200,.2); animation: rs-storm 12s ease-in-out infinite; }
.scn-rescued-strangers .glow-warm { position:absolute; bottom:30%; left:0; right:0; height:40%; background: radial-gradient(ellipse at 50% 80%, rgba(200,80,40,.25) 0%, transparent 70%); pointer-events:none; }
@keyframes rs-flame { 0% { transform: scaleY(1) translateY(0); opacity:.8 } 50% { transform: scaleY(1.3) translateY(-3px); opacity:1 } 100% { transform: scaleY(.9) translateY(-1px); opacity:.7 } }
@keyframes rs-group { 0% { transform: scale(1); opacity:.9 } 50% { transform: scale(1.02) translateY(-2px); opacity:1 } 100% { transform: scale(1); opacity:.8 } }
@keyframes rs-storm { 0% { opacity:.6; filter: brightness(.8) } 50% { opacity:.2; filter: brightness(1.2) } 100% { opacity:.5; filter: brightness(.7) } }

.scn-annette’s-joy {
  background: linear-gradient(180deg, #2a1a0a 0%, #3a2a1a 30%, #4a3a2a 100%), radial-gradient(ellipse at 50% 60%, #c8553d 0%, transparent 70%);
}
.scn-annette’s-joy .table { position:absolute; bottom:20%; left:20%; right:20%; height:10%; background: linear-gradient(0deg, #4a2a1a 0%, #6a4a3a 100%); border-radius: 10% 10% 0 0; box-shadow: 0 -4px 8px rgba(0,0,0,.5); }
.scn-annette’s-joy .fire-hearth { position:absolute; bottom:30%; left:50%; width:100px; height:50px; transform:translateX(-50%); background: #1a0a00; border-radius: 30% 30% 0 0; box-shadow: 0 0 30px 10px rgba(200,80,40,.5); }
.scn-annette’s-joy .flame1 { position:absolute; bottom:35%; left:46%; width:14px; height:40px; background: radial-gradient(ellipse, #ffb070 0%, #c8553d 60%, transparent 100%); border-radius:50%; animation: aj-flame1 1.8s ease-in-out infinite alternate; }
.scn-annette’s-joy .flame2 { position:absolute; bottom:33%; left:52%; width:18px; height:50px; background: radial-gradient(ellipse, #ffd090 0%, #d07040 50%, transparent 100%); border-radius:50%; animation: aj-flame2 2.2s ease-in-out infinite alternate; animation-delay: .3s; }
.scn-annette’s-joy .servant-left { position:absolute; bottom:20%; left:15%; width:24px; height:60px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: aj-bounce 3s ease-in-out infinite; }
.scn-annette’s-joy .servant-right { position:absolute; bottom:20%; right:15%; width:26px; height:64px; background: linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: aj-bounce 3.5s ease-in-out infinite; animation-delay: .7s; }
.scn-annette’s-joy .servant-center { position:absolute; bottom:20%; left:50%; width:28px; height:70px; transform:translateX(-50%); background: linear-gradient(180deg, #4a2a1a 0%, #201008 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: aj-bounce 2.8s ease-in-out infinite; animation-delay: .4s; }
.scn-annette’s-joy .glow-fire { position:absolute; bottom:30%; left:30%; right:30%; height:30%; background: radial-gradient(ellipse at 50% 100%, rgba(255,180,80,.3) 0%, transparent 70%); pointer-events:none; animation: aj-glow 4s ease-in-out infinite alternate; }
@keyframes aj-flame1 { 0% { transform: scaleY(1) translateY(0) rotate(-2deg); opacity:.8 } 50% { transform: scaleY(1.4) translateY(-4px) rotate(2deg); opacity:1 } 100% { transform: scaleY(.9) translateY(-1px) rotate(-1deg); opacity:.6 } }
@keyframes aj-flame2 { 0% { transform: scaleY(1) translateY(0) rotate(1deg); opacity:.7 } 50% { transform: scaleY(1.5) translateY(-6px) rotate(-2deg); opacity:1 } 100% { transform: scaleY(1.1) translateY(-2px) rotate(0); opacity:.8 } }
@keyframes aj-bounce { 0% { transform: translateY(0) rotate(-1deg) } 30% { transform: translateY(-6px) rotate(1deg) } 60% { transform: translateY(-2px) rotate(0) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes aj-glow { 0% { opacity:.6 } 50% { opacity:1 } 100% { opacity:.7 } }

.scn-emily’s-thoughts {
  background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 40%, #3a3a4a 100%), radial-gradient(ellipse at 70% 50%, #4a3a3a 0%, transparent 60%);
}
.scn-emily’s-thoughts .wall-dark { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 100%); }
.scn-emily’s-thoughts .window-moon { position:absolute; top:10%; right:10%; width:80px; height:60px; background: radial-gradient(ellipse, #6a7a8a 0%, #3a4a5a 100%); border:3px solid #4a4a5a; border-radius:4px; box-shadow: inset 0 0 20px rgba(100,120,160,.3); animation: et-moon 12s ease-in-out infinite; }
.scn-emily’s-thoughts .candle-stand { position:absolute; bottom:20%; left:20%; width:4px; height:40px; background: #5a4a3a; border-radius: 2px; box-shadow: 0 0 2px 1px rgba(200,160,100,.4); }
.scn-emily’s-thoughts .candle-flame { position:absolute; bottom:58%; left:20%; width:8px; height:12px; background: radial-gradient(ellipse, #ffd090 0%, #c08040 70%, transparent 100%); border-radius:50%; animation: et-candle 3s ease-in-out infinite alternate; }
.scn-emily’s-thoughts .emily-silhouette { position:absolute; bottom:20%; left:45%; width:30px; height:80px; background: linear-gradient(180deg, #0a0a12 0%, #1a1a22 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: et-think 5s ease-in-out infinite; }
.scn-emily’s-thoughts .letter-table { position:absolute; bottom:18%; left:35%; width:40px; height:8px; background: #4a3a2a; border-radius:2px; }
.scn-emily’s-thoughts .thought-glow { position:absolute; bottom:40%; left:45%; width:20px; height:20px; background: radial-gradient(circle, rgba(200,180,150,.15) 0%, transparent 100%); animation: et-glow 7s ease-in-out infinite alternate; }
@keyframes et-moon { 0% { filter: brightness(.8) hue-rotate(10deg) } 50% { filter: brightness(1.1) hue-rotate(-5deg) } 100% { filter: brightness(.9) hue-rotate(0) } }
@keyframes et-candle { 0% { transform: scaleY(1) translateY(0); opacity:.9 } 50% { transform: scaleY(1.3) translateY(-2px); opacity:1 } 100% { transform: scaleY(.8) translateY(0); opacity:.7 } }
@keyframes et-think { 0% { transform: translateY(0) rotate(-2deg) } 40% { transform: translateY(-3px) rotate(2deg) } 70% { transform: translateY(-1px) rotate(-1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes et-glow { 0% { opacity:.3; transform: scale(1) } 50% { opacity:.6; transform: scale(1.5) } 100% { opacity:.2; transform: scale(.8) } }

.scn-count’s-impression {
  background: linear-gradient(180deg, #1a1a12 0%, #2a221a 40%, #1a120a 100%), radial-gradient(ellipse at 40% 50%, #3a2a1a 0%, transparent 70%);
}
.scn-count’s-impression .room-shadow { position:absolute; inset:0; background: radial-gradient(ellipse at 70% 40%, rgba(10,10,8,.6) 0%, transparent 70%); pointer-events:none; }
.scn-count’s-impression .arch-doorway { position:absolute; top:10%; left:15%; width:50px; height:100px; border:4px solid #4a3a2a; border-radius: 50% 50% 0 0 / 80% 80% 0 0; background: transparent; box-shadow: inset 0 0 20px rgba(0,0,0,.5); }
.scn-count’s-impression .count-figure { position:absolute; bottom:20%; left:20%; width:30px; height:80px; background: linear-gradient(180deg, #2a1a12 0%, #0a0500 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ci-count 6s ease-in-out infinite; }
.scn-count’s-impression .emily-figure { position:absolute; bottom:20%; right:20%; width:28px; height:75px; background: linear-gradient(180deg, #1a1210 0%, #080404 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ci-emily 8s ease-in-out infinite; animation-delay: 1s; }
.scn-count’s-impression .chandelier { position:absolute; top:2%; left:50%; width:30px; height:20px; transform:translateX(-50%); background: #4a3a2a; border-radius: 50% 50% 0 0; box-shadow: 0 0 10px 2px rgba(200,160,100,.5); animation: ci-chandelier 10s ease-in-out infinite alternate; }
.scn-count’s-impression .candle-light { position:absolute; top:4%; left:50%; width:6px; height:8px; transform:translateX(-50%); background: radial-gradient(ellipse, #ffd070 0%, #c08040 100%); border-radius:50%; animation: ci-candle 3s ease-in-out infinite alternate; }
.scn-count’s-impression .drapery { position:absolute; top:0; right:0; width:40px; height:60%; background: linear-gradient(180deg, #2a1a12 0%, #1a0a08 100%); border-radius: 0 0 40% 0 / 0 0 60% 0; animation: ci-drape 8s ease-in-out infinite; }
@keyframes ci-count { 0% { transform: translateY(0) rotate(-1deg); opacity:.9 } 50% { transform: translateY(-4px) rotate(1deg); opacity:1 } 100% { transform: translateY(0) rotate(0); opacity:.8 } }
@keyframes ci-emily { 0% { transform: translateY(0) rotate(1deg); opacity:.8 } 40% { transform: translateY(-3px) rotate(-1deg); opacity:.9 } 80% { transform: translateY(-1px) rotate(0); opacity:.95 } 100% { transform: translateY(0) rotate(.5deg); opacity:.9 } }
@keyframes ci-chandelier { 0% { filter: brightness(.7); transform: translateX(-50%) rotate(-2deg) } 50% { filter: brightness(1); transform: translateX(-50%) rotate(2deg) } 100% { filter: brightness(.8); transform: translateX(-50%) rotate(0) } }
@keyframes ci-candle { 0% { transform: translateX(-50%) scaleY(1); opacity:.8 } 50% { transform: translateX(-50%) scaleY(1.4) translateY(-2px); opacity:1 } 100% { transform: translateX(-50%) scaleY(.9); opacity:.7 } }
@keyframes ci-drape { 0% { transform: translateX(0) } 50% { transform: translateX(-5px) } 100% { transform: translateX(0) } }

.scn-clock-strikes-midnight {
  background: linear-gradient(180deg, #0b0e1f 0%, #141a33 40%, #1c2847 100%),
              radial-gradient(ellipse at 50% 0%, #3a507f 0%, transparent 60%);
  position: relative;
  overflow: hidden;
}
.scn-clock-strikes-midnight .moon {
  position: absolute;
  top: 8%;
  right: 15%;
  width: 60px;
  height: 56px;
  background: radial-gradient(circle at 40% 40%, #dce6f0 0%, #9faecf 80%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(156, 174, 207, 0.3), 0 0 80px 40px rgba(156, 174, 207, 0.1);
  animation: csm-moon 15s ease-in-out infinite alternate;
}
.scn-clock-strikes-midnight .tower {
  position: absolute;
  bottom: 20%;
  left: 50%;
  transform: translateX(-50%);
  width: 100px;
  height: 200px;
  background: linear-gradient(180deg, #2c3a4f 0%, #1a2335 60%, #0f1624 100%);
  border-radius: 10px 10px 4px 4px;
  box-shadow: 0 0 15px 5px rgba(0,0,0,0.4);
  animation: csm-tower 8s ease-in-out infinite;
}
.scn-clock-strikes-midnight .clock-face {
  position: absolute;
  bottom: 52%;
  left: 50%;
  transform: translateX(-50%);
  width: 50px;
  height: 50px;
  background: radial-gradient(circle, #c8d4e3 0%, #889bb3 70%);
  border-radius: 50%;
  border: 3px solid #3b4b63;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.3);
  animation: csm-clock-pulse 4s ease-in-out infinite alternate;
}
.scn-clock-strikes-midnight .clock-hand-minute {
  position: absolute;
  bottom: 54%;
  left: 50%;
  transform-origin: bottom center;
  width: 2px;
  height: 22px;
  background: #1a2233;
  border-radius: 1px;
  animation: csm-minute 12s linear infinite;
}
.scn-clock-strikes-midnight .clock-hand-hour {
  position: absolute;
  bottom: 54%;
  left: 50%;
  transform-origin: bottom center;
  width: 3px;
  height: 14px;
  background: #1a2233;
  border-radius: 1px;
  animation: csm-hour 1440s linear infinite;
}
.scn-clock-strikes-midnight .figure-cloak {
  position: absolute;
  bottom: 18%;
  left: 35%;
  width: 20px;
  height: 40px;
  background: linear-gradient(180deg, #111722 0%, #0a0e17 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: csm-figure 5s ease-in-out infinite;
}
.scn-clock-strikes-midnight .cloud-slow {
  position: absolute;
  top: 12%;
  left: -80px;
  width: 100px;
  height: 20px;
  background: linear-gradient(180deg, rgba(200, 212, 227, 0.2) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(4px);
  animation: csm-cloud 60s linear infinite;
}

@keyframes csm-moon {
  0% { transform: translateY(0); opacity: 0.9; }
  50% { transform: translateY(5px); opacity: 0.95; }
  100% { transform: translateY(-2px); opacity: 0.85; }
}
@keyframes csm-tower {
  0% { transform: translateX(-50%) translateY(0); }
  50% { transform: translateX(-50%) translateY(-2px); }
  100% { transform: translateX(-50%) translateY(0); }
}
@keyframes csm-clock-pulse {
  0% { box-shadow: inset 0 0 10px rgba(0,0,0,0.3), 0 0 0 transparent; }
  50% { box-shadow: inset 0 0 15px rgba(0,0,0,0.4), 0 0 20px rgba(200,212,227,0.2); }
  100% { box-shadow: inset 0 0 10px rgba(0,0,0,0.3), 0 0 0 transparent; }
}
@keyframes csm-minute {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}
@keyframes csm-hour {
  0% { transform: rotate(90deg); }
  100% { transform: rotate(450deg); }
}
@keyframes csm-figure {
  0% { transform: translateX(0) translateY(0) rotate(-1deg); }
  25% { transform: translateX(5px) translateY(-1px) rotate(1deg); }
  50% { transform: translateX(10px) translateY(0) rotate(-1deg); }
  75% { transform: translateX(15px) translateY(-1px) rotate(1deg); }
  100% { transform: translateX(0) translateY(0) rotate(0deg); }
}
@keyframes csm-cloud {
  0% { transform: translateX(0); }
  100% { transform: translateX(120vw); }
}

/* ---- castle-walls-siege-damage ---- */
.scn-castle-walls-siege-damage {
  background: linear-gradient(180deg, #0d1124 0%, #1b2540 50%, #2c3e5c 100%),
              radial-gradient(ellipse at 50% 0%, #4a668f 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-castle-walls-siege-damage .wall-bg {
  position: absolute;
  bottom: 10%;
  left: 5%;
  width: 90%;
  height: 60%;
  background: linear-gradient(180deg, #2f3f55 0%, #1c283a 60%, #0e1623 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.6);
}
.scn-castle-walls-siege-damage .wall-crack {
  position: absolute;
  bottom: 20%;
  left: 30%;
  width: 80px;
  height: 120px;
  background: linear-gradient(135deg, #1a2335 0%, #2c3a4f 40%, #111a2a 100%);
  clip-path: polygon(30% 0%, 70% 10%, 60% 40%, 80% 70%, 40% 100%, 20% 60%, 10% 30%);
  box-shadow: inset 0 0 10px rgba(0,0,0,0.5);
  animation: cwd-crack 10s ease-in-out infinite alternate;
}
.scn-castle-walls-siege-damage .moonlight-beam {
  position: absolute;
  top: 0;
  left: 50%;
  width: 15px;
  height: 100%;
  background: linear-gradient(180deg, rgba(200, 212, 227, 0.2) 0%, transparent 80%);
  transform: skewX(-5deg);
  filter: blur(8px);
  animation: cwd-beam 8s ease-in-out infinite alternate;
}
.scn-castle-walls-siege-damage .debris {
  position: absolute;
  bottom: 8%;
  left: 35%;
  width: 80px;
  height: 30px;
  background: linear-gradient(180deg, #3a2f2a 0%, #241d1a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: cwd-debris 6s ease-in-out infinite;
}
.scn-castle-walls-siege-damage .figure-shadow {
  position: absolute;
  bottom: 15%;
  left: 60%;
  width: 16px;
  height: 35px;
  background: linear-gradient(180deg, #0a0e17 0%, #03060b 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: cwd-figure 7s ease-in-out infinite;
}
.scn-castle-walls-siege-damage .broken-banner {
  position: absolute;
  bottom: 45%;
  left: 55%;
  width: 30px;
  height: 40px;
  background: linear-gradient(180deg, #4a3a3a 0%, #2e2424 100%);
  border-radius: 0 50% 50% 0 / 0 80% 80% 0;
  transform-origin: top left;
  animation: cwd-banner 4s ease-in-out infinite alternate;
}

@keyframes cwd-crack {
  0% { transform: scaleX(1); opacity: 0.8; }
  50% { transform: scaleX(1.05); opacity: 0.9; }
  100% { transform: scaleX(0.98); opacity: 0.75; }
}
@keyframes cwd-beam {
  0% { opacity: 0.2; transform: skewX(-5deg) scaleY(1); }
  50% { opacity: 0.4; transform: skewX(-3deg) scaleY(1.02); }
  100% { opacity: 0.15; transform: skewX(-5deg) scaleY(0.98); }
}
@keyframes cwd-debris {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(3px) rotate(2deg); }
  50% { transform: translateY(-1px) rotate(-1deg); }
  75% { transform: translateY(2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes cwd-figure {
  0% { transform: translateX(0) translateY(0); }
  50% { transform: translateX(8px) translateY(-2px); }
  100% { transform: translateX(0) translateY(0); }
}
@keyframes cwd-banner {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(15deg); }
}

/* ---- woods-shattered ---- */
.scn-woods-shattered {
  background: linear-gradient(180deg, #0b1226 0%, #1a2744 40%, #2d4263 100%),
              radial-gradient(ellipse at 30% 0%, #4a6a8f 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-woods-shattered .moon-above {
  position: absolute;
  top: 5%;
  left: 20%;
  width: 50px;
  height: 48px;
  background: radial-gradient(circle at 35% 35%, #d4dff0 0%, #7b92b8 80%);
  border-radius: 50%;
  box-shadow: 0 0 30px 15px rgba(123, 146, 184, 0.3);
  animation: ws-moon 12s ease-in-out infinite alternate;
}
.scn-woods-shattered .tree-stump {
  position: absolute;
  bottom: 25%;
  left: 25%;
  width: 30px;
  height: 40px;
  background: linear-gradient(180deg, #3a3028 0%, #241e18 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 10% 10%;
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.3);
  animation: ws-stump 9s ease-in-out infinite;
}
.scn-woods-shattered .shattered-trunk {
  position: absolute;
  bottom: 30%;
  left: 55%;
  width: 50px;
  height: 110px;
  background: linear-gradient(135deg, #2a231f 0%, #16120f 60%, #3a3028 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 20% 20%;
  clip-path: polygon(20% 0%, 80% 10%, 70% 30%, 90% 50%, 60% 80%, 30% 100%, 10% 70%, 0% 30%);
  box-shadow: inset 0 0 10px rgba(0,0,0,0.5);
  animation: ws-trunk 8s ease-in-out infinite alternate;
}
.scn-woods-shattered .fallen-branch {
  position: absolute;
  bottom: 20%;
  left: 40%;
  width: 80px;
  height: 8px;
  background: linear-gradient(90deg, #2b221c 0%, #17120d 100%);
  border-radius: 50%;
  transform-origin: left center;
  animation: ws-branch 6s ease-in-out infinite;
}
.scn-woods-shattered .moonlight-pool {
  position: absolute;
  bottom: 10%;
  left: 30%;
  width: 120px;
  height: 40px;
  background: radial-gradient(ellipse at 50% 50%, rgba(200, 212, 227, 0.15) 0%, transparent 60%);
  filter: blur(10px);
  animation: ws-pool 10s ease-in-out infinite alternate;
}
.scn-woods-shattered .shadow-creature {
  position: absolute;
  bottom: 22%;
  left: 70%;
  width: 18px;
  height: 38px;
  background: linear-gradient(180deg, #0b0e18 0%, #050710 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: ws-creature 7s ease-in-out infinite;
}
.scn-woods-shattered .mist {
  position: absolute;
  top: 30%;
  left: 10%;
  width: 150px;
  height: 30px;
  background: linear-gradient(180deg, rgba(200, 212, 227, 0.08) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(6px);
  animation: ws-mist 20s linear infinite;
}

@keyframes ws-moon {
  0% { transform: translateY(0); opacity: 0.85; }
  50% { transform: translateY(4px); opacity: 0.95; }
  100% { transform: translateY(-2px); opacity: 0.8; }
}
@keyframes ws-stump {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(2px) rotate(2deg); }
  50% { transform: translateY(-1px) rotate(-1deg); }
  75% { transform: translateY(1px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes ws-trunk {
  0% { transform: scaleY(1) rotate(-2deg); }
  50% { transform: scaleY(1.02) rotate(0deg); }
  100% { transform: scaleY(0.98) rotate(2deg); }
}
@keyframes ws-branch {
  0% { transform: rotate(-10deg) translateY(0); }
  33% { transform: rotate(-8deg) translateY(2px); }
  66% { transform: rotate(-12deg) translateY(-1px); }
  100% { transform: rotate(-10deg) translateY(0); }
}
@keyframes ws-pool {
  0% { opacity: 0.3; transform: scaleX(1); }
  50% { opacity: 0.5; transform: scaleX(1.1); }
  100% { opacity: 0.2; transform: scaleX(0.95); }
}
@keyframes ws-creature {
  0% { transform: translateX(0) translateY(0); }
  50% { transform: translateX(-6px) translateY(-3px); }
  100% { transform: translateX(0) translateY(0); }
}
@keyframes ws-mist {
  0% { transform: translateX(0); }
  100% { transform: translateX(200px); }
}

/* ---- relics-of-war ---- */
.scn-relics-of-war {
  background: linear-gradient(180deg, #1a0e0b 0%, #2a1a14 40%, #3a281f 100%),
              radial-gradient(ellipse at 50% 80%, #6a3a1a 0%, transparent 60%);
  position: relative;
  overflow: hidden;
}
.scn-relics-of-war .torch-fire {
  position: absolute;
  bottom: 55%;
  left: 20%;
  width: 20px;
  height: 30px;
  background: radial-gradient(ellipse at 50% 60%, #ffb040 0%, #c8553d 50%, transparent 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  box-shadow: 0 0 30px 15px rgba(200, 85, 61, 0.4), 0 0 60px 30px rgba(200, 85, 61, 0.15);
  animation: rw-fire 2s ease-in-out infinite alternate;
}
.scn-relics-of-war .path-dirt {
  position: absolute;
  bottom: 10%;
  left: 0;
  width: 100%;
  height: 20%;
  background: linear-gradient(180deg, #2a1f18 0%, #1a1310 100%);
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.4);
  animation: rw-path 10s ease-in-out infinite;
}
.scn-relics-of-war .arrow-broken {
  position: absolute;
  bottom: 25%;
  left: 45%;
  width: 4px;
  height: 30px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2e241c 100%);
  transform: rotate(40deg);
  transform-origin: bottom center;
  animation: rw-arrow 5s ease-in-out infinite alternate;
}
.scn-relics-of-war .shield-ruin {
  position: absolute;
  bottom: 20%;
  left: 60%;
  width: 40px;
  height: 50px;
  background: linear-gradient(135deg, #4a3a3a 0%, #2e2424 50%, #1a1414 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%;
  clip-path: polygon(20% 0%, 80% 0%, 100% 30%, 100% 80%, 50% 100%, 0% 80%, 0% 30%);
  box-shadow: inset 0 0 10px rgba(0,0,0,0.5);
  animation: rw-shield 8s ease-in-out infinite;
}
.scn-relics-of-war .skull-shadow {
  position: absolute;
  bottom: 18%;
  left: 35%;
  width: 24px;
  height: 24px;
  background: radial-gradient(circle at 50% 50%, #2a201a 0%, #1a1310 60%);
  border-radius: 50%;
  box-shadow: 0 0 10px 5px rgba(0,0,0,0.3);
  animation: rw-skull 6s ease-in-out infinite alternate;
}
.scn-relics-of-war .ground-rubble {
  position: absolute;
  bottom: 12%;
  left: 25%;
  width: 100px;
  height: 20px;
  background: linear-gradient(135deg, #3a2f2a 0%, #1f1814 60%, #2a201a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.3);
  animation: rw-rubble 7s ease-in-out infinite;
}
.scn-relics-of-war .smoke-wisp {
  position: absolute;
  bottom: 55%;
  left: 18%;
  width: 12px;
  height: 20px;
  background: radial-gradient(ellipse at 50% 50%, rgba(255, 200, 100, 0.15) 0%, transparent 100%);
  filter: blur(4px);
  animation: rw-smoke 4s ease-in-out infinite;
}

@keyframes rw-fire {
  0% { transform: scaleY(1) translateY(0); opacity: 0.9; }
  50% { transform: scaleY(1.2) translateY(-2px); opacity: 1; }
  100% { transform: scaleY(0.9) translateY(1px); opacity: 0.8; }
}
@keyframes rw-path {
  0% { transform: translateY(0); }
  50% { transform: translateY(3px); }
  100% { transform: translateY(0); }
}
@keyframes rw-arrow {
  0% { transform: rotate(35deg) translateY(0); }
  50% { transform: rotate(45deg) translateY(2px); }
  100% { transform: rotate(38deg) translateY(0); }
}
@keyframes rw-shield {
  0% { transform: rotate(0deg) translateY(0); }
  33% { transform: rotate(2deg) translateY(-2px); }
  66% { transform: rotate(-1deg) translateY(1px); }
  100% { transform: rotate(0deg) translateY(0); }
}
@keyframes rw-skull {
  0% { opacity: 0.6; transform: scale(1); }
  50% { opacity: 0.8; transform: scale(1.05); }
  100% { opacity: 0.5; transform: scale(0.98); }
}
@keyframes rw-rubble {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(4px) rotate(2deg); }
  50% { transform: translateX(-2px) rotate(-1deg); }
  75% { transform: translateX(3px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes rw-smoke {
  0% { transform: translateY(0) scaleX(1); opacity: 0.3; }
  50% { transform: translateY(-8px) scaleX(1.5); opacity: 0.1; }
  100% { transform: translateY(0) scaleX(1); opacity: 0.3; }
}

.scn-forest-darkness-torch {
  background: linear-gradient(180deg, #0a0a0a 0%, #1a1a1a 40%, #0d0d0d 100%), radial-gradient(ellipse at 60% 80%, #2a1a0a 0%, transparent 60%);
}
.scn-forest-darkness-torch .bg-deep {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #0e0b08 0%, #16120c 50%, #1c1812 100%);
  animation: fd-skydark 12s ease-in-out infinite;
}
.scn-forest-darkness-torch .bg-mid {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #1a140e 0%, #0f0b07 100%);
  border-radius: 60% 40% 0 0 / 30% 20% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.6);
  animation: fd-treesway 8s ease-in-out infinite alternate;
}
.scn-forest-darkness-torch .trunk-left {
  position: absolute; bottom: 30%; left: 20%; width: 12px; height: 60%;
  background: linear-gradient(90deg, #1e1610, #0e0a06);
  border-radius: 2px;
  transform-origin: bottom center;
  animation: fd-sway-left 10s ease-in-out infinite alternate;
}
.scn-forest-darkness-torch .trunk-right {
  position: absolute; bottom: 30%; right: 15%; width: 14px; height: 70%;
  background: linear-gradient(90deg, #1a120c, #0c0804);
  border-radius: 2px;
  transform-origin: bottom center;
  animation: fd-sway-right 12s ease-in-out infinite alternate;
}
.scn-forest-darkness-torch .torch {
  position: absolute; bottom: 40%; left: 50%; width: 8px; height: 20px;
  background: linear-gradient(180deg, #8a5a2a 0%, #3a2a1a 100%);
  border-radius: 2px 2px 4px 4px;
  transform: translateX(-50%);
  animation: fd-torch 1.5s ease-in-out infinite;
}
.scn-forest-darkness-torch .torch::after {
  content: ''; position: absolute; top: -16px; left: -8px; width: 24px; height: 24px;
  background: radial-gradient(circle, #ffa030 0%, #ff6a00 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(255,100,0,0.4), 0 0 80px 40px rgba(255,80,0,0.2);
  animation: fd-flame 0.8s ease-in-out infinite alternate;
}
.scn-forest-darkness-torch .figure {
  position: absolute; bottom: 30%; left: 44%; width: 24px; height: 48px;
  background: linear-gradient(180deg, #1a1410 0%, #0a0604 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fd-walk 4s ease-in-out infinite;
}
@keyframes fd-skydark { 0%,100% { opacity:0.7 } 50% { opacity:1 } }
@keyframes fd-treesway { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes fd-sway-left { 0% { transform: rotate(0deg) } 50% { transform: rotate(3deg) } 100% { transform: rotate(-1deg) } }
@keyframes fd-sway-right { 0% { transform: rotate(0deg) } 50% { transform: rotate(-4deg) } 100% { transform: rotate(1deg) } }
@keyframes fd-torch { 0%,100% { transform: translateX(-50%) scaleY(1) } 50% { transform: translateX(-50%) scaleY(1.1) translateY(-1px) } }
@keyframes fd-flame { 0% { opacity:0.8; transform: scale(0.95) } 50% { opacity:1; transform: scale(1.1) } 100% { opacity:0.9; transform: scale(1) } }
@keyframes fd-walk { 0%,100% { 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) } }

.scn-argument-about-danger {
  background: linear-gradient(180deg, #1c1612 0%, #2a201a 40%, #0e0a08 100%), radial-gradient(ellipse at 50% 60%, #3a2a1a 0%, transparent 70%);
}
.scn-argument-about-danger .bg-wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #2e241e 0%, #1a1410 100%);
  border-radius: 0 0 20% 20% / 0 0 10% 10%;
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.5);
}
.scn-argument-about-danger .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #1a1410 0%, #0e0a06 100%);
  border-radius: 20% 20% 0 0 / 10% 10% 0 0;
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.4);
}
.scn-argument-about-danger .lantern {
  position: absolute; bottom: 30%; left: 50%; width: 12px; height: 18px;
  background: linear-gradient(180deg, #6a502a 0%, #3a2a1a 100%);
  border-radius: 2px;
  transform: translateX(-50%);
  animation: ad-lantern 2s ease-in-out infinite alternate;
}
.scn-argument-about-danger .lantern::after {
  content: ''; position: absolute; top: -10px; left: -6px; width: 24px; height: 24px;
  background: radial-gradient(circle, #ffcc55 0%, #ff8a20 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(255,160,50,0.3), 0 0 60px 20px rgba(255,120,20,0.15);
  animation: ad-langlow 1.2s ease-in-out infinite alternate;
}
.scn-argument-about-danger .figure-left {
  position: absolute; bottom: 25%; left: 25%; width: 28px; height: 56px;
  background: linear-gradient(180deg, #1c1612 0%, #0a0604 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom right;
  animation: ad-point-left 3s ease-in-out infinite;
}
.scn-argument-about-danger .figure-right {
  position: absolute; bottom: 25%; right: 25%; width: 30px; height: 56px;
  background: linear-gradient(180deg, #1a1410 0%, #080402 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom left;
  animation: ad-point-right 3.5s ease-in-out infinite;
}
.scn-argument-about-danger .shadow-left {
  position: absolute; bottom: 25%; left: 20%; width: 40px; height: 16px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 70%);
  filter: blur(4px);
  animation: ad-shadow 3s ease-in-out infinite;
}
.scn-argument-about-danger .shadow-right {
  position: absolute; bottom: 25%; right: 20%; width: 44px; height: 16px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.3) 0%, transparent 70%);
  filter: blur(4px);
  animation: ad-shadow 3.5s ease-in-out infinite reverse;
}
@keyframes ad-lantern { 0%,100% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-2px) } }
@keyframes ad-langlow { 0% { opacity:0.7; transform: scale(0.9) } 50% { opacity:1; transform: scale(1.1) } 100% { opacity:0.8; transform: scale(0.95) } }
@keyframes ad-point-left { 0%,100% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(2px) rotate(5deg) } 50% { transform: translateX(0) rotate(-3deg) } 75% { transform: translateX(-2px) rotate(2deg) } }
@keyframes ad-point-right { 0%,100% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(-2px) rotate(-5deg) } 50% { transform: translateX(0) rotate(3deg) } 75% { transform: translateX(2px) rotate(-2deg) } }
@keyframes ad-shadow { 0%,100% { opacity:0.5; transform: scaleX(1) } 50% { opacity:0.8; transform: scaleX(1.1) } }

.scn-chestnut-tree-shelter {
  background: linear-gradient(180deg, #0b0e1a 0%, #121826 40%, #0a0c14 100%), radial-gradient(ellipse at 50% 30%, #1a2a3a 0%, transparent 70%);
}
.scn-chestnut-tree-shelter .bg-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #0f1420 0%, #181e30 60%, #0a0c14 100%);
  animation: ct-skypulse 8s ease-in-out infinite alternate;
}
.scn-chestnut-tree-shelter .bg-forest {
  position: absolute; bottom: 40%; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #141a1a 0%, #0e1010 100%);
  border-radius: 30% 70% 0 0 / 40% 50% 0 0;
  box-shadow: inset 0 6px 12px rgba(0,0,0,0.5);
  animation: ct-forest 10s ease-in-out infinite;
}
.scn-chestnut-tree-shelter .tree-trunk {
  position: absolute; bottom: 35%; left: 50%; width: 18px; height: 50%;
  background: linear-gradient(90deg, #1a1a1a 0%, #0e0e0e 100%);
  border-radius: 4px;
  transform: translateX(-50%);
  animation: ct-trunk 12s ease-in-out infinite alternate;
}
.scn-chestnut-tree-shelter .tree-canopy {
  position: absolute; bottom: 70%; left: 50%; width: 120px; height: 80px;
  background: radial-gradient(ellipse, #1a2a1a 0%, #0e1a0e 60%, transparent 90%);
  border-radius: 50%;
  transform: translateX(-50%);
  filter: blur(8px);
  animation: ct-canopy 8s ease-in-out infinite alternate;
}
.scn-chestnut-tree-shelter .lightning {
  position: absolute; top: 10%; left: 30%; width: 3px; height: 40px;
  background: linear-gradient(180deg, #d0d8ff 0%, #a0b0ff 30%, transparent 100%);
  filter: blur(1px);
  transform: rotate(15deg);
  animation: ct-lightning 4s ease-in-out infinite;
}
.scn-chestnut-tree-shelter .flash {
  position: absolute; inset: 0;
  background: rgba(200,210,255,0.02);
  pointer-events: none;
  animation: ct-flash 4s ease-in-out infinite;
}
.scn-chestnut-tree-shelter .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #0a0e0a 0%, #050705 100%);
  border-radius: 40% 60% 0 0 / 20% 30% 0 0;
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.4);
}
@keyframes ct-skypulse { 0%,100% { opacity:0.8 } 50% { opacity:1 } }
@keyframes ct-forest { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes ct-trunk { 0%,100% { transform: translateX(-50%) rotate(0deg) } 50% { transform: translateX(-50%) rotate(1deg) } }
@keyframes ct-canopy { 0% { transform: translateX(-50%) scale(0.95) } 50% { transform: translateX(-50%) scale(1.05) } 100% { transform: translateX(-50%) scale(0.98) } }
@keyframes ct-lightning { 0%,90%,100% { opacity:0 } 10% { opacity:1 } 20% { opacity:0.3 } 30% { opacity:1 } 40% { opacity:0 } }
@keyframes ct-flash { 0%,90%,100% { opacity:0 } 10%,30% { opacity:0.15 } 20% { opacity:0 } }

.scn-forest-path-storm {
  background: linear-gradient(180deg, #0a0e12 0%, #141c20 50%, #080c0e 100%), radial-gradient(ellipse at 50% 20%, #1a2a30 0%, transparent 70%);
}
.scn-forest-path-storm .bg-storm {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #121a1e 0%, #0e1418 100%);
  animation: fp-stormsky 15s ease-in-out infinite alternate;
}
.scn-forest-path-storm .clouds {
  position: absolute; top: 10%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, rgba(180,190,200,0.1) 0%, rgba(180,190,200,0.05) 100%);
  filter: blur(12px);
  animation: fp-clouds 30s linear infinite;
}
.scn-forest-path-storm .tree-left {
  position: absolute; bottom: 35%; left: 5%; width: 14px; height: 65%;
  background: linear-gradient(90deg, #121a16 0%, #0a0e0c 100%);
  border-radius: 3px;
  transform-origin: bottom center;
  animation: fp-sway-left 8s ease-in-out infinite alternate;
}
.scn-forest-path-storm .tree-left::before {
  content: ''; position: absolute; top: -20px; left: -20px; width: 60px; height: 40px;
  background: radial-gradient(ellipse, #0e1410 0%, transparent 80%);
  filter: blur(6px);
  border-radius: 50%;
}
.scn-forest-path-storm .tree-right {
  position: absolute; bottom: 35%; right: 10%; width: 16px; height: 70%;
  background: linear-gradient(90deg, #101a16 0%, #080c0a 100%);
  border-radius: 3px;
  transform-origin: bottom center;
  animation: fp-sway-right 10s ease-in-out infinite alternate;
}
.scn-forest-path-storm .tree-right::before {
  content: ''; position: absolute; top: -20px; right: -20px; width: 70px; height: 50px;
  background: radial-gradient(ellipse, #0c1410 0%, transparent 80%);
  filter: blur(8px);
  border-radius: 50%;
}
.scn-forest-path-storm .path {
  position: absolute; bottom: 20%; left: 30%; right: 30%; height: 10%;
  background: linear-gradient(180deg, #1a1e1a 0%, #0e120e 100%);
  border-radius: 50% / 20%;
  box-shadow: inset 0 2px 4px rgba(0,0,0,0.5);
  animation: fp-path 6s ease-in-out infinite;
}
.scn-forest-path-storm .figure-mule {
  position: absolute; bottom: 25%; left: 40%; width: 30px; height: 20px;
  background: linear-gradient(180deg, #161c1a 0%, #0a0e0c 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: fp-mule 4s ease-in-out infinite;
}
.scn-forest-path-storm .figure-walker {
  position: absolute; bottom: 25%; left: 48%; width: 16px; height: 36px;
  background: linear-gradient(180deg, #141a16 0%, #080c0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fp-walk 3.5s ease-in-out infinite;
}
@keyframes fp-stormsky { 0%,100% { opacity:0.7 } 50% { opacity:1 } }
@keyframes fp-clouds { 0% { transform: translateX(-20%) } 100% { transform: translateX(20%) } }
@keyframes fp-sway-left { 0% { transform: rotate(0deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(-2deg) } }
@keyframes fp-sway-right { 0% { transform: rotate(0deg) } 50% { transform: rotate(-6deg) } 100% { transform: rotate(2deg) } }
@keyframes fp-path { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(1.1) } }
@keyframes fp-mule { 0%,100% { transform: translateX(0) translateY(0) } 25% { transform: translateX(3px) translateY(-1px) } 50% { transform: translateX(6px) translateY(0) } 75% { transform: translateX(9px) translateY(-1px) } }
@keyframes fp-walk { 0%,100% { transform: translateX(0) translateY(0) rotate(-1deg) } 25% { transform: translateX(4px) translateY(-1px) rotate(1deg) } 50% { transform: translateX(8px) translateY(0) rotate(-2deg) } 75% { transform: translateX(12px) translateY(-1px) rotate(1deg) } }

.scn-impatience-for-anette {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #0f0f1a 50%, #0a0a14 100%),
    radial-gradient(ellipse at 50% 100%, #2a2a3e 0%, transparent 70%);
}
.scn-impatience-for-anette .bg-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(90deg, #1e1e2e 0%, #12121e 50%, #1a1a2a 100%);
  animation: ifa-wall 12s ease-in-out infinite alternate;
}
.scn-impatience-for-anette .bg-shadow {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(135deg, rgba(0,0,0,0.6) 0%, transparent 60%);
  animation: ifa-shadow-pulse 6s ease-in-out infinite;
}
.scn-impatience-for-anette .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1a1a1e 0%, #0d0d12 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.8);
}
.scn-impatience-for-anette .door {
  position: absolute; bottom: 8%; left: 20%; width: 35%; height: 65%;
  background: linear-gradient(180deg, #2c2a3a 0%, #1a1826 100%);
  border-radius: 2% 2% 0 0;
  box-shadow: -4px 0 12px rgba(0,0,0,0.7);
  animation: ifa-door 15s ease-in-out infinite;
}
.scn-impatience-for-anette .door-handle {
  position: absolute; bottom: 35%; left: 48%; width: 3%; height: 4%;
  background: radial-gradient(circle at 50% 40%, #806040 0%, #402818 100%);
  border-radius: 50%;
  box-shadow: 0 0 8px rgba(128,96,64,0.6);
  animation: ifa-handle-gleam 4s ease-in-out infinite;
}
.scn-impatience-for-anette .figure {
  position: absolute; bottom: 6%; right: 15%; width: 14%; height: 40%;
  background: linear-gradient(180deg, #2a2a3a 0%, #12121a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: ifa-figure-turn 8s ease-in-out infinite;
}
.scn-impatience-for-anette .shadow-crawl {
  position: absolute; bottom: 0; left: 10%; width: 40%; height: 6%;
  background: linear-gradient(90deg, transparent 0%, rgba(0,0,0,0.7) 50%, transparent 100%);
  filter: blur(8px);
  animation: ifa-crawl 24s linear infinite;
}
@keyframes ifa-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes ifa-shadow-pulse { 0% { opacity: 0.3; } 50% { opacity: 0.6; } 100% { opacity: 0.4; } }
@keyframes ifa-door { 0% { transform: translateX(0); } 50% { transform: translateX(2px); } 100% { transform: translateX(0); } }
@keyframes ifa-handle-gleam { 0% { opacity: 0.7; box-shadow: 0 0 8px rgba(128,96,64,0.4); } 50% { opacity: 1; box-shadow: 0 0 16px rgba(128,96,64,0.9); } 100% { opacity: 0.7; box-shadow: 0 0 8px rgba(128,96,64,0.4); } }
@keyframes ifa-figure-turn { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(5px) rotate(3deg); } 75% { transform: translateX(-5px) rotate(-3deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes ifa-crawl { 0% { left: 10%; opacity: 0.2; } 25% { left: 30%; opacity: 0.8; } 50% { left: 50%; opacity: 0.5; } 75% { left: 70%; opacity: 0.8; } 100% { left: 90%; opacity: 0.2; } }

.scn-light-expiring {
  background:
    linear-gradient(180deg, #0a0a1a 0%, #141428 50%, #0a0a14 100%),
    radial-gradient(ellipse at 30% 60%, #2a2a3e 0%, transparent 70%);
}
.scn-light-expiring .room-bg {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(90deg, #12121e 0%, #0e0e1a 100%);
  animation: le-room 20s ease-in-out infinite alternate;
}
.scn-light-expiring .table {
  position: absolute; bottom: 10%; left: 45%; width: 30%; height: 15%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0d0d1a 100%);
  border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.8);
}
.scn-light-expiring .candle {
  position: absolute; bottom: 25%; left: 55%; width: 4%; height: 18%;
  background: linear-gradient(180deg, #e0c8a8 0%, #a08060 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 6px rgba(160,128,96,0.6);
  animation: le-candle-wobble 5s ease-in-out infinite;
}
.scn-light-expiring .flame {
  position: absolute; bottom: 43%; left: 55.5%; width: 5%; height: 10%;
  background: radial-gradient(circle at 50% 80%, #ffd060 0%, #ffa040 30%, transparent 70%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 24px 6px #ffa040, 0 0 48px 12px rgba(255,160,64,0.5);
  animation: le-flame-fade 8s ease-in-out infinite alternate;
}
.scn-light-expiring .bed {
  position: absolute; bottom: 2%; left: 10%; width: 40%; height: 25%;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%);
  border-radius: 30% 30% 10% 10% / 60% 60% 10% 10%;
  box-shadow: inset 0 4px 20px rgba(0,0,0,0.7);
}
.scn-light-expiring .figure-standing {
  position: absolute; bottom: 5%; right: 18%; width: 12%; height: 38%;
  background: linear-gradient(180deg, #2e2e3e 0%, #16162a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: le-figure-rise 10s ease-in-out infinite;
}
.scn-light-expiring .wall-shadow {
  position: absolute; top: 0; right: 0; width: 60%; height: 100%;
  background: linear-gradient(135deg, transparent 30%, rgba(0,0,0,0.7) 100%);
  animation: le-shadow-move 18s ease-in-out infinite;
}
@keyframes le-room { 0% { opacity: 0.95; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes le-candle-wobble { 0% { transform: rotate(0deg) translateY(0); } 25% { transform: rotate(1deg) translateY(-1px); } 75% { transform: rotate(-1deg) translateY(1px); } 100% { transform: rotate(0deg) translateY(0); } }
@keyframes le-flame-fade { 0% { opacity: 0.9; transform: scale(1); box-shadow: 0 0 24px 6px #ffa040, 0 0 48px 12px rgba(255,160,64,0.5); } 50% { opacity: 0.4; transform: scale(0.7); box-shadow: 0 0 8px 2px #ffa040, 0 0 16px 4px rgba(255,160,64,0.2); } 100% { opacity: 0.1; transform: scale(0.5); box-shadow: 0 0 2px 1px #ffa040, 0 0 4px 2px rgba(255,160,64,0.1); } }
@keyframes le-figure-rise { 0% { transform: translateY(20%) rotate(0deg); } 30% { transform: translateY(0) rotate(-2deg); } 70% { transform: translateY(-5%) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes le-shadow-move { 0% { clip-path: inset(0 0 0 50%); } 50% { clip-path: inset(0 0 0 10%); } 100% { clip-path: inset(0 0 0 50%); } }

.scn-fire-lighted {
  background:
    linear-gradient(180deg, #1a0e08 0%, #2a1a12 30%, #3a2018 60%, #2a1a12 100%),
    radial-gradient(ellipse at 50% 80%, #4a2a1a 0%, transparent 70%);
}
.scn-fire-lighted .room-fire-bg {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #0f0604 0%, #1a0e0a 100%);
  animation: fl-room-glow 16s ease-in-out infinite alternate;
}
.scn-fire-lighted .hearth {
  position: absolute; bottom: 5%; left: 30%; width: 40%; height: 35%;
  background: linear-gradient(180deg, #2a1810 0%, #1a0e08 100%);
  border-radius: 40% 40% 30% 30% / 80% 80% 30% 30%;
  box-shadow: inset 0 -20px 40px rgba(0,0,0,0.9), 0 0 40px rgba(200,80,30,0.3);
}
.scn-fire-lighted .fire-glow {
  position: absolute; bottom: 15%; left: 35%; width: 30%; height: 20%;
  background: radial-gradient(ellipse at 50% 80%, #d06020 0%, #ff8030 30%, transparent 70%);
  border-radius: 50%;
  filter: blur(12px);
  animation: fl-glow-pulse 3s ease-in-out infinite;
}
.scn-fire-lighted .fire-flames {
  position: absolute; bottom: 18%; left: 40%; width: 20%; height: 25%;
  background: linear-gradient(180deg, transparent 0%, #ffa040 30%, #ff6020 60%, #d04010 100%);
  clip-path: polygon(30% 0, 50% 20%, 70% 0, 60% 40%, 80% 30%, 50% 70%, 20% 30%, 40% 40%);
  animation: fl-flame-dance 1.5s ease-in-out infinite alternate;
}
.scn-fire-lighted .log {
  position: absolute; bottom: 14%; left: 38%; width: 24%; height: 6%;
  background: linear-gradient(90deg, #3a2018 0%, #5a3020 50%, #3a2018 100%);
  border-radius: 30%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.8);
  animation: fl-ember 4s ease-in-out infinite;
}
.scn-fire-lighted .figure-left {
  position: absolute; bottom: 6%; left: 15%; width: 14%; height: 38%;
  background: linear-gradient(180deg, #2a1a12 0%, #1a0e08 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: fl-figure-sit 9s ease-in-out infinite;
}
.scn-fire-lighted .figure-right {
  position: absolute; bottom: 6%; right: 15%; width: 14%; height: 38%;
  background: linear-gradient(180deg, #3a2218 0%, #22120a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: fl-figure-sit 11s ease-in-out infinite 2s;
}
@keyframes fl-room-glow { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes fl-glow-pulse { 0% { transform: scale(0.95); opacity: 0.6; } 50% { transform: scale(1.1); opacity: 1; } 100% { transform: scale(0.95); opacity: 0.6; } }
@keyframes fl-flame-dance { 0% { transform: scaleY(0.9) translateX(0); } 25% { transform: scaleY(1.1) translateX(2px); } 75% { transform: scaleY(0.95) translateX(-2px); } 100% { transform: scaleY(1) translateX(0); } }
@keyframes fl-ember { 0% { opacity: 0.9; } 50% { opacity: 0.6; box-shadow: 0 0 12px rgba(200,80,30,0.3); } 100% { opacity: 0.9; } }
@keyframes fl-figure-sit { 0% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(2deg) translateY(-3px); } 100% { transform: rotate(0deg) translateY(0); } }

.scn-annette-superstitious-fear {
  background:
    linear-gradient(180deg, #0e0604 0%, #1a0e0a 30%, #2a1610 60%, #1a0e0a 100%),
    radial-gradient(ellipse at 50% 70%, #3a1e12 0%, transparent 70%);
}
.scn-annette-superstitious-fear .room-dark {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(90deg, #0a0502 0%, #140a06 100%);
  animation: asf-room 20s ease-in-out infinite alternate;
}
.scn-annette-superstitious-fear .fireplace {
  position: absolute; bottom: 5%; left: 10%; width: 30%; height: 40%;
  background: linear-gradient(180deg, #2a1610 0%, #1a0e08 100%);
  border-radius: 20% 20% 10% 10% / 50% 50% 10% 10%;
  box-shadow: inset 0 -10px 30px rgba(0,0,0,0.9);
}
.scn-annette-superstitious-fear .fire-embers {
  position: absolute; bottom: 20%; left: 14%; width: 22%; height: 16%;
  background: radial-gradient(ellipse at 50% 80%, #d06020 0%, #ff8030 30%, transparent 70%);
  filter: blur(8px);
  animation: asf-ember-pulse 4s ease-in-out infinite;
}
.scn-annette-superstitious-fear .cannon-shadow {
  position: absolute; bottom: 5%; right: 8%; width: 40%; height: 50%;
  background: linear-gradient(135deg, transparent 20%, rgba(0,0,0,0.8) 100%);
  clip-path: polygon(0 100%, 40% 40%, 70% 35%, 90% 20%, 100% 30%, 100% 100%);
  animation: asf-cannon-move 14s ease-in-out infinite;
}
.scn-annette-superstitious-fear .figure-annette {
  position: absolute; bottom: 6%; left: 20%; width: 12%; height: 40%;
  background: linear-gradient(180deg, #2a1a12 0%, #1a0e08 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: asf-annette-fear 10s ease-in-out infinite;
}
.scn-annette-superstitious-fear .figure-emily {
  position: absolute; bottom: 6%; left: 40%; width: 12%; height: 40%;
  background: linear-gradient(180deg, #3a2218 0%, #22120a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: asf-emily-calm 12s ease-in-out infinite 3s;
}
.scn-annette-superstitious-fear .ombre-move {
  position: absolute; top: 0; right: 0; width: 70%; height: 100%;
  background: linear-gradient(135deg, transparent 30%, rgba(0,0,0,0.6) 100%);
  animation: asf-ombre 22s ease-in-out infinite;
}
@keyframes asf-room { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes asf-ember-pulse { 0% { transform: scale(0.95); opacity: 0.7; } 50% { transform: scale(1.15); opacity: 1; } 100% { transform: scale(0.95); opacity: 0.7; } }
@keyframes asf-cannon-move { 0% { clip-path: polygon(0 100%, 40% 40%, 70% 35%, 90% 20%, 100% 30%, 100% 100%); } 50% { clip-path: polygon(0 100%, 50% 50%, 75% 45%, 95% 30%, 100% 40%, 100% 100%); } 100% { clip-path: polygon(0 100%, 40% 40%, 70% 35%, 90% 20%, 100% 30%, 100% 100%); } }
@keyframes asf-annette-fear { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(4px) rotate(-3deg); } 75% { transform: translateX(-4px) rotate(3deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes asf-emily-calm { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes asf-ombre { 0% { opacity: 0.4; } 50% { opacity: 0.8; } 100% { opacity: 0.4; } }

.scn-aunt-pours-out {
  background: linear-gradient(180deg, #1a1210 0%, #2a1a12 40%, #0e0a08 100%),
              radial-gradient(ellipse at 50% 70%, #3a2215 0%, transparent 70%);
}
.scn-aunt-pours-out .bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #1f1613 0%, #120c0a 100%);
}
.scn-aunt-pours-out .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a1e16 0%, #1a100a 100%);
  box-shadow: inset 0 12px 20px rgba(0,0,0,0.5);
}
.scn-aunt-pours-out .aunt {
  position: absolute; bottom: 28%; left: 12%; width: 28px; height: 90px;
  background: linear-gradient(180deg, #1a1410 0%, #0c0806 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: apo-fig 3s ease-in-out infinite;
}
.scn-aunt-pours-out .chair {
  position: absolute; bottom: 28%; left: 8%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #3a2a1e 0%, #1a100a 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
}
.scn-aunt-pours-out .candle {
  position: absolute; bottom: 35%; left: 68%; width: 6px; height: 28px;
  background: linear-gradient(180deg, #c8a878 0%, #8a6848 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 6px 2px #d89050;
}
.scn-aunt-pours-out .glow {
  position: absolute; bottom: 40%; left: 68%; width: 40px; height: 60px;
  background: radial-gradient(ellipse, #e8b868 0%, rgba(200,120,60,0.4) 50%, transparent 100%);
  transform: translate(-50%, -50%);
  animation: apo-glow 2s ease-in-out infinite alternate;
  pointer-events: none;
}
.scn-aunt-pours-out .shadow {
  position: absolute; bottom: 26%; left: 8%; width: 40px; height: 12px;
  background: rgba(0,0,0,0.5);
  border-radius: 50%;
  filter: blur(4px);
  transform: skewX(-20deg);
  animation: apo-shadow 2s ease-in-out infinite alternate;
}
.scn-aunt-pours-out .drapery {
  position: absolute; top: 0; right: 0; width: 40%; height: 100%;
  background: linear-gradient(180deg, #1a1410 0%, #0c0806 40%, #1a1410 70%, #0c0806 100%);
  background-size: 100% 20px;
  clip-path: polygon(30% 0, 100% 0, 100% 100%, 20% 100%);
  opacity: 0.3;
  animation: apo-drape 20s linear infinite;
}

@keyframes apo-fig { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes apo-glow { 0% { opacity: 0.7; transform: translate(-50%, -50%) scale(0.8); } 50% { opacity: 1; transform: translate(-50%, -50%) scale(1.1); } 100% { opacity: 0.8; transform: translate(-50%, -50%) scale(0.9); } }
@keyframes apo-shadow { 0% { opacity: 0.4; transform: skewX(-20deg) scaleX(1); } 50% { opacity: 0.7; transform: skewX(-20deg) scaleX(1.1); } 100% { opacity: 0.4; transform: skewX(-20deg) scaleX(1); } }
@keyframes apo-drape { 0% { background-position: 0 0; } 100% { background-position: 0 50px; } }

.scn-emily-listens {
  background: linear-gradient(180deg, #1a1210 0%, #2a1a12 40%, #0e0a08 100%),
              radial-gradient(ellipse at 70% 60%, #3a2215 0%, transparent 70%);
}
.scn-emily-listens .bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #1f1613 0%, #120c0a 100%);
}
.scn-emily-listens .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a1e16 0%, #1a100a 100%);
  box-shadow: inset 0 12px 20px rgba(0,0,0,0.5);
}
.scn-emily-listens .aunt {
  position: absolute; bottom: 28%; left: 60%; width: 28px; height: 84px;
  background: linear-gradient(180deg, #1a1410 0%, #0c0806 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: eli-aunt 5s ease-in-out infinite;
}
.scn-emily-listens .emily {
  position: absolute; bottom: 28%; left: 30%; width: 26px; height: 78px;
  background: linear-gradient(180deg, #261f1a 0%, #140e0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: eli-emily 6s ease-in-out infinite;
}
.scn-emily-listens .table {
  position: absolute; bottom: 25%; left: 44%; width: 50px; height: 20px;
  background: linear-gradient(180deg, #3a2a1e 0%, #1a100a 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
}
.scn-emily-listens .lamp {
  position: absolute; bottom: 35%; left: 47%; width: 10px; height: 14px;
  background: linear-gradient(180deg, #d8a868 0%, #a08040 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 0 8px 2px #c89050;
}
.scn-emily-listens .glow {
  position: absolute; bottom: 38%; left: 47%; width: 50px; height: 60px;
  background: radial-gradient(ellipse, #e8b868 0%, rgba(200,120,60,0.3) 50%, transparent 100%);
  transform: translate(-50%, -50%);
  animation: eli-glow 4s ease-in-out infinite alternate;
  pointer-events: none;
}
.scn-emily-listens .hand {
  position: absolute; bottom: 34%; left: 40%; width: 20px; height: 8px;
  background: linear-gradient(180deg, #2a201a 0%, #1a100a 100%);
  border-radius: 40% 60% 40% 60% / 50% 50% 50% 50%;
  transform: rotate(-10deg);
  animation: eli-hand 3s ease-in-out infinite;
}

@keyframes eli-aunt { 0% { transform: translateY(0) rotate(1deg); } 50% { transform: translateY(-2px) rotate(-1deg); } 100% { transform: translateY(0) rotate(1deg); } }
@keyframes eli-emily { 0% { transform: translateX(0) translateY(0); } 50% { transform: translateX(-4px) translateY(-1px); } 100% { transform: translateX(0) translateY(0); } }
@keyframes eli-glow { 0% { opacity: 0.6; transform: translate(-50%, -50%) scale(0.9); } 50% { opacity: 1; transform: translate(-50%, -50%) scale(1.05); } 100% { opacity: 0.7; transform: translate(-50%, -50%) scale(0.95); } }
@keyframes eli-hand { 0% { transform: rotate(-10deg); } 50% { transform: rotate(-5deg); } 100% { transform: rotate(-10deg); } }

.scn-emily-asks {
  background: linear-gradient(180deg, #1c1410 0%, #2c1c14 40%, #0e0a08 100%),
              radial-gradient(ellipse at 50% 70%, #3a2215 0%, transparent 70%);
}
.scn-emily-asks .bg {
  position: absolute; inset: 0 0 28% 0;
  background: linear-gradient(180deg, #1f1613 0%, #120c0a 100%);
}
.scn-emily-asks .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 28%;
  background: linear-gradient(180deg, #2a1e16 0%, #1a100a 100%);
  box-shadow: inset 0 10px 18px rgba(0,0,0,0.5);
}
.scn-emily-asks .aunt {
  position: absolute; bottom: 26%; left: 50%; width: 28px; height: 86px;
  background: linear-gradient(180deg, #1a1410 0%, #0c0806 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: eaq-aunt 8s ease-in-out infinite;
}
.scn-emily-asks .emily {
  position: absolute; bottom: 26%; left: 32%; width: 26px; height: 80px;
  background: linear-gradient(180deg, #261f1a 0%, #140e0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: eaq-emily 9s ease-in-out infinite;
}
.scn-emily-asks .chair {
  position: absolute; bottom: 26%; left: 46%; width: 42px; height: 48px;
  background: linear-gradient(180deg, #3a2a1e 0%, #1a100a 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
}
.scn-emily-asks .lamp {
  position: absolute; bottom: 32%; left: 55%; width: 10px; height: 16px;
  background: linear-gradient(180deg, #e0b870 0%, #a08040 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 0 8px 2px #d09050;
}
.scn-emily-asks .glow {
  position: absolute; bottom: 36%; left: 55%; width: 45px; height: 55px;
  background: radial-gradient(ellipse, #e8c070 0%, rgba(200,120,60,0.3) 50%, transparent 100%);
  transform: translate(-50%, -50%);
  animation: eaq-glow 6s ease-in-out infinite alternate;
  pointer-events: none;
}
.scn-emily-asks .rug {
  position: absolute; bottom: 20%; left: 30%; width: 80px; height: 12px;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%);
  border-radius: 30% 30% 40% 40%;
  opacity: 0.5;
  filter: blur(2px);
  animation: eaq-rug 10s ease-in-out infinite;
}

@keyframes eaq-aunt { 0% { transform: translateY(0) rotate(1deg); } 50% { transform: translateY(-1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(1deg); } }
@keyframes eaq-emily { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes eaq-glow { 0% { opacity: 0.7; transform: translate(-50%, -50%) scale(0.9); } 50% { opacity: 1; transform: translate(-50%, -50%) scale(1.1); } 100% { opacity: 0.8; transform: translate(-50%, -50%) scale(0.95); } }
@keyframes eaq-rug { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.02); } 100% { transform: scaleX(1); } }

.scn-aunt-continues {
  background: linear-gradient(180deg, #1a1210 0%, #2a1a12 40%, #0e0a08 100%),
              radial-gradient(ellipse at 30% 60%, #3a2215 0%, transparent 70%);
}
.scn-aunt-continues .bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #1f1613 0%, #120c0a 100%);
}
.scn-aunt-continues .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a1e16 0%, #1a100a 100%);
  box-shadow: inset 0 12px 20px rgba(0,0,0,0.5);
}
.scn-aunt-continues .aunt {
  position: absolute; bottom: 28%; left: 12%; width: 30px; height: 94px;
  background: linear-gradient(180deg, #1a1410 0%, #0c0806 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: auc-fig 3.5s ease-in-out infinite;
}
.scn-aunt-continues .chair {
  position: absolute; bottom: 28%; left: 8%; width: 42px; height: 50px;
  background: linear-gradient(180deg, #3a2a1e 0%, #1a100a 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
}
.scn-aunt-continues .candle {
  position: absolute; bottom: 35%; left: 72%; width: 6px; height: 28px;
  background: linear-gradient(180deg, #c8a878 0%, #8a6848 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 6px 2px #d89050;
}
.scn-aunt-continues .glow {
  position: absolute; bottom: 40%; left: 72%; width: 40px; height: 60px;
  background: radial-gradient(ellipse, #e8b868 0%, rgba(200,120,60,0.4) 50%, transparent 100%);
  transform: translate(-50%, -50%);
  animation: auc-glow 2.5s ease-in-out infinite alternate;
  pointer-events: none;
}
.scn-aunt-continues .shadow {
  position: absolute; bottom: 26%; left: 8%; width: 44px; height: 14px;
  background: rgba(0,0,0,0.5);
  border-radius: 50%;
  filter: blur(4px);
  transform: skewX(-20deg);
  animation: auc-shadow 3s ease-in-out infinite alternate;
}
.scn-aunt-continues .shatter {
  position: absolute; bottom: 20%; left: 35%; width: 16px; height: 16px;
  background: radial-gradient(circle, #6a4a3a 0%, #2a1a10 70%);
  border-radius: 50%;
  clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%);
  opacity: 0.6;
  transform: rotate(15deg);
  animation: auc-shatter 1s ease-in-out infinite;
}

@keyframes auc-fig { 0% { transform: translateY(0) rotate(-3deg); } 50% { transform: translateY(-4px) rotate(3deg); } 100% { transform: translateY(0) rotate(-3deg); } }
@keyframes auc-glow { 0% { opacity: 0.6; transform: translate(-50%, -50%) scale(0.8); } 50% { opacity: 1; transform: translate(-50%, -50%) scale(1.15); } 100% { opacity: 0.7; transform: translate(-50%, -50%) scale(0.9); } }
@keyframes auc-shadow { 0% { opacity: 0.4; transform: skewX(-20deg) scaleX(1); } 50% { opacity: 0.7; transform: skewX(-20deg) scaleX(1.15); } 100% { opacity: 0.4; transform: skewX(-20deg) scaleX(1); } }
@keyframes auc-shatter { 0% { transform: rotate(15deg) scale(1); opacity: 0.6; } 50% { transform: rotate(25deg) scale(0.9); opacity: 0.8; } 100% { transform: rotate(15deg) scale(1); opacity: 0.6; } }

.scn-valley-twilight-hope {
  background: linear-gradient(180deg, #1c2240 0%, #2a3a5a 30%, #4a5a7a 60%, #2a3a5a 100%), radial-gradient(ellipse at 50% 80%, #7a9aba 0%, transparent 60%);
}
.scn-valley-twilight-hope .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #1c2240 0%, #2a3a5a 50%, #4a5a7a 100%);
  animation: vth-sky 8s ease-in-out infinite alternate;
}
.scn-valley-twilight-hope .moon {
  position: absolute; top: 8%; left: 70%; width: 40px; height: 40px;
  background: radial-gradient(circle at 40% 40%, #e8eef5, #b0c4de 60%, transparent 70%);
  border-radius: 50%; box-shadow: 0 0 30px 15px rgba(176,196,222,0.4);
  animation: vth-moon 12s ease-in-out infinite alternate;
}
.scn-valley-twilight-hope .hills {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #3a4a5a 0%, #2a3a4a 100%);
  border-radius: 60% 50% 0 0 / 100% 80% 0 0;
  box-shadow: inset 0 5px 15px rgba(0,0,0,0.3);
  animation: vth-hills 20s ease-in-out infinite alternate;
}
.scn-valley-twilight-hope .tree-left {
  position: absolute; bottom: 32%; left: 15%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #1a2a2a 0%, #0a1a1a 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  transform: scaleY(1.4);
  animation: vth-tree 6s ease-in-out infinite alternate;
}
.scn-valley-twilight-hope .tree-right {
  position: absolute; bottom: 35%; right: 20%; width: 25px; height: 55px;
  background: linear-gradient(180deg, #1a2a2a 0%, #0a1a1a 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  transform: scaleY(1.3);
  animation: vth-tree 6s ease-in-out infinite alternate-reverse;
}
.scn-valley-twilight-hope .path {
  position: absolute; bottom: 22%; left: 40%; width: 60px; height: 20px;
  background: linear-gradient(90deg, #5a6a6a, #7a8a8a 30%, #5a6a6a);
  border-radius: 20% 20% 50% 50% / 30% 30% 60% 60%;
  filter: blur(2px);
  animation: vth-path 10s ease-in-out infinite;
}
.scn-valley-twilight-hope .figure {
  position: absolute; bottom: 24%; left: 45%; width: 12px; height: 28px;
  background: linear-gradient(180deg, #0a0a15, #1a1a2a);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: vth-figure 4s ease-in-out infinite;
}
.scn-valley-twilight-hope .sparkle {
  position: absolute; top: 45%; left: 55%; width: 6px; height: 6px;
  background: rgba(200,220,240,0.6); border-radius: 50%;
  box-shadow: 0 0 12px 4px rgba(200,220,240,0.3);
  animation: vth-sparkle 3s ease-in-out infinite;
}

@keyframes vth-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes vth-moon { 0% { transform: translate(0, 0) scale(1); } 50% { transform: translate(5px, -3px) scale(1.05); } 100% { transform: translate(-2px, 2px) scale(0.95); } }
@keyframes vth-hills { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-2px) scaleX(1.02); } 100% { transform: translateY(0) scaleX(0.98); } }
@keyframes vth-tree { 0% { transform: scaleY(1.4) rotate(-1deg); } 50% { transform: scaleY(1.4) rotate(1deg); } 100% { transform: scaleY(1.4) rotate(-1deg); } }
@keyframes vth-path { 0% { opacity: 0.4; } 50% { opacity: 0.6; } 100% { opacity: 0.4; } }
@keyframes vth-figure { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(8px) rotate(2deg); } 50% { transform: translateX(16px) rotate(0); } 75% { transform: translateX(24px) rotate(-2deg); } 100% { transform: translateX(32px) rotate(0); } }
@keyframes vth-sparkle { 0%,100% { opacity: 0; transform: scale(0.8); } 50% { opacity: 1; transform: scale(1.2); } }

.scn-sea-glimpse-west {
  background: linear-gradient(180deg, #2a4050 0%, #4a6a8a 30%, #8aaac0 60%, #6a8a9a 100%), radial-gradient(ellipse at 30% 60%, #aac4d4 0%, transparent 50%);
}
.scn-sea-glimpse-west .sky-far {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a4050 0%, #4a6a8a 50%, #8aaac0 100%);
  animation: sgw-sky 10s ease-in-out infinite alternate;
}
.scn-sea-glimpse-west .sunset-band {
  position: absolute; top: 25%; left: 10%; right: 10%; height: 8%;
  background: linear-gradient(90deg, #b08060, #d0a080 50%, #b08060);
  border-radius: 30% / 50%;
  filter: blur(8px);
  animation: sgw-band 8s ease-in-out infinite alternate;
}
.scn-sea-glimpse-west .mountains {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #3a4a5a 0%, #1a2a3a 100%);
  border-radius: 40% 60% 0 0 / 80% 70% 0 0;
  box-shadow: inset 0 5px 20px rgba(0,0,0,0.4);
  animation: sgw-mountains 20s ease-in-out infinite alternate;
}
.scn-sea-glimpse-west .sea {
  position: absolute; bottom: 10%; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #4a6a7a 0%, #3a5a6a 40%, #2a4a5a 100%);
  border-radius: 50% 50% 0 0 / 20% 20% 0 0;
  animation: sgw-sea 15s ease-in-out infinite alternate;
}
.scn-sea-glimpse-west .boat {
  position: absolute; bottom: 22%; left: 55%; width: 30px; height: 12px;
  background: linear-gradient(90deg, #5a3a2a, #7a5a3a);
  border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%;
  animation: sgw-boat 6s ease-in-out infinite;
}
.scn-sea-glimpse-west .sail-glow {
  position: absolute; bottom: 30%; left: 56%; width: 10px; height: 20px;
  background: radial-gradient(circle at 50% 30%, rgba(200,220,240,0.6), transparent 80%);
  border-radius: 30% 30% 10% 10%;
  animation: sgw-sail 4s ease-in-out infinite alternate;
}
.scn-sea-glimpse-west .cloud-drift {
  position: absolute; top: 12%; right: 8%; width: 70px; height: 14px;
  background: linear-gradient(180deg, rgba(180,200,220,0.5), rgba(180,200,220,0.1));
  border-radius: 50%; filter: blur(5px);
  animation: sgw-cloud 40s linear infinite;
}
.scn-sea-glimpse-west .mist {
  position: absolute; bottom: 10%; left: 0; right: 0; height: 15%;
  background: linear-gradient(0deg, rgba(100,130,150,0.3), transparent);
  animation: sgw-mist 18s ease-in-out infinite alternate;
}

@keyframes sgw-sky { 0% { background-position: 0% 0%; } 50% { background-position: 20% 0%; } 100% { background-position: 0% 0%; } }
@keyframes sgw-band { 0% { opacity: 0.4; transform: scaleX(0.9); } 50% { opacity: 0.8; transform: scaleX(1.1); } 100% { opacity: 0.5; transform: scaleX(0.9); } }
@keyframes sgw-mountains { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-3px) scaleX(1.02); } 100% { transform: translateY(0) scaleX(0.98); } }
@keyframes sgw-sea { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(2px) scaleY(1.03); } 100% { transform: translateY(-1px) scaleY(0.98); } }
@keyframes sgw-boat { 0% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(10px) rotate(2deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes sgw-sail { 0% { opacity: 0.5; } 50% { opacity: 1; } 100% { opacity: 0.5; } }
@keyframes sgw-cloud { 0% { transform: translateX(0); } 100% { transform: translateX(-100vw); } }
@keyframes sgw-mist { 0% { opacity: 0.3; } 50% { opacity: 0.6; } 100% { opacity: 0.3; } }

.scn-chesnut-wood-cottage {
  background: linear-gradient(180deg, #1a2a3a 0%, #2a3a4a 30%, #3a4a5a 60%, #2a3a4a 100%), radial-gradient(ellipse at 50% 20%, #5a7a9a 0%, transparent 70%);
}
.scn-chesnut-wood-cottage .forest-bg {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #1a2a3a 0%, #2a3a4a 50%, #3a4a5a 100%);
  animation: cwc-forest 12s ease-in-out infinite alternate;
}
.scn-chesnut-wood-cottage .moonbeam {
  position: absolute; top: 15%; left: 40%; width: 80px; height: 80px;
  background: radial-gradient(circle at 50% 50%, rgba(180,200,220,0.2), transparent 70%);
  border-radius: 50%;
  animation: cwc-beam 10s ease-in-out infinite alternate;
}
.scn-chesnut-wood-cottage .brook {
  position: absolute; bottom: 28%; left: 0; right: 0; height: 8%;
  background: linear-gradient(90deg, #3a5a6a, #5a7a8a 50%, #3a5a6a);
  border-radius: 30% 30% 10% 10% / 60% 60% 20% 20%;
  filter: blur(3px);
  animation: cwc-brook 6s ease-in-out infinite;
}
.scn-chesnut-wood-cottage .cottage-roof {
  position: absolute; bottom: 32%; left: 35%; width: 70px; height: 25px;
  background: linear-gradient(180deg, #4a3a2a, #3a2a1a);
  border-radius: 30% 30% 10% 10% / 60% 60% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: cwc-roof 8s ease-in-out infinite alternate;
}
.scn-chesnut-wood-cottage .window-moon {
  position: absolute; bottom: 36%; left: 43%; width: 14px; height: 18px;
  background: radial-gradient(circle, #b0c4de, #8090a0);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 20px 5px rgba(176,196,222,0.3);
  animation: cwc-window 4s ease-in-out infinite alternate;
}
.scn-chesnut-wood-cottage .tree-trunk {
  position: absolute; bottom: 32%; left: 20%; width: 18px; height: 60px;
  background: linear-gradient(180deg, #3a2a1a, #2a1a0a);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform: scaleY(1.2);
  animation: cwc-tree 7s ease-in-out infinite alternate;
}
.scn-chesnut-wood-cottage .leaf-litter {
  position: absolute; bottom: 25%; left: 10%; right: 10%; height: 6%;
  background: linear-gradient(90deg, #5a4a2a, #6a5a3a, #5a4a2a);
  border-radius: 50% / 30%;
  filter: blur(2px);
  animation: cwc-leaves 10s ease-in-out infinite alternate;
}

@keyframes cwc-forest { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes cwc-beam { 0% { transform: scale(0.8) translate(-5px, 0); } 50% { transform: scale(1.2) translate(5px, -5px); } 100% { transform: scale(0.9) translate(0, 3px); } }
@keyframes cwc-brook { 0% { transform: translateX(0) scaleY(1); } 50% { transform: translateX(5px) scaleY(1.1); } 100% { transform: translateX(-5px) scaleY(1); } }
@keyframes cwc-roof { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes cwc-window { 0% { opacity: 0.6; box-shadow: 0 0 10px 3px rgba(176,196,222,0.2); } 50% { opacity: 1; box-shadow: 0 0 25px 8px rgba(176,196,222,0.5); } 100% { opacity: 0.7; box-shadow: 0 0 15px 4px rgba(176,196,222,0.3); } }
@keyframes cwc-tree { 0% { transform: scaleY(1.2) rotate(-1deg); } 50% { transform: scaleY(1.2) rotate(1deg); } 100% { transform: scaleY(1.2) rotate(-1deg); } }
@keyframes cwc-leaves { 0% { opacity: 0.2; } 50% { opacity: 0.4; } 100% { opacity: 0.2; } }

.scn-cottage-arrival {
  background: linear-gradient(180deg, #1a2230 0%, #2a3a4a 40%, #4a5a6a 100%), radial-gradient(ellipse at 20% 80%, #6a7a8a 0%, transparent 60%);
}
.scn-cottage-arrival .night-sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #1a2230, #2a3a4a 60%, #3a4a5a);
  animation: ca-sky 10s ease-in-out infinite alternate;
}
.scn-cottage-arrival .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #3a4a3a, #2a3a2a);
  border-radius: 40% 60% 0 0 / 20% 30% 0 0;
  animation: ca-ground 15s ease-in-out infinite alternate;
}
.scn-cottage-arrival .cottage-wall {
  position: absolute; bottom: 25%; left: 30%; width: 100px; height: 70px;
  background: linear-gradient(180deg, #6a5a4a, #4a3a2a);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.5);
  animation: ca-wall 8s ease-in-out infinite alternate;
}
.scn-cottage-arrival .lintel {
  position: absolute; bottom: 55%; left: 30%; width: 100px; height: 8px;
  background: linear-gradient(90deg, #7a6a5a, #9a8a7a, #7a6a5a);
  border-radius: 20% / 50%;
  animation: ca-lintel 6s ease-in-out infinite alternate;
}
.scn-cottage-arrival .lit-window {
  position: absolute; bottom: 60%; left: 40%; width: 24px; height: 30px;
  background: radial-gradient(circle at 50% 50%, #ffd080, #e8b050 60%, #c08030 100%);
  border-radius: 10% 10% 15% 15% / 20% 20% 30% 30%;
  box-shadow: 0 0 30px 10px rgba(255,208,128,0.5), 0 0 60px 20px rgba(255,208,128,0.2);
  animation: ca-window 3s ease-in-out infinite alternate;
}
.scn-cottage-arrival .door {
  position: absolute; bottom: 25%; left: 52%; width: 30px; height: 55px;
  background: linear-gradient(180deg, #5a3a2a, #3a2a1a);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.5);
  animation: ca-door 9s ease-in-out infinite alternate;
}
.scn-cottage-arrival .step {
  position: absolute; bottom: 24%; left: 48%; width: 50px; height: 6px;
  background: linear-gradient(90deg, #7a6a5a, #9a8a7a);
  border-radius: 20% / 50%;
  animation: ca-step 12s ease-in-out infinite alternate;
}
.scn-cottage-arrival .figure-guide {
  position: absolute; bottom: 26%; left: 44%; width: 14px; height: 32px;
  background: linear-gradient(180deg, #1a1a2a, #0a0a1a);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: ca-figure 5s ease-in-out infinite;
}

@keyframes ca-sky { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes ca-ground { 0% { transform: translateY(0); } 50% { transform: translateY(1px); } 100% { transform: translateY(0); } }
@keyframes ca-wall { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-2px) scaleX(1.01); } 100% { transform: translateY(0) scaleX(1); } }
@keyframes ca-lintel { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes ca-window { 0% { opacity: 0.8; box-shadow: 0 0 20px 6px rgba(255,208,128,0.3), 0 0 40px 12px rgba(255,208,128,0.1); } 50% { opacity: 1; box-shadow: 0 0 40px 14px rgba(255,208,128,0.6), 0 0 80px 24px rgba(255,208,128,0.3); } 100% { opacity: 0.9; box-shadow: 0 0 25px 8px rgba(255,208,128,0.4), 0 0 50px 16px rgba(255,208,128,0.15); } }
@keyframes ca-door { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes ca-step { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes ca-figure { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(5px) rotate(1deg); } 50% { transform: translateX(10px) rotate(0); } 75% { transform: translateX(15px) rotate(-1deg); } 100% { transform: translateX(20px) rotate(0); } }

/* alarm-in-room */
.scn-alarm-in-room {
  background:
    linear-gradient(180deg, #0d0a08 0%, #1a1410 40%, #2a1e14 100%),
    radial-gradient(ellipse at 50% 100%, #3a2a1a 0%, transparent 70%);
}
.scn-alarm-in-room .room-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a1e14 0%, #1a1410 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,.6);
}
.scn-alarm-in-room .room-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1e1410 0%, #0d0a08 100%);
  border-radius: 30% 30% 0 0;
}
.scn-alarm-in-room .window-shutter {
  position: absolute; bottom: 40%; left: 15%; width: 18%; height: 28%;
  background: linear-gradient(135deg, #0d0a08 0%, #1a1410 100%);
  border-radius: 4px;
  box-shadow: inset 0 2px 6px rgba(0,0,0,.5), 0 0 8px rgba(0,0,0,.3);
  animation: aroom-shutter 6s ease-in-out infinite alternate;
}
.scn-alarm-in-room .gaslamp {
  position: absolute; bottom: 45%; right: 20%; width: 10px; height: 30px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1410 100%);
  border-radius: 2px 2px 4px 4px;
  box-shadow: 0 0 12px 2px #b08040;
}
.scn-alarm-in-room .flame {
  position: absolute; bottom: 48%; right: calc(20% + 2px); width: 6px; height: 12px;
  background: radial-gradient(circle, #f0c060 0%, #c08040 60%, transparent 100%);
  border-radius: 50% 50% 50% 50% / 60% 60% 40% 40%;
  box-shadow: 0 0 20px 6px #f0c060, 0 0 40px 12px rgba(240,192,96,.4);
  animation: aroom-flame 0.8s ease-in-out infinite alternate;
}
.scn-alarm-in-room .shadow-figure {
  position: absolute; bottom: 30%; right: 35%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #0d0a08 0%, #000 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: aroom-shadow 4s ease-in-out infinite;
}
.scn-alarm-in-room .ghostly-mist {
  position: absolute; top: 20%; left: 10%; width: 60px; height: 40px;
  background: radial-gradient(ellipse, rgba(180,200,220,.15) 0%, transparent 70%);
  filter: blur(12px);
  animation: aroom-mist 12s ease-in-out infinite alternate;
}
.scn-alarm-in-room .door {
  position: absolute; bottom: 30%; left: 55%; width: 20%; height: 45%;
  background: linear-gradient(180deg, #2a1e14 0%, #1a1410 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: inset 0 0 12px rgba(0,0,0,.4), 4px 0 8px rgba(0,0,0,.3);
}
@keyframes aroom-shutter { 0% { transform: skewX(0deg) } 50% { transform: skewX(2deg) } 100% { transform: skewX(-2deg) } }
@keyframes aroom-flame { 0% { transform: scaleY(1) translateY(0); opacity:.9 } 50% { transform: scaleY(1.2) translateY(-2px); opacity:1 } 100% { transform: scaleY(0.8) translateY(0); opacity:.8 } }
@keyframes aroom-shadow { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 25% { transform: translateX(10px) translateY(-3px) rotate(3deg) } 50% { transform: translateX(20px) translateY(0) rotate(-1deg) } 75% { transform: translateX(10px) translateY(2px) rotate(2deg) } 100% { transform: translateX(0) translateY(0) rotate(-2deg) } }
@keyframes aroom-mist { 0% { transform: translate(0,0) scale(1); opacity:.2 } 50% { transform: translate(30px,-10px) scale(1.5); opacity:.4 } 100% { transform: translate(-20px,10px) scale(1.2); opacity:.1 } }

/* verezzi-jeers */
.scn-verezzi-jeers {
  background:
    linear-gradient(180deg, #1a1410 0%, #2a1e14 40%, #3a2a1a 100%),
    radial-gradient(ellipse at 50% 30%, #b08040 0%, transparent 60%);
}
.scn-verezzi-jeers .room-bg {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #2a1e14 0%, #1a1410 100%);
  box-shadow: inset 0 0 50px rgba(0,0,0,.5);
}
.scn-verezzi-jeers .table {
  position: absolute; bottom: 25%; left: 25%; right: 25%; height: 15%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e14 100%);
  border-radius: 10% 10% 4% 4%;
  box-shadow: 0 4px 12px rgba(0,0,0,.6);
}
.scn-verezzi-jeers .seated-figure {
  position: absolute; bottom: 28%; left: 30%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #1a1410 0%, #0d0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: vj-seated 3s ease-in-out infinite;
}
.scn-verezzi-jeers .standing-figure {
  position: absolute; bottom: 25%; right: 30%; width: 36px; height: 80px;
  background: linear-gradient(180deg, #2a1e14 0%, #0d0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: vj-standing 5s ease-in-out infinite;
}
.scn-verezzi-jeers .candle {
  position: absolute; bottom: 40%; left: 48%; width: 6px; height: 20px;
  background: linear-gradient(180deg, #b08040 0%, #6a4a2a 100%);
  border-radius: 2px 2px 4px 4px;
  box-shadow: 0 0 8px 2px #f0c060;
}
.scn-verezzi-jeers .wine-goblet {
  position: absolute; bottom: 36%; left: 45%; width: 8px; height: 12px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e14 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 2px 4px rgba(0,0,0,.4);
}
.scn-verezzi-jeers .pointing-hand {
  position: absolute; bottom: 45%; right: 35%; width: 10px; height: 6px;
  background: #0d0a08;
  border-radius: 0 60% 60% 0;
  transform-origin: left center;
  animation: vj-point 2s ease-in-out infinite;
}
.scn-verezzi-jeers .flicker-light {
  position: absolute; top: 10%; left: 0; right: 0; bottom: 50%;
  background: radial-gradient(ellipse at 50% 30%, rgba(240,192,96,.08) 0%, transparent 70%);
  animation: vj-flicker 1s ease-in-out infinite alternate;
}
@keyframes vj-seated { 0% { transform: translateX(0) rotate(0) } 25% { transform: translateX(4px) rotate(3deg) } 50% { transform: translateX(0) rotate(-2deg) } 75% { transform: translateX(-4px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes vj-standing { 0% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-4px) rotate(2deg) } 100% { transform: translateY(0) rotate(-2deg) } }
@keyframes vj-point { 0% { transform: rotate(0) } 50% { transform: rotate(30deg) } 100% { transform: rotate(0) } }
@keyframes vj-flicker { 0% { opacity:.3 } 50% { opacity:.6 } 100% { opacity:.2 } }

/* valancourt-intro */
.scn-valancourt-intro {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 40%, #3a3a4e 100%),
    radial-gradient(ellipse at 50% 30%, #4a4a5e 0%, transparent 80%);
}
.scn-valancourt-intro .wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%);
  box-shadow: inset 0 0 30px rgba(0,0,0,.4);
}
.scn-valancourt-intro .window-frame {
  position: absolute; bottom: 25%; left: 30%; width: 25%; height: 40%;
  background: linear-gradient(135deg, #2a2a3e 0%, #1a1a2e 100%);
  border: 3px solid #3a3a4e;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,.3);
}
.scn-valancourt-intro .drapery {
  position: absolute; bottom: 25%; left: 25%; width: 35%; height: 50%;
  background: linear-gradient(180deg, #3a3a4e 0%, #2a2a3e 50%, #1a1a2e 100%);
  border-radius: 0 0 20% 20%;
  transform-origin: top;
  animation: vint-drape 7s ease-in-out infinite alternate;
}
.scn-valancourt-intro .moonlight-beam {
  position: absolute; bottom: 25%; left: 30%; width: 25%; height: 60%;
  background: linear-gradient(180deg, rgba(200,200,255,.08) 0%, transparent 100%);
  clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%);
  animation: vint-moon 10s ease-in-out infinite alternate;
}
.scn-valancourt-intro .figure-sitting {
  position: absolute; bottom: 20%; left: 35%; width: 36px; height: 50px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0d0d1a 100%);
  border-radius: 50% 40% 40% 40% / 60% 50% 40% 40%;
  transform-origin: bottom center;
  animation: vint-sit 4s ease-in-out infinite;
}
.scn-valancourt-intro .chair {
  position: absolute; bottom: 18%; left: 33%; width: 50px; height: 40px;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%);
  border-radius: 10% 10% 30% 30% / 20% 20% 60% 60%;
  box-shadow: 0 2px 6px rgba(0,0,0,.5);
}
.scn-valancourt-intro .letter {
  position: absolute; bottom: 24%; left: 38%; width: 12px; height: 16px;
  background: linear-gradient(135deg, #4a4a5e 0%, #3a3a4e 100%);
  border-radius: 2px;
  transform: rotate(-10deg);
  box-shadow: 0 1px 3px rgba(0,0,0,.3);
  animation: vint-letter 5s ease-in-out infinite alternate;
}
@keyframes vint-drape { 0% { transform: translateY(0) scaleX(1) } 50% { transform: translateY(3px) scaleX(1.02) } 100% { transform: translateY(0) scaleX(1) } }
@keyframes vint-moon { 0% { opacity:.3; transform: translateX(0) } 50% { opacity:.5; transform: translateX(5px) } 100% { opacity:.2; transform: translateX(-5px) } }
@keyframes vint-sit { 0% { transform: translateY(0) rotate(0) } 30% { transform: translateY(-1px) rotate(1deg) } 60% { transform: translateY(0) rotate(-1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes vint-letter { 0% { transform: rotate(-10deg) translateY(0) } 50% { transform: rotate(-8deg) translateY(-1px) } 100% { transform: rotate(-12deg) translateY(0) } }

/* valancourt-in-gardens */
.scn-valancourt-in-gardens {
  background:
    linear-gradient(180deg, #1a1a3a 0%, #2a1a3a 30%, #4a2a4a 60%, #6a3a5a 100%),
    radial-gradient(ellipse at 50% 30%, #3a2a4a 0%, transparent 70%);
}
.scn-valancourt-in-gardens .sky-dusk {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #1a1a3a 0%, #4a2a4a 50%, #6a3a5a 100%);
  animation: vg-sky 10s ease-in-out infinite alternate;
}
.scn-valancourt-in-gardens .tree-left {
  position: absolute; bottom: 35%; left: 5%; width: 25%; height: 65%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 80% 20% 40% 60% / 90% 30% 70% 10%;
  box-shadow: inset 0 0 20px rgba(0,0,0,.4);
  animation: vg-tree-l 20s ease-in-out infinite alternate;
}
.scn-valancourt-in-gardens .tree-right {
  position: absolute; bottom: 35%; right: 5%; width: 20%; height: 60%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 20% 80% 60% 40% / 30% 90% 10% 70%;
  box-shadow: inset 0 0 20px rgba(0,0,0,.4);
  animation: vg-tree-r 25s ease-in-out infinite alternate;
}
.scn-valancourt-in-gardens .terrace {
  position: absolute; bottom: 15%; left: 10%; right: 10%; height: 20%;
  background: linear-gradient(180deg, #3a2a3a 0%, #2a1a2a 100%);
  border-radius: 30% 30% 0 0 / 100% 100% 0 0;
  box-shadow: 0 -4px 12px rgba(0,0,0,.3);
}
.scn-valancourt-in-gardens .pavilion {
  position: absolute; bottom: 30%; left: 45%; width: 30%; height: 25%;
  background: linear-gradient(180deg, #4a2a4a 0%, #2a1a2a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 0 10px rgba(0,0,0,.5);
  animation: vg-pavilion 8s ease-in-out infinite;
}
.scn-valancourt-in-gardens .figure-standing {
  position: absolute; bottom: 20%; left: 55%; width: 30px; height: 65px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0d0d1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: vg-figure 6s ease-in-out infinite;
}
.scn-valancourt-in-gardens .fountain {
  position: absolute; bottom: 15%; left: 30%; width: 20px; height: 20px;
  background: radial-gradient(circle, #5a3a5a 0%, #3a2a3a 60%);
  border-radius: 50%;
  box-shadow: 0 0 8px rgba(100,80,120,.3);
  animation: vg-fountain 4s ease-in-out infinite alternate;
}
.scn-valancourt-in-gardens .path {
  position: absolute; bottom: 5%; left: 25%; right: 25%; height: 10%;
  background: linear-gradient(180deg, #3a2a3a 0%, #2a1a2a 100%);
  border-radius: 40% 40% 0 0;
  opacity: 0.6;
}
@keyframes vg-sky { 0% { opacity:.8; transform: scaleY(1) } 50% { opacity:1; transform: scaleY(1.02) } 100% { opacity:.7; transform: scaleY(0.98) } }
@keyframes vg-tree-l { 0% { transform: translateX(0) rotate(-1deg) } 50% { transform: translateX(-5px) rotate(1deg) } 100% { transform: translateX(0) rotate(-1deg) } }
@keyframes vg-tree-r { 0% { transform: translateX(0) rotate(1deg) } 50% { transform: translateX(5px) rotate(-1deg) } 100% { transform: translateX(0) rotate(1deg) } }
@keyframes vg-pavilion { 0% { transform: translateY(0) scaleX(1) } 50% { transform: translateY(-2px) scaleX(1.01) } 100% { transform: translateY(0) scaleX(1) } }
@keyframes vg-figure { 0% { transform: translateX(0) rotate(0) } 30% { transform: translateX(3px) rotate(2deg) } 60% { transform: translateX(-3px) rotate(-2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes vg-fountain { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-2px) scale(1.1) } 100% { transform: translateY(0) scale(1) } }

/* resolution-to-part */
.scn-resolution-to-part { background: linear-gradient(180deg, #0d0d1a 0%, #1a1a2e 60%, #2a1a10 100%), radial-gradient(ellipse at 30% 40%, #1a1a2e 0%, transparent 70%); }
.scn-resolution-to-part .wall-bg { position:absolute; inset:0; background: linear-gradient(90deg, #0f0f18 0%, #1c1c28 50%, #0f0f18 100%); }
.scn-resolution-to-part .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #1a1410 0%, #0d0b09 100%); border-radius: 30% 30% 0 0 / 40% 40% 0 0; }
.scn-resolution-to-part .window { position:absolute; top:20%; left:35%; width:40%; height:40%; background: radial-gradient(ellipse, #1a2a3a 20%, #0a0a15 100%); border:2px solid #2a2a3a; border-radius: 4% 4% 8% 8%; box-shadow: inset 0 0 20px rgba(0,0,0,.8); }
.scn-resolution-to-part .moonlight { position:absolute; top:15%; left:40%; width:30%; height:30%; background: radial-gradient(circle, rgba(180,200,230,.12) 0%, transparent 60%); animation: rtp-moonlight 10s ease-in-out infinite alternate; }
.scn-resolution-to-part .figure { position:absolute; bottom:18%; left:45%; width:20px; height:50px; background: linear-gradient(180deg, #1a1a2a 40%, #0a0a14 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rtp-figure 6s ease-in-out infinite; }
.scn-resolution-to-part .chair { position:absolute; bottom:12%; left:40%; width:40px; height:30px; background: linear-gradient(180deg, #2a1a14 0%, #1a0a08 100%); border-radius: 20% 20% 30% 30%; box-shadow: 0 4px 8px rgba(0,0,0,.6); }
.scn-resolution-to-part .candle { position:absolute; bottom:30%; left:30%; width:6px; height:20px; background: linear-gradient(180deg, #fff3c0 10%, #c08040 100%); border-radius: 50% 50% 20% 20%; }
.scn-resolution-to-part .candleglow { position:absolute; bottom:32%; left:30%; width:24px; height:24px; margin:-12px 0 0 -12px; background: radial-gradient(circle, rgba(255,200,100,.6) 0%, rgba(255,200,100,.1) 50%, transparent 100%); border-radius:50%; animation: rtp-candle 2.5s ease-in-out infinite alternate; }
@keyframes rtp-moonlight { 0% { opacity:.3 } 50% { opacity:.5 } 100% { opacity:.2 } }
@keyframes rtp-figure { 0% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-1px) rotate(2deg) } 50% { transform: translateY(0) rotate(-1deg) } 75% { transform: translateY(-1px) rotate(1deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes rtp-candle { 0% { transform: scale(.8) rotate(-2deg); opacity:.6 } 50% { transform: scale(1.1) rotate(2deg); opacity:1 } 100% { transform: scale(.9) rotate(-1deg); opacity:.7 } }

/* fortress-night-arrival */
.scn-fortress-night-arrival { background: linear-gradient(180deg, #0c0c1e 0%, #1a1a3a 40%, #2a2a4a 100%), radial-gradient(ellipse at 50% 20%, #1a1a3a 0%, transparent 60%); }
.scn-fortress-night-arrival .sky-night { position:absolute; inset:0; background: linear-gradient(180deg, #0c0c1e 0%, #1a1a2e 100%); }
.scn-fortress-night-arrival .moon { position:absolute; top:8%; left:70%; width:60px; height:60px; background: radial-gradient(circle, #e8eaf0 0%, #c0c8d8 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 40px 10px rgba(200,210,230,.2); animation: fna-moon 20s ease-in-out infinite alternate; }
.scn-fortress-night-arrival .wood-left { position:absolute; bottom:0; left:0; width:35%; height:60%; background: linear-gradient(180deg, #0e0e0e 0%, #1a1412 100%); border-radius: 0 60% 0 0 / 0 40% 0 0; }
.scn-fortress-night-arrival .wood-right { position:absolute; bottom:0; right:0; width:30%; height:55%; background: linear-gradient(180deg, #121212 0%, #1a1614 100%); border-radius: 60% 0 0 0 / 40% 0 0 0; animation: fna-woods 8s ease-in-out infinite alternate; }
.scn-fortress-night-arrival .cliff { position:absolute; bottom:5%; left:50%; width:40%; height:50%; transform: translateX(-50%); background: linear-gradient(180deg, #1a1a1a 0%, #0f0f0f 100%); border-radius: 30% 30% 0 0 / 50% 50% 0 0; box-shadow: 0 -6px 12px rgba(0,0,0,.5); }
.scn-fortress-night-arrival .torch { position:absolute; bottom:40%; left:30%; width:8px; height:30px; background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%); border-radius: 20% 20% 10% 10%; }
.scn-fortress-night-arrival .torchglow { position:absolute; bottom:42%; left:30%; width:50px; height:50px; margin:-25px 0 0 -25px; background: radial-gradient(circle, rgba(255,180,80,.6) 0%, rgba(255,120,20,.2) 40%, transparent 70%); border-radius:50%; animation: fna-torchlight 1.2s ease-in-out infinite alternate; }
.scn-fortress-night-arrival .figures { position:absolute; bottom:12%; left:25%; width:40px; height:60px; background: linear-gradient(180deg, #0c0c1a 0%, #080812 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 0 10px 2px rgba(0,0,0,.4); animation: fna-figures 10s ease-in-out infinite; }
@keyframes fna-moon { 0% { transform: translateX(0); opacity:.75 } 50% { transform: translateX(-8px); opacity:1 } 100% { transform: translateX(4px); opacity:.8 } }
@keyframes fna-woods { 0% { transform: skewX(0deg) } 50% { transform: skewX(2deg) } 100% { transform: skewX(-1deg) } }
@keyframes fna-torchlight { 0% { transform: scale(.9); opacity:.5 } 50% { transform: scale(1.1); opacity:1 } 100% { transform: scale(.95); opacity:.7 } }
@keyframes fna-figures { 0% { transform: translateY(0) scale(1); opacity:.8 } 25% { transform: translateY(-2px) scale(1.02); opacity:.9 } 50% { transform: translateY(0) scale(1); opacity:1 } 75% { transform: translateY(-1px) scale(.98); opacity:.85 } 100% { transform: translateY(0) scale(1); opacity:.8 } }

/* fortress-gate-reconnaissance */
.scn-fortress-gate-reconnaissance { background: linear-gradient(180deg, #0a0a1a 0%, #14142e 50%, #1a1828 100%), radial-gradient(ellipse at 50% 80%, #14142e 0%, transparent 70%); }
.scn-fortress-gate-reconnaissance .night-sky { position:absolute; inset:0; background: linear-gradient(180deg, #0a0a1a 0%, #12122a 100%); }
.scn-fortress-gate-reconnaissance .moon-crescent { position:absolute; top:6%; left:65%; width:50px; height:50px; background: radial-gradient(circle at 40% 40%, #cfd8e6 0%, #b0bcd0 40%, transparent 100%); clip-path: circle(50% at 50% 50%); border-radius:50%; box-shadow: 0 0 30px 8px rgba(180,195,220,.15); animation: fgr-moon 25s ease-in-out infinite alternate; }
.scn-fortress-gate-reconnaissance .wall-left { position:absolute; bottom:0; left:0; width:35%; height:100%; background: linear-gradient(90deg, #0e0e18 0%, #1a1a2a 50%, #0e0e18 100%); border-right:2px solid #1c1c2e; }
.scn-fortress-gate-reconnaissance .wall-right { position:absolute; bottom:0; right:0; width:35%; height:100%; background: linear-gradient(90deg, #0e0e18 0%, #1a1a2a 50%, #0e0e18 100%); border-left:2px solid #1c1c2e; }
.scn-fortress-gate-reconnaissance .gate { position:absolute; bottom:0; left:50%; width:30%; height:80%; transform: translateX(-50%); background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1a 100%); border-radius: 20% 20% 0 0 / 30% 30% 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,.6); }
.scn-fortress-gate-reconnaissance .gate-shadow { position:absolute; bottom:0; left:50%; width:28%; height:70%; transform: translateX(-50%); background: radial-gradient(ellipse at 50% 100%, #000000 0%, transparent 70%); opacity:.4; animation: fgr-shadow 15s ease-in-out infinite; }
.scn-fortress-gate-reconnaissance .scout-1 { position:absolute; bottom:8%; left:20%; width:16px; height:40px; background: linear-gradient(180deg, #0e0e1a 0%, #06060e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fgr-scout1 14s ease-in-out infinite; }
.scn-fortress-gate-reconnaissance .scout-2 { position:absolute; bottom:8%; left:70%; width:14px; height:36px; background: linear-gradient(180deg, #101020 0%, #080810 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fgr-scout2 16s ease-in-out infinite; animation-delay: -4s; }
@keyframes fgr-moon { 0% { transform: translateX(0) rotate(0deg); opacity:.7 } 50% { transform: translateX(-10px) rotate(5deg); opacity:.85 } 100% { transform: translateX(6px) rotate(-3deg); opacity:.75 } }
@keyframes fgr-shadow { 0% { opacity:.3; transform: translateX(-50%) scaleY(1) } 50% { opacity:.5; transform: translateX(-50%) scaleY(1.1) } 100% { opacity:.2; transform: translateX(-50%) scaleY(.9) } }
@keyframes fgr-scout1 { 0% { transform: translateY(0) rotate(0deg) scale(1) } 25% { transform: translateY(-3px) rotate(2deg) scale(1.03) } 50% { transform: translateY(0) rotate(-1deg) scale(1) } 75% { transform: translateY(-2px) rotate(1deg) scale(1.02) } 100% { transform: translateY(0) rotate(0deg) scale(1) } }
@keyframes fgr-scout2 { 0% { transform: translateY(0) rotate(0deg) scale(1) } 30% { transform: translateY(-2px) rotate(-2deg) scale(1.01) } 60% { transform: translateY(0) rotate(1deg) scale(1) } 100% { transform: translateY(0) rotate(0deg) scale(1) } }

/* fortress-ancient-description */
.scn-fortress-ancient-description { background: linear-gradient(180deg, #15152a 0%, #1e1e3a 40%, #2a2a4a 100%), radial-gradient(ellipse at 50% 80%, #1e1e3a 0%, transparent 60%); }
.scn-fortress-ancient-description .dusk-sky { position:absolute; inset:0; background: linear-gradient(180deg, #15152a 0%, #1a1a36 100%); }
.scn-fortress-ancient-description .moon-haze { position:absolute; top:12%; left:50%; transform:translateX(-50%); width:70px; height:70px; background: radial-gradient(circle, #e8eaf0 0%, #c0c8d8 50%, transparent 80%); border-radius:50%; filter: blur(2px); box-shadow: 0 0 50px 20px rgba(180,195,220,.15); animation: fad-moon 30s ease-in-out infinite alternate; }
.scn-fortress-ancient-description .cloud-drift-a { position:absolute; top:20%; left:10%; width:100px; height:20px; background: linear-gradient(90deg, rgba(255,255,255,.1) 0%, rgba(255,255,255,.3) 40%, transparent 100%); border-radius:50%; filter: blur(8px); animation: fad-drift-a 50s linear infinite; }
.scn-fortress-ancient-description .cloud-drift-b { position:absolute; top:30%; left:60%; width:80px; height:16px; background: linear-gradient(90deg, transparent 0%, rgba(255,255,255,.2) 60%, rgba(255,255,255,.1) 100%); border-radius:50%; filter: blur(6px); animation: fad-drift-b 60s linear infinite reverse; }
.scn-fortress-ancient-description .fortress-body { position:absolute; bottom:10%; left:50%; width:40%; height:65%; transform: translateX(-50%); background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2a 80%, #0e0e1a 100%); border-radius: 10% 10% 0 0 / 20% 20% 0 0; box-shadow: inset 0 0 30px rgba(0,0,0,.4), 0 8px 20px rgba(0,0,0,.5); }
.scn-fortress-ancient-description .tower-left { position:absolute; bottom:10%; left:30%; width:15%; height:80%; background: linear-gradient(180deg, #2e2e42 0%, #1c1c30 100%); border-radius: 10% 10% 0 0 / 30% 30% 0 0; box-shadow: inset -4px 0 8px rgba(0,0,0,.3); }
.scn-fortress-ancient-description .tower-right { position:absolute; bottom:10%; right:30%; width:15%; height:75%; background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2a 100%); border-radius: 10% 10% 0 0 / 30% 30% 0 0; box-shadow: inset 4px 0 8px rgba(0,0,0,.3); }
.scn-fortress-ancient-description .ruin-base { position:absolute; bottom:0; left:20%; width:60%; height:15%; background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%); border-radius: 20% 20% 0 0 / 30% 30% 0 0; box-shadow: 0 -4px 10px rgba(0,0,0,.5); animation: fad-ruin 12s ease-in-out infinite alternate; }
@keyframes fad-moon { 0% { transform: translateX(-50%) scale(1); opacity:.7 } 50% { transform: translateX(-50%) scale(1.05); opacity:.9 } 100% { transform: translateX(-50%) scale(.98); opacity:.8 } }
@keyframes fad-drift-a { 0% { transform: translateX(-120px) } 100% { transform: translateX(120vw) } }
@keyframes fad-drift-b { 0% { transform: translateX(80px) } 100% { transform: translateX(-120vw) } }
@keyframes fad-ruin { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(.98) } }

.scn-alarm-spreads {
  background: linear-gradient(180deg, #c87a3a 0%, #6b3a5a 40%, #2a1a3a 100%),
              radial-gradient(ellipse at 50% 0%, #e8a84a 0%, transparent 70%);
}
.scn-alarm-spreads .sky-dusk {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #d88a4a 0%, transparent 100%);
  animation: al-sky 15s ease-in-out infinite alternate;
}
.scn-alarm-spreads .rampart {
  position: absolute; bottom: 15%; left: 10%; right: 10%; height: 28%;
  background: linear-gradient(0deg, #3a2a1a 0%, #5a4a3a 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
  box-shadow: inset 0 -8px 20px rgba(0,0,0,0.6);
}
.scn-alarm-spreads .bastion {
  position: absolute; bottom: 30%; left: 20%; width: 30%; height: 20%;
  background: radial-gradient(ellipse at 50% 100%, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 0 0;
  transform: translateX(-10%);
  animation: al-bastion 8s ease-in-out infinite alternate;
}
.scn-alarm-spreads .peasant {
  position: absolute; bottom: 16%; width: 14px; height: 28px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
}
.scn-alarm-spreads .peasant-1 { left: 25%; animation: al-peasant1 4s ease-in-out infinite; }
.scn-alarm-spreads .peasant-2 { left: 45%; animation: al-peasant2 4.5s ease-in-out infinite 0.6s; }
.scn-alarm-spreads .alarm-flag {
  position: absolute; bottom: 38%; left: 35%; width: 10px; height: 18px;
  background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%); /* desaturated red */
  border-radius: 0 30% 30% 0;
  transform-origin: bottom left;
  animation: al-flag 0.8s ease-in-out infinite alternate;
}
.scn-alarm-spreads .torch-glow {
  position: absolute; bottom: 44%; left: 34%; width: 20px; height: 20px;
  background: radial-gradient(circle, #f0a040 0%, #c05020 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px #c05020, 0 0 60px 20px rgba(192,80,32,0.3);
  animation: al-torch 0.5s ease-in-out infinite alternate;
}
.scn-alarm-spreads .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 18%;
  background: linear-gradient(180deg, #1a1a0a 0%, #0a0a00 100%);
  border-radius: 10% 60% 0 0 / 20% 40% 0 0;
}
@keyframes al-sky { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.6; } }
@keyframes al-bastion { 0% { transform: translateX(-10%) scaleY(1); } 50% { transform: translateX(-8%) scaleY(1.02); } 100% { transform: translateX(-12%) scaleY(0.98); } }
@keyframes al-peasant1 { 0% { transform: translateY(0) rotate(-2deg); } 25% { transform: translateY(-2px) rotate(0deg); } 50% { transform: translateY(0) rotate(2deg); } 75% { transform: translateY(-3px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes al-peasant2 { 0% { transform: translateY(0) rotate(2deg); } 25% { transform: translateY(-3px) rotate(0deg); } 50% { transform: translateY(0) rotate(-2deg); } 75% { transform: translateY(-1px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes al-flag { 0% { transform: rotate(-5deg); } 100% { transform: rotate(5deg); } }
@keyframes al-torch { 0% { opacity:0.8; transform: scale(0.9); } 100% { opacity:1; transform: scale(1.1); } }

.scn-emily-delivers-message {
  background: linear-gradient(135deg, #1a1210 0%, #2a1e18 50%, #0d0a08 100%),
              radial-gradient(ellipse at 30% 50%, #1e1410 0%, transparent 80%);
}
.scn-emily-delivers-message .interior-wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #2a1e18 0%, #1a1210 100%);
  border: 2px solid #0d0a08;
  box-shadow: inset 0 0 60px 10px rgba(0,0,0,0.7);
  animation: em-wall 12s ease-in-out infinite alternate;
}
.scn-emily-delivers-message .interior-door {
  position: absolute; bottom: 10%; left: 60%; width: 20%; height: 60%;
  background: linear-gradient(180deg, #1a0a08 0%, #0a0502 100%);
  border-radius: 4%;
  box-shadow: -6px 0 10px rgba(0,0,0,0.6);
  animation: em-door 8s ease-in-out infinite alternate;
}
.scn-emily-delivers-message .figure-emily {
  position: absolute; bottom: 14%; left: 32%; width: 12px; height: 30px;
  background: linear-gradient(180deg, #1a1210 0%, #0a0605 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: em-emily 3s ease-in-out infinite;
}
.scn-emily-delivers-message .figure-montoni {
  position: absolute; bottom: 8%; left: 50%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #2a1a10 0%, #0a0500 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: em-montoni 4s ease-in-out infinite;
}
.scn-emily-delivers-message .candle-glow {
  position: absolute; bottom: 35%; left: 20%; width: 8px; height: 10px;
  background: radial-gradient(circle, #f0e080 0%, #c08030 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 15px #c08030, 0 0 80px 30px rgba(192,128,48,0.3);
  animation: em-candle 0.6s ease-in-out infinite alternate;
}
.scn-emily-delivers-message .shadow-shape {
  position: absolute; bottom: 0;
  background: rgba(0,0,0,0.6);
  border-radius: 50% 50% 0 0;
  filter: blur(8px);
}
.scn-emily-delivers-message .shadow-1 { left: 30%; width: 40%; height: 20%; animation: em-shadow1 6s ease-in-out infinite; }
.scn-emily-delivers-message .shadow-2 { left: 55%; width: 30%; height: 15%; animation: em-shadow2 5s ease-in-out infinite 1s; }
.scn-emily-delivers-message .flicker-light {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 20% 40%, rgba(240,224,128,0.04) 0%, transparent 70%);
  animation: em-flicker 0.3s steps(5) infinite;
}
@keyframes em-wall { 0% { opacity:0.85; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes em-door { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(0.98); } }
@keyframes em-emily { 0% { transform: translateY(0) rotate(-1deg); } 20% { transform: translateY(-2px) rotate(1deg); } 40% { transform: translateY(0) rotate(-1deg); } 60% { transform: translateY(-3px) rotate(0deg); } 80% { transform: translateY(0) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes em-montoni { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(-6px) rotate(3deg); } 60% { transform: translateX(0) rotate(0deg); } 100% { transform: translateX(2px) rotate(-2deg); } }
@keyframes em-candle { 0% { box-shadow: 0 0 30px 10px #c08030; opacity:0.8; } 100% { box-shadow: 0 0 50px 20px #e0a050; opacity:1; } }
@keyframes em-shadow1 { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.1); } 100% { transform: scaleX(0.9); } }
@keyframes em-shadow2 { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.2); } 100% { transform: scaleY(0.8); } }
@keyframes em-flicker { 0% { opacity:0.9; } 25% { opacity:0.8; } 50% { opacity:1; } 75% { opacity:0.7; } 100% { opacity:0.9; } }

.scn-troops-pass {
  background: linear-gradient(180deg, #c8844a 0%, #7a4a3a 40%, #3a2a1a 100%),
              radial-gradient(ellipse at 50% 100%, #4a3a2a 0%, transparent 70%);
}
.scn-troops-pass .sky-dusk-tp {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #d8a060 0%, transparent 100%);
  animation: tp-sky 20s ease-in-out infinite alternate;
}
.scn-troops-pass .mountains-back {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a2030 0%, #1a1520 100%);
  border-radius: 60% 40% 0 0 / 50% 30% 0 0;
  animation: tp-mountains-back 30s ease-in-out infinite alternate;
}
.scn-troops-pass .mountains-mid {
  position: absolute; bottom: 20%; left: -5%; right: 5%; height: 25%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 30% 70% 0 0 / 40% 60% 0 0;
  filter: blur(2px);
  animation: tp-mountains-mid 25s ease-in-out infinite alternate;
}
.scn-troops-pass .valley {
  position: absolute; bottom: 10%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%);
  border-radius: 30% 30% 0 0 / 20% 20% 0 0;
}
.scn-troops-pass .troop-line {
  position: absolute; bottom: 12%; height: 8px;
  background: linear-gradient(90deg, transparent 0%, #0a0a0a 10%, #1a1a1a 30%, #0a0a0a 50%, transparent 60%);
  border-radius: 50%;
  filter: blur(1px);
}
.scn-troops-pass .troop-line-1 { left: 20%; width: 30%; animation: tp-troop1 15s linear infinite; }
.scn-troops-pass .troop-line-2 { left: 35%; width: 25%; animation: tp-troop2 18s linear infinite 2s; bottom: 14%; }
.scn-troops-pass .troop-line-3 { left: 10%; width: 20%; animation: tp-troop3 20s linear infinite 4s; bottom: 10%; }
.scn-troops-pass .flag-tp {
  position: absolute; bottom: 16%; left: 22%; width: 6px; height: 12px;
  background: linear-gradient(180deg, #b87878 0%, #702243 100%); /* dusty rose / mulberry */
  border-radius: 0 20% 20% 0;
  transform-origin: bottom left;
  animation: tp-flag 3s ease-in-out infinite alternate;
}
.scn-troops-pass .mist-tp {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, rgba(200,132,74,0.3) 0%, transparent 100%);
  filter: blur(10px);
  animation: tp-mist 10s ease-in-out infinite alternate;
}
@keyframes tp-sky { 0% { opacity:0.6; } 50% { opacity:0.9; } 100% { opacity:0.7; } }
@keyframes tp-mountains-back { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(0); } }
@keyframes tp-mountains-mid { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-2px) scaleX(1.02); } 100% { transform: translateY(0) scaleX(0.98); } }
@keyframes tp-troop1 { 0% { transform: translateX(-20vw); } 100% { transform: translateX(120vw); } }
@keyframes tp-troop2 { 0% { transform: translateX(-15vw); } 100% { transform: translateX(130vw); } }
@keyframes tp-troop3 { 0% { transform: translateX(-10vw); } 100% { transform: translateX(140vw); } }
@keyframes tp-flag { 0% { transform: rotate(-8deg); } 50% { transform: rotate(4deg); } 100% { transform: rotate(-6deg); } }
@keyframes tp-mist { 0% { opacity:0.2; } 50% { opacity:0.5; } 100% { opacity:0.3; } }

.scn-troops-disappear {
  background: linear-gradient(180deg, #b8784a 0%, #6a3a3a 40%, #2a1a1a 100%),
              radial-gradient(ellipse at 50% 0%, #c88858 0%, transparent 70%);
}
.scn-troops-disappear .sky-dusk-td {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #c89050 0%, transparent 100%);
  animation: td-sky 25s ease-in-out infinite alternate;
}
.scn-troops-disappear .mountains-td {
  position: absolute; bottom: 20%;
  background: linear-gradient(180deg, #2a2030 0%, #1a1520 100%);
  border-radius: 50% 50% 0 0;
  filter: blur(1px);
}
.scn-troops-disappear .mountains-td.back { left: 0; right: 0; height: 35%; animation: td-mountains-back 20s ease-in-out infinite alternate; }
.scn-troops-disappear .mountains-td.front { left: 10%; right: 10%; height: 30%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 40% 60% 0 0; animation: td-mountains-front 15s ease-in-out infinite alternate; }
.scn-troops-disappear .rampart-td {
  position: absolute; bottom: 8%; left: 15%; right: 15%; height: 18%;
  background: linear-gradient(0deg, #2a1a0a 0%, #4a3a2a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 6px 12px rgba(0,0,0,0.5);
}
.scn-troops-disappear .figure-td {
  position: absolute; bottom: 16%; left: 30%; width: 10px; height: 24px;
  background: linear-gradient(180deg, #1a1210 0%, #0a0604 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: td-figure 6s ease-in-out infinite;
}
.scn-troops-disappear .troops-fading {
  position: absolute; bottom: 10%; left: 40%; width: 30%; height: 6px;
  background: linear-gradient(90deg, #0a0a0a 0%, #1a1a1a 20%, transparent 60%);
  border-radius: 50%;
  filter: blur(2px);
  animation: td-troops 12s linear infinite;
}
.scn-troops-disappear .cloud-td {
  position: absolute; top: 15%;
  background: linear-gradient(180deg, rgba(200,144,80,0.4) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(6px);
}
.scn-troops-disappear .cloud-td-1 { left: 10%; width: 80px; height: 20px; animation: td-cloud1 40s linear infinite; }
.scn-troops-disappear .cloud-td-2 { left: 60%; width: 60px; height: 16px; animation: td-cloud2 35s linear infinite 5s; }
@keyframes td-sky { 0% { opacity:0.7; } 50% { opacity:0.9; } 100% { opacity:0.6; } }
@keyframes td-mountains-back { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-2px) scaleX(1.01); } 100% { transform: translateY(0) scaleX(0.99); } }
@keyframes td-mountains-front { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(1px); } }
@keyframes td-figure { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-1px) rotate(1deg); } 50% { transform: translateY(0) rotate(-1deg); } 75% { transform: translateY(-2px) rotate(0deg); } 100% { transform: translateY(0) rotate(1deg); } }
@keyframes td-troops { 0% { transform: translateX(0) scaleX(1); opacity:0.8; } 50% { transform: translateX(10vw) scaleX(0.7); opacity:0.4; } 100% { transform: translateX(20vw) scaleX(0.3); opacity:0; } }
@keyframes td-cloud1 { 0% { transform: translateX(-20px); } 100% { transform: translateX(120vw); } }
@keyframes td-cloud2 { 0% { transform: translateX(0); } 100% { transform: translateX(-100vw); } }

/* Scene 1: item-oak-tree – calm, moonlit */
.scn-item-oak-tree {
  background:
    linear-gradient(180deg, #0f0f2e 0%, #1a1a3e 40%, #252550 70%, #303060 100%),
    radial-gradient(ellipse at 50% 0%, #c0c0d0 0%, transparent 60%);
}
.scn-item-oak-tree .bg-sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #1a1a3e 0%, transparent 100%);
  animation: okt-sky 20s ease-in-out infinite alternate;
}
.scn-item-oak-tree .moon {
  position: absolute; top: 8%; left: 70%;
  width: 50px; height: 50px;
  background: radial-gradient(circle, #e0e8ff 0%, #c0c0d0 80%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(192,192,208,0.3), 0 0 80px 40px rgba(192,192,208,0.1);
  animation: okt-moon 30s ease-in-out infinite alternate;
}
.scn-item-oak-tree .trunk {
  position: absolute; bottom: 30%; left: 50%; transform: translateX(-50%);
  width: 60px; height: 120px;
  background: linear-gradient(90deg, #1c1c1e 0%, #2a2a30 30%, #1c1c1e 60%, #2a2a30 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%;
  box-shadow: inset -6px 0 10px rgba(0,0,0,0.6);
  animation: okt-trunk 8s ease-in-out infinite;
}
.scn-item-oak-tree .branch {
  position: absolute; bottom: 70%; background: #1c1c1e;
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  transform-origin: bottom center;
}
.scn-item-oak-tree .branch-a {
  left: 42%; width: 10px; height: 60px;
  transform: rotate(-30deg);
  animation: okt-branch-a 10s ease-in-out infinite alternate;
}
.scn-item-oak-tree .branch-b {
  right: 42%; width: 8px; height: 50px;
  transform: rotate(25deg);
  animation: okt-branch-b 12s ease-in-out infinite alternate;
}
.scn-item-oak-tree .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%);
  border-radius: 50% 50% 0 0 / 20% 20% 0 0;
}
.scn-item-oak-tree .moss {
  position: absolute; bottom: 38%; left: 46%; width: 30px; height: 20px;
  background: radial-gradient(ellipse, #2a4a2a 0%, transparent 80%);
  filter: blur(3px);
  animation: okt-moss 15s ease-in-out infinite alternate;
}
.scn-item-oak-tree .archway {
  position: absolute; bottom: 30%; left: 50%; transform: translateX(-50%) scale(1.2);
  width: 70px; height: 90px;
  background: linear-gradient(180deg, #20202a 0%, #10101a 100%);
  border-radius: 50% 50% 0 0 / 40% 40% 0 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.8);
  animation: okt-arch 20s ease-in-out infinite alternate;
}
@keyframes okt-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes okt-moon { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(2px); } }
@keyframes okt-trunk { 0%,100% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(1.02); } }
@keyframes okt-branch-a { 0% { transform: rotate(-30deg); } 50% { transform: rotate(-33deg); } 100% { transform: rotate(-28deg); } }
@keyframes okt-branch-b { 0% { transform: rotate(25deg); } 50% { transform: rotate(28deg); } 100% { transform: rotate(22deg); } }
@keyframes okt-moss { 0% { opacity: 0.4; } 50% { opacity: 0.7; } 100% { opacity: 0.5; } }
@keyframes okt-arch { 0% { box-shadow: inset 0 0 20px rgba(0,0,0,0.8); } 50% { box-shadow: inset 0 0 40px rgba(0,0,0,0.9); } 100% { box-shadow: inset 0 0 20px rgba(0,0,0,0.8); } }

/* Scene 2: fortress-terrace-survey – tense, moonlit */
.scn-fortress-terrace-survey {
  background:
    linear-gradient(180deg, #0a0a1e 0%, #12122a 40%, #1a1a3e 100%),
    radial-gradient(ellipse at 70% 20%, #c0c0d0 0%, transparent 50%);
}
.scn-fortress-terrace-survey .bg-night {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #12122a 0%, transparent 100%);
  animation: fts-sky 15s ease-in-out infinite alternate;
}
.scn-fortress-terrace-survey .moon-fort {
  position: absolute; top: 10%; right: 20%;
  width: 40px; height: 40px;
  background: radial-gradient(circle, #e0e8ff 0%, #c0c0d0 80%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 15px rgba(192,192,208,0.4);
  animation: fts-moon 25s ease-in-out infinite alternate;
}
.scn-fortress-terrace-survey .cliff {
  position: absolute; bottom: 20%; left: 10%; right: 10%; height: 50%;
  background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1a 100%);
  border-radius: 30% 30% 0 0 / 60% 60% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.7);
  animation: fts-cliff 5s ease-in-out infinite;
}
.scn-fortress-terrace-survey .wall {
  position: absolute; bottom: 30%; left: 20%; width: 60%; height: 40%;
  background: linear-gradient(180deg, #1e1e2a 0%, #14141e 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.6);
  animation: fts-wall 8s ease-in-out infinite alternate;
}
.scn-fortress-terrace-survey .tower {
  position: absolute; bottom: 40%; left: 35%; width: 20%; height: 30%;
  background: linear-gradient(180deg, #222230 0%, #181820 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset -4px 0 10px rgba(0,0,0,0.5);
  animation: fts-tower 6s ease-in-out infinite;
}
.scn-fortress-terrace-survey .battlement {
  position: absolute; bottom: 68%; left: 35%; width: 20%; height: 8%;
  background: #1c1c28;
  border-radius: 4px;
  box-shadow: 0 4px 10px rgba(0,0,0,0.6);
  animation: fts-battle 4s ease-in-out infinite alternate;
}
.scn-fortress-terrace-survey .glen {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #0a0a1a 0%, #050510 100%);
  border-radius: 60% 40% 0 0 / 30% 20% 0 0;
}
.scn-fortress-terrace-survey .figure-count {
  position: absolute; bottom: 35%; left: 50%; transform: translateX(-50%);
  width: 12px; height: 30px;
  background: linear-gradient(180deg, #0a0a1a 0%, #000005 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: fts-figure 7s ease-in-out infinite;
}
@keyframes fts-sky { 0% { opacity: 0.8; } 50% { opacity: 0.9; } 100% { opacity: 0.7; } }
@keyframes fts-moon { 0% { transform: translateX(0); } 50% { transform: translateX(-3px); } 100% { transform: translateX(2px); } }
@keyframes fts-cliff { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes fts-wall { 0% { box-shadow: inset 0 0 20px rgba(0,0,0,0.6); } 50% { box-shadow: inset 0 0 30px rgba(0,0,0,0.8); } 100% { box-shadow: inset 0 0 20px rgba(0,0,0,0.6); } }
@keyframes fts-tower { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(1); } }
@keyframes fts-battle { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes fts-figure { 0% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(2deg); } 100% { transform: translateX(-50%) rotate(-1deg); } }

/* Scene 3: fortress-voices-heard – tense, moonlit */
.scn-fortress-voices-heard {
  background:
    linear-gradient(180deg, #080818 0%, #0f0f24 40%, #16162e 100%),
    radial-gradient(ellipse at 30% 40%, #c0c0d0 0%, transparent 60%);
}
.scn-fortress-voices-heard .bg-void {
  position: absolute; inset: 0 0 15% 0;
  background: linear-gradient(180deg, #0f0f24 0%, transparent 100%);
  animation: fvh-sky 20s ease-in-out infinite alternate;
}
.scn-fortress-voices-heard .moon-void {
  position: absolute; top: 12%; left: 65%;
  width: 35px; height: 35px;
  background: radial-gradient(circle, #d0d0e0 0%, #a0a0b0 80%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 10px rgba(160,160,176,0.3);
  animation: fvh-moon 30s ease-in-out infinite alternate;
}
.scn-fortress-voices-heard .wall-front {
  position: absolute; bottom: 15%; left: 10%; right: 10%; height: 70%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0d0d18 100%);
  border-radius: 15% 15% 0 0;
  box-shadow: inset 0 0 40px rgba(0,0,0,0.9);
  animation: fvh-wall 6s ease-in-out infinite alternate;
}
.scn-fortress-voices-heard .window-dark {
  position: absolute; width: 20px; height: 30px;
  background: #050508;
  border-radius: 5% 5% 10% 10%;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.8), 0 0 2px rgba(0,0,0,0.5);
}
.scn-fortress-voices-heard .window-a {
  bottom: 55%; left: 30%;
  animation: fvh-window-a 9s ease-in-out infinite;
}
.scn-fortress-voices-heard .window-b {
  bottom: 55%; right: 30%;
  animation: fvh-window-b 9s ease-in-out infinite 3s;
}
.scn-fortress-voices-heard .door {
  position: absolute; bottom: 10%; left: 50%; transform: translateX(-50%);
  width: 50px; height: 80px;
  background: linear-gradient(180deg, #12121a 0%, #08080e 100%);
  border-radius: 5% 5% 0 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.9);
  animation: fvh-door 12s ease-in-out infinite alternate;
}
.scn-fortress-voices-heard .ground-void {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #0a0a14 0%, #04040a 100%);
}
.scn-fortress-voices-heard .shadow-sweep {
  position: absolute; top: 0; left: 0; right: 0; bottom: 0;
  background: linear-gradient(90deg, transparent 0%, rgba(0,0,0,0.3) 40%, transparent 80%);
  animation: fvh-shadow 8s linear infinite;
}
@keyframes fvh-sky { 0% { opacity: 0.6; } 50% { opacity: 0.8; } 100% { opacity: 0.7; } }
@keyframes fvh-moon { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(1px); } }
@keyframes fvh-wall { 0% { box-shadow: inset 0 0 40px rgba(0,0,0,0.9); } 50% { box-shadow: inset 0 0 60px rgba(0,0,0,1); } 100% { box-shadow: inset 0 0 40px rgba(0,0,0,0.9); } }
@keyframes fvh-window-a { 0% { opacity: 0.5; } 50% { opacity: 0.2; } 100% { opacity: 0.5; } }
@keyframes fvh-window-b { 0% { opacity: 0.3; } 50% { opacity: 0.6; } 100% { opacity: 0.3; } }
@keyframes fvh-door { 0% { transform: translateX(-50%) scaleX(1); } 50% { transform: translateX(-50%) scaleX(1.02); } 100% { transform: translateX(-50%) scaleX(1); } }
@keyframes fvh-shadow { 0% { transform: translateX(-100%); } 100% { transform: translateX(100%); } }

/* Scene 4: fortress-knock-gate – tense, moonlit */
.scn-fortress-knock-gate {
  background:
    linear-gradient(180deg, #0a0a1a 0%, #12122a 40%, #1a1a3e 100%),
    radial-gradient(ellipse at 50% 30%, #c0c0d0 0%, transparent 50%);
}
.scn-fortress-knock-gate .bg-close {
  position: absolute; inset: 0 0 10% 0;
  background: linear-gradient(180deg, #12122a 0%, transparent 100%);
  animation: fkg-sky 18s ease-in-out infinite alternate;
}
.scn-fortress-knock-gate .gate {
  position: absolute; bottom: 10%; left: 20%; right: 20%; height: 80%;
  background: linear-gradient(180deg, #1c1c28 0%, #101018 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.8), 0 0 20px rgba(0,0,0,0.5);
  animation: fkg-gate 7s ease-in-out infinite alternate;
}
.scn-fortress-knock-gate .hinge {
  position: absolute; width: 8px; height: 30px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 4px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.6);
}
.scn-fortress-knock-gate .hinge-l { left: 22%; bottom: 50%; }
.scn-fortress-knock-gate .hinge-r { right: 22%; bottom: 50%; }
.scn-fortress-knock-gate .hinge-l { animation: fkg-hinge-l 10s ease-in-out infinite; }
.scn-fortress-knock-gate .hinge-r { animation: fkg-hinge-r 10s ease-in-out infinite 2s; }
.scn-fortress-knock-gate .knocker {
  position: absolute; bottom: 50%; left: 50%; transform: translate(-50%, 50%);
  width: 20px; height: 20px;
  background: radial-gradient(circle, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 50%;
  box-shadow: 0 0 10px 5px rgba(0,0,0,0.5);
  animation: fkg-knocker 5s ease-in-out infinite alternate;
}
.scn-fortress-knock-gate .hand {
  position: absolute; bottom: 35%; left: 45%;
  width: 18px; height: 28px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fkg-hand 4s ease-in-out infinite alternate;
}
.scn-fortress-knock-gate .ground-close {
  position: absolute; bottom: 0; left: 0; right: 0; height: 10%;
  background: linear-gradient(180deg, #0a0a14 0%, #03030a 100%);
}
.scn-fortress-knock-gate .moon-glimpse {
  position: absolute; top: 15%; right: 15%;
  width: 25px; height: 25px;
  background: radial-gradient(circle, #d0d0e0 0%, #a0a0b0 80%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 15px 8px rgba(160,160,176,0.2);
  animation: fkg-moon 20s ease-in-out infinite alternate;
}
@keyframes fkg-sky { 0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.8; } }
@keyframes fkg-gate { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.01); } 100% { transform: scaleY(1); } }
@keyframes fkg-hinge-l { 0% { transform: rotate(0deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(0deg); } }
@keyframes fkg-hinge-r { 0% { transform: rotate(0deg); } 50% { transform: rotate(-2deg); } 100% { transform: rotate(0deg); } }
@keyframes fkg-knocker { 0% { transform: translate(-50%, 50%) rotate(0deg); } 50% { transform: translate(-50%, 50%) rotate(5deg); } 100% { transform: translate(-50%, 50%) rotate(-5deg); } }
@keyframes fkg-hand { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(0); } }
@keyframes fkg-moon { 0% { opacity: 0.5; } 50% { opacity: 0.8; } 100% { opacity: 0.6; } }

/* Scene 1: interruption-by-verezzi */
.scn-interruption-by-verezzi {
  background: linear-gradient(180deg, #2a1a10 0%, #1a0f08 40%, #0d0805 100%),
              radial-gradient(circle at 40% 30%, #4a2a18 0%, transparent 70%);
}
.scn-interruption-by-verezzi .wall-left {
  position: absolute; left: 0; top: 0; width: 30%; height: 100%;
  background: linear-gradient(90deg, #1a1008 0%, #2a1a10 100%);
  box-shadow: inset -20px 0 30px rgba(0,0,0,0.6);
  animation: s1-wall-left 10s ease-in-out infinite alternate;
}
.scn-interruption-by-verezzi .wall-right {
  position: absolute; right: 0; top: 0; width: 40%; height: 100%;
  background: linear-gradient(90deg, #2a1a10 0%, #1a1008 100%);
  box-shadow: inset 20px 0 30px rgba(0,0,0,0.6);
}
.scn-interruption-by-verezzi .doorway {
  position: absolute; left: 45%; top: 20%; width: 25%; height: 70%;
  background: #0d0805;
  border: 2px solid #3a2a1a;
  border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.8);
}
.scn-interruption-by-verezzi .door {
  position: absolute; left: 50%; top: 20%; width: 20%; height: 70%;
  transform-origin: left center;
  background: linear-gradient(180deg, #4a2a18 0%, #2a1a10 100%);
  border: 1px solid #3a2a1a;
  box-shadow: 0 0 20px rgba(0,0,0,0.5);
  animation: s1-door-swing 4s ease-in-out infinite alternate;
}
.scn-interruption-by-verezzi .figure-verezzi {
  position: absolute; left: 55%; bottom: 25%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #1a1008 0%, #0d0805 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 0 5px 10px rgba(0,0,0,0.7);
  animation: s1-figure-burst 5s ease-in-out infinite;
}
.scn-interruption-by-verezzi .figure-emily {
  position: absolute; left: 30%; bottom: 25%; width: 18px; height: 48px;
  background: linear-gradient(180deg, #2a1a10 0%, #1a0f08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 0 5px 10px rgba(0,0,0,0.5);
  animation: s1-figure-turn 6s ease-in-out infinite;
}
.scn-interruption-by-verezzi .candle {
  position: absolute; left: 35%; bottom: 35%; width: 4px; height: 12px;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2210 100%);
  border-radius: 2px;
  box-shadow: 0 0 10px rgba(100,60,20,0.5);
}
.scn-interruption-by-verezzi .shadow-door {
  position: absolute; left: 50%; top: 20%; width: 20%; height: 70%;
  background: rgba(0,0,0,0.4);
  transform-origin: left center;
  animation: s1-shadow-swing 4s ease-in-out infinite alternate;
}
@keyframes s1-wall-left { 0% { opacity: 1; } 50% { opacity: 0.85; } 100% { opacity: 1; } }
@keyframes s1-door-swing { 0% { transform: rotateY(0deg); } 30% { transform: rotateY(-40deg); } 60% { transform: rotateY(-10deg); } 100% { transform: rotateY(-30deg); } }
@keyframes s1-figure-burst { 0% { transform: translateX(0) translateY(0) rotate(0deg); opacity: 0.5; } 30% { transform: translateX(-5px) translateY(-2px) rotate(5deg); opacity: 1; } 60% { transform: translateX(2px) translateY(0) rotate(-3deg); opacity: 1; } 100% { transform: translateX(0) translateY(0) rotate(0deg); opacity: 0.7; } }
@keyframes s1-figure-turn { 0% { transform: rotate(0deg); } 25% { transform: rotate(-15deg); } 50% { transform: rotate(10deg); } 75% { transform: rotate(-5deg); } 100% { transform: rotate(0deg); } }
@keyframes s1-shadow-swing { 0% { transform: skewY(0deg); opacity: 0.3; } 50% { transform: skewY(5deg); opacity: 0.6; } 100% { transform: skewY(0deg); opacity: 0.4; } }

/* Scene 2: struggle-and-fall */
.scn-struggle-and-fall {
  background: linear-gradient(180deg, #1a0f08 0%, #0d0805 60%, #050302 100%),
              radial-gradient(ellipse at 50% 80%, #3a2210 0%, transparent 70%);
}
.scn-struggle-and-fall .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #2a1a10 0%, #1a0f08 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.5);
}
.scn-struggle-and-fall .wall-bg {
  position: absolute; inset: 0 0 20% 0;
  background: radial-gradient(ellipse at 50% 30%, #2a1a10 0%, #0d0805 100%);
  animation: s2-wall-pulse 12s ease-in-out infinite alternate;
}
.scn-struggle-and-fall .chair {
  position: absolute; left: 35%; bottom: 20%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #3a2210 0%, #1a0f08 100%);
  border-radius: 4px;
  box-shadow: 0 5px 15px rgba(0,0,0,0.6);
  animation: s2-chair-shake 6s ease-in-out infinite;
}
.scn-struggle-and-fall .figure-emily {
  position: absolute; left: 27%; bottom: 22%; width: 18px; height: 45px;
  background: linear-gradient(180deg, #2a1a10 0%, #1a0f08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: s2-emily-sway 5s ease-in-out infinite;
}
.scn-struggle-and-fall .figure-verezzi {
  position: absolute; left: 45%; bottom: 22%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #1a1008 0%, #0d0805 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 0 8px 15px rgba(0,0,0,0.7);
  animation: s2-verezzi-lunge 4s ease-in-out infinite;
}
.scn-struggle-and-fall .candle-stand {
  position: absolute; left: 60%; bottom: 25%; width: 8px; height: 20px;
  background: linear-gradient(180deg, #4a2a18 0%, #2a1a10 100%);
  border-radius: 2px;
  box-shadow: 0 0 10px rgba(60,30,10,0.3);
}
.scn-struggle-and-fall .candle-flame {
  position: absolute; left: 60%; bottom: 42%; width: 6px; height: 10px;
  background: radial-gradient(circle, #ffd080 0%, #c06020 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 4px rgba(200,100,30,0.6);
  animation: s2-flame-flicker 2s ease-in-out infinite alternate;
}
.scn-struggle-and-fall .shadow-struggle {
  position: absolute; left: 30%; bottom: 20%; width: 40%; height: 50%;
  background: rgba(0,0,0,0.4);
  transform-origin: bottom center;
  animation: s2-shadow-move 4s ease-in-out infinite;
}
@keyframes s2-wall-pulse { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes s2-chair-shake { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 20% { transform: translateX(-2px) translateY(-1px) rotate(2deg); } 40% { transform: translateX(2px) translateY(1px) rotate(-2deg); } 60% { transform: translateX(-1px) translateY(-1px) rotate(1deg); } 80% { transform: translateX(1px) translateY(0) rotate(-1deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes s2-emily-sway { 0% { transform: translateX(0) rotate(5deg); } 30% { transform: translateX(-5px) rotate(-10deg); } 50% { transform: translateX(3px) rotate(8deg); } 70% { transform: translateX(-2px) rotate(-5deg); } 100% { transform: translateX(0) rotate(5deg); } }
@keyframes s2-verezzi-lunge { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 25% { transform: translateX(-8px) translateY(-3px) rotate(10deg); } 50% { transform: translateX(-2px) translateY(0) rotate(-5deg); } 75% { transform: translateX(-6px) translateY(-2px) rotate(5deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes s2-flame-flicker { 0% { transform: scaleY(1) scaleX(1); opacity: 0.8; } 25% { transform: scaleY(1.2) scaleX(0.9); opacity: 1; } 50% { transform: scaleY(0.9) scaleX(1.1); opacity: 0.9; } 75% { transform: scaleY(1.1) scaleX(1); opacity: 1; } 100% { transform: scaleY(1) scaleX(1); opacity: 0.85; } }
@keyframes s2-shadow-move { 0% { transform: skewX(0deg) scaleY(1); opacity: 0.3; } 50% { transform: skewX(5deg) scaleY(1.1); opacity: 0.5; } 100% { transform: skewX(-5deg) scaleY(0.9); opacity: 0.4; } }

/* Scene 3: flight-planned */
.scn-flight-planned {
  background: linear-gradient(180deg, #2a1a10 0%, #1a0f08 60%, #0d0805 100%),
              radial-gradient(circle at 60% 40%, #4a2a18 0%, transparent 70%);
}
.scn-flight-planned .wall-left {
  position: absolute; left: 0; top: 0; width: 35%; height: 100%;
  background: linear-gradient(90deg, #1a1008 0%, #2a1a10 100%);
  box-shadow: inset -20px 0 30px rgba(0,0,0,0.5);
}
.scn-flight-planned .wall-right {
  position: absolute; right: 0; top: 0; width: 35%; height: 100%;
  background: linear-gradient(90deg, #2a1a10 0%, #1a1008 100%);
  box-shadow: inset 20px 0 30px rgba(0,0,0,0.5);
}
.scn-flight-planned .door-open {
  position: absolute; left: 50%; top: 10%; width: 30%; height: 80%;
  background: #0d0805;
  border: 2px solid #3a2a1a;
  border-radius: 4px;
  box-shadow: inset 0 0 40px rgba(0,0,0,0.8), 0 0 30px rgba(0,0,0,0.6);
  animation: s3-door-glow 5s ease-in-out infinite alternate;
}
.scn-flight-planned .figure-ludovico {
  position: absolute; left: 55%; bottom: 25%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #1a1008 0%, #0d0805 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 0 5px 10px rgba(0,0,0,0.7);
  animation: s3-ludovico-throw 6s ease-in-out infinite;
}
.scn-flight-planned .figure-emily {
  position: absolute; left: 30%; bottom: 25%; width: 18px; height: 48px;
  background: linear-gradient(180deg, #2a1a10 0%, #1a0f08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: s3-emily-turn 7s ease-in-out infinite;
}
.scn-flight-planned .lantern {
  position: absolute; left: 42%; bottom: 30%; width: 8px; height: 16px;
  background: linear-gradient(180deg, #4a2a18 0%, #2a1a10 100%);
  border-radius: 2px;
  box-shadow: 0 0 20px 6px rgba(200,100,30,0.5);
  animation: s3-lantern-swing 4s ease-in-out infinite alternate;
}
.scn-flight-planned .shadow-door {
  position: absolute; left: 50%; top: 10%; width: 30%; height: 80%;
  background: rgba(0,0,0,0.3);
  transform-origin: left center;
  animation: s3-shadow-pulse 5s ease-in-out infinite alternate;
}
.scn-flight-planned .shadow-figures {
  position: absolute; left: 30%; bottom: 25%; width: 40%; height: 50%;
  background: rgba(0,0,0,0.25);
  filter: blur(3px);
  animation: s3-shadow-drift 8s ease-in-out infinite;
}
@keyframes s3-door-glow { 0% { box-shadow: inset 0 0 30px rgba(0,0,0,0.8), 0 0 20px rgba(0,0,0,0.5); } 50% { box-shadow: inset 0 0 50px rgba(0,0,0,0.9), 0 0 40px rgba(0,0,0,0.7); } 100% { box-shadow: inset 0 0 30px rgba(0,0,0,0.8), 0 0 20px rgba(0,0,0,0.5); } }
@keyframes s3-ludovico-throw { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-10px) rotate(10deg); } 50% { transform: translateX(0) rotate(-5deg); } 75% { transform: translateX(-5px) rotate(5deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes s3-emily-turn { 0% { transform: rotate(0deg); } 20% { transform: rotate(-20deg); } 40% { transform: rotate(10deg); } 60% { transform: rotate(-15deg); } 80% { transform: rotate(5deg); } 100% { transform: rotate(0deg); } }
@keyframes s3-lantern-swing { 0% { transform: rotate(-5deg); } 30% { transform: rotate(5deg); } 50% { transform: rotate(-3deg); } 70% { transform: rotate(3deg); } 100% { transform: rotate(-5deg); } }
@keyframes s3-shadow-pulse { 0% { opacity: 0.2; } 50% { opacity: 0.5; } 100% { opacity: 0.3; } }
@keyframes s3-shadow-drift { 0% { transform: translateX(0) skewX(0deg); } 50% { transform: translateX(5px) skewX(3deg); } 100% { transform: translateX(-5px) skewX(-3deg); } }

/* Scene 4: through-dark-passages */
.scn-through-dark-passages {
  background: linear-gradient(180deg, #1a1008 0%, #0d0805 50%, #050302 100%),
              radial-gradient(ellipse at 50% 20%, #2a1a10 0%, transparent 70%);
}
.scn-through-dark-passages .wall-left {
  position: absolute; left: 0; top: 0; width: 20%; height: 100%;
  background: linear-gradient(90deg, #0d0805 0%, #1a1008 100%);
  box-shadow: inset -10px 0 20px rgba(0,0,0,0.7);
}
.scn-through-dark-passages .wall-right {
  position: absolute; right: 0; top: 0; width: 20%; height: 100%;
  background: linear-gradient(90deg, #1a1008 0%, #0d0805 100%);
  box-shadow: inset 10px 0 20px rgba(0,0,0,0.7);
}
.scn-through-dark-passages .staircase {
  position: absolute; left: 25%; bottom: 0; width: 50%; height: 60%;
  background: linear-gradient(180deg, #2a1a10 0%, #1a0f08 100%);
  clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%);
  animation: s4-stairs-shift 12s ease-in-out infinite alternate;
}
.scn-through-dark-passages .figure-ludovico {
  position: absolute; left: 40%; bottom: 35%; width: 18px; height: 45px;
  background: linear-gradient(180deg, #1a1008 0%, #0d0805 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 0 3px 8px rgba(0,0,0,0.6);
  animation: s4-ludovico-down 8s ease-in-out infinite;
}
.scn-through-dark-passages .figure-emily {
  position: absolute; left: 45%; bottom: 28%; width: 16px; height: 42px;
  background: linear-gradient(180deg, #2a1a10 0%, #1a0f08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: s4-emily-step 9s ease-in-out infinite;
}
.scn-through-dark-passages .figure-annette {
  position: absolute; left: 52%; bottom: 20%; width: 14px; height: 38px;
  background: linear-gradient(180deg, #1a0f08 0%, #0d0805 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: s4-annette-follow 10s ease-in-out infinite;
}
.scn-through-dark-passages .candle {
  position: absolute; left: 38%; bottom: 40%; width: 4px; height: 14px;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2210 100%);
  border-radius: 2px;
  box-shadow: 0 0 8px rgba(80,40,10,0.4);
}
.scn-through-dark-passages .candle-glow {
  position: absolute; left: 38%; bottom: 50%; width: 12px; height: 16px;
  background: radial-gradient(circle, #ffd080 0%, #c06020 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 6px rgba(200,100,30,0.5);
  animation: s4-glow-flicker 3s ease-in-out infinite alternate;
}
.scn-through-dark-passages .echo-shape {
  position: absolute; left: 30%; top: 10%; width: 40%; height: 30%;
  background: radial-gradient(ellipse at 50% 50%, rgba(200,180,160,0.1) 0%, transparent 80%);
  filter: blur(10px);
  animation: s4-echo-fade 15s ease-in-out infinite;
}
@keyframes s4-stairs-shift { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-2px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes s4-ludovico-down { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-5px) rotate(3deg); } 50% { transform: translateY(0) rotate(-2deg); } 75% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes s4-emily-step { 0% { transform: translateY(0) rotate(0deg); } 20% { transform: translateY(-4px) rotate(5deg); } 40% { transform: translateY(0) rotate(-3deg); } 60% { transform: translateY(-2px) rotate(2deg); } 80% { transform: translateY(0) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes s4-annette-follow { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(-3px) rotate(4deg); } 60% { transform: translateX(2px) rotate(-3deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes s4-glow-flicker { 0% { transform: scale(1) translateX(0); opacity: 0.7; } 25% { transform: scale(1.2) translateX(1px); opacity: 1; } 50% { transform: scale(0.9) translateX(-1px); opacity: 0.8; } 75% { transform: scale(1.1) translateX(0); opacity: 0.9; } 100% { transform: scale(1) translateX(0); opacity: 0.75; } }
@keyframes s4-echo-fade { 0% { opacity: 0.1; transform: scale(1); } 50% { opacity: 0.3; transform: scale(1.1); } 100% { opacity: 0.1; transform: scale(1); } }

/* day-of-suspense */
.scn-day-of-suspense {
  background: 
    linear-gradient(180deg, #2a1f1a 0%, #1e1410 60%, #160f0c 100%),
    radial-gradient(ellipse at 50% 60%, #3a2a20 0%, transparent 70%);
}
.scn-day-of-suspense .wall {
  position:absolute; inset:0; 
  background: radial-gradient(ellipse at 40% 20%, #4a3a2e 0%, transparent 70%);
  animation: ds-wall 20s ease-in-out infinite alternate;
}
.scn-day-of-suspense .desk {
  position:absolute; bottom:18%; left:30%; width:35%; height:15%; 
  background: linear-gradient(135deg, #5a3c2a 0%, #3a281c 100%);
  border-radius: 4%;
  box-shadow: 0 8px 18px rgba(0,0,0,0.6);
  transform-origin: center bottom;
  animation: ds-desk 12s ease-in-out infinite alternate;
}
.scn-day-of-suspense .chair {
  position:absolute; bottom:20%; left:55%; width:12%; height:25%; 
  background: linear-gradient(180deg, #4a3228 0%, #2a1c14 100%);
  border-radius: 40% 40% 10% 10% / 60% 60% 20% 20%;
  box-shadow: -4px 0 10px rgba(0,0,0,0.4);
  animation: ds-chair 15s ease-in-out infinite alternate;
}
.scn-day-of-suspense .figure {
  position:absolute; bottom:22%; left:42%; width:14%; height:32%; 
  background: linear-gradient(180deg, #3a2a22 0%, #1a1210 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: ds-figure 8s ease-in-out infinite;
}
.scn-day-of-suspense .candle {
  position:absolute; bottom:30%; left:32%; width:2%; height:18%; 
  background: linear-gradient(180deg, #d4a060 0%, #8c6a40 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: ds-candle 4s ease-in-out infinite alternate;
}
.scn-day-of-suspense .flame {
  position:absolute; bottom:48%; left:32%; width:2.5%; height:6%; 
  background: radial-gradient(circle at 50% 20%, #ffe0a0 0%, #ffc060 40%, #b08030 100%);
  border-radius: 50% 50% 30% 30% / 40% 40% 60% 60%;
  box-shadow: 0 0 20px 6px #ffb040, 0 0 40px 12px rgba(255,176,64,0.3);
  animation: ds-flame 1.5s ease-in-out infinite alternate;
}
.scn-day-of-suspense .window {
  position:absolute; top:10%; left:15%; width:20%; height:28%; 
  background: linear-gradient(135deg, #4a5060 0%, #2a3040 100%);
  border-radius: 4% 4% 8% 8%;
  box-shadow: inset 0 0 30px rgba(255,255,220,0.15);
  animation: ds-window 25s ease-in-out infinite alternate;
}
@keyframes ds-wall { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes ds-desk { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(1px) } }
@keyframes ds-chair { 0% { transform: rotate(-1deg) } 50% { transform: rotate(0.5deg) translateY(-1px) } 100% { transform: rotate(0deg) translateY(0) } }
@keyframes ds-figure { 0% { transform: translateX(0) translateY(0) rotate(-0.5deg) } 25% { transform: translateX(2px) translateY(-1px) rotate(0.5deg) } 50% { transform: translateX(0) translateY(0) rotate(0deg) } 75% { transform: translateX(-1px) translateY(1px) rotate(-0.3deg) } 100% { transform: translateX(0) translateY(0) rotate(0deg) } }
@keyframes ds-candle { 0% { height:18%; transform: scaleY(1) } 50% { height:19%; transform: scaleY(1.03) } 100% { height:17%; transform: scaleY(0.98) } }
@keyframes ds-flame { 0% { transform: scale(1) translate(0,0); box-shadow: 0 0 20px 6px #ffb040, 0 0 40px 12px rgba(255,176,64,0.3); } 50% { transform: scale(1.12) translate(-1px,-2px); box-shadow: 0 0 30px 10px #ffc060, 0 0 50px 18px rgba(255,192,96,0.4); } 100% { transform: scale(0.95) translate(1px,1px); box-shadow: 0 0 18px 5px #ffa030, 0 0 35px 10px rgba(255,160,48,0.25); } }
@keyframes ds-window { 0% { opacity:0.7; box-shadow: inset 0 0 30px rgba(255,255,220,0.15); } 50% { opacity:1; box-shadow: inset 0 0 50px rgba(255,255,220,0.3); } 100% { opacity:0.8; box-shadow: inset 0 0 20px rgba(255,255,220,0.1); } }

/* condottieri-explanation */
.scn-condottieri-explanation {
  background: 
    linear-gradient(180deg, #2a2218 0%, #1c1610 60%, #120e0a 100%),
    radial-gradient(ellipse at 30% 50%, #3a2c20 0%, transparent 70%);
}
.scn-condottieri-explanation .wall { position:absolute; inset:0; background: radial-gradient(ellipse at 60% 30%, #3a3024 0%, transparent 70%); animation: ce-wall 18s ease-in-out infinite alternate; }
.scn-condottieri-explanation .table { position:absolute; bottom:12%; left:20%; width:60%; height:12%; background: linear-gradient(135deg, #5a3e2c 0%, #3a281c 100%); border-radius: 6%; box-shadow: 0 10px 20px rgba(0,0,0,0.6); animation: ce-table 14s ease-in-out infinite alternate; }
.scn-condottieri-explanation .map { position:absolute; bottom:18%; left:25%; width:40%; height:5%; background: linear-gradient(135deg, #c8b896 0%, #a89878 100%); border-radius: 2%; box-shadow: 0 2px 8px rgba(0,0,0,0.3); transform-origin: left bottom; animation: ce-map 20s ease-in-out infinite alternate; }
.scn-condottieri-explanation .figure-standing { position:absolute; bottom:12%; left:35%; width:12%; height:40%; background: linear-gradient(180deg, #3a2a20 0%, #1a1410 100%); border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%; transform-origin: bottom center; animation: ce-figure 10s ease-in-out infinite; }
.scn-condottieri-explanation .candle { position:absolute; bottom:18%; left:60%; width:1.5%; height:16%; background: linear-gradient(180deg, #d4a060 0%, #8c6a40 100%); border-radius: 20%; box-shadow: 0 4px 8px rgba(0,0,0,0.5); animation: ce-candle 4s ease-in-out infinite alternate; }
.scn-condottieri-explanation .flame { position:absolute; bottom:34%; left:60%; width:2%; height:5%; background: radial-gradient(circle at 50% 20%, #ffe0a0 0%, #ffc060 40%, #b08030 100%); border-radius: 50% 50% 30% 30% / 40% 40% 60% 60%; box-shadow: 0 0 18px 5px #ffb040, 0 0 35px 10px rgba(255,176,64,0.3); animation: ce-flame 1.5s ease-in-out infinite alternate; }
.scn-condottieri-explanation .chair { position:absolute; bottom:14%; left:15%; width:10%; height:22%; background: linear-gradient(180deg, #4a3228 0%, #2a1c14 100%); border-radius: 40% 40% 10% 10% / 60% 60% 20% 20%; box-shadow: 4px 0 10px rgba(0,0,0,0.4); animation: ce-chair 16s ease-in-out infinite alternate; }
@keyframes ce-wall { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes ce-table { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(1px) } }
@keyframes ce-map { 0% { transform: rotate(0deg) scaleX(1) } 50% { transform: rotate(0.5deg) scaleX(1.02) translateY(-1px) } 100% { transform: rotate(-0.3deg) scaleX(0.98) translateY(0) } }
@keyframes ce-figure { 0% { transform: translateX(0) rotate(-0.5deg) } 25% { transform: translateX(1px) rotate(0.3deg) } 50% { transform: translateX(0) rotate(0deg) } 75% { transform: translateX(-1px) rotate(-0.2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes ce-candle { 0% { height:16%; transform: scaleY(1) } 50% { height:17%; transform: scaleY(1.04) } 100% { height:15%; transform: scaleY(0.96) } }
@keyframes ce-flame { 0% { transform: scale(1) translate(0,0); box-shadow: 0 0 18px 5px #ffb040, 0 0 35px 10px rgba(255,176,64,0.3); } 50% { transform: scale(1.15) translate(-1px,-2px); box-shadow: 0 0 28px 9px #ffc060, 0 0 45px 16px rgba(255,192,96,0.4); } 100% { transform: scale(0.95) translate(1px,1px); box-shadow: 0 0 16px 4px #ffa030, 0 0 30px 8px rgba(255,160,48,0.25); } }
@keyframes ce-chair { 0% { transform: rotate(0.5deg) } 50% { transform: rotate(-0.3deg) translateY(-1px) } 100% { transform: rotate(0deg) translateY(0) } }

/* nature-of-warfare */
.scn-nature-of-warfare {
  background: 
    linear-gradient(180deg, #2a241c 0%, #1e1814 60%, #14100c 100%),
    radial-gradient(ellipse at 70% 40%, #3a2e22 0%, transparent 70%);
}
.scn-nature-of-warfare .wall { position:absolute; inset:0; background: radial-gradient(ellipse at 20% 50%, #3a3028 0%, transparent 70%); animation: nw-wall 22s ease-in-out infinite alternate; }
.scn-nature-of-warfare .desk { position:absolute; bottom:20%; left:15%; width:70%; height:14%; background: linear-gradient(135deg, #5a4030 0%, #3a2c20 100%); border-radius: 4%; box-shadow: 0 8px 18px rgba(0,0,0,0.6); animation: nw-desk 13s ease-in-out infinite alternate; }
.scn-nature-of-warfare .map { position:absolute; bottom:26%; left:20%; width:50%; height:4%; background: linear-gradient(135deg, #c8b896 0%, #a89878 100%); border-radius: 2%; box-shadow: 0 2px 6px rgba(0,0,0,0.3); transform-origin: center; animation: nw-map 9s ease-in-out infinite alternate; }
.scn-nature-of-warfare .sword { position:absolute; bottom:28%; left:65%; width:2%; height:30%; background: linear-gradient(180deg, #b8a898 0%, #807060 100%); border-radius: 10% 10% 20% 20% / 20% 20% 40% 40%; box-shadow: 0 2px 6px rgba(0,0,0,0.4); transform-origin: bottom center; animation: nw-sword 12s ease-in-out infinite alternate; }
.scn-nature-of-warfare .helmet { position:absolute; bottom:35%; left:55%; width:12%; height:10%; background: linear-gradient(180deg, #706050 0%, #504030 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; box-shadow: 0 4px 8px rgba(0,0,0,0.5); animation: nw-helmet 16s ease-in-out infinite alternate; }
.scn-nature-of-warfare .candle { position:absolute; bottom:22%; left:30%; width:2%; height:14%; background: linear-gradient(180deg, #d4a060 0%, #8c6a40 100%); border-radius: 20%; box-shadow: 0 4px 8px rgba(0,0,0,0.5); animation: nw-candle 4s ease-in-out infinite alternate; }
.scn-nature-of-warfare .flame { position:absolute; bottom:36%; left:30%; width:2.5%; height:5%; background: radial-gradient(circle at 50% 20%, #ffe0a0 0%, #ffc060 40%, #b08030 100%); border-radius: 50% 50% 30% 30% / 40% 40% 60% 60%; box-shadow: 0 0 18px 5px #ffb040, 0 0 35px 10px rgba(255,176,64,0.3); animation: nw-flame 1.5s ease-in-out infinite alternate; }
.scn-nature-of-warfare .general { position:absolute; bottom:20%; left:40%; width:13%; height:34%; background: linear-gradient(180deg, #3a2a20 0%, #1a1410 100%); border-radius: 50% 50% 20% 20% / 70% 70% 20% 20%; transform-origin: bottom center; animation: nw-general 8s ease-in-out infinite; }
@keyframes nw-wall { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes nw-desk { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(1px) } }
@keyframes nw-map { 0% { transform: rotate(0deg) scale(1) } 50% { transform: rotate(0.3deg) scale(1.01) } 100% { transform: rotate(-0.2deg) scale(0.99) } }
@keyframes nw-sword { 0% { transform: rotate( -2deg) translateX(0) } 50% { transform: rotate(0deg) translateX(1px) } 100% { transform: rotate(1deg) translateX(-1px) } }
@keyframes nw-helmet { 0% { transform: scale(1) } 50% { transform: scale(1.02) translateY(-1px) } 100% { transform: scale(0.98) translateY(0) } }
@keyframes nw-candle { 0% { height:14%; transform: scaleY(1) } 50% { height:15%; transform: scaleY(1.05) } 100% { height:13%; transform: scaleY(0.95) } }
@keyframes nw-flame { 0% { transform: scale(1) translate(0,0); box-shadow: 0 0 18px 5px #ffb040, 0 0 35px 10px rgba(255,176,64,0.3); } 50% { transform: scale(1.1) translate(-1px,-2px); box-shadow: 0 0 28px 9px #ffc060, 0 0 45px 16px rgba(255,192,96,0.4); } 100% { transform: scale(0.95) translate(1px,1px); box-shadow: 0 0 16px 4px #ffa030, 0 0 30px 8px rgba(255,160,48,0.25); } }
@keyframes nw-general { 0% { transform: translateX(0) rotate(-0.5deg) } 25% { transform: translateX(1px) rotate(0.3deg) } 50% { transform: translateX(0) rotate(0deg) } 75% { transform: translateX(-1px) rotate(-0.2deg) } 100% { transform: translateX(0) rotate(0deg) } }

/* montoni's-plan */
.scn-montonis-plan {
  background: 
    linear-gradient(180deg, #1a1412 0%, #120e0c 60%, #0a0806 100%),
    radial-gradient(ellipse at 50% 40%, #2a1e18 0%, transparent 70%);
}
.scn-montonis-plan .wall { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 20%, #2a2220 0%, transparent 80%); animation: mp-wall 24s ease-in-out infinite alternate; }
.scn-montonis-plan .table-meeting { position:absolute; bottom:10%; left:10%; width:80%; height:14%; background: linear-gradient(135deg, #4a342c 0%, #2a201c 100%); border-radius: 6%; box-shadow: 0 10px 25px rgba(0,0,0,0.7); animation: mp-table 15s ease-in-out infinite alternate; }
.scn-montonis-plan .figure-left { position:absolute; bottom:16%; left:18%; width:10%; height:30%; background: linear-gradient(180deg, #3a2a22 0%, #1a1410 100%); border-radius: 50% 50% 20% 20% / 70% 70% 20% 20%; transform-origin: bottom center; animation: mp-fig-left 10s ease-in-out infinite; }
.scn-montonis-plan .figure-center { position:absolute; bottom:12%; left:45%; width:12%; height:38%; background: linear-gradient(180deg, #2a201c 0%, #120e0c 100%); border-radius: 50% 50% 20% 20% / 70% 70% 20% 20%; transform-origin: bottom center; animation: mp-fig-center 12s ease-in-out infinite; }
.scn-montonis-plan .figure-right { position:absolute; bottom:16%; left:70%; width:10%; height:28%; background: linear-gradient(180deg, #3a2a22 0%, #1a1410 100%); border-radius: 50% 50% 20% 20% / 70% 70% 20% 20%; transform-origin: bottom center; animation: mp-fig-right 11s ease-in-out infinite; }
.scn-montonis-plan .candle { position:absolute; bottom:20%; left:46%; width:1.5%; height:12%; background: linear-gradient(180deg, #d4a060 0%, #8c6a40 100%); border-radius: 20%; box-shadow: 0 4px 8px rgba(0,0,0,0.5); animation: mp-candle 4s ease-in-out infinite alternate; }
.scn-montonis-plan .flame { position:absolute; bottom:32%; left:46%; width:2%; height:4%; background: radial-gradient(circle at 50% 20%, #ffe0a0 0%, #ffc060 40%, #b08030 100%); border-radius: 50% 50% 30% 30% / 40% 40% 60% 60%; box-shadow: 0 0 18px 5px #ffb040, 0 0 35px 10px rgba(255,176,64,0.3); animation: mp-flame 1.5s ease-in-out infinite alternate; }
@keyframes mp-wall { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes mp-table { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(1px) } }
@keyframes mp-fig-left { 0% { transform: translateX(0) rotate(-0.5deg) } 25% { transform: translateX(1px) rotate(0.2deg) } 50% { transform: translateX(0) rotate(0deg) } 75% { transform: translateX(-1px) rotate(-0.3deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes mp-fig-center { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(0) rotate(0.5deg) translateY(-1px) } 50% { transform: translateX(0) rotate(0deg) } 75% { transform: translateX(0) rotate(-0.5deg) translateY(1px) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes mp-fig-right { 0% { transform: translateX(0) rotate(0.5deg) } 25% { transform: translateX(-1px) rotate(-0.2deg) } 50% { transform: translateX(0) rotate(0deg) } 75% { transform: translateX(1px) rotate(0.3deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes mp-candle { 0% { height:12%; transform: scaleY(1) } 50% { height:13%; transform: scaleY(1.05) } 100% { height:11%; transform: scaleY(0.95) } }
@keyframes mp-flame { 0% { transform: scale(1) translate(0,0); box-shadow: 0 0 18px 5px #ffb040, 0 0 35px 10px rgba(255,176,64,0.3); } 50% { transform: scale(1.12) translate(-1px,-2px); box-shadow: 0 0 28px 9px #ffc060, 0 0 45px 16px rgba(255,192,96,0.4); } 100% { transform: scale(0.95) translate(1px,1px); box-shadow: 0 0 16px 4px #ffa030, 0 0 30px 8px rgba(255,160,48,0.25); } }

/* Scene: count-alights */
.scn-count-alights {
  background: 
    linear-gradient(180deg, #0d0b1a 0%, #1a1530 40%, #2a1f2e 70%, #1c1418 100%),
    radial-gradient(ellipse at 70% 80%, #8a4a2a 0%, transparent 50%);
}
.scn-count-alights .great-door {
  position: absolute; bottom: 10%; left: 50%; width: 120px; height: 200px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 0 30px 10px rgba(200,150,80,0.3);
  animation: ca-door 6s ease-in-out infinite alternate;
}
.scn-count-alights .carriage {
  position: absolute; bottom: 16%; left: 30%; width: 160px; height: 80px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a1a24 0%, #0a0a12 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.7);
  animation: ca-carriage 3s ease-in-out infinite;
}
.scn-count-alights .count {
  position: absolute; bottom: 22%; left: 30%; width: 24px; height: 60px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a12 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ca-count 2s ease-in-out infinite alternate;
}
.scn-count-alights .horse {
  position: absolute; bottom: 18%; left: 50%; width: 100px; height: 50px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a1a18 0%, #1a0e0a 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.6);
  animation: ca-horse 4s ease-in-out infinite;
}
.scn-count-alights .torch-1 {
  position: absolute; bottom: 10%; left: 8%; width: 8px; height: 40px;
  background: linear-gradient(180deg, #6a4a2a, #3a2a1a);
  border-radius: 30%;
  animation: ca-torch 1.2s ease-in-out infinite alternate;
}
.scn-count-alights .torch-2 {
  position: absolute; bottom: 10%; right: 8%; width: 8px; height: 40px;
  background: linear-gradient(180deg, #6a4a2a, #3a2a1a);
  border-radius: 30%;
  animation: ca-torch 1.5s ease-in-out infinite alternate reverse;
}
.scn-count-alights .glow {
  position: absolute; inset: 0; 
  background: radial-gradient(ellipse at 30% 80%, rgba(200,120,40,0.3) 0%, transparent 40%),
              radial-gradient(ellipse at 70% 80%, rgba(200,120,40,0.2) 0%, transparent 30%);
  mix-blend-mode: screen;
  pointer-events: none;
  animation: ca-glow 8s ease-in-out infinite alternate;
}
@keyframes ca-door {
  0% { transform: translateX(-50%) scaleY(1); box-shadow: 0 0 20px 5px rgba(200,150,80,0.2); }
  50% { transform: translateX(-50%) scaleY(1.01); box-shadow: 0 0 40px 10px rgba(200,150,80,0.4); }
  100% { transform: translateX(-50%) scaleY(0.98); box-shadow: 0 0 25px 8px rgba(200,150,80,0.3); }
}
@keyframes ca-carriage {
  0% { transform: translateX(-50%) translateY(0) rotate(0deg); }
  50% { transform: translateX(-50%) translateY(-2px) rotate(0.5deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(-0.5deg); }
}
@keyframes ca-count {
  0% { transform: translateX(-50%) rotate(-2deg); }
  50% { transform: translateX(-50%) translateY(-1px) rotate(1deg); }
  100% { transform: translateX(-50%) rotate(2deg); }
}
@keyframes ca-horse {
  0% { transform: translateX(-50%) scaleX(1) rotate(0deg); }
  25% { transform: translateX(-45%) scaleX(0.98) rotate(-1deg); }
  50% { transform: translateX(-50%) scaleX(1) rotate(0deg); }
  75% { transform: translateX(-55%) scaleX(0.98) rotate(1deg); }
  100% { transform: translateX(-50%) scaleX(1) rotate(0deg); }
}
@keyframes ca-torch {
  0% { opacity: 0.7; transform: scaleY(1) rotate(-3deg); }
  50% { opacity: 1; transform: scaleY(1.05) rotate(0deg); }
  100% { opacity: 0.6; transform: scaleY(0.95) rotate(3deg); }
}
@keyframes ca-glow {
  0% { opacity: 0.6; filter: blur(8px); }
  50% { opacity: 1; filter: blur(4px); }
  100% { opacity: 0.7; filter: blur(10px); }
}

/* Scene: emily-sends-anette-to-hall */
.scn-emily-sends-anette-to-hall {
  background: 
    linear-gradient(180deg, #1a1410 0%, #2a201a 50%, #1a1210 100%),
    radial-gradient(ellipse at 50% 90%, #4a3020 0%, transparent 60%);
}
.scn-emily-sends-anette-to-hall .door {
  position: absolute; top: 20%; left: 0; width: 100%; height: 60%;
  background: linear-gradient(135deg, #2a1e12 0%, #1a120a 50%, #2a1e12 100%);
  border-radius: 40% 60% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.6);
  animation: es-door 8s ease-in-out infinite alternate;
}
.scn-emily-sends-anette-to-hall .emily {
  position: absolute; bottom: 20%; left: 30%; width: 20px; height: 50px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1e1a28 0%, #0a0a12 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: es-figure 3s ease-in-out infinite;
}
.scn-emily-sends-anette-to-hall .annette {
  position: absolute; bottom: 20%; left: 55%; width: 22px; height: 48px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a1e1a 0%, #1a0e0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: es-figure 3.5s ease-in-out infinite reverse;
}
.scn-emily-sends-anette-to-hall .candle {
  position: absolute; bottom: 28%; left: 42%; width: 6px; height: 18px;
  background: linear-gradient(180deg, #8a6a2a, #4a3020);
  border-radius: 20%;
  animation: es-candle 2s ease-in-out infinite alternate;
}
.scn-emily-sends-anette-to-hall .shadow {
  position: absolute; bottom: 10%; left: 25%; width: 80px; height: 30px;
  background: rgba(0,0,0,0.5);
  border-radius: 50%;
  filter: blur(6px);
  animation: es-shadow 6s ease-in-out infinite alternate;
}
.scn-emily-sends-anette-to-hall .chair {
  position: absolute; bottom: 14%; right: 15%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 10% 10% 20% 20%;
  animation: es-chair 10s ease-in-out infinite;
}
.scn-emily-sends-anette-to-hall .table {
  position: absolute; bottom: 16%; left: 20%; width: 60px; height: 12px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: es-table 12s ease-in-out infinite alternate;
}
@keyframes es-door {
  0% { transform: scaleX(1); box-shadow: inset 0 5px 15px rgba(0,0,0,0.4); }
  50% { transform: scaleX(0.98); box-shadow: inset 0 15px 30px rgba(0,0,0,0.6); }
  100% { transform: scaleX(1.02); box-shadow: inset 0 5px 15px rgba(0,0,0,0.4); }
}
@keyframes es-figure {
  0% { transform: translateX(-50%) translateY(0) rotate(-2deg); }
  50% { transform: translateX(-50%) translateY(-1px) rotate(1deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(2deg); }
}
@keyframes es-candle {
  0% { transform: scaleY(1) rotate(-5deg); opacity: 0.8; }
  50% { transform: scaleY(1.1) rotate(0deg); opacity: 1; }
  100% { transform: scaleY(0.9) rotate(5deg); opacity: 0.7; }
}
@keyframes es-shadow {
  0% { transform: translateX(0) scaleX(1); opacity: 0.4; }
  50% { transform: translateX(10px) scaleX(1.1); opacity: 0.6; }
  100% { transform: translateX(-5px) scaleX(0.9); opacity: 0.3; }
}
@keyframes es-chair {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(2deg); }
  100% { transform: translateY(0) rotate(-2deg); }
}
@keyframes es-table {
  0% { transform: translateX(0) scaleX(1); }
  50% { transform: translateX(-3px) scaleX(0.98); }
  100% { transform: translateX(3px) scaleX(1.02); }
}

/* Scene: private-passages */
.scn-private-passages {
  background: 
    linear-gradient(180deg, #0a0a14 0%, #14142a 50%, #0a0a14 100%),
    radial-gradient(ellipse at 50% 30%, #1a1a2e 0%, transparent 70%);
}
.scn-private-passages .wall-left {
  position: absolute; top: 0; left: 0; width: 20%; height: 100%;
  background: linear-gradient(180deg, #1a1820 0%, #0e0c12 100%);
  box-shadow: 8px 0 15px rgba(0,0,0,0.6);
  animation: pp-wall 10s ease-in-out infinite alternate;
}
.scn-private-passages .wall-right {
  position: absolute; top: 0; right: 0; width: 20%; height: 100%;
  background: linear-gradient(180deg, #1a1820 0%, #0e0c12 100%);
  box-shadow: -8px 0 15px rgba(0,0,0,0.6);
  animation: pp-wall 10s ease-in-out infinite alternate-reverse;
}
.scn-private-passages .floor {
  position: absolute; bottom: 0; left: 0; width: 100%; height: 15%;
  background: linear-gradient(180deg, #1a1a1a 0%, #0e0e0e 100%);
  border-radius: 10% 10% 0 0;
  animation: pp-floor 12s ease-in-out infinite;
}
.scn-private-passages .emily {
  position: absolute; bottom: 20%; left: 45%; width: 18px; height: 46px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #16142a 0%, #0a0a12 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: pp-emily 4s ease-in-out infinite;
}
.scn-private-passages .door-ahead {
  position: absolute; bottom: 15%; left: 50%; width: 70px; height: 120px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a1e12 0%, #120e08 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 0 20px 5px rgba(0,0,0,0.8);
  animation: pp-door 8s ease-in-out infinite alternate;
}
.scn-private-passages .torch {
  position: absolute; bottom: 30%; left: 28%; width: 6px; height: 30px;
  background: linear-gradient(180deg, #6a4a2a, #2a1a10);
  border-radius: 20%;
  animation: pp-torch 1s ease-in-out infinite alternate;
}
.scn-private-passages .shadow-figure {
  position: absolute; bottom: 18%; left: 60%; width: 24px; height: 56px;
  transform: translateX(-50%);
  background: rgba(0,0,0,0.7);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  filter: blur(4px);
  animation: pp-shadow 6s ease-in-out infinite;
}
@keyframes pp-wall {
  0% { transform: translateX(0); }
  50% { transform: translateX(-2px); }
  100% { transform: translateX(2px); }
}
@keyframes pp-floor {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(0.98); }
  100% { transform: scaleY(1.02); }
}
@keyframes pp-emily {
  0% { transform: translateX(-50%) translateY(0) rotate(-1deg); }
  25% { transform: translateX(-45%) translateY(-2px) rotate(1deg); }
  50% { transform: translateX(-50%) translateY(0) rotate(-1deg); }
  75% { transform: translateX(-55%) translateY(-1px) rotate(0deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(1deg); }
}
@keyframes pp-door {
  0% { transform: translateX(-50%) rotateY(0deg); }
  50% { transform: translateX(-50%) rotateY(5deg); }
  100% { transform: translateX(-50%) rotateY(-5deg); }
}
@keyframes pp-torch {
  0% { opacity: 0.7; transform: scaleY(1) rotate(-4deg); }
  50% { opacity: 1; transform: scaleY(1.05) rotate(0deg); }
  100% { opacity: 0.6; transform: scaleY(0.95) rotate(4deg); }
}
@keyframes pp-shadow {
  0% { transform: translateX(-50%) scaleX(1); opacity: 0.3; }
  50% { transform: translateX(-50%) scaleX(1.1); opacity: 0.6; }
  100% { transform: translateX(-50%) scaleX(0.9); opacity: 0.2; }
}

/* Scene: moaning-heard */
.scn-moaning-heard {
  background: 
    linear-gradient(180deg, #0a0a14 0%, #10101e 30%, #0a0a14 100%),
    radial-gradient(ellipse at 50% 40%, #1a1a2e 0%, transparent 60%),
    radial-gradient(ellipse at 50% 100%, #080814 0%, transparent 40%);
}
.scn-moaning-heard .door-1 {
  position: absolute; bottom: 10%; left: 20%; width: 80px; height: 140px;
  background: linear-gradient(180deg, #221a12 0%, #0e0a08 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 0 15px 5px rgba(0,0,0,0.5);
  animation: mh-door 8s ease-in-out infinite alternate;
}
.scn-moaning-heard .door-2 {
  position: absolute; bottom: 10%; right: 20%; width: 80px; height: 140px;
  background: linear-gradient(180deg, #221a12 0%, #0e0a08 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 0 15px 5px rgba(0,0,0,0.5);
  animation: mh-door 8s ease-in-out infinite alternate-reverse;
}
.scn-moaning-heard .emily {
  position: absolute; bottom: 14%; left: 50%; width: 18px; height: 48px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #14122e 0%, #0a0a12 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: mh-emily 5s ease-in-out infinite;
}
.scn-moaning-heard .shadow-ghost {
  position: absolute; bottom: 18%; left: 50%; width: 30px; height: 70px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 30%, rgba(100,140,180,0.3) 0%, transparent 70%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  filter: blur(6px);
  animation: mh-ghost 7s ease-in-out infinite;
}
.scn-moaning-heard .light-crack {
  position: absolute; bottom: 30%; left: 25%; width: 2px; height: 30px;
  background: linear-gradient(180deg, rgba(200,200,220,0.4) 0%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 10px 4px rgba(200,200,220,0.2);
  animation: mh-crack 4s ease-in-out infinite alternate;
}
.scn-moaning-heard .dust {
  position: absolute; top: 20%; left: 40%; width: 4px; height: 4px;
  background: rgba(200,200,220,0.1);
  border-radius: 50%;
  filter: blur(1px);
  box-shadow: 10px 20px 0 rgba(200,200,220,0.05), 20px 40px 0 rgba(200,200,220,0.03), 30px 10px 0 rgba(200,200,220,0.04);
  animation: mh-dust 20s linear infinite;
}
.scn-moaning-heard .stairs {
  position: absolute; bottom: 0; left: 0; width: 100%; height: 10%;
  background: linear-gradient(180deg, #0e0e1a 0%, #06060c 100%);
  border-radius: 30% 30% 0 0;
  animation: mh-stairs 15s ease-in-out infinite;
}
@keyframes mh-door {
  0% { transform: scaleY(1); box-shadow: 0 0 10px 2px rgba(0,0,0,0.4); }
  50% { transform: scaleY(1.01); box-shadow: 0 0 20px 5px rgba(0,0,0,0.6); }
  100% { transform: scaleY(0.99); box-shadow: 0 0 12px 3px rgba(0,0,0,0.5); }
}
@keyframes mh-emily {
  0% { transform: translateX(-50%) translateY(0) rotate(0deg); }
  30% { transform: translateX(-48%) translateY(-1px) rotate(2deg); }
  60% { transform: translateX(-52%) translateY(1px) rotate(-2deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(0deg); }
}
@keyframes mh-ghost {
  0% { opacity: 0.1; transform: translateX(-50%) scale(1) rotate(0deg); }
  50% { opacity: 0.5; transform: translateX(-50%) scale(1.05) rotate(5deg); }
  100% { opacity: 0; transform: translateX(-50%) scale(0.95) rotate(-5deg); }
}
@keyframes mh-crack {
  0% { opacity: 0.2; transform: scaleY(1); }
  50% { opacity: 0.6; transform: scaleY(1.2); }
  100% { opacity: 0.1; transform: scaleY(0.8); }
}
@keyframes mh-dust {
  0% { transform: translateY(0) rotate(0deg); opacity: 0; }
  10% { opacity: 0.1; }
  90% { opacity: 0.05; }
  100% { transform: translateY(-200px) rotate(360deg); opacity: 0; }
}
@keyframes mh-stairs {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(0.98); }
  100% { transform: scaleY(1.02); }
}

/* Scene 1: emily-rejects-morano-firmly — dim interior, calm */
.scn-emily-rejects-morano-firmly {
  background: linear-gradient(180deg, #1c1a1a 0%, #3a2c24 40%, #4a3830 70%, #2e2620 100%),
              radial-gradient(ellipse at 50% 20%, #7a5a3a 0%, transparent 60%);
}
.scn-emily-rejects-morano-firmly .bg-wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #3a2c24 0%, #2e2620 100%);
  animation: emr-wall 20s ease-in-out infinite alternate;
}
.scn-emily-rejects-morano-firmly .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #2e2620 0%, #1a1410 100%);
}
.scn-emily-rejects-morano-firmly .table {
  position: absolute; bottom: 30%; left: 50%; transform: translateX(-60%);
  width: 80px; height: 10px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 4px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.6);
}
.scn-emily-rejects-morano-firmly .candle-glow {
  position: absolute; bottom: 42%; left: 44%; width: 8px; height: 14px;
  background: radial-gradient(circle, #f0c080 0%, #b08040 60%, transparent 100%);
  border-radius: 50% 50% 40% 40%;
  box-shadow: 0 0 20px 6px #d09050, 0 0 40px 12px rgba(200,140,80,0.4);
  animation: emr-candle 3s ease-in-out infinite alternate;
}
.scn-emily-rejects-morano-firmly .emily-figure {
  position: absolute; bottom: 26%; left: 45%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #2a2220 0%, #1a1410 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: emr-emily 6s ease-in-out infinite;
}
.scn-emily-rejects-morano-firmly .morano-figure {
  position: absolute; bottom: 28%; left: 55%; width: 22px; height: 44px;
  background: linear-gradient(180deg, #3a2c24 0%, #1c1a1a 100%);
  border-radius: 45% 45% 40% 40% / 55% 55% 45% 45%;
  transform-origin: bottom center;
  animation: emr-morano 4s ease-in-out infinite;
}
.scn-emily-rejects-morano-firmly .window-arch {
  position: absolute; top: 8%; left: 30%; width: 60px; height: 90px;
  border-radius: 50% 50% 0 0;
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%);
  box-shadow: inset 0 0 12px rgba(0,0,0,0.7);
  animation: emr-window 15s ease-in-out infinite alternate;
}
@keyframes emr-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes emr-candle { 0% { transform: scale(1) translateY(0); opacity: 0.8; } 50% { transform: scale(1.05) translateY(-1px); opacity: 1; } 100% { transform: scale(0.95) translateY(0.5px); opacity: 0.85; } }
@keyframes emr-emily { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-2px) rotate(-2deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(1px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes emr-morano { 0% { transform: translateX(0) rotate(0deg) scale(1); } 30% { transform: translateX(3px) rotate(3deg) scale(1.02); } 60% { transform: translateX(0) rotate(0deg) scale(1); } 100% { transform: translateX(-2px) rotate(-2deg) scale(0.98); } }
@keyframes emr-window { 0% { background: linear-gradient(180deg, #2a3a4a, #1a2a3a); } 50% { background: linear-gradient(180deg, #3a4a5a, #2a3a4a); } 100% { background: linear-gradient(180deg, #1a2a3a, #0a1a2a); } }

/* Scene 2: hope-of-venice-escape — dim interior, tense */
.scn-hope-of-venice-escape {
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2e 40%, #2a2a3e 80%, #1a1a2e 100%),
              radial-gradient(ellipse at 30% 80%, #3a3a5a 0%, transparent 70%);
}
.scn-hope-of-venice-escape .bg-depth {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #12122a 0%, #0a0a1a 100%);
  animation: hve-depth 25s ease-in-out infinite alternate;
}
.scn-hope-of-venice-escape .bg-mid {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 60%;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%);
}
.scn-hope-of-venice-escape .window-bars {
  position: absolute; top: 10%; left: 35%; width: 80px; height: 120px;
  background: repeating-linear-gradient(0deg, #2a2a3e 0px, #2a2a3e 4px, transparent 4px, transparent 8px);
  border-left: 4px solid #3a3a5a; border-right: 4px solid #3a3a5a; border-top: 4px solid #3a3a5a;
  border-bottom: 4px solid #3a3a5a;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.8);
  animation: hve-bars 10s ease-in-out infinite;
}
.scn-hope-of-venice-escape .moon-beam {
  position: absolute; top: 5%; left: 40%; width: 60px; height: 100%;
  background: linear-gradient(180deg, rgba(180,200,255,0.3) 0%, rgba(180,200,255,0.05) 100%);
  filter: blur(8px);
  animation: hve-beam 8s ease-in-out infinite alternate;
}
.scn-hope-of-venice-escape .emily-figure {
  position: absolute; bottom: 30%; left: 45%; width: 18px; height: 38px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hve-emily 3s ease-in-out infinite;
}
.scn-hope-of-venice-escape .aunt-figure {
  position: absolute; bottom: 30%; left: 52%; width: 20px; height: 36px;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%);
  border-radius: 50% 50% 40% 40% / 55% 55% 45% 45%;
  transform-origin: bottom center;
  animation: hve-aunt 4.5s ease-in-out infinite;
}
.scn-hope-of-venice-escape .door-creak {
  position: absolute; bottom: 20%; left: 20%; width: 50px; height: 80px;
  background: linear-gradient(180deg, #3a3a4e 0%, #1a1a2e 100%);
  border-radius: 4px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.6);
  animation: hve-door 6s ease-in-out infinite;
}
@keyframes hve-depth { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes hve-bars { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.01); } 100% { transform: scaleY(1); } }
@keyframes hve-beam { 0% { transform: translateX(0) rotate(0deg); opacity: 0.6; } 50% { transform: translateX(10px) rotate(1deg); opacity: 1; } 100% { transform: translateX(-5px) rotate(-0.5deg); opacity: 0.7; } }
@keyframes hve-emily { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(3px) rotate(2deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes hve-aunt { 0% { transform: translateX(0) scale(1); } 30% { transform: translateX(-4px) scale(1.02); } 60% { transform: translateX(0) scale(1); } 100% { transform: translateX(2px) scale(0.98); } }
@keyframes hve-door { 0% { transform: rotateY(0deg); } 25% { transform: rotateY(-2deg); } 50% { transform: rotateY(0deg); } 75% { transform: rotateY(1deg); } 100% { transform: rotateY(0deg); } }

/* Scene 3: pity-for-theresa — sad, dim interior */
.scn-pity-for-theresa {
  background: linear-gradient(180deg, #1a1a2a 0%, #2a1e2a 40%, #3a2a3a 80%, #1a1a2a 100%),
              radial-gradient(ellipse at 50% 60%, #4a3a4a 0%, transparent 70%);
}
.scn-pity-for-theresa .bg-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a1e2a 0%, #1a1a2a 100%);
  animation: pft-wall 30s ease-in-out infinite alternate;
}
.scn-pity-for-theresa .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
}
.scn-pity-for-theresa .theresa-chair {
  position: absolute; bottom: 28%; left: 55%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #4a3a4a 0%, #2a1e2a 100%);
  border-radius: 8px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: pft-chair 7s ease-in-out infinite;
}
.scn-pity-for-theresa .candle-low {
  position: absolute; bottom: 40%; left: 42%; width: 6px; height: 10px;
  background: radial-gradient(circle, #806060 0%, #604040 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 10px 2px #604040, 0 0 20px 6px rgba(96,64,64,0.3);
  animation: pft-candle 5s ease-in-out infinite alternate;
}
.scn-pity-for-theresa .emily-kneeling {
  position: absolute; bottom: 24%; left: 48%; width: 18px; height: 34px;
  background: linear-gradient(180deg, #2a1e2a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pft-kneel 4s ease-in-out infinite;
}
.scn-pity-for-theresa .tear-drop {
  position: absolute; bottom: 44%; left: 48%; width: 4px; height: 8px;
  background: radial-gradient(circle, #a0a0c0 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(1px);
  animation: pft-tear 2s ease-in-out infinite;
  animation-delay: 0.5s;
}
.scn-pity-for-theresa .window-rain {
  position: absolute; top: 10%; left: 30%; width: 60px; height: 80px;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.6);
  animation: pft-rain 1s linear infinite;
}
@keyframes pft-wall { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.75; } }
@keyframes pft-chair { 0% { transform: translateY(0); } 30% { transform: translateY(-2px); } 60% { transform: translateY(0); } 100% { transform: translateY(1px); } }
@keyframes pft-candle { 0% { transform: scale(1) translateY(0); opacity: 0.7; } 50% { transform: scale(0.95) translateY(1px); opacity: 0.5; } 100% { transform: scale(1.05) translateY(-0.5px); opacity: 0.8; } }
@keyframes pft-kneel { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(-3deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(1px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes pft-tear { 0% { transform: translateY(0) scale(1); opacity: 0.8; } 50% { transform: translateY(10px) scale(0.8); opacity: 0.2; } 100% { transform: translateY(20px) scale(0.5); opacity: 0; } }
@keyframes pft-rain { 0% { background-position: 0 0; } 100% { background-position: 0 -80px; } }

/* Scene 4: departure-from-villa — dusk, calm */
.scn-departure-from-villa {
  background: linear-gradient(180deg, #4a3a2a 0%, #6a4a3a 30%, #8a6a4a 60%, #4a3a2a 100%),
              radial-gradient(ellipse at 50% 20%, #c09060 0%, transparent 60%);
}
.scn-departure-from-villa .dusk-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a3a2a 50%, #3a2a1a 100%);
  animation: dfv-sky 20s ease-in-out infinite alternate;
}
.scn-departure-from-villa .water {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  animation: dfv-water 12s ease-in-out infinite;
}
.scn-departure-from-villa .villa-silhouette {
  position: absolute; bottom: 35%; left: 20%; width: 100px; height: 60px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  clip-path: polygon(0% 100%, 10% 20%, 30% 10%, 50% 0%, 70% 10%, 90% 20%, 100% 100%);
  animation: dfv-villa 18s ease-in-out infinite;
}
.scn-departure-from-villa .barge {
  position: absolute; bottom: 30%; left: 50%; width: 80px; height: 20px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 0 0 40% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: dfv-barge 8s ease-in-out infinite;
}
.scn-departure-from-villa .emily-figure {
  position: absolute; bottom: 32%; left: 48%; width: 16px; height: 30px;
  background: linear-gradient(180deg, #1a0a00 0%, #0a0500 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dfv-figures 6s ease-in-out infinite;
  animation-delay: 0s;
}
.scn-departure-from-villa .morano-figure {
  position: absolute; bottom: 32%; left: 54%; width: 18px; height: 32px;
  background: linear-gradient(180deg, #1a0a00 0%, #0a0500 100%);
  border-radius: 50% 50% 40% 40% / 55% 55% 45% 45%;
  transform-origin: bottom center;
  animation: dfv-figures 6s ease-in-out infinite;
  animation-delay: 0.3s;
}
.scn-departure-from-villa .reflection-ripple {
  position: absolute; bottom: 20%; left: 45%; width: 60px; height: 10px;
  background: radial-gradient(ellipse, #4a3a2a 0%, transparent 100%);
  filter: blur(2px);
  animation: dfv-ripple 4s ease-in-out infinite;
}
@keyframes dfv-sky { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes dfv-water { 0% { transform: translateY(0); } 25% { transform: translateY(2px); } 50% { transform: translateY(0); } 75% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes dfv-villa { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.01) translateY(-2px); } 100% { transform: scaleX(1); } }
@keyframes dfv-barge { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(5px) rotate(1deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-5px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes dfv-figures { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-3px) rotate(2deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes dfv-ripple { 0% { transform: scale(1); opacity: 0.6; } 50% { transform: scale(1.2); opacity: 0.2; } 100% { transform: scale(0.8); opacity: 0.4; } }

.scn-emily-explains-compassion {
  background:
    linear-gradient(180deg, #2a1e14 0%, #3d2b1f 40%, #5a3e2e 100%),
    radial-gradient(ellipse at 50% 30%, #8a6b4b 0%, transparent 70%);
}
.scn-emily-explains-compassion .wall {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(180deg, #4a3428 0%, #2a1e14 100%);
}
.scn-emily-explains-compassion .floor {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #3d2b1f 0%, #1f150e 100%);
  border-radius: 0 0 0 0;
}
.scn-emily-explains-compassion .fireplace {
  position:absolute; bottom:30%; left:10%; width:30%; height:40%;
  background: radial-gradient(ellipse at 50% 30%, #a0663a 0%, #2a1e14 100%);
  border-radius: 10% 10% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 15px 30px rgba(0,0,0,0.7);
  animation: ec-fire 6s ease-in-out infinite alternate;
}
.scn-emily-explains-compassion .armchair {
  position:absolute; bottom:15%; right:15%; width:25%; height:35%;
  background: linear-gradient(135deg, #5a3e2e 0%, #3d2b1f 50%, #2a1e14 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 20% 20%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.5);
  transform: scale(0.95);
}
.scn-emily-explains-compassion .figure {
  position:absolute; bottom:20%; left:20%; width:12%; height:35%;
  background: linear-gradient(180deg, #2a1e14 0%, #1a0f0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ec-figure 8s ease-in-out infinite alternate;
}
.scn-emily-explains-compassion .candle {
  position:absolute; bottom:32%; left:45%; width:3%; height:12%;
  background: linear-gradient(180deg, #8a6b4b 0%, #5a3e2e 100%);
  border-radius: 10% 10% 5% 5% / 20% 20% 5% 5%;
  box-shadow: 0 0 20px 8px #dba35a, 0 0 40px 16px rgba(219,163,90,0.3);
  animation: ec-candle 4s ease-in-out infinite alternate;
}
@keyframes ec-fire {
  0% { opacity:0.7; transform: scaleY(0.95) }
  50% { opacity:1; transform: scaleY(1.05) }
  100% { opacity:0.8; transform: scaleY(0.98) }
}
@keyframes ec-figure {
  0% { transform: translateX(0) rotate(0deg) }
  50% { transform: translateX(2px) rotate(1deg) }
  100% { transform: translateX(-1px) rotate(-0.5deg) }
}
@keyframes ec-candle {
  0% { box-shadow: 0 0 15px 6px #dba35a, 0 0 30px 12px rgba(219,163,90,0.2); opacity:0.9; transform: scaleY(0.98) }
  50% { box-shadow: 0 0 25px 12px #ffcc7a, 0 0 50px 20px rgba(255,204,122,0.4); opacity:1; transform: scaleY(1.02) }
  100% { box-shadow: 0 0 18px 8px #dba35a, 0 0 35px 14px rgba(219,163,90,0.25); opacity:0.92; transform: scaleY(0.99) }
}

.scn-montoni-asks-about-morano {
  background:
    linear-gradient(180deg, #1c162b 0%, #2a1e3d 50%, #1a0f1f 100%),
    radial-gradient(ellipse at 50% 20%, #3a2a5a 0%, transparent 70%);
}
.scn-montoni-asks-about-morano .wall {
  position:absolute; inset:0 0 35% 0;
  background: linear-gradient(180deg, #2a1e3d 0%, #1c162b 100%);
}
.scn-montoni-asks-about-morano .desk {
  position:absolute; bottom:15%; left:20%; right:20%; height:20%;
  background: linear-gradient(180deg, #4a3a5a 0%, #2a1e3d 100%);
  border-radius: 5% 5% 0 0;
  box-shadow: 0 -10px 20px rgba(0,0,0,0.5);
}
.scn-montoni-asks-about-morano .figure-montoni {
  position:absolute; bottom:30%; left:30%; width:15%; height:45%;
  background: linear-gradient(180deg, #1c162b 0%, #0a0815 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ma-montoni 3s ease-in-out infinite alternate;
}
.scn-montoni-asks-about-morano .figure-emily {
  position:absolute; bottom:25%; right:25%; width:12%; height:40%;
  background: linear-gradient(180deg, #2a1e3d 0%, #1c162b 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ma-emily 5s ease-in-out infinite alternate;
}
.scn-montoni-asks-about-morano .candle {
  position:absolute; bottom:35%; left:50%; width:3%; height:14%;
  background: linear-gradient(180deg, #8a7a6b 0%, #4a3a5a 100%);
  border-radius: 10% 10% 5% 5% / 20% 20% 5% 5%;
  box-shadow: 0 0 18px 6px #b0a0c0, 0 0 30px 12px rgba(176,160,192,0.3);
  animation: ma-candle 2.5s ease-in-out infinite alternate;
}
.scn-montoni-asks-about-morano .shadow {
  position:absolute; bottom:0; left:0; right:0; height:70%;
  background: radial-gradient(ellipse at 50% 0%, transparent 0%, #050312 70%);
  opacity:0.6;
  animation: ma-shadow 4s ease-in-out infinite alternate;
}
@keyframes ma-montoni {
  0% { transform: translateX(0) rotate(-2deg) scaleY(1) }
  50% { transform: translateX(5px) rotate(3deg) scaleY(1.02) }
  100% { transform: translateX(-3px) rotate(-1deg) scaleY(0.98) }
}
@keyframes ma-emily {
  0% { transform: translateX(0) rotate(0deg) }
  50% { transform: translateX(-3px) rotate(-2deg) }
  100% { transform: translateX(2px) rotate(1deg) }
}
@keyframes ma-candle {
  0% { box-shadow: 0 0 12px 3px #b0a0c0, 0 0 20px 8px rgba(176,160,192,0.2); opacity:0.8; transform: scaleY(0.96) }
  50% { box-shadow: 0 0 22px 10px #d0c0e0, 0 0 40px 18px rgba(208,192,224,0.4); opacity:1; transform: scaleY(1.04) }
  100% { box-shadow: 0 0 15px 5px #b0a0c0, 0 0 25px 10px rgba(176,160,192,0.25); opacity:0.85; transform: scaleY(0.97) }
}
@keyframes ma-shadow {
  0% { opacity:0.5 }
  50% { opacity:0.7 }
  100% { opacity:0.55 }
}

.scn-emily-withdraws-to-corridor {
  background:
    linear-gradient(90deg, #0f0a18 0%, #1c1228 50%, #0f0a18 100%),
    radial-gradient(ellipse at 50% 30%, #2a1a3a 0%, transparent 70%);
}
.scn-emily-withdraws-to-corridor .corridor-left {
  position:absolute; inset:0 50% 0 0;
  background: linear-gradient(180deg, #1c1228 0%, #0f0a18 100%);
  clip-path: polygon(0 0, 100% 10%, 100% 90%, 0 100%);
}
.scn-emily-withdraws-to-corridor .corridor-right {
  position:absolute; inset:0 0 0 50%;
  background: linear-gradient(180deg, #1c1228 0%, #0f0a18 100%);
  clip-path: polygon(0 10%, 100% 0, 100% 100%, 0 90%);
}
.scn-emily-withdraws-to-corridor .door {
  position:absolute; bottom:20%; left:35%; right:35%; height:60%;
  background: linear-gradient(180deg, #4a3a5a 0%, #2a1e3d 100%);
  border-radius: 5% 5% 0 0;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.8), 0 5px 10px rgba(0,0,0,0.6);
  animation: ew-door 10s ease-in-out infinite alternate;
}
.scn-emily-withdraws-to-corridor .figure {
  position:absolute; bottom:25%; left:38%; width:10%; height:35%;
  background: linear-gradient(180deg, #2a1e3d 0%, #0f0a18 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ew-figure 6s ease-in-out infinite alternate;
}
.scn-emily-withdraws-to-corridor .lantern {
  position:absolute; bottom:30%; left:30%; width:4%; height:8%;
  background: radial-gradient(circle, #e8d080 0%, #b89a50 70%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px #e8d080, 0 0 40px 12px rgba(232,208,128,0.3);
  animation: ew-lantern 3.5s ease-in-out infinite alternate;
}
.scn-emily-withdraws-to-corridor .shadow-layer {
  position:absolute; inset:0;
  background: radial-gradient(ellipse at 50% 100%, transparent 0%, #05030a 80%);
  opacity:0.7;
  animation: ew-shadow 8s ease-in-out infinite alternate;
}
@keyframes ew-door {
  0% { transform: scaleX(1) scaleY(0.98) }
  50% { transform: scaleX(0.97) scaleY(1.02) }
  100% { transform: scaleX(1.02) scaleY(1) }
}
@keyframes ew-figure {
  0% { transform: translateX(0) translateY(0) rotate(-1deg) }
  50% { transform: translateX(8px) translateY(-2px) rotate(2deg) }
  100% { transform: translateX(-5px) translateY(1px) rotate(-0.5deg) }
}
@keyframes ew-lantern {
  0% { box-shadow: 0 0 15px 4px #e8d080, 0 0 30px 8px rgba(232,208,128,0.2); opacity:0.9; transform: translateY(0) rotate(-3deg) }
  50% { box-shadow: 0 0 25px 10px #ffeba0, 0 0 50px 20px rgba(255,235,160,0.4); opacity:1; transform: translateY(-2px) rotate(3deg) }
  100% { box-shadow: 0 0 18px 5px #e8d080, 0 0 35px 10px rgba(232,208,128,0.25); opacity:0.92; transform: translateY(1px) rotate(-1deg) }
}
@keyframes ew-shadow {
  0% { opacity:0.6 }
  50% { opacity:0.8 }
  100% { opacity:0.65 }
}

.scn-verezzi-challenged {
  background:
    linear-gradient(180deg, #1a1210 0%, #2a1e1a 40%, #3a2a24 100%),
    radial-gradient(ellipse at 50% 20%, #4a3a32 0%, transparent 70%);
}
.scn-verezzi-challenged .table {
  position:absolute; bottom:15%; left:10%; right:10%; height:20%;
  background: linear-gradient(180deg, #5a4a42 0%, #3a2a24 100%);
  border-radius: 5% 5% 0 0;
  box-shadow: 0 -10px 20px rgba(0,0,0,0.6);
}
.scn-verezzi-challenged .figure-left {
  position:absolute; bottom:30%; left:15%; width:14%; height:45%;
  background: linear-gradient(180deg, #2a1e1a 0%, #1a1210 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: vc-left 4s ease-in-out infinite alternate;
}
.scn-verezzi-challenged .figure-right {
  position:absolute; bottom:30%; right:15%; width:14%; height:45%;
  background: linear-gradient(180deg, #3a2a24 0%, #2a1e1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: vc-right 3.2s ease-in-out infinite alternate;
}
.scn-verezzi-challenged .candle {
  position:absolute; bottom:35%; left:48%; width:3%; height:15%;
  background: linear-gradient(180deg, #c8b090 0%, #7a6050 100%);
  border-radius: 10% 10% 5% 5% / 20% 20% 5% 5%;
  box-shadow: 0 0 20px 6px #e0c8a0, 0 0 40px 12px rgba(224,200,160,0.3);
  animation: vc-candle 2.8s ease-in-out infinite alternate;
}
.scn-verezzi-challenged .wineglass {
  position:absolute; bottom:25%; left:50%; width:4%; height:12%;
  background: radial-gradient(ellipse at 50% 40%, #a07050 0%, #6a4a3a 100%);
  border-radius: 0 0 30% 30% / 0 0 40% 40%;
  box-shadow: 0 0 10px 2px rgba(160,112,80,0.3);
  animation: vc-glass 7s ease-in-out infinite alternate;
}
.scn-verezzi-challenged .shadow {
  position:absolute; bottom:0; left:0; right:0; height:80%;
  background: radial-gradient(ellipse at 50% 100%, transparent 0%, #0a0604 70%);
  opacity:0.5;
  animation: vc-shadow 5s ease-in-out infinite alternate;
}
@keyframes vc-left {
  0% { transform: translateX(0) rotate(-3deg) scaleY(1); }
  50% { transform: translateX(6px) rotate(5deg) scaleY(1.05); }
  100% { transform: translateX(-4px) rotate(-1deg) scaleY(0.96); }
}
@keyframes vc-right {
  0% { transform: translateX(0) rotate(2deg) scaleY(0.98); }
  50% { transform: translateX(-5px) rotate(-4deg) scaleY(1.02); }
  100% { transform: translateX(3px) rotate(1deg) scaleY(0.99); }
}
@keyframes vc-candle {
  0% { box-shadow: 0 0 14px 4px #e0c8a0, 0 0 25px 8px rgba(224,200,160,0.2); opacity:0.85; transform: scaleY(0.95) }
  50% { box-shadow: 0 0 26px 12px #ffe8c0, 0 0 50px 20px rgba(255,232,192,0.4); opacity:1; transform: scaleY(1.06) }
  100% { box-shadow: 0 0 18px 6px #e0c8a0, 0 0 30px 10px rgba(224,200,160,0.25); opacity:0.88; transform: scaleY(0.97) }
}
@keyframes vc-glass {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-2px) rotate(2deg); }
  100% { transform: translateY(1px) rotate(-0.5deg); }
}
@keyframes vc-shadow {
  0% { opacity:0.4 }
  50% { opacity:0.65 }
  100% { opacity:0.45 }
}

/* emily-refuses-clandestine-marriage */
.scn-emily-refuses-clandestine-marriage {
  background:
    linear-gradient(180deg, #1e1e2a 0%, #2a2a3e 40%, #16161e 100%),
    radial-gradient(ellipse at 30% 60%, #3a3a5a 0%, transparent 70%);
}
.scn-emily-refuses-clandestine-marriage .wall-bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(135deg, #2a2a3e 0%, #1a1a2a 100%);
  animation: e1-wall 12s ease-in-out infinite alternate;
}
.scn-emily-refuses-clandestine-marriage .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1a1a1e 0%, #0e0e12 100%);
  border-radius: 10% 10% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.6);
}
.scn-emily-refuses-clandestine-marriage .window-frame {
  position: absolute; top: 12%; left: 12%; width: 44%; height: 52%;
  border: 8px solid #3a2a1a;
  border-radius: 4px;
  background: transparent;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.7), 0 4px 12px rgba(0,0,0,0.5);
  animation: e1-frame 6s ease-in-out infinite alternate;
}
.scn-emily-refuses-clandestine-marriage .moonlight-pane {
  position: absolute; top: 15%; left: 15%; width: 38%; height: 46%;
  background: linear-gradient(180deg, rgba(200,220,255,0.12) 0%, rgba(100,140,200,0.06) 100%);
  filter: blur(4px);
  animation: e1-moon 8s ease-in-out infinite alternate;
}
.scn-emily-refuses-clandestine-marriage .table {
  position: absolute; bottom: 26%; left: 20%; width: 60%; height: 8%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2212 100%);
  border-radius: 6px;
  box-shadow: 0 8px 20px rgba(0,0,0,0.6);
  transform-origin: bottom center;
  animation: e1-table 14s ease-in-out infinite;
}
.scn-emily-refuses-clandestine-marriage .candle-glow {
  position: absolute; bottom: 34%; left: 42%; width: 12px; height: 18px;
  background: radial-gradient(circle, #ffd080 0%, #b06030 70%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 40px 12px #b06030, 0 0 80px 24px rgba(180,96,48,0.3);
  animation: e1-candle 3s ease-in-out infinite alternate;
}
.scn-emily-refuses-clandestine-marriage .emily-figure {
  position: absolute; bottom: 28%; left: 48%; width: 20px; height: 48px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: e1-emily 5s ease-in-out infinite;
}
.scn-emily-refuses-clandestine-marriage .valancourt-shadow {
  position: absolute; bottom: 28%; left: 30%; width: 16px; height: 44px;
  background: linear-gradient(180deg, #12121e 0%, #06060e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  opacity: 0.7;
  filter: blur(2px);
  animation: e1-other 7s ease-in-out infinite;
}
.scn-emily-refuses-clandestine-marriage .drapes {
  position: absolute; top: 8%; left: 8%; width: 52%; height: 60%;
  background: linear-gradient(180deg, #3e2a1a 0%, #2a1a0e 100%);
  clip-path: polygon(0% 0%, 100% 0%, 90% 100%, 10% 100%);
  opacity: 0.6;
  animation: e1-drape 20s ease-in-out infinite alternate;
}

@keyframes e1-wall { 0% { opacity: 0.9 } 50% { opacity: 0.7 } 100% { opacity: 0.85 } }
@keyframes e1-frame { 0% { transform: scale(1) } 50% { transform: scale(1.02) } 100% { transform: scale(0.98) } }
@keyframes e1-moon { 0% { opacity: 0.15 } 50% { opacity: 0.3 } 100% { opacity: 0.1 } }
@keyframes e1-table { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes e1-candle { 0% { box-shadow: 0 0 30px 8px #b06030; opacity: 0.8 } 50% { box-shadow: 0 0 50px 16px #ffa040; opacity: 1 } 100% { box-shadow: 0 0 35px 10px #b06030; opacity: 0.85 } }
@keyframes e1-emily { 0% { transform: translateX(0) rotate(-1deg) } 33% { transform: translateX(2px) rotate(0.5deg) } 66% { transform: translateX(-1px) rotate(-0.5deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes e1-other { 0% { transform: translateX(0) scale(1) } 50% { transform: translateX(3px) scale(0.98) } 100% { transform: translateX(-2px) scale(1.02) } }
@keyframes e1-drape { 0% { transform: translateY(0) } 50% { transform: translateY(4px) } 100% { transform: translateY(-3px) } }

/* emily-plans-convent-asylum */
.scn-emily-plans-convent-asylum {
  background:
    linear-gradient(180deg, #f5f0e8 0%, #e8e0d0 40%, #d0c4b0 100%),
    radial-gradient(ellipse at 50% 30%, #fffff0 0%, transparent 70%);
}
.scn-emily-plans-convent-asylum .cell-wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(90deg, #e0d8c8 0%, #d8ccb8 50%, #e0d8c8 100%);
  animation: e2-wall 20s ease-in-out infinite alternate;
}
.scn-emily-plans-convent-asylum .cell-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #b0a898 0%, #8a7e6e 100%);
  border-radius: 8% 8% 0 0 / 12% 12% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.15);
}
.scn-emily-plans-convent-asylum .crucifix {
  position: absolute; top: 18%; left: 50%; width: 6px; height: 36px;
  background: #4a3a2a;
  border-radius: 2px;
  transform: translateX(-50%);
  box-shadow: 0 0 0 0.5px #6a4a2a;
}
.scn-emily-plans-convent-asylum .crucifix::before {
  content: ''; position: absolute; top: 6px; left: -8px; width: 22px; height: 4px;
  background: #4a3a2a; border-radius: 2px;
}
.scn-emily-plans-convent-asylum .prayer-desk {
  position: absolute; bottom: 28%; left: 50%; width: 40px; height: 16px;
  background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%);
  border-radius: 4px;
  transform: translateX(-50%);
  box-shadow: 0 4px 10px rgba(0,0,0,0.2);
  animation: e2-desk 30s ease-in-out infinite;
}
.scn-emily-plans-convent-asylum .kneeler {
  position: absolute; bottom: 28%; left: 50%; width: 30px; height: 12px;
  background: #6a5a4a;
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  transform: translateX(-50%) translateY(-10px);
}
.scn-emily-plans-convent-asylum .candle-light {
  position: absolute; top: 12%; right: 18%; width: 8px; height: 14px;
  background: radial-gradient(circle, #ffdd99 0%, #c08050 70%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 30px 8px #c08050, 0 0 60px 16px rgba(192,128,80,0.4);
  animation: e2-candle 4s ease-in-out infinite alternate;
}
.scn-emily-plans-convent-asylum .habit-shadow {
  position: absolute; bottom: 20%; left: 50%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 30% 30% 40% 40% / 50% 50% 40% 40%;
  transform: translateX(-50%);
  opacity: 0.4;
  filter: blur(3px);
  animation: e2-habit 8s ease-in-out infinite alternate;
}
.scn-emily-plans-convent-asylum .peaceful-dust {
  position: absolute; top: 10%; left: 30%; width: 60px; height: 60px;
  background: radial-gradient(circle, rgba(255,255,240,0.08) 0%, transparent 70%);
  filter: blur(8px);
  animation: e2-dust 25s linear infinite;
}

@keyframes e2-wall { 0% { opacity: 0.95 } 50% { opacity: 1 } 100% { opacity: 0.9 } }
@keyframes e2-desk { 0%,100% { transform: translateX(-50%) } 50% { transform: translateX(-50%) translateY(-1px) } }
@keyframes e2-candle { 0% { box-shadow: 0 0 20px 4px #c08050; opacity: 0.75 } 50% { box-shadow: 0 0 40px 12px #e0a060; opacity: 1 } 100% { box-shadow: 0 0 25px 6px #c08050; opacity: 0.85 } }
@keyframes e2-habit { 0% { transform: translateX(-50%) scale(1) } 50% { transform: translateX(-50%) scale(1.02) translateY(2px) } 100% { transform: translateX(-50%) scale(0.98) translateY(-1px) } }
@keyframes e2-dust { 0% { transform: translate(0,0) scale(1) } 50% { transform: translate(10px,-5px) scale(1.1) } 100% { transform: translate(-5px,5px) scale(0.9) } }

/* emily-doubts-montoni-letters */
.scn-emily-doubts-montoni-letters {
  background:
    linear-gradient(180deg, #1e1e28 0%, #14141c 40%, #0a0a10 100%),
    radial-gradient(ellipse at 40% 50%, #2a2a3e 0%, transparent 70%);
}
.scn-emily-doubts-montoni-letters .study-wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(90deg, #1a1a24 0%, #22222e 50%, #1a1a24 100%);
  animation: e3-wall 15s ease-in-out infinite alternate;
}
.scn-emily-doubts-montoni-letters .desk-top {
  position: absolute; bottom: 20%; left: 10%; right: 10%; height: 10%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0e 100%);
  border-radius: 4px;
  box-shadow: 0 6px 20px rgba(0,0,0,0.7);
  transform-origin: bottom center;
  animation: e3-desk 10s ease-in-out infinite;
}
.scn-emily-doubts-montoni-letters .paper-pile {
  position: absolute; bottom: 28%; left: 45%; width: 30px; height: 8px;
  background: #dccc8c;
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  transform: rotate(-2deg);
  animation: e3-paper 6s ease-in-out infinite alternate;
}
.scn-emily-doubts-montoni-letters .inkwell {
  position: absolute; bottom: 28%; left: 30%; width: 10px; height: 12px;
  background: #1a1a1a;
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
}
.scn-emily-doubts-montoni-letters .letter-seal {
  position: absolute; bottom: 28%; left: 55%; width: 14px; height: 10px;
  background: #a04030; /* desaturated red */
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  box-shadow: 0 0 4px rgba(160,64,48,0.5);
  animation: e3-seal 8s ease-in-out infinite alternate;
}
.scn-emily-doubts-montoni-letters .lamp-light {
  position: absolute; top: 10%; left: 20%; width: 40px; height: 40px;
  background: radial-gradient(circle, #ffc080 0%, #b07040 60%, transparent 100%);
  border-radius: 50%;
  filter: blur(6px);
  animation: e3-lamp 5s ease-in-out infinite alternate;
}
.scn-emily-doubts-montoni-letters .emily-hand {
  position: absolute; bottom: 22%; left: 42%; width: 12px; height: 20px;
  background: linear-gradient(180deg, #d0b090 0%, #b09070 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform: rotate(10deg);
  animation: e3-hand 4s ease-in-out infinite;
}
.scn-emily-doubts-montoni-letters .candle-drip {
  position: absolute; bottom: 28%; left: 20%; width: 4px; height: 12px;
  background: #e0c080;
  border-radius: 2px;
  opacity: 0.6;
  animation: e3-drip 7s ease-in-out infinite;
}

@keyframes e3-wall { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes e3-desk { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }
@keyframes e3-paper { 0% { transform: rotate(-2deg) translateY(0) } 50% { transform: rotate(0deg) translateY(-2px) } 100% { transform: rotate(-3deg) translateY(0) } }
@keyframes e3-seal { 0% { transform: scale(1) } 50% { transform: scale(1.05) } 100% { transform: scale(0.95) } }
@keyframes e3-lamp { 0% { opacity: 0.7; transform: scale(1) } 50% { opacity: 1; transform: scale(1.1) } 100% { opacity: 0.8; transform: scale(0.9) } }
@keyframes e3-hand { 0% { transform: rotate(10deg) translateY(0) } 50% { transform: rotate(8deg) translateY(2px) } 100% { transform: rotate(12deg) translateY(0) } }
@keyframes e3-drip { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(2px) scaleY(1.2) } 100% { transform: translateY(0) scaleY(0.8) } }

/* madame-montoni-conversation */
.scn-madame-montoni-conversation {
  background:
    linear-gradient(180deg, #2a202e 0%, #1e1420 40%, #140a14 100%),
    radial-gradient(ellipse at 60% 50%, #4a3040 0%, transparent 70%);
}
.scn-madame-montoni-conversation .room-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(90deg, #2a1a2e 0%, #3a203a 50%, #2a1a2e 100%);
  animation: e4-wall 14s ease-in-out infinite alternate;
}
.scn-madame-montoni-conversation .hearth-glow {
  position: absolute; bottom: 25%; left: 10%; width: 30%; height: 20%;
  background: radial-gradient(ellipse at 50% 100%, #ff8030 0%, #b04010 50%, transparent 80%);
  filter: blur(12px);
  animation: e4-hearth 4s ease-in-out infinite alternate;
}
.scn-madame-montoni-conversation .armchair {
  position: absolute; bottom: 15%; left: 15%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #4a2a2a 0%, #2a1a1a 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  box-shadow: 4px 4px 12px rgba(0,0,0,0.6);
  animation: e4-chair 20s ease-in-out infinite;
}
.scn-madame-montoni-conversation .madame-figure {
  position: absolute; bottom: 20%; left: 22%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: e4-madame 6s ease-in-out infinite;
}
.scn-madame-montoni-conversation .emily-figure {
  position: absolute; bottom: 20%; left: 48%; width: 18px; height: 48px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: e4-emily 7s ease-in-out infinite;
}
.scn-madame-montoni-conversation .candelabra {
  position: absolute; bottom: 28%; left: 38%; width: 8px; height: 24px;
  background: #a08060;
  border-radius: 2px;
  box-shadow: 0 0 0 2px #c0a080;
}
.scn-madame-montoni-conversation .candelabra::before {
  content: ''; position: absolute; top: -4px; left: -4px; width: 16px; height: 4px;
  background: #a08060; border-radius: 2px;
}
.scn-madame-montoni-conversation .flame-flicker {
  position: absolute; bottom: 30%; left: 37.5%; width: 10px; height: 14px;
  background: radial-gradient(circle, #ffd080 0%, #c06020 70%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 30px 8px #c06020, 0 0 60px 16px rgba(192,96,32,0.3);
  animation: e4-flame 3s ease-in-out infinite alternate;
}

@keyframes e4-wall { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes e4-hearth { 0% { opacity: 0.6; transform: scale(1) } 50% { opacity: 1; transform: scale(1.1) } 100% { opacity: 0.7; transform: scale(0.9) } }
@keyframes e4-chair { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes e4-madame { 0% { transform: translateX(0) rotate(-2deg) } 33% { transform: translateX(2px) rotate(1deg) } 66% { transform: translateX(-1px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes e4-emily { 0% { transform: translateX(0) scale(1) } 50% { transform: translateX(-2px) scale(0.98) } 100% { transform: translateX(1px) scale(1.02) } }
@keyframes e4-flame { 0% { box-shadow: 0 0 20px 4px #c06020; opacity: 0.8 } 50% { box-shadow: 0 0 40px 12px #ffa040; opacity: 1 } 100% { box-shadow: 0 0 25px 6px #c06020; opacity: 0.85 } }

.scn-self-blame {
  background: linear-gradient(180deg, #3d2a1a 0%, #5c3a20 40%, #2a1a10 100%), radial-gradient(ellipse at 60% 80%, #8a5a30 0%, transparent 70%);
}
.scn-self-blame .sky-dusk {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #b07840 0%, #6a3a20 50%, #1a0a00 100%);
  animation: si-sky 10s ease-in-out infinite alternate;
}
.scn-self-blame .hills-sil {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 18%;
  background: linear-gradient(180deg, #1a1a0a 0%, #0a0a00 100%);
  border-radius: 40% 60% 0 0 / 60% 80% 0 0;
  animation: si-hills 15s ease-in-out infinite alternate;
}
.scn-self-blame .window-lit {
  position: absolute; bottom: 38%; left: 30%; width: 60px; height: 70px;
  background: radial-gradient(circle at 50% 50%, #f0b060 0%, #c08030 60%, #4a2a10 100%);
  border-radius: 4px; box-shadow: 0 0 30px 10px #c08030, 0 0 60px 20px rgba(192,128,48,0.3);
  animation: si-glow 4s ease-in-out infinite alternate;
}
.scn-self-blame .figure-bent {
  position: absolute; bottom: 32%; left: 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: si-bent 6s ease-in-out infinite;
}
.scn-self-blame .desk-db {
  position: absolute; bottom: 28%; left: 35%; width: 80px; height: 6px;
  background: linear-gradient(90deg, #3a2a1a 0%, #2a1a0a 50%, #3a2a1a 100%);
  border-radius: 2px;
  animation: si-desk 20s linear infinite;
}
.scn-self-blame .candle-faint {
  position: absolute; bottom: 34%; left: 38%; width: 4px; height: 12px;
  background: linear-gradient(0deg, #4a2a10 0%, #c0a060 50%, #f0e0c0 100%);
  border-radius: 2px 2px 0 0;
  box-shadow: 0 0 16px 6px rgba(200,160,80,0.6);
  animation: si-candle 3s ease-in-out infinite alternate;
}
@keyframes si-sky { 0% { opacity:0.7; } 50% { opacity:0.9; } 100% { opacity:0.6; } }
@keyframes si-hills { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-2px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes si-glow { 0% { box-shadow: 0 0 20px 5px #c08030, 0 0 40px 10px rgba(192,128,48,0.2); } 50% { box-shadow: 0 0 40px 15px #f0b060, 0 0 80px 30px rgba(240,176,96,0.4); } 100% { box-shadow: 0 0 25px 8px #c08030, 0 0 50px 15px rgba(192,128,48,0.25); } }
@keyframes si-bent { 0% { transform: rotate(2deg) translateX(0); } 25% { transform: rotate(-1deg) translateX(-3px); } 50% { transform: rotate(0) translateX(2px); } 75% { transform: rotate(3deg) translateX(-1px); } 100% { transform: rotate(2deg) translateX(0); } }
@keyframes si-desk { 0% { opacity:0.8; } 50% { opacity:0.9; } 100% { opacity:0.8; } }
@keyframes si-candle { 0% { height:12px; opacity:0.7; } 50% { height:14px; opacity:1; } 100% { height:11px; opacity:0.8; } }

.scn-valancourt-in-paris {
  background: linear-gradient(180deg, #0f1120 0%, #1a1a30 40%, #2a2030 100%), radial-gradient(ellipse at 50% 100%, #2a2030 0%, transparent 60%);
}
.scn-valancourt-in-paris .night-sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #151830 0%, #0a0c18 100%);
  animation: vp-sky 20s ease-in-out infinite alternate;
}
.scn-valancourt-in-paris .street-bldg {
  position: absolute; bottom: 30%; left: 5%; width: 35%; height: 45%;
  background: linear-gradient(180deg, #2a2830 0%, #1a1820 100%);
  border-radius: 4% 4% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,0.6);
  animation: vp-bldg 25s linear infinite;
}
.scn-valancourt-in-paris .lamp-glow {
  position: absolute; bottom: 40%; left: 35%; width: 12px; height: 20px;
  background: radial-gradient(circle at 50% 30%, #f0d080 0%, #d0a050 60%, #604020 100%);
  border-radius: 50%; box-shadow: 0 0 60px 20px #f0d080, 0 0 120px 40px rgba(240,208,128,0.3);
  animation: vp-lamp 3s ease-in-out infinite alternate;
}
.scn-valancourt-in-paris .figure-walk {
  position: absolute; bottom: 28%; left: 20%; width: 16px; height: 32px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: vp-walk 5s ease-in-out infinite;
}
.scn-valancourt-in-paris .cobbles {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 15%;
  background: repeating-linear-gradient(90deg, #2a2830 0%, #3a3840 2%, #2a2830 4%, #404050 6%);
  border-radius: 0; filter: blur(1px);
  animation: vp-cobble 30s linear infinite;
}
.scn-valancourt-in-paris .mist-soft {
  position: absolute; top: 40%; left: 20%; width: 70%; height: 30%;
  background: radial-gradient(ellipse at 50% 50%, rgba(200,180,160,0.15) 0%, transparent 100%);
  filter: blur(8px);
  animation: vp-mist 40s ease-in-out infinite alternate;
}
@keyframes vp-sky { 0% { opacity:0.7; } 50% { opacity:0.9; } 100% { opacity:0.6; } }
@keyframes vp-bldg { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.01); } 100% { transform: scaleX(1); } }
@keyframes vp-lamp { 0% { box-shadow: 0 0 30px 10px #f0d080, 0 0 60px 20px rgba(240,208,128,0.2); opacity:0.8; } 50% { box-shadow: 0 0 80px 30px #f0d080, 0 0 140px 50px rgba(240,208,128,0.5); opacity:1; } 100% { box-shadow: 0 0 40px 15px #f0d080, 0 0 80px 30px rgba(240,208,128,0.25); opacity:0.85; } }
@keyframes vp-walk { 0% { transform: translateX(0) rotate(-1deg); } 25% { transform: translateX(8px) translateY(-1px) rotate(1deg); } 50% { transform: translateX(16px) translateY(0) rotate(-0.5deg); } 75% { transform: translateX(24px) translateY(-2px) rotate(1.5deg); } 100% { transform: translateX(32px) translateY(0) rotate(0); } }
@keyframes vp-cobble { 0% { background-position: 0% 0%; } 100% { background-position: 200% 0%; } }
@keyframes vp-mist { 0% { transform: translateX(-10px) scale(0.95); opacity:0.3; } 100% { transform: translateX(10px) scale(1.05); opacity:0.5; } }

.scn-bad-companions {
  background: linear-gradient(180deg, #0a0a0f 0%, #1a1a25 30%, #0f0f1a 100%), radial-gradient(ellipse at 70% 60%, #3a2a20 0%, transparent 70%);
}
.scn-bad-companions .room-dark {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #151520 0%, #0a0a10 100%);
  animation: bc-room 30s ease-in-out infinite alternate;
}
.scn-bad-companions .table-circle {
  position: absolute; bottom: 20%; left: 50%; width: 140px; height: 100px;
  transform: translateX(-50%) perspective(200px) rotateX(25deg);
  background: radial-gradient(ellipse at 50% 50%, #3a3020 0%, #1a1510 100%);
  border-radius: 50%;
  animation: bc-table 15s linear infinite;
}
.scn-bad-companions .lamp-low {
  position: absolute; bottom: 30%; left: 50%; width: 16px; height: 24px;
  transform: translateX(-50%);
  background: radial-gradient(circle at 50% 60%, #e0c080 0%, #a08040 60%, #402820 100%);
  border-radius: 50%; box-shadow: 0 0 40px 10px #c0a060, 0 0 80px 20px rgba(192,160,96,0.3);
  animation: bc-lamp 2.5s ease-in-out infinite alternate;
}
.scn-bad-companions .chips-spread {
  position: absolute; bottom: 24%; left: 50%; width: 40px; height: 8px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #a09080 0%, #706050 100%);
  border-radius: 50%;
  box-shadow: 0 0 0 0 transparent;
  animation: bc-chips 4s ease-in-out infinite;
}
.scn-bad-companions .silhouette-a {
  position: absolute; bottom: 18%; left: 30%; width: 20px; height: 38px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: bc-fig-a 6s ease-in-out infinite;
}
.scn-bad-companions .silhouette-b {
  position: absolute; bottom: 18%; left: 62%; width: 20px; height: 38px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: bc-fig-b 7s ease-in-out infinite;
}
.scn-bad-companions .glass-diamond {
  position: absolute; bottom: 22%; left: 48%; width: 8px; height: 12px;
  background: linear-gradient(135deg, #908070 0%, #605040 100%);
  transform: rotate(45deg);
  animation: bc-glass 3s ease-in-out infinite alternate;
}
@keyframes bc-room { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes bc-table { 0% { box-shadow: 0 5px 15px rgba(0,0,0,0.5); } 50% { box-shadow: 0 8px 20px rgba(0,0,0,0.7); } 100% { box-shadow: 0 5px 15px rgba(0,0,0,0.5); } }
@keyframes bc-lamp { 0% { box-shadow: 0 0 20px 5px #c0a060, 0 0 40px 10px rgba(192,160,96,0.2); opacity:0.9; } 50% { box-shadow: 0 0 60px 20px #f0d090, 0 0 120px 40px rgba(240,208,144,0.5); opacity:1; } 100% { box-shadow: 0 0 30px 10px #c0a060, 0 0 60px 20px rgba(192,160,96,0.25); opacity:0.85; } }
@keyframes bc-chips { 0% { transform: translateX(-50%) rotate(0deg) scale(1); } 50% { transform: translateX(-50%) rotate(15deg) scale(1.02); } 100% { transform: translateX(-50%) rotate(0deg) scale(1); } }
@keyframes bc-fig-a { 0%,100% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-3px) rotate(2deg); } }
@keyframes bc-fig-b { 0%,100% { transform: translateY(0) rotate(1deg); } 50% { transform: translateY(-2px) rotate(-2deg); } }
@keyframes bc-glass { 0% { opacity:0.4; transform: rotate(45deg) scale(1); } 50% { opacity:0.8; transform: rotate(50deg) scale(1.1); } 100% { opacity:0.5; transform: rotate(40deg) scale(0.9); } }

.scn-escape-into-solitude {
  background: linear-gradient(180deg, #1a1510 0%, #2a2018 40%, #0f0a08 100%), radial-gradient(ellipse at 50% 30%, #3a2a1a 0%, transparent 70%);
}
.scn-escape-into-solitude .wall-dim {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #1e1a15 0%, #14100a 100%);
  animation: es-wall 30s ease-in-out infinite alternate;
}
.scn-escape-into-solitude .window-pane {
  position: absolute; top: 20%; left: 10%; width: 80px; height: 100px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border: 6px solid #2a1a0a;
  border-radius: 4px;
  animation: es-window 8s ease-in-out infinite alternate;
}
.scn-escape-into-solitude .desk-old {
  position: absolute; bottom: 20%; left: 15%; width: 120px; height: 8px;
  background: linear-gradient(90deg, #3a2a1a 0%, #2a1a0a 50%, #3a2a1a 100%);
  border-radius: 2px;
  animation: es-desk 25s linear infinite;
}
.scn-escape-into-solitude .figure-slump {
  position: absolute; bottom: 18%; left: 30%; width: 22px; height: 40px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: es-slump 7s ease-in-out infinite;
}
.scn-escape-into-solitude .chair-wood {
  position: absolute; bottom: 14%; left: 28%; width: 26px; height: 12px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 2px;
  animation: es-chair 15s linear infinite;
}
.scn-escape-into-solitude .dust-mote {
  position: absolute; top: 30%; left: 40%; width: 4px; height: 4px;
  background: rgba(200,180,160,0.6);
  border-radius: 50%;
  filter: blur(2px);
  animation: es-dust 12s ease-in-out infinite;
}
.scn-escape-into-solitude .curtain-heavy {
  position: absolute; top: 18%; left: 8%; width: 10px; height: 110px;
  background: linear-gradient(180deg, #2a2018 0%, #1a1410 100%);
  border-radius: 2px;
  animation: es-curtain 9s ease-in-out infinite alternate;
}
@keyframes es-wall { 0% { opacity:0.8; } 50% { opacity:0.95; } 100% { opacity:0.7; } }
@keyframes es-window { 0% { box-shadow: inset 0 0 10px 2px rgba(100,100,120,0.2); } 50% { box-shadow: inset 0 0 20px 5px rgba(120,120,150,0.4); } 100% { box-shadow: inset 0 0 10px 2px rgba(100,100,120,0.2); } }
@keyframes es-desk { 0% { opacity:0.7; } 50% { opacity:0.85; } 100% { opacity:0.7; } }
@keyframes es-slump { 0%,100% { transform: rotate(2deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(2px); } }
@keyframes es-chair { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.01); } 100% { transform: scaleX(1); } }
@keyframes es-dust { 0% { transform: translateY(0) translateX(0) scale(0.8); opacity:0.5; } 50% { transform: translateY(-20px) translateX(10px) scale(1.2); opacity:0.9; } 100% { transform: translateY(0) translateX(0) scale(0.8); opacity:0.5; } }
@keyframes es-curtain { 0% { transform: translateX(0); } 50% { transform: translateX(4px); } 100% { transform: translateX(-2px); } }

.scn-cliffs-cedars-approach {
  background: linear-gradient(180deg, #4a3a2a 0%, #6a4a3a 30%, #8a6a4a 60%, #5a4a3a 100%), radial-gradient(ellipse at 80% 0%, #d0a060 0%, transparent 60%);
}
.scn-cliffs-cedars-approach .sky {
  position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #a07050 0%, #604030 60%, #30201a 100%);
  animation: s1-sky 15s ease-in-out infinite alternate;
}
.scn-cliffs-cedars-approach .cliff-back {
  position: absolute; bottom: 30%; left: 0; right: 30%; height: 55%;
  background: linear-gradient(135deg, #3a2a1a 0%, #1a0e08 100%);
  border-radius: 20% 40% 0 0 / 30% 50% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.7);
  animation: s1-cliff-bg 20s ease-in-out infinite;
}
.scn-cliffs-cedars-approach .cliff-front {
  position: absolute; bottom: 25%; right: 0; left: 50%; height: 60%;
  background: linear-gradient(225deg, #4a3220 0%, #2a1a0e 100%);
  border-radius: 60% 10% 0 0 / 70% 20% 0 0;
  box-shadow: inset 0 4px 12px rgba(0,0,0,0.8);
  animation: s1-cliff-fr 25s ease-in-out infinite;
}
.scn-cliffs-cedars-approach .cedars {
  position: absolute; bottom: 28%; left: 15%; width: 18%; height: 35%;
  background: linear-gradient(180deg, #0a1a0a 0%, #1a2a0a 50%, #0e1a06 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 20% 20%;
  box-shadow: 0 12px 24px rgba(0,0,0,0.6);
  animation: s1-cedar 8s ease-in-out infinite;
}
.scn-cliffs-cedars-approach .grass {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #3a4a2a 0%, #1a2a0e 100%);
  border-radius: 30% 30% 0 0;
  animation: s1-grass 5s ease-in-out infinite alternate;
}
.scn-cliffs-cedars-approach .path {
  position: absolute; bottom: 5%; left: 35%; width: 30%; height: 12%;
  background: linear-gradient(180deg, #6a5a3a 0%, #4a3a1a 100%);
  border-radius: 40% 40% 20% 20%;
  transform: skewX(-10deg);
  box-shadow: inset 0 2px 6px rgba(0,0,0,0.4);
  animation: s1-path 8s ease-in-out infinite;
}
.scn-cliffs-cedars-approach .mule {
  position: absolute; bottom: 8%; left: 42%; width: 8%; height: 14%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1208 100%);
  border-radius: 30% 50% 20% 30% / 60% 40% 30% 40%;
  transform: rotate(-5deg);
  animation: s1-mule 6s ease-in-out infinite;
}
.scn-cliffs-cedars-approach .figure {
  position: absolute; bottom: 8%; left: 48%; width: 5%; height: 18%;
  background: linear-gradient(180deg, #1a1208 0%, #0e0a04 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  animation: s1-figure 7s ease-in-out infinite;
}
@keyframes s1-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.6; } }
@keyframes s1-cliff-bg { 0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.02) translateY(-4px); } 100% { transform: scaleY(1) translateY(0); } }
@keyframes s1-cliff-fr { 0% { transform: scaleX(1) translateY(0); } 50% { transform: scaleX(1.01) translateY(-2px); } 100% { transform: scaleX(1) translateY(0); } }
@keyframes s1-cedar { 0% { transform: rotate(-2deg) translateX(0); } 50% { transform: rotate(2deg) translateX(2px); } 100% { transform: rotate(-2deg) translateX(0); } }
@keyframes s1-grass { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-2px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes s1-path { 0% { transform: skewX(-10deg) translateX(0); } 50% { transform: skewX(-8deg) translateX(3px); } 100% { transform: skewX(-10deg) translateX(0); } }
@keyframes s1-mule { 0% { transform: rotate(-5deg) translateX(0); } 25% { transform: rotate(-4deg) translateX(2px); } 50% { transform: rotate(-6deg) translateX(4px); } 75% { transform: rotate(-4deg) translateX(2px); } 100% { transform: rotate(-5deg) translateX(0); } }
@keyframes s1-figure { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-1px) rotate(1deg); } 60% { transform: translateY(1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }

.scn-sunset-mountain-gloom {
  background: linear-gradient(180deg, #2a1a3a 0%, #3a2a4a 30%, #4a3a5a 60%, #3a2a3a 100%), radial-gradient(ellipse at 50% 100%, #5a4a6a 0%, transparent 70%);
}
.scn-sunset-mountain-gloom .sky {
  position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #5a4a6a 0%, #7a5a7a 30%, #a07080 60%, #604050 100%);
  animation: s2-sky 20s ease-in-out infinite alternate;
}
.scn-sunset-mountain-gloom .mountain-far {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #3a2a3a 0%, #2a1a2a 100%);
  border-radius: 40% 60% 0 0 / 50% 60% 0 0;
  box-shadow: inset 0 4px 12px rgba(0,0,0,0.5);
  animation: s2-mtn-far 25s ease-in-out infinite;
}
.scn-sunset-mountain-gloom .mountain-mid {
  position: absolute; bottom: 20%; left: 10%; right: 20%; height: 35%;
  background: linear-gradient(180deg, #2a1a2a 0%, #1a0e1a 100%);
  border-radius: 30% 40% 0 0 / 40% 50% 0 0;
  box-shadow: inset 0 6px 16px rgba(0,0,0,0.6);
  animation: s2-mtn-mid 30s ease-in-out infinite;
}
.scn-sunset-mountain-gloom .woods {
  position: absolute; bottom: 18%; left: 5%; right: 10%; height: 20%;
  background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: 0 8px 24px rgba(0,0,0,0.4);
  animation: s2-woods 12s ease-in-out infinite;
}
.scn-sunset-mountain-gloom .haze {
  position: absolute; inset: 0; background: linear-gradient(180deg, rgba(80,40,80,0.3) 0%, transparent 50%, rgba(40,20,40,0.2) 100%);
  pointer-events: none;
  animation: s2-haze 18s ease-in-out infinite alternate;
}
.scn-sunset-mountain-gloom .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0e 100%);
  border-radius: 30% 30% 0 0;
  animation: s2-ground 8s ease-in-out infinite;
}
.scn-sunset-mountain-gloom .figure-silhouette {
  position: absolute; bottom: 12%; left: 45%; width: 6%; height: 20%;
  background: linear-gradient(180deg, #1a0e1a 0%, #0a060a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  animation: s2-figure 10s ease-in-out infinite;
}
@keyframes s2-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.5; } }
@keyframes s2-mtn-far { 0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.01) translateY(-2px); } 100% { transform: scaleY(1) translateY(0); } }
@keyframes s2-mtn-mid { 0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.02) translateY(-4px); } 100% { transform: scaleY(1) translateY(0); } }
@keyframes s2-woods { 0% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(2px) scaleX(1.01); } 100% { transform: translateX(0) scaleX(1); } }
@keyframes s2-haze { 0% { opacity: 0.3; } 50% { opacity: 0.6; } 100% { opacity: 0.2; } }
@keyframes s2-ground { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes s2-figure { 0% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-1px) rotate(1deg); } 60% { transform: translateY(1px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }

.scn-conversation-assassins {
  background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 40%, #1a1a2a 100%), radial-gradient(ellipse at 50% 60%, #3a3a4a 0%, transparent 70%);
}
.scn-conversation-assassins .wall {
  position: absolute; inset: 0 0 20% 0; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.8);
  animation: s3-wall 15s ease-in-out infinite;
}
.scn-conversation-assassins .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  box-shadow: inset 0 4px 12px rgba(0,0,0,0.6);
  animation: s3-floor 10s ease-in-out infinite;
}
.scn-conversation-assassins .table {
  position: absolute; bottom: 8%; left: 30%; width: 40%; height: 12%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1208 100%);
  border-radius: 6px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.7);
  transform: perspective(300px) rotateX(10deg);
  animation: s3-table 12s ease-in-out infinite;
}
.scn-conversation-assassins .candle {
  position: absolute; bottom: 20%; left: 46%; width: 4%; height: 15%;
  background: linear-gradient(180deg, #c0a060 0%, #a08040 40%, #604020 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 20px 6px #d0a050, 0 0 40px 12px rgba(200,160,80,0.4);
  animation: s3-candle 3s ease-in-out infinite alternate;
}
.scn-conversation-assassins .figure-left {
  position: absolute; bottom: 8%; left: 20%; width: 8%; height: 25%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  animation: s3-fig-l 8s ease-in-out infinite;
}
.scn-conversation-assassins .figure-right {
  position: absolute; bottom: 8%; right: 20%; width: 8%; height: 26%;
  background: linear-gradient(180deg, #2a1a2a 0%, #1a0e1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  animation: s3-fig-r 8s ease-in-out infinite reverse;
}
@keyframes s3-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes s3-floor { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes s3-table { 0% { transform: perspective(300px) rotateX(10deg) translateY(0); } 50% { transform: perspective(300px) rotateX(8deg) translateY(-2px); } 100% { transform: perspective(300px) rotateX(10deg) translateY(0); } }
@keyframes s3-candle {
  0% { box-shadow: 0 0 15px 4px #d0a050, 0 0 30px 8px rgba(200,160,80,0.3); opacity: 0.9; }
  50% { box-shadow: 0 0 25px 8px #e0b060, 0 0 50px 16px rgba(224,176,96,0.5); opacity: 1; }
  100% { box-shadow: 0 0 18px 5px #d0a050, 0 0 35px 10px rgba(200,160,80,0.35); opacity: 0.85; }
}
@keyframes s3-fig-l { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(2px) rotate(2deg); } 60% { transform: translateX(-2px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes s3-fig-r { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(-2px) rotate(-2deg); } 60% { transform: translateX(2px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }

.scn-orsino-revenge-plot {
  background: linear-gradient(180deg, #0e0e1a 0%, #1a1a2a 50%, #0e0e1a 100%), radial-gradient(ellipse at 40% 30%, #2a2a3a 0%, transparent 70%);
}
.scn-orsino-revenge-plot .backdrop {
  position: absolute; inset: 0 0 15% 0; background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%);
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.9);
  animation: s4-backdrop 20s ease-in-out infinite;
}
.scn-orsino-revenge-plot .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #1a1a1a 0%, #0e0e0e 100%);
  box-shadow: inset 0 4px 12px rgba(0,0,0,0.7);
}
.scn-orsino-revenge-plot .table {
  position: absolute; bottom: 5%; left: 25%; width: 50%; height: 14%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0e04 100%);
  border-radius: 8px;
  box-shadow: 0 6px 20px rgba(0,0,0,0.8);
  transform: perspective(400px) rotateX(8deg);
  animation: s4-table 15s ease-in-out infinite;
}
.scn-orsino-revenge-plot .candle {
  position: absolute; bottom: 18%; left: 40%; width: 3%; height: 12%;
  background: linear-gradient(180deg, #b08040 0%, #906030 40%, #503010 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 16px 4px #c09050, 0 0 32px 10px rgba(192,144,80,0.4);
  animation: s4-candle 4s ease-in-out infinite alternate;
}
.scn-orsino-revenge-plot .figure-orsino {
  position: absolute; bottom: 6%; left: 20%; width: 9%; height: 28%;
  background: linear-gradient(180deg, #1a0e1a 0%, #0a060a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: s4-fig-o 10s ease-in-out infinite;
}
.scn-orsino-revenge-plot .figure-bertrand {
  position: absolute; bottom: 6%; right: 20%; width: 9%; height: 28%;
  background: linear-gradient(180deg, #1a1a0a 0%, #0e0e04 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: s4-fig-b 10s ease-in-out infinite;
}
.scn-orsino-revenge-plot .dagger {
  position: absolute; bottom: 12%; left: 42%; width: 2%; height: 10%;
  background: linear-gradient(180deg, #606060 0%, #303030 100%);
  border-radius: 10% 10% 40% 40% / 20% 20% 60% 60%;
  transform: rotate(25deg);
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  animation: s4-dagger 6s ease-in-out infinite;
}
@keyframes s4-backdrop { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.75; } }
@keyframes s4-table { 0% { transform: perspective(400px) rotateX(8deg) translateY(0); } 50% { transform: perspective(400px) rotateX(6deg) translateY(-2px); } 100% { transform: perspective(400px) rotateX(8deg) translateY(0); } }
@keyframes s4-candle {
  0% { box-shadow: 0 0 12px 3px #c09050, 0 0 24px 6px rgba(192,144,80,0.3); opacity: 0.85; }
  50% { box-shadow: 0 0 22px 6px #d0a060, 0 0 45px 14px rgba(208,160,96,0.5); opacity: 1; }
  100% { box-shadow: 0 0 15px 4px #c09050, 0 0 30px 8px rgba(192,144,80,0.35); opacity: 0.9; }
}
@keyframes s4-fig-o { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(2px) rotate(2deg); } 60% { transform: translateX(-2px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes s4-fig-b { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(-2px) rotate(-2deg); } 60% { transform: translateX(2px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes s4-dagger { 0% { transform: rotate(25deg) translateX(0); } 50% { transform: rotate(20deg) translateX(2px); } 100% { transform: rotate(25deg) translateX(0); } }

/* forced-to-dine */
.scn-forced-to-dine{background:linear-gradient(180deg,#2a1a0a 0%,#1a0e05 100%),radial-gradient(ellipse at 50% 30%,#4a2a10 0%,transparent 80%)}
.scn-forced-to-dine .ftd-bg{position:absolute;inset:0;z-index:1}
.scn-forced-to-dine .ftd-table{position:absolute;bottom:20%;left:10%;right:10%;height:5%;background:linear-gradient(180deg,#5a3a1a,#3a1a0a);border-radius:2px 2px 0 0}
.scn-forced-to-dine .ftd-plate{position:absolute;bottom:28%;left:40%;width:12%;height:5%;border-radius:50%;background:radial-gradient(circle,#c8a070,#8a6040);box-shadow:0 2px 6px rgba(0,0,0,.3)}
.scn-forced-to-dine .ftd-goblet{position:absolute;bottom:28%;left:55%;width:4%;height:15%;background:linear-gradient(180deg,#a08060,#604020);border-radius:4px 4px 2px 2px}
.scn-forced-to-dine .ftd-candle{position:absolute;bottom:28%;left:48%;width:3%;height:10%;background:linear-gradient(180deg,#e0c060,#8a6030);border-radius:2px;box-shadow:0 0 12px 4px rgba(224,192,96,.5);animation:ftd-glow 3s ease-in-out infinite alternate}
.scn-forced-to-dine .ftd-figure{position:absolute;bottom:22%;left:30%;width:15%;height:40%;background:linear-gradient(180deg,#1a1210,#0a0808);border-radius:50% 50% 40% 40% / 60% 60% 40% 40%;transform-origin:bottom center;animation:ftd-sway 5s ease-in-out infinite}
.scn-forced-to-dine .ftd-shadow{position:absolute;bottom:19%;left:28%;right:40%;height:1%;background:#0a0400;filter:blur(2px);animation:ftd-shad 5s ease-in-out infinite}
@keyframes ftd-glow{0%{box-shadow:0 0 8px 2px rgba(224,192,96,.4);opacity:.9}50%{box-shadow:0 0 20px 6px rgba(224,192,96,.8);opacity:1}100%{box-shadow:0 0 12px 4px rgba(224,192,96,.5);opacity:.95}}
@keyframes ftd-sway{0%{transform:rotate(-1deg)}50%{transform:rotate(1.5deg)}100%{transform:rotate(-1deg)}}
@keyframes ftd-shad{0%{transform:scaleX(1)}50%{transform:scaleX(1.1)}100%{transform:scaleX(1)}}

/* two-cavaliers */
.scn-two-cavaliers{background:linear-gradient(180deg,#4a2a0a 0%,#2a1200 100%),radial-gradient(ellipse at 50% 60%,#8a4a20 0%,transparent 70%)}
.scn-two-cavaliers .tc-bg{position:absolute;inset:0}
.scn-two-cavaliers .tc-left-figure,.scn-two-cavaliers .tc-right-figure{position:absolute;bottom:20%;width:12%;height:50%;background:linear-gradient(180deg,#0a0808,#2a1a10);border-radius:40% 40% 20% 20% / 60% 60% 30% 30%;transform-origin:bottom center;animation:tc-stand 6s ease-in-out infinite alternate}
.scn-two-cavaliers .tc-left-figure{left:25%}
.scn-two-cavaliers .tc-right-figure{right:25%;animation-delay:-3s}
.scn-two-cavaliers .tc-glare{position:absolute;bottom:30%;left:50%;width:20%;height:10%;background:radial-gradient(ellipse,rgba(255,200,100,.4),transparent);filter:blur(6px);animation:tc-glare 3s ease-in-out infinite alternate}
.scn-two-cavaliers .tc-shadow{position:absolute;bottom:18%;left:35%;right:35%;height:2%;background:#1a0a00;filter:blur(3px);animation:tc-shad 6s ease-in-out infinite}
@keyframes tc-stand{0%{transform:translateY(0) rotate(-1deg)}30%{transform:translateY(-2px) rotate(0.5deg)}70%{transform:translateY(-1px) rotate(-0.5deg)}100%{transform:translateY(0) rotate(0deg)}}
@keyframes tc-glare{0%{opacity:.5;transform:scale(1)}50%{opacity:1;transform:scale(1.1)}100%{opacity:.6;transform:scale(1)}}
@keyframes tc-shad{0%{transform:scaleX(1)}50%{transform:scaleX(1.1)}100%{transform:scaleX(1)}}

/* hall-architecture */
.scn-hall-architecture{background:linear-gradient(180deg,#2a2a3a 0%,#1a1a2a 50%,#0a0a1a 100%),radial-gradient(ellipse at 50% 80%,#3a3a5a 0%,transparent 60%)}
.scn-hall-architecture .ha-bg{position:absolute;inset:0}
.scn-hall-architecture .ha-window{position:absolute;top:15%;left:35%;width:30%;height:40%;background:radial-gradient(ellipse,#6a8aaa,#2a3a5a);border-radius:50% 50% 0 0 / 60% 60% 0 0;animation:ha-win 8s ease-in-out infinite alternate}
.scn-hall-architecture .ha-doors{position:absolute;bottom:10%;left:20%;width:20%;height:40%;background:linear-gradient(180deg,#4a3a2a,#2a1a0a);border-radius:4px 4px 0 0;transform-origin:left center;animation:ha-door 12s ease-in-out infinite}
.scn-hall-architecture .ha-pillar{position:absolute;bottom:0;left:15%;width:5%;height:60%;background:linear-gradient(90deg,#4a4a5a,#2a2a3a,#4a4a5a);border-radius:2px;animation:ha-pill 10s ease-in-out infinite alternate}
.scn-hall-architecture .ha-floor{position:absolute;bottom:0;left:0;right:0;height:15%;background:linear-gradient(180deg,#3a3a4a,#2a2a3a)}
.scn-hall-architecture .ha-figure{position:absolute;bottom:15%;left:50%;width:8%;height:30%;background:#1a1a2a;border-radius:50% 50% 40% 40% / 60% 60% 40% 40%;transform:translateX(-50%);animation:ha-fig 20s linear infinite}
@keyframes ha-win{0%{opacity:.7;transform:scale(1)}50%{opacity:1;transform:scale(1.03)}100%{opacity:.8;transform:scale(1)}}
@keyframes ha-door{0%{transform:skewY(0)}30%{transform:skewY(-2deg)}70%{transform:skewY(2deg)}100%{transform:skewY(0)}}
@keyframes ha-pill{0%{opacity:.8}50%{opacity:1}100%{opacity:.85}}
@keyframes ha-fig{0%{transform:translateX(-50%) scaleX(1)}25%{transform:translateX(-40%) scaleX(-1)}75%{transform:translateX(-60%) scaleX(1)}100%{transform:translateX(-50%) scaleX(1)}}

/* montoni-authority */
.scn-montoni-authority{background:linear-gradient(180deg,#1a0a0a 0%,#2a1a0a 50%,#1a0a00 100%),radial-gradient(ellipse at 50% 40%,#3a2a1a 0%,transparent 60%)}
.scn-montoni-authority .ma-bg{position:absolute;inset:0}
.scn-montoni-authority .ma-figure{position:absolute;bottom:10%;left:50%;width:14%;height:60%;background:linear-gradient(180deg,#0a0808,#1a1008);border-radius:30% 30% 20% 20% / 60% 60% 30% 30%;transform-origin:bottom center;animation:ma-pose 4s ease-in-out infinite alternate}
.scn-montoni-authority .ma-guest1,.scn-montoni-authority .ma-guest2{position:absolute;bottom:10%;width:10%;height:40%;background:#1a1008;border-radius:40% 40% 30% 30% / 50% 50% 30% 30%;animation:ma-guest 6s ease-in-out infinite alternate}
.scn-montoni-authority .ma-guest1{left:22%}
.scn-montoni-authority .ma-guest2{right:22%;animation-delay:-3s}
.scn-montoni-authority .ma-throne{position:absolute;bottom:38%;left:50%;width:12%;height:20%;transform:translateX(-50%);background:linear-gradient(180deg,#3a2010,#1a0a00);border-radius:10% 10% 0 0;box-shadow:0 4px 8px rgba(0,0,0,.5)}
.scn-montoni-authority .ma-candle{position:absolute;bottom:30%;left:48%;width:2%;height:8%;background:linear-gradient(180deg,#e0b060,#8a5020);border-radius:1px;box-shadow:0 0 10px 3px rgba(224,176,96,.5);animation:ma-flame 2s ease-in-out infinite alternate}
@keyframes ma-pose{0%{transform:translateX(-50%) rotate(-1deg)}30%{transform:translateX(-50%) translateY(-2px) rotate(0.5deg)}70%{transform:translateX(-50%) translateY(-1px) rotate(-0.5deg)}100%{transform:translateX(-50%) rotate(0deg)}}
@keyframes ma-guest{0%{transform:translateY(0) rotate(-1deg)}50%{transform:translateY(-1px) rotate(1deg)}100%{transform:translateY(0) rotate(-1deg)}}
@keyframes ma-flame{0%{opacity:.8;transform:scaleY(1)}50%{opacity:1;transform:scaleY(1.15)}100%{opacity:.85;transform:scaleY(1)}}

/* annette-guides - dim interior, nervous, double chamber */
.scn-annette-guides {
  background:
    linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 40%, #0e0e1e 100%),
    radial-gradient(ellipse at 50% 100%, #3a2a4a 0%, transparent 70%);
}
.scn-annette-guides .bg-wall {
  position: absolute;
  inset: 0 0 35% 0;
  background: linear-gradient(90deg, #2e2a3a 0%, #3a324a 30%, #2e2a3a 100%);
  animation: ag-wallpulse 12s ease-in-out infinite alternate;
}
.scn-annette-guides .bg-floor {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 35%;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1212 100%);
  box-shadow: inset 0 12px 24px rgba(0,0,0,0.6);
}
.scn-annette-guides .door-left {
  position: absolute;
  bottom: 30%; left: 25%;
  width: 80px; height: 120px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: -8px 0 12px rgba(0,0,0,0.5), inset 0 0 20px rgba(0,0,0,0.3);
  transform: perspective(600px) rotateY(10deg);
  animation: ag-door 20s ease-in-out infinite alternate;
}
.scn-annette-guides .door-right {
  position: absolute;
  bottom: 30%; right: 25%;
  width: 80px; height: 120px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 8px 0 12px rgba(0,0,0,0.5), inset 0 0 20px rgba(0,0,0,0.3);
  transform: perspective(600px) rotateY(-10deg);
  animation: ag-door 20s ease-in-out infinite alternate-reverse;
}
.scn-annette-guides .window-arch {
  position: absolute;
  top: 15%; left: 50%;
  width: 100px; height: 90px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 30%, #4a5a6a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 10% 10% / 80% 80% 20% 20%;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.8);
  animation: ag-window 8s ease-in-out infinite alternate;
}
.scn-annette-guides .candle-glow {
  position: absolute;
  bottom: 45%; left: 40%;
  width: 12px; height: 20px;
  background: radial-gradient(circle at 50% 20%, #ffd080 0%, #b07030 50%, transparent 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 40px 12px rgba(255,200,100,0.3), 0 0 80px 24px rgba(255,180,80,0.1);
  animation: ag-candle 2s ease-in-out infinite alternate;
}
.scn-annette-guides .figure-lead {
  position: absolute;
  bottom: 28%; left: 32%;
  width: 24px; height: 60px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ag-walk-lead 6s ease-in-out infinite;
}
.scn-annette-guides .figure-follow {
  position: absolute;
  bottom: 28%; left: 38%;
  width: 20px; height: 55px;
  background: linear-gradient(180deg, #2a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ag-walk-follow 6s ease-in-out infinite 1.5s;
}
@keyframes ag-wallpulse {
  0%, 100% { opacity: 0.9; }
  50% { opacity: 0.7; }
}
@keyframes ag-door {
  0% { transform: perspective(600px) rotateY(10deg); }
  100% { transform: perspective(600px) rotateY(0deg); }
}
@keyframes ag-window {
  0% { opacity: 0.2; }
  50% { opacity: 0.5; }
  100% { opacity: 0.3; }
}
@keyframes ag-candle {
  0% { opacity: 0.8; transform: scale(1) translateY(0); }
  50% { opacity: 1; transform: scale(1.05) translateY(-1px); }
  100% { opacity: 0.7; transform: scale(0.95) translateY(0); }
}
@keyframes ag-walk-lead {
  0% { transform: translateX(0) rotate(-1deg); }
  25% { transform: translateX(8px) translateY(-2px) rotate(1deg); }
  50% { transform: translateX(16px) translateY(0) rotate(-1deg); }
  75% { transform: translateX(24px) translateY(-1px) rotate(1deg); }
  100% { transform: translateX(32px) translateY(0) rotate(0); }
}
@keyframes ag-walk-follow {
  0% { transform: translateX(0) rotate(-1deg); }
  25% { transform: translateX(6px) translateY(-1px) rotate(1deg); }
  50% { transform: translateX(12px) translateY(0) rotate(-1deg); }
  75% { transform: translateX(18px) translateY(-1px) rotate(1deg); }
  100% { transform: translateX(24px) translateY(0) rotate(0); }
}

/* annette-fears - wild lonely place, fear, dim interior */
.scn-annette-fears {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #0e0e1e 50%, #050510 100%),
    radial-gradient(ellipse at 30% 100%, #2a1a3a 0%, transparent 80%);
}
.scn-annette-fears .bg-deep {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(10,10,20,0.6) 0%, transparent 40%, rgba(0,0,0,0.4) 100%);
  animation: af-deepbreath 10s ease-in-out infinite;
}
.scn-annette-fears .corridor-wall {
  position: absolute;
  inset: 20% 10% 30% 10%;
  background: linear-gradient(90deg, #2a2a3a 0%, #1a1a2a 50%, #2a2a3a 100%);
  border-radius: 8px;
  box-shadow: inset 0 0 40px rgba(0,0,0,0.9);
  animation: af-wallshiver 5s ease-in-out infinite alternate;
}
.scn-annette-fears .corridor-floor {
  position: absolute;
  bottom: 0; left: 5%; right: 5%;
  height: 30%;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0505 100%);
  box-shadow: inset 0 20px 30px rgba(0,0,0,0.8);
}
.scn-annette-fears .barred-window {
  position: absolute;
  top: 25%; left: 50%;
  width: 70px; height: 100px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a4a5a 0%, #1a2a3a 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.8);
}
.scn-annette-fears .barred-window::before,
.scn-annette-fears .barred-window::after {
  content: '';
  position: absolute;
  top: 0; bottom: 0;
  width: 4px;
  background: #2a2a3a;
  box-shadow: 0 0 8px rgba(0,0,0,0.5);
}
.scn-annette-fears .barred-window::before { left: 25%; animation: af-bar 4s ease-in-out infinite; }
.scn-annette-fears .barred-window::after { left: 65%; animation: af-bar 4s ease-in-out infinite 1s; }
.scn-annette-fears .shadow-figure {
  position: absolute;
  bottom: 28%; left: 15%;
  width: 30px; height: 70px;
  background: linear-gradient(180deg, #0a0a1a 0%, #000 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: af-shadow 8s ease-in-out infinite;
}
.scn-annette-fears .flicker-light {
  position: absolute;
  top: 35%; right: 20%;
  width: 10px; height: 16px;
  background: radial-gradient(circle at 50% 30%, #c07040 0%, #602010 50%, transparent 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 30px 10px rgba(180,80,40,0.3), 0 0 60px 20px rgba(180,80,40,0.1);
  animation: af-flicker 1.5s ease-in-out infinite alternate;
}
.scn-annette-fears .dust-mote {
  position: absolute;
  top: 40%; left: 30%;
  width: 4px; height: 4px;
  background: rgba(200,180,150,0.4);
  border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(200,180,150,0.2);
  animation: af-dust 20s linear infinite;
}
@keyframes af-deepbreath {
  0%, 100% { opacity: 0.5; }
  50% { opacity: 0.8; }
}
@keyframes af-wallshiver {
  0% { transform: translateX(0); }
  50% { transform: translateX(2px); }
  100% { transform: translateX(-2px); }
}
@keyframes af-bar {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(0.9); }
  100% { transform: scaleY(1); }
}
@keyframes af-shadow {
  0% { transform: translateX(0) scale(1); opacity: 0.4; }
  25% { transform: translateX(-5px) scale(0.95); opacity: 0.5; }
  50% { transform: translateX(10px) scale(1.02); opacity: 0.7; }
  75% { transform: translateX(-2px) scale(1); opacity: 0.5; }
  100% { transform: translateX(5px) scale(0.98); opacity: 0.4; }
}
@keyframes af-flicker {
  0% { opacity: 0.7; transform: scale(0.9); }
  25% { opacity: 0.9; transform: scale(1.05); }
  50% { opacity: 0.6; transform: scale(0.95); }
  75% { opacity: 1; transform: scale(1.1); }
  100% { opacity: 0.8; transform: scale(1); }
}
@keyframes af-dust {
  0% { transform: translate(0, 0) scale(0.8); opacity: 0; }
  10% { opacity: 0.6; }
  90% { opacity: 0.3; }
  100% { transform: translate(-40px, -60px) scale(1.2); opacity: 0; }
}

/* emily-jokes-fairies - calm, imagining lamps and fairies, dim warm */
.scn-emily-jokes-fairies {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 40%, #1a1a2e 100%),
    radial-gradient(ellipse at 50% 50%, #3a3a5a 0%, transparent 70%);
}
.scn-emily-jokes-fairies .bg-night {
  position: absolute;
  inset: 0 0 30% 0;
  background: linear-gradient(180deg, #0e0e1e 0%, rgba(20,20,40,0.8) 100%);
  animation: ej-night 15s ease-in-out infinite alternate;
}
.scn-emily-jokes-fairies .corridor-arch {
  position: absolute;
  top: 8%; left: 10%; right: 10%; bottom: 20%;
  background: linear-gradient(90deg, #2a2a3a 0%, #3a3a4a 50%, #2a2a3a 100%);
  border-radius: 50% 50% 10% 10% / 80% 80% 20% 20%;
  box-shadow: inset 0 0 60px rgba(0,0,0,0.6);
}
.scn-emily-jokes-fairies .floor-tiles {
  position: absolute;
  bottom: 0; left: 5%; right: 5%;
  height: 20%;
  background: repeating-conic-gradient(#2a1a1a 0% 25%, #3a2a2a 0% 50%) 0 0 / 40px 40px;
  opacity: 0.4;
  animation: ej-tiles 10s linear infinite;
}
.scn-emily-jokes-fairies .lamp-circle-1 {
  position: absolute;
  bottom: 30%; left: 20%;
  width: 30px; height: 30px;
  background: radial-gradient(circle, #ffd080 0%, #b08040 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 15px rgba(255,200,100,0.4), 0 0 80px 30px rgba(255,200,100,0.2);
  animation: ej-lamp1 6s ease-in-out infinite alternate;
}
.scn-emily-jokes-fairies .lamp-circle-2 {
  position: absolute;
  bottom: 30%; left: 50%;
  width: 30px; height: 30px;
  background: radial-gradient(circle, #ffd080 0%, #b08040 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 15px rgba(255,200,100,0.4), 0 0 80px 30px rgba(255,200,100,0.2);
  animation: ej-lamp2 6s ease-in-out infinite alternate 2s;
}
.scn-emily-jokes-fairies .lamp-circle-3 {
  position: absolute;
  bottom: 30%; right: 20%;
  width: 30px; height: 30px;
  background: radial-gradient(circle, #ffd080 0%, #b08040 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 15px rgba(255,200,100,0.4), 0 0 80px 30px rgba(255,200,100,0.2);
  animation: ej-lamp3 6s ease-in-out infinite alternate 4s;
}
.scn-emily-jokes-fairies .fairies-ring {
  position: absolute;
  bottom: 30%; left: 50%;
  width: 120px; height: 120px;
  transform: translateX(-50%);
  background: conic-gradient(from 0deg, #c0a070 0%, transparent 10%, #c0a070 20%, transparent 30%, #c0a070 40%, transparent 50%, #c0a070 60%, transparent 70%, #c0a070 80%, transparent 90%, #c0a070 100%);
  border-radius: 50%;
  opacity: 0.3;
  animation: ej-ringspin 20s linear infinite;
}
.scn-emily-jokes-fairies .glow-haze {
  position: absolute;
  inset: 15% 15% 25% 15%;
  background: radial-gradient(ellipse at 50% 60%, rgba(255,200,150,0.15) 0%, transparent 70%);
  filter: blur(20px);
  animation: ej-haze 8s ease-in-out infinite alternate;
}
@keyframes ej-night {
  0% { opacity: 0.7; }
  50% { opacity: 0.9; }
  100% { opacity: 0.8; }
}
@keyframes ej-tiles {
  0% { background-position: 0 0; }
  100% { background-position: 40px 0; }
}
@keyframes ej-lamp1 {
  0% { opacity: 0.6; transform: scale(0.9); box-shadow: 0 0 30px 10px rgba(255,200,100,0.3); }
  100% { opacity: 1; transform: scale(1.1); box-shadow: 0 0 50px 20px rgba(255,200,100,0.5); }
}
@keyframes ej-lamp2 {
  0% { opacity: 0.6; transform: scale(0.9); box-shadow: 0 0 30px 10px rgba(255,200,100,0.3); }
  100% { opacity: 1; transform: scale(1.1); box-shadow: 0 0 50px 20px rgba(255,200,100,0.5); }
}
@keyframes ej-lamp3 {
  0% { opacity: 0.6; transform: scale(0.9); box-shadow: 0 0 30px 10px rgba(255,200,100,0.3); }
  100% { opacity: 1; transform: scale(1.1); box-shadow: 0 0 50px 20px rgba(255,200,100,0.5); }
}
@keyframes ej-ringspin {
  0% { transform: translateX(-50%) rotate(0deg); }
  100% { transform: translateX(-50%) rotate(360deg); }
}
@keyframes ej-haze {
  0% { opacity: 0.3; filter: blur(20px); }
  50% { opacity: 0.6; filter: blur(30px); }
  100% { opacity: 0.4; filter: blur(15px); }
}

/* annette-half-believes - nervous, agreeing to go to corridor, dim interior */
.scn-annette-half-believes {
  background:
    linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 40%, #0e0e1e 100%),
    radial-gradient(ellipse at 70% 30%, #3a2a4a 0%, transparent 80%);
}
.scn-annette-half-believes .bg-hall {
  position: absolute;
  inset: 0 0 30% 0;
  background: linear-gradient(90deg, #1e1a2a 0%, #2a2a3a 50%, #1e1a2a 100%);
  animation: ah-hallpulse 14s ease-in-out infinite alternate;
}
.scn-annette-half-believes .wall-panel {
  position: absolute;
  top: 15%; left: 15%; right: 15%; bottom: 35%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 6px;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.7);
}
.scn-annette-half-believes .floor-stones {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 30%;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%);
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.8);
}
.scn-annette-half-believes .doorway {
  position: absolute;
  bottom: 25%; left: 50%;
  width: 100px; height: 140px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 40%, #3a3a4a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 10% 10% / 80% 80% 20% 20%;
  box-shadow: 0 0 30px rgba(0,0,0,0.9), inset 0 0 40px rgba(0,0,0,0.5);
}
.scn-annette-half-believes .figure-shadow {
  position: absolute;
  bottom: 26%; left: 35%;
  width: 22px; height: 65px;
  background: linear-gradient(180deg, #0a0a1a 0%, #000 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ah-figure 7s ease-in-out infinite;
}
.scn-annette-half-believes .lamp-single {
  position: absolute;
  top: 30%; right: 30%;
  width: 14px; height: 20px;
  background: radial-gradient(circle at 50% 40%, #f0c070 0%, #a06030 50%, transparent 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 30px 8px rgba(240,180,80,0.3), 0 0 60px 16px rgba(240,180,80,0.1);
  animation: ah-lamp 3s ease-in-out infinite alternate;
}
.scn-annette-half-believes .whisper-dust {
  position: absolute;
  top: 40%; left: 60%;
  width: 3px; height: 3px;
  background: rgba(200,200,200,0.3);
  border-radius: 50%;
  box-shadow: 0 0 4px 1px rgba(200,200,200,0.2);
  animation: ah-dust 25s linear infinite;
}
@keyframes ah-hallpulse {
  0%, 100% { opacity: 0.8; }
  50% { opacity: 0.6; }
}
@keyframes ah-figure {
  0% { transform: translateX(0) rotate(-1deg); opacity: 0.5; }
  25% { transform: translateX(6px) translateY(-1px) rotate(1deg); opacity: 0.7; }
  50% { transform: translateX(12px) translateY(0) rotate(-1deg); opacity: 0.6; }
  75% { transform: translateX(18px) translateY(-1px) rotate(1deg); opacity: 0.8; }
  100% { transform: translateX(24px) translateY(0) rotate(0); opacity: 0.5; }
}
@keyframes ah-lamp {
  0% { opacity: 0.6; transform: scale(0.9); }
  25% { opacity: 0.8; transform: scale(1.05); }
  50% { opacity: 0.7; transform: scale(0.95); }
  75% { opacity: 1; transform: scale(1.1); }
  100% { opacity: 0.8; transform: scale(1); }
}
@keyframes ah-dust {
  0% { transform: translate(0, 0) scale(0.8); opacity: 0; }
  10% { opacity: 0.4; }
  90% { opacity: 0.2; }
  100% { transform: translate(-30px, -50px) scale(1.2); opacity: 0; }
}

.scn-watching-corridor {
  background:
    linear-gradient(135deg, #2a1e1c 0%, #3a2a26 30%, #1f1412 60%, #0e0908 100%),
    radial-gradient(ellipse at 30% 50%, #4a342e 0%, transparent 70%);
}
.scn-watching-corridor .corridor-bg {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, #1c1412 0%, #2c201c 50%, #1c1412 100%);
  animation: wat-bg 12s ease-in-out infinite alternate;
}
.scn-watching-corridor .wall-left {
  position: absolute; top: 5%; left: 0; width: 25%; height: 90%;
  background: linear-gradient(145deg, #2a221e, #1a1210);
  border-right: 2px solid #3a2e28;
  box-shadow: inset -4px 0 8px rgba(0,0,0,0.5);
  animation: wat-wall 20s ease-in-out infinite;
}
.scn-watching-corridor .wall-right {
  position: absolute; top: 5%; right: 0; width: 25%; height: 90%;
  background: linear-gradient(215deg, #2a221e, #1a1210);
  border-left: 2px solid #3a2e28;
  box-shadow: inset 4px 0 8px rgba(0,0,0,0.5);
  animation: wat-wall 20s ease-in-out infinite reverse;
}
.scn-watching-corridor .door {
  position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%);
  width: 40%; height: 60%;
  background: linear-gradient(180deg, #3a2a24 0%, #1c1410 100%);
  border: 2px solid #4a3830;
  border-radius: 2% 2% 0 0;
  box-shadow: 0 8px 16px rgba(0,0,0,0.6);
  animation: wat-door 8s ease-in-out infinite alternate;
}
.scn-watching-corridor .light-slit {
  position: absolute; bottom: 60%; left: 50%; transform: translateX(-50%);
  width: 12%; height: 2%;
  background: #c09870;
  box-shadow: 0 0 20px 10px #c09870, 0 0 40px 20px rgba(192,152,112,0.5);
  animation: wat-light 4s ease-in-out infinite alternate;
}
.scn-watching-corridor .figure-silhouette {
  position: absolute; bottom: 22%; left: 35%;
  width: 16px; height: 48px;
  background: #0a0605;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: wat-figure 6s ease-in-out infinite;
}
.scn-watching-corridor .shadow-arch {
  position: absolute; top: 0; left: 0; right: 0; height: 20%;
  background: radial-gradient(ellipse at 50% 0%, #0e0908 0%, transparent 70%);
  animation: wat-arch 15s ease-in-out infinite alternate;
}
.scn-watching-corridor .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 18%;
  background: linear-gradient(0deg, #1c1410 0%, #2a1e1a 80%);
  box-shadow: inset 0 8px 12px rgba(0,0,0,0.4);
  animation: wat-floor 10s ease-in-out infinite;
}
@keyframes wat-bg { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes wat-wall { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.98); } 100% { transform: scaleY(1); } }
@keyframes wat-door { 0% { transform: translateX(-50%) translateY(0) scaleY(1); } 50% { transform: translateX(-50%) translateY(-2px) scaleY(0.99); } 100% { transform: translateX(-50%) translateY(0) scaleY(1); } }
@keyframes wat-light { 0% { opacity: 0.3; box-shadow: 0 0 10px 5px #a08060; } 50% { opacity: 1; box-shadow: 0 0 30px 15px #d0a880; } 100% { opacity: 0.5; box-shadow: 0 0 20px 10px #b08868; } }
@keyframes wat-figure { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(4px) rotate(2deg); } 50% { transform: translateX(8px) rotate(-1deg); } 75% { transform: translateX(4px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes wat-arch { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.6; } }
@keyframes wat-floor { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }

.scn-morning-after {
  background:
    linear-gradient(180deg, #e8dcc8 0%, #f5eee0 30%, #d8c8b0 60%, #b8a88c 100%),
    radial-gradient(ellipse at 70% 30%, #fff8e8 0%, transparent 60%);
}
.scn-morning-after .morning-sky {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #fff8e8 0%, #f0e4cc 40%, #e0ccb0 100%);
  animation: mor-sky 30s ease-in-out infinite alternate;
}
.scn-morning-after .window-frame {
  position: absolute; top: 13%; left: 55%; width: 32%; height: 40%;
  background: #8a7a64;
  border: 4px solid #6a5a4a;
  border-radius: 4%;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.2), 0 4px 8px rgba(0,0,0,0.1);
  animation: mor-frame 20s ease-in-out infinite;
}
.scn-morning-after .window-pane {
  position: absolute; top: 15%; left: 57%; width: 28%; height: 36%;
  background: linear-gradient(135deg, #b8d8f0 0%, #e8f4ff 50%, #c8dce8 100%);
  border-radius: 2%;
  box-shadow: inset 0 0 20px rgba(255,255,255,0.6);
  animation: mor-pane 15s ease-in-out infinite alternate;
}
.scn-morning-after .sunbeam {
  position: absolute; top: 18%; left: 60%; width: 20%; height: 50%;
  background: linear-gradient(180deg, rgba(255,250,230,0.6) 0%, rgba(255,248,220,0.1) 100%);
  transform: rotate(-20deg);
  transform-origin: top left;
  filter: blur(4px);
  animation: mor-beam 12s ease-in-out infinite alternate;
}
.scn-morning-after .bed {
  position: absolute; bottom: 14%; left: 10%; width: 50%; height: 30%;
  background: linear-gradient(180deg, #f0e4cc 0%, #d8c8b0 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.2);
  animation: mor-bed 18s ease-in-out infinite;
}
.scn-morning-after .figure-reclining {
  position: absolute; bottom: 26%; left: 22%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #c8b098 0%, #a08870 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(15deg);
  transform-origin: bottom center;
  animation: mor-figure 8s ease-in-out infinite;
}
.scn-morning-after .pillow {
  position: absolute; bottom: 36%; left: 16%; width: 28px; height: 14px;
  background: #f0e8dc;
  border-radius: 50%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.1);
  animation: mor-pillow 14s ease-in-out infinite alternate;
}
.scn-morning-after .flower-vase {
  position: absolute; bottom: 42%; right: 12%; width: 14px; height: 30px;
  background: linear-gradient(180deg, #b09880 0%, #8a7a64 100%);
  border-radius: 20% 20% 10% 10%;
  animation: mor-vase 10s ease-in-out infinite;
}
@keyframes mor-sky { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.95; } }
@keyframes mor-frame { 0% { transform: scale(1); } 50% { transform: scale(0.98) translateY(1px); } 100% { transform: scale(1); } }
@keyframes mor-pane { 0% { background: linear-gradient(135deg, #b8d8f0, #e8f4ff, #c8dce8); } 50% { background: linear-gradient(135deg, #d0e8ff, #fff8f0, #c8dce8); } 100% { background: linear-gradient(135deg, #b8d8f0, #e8f4ff, #c8dce8); } }
@keyframes mor-beam { 0% { transform: rotate(-20deg) scaleX(1); opacity: 0.6; } 50% { transform: rotate(-18deg) scaleX(1.2); opacity: 1; } 100% { transform: rotate(-22deg) scaleX(0.9); opacity: 0.7; } }
@keyframes mor-bed { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes mor-figure { 0% { transform: rotate(15deg) translateX(0); } 50% { transform: rotate(17deg) translateX(2px); } 100% { transform: rotate(15deg) translateX(0); } }
@keyframes mor-pillow { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(1px) scale(0.98); } 100% { transform: translateY(0) scale(1); } }
@keyframes mor-vase { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.97); } 100% { transform: scaleY(1); } }

.scn-struggle {
  background:
    linear-gradient(135deg, #1f1815 0%, #2c2220 30%, #1a1210 60%, #0d0908 100%),
    radial-gradient(ellipse at 60% 40%, #3a2a26 0%, transparent 70%);
}
.scn-struggle .room-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #241c18 0%, #1a1410 100%);
  animation: str-bg 8s ease-in-out infinite alternate;
}
.scn-struggle .table {
  position: absolute; bottom: 20%; left: 30%; width: 40%; height: 8%;
  background: linear-gradient(180deg, #4a3832 0%, #2c201c 100%);
  border-radius: 4%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
  animation: str-table 6s ease-in-out infinite;
}
.scn-struggle .chair {
  position: absolute; bottom: 18%; left: 45%; width: 30px; height: 50px;
  background: #3a2e28;
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation: str-chair 10s ease-in-out infinite alternate;
}
.scn-struggle .figure-aunt {
  position: absolute; bottom: 24%; left: 35%; width: 22px; height: 60px;
  background: #1a1210;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-5deg);
  transform-origin: bottom center;
  animation: str-aunt 4s ease-in-out infinite;
}
.scn-struggle .figure-montoni {
  position: absolute; bottom: 24%; right: 32%; width: 26px; height: 64px;
  background: #0e0a08;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(5deg);
  transform-origin: bottom center;
  animation: str-montoni 3.5s ease-in-out infinite reverse;
}
.scn-struggle .shadow-clash {
  position: absolute; bottom: 20%; left: 30%; width: 40%; height: 40%;
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.4) 0%, transparent 70%);
  animation: str-shadow 5s ease-in-out infinite alternate;
}
.scn-struggle .candle-glow {
  position: absolute; bottom: 50%; left: 50%; transform: translateX(-50%);
  width: 12px; height: 12px;
  background: #ff8c50;
  border-radius: 50%;
  box-shadow: 0 0 30px 15px #ff8a40, 0 0 60px 30px rgba(255,138,64,0.4);
  animation: str-candle 3s ease-in-out infinite alternate;
}
@keyframes str-bg { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes str-table { 0% { transform: scaleX(1); } 50% { transform: scaleX(0.97); } 100% { transform: scaleX(1); } }
@keyframes str-chair { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(2px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes str-aunt { 0% { transform: rotate(-5deg) translateX(0); } 25% { transform: rotate(-3deg) translateX(3px); } 50% { transform: rotate(-7deg) translateX(-2px); } 75% { transform: rotate(-4deg) translateX(2px); } 100% { transform: rotate(-5deg) translateX(0); } }
@keyframes str-montoni { 0% { transform: rotate(5deg) translateX(0); } 25% { transform: rotate(3deg) translateX(-3px); } 50% { transform: rotate(7deg) translateX(2px); } 75% { transform: rotate(4deg) translateX(-2px); } 100% { transform: rotate(5deg) translateX(0); } }
@keyframes str-shadow { 0% { opacity: 0.6; transform: scale(1); } 50% { opacity: 1; transform: scale(1.05); } 100% { opacity: 0.7; transform: scale(0.95); } }
@keyframes str-candle { 0% { box-shadow: 0 0 20px 10px #ff8a40, 0 0 40px 20px rgba(255,138,64,0.3); } 50% { box-shadow: 0 0 40px 20px #ffa060, 0 0 80px 40px rgba(255,160,96,0.5); } 100% { box-shadow: 0 0 25px 12px #ff8a40, 0 0 50px 25px rgba(255,138,64,0.35); } }

.scn-emily-dresses-simply {
  background:
    linear-gradient(180deg, #2c2420 0%, #3a2e28 40%, #221a16 70%, #140e0c 100%),
    radial-gradient(ellipse at 40% 30%, #4a3832 0%, transparent 60%);
}
.scn-emily-dresses-simply .dressing-room-bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #2c221e 0%, #1e1814 100%);
  animation: emd-bg 18s ease-in-out infinite alternate;
}
.scn-emily-dresses-simply .mirror {
  position: absolute; top: 15%; right: 18%; width: 28%; height: 40%;
  background: linear-gradient(145deg, #5a4e46 0%, #3a302a 100%);
  border: 3px solid #6a5a52;
  border-radius: 4%;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.4), 0 4px 8px rgba(0,0,0,0.2);
  animation: emd-mirror 25s ease-in-out infinite;
}
.scn-emily-dresses-simply .figure-dressing {
  position: absolute; bottom: 22%; left: 25%; width: 24px; height: 56px;
  background: linear-gradient(180deg, #2a1e1a 0%, #140e0c 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-10deg);
  transform-origin: bottom center;
  animation: emd-figure 7s ease-in-out infinite;
}
.scn-emily-dresses-simply .dress {
  position: absolute; bottom: 16%; left: 20%; width: 36px; height: 50px;
  background: linear-gradient(180deg, #5a4a3e 0%, #3a2a1e 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  transform: rotate(-15deg);
  transform-origin: top center;
  animation: emd-dress 9s ease-in-out infinite alternate;
}
.scn-emily-dresses-simply .shadow-figure {
  position: absolute; bottom: 22%; right: 28%; width: 28px; height: 60px;
  background: #0e0a08;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  opacity: 0.5;
  animation: emd-shadow 12s ease-in-out infinite;
}
.scn-emily-dresses-simply .door-handle {
  position: absolute; top: 50%; left: 6%; width: 8px; height: 16px;
  background: #6a5a4a;
  border-radius: 20%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.4);
  animation: emd-handle 8s ease-in-out infinite;
}
.scn-emily-dresses-simply .lamp-glow {
  position: absolute; top: 8%; left: 65%; width: 14px; height: 14px;
  background: #ffb870;
  border-radius: 50%;
  box-shadow: 0 0 30px 15px #ffa050, 0 0 60px 30px rgba(255,160,80,0.3);
  animation: emd-lamp 4s ease-in-out infinite alternate;
}
@keyframes emd-bg { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes emd-mirror { 0% { transform: scale(1); } 50% { transform: scale(0.97); } 100% { transform: scale(1); } }
@keyframes emd-figure { 0% { transform: rotate(-10deg) translateX(0); } 25% { transform: rotate(-8deg) translateX(2px); } 50% { transform: rotate(-12deg) translateX(-1px); } 75% { transform: rotate(-9deg) translateX(1px); } 100% { transform: rotate(-10deg) translateX(0); } }
@keyframes emd-dress { 0% { transform: rotate(-15deg) scaleY(1); } 50% { transform: rotate(-13deg) scaleY(0.96); } 100% { transform: rotate(-17deg) scaleY(0.98); } }
@keyframes emd-shadow { 0% { opacity: 0.4; transform: translateX(0); } 50% { opacity: 0.6; transform: translateX(5px); } 100% { opacity: 0.4; transform: translateX(0); } }
@keyframes emd-handle { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(1px) rotate(3deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes emd-lamp { 0% { box-shadow: 0 0 20px 10px #ffa050, 0 0 40px 20px rgba(255,160,80,0.25); } 50% { box-shadow: 0 0 40px 20px #ffb870, 0 0 80px 40px rgba(255,184,112,0.4); } 100% { box-shadow: 0 0 25px 12px #ffa050, 0 0 50px 25px rgba(255,160,80,0.3); } }

.scn-montoni-indifferent {
  background:
    linear-gradient(180deg, #1a0f0a 0%, #2e1a10 40%, #3d2215 100%),
    radial-gradient(ellipse at 50% 50%, #4d2e1e 0%, #1a0f0a 80%);
}
.scn-montoni-indifferent .wall-left {
  position: absolute; inset: 0 60% 0 0;
  background: linear-gradient(90deg, #140b06 0%, #2a1910 100%);
  animation: mi-wall 8s ease-in-out infinite alternate;
}
.scn-montoni-indifferent .wall-right {
  position: absolute; inset: 0 0 0 40%;
  background: linear-gradient(90deg, #2a1910 0%, #140b06 100%);
  animation: mi-wall 8s ease-in-out infinite alternate-reverse;
}
.scn-montoni-indifferent .floor {
  position: absolute; inset: 70% 0 0 0;
  background: linear-gradient(180deg, #2a1a12 0%, #1a0e08 100%);
  box-shadow: inset 0 20px 30px rgba(0,0,0,.5);
}
.scn-montoni-indifferent .table {
  position: absolute; bottom: 25%; left: 50%; width: 100px; height: 10px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a2e1e 0%, #3a2216 100%);
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,.6);
}
.scn-montoni-indifferent .figure-montoni {
  position: absolute; bottom: 18%; left: 30%; width: 60px; height: 120px;
  background: linear-gradient(180deg, #0e0a06 0%, #1a0e08 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mi-montoni 6s ease-in-out infinite;
  box-shadow: -10px 0 20px rgba(0,0,0,.5);
}
.scn-montoni-indifferent .figure-emily {
  position: absolute; bottom: 22%; left: 55%; width: 30px; height: 80px;
  background: linear-gradient(180deg, #2a1a12 0%, #1a0e08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mi-emily 4s ease-in-out infinite alternate;
}
.scn-montoni-indifferent .lamp-glow {
  position: absolute; top: 20%; left: 46%; width: 40px; height: 40px;
  background: radial-gradient(circle, #ffb86a 0%, #d47a3a 30%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px #b85e2a, 0 0 60px 20px rgba(184,94,42,.3);
  animation: mi-lamp 3s ease-in-out infinite alternate;
}
.scn-montoni-indifferent .shadow-sharp {
  position: absolute; bottom: 25%; left: 20%; width: 160px; height: 80px;
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,.4) 0%, transparent 60%);
  filter: blur(4px);
  animation: mi-shadow 8s ease-in-out infinite alternate;
}
@keyframes mi-wall { 0% { opacity: .8; transform: scaleY(1); } 50% { opacity: 1; transform: scaleY(1.02); } 100% { opacity: .9; transform: scaleY(.98); } }
@keyframes mi-montoni { 0% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(2deg) translateY(-5px); } 100% { transform: rotate(-1deg) translateY(0); } }
@keyframes mi-emily { 0% { transform: translateX(0) rotate(0); } 100% { transform: translateX(8px) rotate(2deg); } }
@keyframes mi-lamp { 0% { opacity: .7; transform: scale(.95); } 50% { opacity: 1; transform: scale(1.05); } 100% { opacity: .8; transform: scale(1); } }
@keyframes mi-shadow { 0% { transform: translateX(0) scaleY(1); opacity: .5; } 50% { transform: translateX(10px) scaleY(1.1); opacity: .7; } 100% { transform: translateX(-5px) scaleY(.9); opacity: .6; } }

.scn-midnight-interment {
  background:
    linear-gradient(180deg, #0f0a08 0%, #1f1410 60%, #2d1f18 100%),
    radial-gradient(ellipse at 30% 50%, #3a2218 0%, transparent 70%);
}
.scn-midnight-interment .bg-chamber {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #1a120e 0%, #2c1c15 50%, #1a120e 100%);
  animation: mi-bg 12s ease-in-out infinite alternate;
}
.scn-midnight-interment .bed {
  position: absolute; bottom: 20%; left: 15%; width: 70%; height: 30%;
  background: linear-gradient(180deg, #3d2a1e 0%, #2a1a12 100%);
  border-radius: 8px;
  box-shadow: inset 0 0 20px rgba(0,0,0,.6);
}
.scn-midnight-interment .body {
  position: absolute; bottom: 28%; left: 30%; width: 35%; height: 18%;
  background: linear-gradient(180deg, #2e221b 0%, #1a1210 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 40% 40%;
  transform: rotate(2deg);
  animation: mi-body 15s ease-in-out infinite alternate;
}
.scn-midnight-interment .winding-sheet {
  position: absolute; bottom: 30%; left: 32%; width: 30%; height: 14%;
  background: linear-gradient(180deg, #c8b8a8 0%, #a8947f 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 40% 40%;
  opacity: .85;
  animation: mi-sheet 10s ease-in-out infinite alternate;
  box-shadow: 0 4px 10px rgba(0,0,0,.4);
}
.scn-midnight-interment .figure-emily {
  position: absolute; bottom: 25%; left: 18%; width: 28px; height: 75px;
  background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mi-fig-left 6s ease-in-out infinite alternate;
}
.scn-midnight-interment .figure-annette {
  position: absolute; bottom: 25%; right: 18%; width: 26px; height: 70px;
  background: linear-gradient(180deg, #1c1612 0%, #0e0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mi-fig-right 7s ease-in-out infinite alternate;
}
.scn-midnight-interment .torch-glow-left {
  position: absolute; top: 15%; left: 8%; width: 50px; height: 80px;
  background: radial-gradient(ellipse at 50% 0%, #ff9a4a 0%, #d46020 30%, transparent 70%);
  border-radius: 50%;
  filter: blur(6px);
  animation: mi-torch-left 3s ease-in-out infinite alternate;
}
.scn-midnight-interment .torch-glow-right {
  position: absolute; top: 20%; right: 10%; width: 40px; height: 70px;
  background: radial-gradient(ellipse at 50% 0%, #ff8844 0%, #c85a1a 30%, transparent 70%);
  border-radius: 50%;
  filter: blur(5px);
  animation: mi-torch-right 4s ease-in-out infinite alternate;
  animation-delay: -2s;
}
.scn-midnight-interment .dust-motes {
  position: absolute; inset: 0;
  background: radial-gradient(circle at 30% 40%, rgba(200,180,160,.03) 0%, transparent 10%),
              radial-gradient(circle at 70% 30%, rgba(200,180,160,.03) 0%, transparent 10%),
              radial-gradient(circle at 50% 60%, rgba(200,180,160,.02) 0%, transparent 10%);
  filter: blur(2px);
  animation: mi-dust 20s linear infinite;
}
@keyframes mi-bg { 0% { opacity: .9; } 50% { opacity: 1; } 100% { opacity: .85; } }
@keyframes mi-body { 0% { transform: rotate(2deg) translateY(0); } 50% { transform: rotate(0deg) translateY(-3px); } 100% { transform: rotate(2deg) translateY(0); } }
@keyframes mi-sheet { 0% { opacity: .8; transform: scaleY(1) translateY(0); } 50% { opacity: .95; transform: scaleY(1.02) translateY(-1px); } 100% { opacity: .85; transform: scaleY(.98) translateY(0); } }
@keyframes mi-fig-left { 0% { transform: translateX(0) rotate(-1deg); } 50% { transform: translateX(4px) rotate(1deg); } 100% { transform: translateX(-2px) rotate(0deg); } }
@keyframes mi-fig-right { 0% { transform: translateX(0) rotate(1deg); } 50% { transform: translateX(-4px) rotate(-1deg); } 100% { transform: translateX(2px) rotate(0deg); } }
@keyframes mi-torch-left { 0% { opacity: .7; transform: scale(.9); } 50% { opacity: 1; transform: scale(1.1); } 100% { opacity: .8; transform: scale(1); } }
@keyframes mi-torch-right { 0% { opacity: .6; transform: scale(.95); } 50% { opacity: 1; transform: scale(1.15); } 100% { opacity: .7; transform: scale(1); } }
@keyframes mi-dust { 0% { transform: translate(0,0); } 25% { transform: translate(10px, -5px); } 50% { transform: translate(-8px, 3px); } 75% { transform: translate(6px, -2px); } 100% { transform: translate(0,0); } }

.scn-vault-service {
  background:
    linear-gradient(180deg, #0c0e10 0%, #1a1c1e 40%, #2a2a2c 100%),
    radial-gradient(ellipse at 50% 60%, #3a3a3c 0%, transparent 70%);
}
.scn-vault-service .vault-bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #141618 0%, #222426 50%, #141618 100%);
  animation: vs-bg 15s ease-in-out infinite alternate;
}
.scn-vault-service .arch-left {
  position: absolute; top: 5%; left: 5%; width: 25%; height: 60%;
  border-radius: 50% / 100% 100% 0 0;
  border: 4px solid #3a3c3e;
  background: transparent;
  box-shadow: inset 0 0 30px rgba(0,0,0,.6), 0 0 20px rgba(0,0,0,.4);
  transform-origin: bottom center;
  animation: vs-arch 20s ease-in-out infinite alternate;
}
.scn-vault-service .arch-right {
  position: absolute; top: 5%; right: 5%; width: 25%; height: 60%;
  border-radius: 50% / 100% 100% 0 0;
  border: 4px solid #3a3c3e;
  background: transparent;
  box-shadow: inset 0 0 30px rgba(0,0,0,.6), 0 0 20px rgba(0,0,0,.4);
  transform-origin: bottom center;
  animation: vs-arch 20s ease-in-out infinite alternate-reverse;
  animation-delay: -10s;
}
.scn-vault-service .grave {
  position: absolute; bottom: 12%; left: 30%; width: 40%; height: 10%;
  background: linear-gradient(180deg, #2a2a2c 0%, #1a1a1c 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.8);
}
.scn-vault-service .body-vault {
  position: absolute; bottom: 14%; left: 33%; width: 34%; height: 12%;
  background: linear-gradient(180deg, #2e2a28 0%, #1e1a18 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 40% 40%;
  transform: rotate(1deg);
  animation: vs-body 12s ease-in-out infinite alternate;
}
.scn-vault-service .priest {
  position: absolute; bottom: 18%; left: 42%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #1a1a1e 0%, #0e0e10 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: vs-priest 8s ease-in-out infinite alternate;
}
.scn-vault-service .condottiero-left {
  position: absolute; bottom: 15%; left: 12%; width: 40px; height: 90px;
  background: linear-gradient(180deg, #2a221c 0%, #1a1410 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: vs-soldier-left 10s ease-in-out infinite alternate;
}
.scn-vault-service .condottiero-right {
  position: absolute; bottom: 15%; right: 12%; width: 40px; height: 90px;
  background: linear-gradient(180deg, #2a221c 0%, #1a1410 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: vs-soldier-right 10s ease-in-out infinite alternate;
}
.scn-vault-service .torchlight-vault {
  position: absolute; top: 10%; left: 45%; width: 100px; height: 150px;
  background: radial-gradient(ellipse at 50% 0%, #ffa55a 0%, #d46a2a 20%, transparent 70%);
  border-radius: 50%;
  filter: blur(12px);
  animation: vs-torch 4s ease-in-out infinite alternate;
}
@keyframes vs-bg { 0% { opacity: .8; } 50% { opacity: 1; } 100% { opacity: .9; } }
@keyframes vs-arch { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.03); } 100% { transform: scaleY(.97); } }
@keyframes vs-body { 0% { transform: rotate(1deg) translateY(0); } 50% { transform: rotate(0deg) translateY(-2px); } 100% { transform: rotate(1deg) translateY(0); } }
@keyframes vs-priest { 0% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(3px) rotate(1deg); } 100% { transform: translateX(-2px) rotate(0deg); } }
@keyframes vs-soldier-left { 0% { transform: translateX(0); } 50% { transform: translateX(5px); } 100% { transform: translateX(0); } }
@keyframes vs-soldier-right { 0% { transform: translateX(0); } 50% { transform: translateX(-5px); } 100% { transform: translateX(0); } }
@keyframes vs-torch { 0% { opacity: .7; transform: scale(.95); } 50% { opacity: 1; transform: scale(1.1); } 100% { opacity: .8; transform: scale(1); } }

.scn-friar-s-gaze {
  background:
    linear-gradient(180deg, #1a1412 0%, #2a221e 40%, #3a2e28 100%),
    radial-gradient(ellipse at 50% 30%, #4a3a32 0%, transparent 70%);
}
.scn-friar-s-gaze .court-bg {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, #1c1614 0%, #2e2622 50%, #1c1614 100%);
  animation: fg-bg 12s ease-in-out infinite alternate;
}
.scn-friar-s-gaze .arch-fg {
  position: absolute; top: 0; left: 20%; width: 60%; height: 50%;
  border-radius: 50% / 100% 100% 0 0;
  border: 6px solid #4a3e38;
  background: transparent;
  box-shadow: inset 0 0 60px rgba(0,0,0,.5), 0 0 30px rgba(0,0,0,.3);
  transform-origin: bottom center;
  animation: fg-arch 20s ease-in-out infinite alternate;
}
.scn-friar-s-gaze .figure-friar {
  position: absolute; bottom: 22%; left: 35%; width: 30px; height: 80px;
  background: linear-gradient(180deg, #2e2a26 0%, #1e1a18 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fg-friar 8s ease-in-out infinite alternate;
}
.scn-friar-s-gaze .figure-emily-gaze {
  position: absolute; bottom: 25%; right: 35%; width: 28px; height: 75px;
  background: linear-gradient(180deg, #2a221e 0%, #1a1412 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fg-emily 6s ease-in-out infinite alternate;
}
.scn-friar-s-gaze .condottiero-bg-left {
  position: absolute; bottom: 18%; left: 8%; width: 45px; height: 100px;
  background: linear-gradient(180deg, #2a241c 0%, #1a1410 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fg-soldier-left 10s ease-in-out infinite alternate;
  opacity: .7;
}
.scn-friar-s-gaze .condottiero-bg-right {
  position: absolute; bottom: 18%; right: 8%; width: 45px; height: 100px;
  background: linear-gradient(180deg, #2a241c 0%, #1a1410 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fg-soldier-right 10s ease-in-out infinite alternate;
  opacity: .7;
}
.scn-friar-s-gaze .torch-sconce {
  position: absolute; top: 25%; left: 50%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1e 100%);
  border-radius: 4px;
  transform: translateX(-50%);
  box-shadow: 0 0 10px rgba(0,0,0,.5);
}
.scn-friar-s-gaze .torch-flame {
  position: absolute; top: 18%; left: 50%; width: 30px; height: 50px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 80%, #ffb86a 0%, #d47a3a 30%, transparent 60%);
  border-radius: 50% 50% 20% 20% / 80% 80% 40% 40%;
  filter: blur(3px);
  animation: fg-flame 2.5s ease-in-out infinite alternate;
}
.scn-friar-s-gaze .stone-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 18%;
  background: linear-gradient(180deg, #3a322c 0%, #2a221e 100%);
  box-shadow: inset 0 12px 20px rgba(0,0,0,.6);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
}
@keyframes fg-bg { 0% { opacity: .9; } 50% { opacity: 1; } 100% { opacity: .85; } }
@keyframes fg-arch { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(.98); } }
@keyframes fg-friar { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(4px) rotate(2deg); } 100% { transform: translateX(-2px) rotate(-1deg); } }
@keyframes fg-emily { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(-4px) rotate(-2deg); } 100% { transform: translateX(2px) rotate(1deg); } }
@keyframes fg-soldier-left { 0% { transform: translateX(0); } 50% { transform: translateX(6px); } 100% { transform: translateX(0); } }
@keyframes fg-soldier-right { 0% { transform: translateX(0); } 50% { transform: translateX(-6px); } 100% { transform: translateX(0); } }
@keyframes fg-flame { 0% { opacity: .8; transform: translateX(-50%) scaleY(.95); } 50% { opacity: 1; transform: translateX(-50%) scaleY(1.1); } 100% { opacity: .9; transform: translateX(-50%) scaleY(1); } }

/* scene: day-departure-miarenti (dm) */
.scn-day-departure-miarenti {
  background:
    linear-gradient(180deg, #e8c9a0 0%, #b8946a 30%, #7a5a3e 60%, #2e1e12 100%),
    radial-gradient(ellipse at 50% 0%, #fad6a0 0%, transparent 60%);
}
.scn-day-departure-miarenti .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #d4a87a 0%, #b87e4a 40%, #8a5a2a 70%, transparent 100%); animation: dm-sky 12s ease-in-out infinite alternate; }
.scn-day-departure-miarenti .canal { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1e12 100%); border-radius: 20% 20% 0 0 / 10% 10% 0 0; box-shadow: inset 0 10px 25px rgba(0,0,0,.4); animation: dm-water 10s ease-in-out infinite alternate; }
.scn-day-departure-miarenti .villa { position:absolute; bottom:35%; left:25%; width:120px; height:80px; background: linear-gradient(180deg, #8a6a4a 0%, #5a3e28 100%); border-radius: 8% 8% 4% 4%; box-shadow: 0 8px 16px rgba(0,0,0,.4), inset 0 -4px 8px rgba(0,0,0,.3); transform: perspective(400px) rotateY(-5deg); animation: dm-villa 14s ease-in-out infinite; }
.scn-day-departure-miarenti .trees { position:absolute; bottom:30%; height:60px; width:30px; background: linear-gradient(180deg, #4a5a2a 0%, #2a3a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; filter: blur(1px); }
.scn-day-departure-miarenti .trees-left { left:10%; animation: dm-trees 18s ease-in-out infinite alternate; }
.scn-day-departure-miarenti .trees-right { right:15%; width:25px; height:50px; animation: dm-trees 18s ease-in-out infinite alternate-reverse; }
.scn-day-departure-miarenti .figure { position:absolute; bottom:25%; left:38%; width:14px; height:28px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e06 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dm-walk 6s ease-in-out infinite; }
.scn-day-departure-miarenti .gondola { position:absolute; bottom:12%; left:30%; width:60px; height:12px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e06 100%); border-radius: 0 40% 40% 0 / 0 60% 60% 0; transform: skewY(-2deg); animation: dm-gondola 8s ease-in-out infinite; }
.scn-day-departure-miarenti .ripple { position:absolute; bottom:20%; left:35%; width:8px; height:8px; background: rgba(180,140,80,.3); border-radius: 50%; box-shadow: 0 0 12px 4px rgba(180,140,80,.2); animation: dm-ripple 5s ease-in-out infinite; }

@keyframes dm-sky { 0% { opacity:.8; background-position: 0% 0%; } 50% { opacity:1; background-position: 50% 50%; } 100% { opacity:.7; background-position: 100% 0%; } }
@keyframes dm-water { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(.98); } }
@keyframes dm-villa { 0% { transform: perspective(400px) rotateY(-5deg) translateY(0); } 50% { transform: perspective(400px) rotateY(-3deg) translateY(-2px); } 100% { transform: perspective(400px) rotateY(-5deg) translateY(0); } }
@keyframes dm-trees { 0% { transform: rotate(0deg) scaleY(1); } 50% { transform: rotate(5deg) scaleY(1.03); } 100% { transform: rotate(0deg) scaleY(1); } }
@keyframes dm-walk { 0% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(8px) rotate(2deg); } 100% { transform: translateX(16px) rotate(0deg); } }
@keyframes dm-gondola { 0% { transform: skewY(-2deg) translateX(0); } 50% { transform: skewY(0deg) translateX(-4px); } 100% { transform: skewY(-2deg) translateX(0); } }
@keyframes dm-ripple { 0% { transform: scale(1); opacity:.6; } 50% { transform: scale(2.5); opacity:.2; } 100% { transform: scale(1); opacity:.6; } }

/* scene: emily-gazing-venice-fade (evf) */
.scn-emily-gazing-venice-fade {
  background:
    linear-gradient(180deg, #b08850 0%, #7a5a3a 40%, #3a2a1a 70%, #0a0602 100%),
    radial-gradient(ellipse at 80% 100%, #d4a060 0%, transparent 70%);
}
.scn-emily-gazing-venice-fade .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #c89860 0%, #a07040 40%, #6a4a2a 70%, transparent 100%); animation: evf-sky 15s ease-in-out infinite alternate; }
.scn-emily-gazing-venice-fade .lagoon { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #5a4020 0%, #2a1a0a 100%); border-radius: 30% 30% 0 0 / 20% 20% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.5); animation: evf-lagoon 12s ease-in-out infinite alternate; }
.scn-emily-gazing-venice-fade .hull { position:absolute; bottom:28%; left:15%; width:100px; height:25px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e06 100%); border-radius: 0 30% 30% 0 / 0 60% 60% 0; transform: skewY(-3deg); animation: evf-hull 8s ease-in-out infinite; }
.scn-emily-gazing-venice-fade .deck { position:absolute; bottom:35%; left:18%; width:70px; height:8px; background: linear-gradient(180deg, #5a3e28 0%, #3a2a1a 100%); border-radius: 4px; transform: skewY(-1deg); animation: evf-deck 8s ease-in-out infinite; }
.scn-emily-gazing-venice-fade .figure { position:absolute; bottom:31%; left:40%; width:12px; height:22px; background: linear-gradient(180deg, #2a1a0a 0%, #0e0602 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: evf-figure 6s ease-in-out infinite; }
.scn-emily-gazing-venice-fade .city-skylines { position:absolute; bottom:42%; right:0; left:40%; height:60px; background: linear-gradient(180deg, #4a2a12 0%, #2a1608 100%); mask-image: radial-gradient(circle at 70% 50%, black 30%, transparent 70%); -webkit-mask-image: radial-gradient(circle at 70% 50%, black 30%, transparent 70%); animation: evf-city 20s linear infinite; }
.scn-emily-gazing-venice-fade .flag { position:absolute; bottom:42%; right:10%; width:4px; height:14px; background: #5a3a20; border-radius: 2px; animation: evf-flag 5s ease-in-out infinite; }

@keyframes evf-sky { 0% { opacity:.8; background-position: 0% 0%; } 50% { opacity:1; background-position: 30% 30%; } 100% { opacity:.6; background-position: 100% 0%; } }
@keyframes evf-lagoon { 0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.01) translateY(-2px); } 100% { transform: scaleY(1) translateY(0); } }
@keyframes evf-hull { 0% { transform: skewY(-3deg) translateX(0); } 50% { transform: skewY(-1deg) translateX(-2px); } 100% { transform: skewY(-3deg) translateX(0); } }
@keyframes evf-deck { 0% { transform: skewY(-1deg) translateY(0); } 50% { transform: skewY(1deg) translateY(-1px); } 100% { transform: skewY(-1deg) translateY(0); } }
@keyframes evf-figure { 0% { transform: rotate(-2deg) translateX(0); } 50% { transform: rotate(2deg) translateX(2px); } 100% { transform: rotate(-2deg) translateX(0); } }
@keyframes evf-city { 0% { opacity:.6; transform: translateX(0); } 50% { opacity:.3; transform: translateX(-10px); } 100% { opacity:.6; transform: translateX(0); } }
@keyframes evf-flag { 0% { transform: rotate(0deg); } 50% { transform: rotate(15deg); } 100% { transform: rotate(0deg); } }

/* scene: emily-thinks-of-greece (etg) */
.scn-emily-thinks-of-greece {
  background:
    linear-gradient(180deg, #b08860 0%, #806040 30%, #4a3020 60%, #1a120a 100%),
    radial-gradient(ellipse at 70% 100%, #c89860 0%, transparent 60%);
}
.scn-emily-thinks-of-greece .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #c89860 0%, #9a7040 40%, #5a3a1a 70%, transparent 100%); animation: etg-sky 18s ease-in-out infinite alternate; }
.scn-emily-thinks-of-greece .sea-deep { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e06 100%); border-radius: 40% 40% 0 0 / 30% 30% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,.6); }
.scn-emily-thinks-of-greece .sea-mid { position:absolute; bottom:10%; left:0; right:0; height:30%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1e12 100%); border-radius: 30% 30% 0 0 / 20% 20% 0 0; opacity:.5; animation: etg-midsea 14s ease-in-out infinite alternate; }
.scn-emily-thinks-of-greece .horizon-mist { position:absolute; bottom:48%; left:0; right:0; height:8%; background: linear-gradient(180deg, rgba(180,140,80,.4) 0%, transparent 100%); filter: blur(4px); animation: etg-mist 20s ease-in-out infinite alternate; }
.scn-emily-thinks-of-greece .figure { position:absolute; bottom:28%; left:30%; width:14px; height:26px; background: linear-gradient(180deg, #2a1a0a 0%, #0e0602 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: etg-figure 8s ease-in-out infinite; }
.scn-emily-thinks-of-greece .wave { position:absolute; bottom:20%; border-radius: 50%; background: rgba(180,140,80,.15); filter: blur(3px); }
.scn-emily-thinks-of-greece .wave-1 { left:10%; width:120px; height:20px; animation: etg-wave1 6s ease-in-out infinite; }
.scn-emily-thinks-of-greece .wave-2 { right:15%; width:100px; height:16px; animation: etg-wave2 8s ease-in-out infinite; animation-delay: -2s; }

@keyframes etg-sky { 0% { opacity:.7; background-position: 0% 0%; } 50% { opacity:1; background-position: 40% 40%; } 100% { opacity:.6; background-position: 100% 0%; } }
@keyframes etg-midsea { 0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.02) translateY(-2px); } 100% { transform: scaleY(1) translateY(0); } }
@keyframes etg-mist { 0% { opacity:.4; transform: translateX(-10px); } 50% { opacity:.6; transform: translateX(10px); } 100% { opacity:.4; transform: translateX(-10px); } }
@keyframes etg-figure { 0% { transform: rotate(-1deg) translateX(0); } 50% { transform: rotate(1deg) translateX(3px); } 100% { transform: rotate(-1deg) translateX(0); } }
@keyframes etg-wave1 { 0% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(20px) scaleX(1.2); } 100% { transform: translateX(0) scaleX(1); } }
@keyframes etg-wave2 { 0% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(-15px) scaleX(1.1); } 100% { transform: translateX(0) scaleX(1); } }

/* scene: emily-composes-story (ecs) */
.scn-emily-composes-story {
  background:
    linear-gradient(180deg, #5a3a2a 0%, #3a2212 40%, #1a0e06 70%, #0a0402 100%),
    radial-gradient(ellipse at 50% 30%, #8a5a3a 0%, transparent 60%);
}
.scn-emily-composes-story .wall-back { position:absolute; inset:0; background: linear-gradient(135deg, #4a2a1a 0%, #2a1608 100%); box-shadow: inset 0 0 40px rgba(0,0,0,.5); }
.scn-emily-composes-story .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e06 100%); border-radius: 20% 20% 0 0 / 10% 10% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.6); }
.scn-emily-composes-story .window { position:absolute; top:20%; left:25%; width:50%; height:55%; background: transparent; border: 6px solid #5a3e28; border-radius: 4px; box-shadow: inset 0 0 30px rgba(0,0,0,.3); }
.scn-emily-composes-story .outside-sky { position:absolute; top:23%; left:27%; width:46%; height:50%; background: linear-gradient(180deg, #8a6040 0%, #5a3a1a 40%, #2a1608 70%, #0a0402 100%); border-radius: 2px; animation: ecs-outside 20s ease-in-out infinite alternate; }
.scn-emily-composes-story .ruins { position:absolute; bottom:30%; left:30%; width:60px; height:25px; background: linear-gradient(180deg, #4a2a1a 0%, #2a1608 100%); border-radius: 8% 8% 4% 4% / 20% 20% 10% 10%; box-shadow: 0 4px 8px rgba(0,0,0,.3); transform: skewY(-2deg); animation: ecs-ruins 18s ease-in-out infinite; }
.scn-emily-composes-story .desk { position:absolute; bottom:15%; left:20%; width:40%; height:8px; background: linear-gradient(180deg, #6a4a2a 0%, #3a2212 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.3); }
.scn-emily-composes-story .paper { position:absolute; bottom:19%; left:38%; width:50px; height:35px; background: linear-gradient(180deg, #c8b090 0%, #a88870 100%); border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,.2); transform: rotate(-3deg); animation: ecs-paper 5s ease-in-out infinite; }
.scn-emily-composes-story .lamp { position:absolute; bottom:26%; left:15%; width:18px; height:24px; background: linear-gradient(180deg, #c89860 0%, #8a6030 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 0 16px 4px rgba(200,152,96,.6); animation: ecs-lamp 4s ease-in-out infinite; }
.scn-emily-composes-story .lamp-glow { position:absolute; bottom:22%; left:12%; width:30px; height:30px; background: radial-gradient(circle, rgba(200,152,96,.4) 0%, transparent 70%); border-radius: 50%; filter: blur(8px); animation: ecs-glow 4s ease-in-out infinite; }

@keyframes ecs-outside { 0% { opacity:.6; } 50% { opacity:.9; } 100% { opacity:.6; } }
@keyframes ecs-ruins { 0% { transform: skewY(-2deg) translateY(0); } 50% { transform: skewY(0deg) translateY(-2px); } 100% { transform: skewY(-2deg) translateY(0); } }
@keyframes ecs-paper { 0% { transform: rotate(-3deg) scale(1); } 50% { transform: rotate(-1deg) scale(1.02); } 100% { transform: rotate(-3deg) scale(1); } }
@keyframes ecs-lamp { 0% { box-shadow: 0 0 12px 2px rgba(200,152,96,.5); } 50% { box-shadow: 0 0 24px 8px rgba(200,152,96,.8); } 100% { box-shadow: 0 0 12px 2px rgba(200,152,96,.5); } }
@keyframes ecs-glow { 0% { opacity:.4; transform: scale(1); } 50% { opacity:.7; transform: scale(1.3); } 100% { opacity:.4; transform: scale(1); } }

/* Scene: watch-for-music (calm, window-lit) */
.scn-watch-for-music {
  background: linear-gradient(180deg, #d4c4a8 0%, #b8a080 40%, #8a705a 100%),
              radial-gradient(ellipse at 50% 100%, #c8b090 0%, transparent 70%);
}
.scn-watch-for-music .floor {
  position: absolute; bottom: 0; height: 20%; left: 0; right: 0;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  animation: wfm-floor 10s ease-in-out infinite alternate;
}
.scn-watch-for-music .wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #c8bca8 0%, #a89880 100%);
  animation: wfm-wall 8s ease-in-out infinite alternate;
}
.scn-watch-for-music .window-frame {
  position: absolute; bottom: 35%; left: 50%; width: 140px; height: 100px;
  transform: translateX(-50%);
  background: linear-gradient(135deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 4px; box-shadow: inset 0 0 20px rgba(0,0,0,0.4);
  animation: wfm-frame 12s ease-in-out infinite;
}
.scn-watch-for-music .window-light {
  position: absolute; bottom: 38%; left: 50%; width: 110px; height: 80px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 50%, #f0d8a8 0%, #e0c888 40%, transparent 70%);
  border-radius: 2px;
  animation: wfm-light 6s ease-in-out infinite alternate;
}
.scn-watch-for-music .curtain {
  position: absolute; bottom: 35%; left: 45%; width: 30px; height: 100px;
  background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%);
  border-radius: 2px;
  transform-origin: top center;
  animation: wfm-curtain 7s ease-in-out infinite alternate;
}
.scn-watch-for-music .figure {
  position: absolute; bottom: 20%; left: 50%; width: 20px; height: 60px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: wfm-figure 5s ease-in-out infinite;
}
.scn-watch-for-music .book {
  position: absolute; bottom: 22%; left: 52%; width: 26px; height: 18px;
  background: linear-gradient(135deg, #5a3a2a 0%, #3a1a0a 100%);
  border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,0.5);
  transform: rotate(-10deg);
  animation: wfm-book 8s ease-in-out infinite;
}
@keyframes wfm-floor { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes wfm-wall { 0% { filter: brightness(1); } 50% { filter: brightness(1.05); } 100% { filter: brightness(0.95); } }
@keyframes wfm-frame { 0%,100% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(1.005); } }
@keyframes wfm-light { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes wfm-curtain { 0% { transform: rotate(0deg) scaleX(1); } 50% { transform: rotate(-2deg) scaleX(1.05); } 100% { transform: rotate(1deg) scaleX(0.95); } }
@keyframes wfm-figure { 0%,100% { transform: translateX(-50%) translateY(0) rotate(0deg); } 50% { transform: translateX(-50%) translateY(-2px) rotate(1deg); } }
@keyframes wfm-book { 0%,100% { transform: rotate(-10deg); } 50% { transform: rotate(-8deg) translateY(1px); } }

/* Scene: stormy-night-watch (dark, moonlit) */
.scn-stormy-night-watch {
  background: linear-gradient(180deg, #0f1520 0%, #1a2230 30%, #2a3040 60%, #1a2028 100%),
              radial-gradient(ellipse at 50% 60%, #3a4a60 0%, transparent 70%);
}
.scn-stormy-night-watch .sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #1a2230 0%, #0f1520 100%);
  animation: snw-sky 15s ease-in-out infinite alternate;
}
.scn-stormy-night-watch .moon {
  position: absolute; top: 15%; right: 25%; width: 40px; height: 40px;
  background: radial-gradient(circle, #e8e0d0 0%, #c0b8a0 50%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 10px rgba(200,190,170,0.3);
  animation: snw-moon 12s ease-in-out infinite alternate;
}
.scn-stormy-night-watch .cloud-a {
  position: absolute; top: 10%; left: -20%; width: 180px; height: 30px;
  background: linear-gradient(180deg, rgba(40,50,60,0.7) 0%, rgba(20,30,40,0.3) 100%);
  border-radius: 50%; filter: blur(8px);
  animation: snw-cloud-a 35s linear infinite;
}
.scn-stormy-night-watch .cloud-b {
  position: absolute; top: 18%; right: -30%; width: 140px; height: 25px;
  background: linear-gradient(180deg, rgba(50,60,70,0.6) 0%, rgba(30,40,50,0.2) 100%);
  border-radius: 50%; filter: blur(6px);
  animation: snw-cloud-b 45s linear infinite reverse;
}
.scn-stormy-night-watch .trees {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%);
  border-radius: 60% 40% 0 0 / 80% 70% 0 0;
  animation: snw-trees 8s ease-in-out infinite alternate;
}
.scn-stormy-night-watch .soldiers {
  position: absolute; bottom: 32%; left: 10%; width: 80px; height: 40px;
  background: linear-gradient(180deg, #0a0a10 0%, #000 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%;
  filter: blur(2px);
  animation: snw-soldiers 10s ease-in-out infinite;
}
.scn-stormy-night-watch .ground {
  position: absolute; bottom: 0; height: 30%; left: 0; right: 0;
  background: linear-gradient(180deg, #0a0a0a 0%, #1a1a1a 100%);
  animation: snw-ground 14s ease-in-out infinite alternate;
}
@keyframes snw-sky { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.5; } }
@keyframes snw-moon { 0% { transform: scale(1); opacity: 0.7; } 50% { transform: scale(1.05); opacity: 1; } 100% { transform: scale(0.95); opacity: 0.6; } }
@keyframes snw-cloud-a { 0% { transform: translateX(0); } 100% { transform: translateX(120vw); } }
@keyframes snw-cloud-b { 0% { transform: translateX(0); } 100% { transform: translateX(-120vw); } }
@keyframes snw-trees { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(4px) rotate(2deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes snw-soldiers { 0%,100% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(5px) scaleX(0.95); } }
@keyframes snw-ground { 0% { filter: brightness(0.9); } 50% { filter: brightness(1); } 100% { filter: brightness(0.8); } }

/* Scene: fire-and-book (calm, firelit) */
.scn-fire-and-book {
  background: linear-gradient(180deg, #1a1008 0%, #2a1a10 40%, #3a2010 70%, #2a1808 100%),
              radial-gradient(ellipse at 50% 70%, #4a2810 0%, transparent 60%);
}
.scn-fire-and-book .floor {
  position: absolute; bottom: 0; height: 15%; left: 0; right: 0;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  animation: fab-floor 8s ease-in-out infinite alternate;
}
.scn-fire-and-book .wall {
  position: absolute; inset: 0 0 15% 0;
  background: linear-gradient(180deg, #3a2010 0%, #2a1a0a 100%);
  animation: fab-wall 10s ease-in-out infinite alternate;
}
.scn-fire-and-book .fireplace {
  position: absolute; bottom: 15%; left: 50%; transform: translateX(-50%);
  width: 120px; height: 90px;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a0a 100%);
  border-radius: 8px 8px 4px 4px;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.6);
  animation: fab-fp 12s ease-in-out infinite;
}
.scn-fire-and-book .fire-glow {
  position: absolute; bottom: 18%; left: 50%; transform: translateX(-50%);
  width: 100px; height: 80px;
  background: radial-gradient(ellipse at 50% 60%, #ff8030 0%, #ff6030 20%, #ff4020 40%, transparent 70%);
  border-radius: 50%;
  animation: fab-glow 3s ease-in-out infinite alternate;
}
.scn-fire-and-book .fire-flames {
  position: absolute; bottom: 20%; left: 50%; transform: translateX(-50%);
  width: 60px; height: 50px;
  background: linear-gradient(180deg, #ffa040 0%, #ff6020 40%, #cc3000 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 20% 20%;
  filter: blur(3px);
  animation: fab-flames 0.8s ease-in-out infinite alternate;
}
.scn-fire-and-book .chair {
  position: absolute; bottom: 15%; left: 35%; width: 50px; height: 60px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 10% 10%;
  transform: rotate(2deg);
  animation: fab-chair 9s ease-in-out infinite;
}
.scn-fire-and-book .figure {
  position: absolute; bottom: 16%; left: 37%; width: 22px; height: 55px;
  background: linear-gradient(180deg, #0a0a0a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fab-figure 5s ease-in-out infinite;
}
.scn-fire-and-book .book {
  position: absolute; bottom: 18%; left: 40%; width: 24px; height: 16px;
  background: linear-gradient(135deg, #5a3a1a 0%, #3a2010 100%);
  border-radius: 2px;
  transform: rotate(-8deg) scale(1);
  animation: fab-book 7s ease-in-out infinite;
}
@keyframes fab-floor { 0% { filter: brightness(0.9); } 50% { filter: brightness(1.1); } 100% { filter: brightness(0.8); } }
@keyframes fab-wall { 0% { filter: brightness(0.7); } 50% { filter: brightness(1); } 100% { filter: brightness(0.6); } }
@keyframes fab-fp { 0%,100% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(1.01); } }
@keyframes fab-glow { 0% { opacity: 0.8; transform: translateX(-50%) scale(1); } 50% { opacity: 1; transform: translateX(-50%) scale(1.05); } 100% { opacity: 0.7; transform: translateX(-50%) scale(0.95); } }
@keyframes fab-flames { 0% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(1.3); } 100% { transform: translateX(-50%) scaleY(0.9); } }
@keyframes fab-chair { 0%,100% { transform: rotate(2deg); } 50% { transform: rotate(4deg) translateY(-2px); } }
@keyframes fab-figure { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-1px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes fab-book { 0%,100% { transform: rotate(-8deg) scale(1); } 50% { transform: rotate(-6deg) scale(1.02) translateY(1px); } }

/* Scene: lute-in-the-storm (tense, moonlit) */
.scn-lute-in-the-storm {
  background: linear-gradient(180deg, #0a0e18 0%, #141e2a 30%, #1c2838 60%, #0a121c 100%),
              radial-gradient(ellipse at 50% 40%, #2a3850 0%, transparent 60%);
}
.scn-lute-in-the-storm .window-frame {
  position: absolute; bottom: 30%; left: 50%; transform: translateX(-50%);
  width: 160px; height: 120px;
  background: linear-gradient(135deg, #2a1a1a 0%, #0a0a0a 100%);
  border-radius: 6px; box-shadow: inset 0 0 30px rgba(0,0,0,0.7);
  animation: lis-frame 10s ease-in-out infinite;
}
.scn-lute-in-the-storm .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #0a0e18 0%, #141e2a 100%);
  animation: lis-wall 12s ease-in-out infinite alternate;
}
.scn-lute-in-the-storm .figure {
  position: absolute; bottom: 30%; left: 50%; transform: translateX(-50%);
  width: 24px; height: 70px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: lis-figure 4s ease-in-out infinite;
}
.scn-lute-in-the-storm .tree {
  position: absolute; bottom: 30%; left: 20%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #0a1a0a 0%, #000 100%);
  border-radius: 50% 50% 20% 20% / 70% 70% 20% 20%;
  transform-origin: bottom center;
  animation: lis-tree 6s ease-in-out infinite alternate;
}
.scn-lute-in-the-storm .moon {
  position: absolute; top: 12%; right: 35%; width: 30px; height: 30px;
  background: radial-gradient(circle, #d0d0c8 0%, #a0a098 50%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 8px rgba(160,160,152,0.4);
  animation: lis-moon 14s ease-in-out infinite alternate;
}
.scn-lute-in-the-storm .cloud-a {
  position: absolute; top: 8%; left: -25%; width: 200px; height: 25px;
  background: linear-gradient(180deg, rgba(40,50,60,0.8) 0%, rgba(20,30,40,0.3) 100%);
  border-radius: 50%; filter: blur(10px);
  animation: lis-cloud-a 30s linear infinite;
}
.scn-lute-in-the-storm .cloud-b {
  position: absolute; top: 18%; right: -40%; width: 160px; height: 20px;
  background: linear-gradient(180deg, rgba(50,60,70,0.7) 0%, rgba(30,40,50,0.2) 100%);
  border-radius: 50%; filter: blur(8px);
  animation: lis-cloud-b 40s linear infinite reverse;
}
.scn-lute-in-the-storm .lute-glow {
  position: absolute; bottom: 25%; left: 30%; width: 16px; height: 16px;
  background: radial-gradient(circle, #c0a080 0%, #907050 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 24px 6px rgba(192,160,128,0.5);
  animation: lis-lute 3s ease-in-out infinite alternate;
}
@keyframes lis-frame { 0%,100% { transform: translateX(-50%) scaleX(1); } 50% { transform: translateX(-50%) scaleX(1.02); } }
@keyframes lis-wall { 0% { filter: brightness(0.8); } 50% { filter: brightness(1); } 100% { filter: brightness(0.7); } }
@keyframes lis-figure { 0% { transform: translateX(-50%) translateY(0) rotate(0deg); } 50% { transform: translateX(-50%) translateY(-3px) rotate(2deg); } 100% { transform: translateX(-50%) translateY(0) rotate(0deg); } }
@keyframes lis-tree { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(3px) rotate(5deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes lis-moon { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.5; } }
@keyframes lis-cloud-a { 0% { transform: translateX(0); } 100% { transform: translateX(130vw); } }
@keyframes lis-cloud-b { 0% { transform: translateX(0); } 100% { transform: translateX(-130vw); } }
@keyframes lis-lute { 0% { opacity: 0.6; transform: scale(0.9); } 50% { opacity: 1; transform: scale(1.2); } 100% { opacity: 0.5; transform: scale(0.8); } }

.scn-emily-probes {
  background: linear-gradient(180deg, #2a1b0f 0%, #3a231a 40%, #4b2e1f 70%, #1c0f08 100%),
              radial-gradient(ellipse at 50% 60%, #7a4b2a 0%, transparent 70%);
}
.scn-emily-probes .wall {
  position: absolute; inset: 5% 5% 30% 5%;
  background: linear-gradient(180deg, rgba(48,28,16,0.9) 0%, rgba(32,18,10,0.7) 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: inset 0 4px 20px rgba(0,0,0,0.6);
  animation: ep-wall 12s ease-in-out infinite alternate;
}
.scn-emily-probes .floor {
  position: absolute; inset: 70% 5% 5% 5%;
  background: linear-gradient(0deg, #1a0e08 0%, #2a1a10 100%);
  border-radius: 0 0 4px 4px;
  box-shadow: inset 0 -4px 10px rgba(0,0,0,0.5);
  animation: ep-floor 8s ease-in-out infinite alternate;
}
.scn-emily-probes .window {
  position: absolute; top: 12%; left: 10%; width: 24%; height: 30%;
  background: radial-gradient(ellipse at 50% 50%, #4a3820 0%, #2a1a0f 80%);
  border: 3px solid #3a2218;
  border-radius: 6px 6px 0 0;
  animation: ep-window 9s ease-in-out infinite alternate;
}
.scn-emily-probes .picture {
  position: absolute; top: 15%; right: 12%; width: 18%; height: 26%;
  background: linear-gradient(135deg, #5a3a2a 0%, #3a2218 70%);
  border: 2px solid #7a4a30;
  border-radius: 4px;
  box-shadow: 0 4px 12px rgba(0,0,0,0.5);
  animation: ep-picture 14s ease-in-out infinite;
}
.scn-emily-probes .candle {
  position: absolute; bottom: 45%; left: 40%; width: 6px; height: 20px;
  background: linear-gradient(180deg, #ddaa55 0%, #885522 100%);
  border-radius: 3px 3px 0 0;
  transform-origin: bottom center;
  animation: ep-candle 2s ease-in-out infinite alternate;
}
.scn-emily-probes .candle::before {
  content: ""; position: absolute; top: -10px; left: -4px; width: 14px; height: 14px;
  background: radial-gradient(circle, #ffdd77 0%, #ffaa44 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 18px 6px rgba(255,170,68,0.4);
  animation: ep-flame 1.5s ease-in-out infinite alternate;
}
.scn-emily-probes .table {
  position: absolute; bottom: 38%; left: 35%; width: 30%; height: 8%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2218 100%);
  border-radius: 2px;
  box-shadow: 0 2px 6px rgba(0,0,0,0.5);
}
.scn-emily-probes .figure-woman {
  position: absolute; bottom: 25%; left: 50%; width: 12%; height: 38%;
  background: linear-gradient(180deg, #2a1a10 0%, #1a0e08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: ep-figure 6s ease-in-out infinite;
}

@keyframes ep-wall { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes ep-floor { 0% { transform: scaleY(1); } 50% { transform: scaleY(0.98); } 100% { transform: scaleY(1); } }
@keyframes ep-window { 0% { box-shadow: inset 0 0 8px #3a2218; } 50% { box-shadow: inset 0 0 20px #5a3828; } 100% { box-shadow: inset 0 0 10px #3a2218; } }
@keyframes ep-picture { 0%, 100% { transform: rotate(0deg); } 50% { transform: rotate(1deg) scale(1.01); } }
@keyframes ep-candle { 0% { transform: scaleY(1); } 100% { transform: scaleY(1.1); } }
@keyframes ep-flame { 0% { transform: scale(1); opacity: 0.9; } 100% { transform: scale(1.2) translateY(-2px); opacity: 1; } }
@keyframes ep-figure { 0%, 100% { transform: translateX(-50%) rotate(0deg); } 25% { transform: translateX(-48%) rotate(1deg); } 75% { transform: translateX(-52%) rotate(-1deg); } }

.scn-back-to-staircase {
  background: linear-gradient(180deg, #1c1210 0%, #2a1a15 35%, #3a2820 70%, #0e0808 100%),
              radial-gradient(ellipse at 50% 30%, #5a3a2a 0%, transparent 80%);
}
.scn-back-to-staircase .stair-bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #221812 0%, #3a2820 40%, #2a1a15 100%);
  animation: bs-bg 20s ease-in-out infinite alternate;
}
.scn-back-to-staircase .steps {
  position: absolute; bottom: 20%; left: 10%; right: 10%; height: 50%;
  background: repeating-linear-gradient(0deg, #3a2820 0px, #3a2820 8px, #2a1a15 8px, #2a1a15 16px);
  border-radius: 4px 4px 0 0;
  animation: bs-steps 10s ease-in-out infinite alternate;
}
.scn-back-to-staircase .arch {
  position: absolute; top: 5%; left: 30%; width: 40%; height: 40%;
  background: radial-gradient(ellipse at 50% 0%, #4a3020 0%, #221812 70%);
  clip-path: polygon(0% 100%, 10% 0%, 90% 0%, 100% 100%);
  animation: bs-arch 15s ease-in-out infinite;
}
.scn-back-to-staircase .figure-silhouette {
  position: absolute; bottom: 22%; left: 45%; width: 10%; height: 35%;
  background: linear-gradient(180deg, #1a0e0a 0%, #0e0806 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  animation: bs-figure 5s ease-in-out infinite;
}
.scn-back-to-staircase .shadow-cast {
  position: absolute; bottom: 18%; left: 40%; width: 20%; height: 15%;
  background: rgba(10,6,4,0.7);
  border-radius: 50% 50% 0 0;
  filter: blur(4px);
  animation: bs-shadow 5s ease-in-out infinite;
}
.scn-back-to-staircase .torch {
  position: absolute; top: 10%; left: 20%; width: 4%; height: 12%;
  background: linear-gradient(180deg, #b07430 0%, #6a421a 100%);
  border-radius: 2px 2px 0 0;
  box-shadow: 0 0 20px 8px rgba(200,120,40,0.3);
  animation: bs-torch 3s ease-in-out infinite alternate;
}
.scn-back-to-staircase .rail {
  position: absolute; bottom: 30%; left: 10%; right: 10%; height: 2%;
  background: #3a2820;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
}

@keyframes bs-bg { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes bs-steps { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes bs-arch { 0%, 100% { clip-path: polygon(0% 100%, 10% 0%, 90% 0%, 100% 100%); } 50% { clip-path: polygon(2% 100%, 12% 2%, 88% 2%, 98% 100%); } }
@keyframes bs-figure { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-4px) rotate(2deg); } 75% { transform: translateY(-2px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes bs-shadow { 0%, 100% { opacity: 0.5; transform: scaleX(1); } 50% { opacity: 0.8; transform: scaleX(1.1); } }
@keyframes bs-torch { 0% { box-shadow: 0 0 15px 4px rgba(200,120,40,0.2); } 100% { box-shadow: 0 0 30px 10px rgba(200,120,40,0.5); } }

.scn-hesitation-to-investigate {
  background: linear-gradient(180deg, #0e0a1a 0%, #1a121e 30%, #2a1c24 60%, #100c14 100%),
              radial-gradient(ellipse at 60% 50%, #4a2a2a 0%, transparent 70%);
}
.scn-hesitation-to-investigate .corridor-bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(90deg, #1a121e 0%, #2a1c24 20%, #1a121e 80%);
  animation: hi-corridor 18s ease-in-out infinite alternate;
}
.scn-hesitation-to-investigate .doorway {
  position: absolute; bottom: 30%; right: 10%; width: 25%; height: 55%;
  background: linear-gradient(180deg, #3a2820 0%, #1a1210 100%);
  border: 3px solid #5a3a2a;
  border-radius: 8px 8px 0 0;
  box-shadow: inset 0 0 20px #0a0608;
}
.scn-hesitation-to-investigate .threshold-glow {
  position: absolute; bottom: 30%; right: 10%; width: 25%; height: 45%;
  background: radial-gradient(ellipse at 50% 100%, #b08050 0%, transparent 60%);
  opacity: 0.6;
  animation: hi-glow 6s ease-in-out infinite alternate;
}
.scn-hesitation-to-investigate .figure-hesitant {
  position: absolute; bottom: 25%; left: 38%; width: 12%; height: 40%;
  background: linear-gradient(180deg, #1a1210 0%, #0e0a08 100%);
  border-radius: 50% 50% 35% 35% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hi-hesitate 4s ease-in-out infinite;
}
.scn-hesitation-to-investigate .floor-tiles {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: repeating-linear-gradient(90deg, #2a1c1a 0px, #2a1c1a 10px, #1a1210 10px, #1a1210 20px);
  animation: hi-floor 12s ease-in-out infinite alternate;
}
.scn-hesitation-to-investigate .window-niche {
  position: absolute; top: 10%; left: 5%; width: 15%; height: 25%;
  background: radial-gradient(ellipse at 50% 30%, #3a2a22 0%, #1a1210 70%);
  border-radius: 4px;
  box-shadow: inset 0 2px 8px rgba(0,0,0,0.4);
  animation: hi-window 9s ease-in-out infinite;
}

@keyframes hi-corridor { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes hi-glow { 0% { opacity: 0.4; transform: scaleY(1); } 50% { opacity: 0.8; transform: scaleY(1.05); } 100% { opacity: 0.5; transform: scaleY(0.95); } }
@keyframes hi-hesitate { 0%, 100% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(3px) rotate(3deg); } 70% { transform: translateX(-3px) rotate(-3deg); } }
@keyframes hi-floor { 0% { background-position: 0 0; } 100% { background-position: 20px 0; } }
@keyframes hi-window { 0%, 100% { box-shadow: inset 0 2px 8px rgba(0,0,0,0.4); } 50% { box-shadow: inset 0 2px 20px rgba(0,0,0,0.6); } }

.scn-servant-guides {
  background: linear-gradient(180deg, #0c060c 0%, #1a101a 35%, #2a1e24 70%, #140e12 100%),
              radial-gradient(ellipse at 30% 60%, #5a3a2a 0%, transparent 80%);
}
.scn-servant-guides .chamber-wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #1a101a 0%, #2a1e24 50%, #1a101a 100%);
  animation: sg-wall 15s ease-in-out infinite alternate;
}
.scn-servant-guides .flagstone {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: repeating-linear-gradient(90deg, #2a1e1a 0px, #2a1e1a 12px, #1a1410 12px, #1a1410 24px);
  animation: sg-floor 20s ease-in-out infinite alternate;
}
.scn-servant-guides .servant-figure {
  position: absolute; bottom: 28%; left: 25%; width: 10%; height: 38%;
  background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%);
  border-radius: 50% 50% 30% 30% / 55% 55% 35% 35%;
  animation: sg-servant 7s ease-in-out infinite;
}
.scn-servant-guides .emily-figure {
  position: absolute; bottom: 25%; left: 40%; width: 10%; height: 36%;
  background: linear-gradient(180deg, #1e1612 0%, #0e0a08 100%);
  border-radius: 50% 50% 35% 35% / 55% 55% 35% 35%;
  animation: sg-emily 7s ease-in-out infinite 0.5s;
}
.scn-servant-guides .lantern {
  position: absolute; bottom: 55%; left: 22%; width: 8px; height: 16px;
  background: radial-gradient(circle at 50% 50%, #ddaa55 0%, #b07a30 60%);
  border-radius: 4px;
  box-shadow: 0 0 30px 15px rgba(200,140,60,0.4);
  animation: sg-lantern 3s ease-in-out infinite alternate;
}
.scn-servant-guides .door-end {
  position: absolute; bottom: 20%; right: 5%; width: 18%; height: 50%;
  background: linear-gradient(180deg, #3a2a22 0%, #1a1410 100%);
  border: 2px solid #5a3a2a;
  border-radius: 6px 6px 0 0;
  box-shadow: inset 0 0 12px rgba(0,0,0,0.5);
  animation: sg-door 9s ease-in-out infinite;
}
.scn-servant-guides .shadow-long {
  position: absolute; bottom: 10%; left: 20%; width: 30%; height: 8%;
  background: rgba(8,4,4,0.6);
  border-radius: 50%;
  filter: blur(6px);
  animation: sg-shadow 8s ease-in-out infinite alternate;
}

@keyframes sg-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes sg-floor { 0% { background-position: 0 0; } 100% { background-position: 24px 0; } }
@keyframes sg-servant { 0%, 100% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(2deg); } 75% { transform: translateY(-1px) rotate(-1deg); } }
@keyframes sg-emily { 0%, 100% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-1px) rotate(1deg); } 75% { transform: translateY(-2px) rotate(-1deg); } }
@keyframes sg-lantern { 0% { transform: rotate(-10deg); } 100% { transform: rotate(10deg); } }
@keyframes sg-door { 0%, 100% { box-shadow: inset 0 0 12px rgba(0,0,0,0.5); } 50% { box-shadow: inset 0 0 20px rgba(0,0,0,0.7); } }
@keyframes sg-shadow { 0% { opacity: 0.4; transform: scaleX(0.8); } 100% { opacity: 0.7; transform: scaleX(1.1); } }

.scn-departure {
  background: linear-gradient(180deg, #87ceeb 0%, #f0e6c8 60%, #d4a373 100%), radial-gradient(ellipse at 20% 30%, #fff8dc 0%, transparent 70%);
}
.scn-departure .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #b0d4e8 0%, #a0c4e0 100%);
  animation: dep-sky 12s ease-in-out infinite alternate;
}
.scn-departure .sun {
  position: absolute; top: 15%; left: 70%; width: 50px; height: 50px;
  background: radial-gradient(circle, #fff5c0 0%, #f5d742 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(245,215,66,0.4), 0 0 80px 40px rgba(245,215,66,0.2);
  animation: dep-sun 8s ease-in-out infinite alternate;
}
.scn-departure .castle-wall {
  position: absolute; bottom: 30%; left: 10%; right: 10%; height: 40%;
  background: linear-gradient(180deg, #8a7b6b 0%, #6b5a4a 100%);
  border-radius: 10% 10% 20% 20% / 20% 20% 30% 30%;
  box-shadow: inset 0 -10px 30px rgba(0,0,0,0.4);
  animation: dep-wall 15s ease-in-out infinite;
}
.scn-departure .gate {
  position: absolute; bottom: 30%; left: 40%; width: 80px; height: 70px;
  background: #4a3a2a;
  border-radius: 50% 50% 0 0 / 60% 60% 0 0;
  border: 4px solid #2a1a0a;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.6), 0 0 10px rgba(0,0,0,0.5);
}
.scn-departure .cobbles {
  position: absolute; bottom: 18%; left: 0; right: 0; height: 16%;
  background: linear-gradient(180deg, #8c7b6a 0%, #6b5a49 100%);
  border-radius: 30% 30% 0 0 / 50% 50% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.3);
  animation: dep-cobbles 20s linear infinite;
}
.scn-departure .figure-a {
  position: absolute; bottom: 22%; left: 30%; width: 16px; height: 36px;
  background: linear-gradient(180deg, #c8553d 0%, #8a2e1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dep-walk 6s ease-in-out infinite;
}
.scn-departure .figure-b {
  position: absolute; bottom: 22%; left: 55%; width: 16px; height: 36px;
  background: linear-gradient(180deg, #4a6a8a 0%, #2a4a6a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: dep-walk 6s ease-in-out infinite 3s;
}
.scn-departure .banner {
  position: absolute; bottom: 55%; left: 28%; width: 8px; height: 40px;
  background: #a0461a;
  border-radius: 20% 20% 10% 10%;
  animation: dep-banner 5s ease-in-out infinite alternate;
}
.scn-departure .dust {
  position: absolute; bottom: 18%; left: 20%; width: 60px; height: 20px;
  background: rgba(200,180,160,0.15);
  filter: blur(8px);
  border-radius: 50%;
  animation: dep-dust 15s linear infinite;
}

@keyframes dep-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes dep-sun { 0% { transform: scale(0.95) translateY(0); opacity:0.9 } 50% { transform: scale(1.05) translateY(-5px); opacity:1 } 100% { transform: scale(0.98) translateY(0); opacity:0.9 } }
@keyframes dep-wall { 0%,100% { transform: translateX(0) } 50% { transform: translateX(-2px) } }
@keyframes dep-cobbles { 0% { background-position: 0 0 } 100% { background-position: 50px 0 } }
@keyframes dep-walk { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(4px) rotate(1deg) } 50% { transform: translateX(8px) rotate(-1deg) } 75% { transform: translateX(12px) rotate(2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes dep-banner { 0% { transform: rotate(-8deg) scaleY(1) } 100% { transform: rotate(8deg) scaleY(0.95) } }
@keyframes dep-dust { 0% { transform: translateX(0) scale(1); opacity:0 } 20% { opacity:0.6 } 80% { opacity:0.6 } 100% { transform: translateX(60px) scale(1.5); opacity:0 } }

.scn-questioning-ugo {
  background: linear-gradient(180deg, #5d8a5e 0%, #4a6a4a 60%, #3a5a3a 100%), radial-gradient(ellipse at 50% 30%, #8ab88a 0%, transparent 80%);
}
.scn-questioning-ugo .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #87ceeb 0%, #a8d8f0 100%);
  animation: que-sky 15s ease-in-out infinite alternate;
}
.scn-questioning-ugo .forest-bg {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #3a5a3a 0%, #2a4a2a 100%);
  border-radius: 40% 60% 0 0 / 30% 40% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.3);
}
.scn-questioning-ugo .hill {
  position: absolute; bottom: 30%; left: 25%; width: 180px; height: 100px;
  background: linear-gradient(135deg, #5a7a5a 0%, #3a5a3a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  box-shadow: 0 -8px 20px rgba(0,0,0,0.2);
  animation: que-hill 25s ease-in-out infinite alternate;
}
.scn-questioning-ugo .tree-left {
  position: absolute; bottom: 28%; left: 15%; width: 30px; height: 90px;
  background: linear-gradient(180deg, #4a6a3a 0%, #2a4a2a 100%);
  border-radius: 40% 40% 10% 10% / 60% 60% 10% 10%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.4);
  animation: que-tree 10s ease-in-out infinite;
}
.scn-questioning-ugo .tree-right {
  position: absolute; bottom: 28%; right: 20%; width: 30px; height: 90px;
  background: linear-gradient(180deg, #4a6a3a 0%, #2a4a2a 100%);
  border-radius: 40% 40% 10% 10% / 60% 60% 10% 10%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.4);
  animation: que-tree 10s ease-in-out infinite -3s;
}
.scn-questioning-ugo .guide {
  position: absolute; bottom: 26%; left: 40%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #8a6a4a 0%, #4a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: que-guide 8s ease-in-out infinite alternate;
}
.scn-questioning-ugo .horse {
  position: absolute; bottom: 25%; left: 46%; width: 40px; height: 30px;
  background: linear-gradient(135deg, #6a5a4a 0%, #3a2a1a 100%);
  border-radius: 40% 20% 30% 10% / 50% 30% 40% 20%;
  animation: que-horse 6s ease-in-out infinite;
}
.scn-questioning-ugo .trumpet-call {
  position: absolute; top: 25%; right: 30%; width: 12px; height: 30px;
  background: linear-gradient(180deg, #c8a86a 0%, #a08040 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 10% 10%;
  box-shadow: 0 0 20px 8px rgba(200,168,106,0.5);
  animation: que-trumpet 4s ease-in-out infinite alternate;
}
.scn-questioning-ugo .leaf-drift {
  position: absolute; top: 20%; left: -10%; width: 20px; height: 20px;
  background: radial-gradient(circle, #6a8a3a 0%, #4a6a2a 100%);
  border-radius: 50%;
  filter: blur(3px);
  animation: que-leaf 20s linear infinite;
}

@keyframes que-sky { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes que-hill { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-4px) scale(1.02) } 100% { transform: translateY(0) scale(1) } }
@keyframes que-tree { 0%,100% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-3px) rotate(1deg) } }
@keyframes que-guide { 0% { transform: translateX(0) rotate(-5deg) } 50% { transform: translateX(5px) rotate(3deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes que-horse { 0% { transform: translateX(0) scaleX(1) } 25% { transform: translateX(3px) scaleX(0.98) } 50% { transform: translateX(6px) scaleX(1) } 75% { transform: translateX(9px) scaleX(1.02) } 100% { transform: translateX(0) scaleX(1) } }
@keyframes que-trumpet { 0% { opacity:0.7; transform: scaleY(1) translateY(0) } 50% { opacity:1; transform: scaleY(1.1) translateY(-2px) } 100% { opacity:0.8; transform: scaleY(1) translateY(0) } }
@keyframes que-leaf { 0% { transform: translateX(0) translateY(0) rotate(0) } 50% { transform: translateX(50vw) translateY(-20px) rotate(180deg) } 100% { transform: translateX(100vw) translateY(0) rotate(360deg) } }

.scn-farewell-to-udolpho {
  background: linear-gradient(180deg, #4a2a4a 0%, #6a3a5a 30%, #8a5a5a 60%, #b08060 100%), radial-gradient(ellipse at 50% 0%, #d4a080 0%, transparent 70%);
}
.scn-farewell-to-udolpho .sky-sunset {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #5a2a4a 0%, #8a4a5a 50%, #c08060 100%);
  animation: far-sky 20s ease-in-out infinite alternate;
}
.scn-farewell-to-udolpho .mountains {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #3a2a3a 0%, #2a1a2a 100%);
  border-radius: 30% 70% 0 0 / 50% 60% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.5);
  animation: far-mountains 30s ease-in-out infinite alternate;
}
.scn-farewell-to-udolpho .distant-castle {
  position: absolute; bottom: 35%; left: 50%; width: 60px; height: 80px;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 10% 10%;
  transform: translateX(-50%) scale(0.7);
  box-shadow: 0 0 30px 10px rgba(0,0,0,0.6);
  animation: far-castle 15s ease-in-out infinite alternate;
}
.scn-farewell-to-udolpho .pines {
  position: absolute; bottom: 22%; left: 15%; width: 20px; height: 70px;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 10% 10%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.4);
  animation: far-pine 12s ease-in-out infinite;
}
.scn-farewell-to-udolpho .torrent {
  position: absolute; bottom: 15%; left: 30%; right: 30%; height: 8px;
  background: linear-gradient(90deg, rgba(180,160,140,0.6) 0%, rgba(140,120,100,0.6) 50%, rgba(180,160,140,0.6) 100%);
  border-radius: 50%;
  filter: blur(2px);
  animation: far-torrent 8s ease-in-out infinite alternate;
}
.scn-farewell-to-udolpho .figure-look-back {
  position: absolute; bottom: 20%; left: 60%; width: 16px; height: 38px;
  background: linear-gradient(180deg, #4a2a2a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: far-figure 10s ease-in-out infinite alternate;
}
.scn-farewell-to-udolpho .clouds-eve {
  position: absolute; top: 15%; right: 20%; width: 100px; height: 20px;
  background: linear-gradient(180deg, rgba(180,130,100,0.4) 0%, rgba(180,130,100,0.1) 100%);
  border-radius: 50%;
  filter: blur(6px);
  animation: far-cloud 40s linear infinite;
}

@keyframes far-sky { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes far-mountains { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes far-castle { 0% { opacity:0.6; transform: translateX(-50%) scale(0.65) } 50% { opacity:0.4; transform: translateX(-50%) scale(0.6) } 100% { opacity:0.6; transform: translateX(-50%) scale(0.65) } }
@keyframes far-pine { 0%,100% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-4px) rotate(1deg) } }
@keyframes far-torrent { 0% { transform: scaleX(1) translateX(0); opacity:0.5 } 50% { transform: scaleX(1.1) translateX(5px); opacity:0.8 } 100% { transform: scaleX(1) translateX(0); opacity:0.5 } }
@keyframes far-figure { 0% { transform: translateX(0) rotate(-10deg) } 50% { transform: translateX(-5px) rotate(5deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes far-cloud { 0% { transform: translateX(0) } 100% { transform: translateX(-120vw) } }

.scn-deep-glen {
  background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 50%, #2a1a2a 100%), radial-gradient(ellipse at 30% 40%, #1a2a3a 0%, transparent 70%);
}
.scn-deep-glen .dusk-sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 50%, #0a1a2a 100%);
  animation: dee-sky 15s ease-in-out infinite alternate;
}
.scn-deep-glen .cliff-left {
  position: absolute; bottom: 10%; left: 0; width: 40%; height: 60%;
  background: linear-gradient(135deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 0 40% 0 0 / 0 60% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.6);
  animation: dee-cliff 20s ease-in-out infinite alternate;
}
.scn-deep-glen .cliff-right {
  position: absolute; bottom: 10%; right: 0; width: 35%; height: 50%;
  background: linear-gradient(225deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 0 0 0 / 60% 0 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.6);
  animation: dee-cliff 20s ease-in-out infinite alternate 5s;
}
.scn-deep-glen .glen-floor {
  position: absolute; bottom: 0; left: 20%; right: 20%; height: 20%;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%);
  border-radius: 30% 30% 0 0 / 40% 40% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.5);
  animation: dee-floor 30s ease-in-out infinite;
}
.scn-deep-glen .twisted-tree {
  position: absolute; bottom: 15%; left: 40%; width: 50px; height: 100px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 10% 10%;
  transform: rotate(3deg);
  box-shadow: 0 4px 10px rgba(0,0,0,0.5);
  animation: dee-tree 12s ease-in-out infinite alternate;
}
.scn-deep-glen .shadow-fig {
  position: absolute; bottom: 8%; left: 30%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #0a0a1a 0%, #00000a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  opacity: 0.7;
  animation: dee-fig 8s ease-in-out infinite alternate;
}
.scn-deep-glen .bat-flock {
  position: absolute; top: 20%; right: 20%; width: 40px; height: 20px;
  background: radial-gradient(ellipse at 50% 50%, #1a1a2a 0%, transparent 100%);
  filter: blur(4px);
  border-radius: 50%;
  animation: dee-bat 12s linear infinite;
}

@keyframes dee-sky { 0% { opacity:0.6 } 50% { opacity:0.8 } 100% { opacity:0.5 } }
@keyframes dee-cliff { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes dee-floor { 0%,100% { transform: scale(1) } 50% { transform: scale(1.02) translateY(-1px) } }
@keyframes dee-tree { 0% { transform: rotate(2deg) scaleX(1) } 50% { transform: rotate(-2deg) scaleX(1.05) } 100% { transform: rotate(3deg) scaleX(1) } }
@keyframes dee-fig { 0% { transform: translateX(0) scaleY(1) } 50% { transform: translateX(8px) scaleY(0.95) } 100% { transform: translateX(0) scaleY(1) } }
@keyframes dee-bat { 0% { transform: translateX(0) translateY(0) scale(1) } 25% { transform: translateX(-20px) translateY(10px) scale(0.8) } 50% { transform: translateX(-40px) translateY(-5px) scale(1.2) } 75% { transform: translateX(-60px) translateY(8px) scale(0.9) } 100% { transform: translateX(-80px) translateY(0) scale(1) } }

/* ---- music-fails ---- */
.scn-music-fails { background: linear-gradient(180deg,#2a1a10 0%,#1a0e08 100%), radial-gradient(ellipse at 50% 30%,#6a3a1a 0%,transparent 60%); }
.scn-music-fails .lamp { position:absolute; top:5%; left:50%; width:12px; height:30px; background:#4a2a1a; border-radius:4px; transform-origin:top center; animation: mf-swing 6s ease-in-out infinite; }
.scn-music-fails .lamp-glow { position:absolute; top:15%; left:50%; width:60px; height:80px; transform:translate(-50%,-10px); background:radial-gradient(ellipse,#d08040 0%,transparent 70%); animation: mf-pulse 3s ease-in-out infinite; }
.scn-music-fails .figure { position:absolute; bottom:20%; left:40%; width:40px; height:80px; background:linear-gradient(180deg,#1a0e08,#0a0500); border-radius:50% 50% 30% 30%/60% 60% 30% 30%; animation: mf-breathe 4s ease-in-out infinite; }
.scn-music-fails .lute { position:absolute; bottom:28%; left:38%; width:30px; height:18px; background:#5a3a1a; border-radius:40% 60% 40% 60%; transform:rotate(15deg); animation: mf-breathe 4s ease-in-out infinite; }
.scn-music-fails .note { position:absolute; bottom:50%; width:8px; height:8px; border-radius:50%; background:#c0a060; animation: mf-float 8s linear infinite; }
.scn-music-fails .note-a { left:40%; }
.scn-music-fails .note-b { left:52%; width:6px; height:6px; background:#b09050; animation: mf-float 9s linear infinite 2s; }
.scn-music-fails .shadow { position:absolute; bottom:15%; left:35%; width:80px; height:20px; background:rgba(0,0,0,.4); border-radius:50%; filter:blur(6px); animation: mf-breathe 4s ease-in-out reverse infinite; }
@keyframes mf-swing { 0%,100%{transform:rotate(-2deg)} 50%{transform:rotate(2deg)} }
@keyframes mf-pulse { 0%,100%{opacity:.7} 50%{opacity:1} }
@keyframes mf-breathe { 0%,100%{transform:scale(1)} 50%{transform:scale(1.01)} }
@keyframes mf-float { 0%{opacity:0;transform:translateY(0) translateX(0)} 10%{opacity:.7} 100%{opacity:0;transform:translateY(-100px) translateX(20px)} }

/* ---- annette-talks-of-strangers ---- */
.scn-annette-talks-of-strangers { background: linear-gradient(180deg,#1a1210 0%,#0f0a08 100%), radial-gradient(ellipse at 50% 60%,#3a2010 0%,transparent 70%); }
.scn-annette-talks-of-strangers .table { position:absolute; bottom:20%; left:30%; width:40%; height:15px; background:linear-gradient(180deg,#4a3020,#2a1a10); border-radius:10% 10% 0 0; }
.scn-annette-talks-of-strangers .candle { position:absolute; bottom:30%; left:50%; width:8px; height:40px; background:#9a7a4a; border-radius:4px; transform:translateX(-50%); }
.scn-annette-talks-of-strangers .candle-glow { position:absolute; bottom:50%; left:50%; width:30px; height:50px; transform:translateX(-50%); background:radial-gradient(ellipse,#f0b060 0%,transparent 70%); animation: ats-glow 2s ease-in-out infinite; }
.scn-annette-talks-of-strangers .figure-left { position:absolute; bottom:18%; left:20%; width:40px; height:90px; background:linear-gradient(180deg,#1a0e08,#0a0500); border-radius:50% 50% 40% 40%/60% 60% 40% 40%; animation: ats-bob 5s ease-in-out infinite; }
.scn-annette-talks-of-strangers .figure-right { position:absolute; bottom:18%; right:20%; width:45px; height:95px; background:linear-gradient(180deg,#1a0e08,#0a0500); border-radius:50% 50% 40% 40%/60% 60% 40% 40%; animation: ats-bob 5s ease-in-out infinite reverse; }
.scn-annette-talks-of-strangers .shadow-left { position:absolute; bottom:15%; left:15%; width:70px; height:15px; background:rgba(0,0,0,.5); border-radius:50%; filter:blur(4px); animation: ats-fade 6s ease-in-out infinite; }
.scn-annette-talks-of-strangers .shadow-right { position:absolute; bottom:15%; right:15%; width:75px; height:15px; background:rgba(0,0,0,.5); border-radius:50%; filter:blur(4px); animation: ats-fade 6s ease-in-out infinite reverse; }
@keyframes ats-glow { 0%,100%{opacity:.6;transform:scale(1)} 50%{opacity:1;transform:scale(1.1)} }
@keyframes ats-bob { 0%,100%{transform:translateY(0)} 50%{transform:translateY(-3px)} }
@keyframes ats-fade { 0%,100%{opacity:.3} 50%{opacity:.6} }

/* ---- emily-emotion ---- */
.scn-emily-emotion { background: linear-gradient(180deg,#1a1820 0%,#0e0c12 100%), radial-gradient(ellipse at 60% 40%,#2a2030 0%,transparent 70%); }
.scn-emily-emotion .head { position:absolute; top:20%; left:35%; width:40px; height:50px; background:linear-gradient(180deg,#1a0e0a,#0a0502); border-radius:50% 50% 40% 40%/60% 60% 40% 40%; animation: ee-turn 8s ease-in-out infinite; }
.scn-emily-emotion .hand { position:absolute; top:30%; left:32%; width:14px; height:22px; background:#1a0e0a; border-radius:30% 30% 40% 40%; transform:rotate(-20deg); animation: ee-touch 5s ease-in-out infinite; }
.scn-emily-emotion .shoulder { position:absolute; top:45%; left:30%; width:60px; height:50px; background:linear-gradient(180deg,#1a0e0a,#0a0502); border-radius:30% 30% 20% 20%/50% 50% 30% 30%; }
.scn-emily-emotion .tear { position:absolute; top:28%; width:4px; height:6px; background:radial-gradient(circle,#a0b0c0 0%,transparent 100%); border-radius:50%; animation: ee-fall 4s linear infinite; }
.scn-emily-emotion .tear-a { left:38%; animation-delay:0s; }
.scn-emily-emotion .tear-b { left:42%; animation-delay:1.5s; }
.scn-emily-emotion .window-edge { position:absolute; top:0; right:0; width:20%; height:100%; background:linear-gradient(90deg,transparent 0%,#1a1a22 100%); }
.scn-emily-emotion .moonlight { position:absolute; top:10%; right:5%; width:40px; height:40px; background:radial-gradient(circle,#a0b0d0 0%,transparent 100%); opacity:.15; animation: ee-glow 10s ease-in-out infinite; }
@keyframes ee-turn { 0%,100%{transform:rotate(0)} 50%{transform:rotate(3deg)} }
@keyframes ee-touch { 0%,100%{transform:rotate(-20deg) translateY(0)} 50%{transform:rotate(-25deg) translateY(2px)} }
@keyframes ee-fall { 0%{transform:translateY(0);opacity:1} 100%{transform:translateY(40px);opacity:0} }
@keyframes ee-glow { 0%,100%{opacity:.1} 50%{opacity:.2} }

/* ---- peacemaker ---- */
.scn-peacemaker { background: linear-gradient(180deg,#1a1a28 0%,#0e0e18 100%), radial-gradient(ellipse at 70% 30%,#2a2a48 0%,transparent 70%); }
.scn-peacemaker .window-frame { position:absolute; top:5%; left:20%; width:60%; height:70%; background:linear-gradient(180deg,#3a2a1a 0%,#1a1008 100%); border-radius:10px; box-shadow:inset 0 0 40px rgba(0,0,0,.6); }
.scn-peacemaker .curtain { position:absolute; top:5%; width:25%; height:70%; background:linear-gradient(180deg,#4a3a2a,#2a1a10); animation: pm-sway 10s ease-in-out infinite; }
.scn-peacemaker .curtain-left { left:20%; border-radius:0 20% 20% 0; }
.scn-peacemaker .curtain-right { right:20%; border-radius:20% 0 0 20%; animation-delay:-5s; }
.scn-peacemaker .figure { position:absolute; bottom:25%; left:50%; width:30px; height:70px; transform:translateX(-50%); background:linear-gradient(180deg,#1a0e0a,#0a0502); border-radius:50% 50% 30% 30%/60% 60% 30% 30%; animation: pm-breathe 6s ease-in-out infinite; }
.scn-peacemaker .book { position:absolute; bottom:20%; left:48%; width:24px; height:14px; background:#8a7a50; border-radius:2px; transform:rotate(5deg); animation: pm-breathe 6s ease-in-out infinite reverse; }
.scn-peacemaker .moon-glow { position:absolute; top:15%; left:45%; width:80px; height:80px; background:radial-gradient(circle,#c0d0f0 0%,transparent 70%); opacity:.08; animation: pm-moon 15s ease-in-out infinite; }
@keyframes pm-sway { 0%,100%{transform:rotate(-2deg)} 50%{transform:rotate(2deg)} }
@keyframes pm-breathe { 0%,100%{transform:translateX(-50%) scale(1)} 50%{transform:translateX(-50%) scale(1.02)} }
@keyframes pm-moon { 0%,100%{opacity:.06;transform:scale(1)} 50%{opacity:.12;transform:scale(1.1)} }

/* ========== Scene: morano-farewell (tag: mf) ========== */
.scn-morano-farewell {
  background: linear-gradient(180deg, #1e1b1a 0%, #2b2522 40%, #1a1715 100%), radial-gradient(ellipse at 30% 40%, #3a2e2a 0%, transparent 70%);
}
.scn-morano-farewell .room-wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #3a2e2a 0%, #1e1b1a 100%); }
.scn-morano-farewell .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #2a2220 0%, #1a1513 100%); border-top: 2px solid #4a3a34; }
.scn-morano-farewell .window-glow { position:absolute; top:12%; left:15%; width:30%; height:50%; background: radial-gradient(ellipse, rgba(160,140,120,0.15) 0%, transparent 70%); border-radius: 10%; animation: mf-glow 8s ease-in-out infinite alternate; }
.scn-morano-farewell .candle { position:absolute; bottom:38%; left:55%; width:6px; height:20px; background: linear-gradient(180deg, #c4a060 0%, #8a6a40 100%); border-radius: 2px; box-shadow: 0 0 12px 6px #c4a060; animation: mf-candle 4s ease-in-out infinite; }
.scn-morano-farewell .figure-morano { position:absolute; bottom:35%; left:30%; width:40px; height:80px; background: linear-gradient(180deg, #1a1515 0%, #0f0c0c 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mf-turn 6s ease-in-out infinite; }
.scn-morano-farewell .figure-emily { position:absolute; bottom:35%; right:30%; width:35px; height:70px; background: linear-gradient(180deg, #2c2220 0%, #1e1615 100%); border-radius: 45% 45% 35% 35% / 55% 55% 45% 45%; animation: mf-reach 5s ease-in-out infinite; }
.scn-morano-farewell .smoke-1 { position:absolute; bottom:55%; left:54%; width:20px; height:30px; background: radial-gradient(circle, rgba(180,150,120,0.3) 0%, transparent 100%); filter: blur(4px); animation: mf-smoke1 12s linear infinite; }
.scn-morano-farewell .smoke-2 { position:absolute; bottom:55%; left:54%; width:30px; height:40px; background: radial-gradient(circle, rgba(180,150,120,0.2) 0%, transparent 100%); filter: blur(6px); animation: mf-smoke2 18s linear infinite; animation-delay: 6s; }
@keyframes mf-glow { 0% { opacity:0.6; transform: scale(1); } 50% { opacity:0.9; transform: scale(1.1); } 100% { opacity:0.6; transform: scale(1); } }
@keyframes mf-candle { 0% { opacity:0.8; transform: translateY(0) scaleY(1); } 25% { opacity:1; transform: translateY(-1px) scaleY(1.02); } 50% { opacity:0.9; transform: translateY(0) scaleY(0.98); } 75% { opacity:1; transform: translateY(-1px) scaleY(1.01); } 100% { opacity:0.8; transform: translateY(0) scaleY(1); } }
@keyframes mf-turn { 0% { transform: rotate(0deg); } 25% { transform: rotate(-2deg); } 50% { transform: rotate(1deg); } 75% { transform: rotate(-3deg); } 100% { transform: rotate(0deg); } }
@keyframes mf-reach { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(10px) rotate(-5deg); } 50% { transform: translateX(15px) rotate(-8deg); } 70% { transform: translateX(10px) rotate(-5deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes mf-smoke1 { 0% { transform: translate(0,0) scale(0.8); opacity:0; } 10% { opacity:0.6; } 100% { transform: translate(-20px,-40px) scale(1.8); opacity:0; } }
@keyframes mf-smoke2 { 0% { transform: translate(0,0) scale(0.6); opacity:0; } 10% { opacity:0.4; } 100% { transform: translate(30px,-50px) scale(2.2); opacity:0; } }

/* ========== Scene: emily-urges-haste (tag: euh) ========== */
.scn-emily-urges-haste {
  background: linear-gradient(180deg, #221e1c 0%, #2f2a26 40%, #1a1715 100%), radial-gradient(ellipse at 70% 20%, #3a322e 0%, transparent 60%);
}
.scn-emily-urges-haste .corridor-wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(90deg, #2e2825 0%, #1c1816 50%, #2e2825 100%); }
.scn-emily-urges-haste .door { position:absolute; bottom:30%; left:60%; width:60px; height:90px; background: linear-gradient(180deg, #4a3c34 0%, #2a1e1a 100%); border-radius: 6% 6% 0 0; border-left: 3px solid #3a2e28; border-right: 2px solid #3a2e28; animation: euh-door 10s ease-in-out infinite; }
.scn-emily-urges-haste .door-light { position:absolute; bottom:30%; left:60%; width:60px; height:90px; background: radial-gradient(ellipse at 50% 50%, rgba(200,180,120,0.2) 0%, transparent 70%); border-radius: 6% 6% 0 0; animation: euh-doorlight 5s ease-in-out infinite alternate; }
.scn-emily-urges-haste .shadow-verezzi { position:absolute; bottom:30%; left:75%; width:30px; height:70px; background: linear-gradient(180deg, #0f0c0c 0%, #0a0808 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; opacity:0.8; animation: euh-shadow 6s ease-in-out infinite; }
.scn-emily-urges-haste .figure-emily-hand { position:absolute; bottom:30%; left:45%; width:28px; height:65px; background: linear-gradient(180deg, #2c2420 0%, #1e1615 100%); border-radius: 45% 45% 35% 35% / 55% 55% 45% 45%; animation: euh-urge 3s ease-in-out infinite; }
.scn-emily-urges-haste .figure-emily-hand::after { content:''; position:absolute; top:20%; left:70%; width:10px; height:14px; background: #1a1412; border-radius: 30% 30% 20% 20% / 40% 40% 30% 30%; transform: rotate(20deg); animation: euh-hand 3s ease-in-out infinite; }
.scn-emily-urges-haste .figure-morano-urgent { position:absolute; bottom:30%; left:15%; width:38px; height:75px; background: linear-gradient(180deg, #1a1515 0%, #0f0c0c 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: euh-morano 8s ease-in-out infinite; }
.scn-emily-urges-haste .dust-particle-1 { position:absolute; top:20%; left:20%; width:2px; height:2px; background: rgba(200,180,140,0.4); border-radius:50%; filter: blur(1px); animation: euh-dust1 20s linear infinite; }
.scn-emily-urges-haste .dust-particle-2 { position:absolute; top:50%; left:80%; width:3px; height:3px; background: rgba(200,180,140,0.3); border-radius:50%; filter: blur(1px); animation: euh-dust2 25s linear infinite; animation-delay: 5s; }
@keyframes euh-door { 0% { transform: scaleY(1); } 25% { transform: scaleY(1.01) rotate(0.5deg); } 50% { transform: scaleY(1); } 75% { transform: scaleY(0.98) rotate(-0.5deg); } 100% { transform: scaleY(1); } }
@keyframes euh-doorlight { 0% { opacity:0.4; transform: scale(1); } 50% { opacity:0.7; transform: scale(1.05); } 100% { opacity:0.4; transform: scale(1); } }
@keyframes euh-shadow { 0% { transform: translateX(0) rotate(0deg); } 30% { transform: translateX(10px) rotate(2deg); } 50% { transform: translateX(15px) rotate(5deg); } 70% { transform: translateX(10px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes euh-urge { 0% { transform: translateX(0) rotate(0deg); } 20% { transform: translateX(-8px) rotate(-3deg); } 40% { transform: translateX(-12px) rotate(-5deg); } 60% { transform: translateX(-8px) rotate(-3deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes euh-hand { 0% { transform: rotate(20deg) scale(1); } 25% { transform: rotate(30deg) scale(1.1); } 50% { transform: rotate(20deg) scale(1); } 75% { transform: rotate(10deg) scale(0.9); } 100% { transform: rotate(20deg) scale(1); } }
@keyframes euh-morano { 0% { transform: rotate(0deg); } 30% { transform: rotate(2deg); } 50% { transform: rotate(-1deg); } 70% { transform: rotate(3deg); } 100% { transform: rotate(0deg); } }
@keyframes euh-dust1 { 0% { transform: translate(0,0); opacity:0; } 10% { opacity:0.6; } 100% { transform: translate(100px,-50px); opacity:0; } }
@keyframes euh-dust2 { 0% { transform: translate(0,0); opacity:0; } 10% { opacity:0.4; } 100% { transform: translate(-80px,-60px); opacity:0; } }

/* ========== Scene: emily-summons-montoni (tag: esm) ========== */
.scn-emily-summons-montoni {
  background: linear-gradient(180deg, #1a1a1e 0%, #2a2628 40%, #141316 100%), radial-gradient(ellipse at 50% 30%, #3a3436 0%, transparent 60%);
}
.scn-emily-summons-montoni .hall-walls { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #2c282a 0%, #1e1c1e 100%); }
.scn-emily-summons-montoni .floor-tiles { position:absolute; bottom:0; left:0; right:0; height:25%; background: repeating-linear-gradient(90deg, #221e20 0px, #1a1618 20px, #221e20 40px); border-top: 2px solid #3a3436; }
.scn-emily-summons-montoni .parlour-door { position:absolute; bottom:25%; left:40%; width:80px; height:100px; background: linear-gradient(180deg, #4a3e3c 0%, #2a2222 100%); border-radius: 8% 8% 0 0; border-left: 4px solid #3a3230; border-right: 4px solid #3a3230; border-top: 2px solid #4a3e3c; animation: esm-door 12s ease-in-out infinite; }
.scn-emily-summons-montoni .parlour-light { position:absolute; bottom:25%; left:40%; width:80px; height:100px; background: radial-gradient(ellipse at 50% 30%, rgba(180,100,60,0.25) 0%, transparent 70%); border-radius: 8% 8% 0 0; animation: esm-light 4s ease-in-out infinite alternate; }
.scn-emily-summons-montoni .figure-emily-approach { position:absolute; bottom:25%; left:50%; width:30px; height:68px; background: linear-gradient(180deg, #2a2426 0%, #1e1a1c 100%); border-radius: 45% 45% 35% 35% / 55% 55% 45% 45%; transform-origin: bottom center; animation: esm-walk 5s ease-in-out infinite; }
.scn-emily-summons-montoni .figure-montoni-shadow { position:absolute; bottom:25%; left:30%; width:45px; height:90px; background: linear-gradient(180deg, #0a080a 0%, #060406 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; opacity:0.7; animation: esm-shadow 9s ease-in-out infinite; }
.scn-emily-summons-montoni .torch-flame { position:absolute; top:15%; left:20%; width:12px; height:20px; background: radial-gradient(circle, #d08040 0%, #a05020 50%, transparent 100%); border-radius: 50%; box-shadow: 0 0 20px 10px #d08040; animation: esm-torch 3s ease-in-out infinite alternate; }
.scn-emily-summons-montoni .torch-smoke { position:absolute; top:10%; left:20%; width:8px; height:30px; background: radial-gradient(circle, rgba(180,100,60,0.2) 0%, transparent 100%); filter: blur(4px); animation: esm-smoke 15s linear infinite; }
@keyframes esm-door { 0% { transform: scaleY(1); } 30% { transform: scaleY(1.01) rotate(0.2deg); } 50% { transform: scaleY(0.99); } 70% { transform: scaleY(1.01) rotate(-0.2deg); } 100% { transform: scaleY(1); } }
@keyframes esm-light { 0% { opacity:0.5; transform: scale(1); } 50% { opacity:0.8; transform: scale(1.05); } 100% { opacity:0.5; transform: scale(1); } }
@keyframes esm-walk { 0% { transform: translateX(0) rotate(0deg); } 20% { transform: translateX(-5px) rotate(-2deg); } 40% { transform: translateX(-10px) rotate(0deg); } 60% { transform: translateX(-15px) rotate(1deg); } 80% { transform: translateX(-20px) rotate(-1deg); } 100% { transform: translateX(-25px) rotate(0deg); } }
@keyframes esm-shadow { 0% { transform: scaleY(1); opacity:0.6; } 30% { transform: scaleY(1.02); opacity:0.8; } 50% { transform: scaleY(0.98); opacity:0.6; } 70% { transform: scaleY(1.01); opacity:0.7; } 100% { transform: scaleY(1); opacity:0.6; } }
@keyframes esm-torch { 0% { transform: scale(0.9) translateY(0); opacity:0.7; } 25% { transform: scale(1.1) translateY(-1px); opacity:1; } 50% { transform: scale(0.95) translateY(1px); opacity:0.8; } 75% { transform: scale(1.05) translateY(-2px); opacity:0.9; } 100% { transform: scale(1) translateY(0); opacity:0.7; } }
@keyframes esm-smoke { 0% { transform: translate(0,0) scale(0.8); opacity:0; } 10% { opacity:0.3; } 100% { transform: translate(-15px,-40px) scale(1.5); opacity:0; } }

/* ========== Scene: montoni-rebukes (tag: mr) ========== */
.scn-montoni-rebukes {
  background: linear-gradient(180deg, #1c181a 0%, #2a2426 40%, #141012 100%), radial-gradient(ellipse at 60% 40%, #3a3032 0%, transparent 60%);
}
.scn-montoni-rebukes .parlour-background { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #2e282a 0%, #1e1a1c 100%); }
.scn-montoni-rebukes .chair { position:absolute; bottom:30%; left:15%; width:60px; height:50px; background: linear-gradient(180deg, #4a3c38 0%, #2a1e1c 100%); border-radius: 20% 20% 10% 10%; transform: skewX(-10deg); animation: mr-chair 20s ease-in-out infinite; }
.scn-montoni-rebukes .table { position:absolute; bottom:30%; left:50%; width:70px; height:8px; background: linear-gradient(180deg, #5a4a44 0%, #3a2e2a 100%); border-radius: 4px; transform: translateX(-50%); }
.scn-montoni-rebukes .figure-montoni-rebuke { position:absolute; bottom:30%; left:35%; width:45px; height:90px; background: linear-gradient(180deg, #161214 0%, #0a080a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mr-point 4s ease-in-out infinite; }
.scn-montoni-rebukes .figure-emily-cower { position:absolute; bottom:30%; right:20%; width:28px; height:60px; background: linear-gradient(180deg, #2a2426 0%, #1e1a1c 100%); border-radius: 45% 45% 35% 35% / 55% 55% 45% 45%; transform-origin: bottom center; animation: mr-cower 3s ease-in-out infinite; }
.scn-montoni-rebukes .candle-flame { position:absolute; bottom:45%; left:55%; width:8px; height:16px; background: radial-gradient(circle, #b08040 0%, #804020 60%, transparent 100%); border-radius: 50%; box-shadow: 0 0 12px 6px #b08040; animation: mr-flame 2s ease-in-out infinite alternate; }
.scn-montoni-rebukes .candle-drip { position:absolute; bottom:44%; left:55%; width:2px; height:12px; background: linear-gradient(180deg, #a07040 0%, #805030 100%); border-radius: 1px; animation: mr-drip 30s linear infinite; }
.scn-montoni-rebukes .shadow-on-wall { position:absolute; top:5%; right:15%; width:80px; height:150px; background: linear-gradient(180deg, rgba(0,0,0,0.4) 0%, transparent 100%); transform: skewX(10deg); border-radius: 40%; animation: mr-shadow 10s ease-in-out infinite; }
.scn-montoni-rebukes .dust-motes { position:absolute; top:20%; left:30%; width:4px; height:4px; background: rgba(200,180,140,0.2); border-radius:50%; filter: blur(1px); animation: mr-dust 40s linear infinite; }
@keyframes mr-chair { 0% { transform: skewX(-10deg) translateY(0); } 30% { transform: skewX(-10deg) translateY(-2px); } 50% { transform: skewX(-10deg) translateY(0); } 70% { transform: skewX(-10deg) translateY(-1px); } 100% { transform: skewX(-10deg) translateY(0); } }
@keyframes mr-point { 0% { transform: rotate(0deg); } 20% { transform: rotate(-5deg); } 40% { transform: rotate(5deg); } 60% { transform: rotate(-8deg); } 80% { transform: rotate(3deg); } 100% { transform: rotate(0deg); } }
@keyframes mr-cower { 0% { transform: scale(1) translateY(0); } 30% { transform: scale(0.95) translateY(3px); } 50% { transform: scale(0.9) translateY(5px); } 70% { transform: scale(0.95) translateY(3px); } 100% { transform: scale(1) translateY(0); } }
@keyframes mr-flame { 0% { transform: scale(0.9) translateY(0); opacity:0.8; } 25% { transform: scale(1.15) translateY(-2px); opacity:1; } 50% { transform: scale(1) translateY(0); opacity:0.9; } 75% { transform: scale(1.1) translateY(-1px); opacity:1; } 100% { transform: scale(0.9) translateY(0); opacity:0.8; } }
@keyframes mr-drip { 0% { transform: translateY(0) scaleY(1); opacity:0; } 10% { opacity:0.6; } 90% { opacity:0.6; } 100% { transform: translateY(30px) scaleY(0.5); opacity:0; } }
@keyframes mr-shadow { 0% { transform: skewX(10deg) scaleY(1); opacity:0.3; } 30% { transform: skewX(10deg) scaleY(1.05); opacity:0.5; } 50% { transform: skewX(10deg) scaleY(0.95); opacity:0.3; } 70% { transform: skewX(10deg) scaleY(1.02); opacity:0.4; } 100% { transform: skewX(10deg) scaleY(1); opacity:0.3; } }
@keyframes mr-dust { 0% { transform: translate(0,0); opacity:0; } 10% { opacity:0.4; } 100% { transform: translate(-80px,-60px); opacity:0; } }

.scn-resolve-to-enquire {
  background: linear-gradient(180deg, #0d0d2b 0%, #1a1a4a 40%, #2a2a5e 100%),
              radial-gradient(ellipse at 50% 30%, #3a3a7e 0%, transparent 70%);
}
.scn-resolve-to-enquire .rte-wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #1a1a3a 0%, #0f0f2a 100%);
  animation: rte-wall-pulse 6s ease-in-out infinite alternate;
}
.scn-resolve-to-enquire .rte-window-frame {
  position: absolute; left: 50%; top: 20%; width: 240px; height: 300px;
  transform: translateX(-50%);
  background: linear-gradient(135deg, #2a2a4e 0%, #151530 100%);
  border-radius: 8px;
  box-shadow: inset 0 0 40px rgba(0,0,0,.7), 0 0 0 6px #3a3a5e;
}
.scn-resolve-to-enquire .rte-moon {
  position: absolute; left: 52%; top: 24%; width: 60px; height: 60px;
  background: radial-gradient(circle at 40% 40%, #f0f0ff 0%, #c0c0e8 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(200,200,255,.3), 0 0 80px 40px rgba(200,200,255,.1);
  animation: rte-moon-drift 20s ease-in-out infinite alternate;
}
.scn-resolve-to-enquire .rte-landscape {
  position: absolute; left: 50%; bottom: 0; width: 300px; height: 200px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 60%, #050f1a 100%);
  border-radius: 40% 60% 0 0 / 30% 50% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,.5);
  animation: rte-landscape-sway 15s ease-in-out infinite alternate;
}
.scn-resolve-to-enquire .rte-figure-a {
  position: absolute; left: 46%; bottom: 14%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #2a2a4e 0%, #15152e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(3deg);
  animation: rte-figure-tilt-a 4s ease-in-out infinite alternate;
}
.scn-resolve-to-enquire .rte-figure-b {
  position: absolute; left: 53%; bottom: 12%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #2a2a4e 0%, #15152e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-2deg);
  animation: rte-figure-tilt-b 4.5s ease-in-out infinite alternate;
}
.scn-resolve-to-enquire .rte-cloud {
  position: absolute; left: 40%; top: 22%; width: 100px; height: 20px;
  background: rgba(180,180,220,.15);
  border-radius: 50%;
  filter: blur(8px);
  animation: rte-cloud-drift 40s linear infinite;
}
.scn-resolve-to-enquire .rte-star-scatter {
  position: absolute; inset: 0;
  background-image:
    radial-gradient(2px 2px at 20% 15%, #fff 0%, transparent 100%),
    radial-gradient(2px 2px at 45% 8%, #fff 0%, transparent 100%),
    radial-gradient(2px 2px at 70% 18%, #fff 0%, transparent 100%),
    radial-gradient(2px 2px at 85% 10%, #fff 0%, transparent 100%);
  background-size: 200px 200px;
  animation: rte-stars-twinkle 3s ease-in-out infinite alternate;
}

@keyframes rte-wall-pulse { 0% { opacity: .9 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes rte-moon-drift { 0% { transform: translate(0,0) scale(1) } 50% { transform: translate(6px,-4px) scale(1.02) } 100% { transform: translate(0,0) scale(1) } }
@keyframes rte-landscape-sway { 0% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-4px) } 100% { transform: translateX(-50%) translateY(0) } }
@keyframes rte-figure-tilt-a { 0% { transform: rotate(3deg) translateY(0) } 50% { transform: rotate(-1deg) translateY(-2px) } 100% { transform: rotate(3deg) translateY(0) } }
@keyframes rte-figure-tilt-b { 0% { transform: rotate(-2deg) translateY(0) } 50% { transform: rotate(1deg) translateY(-2px) } 100% { transform: rotate(-2deg) translateY(0) } }
@keyframes rte-cloud-drift { 0% { transform: translateX(0) } 100% { transform: translateX(120vw) } }
@keyframes rte-stars-twinkle { 0% { opacity: .4 } 50% { opacity: 1 } 100% { opacity: .5 } }

.scn-chest-against-door {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #2a2a44 30%, #1a1a2e 100%),
    radial-gradient(ellipse at 50% 0%, #3a3a5e 0%, transparent 70%);
}
.scn-chest-against-door .cad-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2a 100%);
  box-shadow: inset 0 8px 12px rgba(0,0,0,.5);
}
.scn-chest-against-door .cad-wall-left {
  position: absolute; left: 0; top: 0; bottom: 20%; width: 25%;
  background: linear-gradient(90deg, #1f1f33 0%, #2a2a44 100%);
  box-shadow: inset -8px 0 12px rgba(0,0,0,.4);
}
.scn-chest-against-door .cad-door {
  position: absolute; left: 32%; top: 10%; width: 160px; height: 280px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 4% 4% 2% 2%;
  box-shadow: 0 6px 20px rgba(0,0,0,.6), inset 0 2px 4px rgba(255,255,255,.1);
  animation: cad-door-tremble 2s ease-in-out infinite;
}
.scn-chest-against-door .cad-chest {
  position: absolute; left: 37%; bottom: 16%; width: 100px; height: 70px;
  background: linear-gradient(135deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 6% 6% 4% 4%;
  box-shadow: 0 8px 16px rgba(0,0,0,.7);
  animation: cad-chest-shift 3s ease-in-out infinite;
}
.scn-chest-against-door .cad-window {
  position: absolute; right: 10%; top: 30%; width: 80px; height: 120px;
  background: linear-gradient(180deg, #2a3a4e 0%, #1a2a3a 100%);
  border: 4px solid #2a2a44;
  border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(0,0,0,.8);
  animation: cad-window-light 8s ease-in-out infinite alternate;
}
.scn-chest-against-door .cad-figure {
  position: absolute; left: 58%; bottom: 18%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: cad-figure-hide 5s ease-in-out infinite;
}
.scn-chest-against-door .cad-dawn-rim {
  position: absolute; right: 5%; top: 38%; width: 30px; height: 10px;
  background: linear-gradient(90deg, rgba(255,200,100,.3) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(6px);
  animation: cad-dawn-creep 12s ease-in-out infinite alternate;
}

@keyframes cad-door-tremble { 0% { transform: translateX(0) } 25% { transform: translateX(2px) } 50% { transform: translateX(0) } 75% { transform: translateX(-1px) } 100% { transform: translateX(0) } }
@keyframes cad-chest-shift { 0% { transform: translate(0,0) rotate(0deg) } 30% { transform: translate(1px,-2px) rotate(-0.5deg) } 60% { transform: translate(-1px,1px) rotate(0.5deg) } 100% { transform: translate(0,0) rotate(0deg) } }
@keyframes cad-window-light { 0% { opacity: .3 } 50% { opacity: .8 } 100% { opacity: .4 } }
@keyframes cad-figure-hide { 0% { transform: scale(1) rotate(0) } 30% { transform: scale(1.05) rotate(2deg) } 70% { transform: scale(0.95) rotate(-2deg) } 100% { transform: scale(1) rotate(0) } }
@keyframes cad-dawn-creep { 0% { opacity: 0 } 50% { opacity: .6 } 100% { opacity: .2 } }

.scn-dawn-after-storm {
  background:
    linear-gradient(180deg, #4a6a8a 0%, #6a8aa8 30%, #8aaac8 50%, #aac8da 70%, #c8e0ea 100%),
    radial-gradient(ellipse at 50% 80%, #c8e0ea 0%, transparent 70%);
}
.scn-dawn-after-storm .das-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #f0e0c0 0%, #e0c8a0 30%, #c0a880 100%);
  animation: das-sky-glow 10s ease-in-out infinite alternate;
}
.scn-dawn-after-storm .das-sun {
  position: absolute; left: 40%; top: 10%; width: 80px; height: 80px;
  background: radial-gradient(circle at 40% 40%, #ffe080 0%, #ffc040 40%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 60px 30px rgba(255,192,64,.4), 0 0 120px 60px rgba(255,192,64,.2);
  animation: das-sun-rise 15s ease-in-out infinite alternate;
}
.scn-dawn-after-storm .das-mountains {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #5a6a7a 0%, #3a4a5a 100%);
  border-radius: 40% 60% 0 0 / 50% 70% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.3);
  animation: das-mtn-shift 20s ease-in-out infinite alternate;
}
.scn-dawn-after-storm .das-woods {
  position: absolute; bottom: 18%; left: 15%; right: 15%; height: 18%;
  background: linear-gradient(180deg, #2a4a2a 0%, #1a3a1a 100%);
  border-radius: 20% 30% 0 0 / 40% 50% 0 0;
  clip-path: polygon(0% 100%, 5% 60%, 10% 80%, 15% 50%, 20% 75%, 25% 40%, 30% 70%, 35% 50%, 40% 85%, 45% 45%, 50% 75%, 55% 40%, 60% 80%, 65% 50%, 70% 65%, 75% 35%, 80% 70%, 85% 45%, 90% 80%, 95% 55%, 100% 100%);
  animation: das-woods-sway 12s ease-in-out infinite alternate;
}
.scn-dawn-after-storm .das-lake {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 20%;
  background: linear-gradient(180deg, #6a8a9a 0%, #4a6a7a 100%);
  border-radius: 30% 70% 0 0 / 50% 50% 0 0;
  box-shadow: inset 0 4px 12px rgba(0,0,0,.2);
  animation: das-lake-ripple 8s ease-in-out infinite alternate;
}
.scn-dawn-after-storm .das-mist {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 12%;
  background: rgba(200,220,240,.15);
  filter: blur(12px);
  animation: das-mist-drift 30s linear infinite;
}
.scn-dawn-after-storm .das-bird {
  position: absolute; left: 60%; top: 20%; width: 30px; height: 20px;
  background: linear-gradient(90deg, #1a1a2e 0%, #2a2a44 100%);
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  transform: rotate(30deg);
  animation: das-bird-fly 18s ease-in-out infinite;
}
.scn-dawn-after-storm .das-reeds {
  position: absolute; bottom: 0; left: 8%; width: 16px; height: 40px;
  background: linear-gradient(180deg, #4a6a3a 0%, #2a4a1a 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
  box-shadow: -12px 0 0 #3a5a2a, -24px 0 0 #2a4a1a;
  animation: das-reeds-sway 4s ease-in-out infinite alternate;
}

@keyframes das-sky-glow { 0% { opacity: .6 } 50% { opacity: 1 } 100% { opacity: .7 } }
@keyframes das-sun-rise { 0% { transform: translate(0,20px) scale(.9); opacity: .7 } 50% { transform: translate(0,0) scale(1); opacity: 1 } 100% { transform: translate(0,10px) scale(.95); opacity: .85 } }
@keyframes das-mtn-shift { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(0) } }
@keyframes das-woods-sway { 0% { transform: scaleX(1) translateY(0) } 50% { transform: scaleX(1.02) translateY(-2px) } 100% { transform: scaleX(1) translateY(0) } }
@keyframes das-lake-ripple { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(1) } }
@keyframes das-mist-drift { 0% { transform: translateX(-20px) } 100% { transform: translateX(120vw) } }
@keyframes das-bird-fly { 0% { transform: translate(0,0) rotate(30deg) } 30% { transform: translate(40px,-20px) rotate(20deg) } 60% { transform: translate(80px,-10px) rotate(35deg) } 100% { transform: translate(120px,0) rotate(30deg) } }
@keyframes das-reeds-sway { 0% { transform: rotate(-2deg) } 50% { transform: rotate(3deg) } 100% { transform: rotate(-2deg) } }

.scn-days-of-suspense {
  background:
    linear-gradient(180deg, #d4c8b8 0%, #c4b8a8 40%, #b4a898 100%),
    radial-gradient(ellipse at 50% 0%, #e8e0d0 0%, transparent 70%);
}
.scn-days-of-suspense .dos-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%);
  box-shadow: inset 0 8px 16px rgba(0,0,0,.3);
}
.scn-days-of-suspense .dos-wall {
  position: absolute; inset: 0 0 15% 0;
  background: linear-gradient(180deg, #b8a898 0%, #a89888 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,.2);
}
.scn-days-of-suspense .dos-window {
  position: absolute; left: 50%; top: 15%; width: 140px; height: 180px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #aac8da 0%, #8aa8c0 100%);
  border: 6px solid #8a7a6a;
  border-radius: 8px;
  box-shadow: inset 0 0 30px rgba(0,0,0,.4), 0 0 0 2px #6a5a4a;
}
.scn-days-of-suspense .dos-wardrobe {
  position: absolute; right: 8%; top: 20%; width: 80px; height: 180px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 4px;
  box-shadow: 0 6px 12px rgba(0,0,0,.5);
}
.scn-days-of-suspense .dos-table {
  position: absolute; left: 25%; bottom: 20%; width: 120px; height: 40px;
  background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,.4);
}
.scn-days-of-suspense .dos-dust {
  position: absolute; inset: 0;
  background-image:
    radial-gradient(3px 3px at 20% 30%, rgba(200,180,140,.4) 0%, transparent 100%),
    radial-gradient(2px 2px at 50% 60%, rgba(200,180,140,.3) 0%, transparent 100%),
    radial-gradient(2px 2px at 80% 40%, rgba(200,180,140,.5) 0%, transparent 100%);
  background-size: 200px 200px;
  animation: dos-dust-drift 20s linear infinite;
}
.scn-days-of-suspense .dos-prisoner {
  position: absolute; left: 38%; bottom: 16%; width: 22px; height: 55px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(5deg);
  animation: dos-prisoner-shift 7s ease-in-out infinite alternate;
}
.scn-days-of-suspense .dos-light-beam {
  position: absolute; left: 50%; top: 15%; width: 100px; height: 300px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, rgba(240,220,180,.2) 0%, transparent 100%);
  clip-path: polygon(40% 0%, 60% 0%, 70% 100%, 30% 100%);
  animation: dos-beam-pulse 5s ease-in-out infinite alternate;
}

@keyframes dos-dust-drift { 0% { background-position: 0 0 } 100% { background-position: 200px 100px } }
@keyframes dos-prisoner-shift { 0% { transform: rotate(5deg) translateY(0) } 50% { transform: rotate(3deg) translateY(-3px) } 100% { transform: rotate(5deg) translateY(0) } }
@keyframes dos-beam-pulse { 0% { opacity: .4 } 50% { opacity: .8 } 100% { opacity: .5 } }

/* waterfall-and-vista */
.scn-waterfall-and-vista { background: linear-gradient(180deg, #87CEEB 0%, #5DADE2 40%, #2E86C1 70%, #1B4F72 100%), radial-gradient(ellipse at 50% 0%, #FFFFFF 0%, transparent 60%); }
.scn-waterfall-and-vista .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #85C1E9 0%, #AED6F1 50%, transparent 100%); animation: wv-sky 12s ease-in-out infinite alternate; }
.scn-waterfall-and-vista .mist-top { position:absolute; bottom:55%; left:0; right:0; height:15%; background: linear-gradient(180deg, rgba(255,255,255,0.5) 0%, rgba(255,255,255,0.1) 100%); filter: blur(10px); animation: wv-mist 20s ease-in-out infinite alternate; }
.scn-waterfall-and-vista .mountains-bg { position:absolute; bottom:30%; left:0; right:0; height:35%; background: linear-gradient(180deg, #5B7C99 0%, #3E5C76 40%, #1C3B5A 100%); clip-path: polygon(0% 100%, 10% 60%, 20% 40%, 30% 50%, 40% 20%, 50% 10%, 60% 30%, 70% 20%, 80% 50%, 90% 30%, 100% 60%, 100% 100%); animation: wv-mountains 30s ease infinite; }
.scn-waterfall-and-vista .waterfall { position:absolute; bottom:25%; left:45%; width:10%; height:40%; background: linear-gradient(180deg, #E0F7FA 0%, #B2EBF2 30%, #80DEEA 60%, #4DD0E1 100%); border-radius: 0 0 50% 50% / 0 0 40% 40%; box-shadow: 0 10px 30px rgba(0,0,0,0.2); animation: wv-fall 5s ease-in-out infinite alternate; }
.scn-waterfall-and-vista .rocks { position:absolute; bottom:18%; left:40%; width:20%; height:12%; background: linear-gradient(135deg, #6B6B6B 0%, #4A4A4A 50%, #2D2D2D 100%); border-radius: 60% 40% 30% 70% / 50% 60% 40% 50%; transform: rotate(-5deg); animation: wv-rocks 15s ease infinite; }
.scn-waterfall-and-vista .trees-left { position:absolute; bottom:20%; left:5%; width:25%; height:40%; background: radial-gradient(ellipse at 50% 100%, #1B5E20 0%, #2E7D32 40%, #388E3C 70%, transparent 100%); clip-path: polygon(0% 100%, 20% 60%, 40% 80%, 60% 30%, 80% 60%, 100% 100%); animation: wv-trees 25s ease-in-out infinite alternate; }
.scn-waterfall-and-vista .trees-right { position:absolute; bottom:20%; right:5%; width:25%; height:40%; background: radial-gradient(ellipse at 50% 100%, #1B5E20 0%, #2E7D32 40%, #388E3C 70%, transparent 100%); clip-path: polygon(0% 100%, 20% 30%, 40% 80%, 60% 60%, 80% 50%, 100% 100%); animation: wv-trees 25s ease-in-out infinite alternate-reverse; }
.scn-waterfall-and-vista .sun-rays { position:absolute; top:5%; left:20%; width:60%; height:20%; background: linear-gradient(135deg, rgba(255,255,255,0.3) 0%, transparent 100%); filter: blur(15px); animation: wv-rays 8s ease-in-out infinite alternate; }
.scn-waterfall-and-vista .spray { position:absolute; bottom:30%; left:48%; width:4%; height:8%; background: radial-gradient(circle, rgba(255,255,255,0.6) 0%, transparent 70%); filter: blur(5px); animation: wv-spray 3s ease-in-out infinite; }
@keyframes wv-sky { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes wv-mist { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-5px) scaleY(1.1) } 100% { transform: translateY(3px) scaleY(0.9) } }
@keyframes wv-mountains { 0% { transform: scaleX(1) translateX(0) } 50% { transform: scaleX(1.02) translateX(2px) } 100% { transform: scaleX(0.98) translateX(-2px) } }
@keyframes wv-fall { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(5px) scaleY(1.03) } 100% { transform: translateY(-3px) scaleY(0.98) } }
@keyframes wv-rocks { 0% { transform: rotate(-5deg) translateX(0) } 50% { transform: rotate(-3deg) translateX(2px) } 100% { transform: rotate(-6deg) translateX(-1px) } }
@keyframes wv-trees { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(0.98) } }
@keyframes wv-rays { 0% { opacity:0.2; transform: rotate(0deg) } 50% { opacity:0.4; transform: rotate(5deg) } 100% { opacity:0.3; transform: rotate(-3deg) } }
@keyframes wv-spray { 0% { opacity:0.5; transform: translateY(0) scale(1) } 50% { opacity:0.8; transform: translateY(-10px) scale(1.5) } 100% { opacity:0.3; transform: translateY(5px) scale(0.8) } }

/* pastoral-beauty */
.scn-pastoral-beauty { background: linear-gradient(180deg, #A9CCE3 0%, #85C1E9 30%, #D4E6F1 60%, #7FB3D8 100%), radial-gradient(ellipse at 50% 0%, #FFFFFF 0%, transparent 80%); }
.scn-pastoral-beauty .sky-light { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #D6EAF8 0%, #A9CCE3 100%); animation: pb-sky 15s ease-in-out infinite alternate; }
.scn-pastoral-beauty .cloud-slow { position:absolute; top:10%; left:10%; width:30%; height:8%; background: rgba(255,255,255,0.4); filter: blur(20px); border-radius: 50%; animation: pb-cloud 45s linear infinite; }
.scn-pastoral-beauty .mountains-far { position:absolute; bottom:30%; left:0; right:0; height:25%; background: linear-gradient(180deg, #5B7C99 0%, #3E5C76 50%, #1C3B5A 100%); clip-path: polygon(0% 100%, 15% 60%, 30% 70%, 45% 40%, 60% 50%, 75% 30%, 90% 60%, 100% 80%, 100% 100%); animation: pb-mountains 35s ease infinite; }
.scn-pastoral-beauty .hills-green { position:absolute; bottom:15%; left:0; right:0; height:25%; background: linear-gradient(180deg, #4CAF50 0%, #388E3C 40%, #1B5E20 100%); border-radius: 60% 40% 0 0 / 80% 70% 0 0; box-shadow: inset 0 10px 30px rgba(0,0,0,0.2); animation: pb-hills 20s ease-in-out infinite alternate; }
.scn-pastoral-beauty .stream { position:absolute; bottom:20%; left:20%; width:60%; height:5%; background: linear-gradient(135deg, #80DEEA 0%, #4DD0E1 50%, #26C6DA 100%); border-radius: 50%; filter: blur(2px); animation: pb-stream 12s ease-in-out infinite alternate; }
.scn-pastoral-beauty .hut { position:absolute; bottom:22%; left:35%; width:8%; height:10%; background: linear-gradient(180deg, #D35400 0%, #A04000 50%, #6E2C00 100%); border-radius: 5% 5% 10% 10%; box-shadow: 0 5px 10px rgba(0,0,0,0.4); animation: pb-hut 18s ease infinite; }
.scn-pastoral-beauty .cattle { position:absolute; bottom:18%; left:50%; width:12%; height:5%; background: radial-gradient(ellipse, #F0E68C 0%, #D4AC0D 50%, #B7950B 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(5deg); animation: pb-cattle 8s ease-in-out infinite alternate; }
.scn-pastoral-beauty .tree-cluster { position:absolute; bottom:20%; right:10%; width:15%; height:30%; background: radial-gradient(ellipse at 50% 100%, #1B5E20 0%, #2E7D32 50%, transparent 70%); clip-path: polygon(0% 100%, 20% 50%, 40% 70%, 60% 30%, 80% 60%, 100% 100%); animation: pb-trees 25s ease-in-out infinite; }
.scn-pastoral-beauty .mist-ground { position:absolute; bottom:0; left:0; right:0; height:10%; background: linear-gradient(180deg, rgba(255,255,255,0.3) 0%, transparent 100%); filter: blur(8px); animation: pb-mist 30s ease-in-out infinite alternate; }
@keyframes pb-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes pb-cloud { 0% { transform: translateX(-20%) } 50% { transform: translateX(30%) } 100% { transform: translateX(80vw) } }
@keyframes pb-mountains { 0% { transform: scaleY(1) translateY(0) } 50% { transform: scaleY(1.02) translateY(-2px) } 100% { transform: scaleY(0.98) translateY(2px) } }
@keyframes pb-hills { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes pb-stream { 0% { opacity:0.7; transform: scaleX(1) } 50% { opacity:1; transform: scaleX(1.05) } 100% { opacity:0.8; transform: scaleX(0.95) } }
@keyframes pb-hut { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(-1deg) } }
@keyframes pb-cattle { 0% { transform: rotate(5deg) scale(1) } 50% { transform: rotate(2deg) scale(1.05) } 100% { transform: rotate(8deg) scale(0.95) } }
@keyframes pb-trees { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.03) } 100% { transform: scaleY(0.97) } }
@keyframes pb-mist { 0% { opacity:0.4; transform: translateY(0) } 50% { opacity:0.7; transform: translateY(-5px) } 100% { opacity:0.5; transform: translateY(3px) } }

/* prayer-and-strength */
.scn-prayer-and-strength { background: linear-gradient(180deg, #FAD7A0 0%, #F5CBA7 30%, #E59866 60%, #D35400 100%), radial-gradient(ellipse at 50% 0%, #FFFFFF 0%, transparent 70%); }
.scn-prayer-and-strength .dawn-sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #F9E79F 0%, #FAD7A0 40%, transparent 100%); animation: pr-sky 14s ease-in-out infinite alternate; }
.scn-prayer-and-strength .sun-glow { position:absolute; top:5%; left:30%; width:40%; height:20%; background: radial-gradient(ellipse, #FFF3E0 0%, rgba(255,243,224,0.2) 100%); filter: blur(20px); animation: pr-glow 7s ease-in-out infinite alternate; }
.scn-prayer-and-strength .ridge { position:absolute; bottom:25%; left:0; right:0; height:30%; background: linear-gradient(180deg, #A04000 0%, #6E2C00 50%, #4A1C00 100%); clip-path: polygon(0% 100%, 10% 60%, 20% 70%, 30% 40%, 40% 50%, 50% 20%, 60% 40%, 70% 30%, 80% 50%, 90% 40%, 100% 70%, 100% 100%); animation: pr-ridge 28s ease infinite; }
.scn-prayer-and-strength .meadow { position:absolute; bottom:15%; left:0; right:0; height:20%; background: linear-gradient(180deg, #7DCEA0 0%, #52BE80 50%, #1E8449 100%); border-radius: 40% 60% 0 0 / 70% 80% 0 0; animation: pr-meadow 22s ease-in-out infinite alternate; }
.scn-prayer-and-strength .figure-kneel { position:absolute; bottom:18%; left:40%; width:8%; height:18%; background: linear-gradient(180deg, #2C3E50 0%, #1A252F 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pr-figure 6s ease-in-out infinite alternate; }
.scn-prayer-and-strength .rock-altar { position:absolute; bottom:15%; left:55%; width:10%; height:6%; background: linear-gradient(135deg, #7F8C8D 0%, #5D6D7E 50%, #34495E 100%); border-radius: 20% 20% 40% 40% / 30% 30% 50% 50%; box-shadow: 0 8px 15px rgba(0,0,0,0.5); animation: pr-altar 20s ease infinite; }
.scn-prayer-and-strength .light-beam { position:absolute; top:0; left:40%; width:20%; height:60%; background: linear-gradient(180deg, rgba(255,255,255,0.4) 0%, transparent 100%); filter: blur(10px); transform: rotate(10deg); animation: pr-beam 9s ease-in-out infinite alternate; }
.scn-prayer-and-strength .birds { position:absolute; top:15%; left:10%; width:5%; height:3%; background: radial-gradient(circle, #2C3E50 0%, transparent 70%); filter: blur(2px); animation: pr-birds 40s linear infinite; }
@keyframes pr-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes pr-glow { 0% { opacity:0.5; transform: scale(1) } 50% { opacity:0.9; transform: scale(1.1) } 100% { opacity:0.6; transform: scale(0.9) } }
@keyframes pr-ridge { 0% { transform: scaleX(1) translateX(0) } 50% { transform: scaleX(1.02) translateX(-3px) } 100% { transform: scaleX(0.98) translateX(2px) } }
@keyframes pr-meadow { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(0) } }
@keyframes pr-figure { 0% { transform: translateX(0) rotate(0deg) scaleY(1) } 50% { transform: translateX(3px) rotate(-2deg) scaleY(1.02) } 100% { transform: translateX(-3px) rotate(2deg) scaleY(0.98) } }
@keyframes pr-altar { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-2px) scale(1.02) } 100% { transform: translateY(1px) scale(0.98) } }
@keyframes pr-beam { 0% { opacity:0.3; transform: rotate(10deg) scaleY(1) } 50% { opacity:0.7; transform: rotate(8deg) scaleY(1.05) } 100% { opacity:0.5; transform: rotate(12deg) scaleY(0.95) } }
@keyframes pr-birds { 0% { transform: translateX(-10%) } 50% { transform: translateX(20%) } 100% { transform: translateX(110vw) } }

/* door-fastened */
.scn-door-fastened { background: linear-gradient(180deg, #2C3E50 0%, #1A252F 40%, #0E151C 100%), radial-gradient(ellipse at 50% 50%, #5D6D7E 0%, transparent 50%); }
.scn-door-fastened .corridor-wall { position:absolute; inset:0; background: linear-gradient(135deg, #34495E 0%, #2C3E50 50%, #1A252F 100%); animation: df-wall 20s ease-in-out infinite alternate; }
.scn-door-fastened .door { position:absolute; bottom:10%; left:30%; width:40%; height:70%; background: linear-gradient(180deg, #5D4037 0%, #3E2723 50%, #1A0F0A 100%); border: 4px solid #4E342E; border-radius: 2% 2% 5% 5%; box-shadow: inset 0 0 30px rgba(0,0,0,0.8), 0 10px 20px rgba(0,0,0,0.6); transform: perspective(800px) rotateY(0deg); animation: df-door 5s ease-in-out infinite alternate; }
.scn-door-fastened .lock-plate { position:absolute; bottom:45%; left:50%; width:8%; height:6%; background: linear-gradient(135deg, #B0BEC5 0%, #78909C 50%, #546E7A 100%); border-radius: 20%; box-shadow: 0 0 10px rgba(0,0,0,0.5); transform: translateX(-50%); }
.scn-door-fastened .keyhole-glow { position:absolute; bottom:46%; left:50%; width:2%; height:3%; background: radial-gradient(circle, #FFEB3B 0%, #F9A825 50%, transparent 100%); filter: blur(3px); animation: df-glow 3s ease-in-out infinite alternate; }
.scn-door-fastened .shadow-figure { position:absolute; bottom:10%; right:10%; width:15%; height:35%; background: linear-gradient(180deg, #1A1A1A 0%, #000000 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; opacity:0.6; transform: translateX(0); animation: df-shad 8s ease-in-out infinite alternate; }
.scn-door-fastened .floor-tiles { position:absolute; bottom:0; left:0; right:0; height:15%; background: repeating-linear-gradient(90deg, #4E342E 0px, #4E342E 20px, #3E2723 20px, #3E2723 40px); box-shadow: inset 0 10px 20px rgba(0,0,0,0.8); animation: df-floor 10s linear infinite; }
.scn-door-fastened .window-cast { position:absolute; top:10%; left:15%; width:20%; height:30%; background: linear-gradient(135deg, rgba(255,255,255,0.2) 0%, transparent 100%); clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%); animation: df-cast 9s ease-in-out infinite alternate; }
.scn-door-fastened .dust-motes { position:absolute; top:20%; left:40%; width:5%; height:10%; background: radial-gradient(circle, rgba(255,255,255,0.3) 0%, transparent 100%); filter: blur(4px); animation: df-dust 15s linear infinite; }
@keyframes df-wall { 0% { opacity:1 } 50% { opacity:0.9 } 100% { opacity:1 } }
@keyframes df-door { 0% { transform: perspective(800px) rotateY(0deg) } 50% { transform: perspective(800px) rotateY(3deg) } 100% { transform: perspective(800px) rotateY(-2deg) } }
@keyframes df-glow { 0% { opacity:0.3; transform: scale(1) } 50% { opacity:0.9; transform: scale(1.5) } 100% { opacity:0.4; transform: scale(0.8) } }
@keyframes df-shad { 0% { transform: translateX(0) scale(1) } 50% { transform: translateX(-10px) scale(1.05) } 100% { transform: translateX(5px) scale(0.95) } }
@keyframes df-floor { 0% { background-position: 0 0 } 100% { background-position: -40px 0 } }
@keyframes df-cast { 0% { opacity:0.2; clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%) } 50% { opacity:0.5; clip-path: polygon(10% 0, 90% 0, 80% 100%, 20% 100%) } 100% { opacity:0.3; clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%) } }
@keyframes df-dust { 0% { transform: translateY(0) translateX(0) } 50% { transform: translateY(-20px) translateX(10px) } 100% { transform: translateY(20px) translateX(-10px) } }

/* hamet-story-dawn */
.scn-hamet-story-dawn { background: linear-gradient(180deg, #4a3a1e 0%, #7a6a3a 30%, #c8a060 60%), radial-gradient(ellipse at 50% 100%, #d8b070 0%, transparent 60%); }
.scn-hamet-story-dawn .sky { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #c86840 0%, #f0b060 40%, #ffe0a0 70%, #fff8d0 100%); animation: hsd-sky 12s ease-in-out infinite alternate; }
.scn-hamet-story-dawn .sun { position:absolute; top:20%; left:60%; width:60px; height:60px; background: radial-gradient(circle, #ffe080 0%, #f0a040 50%, transparent 70%); border-radius:50%; box-shadow: 0 0 40px 20px #f0a040, 0 0 80px 40px rgba(240,160,64,.4); animation: hsd-sun 8s ease-in-out infinite alternate; }
.scn-hamet-story-dawn .cloud { position:absolute; height:20px; background: linear-gradient(180deg, rgba(255,255,255,.7) 0%, rgba(255,200,150,.2) 100%); border-radius:50%; filter:blur(4px); }
.scn-hamet-story-dawn .cloud-a { top:12%; left:10%; width:100px; animation: hsd-drift 40s linear infinite; }
.scn-hamet-story-dawn .cloud-b { top:28%; left:60%; width:70px; animation: hsd-drift 50s linear infinite reverse; animation-delay:-15s; }
.scn-hamet-story-dawn .dunes { position:absolute; bottom:25%; left:0; right:0; height:30%; background: linear-gradient(180deg, #b08850 0%, #8a6a3a 50%, #6a4a2a 100%); border-radius: 40% 60% 0 0 / 80% 70% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.3); animation: hsd-dunes 20s ease-in-out infinite alternate; }
.scn-hamet-story-dawn .camel { position:absolute; bottom:35%; width:40px; height:30px; background: linear-gradient(180deg, #5a4a2a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; }
.scn-hamet-story-dawn .camel-1 { left:30%; animation: hsd-camel 6s ease-in-out infinite; }
.scn-hamet-story-dawn .camel-2 { left:50%; animation: hsd-camel 8s ease-in-out infinite reverse; animation-delay:-2s; }
.scn-hamet-story-dawn .figure { position:absolute; bottom:32%; left:38%; width:16px; height:36px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: hsd-walk 4s ease-in-out infinite; }
.scn-hamet-story-dawn .shepherd { position:absolute; bottom:30%; left:55%; width:14px; height:32px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: hsd-walk 5s ease-in-out infinite 1s; }
@keyframes hsd-sky { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes hsd-sun { 0% { transform: translateY(0) scale(1); box-shadow:0 0 30px 15px #f0a040; } 50% { transform: translateY(-4px) scale(1.05); box-shadow:0 0 50px 25px #ffb060; } 100% { transform: translateY(2px) scale(1); box-shadow:0 0 35px 18px #e89838; } }
@keyframes hsd-drift { 0% { transform: translateX(-40px) } 50% { transform: translateX(50vw) } 100% { transform: translateX(120vw) } }
@keyframes hsd-dunes { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes hsd-camel { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 25% { transform: translateX(8px) translateY(-1px) rotate(2deg) } 50% { transform: translateX(16px) translateY(0) rotate(0) } 75% { transform: translateX(24px) translateY(-1px) rotate(-2deg) } 100% { transform: translateX(32px) translateY(0) rotate(0) } }
@keyframes hsd-walk { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 25% { transform: translateX(5px) translateY(-1px) rotate(2deg) } 50% { transform: translateX(10px) translateY(0) rotate(0) } 75% { transform: translateX(15px) translateY(-1px) rotate(-2deg) } 100% { transform: translateX(20px) translateY(0) rotate(0) } }

/* hamet-story-homecoming */
.scn-hamet-story-homecoming { background: linear-gradient(180deg, #6a8a9a 0%, #8aa8b8 30%, #c8d8d8 60%), radial-gradient(ellipse at 50% 100%, #b8a878 0%, transparent 50%); }
.scn-hamet-story-homecoming .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #4a7a8a 0%, #7ab8c8 40%, #c8e0e0 70%, #e8f0f0 100%); animation: hsh-sky 15s ease-in-out infinite alternate; }
.scn-hamet-story-homecoming .sun { position:absolute; top:15%; right:20%; width:50px; height:50px; background: radial-gradient(circle, #ffe8a0 0%, #ffc860 40%, transparent 60%); border-radius:50%; box-shadow: 0 0 30px 15px #ffc860, 0 0 60px 30px rgba(255,200,96,.4); animation: hsh-sun 10s ease-in-out infinite alternate; }
.scn-hamet-story-homecoming .ground { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(0deg, #8a7a5a 0%, #a09868 40%, #c0b080 100%); border-radius: 30% 20% 0 0 / 20% 10% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.2); }
.scn-hamet-story-homecoming .house { position:absolute; bottom:28%; left:35%; width:80px; height:60px; background: linear-gradient(180deg, #b8a070 0%, #8a7a5a 100%); border-radius: 8% 8% 4% 4%; box-shadow: 0 6px 12px rgba(0,0,0,.3); animation: hsh-house 6s ease-in-out infinite; }
.scn-hamet-story-homecoming .house::after { content:''; position:absolute; top:-10px; left:50%; width:0; height:0; border-left:30px solid transparent; border-right:30px solid transparent; border-bottom:20px solid #8a6a4a; transform:translateX(-50%); }
.scn-hamet-story-homecoming .palm { position:absolute; bottom:25%; width:8px; height:50px; background: linear-gradient(180deg, #5a4a2a 0%, #3a2a1a 100%); border-radius: 20%; }
.scn-hamet-story-homecoming .palm-1 { left:50%; transform:rotate(-10deg); animation: hsh-palm 8s ease-in-out infinite; }
.scn-hamet-story-homecoming .palm-2 { left:60%; transform:rotate(5deg); animation: hsh-palm 10s ease-in-out infinite reverse; animation-delay:-2s; }
.scn-hamet-story-homecoming .camel { position:absolute; bottom:30%; left:20%; width:35px; height:25px; background: linear-gradient(180deg, #6a5a3a 0%, #4a3a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: hsh-camel 7s ease-in-out infinite; }
.scn-hamet-story-homecoming .figure { position:absolute; bottom:28%; left:28%; width:14px; height:30px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: hsh-walk 4s ease-in-out infinite; }
@keyframes hsh-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes hsh-sun { 0% { transform: translateY(0) scale(1); box-shadow:0 0 20px 10px #ffc860; } 50% { transform: translateY(-3px) scale(1.03); box-shadow:0 0 40px 18px #ffd878; } 100% { transform: translateY(2px) scale(1); box-shadow:0 0 25px 12px #ffb040; } }
@keyframes hsh-house { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-3px) } }
@keyframes hsh-palm { 0% { transform-origin: bottom center; transform: rotate(-10deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(-10deg) } }
@keyframes hsh-camel { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 25% { transform: translateX(6px) translateY(-1px) rotate(2deg) } 50% { transform: translateX(12px) translateY(0) rotate(0) } 75% { transform: translateX(18px) translateY(-1px) rotate(-2deg) } 100% { transform: translateX(24px) translateY(0) rotate(0) } }
@keyframes hsh-walk { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 25% { transform: translateX(4px) translateY(-1px) rotate(2deg) } 50% { transform: translateX(8px) translateY(0) rotate(0) } 75% { transform: translateX(12px) translateY(-1px) rotate(-2deg) } 100% { transform: translateX(16px) translateY(0) rotate(0) } }

/* brenta-entrance */
.scn-brenta-entrance { background: linear-gradient(180deg, #2a2a4a 0%, #4a3a5a 30%, #6a4a6a 60%), radial-gradient(ellipse at 50% 100%, #8a5a6a 0%, transparent 50%); }
.scn-brenta-entrance .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #3a3a5a 0%, #6a5a7a 30%, #8a6a7a 60%, #b08a7a 100%); animation: be-sky 20s ease-in-out infinite alternate; }
.scn-brenta-entrance .water { position:absolute; bottom:20%; left:0; right:0; height:40%; background: linear-gradient(180deg, #4a4a6a 0%, #3a3a5a 50%, #2a2a4a 100%); border-radius: 0 0 40% 40% / 20% 20%; box-shadow: inset 0 8px 20px rgba(0,0,0,.3); animation: be-water 12s ease-in-out infinite alternate; }
.scn-brenta-entrance .mountains { position:absolute; bottom:45%; left:0; right:0; height:15%; background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%); border-radius: 30% 70% 0 0 / 60% 40% 0 0; box-shadow: inset 0 4px 10px rgba(0,0,0,.4); }
.scn-brenta-entrance .barge { position:absolute; bottom:28%; left:40%; width:70px; height:14px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 2px 6px rgba(0,0,0,.4); animation: be-barge 8s ease-in-out infinite; }
.scn-brenta-entrance .sail { position:absolute; bottom:30%; left:45%; width:20px; height:40px; background: linear-gradient(180deg, #b0a68a 0%, #8a7a6a 100%); border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%; transform: rotate(5deg); box-shadow: 0 2px 8px rgba(0,0,0,.2); animation: be-sail 6s ease-in-out infinite alternate; }
.scn-brenta-entrance .sun { position:absolute; top:25%; right:15%; width:40px; height:40px; background: radial-gradient(circle, #e8a060 0%, #c07040 50%, transparent 70%); border-radius:50%; box-shadow: 0 0 30px 15px #c07040, 0 0 60px 30px rgba(192,112,64,.3); animation: be-sun 10s ease-in-out infinite alternate; }
.scn-brenta-entrance .hills { position:absolute; bottom:40%; left:10%; width:50%; height:10%; background: linear-gradient(180deg, #4a4a5a 0%, #3a3a4a 100%); border-radius: 50% 50% 0 0 / 80% 80% 0 0; opacity:.6; }
.scn-brenta-entrance .seagull { position:absolute; width:12px; height:6px; background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%); border-radius: 50% 50% 0 0; }
.scn-brenta-entrance .seagull-1 { top:15%; left:20%; animation: be-gull 30s linear infinite; }
.scn-brenta-entrance .seagull-2 { top:22%; left:70%; animation: be-gull 35s linear infinite reverse; animation-delay:-10s; }
@keyframes be-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.6 } }
@keyframes be-water { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(2px) } }
@keyframes be-barge { 0% { transform: translateX(0) translateY(0) rotate(0deg) } 25% { transform: translateX(2px) translateY(-1px) rotate(1deg) } 50% { transform: translateX(0) translateY(0) rotate(0deg) } 75% { transform: translateX(-2px) translateY(-1px) rotate(-1deg) } 100% { transform: translateX(0) translateY(0) rotate(0deg) } }
@keyframes be-sail { 0% { transform: rotate(3deg) scaleX(1) } 50% { transform: rotate(0deg) scaleX(0.95) } 100% { transform: rotate(-3deg) scaleX(1) } }
@keyframes be-sun { 0% { transform: translateY(0) scale(1); box-shadow:0 0 20px 10px #c07040; } 50% { transform: translateY(-3px) scale(1.05); box-shadow:0 0 40px 18px #d08050; } 100% { transform: translateY(2px) scale(1); box-shadow:0 0 25px 12px #b06030; } }
@keyframes be-gull { 0% { transform: translateX(-20px) } 50% { transform: translateX(60vw) } 100% { transform: translateX(120vw) } }

/* palladian-villas */
.scn-palladian-villas { background: linear-gradient(180deg, #6a8a7a 0%, #8aaa8a 30%, #b8c8a8 60%), radial-gradient(ellipse at 50% 100%, #d8c898 0%, transparent 50%); }
.scn-palladian-villas .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #4a6a5a 0%, #8aaa8a 40%, #c8d8b8 70%, #e8e8d0 100%); animation: pv-sky 18s ease-in-out infinite alternate; }
.scn-palladian-villas .ground { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(0deg, #8a7a5a 0%, #a89a78 40%, #c8b898 100%); border-radius: 20% 20% 0 0 / 10% 10% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.15); }
.scn-palladian-villas .villa { position:absolute; bottom:25%; left:30%; width:120px; height:70px; background: linear-gradient(180deg, #c8b898 0%, #a89a78 100%); border-radius: 4% 4% 8% 8%; box-shadow: 0 8px 16px rgba(0,0,0,.3); animation: pv-villa 10s ease-in-out infinite; }
.scn-palladian-villas .columns { position:absolute; bottom:28%; left:33%; width:8px; height:40px; background: linear-gradient(180deg, #d8c8a8 0%, #b8a888 100%); border-radius: 10%; box-shadow: 12px 0 0 #b8a888, 24px 0 0 #d8c8a8; animation: pv-columns 8s ease-in-out infinite; }
.scn-palladian-villas .arcades { position:absolute; bottom:25%; left:28%; width:50px; height:20px; border: 2px solid #8a7a5a; border-radius: 50% 50% 0 0 / 100% 100% 0 0; background: linear-gradient(180deg, transparent 60%, #a89a78 60%); opacity:.6; animation: pv-arcades 12s ease-in-out infinite; }
.scn-palladian-villas .orange-tree { position:absolute; bottom:25%; left:55%; width:40px; height:50px; background: radial-gradient(circle at 50% 30%, #6a8a3a 0%, #4a6a2a 60%); border-radius: 50%; box-shadow: 0 4px 8px rgba(0,0,0,.2); animation: pv-tree 7s ease-in-out infinite; }
.scn-palladian-villas .orange-tree::after { content:''; position:absolute; bottom:-8px; left:50%; width:6px; height:15px; background: #5a4a2a; border-radius: 20%; transform:translateX(-50%); }
.scn-palladian-villas .pine { position:absolute; bottom:22%; width:18px; height:45px; background: linear-gradient(180deg, #2a4a2a 0%, #1a3a1a 100%); border-radius: 50% 50% 10% 10% / 60% 60% 20% 20%; }
.scn-palladian-villas .pine-1 { left:70%; animation: pv-pine 9s ease-in-out infinite; }
.scn-palladian-villas .pine-2 { left:80%; animation: pv-pine 11s ease-in-out infinite reverse; animation-delay:-3s; }
.scn-palladian-villas .flowers { position:absolute; bottom:15%; left:20%; width:30px; height:12px; background: radial-gradient(circle, #c87050 0%, #a85840 50%, transparent 70%); border-radius: 50%; box-shadow: 15px -3px 0 #c87050, 30px 0 0 #b06040; animation: pv-flowers 6s ease-in-out infinite alternate; }
@keyframes pv-sky { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.75 } }
@keyframes pv-villa { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes pv-columns { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-2px) scaleY(1.02) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes pv-arcades { 0% { opacity:.5 } 50% { opacity:.8 } 100% { opacity:.5 } }
@keyframes pv-tree { 0% { transform: scale(1) rotate(0deg) } 50% { transform: scale(1.03) rotate(2deg) } 100% { transform: scale(1) rotate(0deg) } }
@keyframes pv-pine { 0% { transform: translateY(0) rotate(-3deg) } 50% { transform: translateY(-3px) rotate(0deg) } 100% { transform: translateY(0) rotate(3deg) } }
@keyframes pv-flowers { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-1px) scale(1.1) } 100% { transform: translateY(0) scale(1) } }

/* scene 1: sunset-and-watch */
.scn-sunset-and-watch {
  background: linear-gradient(180deg, #ff7c3a 0%, #b04d5a 30%, #4a3060 70%, #1a1a3e 100%),
              radial-gradient(ellipse at 50% 30%, #ff9955 0%, transparent 60%);
}
.scn-sunset-and-watch .sky-grad {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #ffaa66 0%, #d06070 40%, #603050 80%);
  animation: ssw-fade 12s ease-in-out infinite alternate;
}
.scn-sunset-and-watch .mountains {
  position: absolute; bottom: 34%; left: 0; right: 0; height: 20%;
  background: linear-gradient(135deg, #2a1a2a 0%, #3a2a3a 30%, #1a1a2a 100%);
  border-radius: 20% 80% 0 0 / 60% 80% 0 0;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.5);
  animation: ssw-hills 18s ease-in-out infinite alternate;
}
.scn-sunset-and-watch .rampart {
  position: absolute; bottom: 20%; left: 10%; right: 10%; height: 14%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 -6px 12px rgba(0,0,0,0.4);
}
.scn-sunset-and-watch .sentinel {
  position: absolute; bottom: 20%; left: 70%; width: 16px; height: 36px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ssw-patrol 8s ease-in-out infinite;
}
.scn-sunset-and-watch .twilight-glow {
  position: absolute; top: 10%; left: 40%; width: 80px; height: 40px;
  background: radial-gradient(ellipse, rgba(255,180,100,0.3) 0%, transparent 70%);
  filter: blur(10px);
  animation: ssw-glow-toggle 10s ease-in-out infinite alternate;
}
.scn-sunset-and-watch .star {
  position: absolute; width: 3px; height: 3px;
  background: #fff; border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(255,255,255,0.5);
  animation: ssw-twinkle 3s ease-in-out infinite;
}
.scn-sunset-and-watch .star1 { top: 8%; left: 15%; }
.scn-sunset-and-watch .star2 { top: 12%; right: 20%; animation-delay: 1.5s; }

@keyframes ssw-fade { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes ssw-hills { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(0); } }
@keyframes ssw-patrol { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(12px) rotate(2deg); } 50% { transform: translateX(24px) rotate(0); } 75% { transform: translateX(12px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes ssw-glow-toggle { 0% { opacity: 0.3; transform: scale(0.95); } 50% { opacity: 0.7; transform: scale(1.05); } 100% { opacity: 0.4; transform: scale(0.98); } }
@keyframes ssw-twinkle { 0% { opacity: 1; filter: brightness(1); } 50% { opacity: 0.4; filter: brightness(0.6); } 100% { opacity: 1; filter: brightness(1); } }

/* scene 2: fears-of-intrusion */
.scn-fears-of-intrusion {
  background: linear-gradient(180deg, #0f0f1a 0%, #1a1a2e 40%, #2a2a44 70%, #0a0a1a 100%),
              radial-gradient(ellipse at 30% 60%, #3a3a5a 0%, transparent 70%);
}
.scn-fears-of-intrusion .chamber-wall {
  position: absolute; inset: 0 0 0 0;
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a44 50%, #1a1a2e 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,0.8);
  animation: foi-pulse 8s ease-in-out infinite alternate;
}
.scn-fears-of-intrusion .staircase {
  position: absolute; bottom: 0; left: 60%; width: 30%; height: 60%;
  background: linear-gradient(135deg, #2a2a3e 0%, #1a1a2a 100%);
  clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%);
  transform: skewY(10deg);
  box-shadow: inset -10px 0 20px rgba(0,0,0,0.6);
  animation: foi-stairs 15s ease-in-out infinite alternate;
}
.scn-fears-of-intrusion .door {
  position: absolute; bottom: 20%; left: 45%; width: 24%; height: 50%;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%);
  border-radius: 8px 8px 0 0;
  box-shadow: -4px 0 12px rgba(0,0,0,0.7);
  transform: scaleX(0.95);
  animation: foi-door 6s ease-in-out infinite;
}
.scn-fears-of-intrusion .shadow-figure {
  position: absolute; bottom: 24%; left: 48%; width: 14px; height: 38px;
  background: linear-gradient(180deg, #0a0a14 0%, #000000 100%);
  border-radius: 50% 80% 40% 40% / 60% 60% 40% 40%;
  filter: blur(1px);
  opacity: 0.6;
  animation: foi-shadow 4s ease-in-out infinite alternate;
}
.scn-fears-of-intrusion .window-moon {
  position: absolute; top: 12%; right: 10%; width: 50px; height: 60px;
  background: #0a0a1a;
  border: 2px solid #4a4a6a;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(100,100,200,0.2);
}
.scn-fears-of-intrusion .candle {
  position: absolute; bottom: 26%; right: 20%; width: 6px; height: 20px;
  background: linear-gradient(180deg, #ffe0a0 0%, #c08060 60%, #4a2a1a 100%);
  border-radius: 2px;
  box-shadow: 0 0 20px 6px rgba(255,200,100,0.3);
  animation: foi-candle 3s ease-in-out infinite alternate;
}
@keyframes foi-pulse { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes foi-stairs { 0% { transform: skewY(10deg) translateY(0); } 50% { transform: skewY(12deg) translateY(-2px); } 100% { transform: skewY(10deg) translateY(0); } }
@keyframes foi-door { 0% { transform: scaleX(0.95) rotate(0); } 20% { transform: scaleX(0.95) rotate(2deg); } 40% { transform: scaleX(0.95) rotate(-1deg); } 80% { transform: scaleX(1) rotate(0); } 100% { transform: scaleX(0.95) rotate(0); } }
@keyframes foi-shadow { 0% { opacity: 0.4; transform: translateX(0); } 50% { opacity: 0.7; transform: translateX(4px); } 100% { opacity: 0.5; transform: translateX(-2px); } }
@keyframes foi-candle { 0% { opacity: 0.7; transform: scaleY(1); } 50% { opacity: 1; transform: scaleY(1.05); } 100% { opacity: 0.8; transform: scaleY(0.98); } }

/* scene 3: spark-of-fire */
.scn-spark-of-fire {
  background: linear-gradient(180deg, #0a0a0a 0%, #1a1410 40%, #2a1a10 100%),
              radial-gradient(ellipse at 50% 70%, #4a2a1a 0%, transparent 80%);
}
.scn-spark-of-fire .hearth-stone {
  position: absolute; bottom: 0; left: 15%; right: 15%; height: 50%;
  background: linear-gradient(180deg, #2a1a10 0%, #1a0a05 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.8);
}
.scn-spark-of-fire .embers {
  position: absolute; bottom: 25%; left: 30%; width: 40%; height: 20%;
  background: radial-gradient(ellipse at 50% 80%, #ff8030 0%, #cc5020 40%, #4a1a0a 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 12px rgba(255,100,30,0.5);
  animation: sof-ember-pulse 2s ease-in-out infinite alternate;
}
.scn-spark-of-fire .log {
  position: absolute; bottom: 22%; width: 40%; height: 8%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a05 100%);
  border-radius: 6px;
  box-shadow: inset 0 2px 4px rgba(255,255,255,0.1);
}
.scn-spark-of-fire .log1 { left: 18%; transform: rotate(-10deg); }
.scn-spark-of-fire .log2 { right: 18%; transform: rotate(8deg); }
.scn-spark-of-fire .hand-fanning {
  position: absolute; bottom: 28%; left: 48%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #2a1a12 0%, #1a0a05 100%);
  border-radius: 60% 40% 40% 60% / 50% 50% 50% 50%;
  transform-origin: 80% 100%;
  animation: sof-fan 1.5s ease-in-out infinite;
}
.scn-spark-of-fire .spark {
  position: absolute; width: 4px; height: 4px;
  background: #ffa040;
  border-radius: 50%;
  box-shadow: 0 0 8px 3px rgba(255,160,64,0.6);
  animation: sof-spark-rise 3s ease-out infinite;
}
.scn-spark-of-fire .s1 { bottom: 30%; left: 35%; animation-delay: 0s; }
.scn-spark-of-fire .s2 { bottom: 32%; left: 45%; animation-delay: 1s; }
.scn-spark-of-fire .s3 { bottom: 28%; left: 55%; animation-delay: 1.8s; }

@keyframes sof-ember-pulse { 0% { opacity: 0.6; filter: brightness(0.8); } 50% { opacity: 1; filter: brightness(1.4); } 100% { opacity: 0.8; filter: brightness(1); } }
@keyframes sof-fan { 0% { transform: rotate(0deg); } 25% { transform: rotate(-8deg); } 50% { transform: rotate(0deg); } 75% { transform: rotate(6deg); } 100% { transform: rotate(0deg); } }
@keyframes sof-spark-rise { 0% { transform: translateY(0) scale(1); opacity: 1; } 50% { transform: translateY(-40px) scale(1.3); opacity: 0.8; } 100% { transform: translateY(-80px) scale(0.5); opacity: 0; } }

/* scene 4: midnight-approach */
.scn-midnight-approach {
  background: linear-gradient(180deg, #0a0a1a 0%, #141430 40%, #1e1e3a 70%, #0a0a1a 100%),
              radial-gradient(ellipse at 50% 20%, #2a2a5a 0%, transparent 70%);
}
.scn-midnight-approach .rampart-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 10% 10% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.6);
  animation: ma-floor 12s ease-in-out infinite alternate;
}
.scn-midnight-approach .clock-tower {
  position: absolute; bottom: 30%; left: 60%; width: 18%; height: 55%;
  background: linear-gradient(180deg, #3a3a5a 0%, #2a2a4a 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: -4px 0 12px rgba(0,0,0,0.5);
  transform: translateX(-50%);
  animation: ma-tower 20s ease-in-out infinite alternate;
}
.scn-midnight-approach .clock-face {
  position: absolute; bottom: 50%; left: 62%; width: 12%; height: 18%;
  background: radial-gradient(circle, #e0e0f0 0%, #a0a0c0 70%);
  border-radius: 50%;
  box-shadow: 0 0 20px 4px rgba(200,200,255,0.2);
  animation: ma-face 2s ease-in-out infinite alternate;
}
.scn-midnight-approach .pendulum {
  position: absolute; bottom: 35%; left: 66%; width: 4px; height: 25px;
  background: #8a8a6a;
  border-radius: 2px;
  transform-origin: top center;
  animation: ma-pendulum 3s ease-in-out infinite alternate;
}
.scn-midnight-approach .sentinel-relief {
  position: absolute; bottom: 30%; left: 25%; width: 14px; height: 32px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ma-walk 6s ease-in-out infinite;
}
.scn-midnight-approach .figure-advance {
  position: absolute; bottom: 30%; left: 60%; width: 12px; height: 30px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-30px);
  animation: ma-advance 10s ease-in-out infinite alternate;
}
.scn-midnight-approach .lantern-glow {
  position: absolute; bottom: 38%; left: 58%; width: 8px; height: 8px;
  background: radial-gradient(circle, #ffd060 0%, rgba(255,200,80,0.3) 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 8px rgba(255,200,80,0.4);
  animation: ma-lantern 3s ease-in-out infinite alternate;
}
@keyframes ma-floor { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes ma-tower { 0% { transform: translateX(-50%) scaleY(1); } 50% { transform: translateX(-50%) scaleY(1.02); } 100% { transform: translateX(-50%) scaleY(1); } }
@keyframes ma-face { 0% { opacity: 0.7; filter: brightness(0.8); } 50% { opacity: 1; filter: brightness(1.2); } 100% { opacity: 0.8; filter: brightness(0.9); } }
@keyframes ma-pendulum { 0% { transform: rotate(-15deg); } 50% { transform: rotate(15deg); } 100% { transform: rotate(-15deg); } }
@keyframes ma-walk { 0% { transform: translateX(0); } 25% { transform: translateX(20px); } 50% { transform: translateX(40px); } 75% { transform: translateX(20px); } 100% { transform: translateX(0); } }
@keyframes ma-advance { 0% { transform: translateX(-20px) scaleX(1); } 50% { transform: translateX(10px) scaleX(0.9); } 100% { transform: translateX(30px) scaleX(1); } }
@keyframes ma-lantern { 0% { opacity: 0.6; box-shadow: 0 0 20px 4px rgba(255,200,80,0.3); } 50% { opacity: 1; box-shadow: 0 0 40px 12px rgba(255,200,80,0.6); } 100% { opacity: 0.7; box-shadow: 0 0 25px 6px rgba(255,200,80,0.4); } }

.scn-sale-of-estate {
  background:
    linear-gradient(180deg, #1a1a2e 0%, #2a1a1a 40%, #1a1a2e 100%),
    radial-gradient(ellipse at 50% 30%, #3a2a1a 0%, transparent 60%);
}
.scn-sale-of-estate .wall { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #2a1a1a 0%, #3a2a1a 100%); box-shadow: inset 0 0 60px rgba(0,0,0,.6); animation: soe-wall 8s ease-in-out infinite alternate; }
.scn-sale-of-estate .floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(0deg, #1a1212 0%, #2a1a1a 100%); box-shadow: inset 0 20px 30px rgba(0,0,0,.5); }
.scn-sale-of-estate .desk { position:absolute; bottom:25%; left:30%; width:50%; height:12%; background: linear-gradient(180deg, #4a3020 0%, #2a1a12 100%); border-radius: 4% 4% 8% 8%; box-shadow: 0 8px 20px rgba(0,0,0,.7); animation: soe-desk 12s ease-in-out infinite alternate; }
.scn-sale-of-estate .papers { position:absolute; bottom:32%; left:42%; width:20%; height:6%; background: linear-gradient(135deg, #c8b090 0%, #a08060 100%); border-radius: 2% 2% 10% 10%; transform: rotate(-2deg); box-shadow: 0 2px 6px rgba(0,0,0,.4); animation: soe-papers 5s ease-in-out infinite alternate; }
.scn-sale-of-estate .candle { position:absolute; bottom:36%; left:48%; width:4px; height:16%; background: linear-gradient(180deg, #e8d0a0 0%, #c8a060 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 8px 2px #d0a050; animation: soe-candle 3s ease-in-out infinite alternate; }
.scn-sale-of-estate .glow { position:absolute; bottom:38%; left:46%; width:12%; height:18%; background: radial-gradient(circle, rgba(240,200,120,0.5) 0%, transparent 70%); filter: blur(10px); animation: soe-glow 2.5s ease-in-out infinite alternate; }
.scn-sale-of-estate .shadow-figure { position:absolute; bottom:15%; right:20%; width:12%; height:30%; background: linear-gradient(180deg, #0a0a12 0%, #1a1a2e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; filter: blur(2px); animation: soe-figure 4s ease-in-out infinite alternate; }
.scn-sale-of-estate .curtain-left { position:absolute; top:0; left:0; width:15%; height:80%; background: linear-gradient(180deg, #4a2020 0%, #2a1010 100%); border-radius: 0 40% 40% 0 / 0 20% 20% 0; box-shadow: inset -10px 0 20px rgba(0,0,0,.6); animation: soe-curtain-l 9s ease-in-out infinite alternate; }
.scn-sale-of-estate .curtain-right { position:absolute; top:0; right:0; width:15%; height:80%; background: linear-gradient(180deg, #4a2020 0%, #2a1010 100%); border-radius: 40% 0 0 40% / 20% 0 0 20%; box-shadow: inset 10px 0 20px rgba(0,0,0,.6); animation: soe-curtain-r 9s ease-in-out infinite alternate; }

@keyframes soe-wall { 0% { opacity: .9; filter: contrast(1.1); } 50% { opacity: .8; filter: contrast(1); } 100% { opacity: .9; filter: contrast(1.05); } }
@keyframes soe-desk { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes soe-papers { 0% { transform: rotate(-2deg) translateX(0); } 50% { transform: rotate(-1deg) translateX(3px); } 100% { transform: rotate(-2deg) translateX(0); } }
@keyframes soe-candle { 0% { transform: scaleY(1) scaleX(1); opacity: .8; } 50% { transform: scaleY(1.05) scaleX(1.02); opacity: 1; } 100% { transform: scaleY(1) scaleX(1); opacity: .85; } }
@keyframes soe-glow { 0% { opacity: .6; transform: scale(1); } 50% { opacity: .9; transform: scale(1.2); } 100% { opacity: .7; transform: scale(1.05); } }
@keyframes soe-figure { 0% { transform: scaleY(1) translateY(0); opacity: .7; } 50% { transform: scaleY(1.02) translateY(-3px); opacity: .8; } 100% { transform: scaleY(1) translateY(0); opacity: .7; } }
@keyframes soe-curtain-l { 0% { transform: translateX(0); } 50% { transform: translateX(-5px); } 100% { transform: translateX(0); } }
@keyframes soe-curtain-r { 0% { transform: translateX(0); } 50% { transform: translateX(5px); } 100% { transform: translateX(0); } }

.scn-childhood-scenes {
  background:
    linear-gradient(180deg, #87CEEB 0%, #e0f0ff 50%, #fff8dc 100%),
    radial-gradient(ellipse at 50% 100%, #4a7a3a 0%, transparent 60%);
}
.scn-childhood-scenes .sky { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #87CEEB 0%, #d0e8ff 100%); animation: ch-sky 15s ease-in-out infinite alternate; }
.scn-childhood-scenes .sun { position:absolute; top:8%; right:20%; width:10%; height:10%; background: radial-gradient(circle, #fff8dc 0%, #ffd700 30%, transparent 70%); border-radius: 50%; box-shadow: 0 0 60px 20px rgba(255,215,0,0.3); animation: ch-sun 8s ease-in-out infinite alternate; }
.scn-childhood-scenes .hills { position:absolute; bottom:30%; left:0; right:0; height:20%; background: linear-gradient(180deg, #5a8a4a 0%, #3a6a2a 100%); border-radius: 60% 40% 0 0 / 80% 70% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.3); animation: ch-hills 20s ease-in-out infinite alternate; }
.scn-childhood-scenes .tree { position:absolute; bottom:35%; left:25%; width:15%; height:35%; background: linear-gradient(180deg, #3a5a2a 0%, #2a4a1a 100%); border-radius: 60% 60% 40% 40% / 80% 80% 20% 20%; box-shadow: inset 0 10px 20px rgba(0,0,0,.4); animation: ch-tree 7s ease-in-out infinite alternate; }
.scn-childhood-scenes .cottage { position:absolute; bottom:25%; right:20%; width:25%; height:20%; background: linear-gradient(180deg, #d4b896 0%, #b09070 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 8px 20px rgba(0,0,0,.3); animation: ch-cottage 9s ease-in-out infinite alternate; }
.scn-childhood-scenes .fence { position:absolute; bottom:22%; left:10%; width:40%; height:4%; background: linear-gradient(90deg, #8a7a6a 0%, #6a5a4a 100%); border-radius: 20%; animation: ch-fence 6s ease-in-out infinite alternate; }
.scn-childhood-scenes .boy { position:absolute; bottom:22%; left:15%; width:8%; height:16%; background: linear-gradient(180deg, #3a4a6a 0%, #1a2a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ch-boy 4s ease-in-out infinite; }
.scn-childhood-scenes .cloud-a { position:absolute; top:12%; left:10%; width:20%; height:8%; background: linear-gradient(180deg, rgba(255,255,255,0.8) 0%, rgba(255,255,255,0.3) 100%); border-radius: 50%; filter: blur(4px); animation: ch-cloud-a 40s linear infinite; }
.scn-childhood-scenes .cloud-b { position:absolute; top:18%; left:60%; width:15%; height:6%; background: linear-gradient(180deg, rgba(255,255,255,0.7) 0%, rgba(255,255,255,0.2) 100%); border-radius: 50%; filter: blur(3px); animation: ch-cloud-b 50s linear infinite reverse; }

@keyframes ch-sky { 0% { opacity: .9; } 50% { opacity: 1; } 100% { opacity: .9; } }
@keyframes ch-sun { 0% { transform: scale(1); opacity: .9; } 50% { transform: scale(1.05); opacity: 1; } 100% { transform: scale(1); opacity: .9; } }
@keyframes ch-hills { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(0); } }
@keyframes ch-tree { 0% { transform: rotate(-1deg); } 50% { transform: rotate(1deg); } 100% { transform: rotate(-1deg); } }
@keyframes ch-cottage { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes ch-fence { 0% { transform: scaleX(1); opacity: .9; } 50% { transform: scaleX(1.02); opacity: 1; } 100% { transform: scaleX(1); opacity: .9; } }
@keyframes ch-boy { 0% { transform: translateX(0) translateY(0) rotate(-1deg); } 25% { transform: translateX(4px) translateY(-1px) rotate(0deg); } 50% { transform: translateX(8px) translateY(0) rotate(1deg); } 75% { transform: translateX(4px) translateY(-1px) rotate(0deg); } 100% { transform: translateX(0) translateY(0) rotate(-1deg); } }
@keyframes ch-cloud-a { 0% { transform: translateX(-30px); } 100% { transform: translateX(110vw); } }
@keyframes ch-cloud-b { 0% { transform: translateX(0); } 100% { transform: translateX(-100vw); } }

.scn-retirement-realised {
  background:
    linear-gradient(180deg, #b0d0e8 0%, #e8f0f8 50%, #f0e8d0 100%),
    radial-gradient(ellipse at 50% 100%, #8a9a5a 0%, transparent 70%);
}
.scn-retirement-realised .sky { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #b0d0e8 0%, #d8e8f0 100%); animation: rr-sky 20s ease-in-out infinite alternate; }
.scn-retirement-realised .clouds { position:absolute; top:15%; left:20%; width:30%; height:10%; background: linear-gradient(180deg, rgba(240,240,255,0.5) 0%, rgba(240,240,255,0.1) 100%); border-radius: 50%; filter: blur(5px); animation: rr-clouds 60s linear infinite; }
.scn-retirement-realised .cottage { position:absolute; bottom:30%; left:30%; width:30%; height:25%; background: linear-gradient(180deg, #e0d4c0 0%, #c0b0a0 100%); border-radius: 8% 8% 4% 4%; box-shadow: 0 10px 30px rgba(0,0,0,.2); animation: rr-cottage 12s ease-in-out infinite alternate; }
.scn-retirement-realised .door { position:absolute; bottom:30%; left:40%; width:8%; height:18%; background: linear-gradient(180deg, #8a6a4a 0%, #5a4a3a 100%); border-radius: 4% 4% 2% 2%; animation: rr-door 14s ease-in-out infinite alternate; }
.scn-retirement-realised .window { position:absolute; bottom:38%; left:50%; width:8%; height:10%; background: radial-gradient(circle, #d0e8f8 0%, #a0c8e0 70%); border-radius: 10%; box-shadow: 0 0 12px 4px rgba(160,200,224,0.3); animation: rr-window 6s ease-in-out infinite alternate; }
.scn-retirement-realised .garden-path { position:absolute; bottom:20%; left:35%; width:20%; height:8%; background: linear-gradient(135deg, #b0a090 0%, #8a7a6a 100%); border-radius: 40% 40% 20% 20%; transform: rotate(-5deg); animation: rr-path 18s ease-in-out infinite alternate; }
.scn-retirement-realised .bush { position:absolute; bottom:25%; right:25%; width:15%; height:12%; background: radial-gradient(ellipse at 50% 100%, #4a7a3a 0%, #2a5a1a 100%); border-radius: 50%; box-shadow: inset 0 5px 10px rgba(0,0,0,.3); animation: rr-bush 8s ease-in-out infinite alternate; }
.scn-retirement-realised .flower { position:absolute; bottom:24%; left:45%; width:4%; height:8%; background: radial-gradient(circle, #f0c890 0%, #d0a070 100%); border-radius: 50%; animation: rr-flower 5s ease-in-out infinite alternate; }

@keyframes rr-sky { 0% { opacity: .85; } 50% { opacity: 1; } 100% { opacity: .85; } }
@keyframes rr-clouds { 0% { transform: translateX(0); } 100% { transform: translateX(50vw); } }
@keyframes rr-cottage { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes rr-door { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(1); } }
@keyframes rr-window { 0% { opacity: .7; box-shadow: 0 0 8px 2px rgba(160,200,224,0.2); } 50% { opacity: .9; box-shadow: 0 0 16px 6px rgba(160,200,224,0.4); } 100% { opacity: .7; box-shadow: 0 0 8px 2px rgba(160,200,224,0.2); } }
@keyframes rr-path { 0% { transform: rotate(-5deg) scaleY(1); } 50% { transform: rotate(-4deg) scaleY(1.02); } 100% { transform: rotate(-5deg) scaleY(1); } }
@keyframes rr-bush { 0% { transform: scale(1); } 50% { transform: scale(1.03); } 100% { transform: scale(1); } }
@keyframes rr-flower { 0% { transform: rotate(-10deg); } 50% { transform: rotate(10deg); } 100% { transform: rotate(-10deg); } }

.scn-interior-taste {
  background:
    linear-gradient(180deg, #f8f8f0 0%, #e8e0d0 50%, #d0c0b0 100%),
    radial-gradient(ellipse at 30% 50%, #fff4e0 0%, transparent 60%);
}
.scn-interior-taste .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #e8e0d0 0%, #d0c0b0 100%); box-shadow: inset 0 0 40px rgba(0,0,0,.1); animation: it-wall 15s ease-in-out infinite alternate; }
.scn-interior-taste .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(0deg, #b0a090 0%, #c0b0a0 100%); box-shadow: inset 0 20px 40px rgba(0,0,0,.15); }
.scn-interior-taste .bookshelf { position:absolute; bottom:20%; left:10%; width:25%; height:55%; background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%); border-radius: 4% 4% 2% 2%; box-shadow: inset 0 0 20px rgba(0,0,0,.2); animation: it-bookshelf 9s ease-in-out infinite alternate; }
.scn-interior-taste .chair { position:absolute; bottom:10%; right:25%; width:15%; height:25%; background: linear-gradient(180deg, #c0b0a0 0%, #a09080 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 5px 15px rgba(0,0,0,.2); animation: it-chair 7s ease-in-out infinite alternate; }
.scn-interior-taste .table { position:absolute; bottom:15%; left:35%; width:20%; height:10%; background: linear-gradient(180deg, #a09080 0%, #8a7a6a 100%); border-radius: 4% 4% 8% 8%; box-shadow: 0 8px 20px rgba(0,0,0,.15); animation: it-table 11s ease-in-out infinite alternate; }
.scn-interior-taste .book { position:absolute; bottom:18%; left:38%; width:6%; height:8%; background: linear-gradient(180deg, #c87040 0%, #a05030 100%); border-radius: 4% 4% 8% 8%; transform: rotate(5deg); box-shadow: 0 2px 6px rgba(0,0,0,.3); animation: it-book 5s ease-in-out infinite alternate; }
.scn-interior-taste .window { position:absolute; top:8%; right:15%; width:20%; height:40%; background: radial-gradient(circle at 50% 50%, #d0e8f8 0%, #a0c8e0 70%); border: 4px solid #8a7a6a; border-radius: 4% 4% 2% 2%; box-shadow: inset 0 0 30px rgba(160,200,224,0.3); animation: it-window 12s ease-in-out infinite alternate; }
.scn-interior-taste .light-beam { position:absolute; top:8%; right:20%; width:10%; height:60%; background: linear-gradient(180deg, rgba(255,248,224,0.4) 0%, rgba(255,248,224,0.05) 100%); filter: blur(8px); transform: skewX(-10deg); animation: it-beam 8s ease-in-out infinite alternate; }

@keyframes it-wall { 0% { opacity: .9; } 50% { opacity: 1; } 100% { opacity: .9; } }
@keyframes it-bookshelf { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes it-chair { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(1); } }
@keyframes it-table { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes it-book { 0% { transform: rotate(5deg) translateX(0); } 50% { transform: rotate(3deg) translateX(2px); } 100% { transform: rotate(5deg) translateX(0); } }
@keyframes it-window { 0% { opacity: .8; box-shadow: inset 0 0 20px rgba(160,200,224,0.2); } 50% { opacity: .95; box-shadow: inset 0 0 40px rgba(160,200,224,0.4); } 100% { opacity: .8; box-shadow: inset 0 0 20px rgba(160,200,224,0.2); } }
@keyframes it-beam { 0% { opacity: .3; transform: skewX(-10deg) scaleY(1); } 50% { opacity: .6; transform: skewX(-8deg) scaleY(1.05); } 100% { opacity: .3; transform: skewX(-10deg) scaleY(1); } }

.scn-aunt-weeping { background: linear-gradient(135deg, #1a1410 0%, #2a1e18 40%, #1e1410 100%), radial-gradient(ellipse at 40% 30%, #2a1e18 0%, #1a1410 70%); }
.scn-aunt-weeping .room-bg { position:absolute; inset:0; background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%); animation: aw-room 12s ease-in-out infinite alternate; }
.scn-aunt-weeping .dressing-table { position:absolute; bottom:20%; left:25%; width:35%; height:15%; background: linear-gradient(180deg, #3a2a20 0%, #1e1410 100%); border-radius: 4% 4% 0 0; box-shadow: inset 0 -4px 8px rgba(0,0,0,0.6); animation: aw-table 15s ease-in-out infinite alternate; }
.scn-aunt-weeping .mirror { position:absolute; bottom:30%; left:30%; width:20%; height:25%; background: linear-gradient(180deg, rgba(80,70,60,0.3) 0%, rgba(30,20,15,0.8) 100%); border-radius: 50% 50% 10% 10% / 60% 60% 10% 10%; box-shadow: inset 0 0 12px rgba(0,0,0,0.5); animation: aw-mirror 20s ease-in-out infinite; }
.scn-aunt-weeping .figure-weeping { position:absolute; bottom:15%; left:32%; width:12%; height:30%; background: linear-gradient(180deg, #1a1410 0%, #0a0604 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: aw-figure 6s ease-in-out infinite; }
.scn-aunt-weeping .handkerchief { position:absolute; bottom:30%; left:36%; width:6%; height:4%; background: radial-gradient(circle, #c0a080 0%, #8a6a4a 70%); border-radius: 40%; box-shadow: 0 2px 6px rgba(0,0,0,0.4); animation: aw-handkerchief 4s ease-in-out infinite; }
.scn-aunt-weeping .fire { position:absolute; bottom:12%; left:65%; width:15%; height:20%; background: radial-gradient(circle at 50% 80%, #ff8040 0%, #a04020 50%, transparent 70%), linear-gradient(0deg, #602010 0%, transparent 100%); border-radius: 30% 30% 70% 70%; animation: aw-fire 3s ease-in-out infinite alternate; }
.scn-aunt-weeping .seated-figure { position:absolute; bottom:15%; left:58%; width:10%; height:25%; background: linear-gradient(180deg, #0e0a08 0%, #060402 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: center bottom; animation: aw-seated 8s ease-in-out infinite; }
.scn-aunt-weeping .shadow-on-wall { position:absolute; bottom:0; left:0; right:0; height:60%; background: linear-gradient(0deg, rgba(0,0,0,0.6) 0%, transparent 100%); opacity:0.6; animation: aw-shadow 10s ease-in-out infinite alternate; }
@keyframes aw-room { 0% { opacity:0.85; } 50% { opacity:1; } 100% { opacity:0.9; } }
@keyframes aw-table { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes aw-mirror { 0%,100% { box-shadow: inset 0 0 8px rgba(0,0,0,0.5); } 50% { box-shadow: inset 0 0 18px rgba(0,0,0,0.4); } }
@keyframes aw-figure { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-3px) rotate(-2deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes aw-handkerchief { 0%,100% { transform: translate(0,0) rotate(0deg); opacity:0.8; } 50% { transform: translate(2px,-1px) rotate(10deg); opacity:1; } }
@keyframes aw-fire { 0% { transform: scale(1); opacity:0.7; } 50% { transform: scale(1.08) translateY(-2px); opacity:1; } 100% { transform: scale(0.95); opacity:0.8; } }
@keyframes aw-seated { 0% { transform: scale(1); } 50% { transform: scale(1.02) translateY(-1px); } 100% { transform: scale(0.98); } }
@keyframes aw-shadow { 0% { opacity:0.5; } 50% { opacity:0.7; } 100% { opacity:0.6; } }

.scn-anette-returns-empty { background: linear-gradient(180deg, #1a1818 0%, #0e0c0c 50%, #1a1412 100%), radial-gradient(ellipse at 50% 80%, #1a1412 0%, transparent 60%); }
.scn-anette-returns-empty .hall-bg { position:absolute; inset:0; background: linear-gradient(0deg, #0e0c0c 0%, #1a1818 100%); animation: ar-hall 14s ease-in-out infinite alternate; }
.scn-anette-returns-empty .door { position:absolute; bottom:15%; left:20%; width:20%; height:60%; background: linear-gradient(180deg, #2a221e 0%, #1a1410 100%); border-radius: 4% 4% 0 0; box-shadow: inset -4px 0 8px rgba(0,0,0,0.5); animation: ar-door 20s ease-in-out infinite; }
.scn-anette-returns-empty .anette-silhouette { position:absolute; bottom:10%; left:35%; width:8%; height:35%; background: linear-gradient(180deg, #0a0808 0%, #020202 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ar-anette 5s ease-in-out infinite; }
.scn-anette-returns-empty .servants-group { position:absolute; bottom:12%; right:25%; width:15%; height:28%; background: linear-gradient(180deg, #0e0a0a 0%, #040202 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; transform-origin: bottom center; animation: ar-servants 7s ease-in-out infinite; }
.scn-anette-returns-empty .servant-2 { position:absolute; bottom:12%; right:12%; width:12%; height:25%; background: linear-gradient(180deg, #100c0c 0%, #060404 100%); border-radius: 40% 40% 30% 30% / 55% 55% 30% 30%; transform-origin: bottom center; animation: ar-servant2 9s ease-in-out infinite; }
.scn-anette-returns-empty .candle { position:absolute; bottom:20%; left:55%; width:4%; height:10%; background: linear-gradient(180deg, #d0a050 0%, #a07030 100%); border-radius: 10%; box-shadow: 0 0 12px 6px rgba(200,150,80,0.3); animation: ar-candle 4s ease-in-out infinite alternate; }
.scn-anette-returns-empty .shadow { position:absolute; bottom:0; left:0; right:0; height:70%; background: linear-gradient(0deg, rgba(0,0,0,0.7) 0%, transparent 100%); animation: ar-shadow 12s ease-in-out infinite alternate; }
@keyframes ar-hall { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes ar-door { 0% { transform: translateX(0); } 50% { transform: translateX(2px); } 100% { transform: translateX(-1px); } }
@keyframes ar-anette { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(3px) rotate(2deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-2px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes ar-servants { 0% { transform: scale(1); opacity:0.6; } 50% { transform: scale(1.03) translateY(-1px); opacity:0.8; } 100% { transform: scale(0.97); opacity:0.7; } }
@keyframes ar-servant2 { 0% { transform: scale(1) rotate(0deg); } 50% { transform: scale(1.02) rotate(2deg) translateY(-2px); } 100% { transform: scale(0.98) rotate(-1deg); } }
@keyframes ar-candle { 0% { transform: scaleY(1); opacity:0.8; box-shadow: 0 0 8px 4px rgba(200,150,80,0.2); } 50% { transform: scaleY(1.1); opacity:1; box-shadow: 0 0 18px 8px rgba(200,150,80,0.4); } 100% { transform: scaleY(0.95); opacity:0.9; box-shadow: 0 0 10px 5px rgba(200,150,80,0.3); } }
@keyframes ar-shadow { 0% { opacity:0.5; } 50% { opacity:0.8; } 100% { opacity:0.7; } }

.scn-emily-sends-anette-away { background: linear-gradient(180deg, #1a1410 0%, #0e0a08 60%, #1a1410 100%), radial-gradient(ellipse at 50% 30%, #0e0a08 0%, transparent 60%); }
.scn-emily-sends-anette-away .room-bg { position:absolute; inset:0; background: linear-gradient(0deg, #0e0a08 0%, #1a1410 100%); animation: es-room 16s ease-in-out infinite alternate; }
.scn-emily-sends-anette-away .table { position:absolute; bottom:20%; left:35%; width:30%; height:12%; background: linear-gradient(180deg, #2a1e18 0%, #1a1410 100%); border-radius: 4% 4% 0 0; box-shadow: inset 0 -4px 6px rgba(0,0,0,0.5); animation: es-table 18s ease-in-out infinite alternate; }
.scn-emily-sends-anette-away .emily-figure { position:absolute; bottom:15%; left:40%; width:10%; height:35%; background: linear-gradient(180deg, #0e0a08 0%, #060402 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: es-emily 6s ease-in-out infinite; }
.scn-emily-sends-anette-away .anette-leaving { position:absolute; bottom:12%; left:55%; width:8%; height:30%; background: linear-gradient(180deg, #0c0806 0%, #040202 100%); border-radius: 50% 50% 40% 40% / 50% 50% 40% 40%; transform-origin: bottom center; animation: es-anette 4s ease-in-out infinite; }
.scn-emily-sends-anette-away .window { position:absolute; top:10%; right:15%; width:20%; height:30%; background: linear-gradient(180deg, rgba(30,40,60,0.5) 0%, rgba(10,15,25,0.8) 100%); border-radius: 4% 4% 8% 8%; box-shadow: inset 0 0 10px rgba(0,0,0,0.6); animation: es-window 20s ease-in-out infinite; }
.scn-emily-sends-anette-away .candle { position:absolute; bottom:25%; left:30%; width:4%; height:12%; background: linear-gradient(180deg, #d0a050 0%, #a07030 100%); border-radius: 10%; box-shadow: 0 0 12px 6px rgba(200,150,80,0.25); animation: es-candle 3s ease-in-out infinite alternate; }
.scn-emily-sends-anette-away .shadow { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(0deg, rgba(0,0,0,0.6) 0%, transparent 100%); animation: es-shadow 14s ease-in-out infinite alternate; }
@keyframes es-room { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes es-table { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes es-emily { 0%,100% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-3px) rotate(-1deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(2px) rotate(1deg); } }
@keyframes es-anette { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(4px) rotate(2deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-3px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes es-window { 0%,100% { opacity:0.6; } 50% { opacity:0.8; } }
@keyframes es-candle { 0% { transform: scaleY(1) rotate(0deg); opacity:0.8; } 50% { transform: scaleY(1.1) rotate(2deg); opacity:1; } 100% { transform: scaleY(0.95) rotate(-1deg); opacity:0.9; } }
@keyframes es-shadow { 0% { opacity:0.4; } 50% { opacity:0.7; } 100% { opacity:0.5; } }

.scn-last-questions { background: linear-gradient(180deg, #1a1610 0%, #0e0a06 50%, #1a1610 100%), radial-gradient(ellipse at 40% 60%, #0e0a06 0%, transparent 60%); }
.scn-last-questions .hall-bg { position:absolute; inset:0; background: linear-gradient(0deg, #0e0a06 0%, #1a1610 100%); animation: lq-hall 18s ease-in-out infinite alternate; }
.scn-last-questions .emily-silhouette { position:absolute; bottom:15%; left:25%; width:10%; height:40%; background: linear-gradient(180deg, #0c0806 0%, #040202 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lq-emily 5s ease-in-out infinite; }
.scn-last-questions .anette-at-door { position:absolute; bottom:15%; right:25%; width:8%; height:35%; background: linear-gradient(180deg, #0a0604 0%, #020000 100%); border-radius: 50% 50% 40% 40% / 50% 50% 40% 40%; transform-origin: bottom center; animation: lq-anette 4s ease-in-out infinite; }
.scn-last-questions .door { position:absolute; bottom:15%; right:20%; width:18%; height:65%; background: linear-gradient(180deg, #2a221a 0%, #1a1410 100%); border-radius: 4% 4% 0 0; box-shadow: inset -4px 0 8px rgba(0,0,0,0.5); animation: lq-door 22s ease-in-out infinite; }
.scn-last-questions .candle { position:absolute; bottom:25%; left:50%; width:3%; height:10%; background: linear-gradient(180deg, #d0a050 0%, #a07030 100%); border-radius: 10%; box-shadow: 0 0 14px 6px rgba(200,150,80,0.3); animation: lq-candle 3s ease-in-out infinite alternate; }
.scn-last-questions .chair { position:absolute; bottom:10%; left:45%; width:12%; height:18%; background: linear-gradient(180deg, #1e1410 0%, #0e0a06 100%); border-radius: 20% 20% 40% 40% / 30% 30% 50% 50%; transform-origin: bottom center; animation: lq-chair 10s ease-in-out infinite; }
.scn-last-questions .window { position:absolute; top:10%; left:15%; width:18%; height:28%; background: linear-gradient(180deg, rgba(30,40,60,0.4) 0%, rgba(10,15,25,0.7) 100%); border-radius: 4% 4% 8% 8%; box-shadow: inset 0 0 8px rgba(0,0,0,0.6); animation: lq-window 25s ease-in-out infinite; }
.scn-last-questions .hanging { position:absolute; top:5%; right:5%; width:6%; height:30%; background: linear-gradient(180deg, #1a1410 0%, #0e0a06 100%); border-radius: 10% 10% 0 0; transform-origin: top; animation: lq-hanging 12s ease-in-out infinite alternate; }
@keyframes lq-hall { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes lq-emily { 0%,100% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(2px) rotate(-1deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-2px) rotate(1deg); } }
@keyframes lq-anette { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-3px) rotate(2deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes lq-door { 0% { transform: translateX(0); } 50% { transform: translateX(-2px); } 100% { transform: translateX(1px); } }
@keyframes lq-candle { 0% { transform: scaleY(1); opacity:0.8; } 50% { transform: scaleY(1.12) rotate(1deg); opacity:1; } 100% { transform: scaleY(0.92); opacity:0.9; } }
@keyframes lq-chair { 0% { transform: scale(1); } 50% { transform: scale(1.04) translateY(-2px); } 100% { transform: scale(0.96); } }
@keyframes lq-window { 0%,100% { opacity:0.5; } 50% { opacity:0.7; } }
@keyframes lq-hanging { 0% { transform: rotate(0deg); } 50% { transform: rotate(3deg); } 100% { transform: rotate(-2deg); } }

.scn-presentiment-of-fate {
  background: linear-gradient(180deg, #1b1a2e 0%, #2a1e3a 40%, #4a2e3e 70%, #2a1a1a 100%), radial-gradient(ellipse at 50% 100%, #4a2e3e 0%, transparent 70%);
}
.scn-presentiment-of-fate .sky {
  position: absolute;
  inset: 0 0 50% 0;
  background: linear-gradient(180deg, #2a2244 0%, #3a2a4a 40%, #4a3a5a 70%, transparent 100%);
  animation: pr0-sky 14s ease-in-out infinite alternate;
}
.scn-presentiment-of-fate .ground {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 50%;
  background: linear-gradient(180deg, #1a1a2a 0%, #2a1a2a 50%, #1a0a0a 100%);
  border-radius: 60% 40% 0 0 / 30% 20% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,.6);
  animation: pr0-ground 20s ease-in-out infinite alternate;
}
.scn-presentiment-of-fate .house {
  position: absolute;
  bottom: 35%;
  left: 50%;
  width: 100px;
  height: 80px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 8px 20px rgba(0,0,0,.7);
  animation: pr0-house 8s ease-in-out infinite;
}
.scn-presentiment-of-fate .window {
  position: absolute;
  bottom: 42%;
  left: 50%;
  width: 22px;
  height: 28px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #c08040 0%, #8a5a2a 60%, transparent 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 0 20px 6px #b07030, 0 0 40px 12px rgba(176,112,48,.3);
  animation: pr0-window 4s ease-in-out infinite alternate;
}
.scn-presentiment-of-fate .figure {
  position: absolute;
  bottom: 30%;
  left: 40%;
  width: 16px;
  height: 40px;
  background: linear-gradient(180deg, #0e0e1a 0%, #1a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pr0-figure 6s ease-in-out infinite;
}
.scn-presentiment-of-fate .tree {
  position: absolute;
  bottom: 32%;
  right: 20%;
  width: 30px;
  height: 70px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a14 100%);
  border-radius: 50% 50% 30% 30% / 40% 40% 20% 20%;
  transform-origin: bottom center;
  animation: pr0-tree 12s ease-in-out infinite alternate;
}
.scn-presentiment-of-fate .bird {
  position: absolute;
  top: 20%;
  left: 10%;
  width: 12px;
  height: 8px;
  background: #2a2a3a;
  border-radius: 50%;
  filter: blur(2px);
  animation: pr0-bird 30s linear infinite;
}
@keyframes pr0-sky { 0% { opacity: .7 } 50% { opacity: .9 } 100% { opacity: .6 } }
@keyframes pr0-ground { 0% { transform: translateY(0) scaleX(1) } 50% { transform: translateY(-2px) scaleX(1.02) } 100% { transform: translateY(0) scaleX(1) } }
@keyframes pr0-house { 0%,100% { transform: translateX(-50%) } 50% { transform: translateX(-50%) translateY(-1px) } }
@keyframes pr0-window { 0% { box-shadow: 0 0 15px 4px #b07030, 0 0 30px 8px rgba(176,112,48,.2); opacity: .8 } 50% { box-shadow: 0 0 25px 8px #d09050, 0 0 50px 16px rgba(208,144,80,.4); opacity: 1 } 100% { box-shadow: 0 0 18px 5px #b07030, 0 0 35px 10px rgba(176,112,48,.25); opacity: .85 } }
@keyframes pr0-figure { 0% { transform: translateX(0) rotate(-1deg) } 25% { transform: translateX(4px) rotate(1deg) } 50% { transform: translateX(8px) rotate(-1deg) } 75% { transform: translateX(12px) rotate(1deg) } 100% { transform: translateX(16px) rotate(0) } }
@keyframes pr0-tree { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.03) } 100% { transform: scaleY(1) } }
@keyframes pr0-bird { 0% { transform: translateX(-30px) translateY(0) } 50% { transform: translateX(60vw) translateY(-5px) } 100% { transform: translateX(120vw) translateY(0) } }

.scn-only-solace-valancourt {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a1a3a 40%, #3a2a4a 70%, #1a1a2a 100%), radial-gradient(ellipse at 50% 0%, #3a2a4a 0%, transparent 70%);
}
.scn-only-solace-valancourt .wall {
  position: absolute;
  inset: 20% 10% 0 10%;
  background: linear-gradient(180deg, #2a1a2a 0%, #3a2a3a 50%, #2a1a2a 100%);
  border-radius: 5%;
  box-shadow: inset 0 0 40px rgba(0,0,0,.5);
  animation: sol-wall 10s ease-in-out infinite alternate;
}
.scn-only-solace-valancourt .window-frame {
  position: absolute;
  inset: 25% 20% 30% 20%;
  border: 6px solid #1a1a2a;
  border-radius: 4%;
  background: transparent;
  animation: sol-frame 8s ease-in-out infinite alternate;
}
.scn-only-solace-valancourt .sky-out {
  position: absolute;
  inset: 25% 20% 30% 20%;
  background: linear-gradient(180deg, #2a2a4e 0%, #3a2a5a 50%, #4a3a6a 100%);
  border-radius: 2%;
  animation: sol-sky 12s ease-in-out infinite alternate;
}
.scn-only-solace-valancourt .figure-inside {
  position: absolute;
  bottom: 32%;
  left: 50%;
  width: 20px;
  height: 44px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sol-figure 5s ease-in-out infinite;
}
.scn-only-solace-valancourt .candle {
  position: absolute;
  bottom: 36%;
  left: 52%;
  width: 4px;
  height: 10px;
  background: linear-gradient(180deg, #b07030 0%, #8a5a20 100%);
  border-radius: 2px;
  box-shadow: 0 0 12px 4px #d09040, 0 0 24px 8px rgba(208,144,64,.3);
  animation: sol-candle 3s ease-in-out infinite alternate;
}
.scn-only-solace-valancourt .chair {
  position: absolute;
  bottom: 30%;
  left: 46%;
  width: 30px;
  height: 20px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
  animation: sol-chair 7s ease-in-out infinite;
}
@keyframes sol-wall { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(1) } }
@keyframes sol-frame { 0% { border-color: #1a1a2a } 50% { border-color: #2a2a3a } 100% { border-color: #1a1a2a } }
@keyframes sol-sky { 0% { opacity: .7 } 50% { opacity: .9 } 100% { opacity: .6 } }
@keyframes sol-figure { 0% { transform: translateX(-50%) rotate(-2deg) } 25% { transform: translateX(-48%) rotate(0) } 50% { transform: translateX(-50%) rotate(2deg) } 75% { transform: translateX(-52%) rotate(0) } 100% { transform: translateX(-50%) rotate(-2deg) } }
@keyframes sol-candle { 0% { box-shadow: 0 0 8px 2px #d09040, 0 0 16px 4px rgba(208,144,64,.2); opacity: .9 } 50% { box-shadow: 0 0 14px 5px #e0a050, 0 0 28px 10px rgba(224,160,80,.4); opacity: 1 } 100% { box-shadow: 0 0 10px 3px #d09040, 0 0 20px 6px rgba(208,144,64,.25); opacity: .85 } }
@keyframes sol-chair { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }

.scn-repairs-cannon {
  background: linear-gradient(180deg, #1a1a3a 0%, #2a1e2e 40%, #3a2a3a 70%, #1a1a1a 100%), radial-gradient(ellipse at 50% 50%, #2a1e2e 0%, transparent 70%);
}
.scn-repairs-cannon .sky {
  position: absolute;
  inset: 0 0 40% 0;
  background: linear-gradient(180deg, #2a2a4e 0%, #3a2a5a 60%, transparent 100%);
  animation: can-sky 15s ease-in-out infinite alternate;
}
.scn-repairs-cannon .castle-wall {
  position: absolute;
  bottom: 20%;
  left: 5%;
  right: 5%;
  height: 50%;
  background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,.7);
  animation: can-wall 18s ease-in-out infinite alternate;
}
.scn-repairs-cannon .cannon {
  position: absolute;
  bottom: 25%;
  left: 50%;
  width: 80px;
  height: 20px;
  transform: translateX(-50%) rotate(-5deg);
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 40% 40% 20% 20%;
  box-shadow: 0 6px 12px rgba(0,0,0,.6);
  animation: can-cannon 8s ease-in-out infinite;
}
.scn-repairs-cannon .figure-repair {
  position: absolute;
  bottom: 22%;
  left: 40%;
  width: 18px;
  height: 36px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: can-figure 6s ease-in-out infinite;
}
.scn-repairs-cannon .stones {
  position: absolute;
  bottom: 20%;
  left: 30%;
  width: 40px;
  height: 30px;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 20% 20% 30% 30%;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
  animation: can-stones 12s ease-in-out infinite alternate;
}
.scn-repairs-cannon .tool {
  position: absolute;
  bottom: 26%;
  left: 35%;
  width: 8px;
  height: 14px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 10% 10%;
  transform: rotate(-30deg);
  animation: can-tool 4s ease-in-out infinite alternate;
}
@keyframes can-sky { 0% { opacity: .7 } 50% { opacity: .9 } 100% { opacity: .6 } }
@keyframes can-wall { 0% { transform: translateY(0) scaleX(1) } 50% { transform: translateY(-3px) scaleX(1.03) } 100% { transform: translateY(0) scaleX(1) } }
@keyframes can-cannon { 0%,100% { transform: translateX(-50%) rotate(-5deg) } 50% { transform: translateX(-50%) rotate(-2deg) translateY(-2px) } }
@keyframes can-figure { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(5px) rotate(0) } 50% { transform: translateX(10px) rotate(2deg) } 75% { transform: translateX(15px) rotate(0) } 100% { transform: translateX(20px) rotate(-2deg) } }
@keyframes can-stones { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.05) } 100% { transform: scaleY(1) } }
@keyframes can-tool { 0% { transform: rotate(-30deg) } 50% { transform: rotate(-20deg) } 100% { transform: rotate(-30deg) } }

.scn-troop-of-soldiers {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a1e3a 40%, #3a2a4a 70%, #1a1a2a 100%), radial-gradient(ellipse at 50% 0%, #3a2a4a 0%, transparent 70%);
}
.scn-troop-of-soldiers .sky {
  position: absolute;
  inset: 0 0 40% 0;
  background: linear-gradient(180deg, #2a2244 0%, #3a2a5a 60%, transparent 100%);
  animation: tro-sky 12s ease-in-out infinite alternate;
}
.scn-troop-of-soldiers .hills {
  position: absolute;
  bottom: 25%;
  left: 0;
  right: 0;
  height: 30%;
  background: linear-gradient(180deg, #1a1a2a 0%, #2a1a3a 100%);
  border-radius: 40% 60% 0 0 / 50% 40% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.5);
  animation: tro-hills 20s ease-in-out infinite alternate;
}
.scn-troop-of-soldiers .forest {
  position: absolute;
  bottom: 28%;
  left: 5%;
  right: 60%;
  height: 40%;
  background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1a 100%);
  border-radius: 30% 30% 10% 10%;
  clip-path: polygon(0% 100%, 10% 60%, 20% 80%, 30% 50%, 40% 70%, 50% 40%, 60% 65%, 70% 45%, 80% 60%, 90% 50%, 100% 80%, 100% 100%);
  animation: tro-forest 15s ease-in-out infinite alternate;
}
.scn-troop-of-soldiers .vanguard {
  position: absolute;
  bottom: 24%;
  left: 20%;
  width: 60px;
  height: 30px;
  background: repeating-linear-gradient(0deg, #0e0e1a 0px, #0e0e1a 3px, transparent 3px, transparent 5px);
  background-size: 6px 5px;
  background-position: 0 0;
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 10px rgba(200,200,220,.3);
  animation: tro-vanguard 8s ease-in-out infinite;
}
.scn-troop-of-soldiers .main-troop {
  position: absolute;
  bottom: 22%;
  left: 40%;
  width: 120px;
  height: 50px;
  background: repeating-linear-gradient(0deg, #0e0e1a 0px, #0e0e1a 4px, transparent 4px, transparent 6px);
  background-size: 8px 6px;
  background-position: 0 0;
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 15px rgba(200,200,220,.2);
  animation: tro-main 10s ease-in-out infinite;
}
.scn-troop-of-soldiers .banner {
  position: absolute;
  bottom: 35%;
  left: 50%;
  width: 10px;
  height: 20px;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%);
  border-radius: 10% 10% 5% 5%;
  transform-origin: bottom left;
  animation: tro-banner 3s ease-in-out infinite alternate;
}
.scn-troop-of-soldiers .glint {
  position: absolute;
  top: 30%;
  left: 30%;
  width: 4px;
  height: 4px;
  background: #e0e0f0;
  border-radius: 50%;
  box-shadow: 0 0 8px 2px rgba(224,224,240,.6);
  animation: tro-glint 2s ease-in-out infinite alternate;
}
@keyframes tro-sky { 0% { opacity: .7 } 50% { opacity: .9 } 100% { opacity: .6 } }
@keyframes tro-hills { 0% { transform: translateY(0) scaleX(1) } 50% { transform: translateY(-2px) scaleX(1.05) } 100% { transform: translateY(0) scaleX(1) } }
@keyframes tro-forest { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.03) } 100% { transform: scaleY(1) } }
@keyframes tro-vanguard { 0% { transform: translateX(0) scaleX(1) } 50% { transform: translateX(10px) scaleX(1.1) } 100% { transform: translateX(0) scaleX(1) } }
@keyframes tro-main { 0% { transform: translateX(0) scaleX(1) } 50% { transform: translateX(20px) scaleX(1.08) } 100% { transform: translateX(0) scaleX(1) } }
@keyframes tro-banner { 0% { transform: rotate(-5deg) } 50% { transform: rotate(5deg) } 100% { transform: rotate(-5deg) } }
@keyframes tro-glint { 0% { opacity: .3 } 50% { opacity: 1 } 100% { opacity: .3 } }

.scn-annette-reports-departure {
  background: 
    linear-gradient(180deg, #1a1a2a 0%, #2a2a3e 50%, #1a1a2a 100%),
    radial-gradient(ellipse at 50% 80%, #3a2a1a 0%, transparent 60%);
}
.scn-annette-reports-departure .wall-bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2a 100%);
  animation: ard-wall 12s ease-in-out infinite alternate;
}
.scn-annette-reports-departure .window {
  position: absolute; bottom: 40%; left: 60%;
  width: 70px; height: 90px;
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a3e 100%);
  border: 3px solid #3a2a1a;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,.6), 0 0 10px rgba(0,0,0,.4);
  animation: ard-window 15s ease-in-out infinite;
}
.scn-annette-reports-departure .table {
  position: absolute; bottom: 25%; left: 30%;
  width: 80px; height: 10px;
  background: #3a2a1a;
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,.6);
  animation: ard-table 20s ease-in-out infinite alternate;
}
.scn-annette-reports-departure .candle-glow {
  position: absolute; bottom: 35%; left: 35%;
  width: 12px; height: 20px;
  background: radial-gradient(circle, #ffd080 0%, #b08040 60%, transparent 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 30px 10px #b08040, 0 0 60px 20px rgba(176,128,64,.4);
  animation: ard-candle 3s ease-in-out infinite alternate;
}
.scn-annette-reports-departure .figure-annette {
  position: absolute; bottom: 20%; left: 40%;
  width: 20px; height: 50px;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ard-annette 5s ease-in-out infinite;
}
.scn-annette-reports-departure .figure-emily {
  position: absolute; bottom: 22%; left: 20%;
  width: 18px; height: 45px;
  background: linear-gradient(180deg, #3a2a3e 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ard-emily 6s ease-in-out infinite;
}
.scn-annette-reports-departure .shadow {
  position: absolute; bottom: 15%; left: 30%;
  width: 60px; height: 30px;
  background: radial-gradient(ellipse, rgba(0,0,0,.4) 0%, transparent 100%);
  border-radius: 50%;
  animation: ard-shadow 8s ease-in-out infinite alternate;
}
@keyframes ard-wall { 0% { opacity: .7 } 50% { opacity: .9 } 100% { opacity: .8 } }
@keyframes ard-window { 0% { opacity: .6 } 50% { opacity: .9 } 100% { opacity: .7 } }
@keyframes ard-table { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes ard-candle { 0% { transform: scale(1) rotate(-3deg); opacity: .8 } 50% { transform: scale(1.05) rotate(2deg); opacity: 1 } 100% { transform: scale(.95) rotate(0deg); opacity: .85 } }
@keyframes ard-annette { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(4px) rotate(2deg) } 50% { transform: translateX(0) rotate(-1deg) } 75% { transform: translateX(-3px) rotate(1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes ard-emily { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes ard-shadow { 0% { transform: scaleX(1) scaleY(1); opacity: .5 } 50% { transform: scaleX(1.2) scaleY(.8); opacity: .7 } 100% { transform: scaleX(.9) scaleY(1.1); opacity: .4 } }

.scn-annette-explains-flight {
  background: 
    linear-gradient(90deg, #1a1a2a 0%, #2a2a3e 50%, #1a1a2a 100%),
    radial-gradient(ellipse at 50% 50%, #3a2a1a 0%, transparent 70%);
}
.scn-annette-explains-flight .hall-bg {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2a 100%);
  animation: aef-bg 15s ease-in-out infinite alternate;
}
.scn-annette-explains-flight .pillar-a {
  position: absolute; bottom: 20%; left: 15%;
  width: 12px; height: 70%;
  background: linear-gradient(90deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 2px;
  box-shadow: 2px 0 8px rgba(0,0,0,.5);
  animation: aef-pillar 20s ease-in-out infinite alternate;
}
.scn-annette-explains-flight .pillar-b {
  position: absolute; bottom: 20%; right: 15%;
  width: 12px; height: 70%;
  background: linear-gradient(270deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 2px;
  box-shadow: -2px 0 8px rgba(0,0,0,.5);
  animation: aef-pillar 20s ease-in-out infinite alternate-reverse;
}
.scn-annette-explains-flight .lantern {
  position: absolute; top: 25%; left: 50%; transform: translateX(-50%);
  width: 14px; height: 22px;
  background: radial-gradient(circle, #ffd080 0%, #b08040 80%);
  border-radius: 30% 30% 40% 40%;
  box-shadow: 0 0 40px 15px #b08040, 0 0 80px 30px rgba(176,128,64,.3);
  animation: aef-lantern 4s ease-in-out infinite alternate;
}
.scn-annette-explains-flight .figure-moving {
  position: absolute; bottom: 18%; left: 30%;
  width: 20px; height: 50px;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: aef-walk 4s ease-in-out infinite;
}
.scn-annette-explains-flight .figure-still {
  position: absolute; bottom: 20%; left: 55%;
  width: 18px; height: 45px;
  background: linear-gradient(180deg, #3a2a3e 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: aef-still 6s ease-in-out infinite;
}
.scn-annette-explains-flight .floor-shadow {
  position: absolute; bottom: 8%; left: 20%; right: 20%;
  height: 30px;
  background: radial-gradient(ellipse, rgba(0,0,0,.5) 0%, transparent 100%);
  border-radius: 50%;
  animation: aef-shadow 8s ease-in-out infinite alternate;
}
@keyframes aef-bg { 0% { opacity: .6 } 50% { opacity: .85 } 100% { opacity: .7 } }
@keyframes aef-pillar { 0% { opacity: .7 } 50% { opacity: 1 } 100% { opacity: .8 } }
@keyframes aef-lantern { 0% { transform: translateX(-50%) rotate(-5deg); opacity: .8 } 50% { transform: translateX(-50%) rotate(3deg); opacity: 1 } 100% { transform: translateX(-50%) rotate(0deg); opacity: .9 } }
@keyframes aef-walk { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(10px) rotate(2deg) } 50% { transform: translateX(20px) rotate(-1deg) } 75% { transform: translateX(30px) rotate(1deg) } 100% { transform: translateX(40px) rotate(0deg) } }
@keyframes aef-still { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(0) } }
@keyframes aef-shadow { 0% { transform: scaleX(1); opacity: .4 } 50% { transform: scaleX(1.3); opacity: .6 } 100% { transform: scaleX(.8); opacity: .3 } }

.scn-annette-knows-little {
  background: 
    linear-gradient(180deg, #151520 0%, #252530 50%, #151520 100%),
    radial-gradient(ellipse at 50% 70%, #2a1a1a 0%, transparent 70%);
}
.scn-annette-knows-little .close-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a15 100%);
  animation: akl-bg 10s ease-in-out infinite alternate;
}
.scn-annette-knows-little .figure-torso {
  position: absolute; bottom: 20%; left: 25%; right: 25%;
  top: 30%;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2a 100%);
  border-radius: 40% 40% 50% 50% / 60% 60% 40% 40%;
  animation: akl-breathe 6s ease-in-out infinite;
}
.scn-annette-knows-little .figure-head {
  position: absolute; bottom: 65%; left: 35%; right: 35%;
  top: 15%;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 -4px 8px rgba(0,0,0,.5);
  animation: akl-head 7s ease-in-out infinite;
}
.scn-annette-knows-little .hand-gesture {
  position: absolute; bottom: 40%; left: 40%;
  width: 14px; height: 20px;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30%;
  transform-origin: bottom center;
  animation: akl-hand 4s ease-in-out infinite;
}
.scn-annette-knows-little .shawl {
  position: absolute; bottom: 25%; left: 20%; right: 30%;
  height: 18px;
  background: linear-gradient(90deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 40% 60% 50% 50% / 30% 40% 40% 30%;
  filter: blur(2px);
  animation: akl-shawl 8s ease-in-out infinite alternate;
}
.scn-annette-knows-little .candle-hint {
  position: absolute; bottom: 50%; left: 65%;
  width: 6px; height: 12px;
  background: radial-gradient(circle, #ffd080 0%, #b08040 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 8px #b08040;
  animation: akl-candle 3s ease-in-out infinite alternate;
}
@keyframes akl-bg { 0% { opacity: .7 } 50% { opacity: .9 } 100% { opacity: .8 } }
@keyframes akl-breathe { 0% { transform: scale(1) } 50% { transform: scale(1.02) } 100% { transform: scale(1) } }
@keyframes akl-head { 0% { transform: rotate(-2deg) translateY(0) } 50% { transform: rotate(0deg) translateY(-2px) } 100% { transform: rotate(2deg) translateY(0) } }
@keyframes akl-hand { 0% { transform: translate(0, 0) rotate(-10deg) } 50% { transform: translate(5px, -5px) rotate(0deg) } 100% { transform: translate(0, 0) rotate(10deg) } }
@keyframes akl-shawl { 0% { transform: translateX(0) } 50% { transform: translateX(-5px) } 100% { transform: translateX(0) } }
@keyframes akl-candle { 0% { transform: scale(1); opacity: .6 } 50% { transform: scale(1.1); opacity: 1 } 100% { transform: scale(.9); opacity: .7 } }

.scn-emily-apprehends-udolpho {
  background: 
    linear-gradient(180deg, #0a0a15 0%, #151525 50%, #0a0a15 100%),
    radial-gradient(ellipse at 50% 100%, #1a1a3a 0%, transparent 70%);
}
.scn-emily-apprehends-udolpho .dark-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #0a0a15 0%, #1a1a2a 60%, #0a0a15 100%);
  animation: eau-bg 20s ease-in-out infinite alternate;
}
.scn-emily-apprehends-udolpho .window-frame {
  position: absolute; bottom: 30%; left: 10%; right: 10%;
  height: 50%;
  border: 4px solid #2a1a0a;
  border-radius: 6px;
  background: transparent;
  box-shadow: inset 0 0 30px rgba(0,0,0,.8), 0 0 15px rgba(0,0,0,.5);
}
.scn-emily-apprehends-udolpho .mountains {
  position: absolute; bottom: 30%; left: 10%; right: 10%;
  height: 40%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a15 100%);
  clip-path: polygon(0% 60%, 20% 30%, 40% 50%, 60% 10%, 80% 40%, 100% 30%, 100% 100%, 0% 100%);
  animation: eau-mountain 25s ease-in-out infinite alternate;
}
.scn-emily-apprehends-udolpho .figure-emily {
  position: absolute; bottom: 20%; left: 45%;
  width: 22px; height: 55px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a15 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: eau-figure 7s ease-in-out infinite;
}
.scn-emily-apprehends-udolpho .letter {
  position: absolute; bottom: 25%; left: 30%;
  width: 30px; height: 20px;
  background: linear-gradient(135deg, #c8a060 0%, #a08040 100%);
  border-radius: 2px;
  transform: rotate(-15deg);
  box-shadow: 0 2px 6px rgba(0,0,0,.5);
  animation: eau-letter 10s ease-in-out infinite alternate;
}
.scn-emily-apprehends-udolpho .desk {
  position: absolute; bottom: 5%; left: 20%; right: 20%;
  height: 15%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 4px;
  box-shadow: 0 -4px 12px rgba(0,0,0,.6);
}
.scn-emily-apprehends-udolpho .candle-drip {
  position: absolute; bottom: 20%; left: 55%;
  width: 8px; height: 18px;
  background: radial-gradient(circle, #ffd080 0%, #b08040 80%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  box-shadow: 0 0 25px 8px #b08040;
  animation: eau-drip 4s ease-in-out infinite alternate;
}
@keyframes eau-bg { 0% { opacity: .7 } 50% { opacity: .95 } 100% { opacity: .8 } }
@keyframes eau-mountain { 0% { clip-path: polygon(0% 60%, 20% 30%, 40% 50%, 60% 10%, 80% 40%, 100% 30%, 100% 100%, 0% 100%) } 50% { clip-path: polygon(0% 50%, 20% 20%, 40% 40%, 60% 0%, 80% 30%, 100% 20%, 100% 100%, 0% 100%) } 100% { clip-path: polygon(0% 65%, 20% 35%, 40% 55%, 60% 15%, 80% 45%, 100% 35%, 100% 100%, 0% 100%) } }
@keyframes eau-figure { 0% { transform: scale(1) rotate(-1deg) } 50% { transform: scale(1.02) rotate(0deg) translateY(-2px) } 100% { transform: scale(1) rotate(1deg) } }
@keyframes eau-letter { 0% { transform: rotate(-15deg) translate(0, 0) } 50% { transform: rotate(-10deg) translate(2px, -3px) } 100% { transform: rotate(-20deg) translate(0, 0) } }
@keyframes eau-drip { 0% { transform: scale(1); opacity: .7 } 50% { transform: scale(1.1) rotate(2deg); opacity: 1 } 100% { transform: scale(.9); opacity: .8 } }

.scn-emily-escapes-to-rampart {
  background: linear-gradient(180deg, #f0e4c4 0%, #d4c49a 30%, #a0936b 60%, #7a6a4a 100%), radial-gradient(ellipse at 70% 20%, #fff7e0 0%, transparent 50%);
}
.scn-emily-escapes-to-rampart .sky { position:absolute; inset:0 0 70% 0; background: linear-gradient(180deg, #b8d4f0 0%, #e0e8c8 100%); animation: er1-sky 20s ease-in-out infinite alternate; }
.scn-emily-escapes-to-rampart .sun { position:absolute; top:12%; left:75%; width:40px; height:40px; background: radial-gradient(circle, #fff7d0 0%, #f0d080 60%, transparent 80%); border-radius:50%; box-shadow: 0 0 80px 40px rgba(240,208,128,0.3); animation: er1-sun 30s ease-in-out infinite; }
.scn-emily-escapes-to-rampart .rampart-wall { position:absolute; bottom:30%; left:0; right:0; height:70%; background: linear-gradient(90deg, #8a7a5a 0%, #a09670 30%, #b0a080 50%, #9a8a6a 80%, #7a6a4a 100%); border-radius: 20% 10% 0 0; box-shadow: inset 0 -10px 20px rgba(0,0,0,0.3); animation: er1-wall 12s ease-in-out infinite; }
.scn-emily-escapes-to-rampart .rampart-floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #6a5a3a 0%, #4a3a2a 100%); border-radius: 0; box-shadow: inset 0 20px 30px rgba(0,0,0,0.5); }
.scn-emily-escapes-to-rampart .figure-emily { position:absolute; bottom:32%; left:20%; width:20px; height:36px; background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: er1-walk 6s ease-in-out infinite; }
.scn-emily-escapes-to-rampart .shadow-figure { position:absolute; bottom:32%; left:25%; width:18px; height:30px; background: rgba(0,0,0,0.2); border-radius: 50%; filter: blur(3px); animation: er1-shadow 6s ease-in-out infinite; }
.scn-emily-escapes-to-rampart .distant-hills { position:absolute; bottom:50%; left:0; right:0; height:20%; background: linear-gradient(180deg, #a8b898 0%, #7a8a6a 100%); border-radius: 40% 60% 0 0 / 60% 50% 0 0; opacity:0.5; animation: er1-hills 25s ease-in-out infinite alternate; }
.scn-emily-escapes-to-rampart .cloud-1 { position:absolute; top:15%; left:10%; width:90px; height:20px; background: rgba(255,255,255,0.6); border-radius: 50%; filter: blur(8px); animation: er1-drift-a 60s linear infinite; }
.scn-emily-escapes-to-rampart .cloud-2 { position:absolute; top:22%; right:15%; width:70px; height:15px; background: rgba(255,255,255,0.5); border-radius: 50%; filter: blur(6px); animation: er1-drift-b 80s linear infinite reverse; }
@keyframes er1-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes er1-sun { 0% { transform: translateY(0) scale(1) } 25% { transform: translateY(-5px) scale(1.02) } 50% { transform: translateY(0) scale(1) } 75% { transform: translateY(3px) scale(0.98) } 100% { transform: translateY(0) scale(1) } }
@keyframes er1-wall { 0% { transform: translateY(0) } 25% { transform: translateY(-2px) } 50% { transform: translateY(0) } 75% { transform: translateY(1px) } 100% { transform: translateY(0) } }
@keyframes er1-walk { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(15px) rotate(2deg) } 50% { transform: translateX(30px) rotate(0deg) } 75% { transform: translateX(45px) rotate(-2deg) } 100% { transform: translateX(60px) rotate(0deg) } }
@keyframes er1-shadow { 0% { transform: translateX(0) scale(1) } 25% { transform: translateX(15px) scale(1.1) } 50% { transform: translateX(30px) scale(1) } 75% { transform: translateX(45px) scale(0.9) } 100% { transform: translateX(60px) scale(1) } }
@keyframes er1-hills { 0% { transform: scaleY(1) } 50% { transform: scaleY(0.95) } 100% { transform: scaleY(1) } }
@keyframes er1-drift-a { 0% { transform: translateX(-50px) } 100% { transform: translateX(120vw) } }
@keyframes er1-drift-b { 0% { transform: translateX(0) } 100% { transform: translateX(-100vw) } }

.scn-annette-with-picture {
  background: linear-gradient(180deg, #d4c09a 0%, #b0a080 50%, #8a7a5a 100%), radial-gradient(ellipse at 50% 20%, #f0e0c0 0%, transparent 70%);
}
.scn-annette-with-picture .hall-wall { position:absolute; inset:0; background: linear-gradient(90deg, #8a7a5a 0%, #a09070 30%, #b0a080 60%, #9a8a6a 100%); box-shadow: inset 0 0 100px rgba(0,0,0,0.2); }
.scn-annette-with-picture .doorway { position:absolute; top:10%; left:15%; width:100px; height:150px; background: #5a4a2a; border-radius: 5% 5% 0 0 / 10% 10% 0 0; box-shadow: inset 0 0 30px rgba(0,0,0,0.5); animation: awp2-door 10s ease-in-out infinite; }
.scn-annette-with-picture .picture-frame { position:absolute; top:20%; left:50%; width:80px; height:100px; background: linear-gradient(135deg, #6a5a3a 0%, #4a3a1a 100%); border: 6px solid #8a7050; border-radius: 4px; transform: translateX(-50%) rotate(0deg); box-shadow: 0 8px 20px rgba(0,0,0,0.5); animation: awp2-frame 8s ease-in-out infinite; }
.scn-annette-with-picture .picture-glow { position:absolute; top:20%; left:50%; width:70px; height:90px; background: radial-gradient(circle, #c8a060 0%, transparent 80%); transform: translateX(-50%) translateY(5px); opacity:0.7; animation: awp2-glow 4s ease-in-out infinite alternate; }
.scn-annette-with-picture .annette-figure { position:absolute; bottom:25%; left:20%; width:22px; height:40px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: awp2-annette-walk 5s ease-in-out infinite; }
.scn-annette-with-picture .emily-figure { position:absolute; bottom:25%; left:60%; width:20px; height:38px; background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: awp2-emily-stand 6s ease-in-out infinite; }
.scn-annette-with-picture .floor-shadow { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, rgba(0,0,0,0.3) 0%, transparent 100%); }
.scn-annette-with-picture .dust-motes { position:absolute; top:30%; left:30%; width:6px; height:6px; background: rgba(255,255,200,0.6); border-radius:50%; box-shadow: 0 0 10px 2px rgba(255,255,200,0.3); animation: awp2-dust 8s ease-in-out infinite alternate; }
@keyframes awp2-door { 0% { transform: scaleX(1) } 25% { transform: scaleX(0.9) } 50% { transform: scaleX(1) } 75% { transform: scaleX(1.05) } 100% { transform: scaleX(1) } }
@keyframes awp2-frame { 0% { transform: translateX(-50%) rotate(0deg) } 25% { transform: translateX(-50%) rotate(2deg) } 50% { transform: translateX(-50%) rotate(0deg) } 75% { transform: translateX(-50%) rotate(-2deg) } 100% { transform: translateX(-50%) rotate(0deg) } }
@keyframes awp2-glow { 0% { opacity:0.5 } 50% { opacity:1 } 100% { opacity:0.6 } }
@keyframes awp2-annette-walk { 0% { transform: translateX(0) rotate(0deg) } 20% { transform: translateX(10px) rotate(3deg) } 40% { transform: translateX(20px) rotate(0deg) } 60% { transform: translateX(30px) rotate(-3deg) } 80% { transform: translateX(40px) rotate(0deg) } 100% { transform: translateX(50px) rotate(2deg) } }
@keyframes awp2-emily-stand { 0% { transform: translateY(0) } 25% { transform: translateY(-3px) } 50% { transform: translateY(0) } 75% { transform: translateY(2px) } 100% { transform: translateY(0) } }
@keyframes awp2-dust { 0% { transform: translate(0,0) scale(1) } 25% { transform: translate(10px,-5px) scale(1.2) } 50% { transform: translate(20px,0) scale(0.8) } 75% { transform: translate(30px,-3px) scale(1.1) } 100% { transform: translate(40px,0) scale(1) } }

.scn-emily-hesitates {
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 60%, #2a1a0a 100%), radial-gradient(ellipse at 70% 30%, #8a7050 0%, transparent 70%);
}
.scn-emily-hesitates .dim-wall { position:absolute; inset:0; background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 50%, #2a1a0a 100%); box-shadow: inset 0 0 150px rgba(0,0,0,0.5); }
.scn-emily-hesitates .veiled-painting { position:absolute; top:15%; left:50%; width:90px; height:110px; background: linear-gradient(135deg, #6a5a3a 0%, #4a3a1a 100%); border: 4px solid #5a4a2a; border-radius: 2px; transform: translateX(-50%); animation: eh3-veil-frame 8s ease-in-out infinite; }
.scn-emily-hesitates .veil { position:absolute; top:15%; left:50%; width:90px; height:110px; background: rgba(255,255,255,0.1); backdrop-filter: blur(2px); border-radius: 2px; transform: translateX(-50%); box-shadow: 0 0 20px rgba(255,255,255,0.05); animation: eh3-veil 6s ease-in-out infinite; }
.scn-emily-hesitates .emily-silhouette { position:absolute; bottom:20%; left:35%; width:20px; height:40px; background: #1a0a0a; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: eh3-tremble 3s ease-in-out infinite; }
.scn-emily-hesitates .annette-silhouette { position:absolute; bottom:20%; left:60%; width:22px; height:42px; background: #2a1a0a; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: eh3-lean 4s ease-in-out infinite; }
.scn-emily-hesitates .floor-line { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(0deg, #2a1a0a 0%, transparent 100%); }
.scn-emily-hesitates .shadow-pool { position:absolute; bottom:15%; left:40%; width:60px; height:20px; background: rgba(0,0,0,0.3); border-radius: 50%; filter: blur(5px); animation: eh3-shadow 5s ease-in-out infinite; }
.scn-emily-hesitates .light-ray { position:absolute; top:0; left:30%; width:2px; height:100%; background: linear-gradient(180deg, rgba(255,240,200,0.3) 0%, transparent 80%); transform: rotate(15deg); animation: eh3-ray 7s ease-in-out infinite; }
@keyframes eh3-veil-frame { 0% { transform: translateX(-50%) scale(1) } 25% { transform: translateX(-50%) scale(1.02) } 50% { transform: translateX(-50%) scale(0.98) } 75% { transform: translateX(-50%) scale(1.01) } 100% { transform: translateX(-50%) scale(1) } }
@keyframes eh3-veil { 0% { opacity:0.3 } 25% { opacity:0.5 } 50% { opacity:0.2 } 75% { opacity:0.4 } 100% { opacity:0.3 } }
@keyframes eh3-tremble { 0% { transform: translateX(0) rotate(0deg) } 10% { transform: translateX(2px) rotate(1deg) } 20% { transform: translateX(-2px) rotate(-1deg) } 30% { transform: translateX(1px) rotate(0deg) } 40% { transform: translateX(-1px) rotate(1deg) } 50% { transform: translateX(0) rotate(0deg) } 60% { transform: translateX(2px) rotate(-1deg) } 70% { transform: translateX(-2px) rotate(0deg) } 80% { transform: translateX(1px) rotate(1deg) } 90% { transform: translateX(-1px) rotate(0deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes eh3-lean { 0% { transform: translateX(0) rotate(0deg) } 20% { transform: translateX(-5px) rotate(3deg) } 40% { transform: translateX(5px) rotate(-2deg) } 60% { transform: translateX(-3px) rotate(1deg) } 80% { transform: translateX(3px) rotate(0deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes eh3-shadow { 0% { opacity:0.3 } 25% { opacity:0.5 } 50% { opacity:0.2 } 75% { opacity:0.4 } 100% { opacity:0.3 } }
@keyframes eh3-ray { 0% { opacity:0.2 } 50% { opacity:0.5 } 100% { opacity:0.2 } }

.scn-annette-urges {
  background: linear-gradient(180deg, #f0e0c0 0%, #d0c09a 50%, #a09070 100%), radial-gradient(ellipse at 60% 30%, #fff4e0 0%, transparent 70%);
}
.scn-annette-urges .stone-arch { position:absolute; top:0; left:20%; width:60%; height:30%; background: linear-gradient(90deg, #8a7a5a 0%, #b0a080 50%, #8a7a5a 100%); border-radius: 50% 50% 0 0 / 100% 100% 0 0; box-shadow: inset 0 -10px 20px rgba(0,0,0,0.3); animation: au4-arch 15s ease-in-out infinite alternate; }
.scn-annette-urges .hall-floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #6a5a3a 0%, #4a3a2a 100%); box-shadow: inset 0 20px 30px rgba(0,0,0,0.4); }
.scn-annette-urges .annette-reaching { position:absolute; bottom:25%; left:25%; width:22px; height:42px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: au4-annette-reach 4s ease-in-out infinite; }
.scn-annette-urges .emily-standing { position:absolute; bottom:25%; left:55%; width:20px; height:38px; background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: au4-emily-turn 6s ease-in-out infinite; }
.scn-annette-urges .picture-hidden { position:absolute; top:20%; left:60%; width:60px; height:80px; background: linear-gradient(135deg, #6a5a3a 0%, #4a3a1a 100%); border: 4px solid #8a7050; border-radius: 2px; transform: translateX(-50%) rotate(10deg); box-shadow: 0 8px 20px rgba(0,0,0,0.5); animation: au4-picture 7s ease-in-out infinite; }
.scn-annette-urges .sunbeam { position:absolute; top:10%; left:40%; width:40px; height:80%; background: linear-gradient(180deg, rgba(255,240,200,0.2) 0%, transparent 70%); transform: rotate(-20deg); filter: blur(5px); animation: au4-sunbeam 12s ease-in-out infinite alternate; }
.scn-annette-urges .dust-particles { position:absolute; top:35%; left:35%; width:4px; height:4px; background: rgba(255,255,200,0.5); border-radius:50%; box-shadow: 0 0 8px 2px rgba(255,255,200,0.2); animation: au4-dust 5s ease-in-out infinite alternate; }
.scn-annette-urges .shadow-annette { position:absolute; bottom:25%; left:22%; width:22px; height:30px; background: rgba(0,0,0,0.2); border-radius:50%; filter: blur(3px); animation: au4-shadow-annette 4s ease-in-out infinite; }
.scn-annette-urges .shadow-emily { position:absolute; bottom:25%; left:52%; width:20px; height:28px; background: rgba(0,0,0,0.2); border-radius:50%; filter: blur(3px); animation: au4-shadow-emily 6s ease-in-out infinite; }
@keyframes au4-arch { 0% { transform: scaleX(1) } 25% { transform: scaleX(1.02) } 50% { transform: scaleX(0.98) } 75% { transform: scaleX(1.01) } 100% { transform: scaleX(1) } }
@keyframes au4-annette-reach { 0% { transform: translateX(0) rotate(0deg) } 20% { transform: translateX(10px) rotate(5deg) } 40% { transform: translateX(20px) rotate(0deg) } 60% { transform: translateX(30px) rotate(5deg) } 80% { transform: translateX(40px) rotate(0deg) } 100% { transform: translateX(50px) rotate(5deg) } }
@keyframes au4-emily-turn { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(-5px) rotate(-3deg) } 50% { transform: translateX(0) rotate(0deg) } 75% { transform: translateX(5px) rotate(3deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes au4-picture { 0% { transform: translateX(-50%) rotate(10deg) scale(1) } 25% { transform: translateX(-50%) rotate(12deg) scale(1.02) } 50% { transform: translateX(-50%) rotate(8deg) scale(0.98) } 75% { transform: translateX(-50%) rotate(11deg) scale(1.01) } 100% { transform: translateX(-50%) rotate(10deg) scale(1) } }
@keyframes au4-sunbeam { 0% { opacity:0.2 } 50% { opacity:0.5 } 100% { opacity:0.3 } }
@keyframes au4-dust { 0% { transform: translate(0,0) scale(1) } 25% { transform: translate(5px,-3px) scale(1.2) } 50% { transform: translate(10px,0) scale(0.8) } 75% { transform: translate(15px,-2px) scale(1.1) } 100% { transform: translate(20px,0) scale(1) } }
@keyframes au4-shadow-annette { 0% { transform: translateX(0) scale(1) } 25% { transform: translateX(10px) scale(1.1) } 50% { transform: translateX(20px) scale(1) } 75% { transform: translateX(30px) scale(0.9) } 100% { transform: translateX(40px) scale(1) } }
@keyframes au4-shadow-emily { 0% { transform: translateX(0) scale(1) } 25% { transform: translateX(-5px) scale(0.9) } 50% { transform: translateX(0) scale(1) } 75% { transform: translateX(5px) scale(1.1) } 100% { transform: translateX(0) scale(1) } }

.scn-emily-perceives-design {
  background: linear-gradient(180deg, #1c1620 0%, #2a1f1a 40%, #1e1410 100%),
              radial-gradient(ellipse at 50% 40%, #2a1f1a 0%, transparent 70%);
}
.scn-emily-perceives-design .interior-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #231c1a 0%, #1a1412 100%);
  animation: epd-pulse 12s ease-in-out infinite alternate;
}
.scn-emily-perceives-design .wall-shadow {
  position: absolute; inset: 10% 30% auto auto; width: 40%; height: 60%;
  background: linear-gradient(135deg, rgba(0,0,0,0.4) 0%, transparent 100%);
  animation: epd-drift 15s ease-in-out infinite;
}
.scn-emily-perceives-design .desk {
  position: absolute; bottom: 22%; left: 15%; right: 20%; height: 8%;
  background: linear-gradient(180deg, #3a2a1e 0%, #2a1a12 100%);
  border-radius: 4px; box-shadow: 0 4px 12px rgba(0,0,0,0.6);
  animation: epd-desk 6s ease-in-out infinite alternate;
}
.scn-emily-perceives-design .candle {
  position: absolute; bottom: 30%; left: 35%; width: 8px; height: 28px;
  background: linear-gradient(180deg, #d4b070 0%, #8a6a3a 60%, #3a2a12 100%);
  border-radius: 50% 50% 30% 30% / 40% 40% 30% 30%;
  box-shadow: 0 0 6px rgba(200,160,80,0.3);
  animation: epd-flicker 2s ease-in-out infinite;
}
.scn-emily-perceives-design .candle-glow {
  position: absolute; bottom: 32%; left: 33%; width: 20px; height: 30px;
  background: radial-gradient(ellipse, rgba(240,200,120,0.5) 0%, transparent 70%);
  border-radius: 50%;
  animation: epd-glow 4s ease-in-out infinite alternate;
}
.scn-emily-perceives-design .figure-seated {
  position: absolute; bottom: 22%; left: 38%; width: 28px; height: 48px;
  background: linear-gradient(180deg, #2a1e1a 0%, #0e0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: epd-breathe 5s ease-in-out infinite;
}
.scn-emily-perceives-design .window-bars {
  position: absolute; top: 10%; right: 10%; width: 20%; height: 50%;
  border: 3px solid #1a1412; border-radius: 6px;
  background: repeating-linear-gradient(0deg, transparent 0px, transparent 8px, #1a1412 8px, #1a1412 11px);
  opacity: 0.6;
  animation: epd-bars 8s ease-in-out infinite alternate;
}
.scn-emily-perceives-design .motes {
  position: absolute; inset: 0; background: radial-gradient(circle at 40% 30%, rgba(200,160,80,0.1) 0%, transparent 60%);
  animation: epd-motes 20s linear infinite;
}
@keyframes epd-pulse { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes epd-drift { 0% { transform: translateX(0) translateY(0); } 50% { transform: translateX(5px) translateY(-3px); } 100% { transform: translateX(0) translateY(0); } }
@keyframes epd-desk { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(1); } }
@keyframes epd-flicker { 0% { transform: scaleY(1) rotate(0deg); opacity: 0.9; } 25% { transform: scaleY(1.05) rotate(2deg); opacity: 1; } 50% { transform: scaleY(0.95) rotate(-1deg); opacity: 0.8; } 75% { transform: scaleY(1.03) rotate(1deg); opacity: 1; } 100% { transform: scaleY(1) rotate(0deg); opacity: 0.9; } }
@keyframes epd-glow { 0% { opacity: 0.6; transform: scale(1); } 50% { opacity: 1; transform: scale(1.2); } 100% { opacity: 0.7; transform: scale(1.1); } }
@keyframes epd-breathe { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes epd-bars { 0% { opacity: 0.4; } 50% { opacity: 0.7; } 100% { opacity: 0.5; } }
@keyframes epd-motes { 0% { background-position: 0% 0%; } 50% { background-position: 10% 5%; } 100% { background-position: 0% 0%; } }

.scn-midnight-on-brenta {
  background: linear-gradient(180deg, #0a0a2a 0%, #12123a 40%, #1a1a4e 100%),
              radial-gradient(ellipse at 50% 80%, #1a1a4e 0%, transparent 80%);
}
.scn-midnight-on-brenta .night-sky {
  position: absolute; inset: 0 0 30% 0; background: linear-gradient(180deg, #0a0a2a 0%, #161644 100%);
  animation: mob-sky 20s ease-in-out infinite alternate;
}
.scn-midnight-on-brenta .stars-a {
  position: absolute; top: 10%; left: 20%; width: 120px; height: 40px;
  background: radial-gradient(circle 2px at 10% 50%, rgba(200,220,255,0.8) 0%, transparent 100%),
              radial-gradient(circle 1px at 30% 70%, rgba(200,220,255,0.6) 0%, transparent 100%),
              radial-gradient(circle 3px at 60% 20%, rgba(200,220,255,0.9) 0%, transparent 100%);
  animation: mob-twinkle-a 6s ease-in-out infinite;
}
.scn-midnight-on-brenta .stars-b {
  position: absolute; top: 30%; right: 15%; width: 100px; height: 30px;
  background: radial-gradient(circle 2px at 20% 40%, rgba(180,200,255,0.7) 0%, transparent 100%),
              radial-gradient(circle 1px at 50% 60%, rgba(180,200,255,0.5) 0%, transparent 100%);
  animation: mob-twinkle-b 8s ease-in-out infinite alternate;
}
.scn-midnight-on-brenta .moon {
  position: absolute; top: 12%; left: 65%; width: 30px; height: 30px;
  background: radial-gradient(circle, #d0d8f0 0%, #a0b0d0 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 10px rgba(160,176,208,0.3), 0 0 80px 20px rgba(160,176,208,0.1);
  animation: mob-moon 15s ease-in-out infinite alternate;
}
.scn-midnight-on-brenta .river {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1a1a3e 0%, #0e0e2a 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.5);
  animation: mob-river 12s ease-in-out infinite alternate;
}
.scn-midnight-on-brenta .shore-left {
  position: absolute; bottom: 28%; left: 0; width: 30%; height: 15%;
  background: linear-gradient(180deg, #1e1e2e 0%, #0e0e1a 100%);
  border-radius: 0 60% 0 0;
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.4);
  animation: mob-shore 10s ease-in-out infinite alternate;
}
.scn-midnight-on-brenta .shore-right {
  position: absolute; bottom: 26%; right: 0; width: 25%; height: 20%;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%);
  border-radius: 60% 0 0 0;
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.4);
  animation: mob-shore 14s ease-in-out infinite alternate-reverse;
}
.scn-midnight-on-brenta .boat {
  position: absolute; bottom: 18%; left: 45%; width: 40px; height: 12px;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2a 100%);
  border-radius: 40% 40% 30% 30%;
  transform-origin: center bottom;
  animation: mob-boat 8s ease-in-out infinite;
}
@keyframes mob-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes mob-twinkle-a { 0% { opacity: 0.3; transform: scale(0.95); } 50% { opacity: 1; transform: scale(1.05); } 100% { opacity: 0.4; transform: scale(0.95); } }
@keyframes mob-twinkle-b { 0% { opacity: 0.5; } 50% { opacity: 0.8; } 100% { opacity: 0.4; } }
@keyframes mob-moon { 0% { transform: translateY(0) scale(1); box-shadow: 0 0 40px 10px rgba(160,176,208,0.3); } 50% { transform: translateY(-3px) scale(1.02); box-shadow: 0 0 60px 15px rgba(160,176,208,0.4); } 100% { transform: translateY(2px) scale(0.98); box-shadow: 0 0 30px 8px rgba(160,176,208,0.2); } }
@keyframes mob-river { 0% { background-position: 0% 0%; } 50% { background-position: 5% 2%; } 100% { background-position: 0% 0%; } }
@keyframes mob-shore { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes mob-boat { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(6px) rotate(-2deg); } 50% { transform: translateX(12px) rotate(1deg); } 75% { transform: translateX(18px) rotate(-1deg); } 100% { transform: translateX(24px) rotate(0deg); } }

.scn-midnight-song {
  background: linear-gradient(180deg, #0a1020 0%, #101830 40%, #182040 100%),
              radial-gradient(ellipse at 60% 20%, #1a2648 0%, transparent 80%);
}
.scn-midnight-song .deep-sea {
  position: absolute; inset: 0 0 25% 0; background: linear-gradient(180deg, #0a1020 0%, #141c34 100%);
  animation: mds-sea 15s ease-in-out infinite alternate;
}
.scn-midnight-song .moon-halo {
  position: absolute; top: 12%; right: 20%; width: 60px; height: 60px;
  background: radial-gradient(ellipse, rgba(180,200,240,0.15) 0%, transparent 70%);
  border-radius: 50%;
  animation: mds-halo 20s ease-in-out infinite alternate;
}
.scn-midnight-song .ship-hull {
  position: absolute; bottom: 30%; left: 30%; width: 60px; height: 30px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 10% 10% 30% 30%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
  animation: mds-hull 8s ease-in-out infinite alternate;
}
.scn-midnight-song .sail-front {
  position: absolute; bottom: 40%; left: 36%; width: 16px; height: 40px;
  background: linear-gradient(180deg, #b0b8c8 0%, #808898 100%);
  border-radius: 30% 30% 10% 10%;
  transform-origin: bottom center;
  animation: mds-sail-front 5s ease-in-out infinite;
}
.scn-midnight-song .sail-back {
  position: absolute; bottom: 42%; left: 46%; width: 14px; height: 36px;
  background: linear-gradient(180deg, #a0a8b8 0%, #707888 100%);
  border-radius: 30% 30% 10% 10%;
  transform-origin: bottom center;
  animation: mds-sail-back 7s ease-in-out infinite reverse;
}
.scn-midnight-song .wave-foam-1 {
  position: absolute; bottom: 28%; left: 10%; width: 80px; height: 8px;
  background: linear-gradient(180deg, rgba(180,200,220,0.3) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(3px);
  animation: mds-wave-1 12s ease-in-out infinite;
}
.scn-midnight-song .wave-foam-2 {
  position: absolute; bottom: 26%; right: 15%; width: 60px; height: 6px;
  background: linear-gradient(180deg, rgba(160,180,200,0.2) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(2px);
  animation: mds-wave-2 15s ease-in-out infinite reverse;
}
.scn-midnight-song .sailor-silhouette {
  position: absolute; bottom: 30%; left: 42%; width: 10px; height: 24px;
  background: linear-gradient(180deg, #0a0a14 0%, #05050a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mds-sailor 6s ease-in-out infinite;
}
@keyframes mds-sea { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes mds-halo { 0% { transform: scale(1); opacity: 0.6; } 50% { transform: scale(1.1); opacity: 0.8; } 100% { transform: scale(0.95); opacity: 0.5; } }
@keyframes mds-hull { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes mds-sail-front { 0% { transform: rotate(0deg) scaleX(1); } 25% { transform: rotate(4deg) scaleX(0.95); } 50% { transform: rotate(0deg) scaleX(1); } 75% { transform: rotate(-3deg) scaleX(0.95); } 100% { transform: rotate(0deg) scaleX(1); } }
@keyframes mds-sail-back { 0% { transform: rotate(0deg) scaleX(1); } 25% { transform: rotate(-3deg) scaleX(0.95); } 50% { transform: rotate(0deg) scaleX(1); } 75% { transform: rotate(2deg) scaleX(0.95); } 100% { transform: rotate(0deg) scaleX(1); } }
@keyframes mds-wave-1 { 0% { transform: translateX(0) scaleX(1); opacity: 0.3; } 50% { transform: translateX(10px) scaleX(1.2); opacity: 0.5; } 100% { transform: translateX(0) scaleX(1); opacity: 0.3; } }
@keyframes mds-wave-2 { 0% { transform: translateX(0) scaleX(1); opacity: 0.2; } 50% { transform: translateX(-8px) scaleX(1.1); opacity: 0.4; } 100% { transform: translateX(0) scaleX(1); opacity: 0.2; } }
@keyframes mds-sailor { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-1px) rotate(2deg); } 50% { transform: translateY(0) rotate(-1deg); } 75% { transform: translateY(-1px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }

.scn-villa-quesnel-arrival {
  background: linear-gradient(180deg, #0c1220 0%, #16223a 40%, #1a2a44 100%),
              radial-gradient(ellipse at 50% 30%, #1a2a44 0%, transparent 80%);
}
.scn-villa-quesnel-arrival .sky-night {
  position: absolute; inset: 0 0 35% 0; background: linear-gradient(180deg, #0c1220 0%, #182a40 100%);
  animation: vqa-sky 18s ease-in-out infinite alternate;
}
.scn-villa-quesnel-arrival .moon-villa {
  position: absolute; top: 10%; right: 25%; width: 28px; height: 28px;
  background: radial-gradient(circle, #d0d8f0 0%, #a0b0d0 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 8px rgba(160,176,208,0.25), 0 0 60px 15px rgba(160,176,208,0.1);
  animation: vqa-moon 20s ease-in-out infinite alternate;
}
.scn-villa-quesnel-arrival .trees-fore {
  position: absolute; bottom: 30%; left: 5%; width: 25%; height: 50%;
  background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1a 100%);
  border-radius: 60% 40% 30% 30% / 70% 60% 30% 30%;
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.5);
  animation: vqa-trees 12s ease-in-out infinite alternate;
}
.scn-villa-quesnel-arrival .trees-mid {
  position: absolute; bottom: 28%; right: 10%; width: 20%; height: 45%;
  background: linear-gradient(180deg, #16202e 0%, #0a0a1a 100%);
  border-radius: 40% 60% 20% 30% / 60% 70% 20% 30%;
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.4);
  animation: vqa-trees 16s ease-in-out infinite alternate-reverse;
}
.scn-villa-quesnel-arrival .villa-portico {
  position: absolute; bottom: 32%; left: 35%; width: 30%; height: 30%;
  background: linear-gradient(180deg, #3a4a3e 0%, #2a3a2e 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 4px 12px rgba(0,0,0,0.5), inset 0 4px 8px rgba(100,120,100,0.2);
  animation: vqa-villa 10s ease-in-out infinite alternate;
}
.scn-villa-quesnel-arrival .river-villa {
  position: absolute; bottom: 0; left: 0; right: 0; height: 32%;
  background: linear-gradient(180deg, #16223a 0%, #0e1428 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.5);
  animation: vqa-river 14s ease-in-out infinite alternate;
}
.scn-villa-quesnel-arrival .barge {
  position: absolute; bottom: 14%; left: 20%; width: 50px; height: 10px;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2a 100%);
  border-radius: 30% 30% 20% 20%;
  transform-origin: center bottom;
  animation: vqa-barge 8s ease-in-out infinite;
}
.scn-villa-quesnel-arrival .barge-lantern {
  position: absolute; bottom: 18%; left: 35%; width: 6px; height: 10px;
  background: linear-gradient(180deg, #e0c080 0%, #a08040 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 10px 2px rgba(200,160,80,0.6);
  animation: vqa-lantern 4s ease-in-out infinite alternate;
}
@keyframes vqa-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes vqa-moon { 0% { transform: translateY(0) scale(1); box-shadow: 0 0 30px 8px rgba(160,176,208,0.25); } 50% { transform: translateY(-2px) scale(1.02); box-shadow: 0 0 40px 12px rgba(160,176,208,0.35); } 100% { transform: translateY(2px) scale(0.98); box-shadow: 0 0 20px 6px rgba(160,176,208,0.15); } }
@keyframes vqa-trees { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes vqa-villa { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(1); } }
@keyframes vqa-river { 0% { background-position: 0% 0%; } 50% { background-position: 4% 2%; } 100% { background-position: 0% 0%; } }
@keyframes vqa-barge { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(8px) rotate(-2deg); } 50% { transform: translateX(16px) rotate(1deg); } 75% { transform: translateX(24px) rotate(-1deg); } 100% { transform: translateX(32px) rotate(0deg); } }
@keyframes vqa-lantern { 0% { opacity: 0.6; transform: scale(1); } 50% { opacity: 1; transform: scale(1.2); } 100% { opacity: 0.7; transform: scale(1.05); } }

/* montoni-character – awe, dim interior */
.scn-montoni-character {
  background: linear-gradient(135deg, #1c1a2a 0%, #2a2440 40%, #3a3055 100%),
              radial-gradient(ellipse at 40% 60%, rgba(120,100,80,0.2) 0%, transparent 60%);
}
.scn-montoni-character .room-wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #2a2440 0%, #1c1a2a 80%);
  animation: mo-wall 12s ease-in-out infinite alternate;
}
.scn-montoni-character .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 38%;
  background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0e 100%);
  border-radius: 20% 0 0 0 / 10% 0 0 0;
}
.scn-montoni-character .figure-montoni {
  position: absolute; bottom: 18%; left: 45%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #0a0a15 10%, #151520 60%, #0a0a15 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: mo-figure 6s ease-in-out infinite alternate;
  box-shadow: -4px 0 8px rgba(0,0,0,0.6);
}
.scn-montoni-character .glow-window {
  position: absolute; left: 20%; top: 15%; width: 50px; height: 70px;
  background: radial-gradient(circle at 30% 40%, rgba(200,180,140,0.6) 0%, rgba(100,85,60,0.3) 60%, transparent 100%);
  border-radius: 4px;
  animation: mo-glow 8s ease-in-out infinite alternate;
  box-shadow: 0 0 40px 20px rgba(200,180,140,0.15);
}
.scn-montoni-character .chair {
  position: absolute; bottom: 22%; left: 38%; width: 30px; height: 40px;
  background: linear-gradient(135deg, #2a2418 0%, #1a140e 100%);
  border-radius: 10% 10% 20% 20% / 30% 30% 40% 40%;
  transform: rotate(-5deg);
  animation: mo-chair 14s ease-in-out infinite;
}
.scn-montoni-character .cast-shadow {
  position: absolute; bottom: 16%; left: 40%; width: 70px; height: 12px;
  background: linear-gradient(90deg, rgba(0,0,0,0.5) 0%, rgba(0,0,0,0.2) 100%);
  border-radius: 50%;
  filter: blur(3px);
  animation: mo-shadow 6s ease-in-out infinite alternate;
}
.scn-montoni-character .dust-mote {
  position: absolute; width: 4px; height: 4px; border-radius: 50%;
  background: rgba(220,200,180,0.4);
  filter: blur(1px);
}
.scn-montoni-character .mote1 { top: 30%; left: 30%; animation: mo-mote1 20s linear infinite; }
.scn-montoni-character .mote2 { top: 50%; left: 60%; animation: mo-mote2 25s linear infinite; animation-delay: -5s; }

@keyframes mo-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes mo-figure {
  0% { transform: translateY(0) rotate(-1deg) scaleX(1); }
  50% { transform: translateY(-4px) rotate(0.5deg) scaleX(1.02); }
  100% { transform: translateY(0) rotate(1deg) scaleX(1); }
}
@keyframes mo-glow {
  0% { opacity: 0.6; transform: scaleY(1); box-shadow: 0 0 40px 20px rgba(200,180,140,0.1); }
  50% { opacity: 0.9; transform: scaleY(1.05); box-shadow: 0 0 60px 30px rgba(200,180,140,0.25); }
  100% { opacity: 0.7; transform: scaleY(1); box-shadow: 0 0 45px 25px rgba(200,180,140,0.15); }
}
@keyframes mo-chair {
  0% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(-4deg) translateY(-2px); }
  100% { transform: rotate(-6deg) translateY(0); }
}
@keyframes mo-shadow {
  0% { transform: scaleX(1) translateX(0); opacity: 0.6; }
  50% { transform: scaleX(1.1) translateX(3px); opacity: 0.8; }
  100% { transform: scaleX(1) translateX(0); opacity: 0.6; }
}
@keyframes mo-mote1 {
  0% { transform: translate(0,0) scale(1); opacity: 0; }
  25% { transform: translate(20px,-10px) scale(1.2); opacity: 0.4; }
  50% { transform: translate(40px,-5px) scale(0.8); opacity: 0.2; }
  75% { transform: translate(60px,-15px) scale(1.1); opacity: 0.5; }
  100% { transform: translate(80px,-20px) scale(0.9); opacity: 0; }
}
@keyframes mo-mote2 {
  0% { transform: translate(0,0) scale(1); opacity: 0; }
  25% { transform: translate(-20px,-8px) scale(0.9); opacity: 0.3; }
  50% { transform: translate(-40px,-12px) scale(1.1); opacity: 0.5; }
  75% { transform: translate(-60px,-4px) scale(0.7); opacity: 0.2; }
  100% { transform: translate(-80px,-16px) scale(1); opacity: 0; }
}

/* morano-rumors – sad, dim interior */
.scn-morano-rumors {
  background: linear-gradient(180deg, #1a1c28 0%, #24283a 40%, #2c3044 100%),
              radial-gradient(ellipse at 70% 50%, rgba(100,110,140,0.15) 0%, transparent 70%);
}
.scn-morano-rumors .room-wall {
  position: absolute; inset: 0; background: linear-gradient(130deg, #24283a 0%, #1a1c28 100%);
  animation: mr-wall 14s ease-in-out infinite alternate;
}
.scn-morano-rumors .window-frame {
  position: absolute; right: 12%; top: 10%; width: 50px; height: 70px;
  background: linear-gradient(135deg, #2a2c36 0%, #3a3a4a 100%);
  border-radius: 4px; box-shadow: inset 0 0 8px #0a0a12;
  animation: mr-window 18s ease-in-out infinite;
}
.scn-morano-rumors .bed {
  position: absolute; bottom: 14%; left: 20%; right: 20%; height: 30%;
  background: linear-gradient(180deg, #3a2c24 0%, #2a1c14 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%;
  box-shadow: 0 -4px 12px rgba(0,0,0,0.5);
}
.scn-morano-rumors .figure-morano {
  position: absolute; bottom: 20%; left: 45%; width: 36px; height: 56px;
  background: linear-gradient(180deg, #1a1a22 0%, #0e0e15 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform: rotate(10deg);
  animation: mr-figure 6s ease-in-out infinite alternate;
}
.scn-morano-rumors .candle {
  position: absolute; bottom: 30%; left: 25%; width: 6px; height: 18px;
  background: linear-gradient(180deg, #d4b080 0%, #a08040 100%);
  border-radius: 40% 40% 20% 20%;
  animation: mr-candle 3s ease-in-out infinite alternate;
}
.scn-morano-rumors .candle-glow {
  position: absolute; bottom: 28%; left: 24%; width: 30px; height: 30px;
  background: radial-gradient(circle, rgba(200,160,100,0.5) 0%, rgba(200,160,100,0.1) 60%, transparent 100%);
  border-radius: 50%;
  animation: mr-candle-glow 3s ease-in-out infinite alternate;
}
.scn-morano-rumors .blanket-fold {
  position: absolute; bottom: 18%; left: 30%; right: 30%; height: 6px;
  background: linear-gradient(180deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 50%; filter: blur(2px);
  animation: mr-blanket 10s ease-in-out infinite;
}

@keyframes mr-wall { 0% { opacity: 0.85; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes mr-window {
  0% { transform: scaleY(1); border-color: #3a3a4a; }
  50% { transform: scaleY(1.03); border-color: #4a4a5a; }
  100% { transform: scaleY(1); border-color: #3a3a4a; }
}
@keyframes mr-figure {
  0% { transform: rotate(10deg) translateY(0); }
  50% { transform: rotate(9deg) translateY(-2px); }
  100% { transform: rotate(11deg) translateY(0); }
}
@keyframes mr-candle {
  0% { transform: scaleY(1) translateY(0); opacity: 0.8; }
  50% { transform: scaleY(1.2) translateY(-3px); opacity: 1; }
  100% { transform: scaleY(1) translateY(0); opacity: 0.7; }
}
@keyframes mr-candle-glow {
  0% { opacity: 0.4; transform: scale(1); }
  50% { opacity: 0.7; transform: scale(1.2); }
  100% { opacity: 0.4; transform: scale(1); }
}
@keyframes mr-blanket {
  0% { transform: translateY(0) scaleY(1); opacity: 0.8; }
  50% { transform: translateY(-1px) scaleY(0.95); opacity: 0.6; }
  100% { transform: translateY(0) scaleY(1); opacity: 0.8; }
}

/* annette-hints – fear, dim interior */
.scn-annette-hints {
  background: linear-gradient(135deg, #1a1020 0%, #251a30 40%, #2a1e32 100%),
              radial-gradient(ellipse at 30% 50%, rgba(60,40,70,0.3) 0%, transparent 70%);
}
.scn-annette-hints .corridor-wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #251a30 0%, #1a1020 100%);
  animation: ah-wall 15s ease-in-out infinite alternate;
}
.scn-annette-hints .archway {
  position: absolute; top: 20%; left: 25%; right: 25%; height: 60%;
  background: radial-gradient(ellipse at 50% 0%, #2a1e32 0%, #1a1020 100%);
  border-radius: 50% 50% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 20px 30px rgba(0,0,0,0.5);
  animation: ah-arch 20s ease-in-out infinite;
}
.scn-annette-hints .silhouette-annette {
  position: absolute; bottom: 18%; left: 35%; width: 28px; height: 50px;
  background: linear-gradient(180deg, #0a0a12 0%, #14141a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: ah-annette 5s ease-in-out infinite alternate;
}
.scn-annette-hints .ghost-figure {
  position: absolute; bottom: 22%; right: 28%; width: 30px; height: 60px;
  background: radial-gradient(ellipse at 30% 40%, rgba(180,160,200,0.25) 0%, rgba(180,160,200,0.05) 80%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  filter: blur(4px);
  animation: ah-ghost 8s ease-in-out infinite alternate;
}
.scn-annette-hints .lantern {
  position: absolute; bottom: 30%; left: 22%; width: 8px; height: 12px;
  background: radial-gradient(circle, #b08040 0%, #806030 100%);
  border-radius: 30% 30% 20% 20%;
  animation: ah-lantern 3s ease-in-out infinite alternate;
}
.scn-annette-hints .lantern-glow {
  position: absolute; bottom: 28%; left: 20%; width: 35px; height: 35px;
  background: radial-gradient(circle, rgba(200,160,80,0.4) 0%, rgba(200,160,80,0.1) 60%, transparent 100%);
  border-radius: 50%;
  animation: ah-lantern-glow 3s ease-in-out infinite alternate;
}
.scn-annette-hints .cast-shadow {
  position: absolute; bottom: 12%; left: 20%; right: 20%; height: 10px;
  background: linear-gradient(90deg, rgba(0,0,0,0.4) 0%, rgba(0,0,0,0.2) 50%, rgba(0,0,0,0.4) 100%);
  border-radius: 50%; filter: blur(4px);
  animation: ah-shadow 10s ease-in-out infinite;
}

@keyframes ah-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes ah-arch {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.02) translateY(-2px); }
  100% { transform: scaleY(1); }
}
@keyframes ah-annette {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(2deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes ah-ghost {
  0% { opacity: 0.2; transform: scale(1) translateY(0) rotate(0deg); }
  50% { opacity: 0.5; transform: scale(1.05) translateY(-5px) rotate(3deg); }
  100% { opacity: 0.2; transform: scale(1) translateY(0) rotate(0deg); }
}
@keyframes ah-lantern {
  0% { transform: scaleY(1); opacity: 0.8; }
  50% { transform: scaleY(1.3) translateY(-2px); opacity: 1; }
  100% { transform: scaleY(1); opacity: 0.7; }
}
@keyframes ah-lantern-glow {
  0% { opacity: 0.3; transform: scale(1); }
  50% { opacity: 0.6; transform: scale(1.2); }
  100% { opacity: 0.3; transform: scale(1); }
}
@keyframes ah-shadow {
  0% { transform: scaleX(1); opacity: 0.5; }
  50% { transform: scaleX(1.15); opacity: 0.7; }
  100% { transform: scaleX(1); opacity: 0.5; }
}

/* ludovico-warnings – fear, dim interior */
.scn-ludovico-warnings {
  background: linear-gradient(180deg, #1a1418 0%, #241a1e 40%, #2a2024 100%),
              radial-gradient(ellipse at 60% 40%, rgba(80,60,50,0.2) 0%, transparent 70%);
}
.scn-ludovico-warnings .room-wall {
  position: absolute; inset: 0; background: linear-gradient(135deg, #241a1e 0%, #1a1418 100%);
  animation: lw-wall 12s ease-in-out infinite alternate;
}
.scn-ludovico-warnings .wooden-table {
  position: absolute; bottom: 20%; left: 30%; right: 30%; height: 8px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0e 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: lw-table 18s ease-in-out infinite;
}
.scn-ludovico-warnings .candle {
  position: absolute; bottom: 30%; left: 45%; width: 6px; height: 20px;
  background: linear-gradient(180deg, #d4a060 0%, #a07030 100%);
  border-radius: 40% 40% 20% 20%;
  animation: lw-candle 3s ease-in-out infinite alternate;
}
.scn-ludovico-warnings .figure-ludovico {
  position: absolute; bottom: 16%; left: 30%; width: 32px; height: 64px;
  background: linear-gradient(180deg, #0a0a10 0%, #151518 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: lw-ludovico 5s ease-in-out infinite alternate;
}
.scn-ludovico-warnings .figure-emily {
  position: absolute; bottom: 16%; right: 30%; width: 26px; height: 56px;
  background: linear-gradient(180deg, #0e0e18 0%, #1a1a22 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: lw-emily 6s ease-in-out infinite alternate;
}
.scn-ludovico-warnings .candle-glow {
  position: absolute; bottom: 28%; left: 43%; width: 35px; height: 35px;
  background: radial-gradient(circle, rgba(200,160,80,0.4) 0%, rgba(200,160,80,0.1) 60%, transparent 100%);
  border-radius: 50%;
  animation: lw-candle-glow 3s ease-in-out infinite alternate;
}
.scn-ludovico-warnings .wall-shadow {
  position: absolute; bottom: 0; left: 20%; right: 20%; height: 20%;
  background: linear-gradient(180deg, rgba(0,0,0,0.3) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(6px);
  animation: lw-shadow 12s ease-in-out infinite;
}
.scn-ludovico-warnings .door-ajar {
  position: absolute; right: 10%; top: 10%; width: 30px; height: 60px;
  background: linear-gradient(135deg, #2a2018 0%, #1a1410 100%);
  border-radius: 4px;
  transform: rotate(-8deg);
  box-shadow: -4px 0 8px rgba(0,0,0,0.4);
  animation: lw-door 15s ease-in-out infinite alternate;
}

@keyframes lw-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes lw-table {
  0% { transform: translateY(0) scaleX(1); }
  50% { transform: translateY(-1px) scaleX(1.02); }
  100% { transform: translateY(0) scaleX(1); }
}
@keyframes lw-candle {
  0% { transform: scaleY(1) translateY(0); opacity: 0.8; }
  50% { transform: scaleY(1.25) translateY(-3px); opacity: 1; }
  100% { transform: scaleY(1) translateY(0); opacity: 0.7; }
}
@keyframes lw-candle-glow {
  0% { opacity: 0.3; transform: scale(1); }
  50% { opacity: 0.7; transform: scale(1.2); }
  100% { opacity: 0.3; transform: scale(1); }
}
@keyframes lw-ludovico {
  0% { transform: translateY(0) rotate(-2deg) scaleX(1); }
  50% { transform: translateY(-3px) rotate(1deg) scaleX(1.05); }
  100% { transform: translateY(0) rotate(2deg) scaleX(1); }
}
@keyframes lw-emily {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(-2deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes lw-shadow {
  0% { opacity: 0.3; transform: scaleY(1); }
  50% { opacity: 0.6; transform: scaleY(1.1); }
  100% { opacity: 0.3; transform: scaleY(1); }
}
@keyframes lw-door {
  0% { transform: rotate(-8deg) translateX(0); }
  50% { transform: rotate(-7deg) translateX(2px); }
  100% { transform: rotate(-9deg) translateX(0); }
}

/* scene: connection-to-st-aubert - tense dim interior with miniature portrait */
.scn-connection-to-st-aubert {
  background: 
    linear-gradient(135deg, #1a1410 0%, #2c1f12 40%, #3a2518 70%, #1a1410 100%),
    radial-gradient(ellipse at 50% 30%, #4a2e1a 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-connection-to-st-aubert .wall {
  position: absolute; inset: 0;
  background: repeating-linear-gradient(0deg, transparent 0%, rgba(0,0,0,0.1) 50%, transparent 100%) 0 0 / 100% 60px;
  animation: cta-wall-light 10s ease-in-out infinite alternate;
}
.scn-connection-to-st-aubert .table {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 30%;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.6);
}
.scn-connection-to-st-aubert .candle {
  position: absolute; bottom: 25%; left: 38%; width: 10px; height: 50px;
  background: linear-gradient(180deg, #d4b080 0%, #a08050 100%);
  border-radius: 10% 10% 20% 20%;
  transform-origin: bottom center;
  animation: cta-candle-sway 3s ease-in-out infinite alternate;
}
.scn-connection-to-st-aubert .flame {
  position: absolute; bottom: 75%; left: 38%; width: 14px; height: 22px;
  margin-left: -2px;
  background: radial-gradient(circle at 50% 30%, #ffd060 0%, #ff8030 60%, transparent 100%);
  border-radius: 50% 50% 20% 20%;
  filter: blur(1px);
  animation: cta-flame 0.8s ease-in-out infinite alternate;
}
.scn-connection-to-st-aubert .portrait {
  position: absolute; bottom: 30%; left: 50%; width: 50px; height: 70px;
  transform: translateX(-50%) rotate(5deg);
  background: linear-gradient(145deg, #b8906a 0%, #8a6a4a 100%);
  border: 3px solid #5a3a20;
  border-radius: 10% 10% 8% 8%;
  box-shadow: 0 0 30px 8px rgba(255, 180, 60, 0.4);
  animation: cta-portrait 6s ease-in-out infinite;
}
.scn-connection-to-st-aubert .hand {
  position: absolute; bottom: 25%; left: 46%; width: 28px; height: 40px;
  background: linear-gradient(180deg, #6a4a38 0%, #3a2a20 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform: rotate(15deg);
  transform-origin: bottom center;
  animation: cta-hand 5s ease-in-out infinite alternate;
}
.scn-connection-to-st-aubert .shadow-curtain {
  position: absolute; top: 0; left: 70%; width: 40%; height: 100%;
  background: linear-gradient(90deg, transparent 0%, rgba(0,0,0,0.6) 100%);
  animation: cta-shadow 8s ease-in-out infinite alternate;
}
.scn-connection-to-st-aubert .glow {
  position: absolute; bottom: 35%; left: 50%; width: 120px; height: 120px;
  transform: translate(-50%, -50%);
  background: radial-gradient(circle, rgba(255,180,60,0.3) 0%, transparent 70%);
  animation: cta-glow 4s ease-in-out infinite alternate;
}
@keyframes cta-wall-light {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes cta-candle-sway {
  0% { transform: rotate(-1deg); }
  50% { transform: rotate(1deg); }
  100% { transform: rotate(-0.5deg); }
}
@keyframes cta-flame {
  0% { transform: scale(1) translateY(0); opacity: 0.9; }
  50% { transform: scale(1.2) translateY(-2px); opacity: 1; }
  100% { transform: scale(0.95) translateY(1px); opacity: 0.8; }
}
@keyframes cta-portrait {
  0% { transform: translateX(-50%) rotate(5deg); box-shadow: 0 0 30px 8px rgba(255,180,60,0.4); }
  50% { transform: translateX(-50%) rotate(6deg) scale(1.02); box-shadow: 0 0 40px 12px rgba(255,180,60,0.6); }
  100% { transform: translateX(-50%) rotate(4deg); box-shadow: 0 0 25px 6px rgba(255,180,60,0.3); }
}
@keyframes cta-hand {
  0% { transform: rotate(15deg) translateX(0); }
  50% { transform: rotate(18deg) translateX(3px); }
  100% { transform: rotate(13deg) translateX(-1px); }
}
@keyframes cta-shadow {
  0% { opacity: 0.6; }
  50% { opacity: 0.8; }
  100% { opacity: 0.7; }
}
@keyframes cta-glow {
  0% { opacity: 0.5; transform: translate(-50%, -50%) scale(1); }
  50% { opacity: 0.8; transform: translate(-50%, -50%) scale(1.1); }
  100% { opacity: 0.6; transform: translate(-50%, -50%) scale(0.95); }
}

/* scene: curiosity-vs-doubt - tense dim interior with desk, papers, figure */
.scn-curiosity-vs-doubt {
  background: 
    linear-gradient(180deg, #1a1512 0%, #2a1f18 40%, #1e1410 100%),
    radial-gradient(ellipse at 30% 60%, #3a2215 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-curiosity-vs-doubt .bg-dark {
  position: absolute; inset: 0;
  background: repeating-linear-gradient(45deg, rgba(0,0,0,0.05) 0%, transparent 25%, rgba(0,0,0,0.05) 50%) 0 0 / 40px 40px;
  animation: cvd-bg-shimmer 12s ease-in-out infinite alternate;
}
.scn-curiosity-vs-doubt .desk {
  position: absolute; bottom: 0; left: 5%; right: 5%; height: 35%;
  background: linear-gradient(180deg, #4a3528 0%, #2a1a10 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.7);
}
.scn-curiosity-vs-doubt .papers {
  position: absolute; bottom: 25%; left: 30%; width: 80px; height: 60px;
  background: linear-gradient(135deg, #d4c8a0 0%, #b8a880 100%);
  border-radius: 2%;
  box-shadow: 0 2px 8px rgba(0,0,0,0.5);
  transform: rotate(-5deg);
  animation: cvd-papers 7s ease-in-out infinite alternate;
}
.scn-curiosity-vs-doubt .candle {
  position: absolute; bottom: 30%; left: 18%; width: 8px; height: 45px;
  background: linear-gradient(180deg, #d4b080 0%, #a08050 100%);
  border-radius: 10% 10% 20% 20%;
  transform-origin: bottom center;
  animation: cvd-candle 3.5s ease-in-out infinite alternate;
}
.scn-curiosity-vs-doubt .flame {
  position: absolute; bottom: 77%; left: 18%; width: 12px; height: 18px;
  margin-left: -2px;
  background: radial-gradient(circle at 50% 30%, #ffd060 0%, #ff8030 60%, transparent 100%);
  border-radius: 50% 50% 20% 20%;
  filter: blur(1px);
  animation: cvd-flame 0.6s ease-in-out infinite alternate;
}
.scn-curiosity-vs-doubt .arm {
  position: absolute; bottom: 20%; left: 22%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #6a4a38 0%, #3a2a20 100%);
  border-radius: 30% 30% 20% 20%;
  transform: rotate(-20deg);
  transform-origin: bottom right;
  animation: cvd-arm 9s ease-in-out infinite;
}
.scn-curiosity-vs-doubt .figure-silhouette {
  position: absolute; bottom: 0; right: 10%; width: 60px; height: 85%;
  background: linear-gradient(180deg, #1a1510 0%, #0a0a08 100%);
  border-radius: 50% 50% 0 0 / 60% 60% 0 0;
  clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%);
  opacity: 0.4;
  animation: cvd-figure 15s ease-in-out infinite alternate;
}
.scn-curiosity-vs-doubt .curtain {
  position: absolute; top: 0; right: 0; width: 25%; height: 100%;
  background: linear-gradient(90deg, transparent, rgba(0,0,0,0.6) 40%, rgba(0,0,0,0.8) 100%);
  animation: cvd-curtain 6s ease-in-out infinite alternate;
}
@keyframes cvd-bg-shimmer {
  0% { opacity: 0.3; }
  50% { opacity: 0.5; }
  100% { opacity: 0.4; }
}
@keyframes cvd-papers {
  0% { transform: rotate(-5deg) translateX(0); }
  50% { transform: rotate(-3deg) translateX(5px); }
  100% { transform: rotate(-6deg) translateX(-2px); }
}
@keyframes cvd-candle {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(2deg); }
  100% { transform: rotate(-1deg); }
}
@keyframes cvd-flame {
  0% { transform: scale(1) translateY(0); opacity: 0.9; }
  50% { transform: scale(1.3) translateY(-3px); opacity: 1; }
  100% { transform: scale(0.9) translateY(1px); opacity: 0.7; }
}
@keyframes cvd-arm {
  0% { transform: rotate(-20deg) translateX(0); }
  50% { transform: rotate(-15deg) translateX(8px); }
  100% { transform: rotate(-22deg) translateX(-2px); }
}
@keyframes cvd-figure {
  0% { opacity: 0.3; transform: scaleY(1); }
  50% { opacity: 0.5; transform: scaleY(1.03); }
  100% { opacity: 0.4; transform: scaleY(0.98); }
}
@keyframes cvd-curtain {
  0% { opacity: 0.6; }
  50% { opacity: 0.8; }
  100% { opacity: 0.7; }
}

/* scene: dorothee’s-hesitation - tense dim interior with figure and hand clutching */
.scn-dorothee’s-hesitation {
  background: 
    linear-gradient(0deg, #1c1412 0%, #2a1e18 40%, #181210 100%),
    radial-gradient(ellipse at 40% 30%, #3a2518 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-dorothee’s-hesitation .wall {
  position: absolute; inset: 0;
  background: repeating-linear-gradient(0deg, transparent, transparent 30px, rgba(0,0,0,0.08) 30px, rgba(0,0,0,0.08) 31px);
  animation: doh-wall 14s ease-in-out infinite;
}
.scn-dorothee’s-hesitation .curtain-left {
  position: absolute; top: 0; left: 0; width: 30%; height: 100%;
  background: linear-gradient(90deg, rgba(0,0,0,0.7) 0%, transparent 100%);
  animation: doh-curtain-left 8s ease-in-out infinite alternate;
}
.scn-dorothee’s-hesitation .curtain-right {
  position: absolute; top: 0; right: 0; width: 30%; height: 100%;
  background: linear-gradient(270deg, rgba(0,0,0,0.7) 0%, transparent 100%);
  animation: doh-curtain-right 8s ease-in-out infinite alternate;
}
.scn-dorothee’s-hesitation .table {
  position: absolute; bottom: 0; left: 15%; right: 15%; height: 25%;
  background: linear-gradient(180deg, #4a3024 0%, #2a1a0e 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.6);
}
.scn-dorothee’s-hesitation .candle {
  position: absolute; bottom: 20%; left: 45%; width: 8px; height: 40px;
  background: linear-gradient(180deg, #d4b080 0%, #a08050 100%);
  border-radius: 10% 10% 20% 20%;
  animation: doh-candle 4s ease-in-out infinite alternate;
}
.scn-dorothee’s-hesitation .flame {
  position: absolute; bottom: 65%; left: 45%; width: 12px; height: 20px;
  margin-left: -2px;
  background: radial-gradient(circle at 50% 30%, #ffd060 0%, #ff8030 60%, transparent 100%);
  border-radius: 50% 50% 20% 20%;
  filter: blur(1px);
  animation: doh-flame 0.7s ease-in-out infinite alternate;
}
.scn-dorothee’s-hesitation .figure-silhouette {
  position: absolute; bottom: 0; left: 40%; width: 40px; height: 70%;
  background: linear-gradient(180deg, #1a1410 0%, #0a0806 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: doh-figure 10s ease-in-out infinite alternate;
}
.scn-dorothee’s-hesitation .hand-clutching {
  position: absolute; bottom: 25%; left: 48%; width: 24px; height: 32px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2218 100%);
  border-radius: 30% 50% 40% 40% / 40% 60% 40% 40%;
  transform: rotate(30deg);
  transform-origin: bottom left;
  animation: doh-hand 5s ease-in-out infinite;
}
.scn-dorothee’s-hesitation .shadow {
  position: absolute; bottom: 10%; left: 20%; width: 60%; height: 20%;
  background: linear-gradient(180deg, rgba(0,0,0,0.4) 0%, transparent 100%);
  animation: doh-shadow 6s ease-in-out infinite alternate;
}
@keyframes doh-wall {
  0% { opacity: 0.6; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes doh-curtain-left {
  0% { transform: scaleX(1); opacity: 0.7; }
  50% { transform: scaleX(1.05); opacity: 0.9; }
  100% { transform: scaleX(0.95); opacity: 0.8; }
}
@keyframes doh-curtain-right {
  0% { transform: scaleX(1); opacity: 0.7; }
  50% { transform: scaleX(1.05); opacity: 0.9; }
  100% { transform: scaleX(0.95); opacity: 0.8; }
}
@keyframes doh-candle {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(2deg); }
  100% { transform: rotate(-1deg); }
}
@keyframes doh-flame {
  0% { transform: scale(1) translateY(0); opacity: 0.9; }
  50% { transform: scale(1.25) translateY(-2px); opacity: 1; }
  100% { transform: scale(0.9) translateY(1px); opacity: 0.8; }
}
@keyframes doh-figure {
  0% { transform: translateX(0) scaleY(1); }
  50% { transform: translateX(5px) scaleY(1.02); }
  100% { transform: translateX(-3px) scaleY(0.98); }
}
@keyframes doh-hand {
  0% { transform: rotate(30deg) translateX(0); }
  50% { transform: rotate(25deg) translateX(4px); }
  100% { transform: rotate(32deg) translateX(-2px); }
}
@keyframes doh-shadow {
  0% { opacity: 0.4; }
  50% { opacity: 0.6; }
  100% { opacity: 0.5; }
}

/* scene: promise-of-secrecy - tense dim interior with two silhouettes and miniature */
.scn-promise-of-secrecy {
  background: 
    linear-gradient(180deg, #1a1512 0%, #2a1e16 40%, #1c1410 100%),
    radial-gradient(ellipse at 50% 40%, #3a2215 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-promise-of-secrecy .wall {
  position: absolute; inset: 0;
  background: repeating-linear-gradient(0deg, rgba(0,0,0,0.05) 0%, transparent 20px, rgba(0,0,0,0.05) 20px, transparent 21px);
  animation: pos-wall 16s ease-in-out infinite;
}
.scn-promise-of-secrecy .table {
  position: absolute; bottom: 0; left: 20%; right: 20%; height: 20%;
  background: linear-gradient(180deg, #4a3024 0%, #2a1a0e 100%);
  border-radius: 30% 30% 0 0;
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.6);
}
.scn-promise-of-secrecy .candle {
  position: absolute; bottom: 18%; left: 50%; width: 8px; height: 45px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #d4b080 0%, #a08050 100%);
  border-radius: 10% 10% 20% 20%;
  animation: pos-candle 3s ease-in-out infinite alternate;
}
.scn-promise-of-secrecy .flame {
  position: absolute; bottom: 63%; left: 50%; width: 14px; height: 22px;
  transform: translateX(-50%);
  background: radial-gradient(circle at 50% 30%, #ffd060 0%, #ff8030 60%, transparent 100%);
  border-radius: 50% 50% 20% 20%;
  filter: blur(1px);
  animation: pos-flame 0.9s ease-in-out infinite alternate;
}
.scn-promise-of-secrecy .silhouette-left {
  position: absolute; bottom: 0; left: 10%; width: 45px; height: 80%;
  background: linear-gradient(180deg, #1a1410 0%, #0a0806 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: pos-sil-left 12s ease-in-out infinite alternate;
}
.scn-promise-of-secrecy .silhouette-right {
  position: absolute; bottom: 0; right: 10%; width: 45px; height: 80%;
  background: linear-gradient(180deg, #1a1410 0%, #0a0806 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: pos-sil-right 12s ease-in-out infinite alternate-reverse;
}
.scn-promise-of-secrecy .portrait-mini {
  position: absolute; bottom: 25%; left: 48%; width: 20px; height: 28px;
  background: linear-gradient(145deg, #b8906a 0%, #8a6a4a 100%);
  border: 2px solid #5a3a20;
  border-radius: 10%;
  box-shadow: 0 0 12px 4px rgba(255, 180, 60, 0.5);
  transform: rotate(10deg);
  animation: pos-portrait 8s ease-in-out infinite;
}
.scn-promise-of-secrecy .glow-circle {
  position: absolute; bottom: 30%; left: 50%; width: 180px; height: 180px;
  transform: translate(-50%, -50%);
  background: radial-gradient(circle, rgba(255,180,60,0.2) 0%, transparent 70%);
  animation: pos-glow 5s ease-in-out infinite alternate;
}
@keyframes pos-wall {
  0% { opacity: 0.5; }
  50% { opacity: 0.8; }
  100% { opacity: 0.6; }
}
@keyframes pos-candle {
  0% { transform: translateX(-50%) rotate(0deg); }
  50% { transform: translateX(-50%) rotate(2deg); }
  100% { transform: translateX(-50%) rotate(-1deg); }
}
@keyframes pos-flame {
  0% { transform: translateX(-50%) scale(1); opacity: 0.9; }
  50% { transform: translateX(-50%) scale(1.3) translateY(-3px); opacity: 1; }
  100% { transform: translateX(-50%) scale(0.9); opacity: 0.8; }
}
@keyframes pos-sil-left {
  0% { transform: translateX(0) scaleY(1); }
  50% { transform: translateX(5px) scaleY(1.02); }
  100% { transform: translateX(-3px) scaleY(0.98); }
}
@keyframes pos-sil-right {
  0% { transform: translateX(0) scaleY(1); }
  50% { transform: translateX(-5px) scaleY(1.02); }
  100% { transform: translateX(3px) scaleY(0.98); }
}
@keyframes pos-portrait {
  0% { transform: rotate(10deg) scale(1); box-shadow: 0 0 12px 4px rgba(255,180,60,0.5); }
  50% { transform: rotate(12deg) scale(1.05); box-shadow: 0 0 18px 6px rgba(255,180,60,0.7); }
  100% { transform: rotate(8deg) scale(0.95); box-shadow: 0 0 10px 3px rgba(255,180,60,0.4); }
}
@keyframes pos-glow {
  0% { opacity: 0.4; transform: translate(-50%, -50%) scale(1); }
  50% { opacity: 0.7; transform: translate(-50%, -50%) scale(1.1); }
  100% { opacity: 0.5; transform: translate(-50%, -50%) scale(0.95); }
}

.scn-dorothee-startles {
  background: linear-gradient(180deg, #1a1410 0%, #2a1f18 50%, #0e0a08 100%);
}
.scn-dorothee-startles .wall-left {
  position: absolute;
  left: 0; top: 0; width: 30%; height: 100%;
  background: linear-gradient(90deg, #1a1410 0%, #2a1f18 100%);
  box-shadow: inset -10px 0 20px rgba(0,0,0,0.5);
  animation: ds-wall 6s ease-in-out infinite alternate;
}
.scn-dorothee-startles .wall-right {
  position: absolute;
  right: 0; top: 0; width: 20%; height: 100%;
  background: linear-gradient(90deg, #2a1f18 0%, #1a1410 100%);
  box-shadow: inset 10px 0 20px rgba(0,0,0,0.5);
  animation: ds-wall 6s ease-in-out infinite alternate-reverse;
}
.scn-dorothee-startles .floor {
  position: absolute;
  bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #2a1f18 0%, #1a1410 100%);
  border-radius: 50% 50% 0 0 / 20% 20% 0 0;
}
.scn-dorothee-startles .door {
  position: absolute;
  bottom: 35%; left: 50%; width: 80px; height: 120px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a3528 0%, #2a1f18 100%);
  border: 2px solid #1a1410;
  border-radius: 10px 10px 0 0;
  animation: ds-door 8s ease-in-out infinite;
}
.scn-dorothee-startles .light-beam {
  position: absolute;
  bottom: 35%; left: 50%; width: 100px; height: 160px;
  transform: translateX(-50%) skewX(-5deg);
  background: linear-gradient(180deg, rgba(255,220,180,0.5) 0%, transparent 80%);
  filter: blur(8px);
  clip-path: polygon(10% 0%, 90% 0%, 100% 100%, 0% 100%);
  animation: ds-light 4s ease-in-out infinite alternate;
}
.scn-dorothee-startles .figure-shadow {
  position: absolute;
  bottom: 35%; left: 55%; width: 30px; height: 90px;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.6) 0%, transparent 70%);
  transform: scaleX(0.6);
  animation: ds-figure 10s ease-in-out infinite;
}
.scn-dorothee-startles .dust-motes {
  position: absolute;
  inset: 0;
  background: radial-gradient(circle at 30% 40%, rgba(255,220,180,0.1) 0%, transparent 50%);
  animation: ds-dust 15s linear infinite;
}
@keyframes ds-wall {
  0%, 100% { opacity: 0.8; }
  50% { opacity: 1; }
}
@keyframes ds-door {
  0%, 100% { transform: translateX(-50%) scaleY(1); }
  30% { transform: translateX(-50%) scaleY(0.98); }
  50% { transform: translateX(-50%) scaleY(1); }
  70% { transform: translateX(-50%) scaleY(1.02); }
}
@keyframes ds-light {
  0% { opacity: 0.6; transform: translateX(-50%) skewX(-5deg) scaleX(1); }
  50% { opacity: 0.9; transform: translateX(-50%) skewX(-8deg) scaleX(1.1); }
  100% { opacity: 0.7; transform: translateX(-50%) skewX(-3deg) scaleX(0.9); }
}
@keyframes ds-figure {
  0%, 100% { transform: translateY(0) scaleX(0.6); opacity: 0.4; }
  25% { transform: translateY(-2px) scaleX(0.6); opacity: 0.5; }
  50% { transform: translateY(0) scaleX(0.6); opacity: 0.6; }
  75% { transform: translateY(-1px) scaleX(0.6); opacity: 0.5; }
}
@keyframes ds-dust {
  0% { background-position: 0% 0%; }
  50% { background-position: 10% 20%; }
  100% { background-position: 0% 0%; }
}

.scn-forbidden-rooms {
  background: linear-gradient(180deg, #3a2a1e 0%, #1e1410 40%, #0e0a08 100%);
}
.scn-forbidden-rooms .window-frame {
  position: absolute;
  left: 50%; top: 10%; width: 200px; height: 280px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a4030 0%, #3a2a1e 100%);
  border: 8px solid #1e1410;
  border-radius: 10px;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.6);
  animation: fr-frame 12s ease-in-out infinite alternate;
}
.scn-forbidden-rooms .inside-wall {
  position: absolute;
  left: 0; top: 0; width: 100%; height: 100%;
  background: linear-gradient(135deg, #2a1e14 0%, #4a3528 50%, #1e1410 100%);
}
.scn-forbidden-rooms .hill-outside {
  position: absolute;
  left: 50%; bottom: 40%; width: 180px; height: 100px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a5a3a 0%, #2a3a1a 100%);
  border-radius: 40% 60% 0 0 / 70% 80% 0 0;
  filter: blur(2px);
  animation: fr-hill 25s ease-in-out infinite alternate;
}
.scn-forbidden-rooms .sky-outside {
  position: absolute;
  left: 50%; top: 10%; width: 180px; height: 200px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #6a7a8a 0%, #8a9aae 50%, #5a6a7a 100%);
  clip-path: inset(10px round 10px);
  animation: fr-sky 30s ease-in-out infinite alternate;
}
.scn-forbidden-rooms .figure-blanche {
  position: absolute;
  left: 55%; bottom: 35%; width: 20px; height: 60px;
  background: radial-gradient(ellipse at 50% 30%, #3a2a1e 0%, #1e1410 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: fr-figure1 6s ease-in-out infinite;
}
.scn-forbidden-rooms .figure-dorothee {
  position: absolute;
  left: 42%; bottom: 35%; width: 22px; height: 55px;
  background: radial-gradient(ellipse at 50% 30%, #3a2a1e 0%, #1e1410 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: fr-figure2 8s ease-in-out infinite reverse;
}
.scn-forbidden-rooms .curtain {
  position: absolute;
  left: 50%; top: 8%; width: 240px; height: 300px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a4030 0%, #3a2a1e 80%);
  clip-path: inset(0 20px round 0 0 10px 10px);
  filter: blur(3px);
  opacity: 0.3;
  animation: fr-curtain 10s ease-in-out infinite alternate;
}
@keyframes fr-frame {
  0%, 100% { box-shadow: inset 0 0 30px rgba(0,0,0,0.6); }
  50% { box-shadow: inset 0 0 50px rgba(0,0,0,0.4); }
}
@keyframes fr-hill {
  0% { transform: translateX(-50%) scaleY(1); }
  50% { transform: translateX(-50%) scaleY(1.02); }
  100% { transform: translateX(-50%) scaleY(0.98); }
}
@keyframes fr-sky {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes fr-figure1 {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-2px) rotate(2deg); }
  50% { transform: translateY(0) rotate(-1deg); }
  75% { transform: translateY(-1px) rotate(1deg); }
}
@keyframes fr-figure2 {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  30% { transform: translateY(-1px) rotate(-2deg); }
  60% { transform: translateY(0) rotate(1deg); }
  80% { transform: translateY(-2px) rotate(0deg); }
}
@keyframes fr-curtain {
  0% { transform: translateX(-50%) scaleX(1); filter: blur(3px); }
  50% { transform: translateX(-50%) scaleX(1.03); filter: blur(2px); }
  100% { transform: translateX(-50%) scaleX(0.97); filter: blur(4px); }
}

.scn-evening-boat-trip {
  background: linear-gradient(180deg, #1a2a3a 0%, #3a4a5a 30%, #6a5a3a 60%, #8a6a3a 80%, #5a3a2a 100%);
}
.scn-evening-boat-trip .sky-evening {
  position: absolute;
  inset: 0 0 45% 0;
  background: linear-gradient(180deg, #1a2a3a 0%, #3a4a5a 40%, #6a5a3a 80%, #a07a4a 100%);
  animation: eb-sky 20s ease-in-out infinite alternate;
}
.scn-evening-boat-trip .water-evening {
  position: absolute;
  bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 50%, #0a1a2a 100%);
  animation: eb-water 8s ease-in-out infinite;
}
.scn-evening-boat-trip .boat-hull {
  position: absolute;
  bottom: 40%; left: 30%; width: 120px; height: 40px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 0 0 60% 60% / 0 0 80% 80%;
  transform-origin: bottom center;
  animation: eb-boat 5s ease-in-out infinite;
}
.scn-evening-boat-trip .boat-sail {
  position: absolute;
  bottom: 45%; left: 30%; width: 4px; height: 70px;
  background: #2a1a0a;
  transform-origin: bottom center;
  animation: eb-sail 5s ease-in-out infinite;
}
.scn-evening-boat-trip .boat-sail::before {
  content: '';
  position: absolute;
  bottom: 100%; left: -20px; width: 40px; height: 60px;
  background: linear-gradient(180deg, rgba(255,255,240,0.6) 0%, rgba(200,180,160,0.4) 100%);
  border-radius: 0 60% 0 60%;
  clip-path: polygon(0 0, 100% 0, 70% 100%, 0% 100%);
}
.scn-evening-boat-trip .distant-shore {
  position: absolute;
  bottom: 45%; left: 10%; width: 80%; height: 30px;
  background: linear-gradient(180deg, #3a4a3a 0%, #2a3a2a 100%);
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  filter: blur(4px);
  animation: eb-shore 30s ease-in-out infinite alternate;
}
.scn-evening-boat-trip .seabird-a {
  position: absolute;
  top: 15%; left: 20%;
  width: 30px; height: 10px;
  background: radial-gradient(ellipse at 50% 50%, #2a2a2a 0%, transparent 70%);
  border-radius: 50%;
  transform: rotate(-10deg);
  animation: eb-bird1 12s linear infinite;
}
.scn-evening-boat-trip .seabird-b {
  position: absolute;
  top: 20%; right: 30%;
  width: 24px; height: 8px;
  background: radial-gradient(ellipse at 50% 50%, #2a2a2a 0%, transparent 70%);
  border-radius: 50%;
  transform: rotate(15deg);
  animation: eb-bird2 15s linear infinite reverse;
}
.scn-evening-boat-trip .cloud-evening-a {
  position: absolute;
  top: 8%; left: 10%; width: 80px; height: 20px;
  background: linear-gradient(180deg, rgba(255,255,240,0.4) 0%, rgba(200,180,160,0.1) 100%);
  border-radius: 50%;
  filter: blur(6px);
  animation: eb-cloud1 40s linear infinite;
}
.scn-evening-boat-trip .cloud-evening-b {
  position: absolute;
  top: 12%; right: 15%; width: 60px; height: 15px;
  background: linear-gradient(180deg, rgba(255,255,240,0.3) 0%, rgba(200,180,160,0.05) 100%);
  border-radius: 50%;
  filter: blur(5px);
  animation: eb-cloud2 35s linear infinite reverse;
}
@keyframes eb-sky {
  0% { opacity: 0.8; transform: scaleY(1); }
  50% { opacity: 1; transform: scaleY(1.02); }
  100% { opacity: 0.9; transform: scaleY(0.98); }
}
@keyframes eb-water {
  0%, 100% { transform: translateY(0); }
  30% { transform: translateY(-3px); }
  60% { transform: translateY(2px); }
}
@keyframes eb-boat {
  0%, 100% { transform: rotate(-2deg) translateY(0); }
  25% { transform: rotate(1deg) translateY(-2px); }
  50% { transform: rotate(-1deg) translateY(1px); }
  75% { transform: rotate(2deg) translateY(-1px); }
}
@keyframes eb-sail {
  0%, 100% { transform: rotate(-2deg); }
  25% { transform: rotate(0deg); }
  50% { transform: rotate(2deg); }
  75% { transform: rotate(0deg); }
}
@keyframes eb-shore {
  0% { transform: scaleY(1); opacity: 0.6; }
  50% { transform: scaleY(1.05); opacity: 0.8; }
  100% { transform: scaleY(0.95); opacity: 0.7; }
}
@keyframes eb-bird1 {
  0% { transform: translateX(-20px) rotate(-10deg); }
  50% { transform: translateX(40vw) rotate(5deg); }
  100% { transform: translateX(-20px) rotate(-10deg); }
}
@keyframes eb-bird2 {
  0% { transform: translateX(0) rotate(15deg); }
  50% { transform: translateX(-30vw) rotate(-5deg); }
  100% { transform: translateX(0) rotate(15deg); }
}
@keyframes eb-cloud1 {
  0% { transform: translateX(-10px); }
  100% { transform: translateX(110vw); }
}
@keyframes eb-cloud2 {
  0% { transform: translateX(0); }
  100% { transform: translateX(-100vw); }
}

.scn-pavilion-landing {
  background: linear-gradient(180deg, #2a3a4a 0%, #4a5a6a 30%, #6a5a3a 60%, #8a6a3a 80%, #3a2a1a 100%);
}
.scn-pavilion-landing .sky-dusk {
  position: absolute;
  inset: 0 0 50% 0;
  background: linear-gradient(180deg, #1a2a3a 0%, #3a4a5a 40%, #6a5a3a 80%, #8a6a3a 100%);
  animation: pl-sky 25s ease-in-out infinite alternate;
}
.scn-pavilion-landing .water-dusk {
  position: absolute;
  bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 50%, #0a1a2a 100%);
  animation: pl-water 8s ease-in-out infinite;
}
.scn-pavilion-landing .shore-line {
  position: absolute;
  bottom: 45%; left: 10%; right: 10%; height: 8%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  animation: pl-shore 12s ease-in-out infinite alternate;
}
.scn-pavilion-landing .pavilion-roof {
  position: absolute;
  bottom: 48%; left: 50%; width: 160px; height: 40px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 30% 30% 0 0 / 60% 60% 0 0;
  box-shadow: 0 -4px 15px rgba(0,0,0,0.4);
  animation: pl-roof 6s ease-in-out infinite;
}
.scn-pavilion-landing .pavilion-columns {
  position: absolute;
  bottom: 37%; left: 50%; width: 140px; height: 50px;
  transform: translateX(-50%);
  background:
    linear-gradient(90deg, transparent 10%, #4a3a2a 10%, #4a3a2a 18%, transparent 18%),
    linear-gradient(90deg, transparent 40%, #4a3a2a 40%, #4a3a2a 48%, transparent 48%),
    linear-gradient(90deg, transparent 70%, #4a3a2a 70%, #4a3a2a 78%, transparent 78%);
  background-size: 100% 100%;
  animation: pl-columns 10s ease-in-out infinite alternate;
}
.scn-pavilion-landing .figure-countess {
  position: absolute;
  bottom: 38%; left: 30%; width: 22px; height: 55px;
  background: radial-gradient(ellipse at 50% 30%, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: pl-figure1 7s ease-in-out infinite;
}
.scn-pavilion-landing .figure-blanche {
  position: absolute;
  bottom: 38%; left: 60%; width: 20px; height: 50px;
  background: radial-gradient(ellipse at 50% 30%, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: pl-figure2 9s ease-in-out infinite reverse;
}
.scn-pavilion-landing .lantern-glow {
  position: absolute;
  bottom: 45%; left: 50%; width: 8px; height: 8px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #f0c068 0%, #b08040 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 4px rgba(240,192,104,0.6), 0 0 40px 12px rgba(240,192,104,0.3);
  animation: pl-lantern 4s ease-in-out infinite alternate;
}
.scn-pavilion-landing .reflections {
  position: absolute;
  bottom: 0; left: 10%; right: 10%; height: 40%;
  background: linear-gradient(180deg, transparent 0%, rgba(240,192,104,0.1) 30%, transparent 60%);
  animation: pl-reflect 6s ease-in-out infinite alternate;
}
@keyframes pl-sky {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes pl-water {
  0%, 100% { transform: translateY(0); }
  30% { transform: translateY(-4px); }
  60% { transform: translateY(2px); }
}
@keyframes pl-shore {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.03); }
  100% { transform: scaleY(0.97); }
}
@keyframes pl-roof {
  0%, 100% { transform: translateX(-50%) scaleY(1); }
  25% { transform: translateX(-50%) scaleY(1.01); }
  50% { transform: translateX(-50%) scaleY(0.99); }
  75% { transform: translateX(-50%) scaleY(1.02); }
}
@keyframes pl-columns {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes pl-figure1 {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-2px) rotate(2deg); }
  50% { transform: translateY(0) rotate(-1deg); }
  75% { transform: translateY(-1px) rotate(1deg); }
}
@keyframes pl-figure2 {
  0%, 100% { transform: translateY(0) rotate(0deg); }
  30% { transform: translateY(-1px) rotate(-2deg); }
  60% { transform: translateY(0) rotate(1deg); }
  80% { transform: translateY(-2px) rotate(0deg); }
}
@keyframes pl-lantern {
  0% { box-shadow: 0 0 20px 4px rgba(240,192,104,0.6), 0 0 40px 12px rgba(240,192,104,0.3); opacity: 0.8; }
  50% { box-shadow: 0 0 30px 8px rgba(240,192,104,0.8), 0 0 60px 18px rgba(240,192,104,0.5); opacity: 1; }
  100% { box-shadow: 0 0 25px 6px rgba(240,192,104,0.7), 0 0 50px 15px rgba(240,192,104,0.4); opacity: 0.9; }
}
@keyframes pl-reflect {
  0% { opacity: 0.3; }
  50% { opacity: 0.6; }
  100% { opacity: 0.4; }
}

/* Scenes for SwipeNRead - dense CSS-only animations */

/* ----- peasant-courtesy (dusk warm) ----- */
.scn-peasant-courtesy {
  background: linear-gradient(180deg, #e8a060 0%, #b0804a 40%, #5a3a1a 100%), radial-gradient(ellipse at 50% 0, #f0c080 0%, transparent 60%);
}
.pc-sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #f0c080 0%, #c0804a 50%, #804020 100%);
  animation: pc-sky 12s ease-in-out infinite alternate;
}
.pc-hills {
  position: absolute; bottom: 35%; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #4a6a3a 0%, #2a3a1a 100%);
  border-radius: 60% 40% 0 0 / 80% 70% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.5);
  animation: pc-hills 18s ease-in-out infinite alternate;
}
.pc-path {
  position: absolute; bottom: 22%; left: 30%; width: 40%; height: 6%;
  background: linear-gradient(90deg, transparent, #6a4a2a 20%, #8a6a3a 50%, #6a4a2a 80%, transparent);
  border-radius: 50%;
  filter: blur(3px);
  animation: pc-path 6s ease-in-out infinite;
}
.pc-cottage {
  position: absolute; bottom: 25%; left: 50%; width: 100px; height: 80px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.4);
  animation: pc-cottage 9s ease-in-out infinite;
}
.pc-window {
  position: absolute; bottom: 32%; left: 50%; width: 16px; height: 20px;
  transform: translateX(-50%);
  background: radial-gradient(circle, #f0c060 0%, #c08030 70%);
  border-radius: 20%;
  box-shadow: 0 0 20px 6px #d09040, 0 0 40px 12px rgba(208,144,64,0.4);
  animation: pc-glow 3s ease-in-out infinite alternate;
}
.pc-figure {
  position: absolute; bottom: 20%; left: 38%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pc-walk 4s ease-in-out infinite;
}
.pc-flask {
  position: absolute; bottom: 24%; left: 36%; width: 8px; height: 14px;
  background: linear-gradient(180deg, #a08030 0%, #705010 100%);
  border-radius: 30% 30% 40% 40%;
  transform-origin: bottom center;
  animation: pc-flask 3s ease-in-out infinite alternate;
}
.pc-tree {
  position: absolute; bottom: 28%; right: 15%; width: 12px; height: 60px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: pc-tree 8s ease-in-out infinite;
}
@keyframes pc-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.6; } }
@keyframes pc-hills { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(0); } }
@keyframes pc-path { 0%,100% { opacity:0.6; } 50% { opacity:1; } }
@keyframes pc-cottage { 0%,100% { transform: translateX(-50%) translateY(0); } 50% { transform: translateX(-50%) translateY(-2px); } }
@keyframes pc-glow { 0% { box-shadow: 0 0 15px 4px #c08030, 0 0 30px 8px rgba(192,128,48,0.3); opacity:0.8; } 50% { box-shadow: 0 0 25px 8px #e0a050, 0 0 50px 15px rgba(224,160,80,0.5); opacity:1; } 100% { box-shadow: 0 0 18px 5px #c08030, 0 0 35px 10px rgba(192,128,48,0.35); opacity:0.85; } }
@keyframes pc-walk { 0% { transform: translateX(0) translateY(0) rotate(-1deg); } 25% { transform: translateX(8px) translateY(-1px) rotate(1deg); } 50% { transform: translateX(16px) translateY(0) rotate(-1deg); } 75% { transform: translateX(24px) translateY(-1px) rotate(1deg); } 100% { transform: translateX(32px) translateY(0) rotate(0deg); } }
@keyframes pc-flask { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(5deg) translateY(-2px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes pc-tree { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(3deg); } }

/* ----- pensive-melancholy (moonlit calm) ----- */
.scn-pensive-melancholy {
  background: linear-gradient(180deg, #1a2a4a 0%, #2a4a6a 40%, #1a3a5a 100%), radial-gradient(ellipse at 30% 20%, #6090d0 0%, transparent 60%);
}
.pm-moon {
  position: absolute; top: 8%; left: 30%; width: 40px; height: 40px;
  background: radial-gradient(circle, #e0f0ff 0%, #a0c0e0 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 10px #a0c0e0, 0 0 80px 20px rgba(160,192,224,0.3);
  animation: pm-moon 10s ease-in-out infinite alternate;
}
.pm-sky {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #0a1a2a 0%, #1a3a5a 60%, #2a4a6a 100%);
  animation: pm-sky 15s ease-in-out infinite alternate;
}
.pm-sea {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%);
  border-radius: 50% 50% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.4);
  animation: pm-sea 12s ease-in-out infinite alternate;
}
.pm-cliffs {
  position: absolute; bottom: 30%; left: 5%; width: 20%; height: 40%;
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%);
  border-radius: 0 40% 20% 0;
  box-shadow: 0 4px 12px rgba(0,0,0,0.5);
  animation: pm-cliffs 20s ease-in-out infinite alternate;
}
.pm-figure {
  position: absolute; bottom: 28%; left: 40%; width: 18px; height: 38px;
  background: linear-gradient(180deg, #0a1a2a 0%, #050d15 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pm-figure 5s ease-in-out infinite;
}
.pm-castle {
  position: absolute; bottom: 35%; right: 10%; width: 50px; height: 30px;
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: pm-castle 25s ease-in-out infinite alternate;
}
.pm-clouds {
  position: absolute; top: 15%; left: 60%; width: 120px; height: 15px;
  background: linear-gradient(90deg, transparent, rgba(200,220,240,0.3) 30%, rgba(200,220,240,0.5) 50%, rgba(200,220,240,0.3) 70%, transparent);
  border-radius: 50%;
  filter: blur(8px);
  animation: pm-clouds 40s linear infinite;
}
@keyframes pm-moon { 0% { box-shadow: 0 0 30px 8px #a0c0e0, 0 0 60px 15px rgba(160,192,224,0.2); opacity:0.8; } 50% { box-shadow: 0 0 50px 15px #c0d8f0, 0 0 100px 25px rgba(192,216,240,0.4); opacity:1; } 100% { box-shadow: 0 0 35px 10px #a0c0e0, 0 0 70px 18px rgba(160,192,224,0.25); opacity:0.85; } }
@keyframes pm-sky { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.6; } }
@keyframes pm-sea { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-3px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes pm-cliffs { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes pm-figure { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } }
@keyframes pm-castle { 0% { transform: scale(1); } 50% { transform: scale(0.98); } 100% { transform: scale(1); } }
@keyframes pm-clouds { 0% { transform: translateX(0); } 100% { transform: translateX(-200px); } }

/* ----- perplexity-montoni (dim interior calm) ----- */
.scn-perplexity-montoni {
  background: linear-gradient(180deg, #2a1a0a 0%, #4a2a1a 50%, #1a0a05 100%), radial-gradient(ellipse at 50% 60%, #6a3a2a 0%, transparent 70%);
}
.pe-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%);
  box-shadow: inset 0 0 20px rgba(0,0,0,0.6);
  animation: pe-wall 20s ease-in-out infinite alternate;
}
.pe-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  box-shadow: inset 0 8px 12px rgba(0,0,0,0.5);
}
.pe-table {
  position: absolute; bottom: 18%; left: 35%; width: 30%; height: 4%;
  background: linear-gradient(180deg, #6a3a1a 0%, #4a2a0a 100%);
  border-radius: 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: pe-table 8s ease-in-out infinite;
}
.pe-candle {
  position: absolute; bottom: 22%; left: 48%; width: 6px; height: 18px;
  background: linear-gradient(180deg, #f0e0a0 0%, #c08040 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 20px 6px #c08040, 0 0 40px 12px rgba(192,128,64,0.4);
  animation: pe-candle 3s ease-in-out infinite alternate;
}
.pe-chair {
  position: absolute; bottom: 12%; left: 30%; width: 40px; height: 60px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a05 100%);
  border-radius: 10% 10% 30% 30%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: pe-chair 10s ease-in-out infinite;
}
.pe-figure {
  position: absolute; bottom: 16%; left: 48%; width: 20px; height: 42px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a15 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pe-figure 6s ease-in-out infinite;
}
.pe-window {
  position: absolute; top: 20%; right: 15%; width: 40px; height: 60px;
  background: radial-gradient(ellipse at 50% 50%, #a0b0c0 0%, #2a3a4a 70%);
  border-radius: 10%;
  box-shadow: 0 0 10px 4px rgba(160,176,192,0.3);
  animation: pe-window 12s ease-in-out infinite alternate;
}
@keyframes pe-wall { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes pe-table { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-1px); } }
@keyframes pe-candle { 0% { box-shadow: 0 0 15px 4px #c08040, 0 0 30px 8px rgba(192,128,64,0.3); opacity:0.8; } 50% { box-shadow: 0 0 25px 8px #e0a050, 0 0 50px 15px rgba(224,160,80,0.5); opacity:1; } 100% { box-shadow: 0 0 18px 5px #c08040, 0 0 35px 10px rgba(192,128,64,0.35); opacity:0.85; } }
@keyframes pe-chair { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(1deg); } }
@keyframes pe-figure { 0%,100% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(-1deg) translateY(-2px); } }
@keyframes pe-window { 0% { opacity:0.5; } 50% { opacity:0.8; } 100% { opacity:0.5; } }

/* ----- return-to-venice (dim interior tense) ----- */
.scn-return-to-venice {
  background: linear-gradient(180deg, #0a0a0a 0%, #1a1a2a 50%, #0a0a0a 100%), radial-gradient(ellipse at 50% 40%, #2a2a3a 0%, transparent 80%);
}
.rv-wall {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  box-shadow: inset 0 0 30px rgba(0,0,0,0.7);
  animation: rv-wall 15s ease-in-out infinite alternate;
}
.rv-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #0a0a1a 0%, #000010 100%);
  box-shadow: inset 0 8px 12px rgba(0,0,0,0.5);
}
.rv-bars {
  position: absolute; top: 10%; left: 30%; width: 4px; height: 70%;
  background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%);
  box-shadow: 20px 0 0 #4a4a5a, 40px 0 0 #4a4a5a, -20px 0 0 #4a4a5a;
  border-radius: 10%;
  animation: rv-bars 5s ease-in-out infinite alternate;
}
.rv-figure {
  position: absolute; bottom: 15%; left: 45%; width: 22px; height: 45px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rv-figure 4s ease-in-out infinite;
}
.rv-chains {
  position: absolute; bottom: 20%; left: 40%; width: 30px; height: 4px;
  background: linear-gradient(90deg, #5a5a6a 0%, #3a3a4a 100%);
  border-radius: 20%;
  box-shadow: 0 8px 0 #5a5a6a, 0 16px 0 #5a5a6a;
  animation: rv-chains 3s ease-in-out infinite alternate;
}
.rv-lantern {
  position: absolute; top: 15%; right: 20%; width: 10px; height: 18px;
  background: radial-gradient(circle, #b08020 0%, #6030a0 100%);
  border-radius: 20% 20% 30% 30%;
  box-shadow: 0 0 25px 8px #b08020, 0 0 50px 15px rgba(176,128,32,0.3);
  animation: rv-lantern 4s ease-in-out infinite alternate;
}
.rv-shadow {
  position: absolute; bottom: 8%; left: 35%; width: 60px; height: 10px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.3) 0%, transparent 100%);
  filter: blur(5px);
  animation: rv-shadow 6s ease-in-out infinite;
}
@keyframes rv-wall { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.6; } }
@keyframes rv-bars { 0% { opacity:0.6; transform: scaleY(1); } 50% { opacity:1; transform: scaleY(0.98); } 100% { opacity:0.6; transform: scaleY(1); } }
@keyframes rv-figure { 0%,100% { transform: rotate(0deg) translateY(0); } 50% { transform: rotate(2deg) translateY(-3px); } }
@keyframes rv-chains { 0% { transform: translateX(0); } 50% { transform: translateX(2px); } 100% { transform: translateX(0); } }
@keyframes rv-lantern { 0% { box-shadow: 0 0 20px 6px #b08020, 0 0 40px 10px rgba(176,128,32,0.2); opacity:0.7; transform: rotate(-3deg); } 50% { box-shadow: 0 0 35px 12px #d0a030, 0 0 70px 20px rgba(208,160,48,0.5); opacity:1; transform: rotate(3deg); } 100% { box-shadow: 0 0 25px 8px #b08020, 0 0 50px 15px rgba(176,128,32,0.3); opacity:0.8; transform: rotate(-3deg); } }
@keyframes rv-shadow { 0%,100% { opacity:0.4; } 50% { opacity:0.8; } }

.scn-fortress-hall-fire {
  background: linear-gradient(180deg, #2e1a0a 0%, #4a2a10 40%, #6a3a1a 70%, #3a1a0a 100%), radial-gradient(ellipse at 50% 70%, #c06030 0%, transparent 60%);
}
.scn-fortress-hall-fire .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #3a1a0a 0%, #2a100a 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,.6);
}
.scn-fortress-hall-fire .wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #4a2a18 0%, #3a1a0a 100%);
}
.scn-fortress-hall-fire .hearth {
  position: absolute; bottom: 20%; left: 40%; width: 20%; height: 30%;
  background: linear-gradient(180deg, #6a3a1a 0%, #4a2a0a 100%);
  border-radius: 10% 10% 5% 5%; box-shadow: 0 -10px 30px rgba(200,100,30,.4);
}
.scn-fortress-hall-fire .fire {
  position: absolute; bottom: 35%; left: 45%; width: 10%; height: 15%;
  background: radial-gradient(ellipse at 50% 100%, #ff8c42 0%, #ff6600 40%, #cc4400 70%, transparent 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 40px 20px rgba(255,100,0,.6);
  animation: fhf-fire 0.8s ease-in-out infinite alternate;
}
.scn-fortress-hall-fire .figure-a,
.scn-fortress-hall-fire .figure-b,
.scn-fortress-hall-fire .figure-c {
  position: absolute; bottom: 22%; width: 6%; height: 25%;
  background: linear-gradient(180deg, #1a0a0a 0%, #0a0505 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
}
.scn-fortress-hall-fire .figure-a { left: 15%; animation: fhf-figure 3s ease-in-out infinite; }
.scn-fortress-hall-fire .figure-b { left: 55%; animation: fhf-figure 4s ease-in-out infinite 0.5s; }
.scn-fortress-hall-fire .figure-c { right: 15%; animation: fhf-figure 3.5s ease-in-out infinite 1s; }
.scn-fortress-hall-fire .dog-a,
.scn-fortress-hall-fire .dog-b {
  position: absolute; bottom: 20%; width: 10%; height: 8%;
  background: #1a0a0a; border-radius: 50% 50% 40% 40%;
}
.scn-fortress-hall-fire .dog-a { left: 30%; animation: fhf-dog 5s ease-in-out infinite; }
.scn-fortress-hall-fire .dog-b { right: 30%; animation: fhf-dog 6s ease-in-out infinite 2s; }

@keyframes fhf-fire {
  0% { transform: scaleY(1) scaleX(1); opacity: 0.9; box-shadow: 0 0 40px 20px rgba(255,100,0,.6); }
  50% { transform: scaleY(1.2) scaleX(0.9); opacity: 1; box-shadow: 0 0 60px 30px rgba(255,150,0,.7); }
  100% { transform: scaleY(0.9) scaleX(1.1); opacity: 0.85; box-shadow: 0 0 35px 15px rgba(255,80,0,.5); }
}
@keyframes fhf-figure {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes fhf-dog {
  0% { transform: translateY(0) rotate(0deg); }
  30% { transform: translateY(-3px) rotate(5deg); }
  70% { transform: translateY(-1px) rotate(-5deg); }
  100% { transform: translateY(0) rotate(0deg); }
}

.scn-fortress-hall-conversation {
  background: linear-gradient(180deg, #1e0e08 0%, #3a1a0e 50%, #2e0e06 100%), radial-gradient(ellipse at 40% 70%, #b05020 0%, transparent 60%);
}
.scn-fortress-hall-conversation .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #2e0e06 0%, #1a0804 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,.6);
}
.scn-fortress-hall-conversation .wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #3a1a0e 0%, #2e0e06 100%);
}
.scn-fortress-hall-conversation .hearth {
  position: absolute; bottom: 20%; left: 35%; width: 22%; height: 32%;
  background: linear-gradient(180deg, #5a2a12 0%, #3a180a 100%);
  border-radius: 10% 10% 5% 5%; box-shadow: 0 -10px 30px rgba(180,70,20,.3);
}
.scn-fortress-hall-conversation .fire {
  position: absolute; bottom: 38%; left: 40%; width: 12%; height: 18%;
  background: radial-gradient(ellipse at 50% 100%, #ff7a30 0%, #e05a10 40%, #b03a00 70%, transparent 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 30px 15px rgba(200,80,0,.6);
  animation: fhc-fire 0.6s ease-in-out infinite alternate;
}
.scn-fortress-hall-conversation .father,
.scn-fortress-hall-conversation .blanche,
.scn-fortress-hall-conversation .hunter-1,
.scn-fortress-hall-conversation .hunter-2,
.scn-fortress-hall-conversation .hunter-3 {
  position: absolute; bottom: 22%; width: 6%; height: 26%;
  background: linear-gradient(180deg, #0a0505 0%, #050202 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
}
.scn-fortress-hall-conversation .father {
  left: 45%; width: 7%; height: 30%;
  animation: fhc-father 2s ease-in-out infinite;
}
.scn-fortress-hall-conversation .blanche {
  right: 18%; width: 5%; height: 24%;
  animation: fhc-blanche 4s ease-in-out infinite;
}
.scn-fortress-hall-conversation .hunter-1 { left: 10%; animation: fhc-hunter 3s ease-in-out infinite; }
.scn-fortress-hall-conversation .hunter-2 { left: 20%; animation: fhc-hunter 3.5s ease-in-out infinite 0.5s; }
.scn-fortress-hall-conversation .hunter-3 { left: 30%; animation: fhc-hunter 4s ease-in-out infinite 1s; }

@keyframes fhc-fire {
  0% { transform: scaleY(1); opacity: 0.8; box-shadow: 0 0 30px 15px rgba(200,80,0,.6); }
  30% { transform: scaleY(1.3) scaleX(0.8); opacity: 1; box-shadow: 0 0 50px 25px rgba(255,120,30,.8); }
  60% { transform: scaleY(0.9) scaleX(1.2); opacity: 0.7; box-shadow: 0 0 20px 10px rgba(180,60,0,.5); }
  100% { transform: scaleY(1.1); opacity: 0.9; box-shadow: 0 0 40px 20px rgba(220,90,10,.7); }
}
@keyframes fhc-father {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(2deg); }
  100% { transform: translateY(0) rotate(-2deg); }
}
@keyframes fhc-blanche {
  0% { transform: translateY(0) rotate(-1deg); }
  50% { transform: translateY(-1px) rotate(1deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes fhc-hunter {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(1deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}

/* through-the-avenue */
.scn-through-the-avenue { background: linear-gradient(180deg, #2d2640 0%, #4a3a5e 40%, #6b4f3a 80%, #9a7a4a 100%), radial-gradient(ellipse at 50% 100%, #6b4f3a 0%, transparent 70%); }
.scn-through-the-avenue .sky    { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #4a3a5e 0%, #8a7a6a 100%); animation: tta-sky 14s ease-in-out infinite alternate; }
.scn-through-the-avenue .far-woods { position:absolute; bottom:40%; left:0; right:0; height:20%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 30% 70% 0 0 / 60% 80% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.5); animation: tta-woods 20s ease-in-out infinite alternate; }
.scn-through-the-avenue .avenue { position:absolute; bottom:20%; left:20%; right:20%; height:25%; background: linear-gradient(0deg, #5a4a3a 0%, #7a6a4a 40%, #8a7a5a 100%); border-radius: 40% 40% 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,.4); animation: tta-avenue 30s ease-in-out infinite alternate; }
.scn-through-the-avenue .castle { position:absolute; bottom:38%; left:35%; width:30%; height:22%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 4% 4% 0 0; clip-path: polygon(0 100%, 10% 60%, 20% 100%, 30% 40%, 40% 100%, 50% 50%, 60% 100%, 70% 60%, 80% 100%, 90% 40%, 100% 100%); box-shadow: 0 0 18px 4px #8a7a5a; animation: tta-castle 8s ease-in-out infinite; }
.scn-through-the-avenue .trunk-left  { position:absolute; bottom:18%; left:8%; width:6%; height:40%; background: linear-gradient(90deg, #1a0a00 0%, #2a1a0a 50%, #1a0a00 100%); border-radius: 40% 40% 20% 20% / 80% 80% 20% 20%; animation: tta-trunk 6s ease-in-out infinite alternate; transform-origin: bottom center; }
.scn-through-the-avenue .trunk-right { position:absolute; bottom:18%; right:8%; width:6%; height:40%; background: linear-gradient(90deg, #1a0a00 0%, #2a1a0a 50%, #1a0a00 100%); border-radius: 40% 40% 20% 20% / 80% 80% 20% 20%; animation: tta-trunk 7s ease-in-out infinite alternate-reverse; transform-origin: bottom center; }
.scn-through-the-avenue .leaf-left  { position:absolute; bottom:52%; left:4%; width:16%; height:12%; background: radial-gradient(ellipse at 40% 40%, #3a4a2a 0%, #1a2a0a 80%); border-radius: 50%; filter: blur(3px); animation: tta-leafL 12s ease-in-out infinite alternate; }
.scn-through-the-avenue .leaf-right { position:absolute; bottom:50%; right:2%; width:18%; height:14%; background: radial-gradient(ellipse at 60% 50%, #3a4a2a 0%, #1a2a0a 80%); border-radius: 50%; filter: blur(3px); animation: tta-leafR 15s ease-in-out infinite alternate; }
.scn-through-the-avenue .glow     { position:absolute; top:30%; left:50%; width:4%; height:4%; background: radial-gradient(circle, #ffd280 0%, transparent 80%); border-radius:50%; box-shadow: 0 0 30px 10px #ffd280; animation: tta-glow 6s ease-in-out infinite alternate; }
@keyframes tta-sky   { 0% { opacity:.7 } 50% { opacity:.9 } 100% { opacity:.6 } }
@keyframes tta-woods { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(1px) } }
@keyframes tta-avenue { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.02) } 100% { transform: scaleX(0.98) } }
@keyframes tta-castle { 0% { filter: brightness(.9) } 50% { filter: brightness(1.1) } 100% { filter: brightness(1) } }
@keyframes tta-trunk { 0% { rotate: -1deg } 50% { rotate: 1deg } 100% { rotate: -1deg } }
@keyframes tta-leafL { 0% { transform: translate(0,0) rotate(-3deg) } 50% { transform: translate(2px,-3px) rotate(3deg) } 100% { transform: translate(-1px,1px) rotate(-2deg) } }
@keyframes tta-leafR { 0% { transform: translate(0,0) rotate(4deg) } 50% { transform: translate(-2px,-4px) rotate(-2deg) } 100% { transform: translate(1px,1px) rotate(3deg) } }
@keyframes tta-glow  { 0% { opacity:.4; transform: scale(1) } 50% { opacity:1; transform: scale(1.2) } 100% { opacity:.6; transform: scale(.9) } }

/* familiar-avenue */
.scn-familiar-avenue { background: linear-gradient(180deg, #1e1a30 0%, #3a2a4a 40%, #5a4a3a 80%, #7a6a4a 100%), radial-gradient(ellipse at 50% 100%, #5a4a3a 0%, transparent 70%); }
.scn-familiar-avenue .sky       { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #3a2a4a 0%, #6a5a4a 100%); animation: fav-sky 18s ease-in-out infinite alternate; }
.scn-familiar-avenue .woods-back { position:absolute; bottom:38%; left:0; right:0; height:18%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 20% 80% 0 0 / 70% 60% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.6); animation: fav-woods 22s ease-in-out infinite alternate; }
.scn-familiar-avenue .path      { position:absolute; bottom:15%; left:30%; right:30%; height:30%; background: linear-gradient(0deg, #4a3a2a 0%, #6a5a3a 40%, #8a7a5a 100%); border-radius: 50% 50% 0 0 / 80% 80% 0 0; box-shadow: 0 -6px 20px rgba(0,0,0,.5); animation: fav-path 26s ease-in-out infinite alternate; }
.scn-familiar-avenue .figure    { position:absolute; bottom:20%; left:45%; width:8%; height:18%; background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 80%); border-radius: 50% 50% 40% 40% / 80% 80% 40% 40%; transform-origin: bottom center; animation: fav-figure 10s ease-in-out infinite; }
.scn-familiar-avenue .tree-left  { position:absolute; bottom:15%; left:6%; width:7%; height:45%; background: linear-gradient(90deg, #1a0a00 0%, #2a1a0a 50%, #1a0a00 100%); border-radius: 40% 40% 20% 20% / 90% 90% 20% 20%; animation: fav-tree 9s ease-in-out infinite alternate; transform-origin: bottom center; }
.scn-familiar-avenue .tree-right { position:absolute; bottom:15%; right:6%; width:7%; height:40%; background: linear-gradient(90deg, #1a0a00 0%, #2a1a0a 50%, #1a0a00 100%); border-radius: 40% 40% 20% 20% / 90% 90% 20% 20%; animation: fav-tree 11s ease-in-out infinite alternate-reverse; transform-origin: bottom center; }
.scn-familiar-avenue .bush      { position:absolute; bottom:20%; left:20%; width:20%; height:6%; background: radial-gradient(ellipse at 50% 50%, #2a3a1a 0%, #1a2a0a 80%); border-radius: 50%; filter: blur(4px); animation: fav-bush 14s ease-in-out infinite alternate; }
.scn-familiar-avenue .light     { position:absolute; top:35%; left:50%; width:3%; height:3%; background: radial-gradient(circle, #ffc060 0%, transparent 80%); border-radius:50%; box-shadow: 0 0 25px 8px #ffc060; animation: fav-light 7s ease-in-out infinite alternate; }
@keyframes fav-sky   { 0% { opacity:.6 } 50% { opacity:.9 } 100% { opacity:.7 } }
@keyframes fav-woods { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(1px) } }
@keyframes fav-path  { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.03) } 100% { transform: scaleX(0.97) } }
@keyframes fav-figure { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 25% { transform: translateX(6px) translateY(-2px) rotate(2deg) } 50% { transform: translateX(12px) translateY(0) rotate(-1deg) } 75% { transform: translateX(18px) translateY(-3px) rotate(1deg) } 100% { transform: translateX(24px) translateY(0) rotate(0deg) } }
@keyframes fav-tree  { 0% { rotate: -2deg } 50% { rotate: 2deg } 100% { rotate: -1deg } }
@keyframes fav-bush  { 0% { transform: scale(1) } 50% { transform: scale(1.1) } 100% { transform: scale(.95) } }
@keyframes fav-light { 0% { opacity:.3; transform: scale(1) } 50% { opacity:1; transform: scale(1.3) } 100% { opacity:.5; transform: scale(.8) } }

/* entrance-hall */
.scn-entrance-hall { background: linear-gradient(180deg, #1a1210 0%, #2a1a18 30%, #1a0a08 70%, #0a0402 100%), radial-gradient(ellipse at 50% 100%, #2a1a18 0%, transparent 70%); }
.scn-entrance-hall .wall-bg    { position:absolute; inset:0; background: linear-gradient(180deg, #3a2a22 0%, #2a1a12 50%, #1a0a08 100%); border:4px solid #5a3a2a; box-shadow: inset 0 0 60px 20px rgba(0,0,0,.8); }
.scn-entrance-hall .floor      { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #2a1a12 0%, #1a0a06 100%); border-top: 2px solid #4a2a1a; box-shadow: inset 0 8px 20px rgba(0,0,0,.7); }
.scn-entrance-hall .pillar-left { position:absolute; bottom:20%; left:10%; width:8%; height:80%; background: linear-gradient(90deg, #4a3a2a 0%, #6a4a3a 30%, #3a2a1a 100%); border-radius: 8% 8% 0 0; box-shadow: -4px 0 12px rgba(0,0,0,.6), inset 0 0 20px rgba(0,0,0,.3); animation: enh-pillar 12s ease-in-out infinite alternate; }
.scn-entrance-hall .pillar-right{ position:absolute; bottom:20%; right:10%; width:8%; height:80%; background: linear-gradient(90deg, #3a2a1a 0%, #6a4a3a 70%, #4a3a2a 100%); border-radius: 8% 8% 0 0; box-shadow: 4px 0 12px rgba(0,0,0,.6), inset 0 0 20px rgba(0,0,0,.3); animation: enh-pillar 14s ease-in-out infinite alternate-reverse; }
.scn-entrance-hall .tapestry   { position:absolute; bottom:30%; left:25%; width:50%; height:50%; background: linear-gradient(180deg, #6a3a2a 0%, #5a2a1a 40%, #4a1a0a 100%); border: 3px solid #8a5a3a; border-radius: 4%; box-shadow: 0 0 30px 6px rgba(0,0,0,.7); animation: enh-tapestry 20s ease-in-out infinite alternate; }
.scn-entrance-hall .candle-left { position:absolute; bottom:45%; left:20%; width:3%; height:12%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 10% 10% 40% 40% / 20% 20% 80% 80%; transform-origin: bottom center; animation: enh-candle 5s ease-in-out infinite alternate; }
.scn-entrance-hall .candle-right{ position:absolute; bottom:45%; right:20%; width:3%; height:12%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 10% 10% 40% 40% / 20% 20% 80% 80%; transform-origin: bottom center; animation: enh-candle 6s ease-in-out infinite alternate-reverse; }
.scn-entrance-hall .flame-left  { position:absolute; bottom:56%; left:20.5%; width:2%; height:4%; background: radial-gradient(circle, #ffb060 0%, #ff8030 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 20px 6px #ff8030; animation: enh-flame 2s ease-in-out infinite alternate; }
.scn-entrance-hall .flame-right { position:absolute; bottom:56%; right:20.5%; width:2%; height:4%; background: radial-gradient(circle, #ffb060 0%, #ff8030 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 20px 6px #ff8030; animation: enh-flame 2.5s ease-in-out infinite alternate-reverse; }
@keyframes enh-pillar  { 0% { filter: brightness(.9) } 50% { filter: brightness(1.1) } 100% { filter: brightness(1) } }
@keyframes enh-tapestry { 0% { filter: brightness(.85) } 50% { filter: brightness(1.05) } 100% { filter: brightness(.95) } }
@keyframes enh-candle  { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.08) } 100% { transform: scaleY(0.95) } }
@keyframes enh-flame   { 0% { transform: scale(1) translate(0,0); opacity:.9 } 50% { transform: scale(1.15) translate(1px,-2px); opacity:1 } 100% { transform: scale(.9) translate(-1px,1px); opacity:.8 } }

/* blanche-delight */
.scn-blanche-delight { background: linear-gradient(180deg, #2a2240 0%, #4a3a5a 40%, #6b5a3a 80%, #9a7a4a 100%), radial-gradient(ellipse at 50% 100%, #6b5a3a 0%, transparent 70%); }
.scn-blanche-delight .window-frame { position:absolute; inset:5% 10% 5% 10%; border: 12px solid #3a2a1a; border-radius: 8px; box-shadow: inset 0 0 30px 10px rgba(0,0,0,.8); background: transparent; }
.scn-blanche-delight .window-glass { position:absolute; top:5%; left:10%; right:10%; bottom:5%; background: linear-gradient(180deg, #4a3a5a 0%, #8a7a6a 100%); border-radius: 4px; overflow: hidden; }
.scn-blanche-delight .distance-hills { position:absolute; bottom:15%; left:10%; right:10%; height:30%; background: linear-gradient(180deg, #3a4a3a 0%, #2a3a2a 100%); border-radius: 40% 60% 0 0 / 80% 70% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.4); animation: bld-hills 20s ease-in-out infinite alternate; }
.scn-blanche-delight .distance-trees { position:absolute; bottom:25%; left:15%; right:15%; height:20%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 30% 70% 0 0 / 60% 80% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.5); animation: bld-trees 25s ease-in-out infinite alternate; }
.scn-blanche-delight .curtain-left  { position:absolute; top:5%; left:10%; width:15%; bottom:5%; background: linear-gradient(90deg, #5a3a2a 0%, #3a1a0a 100%); border-radius: 0 40% 40% 0 / 0 30% 30% 0; box-shadow: 4px 0 20px rgba(0,0,0,.6); animation: bld-curtainL 12s ease-in-out infinite alternate; transform-origin: left center; }
.scn-blanche-delight .curtain-right { position:absolute; top:5%; right:10%; width:15%; bottom:5%; background: linear-gradient(90deg, #3a1a0a 0%, #5a3a2a 100%); border-radius: 40% 0 0 40% / 30% 0 0 30%; box-shadow: -4px 0 20px rgba(0,0,0,.6); animation: bld-curtainR 12s ease-in-out infinite alternate-reverse; transform-origin: right center; }
.scn-blanche-delight .glow-sky  { position:absolute; top:15%; left:35%; width:30%; height:20%; background: radial-gradient(ellipse, #ffc060 0%, #c08040 50%, transparent 80%); border-radius:50%; box-shadow: 0 0 40px 15px #c08040; animation: bld-glow 8s ease-in-out infinite alternate; }
.scn-blanche-delight .eve-cloud { position:absolute; top:12%; left:20%; width:20%; height:8%; background: linear-gradient(180deg, rgba(200,180,150,.4) 0%, transparent 100%); border-radius:50%; filter: blur(8px); animation: bld-cloud 40s linear infinite; }
@keyframes bld-hills   { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(1px) } }
@keyframes bld-trees   { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(.98) } }
@keyframes bld-curtainL { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.05) } 100% { transform: scaleX(0.95) } }
@keyframes bld-curtainR { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.05) } 100% { transform: scaleX(0.95) } }
@keyframes bld-glow    { 0% { opacity:.5; transform: scale(1) } 50% { opacity:1; transform: scale(1.2) } 100% { opacity:.7; transform: scale(.9) } }
@keyframes bld-cloud   { 0% { transform: translateX(0) } 100% { transform: translateX(80vw) } }

.scn-cottage-visit {
  background: linear-gradient(180deg, #ff9966 0%, #cc6633 35%, #663322 70%, #1a0a0a 100%),
              radial-gradient(ellipse at 60% 20%, #ffaa77 0%, transparent 60%);
}
.scn-cottage-visit .sky     { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #ffcc99 0%, #ff8844 40%, transparent 100%); animation: cott-sky 12s ease-in-out infinite alternate; }
.scn-cottage-visit .hills   { position:absolute; bottom:35%; left:0; right:0; height:20%; background: linear-gradient(180deg, #4a6b3a 0%, #2a4a1a 100%); border-radius: 50% 40% 0 0 / 80% 70% 0 0; box-shadow: inset 0 6px 15px rgba(0,0,0,.4); animation: cott-hills 18s ease-in-out infinite alternate; }
.scn-cottage-visit .cottage { position:absolute; bottom:35%; left:45%; width:100px; height:75px; transform:translateX(-50%); background: linear-gradient(180deg, #8a6a4a 0%, #5a3a1a 100%); border-radius: 8% 8% 4% 4%; box-shadow: 0 8px 16px rgba(0,0,0,.5); animation: cott-house 9s ease-in-out infinite; }
.scn-cottage-visit .window  { position:absolute; bottom:40%; left:45%; width:20px; height:25px; transform:translateX(-50%); background: radial-gradient(circle, #ffe0a0 0%, #ffb060 70%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 24px 6px #ffb060, 0 0 48px 12px rgba(255,176,96,.4); animation: cott-glow 3s ease-in-out infinite alternate; }
.scn-cottage-visit .figure  { position:absolute; bottom:32%; left:38%; width:20px; height:38px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cott-walk 6s ease-in-out infinite; }
.scn-cottage-visit .path    { position:absolute; bottom:25%; left:30%; right:30%; height:4%; background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%); border-radius: 20px; transform: perspective(40px) rotateX(10deg); animation: cott-path 20s linear infinite; }
.scn-cottage-visit .tree    { position:absolute; bottom:30%; left:60%; width:30px; height:80px; background: linear-gradient(180deg, #2a4a2a 0%, #1a2a1a 100%); border-radius: 80% 80% 20% 20% / 60% 60% 40% 40%; transform-origin: bottom; animation: cott-tree 15s ease-in-out infinite alternate; }
.scn-cottage-visit .cloud   { position:absolute; top:12%; left:10%; width:90px; height:20px; background: linear-gradient(180deg, rgba(255,200,150,.5) 0%, rgba(255,200,150,.1) 100%); border-radius: 50%; filter: blur(6px); animation: cott-cloud 40s linear infinite; }
@keyframes cott-sky   { 0% { opacity:.6 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes cott-hills { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes cott-house { 0%,100% { transform: translateX(-50%) } 50% { transform: translateX(-50%) translateY(-2px) } }
@keyframes cott-glow  { 0% { box-shadow: 0 0 15px 3px #ffb060, 0 0 30px 6px rgba(255,176,96,.3); opacity:.85 } 50% { box-shadow: 0 0 30px 8px #ffdd88, 0 0 60px 15px rgba(255,221,136,.5); opacity:1 } 100% { box-shadow: 0 0 20px 4px #ffb060, 0 0 40px 10px rgba(255,176,96,.35); opacity:.9 } }
@keyframes cott-walk { 0% { transform: translateX(0) translateY(0) rotate(-1deg) } 25% { transform: translateX(8px) translateY(-2px) rotate(1deg) } 50% { transform: translateX(16px) translateY(0) rotate(-1deg) } 75% { transform: translateX(24px) translateY(-2px) rotate(1deg) } 100% { transform: translateX(32px) translateY(0) rotate(0) } }
@keyframes cott-path { 0% { background-position: 0 0 } 100% { background-position: -40px 0 } }
@keyframes cott-tree { 0% { transform: rotate(0deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(0deg) } }
@keyframes cott-cloud{ 0% { transform: translateX(-40px) } 100% { transform: translateX(120vw) } }

.scn-du-pont-departs {
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 50%, #1a0a00 100%),
              radial-gradient(ellipse at 50% 80%, #5a3a1a 0%, transparent 70%);
}
.scn-du-pont-departs .wall         { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #6a5a3a 0%, #4a3a1a 100%); border-radius: 0 0 20% 20%; box-shadow: inset 0 -10px 20px rgba(0,0,0,.4); }
.scn-du-pont-departs .floor        { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); }
.scn-du-pont-departs .door         { position:absolute; bottom:35%; left:50%; width:70px; height:100px; transform:translateX(-50%); background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 4% 4% 0 0; box-shadow: inset -8px 0 12px rgba(0,0,0,.3); animation: dup-door 20s ease-in-out infinite alternate; }
.scn-du-pont-departs .emily        { position:absolute; bottom:38%; left:42%; width:22px; height:45px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dup-emily 6s ease-in-out infinite; }
.scn-du-pont-departs .departing    { position:absolute; bottom:38%; left:58%; width:24px; height:48px; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius: 50% 50% 35% 35% / 55% 55% 45% 45%; transform-origin: bottom center; animation: dup-depart 12s ease-in-out infinite; }
.scn-du-pont-departs .window-small { position:absolute; top:20%; right:15%; width:35px; height:45px; background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%); border-radius: 10%; box-shadow: inset 0 0 10px rgba(0,0,0,.5), 0 0 6px rgba(200,180,160,.3); animation: dup-window 8s ease-in-out infinite alternate; }
.scn-du-pont-departs .candle       { position:absolute; bottom:45%; left:45%; width:8px; height:16px; background: linear-gradient(180deg, #ffdd88 0%, #ccaa55 100%); border-radius: 50% 50% 20% 20%; box-shadow: 0 0 18px 6px #ffcc66, 0 0 30px 10px rgba(255,204,102,.4); animation: dup-candle 3s ease-in-out infinite alternate; }
.scn-du-pont-departs .rug          { position:absolute; bottom:10%; left:25%; right:25%; height:12%; background: linear-gradient(135deg, #8a6a5a 0%, #6a4a3a 50%, #8a6a5a 100%); border-radius: 50%; transform: perspective(40px) rotateX(20deg); animation: dup-rug 25s linear infinite; }
@keyframes dup-door    { 0% { transform: translateX(-50%) rotateY(0deg) } 25% { transform: translateX(-50%) rotateY(-5deg) } 50% { transform: translateX(-50%) rotateY(0deg) } 75% { transform: translateX(-50%) rotateY(-2deg) } 100% { transform: translateX(-50%) rotateY(0deg) } }
@keyframes dup-emily   { 0% { transform: translateX(0) translateY(0) rotate(-1deg) } 50% { transform: translateX(2px) translateY(-1px) rotate(1deg) } 100% { transform: translateX(0) translateY(0) rotate(0) } }
@keyframes dup-depart  { 0% { transform: translateX(0) translateY(0) } 30% { transform: translateX(-5px) translateY(-2px) } 60% { transform: translateX(-12px) translateY(-1px) } 100% { transform: translateX(-20px) translateY(0) } }
@keyframes dup-window  { 0% { opacity:.7; box-shadow: inset 0 0 10px rgba(0,0,0,.5), 0 0 6px rgba(200,180,160,.3) } 50% { opacity:1; box-shadow: inset 0 0 8px rgba(0,0,0,.4), 0 0 12px rgba(200,180,160,.5) } 100% { opacity:.8; box-shadow: inset 0 0 10px rgba(0,0,0,.5), 0 0 6px rgba(200,180,160,.3) } }
@keyframes dup-candle  { 0% { transform: scaleY(1) translateY(0); box-shadow: 0 0 18px 6px #ffcc66, 0 0 30px 10px rgba(255,204,102,.4) } 50% { transform: scaleY(1.1) translateY(-2px); box-shadow: 0 0 22px 8px #ffdd88, 0 0 40px 14px rgba(255,221,136,.5) } 100% { transform: scaleY(.95) translateY(1px); box-shadow: 0 0 16px 5px #ffbb55, 0 0 25px 8px rgba(255,187,85,.35) } }
@keyframes dup-rug     { 0% { background-position: 0 0 } 100% { background-position: 40px 0 } }

.scn-letter-from-quesnel {
  background: linear-gradient(180deg, #2a1a0a 0%, #3a2a1a 40%, #1a0a00 100%),
              radial-gradient(ellipse at 50% 50%, #4a3a2a 0%, transparent 80%);
}
.scn-letter-from-quesnel .wall         { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 0 0 10% 10%; }
.scn-letter-from-quesnel .desk         { position:absolute; bottom:20%; left:20%; right:20%; height:15%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 6% 6% 4% 4%; box-shadow: inset 0 4px 10px rgba(0,0,0,.4); animation: lett-desk 12s ease-in-out infinite alternate; }
.scn-letter-from-quesnel .letter       { position:absolute; bottom:28%; left:35%; width:35px; height:40px; background: linear-gradient(180deg, #eecd9a 0%, #ccaa77 100%); border-radius: 4%; transform: rotate(5deg); box-shadow: 0 2px 6px rgba(0,0,0,.5); animation: lett-letter 5s ease-in-out infinite; }
.scn-letter-from-quesnel .candle       { position:absolute; bottom:30%; left:55%; width:7px; height:15px; background: linear-gradient(180deg, #ffdd88 0%, #ccaa55 100%); border-radius: 50% 50% 20% 20%; box-shadow: 0 0 16px 5px #ffcc66, 0 0 30px 10px rgba(255,204,102,.4); animation: lett-candle 3s ease-in-out infinite alternate; }
.scn-letter-from-quesnel .figure-seated{ position:absolute; bottom:22%; left:40%; width:24px; height:50px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lett-figure 8s ease-in-out infinite; }
.scn-letter-from-quesnel .shelf        { position:absolute; bottom:55%; left:10%; right:10%; height:6%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 4px; box-shadow: inset 0 2px 6px rgba(0,0,0,.3); animation: lett-shelf 20s linear infinite alternate; }
.scn-letter-from-quesnel .window       { position:absolute; top:10%; right:10%; width:40px; height:55px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 8%; box-shadow: inset 0 0 12px rgba(0,0,0,.6), 0 0 8px rgba(200,180,160,.2); animation: lett-window 10s ease-in-out infinite alternate; }
.scn-letter-from-quesnel .shadow       { position:absolute; bottom:20%; left:38%; width:50px; height:20px; background: radial-gradient(ellipse, rgba(0,0,0,.5) 0%, transparent 70%); filter: blur(4px); animation: lett-shadow 6s ease-in-out infinite alternate; }
@keyframes lett-desk    { 0% { transform: perspective(30px) rotateX(2deg) } 50% { transform: perspective(30px) rotateX(-1deg) } 100% { transform: perspective(30px) rotateX(1deg) } }
@keyframes lett-letter  { 0% { transform: rotate(5deg) translateY(0) } 50% { transform: rotate(6deg) translateY(-1px) } 100% { transform: rotate(4deg) translateY(0) } }
@keyframes lett-candle  { 0% { transform: scaleY(1) translateY(0); box-shadow: 0 0 16px 5px #ffcc66, 0 0 30px 10px rgba(255,204,102,.4) } 50% { transform: scaleY(1.1) translateY(-2px); box-shadow: 0 0 20px 7px #ffdd88, 0 0 38px 12px rgba(255,221,136,.5) } 100% { transform: scaleY(.95) translateY(1px); box-shadow: 0 0 14px 4px #ffbb55, 0 0 24px 8px rgba(255,187,85,.35) } }
@keyframes lett-figure { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-1px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes lett-shelf  { 0% { background-position: 0 0 } 100% { background-position: 30px 0 } }
@keyframes lett-window { 0% { opacity:.6; box-shadow: inset 0 0 12px rgba(0,0,0,.6), 0 0 8px rgba(200,180,160,.2) } 50% { opacity:1; box-shadow: inset 0 0 10px rgba(0,0,0,.5), 0 0 14px rgba(200,180,160,.4) } 100% { opacity:.7; box-shadow: inset 0 0 12px rgba(0,0,0,.6), 0 0 8px rgba(200,180,160,.2) } }
@keyframes lett-shadow { 0% { opacity:.3; transform: scaleX(1) } 50% { opacity:.5; transform: scaleX(1.1) } 100% { opacity:.3; transform: scaleX(1) } }

.scn-news-of-fortune {
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 50%, #3a2a1a 100%),
              radial-gradient(ellipse at 50% 70%, #4a3a2a 0%, transparent 70%);
}
.scn-news-of-fortune .table   { position:absolute; bottom:20%; left:15%; right:15%; height:12%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 6% 6% 4% 4%; box-shadow: inset 0 4px 10px rgba(0,0,0,.4); animation: news-table 15s ease-in-out infinite alternate; }
.scn-news-of-fortune .papers  { position:absolute; bottom:26%; left:25%; width:60px; height:20px; background: linear-gradient(180deg, #eeddc0 0%, #ccbb99 100%); border-radius: 4%; box-shadow: 0 2px 4px rgba(0,0,0,.4); animation: news-papers 8s ease-in-out infinite; }
.scn-news-of-fortune .hands   { position:absolute; bottom:24%; left:35%; width:30px; height:20px; background: linear-gradient(180deg, #c8b098 0%, #a08870 100%); border-radius: 50% 50% 30% 30% / 40% 40% 60% 60%; transform-origin: bottom; animation: news-hands 6s ease-in-out infinite; }
.scn-news-of-fortune .candle  { position:absolute; bottom:30%; left:60%; width:8px; height:16px; background: linear-gradient(180deg, #ffdd88 0%, #ccaa55 100%); border-radius: 50% 50% 20% 20%; box-shadow: 0 0 20px 6px #ffcc66, 0 0 35px 12px rgba(255,204,102,.4); animation: news-candle 3s ease-in-out infinite alternate; }
.scn-news-of-fortune .chair   { position:absolute; bottom:18%; left:30%; width:40px; height:45px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 10% 10% 20% 20% / 30% 30% 40% 40%; box-shadow: inset -4px 0 8px rgba(0,0,0,.3); animation: news-chair 12s ease-in-out infinite alternate; }
.scn-news-of-fortune .floor   { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); }
.scn-news-of-fortune .wall    { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 0 0 15% 15%; }
.scn-news-of-fortune .envelope{ position:absolute; bottom:25%; left:20%; width:40px; height:30px; background: linear-gradient(180deg, #f0dcc0 0%, #d0b898 100%); border-radius: 4%; transform: rotate(-10deg); box-shadow: 0 2px 6px rgba(0,0,0,.4); animation: news-env 10s ease-in-out infinite; }
@keyframes news-table { 0% { transform: perspective(40px) rotateX(1deg) } 50% { transform: perspective(40px) rotateX(-1deg) } 100% { transform: perspective(40px) rotateX(0) } }
@keyframes news-papers{ 0% { transform: translateY(0) rotate(2deg) } 50% { transform: translateY(-1px) rotate(0deg) } 100% { transform: translateY(0) rotate(-2deg) } }
@keyframes news-hands { 0% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-2px) rotate(2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes news-candle{ 0% { transform: scaleY(1) translateY(0); box-shadow: 0 0 20px 6px #ffcc66, 0 0 35px 12px rgba(255,204,102,.4) } 50% { transform: scaleY(1.12) translateY(-2px); box-shadow: 0 0 26px 9px #ffdd88, 0 0 45px 16px rgba(255,221,136,.5) } 100% { transform: scaleY(.95) translateY(1px); box-shadow: 0 0 18px 5px #ffbb55, 0 0 30px 10px rgba(255,187,85,.35) } }
@keyframes news-chair { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-1px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes news-env   { 0% { transform: rotate(-10deg) translateY(0) } 50% { transform: rotate(-8deg) translateY(-1px) } 100% { transform: rotate(-12deg) translateY(0) } }

.scn-stanzas-continued {
  background: linear-gradient(180deg, #ffa366 0%, #ff8040 30%, #cc6633 60%, #994d1a 100%), radial-gradient(ellipse at 50% 0%, #ffcc66 0%, transparent 70%);
}
.scn-stanzas-continued .sky-sc { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #ffd699 0%, transparent 100%); animation: sc-sky 14s ease-in-out infinite alternate; }
.scn-stanzas-continued .sun-sc { position:absolute; bottom:55%; left:70%; width:60px; height:60px; background: radial-gradient(circle, #ffe0b3 0%, #ffaa33 40%, transparent 70%); border-radius:50%; box-shadow: 0 0 80px 30px rgba(255,170,51,.4); animation: sc-sun 20s ease-in-out infinite alternate; }
.scn-stanzas-continued .sea-sc { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #a36030 0%, #673d1a 100%); border-radius: 30% 70% 0 0 / 40% 60% 0 0; animation: sc-sea 8s ease-in-out infinite alternate; }
.scn-stanzas-continued .ship-sc { position:absolute; bottom:28%; left:40%; width:120px; height:30px; background: linear-gradient(180deg, #4a301a 0%, #2a1a0a 100%); border-radius: 0 0 40% 40% / 0 0 80% 80%; box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: sc-ship 6s ease-in-out infinite; }
.scn-stanzas-continued .mast-sc { position:absolute; bottom:30%; left:50%; width:6px; height:100px; background: linear-gradient(180deg, #4a301a 0%, #2a1a0a 100%); transform-origin: bottom center; animation: sc-mast 12s ease-in-out infinite; }
.scn-stanzas-continued .sailor-sc { position:absolute; bottom:50%; left:48%; width:10px; height:24px; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sc-sailor 4s ease-in-out infinite; }
.scn-stanzas-continued .land-sc { position:absolute; bottom:20%; left:5%; right:60%; height:15%; background: linear-gradient(180deg, #5a3a1a 0%, #3a2a0a 100%); border-radius: 60% 40% 0 0 / 80% 60% 0 0; animation: sc-land 18s ease-in-out infinite alternate; }
.scn-stanzas-continued .cloud-a-sc { position:absolute; top:15%; left:10%; width:100px; height:20px; background: linear-gradient(180deg, rgba(255,255,255,.5) 0%, transparent 100%); border-radius:50%; filter: blur(6px); animation: sc-drift-a 40s linear infinite; }
.scn-stanzas-continued .cloud-b-sc { position:absolute; top:25%; right:5%; width:80px; height:16px; background: linear-gradient(180deg, rgba(255,255,255,.4) 0%, transparent 100%); border-radius:50%; filter: blur(5px); animation: sc-drift-b 55s linear infinite reverse; }
@keyframes sc-sky { 0% { opacity:.7; transform: scaleY(1) } 50% { opacity:1; transform: scaleY(1.05) } 100% { opacity:.8; transform: scaleY(1) } }
@keyframes sc-sun { 0% { transform: translate(0,0) scale(1); opacity:.9 } 50% { transform: translate(-10px,5px) scale(1.05); opacity:1 } 100% { transform: translate(5px,-5px) scale(.95); opacity:.85 } }
@keyframes sc-sea { 0% { transform: translateY(0) scaleX(1) } 50% { transform: translateY(4px) scaleX(.98) } 100% { transform: translateY(-2px) scaleX(1.02) } }
@keyframes sc-ship { 0% { transform: translateX(-50%) rotate(0deg) } 50% { transform: translateX(-48%) rotate(2deg) } 100% { transform: translateX(-52%) rotate(-1deg) } }
@keyframes sc-mast { 0% { transform: rotate(0deg) } 50% { transform: rotate(3deg) } 100% { transform: rotate(-2deg) } }
@keyframes sc-sailor { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 25% { transform: translateX(3px) translateY(-4px) rotate(1deg) } 50% { transform: translateX(6px) translateY(0) rotate(-1deg) } 75% { transform: translateX(9px) translateY(-2px) rotate(2deg) } 100% { transform: translateX(12px) translateY(0) rotate(0deg) } }
@keyframes sc-land { 0% { transform: translateY(0) scaleX(1) } 50% { transform: translateY(-3px) scaleX(1.02) } 100% { transform: translateY(0) scaleX(1) } }
@keyframes sc-drift-a { 0% { transform: translateX(-50px) } 100% { transform: translateX(120vw) } }
@keyframes sc-drift-b { 0% { transform: translateX(0) } 100% { transform: translateX(-120vw) } }

.scn-stanzas-concluded {
  background: linear-gradient(180deg, #a6806a 0%, #8c604a 30%, #75402e 60%, #5a2a1a 100%), radial-gradient(ellipse at 30% 70%, #c09070 0%, transparent 60%);
}
.scn-stanzas-concluded .sky-scl { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #b89880 0%, transparent 100%); animation: scl-sky 16s ease-in-out infinite alternate; }
.scn-stanzas-concluded .sun-scl { position:absolute; bottom:45%; left:20%; width:50px; height:50px; background: radial-gradient(circle, #ffd9b3 0%, #cc8844 40%, transparent 70%); border-radius:50%; box-shadow: 0 0 60px 20px rgba(204,136,68,.3); animation: scl-sun 22s ease-in-out infinite alternate; }
.scn-stanzas-concluded .rocks-scl { position:absolute; bottom:20%; left:15%; right:50%; height:30%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 0 80% 0 0 / 0 60% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.6); animation: scl-rocks 14s ease-in-out infinite alternate; }
.scn-stanzas-concluded .wreck-scl { position:absolute; bottom:12%; left:30%; width:140px; height:40px; background: linear-gradient(90deg, #3a2a1a 0%, #5a3a1a 50%, #3a2a1a 100%); border-radius: 10% 10% 50% 50% / 20% 20% 60% 60%; transform: rotate(-8deg); box-shadow: 0 6px 12px rgba(0,0,0,.5); animation: scl-wreck 8s ease-in-out infinite; }
.scn-stanzas-concluded .mast-scl { position:absolute; bottom:20%; left:35%; width:8px; height:90px; background: linear-gradient(180deg, #4a301a 0%, #2a1a0a 100%); transform-origin: bottom left; transform: rotate(15deg); animation: scl-mast 10s ease-in-out infinite; }
.scn-stanzas-concluded .debris-scl { position:absolute; bottom:8%; left:5%; width:20px; height:10px; background: #3a2a1a; border-radius: 20% 60% 20% 60%; box-shadow: 0 0 4px rgba(0,0,0,.4); animation: scl-debris 12s ease-in-out infinite; }
.scn-stanzas-concluded .wave-a-scl { position:absolute; bottom:0; left:0; right:0; height:25%; background: linear-gradient(180deg, #6a4a3a 0%, transparent 100%); border-radius: 50% 50% 0 0 / 80% 80% 0 0; animation: scl-wave-a 6s ease-in-out infinite alternate; }
.scn-stanzas-concluded .wave-b-scl { position:absolute; bottom:5%; left:10%; right:10%; height:20%; background: linear-gradient(180deg, #5a3a2a 0%, transparent 100%); border-radius: 60% 40% 0 0 / 70% 50% 0 0; animation: scl-wave-b 7s ease-in-out infinite alternate; animation-delay: -2s; }
@keyframes scl-sky { 0% { opacity:.6; transform: scaleY(1) } 50% { opacity:.9; transform: scaleY(1.03) } 100% { opacity:.7; transform: scaleY(1) } }
@keyframes scl-sun { 0% { transform: translate(0,0) scale(1); opacity:.7 } 50% { transform: translate(8px,-4px) scale(1.08); opacity:1 } 100% { transform: translate(-5px,2px) scale(.9); opacity:.8 } }
@keyframes scl-rocks { 0% { transform: translateY(0) } 50% { transform: translateY(2px) } 100% { transform: translateY(-2px) } }
@keyframes scl-wreck { 0% { transform: rotate(-8deg) scale(1) } 50% { transform: rotate(-6deg) scale(1.02) } 100% { transform: rotate(-10deg) scale(.98) } }
@keyframes scl-mast { 0% { transform: rotate(15deg) } 50% { transform: rotate(20deg) } 100% { transform: rotate(12deg) } }
@keyframes scl-debris { 0% { transform: translate(0,0) rotate(0deg) } 50% { transform: translate(10px,-5px) rotate(15deg) } 100% { transform: translate(20px,2px) rotate(5deg) } }
@keyframes scl-wave-a { 0% { transform: translateY(0) scaleX(1) } 50% { transform: translateY(3px) scaleX(.97) } 100% { transform: translateY(-2px) scaleX(1.03) } }
@keyframes scl-wave-b { 0% { transform: translateY(0) scaleX(1) } 50% { transform: translateY(5px) scaleX(.95) } 100% { transform: translateY(-3px) scaleX(1.05) } }

.scn-return-to-languedoc {
  background: linear-gradient(180deg, #f2d5b0 0%, #d9b080 30%, #b08050 60%, #8a5a30 100%), radial-gradient(ellipse at 50% 0%, #ffe6cc 0%, transparent 60%);
}
.scn-return-to-languedoc .sky-rtl { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #ffe6cc 0%, transparent 100%); animation: rtl-sky 15s ease-in-out infinite alternate; }
.scn-return-to-languedoc .sun-rtl { position:absolute; top:10%; left:75%; width:70px; height:70px; background: radial-gradient(circle, #ffdfbb 0%, #ffbb66 30%, transparent 60%); border-radius:50%; box-shadow: 0 0 100px 40px rgba(255,187,102,.4); animation: rtl-sun 24s ease-in-out infinite alternate; }
.scn-return-to-languedoc .hills-rtl { position:absolute; bottom:30%; left:0; right:0; height:25%; background: linear-gradient(180deg, #7a6a4a 0%, #5a4a2a 100%); border-radius: 60% 40% 0 0 / 70% 60% 0 0; animation: rtl-hills 20s ease-in-out infinite alternate; }
.scn-return-to-languedoc .chateau-rtl { position:absolute; bottom:22%; left:45%; width:130px; height:90px; background: linear-gradient(180deg, #c09060 0%, #a07040 100%); border-radius: 6% 6% 4% 4%; box-shadow: 0 8px 16px rgba(0,0,0,.4), inset 0 4px 8px rgba(255,255,255,.1); animation: rtl-chateau 10s ease-in-out infinite; }
.scn-return-to-languedoc .path-rtl { position:absolute; bottom:20%; left:30%; width:8px; height:60px; background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%); border-radius: 50% 50% 0 0; transform-origin: bottom center; transform: rotate(-15deg); animation: rtl-path 14s ease-in-out infinite alternate; }
.scn-return-to-languedoc .tree-a-rtl { position:absolute; bottom:28%; left:10%; width:30px; height:60px; background: linear-gradient(180deg, #5a6a3a 0%, #3a4a1a 100%); border-radius: 50% 50% 10% 10% / 60% 60% 20% 20%; animation: rtl-tree-a 8s ease-in-out infinite alternate; }
.scn-return-to-languedoc .tree-b-rtl { position:absolute; bottom:26%; left:78%; width:40px; height:70px; background: linear-gradient(180deg, #4a6a2a 0%, #2a4a0a 100%); border-radius: 50% 50% 10% 10% / 70% 70% 20% 20%; animation: rtl-tree-b 9s ease-in-out infinite alternate; animation-delay: -3s; }
.scn-return-to-languedoc .cloud-rtl { position:absolute; top:18%; left:20%; width:120px; height:24px; background: linear-gradient(180deg, rgba(255,255,255,.6) 0%, transparent 100%); border-radius:50%; filter: blur(8px); animation: rtl-cloud 45s linear infinite; }
@keyframes rtl-sky { 0% { opacity:.6; transform: scaleY(1) } 50% { opacity:1; transform: scaleY(1.04) } 100% { opacity:.8; transform: scaleY(1) } }
@keyframes rtl-sun { 0% { transform: translate(0,0) scale(1); opacity:.9 } 50% { transform: translate(-12px,8px) scale(1.06); opacity:1 } 100% { transform: translate(8px,-4px) scale(.94); opacity:.85 } }
@keyframes rtl-hills { 0% { transform: translateY(0) scaleX(1) } 50% { transform: translateY(-4px) scaleX(1.02) } 100% { transform: translateY(2px) scaleX(1) } }
@keyframes rtl-chateau { 0% { transform: translateX(-50%) scale(1) } 50% { transform: translateX(-48%) scale(1.02) } 100% { transform: translateX(-52%) scale(.98) } }
@keyframes rtl-path { 0% { transform: rotate(-15deg) scaleY(1) } 50% { transform: rotate(-12deg) scaleY(1.05) } 100% { transform: rotate(-18deg) scaleY(.95) } }
@keyframes rtl-tree-a { 0% { transform: scale(1) } 50% { transform: scale(1.03) } 100% { transform: scale(.97) } }
@keyframes rtl-tree-b { 0% { transform: scale(1) } 50% { transform: scale(1.04) } 100% { transform: scale(.96) } }
@keyframes rtl-cloud { 0% { transform: translateX(-60px) } 100% { transform: translateX(120vw) } }

.scn-chateau-le-blanc-history {
  background: linear-gradient(180deg, #c4d4e0 0%, #a0b8c8 40%, #8098a8 70%, #60788a 100%), radial-gradient(ellipse at 70% 20%, #dce8f0 0%, transparent 60%);
}
.scn-chateau-le-blanc-history .sky-clh { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #d8e4ee 0%, transparent 100%); animation: clh-sky 16s ease-in-out infinite alternate; }
.scn-chateau-le-blanc-history .sun-clh { position:absolute; top:8%; left:65%; width:60px; height:60px; background: radial-gradient(circle, #f0f8ff 0%, #c8dce8 40%, transparent 70%); border-radius:50%; box-shadow: 0 0 80px 30px rgba(200,220,232,.4); animation: clh-sun 20s ease-in-out infinite alternate; }
.scn-chateau-le-blanc-history .hills-clh { position:absolute; bottom:30%; left:0; right:0; height:20%; background: linear-gradient(180deg, #5a6a7a 0%, #3a4a5a 100%); border-radius: 70% 30% 0 0 / 60% 40% 0 0; animation: clh-hills 22s ease-in-out infinite alternate; }
.scn-chateau-le-blanc-history .tower-clh { position:absolute; bottom:18%; left:50%; width:60px; height:130px; background: linear-gradient(180deg, #a0b0c0 0%, #8090a0 100%); border-radius: 10% 10% 4% 4%; transform: translateX(-50%); box-shadow: 0 8px 16px rgba(0,0,0,.3), inset 0 4px 8px rgba(255,255,255,.15); animation: clh-tower 12s ease-in-out infinite; }
.scn-chateau-le-blanc-history .lake-clh { position:absolute; bottom:0; left:15%; right:15%; height:30%; background: linear-gradient(180deg, #6a8a9a 0%, #4a6a7a 100%); border-radius: 50% 50% 0 0 / 80% 80% 0 0; animation: clh-lake 8s ease-in-out infinite alternate; }
.scn-chateau-le-blanc-history .reflection-clh { position:absolute; bottom:0; left:40%; width:80px; height:60px; background: linear-gradient(180deg, rgba(160,176,192,.6) 0%, transparent 100%); transform: scaleY(-1); opacity:.4; border-radius: 10% 10% 0 0; filter: blur(4px); animation: clh-reflect 10s ease-in-out infinite alternate; }
.scn-chateau-le-blanc-history .cloud-a-clh { position:absolute; top:12%; left:10%; width:110px; height:22px; background: linear-gradient(180deg, rgba(255,255,255,.5) 0%, transparent 100%); border-radius:50%; filter: blur(6px); animation: clh-drift-a 50s linear infinite; }
.scn-chateau-le-blanc-history .cloud-b-clh { position:absolute; top:22%; right:8%; width:90px; height:18px; background: linear-gradient(180deg, rgba(255,255,255,.4) 0%, transparent 100%); border-radius:50%; filter: blur(5px); animation: clh-drift-b 60s linear infinite reverse; }
@keyframes clh-sky { 0% { opacity:.7; transform: scaleY(1) } 50% { opacity:1; transform: scaleY(1.03) } 100% { opacity:.8; transform: scaleY(1) } }
@keyframes clh-sun { 0% { transform: translate(0,0) scale(1); opacity:.8 } 50% { transform: translate(-8px,4px) scale(1.04); opacity:1 } 100% { transform: translate(4px,-6px) scale(.96); opacity:.9 } }
@keyframes clh-hills { 0% { transform: translateY(0) scaleX(1) } 50% { transform: translateY(-3px) scaleX(1.02) } 100% { transform: translateY(2px) scaleX(1) } }
@keyframes clh-tower { 0% { transform: translateX(-50%) scale(1) } 50% { transform: translateX(-48%) scale(1.02) } 100% { transform: translateX(-52%) scale(.98) } }
@keyframes clh-lake { 0% { transform: translateY(0) scaleX(1) } 50% { transform: translateY(5px) scaleX(.98) } 100% { transform: translateY(-3px) scaleX(1.02) } }
@keyframes clh-reflect { 0% { opacity:.3; transform: scaleY(-1) } 50% { opacity:.5; transform: scaleY(-1) scaleX(1.02) } 100% { opacity:.3; transform: scaleY(-1) } }
@keyframes clh-drift-a { 0% { transform: translateX(-60px) } 100% { transform: translateX(120vw) } }
@keyframes clh-drift-b { 0% { transform: translateX(0) } 100% { transform: translateX(-100vw) } }

.scn-question-valancourt { 
  background: 
    linear-gradient(180deg, #2a1a0a 0%, #3a2a1a 40%, #4a3a2a 100%),
    radial-gradient(ellipse at 50% 100%, #1a0a00 0%, transparent 70%);
}
.scn-question-valancourt .bg { position:absolute; inset:0; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.4) 100%); }
.scn-question-valancourt .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 10% 10% 0 0; }
.scn-question-valancourt .window { position:absolute; top:12%; left:15%; width:22%; height:18%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border: 4px solid #2a1a0a; border-radius: 4% 4% 8% 8%; box-shadow: inset 0 0 20px rgba(0,0,0,.5); }
.scn-question-valancourt .lamp { position:absolute; bottom:35%; right:22%; width:12px; height:20px; background: radial-gradient(circle at 50% 20%, #ffd060 0%, #b08040 50%, transparent 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; box-shadow: 0 0 30px 8px #c08040, 0 0 60px 16px rgba(192,128,64,.3); animation: qv-lamp 4s ease-in-out infinite alternate; }
.scn-question-valancourt .figure-emily { position:absolute; bottom:28%; left:30%; width:16px; height:40px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: qv-figure 6s ease-in-out infinite; }
.scn-question-valancourt .figure-annette { position:absolute; bottom:28%; right:30%; width:14px; height:38px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: qv-figure 6s ease-in-out infinite reverse; }
.scn-question-valancourt .shadow { position:absolute; bottom:20%; left:20%; right:20%; height:20%; background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,.6) 0%, transparent 70%); filter: blur(4px); animation: qv-shadow 8s ease-in-out infinite alternate; }

@keyframes qv-lamp { 0% { opacity:.7; transform: scale(1) translateY(0); } 50% { opacity:1; transform: scale(1.05) translateY(-2px); } 100% { opacity:.8; transform: scale(.95) translateY(0); } }
@keyframes qv-figure { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 25% { transform: translateX(3px) translateY(-1px) rotate(-2deg); } 50% { transform: translateX(0) translateY(-2px) rotate(0deg); } 75% { transform: translateX(-3px) translateY(-1px) rotate(2deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes qv-shadow { 0% { opacity:.5; transform: scale(1); } 50% { opacity:.7; transform: scale(1.05); } 100% { opacity:.4; transform: scale(.95); } }

.scn-after-siege-revels {
  background: 
    linear-gradient(180deg, #1a0a00 0%, #3a1a0a 40%, #4a2a1a 100%),
    radial-gradient(ellipse at 50% 30%, #5a3a2a 0%, transparent 60%);
}
.scn-after-siege-revels .bg { position:absolute; inset:0; background: linear-gradient(180deg, rgba(0,0,0,.3) 0%, transparent 30%, rgba(0,0,0,.5) 100%); }
.scn-after-siege-revels .table { position:absolute; bottom:20%; left:15%; right:15%; height:12%; background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%); border-radius: 10% 10% 0 0; box-shadow: 0 8px 16px rgba(0,0,0,.6); }
.scn-after-siege-revels .bottle1 { position:absolute; bottom:32%; left:28%; width:12px; height:24px; background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%); border-radius: 40% 40% 20% 20%; box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: asr-bottle 3s ease-in-out infinite alternate; }
.scn-after-siege-revels .bottle2 { position:absolute; bottom:34%; right:30%; width:10px; height:20px; background: linear-gradient(180deg, #7a5a4a 0%, #5a3a2a 100%); border-radius: 40% 40% 20% 20%; box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: asr-bottle 3s ease-in-out infinite alternate-reverse; animation-delay: 1s; }
.scn-after-siege-revels .card { position:absolute; bottom:32%; left:45%; width:16px; height:20px; background: linear-gradient(135deg, #8a7a6a 0%, #5a4a3a 100%); border-radius: 4px; transform: rotate(15deg); box-shadow: 0 2px 6px rgba(0,0,0,.4); animation: asr-card 5s ease-in-out infinite; }
.scn-after-siege-revels .figure1 { position:absolute; bottom:22%; left:20%; width:18px; height:44px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: asr-figure 4s ease-in-out infinite; }
.scn-after-siege-revels .figure2 { position:absolute; bottom:22%; right:22%; width:16px; height:42px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: asr-figure 4.5s ease-in-out infinite reverse; }
.scn-after-siege-revels .candle { position:absolute; bottom:30%; left:48%; width:6px; height:10px; background: linear-gradient(180deg, #ffd060 0%, #b08040 60%, #a07030 100%); border-radius: 20% 20% 40% 40%; box-shadow: 0 0 20px 6px #c08040, 0 0 40px 12px rgba(192,128,64,.4); animation: asr-candle 2s ease-in-out infinite alternate; }

@keyframes asr-bottle { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(5deg) translateY(-2px); } 100% { transform: rotate(0deg) translateY(1px); } }
@keyframes asr-card { 0% { transform: rotate(15deg) translateX(0); } 50% { transform: rotate(25deg) translateX(4px); } 100% { transform: rotate(10deg) translateX(-2px); } }
@keyframes asr-figure { 0% { transform: translateX(0) rotate(0deg); } 33% { transform: translateX(4px) rotate(3deg); } 66% { transform: translateX(-4px) rotate(-3deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes asr-candle { 0% { opacity:.7; transform: scale(1) translateY(0); } 50% { opacity:1; transform: scale(1.1) translateY(-1px); } 100% { opacity:.8; transform: scale(.9) translateY(1px); } }

.scn-ludovico-arrives {
  background: 
    linear-gradient(180deg, #1a0a00 0%, #2a1a0a 40%, #3a2a1a 100%),
    radial-gradient(ellipse at 40% 80%, #4a2a1a 0%, transparent 60%);
}
.scn-ludovico-arrives .bg { position:absolute; inset:0; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.6) 100%); }
.scn-ludovico-arrives .hearth { position:absolute; bottom:15%; left:10%; width:30%; height:25%; background: radial-gradient(ellipse at 50% 100%, #5a3a2a 0%, #2a1a0a 100%); border-radius: 30% 30% 0 0; box-shadow: inset 0 -10px 20px rgba(0,0,0,.5); }
.scn-ludovico-arrives .mattress { position:absolute; bottom:10%; left:35%; right:10%; height:15%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 20% 20% 0 0; box-shadow: 0 6px 12px rgba(0,0,0,.4); }
.scn-ludovico-arrives .lamp { position:absolute; bottom:38%; left:15%; width:10px; height:18px; background: radial-gradient(circle at 50% 30%, #ffd060 0%, #b08040 60%, transparent 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; box-shadow: 0 0 25px 6px #c08040, 0 0 50px 12px rgba(192,128,64,.3); animation: lua-lamp 3s ease-in-out infinite alternate; }
.scn-ludovico-arrives .figure-emily { position:absolute; bottom:20%; left:45%; width:14px; height:36px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; transform: rotate(-10deg); animation: lua-figure 6s ease-in-out infinite; }
.scn-ludovico-arrives .figure-annette { position:absolute; bottom:20%; right:25%; width:13px; height:34px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lua-figure 6s ease-in-out infinite reverse; }
.scn-ludovico-arrives .door { position:absolute; bottom:10%; right:8%; width:18%; height:70%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 4% 4% 0 0; box-shadow: -4px 0 12px rgba(0,0,0,.5); animation: lua-door 8s ease-in-out infinite alternate; }

@keyframes lua-lamp { 0% { opacity:.6; transform: scale(1) translateY(0); } 50% { opacity:1; transform: scale(1.08) translateY(-2px); } 100% { opacity:.7; transform: scale(.92) translateY(1px); } }
@keyframes lua-figure { 0% { transform: rotate(-10deg) translateX(0); } 50% { transform: rotate(-5deg) translateX(3px); } 100% { transform: rotate(-15deg) translateX(-2px); } }
@keyframes lua-door { 0% { opacity:.8; transform: scaleX(1); } 50% { opacity:1; transform: scaleX(1.02); } 100% { opacity:.7; transform: scaleX(.98); } }

.scn-ludovicos-offer {
  background: 
    linear-gradient(180deg, #1a0a00 0%, #2a1a0a 40%, #3a2a1a 100%),
    radial-gradient(ellipse at 60% 70%, #4a2a1a 0%, transparent 60%);
}
.scn-ludovicos-offer .bg { position:absolute; inset:0; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.5) 100%); }
.scn-ludovicos-offer .door-frame { position:absolute; bottom:5%; left:10%; width:25%; height:80%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 4% 4% 0 0; box-shadow: 4px 0 12px rgba(0,0,0,.4); }
.scn-ludovicos-offer .door-gap { position:absolute; bottom:8%; left:20%; width:5%; height:70%; background: linear-gradient(180deg, #1a0a00 0%, #0a0500 100%); border-radius: 0 4% 4% 0; box-shadow: inset 4px 0 8px rgba(0,0,0,.5); animation: lo2-gap 5s ease-in-out infinite alternate; }
.scn-ludovicos-offer .figure-emily { position:absolute; bottom:20%; left:35%; width:15px; height:38px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lo2-figure 7s ease-in-out infinite; }
.scn-ludovicos-offer .figure-annette { position:absolute; bottom:20%; left:12%; width:13px; height:36px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lo2-figure 7s ease-in-out infinite reverse; }
.scn-ludovicos-offer .figure-ludovico { position:absolute; bottom:20%; left:22%; width:16px; height:40px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lo2-figure 7s ease-in-out infinite, lo2-ludo 9s ease-in-out infinite; }
.scn-ludovicos-offer .lamp { position:absolute; bottom:40%; right:30%; width:12px; height:20px; background: radial-gradient(circle at 50% 30%, #ffd060 0%, #b08040 60%, transparent 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; box-shadow: 0 0 25px 6px #c08040, 0 0 50px 12px rgba(192,128,64,.3); animation: lo2-lamp 4s ease-in-out infinite alternate; }
.scn-ludovicos-offer .shadow { position:absolute; bottom:10%; left:20%; right:20%; height:15%; background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,.6) 0%, transparent 70%); filter: blur(3px); animation: lo2-shadow 10s ease-in-out infinite alternate; }

@keyframes lo2-gap { 0% { width:5%; opacity:.7; } 50% { width:6%; opacity:1; } 100% { width:4%; opacity:.6; } }
@keyframes lo2-figure { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 33% { transform: translateX(2px) translateY(-1px) rotate(-2deg); } 66% { transform: translateX(-2px) translateY(-1px) rotate(2deg); } 100% { transform: translateX(0) translateY(0) rotate(0deg); } }
@keyframes lo2-ludo { 0%,100% { transform: translateX(0) scale(1); } 50% { transform: translateX(3px) scale(1.02); } }
@keyframes lo2-lamp { 0% { opacity:.6; transform: scale(1) translateY(0); } 50% { opacity:1; transform: scale(1.05) translateY(-2px); } 100% { opacity:.8; transform: scale(.95) translateY(1px); } }
@keyframes lo2-shadow { 0% { opacity:.4; transform: scale(1); } 50% { opacity:.6; transform: scale(1.03); } 100% { opacity:.3; transform: scale(.97); } }

.scn-journey-inland {
  background: 
    linear-gradient(180deg, #fbe9d7 0%, #e3c7a8 40%, #c89a6b 100%),
    radial-gradient(ellipse at 70% 30%, #ffecc8 0%, transparent 60%);
  box-shadow: inset 0 0 80px rgba(180,100,40,0.3);
}
.scn-journey-inland .sun {
  position: absolute;
  top: 8%;
  right: 15%;
  width: 70px;
  height: 70px;
  background: radial-gradient(circle, #fff5d6 0%, #fdd87a 40%, #e8a540 100%);
  border-radius: 50%;
  box-shadow: 0 0 100px 60px rgba(255,220,100,0.5);
  animation: jrn-sun 6s ease-in-out infinite alternate;
}
.scn-journey-inland .sky {
  position: absolute;
  inset: 0 0 55% 0;
  background: linear-gradient(180deg, #a8d8ea 0%, #fbe9d7 100%);
  animation: jrn-sky 10s ease-in-out infinite alternate;
}
.scn-journey-inland .road {
  position: absolute;
  bottom: 0;
  left: 10%;
  right: 10%;
  height: 40%;
  background: linear-gradient(180deg, #c4a67a 0%, #9c7e5a 50%, #7a6248 100%);
  clip-path: polygon(10% 0%, 90% 0%, 100% 100%, 0% 100%);
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.3);
  animation: jrn-road 1.5s ease-in-out infinite;
}
.scn-journey-inland .dust {
  position: absolute;
  bottom: 20%;
  left: 20%;
  width: 120px;
  height: 30px;
  background: radial-gradient(ellipse at center, rgba(200,160,100,0.4) 0%, transparent 100%);
  filter: blur(8px);
  animation: jrn-dust 3s ease-in-out infinite;
}
.scn-journey-inland .carriage {
  position: absolute;
  bottom: 25%;
  left: 30%;
  width: 100px;
  height: 50px;
  background: linear-gradient(135deg, #5a3e28 0%, #3a2618 100%);
  border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%;
  box-shadow: -10px 5px 20px rgba(0,0,0,0.6);
  animation: jrn-carriage 2s ease-in-out infinite;
}
.scn-journey-inland .horse {
  position: absolute;
  bottom: 25%;
  left: 20%;
  width: 60px;
  height: 50px;
  background: radial-gradient(ellipse at 60% 40%, #6b5540 0%, #3f2f22 100%);
  border-radius: 40% 20% 20% 40% / 50% 30% 30% 50%;
  transform-origin: 60% 100%;
  animation: jrn-horse 0.8s ease-in-out infinite alternate;
}
.scn-journey-inland .figure {
  position: absolute;
  bottom: 28%;
  left: 34%;
  width: 14px;
  height: 30px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0e06 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: jrn-figure 1s ease-in-out infinite;
}
.scn-journey-inland .shadow-hard {
  position: absolute;
  bottom: 20%;
  left: 15%;
  width: 180px;
  height: 80px;
  background: linear-gradient(135deg, rgba(0,0,0,0.4) 0%, transparent 100%);
  filter: blur(4px);
  opacity: 0.7;
  animation: jrn-shadow 2s ease-in-out infinite alternate;
}
@keyframes jrn-sun { 0% { transform: scale(0.95); opacity: 0.8; } 50% { transform: scale(1.05); opacity: 1; } 100% { transform: scale(1); opacity: 0.9; } }
@keyframes jrn-sky { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes jrn-road { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes jrn-dust { 0% { transform: translateX(0) scale(1); opacity: 0.6; } 50% { transform: translateX(20px) scale(1.3); opacity: 0.3; } 100% { transform: translateX(40px) scale(0.8); opacity: 0; } }
@keyframes jrn-carriage { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-3px) rotate(0deg); } 100% { transform: translateY(0) rotate(1deg); } }
@keyframes jrn-horse { 0% { transform: rotate(-3deg); } 100% { transform: rotate(3deg); } }
@keyframes jrn-figure { 0% { transform: rotate(-2deg); } 50% { transform: rotate(1deg); } 100% { transform: rotate(-2deg); } }
@keyframes jrn-shadow { 0% { transform: skewX(-5deg); opacity: 0.5; } 50% { transform: skewX(0deg); opacity: 0.8; } 100% { transform: skewX(5deg); opacity: 0.6; } }

.scn-despair-renewed {
  background: 
    linear-gradient(180deg, #faea9c 0%, #e6c878 30%, #b89a5a 70%, #7a623a 100%),
    radial-gradient(ellipse at 50% 20%, #fff7d6 0%, transparent 60%);
  box-shadow: inset 0 0 100px rgba(80,50,20,0.4);
}
.scn-despair-renewed .water {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 45%;
  background: linear-gradient(180deg, #284a5c 0%, #1a3040 50%, #0e1f2a 100%);
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.5);
  animation: drn-water 8s ease-in-out infinite alternate;
}
.scn-despair-renewed .shore {
  position: absolute;
  bottom: 42%;
  left: 0;
  right: 0;
  height: 12%;
  background: linear-gradient(180deg, #7a6a4a 0%, #5a4a32 100%);
  border-radius: 0 0 40% 40% / 0 0 100% 100%;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.4);
  animation: drn-shore 5s ease-in-out infinite alternate;
}
.scn-despair-renewed .boat {
  position: absolute;
  bottom: 50%;
  left: 55%;
  width: 70px;
  height: 25px;
  background: linear-gradient(180deg, #4a3220 0%, #2a1a0e 100%);
  border-radius: 0 0 40% 40% / 0 0 80% 80%;
  box-shadow: -5px 5px 15px rgba(0,0,0,0.6);
  animation: drn-boat 3s ease-in-out infinite;
}
.scn-despair-renewed .figure-sitting {
  position: absolute;
  bottom: 52%;
  left: 57%;
  width: 16px;
  height: 24px;
  background: linear-gradient(180deg, #1a1210 0%, #0a0806 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: drn-figure 4s ease-in-out infinite;
}
.scn-despair-renewed .cliff {
  position: absolute;
  bottom: 30%;
  right: 0;
  width: 30%;
  height: 70%;
  background: linear-gradient(180deg, #6a5a3a 0%, #3a2e1a 100%);
  border-radius: 40% 0 0 0 / 80% 0 0 0;
  box-shadow: inset -20px 0 40px rgba(0,0,0,0.3);
  animation: drn-cliff 12s ease-in-out infinite alternate;
}
.scn-despair-renewed .sun-glare {
  position: absolute;
  top: 5%;
  left: 20%;
  width: 90px;
  height: 90px;
  background: radial-gradient(circle, rgba(255,255,220,0.9) 0%, rgba(255,220,100,0.2) 50%, transparent 100%);
  border-radius: 50%;
  filter: blur(10px);
  animation: drn-glare 6s ease-in-out infinite alternate;
}
.scn-despair-renewed .reeds {
  position: absolute;
  bottom: 40%;
  left: 10%;
  width: 50px;
  height: 60px;
  background: linear-gradient(180deg, #7a6a42 0%, #4a3a22 100%);
  clip-path: polygon(40% 0%, 60% 0%, 80% 100%, 20% 100%);
  transform-origin: bottom center;
  animation: drn-reeds 3s ease-in-out infinite alternate;
}
@keyframes drn-water { 0% { transform: translateY(0); opacity: 0.9; } 50% { transform: translateY(-3px); opacity: 1; } 100% { transform: translateY(2px); opacity: 0.85; } }
@keyframes drn-shore { 0% { transform: translateY(0); } 50% { transform: translateY(2px); } 100% { transform: translateY(-1px); } }
@keyframes drn-boat { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(2px) rotate(1deg); } 100% { transform: translateY(-1px) rotate(-2deg); } }
@keyframes drn-figure { 0% { transform: rotate(0deg); } 25% { transform: rotate(-3deg) translateY(0); } 50% { transform: rotate(2deg) translateY(-2px); } 75% { transform: rotate(-1deg) translateY(0); } 100% { transform: rotate(0deg); } }
@keyframes drn-cliff { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(0); } }
@keyframes drn-glare { 0% { transform: scale(0.9); opacity: 0.6; } 50% { transform: scale(1.1); opacity: 1; } 100% { transform: scale(1); opacity: 0.8; } }
@keyframes drn-reeds { 0% { transform: rotate(-5deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-5deg); } }

.scn-ascending-apennines {
  background: 
    linear-gradient(180deg, #c4d4d6 0%, #8ea0a8 30%, #5a6e7a 70%, #3a4a52 100%),
    radial-gradient(ellipse at 60% 60%, #4a5e68 0%, transparent 80%);
  box-shadow: inset 0 0 80px rgba(40,50,60,0.4);
}
.scn-ascending-apennines .road-mountain {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 55%;
  background: linear-gradient(135deg, #5a6e4a 0%, #3a4a32 50%, #1a2a1a 100%);
  clip-path: polygon(0% 30%, 100% 0%, 100% 100%, 0% 100%);
  animation: apn-road 8s ease-in-out infinite alternate;
}
.scn-ascending-apennines .peak-back {
  position: absolute;
  bottom: 40%;
  left: 5%;
  width: 45%;
  height: 50%;
  background: linear-gradient(180deg, #4a5a6a 0%, #2a3a4a 100%);
  border-radius: 60% 40% 0 0 / 80% 60% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.3);
  animation: apn-peak-back 15s ease-in-out infinite alternate;
}
.scn-ascending-apennines .peak-mid {
  position: absolute;
  bottom: 45%;
  left: 40%;
  width: 50%;
  height: 45%;
  background: linear-gradient(180deg, #6a7a8a 0%, #3a5060 100%);
  border-radius: 50% 50% 0 0 / 60% 70% 0 0;
  box-shadow: inset 0 15px 40px rgba(0,0,0,0.3);
  animation: apn-peak-mid 12s ease-in-out infinite alternate;
}
.scn-ascending-apennines .mist {
  position: absolute;
  bottom: 30%;
  left: -5%;
  width: 110%;
  height: 20%;
  background: linear-gradient(180deg, rgba(200,210,220,0.5) 0%, transparent 100%);
  filter: blur(12px);
  animation: apn-mist 20s linear infinite;
}
.scn-ascending-apennines .figure-walking {
  position: absolute;
  bottom: 20%;
  left: 45%;
  width: 12px;
  height: 28px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: apn-walk 1.5s ease-in-out infinite;
}
.scn-ascending-apennines .tree-silhouette {
  position: absolute;
  bottom: 5%;
  left: 15%;
  width: 30px;
  height: 60px;
  background: linear-gradient(180deg, #1a1a1a 0%, #2a2a2a 100%);
  clip-path: polygon(50% 0%, 40% 30%, 60% 30%, 50% 60%, 30% 100%, 70% 100%);
  animation: apn-tree 10s ease-in-out infinite alternate;
}
.scn-ascending-apennines .bird {
  position: absolute;
  top: 15%;
  right: 25%;
  width: 20px;
  height: 10px;
  background: transparent;
  border-top: 2px solid #2a3a4a;
  border-bottom: 2px solid #2a3a4a;
  border-radius: 50%;
  animation: apn-bird 8s linear infinite;
}
.scn-ascending-apennines .cloud-dark {
  position: absolute;
  top: 10%;
  left: 20%;
  width: 120px;
  height: 30px;
  background: linear-gradient(180deg, #4a5a6a 0%, #2a3a4a 100%);
  border-radius: 50%;
  filter: blur(8px);
  opacity: 0.6;
  animation: apn-cloud 25s linear infinite;
}
@keyframes apn-road { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-5px) scale(1.02); } 100% { transform: translateY(0) scale(1); } }
@keyframes apn-peak-back { 0% { transform: translateY(0); opacity: 0.8; } 50% { transform: translateY(-4px); opacity: 1; } 100% { transform: translateY(2px); opacity: 0.85; } }
@keyframes apn-peak-mid { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(1px); } }
@keyframes apn-mist { 0% { transform: translateX(0); opacity: 0.5; } 50% { transform: translateX(30px); opacity: 0.3; } 100% { transform: translateX(-30px); opacity: 0.5; } }
@keyframes apn-walk { 0% { transform: rotate(-5deg) translateX(0); } 25% { transform: rotate(2deg) translateX(6px); } 50% { transform: rotate(-3deg) translateX(12px); } 75% { transform: rotate(4deg) translateX(18px); } 100% { transform: rotate(-5deg) translateX(24px); } }
@keyframes apn-tree { 0% { transform: rotate(-2deg); } 50% { transform: rotate(3deg); } 100% { transform: rotate(-2deg); } }
@keyframes apn-bird { 0% { transform: translateX(0) translateY(0); } 25% { transform: translateX(-30px) translateY(-10px); } 50% { transform: translateX(-60px) translateY(0); } 75% { transform: translateX(-30px) translateY(10px); } 100% { transform: translateX(0) translateY(0); } }
@keyframes apn-cloud { 0% { transform: translateX(-50px); } 100% { transform: translateX(120vw); } }

.scn-pine-forest-gloom {
  background: 
    linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 40%, #0e1a0e 100%),
    radial-gradient(ellipse at 30% 40%, #2a4a2a 0%, transparent 70%);
  box-shadow: inset 0 0 80px rgba(0,0,0,0.5);
}
.scn-pine-forest-gloom .ground {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 35%;
  background: linear-gradient(180deg, #1a2a1a 0%, #0e1a0e 100%);
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.6);
  animation: pfg-ground 8s ease-in-out infinite alternate;
}
.scn-pine-forest-gloom .pine-fore {
  position: absolute;
  bottom: 10%;
  left: 5%;
  width: 80px;
  height: 180px;
  background: linear-gradient(180deg, #0a1a0a 0%, #1a2a1a 100%);
  clip-path: polygon(50% 0%, 30% 40%, 70% 40%, 50% 70%, 20% 100%, 80% 100%);
  box-shadow: inset 0 -20px 30px rgba(0,0,0,0.5);
  animation: pfg-pine-fore 5s ease-in-out infinite alternate;
}
.scn-pine-forest-gloom .pine-mid {
  position: absolute;
  bottom: 15%;
  left: 35%;
  width: 60px;
  height: 140px;
  background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%);
  clip-path: polygon(50% 0%, 25% 50%, 75% 50%, 50% 80%, 30% 100%, 70% 100%);
  box-shadow: inset 0 -15px 20px rgba(0,0,0,0.4);
  animation: pfg-pine-mid 7s ease-in-out infinite alternate;
}
.scn-pine-forest-gloom .pine-back {
  position: absolute;
  bottom: 20%;
  right: 10%;
  width: 50px;
  height: 100px;
  background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%);
  clip-path: polygon(50% 0%, 20% 60%, 80% 60%, 50% 90%, 35% 100%, 65% 100%);
  box-shadow: inset 0 -10px 15px rgba(0,0,0,0.3);
  animation: pfg-pine-back 9s ease-in-out infinite alternate;
}
.scn-pine-forest-gloom .mist-gloom {
  position: absolute;
  bottom: 30%;
  left: 0;
  right: 0;
  height: 30%;
  background: linear-gradient(180deg, rgba(30,40,30,0.4) 0%, transparent 100%);
  filter: blur(15px);
  animation: pfg-mist 15s ease-in-out infinite;
}
.scn-pine-forest-gloom .figure-small {
  position: absolute;
  bottom: 12%;
  left: 45%;
  width: 10px;
  height: 22px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pfg-figure 4s ease-in-out infinite;
}
.scn-pine-forest-gloom .light-shaft {
  position: absolute;
  top: 5%;
  left: 40%;
  width: 30px;
  height: 60%;
  background: linear-gradient(180deg, rgba(180,200,180,0.1) 0%, transparent 100%);
  transform: skewX(-10deg);
  filter: blur(8px);
  animation: pfg-light 12s ease-in-out infinite alternate;
}
@keyframes pfg-ground { 0% { transform: translateY(0); opacity: 0.9; } 50% { transform: translateY(2px); opacity: 1; } 100% { transform: translateY(-1px); opacity: 0.9; } }
@keyframes pfg-pine-fore { 0% { transform: rotate(-2deg); } 50% { transform: rotate(3deg); } 100% { transform: rotate(-2deg); } }
@keyframes pfg-pine-mid { 0% { transform: rotate(1deg); } 50% { transform: rotate(-2deg); } 100% { transform: rotate(1deg); } }
@keyframes pfg-pine-back { 0% { transform: rotate(-1deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-1deg); } }
@keyframes pfg-mist { 0% { transform: translateX(0); opacity: 0.4; } 33% { transform: translateX(20px); opacity: 0.6; } 66% { transform: translateX(-20px); opacity: 0.3; } 100% { transform: translateX(0); opacity: 0.4; } }
@keyframes pfg-figure { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(8px) rotate(-2deg); } 50% { transform: translateX(16px) rotate(2deg); } 75% { transform: translateX(24px) rotate(-1deg); } 100% { transform: translateX(32px) rotate(0deg); } }
@keyframes pfg-light { 0% { transform: skewX(-10deg) scaleY(0.9); opacity: 0.2; } 50% { transform: skewX(-5deg) scaleY(1.1); opacity: 0.5; } 100% { transform: skewX(-10deg) scaleY(0.9); opacity: 0.3; } }

.scn-fears-for-future { background: linear-gradient(180deg, #4a4a5a 0%, #2e2e3e 50%, #1a1a2a 100%), radial-gradient(ellipse at 30% 50%, #3a3a4a 0%, transparent 70%); }
.scn-fears-for-future .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #5a5a6a 0%, #3a3a4a 100%); animation: f4f-sky 15s ease-in-out infinite alternate; }
.scn-fears-for-future .mist { position:absolute; bottom:40%; left:0; right:0; height:30%; background: linear-gradient(180deg, transparent 0%, rgba(200,200,210,0.15) 50%, transparent 100%); filter: blur(8px); animation: f4f-mist 12s ease-in-out infinite; }
.scn-fears-for-future .road { position:absolute; bottom:20%; left:20%; right:20%; height:8%; background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 4px 8px rgba(0,0,0,0.5); transform: perspective(400px) rotateX(10deg); animation: f4f-road 8s ease-in-out infinite; }
.scn-fears-for-future .gate { position:absolute; bottom:25%; left:50%; width:60px; height:80px; transform: translateX(-50%); background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 8px 16px rgba(0,0,0,0.7); animation: f4f-gate 10s ease-in-out infinite alternate; }
.scn-fears-for-future .figure { position:absolute; bottom:20%; left:35%; width:14px; height:30px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: f4f-figure 6s ease-in-out infinite; }
.scn-fears-for-future .tree-left { position:absolute; bottom:30%; left:8%; width:40px; height:100px; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); border-radius: 40% 60% 20% 20% / 80% 80% 20% 20%; box-shadow: -2px 0 6px rgba(0,0,0,0.4); animation: f4f-tree 14s ease-in-out infinite; }
.scn-fears-for-future .tree-right { position:absolute; bottom:30%; right:8%; width:40px; height:100px; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); border-radius: 60% 40% 20% 20% / 80% 80% 20% 20%; box-shadow: 2px 0 6px rgba(0,0,0,0.4); animation: f4f-tree 14s ease-in-out infinite reverse; }
.scn-fears-for-future .cloud { position:absolute; top:12%; left:10%; width:80px; height:20px; background: linear-gradient(180deg, rgba(200,200,210,0.3) 0%, transparent 100%); border-radius: 50%; filter: blur(6px); animation: f4f-cloud 40s linear infinite; }
@keyframes f4f-sky { 0% { opacity:0.7 } 50% { opacity:0.9 } 100% { opacity:0.6 } }
@keyframes f4f-mist { 0% { opacity:0.2; transform: translateY(0) } 50% { opacity:0.5; transform: translateY(-4px) } 100% { opacity:0.2; transform: translateY(0) } }
@keyframes f4f-road { 0% { transform: perspective(400px) rotateX(10deg) scaleY(1) } 50% { transform: perspective(400px) rotateX(12deg) scaleY(1.02) } 100% { transform: perspective(400px) rotateX(10deg) scaleY(1) } }
@keyframes f4f-gate { 0% { box-shadow: 0 8px 16px rgba(0,0,0,0.7); transform: translateX(-50%) scaleY(1) } 50% { box-shadow: 0 12px 24px rgba(0,0,0,0.8); transform: translateX(-50%) scaleY(0.98) } 100% { box-shadow: 0 8px 16px rgba(0,0,0,0.7); transform: translateX(-50%) scaleY(1) } }
@keyframes f4f-figure { 0% { transform: translateX(0) translateY(0) rotate(-2deg) } 25% { transform: translateX(5px) translateY(-1px) rotate(1deg) } 50% { transform: translateX(10px) translateY(0) rotate(-2deg) } 75% { transform: translateX(5px) translateY(1px) rotate(1deg) } 100% { transform: translateX(0) translateY(0) rotate(-2deg) } }
@keyframes f4f-tree { 0% { transform: rotate(0deg) scaleY(1) } 50% { transform: rotate(2deg) scaleY(1.02) } 100% { transform: rotate(0deg) scaleY(1) } }
@keyframes f4f-cloud { 0% { transform: translateX(-50px) } 100% { transform: translateX(100vw) } }

.scn-despair-at-forest { background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 50%, #1a1a2a 100%), radial-gradient(ellipse at 70% 30%, #2a2a3a 0%, transparent 60%); }
.scn-despair-at-forest .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%); animation: daf-sky 20s ease-in-out infinite alternate; }
.scn-despair-at-forest .mist { position:absolute; bottom:35%; left:0; right:0; height:25%; background: linear-gradient(180deg, transparent 0%, rgba(180,180,190,0.1) 50%, transparent 100%); filter: blur(10px); animation: daf-mist 15s ease-in-out infinite; }
.scn-despair-at-forest .forest-canopy { position:absolute; top:20%; left:0; right:0; bottom:45%; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 80%, transparent 100%); border-radius: 0 0 40% 40% / 0 0 60% 60%; box-shadow: inset 0 10px 30px rgba(0,0,0,0.5); animation: daf-canopy 18s ease-in-out infinite; }
.scn-despair-at-forest .castle { position:absolute; bottom:40%; right:15%; width:70px; height:90px; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 4px 8px rgba(0,0,0,0.6); animation: daf-castle 12s ease-in-out infinite alternate; }
.scn-despair-at-forest .figure { position:absolute; bottom:20%; left:30%; width:16px; height:32px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: daf-figure 5s ease-in-out infinite; }
.scn-despair-at-forest .path { position:absolute; bottom:15%; left:25%; right:25%; height:6%; background: linear-gradient(180deg, #3a3a2a 0%, #2a2a1a 100%); border-radius: 20% 20% 0 0; transform: perspective(300px) rotateX(15deg); animation: daf-path 9s ease-in-out infinite; }
.scn-despair-at-forest .shadow { position:absolute; bottom:18%; left:28%; width:20px; height:4px; background: rgba(0,0,0,0.4); border-radius: 50%; filter: blur(2px); animation: daf-shadow 5s ease-in-out infinite; }
@keyframes daf-sky { 0% { opacity:0.6 } 50% { opacity:0.8 } 100% { opacity:0.5 } }
@keyframes daf-mist { 0% { opacity:0.1; transform: translateY(0) } 50% { opacity:0.4; transform: translateY(-3px) } 100% { opacity:0.1; transform: translateY(0) } }
@keyframes daf-canopy { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-2px) scaleY(1.01) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes daf-castle { 0% { box-shadow: 0 4px 8px rgba(0,0,0,0.6); transform: scaleY(1) } 50% { box-shadow: 0 8px 16px rgba(0,0,0,0.7); transform: scaleY(0.97) } 100% { box-shadow: 0 4px 8px rgba(0,0,0,0.6); transform: scaleY(1) } }
@keyframes daf-figure { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(-3px) rotate(-2deg) } 50% { transform: translateX(0) rotate(0deg) } 75% { transform: translateX(3px) rotate(2deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes daf-path { 0% { transform: perspective(300px) rotateX(15deg) scaleY(1) } 50% { transform: perspective(300px) rotateX(18deg) scaleY(1.01) } 100% { transform: perspective(300px) rotateX(15deg) scaleY(1) } }
@keyframes daf-shadow { 0% { transform: scaleX(1); opacity:0.4 } 50% { transform: scaleX(1.2); opacity:0.6 } 100% { transform: scaleX(1); opacity:0.4 } }

.scn-panorama-from-plain { background: linear-gradient(180deg, #b0c8e0 0%, #d0e0f0 40%, #8fa8c0 100%), radial-gradient(ellipse at 50% 0%, #f0f8ff 0%, transparent 70%); }
.scn-panorama-from-plain .sky { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #c0d8f0 0%, #e0ecf8 60%, #b0c8e0 100%); animation: p4p-sky 25s ease-in-out infinite alternate; }
.scn-panorama-from-plain .sun { position:absolute; top:8%; left:70%; width:40px; height:40px; background: radial-gradient(circle, #fff8e0 0%, #ffe080 60%, transparent 100%); border-radius: 50%; box-shadow: 0 0 60px 20px rgba(255,224,128,0.3); animation: p4p-sun 12s ease-in-out infinite; }
.scn-panorama-from-plain .distant-mountains { position:absolute; bottom:25%; left:0; right:0; height:25%; background: linear-gradient(180deg, #6a7a8a 0%, #4a5a6a 100%); border-radius: 60% 40% 0 0 / 80% 70% 0 0; box-shadow: inset 0 5px 15px rgba(0,0,0,0.2); animation: p4p-mountains 20s ease-in-out infinite; }
.scn-panorama-from-plain .rolling-hills { position:absolute; bottom:15%; left:0; right:0; height:20%; background: linear-gradient(180deg, #7a8a6a 0%, #5a6a4a 100%); border-radius: 30% 70% 0 0 / 60% 80% 0 0; box-shadow: inset 0 4px 10px rgba(0,0,0,0.15); animation: p4p-hills 18s ease-in-out infinite; }
.scn-panorama-from-plain .plain { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #8a9a7a 0%, #6a7a5a 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 2px 6px rgba(0,0,0,0.1); animation: p4p-plain 14s ease-in-out infinite; }
.scn-panorama-from-plain .figures { position:absolute; bottom:12%; left:45%; width:20px; height:24px; background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: p4p-figures 8s ease-in-out infinite; }
.scn-panorama-from-plain .mule { position:absolute; bottom:12%; left:55%; width:16px; height:14px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: p4p-mule 6s ease-in-out infinite; }
@keyframes p4p-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes p4p-sun { 0% { transform: translate(0,0); box-shadow: 0 0 60px 20px rgba(255,224,128,0.3) } 50% { transform: translate(2px,-2px); box-shadow: 0 0 80px 30px rgba(255,224,128,0.5) } 100% { transform: translate(0,0); box-shadow: 0 0 60px 20px rgba(255,224,128,0.3) } }
@keyframes p4p-mountains { 0% { transform: translateY(0) scaleX(1) } 50% { transform: translateY(-2px) scaleX(1.005) } 100% { transform: translateY(0) scaleX(1) } }
@keyframes p4p-hills { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-1px) rotate(0.5deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes p4p-plain { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes p4p-figures { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(1px) rotate(1deg) } 50% { transform: translateX(0) rotate(0deg) } 75% { transform: translateX(-1px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes p4p-mule { 0% { transform: translateX(0) scaleY(1) } 50% { transform: translateX(2px) scaleY(1.02) } 100% { transform: translateX(0) scaleY(1) } }

.scn-farewell-to-world { background: linear-gradient(180deg, #d0b080 0%, #e0c090 40%, #b09060 100%), radial-gradient(ellipse at 50% 0%, #ffe0a0 0%, transparent 70%); }
.scn-farewell-to-world .sky { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #e0c8a0 0%, #f0d8b0 60%, #d0b890 100%); animation: f2w-sky 20s ease-in-out infinite alternate; }
.scn-farewell-to-world .sun { position:absolute; top:10%; left:80%; width:35px; height:35px; background: radial-gradient(circle, #ffe8c0 0%, #ffc080 60%, transparent 100%); border-radius: 50%; box-shadow: 0 0 80px 30px rgba(255,192,128,0.4); animation: f2w-sun 15s ease-in-out infinite; }
.scn-farewell-to-world .sea { position:absolute; bottom:25%; left:0; right:0; height:30%; background: linear-gradient(180deg, #6a8a9a 0%, #4a6a7a 100%); border-radius: 0 0 20% 20% / 0 0 10% 10%; box-shadow: inset 0 8px 20px rgba(0,0,0,0.2); animation: f2w-sea 12s ease-in-out infinite; }
.scn-farewell-to-world .river { position:absolute; bottom:20%; left:40%; right:20%; height:6%; background: linear-gradient(90deg, transparent 0%, #8aa0b0 30%, #6a8a9a 70%, transparent 100%); border-radius: 20% 20% 0 0; transform: skewX(-10deg); box-shadow: inset 0 2px 4px rgba(0,0,0,0.1); animation: f2w-river 18s ease-in-out infinite; }
.scn-farewell-to-world .plains { position:absolute; bottom:5%; left:0; right:0; height:25%; background: linear-gradient(180deg, #b0a070 0%, #908050 100%); border-radius: 40% 40% 0 0 / 30% 30% 0 0; box-shadow: inset 0 4px 10px rgba(0,0,0,0.1); animation: f2w-plains 22s ease-in-out infinite; }
.scn-farewell-to-world .distant-mountains { position:absolute; bottom:40%; left:10%; right:10%; height:15%; background: linear-gradient(180deg, #8a7a5a 0%, #6a5a3a 100%); border-radius: 50% 50% 0 0 / 80% 80% 0 0; box-shadow: inset 0 5px 15px rgba(0,0,0,0.2); animation: f2w-mountains 24s ease-in-out infinite; }
.scn-farewell-to-world .figure { position:absolute; bottom:35%; left:50%; width:16px; height:30px; transform: translateX(-50%); background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: f2w-figure 7s ease-in-out infinite; }
.scn-farewell-to-world .clouds { position:absolute; top:15%; left:20%; width:100px; height:25px; background: linear-gradient(180deg, rgba(255,230,200,0.4) 0%, transparent 100%); border-radius: 50%; filter: blur(8px); animation: f2w-clouds 50s linear infinite; }
@keyframes f2w-sky { 0% { opacity:0.7 } 50% { opacity:0.9 } 100% { opacity:0.6 } }
@keyframes f2w-sun { 0% { transform: translate(0,0); box-shadow: 0 0 80px 30px rgba(255,192,128,0.4) } 50% { transform: translate(-2px,-3px); box-shadow: 0 0 100px 40px rgba(255,192,128,0.6) } 100% { transform: translate(0,0); box-shadow: 0 0 80px 30px rgba(255,192,128,0.4) } }
@keyframes f2w-sea { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(1px) scaleY(1.01) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes f2w-river { 0% { transform: skewX(-10deg) scaleX(1) } 50% { transform: skewX(-12deg) scaleX(1.02) } 100% { transform: skewX(-10deg) scaleX(1) } }
@keyframes f2w-plains { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes f2w-mountains { 0% { transform: scaleY(1) } 50% { transform: scaleY(0.98) } 100% { transform: scaleY(1) } }
@keyframes f2w-figure { 0% { transform: translateX(-50%) rotate(0deg) } 25% { transform: translateX(-50%) rotate(2deg) } 50% { transform: translateX(-50%) rotate(0deg) } 75% { transform: translateX(-50%) rotate(-2deg) } 100% { transform: translateX(-50%) rotate(0deg) } }
@keyframes f2w-clouds { 0% { transform: translateX(-60px) } 100% { transform: translateX(100vw) } }

.scn-montoni-with-men {
  background:
    linear-gradient(180deg, #d4b896 0%, #8a7350 40%),
    radial-gradient(ellipse at 60% 30%, #f0dbb8 0%, transparent 60%),
    linear-gradient(180deg, #302820 0%, #1a1410 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,0.6);
}
.scn-montoni-with-men .bg-wall {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(180deg, #a08060 0%, #6a5030 100%);
  border-radius: 0 0 20% 20%;
  box-shadow: inset 0 12px 24px rgba(0,0,0,0.5);
}
.scn-montoni-with-men .floor {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(0deg, #403020 0%, #605040 100%);
}
.scn-montoni-with-men .window {
  position:absolute; top:20%; left:65%; width:80px; height:120px;
  background: radial-gradient(circle, #ffe8c0 0%, #d0b080 70%);
  border: 6px solid #6a5030;
  border-radius: 4px;
  box-shadow: inset 0 0 20px #ffe8c0, 0 0 40px 12px rgba(255,232,192,0.3);
  animation: mtm-glow 6s ease-in-out infinite alternate;
}
.scn-montoni-with-men .sunbeam {
  position:absolute; top:20%; left:65%; width:120px; height:250px;
  background: linear-gradient(135deg, rgba(255,232,192,0.4) 0%, transparent 100%);
  transform-origin: top left;
  filter: blur(8px);
  animation: mtm-beam 8s ease-in-out infinite alternate;
}
.scn-montoni-with-men .montoni {
  position:absolute; bottom:30%; left:50%; width:60px; height:130px;
  background: linear-gradient(180deg, #2a1e14 0%, #1a1008 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform: translateX(-50%);
  box-shadow: -4px 0 12px rgba(0,0,0,0.5);
  animation: mtm-figure 4s ease-in-out infinite;
}
.scn-montoni-with-men .men-1 {
  position:absolute; bottom:30%; left:35%; width:50px; height:110px;
  background: linear-gradient(180deg, #3a2a1c 0%, #1e140a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform: translateX(-50%);
  box-shadow: -2px 0 8px rgba(0,0,0,0.4);
  animation: mtm-figure 5s ease-in-out infinite 0.5s;
}
.scn-montoni-with-men .men-2 {
  position:absolute; bottom:30%; left:65%; width:50px; height:110px;
  background: linear-gradient(180deg, #3a2a1c 0%, #1e140a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform: translateX(-50%);
  box-shadow: -2px 0 8px rgba(0,0,0,0.4);
  animation: mtm-figure 5s ease-in-out infinite 1s;
}
.scn-montoni-with-men .shadow {
  position:absolute; bottom:30%; left:35%; right:65%; height:20px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 70%);
  filter: blur(6px);
  animation: mtm-shadow 4s ease-in-out infinite;
}
@keyframes mtm-glow {
  0% { box-shadow: inset 0 0 20px #ffe8c0, 0 0 30px 8px rgba(255,232,192,0.3); opacity:0.9; }
  50% { box-shadow: inset 0 0 30px #ffddb0, 0 0 50px 16px rgba(255,232,192,0.5); opacity:1; }
  100% { box-shadow: inset 0 0 25px #ffe8c0, 0 0 40px 12px rgba(255,232,192,0.4); opacity:0.95; }
}
@keyframes mtm-beam {
  0% { transform: rotate(-5deg) scaleY(0.95); opacity:0.6; }
  50% { transform: rotate(0deg) scaleY(1); opacity:0.8; }
  100% { transform: rotate(5deg) scaleY(0.95); opacity:0.6; }
}
@keyframes mtm-figure {
  0% { transform: translateX(-50%) rotate(0deg); }
  25% { transform: translateX(-48%) rotate(1deg); }
  50% { transform: translateX(-50%) rotate(0deg); }
  75% { transform: translateX(-52%) rotate(-1deg); }
  100% { transform: translateX(-50%) rotate(0deg); }
}
@keyframes mtm-shadow {
  0% { opacity:0.5; transform: scaleX(1); }
  50% { opacity:0.7; transform: scaleX(1.1); }
  100% { opacity:0.5; transform: scaleX(1); }
}

.scn-emily-pleads {
  background:
    linear-gradient(180deg, #c0a878 0%, #8a7048 30%),
    radial-gradient(ellipse at 50% 0%, #f0dbb8 0%, transparent 60%),
    linear-gradient(180deg, #2a2218 0%, #18120a 100%);
  box-shadow: inset 0 0 50px rgba(0,0,0,0.5);
}
.scn-emily-pleads .bg-wall {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(180deg, #b09878 0%, #786040 100%);
  border-radius: 0 0 15% 15%;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.4);
}
.scn-emily-pleads .floor {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(0deg, #504030 0%, #706050 100%);
}
.scn-emily-pleads .window {
  position:absolute; top:15%; left:70%; width:70px; height:100px;
  background: radial-gradient(circle, #ffe8c0 0%, #d0b080 70%);
  border: 5px solid #6a5030;
  border-radius: 3px;
  box-shadow: inset 0 0 15px #ffe8c0, 0 0 30px 10px rgba(255,232,192,0.3);
  animation: epl-glow 7s ease-in-out infinite alternate;
}
.scn-emily-pleads .emily {
  position:absolute; bottom:30%; left:40%; width:45px; height:120px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1c10 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 40% 40%;
  transform: translateX(-50%);
  box-shadow: -2px 0 10px rgba(0,0,0,0.4);
  animation: epl-emily 5s ease-in-out infinite;
}
.scn-emily-pleads .montoni {
  position:absolute; bottom:30%; left:60%; width:55px; height:125px;
  background: linear-gradient(180deg, #2a1e14 0%, #1a1008 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform: translateX(-50%);
  box-shadow: -4px 0 12px rgba(0,0,0,0.5);
  animation: epl-montoni 3s ease-in-out infinite;
}
.scn-emily-pleads .table {
  position:absolute; bottom:30%; left:50%; width:100px; height:15px;
  background: linear-gradient(180deg, #6a5030 0%, #3a2a1a 100%);
  border-radius: 2px;
  transform: translateX(-50%);
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
}
.scn-emily-pleads .dust-motes {
  position:absolute; top:10%; left:20%; width:200px; height:200px;
  background: radial-gradient(circle, rgba(255,232,192,0.2) 0%, transparent 70%);
  filter: blur(10px);
  animation: epl-dust 12s linear infinite;
  opacity:0.4;
}
@keyframes epl-glow {
  0% { box-shadow: inset 0 0 15px #ffe8c0, 0 0 20px 6px rgba(255,232,192,0.3); opacity:0.85; }
  50% { box-shadow: inset 0 0 25px #ffddb0, 0 0 40px 12px rgba(255,232,192,0.5); opacity:1; }
  100% { box-shadow: inset 0 0 20px #ffe8c0, 0 0 30px 8px rgba(255,232,192,0.35); opacity:0.9; }
}
@keyframes epl-emily {
  0% { transform: translateX(-50%) rotate(2deg) translateY(0); }
  25% { transform: translateX(-48%) rotate(0deg) translateY(-2px); }
  50% { transform: translateX(-50%) rotate(-2deg) translateY(0); }
  75% { transform: translateX(-52%) rotate(0deg) translateY(-1px); }
  100% { transform: translateX(-50%) rotate(2deg) translateY(0); }
}
@keyframes epl-montoni {
  0% { transform: translateX(-50%) rotate(-1deg); }
  50% { transform: translateX(-50%) rotate(1deg); }
  100% { transform: translateX(-50%) rotate(-1deg); }
}
@keyframes epl-dust {
  0% { transform: translate(0, 0); opacity:0.3; }
  25% { transform: translate(20px, -10px); opacity:0.5; }
  50% { transform: translate(40px, 0); opacity:0.4; }
  75% { transform: translate(60px, -15px); opacity:0.6; }
  100% { transform: translate(80px, 0); opacity:0.3; }
}

.scn-emily-insists {
  background:
    linear-gradient(180deg, #1a1410 0%, #2a2018 30%),
    radial-gradient(ellipse at 50% 0%, #383028 0%, transparent 60%),
    linear-gradient(180deg, #0a0806 0%, #1a1410 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,0.7);
}
.scn-emily-insists .bg-wall {
  position:absolute; inset:0 0 20% 0;
  background: linear-gradient(180deg, #2a221a 0%, #1a140e 100%);
  border-radius: 0 0 10% 10%;
}
.scn-emily-insists .table {
  position:absolute; bottom:20%; left:50%; width:140px; height:12px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e12 100%);
  border-radius: 2px;
  transform: translateX(-50%);
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-emily-insists .candle {
  position:absolute; bottom:35%; left:50%; width:8px; height:40px;
  background: linear-gradient(180deg, #e8d8b0 0%, #c8b088 100%);
  border-radius: 2px 2px 0 0;
  transform: translateX(-50%);
  box-shadow: 0 -4px 12px rgba(255,200,100,0.4);
  animation: ein-candle 6s ease-in-out infinite;
}
.scn-emily-insists .glow {
  position:absolute; bottom:35%; left:50%; width:60px; height:60px;
  background: radial-gradient(circle, rgba(255,200,100,0.3) 0%, transparent 70%);
  transform: translate(-50%, 50%);
  filter: blur(12px);
  animation: ein-glow 4s ease-in-out infinite alternate;
}
.scn-emily-insists .emily {
  position:absolute; bottom:20%; left:35%; width:40px; height:100px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1e140a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform: translateX(-50%);
  animation: ein-emily 5s ease-in-out infinite;
}
.scn-emily-insists .chair {
  position:absolute; bottom:20%; left:35%; width:30px; height:50px;
  background: linear-gradient(180deg, #4a3a28 0%, #2a1e10 100%);
  border-radius: 10% 10% 0 0;
  transform: translateX(-50%) translateY(15px);
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
}
.scn-emily-insists .bookshelf {
  position:absolute; bottom:20%; right:15%; width:40px; height:80px;
  background: linear-gradient(180deg, #3a2a1a 0%, #24180a 100%);
  border-radius: 2px;
  box-shadow: inset 0 0 8px rgba(0,0,0,0.6);
  animation: ein-books 8s ease-in-out infinite;
}
@keyframes ein-candle {
  0% { transform: translateX(-50%) scaleY(1); opacity:0.9; }
  25% { transform: translateX(-50%) scaleY(0.95); opacity:0.85; }
  50% { transform: translateX(-50%) scaleY(1.02); opacity:0.95; }
  75% { transform: translateX(-50%) scaleY(0.97); opacity:0.9; }
  100% { transform: translateX(-50%) scaleY(1); opacity:0.9; }
}
@keyframes ein-glow {
  0% { transform: translate(-50%, 50%) scale(1); opacity:0.4; }
  50% { transform: translate(-50%, 50%) scale(1.1); opacity:0.6; }
  100% { transform: translate(-50%, 50%) scale(0.95); opacity:0.35; }
}
@keyframes ein-emily {
  0% { transform: translateX(-50%) rotate(-1deg) translateY(0); }
  25% { transform: translateX(-48%) rotate(0deg) translateY(-1px); }
  50% { transform: translateX(-50%) rotate(1deg) translateY(0); }
  75% { transform: translateX(-52%) rotate(0deg) translateY(-1px); }
  100% { transform: translateX(-50%) rotate(-1deg) translateY(0); }
}
@keyframes ein-books {
  0% { opacity:0.7; }
  50% { opacity:0.9; }
  100% { opacity:0.7; }
}

.scn-night-silence {
  background:
    linear-gradient(180deg, #0e0e1a 0%, #1a1a30 40%),
    radial-gradient(ellipse at 50% 20%, #2a2a50 0%, transparent 70%),
    linear-gradient(180deg, #060810 0%, #0a0c18 100%);
  box-shadow: inset 0 0 80px rgba(0,0,0,0.8);
}
.scn-night-silence .bg-gallery {
  position:absolute; inset:0 0 25% 0;
  background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1a 100%);
  border-radius: 0 0 10% 10%;
}
.scn-night-silence .floor {
  position:absolute; bottom:0; left:0; right:0; height:25%;
  background: linear-gradient(0deg, #0a0810 0%, #181420 100%);
}
.scn-night-silence .arch-1 {
  position:absolute; top:5%; left:20%; width:120px; height:180px;
  border: 4px solid #2a2840;
  border-radius: 50% 50% 0 0 / 60% 60% 0 0;
  background: transparent;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.6);
  animation: nsi-arch 12s ease-in-out infinite alternate;
}
.scn-night-silence .arch-2 {
  position:absolute; top:5%; right:20%; width:100px; height:160px;
  border: 4px solid #2a2840;
  border-radius: 50% 50% 0 0 / 60% 60% 0 0;
  background: transparent;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.6);
  animation: nsi-arch 12s ease-in-out infinite alternate 2s;
}
.scn-night-silence .window {
  position:absolute; top:10%; left:50%; width:60px; height:90px;
  background: radial-gradient(circle, #d0d8ee 0%, #6070a0 70%);
  border: 4px solid #2a2840;
  border-radius: 3px;
  transform: translateX(-50%);
  box-shadow: 0 0 20px 6px rgba(96,112,160,0.3);
  animation: nsi-moon 8s ease-in-out infinite alternate;
}
.scn-night-silence .moonlight {
  position:absolute; top:10%; left:50%; width:100px; height:300px;
  background: linear-gradient(180deg, rgba(200,210,240,0.15) 0%, transparent 100%);
  transform: translateX(-50%);
  filter: blur(10px);
  animation: nsi-beam 10s ease-in-out infinite alternate;
}
.scn-night-silence .emily-silhouette {
  position:absolute; bottom:25%; left:40%; width:35px; height:90px;
  background: linear-gradient(180deg, #0a0810 0%, #060408 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform: translateX(-50%);
  box-shadow: -2px 0 6px rgba(0,0,0,0.6);
  animation: nsi-emily 6s ease-in-out infinite;
}
.scn-night-silence .shadow {
  position:absolute; bottom:25%; left:35%; right:45%; height:30px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.7) 0%, transparent 70%);
  filter: blur(8px);
  animation: nsi-shadow 6s ease-in-out infinite;
}
@keyframes nsi-arch {
  0% { opacity:0.6; transform: scaleY(1); }
  50% { opacity:0.8; transform: scaleY(0.98); }
  100% { opacity:0.6; transform: scaleY(1); }
}
@keyframes nsi-moon {
  0% { box-shadow: 0 0 15px 4px rgba(96,112,160,0.3); opacity:0.7; }
  50% { box-shadow: 0 0 25px 8px rgba(96,112,160,0.5); opacity:0.9; }
  100% { box-shadow: 0 0 18px 5px rgba(96,112,160,0.35); opacity:0.75; }
}
@keyframes nsi-beam {
  0% { transform: translateX(-50%) rotate(-3deg) scaleY(0.95); opacity:0.2; }
  50% { transform: translateX(-50%) rotate(0deg) scaleY(1); opacity:0.35; }
  100% { transform: translateX(-50%) rotate(3deg) scaleY(0.95); opacity:0.2; }
}
@keyframes nsi-emily {
  0% { transform: translateX(-50%) rotate(2deg) translateY(0); }
  25% { transform: translateX(-48%) rotate(0deg) translateY(-2px); }
  50% { transform: translateX(-50%) rotate(-2deg) translateY(0); }
  75% { transform: translateX(-52%) rotate(0deg) translateY(-1px); }
  100% { transform: translateX(-50%) rotate(2deg) translateY(0); }
}
@keyframes nsi-shadow {
  0% { opacity:0.4; transform: scaleX(1); }
  50% { opacity:0.6; transform: scaleX(0.9); }
  100% { opacity:0.4; transform: scaleX(1); }
}

/* Scene: emilys-character */
.scn-emilys-character {
  background:
    linear-gradient(135deg, #fdf6e3 0%, #fcebbd 50%, #f8d9a0 100%),
    radial-gradient(circle at 70% 20%, #fff8d6 0%, transparent 70%);
}
.scn-emilys-character .wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, transparent 60%, rgba(220,180,120,0.15) 100%);
  animation: emc-wall 12s ease-in-out infinite alternate;
}
.scn-emilys-character .window {
  position: absolute; top: 12%; left: 25%; width: 40%; height: 50%;
  background: linear-gradient(180deg, #fefce0 0%, #fef9c0 100%);
  border-radius: 6px;
  box-shadow: inset 0 0 30px rgba(255,255,200,0.5);
  animation: emc-window 6s ease-in-out infinite alternate;
}
.scn-emilys-character .cradle {
  position: absolute; bottom: 18%; left: 45%; width: 16%; height: 12%;
  background: linear-gradient(180deg, #c9a87c 0%, #a07a55 100%);
  border-radius: 40% 40% 20% 20%;
  transform-origin: bottom center;
  animation: emc-cradle 3s ease-in-out infinite alternate;
}
.scn-emilys-character .father-shadow {
  position: absolute; bottom: 20%; left: 30%; width: 14%; height: 35%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: emc-father 5s ease-in-out infinite;
}
.scn-emilys-character .glow {
  position: absolute; top: 10%; left: 20%; width: 50%; height: 55%;
  background: radial-gradient(circle at 50% 50%, rgba(255,248,200,0.3) 0%, transparent 70%);
  animation: emc-glow 4s ease-in-out infinite alternate;
}
.scn-emilys-character .dust {
  position: absolute; width: 4px; height: 4px;
  background: rgba(255,250,220,0.8);
  border-radius: 50%; filter: blur(1px);
}
.scn-emilys-character .particle-1 { top: 30%; left: 10%; animation: emc-dust-a 20s linear infinite; }
.scn-emilys-character .particle-2 { top: 50%; left: 70%; animation: emc-dust-b 25s linear infinite; animation-delay: -5s; }

@keyframes emc-wall {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.8; }
}
@keyframes emc-window {
  0% { box-shadow: inset 0 0 20px rgba(255,255,200,0.3); }
  50% { box-shadow: inset 0 0 40px rgba(255,255,200,0.7); }
  100% { box-shadow: inset 0 0 20px rgba(255,255,200,0.4); }
}
@keyframes emc-cradle {
  0% { transform: rotate(-2deg); }
  50% { transform: rotate(2deg) translateY(-3px); }
  100% { transform: rotate(-1deg); }
}
@keyframes emc-father {
  0%,100% { transform: translateY(0) scale(1); }
  25% { transform: translateY(-4px) scale(1.02); }
  75% { transform: translateY(-2px) scale(0.98); }
}
@keyframes emc-glow {
  0% { opacity: 0.6; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.1); }
  100% { opacity: 0.7; transform: scale(0.95); }
}
@keyframes emc-dust-a {
  0% { transform: translateY(0) translateX(0); opacity: 0; }
  10% { opacity: 1; }
  90% { opacity: 1; }
  100% { transform: translateY(-80px) translateX(120px); opacity: 0; }
}
@keyframes emc-dust-b {
  0% { transform: translateX(0) translateY(0); opacity: 0; }
  10% { opacity: 0.8; }
  90% { opacity: 0.8; }
  100% { transform: translateX(-100px) translateY(60px); opacity: 0; }
}

/* Scene: st-auberts-teachings */
.scn-st-auberts-teachings {
  background:
    linear-gradient(180deg, #2b1f1a 0%, #1a1410 50%, #0f0b08 100%),
    radial-gradient(ellipse at 50% 0%, #3a2b23 0%, transparent 70%);
}
.scn-st-auberts-teachings .wall {
  position: absolute; inset: 0;
  background: repeating-linear-gradient(0deg, rgba(60,45,35,0.1) 0px, rgba(60,45,35,0.1) 2px, transparent 2px, transparent 8px);
  animation: sat-wall 18s linear infinite;
}
.scn-st-auberts-teachings .desk {
  position: absolute; bottom: 20%; left: 10%; width: 80%; height: 15%;
  background: linear-gradient(180deg, #6a4f3a 0%, #4a3520 100%);
  border-radius: 4px;
  box-shadow: 0 6px 12px rgba(0,0,0,0.7);
}
.scn-st-auberts-teachings .book {
  position: absolute; bottom: 34%; height: 12%;
  border-radius: 2px;
  animation: sat-book 8s ease-in-out infinite;
}
.scn-st-auberts-teachings .book-left {
  left: 20%; width: 10%;
  background: linear-gradient(180deg, #8c5e3a 0%, #6a3f1f 100%);
}
.scn-st-auberts-teachings .book-right {
  left: 45%; width: 8%;
  background: linear-gradient(180deg, #5e4a3a 0%, #3a2815 100%);
  animation-delay: -3s;
}
.scn-st-auberts-teachings .candle {
  position: absolute; bottom: 37%; left: 35%; width: 3%; height: 18%;
  background: linear-gradient(180deg, #f5e8c0 0%, #d4b87a 60%, #8a6a30 100%);
  border-radius: 4px;
  box-shadow: 0 0 20px 8px rgba(255,200,100,0.4);
  animation: sat-candle 3s ease-in-out infinite alternate;
}
.scn-st-auberts-teachings .figure-teacher {
  position: absolute; bottom: 20%; left: 50%; width: 16%; height: 30%;
  background: linear-gradient(180deg, #1a1410 0%, #0f0b08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: sat-figure 11s ease-in-out infinite;
}
.scn-st-auberts-teachings .chair {
  position: absolute; bottom: 0%; left: 46%; width: 24%; height: 20%;
  background: linear-gradient(180deg, #4a3520 0%, #2a1a10 100%);
  border-radius: 20% 20% 10% 10%;
  transform: translateX(-50%);
}
@keyframes sat-wall {
  0% { background-position: 0 0; }
  100% { background-position: 0 20px; }
}
@keyframes sat-book {
  0%,100% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-2px) rotate(2deg); }
  75% { transform: translateY(-1px) rotate(-1deg); }
}
@keyframes sat-candle {
  0% { opacity: 0.8; box-shadow: 0 0 15px 5px rgba(255,200,100,0.3); }
  50% { opacity: 1; box-shadow: 0 0 30px 12px rgba(255,220,120,0.6); }
  100% { opacity: 0.9; box-shadow: 0 0 20px 8px rgba(255,200,100,0.4); }
}
@keyframes sat-figure {
  0%,100% { transform: translateX(-50%) rotate(0deg); }
  50% { transform: translateX(-50%) translateY(-3px) rotate(2deg); }
}

/* Scene: emilys-resemblance */
.scn-emilys-resemblance {
  background:
    linear-gradient(135deg, #fdf4e3 0%, #fceace 50%, #f7dbb5 100%),
    radial-gradient(circle at 30% 40%, #fff4e0 0%, transparent 70%);
}
.scn-emilys-resemblance .wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, transparent 50%, rgba(200,170,140,0.1) 100%);
}
.scn-emilys-resemblance .mirror.frame {
  position: absolute; top: 15%; left: 20%; width: 30%; height: 45%;
  background: linear-gradient(135deg, #c9a87c, #a07a55);
  border-radius: 6px;
  box-shadow: 0 8px 20px rgba(0,0,0,0.3), inset 0 0 0 6px #b8986a;
}
.scn-emilys-resemblance .mirror.glass {
  position: absolute; top: 18%; left: 22%; width: 26%; height: 39%;
  background: linear-gradient(180deg, #e8e0d0 0%, #d8d0c0 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(200,180,160,0.4);
  animation: emr-shimmer 5s ease-in-out infinite alternate;
}
.scn-emilys-resemblance .figure-young {
  position: absolute; bottom: 22%; left: 32%; width: 8%; height: 20%;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a10 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-5deg);
  animation: emr-turn 6s ease-in-out infinite;
}
.scn-emilys-resemblance .figure-mother-ghost {
  position: absolute; bottom: 20%; left: 28%; width: 9%; height: 22%;
  background: linear-gradient(180deg, rgba(180,160,140,0.3) 0%, rgba(140,120,100,0.1) 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  filter: blur(2px);
  animation: emr-ghost 12s ease-in-out infinite alternate;
}
.scn-emilys-resemblance .light-beam {
  position: absolute; top: 0; left: 35%; width: 8%; height: 100%;
  background: linear-gradient(180deg, rgba(255,250,230,0.4) 0%, transparent 80%);
  transform: skewX(-10deg);
  animation: emr-light 8s ease-in-out infinite alternate;
}
.scn-emilys-resemblance .flowers {
  position: absolute; bottom: 10%; left: 15%; width: 6%; height: 12%;
  background: radial-gradient(circle at 50% 30%, #e8b0a0 0%, #c08070 60%, transparent 100%);
  border-radius: 50%;
  animation: emr-flowers 7s ease-in-out infinite;
}
@keyframes emr-shimmer {
  0% { opacity: 0.7; }
  50% { opacity: 1; box-shadow: inset 0 0 50px rgba(255,255,200,0.3); }
  100% { opacity: 0.8; }
}
@keyframes emr-turn {
  0%,100% { transform: rotate(-5deg); }
  50% { transform: rotate(2deg) translateY(-4px); }
}
@keyframes emr-ghost {
  0% { opacity: 0.2; transform: scale(0.95); }
  50% { opacity: 0.6; transform: scale(1.05); }
  100% { opacity: 0.3; transform: scale(1); }
}
@keyframes emr-light {
  0% { opacity: 0.2; transform: skewX(-10deg) translateX(0); }
  50% { opacity: 0.5; transform: skewX(-5deg) translateX(10px); }
  100% { opacity: 0.3; transform: skewX(-10deg) translateX(0); }
}
@keyframes emr-flowers {
  0%,100% { transform: scale(1) rotate(0deg); }
  50% { transform: scale(1.1) rotate(5deg); }
}

/* Scene: education-mind */
.scn-education-mind {
  background:
    linear-gradient(135deg, #f0f4e8 0%, #e8e1ce 50%, #d8d4c0 100%),
    radial-gradient(circle at 50% 50%, #fff8e7 0%, transparent 70%);
}
.scn-education-mind .wall {
  position: absolute; inset: 0;
  background: repeating-linear-gradient(90deg, rgba(180,170,150,0.05) 0px, rgba(180,170,150,0.05) 1px, transparent 1px, transparent 30px);
}
.scn-education-mind .bookshelf {
  position: absolute; top: 5%; width: 8%; height: 70%;
  background: repeating-linear-gradient(180deg, #8a7a5a 0px, #8a7a5a 6px, #6a5a3a 6px, #6a5a3a 8px, #9a8a6a 8px, #9a8a6a 14px, #5a4a2a 14px, #5a4a2a 16px);
  border-radius: 2px;
  box-shadow: 2px 0 6px rgba(0,0,0,0.2);
}
.scn-education-mind .left-shelf { left: 5%; animation: edm-shelf 22s linear infinite; }
.scn-education-mind .right-shelf { right: 5%; animation: edm-shelf 25s linear infinite; animation-delay: -5s; }
.scn-education-mind .desk {
  position: absolute; bottom: 15%; left: 30%; width: 40%; height: 12%;
  background: linear-gradient(180deg, #a09070 0%, #807050 100%);
  border-radius: 4px;
  box-shadow: 0 6px 12px rgba(0,0,0,0.3);
}
.scn-education-mind .figure-teacher {
  position: absolute; bottom: 15%; left: 38%; width: 12%; height: 25%;
  background: linear-gradient(180deg, #3a3020 0%, #1a1008 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: edm-figure 10s ease-in-out infinite;
}
.scn-education-mind .globe {
  position: absolute; bottom: 26%; left: 58%; width: 8%; height: 10%;
  background: radial-gradient(circle, #5a8a6a 0%, #3a6a4a 30%, #8a7a5a 60%, #5a6a4a 100%);
  border-radius: 50%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: edm-globe 8s linear infinite;
}
.scn-education-mind .light {
  position: absolute; top: 0; left: 30%; width: 40%; height: 20%;
  background: radial-gradient(ellipse at 50% 0%, rgba(255,250,230,0.5) 0%, transparent 100%);
  animation: edm-light 5s ease-in-out infinite alternate;
}
.scn-education-mind .shadow-desk {
  position: absolute; bottom: 10%; left: 28%; width: 44%; height: 6%;
  background: linear-gradient(180deg, rgba(0,0,0,0.2) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(4px);
  animation: edm-shadow 6s ease-in-out infinite alternate;
}
@keyframes edm-shelf {
  0% { opacity: 0.7; }
  50% { opacity: 1; transform: scaleY(1.02); }
  100% { opacity: 0.8; transform: scaleY(0.98); }
}
@keyframes edm-figure {
  0%,100% { transform: rotate(0deg); }
  50% { transform: rotate(-3deg) translateY(-2px); }
}
@keyframes edm-globe {
  0% { transform: rotate(0deg); }
  100% { transform: rotate(360deg); }
}
@keyframes edm-light {
  0% { opacity: 0.5; transform: scale(0.95); }
  50% { opacity: 0.8; transform: scale(1.05); }
  100% { opacity: 0.6; transform: scale(1); }
}
@keyframes edm-shadow {
  0% { transform: scaleX(1); }
  50% { transform: scaleX(1.1) translateY(2px); }
  100% { transform: scaleX(0.95); }
}

.scn-storm-and-omen {
  background: 
    linear-gradient(180deg, #1a1a3e 0%, #2a2a5e 40%, #0a0a1e 100%),
    radial-gradient(ellipse at 50% 100%, #3a2a5e 0%, transparent 70%);
}
.scn-storm-and-omen .sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #1a1a3e 0%, #0a0a2e 100%);
  animation: st1-sky 15s ease-in-out infinite alternate;
}
.scn-storm-and-omen .lightning-a {
  position: absolute; top: 8%; left: 20%; width: 3px; height: 80px;
  background: linear-gradient(180deg, #ffffff 0%, #aaccff 50%, transparent 100%);
  border-radius: 2px;
  animation: st1-flasha 4s ease-in-out infinite;
}
.scn-storm-and-omen .lightning-b {
  position: absolute; top: 5%; right: 30%; width: 2px; height: 60px;
  background: linear-gradient(180deg, #ffffff 0%, #8899ff 60%, transparent 100%);
  border-radius: 1px;
  animation: st1-flashb 6s ease-in-out infinite 2s;
}
.scn-storm-and-omen .rampart {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%);
  border-radius: 20% 20% 0 0 / 50% 50% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,.5);
}
.scn-storm-and-omen .casement {
  position: absolute; bottom: 30%; left: 40%; width: 60px; height: 80px;
  background: linear-gradient(180deg, #3a2a2e 0%, #1a1a1e 100%);
  border-radius: 4px 4px 8px 8px;
  box-shadow: inset 0 0 10px rgba(0,0,0,.6), 0 4px 8px rgba(0,0,0,.4);
}
.scn-storm-and-omen .flame {
  position: absolute; bottom: 32%; left: 38%; width: 12px; height: 20px;
  background: radial-gradient(ellipse at 50% 30%, #ffaa40 0%, #ff6600 50%, transparent 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 40px 15px rgba(255,160,60,.6);
  animation: st1-flame 2s ease-in-out infinite alternate;
}
.scn-storm-and-omen .shadow-figure {
  position: absolute; bottom: 23%; left: 50%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #0a0a0e 0%, #050508 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: st1-figure 8s ease-in-out infinite;
}
.scn-storm-and-omen .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%);
  border-radius: 10% 10% 0 0 / 30% 30% 0 0;
}
@keyframes st1-sky { 0%{opacity:.7} 50%{opacity:1} 100%{opacity:.8} }
@keyframes st1-flasha { 0%,100%{opacity:0;transform:scaleY(0.8)} 10%{opacity:1;transform:scaleY(1)} 20%{opacity:0;transform:scaleY(0.9)} 30%{opacity:0.5;transform:scaleY(1.1)} 40%{opacity:0} }
@keyframes st1-flashb { 0%,100%{opacity:0} 15%{opacity:1} 25%{opacity:0} 35%{opacity:0.6} 50%{opacity:0} }
@keyframes st1-flame { 0%{transform:scaleY(1) translateY(0);opacity:.8} 50%{transform:scaleY(1.2) translateY(-5px);opacity:1} 100%{transform:scaleY(0.9) translateY(2px);opacity:.7} }
@keyframes st1-figure { 0%{transform:translateX(-50%) translateY(0);opacity:.6} 25%{transform:translateX(-48%) translateY(-3px);opacity:1} 50%{transform:translateX(-50%) translateY(0);opacity:.8} 75%{transform:translateX(-52%) translateY(-2px);opacity:1} 100%{transform:translateX(-50%) translateY(0);opacity:.6} }

.scn-rational-explanation {
  background: 
    linear-gradient(180deg, #1a1a3e 0%, #2a2a5e 50%, #1a1a3e 100%),
    radial-gradient(ellipse at 30% 80%, #3a3a6e 0%, transparent 60%);
}
.scn-rational-explanation .sky {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #1a1a3e 0%, #2a2a5e 100%);
  animation: ra2-sky 20s ease-in-out infinite alternate;
}
.scn-rational-explanation .lightning-calm {
  position: absolute; top: 10%; right: 30%; width: 2px; height: 50px;
  background: linear-gradient(180deg, #ccddff 0%, #7788cc 70%, transparent 100%);
  border-radius: 1px;
  animation: ra2-lightning 8s ease-in-out infinite;
}
.scn-rational-explanation .ground-path {
  position: absolute; bottom: 15%; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%);
  border-radius: 40% 60% 0 0 / 60% 80% 0 0;
}
.scn-rational-explanation .castle-wall {
  position: absolute; bottom: 10%; left: 20%; width: 120px; height: 80px;
  background: linear-gradient(180deg, #3a3a4e 0%, #2a2a3e 100%);
  border-radius: 6px 6px 0 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,.4);
}
.scn-rational-explanation .soldier {
  position: absolute; bottom: 18%; left: 30%; width: 16px; height: 40px;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform: rotate(2deg);
  animation: ra2-soldier 6s ease-in-out infinite alternate;
}
.scn-rational-explanation .torch {
  position: absolute; bottom: 22%; left: 28%; width: 8px; height: 14px;
  background: linear-gradient(180deg, #8a6a4a 0%, #4a3a2a 100%);
  border-radius: 2px;
  transform: rotate(-10deg);
}
.scn-rational-explanation .torch-light {
  position: absolute; bottom: 24%; left: 26%; width: 20px; height: 30px;
  background: radial-gradient(ellipse at 50% 70%, #ffcc66 0%, #ff9922 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 60px 30px rgba(255,200,100,.5);
  animation: ra2-torchglow 3s ease-in-out infinite alternate;
}
@keyframes ra2-sky { 0%{opacity:.8} 50%{opacity:1} 100%{opacity:.9} }
@keyframes ra2-lightning { 0%,100%{opacity:0} 20%{opacity:0.6} 30%{opacity:0} 50%{opacity:0.3} 70%{opacity:0} }
@keyframes ra2-soldier { 0%{transform:rotate(2deg) translateY(0)} 50%{transform:rotate(-1deg) translateY(-2px)} 100%{transform:rotate(2deg) translateY(0)} }
@keyframes ra2-torchglow { 0%{opacity:.6;transform:scale(0.9)} 50%{opacity:1;transform:scale(1.1)} 100%{opacity:.7;transform:scale(1)} }

.scn-storm-and-death {
  background: 
    linear-gradient(180deg, #0a0a1a 0%, #1a1a2e 40%, #2a2a3e 100%),
    radial-gradient(ellipse at 50% 0%, #1a1a3e 0%, transparent 80%);
}
.scn-storm-and-death .room-interior {
  position: absolute; inset: 0 0 0 0;
  background: linear-gradient(180deg, #1a1a1e 0%, #0e0e12 100%);
  opacity: .9;
  animation: st3-room 15s ease-in-out infinite alternate;
}
.scn-storm-and-death .window-frame {
  position: absolute; bottom: 20%; left: 30%; width: 80px; height: 100px;
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 15px rgba(0,0,0,.7), 0 0 10px rgba(0,0,0,.5);
}
.scn-storm-and-death .sky-outside {
  position: absolute; bottom: 20%; left: 30%; width: 80px; height: 100px;
  background: linear-gradient(180deg, #1a1a3e 0%, #0a0a1e 70%);
  border-radius: 4px;
  overflow: hidden;
}
.scn-storm-and-death .lightning-vivid-a {
  position: absolute; top: 5%; left: 35%; width: 4px; height: 90px;
  background: linear-gradient(180deg, #ffffff 0%, #8899ff 40%, transparent 100%);
  border-radius: 2px;
  animation: st3-flasha 3s ease-in-out infinite;
}
.scn-storm-and-death .lightning-vivid-b {
  position: absolute; top: 2%; right: 35%; width: 3px; height: 70px;
  background: linear-gradient(180deg, #ffffff 0%, #4455cc 60%, transparent 80%);
  border-radius: 1px;
  animation: st3-flashb 5s ease-in-out infinite 1.5s;
}
.scn-storm-and-death .landscape-hills {
  position: absolute; bottom: 20%; left: 30%; width: 80px; height: 40px;
  background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%);
  border-radius: 30% 70% 0 0 / 60% 80% 0 0;
  opacity: .5;
}
.scn-storm-and-death .ominous-shadow {
  position: absolute; bottom: 22%; left: 32%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #0a0a0a 0%, #000000 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  opacity: .3;
  animation: st3-shadow 8s ease-in-out infinite;
}
.scn-storm-and-death .floor-shadow {
  position: absolute; bottom: 18%; left: 28%; width: 100px; height: 10px;
  background: linear-gradient(90deg, transparent 0%, #0a0a0a 30%, #1a1a1a 70%, transparent 100%);
  border-radius: 50%;
  filter: blur(4px);
}
@keyframes st3-room { 0%{opacity:.85} 50%{opacity:.95} 100%{opacity:.8} }
@keyframes st3-flasha { 0%,100%{opacity:0} 10%{opacity:1;transform:scaleY(1.1)} 15%{opacity:0;transform:scaleY(0.9)} 25%{opacity:0.5} 30%{opacity:0} 40%{opacity:0.8} 45%{opacity:0} }
@keyframes st3-flashb { 0%,100%{opacity:0} 20%{opacity:0.7} 25%{opacity:0} 35%{opacity:0.4} 40%{opacity:0} }
@keyframes st3-shadow { 0%{transform:translateY(0) scaleY(1);opacity:.3} 50%{transform:translateY(-5px) scaleY(1.1);opacity:.5} 100%{transform:translateY(0) scaleY(1);opacity:.3} }

.scn-funeral-preparations {
  background: 
    linear-gradient(180deg, #1a1015 0%, #2a1a20 40%, #1a1015 100%),
    radial-gradient(ellipse at 50% 80%, #2a1a20 0%, transparent 70%);
}
.scn-funeral-preparations .wall-left {
  position: absolute; top: 0; bottom: 20%; left: 0; width: 30%;
  background: linear-gradient(90deg, #1a1015 0%, #2a1a20 100%);
  box-shadow: inset -10px 0 20px rgba(0,0,0,.5);
}
.scn-funeral-preparations .wall-right {
  position: absolute; top: 0; bottom: 20%; right: 0; width: 30%;
  background: linear-gradient(90deg, #2a1a20 0%, #1a1015 100%);
  box-shadow: inset 10px 0 20px rgba(0,0,0,.5);
}
.scn-funeral-preparations .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #2a1a20 0%, #150a10 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
}
.scn-funeral-preparations .candle {
  position: absolute; bottom: 25%; left: 50%; width: 8px; height: 30px;
  background: linear-gradient(180deg, #a08060 0%, #6a5040 100%);
  border-radius: 2px 2px 4px 4px;
  transform: translateX(-50%);
}
.scn-funeral-preparations .candle-glow {
  position: absolute; bottom: 28%; left: 50%; width: 30px; height: 40px;
  background: radial-gradient(ellipse at 50% 30%, #ffdd88 0%, #ffaa44 30%, #cc6622 60%, transparent 100%);
  border-radius: 50%;
  transform: translateX(-50%);
  box-shadow: 0 0 80px 40px rgba(255,180,80,.4);
  animation: fu4-candle 4s ease-in-out infinite alternate;
}
.scn-funeral-preparations .table-altar {
  position: absolute; bottom: 20%; left: 40%; right: 40%; height: 8px;
  background: linear-gradient(180deg, #3a2a20 0%, #2a1a15 100%);
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,.6);
}
.scn-funeral-preparations .shroud {
  position: absolute; bottom: 22%; left: 45%; right: 45%; height: 20px;
  background: radial-gradient(ellipse at 50% 0%, #5a4a40 0%, #3a2a20 100%);
  border-radius: 50% 50% 20% 20% / 100% 100% 30% 30%;
  opacity: .7;
  animation: fu4-shroud 6s ease-in-out infinite alternate;
}
.scn-funeral-preparations .figure-kneeling {
  position: absolute; bottom: 18%; left: 48%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #1a1015 0%, #0a0508 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform: skewX(-5deg);
  animation: fu4-kneel 8s ease-in-out infinite;
}
@keyframes fu4-candle { 0%{transform:translateX(-50%) scaleY(1);opacity:.7} 50%{transform:translateX(-50%) scaleY(1.2);opacity:1} 100%{transform:translateX(-50%) scaleY(0.9);opacity:.6} }
@keyframes fu4-shroud { 0%{transform:scaleY(1);opacity:.6} 50%{transform:scaleY(1.05);opacity:.8} 100%{transform:scaleY(1);opacity:.6} }
@keyframes fu4-kneel { 0%{transform:skewX(-5deg) translateY(0)} 50%{transform:skewX(-3deg) translateY(-3px)} 100%{transform:skewX(-5deg) translateY(0)} }

/* pisa-arrival */
.scn-pisa-arrival {
  background: linear-gradient(180deg, #0b1128 0%, #1a2744 50%, #2a3854 100%),
              radial-gradient(ellipse at 70% 20%, #3a4a6a 0%, transparent 60%);
}
.scn-pisa-arrival .pa-sky {
  position:absolute; inset:0; background: linear-gradient(180deg, #0b1128 0%, #1a2744 100%);
  animation: pa-sky 14s ease-in-out infinite alternate;
}
.scn-pisa-arrival .pa-moon {
  position:absolute; top:10%; left:70%; width:40px; height:40px;
  background: radial-gradient(circle, #e0e8f0 0%, #b0c0d0 70%, transparent 100%);
  border-radius:50%; box-shadow: 0 0 30px 10px rgba(176,192,208,0.5);
  animation: pa-moon 8s ease-in-out infinite alternate;
}
.scn-pisa-arrival .pa-river {
  position:absolute; bottom:20%; left:0; right:0; height:15%;
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 100%);
  border-radius: 50% 50% 0 0; animation: pa-river 6s ease-in-out infinite;
}
.scn-pisa-arrival .pa-ship-hull {
  position:absolute; bottom:22%; left:30%; width:40px; height:15px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 0 30% 40% 40%; animation: pa-ship 4s ease-in-out infinite;
}
.scn-pisa-arrival .pa-ship-sail {
  position:absolute; bottom:30%; left:28%; width:10px; height:25px;
  background: linear-gradient(180deg, #c0c8d0 0%, #a0a8b0 100%);
  border-radius: 40% 40% 10% 10%; transform-origin: bottom;
  animation: pa-sail 5s ease-in-out infinite;
}
.scn-pisa-arrival .pa-town {
  position:absolute; bottom:25%; right:5%; width:100px; height:40px;
  background: linear-gradient(180deg, #1a2228 0%, #0a1014 100%);
  border-radius: 5% 5% 0 0; clip-path: polygon(0% 100%, 10% 30%, 20% 50%, 30% 20%, 40% 60%, 50% 10%, 60% 40%, 70% 25%, 80% 55%, 90% 15%, 100% 100%);
  animation: pa-town 20s ease-in-out infinite alternate;
}
.scn-pisa-arrival .pa-hills {
  position:absolute; bottom:18%; left:0; right:0; height:20%;
  background: linear-gradient(180deg, #1a2a2a 0%, #0a1a1a 100%);
  border-radius: 40% 60% 0 0; animation: pa-hills 12s ease-in-out infinite;
}
@keyframes pa-sky { 0% { opacity:0.6 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes pa-moon { 0% { transform: translate(-2px, -2px) scale(0.95); box-shadow: 0 0 25px 8px rgba(176,192,208,0.4); } 50% { transform: translate(2px, 2px) scale(1.05); box-shadow: 0 0 35px 15px rgba(176,192,208,0.6); } 100% { transform: translate(-1px, -1px) scale(0.98); box-shadow: 0 0 28px 10px rgba(176,192,208,0.45); } }
@keyframes pa-river { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(3px) scaleY(0.95) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes pa-ship { 0% { transform: translate(0, 0) rotate(-2deg) } 50% { transform: translate(4px, -2px) rotate(2deg) } 100% { transform: translate(0, 0) rotate(-1deg) } }
@keyframes pa-sail { 0% { transform: scaleY(0.9) rotate(-3deg) } 50% { transform: scaleY(1.1) rotate(3deg) } 100% { transform: scaleY(0.95) rotate(-2deg) } }
@keyframes pa-town { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes pa-hills { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }

/* leghorn-arrival */
.scn-leghorn-arrival {
  background: linear-gradient(180deg, #87CEEB 0%, #b0d4f1 30%, #f0e8c8 100%),
              radial-gradient(ellipse at 50% 100%, #e0d0a0 0%, transparent 70%);
}
.scn-leghorn-arrival .la-sky {
  position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #87CEEB 0%, #b0d4f1 100%);
  animation: la-sky 10s ease-in-out infinite alternate;
}
.scn-leghorn-arrival .la-sun {
  position:absolute; top:15%; right:25%; width:50px; height:50px;
  background: radial-gradient(circle, #ffe080 0%, #ffd060 60%, transparent 100%);
  border-radius:50%; box-shadow: 0 0 40px 20px rgba(255,208,96,0.5);
  animation: la-sun 6s ease-in-out infinite alternate;
}
.scn-leghorn-arrival .la-hills-1 {
  position:absolute; bottom:20%; left:0; width:60%; height:25%;
  background: linear-gradient(180deg, #6a8a4a 0%, #4a6a2a 100%);
  border-radius: 40% 60% 0 0; animation: la-hills 18s ease-in-out infinite;
}
.scn-leghorn-arrival .la-hills-2 {
  position:absolute; bottom:18%; right:0; width:50%; height:30%;
  background: linear-gradient(180deg, #5a7a3a 0%, #3a5a1a 100%);
  border-radius: 60% 40% 0 0; animation: la-hills 22s ease-in-out infinite reverse;
}
.scn-leghorn-arrival .la-bay {
  position:absolute; bottom:10%; left:0; right:0; height:25%;
  background: linear-gradient(180deg, #4a7a9a 0%, #2a5a7a 100%);
  border-radius: 50% 50% 0 0; animation: la-bay 5s ease-in-out infinite;
}
.scn-leghorn-arrival .la-ship-large {
  position:absolute; bottom:20%; left:10%; width:60px; height:25px;
  background: linear-gradient(180deg, #5a3a1a 0%, #2a1a0a 100%);
  border-radius: 0 20% 30% 30%; animation: la-ship-l 4s ease-in-out infinite;
}
.scn-leghorn-arrival .la-ship-large::after {
  content:''; position:absolute; top:-20px; left:15px; width:15px; height:30px;
  background: linear-gradient(180deg, #f0f0e0 0%, #d0d0c0 100%);
  border-radius: 40% 40% 10% 10%; animation: la-sail 5s ease-in-out infinite;
}
.scn-leghorn-arrival .la-ship-small {
  position:absolute; bottom:24%; right:15%; width:30px; height:12px;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%);
  border-radius: 0 20% 30% 30%; animation: la-ship-s 6s ease-in-out infinite;
}
.scn-leghorn-arrival .la-cloud {
  position:absolute; top:10%; left:5%; width:80px; height:20px;
  background: linear-gradient(180deg, rgba(255,255,255,0.7) 0%, rgba(255,255,255,0.2) 100%);
  border-radius:50%; filter: blur(8px); animation: la-cloud 30s linear infinite;
}
@keyframes la-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes la-sun { 0% { transform: scale(0.9); box-shadow: 0 0 30px 15px rgba(255,208,96,0.4); } 50% { transform: scale(1.05); box-shadow: 0 0 50px 25px rgba(255,208,96,0.6); } 100% { transform: scale(0.95); box-shadow: 0 0 35px 18px rgba(255,208,96,0.45); } }
@keyframes la-hills { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes la-bay { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(2px) scaleY(0.95) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes la-ship-l { 0% { transform: translate(0,0) rotate(-1deg) } 50% { transform: translate(3px,-1px) rotate(1deg) } 100% { transform: translate(0,0) rotate(0) } }
@keyframes la-sail { 0% { transform: scaleY(0.9) rotate(-2deg) } 50% { transform: scaleY(1.1) rotate(2deg) } 100% { transform: scaleY(0.95) rotate(-1deg) } }
@keyframes la-ship-s { 0% { transform: translate(0,0) rotate(-2deg) } 50% { transform: translate(-2px,1px) rotate(2deg) } 100% { transform: translate(0,0) rotate(-1deg) } }
@keyframes la-cloud { 0% { transform: translateX(-40px) } 100% { transform: translateX(120vw) } }

/* passage-engaged */
.scn-passage-engaged {
  background: linear-gradient(180deg, #b0e0f0 0%, #d0e8f0 40%, #f0e0b0 100%),
              radial-gradient(ellipse at 60% 100%, #e0c890 0%, transparent 60%);
}
.scn-passage-engaged .pe-sky {
  position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #b0e0f0 0%, #d0e8f0 100%);
  animation: pe-sky 12s ease-in-out infinite alternate;
}
.scn-passage-engaged .pe-sun {
  position:absolute; top:20%; left:70%; width:50px; height:50px;
  background: radial-gradient(circle, #ffe8a0 0%, #ffc860 60%, transparent 100%);
  border-radius:50%; box-shadow: 0 0 40px 20px rgba(255,200,96,0.4);
  animation: pe-sun 6s ease-in-out infinite alternate;
}
.scn-passage-engaged .pe-water {
  position:absolute; bottom:10%; left:0; right:0; height:25%;
  background: linear-gradient(180deg, #4a7a9a 0%, #2a5a7a 100%);
  border-radius: 50% 50% 0 0; animation: pe-water 6s ease-in-out infinite;
}
.scn-passage-engaged .pe-ship-hull {
  position:absolute; bottom:22%; left:40%; width:50px; height:20px;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 0 20% 30% 30%; animation: pe-ship-hull 5s ease-in-out infinite;
}
.scn-passage-engaged .pe-ship-sail {
  position:absolute; bottom:30%; left:38%; width:12px; height:30px;
  background: linear-gradient(180deg, #f0e8d0 0%, #d0c8b0 100%);
  border-radius: 40% 40% 10% 10%; transform-origin: bottom;
  animation: pe-sail 5s ease-in-out infinite;
}
.scn-passage-engaged .pe-dock {
  position:absolute; bottom:20%; left:10%; width:80px; height:10px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 0 0; animation: pe-dock 8s ease-in-out infinite alternate;
}
.scn-passage-engaged .pe-figure {
  position:absolute; bottom:22%; left:20%; width:12px; height:22px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 30% 30%; transform-origin: bottom;
  animation: pe-figure 3s ease-in-out infinite;
}
.scn-passage-engaged .pe-cloud {
  position:absolute; top:5%; right:10%; width:90px; height:18px;
  background: linear-gradient(180deg, rgba(255,255,255,0.6) 0%, rgba(255,255,255,0.1) 100%);
  border-radius:50%; filter: blur(6px); animation: pe-cloud 40s linear infinite reverse;
}
@keyframes pe-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.85 } }
@keyframes pe-sun { 0% { transform: scale(0.9); box-shadow: 0 0 30px 15px rgba(255,200,96,0.3); } 50% { transform: scale(1.05); box-shadow: 0 0 50px 25px rgba(255,200,96,0.5); } 100% { transform: scale(0.95); box-shadow: 0 0 35px 18px rgba(255,200,96,0.35); } }
@keyframes pe-water { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(2px) scaleY(0.95) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes pe-ship-hull { 0% { transform: translate(0,0) rotate(-1deg) } 50% { transform: translate(2px,-1px) rotate(1deg) } 100% { transform: translate(0,0) rotate(0) } }
@keyframes pe-sail { 0% { transform: scaleY(0.9) rotate(-2deg) } 50% { transform: scaleY(1.1) rotate(2deg) } 100% { transform: scaleY(0.95) rotate(-1deg) } }
@keyframes pe-dock { 0% { transform: translateY(0) } 50% { transform: translateY(-1px) } 100% { transform: translateY(0) } }
@keyframes pe-figure { 0% { transform: translate(0,0) rotate(-3deg) } 25% { transform: translate(2px,-1px) rotate(0deg) } 75% { transform: translate(4px,0) rotate(2deg) } 100% { transform: translate(0,0) rotate(-1deg) } }
@keyframes pe-cloud { 0% { transform: translateX(0) } 100% { transform: translateX(-120vw) } }

/* stanzas-on-parting */
.scn-stanzas-on-parting {
  background: linear-gradient(180deg, #b0e0f0 0%, #d0e8f0 40%, #f0e8c0 100%),
              radial-gradient(ellipse at 50% 100%, #e0d0a0 0%, transparent 60%);
}
.scn-stanzas-on-parting .sp-sky {
  position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #b0e0f0 0%, #d0e8f0 100%);
  animation: sp-sky 14s ease-in-out infinite alternate;
}
.scn-stanzas-on-parting .sp-water {
  position:absolute; bottom:8%; left:0; right:0; height:25%;
  background: linear-gradient(180deg, #4a7a9a 0%, #2a5a7a 100%);
  border-radius: 50% 50% 0 0; animation: sp-water 5s ease-in-out infinite;
}
.scn-stanzas-on-parting .sp-ship-hull {
  position:absolute; bottom:20%; left:35%; width:55px; height:22px;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  border-radius: 0 15% 25% 25%; animation: sp-hull 4s ease-in-out infinite;
}
.scn-stanzas-on-parting .sp-sail-main {
  position:absolute; bottom:30%; left:32%; width:14px; height:35px;
  background: linear-gradient(180deg, #f5f0e0 0%, #d0c8b0 100%);
  border-radius: 40% 40% 10% 10%; transform-origin: bottom;
  animation: sp-sail-main 5s ease-in-out infinite;
}
.scn-stanzas-on-parting .sp-sail-aft {
  position:absolute; bottom:28%; left:42%; width:10px; height:28px;
  background: linear-gradient(180deg, #f0e8d0 0%, #c8c0a8 100%);
  border-radius: 40% 40% 10% 10%; transform-origin: bottom;
  animation: sp-sail-aft 6s ease-in-out infinite;
}
.scn-stanzas-on-parting .sp-anchor {
  position:absolute; bottom:18%; left:45%; width:8px; height:16px;
  background: linear-gradient(180deg, #8a7a5a 0%, #5a4a2a 100%);
  border-radius: 50% 50% 0 0; clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%);
  animation: sp-anchor 8s ease-in-out infinite alternate;
}
.scn-stanzas-on-parting .sp-flag {
  position:absolute; bottom:30%; left:48%; width:12px; height:8px;
  background: linear-gradient(135deg, #b87878 0%, #a06666 100%);
  clip-path: polygon(0% 0%, 100% 50%, 0% 100%);
  animation: sp-flag 2s ease-in-out infinite alternate;
}
.scn-stanzas-on-parting .sp-sailor {
  position:absolute; bottom:20%; left:38%; width:10px; height:20px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 30% 30%; transform-origin: bottom;
  animation: sp-sailor 3s ease-in-out infinite;
}
@keyframes sp-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes sp-water { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(2px) scaleY(0.95) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes sp-hull { 0% { transform: translate(0,0) rotate(-1deg) } 50% { transform: translate(3px,-1px) rotate(1deg) } 100% { transform: translate(0,0) rotate(0) } }
@keyframes sp-sail-main { 0% { transform: scaleY(0.9) rotate(-2deg) } 50% { transform: scaleY(1.15) rotate(2deg) } 100% { transform: scaleY(0.95) rotate(-1deg) } }
@keyframes sp-sail-aft { 0% { transform: scaleY(0.85) rotate(-3deg) } 50% { transform: scaleY(1.1) rotate(1deg) } 100% { transform: scaleY(0.9) rotate(-2deg) } }
@keyframes sp-anchor { 0% { transform: translateY(0) } 50% { transform: translateY(2px) } 100% { transform: translateY(0) } }
@keyframes sp-flag { 0% { transform: scaleX(0.9) translateX(0) } 50% { transform: scaleX(1.1) translateX(3px) } 100% { transform: scaleX(0.95) translateX(1px) } }
@keyframes sp-sailor { 0% { transform: translate(0,0) rotate(-2deg) } 25% { transform: translate(2px,-1px) rotate(0deg) } 75% { transform: translate(4px,0) rotate(2deg) } 100% { transform: translate(0,0) rotate(-1deg) } }

/* fortress-gate-opened */
.scn-fortress-gate-opened {
  background: linear-gradient(180deg, #1a1a3e 0%, #2c2244 40%, #3a2a5a 100%),
              radial-gradient(ellipse at 50% -20%, #667 0%, transparent 70%);
}
.scn-fortress-gate-opened .sky { position:absolute; inset:0 0 50% 0; background:linear-gradient(180deg, #25255a 0%, transparent 100%); animation:fgo-sky 15s ease-in-out infinite alternate; }
.scn-fortress-gate-opened .moon { position:absolute; top:8%; left:70%; width:40px; height:40px; background:radial-gradient(circle, #d0d0ff 0%, #a0a0e0 40%, transparent 70%); border-radius:50%; box-shadow:0 0 60px 20px rgba(160,160,224,0.4); animation:fgo-moon 4s ease-in-out infinite alternate; }
.scn-fortress-gate-opened .gate-l { position:absolute; bottom:20%; left:35%; width:30px; height:100px; background:linear-gradient(90deg, #3a3a2a 0%, #2a2a1a 100%); border-radius:8% 0 0 8%; transform:skewY(2deg); animation:fgo-gate-l 6s ease-in-out infinite; }
.scn-fortress-gate-opened .gate-r { position:absolute; bottom:20%; left:50%; width:30px; height:100px; background:linear-gradient(90deg, #2a2a1a 0%, #1a1a0a 100%); border-radius:0 8% 8% 0; transform:skewY(-2deg); animation:fgo-gate-r 6s ease-in-out infinite; }
.scn-fortress-gate-opened .count { position:absolute; bottom:28%; left:40%; width:12px; height:36px; background:linear-gradient(180deg, #1e1e2e 0%, #0a0a14 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation:fgo-count 3s ease-in-out infinite; }
.scn-fortress-gate-opened .guard { position:absolute; bottom:28%; left:52%; width:14px; height:38px; background:linear-gradient(180deg, #2e2e3e 0%, #1a1a2a 100%); border-radius:50% 50% 30% 30% / 60% 60% 40% 40%; transform:rotate(5deg); animation:fgo-guard 2.5s ease-in-out infinite; }
.scn-fortress-gate-opened .lightbeam { position:absolute; bottom:20%; left:38%; width:80px; height:120px; background:linear-gradient(135deg, rgba(200,200,255,0.08) 0%, rgba(200,200,255,0.3) 50%, transparent 100%); clip-path:polygon(20% 0, 80% 0, 100% 100%, 0% 100%); animation:fgo-beam 8s ease-in-out infinite alternate; }
.scn-fortress-gate-opened .shadow-steps { position:absolute; bottom:18%; left:36%; width:70px; height:20px; background:linear-gradient(180deg, rgba(0,0,0,0.4) 0%, transparent 100%); border-radius:50%; filter:blur(4px); animation:fgo-shadow 5s ease-in-out infinite; }
@keyframes fgo-sky { 0%{opacity:0.7} 50%{opacity:1} 100%{opacity:0.8} }
@keyframes fgo-moon { 0%{transform:translateY(0) scale(1); box-shadow:0 0 60px 20px rgba(160,160,224,0.4)} 50%{transform:translateY(-4px) scale(1.05); box-shadow:0 0 80px 30px rgba(160,160,224,0.6)} 100%{transform:translateY(0) scale(1); box-shadow:0 0 60px 20px rgba(160,160,224,0.4)} }
@keyframes fgo-gate-l { 0%{transform:skewY(2deg) translateX(0)} 50%{transform:skewY(4deg) translateX(-2px)} 100%{transform:skewY(2deg) translateX(0)} }
@keyframes fgo-gate-r { 0%{transform:skewY(-2deg) translateX(0)} 50%{transform:skewY(-4deg) translateX(2px)} 100%{transform:skewY(-2deg) translateX(0)} }
@keyframes fgo-count { 0%{transform:translateY(0) rotate(-1deg)} 25%{transform:translateY(-2px) rotate(0deg)} 50%{transform:translateY(0) rotate(1deg)} 75%{transform:translateY(-2px) rotate(0deg)} 100%{transform:translateY(0) rotate(-1deg)} }
@keyframes fgo-guard { 0%{transform:translateY(0) rotate(5deg)} 50%{transform:translateY(-1px) rotate(3deg)} 100%{transform:translateY(0) rotate(5deg)} }
@keyframes fgo-beam { 0%{opacity:0.3} 50%{opacity:0.8} 100%{opacity:0.3} }
@keyframes fgo-shadow { 0%{opacity:0.4; transform:scaleX(1)} 50%{opacity:0.8; transform:scaleX(1.2)} 100%{opacity:0.4; transform:scaleX(1)} }

/* fortress-gate-rejected */
.scn-fortress-gate-rejected {
  background: linear-gradient(180deg, #1a1a3e 0%, #2c2244 50%, #3a2a5a 100%),
              radial-gradient(ellipse at 30% 110%, #333 0%, transparent 80%);
}
.scn-fortress-gate-rejected .sky { position:absolute; inset:0 0 60% 0; background:linear-gradient(180deg, #1a1a3e 0%, transparent 100%); animation:fgr-sky 20s ease-in-out infinite alternate; }
.scn-fortress-gate-rejected .moon { position:absolute; top:5%; left:20%; width:35px; height:35px; background:radial-gradient(circle, #c0c0ee 0%, #8080c0 40%, transparent 70%); border-radius:50%; box-shadow:0 0 50px 15px rgba(128,128,192,0.3); animation:fgr-moon 5s ease-in-out infinite alternate; }
.scn-fortress-gate-rejected .gate-r { position:absolute; bottom:25%; left:55%; width:30px; height:110px; background:linear-gradient(90deg, #2a2a1a 0%, #1a1a0a 100%); border-radius:0 8% 8% 0; transform:skewY(-3deg); animation:fgr-gate-r 4s ease-in-out infinite; }
.scn-fortress-gate-rejected .gate-l-closing { position:absolute; bottom:25%; left:40%; width:30px; height:110px; background:linear-gradient(90deg, #3a3a2a 0%, #2a2a1a 100%); border-radius:8% 0 0 8%; transform:skewY(3deg); transform-origin:right center; animation:fgr-gate-l 7s ease-in-out infinite; }
.scn-fortress-gate-rejected .count-retreat { position:absolute; bottom:28%; left:30%; width:12px; height:36px; background:linear-gradient(180deg, #1e1e2e 0%, #0a0a14 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation:fgr-count 4s ease-in-out infinite; }
.scn-fortress-gate-rejected .guard-half { position:absolute; bottom:28%; left:58%; width:8px; height:30px; background:linear-gradient(180deg, #2e2e3e 0%, #1a1a2a 100%); border-radius:50% 50% 30% 30% / 60% 60% 40% 40%; opacity:0.6; animation:fgr-guard 3s ease-in-out infinite; }
.scn-fortress-gate-rejected .spear { position:absolute; bottom:30%; left:62%; width:3px; height:40px; background:linear-gradient(180deg, #555 0%, #333 100%); transform:rotate(-20deg); animation:fgr-spear 2s ease-in-out infinite; }
.scn-fortress-gate-rejected .mountain { position:absolute; bottom:30%; left:0; right:0; height:40%; background:linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); clip-path:polygon(0% 100%, 20% 30%, 40% 50%, 60% 20%, 80% 40%, 100% 100%); animation:fgr-mtn 30s ease-in-out infinite alternate; }
@keyframes fgr-sky { 0%{opacity:0.6} 50%{opacity:1} 100%{opacity:0.7} }
@keyframes fgr-moon { 0%{transform:translateY(0) scale(1); box-shadow:0 0 50px 15px rgba(128,128,192,0.3)} 50%{transform:translateY(-3px) scale(1.03); box-shadow:0 0 70px 25px rgba(128,128,192,0.5)} 100%{transform:translateY(0) scale(1); box-shadow:0 0 50px 15px rgba(128,128,192,0.3)} }
@keyframes fgr-gate-r { 0%{transform:skewY(-3deg)} 50%{transform:skewY(-5deg) translateX(1px)} 100%{transform:skewY(-3deg)} }
@keyframes fgr-gate-l { 0%{transform:skewY(3deg) scaleX(1)} 30%{transform:skewY(2deg) scaleX(0.95)} 60%{transform:skewY(4deg) scaleX(1)} 100%{transform:skewY(3deg) scaleX(1)} }
@keyframes fgr-count { 0%{transform:translateX(0) translateY(0) rotate(0deg)} 25%{transform:translateX(8px) translateY(-2px) rotate(2deg)} 50%{transform:translateX(16px) translateY(0) rotate(0deg)} 75%{transform:translateX(24px) translateY(-2px) rotate(-2deg)} 100%{transform:translateX(32px) translateY(0) rotate(0deg)} }
@keyframes fgr-guard { 0%{opacity:0.6; transform:translateY(0)} 50%{opacity:0.4; transform:translateY(-2px)} 100%{opacity:0.6; transform:translateY(0)} }
@keyframes fgr-spear { 0%{transform:rotate(-20deg) translateY(0)} 50%{transform:rotate(-18deg) translateY(-3px)} 100%{transform:rotate(-20deg) translateY(0)} }
@keyframes fgr-mtn { 0%{clip-path:polygon(0% 100%, 20% 30%, 40% 50%, 60% 20%, 80% 40%, 100% 100%)} 50%{clip-path:polygon(0% 100%, 25% 35%, 45% 55%, 65% 25%, 85% 45%, 100% 100%)} 100%{clip-path:polygon(0% 100%, 20% 30%, 40% 50%, 60% 20%, 80% 40%, 100% 100%)} }

/* fortress-admission-agreed */
.scn-fortress-admission-agreed {
  background: linear-gradient(180deg, #1a1a3e 0%, #2c2244 40%, #3a2a5a 100%),
              radial-gradient(ellipse at 50% 120%, #2a2a4a 0%, transparent 70%);
}
.scn-fortress-admission-agreed .sky { position:absolute; inset:0 0 45% 0; background:linear-gradient(180deg, #2a2a5a 0%, transparent 100%); animation:faa-sky 18s ease-in-out infinite alternate; }
.scn-fortress-admission-agreed .moon { position:absolute; top:8%; left:65%; width:38px; height:38px; background:radial-gradient(circle, #d0d0ff 0%, #a0a0e0 40%, transparent 70%); border-radius:50%; box-shadow:0 0 70px 25px rgba(160,160,224,0.5); animation:faa-moon 5s ease-in-out infinite alternate; }
.scn-fortress-admission-agreed .gate-both { position:absolute; bottom:22%; left:38%; width:60px; height:100px; background:linear-gradient(90deg, #3a3a2a 30%, #2a2a1a 50%, #1a1a0a 80%); border-radius:8% 8% 4% 4%; box-shadow:0 4px 8px rgba(0,0,0,0.6); animation:faa-gate 8s ease-in-out infinite; }
.scn-fortress-admission-agreed .count { position:absolute; bottom:28%; left:42%; width:12px; height:36px; background:linear-gradient(180deg, #1e1e2e 0%, #0a0a14 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation:faa-count 3s ease-in-out infinite; }
.scn-fortress-admission-agreed .blanche { position:absolute; bottom:28%; left:48%; width:10px; height:32px; background:linear-gradient(180deg, #22223a 0%, #101020 100%); border-radius:50% 50% 30% 30% / 60% 60% 40% 40%; transform:scale(0.95); animation:faa-blanche 2.8s ease-in-out infinite; }
.scn-fortress-admission-agreed .tower { position:absolute; bottom:30%; right:10%; width:20px; height:90px; background:linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius:4% 4% 2% 2%; box-shadow:inset 0 4px 10px rgba(0,0,0,0.5); animation:faa-tower 15s ease-in-out infinite alternate; }
.scn-fortress-admission-agreed .spear { position:absolute; bottom:28%; left:55%; width:3px; height:30px; background:linear-gradient(180deg, #777 0%, #444 100%); transform:rotate(15deg); animation:faa-spear 2.2s ease-in-out infinite; }
.scn-fortress-admission-agreed .shadow { position:absolute; bottom:20%; left:35%; width:80px; height:10px; background:radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 100%); filter:blur(4px); animation:faa-shadow 6s ease-in-out infinite; }
@keyframes faa-sky { 0%{opacity:0.7} 50%{opacity:1} 100%{opacity:0.8} }
@keyframes faa-moon { 0%{transform:translateY(0) scale(1); box-shadow:0 0 70px 25px rgba(160,160,224,0.5)} 50%{transform:translateY(-3px) scale(1.04); box-shadow:0 0 90px 35px rgba(160,160,224,0.7)} 100%{transform:translateY(0) scale(1); box-shadow:0 0 70px 25px rgba(160,160,224,0.5)} }
@keyframes faa-gate { 0%{transform:translateX(-50%) scaleX(1)} 30%{transform:translateX(-50%) scaleX(1.02)} 60%{transform:translateX(-50%) scaleX(0.98)} 100%{transform:translateX(-50%) scaleX(1)} }
@keyframes faa-count { 0%{transform:translateY(0) rotate(0deg)} 25%{transform:translateY(-2px) rotate(-1deg)} 50%{transform:translateY(0) rotate(0deg)} 75%{transform:translateY(-2px) rotate(1deg)} 100%{transform:translateY(0) rotate(0deg)} }
@keyframes faa-blanche { 0%{transform:scale(0.95) translateY(0)} 50%{transform:scale(1) translateY(-1px)} 100%{transform:scale(0.95) translateY(0)} }
@keyframes faa-tower { 0%{transform:translateY(0) scaleY(1)} 50%{transform:translateY(-2px) scaleY(1.01)} 100%{transform:translateY(0) scaleY(1)} }
@keyframes faa-spear { 0%{transform:rotate(15deg) translateY(0)} 50%{transform:rotate(13deg) translateY(-2px)} 100%{transform:rotate(15deg) translateY(0)} }
@keyframes faa-shadow { 0%{opacity:0.5; transform:scaleX(1)} 50%{opacity:0.7; transform:scaleX(1.1)} 100%{opacity:0.5; transform:scaleX(1)} }

/* fortress-admission-decision */
.scn-fortress-admission-decision {
  background: linear-gradient(180deg, #3a1a0a 0%, #1a0a00 40%, #0a0500 100%),
              radial-gradient(ellipse at 50% 60%, #8a3a0a 0%, transparent 70%);
}
.scn-fortress-admission-decision .night-sky { position:absolute; inset:0 0 50% 0; background:linear-gradient(180deg, #2a0a00 0%, transparent 100%); animation:fad-sky 20s ease-in-out infinite alternate; }
.scn-fortress-admission-decision .fire { position:absolute; bottom:25%; left:50%; width:40px; height:50px; transform:translateX(-50%); background:radial-gradient(ellipse at 50% 100%, #ff8800 0%, #ff4400 30%, #cc2200 60%, transparent 80%); border-radius:50% 50% 40% 40% / 70% 70% 30% 30%; box-shadow:0 0 80px 40px rgba(255,68,0,0.6), 0 0 150px 60px rgba(255,68,0,0.3); animation:fad-fire 1.5s ease-in-out infinite alternate; }
.scn-fortress-admission-decision .smoke-1 { position:absolute; bottom:45%; left:50%; width:60px; height:60px; transform:translateX(-50%); background:radial-gradient(ellipse, rgba(80,60,40,0.3) 0%, transparent 70%); filter:blur(6px); animation:fad-smoke1 6s ease-in-out infinite; }
.scn-fortress-admission-decision .smoke-2 { position:absolute; bottom:50%; left:45%; width:50px; height:50px; background:radial-gradient(ellipse, rgba(70,50,30,0.2) 0%, transparent 60%); filter:blur(8px); animation:fad-smoke2 8s ease-in-out infinite reverse; }
.scn-fortress-admission-decision .count-silhouette { position:absolute; bottom:20%; left:35%; width:14px; height:40px; background:linear-gradient(180deg, #1a0a00 0%, #0a0500 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation:fad-count 4s ease-in-out infinite; }
.scn-fortress-admission-decision .blanche-silhouette { position:absolute; bottom:20%; left:45%; width:12px; height:36px; background:linear-gradient(180deg, #1a0a00 0%, #0a0500 100%); border-radius:50% 50% 30% 30% / 60% 60% 40% 40%; transform:scale(0.9); animation:fad-blanche 3.5s ease-in-out infinite; }
.scn-fortress-admission-decision .rock { position:absolute; bottom:0; left:20%; right:20%; height:30%; background:linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius:40% 40% 0 0 / 60% 60% 0 0; box-shadow:inset 0 10px 20px rgba(0,0,0,0.5); animation:fad-rock 20s ease-in-out infinite alternate; }
.scn-fortress-admission-decision .storm-clouds { position:absolute; top:5%; left:0; right:0; height:20%; background:linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); opacity:0.6; filter:blur(8px); animation:fad-clouds 25s linear infinite; }
@keyframes fad-sky { 0%{opacity:0.5} 50%{opacity:0.8} 100%{opacity:0.6} }
@keyframes fad-fire { 0%{transform:translateX(-50%) scale(1) rotate(0deg); box-shadow:0 0 80px 40px rgba(255,68,0,0.6),0 0 150px 60px rgba(255,68,0,0.3)} 50%{transform:translateX(-50%) scale(1.05) rotate(2deg); box-shadow:0 0 100px 50px rgba(255,68,0,0.8),0 0 180px 70px rgba(255,68,0,0.4)} 100%{transform:translateX(-50%) scale(0.95) rotate(-2deg); box-shadow:0 0 80px 40px rgba(255,68,0,0.6),0 0 150px 60px rgba(255,68,0,0.3)} }
@keyframes fad-smoke1 { 0%{transform:translateX(-50%) translateY(0) scale(1); opacity:0.3} 50%{transform:translateX(-50%) translateY(-20px) scale(1.2); opacity:0.1} 100%{transform:translateX(-50%) translateY(0) scale(1); opacity:0.3} }
@keyframes fad-smoke2 { 0%{transform:translateX(0) translateY(0) scale(1); opacity:0.2} 50%{transform:translateX(10px) translateY(-15px) scale(1.3); opacity:0.05} 100%{transform:translateX(0) translateY(0) scale(1); opacity:0.2} }
@keyframes fad-count { 0%{transform:translateY(0) rotate(-1deg)} 25%{transform:translateY(-2px) rotate(0deg)} 50%{transform:translateY(0) rotate(1deg)} 75%{transform:translateY(-2px) rotate(0deg)} 100%{transform:translateY(0) rotate(-1deg)} }
@keyframes fad-blanche { 0%{transform:scale(0.9) translateY(0)} 50%{transform:scale(0.95) translateY(-1px)} 100%{transform:scale(0.9) translateY(0)} }
@keyframes fad-rock { 0%{transform:translateY(0)} 50%{transform:translateY(-2px)} 100%{transform:translateY(0)} }
@keyframes fad-clouds { 0%{transform:translateX(-30px)} 100%{transform:translateX(120vw)} }

/* Scene 1: waiting-for-midnight (wfm) */
.scn-waiting-for-midnight {
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 60%, #1a0e05 100%),
              radial-gradient(ellipse at 30% 100%, #7a4020 0%, transparent 70%);
}
.scn-waiting-for-midnight .bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #3a2a1a 0%, transparent 100%);
}
.scn-waiting-for-midnight .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0e05 100%);
}
.scn-waiting-for-midnight .fireplace {
  position: absolute; bottom: 35%; left: 15%; width: 40%; height: 50%; background: linear-gradient(180deg, #4a3020 0%, #2a1a0a 100%); border-radius: 10% 10% 5% 5%; box-shadow: inset 0 -10px 20px rgba(0,0,0,.5);
}
.scn-waiting-for-midnight .fire-glow {
  position: absolute; bottom: 35%; left: 25%; width: 20%; height: 30%; background: radial-gradient(ellipse at 50% 80%, #e08040 0%, #7a4020 50%, transparent 100%); border-radius: 50%; animation: wfm-fire 6s ease-in-out infinite;
}
.scn-waiting-for-midnight .chair {
  position: absolute; bottom: 20%; left: 55%; width: 25%; height: 30%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e05 100%); border-radius: 40% 40% 10% 10% / 60% 60% 20% 20%; box-shadow: 0 4px 8px rgba(0,0,0,.6); animation: wfm-chair 10s ease-in-out infinite;
}
.scn-waiting-for-midnight .figure-1 {
  position: absolute; bottom: 25%; left: 50%; width: 12%; height: 35%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0e05 100%); border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%; transform-origin: bottom center; animation: wfm-fig1 8s ease-in-out infinite;
}
.scn-waiting-for-midnight .figure-2 {
  position: absolute; bottom: 23%; left: 45%; width: 10%; height: 28%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e05 100%); border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%; transform-origin: bottom center; animation: wfm-fig2 9s ease-in-out infinite;
}
@keyframes wfm-fire { 0% { opacity: .6; transform: scale(1) translateY(0); } 50% { opacity: 1; transform: scale(1.05) translateY(-2px); } 100% { opacity: .7; transform: scale(.95) translateY(0); } }
@keyframes wfm-chair { 0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(1deg); } }
@keyframes wfm-fig1 { 0%,100% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(-1deg); } 50% { transform: translateY(1px) rotate(1deg); } 75% { transform: translateY(-1px) rotate(-0.5deg); } }
@keyframes wfm-fig2 { 0%,100% { transform: translateY(0) rotate(0deg); } 33% { transform: translateY(-2px) rotate(1deg); } 66% { transform: translateY(1px) rotate(-1deg); } }

/* Scene 2: carriage-at-midnight (cam) */
.scn-carriage-at-midnight {
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0e05 50%, #0a0502 100%),
              radial-gradient(ellipse at 70% 30%, #8a5030 0%, transparent 60%);
}
.scn-carriage-at-midnight .bg {
  position: absolute; inset: 0; background: linear-gradient(90deg, #2a1a0a 0%, transparent 50%, #1a0e05 100%);
}
.scn-carriage-at-midnight .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%; background: linear-gradient(180deg, #1a0e05 0%, #0a0502 100%);
}
.scn-carriage-at-midnight .ceiling {
  position: absolute; top: 0; left: 0; right: 0; height: 20%; background: linear-gradient(180deg, #0a0502 0%, #1a0e05 100%);
}
.scn-carriage-at-midnight .door {
  position: absolute; bottom: 20%; left: 40%; width: 20%; height: 50%; background: linear-gradient(180deg, #3a2010 0%, #1a0e05 100%); border-radius: 5% 5% 3% 3%; box-shadow: 0 4px 12px rgba(0,0,0,.7); animation: cam-door 12s ease-in-out infinite;
}
.scn-carriage-at-midnight .door-glow {
  position: absolute; bottom: 20%; left: 42%; width: 16%; height: 45%; background: linear-gradient(90deg, rgba(200,140,80,.6) 0%, transparent 100%); border-radius: 0 5% 5% 0; animation: cam-glow 4s ease-in-out infinite alternate;
}
.scn-carriage-at-midnight .lantern {
  position: absolute; top: 15%; left: 35%; width: 8%; height: 12%; background: radial-gradient(circle, #e0a060 0%, #8a5030 70%); border-radius: 30%; box-shadow: 0 0 24px 8px rgba(200,120,60,.5); animation: cam-lantern 3s ease-in-out infinite;
}
.scn-carriage-at-midnight .figure {
  position: absolute; bottom: 22%; left: 35%; width: 10%; height: 35%; background: linear-gradient(180deg, #1a0e05 0%, #0a0502 100%); border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%; animation: cam-fig 6s ease-in-out infinite;
}
.scn-carriage-at-midnight .shadow {
  position: absolute; bottom: 22%; left: 30%; width: 20%; height: 15%; background: rgba(0,0,0,.4); border-radius: 50%; filter: blur(6px); animation: cam-shadow 6s ease-in-out infinite;
}
@keyframes cam-door { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-2px) rotate(1deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(2px) rotate(-1deg); } }
@keyframes cam-glow { 0% { opacity: .3; } 50% { opacity: .8; } 100% { opacity: .5; } }
@keyframes cam-lantern { 0%,100% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-3px) rotate(8deg); } 50% { transform: translateY(1px) rotate(-4deg); } 75% { transform: translateY(-2px) rotate(5deg); } }
@keyframes cam-fig { 0% { transform: translateX(0) translateY(0); } 25% { transform: translateX(4px) translateY(-2px); } 50% { transform: translateX(8px) translateY(0); } 75% { transform: translateX(4px) translateY(-1px); } 100% { transform: translateX(0) translateY(0); } }
@keyframes cam-shadow { 0%,100% { transform: translateX(0) scale(1); } 50% { transform: translateX(8px) scale(1.1); } }

/* Scene 3: morano-confirmed (mco) */
.scn-morano-confirmed {
  background: linear-gradient(180deg, #1a0a0a 0%, #0a0505 50%, #050202 100%),
              radial-gradient(ellipse at 80% 40%, #2a1010 0%, transparent 70%);
}
.scn-morano-confirmed .bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #1a0a0a 0%, transparent 100%);
}
.scn-morano-confirmed .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%; background: linear-gradient(180deg, #0a0505 0%, #050202 100%);
}
.scn-morano-confirmed .door {
  position: absolute; bottom: 20%; left: 35%; width: 30%; height: 60%; background: linear-gradient(180deg, #2a1510 0%, #1a0a0a 100%); border-radius: 5% 5% 2% 2%; border-left: 4px solid #3a2015; box-shadow: 0 8px 16px rgba(0,0,0,.8); animation: mco-door 8s ease-in-out infinite;
}
.scn-morano-confirmed .light-beam {
  position: absolute; bottom: 20%; left: 35%; width: 30%; height: 60%; background: linear-gradient(135deg, rgba(220,180,120,.8) 0%, transparent 100%); clip-path: polygon(0 0, 35% 0, 100% 100%, 0 100%); animation: mco-beam 6s ease-in-out infinite alternate;
}
.scn-morano-confirmed .figure-morano {
  position: absolute; bottom: 22%; left: 30%; width: 12%; height: 40%; background: linear-gradient(180deg, #1a0a0a 0%, #0a0505 100%); border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%; transform-origin: bottom center; animation: mco-fig1 5s ease-in-out infinite;
}
.scn-morano-confirmed .figure-montoni {
  position: absolute; bottom: 22%; left: 22%; width: 11%; height: 38%; background: linear-gradient(180deg, #1a0a0a 0%, #0a0505 100%); border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%; transform-origin: bottom center; animation: mco-fig2 7s ease-in-out infinite;
}
.scn-morano-confirmed .shadow {
  position: absolute; bottom: 20%; left: 20%; width: 30%; height: 12%; background: rgba(0,0,0,.6); border-radius: 50%; filter: blur(8px); animation: mco-shadow 6s ease-in-out infinite;
}
@keyframes mco-door { 0%,100% { transform: scaleX(1) translateX(0); } 50% { transform: scaleX(0.3) translateX(-5px); } }
@keyframes mco-beam { 0% { opacity: .3; transform: skewY(0deg); } 50% { opacity: .8; transform: skewY(-3deg); } 100% { opacity: .6; transform: skewY(2deg); } }
@keyframes mco-fig1 { 0%,100% { transform: translateY(0) rotate(0deg); } 30% { transform: translateY(-2px) rotate(2deg); } 60% { transform: translateY(1px) rotate(-1deg); } }
@keyframes mco-fig2 { 0%,100% { transform: translateY(0) rotate(0deg); } 40% { transform: translateY(-1px) rotate(-1deg); } 80% { transform: translateY(2px) rotate(1deg); } }
@keyframes mco-shadow { 0%,100% { transform: scale(1); opacity: .6; } 50% { transform: scale(1.2); opacity: .8; } }

/* Scene 4: faintness-passes (fpa) */
.scn-faintness-passes {
  background: linear-gradient(180deg, #151a2a 0%, #0e1220 50%, #080c14 100%),
              radial-gradient(ellipse at 40% 60%, #203050 0%, transparent 70%);
}
.scn-faintness-passes .bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #151a2a 0%, transparent 100%);
}
.scn-faintness-passes .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%; background: linear-gradient(180deg, #0e1220 0%, #080c14 100%);
}
.scn-faintness-passes .bed {
  position: absolute; bottom: 15%; left: 20%; width: 60%; height: 30%; background: linear-gradient(180deg, #1a2030 0%, #0e1220 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 4px 12px rgba(0,0,0,.5);
}
.scn-faintness-passes .pillow {
  position: absolute; bottom: 35%; left: 30%; width: 15%; height: 10%; background: linear-gradient(180deg, #2a3440 0%, #1a2030 100%); border-radius: 50%; box-shadow: inset 0 2px 4px rgba(0,0,0,.3);
}
.scn-faintness-passes .figure-emily {
  position: absolute; bottom: 20%; left: 35%; width: 12%; height: 18%; background: linear-gradient(180deg, #2a3440 0%, #1a2030 100%); border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%; transform-origin: bottom center; animation: fpa-emily 10s ease-in-out infinite;
}
.scn-faintness-passes .figure-annette {
  position: absolute; bottom: 20%; left: 55%; width: 8%; height: 25%; background: linear-gradient(180deg, #2a3440 0%, #1a2030 100%); border-radius: 50% 50% 40% 40% / 70% 70% 40% 40%; transform-origin: bottom center; animation: fpa-annette 8s ease-in-out infinite;
}
.scn-faintness-passes .candle {
  position: absolute; bottom: 35%; left: 15%; width: 3%; height: 8%; background: linear-gradient(180deg, #e0b070 0%, #a07040 100%); border-radius: 20%; box-shadow: 0 0 10px 2px rgba(200,130,60,.3); animation: fpa-candle 4s ease-in-out infinite;
}
.scn-faintness-passes .candle-glow {
  position: absolute; bottom: 35%; left: 12%; width: 9%; height: 15%; background: radial-gradient(circle, rgba(200,130,60,.4) 0%, transparent 70%); border-radius: 50%; animation: fpa-glow 4s ease-in-out infinite;
}
.scn-faintness-passes .window {
  position: absolute; top: 10%; right: 10%; width: 25%; height: 35%; background: linear-gradient(180deg, #203050 0%, #101a30 100%); border: 2px solid #2a3440; border-radius: 5%; box-shadow: inset 0 0 10px rgba(0,0,0,.4); animation: fpa-window 20s linear infinite;
}
@keyframes fpa-emily { 0%,100% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-1px) rotate(1deg); } 50% { transform: translateY(1px) rotate(-1deg); } 75% { transform: translateY(-1px) rotate(0deg); } }
@keyframes fpa-annette { 0%,100% { transform: translateY(0) rotate(0deg); } 33% { transform: translateY(-2px) rotate(2deg); } 66% { transform: translateY(1px) rotate(-1deg); } }
@keyframes fpa-candle { 0%,100% { opacity: .7; transform: scaleY(1); } 25% { opacity: .9; transform: scaleY(1.05); } 50% { opacity: .8; transform: scaleY(0.95); } 75% { opacity: 1; transform: scaleY(1); } }
@keyframes fpa-glow { 0%,100% { opacity: .4; transform: scale(1); } 50% { opacity: .7; transform: scale(1.1); } }
@keyframes fpa-window { 0% { background-position: 0 0; } 100% { background-position: 0 100px; } }

/* interview-postponed */
.scn-interview-postponed {
  background: linear-gradient(180deg, #2a1a10 0%, #1a1008 40%, #0d0804 100%), 
              radial-gradient(ellipse at 60% 30%, #3a2a1a 0%, transparent 60%);
}
.scn-interview-postponed .bg-wall {
  position: absolute; inset: 0; 
  background: linear-gradient(180deg, #2a1a10 0%, #1a1008 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,.6);
}
.scn-interview-postponed .window {
  position: absolute; top: 10%; left: 70%; width: 80px; height: 100px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border: 6px solid #1a1008; border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,.5);
}
.scn-interview-postponed .door {
  position: absolute; bottom: 0; left: 20%; width: 100px; height: 180px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 6px 6px 0 0;
  box-shadow: -4px 0 12px rgba(0,0,0,.6);
  animation: inp-door 12s ease-in-out infinite alternate;
}
.scn-interview-postponed .chair {
  position: absolute; bottom: 20%; left: 45%; width: 60px; height: 80px;
  background: linear-gradient(180deg, #2a1a10 0%, #1a1008 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 10% 10%;
  box-shadow: 2px 4px 8px rgba(0,0,0,.5);
}
.scn-interview-postponed .figure {
  position: absolute; bottom: 18%; left: 48%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #1a0e06 0%, #0a0502 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: inp-figure 8s ease-in-out infinite;
}
.scn-interview-postponed .candle {
  position: absolute; bottom: 28%; left: 40%; width: 8px; height: 20px;
  background: linear-gradient(180deg, #a08060 0%, #604020 100%);
  border-radius: 2px;
  box-shadow: 0 0 12px 4px #a08060;
  animation: inp-candle 3s ease-in-out infinite alternate;
}
.scn-interview-postponed .shadow {
  position: absolute; bottom: 18%; left: 42%; width: 80px; height: 40px;
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,.4) 0%, transparent 70%);
  filter: blur(4px);
  animation: inp-shadow 8s ease-in-out infinite;
}
@keyframes inp-door {
  0% { transform: translateX(0) scaleX(1); }
  50% { transform: translateX(-6px) scaleX(0.98); }
  100% { transform: translateX(0) scaleX(1); }
}
@keyframes inp-figure {
  0% { transform: rotate(0deg) translateY(0); }
  50% { transform: rotate(2deg) translateY(-2px); }
  100% { transform: rotate(0deg) translateY(0); }
}
@keyframes inp-candle {
  0% { box-shadow: 0 0 8px 2px #a08060; opacity: 0.7; }
  50% { box-shadow: 0 0 16px 6px #d0a070; opacity: 1; }
  100% { box-shadow: 0 0 10px 3px #a08060; opacity: 0.8; }
}
@keyframes inp-shadow {
  0% { transform: translateX(0) scaleX(1); opacity: 0.5; }
  50% { transform: translateX(4px) scaleX(1.1); opacity: 0.7; }
  100% { transform: translateX(0) scaleX(1); opacity: 0.5; }
}

/* silence-and-sorrow */
.scn-silence-and-sorrow {
  background: linear-gradient(180deg, #1a1820 0%, #120e14 50%, #08060a 100%),
              radial-gradient(ellipse at 50% 40%, #2a2030 0%, transparent 70%);
}
.scn-silence-and-sorrow .bg-wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #1a1820 0%, #120e14 100%);
  box-shadow: inset 0 0 80px rgba(0,0,0,.5);
}
.scn-silence-and-sorrow .window {
  position: absolute; top: 15%; left: 60%; width: 70px; height: 90px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a28 100%);
  border: 5px solid #1a1820; border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,.6);
  animation: sis-window 15s ease-in-out infinite alternate;
}
.scn-silence-and-sorrow .chair {
  position: absolute; bottom: 25%; left: 35%; width: 50px; height: 70px;
  background: linear-gradient(180deg, #2a2028 0%, #1a1418 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 15% 15%;
  box-shadow: 2px 4px 10px rgba(0,0,0,.5);
}
.scn-silence-and-sorrow .figure {
  position: absolute; bottom: 23%; left: 37%; width: 35px; height: 70px;
  background: linear-gradient(180deg, #1a1420 0%, #0a0810 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: sis-figure 10s ease-in-out infinite;
}
.scn-silence-and-sorrow .lamp {
  position: absolute; bottom: 35%; left: 50%; width: 12px; height: 18px;
  background: radial-gradient(circle, #605040 0%, #302010 100%);
  border-radius: 4px;
  box-shadow: 0 0 15px 5px #605040;
  animation: sis-lamp 4s ease-in-out infinite alternate;
}
.scn-silence-and-sorrow .shawl {
  position: absolute; bottom: 30%; left: 33%; width: 24px; height: 30px;
  background: linear-gradient(180deg, #282030 0%, #181020 100%);
  border-radius: 40% 60% 20% 30% / 50% 50% 20% 30%;
  filter: blur(1px);
  animation: sis-shawl 12s ease-in-out infinite;
}
.scn-silence-and-sorrow .shadow {
  position: absolute; bottom: 20%; left: 30%; width: 100px; height: 50px;
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,.5) 0%, transparent 70%);
  filter: blur(5px);
  animation: sis-shadow 10s ease-in-out infinite;
}
@keyframes sis-window {
  0% { opacity: 0.6; transform: scaleY(1); }
  50% { opacity: 0.8; transform: scaleY(1.02); }
  100% { opacity: 0.6; transform: scaleY(1); }
}
@keyframes sis-figure {
  0% { transform: rotate(0deg) translateY(0); }
  30% { transform: rotate(1deg) translateY(-1px); }
  70% { transform: rotate(-1deg) translateY(1px); }
  100% { transform: rotate(0deg) translateY(0); }
}
@keyframes sis-lamp {
  0% { box-shadow: 0 0 10px 3px #605040; opacity: 0.6; }
  50% { box-shadow: 0 0 20px 8px #806050; opacity: 0.9; }
  100% { box-shadow: 0 0 12px 4px #605040; opacity: 0.7; }
}
@keyframes sis-shawl {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(-3px) rotate(2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes sis-shadow {
  0% { transform: translateX(0) scaleX(1); }
  50% { transform: translateX(2px) scaleX(1.05); }
  100% { transform: translateX(0) scaleX(1); }
}

/* figure-on-rampart */
.scn-figure-on-rampart {
  background: linear-gradient(180deg, #0a0a20 0%, #0e0e2a 40%, #141438 70%, #1a1a3c 100%),
              radial-gradient(ellipse at 50% 80%, #1a1a3c 0%, transparent 60%);
}
.scn-figure-on-rampart .sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #0a0a20 0%, #0e0e2a 50%, #141438 100%);
  animation: fir-sky 20s ease-in-out infinite alternate;
}
.scn-figure-on-rampart .moon {
  position: absolute; top: 12%; left: 25%; width: 40px; height: 40px;
  background: radial-gradient(circle, #e0e0ff 0%, #c0c0e0 80%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px #a0a0d0, 0 0 60px 20px rgba(100,100,180,.3);
  animation: fir-moon 15s ease-in-out infinite;
}
.scn-figure-on-rampart .rampart {
  position: absolute; bottom: 20%; left: 5%; right: 5%; height: 50%;
  background: linear-gradient(180deg, #20202a 0%, #10101a 100%);
  border-radius: 10% 10% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,.7), 0 -4px 8px rgba(0,0,0,.5);
  animation: fir-rampart 30s ease-in-out infinite alternate;
}
.scn-figure-on-rampart .sentinel {
  position: absolute; bottom: 25%; left: 50%; width: 24px; height: 60px;
  background: linear-gradient(180deg, #0a0a12 0%, #000008 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%;
  transform-origin: bottom center;
  animation: fir-sentinel 8s ease-in-out infinite;
}
.scn-figure-on-rampart .flag {
  position: absolute; bottom: 38%; left: 52%; width: 4px; height: 30px;
  background: #1a1a2a;
  border-radius: 2px;
  transform-origin: bottom center;
}
.scn-figure-on-rampart .flag::before {
  content: ''; position: absolute; top: 0; left: 4px; width: 20px; height: 14px;
  background: linear-gradient(180deg, #4a3a3a 0%, #3a2a2a 100%);
  border-radius: 0 40% 20% 0;
  animation: fir-flag-wave 3s ease-in-out infinite;
}
.scn-figure-on-rampart .cloud-a {
  position: absolute; top: 18%; left: 0; width: 120px; height: 20px;
  background: linear-gradient(180deg, rgba(255,255,255,.15) 0%, rgba(255,255,255,.05) 100%);
  border-radius: 50%;
  filter: blur(8px);
  animation: fir-cloud-a 45s linear infinite;
}
.scn-figure-on-rampart .cloud-b {
  position: absolute; top: 25%; right: 0; width: 100px; height: 16px;
  background: linear-gradient(180deg, rgba(255,255,255,.12) 0%, rgba(255,255,255,.03) 100%);
  border-radius: 50%;
  filter: blur(6px);
  animation: fir-cloud-b 60s linear infinite;
}
.scn-figure-on-rampart .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%);
}
@keyframes fir-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes fir-moon {
  0% { transform: translateX(0) scale(1); box-shadow: 0 0 30px 10px #a0a0d0; }
  50% { transform: translateX(8px) scale(1.02); box-shadow: 0 0 40px 14px #b0b0e0; }
  100% { transform: translateX(0) scale(1); box-shadow: 0 0 30px 10px #a0a0d0; }
}
@keyframes fir-rampart {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-2px) scaleY(1.01); }
  100% { transform: translateY(0) scaleY(1); }
}
@keyframes fir-sentinel {
  0% { transform: rotate(0deg) translateY(0); }
  50% { transform: rotate(1deg) translateY(-2px); }
  100% { transform: rotate(0deg) translateY(0); }
}
@keyframes fir-flag-wave {
  0% { transform: rotate(0deg) skewX(0deg); }
  50% { transform: rotate(5deg) skewX(2deg); }
  100% { transform: rotate(0deg) skewX(0deg); }
}
@keyframes fir-cloud-a {
  0% { transform: translateX(-120px); }
  100% { transform: translateX(100vw); }
}
@keyframes fir-cloud-b {
  0% { transform: translateX(100vw); }
  100% { transform: translateX(-100px); }
}

/* morano-considered */
.scn-morano-considered {
  background: linear-gradient(180deg, #0a0a14 0%, #101020 40%, #14142a 70%, #1a1a30 100%),
              radial-gradient(ellipse at 50% 60%, #1a1a30 0%, transparent 60%);
}
.scn-morano-considered .bg-wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #0a0a14 0%, #101020 100%);
  box-shadow: inset 0 0 80px rgba(0,0,0,.6);
}
.scn-morano-considered .window {
  position: absolute; top: 10%; left: 50%; width: 100px; height: 120px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%);
  border: 6px solid #141428; border-radius: 50% 50% 10% 10% / 60% 60% 10% 10%;
  box-shadow: inset 0 0 40px rgba(0,0,0,.7);
  overflow: hidden;
}
.scn-morano-considered .curtain {
  position: absolute; top: 8%; left: 48%; width: 20px; height: 130px;
  background: linear-gradient(180deg, #1a1420 0%, #0e0a14 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 10% 10%;
  filter: blur(2px);
  animation: moc-curtain 14s ease-in-out infinite alternate;
}
.scn-morano-considered .figure {
  position: absolute; bottom: 20%; left: 50%; width: 40px; height: 80px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #0e0a1a 0%, #040208 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: moc-figure 9s ease-in-out infinite;
}
.scn-morano-considered .table {
  position: absolute; bottom: 15%; left: 48%; width: 60px; height: 20px;
  background: linear-gradient(180deg, #1a1420 0%, #0e0a14 100%);
  border-radius: 6px;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
  animation: moc-table 20s ease-in-out infinite;
}
.scn-morano-considered .candle {
  position: absolute; bottom: 22%; left: 52%; width: 6px; height: 18px;
  background: linear-gradient(180deg, #a08060 0%, #604020 100%);
  border-radius: 2px;
  box-shadow: 0 0 10px 3px #a08060;
  animation: moc-candle 4s ease-in-out infinite alternate;
}
.scn-morano-considered .shadow {
  position: absolute; bottom: 18%; left: 44%; width: 90px; height: 60px;
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,.6) 0%, transparent 70%);
  filter: blur(6px);
  animation: moc-shadow 9s ease-in-out infinite;
}
.scn-morano-considered .moon-out {
  position: absolute; top: 12%; left: 55%; width: 20px; height: 20px;
  background: radial-gradient(circle, #d0d0f0 0%, #a0a0d0 80%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 15px 5px #9090c0;
  animation: moc-moon 25s ease-in-out infinite;
}
@keyframes moc-curtain {
  0% { transform: translateX(0) scaleY(1); }
  50% { transform: translateX(-4px) scaleY(1.02); }
  100% { transform: translateX(0) scaleY(1); }
}
@keyframes moc-figure {
  0% { transform: translateX(-50%) rotate(0deg) translateY(0); }
  50% { transform: translateX(-50%) rotate(1deg) translateY(-2px); }
  100% { transform: translateX(-50%) rotate(0deg) translateY(0); }
}
@keyframes moc-table {
  0% { transform: translateX(0); }
  50% { transform: translateX(-2px); }
  100% { transform: translateX(0); }
}
@keyframes moc-candle {
  0% { box-shadow: 0 0 6px 2px #a08060; opacity: 0.6; }
  50% { box-shadow: 0 0 14px 6px #d0a070; opacity: 0.9; }
  100% { box-shadow: 0 0 8px 3px #a08060; opacity: 0.7; }
}
@keyframes moc-shadow {
  0% { transform: translateX(0) scaleX(1); opacity: 0.4; }
  50% { transform: translateX(3px) scaleX(1.1); opacity: 0.6; }
  100% { transform: translateX(0) scaleX(1); opacity: 0.4; }
}
@keyframes moc-moon {
  0% { transform: translateX(0) scale(1); box-shadow: 0 0 15px 5px #9090c0; }
  50% { transform: translateX(5px) scale(1.02); box-shadow: 0 0 20px 8px #a0a0d0; }
  100% { transform: translateX(0) scale(1); box-shadow: 0 0 15px 5px #9090c0; }
}

/* cottage-embowered (calm, sunlit) */
.scn-cottage-embowered {
  background: linear-gradient(180deg, #8BB8E0 0%, #C0D8E8 40%, #7BA05B 60%, #4A7338 100%), radial-gradient(ellipse at 50% 0%, #FFF2C0 0%, transparent 60%);
}
.scn-cottage-embowered .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #A0C8E0 0%, #B0D0E0 40%, #C8E0F0 100%);
  animation: ce-sky 18s ease-in-out infinite alternate;
}
.scn-cottage-embowered .sun {
  position: absolute; top: 15%; left: 65%; width: 60px; height: 60px;
  background: radial-gradient(circle, #FFF8D0 0%, #FFE080 40%, #FFD060 70%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(255, 224, 128, 0.4), 0 0 80px 40px rgba(255, 224, 128, 0.2);
  animation: ce-sun 12s ease-in-out infinite alternate;
}
.scn-cottage-embowered .woods {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #4A7338 0%, #2D5A26 40%, #1A3D14 100%);
  border-radius: 40% 60% 0 0 / 50% 60% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.3);
  animation: ce-woods 20s ease-in-out infinite alternate;
}
.scn-cottage-embowered .cottage {
  position: absolute; bottom: 28%; left: 35%; width: 120px; height: 90px;
  background: linear-gradient(180deg, #C09A6A 0%, #A07A4A 50%, #7A5A2A 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.4);
  animation: ce-cottage 10s ease-in-out infinite;
}
.scn-cottage-embowered .vines {
  position: absolute; bottom: 30%; left: 30%; width: 160px; height: 50px;
  background: linear-gradient(90deg, transparent 0%, #5A8A3A 20%, #4A7A2A 50%, #5A8A3A 80%, transparent 100%);
  border-radius: 30% 30% 20% 20%;
  filter: blur(2px);
  animation: ce-vines 8s ease-in-out infinite alternate;
}
.scn-cottage-embowered .flowers {
  position: absolute; bottom: 32%; left: 38%; width: 12px; height: 12px;
  background: radial-gradient(circle, #FFD0A0 0%, #FFB080 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 18px -5px 0 #FFC080, -10px 8px 0 #FFD0B0, 30px 0 0 #FFB090;
  animation: ce-flowers 6s ease-in-out infinite;
}
.scn-cottage-embowered .path {
  position: absolute; bottom: 15%; left: 45%; width: 40px; height: 15%;
  background: linear-gradient(180deg, #B09560 0%, #8A7A4A 100%);
  border-radius: 30% 30% 0 0;
  transform: skewX(-5deg);
}

@keyframes ce-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes ce-sun { 0% { transform: scale(1); box-shadow: 0 0 40px 20px rgba(255,224,128,0.4); } 50% { transform: scale(1.05); box-shadow: 0 0 60px 30px rgba(255,224,128,0.6); } 100% { transform: scale(0.98); box-shadow: 0 0 30px 15px rgba(255,224,128,0.3); } }
@keyframes ce-woods { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(2px); } }
@keyframes ce-cottage { 0%,100% { transform: translateX(0); } 50% { transform: translateY(-2px); } }
@keyframes ce-vines { 0% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-1deg); } }
@keyframes ce-flowers { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(1px); } }

/* breakfast-encounter (calm, bright-interior) */
.scn-breakfast-encounter {
  background: linear-gradient(180deg, #F5E6D0 0%, #E8D4B8 40%, #D4BF9A 100%), radial-gradient(ellipse at 20% 40%, #FFF8E0 0%, transparent 70%);
}
.scn-breakfast-encounter .wall {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, #E8D4B8 0%, #F0E0C8 50%, #E8D4B8 100%);
}
.scn-breakfast-encounter .window {
  position: absolute; top: 15%; left: 60%; width: 100px; height: 120px;
  background: linear-gradient(180deg, #C0D8F0 0%, #A0C0E0 100%);
  border: 6px solid #8A7A5A;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(255,255,200,0.3), 0 4px 8px rgba(0,0,0,0.2);
  animation: be-window 14s ease-in-out infinite alternate;
}
.scn-breakfast-encounter .table {
  position: absolute; bottom: 18%; left: 25%; width: 160px; height: 30px;
  background: linear-gradient(180deg, #B09560 0%, #9A8050 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
}
.scn-breakfast-encounter .chair {
  position: absolute; bottom: 20%; left: 30%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #6A5A3A 0%, #4A3A1A 100%);
  border-radius: 10% 10% 30% 30%;
  transform: rotate(2deg);
}
.scn-breakfast-encounter .figure-girl {
  position: absolute; bottom: 22%; left: 34%; width: 28px; height: 60px;
  background: linear-gradient(180deg, #2A1A1A 0%, #1A0A0A 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: be-figure 8s ease-in-out infinite;
}
.scn-breakfast-encounter .plates {
  position: absolute; bottom: 22%; left: 38%; width: 40px; height: 10px;
  background: radial-gradient(ellipse at 50% 50%, #FFF8F0 0%, #E8D8C0 100%);
  border-radius: 50%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
  animation: be-plates 6s ease-in-out infinite;
}
.scn-breakfast-encounter .light-ray {
  position: absolute; top: 20%; left: 50%; width: 200px; height: 200px;
  background: linear-gradient(135deg, rgba(255,255,200,0.3) 0%, transparent 60%);
  filter: blur(8px);
  animation: be-light-ray 12s ease-in-out infinite alternate;
}

@keyframes be-window { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes be-figure { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(-0.5deg); } }
@keyframes be-plates { 0% { transform: rotate(0deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-1deg); } }
@keyframes be-light-ray { 0% { transform: translateX(-10px); opacity: 0.6; } 50% { transform: translateX(10px); opacity: 0.8; } 100% { transform: translateX(-5px); opacity: 0.7; } }

/* confinement-cottage (tense, dim-interior) */
.scn-confinement-cottage {
  background: linear-gradient(180deg, #1A1A2A 0%, #2A1A2A 30%, #1A0A0A 70%, #0A0A0A 100%), radial-gradient(ellipse at 40% 50%, #3A2A3A 0%, transparent 70%);
}
.scn-confinement-cottage .room-bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #2A1A1A 0%, #1A0A0A 50%, #0A0A0A 100%);
}
.scn-confinement-cottage .door {
  position: absolute; bottom: 10%; left: 10%; width: 60px; height: 100px;
  background: linear-gradient(180deg, #3A2A1A 0%, #1A1008 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.5);
  animation: cc-door 15s ease-in-out infinite alternate;
}
.scn-confinement-cottage .window-barred {
  position: absolute; top: 20%; right: 15%; width: 70px; height: 80px;
  background: linear-gradient(180deg, #2A3A4A 0%, #1A2A3A 100%);
  border: 4px solid #3A2A1A;
  box-shadow: inset 0 0 8px rgba(0,0,0,0.6);
  animation: cc-window 12s ease-in-out infinite alternate;
}
.scn-confinement-cottage .candle {
  position: absolute; bottom: 35%; left: 55%; width: 10px; height: 20px;
  background: radial-gradient(circle at 50% 30%, #FFD080 0%, #C08040 40%, #8A5020 100%);
  border-radius: 50% 50% 30% 30%;
  box-shadow: 0 0 30px 10px rgba(255, 180, 80, 0.6), 0 0 60px 20px rgba(255, 180, 80, 0.3);
  animation: cc-candle 2s ease-in-out infinite alternate;
}
.scn-confinement-cottage .figure-emily {
  position: absolute; bottom: 20%; left: 35%; width: 24px; height: 55px;
  background: linear-gradient(180deg, #0A0A0A 0%, #1A1A1A 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: cc-figure 4s ease-in-out infinite;
}
.scn-confinement-cottage .shadow-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.6) 100%);
  animation: cc-shadow 6s ease-in-out infinite alternate;
}

@keyframes cc-door { 0% { transform: rotate(0deg); } 50% { transform: rotate(1deg); } 100% { transform: rotate(-1deg); } }
@keyframes cc-window { 0% { box-shadow: inset 0 0 8px rgba(0,0,0,0.6); } 50% { box-shadow: inset 0 0 15px rgba(0,0,0,0.8); } 100% { box-shadow: inset 0 0 5px rgba(0,0,0,0.4); } }
@keyframes cc-candle { 0% { transform: scaleY(1); opacity: 0.9; box-shadow: 0 0 30px 10px rgba(255,180,80,0.6); } 50% { transform: scaleY(1.1); opacity: 1; box-shadow: 0 0 40px 15px rgba(255,180,80,0.8); } 100% { transform: scaleY(0.95); opacity: 0.85; box-shadow: 0 0 25px 8px rgba(255,180,80,0.5); } }
@keyframes cc-figure { 0% { transform: translateY(0); } 25% { transform: translateY(-2px); } 50% { transform: translateY(0); } 75% { transform: translateY(1px); } 100% { transform: translateY(0); } }
@keyframes cc-shadow { 0% { opacity: 0.4; } 50% { opacity: 0.6; } 100% { opacity: 0.5; } }

/* poem-pilgrim (dark, dim twilight) */
.scn-poem-pilgrim {
  background: linear-gradient(180deg, #0A0A2A 0%, #1A1A3A 30%, #2A2A4A 60%, #1A1A2A 100%), radial-gradient(ellipse at 50% 0%, #2A2A5A 0%, transparent 70%);
}
.scn-poem-pilgrim .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #1A1A3A 0%, #2A2A5A 40%, #3A3A6A 100%);
  animation: pp-sky 20s ease-in-out infinite alternate;
}
.scn-poem-pilgrim .mountains {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #0A0A1A 0%, #1A1A2A 40%, #0A0A0A 100%);
  border-radius: 60% 40% 0 0 / 80% 60% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.5);
  animation: pp-mountains 30s ease-in-out infinite alternate;
}
.scn-poem-pilgrim .path {
  position: absolute; bottom: 15%; left: 30%; width: 120px; height: 8%;
  background: linear-gradient(90deg, transparent 0%, #2A2A2A 20%, #3A3A3A 50%, #2A2A2A 80%, transparent 100%);
  border-radius: 20% 20% 10% 10%;
  transform: skewX(-10deg);
  animation: pp-path 25s ease-in-out infinite alternate;
}
.scn-poem-pilgrim .pilgrim {
  position: absolute; bottom: 16%; left: 35%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #0A0A0A 0%, #1A1A1A 50%, #0A0A0A 100%);
  border-radius: 30% 30% 20% 20% / 40% 40% 20% 20%;
  transform-origin: bottom center;
  animation: pp-pilgrim 10s ease-in-out infinite;
}
.scn-poem-pilgrim .staff {
  position: absolute; bottom: 16%; left: 33%; width: 3px; height: 50px;
  background: #1A1A1A;
  border-radius: 0 0 30% 30%;
  transform-origin: bottom center;
  animation: pp-staff 10s ease-in-out infinite;
}
.scn-poem-pilgrim .stars {
  position: absolute; top: 5%; left: 10%; width: 4px; height: 4px;
  background: #FFF8E0;
  border-radius: 50%;
  box-shadow: 20px 10px 0 #FFF8E0, 40px -5px 0 #FFF8E0, 60px 15px 0 #FFF8E0, -30px 8px 0 #FFF8E0;
  animation: pp-stars 4s ease-in-out infinite alternate;
}

@keyframes pp-sky { 0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.8; } }
@keyframes pp-mountains { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(2px); } }
@keyframes pp-path { 0% { transform: skewX(-10deg) translateX(0); } 50% { transform: skewX(-8deg) translateX(5px); } 100% { transform: skewX(-12deg) translateX(-5px); } }
@keyframes pp-pilgrim { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(10px) rotate(2deg); } 50% { transform: translateX(20px) rotate(0deg); } 75% { transform: translateX(30px) rotate(-2deg); } 100% { transform: translateX(40px) rotate(0deg); } }
@keyframes pp-staff { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(2px) rotate(3deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes pp-stars { 0% { opacity: 0.3; } 50% { opacity: 1; } 100% { opacity: 0.5; } }

/* Scene: watching-the-bark */
.scn-watching-the-bark {
  background: linear-gradient(180deg, #0b0e1f 0%, #151c3d 40%, #1a2a4a 70%, #0d1228 100%),
              radial-gradient(ellipse at 30% 20%, rgba(180,140,60,0.08) 0%, transparent 60%);
}
.scn-watching-the-bark .bg-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #1a2248 0%, #0f1630 100%);
  animation: wtb-sky 12s ease-in-out infinite alternate;
}
.scn-watching-the-bark .bg-sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #14203a 0%, #0a1020 100%);
  border-radius: 60% 40% 0 0 / 30% 20% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.6);
  animation: wtb-sea 8s ease-in-out infinite alternate;
}
.scn-watching-the-bark .window-frame {
  position: absolute; top: 10%; left: 50%; width: 120px; height: 160px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border: 4px solid #3a3a4a;
  border-radius: 8px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.8), 0 4px 12px rgba(0,0,0,0.5);
  animation: wtb-frame 2s ease-in-out infinite alternate;
}
.scn-watching-the-bark .ship {
  position: absolute; bottom: 30%; left: 60%; width: 60px; height: 30px;
  background: linear-gradient(135deg, #1a1410 0%, #0a0806 100%);
  clip-path: polygon(0 70%, 20% 0, 80% 0, 100% 70%, 80% 100%, 20% 100%);
  transform-origin: 50% 70%;
  animation: wtb-ship 6s ease-in-out infinite alternate;
}
.scn-watching-the-bark .sail {
  position: absolute; bottom: 42%; left: 63%; width: 20px; height: 40px;
  background: linear-gradient(180deg, rgba(220,210,190,0.3) 0%, rgba(180,170,150,0.1) 100%);
  clip-path: polygon(50% 0, 100% 30%, 100% 70%, 50% 100%, 0 70%, 0 30%);
  transform-origin: 50% 0;
  animation: wtb-sail 4s ease-in-out infinite alternate;
  filter: blur(1px);
}
.scn-watching-the-bark .bird {
  position: absolute; width: 12px; height: 8px;
  background: linear-gradient(180deg, rgba(240,235,220,0.5) 0%, transparent 100%);
  clip-path: polygon(0 50%, 50% 0, 100% 50%, 50% 100%);
  animation: wtb-bird 10s linear infinite;
}
.scn-watching-the-bark .bird-a { top: 15%; left: 20%; animation-duration: 10s; animation-delay: -2s; }
.scn-watching-the-bark .bird-b { top: 12%; left: 70%; animation-duration: 14s; animation-delay: -5s; }
.scn-watching-the-bark .sunbeam {
  position: absolute; top: 20%; left: 35%; width: 60px; height: 100px;
  background: radial-gradient(ellipse at 50% 0%, rgba(255,220,150,0.15) 0%, transparent 70%);
  filter: blur(8px);
  animation: wtb-beam 3s ease-in-out infinite alternate;
}

@keyframes wtb-sky { 0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.6; } }
@keyframes wtb-sea { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-5px) scaleY(1.02); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes wtb-frame { 0% { border-color: #3a3a4a; box-shadow: inset 0 0 20px rgba(0,0,0,0.8); } 50% { border-color: #5a5a6a; box-shadow: inset 0 0 40px rgba(0,0,0,0.9); } 100% { border-color: #3a3a4a; box-shadow: inset 0 0 20px rgba(0,0,0,0.8); } }
@keyframes wtb-ship { 0% { transform: rotate(-3deg) translateY(0); } 50% { transform: rotate(3deg) translateY(-2px); } 100% { transform: rotate(-3deg) translateY(0); } }
@keyframes wtb-sail { 0% { transform: rotate(-5deg) scaleX(0.9); } 50% { transform: rotate(5deg) scaleX(1.1); } 100% { transform: rotate(-5deg) scaleX(0.9); } }
@keyframes wtb-bird { 0% { transform: translateX(0) translateY(0) rotate(0); } 25% { transform: translateX(30px) translateY(-15px) rotate(10deg); } 50% { transform: translateX(60px) translateY(0) rotate(0); } 75% { transform: translateX(90px) translateY(-10px) rotate(-10deg); } 100% { transform: translateX(120px) translateY(0) rotate(0); } }
@keyframes wtb-beam { 0% { opacity: 0.2; transform: scaleY(0.8); } 50% { opacity: 0.5; transform: scaleY(1.2); } 100% { opacity: 0.2; transform: scaleY(0.8); } }

/* Scene: prayers-and-signals */
.scn-prayers-and-signals {
  background: linear-gradient(180deg, #0a0c1e 0%, #141a38 50%, #1a2242 80%, #0f1428 100%),
              radial-gradient(ellipse at 70% 30%, rgba(100,120,200,0.05) 0%, transparent 60%);
}
.scn-prayers-and-signals .bg-sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #1c2648 0%, #111838 100%);
  animation: pas-sky 15s ease-in-out infinite alternate;
}
.scn-prayers-and-signals .bg-sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #0f1a30 0%, #060b18 100%);
  border-radius: 40% 60% 0 0 / 20% 30% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.7);
  animation: pas-sea 10s ease-in-out infinite alternate;
}
.scn-prayers-and-signals .window-frame {
  position: absolute; top: 5%; left: 20%; width: 100px; height: 140px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border: 3px solid #3a3a4a;
  border-radius: 6px;
  box-shadow: inset 0 0 15px rgba(0,0,0,0.8), 0 4px 10px rgba(0,0,0,0.5);
  animation: pas-frame 3s ease-in-out infinite alternate;
}
.scn-prayers-and-signals .lightning {
  position: absolute; top: 10%; left: 55%; width: 4px; height: 100px;
  background: linear-gradient(180deg, rgba(255,255,255,0.9) 0%, rgba(200,220,255,0.3) 100%);
  border-radius: 2px;
  filter: blur(2px);
  animation: pas-light 4s step-end infinite;
}
.scn-prayers-and-signals .ship {
  position: absolute; bottom: 35%; left: 55%; width: 50px; height: 25px;
  background: linear-gradient(135deg, #1a1410 0%, #0a0806 100%);
  clip-path: polygon(10% 80%, 30% 0, 70% 0, 90% 80%, 70% 100%, 30% 100%);
  transform-origin: 50% 80%;
  animation: pas-ship 8s ease-in-out infinite alternate;
}
.scn-prayers-and-signals .mast {
  position: absolute; bottom: 50%; left: 58%; width: 3px; height: 50px;
  background: linear-gradient(180deg, #3a3028 0%, #1a1410 100%);
  border-radius: 1px;
  transform-origin: 50% 100%;
  animation: pas-mast 6s ease-in-out infinite alternate;
}
.scn-prayers-and-signals .wave {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, transparent 0%, rgba(20,40,80,0.4) 100%);
  border-radius: 50%;
  filter: blur(8px);
}
.scn-prayers-and-signals .wave-1 { animation: pas-wave1 7s ease-in-out infinite alternate; }
.scn-prayers-and-signals .wave-2 { animation: pas-wave2 11s ease-in-out infinite alternate; animation-delay: -3s; }

@keyframes pas-sky { 0% { opacity: 0.7; } 33% { opacity: 0.9; } 66% { opacity: 0.5; } 100% { opacity: 0.8; } }
@keyframes pas-sea { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-8px) scaleY(0.98); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes pas-frame { 0% { border-color: #3a3a4a; } 50% { border-color: #5a5a6a; box-shadow: inset 0 0 30px rgba(0,0,0,0.9); } 100% { border-color: #3a3a4a; } }
@keyframes pas-light { 0% { opacity: 0; } 10% { opacity: 1; transform: scaleY(1) scaleX(1) rotate(0); } 20% { opacity: 0; } 30% { opacity: 0.8; transform: scaleY(0.6) scaleX(1.5) rotate(5deg); } 40% { opacity: 0; } 100% { opacity: 0; } }
@keyframes pas-ship { 0% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(5deg) translateY(-3px); } 100% { transform: rotate(-5deg) translateY(0); } }
@keyframes pas-mast { 0% { transform: rotate(-8deg); } 50% { transform: rotate(8deg); } 100% { transform: rotate(-8deg); } }
@keyframes pas-wave1 { 0% { transform: translateX(0) scaleY(1); } 50% { transform: translateX(-20px) scaleY(1.1); } 100% { transform: translateX(40px) scaleY(0.9); } }
@keyframes pas-wave2 { 0% { transform: translateX(0) scaleY(1); } 50% { transform: translateX(30px) scaleY(0.9); } 100% { transform: translateX(-40px) scaleY(1.1); } }

/* Scene: distress-signals */
.scn-distress-signals {
  background: linear-gradient(180deg, #0b0e1a 0%, #141c34 40%, #1a2240 70%, #0d1220 100%),
              radial-gradient(ellipse at 50% 20%, rgba(200,100,30,0.08) 0%, transparent 60%);
}
.scn-distress-signals .bg-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #141c38 0%, #0a0e1c 100%);
  animation: ds-sky 18s ease-in-out infinite alternate;
}
.scn-distress-signals .bg-sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #0f1a2e 0%, #050a14 100%);
  border-radius: 50% 50% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 6px 18px rgba(0,0,0,0.8);
  animation: ds-sea 9s ease-in-out infinite alternate;
}
.scn-distress-signals .gun-flash {
  position: absolute; top: 20%; left: 45%; width: 20px; height: 20px;
  background: radial-gradient(circle, rgba(255,255,200,0.9) 0%, rgba(255,200,50,0.3) 50%, transparent 70%);
  border-radius: 50%;
  filter: blur(4px);
  animation: ds-flash 3s step-end infinite;
}
.scn-distress-signals .torch {
  position: absolute; width: 8px; height: 18px;
  background: linear-gradient(180deg, #e08230 0%, #b05020 50%, #6a2010 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  filter: blur(1px);
  animation: ds-torch 1.5s ease-in-out infinite alternate;
}
.scn-distress-signals .torch-a { bottom: 25%; left: 35%; animation-duration: 1.2s; }
.scn-distress-signals .torch-b { bottom: 28%; left: 55%; animation-duration: 1.8s; animation-delay: -0.6s; }
.scn-distress-signals .ship {
  position: absolute; bottom: 30%; left: 50%; width: 70px; height: 35px;
  background: linear-gradient(135deg, #1a1410 0%, #0a0806 100%);
  clip-path: polygon(5% 70%, 25% 0, 75% 0, 95% 70%, 75% 100%, 25% 100%);
  transform-origin: 50% 70%;
  animation: ds-ship 7s ease-in-out infinite alternate;
}
.scn-distress-signals .smoke {
  position: absolute; bottom: 35%; left: 30%; width: 30px; height: 40px;
  background: linear-gradient(0deg, rgba(80,80,80,0.2) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(12px);
  animation: ds-smoke 6s ease-in-out infinite alternate;
}

@keyframes ds-sky { 0% { opacity: 0.8; } 33% { opacity: 1; } 66% { opacity: 0.6; } 100% { opacity: 0.9; } }
@keyframes ds-sea { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-4px) scaleY(1.03); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes ds-flash { 0%,100% { opacity: 0; transform: scale(0.5); } 15% { opacity: 1; transform: scale(1.5); } 25% { opacity: 0; transform: scale(0.8); } 35% { opacity: 0.7; transform: scale(1.2); } 45% { opacity: 0; transform: scale(0.5); } }
@keyframes ds-torch { 0% { opacity: 0.6; transform: translateY(0) scale(0.9); } 50% { opacity: 1; transform: translateY(-3px) scale(1.1); } 100% { opacity: 0.8; transform: translateY(0) scale(1); } }
@keyframes ds-ship { 0% { transform: rotate(-4deg) translateY(0); } 50% { transform: rotate(4deg) translateY(-2px); } 100% { transform: rotate(-4deg) translateY(0); } }
@keyframes ds-smoke { 0% { transform: translateX(0) translateY(0) scale(1); opacity: 0.3; } 50% { transform: translateX(15px) translateY(-20px) scale(1.5); opacity: 0.1; } 100% { transform: translateX(-10px) translateY(-10px) scale(0.8); opacity: 0.2; } }

/* Scene: shipwreck-averted */
.scn-shipwreck-averted {
  background: linear-gradient(180deg, #0a0d1c 0%, #121a36 45%, #182040 75%, #0c1120 100%),
              radial-gradient(ellipse at 60% 30%, rgba(180,120,40,0.06) 0%, transparent 60%);
}
.scn-shipwreck-averted .bg-sky {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #141c3a 0%, #080b1a 100%);
  animation: sa-sky 20s ease-in-out infinite alternate;
}
.scn-shipwreck-averted .bg-sea {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #0f1830 0%, #040810 100%);
  border-radius: 30% 70% 0 0 / 15% 25% 0 0;
  box-shadow: inset 0 12px 30px rgba(0,0,0,0.7);
  animation: sa-sea 11s ease-in-out infinite alternate;
}
.scn-shipwreck-averted .shore {
  position: absolute; bottom: 20%; left: 0; right: 40%; height: 8%;
  background: linear-gradient(180deg, #1a1410 0%, #0e0a06 100%);
  border-radius: 0 20% 0 0;
  box-shadow: 0 -2px 10px rgba(0,0,0,0.6);
  animation: sa-shore 3s ease-in-out infinite alternate;
}
.scn-shipwreck-averted .torch {
  position: absolute; width: 10px; height: 22px;
  background: linear-gradient(180deg, #f09040 0%, #c06020 40%, #802010 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  filter: blur(1px);
  box-shadow: 0 0 15px 3px rgba(240,144,64,0.4);
  animation: sa-torch 1.2s ease-in-out infinite alternate;
}
.scn-shipwreck-averted .torch-a { bottom: 25%; left: 30%; animation-delay: -0.4s; }
.scn-shipwreck-averted .torch-b { bottom: 22%; left: 50%; animation-duration: 1.5s; animation-delay: -0.9s; }
.scn-shipwreck-averted .ship {
  position: absolute; bottom: 30%; left: 55%; width: 80px; height: 40px;
  background: linear-gradient(135deg, #1a1410 0%, #0a0806 100%);
  clip-path: polygon(10% 75%, 30% 0, 70% 0, 90% 75%, 70% 100%, 30% 100%);
  transform-origin: 50% 75%;
  animation: sa-ship 6s ease-in-out infinite alternate;
}
.scn-shipwreck-averted .lightning {
  position: absolute; top: 5%; left: 20%; width: 3px; height: 80px;
  background: linear-gradient(180deg, rgba(255,255,255,0.8) 0%, rgba(200,220,255,0.2) 100%);
  border-radius: 2px;
  filter: blur(1px);
  animation: sa-light 5s step-end infinite;
}

@keyframes sa-sky { 0% { opacity: 0.6; } 50% { opacity: 0.9; } 100% { opacity: 0.7; } }
@keyframes sa-sea { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-6px) scaleY(0.97); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes sa-shore { 0% { transform: scaleX(1) translateY(0); } 50% { transform: scaleX(0.95) translateY(2px); } 100% { transform: scaleX(1) translateY(0); } }
@keyframes sa-torch { 0% { opacity: 0.7; transform: translateY(0) scale(0.9) rotate(0); } 50% { opacity: 1; transform: translateY(-4px) scale(1.1) rotate(5deg); } 100% { opacity: 0.8; transform: translateY(0) scale(1) rotate(0); } }
@keyframes sa-ship { 0% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(2deg) translateY(-3px); } 100% { transform: rotate(-2deg) translateY(0); } }
@keyframes sa-light { 0% { opacity: 0; } 15% { opacity: 1; transform: scaleY(1) rotate(0); } 25% { opacity: 0; } 35% { opacity: 0.6; transform: scaleY(0.7) rotate(8deg); } 45% { opacity: 0; } 100% { opacity: 0; } }

/* questions-about-night */
.scn-questions-about-night {
  background: 
    linear-gradient(135deg, #1a1a2e 0%, #2a2a44 40%, #3c3c5c 100%),
    radial-gradient(ellipse at 40% 60%, #2a2a44 0%, transparent 60%);
}
.scn-questions-about-night .bg-depth          { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 100%, #1a1a2e 0%, #0e0e18 100%); animation: qan-pulse 18s ease-in-out infinite alternate; }
.scn-questions-about-night .window-shade      { position:absolute; bottom:50%; left:15%; width:30%; height:40%; background: linear-gradient(180deg, #3a4a5a 0%, #1a2a3a 100%); border-radius: 4px 4px 0 0; border-left: 2px solid #2a2a3a; border-right: 2px solid #2a2a3a; box-shadow: inset 0 0 20px rgba(0,0,0,.4); animation: qan-shade 12s ease-in-out infinite; }
.scn-questions-about-night .bed-frame         { position:absolute; bottom:10%; left:10%; width:45%; height:25%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 6px 6px 20px 20px; box-shadow: 0 4px 8px rgba(0,0,0,.5); }
.scn-questions-about-night .figure-sit        { position:absolute; bottom:14%; left:22%; width:16%; height:28%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: qan-sit-breathe 4s ease-in-out infinite; }
.scn-questions-about-night .figure-stand      { position:absolute; bottom:28%; left:48%; width:10%; height:36%; background: linear-gradient(180deg, #4a3a2a 0%, #1a0a00 100%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: qan-stand 5s ease-in-out infinite; }
.scn-questions-about-night .candle-glow       { position:absolute; bottom:18%; left:60%; width:4%; height:6%; background: radial-gradient(circle, #ffd680 0%, #b06020 70%); border-radius: 40% 40% 20% 20%; box-shadow: 0 0 30px 8px #b06020, 0 0 60px 20px rgba(176,96,32,.3); animation: qan-candle 2.5s ease-in-out infinite alternate; }
.scn-questions-about-night .wall-shadow       { position:absolute; bottom:0; left:20%; width:60%; height:60%; background: radial-gradient(ellipse at 50% 0%, #0e0e18 0%, transparent 70%); filter: blur(12px); animation: qan-shadow 8s ease-in-out infinite alternate; }
@keyframes qan-pulse         { 0% { opacity:.85; filter:brightness(1) } 50% { opacity:1; filter:brightness(1.15) } 100% { opacity:.9; filter:brightness(1) } }
@keyframes qan-shade         { 0% { transform:translateX(0) } 50% { transform:translateX(-4px) } 100% { transform:translateX(0) } }
@keyframes qan-sit-breathe   { 0% { transform:translateY(0) scaleY(1) } 50% { transform:translateY(-3px) scaleY(1.02) } 100% { transform:translateY(0) scaleY(1) } }
@keyframes qan-stand         { 0% { transform:translateX(0) rotate(-2deg) } 50% { transform:translateX(2px) rotate(2deg) } 100% { transform:translateX(0) rotate(-2deg) } }
@keyframes qan-candle        { 0% { box-shadow:0 0 20px 5px #b06020,0 0 40px 10px rgba(176,96,32,.3); opacity:.9; transform:scaleY(1) } 50% { box-shadow:0 0 35px 10px #ffd680,0 0 70px 20px rgba(255,214,128,.4); opacity:1; transform:scaleY(1.2) } 100% { box-shadow:0 0 25px 6px #b06020,0 0 50px 15px rgba(176,96,32,.35); opacity:.95; transform:scaleY(1) } }
@keyframes qan-shadow        { 0% { opacity:.3; filter:blur(10px) } 50% { opacity:.5; filter:blur(16px) } 100% { opacity:.35; filter:blur(12px) } }

/* haunted-room */
.scn-haunted-room {
  background: 
    linear-gradient(180deg, #0f0f1a 0%, #1a1a2e 30%, #2a2a3e 100%),
    radial-gradient(ellipse at 70% 40%, #1a1a2e 0%, transparent 70%);
}
.scn-haunted-room .bg-void      { position:absolute; inset:0; background: radial-gradient(ellipse at 60% 20%, #0f0f1a 0%, #050510 100%); animation: haq-void 20s linear infinite; }
.scn-haunted-room .door-plank   { position:absolute; bottom:20%; left:30%; width:25%; height:50%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 6px; box-shadow: inset 0 4px 12px rgba(0,0,0,.7), 0 4px 8px rgba(0,0,0,.6); }
.scn-haunted-room .bolt-iron    { position:absolute; bottom:35%; left:48%; width:3%; height:8%; background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius: 2px; box-shadow: 2px 2px 4px rgba(0,0,0,.5); animation: haq-bolt 3s ease-in-out infinite; }
.scn-haunted-room .figure-cower { position:absolute; bottom:18%; left:20%; width:12%; height:34%; background: linear-gradient(180deg, #2a1a1a 0%, #0a0505 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: haq-cower 0.8s ease-in-out infinite alternate; }
.scn-haunted-room .ghost-wisp   { position:absolute; bottom:40%; left:35%; width:14%; height:30%; background: radial-gradient(ellipse, rgba(200,220,255,.15) 0%, rgba(200,220,255,.05) 70%); filter: blur(8px); border-radius: 50%; animation: haq-wisp 6s ease-in-out infinite; }
.scn-haunted-room .candle-fear  { position:absolute; bottom:25%; left:55%; width:3%; height:5%; background: radial-gradient(circle, #ffaa40 0%, #a04020 70%); border-radius: 40%; box-shadow: 0 0 20px 5px #a04020, 0 0 40px 10px rgba(160,64,32,.3); animation: haq-candle-f 1s ease-in-out infinite alternate; }
.scn-haunted-room .floor-dark   { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #1a1a22 0%, #0a0a10 100%); }
.scn-haunted-room .shadow-sway  { position:absolute; bottom:0; left:25%; width:50%; height:60%; background: radial-gradient(ellipse at 50% 100%, #050510 0%, transparent 60%); filter: blur(8px); animation: haq-sway 4s ease-in-out infinite alternate; }
@keyframes haq-void       { 0% { opacity:.7 } 50% { opacity:.9 } 100% { opacity:.7 } }
@keyframes haq-bolt       { 0% { transform:translateY(0); opacity:.8 } 50% { transform:translateY(4px); opacity:1 } 100% { transform:translateY(0); opacity:.8 } }
@keyframes haq-cower      { 0% { transform:translateX(0) scale(1) } 50% { transform:translateX(2px) scale(1.02) } 100% { transform:translateX(0) scale(1) } }
@keyframes haq-wisp       { 0% { transform:translateX(0) translateY(0) scale(.9); opacity:.4 } 50% { transform:translateX(-8px) translateY(4px) scale(1.1); opacity:.7 } 100% { transform:translateX(0) translateY(0) scale(.9); opacity:.4 } }
@keyframes haq-candle-f   { 0% { box-shadow:0 0 15px 3px #a04020,0 0 30px 8px rgba(160,64,32,.3); transform:scaleY(1) } 50% { box-shadow:0 0 30px 8px #ffaa40,0 0 60px 15px rgba(255,170,64,.4); transform:scaleY(1.3) } 100% { box-shadow:0 0 20px 5px #a04020,0 0 40px 10px rgba(160,64,32,.35); transform:scaleY(1) } }
@keyframes haq-sway       { 0% { transform:translateX(0); filter:blur(8px) } 50% { transform:translateX(10px); filter:blur(12px) } 100% { transform:translateX(0); filter:blur(8px) } }

/* emily-resigned */
.scn-emily-resigned {
  background: 
    linear-gradient(180deg, #1a1a2e 0%, #2a2a44 50%, #3a3a5a 100%),
    radial-gradient(ellipse at 50% 80%, #2a2a44 0%, transparent 60%);
}
.scn-emily-resigned .chamber-deep { position:absolute; inset:0; background: radial-gradient(ellipse at 40% 30%, #1a1a2e 0%, #0e0e1a 100%); animation: emr-depth 22s ease-in-out infinite alternate; }
.scn-emily-resigned .window-soft  { position:absolute; bottom:45%; left:20%; width:25%; height:35%; background: linear-gradient(180deg, #3a4a5a 0%, #1a2a3a 100%); border-radius: 4px; box-shadow: inset 0 0 10px rgba(255,255,255,.05); animation: emr-window 10s ease-in-out infinite; }
.scn-emily-resigned .figure-seated{ position:absolute; bottom:22%; left:35%; width:14%; height:30%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: emr-seated 6s ease-in-out infinite; }
.scn-emily-resigned .small-table  { position:absolute; bottom:16%; left:33%; width:18%; height:10%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 6px; box-shadow: 0 4px 8px rgba(0,0,0,.4); }
.scn-emily-resigned .open-book    { position:absolute; bottom:18%; left:37%; width:8%; height:6%; background: linear-gradient(180deg, #6a5a3a 0%, #4a3a1a 100%); border-radius: 2px; transform: rotate(-5deg); box-shadow: 1px 2px 4px rgba(0,0,0,.3); animation: emr-book 8s ease-in-out infinite; }
.scn-emily-resigned .candle-calm  { position:absolute; bottom:24%; left:55%; width:3%; height:5%; background: radial-gradient(circle, #ffd680 0%, #b06020 70%); border-radius: 40%; box-shadow: 0 0 20px 6px #b06020, 0 0 40px 12px rgba(176,96,32,.3); animation: emr-candle 3s ease-in-out infinite alternate; }
.scn-emily-resigned .rug-dark     { position:absolute; bottom:0; left:10%; width:80%; height:8%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 20% 20% 0 0; }
@keyframes emr-depth   { 0% { opacity:.8; filter:brightness(1) } 50% { opacity:.95; filter:brightness(1.05) } 100% { opacity:.85; filter:brightness(1) } }
@keyframes emr-window  { 0% { opacity:.7; transform:scaleX(1) } 50% { opacity:.85; transform:scaleX(1.02) } 100% { opacity:.7; transform:scaleX(1) } }
@keyframes emr-seated  { 0% { transform:translateY(0) rotate(-1deg) } 50% { transform:translateY(-2px) rotate(1deg) } 100% { transform:translateY(0) rotate(-1deg) } }
@keyframes emr-book    { 0% { transform: rotate(-5deg) } 50% { transform: rotate(-3deg) translateY(-1px) } 100% { transform: rotate(-5deg) } }
@keyframes emr-candle  { 0% { box-shadow:0 0 15px 4px #b06020,0 0 30px 8px rgba(176,96,32,.2); opacity:.9; transform:scaleY(1) } 50% { box-shadow:0 0 25px 8px #ffd680,0 0 50px 15px rgba(255,214,128,.4); opacity:1; transform:scaleY(1.1) } 100% { box-shadow:0 0 18px 5px #b06020,0 0 35px 10px rgba(176,96,32,.25); opacity:.95; transform:scaleY(1) } }

/* drawing-utensils */
.scn-drawing-utensils {
  background: 
    linear-gradient(180deg, #1a1a2e 0%, #2a2a44 40%, #3c3c5a 100%),
    radial-gradient(ellipse at 30% 70%, #2a2a44 0%, transparent 70%);
}
.scn-drawing-utensils .wall-cool      { position:absolute; inset:0; background: radial-gradient(ellipse at 60% 40%, #1a1a2e 0%, #0e0e1a 100%); animation: dru-wall 20s ease-in-out infinite alternate; }
.scn-drawing-utensils .high-chest     { position:absolute; bottom:15%; right:10%; width:18%; height:40%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 4px 4px 0 0; box-shadow: -4px 0 8px rgba(0,0,0,.3), inset 0 4px 8px rgba(0,0,0,.5); }
.scn-drawing-utensils .book-stack     { position:absolute; bottom:35%; right:14%; width:10%; height:8%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 2px; box-shadow: 0 2px 4px rgba(0,0,0,.4); transform: rotate(-5deg); }
.scn-drawing-utensils .figure-draw    { position:absolute; bottom:20%; left:30%; width:16%; height:32%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: dru-draw 4s ease-in-out infinite; }
.scn-drawing-utensils .sketch-leaf    { position:absolute; bottom:22%; left:42%; width:12%; height:8%; background: linear-gradient(180deg, #7a6a5a 0%, #4a3a2a 100%); border-radius: 2px; transform: rotate(2deg); box-shadow: 1px 2px 4px rgba(0,0,0,.3); }
.scn-drawing-utensils .pencil-stick   { position:absolute; bottom:24%; left:46%; width:6%; height:2%; background: linear-gradient(90deg, #5a4a3a 0%, #8a7a6a 50%, #9a8a7a 100%); border-radius: 1px; transform: rotate(15deg); animation: dru-pencil 3s ease-in-out infinite alternate; }
.scn-drawing-utensils .candle-work    { position:absolute; bottom:28%; left:52%; width:3%; height:5%; background: radial-gradient(circle, #ffd680 0%, #b06020 70%); border-radius: 40%; box-shadow: 0 0 20px 5px #b06020, 0 0 40px 10px rgba(176,96,32,.3); animation: dru-candle 2s ease-in-out infinite alternate; }
.scn-drawing-utensils .floor-shadow   { position:absolute; bottom:0; left:10%; width:80%; height:15%; background: radial-gradient(ellipse at 50% 100%, #0e0e1a 0%, transparent 70%); filter: blur(6px); animation: dru-floor 8s ease-in-out infinite alternate; }
@keyframes dru-wall     { 0% { opacity:.8; filter:brightness(1) } 50% { opacity:.95; filter:brightness(1.1) } 100% { opacity:.85; filter:brightness(1) } }
@keyframes dru-draw     { 0% { transform:translateX(0) translateY(0) rotate(-1deg) } 50% { transform:translateX(2px) translateY(-1px) rotate(1deg) } 100% { transform:translateX(0) translateY(0) rotate(-1deg) } }
@keyframes dru-pencil   { 0% { transform:rotate(15deg) scaleY(1) } 50% { transform:rotate(10deg) scaleY(1.05) } 100% { transform:rotate(15deg) scaleY(1) } }
@keyframes dru-candle   { 0% { box-shadow:0 0 15px 3px #b06020,0 0 30px 8px rgba(176,96,32,.3); opacity:.9; transform:scaleY(1) } 50% { box-shadow:0 0 25px 8px #ffd680,0 0 50px 15px rgba(255,214,128,.4); opacity:1; transform:scaleY(1.15) } 100% { box-shadow:0 0 18px 5px #b06020,0 0 35px 10px rgba(176,96,32,.35); opacity:.95; transform:scaleY(1) } }
@keyframes dru-floor    { 0% { opacity:.3; filter:blur(6px) } 50% { opacity:.5; filter:blur(10px) } 100% { opacity:.35; filter:blur(6px) } }

.scn-supper-cottage {
  background: 
    linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 60%, #1a0a00 100%),
    radial-gradient(ellipse at 40% 60%, rgba(255, 150, 50, 0.35) 0%, transparent 60%);
}
.scn-supper-cottage .room-bg {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2010 100%);
  border-radius: 0 0 20% 20%;
  box-shadow: inset 0 20px 30px rgba(0,0,0,0.6);
  animation: sc-sky 12s ease-in-out infinite alternate;
}
.scn-supper-cottage .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #4a3018 0%, #2a1a08 100%);
  box-shadow: inset 0 8px 12px rgba(0,0,0,0.5);
}
.scn-supper-cottage .fireplace {
  position: absolute; bottom: 30%; left: 30%; width: 40%; height: 50%;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 50% 50% / 20% 20% 80% 80%;
  box-shadow: 0 0 20px rgba(0,0,0,0.6);
}
.scn-supper-cottage .fire {
  position: absolute; bottom: 40%; left: 40%; width: 20%; height: 25%;
  background: radial-gradient(ellipse, #ffd080 0%, #ff8020 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(255, 128, 32, 0.6);
  animation: sc-fire 2s ease-in-out infinite alternate;
}
.scn-supper-cottage .table {
  position: absolute; bottom: 30%; left: 50%; width: 30%; height: 15%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #6a5040 0%, #4a3020 100%);
  border-radius: 0 0 10% 10%;
  box-shadow: 0 8px 12px rgba(0,0,0,0.4);
}
.scn-supper-cottage .figure {
  position: absolute; bottom: 30%; left: 35%; width: 8%; height: 30%;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sc-figure 6s ease-in-out infinite;
}
.scn-supper-cottage .chair {
  position: absolute; bottom: 30%; left: 30%; width: 12%; height: 25%;
  background: linear-gradient(180deg, #5a4030 0%, #3a2010 100%);
  border-radius: 10% 10% 30% 30%;
  box-shadow: 2px 0 6px rgba(0,0,0,0.3);
  animation: sc-chair 10s ease-in-out infinite alternate;
}
.scn-supper-cottage .window {
  position: absolute; bottom: 50%; right: 10%; width: 15%; height: 20%;
  background: linear-gradient(180deg, #1a1a3a 0%, #0a0a1a 100%);
  border: 4px solid #4a3020;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.8);
  overflow: hidden;
}
.scn-supper-cottage .window::after {
  content: '';
  position: absolute; inset: 0;
  background: repeating-linear-gradient(90deg, transparent, transparent 4px, rgba(255,255,255,0.05) 4px, rgba(255,255,255,0.05) 8px);
  animation: sc-rain 1.5s linear infinite;
}

@keyframes sc-sky { 0% { opacity: 0.7 } 50% { opacity: 0.9 } 100% { opacity: 0.7 } }
@keyframes sc-fire { 0% { box-shadow: 0 0 30px 15px rgba(255,128,32,0.5); transform: scale(0.95); } 50% { box-shadow: 0 0 50px 25px rgba(255,180,64,0.7); transform: scale(1.05); } 100% { box-shadow: 0 0 35px 18px rgba(255,128,32,0.55); transform: scale(1); } }
@keyframes sc-figure { 0%,100% { transform: translateX(0) rotate(0); } 25% { transform: translateX(-2px) rotate(-2deg); } 75% { transform: translateX(2px) rotate(2deg); } }
@keyframes sc-chair { 0%,100% { transform: rotate(0); } 50% { transform: rotate(2deg); } }
@keyframes sc-rain { 0% { transform: translateY(-100%); } 100% { transform: translateY(100%); } }

.scn-bed-chamber-anxiety {
  background: 
    linear-gradient(180deg, #1a1a2e 0%, #0d0d1a 60%, #050510 100%),
    radial-gradient(ellipse at 30% 20%, rgba(150, 180, 255, 0.08) 0%, transparent 50%);
}
.scn-bed-chamber-anxiety .chamber-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #1e1e30 0%, #0e0e1a 100%);
  animation: bc-bg 20s ease-in-out infinite alternate;
}
.scn-bed-chamber-anxiety .window-moon {
  position: absolute; top: 15%; right: 8%; width: 20%; height: 25%;
  background: radial-gradient(circle at 50% 30%, #c0d0ff 0%, #2a2a4e 60%, transparent 70%);
  border: 3px solid #3a3a5a;
  border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.9);
}
.scn-bed-chamber-anxiety .moonbeam {
  position: absolute; top: 20%; right: 8%; width: 20%; height: 60%;
  background: linear-gradient(180deg, rgba(200, 220, 255, 0.15) 0%, transparent 90%);
  transform: rotate(-20deg);
  transform-origin: top right;
  animation: bc-beam 8s ease-in-out infinite alternate;
}
.scn-bed-chamber-anxiety .bed {
  position: absolute; bottom: 10%; left: 10%; width: 60%; height: 40%;
  background: linear-gradient(180deg, #3a2a3a 0%, #1a0a1a 100%);
  border-radius: 10% 10% 30% 30%;
  box-shadow: 0 -10px 20px rgba(0,0,0,0.5);
}
.scn-bed-chamber-anxiety .figure-sitting {
  position: absolute; bottom: 15%; left: 30%; width: 8%; height: 35%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bc-figure 4s ease-in-out infinite;
}
.scn-bed-chamber-anxiety .curtain {
  position: absolute; top: 0; right: 25%; width: 8%; height: 100%;
  background: linear-gradient(180deg, #2a1a2a 0%, #0a0a1a 100%);
  border-radius: 0 20% 20% 0;
  animation: bc-curtain 12s ease-in-out infinite alternate;
}
.scn-bed-chamber-anxiety .shadow {
  position: absolute; bottom: 10%; left: 20%; width: 30%; height: 20%;
  background: rgba(0,0,0,0.4);
  border-radius: 50%;
  filter: blur(10px);
  animation: bc-shadow 6s ease-in-out infinite alternate;
}

@keyframes bc-bg { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes bc-beam { 0% { transform: rotate(-20deg) scaleX(1); opacity: 0.7; } 50% { transform: rotate(-15deg) scaleX(1.1); opacity: 1; } 100% { transform: rotate(-25deg) scaleX(0.9); opacity: 0.6; } }
@keyframes bc-figure { 0%,100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-3px) rotate(2deg); } }
@keyframes bc-curtain { 0% { transform: translateX(0); } 50% { transform: translateX(5px); } 100% { transform: translateX(-5px); } }
@keyframes bc-shadow { 0% { opacity: 0.3; transform: scale(1); } 50% { opacity: 0.6; transform: scale(1.05); } 100% { opacity: 0.4; transform: scale(0.95); } }

.scn-morning-view-tuscany {
  background: 
    linear-gradient(180deg, #ffe8c0 0%, #87ceeb 40%, #5ba3d9 60%, #3a7ab5 100%),
    radial-gradient(ellipse at 80% 20%, rgba(255, 220, 150, 0.3) 0%, transparent 60%);
}
.scn-morning-view-tuscany .sky-morning {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #ffddaa 0%, #87ceeb 100%);
  animation: mt-sky 15s ease-in-out infinite alternate;
}
.scn-morning-view-tuscany .sun {
  position: absolute; top: 10%; left: 70%; width: 12%; height: 12%;
  background: radial-gradient(circle, #fff5d0 0%, #ffcc66 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 60px 30px rgba(255, 204, 102, 0.4);
  animation: mt-sun 10s ease-in-out infinite alternate;
}
.scn-morning-view-tuscany .mountains-bg {
  position: absolute; bottom: 40%; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #6a8a6a 0%, #4a6a4a 100%);
  border-radius: 40% 60% 0 0 / 50% 70% 0 0;
  box-shadow: 0 -10px 20px rgba(0,0,0,0.2);
  animation: mt-mtnbg 20s ease-in-out infinite alternate;
}
.scn-morning-view-tuscany .mountains-mid {
  position: absolute; bottom: 35%; left: 10%; width: 90%; height: 25%;
  background: linear-gradient(180deg, #5a7a5a 0%, #3a5a3a 100%);
  border-radius: 30% 40% 0 0 / 60% 50% 0 0;
  box-shadow: inset 0 5px 15px rgba(0,0,0,0.3);
  animation: mt-mtnmid 25s ease-in-out infinite alternate;
}
.scn-morning-view-tuscany .forest {
  position: absolute; bottom: 20%; left: 5%; right: 5%; height: 20%;
  background: linear-gradient(180deg, #2a5a2a 0%, #1a3a1a 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.4);
  animation: mt-forest 18s ease-in-out infinite alternate;
}
.scn-morning-view-tuscany .trees {
  position: absolute; bottom: 25%; left: 15%; width: 10%; height: 30%;
  background: linear-gradient(180deg, #3a6a3a 0%, #1a3a1a 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  box-shadow: 0 0 10px rgba(0,0,0,0.3);
  animation: mt-trees 6s ease-in-out infinite;
}
.scn-morning-view-tuscany .trees::before {
  content: '';
  position: absolute; bottom: 0; left: 30%; width: 80%; height: 80%;
  background: linear-gradient(180deg, #2a5a2a 0%, #1a3a1a 100%);
  border-radius: 50%;
  transform: scale(0.8);
}
.scn-morning-view-tuscany .haze {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, rgba(255,220,180,0.3) 0%, transparent 100%);
  filter: blur(10px);
  animation: mt-haze 30s ease-in-out infinite alternate;
}

@keyframes mt-sky { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.9 } }
@keyframes mt-sun { 0% { box-shadow: 0 0 40px 20px rgba(255,204,102,0.3); transform: scale(0.95); } 50% { box-shadow: 0 0 80px 40px rgba(255,220,150,0.5); transform: scale(1.05); } 100% { box-shadow: 0 0 50px 25px rgba(255,204,102,0.35); transform: scale(1); } }
@keyframes mt-mtnbg { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(0); } }
@keyframes mt-mtnmid { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-2px) scaleX(1.02); } 100% { transform: translateY(0) scaleX(1); } }
@keyframes mt-forest { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes mt-trees { 0%,100% { transform: rotate(0); } 50% { transform: rotate(3deg); } }
@keyframes mt-haze { 0% { opacity: 0.5; transform: translateX(0); } 50% { opacity: 0.8; transform: translateX(10px); } 100% { opacity: 0.6; transform: translateX(-10px); } }

.scn-landscape-beauty {
  background: 
    linear-gradient(180deg, #f5e6c8 0%, #d4e8b0 30%, #a0c080 60%, #7a9a5a 100%),
    radial-gradient(ellipse at 50% 30%, rgba(255, 230, 180, 0.2) 0%, transparent 60%);
}
.scn-landscape-beauty .sky-land {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #ffeedd 0%, #c0e0b0 50%, #8ab87a 100%);
  animation: lb-sky 18s ease-in-out infinite alternate;
}
.scn-landscape-beauty .sun-land {
  position: absolute; top: 10%; left: 60%; width: 10%; height: 10%;
  background: radial-gradient(circle, #fff5d0 0%, #ffcc55 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 50px 25px rgba(255, 204, 85, 0.3);
  animation: lb-sun 12s ease-in-out infinite alternate;
}
.scn-landscape-beauty .far-plain {
  position: absolute; bottom: 35%; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #b0c896 0%, #8aa86a 100%);
  border-radius: 30% 40% 0 0 / 50% 60% 0 0;
  box-shadow: 0 -5px 15px rgba(0,0,0,0.1);
  animation: lb-plain 20s ease-in-out infinite alternate;
}
.scn-landscape-beauty .mid-vines {
  position: absolute; bottom: 20%; left: 5%; right: 5%; height: 18%;
  background: repeating-linear-gradient(90deg, #6a8a4a 0px, #6a8a4a 20px, #5a7a3a 20px, #5a7a3a 40px);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 5px 15px rgba(0,0,0,0.2);
  animation: lb-vines 8s ease-in-out infinite alternate;
}
.scn-landscape-beauty .fig-tree {
  position: absolute; bottom: 20%; left: 30%; width: 15%; height: 40%;
  background: linear-gradient(180deg, #5a6a4a 0%, #3a4a2a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  box-shadow: 0 0 20px rgba(0,0,0,0.2);
  animation: lb-tree 6s ease-in-out infinite;
}
.scn-landscape-beauty .grapes {
  position: absolute; bottom: 25%; left: 40%; width: 6%; height: 6%;
  background: radial-gradient(circle, #8a4a7a 0%, #5a2a4a 100%);
  border-radius: 50%;
  box-shadow: 0 0 10px rgba(100,50,80,0.4);
  animation: lb-grapes 4s ease-in-out infinite alternate;
}
.scn-landscape-beauty .grapes::after {
  content: '';
  position: absolute; top: -20%; left: 50%; width: 4%; height: 4%;
  background: radial-gradient(circle, #9a5a8a 0%, #6a3a5a 100%);
  border-radius: 50%;
  box-shadow: 0 0 8px rgba(100,50,80,0.3);
}
.scn-landscape-beauty .haze-land {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, rgba(200,220,180,0.3) 0%, transparent 100%);
  filter: blur(8px);
  animation: lb-haze 25s ease-in-out infinite alternate;
}

@keyframes lb-sky { 0% { opacity: 0.85 } 50% { opacity: 1 } 100% { opacity: 0.9 } }
@keyframes lb-sun { 0% { box-shadow: 0 0 30px 15px rgba(255,204,85,0.3); transform: scale(0.95); } 50% { box-shadow: 0 0 60px 30px rgba(255,220,120,0.5); transform: scale(1.05); } 100% { box-shadow: 0 0 40px 20px rgba(255,204,85,0.35); transform: scale(1); } }
@keyframes lb-plain { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes lb-vines { 0% { background-position: 0 0; } 50% { background-position: 20px 0; } 100% { background-position: 40px 0; } }
@keyframes lb-tree { 0%,100% { transform: rotate(0); } 50% { transform: rotate(2deg); } }
@keyframes lb-grapes { 0% { transform: scale(1); opacity: 0.8; } 50% { transform: scale(1.1); opacity: 1; } 100% { transform: scale(0.95); opacity: 0.85; } }
@keyframes lb-haze { 0% { opacity: 0.5; transform: translateX(0); } 50% { opacity: 0.7; transform: translateX(8px); } 100% { opacity: 0.6; transform: translateX(-8px); } }

.scn-claim-to-castle {
  background: 
    radial-gradient(ellipse at 50% 100%, #3a1a0a 0%, #1a0a05 40%, #0d0500 100%),
    linear-gradient(180deg, #2b160a 0%, #1a0e08 50%, #0f0804 100%);
}
.scn-claim-to-castle .sky-fire {
  position: absolute;
  inset: 0 0 50% 0;
  background: linear-gradient(180deg, #6b3210 0%, #3a1a08 60%, transparent 100%);
  animation: ct-sky 20s ease-in-out infinite alternate;
}
.scn-claim-to-castle .castle-silhouette {
  position: absolute;
  bottom: 35%;
  left: 35%;
  width: 30%;
  height: 40%;
  background: linear-gradient(180deg, #1a0a05 0%, #0f0602 100%);
  clip-path: polygon(0% 100%, 10% 60%, 20% 70%, 30% 40%, 40% 50%, 50% 20%, 60% 50%, 70% 40%, 80% 70%, 90% 60%, 100% 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.8);
  animation: ct-castle 15s ease-in-out infinite;
}
.scn-claim-to-castle .tower-left {
  position: absolute;
  bottom: 40%;
  left: 30%;
  width: 8%;
  height: 30%;
  background: linear-gradient(180deg, #201008 0%, #140804 100%);
  border-radius: 30% 30% 0 0;
  transform: rotate(-2deg);
  animation: ct-tower 12s ease-in-out infinite alternate;
}
.scn-claim-to-castle .tower-right {
  position: absolute;
  bottom: 40%;
  right: 30%;
  width: 8%;
  height: 30%;
  background: linear-gradient(180deg, #201008 0%, #140804 100%);
  border-radius: 30% 30% 0 0;
  transform: rotate(2deg);
  animation: ct-tower 12s ease-in-out infinite alternate-reverse;
}
.scn-claim-to-castle .claimant-figure {
  position: absolute;
  bottom: 30%;
  left: 48%;
  width: 4%;
  height: 18%;
  background: linear-gradient(180deg, #2a1508 0%, #1a0a04 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: ct-claimant 8s ease-in-out infinite;
}
.scn-claim-to-castle .judge-left {
  position: absolute;
  bottom: 30%;
  left: 38%;
  width: 3.5%;
  height: 16%;
  background: linear-gradient(180deg, #1f1005 0%, #100802 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
  animation: ct-judge 10s ease-in-out infinite;
}
.scn-claim-to-castle .judge-right {
  position: absolute;
  bottom: 30%;
  right: 38%;
  width: 3.5%;
  height: 16%;
  background: linear-gradient(180deg, #1f1005 0%, #100802 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
  animation: ct-judge 10s ease-in-out infinite reverse;
}
.scn-claim-to-castle .fire-glow {
  position: absolute;
  bottom: 30%;
  left: 46%;
  width: 8%;
  height: 5%;
  background: radial-gradient(ellipse, #d06030 0%, #b04020 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px #a03010, 0 0 80px 40px rgba(160,48,16,0.4);
  animation: ct-fire 3s ease-in-out infinite alternate;
}
.scn-claim-to-castle .ground {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 35%;
  background: linear-gradient(180deg, #1c0e06 0%, #0d0702 100%);
  border-radius: 30% 30% 0 0;
  box-shadow: inset 0 10px 25px rgba(0,0,0,0.6);
  animation: ct-ground 25s ease-in-out infinite alternate;
}
@keyframes ct-sky { 0% { opacity: 0.7; } 50% { opacity: 1; } 100% { opacity: 0.8; } }
@keyframes ct-castle { 0%, 100% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-5px) scaleY(1.01); } }
@keyframes ct-tower { 0% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(0deg) translateY(-3px); } 100% { transform: rotate(2deg) translateY(0); } }
@keyframes ct-claimant { 0%, 100% { transform: translateX(0) rotate(-1deg); } 25% { transform: translateX(2px) rotate(0deg); } 50% { transform: translateX(0) rotate(1deg); } 75% { transform: translateX(-2px) rotate(0deg); } }
@keyframes ct-judge { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-2px) rotate(0deg); } 100% { transform: translateY(0) rotate(2deg); } }
@keyframes ct-fire { 0% { opacity: 0.6; transform: scale(0.95); } 50% { opacity: 1; transform: scale(1.1); } 100% { opacity: 0.7; transform: scale(1); } }
@keyframes ct-ground { 0% { background-position: 0% 0%; } 50% { background-position: 20% 0%; } 100% { background-position: 0% 0%; } }

.scn-spirit-question {
  background:
    radial-gradient(ellipse at 40% 60%, #4a1a08 0%, #1a0a04 60%, transparent 100%),
    linear-gradient(180deg, #2d1407 0%, #1a0e06 40%, #0f0804 100%);
}
.scn-spirit-question .room-back {
  position: absolute;
  inset: 0 0 30% 0;
  background: linear-gradient(180deg, #3a1a0c 0%, #2a1208 60%, transparent 100%);
  animation: sq-room 25s ease-in-out infinite alternate;
}
.scn-spirit-question .fireplace {
  position: absolute;
  bottom: 20%;
  left: 20%;
  width: 25%;
  height: 40%;
  background: linear-gradient(180deg, #3d1a0a 0%, #1a0a04 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 -15px 30px rgba(0,0,0,0.7);
  animation: sq-fireplace 18s ease-in-out infinite;
}
.scn-spirit-question .emily-figure {
  position: absolute;
  bottom: 18%;
  left: 35%;
  width: 5%;
  height: 25%;
  background: linear-gradient(180deg, #2a1508 0%, #1a0a04 100%);
  border-radius: 45% 45% 25% 25% / 55% 55% 30% 30%;
  transform-origin: bottom center;
  animation: sq-emily 6s ease-in-out infinite;
}
.scn-spirit-question .annette-figure {
  position: absolute;
  bottom: 18%;
  left: 45%;
  width: 4.5%;
  height: 22%;
  background: linear-gradient(180deg, #241207 0%, #120804 100%);
  border-radius: 45% 45% 25% 25% / 55% 55% 30% 30%;
  animation: sq-annette 7s ease-in-out infinite;
}
.scn-spirit-question .spirit-apparition {
  position: absolute;
  bottom: 25%;
  right: 25%;
  width: 10%;
  height: 30%;
  background: radial-gradient(ellipse at 50% 30%, rgba(255,160,80,0.3) 0%, rgba(200,100,40,0.1) 60%, transparent 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  filter: blur(4px);
  box-shadow: 0 0 30px 10px rgba(200,100,40,0.2);
  animation: sq-spirit 12s ease-in-out infinite alternate;
}
.scn-spirit-question .table {
  position: absolute;
  bottom: 18%;
  left: 38%;
  width: 16%;
  height: 4%;
  background: linear-gradient(180deg, #2a1408 0%, #180a04 100%);
  border-radius: 10%;
  box-shadow: 0 -3px 8px rgba(0,0,0,0.5);
  animation: sq-table 20s ease-in-out infinite;
}
.scn-spirit-question .candle {
  position: absolute;
  bottom: 22%;
  left: 42%;
  width: 2%;
  height: 6%;
  background: linear-gradient(180deg, #d08040 0%, #a05020 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 0 12px 4px #d08040, 0 0 24px 8px rgba(200,100,40,0.4);
  animation: sq-candle 4s ease-in-out infinite alternate;
}
@keyframes sq-room { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes sq-fireplace { 0%, 100% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } }
@keyframes sq-emily { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(3px) rotate(0deg); } 50% { transform: translateX(0) rotate(2deg); } 75% { transform: translateX(-3px) rotate(0deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes sq-annette { 0% { transform: translateX(0) rotate(2deg); } 25% { transform: translateX(-2px) rotate(0deg); } 50% { transform: translateX(0) rotate(-2deg); } 75% { transform: translateX(2px) rotate(0deg); } 100% { transform: translateX(0) rotate(2deg); } }
@keyframes sq-spirit { 0% { opacity: 0.2; transform: scale(0.9) translateY(0); } 50% { opacity: 0.6; transform: scale(1.05) translateY(-5px); } 100% { opacity: 0.3; transform: scale(0.95) translateY(0); } }
@keyframes sq-table { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.01); } 100% { transform: scaleX(1); } }
@keyframes sq-candle { 0% { box-shadow: 0 0 10px 3px #d08040; opacity: 0.9; } 50% { box-shadow: 0 0 18px 6px #f0a060; opacity: 1; } 100% { box-shadow: 0 0 12px 4px #d08040; opacity: 0.95; } }

.scn-emily-teases {
  background:
    radial-gradient(ellipse at 30% 70%, #4a1a0a 0%, #1a0a04 70%, transparent 100%),
    linear-gradient(180deg, #2d1408 0%, #1c0c04 50%, #0f0702 100%);
}
.scn-emily-teases .chapel-bg {
  position: absolute;
  inset: 0 0 40% 0;
  background: linear-gradient(180deg, #3a1a0c 0%, #2a1208 60%, transparent 100%);
  border-radius: 0 0 40% 40% / 0 0 20% 20%;
  animation: et-chapel 30s ease-in-out infinite alternate;
}
.scn-emily-teases .chapel-window {
  position: absolute;
  top: 15%;
  left: 35%;
  width: 30%;
  height: 35%;
  background: linear-gradient(180deg, #b06030 0%, #904020 100%);
  clip-path: polygon(20% 0%, 80% 0%, 100% 50%, 80% 100%, 20% 100%, 0% 50%);
  box-shadow: inset 0 0 40px rgba(0,0,0,0.5), 0 0 30px 10px rgba(200,100,40,0.3);
  animation: et-window 15s ease-in-out infinite;
}
.scn-emily-teases .emily-laugh {
  position: absolute;
  bottom: 22%;
  left: 40%;
  width: 5%;
  height: 22%;
  background: linear-gradient(180deg, #2a1508 0%, #1a0a04 100%);
  border-radius: 45% 45% 25% 25% / 55% 55% 30% 30%;
  animation: et-emily 4s ease-in-out infinite;
}
.scn-emily-teases .annette-angry {
  position: absolute;
  bottom: 22%;
  left: 50%;
  width: 4.5%;
  height: 20%;
  background: linear-gradient(180deg, #241207 0%, #120804 100%);
  border-radius: 45% 45% 25% 25% / 55% 55% 30% 30%;
  transform-origin: bottom center;
  animation: et-annette 6s ease-in-out infinite;
}
.scn-emily-teases .pew {
  position: absolute;
  bottom: 20%;
  left: 35%;
  width: 30%;
  height: 5%;
  background: linear-gradient(180deg, #2a1408 0%, #180a04 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 -4px 10px rgba(0,0,0,0.5);
  animation: et-pew 20s ease-in-out infinite;
}
.scn-emily-teases .candle-stand {
  position: absolute;
  bottom: 25%;
  left: 30%;
  width: 3%;
  height: 8%;
  background: linear-gradient(180deg, #d08040 0%, #a05020 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 15px 5px #d08040, 0 0 30px 10px rgba(200,100,40,0.4);
  animation: et-candle 4s ease-in-out infinite alternate;
}
.scn-emily-teases .dust-motes {
  position: absolute;
  inset: 10% 20%;
  background: radial-gradient(circle at 30% 40%, rgba(255,180,80,0.1) 0%, transparent 60%),
              radial-gradient(circle at 70% 60%, rgba(255,180,80,0.08) 0%, transparent 50%);
  filter: blur(10px);
  animation: et-dust 45s linear infinite;
}
@keyframes et-chapel { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes et-window { 0%, 100% { transform: scaleX(1); box-shadow: inset 0 0 40px rgba(0,0,0,0.5), 0 0 30px 10px rgba(200,100,40,0.3); } 50% { transform: scaleX(1.02); box-shadow: inset 0 0 50px rgba(0,0,0,0.5), 0 0 40px 15px rgba(200,100,40,0.4); } }
@keyframes et-emily { 0%, 100% { transform: translateY(0) rotate(-3deg); } 25% { transform: translateY(-3px) rotate(0deg); } 50% { transform: translateY(0) rotate(3deg); } 75% { transform: translateY(-3px) rotate(0deg); } }
@keyframes et-annette { 0% { transform: scaleY(1) rotate(2deg); } 50% { transform: scaleY(1.05) rotate(-2deg); } 100% { transform: scaleY(1) rotate(2deg); } }
@keyframes et-pew { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.01); } 100% { transform: scaleX(1); } }
@keyframes et-candle { 0% { opacity: 0.8; box-shadow: 0 0 10px 3px #d08040; } 50% { opacity: 1; box-shadow: 0 0 18px 6px #f0a060; } 100% { opacity: 0.9; box-shadow: 0 0 12px 4px #d08040; } }
@keyframes et-dust { 0% { transform: translateY(0) translateX(0); } 25% { transform: translateY(-10px) translateX(5px); } 50% { transform: translateY(0) translateX(10px); } 75% { transform: translateY(-5px) translateX(5px); } 100% { transform: translateY(0) translateX(0); } }

.scn-caterina-story {
  background:
    radial-gradient(ellipse at 40% 80%, #3a1a08 0%, #1a0a04 50%, transparent 100%),
    linear-gradient(180deg, #2d1407 0%, #1a0e06 40%, #0f0804 100%);
}
.scn-caterina-story .little-hall-wall {
  position: absolute;
  inset: 0 0 35% 0;
  background: linear-gradient(180deg, #3a1a0c 0%, #2a1208 50%, transparent 100%);
  border-radius: 0 0 30% 30% / 0 0 10% 10%;
  animation: cs-wall 28s ease-in-out infinite alternate;
}
.scn-caterina-story .hearth {
  position: absolute;
  bottom: 18%;
  left: 30%;
  width: 40%;
  height: 30%;
  background: linear-gradient(180deg, #3d1a0a 0%, #1a0a04 100%);
  border-radius: 40% 40% 0 0;
  box-shadow: inset 0 -20px 40px rgba(0,0,0,0.7);
  animation: cs-hearth 20s ease-in-out infinite;
}
.scn-caterina-story .fire-flames {
  position: absolute;
  bottom: 30%;
  left: 35%;
  width: 30%;
  height: 25%;
  background: radial-gradient(ellipse at 50% 80%, #ff8040 0%, #d05020 40%, #902010 80%, transparent 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 30% 30%;
  box-shadow: 0 0 50px 20px #a03010, 0 0 80px 40px rgba(160,48,16,0.5);
  animation: cs-fire 2s ease-in-out infinite alternate;
}
.scn-caterina-story .caterina-sit {
  position: absolute;
  bottom: 15%;
  left: 25%;
  width: 6%;
  height: 25%;
  background: linear-gradient(180deg, #2a1508 0%, #1a0a04 100%);
  border-radius: 45% 45% 25% 25% / 55% 55% 30% 30%;
  animation: cs-caterina 8s ease-in-out infinite;
}
.scn-caterina-story .carlo-figure {
  position: absolute;
  bottom: 15%;
  left: 40%;
  width: 5.5%;
  height: 23%;
  background: linear-gradient(180deg, #241207 0%, #120804 100%);
  border-radius: 45% 45% 25% 25% / 55% 55% 30% 30%;
  animation: cs-carlo 9s ease-in-out infinite;
}
.scn-caterina-story .wife-figure {
  position: absolute;
  bottom: 15%;
  left: 50%;
  width: 5%;
  height: 21%;
  background: linear-gradient(180deg, #241207 0%, #120804 100%);
  border-radius: 45% 45% 25% 25% / 55% 55% 30% 30%;
  animation: cs-wife 10s ease-in-out infinite;
}
.scn-caterina-story .stool {
  position: absolute;
  bottom: 13%;
  left: 30%;
  width: 12%;
  height: 3%;
  background: linear-gradient(180deg, #2a1408 0%, #180a04 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: cs-stool 25s ease-in-out infinite;
}
.scn-caterina-story .mug {
  position: absolute;
  bottom: 16%;
  left: 35%;
  width: 3%;
  height: 5%;
  background: linear-gradient(180deg, #c08040 0%, #a06020 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 5px 2px rgba(160,96,32,0.5);
  animation: cs-mug 12s ease-in-out infinite alternate;
}
@keyframes cs-wall { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes cs-hearth { 0%, 100% { transform: scaleY(1); } 50% { transform: scaleY(1.01); } }
@keyframes cs-fire { 0% { opacity: 0.8; transform: scaleY(1) scaleX(1); } 25% { opacity: 0.9; transform: scaleY(1.1) scaleX(0.95); } 50% { opacity: 1; transform: scaleY(1.2) scaleX(1); } 75% { opacity: 0.9; transform: scaleY(1.1) scaleX(1.05); } 100% { opacity: 0.85; transform: scaleY(1) scaleX(1); } }
@keyframes cs-caterina { 0% { transform: translateX(0) rotate(-1deg); } 25% { transform: translateX(2px) rotate(0deg); } 50% { transform: translateX(0) rotate(1deg); } 75% { transform: translateX(-2px) rotate(0deg); } 100% { transform: translateX(0) rotate(-1deg); } }
@keyframes cs-carlo { 0% { transform: translateX(0) rotate(1deg); } 25% { transform: translateX(-2px) rotate(0deg); } 50% { transform: translateX(0) rotate(-1deg); } 75% { transform: translateX(2px) rotate(0deg); } 100% { transform: translateX(0) rotate(1deg); } }
@keyframes cs-wife { 0% { transform: translateY(0) rotate(-2deg); } 25% { transform: translateY(-2px) rotate(0deg); } 50% { transform: translateY(0) rotate(2deg); } 75% { transform: translateY(-2px) rotate(0deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes cs-stool { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.01); } 100% { transform: scaleX(1); } }
@keyframes cs-mug { 0% { transform: rotate(-5deg) translateX(0); } 50% { transform: rotate(5deg) translateX(2px); } 100% { transform: rotate(-5deg) translateX(0); } }

/* escape-on-horseback */
.scn-escape-on-horseback {
  background: linear-gradient(180deg, #0a0a2e 0%, #14144a 40%, #1e1e5e 100%), radial-gradient(ellipse at 50% 100%, #1e1e5e 0%, transparent 60%);
}
.scn-escape-on-horseback .sky { position:absolute; inset:0 0 55% 0; background: linear-gradient(180deg, #1a1a3e 0%, transparent 100%); animation: ehb-sky 10s ease-in-out infinite alternate; }
.scn-escape-on-horseback .moon { position:absolute; top:12%; left:72%; width:40px; height:40px; border-radius:50%; background: radial-gradient(circle at 30% 30%, #e0e8ff 0%, #a0b8ff 80%, transparent 100%); box-shadow: 0 0 40px 12px rgba(160,184,255,.4); animation: ehb-moon 6s ease-in-out infinite; }
.scn-escape-on-horseback .cloud-a { position:absolute; top:20%; left:10%; width:120px; height:24px; background: linear-gradient(180deg, rgba(200,210,255,.3) 0%, transparent 100%); border-radius:50%; filter: blur(8px); animation: ehb-drift-a 40s linear infinite; }
.scn-escape-on-horseback .cloud-b { position:absolute; top:30%; right:5%; width:90px; height:18px; background: linear-gradient(180deg, rgba(200,210,255,.2) 0%, transparent 100%); border-radius:50%; filter: blur(6px); animation: ehb-drift-b 55s linear infinite reverse; }
.scn-escape-on-horseback .mountains { position:absolute; bottom:35%; left:0; right:0; height:30%; background: linear-gradient(180deg, #1a2a3e 0%, #0a1a2a 100%); border-radius: 50% 50% 0 0 / 70% 70% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.5); animation: ehb-mountains 15s ease-in-out infinite alternate; }
.scn-escape-on-horseback .road { position:absolute; bottom:20%; left:10%; right:10%; height:20%; background: linear-gradient(90deg, #2a3a4a 0%, #3a4a5a 30%, #2a3a4a 70%, #1a2a3a 100%); clip-path: polygon(0% 0%, 100% 0%, 90% 100%, 10% 100%); animation: ehb-road 8s ease-in-out infinite; }
.scn-escape-on-horseback .horse { position:absolute; bottom:24%; left:30%; width:80px; height:50px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 40% 30% 50% / 60% 50% 50% 60%; transform-origin: bottom center; animation: ehb-horse 0.4s steps(2) infinite; }
.scn-escape-on-horseback .rider { position:absolute; bottom:42%; left:33%; width:30px; height:40px; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius: 45% 45% 40% 40% / 55% 55% 45% 45%; transform-origin: bottom center; animation: ehb-rider 0.8s ease-in-out infinite; }
.scn-escape-on-horseback .dust { position:absolute; bottom:18%; left:28%; width:70px; height:30px; background: radial-gradient(ellipse at 50% 50%, rgba(180,180,200,.2) 0%, transparent 70%); filter: blur(10px); animation: ehb-dust 1.2s ease-in-out infinite; }
@keyframes ehb-sky { 0% { opacity:.7 } 50% { opacity:.9 } 100% { opacity:.75 } }
@keyframes ehb-moon { 0% { transform: scale(1) translateY(0); box-shadow: 0 0 30px 8px rgba(160,184,255,.3); } 50% { transform: scale(1.05) translateY(-4px); box-shadow: 0 0 50px 16px rgba(160,184,255,.5); } 100% { transform: scale(1) translateY(1px); box-shadow: 0 0 35px 10px rgba(160,184,255,.35); } }
@keyframes ehb-drift-a { 0% { transform: translateX(-60px); } 100% { transform: translateX(120vw); } }
@keyframes ehb-drift-b { 0% { transform: translateX(0); } 100% { transform: translateX(-100vw); } }
@keyframes ehb-mountains { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(2px); } }
@keyframes ehb-road { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(0.98); } }
@keyframes ehb-horse { 0% { transform: rotate(-3deg) scaleX(1); } 50% { transform: rotate(3deg) scaleX(1.02); } 100% { transform: rotate(-3deg) scaleX(1); } }
@keyframes ehb-rider { 0% { transform: translateY(0) rotate(-2deg); } 25% { transform: translateY(-6px) rotate(2deg); } 50% { transform: translateY(-2px) rotate(-1deg); } 75% { transform: translateY(-8px) rotate(1deg); } 100% { transform: translateY(0) rotate(-2deg); } }
@keyframes ehb-dust { 0% { opacity:.4; transform: scale(1); } 50% { opacity:.7; transform: scale(1.3); } 100% { opacity:.3; transform: scale(0.9); } }

/* flight-down-mountain */
.scn-flight-down-mountain {
  background: linear-gradient(180deg, #0a0a2e 0%, #101040 35%, #1a1a50 100%), radial-gradient(ellipse at 50% 80%, #1a1a50 0%, transparent 60%);
}
.scn-flight-down-mountain .sky { position:absolute; inset:0 0 60% 0; background: linear-gradient(180deg, #14144a 0%, transparent 100%); animation: fdm-sky 12s ease-in-out infinite alternate; }
.scn-flight-down-mountain .moon { position:absolute; top:15%; left:65%; width:36px; height:36px; border-radius:50%; background: radial-gradient(circle at 35% 35%, #d0d8ff 0%, #8090d0 80%, transparent 100%); box-shadow: 0 0 35px 10px rgba(128,144,208,.4); animation: fdm-moon 5s ease-in-out infinite; }
.scn-flight-down-mountain .cloud-a { position:absolute; top:18%; left:5%; width:100px; height:20px; background: rgba(180,200,255,.15); border-radius:50%; filter: blur(7px); animation: fdm-drift-a 45s linear infinite; }
.scn-flight-down-mountain .cloud-b { position:absolute; top:25%; right:0; width:80px; height:16px; background: rgba(180,200,255,.1); border-radius:50%; filter: blur(6px); animation: fdm-drift-b 50s linear infinite reverse; }
.scn-flight-down-mountain .slope { position:absolute; bottom:35%; left:0; right:0; height:40%; background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%); clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 60%); animation: fdm-slope 10s ease-in-out infinite alternate; }
.scn-flight-down-mountain .road { position:absolute; bottom:25%; left:15%; right:15%; height:25%; background: linear-gradient(160deg, #1a2a3a 0%, #2a3a4a 50%, #1a2a3a 100%); clip-path: polygon(20% 0%, 80% 0%, 70% 100%, 30% 100%); animation: fdm-road 6s ease-in-out infinite; }
.scn-flight-down-mountain .horse { position:absolute; bottom:30%; left:35%; width:85px; height:55px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 40% 30% 50% / 60% 50% 50% 60%; transform-origin: bottom center; animation: fdm-horse 0.35s steps(2) infinite; }
.scn-flight-down-mountain .rider { position:absolute; bottom:48%; left:38%; width:32px; height:42px; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius: 45% 45% 40% 40% / 55% 55% 45% 45%; transform-origin: bottom center; animation: fdm-rider 0.75s ease-in-out infinite; }
.scn-flight-down-mountain .lights { position:absolute; bottom:40%; right:18%; width:10px; height:10px; background: radial-gradient(circle, #ffaa66 0%, rgba(255,170,102,.3) 60%, transparent 100%); border-radius:50%; box-shadow: 0 0 20px 6px rgba(255,170,102,.3); animation: fdm-lights 2s ease-in-out infinite alternate; }
@keyframes fdm-sky { 0% { opacity:.7 } 50% { opacity:.95 } 100% { opacity:.8 } }
@keyframes fdm-moon { 0% { transform: scale(1) translate(0); box-shadow: 0 0 30px 8px rgba(128,144,208,.3); } 50% { transform: scale(1.04) translate(-4px, -2px); box-shadow: 0 0 45px 14px rgba(128,144,208,.5); } 100% { transform: scale(0.98) translate(2px, 1px); box-shadow: 0 0 35px 10px rgba(128,144,208,.35); } }
@keyframes fdm-drift-a { 0% { transform: translateX(-40px); } 100% { transform: translateX(120vw); } }
@keyframes fdm-drift-b { 0% { transform: translateX(0); } 100% { transform: translateX(-100vw); } }
@keyframes fdm-slope { 0% { transform: translateY(0); } 50% { transform: translateY(3px); } 100% { transform: translateY(0); } }
@keyframes fdm-road { 0% { transform: scaleY(1) rotate(0); } 50% { transform: scaleY(1.03) rotate(1deg); } 100% { transform: scaleY(0.97) rotate(-1deg); } }
@keyframes fdm-horse { 0% { transform: rotate(-5deg) scaleX(1.02); } 50% { transform: rotate(5deg) scaleX(0.98); } 100% { transform: rotate(-5deg) scaleX(1.02); } }
@keyframes fdm-rider { 0% { transform: translateY(0) rotate(-3deg); } 25% { transform: translateY(-8px) rotate(3deg); } 50% { transform: translateY(-3px) rotate(-2deg); } 75% { transform: translateY(-10px) rotate(2deg); } 100% { transform: translateY(0) rotate(-3deg); } }
@keyframes fdm-lights { 0% { opacity:.3; transform: scale(1); } 100% { opacity:.9; transform: scale(1.5); } }

/* caution-about-banditti */
.scn-caution-about-banditti {
  background: linear-gradient(180deg, #0e0e30 0%, #1a1a4a 40%, #24245a 100%), radial-gradient(ellipse at 50% 100%, #24245a 0%, transparent 70%);
}
.scn-caution-about-banditti .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #1a1a40 0%, transparent 100%); animation: cab-sky 14s ease-in-out infinite alternate; }
.scn-caution-about-banditti .moon { position:absolute; top:10%; left:50%; width:45px; height:45px; border-radius:50%; background: radial-gradient(circle at 30% 30%, #e8eeff 0%, #a0b0e0 80%, transparent 100%); box-shadow: 0 0 50px 15px rgba(160,176,224,.3); animation: cab-moon 8s ease-in-out infinite; }
.scn-caution-about-banditti .cloud-a { position:absolute; top:22%; left:0; width:130px; height:22px; background: rgba(180,200,255,.12); border-radius:50%; filter: blur(8px); animation: cab-drift-a 60s linear infinite; }
.scn-caution-about-banditti .cloud-b { position:absolute; top:32%; right:5%; width:100px; height:18px; background: rgba(180,200,255,.08); border-radius:50%; filter: blur(6px); animation: cab-drift-b 70s linear infinite reverse; }
.scn-caution-about-banditti .hills { position:absolute; bottom:30%; left:0; right:0; height:35%; background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%); border-radius: 45% 55% 0 0 / 70% 70% 0 0; box-shadow: inset 0 8px 16px rgba(0,0,0,.5); animation: cab-hills 16s ease-in-out infinite alternate; }
.scn-caution-about-banditti .rider1 { position:absolute; bottom:28%; left:25%; width:70px; height:45px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 40% 30% 50% / 60% 50% 50% 60%; transform-origin: bottom center; animation: cab-rider1 3s ease-in-out infinite; }
.scn-caution-about-banditti .rider2 { position:absolute; bottom:30%; left:55%; width:70px; height:45px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 40% 30% 50% / 60% 50% 50% 60%; transform-origin: bottom center; animation: cab-rider2 3.5s ease-in-out infinite; }
.scn-caution-about-banditti .trombone { position:absolute; bottom:38%; left:62%; width:40px; height:6px; background: linear-gradient(90deg, #4a3a2a 0%, #6a5a4a 50%, #4a3a2a 100%); border-radius: 10%; transform: rotate(-20deg); box-shadow: 0 1px 3px rgba(0,0,0,.4); animation: cab-trombone 4s ease-in-out infinite; }
.scn-caution-about-banditti .ground { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #1a2a2a 0%, #0a1a1a 100%); clip-path: polygon(0% 20%, 100% 0%, 100% 100%, 0% 100%); }
@keyframes cab-sky { 0% { opacity:.75 } 50% { opacity:.95 } 100% { opacity:.8 } }
@keyframes cab-moon { 0% { transform: scale(1) translateY(0); box-shadow: 0 0 40px 12px rgba(160,176,224,.25); } 50% { transform: scale(1.03) translateY(-3px); box-shadow: 0 0 60px 20px rgba(160,176,224,.45); } 100% { transform: scale(1) translateY(1px); box-shadow: 0 0 45px 14px rgba(160,176,224,.3); } }
@keyframes cab-drift-a { 0% { transform: translateX(-60px); } 100% { transform: translateX(130vw); } }
@keyframes cab-drift-b { 0% { transform: translateX(0); } 100% { transform: translateX(-110vw); } }
@keyframes cab-hills { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(1px); } }
@keyframes cab-rider1 { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(5px) rotate(1deg); } 50% { transform: translateX(0) rotate(-1deg); } 75% { transform: translateX(-5px) rotate(1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes cab-rider2 { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(-4px) rotate(-1deg); } 50% { transform: translateX(0) rotate(1deg); } 75% { transform: translateX(4px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes cab-trombone { 0% { transform: rotate(-20deg) scaleX(1); } 50% { transform: rotate(-15deg) scaleX(1.05); } 100% { transform: rotate(-20deg) scaleX(1); } }

/* silent-journey */
.scn-silent-journey {
  background: linear-gradient(180deg, #0c0c2e 0%, #161642 45%, #1e1e52 100%), radial-gradient(ellipse at 50% 100%, #1e1e52 0%, transparent 60%);
}
.scn-silent-journey .sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #181848 0%, transparent 100%); animation: sij-sky 16s ease-in-out infinite alternate; }
.scn-silent-journey .moon { position:absolute; top:14%; left:60%; width:42px; height:42px; border-radius:50%; background: radial-gradient(circle at 30% 30%, #e0e8ff 0%, #90a8d0 80%, transparent 100%); box-shadow: 0 0 45px 14px rgba(144,168,208,.25); animation: sij-moon 7s ease-in-out infinite; }
.scn-silent-journey .cloud-a { position:absolute; top:20%; left:8%; width:140px; height:20px; background: rgba(180,200,255,.1); border-radius:50%; filter: blur(8px); animation: sij-drift-a 70s linear infinite; }
.scn-silent-journey .cloud-b { position:absolute; top:28%; right:0; width:110px; height:16px; background: rgba(180,200,255,.07); border-radius:50%; filter: blur(6px); animation: sij-drift-b 80s linear infinite reverse; }
.scn-silent-journey .trees { position:absolute; bottom:30%; left:0; right:0; height:40%; background: linear-gradient(180deg, #0a1a2a 0%, #0e1e2e 100%); clip-path: polygon(5% 0%, 15% 40%, 25% 0%, 35% 20%, 45% 0%, 55% 30%, 65% 0%, 75% 25%, 85% 0%, 95% 35%, 100% 0%, 100% 100%, 0% 100%); animation: sij-trees 20s ease-in-out infinite alternate; }
.scn-silent-journey .path { position:absolute; bottom:25%; left:20%; right:20%; height:10%; background: linear-gradient(90deg, #1a2a3a 0%, #2a3a4a 50%, #1a2a3a 100%); border-radius: 50%; clip-path: inset(0 5% 0 5% round 50%); animation: sij-path 12s ease-in-out infinite; }
.scn-silent-journey .figure { position:absolute; bottom:26%; left:40%; width:22px; height:50px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 45% 45% 40% 40% / 55% 55% 45% 45%; animation: sij-figure 6s ease-in-out infinite; }
.scn-silent-journey .foliage { position:absolute; bottom:30%; left:10%; width:80px; height:40px; background: radial-gradient(ellipse at 50% 100%, rgba(20,60,40,.3) 0%, transparent 70%); filter: blur(12px); animation: sij-foliage 8s ease-in-out infinite alternate; }
@keyframes sij-sky { 0% { opacity:.7 } 50% { opacity:.9 } 100% { opacity:.75 } }
@keyframes sij-moon { 0% { transform: scale(1) translateY(0); box-shadow: 0 0 35px 10px rgba(144,168,208,.2); } 50% { transform: scale(1.02) translateY(-2px); box-shadow: 0 0 50px 16px rgba(144,168,208,.35); } 100% { transform: scale(0.99) translateY(1px); box-shadow: 0 0 40px 12px rgba(144,168,208,.25); } }
@keyframes sij-drift-a { 0% { transform: translateX(-70px); } 100% { transform: translateX(130vw); } }
@keyframes sij-drift-b { 0% { transform: translateX(0); } 100% { transform: translateX(-120vw); } }
@keyframes sij-trees { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(2px) scaleY(1.02); } 100% { transform: translateY(-1px) scaleY(0.98); } }
@keyframes sij-path { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.02); } 100% { transform: scaleX(0.98); } }
@keyframes sij-figure { 0% { transform: translateX(0) rotate(0); } 25% { transform: translateX(8px) rotate(2deg); } 50% { transform: translateX(0) rotate(-1deg); } 75% { transform: translateX(-8px) rotate(2deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes sij-foliage { 0% { opacity:.3; transform: scale(1); } 100% { opacity:.6; transform: scale(1.1); } }

/* ---------- scene: thoughts-of-escape ---------- */
.scn-thoughts-of-escape {
  background:
    linear-gradient(180deg, #0b0b1a 0%, #15152e 40%, #1a1a3f 100%),
    radial-gradient(ellipse at 50% 30%, #1e1e44 0%, transparent 70%);
}
.scn-thoughts-of-escape .cell-wall {
  position: absolute; inset: 0 0 50px 0;
  background: linear-gradient(180deg, #1c1c3a 0%, #2a2a4e 40%, transparent 100%);
  animation: te-wall 12s ease-in-out infinite alternate;
}
.scn-thoughts-of-escape .cell-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1a0e 100%);
  border-radius: 0 0 8% 8%;
}
.scn-thoughts-of-escape .window {
  position: absolute; top: 18%; left: 50%; width: 70px; height: 90px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, rgba(120,140,180,0.4) 0%, rgba(60,80,120,0.2) 100%);
  border: 3px solid #2a2a1a;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(160,180,220,0.3);
  animation: te-window 8s ease-in-out infinite alternate;
}
.scn-thoughts-of-escape .bars {
  position: absolute; top: 18%; left: 50%; width: 70px; height: 90px;
  transform: translateX(-50%);
  background: repeating-linear-gradient(90deg,
    transparent 0, transparent 12px,
    #1a1a1a 12px, #1a1a1a 14px,
    transparent 14px, transparent 70px);
  border-radius: 4px;
}
.scn-thoughts-of-escape .figure {
  position: absolute; bottom: 50px; left: 30%; width: 28px; height: 60px;
  background: linear-gradient(180deg, #0c0c1e 0%, #1a1a2e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: te-figure 5s ease-in-out infinite;
}
.scn-thoughts-of-escape .candle {
  position: absolute; bottom: 55px; left: 50%; width: 4px; height: 12px;
  background: linear-gradient(180deg, #ffd080 0%, #a06020 100%);
  border-radius: 50% 50% 20% 20%;
  transform: translateX(-50%);
  box-shadow: 0 0 12px 4px rgba(255,208,128,0.6);
}
.scn-thoughts-of-escape .flicker {
  position: absolute; bottom: 67px; left: 50%; width: 18px; height: 18px;
  background: radial-gradient(circle, #ffe0a0 0%, transparent 70%);
  border-radius: 50%;
  transform: translate(-50%, -50%);
  animation: te-flicker 2s ease-in-out infinite;
}
@keyframes te-wall {
  0% { opacity: 0.85; }
  50% { opacity: 0.95; }
  100% { opacity: 0.85; }
}
@keyframes te-window {
  0% { background: rgba(120,140,180,0.3); box-shadow: inset 0 0 10px rgba(160,180,220,0.2); }
  50% { background: rgba(140,160,200,0.5); box-shadow: inset 0 0 30px rgba(180,200,240,0.4); }
  100% { background: rgba(120,140,180,0.3); box-shadow: inset 0 0 10px rgba(160,180,220,0.2); }
}
@keyframes te-figure {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(3px) rotate(1deg); }
  50% { transform: translateX(0) rotate(0deg); }
  75% { transform: translateX(-3px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes te-flicker {
  0% { transform: translate(-50%, -80%) scale(1); opacity: 0.9; }
  50% { transform: translate(-48%, -75%) scale(1.2); opacity: 1; }
  100% { transform: translate(-52%, -82%) scale(0.9); opacity: 0.85; }
}

/* ---------- scene: morning-conversation-ludovico ---------- */
.scn-morning-conversation-ludovico {
  background:
    linear-gradient(180deg, #2a2a1e 0%, #3a3528 40%, #4a4030 100%),
    radial-gradient(ellipse at 60% 20%, #5a5038 0%, transparent 70%);
}
.scn-morning-conversation-ludovico .room-wall {
  position: absolute; inset: 0 0 40px 0;
  background: linear-gradient(135deg, #3a3528 0%, #2e2a1e 60%, #1f1c12 100%);
  animation: mc-wall 15s ease-in-out infinite alternate;
}
.scn-morning-conversation-ludovico .room-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1e12 100%);
}
.scn-morning-conversation-ludovico .window-morning {
  position: absolute; top: 12%; left: 70%; width: 60px; height: 80px;
  background: linear-gradient(180deg, #c8b898 0%, #a89070 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(200,184,152,0.4), 0 0 40px 10px rgba(200,184,152,0.15);
  animation: mc-morning-light 10s ease-in-out infinite alternate;
}
.scn-morning-conversation-ludovico .table {
  position: absolute; bottom: 40px; left: 20%; width: 60%; height: 40px;
  background: linear-gradient(180deg, #5a4030 0%, #3a2818 100%);
  border-radius: 2px;
  box-shadow: 0 -4px 8px rgba(0,0,0,0.5);
}
.scn-morning-conversation-ludovico .figure-left {
  position: absolute; bottom: 80px; left: 25%; width: 30px; height: 65px;
  background: linear-gradient(180deg, #1a1210 0%, #0e0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(5deg);
  animation: mc-figure-left 6s ease-in-out infinite;
}
.scn-morning-conversation-ludovico .figure-right {
  position: absolute; bottom: 80px; right: 25%; width: 32px; height: 68px;
  background: linear-gradient(180deg, #1a1412 0%, #0e0c0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-5deg);
  animation: mc-figure-right 8s ease-in-out infinite;
}
.scn-morning-conversation-ludovico .candle {
  position: absolute; bottom: 82px; left: 50%; width: 4px; height: 14px;
  background: linear-gradient(180deg, #ffe0a0 0%, #a06020 100%);
  border-radius: 50% 50% 20% 20%;
  transform: translateX(-50%);
  box-shadow: 0 0 16px 6px rgba(255,224,160,0.5);
  animation: mc-candle 3s ease-in-out infinite;
}
@keyframes mc-wall {
  0% { background: #3a3528; }
  50% { background: #4a4030; }
  100% { background: #3a3528; }
}
@keyframes mc-morning-light {
  0% { opacity: 0.7; box-shadow: inset 0 0 10px rgba(200,184,152,0.2), 0 0 20px rgba(200,184,152,0.05); }
  50% { opacity: 1; box-shadow: inset 0 0 30px rgba(200,184,152,0.6), 0 0 60px 15px rgba(200,184,152,0.2); }
  100% { opacity: 0.7; box-shadow: inset 0 0 10px rgba(200,184,152,0.2), 0 0 20px rgba(200,184,152,0.05); }
}
@keyframes mc-figure-left {
  0% { transform: rotate(5deg) translateY(0); }
  50% { transform: rotate(3deg) translateY(-2px); }
  100% { transform: rotate(5deg) translateY(0); }
}
@keyframes mc-figure-right {
  0% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(-3deg) translateY(-2px); }
  100% { transform: rotate(-5deg) translateY(0); }
}
@keyframes mc-candle {
  0% { transform: translateX(-50%) scale(1); box-shadow: 0 0 12px 4px rgba(255,224,160,0.4); }
  50% { transform: translateX(-50%) scale(1.1); box-shadow: 0 0 20px 8px rgba(255,224,160,0.7); }
  100% { transform: translateX(-50%) scale(1); box-shadow: 0 0 12px 4px rgba(255,224,160,0.4); }
}

/* ---------- scene: reveal-name ---------- */
.scn-reveal-name {
  background:
    linear-gradient(180deg, #1a1412 0%, #2a221e 40%, #1a1412 100%),
    radial-gradient(ellipse at 50% 60%, #3a2e28 0%, transparent 70%);
}
.scn-reveal-name .bg-dark {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #1e1816 0%, #2a221e 100%);
  animation: rn-dark 20s ease-in-out infinite alternate;
}
.scn-reveal-name .table {
  position: absolute; bottom: 12%; left: 20%; right: 20%; height: 30px;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%);
  border-radius: 2px;
  box-shadow: 0 -2px 6px rgba(0,0,0,0.6);
}
.scn-reveal-name .candle {
  position: absolute; bottom: calc(12% + 30px); left: 50%; width: 5px; height: 18px;
  background: linear-gradient(180deg, #ffd080 0%, #a06020 100%);
  border-radius: 50% 50% 20% 20%;
  transform: translateX(-50%);
  box-shadow: 0 0 20px 8px rgba(255,208,128,0.5);
  animation: rn-candle 4s ease-in-out infinite;
}
.scn-reveal-name .figure-emily {
  position: absolute; bottom: 18%; left: 30%; width: 28px; height: 60px;
  background: linear-gradient(180deg, #0e0c0a 0%, #1c1814 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%) rotate(2deg);
  animation: rn-figure-e 7s ease-in-out infinite;
}
.scn-reveal-name .figure-ludovico {
  position: absolute; bottom: 18%; right: 30%; width: 32px; height: 64px;
  background: linear-gradient(180deg, #0e0c0a 0%, #1c1814 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(50%) rotate(-2deg);
  animation: rn-figure-l 9s ease-in-out infinite;
}
.scn-reveal-name .glow-close {
  position: absolute; bottom: 25%; left: 50%; width: 50px; height: 50px;
  background: radial-gradient(circle, rgba(255,208,128,0.2) 0%, transparent 70%);
  border-radius: 50%;
  transform: translate(-50%, -50%);
  animation: rn-glow 5s ease-in-out infinite alternate;
}
@keyframes rn-dark {
  0% { opacity: 0.8; }
  50% { opacity: 0.9; }
  100% { opacity: 0.8; }
}
@keyframes rn-candle {
  0% { transform: translateX(-50%) scale(1); box-shadow: 0 0 15px 5px rgba(255,208,128,0.4); }
  50% { transform: translateX(-50%) scale(1.1); box-shadow: 0 0 25px 10px rgba(255,208,128,0.7); }
  100% { transform: translateX(-50%) scale(1); box-shadow: 0 0 15px 5px rgba(255,208,128,0.4); }
}
@keyframes rn-figure-e {
  0% { transform: translateX(-50%) rotate(2deg) translateY(0); }
  50% { transform: translateX(-48%) rotate(1deg) translateY(-2px); }
  100% { transform: translateX(-50%) rotate(2deg) translateY(0); }
}
@keyframes rn-figure-l {
  0% { transform: translateX(50%) rotate(-2deg) translateY(0); }
  50% { transform: translateX(48%) rotate(-1deg) translateY(-2px); }
  100% { transform: translateX(50%) rotate(-2deg) translateY(0); }
}
@keyframes rn-glow {
  0% { opacity: 0.3; transform: translate(-50%, -50%) scale(1); }
  50% { opacity: 0.6; transform: translate(-50%, -50%) scale(1.3); }
  100% { opacity: 0.3; transform: translate(-50%, -50%) scale(1); }
}

/* ---------- scene: forced-surrender ---------- */
.scn-forced-surrender {
  background:
    linear-gradient(180deg, #0f0f18 0%, #181828 40%, #0f0f18 100%),
    radial-gradient(ellipse at 30% 50%, #2a2a40 0%, transparent 70%);
}
.scn-forced-surrender .wall {
  position: absolute; inset: 0 0 40px 0;
  background: linear-gradient(90deg, #14141e 0%, #1a1a2a 40%, #14141e 100%);
  animation: fs-wall 14s ease-in-out infinite alternate;
}
.scn-forced-surrender .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40px;
  background: linear-gradient(180deg, #2a1e12 0%, #1a1210 100%);
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.6);
}
.scn-forced-surrender .desk {
  position: absolute; bottom: 40px; left: 10%; right: 60%; height: 20px;
  background: linear-gradient(180deg, #3a2a18 0%, #20140a 100%);
  border-radius: 2px;
  box-shadow: 0 -2px 6px rgba(0,0,0,0.5);
}
.scn-forced-surrender .figure-montoni {
  position: absolute; bottom: 40px; left: 40%; width: 36px; height: 80px;
  background: linear-gradient(180deg, #0e0e1a 0%, #1a1a2e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%) rotate(3deg);
  animation: fs-figure-m 6s ease-in-out infinite;
  box-shadow: -4px 0 8px rgba(0,0,0,0.4);
}
.scn-forced-surrender .figure-emily {
  position: absolute; bottom: 40px; left: 65%; width: 28px; height: 60px;
  background: linear-gradient(180deg, #0c0c18 0%, #18182a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: translateX(-50%) rotate(-2deg);
  animation: fs-figure-e 8s ease-in-out infinite;
}
.scn-forced-surrender .lantern {
  position: absolute; bottom: 55px; left: 30%; width: 8px; height: 20px;
  background: linear-gradient(180deg, #ffd080 0%, #a06020 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 24px 8px rgba(255,208,128,0.5);
  animation: fs-lantern 2.5s ease-in-out infinite;
}
.scn-forced-surrender .shadow {
  position: absolute; bottom: 40px; left: 40%; width: 80px; height: 30px;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.6) 0%, transparent 100%);
  transform: skewX(-20deg);
  animation: fs-shadow 6s ease-in-out infinite alternate;
}
@keyframes fs-wall {
  0% { background: #14141e; }
  50% { background: #1a1a2e; }
  100% { background: #14141e; }
}
@keyframes fs-figure-m {
  0% { transform: translateX(-50%) rotate(3deg) scale(1); }
  50% { transform: translateX(-50%) rotate(2deg) scale(1.02); }
  100% { transform: translateX(-50%) rotate(3deg) scale(1); }
}
@keyframes fs-figure-e {
  0% { transform: translateX(-50%) rotate(-2deg) translateY(0); }
  50% { transform: translateX(-50%) rotate(-1deg) translateY(-2px); }
  100% { transform: translateX(-50%) rotate(-2deg) translateY(0); }
}
@keyframes fs-lantern {
  0% { transform: scale(1); box-shadow: 0 0 15px 4px rgba(255,208,128,0.3); }
  50% { transform: scale(1.1) rotate(2deg); box-shadow: 0 0 30px 12px rgba(255,208,128,0.7); }
  100% { transform: scale(1); box-shadow: 0 0 15px 4px rgba(255,208,128,0.3); }
}
@keyframes fs-shadow {
  0% { opacity: 0.5; transform: skewX(-20deg) scaleX(1); }
  50% { opacity: 0.8; transform: skewX(-18deg) scaleX(1.1); }
  100% { opacity: 0.5; transform: skewX(-20deg) scaleX(1); }
}

.scn-anette-news {
  background: linear-gradient(180deg, #2a1e1a 0%, #1c1411 40%, #0f0a08 100%), radial-gradient(ellipse at 50% 100%, #3a2a22 0%, transparent 70%);
}
.scn-anette-news .bg-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #3a2a1e 0%, #2a1a12 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,0.6);
  animation: sn-wall 20s ease-in-out infinite alternate;
}
.scn-anette-news .bg-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1e1814 0%, #0f0a08 100%);
}
.scn-anette-news .window {
  position: absolute; top: 15%; left: 60%; width: 80px; height: 100px;
  background: radial-gradient(ellipse at 50% 50%, #c8a060 0%, #6a4a20 60%, transparent 80%);
  border: 4px solid #3a2a1a;
  border-radius: 4px;
  box-shadow: 0 0 30px 10px rgba(200,160,96,0.3);
  animation: sn-window 4s ease-in-out infinite alternate;
}
.scn-anette-news .table {
  position: absolute; bottom: 24%; left: 20%; width: 70px; height: 12px;
  background: linear-gradient(90deg, #4a3a2a 0%, #3a2a1a 100%);
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
}
.scn-anette-news .candle {
  position: absolute; bottom: 30%; left: 28%; width: 6px; height: 14px;
  background: linear-gradient(180deg, #e0b070 0%, #b08040 50%, #8a602a 100%);
  border-radius: 2px;
  box-shadow: 0 0 20px 8px rgba(224,176,112,0.6), 0 0 40px 16px rgba(224,176,112,0.3);
  animation: sn-candle 2s ease-in-out infinite alternate;
}
.scn-anette-news .figure-anette {
  position: absolute; bottom: 20%; left: 30%; width: 24px; height: 48px;
  background: linear-gradient(180deg, #3a2a22 0%, #1e1410 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sn-anette 6s ease-in-out infinite;
}
.scn-anette-news .figure-emily {
  position: absolute; bottom: 20%; left: 55%; width: 22px; height: 46px;
  background: linear-gradient(180deg, #4a3a2e 0%, #2a1a12 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sn-emily 6s ease-in-out infinite 1s;
}

@keyframes sn-wall {
  0% { opacity: 0.8; }
  50% { opacity: 0.95; }
  100% { opacity: 0.85; }
}
@keyframes sn-window {
  0% { box-shadow: 0 0 20px 5px rgba(200,160,96,0.2); opacity: 0.7; }
  50% { box-shadow: 0 0 40px 12px rgba(200,160,96,0.5); opacity: 1; }
  100% { box-shadow: 0 0 25px 8px rgba(200,160,96,0.3); opacity: 0.8; }
}
@keyframes sn-candle {
  0% { transform: scaleY(1) rotate(-2deg); box-shadow: 0 0 15px 6px rgba(224,176,112,0.5); }
  50% { transform: scaleY(1.05) rotate(2deg); box-shadow: 0 0 25px 10px rgba(224,176,112,0.8); }
  100% { transform: scaleY(0.95) rotate(-1deg); box-shadow: 0 0 18px 7px rgba(224,176,112,0.6); }
}
@keyframes sn-anette {
  0% { transform: translateY(0) rotate(-2deg); }
  30% { transform: translateY(-2px) rotate(2deg); }
  60% { transform: translateY(0) rotate(-1deg); }
  100% { transform: translateY(-1px) rotate(0deg); }
}
@keyframes sn-emily {
  0% { transform: translateY(0) rotate(1deg); }
  40% { transform: translateY(-1px) rotate(-1deg); }
  80% { transform: translateY(-2px) rotate(0deg); }
  100% { transform: translateY(0) rotate(1deg); }
}

.scn-orsino-revealed {
  background: linear-gradient(180deg, #1a1218 0%, #0f0a0e 40%, #080406 100%), radial-gradient(ellipse at 40% 60%, #2a1a24 0%, transparent 70%);
}
.scn-orsino-revealed .bg-dark {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #1a1418 0%, #0a0608 100%);
  animation: sr-dark 15s ease-in-out infinite alternate;
}
.scn-orsino-revealed .wall {
  position: absolute; right: 0; top: 10%; width: 40%; height: 80%;
  background: linear-gradient(180deg, #2a1e24 0%, #1a1218 100%);
  border-left: 2px solid #3a2a34;
  box-shadow: -10px 0 30px rgba(0,0,0,0.8);
}
.scn-orsino-revealed .lamp {
  position: absolute; top: 20%; right: 25%; width: 8px; height: 20px;
  background: linear-gradient(180deg, #d0a070 0%, #a07040 100%);
  border-radius: 2px;
  box-shadow: 0 0 30px 12px rgba(208,160,112,0.5);
  animation: sr-lamp 2.5s ease-in-out infinite alternate;
}
.scn-orsino-revealed .furniture {
  position: absolute; bottom: 10%; left: 5%; width: 80px; height: 40px;
  background: linear-gradient(180deg, #3a2a2e 0%, #1a1216 100%);
  border-radius: 4px;
  box-shadow: inset 0 4px 10px rgba(0,0,0,0.6);
}
.scn-orsino-revealed .figure-emily {
  position: absolute; bottom: 15%; left: 15%; width: 28px; height: 56px;
  background: linear-gradient(180deg, #4a3a3e 0%, #2a1a1e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sr-emily 3s ease-in-out infinite;
}
.scn-orsino-revealed .figure-orsino {
  position: absolute; bottom: 15%; right: 10%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #1a1216 0%, #0a0608 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: -10px 0 20px rgba(0,0,0,0.7);
  transform-origin: bottom center;
  animation: sr-orsino 5s ease-in-out infinite alternate;
}

@keyframes sr-dark {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes sr-lamp {
  0% { transform: rotate(-5deg); box-shadow: 0 0 20px 8px rgba(208,160,112,0.4); }
  50% { transform: rotate(5deg); box-shadow: 0 0 40px 16px rgba(208,160,112,0.7); }
  100% { transform: rotate(-3deg); box-shadow: 0 0 25px 10px rgba(208,160,112,0.5); }
}
@keyframes sr-emily {
  0% { transform: translateY(0) scale(1); }
  30% { transform: translateY(-4px) scale(1.02); }
  60% { transform: translateY(-2px) scale(0.98); }
  100% { transform: translateY(0) scale(1); }
}
@keyframes sr-orsino {
  0% { transform: translateX(0) rotate(0deg); opacity: 0.6; }
  50% { transform: translateX(-10px) rotate(-5deg); opacity: 0.9; }
  100% { transform: translateX(0) rotate(2deg); opacity: 0.7; }
}

.scn-aunt-presumed-dead {
  background: linear-gradient(180deg, #1a1e24 0%, #121418 50%, #0a0c10 100%), radial-gradient(ellipse at 50% 80%, #2a2e3a 0%, transparent 70%);
}
.scn-aunt-presumed-dead .bg-room {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(180deg, #2a2e34 0%, #1a1e24 100%);
  box-shadow: inset 0 0 80px rgba(0,0,0,0.5);
  animation: ap-room 30s ease-in-out infinite alternate;
}
.scn-aunt-presumed-dead .bg-window {
  position: absolute; top: 10%; left: 65%; width: 70px; height: 90px;
  background: radial-gradient(ellipse at 50% 50%, #a0b0c0 0%, #405060 70%, transparent 90%);
  border: 4px solid #2a2e3a;
  border-radius: 6px;
  box-shadow: 0 0 20px 8px rgba(100,120,140,0.2);
  animation: ap-window 8s ease-in-out infinite alternate;
}
.scn-aunt-presumed-dead .chair {
  position: absolute; bottom: 15%; left: 30%; width: 40px; height: 30px;
  background: linear-gradient(180deg, #3a3a3e 0%, #1a1a1e 100%);
  border-radius: 4px 4px 2px 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.6);
  animation: ap-chair 12s ease-in-out infinite;
}
.scn-aunt-presumed-dead .letter {
  position: absolute; bottom: 28%; left: 35%; width: 20px; height: 14px;
  background: linear-gradient(135deg, #e0d8c8 0%, #c0b8a8 100%);
  border-radius: 1px;
  transform: rotate(-10deg);
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
  animation: ap-letter 6s ease-in-out infinite alternate;
}
.scn-aunt-presumed-dead .tear {
  position: absolute; bottom: 42%; left: 38%; width: 4px; height: 6px;
  background: radial-gradient(circle, #80a0c0 0%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 8px 4px rgba(80,120,160,0.3);
  animation: ap-tear 4s ease-in-out infinite;
}
.scn-aunt-presumed-dead .portrait {
  position: absolute; top: 12%; left: 10%; width: 40px; height: 50px;
  border: 2px solid #3a3e44;
  border-radius: 2px;
  background: linear-gradient(180deg, #4a4e54 0%, #2a2e34 100%);
  box-shadow: 0 4px 12px rgba(0,0,0,0.5);
  animation: ap-portrait 20s ease-in-out infinite alternate;
}
.scn-aunt-presumed-dead .figure-emily {
  position: absolute; bottom: 10%; left: 45%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #4a4e54 0%, #2a2a2e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ap-emily 8s ease-in-out infinite;
}

@keyframes ap-room {
  0% { opacity: 0.7; }
  50% { opacity: 0.9; }
  100% { opacity: 0.75; }
}
@keyframes ap-window {
  0% { box-shadow: 0 0 10px 3px rgba(100,120,140,0.1); opacity: 0.5; }
  50% { box-shadow: 0 0 30px 10px rgba(100,120,140,0.3); opacity: 0.8; }
  100% { box-shadow: 0 0 15px 5px rgba(100,120,140,0.15); opacity: 0.6; }
}
@keyframes ap-chair {
  0% { transform: rotate(0deg) translateY(0); }
  25% { transform: rotate(2deg) translateY(-1px); }
  50% { transform: rotate(-1deg) translateY(0); }
  75% { transform: rotate(1deg) translateY(-2px); }
  100% { transform: rotate(0deg) translateY(0); }
}
@keyframes ap-letter {
  0% { transform: rotate(-12deg) scale(1); }
  50% { transform: rotate(-8deg) scale(1.02); }
  100% { transform: rotate(-10deg) scale(1); }
}
@keyframes ap-tear {
  0% { transform: translateY(0) scale(1); opacity: 1; }
  50% { transform: translateY(20px) scale(0.8); opacity: 0.6; }
  100% { transform: translateY(40px) scale(0.5); opacity: 0; }
}
@keyframes ap-portrait {
  0% { box-shadow: 0 4px 12px rgba(0,0,0,0.4); opacity: 0.7; }
  50% { box-shadow: 0 8px 24px rgba(0,0,0,0.6); opacity: 1; }
  100% { box-shadow: 0 4px 12px rgba(0,0,0,0.4); opacity: 0.8; }
}
@keyframes ap-emily {
  0% { transform: translateY(0) scale(1); }
  30% { transform: translateY(-3px) scale(1.01); }
  70% { transform: translateY(-1px) scale(0.99); }
  100% { transform: translateY(0) scale(1); }
}

.scn-message-from-barnardine {
  background: linear-gradient(180deg, #1a1410 0%, #120c0a 40%, #080604 100%), radial-gradient(ellipse at 50% 60%, #2a1e18 0%, transparent 70%);
}
.scn-message-from-barnardine .wall-left {
  position: absolute; top: 0; left: 0; width: 25%; height: 100%;
  background: linear-gradient(90deg, #2a1e1a 0%, #1a1210 100%);
  box-shadow: inset -10px 0 30px rgba(0,0,0,0.6);
  animation: mb-wall-l 20s ease-in-out infinite alternate;
}
.scn-message-from-barnardine .wall-right {
  position: absolute; top: 0; right: 0; width: 25%; height: 100%;
  background: linear-gradient(270deg, #2a1e1a 0%, #1a1210 100%);
  box-shadow: inset 10px 0 30px rgba(0,0,0,0.6);
  animation: mb-wall-r 20s ease-in-out infinite alternate 10s;
}
.scn-message-from-barnardine .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #1a1412 0%, #0a0806 100%);
  box-shadow: inset 0 4px 12px rgba(0,0,0,0.7);
}
.scn-message-from-barnardine .lantern {
  position: absolute; top: 30%; left: 48%; width: 10px; height: 18px;
  background: linear-gradient(180deg, #e0b070 0%, #a07040 100%);
  border-radius: 3px;
  box-shadow: 0 0 40px 16px rgba(224,176,112,0.5), 0 0 80px 30px rgba(224,176,112,0.2);
  animation: mb-lantern 3s ease-in-out infinite alternate;
}
.scn-message-from-barnardine .figure-anette {
  position: absolute; bottom: 15%; left: 32%; width: 20px; height: 42px;
  background: linear-gradient(180deg, #3a2a22 0%, #1e1410 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mb-anette 6s ease-in-out infinite;
}
.scn-message-from-barnardine .figure-emily {
  position: absolute; bottom: 15%; left: 50%; width: 22px; height: 44px;
  background: linear-gradient(180deg, #4a3a2e 0%, #2a1a12 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mb-emily 5s ease-in-out infinite 2s;
}
.scn-message-from-barnardine .figure-barnardine {
  position: absolute; bottom: 12%; right: 5%; width: 24px; height: 48px;
  background: linear-gradient(180deg, #1a1210 0%, #080604 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  opacity: 0.7;
  transform-origin: bottom center;
  animation: mb-barnardine 8s ease-in-out infinite alternate;
}

@keyframes mb-wall-l {
  0% { opacity: 0.85; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes mb-wall-r {
  0% { opacity: 0.85; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}
@keyframes mb-lantern {
  0% { transform: rotate(-8deg); box-shadow: 0 0 30px 12px rgba(224,176,112,0.4); }
  50% { transform: rotate(8deg); box-shadow: 0 0 50px 20px rgba(224,176,112,0.7); }
  100% { transform: rotate(-6deg); box-shadow: 0 0 35px 14px rgba(224,176,112,0.5); }
}
@keyframes mb-anette {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(2px) rotate(-2deg); }
  50% { transform: translateX(4px) rotate(1deg); }
  75% { transform: translateX(2px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes mb-emily {
  0% { transform: translateY(0) rotate(1deg); }
  33% { transform: translateY(-1px) rotate(-1deg); }
  66% { transform: translateY(-2px) rotate(2deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes mb-barnardine {
  0% { transform: translateX(0) scale(1); opacity: 0.5; }
  50% { transform: translateX(-15px) scale(1.05); opacity: 0.8; }
  100% { transform: translateX(0) scale(0.95); opacity: 0.6; }
}

.scn-emily-walks-with-blanche {
  background: linear-gradient(180deg, #87CEEB 0%, #B0E0E6 40%, #F5DEB3 100%),
              radial-gradient(ellipse at 50% 0%, #FFF8DC 0%, transparent 60%);
}
.scn-emily-walks-with-blanche .sky-sun {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #87CEEB 0%, #E0F0FF 60%, #FFF0B0 100%);
  animation: ewb-sky 14s ease-in-out infinite alternate;
}
.scn-emily-walks-with-blanche .sun-glow {
  position: absolute; top: 12%; left: 55%; width: 80px; height: 80px;
  background: radial-gradient(circle, #FFFFE0 0%, #FFE4B5 40%, transparent 70%);
  border-radius: 50%;
  animation: ewb-sun 8s ease-in-out infinite alternate;
}
.scn-emily-walks-with-blanche .hills-far {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #7CB342 0%, #558B2F 100%);
  border-radius: 60% 40% 0 0 / 90% 70% 0 0;
  animation: ewb-hills 20s ease-in-out infinite alternate;
}
.scn-emily-walks-with-blanche .hills-near {
  position: absolute; bottom: 10%; left: -5%; right: -5%; height: 25%;
  background: linear-gradient(180deg, #66BB6A 0%, #2E7D32 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  animation: ewb-hills2 25s ease-in-out infinite alternate;
}
.scn-emily-walks-with-blanche .chateau {
  position: absolute; bottom: 30%; left: 35%; width: 120px; height: 90px;
  background: linear-gradient(180deg, #D7CCC8 0%, #A1887F 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: 0 8px 16px rgba(0,0,0,0.3);
  animation: ewb-house 6s ease-in-out infinite;
}
.scn-emily-walks-with-blanche .tower-left {
  position: absolute; bottom: 35%; left: 30%; width: 20px; height: 60px;
  background: linear-gradient(180deg, #BCAAA4 0%, #8D6E63 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: -2px 0 6px rgba(0,0,0,0.2);
}
.scn-emily-walks-with-blanche .tower-right {
  position: absolute; bottom: 35%; right: 30%; width: 20px; height: 60px;
  background: linear-gradient(180deg, #BCAAA4 0%, #8D6E63 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: 2px 0 6px rgba(0,0,0,0.2);
}
.scn-emily-walks-with-blanche .figure-emily {
  position: absolute; bottom: 14%; left: 42%; width: 14px; height: 28px;
  background: linear-gradient(180deg, #5D4037 0%, #3E2723 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ewb-walk 5s ease-in-out infinite;
}
.scn-emily-walks-with-blanche .figure-blanche {
  position: absolute; bottom: 14%; left: 48%; width: 14px; height: 28px;
  background: linear-gradient(180deg, #8D6E63 0%, #5D4037 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: ewb-walk 5s ease-in-out infinite reverse;
  animation-delay: 0.2s;
}
.scn-emily-walks-with-blanche .tree-left {
  position: absolute; bottom: 18%; left: 15%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #2E7D32 0%, #1B5E20 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%;
  filter: blur(2px);
  animation: ewb-tree 10s ease-in-out infinite alternate;
}
.scn-emily-walks-with-blanche .tree-right {
  position: absolute; bottom: 18%; right: 20%; width: 50px; height: 90px;
  background: linear-gradient(180deg, #388E3C 0%, #1B5E20 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%;
  filter: blur(2px);
  animation: ewb-tree 10s ease-in-out infinite alternate-reverse;
}
.scn-emily-walks-with-blanche .cloud-ewb1 {
  position: absolute; top: 10%; left: 5%; width: 120px; height: 20px;
  background: linear-gradient(180deg, rgba(255,255,255,0.7) 0%, rgba(255,255,255,0.1) 100%);
  border-radius: 50%;
  filter: blur(8px);
  animation: ewb-cloud1 40s linear infinite;
}
.scn-emily-walks-with-blanche .cloud-ewb2 {
  position: absolute; top: 18%; right: 10%; width: 100px; height: 16px;
  background: linear-gradient(180deg, rgba(255,255,255,0.5) 0%, rgba(255,255,255,0.05) 100%);
  border-radius: 50%;
  filter: blur(6px);
  animation: ewb-cloud2 60s linear infinite;
}
@keyframes ewb-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes ewb-sun {
  0% { transform: scale(1) translate(0, 0); box-shadow: 0 0 40px rgba(255,215,0,0.4); }
  50% { transform: scale(1.05) translate(3px, -2px); box-shadow: 0 0 60px rgba(255,215,0,0.7); }
  100% { transform: scale(0.98) translate(-2px, 0); box-shadow: 0 0 50px rgba(255,215,0,0.5); }
}
@keyframes ewb-hills {
  0% { transform: translateY(0); }
  50% { transform: translateY(-5px); }
  100% { transform: translateY(3px); }
}
@keyframes ewb-hills2 {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-3px) scale(1.01); }
  100% { transform: translateY(2px) scale(0.99); }
}
@keyframes ewb-house {
  0% { transform: translateX(-50%) scaleY(1); }
  50% { transform: translateX(-50%) scaleY(1.01); }
  100% { transform: translateX(-50%) scaleY(0.99); }
}
@keyframes ewb-walk {
  0% { transform: translateX(0) translateY(0) rotate(-2deg); }
  25% { transform: translateX(15px) translateY(-3px) rotate(1deg); }
  50% { transform: translateX(30px) translateY(0) rotate(-2deg); }
  75% { transform: translateX(45px) translateY(-2px) rotate(1deg); }
  100% { transform: translateX(60px) translateY(0) rotate(0deg); }
}
@keyframes ewb-tree {
  0% { transform: rotate(0deg) scale(1); }
  50% { transform: rotate(3deg) scale(1.02); }
  100% { transform: rotate(-2deg) scale(0.98); }
}
@keyframes ewb-cloud1 {
  0% { transform: translateX(-60px); }
  100% { transform: translateX(120vw); }
}
@keyframes ewb-cloud2 {
  0% { transform: translateX(0); }
  100% { transform: translateX(-120vw); }
}

.scn-ancient-chambers {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 30%, #0f0f1a 100%),
              radial-gradient(ellipse at 50% 80%, #2a2a3e 0%, transparent 70%);
}
.scn-ancient-chambers .wall-bg {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, #1a1a2e 0%, #2a2a3e 40%, #1a1a2e 100%);
  animation: ac-wall 18s ease-in-out infinite alternate;
}
.scn-ancient-chambers .archway {
  position: absolute; bottom: 20%; left: 25%; width: 50%; height: 60%;
  background: linear-gradient(180deg, #3e2a1a 0%, #1a0e05 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  box-shadow: inset 0 0 40px rgba(0,0,0,0.8);
}
.scn-ancient-chambers .window-dim {
  position: absolute; top: 15%; left: 30%; width: 60px; height: 80px;
  background: linear-gradient(180deg, #4a6e8a 0%, #2a3e5a 100%);
  border-radius: 10% 10% 4% 4%;
  box-shadow: 0 0 30px rgba(100,150,200,0.3);
  animation: ac-window 12s ease-in-out infinite alternate;
}
.scn-ancient-chambers .candle-stand {
  position: absolute; bottom: 10%; left: 50%; width: 20px; height: 60px;
  margin-left: 40%;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 30% 30%;
  transform: translateX(-50%);
}
.scn-ancient-chambers .candle-flame {
  position: absolute; bottom: 40%; left: 50%; margin-left: 40%; width: 8px; height: 12px;
  background: radial-gradient(circle, #ffd080 0%, #c08040 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 8px rgba(255,200,100,0.6);
  animation: ac-candle 2s ease-in-out infinite alternate;
}
.scn-ancient-chambers .table-old {
  position: absolute; bottom: 5%; left: 30%; width: 180px; height: 30px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 0 12px 20px rgba(0,0,0,0.7);
}
.scn-ancient-chambers .tapestry {
  position: absolute; top: 10%; right: 10%; width: 80px; height: 120px;
  background: linear-gradient(180deg, #5a3a3a 0%, #2a1a1a 100%);
  border: 2px solid #8a5a4a;
  border-radius: 4px;
  animation: ac-tapestry 30s ease-in-out infinite alternate;
}
.scn-ancient-chambers .shadow-sway {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.4) 100%);
  animation: ac-shadow 8s ease-in-out infinite alternate;
}
@keyframes ac-wall {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes ac-window {
  0% { box-shadow: 0 0 20px rgba(100,150,200,0.2); opacity: 0.6; }
  50% { box-shadow: 0 0 40px rgba(100,150,200,0.5); opacity: 0.8; }
  100% { box-shadow: 0 0 25px rgba(100,150,200,0.3); opacity: 0.65; }
}
@keyframes ac-candle {
  0% { transform: scaleY(1) translateY(0); opacity: 0.8; box-shadow: 0 0 20px rgba(255,200,100,0.4); }
  50% { transform: scaleY(1.3) translateY(-2px); opacity: 1; box-shadow: 0 0 40px rgba(255,200,100,0.8); }
  100% { transform: scaleY(0.9) translateY(1px); opacity: 0.9; box-shadow: 0 0 25px rgba(255,200,100,0.5); }
}
@keyframes ac-tapestry {
  0% { transform: scaleX(1); }
  50% { transform: scaleX(1.02); }
  100% { transform: scaleX(0.98); }
}
@keyframes ac-shadow {
  0% { transform: translateY(0); opacity: 0.3; }
  50% { transform: translateY(-10px); opacity: 0.5; }
  100% { transform: translateY(5px); opacity: 0.35; }
}

.scn-music-from-past {
  background: linear-gradient(180deg, #0f0f1a 0%, #1a1a2e 40%, #2a1a1a 100%),
              radial-gradient(ellipse at 50% 60%, #2a1a1a 0%, transparent 70%);
}
.scn-music-from-past .room-bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #1a1a2e 0%, #2a1a1a 100%);
}
.scn-music-from-past .harpsichord {
  position: absolute; bottom: 10%; left: 25%; width: 200px; height: 40px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e05 100%);
  border-radius: 10% 10% 4% 4%;
  box-shadow: 0 12px 24px rgba(0,0,0,0.8);
  transform: perspective(400px) rotateX(10deg);
}
.scn-music-from-past .keys {
  position: absolute; bottom: 12%; left: 28%; width: 180px; height: 8px;
  background: linear-gradient(90deg, #fff 0%, #ddd 10%, #fff 20%, #ddd 30%, #fff 40%, #ddd 50%, #fff 60%, #ddd 70%, #fff 80%, #ddd 90%, #fff 100%);
  border-radius: 2px;
  animation: mfp-keys 10s ease-in-out infinite alternate;
}
.scn-music-from-past .figure-listening {
  position: absolute; bottom: 15%; left: 55%; width: 16px; height: 30px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0f0f0f 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: mfp-figure 6s ease-in-out infinite alternate;
}
.scn-music-from-past .candle-light {
  position: absolute; bottom: 35%; left: 45%; width: 6px; height: 10px;
  background: radial-gradient(circle, #ffd080 0%, #c08040 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 15px rgba(255,200,100,0.5);
  animation: mfp-candle 3s ease-in-out infinite alternate;
}
.scn-music-from-past .sheet-music-1 {
  position: absolute; bottom: 18%; left: 30%; width: 30px; height: 20px;
  background: linear-gradient(180deg, #f5e6d0 0%, #e0c8a8 100%);
  border-radius: 2px;
  transform: rotate(-5deg);
  animation: mfp-sheet1 8s ease-in-out infinite alternate;
}
.scn-music-from-past .sheet-music-2 {
  position: absolute; bottom: 16%; left: 38%; width: 30px; height: 20px;
  background: linear-gradient(180deg, #f5e6d0 0%, #e0c8a8 100%);
  border-radius: 2px;
  transform: rotate(8deg);
  animation: mfp-sheet2 10s ease-in-out infinite alternate;
}
.scn-music-from-past .note-float {
  position: absolute; bottom: 40%; left: 40%; width: 4px; height: 6px;
  background: #ffd080;
  border-radius: 50%;
  box-shadow: 0 0 10px rgba(255,200,100,0.8);
  animation: mfp-note1 12s ease-out infinite;
}
.scn-music-from-past .note-float-2 {
  position: absolute; bottom: 40%; left: 48%; width: 4px; height: 6px;
  background: #ffd080;
  border-radius: 50%;
  box-shadow: 0 0 10px rgba(255,200,100,0.8);
  animation: mfp-note2 14s ease-out infinite;
  animation-delay: 2s;
}
@keyframes mfp-keys {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(1px); }
}
@keyframes mfp-figure {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(2deg); }
  100% { transform: translateY(1px) rotate(-1deg); }
}
@keyframes mfp-candle {
  0% { transform: scaleY(1) translateY(0); opacity: 0.7; }
  50% { transform: scaleY(1.2) translateY(-2px); opacity: 1; }
  100% { transform: scaleY(0.9) translateY(1px); opacity: 0.8; }
}
@keyframes mfp-sheet1 {
  0% { transform: rotate(-5deg) translateY(0); }
  50% { transform: rotate(-3deg) translateY(-2px); }
  100% { transform: rotate(-6deg) translateY(0); }
}
@keyframes mfp-sheet2 {
  0% { transform: rotate(8deg) translateY(0); }
  50% { transform: rotate(10deg) translateY(-1px); }
  100% { transform: rotate(7deg) translateY(0); }
}
@keyframes mfp-note1 {
  0% { transform: translateY(0) scale(1); opacity: 1; }
  50% { transform: translateY(-30px) scale(0.8); opacity: 0.5; }
  100% { transform: translateY(-60px) scale(0.5); opacity: 0; }
}
@keyframes mfp-note2 {
  0% { transform: translateY(0) scale(1); opacity: 1; }
  50% { transform: translateY(-25px) scale(0.8); opacity: 0.5; }
  100% { transform: translateY(-50px) scale(0.5); opacity: 0; }
}

.scn-hints-of-mystery {
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2e 40%, #2a1a1a 100%),
              radial-gradient(ellipse at 50% 90%, #1a1a2e 0%, transparent 70%);
}
.scn-hints-of-mystery .corridor-bg {
  position: absolute; inset: 0;
  background: linear-gradient(90deg, #0a0a1a 0%, #1a1a2e 40%, #0a0a1a 100%);
}
.scn-hints-of-mystery .door {
  position: absolute; bottom: 10%; left: 35%; width: 120px; height: 180px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0e05 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.8), 0 8px 20px rgba(0,0,0,0.5);
  animation: hom-door 20s ease-in-out infinite alternate;
}
.scn-hints-of-mystery .door-light {
  position: absolute; bottom: 10%; left: 35%; width: 120px; height: 10px;
  background: linear-gradient(180deg, #ffd080 0%, transparent 100%);
  border-radius: 0 0 50% 50%;
  box-shadow: 0 0 60px 20px rgba(255,200,100,0.3);
  animation: hom-light 6s ease-in-out infinite alternate;
}
.scn-hints-of-mystery .figure-habit {
  position: absolute; bottom: 8%; left: 20%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: hom-figure 10s ease-in-out infinite alternate;
}
.scn-hints-of-mystery .candle-sconce {
  position: absolute; bottom: 55%; left: 20%; width: 12px; height: 12px;
  background: radial-gradient(circle, #ffd080 0%, #c08040 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(255,200,100,0.4);
  animation: hom-candle 2.5s ease-in-out infinite alternate;
}
.scn-hints-of-mystery .strange-shadow {
  position: absolute; bottom: 5%; left: 40%; width: 80px; height: 100px;
  background: radial-gradient(ellipse, rgba(0,0,0,0.6) 0%, transparent 100%);
  filter: blur(8px);
  animation: hom-shadow 15s ease-in-out infinite alternate;
}
.scn-hints-of-mystery .floor-stones {
  position: absolute; bottom: 0; left: 0; right: 0; height: 8%;
  background: repeating-linear-gradient(90deg, #2a2a3e 0px, #1a1a2e 20px, #2a2a3e 40px);
  box-shadow: 0 -4px 10px rgba(0,0,0,0.5);
}
@keyframes hom-door {
  0% { transform: scaleX(1) translateX(0); }
  50% { transform: scaleX(1.02) translateX(3px); }
  100% { transform: scaleX(0.98) translateX(-2px); }
}
@keyframes hom-light {
  0% { opacity: 0.3; }
  50% { opacity: 0.7; box-shadow: 0 0 80px 30px rgba(255,200,100,0.5); }
  100% { opacity: 0.4; }
}
@keyframes hom-figure {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-5px) rotate(2deg); }
  100% { transform: translateY(2px) rotate(-1deg); }
}
@keyframes hom-candle {
  0% { transform: scaleY(1) translateY(0); opacity: 0.7; box-shadow: 0 0 20px rgba(255,200,100,0.3); }
  50% { transform: scaleY(1.3) translateY(-2px); opacity: 1; box-shadow: 0 0 40px rgba(255,200,100,0.6); }
  100% { transform: scaleY(0.9) translateY(1px); opacity: 0.8; box-shadow: 0 0 25px rgba(255,200,100,0.4); }
}
@keyframes hom-shadow {
  0% { transform: translateX(0) scale(1); opacity: 0.2; }
  50% { transform: translateX(10px) scale(1.1); opacity: 0.4; }
  100% { transform: translateX(-5px) scale(0.9); opacity: 0.25; }
}

.scn-butterfly-poem-continued {
  background: linear-gradient(180deg, #87ceeb 0%, #b0e0e6 30%, #f0e68c 100%), radial-gradient(ellipse at 50% 10%, #fffde0 0%, transparent 60%);
  overflow: hidden;
}
.scn-butterfly-poem-continued .sky {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #ffe0a0 0%, #87ceeb 70%);
  animation: sky-bpc 15s ease-in-out infinite alternate;
}
.scn-butterfly-poem-continued .sun {
  position: absolute; top: 5%; left: 20%; width: 40px; height: 40px;
  background: radial-gradient(circle, #fffbd0 0%, #ffe680 50%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(255,230,128,0.4);
  animation: sun-bpc 10s ease-in-out infinite alternate;
}
.scn-butterfly-poem-continued .hills-back {
  position: absolute; bottom: 50%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #6b8e23 0%, #556b2f 100%);
  border-radius: 40% 60% 0 0 / 100% 80% 0 0;
  animation: hills-bpc 12s ease-in-out infinite alternate;
}
.scn-butterfly-poem-continued .meadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #7ccd7c 0%, #228b22 100%);
  border-radius: 30% 30% 0 0;
  animation: meadow-bpc 8s ease-in-out infinite alternate;
}
.scn-butterfly-poem-continued .flowers-left {
  position: absolute; bottom: 30%; left: 10%; width: 40px; height: 40px;
  background: radial-gradient(circle, #9370db 20%, #8a2be2 40%, transparent 60%);
  border-radius: 50%;
  filter: blur(1px);
  animation: flower-sway-bpc 4s ease-in-out infinite;
}
.scn-butterfly-poem-continued .flowers-right {
  position: absolute; bottom: 25%; right: 20%; width: 50px; height: 50px;
  background: radial-gradient(circle, #da70d6 20%, #ba55d3 40%, transparent 60%);
  border-radius: 50%;
  filter: blur(1px);
  animation: flower-sway-bpc 5s ease-in-out infinite reverse;
}
.scn-butterfly-poem-continued .butterfly {
  position: absolute; bottom: 45%; left: 30%; width: 24px; height: 20px;
  background: radial-gradient(ellipse at 30% 50%, #ffd700 20%, #daa520 40%, transparent 70%);
  border-radius: 50% 0 50% 0 / 0 50% 0 50%;
  transform: rotate(-30deg);
  animation: flutter-bpc 3s ease-in-out infinite, fly-bpc 15s linear infinite;
}
.scn-butterfly-poem-continued .petal-dance {
  position: absolute; bottom: 20%; left: 50%; width: 8px; height: 8px;
  background: #ff69b4;
  border-radius: 50%;
  opacity: 0.6;
  animation: petal-drift-bpc 7s ease-in-out infinite;
}
@keyframes sky-bpc {
  0% { opacity: 0.8; }
  50% { opacity: 1; background-position: 0% 50%; }
  100% { opacity: 0.7; background-position: 100% 50%; }
}
@keyframes sun-bpc {
  0% { transform: scale(0.9) translateY(0); opacity: 0.85; }
  50% { transform: scale(1.1) translateY(-5px); opacity: 1; }
  100% { transform: scale(0.95) translateY(2px); opacity: 0.9; }
}
@keyframes hills-bpc {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes meadow-bpc {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.01); }
  100% { transform: scaleY(1); }
}
@keyframes flower-sway-bpc {
  0% { transform: rotate(-5deg) skew(0deg); }
  50% { transform: rotate(5deg) skew(2deg); }
  100% { transform: rotate(-5deg) skew(0deg); }
}
@keyframes flutter-bpc {
  0% { transform: rotate(-30deg) scale(1); }
  50% { transform: rotate(0deg) scale(1.1) translateY(-3px); }
  100% { transform: rotate(-30deg) scale(1); }
}
@keyframes fly-bpc {
  0% { left: 10%; top: 40%; }
  25% { left: 60%; top: 30%; }
  50% { left: 80%; top: 50%; }
  75% { left: 40%; top: 35%; }
  100% { left: 10%; top: 40%; }
}
@keyframes petal-drift-bpc {
  0% { transform: translate(0,0) rotate(0deg); opacity: 0.6; }
  50% { transform: translate(30px,-20px) rotate(180deg); opacity: 0.3; }
  100% { transform: translate(60px,-40px) rotate(360deg); opacity: 0; }
}

.scn-butterfly-poem-concluded {
  background: linear-gradient(180deg, #4a90d9 0%, #87ceeb 40%, #b0c4de 100%), radial-gradient(ellipse at 70% 20%, #fff8dc 0%, transparent 50%);
  overflow: hidden;
}
.scn-butterfly-poem-concluded .sky-mountain {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #87ceeb 0%, #e0f0ff 100%);
  animation: sky-bpcc 20s ease-in-out infinite alternate;
}
.scn-butterfly-poem-concluded .peak-back {
  position: absolute; bottom: 40%; left: 10%; right: 20%; height: 30%;
  background: linear-gradient(180deg, #2f4f4f 0%, #1a3a3a 100%);
  border-radius: 30% 70% 0 0 / 100% 80% 0 0;
  transform: scale(1.2) translateX(-10%);
  animation: mountain-bpcc 15s ease-in-out infinite alternate;
}
.scn-butterfly-poem-concluded .peak-front {
  position: absolute; bottom: 30%; left: 30%; right: 10%; height: 40%;
  background: linear-gradient(180deg, #3a5f5f 0%, #1e3a3a 100%);
  border-radius: 60% 40% 0 0 / 90% 100% 0 0;
  animation: mountain-bpcc 18s ease-in-out infinite alternate;
}
.scn-butterfly-poem-concluded .cedar {
  position: absolute; bottom: 30%; left: 40%; width: 20px; height: 60px;
  background: linear-gradient(180deg, #2d2d2d 0%, #1a1a1a 100%);
  border-radius: 30% 30% 10% 10%;
  transform-origin: bottom;
  animation: tree-sway-bpcc 6s ease-in-out infinite;
}
.scn-butterfly-poem-concluded .wild-thyme {
  position: absolute; bottom: 35%; left: 45%; width: 12px; height: 12px;
  background: radial-gradient(circle, #dda0dd 20%, #9932cc 50%, transparent 70%);
  border-radius: 50%;
  filter: blur(1px);
  animation: thyme-bob-bpcc 4s ease-in-out infinite;
}
.scn-butterfly-poem-concluded .butterfly-up {
  position: absolute; bottom: 50%; left: 10%; width: 20px; height: 16px;
  background: radial-gradient(ellipse at 30% 50%, #ffd700 20%, #b8860b 40%, transparent 60%);
  border-radius: 50% 0 50% 0 / 0 50% 0 50%;
  animation: flutter-up-bpcc 2.5s ease-in-out infinite, fly-up-bpcc 20s linear infinite;
}
.scn-butterfly-poem-concluded .breeze-line {
  position: absolute; top: 20%; left: -10%; width: 120%; height: 4px;
  background: linear-gradient(90deg, transparent, rgba(255,255,255,0.3), transparent);
  border-radius: 50%;
  filter: blur(2px);
  animation: breeze-bpcc 25s linear infinite;
}
@keyframes sky-bpcc {
  0% { opacity: 0.7; }
  50% { opacity: 1; }
  100% { opacity: 0.6; }
}
@keyframes mountain-bpcc {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-4px) scale(1.02); }
  100% { transform: translateY(0) scale(1); }
}
@keyframes tree-sway-bpcc {
  0% { transform: rotate(-2deg); }
  50% { transform: rotate(2deg) scale(1.01); }
  100% { transform: rotate(-2deg); }
}
@keyframes thyme-bob-bpcc {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-2px) scale(1.1); }
  100% { transform: translateY(0) scale(1); }
}
@keyframes flutter-up-bpcc {
  0% { transform: rotate(-20deg) scale(1); }
  50% { transform: rotate(10deg) scale(1.2) translateY(-4px); }
  100% { transform: rotate(-20deg) scale(1); }
}
@keyframes fly-up-bpcc {
  0% { left: 0%; top: 40%; }
  20% { left: 20%; top: 25%; }
  40% { left: 50%; top: 35%; }
  60% { left: 70%; top: 20%; }
  80% { left: 40%; top: 30%; }
  100% { left: 0%; top: 40%; }
}
@keyframes breeze-bpcc {
  0% { transform: translateX(0); opacity: 0.3; }
  50% { transform: translateX(30vw); opacity: 0.6; }
  100% { transform: translateX(60vw); opacity: 0; }
}

.scn-butterfly-return {
  background: radial-gradient(ellipse at 50% 30%, #2e8b57 0%, #1a5c3a 60%, #0d331f 100%), linear-gradient(180deg, #0d331f 0%, #1a5c3a 100%);
  overflow: hidden;
}
.scn-butterfly-return .bg-pond {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #1a5c3a 0%, #0b2b1a 100%);
  border-radius: 50% 50% 0 0;
  animation: pond-bpr 12s ease-in-out infinite alternate;
}
.scn-butterfly-return .lily-petal-1 {
  position: absolute; bottom: 35%; left: 38%; width: 30px; height: 40px;
  background: radial-gradient(ellipse at 50% 100%, #fff0f5 0%, #ffb6c1 50%, transparent 70%);
  border-radius: 50% 50% 0 0;
  transform: rotate(-20deg);
  transform-origin: bottom center;
  animation: petal-open-bpr 6s ease-in-out infinite;
}
.scn-butterfly-return .lily-petal-2 {
  position: absolute; bottom: 35%; left: 45%; width: 30px; height: 40px;
  background: radial-gradient(ellipse at 50% 100%, #fff0f5 0%, #ffb6c1 50%, transparent 70%);
  border-radius: 50% 50% 0 0;
  transform: rotate(0deg);
  transform-origin: bottom center;
  animation: petal-open-bpr 6s ease-in-out infinite 0.5s;
}
.scn-butterfly-return .lily-petal-3 {
  position: absolute; bottom: 35%; left: 52%; width: 30px; height: 40px;
  background: radial-gradient(ellipse at 50% 100%, #fff0f5 0%, #ffb6c1 50%, transparent 70%);
  border-radius: 50% 50% 0 0;
  transform: rotate(20deg);
  transform-origin: bottom center;
  animation: petal-open-bpr 6s ease-in-out infinite 1s;
}
.scn-butterfly-return .lily-stamen {
  position: absolute; bottom: 42%; left: 48%; width: 8px; height: 20px;
  background: linear-gradient(180deg, #ffd700 0%, #b8860b 100%);
  border-radius: 50% 50% 0 0;
  transform: translateX(-50%);
  animation: stamen-bob-bpr 4s ease-in-out infinite;
}
.scn-butterfly-return .butterfly-lands {
  position: absolute; bottom: 50%; left: 10%; width: 22px; height: 18px;
  background: radial-gradient(ellipse at 30% 50%, #4169e1 20%, #00008b 40%, transparent 60%);
  border-radius: 50% 0 50% 0 / 0 50% 0 50%;
  animation: flutter-land-bpr 2s ease-in-out infinite, descend-bpr 10s ease-in-out forwards;
}
.scn-butterfly-return .leaf {
  position: absolute; bottom: 25%; left: 30%; width: 40px; height: 15px;
  background: linear-gradient(180deg, #228b22 0%, #006400 100%);
  border-radius: 60% 40% 40% 60% / 50% 50% 50% 50%;
  transform: rotate(-10deg);
  animation: leaf-sway-bpr 7s ease-in-out infinite alternate;
}
@keyframes pond-bpr {
  0% { opacity: 0.8; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.02); }
  100% { opacity: 0.9; transform: scale(1); }
}
@keyframes petal-open-bpr {
  0% { transform: rotate(-20deg) scale(0.8); opacity: 0.7; }
  50% { transform: rotate(0deg) scale(1.1); opacity: 1; }
  100% { transform: rotate(-20deg) scale(0.8); opacity: 0.7; }
}
@keyframes stamen-bob-bpr {
  0% { transform: translateX(-50%) rotate(-2deg); }
  50% { transform: translateX(-50%) rotate(2deg) translateY(-2px); }
  100% { transform: translateX(-50%) rotate(-2deg); }
}
@keyframes flutter-land-bpr {
  0% { transform: rotate(-30deg) scale(1); }
  50% { transform: rotate(0deg) scale(1.2); }
  100% { transform: rotate(-30deg) scale(1); }
}
@keyframes descend-bpr {
  0% { bottom: 60%; left: 10%; }
  50% { bottom: 50%; left: 30%; }
  100% { bottom: 45%; left: 45%; }
}
@keyframes leaf-sway-bpr {
  0% { transform: rotate(-10deg) skew(0deg); }
  50% { transform: rotate(5deg) skew(2deg); }
  100% { transform: rotate(-10deg) skew(0deg); }
}

.scn-turret-discovery {
  background: linear-gradient(180deg, #3a3a3a 0%, #2a2a2a 40%, #1a1a1a 100%), radial-gradient(ellipse at 50% 100%, #2a2a2a 0%, transparent 70%);
  overflow: hidden;
}
.scn-turret-discovery .wall-stone {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #4a4a4a 0%, #3a3a3a 50%, #2a2a2a 100%);
  box-shadow: inset 0 0 30px rgba(0,0,0,0.8);
  animation: wall-shadow-td 10s ease-in-out infinite alternate;
}
.scn-turret-discovery .archway {
  position: absolute; bottom: 20%; left: 25%; right: 25%; height: 60%;
  background: linear-gradient(180deg, #1a1a1a 0%, #0d0d0d 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.9);
  animation: arch-pulse-td 8s ease-in-out infinite alternate;
}
.scn-turret-discovery .window-glow {
  position: absolute; top: 30%; left: 40%; width: 40px; height: 30px;
  background: radial-gradient(circle, #ffd060 0%, #b08040 70%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 0 0 30px 8px rgba(255,208,96,0.5), 0 0 60px 20px rgba(255,208,96,0.2);
  animation: glow-flicker-td 3s ease-in-out infinite alternate;
}
.scn-turret-discovery .light-beam {
  position: absolute; top: 32%; left: 42%; width: 120px; height: 200px;
  background: linear-gradient(180deg, rgba(255,208,96,0.3) 0%, transparent 100%);
  transform: rotate(-10deg);
  transform-origin: top left;
  opacity: 0.6;
  animation: beam-sweep-td 12s ease-in-out infinite alternate;
}
.scn-turret-discovery .staircase {
  position: absolute; bottom: 0; left: 35%; right: 35%; height: 30%;
  background: linear-gradient(180deg, #4a4a3a 0%, #2a2a1a 100%);
  clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%);
  animation: stairs-breathe-td 15s ease-in-out infinite alternate;
}
.scn-turret-discovery .figure-silhouette {
  position: absolute; bottom: 12%; left: 45%; width: 18px; height: 48px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform: translateX(-50%);
  animation: figure-ascend-td 6s ease-in-out infinite;
}
.scn-turret-discovery .ivy {
  position: absolute; bottom: 0; left: 20%; width: 60px; height: 80px;
  background: radial-gradient(ellipse at 50% 100%, #1a3a1a 0%, transparent 70%);
  border-radius: 60% 40% 0 0;
  filter: blur(2px);
  animation: ivy-sway-td 8s ease-in-out infinite alternate;
}
@keyframes wall-shadow-td {
  0% { box-shadow: inset 0 0 20px rgba(0,0,0,0.7); }
  50% { box-shadow: inset 0 0 40px rgba(0,0,0,0.9); }
  100% { box-shadow: inset 0 0 25px rgba(0,0,0,0.8); }
}
@keyframes arch-pulse-td {
  0% { transform: scale(1); opacity: 0.8; }
  50% { transform: scale(1.03); opacity: 1; }
  100% { transform: scale(1); opacity: 0.85; }
}
@keyframes glow-flicker-td {
  0% { box-shadow: 0 0 25px 6px rgba(255,208,96,0.4), 0 0 50px 15px rgba(255,208,96,0.15); opacity: 0.9; }
  50% { box-shadow: 0 0 40px 12px rgba(255,208,96,0.6), 0 0 80px 25px rgba(255,208,96,0.3); opacity: 1; }
  100% { box-shadow: 0 0 30px 8px rgba(255,208,96,0.5), 0 0 60px 18px rgba(255,208,96,0.2); opacity: 0.95; }
}
@keyframes beam-sweep-td {
  0% { transform: rotate(-15deg) translateX(-10px); opacity: 0.4; }
  50% { transform: rotate(-5deg) translateX(10px); opacity: 0.7; }
  100% { transform: rotate(-15deg) translateX(-10px); opacity: 0.4; }
}
@keyframes stairs-breathe-td {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.02); }
  100% { transform: scaleY(1); }
}
@keyframes figure-ascend-td {
  0% { transform: translateX(-50%) translateY(0) rotate(0deg); }
  50% { transform: translateX(-50%) translateY(-8px) rotate(1deg); }
  100% { transform: translateX(-50%) translateY(0) rotate(0deg); }
}
@keyframes ivy-sway-td {
  0% { transform: rotate(-3deg); }
  50% { transform: rotate(3deg) scale(1.02); }
  100% { transform: rotate(-3deg); }
}

.scn-choral-effect { background: linear-gradient(180deg, #4a3a5e 0%, #7a5a3e 50%, #3a2a3e 100%), radial-gradient(ellipse at 50% 0%, #b08060 0%, transparent 70%); }
.scn-choral-effect .sky-ce { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #4a3a5e 0%, #7a5a3e 100%); animation: ce-sky 15s ease-in-out infinite alternate; }
.scn-choral-effect .window-ce { position:absolute; top:8%; left:50%; width:120px; height:180px; transform:translateX(-50%); background: linear-gradient(180deg, #6a5a4e 0%, #3a2a1e 100%); border-radius:8px; box-shadow: inset 0 0 20px #b09070; animation: ce-window 10s ease-in-out infinite; }
.scn-choral-effect .altar-ce { position:absolute; bottom:20%; left:50%; width:80px; height:60px; transform:translateX(-50%); background: linear-gradient(180deg, #5a3a2a 0%, #2a1a1a 100%); border-radius:4px; box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: ce-altar 12s ease-in-out infinite alternate; }
.scn-choral-effect .candle-ce { position:absolute; bottom:30%; left:48%; width:10px; height:30px; background: linear-gradient(180deg, #d0b080 0%, #a08050 100%); border-radius:2px; box-shadow: 0 0 20px 6px #f0c060; animation: ce-candle 3s ease-in-out infinite; }
.scn-choral-effect .monk-ce { position:absolute; bottom:18%; width:20px; height:45px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; }
.scn-choral-effect .monk1 { left:35%; animation: ce-figure1 6s ease-in-out infinite; }
.scn-choral-effect .monk2 { left:60%; animation: ce-figure2 6s ease-in-out 0.5s infinite; }
.scn-choral-effect .organ-ce { position:absolute; bottom:15%; left:70%; width:40px; height:80px; background: linear-gradient(90deg, #3a2a1a 0%, #5a4a3a 50%, #3a2a1a 100%); border-radius:4px; box-shadow: 0 4px 8px rgba(0,0,0,.4); animation: ce-organ 20s ease-in-out infinite alternate; }
@keyframes ce-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes ce-window { 0% { box-shadow: inset 0 0 10px #b09070 } 50% { box-shadow: inset 0 0 30px #d0b080 } 100% { box-shadow: inset 0 0 15px #a08060 } }
@keyframes ce-altar { 0% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-3px) } 100% { transform: translateX(-50%) translateY(1px) } }
@keyframes ce-candle { 0%,100% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(-4px) scaleY(1.05) } }
@keyframes ce-figure1 { 0% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-2px) rotate(2deg) } 100% { transform: translateY(1px) rotate(-1deg) } }
@keyframes ce-figure2 { 0% { transform: translateY(0) rotate(1deg) } 50% { transform: translateY(-1px) rotate(-2deg) } 100% { transform: translateY(2px) rotate(1deg) } }
@keyframes ce-organ { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(.98) } }

.scn-storm-approach { background: linear-gradient(180deg, #1a2a3e 0%, #2a3a5e 40%, #7a5a3a 70%, #5a3a2a 100%), radial-gradient(ellipse at 20% 40%, #d08040 0%, transparent 60%); }
.scn-storm-approach .sky-sa { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #2a3a5e 0%, #1a2a3e 100%); animation: sa-sky 12s ease-in-out infinite alternate; }
.scn-storm-approach .sun-sa { position:absolute; top:25%; left:15%; width:60px; height:60px; background: radial-gradient(circle, #e09040 0%, #c07030 70%); border-radius:50%; box-shadow: 0 0 40px 10px #e09040, 0 0 80px 20px rgba(224,144,64,.5); animation: sa-sun 8s ease-in-out infinite alternate; }
.scn-storm-approach .cloud-sa { position:absolute; background: linear-gradient(180deg, #3a4a5e 0%, #1a2a3e 100%); border-radius:40%; filter: blur(8px); }
.scn-storm-approach .cloud1 { top:10%; left:20%; width:120px; height:40px; animation: sa-cloud1 35s linear infinite; }
.scn-storm-approach .cloud2 { top:15%; right:10%; width:80px; height:30px; animation: sa-cloud2 45s linear infinite reverse; }
.scn-storm-approach .sea-sa { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #1a2a3e 0%, #0a1a2e 100%); animation: sa-sea 20s ease-in-out infinite alternate; }
.scn-storm-approach .wave-sa { position:absolute; bottom:20%; width:100%; height:15%; background: linear-gradient(180deg, rgba(255,255,255,.08) 0%, rgba(255,255,255,.02) 100%); border-radius:50%; filter: blur(3px); }
.scn-storm-approach .wave1 { animation: sa-wave1 6s ease-in-out infinite; }
.scn-storm-approach .wave2 { animation: sa-wave2 7s ease-in-out 0.5s infinite; }
.scn-storm-approach .bird-sa { position:absolute; width:12px; height:6px; background: #2a2a3a; border-radius:50%; }
.scn-storm-approach .bird1 { top:30%; left:40%; animation: sa-bird1 4s ease-in-out infinite; }
.scn-storm-approach .bird2 { top:35%; right:30%; animation: sa-bird2 5s ease-in-out 0.3s infinite; }
@keyframes sa-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes sa-sun { 0% { box-shadow: 0 0 30px 8px #e09040 } 50% { box-shadow: 0 0 60px 15px #f0a050 } 100% { box-shadow: 0 0 40px 10px #c07030 } }
@keyframes sa-cloud1 { 0% { transform: translateX(-40px) } 100% { transform: translateX(120vw) } }
@keyframes sa-cloud2 { 0% { transform: translateX(0) } 100% { transform: translateX(-100vw) } }
@keyframes sa-sea { 0% { transform: translateY(0) } 50% { transform: translateY(-5px) } 100% { transform: translateY(3px) } }
@keyframes sa-wave1 { 0% { transform: translateX(0) translateY(0) scale(1) } 50% { transform: translateX(-20px) translateY(-6px) scale(1.1) } 100% { transform: translateX(15px) translateY(3px) scale(.95) } }
@keyframes sa-wave2 { 0% { transform: translateX(0) translateY(0) scale(1) } 50% { transform: translateX(25px) translateY(-8px) scale(1.15) } 100% { transform: translateX(-15px) translateY(5px) scale(.9) } }
@keyframes sa-bird1 { 0% { transform: translate(0,0) rotate(0deg) } 25% { transform: translate(15px,-10px) rotate(10deg) } 50% { transform: translate(30px,0) rotate(0deg) } 75% { transform: translate(45px,-8px) rotate(-10deg) } 100% { transform: translate(60px,0) rotate(0deg) } }
@keyframes sa-bird2 { 0% { transform: translate(0,0) rotate(0deg) } 25% { transform: translate(-12px,-8px) rotate(-8deg) } 50% { transform: translate(-25px,0) rotate(0deg) } 75% { transform: translate(-38px,-6px) rotate(8deg) } 100% { transform: translate(-50px,0) rotate(0deg) } }

.scn-shelter-at-monastery { background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2e 50%, #2a1a1a 100%), radial-gradient(ellipse at 50% 80%, #4a3a2a 0%, transparent 60%); }
.scn-shelter-at-monastery .sky-sm { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2e 100%); animation: sm-sky 20s ease-in-out infinite alternate; }
.scn-shelter-at-monastery .wall-sm { position:absolute; bottom:30%; left:10%; right:10%; height:60%; background: linear-gradient(180deg, #3a2a1a 0%, #1a1a0a 100%); border-radius:8px 8px 0 0; box-shadow: inset 0 0 30px rgba(0,0,0,.8); animation: sm-wall 15s ease-in-out infinite alternate; }
.scn-shelter-at-monastery .gate-sm { position:absolute; bottom:25%; left:50%; width:60px; height:80px; transform:translateX(-50%); background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:4px 4px 0 0; box-shadow: 0 0 20px 2px #6a4a2a; animation: sm-gate 12s ease-in-out infinite; }
.scn-shelter-at-monastery .torch-sm { position:absolute; bottom:35%; left:48%; width:8px; height:20px; background: linear-gradient(180deg, #c08040 0%, #a06020 100%); border-radius:2px; box-shadow: 0 0 30px 8px #d09050, 0 0 60px 15px rgba(208,144,80,.5); animation: sm-torch 3s ease-in-out infinite alternate; }
.scn-shelter-at-monastery .boat-sm { position:absolute; bottom:18%; left:20%; width:50px; height:20px; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 0 0 40% 40% / 0 0 60% 60%; box-shadow: 0 -2px 6px rgba(0,0,0,.6); animation: sm-boat 8s ease-in-out infinite; }
.scn-shelter-at-monastery .figure-sm { position:absolute; bottom:28%; width:16px; height:35px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; }
.scn-shelter-at-monastery .count { left:35%; animation: sm-count 6s ease-in-out infinite; }
.scn-shelter-at-monastery .monk { left:55%; animation: sm-monk 7s ease-in-out 0.5s infinite; }
@keyframes sm-sky { 0% { opacity:.6 } 50% { opacity:.9 } 100% { opacity:.7 } }
@keyframes sm-wall { 0% { box-shadow: inset 0 0 20px rgba(0,0,0,.6) } 50% { box-shadow: inset 0 0 40px rgba(0,0,0,.9) } 100% { box-shadow: inset 0 0 25px rgba(0,0,0,.7) } }
@keyframes sm-gate { 0% { transform: translateX(-50%) scaleY(1) } 50% { transform: translateX(-50%) scaleY(1.02) } 100% { transform: translateX(-50%) scaleY(.98) } }
@keyframes sm-torch { 0% { box-shadow: 0 0 20px 5px #d09050 } 50% { box-shadow: 0 0 40px 12px #e0a060 } 100% { box-shadow: 0 0 25px 6px #c08040 } }
@keyframes sm-boat { 0% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-5px) rotate(2deg) } 100% { transform: translateY(3px) rotate(-1deg) } }
@keyframes sm-count { 0% { transform: translateX(0) translateY(0) rotate(-1deg) } 25% { transform: translateX(8px) translateY(-2px) rotate(1deg) } 50% { transform: translateX(16px) translateY(0) rotate(-1deg) } 75% { transform: translateX(24px) translateY(-1px) rotate(1deg) } 100% { transform: translateX(32px) translateY(0) rotate(0deg) } }
@keyframes sm-monk { 0% { transform: translateX(0) translateY(0) rotate(1deg) } 25% { transform: translateX(-6px) translateY(-1px) rotate(-1deg) } 50% { transform: translateX(-12px) translateY(0) rotate(1deg) } 75% { transform: translateX(-18px) translateY(-2px) rotate(-1deg) } 100% { transform: translateX(-24px) translateY(0) rotate(0deg) } }

.scn-parlour-gloom { background: linear-gradient(180deg, #1a1a1a 0%, #2a1a1a 50%, #1a0a0a 100%), radial-gradient(ellipse at 50% 20%, #3a2a1a 0%, transparent 70%); }
.scn-parlour-gloom .window-pg { position:absolute; top:10%; left:10%; width:80px; height:100px; background: linear-gradient(135deg, #4a3a2a 0%, #2a1a1a 100%); border-radius:4px; box-shadow: inset 0 0 20px #6a5a4a; animation: pg-window 15s ease-in-out infinite alternate; }
.scn-parlour-gloom .wall-pg { position:absolute; inset:30% 0 0 0; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); box-shadow: inset 0 0 40px rgba(0,0,0,.8); animation: pg-wall 20s ease-in-out infinite alternate; }
.scn-parlour-gloom .table-pg { position:absolute; bottom:18%; left:50%; width:60px; height:10px; transform:translateX(-50%); background: linear-gradient(180deg, #3a2a1a 0%, #1a1a0a 100%); border-radius:2px; box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: pg-table 10s ease-in-out infinite; }
.scn-parlour-gloom .candle-pg { position:absolute; bottom:28%; left:50%; width:8px; height:25px; transform:translateX(-50%); background: linear-gradient(180deg, #d0b080 0%, #a08050 100%); border-radius:2px; box-shadow: 0 0 20px 4px #f0c060; animation: pg-candle 3s ease-in-out infinite alternate; }
.scn-parlour-gloom .chair-pg { position:absolute; bottom:22%; right:20%; width:30px; height:30px; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius:4px 4px 0 0; box-shadow: 0 4px 8px rgba(0,0,0,.6); animation: pg-chair 12s ease-in-out infinite; }
.scn-parlour-gloom .figure-pg { position:absolute; bottom:20%; left:30%; width:18px; height:40px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pg-figure 5s ease-in-out infinite; }
.scn-parlour-gloom .portrait-pg { position:absolute; top:15%; right:15%; width:30px; height:40px; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border:2px solid #5a4a3a; border-radius:2px; box-shadow: 0 0 10px 2px rgba(0,0,0,.5); animation: pg-portrait 20s ease-in-out infinite alternate; }
@keyframes pg-window { 0% { box-shadow: inset 0 0 10px #6a5a4a; opacity:.6 } 50% { box-shadow: inset 0 0 30px #8a7a5a; opacity:.8 } 100% { box-shadow: inset 0 0 15px #5a4a3a; opacity:.5 } }
@keyframes pg-wall { 0% { box-shadow: inset 0 0 20px rgba(0,0,0,.7) } 50% { box-shadow: inset 0 0 50px rgba(0,0,0,.9) } 100% { box-shadow: inset 0 0 30px rgba(0,0,0,.8) } }
@keyframes pg-table { 0% { transform: translateX(-50%) rotate(-1deg) } 50% { transform: translateX(-50%) rotate(1deg) } 100% { transform: translateX(-50%) rotate(-.5deg) } }
@keyframes pg-candle { 0% { transform: translateX(-50%) scaleY(1); opacity:.8 } 50% { transform: translateX(-50%) scaleY(1.08); opacity:1 } 100% { transform: translateX(-50%) scaleY(.95); opacity:.7 } }
@keyframes pg-chair { 0% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-2px) rotate(2deg) } 100% { transform: translateY(1px) rotate(-1deg) } }
@keyframes pg-figure { 0% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-3px) rotate(3deg) } 100% { transform: translateY(1px) rotate(-1deg) } }
@keyframes pg-portrait { 0% { transform: rotate(-2deg) scale(1) } 50% { transform: rotate(2deg) scale(1.02) } 100% { transform: rotate(-1deg) scale(.98) } }

/* --- pavilion-interior --- */
.scn-pavilion-interior { background: linear-gradient(180deg, #1c1a3e 0%, #3a2a4a 30%, #5a3a2a 70%, #1a2a1a 100%), radial-gradient(ellipse at 50% 20%, #7a5a3a 0%, transparent 70%); }
.scn-pavilion-interior .pavilion-arch { position:absolute; top:5%; left:25%; width:50%; height:20%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 50% 50% 0 0; box-shadow: 0 8px 20px rgba(0,0,0,.5); animation: pi-arch 9s ease-in-out infinite alternate; }
.scn-pavilion-interior .wall-left { position:absolute; top:0; left:0; width:25%; height:100%; background: linear-gradient(90deg, #3a2a1a 0%, #2a1a0a 100%); box-shadow: inset -10px 0 20px rgba(0,0,0,.4); animation: pi-wall 12s ease-in-out infinite alternate; }
.scn-pavilion-interior .wall-right { position:absolute; top:0; right:0; width:25%; height:100%; background: linear-gradient(90deg, #2a1a0a 0%, #3a2a1a 100%); box-shadow: inset 10px 0 20px rgba(0,0,0,.4); animation: pi-wall 12s ease-in-out infinite alternate-reverse; }
.scn-pavilion-interior .window-scene { position:absolute; top:15%; left:35%; width:30%; height:50%; background: linear-gradient(180deg, #2a1a3e 0%, #4a2a5a 30%, #7a5a3a 70%, #3a5a3a 100%), radial-gradient(ellipse at 50% 0%, #9a7a5a 0%, transparent 70%); border-radius: 10% / 5%; box-shadow: inset 0 0 30px rgba(0,0,0,.6); animation: pi-window 8s ease-in-out infinite alternate; }
.scn-pavilion-interior .foliage-left { position:absolute; top:5%; left:20%; width:15%; height:25%; background: radial-gradient(ellipse at 50% 100%, #2a4a2a 0%, #1a2a1a 70%, transparent 100%); filter: blur(3px); animation: pi-foliage 7s ease-in-out infinite alternate; }
.scn-pavilion-interior .foliage-right { position:absolute; top:5%; right:20%; width:15%; height:25%; background: radial-gradient(ellipse at 50% 100%, #2a4a2a 0%, #1a2a1a 70%, transparent 100%); filter: blur(3px); animation: pi-foliage 7s ease-in-out infinite alternate-reverse; }
.scn-pavilion-interior .floor-tiles { position:absolute; bottom:0; left:0; right:0; height:15%; background: repeating-linear-gradient(90deg, #4a3a2a 0px, #4a3a2a 20px, #5a4a3a 20px, #5a4a3a 40px); opacity: 0.6; box-shadow: inset 0 10px 20px rgba(0,0,0,.3); animation: pi-floor 20s linear infinite; }
.scn-pavilion-interior .candle-glow { position:absolute; bottom:35%; left:48%; width:4%; height:6%; background: radial-gradient(circle, #ffd080 0%, #c08040 50%, transparent 100%); border-radius: 50%; box-shadow: 0 0 30px 10px rgba(255,208,128,.4); animation: pi-candle 4s ease-in-out infinite alternate; }
@keyframes pi-arch { 0% { transform: translateY(0px) scaleY(1); } 50% { transform: translateY(-2px) scaleY(1.02); } 100% { transform: translateY(0px) scaleY(1); } }
@keyframes pi-wall { 0% { opacity: 0.9; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes pi-window { 0% { transform: scale(1); } 50% { transform: scale(1.01); } 100% { transform: scale(1); } }
@keyframes pi-foliage { 0% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(3px) rotate(2deg); } 100% { transform: translateX(0) rotate(-2deg); } }
@keyframes pi-floor { 0% { background-position: 0 0; } 100% { background-position: -40px 0; } }
@keyframes pi-candle { 0% { box-shadow: 0 0 20px 5px rgba(255,208,128,.3); opacity: 0.8; } 50% { box-shadow: 0 0 40px 15px rgba(255,208,128,.6); opacity: 1; } 100% { box-shadow: 0 0 25px 8px rgba(255,208,128,.35); opacity: 0.85; } }

/* --- renovation-plans --- */
.scn-renovation-plans { background: linear-gradient(180deg, #2a1a2a 0%, #4a3a4a 40%, #3a4a3a 70%, #2a3a2a 100%), radial-gradient(ellipse at 50% 0%, #6a5a6a 0%, transparent 60%); }
.scn-renovation-plans .coved-ceiling { position:absolute; top:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #5a4a5a 0%, #3a2a3a 100%); border-radius: 0 0 50% 50% / 0 0 20% 20%; box-shadow: inset 0 -10px 30px rgba(0,0,0,.3); animation: rp-ceiling 10s ease-in-out infinite alternate; }
.scn-renovation-plans .back-wall { position:absolute; top:20%; left:10%; right:10%; bottom:10%; background: linear-gradient(180deg, #4a3a4a 0%, #3a2a3a 100%); border-radius: 10px; box-shadow: inset 0 0 40px rgba(0,0,0,.5); }
.scn-renovation-plans .painting-a { position:absolute; top:25%; left:15%; width:20%; height:25%; background: linear-gradient(135deg, #5a4a3a 0%, #7a6a5a 50%, #5a4a3a 100%); border: 4px solid #6a5a4a; border-radius: 4px; box-shadow: 0 4px 10px rgba(0,0,0,.4); animation: rp-painting 8s ease-in-out infinite alternate; }
.scn-renovation-plans .painting-b { position:absolute; top:25%; right:15%; width:20%; height:25%; background: linear-gradient(135deg, #3a4a5a 0%, #5a6a7a 50%, #3a4a5a 100%); border: 4px solid #4a5a6a; border-radius: 4px; box-shadow: 0 4px 10px rgba(0,0,0,.4); animation: rp-painting 8s ease-in-out infinite alternate-reverse; }
.scn-renovation-plans .sofa { position:absolute; bottom:15%; left:30%; width:40%; height:12%; background: linear-gradient(180deg, #5a7a5a 0%, #3a5a3a 100%); border-radius: 20px 20px 0 0; box-shadow: 0 -4px 10px rgba(0,0,0,.3); animation: rp-sofa 6s ease-in-out infinite alternate; }
.scn-renovation-plans .statue-a { position:absolute; bottom:20%; left:12%; width:8%; height:30%; background: linear-gradient(180deg, #e0d0c0 0%, #c0b0a0 50%, #a09080 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; box-shadow: 0 6px 12px rgba(0,0,0,.3); animation: rp-statue 7s ease-in-out infinite alternate; }
.scn-renovation-plans .statue-b { position:absolute; bottom:20%; right:12%; width:8%; height:30%; background: linear-gradient(180deg, #e0d0c0 0%, #c0b0a0 50%, #a09080 100%); border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; box-shadow: 0 6px 12px rgba(0,0,0,.3); animation: rp-statue 7s ease-in-out infinite alternate-reverse; }
.scn-renovation-plans .window-tall { position:absolute; top:15%; left:45%; width:10%; height:50%; background: linear-gradient(180deg, #2a1a3e 0%, #4a3a5a 50%, #6a5a4a 100%); border: 6px solid #5a4a3a; border-radius: 4px; box-shadow: inset 0 0 20px rgba(0,0,0,.5); animation: rp-window 12s ease-in-out infinite alternate; }
.scn-renovation-plans .basket-flowers { position:absolute; bottom:15%; left:48%; width:4%; height:6%; background: radial-gradient(circle at 50% 0%, #7a5a3a 0%, #5a3a1a 50%, transparent 100%); border-radius: 50% 50% 20% 20%; box-shadow: 0 0 10px 5px rgba(122,90,58,.3); animation: rp-flowers 5s ease-in-out infinite alternate; }
@keyframes rp-ceiling { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-2px) scaleY(1.01); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes rp-painting { 0% { transform: rotate(-1deg) scale(1); } 50% { transform: rotate(1deg) scale(1.01); } 100% { transform: rotate(-1deg) scale(1); } }
@keyframes rp-sofa { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes rp-statue { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes rp-window { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes rp-flowers { 0% { transform: scale(1) translateY(0); } 50% { transform: scale(1.05) translateY(-1px); } 100% { transform: scale(1) translateY(0); } }

/* --- return-in-calm --- */
.scn-return-in-calm { background: linear-gradient(180deg, #1a1a3e 0%, #3a2a4a 30%, #6a4a3a 70%, #2a3a2a 100%), radial-gradient(ellipse at 50% 80%, #7a5a3a 0%, transparent 60%); }
.scn-return-in-calm .dusk-sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #2a1a3e 0%, #5a3a2a 40%, #7a5a3a 70%, #3a4a3a 100%); opacity: 0.9; animation: rc-sky 15s ease-in-out infinite alternate; }
.scn-return-in-calm .calm-sea { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #2a3a4a 0%, #1a2a3a 50%, #0a1a2a 100%), repeating-linear-gradient(90deg, transparent 0px, transparent 30px, rgba(255,255,255,0.03) 30px, rgba(255,255,255,0.03) 31px); animation: rc-sea 8s ease-in-out infinite alternate; }
.scn-return-in-calm .shore-line { position:absolute; bottom:50%; left:20%; right:20%; height:3%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 20px; box-shadow: 0 4px 10px rgba(0,0,0,.4); animation: rc-shore 6s ease-in-out infinite alternate; }
.scn-return-in-calm .sailboat { position:absolute; bottom:55%; left:40%; width:15%; height:25%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); clip-path: polygon(20% 0%, 80% 0%, 100% 100%, 0% 100%); box-shadow: 0 6px 15px rgba(0,0,0,.5); animation: rc-boat 5s ease-in-out infinite; }
.scn-return-in-calm .hull { position:absolute; bottom:53%; left:38%; width:19%; height:8%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius: 0 0 50% 50% / 0 0 100% 100%; box-shadow: 0 4px 8px rgba(0,0,0,.6); animation: rc-hull 5s ease-in-out infinite; }
.scn-return-in-calm .figures { position:absolute; bottom:58%; left:44%; width:6%; height:10%; background: radial-gradient(ellipse at 50% 30%, #2a1a1a 0%, #0a0000 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; filter: blur(1px); animation: rc-figures 4s ease-in-out infinite alternate; }
.scn-return-in-calm .water-reflection { position:absolute; bottom:30%; left:38%; width:24%; height:20%; background: linear-gradient(180deg, rgba(74,58,42,0.4) 0%, transparent 100%); filter: blur(8px); animation: rc-reflection 7s ease-in-out infinite alternate; }
@keyframes rc-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.85; } }
@keyframes rc-sea { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-2px) scaleY(1.005); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes rc-shore { 0% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(2px) scaleX(1.01); } 100% { transform: translateX(0) scaleX(1); } }
@keyframes rc-boat { 0% { transform: translate(0, 0) rotate(-2deg); } 25% { transform: translate(2px, -1px) rotate(0deg); } 50% { transform: translate(0, -2px) rotate(2deg); } 75% { transform: translate(-2px, -1px) rotate(0deg); } 100% { transform: translate(0, 0) rotate(-2deg); } }
@keyframes rc-hull { 0% { transform: translateY(0); } 25% { transform: translateY(-1px); } 50% { transform: translateY(-2px); } 75% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes rc-figures { 0% { transform: rotate(-3deg) translateY(0); } 50% { transform: rotate(0deg) translateY(-1px); } 100% { transform: rotate(3deg) translateY(0); } }
@keyframes rc-reflection { 0% { opacity: 0.5; } 50% { opacity: 0.7; } 100% { opacity: 0.5; } }

/* --- vesper-hymn --- */
.scn-vesper-hymn { background: linear-gradient(180deg, #0e0e2a 0%, #1a1a3e 30%, #3a2a4a 60%, #4a3a3a 100%), radial-gradient(ellipse at 50% 70%, #5a4a3a 0%, transparent 70%); }
.scn-vesper-hymn .evening-sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #0a0a1e 0%, #1a1a3e 40%, #3a2a4a 70%, #5a3a2a 100%); animation: vh-sky 14s ease-in-out infinite alternate; }
.scn-vesper-hymn .dark-sea { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(180deg, #0a1a2a 0%, #050a1a 50%, #020512 100%), repeating-linear-gradient(90deg, transparent 0px, transparent 40px, rgba(255,255,255,0.02) 40px, rgba(255,255,255,0.02) 41px); animation: vh-sea 9s ease-in-out infinite alternate; }
.scn-vesper-hymn .monastery-silhouette { position:absolute; bottom:40%; left:30%; right:30%; height:30%; background: linear-gradient(180deg, #0a0a1a 0%, #000 100%); clip-path: polygon(0% 100%, 10% 40%, 20% 40%, 20% 20%, 30% 20%, 30% 40%, 40% 40%, 40% 0%, 60% 0%, 60% 40%, 70% 40%, 70% 20%, 80% 20%, 80% 40%, 90% 40%, 100% 100%); box-shadow: inset 0 0 30px rgba(0,0,0,.5); animation: vh-building 12s ease-in-out infinite alternate; }
.scn-vesper-hymn .monastery-tower { position:absolute; bottom:40%; left:46%; width:8%; height:40%; background: linear-gradient(180deg, #0a0a1a 0%, #000 100%); clip-path: polygon(10% 0%, 90% 0%, 100% 100%, 0% 100%); animation: vh-tower 12s ease-in-out infinite alternate; }
.scn-vesper-hymn .lit-window { position:absolute; bottom:55%; left:48%; width:4%; height:6%; background: radial-gradient(circle, #c08040 0%, #8a5a2a 60%, transparent 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 25px 8px rgba(192,128,64,.5), 0 0 50px 20px rgba(192,128,64,.2); animation: vh-glow 4s ease-in-out infinite alternate; }
.scn-vesper-hymn .small-boat { position:absolute; bottom:38%; left:20%; width:12%; height:15%; background: linear-gradient(180deg, #2a1a0a 0%, #0a0000 100%); clip-path: polygon(20% 0%, 80% 0%, 100% 100%, 0% 100%); box-shadow: 0 3px 8px rgba(0,0,0,.6); animation: vh-boat 6s ease-in-out infinite; }
.scn-vesper-hymn .boat-figures { position:absolute; bottom:42%; left:22%; width:4%; height:6%; background: radial-gradient(ellipse at 50% 30%, #1a0a0a 0%, #000 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; filter: blur(1px); animation: vh-figures 4s ease-in-out infinite alternate; }
.scn-vesper-hymn .bell-shadow { position:absolute; bottom:40%; left:50%; width:2%; height:4%; background: radial-gradient(ellipse, #3a2a1a 0%, transparent 100%); opacity: 0.3; animation: vh-bell 8s ease-in-out infinite alternate; }
@keyframes vh-sky { 0% { opacity: 0.75; } 50% { opacity: 0.9; } 100% { opacity: 0.8; } }
@keyframes vh-sea { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-1px) scaleY(1.003); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes vh-building { 0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.005) translateY(-1px); } 100% { transform: scaleY(1) translateY(0); } }
@keyframes vh-tower { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.01); } 100% { transform: scaleY(1); } }
@keyframes vh-glow { 0% { box-shadow: 0 0 15px 4px rgba(192,128,64,.3); opacity: 0.8; } 50% { box-shadow: 0 0 35px 12px rgba(192,128,64,.6); opacity: 1; } 100% { box-shadow: 0 0 20px 6px rgba(192,128,64,.35); opacity: 0.85; } }
@keyframes vh-boat { 0% { transform: translate(0, 0) rotate(-1deg); } 25% { transform: translate(1px, -1px) rotate(0deg); } 50% { transform: translate(0, -2px) rotate(1deg); } 75% { transform: translate(-1px, -1px) rotate(0deg); } 100% { transform: translate(0, 0) rotate(-1deg); } }
@keyframes vh-figures { 0% { transform: rotate(-2deg) translateY(0); } 50% { transform: rotate(0deg) translateY(-1px); } 100% { transform: rotate(2deg) translateY(0); } }
@keyframes vh-bell { 0% { transform: translateY(0) rotate(-5deg); } 50% { transform: translateY(-3px) rotate(0deg); } 100% { transform: translateY(0) rotate(5deg); } }

.scn-aunt-defends-montoni {
  background: linear-gradient(180deg, #1c1620 0%, #2a1e2a 40%, #3a2a2a 100%), radial-gradient(ellipse at 40% 100%, #2a1e2a 0%, transparent 70%);
}
.scn-aunt-defends-montoni .room {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 70% 30%, #3a3028 0%, transparent 70%); animation: atm-room 5s ease-in-out infinite alternate;
}
.scn-aunt-defends-montoni .fireplace {
  position: absolute; bottom: 10%; left: 50%; width: 120px; height: 80px; transform: translateX(-50%); background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 8px 8px 4px 4px; box-shadow: 0 4px 12px rgba(0,0,0,.6);
}
.scn-aunt-defends-montoni .fire {
  position: absolute; bottom: 15%; left: 50%; width: 40px; height: 50px; transform: translateX(-50%); background: radial-gradient(circle, #c8553d 0%, #a0461a 60%, #4a2a0a 100%); border-radius: 50%; box-shadow: 0 0 30px 10px #c8553d, 0 0 60px 20px rgba(200,85,61,.4); animation: atm-fire 0.8s ease-in-out infinite alternate;
}
.scn-aunt-defends-montoni .aunt {
  position: absolute; bottom: 20%; left: 20%; width: 60px; height: 140px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: atm-aunt 3s ease-in-out infinite;
}
.scn-aunt-defends-montoni .emily {
  position: absolute; bottom: 20%; right: 20%; width: 40px; height: 100px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: atm-emily 4s ease-in-out infinite;
}
.scn-aunt-defends-montoni .window {
  position: absolute; top: 10%; left: 10%; width: 60px; height: 80px; background: linear-gradient(180deg, #2a2a4a 0%, #1a1a3a 100%); border-radius: 4px; box-shadow: inset 0 0 10px rgba(255,255,255,.1), 0 0 8px rgba(100,100,150,.3); animation: atm-window 6s ease-in-out infinite alternate;
}
.scn-aunt-defends-montoni .shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.4) 100%); animation: atm-shadow 3s ease-in-out infinite alternate;
}
@keyframes atm-room { 0% { opacity: .7; } 50% { opacity: .85; } 100% { opacity: .7; } }
@keyframes atm-fire { 0% { transform: scale(1) translateY(0); } 50% { transform: scale(1.1) translateY(-5px); } 100% { transform: scale(0.95) translateY(5px); } }
@keyframes atm-aunt { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-3px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes atm-emily { 0% { transform: translateX(0) rotate(0deg) scaleY(1); } 50% { transform: translateX(2px) rotate(-1deg) scaleY(1.02); } 100% { transform: translateX(0) rotate(0deg) scaleY(1); } }
@keyframes atm-window { 0% { box-shadow: inset 0 0 10px rgba(255,255,255,.1), 0 0 8px rgba(100,100,150,.3); } 50% { box-shadow: inset 0 0 20px rgba(255,255,255,.15), 0 0 12px rgba(100,100,150,.4); } 100% { box-shadow: inset 0 0 10px rgba(255,255,255,.1), 0 0 8px rgba(100,100,150,.3); } }
@keyframes atm-shadow { 0% { opacity: .5; } 50% { opacity: .7; } 100% { opacity: .5; } }

.scn-emily-humble-reply {
  background: linear-gradient(180deg, #1a222a 0%, #2a3038 50%, #3a3838 100%), radial-gradient(ellipse at 80% 20%, #2a3038 0%, transparent 60%);
}
.scn-emily-humble-reply .room {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 60% 40%, #2a3038 0%, transparent 70%); animation: ehr-room 8s ease-in-out infinite alternate;
}
.scn-emily-humble-reply .window {
  position: absolute; top: 5%; left: 5%; width: 70px; height: 90px; background: linear-gradient(180deg, #3a4a5a 0%, #2a3a4a 100%); border-radius: 4px; box-shadow: inset 0 0 12px rgba(200,220,255,.2), 0 0 8px rgba(100,120,160,.3); animation: ehr-window 7s ease-in-out infinite alternate;
}
.scn-emily-humble-reply .moonlight {
  position: absolute; top: 5%; left: 5%; width: 200px; height: 300px; background: linear-gradient(135deg, rgba(180,200,240,.15) 0%, transparent 100%); clip-path: polygon(0 0, 100% 0, 70% 100%, 0 100%); animation: ehr-moonlight 15s ease-in-out infinite alternate;
}
.scn-emily-humble-reply .table {
  position: absolute; bottom: 5%; left: 50%; width: 140px; height: 30px; transform: translateX(-50%); background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 4px; box-shadow: 0 2px 8px rgba(0,0,0,.5);
}
.scn-emily-humble-reply .candelabra {
  position: absolute; bottom: 20%; left: 50%; width: 12px; height: 40px; transform: translateX(-50%); background: linear-gradient(180deg, #6a5a3a 0%, #3a2a1a 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 16px 4px #b08040, 0 0 32px 8px rgba(176,128,64,.3); animation: ehr-candle 2s ease-in-out infinite alternate;
}
.scn-emily-humble-reply .emily {
  position: absolute; bottom: 10%; left: 35%; width: 30px; height: 80px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ehr-emily 6s ease-in-out infinite;
}
@keyframes ehr-room { 0% { opacity: .75; } 50% { opacity: .9; } 100% { opacity: .75; } }
@keyframes ehr-window { 0% { box-shadow: inset 0 0 12px rgba(200,220,255,.2), 0 0 8px rgba(100,120,160,.3); } 50% { box-shadow: inset 0 0 20px rgba(200,220,255,.25), 0 0 12px rgba(100,120,160,.4); } 100% { box-shadow: inset 0 0 12px rgba(200,220,255,.2), 0 0 8px rgba(100,120,160,.3); } }
@keyframes ehr-moonlight { 0% { opacity: .3; transform: translate(0, 0); } 50% { opacity: .45; transform: translate(5px, -5px); } 100% { opacity: .3; transform: translate(0, 0); } }
@keyframes ehr-candle { 0% { transform: scale(1) translateX(-50%); } 50% { transform: scale(1.05) translateX(-50%) translateY(-2px); } 100% { transform: scale(0.98) translateX(-50%) translateY(1px); } }
@keyframes ehr-emily { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }

.scn-emily-defends-father {
  background: linear-gradient(180deg, #2a1a0a 0%, #3a2a1a 40%, #4a3a2a 100%), radial-gradient(ellipse at 50% 100%, #3a2a1a 0%, transparent 70%);
}
.scn-emily-defends-father .room {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 60% 50%, #4a3a2a 0%, transparent 70%); animation: edf-room 6s ease-in-out infinite alternate;
}
.scn-emily-defends-father .hearth {
  position: absolute; bottom: 8%; left: 20%; width: 100px; height: 70px; background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%); border-radius: 10px 10px 6px 6px; box-shadow: 0 4px 12px rgba(0,0,0,.5);
}
.scn-emily-defends-father .fire {
  position: absolute; bottom: 12%; left: 24%; width: 30px; height: 40px; background: radial-gradient(circle, #c8553d 0%, #a0461a 60%, #4a2a0a 100%); border-radius: 50%; box-shadow: 0 0 24px 8px #c8553d, 0 0 48px 16px rgba(200,85,61,.3); animation: edf-fire 0.7s ease-in-out infinite alternate;
}
.scn-emily-defends-father .portrait {
  position: absolute; top: 15%; left: 50%; width: 60px; height: 80px; transform: translateX(-50%); background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border: 3px solid #6a5a4a; border-radius: 4px; box-shadow: 0 0 16px 4px rgba(180,140,100,.3); animation: edf-portrait 9s ease-in-out infinite;
}
.scn-emily-defends-father .emily {
  position: absolute; bottom: 15%; left: 45%; width: 35px; height: 90px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: edf-emily 4s ease-in-out infinite;
}
.scn-emily-defends-father .desk {
  position: absolute; bottom: 5%; left: 55%; width: 60px; height: 20px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,.4);
}
.scn-emily-defends-father .glow {
  position: absolute; bottom: 10%; left: 22%; width: 120px; height: 100px; background: radial-gradient(circle, rgba(200,85,61,.25) 0%, transparent 100%); animation: edf-glow 3s ease-in-out infinite alternate;
}
@keyframes edf-room { 0% { opacity: .8; } 50% { opacity: .95; } 100% { opacity: .8; } }
@keyframes edf-fire { 0% { transform: scale(1) translateY(0); } 50% { transform: scale(1.15) translateY(-4px); } 100% { transform: scale(0.9) translateY(4px); } }
@keyframes edf-portrait { 0% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(1deg); } 100% { transform: translateX(-50%) rotate(-1deg); } }
@keyframes edf-emily { 0% { transform: translateX(0) rotate(0deg) scaleY(1); } 50% { transform: translateX(1px) rotate(1deg) scaleY(1.03); } 100% { transform: translateX(0) rotate(0deg) scaleY(1); } }
@keyframes edf-glow { 0% { opacity: .4; } 50% { opacity: .7; } 100% { opacity: .4; } }

.scn-aunt-sarcastic-reply {
  background: linear-gradient(180deg, #1a1a1a 0%, #2a2220 40%, #3a2a1a 100%), radial-gradient(ellipse at 50% 0%, #2a2220 0%, transparent 60%);
}
.scn-aunt-sarcastic-reply .room {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 50% 30%, #3a3028 0%, transparent 70%); animation: asr-room 4s ease-in-out infinite alternate;
}
.scn-aunt-sarcastic-reply .lamp {
  position: absolute; top: 5%; left: 50%; width: 20px; height: 30px; transform: translateX(-50%); background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%); border-radius: 50% 50% 30% 30%; box-shadow: 0 0 20px 6px #b08040, 0 0 40px 12px rgba(176,128,64,.4); animation: asr-lamp 2.5s ease-in-out infinite alternate;
}
.scn-aunt-sarcastic-reply .lamp-glow {
  position: absolute; top: 5%; left: 50%; width: 160px; height: 200px; transform: translateX(-50%); background: radial-gradient(ellipse at 50% 0%, rgba(176,128,64,.15) 0%, transparent 60%); clip-path: polygon(0 0, 100% 0, 70% 100%, 30% 100%); animation: asr-glow 3s ease-in-out infinite alternate;
}
.scn-aunt-sarcastic-reply .aunt {
  position: absolute; bottom: 15%; left: 15%; width: 70px; height: 150px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: asr-aunt 3.5s ease-in-out infinite;
}
.scn-aunt-sarcastic-reply .emily-seated {
  position: absolute; bottom: 10%; right: 25%; width: 35px; height: 70px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: asr-emily 4.5s ease-in-out infinite;
}
.scn-aunt-sarcastic-reply .table {
  position: absolute; bottom: 5%; left: 60%; width: 80px; height: 20px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,.5);
}
.scn-aunt-sarcastic-reply .shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.5) 100%); animation: asr-shadow 2s ease-in-out infinite alternate;
}
@keyframes asr-room { 0% { opacity: .6; } 50% { opacity: .8; } 100% { opacity: .6; } }
@keyframes asr-lamp { 0% { transform: translateX(-50%) rotate(-2deg); } 50% { transform: translateX(-50%) rotate(2deg); } 100% { transform: translateX(-50%) rotate(-2deg); } }
@keyframes asr-glow { 0% { opacity: .4; } 50% { opacity: .7; } 100% { opacity: .4; } }
@keyframes asr-aunt { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(-2px) rotate(3deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes asr-emily { 0% { transform: translateX(0) rotate(0deg) scaleY(1); } 50% { transform: translateX(1px) rotate(-2deg) scaleY(1.02); } 100% { transform: translateX(0) rotate(0deg) scaleY(1); } }
@keyframes asr-shadow { 0% { opacity: .4; } 50% { opacity: .65; } 100% { opacity: .4; } }

.scn-horsemen-in-court {
  background: linear-gradient(180deg, #f0e6d3 0%, #d4c4a8 40%, #a89a8a 100%), radial-gradient(ellipse at 50% 100%, #f0e6d3 0%, transparent 70%);
}
.scn-horsemen-in-court .sky { position:absolute; inset:0 0 60% 0; background: linear-gradient(180deg, #fdf4e3 0%, #f0e6d3 40%, transparent 100%); animation: hi1-sky 15s ease-in-out infinite alternate; }
.scn-horsemen-in-court .court-arch { position:absolute; bottom:50%; left:50%; width:120px; height:80px; transform:translateX(-50%); background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%); border-radius:50% 50% 0 0/100% 100% 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,.3); animation: hi1-arch 12s ease-in-out infinite alternate; }
.scn-horsemen-in-court .horseman-left { position:absolute; bottom:30%; left:30%; width:40px; height:60px; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 40% 40% 20% 20%/60% 60% 20% 20%; transform-origin: bottom; animation: hi1-horseman 8s ease-in-out infinite; }
.scn-horsemen-in-court .horseman-right { position:absolute; bottom:30%; right:30%; width:40px; height:60px; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 40% 40% 20% 20%/60% 60% 20% 20%; transform-origin: bottom; animation: hi1-horseman 8s ease-in-out infinite reverse; }
.scn-horsemen-in-court .cloak-left { position:absolute; bottom:32%; left:28%; width:50px; height:50px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 50% 20% 50% 20%/60% 40% 60% 40%; transform-origin: top; animation: hi1-cloak 6s ease-in-out infinite; }
.scn-horsemen-in-court .cloak-right { position:absolute; bottom:32%; right:28%; width:50px; height:50px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 20% 50% 20% 50%/40% 60% 40% 60%; transform-origin: top; animation: hi1-cloak 6s ease-in-out infinite reverse; }
.scn-horsemen-in-court .dagger-gleam { position:absolute; bottom:35%; left:50%; width:4px; height:16px; transform:translateX(-50%); background: linear-gradient(180deg, #fff 0%, #c0c0c0 100%); border-radius: 20%; box-shadow: 0 0 8px #fff, 0 0 16px rgba(255,255,255,.5); animation: hi1-dagger 4s ease-in-out infinite alternate; }
.scn-horsemen-in-court .sunburst { position:absolute; top:5%; left:50%; width:60px; height:60px; transform:translateX(-50%); background: radial-gradient(circle, #fff 0%, #fdf4e3 40%, transparent 70%); animation: hi1-sun 20s ease-in-out infinite alternate; }
.scn-horsemen-in-court .shadow-shard { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.4) 100%); animation: hi1-shadow 10s ease-in-out infinite alternate; }

@keyframes hi1-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes hi1-arch { 0% { transform: translateX(-50%) scaleY(1) } 50% { transform: translateX(-50%) scaleY(1.02) } 100% { transform: translateX(-50%) scaleY(1) } }
@keyframes hi1-horseman { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-4px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes hi1-cloak { 0% { transform: rotate(0) } 50% { transform: rotate(3deg) } 100% { transform: rotate(0) } }
@keyframes hi1-dagger { 0% { opacity:.6 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes hi1-sun { 0% { transform: translateX(-50%) scale(1) } 50% { transform: translateX(-50%) scale(1.05) } 100% { transform: translateX(-50%) scale(1) } }
@keyframes hi1-shadow { 0% { opacity:.4 } 50% { opacity:.6 } 100% { opacity:.3 } }

.scn-cavigni-mounts {
  background: linear-gradient(180deg, #e0d8c8 0%, #c0b8a8 40%, #8a8070 100%), radial-gradient(ellipse at 50% 100%, #e0d8c8 0%, transparent 70%);
}
.scn-cavigni-mounts .bg-sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #fdf4e3 0%, #e0d8c8 50%, transparent 100%); animation: cm1-sky 18s ease-in-out infinite alternate; }
.scn-cavigni-mounts .bg-mountains { position:absolute; bottom:40%; left:0; right:0; height:20%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 40% 60% 0 0/80% 70% 0 0; animation: cm1-mountains 20s ease-in-out infinite alternate; }
.scn-cavigni-mounts .mount-fig { position:absolute; bottom:30%; left:50%; width:50px; height:70px; transform:translateX(-50%); background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 40% 40% 20% 20%/60% 60% 20% 20%; transform-origin: bottom; animation: cm1-fig 7s ease-in-out infinite; }
.scn-cavigni-mounts .plume-black { position:absolute; bottom:52%; left:50%; width:20px; height:30px; transform:translateX(-50%); background: linear-gradient(180deg, #0a0a0a 0%, #1a1a1a 100%); border-radius: 50% 50% 0 0/100% 100% 0 0; animation: cm1-plume 5s ease-in-out infinite alternate; }
.scn-cavigni-mounts .cloak-dark { position:absolute; bottom:32%; left:46%; width:60px; height:50px; background: linear-gradient(180deg, #2a2a2a 0%, #0a0a0a 100%); border-radius: 50% 20% 50% 20%/60% 40% 60% 40%; transform-origin: top; animation: cm1-cloak 8s ease-in-out infinite; }
.scn-cavigni-mounts .horse-neck { position:absolute; bottom:35%; left:50%; width:30px; height:40px; transform:translateX(-50%); background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); border-radius: 40% 40% 20% 20%/60% 60% 20% 20%; animation: cm1-neck 6s ease-in-out infinite; }
.scn-cavigni-mounts .ground-dust { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, transparent 0%, rgba(80,70,60,.5) 100%); animation: cm1-dust 15s ease-in-out infinite alternate; }

@keyframes cm1-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes cm1-mountains { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes cm1-fig { 0% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-3px) } 100% { transform: translateX(-50%) translateY(0) } }
@keyframes cm1-plume { 0% { transform: translateX(-50%) rotate(-5deg) } 50% { transform: translateX(-50%) rotate(0) } 100% { transform: translateX(-50%) rotate(5deg) } }
@keyframes cm1-cloak { 0% { transform: rotate(-2deg) } 50% { transform: rotate(0) } 100% { transform: rotate(2deg) } }
@keyframes cm1-neck { 0% { transform: translateX(-50%) scaleY(1) } 50% { transform: translateX(-50%) scaleY(1.03) } 100% { transform: translateX(-50%) scaleY(1) } }
@keyframes cm1-dust { 0% { opacity:.3 } 50% { opacity:.5 } 100% { opacity:.4 } }

.scn-party-departs {
  background: linear-gradient(180deg, #fdf4e3 0%, #e0d8c8 40%, #a89a8a 100%), radial-gradient(ellipse at 50% 100%, #fdf4e3 0%, transparent 70%);
}
.scn-party-departs .sky { position:absolute; inset:0 0 60% 0; background: linear-gradient(180deg, #fff8ee 0%, #fdf4e3 50%, transparent 100%); animation: pd1-sky 12s ease-in-out infinite alternate; }
.scn-party-departs .hall-door { position:absolute; bottom:30%; left:50%; width:80px; height:100px; transform:translateX(-50%); background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,.5); animation: pd1-door 9s ease-in-out infinite; }
.scn-party-departs .arch-shadow { position:absolute; bottom:30%; left:50%; width:100px; height:30px; transform:translateX(-50%); background: linear-gradient(180deg, rgba(0,0,0,.3) 0%, transparent 100%); border-radius: 50%; animation: pd1-arch 15s ease-in-out infinite alternate; }
.scn-party-departs .horseman-a { position:absolute; bottom:40%; left:20%; width:40px; height:50px; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); border-radius: 40% 40% 20% 20%/60% 60% 20% 20%; animation: pd1-horseman 6s ease-in-out infinite; }
.scn-party-departs .horseman-b { position:absolute; bottom:40%; left:35%; width:40px; height:50px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1a0a 100%); border-radius: 40% 40% 20% 20%/60% 60% 20% 20%; animation: pd1-horseman 7s ease-in-out infinite 0.5s; }
.scn-party-departs .horseman-c { position:absolute; bottom:40%; right:25%; width:40px; height:50px; background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%); border-radius: 40% 40% 20% 20%/60% 60% 20% 20%; animation: pd1-horseman 8s ease-in-out infinite 1s; }
.scn-party-departs .dust-swirl { position:absolute; bottom:10%; left:20%; right:20%; height:20%; background: linear-gradient(180deg, transparent 0%, rgba(80,70,60,.4) 50%, transparent 100%); filter: blur(4px); animation: pd1-dust 10s ease-in-out infinite alternate; }
.scn-party-departs .wheel-track { position:absolute; bottom:0; left:0; right:0; height:10%; background: linear-gradient(180deg, transparent 0%, rgba(60,50,40,.3) 100%); animation: pd1-track 20s ease-in-out infinite alternate; }

@keyframes pd1-sky { 0% { opacity:.9 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes pd1-door { 0% { transform: translateX(-50%) scaleY(1) } 50% { transform: translateX(-50%) scaleY(1.01) } 100% { transform: translateX(-50%) scaleY(1) } }
@keyframes pd1-arch { 0% { opacity:.5 } 50% { opacity:.7 } 100% { opacity:.6 } }
@keyframes pd1-horseman { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes pd1-dust { 0% { transform: translateX(-10px); opacity:.3 } 50% { transform: translateX(10px); opacity:.5 } 100% { transform: translateX(0); opacity:.4 } }
@keyframes pd1-track { 0% { opacity:.2 } 50% { opacity:.4 } 100% { opacity:.3 } }

.scn-ramparts-deserted {
  background: linear-gradient(180deg, #f0e6d3 0%, #d4c4a8 40%, #a89a8a 100%), radial-gradient(ellipse at 50% 100%, #f0e6d3 0%, transparent 70%);
}
.scn-ramparts-deserted .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #fdf4e3 0%, #f0e6d3 50%, transparent 100%); animation: rd1-sky 20s ease-in-out infinite alternate; }
.scn-ramparts-deserted .rampart-wall { position:absolute; bottom:20%; left:10%; right:10%; height:40%; background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%); border-radius: 20% 20% 0 0/40% 40% 0 0; box-shadow: inset 0 0 30px rgba(0,0,0,.4); animation: rd1-wall 18s ease-in-out infinite alternate; }
.scn-ramparts-deserted .battlements { position:absolute; bottom:55%; left:12%; right:12%; height:8%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 10%; animation: rd1-battle 12s ease-in-out infinite alternate; }
.scn-ramparts-deserted .lurking-fig-a { position:absolute; bottom:25%; left:25%; width:30px; height:50px; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 40% 40% 20% 20%/60% 60% 20% 20%; animation: rd1-lurk 9s ease-in-out infinite; }
.scn-ramparts-deserted .lurking-fig-b { position:absolute; bottom:28%; right:30%; width:30px; height:45px; background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%); border-radius: 40% 40% 20% 20%/60% 60% 20% 20%; animation: rd1-lurk 11s ease-in-out infinite 2s; }
.scn-ramparts-deserted .shadow-crevice { position:absolute; bottom:20%; left:45%; right:45%; height:30%; background: linear-gradient(180deg, rgba(0,0,0,.4) 0%, transparent 100%); animation: rd1-shadow 15s ease-in-out infinite alternate; }
.scn-ramparts-deserted .sun-glint { position:absolute; top:10%; right:20%; width:20px; height:20px; background: radial-gradient(circle, #fff 0%, transparent 70%); animation: rd1-glint 8s ease-in-out infinite alternate; }

@keyframes rd1-sky { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes rd1-wall { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.01) } 100% { transform: scaleY(1) } }
@keyframes rd1-battle { 0% { transform: skewX(0) } 50% { transform: skewX(2deg) } 100% { transform: skewX(0) } }
@keyframes rd1-lurk { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes rd1-shadow { 0% { opacity:.3 } 50% { opacity:.5 } 100% { opacity:.4 } }
@keyframes rd1-glint { 0% { opacity:.6 } 50% { opacity:1 } 100% { opacity:.7 } }

/* emily-stops-her */
.scn-emily-stops-her { background: linear-gradient(180deg, #1e1512 0%, #2a1e1a 50%, #3a2a22 100%), radial-gradient(ellipse at 50% 80%, #4a3630 0%, transparent 70%); }
.scn-emily-stops-her .e1-bg     { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #2a1e1a 0%, #1a1210 100%); }
.scn-emily-stops-her .e1-floor  { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #1a1210 0%, #0a0808 100%); }
.scn-emily-stops-her .e1-table  { position:absolute; bottom:28%; left:50%; width:120px; height:30px; transform:translateX(-50%); background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%); border-radius:6% 6% 3% 3%; box-shadow: 0 4px 8px rgba(0,0,0,0.6); }
.scn-emily-stops-her .e1-candle { position:absolute; bottom:52%; left:50%; width:8px; height:18px; transform:translateX(-50%); background: linear-gradient(180deg, #f0c068 0%, #c08040 100%); border-radius:20% 20% 10% 10%; box-shadow: 0 0 12px 3px #c08040; animation: e1-candle 2s ease-in-out infinite alternate; }
.scn-emily-stops-her .e1-glow  { position:absolute; bottom:48%; left:50%; width:60px; height:60px; transform:translate(-50%,50%); background: radial-gradient(circle, rgba(240,192,104,0.35) 0%, transparent 70%); border-radius:50%; animation: e1-glow 4s ease-in-out infinite alternate; }
.scn-emily-stops-her .e1-emily { position:absolute; bottom:32%; left:42%; width:22px; height:40px; background: linear-gradient(180deg, #1a1210 0%, #0a0808 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: e1-figure 4s ease-in-out infinite; }
.scn-emily-stops-her .e1-annette{ position:absolute; bottom:32%; left:55%; width:20px; height:48px; background: linear-gradient(180deg, #1a1210 0%, #0a0808 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: e1-figure2 5s ease-in-out infinite; }
.scn-emily-stops-her .e1-plate { position:absolute; bottom:38%; left:50%; width:30px; height:8px; transform:translateX(-50%); background: radial-gradient(ellipse, #8a7a60 0%, #5a4a30 70%); border-radius:50%; box-shadow: 0 2px 4px rgba(0,0,0,0.4); animation: e1-plate 8s ease-in-out infinite; }
@keyframes e1-candle { 0% { box-shadow:0 0 8px 2px #c08040,0 0 16px 4px rgba(192,128,64,0.4); } 50% { box-shadow:0 0 14px 4px #f0c068,0 0 28px 8px rgba(240,192,104,0.6); } 100% { box-shadow:0 0 10px 3px #c08040,0 0 20px 5px rgba(192,128,64,0.5); } }
@keyframes e1-glow { 0% { opacity:0.3;transform:translate(-50%,50%) scale(1); } 50% { opacity:0.6;transform:translate(-50%,50%) scale(1.2); } 100% { opacity:0.4;transform:translate(-50%,50%) scale(0.9); } }
@keyframes e1-figure { 0% { transform:translateY(0) rotate(-1deg); } 25% { transform:translateY(-2px) rotate(0deg); } 50% { transform:translateY(-1px) rotate(1deg); } 75% { transform:translateY(-3px) rotate(0deg); } 100% { transform:translateY(0) rotate(-1deg); } }
@keyframes e1-figure2 { 0% { transform:translateY(0) rotate(0deg); } 33% { transform:translateY(-1px) rotate(1deg); } 66% { transform:translateY(-2px) rotate(-1deg); } 100% { transform:translateY(0) rotate(0deg); } }
@keyframes e1-plate { 0% { opacity:0.7; transform:translateX(-50%) scale(1); } 50% { opacity:1; transform:translateX(-50%) scale(1.05); } 100% { opacity:0.8; transform:translateX(-50%) scale(1); } }

/* annette-confirms */
.scn-annette-confirms { background: linear-gradient(180deg, #1e1512 0%, #2a1e1a 50%, #3a2a22 100%), radial-gradient(ellipse at 50% 80%, #4a3630 0%, transparent 70%); }
.scn-annette-confirms .a2-bg     { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #2a1e1a 0%, #1a1210 100%); }
.scn-annette-confirms .a2-floor  { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #1a1210 0%, #0a0808 100%); }
.scn-annette-confirms .a2-candle { position:absolute; bottom:48%; left:50%; width:8px; height:18px; transform:translateX(-50%); background: linear-gradient(180deg, #f0c068 0%, #c08040 100%); border-radius:20% 20% 10% 10%; box-shadow: 0 0 12px 3px #c08040; animation: a2-candle 2.5s ease-in-out infinite alternate; }
.scn-annette-confirms .a2-glow  { position:absolute; bottom:44%; left:50%; width:70px; height:70px; transform:translate(-50%,50%); background: radial-gradient(circle, rgba(240,192,104,0.3) 0%, transparent 70%); border-radius:50%; animation: a2-glow 5s ease-in-out infinite alternate; }
.scn-annette-confirms .a2-annette { position:absolute; bottom:32%; left:38%; width:24px; height:50px; background: linear-gradient(180deg, #1a1210 0%, #0a0808 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: a2-figureL 4.5s ease-in-out infinite; }
.scn-annette-confirms .a2-emily  { position:absolute; bottom:32%; right:38%; width:22px; height:42px; background: linear-gradient(180deg, #1a1210 0%, #0a0808 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: a2-figureR 5.5s ease-in-out infinite; }
.scn-annette-confirms .a2-chair  { position:absolute; bottom:30%; right:32%; width:30px; height:20px; background: linear-gradient(180deg, #3a2a1a 0%, #1a1210 100%); border-radius:10% 10% 5% 5%; box-shadow: 0 4px 6px rgba(0,0,0,0.5); animation: a2-chair 7s ease-in-out infinite; }
@keyframes a2-candle { 0% { box-shadow:0 0 8px 2px #c08040,0 0 16px 4px rgba(192,128,64,0.4); } 50% { box-shadow:0 0 14px 4px #f0c068,0 0 28px 8px rgba(240,192,104,0.6); } 100% { box-shadow:0 0 10px 3px #c08040,0 0 20px 5px rgba(192,128,64,0.5); } }
@keyframes a2-glow { 0% { opacity:0.3;transform:translate(-50%,50%) scale(1); } 50% { opacity:0.5;transform:translate(-50%,50%) scale(1.15); } 100% { opacity:0.4;transform:translate(-50%,50%) scale(0.95); } }
@keyframes a2-figureL { 0% { transform:translateY(0) rotate(0deg); } 30% { transform:translateY(-2px) rotate(1deg); } 60% { transform:translateY(-1px) rotate(-1deg); } 100% { transform:translateY(0) rotate(0deg); } }
@keyframes a2-figureR { 0% { transform:translateY(0) rotate(0deg); } 25% { transform:translateY(-1px) rotate(-0.5deg); } 50% { transform:translateY(-3px) rotate(0.5deg); } 75% { transform:translateY(-2px) rotate(-0.5deg); } 100% { transform:translateY(0) rotate(0deg); } }
@keyframes a2-chair { 0% { transform:translateY(0); } 50% { transform:translateY(-2px); } 100% { transform:translateY(0); } }

/* indignation */
.scn-indignation { background: linear-gradient(180deg, #1a0a0a 0%, #2a1010 50%, #3a1515 100%), radial-gradient(ellipse at 50% 70%, #5e1a1d 0%, transparent 60%); }
.scn-indignation .i3-bg    { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #2a1010 0%, #1a0808 100%); }
.scn-indignation .i3-floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #1a0808 0%, #0a0404 100%); }
.scn-indignation .i3-table { position:absolute; bottom:22%; left:30%; width:160px; height:28px; background: linear-gradient(180deg, #3a2010 0%, #1a1008 100%); border-radius:4px; box-shadow: 0 6px 12px rgba(0,0,0,0.7); transform-origin: 50% 100%; animation: i3-table 1.5s linear infinite; }
.scn-indignation .i3-figure { position:absolute; bottom:24%; left:45%; width:40px; height:70px; background: linear-gradient(180deg, #1a0505 0%, #0a0202 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: i3-figure 0.6s ease-in-out infinite alternate; }
.scn-indignation .i3-hand  { position:absolute; bottom:68%; left:52%; width:12px; height:22px; background: linear-gradient(180deg, #2a0a0a 0%, #1a0505 100%); border-radius:50% 50% 20% 20% / 60% 60% 20% 20%; transform-origin: 50% 100%; animation: i3-hand 0.3s ease-in-out infinite alternate; }
.scn-indignation .i3-candle{ position:absolute; bottom:45%; left:40%; width:8px; height:16px; background: linear-gradient(180deg, #f09040 0%, #b06020 100%); border-radius:20%; box-shadow: 0 0 15px 4px #b06020; animation: i3-candle 0.25s ease-in-out infinite alternate; }
.scn-indignation .i3-glow { position:absolute; bottom:42%; left:40%; width:50px; height:50px; transform:translate(-50%,50%); background: radial-gradient(circle, rgba(240,144,64,0.4) 0%, transparent 70%); border-radius:50%; animation: i3-glow 0.5s ease-in-out infinite alternate; }
.scn-indignation .i3-paper{ position:absolute; bottom:28%; left:28%; width:20px; height:28px; background: linear-gradient(180deg, #8a7a60 0%, #5a4a30 100%); border-radius:5% 10% 5% 10% / 10% 5% 10% 5%; box-shadow: 0 2px 4px rgba(0,0,0,0.5); animation: i3-paper 1s ease-in-out infinite; }
@keyframes i3-table { 0% { transform:translateX(0) rotate(0deg); } 25% { transform:translateX(3px) rotate(1deg); } 50% { transform:translateX(-2px) rotate(-1deg); } 75% { transform:translateX(4px) rotate(0.5deg); } 100% { transform:translateX(0) rotate(0deg); } }
@keyframes i3-figure { 0% { transform:translateX(0) rotate(0deg); } 25% { transform:translateX(4px) rotate(2deg); } 50% { transform:translateX(-3px) rotate(-2deg); } 75% { transform:translateX(5px) rotate(3deg); } 100% { transform:translateX(0) rotate(0deg); } }
@keyframes i3-hand { 0% { transform:rotate(-5deg) translateY(0); } 50% { transform:rotate(5deg) translateY(-2px); } 100% { transform:rotate(-5deg) translateY(0); } }
@keyframes i3-candle { 0% { box-shadow:0 0 10px 2px #b06020,0 0 20px 5px rgba(176,96,32,0.5); } 100% { box-shadow:0 0 20px 6px #f09040,0 0 40px 12px rgba(240,144,64,0.7); } }
@keyframes i3-glow { 0% { opacity:0.3; transform:translate(-50%,50%) scale(0.9); } 100% { opacity:0.7; transform:translate(-50%,50%) scale(1.3); } }
@keyframes i3-paper { 0% { transform:translateY(0) rotate(0deg); } 50% { transform:translateY(-4px) rotate(10deg); } 100% { transform:translateY(0) rotate(0deg); } }

/* rampart-walk */
.scn-rampart-walk { background: linear-gradient(180deg, #87CEEB 0%, #ADD8E6 30%, #FFD700 100%), radial-gradient(ellipse at 50% 0%, #FFE4B5 0%, transparent 80%); }
.scn-rampart-walk .r4-sky   { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #87CEEB 0%, #B0E0E6 60%, #FFD700 100%); }
.scn-rampart-walk .r4-hills { position:absolute; bottom:35%; left:0; right:0; height:30%; background: linear-gradient(180deg, #7CB342 0%, #558B2F 100%); border-radius:60% 40% 0 0 / 80% 50% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,0.2); animation: r4-hills 12s ease-in-out infinite alternate; }
.scn-rampart-walk .r4-wall  { position:absolute; bottom:0; left:10%; right:10%; height:50%; background: linear-gradient(180deg, #A4957D 0%, #7B6B55 50%, #5A4A3A 100%); border-radius:4% 4% 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,0.3); }
.scn-rampart-walk .r4-parapet { position:absolute; bottom:50%; left:10%; right:10%; height:12px; background: linear-gradient(180deg, #B8A99A 0%, #8A7B6B 100%); border-radius:6px 6px 0 0; box-shadow: 0 2px 6px rgba(0,0,0,0.4); }
.scn-rampart-walk .r4-flag  { position:absolute; bottom:52%; left:50%; width:6px; height:30px; transform:translateX(-50%); background: linear-gradient(180deg, #2E7D32 0%, #1B5E20 100%); border-radius:3px 3px 0 0; transform-origin: bottom center; animation: r4-flag 4s ease-in-out infinite; }
.scn-rampart-walk .r4-flag::after { content:''; position:absolute; top:0; left:6px; width:18px; height:12px; background: linear-gradient(180deg, #FFC107 0%, #FFB300 100%); border-radius:0 40% 40% 0; } /* flag fabric */
.scn-rampart-walk .r4-cloud1 { position:absolute; top:10%; left:20%; width:70px; height:16px; background: linear-gradient(180deg, rgba(255,255,255,0.6) 0%, rgba(255,255,255,0.1) 100%); border-radius:50%; filter: blur(6px); animation: r4-drift 40s linear infinite; }
.scn-rampart-walk .r4-cloud2 { position:absolute; top:22%; right:15%; width:50px; height:12px; background: linear-gradient(180deg, rgba(255,255,255,0.5) 0%, rgba(255,255,255,0.05) 100%); border-radius:50%; filter: blur(5px); animation: r4-drift2 55s linear infinite; }
.scn-rampart-walk .r4-figure { position:absolute; bottom:48%; left:50%; width:12px; height:30px; transform:translateX(-50%); background: linear-gradient(180deg, #2c1a10 0%, #1a0e08 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: r4-figure 8s ease-in-out infinite; }
@keyframes r4-hills { 0% { transform:translateY(0); } 50% { transform:translateY(-4px); } 100% { transform:translateY(2px); } }
@keyframes r4-flag { 0% { transform:translateX(-50%) rotate(0deg); } 25% { transform:translateX(-50%) rotate(8deg); } 50% { transform:translateX(-50%) rotate(-6deg); } 75% { transform:translateX(-50%) rotate(10deg); } 100% { transform:translateX(-50%) rotate(0deg); } }
@keyframes r4-drift { 0% { transform:translateX(-30px); } 100% { transform:translateX(120vw); } }
@keyframes r4-drift2 { 0% { transform:translateX(0); } 100% { transform:translateX(-100vw); } }
@keyframes r4-figure { 0% { transform:translateX(-50%) translateY(0); } 30% { transform:translateX(-50%) translateY(-2px); } 60% { transform:translateX(-50%) translateY(-1px); } 100% { transform:translateX(-50%) translateY(0); } }

.scn-memory-of-udolpho { background: linear-gradient(180deg, #1a0a2e 0%, #2c1a3e 40%, #1a0a1a 100%), radial-gradient(ellipse at 30% 70%, #4a2a1a 0%, transparent 70%); }
.scn-memory-of-udolpho .wall { position:absolute; inset:0; background: linear-gradient(135deg, #2a1a2e 0%, #1a0a1a 100%); }
.scn-memory-of-udolpho .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); }
.scn-memory-of-udolpho .table { position:absolute; bottom:20%; left:20%; width:40%; height:8%; background: linear-gradient(90deg, #3a2a1a 0%, #2a1a0a 100%); border-radius:0 0 15% 15%; box-shadow: 0 4px 8px rgba(0,0,0,.6); animation: udo-table 6s ease-in-out infinite; }
.scn-memory-of-udolpho .candle { position:absolute; bottom:32%; left:30%; width:6%; height:12%; background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%); border-radius:10% 10% 20% 20%; box-shadow: 0 0 8px 2px #8a6a3a; animation: udo-candle 3s ease-in-out infinite alternate; }
.scn-memory-of-udolpho .flame { position:absolute; bottom:44%; left:30.5%; width:5%; height:10%; background: radial-gradient(ellipse, #ffd060 0%, #c08040 60%, transparent 100%); border-radius:50% 50% 0 0; filter: blur(2px); animation: udo-flame 1s ease-in-out infinite alternate; }
.scn-memory-of-udolpho .shadow-figure { position:absolute; bottom:15%; right:15%; width:20%; height:45%; background: radial-gradient(ellipse 80% 100%, #0a0a1a 0%, transparent 70%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: udo-shadow 8s ease-in-out infinite; }
.scn-memory-of-udolpho .papers { position:absolute; bottom:25%; left:50%; width:15%; height:10%; background: linear-gradient(135deg, #c0b080 0%, #a09070 100%); border-radius:2% 8% 2% 8%; box-shadow: 0 2px 4px rgba(0,0,0,.4); animation: udo-papers 12s ease-in-out infinite; }
.scn-memory-of-udolpho .glow { position:absolute; inset:0; background: radial-gradient(ellipse at 30% 70%, rgba(200,160,80,.15) 0%, transparent 60%); animation: udo-glow 5s ease-in-out infinite alternate; }
@keyframes udo-table { 0%,100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-1px) rotate(0.5deg); } }
@keyframes udo-candle { 0% { transform: scaleY(1); opacity:0.9; } 50% { transform: scaleY(1.03); opacity:1; } 100% { transform: scaleY(0.97); opacity:0.85; } }
@keyframes udo-flame { 0% { transform: translateY(0) scaleX(1); opacity:0.8; } 25% { transform: translateY(-3px) scaleX(1.2); opacity:1; } 50% { transform: translateY(-1px) scaleX(0.9); opacity:0.9; } 75% { transform: translateY(-2px) scaleX(1.1); opacity:0.95; } 100% { transform: translateY(0) scaleX(1); opacity:0.85; } }
@keyframes udo-shadow { 0%,100% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(-5px) scaleX(1.02); } }
@keyframes udo-papers { 0%,100% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-2px) rotate(1deg); } }
@keyframes udo-glow { 0% { opacity:0.6; } 100% { opacity:1; } }

.scn-resemblance-to-marchioness { background: linear-gradient(180deg, #2a1a2e 0%, #3a2a3e 50%, #1a1a2a 100%), radial-gradient(ellipse at 50% 0%, #4a3a5e 0%, transparent 60%); }
.scn-resemblance-to-marchioness .gallery-bg { position:absolute; inset:0; background: linear-gradient(90deg, #3a2a3a 0%, #4a3a4a 50%, #3a2a3a 100%); }
.scn-resemblance-to-marchioness .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%); }
.scn-resemblance-to-marchioness .arch-left { position:absolute; left:-5%; top:10%; width:40%; height:70%; background: linear-gradient(90deg, #5a4a5a 0%, transparent 100%); border-radius:50% 0 0 50%; }
.scn-resemblance-to-marchioness .portrait-frame { position:absolute; left:20%; bottom:25%; width:25%; height:50%; border:8px solid #6a5a4a; border-radius:8%; background: transparent; box-shadow: 0 0 20px rgba(0,0,0,.5); animation: res-frame 10s ease-in-out infinite; }
.scn-resemblance-to-marchioness .portrait { position:absolute; left:22%; bottom:28%; width:21%; height:44%; background: radial-gradient(ellipse, #c0a080 0%, #a08060 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: inset 0 -20px 20px rgba(0,0,0,.3); animation: res-portrait 12s ease-in-out infinite alternate; }
.scn-resemblance-to-marchioness .figure-emily { position:absolute; left:10%; bottom:18%; width:15%; height:40%; background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 100%); border-radius:40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: res-fig1 8s ease-in-out infinite; }
.scn-resemblance-to-marchioness .figure-countess { position:absolute; left:35%; bottom:15%; width:15%; height:45%; background: linear-gradient(180deg, #3a2a3a 0%, #2a1a2a 100%); border-radius:40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: res-fig2 9s ease-in-out infinite 2s; }
.scn-resemblance-to-marchioness .ambient-glow { position:absolute; inset:0; background: radial-gradient(ellipse at 75% 30%, rgba(255,200,150,.1) 0%, transparent 60%); animation: res-glow 7s ease-in-out infinite alternate; }
@keyframes res-frame { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-3px); } }
@keyframes res-portrait { 0% { transform: scale(1) rotate(0); } 50% { transform: scale(1.02) rotate(1deg); } 100% { transform: scale(0.98) rotate(-1deg); } }
@keyframes res-fig1 { 0%,100% { transform: translateX(0) rotate(0); } 50% { transform: translateX(8px) rotate(3deg); } }
@keyframes res-fig2 { 0%,100% { transform: translateX(0) rotate(0); } 50% { transform: translateX(-6px) rotate(-2deg); } }
@keyframes res-glow { 0% { opacity:0.5; } 100% { opacity:0.9; } }

.scn-count’s-kindness { background: linear-gradient(180deg, #7ab0d0 0%, #b0d8e8 50%, #e0f0f0 100%), radial-gradient(ellipse at 20% 80%, #f0e080 0%, transparent 70%); }
.scn-count’s-kindness .sky { position:absolute; inset:0; background: linear-gradient(180deg, #5a90b0 0%, transparent 100%); animation: cok-sky 20s ease-in-out infinite alternate; }
.scn-count’s-kindness .ground { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, #6a8a4a 0%, #4a6a2a 100%); border-radius:30% 30% 0 0; }
.scn-count’s-kindness .tree { position:absolute; left:10%; bottom:25%; width:30%; height:70%; background: linear-gradient(135deg, #3a5a2a 0%, #2a4a1a 100%); border-radius:50% 50% 20% 20% / 60% 60% 30% 30%; box-shadow: inset -20px 0 20px rgba(0,0,0,.2); animation: cok-tree 14s ease-in-out infinite; }
.scn-count’s-kindness .count { position:absolute; right:25%; bottom:5%; width:16%; height:50%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:30% 30% 20% 20% / 50% 50% 30% 30%; transform-origin: bottom center; animation: cok-count 6s ease-in-out infinite; }
.scn-count’s-kindness .countess { position:absolute; right:12%; bottom:5%; width:14%; height:45%; background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius:30% 30% 30% 30% / 50% 50% 40% 40%; transform-origin: bottom center; animation: cok-countess 7s ease-in-out infinite 1s; }
.scn-count’s-kindness .emily { position:absolute; left:30%; bottom:8%; width:12%; height:35%; background: linear-gradient(180deg, #8a7a6a 0%, #4a3a2a 100%); border-radius:30% 30% 20% 20% / 50% 50% 30% 30%; transform-origin: bottom center; animation: cok-emily 5s ease-in-out infinite 0.5s; }
.scn-count’s-kindness .sun { position:absolute; top:8%; right:18%; width:12%; height:12%; background: radial-gradient(circle, #ffd080 0%, #ffc060 40%, transparent 100%); box-shadow: 0 0 60px 30px rgba(255,192,96,.3); animation: cok-sun 9s ease-in-out infinite alternate; }
.scn-count’s-kindness .shadow { position:absolute; bottom:0; left:10%; right:10%; height:5%; background: linear-gradient(90deg, rgba(0,0,0,.2) 0%, rgba(0,0,0,.4) 50%, rgba(0,0,0,.2) 100%); filter: blur(4px); animation: cok-shadow 12s ease-in-out infinite; }
@keyframes cok-sky { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes cok-tree { 0%,100% { transform: rotate(0) scaleX(1); } 50% { transform: rotate(4deg) scaleX(1.02); } }
@keyframes cok-count { 0%,100% { transform: translateX(0) rotate(0); } 25% { transform: translateX(-5px) rotate(-2deg); } 50% { transform: translateX(0) rotate(0); } 75% { transform: translateX(5px) rotate(2deg); } }
@keyframes cok-countess { 0%,100% { transform: translateX(0) rotate(0); } 33% { transform: translateX(4px) rotate(1deg); } 66% { transform: translateX(-4px) rotate(-1deg); } }
@keyframes cok-emily { 0%,100% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-3px) scaleY(1.02); } }
@keyframes cok-sun { 0% { transform: scale(0.95); opacity:0.85; } 100% { transform: scale(1.05); opacity:1; } }
@keyframes cok-shadow { 0%,100% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(10px) scaleX(1.1); } }

.scn-letters-sent { background: linear-gradient(180deg, #e0d8c8 0%, #f0e8d8 50%, #c0b8a8 100%), radial-gradient(ellipse at 50% 0%, #f0e0c0 0%, transparent 70%); }
.scn-letters-sent .room-wall { position:absolute; inset:0; background: linear-gradient(90deg, #d0c8b0 0%, #e0d8c0 100%); }
.scn-letters-sent .window { position:absolute; top:10%; right:10%; width:30%; height:60%; background: linear-gradient(135deg, #c0e0f0 0%, #a0c0d0 100%); border-radius:10% 10% 20% 20%; box-shadow: inset 0 0 30px rgba(255,255,255,.3); animation: let-window 8s ease-in-out infinite alternate; }
.scn-letters-sent .desk { position:absolute; bottom:15%; left:10%; width:50%; height:15%; background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%); border-radius:5% 5% 0 0; box-shadow: 0 4px 8px rgba(0,0,0,.4); }
.scn-letters-sent .letter { position:absolute; bottom:25%; left:20%; width:20%; height:12%; background: linear-gradient(135deg, #f0e8d0 0%, #d0c8b0 100%); border-radius:2% 8% 2% 8%; transform: rotate(-5deg); box-shadow: 0 2px 4px rgba(0,0,0,.2); animation: let-letter 6s ease-in-out infinite; }
.scn-letters-sent .inkwell { position:absolute; bottom:23%; left:45%; width:6%; height:8%; background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 100%); border-radius:50% 50% 30% 30%; box-shadow: 0 2px 4px rgba(0,0,0,.5); }
.scn-letters-sent .quill { position:absolute; bottom:30%; left:42%; width:3%; height:20%; background: linear-gradient(180deg, #c0b0a0 0%, #8a7a6a 100%); border-radius:0 0 50% 50%; transform: rotate(15deg); transform-origin: bottom center; animation: let-quill 3s ease-in-out infinite alternate; }
.scn-letters-sent .figure-seated { position:absolute; left:20%; bottom:30%; width:20%; height:50%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:40% 40% 30% 30% / 50% 50% 30% 30%; transform-origin: bottom center; animation: let-figure 4s ease-in-out infinite; }
.scn-letters-sent .chair { position:absolute; left:15%; bottom:25%; width:30%; height:20%; background: linear-gradient(180deg, #6a5a4a 0%, #3a2a1a 100%); border-radius:20% 20% 10% 10%; box-shadow: 0 4px 8px rgba(0,0,0,.3); }
@keyframes let-window { 0% { opacity:0.7; filter: brightness(0.9); } 100% { opacity:1; filter: brightness(1.1); } }
@keyframes let-letter { 0%,100% { transform: rotate(-5deg) translateY(0); } 50% { transform: rotate(-3deg) translateY(-2px); } }
@keyframes let-quill { 0% { transform: rotate(10deg) translateY(0); } 50% { transform: rotate(20deg) translateY(-3px); } 100% { transform: rotate(15deg) translateY(0); } }
@keyframes let-figure { 0%,100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-2px) rotate(1deg); } }

.scn-carousal-comment { background: linear-gradient(180deg, #1a0a0a 0%, #2b1414 40%, #3d1a1a 100%), radial-gradient(ellipse at 50% 80%, #4a2020 0%, transparent 70%); }
.scn-carousal-comment .wall-bg { position:absolute; inset:0; background: linear-gradient(135deg, #2a1410 0%, #1c0c0a 100%); animation: car-wall 8s ease-in-out infinite alternate; }
.scn-carousal-comment .table { position:absolute; bottom:10%; left:20%; width:60%; height:15%; background: linear-gradient(180deg, #5a3020 0%, #3a1a10 100%); border-radius: 10% / 40% 40% 10% 10%; box-shadow: 0 4px 8px rgba(0,0,0,0.6); }
.scn-carousal-comment .figure-left { position:absolute; bottom:18%; left:30%; width:30px; height:45px; background: linear-gradient(180deg, #1a0e0a 0%, #0d0605 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: car-fig-left 4s ease-in-out infinite; }
.scn-carousal-comment .figure-right { position:absolute; bottom:18%; right:30%; width:30px; height:45px; background: linear-gradient(180deg, #1a0e0a 0%, #0d0605 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: car-fig-right 4.5s ease-in-out infinite; }
.scn-carousal-comment .wine-cup { position:absolute; bottom:22%; left:48%; width:10px; height:14px; background: radial-gradient(circle, #6a3a2a 0%, #3a1a10 100%); border-radius: 0 0 20% 20%; box-shadow: 0 0 6px 2px rgba(100,50,30,0.5); animation: car-wine 3s ease-in-out infinite; }
.scn-carousal-comment .lamp { position:absolute; top:15%; left:50%; width:20px; height:30px; transform:translateX(-50%); background: radial-gradient(circle, #d08030 0%, #a05020 60%, transparent 100%); border-radius: 50%; box-shadow: 0 0 40px 15px rgba(200,100,40,0.6), 0 0 80px 30px rgba(200,100,40,0.3); animation: car-lamp 5s ease-in-out infinite alternate; }
.scn-carousal-comment .shadow-flicker { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 50%, transparent 40%, rgba(0,0,0,0.3) 100%); animation: car-shadow 2s ease-in-out infinite alternate; }
@keyframes car-wall { 0% { opacity:0.8; } 50% { opacity:0.9; } 100% { opacity:0.85; } }
@keyframes car-fig-left { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(3px) rotate(2deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-2px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes car-fig-right { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-3px) rotate(-2deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(2px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes car-wine { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes car-lamp { 0% { box-shadow: 0 0 30px 10px rgba(200,100,40,0.5), 0 0 60px 20px rgba(200,100,40,0.2); } 50% { box-shadow: 0 0 50px 20px rgba(220,120,50,0.7), 0 0 100px 40px rgba(220,120,50,0.4); } 100% { box-shadow: 0 0 40px 15px rgba(200,100,40,0.6), 0 0 80px 30px rgba(200,100,40,0.3); } }
@keyframes car-shadow { 0% { opacity:0.6; } 50% { opacity:0.8; } 100% { opacity:0.7; } }

.scn-new-customs { background: linear-gradient(180deg, #1c0c08 0%, #2a1410 50%, #3a1a12 100%), radial-gradient(ellipse at 50% 100%, #3a1a12 0%, transparent 80%); }
.scn-new-customs .bg-room { position:absolute; inset:0; background: linear-gradient(135deg, #2a1410 0%, #1c0c08 100%); animation: new-bg 10s ease-in-out infinite alternate; }
.scn-new-customs .arch { position:absolute; bottom:0; left:20%; width:60%; height:70%; background: linear-gradient(180deg, #3a2018 0%, #1c0c08 100%); border-radius: 30% 30% 0 0 / 50% 50% 0 0; box-shadow: inset 0 -10px 20px rgba(0,0,0,0.5); }
.scn-new-customs .figure-guard { position:absolute; bottom:20%; left:30%; width:25px; height:50px; background: linear-gradient(180deg, #0d0605 0%, #050302 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: new-guard 3s ease-in-out infinite; }
.scn-new-customs .figure-silhouette { position:absolute; bottom:20%; right:35%; width:28px; height:48px; background: linear-gradient(180deg, #0d0605 0%, #050302 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: new-silhouette 4s ease-in-out infinite; }
.scn-new-customs .torch { position:absolute; top:25%; left:15%; width:8px; height:18px; background: radial-gradient(circle, #d08030 0%, #a05020 100%); border-radius: 10% 10% 30% 30%; animation: new-torch 2s ease-in-out infinite alternate; }
.scn-new-customs .torch-glow { position:absolute; top:20%; left:10%; width:80px; height:80px; background: radial-gradient(circle, rgba(200,100,40,0.4) 0%, transparent 100%); animation: new-glow 3s ease-in-out infinite; }
.scn-new-customs .distant-table { position:absolute; bottom:15%; left:45%; width:30%; height:8%; background: linear-gradient(180deg, #3a1a10 0%, #2a0e08 100%); border-radius: 10% / 20% 20% 10% 10%; box-shadow: 0 2px 4px rgba(0,0,0,0.4); animation: new-table 6s ease-in-out infinite; }
@keyframes new-bg { 0% { opacity:0.8; } 50% { opacity:0.95; } 100% { opacity:0.85; } }
@keyframes new-guard { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes new-silhouette { 0% { transform: translateX(0); } 25% { transform: translateX(4px); } 50% { transform: translateX(0); } 75% { transform: translateX(-3px); } 100% { transform: translateX(0); } }
@keyframes new-torch { 0% { height:18px; opacity:0.8; } 100% { height:20px; opacity:1; } }
@keyframes new-glow { 0% { opacity:0.6; transform: scale(1); } 50% { opacity:0.9; transform: scale(1.1); } 100% { opacity:0.7; transform: scale(1); } }
@keyframes new-table { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-1px); } }

.scn-hall-door-opened { background: linear-gradient(180deg, #1a0e0a 0%, #2a1410 50%, #3a1a12 100%), radial-gradient(ellipse at 50% 70%, #3a1a12 0%, transparent 80%); }
.scn-hall-door-opened .hall-walls { position:absolute; inset:0; background: linear-gradient(135deg, #2a1410 0%, #1c0c08 100%); }
.scn-hall-door-opened .vault { position:absolute; top:0; left:10%; width:80%; height:40%; background: linear-gradient(180deg, #2a1410 0%, transparent 100%); border-radius: 50% 50% 0 0 / 100% 100% 0 0; box-shadow: inset 0 -10px 20px rgba(0,0,0,0.3); animation: hal-vault 12s ease-in-out infinite alternate; }
.scn-hall-door-opened .tripod-lamp { position:absolute; top:10%; left:50%; width:30px; height:40px; transform:translateX(-50%); background: radial-gradient(circle, #d08030 0%, #a05020 60%, transparent 100%); border-radius: 50%; box-shadow: 0 0 60px 20px rgba(200,100,40,0.5), 0 0 120px 40px rgba(200,100,40,0.2); animation: hal-lamp 6s ease-in-out infinite alternate; }
.scn-hall-door-opened .lamp-glow { position:absolute; top:5%; left:35%; width:30%; height:50%; background: radial-gradient(ellipse, rgba(200,100,40,0.3) 0%, transparent 100%); animation: hal-glow 4s ease-in-out infinite; }
.scn-hall-door-opened .doorway { position:absolute; bottom:0; left:15%; width:25%; height:60%; background: linear-gradient(180deg, #1c0c08 0%, #0d0605 100%); border-radius: 10% 10% 0 0 / 20% 20% 0 0; box-shadow: inset 0 -5px 10px rgba(0,0,0,0.5); }
.scn-hall-door-opened .figure-bertrand { position:absolute; bottom:18%; left:20%; width:22px; height:42px; background: linear-gradient(180deg, #0d0605 0%, #050302 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: hal-bertrand 5s ease-in-out infinite; }
.scn-hall-door-opened .torch { position:absolute; bottom:30%; left:22%; width:6px; height:16px; background: linear-gradient(180deg, #d08030 0%, #a05020 100%); border-radius: 10%; box-shadow: 0 0 10px 4px rgba(200,100,40,0.6); animation: hal-torch 2.5s ease-in-out infinite alternate; }
@keyframes hal-vault { 0% { opacity:0.7; } 50% { opacity:0.9; } 100% { opacity:0.8; } }
@keyframes hal-lamp { 0% { box-shadow: 0 0 40px 15px rgba(200,100,40,0.4), 0 0 80px 30px rgba(200,100,40,0.15); } 50% { box-shadow: 0 0 70px 25px rgba(220,120,50,0.6), 0 0 140px 50px rgba(220,120,50,0.3); } 100% { box-shadow: 0 0 50px 20px rgba(200,100,40,0.5), 0 0 100px 40px rgba(200,100,40,0.2); } }
@keyframes hal-glow { 0% { opacity:0.4; } 50% { opacity:0.7; } 100% { opacity:0.5; } }
@keyframes hal-bertrand { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(1deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-2px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes hal-torch { 0% { height:16px; opacity:0.8; } 100% { height:18px; opacity:1; } }

.scn-dark-gallery-wait { background: linear-gradient(180deg, #0a0a14 0%, #14141e 50%, #1a1a28 100%), radial-gradient(ellipse at 50% 100%, #1a1a28 0%, transparent 80%); }
.scn-dark-gallery-wait .bg-dark { position:absolute; inset:0; background: linear-gradient(135deg, #0e0e18 0%, #08080f 100%); animation: dark-bg 15s ease-in-out infinite alternate; }
.scn-dark-gallery-wait .staircase { position:absolute; bottom:0; left:30%; width:40%; height:60%; background: linear-gradient(180deg, #1c1c2a 0%, #0a0a14 100%); clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%); animation: dark-stair 20s ease-in-out infinite; }
.scn-dark-gallery-wait .figure-seated { position:absolute; bottom:15%; left:35%; width:24px; height:30px; background: linear-gradient(180deg, #0a0a14 0%, #050508 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-10deg); transform-origin: bottom center; animation: dark-figure 6s ease-in-out infinite; }
.scn-dark-gallery-wait .rail { position:absolute; bottom:30%; left:28%; width:2px; height:40%; background: linear-gradient(180deg, transparent, #1a1a2a 20%, #1a1a2a 80%, transparent); box-shadow: 1px 0 0 rgba(255,255,255,0.05); animation: dark-rail 8s ease-in-out infinite alternate; }
.scn-dark-gallery-wait .distant-light { position:absolute; top:20%; right:20%; width:12px; height:12px; background: radial-gradient(circle, rgba(200,180,160,0.1) 0%, transparent 100%); border-radius: 50%; animation: dark-light 10s ease-in-out infinite; }
.scn-dark-gallery-wait .shadow-arch { position:absolute; top:0; left:0; width:100%; height:30%; background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.8) 0%, transparent 100%); }
.scn-dark-gallery-wait .fog { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 80%, rgba(255,255,255,0.02) 0%, transparent 60%); animation: dark-fog 30s ease-in-out infinite alternate; }
@keyframes dark-bg { 0% { opacity:0.7; } 50% { opacity:0.9; } 100% { opacity:0.8; } }
@keyframes dark-stair { 0% { transform: translateY(0); opacity:0.6; } 50% { transform: translateY(2px); opacity:0.7; } 100% { transform: translateY(0); opacity:0.6; } }
@keyframes dark-figure { 0% { transform: rotate(-10deg) translateY(0); } 25% { transform: rotate(-8deg) translateY(-1px); } 50% { transform: rotate(-10deg) translateY(0); } 75% { transform: rotate(-12deg) translateY(-1px); } 100% { transform: rotate(-10deg) translateY(0); } }
@keyframes dark-rail { 0% { opacity:0.3; } 50% { opacity:0.5; } 100% { opacity:0.3; } }
@keyframes dark-light { 0% { opacity:0.1; } 50% { opacity:0.3; } 100% { opacity:0.1; } }
@keyframes dark-fog { 0% { opacity:0.2; } 50% { opacity:0.4; } 100% { opacity:0.2; } }

.scn-more-damage {
  background: linear-gradient(180deg, #1a0f0a 0%, #2a1a10 40%, #4a2a1a 70%, #8a4a2a 100%), radial-gradient(ellipse at 50% 80%, #ff8a40 0%, transparent 60%);
}
.scn-more-damage .wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #1a0f0a 0%, transparent 100%); }
.scn-more-damage .floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #2a1a10 0%, #1a0f0a 100%); }
.scn-more-damage .fireplace { position:absolute; bottom:30%; left:50%; transform:translateX(-50%); width:120px; height:80px; background: #3a2a1a; border-radius:4% 4% 0 0; box-shadow: inset 0 -10px 20px rgba(0,0,0,.6); }
.scn-more-damage .fire { position:absolute; bottom:30%; left:50%; transform:translateX(-50%); width:30px; height:60px; background: radial-gradient(ellipse at 50% 100%, #ffaa50 0%, #cc6620 50%, transparent 100%); border-radius:50% 50% 20% 20%; animation: flicker-md 4s ease-in-out infinite; }
.scn-more-damage .glow { position:absolute; bottom:25%; left:50%; transform:translateX(-50%); width:200px; height:200px; background: radial-gradient(circle, rgba(255,138,64,.3) 0%, transparent 60%); border-radius:50%; animation: pulse-glow-md 5s ease-in-out infinite; }
.scn-more-damage .chair-left { position:absolute; bottom:20%; left:25%; width:40px; height:30px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%); border-radius:20% 20% 10% 10%; transform-origin: bottom center; animation: sway-chair-md 8s ease-in-out infinite; }
.scn-more-damage .chair-right { position:absolute; bottom:20%; right:25%; width:40px; height:30px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%); border-radius:20% 20% 10% 10%; transform-origin: bottom center; animation: sway-chair-md 8s ease-in-out 4s infinite; }
.scn-more-damage .figure { position:absolute; bottom:22%; left:50%; transform:translateX(-50%); width:20px; height:40px; background: linear-gradient(180deg, #1a0f0a 0%, #0d0805 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: breathe-md 6s ease-in-out infinite; }
@keyframes flicker-md {
  0% { transform: translateX(-50%) scale(1,1) rotate(0deg); opacity:.9; }
  25% { transform: translateX(-50%) scale(1.05,0.95) rotate(-1deg); opacity:1; }
  50% { transform: translateX(-50%) scale(0.95,1.05) rotate(1deg); opacity:.8; }
  75% { transform: translateX(-50%) scale(1.02,0.98) rotate(-0.5deg); opacity:.95; }
  100% { transform: translateX(-50%) scale(1,1) rotate(0deg); opacity:.9; }
}
@keyframes pulse-glow-md {
  0% { opacity:.6; box-shadow:0 0 30px 8px #ff8a40; }
  50% { opacity:1; box-shadow:0 0 50px 15px #ffaa50; }
  100% { opacity:.6; box-shadow:0 0 30px 8px #ff8a40; }
}
@keyframes sway-chair-md {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(1px) rotate(1deg); }
  50% { transform: translateX(0) rotate(0deg); }
  75% { transform: translateX(-1px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes breathe-md {
  0%,100% { transform: translateX(-50%) translateY(0) scale(1); }
  50% { transform: translateX(-50%) translateY(-2px) scale(1.01); }
}

.scn-montoni-dismisses {
  background: linear-gradient(180deg, #0d0805 0%, #1a0f0a 40%, #3a1a0d 70%, #7a3a1a 100%), radial-gradient(ellipse at 50% 90%, #ff7a30 0%, transparent 50%);
}
.scn-montoni-dismisses .wall { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #0d0805 0%, #1a0f0a 100%); }
.scn-montoni-dismisses .floor { position:absolute; bottom:0; left:0; right:0; height:25%; background: #1a0f0a; }
.scn-montoni-dismisses .fireplace { position:absolute; bottom:25%; left:50%; transform:translateX(-50%); width:140px; height:90px; background: #2a1a0d; border-radius:4% 4% 0 0; box-shadow: inset 0 -12px 24px rgba(0,0,0,.7); }
.scn-montoni-dismisses .fire { position:absolute; bottom:25%; left:50%; transform:translateX(-50%); width:40px; height:65px; background: radial-gradient(ellipse at 50% 100%, #ff8830 0%, #cc5515 40%, transparent 100%); border-radius:50% 50% 20% 20%; animation: flicker-mtd 2.5s ease-in-out infinite; }
.scn-montoni-dismisses .table { position:absolute; bottom:18%; left:30%; width:200px; height:18px; background: linear-gradient(90deg, #2a1a0a, #4a3a2a, #2a1a0a); border-radius:2px; box-shadow: 0 4px 8px rgba(0,0,0,.5); animation: shake-mtd 3s ease-in-out infinite; }
.scn-montoni-dismisses .carlo { position:absolute; bottom:20%; left:22%; width:28px; height:55px; background: #0d0805; border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sweep-mtd 4s ease-in-out infinite; }
.scn-montoni-dismisses .montoni { position:absolute; bottom:25%; right:30%; width:22px; height:80px; background: #0d0805; border-radius:30% 30% 20% 20%; transform-origin: bottom center; animation: rigid-lean-mtd 3.5s ease-in-out infinite; }
@keyframes flicker-mtd {
  0% { transform: translateX(-50%) scale(1,1) rotate(0deg); opacity:.9; }
  20% { transform: translateX(-50%) scale(1.07,0.93) rotate(2deg); opacity:1; }
  40% { transform: translateX(-50%) scale(0.93,1.07) rotate(-2deg); opacity:.7; }
  60% { transform: translateX(-50%) scale(1.04,0.96) rotate(1deg); opacity:.95; }
  80% { transform: translateX(-50%) scale(0.98,1.02) rotate(-1deg); opacity:.85; }
  100% { transform: translateX(-50%) scale(1,1) rotate(0deg); opacity:.9; }
}
@keyframes shake-mtd {
  0%,100% { transform: translateX(0); }
  25% { transform: translateX(-2px); }
  50% { transform: translateX(2px); }
  75% { transform: translateX(-1px); }
}
@keyframes sweep-mtd {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(8px) rotate(8deg); }
  50% { transform: translateX(0) rotate(0deg); }
  75% { transform: translateX(8px) rotate(-8deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes rigid-lean-mtd {
  0%,100% { transform: rotate(0deg); }
  25% { transform: rotate(3deg); }
  50% { transform: rotate(0deg); }
  75% { transform: rotate(-3deg); }
}

.scn-emily-asks-motive {
  background: linear-gradient(180deg, #120a05 0%, #2a1508 40%, #5a2a10 70%, #8a4515 100%), radial-gradient(ellipse at 50% 60%, #ff8830 0%, transparent 60%);
}
.scn-emily-asks-motive .bg { position:absolute; inset:0; background: linear-gradient(180deg, transparent 0%, #120a05 100%); opacity:.3; }
.scn-emily-asks-motive .fireplace { position:absolute; bottom:40%; left:50%; transform:translateX(-50%); width:100px; height:70px; background: #2a1508; border-radius:4% 4% 0 0; }
.scn-emily-asks-motive .fire { position:absolute; bottom:40%; left:50%; transform:translateX(-50%); width:25px; height:50px; background: radial-gradient(ellipse at 50% 100%, #ffa040 0%, #cc5515 30%, transparent 100%); border-radius:50% 50% 20% 20%; animation: flicker-eam 2s ease-in-out infinite; }
.scn-emily-asks-motive .table { position:absolute; bottom:15%; left:25%; width:180px; height:12px; background: #4a2a10; border-radius:2px; }
.scn-emily-asks-motive .emily { position:absolute; bottom:20%; left:28%; width:16px; height:45px; background: #1a0f0a; border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: tremble-eam 1.5s ease-in-out infinite; }
.scn-emily-asks-motive .montoni { position:absolute; bottom:20%; right:28%; width:20px; height:75px; background: #1a0f0a; border-radius:30% 30% 20% 20%; transform-origin: bottom center; animation: rigid-turn-eam 4s ease-in-out infinite; }
.scn-emily-asks-motive .shadow { position:absolute; bottom:15%; left:50%; transform:translateX(-50%); width:100px; height:30px; background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,.4) 0%, transparent 100%); animation: shadow-pulse-eam 3s ease-in-out infinite; }
@keyframes flicker-eam {
  0% { transform: translateX(-50%) scale(1,1); opacity:.8; }
  30% { transform: translateX(-50%) scale(1.06,0.94); opacity:1; }
  60% { transform: translateX(-50%) scale(0.94,1.06); opacity:.7; }
  100% { transform: translateX(-50%) scale(1,1); opacity:.8; }
}
@keyframes tremble-eam {
  0% { transform: translateX(0) rotate(0deg); }
  15% { transform: translateX(1px) rotate(2deg); }
  30% { transform: translateX(-1px) rotate(-2deg); }
  45% { transform: translateX(1px) rotate(1deg); }
  60% { transform: translateX(-1px) rotate(-1deg); }
  75% { transform: translateX(0) rotate(0deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes rigid-turn-eam {
  0%,100% { transform: rotate(0deg); }
  20% { transform: rotate(2deg); }
  50% { transform: rotate(-2deg); }
  80% { transform: rotate(1deg); }
}
@keyframes shadow-pulse-eam {
  0%,100% { transform: translateX(-50%) scaleX(1); opacity:.5; }
  50% { transform: translateX(-50%) scaleX(1.2); opacity:.8; }
}

.scn-emily-withdraws {
  background: linear-gradient(180deg, #1a1210 0%, #2a1a15 40%, #4a2a1a 70%, #6a3a1a 100%), radial-gradient(ellipse at 50% 70%, #d48a40 0%, transparent 60%);
}
.scn-emily-withdraws .wall-left { position:absolute; top:0; bottom:20%; left:0; width:25%; background: linear-gradient(90deg, #1a1210 0%, transparent 100%); }
.scn-emily-withdraws .wall-right { position:absolute; top:0; bottom:20%; right:0; width:25%; background: linear-gradient(-90deg, #1a1210 0%, transparent 100%); }
.scn-emily-withdraws .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: #1a1210; }
.scn-emily-withdraws .fireplace { position:absolute; bottom:20%; left:50%; transform:translateX(-50%); width:80px; height:60px; background: #2a1a15; border-radius:4% 4% 0 0; }
.scn-emily-withdraws .fire { position:absolute; bottom:20%; left:50%; transform:translateX(-50%); width:20px; height:35px; background: radial-gradient(ellipse at 50% 100%, #d48a40 0%, #a06020 50%, transparent 100%); border-radius:50% 50% 20% 20%; animation: die-down-ew 10s ease-in-out infinite; }
.scn-emily-withdraws .emily { position:absolute; bottom:18%; left:40%; width:14px; height:40px; background: #0d0805; border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: walk-away-ew 8s ease-in-out infinite; }
.scn-emily-withdraws .aunt { position:absolute; bottom:20%; left:55%; width:20px; height:55px; background: #1a1210; border-radius:30% 30% 20% 20%; animation: fade-static-ew 12s ease-in-out infinite; }
.scn-emily-withdraws .door { position:absolute; bottom:20%; right:15%; width:30px; height:70px; background: #0d0805; border-radius:2px; box-shadow: inset 0 0 10px #000; }
@keyframes die-down-ew {
  0% { transform: translateX(-50%) scale(1,1); opacity:.8; }
  25% { transform: translateX(-50%) scale(0.85,0.9); opacity:.6; }
  50% { transform: translateX(-50%) scale(0.7,0.75); opacity:.4; }
  75% { transform: translateX(-50%) scale(0.9,0.95); opacity:.7; }
  100% { transform: translateX(-50%) scale(1,1); opacity:.8; }
}
@keyframes walk-away-ew {
  0% { transform: translateX(0) scale(1); opacity:1; }
  30% { transform: translateX(10px) scale(0.98); opacity:.95; }
  60% { transform: translateX(20px) scale(0.95); opacity:.85; }
  100% { transform: translateX(30px) scale(0.9); opacity:.7; }
}
@keyframes fade-static-ew {
  0%,100% { opacity:.9; }
  50% { opacity:.6; }
}

/* chateau-la-vallee-intro – calm, sunlit, interior cutaway */
.scn-chateau-la-vallee-intro {
  background: linear-gradient(180deg, #c8e0f0 0%, #b0c8d8 30%, #8aa8b8 60%, #6a8a9a 100%),
              radial-gradient(ellipse at 80% 20%, #f5e8c0 0%, transparent 50%);
  position: relative; overflow: hidden;
}
.scn-chateau-la-vallee-intro .window-frame {
  position: absolute; top: 5%; left: 5%; width: 90%; height: 90%;
  border: 12px solid #6a4a2a;
  box-shadow: inset 0 0 0 4px #8a6a4a, 0 8px 24px rgba(0,0,0,0.3);
  background: transparent;
  pointer-events: none;
  border-radius: 4px;
  animation: clv-frame 8s ease-in-out infinite alternate;
}
.scn-chateau-la-vallee-intro .window-glass {
  position: absolute; top: 5.5%; left: 5.5%; width: 88.5%; height: 88.5%;
  background: linear-gradient(135deg, rgba(255,255,240,0.2) 0%, rgba(200,220,240,0.1) 50%, rgba(180,200,220,0.05) 100%);
  filter: blur(2px);
  animation: clv-glass 12s ease-in-out infinite alternate;
}
.scn-chateau-la-vallee-intro .sky-outside {
  position: absolute; top: 8%; left: 8%; width: 84%; height: 40%;
  background: linear-gradient(180deg, #b0d0e8 0%, #d0e8f0 60%, #f0e8c0 100%);
  border-radius: 2px;
  animation: clv-sky 20s ease-in-out infinite alternate;
}
.scn-chateau-la-vallee-intro .hills-far {
  position: absolute; top: 38%; left: 8%; width: 84%; height: 18%;
  background: linear-gradient(180deg, #6a8a6a 0%, #4a6a4a 50%, #3a5a3a 100%);
  border-radius: 60% 50% 0 0 / 80% 70% 0 0;
  transform-origin: bottom;
  animation: clv-hills 10s ease-in-out infinite alternate;
}
.scn-chateau-la-vallee-intro .vineyard {
  position: absolute; bottom: 18%; left: 8%; width: 84%; height: 12%;
  background: repeating-linear-gradient(45deg, #5a7a4a 0px, #5a7a4a 4px, #6a8a5a 4px, #6a8a5a 8px);
  opacity: 0.7;
  animation: clv-vine 6s ease-in-out infinite;
}
.scn-chateau-la-vallee-intro .river {
  position: absolute; bottom: 8%; left: 20%; width: 60%; height: 10%;
  background: linear-gradient(90deg, #6a9aba 0%, #8abada 30%, #a0c8da 60%, #8abada 100%);
  border-radius: 50% 40% 40% 50% / 60% 50% 50% 60%;
  filter: blur(1px);
  animation: clv-river 6s ease-in-out infinite alternate;
}
.scn-chateau-la-vallee-intro .tree-cluster {
  position: absolute; bottom: 26%; left: 60%; width: 40px; height: 50px;
  background: radial-gradient(ellipse 60% 80% at 50% 100%, #4a6a3a 0%, #2a4a2a 60%, transparent 100%);
  border-radius: 50%;
  filter: blur(1px);
  animation: clv-tree 14s ease-in-out infinite alternate;
}
.scn-chateau-la-vallee-intro .birds {
  position: absolute; top: 15%; left: 30%; width: 12px; height: 6px;
  background: transparent;
  box-shadow: 4px 0 0 #2a2a2a, 8px -2px 0 #2a2a2a, 12px 1px 0 #2a2a2a;
  animation: clv-birds 18s linear infinite;
}
@keyframes clv-frame {
  0% { box-shadow: inset 0 0 0 4px #8a6a4a, 0 8px 24px rgba(0,0,0,0.3); }
  50% { box-shadow: inset 0 0 0 6px #9a7a5a, 0 10px 28px rgba(0,0,0,0.35); }
  100% { box-shadow: inset 0 0 0 4px #7a5a3a, 0 8px 20px rgba(0,0,0,0.25); }
}
@keyframes clv-glass {
  0% { opacity: 0.15; transform: scale(0.98); }
  50% { opacity: 0.25; transform: scale(1); }
  100% { opacity: 0.1; transform: scale(0.99); }
}
@keyframes clv-sky {
  0% { background: linear-gradient(180deg, #b0d0e8 0%, #d0e8f0 60%, #f0e8c0 100%); }
  50% { background: linear-gradient(180deg, #c0e0f8 0%, #e0f0f8 60%, #f8f0d0 100%); }
  100% { background: linear-gradient(180deg, #a8c8e0 0%, #c8dce8 60%, #e8dcb8 100%); }
}
@keyframes clv-hills {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-2px) scaleY(1.02); }
  100% { transform: translateY(0) scaleY(0.98); }
}
@keyframes clv-vine {
  0% { opacity: 0.6; transform: translateX(0); }
  50% { opacity: 0.8; transform: translateX(-2px); }
  100% { opacity: 0.7; transform: translateX(0); }
}
@keyframes clv-river {
  0% { transform: translateY(0) skewX(0deg); }
  50% { transform: translateY(-1px) skewX(1deg); }
  100% { transform: translateY(0) skewX(-1deg); }
}
@keyframes clv-tree {
  0% { transform: scale(1) rotate(0deg); }
  50% { transform: scale(1.04) rotate(1deg); }
  100% { transform: scale(0.98) rotate(-1deg); }
}
@keyframes clv-birds {
  0% { transform: translateX(-20px); opacity: 0; }
  10% { opacity: 0.8; }
  90% { opacity: 0.8; }
  100% { transform: translateX(120vw); opacity: 0; }
}

/* pyrenees-view – tense, overcast, wide horizon */
.scn-pyrenees-view {
  background: linear-gradient(180deg, #4a5a6a 0%, #5a6a7a 30%, #6a7a8a 50%, #4a5a5a 100%),
              radial-gradient(ellipse at 30% 40%, #3a4a5a 0%, transparent 60%);
  position: relative; overflow: hidden;
}
.scn-pyrenees-view .overcast-sky {
  position: absolute; top: 0; left: 0; width: 100%; height: 55%;
  background: linear-gradient(180deg, #6a7a8a 0%, #8a9aaa 30%, #9aaaba 50%, #7a8a9a 70%, #5a6a7a 100%);
  animation: pv-sky 15s ease-in-out infinite alternate;
}
.scn-pyrenees-view .mountain-back {
  position: absolute; bottom: 30%; left: 5%; width: 90%; height: 35%;
  background: linear-gradient(180deg, #4a5a5a 0%, #3a4a4a 50%, #2a3a3a 100%);
  clip-path: polygon(0% 100%, 10% 60%, 20% 70%, 35% 40%, 50% 65%, 65% 30%, 80% 55%, 90% 50%, 100% 100%);
  animation: pv-mtn-back 20s ease-in-out infinite alternate;
}
.scn-pyrenees-view .mountain-mid {
  position: absolute; bottom: 20%; left: 0%; width: 100%; height: 40%;
  background: linear-gradient(180deg, #3a4a4a 0%, #2a3a3a 50%, #1a2a2a 100%);
  clip-path: polygon(0% 100%, 8% 50%, 18% 60%, 28% 30%, 42% 55%, 55% 20%, 70% 50%, 85% 35%, 100% 60%, 100% 100%);
  animation: pv-mtn-mid 18s ease-in-out infinite alternate;
}
.scn-pyrenees-view .mountain-fore {
  position: absolute; bottom: 10%; left: -5%; width: 110%; height: 50%;
  background: linear-gradient(180deg, #2a3a3a 0%, #1a2a2a 50%, #0a1a1a 100%);
  clip-path: polygon(0% 100%, 5% 70%, 15% 80%, 25% 50%, 40% 70%, 50% 40%, 65% 65%, 75% 45%, 90% 70%, 100% 60%, 100% 100%);
  animation: pv-mtn-fore 22s ease-in-out infinite alternate;
}
.scn-pyrenees-view .rolling-clouds {
  position: absolute; top: 10%; left: 0; width: 120%; height: 30%;
  background: radial-gradient(ellipse 80% 60% at 10% 50%, rgba(180,190,200,0.6) 0%, transparent 50%),
              radial-gradient(ellipse 70% 50% at 40% 30%, rgba(160,170,180,0.5) 0%, transparent 40%),
              radial-gradient(ellipse 90% 70% at 70% 60%, rgba(140,150,160,0.4) 0%, transparent 50%);
  filter: blur(8px);
  animation: pv-clouds 35s linear infinite;
}
.scn-pyrenees-view .lone-tree {
  position: absolute; bottom: 15%; left: 25%; width: 8px; height: 40px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%;
  transform-origin: bottom center;
  box-shadow: 0 0 4px rgba(0,0,0,0.5);
  animation: pv-tree 4s ease-in-out infinite;
}
.scn-pyrenees-view .shadow-rock {
  position: absolute; bottom: 10%; right: 15%; width: 50px; height: 30px;
  background: radial-gradient(ellipse 70% 50% at 50% 100%, #1a1a1a 0%, transparent 100%);
  filter: blur(3px);
  animation: pv-rock 8s ease-in-out infinite alternate;
}
.scn-pyrenees-view .mist-layer {
  position: absolute; top: 0; left: 0; width: 100%; height: 40%;
  background: linear-gradient(0deg, rgba(200,210,220,0.15) 0%, transparent 80%);
  filter: blur(5px);
  animation: pv-mist 20s ease-in-out infinite alternate;
}
@keyframes pv-sky {
  0% { background: linear-gradient(180deg, #6a7a8a 0%, #8a9aaa 30%, #9aaaba 50%, #7a8a9a 70%, #5a6a7a 100%); }
  50% { background: linear-gradient(180deg, #5a6a7a 0%, #7a8a9a 30%, #8a9aaa 50%, #6a7a8a 70%, #4a5a6a 100%); }
  100% { background: linear-gradient(180deg, #6a7a8a 0%, #9aaaba 30%, #9aaaba 50%, #7a8a9a 70%, #5a6a7a 100%); }
}
@keyframes pv-mtn-back {
  0% { transform: translateX(0) scaleX(1); }
  50% { transform: translateX(2px) scaleX(1.01); }
  100% { transform: translateX(-2px) scaleX(0.99); }
}
@keyframes pv-mtn-mid {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(-3px) rotate(0.5deg); }
  100% { transform: translateX(3px) rotate(-0.5deg); }
}
@keyframes pv-mtn-fore {
  0% { transform: translateX(0) scaleY(1); }
  50% { transform: translateX(1px) scaleY(1.02); }
  100% { transform: translateX(-1px) scaleY(0.98); }
}
@keyframes pv-clouds {
  0% { transform: translateX(0); }
  50% { transform: translateX(-10px); }
  100% { transform: translateX(-20px); }
}
@keyframes pv-tree {
  0% { transform: translateY(0) rotate(-2deg); }
  50% { transform: translateY(-4px) rotate(2deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes pv-rock {
  0% { opacity: 0.6; transform: scale(0.95); }
  50% { opacity: 0.8; transform: scale(1.05); }
  100% { opacity: 0.7; transform: scale(0.98); }
}
@keyframes pv-mist {
  0% { opacity: 0.3; }
  50% { opacity: 0.5; }
  100% { opacity: 0.2; }
}

/* st-aubert-rambling – warm, sunlit, wide river scene */
.scn-st-aubert-rambling {
  background: linear-gradient(180deg, #f0e8c0 0%, #e0d8a0 30%, #c8b880 60%, #a89860 100%),
              radial-gradient(ellipse at 70% 10%, #f8f0d8 0%, transparent 40%);
  position: relative; overflow: hidden;
}
.scn-st-aubert-rambling .warm-sky {
  position: absolute; top: 0; left: 0; width: 100%; height: 45%;
  background: linear-gradient(180deg, #f8f0d8 0%, #e8d8a0 40%, #d0c080 100%);
  animation: sar-sky 15s ease-in-out infinite alternate;
}
.scn-st-aubert-rambling .river-path {
  position: absolute; bottom: 20%; left: 0; width: 100%; height: 30%;
  background: linear-gradient(135deg, #8ab0ca 0%, #a0c8da 30%, #b0d8e0 50%, #8ab0ca 70%, #6a90aa 100%);
  border-radius: 30% 70% 50% 50% / 40% 60% 40% 60%;
  filter: blur(1px);
  animation: sar-river 12s ease-in-out infinite alternate;
}
.scn-st-aubert-rambling .meadow {
  position: absolute; bottom: 10%; left: 0; width: 100%; height: 15%;
  background: linear-gradient(180deg, #7a9a5a 0%, #5a7a3a 50%, #4a6a2a 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  animation: sar-meadow 10s ease-in-out infinite alternate;
}
.scn-st-aubert-rambling .figure-father {
  position: absolute; bottom: 25%; left: 30%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: sar-walk 6s ease-in-out infinite;
}
.scn-st-aubert-rambling .figure-mother {
  position: absolute; bottom: 25%; left: 40%; width: 18px; height: 48px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: sar-walk 6s ease-in-out infinite 0.1s;
}
.scn-st-aubert-rambling .figure-daughter {
  position: absolute; bottom: 24%; left: 48%; width: 12px; height: 30px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: sar-walk 6s ease-in-out infinite 0.2s;
}
.scn-st-aubert-rambling .poplars {
  position: absolute; bottom: 28%; left: 60%; width: 15px; height: 80px;
  background: linear-gradient(180deg, #4a6a3a 0%, #2a4a2a 50%, #1a3a1a 100%);
  border-radius: 30% 30% 10% 10% / 60% 60% 10% 10%;
  box-shadow: 20px 0 0 #3a5a2a, -15px 0 0 #5a7a4a;
  animation: sar-poplars 12s ease-in-out infinite alternate;
}
.scn-st-aubert-rambling .distant-hills {
  position: absolute; bottom: 40%; left: 0; width: 100%; height: 12%;
  background: linear-gradient(180deg, #8a9a7a 0%, #6a8a5a 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  filter: blur(3px);
  animation: sar-hills 20s ease-in-out infinite alternate;
}
@keyframes sar-sky {
  0% { background: linear-gradient(180deg, #f8f0d8 0%, #e8d8a0 40%, #d0c080 100%); }
  50% { background: linear-gradient(180deg, #fff8e8 0%, #f0e0b0 40%, #d8c888 100%); }
  100% { background: linear-gradient(180deg, #f0e8c0 0%, #e0d098 40%, #c8b878 100%); }
}
@keyframes sar-river {
  0% { transform: translateY(0) scaleX(1); }
  50% { transform: translateY(-2px) scaleX(1.01); }
  100% { transform: translateY(0) scaleX(0.99); }
}
@keyframes sar-meadow {
  0% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
  100% { transform: translateY(0); }
}
@keyframes sar-walk {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-2px) rotate(1deg); }
  50% { transform: translateY(0) rotate(0deg); }
  75% { transform: translateY(-2px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes sar-poplars {
  0% { transform: scaleY(1) rotate(0deg); }
  50% { transform: scaleY(1.04) rotate(0.5deg); }
  100% { transform: scaleY(0.98) rotate(-0.5deg); }
}
@keyframes sar-hills {
  0% { transform: translateY(0) scaleY(1); }
  50% { transform: translateY(-1px) scaleY(1.02); }
  100% { transform: translateY(0) scaleY(0.98); }
}

/* st-aubert-principles – warm, bright-interior, study scene */
.scn-st-aubert-principles {
  background: linear-gradient(180deg, #d0c8a0 0%, #c0b890 30%, #a8a078 60%, #908860 100%),
              radial-gradient(ellipse at 50% 80%, #e8d8a0 0%, transparent 60%);
  position: relative; overflow: hidden;
}
.scn-st-aubert-principles .study-wall {
  position: absolute; top: 0; left: 0; width: 100%; height: 100%;
  background: linear-gradient(135deg, #c8b888 0%, #b8a878 50%, #a89868 100%);
  border-radius: 4px;
  animation: sap-wall 20s ease-in-out infinite alternate;
}
.scn-st-aubert-principles .desk {
  position: absolute; bottom: 8%; left: 15%; width: 55%; height: 12%;
  background: linear-gradient(180deg, #6a4a2a 0%, #5a3a1a 100%);
  border-radius: 2px 2px 4px 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: sap-desk 8s ease-in-out infinite alternate;
}
.scn-st-aubert-principles .open-book {
  position: absolute; bottom: 14%; left: 25%; width: 20%; height: 5%;
  background: linear-gradient(180deg, #f0e8d8 0%, #e0d0b0 100%);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.2);
  animation: sap-book 6s ease-in-out infinite;
}
.scn-st-aubert-principles .figure-seated {
  position: absolute; bottom: 12%; left: 20%; width: 28px; height: 60px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: sap-figure 4s ease-in-out infinite;
}
.scn-st-aubert-principles .window-light {
  position: absolute; top: 5%; right: 5%; width: 30%; height: 40%;
  background: linear-gradient(135deg, rgba(255,255,220,0.6) 0%, rgba(200,180,120,0.2) 100%);
  border-radius: 4px 4px 8px 8px;
  box-shadow: inset 0 0 20px rgba(255,240,200,0.3);
  animation: sap-window 15s ease-in-out infinite alternate;
}
.scn-st-aubert-principles .sunbeam {
  position: absolute; top: 5%; right: 5%; width: 30%; height: 60%;
  background: linear-gradient(180deg, rgba(255,240,180,0.3) 0%, transparent 100%);
  clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%);
  filter: blur(6px);
  animation: sap-sunbeam 12s ease-in-out infinite alternate;
}
.scn-st-aubert-principles .chair {
  position: absolute; bottom: 8%; left: 35%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #7a5a3a 0%, #5a3a1a 100%);
  border-radius: 4px 4px 8px 8px;
  box-shadow: 2px 0 0 #4a2a0a;
  animation: sap-chair 9s ease-in-out infinite alternate;
}
.scn-st-aubert-principles .shelf-books {
  position: absolute; top: 2%; left: 2%; width: 60%; height: 4%;
  background: repeating-linear-gradient(90deg, #6a4a3a 0px, #6a4a3a 6px, #8a6a4a 6px, #8a6a4a 12px, #5a3a2a 12px, #5a3a2a 18px);
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,0.2);
  animation: sap-shelf 14s ease-in-out infinite alternate;
}
@keyframes sap-wall {
  0% { background: linear-gradient(135deg, #c8b888 0%, #b8a878 50%, #a89868 100%); }
  50% { background: linear-gradient(135deg, #d0c090 0%, #c0b080 50%, #b0a070 100%); }
  100% { background: linear-gradient(135deg, #c0b080 0%, #b0a070 50%, #a09060 100%); }
}
@keyframes sap-desk {
  0% { transform: translateY(0); box-shadow: 0 4px 8px rgba(0,0,0,0.3); }
  50% { transform: translateY(-1px); box-shadow: 0 6px 12px rgba(0,0,0,0.35); }
  100% { transform: translateY(0); box-shadow: 0 4px 8px rgba(0,0,0,0.25); }
}
@keyframes sap-book {
  0% { transform: rotate(0deg); }
  50% { transform: rotate(0.5deg); }
  100% { transform: rotate(-0.5deg); }
}
@keyframes sap-figure {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(0.5deg); }
  100% { transform: translateY(0) rotate(-0.5deg); }
}
@keyframes sap-window {
  0% { opacity: 0.6; transform: scale(0.98); }
  50% { opacity: 0.8; transform: scale(1); }
  100% { opacity: 0.7; transform: scale(0.99); }
}
@keyframes sap-sunbeam {
  0% { opacity: 0.3; transform: rotate(0deg); }
  50% { opacity: 0.45; transform: rotate(1deg); }
  100% { opacity: 0.35; transform: rotate(-1deg); }
}
@keyframes sap-chair {
  0% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
  100% { transform: translateY(0); }
}
@keyframes sap-shelf {
  0% { transform: scaleX(1); }
  50% { transform: scaleX(1.005); }
  100% { transform: scaleX(0.995); }
}

.scn-solitude-dinner { background: linear-gradient(180deg, #2c1e16 0%, #1a110d 50%, #0f0a07 100%), radial-gradient(ellipse at 50% 60%, #4a2e1a 0%, transparent 70%); }
.scn-solitude-dinner .room-walls { position:absolute; inset:0; background:linear-gradient(135deg, #2c1e16 0%, #1a110d 100%); animation:sd-walls 12s ease-in-out infinite alternate; }
.scn-solitude-dinner .table { position:absolute; bottom:20%; left:50%; width:120px; height:30px; transform:translateX(-50%); background:linear-gradient(180deg,#4a3020 0%,#2c1e16 100%); border-radius:4px; box-shadow:0 4px 10px rgba(0,0,0,.6); }
.scn-solitude-dinner .plate { position:absolute; bottom:25%; left:50%; width:40px; height:20px; transform:translateX(-50%); background:radial-gradient(ellipse,#c8a87a 0%,#a08060 100%); border-radius:50%; box-shadow:inset 0 2px 4px rgba(0,0,0,.2); }
.scn-solitude-dinner .candle { position:absolute; bottom:30%; left:48%; width:8px; height:40px; background:linear-gradient(180deg,#f0e0c0 0%,#c0a080 100%); border-radius:2px 2px 0 0; transform:rotate(3deg); }
.scn-solitude-dinner .candle-glow { position:absolute; bottom:38%; left:48%; width:40px; height:40px; transform:translate(-50%,-50%); background:radial-gradient(circle, rgba(255,200,100,.8) 0%, rgba(255,150,50,.4) 40%, transparent 70%); border-radius:50%; animation:sd-glow 3s ease-in-out infinite alternate; }
.scn-solitude-dinner .figure { position:absolute; bottom:18%; left:40%; width:30px; height:80px; background:linear-gradient(180deg,#2c1e16 0%,#1a110d 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin:bottom center; animation:sd-figure 8s ease-in-out infinite; }
.scn-solitude-dinner .window { position:absolute; top:15%; right:15%; width:80px; height:100px; background:linear-gradient(180deg,#2a3040 0%,#1a2030 100%); border:4px solid #3a2a1a; border-radius:4px; box-shadow:inset 0 0 20px rgba(100,150,200,.2); animation:sd-window 15s ease-in-out infinite alternate; }
@keyframes sd-walls { 0%{opacity:.9} 50%{opacity:1} 100%{opacity:.85} }
@keyframes sd-glow { 0%{transform:scale(1);opacity:.8} 50%{transform:scale(1.2);opacity:1} 100%{transform:scale(.9);opacity:.6} }
@keyframes sd-figure { 0%{transform:translateY(0) rotate(-1deg)} 50%{transform:translateY(-3px) rotate(1deg)} 100%{transform:translateY(0) rotate(0)} }
@keyframes sd-window { 0%{opacity:.5} 50%{opacity:.8} 100%{opacity:.6} }

.scn-suspicion-marco { background: linear-gradient(180deg, #0f0a08 0%, #1a0f0a 30%, #0d0705 100%), radial-gradient(ellipse at 40% 70%, #3a1a0a 0%, transparent 60%); }
.scn-suspicion-marco .dark-room { position:absolute; inset:0; background:linear-gradient(135deg,#0f0a08 0%,#1a0f0a 100%); animation:sm-room 10s ease-in-out infinite alternate; }
.scn-suspicion-marco .table { position:absolute; bottom:25%; left:40%; width:100px; height:20px; transform:translateX(-50%); background:linear-gradient(180deg,#3a2a1a 0%,#1a110d 100%); border-radius:2px; }
.scn-suspicion-marco .candle { position:absolute; bottom:30%; left:38%; width:6px; height:30px; background:linear-gradient(180deg,#d0b090 0%,#a08060 100%); border-radius:2px; }
.scn-suspicion-marco .candle-glow { position:absolute; bottom:35%; left:38%; width:30px; height:30px; transform:translate(-50%,-50%); background:radial-gradient(circle, rgba(200,120,40,.9) 0%, rgba(150,80,20,.4) 40%, transparent 70%); border-radius:50%; animation:sm-glow 2s ease-in-out infinite alternate; }
.scn-suspicion-marco .figure-a { position:absolute; bottom:20%; left:30%; width:25px; height:70px; background:linear-gradient(180deg,#1a110d 0%,#0f0a08 100%); border-radius:50% 40% 30% 40% / 50% 50% 40% 40%; transform-origin:bottom; animation:sm-figure-a 6s ease-in-out infinite; }
.scn-suspicion-marco .figure-b { position:absolute; bottom:20%; left:55%; width:25px; height:75px; background:linear-gradient(180deg,#1a110d 0%,#0f0a08 100%); border-radius:40% 50% 40% 30% / 50% 50% 40% 40%; transform-origin:bottom; animation:sm-figure-b 7s ease-in-out infinite; }
.scn-suspicion-marco .shadow { position:absolute; bottom:20%; left:30%; width:60px; height:20px; background:rgba(0,0,0,.5); border-radius:50%; filter:blur(4px); animation:sm-shadow 6s ease-in-out infinite; }
@keyframes sm-room { 0%{opacity:.85} 50%{opacity:1} 100%{opacity:.9} }
@keyframes sm-glow { 0%{transform:scale(.8);opacity:.7} 50%{transform:scale(1.3);opacity:1} 100%{transform:scale(.9);opacity:.6} }
@keyframes sm-figure-a { 0%{transform:translateX(0) rotate(-2deg)} 50%{transform:translateX(4px) rotate(1deg)} 100%{transform:translateX(-2px) rotate(0)} }
@keyframes sm-figure-b { 0%{transform:translateX(0) rotate(2deg)} 50%{transform:translateX(-3px) rotate(-1deg)} 100%{transform:translateX(2px) rotate(0)} }
@keyframes sm-shadow { 0%{transform:scaleX(1);opacity:.6} 50%{transform:scaleX(1.2);opacity:.4} 100%{transform:scaleX(.9);opacity:.5} }

.scn-drawing-books { background: linear-gradient(180deg, #d4c8b0 0%, #b8a890 50%, #a09080 100%), radial-gradient(ellipse at 70% 30%, #e8e0d0 0%, transparent 70%); }
.scn-drawing-books .wall { position:absolute; inset:0; background:linear-gradient(180deg,#c8b8a0 0%,#a89080 100%); }
.scn-drawing-books .window-frame { position:absolute; top:10%; left:20%; width:200px; height:240px; border:8px solid #6a5a4a; border-radius:8px; background:transparent; }
.scn-drawing-books .sky-view { position:absolute; top:10%; left:20%; width:200px; height:240px; background:linear-gradient(180deg,#8ab4d4 0%,#6a94b4 60%,#4a7a9a 100%); border-radius:4px; animation:db-sky 20s linear infinite alternate; }
.scn-drawing-books .landscape { position:absolute; bottom:30%; left:20%; width:200px; height:100px; background:linear-gradient(180deg,#7a9a6a 0%,#5a7a4a 100%); border-radius:30% 40% 0 0; animation:db-landscape 25s ease-in-out infinite; }
.scn-drawing-books .figure { position:absolute; bottom:18%; left:20%; width:40px; height:80px; background:linear-gradient(180deg,#3a2a1a 0%,#1a110d 100%); border-radius:40% 40% 30% 30% / 50% 50% 40% 40%; transform-origin:bottom; animation:db-figure 8s ease-in-out infinite; }
.scn-drawing-books .book { position:absolute; bottom:25%; left:25%; width:30px; height:20px; background:linear-gradient(180deg,#8a6a4a 0%,#6a4a2a 100%); border-radius:2px; transform:rotate(5deg); animation:db-book 6s ease-in-out infinite; }
.scn-drawing-books .curtain { position:absolute; top:10%; left:20%; width:10px; height:240px; background:linear-gradient(180deg,#8a6a4a 0%,#6a4a2a 100%); border-radius:4px; transform-origin:top; animation:db-curtain 12s ease-in-out infinite alternate; }
.scn-drawing-books .curtain-right { position:absolute; top:10%; right:60%; width:10px; height:240px; background:linear-gradient(180deg,#8a6a4a,#6a4a2a); border-radius:4px; transform-origin:top; animation:db-curtain-right 12s ease-in-out infinite alternate; }
@keyframes db-sky { 0%{background-position:0 0} 50%{background-position:0 20px} 100%{background-position:0 0} }
@keyframes db-landscape { 0%{transform:scaleY(1);opacity:.9} 50%{transform:scaleY(1.02);opacity:1} 100%{transform:scaleY(1);opacity:.95} }
@keyframes db-figure { 0%{transform:translateY(0) rotate(0)} 25%{transform:translateY(-2px) rotate(1deg)} 50%{transform:translateY(-3px) rotate(-1deg)} 75%{transform:translateY(-1px) rotate(0)} 100%{transform:translateY(0) rotate(0)} }
@keyframes db-book { 0%{transform:rotate(5deg) scaleY(1)} 50%{transform:rotate(3deg) scaleY(0.95)} 100%{transform:rotate(5deg) scaleY(1)} }
@keyframes db-curtain { 0%{transform:rotate(0) scaleY(1)} 50%{transform:rotate(3deg) scaleY(1.02)} 100%{transform:rotate(-2deg) scaleY(1)} }
@keyframes db-curtain-right { 0%{transform:rotate(0) scaleY(1)} 50%{transform:rotate(-3deg) scaleY(1.02)} 100%{transform:rotate(2deg) scaleY(1)} }

.scn-twilight-moonlight { background: linear-gradient(180deg, #2a2a5e 0%, #1a1a3e 30%, #0f0f2a 100%), radial-gradient(ellipse at 50% 10%, #6a7ab0 0%, transparent 50%); }
.scn-twilight-moonlight .twilight-sky { position:absolute; inset:0; background:linear-gradient(180deg,#2a2a5e,#1a1a3e); animation:tm-sky 15s ease-in-out infinite alternate; }
.scn-twilight-moonlight .moon { position:absolute; top:8%; left:65%; width:40px; height:40px; background:radial-gradient(circle,#e0e0f0 0%,#c0c0d0 50%,#a0a0b0 100%); border-radius:50%; box-shadow:0 0 30px 10px rgba(200,200,230,.4); animation:tm-moon 12s ease-in-out infinite; }
.scn-twilight-moonlight .hills { position:absolute; bottom:30%; left:0; right:0; height:30%; background:linear-gradient(180deg,#1a2a3a 0%,#0f1a2a 100%); border-radius:50% 50% 0 0; animation:tm-hills 20s ease-in-out infinite alternate; }
.scn-twilight-moonlight .brook { position:absolute; bottom:18%; left:0; right:0; height:12%; background:linear-gradient(180deg,#4a6a8a 0%,#2a4a6a 100%); border-radius:50% 40% 0 0; animation:tm-brook 8s ease-in-out infinite; }
.scn-twilight-moonlight .trees { position:absolute; bottom:30%; left:10%; width:40px; height:80px; background:linear-gradient(180deg,#1a3a1a 0%,#0a2a0a 100%); border-radius:30% 30% 10% 10%; box-shadow:0 0 10px rgba(0,0,0,.3); }
.scn-twilight-moonlight .casement-frame { position:absolute; top:20%; left:10%; width:60px; height:120px; border:6px solid #3a2a1a; background:transparent; border-radius:4px; }
.scn-twilight-moonlight .figure { position:absolute; bottom:20%; left:10%; width:30px; height:70px; background:linear-gradient(180deg,#1a1a2a 0%,#0f0f1a 100%); border-radius:50% 40% 40% 30% / 50% 50% 40% 40%; transform-origin:bottom; animation:tm-figure 10s ease-in-out infinite; }
.scn-twilight-moonlight .stars { position:absolute; top:5%; left:0; width:100%; height:40%; background:radial-gradient(2px 2px at 20% 30%, rgba(255,255,255,.8), transparent), radial-gradient(1px 1px at 50% 10%, rgba(255,255,255,.6), transparent), radial-gradient(2px 2px at 80% 20%, rgba(255,255,255,.7), transparent); animation:tm-stars 30s linear infinite; }
@keyframes tm-sky { 0%{opacity:.8} 50%{opacity:1} 100%{opacity:.9} }
@keyframes tm-moon { 0%{box-shadow:0 0 20px 6px rgba(200,200,230,.3)} 50%{box-shadow:0 0 40px 15px rgba(200,200,230,.6)} 100%{box-shadow:0 0 25px 8px rgba(200,200,230,.4)} }
@keyframes tm-hills { 0%{transform:scaleY(1)} 50%{transform:scaleY(1.02)} 100%{transform:scaleY(1)} }
@keyframes tm-brook { 0%{transform:translateY(0)} 50%{transform:translateY(-2px)} 100%{transform:translateY(0)} }
@keyframes tm-figure { 0%{transform:translateY(0) rotate(-1deg)} 25%{transform:translateY(-2px) rotate(1deg)} 50%{transform:translateY(-3px) rotate(0)} 75%{transform:translateY(-1px) rotate(-1deg)} 100%{transform:translateY(0) rotate(0)} }
@keyframes tm-stars { 0%{opacity:.6} 50%{opacity:1} 100%{opacity:.7} }

.scn-night-alone { position: relative; overflow: hidden; background: linear-gradient(180deg, #0a0a12 0%, #14142e 40%, #2a1a1a 70%, #1a1a2a 100%); }
.scn-night-alone .na-bg { position: absolute; top: 0; left: 0; right: 0; bottom: 40%; background: radial-gradient(ellipse at 50% 100%, #2a3a4a 0%, #0a0a18 100%); }
.scn-night-alone .na-floor { position: absolute; bottom: 0; left: 0; right: 0; height: 40%; background: linear-gradient(180deg, #1a1210 0%, #0a0a10 100%); }
.scn-night-alone .na-window { position: absolute; left: 20%; bottom: 50%; width: 30%; height: 40%; background: #1a2a4a; border: 4px solid #1a1a2a; border-radius: 50% 50% 0 0 / 60% 60% 0 0; animation: na-window 8s ease-in-out infinite alternate; }
.scn-night-alone .na-moonbeam { position: absolute; left: 22%; bottom: 50%; width: 26%; height: 60%; background: linear-gradient(180deg, rgba(180,200,230,0.15) 0%, rgba(180,200,230,0.05) 100%); transform: skewX(-5deg); animation: na-beam 8s ease-in-out infinite alternate; }
.scn-night-alone .na-figure { position: absolute; left: 30%; bottom: 30%; width: 8%; height: 20%; background: #0a0a0a; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: na-figure 6s ease-in-out infinite; }
.scn-night-alone .na-table { position: absolute; left: 25%; bottom: 26%; width: 15%; height: 4%; background: #1a1210; border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.6); }
.scn-night-alone .na-candle { position: absolute; left: 29%; bottom: 38%; width: 2%; height: 6%; background: radial-gradient(circle at 50% 0%, #fce6b4 0%, #d49a4a 40%, transparent 100%); box-shadow: 0 0 20px 8px rgba(212, 154, 74, 0.4); animation: na-candle 3s ease-in-out infinite alternate; }
@keyframes na-window { 0% { background: #1a2a4a; opacity: 0.8; } 50% { background: #2a3a5a; opacity: 1; } 100% { background: #1a2a4a; opacity: 0.8; } }
@keyframes na-beam { 0% { opacity: 0.4; transform: skewX(-5deg) translateX(0); } 50% { opacity: 0.8; transform: skewX(-5deg) translateX(5px); } 100% { opacity: 0.5; transform: skewX(-5deg) translateX(-3px); } }
@keyframes na-figure { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes na-candle { 0% { transform: scale(0.9); opacity: 0.7; } 50% { transform: scale(1.1); opacity: 1; } 100% { transform: scale(0.95); opacity: 0.8; } }

.scn-aunt-brings-ornaments { position: relative; overflow: hidden; background: linear-gradient(135deg, #0a0a12 0%, #1a141a 40%, #2a1a12 100%); }
.scn-aunt-brings-ornaments .ab-bg { position: absolute; inset: 0; background: radial-gradient(ellipse at 70% 50%, #1a141a 0%, #0a0a12 100%); }
.scn-aunt-brings-ornaments .ab-doorway { position: absolute; left: 60%; top: 10%; width: 30%; height: 90%; background: #0a0a10; border-radius: 50% 50% 0 0 / 20% 20% 0 0; border-left: 4px solid #2a1a1a; border-right: 4px solid #2a1a1a; }
.scn-aunt-brings-ornaments .ab-aunt { position: absolute; left: 68%; bottom: 20%; width: 12%; height: 40%; background: #0a0a0a; border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%; animation: ab-enter 10s ease-in-out infinite; }
.scn-aunt-brings-ornaments .ab-candle { position: absolute; left: 72%; bottom: 45%; width: 3%; height: 5%; background: radial-gradient(circle, #fce6b4 0%, #d49a4a 50%, transparent 100%); box-shadow: 0 0 30px 12px #d49a4a; animation: ab-candle 3s ease-in-out infinite alternate; }
.scn-aunt-brings-ornaments .ab-dresser { position: absolute; left: 10%; bottom: 10%; width: 40%; height: 20%; background: linear-gradient(180deg, #2a1a12 0%, #1a0e0a 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.8); }
.scn-aunt-brings-ornaments .ab-ornament-1 { position: absolute; left: 15%; bottom: 22%; width: 6%; height: 8%; background: radial-gradient(circle, #7a4a3a 0%, #3a1a1a 100%); border-radius: 50%; box-shadow: 0 0 4px rgba(200, 100, 50, 0.4); animation: ab-glow 4s ease-in-out infinite; }
.scn-aunt-brings-ornaments .ab-ornament-2 { position: absolute; left: 30%; bottom: 24%; width: 5%; height: 6%; background: radial-gradient(circle, #5a6a4a 0%, #2a3a1a 100%); border-radius: 50%; box-shadow: 0 0 4px rgba(100, 150, 100, 0.4); animation: ab-glow 4s ease-in-out 2s infinite; }
@keyframes ab-enter { 0% { transform: translateX(-20px) rotate(0deg); opacity: 0.5; } 50% { transform: translateX(0) rotate(2deg); opacity: 1; } 100% { transform: translateX(-10px) rotate(-1deg); opacity: 0.8; } }
@keyframes ab-candle { 0% { transform: scale(0.9) translateY(0); opacity: 0.8; } 50% { transform: scale(1.1) translateY(-2px); opacity: 1; } 100% { transform: scale(0.95) translateY(1px); opacity: 0.9; } }
@keyframes ab-glow { 0% { opacity: 0.4; transform: scale(0.95); } 50% { opacity: 1; transform: scale(1.05); } 100% { opacity: 0.6; transform: scale(0.95); } }

.scn-aunt-reproaches { position: relative; overflow: hidden; background: linear-gradient(90deg, #0a0a12 0%, #1a121a 50%, #120a0a 100%); }
.scn-aunt-reproaches .ar-bg { position: absolute; inset: 0; background: radial-gradient(ellipse at 30% 50%, #1a121a 0%, #0a0a12 100%); }
.scn-aunt-reproaches .ar-shadow-wall { position: absolute; left: 0; top: 0; width: 60%; height: 100%; background: linear-gradient(180deg, #0a0a10 0%, #1a121a 100%); clip-path: polygon(0 0, 60% 0, 40% 100%, 0 100%); animation: ar-shadow 12s ease-in-out infinite alternate; }
.scn-aunt-reproaches .ar-aunt { position: absolute; left: 20%; bottom: 10%; width: 25%; height: 80%; background: #0a0a0a; border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; animation: ar-loom 8s ease-in-out infinite; }
.scn-aunt-reproaches .ar-aunt-head { position: absolute; left: 28%; top: 5%; width: 10%; height: 12%; background: #0a0a0a; border-radius: 50%; }
.scn-aunt-reproaches .ar-aunt-arm { position: absolute; left: 35%; top: 30%; width: 15%; height: 6%; background: #0a0a0a; border-radius: 40% 40% 40% 40% / 60% 60% 60% 60%; transform: rotate(-20deg); animation: ar-point 4s ease-in-out infinite alternate; }
.scn-aunt-reproaches .ar-emily { position: absolute; left: 50%; bottom: 15%; width: 20%; height: 50%; background: #1a1a1a; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: ar-cower 8s ease-in-out infinite; }
.scn-aunt-reproaches .ar-chair { position: absolute; left: 55%; bottom: 18%; width: 15%; height: 25%; background: #1a1210; border-radius: 10% 10% 20% 20% / 10% 10% 40% 40%; box-shadow: inset 0 0 20px rgba(0,0,0,0.8); }
@keyframes ar-shadow { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes ar-loom { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-5px) scale(1.05); } 100% { transform: translateY(0) scale(1); } }
@keyframes ar-cower { 0% { transform: translateX(0) scale(1); } 50% { transform: translateX(-5px) scale(0.95); } 100% { transform: translateX(0) scale(1); } }
@keyframes ar-point { 0% { transform: rotate(-30deg) translateX(0); } 50% { transform: rotate(-15deg) translateX(3px); } 100% { transform: rotate(-30deg) translateX(0); } }

.scn-aunt-continues-scold { position: relative; overflow: hidden; background: linear-gradient(180deg, #0a0a12 0%, #1a1410 50%, #120a0a 100%); }
.scn-aunt-continues-scold .ac-bg { position: absolute; inset: 0; background: radial-gradient(ellipse at 50% 50%, #1a1410 0%, #0a0a12 100%); }
.scn-aunt-continues-scold .ac-floor { position: absolute; top: 10%; left: 10%; width: 80%; height: 80%; background: #0e0e12; border-radius: 50%; box-shadow: inset 0 0 40px rgba(0,0,0,0.8); }
.scn-aunt-continues-scold .ac-aunt { position: absolute; left: 30%; top: 15%; width: 25%; height: 40%; background: #0a0a0a; border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; animation: ac-shift 12s ease-in-out infinite; }
.scn-aunt-continues-scold .ac-emily { position: absolute; left: 50%; top: 45%; width: 15%; height: 25%; background: #1a1a1a; border-radius: 50%; animation: ac-shift-rev 12s ease-in-out infinite; }
.scn-aunt-continues-scold .ac-table { position: absolute; left: 40%; top: 35%; width: 20%; height: 20%; background: #2a1a12; border-radius: 10%; box-shadow: 0 4px 8px rgba(0,0,0,0.6); }
.scn-aunt-continues-scold .ac-candle { position: absolute; left: 47%; top: 42%; width: 6%; height: 6%; background: radial-gradient(circle, #fce6b4 0%, #d49a4a 40%, transparent 100%); box-shadow: 0 0 40px 15px rgba(212, 154, 74, 0.5); animation: ac-flame 3s ease-in-out infinite alternate; }
.scn-aunt-continues-scold .ac-shadow-1 { position: absolute; left: 20%; top: 40%; width: 10%; height: 30%; background: #05050a; border-radius: 50%; transform: rotate(-30deg); animation: ac-shadow 8s ease-in-out infinite; }
.scn-aunt-continues-scold .ac-shadow-2 { position: absolute; left: 60%; top: 50%; width: 8%; height: 20%; background: #05050a; border-radius: 50%; transform: rotate(45deg); animation: ac-shadow 8s ease-in-out 4s infinite; }
@keyframes ac-shift { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 50% { transform: translateX(5px) translateY(-5px) rotate(2deg); } 100% { transform: translateX(-5px) translateY(5px) rotate(-2deg); } }
@keyframes ac-shift-rev { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 50% { transform: translateX(-3px) translateY(3px) rotate(-1deg); } 100% { transform: translateX(3px) translateY(-3px) rotate(1deg); } }
@keyframes ac-flame { 0% { transform: scale(0.9); opacity: 0.8; } 50% { transform: scale(1.1); opacity: 1; } 100% { transform: scale(0.95); opacity: 0.9; } }
@keyframes ac-shadow { 0% { opacity: 0.3; transform: rotate(-30deg) scale(1); } 50% { opacity: 0.7; transform: rotate(-35deg) scale(1.1); } 100% { opacity: 0.4; transform: rotate(-30deg) scale(1); } }

.scn-first-sight-of-udolpho {
  background: linear-gradient(180deg, #ff7e40 0%, #c84b31 30%, #6a2b1a 60%, #2c1a30 100%), radial-gradient(ellipse at 50% 0%, #ffc080 0%, transparent 60%);
}
.scn-first-sight-of-udolpho .sky {position:absolute;inset:0;background:linear-gradient(180deg,#ffb070 0%,transparent 100%);animation:fsu-sky 20s ease-in-out infinite alternate;}
.scn-first-sight-of-udolpho .mountain-back {position:absolute;bottom:40%;left:10%;right:30%;height:20%;background:linear-gradient(180deg,#5a3a30 0%,#3a1a10 100%);border-radius:60% 40% 0 0;transform:skewX(-5deg);animation:fsu-mtn 25s ease-in-out infinite;}
.scn-first-sight-of-udolpho .mountain-front {position:absolute;bottom:25%;left:20%;right:20%;height:35%;background:linear-gradient(180deg,#4a2a20 0%,#2a0a00 100%);border-radius:50% 70% 0 0;transform:skewX(3deg);animation:fsu-mtn 30s ease-in-out infinite reverse;}
.scn-first-sight-of-udolpho .forest {position:absolute;bottom:30%;left:30%;right:10%;height:15%;background:linear-gradient(180deg,#2a4a2a 0%,#1a2a1a 100%);border-radius:30% 20% 0 0;box-shadow:0 -5px 20px #e0a060;animation:fsu-forest 15s ease-in-out infinite;}
.scn-first-sight-of-udolpho .valley {position:absolute;bottom:0;left:0;right:0;height:30%;background:linear-gradient(180deg,#3a4a3a 0%,#1a2a1a 100%);}
.scn-first-sight-of-udolpho .sun-glow {position:absolute;top:10%;left:10%;width:50px;height:50px;background:radial-gradient(circle,#ffc080 0%,transparent 100%);border-radius:50%;box-shadow:0 0 40px 20px #ffc080;animation:fsu-sun 15s ease-in-out infinite alternate;}
.scn-first-sight-of-udolpho .shadow {position:absolute;bottom:30%;left:0;width:100%;height:10%;background:linear-gradient(90deg,transparent 0%,#2a1a10 50%,transparent 100%);transform:skewX(-20deg);animation:fsu-shadow 20s ease-in-out infinite;}
@keyframes fsu-sky {0%{opacity:.8}50%{opacity:1}100%{opacity:.7}}
@keyframes fsu-mtn {0%{transform:translateY(0) skewX(-5deg)}50%{transform:translateY(-5px) skewX(-5deg)}100%{transform:translateY(0) skewX(-5deg)}}
@keyframes fsu-forest {0%{opacity:.7}50%{opacity:1}100%{opacity:.8}}
@keyframes fsu-sun {0%{transform:scale(1);opacity:.8}50%{transform:scale(1.2);opacity:1}100%{transform:scale(1);opacity:.7}}
@keyframes fsu-shadow {0%{opacity:0;transform:skewX(-20deg) translateX(-50px)}50%{opacity:.6;transform:skewX(-20deg) translateX(0)}100%{opacity:.3;transform:skewX(-20deg) translateX(50px)}}

.scn-udolpho-revealed {
  background: linear-gradient(180deg, #b55a30 0%, #6a2b1a 40%, #3a1a30 100%), radial-gradient(ellipse at 50% 0%, #ff9060 0%, transparent 70%);
}
.scn-udolpho-revealed .sky {position:absolute;inset:0;background:linear-gradient(180deg,#ffc080 0%,transparent 100%);animation:udr-sky 18s ease-in-out infinite;}
.scn-udolpho-revealed .castle-body {position:absolute;bottom:20%;left:35%;width:30%;height:50%;background:linear-gradient(180deg,#4a2a20 0%,#2a1a10 100%);border-radius:5% 5% 2% 2%;box-shadow:inset 0 0 20px #6a3a2a;animation:udr-castle 20s ease-in-out infinite;}
.scn-udolpho-revealed .castle-turret {position:absolute;bottom:50%;left:38%;width:20%;height:30%;background:linear-gradient(180deg,#6a3a2a 0%,#3a1a10 100%);border-radius:20% 20% 0 0;transform:scale(0.8);box-shadow:inset 0 0 10px #8a5a3a;}
.scn-udolpho-revealed .battlements {position:absolute;bottom:70%;left:33%;width:34%;height:6%;background:linear-gradient(90deg,#2a1a10 0%,#4a2a20 100%);border-radius:30% 30% 0 0;box-shadow:0 -5px 15px #c08050;animation:udr-batt 12s ease-in-out infinite alternate;}
.scn-udolpho-revealed .vapour {position:absolute;bottom:30%;left:0;width:100%;height:20%;background:linear-gradient(90deg,transparent 0%,rgba(200,180,200,0.3) 50%,transparent 100%);filter:blur(8px);animation:udr-vapour 30s linear infinite;}
.scn-udolpho-revealed .light-tip {position:absolute;top:20%;left:50%;width:10px;height:10px;background:radial-gradient(circle,#ffd090 0%,transparent 100%);border-radius:50%;box-shadow:0 0 20px 10px #ffd090;animation:udr-light 15s ease-in-out infinite alternate;}
.scn-udolpho-revealed .purple-tint {position:absolute;inset:0;background:linear-gradient(180deg,transparent 0%,rgba(80,40,80,0.4) 100%);animation:udr-tint 25s ease-in-out infinite;}
@keyframes udr-sky {0%{opacity:.9}50%{opacity:.7}100%{opacity:.8}}
@keyframes udr-castle {0%{transform:translateY(0);box-shadow:inset 0 0 20px #6a3a2a}50%{transform:translateY(-3px);box-shadow:inset 0 0 30px #8a4a3a}100%{transform:translateY(0);box-shadow:inset 0 0 20px #6a3a2a}}
@keyframes udr-batt {0%{box-shadow:0 -5px 15px #c08050;opacity:.7}50%{box-shadow:0 -10px 25px #e0a070;opacity:1}100%{box-shadow:0 -5px 15px #c08050;opacity:.8}}
@keyframes udr-vapour {0%{transform:translateX(-10%)}50%{transform:translateX(10%)}100%{transform:translateX(-10%)}}
@keyframes udr-light {0%{opacity:.6;transform:scale(1)}50%{opacity:1;transform:scale(1.5)}100%{opacity:.8;transform:scale(1)}}
@keyframes udr-tint {0%{opacity:.3}50%{opacity:.6}100%{opacity:.4}}

.scn-evening-shadows {
  background: linear-gradient(180deg, #2a2050 0%, #1a1a40 50%, #0a0a20 100%), radial-gradient(ellipse at 50% 100%, #3a2a60 0%, transparent 70%);
}
.scn-evening-shadows .sky {position:absolute;inset:0;background:linear-gradient(180deg,#3a2a60 0%,transparent 100%);animation:evs-sky 25s ease-in-out infinite alternate;}
.scn-evening-shadows .stars {position:absolute;inset:0;background-image:radial-gradient(2px 2px at 20% 30%,#fff,transparent),radial-gradient(2px 2px at 70% 20%,#fff,transparent),radial-gradient(2px 2px at 50% 60%,#fff,transparent),radial-gradient(2px 2px at 90% 40%,#fff,transparent);background-size:200px 200px;animation:evs-stars 60s linear infinite;}
.scn-evening-shadows .castle-tower {position:absolute;bottom:20%;left:30%;width:40%;height:60%;background:linear-gradient(180deg,#2a1a20 0%,#1a0a10 100%);border-radius:10% 10% 5% 5%;box-shadow:inset 0 0 20px #3a2a30,0 0 30px rgba(0,0,0,0.5);animation:evs-tower 20s ease-in-out infinite;}
.scn-evening-shadows .gate {position:absolute;bottom:30%;left:45%;width:10%;height:15%;background:linear-gradient(180deg,#1a0a10 0%,#0a0000 100%);border-radius:50% 50% 20% 20%;box-shadow:inset 0 0 10px #3a2a30;}
.scn-evening-shadows .shadow-layer {position:absolute;bottom:0;left:0;width:100%;height:40%;background:linear-gradient(180deg,transparent 0%,#0a0a20 100%);animation:evs-shadow 30s ease-in-out infinite;}
.scn-evening-shadows .window-glow {position:absolute;bottom:45%;left:43%;width:8px;height:12px;background:radial-gradient(circle,#ffc080 0%,transparent 100%);border-radius:20%;box-shadow:0 0 15px 5px #b08040;animation:evs-window 8s ease-in-out infinite alternate;}
@keyframes evs-sky {0%{opacity:.8}50%{opacity:1}100%{opacity:.7}}
@keyframes evs-stars {0%{transform:translateY(0)}50%{transform:translateY(5px)}100%{transform:translateY(0)}}
@keyframes evs-tower {0%{transform:translateY(0)}50%{transform:translateY(-2px)}100%{transform:translateY(0)}}
@keyframes evs-shadow {0%{opacity:.5}50%{opacity:.8}100%{opacity:.6}}
@keyframes evs-window {0%{opacity:.4;transform:scale(1)}50%{opacity:1;transform:scale(1.3)}100%{opacity:.6;transform:scale(1)}}

.scn-ascent-through-woods {
  background: linear-gradient(180deg, #1a2a3a 0%, #2a4a3a 40%, #1a3a2a 100%), radial-gradient(ellipse at 50% 100%, #2a4a3a 0%, transparent 70%);
}
.scn-ascent-through-woods .sky {position:absolute;inset:0;background:linear-gradient(180deg,#4a6a5a 0%,transparent 100%);animation:atw-sky 20s ease-in-out infinite;}
.scn-ascent-through-woods .tree-back {position:absolute;bottom:40%;left:10%;width:80%;height:15%;background:linear-gradient(180deg,#1a2a1a 0%,#0a1a0a 100%);border-radius:50% 50% 0 0;transform:scaleY(1.5) translateY(10px);animation:atw-tree 30s ease-in-out infinite;}
.scn-ascent-through-woods .tree-mid {position:absolute;bottom:30%;left:5%;width:90%;height:20%;background:linear-gradient(180deg,#2a3a2a 0%,#1a2a1a 100%);border-radius:60% 40% 0 0;transform:scaleY(1.2);animation:atw-tree 25s ease-in-out infinite reverse;}
.scn-ascent-through-woods .tree-fore {position:absolute;bottom:20%;left:0;width:100%;height:25%;background:linear-gradient(180deg,#3a4a3a 0%,#2a3a2a 100%);border-radius:30% 70% 0 0;box-shadow:inset 0 10px 20px rgba(0,0,0,0.5);animation:atw-tree 20s ease-in-out infinite;}
.scn-ascent-through-woods .path {position:absolute;bottom:15%;left:30%;width:40%;height:10%;background:linear-gradient(180deg,#6a5a4a 0%,#4a3a2a 100%);border-radius:20% 20% 0 0;transform:skewX(-10deg);animation:atw-path 15s ease-in-out infinite;}
.scn-ascent-through-woods .rock {position:absolute;bottom:35%;left:45%;width:15%;height:8%;background:linear-gradient(180deg,#5a5a4a 0%,#3a3a2a 100%);border-radius:30% 30% 20% 20%;animation:atw-rock 12s ease-in-out infinite;}
.scn-ascent-through-woods .gates {position:absolute;bottom:50%;left:40%;width:20%;height:30%;background:linear-gradient(180deg,#4a3a2a 0%,#2a1a0a 100%);border-radius:5% 5% 0 0;box-shadow:0 0 20px rgba(0,0,0,0.5);animation:atw-gates 18s ease-in-out infinite;}
@keyframes atw-sky {0%{opacity:.9}50%{opacity:.7}100%{opacity:.8}}
@keyframes atw-tree {0%{transform:translateY(0)}50%{transform:translateY(-3px)}100%{transform:translateY(0)}}
@keyframes atw-path {0%{opacity:.6}50%{opacity:.8}100%{opacity:.7}}
@keyframes atw-rock {0%{transform:translateY(0)}50%{transform:translateY(-1px)}100%{transform:translateY(0)}}
@keyframes atw-gates {0%{transform:scale(1)}50%{transform:scale(1.02)}100%{transform:scale(1)}}

.scn-recollection-of-father { background: linear-gradient(180deg, #0a0a2e 0%, #1a1a4e 40%, #2a2a5e 100%), radial-gradient(ellipse at 50% 0%, #3a3a7e 0%, transparent 70%); }
.scn-recollection-of-father .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, transparent 0%, #0a0a2e 100%); animation: rf-sky 15s ease-in-out infinite alternate; }
.scn-recollection-of-father .stars { position:absolute; inset:0 0 45% 0; background: radial-gradient(1px 1px at 10% 20%, #ffffff, transparent 1px), radial-gradient(1px 1px at 25% 45%, #ffffff, transparent 1px), radial-gradient(1px 1px at 50% 10%, #ffffff, transparent 1px), radial-gradient(1px 1px at 70% 35%, #ffffff, transparent 1px), radial-gradient(1px 1px at 85% 60%, #ffffff, transparent 1px), radial-gradient(1px 1px at 40% 70%, #ffffff, transparent 1px); background-size: cover; animation: rf-twinkle 4s ease-in-out infinite alternate; }
.scn-recollection-of-father .moon { position:absolute; top:8%; left:65%; width:50px; height:50px; border-radius:50%; background: radial-gradient(circle at 35% 35%, #d0d0e8 0%, #8080b0 100%); box-shadow: 0 0 40px 15px rgba(160,160,200,.5); animation: rf-float 10s ease-in-out infinite alternate; }
.scn-recollection-of-father .hill { position:absolute; bottom:25%; left:0; right:0; height:25%; background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%); border-radius: 40% 60% 0 0 / 80% 70% 0 0; box-shadow: inset 0 -8px 20px rgba(0,0,0,.6); animation: rf-hill 20s ease-in-out infinite alternate; }
.scn-recollection-of-father .figure-woman { position:absolute; bottom:30%; left:40%; width:20px; height:40px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rf-woman 6s ease-in-out infinite; }
.scn-recollection-of-father .figure-father { position:absolute; bottom:35%; left:55%; width:22px; height:44px; background: linear-gradient(180deg, rgba(50,50,80,.6) 0%, rgba(20,20,40,.4) 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rf-father 8s ease-in-out infinite alternate; }
@keyframes rf-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes rf-twinkle { 0% { opacity:.6 } 50% { opacity:1 } 100% { opacity:.5 } }
@keyframes rf-float { 0% { transform: translateY(0) } 50% { transform: translateY(-6px) } 100% { transform: translateY(2px) } }
@keyframes rf-hill { 0% { transform: translateY(0) } 50% { transform: translateY(-4px) } 100% { transform: translateY(0) } }
@keyframes rf-woman { 0% { transform: translateX(0) rotate(-1deg) } 25% { transform: translateX(-4px) rotate(1deg) } 50% { transform: translateX(0) rotate(-1deg) } 75% { transform: translateX(4px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes rf-father { 0% { opacity:.2; transform: translateY(0) scale(1) } 50% { opacity:.6; transform: translateY(-5px) scale(1.05) } 100% { opacity:.3; transform: translateY(0) scale(1) } }

.scn-music-returns { background: linear-gradient(180deg, #0f0f2e 0%, #1f1f4e 40%, #3f3f6e 100%), radial-gradient(ellipse at 70% 20%, #4a4a8a 0%, transparent 60%); }
.scn-music-returns .sky { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, transparent 0%, #0f0f2e 100%); animation: mr-sky 18s ease-in-out infinite alternate; }
.scn-music-returns .moon { position:absolute; top:6%; left:75%; width:40px; height:40px; border-radius:50%; background: radial-gradient(circle at 30% 30%, #c0c0e8 0%, #7070a0 100%); box-shadow: 0 0 30px 10px rgba(140,140,180,.5); animation: mr-float 12s ease-in-out infinite alternate; }
.scn-music-returns .planet { position:absolute; top:12%; left:20%; width:10px; height:10px; border-radius:50%; background: #f0f0ff; box-shadow: 0 0 20px 8px rgba(200,200,255,.7); animation: mr-planet 3s ease-in-out infinite alternate; }
.scn-music-returns .castle-tower { position:absolute; bottom:25%; left:45%; width:60px; height:80px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 10% 10% 4% 4%; box-shadow: 0 4px 10px rgba(0,0,0,.6); animation: mr-tower 15s ease-in-out infinite alternate; }
.scn-music-returns .castle-tower::before { content:''; position:absolute; top:-8px; left:10px; width:40px; height:20px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 20% 20% 0 0; box-shadow: 0 -2px 4px rgba(0,0,0,.4); }
.scn-music-returns .figure { position:absolute; bottom:32%; left:48%; width:18px; height:36px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mr-figure 5s ease-in-out infinite; }
.scn-music-returns .ground { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%); border-radius: 30% 70% 0 0 / 50% 60% 0 0; animation: mr-ground 20s ease-in-out infinite alternate; }
.scn-music-returns .sound-wave { position:absolute; top:35%; left:50%; width:40px; height:40px; margin-left:-20px; border:2px solid rgba(170,187,255,.4); border-radius:50%; animation: mr-wave 4s ease-out infinite; }
@keyframes mr-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes mr-float { 0% { transform: translateY(0) } 50% { transform: translateY(-5px) } 100% { transform: translateY(3px) } }
@keyframes mr-planet { 0% { opacity:.6; transform: scale(1) } 50% { opacity:1; transform: scale(1.3) } 100% { opacity:.7; transform: scale(.9) } }
@keyframes mr-tower { 0% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes mr-figure { 0% { transform: rotate(-2deg) } 25% { transform: rotate(2deg) translateY(-1px) } 50% { transform: rotate(-1deg) } 75% { transform: rotate(3deg) translateY(-1px) } 100% { transform: rotate(0) } }
@keyframes mr-ground { 0% { transform: translateY(0) } 50% { transform: translateY(-3px) } 100% { transform: translateY(0) } }
@keyframes mr-wave { 0% { transform: scale(.5); opacity:.8; } 50% { transform: scale(2); opacity:.4; } 100% { transform: scale(3); opacity:0; } }

.scn-music-charms { background: linear-gradient(180deg, #1a1a2e 0%, #2a2a4e 50%, #0a0a1a 100%), radial-gradient(ellipse at 50% 100%, #2a2a4e 0%, transparent 70%); }
.scn-music-charms .room-wall { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #2a2a3e 0%, #0a0a1a 100%); box-shadow: inset 0 0 30px rgba(0,0,0,.8); }
.scn-music-charms .window-frame { position:absolute; top:15%; left:35%; width:120px; height:160px; background: #1a1a2a; border:6px solid #2a2a3e; border-radius: 4px; box-shadow: inset 0 0 0 2px #3a3a4e; animation: mc-window 20s ease-in-out infinite alternate; }
.scn-music-charms .moonlight { position:absolute; top:20%; left:38%; width:80px; height:200px; background: linear-gradient(135deg, rgba(180,180,220,.3) 0%, transparent 60%); clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%); animation: mc-light 12s ease-in-out infinite alternate; }
.scn-music-charms .figure { position:absolute; bottom:30%; left:45%; width:20px; height:40px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: mc-figure 6s ease-in-out infinite; }
.scn-music-charms .chair { position:absolute; bottom:28%; left:42%; width:30px; height:20px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 10% 10% 30% 30%; box-shadow: 0 2px 6px rgba(0,0,0,.6); }
.scn-music-charms .music-note { position:absolute; width:10px; height:10px; background: radial-gradient(circle, #d0d0f0 0%, #9090c0 100%); border-radius: 50% 50% 0 50%; transform: rotate(45deg); animation: mc-note 5s ease-in-out infinite; }
.scn-music-charms .note1 { top:40%; left:30%; animation-delay: 0s; }
.scn-music-charms .note2 { top:50%; left:60%; animation-delay: 2s; }
@keyframes mc-sky { 0% { opacity:.6 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes mc-window { 0% { transform: scale(1) } 50% { transform: scale(1.02) } 100% { transform: scale(1) } }
@keyframes mc-light { 0% { opacity:.3; transform: rotate(-2deg) } 50% { opacity:.6; transform: rotate(2deg) } 100% { opacity:.4; transform: rotate(-1deg) } }
@keyframes mc-figure { 0% { transform: rotate(-1deg) translateX(0) } 25% { transform: rotate(1deg) translateX(3px) } 50% { transform: rotate(-1deg) translateX(0) } 75% { transform: rotate(1deg) translateX(-3px) } 100% { transform: rotate(0) translateX(0) } }
@keyframes mc-note { 0% { transform: translateY(0) rotate(45deg) scale(1); opacity:.5 } 50% { transform: translateY(-20px) rotate(55deg) scale(1.2); opacity:1 } 100% { transform: translateY(10px) rotate(35deg) scale(.8); opacity:.3 } }

.scn-superstition-wavers { background: linear-gradient(180deg, #0d0d2e 0%, #1d1d4e 40%, #3d3d6e 100%), radial-gradient(ellipse at 50% 20%, #4a4a8a 0%, transparent 60%); }
.scn-superstition-wavers .sky { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, transparent 0%, #0d0d2e 100%); animation: sw-sky 18s ease-in-out infinite alternate; }
.scn-superstition-wavers .castle-wall { position:absolute; bottom:20%; left:0; right:0; height:50%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 0 30px rgba(0,0,0,.7); animation: sw-wall 20s ease-in-out infinite alternate; }
.scn-superstition-wavers .door { position:absolute; bottom:25%; left:50%; width:40px; height:60px; margin-left:-20px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 10% 10% / 60% 60% 10% 10%; border:2px solid #2a2a3a; box-shadow: inset 0 0 10px rgba(0,0,0,.5); animation: sw-door 8s ease-in-out infinite alternate; }
.scn-superstition-wavers .glow { position:absolute; bottom:30%; left:50%; width:30px; height:40px; margin-left:-15px; background: radial-gradient(circle, rgba(200,200,255,.4) 0%, transparent 60%); animation: sw-glow 4s ease-in-out infinite alternate; }
.scn-superstition-wavers .figure { position:absolute; bottom:28%; left:38%; width:20px; height:40px; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sw-figure 5s ease-in-out infinite; }
.scn-superstition-wavers .tree { position:absolute; bottom:22%; right:25%; width:8px; height:60px; background: #0f0f1a; }
.scn-superstition-wavers .tree::after { content:''; position:absolute; top:-30px; left:-16px; width:40px; height:40px; background: #0f0f1a; border-radius: 50% 50% 0 0; box-shadow: 10px -10px 0 -2px #0f0f1a, -10px -10px 0 -2px #0f0f1a; animation: sw-tree 12s ease-in-out infinite alternate; }
@keyframes sw-sky { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes sw-wall { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes sw-door { 0% { transform: scaleY(1); opacity:.9 } 50% { transform: scaleY(1.05); opacity:1 } 100% { transform: scaleY(1); opacity:.8 } }
@keyframes sw-glow { 0% { opacity:.3; transform: scale(.8) } 50% { opacity:.7; transform: scale(1.3) } 100% { opacity:.4; transform: scale(1) } }
@keyframes sw-figure { 0% { transform: rotate(-3deg) } 25% { transform: rotate(3deg) translateY(-1px) } 50% { transform: rotate(-2deg) } 75% { transform: rotate(4deg) translateY(-1px) } 100% { transform: rotate(0) } }
@keyframes sw-tree { 0% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-1deg) } }

/* hamet-story-begins – calm dusk */
.scn-hamet-story-begins {
  background: 
    linear-gradient(180deg, #e8b88a 0%, #b06a4a 40%, #4a2a2a 80%, #1a1a2a 100%),
    radial-gradient(ellipse at 20% 0%, #f0c8a0 0%, transparent 60%);
}
.scn-hamet-story-begins .sky {
  position:absolute; inset:0 0 60% 0;
  background: linear-gradient(180deg, rgba(232,184,138,0.7) 0%, transparent 100%);
  animation: hb-sky 8s ease-in-out infinite alternate;
}
.scn-hamet-story-begins .ground {
  position:absolute; bottom:0; left:0; right:0; height:40%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e0a 100%);
  border-radius: 60% 40% 0 0 / 80% 60% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.5);
  animation: hb-ground 12s ease-in-out infinite alternate;
}
.scn-hamet-story-begins .archway {
  position:absolute; bottom:30%; left:35%; width:30%; height:40%;
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  border: 4px solid rgba(200,150,100,0.6);
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.4);
  background: transparent;
}
.scn-hamet-story-begins .column {
  position:absolute; bottom:30%; width:4%; height:45%;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 2px 0 8px rgba(0,0,0,0.3);
  animation: hb-column 6s ease-in-out infinite alternate;
}
.scn-hamet-story-begins .col-l { left:30%; }
.scn-hamet-story-begins .col-r { right:30%; }
.scn-hamet-story-begins .driver {
  position:absolute; bottom:35%; left:38%; width:12px; height:40px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  animation: hb-walk 4s ease-in-out infinite;
}
.scn-hamet-story-begins .camel {
  position:absolute; bottom:34%; left:45%; width:40px; height:30px;
  background: linear-gradient(120deg, #5a3a2a 0%, #3a1a0a 100%);
  border-radius: 50% 40% 30% 50% / 40% 50% 40% 30%;
  animation: hb-camel 4s ease-in-out infinite;
  animation-delay: 0.5s;
}
.scn-hamet-story-begins .load {
  position:absolute; bottom:38%; left:52%; width:18px; height:14px;
  background: #3a2a1a;
  border-radius: 20% 20% 40% 40%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation: hb-sway 3s ease-in-out infinite;
}
@keyframes hb-sky { 0% { opacity:0.7 } 50% { opacity:0.9 } 100% { opacity:0.7 } }
@keyframes hb-ground { 0% { transform:translateY(0) } 50% { transform:translateY(-2px) } 100% { transform:translateY(0) } }
@keyframes hb-column { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes hb-walk { 0% { transform:translateX(0) translateY(0) rotate(-1deg) } 25% { transform:translateX(8px) translateY(-1px) rotate(1deg) } 50% { transform:translateX(16px) translateY(0) rotate(0) } 75% { transform:translateX(24px) translateY(-1px) rotate(1deg) } 100% { transform:translateX(32px) translateY(0) rotate(-1deg) } }
@keyframes hb-camel { 0%,100% { transform:translateX(0) rotate(-2deg) } 50% { transform:translateX(3px) rotate(2deg) } }
@keyframes hb-sway { 0%,100% { transform:rotate(-3deg) } 50% { transform:rotate(3deg) } }

/* hamet-story-family – warm dusk */
.scn-hamet-story-family {
  background: 
    linear-gradient(180deg, #f0c8a0 0%, #d09a6e 30%, #8a5a3a 70%, #3a1a1a 100%),
    radial-gradient(ellipse at 30% 0%, #ffd8a0 0%, transparent 40%);
}
.scn-hamet-story-family .sky-window {
  position:absolute; top:8%; left:10%; width:40%; height:35%;
  background: linear-gradient(180deg, #f0d0b0 0%, #c08050 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.2);
  animation: hf-sky 8s ease-in-out infinite alternate;
}
.scn-hamet-story-family .temple-walls {
  position:absolute; inset:10% 5% 15% 5%;
  background: linear-gradient(180deg, #c0a080 0%, #907060 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.3);
  animation: hf-walls 12s ease-in-out infinite alternate;
}
.scn-hamet-story-family .floor {
  position:absolute; bottom:0; left:0; right:0; height:25%;
  background: linear-gradient(180deg, #8a6a4a 0%, #4a2a1a 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.4);
}
.scn-hamet-story-family .column {
  position:absolute; bottom:20%; width:3%; height:60%;
  background: linear-gradient(180deg, #b09070 0%, #7a5a3a 100%);
  border-radius: 5% 5% 0 0;
  box-shadow: 2px 0 8px rgba(0,0,0,0.2);
  animation: hf-column 6s ease-in-out infinite alternate;
}
.scn-hamet-story-family .col-l { left:20%; }
.scn-hamet-story-family .col-r { right:20%; }
.scn-hamet-story-family .parent {
  position:absolute; bottom:20%; left:35%; width:14px; height:45px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  animation: hf-breathe 4s ease-in-out infinite;
}
.scn-hamet-story-family .child {
  position:absolute; bottom:18%; left:42%; width:10px; height:30px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  animation: hf-restless 3s ease-in-out infinite;
  animation-delay: 1s;
}
.scn-hamet-story-family .candle {
  position:absolute; bottom:32%; left:50%; width:6px; height:12px;
  background: radial-gradient(circle at 50% 0%, #ffd080 0%, #c08040 80%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 0 0 16px 4px rgba(255,208,128,0.6), 0 0 32px 8px rgba(255,208,128,0.3);
  animation: hf-flicker 3s ease-in-out infinite alternate;
}
@keyframes hf-sky { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes hf-walls { 0% { opacity:0.9 } 50% { opacity:1 } 100% { opacity:0.9 } }
@keyframes hf-column { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes hf-breathe { 0%,100% { transform:scaleY(1) } 50% { transform:scaleY(1.03) } }
@keyframes hf-restless { 0%,100% { transform:rotate(-2deg) } 50% { transform:rotate(2deg) } }
@keyframes hf-flicker { 0% { box-shadow: 0 0 12px 2px rgba(255,208,128,0.5); } 50% { box-shadow: 0 0 24px 6px rgba(255,208,128,0.9); } 100% { box-shadow: 0 0 14px 3px rgba(255,208,128,0.6); } }

/* hamet-story-tartar – tense moonlit */
.scn-hamet-story-tartar {
  background: 
    linear-gradient(180deg, #0a0a2a 0%, #1a1a3e 40%, #2a2a4e 70%, #0a0a1a 100%),
    radial-gradient(ellipse at 70% 10%, #c0d0e0 0%, transparent 50%);
}
.scn-hamet-story-tartar .ground {
  position:absolute; bottom:0; left:0; right:0; height:35%;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 40% 60% 0 0 / 60% 50% 0 0;
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.6);
  animation: ht-ground 15s ease-in-out infinite alternate;
}
.scn-hamet-story-tartar .camel {
  position:absolute; bottom:28%; width:45px; height:35px;
  background: linear-gradient(120deg, #3a2a2a 0%, #1a1a1a 100%);
  border-radius: 40% 50% 30% 40% / 50% 40% 40% 50%;
  animation: ht-camel 6s ease-in-out infinite;
}
.scn-hamet-story-tartar .c1 { left:20%; animation-delay:0s; }
.scn-hamet-story-tartar .c2 { left:40%; animation-delay:2s; }
.scn-hamet-story-tartar .hamet {
  position:absolute; bottom:22%; left:30%; width:16px; height:20px;
  background: #1a1a2a;
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ht-sleep 4s ease-in-out infinite;
}
.scn-hamet-story-tartar .tartar {
  position:absolute; bottom:25%; right:25%; width:18px; height:35px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  animation: ht-creep 5s ease-in-out infinite;
}
.scn-hamet-story-tartar .moon {
  position:absolute; top:8%; right:20%; width:30px; height:30px;
  background: radial-gradient(circle at 50% 50%, #e0e8f0 0%, #b0c0d0 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(192,208,224,0.3);
  animation: ht-moon 20s ease-in-out infinite alternate;
}
.scn-hamet-story-tartar .moonbeam {
  position:absolute; top:12%; right:22%; width:8px; height:60%;
  background: linear-gradient(180deg, rgba(192,208,224,0.4) 0%, transparent 100%);
  transform: rotate(15deg);
  transform-origin: top center;
  animation: ht-beam 8s ease-in-out infinite alternate;
}
.scn-hamet-story-tartar .stars {
  position:absolute; top:22%; left:10%; width:60%; height:20%;
  background: radial-gradient(circle at 10% 30%, #e0e8f0 1px, transparent 1px),
              radial-gradient(circle at 30% 70%, #e0e8f0 1px, transparent 1px),
              radial-gradient(circle at 50% 10%, #e0e8f0 1px, transparent 1px),
              radial-gradient(circle at 70% 50%, #e0e8f0 1px, transparent 1px),
              radial-gradient(circle at 90% 80%, #e0e8f0 1px, transparent 1px);
  background-size: 10% 20%;
  animation: ht-twinkle 4s ease-in-out infinite alternate;
}
@keyframes ht-ground { 0% { transform:translateY(0) } 50% { transform:translateY(-1px) } 100% { transform:translateY(0) } }
@keyframes ht-camel { 0%,100% { transform:translateX(0) rotate(-1deg) } 50% { transform:translateX(2px) rotate(1deg) } }
@keyframes ht-sleep { 0%,100% { transform:scaleY(1) } 50% { transform:scaleY(1.02) } }
@keyframes ht-creep { 0% { transform:translateX(0) translateY(0) } 20% { transform:translateX(8px) translateY(-1px) } 40% { transform:translateX(16px) translateY(0) } 60% { transform:translateX(24px) translateY(-1px) } 80% { transform:translateX(32px) translateY(0) } 100% { transform:translateX(40px) translateY(1px) } }
@keyframes ht-moon { 0% { transform:translateX(0) } 100% { transform:translateX(-10px) } }
@keyframes ht-beam { 0% { opacity:0.3 } 50% { opacity:0.6 } 100% { opacity:0.3 } }
@keyframes ht-twinkle { 0% { opacity:0.5 } 50% { opacity:1 } 100% { opacity:0.6 } }

/* hamet-story-rescue – tense moonlit */
.scn-hamet-story-rescue {
  background: 
    linear-gradient(180deg, #0a0a2a 0%, #1a1a3e 50%, #2a2a4e 80%, #0a0a1a 100%),
    radial-gradient(ellipse at 60% 30%, #b0c8d8 0%, transparent 40%);
}
.scn-hamet-story-rescue .temple-arch {
  position:absolute; top:5%; left:15%; width:70%; height:70%;
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  border: 3px solid rgba(160,180,200,0.3);
  box-shadow: inset 0 -10px 30px rgba(0,0,0,0.5);
  background: linear-gradient(180deg, #2a3a4a 0%, #0a1a2a 100%);
  animation: hr-arch 10s ease-in-out infinite alternate;
}
.scn-hamet-story-rescue .floor {
  position:absolute; bottom:0; left:0; right:0; height:20%;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 30% 30% 0 0 / 50% 50% 0 0;
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.6);
}
.scn-hamet-story-rescue .moonbeam {
  position:absolute; top:10%; left:50%; width:6px; height:70%;
  background: linear-gradient(180deg, rgba(192,208,224,0.5) 0%, rgba(192,208,224,0.1) 100%);
  transform: skewX(-5deg);
  transform-origin: top center;
  animation: hr-beam 4s ease-in-out infinite alternate;
}
.scn-hamet-story-rescue .hamet {
  position:absolute; bottom:20%; left:35%; width:16px; height:28px;
  background: #1a1a2a;
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: hr-spring 1.5s ease-in-out infinite;
}
.scn-hamet-story-rescue .tartar {
  position:absolute; bottom:22%; left:48%; width:18px; height:30px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  animation: hr-lunge 2s ease-in-out infinite alternate;
}
.scn-hamet-story-rescue .poignard {
  position:absolute; bottom:30%; left:52%; width:4px; height:12px;
  background: linear-gradient(180deg, #c0d0e0 0%, #e0e8f0 100%);
  border-radius: 10% 10% 40% 40%;
  box-shadow: 0 0 8px 2px rgba(192,208,224,0.8), 0 0 16px 4px rgba(192,208,224,0.4);
  animation: hr-glint 1s ease-in-out infinite alternate;
}
.scn-hamet-story-rescue .camel-bell {
  position:absolute; bottom:32%; left:28%; width:8px; height:8px;
  background: radial-gradient(circle, #8a6a4a 0%, #4a2a1a 100%);
  border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(200,180,160,0.3);
  animation: hr-bell 0.5s ease-in-out infinite alternate;
}
.scn-hamet-story-rescue .shadow {
  position:absolute; bottom:18%; left:40%; width:20%; height:4%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 100%);
  animation: hr-shadow 3s ease-in-out infinite alternate;
}
@keyframes hr-arch { 0% { opacity:0.7 } 50% { opacity:0.9 } 100% { opacity:0.7 } }
@keyframes hr-beam { 0% { opacity:0.3; transform:skewX(-5deg) } 50% { opacity:0.7; transform:skewX(0deg) } 100% { opacity:0.3; transform:skewX(-5deg) } }
@keyframes hr-spring { 0% { transform:translateY(0) scale(1) } 30% { transform:translateY(-20px) scale(1.1) } 50% { transform:translateY(-15px) scale(1) } 70% { transform:translateY(-20px) scale(1.05) } 100% { transform:translateY(0) scale(1) } }
@keyframes hr-lunge { 0% { transform:translateX(0) translateY(0) rotate(0) } 100% { transform:translateX(-10px) translateY(2px) rotate(5deg) } }
@keyframes hr-glint { 0% { opacity:0.5; box-shadow: 0 0 4px 1px rgba(192,208,224,0.6); } 100% { opacity:1; box-shadow: 0 0 16px 4px rgba(192,208,224,1); } }
@keyframes hr-bell { 0% { transform:rotate(-10deg) } 100% { transform:rotate(10deg) } }
@keyframes hr-shadow { 0% { transform:scaleX(1) } 50% { transform:scaleX(1.1) } 100% { transform:scaleX(1) } }

.scn-aunt-indifferent { background: linear-gradient(180deg, #2a2a1a 0%, #1a1a0a 50%, #0f0f05 100%), radial-gradient(ellipse at 50% 80%, #3a3a2a 0%, transparent 70%); }
.scn-aunt-indifferent .back-wall { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); }
.scn-aunt-indifferent .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); }
.scn-aunt-indifferent .door { position:absolute; left:10%; bottom:20%; width:20%; height:60%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 4% 4% 0 0; box-shadow: inset 0 0 10px #000; }
.scn-aunt-indifferent .bed { position:absolute; right:10%; bottom:20%; width:30%; height:40%; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 10% 10% 0 0; }
.scn-aunt-indifferent .figure-madame { position:absolute; bottom:20%; left:35%; width:16%; height:40%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: ai-figure 6s ease-in-out infinite alternate; }
.scn-aunt-indifferent .candle { position:absolute; top:30%; left:45%; width:2%; height:6%; background: linear-gradient(180deg, #ffd080 0%, #b07030 100%); border-radius: 50% 50% 0 0; box-shadow: 0 0 20px #ffd080; animation: ai-candle 3s ease-in-out infinite alternate; }
.scn-aunt-indifferent .shadow { position:absolute; bottom:20%; left:20%; width:25%; height:30%; background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.5) 0%, transparent 70%); filter: blur(4px); animation: ai-shadow 8s ease-in-out infinite; }
.scn-aunt-indifferent .curtain { position:absolute; top:0; left:0; width:10%; height:100%; background: linear-gradient(90deg, rgba(80,60,40,0.6) 0%, transparent 100%); animation: ai-curtain 15s ease-in-out infinite; }
@keyframes ai-figure { 0% { transform: translateY(0); opacity:0.8; } 50% { transform: translateY(-2px); opacity:1; } 100% { transform: translateY(0); opacity:0.8; } }
@keyframes ai-candle { 0% { opacity:0.7; box-shadow: 0 0 15px #ffd080; } 50% { opacity:1; box-shadow: 0 0 25px #ffa040; } 100% { opacity:0.75; box-shadow: 0 0 18px #ffd080; } }
@keyframes ai-shadow { 0% { transform: scaleX(1); opacity:0.3; } 50% { transform: scaleX(1.2); opacity:0.5; } 100% { transform: scaleX(1); opacity:0.3; } }
@keyframes ai-curtain { 0% { opacity:0.6; } 50% { opacity:0.3; } 100% { opacity:0.6; } }

.scn-track-of-blood { background: linear-gradient(180deg, #1a0a0a 0%, #0a0000 50%, #1a1a1a 100%), radial-gradient(ellipse at 50% 0%, #2a1a1a 0%, transparent 70%); }
.scn-track-of-blood .corridor-wall { position:absolute; inset:0 0 20% 0; background: linear-gradient(90deg, #2a1a1a 0%, #1a0a0a 50%, #2a1a1a 100%); }
.scn-track-of-blood .floor-blood { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%); }
.scn-track-of-blood .blood-trail { position:absolute; bottom:10%; left:0; width:100%; height:2%; background: linear-gradient(90deg, transparent 0%, #4a1a1a 20%, #3a1515 50%, #4a1a1a 80%, transparent 100%); border-radius: 50%; filter: blur(2px); animation: tb-blood 8s ease-in-out infinite; }
.scn-track-of-blood .door-shut { position:absolute; right:10%; bottom:20%; width:15%; height:60%; background: linear-gradient(180deg, #3a2a2a 0%, #2a1a1a 100%); border-radius: 4% 4% 0 0; box-shadow: inset 0 0 15px #000; }
.scn-track-of-blood .figure-emily { position:absolute; bottom:20%; left:20%; width:12%; height:35%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: tb-walk 3s ease-in-out infinite; }
.scn-track-of-blood .figure-annette { position:absolute; bottom:20%; left:35%; width:12%; height:35%; background: linear-gradient(180deg, #1a2a1a 0%, #0a1a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: tb-walk 3s ease-in-out infinite 0.5s; }
.scn-track-of-blood .lantern-flicker { position:absolute; top:30%; left:25%; width:4%; height:8%; background: radial-gradient(circle, #ff8040 0%, #d04020 70%); border-radius: 50%; box-shadow: 0 0 30px 10px #d04020; animation: tb-lantern 2s ease-in-out infinite alternate; }
.scn-track-of-blood .vignette { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 50%, transparent 0%, rgba(0,0,0,0.8) 100%); animation: tb-vignette 5s ease-in-out infinite alternate; }
@keyframes tb-blood { 0% { opacity:0.7; transform: scaleY(1); } 50% { opacity:1; transform: scaleY(2); } 100% { opacity:0.7; transform: scaleY(1); } }
@keyframes tb-walk { 0% { transform: translateX(0) translateY(0); } 25% { transform: translateX(5px) translateY(-2px); } 50% { transform: translateX(10px) translateY(0); } 75% { transform: translateX(15px) translateY(-2px); } 100% { transform: translateX(20px) translateY(0); } }
@keyframes tb-lantern { 0% { opacity:0.6; box-shadow: 0 0 15px 5px #d04020; } 50% { opacity:1; box-shadow: 0 0 40px 15px #ff8040; } 100% { opacity:0.7; box-shadow: 0 0 20px 8px #d04020; } }
@keyframes tb-vignette { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }

.scn-exposition-montoni-motives { background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 50%, #1a0a00 100%), radial-gradient(ellipse at 50% 100%, #4a3a2a 0%, transparent 70%); }
.scn-exposition-montoni-motives .study-wall { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); }
.scn-exposition-montoni-motives .desk { position:absolute; bottom:25%; left:15%; width:40%; height:30%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 2% 2% 0 0; box-shadow: 0 -4px 10px rgba(0,0,0,0.5); }
.scn-exposition-montoni-motives .chair { position:absolute; bottom:25%; right:20%; width:15%; height:40%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%; }
.scn-exposition-montoni-motives .papers { position:absolute; bottom:35%; left:20%; width:10%; height:5%; background: #f0e0c0; border-radius: 2px; box-shadow: 2px 2px 4px rgba(0,0,0,0.3); animation: em-papers 12s ease-in-out infinite; }
.scn-exposition-montoni-motives .candle-desk { position:absolute; bottom:42%; left:30%; width:3%; height:10%; background: linear-gradient(180deg, #ffd080 0%, #b07030 100%); border-radius: 50% 50% 0 0; box-shadow: 0 0 25px #ffd080; animation: em-candle 4s ease-in-out infinite alternate; }
.scn-exposition-montoni-motives .curtain-study { position:absolute; top:0; left:0; width:12%; height:100%; background: linear-gradient(90deg, rgba(60,40,20,0.7) 0%, transparent 100%); animation: em-curtain 20s ease-in-out infinite; }
.scn-exposition-montoni-motives .figure-silhouette { position:absolute; bottom:25%; right:10%; width:10%; height:35%; background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: em-figure 7s ease-in-out infinite alternate; }
@keyframes em-papers { 0% { transform: translateY(0) rotate(0deg); opacity:0.8; } 50% { transform: translateY(-2px) rotate(2deg); opacity:1; } 100% { transform: translateY(0) rotate(0deg); opacity:0.8; } }
@keyframes em-candle { 0% { box-shadow: 0 0 15px #ffd080; opacity:0.8; } 50% { box-shadow: 0 0 30px #ffa040; opacity:1; } 100% { box-shadow: 0 0 20px #ffd080; opacity:0.85; } }
@keyframes em-curtain { 0% { opacity:0.5; } 50% { opacity:0.8; } 100% { opacity:0.5; } }
@keyframes em-figure { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-3px) scale(1.02); } 100% { transform: translateY(0) scale(1); } }

.scn-morano-follows { background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 50%, #2a2a3a 100%), radial-gradient(ellipse at 50% 0%, #3a3a4a 0%, transparent 70%); }
.scn-morano-follows .hall-wall { position:absolute; inset:0 0 15% 0; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); }
.scn-morano-follows .floor-hall { position:absolute; bottom:0; left:0; right:0; height:15%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); }
.scn-morano-follows .staircase { position:absolute; left:0; bottom:15%; width:30%; height:60%; background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%); clip-path: polygon(0 0, 100% 0, 80% 100%, 0% 100%); }
.scn-morano-follows .door-main { position:absolute; right:10%; bottom:15%; width:20%; height:70%; background: linear-gradient(180deg, #4a4a5a 0%, #2a2a3a 100%); border-radius: 10% 10% 0 0; box-shadow: inset 0 0 15px #000; }
.scn-morano-follows .figure-old-woman { position:absolute; bottom:15%; left:40%; width:12%; height:35%; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: mf-figure 5s ease-in-out infinite alternate; }
.scn-morano-follows .figure-count { position:absolute; bottom:15%; right:35%; width:14%; height:40%; background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: mf-figure 5s ease-in-out infinite alternate 0.8s; }
.scn-morano-follows .torch { position:absolute; top:30%; left:20%; width:3%; height:8%; background: radial-gradient(circle, #ffd080 0%, #b07030 70%); border-radius: 50%; box-shadow: 0 0 30px 10px #ffd080; animation: mf-torch 3s ease-in-out infinite alternate; }
.scn-morano-follows .shadow-hall { position:absolute; bottom:15%; left:30%; width:40%; height:20%; background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.6) 0%, transparent 100%); animation: mf-shadow 10s ease-in-out infinite; }
.scn-morano-follows .dust { position:absolute; top:50%; left:30%; width:8px; height:8px; background: rgba(255,255,255,0.1); border-radius: 50%; filter: blur(2px); animation: mf-dust 30s linear infinite; }
@keyframes mf-figure { 0% { transform: translateY(0) scale(1); opacity:0.8; } 50% { transform: translateY(-3px) scale(1.03); opacity:1; } 100% { transform: translateY(0) scale(1); opacity:0.8; } }
@keyframes mf-torch { 0% { opacity:0.6; box-shadow: 0 0 15px 5px #ffd080; } 50% { opacity:1; box-shadow: 0 0 40px 15px #ffa040; } 100% { opacity:0.7; box-shadow: 0 0 20px 8px #ffd080; } }
@keyframes mf-shadow { 0% { opacity:0.3; transform: scaleX(1); } 50% { opacity:0.6; transform: scaleX(1.3); } 100% { opacity:0.3; transform: scaleX(1); } }
@keyframes mf-dust { 0% { transform: translate(0, 0) scale(1); opacity:0.2; } 25% { transform: translate(20px, -10px) scale(1.2); opacity:0.5; } 50% { transform: translate(40px, 5px) scale(0.8); opacity:0.3; } 75% { transform: translate(60px, -5px) scale(1.1); opacity:0.4; } 100% { transform: translate(80px, 0) scale(1); opacity:0.2; } }

.scn-hope-rekindled{
  background: linear-gradient(180deg,#2E1F1A 0%,#3C291F 45%,#4A3525 100%),radial-gradient(ellipse 60% 40% at 50% 70%,rgba(200,160,100,.15) 0%,transparent 70%);
  position:relative;overflow:hidden;
}
.scn-hope-rekindled .wall{position:absolute;inset:0;background:linear-gradient(135deg,rgba(46,31,26,.8) 0%,rgba(60,41,31,.95) 100%);}
.scn-hope-rekindled .wind{position:absolute;top:8%;left:50%;width:32%;height:28%;transform:translateX(-50%);background:linear-gradient(180deg,rgba(180,200,230,.3) 0%,rgba(100,140,180,.15) 100%);border-radius:4% 4% 2% 2%;box-shadow:inset 0 0 0 3px rgba(120,100,80,.6);animation:hr-wind 14s ease-in-out infinite alternate;}
.scn-hope-rekindled .bar{position:absolute;top:8%;left:50%;width:32%;height:28%;transform:translateX(-50%);background:repeating-linear-gradient(90deg,transparent 0% 8%,rgba(60,50,40,.6) 8% 12%,transparent 12% 20%,rgba(60,50,40,.6) 20% 24%,transparent 24% 32%);animation:hr-bar 16s ease-in-out infinite alternate;}
.scn-hope-rekindled .candle{position:absolute;bottom:28%;left:24%;width:3%;height:8%;background:linear-gradient(180deg,#f0d8a0 0%,#b89860 40%,#7a5a30 100%);border-radius:20% 20% 8% 8%;transform-origin:bottom center;animation:hr-candle 2.8s ease-in-out infinite;}
.scn-hope-rekindled .glow{position:absolute;bottom:28%;left:24%;width:14%;height:20%;transform:translate(-50%,50%);background:radial-gradient(ellipse,rgba(240,200,140,.45) 0%,rgba(200,160,100,.25) 40%,transparent 80%);border-radius:50%;animation:hr-glow 3.2s ease-in-out infinite alternate;}
.scn-hope-rekindled .fig-sit{position:absolute;bottom:24%;left:34%;width:10%;height:20%;background:linear-gradient(180deg,#2a1e1c 0%,#1a1210 50%,#0e0a08 100%);border-radius:50% 50% 40% 40%/50% 50% 30% 30%;transform-origin:bottom center;animation:hr-sit 5s ease-in-out infinite;}
.scn-hope-rekindled .fig-std{position:absolute;bottom:22%;right:22%;width:8%;height:28%;background:linear-gradient(180deg,#302220 0%,#1c1412 60%,#0e0a08 100%);border-radius:50% 50% 35% 35%/60% 60% 30% 30%;transform-origin:bottom center;animation:hr-std 6s ease-in-out infinite;}
.scn-hope-rekindled .mist{position:absolute;inset:0;background:radial-gradient(ellipse at 50% 60%,rgba(200,180,160,.08) 0%,transparent 70%);animation:hr-mist 30s ease-in-out infinite;}
@keyframes hr-wind{0%{opacity:.5}50%{opacity:.9}100%{opacity:.6}}
@keyframes hr-bar{0%{opacity:.3}50%{opacity:.7}100%{opacity:.4}}
@keyframes hr-candle{0%{transform:scaleY(1)rotate(-2deg)}30%{transform:scaleY(1.04)rotate(1deg)}60%{transform:scaleY(.96)rotate(-1deg)}100%{transform:scaleY(1)rotate(2deg)}}
@keyframes hr-glow{0%{opacity:.4;transform:translate(-50%,50%)scale(.9)}50%{opacity:.8;transform:translate(-50%,50%)scale(1.15)}100%{opacity:.5;transform:translate(-50%,50%)scale(.95)}}
@keyframes hr-sit{0%{transform:translateY(0)rotate(-1deg)}50%{transform:translateY(-2px)rotate(1deg)}100%{transform:translateY(0)rotate(-1deg)}}
@keyframes hr-std{0%{transform:translateY(0)rotate(.5deg)}50%{transform:translateY(-3px)rotate(-.5deg)}100%{transform:translateY(0)rotate(.5deg)}}
@keyframes hr-mist{0%{opacity:.3;transform:scale(1)}50%{opacity:.6;transform:scale(1.08)}100%{opacity:.3;transform:scale(1)}}

.scn-week-of-waiting{
  background: linear-gradient(180deg,#f5e8d0 0%,#e8d4b0 30%,#dcc09a 60%,#c8a878 100%),radial-gradient(ellipse 70% 60% at 60% 20%,rgba(255,240,200,.6) 0%,transparent 70%);
  position:relative;overflow:hidden;
}
.scn-week-of-waiting .wall{position:absolute;inset:0;background:linear-gradient(180deg,rgba(245,232,208,.6) 0%,rgba(220,192,154,.8) 100%);}
.scn-week-of-waiting .wind{position:absolute;top:4%;right:6%;width:40%;height:36%;background:linear-gradient(180deg,rgba(200,230,255,.5) 0%,rgba(160,200,240,.2) 100%);border-radius:4% 4% 2% 2%;box-shadow:inset 0 0 0 4px rgba(180,160,130,.5);animation:ww-light 18s ease-in-out infinite alternate;}
.scn-week-of-waiting .lac{position:absolute;top:4%;right:6%;width:40%;height:36%;background:repeating-linear-gradient(180deg,transparent 0% 14%,rgba(200,180,150,.3) 14% 18%,transparent 18% 32%,rgba(200,180,150,.2) 32% 36%,transparent 36% 100%);border-radius:4% 4% 2% 2%;animation:ww-lac 25s ease-in-out infinite;}
.scn-week-of-waiting .beam{position:absolute;top:2%;right:10%;width:20%;height:60%;transform:skewX(-8deg);background:linear-gradient(180deg,rgba(255,240,200,.35) 0%,rgba(255,220,160,.15) 50%,transparent 100%);border-radius:2%;animation:ww-beam 14s ease-in-out infinite alternate;}
.scn-week-of-waiting .bed{position:absolute;bottom:18%;left:8%;width:44%;height:24%;background:linear-gradient(180deg,#b8a080 0%,#a08870 60%,#8a7058 100%);border-radius:0 20% 20% 0/0 40% 40% 0;box-shadow:0 -4px 12px rgba(0,0,0,.2);animation:ww-bed 20s ease-in-out infinite;}
.scn-week-of-waiting .pillow{position:absolute;bottom:36%;left:16%;width:14%;height:10%;background:linear-gradient(180deg,#f0e4d0 0%,#e0d0b8 100%);border-radius:50% 50% 40% 40%;box-shadow:0 2px 6px rgba(0,0,0,.15);animation:ww-pillow 8s ease-in-out infinite;}
.scn-week-of-waiting .rec{position:absolute;bottom:26%;left:18%;width:10%;height:18%;background:linear-gradient(180deg,#4a3830 0%,#2a1e18 60%,#1a1210 100%);border-radius:50% 50% 35% 35%/55% 55% 25% 25%;transform-origin:bottom center;animation:ww-rec 10s ease-in-out infinite;}
.scn-week-of-waiting .aur{position:absolute;inset:0;background:radial-gradient(ellipse 50% 70% at 60% 10%,rgba(255,230,180,.15) 0%,transparent 70%);animation:ww-aur 30s ease-in-out infinite;}
@keyframes ww-light{0%{opacity:.6}50%{opacity:1}100%{opacity:.7}}
@keyframes ww-lac{0%{opacity:.4;transform:translateX(0)}50%{opacity:.7;transform:translateX(2px)}100%{opacity:.4;transform:translateX(0)}}
@keyframes ww-beam{0%{opacity:.3;transform:skewX(-8deg)translateX(0)}50%{opacity:.6;transform:skewX(-6deg)translateX(4px)}100%{opacity:.3;transform:skewX(-8deg)translateX(0)}}
@keyframes ww-bed{0%{transform:translateY(0)}50%{transform:translateY(-1px)}100%{transform:translateY(0)}}
@keyframes ww-pillow{0%{transform:translateY(0)rotate(0)}50%{transform:translateY(-2px)rotate(1deg)}100%{transform:translateY(0)rotate(0)}}
@keyframes ww-rec{0%{transform:translateY(0)rotate(0)}30%{transform:translateY(-2px)rotate(1deg)}70%{transform:translateY(0)rotate(-1deg)}100%{transform:translateY(0)rotate(0)}}
@keyframes ww-aur{0%{opacity:.4;transform:scale(1)}50%{opacity:.7;transform:scale(1.05)}100%{opacity:.4;transform:scale(1)}}

.scn-fears-for-safety{
  background: linear-gradient(180deg,#161216 0%,#1E161E 35%,#2A1E2A 70%,#1A141A 100%),radial-gradient(ellipse 50% 50% at 50% 60%,rgba(60,40,50,.3) 0%,transparent 70%);
  position:relative;overflow:hidden;
}
.scn-fears-for-safety .deep{position:absolute;inset:0;background:linear-gradient(135deg,rgba(22,18,22,.9) 0%,rgba(30,22,30,.7) 70%,rgba(16,12,16,.95) 100%);}
.scn-fears-for-safety .tbl{position:absolute;bottom:18%;left:15%;right:15%;height:8%;background:linear-gradient(180deg,#2a2028 0%,#1a141a 80%,#0e0a0e 100%);border-radius:10% 10% 4% 4%;box-shadow:0 -6px 20px rgba(0,0,0,.6);animation:fs-tbl 24s ease-in-out infinite;}
.scn-fears-for-safety .flame{position:absolute;bottom:32%;left:50%;width:2%;height:6%;transform:translateX(-50%);background:linear-gradient(180deg,#f0d080 0%,#d09040 50%,#803020 100%);border-radius:30% 30% 10% 10%;transform-origin:bottom center;animation:fs-flame .8s ease-in-out infinite alternate;}
.scn-fears-for-safety .flare{position:absolute;bottom:26%;left:50%;width:18%;height:28%;transform:translate(-50%,10%);background:radial-gradient(ellipse,rgba(200,120,60,.4) 0%,rgba(180,80,40,.2) 40%,transparent 70%);border-radius:50%;animation:fs-flare 1.6s ease-in-out infinite alternate;}
.scn-fears-for-safety .fig-a{position:absolute;bottom:20%;left:22%;width:14%;height:26%;background:linear-gradient(180deg,#1e181e 0%,#100c10 80%,#080608 100%);border-radius:50% 50% 40% 40%/45% 45% 20% 20%;transform-origin:bottom right;animation:fs-fa 7s ease-in-out infinite;}
.scn-fears-for-safety .fig-b{position:absolute;bottom:20%;right:22%;width:14%;height:28%;background:linear-gradient(180deg,#221c22 0%,#141014 80%,#080608 100%);border-radius:50% 50% 40% 40%/50% 50% 25% 25%;transform-origin:bottom left;animation:fs-fb 8s ease-in-out infinite;}
.scn-fears-for-safety .hood{position:absolute;top:2%;left:5%;right:5%;height:40%;background:linear-gradient(180deg,rgba(10,8,10,.8) 0%,rgba(20,14,20,.4) 60%,transparent 100%);border-radius:0 0 40% 40%/0 0 50% 50%;animation:fs-hood 20s ease-in-out infinite;}
@keyframes fs-tbl{0%{transform:translateY(0)}50%{transform:translateY(1px)}100%{transform:translateY(0)}}
@keyframes fs-flame{0%{transform:translateX(-50%)scaleY(1)rotate(-3deg)}50%{transform:translateX(-50%)scaleY(1.3)rotate(0)}100%{transform:translateX(-50%)scaleY(.9)rotate(3deg)}}
@keyframes fs-flare{0%{opacity:.5;transform:translate(-50%,10%)scale(.9)}50%{opacity:1;transform:translate(-50%,10%)scale(1.2)}100%{opacity:.6;transform:translate(-50%,10%)scale(1)}}
@keyframes fs-fa{0%{transform:rotate(-2deg)translateY(0)}50%{transform:rotate(3deg)translateY(-2px)}100%{transform:rotate(-2deg)translateY(0)}}
@keyframes fs-fb{0%{transform:rotate(2deg)translateY(0)}50%{transform:rotate(-3deg)translateY(-3px)}100%{transform:rotate(2deg)translateY(0)}}
@keyframes fs-hood{0%{opacity:.7;transform:translateY(0)}50%{opacity:1;transform:translateY(-1px)}100%{opacity:.7;transform:translateY(0)}}

.scn-meeting-arranged{
  background: linear-gradient(180deg,#1E1A18 0%,#2E2824 35%,#3A322C 70%,#2A2420 100%),radial-gradient(ellipse 50% 50% at 50% 70%,rgba(80,60,40,.25) 0%,transparent 70%);
  position:relative;overflow:hidden;
}
.scn-meeting-arranged .back{position:absolute;inset:0;background:linear-gradient(135deg,rgba(30,26,24,.9) 0%,rgba(46,40,36,.7) 50%,rgba(22,18,16,.95) 100%);}
.scn-meeting-arranged .arch{position:absolute;top:2%;left:20%;right:20%;bottom:0;background:radial-gradient(ellipse 80% 30% at 50% 2%,rgba(120,100,80,.5) 0%,transparent 60%),linear-gradient(180deg,rgba(90,76,64,.8) 0%,rgba(70,58,48,.95) 100%);border-radius:50% 50% 0 0/30% 30% 0 0;box-shadow:inset 0 0 0 6px rgba(50,40,32,.6);animation:ma-arch 30s ease-in-out infinite;}
.scn-meeting-arranged .door{position:absolute;top:25%;left:35%;right:35%;bottom:0;background:linear-gradient(180deg,#1a1412 0%,#0e0a08 100%);border-radius:50% 50% 0 0/20% 20% 0 0;box-shadow:inset 0 0 30px rgba(0,0,0,.8);animation:ma-door 40s ease-in-out infinite;}
.scn-meeting-arranged .fig-x{position:absolute;bottom:20%;left:26%;width:10%;height:26%;background:linear-gradient(180deg,#2e2622 0%,#1a1412 70%,#0e0a08 100%);border-radius:55% 50% 40% 45%/60% 55% 25% 30%;transform-origin:bottom left;animation:ma-fx 8s ease-in-out infinite;}
.scn-meeting-arranged .fig-y{position:absolute;bottom:20%;right:28%;width:9%;height:24%;background:linear-gradient(180deg,#322a26 0%,#1e1816 70%,#0e0a08 100%);border-radius:50% 55% 45% 40%/55% 60% 30% 25%;transform-origin:bottom right;animation:ma-fy 9s ease-in-out infinite;}
.scn-meeting-arranged .lamp{position:absolute;bottom:44%;right:20%;width:3%;height:4%;background:radial-gradient(ellipse,#f0d090 0%,#c09050 70%);border-radius:40% 40% 20% 20%;box-shadow:0 0 8px 2px rgba(200,160,80,.4);animation:ma-lamp 4s ease-in-out infinite alternate;}
.scn-meeting-arranged .lampglow{position:absolute;bottom:38%;right:18%;width:12%;height:22%;background:radial-gradient(ellipse,rgba(220,180,100,.25) 0%,rgba(200,160,80,.1) 50%,transparent 80%);border-radius:50%;animation:ma-lampg 4.8s ease-in-out infinite alternate;}
.scn-meeting-arranged .floor{position:absolute;bottom:0;left:0;right:0;height:18%;background:linear-gradient(180deg,rgba(80,68,56,.6) 0%,rgba(50,42,36,.9) 100%);border-radius:0;animation:ma-floor 35s ease-in-out infinite;}
@keyframes ma-arch{0%{opacity:.8}50%{opacity:1}100%{opacity:.85}}
@keyframes ma-door{0%{opacity:.9}50%{opacity:1}100%{opacity:.95}}
@keyframes ma-fx{0%{transform:rotate(-2deg)translateY(0)}40%{transform:rotate(4deg)translateY(-3px)}70%{transform:rotate(0)translateY(-1px)}100%{transform:rotate(-2deg)translateY(0)}}
@keyframes ma-fy{0%{transform:rotate(2deg)translateY(0)}50%{transform:rotate(-3deg)translateY(-2px)}100%{transform:rotate(2deg)translateY(0)}}
@keyframes ma-lamp{0%{transform:rotate(-4deg)}50%{transform:rotate(4deg)}100%{transform:rotate(-2deg)}}
@keyframes ma-lampg{0%{opacity:.4;transform:scale(.9)}50%{opacity:.8;transform:scale(1.15)}100%{opacity:.5;transform:scale(1)}}
@keyframes ma-floor{0%{opacity:.8}50%{opacity:1}100%{opacity:.85}}

.scn-voice-heard { background: linear-gradient(180deg, #1a1410 0%, #2a1e1a 50%, #3a2a22 100%), radial-gradient(ellipse at 50% 0%, #3a2a22 0%, transparent 70%); }
.scn-voice-heard .vh-gallery { position:absolute; inset:0; background: linear-gradient(180deg, #2a1e1a 0%, transparent 40%, #0e0a08 100%); animation: vh-gallery-pulse 8s ease-in-out infinite alternate; }
.scn-voice-heard .vh-floor { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%); border-radius: 20% 20% 0 0 / 10% 10% 0 0; }
.scn-voice-heard .vh-pillar-left { position:absolute; top:10%; left:15%; width:20px; height:60%; background: linear-gradient(90deg, #3a2a22 0%, #2a1e1a 30%, #3a2a22 70%, #1a1410 100%); border-radius:4px; box-shadow: 2px 0 8px rgba(0,0,0,.6); }
.scn-voice-heard .vh-pillar-right { position:absolute; top:10%; right:15%; width:20px; height:60%; background: linear-gradient(270deg, #3a2a22 0%, #2a1e1a 30%, #3a2a22 70%, #1a1410 100%); border-radius:4px; box-shadow: -2px 0 8px rgba(0,0,0,.6); }
.scn-voice-heard .vh-arch { position:absolute; top:8%; left:10%; right:10%; height:15%; background: linear-gradient(180deg, #2a1e1a 0%, transparent 100%); border-radius: 50% 50% 0 0 / 100% 100% 0 0; border: 2px solid #3a2a22; box-shadow: inset 0 0 10px rgba(0,0,0,.5); animation: vh-arch-pulse 6s ease-in-out infinite alternate; }
.scn-voice-heard .vh-figure-distant { position:absolute; bottom:30%; left:50%; width:12px; height:30px; transform:translateX(-50%); background: linear-gradient(180deg, #0e0a08 0%, #1a1410 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: vh-figure-sway 4s ease-in-out infinite; }
.scn-voice-heard .vh-shadow-flicker { position:absolute; inset:0; background: radial-gradient(circle at 50% 60%, rgba(0,0,0,.3) 0%, transparent 60%); animation: vh-shadow-flicker 3s ease-in-out infinite alternate; }
@keyframes vh-gallery-pulse { 0% { background-color: rgba(42,30,26,1); } 50% { background-color: rgba(42,30,26,0.7); } 100% { background-color: rgba(42,30,26,1); } }
@keyframes vh-arch-pulse { 0% { opacity:0.6; transform:scaleY(0.95); } 50% { opacity:1; transform:scaleY(1.02); } 100% { opacity:0.8; transform:scaleY(0.98); } }
@keyframes vh-figure-sway { 0% { transform:translateX(-50%) rotate(-2deg); } 50% { transform:translateX(-50%) translateY(-1px) rotate(2deg); } 100% { transform:translateX(-50%) rotate(-1deg); } }
@keyframes vh-shadow-flicker { 0% { opacity:0.2; } 50% { opacity:0.6; } 100% { opacity:0.3; } }

.scn-annette-locked { background: linear-gradient(180deg, #1a1410 0%, #2a1e1a 50%, #1a1410 100%), radial-gradient(ellipse at 50% 50%, #2a1e1a 0%, transparent 60%); }
.scn-annette-locked .al-door { position:absolute; bottom:15%; left:50%; transform:translateX(-50%); width:120px; height:180px; background: linear-gradient(180deg, #3a2a22 0%, #2a1e1a 100%); border-radius:4px; box-shadow: 0 4px 12px rgba(0,0,0,.7); }
.scn-annette-locked .al-door-frame { position:absolute; bottom:14%; left:50%; transform:translateX(-50%); width:130px; height:190px; border:3px solid #4a3a32; border-radius:6px; box-shadow:inset 0 0 10px rgba(0,0,0,.5); }
.scn-annette-locked .al-door-window { position:absolute; bottom:55%; left:50%; transform:translateX(-50%); width:40px; height:50px; background: #1a1410; border-radius:4px; border:2px solid #4a3a32; box-shadow:inset 0 0 6px rgba(0,0,0,.8); animation: al-window-flicker 2s ease-in-out infinite; }
.scn-annette-locked .al-figure-inside { position:absolute; bottom:52%; left:50%; transform:translateX(-50%); width:20px; height:30px; background: #0e0a08; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: al-inside-move 3s ease-in-out infinite; }
.scn-annette-locked .al-figure-outside { position:absolute; bottom:20%; left:30%; width:16px; height:40px; background: linear-gradient(180deg, #0e0a08 0%, #1a1410 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: al-outside-reach 4s ease-in-out infinite; }
.scn-annette-locked .al-shadow { position:absolute; bottom:0; left:30%; right:30%; height:20px; background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,.5) 0%, transparent 70%); animation: al-shadow-pulse 5s ease-in-out infinite; }
@keyframes al-window-flicker { 0% { box-shadow:inset 0 0 6px rgba(0,0,0,.8); } 50% { box-shadow:inset 0 0 10px rgba(0,0,0,.9); } 100% { box-shadow:inset 0 0 6px rgba(0,0,0,.8); } }
@keyframes al-inside-move { 0% { transform:translateX(-50%) translateY(0); } 50% { transform:translateX(-50%) translateY(-3px); } 100% { transform:translateX(-50%) translateY(0); } }
@keyframes al-outside-reach { 0% { transform:translateX(0) rotate(0); } 50% { transform:translateX(10px) rotate(5deg); } 100% { transform:translateX(0) rotate(0); } }
@keyframes al-shadow-pulse { 0% { opacity:0.4; } 50% { opacity:0.8; } 100% { opacity:0.5; } }

.scn-emily-comforts { background: linear-gradient(180deg, #2a1e1a 0%, #1a1410 50%, #0e0a08 100%), radial-gradient(ellipse at 40% 50%, #4a3a32 0%, transparent 60%); }
.scn-emily-comforts .ec-floor { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%); border-radius: 30% 30% 0 0 / 20% 20% 0 0; }
.scn-emily-comforts .ec-wall { position:absolute; top:0; right:0; width:40%; height:100%; background: linear-gradient(180deg, #2a1e1a 0%, #1a1410 100%); }
.scn-emily-comforts .ec-emily { position:absolute; bottom:20%; left:35%; width:20px; height:50px; background: linear-gradient(180deg, #0e0a08 0%, #1a1410 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(5deg); animation: ec-emily-breathe 4s ease-in-out infinite; }
.scn-emily-comforts .ec-annette { position:absolute; bottom:18%; left:45%; width:18px; height:40px; background: linear-gradient(180deg, #1a1410 0%, #0e0a08 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-3deg) scale(0.9); animation: ec-annette-sob 3s ease-in-out infinite; }
.scn-emily-comforts .ec-arm { position:absolute; bottom:30%; left:38%; width:12px; height:25px; background: #1a1410; border-radius: 50% 50% 40% 40% / 80% 80% 20% 20%; transform: rotate(-20deg); animation: ec-arm-move 5s ease-in-out infinite; }
.scn-emily-comforts .ec-candle { position:absolute; bottom:40%; left:25%; width:8px; height:18px; background: linear-gradient(180deg, #f0c068 0%, #b08040 100%); border-radius: 2px; box-shadow: 0 0 10px 2px rgba(240,192,104,.6); }
.scn-emily-comforts .ec-lightglow { position:absolute; bottom:35%; left:20%; width:80px; height:80px; background: radial-gradient(circle, rgba(240,192,104,.2) 0%, transparent 70%); animation: ec-glow-flicker 2s ease-in-out infinite alternate; }
@keyframes ec-emily-breathe { 0% { transform:rotate(5deg) scaleY(1); } 50% { transform:rotate(5deg) scaleY(1.02); } 100% { transform:rotate(5deg) scaleY(1); } }
@keyframes ec-annette-sob { 0% { transform:rotate(-3deg) scale(0.9) translateY(0); } 50% { transform:rotate(-3deg) scale(0.88) translateY(-2px); } 100% { transform:rotate(-3deg) scale(0.9) translateY(0); } }
@keyframes ec-arm-move { 0% { transform:rotate(-20deg) translateY(0); } 50% { transform:rotate(-15deg) translateY(-2px); } 100% { transform:rotate(-20deg) translateY(0); } }
@keyframes ec-glow-flicker { 0% { opacity:0.3; transform:scale(0.95); } 50% { opacity:0.7; transform:scale(1.1); } 100% { opacity:0.4; transform:scale(1); } }

.scn-door-to-rampart { background: linear-gradient(180deg, #0a0a1a 0%, #1a1a3e 40%, #2a2a4e 100%), radial-gradient(ellipse at 80% 20%, #4a6a8a 0%, transparent 70%); }
.scn-door-to-rampart .dr-sky { position:absolute; top:0; left:0; right:0; height:60%; background: linear-gradient(180deg, #0a0a1a 0%, #1a1a3e 100%); }
.scn-door-to-rampart .dr-moon { position:absolute; top:10%; right:20%; width:40px; height:40px; background: radial-gradient(circle at 30% 30%, #e0e8f0 0%, #a0b0c0 100%); border-radius:50%; box-shadow: 0 0 30px 10px rgba(160,176,192,.3); animation: dr-moon-glow 6s ease-in-out infinite alternate; }
.scn-door-to-rampart .dr-moonbeam { position:absolute; top:10%; right:20%; width:200px; height:300px; background: linear-gradient(135deg, rgba(160,176,192,.2) 0%, transparent 80%); transform-origin: top left; animation: dr-beam-sweep 15s ease-in-out infinite alternate; }
.scn-door-to-rampart .dr-doorway { position:absolute; bottom:10%; left:40%; width:80px; height:150px; background: #0a0a1a; border-radius: 40% 40% 0 0 / 50% 50% 0 0; box-shadow: inset 0 0 20px rgba(0,0,0,.8); border: 3px solid #2a2a4e; }
.scn-door-to-rampart .dr-stones { position:absolute; bottom:10%; left:30%; right:30%; height:70%; background: repeating-linear-gradient(45deg, #1a1a3e 0px, #1a1a3e 4px, #2a2a4e 4px, #2a2a4e 8px); border-radius: 10px; opacity:0.3; }
.scn-door-to-rampart .dr-rampart { position:absolute; bottom:65%; left:0; right:0; height:15%; background: linear-gradient(180deg, #2a2a4e 0%, #1a1a3e 100%); border-radius: 0 0 10% 10% / 0 0 50% 50%; box-shadow: 0 -2px 10px rgba(0,0,0,.5); animation: dr-rampart-pulse 7s ease-in-out infinite; }
.scn-door-to-rampart .dr-figure { position:absolute; bottom:12%; left:44%; width:14px; height:35px; background: linear-gradient(180deg, #0a0a1a 0%, #1a1a3e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(2deg); animation: dr-figure-turn 8s ease-in-out infinite; }
@keyframes dr-moon-glow { 0% { box-shadow: 0 0 30px 10px rgba(160,176,192,.3); } 50% { box-shadow: 0 0 40px 15px rgba(160,176,192,.5); } 100% { box-shadow: 0 0 30px 10px rgba(160,176,192,.3); } }
@keyframes dr-beam-sweep { 0% { transform:rotate(0deg) scaleX(1); } 50% { transform:rotate(5deg) scaleX(1.1); } 100% { transform:rotate(-5deg) scaleX(0.9); } }
@keyframes dr-rampart-pulse { 0% { box-shadow: 0 -2px 10px rgba(0,0,0,.5); } 50% { box-shadow: 0 -2px 15px rgba(0,0,0,.7); } 100% { box-shadow: 0 -2px 10px rgba(0,0,0,.5); } }
@keyframes dr-figure-turn { 0% { transform:rotate(2deg) scaleX(1); } 50% { transform:rotate(-2deg) scaleX(0.95); } 100% { transform:rotate(2deg) scaleX(1); } }

.scn-strangers-approach { background: linear-gradient(180deg, #f0d9b5 0%, #c9a96e 40%, #8b6f4c 100%), radial-gradient(ellipse at 60% 20%, #ffe6c0 0%, transparent 60%); }
.scn-strangers-approach .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #87ceeb 0%, #f0d9b5 100%); }
.scn-strangers-approach .wall { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #b8a58a 0%, #8b7355 100%); border-top: 4px solid #6b5b3e; }
.scn-strangers-approach .gate { position:absolute; bottom:20%; left:40%; width:20%; height:40%; background: linear-gradient(180deg, #4a3c2a 0%, #2b2217 100%); border-radius: 4px; box-shadow: inset 0 0 10px #000; }
.scn-strangers-approach .figure { position:absolute; bottom:30%; left:20%; width:30px; height:50px; background: radial-gradient(ellipse at 30% 20%, #4a3c2a 0%, #2b2217 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sap-figure 4s ease-in-out infinite alternate; }
.scn-strangers-approach .veil { position:absolute; bottom:35%; left:18%; width:40px; height:60px; background: linear-gradient(180deg, rgba(255,255,255,0.4) 0%, rgba(255,255,255,0.1) 100%); border-radius: 50% 50% 30% 30% / 70% 70% 40% 40%; filter: blur(2px); animation: sap-veil 3s ease-in-out infinite alternate; }
.scn-strangers-approach .stranger-1 { position:absolute; bottom:30%; left:65%; width:25px; height:45px; background: #3a2a1a; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: sap-stranger1 6s linear infinite; }
.scn-strangers-approach .stranger-2 { position:absolute; bottom:30%; left:80%; width:25px; height:45px; background: #3a2a1a; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: sap-stranger2 6s linear infinite; animation-delay:0.5s; }
.scn-strangers-approach .shadow { position:absolute; bottom:0; left:0; right:0; height:20%; background: rgba(0,0,0,0.2); animation: sap-shadow 4s ease-in-out infinite alternate; }
@keyframes sap-figure { 0% { transform: translateY(0) rotate(0deg); opacity:0.9 } 50% { transform: translateY(-2px) rotate(1deg); opacity:1 } 100% { transform: translateY(0) rotate(-1deg); opacity:0.85 } }
@keyframes sap-veil { 0% { transform: translateX(0) scale(1); opacity:0.4 } 50% { transform: translateX(3px) scale(1.03); opacity:0.5 } 100% { transform: translateX(-2px) scale(0.98); opacity:0.35 } }
@keyframes sap-stranger1 { 0% { transform: translateX(0) scale(1) } 30% { transform: translateX(10px) scale(1.02) } 60% { transform: translateX(5px) scale(0.98) } 100% { transform: translateX(-15px) scale(1) } }
@keyframes sap-stranger2 { 0% { transform: translateX(0) } 30% { transform: translateX(8px) } 60% { transform: translateX(3px) } 100% { transform: translateX(-12px) } }
@keyframes sap-shadow { 0% { transform: scaleX(1); opacity:0.2 } 50% { transform: scaleX(1.2); opacity:0.3 } 100% { transform: scaleX(0.9); opacity:0.15 } }

.scn-encounter-on-rampart { background: linear-gradient(180deg, #b0c4de 0%, #f0e68c 50%, #4682b4 100%), radial-gradient(ellipse at 50% 30%, #fff8dc 0%, transparent 70%); }
.scn-encounter-on-rampart .sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #87ceeb 0%, #b0c4de 100%); }
.scn-encounter-on-rampart .rampart { position:absolute; bottom:0; left:0; right:0; height:60%; background: linear-gradient(180deg, #a0522d 0%, #6b3a2a 100%); border-top: 5px solid #4a2a1a; }
.scn-encounter-on-rampart .battlement { position:absolute; bottom:40%; left:0; right:0; height:20%; background: #8b4513; }
.scn-encounter-on-rampart .figure { position:absolute; bottom:40%; left:30%; width:28px; height:48px; background: #2e1a0e; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: eor-figure 3s ease-in-out infinite alternate; }
.scn-encounter-on-rampart .stranger { position:absolute; bottom:40%; left:60%; width:30px; height:50px; background: #1a0f0a; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: eor-stranger 5s ease-in-out infinite; }
.scn-encounter-on-rampart .shadow { position:absolute; bottom:0; left:10%; width:15%; height:30%; background: rgba(0,0,0,0.3); animation: eor-shadow 6s ease-in-out infinite alternate; }
.scn-encounter-on-rampart .cloud { position:absolute; top:10%; left:0; width:80px; height:20px; background: rgba(255,255,255,0.6); border-radius:50%; filter: blur(8px); animation: eor-cloud 20s linear infinite; }
@keyframes eor-figure { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes eor-stranger { 0% { transform: translateX(0) scale(1); } 25% { transform: translateX(5px) scale(1.02); } 50% { transform: translateX(-2px) scale(0.98); } 75% { transform: translateX(3px) scale(1.01); } 100% { transform: translateX(0) scale(1); } }
@keyframes eor-shadow { 0% { transform: scaleX(1); opacity:0.3 } 50% { transform: scaleX(1.3); opacity:0.5 } 100% { transform: scaleX(0.8); opacity:0.2 } }
@keyframes eor-cloud { 0% { transform: translateX(-100px); } 100% { transform: translateX(120vw); } }

.scn-carousing { background: linear-gradient(180deg, #2c1f14 0%, #4a3525 50%, #1a0f0a 100%), radial-gradient(ellipse at 60% 30%, #8b5a2b 0%, transparent 70%); }
.scn-carousing .bg-wall { position:absolute; inset:0; background: linear-gradient(180deg, #3e2a1e 0%, #2c1f14 100%); }
.scn-carousing .table { position:absolute; bottom:20%; left:20%; right:20%; height:15%; background: linear-gradient(180deg, #6b3a2a 0%, #4a2a1a 100%); border-radius: 20px; box-shadow: 0 4px 10px #000; }
.scn-carousing .lamp { position:absolute; top:10%; left:50%; width:20px; height:30px; background: radial-gradient(circle, #ffd700 0%, #b8860b 70%); border-radius: 50% 50% 20% 20%; box-shadow: 0 0 30px 10px #ffd700; animation: car-lamp 2s ease-in-out infinite alternate; }
.scn-carousing .verezzi { position:absolute; bottom:20%; left:30%; width:30px; height:55px; background: #3a2a1a; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: car-verezzi 1.5s ease-in-out infinite; }
.scn-carousing .montoni { position:absolute; bottom:20%; left:55%; width:35px; height:50px; background: #2a1a0e; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: car-montoni 4s ease-in-out infinite alternate; }
.scn-carousing .companion { position:absolute; bottom:20%; left:45%; width:25px; height:45px; background: #1a0f0a; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: car-companion 3s ease-in-out infinite; animation-delay: 1s; }
.scn-carousing .shadow { position:absolute; bottom:0; left:20%; width:60%; height:10%; background: rgba(0,0,0,0.4); filter: blur(4px); animation: car-shadow 3s ease-in-out infinite alternate; }
@keyframes car-lamp { 0% { transform: scale(1) rotate(-3deg); opacity:0.8 } 50% { transform: scale(1.05) rotate(2deg); opacity:1 } 100% { transform: scale(0.95) rotate(-1deg); opacity:0.7 } }
@keyframes car-verezzi { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 25% { transform: translateX(3px) translateY(-2px) rotate(3deg); } 50% { transform: translateX(-2px) translateY(0) rotate(-1deg); } 75% { transform: translateX(2px) translateY(-1px) rotate(2deg); } 100% { transform: translateX(0) translateY(0) rotate(0); } }
@keyframes car-montoni { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-1px) scale(0.98); } 100% { transform: translateY(0) scale(1); } }
@keyframes car-companion { 0% { transform: translateX(0) scale(1); } 30% { transform: translateX(2px) scale(1.02); } 60% { transform: translateX(-1px) scale(0.98); } 100% { transform: translateX(0) scale(1); } }
@keyframes car-shadow { 0% { transform: scaleX(1); opacity:0.4 } 50% { transform: scaleX(1.2); opacity:0.6 } 100% { transform: scaleX(0.9); opacity:0.3 } }

.scn-verezzi-reveals-hints { background: linear-gradient(180deg, #1c1411 0%, #2c201a 50%, #0e0906 100%), radial-gradient(ellipse at 40% 40%, #5a3a2a 0%, transparent 70%); }
.scn-verezzi-reveals-hints .bg-room { position:absolute; inset:0; background: linear-gradient(180deg, #2c201a 0%, #1c1411 100%); }
.scn-verezzi-reveals-hints .chair { position:absolute; bottom:20%; left:50%; width:40px; height:50px; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius: 10px 10px 5px 5px; box-shadow: inset 0 0 10px #000; }
.scn-verezzi-reveals-hints .montoni { position:absolute; bottom:20%; left:50%; width:35px; height:45px; background: #2a1a0e; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: 50% 100%; animation: vrh-montoni 6s ease-in-out infinite alternate; }
.scn-verezzi-reveals-hints .verezzi { position:absolute; bottom:20%; left:35%; width:30px; height:55px; background: #3a2a1a; border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: vrh-verezzi 2s ease-in-out infinite; }
.scn-verezzi-reveals-hints .lamp { position:absolute; top:15%; left:30%; width:15px; height:25px; background: radial-gradient(circle, #ffd700 0%, #b8860b 60%); border-radius: 50% 50% 20% 20%; box-shadow: 0 0 25px 8px #ffd700; animation: vrh-lamp 3s ease-in-out infinite alternate; }
.scn-verezzi-reveals-hints .shadow-wall { position:absolute; bottom:0; right:0; width:30%; height:50%; background: rgba(0,0,0,0.4); filter: blur(8px); animation: vrh-shadow 4s ease-in-out infinite alternate; }
.scn-verezzi-reveals-hints .table { position:absolute; bottom:10%; left:20%; right:20%; height:10%; background: linear-gradient(180deg, #5a3a2a 0%, #3a2a1a 100%); border-radius: 10px; box-shadow: 0 2px 8px #000; }
@keyframes vrh-montoni { 0% { transform: rotate(0deg) translateY(0); } 30% { transform: rotate(-3deg) translateY(-2px); } 60% { transform: rotate(0deg) translateY(0); } 100% { transform: rotate(2deg) translateY(-1px); } }
@keyframes vrh-verezzi { 0% { transform: translateX(0) translateY(0) rotate(-2deg); } 20% { transform: translateX(5px) translateY(-3px) rotate(4deg); } 40% { transform: translateX(-2px) translateY(0) rotate(-1deg); } 60% { transform: translateX(3px) translateY(-1px) rotate(2deg); } 80% { transform: translateX(-1px) translateY(0) rotate(0); } 100% { transform: translateX(0) translateY(0) rotate(-1deg); } }
@keyframes vrh-lamp { 0% { transform: scale(1) rotate(-2deg); opacity:0.8 } 50% { transform: scale(1.08) rotate(3deg); opacity:1 } 100% { transform: scale(0.95) rotate(-1deg); opacity:0.7 } }
@keyframes vrh-shadow { 0% { transform: scaleX(1); opacity:0.4 } 50% { transform: scaleX(1.3); opacity:0.6 } 100% { transform: scaleX(0.9); opacity:0.3 } }

.scn-grove-rest { background: linear-gradient(180deg, #87CEEB 0%, #FFF5E1 100%), radial-gradient(ellipse at 50% 0%, #FFF5E1 0%, transparent 70%); }
.scn-grove-rest .gk-sky { position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #FFF5E1 0%, #87CEEB 100%); animation: gk-sky-breathe 12s ease-in-out infinite alternate; }
.scn-grove-rest .gk-sun { position: absolute; top: 10%; right: 20%; width: 60px; height: 60px; background: radial-gradient(circle, #FFF 0%, #FFD700 40%, transparent 70%); border-radius: 50%; animation: gk-sun-pulse 6s ease-in-out infinite; }
.scn-grove-rest .gk-canopy { position: absolute; inset: 0 0 60% 0; background: linear-gradient(180deg, #3A5F44 0%, #6B8E23 40%, transparent 100%); border-radius: 0 0 50% 50%; animation: gk-canopy-sway 8s ease-in-out infinite; }
.scn-grove-rest .gk-trunk { position: absolute; left: 15%; bottom: 0; width: 40px; height: 60%; background: linear-gradient(90deg, #5C3A21 0%, #8B5A2B 50%, #5C3A21 100%); border-radius: 10px 10px 0 0; }
.scn-grove-rest .gk-shrub { position: absolute; bottom: 20%; left: 40%; width: 120px; height: 60px; background: radial-gradient(ellipse at 50% 100%, #4A7023 0%, #2E4A15 100%); border-radius: 50%; animation: gk-shrub-rustle 10s ease-in-out infinite; }
.scn-grove-rest .gk-ground { position: absolute; bottom: 0; height: 25%; left: 0; right: 0; background: linear-gradient(180deg, #A8937A 0%, #585235 100%); border-radius: 30% 70% 0 0 / 20% 40% 0 0; }
.scn-grove-rest .gk-figure-resting { position: absolute; bottom: 15%; left: 60%; width: 30px; height: 20px; background: #2C1E16; border-radius: 50% 50% 40% 40%; transform: rotate(15deg); animation: gk-rest-breathe 4s ease-in-out infinite; }
@keyframes gk-sky-breathe { 0% { opacity: .8; } 50% { opacity: 1; } 100% { opacity: .85; } }
@keyframes gk-sun-pulse { 0% { transform: scale(.95); opacity: .8; } 50% { transform: scale(1.05); opacity: 1; } 100% { transform: scale(.95); opacity: .8; } }
@keyframes gk-canopy-sway { 0% { transform: translateX(0); } 50% { transform: translateX(5px); } 100% { transform: translateX(0); } }
@keyframes gk-shrub-rustle { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.05); } 100% { transform: scaleX(1); } }
@keyframes gk-rest-breathe { 0% { transform: rotate(15deg) scaleY(1); } 50% { transform: rotate(15deg) scaleY(1.05); } 100% { transform: rotate(15deg) scaleY(1); } }

.scn-sleep-in-shade { background: linear-gradient(135deg, #FFF5E1 0%, #F4D35E 50%, #EE964B 100%), radial-gradient(circle at 80% 20%, #FFF5E1 0%, transparent 50%); }
.scn-sleep-in-shade .sis-bg-sunlight { position: absolute; inset: 0; background: linear-gradient(180deg, #FFF5E1 0%, #F9DC9C 100%); }
.scn-sleep-in-shade .sis-foliage-frame { position: absolute; inset: 0; border: 40px solid #3A5F44; box-shadow: inset 0 0 40px rgba(0,0,0,.3); background: transparent; animation: sis-foliage-breathe 6s ease-in-out infinite; }
.scn-sleep-in-shade .sis-hammock { position: absolute; bottom: 25%; left: 20%; width: 60%; height: 40%; background: linear-gradient(135deg, #EE964B 0%, #F4A261 100%); border-radius: 50% 50% 30% 30% / 100% 100% 60% 60%; transform: rotate(-5deg); animation: sis-hammock-sway 5s ease-in-out infinite; }
.scn-sleep-in-shade .sis-figure-emily { position: absolute; bottom: 30%; left: 30%; width: 40px; height: 60px; background: linear-gradient(180deg, #F4D35E 0%, #D4A373 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(10deg); animation: sis-sleep-breathe 4s ease-in-out infinite; }
.scn-sleep-in-shade .sis-figure-annette { position: absolute; bottom: 28%; right: 25%; width: 35px; height: 50px; background: linear-gradient(180deg, #E9C46A 0%, #B5835A 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform: rotate(-15deg); animation: sis-sit-bounce 3s ease-in-out infinite; }
.scn-sleep-in-shade .sis-figure-ludovico { position: absolute; bottom: 20%; right: 10%; width: 30px; height: 70px; background: linear-gradient(180deg, #2A2B2E 0%, #1A1B1E 100%); border-radius: 30% 30% 20% 20% / 50% 50% 20% 20%; }
.scn-sleep-in-shade .sis-dappled-overlay { position: absolute; inset: 0; background: radial-gradient(circle at 30% 20%, transparent 0%, rgba(255,255,255,.4) 30%, transparent 60%); background-size: 200% 200%; animation: sis-dapple-shift 12s linear infinite; }
.scn-sleep-in-shade .sis-butterfly { position: absolute; top: 15%; left: 10%; width: 12px; height: 8px; background: #E76F51; border-radius: 50% 0 50% 0; animation: sis-butterfly 7s ease-in-out infinite; }
@keyframes sis-foliage-breathe { 0% { border-color: #3A5F44; } 50% { border-color: #4A7F54; } 100% { border-color: #3A5F44; } }
@keyframes sis-hammock-sway { 0% { transform: rotate(-5deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-5deg); } }
@keyframes sis-sleep-breathe { 0% { transform: rotate(10deg) scaleY(1); } 50% { transform: rotate(8deg) scaleY(1.05); } 100% { transform: rotate(10deg) scaleY(1); } }
@keyframes sis-sit-bounce { 0% { transform: rotate(-15deg) translateY(0); } 50% { transform: rotate(-12deg) translateY(-3px); } 100% { transform: rotate(-15deg) translateY(0); } }
@keyframes sis-dapple-shift { 0% { background-position: 0 0; opacity: .5; } 50% { background-position: 20px 10px; opacity: .8; } 100% { background-position: 0 0; opacity: .5; } }
@keyframes sis-butterfly { 0% { transform: translate(0, 0) rotate(0deg); } 25% { transform: translate(50px, -20px) rotate(10deg); } 50% { transform: translate(100px, 10px) rotate(0deg); } 75% { transform: translate(150px, -10px) rotate(-10deg); } 100% { transform: translate(200px, 0) rotate(0deg); } }

.scn-du-pont-tells-story { background: linear-gradient(180deg, #4A4E69 0%, #9A8C98 50%, #C9ADA7 100%), radial-gradient(ellipse at 50% 100%, #C9ADA7 0%, transparent 60%); }
.scn-du-pont-tells-story .dpts-sky { position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #4A4E69 0%, #9A8C98 100%); animation: dpts-sky-glow 10s ease-in-out infinite alternate; }
.scn-du-pont-tells-story .dpts-mountains { position: absolute; bottom: 35%; left: 0; right: 0; height: 30%; background: linear-gradient(180deg, #6C6F89 0%, #4A4E69 100%); border-radius: 60% 40% 0 0 / 80% 60% 0 0; }
.scn-du-pont-tells-story .dpts-ground { position: absolute; bottom: 0; height: 40%; left: 0; right: 0; background: linear-gradient(180deg, #585235 0%, #2E2A24 100%); border-radius: 20% 80% 0 0 / 30% 50% 0 0; }
.scn-du-pont-tells-story .dpts-campfire { position: absolute; bottom: 25%; left: 35%; width: 40px; height: 30px; background: radial-gradient(ellipse at 50% 100%, #F4A261 0%, #E76F51 50%, transparent 70%); border-radius: 50%; animation: dpts-fire 1s ease-in-out infinite alternate; }
.scn-du-pont-tells-story .dpts-fire-glow { position: absolute; bottom: 20%; left: 20%; width: 200px; height: 100px; background: radial-gradient(ellipse at 50% 100%, rgba(244,162,97,.4) 0%, transparent 70%); animation: dpts-glow-pulse 3s ease-in-out infinite; }
.scn-du-pont-tells-story .dpts-smoke-1 { position: absolute; bottom: 50%; left: 38%; width: 30px; height: 60px; background: linear-gradient(180deg, rgba(200,200,200,.6) 0%, transparent 100%); border-radius: 50%; filter: blur(6px); animation: dpts-smoke-rise 6s ease-out infinite; }
.scn-du-pont-tells-story .dpts-smoke-2 { position: absolute; bottom: 45%; left: 42%; width: 20px; height: 40px; background: linear-gradient(180deg, rgba(200,200,200,.5) 0%, transparent 100%); border-radius: 50%; filter: blur(4px); animation: dpts-smoke-rise 8s ease-out infinite 2s; }
.scn-du-pont-tells-story .dpts-figure-dupont { position: absolute; bottom: 20%; left: 50%; width: 40px; height: 80px; background: linear-gradient(180deg, #1A1B25 0%, #0A0B15 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: dpts-gesture 5s ease-in-out infinite; }
.scn-du-pont-tells-story .dpts-figure-emily { position: absolute; bottom: 15%; left: 25%; width: 45px; height: 60px; background: linear-gradient(180deg, #2E2A24 0%, #1A1815 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(5deg); animation: dpts-listen 4s ease-in-out infinite; }
@keyframes dpts-sky-glow { 0% { opacity: .7; } 50% { opacity: 1; } 100% { opacity: .8; } }
@keyframes dpts-fire { 0% { transform: scaleY(1) scaleX(1); } 50% { transform: scaleY(1.2) scaleX(.9); } 100% { transform: scaleY(1) scaleX(1.1); } }
@keyframes dpts-glow-pulse { 0% { opacity: .6; transform: scale(1); } 50% { opacity: 1; transform: scale(1.05); } 100% { opacity: .7; transform: scale(1); } }
@keyframes dpts-smoke-rise { 0% { transform: translateY(0) scale(1); opacity: .7; } 50% { transform: translateY(-30px) scale(1.5); opacity: .4; } 100% { transform: translateY(-60px) scale(2); opacity: 0; } }
@keyframes dpts-gesture { 0% { transform: rotate(0deg) translateX(0); } 25% { transform: rotate(-5deg) translateX(-5px); } 50% { transform: rotate(5deg) translateX(5px); } 75% { transform: rotate(-3deg) translateX(-3px); } 100% { transform: rotate(0deg) translateX(0); } }
@keyframes dpts-listen { 0% { transform: rotate(5deg); } 50% { transform: rotate(2deg) translateY(-2px); } 100% { transform: rotate(5deg); } }

.scn-terrace-walk-revealed { background: linear-gradient(180deg, #1A252C 0%, #2C3E50 50%, #34495E 100%), radial-gradient(ellipse at 50% 100%, #5D6D7E 0%, transparent 60%); }
.scn-terrace-walk-revealed .twr-wall { position: absolute; inset: 0 40% 0 0; background: linear-gradient(180deg, #2C3E50 0%, #1A252C 100%); border-right: 4px solid #5D6D7E; box-shadow: inset -10px 0 20px rgba(0,0,0,.5); }
.scn-terrace-walk-revealed .twr-doorway { position: absolute; left: 25%; top: 10%; width: 40%; height: 80%; background: #1A252C; border-radius: 50% 50% 0 0 / 30% 30% 0 0; box-shadow: inset 0 0 40px rgba(0,0,0,.8); }
.scn-terrace-walk-revealed .twr-terrace-floor { position: absolute; bottom: 0; left: 40%; right: 0; height: 30%; background: repeating-linear-gradient(45deg, #8E9EAB 0px, #8E9EAB 20px, #B4C5D0 20px, #B4C5D0 40px); transform: skewX(-10deg); transform-origin: bottom left; }
.scn-terrace-walk-revealed .twr-columns { position: absolute; left: 60%; bottom: 30%; width: 10px; height: 70%; background: linear-gradient(180deg, #8E9EAB 0%, #5D6D7E 100%); border-radius: 4px; box-shadow: 30px 0 0 0 #5D6D7E, 60px 0 0 0 #8E9EAB; }
.scn-terrace-walk-revealed .twr-evening-sky { position: absolute; right: 10%; top: 5%; width: 80%; height: 60%; background: linear-gradient(180deg, #5D6D7E 0%, #34495E 100%); border-radius: 20% 80% 0 0 / 50% 80% 0 0; animation: twr-dusk 15s ease-in-out infinite alternate; }
.scn-terrace-walk-revealed .twr-figure-dupont { position: absolute; bottom: 20%; left: 30%; width: 35px; height: 70px; background: linear-gradient(180deg, #1A1B25 0%, #0A0B15 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; animation: twr-step-forward 6s ease-in-out infinite; }
.scn-terrace-walk-revealed .twr-figure-emily { position: absolute; bottom: 18%; left: 55%; width: 40px; height: 65px; background: linear-gradient(180deg, #2E2A24 0%, #1A1815 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: rotate(-5deg); animation: twr-turn-head 4s ease-in-out infinite; }
.scn-terrace-walk-revealed .twr-candle-sconce { position: absolute; bottom: 40%; left: 15%; width: 8px; height: 20px; background: #5D6D7E; border-radius: 4px 4px 2px 2px; box-shadow: 0 -10px 20px 4px rgba(255, 214, 128, .6); animation: twr-candle-flicker 2s ease-in-out infinite alternate; }
@keyframes twr-dusk { 0% { opacity: .6; transform: scaleY(1); } 50% { opacity: .8; transform: scaleY(1.05); } 100% { opacity: .7; transform: scaleY(1); } }
@keyframes twr-step-forward { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(10px) rotate(2deg); } 50% { transform: translateX(20px) rotate(0deg); } 75% { transform: translateX(10px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes twr-turn-head { 0% { transform: rotate(-5deg); } 50% { transform: rotate(10deg); } 100% { transform: rotate(-5deg); } }
@keyframes twr-candle-flicker { 0% { box-shadow: 0 -10px 20px 4px rgba(255, 214, 128, .6); opacity: .8; } 50% { box-shadow: 0 -10px 30px 8px rgba(255, 214, 128, 1); opacity: 1; } 100% { box-shadow: 0 -10px 15px 2px rgba(255, 214, 128, .5); opacity: .7; } }

/* Scene: mysterious-chamber-light – dark, dim-interior, light under door */
.scn-mysterious-chamber-light {
  background: linear-gradient(180deg, #0a0a1a 0%, #141428 50%, #0e0e1e 100%),
              radial-gradient(ellipse at 50% 90%, #2a1a0a 0%, transparent 60%);
}
.scn-mysterious-chamber-light .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1f 100%);
  box-shadow: inset 0 4px 8px rgba(0,0,0,.7);
}
.scn-mysterious-chamber-light .wall-left,
.scn-mysterious-chamber-light .wall-right {
  position: absolute; top: 0; height: 85%;
  width: 20%;
  background: linear-gradient(180deg, #12122a 0%, #080818 100%);
}
.scn-mysterious-chamber-light .wall-left {
  left: 0;
  border-right: 2px solid rgba(0,0,0,.4);
}
.scn-mysterious-chamber-light .wall-right {
  right: 0;
  border-left: 2px solid rgba(0,0,0,.4);
}
.scn-mysterious-chamber-light .door {
  position: absolute; bottom: 15%; left: 50%; transform: translateX(-50%);
  width: 80px; height: 120px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 6% 6% 0 0;
  box-shadow: 0 0 0 1px #2a1a0a, inset 0 2px 4px rgba(0,0,0,.5);
}
.scn-mysterious-chamber-light .light-crack {
  position: absolute; bottom: 15%; left: 50%; transform: translateX(-50%) translateY(1px);
  width: 70px; height: 8px;
  background: radial-gradient(ellipse at center, #f0c060 0%, #c08040 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 10px rgba(240,192,96,.6), 0 0 60px 20px rgba(240,192,96,.3);
  animation: mcl-light 2s ease-in-out infinite alternate;
}
.scn-mysterious-chamber-light .figure {
  position: absolute; bottom: 15%; left: 36%; width: 16px; height: 40px;
  background: linear-gradient(180deg, #0e0e1e 0%, #060610 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mcl-figure 5s ease-in-out infinite;
}
.scn-mysterious-chamber-light .dust-a,
.scn-mysterious-chamber-light .dust-b {
  position: absolute; border-radius: 50%;
  background: radial-gradient(circle, rgba(255,220,150,.3) 0%, transparent 100%);
  filter: blur(2px);
  width: 4px; height: 4px;
  animation: mcl-dust 12s linear infinite;
}
.scn-mysterious-chamber-light .dust-a { top: 60%; left: 30%; animation-delay: 0s; }
.scn-mysterious-chamber-light .dust-b { top: 55%; left: 60%; animation-delay: -5s; }

@keyframes mcl-light {
  0% { opacity: .6; box-shadow: 0 0 15px 5px rgba(240,192,96,.4), 0 0 40px 10px rgba(240,192,96,.2); }
  50% { opacity: 1; box-shadow: 0 0 25px 12px rgba(240,192,96,.7), 0 0 70px 25px rgba(240,192,96,.4); }
  100% { opacity: .7; box-shadow: 0 0 18px 6px rgba(240,192,96,.5), 0 0 50px 15px rgba(240,192,96,.25); }
}
@keyframes mcl-figure {
  0% { transform: translateX(0) translateY(0) rotate(-0.5deg); }
  25% { transform: translateX(2px) translateY(-0.5px) rotate(0deg); }
  50% { transform: translateX(4px) translateY(-1px) rotate(0.5deg); }
  75% { transform: translateX(2px) translateY(-0.5px) rotate(0deg); }
  100% { transform: translateX(0) translateY(0) rotate(-0.5deg); }
}
@keyframes mcl-dust {
  0% { transform: translateX(0) translateY(0); opacity: 0; }
  20% { opacity: 0.6; }
  50% { transform: translateX(80px) translateY(-30px); opacity: 0.3; }
  100% { transform: translateX(160px) translateY(-60px); opacity: 0; }
}

/* Scene: voz-dell-eho – dark, dark, whisper close to ear */
.scn-voz-dell-eho {
  background: linear-gradient(180deg, #020208 0%, #08081a 50%, #020208 100%),
              radial-gradient(ellipse at 50% 30%, #0a0a1e 0%, transparent 70%);
}
.scn-voz-dell-eho .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #0a0a14 0%, #020208 100%);
}
.scn-voz-dell-eho .wall {
  position: absolute; inset: 0; bottom: 20%;
  background: linear-gradient(180deg, #0a0a18 0%, #040410 100%);
  border: 1px solid rgba(255,255,255,.03);
}
.scn-voz-dell-eho .figure {
  position: absolute; bottom: 20%; left: 48%; width: 18px; height: 44px;
  background: linear-gradient(180deg, #0e0e1e 0%, #060610 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: vde-figure 6s ease-in-out infinite;
}
.scn-voz-dell-eho .whisper-orb {
  position: absolute; bottom: 55%; left: 55%; width: 24px; height: 24px;
  background: radial-gradient(circle, rgba(140,180,220,.25) 0%, rgba(100,140,180,.1) 50%, transparent 100%);
  border-radius: 50%;
  filter: blur(4px);
  animation: vde-whisper 4s ease-in-out infinite alternate;
}
.scn-voz-dell-eho .dust-a,
.scn-voz-dell-eho .dust-b {
  position: absolute; border-radius: 50%;
  background: radial-gradient(circle, rgba(200,200,220,.15) 0%, transparent 100%);
  filter: blur(2px);
  width: 3px; height: 3px;
  animation: vde-dust 20s linear infinite;
}
.scn-voz-dell-eho .dust-a { top: 40%; left: 20%; animation-delay: 0s; }
.scn-voz-dell-eho .dust-b { top: 50%; left: 70%; animation-delay: -8s; }

@keyframes vde-figure {
  0% { transform: translateX(0) translateY(0) rotate(-0.5deg); }
  40% { transform: translateX(0) translateY(0) rotate(0.2deg); }
  60% { transform: translateX(1px) translateY(-0.5px) rotate(-0.3deg); }
  100% { transform: translateX(0) translateY(0) rotate(-0.5deg); }
}
@keyframes vde-whisper {
  0% { transform: scale(0.8) translate(0,0); opacity: 0; }
  30% { transform: scale(1.2) translate(-4px, -2px); opacity: 0.6; }
  70% { transform: scale(0.9) translate(2px, 1px); opacity: 0.3; }
  100% { transform: scale(0.7) translate(6px, -3px); opacity: 0; }
}
@keyframes vde-dust {
  0% { transform: translateX(0) translateY(0); opacity: 0; }
  20% { opacity: 0.4; }
  60% { transform: translateX(120px) translateY(-20px); opacity: 0.1; }
  100% { transform: translateX(250px) translateY(-40px); opacity: 0; }
}

/* Scene: annette-appears – tense, dim-interior, light bursts as door opens */
.scn-annette-appears {
  background: linear-gradient(180deg, #18182a 0%, #202040 40%, #141430 100%),
              radial-gradient(ellipse at 70% 50%, #2a0a0a 0%, transparent 80%);
}
.scn-annette-appears .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1e 100%);
}
.scn-annette-appears .wall-perspective {
  position: absolute; top: 0; left: 10%; right: 10%; bottom: 15%;
  background: linear-gradient(135deg, #1e1e32 0%, #141428 50%, #0a0a1a 100%);
  border-left: 2px solid rgba(0,0,0,.3);
  border-right: 2px solid rgba(0,0,0,.3);
}
.scn-annette-appears .doorway {
  position: absolute; bottom: 15%; right: 25%; width: 70px; height: 110px;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 6% 6% 0 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,.7);
}
.scn-annette-appears .light-beam {
  position: absolute; bottom: 15%; right: 25%; width: 70px; height: 60px;
  background: radial-gradient(ellipse at 50% 0%, rgba(255,230,160,.6) 0%, transparent 100%);
  border-radius: 0 0 50% 50% / 0 0 100% 100%;
  transform-origin: top center;
  animation: aa-light 1.5s ease-in-out infinite alternate;
}
.scn-annette-appears .figure-emily {
  position: absolute; bottom: 15%; left: 20%; width: 16px; height: 42px;
  background: linear-gradient(180deg, #121224 0%, #0a0a14 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: aa-walk 2s ease-in-out infinite;
}
.scn-annette-appears .figure-anette {
  position: absolute; bottom: 15%; right: 30%; width: 18px; height: 44px;
  background: linear-gradient(180deg, #0e0e1e 0%, #06060e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: aa-stand 3s ease-in-out infinite;
}
.scn-annette-appears .shadow-emily {
  position: absolute; bottom: 15%; left: 20%; width: 30px; height: 8px;
  background: radial-gradient(ellipse, rgba(0,0,0,.6) 0%, transparent 100%);
  border-radius: 50%;
  animation: aa-shadow 2s ease-in-out infinite;
}
.scn-annette-appears .dust-a,
.scn-annette-appears .dust-b {
  position: absolute; border-radius: 50%;
  background: radial-gradient(circle, rgba(255,240,200,.3) 0%, transparent 100%);
  filter: blur(3px);
  width: 5px; height: 5px;
  animation: aa-dust 10s linear infinite;
}
.scn-annette-appears .dust-a { top: 50%; left: 40%; animation-delay: 0s; }
.scn-annette-appears .dust-b { top: 45%; left: 60%; animation-delay: -4s; }

@keyframes aa-light {
  0% { transform: scaleY(0.9) translateX(0); opacity: .5; }
  50% { transform: scaleY(1.2) translateX(-2px); opacity: 1; box-shadow: 0 0 25px 10px rgba(255,230,160,.3); }
  100% { transform: scaleY(1) translateX(2px); opacity: .6; }
}
@keyframes aa-walk {
  0% { transform: translateX(0) translateY(0) rotate(-1deg); }
  25% { transform: translateX(8px) translateY(-2px) rotate(1deg); }
  50% { transform: translateX(16px) translateY(0) rotate(-1deg); }
  75% { transform: translateX(8px) translateY(-1px) rotate(2deg); }
  100% { transform: translateX(0) translateY(0) rotate(-1deg); }
}
@keyframes aa-stand {
  0% { transform: translateY(0); }
  30% { transform: translateY(-1px); }
  60% { transform: translateY(1px); }
  100% { transform: translateY(0); }
}
@keyframes aa-shadow {
  0% { transform: scaleX(1) translateX(0); opacity: .4; }
  50% { transform: scaleX(1.3) translateX(10px); opacity: .6; }
  100% { transform: scaleX(1) translateX(0); opacity: .4; }
}
@keyframes aa-dust {
  0% { transform: translateX(0) translateY(0); opacity: 0; }
  20% { opacity: 0.5; }
  60% { transform: translateX(-60px) translateY(-20px); opacity: 0.2; }
  100% { transform: translateX(-120px) translateY(-40px); opacity: 0; }
}

/* Scene: annette’s-chamber – tense, dim-interior, two women in room with candle */
.scn-annette’s-chamber {
  background: linear-gradient(180deg, #1a1a2c 0%, #242438 50%, #1a1a2c 100%),
              radial-gradient(ellipse at 50% 70%, #2a1a0a 0%, transparent 80%);
}
.scn-annette’s-chamber .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 18%;
  background: linear-gradient(180deg, #2a2018 0%, #1a1212 100%);
  border-top: 2px solid rgba(255,255,255,.05);
}
.scn-annette’s-chamber .wall {
  position: absolute; inset: 0; bottom: 18%;
  background: linear-gradient(180deg, #1e1e30 0%, #141424 100%);
  box-shadow: inset 0 0 60px #0a0a14;
}
.scn-annette’s-chamber .window {
  position: absolute; bottom: 50%; left: 15%; width: 40px; height: 55px;
  background: linear-gradient(180deg, #1a2a3a 0%, #0e1e2e 100%);
  border: 3px solid #2a2a3e;
  border-radius: 4px;
  box-shadow: inset 0 0 8px rgba(255,255,255,.1);
}
.scn-annette’s-chamber .candle {
  position: absolute; bottom: 30%; left: 50%; width: 6px; height: 18px;
  background: linear-gradient(180deg, #f0d080 0%, #c08040 100%);
  border-radius: 2px;
  box-shadow: 0 0 18px 4px rgba(240,208,128,.5), 0 0 40px 12px rgba(240,208,128,.2);
  animation: ac-candle 1.5s ease-in-out infinite alternate;
}
.scn-annette’s-chamber .table {
  position: absolute; bottom: 18%; left: 45%; right: 45%; height: 8px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a12 100%);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,.7);
}
.scn-annette’s-chamber .figure-emily {
  position: absolute; bottom: 18%; left: 25%; width: 16px; height: 44px;
  background: linear-gradient(180deg, #121224 0%, #0a0a14 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ac-walk 2s ease-in-out infinite;
}
.scn-annette’s-chamber .figure-anette {
  position: absolute; bottom: 18%; right: 20%; width: 18px; height: 46px;
  background: linear-gradient(180deg, #0e0e1e 0%, #06060e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ac-stand 3s ease-in-out infinite;
}
.scn-annette’s-chamber .candle-shadow {
  position: absolute; bottom: 18%; left: 45%; width: 80px; height: 100px;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,.5) 0%, transparent 100%);
  transform-origin: bottom center;
  animation: ac-shadow 2s ease-in-out infinite alternate;
}
.scn-annette’s-chamber .dust-a,
.scn-annette’s-chamber .dust-b {
  position: absolute; border-radius: 50%;
  background: radial-gradient(circle, rgba(240,220,180,.3) 0%, transparent 100%);
  filter: blur(3px);
  width: 4px; height: 4px;
  animation: ac-dust 8s linear infinite;
}
.scn-annette’s-chamber .dust-a { top: 40%; left: 50%; animation-delay: 0s; }
.scn-annette’s-chamber .dust-b { top: 35%; left: 45%; animation-delay: -3s; }

@keyframes ac-candle {
  0% { transform: scaleY(1) scaleX(1); opacity: .8; box-shadow: 0 0 18px 4px rgba(240,208,128,.5), 0 0 40px 12px rgba(240,208,128,.2); }
  50% { transform: scaleY(1.1) scaleX(0.9); opacity: 1; box-shadow: 0 0 28px 8px rgba(240,208,128,.7), 0 0 60px 18px rgba(240,208,128,.4); }
  100% { transform: scaleY(0.95) scaleX(1.05); opacity: .85; box-shadow: 0 0 20px 5px rgba(240,208,128,.5), 0 0 45px 14px rgba(240,208,128,.25); }
}
@keyframes ac-walk {
  0% { transform: translateX(0) translateY(0) rotate(-1deg); }
  20% { transform: translateX(6px) translateY(-2px) rotate(1deg); }
  40% { transform: translateX(12px) translateY(-1px) rotate(-0.5deg); }
  60% { transform: translateX(18px) translateY(-3px) rotate(1.5deg); }
  80% { transform: translateX(12px) translateY(-1px) rotate(-1deg); }
  100% { transform: translateX(0) translateY(0) rotate(-1deg); }
}
@keyframes ac-stand {
  0% { transform: translateY(0) rotate(0); }
  25% { transform: translateY(-1px) rotate(0.5deg); }
  50% { transform: translateY(0) rotate(-0.5deg); }
  75% { transform: translateY(-1px) rotate(0.3deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes ac-shadow {
  0% { transform: scaleY(0.8) translateX(0); opacity: .3; }
  50% { transform: scaleY(1.2) translateX(-10px); opacity: .6; }
  100% { transform: scaleY(0.9) translateX(5px); opacity: .4; }
}
@keyframes ac-dust {
  0% { transform: translateX(0) translateY(0); opacity: 0; }
  30% { opacity: 0.4; }
  60% { transform: translateX(40px) translateY(-20px); opacity: 0.1; }
  100% { transform: translateX(80px) translateY(-40px); opacity: 0; }
}

/* voices-revive – calmer, dim-interior, window with moonlight */
.scn-voices-revive {
  position: relative; overflow: hidden; width: 100%; height: 100%;
  background:
    linear-gradient(180deg, #2a1a1a 0%, #4a3020 50%, #1a0a0a 100%),
    radial-gradient(ellipse at 70% 50%, #3a2a1a 0%, transparent 60%);
}
.scn-voices-revive .wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a1a 100%);
  animation: vr-wall 12s ease-in-out infinite alternate;
}
.scn-voices-revive .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #1a0a0a 0%, #2a1a1a 100%);
  animation: vr-floor 12s ease-in-out infinite alternate;
}
.scn-voices-revive .window {
  position: absolute; top: 20%; left: 60%;
  width: 80px; height: 100px;
  border: 4px solid #4a3a2a;
  border-radius: 4px;
  background: radial-gradient(circle, #6a8aaa 0%, #2a4a6a 70%);
  animation: vr-window 8s ease-in-out infinite alternate;
}
.scn-voices-revive .figure {
  position: absolute; bottom: 30%; left: 62%;
  width: 30px; height: 80px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom;
  animation: vr-figure 6s ease-in-out infinite;
}
.scn-voices-revive .candle {
  position: absolute; bottom: 35%; left: 50%;
  width: 8px; height: 30px;
  background: linear-gradient(180deg, #e8c070 0%, #c09040 100%);
  border-radius: 2px;
  animation: vr-candle 3s ease-in-out infinite;
}
.scn-voices-revive .glow {
  position: absolute; bottom: 32%; left: 50%;
  width: 40px; height: 40px;
  transform: translate(-50%, -50%);
  background: radial-gradient(circle, rgba(255,220,150,0.6) 0%, transparent 70%);
  animation: vr-glow 2s ease-in-out infinite alternate;
}
.scn-voices-revive .shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,0.5) 100%);
  animation: vr-shadow 10s ease-in-out infinite;
}
@keyframes vr-wall { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes vr-floor { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes vr-window { 0% { opacity: 0.8; transform: scale(1); } 50% { opacity: 1; transform: scale(1.05); } 100% { opacity: 0.7; transform: scale(0.95); } }
@keyframes vr-figure { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes vr-candle { 0% { transform: scaleY(1); opacity: 0.9; } 50% { transform: scaleY(1.15); opacity: 1; } 100% { transform: scaleY(0.9); opacity: 0.8; } }
@keyframes vr-glow { 0% { transform: translate(-50%, -50%) scale(0.8); opacity: 0.5; } 50% { transform: translate(-50%, -50%) scale(1.2); opacity: 0.8; } 100% { transform: translate(-50%, -50%) scale(0.9); opacity: 0.6; } }
@keyframes vr-shadow { 0% { opacity: 0.3; } 50% { opacity: 0.6; } 100% { opacity: 0.4; } }

/* dinner-table – tense, dim-interior, figures around table */
.scn-dinner-table {
  position: relative; overflow: hidden; width: 100%; height: 100%;
  background:
    linear-gradient(180deg, #3a1a1a 0%, #2a0a0a 50%, #1a0a0a 100%),
    radial-gradient(ellipse at 50% 40%, #4a2a2a 0%, transparent 60%);
}
.scn-dinner-table .table {
  position: absolute; bottom: 20%; left: 10%; right: 10%; height: 20%;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%);
  border-radius: 10px;
  animation: dt-table 4s ease-in-out infinite;
}
.scn-dinner-table .plate {
  position: absolute; bottom: 32%; left: 35%;
  width: 40px; height: 10px;
  background: radial-gradient(ellipse, #6a4a3a 0%, #4a2a1a 100%);
  border-radius: 50%;
  animation: dt-plate 3s ease-in-out infinite alternate;
}
.scn-dinner-table .glass {
  position: absolute; bottom: 32%; right: 45%;
  width: 16px; height: 24px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 4px 4px 10px 10px;
  animation: dt-glass 4s ease-in-out infinite;
}
.scn-dinner-table .candle {
  position: absolute; bottom: 30%; left: 50%;
  width: 8px; height: 30px;
  background: linear-gradient(180deg, #e8c070 0%, #c09040 100%);
  border-radius: 2px;
  animation: dt-candle 2s ease-in-out infinite;
}
.scn-dinner-table .glow {
  position: absolute; bottom: 28%; left: 50%;
  width: 50px; height: 50px;
  transform: translate(-50%, -50%);
  background: radial-gradient(circle, rgba(255,200,100,0.7) 0%, transparent 70%);
  animation: dt-glow 1.5s ease-in-out infinite alternate;
}
.scn-dinner-table .figure-left {
  position: absolute; bottom: 20%; left: 20%;
  width: 40px; height: 80px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom;
  animation: dt-figureL 5s ease-in-out infinite;
}
.scn-dinner-table .figure-right {
  position: absolute; bottom: 20%; right: 20%;
  width: 40px; height: 80px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom;
  animation: dt-figureR 5s ease-in-out infinite -1s;
}
@keyframes dt-table { 0% { transform: translateX(0); } 25% { transform: translateX(1px); } 50% { transform: translateX(-1px); } 75% { transform: translateX(1px); } 100% { transform: translateX(0); } }
@keyframes dt-plate { 0% { transform: rotate(0deg); } 50% { transform: rotate(3deg); } 100% { transform: rotate(-3deg); } }
@keyframes dt-glass { 0% { transform: translateY(0); opacity: 0.9; } 50% { transform: translateY(-2px); opacity: 1; } 100% { transform: translateY(0); opacity: 0.8; } }
@keyframes dt-candle { 0% { transform: scaleY(1); opacity: 0.9; } 50% { transform: scaleY(1.2); opacity: 1; } 100% { transform: scaleY(0.8); opacity: 0.7; } }
@keyframes dt-glow { 0% { transform: translate(-50%, -50%) scale(0.8); opacity: 0.5; } 50% { transform: translate(-50%, -50%) scale(1.3); opacity: 0.9; } 100% { transform: translate(-50%, -50%) scale(0.9); opacity: 0.6; } }
@keyframes dt-figureL { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes dt-figureR { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }

/* montoni-vexed – tense, solitary figure pulsing shadow */
.scn-montoni-vexed {
  position: relative; overflow: hidden; width: 100%; height: 100%;
  background:
    linear-gradient(180deg, #2a0a0a 0%, #1a0000 50%, #0a0000 100%),
    radial-gradient(ellipse at 50% 50%, #3a1a1a 0%, transparent 70%);
}
.scn-montoni-vexed .table {
  position: absolute; bottom: 20%; left: 15%; right: 15%; height: 20%;
  background: linear-gradient(180deg, #3a1a0a 0%, #1a0a00 100%);
  border-radius: 10px;
  animation: mv-table 6s ease-in-out infinite;
}
.scn-montoni-vexed .figure-montoni {
  position: absolute; bottom: 20%; left: 50%;
  width: 50px; height: 90px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a0a0a 0%, #0a0000 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom;
  animation: mv-figure 4s ease-in-out infinite;
}
.scn-montoni-vexed .candle {
  position: absolute; bottom: 30%; left: 50%;
  width: 8px; height: 30px;
  background: linear-gradient(180deg, #e0b060 0%, #b08030 100%);
  border-radius: 2px;
  animation: mv-candle 2.5s ease-in-out infinite;
}
.scn-montoni-vexed .glow {
  position: absolute; bottom: 28%; left: 50%;
  width: 60px; height: 60px;
  transform: translate(-50%, -50%);
  background: radial-gradient(circle, rgba(255,200,100,0.5) 0%, transparent 70%);
  animation: mv-glow 2s ease-in-out infinite alternate;
}
.scn-montoni-vexed .shadow {
  position: absolute; top: 10%; left: 10%;
  width: 120px; height: 150px;
  background: linear-gradient(180deg, rgba(0,0,0,0.6) 0%, transparent 100%);
  border-radius: 50%;
  animation: mv-shadow 3s ease-in-out infinite;
}
.scn-montoni-vexed .plate {
  position: absolute; bottom: 30%; left: 45%;
  width: 40px; height: 8px;
  background: radial-gradient(ellipse, #5a3a2a 0%, #3a1a0a 100%);
  border-radius: 50%;
  animation: mv-plate 5s ease-in-out infinite alternate;
}
.scn-montoni-vexed .glass {
  position: absolute; bottom: 30%; right: 45%;
  width: 12px; height: 20px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 3px 3px 8px 8px;
  animation: mv-glass 4s ease-in-out infinite;
}
@keyframes mv-table { 0% { transform: translateX(0); } 50% { transform: translateX(-1px); } 100% { transform: translateX(1px); } }
@keyframes mv-figure { 0% { transform: translateX(-50%) translateY(0) rotate(0deg); } 50% { transform: translateX(-50%) translateY(-3px) rotate(1deg); } 100% { transform: translateX(-50%) translateY(0) rotate(0deg); } }
@keyframes mv-candle { 0% { transform: scaleY(1); opacity: 0.8; } 50% { transform: scaleY(1.2); opacity: 1; } 100% { transform: scaleY(0.8); opacity: 0.7; } }
@keyframes mv-glow { 0% { transform: translate(-50%, -50%) scale(0.7); opacity: 0.4; } 50% { transform: translate(-50%, -50%) scale(1.4); opacity: 0.8; } 100% { transform: translate(-50%, -50%) scale(0.9); opacity: 0.5; } }
@keyframes mv-shadow { 0% { transform: scale(0.9); opacity: 0.6; } 50% { transform: scale(1.1); opacity: 1; } 100% { transform: scale(0.9); opacity: 0.6; } }
@keyframes mv-plate { 0% { transform: rotate(0deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-5deg); } }
@keyframes mv-glass { 0% { transform: translateY(0); opacity: 0.9; } 50% { transform: translateY(-3px); opacity: 1; } 100% { transform: translateY(0); opacity: 0.8; } }

/* news-of-orsino – tense, group, moving search shadow */
.scn-news-of-orsino {
  position: relative; overflow: hidden; width: 100%; height: 100%;
  background:
    linear-gradient(180deg, #2a0a0a 0%, #1a0a0a 50%, #0a0a0a 100%),
    radial-gradient(ellipse at 50% 30%, #3a1a1a 0%, transparent 60%);
}
.scn-news-of-orsino .table {
  position: absolute; bottom: 20%; left: 10%; right: 10%; height: 20%;
  background: linear-gradient(180deg, #3a1a0a 0%, #1a0a00 100%);
  border-radius: 10px;
  animation: no-table 5s ease-in-out infinite;
}
.scn-news-of-orsino .figure-montoni {
  position: absolute; bottom: 20%; left: 50%;
  width: 50px; height: 90px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #1a0a0a 0%, #0a0000 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom;
  animation: no-montoni 5s ease-in-out infinite;
}
.scn-news-of-orsino .figure-emily {
  position: absolute; bottom: 20%; left: 30%;
  width: 35px; height: 70px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom;
  animation: no-emily 6s ease-in-out infinite -2s;
}
.scn-news-of-orsino .candle {
  position: absolute; bottom: 30%; left: 60%;
  width: 8px; height: 30px;
  background: linear-gradient(180deg, #e8c070 0%, #c09040 100%);
  border-radius: 2px;
  animation: no-candle 2s ease-in-out infinite;
}
.scn-news-of-orsino .glow {
  position: absolute; bottom: 28%; left: 60%;
  width: 50px; height: 50px;
  transform: translate(-50%, -50%);
  background: radial-gradient(circle, rgba(255,200,100,0.6) 0%, transparent 70%);
  animation: no-glow 1.8s ease-in-out infinite alternate;
}
.scn-news-of-orsino .shadow {
  position: absolute; bottom: 20%; left: 0;
  width: 20%; height: 100%;
  background: linear-gradient(90deg, transparent 0%, rgba(0,0,0,0.5) 50%, transparent 100%);
  animation: no-shadow 8s linear infinite;
}
.scn-news-of-orsino .plate {
  position: absolute; bottom: 30%; left: 45%;
  width: 40px; height: 8px;
  background: radial-gradient(ellipse, #5a3a2a 0%, #3a1a0a 100%);
  border-radius: 50%;
  animation: no-plate 4s ease-in-out infinite alternate;
}
@keyframes no-table { 0% { transform: translateX(0); } 50% { transform: translateX(1px); } 100% { transform: translateX(-1px); } }
@keyframes no-montoni { 0% { transform: translateX(-50%) translateY(0) rotate(0deg); } 50% { transform: translateX(-50%) translateY(-2px) rotate(2deg); } 100% { transform: translateX(-50%) translateY(0) rotate(0deg); } }
@keyframes no-emily { 0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-3px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes no-candle { 0% { transform: scaleY(1); opacity: 0.9; } 50% { transform: scaleY(1.15); opacity: 1; } 100% { transform: scaleY(0.85); opacity: 0.7; } }
@keyframes no-glow { 0% { transform: translate(-50%, -50%) scale(0.8); opacity: 0.5; } 50% { transform: translate(-50%, -50%) scale(1.3); opacity: 0.9; } 100% { transform: translate(-50%, -50%) scale(0.9); opacity: 0.6; } }
@keyframes no-shadow { 0% { transform: translateX(-100%); } 100% { transform: translateX(600%); } }
@keyframes no-plate { 0% { transform: rotate(0deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-5deg); } }

/* Scene 1: argument-morano-contempt */
.scn-argument-morano-contempt {
  background: linear-gradient(180deg, #1c1410 0%, #120c08 100%), radial-gradient(ellipse at 50% 60%, #d08848 0%, transparent 60%);
}
.scn-argument-morano-contempt .wall {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(90deg, #1a120e 0%, #241a14 50%, #1a120e 100%);
  animation: amc-wall 8s ease-in-out infinite alternate;
}
.scn-argument-morano-contempt .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #0f0a07 0%, #080504 100%);
}
.scn-argument-morano-contempt .table {
  position: absolute; bottom: 15%; left: 50%; width: 100px; height: 30px; transform: translateX(-50%);
  background: linear-gradient(180deg, #3a2a1a 0%, #1f1410 100%);
  border-radius: 4px;
  box-shadow: 0 4px 8px rgba(0,0,0,.6);
}
.scn-argument-morano-contempt .candle {
  position: absolute; bottom: 30%; left: 50%; width: 8px; height: 24px; transform: translateX(-50%);
  background: linear-gradient(180deg, #e8c8a0 0%, #b08050 100%);
  border-radius: 2px;
}
.scn-argument-morano-contempt .flame-glow {
  position: absolute; bottom: 33%; left: 50%; width: 40px; height: 40px; transform: translate(-50%, 50%);
  background: radial-gradient(circle, #ffc862 0%, #d08040 40%, transparent 70%);
  box-shadow: 0 0 30px 10px #d08040, 0 0 60px 20px rgba(200,100,40,.4);
  animation: amc-flame 0.8s ease-in-out infinite alternate;
}
.scn-argument-morano-contempt .figure-morano {
  position: absolute; bottom: 20%; left: 20%; width: 24px; height: 60px;
  background: linear-gradient(180deg, #1c1410 0%, #0a0604 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: amc-figure1 3s ease-in-out infinite alternate;
}
.scn-argument-morano-contempt .figure-montoni {
  position: absolute; bottom: 20%; right: 20%; width: 26px; height: 62px;
  background: linear-gradient(180deg, #1c1410 0%, #0a0604 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: amc-figure2 3.5s ease-in-out infinite alternate;
}
@keyframes amc-wall { 0% { opacity: 0.8 } 50% { opacity: 1 } 100% { opacity: 0.9 } }
@keyframes amc-flame { 0% { transform: translate(-50%, 50%) scale(1); } 50% { transform: translate(-50%, 50%) scale(1.1) rotate(5deg); } 100% { transform: translate(-50%, 50%) scale(0.95) rotate(-5deg); } }
@keyframes amc-figure1 { 0% { transform: translate(0, 0) rotate(2deg); } 50% { transform: translate(4px, -3px) rotate(-2deg); } 100% { transform: translate(-2px, 0) rotate(0deg); } }
@keyframes amc-figure2 { 0% { transform: translate(0, 0) rotate(-3deg); } 50% { transform: translate(-2px, -2px) rotate(1deg); } 100% { transform: translate(3px, 0) rotate(0deg); } }

/* Scene 2: emily-explains-mistake */
.scn-emily-explains-mistake {
  background: linear-gradient(180deg, #16100c 0%, #0e0805 100%), radial-gradient(ellipse at 40% 60%, #c08040 0%, transparent 50%);
}
.scn-emily-explains-mistake .bg-dark {
  position: absolute; inset: 0 0 25% 0;
  background: linear-gradient(135deg, #1a1410 0%, #120c08 100%);
  animation: eem-bg 12s ease-in-out infinite alternate;
}
.scn-emily-explains-mistake .desk {
  position: absolute; bottom: 20%; left: 35%; width: 120px; height: 20px;
  background: linear-gradient(180deg, #2a1e14 0%, #1a100a 100%);
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,.6);
  animation: eem-desk 4s ease-in-out infinite alternate;
}
.scn-emily-explains-mistake .candle {
  position: absolute; bottom: 28%; left: 55%; width: 6px; height: 20px;
  background: linear-gradient(180deg, #d8b088 0%, #a07038 100%);
  border-radius: 2px;
}
.scn-emily-explains-mistake .flame-glow {
  position: absolute; bottom: 32%; left: 55%; width: 30px; height: 30px; transform: translate(-50%, 50%);
  background: radial-gradient(circle, #ffd070 0%, #c08040 40%, transparent 70%);
  box-shadow: 0 0 20px 8px #c08040, 0 0 40px 15px rgba(200,100,40,.3);
  animation: eem-flame 1s ease-in-out infinite alternate;
}
.scn-emily-explains-mistake .figure-emily {
  position: absolute; bottom: 22%; left: 30%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #1a1410 0%, #0a0604 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: eem-figure 5s ease-in-out infinite alternate;
}
.scn-emily-explains-mistake .arm-shadow {
  position: absolute; bottom: 30%; left: 38%; width: 8px; height: 30px;
  background: linear-gradient(180deg, #1a1410 0%, #0c0805 100%);
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  transform-origin: bottom left;
  animation: eem-arm 2s ease-in-out infinite alternate;
}
@keyframes eem-bg { 0% { opacity: 0.85 } 50% { opacity: 1 } 100% { opacity: 0.9 } }
@keyframes eem-desk { 0% { transform: translate(0, 0) } 50% { transform: translate(-2px, 1px) } 100% { transform: translate(1px, 0) } }
@keyframes eem-flame { 0% { transform: translate(-50%, 50%) scale(1) rotate(-3deg); } 50% { transform: translate(-50%, 50%) scale(1.2) rotate(2deg); } 100% { transform: translate(-50%, 50%) scale(0.9) rotate(4deg); } }
@keyframes eem-figure { 0% { transform: translate(0, 0) rotate(-1deg); } 50% { transform: translate(2px, -2px) rotate(2deg); } 100% { transform: translate(-1px, 0) rotate(-2deg); } }
@keyframes eem-arm { 0% { transform: rotate(-20deg); } 50% { transform: rotate(5deg); } 100% { transform: rotate(-10deg); } }

/* Scene 3: morano-montoni-reconciliation */
.scn-morano-montoni-reconciliation {
  background: linear-gradient(180deg, #1a1410 0%, #0e0a07 100%), radial-gradient(ellipse at 50% 50%, #b08048 0%, transparent 60%);
}
.scn-morano-montoni-reconciliation .bg-room {
  position: absolute; inset: 0 0 15% 0;
  background: linear-gradient(90deg, #120c08 0%, #1a1410 50%, #120c08 100%);
  animation: mmr-bg 10s ease-in-out infinite alternate;
}
.scn-morano-montoni-reconciliation .table {
  position: absolute; bottom: 20%; left: 50%; width: 140px; height: 25px; transform: translateX(-50%);
  background: linear-gradient(180deg, #3a2a1a 0%, #1f1410 100%);
  border-radius: 3px;
  box-shadow: 0 3px 6px rgba(0,0,0,.5);
}
.scn-morano-montoni-reconciliation .candle {
  position: absolute; bottom: 30%; left: 50%; width: 8px; height: 28px; transform: translateX(-50%);
  background: linear-gradient(180deg, #e0b888 0%, #a87838 100%);
  border-radius: 2px;
}
.scn-morano-montoni-reconciliation .glow {
  position: absolute; bottom: 34%; left: 50%; width: 50px; height: 50px; transform: translate(-50%, 50%);
  background: radial-gradient(circle, #ffc860 0%, #c08040 40%, transparent 70%);
  box-shadow: 0 0 30px 12px #c08040, 0 0 60px 20px rgba(200,100,40,.3);
  animation: mmr-glow 1.2s ease-in-out infinite alternate;
}
.scn-morano-montoni-reconciliation .figure-morano {
  position: absolute; bottom: 22%; left: 25%; width: 24px; height: 60px;
  background: linear-gradient(180deg, #1c1410 0%, #0a0604 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mmr-figure1 4s ease-in-out infinite alternate;
}
.scn-morano-montoni-reconciliation .figure-montoni {
  position: absolute; bottom: 22%; right: 25%; width: 26px; height: 62px;
  background: linear-gradient(180deg, #1c1410 0%, #0a0604 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mmr-figure2 4.5s ease-in-out infinite alternate;
}
.scn-morano-montoni-reconciliation .handshake {
  position: absolute; bottom: 27%; left: 50%; width: 30px; height: 20px; transform: translateX(-50%);
  background: radial-gradient(ellipse at 30% 50%, #2a1e14 0%, transparent 60%), radial-gradient(ellipse at 70% 50%, #2a1e14 0%, transparent 60%);
  border-radius: 50%;
  animation: mmr-handshake 2s ease-in-out infinite alternate;
}
@keyframes mmr-bg { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.85 } }
@keyframes mmr-glow { 0% { transform: translate(-50%, 50%) scale(1); } 50% { transform: translate(-50%, 50%) scale(1.15); } 100% { transform: translate(-50%, 50%) scale(0.95); } }
@keyframes mmr-figure1 { 0% { transform: translate(0, 0) rotate(1deg); } 50% { transform: translate(4px, -2px) rotate(-1deg); } 100% { transform: translate(0, 0) rotate(0deg); } }
@keyframes mmr-figure2 { 0% { transform: translate(0, 0) rotate(-1deg); } 50% { transform: translate(-4px, -2px) rotate(1deg); } 100% { transform: translate(0, 0) rotate(0deg); } }
@keyframes mmr-handshake { 0% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.05) rotate(3deg); } 100% { transform: translateX(-50%) scale(1) rotate(-3deg); } }

/* Scene 4: return-venice-palace */
.scn-return-venice-palace {
  background: linear-gradient(180deg, #0a1420 0%, #182838 50%, #1a2a3a 100%), radial-gradient(ellipse at 50% 10%, #3a5a7a 0%, transparent 60%);
}
.scn-return-venice-palace .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #0a1420 0%, #1a2838 100%);
  animation: rvp-sky 30s ease-in-out infinite alternate;
}
.scn-return-venice-palace .water {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #0a1a2a 0%, #060e1a 100%);
  background-size: 200% 100%;
  animation: rvp-water 8s linear infinite;
}
.scn-return-venice-palace .palace {
  position: absolute; bottom: 30%; left: 20%; width: 60%; height: 35%;
  background: linear-gradient(180deg, #2a3a4a 0%, #1a2a38 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 0 30px rgba(0,0,0,.4);
  animation: rvp-palace 12s ease-in-out infinite alternate;
}
.scn-return-venice-palace .column-left {
  position: absolute; bottom: 30%; left: 25%; width: 8%; height: 60%;
  background: linear-gradient(180deg, #4a5a6a 0%, #2a3a4a 100%);
  border-radius: 8% 8% 0 0;
  box-shadow: inset -2px 0 4px rgba(0,0,0,.3);
}
.scn-return-venice-palace .column-right {
  position: absolute; bottom: 30%; right: 25%; width: 8%; height: 60%;
  background: linear-gradient(180deg, #4a5a6a 0%, #2a3a4a 100%);
  border-radius: 8% 8% 0 0;
  box-shadow: inset 2px 0 4px rgba(0,0,0,.3);
}
.scn-return-venice-palace .moon {
  position: absolute; top: 12%; left: 30%; width: 60px; height: 60px;
  background: radial-gradient(circle, #e8e8d0 0%, #c0c0a8 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(200,200,180,.3), 0 0 80px 40px rgba(200,200,180,.1);
  animation: rvp-moon 15s ease-in-out infinite alternate;
}
.scn-return-venice-palace .reflection {
  position: absolute; bottom: 15%; left: 30%; width: 60px; height: 30px;
  background: radial-gradient(ellipse, rgba(200,200,180,.2) 0%, transparent 80%);
  filter: blur(4px);
  animation: rvp-reflection 4s ease-in-out infinite alternate;
}
@keyframes rvp-sky { 0% { opacity: 0.9 } 50% { opacity: 1 } 100% { opacity: 0.95 } }
@keyframes rvp-water { 0% { background-position: 0% 0%; } 50% { background-position: 100% 0%; } 100% { background-position: 0% 0%; } }
@keyframes rvp-palace { 0% { transform: scale(1); } 50% { transform: scale(1.005); } 100% { transform: scale(0.995); } }
@keyframes rvp-moon { 0% { transform: translate(0, 0) scale(1); } 50% { transform: translate(3px, -2px) scale(1.02); } 100% { transform: translate(-2px, 1px) scale(0.98); } }
@keyframes rvp-reflection { 0% { opacity: 0.6; transform: scale(1); } 50% { opacity: 1; transform: scale(1.1); } 100% { opacity: 0.7; transform: scale(0.95); } }

.scn-presage-of-parting { background: linear-gradient(180deg, #0f0f2a 0%, #1a1a3e 30%, #2a2a5e 60%, #4a3a6e 100%), radial-gradient(ellipse at 50% 100%, #6a5a8e 0%, transparent 55%); }
.scn-presage-of-parting .sky { position: absolute; inset: 0 0 40% 0; background: linear-gradient(180deg, #1a1a4e 0%, transparent 100%); animation: pp-sky 12s ease-in-out infinite alternate; }
.scn-presage-of-parting .sea { position: absolute; bottom: 0; left: 0; right: 0; height: 38%; background: linear-gradient(180deg, #0a2a4a 0%, #1a3a5a 50%, #0f2f4f 100%); animation: pp-sea 15s ease-in-out infinite alternate; }
.scn-presage-of-parting .ship-hull { position: absolute; bottom: 20%; left: 38%; width: 24%; height: 8%; background: linear-gradient(90deg, #3a2a1a 0%, #6a4a3a 50%, #3a2a1a 100%); border-radius: 20% 20% 30% 30%; box-shadow: 0 2px 8px rgba(0,0,0,0.6); animation: pp-roll 8s ease-in-out infinite; }
.scn-presage-of-parting .ship-sail { position: absolute; bottom: 25%; left: 44%; width: 12%; height: 14%; background: linear-gradient(180deg, #eee8e0 0%, #c8c0b0 100%); border-radius: 50% 50% 10% 10% / 60% 60% 40% 40%; transform-origin: bottom center; animation: pp-sail 10s ease-in-out infinite alternate; }
.scn-presage-of-parting .figure { position: absolute; bottom: 18%; left: 46%; width: 5%; height: 12%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: pp-figure 6s ease-in-out infinite; }
.scn-presage-of-parting .wave-a { position: absolute; bottom: 0; left: 0; right: 0; height: 6%; background: radial-gradient(ellipse at 30% 50%, rgba(255,255,255,0.1) 0%, transparent 60%); animation: pp-wave-a 7s ease-in-out infinite; }
.scn-presage-of-parting .wave-b { position: absolute; bottom: 2%; left: 0; right: 0; height: 5%; background: radial-gradient(ellipse at 70% 50%, rgba(255,255,255,0.08) 0%, transparent 60%); animation: pp-wave-b 9s ease-in-out infinite reverse; animation-delay: -3s; }
.scn-presage-of-parting .cloud { position: absolute; top: 12%; left: 10%; width: 20%; height: 5%; background: linear-gradient(180deg, rgba(255,255,255,0.3) 0%, rgba(255,255,255,0.05) 100%); filter: blur(6px); border-radius: 50%; animation: pp-cloud 40s linear infinite; }
@keyframes pp-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes pp-sea { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes pp-roll { 0% { transform: rotate(0deg); } 50% { transform: rotate(3deg); } 100% { transform: rotate(-2deg); } }
@keyframes pp-sail { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.1); } 100% { transform: scaleX(0.95); } }
@keyframes pp-figure { 0% { transform: translateX(0); } 50% { transform: translateX(5px); } 100% { transform: translateX(-5px); } }
@keyframes pp-wave-a { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.3); } 100% { transform: scaleY(0.9); } }
@keyframes pp-wave-b { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.2); } 100% { transform: scaleY(0.8); } }
@keyframes pp-cloud { 0% { transform: translateX(-30px); } 50% { transform: translateX(50px); } 100% { transform: translateX(120vw); } }

.scn-fear-for-valancourt { background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 40%, #3a2a4e 100%), radial-gradient(ellipse at 50% 80%, #4a3a5e 0%, transparent 70%); }
.scn-fear-for-valancourt .wall { position: absolute; inset: 0 0 20% 0; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); }
.scn-fear-for-valancourt .floor { position: absolute; bottom: 0; left: 0; right: 0; height: 20%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); }
.scn-fear-for-valancourt .window { position: absolute; bottom: 30%; left: 30%; width: 40%; height: 40%; background: linear-gradient(180deg, #5a4a7a 0%, #7a6a9a 50%, #9a8aba 100%); border: 4px solid #1a1a2e; border-radius: 4px; box-shadow: inset 0 0 20px rgba(255,255,255,0.1); animation: fv-window 10s ease-in-out infinite; }
.scn-fear-for-valancourt .figure-emily { position: absolute; bottom: 18%; left: 20%; width: 8%; height: 22%; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: fv-emily 4s ease-in-out infinite; }
.scn-fear-for-valancourt .figure-morano { position: absolute; bottom: 18%; right: 15%; width: 10%; height: 24%; background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fv-morano 6s ease-in-out infinite; }
.scn-fear-for-valancourt .shadow { position: absolute; inset: 0; background: radial-gradient(ellipse at 50% 60%, rgba(0,0,0,0.4) 0%, transparent 60%); animation: fv-shadow 8s ease-in-out infinite; }
@keyframes fv-window { 0% { opacity: 0.5; } 50% { opacity: 1; } 100% { opacity: 0.6; } }
@keyframes fv-emily { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(-2px) rotate(2deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes fv-morano { 0% { transform: scale(1); } 50% { transform: scale(1.05); } 100% { transform: scale(0.98); } }
@keyframes fv-shadow { 0% { opacity: 0.3; } 50% { opacity: 0.6; } 100% { opacity: 0.2; } }

.scn-cabin-confrontation { background: linear-gradient(180deg, #3a2a1a 0%, #4a3a2a 40%, #5a4a3a 100%), radial-gradient(ellipse at 50% 100%, #6a5a4a 0%, transparent 60%); }
.scn-cabin-confrontation .table { position: absolute; bottom: 10%; left: 15%; width: 70%; height: 8%; background: linear-gradient(90deg, #5a4a3a 0%, #7a6a5a 50%, #5a4a3a 100%); border-radius: 10px; box-shadow: 0 4px 12px rgba(0,0,0,0.5); }
.scn-cabin-confrontation .figure-aunt { position: absolute; bottom: 12%; left: 22%; width: 12%; height: 18%; background: linear-gradient(180deg, #5e1a1d 0%, #3a0a0d 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: cc-aunt 7s ease-in-out infinite; }
.scn-cabin-confrontation .figure-montoni { position: absolute; bottom: 12%; left: 55%; width: 14%; height: 22%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: cc-montoni 5s ease-in-out infinite; }
.scn-cabin-confrontation .figure-emily { position: absolute; bottom: 12%; left: 40%; width: 10%; height: 16%; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: cc-emily 6s ease-in-out infinite; }
.scn-cabin-confrontation .candle { position: absolute; bottom: 25%; left: 48%; width: 4%; height: 10%; background: linear-gradient(180deg, #ffd080 0%, #ff8840 50%, #b05020 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 0 20px 8px rgba(255,180,80,0.6); animation: cc-candle 3s ease-in-out infinite alternate; }
.scn-cabin-confrontation .shadow { position: absolute; bottom: 0; left: 0; right: 0; height: 35%; background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.5) 0%, transparent 60%); animation: cc-shadow 9s ease-in-out infinite; }
@keyframes cc-aunt { 0% { transform: translateY(0); } 50% { transform: translateY(-1px) rotate(1deg); } 100% { transform: translateY(0); } }
@keyframes cc-montoni { 0% { transform: translateX(0) rotate(-2deg); } 50% { transform: translateX(5px) rotate(2deg); } 100% { transform: translateX(-2px) rotate(-1deg); } }
@keyframes cc-emily { 0% { transform: scale(1); } 50% { transform: scale(0.95) translateY(2px); } 100% { transform: scale(1); } }
@keyframes cc-candle { 0% { opacity: 0.7; box-shadow: 0 0 15px 5px rgba(255,180,80,0.4); } 50% { opacity: 1; box-shadow: 0 0 30px 12px rgba(255,180,80,0.7); } 100% { opacity: 0.8; box-shadow: 0 0 20px 8px rgba(255,180,80,0.5); } }
@keyframes cc-shadow { 0% { opacity: 0.4; } 50% { opacity: 0.7; } 100% { opacity: 0.3; } }

.scn-montoni-mistake-dispute { background: linear-gradient(180deg, #2a1a0a 0%, #3a2a1a 50%, #4a3a2a 100%), radial-gradient(ellipse at 50% 80%, #5a4a3a 0%, transparent 60%); }
.scn-montoni-mistake-dispute .floor { position: absolute; bottom: 0; left: 0; right: 0; height: 15%; background: linear-gradient(180deg, #1a0a00 0%, #2a1a0a 100%); }
.scn-montoni-mistake-dispute .wall { position: absolute; inset: 0 0 15% 0; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); }
.scn-montoni-mistake-dispute .desk { position: absolute; bottom: 15%; left: 25%; width: 50%; height: 5%; background: linear-gradient(90deg, #4a3a2a 0%, #6a5a4a 50%, #4a3a2a 100%); border-radius: 5px; }
.scn-montoni-mistake-dispute .figure-emily { position: absolute; bottom: 17%; left: 30%; width: 10%; height: 20%; background: linear-gradient(180deg, #1a1a2e 0%, #0a0a1e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: mm-emily 4s ease-in-out infinite; }
.scn-montoni-mistake-dispute .figure-montoni { position: absolute; bottom: 17%; right: 25%; width: 12%; height: 22%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: mm-montoni 5s ease-in-out infinite; }
.scn-montoni-mistake-dispute .shadow { position: absolute; bottom: 0; left: 0; right: 0; height: 50%; background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,0.5) 0%, transparent 50%); animation: mm-shadow 6s ease-in-out infinite; }
.scn-montoni-mistake-dispute .chair { position: absolute; bottom: 15%; left: 45%; width: 15%; height: 18%; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 10% 10% 5% 5%; animation: mm-chair 8s ease-in-out infinite; }
@keyframes mm-emily { 0% { transform: translateY(0) rotate(-2deg); } 50% { transform: translateY(2px) rotate(1deg); } 100% { transform: translateY(-1px) rotate(-1deg); } }
@keyframes mm-montoni { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.05) translateX(3px); } 100% { transform: scaleX(0.98); } }
@keyframes mm-shadow { 0% { opacity: 0.5; } 50% { opacity: 0.8; } 100% { opacity: 0.4; } }
@keyframes mm-chair { 0% { transform: translateY(0); } 50% { transform: translateY(1px); } 100% { transform: translateY(0); } }

.scn-morning-after-storm{background:linear-gradient(180deg,#fca,#fdb 30%,#eee 60%,#cde),radial-gradient(at 30%80%,#fdb,transparent 70%);position:relative;overflow:hidden;width:100%;height:100%}
.scn-morning-after-storm>div{position:absolute}
.scn-morning-after-storm .a{inset:0;background:linear-gradient(180deg,#fdb,#fec 40%,#eef 70%,#bdf);animation:s1a 12s ease infinite alternate}
.scn-morning-after-storm .b{left:0;top:0;bottom:0;width:30%;background:linear-gradient(180deg,#432,#210);animation:s1a 8s ease infinite alternate}
.scn-morning-after-storm .c{left:45%;top:10%;width:30%;height:50%;border:6px solid #321;border-radius:4px;background:linear-gradient(180deg,#fec,#ffd 40%,#def);box-shadow:0 0 30px #fec;animation:s1c 5s ease infinite alternate}
.scn-morning-after-storm .d{left:10%;bottom:10%;width:20px;height:50px;background:radial-gradient(at 50%30%,#210,#000);border-radius:50%/60%;animation:s1d 6s ease infinite}
.scn-morning-after-storm .e{left:55%;bottom:12%;width:22px;height:48px;background:radial-gradient(at 50%30%,#321,#110);border-radius:50%/65%;animation:s1e 7s ease infinite alternate}
@keyframes s1a{0%{opacity:.8}50%{opacity:1}100%{opacity:.85}}
@keyframes s1c{0%{box-shadow:0 0 20px #fec}50%{box-shadow:0 0 50px #fec;opacity:1}100%{box-shadow:0 0 30px #fec;opacity:.9}}
@keyframes s1d{0%{transform:translateX(0)}25%{transform:translateX(10px) translateY(-2px) rotate(2deg)}50%{transform:translateX(20px)}75%{transform:translateX(30px) translateY(-1px) rotate(-1deg)}100%{transform:translateX(40px)}}
@keyframes s1e{0%{transform:rotate(-2deg)}50%{transform:rotate(2deg)}100%{transform:rotate(-2deg)}}

.scn-anette-reports-carousing{background:linear-gradient(180deg,#2a1a0a,#110805,#000),radial-gradient(at 50%120%,#000,transparent 60%);position:relative;overflow:hidden;width:100%;height:100%}
.scn-anette-reports-carousing>div{position:absolute}
.scn-anette-reports-carousing .a{inset:0;background:linear-gradient(180deg,#4a3020,#2d1a0f);animation:s2a 8s ease infinite alternate}
.scn-anette-reports-carousing .b{left:48%;bottom:20%;width:12px;height:60px;background:linear-gradient(180deg,#d9b080,#8b6b4b);border-radius:2px;box-shadow:0 0 20px #d9b080;animation:s2b 6s ease infinite alternate}
.scn-anette-reports-carousing .c{left:48.5%;bottom:60%;width:18px;height:30px;background:radial-gradient(at 50%30%,#ffd060,#e07010);border-radius:50% 50% 40% 40%/60% 60% 40% 40%;box-shadow:0 0 30px #ffd060;animation:s2c .5s ease infinite alternate}
.scn-anette-reports-carousing .d{left:20%;bottom:10%;width:24px;height:55px;background:#1a0a05;border-radius:50%/65%;transform-origin:50%100%;animation:s2d 2s ease infinite alternate}
.scn-anette-reports-carousing .e{left:60%;bottom:8%;width:34px;height:70px;background:#0d0502;border-radius:50%/75%;transform-origin:50%100%;animation:s2e 1.5s ease infinite alternate}
@keyframes s2a{0%{opacity:.7}50%{opacity:1}100%{opacity:.8}}
@keyframes s2b{0%{transform:rotate(-2deg)}50%{transform:rotate(2deg)}100%{transform:rotate(-2deg)}}
@keyframes s2c{0%{transform:scale(1,1);opacity:.9}50%{transform:scale(1.2,1.4);opacity:1}100%{transform:scale(.9,.8);opacity:.8}}
@keyframes s2d{0%{transform:rotate(0)}50%{transform:rotate(-15deg)}100%{transform:rotate(5deg)}}
@keyframes s2e{0%{transform:rotate(0) scale(1)}50%{transform:rotate(10deg) scale(1.05)}100%{transform:rotate(-5deg) scale(1)}}

.scn-emily-smiles-at-innocence{background:linear-gradient(180deg,#4a3a2a,#2a1a0a,#1a1008),radial-gradient(at 30%70%,#5a4a3a,transparent 60%);position:relative;overflow:hidden;width:100%;height:100%}
.scn-emily-smiles-at-innocence>div{position:absolute}
.scn-emily-smiles-at-innocence .a{inset:0;background:linear-gradient(180deg,#5a3a2a,#3a1a0a);animation:s3a 10s ease infinite alternate}
.scn-emily-smiles-at-innocence .b{left:35%;top:20%;width:30%;height:40%;border:6px solid #3a2a1a;border-radius:4px;background:linear-gradient(180deg,#fec8a0,#ffe0b0 40%,#f0e0c0);box-shadow:0 0 30px #fec8a0;animation:s3b 6s ease infinite alternate}
.scn-emily-smiles-at-innocence .c{left:25%;bottom:15%;width:28px;height:60px;background:radial-gradient(at 50%30%,#4a3020,#1a0a05);border-radius:50%/70%;animation:s3c 7s ease infinite alternate}
.scn-emily-smiles-at-innocence .d{left:55%;bottom:12%;width:24px;height:55px;background:radial-gradient(at 50%30%,#5a3a2a,#2a1a0a);border-radius:50%/65%;animation:s3d 8s ease infinite alternate}
.scn-emily-smiles-at-innocence .e{left:30%;top:10%;width:40%;height:60%;background:linear-gradient(180deg,transparent 30%,rgba(255,220,180,.1) 100%);border-radius:50%;filter:blur(10px);animation:s3e 15s linear infinite alternate}
@keyframes s3a{0%{opacity:.8}50%{opacity:1}100%{opacity:.85}}
@keyframes s3b{0%{box-shadow:0 0 20px #fec8a0}50%{box-shadow:0 0 40px #fec8a0;opacity:.95}100%{box-shadow:0 0 30px #fec8a0;opacity:.9}}
@keyframes s3c{0%{transform:rotate(-3deg)}50%{transform:rotate(3deg)}100%{transform:rotate(-3deg)}}
@keyframes s3d{0%{transform:rotate(2deg)}50%{transform:rotate(-2deg)}100%{transform:rotate(2deg)}}
@keyframes s3e{0%{transform:translateX(0);opacity:.3}50%{transform:translateX(20px);opacity:.5}100%{transform:translateX(-10px);opacity:.2}}

.scn-emily-muses{background:linear-gradient(180deg,#2a1a2a,#1a0a1a,#0a050a),radial-gradient(at 50%30%,#3a2a4a,transparent 70%);position:relative;overflow:hidden;width:100%;height:100%}
.scn-emily-muses>div{position:absolute}
.scn-emily-muses .a{inset:0;background:linear-gradient(180deg,#3a2a3a,#1a0a1a);animation:s4a 12s ease infinite alternate}
.scn-emily-muses .b{left:40%;top:15%;width:20%;height:50%;border:8px solid #2a1a2a;border-radius:4px;background:linear-gradient(180deg,#1a0a1a,#0a050a);box-shadow:inset 0 0 20px #1a0a1a;animation:s4b 7s ease infinite alternate}
.scn-emily-muses .c{left:35%;bottom:10%;width:26px;height:58px;background:radial-gradient(at 50%30%,#1a0a1a,#050205);border-radius:50%/70%;animation:s4c 5s ease infinite alternate}
.scn-emily-muses .d{left:45%;top:20%;width:22px;height:50px;background:radial-gradient(at 50%30%,#0a0510,#000);border-radius:50%/60%;filter:blur(4px);opacity:.6;animation:s4d 8s ease infinite alternate}
.scn-emily-muses .e{inset:0;background:radial-gradient(ellipse at 50%70%,transparent 30%,#000 100%);opacity:.4;animation:s4e 10s ease infinite alternate}
@keyframes s4a{0%{opacity:.8}50%{opacity:1}100%{opacity:.85}}
@keyframes s4b{0%{box-shadow:inset 0 0 10px #1a0a1a}50%{box-shadow:inset 0 0 30px #1a0a1a}100%{box-shadow:inset 0 0 20px #1a0a1a}}
@keyframes s4c{0%{transform:rotate(0) translateY(0)}50%{transform:rotate(2deg) translateY(-2px)}100%{transform:rotate(-2deg) translateY(1px)}}
@keyframes s4d{0%{transform:translateY(0);opacity:.5}50%{transform:translateY(-5px);opacity:.7}100%{transform:translateY(3px);opacity:.4}}
@keyframes s4e{0%{opacity:.3}50%{opacity:.5}100%{opacity:.4}}

/* montoni's-plan */
.scn-montoni-s-plan {
  background:
    linear-gradient(180deg, #1a1610 0%, #2d2418 40%, #3b2e1f 100%),
    radial-gradient(ellipse at 60% 100%, #4a3a28 0%, transparent 70%);
}
.scn-montoni-s-plan .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #2a221a 0%, #1f1812 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,0.6);
  animation: mp-wall 12s ease-in-out infinite alternate;
}
.scn-montoni-s-plan .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1208 100%);
  border-radius: 60% 40% 0 0 / 30% 20% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.8);
}
.scn-montoni-s-plan .table {
  position: absolute; bottom: 22%; left: 30%; width: 35%; height: 8%;
  background: linear-gradient(180deg, #4a3a28 0%, #2a1e14 100%);
  border-radius: 4px;
  box-shadow: 0 6px 12px rgba(0,0,0,0.5);
  animation: mp-table 8s ease-in-out infinite;
}
.scn-montoni-s-plan .candle {
  position: absolute; bottom: 30%; left: 45%; width: 10px; height: 30px;
  background: linear-gradient(180deg, #c8a060 0%, #8a6a40 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
  box-shadow: 0 0 20px 8px rgba(200,160,96,0.5);
  animation: mp-candle 4s ease-in-out infinite alternate;
}
.scn-montoni-s-plan .figure {
  position: absolute; bottom: 22%; left: 42%; width: 24px; height: 60px;
  background: linear-gradient(180deg, #2a1e14 0%, #120c06 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mp-figure 6s ease-in-out infinite;
}
.scn-montoni-s-plan .shadow {
  position: absolute; bottom: 20%; left: 35%; width: 40%; height: 6%;
  background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.6) 0%, transparent 100%);
  animation: mp-shadow 6s ease-in-out infinite;
}
.scn-montoni-s-plan .curtain {
  position: absolute; top: 0; left: 5%; width: 18%; height: 100%;
  background: linear-gradient(180deg, #3a2a20 0%, #1a120a 100%);
  border-radius: 0 40% 40% 0 / 0 30% 30% 0;
  box-shadow: inset -8px 0 20px rgba(0,0,0,0.7);
  animation: mp-curtain 15s ease-in-out infinite alternate;
}
@keyframes mp-wall {
  0% { opacity: 0.7; }
  50% { opacity: 0.85; }
  100% { opacity: 0.75; }
}
@keyframes mp-table {
  0%,100% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
}
@keyframes mp-candle {
  0% { transform: scaleY(1); box-shadow: 0 0 16px 6px rgba(200,160,96,0.4); }
  50% { transform: scaleY(1.02); box-shadow: 0 0 28px 10px rgba(200,160,96,0.7); }
  100% { transform: scaleY(0.98); box-shadow: 0 0 18px 5px rgba(200,160,96,0.5); }
}
@keyframes mp-figure {
  0% { transform: translateX(0) rotate(-1deg); }
  25% { transform: translateX(4px) rotate(1deg); }
  50% { transform: translateX(8px) rotate(-1deg); }
  75% { transform: translateX(12px) rotate(1deg); }
  100% { transform: translateX(16px) rotate(0); }
}
@keyframes mp-shadow {
  0%,100% { transform: scaleX(1); opacity: 0.6; }
  50% { transform: scaleX(1.1); opacity: 0.8; }
}
@keyframes mp-curtain {
  0% { transform: translateX(0); }
  50% { transform: translateX(-2px); }
  100% { transform: translateX(0); }
}

/* sentinel's-alarm */
.scn-sentinel-s-alarm {
  background:
    linear-gradient(180deg, #0b1020 0%, #152040 40%, #1a2a50 100%),
    radial-gradient(ellipse at 80% 20%, #3a5a8a 0%, transparent 60%);
}
.scn-sentinel-s-alarm .sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #0d1830 0%, #1a2a4a 100%);
  animation: sa-sky 20s ease-in-out infinite alternate;
}
.scn-sentinel-s-alarm .moon {
  position: absolute; top: 10%; right: 20%; width: 50px; height: 50px;
  background: radial-gradient(circle, #d0d8e8 0%, #a0b0c8 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 15px rgba(200,215,230,0.3);
  animation: sa-moon 8s ease-in-out infinite alternate;
}
.scn-sentinel-s-alarm .terrace {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #2a3a5a 0%, #1a2a4a 100%);
  border-radius: 10% 10% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.6);
}
.scn-sentinel-s-alarm .soldier-1 {
  position: absolute; bottom: 25%; left: 30%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #1a2a40 0%, #0a1420 100%);
  border-radius: 45% 45% 30% 30% / 50% 50% 35% 35%;
  transform-origin: bottom center;
  animation: sa-soldier1 3s ease-in-out infinite;
}
.scn-sentinel-s-alarm .soldier-2 {
  position: absolute; bottom: 25%; left: 55%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #1a2a40 0%, #0a1420 100%);
  border-radius: 45% 45% 30% 30% / 50% 50% 35% 35%;
  transform-origin: bottom center;
  animation: sa-soldier2 3.5s ease-in-out infinite;
}
.scn-sentinel-s-alarm .casement {
  position: absolute; bottom: 30%; left: 10%; width: 30%; height: 60%;
  border: 6px solid #2a3a5a;
  border-radius: 4px;
  background: linear-gradient(180deg, #0a1428 0%, #1a2a4a 100%);
  box-shadow: inset 0 0 30px rgba(0,0,0,0.8);
  animation: sa-casement 5s ease-in-out infinite;
}
.scn-sentinel-s-alarm .torch {
  position: absolute; bottom: 28%; left: 60%; width: 8px; height: 40px;
  background: linear-gradient(180deg, #806030 0%, #4a3018 100%);
  border-radius: 20%;
  box-shadow: 0 0 30px 8px rgba(255,180,60,0.4);
  animation: sa-torch 2s ease-in-out infinite alternate;
}
.scn-sentinel-s-alarm .alarm-line {
  position: absolute; top: 15%; left: 0; width: 100%; height: 2px;
  background: repeating-linear-gradient(90deg, #d0d8e8 0px, transparent 12px, transparent 24px);
  opacity: 0.6;
  animation: sa-alarm 1.5s linear infinite;
}
@keyframes sa-sky {
  0% { opacity: 0.8; }
  50% { opacity: 0.95; }
  100% { opacity: 0.85; }
}
@keyframes sa-moon {
  0% { transform: scale(1); box-shadow: 0 0 30px 10px rgba(200,215,230,0.25); }
  50% { transform: scale(1.03); box-shadow: 0 0 50px 20px rgba(200,215,230,0.4); }
  100% { transform: scale(0.97); box-shadow: 0 0 35px 12px rgba(200,215,230,0.3); }
}
@keyframes sa-soldier1 {
  0% { transform: translateX(0) rotate(0); }
  25% { transform: translateX(5px) rotate(3deg); }
  50% { transform: translateX(10px) rotate(0); }
  75% { transform: translateX(15px) rotate(-3deg); }
  100% { transform: translateX(20px) rotate(0); }
}
@keyframes sa-soldier2 {
  0% { transform: translateX(0) rotate(0); }
  25% { transform: translateX(-5px) rotate(-2deg); }
  50% { transform: translateX(-10px) rotate(0); }
  75% { transform: translateX(-15px) rotate(2deg); }
  100% { transform: translateX(-20px) rotate(0); }
}
@keyframes sa-casement {
  0%,100% { border-color: #2a3a5a; }
  50% { border-color: #3a5a8a; box-shadow: inset 0 0 40px rgba(100,140,200,0.3); }
}
@keyframes sa-torch {
  0% { transform: scaleY(1) scaleX(1); opacity: 0.8; }
  50% { transform: scaleY(1.1) scaleX(1.05); opacity: 1; }
  100% { transform: scaleY(0.95) scaleX(0.95); opacity: 0.7; }
}
@keyframes sa-alarm {
  0% { background-position: 0 0; }
  100% { background-position: -48px 0; }
}

/* Scene: peasant-courtesy */
.scn-peasant-courtesy {
  background:
    linear-gradient(180deg, #f5a062 0%, #e07a4f 25%, #c45d3a 50%, #7a2e1b 75%, #3a1a0e 100%),
    radial-gradient(ellipse at 50% 0%, #f5a062 0%, transparent 60%);
}
.scn-peasant-courtesy .sky-dusk {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #fcb27a 0%, #e8854f 40%, #c45d3a 80%, #8a3a25 100%);
  animation: pc-sky 12s ease-in-out infinite alternate;
}
.scn-peasant-courtesy .hills-back {
  position: absolute; bottom: 40%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #5e3a2a 0%, #3e2a1a 100%);
  border-radius: 60% 40% 0 0 / 80% 70% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.5);
  animation: pc-hills 18s ease-in-out infinite alternate;
}
.scn-peasant-courtesy .path {
  position: absolute; bottom: 15%; left: 30%; width: 40%; height: 25%;
  background: linear-gradient(90deg, transparent 0%, #6a4a2a 20%, #8a6a3a 40%, #8a6a3a 60%, #6a4a2a 80%, transparent 100%);
  border-radius: 50%;
  transform: perspective(300px) rotateX(60deg);
  filter: blur(2px);
  animation: pc-path 20s ease-in-out infinite;
}
.scn-peasant-courtesy .figure-emily {
  position: absolute; bottom: 22%; left: 40%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #b8a898 0%, #7a6a5a 60%, #4a3a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pc-figure-emily 5s ease-in-out infinite;
}
.scn-peasant-courtesy .figure-peasant {
  position: absolute; bottom: 20%; left: 52%; width: 22px; height: 44px;
  background: linear-gradient(180deg, #c8a878 0%, #9a7a5a 50%, #5a3a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pc-figure-peasant 6s ease-in-out infinite;
}
.scn-peasant-courtesy .flask {
  position: absolute; bottom: 32%; left: 56%; width: 10px; height: 14px;
  background: radial-gradient(circle at 40% 30%, #c8a070, #8a6a40);
  border-radius: 30% 30% 40% 40%;
  box-shadow: 0 0 12px 4px rgba(200,160,112,.5);
  transform: rotate(15deg);
  animation: pc-flask 4s ease-in-out infinite alternate;
}
.scn-peasant-courtesy .tree-shadow {
  position: absolute; bottom: 30%; right: 10%; width: 60px; height: 80px;
  background: linear-gradient(180deg, transparent 0%, #2a1a0e 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  filter: blur(4px);
  opacity: 0.6;
  animation: pc-tree 25s ease-in-out infinite alternate;
}
@keyframes pc-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.75; }
}
@keyframes pc-hills {
  0% { transform: translateY(0); }
  33% { transform: translateY(-4px) scale(1.01); }
  66% { transform: translateY(2px); }
  100% { transform: translateY(-2px); }
}
@keyframes pc-path {
  0% { opacity: 0.7; transform: perspective(300px) rotateX(60deg) scaleY(1); }
  50% { opacity: 1; transform: perspective(300px) rotateX(58deg) scaleY(1.02); }
  100% { opacity: 0.8; transform: perspective(300px) rotateX(62deg) scaleY(0.98); }
}
@keyframes pc-figure-emily {
  0% { transform: translateY(0) rotate(0); }
  30% { transform: translateY(-2px) rotate(1deg); }
  60% { transform: translateY(0) rotate(-1deg); }
  100% { transform: translateY(-1px) rotate(0); }
}
@keyframes pc-figure-peasant {
  0% { transform: translateY(0) rotate(0); }
  25% { transform: translateY(-1px) rotate(2deg); }
  50% { transform: translateY(-3px) rotate(-1deg); }
  75% { transform: translateY(1px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes pc-flask {
  0% { transform: rotate(10deg) scale(1); opacity: 0.9; }
  50% { transform: rotate(25deg) scale(1.1); opacity: 1; box-shadow: 0 0 20px 6px rgba(200,160,112,.7); }
  100% { transform: rotate(12deg) scale(0.95); opacity: 0.85; }
}
@keyframes pc-tree {
  0% { transform: scaleY(1); opacity: 0.5; }
  50% { transform: scaleY(1.03) rotate(-1deg); opacity: 0.7; }
  100% { transform: scaleY(0.97) rotate(1deg); opacity: 0.6; }
}

/* Scene: pensive-melancholy */
.scn-pensive-melancholy {
  background:
    linear-gradient(180deg, #0b0e2a 0%, #1a2045 30%, #2c3860 60%, #405080 100%),
    radial-gradient(ellipse at 50% 0%, #1a2045 0%, transparent 70%);
}
.scn-pensive-melancholy .moonlit-sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #0a0d28 0%, #1a2248 50%, #2c3e6a 100%);
  animation: pm-sky 20s ease-in-out infinite alternate;
}
.scn-pensive-melancholy .moon {
  position: absolute; top: 12%; right: 25%; width: 30px; height: 30px;
  background: radial-gradient(circle, #e8eef8 0%, #b8c8e0 80%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(200,210,240,0.4), 0 0 60px 20px rgba(200,210,240,0.15);
  animation: pm-moon 30s ease-in-out infinite alternate;
}
.scn-pensive-melancholy .cliff {
  position: absolute; bottom: 0; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #2c3035 0%, #1a1c20 50%, #0c0e10 100%);
  border-radius: 20% 20% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 -8px 20px rgba(0,0,0,.6);
  animation: pm-cliff 15s ease-in-out infinite alternate;
}
.scn-pensive-melancholy .wave-1 {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 12%;
  background: linear-gradient(180deg, transparent 0%, rgba(60,80,120,0.5) 40%, rgba(60,80,120,0.2) 100%);
  border-radius: 50%;
  filter: blur(3px);
  animation: pm-wave1 8s ease-in-out infinite alternate;
}
.scn-pensive-melancholy .wave-2 {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 10%;
  background: linear-gradient(180deg, transparent 0%, rgba(40,60,100,0.4) 50%, transparent 100%);
  border-radius: 50%;
  filter: blur(4px);
  animation: pm-wave2 12s ease-in-out infinite alternate;
  animation-delay: 3s;
}
.scn-pensive-melancholy .figure-sitting {
  position: absolute; bottom: 30%; left: 20%; width: 24px; height: 48px;
  background: linear-gradient(180deg, #1a1e2a 0%, #0e111a 80%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pm-figure 10s ease-in-out infinite;
}
.scn-pensive-melancholy .music-glow {
  position: absolute; bottom: 40%; left: 30%; width: 40px; height: 40px;
  background: radial-gradient(circle, rgba(180,200,240,0.3) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(8px);
  animation: pm-music 14s ease-in-out infinite alternate;
}
.scn-pensive-melancholy .tree-on-cliff {
  position: absolute; bottom: 38%; left: 70%; width: 50px; height: 70px;
  background: linear-gradient(180deg, #1a1c22 0%, #0c0e14 100%);
  border-radius: 50% 50% 30% 30% / 70% 70% 30% 30%;
  transform: scaleX(0.6);
  filter: blur(1px);
  animation: pm-tree 25s ease-in-out infinite alternate;
}
@keyframes pm-sky {
  0% { opacity: 0.85; }
  50% { opacity: 1; }
  100% { opacity: 0.75; }
}
@keyframes pm-moon {
  0% { transform: translateY(0) scale(1); box-shadow: 0 0 30px 10px rgba(200,210,240,0.4); }
  50% { transform: translateY(2px) scale(1.02); box-shadow: 0 0 40px 15px rgba(200,210,240,0.5); }
  100% { transform: translateY(-3px) scale(0.98); box-shadow: 0 0 25px 8px rgba(200,210,240,0.35); }
}
@keyframes pm-cliff {
  0% { transform: translateY(0); }
  33% { transform: translateY(-2px); }
  66% { transform: translateY(1px); }
  100% { transform: translateY(-1px); }
}
@keyframes pm-wave1 {
  0% { transform: translateY(0) scaleX(1); opacity: 0.6; }
  50% { transform: translateY(-3px) scaleX(1.02); opacity: 0.9; }
  100% { transform: translateY(2px) scaleX(0.98); opacity: 0.7; }
}
@keyframes pm-wave2 {
  0% { transform: translateY(0) scaleX(1); opacity: 0.5; }
  50% { transform: translateY(2px) scaleX(0.97); opacity: 0.8; }
  100% { transform: translateY(-2px) scaleX(1.05); opacity: 0.6; }
}
@keyframes pm-figure {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-2px) rotate(2deg); }
  50% { transform: translateY(0) rotate(-1deg); }
  75% { transform: translateY(-1px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes pm-music {
  0% { transform: scale(0.8) rotate(-5deg); opacity: 0.3; }
  50% { transform: scale(1.2) rotate(5deg); opacity: 0.7; }
  100% { transform: scale(0.9) rotate(0deg); opacity: 0.4; }
}
@keyframes pm-tree {
  0% { transform: scaleX(0.6) scaleY(1); }
  50% { transform: scaleX(0.62) scaleY(1.03) rotate(1deg); }
  100% { transform: scaleX(0.58) scaleY(0.97) rotate(-1deg); }
}

/* Scene: ludovico’s-offer – dim interior, calm mood */
.scn-ludovico’s-offer {
  background:
    radial-gradient(ellipse at 50% 60%, #3a2a1a 0%, #1a1210 70%, #0d0808 100%),
    linear-gradient(0deg, #1a1210 0%, #2a1e14 50%, #1a1210 100%);
}
.scn-ludovico’s-offer .wall-bg {
  position: absolute; inset: 5% 10% 20% 10%;
  background: linear-gradient(135deg, #2a1e14 0%, #1a1210 100%);
  border-radius: 4% 4% 8% 8% / 6% 6% 12% 12%;
  box-shadow: inset 0 0 60px #0d0808;
  animation: lo-wall 12s ease-in-out infinite;
}
.scn-ludovico’s-offer .door-frame {
  position: absolute; left: 30%; bottom: 20%; width: 28%; height: 55%;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%);
  border-radius: 6% 6% 2% 2% / 10% 10% 4% 4%;
  box-shadow: 0 4px 12px #0d0808;
}
.scn-ludovico’s-offer .door-panel {
  position: absolute; left: 32%; bottom: 22%; width: 24%; height: 50%;
  background: linear-gradient(180deg, #3a2212 0%, #1a0e06 100%);
  border-radius: 4% 4% 2% 2%;
  transform: scaleX(0.95);
  animation: lo-door 20s ease-in-out infinite alternate;
}
.scn-ludovico’s-offer .figure-emily {
  position: absolute; left: 48%; bottom: 22%; width: 8%; height: 40%;
  background: linear-gradient(180deg, #1a1210 0%, #0d0808 60%, #1a1210 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lo-figure 6s ease-in-out infinite;
}
.scn-ludovico’s-offer .candle {
  position: absolute; left: 62%; bottom: 45%; width: 2%; height: 8%;
  background: linear-gradient(180deg, #d4a460 0%, #c08040 40%, #6a4020 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 -2px 8px #c08040;
  animation: lo-candle 2s ease-in-out infinite;
}
.scn-ludovico’s-offer .candle-light {
  position: absolute; left: 61%; bottom: 48%; width: 4%; height: 4%;
  background: radial-gradient(circle, #ffd070 0%, #e8a030 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px #e8a030, 0 0 60px 20px #c08040;
  animation: lo-glow 3s ease-in-out infinite alternate;
}
.scn-ludovico’s-offer .table {
  position: absolute; left: 58%; bottom: 20%; width: 14%; height: 6%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 6% 6% 2% 2%;
  box-shadow: 0 4px 10px #0d0808;
  animation: lo-table 10s ease-in-out infinite;
}
@keyframes lo-wall { 0%,100% { opacity:0.9 } 50% { opacity:1 } }
@keyframes lo-door { 0% { transform: scaleX(0.95); } 50% { transform: scaleX(1); } 100% { transform: scaleX(0.98); } }
@keyframes lo-figure { 0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2%) rotate(0.5deg); } 50% { transform: translateX(0) rotate(-0.3deg); } 75% { transform: translateX(-1%) rotate(0.3deg); } }
@keyframes lo-candle { 0%,100% { transform: scaleY(1); } 30% { transform: scaleY(1.03); } 60% { transform: scaleY(0.97); } }
@keyframes lo-glow { 0% { opacity:0.7; box-shadow: 0 0 20px 6px #e8a030, 0 0 40px 12px #c08040; } 50% { opacity:1; box-shadow: 0 0 35px 12px #ffd070, 0 0 70px 20px #e8a030; } 100% { opacity:0.8; box-shadow: 0 0 25px 8px #e8a030, 0 0 50px 15px #c08040; } }
@keyframes lo-table { 0%,100% { transform: translateY(0); } 50% { transform: translateY(1%); } }

/* Scene: ludovico’s thoughts – moonlit, calm mood */
.scn-ludovico’s-thoughts {
  background:
    radial-gradient(ellipse at 50% 10%, #1a2a4a 0%, #0d1525 70%, #050810 100%),
    linear-gradient(0deg, #0d1525 0%, #1a2a4a 40%, #0d1525 100%);
}
.scn-ludovico’s-thoughts .moon {
  position: absolute; top: 8%; right: 30%; width: 8%; height: 14%;
  background: radial-gradient(circle at 60% 40%, #d0d8e0 0%, #a0a8b8 50%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px #a0a8b8, 0 0 80px 40px rgba(160,168,184,0.3);
  animation: lt-moon 8s ease-in-out infinite alternate;
}
.scn-ludovico’s-thoughts .cloud-a {
  position: absolute; top: 12%; left: -10%; width: 30%; height: 6%;
  background: linear-gradient(180deg, rgba(160,168,184,0.4) 0%, rgba(200,208,220,0.1) 100%);
  border-radius: 50%;
  filter: blur(8px);
  animation: lt-cloud-a 40s linear infinite;
}
.scn-ludovico’s-thoughts .cloud-b {
  position: absolute; top: 20%; left: -20%; width: 40%; height: 5%;
  background: linear-gradient(180deg, rgba(160,168,184,0.3) 0%, rgba(200,208,220,0.05) 100%);
  border-radius: 50%;
  filter: blur(10px);
  animation: lt-cloud-b 50s linear infinite;
}
.scn-ludovico’s-thoughts .figure-ludovico {
  position: absolute; left: 45%; bottom: 30%; width: 7%; height: 35%;
  background: linear-gradient(180deg, #0d1525 0%, #050810 60%, #0d1525 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lt-figure 7s ease-in-out infinite;
}
.scn-ludovico’s-thoughts .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #0d1525 0%, #152040 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.6);
  animation: lt-ground 15s ease-in-out infinite alternate;
}
.scn-ludovico’s-thoughts .tree {
  position: absolute; left: 20%; bottom: 25%; width: 6%; height: 40%;
  background: linear-gradient(180deg, #0d1525 0%, #050810 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%;
  transform-origin: bottom center;
  animation: lt-tree 12s ease-in-out infinite;
}
.scn-ludovico’s-thoughts .star-a {
  position: absolute; top: 5%; left: 15%; width: 2%; height: 2%;
  background: radial-gradient(circle, #d0d8e0 0%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 6px 2px #d0d8e0;
  animation: lt-star-a 4s ease-in-out infinite alternate;
}
.scn-ludovico’s-thoughts .star-b {
  position: absolute; top: 8%; left: 70%; width: 1.5%; height: 1.5%;
  background: radial-gradient(circle, #d0d8e0 0%, transparent 80%);
  border-radius: 50%;
  box-shadow: 0 0 4px 1px #d0d8e0;
  animation: lt-star-b 5s ease-in-out infinite alternate-reverse;
}
@keyframes lt-moon { 0% { transform: translateY(0) scale(1); opacity:0.9; } 50% { transform: translateY(-3%) scale(1.02); opacity:1; } 100% { transform: translateY(0) scale(0.98); opacity:0.85; } }
@keyframes lt-cloud-a { 0% { transform: translateX(0); } 100% { transform: translateX(120vw); } }
@keyframes lt-cloud-b { 0% { transform: translateX(0); } 100% { transform: translateX(130vw); } }
@keyframes lt-figure { 0%,100% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2%) rotate(0.8deg); } 50% { transform: translateY(0) rotate(-0.5deg); } 75% { transform: translateY(-1%) rotate(0.3deg); } }
@keyframes lt-ground { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(0.98); } }
@keyframes lt-tree { 0%,100% { transform: rotate(0deg); } 50% { transform: rotate(2deg); } }
@keyframes lt-star-a { 0% { opacity:0.3; } 50% { opacity:1; } 100% { opacity:0.6; } }
@keyframes lt-star-b { 0% { opacity:0.5; } 50% { opacity:0.2; } 100% { opacity:0.8; } }

/* perplexity‑montoni – calm dim interior with candlelight */
.scn-perplexity-montoni {
  background: 
    linear-gradient(180deg, #1a1410 0%, #2b221c 30%, #3d322a 60%, #1f1a16 100%),
    radial-gradient(ellipse at 60% 20%, #4a3e35 0%, transparent 60%);
}
.scn-perplexity-montoni .pm-wall {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(90deg, #2b221c 0%, #3d322a 30%, #2b221c 100%);
  animation: pm-wall 15s ease-in-out infinite alternate;
}
.scn-perplexity-montoni .pm-floor {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #1f1a16 0%, #14100c 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,.6);
}
.scn-perplexity-montoni .pm-window {
  position:absolute; top:15%; right:12%; width:70px; height:100px;
  background: linear-gradient(135deg, #0f0b07 0%, #2a2018 50%, #1a1410 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 30px rgba(0,0,0,.7), 0 0 10px rgba(200,170,130,0.1);
  animation: pm-window 8s ease-in-out infinite alternate;
}
.scn-perplexity-montoni .pm-desk {
  position:absolute; bottom:20%; left:20%; width:120px; height:20px;
  background: linear-gradient(180deg, #4a3a2e 0%, #2e241c 100%);
  border-radius: 2px;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
  animation: pm-desk 12s ease-in-out infinite;
}
.scn-perplexity-montoni .pm-candle {
  position:absolute; bottom:32%; left:32%; width:6px; height:16px;
  background: linear-gradient(0deg, #b87a4a 0%, #e6c49a 50%, #f0d8b0 100%);
  border-radius: 10% 10% 30% 30%;
  box-shadow: 0 0 20px 8px rgba(240,200,150,0.6), 0 0 40px 16px rgba(240,200,150,0.3);
  animation: pm-candle-glow 2s ease-in-out infinite alternate;
}
.scn-perplexity-montoni .pm-figure {
  position:absolute; bottom:20%; left:35%; width:30px; height:70px;
  background: linear-gradient(180deg, #1a1410 0%, #2b221c 50%, #1a1410 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pm-figure-sway 6s ease-in-out infinite alternate;
}
.scn-perplexity-montoni .pm-shadow {
  position:absolute; bottom:20%; left:30%; width:60px; height:10px;
  background: radial-gradient(ellipse, rgba(0,0,0,.6) 0%, transparent 100%);
  border-radius: 50%;
  animation: pm-shadow 6s ease-in-out infinite alternate;
}
@keyframes pm-wall {
  0% { opacity:0.9; }
  50% { opacity:1; }
  100% { opacity:0.85; }
}
@keyframes pm-window {
  0% { box-shadow: inset 0 0 30px rgba(0,0,0,.7), 0 0 10px rgba(200,170,130,0.05); }
  50% { box-shadow: inset 0 0 30px rgba(0,0,0,.7), 0 0 15px rgba(200,170,130,0.15); }
  100% { box-shadow: inset 0 0 30px rgba(0,0,0,.7), 0 0 10px rgba(200,170,130,0.08); }
}
@keyframes pm-desk {
  0% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
  100% { transform: translateY(0); }
}
@keyframes pm-candle-glow {
  0% { box-shadow: 0 0 15px 6px rgba(240,200,150,0.5), 0 0 30px 12px rgba(240,200,150,0.2); opacity:0.9; }
  50% { box-shadow: 0 0 25px 10px rgba(240,200,150,0.7), 0 0 50px 20px rgba(240,200,150,0.35); opacity:1; }
  100% { box-shadow: 0 0 18px 7px rgba(240,200,150,0.55), 0 0 35px 14px rgba(240,200,150,0.25); opacity:0.95; }
}
@keyframes pm-figure-sway {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(2px) rotate(-1deg); }
  50% { transform: translateX(0) rotate(1deg); }
  75% { transform: translateX(-2px) rotate(0deg); }
  100% { transform: translateX(0) rotate(-0.5deg); }
}
@keyframes pm-shadow {
  0% { transform: scaleX(1) translateX(0); opacity:0.7; }
  50% { transform: scaleX(0.95) translateX(2px); opacity:0.6; }
  100% { transform: scaleX(1) translateX(0); opacity:0.7; }
}

/* return‑to‑venice – tense dim cell with cold light */
.scn-return-to-venice {
  background: 
    linear-gradient(180deg, #0e1118 0%, #1a1f2a 30%, #242b38 60%, #12151e 100%),
    radial-gradient(ellipse at 30% 60%, #2a3340 0%, transparent 60%);
}
.scn-return-to-venice .rv-wall {
  position:absolute; inset:0 0 25% 0;
  background: linear-gradient(90deg, #1a1f2a 0%, #242b38 30%, #1a1f2a 100%);
  animation: rv-wall 18s ease-in-out infinite alternate;
}
.scn-return-to-venice .rv-bars {
  position:absolute; inset:15% 20% 40% 20%;
  background: repeating-linear-gradient(0deg, 
    transparent 0px, transparent 6px,
    #3a4050 6px, #3a4050 8px,
    transparent 8px, transparent 20px
  );
  opacity:0.4;
  animation: rv-bars 4s ease-in-out infinite alternate;
}
.scn-return-to-venice .rv-floor {
  position:absolute; bottom:0; left:0; right:0; height:25%;
  background: linear-gradient(180deg, #12151e 0%, #0a0c10 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,.7);
}
.scn-return-to-venice .rv-figure {
  position:absolute; bottom:20%; left:45%; width:28px; height:60px;
  background: linear-gradient(180deg, #1a1f2a 0%, #242b38 50%, #1a1f2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rv-figure-twitch 3s ease-in-out infinite;
}
.scn-return-to-venice .rv-lantern {
  position:absolute; bottom:45%; left:15%; width:12px; height:18px;
  background: linear-gradient(180deg, #c0a080 0%, #806040 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 25px 10px rgba(200,180,140,0.3), 0 0 50px 20px rgba(200,180,140,0.1);
  animation: rv-lantern-sway 5s ease-in-out infinite;
}
.scn-return-to-venice .rv-window {
  position:absolute; top:12%; right:15%; width:40px; height:50px;
  background: linear-gradient(135deg, #1a2028 0%, #2a3440 50%, #1a2028 100%);
  border-radius: 2px;
  box-shadow: inset 0 0 20px rgba(0,0,0,.8), 0 0 8px rgba(180,200,230,0.15);
  animation: rv-window-light 10s ease-in-out infinite alternate;
}
.scn-return-to-venice .rv-chain {
  position:absolute; bottom:25%; left:55%; width:4px; height:40px;
  background: repeating-linear-gradient(0deg, 
    #606060 0px, #606060 3px,
    transparent 3px, transparent 5px,
    #606060 5px, #606060 8px,
    transparent 8px, transparent 10px
  );
  border-radius: 2px;
  animation: rv-chain-rattle 2s ease-in-out infinite;
}
.scn-return-to-venice .rv-shadow {
  position:absolute; bottom:20%; left:40%; width:70px; height:12px;
  background: radial-gradient(ellipse, rgba(0,0,0,.7) 0%, transparent 100%);
  border-radius: 50%;
  animation: rv-shadow 3s ease-in-out infinite alternate;
}
@keyframes rv-wall {
  0% { opacity:0.85; }
  50% { opacity:1; }
  100% { opacity:0.9; }
}
@keyframes rv-bars {
  0% { opacity:0.3; }
  50% { opacity:0.5; }
  100% { opacity:0.35; }
}
@keyframes rv-figure-twitch {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-3px) rotate(-2deg); }
  50% { transform: translateY(1px) rotate(1deg); }
  75% { transform: translateY(-2px) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes rv-lantern-sway {
  0% { transform: translate(0,0) rotate(-5deg); }
  25% { transform: translate(2px,-1px) rotate(3deg); }
  50% { transform: translate(0,0) rotate(-4deg); }
  75% { transform: translate(-2px,1px) rotate(5deg); }
  100% { transform: translate(0,0) rotate(-3deg); }
}
@keyframes rv-window-light {
  0% { opacity:0.6; box-shadow: inset 0 0 20px rgba(0,0,0,.8), 0 0 8px rgba(180,200,230,0.1); }
  50% { opacity:0.9; box-shadow: inset 0 0 20px rgba(0,0,0,.8), 0 0 15px rgba(180,200,230,0.3); }
  100% { opacity:0.7; box-shadow: inset 0 0 20px rgba(0,0,0,.8), 0 0 10px rgba(180,200,230,0.15); }
}
@keyframes rv-chain-rattle {
  0% { transform: translateY(0) rotate(0deg); }
  25% { transform: translateY(-2px) rotate(3deg); }
  50% { transform: translateY(0) rotate(-2deg); }
  75% { transform: translateY(1px) rotate(1deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes rv-shadow {
  0% { transform: scaleX(1) translateX(0); opacity:0.6; }
  50% { transform: scaleX(0.9) translateX(3px); opacity:0.5; }
  100% { transform: scaleX(1) translateX(0); opacity:0.6; }
}

/* count’s-delight */
.scn-count’s-delight {
  background:
    linear-gradient(180deg, #2b1a0e 0%, #4a3020 40%, #8b5e3c 70%, #c9a06a 100%),
    radial-gradient(ellipse at 60% 40%, #ffd280 0%, transparent 60%);
}
.scn-count’s-delight .wall {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #6b4a2a 0%, #8a6a4a 50%, #4a2a1a 100%);
  border-radius: 0 0 40% 40% / 0 0 20% 20%;
  animation: cd-wall 12s ease-in-out infinite alternate;
}
.scn-count’s-delight .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #5a3a20 0%, #3a2a1a 100%);
  border-radius: 60% 40% 0 0 / 30% 20% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.6);
  transform: perspective(600px) rotateX(5deg);
  animation: cd-floor 8s ease-in-out infinite alternate;
}
.scn-count’s-delight .window {
  position: absolute; top: 10%; left: 30%; width: 28%; height: 40%;
  background: linear-gradient(180deg, #d4a060 0%, #b08040 50%, #7a4a20 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 10% 10%;
  border: 4px solid #4a2a1a;
  box-shadow: inset 0 0 40px #f0c080, 0 0 30px rgba(240,192,128,0.5);
  animation: cd-window 6s ease-in-out infinite alternate;
}
.scn-count’s-delight .chandelier {
  position: absolute; top: 4%; left: 50%; width: 60px; height: 90px;
  transform: translateX(-50%);
  background: radial-gradient(circle at 50% 20%, #ffd060 0%, #c08030 40%, transparent 70%);
  border-radius: 50% 50% 10% 10%;
  box-shadow: 0 0 60px 20px #ffc060;
  animation: cd-chandelier 4s ease-in-out infinite;
}
.scn-count’s-delight .count {
  position: absolute; bottom: 30%; left: 42%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: cd-count 9s ease-in-out infinite;
}
.scn-count’s-delight .dancer {
  position: absolute; bottom: 28%; width: 18px; height: 42px;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
}
.scn-count’s-delight .dancer-l {
  left: 20%;
  animation: cd-dancer-l 5s ease-in-out infinite;
}
.scn-count’s-delight .dancer-r {
  right: 20%;
  animation: cd-dancer-r 5.5s ease-in-out infinite;
}
.scn-count’s-delight .ambient-glow {
  position: absolute; inset: 0;
  background: radial-gradient(circle at 50% 30%, rgba(255,200,100,0.15) 0%, transparent 70%);
  animation: cd-glow 8s ease-in-out infinite alternate;
}
@keyframes cd-wall {
  0% { opacity: 0.8; transform: scaleX(1); }
  50% { opacity: 1; transform: scaleX(1.02); }
  100% { opacity: 0.85; transform: scaleX(0.98); }
}
@keyframes cd-floor {
  0% { transform: perspective(600px) rotateX(5deg) translateY(0); }
  50% { transform: perspective(600px) rotateX(4deg) translateY(-2px); }
  100% { transform: perspective(600px) rotateX(6deg) translateY(0); }
}
@keyframes cd-window {
  0% { box-shadow: inset 0 0 20px #f0c080, 0 0 20px rgba(240,192,128,0.3); }
  50% { box-shadow: inset 0 0 50px #ffd090, 0 0 40px rgba(255,208,144,0.6); }
  100% { box-shadow: inset 0 0 30px #e0b070, 0 0 25px rgba(224,176,112,0.4); }
}
@keyframes cd-chandelier {
  0%, 100% { transform: translateX(-50%) rotate(0deg) scale(1); }
  33% { transform: translateX(-50%) rotate(2deg) scale(1.05); }
  66% { transform: translateX(-50%) rotate(-1deg) scale(0.95); }
}
@keyframes cd-count {
  0% { transform: translateY(0) rotate(-1deg); }
  30% { transform: translateY(-3px) rotate(0deg); }
  60% { transform: translateY(0) rotate(2deg); }
  100% { transform: translateY(-1px) rotate(-1deg); }
}
@keyframes cd-dancer-l {
  0%, 100% { transform: translateY(0) rotate(-5deg); }
  25% { transform: translateY(-4px) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(5deg); }
  75% { transform: translateY(-1px) rotate(-3deg); }
}
@keyframes cd-dancer-r {
  0%, 100% { transform: translateY(0) rotate(5deg); }
  25% { transform: translateY(-3px) rotate(0deg); }
  50% { transform: translateY(-1px) rotate(-5deg); }
  75% { transform: translateY(-2px) rotate(3deg); }
}
@keyframes cd-glow {
  0% { opacity: 0.5; }
  50% { opacity: 0.8; }
  100% { opacity: 0.4; }
}

/* count’s-warning */
.scn-count’s-warning {
  background:
    linear-gradient(180deg, #e6f0f0 0%, #c0d0d0 30%, #80a0a0 60%, #405050 100%),
    radial-gradient(ellipse at 30% 50%, #fff8e0 0%, transparent 70%);
}
.scn-count’s-warning .room-bg {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #f0f5f5 0%, #b0c0c0 50%, #607070 100%);
  clip-path: polygon(0 0, 100% 0, 100% 85%, 0 95%);
  animation: cw-room 15s ease-in-out infinite alternate;
}
.scn-count’s-warning .window-bright {
  position: absolute; top: 8%; right: 12%; width: 30%; height: 45%;
  background: linear-gradient(180deg, #ffffff 0%, #e0eff0 50%, #b0c0c0 100%);
  border-radius: 20% 20% 5% 5% / 30% 30% 5% 5%;
  box-shadow: inset 0 0 60px #fff8e0, 0 0 40px rgba(255,248,224,0.6);
  animation: cw-window 6s ease-in-out infinite alternate;
}
.scn-count’s-warning .sunbeam {
  position: absolute; top: 10%; right: 15%; width: 80%; height: 60%;
  background: linear-gradient(135deg, rgba(255,250,230,0.4) 0%, transparent 60%);
  transform-origin: top right;
  clip-path: polygon(0 0, 100% 0, 85% 100%, 15% 100%);
  animation: cw-sunbeam 10s ease-in-out infinite alternate;
}
.scn-count’s-warning .figure {
  position: absolute; bottom: 22%; width: 20px; height: 46px;
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
}
.scn-count’s-warning .count-fig {
  left: 34%;
  background: linear-gradient(180deg, #2a2a2a 0%, #0a0a0a 100%);
  transform-origin: bottom right;
  animation: cw-count 4s ease-in-out infinite;
}
.scn-count’s-warning .emily-fig {
  left: 50%;
  background: linear-gradient(180deg, #3a3030 0%, #1a1010 100%);
  transform-origin: bottom left;
  animation: cw-emily 4.2s ease-in-out infinite;
}
.scn-count’s-warning .shadow-floor {
  position: absolute; bottom: 15%; left: 30%; width: 35%; height: 12%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.5) 0%, transparent 100%);
  border-radius: 50%;
  animation: cw-shadow 6s ease-in-out infinite alternate;
}
.scn-count’s-warning .table {
  position: absolute; bottom: 10%; left: 44%; width: 40px; height: 20px;
  background: linear-gradient(180deg, #8a7a6a 0%, #4a3a2a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  animation: cw-table 7s ease-in-out infinite;
}
@keyframes cw-room {
  0% { filter: brightness(1) contrast(0.9); }
  50% { filter: brightness(1.1) contrast(1.2); }
  100% { filter: brightness(0.95) contrast(1); }
}
@keyframes cw-window {
  0% { opacity: 0.8; box-shadow: inset 0 0 30px #fff8e0, 0 0 20px rgba(255,248,224,0.3); }
  50% { opacity: 1; box-shadow: inset 0 0 80px #fff8e0, 0 0 60px rgba(255,248,224,0.7); }
  100% { opacity: 0.85; box-shadow: inset 0 0 40px #e0e8d0, 0 0 30px rgba(224,232,208,0.4); }
}
@keyframes cw-sunbeam {
  0% { transform: translateX(0) rotate(0deg) scaleY(1); opacity: 0.3; }
  50% { transform: translateX(10px) rotate(-3deg) scaleY(1.2); opacity: 0.6; }
  100% { transform: translateX(-5px) rotate(2deg) scaleY(0.9); opacity: 0.2; }
}
@keyframes cw-count {
  0%, 100% { transform: translateY(0) rotate(-2deg); }
  30% { transform: translateY(-2px) rotate(1deg); }
  60% { transform: translateY(-1px) rotate(-3deg); }
}
@keyframes cw-emily {
  0%, 100% { transform: translateY(0) rotate(3deg); }
  40% { transform: translateY(-3px) rotate(-1deg); }
  80% { transform: translateY(-2px) rotate(4deg); }
}
@keyframes cw-shadow {
  0% { transform: scaleX(1); opacity: 0.5; }
  50% { transform: scaleX(1.3); opacity: 0.8; }
  100% { transform: scaleX(0.9); opacity: 0.4; }
}
@keyframes cw-table {
  0%, 100% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
}

.scn-dawn-overlandscape {
  background:
    linear-gradient(180deg,
      #f9c56a 0%, #f9e0a0 20%, #d4a0f0 50%, #8a7abc 80%, #3a3a5e 100%),
    radial-gradient(ellipse at 50% 70%, #ffd080 0%, transparent 60%);
  background-blend-mode: overlay;
}
.scn-dawn-overlandscape .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, rgba(255,200,120,0.3), transparent);
  animation: dl-sky 20s ease-in-out infinite alternate;
}
.scn-dawn-overlandscape .sun {
  position: absolute; bottom: 38%; left: 50%; transform: translateX(-50%);
  width: 60px; height: 60px;
  background: radial-gradient(circle, #ffcc66 0%, #ff9933 50%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 80px 40px #ffaa33, 0 0 160px 80px rgba(255,170,51,0.3);
  animation: dl-sun 12s ease-in-out infinite;
}
.scn-dawn-overlandscape .mountains-far {
  position: absolute; bottom: 32%; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #a080c0 0%, #6a5080 100%);
  border-radius: 30% 50% 0 0 / 50% 60% 0 0;
  clip-path: polygon(0% 100%, 5% 60%, 15% 80%, 30% 40%, 50% 70%, 70% 30%, 85% 55%, 100% 50%, 100% 100%);
  animation: dl-mountains 25s ease-in-out infinite alternate;
}
.scn-dawn-overlandscape .mountains-mid {
  position: absolute; bottom: 25%; left: -5%; right: -5%; height: 20%;
  background: linear-gradient(180deg, #7a6070 0%, #4a3848 100%);
  border-radius: 40% 30% 0 0 / 60% 40% 0 0;
  clip-path: polygon(0% 100%, 10% 50%, 25% 70%, 40% 30%, 60% 65%, 80% 20%, 95% 45%, 100% 40%, 100% 100%);
  animation: dl-mountains-mid 30s ease-in-out infinite alternate;
}
.scn-dawn-overlandscape .sunbeams {
  position: absolute; inset: 0;
  background: repeating-linear-gradient(45deg,
    rgba(255,200,100,0.15) 0px, rgba(255,200,100,0.15) 80px,
    transparent 80px, transparent 160px);
  animation: dl-beams 8s ease-in-out infinite alternate;
}
.scn-dawn-overlandscape .foreground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #5a4a2a 0%, #2a1a0a 100%);
  border-radius: 20% 30% 0 0 / 40% 60% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.6);
  animation: dl-foreground 14s ease-in-out infinite;
}
.scn-dawn-overlandscape .tree {
  position: absolute; bottom: 20%; left: 22%; width: 12px; height: 50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 30% 30% 10% 10%;
  transform-origin: bottom center;
  box-shadow: 0 0 0 0 transparent;
  animation: dl-tree 6s ease-in-out infinite;
}
@keyframes dl-sky {
  0% { opacity: 0.6; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes dl-sun {
  0% { transform: translateX(-50%) scale(1); opacity: 0.8; }
  50% { transform: translateX(-50%) scale(1.15); opacity: 1; }
  100% { transform: translateX(-50%) scale(0.95); opacity: 0.9; }
}
@keyframes dl-mountains {
  0% { transform: translateY(0) scaleX(1); }
  50% { transform: translateY(-3px) scaleX(1.02); }
  100% { transform: translateY(2px) scaleX(0.98); }
}
@keyframes dl-mountains-mid {
  0% { transform: translateY(0) scaleX(1); }
  50% { transform: translateY(2px) scaleX(0.98); }
  100% { transform: translateY(-4px) scaleX(1.03); }
}
@keyframes dl-beams {
  0% { opacity: 0.6; transform: rotate(-2deg); }
  50% { opacity: 1; transform: rotate(0deg); }
  100% { opacity: 0.7; transform: rotate(2deg); }
}
@keyframes dl-foreground {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(1px); }
}
@keyframes dl-tree {
  0% { transform: rotate(-1deg); }
  50% { transform: rotate(1.5deg); }
  100% { transform: rotate(-1deg); }
}

.scn-condottieri-explanation {
  background:
    linear-gradient(180deg, #1a0e06 0%, #2c1810 40%, #3a2218 70%, #1a0e06 100%),
    radial-gradient(ellipse at 50% 50%, #4a3020 0%, transparent 70%);
  background-blend-mode: multiply;
}
.scn-condottieri-explanation .wall {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #3a2218 0%, #2c1810 50%, #1f1008 100%);
  box-shadow: inset 0 0 100px rgba(0,0,0,0.8);
}
.scn-condottieri-explanation .window {
  position: absolute; top: 15%; left: 50%; transform: translateX(-50%);
  width: 120px; height: 160px;
  background: linear-gradient(180deg, #1a1a3e 0%, #2a2a4e 50%, #3a3a5e 100%);
  border: 6px solid #4a3a2a;
  border-radius: 4px;
  box-shadow: inset 0 0 40px #000, 0 0 20px rgba(80,80,180,0.3);
  animation: ce-window 12s ease-in-out infinite alternate;
}
.scn-condottieri-explanation .curtain {
  position: absolute; top: 12%; left: 30%; width: 18%; height: 70%;
  background: linear-gradient(180deg, #6a4a3a 0%, #4a3020 60%, #2c1810 100%);
  border-radius: 0 80% 0 0 / 0 60% 0 0;
  clip-path: polygon(0 0, 100% 0, 70% 20%, 100% 40%, 60% 60%, 90% 80%, 50% 100%, 0 100%);
  transform-origin: top left;
  animation: ce-curtain 20s ease-in-out infinite;
}
.scn-condottieri-explanation .desk {
  position: absolute; bottom: 10%; left: 25%; right: 25%; height: 12%;
  background: linear-gradient(180deg, #5a4028 0%, #3a2818 100%);
  border-radius: 4px;
  box-shadow: 0 -6px 20px rgba(0,0,0,0.5);
  transform: perspective(600px) rotateX(20deg);
}
.scn-condottieri-explanation .figure {
  position: absolute; bottom: 22%; left: 40%; width: 50px; height: 80px;
  background: linear-gradient(180deg, #1a1008 0%, #0d0804 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 0 4px 12px rgba(0,0,0,0.6);
  animation: ce-figure 8s ease-in-out infinite;
}
.scn-condottieri-explanation .candle {
  position: absolute; bottom: 20%; left: 55%; width: 8px; height: 30px;
  background: linear-gradient(180deg, #f0d080 0%, #e0b060 60%, #8a6a30 100%);
  border-radius: 2px;
  box-shadow: 0 0 20px 10px #ffcc66, 0 0 40px 20px rgba(255,204,102,0.3);
  animation: ce-candle 3s ease-in-out infinite;
}
.scn-condottieri-explanation .books {
  position: absolute; bottom: 22%; left: 20%; width: 40px; height: 50px;
  background:
    linear-gradient(90deg, #8a6040 0px, #604028 4px, #7a5030 4px, #503828 8px, #6a4030 8px, #402820 12px),
    linear-gradient(180deg, #5a3a20 0%, #3a2010 100%);
  background-size: 12px 100%, 100% 100%;
  box-shadow: 4px 4px 10px rgba(0,0,0,0.4);
  border-radius: 2px;
  animation: ce-books 30s linear infinite;
}
@keyframes ce-window {
  0% { opacity: 0.7; box-shadow: inset 0 0 40px #000, 0 0 10px rgba(80,80,180,0.2); }
  50% { opacity: 1; box-shadow: inset 0 0 40px #000, 0 0 30px rgba(80,80,180,0.4); }
  100% { opacity: 0.8; box-shadow: inset 0 0 40px #000, 0 0 15px rgba(80,80,180,0.3); }
}
@keyframes ce-curtain {
  0% { transform: rotate(0deg) scaleX(1); }
  25% { transform: rotate(2deg) scaleX(1.02); }
  50% { transform: rotate(-1deg) scaleX(0.98); }
  75% { transform: rotate(3deg) scaleX(1.03); }
  100% { transform: rotate(0deg) scaleX(1); }
}
@keyframes ce-figure {
  0% { transform: translateY(0) rotate(-1deg); }
  25% { transform: translateY(-2px) rotate(0deg); }
  50% { transform: translateY(0) rotate(1deg); }
  75% { transform: translateY(-1px) rotate(0deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes ce-candle {
  0% { transform: scaleY(1) scaleX(1); opacity: 0.85; box-shadow: 0 0 20px 10px #ffcc66, 0 0 40px 20px rgba(255,204,102,0.3); }
  30% { transform: scaleY(1.05) scaleX(0.95); opacity: 1; box-shadow: 0 0 30px 15px #ffcc66, 0 0 60px 30px rgba(255,204,102,0.5); }
  60% { transform: scaleY(0.98) scaleX(1.02); opacity: 0.9; box-shadow: 0 0 18px 8px #ffcc66, 0 0 35px 15px rgba(255,204,102,0.3); }
  100% { transform: scaleY(1) scaleX(1); opacity: 0.85; box-shadow: 0 0 20px 10px #ffcc66, 0 0 40px 20px rgba(255,204,102,0.3); }
}
@keyframes ce-books {
  0% { transform: translateY(0); }
  50% { transform: translateY(-1px); }
  100% { transform: translateY(0); }
}

.scn-soldiers-tale {
  background:
    linear-gradient(180deg, #0a0a2e 0%, #1a1a4e 40%, #2a2a5e 80%, #1a1a3e 100%),
    radial-gradient(ellipse at 50% 20%, rgba(200,200,255,0.15) 0%, transparent 50%);
}
.scn-soldiers-tale .sky {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #0a0a2e 0%, #1a1a4e 100%);
  animation: st-sky 20s ease-in-out infinite alternate;
}
.scn-soldiers-tale .moon {
  position: absolute; top: 15%; left: 70%;
  width: 60px; height: 60px; border-radius: 50%;
  background: radial-gradient(circle at 30% 30%, #fff 0%, #eef 20%, #ccd 40%, transparent 60%);
  box-shadow: 0 0 40px 10px rgba(200,200,255,0.5);
  animation: st-moon 10s ease-in-out infinite alternate;
}
.scn-soldiers-tale .cloud {
  position: absolute;
  background: linear-gradient(90deg, rgba(255,255,255,0.3), rgba(255,255,255,0.1));
  border-radius: 50%;
  filter: blur(8px);
}
.scn-soldiers-tale .cloud-a {
  top: 25%; left: -10%;
  width: 120px; height: 30px;
  animation: st-cloud-a 40s linear infinite;
}
.scn-soldiers-tale .cloud-b {
  top: 35%; left: 50%;
  width: 80px; height: 20px;
  animation: st-cloud-b 60s linear infinite;
}
.scn-soldiers-tale .castle {
  position: absolute; bottom: 30%; left: 20%;
  width: 120px; height: 200px;
  background: linear-gradient(180deg, #2a2a3a 0%, #0a0a1a 100%);
  border-radius: 20% 20% 0 0;
  clip-path: polygon(0% 100%, 15% 80%, 15% 50%, 35% 40%, 35% 60%, 50% 50%, 50% 20%, 65% 30%, 65% 50%, 85% 40%, 85% 80%, 100% 100%);
  animation: st-castle 15s ease-in-out infinite alternate;
}
.scn-soldiers-tale .soldier {
  position: absolute; bottom: 38%; left: 45%;
  width: 20px; height: 40px;
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: st-soldier 6s ease-in-out infinite;
}
.scn-soldiers-tale .window-glow {
  position: absolute; bottom: 55%; left: 40%;
  width: 15px; height: 20px;
  background: radial-gradient(circle, #ffe 0%, #ffd 40%, transparent 70%);
  border-radius: 20%;
  box-shadow: 0 0 30px 10px rgba(255,255,200,0.6);
  animation: st-window 4s ease-in-out infinite alternate;
}
@keyframes st-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes st-moon {
  0% { transform: translateY(0) scale(1); box-shadow: 0 0 40px 10px rgba(200,200,255,0.5); }
  50% { transform: translateY(-5px) scale(1.05); box-shadow: 0 0 60px 15px rgba(200,200,255,0.7); }
  100% { transform: translateY(0) scale(1); }
}
@keyframes st-cloud-a {
  0% { transform: translateX(-200px); }
  100% { transform: translateX(120vw); }
}
@keyframes st-cloud-b {
  0% { transform: translateX(0); }
  100% { transform: translateX(-100vw); }
}
@keyframes st-castle {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes st-soldier {
  0% { transform: translateX(0) rotate(0); }
  25% { transform: translateX(3px) rotate(2deg); }
  50% { transform: translateX(0) rotate(0); }
  75% { transform: translateX(-3px) rotate(-2deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes st-window {
  0% { opacity: 0.7; box-shadow: 0 0 20px 5px rgba(255,255,200,0.4); }
  50% { opacity: 1; box-shadow: 0 0 40px 15px rgba(255,255,200,0.8); }
  100% { opacity: 0.8; box-shadow: 0 0 25px 8px rgba(255,255,200,0.5); }
}

.scn-friars-gaze {
  background:
    linear-gradient(180deg, #2a1a0a 0%, #3a2a1a 30%, #4a3a2a 60%, #2a1a0a 100%),
    radial-gradient(ellipse at 50% 100%, #6a4a2a 0%, transparent 50%);
}
.scn-friars-gaze .bg-stone {
  position: absolute; inset: 0;
  background: linear-gradient(180deg, #1a0a00 0%, #2a1a0a 100%);
  opacity: 0.4;
  animation: fg-bg 30s ease-in-out infinite alternate;
}
.scn-friars-gaze .arch {
  position: absolute; bottom: 20%; left: 25%;
  width: 50%; height: 80%;
  background: linear-gradient(180deg, #0a0000 0%, #1a0a00 100%);
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.8);
  animation: fg-arch 12s ease-in-out infinite alternate;
}
.scn-friars-gaze .torch {
  position: absolute; bottom: 45%; left: 45%;
  width: 10px; height: 20px;
  background: radial-gradient(circle, #ffe 0%, #ffa 30%, #f80 60%, transparent 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 30px 15px rgba(255,200,0,0.6);
  animation: fg-torch 0.5s ease-in-out infinite alternate;
}
.scn-friars-gaze .torch-light {
  position: absolute; bottom: 50%; left: 40%;
  width: 120px; height: 200px;
  background: radial-gradient(ellipse at 50% 100%, rgba(255,200,100,0.3) 0%, transparent 70%);
  transform-origin: bottom center;
  animation: fg-light 2s ease-in-out infinite alternate;
}
.scn-friars-gaze .friar {
  position: absolute; bottom: 20%; left: 30%;
  width: 30px; height: 50px;
  background: linear-gradient(180deg, #1a0a00 0%, #0a0000 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fg-friar 4s ease-in-out infinite;
}
.scn-friars-gaze .emily {
  position: absolute; bottom: 20%; left: 60%;
  width: 20px; height: 45px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fg-emily 5s ease-in-out infinite;
}
.scn-friars-gaze .pillar-left,
.scn-friars-gaze .pillar-right {
  position: absolute; bottom: 0; top: 0;
  width: 15px;
  background: linear-gradient(90deg, #2a1a0a, #4a3a2a, #2a1a0a);
  border-radius: 5%;
  box-shadow: 0 0 10px rgba(0,0,0,0.5);
}
.scn-friars-gaze .pillar-left { left: 5%; }
.scn-friars-gaze .pillar-right { right: 5%; }
@keyframes fg-bg {
  0% { opacity: 0.4; }
  50% { opacity: 0.6; }
  100% { opacity: 0.4; }
}
@keyframes fg-arch {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.01); }
  100% { transform: scaleY(1); }
}
@keyframes fg-torch {
  0% { transform: scale(1) rotate(-2deg); box-shadow: 0 0 25px 12px rgba(255,200,0,0.5); }
  50% { transform: scale(1.15) rotate(0deg); box-shadow: 0 0 35px 18px rgba(255,200,0,0.7); }
  100% { transform: scale(1) rotate(2deg); box-shadow: 0 0 25px 12px rgba(255,200,0,0.5); }
}
@keyframes fg-light {
  0% { transform: scaleX(0.95); opacity: 0.8; }
  50% { transform: scaleX(1.05); opacity: 1; }
  100% { transform: scaleX(0.95); opacity: 0.8; }
}
@keyframes fg-friar {
  0% { transform: translateX(0) rotate(0); }
  25% { transform: translateX(2px) rotate(1deg); }
  50% { transform: translateX(0) rotate(0); }
  75% { transform: translateX(-2px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0); }
}
@keyframes fg-emily {
  0% { transform: translateY(0) scale(1); }
  30% { transform: translateY(-2px) scale(1.02); }
  60% { transform: translateY(0) scale(1); }
  100% { transform: translateY(0) scale(1); }
}

.scn-father\’s-melancholy {
  background: linear-gradient(180deg, #2c1e16 0%, #4a3524 50%, #3a2a1a 100%),
              radial-gradient(ellipse at 30% 60%, #6b4a3a 0%, transparent 70%);
}
.scn-father\’s-melancholy .wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #2c1e16 0%, #1f1410 100%);
  animation: fm-wall 20s ease-in-out infinite alternate;
}
.scn-father\’s-melancholy .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #2a1a12 0%, #1a0e08 100%);
  border-radius: 30% 70% 0 0 / 20% 20% 0 0;
  animation: fm-floor 15s ease-in-out infinite alternate;
}
.scn-father\’s-melancholy .window {
  position: absolute; top: 15%; left: 12%; width: 20%; height: 35%;
  background: linear-gradient(180deg, #3a4a5a 0%, #1a2a3a 100%);
  border-radius: 4% 4% 2% 2%;
  box-shadow: inset 0 0 20px rgba(0,0,0,.5);
  animation: fm-window 12s ease-in-out infinite alternate;
}
.scn-father\’s-melancholy .chair {
  position: absolute; bottom: 37%; left: 55%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%);
  border-radius: 10% 10% 20% 20% / 10% 10% 30% 30%;
  transform: skewX(-3deg);
  animation: fm-chair 10s ease-in-out infinite;
}
.scn-father\’s-melancholy .count {
  position: absolute; bottom: 35%; left: 45%; width: 20px; height: 60px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fm-count 8s ease-in-out infinite alternate;
}
.scn-father\’s-melancholy .blanche {
  position: absolute; bottom: 30%; left: 55%; width: 16px; height: 45px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fm-blanche 9s ease-in-out infinite alternate;
}
.scn-father\’s-melancholy .candle {
  position: absolute; bottom: 38%; left: 48%; width: 6px; height: 12px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 20%;
  animation: fm-candle 4s ease-in-out infinite alternate;
}
.scn-father\’s-melancholy .candle-glow {
  position: absolute; bottom: 38%; left: 48%; width: 20px; height: 20px;
  background: radial-gradient(circle, #ffd080 0%, #e8a050 40%, transparent 100%);
  transform: translate(-50%, -50%);
  animation: fm-glow 3s ease-in-out infinite alternate;
}

@keyframes fm-wall { 0%{opacity:.9;background-position:0% 0%} 50%{opacity:1;background-position:5% 5%} 100%{opacity:.85;background-position:-2% -2%} }
@keyframes fm-floor { 0%{transform:scaleY(1) translateY(0)} 50%{transform:scaleY(1.01) translateY(-2px)} 100%{transform:scaleY(1) translateY(0)} }
@keyframes fm-window { 0%{opacity:.3;box-shadow:inset 0 0 30px rgba(0,0,0,.7)} 50%{opacity:.5;box-shadow:inset 0 0 40px rgba(0,0,0,.5)} 100%{opacity:.4;box-shadow:inset 0 0 30px rgba(0,0,0,.7)} }
@keyframes fm-chair { 0%{transform:skewX(-3deg) translateY(0)} 50%{transform:skewX(-2deg) translateY(-2px)} 100%{transform:skewX(-3deg) translateY(0)} }
@keyframes fm-count { 0%{transform:rotate(0deg) translateY(0)} 50%{transform:rotate(1deg) translateY(-2px)} 100%{transform:rotate(-0.5deg) translateY(0)} }
@keyframes fm-blanche { 0%{transform:rotate(0deg) translateY(0)} 50%{transform:rotate(-1deg) translateY(-1px)} 100%{transform:rotate(0.5deg) translateY(0)} }
@keyframes fm-candle { 0%{transform:scaleY(1);opacity:.8} 50%{transform:scaleY(1.1);opacity:1} 100%{transform:scaleY(1);opacity:.85} }
@keyframes fm-glow { 0%{transform:translate(-50%,-50%) scale(1);opacity:.7} 50%{transform:translate(-50%,-50%) scale(1.2);opacity:1} 100%{transform:translate(-50%,-50%) scale(1);opacity:.8} }

.scn-blanche\’s-chamber {
  background: linear-gradient(180deg, #2e1a14 0%, #4a2a1e 40%, #3a1e12 100%),
              radial-gradient(ellipse at 70% 30%, #7a4a3a 0%, transparent 80%);
}
.scn-blanche\’s-chamber .wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #2e1a14 0%, #1f100c 100%);
  animation: bc-wall 18s ease-in-out infinite alternate;
}
.scn-blanche\’s-chamber .tapestry {
  position: absolute; top: 10%; left: 20%; width: 60%; height: 55%;
  background: linear-gradient(180deg, #4a3528 0%, #2a1e12 100%);
  border-radius: 2% 2% 4% 4%;
  box-shadow: inset 0 0 30px rgba(0,0,0,.6);
  animation: bc-tapestry 25s ease-in-out infinite alternate;
}
.scn-blanche\’s-chamber .troy-scene {
  position: absolute; top: 12%; left: 22%; width: 56%; height: 50%;
  background: radial-gradient(ellipse at 20% 30%, #8a6a5a 0%, transparent 30%),
              radial-gradient(ellipse at 80% 60%, #7a5a4a 0%, transparent 40%);
  filter: blur(2px); opacity: .6;
  animation: bc-troy 20s ease-in-out infinite alternate;
}
.scn-blanche\’s-chamber .blanche {
  position: absolute; bottom: 38%; left: 40%; width: 18px; height: 50px;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bc-blanche 9s ease-in-out infinite alternate;
}
.scn-blanche\’s-chamber .lamp {
  position: absolute; bottom: 42%; left: 45%; width: 8px; height: 15px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 20%;
  animation: bc-lamp 4s ease-in-out infinite alternate;
}
.scn-blanche\’s-chamber .lamp-glow {
  position: absolute; bottom: 42%; left: 45%; width: 30px; height: 30px;
  background: radial-gradient(circle, #f0c060 0%, #d09040 40%, transparent 100%);
  transform: translate(-50%, -50%);
  animation: bc-glow 3s ease-in-out infinite alternate;
}
.scn-blanche\’s-chamber .chair {
  position: absolute; bottom: 30%; left: 60%; width: 30px; height: 40px;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%);
  border-radius: 10% 10% 30% 30% / 10% 10% 30% 30%;
  transform: skewX(2deg);
  animation: bc-chair 12s ease-in-out infinite;
}
.scn-blanche\’s-chamber .table {
  position: absolute; bottom: 35%; left: 25%; width: 40px; height: 20px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0e08 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
  animation: bc-table 10s ease-in-out infinite;
}

@keyframes bc-wall { 0%{opacity:.85;background-position:0% 0%} 50%{opacity:.95;background-position:3% 2%} 100%{opacity:.9;background-position:-1% -1%} }
@keyframes bc-tapestry { 0%{transform:scale(1);filter:brightness(0.95)} 50%{transform:scale(1.01);filter:brightness(1)} 100%{transform:scale(1);filter:brightness(0.97)} }
@keyframes bc-troy { 0%{opacity:.5;transform:scale(1)} 50%{opacity:.65;transform:scale(1.02)} 100%{opacity:.55;transform:scale(1)} }
@keyframes bc-blanche { 0%{transform:rotate(0deg) translateY(0)} 50%{transform:rotate(-1deg) translateY(-2px) scale(1.01)} 100%{transform:rotate(0.5deg) translateY(0) scale(1)} }
@keyframes bc-lamp { 0%{transform:scaleY(1);opacity:.9} 50%{transform:scaleY(1.15);opacity:1} 100%{transform:scaleY(1);opacity:.9} }
@keyframes bc-glow { 0%{transform:translate(-50%,-50%) scale(1);opacity:.6} 50%{transform:translate(-50%,-50%) scale(1.3);opacity:1} 100%{transform:translate(-50%,-50%) scale(1);opacity:.7} }
@keyframes bc-chair { 0%{transform:skewX(2deg) translateY(0)} 50%{transform:skewX(1deg) translateY(-2px)} 100%{transform:skewX(2deg) translateY(0)} }
@keyframes bc-table { 0%{transform:translateY(0) rotate(-0.5deg)} 50%{transform:translateY(-1px) rotate(0.5deg)} 100%{transform:translateY(0) rotate(-0.2deg)} }

.scn-return-to-venice {
  background:
    linear-gradient(180deg, #0f0c1a 0%, #1a1428 30%, #251f35 60%, #2a2438 100%),
    radial-gradient(ellipse at 70% 20%, #3a3a5a 0%, transparent 60%);
}
.scn-return-to-venice .stone-wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #1f1a2e 0%, #15101f 100%);
}
.scn-return-to-venice .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 18%; background: linear-gradient(180deg, #2a2438 0%, #1a1428 100%); box-shadow: inset 0 8px 20px rgba(0,0,0,0.6);
}
.scn-return-to-venice .window-frame {
  position: absolute; top: 8%; left: 50%; width: 70px; height: 100px; transform: translateX(-50%); background: linear-gradient(180deg, #1f1a2e 0%, #2a2438 100%); border: 4px solid #3a3a5a; border-radius: 4px;
}
.scn-return-to-venice .bars {
  position: absolute; top: 8%; left: 50%; width: 60px; height: 100px; transform: translateX(-50%); background: repeating-linear-gradient(0deg, #4a4a5a 0px, #4a4a5a 3px, transparent 3px, transparent 12px); opacity: 0.6;
}
.scn-return-to-venice .figure {
  position: absolute; bottom: 18%; left: 55%; width: 40px; height: 60px; background: linear-gradient(180deg, #2a2438 0%, #15101f 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: rtv-figure 6s ease-in-out infinite alternate;
}
.scn-return-to-venice .chain {
  position: absolute; bottom: 18%; left: 36%; width: 50px; height: 12px; background: repeating-linear-gradient(90deg, #4a4a5a 0px, #4a4a5a 3px, transparent 3px, transparent 6px); border-radius: 2px; transform-origin: left center; animation: rtv-chain 3s ease-in-out infinite;
}
.scn-return-to-venice .light-ray {
  position: absolute; top: 8%; left: 50%; width: 20px; height: 90px; transform: translateX(-50%) rotate(15deg); background: linear-gradient(180deg, rgba(255,255,255,0.15) 0%, rgba(255,255,255,0.02) 100%); clip-path: polygon(0 0, 100% 0, 80% 100%, 20% 100%); animation: rtv-ray 8s ease-in-out infinite alternate;
}
.scn-return-to-venice .rat {
  position: absolute; bottom: 12%; left: 10%; width: 16px; height: 8px; background: radial-gradient(ellipse 100% 80% at 30% 50%, #3a3258 0%, #1a1428 100%); border-radius: 60% 20% 20% 60% / 50% 50% 50% 50%; animation: rtv-rat 12s ease-in-out infinite;
}
@keyframes rtv-figure {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(-4px) rotate(-2deg); }
  100% { transform: translateX(0) rotate(2deg); }
}
@keyframes rtv-chain {
  0%, 100% { transform: rotate(-5deg); }
  50% { transform: rotate(10deg); }
}
@keyframes rtv-ray {
  0% { opacity: 0.3; transform: translateX(-50%) rotate(10deg); }
  50% { opacity: 0.6; transform: translateX(-50%) rotate(20deg); }
  100% { opacity: 0.2; transform: translateX(-50%) rotate(12deg); }
}
@keyframes rtv-rat {
  0% { transform: translateX(0) translateY(0); }
  30% { transform: translateX(15px) translateY(-2px); }
  60% { transform: translateX(30px) translateY(0); }
  100% { transform: translateX(0) translateY(0); }
}

.scn-perplexity-montoni {
  background:
    linear-gradient(135deg, #2b221a 0%, #3d2e22 40%, #4a3729 70%, #2b221a 100%),
    radial-gradient(ellipse at 30% 80%, #5a4a3a 0%, transparent 60%);
}

.scn-perplexity-montoni .wall-left {
  position: absolute; top: 0; left: 0; width: 45%; height: 100%;
  background: linear-gradient(180deg, #3d2e22 0%, #2e221a 100%);
  border-right: 2px solid rgba(100,80,60,0.3);
  animation: pm-wall 12s ease-in-out infinite alternate;
}

.scn-perplexity-montoni .wall-right {
  position: absolute; top: 0; right: 0; width: 45%; height: 100%;
  background: linear-gradient(180deg, #3d2e22 0%, #2e221a 100%);
  border-left: 2px solid rgba(100,80,60,0.3);
  animation: pm-wall 12s ease-in-out infinite alternate-reverse;
}

.scn-perplexity-montoni .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(0deg, #1e1a12 0%, #2a221a 100%);
  border-top: 2px solid rgba(80,60,40,0.2);
  animation: pm-floor 20s ease-in-out infinite alternate;
}

.scn-perplexity-montoni .window {
  position: absolute; top: 12%; left: 35%; width: 80px; height: 110px;
  background: linear-gradient(180deg, #3a4a5a 0%, #2a3a4a 100%);
  border: 4px solid #5a3a2a;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.5), 0 0 30px rgba(80,100,120,0.2);
  animation: pm-window 18s ease-in-out infinite alternate;
}

.scn-perplexity-montoni .table {
  position: absolute; bottom: 18%; left: 25%; width: 120px; height: 30px;
  background: linear-gradient(180deg, #5a4030 0%, #3a2a1e 100%);
  border-radius: 4px;
  box-shadow: 0 6px 10px rgba(0,0,0,0.6);
  animation: pm-table 15s ease-in-out infinite alternate;
}

.scn-perplexity-montoni .candle {
  position: absolute; bottom: 24%; left: 30%; width: 14px; height: 40px;
  background: linear-gradient(180deg, #e8d4a0 0%, #c0a070 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 20% 20%;
  box-shadow: inset 0 -4px 6px rgba(0,0,0,0.3);
  animation: pm-candle-body 3s ease-in-out infinite alternate;
}

.scn-perplexity-montoni .flame {
  position: absolute; bottom: 34%; left: 30.8%; width: 8px; height: 16px;
  background: radial-gradient(ellipse 60% 80% at 50% 100%, #ffd080 0%, #ffa040 40%, transparent 70%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 20px 8px rgba(255,160,64,0.6), 0 0 40px 16px rgba(255,160,64,0.3), 0 0 60px 24px rgba(255,160,64,0.1);
  animation: pm-flame 1.2s ease-in-out infinite alternate;
}

.scn-perplexity-montoni .figure {
  position: absolute; bottom: 5%; right: 30%; width: 40px; height: 70px;
  background: linear-gradient(180deg, #2a1e16 0%, #1a120e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pm-figure 6s ease-in-out infinite alternate;
}

.scn-perplexity-montoni .book {
  position: absolute; bottom: 17%; right: 28%; width: 30px; height: 22px;
  background: linear-gradient(135deg, #6a5040 0%, #4a3828 100%);
  border-radius: 4px;
  box-shadow: 2px 2px 6px rgba(0,0,0,0.5);
  animation: pm-book 8s ease-in-out infinite alternate;
}

@keyframes pm-wall {
  0% { opacity: 0.9; transform: scale(1); }
  50% { opacity: 0.95; transform: scale(1.005); }
  100% { opacity: 0.9; transform: scale(1); }
}

@keyframes pm-floor {
  0% { opacity: 0.85; }
  50% { opacity: 0.9; }
  100% { opacity: 0.85; }
}

@keyframes pm-window {
  0% { opacity: 0.7; transform: scale(1); }
  50% { opacity: 0.8; transform: scale(1.02); }
  100% { opacity: 0.7; transform: scale(1); }
}

@keyframes pm-table {
  0% { transform: translateY(0) rotate(-0.5deg); }
  50% { transform: translateY(-1px) rotate(0.5deg); }
  100% { transform: translateY(0) rotate(0deg); }
}

@keyframes pm-candle-body {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.03); }
  100% { transform: scaleY(1); }
}

@keyframes pm-flame {
  0% { transform: scale(1) rotate(-3deg); opacity: 0.9; }
  25% { transform: scale(1.1) rotate(2deg); opacity: 1; }
  50% { transform: scale(0.95) rotate(-1deg); opacity: 0.85; }
  75% { transform: scale(1.05) rotate(3deg); opacity: 0.95; }
  100% { transform: scale(1) rotate(-2deg); opacity: 0.9; }
}

@keyframes pm-figure {
  0% { transform: translateX(0) rotate(-1deg); }
  50% { transform: translateX(3px) rotate(1deg); }
  100% { transform: translateX(-1px) rotate(0deg); }
}

@keyframes pm-book {
  0% { transform: rotate(-2deg) translateY(0); }
  50% { transform: rotate(2deg) translateY(-2px); }
  100% { transform: rotate(-1deg) translateY(0); }
}

.scn-ludovico’s\ thoughts {
  background: linear-gradient(180deg, #0a0a2a 0%, #1a1a4a 40%, #2a2a5a 70%, #1a1a3a 100%),
              radial-gradient(ellipse at 50% 30%, #2a4a6a 0%, transparent 60%);
}
.scn-ludovico’s\ thoughts .sky {
  position: absolute;
  inset: 0 0 40% 0;
  background: linear-gradient(180deg, #1a2a4a 0%, transparent 100%);
  animation: lt-sky 8s ease-in-out infinite alternate;
}
.scn-ludovico’s\ thoughts .moon {
  position: absolute;
  top: 12%;
  left: 50%;
  width: 50px;
  height: 50px;
  transform: translateX(-50%);
  background: radial-gradient(circle at 30% 30%, #f0f0ff 0%, #c0c8e0 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 10px rgba(192, 200, 224, 0.6), 0 0 80px 20px rgba(192, 200, 224, 0.2);
  animation: lt-moon 6s ease-in-out infinite alternate;
}
.scn-ludovico’s\ thoughts .stars {
  position: absolute;
  top: 0;
  left: 0;
  right: 0;
  bottom: 60%;
  background: transparent;
  background-image: radial-gradient(2px 2px at 20% 30%, #ffffff 0%, transparent 100%),
                    radial-gradient(2px 2px at 40% 70%, #ffffff 0%, transparent 100%),
                    radial-gradient(2px 2px at 60% 20%, #ffffff 0%, transparent 100%),
                    radial-gradient(2px 2px at 80% 60%, #ffffff 0%, transparent 100%);
  background-size: 200px 200px;
}
.scn-ludovico’s\ thoughts .stars-a {
  animation: lt-stars-drift 30s linear infinite;
}
.scn-ludovico’s\ thoughts .stars-b {
  animation: lt-stars-twinkle 4s ease-in-out infinite alternate;
  opacity: 0.7;
}
.scn-ludovico’s\ thoughts .balcony {
  position: absolute;
  bottom: 20%;
  left: 10%;
  right: 10%;
  height: 15%;
  background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%);
  border-radius: 10% 10% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.5);
}
.scn-ludovico’s\ thoughts .balcony::before {
  content: '';
  position: absolute;
  top: -12px;
  left: 0;
  right: 0;
  height: 12px;
  background: linear-gradient(90deg, #4a4a5a 0%, #5a5a6a 50%, #4a4a5a 100%);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.4);
}
.scn-ludovico’s\ thoughts .figure {
  position: absolute;
  bottom: 35%;
  left: 40%;
  width: 20px;
  height: 40px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lt-figure 5s ease-in-out infinite;
}
.scn-ludovico’s\ thoughts .figure::after {
  content: '';
  position: absolute;
  top: -8px;
  left: 10px;
  width: 14px;
  height: 18px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: rotate(-15deg);
  animation: lt-head 5s ease-in-out infinite;
}
.scn-ludovico’s\ thoughts .lantern {
  position: absolute;
  bottom: 38%;
  left: 55%;
  width: 8px;
  height: 14px;
  background: linear-gradient(180deg, #c0a060 0%, #806030 100%);
  border-radius: 4px 4px 6px 6px;
  box-shadow: 0 0 12px 4px rgba(192, 160, 96, 0.6);
  animation: lt-lantern 4s ease-in-out infinite alternate;
}
.scn-ludovico’s\ thoughts .lantern::before {
  content: '';
  position: absolute;
  top: -6px;
  left: 2px;
  width: 4px;
  height: 6px;
  background: #5a4a3a;
  border-radius: 2px;
}
@keyframes lt-sky {
  0% { opacity: 0.8; background: linear-gradient(180deg, #1a2a4a 0%, transparent 100%); }
  50% { opacity: 1; background: linear-gradient(180deg, #1e2e4e 0%, transparent 100%); }
  100% { opacity: 0.85; background: linear-gradient(180deg, #182842 0%, transparent 100%); }
}
@keyframes lt-moon {
  0% { transform: translateX(-50%) translateY(0); box-shadow: 0 0 40px 10px rgba(192,200,224,0.6), 0 0 80px 20px rgba(192,200,224,0.2); }
  50% { transform: translateX(-50%) translateY(-3px); box-shadow: 0 0 50px 14px rgba(192,200,224,0.8), 0 0 100px 30px rgba(192,200,224,0.3); }
  100% { transform: translateX(-50%) translateY(0); box-shadow: 0 0 40px 10px rgba(192,200,224,0.6), 0 0 80px 20px rgba(192,200,224,0.2); }
}
@keyframes lt-stars-drift {
  0% { transform: translateX(0); }
  100% { transform: translateX(-50px); }
}
@keyframes lt-stars-twinkle {
  0% { opacity: 0.5; }
  50% { opacity: 1; }
  100% { opacity: 0.6; }
}
@keyframes lt-figure {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.02) translateY(-1px); }
  100% { transform: scaleY(1); }
}
@keyframes lt-head {
  0% { transform: rotate(-15deg); }
  50% { transform: rotate(-12deg); }
  100% { transform: rotate(-15deg); }
}
@keyframes lt-lantern {
  0% { transform: rotate(-2deg); box-shadow: 0 0 12px 4px rgba(192,160,96,0.6); }
  50% { transform: rotate(2deg); box-shadow: 0 0 16px 6px rgba(192,160,96,0.8); }
  100% { transform: rotate(-2deg); box-shadow: 0 0 12px 4px rgba(192,160,96,0.6); }
}

.scn-montoni\'s-plan {
  background: 
    linear-gradient(180deg, #1c1410 0%, #2a1e18 30%, #3a2a20 60%, #1a1210 100%),
    radial-gradient(ellipse at 50% 0%, #4a352a 0%, transparent 60%);
}
.scn-montoni\'s-plan .wall-bg {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #3a2a20 0%, #1c1410 100%);
  box-shadow: inset 0 4px 12px rgba(0,0,0,0.6);
}
.scn-montoni\'s-plan .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #2a1e18 0%, #1a1210 100%);
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.7);
}
.scn-montoni\'s-plan .table {
  position: absolute; bottom: 22%; left: 50%; width: 60%; height: 8%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a352a 0%, #2a1e18 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5), inset 0 2px 4px rgba(90,60,40,0.3);
}
.scn-montoni\'s-plan .figure {
  position: absolute; bottom: 30%; width: 14%; height: 35%;
  background: linear-gradient(180deg, #1a1210 0%, #0d0a08 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
}
.scn-montoni\'s-plan .figure-left {
  left: 28%;
  animation: mp-figureL 8s ease-in-out infinite alternate;
}
.scn-montoni\'s-plan .figure-right {
  right: 28%;
  animation: mp-figureR 8s ease-in-out infinite alternate;
  animation-delay: -4s;
}
.scn-montoni\'s-plan .candle {
  position: absolute; bottom: 26%; left: 50%; width: 2%; height: 12%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #e8dcc8 0%, #b8a890 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.4);
}
.scn-montoni\'s-plan .flame {
  position: absolute; bottom: 37%; left: 50%; width: 2.5%; height: 6%;
  transform: translateX(-50%);
  background: radial-gradient(circle at 50% 0%, #ffd080 0%, #ffa030 40%, #a04010 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow: 0 0 20px 8px #ffa030, 0 0 40px 16px rgba(180,60,10,0.5);
  animation: mp-flame-flicker 2s ease-in-out infinite alternate;
}
.scn-montoni\'s-plan .window-light {
  position: absolute; top: 12%; right: 10%; width: 16%; height: 20%;
  background: linear-gradient(180deg, #2a3a50 0%, #1a2a40 100%);
  border-radius: 10% / 15%;
  box-shadow: inset 0 0 20px rgba(100,160,220,0.3), 0 0 8px rgba(100,160,220,0.15);
  animation: mp-window-pulse 12s ease-in-out infinite alternate;
}

@keyframes mp-figureL {
  0%   { transform: rotate(0deg) translateY(0); }
  40%  { transform: rotate(2deg) translateY(-2px); }
  80%  { transform: rotate(-1deg) translateY(1px); }
  100% { transform: rotate(0deg) translateY(0); }
}
@keyframes mp-figureR {
  0%   { transform: rotate(0deg) translateY(0); }
  40%  { transform: rotate(-2deg) translateY(-2px); }
  80%  { transform: rotate(1deg) translateY(1px); }
  100% { transform: rotate(0deg) translateY(0); }
}
@keyframes mp-flame-flicker {
  0%   { transform: translateX(-50%) scaleY(1) scaleX(1); opacity: 0.9; }
  30%  { transform: translateX(-50%) scaleY(1.08) scaleX(0.92); opacity: 1; }
  60%  { transform: translateX(-50%) scaleY(0.95) scaleX(1.05); opacity: 0.85; }
  100% { transform: translateX(-50%) scaleY(1) scaleX(1); opacity: 0.95; }
}
@keyframes mp-window-pulse {
  0%   { opacity: 0.6; box-shadow: inset 0 0 12px rgba(100,160,220,0.2), 0 0 6px rgba(100,160,220,0.1); }
  50%  { opacity: 0.8; box-shadow: inset 0 0 24px rgba(100,160,220,0.4), 0 0 10px rgba(100,160,220,0.2); }
  100% { opacity: 0.65; box-shadow: inset 0 0 16px rgba(100,160,220,0.25), 0 0 8px rgba(100,160,220,0.15); }
}
@keyframes mp-candle-glow {
  0%   { box-shadow: 0 0 20px 8px #ffa030, 0 0 40px 16px rgba(180,60,10,0.4); }
  50%  { box-shadow: 0 0 28px 12px #ffb850, 0 0 50px 20px rgba(200,80,20,0.6); }
  100% { box-shadow: 0 0 22px 9px #ffa030, 0 0 44px 18px rgba(180,60,10,0.45); }
}
/* candle div gets the glow animation */
.scn-montoni\'s-plan .candle {
  animation: mp-candle-glow 3s ease-in-out infinite alternate;
}

.scn-soldiers-tale {
  background: 
    linear-gradient(180deg, #04061a 0%, #0a1440 30%, #1c2a5e 60%, #2c4a7c 100%),
    radial-gradient(ellipse at 50% 20%, #d0e4ff 0%, transparent 60%);
}
.scn-soldiers-tale .st-sky {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, transparent 20%, rgba(10,20,64,0.6) 80%);
  animation: st-sky 20s ease-in-out infinite alternate;
}
.scn-soldiers-tale .st-moon {
  position: absolute;
  top: 12%;
  left: 65%;
  width: 70px;
  height: 70px;
  background: radial-gradient(circle at 45% 45%, #eef4ff, #c8d8ff 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 15px rgba(200,216,255,0.4), 0 0 80px 30px rgba(200,216,255,0.2);
  animation: st-moon-glow 6s ease-in-out infinite alternate;
}
.scn-soldiers-tale .st-stars {
  position: absolute;
  inset: 0 0 40% 0;
  background-image: radial-gradient(2px 2px at 20% 10%, #fff 0%, transparent 100%),
                    radial-gradient(2px 2px at 40% 30%, #fff 0%, transparent 100%),
                    radial-gradient(1px 1px at 60% 5%, #fff 0%, transparent 100%),
                    radial-gradient(1px 1px at 80% 15%, #fff 0%, transparent 100%),
                    radial-gradient(2px 2px at 10% 50%, #fff 0%, transparent 100%),
                    radial-gradient(1px 1px at 50% 50%, #fff 0%, transparent 100%),
                    radial-gradient(2px 2px at 90% 40%, #fff 0%, transparent 100%);
  background-size: 100px 100px;
  animation: st-twinkle 4s ease-in-out infinite alternate;
}
.scn-soldiers-tale .st-clouds {
  position: absolute;
  top: 25%;
  left: 0;
  right: 0;
  height: 60px;
  background: linear-gradient(90deg, transparent, rgba(180,200,240,0.15) 30%, rgba(180,200,240,0.2) 70%, transparent);
  filter: blur(8px);
  animation: st-cloud-drifta 50s linear infinite;
}
.scn-soldiers-tale .st-hills {
  position: absolute;
  bottom: 30%;
  left: 0;
  right: 0;
  height: 30%;
  background: linear-gradient(180deg, #2a3a5a 0%, #1a2a4a 70%, #0a1a2a 100%);
  border-radius: 50% 60% 0 0 / 70% 80% 0 0;
  box-shadow: inset 0 8px 30px rgba(0,0,0,0.6);
  animation: st-hills-sway 12s ease-in-out infinite alternate;
}
.scn-soldiers-tale .st-soldier {
  position: absolute;
  bottom: 28%;
  left: 30%;
  width: 28px;
  height: 70px;
  background: linear-gradient(180deg, #0a0e1a 0%, #1a2230 60%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: st-breathe 4s ease-in-out infinite;
}
.scn-soldiers-tale .st-sword {
  position: absolute;
  bottom: 38%;
  left: 26%;
  width: 4px;
  height: 50px;
  background: linear-gradient(180deg, #c8d8ff, #8090c0 60%, transparent);
  border-radius: 2px 2px 0 0;
  transform: rotate(-20deg);
  transform-origin: bottom center;
  animation: st-sword-sway 3s ease-in-out infinite alternate;
}
.scn-soldiers-tale .st-lantern {
  position: absolute;
  bottom: 34%;
  left: 34%;
  width: 8px;
  height: 8px;
  background: radial-gradient(circle, #ffe8c0, #d0a060);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px rgba(255,232,192,0.5), 0 0 40px 12px rgba(208,160,96,0.3);
  animation: st-lantern-flicker 1.5s ease-in-out infinite alternate;
}
.scn-soldiers-tale .st-mist {
  position: absolute;
  bottom: 20%;
  left: -10%;
  right: -10%;
  height: 20%;
  background: linear-gradient(180deg, transparent, rgba(180,200,240,0.08) 40%, rgba(180,200,240,0.12) 70%, transparent);
  filter: blur(12px);
  animation: st-mist-drift 30s linear infinite alternate;
}
@keyframes st-sky {
  0% { opacity: 0.8; }
  50% { opacity: 1; }
  100% { opacity: 0.7; }
}
@keyframes st-moon-glow {
  0% { box-shadow: 0 0 30px 10px rgba(200,216,255,0.3), 0 0 60px 20px rgba(200,216,255,0.15); }
  50% { box-shadow: 0 0 50px 20px rgba(200,216,255,0.5), 0 0 100px 40px rgba(200,216,255,0.25); }
  100% { box-shadow: 0 0 35px 12px rgba(200,216,255,0.35), 0 0 70px 25px rgba(200,216,255,0.18); }
}
@keyframes st-twinkle {
  0% { opacity: 0.6; }
  50% { opacity: 1; }
  100% { opacity: 0.5; }
}
@keyframes st-cloud-drifta {
  0% { transform: translateX(-80px); }
  50% { transform: translateX(20px); }
  100% { transform: translateX(120vw); }
}
@keyframes st-hills-sway {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-3px) scale(1.005); }
  100% { transform: translateY(0) scale(1); }
}
@keyframes st-breathe {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes st-sword-sway {
  0% { transform: rotate(-20deg); }
  50% { transform: rotate(-22deg); }
  100% { transform: rotate(-18deg); }
}
@keyframes st-lantern-flicker {
  0% { opacity: 0.7; box-shadow: 0 0 15px 4px rgba(255,232,192,0.4); }
  50% { opacity: 1; box-shadow: 0 0 28px 10px rgba(255,232,192,0.7); }
  100% { opacity: 0.8; box-shadow: 0 0 20px 6px rgba(255,232,192,0.5); }
}
@keyframes st-mist-drift {
  0% { transform: translateX(-10px); opacity: 0.5; }
  50% { transform: translateX(10px); opacity: 0.8; }
  100% { transform: translateX(-5px); opacity: 0.6; }
}

.scn-blanche’s-chamber {
  background: 
    linear-gradient(180deg, #2a1a0a 0%, #1a0e05 40%, #0d0703 100%),
    radial-gradient(ellipse at 50% 20%, #3a2510 0%, transparent 70%);
}
.scn-blanche’s-chamber .room-bg {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, #2f1e0e 0%, #1a100a 50%, #0f0804 100%);
  animation: bc-ambient 20s ease-in-out infinite alternate;
}
.scn-blanche’s-chamber .tapestry {
  position: absolute;
  top: 15%;
  left: 15%;
  width: 70%;
  height: 55%;
  background: 
    linear-gradient(90deg, #4a3520 2px, transparent 2px, transparent 98px, #4a3520 98px),
    linear-gradient(180deg, #4a3520 2px, transparent 2px, transparent 98px, #4a3520 98px),
    linear-gradient(135deg, #3a2510 0%, #5a4030 30%, #2a1a0a 60%, #4a3520 100%);
  background-size: 100px 100px, 100px 100px, cover;
  border: 6px solid #2a1a0a;
  border-radius: 4px;
  box-shadow: inset 0 0 40px rgba(0,0,0,0.6);
  animation: bc-tapestry 30s ease-in-out infinite alternate;
}
.scn-blanche’s-chamber .figure {
  position: absolute;
  bottom: 18%;
  left: 35%;
  width: 28px;
  height: 60px;
  background: linear-gradient(180deg, #1a0e05 0%, #0d0703 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bc-figure 8s ease-in-out infinite alternate;
}
.scn-blanche’s-chamber .candle-glow {
  position: absolute;
  bottom: 38%;
  left: 36%;
  width: 14px;
  height: 14px;
  background: radial-gradient(circle, #ffcc80 0%, #e6a040 40%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px #e6a040, 0 0 60px 20px rgba(230,160,64,0.4);
  animation: bc-candle 3s ease-in-out infinite alternate;
}
.scn-blanche’s-chamber .chair {
  position: absolute;
  bottom: 5%;
  right: 20%;
  width: 50px;
  height: 40px;
  background: linear-gradient(180deg, #3a2510 0%, #2a1a0a 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: bc-chair 12s ease-in-out infinite alternate;
}
.scn-blanche’s-chamber .shadow {
  position: absolute;
  bottom: 0;
  left: 20%;
  width: 60%;
  height: 8%;
  background: linear-gradient(180deg, rgba(0,0,0,0.6) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(4px);
  animation: bc-shadow 8s ease-in-out infinite alternate;
}

@keyframes bc-ambient {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes bc-tapestry {
  0% { transform: scale(1) rotate(-0.5deg); }
  50% { transform: scale(1.01) rotate(0.5deg); }
  100% { transform: scale(0.98) rotate(-0.3deg); }
}
@keyframes bc-figure {
  0% { transform: translateX(0) rotate(0deg); }
  30% { transform: translateX(2px) rotate(1deg); }
  70% { transform: translateX(-1px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes bc-candle {
  0% { transform: scale(1); opacity: 0.8; box-shadow: 0 0 20px 8px #e6a040; }
  50% { transform: scale(1.15); opacity: 1; box-shadow: 0 0 40px 16px #ffcc80; }
  100% { transform: scale(0.95); opacity: 0.85; box-shadow: 0 0 25px 10px #e6a040; }
}
@keyframes bc-chair {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-2px) scale(1.02); }
  100% { transform: translateY(0) scale(0.98); }
}
@keyframes bc-shadow {
  0% { transform: scaleX(1); opacity: 0.7; }
  50% { transform: scaleX(1.05); opacity: 0.6; }
  100% { transform: scaleX(0.95); opacity: 0.8; }
}

.scn-friars-gaze {
  background:
    linear-gradient(135deg, #2a1a0a 0%, #3a2a1a 40%, #1a0a00 100%),
    radial-gradient(ellipse at 25% 70%, #c08040 0%, transparent 70%);
}

.scn-friars-gaze .arch {
  position: absolute;
  top: 0;
  left: 10%;
  width: 80%;
  height: 60%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  box-shadow: inset 0 12px 24px rgba(0,0,0,.5);
}

.scn-friars-gaze .pillar-l {
  position: absolute;
  left: 6%;
  bottom: 0;
  width: 6%;
  height: 80%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 8px;
  box-shadow: 4px 0 12px rgba(0,0,0,.4);
}

.scn-friars-gaze .pillar-r {
  position: absolute;
  right: 6%;
  bottom: 0;
  width: 6%;
  height: 80%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 8px;
  box-shadow: -4px 0 12px rgba(0,0,0,.4);
}

.scn-friars-gaze .torch-glow {
  position: absolute;
  bottom: 28%;
  left: 22%;
  width: 14px;
  height: 24px;
  background: radial-gradient(circle, #ffc080 0%, #b06020 50%, transparent 100%);
  border-radius: 50% 50% 20% 20%;
  box-shadow:
    0 0 40px 20px rgba(255,192,128,.6),
    0 0 80px 40px rgba(255,160,80,.3);
  animation: fg-flame 1.2s ease-in-out infinite alternate;
}

.scn-friars-gaze .friar {
  position: absolute;
  bottom: 12%;
  left: 38%;
  width: 28px;
  height: 52px;
  background: linear-gradient(180deg, #1a1208 0%, #0e0a04 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 0 4px 8px rgba(0,0,0,.3);
  animation: fg-friar 4s ease-in-out infinite;
}

.scn-friars-gaze .emily {
  position: absolute;
  bottom: 14%;
  right: 36%;
  width: 22px;
  height: 44px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1008 100%);
  border-radius: 50% 50% 45% 45% / 55% 55% 45% 45%;
  transform-origin: bottom center;
  box-shadow: 0 4px 6px rgba(0,0,0,.4);
  animation: fg-emily 5s ease-in-out infinite;
}

.scn-friars-gaze .shadow-floor {
  position: absolute;
  bottom: 10%;
  left: 30%;
  width: 40%;
  height: 6%;
  background: radial-gradient(ellipse, rgba(0,0,0,.6) 0%, transparent 100%);
  filter: blur(6px);
  animation: fg-light 3s ease-in-out infinite alternate;
}

@keyframes fg-flame {
  0%   { transform: scaleY(1) translateY(0); opacity: 1; }
  30%  { transform: scaleY(1.12) translateY(-2px); opacity: 0.9; }
  70%  { transform: scaleY(0.9) translateY(1px); opacity: 0.85; }
  100% { transform: scaleY(1.05) translateY(-1px); opacity: 1; }
}

@keyframes fg-friar {
  0%   { transform: translateX(0) rotate(0deg); }
  40%  { transform: translateX(1px) rotate(0.5deg); }
  80%  { transform: translateX(-1px) rotate(-0.3deg); }
  100% { transform: translateX(0) rotate(0deg); }
}

@keyframes fg-emily {
  0%   { transform: translateX(0) rotate(0deg); }
  25%  { transform: translateX(2px) rotate(0.8deg); }
  75%  { transform: translateX(-1px) rotate(-0.5deg); }
  100% { transform: translateX(0) rotate(0deg); }
}

@keyframes fg-light {
  0%   { opacity: 0.6; filter: blur(6px); }
  50%  { opacity: 0.8; filter: blur(4px); }
  100% { opacity: 0.7; filter: blur(5px); }
}

.scn-count-s-delight {
  background:
    linear-gradient(180deg, #d46a3a 0%, #b8532a 20%, #7a3e5a 50%, #3a2860 80%, #1a1a3e 100%),
    radial-gradient(ellipse at 50% 20%, #f0a050 0%, transparent 70%);
  position: relative;
  overflow: hidden;
}
.scn-count-s-delight .sky {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #e08a4a 0%, #c06a3a 30%, #6a3e6a 70%, #2a2a5e 100%);
  animation: cd-sky 14s ease-in-out infinite alternate;
}
.scn-count-s-delight .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%);
  box-shadow: inset 0 20px 40px rgba(200,120,60,0.3);
  animation: cd-floor 8s ease-in-out infinite;
}
.scn-count-s-delight .arch-left,
.scn-count-s-delight .arch-right {
  position: absolute; bottom: 25%; width: 18%; height: 55%;
  background: linear-gradient(135deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 0 0 / 60% 60% 0 0;
  box-shadow: 0 0 20px rgba(0,0,0,0.6);
}
.scn-count-s-delight .arch-left { left: 8%; }
.scn-count-s-delight .arch-right { right: 8%; }
.scn-count-s-delight .chandelier {
  position: absolute; top: 8%; left: 50%; transform: translateX(-50%);
  width: 30px; height: 40px;
  background: radial-gradient(circle, #ffc880 0%, #b07030 60%, #3a1a0a 100%);
  border-radius: 50% 50% 10% 10%;
  box-shadow: 0 0 30px 10px #f0a050, 0 0 60px 20px rgba(240,160,80,0.3);
  animation: cd-chandelier 5s ease-in-out infinite;
}
.scn-count-s-delight .figure-a,
.scn-count-s-delight .figure-b {
  position: absolute; bottom: 18%; width: 16px; height: 38px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
}
.scn-count-s-delight .figure-a { left: 38%; animation: cd-dance-a 2.8s ease-in-out infinite; }
.scn-count-s-delight .figure-b { left: 52%; animation: cd-dance-b 2.8s ease-in-out infinite 1.4s; }
.scn-count-s-delight .drapery {
  position: absolute; top: 0; left: 0; width: 12%; height: 100%;
  background: linear-gradient(180deg, #6a3a1a 0%, #4a2a0a 40%, #2a1a0a 100%);
  border-radius: 0 60% 60% 0 / 0 40% 40% 0;
  filter: blur(2px);
  animation: cd-drapery 12s ease-in-out infinite;
}
@keyframes cd-sky {
  0% { opacity: 0.8; background-position: 0% 0%; }
  50% { opacity: 1; background-position: 50% 30%; }
  100% { opacity: 0.9; background-position: 100% 0%; }
}
@keyframes cd-floor {
  0%, 100% { transform: scaleY(1); opacity: 0.9; }
  50% { transform: scaleY(1.02); opacity: 1; box-shadow: inset 0 20px 40px rgba(200,120,60,0.5); }
}
@keyframes cd-chandelier {
  0%, 100% { transform: translateX(-50%) rotate(-2deg); }
  50% { transform: translateX(-50%) rotate(2deg) translateY(2px); }
}
@keyframes cd-dance-a {
  0% { transform: translateX(0) rotate(-5deg) scale(1); }
  25% { transform: translateX(4px) rotate(0deg) scale(1.03); }
  50% { transform: translateX(0) rotate(5deg) scale(1); }
  75% { transform: translateX(-4px) rotate(0deg) scale(0.97); }
  100% { transform: translateX(0) rotate(-5deg) scale(1); }
}
@keyframes cd-dance-b {
  0% { transform: translateX(0) rotate(5deg) scale(1); }
  25% { transform: translateX(-4px) rotate(0deg) scale(1.03); }
  50% { transform: translateX(0) rotate(-5deg) scale(1); }
  75% { transform: translateX(4px) rotate(0deg) scale(0.97); }
  100% { transform: translateX(0) rotate(5deg) scale(1); }
}
@keyframes cd-drapery {
  0%, 100% { transform: translateX(0) scaleY(1); }
  50% { transform: translateX(-3px) scaleY(1.02); }
}

.scn-peasant-courtesy {
  position: relative;
  width: 100%;
  height: 100%;
  overflow: hidden;
  background:
    linear-gradient(180deg, #ff8c42 0%, #4a2c2a 100%),
    radial-gradient(ellipse at 50% 100%, #ffd700 0%, transparent 60%);
}
.scn-peasant-courtesy .sky {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, #2a1a4e 0%, transparent 40%);
  opacity: 0.6;
  animation: pc-sky 20s ease-in-out infinite alternate;
}
.scn-peasant-courtesy .hills {
  position: absolute;
  bottom: 30%;
  left: 0;
  right: 0;
  height: 20%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 0 0 / 30% 30% 0 0;
  box-shadow: inset 0 4px 10px rgba(0,0,0,0.5);
}
.scn-peasant-courtesy .field {
  position: absolute;
  bottom: 10%;
  left: 0;
  right: 0;
  height: 25%;
  background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%);
  background-size: 200% 100%;
  animation: pc-field 6s ease-in-out infinite;
}
.scn-peasant-courtesy .tree {
  position: absolute;
  bottom: 35%;
  left: 20%;
  width: 10px;
  height: 50px;
  background: #1a0a0a;
  border-radius: 50% 50% 0 0 / 20% 20% 0 0;
  transform-origin: bottom center;
  animation: pc-tree 8s ease-in-out infinite;
}
.scn-peasant-courtesy .tree::before {
  content: '';
  position: absolute;
  top: -20px;
  left: -15px;
  width: 40px;
  height: 30px;
  background: #1a0a0a;
  border-radius: 50%;
}
.scn-peasant-courtesy .peasant {
  position: absolute;
  bottom: 10%;
  left: 45%;
  width: 20px;
  height: 35px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 20% 20%;
  transform-origin: bottom center;
}
.scn-peasant-courtesy .peasant-arm {
  position: absolute;
  bottom: 25%;
  left: 49%;
  width: 4px;
  height: 20px;
  background: #1a0a0a;
  border-radius: 2px;
  transform-origin: bottom center;
  animation: pc-arm 4s ease-in-out infinite;
}
.scn-peasant-courtesy .peasant-arm::after {
  content: '';
  position: absolute;
  top: -8px;
  left: -3px;
  width: 10px;
  height: 8px;
  background: #1a0a0a;
  border-radius: 50%;
}
.scn-peasant-courtesy .figure-emily {
  position: absolute;
  bottom: 8%;
  left: 60%;
  width: 14px;
  height: 28px;
  background: linear-gradient(180deg, #2a1a1a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 30% 30% / 40% 40% 30% 30%;
  transform-origin: bottom center;
}
.scn-peasant-courtesy .figure-bertrand {
  position: absolute;
  bottom: 8%;
  left: 65%;
  width: 16px;
  height: 30px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 30% 30% / 40% 40% 30% 30%;
  transform-origin: bottom center;
}
.scn-peasant-courtesy .warm-glow {
  position: absolute;
  bottom: 30%;
  left: 40%;
  width: 80px;
  height: 80px;
  background: radial-gradient(circle, rgba(255,200,100,0.3) 0%, transparent 70%);
  border-radius: 50%;
  animation: pc-glow 5s ease-in-out infinite;
}
@keyframes pc-sky {
  0% { opacity: 0.6; }
  50% { opacity: 0.8; }
  100% { opacity: 0.5; }
}
@keyframes pc-tree {
  0% { transform: rotate(-2deg); }
  50% { transform: rotate(2deg); }
  100% { transform: rotate(-2deg); }
}
@keyframes pc-arm {
  0% { transform: rotate(-30deg); }
  50% { transform: rotate(10deg); }
  100% { transform: rotate(-30deg); }
}
@keyframes pc-glow {
  0% { transform: scale(1); opacity: 0.4; }
  50% { transform: scale(1.2); opacity: 0.7; }
  100% { transform: scale(1); opacity: 0.4; }
}
@keyframes pc-field {
  0% { background-position: 0 0; }
  50% { background-position: 100% 0; }
  100% { background-position: 0 0; }
}

.scn-fathers-melancholy {
  background:
    linear-gradient(180deg, #1a0f0a 0%, #2c1a10 40%, #3a2218 100%),
    radial-gradient(ellipse at 80% 70%, #4a2e1e 0%, transparent 70%);
}
.scn-fathers-melancholy .window {
  position: absolute;
  top: 5%; left: 8%;
  width: 35%; height: 40%;
  background: linear-gradient(180deg, #0f0f2a 0%, #1a1a3a 40%, #2a2a4e 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.6), 0 0 0 6px #3a2218;
  animation: fm-window 20s ease-in-out infinite alternate;
}
.scn-fathers-melancholy .curtain-l,
.scn-fathers-melancholy .curtain-r {
  position: absolute;
  top: 5%; width: 10%; height: 42%;
  background: linear-gradient(180deg, #4a3020 0%, #2c1a10 100%);
  border-radius: 0 8% 8% 0;
}
.scn-fathers-melancholy .curtain-l {
  left: 5%;
  transform-origin: top left;
  animation: fm-sway 12s ease-in-out infinite alternate;
}
.scn-fathers-melancholy .curtain-r {
  right: 5%;
  border-radius: 8% 0 0 8%;
  transform-origin: top right;
  animation: fm-sway 12s ease-in-out infinite alternate-reverse;
  animation-delay: -6s;
}
.scn-fathers-melancholy .desk {
  position: absolute;
  bottom: 0; left: 0; right: 0;
  height: 25%;
  background: linear-gradient(180deg, #4a2e1e 0%, #2c1a10 100%);
  border-radius: 0 0 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.5);
}
.scn-fathers-melancholy .figure {
  position: absolute;
  bottom: 25%; left: 40%;
  width: 20%; height: 35%;
  background: linear-gradient(180deg, #0a0a0a 0%, #1a1210 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: fm-breathe 9s ease-in-out infinite;
}
.scn-fathers-melancholy .candle {
  position: absolute;
  bottom: 28%; left: 72%;
  width: 2%; height: 8%;
  background: linear-gradient(180deg, #e0c8a8 0%, #a08060 50%, #604020 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 0 4px rgba(200,160,100,0.3);
}
.scn-fathers-melancholy .candle::before {
  content: '';
  position: absolute;
  top: -15%; left: 25%;
  width: 50%; height: 20%;
  background: radial-gradient(ellipse at center, #ffd080 0%, #ffa040 70%, transparent 100%);
  border-radius: 50%;
  animation: fm-flicker 3s ease-in-out infinite alternate;
}
.scn-fathers-melancholy .glow {
  position: absolute;
  bottom: 20%; left: 68%;
  width: 12%; height: 20%;
  background: radial-gradient(ellipse at center, rgba(255,200,120,0.25) 0%, rgba(200,150,80,0.1) 50%, transparent 100%);
  pointer-events: none;
  animation: fm-pulse 6s ease-in-out infinite alternate;
}

@keyframes fm-window {
  0%   { opacity: 0.85; }
  50%  { opacity: 1; background: linear-gradient(180deg, #0f0f2a 0%, #1a1a3a 50%, #2a2a4e 100%); }
  100% { opacity: 0.7; background: linear-gradient(180deg, #0a0a1a 0%, #1a1a3a 40%, #2a2a4e 100%); }
}
@keyframes fm-sway {
  0%   { transform: rotate(0deg) scaleX(1); }
  50%  { transform: rotate(3deg) scaleX(1.02); }
  100% { transform: rotate(-2deg) scaleX(0.98); }
}
@keyframes fm-breathe {
  0%   { transform: scaleY(1) translateY(0); }
  50%  { transform: scaleY(1.015) translateY(-1px); }
  100% { transform: scaleY(1) translateY(0); }
}
@keyframes fm-flicker {
  0%   { transform: scaleY(1) scaleX(1); opacity: 0.8; }
  25%  { transform: scaleY(1.1) scaleX(0.9); opacity: 1; }
  50%  { transform: scaleY(0.9) scaleX(1.1); opacity: 0.9; }
  75%  { transform: scaleY(1.05) scaleX(0.95); opacity: 1; }
  100% { transform: scaleY(1) scaleX(1); opacity: 0.8; }
}
@keyframes fm-pulse {
  0%   { opacity: 0.4; transform: scale(1); }
  50%  { opacity: 0.7; transform: scale(1.1); }
  100% { opacity: 0.3; transform: scale(0.95); }
}

.scn-sentinel\'s-alarm {
  background: 
    linear-gradient(180deg, #0a0a1a 0%, #12122a 40%, #1a1a3a 70%, #0f0f2a 100%),
    radial-gradient(ellipse at 70% 20%, rgba(180,200,255,0.2) 0%, transparent 60%);
}

.scn-sentinel\'s-alarm .sky {
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, #0c0c1e 0%, #1a1a3a 100%);
  animation: sa-sky 15s ease-in-out infinite alternate;
}

.scn-sentinel\'s-alarm .moon {
  position: absolute;
  top: 15%;
  right: 25%;
  width: 70px;
  height: 70px;
  background: radial-gradient(circle at 35% 35%, #d0d8f0 0%, #9aaac0 60%, #6a7a90 100%);
  border-radius: 50%;
  box-shadow: 0 0 40px 10px rgba(200,210,255,0.3), 0 0 80px 20px rgba(200,210,255,0.1);
  animation: sa-moon 20s ease-in-out infinite alternate;
}

.scn-sentinel\'s-alarm .clouds {
  position: absolute;
  top: 12%;
  left: 0;
  width: 100%;
  height: 20%;
  background: linear-gradient(90deg, transparent 0%, rgba(180,190,210,0.15) 25%, rgba(200,210,230,0.25) 50%, rgba(180,190,210,0.15) 75%, transparent 100%);
  filter: blur(5px);
  animation: sa-clouds 30s linear infinite;
}

.scn-sentinel\'s-alarm .terrace {
  position: absolute;
  bottom: 25%;
  left: 0;
  right: 0;
  height: 30%;
  background: linear-gradient(180deg, #15151f 0%, #0a0a12 100%);
  border-radius: 60% 40% 0 0 / 20% 10% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.6);
  animation: sa-terrace 12s ease-in-out infinite alternate;
}

.scn-sentinel\'s-alarm .casement {
  position: absolute;
  bottom: 35%;
  left: 45%;
  width: 60px;
  height: 80px;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border: 3px solid #0f0f1a;
  border-radius: 10% 10% 5% 5%;
  box-shadow: inset 0 0 0 2px #0a0a12, 0 0 15px rgba(100,120,180,0.2);
  animation: sa-casement 6s ease-in-out infinite alternate;
}

.scn-sentinel\'s-alarm .casement::before { /* window light */
  content: '';
  position: absolute;
  top: 10%;
  left: 15%;
  width: 70%;
  height: 70%;
  background: radial-gradient(circle, #b8c8e8 0%, #8898b8 50%, transparent 100%);
  border-radius: 10%;
  opacity: 0.6;
  box-shadow: 0 0 20px 5px rgba(180,200,240,0.4);
  animation: sa-windowglow 3s ease-in-out infinite alternate;
}

.scn-sentinel\'s-alarm .soldier1 {
  position: absolute;
  bottom: 28%;
  left: 30%;
  width: 16px;
  height: 32px;
  background: linear-gradient(180deg, #1c1c28 0%, #0e0e16 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: sa-soldier1 2.5s ease-in-out infinite;
}

.scn-sentinel\'s-alarm .soldier2 {
  position: absolute;
  bottom: 28%;
  left: 55%;
  width: 16px;
  height: 32px;
  background: linear-gradient(180deg, #1c1c28 0%, #0e0e16 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: sa-soldier2 3s ease-in-out infinite;
  animation-delay: -1s;
}

.scn-sentinel\'s-alarm .lantern {
  position: absolute;
  bottom: 22%;
  left: 38%;
  width: 8px;
  height: 8px;
  background: radial-gradient(circle, #f0d080 0%, #c09050 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 12px 4px rgba(220,180,100,0.6), 0 0 24px 8px rgba(220,180,100,0.3);
  animation: sa-lantern 1.8s ease-in-out infinite;
  transform-origin: 50% 100%;
}

@keyframes sa-sky {
  0% { opacity: 0.85; }
  50% { opacity: 1; }
  100% { opacity: 0.9; }
}

@keyframes sa-moon {
  0% { transform: translate(0, 0) scale(1); box-shadow: 0 0 40px 10px rgba(200,210,255,0.3), 0 0 80px 20px rgba(200,210,255,0.1); }
  50% { transform: translate(5px, -3px) scale(1.02); box-shadow: 0 0 50px 12px rgba(200,210,255,0.35), 0 0 100px 25px rgba(200,210,255,0.15); }
  100% { transform: translate(-3px, 2px) scale(0.98); box-shadow: 0 0 35px 8px rgba(200,210,255,0.25), 0 0 70px 15px rgba(200,210,255,0.08); }
}

@keyframes sa-clouds {
  0% { transform: translateX(-100%); }
  50% { transform: translateX(0%); }
  100% { transform: translateX(100%); }
}

@keyframes sa-terrace {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}

@keyframes sa-casement {
  0% { transform: scaleY(1); opacity: 0.9; }
  50% { transform: scaleY(1.01); opacity: 1; }
  100% { transform: scaleY(0.99); opacity: 0.85; }
}

@keyframes sa-windowglow {
  0% { opacity: 0.4; transform: scale(0.95); }
  50% { opacity: 0.8; transform: scale(1.05); }
  100% { opacity: 0.5; transform: scale(0.98); }
}

@keyframes sa-soldier1 {
  0% { transform: translateX(0) rotate(-3deg); }
  25% { transform: translateX(8px) rotate(2deg); }
  50% { transform: translateX(15px) rotate(-1deg); }
  75% { transform: translateX(22px) rotate(3deg); }
  100% { transform: translateX(30px) rotate(0deg); }
}

@keyframes sa-soldier2 {
  0% { transform: translateX(0) rotate(2deg); }
  25% { transform: translateX(-7px) rotate(-2deg); }
  50% { transform: translateX(-14px) rotate(1deg); }
  75% { transform: translateX(-21px) rotate(-3deg); }
  100% { transform: translateX(-28px) rotate(0deg); }
}

@keyframes sa-lantern {
  0% { transform: rotate(-15deg) translateY(0); opacity: 0.7; }
  25% { transform: rotate(10deg) translateY(-1px); opacity: 1; }
  50% { transform: rotate(-5deg) translateY(1px); opacity: 0.8; }
  75% { transform: rotate(12deg) translateY(-1px); opacity: 1; }
  100% { transform: rotate(-10deg) translateY(0); opacity: 0.7; }
}

.scn-condottieri-explanation {
  position: relative;
  overflow: hidden;
  background:
    radial-gradient(ellipse at 50% 50%, rgba(180, 120, 60, 0.25) 0%, transparent 65%),
    linear-gradient(180deg, #1a1410 0%, #2c2018 30%, #3a2a1a 70%, #1a1410 100%);
}

.scn-condottieri-explanation .ce-ceiling {
  position: absolute;
  top: 0; left: 0; right: 0;
  height: 45%;
  background: linear-gradient(180deg, #1a1410 0%, #2a1e18 100%);
  border-radius: 0 0 50% 50% / 0 0 20% 20%;
  box-shadow: inset 0 -12px 30px rgba(0,0,0,0.6);
  animation: ce-shimmer 14s ease-in-out infinite alternate;
}

.scn-condottieri-explanation .ce-table {
  position: absolute;
  bottom: 12%; left: 8%; right: 8%;
  height: 12%;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%);
  border-radius: 12px;
  box-shadow: 0 10px 40px rgba(0,0,0,0.8);
}

.scn-condottieri-explanation .ce-map {
  position: absolute;
  bottom: 16%; left: 22%; right: 22%;
  height: 9%;
  background: linear-gradient(135deg, #c8a868 0%, #d4b878 50%, #b89858 100%);
  border-radius: 4px;
  transform: rotate(-2deg);
  box-shadow: 0 4px 20px rgba(0,0,0,0.6);
  animation: ce-map 15s ease-in-out infinite;
}

.scn-condottieri-explanation .ce-figure-l {
  position: absolute;
  bottom: 8%; left: 16%;
  width: 44px; height: 80px;
  background: linear-gradient(180deg, #0a0a0a 0%, #151515 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ce-breathe 7s ease-in-out infinite;
}

.scn-condottieri-explanation .ce-figure-r {
  position: absolute;
  bottom: 8%; right: 14%;
  width: 48px; height: 84px;
  background: linear-gradient(180deg, #0a0a0a 0%, #151515 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ce-point 9s ease-in-out infinite;
}

.scn-condottieri-explanation .ce-lantern {
  position: absolute;
  bottom: 38%; left: 50%;
  width: 22px; height: 34px;
  transform: translateX(-50%);
  background: radial-gradient(circle at 50% 50%, #ffd080 0%, #c08040 50%, #8a4a20 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow:
    0 0 40px 15px rgba(200, 140, 60, 0.5),
    0 0 80px 30px rgba(200, 140, 60, 0.25),
    0 0 120px 50px rgba(200, 140, 60, 0.1);
  animation: ce-flicker 3s ease-in-out infinite alternate;
}

.scn-condottieri-explanation .ce-light-spot {
  position: absolute;
  bottom: 12%; left: 18%; right: 18%;
  height: 18%;
  background: radial-gradient(ellipse at 50% 100%, rgba(200, 160, 80, 0.35) 0%, transparent 70%);
  animation: ce-flicker 3s ease-in-out infinite alternate-reverse;
}

@keyframes ce-shimmer {
  0%   { opacity: 0.6; }
  50%  { opacity: 0.9; }
  100% { opacity: 0.7; }
}

@keyframes ce-map {
  0%   { transform: rotate(-2deg) scale(1); }
  50%  { transform: rotate(1deg) scale(1.02); }
  100% { transform: rotate(-2deg) scale(1); }
}

@keyframes ce-breathe {
  0%   { transform: translateY(0) scale(1); }
  50%  { transform: translateY(-2px) scale(1.01); }
  100% { transform: translateY(0) scale(1); }
}

@keyframes ce-point {
  0%   { transform: translateX(0) rotate(0deg); }
  40%  { transform: translateX(-6px) rotate(-4deg); }
  60%  { transform: translateX(-6px) rotate(-4deg); }
  100% { transform: translateX(0) rotate(0deg); }
}

@keyframes ce-flicker {
  0%   { opacity: 0.7; box-shadow: 0 0 30px 10px rgba(200, 140, 60, 0.4), 0 0 60px 20px rgba(200, 140, 60, 0.2); }
  50%  { opacity: 1;   box-shadow: 0 0 50px 20px rgba(200, 140, 60, 0.7), 0 0 100px 40px rgba(200, 140, 60, 0.3); }
  100% { opacity: 0.8; box-shadow: 0 0 35px 15px rgba(200, 140, 60, 0.5), 0 0 70px 30px rgba(200, 140, 60, 0.2); }
}

.scn-pensive-melancholy {
  background: linear-gradient(180deg, #0a0a2a 0%, #1a2a4a 40%, #2a3a5a 70%, #1a2a3a 100%),
              radial-gradient(ellipse at 80% 15%, #3a5a7a 0%, transparent 60%);
  position: relative;
  overflow: hidden;
  width: 100%;
  height: 100%;
}
.scn-pensive-melancholy .sky-overlay {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 80% 20%, rgba(220,235,255,0.08) 0%, transparent 70%);
  animation: pm-skyglow 12s ease-in-out infinite alternate;
}
.scn-pensive-melancholy .moon {
  position: absolute; top: 8%; right: 18%;
  width: 70px; height: 70px;
  border-radius: 50%;
  background: radial-gradient(circle, #e8f0ff 0%, #b0c8e0 70%, transparent 100%);
  box-shadow: 0 0 50px 30px rgba(200,220,255,0.4);
  animation: pm-moon 6s ease-in-out infinite alternate;
}
.scn-pensive-melancholy .cloud {
  position: absolute;
  height: 20px;
  background: linear-gradient(180deg, rgba(230,240,255,0.35) 0%, rgba(230,240,255,0.1) 100%);
  border-radius: 50%;
  filter: blur(4px);
  animation: pm-drift 40s linear infinite;
}
.scn-pensive-melancholy .cloud-a {
  top: 16%; left: -100px; width: 120px;
  animation-delay: 0s;
}
.scn-pensive-melancholy .cloud-b {
  top: 25%; left: -80px; width: 90px;
  animation-delay: -20s;
}
.scn-pensive-melancholy .cliffs {
  position: absolute; bottom: 28%; left: 0; right: 0;
  height: 28%;
  background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 80%, transparent 100%);
  border-radius: 30% 60% 0 0 / 50% 40% 0 0;
  box-shadow: inset 0 6px 18px rgba(0,0,0,0.6);
}
.scn-pensive-melancholy .sea {
  position: absolute; bottom: 0; left: 0; right: 0;
  height: 28%;
  background: linear-gradient(180deg, #1a3a4a 0%, #0a1a2a 100%);
}
.scn-pensive-melancholy .wave {
  position: absolute; bottom: 10%;
  width: 100%; height: 6px;
  background: linear-gradient(90deg, transparent, rgba(180,210,240,0.25), transparent);
  border-radius: 50%;
  animation: pm-wave 5s ease-in-out infinite alternate;
}
.scn-pensive-melancholy .wave-1 { left: 0; animation-delay: 0s; }
.scn-pensive-melancholy .wave-2 { left: 0; animation-delay: -2.5s; height: 4px; } /* not used in template but kept for consistency – actually we only have .wave-1 in template, but we can use .wave-2 by adding another div? We have only 9 slots, so we'll use .wave-1 only. To avoid redundancy, I'll keep .wave-1 and add a second wave pseudo? Better to change template to include .wave-2 instead of .wave-1? Let's correct: template has .wave wave-1 only. So we'll style .wave-1 and omit .wave-2. To still have two waves, we can use ::before on .sea, but that's extra. Simpler: keep only one wave element but animate differently. However rule says ≥4 animations; we already have skyglow, moon, drift, wave, figure = 5. So it's fine. So remove .wave-2 from CSS. We'll keep .wave-1 only. */
.scn-pensive-melancholy .wave-1 { left: 0; } /* single wave */
.scn-pensive-melancholy .tree {
  position: absolute; bottom: 30%; left: 6%;
  width: 14px; height: 48px;
  background: #0a1a2a;
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.4);
}
.scn-pensive-melancholy .figure {
  position: absolute; bottom: 26%; right: 28%;
  width: 10px; height: 28px;
  background: #0a1a2a;
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: pm-figure 10s ease-in-out infinite alternate;
}
@keyframes pm-skyglow {
  0% { opacity: 0.3; }
  50% { opacity: 0.1; }
  100% { opacity: 0.5; }
}
@keyframes pm-moon {
  0% { box-shadow: 0 0 40px 20px rgba(200,220,255,0.3); transform: scale(1); }
  50% { box-shadow: 0 0 60px 30px rgba(200,220,255,0.6); transform: scale(1.02); }
  100% { box-shadow: 0 0 50px 25px rgba(200,220,255,0.4); transform: scale(1); }
}
@keyframes pm-drift {
  0% { transform: translateX(-120px); }
  100% { transform: translateX(calc(100vw + 120px)); }
}
@keyframes pm-wave {
  0% { transform: translateX(0) scaleY(1); opacity: 0.4; }
  50% { transform: translateX(8px) scaleY(0.7); opacity: 0.7; }
  100% { transform: translateX(0) scaleY(1); opacity: 0.4; }
}
@keyframes pm-figure {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(2px) rotate(1.5deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
/* end per-scene blocks */

/* auto-stub: parent tag-classes flagged by CSS audit */
.hd-lamp { position: absolute; pointer-events: none; }
.particle { position: absolute; pointer-events: none; }
.qb-shadow { position: absolute; pointer-events: none; }
.scn { position: absolute; pointer-events: none; }

/* ============ tier A ============ */
/* per-scene blocks (EXP step_scenes) */
/* emilys-education */
.scn-emilys-education {
  background: linear-gradient(180deg, #f5e6c8 0%, #e3cba5 100%), radial-gradient(ellipse at 50% 30%, #fff8e0 0%, transparent 70%);
}
.scn-emilys-education .wall { position:absolute; inset:0; background: linear-gradient(90deg, #d4c099 0%, #e3cba5 50%, #d4c099 100%); }
.scn-emilys-education .window { position:absolute; top:8%; right:12%; width:100px; height:130px; background: linear-gradient(180deg, #c0d8f0 0%, #b0c8e0 100%); border-radius:4px; box-shadow: inset 0 0 20px #fff8e0; }
.scn-emilys-education .bookshelf { position:absolute; left:5%; bottom:15%; width:60px; height:80%; background: linear-gradient(90deg, #6a4a2a 0%, #8a6a3a 100%); border-radius:2px; }
.scn-emilys-education .desk { position:absolute; bottom:10%; left:25%; width:160px; height:40px; background: linear-gradient(180deg, #a08060 0%, #806040 100%); border-radius:4px 4px 0 0; }
.scn-emilys-education .figure { position:absolute; bottom:18%; left:32%; width:28px; height:50px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: ee-figure 6s ease-in-out infinite; }
.scn-emilys-education .book-glow { position:absolute; bottom:22%; left:38%; width:20px; height:16px; background: radial-gradient(circle, #ffe080 0%, transparent 100%); filter: blur(6px); animation: ee-glow 4s ease-in-out infinite alternate; }
@keyframes ee-figure { 0%,100% { transform: translateX(0) rotate(0); } 50% { transform: translateX(6px) rotate(2deg); } }
@keyframes ee-glow { 0% { opacity:0.6; } 50% { opacity:1; } 100% { opacity:0.7; } }

/* favorite-walk-fishing-house */
.scn-favorite-walk-fishing-house {
  background: linear-gradient(180deg, #87ceeb 0%, #b0d4e8 100%), radial-gradient(ellipse at 50% 0%, #e0f0ff 0%, transparent 60%);
}
.scn-favorite-walk-fishing-house .sky { position:absolute; top:0; left:0; right:0; height:60%; background: linear-gradient(180deg, #b0d8f0 0%, #c0e0ff 100%); animation: fw-sky 20s ease-in-out infinite alternate; }
.scn-favorite-walk-fishing-house .hills-distant { position:absolute; bottom:30%; left:0; right:0; height:30%; background: linear-gradient(180deg, #7a9a6a 0%, #5a7a4a 100%); border-radius:60% 40% 0 0 / 50% 50% 0 0; }
.scn-favorite-walk-fishing-house .rivulet { position:absolute; bottom:18%; left:10%; right:10%; height:8%; background: linear-gradient(180deg, #6090b0 0%, #4070a0 100%); border-radius:0 0 50% 50%; animation: fw-water 8s ease-in-out infinite alternate; }
.scn-favorite-walk-fishing-house .fishing-house { position:absolute; bottom:22%; left:40%; width:80px; height:45px; background: linear-gradient(180deg, #a08060 0%, #705040 100%); border-radius:6px 6px 0 0; box-shadow: 0 4px 8px rgba(0,0,0,0.3); }
.scn-favorite-walk-fishing-house .trees { position:absolute; bottom:30%; left:60%; width:100px; height:80%; background: linear-gradient(180deg, #3a6a3a 0%, #1a4a1a 100%); border-radius:50% 50% 0 0 / 60% 60% 0 0; }
.scn-favorite-walk-fishing-house .path { position:absolute; bottom:12%; left:30%; width:50px; height:20%; background: linear-gradient(180deg, #c0a080 0%, #a08060 100%); border-radius:0 0 40% 40%; }
@keyframes fw-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes fw-water { 0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.1) translateY(-2px); } 100% { transform: scaleY(1) translateY(0); } }

/* mysterious-sonnet */
.scn-mysterious-sonnet {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 100%), radial-gradient(ellipse at 50% 60%, #3a3a5e 0%, transparent 70%);
}
.scn-mysterious-sonnet .wall-dark { position:absolute; inset:0; background: linear-gradient(90deg, #1e1e32 0%, #2a2a40 100%); }
.scn-mysterious-sonnet .desk { position:absolute; bottom:15%; left:20%; width:60%; height:30px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius:2px; }
.scn-mysterious-sonnet .candle { position:absolute; bottom:30%; left:35%; width:10px; height:25px; background: linear-gradient(180deg, #f0d080 0%, #c0a060 100%); border-radius:2px; filter: blur(1px); }
.scn-mysterious-sonnet .papers { position:absolute; bottom:18%; left:38%; width:50px; height:10px; background: #e8d8c0; border-radius:1px; opacity:0.7; }
.scn-mysterious-sonnet .figure-shadow { position:absolute; bottom:25%; left:30%; width:40px; height:60px; background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 100%); border-radius:50% 50% 30% 30% / 70% 70% 30% 30%; filter: blur(1px); animation: ms-shadow 5s ease-in-out infinite; }
.scn-mysterious-sonnet .poem-glow { position:absolute; bottom:20%; left:40%; width:30px; height:20px; background: radial-gradient(circle, #d0b080 0%, transparent 100%); filter: blur(8px); animation: ms-glow 6s ease-in-out infinite alternate; }
@keyframes ms-shadow { 0%,100% { transform: scaleX(1) rotate(0); } 50% { transform: scaleX(0.9) rotate(2deg); } }
@keyframes ms-glow { 0% { opacity:0.4; } 50% { opacity:0.8; } 100% { opacity:0.5; } }

/* picnic-at-fishing-house */
.scn-picnic-at-fishing-house {
  background: linear-gradient(180deg, #87e8a0 0%, #b0f0c0 100%), radial-gradient(ellipse at 50% 30%, #e0ffe0 0%, transparent 60%);
}
.scn-picnic-at-fishing-house .sky-bright { position:absolute; top:0; left:0; right:0; height:50%; background: linear-gradient(180deg, #90e0e0 0%, #b0e0ff 100%); }
.scn-picnic-at-fishing-house .grass { position:absolute; bottom:0; left:0; right:0; height:55%; background: linear-gradient(180deg, #60b060 0%, #408040 100%); }
.scn-picnic-at-fishing-house .blanket { position:absolute; bottom:15%; left:25%; width:50%; height:25px; background: linear-gradient(90deg, #f0d0b0 0%, #e0c0a0 100%); border-radius:6px; }
.scn-picnic-at-fishing-house .basket { position:absolute; bottom:20%; left:35%; width:40px; height:30px; background: linear-gradient(180deg, #c0a060 0%, #a08040 100%); border-radius:4px 4px 8px 8px; }
.scn-picnic-at-fishing-house .figure-left { position:absolute; bottom:22%; left:30%; width:24px; height:40px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: pf-fig 4s ease-in-out infinite; }
.scn-picnic-at-fishing-house .figure-right { position:absolute; bottom:24%; left:55%; width:24px; height:40px; background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; animation: pf-fig 4s ease-in-out infinite 0.5s; }
.scn-picnic-at-fishing-house .trees-back { position:absolute; bottom:40%; left:5%; width:200px; height:80%; background: linear-gradient(180deg, #3a7a3a 0%, #1a5a1a 100%); border-radius:60% 60% 0 0 / 80% 80% 0 0; opacity:0.5; }
@keyframes pf-fig { 0%,100% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-3px) rotate(2deg); } }

.scn-tree-dispute {
  background: linear-gradient(180deg, #e8dcc8 0%, #c8b89a 100%), radial-gradient(ellipse at 50% 30%, #fff8e0 0%, transparent 70%);
  position: relative; overflow: hidden; height: 100%; width: 100%;
}
.scn-tree-dispute .wall {
  position: absolute; inset: 0; 
  background: linear-gradient(90deg, #b8a080 0%, #d4c0a0 30%, #e0d0b8 100%);
  box-shadow: inset 0 0 120px rgba(0,0,0,0.15);
}
.scn-tree-dispute .window {
  position: absolute; top: 15%; left: 25%; right: 25%; bottom: 20%;
  background: linear-gradient(180deg, #b0d0e8 0%, #8ab4d0 100%);
  border: 6px solid #7a6040;
  border-radius: 4px;
  box-shadow: inset 0 0 40px rgba(255,255,200,0.3), 0 0 60px rgba(200,180,140,0.4);
  animation: td-glow 4s ease-in-out infinite alternate;
}
.scn-tree-dispute .chestnut {
  position: absolute; top: 30%; left: 35%; width: 28%; height: 55%;
  background: linear-gradient(90deg, #4a3a2a 0%, #6a5a3a 30%, #4a3a2a 100%);
  border-radius: 20% 40% 10% 10% / 40% 60% 10% 10%;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.5);
  clip-path: polygon(30% 0%, 70% 0%, 85% 20%, 90% 50%, 80% 80%, 70% 100%, 30% 100%, 20% 80%, 10% 50%, 15% 20%);
  animation: td-tree 3s ease-in-out infinite alternate;
}
.scn-tree-dispute .figure {
  position: absolute; bottom: 10%; left: 45%; width: 10%; height: 35%;
  background: linear-gradient(180deg, #2a2218 0%, #1a1410 100%);
  border-radius: 40% 40% 30% 30% / 60% 50% 40% 40%;
  transform-origin: bottom center;
  animation: td-fig 2.5s ease-in-out infinite alternate;
}
.scn-tree-dispute .shadow-cast {
  position: absolute; bottom: 10%; left: 42%; width: 20%; height: 8%;
  background: rgba(0,0,0,0.25);
  border-radius: 50%;
  filter: blur(8px);
  animation: td-shadow 3s ease-in-out infinite alternate;
}
.scn-tree-dispute .curtain {
  position: absolute; top: 15%; bottom: 20%; left: 25%; width: 8%;
  background: linear-gradient(90deg, #b8a080 0%, #8a7050 100%);
  border-radius: 20% 0 0 20%;
  transform: translateX(-50%);
  animation: td-curtain 6s ease-in-out infinite alternate;
}
@keyframes td-glow {
  0% { box-shadow: inset 0 0 20px rgba(255,255,200,0.2), 0 0 40px rgba(200,180,140,0.3); }
  50% { box-shadow: inset 0 0 60px rgba(255,255,200,0.5), 0 0 80px rgba(200,180,140,0.6); }
  100% { box-shadow: inset 0 0 30px rgba(255,255,200,0.3), 0 0 50px rgba(200,180,140,0.4); }
}
@keyframes td-tree {
  0% { transform: translateX(0) rotate(-1deg); }
  50% { transform: translateX(4px) rotate(1deg); }
  100% { transform: translateX(-2px) rotate(-0.5deg); }
}
@keyframes td-fig {
  0% { transform: translateX(0) rotate(0deg); left: 45%; }
  50% { transform: translateX(-8px) rotate(-3deg); left: 43%; }
  100% { transform: translateX(4px) rotate(2deg); left: 47%; }
}
@keyframes td-shadow {
  0% { transform: scaleX(1) translateX(0); opacity: 0.25; }
  50% { transform: scaleX(1.2) translateX(-4px); opacity: 0.4; }
  100% { transform: scaleX(0.9) translateX(2px); opacity: 0.2; }
}
@keyframes td-curtain {
  0% { left: 25%; }
  50% { left: 20%; }
  100% { left: 28%; }
}

.scn-quesnel-departure {
  background: linear-gradient(180deg, #f0e8d0 0%, #fef8e8 40%, #d0d8b0 100%), radial-gradient(ellipse at 70% 20%, #fff8e0 0%, transparent 60%);
  position: relative; overflow: hidden; height: 100%; width: 100%;
}
.scn-quesnel-departure .sky {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #b0d0e8 0%, #e8f0e0 100%);
  animation: qd-sky 20s ease-in-out infinite alternate;
}
.scn-quesnel-departure .fields {
  position: absolute; bottom: 0; left: 0; right: 0; height: 45%;
  background: linear-gradient(180deg, #b0b88a 0%, #8a9a5a 100%);
  border-radius: 40% 30% 0 0 / 20% 15% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.1);
  animation: qd-fields 30s ease-in-out infinite alternate;
}
.scn-quesnel-departure .mansion {
  position: absolute; bottom: 25%; right: 15%; width: 20%; height: 30%;
  background: linear-gradient(180deg, #c0b098 0%, #a08870 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: -4px 0 12px rgba(0,0,0,0.15);
  clip-path: polygon(0% 100%, 0% 40%, 10% 30%, 10% 0%, 30% 0%, 30% 20%, 50% 20%, 50% 0%, 70% 0%, 70% 30%, 80% 40%, 80% 60%, 100% 60%, 100% 100%);
  animation: qd-mansion 8s ease-in-out infinite alternate;
}
.scn-quesnel-departure .poplar-1 {
  position: absolute; bottom: 20%; left: 20%; width: 4%; height: 50%;
  background: linear-gradient(180deg, #2a4a2a 0%, #4a6a3a 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 10% 10%;
  transform-origin: bottom center;
  animation: qd-poplar 12s ease-in-out infinite alternate;
}
.scn-quesnel-departure .poplar-2 {
  position: absolute; bottom: 20%; left: 28%; width: 3.5%; height: 45%;
  background: linear-gradient(180deg, #2a4a2a 0%, #3a5a2a 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 10% 10%;
  transform-origin: bottom center;
  animation: qd-poplar 15s ease-in-out infinite alternate-reverse;
}
.scn-quesnel-departure .carriage {
  position: absolute; bottom: 12%; left: 35%; width: 15%; height: 12%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 20% 20% / 40% 40% 20% 20%;
  box-shadow: 2px 4px 8px rgba(0,0,0,0.2);
  animation: qd-carriage 10s ease-in-out infinite alternate;
}
.scn-quesnel-departure .figure {
  position: absolute; bottom: 10%; left: 32%; width: 4%; height: 14%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: qd-fig 8s ease-in-out infinite alternate;
}
@keyframes qd-sky {
  0% { background-position: 0% 0%; opacity: 0.9; }
  50% { background-position: 20% 10%; opacity: 1; }
  100% { background-position: -10% -5%; opacity: 0.85; }
}
@keyframes qd-fields {
  0% { transform: translateY(0) scaleX(1); }
  50% { transform: translateY(-4px) scaleX(1.02); }
  100% { transform: translateY(2px) scaleX(0.98); }
}
@keyframes qd-mansion {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-3px) rotate(0.5deg); }
  100% { transform: translateY(1px) rotate(-0.3deg); }
}
@keyframes qd-poplar {
  0% { transform: rotate(-2deg) scaleY(1); }
  50% { transform: rotate(2deg) scaleY(1.05); }
  100% { transform: rotate(-1deg) scaleY(0.95); }
}
@keyframes qd-carriage {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(-8px) rotate(2deg); }
  100% { transform: translateX(4px) rotate(-1deg); }
}
@keyframes qd-fig {
  0% { transform: translateX(0) rotate(0deg); left: 32%; }
  50% { transform: translateX(-6px) rotate(3deg); left: 30%; }
  100% { transform: translateX(3px) rotate(-2deg); left: 34%; }
}

/* Scene: chateau-st-aubert-arrival */
.scn-chateau-st-aubert-arrival { background: linear-gradient(180deg, #87CEEB 0%, #E6E6FA 40%, #F5DEB3 80%), radial-gradient(ellipse at 50% 100%, #F5DEB3 0%, transparent 70%); }
.scn-chateau-st-aubert-arrival .sky { position:absolute; inset:0 0 50% 0; background: linear-gradient(180deg, #4fa4d0 0%, #b0e0f0 100%); animation: csaa-sky 8s ease-in-out infinite alternate; }
.scn-chateau-st-aubert-arrival .mountains { position:absolute; bottom:30%; left:0; right:0; height:30%; background: linear-gradient(180deg, #6b8e6b 0%, #3a5a3a 100%); border-radius: 30% 70% 0 0 / 60% 80% 0 0; transform: scaleX(1.2); animation: csaa-mountains 12s ease-in-out infinite alternate; }
.scn-chateau-st-aubert-arrival .river { position:absolute; bottom:15%; left:0; right:0; height:20%; background: linear-gradient(180deg, #4a7a9a 0%, #2a5a7a 100%); border-radius: 0 0 50% 50%; animation: csaa-river 6s ease-in-out infinite; }
.scn-chateau-st-aubert-arrival .chateau { position:absolute; bottom:20%; left:40%; width:18%; height:25%; background: linear-gradient(180deg, #d4b48c 0%, #a08060 100%); border-radius: 5% 5% 3% 3%; box-shadow: 0 4px 8px rgba(0,0,0,0.3); animation: csaa-chateau 4s ease-in-out infinite alternate; }
.scn-chateau-st-aubert-arrival .chateau::before { content:''; position:absolute; top:10%; left:10%; width:40%; height:40%; background: linear-gradient(180deg, #f0d8a0 0%, #c8a860 100%); border-radius: 2px; box-shadow: 0 0 10px rgba(255,200,100,0.4); }
.scn-chateau-st-aubert-arrival .tree-left { position:absolute; bottom:25%; left:10%; width:12%; height:35%; background: linear-gradient(180deg, #2a4a2a 0%, #1a3a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: csaa-tree 9s ease-in-out infinite; }
.scn-chateau-st-aubert-arrival .tree-right { position:absolute; bottom:25%; right:10%; width:12%; height:35%; background: linear-gradient(180deg, #2a4a2a 0%, #1a3a1a 100%); border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: csaa-tree 9s ease-in-out infinite 2s; }
.scn-chateau-st-aubert-arrival .cloud-a { position:absolute; top:15%; left:20%; width:15%; height:8%; background: linear-gradient(180deg, rgba(255,255,255,0.6) 0%, rgba(255,255,255,0.1) 100%); border-radius: 50%; filter: blur(6px); animation: csaa-cloud 20s linear infinite; }
.scn-chateau-st-aubert-arrival .cloud-b { position:absolute; top:10%; right:15%; width:12%; height:6%; background: linear-gradient(180deg, rgba(255,255,255,0.5) 0%, rgba(255,255,255,0.05) 100%); border-radius: 50%; filter: blur(5px); animation: csaa-cloud 25s linear infinite reverse; }
@keyframes csaa-sky { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes csaa-mountains { 0% { transform: scaleX(1.2) translateY(0); } 50% { transform: scaleX(1.2) translateY(-3px); } 100% { transform: scaleX(1.2) translateY(0); } }
@keyframes csaa-river { 0% { opacity:0.6; background-position:0% 0%; } 50% { opacity:0.8; background-position:50% 0%; } 100% { opacity:0.6; background-position:100% 0%; } }
@keyframes csaa-chateau { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes csaa-tree { 0% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(-2deg); } }
@keyframes csaa-cloud { 0% { transform: translateX(-30vw); } 50% { transform: translateX(10vw); } 100% { transform: translateX(110vw); } }

/* Scene: chateau-architecture */
.scn-chateau-architecture { background: linear-gradient(180deg, #8B7355 0%, #C2B280 40%, #E8D8B0 100%), radial-gradient(ellipse at 50% 80%, #E8D8B0 0%, transparent 60%); }
.scn-chateau-architecture .bg-stone { position:absolute; inset:0; background: linear-gradient(180deg, #6b5a4a 0%, #4a3a2a 100%); opacity:0.3; animation: ca-stone 10s ease-in-out infinite alternate; }
.scn-chateau-architecture .facade { position:absolute; bottom:20%; left:25%; width:50%; height:60%; background: linear-gradient(180deg, #d4c4a0 0%, #b8a080 100%); border-radius: 4% 4% 2% 2%; box-shadow: 0 8px 20px rgba(0,0,0,0.2); animation: ca-facade 6s ease-in-out infinite; }
.scn-chateau-architecture .window { position:absolute; bottom:45%; left:45%; width:10%; height:15%; background: linear-gradient(180deg, #f0d0a0 0%, #c8a060 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 0 20px 5px rgba(255,200,100,0.3); animation: ca-window 3s ease-in-out infinite alternate; }
.scn-chateau-architecture .roof { position:absolute; bottom:75%; left:23%; width:54%; height:15%; background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 100%); border-radius: 10% 10% 0 0 / 20% 20% 0 0; transform: skewX(-5deg); animation: ca-roof 4s ease-in-out infinite; }
.scn-chateau-architecture .door { position:absolute; bottom:20%; left:42%; width:16%; height:25%; background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%); border-radius: 20% 20% 5% 5%; box-shadow: inset 0 0 10px rgba(0,0,0,0.5); animation: ca-door 8s ease-in-out infinite; }
.scn-chateau-architecture .vine-left { position:absolute; bottom:20%; left:24%; width:8%; height:50%; background: linear-gradient(180deg, #3a6a3a 0%, #2a4a2a 100%); border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%; transform-origin: bottom left; animation: ca-vine 7s ease-in-out infinite; }
.scn-chateau-architecture .vine-right { position:absolute; bottom:20%; right:24%; width:8%; height:40%; background: linear-gradient(180deg, #3a6a3a 0%, #2a4a2a 100%); border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%; transform-origin: bottom right; animation: ca-vine 7s ease-in-out infinite 1.5s; }
.scn-chateau-architecture .sunbeam { position:absolute; top:10%; left:50%; width:20%; height:80%; background: linear-gradient(180deg, rgba(255,255,200,0.4) 0%, rgba(255,255,200,0) 100%); transform: rotate(15deg) scaleY(1); animation: ca-beam 5s ease-in-out infinite alternate; }
@keyframes ca-stone { 0% { opacity:0.2; } 50% { opacity:0.4; } 100% { opacity:0.2; } }
@keyframes ca-facade { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes ca-window { 0% { box-shadow: 0 0 10px 2px rgba(255,200,100,0.2); opacity:0.8; } 50% { box-shadow: 0 0 30px 8px rgba(255,220,120,0.6); opacity:1; } 100% { box-shadow: 0 0 15px 3px rgba(255,200,100,0.3); opacity:0.9; } }
@keyframes ca-roof { 0% { transform: skewX(-5deg) translateY(0); } 50% { transform: skewX(-5deg) translateY(-2px); } 100% { transform: skewX(-5deg) translateY(0); } }
@keyframes ca-door { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(1); } }
@keyframes ca-vine { 0% { transform: rotate(-3deg); } 50% { transform: rotate(3deg); } 100% { transform: rotate(-3deg); } }
@keyframes ca-beam { 0% { opacity:0.3; transform: rotate(15deg) scaleY(0.9); } 50% { opacity:0.6; transform: rotate(18deg) scaleY(1.1); } 100% { opacity:0.3; transform: rotate(15deg) scaleY(0.9); } }

/* Scene: evening-peasants-river */
.scn-evening-peasants-river { background: linear-gradient(180deg, #2c2c54 0%, #4a3a6e 30%, #6b4a7a 60%, #8a6a8a 100%), radial-gradient(ellipse at 50% 100%, #6b4a7a 0%, transparent 80%); }
.scn-evening-peasants-river .sky-dusk { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #3a3a6a 0%, #7a5a8a 40%, #c8a0b0 100%); animation: epr-sky 10s ease-in-out infinite alternate; }
.scn-evening-peasants-river .hills { position:absolute; bottom:30%; left:0; right:0; height:20%; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); border-radius: 40% 60% 0 0 / 80% 70% 0 0; animation: epr-hills 15s ease-in-out infinite; }
.scn-evening-peasants-river .river-evening { position:absolute; bottom:10%; left:0; right:0; height:25%; background: linear-gradient(180deg, #4a4a7a 0%, #2a2a5a 100%); border-radius: 0 0 40% 40%; animation: epr-river 8s ease-in-out infinite; }
.scn-evening-peasants-river .dancer { position:absolute; bottom:15%; width:12%; height:20%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; }
.scn-evening-peasants-river .dancer-1 { left:20%; animation: epr-dance 2s ease-in-out infinite; }
.scn-evening-peasants-river .dancer-2 { left:45%; animation: epr-dance 2s ease-in-out infinite 0.3s; }
.scn-evening-peasants-river .dancer-3 { left:70%; animation: epr-dance 2s ease-in-out infinite 0.6s; }
.scn-evening-peasants-river .star { position:absolute; width:4px; height:4px; background: #fff; border-radius: 50%; box-shadow: 0 0 6px 2px rgba(255,255,255,0.4); }
.scn-evening-peasants-river .star-1 { top:10%; left:15%; animation: epr-twinkle 3s ease-in-out infinite; }
.scn-evening-peasants-river .star-2 { top:8%; right:20%; animation: epr-twinkle 3.5s ease-in-out infinite 1s; }
.scn-evening-peasants-river .star-3 { top:20%; left:60%; animation: epr-twinkle 4s ease-in-out infinite 0.5s; }
@keyframes epr-sky { 0% { opacity:0.7; background-position:0% 0%; } 50% { opacity:0.9; background-position:50% 0%; } 100% { opacity:0.7; background-position:100% 0%; } }
@keyframes epr-hills { 0% { transform: translateY(0); } 50% { transform: translateY(-2px); } 100% { transform: translateY(0); } }
@keyframes epr-river { 0% { opacity:0.6; } 50% { opacity:0.8; } 100% { opacity:0.6; } }
@keyframes epr-dance { 0% { transform: translateY(0) rotate(-5deg); } 25% { transform: translateY(-4px) rotate(3deg); } 50% { transform: translateY(0) rotate(5deg); } 75% { transform: translateY(-2px) rotate(-3deg); } 100% { transform: translateY(0) rotate(-5deg); } }
@keyframes epr-twinkle { 0% { opacity:0.3; transform: scale(1); } 50% { opacity:1; transform: scale(1.5); } 100% { opacity:0.3; transform: scale(1); } }

/* Scene: st-aubert-sunset-plane-tree */
.scn-st-aubert-sunset-plane-tree { background: linear-gradient(180deg, #ff7a3a 0%, #d84a1a 30%, #8a2a0a 60%, #2a0a0a 100%), radial-gradient(ellipse at 50% 100%, #4a1a0a 0%, transparent 70%); }
.scn-st-aubert-sunset-plane-tree .sky-sunset { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #ff6a2a 0%, #ffb08a 40%, #c84020 100%); animation: sapl-sky 8s ease-in-out infinite alternate; }
.scn-st-aubert-sunset-plane-tree .ground { position:absolute; bottom:0; left:0; right:0; height:35%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a0a 100%); border-radius: 30% 70% 0 0 / 50% 80% 0 0; }
.scn-st-aubert-sunset-plane-tree .tree-trunk { position:absolute; bottom:25%; left:40%; width:6%; height:50%; background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%); border-radius: 20% 20% 10% 10% / 30% 30% 10% 10%; transform-origin: bottom center; animation: sapl-trunk 6s ease-in-out infinite; }
.scn-st-aubert-sunset-plane-tree .tree-canopy { position:absolute; bottom:55%; left:30%; width:40%; height:40%; background: radial-gradient(ellipse at 50% 50%, #2a5a2a 0%, #1a3a1a 70%, transparent 100%); border-radius: 50%; animation: sapl-canopy 10s ease-in-out infinite alternate; }
.scn-st-aubert-sunset-plane-tree .bench { position:absolute; bottom:15%; left:35%; width:30%; height:6%; background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%); border-radius: 10% 10% 5% 5%; box-shadow: 0 2px 4px rgba(0,0,0,0.5); }
.scn-st-aubert-sunset-plane-tree .figure-silhouette { position:absolute; bottom:18%; left:42%; width:10%; height:20%; background: linear-gradient(180deg, #0a0a1a 0%, #00000a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: sapl-figure 4s ease-in-out infinite; }
.scn-st-aubert-sunset-plane-tree .bird { position:absolute; top:15%; left:60%; width:6%; height:4%; background: #1a1a2a; border-radius: 50%; animation: sapl-bird 12s ease-in-out infinite; }
.scn-st-aubert-sunset-plane-tree .firefly { position:absolute; bottom:30%; left:20%; width:4px; height:4px; background: #ffd700; border-radius:50%; box-shadow: 0 0 12px 4px rgba(255,215,0,0.5); animation: sapl-firefly 7s ease-in-out infinite; }
@keyframes sapl-sky { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes sapl-trunk { 0% { transform: rotate(0deg); } 50% { transform: rotate(-1deg); } 100% { transform: rotate(0deg); } }
@keyframes sapl-canopy { 0% { transform: scale(1) translateY(0); } 50% { transform: scale(1.05) translateY(-2px); } 100% { transform: scale(1) translateY(0); } }
@keyframes sapl-figure { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2px) rotate(2deg); } 50% { transform: translateX(0) rotate(-1deg); } 75% { transform: translateX(-2px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes sapl-bird { 0% { transform: translateX(-10px) translateY(0); } 50% { transform: translateX(20px) translateY(-5px); } 100% { transform: translateX(100px) translateY(0); } }
@keyframes sapl-firefly { 0% { opacity:0.2; transform: translate(0,0); } 50% { opacity:0.8; transform: translate(5px, -10px); } 100% { opacity:0.2; transform: translate(0,0); } }

/* music-in-fishing-house */
.scn-music-in-fishing-house {
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1e10 60%, #1a100a 100%),
              radial-gradient(ellipse at 30% 80%, #4a3820 0%, transparent 60%);
}
.scn-music-in-fishing-house .room-bg {
  position: absolute; inset: 0 0 20% 0;
  background: linear-gradient(180deg, #4a3820 0%, #2a1e10 100%);
  animation: mfh-pulse 8s ease-in-out infinite alternate;
}
.scn-music-in-fishing-house .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a100a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 8px 12px rgba(0,0,0,.6);
}
.scn-music-in-fishing-house .table {
  position: absolute; bottom: 22%; left: 35%; width: 90px; height: 12px;
  background: #5a3a1a;
  border-radius: 4px 4px 0 0;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
  animation: mfh-table 12s ease-in-out infinite;
}
.scn-music-in-fishing-house .lute {
  position: absolute; bottom: 30%; left: 38%; width: 24px; height: 36px;
  background: radial-gradient(ellipse at 50% 60%, #b08040 0%, #7a5020 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 2px 6px rgba(0,0,0,.4);
  transform: rotate(-10deg);
  animation: mfh-lute 6s ease-in-out infinite alternate;
}
.scn-music-in-fishing-house .wainscot {
  position: absolute; bottom: 38%; left: 5%; right: 5%; height: 15%;
  background: repeating-linear-gradient(90deg, #5a3a1a 0px, #5a3a1a 60px, #4a2a10 60px, #4a2a10 62px),
              linear-gradient(180deg, #6a4a2a 0%, #4a2a10 100%);
  box-shadow: inset 0 4px 8px rgba(0,0,0,.5);
  border-radius: 2px;
}
.scn-music-in-fishing-house .candle-glow {
  position: absolute; bottom: 24%; left: 40%; width: 8px; height: 12px;
  background: #ffd080;
  border-radius: 2px 2px 0 0;
  box-shadow: 0 0 20px 8px rgba(255,208,128,.4), 0 0 40px 16px rgba(255,208,128,.2);
  animation: mfh-candle 3s ease-in-out infinite alternate;
}
.scn-music-in-fishing-house .figure {
  position: absolute; bottom: 20%; left: 55%; width: 16px; height: 40px;
  background: linear-gradient(180deg, #1a100a 0%, #0a0806 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mfh-figure 4s ease-in-out infinite;
}
@keyframes mfh-pulse { 0% { opacity: .85 } 50% { opacity: 1 } 100% { opacity: .9 } }
@keyframes mfh-table { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }
@keyframes mfh-lute { 0% { transform: rotate(-10deg) } 50% { transform: rotate(-8deg) } 100% { transform: rotate(-12deg) } }
@keyframes mfh-candle { 0% { box-shadow: 0 0 12px 4px rgba(255,208,128,.3); opacity: .8 } 50% { box-shadow: 0 0 28px 10px rgba(255,208,128,.5); opacity: 1 } 100% { box-shadow: 0 0 16px 6px rgba(255,208,128,.35); opacity: .85 } }
@keyframes mfh-figure { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(2px) rotate(-1deg) } 50% { transform: translateX(0) rotate(0deg) } 75% { transform: translateX(-2px) rotate(1deg) } 100% { transform: translateX(0) rotate(0deg) } }

/* sunset-on-summit */
.scn-sunset-on-summit {
  background: linear-gradient(180deg, #ff7a40 0%, #cc3a1a 30%, #7a1a0a 60%, #1a0a0a 100%),
              radial-gradient(ellipse at 50% 70%, #ff9a5a 0%, transparent 50%);
}
.scn-sunset-on-summit .sky {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #ff7a40 0%, #cc3a1a 40%, #7a1a0a 70%, transparent 100%);
  animation: sos-sky 10s ease-in-out infinite alternate;
}
.scn-sunset-on-summit .sun {
  position: absolute; bottom: 35%; left: 45%; width: 40px; height: 40px;
  background: radial-gradient(circle, #ffe0a0 0%, #ff7a40 70%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 60px 30px rgba(255,122,64,.4);
  animation: sos-sun 15s ease-in-out infinite alternate;
}
.scn-sunset-on-summit .mtn-back {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%);
  border-radius: 30% 40% 0 0 / 60% 70% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,.5);
  animation: sos-mtn 8s ease-in-out infinite alternate;
}
.scn-sunset-on-summit .mtn-front {
  position: absolute; bottom: 20%; left: 5%; right: 10%; height: 20%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%);
  border-radius: 50% 30% 0 0 / 80% 50% 0 0;
  box-shadow: inset 0 4px 10px rgba(0,0,0,.6);
  animation: sos-mtn 12s ease-in-out infinite alternate-reverse;
}
.scn-sunset-on-summit .figure {
  position: absolute; bottom: 28%; left: 30%; width: 12px; height: 32px;
  background: #1a0a00;
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sos-figure 5s ease-in-out infinite;
}
.scn-sunset-on-summit .mist {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, rgba(255,122,64,.1) 0%, rgba(255,60,30,.05) 100%);
  filter: blur(12px);
  animation: sos-mist 20s linear infinite alternate;
}
@keyframes sos-sky { 0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .7 } }
@keyframes sos-sun { 0% { transform: translateY(0) scale(1); opacity: .9 } 50% { transform: translateY(-8px) scale(1.05); opacity: 1 } 100% { transform: translateY(2px) scale(.95); opacity: .85 } }
@keyframes sos-mtn { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes sos-figure { 0% { transform: translateX(0) rotate(0deg) } 50% { transform: translateX(3px) rotate(-1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes sos-mist { 0% { opacity: .3; transform: scale(1) } 50% { opacity: .5; transform: scale(1.05) } 100% { opacity: .2; transform: scale(.95) } }

/* quesnel-visit */
.scn-quesnel-visit {
  background: linear-gradient(180deg, #2a1a10 0%, #1a0e08 60%, #0a0503 100%),
              radial-gradient(ellipse at 40% 80%, #7a3a1a 0%, transparent 60%);
}
.scn-quesnel-visit .bg-wall {
  position: absolute; inset: 0 0 15% 0;
  background: linear-gradient(90deg, #3a2a1a 0%, #2a1a10 50%, #3a2a1a 100%);
  animation: qv-wall 6s ease-in-out infinite alternate;
}
.scn-quesnel-visit .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 15%;
  background: linear-gradient(180deg, #2a1a10 0%, #1a0e08 100%);
  border-radius: 8% 8% 0 0;
  box-shadow: inset 0 6px 10px rgba(0,0,0,.7);
}
.scn-quesnel-visit .fireplace {
  position: absolute; bottom: 18%; left: 8%; width: 40px; height: 60px;
  background: #2a1a10;
  border-radius: 4px 4px 0 0;
  box-shadow: inset 0 0 12px rgba(150,60,20,.3);
}
.scn-quesnel-visit .fire-glow {
  position: absolute; bottom: 28%; left: 12%; width: 18px; height: 24px;
  background: radial-gradient(circle, #ff7a40 0%, #cc3a1a 60%, transparent 100%);
  border-radius: 50% 50% 30% 30% / 40% 40% 20% 20%;
  box-shadow: 0 0 30px 12px rgba(255,122,64,.4);
  animation: qv-fire 2s ease-in-out infinite alternate;
}
.scn-quesnel-visit .quesnel {
  position: absolute; bottom: 20%; left: 25%; width: 18px; height: 44px;
  background: linear-gradient(180deg, #1a0e08 0%, #0a0503 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: qv-quesnel 4s ease-in-out infinite;
}
.scn-quesnel-visit .madame {
  position: absolute; bottom: 22%; left: 45%; width: 14px; height: 36px;
  background: linear-gradient(180deg, #2a1a10 0%, #1a0e08 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: qv-madame 5s ease-in-out infinite;
}
.scn-quesnel-visit .shadow-cast {
  position: absolute; bottom: 15%; left: 20%; width: 50px; height: 8px;
  background: #0a0503;
  border-radius: 50%;
  filter: blur(4px);
  opacity: .6;
  animation: qv-shadow 4s ease-in-out infinite alternate;
}
@keyframes qv-wall { 0% { opacity: .9 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes qv-fire { 0% { box-shadow: 0 0 20px 8px rgba(255,122,64,.3); transform: scale(1) } 50% { box-shadow: 0 0 40px 16px rgba(255,122,64,.5); transform: scale(1.1) } 100% { box-shadow: 0 0 25px 10px rgba(255,122,64,.35); transform: scale(.95) } }
@keyframes qv-quesnel { 0% { transform: rotate(0deg) } 25% { transform: rotate(2deg) } 50% { transform: rotate(0deg) } 75% { transform: rotate(-2deg) } 100% { transform: rotate(0deg) } }
@keyframes qv-madame { 0% { transform: translateX(0) rotate(0deg) } 33% { transform: translateX(1px) rotate(-1deg) } 66% { transform: translateX(-1px) rotate(1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes qv-shadow { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.1) } 100% { transform: scaleX(.9) } }

/* quesnel-questions */
.scn-quesnel-questions {
  background: linear-gradient(180deg, #1a100e 0%, #0e0806 60%, #050302 100%),
              radial-gradient(ellipse at 50% 90%, #3a1a0a 0%, transparent 50%);
}
.scn-quesnel-questions .bg-room {
  position: absolute; inset: 0 0 10% 0;
  background: linear-gradient(180deg, #2a1a12 0%, #1a100e 100%);
  animation: qq-room 8s ease-in-out infinite alternate;
}
.scn-quesnel-questions .desk {
  position: absolute; bottom: 12%; left: 25%; width: 70px; height: 20px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a2218 100%);
  border-radius: 4px 4px 0 0;
  box-shadow: 0 4px 8px rgba(0,0,0,.6);
  animation: qq-desk 10s ease-in-out infinite;
}
.scn-quesnel-questions .paper {
  position: absolute; bottom: 20%; left: 30%; width: 20px; height: 14px;
  background: #b8a080;
  border-radius: 2px;
  transform: rotate(5deg);
  box-shadow: 0 2px 4px rgba(0,0,0,.3);
  animation: qq-paper 4s ease-in-out infinite alternate;
}
.scn-quesnel-questions .quill {
  position: absolute; bottom: 25%; left: 35%; width: 4px; height: 20px;
  background: #c0a080;
  border-radius: 50% 50% 0 0;
  transform: rotate(-20deg);
  transform-origin: bottom right;
  animation: qq-quill 3s ease-in-out infinite alternate;
}
.scn-quesnel-questions .quesnel-silhouette {
  position: absolute; bottom: 16%; left: 15%; width: 18px; height: 46px;
  background: #0e0806;
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: qq-quesnel 5s ease-in-out infinite;
}
.scn-quesnel-questions .madame-silhouette {
  position: absolute; bottom: 18%; left: 55%; width: 14px; height: 38px;
  background: #1a100e;
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: qq-madame 6s ease-in-out infinite;
}
.scn-quesnel-questions .lamp {
  position: absolute; bottom: 30%; left: 20%; width: 8px; height: 12px;
  background: #ffd080;
  border-radius: 2px 2px 0 0;
  box-shadow: 0 0 16px 6px rgba(255,208,128,.4), 0 0 32px 12px rgba(255,208,128,.2);
  animation: qq-lamp 2.5s ease-in-out infinite alternate;
}
@keyframes qq-room { 0% { opacity: .9 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes qq-desk { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }
@keyframes qq-paper { 0% { transform: rotate(5deg) } 50% { transform: rotate(8deg) } 100% { transform: rotate(2deg) } }
@keyframes qq-quill { 0% { transform: rotate(-20deg) } 50% { transform: rotate(-15deg) } 100% { transform: rotate(-25deg) } }
@keyframes qq-quesnel { 0% { transform: rotate(0deg) } 25% { transform: rotate(1deg) } 50% { transform: rotate(0deg) } 75% { transform: rotate(-1deg) } 100% { transform: rotate(0deg) } }
@keyframes qq-madame { 0% { transform: translateX(0) } 33% { transform: translateX(1px) } 66% { transform: translateX(-1px) } 100% { transform: translateX(0) } }
@keyframes qq-lamp { 0% { box-shadow: 0 0 12px 4px rgba(255,208,128,.3); opacity: .85 } 50% { box-shadow: 0 0 24px 8px rgba(255,208,128,.5); opacity: 1 } 100% { box-shadow: 0 0 16px 6px rgba(255,208,128,.35); opacity: .9 } }
/* end per-scene blocks */

/* auto-stub: parent tag-classes flagged by CSS audit */
.chair-2 { position: absolute; pointer-events: none; }
.fiend { position: absolute; pointer-events: none; }
.flame-joy { position: absolute; pointer-events: none; }
.hd-pillar { position: absolute; pointer-events: none; }
.note-1 { position: absolute; pointer-events: none; }

/* ============ tier S ============ */
/* per-scene blocks (EXP step_scenes) */
/* east-turret-aunt-alive */
.scn-east-turret-aunt-alive {
  background:
    linear-gradient(180deg, #1a1423 0%, #2a1e2f 40%, #1c1425 100%),
    radial-gradient(ellipse at 50% 0%, #3a2d44 0%, transparent 80%);
}
.scn-east-turret-aunt-alive .wall-back { position:absolute; inset:0 15% 20% 15%; background: linear-gradient(180deg, #241d2a 0%, #1b1521 100%); border-radius:4px; }
.scn-east-turret-aunt-alive .wall-left { position:absolute; inset:0 0 20% 0; width:15%; background: linear-gradient(90deg, #1a1423 0%, #2a1e2f 100%); }
.scn-east-turret-aunt-alive .wall-right { position:absolute; inset:0 0 20% 0; right:0; width:15%; background: linear-gradient(270deg, #1a1423 0%, #2a1e2f 100%); }
.scn-east-turret-aunt-alive .floor { position:absolute; bottom:0; left:15%; right:15%; height:20%; background: linear-gradient(180deg, #2a1e2f 0%, #1c1425 100%); border-radius:0 0 10px 10px; }
.scn-east-turret-aunt-alive .window-bars { position:absolute; top:8%; left:25%; width:50%; height:30%; background: repeating-linear-gradient(90deg, #1a1423 0px, #1a1423 6px, transparent 6px, transparent 16px); border:2px solid #2a1e2f; border-radius:30% 30% 0 0; }
.scn-east-turret-aunt-alive .moonlight { position:absolute; top:8%; left:25%; width:50%; height:30%; background: radial-gradient(ellipse at 50% 0%, rgba(180,180,220,0.15) 0%, transparent 70%); animation: et-moon 8s ease-in-out infinite alternate; }
.scn-east-turret-aunt-alive .bed { position:absolute; bottom:20%; left:20%; width:60%; height:18%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 100%); border-radius:10px 10px 20px 20px; box-shadow: 0 4px 8px rgba(0,0,0,0.6); }
.scn-east-turret-aunt-alive .aunt-silhouette { position:absolute; bottom:20%; left:30%; width:20%; height:18%; background: #0d0a10; border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; transform: rotate(10deg); animation: et-aunt 6s ease-in-out infinite; }
.scn-east-turret-aunt-alive .torch-flicker { position:absolute; top:35%; left:10%; width:8px; height:12px; background: radial-gradient(circle at 50% 100%, #ffd080 0%, #b06020 60%, transparent 80%); box-shadow: 0 0 20px 6px rgba(255,200,80,0.3); border-radius:50%; animation: et-torch 2s ease-in-out infinite; }
@keyframes et-moon { 0% { opacity:0.3 } 50% { opacity:0.7 } 100% { opacity:0.4 } }
@keyframes et-aunt { 0%,100% { transform: rotate(10deg) scale(1) } 50% { transform: rotate(8deg) scale(0.97) } }
@keyframes et-torch { 0%,100% { transform: scale(1) translateY(0); opacity:0.8 } 50% { transform: scale(1.1) translateY(-2px); opacity:1 } }

/* ghostly-rampart-omen */
.scn-ghostly-rampart-omen {
  background:
    linear-gradient(180deg, #0b0c1a 0%, #10152e 40%, #181e3a 100%),
    radial-gradient(ellipse at 50% 20%, #1a2440 0%, transparent 70%);
}
.scn-ghostly-rampart-omen .sky-night { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #0b0c1a 0%, #10152e 60%, #181e3a 100%); }
.scn-ghostly-rampart-omen .stars { position:absolute; top:5%; left:10%; width:80%; height:30%; background: radial-gradient(1px 1px at 20% 30%, #fff 0%, transparent 100%), radial-gradient(1.5px 1.5px at 50% 10%, #fff 0%, transparent 100%), radial-gradient(1px 1px at 70% 25%, #fff 0%, transparent 100%), radial-gradient(1px 1px at 90% 40%, #fff 0%, transparent 100%); animation: gr-stars 20s linear infinite; }
.scn-ghostly-rampart-omen .rampart-wall { position:absolute; bottom:20%; left:0; right:0; height:40%; background: linear-gradient(180deg, #1a1e30 0%, #0d101f 100%); border-radius:20% 20% 0 0 / 40% 40% 0 0; box-shadow: inset 0 8px 12px rgba(0,0,0,0.5); }
.scn-ghostly-rampart-omen .ghost-figure { position:absolute; bottom:30%; left:50%; width:30px; height:50px; transform:translateX(-50%); background: rgba(200,210,240,0.1); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; filter: blur(3px); animation: gr-ghost 12s ease-in-out infinite; }
.scn-ghostly-rampart-omen .soldier-silhouette { position:absolute; bottom:28%; left:20%; width:24px; height:45px; background: #0a0c14; border-radius:30% 30% 20% 20%; transform: rotate(-5deg); animation: gr-soldier 6s ease-in-out infinite; }
.scn-ghostly-rampart-omen .lance-flame { position:absolute; bottom:50%; left:22%; width:6px; height:10px; background: radial-gradient(circle at 50% 0%, #ffb060 0%, #ff8040 50%, transparent 80%); box-shadow: 0 0 18px 4px rgba(255,160,80,0.6); border-radius:50%; animation: gr-flame 1.5s ease-in-out infinite; }
.scn-ghostly-rampart-omen .cloud-wisp { position:absolute; top:15%; left:-10%; width:120px; height:12px; background: rgba(200,210,240,0.08); filter: blur(8px); border-radius:50%; animation: gr-drift 40s linear infinite; }
@keyframes gr-stars { 0% { opacity:0.6 } 50% { opacity:1 } 100% { opacity:0.6 } }
@keyframes gr-ghost { 0%,100% { transform: translateX(-50%) translateY(0) scale(1); opacity:0.3 } 50% { transform: translateX(-50%) translateY(-6px) scale(1.05); opacity:0.7 } }
@keyframes gr-soldier { 0%,100% { transform: rotate(-5deg) translateX(0) } 50% { transform: rotate(-8deg) translateX(2px) } }
@keyframes gr-flame { 0%,100% { transform: scale(1) rotate(0deg) } 50% { transform: scale(1.3) rotate(10deg) } }
@keyframes gr-drift { 0% { transform: translateX(0) } 100% { transform: translateX(130vw) } }

/* venetian-ladies-singing */
.scn-venetian-ladies-singing {
  background:
    linear-gradient(180deg, #1a1410 0%, #2c221c 40%, #1e1814 100%),
    radial-gradient(ellipse at 50% 100%, #3a2e24 0%, transparent 70%);
}
.scn-venetian-ladies-singing .bg-deep { position:absolute; inset:0; background: linear-gradient(180deg, #1a1410 0%, #2c221c 50%, #1e1814 100%); }
.scn-venetian-ladies-singing .gallery-arch { position:absolute; top:10%; left:15%; width:70%; height:50%; border:2px solid #3a2e24; border-radius:50% 50% 0 0 / 80% 80% 0 0; background: transparent; box-shadow: inset 0 0 20px rgba(0,0,0,0.4); }
.scn-venetian-ladies-singing .lamp-glow { position:absolute; top:20%; left:45%; width:12px; height:16px; background: radial-gradient(circle at 50% 0%, #f0c080 0%, #b07030 60%, transparent 80%); box-shadow: 0 0 30px 10px rgba(200,150,80,0.3); border-radius:50%; animation: vs-lamp 4s ease-in-out infinite; }
.scn-venetian-ladies-singing .singer-figure { position:absolute; bottom:20%; left:35%; width:22px; height:38px; background: linear-gradient(180deg, #2a1a14 0%, #1a0c08 100%); border-radius:40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: vs-singer 8s ease-in-out infinite; }
.scn-venetian-ladies-singing .officer-shape { position:absolute; bottom:20%; right:25%; width:20px; height:36px; background: #1a1410; border-radius:30% 30% 20% 20%; transform: rotate(10deg); animation: vs-officer 10s ease-in-out infinite; }
.scn-venetian-ladies-singing .music-notes { position:absolute; top:30%; left:38%; width:4px; height:6px; background: #f0d0a0; border-radius:50% 50% 0 0; transform: rotate(20deg); box-shadow: 0 0 4px rgba(240,208,160,0.5); animation: vs-note1 6s ease-in-out infinite; }
.scn-venetian-ladies-singing .music-notes.particle2 { left:42%; top:25%; width:3px; height:5px; animation-delay: 2s; }
@keyframes vs-lamp { 0%,100% { opacity:0.7 } 50% { opacity:1 } }
@keyframes vs-singer { 0%,100% { transform: translateY(0) rotate(-2deg) } 50% { transform: translateY(-3px) rotate(1deg) } }
@keyframes vs-officer { 0%,100% { transform: rotate(10deg) translateX(0) } 50% { transform: rotate(12deg) translateX(4px) } }
@keyframes vs-note1 { 0% { transform: rotate(20deg) translateY(0) scale(1); opacity:1 } 50% { transform: rotate(30deg) translateY(-8px) scale(1.2); opacity:0.6 } 100% { transform: rotate(40deg) translateY(-16px) scale(0.8); opacity:0 } }

/* annette-locked-prisoner */
.scn-annette-locked-prisoner {
  background:
    linear-gradient(180deg, #0e0a10 0%, #1c1520 40%, #0e0a10 100%),
    radial-gradient(ellipse at 50% 0%, #2a1e30 0%, transparent 80%);
}
.scn-annette-locked-prisoner .cell-wall { position:absolute; inset:0 20% 0 20%; background: linear-gradient(180deg, #151018 0%, #0c0810 100%); border-radius:4px; }
.scn-annette-locked-prisoner .door-frame { position:absolute; inset:10% 20% 20% 20%; border:3px solid #2a1e30; border-radius:15px; background: transparent; }
.scn-annette-locked-prisoner .door-bars { position:absolute; inset:10% 20% 20% 20%; background: repeating-linear-gradient(0deg, #2a1e30 0px, #2a1e30 4px, transparent 4px, transparent 14px); }
.scn-annette-locked-prisoner .prisoner-hands { position:absolute; bottom:30%; left:45%; width:16px; height:20px; background: #d4b0a0; border-radius:40% 40% 20% 20%; transform: translateX(-50%); animation: al-hands 3s ease-in-out infinite; }
.scn-annette-locked-prisoner .shadow-verezzi { position:absolute; bottom:20%; right:20%; width:30px; height:60px; background: rgba(0,0,0,0.6); border-radius:30% 30% 20% 20%; filter: blur(4px); animation: al-shadow 5s ease-in-out infinite; }
.scn-annette-locked-prisoner .keyhole-light { position:absolute; top:45%; left:38%; width:4px; height:6px; background: radial-gradient(circle, #f0c080 0%, transparent 100%); box-shadow: 0 0 12px 4px rgba(200,150,80,0.4); animation: al-light 2s ease-in-out infinite; }
.scn-annette-locked-prisoner .ludovico-hand { position:absolute; bottom:35%; left:50%; width:8px; height:14px; background: #1a1410; border-radius:40% 40% 20% 20%; transform: rotate(20deg); animation: al-hand 4s ease-in-out infinite; }
@keyframes al-hands { 0%,100% { transform: translateX(-50%) translateY(0) } 50% { transform: translateX(-50%) translateY(-4px) scale(1.05) } }
@keyframes al-shadow { 0%,100% { transform: scale(1) translateX(0); opacity:0.6 } 50% { transform: scale(1.05) translateX(2px); opacity:0.8 } }
@keyframes al-light { 0%,100% { opacity:0.5 } 50% { opacity:1 } }
@keyframes al-hand { 0%,100% { transform: rotate(20deg) translateX(0) } 50% { transform: rotate(25deg) translateX(-2px) } }

.scn-udolpho-arrival { background: linear-gradient(180deg, #1f1f35 0%, #2a1e3a 40%, #3b2d4e 70%, #1a1a2e 100%), radial-gradient(ellipse at 50% 30%, #4a3a6e 0%, transparent 60%); }
.scn-udolpho-arrival .sky { position: absolute; inset: 0 0 45% 0; background: linear-gradient(180deg, #2e2a4a 0%, #4a3a5e 40%, #1f1f35 100%); animation: ua-sky 8s ease-in-out infinite alternate; }
.scn-udolpho-arrival .mountains { position: absolute; bottom: 40%; left: 0; right: 0; height: 20%; background: linear-gradient(180deg, #1e1e30 0%, #0e0e1a 100%); border-radius: 30% 40% 0 0 / 60% 50% 0 0; box-shadow: inset 0 4px 12px rgba(0,0,0,0.6); animation: ua-mountain 15s ease-in-out infinite alternate; }
.scn-udolpho-arrival .castle { position: absolute; bottom: 35%; left: 25%; width: 120px; height: 80px; background: linear-gradient(180deg, #3a2a3a 0%, #1e1a2a 100%); border-radius: 4% 4% 2% 2%; box-shadow: 0 8px 16px rgba(0,0,0,0.7); animation: ua-castle 6s ease-in-out infinite; }
.scn-udolpho-arrival .tower { position: absolute; bottom: 42%; left: 35%; width: 20px; height: 50px; background: linear-gradient(180deg, #3a2a3a 0%, #1e1a2a 100%); border-radius: 8% 8% 2% 2%; transform-origin: bottom center; animation: ua-tower 10s ease-in-out infinite alternate; }
.scn-udolpho-arrival .gate { position: absolute; bottom: 35%; left: 32%; width: 30px; height: 25px; background: #0e0e1a; border-radius: 30% 30% 10% 10% / 50% 50% 10% 10%; box-shadow: inset 0 0 8px #1a1a2e; animation: ua-gate 4s ease-in-out infinite; }
.scn-udolpho-arrival .window-glow { position: absolute; bottom: 38%; left: 28%; width: 8px; height: 10px; background: radial-gradient(circle, #f0a060 0%, #c07040 70%); border-radius: 10%; box-shadow: 0 0 20px 4px #f0a060, 0 0 40px 8px rgba(240,160,96,0.3); animation: ua-glow 3s ease-in-out infinite alternate; }
.scn-udolpho-arrival .figure { position: absolute; bottom: 34%; left: 48%; width: 12px; height: 28px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom center; animation: ua-fig 5s ease-in-out infinite; }
.scn-udolpho-arrival .shadow-figure { position: absolute; bottom: 34%; left: 32%; width: 14px; height: 26px; background: rgba(10,10,20,0.7); border-radius: 50%; filter: blur(2px); animation: ua-shadow 7s ease-in-out infinite reverse; }

@keyframes ua-sky { 0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.75; } }
@keyframes ua-mountain { 0% { transform: translateY(0) scale(1); } 50% { transform: translateY(-2px) scale(1.01); } 100% { transform: translateY(0) scale(1); } }
@keyframes ua-castle { 0% { transform: translateY(0); } 50% { transform: translateY(-1px); } 100% { transform: translateY(0); } }
@keyframes ua-tower { 0% { transform: rotate(-0.5deg); } 50% { transform: rotate(0.5deg); } 100% { transform: rotate(-0.5deg); } }
@keyframes ua-gate { 0% { opacity: 0.6; } 50% { opacity: 1; } 100% { opacity: 0.7; } }
@keyframes ua-glow { 0% { box-shadow: 0 0 12px 2px #f0a060, 0 0 24px 4px rgba(240,160,96,0.2); } 50% { box-shadow: 0 0 24px 6px #ffb070, 0 0 48px 10px rgba(255,176,112,0.4); } 100% { box-shadow: 0 0 16px 3px #f0a060, 0 0 32px 6px rgba(240,160,96,0.25); } }
@keyframes ua-fig { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(4px) rotate(1deg); } 50% { transform: translateX(8px) rotate(-1deg); } 75% { transform: translateX(12px) rotate(2deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes ua-shadow { 0% { transform: translateX(0) scale(1); } 50% { transform: translateX(6px) scale(1.1); } 100% { transform: translateX(0) scale(1); } }

.scn-item-black-veil { background: linear-gradient(180deg, #1a1a2e 0%, #2a1e3a 40%, #1e1e30 100%), radial-gradient(ellipse at 50% 20%, #3a2a4e 0%, transparent 70%); }
.scn-item-black-veil .wall { position: absolute; inset: 0 0 20% 0; background: linear-gradient(90deg, #1e1a2a 0%, #2a223a 50%, #1e1a2a 100%); animation: bv-wall 10s ease-in-out infinite alternate; }
.scn-item-black-veil .floor { position: absolute; bottom: 0; left: 0; right: 0; height: 20%; background: linear-gradient(180deg, #1e1a2a 0%, #0e0e1a 100%); box-shadow: inset 0 4px 12px rgba(0,0,0,0.5); }
.scn-item-black-veil .veil { position: absolute; top: 20%; left: 30%; width: 60px; height: 80px; background: linear-gradient(180deg, #2e2a4a 0%, #1e1e30 100%); border-radius: 0 0 20% 20% / 0 0 30% 30%; clip-path: polygon(0 0, 100% 0, 90% 100%, 10% 100%); box-shadow: 0 4px 8px rgba(0,0,0,0.6); animation: bv-veil 8s ease-in-out infinite alternate; }
.scn-item-black-veil .veil-shadow { position: absolute; top: 25%; left: 32%; width: 50px; height: 60px; background: rgba(0,0,0,0.3); filter: blur(8px); animation: bv-shad 8s ease-in-out infinite alternate; }
.scn-item-black-veil .candle { position: absolute; bottom: 18%; left: 15%; width: 4px; height: 16px; background: linear-gradient(180deg, #f0e0c0 0%, #a08060 100%); border-radius: 20% 20% 10% 10%; animation: bv-candle 4s ease-in-out infinite; }
.scn-item-black-veil .candle-glow { position: absolute; bottom: 20%; left: 12%; width: 20px; height: 20px; background: radial-gradient(circle, #ffd080 0%, transparent 70%); border-radius: 50%; animation: bv-glow 3s ease-in-out infinite alternate; }
.scn-item-black-veil .ghost-sheen { position: absolute; top: 15%; right: 20%; width: 30px; height: 40px; background: radial-gradient(ellipse at 50% 30%, rgba(200,200,240,0.15) 0%, transparent 80%); border-radius: 50%; filter: blur(10px); animation: bv-ghost 12s ease-in-out infinite; }

@keyframes bv-wall { 0% { opacity: 0.8; } 50% { opacity: 0.95; } 100% { opacity: 0.8; } }
@keyframes bv-veil { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-3px) rotate(0.5deg); } 100% { transform: translateY(0) rotate(1deg); } }
@keyframes bv-shad { 0% { transform: translateY(0) scale(1); opacity: 0.3; } 50% { transform: translateY(-4px) scale(1.1); opacity: 0.5; } 100% { transform: translateY(0) scale(1); opacity: 0.3; } }
@keyframes bv-candle { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.05); } 100% { transform: scaleY(1); } }
@keyframes bv-glow { 0% { opacity: 0.5; transform: scale(1); } 50% { opacity: 0.9; transform: scale(1.2); } 100% { opacity: 0.6; transform: scale(1); } }
@keyframes bv-ghost { 0% { opacity: 0; } 50% { opacity: 0.4; } 100% { opacity: 0; } }

.scn-annette-ludovico-chatter { background: linear-gradient(180deg, #3a2a3a 0%, #2a1e2e 40%, #1e1a2a 100%), radial-gradient(ellipse at 50% 40%, #4a3a4a 0%, transparent 70%); }
.scn-annette-ludovico-chatter .room-bg { position: absolute; inset: 0 0 15% 0; background: linear-gradient(180deg, #3e2e3e 0%, #2a1e2e 100%); animation: ac-room 12s ease-in-out infinite alternate; }
.scn-annette-ludovico-chatter .table { position: absolute; bottom: 20%; left: 10%; width: 120px; height: 6px; background: linear-gradient(90deg, #4a3a3a, #5a4a4a, #4a3a3a); border-radius: 4px; box-shadow: 0 2px 4px rgba(0,0,0,0.3); }
.scn-annette-ludovico-chatter .candle { position: absolute; bottom: 24%; left: 20%; width: 6px; height: 22px; background: linear-gradient(180deg, #e0c8a0 0%, #a08060 100%); border-radius: 20% 20% 10% 10%; animation: ac-candle 5s ease-in-out infinite; }
.scn-annette-ludovico-chatter .candle-light { position: absolute; bottom: 26%; left: 16%; width: 40px; height: 40px; background: radial-gradient(circle, #ffd080 0%, #e0a060 40%, transparent 70%); border-radius: 50%; filter: blur(6px); animation: ac-glow 3s ease-in-out infinite alternate; }
.scn-annette-ludovico-chatter .figure-left { position: absolute; bottom: 20%; left: 12%; width: 16px; height: 36px; background: linear-gradient(180deg, #3e2e3e 0%, #2a1e2e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ac-fig-l 6s ease-in-out infinite; }
.scn-annette-ludovico-chatter .figure-right { position: absolute; bottom: 20%; left: 30%; width: 18px; height: 38px; background: linear-gradient(180deg, #4a3a4a 0%, #3a2a3a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ac-fig-r 6s ease-in-out infinite reverse; }
.scn-annette-ludovico-chatter .hearth { position: absolute; bottom: 15%; right: 20%; width: 30px; height: 20px; background: linear-gradient(180deg, #c06040 0%, #8a4030 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 16px 4px rgba(192,96,64,0.3); animation: ac-hearth 8s ease-in-out infinite alternate; }

@keyframes ac-room { 0% { opacity: 0.85; } 50% { opacity: 0.95; } 100% { opacity: 0.85; } }
@keyframes ac-candle { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-1px) scaleY(1.03); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes ac-glow { 0% { opacity: 0.4; transform: scale(1); } 50% { opacity: 0.8; transform: scale(1.1); } 100% { opacity: 0.5; transform: scale(1); } }
@keyframes ac-fig-l { 0% { transform: translateX(0) rotate(-2deg); } 25% { transform: translateX(2px) rotate(1deg); } 50% { transform: translateX(4px) rotate(-1deg); } 75% { transform: translateX(6px) rotate(2deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes ac-fig-r { 0% { transform: translateX(0) rotate(1deg); } 25% { transform: translateX(-2px) rotate(-1deg); } 50% { transform: translateX(-4px) rotate(2deg); } 75% { transform: translateX(-6px) rotate(-2deg); } 100% { transform: translateX(0) rotate(0); } }
@keyframes ac-hearth { 0% { opacity: 0.6; box-shadow: 0 0 8px 2px rgba(192,96,64,0.2); } 50% { opacity: 0.9; box-shadow: 0 0 20px 6px rgba(192,96,64,0.4); } 100% { opacity: 0.7; box-shadow: 0 0 12px 4px rgba(192,96,64,0.3); } }

.scn-veil-horror-discovery { background: linear-gradient(180deg, #1a1a2e 0%, #2e223a 40%, #1e1e30 100%), radial-gradient(ellipse at 50% 20%, #3a2a4e 0%, transparent 70%); }
.scn-veil-horror-discovery .chamber { position: absolute; inset: 0; background: linear-gradient(180deg, #2a223a 0%, #1a1a2e 100%); animation: vd-chamber 10s ease-in-out infinite alternate; }
.scn-veil-horror-discovery .frame { position: absolute; top: 15%; left: 28%; width: 80px; height: 100px; background: linear-gradient(180deg, #3a2a3a 0%, #1e1e30 100%); border-radius: 6% 6% 4% 4%; box-shadow: 0 6px 12px rgba(0,0,0,0.6); animation: vd-frame 7s ease-in-out infinite; }
.scn-veil-horror-discovery .veil { position: absolute; top: 18%; left: 30%; width: 60px; height: 80px; background: linear-gradient(180deg, #2e2a4a 0%, #1a1a3a 100%); clip-path: polygon(10% 0, 90% 0, 80% 100%, 20% 100%); animation: vd-veil 6s ease-in-out infinite alternate; }
.scn-veil-horror-discovery .hand { position: absolute; top: 22%; left: 26%; width: 10px; height: 14px; background: #3a2a3a; border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%; transform-origin: bottom left; animation: vd-hand 4s ease-in-out infinite; }
.scn-veil-horror-discovery .horror-shape { position: absolute; top: 20%; left: 32%; width: 40px; height: 50px; background: radial-gradient(ellipse at 50% 30%, #1e1e30 0%, #0e0e1a 100%); border-radius: 30% 30% 40% 40% / 50% 50% 40% 40%; filter: blur(2px); animation: vd-horror 8s ease-in-out infinite alternate; }
.scn-veil-horror-discovery .faint-figure { position: absolute; bottom: 12%; left: 15%; width: 12px; height: 28px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%); border-radius: 50%; transform-origin: bottom center; animation: vd-faint 5s ease-in-out infinite; }
.scn-veil-horror-discovery .shadow-stretch { position: absolute; top: 20%; right: 20%; width: 20px; height: 60px; background: rgba(10,10,20,0.6); filter: blur(6px); animation: vd-shadow 9s ease-in-out infinite reverse; }

@keyframes vd-chamber { 0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.75; } }
@keyframes vd-frame { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(-2px) rotate(0.5deg); } 100% { transform: translateY(0) rotate(0); } }
@keyframes vd-veil { 0% { transform: translateY(0) scaleY(1); opacity: 0.7; } 50% { transform: translateY(-3px) scaleY(1.05); opacity: 0.9; } 100% { transform: translateY(0) scaleY(1); opacity: 0.7; } }
@keyframes vd-hand { 0% { transform: rotate(0) translateY(0); } 25% { transform: rotate(20deg) translateY(-2px); } 50% { transform: rotate(0) translateY(-1px); } 75% { transform: rotate(-10deg) translateY(-2px); } 100% { transform: rotate(0) translateY(0); } }
@keyframes vd-horror { 0% { transform: scale(1) rotate(0); opacity: 0.2; } 50% { transform: scale(1.15) rotate(3deg); opacity: 0.5; } 100% { transform: scale(1) rotate(0); opacity: 0.25; } }
@keyframes vd-faint { 0% { transform: translateX(0) rotate(-2deg); opacity: 0.6; } 25% { transform: translateX(5px) rotate(1deg); opacity: 0.4; } 50% { transform: translateX(10px) rotate(-2deg); opacity: 0.2; } 75% { transform: translateX(5px) rotate(1deg); opacity: 0.4; } 100% { transform: translateX(0) rotate(0); opacity: 0.6; } }
@keyframes vd-shadow { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(-10px) scaleY(1.2); } 100% { transform: translateY(0) scaleY(1); } }

/* ramparts-strangers-story */
.scn-ramparts-strangers-story {
  background: linear-gradient(180deg, #1c1a3e 0%, #2a2444 50%, #4a3a5e 100%),
              radial-gradient(ellipse at 50% 120%, #3a2a4e 0%, transparent 60%);
}
.scn-ramparts-strangers-story .sky-ram {
  position: absolute; inset: 0 0 50% 0;
  background: linear-gradient(180deg, #2a2a4e 0%, #3a3a5e 100%);
  animation: ram-sky 14s ease-in-out infinite alternate;
}
.scn-ramparts-strangers-story .moon-ram {
  position: absolute; top: 8%; left: 70%;
  width: 40px; height: 40px;
  background: radial-gradient(circle, #d4c8a0 0%, #b8a880 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 60px 20px rgba(212,200,160,0.3);
  animation: ram-moon 18s ease-in-out infinite alternate;
}
.scn-ramparts-strangers-story .rampart-ram {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.6);
  animation: ram-rampart 10s ease-in-out infinite;
}
.scn-ramparts-strangers-story .tower-ram {
  position: absolute; bottom: 35%; left: 50%;
  width: 40px; height: 80px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 5px 15px rgba(0,0,0,0.5);
  animation: ram-tower 12s ease-in-out infinite;
}
.scn-ramparts-strangers-story .figure-ram {
  position: absolute; bottom: 32%; width: 12px; height: 30px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ram-figure 4s ease-in-out infinite;
}
.scn-ramparts-strangers-story .f1 { left: 35%; animation-delay: 0s; }
.scn-ramparts-strangers-story .f2 { left: 48%; animation-delay: 0.3s; }
.scn-ramparts-strangers-story .f3 { left: 60%; animation-delay: 0.6s; }
.scn-ramparts-strangers-story .cloud-ram {
  position: absolute; bottom: 50%;
  width: 60px; height: 14px;
  background: rgba(100,100,120,0.15);
  border-radius: 50%;
  filter: blur(8px);
  animation: ram-cloud 40s linear infinite;
}
.scn-ramparts-strangers-story .c1 { left: 10%; animation-duration: 40s; }
.scn-ramparts-strangers-story .c2 { right: 10%; animation-duration: 50s; animation-direction: reverse; }
@keyframes ram-sky { 0% { opacity:0.7 } 50% { opacity:0.9 } 100% { opacity:0.6 } }
@keyframes ram-moon { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-5px) scale(1.05) } 100% { transform: translateY(0) scale(1) } }
@keyframes ram-rampart { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes ram-tower { 0%,100% { transform: translateX(-50%) } 50% { transform: translateX(-50%) scale(1.02) } }
@keyframes ram-figure { 0% { transform: translateY(0) rotate(-2deg) } 25% { transform: translateY(-3px) rotate(2deg) } 50% { transform: translateY(0) rotate(-2deg) } 75% { transform: translateY(-3px) rotate(2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes ram-cloud { 0% { transform: translateX(-30px) } 100% { transform: translateX(130vw) } }

/* annette-warnings-schemes */
.scn-annette-warnings-schemes {
  background: linear-gradient(180deg, #2a1a14 0%, #3a241c 40%, #4a3430 100%),
              radial-gradient(ellipse at 50% 120%, #4a3430 0%, transparent 70%);
}
.scn-annette-warnings-schemes .wall-ann {
  position: absolute; top: 0; bottom: 20%; width: 15%;
  background: linear-gradient(180deg, #3a2a24 0%, #1a1010 100%);
  box-shadow: inset 8px 0 15px rgba(0,0,0,0.5);
  animation: ann-wall 20s ease-in-out infinite alternate;
}
.scn-annette-warnings-schemes .left { left: 0; }
.scn-annette-warnings-schemes .right { right: 0; }
.scn-annette-warnings-schemes .floor-ann {
  position: absolute; bottom: 0; left: 15%; right: 15%; height: 20%;
  background: linear-gradient(180deg, #4a3a30 0%, #2a1a10 100%);
  border-radius: 0 0 10% 10%;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.6);
}
.scn-annette-warnings-schemes .door-ann {
  position: absolute; bottom: 20%; left: 50%; width: 30%; height: 50%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: inset 0 0 10px rgba(0,0,0,0.4), 0 5px 15px rgba(0,0,0,0.3);
  animation: ann-door 12s ease-in-out infinite;
}
.scn-annette-warnings-schemes .candle-ann {
  position: absolute; bottom: 45%; left: 40%; width: 4px; height: 10px;
  background: #d4a060;
  box-shadow: 0 0 30px 10px rgba(212,160,96,0.5);
  border-radius: 20%;
  animation: ann-candle 3s ease-in-out infinite alternate;
}
.scn-annette-warnings-schemes .figure-ann {
  position: absolute; bottom: 22%; width: 14px; height: 32px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ann-figure 5s ease-in-out infinite;
}
.scn-annette-warnings-schemes .annette { left: 30%; animation-delay: 0s; }
.scn-annette-warnings-schemes .emily { left: 60%; animation-delay: 0.5s; }
.scn-annette-warnings-schemes .shadow-ann {
  position: absolute; bottom: 20%; left: 30%; width: 40%; height: 5%;
  background: rgba(0,0,0,0.3);
  border-radius: 50%;
  filter: blur(6px);
  animation: ann-shadow 4s ease-in-out infinite;
}
@keyframes ann-wall { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes ann-door { 0%,100% { transform: translateX(-50%) scaleY(1) } 50% { transform: translateX(-50%) scaleY(1.02) } }
@keyframes ann-candle { 0% { box-shadow: 0 0 20px 5px rgba(212,160,96,0.4); opacity:0.8 } 50% { box-shadow: 0 0 40px 15px rgba(212,160,96,0.7); opacity:1 } 100% { box-shadow: 0 0 25px 8px rgba(212,160,96,0.5); opacity:0.9 } }
@keyframes ann-figure { 0% { transform: translateY(0) rotate(-1deg) } 25% { transform: translateY(-2px) rotate(1deg) } 50% { transform: translateY(0) rotate(-1deg) } 75% { transform: translateY(-2px) rotate(1deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes ann-shadow { 0%,100% { transform: scaleX(1) } 50% { transform: scaleX(1.1) } }

/* horsemen-depart-poison */
.scn-horsemen-depart-poison {
  background: linear-gradient(180deg, #6a6a7a 0%, #8a8a9a 30%, #b0b0b8 60%, #c0c0c8 100%),
              radial-gradient(ellipse at 50% 80%, #d0d0d8 0%, transparent 50%);
}
.scn-horsemen-depart-poison .sky-hor {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #8a8a9a 0%, #b0b0b8 100%);
  animation: hor-sky 20s ease-in-out infinite alternate;
}
.scn-horsemen-depart-poison .gate-hor {
  position: absolute; bottom: 30%; left: 40%; right: 40%; height: 40%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 30% 30% 0 0;
  box-shadow: 0 10px 20px rgba(0,0,0,0.4);
  animation: hor-gate 6s ease-in-out infinite;
}
.scn-horsemen-depart-poison .horseman-hor {
  position: absolute; bottom: 32%; width: 16px; height: 24px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 20% 20% 40% 40% / 40% 40% 20% 20%;
  transform-origin: bottom center;
  animation: hor-horseman 8s ease-in-out infinite;
}
.scn-horsemen-depart-poison .h1 { left: 35%; animation-delay: 0s; }
.scn-horsemen-depart-poison .h2 { left: 50%; animation-delay: 0.2s; }
.scn-horsemen-depart-poison .h3 { left: 65%; animation-delay: 0.4s; }
.scn-horsemen-depart-poison .glass-hor {
  position: absolute; bottom: 10%; left: 30%; width: 20px; height: 15px;
  background: #a0b0c0;
  clip-path: polygon(0% 0%, 100% 0%, 80% 100%, 20% 100%);
  opacity: 0.7;
  animation: hor-glass 1.5s ease-in-out infinite;
}
.scn-horsemen-depart-poison .blood-hor {
  position: absolute; bottom: 8%; left: 28%; width: 24px; height: 6px;
  background: radial-gradient(ellipse, #a0461a 0%, transparent 70%);
  filter: blur(3px);
  animation: hor-blood 3s ease-in-out infinite alternate;
}
.scn-horsemen-depart-poison .dust-hor {
  position: absolute; bottom: 30%; left: 20%; right: 20%; height: 5%;
  background: rgba(180,160,130,0.2);
  filter: blur(4px);
  border-radius: 50%;
  animation: hor-dust 15s linear infinite;
}
@keyframes hor-sky { 0% { opacity:0.6 } 50% { opacity:0.9 } 100% { opacity:0.7 } }
@keyframes hor-gate { 0%,100% { transform: scaleX(1) } 50% { transform: scaleX(0.95) } }
@keyframes hor-horseman { 0% { transform: translateY(0) rotate(-2deg) } 25% { transform: translateY(-4px) rotate(2deg) } 50% { transform: translateY(0) rotate(-2deg) } 75% { transform: translateY(-4px) rotate(2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes hor-glass { 0% { transform: rotate(0deg) translateY(0); opacity:1 } 50% { transform: rotate(45deg) translateY(-5px); opacity:0.8 } 100% { transform: rotate(0deg) translateY(0); opacity:1 } }
@keyframes hor-blood { 0% { transform: scaleX(1); opacity:0.3 } 100% { transform: scaleX(1.5); opacity:0.8 } }
@keyframes hor-dust { 0% { transform: translateX(0) scaleX(1) } 100% { transform: translateX(-30vw) scaleX(2) } }

/* flight-faint-turret */
.scn-flight-faint-turret {
  background: linear-gradient(180deg, #1a1010 0%, #2a1a1a 40%, #3a2a2a 100%),
              radial-gradient(ellipse at 50% 50%, #2a1a1a 0%, transparent 70%);
}
.scn-flight-faint-turret .wall-fli {
  position: absolute; top: 0; bottom: 0; width: 25%;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1010 100%);
  box-shadow: inset 0 0 20px rgba(0,0,0,0.6);
  animation: fli-wall 15s ease-in-out infinite alternate;
}
.scn-flight-faint-turret .left { left: 0; }
.scn-flight-faint-turret .right { right: 0; }
.scn-flight-faint-turret .stair-fli {
  position: absolute; bottom: 0; left: 25%; right: 25%; height: 30%;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%);
  clip-path: polygon(10% 0%, 90% 0%, 100% 100%, 0% 100%);
  animation: fli-stair 20s ease-in-out infinite;
}
.scn-flight-faint-turret .door-fli {
  position: absolute; bottom: 25%; left: 50%; width: 20%; height: 40%;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 5px 10px rgba(0,0,0,0.5);
  animation: fli-door 10s ease-in-out infinite;
}
.scn-flight-faint-turret .torch-fli {
  position: absolute; bottom: 40%; left: 30%; width: 6px; height: 12px;
  background: #d4a060;
  border-radius: 30%;
  box-shadow: 0 0 60px 20px rgba(212,160,96,0.4);
  animation: fli-torch 2s ease-in-out infinite alternate;
}
.scn-flight-faint-turret .figure-fli {
  position: absolute; bottom: 18%; left: 45%; width: 14px; height: 30px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fli-figure 6s ease-in-out infinite;
}
.scn-flight-faint-turret .shadow-fli {
  position: absolute; bottom: 15%; left: 38%; width: 30%; height: 3%;
  background: rgba(0,0,0,0.4);
  filter: blur(4px);
  border-radius: 50%;
  animation: fli-shadow 6s ease-in-out infinite;
}
.scn-flight-faint-turret .wound-fli {
  position: absolute; bottom: 12%; left: 60%; width: 8px; height: 4px;
  background: #5e1a1d;
  border-radius: 50%;
  filter: blur(2px);
  animation: fli-wound 4s ease-in-out infinite;
}
@keyframes fli-wall { 0% { opacity:0.7 } 50% { opacity:1 } 100% { opacity:0.6 } }
@keyframes fli-stair { 0% { transform: skewX(0deg) } 25% { transform: skewX(2deg) } 50% { transform: skewX(0deg) } 75% { transform: skewX(-2deg) } 100% { transform: skewX(0deg) } }
@keyframes fli-door { 0%,100% { transform: translateX(-50%) scaleY(1) } 50% { transform: translateX(-50%) scaleY(1.03) } }
@keyframes fli-torch { 0% { box-shadow: 0 0 40px 10px rgba(212,160,96,0.3); opacity:0.8 } 50% { box-shadow: 0 0 70px 25px rgba(212,160,96,0.6); opacity:1 } 100% { box-shadow: 0 0 50px 15px rgba(212,160,96,0.4); opacity:0.85 } }
@keyframes fli-figure { 0% { transform: translateY(0) rotate(-2deg) } 25% { transform: translateY(-5px) rotate(2deg) } 50% { transform: translateY(0) rotate(-2deg) } 75% { transform: translateY(-5px) rotate(2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes fli-shadow { 0%,100% { transform: scaleX(1) } 50% { transform: scaleX(1.2) } }
@keyframes fli-wound { 0% { opacity:0 } 50% { opacity:0.6 } 100% { opacity:0 } }

.scn-fortune-lost-letter {
  background: linear-gradient(135deg, #1e1a2a 0%, #2c2438 50%, #1a1624 100%),
              radial-gradient(ellipse at 80% 90%, #4a3520 0%, transparent 60%);
}
.scn-fortune-lost-letter .wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #2c2438 0%, #1e1a2a 100%);
  animation: fll-wall 20s ease-in-out infinite alternate;
}
.scn-fortune-lost-letter .table {
  position: absolute; bottom: 12%; left: 20%; width: 55%; height: 10%;
  background: linear-gradient(0deg, #3d2e1e 0%, #5a4530 100%);
  border-radius: 6% 6% 0 0; box-shadow: 0 6px 12px rgba(0,0,0,0.6);
}
.scn-fortune-lost-letter .letter {
  position: absolute; bottom: 22%; left: 38%; width: 28%; height: 18%;
  background: linear-gradient(135deg, #e8dcc8 0%, #c4b49e 100%);
  border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  transform: rotate(-8deg); animation: fll-letter 6s ease-in-out infinite alternate;
}
.scn-fortune-lost-letter .candle {
  position: absolute; bottom: 20%; left: 28%; width: 4%; height: 16%;
  background: linear-gradient(0deg, #a08060 0%, #c8a880 100%);
  border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,0.5);
}
.scn-fortune-lost-letter .flame {
  position: absolute; bottom: 36%; left: 28.5%; width: 3%; height: 8%;
  background: radial-gradient(circle, #ffdd80 0%, #ffa040 60%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 20px 8px #ffa040, 0 0 40px 12px rgba(255,160,64,0.4);
  animation: fll-flame 0.8s ease-in-out infinite alternate;
}
.scn-fortune-lost-letter .figure-emily {
  position: absolute; bottom: 10%; left: 60%; width: 10%; height: 32%;
  background: linear-gradient(180deg, #2a2330 0%, #1a1520 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: fll-figE 4s ease-in-out infinite;
}
.scn-fortune-lost-letter .figure-staubert {
  position: absolute; bottom: 10%; left: 25%; width: 12%; height: 35%;
  background: linear-gradient(180deg, #3c3040 0%, #241c28 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: fll-figS 5s ease-in-out infinite;
}
.scn-fortune-lost-letter .shadow-01 {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0) 50%, rgba(0,0,0,0.4) 100%);
  pointer-events: none; animation: fll-shadow 12s ease-in-out infinite alternate;
}
@keyframes fll-wall { 0% { opacity:0.85 } 50% { opacity:0.95 } 100% { opacity:0.8 } }
@keyframes fll-letter { 0% { transform: rotate(-8deg) translateY(0) } 50% { transform: rotate(-6deg) translateY(-2px) } 100% { transform: rotate(-8deg) translateY(0) } }
@keyframes fll-flame { 0% { transform: scaleY(1) scaleX(1); opacity:0.9 } 50% { transform: scaleY(1.2) scaleX(0.8); opacity:1 } 100% { transform: scaleY(0.9) scaleX(1.1); opacity:0.85 } }
@keyframes fll-figE { 0% { transform: translateX(0) rotate(-1deg) } 25% { transform: translateX(4px) rotate(0) } 50% { transform: translateX(0) rotate(1deg) } 75% { transform: translateX(-2px) rotate(0) } 100% { transform: translateX(0) rotate(-1deg) } }
@keyframes fll-figS { 0% { transform: translateX(0) } 50% { transform: translateX(-3px) } 100% { transform: translateX(0) } }
@keyframes fll-shadow { 0% { opacity:0.3 } 50% { opacity:0.5 } 100% { opacity:0.25 } }

.scn-st-aubert-emotion-death {
  background: linear-gradient(0deg, #1a1420 0%, #2c2438 50%, #1e1a28 100%),
              radial-gradient(ellipse at 50% 100%, #2c2438 0%, transparent 70%);
}
.scn-st-aubert-emotion-death .room-wall {
  position: absolute; inset:0; background: linear-gradient(180deg, #2c2438 0%, #1a1420 100%);
  animation: sae-wall 15s ease-in-out infinite alternate;
}
.scn-st-aubert-emotion-death .bed {
  position: absolute; bottom:5%; left:15%; width:70%; height:50%;
  background: linear-gradient(0deg, #3a3048 0%, #4a3e58 100%);
  border-radius: 10% 10% 0 0; box-shadow: 0 8px 16px rgba(0,0,0,0.7);
}
.scn-st-aubert-emotion-death .figure-death {
  position: absolute; bottom:20%; left:38%; width:12%; height:30%;
  background: linear-gradient(180deg, #2a1e30 0%, #1a1220 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: sae-figD 6s ease-in-out infinite;
}
.scn-st-aubert-emotion-death .figure-emily {
  position: absolute; bottom:18%; left:52%; width:10%; height:28%;
  background: linear-gradient(180deg, #2a2330 0%, #1a1520 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: sae-figE 7s ease-in-out infinite;
}
.scn-st-aubert-emotion-death .candle {
  position: absolute; bottom:30%; left:20%; width:3%; height:12%;
  background: linear-gradient(0deg, #a08060 0%, #c8a880 100%);
  border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,0.5);
}
.scn-st-aubert-emotion-death .flame {
  position: absolute; bottom:42%; left:20.5%; width:2%; height:6%;
  background: radial-gradient(circle, #ffdd80 0%, #ffa040 60%, transparent 100%);
  border-radius:50%; box-shadow: 0 0 16px 6px #ffa040, 0 0 32px 10px rgba(255,160,64,0.3);
  animation: sae-flame 0.9s ease-in-out infinite alternate;
}
.scn-st-aubert-emotion-death .window {
  position: absolute; top:10%; right:8%; width:20%; height:30%;
  background: linear-gradient(180deg, #3a4060 0%, #2a3050 100%);
  border: 3px solid #4a3e58; border-radius: 4px; box-shadow: inset 0 0 20px rgba(0,0,0,0.6);
  animation: sae-window 12s ease-in-out infinite alternate;
}
@keyframes sae-wall { 0% { opacity:0.8 } 50% { opacity:0.95 } 100% { opacity:0.75 } }
@keyframes sae-figD { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-2px) rotate(2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes sae-figE { 0% { transform: translateX(0) } 30% { transform: translateX(3px) } 70% { transform: translateX(-2px) } 100% { transform: translateX(0) } }
@keyframes sae-flame { 0% { transform: scaleY(1) scaleX(1) } 50% { transform: scaleY(1.3) scaleX(0.7) } 100% { transform: scaleY(0.85) scaleX(1.15) } }
@keyframes sae-window { 0% { opacity:0.6 } 50% { opacity:0.8 } 100% { opacity:0.55 } }

.scn-item-miniature-preserved {
  background: linear-gradient(180deg, #1e1820 0%, #2c2430 50%, #1a1420 100%),
              radial-gradient(ellipse at 50% 15%, #3a2030 0%, transparent 70%);
}
.scn-item-miniature-preserved .wall {
  position: absolute; inset:0; background: linear-gradient(180deg, #2c2430 0%, #1e1820 100%);
  animation: imp-wall 18s ease-in-out infinite alternate;
}
.scn-item-miniature-preserved .hearth {
  position: absolute; bottom:0; left:10%; width:80%; height:35%;
  background: linear-gradient(0deg, #1a1020 0%, #2a2030 100%);
  border-radius: 30% 30% 0 0 / 60% 60% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.8);
}
.scn-item-miniature-preserved .fire {
  position: absolute; bottom:10%; left:35%; width:30%; height:25%;
  background: radial-gradient(ellipse at 50% 100%, #ff8040 0%, #ff6020 30%, #a03010 70%, transparent 100%);
  border-radius: 50% 50% 0 0; box-shadow: 0 0 40px 20px #ff6020, 0 0 80px 30px rgba(255,96,32,0.4);
  animation: imp-fire 2s ease-in-out infinite alternate;
}
.scn-item-miniature-preserved .paper-burning {
  position: absolute; bottom:15%; left:40%; width:18%; height:8%;
  background: linear-gradient(0deg, #4a2a1a 0%, #7a4a2a 100%);
  border-radius: 2px; animation: imp-paper 4s ease-in-out infinite alternate;
}
.scn-item-miniature-preserved .miniature {
  position: absolute; bottom:25%; right:20%; width:8%; height:12%;
  background: radial-gradient(circle, #c8a880 0%, #a08060 100%);
  border-radius: 30% 30% 30% 30% / 40% 40% 40% 40%;
  border: 2px solid #b09070; box-shadow: 0 0 12px 4px rgba(200,168,128,0.3);
  animation: imp-mini 8s ease-in-out infinite;
}
.scn-item-miniature-preserved .hand {
  position: absolute; bottom:22%; right:24%; width:12%; height:14%;
  background: linear-gradient(180deg, #2a2030 0%, #1a1020 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: imp-hand 6s ease-in-out infinite;
}
.scn-item-miniature-preserved .smoke {
  position: absolute; top:0; left:45%; width:10%; height:30%;
  background: radial-gradient(ellipse, rgba(200,180,160,0.3) 0%, transparent 100%);
  filter: blur(8px); animation: imp-smoke 12s linear infinite;
}
@keyframes imp-wall { 0% { opacity:0.85 } 50% { opacity:0.95 } 100% { opacity:0.8 } }
@keyframes imp-fire { 0% { transform: scaleY(1) scaleX(1) } 50% { transform: scaleY(1.15) scaleX(0.9) opacity:0.9 } 100% { transform: scaleY(0.95) scaleX(1.05) opacity:1 } }
@keyframes imp-paper { 0% { transform: translateY(0) rotate(0); opacity:1 } 50% { transform: translateY(-2px) rotate(3deg); opacity:0.9 } 100% { transform: translateY(0) rotate(0); opacity:0.95 } }
@keyframes imp-mini { 0% { transform: rotate(0) } 50% { transform: rotate(2deg) } 100% { transform: rotate(-1deg) } }
@keyframes imp-hand { 0% { transform: translateY(0) } 30% { transform: translateY(-4px) } 70% { transform: translateY(2px) } 100% { transform: translateY(0) } }
@keyframes imp-smoke { 0% { transform: translateY(0) translateX(0) scale(1); opacity:0.4 } 50% { transform: translateY(-30px) translateX(5px) scale(1.2); opacity:0.2 } 100% { transform: translateY(-60px) translateX(-5px) scale(1.5); opacity:0 } }

.scn-garden-figure-fleeing {
  background: linear-gradient(0deg, #1a2030 0%, #2c3850 50%, #1a2030 100%),
              radial-gradient(ellipse at 50% 15%, #405080 0%, transparent 70%);
}
.scn-garden-figure-fleeing .sky {
  position: absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #1a2030 0%, #2c3850 80%);
  animation: gff-sky 20s ease-in-out infinite alternate;
}
.scn-garden-figure-fleeing .moon {
  position: absolute; top:8%; right:20%; width:12%; height:12%;
  background: radial-gradient(circle, #e0e8f0 0%, #c0c8d8 100%);
  border-radius:50%; box-shadow: 0 0 30px 10px #c0c8d8, 0 0 60px 20px rgba(192,200,216,0.3);
  animation: gff-moon 15s ease-in-out infinite alternate;
}
.scn-garden-figure-fleeing .wall {
  position: absolute; bottom:0; left:0; right:0; height:35%;
  background: linear-gradient(0deg, #2a3038 0%, #3a4050 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.5);
}
.scn-garden-figure-fleeing .bush {
  position: absolute; bottom:15%; left:30%; width:25%; height:20%;
  background: radial-gradient(ellipse at 50% 100%, #2a3a2a 0%, #1a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 80% 80% 40% 40%;
  filter: blur(4px); animation: gff-bush 10s ease-in-out infinite alternate;
}
.scn-garden-figure-fleeing .path {
  position: absolute; bottom:0; left:40%; width:20%; height:20%;
  background: linear-gradient(0deg, #2a3038 0%, #3a4050 100%);
  border-radius: 30% 30% 0 0 / 60% 60% 0 0;
}
.scn-garden-figure-fleeing .figure-garden {
  position: absolute; bottom:12%; left:50%; width:8%; height:22%;
  background: linear-gradient(180deg, #1a1e28 0%, #0a0e18 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center; animation: gff-fig 5s ease-in-out infinite;
}
.scn-garden-figure-fleeing .window-emily {
  position: absolute; top:18%; left:10%; width:15%; height:20%;
  background: linear-gradient(180deg, #2a3848 0%, #1a2838 100%);
  border: 2px solid #4a5a6a; border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.6);
  animation: gff-window 8s ease-in-out infinite alternate;
}
.scn-garden-figure-fleeing .shadow-tree {
  position: absolute; bottom:5%; right:5%; width:20%; height:60%;
  background: linear-gradient(0deg, #101820 0%, #1a2030 100%);
  clip-path: polygon(40% 0%, 60% 0%, 80% 100%, 20% 100%);
  filter: blur(3px); animation: gff-tree 12s ease-in-out infinite alternate;
}
@keyframes gff-sky { 0% { opacity:0.85 } 50% { opacity:1 } 100% { opacity:0.8 } }
@keyframes gff-moon { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-3px) scale(1.02) } 100% { transform: translateY(0) scale(0.98) } }
@keyframes gff-bush { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes gff-fig { 0% { transform: translateX(0) rotate(-2deg) } 30% { transform: translateX(8px) rotate(0) } 70% { transform: translateX(-4px) rotate(1deg) } 100% { transform: translateX(0) rotate(-2deg) } }
@keyframes gff-window { 0% { opacity:0.6 } 50% { opacity:0.8 } 100% { opacity:0.55 } }
@keyframes gff-tree { 0% { transform: scale(1) } 50% { transform: scale(1.05) } 100% { transform: scale(0.95) } }

.scn-ball-rejection-aunt {
  background: linear-gradient(180deg, #f5e6c8 0%, #d9b882 30%, #b8864a 70%, #5a3a1a 100%),
              radial-gradient(ellipse at 50% 30%, #fff0d0 0%, transparent 60%);
}
.scn-ball-rejection-aunt .wall {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #e8d4b0 0%, #c8a46a 100%);
  animation: bra-wall 6s ease-in-out infinite alternate;
}
.scn-ball-rejection-aunt .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #5a3a1a 0%, #3a2010 100%);
  border-radius: 20% 20% 0 0;
}
.scn-ball-rejection-aunt .table {
  position: absolute; bottom: 25%; left: 50%; width: 140px; height: 12px;
  transform: translateX(-50%);
  background: linear-gradient(90deg, #7a5a3a, #9a7a5a, #7a5a3a);
  border-radius: 4px;
  box-shadow: 0 6px 12px rgba(0,0,0,.5);
  animation: bra-table 8s ease-in-out infinite;
}
.scn-ball-rejection-aunt .chandelier {
  position: absolute; top: 10%; left: 50%; width: 60px; height: 30px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse at 50% 30%, #ffd080 0%, #b08030 60%, transparent 100%);
  border-radius: 50% 50% 20% 20%;
  filter: blur(3px);
  animation: bra-chandelier 4s ease-in-out infinite alternate;
}
.scn-ball-rejection-aunt .figure-aunt {
  position: absolute; bottom: 28%; left: 38%; width: 28px; height: 60px;
  background: linear-gradient(180deg, #8a4060 0%, #4a2030 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bra-figure 5s ease-in-out infinite;
}
.scn-ball-rejection-aunt .figure-emily {
  position: absolute; bottom: 28%; left: 48%; width: 24px; height: 56px;
  background: linear-gradient(180deg, #7090b0 0%, #2a3a5a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: bra-figure 5s ease-in-out infinite 0.5s;
}
.scn-ball-rejection-aunt .figure-valancourt {
  position: absolute; bottom: 28%; left: 58%; width: 26px; height: 58px;
  background: linear-gradient(180deg, #4a6a4a 0%, #1a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: bra-figure 5s ease-in-out infinite 1s;
}
.scn-ball-rejection-aunt .glass {
  position: absolute; bottom: 27%; left: 42%; width: 6px; height: 10px;
  background: radial-gradient(circle, #fff0c0 0%, #d0b080 70%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 10px 2px rgba(255,240,192, .6);
  animation: bra-glass 3s ease-in-out infinite alternate;
}
@keyframes bra-wall {
  0% { opacity: .9; }
  50% { opacity: 1; }
  100% { opacity: .85; }
}
@keyframes bra-table {
  0%, 100% { transform: translateX(-50%) scale(1); }
  50% { transform: translateX(-50%) scale(1.02) translateY(-1px); }
}
@keyframes bra-chandelier {
  0% { opacity: .7; transform: translateX(-50%) scale(1); filter: blur(3px); }
  100% { opacity: 1; transform: translateX(-50%) scale(1.05); filter: blur(2px); }
}
@keyframes bra-figure {
  0% { transform: translateY(0) rotate(-1deg); }
  25% { transform: translateY(-2px) rotate(1deg); }
  50% { transform: translateY(0) rotate(-1deg); }
  75% { transform: translateY(-1px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes bra-glass {
  0% { opacity: .5; box-shadow: 0 0 6px 1px rgba(255,240,192,.3); }
  100% { opacity: 1; box-shadow: 0 0 14px 4px rgba(255,240,192,.8); }
}

.scn-rumored-nephew-revelation {
  background: linear-gradient(180deg, #2a1a0a 0%, #3a2a1a 30%, #4a3a2a 60%, #1a0a00 100%),
              radial-gradient(ellipse at 30% 50%, #5a3a1a 0%, transparent 70%);
}
.scn-rumored-nephew-revelation .wall-shadow {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #1a0a00 0%, #2a1a0a 100%);
  animation: rnr-wall 10s ease-in-out infinite alternate;
}
.scn-rumored-nephew-revelation .chair {
  position: absolute; bottom: 20%; left: 30%; width: 20px; height: 40px;
  background: linear-gradient(135deg, #5a3a1a, #3a2010);
  border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%;
  transform-origin: bottom;
  animation: rnr-chair 12s ease-in-out infinite;
}
.scn-rumored-nephew-revelation .figure-cheron {
  position: absolute; bottom: 25%; left: 40%; width: 30px; height: 60px;
  background: linear-gradient(180deg, #7a4a3a 0%, #3a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: rnr-figure 6s ease-in-out infinite;
}
.scn-rumored-nephew-revelation .figure-clairval {
  position: absolute; bottom: 25%; left: 52%; width: 28px; height: 58px;
  background: linear-gradient(180deg, #5a5a3a 0%, #2a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: rnr-figure 6s ease-in-out infinite 0.8s;
}
.scn-rumored-nephew-revelation .letter {
  position: absolute; bottom: 35%; left: 48%; width: 14px; height: 18px;
  background: linear-gradient(135deg, #d0b080 0%, #a08050 100%);
  border-radius: 4px;
  box-shadow: 0 2px 6px rgba(0,0,0,.6);
  transform: rotate(-5deg);
  animation: rnr-letter 4s ease-in-out infinite alternate;
}
.scn-rumored-nephew-revelation .candle {
  position: absolute; bottom: 30%; left: 44%; width: 6px; height: 14px;
  background: linear-gradient(180deg, #d0a060 0%, #a08040 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 16px 6px rgba(255,200,100, .6);
  animation: rnr-candle 3s ease-in-out infinite alternate;
}
.scn-rumored-nephew-revelation .door {
  position: absolute; bottom: 10%; right: 10%; width: 40px; height: 80px;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1000 100%);
  border-radius: 6px 6px 0 0;
  border-left: 2px solid #5a3a2a;
  animation: rnr-door 8s ease-in-out infinite;
}
@keyframes rnr-wall {
  0% { opacity: .8; }
  50% { opacity: 1; }
  100% { opacity: .75; }
}
@keyframes rnr-chair {
  0%, 100% { transform: scale(1) rotate(0); }
  50% { transform: scale(1.05) rotate(2deg); }
}
@keyframes rnr-figure {
  0% { transform: translateY(0) rotate(-1deg); }
  25% { transform: translateY(-1px) rotate(1deg); }
  50% { transform: translateY(0) rotate(-1deg); }
  75% { transform: translateY(-2px) rotate(2deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes rnr-letter {
  0% { transform: rotate(-5deg) scale(1); opacity: .7; }
  100% { transform: rotate(5deg) scale(1.1); opacity: 1; }
}
@keyframes rnr-candle {
  0% { opacity: .6; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.1); }
  100% { opacity: .7; transform: scale(0.95); }
}
@keyframes rnr-door {
  0%, 100% { transform: scaleX(1); }
  50% { transform: scaleX(1.03); }
}

.scn-secret-meeting-dawn {
  background: linear-gradient(180deg, #1a2a4a 0%, #3a4a6a 30%, #d0a060 60%, #e8c080 80%, #f0d098 100%),
              radial-gradient(ellipse at 50% 80%, #f0d098 0%, transparent 60%);
}
.scn-secret-meeting-dawn .sky-dawn {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(180deg, #2a3a5a 0%, #6a5a3a 40%, #d0a060 100%);
  animation: smd-sky 12s ease-in-out infinite alternate;
}
.scn-secret-meeting-dawn .mountains {
  position: absolute; bottom: 25%; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #3a4a5a 0%, #1a2a3a 100%);
  border-radius: 60% 40% 0 0 / 80% 60% 0 0;
  box-shadow: inset 0 4px 12px rgba(0,0,0,.4);
  animation: smd-mountains 15s ease-in-out infinite alternate;
}
.scn-secret-meeting-dawn .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #3a5a3a 0%, #1a2a1a 100%);
  border-radius: 20% 40% 0 0;
}
.scn-secret-meeting-dawn .figure-emily {
  position: absolute; bottom: 18%; left: 44%; width: 22px; height: 54px;
  background: linear-gradient(180deg, #5a6a8a 0%, #2a3a5a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom;
  animation: smd-figure 6s ease-in-out infinite;
}
.scn-secret-meeting-dawn .figure-valancourt {
  position: absolute; bottom: 18%; left: 54%; width: 24px; height: 56px;
  background: linear-gradient(180deg, #4a6a4a 0%, #1a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: smd-figure 6s ease-in-out infinite 0.6s;
}
.scn-secret-meeting-dawn .tree {
  position: absolute; bottom: 25%; left: 30%; width: 10px; height: 50px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%);
  border-radius: 10% 10% 30% 30%;
  box-shadow: -4px 0 0 0 #2a1a0a;
}
.scn-secret-meeting-dawn .mist {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 20%;
  background: radial-gradient(ellipse at 50% 50%, rgba(255, 220, 180, 0.3) 0%, transparent 100%);
  filter: blur(10px);
  animation: smd-mist 8s ease-in-out infinite alternate;
}
@keyframes smd-sky {
  0% { opacity: .6; }
  50% { opacity: .9; }
  100% { opacity: .7; }
}
@keyframes smd-mountains {
  0% { transform: translateY(0); }
  50% { transform: translateY(-2px); }
  100% { transform: translateY(0); }
}
@keyframes smd-figure {
  0% { transform: translateY(0) rotate(-2deg); }
  25% { transform: translateY(-2px) rotate(1deg); }
  50% { transform: translateY(0) rotate(0); }
  75% { transform: translateY(-1px) rotate(2deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes smd-mist {
  0% { opacity: .4; transform: translateX(-5px); }
  100% { opacity: .7; transform: translateX(5px); }
}

.scn-itaian-scenery-music {
  background: linear-gradient(180deg, #87ceeb 0%, #c8e6f0 30%, #f5e6a0 60%, #d4c070 80%, #a08850 100%),
              radial-gradient(ellipse at 30% 40%, #f5e6a0 0%, transparent 60%);
}
.scn-itaian-scenery-music .sky-sunlit {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #6ab0d0 0%, #c0e0f0 40%, #f5e6a0 100%);
  animation: ism-sky 20s ease-in-out infinite alternate;
}
.scn-itaian-scenery-music .hills-italy {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 45%;
  background: linear-gradient(135deg, #8aac6a 0%, #6a8a4a 40%, #4a6a2a 100%);
  border-radius: 70% 30% 0 0 / 60% 40% 0 0;
  box-shadow: inset 0 6px 20px rgba(0,0,0,.2);
  animation: ism-hills 25s ease-in-out infinite alternate;
}
.scn-itaian-scenery-music .tree-olive {
  position: absolute; bottom: 30%; left: 25%; width: 14px; height: 60px;
  background: linear-gradient(180deg, #5a4a2a 0%, #3a2a10 100%);
  border-radius: 10% 10% 20% 20%;
  box-shadow: 6px 0 0 0 #4a3a1a;
}
.scn-itaian-scenery-music .figure-peasant {
  position: absolute; bottom: 22%; left: 50%; width: 26px; height: 58px;
  background: linear-gradient(180deg, #a08050 0%, #5a3a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom;
  animation: ism-peasant 7s ease-in-out infinite;
}
.scn-itaian-scenery-music .violin {
  position: absolute; bottom: 28%; left: 50%; width: 8px; height: 14px;
  background: linear-gradient(135deg, #c8a060 0%, #8a6a3a 100%);
  border-radius: 20% 20% 40% 40%;
  transform: rotate(15deg);
  transform-origin: bottom left;
  box-shadow: 0 1px 4px rgba(0,0,0,.3);
  animation: ism-violin 4s ease-in-out infinite alternate;
}
.scn-itaian-scenery-music .shrine {
  position: absolute; bottom: 25%; left: 15%; width: 20px; height: 30px;
  background: linear-gradient(180deg, #b0a080 0%, #7a6040 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 0 0 2px #5a4020;
}
@keyframes ism-sky {
  0% { opacity: .8; }
  50% { opacity: 1; }
  100% { opacity: .85; }
}
@keyframes ism-hills {
  0% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
  100% { transform: translateY(0); }
}
@keyframes ism-peasant {
  0% { transform: translateY(0) rotate(-1deg); }
  25% { transform: translateY(-2px) rotate(1deg); }
  50% { transform: translateY(0) rotate(0); }
  75% { transform: translateY(-1px) rotate(2deg); }
  100% { transform: translateY(0) rotate(-1deg); }
}
@keyframes ism-violin {
  0% { transform: rotate(15deg) scale(1); }
  100% { transform: rotate(25deg) scale(1.1); }
}

/* turret-bloodstains-silence */
.scn-turret-bloodstains-silence {
  background:
    linear-gradient(180deg, #2a1e1e 0%, #1f1414 40%, #0f0b0b 100%),
    radial-gradient(ellipse at 50% 30%, #3a2626 0%, transparent 70%);
}
.scn-turret-bloodstains-silence .wall-left {
  position: absolute; left: 0; top: 0; bottom: 0; width: 30%;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1010 100%);
  border-right: 2px solid #2a1a1a; box-shadow: inset -8px 0 12px rgba(0,0,0,0.6);
}
.scn-turret-bloodstains-silence .wall-right {
  position: absolute; right: 0; top: 0; bottom: 0; width: 30%;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1010 100%);
  border-left: 2px solid #2a1a1a; box-shadow: inset 8px 0 12px rgba(0,0,0,0.6);
}
.scn-turret-bloodstains-silence .stairs {
  position: absolute; bottom: 0; left: 25%; right: 25%; height: 45%;
  background: repeating-linear-gradient(
    0deg,
    #2a2018 0px, #2a2018 8px,
    #1e1612 8px, #1e1612 16px
  );
  transform: perspective(400px) rotateX(10deg);
  transform-origin: bottom center;
  box-shadow: 0 -4px 8px rgba(0,0,0,0.5);
  animation: tu-stairs 12s ease-in-out infinite alternate;
}
.scn-turret-bloodstains-silence .bloodstain {
  position: absolute; border-radius: 50% 30% 50% 30% / 60% 40% 60% 40%;
  background: radial-gradient(ellipse at 30% 40%, #7a3520 0%, #4a1a0a 70%, transparent 100%);
  filter: blur(1px); opacity: 0.6;
}
.scn-turret-bloodstains-silence .blood-1 {
  left: 38%; bottom: 38%; width: 20px; height: 14px; transform: rotate(-15deg);
  animation: tu-blood 8s ease-in-out infinite alternate;
}
.scn-turret-bloodstains-silence .blood-2 {
  left: 52%; bottom: 28%; width: 28px; height: 18px; transform: rotate(8deg);
  animation: tu-blood 10s ease-in-out infinite alternate-reverse;
}
.scn-turret-bloodstains-silence .figure-silhouette {
  position: absolute; bottom: 22%; left: 45%; width: 14px; height: 40px;
  background: linear-gradient(180deg, #0a0606 0%, #1a0a0a 60%, transparent 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: tu-figure 6s ease-in-out infinite;
}
.scn-turret-bloodstains-silence .door-upper {
  position: absolute; bottom: 55%; left: 40%; width: 20%; height: 25%;
  background: linear-gradient(180deg, #2a1a12 0%, #1a0e08 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.7), 0 0 0 1px #2a1a12;
}
@keyframes tu-stairs { 0% { transform: perspective(400px) rotateX(10deg) translateY(0); } 50% { transform: perspective(400px) rotateX(12deg) translateY(-2px); } 100% { transform: perspective(400px) rotateX(10deg) translateY(0); } }
@keyframes tu-blood { 0% { opacity: 0.4; transform: rotate(-15deg) scale(0.95); } 50% { opacity: 0.7; transform: rotate(-10deg) scale(1.05); } 100% { opacity: 0.4; transform: rotate(-15deg) scale(0.95); } }
@keyframes tu-figure { 0% { transform: translateY(0) rotate(-1deg); opacity: 0.6; } 25% { transform: translateY(-2px) rotate(1deg); opacity: 0.8; } 50% { transform: translateY(0) rotate(-0.5deg); opacity: 0.6; } 75% { transform: translateY(-1px) rotate(0.5deg); opacity: 0.7; } 100% { transform: translateY(0) rotate(0deg); opacity: 0.6; } }

/* letter-black-wax */
.scn-letter-black-wax {
  background:
    linear-gradient(180deg, #1e1410 0%, #2a1a12 30%, #1a0e08 70%, #0f0804 100%),
    radial-gradient(ellipse at 50% 40%, #3a2018 0%, transparent 60%);
}
.scn-letter-black-wax .chamber-wall {
  position: absolute; left: 0; right: 0; top: 0; bottom: 40%;
  background: linear-gradient(180deg, #2a1c14 0%, #1a0e08 100%);
  border-bottom: 1px solid #3a2218;
}
.scn-letter-black-wax .table {
  position: absolute; bottom: 20%; left: 30%; right: 30%; height: 12%;
  background: linear-gradient(180deg, #3a281a 0%, #1e140c 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 -6px 12px rgba(0,0,0,0.6);
}
.scn-letter-black-wax .letter {
  position: absolute; bottom: 32%; left: 38%; width: 24%; height: 16%;
  background: linear-gradient(135deg, #e8dac0 0%, #c8b89a 50%, #a89072 100%);
  border: 1px solid #8a7052;
  border-radius: 2%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  transform: rotate(-2deg);
}
.scn-letter-black-wax .wax-seal {
  position: absolute; bottom: 38%; left: 50%; width: 12px; height: 12px;
  background: radial-gradient(circle at 40% 40%, #4a3a2a 0%, #1a1008 100%);
  border-radius: 50%;
  transform: translateX(-50%);
  box-shadow: 0 0 4px rgba(0,0,0,0.8);
}
.scn-letter-black-wax .figure-montoni {
  position: absolute; bottom: 20%; left: 18%; width: 24px; height: 56px;
  background: linear-gradient(180deg, #1a0e08 0%, #0f0604 60%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: le-montoni 8s ease-in-out infinite;
}
.scn-letter-black-wax .figure-emily {
  position: absolute; bottom: 18%; right: 22%; width: 20px; height: 48px;
  background: linear-gradient(180deg, #1a0e08 0%, #0f0604 60%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: le-emily 10s ease-in-out infinite alternate;
}
.scn-letter-black-wax .candle-glow {
  position: absolute; bottom: 27%; left: 45%; width: 8px; height: 8px;
  background: radial-gradient(circle, #c89a4a 0%, #8a6020 50%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 20px 6px #6a4010, 0 0 40px 12px rgba(106,64,16,0.4);
  animation: le-glow 3s ease-in-out infinite alternate;
}
@keyframes le-montoni { 0% { transform: translateY(0) rotate(-0.5deg); } 25% { transform: translateY(-2px) rotate(0.5deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-1px) rotate(-0.3deg); } 100% { transform: translateY(0) rotate(-0.5deg); } }
@keyframes le-emily { 0% { transform: translateY(0) skewX(0deg); } 50% { transform: translateY(-3px) skewX(-1deg); } 100% { transform: translateY(0) skewX(0deg); } }
@keyframes le-glow { 0% { box-shadow: 0 0 16px 4px #6a4010, 0 0 32px 8px rgba(106,64,16,0.3); opacity: 0.8; } 50% { box-shadow: 0 0 24px 8px #b08030, 0 0 48px 16px rgba(176,128,48,0.5); opacity: 1; } 100% { box-shadow: 0 0 18px 5px #6a4010, 0 0 36px 10px rgba(106,64,16,0.35); opacity: 0.85; } }

/* vault-corpse-discovery */
.scn-vault-corpse-discovery {
  background:
    linear-gradient(180deg, #0e0e14 0%, #16121a 30%, #0c0a10 70%, #040206 100%),
    radial-gradient(ellipse at 50% 20%, #1a1624 0%, transparent 70%);
}
.scn-vault-corpse-discovery .vault-arch {
  position: absolute; left: 15%; right: 15%; top: 5%; bottom: 50%;
  background: linear-gradient(180deg, #1a1a2a 0%, #0e0e1a 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.8);
  border: 2px solid #2a2a3a;
}
.scn-vault-corpse-discovery .pillar-left,
.scn-vault-corpse-discovery .pillar-right {
  position: absolute; top: 0; bottom: 0; width: 8%;
  background: linear-gradient(180deg, #2a2a3a 0%, #12121a 100%);
  box-shadow: 0 0 8px rgba(0,0,0,0.8);
}
.scn-vault-corpse-discovery .pillar-left { left: 12%; }
.scn-vault-corpse-discovery .pillar-right { right: 12%; }
.scn-vault-corpse-discovery .curtain {
  position: absolute; left: 25%; right: 25%; top: 8%; bottom: 40%;
  background: linear-gradient(180deg, #1a1020 0%, #0e0814 100%);
  border-radius: 40% 40% 0 0 / 60% 60% 0 0;
  box-shadow: inset 0 -12px 24px rgba(0,0,0,0.6);
  animation: va-curtain 14s ease-in-out infinite alternate;
}
.scn-vault-corpse-discovery .corpse-drape {
  position: absolute; left: 32%; right: 32%; bottom: 32%; height: 20%;
  background: linear-gradient(180deg, #3a3a4a 0%, #1a1a2a 60%, transparent 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 30% 30%;
  box-shadow: inset 0 -8px 16px rgba(0,0,0,0.7);
  animation: va-corpse 10s ease-in-out infinite alternate;
}
.scn-vault-corpse-discovery .figure-emily {
  position: absolute; bottom: 18%; left: 42%; width: 18px; height: 44px;
  background: linear-gradient(180deg, #0a0a1a 0%, #02020a 60%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: va-figure 5s ease-in-out infinite alternate;
}
.scn-vault-corpse-discovery .ground-shadow {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 15%;
  background: linear-gradient(180deg, rgba(0,0,0,0.6) 0%, transparent 100%);
  filter: blur(4px);
}
@keyframes va-curtain { 0% { transform: scaleY(1) translateY(0); } 50% { transform: scaleY(1.02) translateY(-4px); } 100% { transform: scaleY(1) translateY(0); } }
@keyframes va-corpse { 0% { opacity: 0.3; transform: rotate(-2deg); } 50% { opacity: 0.6; transform: rotate(0deg); } 100% { opacity: 0.3; transform: rotate(2deg); } }
@keyframes va-figure { 0% { transform: translateY(0) rotate(0deg); opacity: 0.5; } 50% { transform: translateY(-3px) rotate(1deg); opacity: 0.8; } 100% { transform: translateY(0) rotate(-1deg); opacity: 0.5; } }

/* awakening-figure-rampart */
.scn-awakening-figure-rampart {
  background:
    linear-gradient(180deg, #0e1624 0%, #1a2232 30%, #12203a 70%, #0a1420 100%),
    radial-gradient(ellipse at 70% 20%, #2a4a7a 0%, transparent 60%);
}
.scn-awakening-figure-rampart .bed-frame {
  position: absolute; bottom: 0; left: 10%; right: 10%; height: 50%;
  background: linear-gradient(180deg, #1a1828 0%, #0e0c18 100%);
  border-radius: 8% 8% 0 0;
  box-shadow: inset 0 8px 16px rgba(0,0,0,0.5);
}
.scn-awakening-figure-rampart .window {
  position: absolute; top: 8%; right: 8%; width: 30%; height: 35%;
  background: linear-gradient(180deg, #1a2a4a 0%, #2a4a6a 50%, #1a2a4a 100%);
  border: 2px solid #2a3a5a;
  border-radius: 4%;
  box-shadow: inset 0 0 20px #2a4a6a;
  animation: aw-window 9s ease-in-out infinite alternate;
}
.scn-awakening-figure-rampart .moonbeam {
  position: absolute; top: 12%; right: 12%; width: 20%; height: 70%;
  background: linear-gradient(180deg, rgba(180,210,255,0.15) 0%, rgba(180,210,255,0.03) 70%, transparent 100%);
  border-radius: 0 0 50% 50% / 0 0 30% 30%;
  filter: blur(6px);
  animation: aw-beam 12s ease-in-out infinite alternate;
}
.scn-awakening-figure-rampart .figure-emily {
  position: absolute; bottom: 25%; left: 35%; width: 18px; height: 40px;
  background: linear-gradient(180deg, #0e1220 0%, #060a14 60%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: aw-emily 6s ease-in-out infinite;
}
.scn-awakening-figure-rampart .figure-annette {
  position: absolute; bottom: 22%; right: 30%; width: 16px; height: 36px;
  background: linear-gradient(180deg, #12182a 0%, #0a0e1a 60%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: aw-annette 8s ease-in-out infinite alternate;
}
.scn-awakening-figure-rampart .pillow {
  position: absolute; bottom: 42%; left: 32%; width: 22px; height: 10px;
  background: linear-gradient(180deg, #1a1a2e 0%, #10101e 100%);
  border-radius: 30%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.3);
}
.scn-awakening-figure-rampart .nightstand {
  position: absolute; bottom: 20%; right: 15%; width: 20px; height: 24px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0e0e 100%);
  border-radius: 4% 4% 0 0;
  box-shadow: 0 -2px 4px rgba(0,0,0,0.4);
}
@keyframes aw-window { 0% { box-shadow: inset 0 0 20px #2a4a6a, 0 0 10px #2a4a6a; } 50% { box-shadow: inset 0 0 30px #4a6a9a, 0 0 20px #4a6a9a; } 100% { box-shadow: inset 0 0 20px #2a4a6a, 0 0 10px #2a4a6a; } }
@keyframes aw-beam { 0% { opacity: 0.5; transform: translateY(0) scaleY(1); } 50% { opacity: 0.8; transform: translateY(4px) scaleY(1.05); } 100% { opacity: 0.5; transform: translateY(0) scaleY(1); } }
@keyframes aw-emily { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-2px) rotate(1deg); } 50% { transform: translateY(0) rotate(-0.5deg); } 75% { transform: translateY(-1px) rotate(0.5deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes aw-annette { 0% { transform: translateY(0) skewX(0deg); } 50% { transform: translateY(-3px) skewX(-0.5deg); } 100% { transform: translateY(0) skewX(0deg); } }

.scn-morano-confrontation { 
  background: 
    linear-gradient(180deg, #1a1a2e 0%, #2c2240 40%, #4a3a5e 70%, #2a1a2a 100%),
    radial-gradient(ellipse at 50% 100%, #3a2a4a 0%, transparent 70%);
}
.scn-morano-confrontation .bg-wall { 
  position:absolute; inset:0 0 30% 0; 
  background: linear-gradient(180deg, #3a2a3a 0%, #1a1a2a 100%);
  border-bottom: solid 2px #2a2a2a;
}
.scn-morano-confrontation .floor { 
  position:absolute; bottom:0; left:0; right:0; height:30%; 
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  box-shadow: inset 0 8px 12px rgba(0,0,0,.6);
}
.scn-morano-confrontation .candle { 
  position:absolute; top:50%; left:15%; width:4px; height:14px; 
  background: linear-gradient(180deg, #ffd0a0 0%, #b07040 100%);
  border-radius: 50% 50% 10% 10%;
  box-shadow: 0 0 18px 6px #d09050;
  animation: mc-candle 1.5s ease-in-out infinite alternate;
}
.scn-morano-confrontation .candle-glow { 
  position:absolute; top:48%; left:13%; width:30px; height:30px; 
  background: radial-gradient(circle, rgba(255,200,100,.5) 0%, transparent 70%);
  border-radius:50%;
  animation: mc-glow 2s ease-in-out infinite alternate;
}
.scn-morano-confrontation .figure-morano { 
  position:absolute; bottom:30%; left:35%; width:28px; height:70px; 
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 0 -4px 8px rgba(0,0,0,.3);
  animation: mc-morano-fight 3s ease-in-out infinite;
}
.scn-morano-confrontation .figure-montoni { 
  position:absolute; bottom:30%; right:35%; width:30px; height:68px; 
  background: linear-gradient(180deg, #2a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 0 -4px 8px rgba(0,0,0,.5);
  animation: mc-montoni-fight 3s ease-in-out infinite;
}
.scn-morano-confrontation .sword { 
  position:absolute; bottom:42%; left:48%; width:30px; height:3px; 
  background: linear-gradient(180deg, #606060 0%, #303030 100%);
  transform: rotate(-30deg);
  border-radius: 2px;
  box-shadow: 0 0 4px 1px #808080;
  animation: mc-sword 0.8s ease-in-out infinite alternate;
}
.scn-morano-confrontation .shadow-fight { 
  position:absolute; bottom:20%; left:20%; right:20%; height:50%; 
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,.4) 0%, transparent 70%);
  animation: mc-shadow 3s ease-in-out infinite;
}
@keyframes mc-candle { 0% { transform: scaleY(1) opacity(1) } 50% { transform: scaleY(1.2) opacity(0.9) } 100% { transform: scaleY(1) opacity(1) } }
@keyframes mc-glow { 0% { transform: scale(1) } 50% { transform: scale(1.1) } 100% { transform: scale(1) } }
@keyframes mc-morano-fight { 0% { transform: translateX(0) translateY(0) rotate(0) } 25% { transform: translateX(6px) translateY(-2px) rotate(5deg) } 50% { transform: translateX(0) translateY(0) rotate(0) } 75% { transform: translateX(-6px) translateY(-2px) rotate(-5deg) } 100% { transform: translateX(0) translateY(0) rotate(0) } }
@keyframes mc-montoni-fight { 0% { transform: translateX(0) translateY(0) rotate(0) } 25% { transform: translateX(-6px) translateY(-2px) rotate(-5deg) } 50% { transform: translateX(0) translateY(0) rotate(0) } 75% { transform: translateX(6px) translateY(-2px) rotate(5deg) } 100% { transform: translateX(0) translateY(0) rotate(0) } }
@keyframes mc-sword { 0% { transform: rotate(-30deg) translateX(0) } 50% { transform: rotate(-20deg) translateX(4px) } 100% { transform: rotate(-30deg) translateX(0) } }
@keyframes mc-shadow { 0% { opacity:0.3 } 50% { opacity:0.6 } 100% { opacity:0.3 } }

.scn-montoni-rebuke-secret { 
  background: 
    linear-gradient(180deg, #2a201c 0%, #3a2a2a 40%, #4a3a3a 70%, #2a1a1a 100%),
    radial-gradient(ellipse at 50% 100%, #3a2a2a 0%, transparent 60%);
}
.scn-montoni-rebuke-secret .bg-panels { 
  position:absolute; inset:0 0 30% 0; 
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%);
  border-bottom: solid 3px #1a1a1a;
  box-shadow: inset 0 0 20px rgba(0,0,0,.5);
}
.scn-montoni-rebuke-secret .fireplace { 
  position:absolute; bottom:28%; left:50%; transform:translateX(-50%); 
  width:50px; height:60px; 
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 10% 10% 30% 30% / 20% 20% 40% 40%;
  box-shadow: inset 0 -8px 12px #1a0a0a;
}
.scn-montoni-rebuke-secret .fire-glow { 
  position:absolute; bottom:38%; left:50%; transform:translateX(-50%); 
  width:20px; height:24px; 
  background: radial-gradient(circle, #ff8040 0%, #ff6020 30%, transparent 70%);
  border-radius:50%;
  animation: mr-fire 2s ease-in-out infinite alternate;
}
.scn-montoni-rebuke-secret .figure-montoni-rebuking { 
  position:absolute; bottom:30%; left:25%; width:30px; height:65px; 
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mr-montoni-rebuke 3s ease-in-out infinite;
}
.scn-montoni-rebuke-secret .figure-emily-cowering { 
  position:absolute; bottom:28%; right:28%; width:22px; height:58px; 
  background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mr-emily-cower 3s ease-in-out infinite;
}
.scn-montoni-rebuke-secret .figure-annette-sleeping { 
  position:absolute; bottom:28%; right:8%; width:30px; height:20px; 
  background: linear-gradient(180deg, #3a2a3a 0%, #1a1a2a 100%);
  border-radius: 50% 50% 40% 40%;
  transform: rotate(10deg);
  box-shadow: 0 4px 6px rgba(0,0,0,.4);
  animation: mr-sleep 6s ease-in-out infinite;
}
.scn-montoni-rebuke-secret .bed-frame { 
  position:absolute; bottom:24%; right:4%; width:50px; height:30px; 
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: inset 0 4px 8px #0a0a0a;
}
@keyframes mr-fire { 0% { transform: scale(1) opacity(0.9) } 50% { transform: scale(1.2) opacity(1) } 100% { transform: scale(1) opacity(0.9) } }
@keyframes mr-montoni-rebuke { 0% { transform: translateY(0) rotate(-3deg) } 25% { transform: translateY(-3px) rotate(0) } 50% { transform: translateY(0) rotate(3deg) } 75% { transform: translateY(-3px) rotate(0) } 100% { transform: translateY(0) rotate(-3deg) } }
@keyframes mr-emily-cower { 0% { transform: translateX(0) scale(1) rotate(0) } 50% { transform: translateX(-2px) scale(0.95) rotate(-2deg) } 100% { transform: translateX(0) scale(1) rotate(0) } }
@keyframes mr-sleep { 0% { transform: rotate(10deg) translateX(0) } 50% { transform: rotate(8deg) translateX(1px) } 100% { transform: rotate(10deg) translateX(0) } }

.scn-interrogation-portrait { 
  background: 
    linear-gradient(180deg, #2a1a2a 0%, #3a2a3a 40%, #4a3a4a 70%, #2a1a1a 100%),
    radial-gradient(circle at 30% 60%, #6a5a5a 0%, transparent 60%);
}
.scn-interrogation-portrait .bg-stone { 
  position:absolute; inset:0 0 20% 0; 
  background: linear-gradient(180deg, #4a3a4a 0%, #2a1a2a 100%);
  box-shadow: inset 0 0 30px #0a0a0a;
}
.scn-interrogation-portrait .portrait-frame { 
  position:absolute; top:10%; left:15%; width:80px; height:100px; 
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 10% 10% 8% 8%;
  box-shadow: 0 8px 16px rgba(0,0,0,.6), inset 0 0 10px #1a1a1a;
  animation: ip-frame 8s ease-in-out infinite alternate;
}
.scn-interrogation-portrait .portrait-lady { 
  position:absolute; top:14%; left:19%; width:64px; height:80px; 
  background: linear-gradient(180deg, #c8a080 0%, #a07860 50%, #806050 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,.3);
  transform: rotate(2deg);
  animation: ip-lady 6s ease-in-out infinite;
}
.scn-interrogation-portrait .figure-montoni-interrogating { 
  position:absolute; bottom:28%; left:38%; width:28px; height:62px; 
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ip-montoni 3s ease-in-out infinite;
}
.scn-interrogation-portrait .figure-porter { 
  position:absolute; bottom:20%; left:55%; width:26px; height:60px; 
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ip-porter 4s ease-in-out infinite;
}
.scn-interrogation-portrait .figure-emily-watching { 
  position:absolute; bottom:22%; left:70%; width:20px; height:50px; 
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ip-emily 5s ease-in-out infinite;
}
.scn-interrogation-portrait .torch-glow { 
  position:absolute; top:20%; right:10%; width:30px; height:30px; 
  background: radial-gradient(circle, #ffa060 0%, #ff8040 30%, transparent 70%);
  border-radius:50%;
  animation: ip-torch 2s ease-in-out infinite alternate;
}
@keyframes ip-frame { 0% { transform: scale(1) rotate(0) } 50% { transform: scale(1.02) rotate(1deg) } 100% { transform: scale(1) rotate(0) } }
@keyframes ip-lady { 0% { transform: rotate(2deg) } 50% { transform: rotate(1deg) } 100% { transform: rotate(2deg) } }
@keyframes ip-montoni { 0% { transform: translateY(0) rotate(-2deg) } 25% { transform: translateY(-2px) rotate(0) } 50% { transform: translateY(0) rotate(2deg) } 75% { transform: translateY(-2px) rotate(0) } 100% { transform: translateY(0) rotate(-2deg) } }
@keyframes ip-porter { 0% { transform: translateX(0) scale(1) } 50% { transform: translateX(3px) scale(0.98) } 100% { transform: translateX(0) scale(1) } }
@keyframes ip-emily { 0% { transform: translateY(0) rotate(0) } 50% { transform: translateY(-1px) rotate(2deg) } 100% { transform: translateY(0) rotate(0) } }
@keyframes ip-torch { 0% { transform: scale(1) opacity(0.8) } 50% { transform: scale(1.15) opacity(1) } 100% { transform: scale(1) opacity(0.8) } }

.scn-aunt-rage-prudence { 
  background: 
    linear-gradient(180deg, #3a2a2a 0%, #4a3a3a 40%, #5a4a4a 70%, #3a2a2a 100%),
    radial-gradient(circle at 50% 20%, #6a5a5a 0%, transparent 60%);
}
.scn-aunt-rage-prudence .bg-darkwood { 
  position:absolute; inset:0 0 25% 0; 
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%);
  box-shadow: inset 0 0 30px #1a0a0a;
}
.scn-aunt-rage-prudence .table { 
  position:absolute; bottom:20%; left:50%; transform:translateX(-50%); 
  width:80px; height:10px; 
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 4px 8px rgba(0,0,0,.6);
}
.scn-aunt-rage-prudence .figure-aunt-raging { 
  position:absolute; bottom:25%; left:20%; width:30px; height:68px; 
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ar-aunt-rage 2s ease-in-out infinite;
}
.scn-aunt-rage-prudence .figure-emily-prudent { 
  position:absolute; bottom:25%; right:20%; width:22px; height:60px; 
  background: linear-gradient(180deg, #3a2a3a 0%, #1a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ar-emily 3s ease-in-out infinite;
}
.scn-aunt-rage-prudence .hand-aunt { 
  position:absolute; bottom:50%; left:30%; width:12px; height:20px; 
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 40% 40%;
  transform: rotate(-30deg);
  transform-origin: 50% 100%;
  animation: ar-hand-aunt 1.5s ease-in-out infinite alternate;
}
.scn-aunt-rage-prudence .hand-emily { 
  position:absolute; bottom:50%; right:25%; width:10px; height:18px; 
  background: linear-gradient(180deg, #4a3a3a 0%, #1a0a1a 100%);
  border-radius: 50% 50% 40% 40%;
  transform: rotate(20deg);
  transform-origin: 50% 100%;
  animation: ar-hand-emily 2.5s ease-in-out infinite alternate;
}
.scn-aunt-rage-prudence .candelabra { 
  position:absolute; bottom:30%; left:50%; transform:translateX(-50%); 
  width:20px; height:30px; 
  background: linear-gradient(180deg, #8a7a6a 0%, #5a4a3a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 12px 4px #c08050;
}
.scn-aunt-rage-prudence .floor { 
  position:absolute; bottom:0; left:0; right:0; height:25%; 
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  box-shadow: inset 0 4px 10px rgba(0,0,0,.5);
}
@keyframes ar-aunt-rage { 0% { transform: translateX(0) rotate(-4deg) } 25% { transform: translateX(4px) rotate(0) } 50% { transform: translateX(0) rotate(4deg) } 75% { transform: translateX(-4px) rotate(0) } 100% { transform: translateX(0) rotate(-4deg) } }
@keyframes ar-emily { 0% { transform: translateY(0) scale(1) } 50% { transform: translateY(-1px) scale(0.96) } 100% { transform: translateY(0) scale(1) } }
@keyframes ar-hand-aunt { 0% { transform: rotate(-30deg) } 50% { transform: rotate(-10deg) } 100% { transform: rotate(-30deg) } }
@keyframes ar-hand-emily { 0% { transform: rotate(20deg) } 50% { transform: rotate(35deg) } 100% { transform: rotate(20deg) } }

.scn-venice-gaming-balcony { background: linear-gradient(180deg, #3a2a4e 0%, #6a4a6e 30%, #b08060 60%, #c09860 100%), radial-gradient(ellipse at 50% 20%, #d0a070 0%, transparent 60%); }
.scn-venice-gaming-balcony .dusk-sky { position:absolute; inset:0 0 45% 0; background: linear-gradient(180deg, #1a1a3e 0%, #4a3a6e 40%, #b08060 80%, #d0b070 100%); animation: vgb-sky 20s ease-in-out infinite alternate; }
.scn-venice-gaming-balcony .lagoon { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(0deg, #2a3a5e 0%, #4a6a8e 40%, #8a9aaa 80%, #b0a070 100%); border-radius: 60% 40% 0 0 / 30% 20% 0 0; box-shadow: inset 0 20px 40px rgba(0,0,0,.4); animation: vgb-lagoon 15s ease-in-out infinite alternate; }
.scn-venice-gaming-balcony .palace { position:absolute; bottom:38%; left:15%; right:15%; height:50%; background: linear-gradient(180deg, #8a6a5a 0%, #6a4a3a 40%, #4a3a2a 100%); border-radius: 4% 4% 0 0; box-shadow: 0 -4px 20px rgba(0,0,0,.5), inset 0 4px 12px rgba(255,255,255,.1); animation: vgb-palace 12s ease-in-out infinite; }
.scn-venice-gaming-balcony .balcony { position:absolute; bottom:46%; left:25%; width:22%; height:12%; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 6% 6% 2% 2%; box-shadow: 0 -2px 10px rgba(0,0,0,.6); animation: vgb-balcony 8s ease-in-out infinite alternate; }
.scn-venice-gaming-balcony .figure-emily { position:absolute; bottom:46%; left:30%; width:16px; height:38px; background: linear-gradient(180deg, #6a5a5a 0%, #3a2a2a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; box-shadow: -2px 0 8px rgba(0,0,0,.5); animation: vgb-emily 6s ease-in-out infinite; }
.scn-venice-gaming-balcony .dancers { position:absolute; bottom:38%; left:40%; right:20%; height:20%; background: repeating-linear-gradient(90deg, transparent 0px, transparent 12px, #4a3a3a 12px, #4a3a3a 14px, transparent 14px, transparent 26px); opacity: .6; animation: vgb-dance 3s ease-in-out infinite; }
.scn-venice-gaming-balcony .lanterns { position:absolute; bottom:54%; left:0; right:0; height:4px; background: repeating-radial-gradient(circle at 20% 50%, #ffd070 0px, #ffd070 3px, transparent 3px, transparent 30px); animation: vgb-lanterns 4s ease-in-out infinite alternate; }
.scn-venice-gaming-balcony .procession { position:absolute; bottom:42%; left:5%; width:15%; height:18%; background: linear-gradient(0deg, #3a2a2a 0%, #5a4a4a 50%, #3a2a2a 100%); border-radius: 30% 30% 10% 10%; filter: blur(1px); animation: vgb-procession 25s linear infinite; }
@keyframes vgb-sky { 0% { opacity: .7 } 50% { opacity: 1 } 100% { opacity: .8 } }
@keyframes vgb-lagoon { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(2px) scaleY(1.02) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes vgb-palace { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }
@keyframes vgb-balcony { 0% { box-shadow: 0 -2px 8px rgba(0,0,0,.5) } 50% { box-shadow: 0 -4px 16px rgba(0,0,0,.7) } 100% { box-shadow: 0 -2px 10px rgba(0,0,0,.5) } }
@keyframes vgb-emily { 0% { transform: translateX(0) translateY(0) rotate(0) } 25% { transform: translateX(3px) translateY(-1px) rotate(1deg) } 50% { transform: translateX(0) translateY(0) rotate(0) } 75% { transform: translateX(-3px) translateY(-1px) rotate(-1deg) } 100% { transform: translateX(0) translateY(0) rotate(0) } }
@keyframes vgb-dance { 0%,100% { transform: translateX(0) } 50% { transform: translateX(5px) } }
@keyframes vgb-lanterns { 0% { opacity: .6 } 50% { opacity: 1 } 100% { opacity: .7 } }
@keyframes vgb-procession { 0% { transform: translateX(-20px) } 100% { transform: translateX(80vw) } }

.scn-letter-misunderstood { background: linear-gradient(180deg, #1a1a2a 0%, #2a2a3e 40%, #3a3a4e 80%, #2a2a3a 100%), radial-gradient(ellipse at 50% 60%, #4a3a3a 0%, transparent 70%); }
.scn-letter-misunderstood .dim-wall { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #2a2a3e 0%, #3a3a4e 60%, #4a4a5a 100%); animation: lmu-wall 15s ease-in-out infinite alternate; }
.scn-letter-misunderstood .floor-dark { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(0deg, #1a1a2a 0%, #2a2a3a 100%); box-shadow: inset 0 12px 24px rgba(0,0,0,.6); animation: lmu-floor 12s ease-in-out infinite; }
.scn-letter-misunderstood .gondola { position:absolute; bottom:22%; left:30%; right:30%; height:28%; background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 50%, #2a2a2a 100%); border-radius: 40% 40% 60% 60% / 30% 30% 50% 50%; box-shadow: 0 8px 20px rgba(0,0,0,.7); animation: lmu-gondola 8s ease-in-out infinite; }
.scn-letter-misunderstood .figure-montoni { position:absolute; bottom:28%; left:36%; width:20px; height:42px; background: linear-gradient(180deg, #1a2a2a 0%, #0a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; box-shadow: 0 4px 12px rgba(0,0,0,.5); animation: lmu-montoni 5s ease-in-out infinite; }
.scn-letter-misunderstood .figure-emily-t { position:absolute; bottom:26%; left:48%; width:16px; height:36px; background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: lmu-emily-t 4s ease-in-out infinite; }
.scn-letter-misunderstood .candle { position:absolute; bottom:44%; left:52%; width:8px; height:14px; background: radial-gradient(circle at 50% 20%, #ffd080 0%, #b08040 60%, transparent 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 0 20px 6px #c08040, 0 0 40px 12px rgba(192,128,64,.4); animation: lmu-candle 3s ease-in-out infinite alternate; }
.scn-letter-misunderstood .shadow-bars { position:absolute; inset:0; background: repeating-linear-gradient(90deg, rgba(0,0,0,.3) 0px, rgba(0,0,0,.3) 8px, transparent 8px, transparent 20px); animation: lmu-bars 6s ease-in-out infinite alternate; }
@keyframes lmu-wall { 0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes lmu-floor { 0%,100% { transform: translateY(0) } 50% { transform: translateY(1px) } }
@keyframes lmu-gondola { 0%,100% { transform: translateY(0) rotate(0) } 50% { transform: translateY(3px) rotate(1deg) } }
@keyframes lmu-montoni { 0% { transform: translateX(0) translateY(0) rotate(0) } 33% { transform: translateX(4px) translateY(-1px) rotate(1deg) } 66% { transform: translateX(8px) translateY(0) rotate(0) } 100% { transform: translateX(0) translateY(0) rotate(0) } }
@keyframes lmu-emily-t { 0% { transform: translateX(0) translateY(0) rotate(0) } 25% { transform: translateX(-3px) translateY(-1px) rotate(-1deg) } 50% { transform: translateX(-6px) translateY(0) rotate(0) } 75% { transform: translateX(-3px) translateY(-1px) rotate(1deg) } 100% { transform: translateX(0) translateY(0) rotate(0) } }
@keyframes lmu-candle { 0% { transform: scaleY(1); box-shadow: 0 0 16px 4px #c08040, 0 0 32px 8px rgba(192,128,64,.3) } 50% { transform: scaleY(1.08); box-shadow: 0 0 28px 8px #ffd060, 0 0 56px 16px rgba(255,208,96,.5) } 100% { transform: scaleY(1.02); box-shadow: 0 0 20px 5px #c08040, 0 0 40px 10px rgba(192,128,64,.35) } }
@keyframes lmu-bars { 0% { opacity: .5 } 50% { opacity: .8 } 100% { opacity: .6 } }

.scn-brenta-foreboding { background: linear-gradient(180deg, #0a0a1a 0%, #1a1a3e 30%, #3a2a4e 60%, #2a3a4a 100%), radial-gradient(ellipse at 50% 0%, #4a3a5e 0%, transparent 70%); }
.scn-brenta-foreboding .twilight-sky { position:absolute; inset:0 0 40% 0; background: linear-gradient(180deg, #0a0a2a 0%, #1a1a4a 40%, #4a3a5e 70%, #8a6a4a 100%); animation: brf-sky 20s ease-in-out infinite alternate; }
.scn-brenta-foreboding .river-wide { position:absolute; bottom:0; left:0; right:0; height:45%; background: linear-gradient(0deg, #1a2a3a 0%, #2a3a5e 40%, #4a5a7a 80%, #6a6a5a 100%); border-radius: 50% 50% 0 0 / 20% 20% 0 0; box-shadow: inset 0 16px 32px rgba(0,0,0,.5); animation: brf-river 18s ease-in-out infinite alternate; }
.scn-brenta-foreboding .barge-hull { position:absolute; bottom:30%; left:25%; right:25%; height:22%; background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 50%, #3a2a1a 100%); border-radius: 30% 30% 50% 50% / 20% 20% 30% 30%; box-shadow: 0 8px 24px rgba(0,0,0,.6); animation: brf-barge 10s ease-in-out infinite; }
.scn-brenta-foreboding .figure-emily-b { position:absolute; bottom:38%; left:42%; width:16px; height:36px; background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: brf-emily-b 6s ease-in-out infinite; }
.scn-brenta-foreboding .villa-shadow { position:absolute; bottom:42%; left:8%; width:20%; height:30%; background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%); border-radius: 8% 8% 4% 4%; filter: blur(2px); opacity: .5; animation: brf-villa 25s ease-in-out infinite alternate; }
.scn-brenta-foreboding .orange-grove { position:absolute; bottom:40%; right:10%; width:25%; height:28%; background: radial-gradient(ellipse at 30% 60%, #2a3a1a 0%, #1a2a0a 60%, transparent 100%); border-radius: 40% 40% 20% 20%; animation: brf-grove 30s ease-in-out infinite alternate; }
.scn-brenta-foreboding .mast-light { position:absolute; bottom:48%; left:30%; width:6px; height:6px; background: radial-gradient(circle, #ffd080 0%, #b08040 60%, transparent 100%); border-radius: 50%; box-shadow: 0 0 16px 4px #c08040, 0 0 32px 8px rgba(192,128,64,.3); animation: brf-light 4s ease-in-out infinite alternate; }
@keyframes brf-sky { 0% { opacity: .7 } 50% { opacity: 1 } 100% { opacity: .8 } }
@keyframes brf-river { 0% { transform: translateY(0) scaleY(1) } 50% { transform: translateY(3px) scaleY(1.03) } 100% { transform: translateY(0) scaleY(1) } }
@keyframes brf-barge { 0%,100% { transform: translateY(0) rotate(0) } 50% { transform: translateY(2px) rotate(1deg) } }
@keyframes brf-emily-b { 0% { transform: translateX(0) translateY(0) rotate(0) } 33% { transform: translateX(-2px) translateY(-1px) rotate(-1deg) } 66% { transform: translateX(-4px) translateY(0) rotate(0) } 100% { transform: translateX(0) translateY(0) rotate(0) } }
@keyframes brf-villa { 0% { transform: translateY(0) translateX(0) } 50% { transform: translateY(-3px) translateX(2px) } 100% { transform: translateY(0) translateX(0) } }
@keyframes brf-grove { 0% { transform: scale(1) } 50% { transform: scale(1.02) } 100% { transform: scale(1) } }
@keyframes brf-light { 0% { transform: scale(1); opacity: .6 } 50% { transform: scale(1.1); opacity: 1 } 100% { transform: scale(1.05); opacity: .7 } }

.scn-feast-madame-quesnel { background: linear-gradient(180deg, #3a2a1a 0%, #5a4a3a 30%, #6a5a4a 60%, #4a3a2a 100%), radial-gradient(ellipse at 50% 50%, #6a5a4a 0%, transparent 70%); }
.scn-feast-madame-quesnel .feast-wall { position:absolute; inset:0 0 25% 0; background: linear-gradient(180deg, #4a3a2a 0%, #6a5a4a 40%, #5a4a3a 100%); box-shadow: inset 0 8px 20px rgba(0,0,0,.4); animation: fmq-wall 15s ease-in-out infinite alternate; }
.scn-feast-madame-quesnel .table-long { position:absolute; bottom:18%; left:10%; right:10%; height:20%; background: linear-gradient(0deg, #3a2a1a 0%, #5a4a3a 50%, #3a2a1a 100%); border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%; box-shadow: 0 -4px 16px rgba(0,0,0,.5); animation: fmq-table 10s ease-in-out infinite; }
.scn-feast-madame-quesnel .figure-quesnel { position:absolute; bottom:26%; left:28%; width:20px; height:40px; background: linear-gradient(180deg, #2a3a2a 0%, #1a2a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fmq-quesnel 6s ease-in-out infinite; }
.scn-feast-madame-quesnel .figure-montoni-f { position:absolute; bottom:28%; left:42%; width:18px; height:38px; background: linear-gradient(180deg, #1a2a2a 0%, #0a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fmq-montoni-f 5s ease-in-out infinite; }
.scn-feast-madame-quesnel .figure-emily-f { position:absolute; bottom:24%; left:56%; width:16px; height:34px; background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fmq-emily-f 7s ease-in-out infinite; }
.scn-feast-madame-quesnel .gas-lamp { position:absolute; bottom:52%; left:30%; width:10px; height:18px; background: radial-gradient(circle at 50% 30%, #ffd070 0%, #b08030 60%, transparent 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 0 24px 8px #c09040, 0 0 48px 16px rgba(192,144,64,.4); animation: fmq-lamp 4s ease-in-out infinite alternate; }
.scn-feast-madame-quesnel .wine-glasses { position:absolute; bottom:20%; left:38%; width:40%; height:6%; background: repeating-linear-gradient(90deg, transparent 0px, transparent 12px, #6a5a3a 12px, #6a5a3a 14px, transparent 14px, transparent 28px); opacity: .4; animation: fmq-glasses 8s ease-in-out infinite; }
@keyframes fmq-wall { 0% { opacity: .8 } 50% { opacity: 1 } 100% { opacity: .85 } }
@keyframes fmq-table { 0%,100% { transform: translateY(0) } 50% { transform: translateY(2px) } }
@keyframes fmq-quesnel { 0% { transform: translateX(0) translateY(0) rotate(0) } 33% { transform: translateX(3px) translateY(-1px) rotate(1deg) } 66% { transform: translateX(6px) translateY(0) rotate(0) } 100% { transform: translateX(0) translateY(0) rotate(0) } }
@keyframes fmq-montoni-f { 0% { transform: translateX(0) translateY(0) rotate(0) } 25% { transform: translateX(-2px) translateY(-1px) rotate(-1deg) } 50% { transform: translateX(-4px) translateY(0) rotate(0) } 75% { transform: translateX(-2px) translateY(-1px) rotate(1deg) } 100% { transform: translateX(0) translateY(0) rotate(0) } }
@keyframes fmq-emily-f { 0% { transform: translateX(0) translateY(0) rotate(0) } 33% { transform: translateX(-3px) translateY(-1px) rotate(-1deg) } 66% { transform: translateX(-6px) translateY(0) rotate(0) } 100% { transform: translateX(0) translateY(0) rotate(0) } }
@keyframes fmq-lamp { 0% { transform: scaleY(1); box-shadow: 0 0 18px 6px #c09040, 0 0 36px 12px rgba(192,144,64,.3) } 50% { transform: scaleY(1.06); box-shadow: 0 0 30px 10px #ffd060, 0 0 60px 20px rgba(255,208,96,.5) } 100% { transform: scaleY(1.02); box-shadow: 0 0 22px 7px #c09040, 0 0 44px 14px rgba(192,144,64,.35) } }
@keyframes fmq-glasses { 0%,100% { opacity: .3 } 50% { opacity: .6 } }

/* Scene: valancourt-ruin-confession */
.scn-valancourt-ruin-confession {
  background:
    linear-gradient(180deg, #f5e6c8 0%, #e0c9a0 30%, #c8a87a 70%, #a08060 100%),
    radial-gradient(ellipse at 30% 70%, #ffe8a0 0%, transparent 60%);
  box-shadow: inset 0 0 80px rgba(0,0,0,0.15);
}

.scn-valancourt-ruin-confession .bg-wall {
  position: absolute; inset: 0 0 35% 0;
  background: linear-gradient(180deg, #d9c5a8 0%, #b89e7a 100%);
  box-shadow: inset 0 20px 30px rgba(0,0,0,0.2);
}
.scn-valancourt-ruin-confession .window-light {
  position: absolute; top: 15%; left: 65%; width: 80px; height: 120px;
  background: radial-gradient(ellipse at 50% 50%, #fff7e0 0%, #f0d8a0 40%, transparent 70%);
  border-radius: 5px;
  box-shadow: 0 0 60px 20px #f0dca0, 0 0 120px 40px rgba(240,220,160,0.4);
  animation: vrc-light 6s ease-in-out infinite alternate;
}
.scn-valancourt-ruin-confession .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(0deg, #7a5e3e 0%, #9a7a5a 40%, #b09470 100%);
  border-radius: 20% 20% 0 0;
}
.scn-valancourt-ruin-confession .table {
  position: absolute; bottom: 20%; left: 35%; width: 120px; height: 40px;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a10 100%);
  border-radius: 4px;
  transform: perspective(300px) rotateX(8deg);
  box-shadow: 0 4px 12px rgba(0,0,0,0.5);
}
.scn-valancourt-ruin-confession .fig-emily {
  position: absolute; bottom: 22%; left: 30%; width: 24px; height: 60px;
  background: linear-gradient(180deg, #d4ae8a 0%, #a07858 50%, #705040 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: vrc-fig-emily 8s ease-in-out infinite;
}
.scn-valancourt-ruin-confession .fig-valancourt {
  position: absolute; bottom: 22%; left: 58%; width: 26px; height: 62px;
  background: linear-gradient(180deg, #5a5040 0%, #2a2018 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: vrc-fig-val 6s ease-in-out infinite alternate;
}
.scn-valancourt-ruin-confession .shadow-tension {
  position: absolute; bottom: 15%; left: 50%; width: 180px; height: 80px;
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.4) 0%, transparent 70%);
  transform: translateX(-50%) skewX(-10deg);
  animation: vrc-shadow 4s ease-in-out infinite alternate;
}

@keyframes vrc-light {
  0% { opacity: 0.85; box-shadow: 0 0 50px 15px #f0dca0, 0 0 100px 30px rgba(240,220,160,0.3); }
  50% { opacity: 1; box-shadow: 0 0 70px 25px #ffe8b0, 0 0 140px 50px rgba(255,232,176,0.5); }
  100% { opacity: 0.9; box-shadow: 0 0 55px 18px #f0dca0, 0 0 110px 35px rgba(240,220,160,0.35); }
}
@keyframes vrc-fig-emily {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(2px) rotate(2deg); }
  50% { transform: translateX(0) rotate(0deg); }
  75% { transform: translateX(-2px) rotate(-2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes vrc-fig-val {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(-3px) rotate(-3deg); }
  100% { transform: translateX(3px) rotate(3deg); }
}
@keyframes vrc-shadow {
  0% { transform: translateX(-50%) skewX(-10deg) scaleX(1); opacity: 0.6; }
  50% { transform: translateX(-48%) skewX(-12deg) scaleX(1.05); opacity: 0.8; }
  100% { transform: translateX(-52%) skewX(-8deg) scaleX(0.95); opacity: 0.5; }
}

/* Scene: final-parting-tears */
.scn-final-parting-tears {
  background:
    linear-gradient(180deg, #3a4a6a 0%, #4a5a7a 20%, #6a7a9a 40%, #8a9aae 60%, #aabaca 80%),
    radial-gradient(ellipse at 50% 0%, #e0d0b0 0%, transparent 60%);
}

.scn-final-parting-tears .dawn-sky {
  position: absolute; inset: 0 0 60% 0;
  background: linear-gradient(180deg, #b0a0c0 0%, #c0b0d0 30%, #d0c0e0 60%, #e0d0b0 100%);
  animation: fpt-sky 30s ease-in-out infinite alternate;
}
.scn-final-parting-tears .horizon {
  position: absolute; bottom: 40%; left: 0; right: 0; height: 5%;
  background: linear-gradient(180deg, #7a8a9a 0%, #9aaaba 100%);
  border-radius: 50% 50% 0 0;
}
.scn-final-parting-tears .fig-departing {
  position: absolute; bottom: 30%; left: 60%; width: 22px; height: 55px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fpt-depart 12s ease-in-out infinite;
}
.scn-final-parting-tears .fig-remaining {
  position: absolute; bottom: 30%; left: 35%; width: 20px; height: 52px;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fpt-remain 8s ease-in-out infinite alternate;
}
.scn-final-parting-tears .mist {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 40%;
  background: radial-gradient(ellipse at 50% 100%, rgba(180,170,190,0.5) 0%, transparent 70%);
  filter: blur(12px);
  animation: fpt-mist 20s ease-in-out infinite;
}
.scn-final-parting-tears .tears {
  position: absolute; bottom: 35%; left: 38%; width: 4px; height: 4px;
  background: #c0d0e0;
  border-radius: 50%;
  box-shadow: 0 0 8px 2px rgba(192,208,224,0.6);
  animation: fpt-tears 3s ease-in-out infinite;
}

@keyframes fpt-sky {
  0% { opacity: 0.7; background-position: 0% 0%; }
  50% { opacity: 0.9; background-position: 50% 0%; }
  100% { opacity: 0.8; background-position: 100% 0%; }
}
@keyframes fpt-depart {
  0% { transform: translateX(0) translateY(0) scaleX(1); }
  25% { transform: translateX(8px) translateY(-2px) scaleX(0.97); }
  50% { transform: translateX(16px) translateY(-4px) scaleX(0.95); }
  75% { transform: translateX(24px) translateY(-2px) scaleX(0.97); }
  100% { transform: translateX(32px) translateY(0) scaleX(1); opacity: 0.3; }
}
@keyframes fpt-remain {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(-2px) rotate(-5deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes fpt-mist {
  0% { opacity: 0.5; transform: translateY(0) scaleX(1); }
  50% { opacity: 0.8; transform: translateY(-5px) scaleX(1.05); }
  100% { opacity: 0.4; transform: translateY(0) scaleX(1); }
}
@keyframes fpt-tears {
  0% { transform: translateY(0) scale(1); opacity: 0.8; }
  50% { transform: translateY(10px) scale(0.8); opacity: 0.3; }
  100% { transform: translateY(0) scale(1); opacity: 0.8; }
}

/* Scene: death-bed-ghastly-face */
.scn-death-bed-ghastly-face {
  background:
    linear-gradient(180deg, #1a1020 0%, #2a1a30 40%, #3a2a40 70%, #1a1020 100%),
    radial-gradient(ellipse at 50% 60%, #3a2a40 0%, transparent 70%);
}

.scn-death-bed-ghastly-face .dark-room {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #0a0810 0%, #1a1020 50%, #2a1a30 100%);
  animation: dbgf-dark 15s ease-in-out infinite alternate;
}
.scn-death-bed-ghastly-face .bed-frame {
  position: absolute; bottom: 15%; left: 20%; width: 60%; height: 30%;
  background: linear-gradient(180deg, #3a2a20 0%, #1a1010 100%);
  border-radius: 10px;
  box-shadow: 0 0 20px rgba(0,0,0,0.8);
}
.scn-death-bed-ghastly-face .shroud {
  position: absolute; bottom: 18%; left: 28%; width: 44%; height: 20%;
  background: linear-gradient(180deg, #7a6a5a 0%, #5a4a3a 100%);
  border-radius: 50% 50% 20% 20% / 80% 80% 20% 20%;
  filter: blur(2px);
}
.scn-death-bed-ghastly-face .ghastly-face {
  position: absolute; bottom: 32%; left: 42%; width: 16%; height: 14%;
  background: radial-gradient(ellipse at 50% 60%, #c0b0a0 0%, #8a7a6a 50%, transparent 70%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 30px 10px #b0a090, 0 0 60px 20px rgba(176,160,144,0.3);
  animation: dbgf-face 4s ease-in-out infinite alternate;
}
.scn-death-bed-ghastly-face .flicker-glow {
  position: absolute; bottom: 20%; left: 35%; width: 30%; height: 10%;
  background: radial-gradient(ellipse at 50% 50%, rgba(200,180,160,0.15) 0%, transparent 60%);
  filter: blur(15px);
  animation: dbgf-flicker 2s ease-in-out infinite;
}
.scn-death-bed-ghastly-face .shadow-shape {
  position: absolute; bottom: 0; left: 30%; width: 40%; height: 15%;
  background: linear-gradient(180deg, rgba(0,0,0,0.8) 0%, transparent 100%);
  filter: blur(8px);
  animation: dbgf-shadow 6s ease-in-out infinite;
}

@keyframes dbgf-dark {
  0% { opacity: 0.9; }
  50% { opacity: 1; }
  100% { opacity: 0.85; }
}
@keyframes dbgf-face {
  0% { transform: translateY(0) scale(1); opacity: 0.3; box-shadow: 0 0 20px 5px #b0a090; }
  50% { transform: translateY(-5px) scale(1.05); opacity: 0.8; box-shadow: 0 0 40px 15px #c0b0a0; }
  100% { transform: translateY(0) scale(1); opacity: 0.4; box-shadow: 0 0 25px 8px #b0a090; }
}
@keyframes dbgf-flicker {
  0% { opacity: 0.2; transform: scale(1); }
  25% { opacity: 0.5; transform: scale(1.1); }
  50% { opacity: 0.1; transform: scale(0.9); }
  75% { opacity: 0.6; transform: scale(1.05); }
  100% { opacity: 0.2; transform: scale(1); }
}
@keyframes dbgf-shadow {
  0% { transform: translateX(0); opacity: 0.6; }
  50% { transform: translateX(5px); opacity: 0.8; }
  100% { transform: translateX(0); opacity: 0.5; }
}

/* Scene: ludovico-haunted-room */
.scn-ludovico-haunted-room {
  background:
    linear-gradient(180deg, #2a1a10 0%, #1a0a05 40%, #0a0502 100%),
    radial-gradient(ellipse at 30% 70%, #ff6a20 0%, transparent 60%);
}

.scn-ludovico-haunted-room .fireplace-glow {
  position: absolute; bottom: 30%; left: 5%; width: 120px; height: 80px;
  background: radial-gradient(ellipse at 30% 50%, #ff8a40 0%, #ff6a20 30%, #cc4400 60%, transparent 80%);
  border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%;
  animation: lhr-fireglow 3s ease-in-out infinite alternate;
}
.scn-ludovico-haunted-room .wall-dark {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(90deg, #1a0a05 0%, #2a1a10 30%, #3a2a1a 60%, #2a1a10 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,0.6);
}
.scn-ludovico-haunted-room .floor-boards {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(0deg, #1a1008 0%, #2a1a10 50%, #3a2a1a 100%);
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.7);
}
.scn-ludovico-haunted-room .bed-pall {
  position: absolute; bottom: 15%; left: 40%; width: 40%; height: 25%;
  background: linear-gradient(180deg, #1a1018 0%, #0a050a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 0 15px rgba(0,0,0,0.9);
  animation: lhr-pall 10s ease-in-out infinite;
}
.scn-ludovico-haunted-room .fig-ludovico {
  position: absolute; bottom: 25%; left: 15%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a10 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: lhr-fig 4s ease-in-out infinite alternate;
}
.scn-ludovico-haunted-room .fire-flames {
  position: absolute; bottom: 32%; left: 8%; width: 50px; height: 30px;
  background: radial-gradient(ellipse at 50% 100%, #ffcc44 0%, #ff8a20 40%, transparent 70%);
  filter: blur(6px);
  animation: lhr-flames 1.5s ease-in-out infinite alternate;
}
.scn-ludovico-haunted-room .shadow-move {
  position: absolute; bottom: 10%; left: 20%; width: 60%; height: 20%;
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.5) 0%, transparent 70%);
  filter: blur(10px);
  animation: lhr-shadow 8s ease-in-out infinite;
}

@keyframes lhr-fireglow {
  0% { opacity: 0.8; transform: scale(1); box-shadow: 0 0 40px 10px #ff6a20; }
  50% { opacity: 1; transform: scale(1.05); box-shadow: 0 0 60px 20px #ff8a40; }
  100% { opacity: 0.7; transform: scale(0.95); box-shadow: 0 0 30px 5px #ff6a20; }
}
@keyframes lhr-pall {
  0% { transform: translateY(0); }
  50% { transform: translateY(-3px); }
  100% { transform: translateY(0); }
}
@keyframes lhr-fig {
  0% { transform: rotate(0deg) translateX(0); }
  50% { transform: rotate(2deg) translateX(2px); }
  100% { transform: rotate(-2deg) translateX(-2px); }
}
@keyframes lhr-flames {
  0% { transform: scaleY(1) translateY(0); opacity: 0.9; }
  50% { transform: scaleY(1.3) translateY(-2px); opacity: 1; }
  100% { transform: scaleY(0.8) translateY(0); opacity: 0.7; }
}
@keyframes lhr-shadow {
  0% { transform: translateX(0) scale(1); opacity: 0.4; }
  50% { transform: translateX(10px) scale(1.1); opacity: 0.7; }
  100% { transform: translateX(0) scale(1); opacity: 0.3; }
}

.scn-montoni-demand-groans { background: linear-gradient(180deg, #1a1620 0%, #2a1e2a 40%, #1f1218 100%), radial-gradient(ellipse at 60% 30%, #3a2020 0%, transparent 60%); }
.scn-montoni-demand-groans .wall { position:absolute; inset: 0 0 15% 0; background: linear-gradient(135deg, #2a2028 0%, #1a1218 100%); box-shadow: inset 0 0 80px rgba(0,0,0,.7); }
.scn-montoni-demand-groans .floor { position:absolute; bottom:0; left:5%; right:5%; height:15%; background: linear-gradient(180deg, #3a2a22 0%, #1e1410 100%); border-radius: 0 0 20% 20%; box-shadow: 0 -4px 20px rgba(0,0,0,.5); }
.scn-montoni-demand-groans .brazier { position:absolute; bottom:10%; left:20%; width:40px; height:30px; background: radial-gradient(ellipse at 50% 30%, #a05030 0%, #602818 60%, #2a1410 100%); border-radius: 50% 50% 20% 20%; box-shadow: 0 0 40px 10px rgba(160,80,48,.3); animation: mg-brazier 4s ease-in-out infinite alternate; }
.scn-montoni-demand-groans .shadow-montoni { position:absolute; bottom:15%; left:35%; width:120px; height:140px; background: radial-gradient(ellipse 50% 60% at 50% 40%, #0a0608 0%, transparent 70%); transform: skewX(-5deg) scaleX(0.9); animation: mg-figure 6s ease-in-out infinite; }
.scn-montoni-demand-groans .shadow-emily { position:absolute; bottom:15%; left:55%; width:80px; height:110px; background: radial-gradient(ellipse 50% 60% at 50% 40%, #0a0608 0%, transparent 60%); transform: skewX(3deg) scaleX(0.85); animation: mg-figure 8s ease-in-out infinite reverse; }
.scn-montoni-demand-groans .flame { position:absolute; bottom:23%; left:20%; width:12px; height:18px; background: radial-gradient(ellipse at 50% 80%, #ffd060 0%, #ff8030 40%, transparent 70%); filter: blur(2px); animation: mg-flame 1.2s ease-in-out infinite alternate; }
.scn-montoni-demand-groans .crack-light { position:absolute; top:30%; right:8%; width:5px; height:80px; background: linear-gradient(180deg, rgba(255,255,200,0.2) 0%, transparent 100%); transform: rotate(12deg); animation: mg-crack 9s ease-in-out infinite; }
.scn-montoni-demand-groans .door { position:absolute; bottom:15%; left:75%; width:50px; height:80px; background: linear-gradient(180deg, #2e1a14 0%, #1e0e0a 100%); border: 2px solid #3a2218; border-radius: 4px 4px 0 0; box-shadow: inset 0 0 10px rgba(0,0,0,.6); animation: mg-door 10s ease-in-out infinite; }
@keyframes mg-brazier { 0% { transform: translateY(0) scale(1); box-shadow: 0 0 40px 10px rgba(160,80,48,.3); } 50% { transform: translateY(-2px) scale(1.02); box-shadow: 0 0 50px 15px rgba(200,100,60,.4); } 100% { transform: translateY(0) scale(1); box-shadow: 0 0 40px 10px rgba(160,80,48,.3); } }
@keyframes mg-figure { 0% { opacity:0.6; transform: skewX(-3deg) scaleX(0.9); } 50% { opacity:0.9; transform: skewX(2deg) scaleX(1); } 100% { opacity:0.6; transform: skewX(-3deg) scaleX(0.9); } }
@keyframes mg-flame { 0% { transform: scaleY(1) translateY(0); opacity:0.8; } 50% { transform: scaleY(1.3) translateY(-3px); opacity:1; } 100% { transform: scaleY(0.9) translateY(0); opacity:0.7; } }
@keyframes mg-crack { 0% { opacity:0; } 30% { opacity:0.4; } 60% { opacity:0; } 100% { opacity:0; } }
@keyframes mg-door { 0% { transform: translateX(0); } 20% { transform: translateX(-4px); } 60% { transform: translateX(2px); } 100% { transform: translateX(0); } }

.scn-journey-woods-lightning { background: linear-gradient(180deg, #06080a 0%, #0e1014 40%, #14181c 100%), radial-gradient(ellipse at 30% 70%, #1a2026 0%, transparent 60%); }
.scn-journey-woods-lightning .sky-dark { position:absolute; inset:0 0 20% 0; background: linear-gradient(180deg, #0a0c10 0%, #12141a 100%); animation: jwl-sky 10s ease-in-out infinite; }
.scn-journey-woods-lightning .trees { position:absolute; bottom:20%; background: linear-gradient(180deg, #14181e 0%, #080a0c 100%); border-radius: 30% 30% 10% 10%; }
.scn-journey-woods-lightning .far-tree { left:10%; width:12%; height:65%; filter: blur(4px); opacity:0.5; transform: skewX(-5deg); animation: jwl-tree-far 18s linear infinite; }
.scn-journey-woods-lightning .mid-tree { left:35%; width:10%; height:60%; filter: blur(2px); opacity:0.7; transform: skewX(3deg); animation: jwl-tree-mid 14s linear infinite; }
.scn-journey-woods-lightning .near-tree { left:65%; width:14%; height:75%; filter: blur(1px); opacity:0.9; transform: skewX(-4deg); animation: jwl-tree-near 12s linear infinite; }
.scn-journey-woods-lightning .figures { position:absolute; bottom:20%; left:45%; width:40px; height:50px; background: radial-gradient(ellipse 50% 60% at 50% 40%, #0a0c0e 0%, transparent 60%); transform: translateX(-50%); animation: jwl-figures 5s ease-in-out infinite; }
.scn-journey-woods-lightning .lightning-bolt { position:absolute; top:5%; left:30%; width:4px; height:80px; background: linear-gradient(180deg, #ffe8c0 0%, #efd8a0 30%, transparent 70%); filter: blur(1px); animation: jwl-lightning 7s steps(1) infinite; }
.scn-journey-woods-lightning .torch { position:absolute; bottom:35%; left:48%; width:6px; height:20px; background: linear-gradient(180deg, #ffb060 0%, #a04020 100%); border-radius: 30% 30% 10% 10%; box-shadow: 0 0 20px 6px #ffb060; animation: jwl-torch 3s ease-in-out infinite alternate; }
.scn-journey-woods-lightning .ground { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #121416 0%, #080a0c 100%); border-radius: 40% 60% 0 0 / 20% 30% 0 0; }
@keyframes jwl-sky { 0%,100% { opacity:1; } 50% { opacity:0.85; } }
@keyframes jwl-tree-far { 0% { transform: translateX(0) skewX(-5deg); } 50% { transform: translateX(8px) skewX(2deg); } 100% { transform: translateX(0) skewX(-5deg); } }
@keyframes jwl-tree-mid { 0% { transform: translateY(0) skewX(3deg); } 50% { transform: translateY(-4px) skewX(0deg); } 100% { transform: translateY(0) skewX(3deg); } }
@keyframes jwl-tree-near { 0% { transform: scale(1) skewX(-4deg); } 50% { transform: scale(0.95) skewX(0deg); } 100% { transform: scale(1) skewX(-4deg); } }
@keyframes jwl-figures { 0% { opacity:0.2; transform: translateX(-50%) scale(1); } 25% { opacity:0.8; transform: translateX(-50%) scale(1.05); } 60% { opacity:0.3; transform: translateX(-50%) scale(0.95); } 100% { opacity:0.2; transform: translateX(-50%) scale(1); } }
@keyframes jwl-lightning { 0%,90%,100% { opacity:0; } 5% { opacity:0.8; } 10% { opacity:0; } 15% { opacity:0.6; } 20% { opacity:0; } }
@keyframes jwl-torch { 0% { transform: rotate(-5deg) scaleY(1); opacity:0.9; } 50% { transform: rotate(3deg) scaleY(1.1); opacity:1; } 100% { transform: rotate(-5deg) scaleY(1); opacity:0.9; } }

.scn-mountain-brow-cottage { background: linear-gradient(180deg, #1a2a4a 0%, #2a3a5a 40%, #3a4a6a 100%), radial-gradient(ellipse at 70% 15%, #4a6a8a 0%, transparent 60%); }
.scn-mountain-brow-cottage .sky-moon { position:absolute; inset:0 0 30% 0; background: linear-gradient(180deg, #1a2a4a 0%, #2a3a5a 100%); animation: mb-sky 20s ease-in-out infinite alternate; }
.scn-mountain-brow-cottage .moon { position:absolute; top:8%; left:70%; width:40px; height:40px; background: radial-gradient(circle at 45% 40%, #e8f0f8 0%, #c8d8e8 60%, transparent 80%); border-radius:50%; box-shadow: 0 0 40px 20px rgba(200,216,232,.3); animation: mb-moon 15s ease-in-out infinite alternate; }
.scn-mountain-brow-cottage .hills-mountain { position:absolute; bottom:30%; left:0; right:0; height:40%; background: linear-gradient(180deg, #3a4a5a 0%, #2a3a4a 100%); border-radius: 30% 70% 0 0 / 50% 50% 0 0; box-shadow: inset 0 8px 20px rgba(0,0,0,.3); animation: mb-hills 18s ease-in-out infinite alternate; }
.scn-mountain-brow-cottage .cottage-roof { position:absolute; bottom:40%; left:40%; width:100px; height:40px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1e14 100%); clip-path: polygon(5% 100%, 50% 0%, 95% 100%); transform: translateX(-50%); animation: mb-roof 12s ease-in-out infinite; }
.scn-mountain-brow-cottage .cottage-wall { position:absolute; bottom:25%; left:44%; width:80px; height:60px; background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%); border-radius: 4% 4% 8% 8%; box-shadow: 0 4px 12px rgba(0,0,0,.4); transform: translateX(-50%); animation: mb-wall 14s ease-in-out infinite; }
.scn-mountain-brow-cottage .window-glow { position:absolute; bottom:32%; left:46%; width:14px; height:18px; background: radial-gradient(circle at 50% 60%, #f0e0a0 0%, #c8b070 60%, transparent 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 20px 8px rgba(200,176,112,.5); animation: mb-window 4s ease-in-out infinite alternate; }
.scn-mountain-brow-cottage .path { position:absolute; bottom:0; left:48%; width:30px; height:35%; background: linear-gradient(180deg, #4a5038 0%, #2a3020 100%); border-radius: 50% 50% 10% 10% / 20% 20% 40% 40%; transform: translateX(-50%); }
.scn-mountain-brow-cottage .stars { position:absolute; top:5%; left:10%; width:2px; height:2px; background:#e8f0f8; border-radius:50%; box-shadow: 20px 10px 0 #d0e0f0, 40px 25px 0 #e0e8f8, 80px 15px 0 #d8e8f0, 120px 8px 0 #e8f0f8; animation: mb-stars 30s linear infinite; }
@keyframes mb-sky { 0% { opacity:0.9; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes mb-moon { 0% { transform: translate(0,0); box-shadow: 0 0 40px 20px rgba(200,216,232,.3); } 50% { transform: translate(5px,-3px); box-shadow: 0 0 50px 25px rgba(200,216,232,.4); } 100% { transform: translate(0,0); box-shadow: 0 0 40px 20px rgba(200,216,232,.3); } }
@keyframes mb-hills { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(0); } }
@keyframes mb-roof { 0% { transform: translateX(-50%) rotate(0deg); } 50% { transform: translateX(-50%) rotate(1deg); } 100% { transform: translateX(-50%) rotate(0deg); } }
@keyframes mb-wall { 0% { transform: translateX(-50%) scale(1); } 50% { transform: translateX(-50%) scale(1.01); } 100% { transform: translateX(-50%) scale(1); } }
@keyframes mb-window { 0% { box-shadow: 0 0 20px 8px rgba(200,176,112,.5); opacity:0.85; } 50% { box-shadow: 0 0 30px 12px rgba(220,200,140,.7); opacity:1; } 100% { box-shadow: 0 0 20px 8px rgba(200,176,112,.5); opacity:0.85; } }
@keyframes mb-stars { 0% { transform: translateX(0); } 100% { transform: translateX(-200px); } }

.scn-return-pinned-lute { background: linear-gradient(180deg, #14182a 0%, #1e2234 40%, #2a2e40 100%), radial-gradient(ellipse at 30% 20%, #3a3e50 0%, transparent 60%); }
.scn-return-pinned-lute .chamber-wall { position:absolute; inset: 0 0 10% 0; background: linear-gradient(180deg, #1a1e30 0%, #121628 100%); box-shadow: inset 0 0 60px rgba(0,0,0,.5); }
.scn-return-pinned-lute .window-moon { position:absolute; top:20%; right:15%; width:70px; height:50px; background: #2a2e40; border: 2px solid #3a3e50; border-radius: 4px; box-shadow: inset 0 0 20px rgba(100,120,160,.3); animation: rpl-window 12s ease-in-out infinite; }
.scn-return-pinned-lute .bed { position:absolute; bottom:12%; left:10%; width:100px; height:40px; background: linear-gradient(180deg, #2a2a3a 0%, #1a1a28 100%); border-radius: 20% 20% 8% 8%; box-shadow: 0 4px 10px rgba(0,0,0,.4); transform: skewX(-3deg); }
.scn-return-pinned-lute .figure-emily { position:absolute; bottom:14%; left:40%; width:30px; height:50px; background: radial-gradient(ellipse 50% 60% at 50% 40%, #0a0c14 0%, transparent 60%); transform: translateX(-50%); border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%; animation: rpl-emily 8s ease-in-out infinite; }
.scn-return-pinned-lute .door-silhouette { position:absolute; bottom:10%; left:80%; width:40px; height:70px; background: linear-gradient(180deg, #0c0e18 0%, #060810 100%); border-radius: 4px 4px 0 0; box-shadow: -2px 0 8px rgba(0,0,0,.6); animation: rpl-door 15s ease-in-out infinite; }
.scn-return-pinned-lute .candle { position:absolute; bottom:22%; left:60%; width:6px; height:16px; background: linear-gradient(180deg, #e8c0a0 0%, #a07050 100%); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 12px 4px rgba(232,192,160,.4); animation: rpl-candle 3s ease-in-out infinite alternate; }
.scn-return-pinned-lute .shadow-bars { position:absolute; top:20%; right:15%; width:70px; height:50px; background: repeating-linear-gradient(90deg, transparent 0%, transparent 8%, #0a0c14 8%, #0a0c14 12%, transparent 12%); animation: rpl-bars 5s ease-in-out infinite; }
.scn-return-pinned-lute .lute { position:absolute; bottom:18%; left:28%; width:20px; height:30px; background: radial-gradient(ellipse 50% 60% at 50% 50%, #5a3a2a 0%, #3a2218 100%); border-radius: 30% 30% 40% 40%; transform: rotate(-20deg); animation: rpl-lute 6s ease-in-out infinite; }
@keyframes rpl-window { 0% { box-shadow: inset 0 0 20px rgba(100,120,160,.3); } 50% { box-shadow: inset 0 0 30px rgba(120,140,180,.5); } 100% { box-shadow: inset 0 0 20px rgba(100,120,160,.3); } }
@keyframes rpl-emily { 0% { transform: translateX(-50%) rotate(0deg); opacity:0.7; } 25% { transform: translateX(-45%) rotate(2deg); opacity:0.9; } 75% { transform: translateX(-55%) rotate(-2deg); opacity:0.8; } 100% { transform: translateX(-50%) rotate(0deg); opacity:0.7; } }
@keyframes rpl-door { 0% { transform: translateX(0); } 50% { transform: translateX(3px); } 100% { transform: translateX(0); } }
@keyframes rpl-candle { 0% { transform: scaleY(1) rotate(-2deg); box-shadow: 0 0 12px 4px rgba(232,192,160,.4); } 50% { transform: scaleY(1.2) rotate(1deg); box-shadow: 0 0 18px 6px rgba(232,192,160,.6); } 100% { transform: scaleY(1) rotate(-2deg); box-shadow: 0 0 12px 4px rgba(232,192,160,.4); } }
@keyframes rpl-bars { 0% { opacity:0.4; } 50% { opacity:0.8; } 100% { opacity:0.4; } }
@keyframes rpl-lute { 0% { transform: rotate(-20deg) translate(0,0); } 50% { transform: rotate(-15deg) translate(2px,-3px); } 100% { transform: rotate(-20deg) translate(0,0); } }

.scn-banditti-rescue-escape {
  background: 
    linear-gradient(180deg, #0c0c24 0%, #1a1530 40%, #3a2a44 70%, #6a4a3a 100%),
    radial-gradient(ellipse at 50% 100%, #6a4a3a 0%, transparent 60%);
}
.scn-banditti-rescue-escape .dawn-sky {
  position:absolute; inset:0 0 50% 0;
  background: linear-gradient(180deg, #2a1a3a 0%, #6a4a3a 40%, #c08050 70%, #e0b060 100%);
  animation: br1-sky 12s ease-in-out infinite alternate;
}
.scn-banditti-rescue-escape .cliff-left {
  position:absolute; bottom:30%; left:0; width:35%; height:40%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 0 40% 0 0 / 0 80% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,.6);
  animation: br1-cliff 18s ease-in-out infinite;
}
.scn-banditti-rescue-escape .cliff-right {
  position:absolute; bottom:30%; right:0; width:30%; height:45%;
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2a 100%);
  border-radius: 40% 0 0 0 / 80% 0 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,.6);
  animation: br1-cliff 18s ease-in-out infinite reverse;
}
.scn-banditti-rescue-escape .bandit-fig {
  position:absolute; bottom:28%; left:20%; width:20px; height:40px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: br1-run 2.5s ease-in-out infinite;
}
.scn-banditti-rescue-escape .rescuer-fig {
  position:absolute; bottom:28%; left:35%; width:22px; height:42px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a12 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: br1-run 2.8s ease-in-out infinite -0.5s;
}
.scn-banditti-rescue-escape .wounded-fig {
  position:absolute; bottom:27%; left:50%; width:18px; height:36px;
  background: linear-gradient(180deg, #2a1a1a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: br1-limp 4s ease-in-out infinite;
}
.scn-banditti-rescue-escape .dawn-glow {
  position:absolute; bottom:45%; left:50%; width:100px; height:60px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse, rgba(224,176,96,.4) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(10px);
  animation: br1-glow 6s ease-in-out infinite alternate;
}
.scn-banditti-rescue-escape .dust {
  position:absolute; bottom:25%; left:20%; right:20%; height:20px;
  background: radial-gradient(ellipse, rgba(180,140,100,.15) 0%, transparent 80%);
  border-radius: 50%;
  filter: blur(8px);
  animation: br1-dust 3s ease-in-out infinite;
}
@keyframes br1-sky {
  0% { opacity:.6; transform: scaleY(1) }
  50% { opacity:.9; transform: scaleY(1.05) }
  100% { opacity:.7; transform: scaleY(1) }
}
@keyframes br1-cliff {
  0% { transform: translateY(0) scaleY(1) }
  50% { transform: translateY(-3px) scaleY(1.02) }
  100% { transform: translateY(0) scaleY(1) }
}
@keyframes br1-run {
  0% { transform: translateX(0) translateY(0) rotate(-2deg) }
  25% { transform: translateX(8px) translateY(-2px) rotate(2deg) }
  50% { transform: translateX(16px) translateY(0) rotate(-1deg) }
  75% { transform: translateX(24px) translateY(-1px) rotate(1deg) }
  100% { transform: translateX(32px) translateY(0) rotate(0) }
}
@keyframes br1-limp {
  0% { transform: translateX(0) rotate(-3deg) }
  25% { transform: translateX(4px) rotate(1deg) }
  50% { transform: translateX(8px) rotate(-2deg) }
  75% { transform: translateX(12px) rotate(2deg) }
  100% { transform: translateX(16px) rotate(0) }
}
@keyframes br1-glow {
  0% { opacity:.3; transform: translateX(-50%) scale(1) }
  50% { opacity:.7; transform: translateX(-50%) scale(1.2) }
  100% { opacity:.4; transform: translateX(-50%) scale(.9) }
}
@keyframes br1-dust {
  0% { opacity:.1; transform: translateY(0) scale(1) }
  50% { opacity:.3; transform: translateY(-5px) scale(1.3) }
  100% { opacity:.1; transform: translateY(0) scale(1) }
}

.scn-cottage-confrontation-denial {
  background: 
    linear-gradient(180deg, #2a1a1a 0%, #3a2a1a 40%, #2a1a0a 100%),
    radial-gradient(ellipse at 50% 80%, #6a4a2a 0%, transparent 60%);
}
.scn-cottage-confrontation-denial .wall-left {
  position:absolute; inset:0 55% 0 0;
  background: linear-gradient(90deg, #4a3a2a 0%, #3a2a1a 100%);
  box-shadow: inset -4px 0 8px rgba(0,0,0,.5);
}
.scn-cottage-confrontation-denial .wall-right {
  position:absolute; inset:0 0 0 55%;
  background: linear-gradient(90deg, #3a2a1a 0%, #4a3a2a 100%);
  box-shadow: inset 4px 0 8px rgba(0,0,0,.5);
}
.scn-cottage-confrontation-denial .floor {
  position:absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a120a 100%);
  border-radius: 20% 20% 0 0;
}
.scn-cottage-confrontation-denial .window {
  position:absolute; top:20%; left:50%; width:80px; height:60px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #4a5a6a 0%, #2a3a4a 100%);
  border: 3px solid #5a4a3a;
  border-radius: 4px;
  box-shadow: inset 0 0 20px rgba(0,0,0,.4);
  animation: cc2-storm 8s ease-in-out infinite;
}
.scn-cottage-confrontation-denial .fireplace {
  position:absolute; bottom:25%; left:15%; width:60px; height:80px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 10px 10px 0 0;
  box-shadow: inset 0 0 30px rgba(0,0,0,.6);
}
.scn-cottage-confrontation-denial .emily-fig {
  position:absolute; bottom:15%; right:25%; width:20px; height:50px;
  background: linear-gradient(180deg, #3a2a3a 0%, #1a121a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cc2-stand 6s ease-in-out infinite;
}
.scn-cottage-confrontation-denial .valancourt-fig {
  position:absolute; bottom:15%; left:20%; width:22px; height:52px;
  background: linear-gradient(180deg, #2a1a2a 0%, #0a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: cc2-turn 8s ease-in-out infinite;
}
.scn-cottage-confrontation-denial .ring-item {
  position:absolute; bottom:28%; left:35%; width:8px; height:6px;
  background: radial-gradient(circle, #c8a060 0%, #8a6a30 100%);
  border-radius: 50%;
  box-shadow: 0 0 8px 2px rgba(200,160,96,.5);
  animation: cc2-ring 4s ease-in-out infinite;
}
@keyframes cc2-storm {
  0% { opacity:.6; filter: brightness(.8) }
  50% { opacity:.9; filter: brightness(1.1) }
  100% { opacity:.7; filter: brightness(.9) }
}
@keyframes cc2-stand {
  0% { transform: translateY(0) rotate(-1deg) }
  50% { transform: translateY(-2px) rotate(1deg) }
  100% { transform: translateY(0) rotate(-1deg) }
}
@keyframes cc2-turn {
  0% { transform: translateX(0) rotate(0) }
  25% { transform: translateX(-4px) rotate(-3deg) }
  50% { transform: translateX(0) rotate(0) }
  75% { transform: translateX(2px) rotate(2deg) }
  100% { transform: translateX(0) rotate(0) }
}
@keyframes cc2-ring {
  0% { opacity:.5; transform: scale(1) }
  50% { opacity:.9; transform: scale(1.3) }
  100% { opacity:.5; transform: scale(1) }
}

.scn-du-pont-suit-rejected {
  background: 
    linear-gradient(180deg, #87ceeb 0%, #b0d4e8 40%, #d4e8d4 70%, #a0c86a 100%),
    radial-gradient(ellipse at 50% 100%, #a0c86a 0%, transparent 50%);
}
.scn-du-pont-suit-rejected .garden-sky {
  position:absolute; inset:0 0 40% 0;
  background: linear-gradient(180deg, #87ceeb 0%, #b0d4e8 80%);
  animation: dp3-sky 15s ease-in-out infinite alternate;
}
.scn-du-pont-suit-rejected .garden-ground {
  position:absolute; bottom:0; left:0; right:0; height:50%;
  background: linear-gradient(180deg, #a0c86a 0%, #6a9a3a 100%);
  border-radius: 30% 30% 0 0 / 20% 20% 0 0;
}
.scn-du-pont-suit-rejected .hedge-left {
  position:absolute; bottom:35%; left:5%; width:30%; height:40%;
  background: linear-gradient(180deg, #4a7a2a 0%, #2a5a1a 100%);
  border-radius: 50% 50% 0 0;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,.2);
  animation: dp3-sway 8s ease-in-out infinite;
}
.scn-du-pont-suit-rejected .hedge-right {
  position:absolute; bottom:35%; right:5%; width:30%; height:40%;
  background: linear-gradient(180deg, #4a7a2a 0%, #2a5a1a 100%);
  border-radius: 50% 50% 0 0;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,.2);
  animation: dp3-sway 10s ease-in-out infinite -2s;
}
.scn-du-pont-suit-rejected .emily-dupont-fig {
  position:absolute; bottom:20%; left:50%; width:28px; height:56px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #c0a8b0 0%, #9080a0 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 4px 8px rgba(0,0,0,.2);
  animation: dp3-stand 6s ease-in-out infinite;
}
.scn-du-pont-suit-rejected .fountain {
  position:absolute; bottom:30%; left:30%; width:40px; height:50px;
  background: linear-gradient(180deg, #d0d8e0 0%, #a0b0c0 100%);
  border-radius: 10px 10px 0 0;
  box-shadow: inset 0 0 10px rgba(0,0,0,.2);
  animation: dp3-fountain 4s ease-in-out infinite;
}
.scn-du-pont-suit-rejected .flower-cluster {
  position:absolute; bottom:28%; right:20%; width:30px; height:20px;
  background: radial-gradient(circle, #e8a0b0 0%, #c87080 50%, transparent 80%);
  border-radius: 50%;
  animation: dp3-flowers 5s ease-in-out infinite;
}
.scn-du-pont-suit-rejected .distant-chateau {
  position:absolute; bottom:38%; left:50%; width:60px; height:40px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #c0c8d0 0%, #a0a8b8 100%);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,.1);
  animation: dp3-chateau 20s ease-in-out infinite;
}
@keyframes dp3-sky {
  0% { opacity:.8; filter: brightness(.95) }
  50% { opacity:1; filter: brightness(1.05) }
  100% { opacity:.85; filter: brightness(1) }
}
@keyframes dp3-sway {
  0% { transform: rotate(-2deg) scaleY(1) }
  50% { transform: rotate(2deg) scaleY(1.01) }
  100% { transform: rotate(-2deg) scaleY(1) }
}
@keyframes dp3-stand {
  0% { transform: translateX(-50%) translateY(0) rotate(-1deg) }
  50% { transform: translateX(-50%) translateY(-2px) rotate(1deg) }
  100% { transform: translateX(-50%) translateY(0) rotate(-1deg) }
}
@keyframes dp3-fountain {
  0% { transform: scaleY(1); opacity:.8 }
  50% { transform: scaleY(1.05); opacity:1 }
  100% { transform: scaleY(1); opacity:.8 }
}
@keyframes dp3-flowers {
  0% { transform: scale(1); opacity:.7 }
  50% { transform: scale(1.1); opacity:1 }
  100% { transform: scale(1); opacity:.7 }
}
@keyframes dp3-chateau {
  0% { transform: translateX(-50%) scale(1); filter: brightness(.9) }
  50% { transform: translateX(-50%) scale(1.02); filter: brightness(1.1) }
  100% { transform: translateX(-50%) scale(1); filter: brightness(.95) }
}

.scn-laurentini-legacy-revealed {
  background: 
    linear-gradient(180deg, #0a0a1a 0%, #1a1220 40%, #2a1a2a 70%, #1a0a10 100%),
    radial-gradient(ellipse at 50% 80%, #3a2a3a 0%, transparent 60%);
}
.scn-laurentini-legacy-revealed .cell-wall {
  position:absolute; inset:0 25% 0 25%;
  background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 50%, #2a1a2a 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,.6);
}
.scn-laurentini-legacy-revealed .cell-floor {
  position:absolute; bottom:0; left:0; right:0; height:25%;
  background: linear-gradient(180deg, #1a0a1a 0%, #0a000a 100%);
}
.scn-laurentini-legacy-revealed .bed {
  position:absolute; bottom:20%; left:30%; width:40%; height:20%;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a1212 100%);
  border-radius: 5px;
  box-shadow: inset 0 0 20px rgba(0,0,0,.5);
  animation: ll4-bed 12s ease-in-out infinite;
}
.scn-laurentini-legacy-revealed .nun-fig {
  position:absolute; bottom:22%; left:50%; width:24px; height:48px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #2a1a2a 0%, #1a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 10px rgba(0,0,0,.4);
  animation: ll4-nun 8s ease-in-out infinite;
}
.scn-laurentini-legacy-revealed .candle {
  position:absolute; bottom:25%; left:45%; width:4px; height:14px;
  background: linear-gradient(180deg, #e8d8b0 0%, #c8b080 100%);
  border-radius: 1px;
  box-shadow: 0 0 4px 1px rgba(232,216,176,.3);
  animation: ll4-candle 3s ease-in-out infinite;
}
.scn-laurentini-legacy-revealed .candle-glow {
  position:absolute; bottom:22%; left:45%; width:40px; height:40px;
  transform: translate(-50%, -50%);
  background: radial-gradient(circle, rgba(232,216,176,.25) 0%, transparent 70%);
  border-radius: 50%;
  filter: blur(6px);
  animation: ll4-glow 3s ease-in-out infinite alternate;
}
.scn-laurentini-legacy-revealed .letter {
  position:absolute; bottom:28%; left:52%; width:20px; height:14px;
  background: linear-gradient(180deg, #d0c0a0 0%, #b0a080 100%);
  border-radius: 1px;
  box-shadow: 0 2px 4px rgba(0,0,0,.3);
  animation: ll4-letter 6s ease-in-out infinite;
}
.scn-laurentini-legacy-revealed .cross {
  position:absolute; top:15%; left:50%; width:4px; height:20px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #8a7a6a 0%, #6a5a4a 100%);
  border-radius: 1px;
  box-shadow: 0 0 6px rgba(0,0,0,.3);
  animation: ll4-cross 10s ease-in-out infinite;
}
@keyframes ll4-bed {
  0% { transform: translateY(0) scaleY(1) }
  50% { transform: translateY(-2px) scaleY(1.01) }
  100% { transform: translateY(0) scaleY(1) }
}
@keyframes ll4-nun {
  0% { transform: translateX(-50%) translateY(0) rotate(-1deg) }
  50% { transform: translateX(-50%) translateY(-1px) rotate(1deg) }
  100% { transform: translateX(-50%) translateY(0) rotate(-1deg) }
}
@keyframes ll4-candle {
  0% { transform: scaleY(1); opacity:.9 }
  50% { transform: scaleY(1.1); opacity:1 }
  100% { transform: scaleY(1); opacity:.9 }
}
@keyframes ll4-glow {
  0% { opacity:.4; transform: translate(-50%, -50%) scale(1) }
  50% { opacity:.7; transform: translate(-50%, -50%) scale(1.3) }
  100% { opacity:.5; transform: translate(-50%, -50%) scale(.9) }
}
@keyframes ll4-letter {
  0% { transform: rotate(-2deg); opacity:.7 }
  50% { transform: rotate(2deg); opacity:.9 }
  100% { transform: rotate(-2deg); opacity:.7 }
}
@keyframes ll4-cross {
  0% { transform: translateX(-50%) scaleY(1); filter: brightness(.8) }
  50% { transform: translateX(-50%) scaleY(1.02); filter: brightness(1.1) }
  100% { transform: translateX(-50%) scaleY(1); filter: brightness(.9) }
}

/* verses-carved-tower (calm, dawn) */
.scn-verses-carved-tower {
  background:
    linear-gradient(180deg, #3e4a6a 0%, #c58a5c 40%, #e8c16a 70%, #f2dbb0 100%),
    radial-gradient(ellipse at 60% 30%, #f2dbb0 0%, transparent 60%);
}
.scn-verses-carved-tower .dawn-sky {
  position:absolute; inset:0 0 55% 0;
  background: linear-gradient(180deg, #5a7090 0%, #daa56a 60%, #f0d59a 100%);
  animation: vc-sky 20s ease-in-out infinite alternate;
}
.scn-verses-carved-tower .tower {
  position:absolute; bottom:30%; left:38%; width:30%; height:50%;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 4% 4% 0 0; box-shadow: inset -8px 0 12px rgba(0,0,0,.5);
  animation: vc-tower 12s ease-in-out infinite;
}
.scn-verses-carved-tower .tower-top {
  position:absolute; bottom:78%; left:38%; width:30%; height:8%;
  background: linear-gradient(90deg, #5a4a3a, #4a3a2a, #5a4a3a);
  border-radius: 30% 30% 0 0; clip-path: polygon(5% 0%, 95% 0%, 100% 100%, 0% 100%);
  animation: vc-breathe 6s ease-in-out infinite;
}
.scn-verses-carved-tower .carved-wall {
  position:absolute; bottom:65%; left:50%; width:15%; height:15%;
  transform: translateX(-50%);
  background: repeating-linear-gradient(0deg, #3a2a1a 0px, #3a2a1a 3px, #5a4a3a 3px, #5a4a3a 6px);
  border-radius: 2px; box-shadow: 0 2px 6px rgba(0,0,0,.6);
  animation: vc-carve 8s ease-in-out infinite;
}
.scn-verses-carved-tower .figure-emily {
  position:absolute; bottom:28%; left:52%; width:8%; height:22%;
  background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: vc-figure 4s ease-in-out infinite;
}
.scn-verses-carved-tower .promontory {
  position:absolute; bottom:10%; left:10%; width:80%; height:25%;
  background: linear-gradient(180deg, #5a6a3a 0%, #3a4a2a 100%);
  border-radius: 60% 40% 0 0 / 80% 70% 0 0; box-shadow: inset 0 10px 20px rgba(0,0,0,.3);
  animation: vc-sway 16s ease-in-out infinite alternate;
}
.scn-verses-carved-tower .cloud-slow {
  position:absolute; top:12%; left:10%; width:30%; height:6%;
  background: linear-gradient(90deg, rgba(255,240,220,.6), rgba(255,240,220,.1));
  border-radius: 50%; filter: blur(7px);
  animation: vc-drift1 50s linear infinite;
}
.scn-verses-carved-tower .cloud-slow-2 {
  position:absolute; top:22%; right:5%; width:25%; height:5%;
  background: linear-gradient(90deg, rgba(255,240,220,.4), rgba(255,240,220,.05));
  border-radius: 50%; filter: blur(6px);
  animation: vc-drift2 60s linear infinite reverse;
}
@keyframes vc-sky { 0% { opacity:0.7 } 50% { opacity:0.9 } 100% { opacity:0.75 } }
@keyframes vc-tower { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }
@keyframes vc-breathe { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } }
@keyframes vc-carve { 0% { opacity:0.6 } 50% { opacity:0.9 } 100% { opacity:0.6 } }
@keyframes vc-figure { 0% { transform: translateX(0) rotate(0deg) } 25% { transform: translateX(2%) rotate(-2deg) } 75% { transform: translateX(-1%) rotate(1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes vc-sway { 0% { transform: translateY(0) } 100% { transform: translateY(-4px) } }
@keyframes vc-drift1 { 0% { transform: translateX(-30vw) } 100% { transform: translateX(110vw) } }
@keyframes vc-drift2 { 0% { transform: translateX(0) } 100% { transform: translateX(-120vw) } }

/* sister-agnes-story (dark, dim-interior) */
.scn-sister-agnes-story {
  background:
    linear-gradient(180deg, #1a1210 0%, #2a1a15 40%, #1e0e0a 100%),
    radial-gradient(ellipse at 30% 60%, #3a2a1a 0%, transparent 60%);
}
.scn-sister-agnes-story .convent-bg {
  position:absolute; inset:0;
  background: linear-gradient(90deg, #1a1210 0%, #2a1a15 30%, #1a1210 100%);
  animation: sa-bg 15s ease-in-out infinite alternate;
}
.scn-sister-agnes-story .window-bars {
  position:absolute; top:15%; left:60%; width:15%; height:30%;
  border: 2px solid #4a3a2a; border-radius: 5px;
  background: radial-gradient(ellipse at 50% 50%, #5a4a3a 0%, #1a1210 100%);
  box-shadow: inset 0 0 20px 5px #0a0a0a;
  animation: sa-bars 6s ease-in-out infinite;
}
.scn-sister-agnes-story .candle-flame {
  position:absolute; bottom:35%; left:35%; width:4%; height:10%;
  background: radial-gradient(circle, #f0c060 0%, #b08040 50%, transparent 80%);
  border-radius: 50%; box-shadow: 0 0 30px 10px #c08040, 0 0 60px 20px rgba(192,128,64,.3);
  animation: sa-candle 3s ease-in-out infinite alternate;
}
.scn-sister-agnes-story .table-wood {
  position:absolute; bottom:20%; left:30%; width:40%; height:12%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1e1008 100%);
  border-radius: 8px 8px 0 0;
  animation: sa-table 8s ease-in-out infinite;
}
.scn-sister-agnes-story .agnes-figure {
  position:absolute; bottom:18%; left:42%; width:14%; height:35%;
  background: linear-gradient(180deg, #1e1210 0%, #0e0806 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  transform-origin: bottom center;
  animation: sa-agnes 4s ease-in-out infinite;
}
.scn-sister-agnes-story .shadow-swing {
  position:absolute; bottom:10%; left:20%; width:50%; height:40%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.6) 100%);
  clip-path: polygon(10% 0%, 90% 0%, 80% 100%, 20% 100%);
  animation: sa-shadow 7s ease-in-out infinite;
}
@keyframes sa-bg { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes sa-bars { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(1.03) } }
@keyframes sa-candle { 0% { transform: scale(0.9); opacity:0.7 } 50% { transform: scale(1.05); opacity:1 } 100% { transform: scale(0.95); opacity:0.85 } }
@keyframes sa-table { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-1px) } }
@keyframes sa-agnes { 0% { transform: translateX(0) translateY(0) rotate(-3deg) } 30% { transform: translateX(2%) translateY(-2%) rotate(0deg) } 60% { transform: translateX(-1%) translateY(-1%) rotate(4deg) } 100% { transform: translateX(0) translateY(0) rotate(-3deg) } }
@keyframes sa-shadow { 0% { transform: translateX(0) scaleY(1) } 50% { transform: translateX(5%) scaleY(1.1) } 100% { transform: translateX(-5%) scaleY(0.9) } }

/* thoulouse-memories-gardener (tense, dim-interior) */
.scn-thoulouse-memories-gardener {
  background:
    linear-gradient(180deg, #1e1418 0%, #2a1a1c 30%, #1a0e10 100%),
    radial-gradient(ellipse at 40% 40%, #3a2020 0%, transparent 70%);
}
.scn-thoulouse-memories-gardener .room-wall {
  position:absolute; inset:0;
  background: linear-gradient(90deg, #2a1a1c 0%, #1a0e10 50%, #2a1a1c 100%);
  animation: tm-wall 18s ease-in-out infinite alternate;
}
.scn-thoulouse-memories-gardener .window-frame {
  position:absolute; top:15%; left:20%; width:25%; height:40%;
  border: 3px solid #2a1a10; border-radius: 10px;
  background: radial-gradient(ellipse at 50% 30%, #5a4a3a 0%, #1a0e10 100%);
  box-shadow: inset 0 0 30px 5px #0e0806;
  animation: tm-window 3s ease-in-out infinite;
}
.scn-thoulouse-memories-gardener .terrace-glass {
  position:absolute; top:20%; left:22%; width:21%; height:30%;
  background: linear-gradient(180deg, rgba(200,180,160,.15) 0%, rgba(200,180,160,.05) 100%);
  clip-path: polygon(0% 0%, 100% 0%, 90% 100%, 10% 100%);
  animation: tm-glass 2s ease-in-out infinite alternate;
}
.scn-thoulouse-memories-gardener .emily-figure {
  position:absolute; bottom:30%; left:55%; width:10%; height:25%;
  background: linear-gradient(180deg, #1a1210 0%, #0e0806 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: tm-emily 4s ease-in-out infinite;
}
.scn-thoulouse-memories-gardener .chair-shape {
  position:absolute; bottom:22%; left:62%; width:12%; height:18%;
  background: linear-gradient(180deg, #2a1a10 0%, #1a0e08 100%);
  border-radius: 10% 10% 20% 20%; box-shadow: 2px 0 6px rgba(0,0,0,.5);
  animation: tm-chair 6s ease-in-out infinite;
}
.scn-thoulouse-memories-gardener .shadow-tremor {
  position:absolute; inset:0;
  background: repeating-linear-gradient(0deg, transparent 0%, rgba(0,0,0,.2) 50%, transparent 100%);
  mix-blend-mode: multiply; pointer-events: none;
  animation: tm-tremor 1.5s ease-in-out infinite;
}
.scn-thoulouse-memories-gardener .flicker-light {
  position:absolute; top:10%; left:40%; width:3%; height:8%;
  background: radial-gradient(circle, #d08040 0%, #a06030 50%, transparent 80%);
  border-radius: 50%; box-shadow: 0 0 20px 8px #b06030;
  animation: tm-flicker 0.8s ease-in-out infinite alternate;
}
@keyframes tm-wall { 0% { opacity:0.85 } 100% { opacity:1 } }
@keyframes tm-window { 0%,100% { transform: scale(1) } 50% { transform: scale(1.02) } }
@keyframes tm-glass { 0% { opacity:0.3; transform: scaleX(1) } 100% { opacity:0.6; transform: scaleX(0.96) } }
@keyframes tm-emily { 0% { transform: translateX(0) rotate(0deg) } 20% { transform: translateX(3%) rotate(-2deg) } 40% { transform: translateX(-2%) rotate(1deg) } 60% { transform: translateX(1%) rotate(-1deg) } 100% { transform: translateX(0) rotate(0deg) } }
@keyframes tm-chair { 0%,100% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-2px) rotate(2deg) } }
@keyframes tm-tremor { 0% { transform: translate(0,0) } 25% { transform: translate(1px,-1px) } 50% { transform: translate(-1px,0) } 75% { transform: translate(1px,1px) } 100% { transform: translate(0,0) } }
@keyframes tm-flicker { 0% { opacity:0.6; transform: scale(0.9) } 100% { opacity:1; transform: scale(1.1) } }

/* theresa-revelation-sorrow (dark, dim-interior) */
.scn-theresa-revelation-sorrow {
  background:
    linear-gradient(180deg, #0e0a14 0%, #1a121e 40%, #0a060a 100%),
    radial-gradient(ellipse at 50% 80%, #2a1a2e 0%, transparent 70%);
}
.scn-theresa-revelation-sorrow .dark-room {
  position:absolute; inset:0;
  background: linear-gradient(180deg, #0e0a14 0%, #1a121e 60%, #0a060a 100%);
  animation: tr-room 20s ease-in-out infinite alternate;
}
.scn-theresa-revelation-sorrow .bed-couch {
  position:absolute; bottom:10%; left:20%; width:60%; height:30%;
  background: linear-gradient(180deg, #2a1e2a 0%, #1a0e1a 100%);
  border-radius: 20% 20% 10% 10% / 30% 30% 10% 10%;
  box-shadow: inset 0 10px 20px rgba(0,0,0,.6);
  animation: tr-bed 15s ease-in-out infinite;
}
.scn-theresa-revelation-sorrow .grief-figure {
  position:absolute; bottom:28%; left:45%; width:12%; height:28%;
  background: linear-gradient(180deg, #1e1420 0%, #0e0810 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 30% 30%;
  transform-origin: 50% 100%;
  animation: tr-grief 6s ease-in-out infinite;
}
.scn-theresa-revelation-sorrow .letter-scroll {
  position:absolute; bottom:42%; left:52%; width:6%; height:2%;
  background: linear-gradient(90deg, #d0c080 0%, #b0a060 100%);
  border-radius: 50%; box-shadow: 0 2px 4px rgba(0,0,0,.5);
  animation: tr-letter 8s ease-in-out infinite;
}
.scn-theresa-revelation-sorrow .dying-candle {
  position:absolute; bottom:50%; left:35%; width:2%; height:8%;
  background: radial-gradient(circle at 50% 20%, #f0a060 0%, #b06030 60%, transparent 100%);
  border-radius: 50%; box-shadow: 0 0 15px 5px #a05020;
  animation: tr-candle 4s ease-in-out infinite alternate;
}
.scn-theresa-revelation-sorrow .night-window {
  position:absolute; top:10%; right:10%; width:15%; height:25%;
  border: 2px solid #2a1e2a; border-radius: 5px;
  background: linear-gradient(180deg, #0e0a14 0%, #1a121e 100%);
  box-shadow: inset 0 0 10px 2px #000;
  animation: tr-window 12s ease-in-out infinite;
}
.scn-theresa-revelation-sorrow .tear-drop {
  position:absolute; bottom:36%; left:44%; width:2%; height:3%;
  background: radial-gradient(circle, #c0b8c8 0%, #807880 100%);
  border-radius: 50%; opacity:0.6;
  animation: tr-tear 2s ease-in-out infinite;
}
@keyframes tr-room { 0% { opacity:0.8 } 50% { opacity:0.95 } 100% { opacity:0.75 } }
@keyframes tr-bed { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes tr-grief { 0% { transform: translate(0,0) rotate(0deg) } 25% { transform: translate(1%,-1%) rotate(-3deg) } 50% { transform: translate(-1%,0) rotate(2deg) } 75% { transform: translate(0, -2%) rotate(-1deg) } 100% { transform: translate(0,0) rotate(0deg) } }
@keyframes tr-letter { 0%,100% { transform: translateY(0) rotate(0deg); opacity:0.6 } 50% { transform: translateY(-5%) rotate(10deg); opacity:0.9 } }
@keyframes tr-candle { 0% { transform: scaleY(0.9); opacity:0.5 } 50% { transform: scaleY(1.05); opacity:0.8 } 100% { transform: scaleY(0.85); opacity:0.3 } }
@keyframes tr-window { 0%,100% { opacity:0.7 } 50% { opacity:0.9 } }
@keyframes tr-tear { 0% { transform: translateY(0) scale(1); opacity:0.6 } 100% { transform: translateY(200%) scale(0.5); opacity:0 } }

.scn-item-miniature-portrait {
  background: 
    linear-gradient(135deg, #1a1423 0%, #2a1e32 40%, #1f172a 70%, #0f0a16 100%),
    radial-gradient(ellipse at 30% 50%, #3a284a 0%, transparent 60%);
}
.scn-item-miniature-portrait .wall {
  position:absolute; inset:0 0 25% 0;
  background: linear-gradient(90deg, #1a1423 0%, #2a1e32 20%, #2a1e32 80%, #1a1423 100%);
  animation: imp-wall 20s ease-in-out infinite alternate;
}
.scn-item-miniature-portrait .corridor-bg {
  position:absolute; inset:10% 10% 25% 10%;
  background: linear-gradient(180deg, #0f0a16 0%, #1a1423 50%, #2a1e32 100%);
  border-radius: 0 0 30% 30%;
  animation: imp-corridor 15s ease-in-out infinite alternate;
}
.scn-item-miniature-portrait .floor {
  position:absolute; bottom:0; left:0; right:0; height:25%;
  background: linear-gradient(0deg, #0f0a16 0%, #1a1423 100%);
  box-shadow: inset 0 20px 30px rgba(0,0,0,.6);
}
.scn-item-miniature-portrait .figure-a {
  position:absolute; bottom:20%; left:30%; width:22px; height:80px;
  background: linear-gradient(180deg, #2a1e32 0%, #0f0a16 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: imp-figure-a 6s ease-in-out infinite;
}
.scn-item-miniature-portrait .figure-b {
  position:absolute; bottom:20%; right:30%; width:22px; height:80px;
  background: linear-gradient(180deg, #3a284a 0%, #1a1423 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: imp-figure-b 8s ease-in-out infinite alternate;
}
.scn-item-miniature-portrait .miniature {
  position:absolute; bottom:45%; left:48%; width:16px; height:22px;
  background: radial-gradient(circle, #c88040 0%, #8a5a2a 60%, #4a2a1a 100%);
  border-radius: 4px;
  box-shadow: 0 0 20px 6px rgba(200,128,64,.5), 0 0 40px 12px rgba(200,128,64,.2);
  animation: imp-miniature 4s ease-in-out infinite alternate;
  z-index: 5;
}
.scn-item-miniature-portrait .candle {
  position:absolute; bottom:40%; left:45%; width:4px; height:16px;
  background: linear-gradient(180deg, #ffd080 0%, #c88040 100%);
  border-radius: 2px;
  box-shadow: 0 0 12px 4px rgba(255,208,128,.6);
  animation: imp-candle 3s ease-in-out infinite alternate;
}
.scn-item-miniature-portrait .shadow-a {
  position:absolute; bottom:20%; left:25%; width:40px; height:10px;
  background: radial-gradient(ellipse, rgba(0,0,0,.5) 0%, transparent 100%);
  border-radius: 50%;
  animation: imp-shadow-a 6s ease-in-out infinite;
}
.scn-item-miniature-portrait .shadow-b {
  position:absolute; bottom:20%; right:25%; width:40px; height:10px;
  background: radial-gradient(ellipse, rgba(0,0,0,.5) 0%, transparent 100%);
  border-radius: 50%;
  animation: imp-shadow-b 8s ease-in-out infinite alternate;
}
@keyframes imp-wall { 0% { opacity:.8 } 50% { opacity:.95 } 100% { opacity:.85 } }
@keyframes imp-corridor { 0% { opacity:.6 } 50% { opacity:.8 } 100% { opacity:.65 } }
@keyframes imp-figure-a { 0% { transform: translateX(0) rotate(-2deg) } 25% { transform: translateX(-4px) rotate(2deg) } 50% { transform: translateX(0) rotate(-1deg) } 75% { transform: translateX(4px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes imp-figure-b { 0% { transform: translateX(0) translateY(0) } 50% { transform: translateX(3px) translateY(-3px) } 100% { transform: translateX(0) translateY(0) } }
@keyframes imp-miniature { 0% { opacity:.7; box-shadow: 0 0 15px 4px rgba(200,128,64,.4), 0 0 30px 8px rgba(200,128,64,.15) } 50% { opacity:1; box-shadow: 0 0 30px 10px rgba(200,128,64,.7), 0 0 60px 20px rgba(200,128,64,.3) } 100% { opacity:.8; box-shadow: 0 0 20px 6px rgba(200,128,64,.5), 0 0 40px 12px rgba(200,128,64,.2) } }
@keyframes imp-candle { 0% { transform: scaleY(1); opacity:.8 } 50% { transform: scaleY(1.1); opacity:1 } 100% { transform: scaleY(.95); opacity:.75 } }
@keyframes imp-shadow-a { 0% { transform: scaleX(1); opacity:.3 } 50% { transform: scaleX(1.2); opacity:.5 } 100% { transform: scaleX(.9); opacity:.35 } }
@keyframes imp-shadow-b { 0% { transform: scaleX(1); opacity:.2 } 50% { transform: scaleX(1.3); opacity:.45 } 100% { transform: scaleX(.95); opacity:.3 } }

.scn-chateau-blanc-arrival {
  background: 
    linear-gradient(180deg, #0a1628 0%, #152040 30%, #1a2a50 60%, #0f1a30 100%),
    radial-gradient(ellipse at 50% 0%, #203060 0%, transparent 60%);
}
.scn-chateau-blanc-arrival .sky {
  position:absolute; inset:0 0 30% 0;
  background: linear-gradient(180deg, #0a1628 0%, #152040 50%, #1a2a50 100%);
  animation: cba-sky 20s ease-in-out infinite alternate;
}
.scn-chateau-blanc-arrival .moon {
  position:absolute; top:8%; right:25%; width:40px; height:40px;
  background: radial-gradient(circle, #d0d8e8 0%, #a0b0d0 60%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(160,176,208,.4), 0 0 60px 20px rgba(160,176,208,.15);
  animation: cba-moon 30s ease-in-out infinite alternate;
}
.scn-chateau-blanc-arrival .stars {
  position:absolute; inset:0 0 30% 0;
  background: radial-gradient(2px 2px at 20% 15%, #ffffff 0%, transparent 100%),
              radial-gradient(2px 2px at 40% 8%, #ffffff 0%, transparent 100%),
              radial-gradient(1px 1px at 60% 20%, #ffffff 0%, transparent 100%),
              radial-gradient(2px 2px at 80% 12%, #ffffff 0%, transparent 100%),
              radial-gradient(1px 1px at 10% 25%, #ffffff 0%, transparent 100%),
              radial-gradient(2px 2px at 70% 5%, #ffffff 0%, transparent 100%),
              radial-gradient(1px 1px at 50% 18%, #ffffff 0%, transparent 100%);
  animation: cba-stars 25s linear infinite alternate;
}
.scn-chateau-blanc-arrival .chateau {
  position:absolute; bottom:30%; left:20%; right:20%; height:40%;
  background: 
    linear-gradient(180deg, #2a3a5a 0%, #1a2a4a 40%, #152040 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: inset 0 -10px 30px rgba(0,0,0,.5);
  animation: cba-chateau 15s ease-in-out infinite alternate;
}
.scn-chateau-blanc-arrival .tower-left {
  position:absolute; bottom:30%; left:18%; width:12%; height:55%;
  background: linear-gradient(180deg, #2a3a5a 0%, #1a2a4a 60%, #152040 100%);
  border-radius: 10% 10% 4% 4%;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,.4);
  animation: cba-tower-l 18s ease-in-out infinite alternate;
}
.scn-chateau-blanc-arrival .tower-right {
  position:absolute; bottom:30%; right:18%; width:12%; height:50%;
  background: linear-gradient(180deg, #2a3a5a 0%, #1a2a4a 60%, #152040 100%);
  border-radius: 10% 10% 4% 4%;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,.4);
  animation: cba-tower-r 18s ease-in-out infinite alternate;
  animation-delay: -6s;
}
.scn-chateau-blanc-arrival .window-glow {
  position:absolute; bottom:42%; left:42%; width:8%; height:10%;
  background: radial-gradient(circle, #c0a060 0%, #8a6a3a 50%, transparent 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 20px 6px rgba(192,160,96,.5), 0 0 40px 12px rgba(192,160,96,.2);
  animation: cba-window 6s ease-in-out infinite alternate;
}
.scn-chateau-blanc-arrival .carriage {
  position:absolute; bottom:26%; left:55%; width:40px; height:18px;
  background: linear-gradient(135deg, #3a2a1a 0%, #1a1208 100%);
  border-radius: 20% 20% 30% 30%;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
  animation: cba-carriage 12s ease-in-out infinite;
}
.scn-chateau-blanc-arrival .figure {
  position:absolute; bottom:25%; left:58%; width:10px; height:22px;
  background: linear-gradient(180deg, #2a3a5a 0%, #1a2a4a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: cba-figure 8s ease-in-out infinite alternate;
}
@keyframes cba-sky { 0% { opacity:.7 } 50% { opacity:.9 } 100% { opacity:.75 } }
@keyframes cba-moon { 0% { transform: translateY(0) scale(1); opacity:.8 } 50% { transform: translateY(-5px) scale(1.05); opacity:1 } 100% { transform: translateY(0) scale(.95); opacity:.85 } }
@keyframes cba-stars { 0% { opacity:.4 } 50% { opacity:.7 } 100% { opacity:.5 } }
@keyframes cba-chateau { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(1) } }
@keyframes cba-tower-l { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.03) } 100% { transform: scaleY(1) } }
@keyframes cba-tower-r { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.03) } 100% { transform: scaleY(1) } }
@keyframes cba-window { 0% { opacity:.6; transform: scaleX(1) } 50% { opacity:1; transform: scaleX(1.1) } 100% { opacity:.7; transform: scaleX(.95) } }
@keyframes cba-carriage { 0% { transform: translateX(0) translateY(0) } 25% { transform: translateX(-8px) translateY(-2px) } 50% { transform: translateX(-16px) translateY(0) } 75% { transform: translateX(-8px) translateY(-1px) } 100% { transform: translateX(0) translateY(0) } }
@keyframes cba-figure { 0% { transform: translateX(0) rotate(-2deg) } 50% { transform: translateX(3px) rotate(2deg) } 100% { transform: translateX(0) rotate(0) } }

.scn-storm-shipwreck-emily {
  background: 
    linear-gradient(180deg, #1a1a2e 0%, #2a1a2e 30%, #1a2a3a 60%, #0a1a2a 100%),
    radial-gradient(ellipse at 80% 30%, #3a2a3a 0%, transparent 60%);
}
.scn-storm-shipwreck-emily .sky-storm {
  position:absolute; inset:0 0 40% 0;
  background: linear-gradient(180deg, #1a1a2e 0%, #2a1a2e 40%, #1a2a3a 80%, #0a1a2a 100%);
  animation: sse-sky 10s ease-in-out infinite alternate;
}
.scn-storm-shipwreck-emily .lightning {
  position:absolute; top:5%; left:30%; width:4px; height:40px;
  background: linear-gradient(180deg, #ffffff 0%, #8080a0 100%);
  border-radius: 2px;
  filter: blur(1px);
  box-shadow: 0 0 30px 10px rgba(255,255,255,.6), 0 0 60px 20px rgba(255,255,255,.2);
  animation: sse-lightning 4s ease-in-out infinite;
}
.scn-storm-shipwreck-emily .sea {
  position:absolute; bottom:30%; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 50%, #0a121a 100%);
  box-shadow: inset 0 10px 20px rgba(0,0,0,.5);
  animation: sse-sea 12s ease-in-out infinite alternate;
}
.scn-storm-shipwreck-emily .ship {
  position:absolute; bottom:30%; left:40%; width:50px; height:30px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1208 100%);
  border-radius: 10% 40% 20% 10%;
  transform: rotate(-5deg);
  box-shadow: 0 4px 8px rgba(0,0,0,.6);
  animation: sse-ship 5s ease-in-out infinite;
}
.scn-storm-shipwreck-emily .mast {
  position:absolute; bottom:30%; left:44%; width:3px; height:50px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a1208 100%);
  transform: rotate(-8deg);
  transform-origin: bottom center;
  animation: sse-mast 5s ease-in-out infinite;
}
.scn-storm-shipwreck-emily .wave-fg {
  position:absolute; bottom:20%; left:0; right:0; height:15%;
  background: linear-gradient(180deg, #1a2a3a 0%, #0a1a2a 100%);
  border-radius: 60% 40% 30% 50% / 40% 50% 30% 60%;
  animation: sse-wave 8s ease-in-out infinite alternate;
}
.scn-storm-shipwreck-emily .rock {
  position:absolute; bottom:25%; right:20%; width:30px; height:20px;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 40% 40% 20% 20%;
  box-shadow: 0 4px 6px rgba(0,0,0,.4);
  animation: sse-rock 12s ease-in-out infinite alternate;
}
.scn-storm-shipwreck-emily .figure-emily {
  position:absolute; bottom:22%; left:20%; width:14px; height:28px;
  background: linear-gradient(180deg, #2a1a3a 0%, #1a0a2a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  animation: sse-figure 6s ease-in-out infinite alternate;
}
.scn-storm-shipwreck-emily .spray {
  position:absolute; bottom:30%; left:35%; width:20px; height:10px;
  background: radial-gradient(ellipse, rgba(200,200,220,.4) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(3px);
  animation: sse-spray 3s ease-in-out infinite;
}
@keyframes sse-sky { 0% { opacity:.6 } 50% { opacity:.9 } 100% { opacity:.7 } }
@keyframes sse-lightning { 0% { opacity:0 } 10% { opacity:1 } 15% { opacity:0 } 25% { opacity:.8 } 30% { opacity:0 } 100% { opacity:0 } }
@keyframes sse-sea { 0% { transform: translateY(0) } 50% { transform: translateY(3px) } 100% { transform: translateY(0) } }
@keyframes sse-ship { 0% { transform: rotate(-5deg) translateY(0) } 25% { transform: rotate(-8deg) translateY(2px) } 50% { transform: rotate(-3deg) translateY(-1px) } 75% { transform: rotate(-7deg) translateY(1px) } 100% { transform: rotate(-5deg) translateY(0) } }
@keyframes sse-mast { 0% { transform: rotate(-8deg) } 25% { transform: rotate(-11deg) } 50% { transform: rotate(-5deg) } 75% { transform: rotate(-9deg) } 100% { transform: rotate(-8deg) } }
@keyframes sse-wave { 0% { transform: translateX(0) scaleY(1) } 50% { transform: translateX(-10px) scaleY(1.1) } 100% { transform: translateX(0) scaleY(1) } }
@keyframes sse-rock { 0% { transform: translateY(0) } 50% { transform: translateY(2px) } 100% { transform: translateY(0) } }
@keyframes sse-figure { 0% { transform: translateX(0) rotate(-2deg) } 50% { transform: translateX(5px) rotate(2deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes sse-spray { 0% { opacity:.3; transform: translateY(0) scale(1) } 50% { opacity:.7; transform: translateY(-5px) scale(1.2) } 100% { opacity:.3; transform: translateY(0) scale(1) } }

.scn-miniature-recognition {
  background: 
    linear-gradient(180deg, #1a1220 0%, #2a1a30 30%, #1f1428 60%, #0f0a14 100%),
    radial-gradient(ellipse at 30% 40%, #3a2040 0%, transparent 60%);
}
.scn-miniature-recognition .room-bg {
  position:absolute; inset:0 0 20% 0;
  background: linear-gradient(135deg, #1a1220 0%, #2a1a30 40%, #1f1428 80%, #0f0a14 100%);
  animation: mir-room 20s ease-in-out infinite alternate;
}
.scn-miniature-recognition .table {
  position:absolute; bottom:18%; left:30%; right:30%; height:8%;
  background: linear-gradient(180deg, #2a1a20 0%, #1a0a10 100%);
  border-radius: 4% 4% 8% 8%;
  box-shadow: 0 6px 12px rgba(0,0,0,.5);
  animation: mir-table 15s ease-in-out infinite alternate;
}
.scn-miniature-recognition .candle-pair {
  position:absolute; bottom:28%; left:38%; width:6px; height:18px;
  background: linear-gradient(180deg, #d0a050 0%, #8a6020 100%);
  border-radius: 2px;
  box-shadow: 0 0 12px 4px rgba(208,160,80,.5);
  animation: mir-candle 4s ease-in-out infinite alternate;
}
.scn-miniature-recognition .figure-dorothee {
  position:absolute; bottom:18%; left:35%; width:24px; height:75px;
  background: linear-gradient(180deg, #3a2030 0%, #1a1020 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mir-dorothee 7s ease-in-out infinite;
}
.scn-miniature-recognition .figure-blanche {
  position:absolute; bottom:18%; right:35%; width:20px; height:68px;
  background: linear-gradient(180deg, #2a1a30 0%, #1a0a20 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mir-blanche 9s ease-in-out infinite alternate;
}
.scn-miniature-recognition .miniature-glow {
  position:absolute; bottom:32%; left:45%; width:14px; height:18px;
  background: radial-gradient(circle, #d0a060 0%, #8a6020 60%, #3a2010 100%);
  border-radius: 3px;
  box-shadow: 0 0 25px 8px rgba(208,160,96,.6), 0 0 50px 16px rgba(208,160,96,.25);
  animation: mir-glow 5s ease-in-out infinite alternate;
  z-index: 5;
}
.scn-miniature-recognition .shadow-pool {
  position:absolute; bottom:15%; left:20%; right:20%; height:10%;
  background: radial-gradient(ellipse, rgba(0,0,0,.5) 0%, transparent 100%);
  border-radius: 50%;
  animation: mir-shadow 12s ease-in-out infinite alternate;
}
.scn-miniature-recognition .drapes {
  position:absolute; top:0; left:0; width:15%; height:85%;
  background: linear-gradient(180deg, #1a1220 0%, #2a1a30 60%, #1f1428 100%);
  border-radius: 0 20% 20% 0;
  box-shadow: 2px 0 8px rgba(0,0,0,.4);
  animation: mir-drapes 18s ease-in-out infinite alternate;
}
@keyframes mir-room { 0% { opacity:.7 } 50% { opacity:.9 } 100% { opacity:.75 } }
@keyframes mir-table { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(1) } }
@keyframes mir-candle { 0% { transform: scaleY(1); opacity:.8 } 50% { transform: scaleY(1.08); opacity:1 } 100% { transform: scaleY(.95); opacity:.75 } }
@keyframes mir-dorothee { 0% { transform: translateX(0) rotate(-1deg) } 25% { transform: translateX(3px) rotate(2deg) } 50% { transform: translateX(0) rotate(-1deg) } 75% { transform: translateX(-3px) rotate(1deg) } 100% { transform: translateX(0) rotate(0) } }
@keyframes mir-blanche { 0% { transform: translateX(0) translateY(0) } 50% { transform: translateX(-4px) translateY(-3px) } 100% { transform: translateX(0) translateY(0) } }
@keyframes mir-glow { 0% { opacity:.6; box-shadow: 0 0 20px 6px rgba(208,160,96,.4), 0 0 40px 12px rgba(208,160,96,.15) } 50% { opacity:1; box-shadow: 0 0 35px 12px rgba(208,160,96,.7), 0 0 70px 24px rgba(208,160,96,.3) } 100% { opacity:.7; box-shadow: 0 0 25px 8px rgba(208,160,96,.5), 0 0 50px 16px rgba(208,160,96,.2) } }
@keyframes mir-shadow { 0% { opacity:.3; transform: scaleX(1) } 50% { opacity:.5; transform: scaleX(1.1) } 100% { opacity:.35; transform: scaleX(.95) } }
@keyframes mir-drapes { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.02) } 100% { transform: scaleX(1) } }

/* Scene 1: st-aubert-family-intro */
.scn-st-aubert-family-intro {
  background: 
    linear-gradient(180deg, #bce0ff 0%, #ffe6a0 50%, #f0c070 100%),
    radial-gradient(ellipse at 80% 20%, #fff0d0 0%, transparent 60%);
}
.scn-st-aubert-family-intro .sky-glow {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #c8e8ff 0%, #ffe8b0 80%);
  animation: safi-sky 15s ease-in-out infinite alternate;
}
.scn-st-aubert-family-intro .distant-hills {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 20%;
  background: linear-gradient(180deg, #6a8a5a 0%, #3a5a3a 100%);
  border-radius: 30% 70% 0 0 / 60% 50% 0 0;
  animation: safi-hills 20s ease-in-out infinite alternate;
}
.scn-st-aubert-family-intro .estate-house {
  position: absolute; bottom: 25%; left: 40%; width: 100px; height: 80px;
  background: linear-gradient(180deg, #c09a70 0%, #8a6a40 100%);
  border-radius: 6% 6% 4% 4%;
  box-shadow: 0 8px 20px rgba(0,0,0,0.3);
}
.scn-st-aubert-family-intro .tree-left {
  position: absolute; bottom: 28%; left: 25%; width: 50px; height: 120px;
  background: linear-gradient(180deg, #3a6a3a 0%, #1a3a1a 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  transform-origin: bottom center;
  animation: safi-sway 6s ease-in-out infinite;
}
.scn-st-aubert-family-intro .tree-right {
  position: absolute; bottom: 28%; right: 20%; width: 60px; height: 130px;
  background: linear-gradient(180deg, #4a7a4a 0%, #2a4a2a 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  transform-origin: bottom center;
  animation: safi-sway 8s ease-in-out infinite reverse;
}
.scn-st-aubert-family-intro .figure-parents {
  position: absolute; bottom: 24%; left: 42%; width: 16px; height: 32px;
  background: #2a2a3a;
  border-radius: 50% 50% 40% 40% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: safi-walk 12s ease-in-out infinite;
}
.scn-st-aubert-family-intro .figure-daughter {
  position: absolute; bottom: 24%; left: 46%; width: 12px; height: 24px;
  background: #3a3a2a;
  border-radius: 50% 50% 40% 40% / 50% 50% 30% 30%;
  transform-origin: bottom center;
  animation: safi-walk 12s ease-in-out infinite 2s;
}
.scn-st-aubert-family-intro .butterflies {
  position: absolute; top: 30%; left: 60%; width: 8px; height: 6px;
  background: #e8b84a;
  border-radius: 50% 50% 0 0;
  filter: blur(1px);
  animation: safi-flight 18s linear infinite;
}
@keyframes safi-sky { 0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.9; } }
@keyframes safi-hills { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(0); } }
@keyframes safi-sway { 0%,100% { transform: rotate(-2deg); } 50% { transform: rotate(2deg); } }
@keyframes safi-walk { 0% { transform: translateX(0) translateY(0); } 25% { transform: translateX(5px) translateY(-1px); } 50% { transform: translateX(10px) translateY(0); } 75% { transform: translateX(15px) translateY(-1px); } 100% { transform: translateX(20px) translateY(0); } }
@keyframes safi-flight { 0% { transform: translate(0,0) scale(1); } 25% { transform: translate(30px,-10px) scale(1.2); } 50% { transform: translate(60px,5px) scale(0.9); } 75% { transform: translate(90px,-5px) scale(1.1); } 100% { transform: translate(120px,0) scale(1); } }

/* Scene 2: madame-aubert-illness */
.scn-madame-aubert-illness {
  background: 
    linear-gradient(180deg, #1a1a2e 0%, #2a1a1a 50%, #3a2a2a 100%),
    radial-gradient(ellipse at 50% 60%, #4a3a3a 0%, transparent 70%);
}
.scn-madame-aubert-illness .room-walls {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #2a2424 0%, #1a1818 100%);
}
.scn-madame-aubert-illness .bed-frame {
  position: absolute; bottom: 20%; left: 25%; width: 50%; height: 40%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 8% 8% 4% 4%;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.6);
}
.scn-madame-aubert-illness .bed-cover {
  position: absolute; bottom: 22%; left: 27%; width: 46%; height: 30%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a2a 100%);
  border-radius: 6% 6% 3% 3%;
  opacity: 0.8;
  animation: mai-breath 6s ease-in-out infinite;
}
.scn-madame-aubert-illness .figure-lying {
  position: absolute; bottom: 25%; left: 35%; width: 20%; height: 18%;
  background: linear-gradient(180deg, #4a3a3a 0%, #2a1a1a 100%);
  border-radius: 50% 50% 40% 40% / 40% 40% 30% 30%;
  transform-origin: bottom center;
}
.scn-madame-aubert-illness .figure-sitting {
  position: absolute; bottom: 25%; left: 58%; width: 12%; height: 28%;
  background: linear-gradient(180deg, #3a2a2a 0%, #1a0a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: mai-stir 8s ease-in-out infinite;
}
.scn-madame-aubert-illness .candle-glow {
  position: absolute; bottom: 40%; left: 48%; width: 6%; height: 8%;
  background: radial-gradient(circle, #ffd080 0%, #c08040 60%);
  border-radius: 50%;
  box-shadow: 0 0 40px 20px rgba(192,128,64,0.6);
  animation: mai-flicker 2s ease-in-out infinite alternate;
}
.scn-madame-aubert-illness .window-night {
  position: absolute; top: 10%; right: 10%; width: 25%; height: 35%;
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a3a 100%);
  border-radius: 4% 4% 2% 2%;
  border: 4px solid #2a2a1a;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.8);
}
.scn-madame-aubert-illness .moonbeam {
  position: absolute; top: 20%; right: 15%; width: 15%; height: 50%;
  background: linear-gradient(180deg, rgba(200,220,255,0.2) 0%, transparent 100%);
  clip-path: polygon(0 0, 100% 0, 70% 100%, 30% 100%);
  animation: mai-beam 12s ease-in-out infinite alternate;
}
@keyframes mai-breath { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(1.03); } }
@keyframes mai-stir { 0%,100% { transform: translateX(0) rotate(0); } 50% { transform: translateX(3px) rotate(3deg); } }
@keyframes mai-flicker { 0% { opacity: 0.7; box-shadow: 0 0 30px 15px rgba(192,128,64,0.5); } 50% { opacity: 1; box-shadow: 0 0 50px 25px rgba(255,208,128,0.8); } 100% { opacity: 0.8; box-shadow: 0 0 35px 18px rgba(192,128,64,0.6); } }
@keyframes mai-beam { 0% { opacity: 0.1; } 50% { opacity: 0.4; } 100% { opacity: 0.2; } }

/* Scene 3: journey-pyrenees-meeting */
.scn-journey-pyrenees-meeting {
  background: 
    linear-gradient(180deg, #a0c8e8 0%, #d0e8f0 40%, #f0e0b0 100%),
    radial-gradient(ellipse at 50% 20%, #f0e8c0 0%, transparent 70%);
}
.scn-journey-pyrenees-meeting .mountain-bg {
  position: absolute; bottom: 30%; left: 0; right: 0; height: 50%;
  background: linear-gradient(180deg, #6a7a8a 0%, #3a4a5a 100%);
  border-radius: 60% 40% 0 0 / 80% 70% 0 0;
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.3);
}
.scn-journey-pyrenees-meeting .mountain-fg {
  position: absolute; bottom: 15%; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, #4a5a3a 0%, #2a3a2a 100%);
  border-radius: 70% 30% 0 0 / 60% 50% 0 0;
  clip-path: polygon(0 30%, 15% 10%, 30% 25%, 45% 0, 60% 20%, 75% 5%, 90% 15%, 100% 30%, 100% 100%, 0 100%);
}
.scn-journey-pyrenees-meeting .winding-path {
  position: absolute; bottom: 20%; left: 20%; width: 60%; height: 10%;
  background: linear-gradient(180deg, #8a7a5a 0%, #5a4a3a 100%);
  clip-path: polygon(0 40%, 100% 60%, 100% 80%, 0 60%);
  animation: jpm-path 10s ease-in-out infinite;
}
.scn-journey-pyrenees-meeting .figure-staubert {
  position: absolute; bottom: 22%; left: 30%; width: 14px; height: 30px;
  background: #2a3a3a;
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: jpm-walk 16s ease-in-out infinite;
}
.scn-journey-pyrenees-meeting .figure-emily {
  position: absolute; bottom: 22%; left: 35%; width: 12px; height: 26px;
  background: #3a2a3a;
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: jpm-walk 16s ease-in-out infinite 3s;
}
.scn-journey-pyrenees-meeting .figure-valancourt {
  position: absolute; bottom: 22%; left: 50%; width: 16px; height: 34px;
  background: #2a2a1a;
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: jpm-bounds 5s ease-in-out infinite;
}
.scn-journey-pyrenees-meeting .dog-running {
  position: absolute; bottom: 20%; left: 55%; width: 10px; height: 8px;
  background: #4a3a2a;
  border-radius: 50% 50% 30% 30%;
  animation: jpm-dog 6s linear infinite;
}
.scn-journey-pyrenees-meeting .sunbeam {
  position: absolute; top: 10%; left: 40%; width: 20%; height: 30%;
  background: linear-gradient(180deg, rgba(255,240,200,0.3) 0%, transparent 100%);
  clip-path: polygon(0 0, 100% 0, 70% 100%, 30% 100%);
  animation: jpm-sun 8s ease-in-out infinite alternate;
}
@keyframes jpm-path { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-5px); } }
@keyframes jpm-walk { 0% { transform: translateX(0) translateY(0); } 25% { transform: translateX(8px) translateY(-2px); } 50% { transform: translateX(16px) translateY(0); } 75% { transform: translateX(24px) translateY(-2px); } 100% { transform: translateX(32px) translateY(0); } }
@keyframes jpm-bounds { 0%,100% { transform: translateX(0) translateY(0) rotate(0); } 25% { transform: translateX(10px) translateY(-6px) rotate(5deg); } 50% { transform: translateX(20px) translateY(0) rotate(0); } 75% { transform: translateX(30px) translateY(-6px) rotate(-5deg); } }
@keyframes jpm-dog { 0% { transform: translateX(0) translateY(0); } 25% { transform: translateX(20px) translateY(-3px); } 50% { transform: translateX(40px) translateY(0); } 75% { transform: translateX(60px) translateY(-3px); } 100% { transform: translateX(80px) translateY(0); } }
@keyframes jpm-sun { 0% { opacity: 0.2; } 50% { opacity: 0.6; } 100% { opacity: 0.3; } }

/* Scene 4: valancourt-generosity */
.scn-valancourt-generosity {
  background: 
    linear-gradient(180deg, #1a1a0a 0%, #3a2a1a 50%, #2a1a0a 100%),
    radial-gradient(ellipse at 50% 40%, #4a3a2a 0%, transparent 80%);
}
.scn-valancourt-generosity .hut-walls {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #3a2a1a 0%, #1a0a0a 100%);
  box-shadow: inset 0 0 60px rgba(0,0,0,0.5);
}
.scn-valancourt-generosity .hut-roof {
  position: absolute; top: 5%; left: 10%; width: 80%; height: 20%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  clip-path: polygon(10% 100%, 50% 0, 90% 100%);
  transform: perspective(200px) rotateX(10deg);
}
.scn-valancourt-generosity .table-wood {
  position: absolute; bottom: 20%; left: 25%; width: 50%; height: 10%;
  background: linear-gradient(180deg, #6a4a3a 0%, #3a2a1a 100%);
  border-radius: 6%;
  box-shadow: 0 4px 10px rgba(0,0,0,0.6);
}
.scn-valancourt-generosity .figure-valancourt {
  position: absolute; bottom: 25%; left: 30%; width: 16px; height: 36px;
  background: #2a2a1a;
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: vg-handout 6s ease-in-out infinite;
}
.scn-valancourt-generosity .figure-shepherd {
  position: absolute; bottom: 24%; left: 55%; width: 18px; height: 34px;
  background: #3a2a2a;
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: vg-receive 6s ease-in-out infinite 1s;
}
.scn-valancourt-generosity .money-pouch {
  position: absolute; bottom: 38%; left: 38%; width: 10px; height: 8px;
  background: #8a6a3a;
  border-radius: 40% 40% 30% 30%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
  animation: vg-pouch 6s ease-in-out infinite 0.5s;
}
.scn-valancourt-generosity .lantern-light {
  position: absolute; top: 30%; left: 20%; width: 8%; height: 12%;
  background: radial-gradient(circle at 50% 50%, #ffd080 0%, #c08040 40%, transparent 80%);
  box-shadow: 0 0 50px 30px rgba(192,128,64,0.4);
  animation: vg-lantern 3s ease-in-out infinite alternate;
}
.scn-valancourt-generosity .dog-sleeping {
  position: absolute; bottom: 15%; left: 15%; width: 20px; height: 10px;
  background: #4a3a2a;
  border-radius: 50% 50% 30% 30%;
  animation: vg-sleep 10s ease-in-out infinite;
}
.scn-valancourt-generosity .shadow-corner {
  position: absolute; bottom: 0; right: 0; width: 40%; height: 60%;
  background: linear-gradient(135deg, transparent 0%, rgba(0,0,0,0.6) 100%);
}
@keyframes vg-handout { 0%,100% { transform: translateX(0) translateY(0) rotate(0); } 25% { transform: translateX(5px) translateY(-2px) rotate(-10deg); } 50% { transform: translateX(10px) translateY(0) rotate(-15deg); } 75% { transform: translateX(15px) translateY(-2px) rotate(-10deg); } }
@keyframes vg-receive { 0%,100% { transform: translateX(0) translateY(0); } 25% { transform: translateX(-5px) translateY(-1px); } 50% { transform: translateX(-10px) translateY(0); } 75% { transform: translateX(-15px) translateY(-1px); } }
@keyframes vg-pouch { 0%,100% { transform: translateY(0) scale(1); } 50% { transform: translateY(-8px) scale(1.2); } }
@keyframes vg-lantern { 0% { opacity: 0.8; box-shadow: 0 0 30px 20px rgba(192,128,64,0.3); } 50% { opacity: 1; box-shadow: 0 0 60px 40px rgba(255,200,80,0.5); } 100% { opacity: 0.9; box-shadow: 0 0 40px 25px rgba(192,128,64,0.35); } }
@keyframes vg-sleep { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(0.9); } }
/* end per-scene blocks */
