/* style.css -- merged from per-tier scene CSS by _build_deploy.py */
/* Scene root must fill its positioning container. */
.scn { position: absolute; inset: 0; }

/* ============ tier U ============ */
/* per-scene blocks (EXP step_scenes) */
/* first-tier-moan */
.scn-first-tier-moan {
  background: linear-gradient(180deg, #1a0d0a 0%, #2b1810 40%, #1a0d0a 100%),
              radial-gradient(ellipse at 50% 70%, #8b3a1a 0%, transparent 70%);
}
.scn-first-tier-moan .wall-bg {
  position: absolute; inset: 0; background: repeating-linear-gradient(0deg, #3a2015 0px, #3a2015 4px, #2d1810 4px, #2d1810 8px);
  animation: ftm-wall 20s ease-in-out infinite alternate;
}
.scn-first-tier-moan .mortar-line {
  position: absolute; bottom: 55%; left: 10%; right: 10%; height: 6px; background: #6b4a3a; border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.5);
}
.scn-first-tier-moan .brick-1 {
  position: absolute; bottom: 45%; left: 20%; width: 80px; height: 30px; background: #5a3a2a; border-radius: 3px;
  box-shadow: inset 0 -2px 4px rgba(0,0,0,0.4); animation: ftm-brick1 6s ease-in-out infinite;
}
.scn-first-tier-moan .brick-2 {
  position: absolute; bottom: 45%; left: 50%; width: 60px; height: 30px; background: #4a2e1a; border-radius: 3px;
  box-shadow: inset 0 -2px 4px rgba(0,0,0,0.5); animation: ftm-brick2 6s ease-in-out infinite 0.3s;
}
.scn-first-tier-moan .trowel {
  position: absolute; bottom: 48%; left: 65%; width: 40px; height: 10px; background: #7a6a5a; border-radius: 0 50% 50% 0; transform: rotate(-15deg);
  box-shadow: 0 2px 6px rgba(0,0,0,0.6); animation: ftm-trowel 4s ease-in-out infinite alternate;
}
.scn-first-tier-moan .hand {
  position: absolute; bottom: 44%; left: 60%; width: 24px; height: 32px; background: #2a1a12; border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform: rotate(10deg); animation: ftm-hand 4s ease-in-out infinite alternate 0.5s;
}
.scn-first-tier-moan .flame {
  position: absolute; bottom: 30%; left: 50%; width: 12px; height: 18px; background: radial-gradient(circle, #ffd080 0%, #d05020 60%, transparent 100%);
  border-radius: 50%; filter: blur(2px); box-shadow: 0 0 20px 8px #d05020; animation: ftm-flame 2.5s ease-in-out infinite;
}
.scn-first-tier-moan .shadow-arm {
  position: absolute; bottom: 30%; left: 40%; width: 80px; height: 16px; background: #1a0d0a; border-radius: 50% 50% 0 0; transform: rotate(-20deg);
  animation: ftm-shadowarm 5s ease-in-out infinite alternate;
}
@keyframes ftm-wall { 0% { opacity: 0.7 } 50% { opacity: 0.85 } 100% { opacity: 0.7 } }
@keyframes ftm-brick1 { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-3px) } }
@keyframes ftm-brick2 { 0%,100% { transform: translateY(0) } 50% { transform: translateY(-2px) } }
@keyframes ftm-trowel { 0% { transform: rotate(-15deg) translateX(0) } 50% { transform: rotate(-10deg) translateX(4px) } 100% { transform: rotate(-15deg) translateX(0) } }
@keyframes ftm-hand { 0% { transform: rotate(10deg) scaleY(1) } 50% { transform: rotate(8deg) scaleY(1.02) } 100% { transform: rotate(10deg) scaleY(1) } }
@keyframes ftm-flame { 0% { transform: scaleY(1) scaleX(0.9); opacity: 0.9 } 50% { transform: scaleY(1.15) scaleX(1.05); opacity: 1 } 100% { transform: scaleY(0.95) scaleX(1); opacity: 0.85 } }
@keyframes ftm-shadowarm { 0% { transform: rotate(-20deg) translateX(0) } 50% { transform: rotate(-18deg) translateX(5px) } 100% { transform: rotate(-20deg) translateX(0) } }

/* chain-vibrations */
.scn-chain-vibrations {
  background: linear-gradient(180deg, #0d0806 0%, #1a100c 50%, #0d0806 100%),
              radial-gradient(ellipse at 40% 50%, #7a3015 0%, transparent 60%);
}
.scn-chain-vibrations .wall-bg {
  position: absolute; inset: 0; background: repeating-linear-gradient(90deg, #2a1812 0px, #2a1812 6px, #1e110d 6px, #1e110d 12px);
  animation: cv-wall 18s ease-in-out infinite alternate;
}
.scn-chain-vibrations .chain-link {
  position: absolute; background: #6a4a3a; border-radius: 40%; box-shadow: 0 2px 6px rgba(0,0,0,0.7);
}
.scn-chain-vibrations .chain-1 { left: 45%; top: 25%; width: 20px; height: 30px; animation: cv-chain1 3s ease-in-out infinite; }
.scn-chain-vibrations .chain-2 { left: 50%; top: 40%; width: 20px; height: 30px; animation: cv-chain2 3s ease-in-out infinite 0.4s; }
.scn-chain-vibrations .chain-3 { left: 43%; top: 55%; width: 20px; height: 30px; animation: cv-chain3 3s ease-in-out infinite 0.8s; }
.scn-chain-vibrations .figure-back {
  position: absolute; bottom: 30%; left: 30%; width: 50px; height: 70px; background: #1a100c; border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: cv-figure 5s ease-in-out infinite alternate;
}
.scn-chain-vibrations .flicker-light {
  position: absolute; bottom: 35%; left: 20%; width: 80px; height: 80px; background: radial-gradient(circle, #b84a1a 0%, transparent 70%);
  opacity: 0.3; animation: cv-flicker 2.5s ease-in-out infinite;
}
.scn-chain-vibrations .dust {
  position: absolute; top: 20%; left: 10%; width: 6px; height: 6px; background: #8a6a5a; border-radius: 50%; filter: blur(3px);
  animation: cv-dust 8s linear infinite;
}
@keyframes cv-wall { 0% { opacity: 0.6 } 50% { opacity: 0.8 } 100% { opacity: 0.6 } }
@keyframes cv-chain1 { 0%,100% { transform: translateY(0) rotate(0deg) } 30% { transform: translateY(8px) rotate(5deg) } 60% { transform: translateY(-4px) rotate(-4deg) } }
@keyframes cv-chain2 { 0%,100% { transform: translateY(0) rotate(0deg) } 30% { transform: translateY(6px) rotate(-3deg) } 60% { transform: translateY(-3px) rotate(4deg) } }
@keyframes cv-chain3 { 0%,100% { transform: translateY(0) rotate(0deg) } 30% { transform: translateY(10px) rotate(6deg) } 60% { transform: translateY(-5px) rotate(-5deg) } }
@keyframes cv-figure { 0% { transform: scaleX(1) translateX(0) } 50% { transform: scaleX(1.02) translateX(8px) } 100% { transform: scaleX(1) translateX(0) } }
@keyframes cv-flicker { 0% { opacity: 0.2 } 50% { opacity: 0.45 } 100% { opacity: 0.25 } }
@keyframes cv-dust { 0% { transform: translateY(0) translateX(0) opacity: 0.4 } 50% { transform: translateY(-30px) translateX(20px) opacity: 0.1 } 100% { transform: translateY(-60px) translateX(40px) opacity: 0 } }

/* item-flambeaux */
.scn-item-flambeaux {
  background: linear-gradient(180deg, #0d0806 0%, #1a110d 40%, #0d0806 100%),
              radial-gradient(ellipse at 60% 70%, #b84a1a 0%, transparent 50%);
}
.scn-item-flambeaux .wall-bg {
  position: absolute; inset: 0; background: repeating-linear-gradient(0deg, #2a1812 0px, #2a1812 5px, #1e110d 5px, #1e110d 10px);
  animation: if-wall 20s ease-in-out infinite alternate;
}
.scn-item-flambeaux .masonry-layer {
  position: absolute; bottom: 40%; left: 15%; right: 15%; height: 40px; background: linear-gradient(180deg, #4a2e1a 0%, #3a2012 100%);
  border-radius: 4px; box-shadow: inset 0 -4px 8px rgba(0,0,0,0.5); animation: if-masonry 8s ease-in-out infinite alternate;
}
.scn-item-flambeaux .torch-handle {
  position: absolute; bottom: 35%; left: 55%; width: 10px; height: 50px; background: #3a2a1a; border-radius: 2px; transform: rotate(20deg);
  box-shadow: 0 2px 6px rgba(0,0,0,0.6); animation: if-handle 3s ease-in-out infinite;
}
.scn-item-flambeaux .torch-flame {
  position: absolute; bottom: 52%; left: 57%; width: 20px; height: 28px; background: radial-gradient(circle, #ffe080 0%, #d06020 50%, transparent 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; filter: blur(2px); box-shadow: 0 0 30px 12px #d06020;
  animation: if-flame 2.5s ease-in-out infinite;
}
.scn-item-flambeaux .spark-a {
  position: absolute; bottom: 60%; left: 60%; width: 4px; height: 4px; background: #ffc060; border-radius: 50%;
  animation: if-sparka 4s ease-in-out infinite;
}
.scn-item-flambeaux .spark-b {
  position: absolute; bottom: 55%; left: 50%; width: 4px; height: 4px; background: #ffc060; border-radius: 50%;
  animation: if-sparkb 4s ease-in-out infinite 0.8s;
}
.scn-item-flambeaux .finger {
  position: absolute; bottom: 32%; left: 58%; width: 8px; height: 22px; background: #1a100c; border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  transform: rotate(15deg); animation: if-finger 3s ease-in-out infinite alternate;
}
@keyframes if-wall { 0% { opacity: 0.7 } 50% { opacity: 0.9 } 100% { opacity: 0.7 } }
@keyframes if-masonry { 0% { transform: translateY(0) } 50% { transform: translateY(2px) } 100% { transform: translateY(0) } }
@keyframes if-handle { 0%,100% { transform: rotate(20deg) } 50% { transform: rotate(22deg) } }
@keyframes if-flame { 0% { transform: scaleY(0.9) scaleX(0.85); opacity: 0.9 } 50% { transform: scaleY(1.15) scaleX(1.05); opacity: 1 } 100% { transform: scaleY(0.95) scaleX(0.9); opacity: 0.85 } }
@keyframes if-sparka { 0% { transform: translate(0,0) scale(1); opacity: 0.8 } 50% { transform: translate(10px, -20px) scale(0.4); opacity: 0.2 } 100% { transform: translate(0,0) scale(1); opacity: 0 } }
@keyframes if-sparkb { 0% { transform: translate(0,0) scale(1); opacity: 0.6 } 50% { transform: translate(-8px, -15px) scale(0.5); opacity: 0.1 } 100% { transform: translate(0,0) scale(1); opacity: 0 } }
@keyframes if-finger { 0% { transform: rotate(15deg) } 50% { transform: rotate(12deg) } 100% { transform: rotate(15deg) } }

/* reassurance-reply */
.scn-reassurance-reply {
  background: linear-gradient(180deg, #0d0806 0%, #1a100c 40%, #0d0806 100%),
              radial-gradient(ellipse at 40% 60%, #7a2a12 0%, transparent 40%);
}
.scn-reassurance-reply .wall-bg {
  position: absolute; inset: 0; background: repeating-linear-gradient(0deg, #2a1812 0px, #2a1812 4px, #1e110d 4px, #1e110d 8px);
  animation: rr-wall 22s ease-in-out infinite alternate;
}
.scn-reassurance-reply .recess-shadow {
  position: absolute; left: 30%; top: 30%; width: 120px; height: 160px; background: #130a08; border-radius: 10% 40% 40% 10%;
  animation: rr-shadow 8s ease-in-out infinite alternate;
}
.scn-reassurance-reply .rapier-blade {
  position: absolute; bottom: 40%; left: 20%; width: 100px; height: 8px; background: #8a7a6a; border-radius: 0 50% 50% 0; transform: rotate(-25deg);
  box-shadow: 0 0 6px 2px #6a5a4a; animation: rr-blade 4s ease-in-out infinite alternate;
}
.scn-reassurance-reply .rapier-handle {
  position: absolute; bottom: 50%; left: 15%; width: 20px; height: 12px; background: #4a3a2a; border-radius: 30%; transform: rotate(-25deg);
  box-shadow: inset 0 0 4px rgba(0,0,0,0.5);
}
.scn-reassurance-reply .hand-grip {
  position: absolute; bottom: 47%; left: 14%; width: 14px; height: 28px; background: #1a100c; border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform: rotate(-10deg); animation: rr-hand 4s ease-in-out infinite alternate 0.5s;
}
.scn-reassurance-reply .echo-ring {
  position: absolute; bottom: 35%; left: 60%; width: 40px; height: 40px; border: 2px solid #b84a1a; border-radius: 50%; opacity: 0;
  animation: rr-echo 5s ease-out infinite;
}
.scn-reassurance-reply .figure-face-silhouette {
  position: absolute; bottom: 35%; left: 70%; width: 30px; height: 40px; background: #0d0806; border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  animation: rr-face 6s ease-in-out infinite alternate;
}
@keyframes rr-wall { 0% { opacity: 0.6 } 50% { opacity: 0.8 } 100% { opacity: 0.6 } }
@keyframes rr-shadow { 0% { transform: scaleX(1) } 50% { transform: scaleX(1.05) } 100% { transform: scaleX(1) } }
@keyframes rr-blade { 0% { transform: rotate(-25deg) translateX(0) } 50% { transform: rotate(-23deg) translateX(6px) } 100% { transform: rotate(-25deg) translateX(0) } }
@keyframes rr-hand { 0% { transform: rotate(-10deg) scaleY(1) } 50% { transform: rotate(-8deg) scaleY(1.03) } 100% { transform: rotate(-10deg) scaleY(1) } }
@keyframes rr-echo { 0% { transform: scale(0.5); opacity: 0.8 } 50% { transform: scale(1.5); opacity: 0.3 } 100% { transform: scale(2); opacity: 0 } }
@keyframes rr-face { 0% { transform: translateX(0) } 50% { transform: translateX(5px) } 100% { transform: translateX(0) } }

/* medoc-toast */
.scn-medoc-toast {
  background: 
    radial-gradient(ellipse at 50% 30%, #4a2a10 0%, #1a0a00 60%),
    linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%);
}
.scn-medoc-toast .bg-vault { position:absolute; inset:0; background: linear-gradient(180deg, transparent 0%, #1a0a00 100%); opacity:.8; }
.scn-medoc-toast .torch-left { position:absolute; bottom:40%; left:15%; width:8px; height:120px; background: linear-gradient(180deg, #c8553d 0%, #4a1a0a 100%); border-radius:4px; box-shadow:0 0 40px 20px rgba(255,140,0,.6); animation:mt-torch 1.5s ease-in-out infinite alternate; }
.scn-medoc-toast .torch-right { position:absolute; bottom:40%; right:15%; width:8px; height:120px; background: linear-gradient(180deg, #c8553d 0%, #4a1a0a 100%); border-radius:4px; box-shadow:0 0 40px 20px rgba(255,140,0,.6); animation:mt-torch 1.8s ease-in-out infinite alternate-reverse; }
.scn-medoc-toast .figure-narrator { position:absolute; bottom:28%; left:30%; width:50px; height:120px; background: linear-gradient(180deg, #1a0a00 0%, #0a0500 100%); border-radius:50% 40% 30% 40% / 70% 60% 40% 40%; transform-origin:bottom center; animation:mt-figure 4s ease-in-out infinite; }
.scn-medoc-toast .figure-fortunato { position:absolute; bottom:28%; right:30%; width:55px; height:125px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius:50% 40% 30% 40% / 70% 60% 40% 40%; transform-origin:bottom center; animation:mt-figure 4.3s ease-in-out infinite .5s; }
.scn-medoc-toast .wine-bottle { position:absolute; bottom:38%; right:38%; width:20px; height:35px; background: linear-gradient(180deg, #3a1a0a 0%, #1a0a00 100%); border-radius:0 0 4px 4px; border-top:8px solid #2a1a0a; transform:rotate(-15deg); animation:mt-bottle 3s ease-in-out infinite; }
.scn-medoc-toast .nitre-moss { position:absolute; top:10%; left:10%; width:70%; height:30%; background: radial-gradient(ellipse at 20% 50%, rgba(100,120,100,.2) 0%, transparent 70%); filter:blur(6px); animation:mt-nit 25s linear infinite; }
@keyframes mt-torch { 0% { box-shadow:0 0 30px 10px rgba(255,140,0,.5); } 50% { box-shadow:0 0 50px 25px rgba(255,140,0,.7); } 100% { box-shadow:0 0 35px 15px rgba(255,140,0,.6); } }
@keyframes mt-figure { 0% { transform:translateX(0) rotate(0deg); } 25% { transform:translateX(2px) rotate(-1deg); } 50% { transform:translateX(0) rotate(0deg); } 75% { transform:translateX(-2px) rotate(1deg); } 100% { transform:translateX(0) rotate(0deg); } }
@keyframes mt-bottle { 0% { transform:rotate(-15deg) translateY(0); } 30% { transform:rotate(-12deg) translateY(-2px); } 60% { transform:rotate(-18deg) translateY(1px); } 100% { transform:rotate(-15deg) translateY(0); } }
@keyframes mt-nit { 0% { opacity:.3; transform:scale(1); } 50% { opacity:.5; transform:scale(1.1); } 100% { opacity:.3; transform:scale(1); } }

/* item-medoc-bottle */
.scn-item-medoc-bottle {
  background: 
    radial-gradient(ellipse at 50% 40%, #4a2a10 0%, #1a0a00 70%),
    linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%);
}
.scn-item-medoc-bottle .bg-arch { position:absolute; inset:0; background: linear-gradient(180deg, transparent 50%, #1a0a00 100%); }
.scn-item-medoc-bottle .fire-glow { position:absolute; bottom:0; left:0; right:0; height:60%; background: radial-gradient(ellipse at 50% 100%, rgba(255,140,0,.15) 0%, transparent 70%); animation:ib-glow 2s ease-in-out infinite alternate; }
.scn-item-medoc-bottle .bottle { position:absolute; bottom:40%; left:45%; width:24px; height:60px; background: linear-gradient(180deg, #3a1a0a 0%, #1a0a00 100%); border-radius:0 0 6px 6px; border-top:12px solid #4a2a10; transform-origin:bottom center; animation:ib-bottle 3s ease-in-out infinite; }
.scn-item-medoc-bottle .hand { position:absolute; bottom:30%; left:35%; width:35px; height:50px; background: linear-gradient(180deg, #1a0a00 0%, #0a0500 100%); border-radius:40% 30% 30% 40% / 60% 50% 50% 60%; transform:rotate(15deg); animation:ib-hand 3.5s ease-in-out infinite .2s; }
.scn-item-medoc-bottle .table { position:absolute; bottom:0; left:20%; right:20%; height:15%; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius:20% 20% 0 0 / 50% 50% 0 0; }
.scn-item-medoc-bottle .shadow { position:absolute; bottom:10%; left:30%; width:40%; height:20%; background: radial-gradient(ellipse, rgba(0,0,0,.6) 0%, transparent 70%); filter:blur(8px); animation:ib-shadow 4s ease-in-out infinite; }
@keyframes ib-glow { 0% { opacity:.6; } 50% { opacity:1; } 100% { opacity:.7; } }
@keyframes ib-bottle { 0% { transform:rotate(-5deg) translateY(0); } 25% { transform:rotate(-2deg) translateY(-3px); } 50% { transform:rotate(5deg) translateY(0); } 75% { transform:rotate(2deg) translateY(-2px); } 100% { transform:rotate(-5deg) translateY(0); } }
@keyframes ib-hand { 0% { transform:rotate(15deg) translateY(0); } 33% { transform:rotate(12deg) translateY(-3px); } 66% { transform:rotate(18deg) translateY(0); } 100% { transform:rotate(15deg) translateY(0); } }
@keyframes ib-shadow { 0% { opacity:.4; transform:scale(1); } 50% { opacity:.7; transform:scale(1.1); } 100% { opacity:.4; transform:scale(1); } }

/* family-arms-motto */
.scn-family-arms-motto {
  background: 
    radial-gradient(ellipse at 50% 30%, #4a2a10 0%, #1a0a00 60%),
    linear-gradient(180deg, #2a1a0a 0%, #0a0500 100%);
}
.scn-family-arms-motto .bg-vault-fa { position:absolute; inset:0; background: linear-gradient(180deg, transparent 30%, #1a0a00 100%); opacity:.5; }
.scn-family-arms-motto .shield { position:absolute; bottom:25%; left:50%; width:80px; height:90px; transform:translateX(-50%); background: linear-gradient(135deg, #3a2a1a 0%, #5a3a2a 50%, #2a1a0a 100%); border-radius:20% 20% 10% 10% / 30% 30% 10% 10%; box-shadow:0 4px 15px rgba(0,0,0,.6); animation:fa-shield 8s ease-in-out infinite; }
.scn-family-arms-motto .foot { position:absolute; bottom:38%; left:50%; width:30px; height:20px; transform:translateX(-50%); background: linear-gradient(180deg, #c8553d 0%, #a0461a 100%); border-radius:50% 50% 20% 20% / 60% 60% 30% 30%; animation:fa-foot 6s ease-in-out infinite; }
.scn-family-arms-motto .serpent { position:absolute; bottom:32%; left:40%; width:20px; height:40px; background: linear-gradient(180deg, #5e1a1d 0%, #3a0a0c 100%); border-radius:50% 50% 30% 30% / 40% 40% 60% 60%; transform-origin:center bottom; animation:fa-serpent 5s ease-in-out infinite .3s; }
.scn-family-arms-motto .fire-glow-fa { position:absolute; bottom:0; left:0; right:0; height:50%; background: radial-gradient(ellipse at 50% 100%, rgba(255,140,0,.2) 0%, transparent 60%); animation:fa-glow 3s ease-in-out infinite alternate; }
.scn-family-arms-motto .figure-fortunato-fa { position:absolute; bottom:15%; right:25%; width:40px; height:80px; background: linear-gradient(180deg, #1a0a00 0%, #0a0500 100%); border-radius:50% 40% 30% 40% / 70% 60% 40% 40%; transform-origin:bottom center; animation:fa-figure 5s ease-in-out infinite; }
@keyframes fa-shield { 0% { transform:translateX(-50%) rotate(0deg); } 25% { transform:translateX(-50%) rotate(-1deg); } 50% { transform:translateX(-50%) rotate(0deg); } 75% { transform:translateX(-50%) rotate(1deg); } 100% { transform:translateX(-50%) rotate(0deg); } }
@keyframes fa-foot { 0% { transform:translateX(-50%) scale(1); } 33% { transform:translateX(-50%) scale(1.05); } 66% { transform:translateX(-50%) scale(.95); } 100% { transform:translateX(-50%) scale(1); } }
@keyframes fa-serpent { 0% { transform:rotate(0deg) scale(1); } 25% { transform:rotate(10deg) scale(1.1); } 50% { transform:rotate(0deg) scale(1); } 75% { transform:rotate(-10deg) scale(1.1); } 100% { transform:rotate(0deg) scale(1); } }
@keyframes fa-glow { 0% { opacity:.5; } 50% { opacity:.8; } 100% { opacity:.6; } }
@keyframes fa-figure { 0% { transform:translateX(0) rotate(0deg); } 30% { transform:translateX(3px) rotate(1deg); } 60% { transform:translateX(-3px) rotate(-1deg); } 100% { transform:translateX(0) rotate(0deg); } }

/* further-descent */
.scn-further-descent {
  background: 
    radial-gradient(ellipse at 50% 20%, #3a1a0a 0%, #0a0500 70%),
    linear-gradient(180deg, #1a0a00 0%, #050200 100%);
}
.scn-further-descent .bg-cave { position:absolute; inset:0; background: linear-gradient(0deg, #0a0500 0%, transparent 50%); opacity:.7; }
.scn-further-descent .bones { position:absolute; bottom:10%; left:20%; width:40px; height:30px; background: linear-gradient(180deg, #3a2a1a 0%, #1a0a00 100%); border-radius:20px; transform:rotate(25deg); animation:fd-bones 10s ease-in-out infinite; }
.scn-further-descent .stalactite { position:absolute; top:0; left:30%; width:15px; height:80px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius:0 0 50% 50% / 0 0 80% 80%; animation:fd-stal 12s ease-in-out infinite; }
.scn-further-descent .nitre-droplets { position:absolute; top:20%; left:50%; width:6px; height:6px; background: radial-gradient(circle, rgba(200,180,200,.6) 0%, transparent 70%); border-radius:50%; box-shadow: -40px 60px 0 0 rgba(200,180,200,.3), 30px 90px 0 0 rgba(200,180,200,.4); animation:fd-drip 2s ease-in-out infinite; }
.scn-further-descent .figure-narrator-fd { position:absolute; bottom:20%; left:25%; width:40px; height:90px; background: linear-gradient(180deg, #1a0a00 0%, #0a0500 100%); border-radius:50% 40% 30% 40% / 70% 60% 40% 40%; transform-origin:bottom center; animation:fd-fig 6s ease-in-out infinite; }
.scn-further-descent .figure-fortunato-fd { position:absolute; bottom:20%; right:25%; width:42px; height:95px; background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 100%); border-radius:50% 40% 30% 40% / 70% 60% 40% 40%; transform-origin:bottom center; animation:fd-fig 6.5s ease-in-out infinite .5s; }
.scn-further-descent .torch-fd { position:absolute; bottom:40%; left:50%; width:6px; height:100px; background: linear-gradient(180deg, #c8553d 0%, #4a1a0a 100%); border-radius:3px; box-shadow:0 0 30px 15px rgba(255,140,0,.5); animation:fd-torch 1.8s ease-in-out infinite alternate; }
@keyframes fd-bones { 0% { transform:rotate(25deg) translateY(0); } 50% { transform:rotate(28deg) translateY(-3px); } 100% { transform:rotate(25deg) translateY(0); } }
@keyframes fd-stal { 0% { transform:scaleY(1); } 50% { transform:scaleY(1.05); } 100% { transform:scaleY(1); } }
@keyframes fd-drip { 0% { transform:translateY(0); opacity:.3; } 30% { transform:translateY(20px); opacity:.8; } 60% { transform:translateY(40px); opacity:.4; } 100% { transform:translateY(0); opacity:.3; } }
@keyframes fd-fig { 0% { transform:translateX(0) rotate(0deg); } 20% { transform:translateX(4px) rotate(-1deg); } 40% { transform:translateX(0) rotate(0deg); } 60% { transform:translateX(-4px) rotate(1deg); } 100% { transform:translateX(0) rotate(0deg); } }
@keyframes fd-torch { 0% { box-shadow:0 0 25px 10px rgba(255,140,0,.4); } 50% { box-shadow:0 0 40px 20px rgba(255,140,0,.7); } 100% { box-shadow:0 0 30px 15px rgba(255,140,0,.5); } }

.scn-entering-palazzo {
  background: linear-gradient(180deg, #1a1e2e 0%, #2a3048 40%, #3a3e5a 100%),
              radial-gradient(ellipse at 50% 20%, #4a4e6a 0%, transparent 70%);
  position: relative;
}
.scn-entering-palazzo .wall-bg { position:absolute; inset:0; background: linear-gradient(180deg, #1e2236 0%, #2e3252 100%); }
.scn-entering-palazzo .floor  { position:absolute; bottom:0; left:0; right:0; height:30%; background: linear-gradient(180deg, #3a3a4a 0%, #2a2a3a 100%); border-radius: 10% 10% 0 0; }
.scn-entering-palazzo .col-left { position:absolute; left:10%; top:5%; bottom:30%; width:6%; background: linear-gradient(90deg, #4a4e66, #3a3e56 50%, #2a2e46); border-radius: 4px; box-shadow: 2px 0 8px rgba(0,0,0,0.5); }
.scn-entering-palazzo .col-right{ position:absolute; right:10%; top:5%; bottom:30%; width:6%; background: linear-gradient(90deg, #4a4e66, #3a3e56 50%, #2a2e46); border-radius: 4px; box-shadow: -2px 0 8px rgba(0,0,0,0.5); }
.scn-entering-palazzo .arch   { position:absolute; left:20%; right:20%; top:5%; height:40%; background: radial-gradient(ellipse at 50% 100%, transparent 60%, #2a2e46 60%); border: 2px solid #5a5e7a; box-shadow: inset 0 0 30px rgba(0,0,0,0.6); }
.scn-entering-palazzo .candle-glow { position:absolute; left:28%; bottom:35%; width:12px; height:18px; background: radial-gradient(circle, #ffcc80 0%, #e6a040 40%, transparent 100%); border-radius: 50%; box-shadow: 0 0 40px 20px rgba(255,204,128,0.4), 0 0 80px 30px rgba(255,204,128,0.2); animation: ep-glow 4s ease-in-out infinite alternate; }
.scn-entering-palazzo .figure { position:absolute; bottom:25%; left:45%; width:16px; height:40px; background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ep-walk 6s ease-in-out infinite; }
@keyframes ep-glow { 0% { opacity:0.6; transform: scale(0.8); } 50% { opacity:1; transform: scale(1.2); } 100% { opacity:0.7; transform: scale(0.9); } }
@keyframes ep-walk { 0% { transform: translateX(0) rotate(-2deg); } 30% { transform: translateX(10px) rotate(2deg); } 60% { transform: translateX(20px) rotate(-1deg); } 100% { transform: translateX(10px) rotate(0deg); } }

.scn-entering-the-vaults {
  background: linear-gradient(180deg, #1a0a06 0%, #2a1410 30%, #3a1e18 60%, #2a100a 100%),
              radial-gradient(ellipse at 50% 0%, #4a2e1a 0%, transparent 60%);
  position: relative;
}
.scn-entering-the-vaults .bg-cave { position:absolute; inset:0; background: linear-gradient(90deg, #1a0e0a 0%, #2a1812 50%, #1a0e0a 100%); }
.scn-entering-the-vaults .stair-rail { position:absolute; left:30%; right:30%; bottom:0; height:90%; background: linear-gradient(180deg, transparent 0%, #3a2a1a 30%, #2a1a0e 100%); border-radius: 0 0 40% 40%; opacity:0.6; }
.scn-entering-the-vaults .stair-tread { position:absolute; left:20%; right:20%; top:20%; height:10%; background: linear-gradient(180deg, #5a3a2a, #4a2a1a); border-radius: 2px; box-shadow: 0 4px 8px rgba(0,0,0,0.5); animation: ev-stair 3s ease-in-out infinite alternate; }
.scn-entering-the-vaults .torch-l { position:absolute; left:15%; top:35%; width:8px; height:40px; background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%); border-radius: 2px 2px 0 0; }
.scn-entering-the-vaults .torch-r { position:absolute; right:15%; top:35%; width:8px; height:40px; background: linear-gradient(180deg, #6a4a2a 0%, #3a2a1a 100%); border-radius: 2px 2px 0 0; }
.scn-entering-the-vaults .flame-l { position:absolute; left:15%; top:30%; width:20px; height:30px; margin-left:-6px; background: radial-gradient(ellipse at 50% 80%, #ffb040 0%, #ff8020 40%, transparent 100%); border-radius: 50%; animation: ev-flame 2s ease-in-out infinite alternate; }
.scn-entering-the-vaults .flame-r { position:absolute; right:15%; top:30%; width:20px; height:30px; margin-right:-6px; background: radial-gradient(ellipse at 50% 80%, #ffb040 0%, #ff8020 40%, transparent 100%); border-radius: 50%; animation: ev-flame 2.5s ease-in-out infinite alternate-reverse; }
.scn-entering-the-vaults .figure { position:absolute; bottom:10%; left:38%; width:18px; 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: ev-descend 5s ease-in-out infinite; }
@keyframes ev-stair { 0% { transform: translateY(0) scaleY(1); } 50% { transform: translateY(2px) scaleY(0.95); } 100% { transform: translateY(0) scaleY(1); } }
@keyframes ev-flame { 0% { transform: scaleY(1) translateY(0); opacity:0.8; } 50% { transform: scaleY(1.3) translateY(-4px); opacity:1; } 100% { transform: scaleY(0.9) translateY(2px); opacity:0.6; } }
@keyframes ev-descend { 0% { transform: translateY(0) rotate(0); } 50% { transform: translateY(8px) rotate(3deg); } 100% { transform: translateY(0) rotate(0); } }

.scn-catacombs-descent {
  background: linear-gradient(180deg, #0f0a08 0%, #1f1410 40%, #2f1c16 100%),
              radial-gradient(ellipse at 50% 50%, #3a2222 0%, transparent 70%);
  position: relative;
}
.scn-catacombs-descent .cavern-bg { position:absolute; inset:0; background: linear-gradient(135deg, #1a1210 0%, #2a1c18 50%, #1a1210 100%); }
.scn-catacombs-descent .web-left { position:absolute; left:5%; top:10%; width:35%; height:80%; background: repeating-linear-gradient(45deg, transparent, transparent 8px, rgba(230,230,220,0.15) 8px, rgba(230,230,220,0.15) 9px); border-radius: 30% 70% 50% 50%; filter: blur(1px); animation: cd-web 20s linear infinite; }
.scn-catacombs-descent .web-right { position:absolute; right:5%; top:10%; width:35%; height:80%; background: repeating-linear-gradient(-45deg, transparent, transparent 8px, rgba(230,230,220,0.15) 8px, rgba(230,230,220,0.15) 9px); border-radius: 70% 30% 50% 50%; filter: blur(1px); animation: cd-web 25s linear infinite reverse; }
.scn-catacombs-descent .fig-narr { position:absolute; left:25%; bottom:20%; width:20px; height:46px; background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cd-walk 4s ease-in-out infinite; }
.scn-catacombs-descent .fig-fort { position:absolute; left:40%; bottom:15%; width:18px; height:44px; background: linear-gradient(180deg, #2a1e1e 0%, #1a1010 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cd-walk 4.2s ease-in-out infinite; }
.scn-catacombs-descent .bells { position:absolute; left:42%; bottom:52%; width:6px; height:6px; background: #c0a070; border-radius: 50%; box-shadow: 0 0 2px 1px rgba(192,160,112,0.6); animation: cd-bells 1.5s ease-in-out infinite alternate; }
@keyframes cd-web { 0% { transform: rotate(0deg) scale(1); } 50% { transform: rotate(180deg) scale(1.05); } 100% { transform: rotate(360deg) scale(1); } }
@keyframes cd-walk { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-3px) rotate(2deg); } 100% { transform: translateY(0) rotate(-1deg); } }
@keyframes cd-bells { 0% { transform: rotate(-15deg); } 50% { transform: rotate(15deg); } 100% { transform: rotate(-10deg); } }

.scn-nitre-and-cough {
  background: linear-gradient(180deg, #0e0806 0%, #1e1410 30%, #2e1c16 70%, #1e100a 100%),
              radial-gradient(circle at 50% 30%, #3a2218 0%, transparent 60%);
  position: relative;
}
.scn-nitre-and-cough .cave-dark { position:absolute; inset:0; background: linear-gradient(180deg, #120c0a 0%, #1e1410 100%); }
.scn-nitre-and-cough .nitre-sparkle { position:absolute; inset:0; background: radial-gradient(circle at 30% 40%, rgba(220,220,210,0.08) 0%, transparent 5%), radial-gradient(circle at 70% 60%, rgba(220,220,210,0.06) 0%, transparent 4%); filter: blur(2px); animation: nc-sparkle 8s ease-in-out infinite alternate; }
.scn-nitre-and-cough .lantern { position:absolute; left:60%; bottom:30%; width:20px; height:26px; background: linear-gradient(180deg, #6a4a2a, #3a2a1a); border-radius: 20% 20% 10% 10%; box-shadow: 0 0 30px 10px rgba(255,180,80,0.3), 0 0 60px 20px rgba(255,180,80,0.15); animation: nc-lantern 3s ease-in-out infinite alternate; }
.scn-nitre-and-cough .cough-fig { position:absolute; left:25%; bottom:15%; width:26px; height:50px; background: linear-gradient(180deg, #1a1212 0%, #0e0a0a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: nc-cough 1.2s ease-in-out infinite; }
.scn-nitre-and-cough .breath-puff { position:absolute; left:30%; bottom:55%; width:14px; height:14px; background: radial-gradient(circle, rgba(200,200,180,0.2) 0%, transparent 100%); border-radius: 50%; animation: nc-breath 2s ease-out infinite; }
@keyframes nc-sparkle { 0% { opacity:0.3; } 50% { opacity:0.7; } 100% { opacity:0.4; } }
@keyframes nc-lantern { 0% { transform: rotate(-5deg); box-shadow: 0 0 30px 10px rgba(255,180,80,0.3); } 50% { transform: rotate(5deg); box-shadow: 0 0 50px 20px rgba(255,180,80,0.5); } 100% { transform: rotate(-3deg); box-shadow: 0 0 35px 12px rgba(255,180,80,0.35); } }
@keyframes nc-cough { 0% { transform: translateY(0) scaleX(1); } 20% { transform: translateY(-6px) scaleX(1.15); } 40% { transform: translateY(0) scaleX(0.95); } 60% { transform: translateY(-4px) scaleX(1.1); } 100% { transform: translateY(0) scaleX(1); } }
@keyframes nc-breath { 0% { transform: scale(0.5); opacity:0.4; } 50% { transform: scale(2); opacity:0.1; } 100% { transform: scale(3); opacity:0; } }

/* montresor-revenge-vow */
.scn-montresor-revenge-vow {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a1a24 40%, #1e0e14 100%),
              radial-gradient(ellipse at 50% 50%, #2a1a24 0%, #0a0a10 70%);
}
.scn-montresor-revenge-vow .bg-deep { position:absolute; inset:0; background: linear-gradient(90deg, #111118 0%, #1a1a24 50%, #111118 100%); animation: mr-pulse 12s ease-in-out infinite alternate; }
.scn-montresor-revenge-vow .wall-left { position:absolute; top:0; left:0; bottom:0; width:35%; background: linear-gradient(180deg, #2a2228 0%, #1a1218 100%); border-right: 2px solid #322; box-shadow: inset -10px 0 20px rgba(0,0,0,.6); }
.scn-montresor-revenge-vow .wall-right { position:absolute; top:0; right:0; bottom:0; width:35%; background: linear-gradient(180deg, #2a2228 0%, #1a1218 100%); border-left: 2px solid #322; box-shadow: inset 10px 0 20px rgba(0,0,0,.6); }
.scn-montresor-revenge-vow .figure-mr { position:absolute; bottom:20%; left:50%; width:28px; height:60px; transform:translateX(-50%); background: linear-gradient(180deg, #0a0a12 0%, #1a121a 40%, #0a0a10 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; box-shadow: 0 4px 12px rgba(0,0,0,.8); animation: mr-breathe 4s ease-in-out infinite; }
.scn-montresor-revenge-vow .candle { position:absolute; bottom:30%; left:48%; width:6px; height:20px; background: linear-gradient(180deg, #f0d0a0 0%, #8a6a3a 100%); border-radius: 3px 3px 0 0; transform-origin: bottom center; animation: mr-candle 3s ease-in-out infinite; }
.scn-montresor-revenge-vow .glow-mr { position:absolute; bottom:28%; left:48%; width:40px; height:40px; background: radial-gradient(circle, rgba(240,200,120,.7) 0%, rgba(200,160,80,.3) 40%, transparent 70%); border-radius:50%; animation: mr-glow 2s ease-in-out infinite alternate; }
.scn-montresor-revenge-vow .shadow-mr { position:absolute; bottom:20%; right:30%; width:80px; height:100px; background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,.6) 0%, transparent 70%); filter: blur(8px); animation: mr-shadow-sway 5s ease-in-out infinite; }
@keyframes mr-pulse { 0% { opacity:.85 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes mr-breathe { 0%,100% { transform: translateX(-50%) scaleY(1) } 50% { transform: translateX(-50%) scaleY(1.03) } }
@keyframes mr-candle { 0%,100% { transform: rotate(-2deg) } 50% { transform: rotate(2deg) } }
@keyframes mr-glow { 0% { opacity:.6; transform: scale(.9) } 100% { opacity:.9; transform: scale(1.1) } }
@keyframes mr-shadow-sway { 0%,100% { transform: translateX(0) rotate(-3deg) } 50% { transform: translateX(-5px) rotate(3deg) } }

/* fortunato-wine-pride */
.scn-fortunato-wine-pride {
  background: linear-gradient(180deg, #2a1e14 0%, #3a2a1a 50%, #1e1410 100%),
              radial-gradient(ellipse at 50% 40%, #4a2a1a 0%, transparent 60%);
}
.scn-fortunato-wine-pride .bg-warmfw { position:absolute; inset:0; background: linear-gradient(90deg, #1a1210 0%, #2a1e18 50%, #1a1210 100%); animation: fw-warmPulse 10s ease-in-out infinite alternate; }
.scn-fortunato-wine-pride .table-fw { position:absolute; bottom:25%; left:20%; right:20%; height:12px; background: linear-gradient(180deg, #5a3a2a 0%, #3a2218 100%); border-radius: 4px; box-shadow: 0 4px 8px rgba(0,0,0,.5); }
.scn-fortunato-wine-pride .bottle-fw { position:absolute; bottom:35%; left:38%; width:16px; height:40px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%); border-radius: 50% 50% 10% 10% / 20% 20% 80% 80%; transform-origin: bottom center; animation: fw-bottle 6s ease-in-out infinite; }
.scn-fortunato-wine-pride .glass-fw { position:absolute; bottom:33%; left:55%; width:14px; height:30px; background: linear-gradient(180deg, rgba(200,180,140,.8) 0%, rgba(180,120,70,.6) 80%); border-radius: 0 0 4px 4px; box-shadow: 0 0 8px 2px rgba(200,160,80,.3); animation: fw-glass 5s ease-in-out infinite; }
.scn-fortunato-wine-pride .figure-fw { position:absolute; bottom:20%; left:30%; width:30px; height:60px; background: linear-gradient(180deg, #1a1210 0%, #2a1a14 50%, #1a1210 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: fw-figure 4s ease-in-out infinite; }
.scn-fortunato-wine-pride .hearth-fw { position:absolute; bottom:10%; left:60%; width:60px; height:40px; background: radial-gradient(ellipse at 50% 100%, #8a3a1a 0%, #3a1a0a 70%); border-radius: 50% 50% 30% 30% / 60% 60% 20% 20%; animation: fw-hearth 2s ease-in-out infinite alternate; }
.scn-fortunato-wine-pride .light-fw { position:absolute; bottom:30%; left:60%; width:80px; height:80px; background: radial-gradient(circle, rgba(200,120,40,.6) 0%, rgba(160,80,20,.2) 30%, transparent 70%); border-radius:50%; animation: fw-light 3s ease-in-out infinite alternate; }
@keyframes fw-warmPulse { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes fw-bottle { 0%,100% { transform: rotate(-2deg) } 50% { transform: rotate(3deg) } }
@keyframes fw-glass { 0%,100% { transform: translateY(0) rotate(-1deg) } 50% { transform: translateY(-2px) rotate(1deg) } }
@keyframes fw-figure { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } }
@keyframes fw-hearth { 0% { transform: scaleY(.9); opacity:.7 } 100% { transform: scaleY(1.1); opacity:1 } }
@keyframes fw-light { 0% { transform: scale(.95); opacity:.6 } 100% { transform: scale(1.05); opacity:.9 } }

/* carnival-meeting */
.scn-carnival-meeting {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2038 30%, #4a2a3a 60%, #1a1a1e 100%),
              radial-gradient(ellipse at 50% 0%, #4a3a5a 0%, transparent 70%);
}
.scn-carnival-meeting .sky-cm { position:absolute; inset:0 0 35% 0; background: linear-gradient(180deg, #2a1a2e 0%, #4a2a3a 50%, #6a3a4a 100%); animation: cm-sky 15s ease-in-out infinite alternate; }
.scn-carnival-meeting .building-left-cm { position:absolute; bottom:10%; left:0; width:30%; height:80%; background: linear-gradient(180deg, #1a1220 0%, #2a1a2e 100%); clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%); box-shadow: inset -8px 0 20px rgba(0,0,0,.5); animation: cm-bldg 20s ease-in-out infinite alternate; }
.scn-carnival-meeting .building-right-cm { position:absolute; bottom:10%; right:0; width:30%; height:90%; background: linear-gradient(180deg, #1a1220 0%, #2a1a2e 100%); clip-path: polygon(0% 0%, 100% 0%, 100% 100%, 0% 100%); box-shadow: inset 8px 0 20px rgba(0,0,0,.5); animation: cm-bldg 20s ease-in-out infinite alternate-reverse; }
.scn-carnival-meeting .ground-cm { position:absolute; bottom:0; left:0; right:0; height:15%; background: linear-gradient(180deg, #2a1a1e 0%, #1a0e10 100%); box-shadow: inset 0 8px 20px rgba(0,0,0,.6); }
.scn-carnival-meeting .fortunato-figure-cm { position:absolute; bottom:10%; left:35%; width:34px; height:70px; background: linear-gradient(180deg, #6a4a3a 0%, #4a2a1a 40%, #2a1a10 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cm-fortunato 3s ease-in-out infinite; }
.scn-carnival-meeting .montresor-figure-cm { position:absolute; bottom:10%; left:55%; width:28px; height:65px; background: linear-gradient(180deg, #1a1218 0%, #0a060a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cm-montresor 4s ease-in-out infinite; }
.scn-carnival-meeting .lantern-cm { position:absolute; bottom:45%; left:50%; width:8px; height:10px; background: radial-gradient(circle, #f0d080 0%, #c09040 60%); border-radius: 50%; box-shadow: 0 0 20px 6px rgba(240,200,80,.5); animation: cm-lantern 2s ease-in-out infinite alternate; }
.scn-carnival-meeting .cloud-cm { position:absolute; top:12%; right:5%; width:70px; height:16px; background: linear-gradient(180deg, rgba(200,180,200,.3) 0%, transparent 100%); border-radius:50%; filter: blur(4px); animation: cm-cloud 40s linear infinite; }
@keyframes cm-sky { 0% { opacity:.7 } 50% { opacity:.9 } 100% { opacity:.8 } }
@keyframes cm-bldg { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes cm-fortunato { 0%,100% { transform: translateX(0) rotate(-2deg) } 50% { transform: translateX(4px) rotate(2deg) } }
@keyframes cm-montresor { 0%,100% { transform: translateX(0) } 50% { transform: translateX(-3px) } }
@keyframes cm-lantern { 0% { transform: rotate(-4deg) translateY(0); opacity:.8 } 100% { transform: rotate(4deg) translateY(-2px); opacity:1 } }
@keyframes cm-cloud { 0% { transform: translateX(0) } 100% { transform: translateX(-120vw) } }

/* amontillado-deception */
.scn-amontillado-deception {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2030 40%, #3a2a3e 100%),
              radial-gradient(ellipse at 50% 60%, #2a2030 0%, transparent 60%);
}
.scn-amontillado-deception .bg-dusk-ad { position:absolute; inset:0; background: linear-gradient(180deg, #1a1a2e 0%, #2a2030 50%, #1a1a22 100%); animation: ad-dusk 12s ease-in-out infinite alternate; }
.scn-amontillado-deception .ground-ad { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #2a1e1a 0%, #1a120e 100%); box-shadow: inset 0 8px 12px rgba(0,0,0,.5); }
.scn-amontillado-deception .cask-ad { position:absolute; bottom:22%; left:40%; width:50px; height:65px; background: linear-gradient(180deg, #5a3a2a 0%, #3a2218 100%); border-radius: 10% 10% 20% 20% / 20% 20% 30% 30%; box-shadow: 0 6px 12px rgba(0,0,0,.6); transform-origin: bottom center; animation: ad-cask 6s ease-in-out infinite; }
.scn-amontillado-deception .figure-left-ad { position:absolute; bottom:15%; left:25%; width:26px; height:60px; background: linear-gradient(180deg, #1a1218 0%, #0a060a 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ad-left 8s ease-in-out infinite; }
.scn-amontillado-deception .figure-right-ad { position:absolute; bottom:15%; right:25%; width:28px; height:62px; background: linear-gradient(180deg, #1a1218 0%, #2a1a1e 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ad-right 8s ease-in-out infinite; }
.scn-amontillado-deception .glow-ad { position:absolute; bottom:35%; left:45%; width:30px; height:30px; background: radial-gradient(circle, rgba(200,180,150,.4) 0%, transparent 70%); border-radius:50%; animation: ad-glow 4s ease-in-out infinite alternate; }
@keyframes ad-dusk { 0% { opacity:.8 } 50% { opacity:1 } 100% { opacity:.9 } }
@keyframes ad-cask { 0%,100% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } }
@keyframes ad-left { 0%,100% { transform: translateX(0) rotate(-1deg) } 50% { transform: translateX(3px) rotate(1deg) } }
@keyframes ad-right { 0%,100% { transform: translateX(0) rotate(1deg) } 50% { transform: translateX(-3px) rotate(-1deg) } }
@keyframes ad-glow { 0% { opacity:.5; transform: scale(.9) } 100% { opacity:.8; transform: scale(1.1) } }

.scn-niche-recess-summary { background: linear-gradient(180deg, #1c1824 0%, #15111c 60%, #0f0c1a 100%), radial-gradient(ellipse at 50% 30%, #2a2240 0%, transparent 70%); }
.scn-niche-recess-summary .wall { position:absolute; inset:0; background: linear-gradient(90deg, #2a2233 0%, #1e1a2a 30%, #0f0c1a 70%, #1e1a2a 100%); animation: nr-wall 15s ease-in-out infinite alternate; }
.scn-niche-recess-summary .recess { position:absolute; left:30%; top:15%; width:40%; height:70%; background: linear-gradient(180deg, #0a0810 0%, #05030a 100%); border-radius: 2% 2% 8% 8%; box-shadow: inset 0 0 30px rgba(0,0,0,0.8); animation: nr-recess 12s ease-in-out infinite alternate; }
.scn-niche-recess-summary .bone { position:absolute; width:6px; height:16px; background: linear-gradient(180deg, #b8b0a0 0%, #8a7a6a 100%); border-radius: 40% 40% 60% 60% / 60% 60% 40% 40%; transform-origin: center 80%; opacity:0.7; box-shadow: 0 0 4px rgba(0,0,0,0.5); }
.scn-niche-recess-summary .bone1 { left:38%; top:62%; animation: nr-bone1 20s ease-in-out infinite; }
.scn-niche-recess-summary .bone2 { left:52%; top:68%; transform: rotate(-30deg); animation: nr-bone2 18s ease-in-out infinite 2s; }
.scn-niche-recess-summary .bone3 { left:45%; top:75%; transform: rotate(20deg); animation: nr-bone3 22s ease-in-out infinite 5s; }
.scn-niche-recess-summary .shadow { position:absolute; bottom:0; left:0; right:0; height:40%; background: linear-gradient(180deg, transparent 0%, rgba(10,8,16,0.6) 100%); animation: nr-shadow 8s ease-in-out infinite alternate; }
@keyframes nr-wall { 0% { opacity:0.9 } 50% { opacity:0.8 } 100% { opacity:0.95 } }
@keyframes nr-recess { 0% { transform: scaleX(1) scaleY(1) } 50% { transform: scaleX(0.98) scaleY(1.02) } 100% { transform: scaleX(1) scaleY(1) } }
@keyframes nr-bone1 { 0%,100% { transform: translate(0,0) rotate(0deg) } 25% { transform: translate(2px,3px) rotate(5deg) } 50% { transform: translate(-1px,5px) rotate(-3deg) } 75% { transform: translate(1px,2px) rotate(2deg) } }
@keyframes nr-bone2 { 0%,100% { transform: translate(0,0) rotate(-30deg) } 30% { transform: translate(-2px,2px) rotate(-25deg) } 60% { transform: translate(1px,4px) rotate(-35deg) } }
@keyframes nr-bone3 { 0%,100% { transform: translate(0,0) rotate(20deg) } 40% { transform: translate(3px,-1px) rotate(25deg) } 80% { transform: translate(-2px,2px) rotate(15deg) } }
@keyframes nr-shadow { 0% { opacity:0.5 } 50% { opacity:0.7 } 100% { opacity:0.6 } }

.scn-item-staples-chain { background: linear-gradient(180deg, #2b1a0f 0%, #1f1310 40%, #120a0a 100%), radial-gradient(ellipse at 30% 60%, #5a3a1a 0%, transparent 70%); }
.scn-item-staples-chain .wall { position:absolute; inset:0; background: linear-gradient(90deg, #3a2a1a 0%, #241810 40%, #1a1008 60%, #241810 100%); animation: isc-wall 12s ease-in-out infinite alternate; }
.scn-item-staples-chain .torch { position:absolute; left:20%; bottom:40%; width:8px; height:30px; background: linear-gradient(180deg, #8a6a3a 0%, #4a3220 100%); border-radius: 4px 4px 2px 2px; transform-origin: bottom center; animation: isc-torch 2s ease-in-out infinite; }
.scn-item-staples-chain .torchlight { position:absolute; left:15%; bottom:35%; width:60px; height:80px; background: radial-gradient(ellipse, rgba(255,150,50,0.4) 0%, rgba(200,100,30,0.15) 50%, transparent 80%); border-radius: 50%; filter: blur(8px); animation: isc-flicker 1.5s ease-in-out infinite alternate; }
.scn-item-staples-chain .staple { position:absolute; width:12px; height:20px; background: linear-gradient(90deg, #6a5a4a 0%, #4a3a2a 100%); border-radius: 2px; box-shadow: 0 0 6px rgba(0,0,0,0.8); }
.scn-item-staples-chain .staple1 { left:55%; bottom:50%; }
.scn-item-staples-chain .staple2 { left:65%; bottom:50%; }
.scn-item-staples-chain .chain { position:absolute; left:45%; bottom:45%; width:120px; height:8px; background: repeating-linear-gradient(90deg, #5a4a3a 0px, #5a4a3a 8px, transparent 8px, transparent 16px); border-radius: 4px; box-shadow: 0 0 8px rgba(0,0,0,0.6); animation: isc-chain 4s ease-in-out infinite; }
.scn-item-staples-chain .figure { position:absolute; right:25%; bottom:30%; width:30px; height:60px; background: linear-gradient(180deg, #1a1410 0%, #0a0808 100%); border-radius: 40% 40% 50% 50% / 60% 60% 40% 40%; transform-origin: bottom center; animation: isc-figure 5s ease-in-out infinite; }
@keyframes isc-wall { 0% { opacity:0.8 } 50% { opacity:0.9 } 100% { opacity:0.85 } }
@keyframes isc-torch { 0%,100% { transform: rotate(-2deg) scaleY(1) } 25% { transform: rotate(3deg) scaleY(1.05) } 50% { transform: rotate(-1deg) scaleY(0.95) } 75% { transform: rotate(2deg) scaleY(1.02) } }
@keyframes isc-flicker { 0% { opacity:0.7; transform: translate(0,0) } 25% { opacity:0.9; transform: translate(2px,-1px) } 50% { opacity:0.6; transform: translate(-1px,1px) } 75% { opacity:0.85; transform: translate(1px,0) } 100% { opacity:0.75; transform: translate(-2px,1px) } }
@keyframes isc-chain { 0%,100% { transform: translateY(0) rotate(0deg) } 20% { transform: translateY(3px) rotate(2deg) } 40% { transform: translateY(-2px) rotate(-1deg) } 60% { transform: translateY(4px) rotate(1deg) } 80% { transform: translateY(-3px) rotate(-2deg) } }
@keyframes isc-figure { 0%,100% { transform: translateY(0) rotate(0deg) } 25% { transform: translateY(-2px) rotate(-2deg) } 50% { transform: translateY(1px) rotate(0deg) } 75% { transform: translateY(-3px) rotate(2deg) } }

.scn-fettering-fortunato { background: linear-gradient(180deg, #2c1a14 0%, #1f100c 40%, #0e0806 100%), radial-gradient(ellipse at 50% 60%, #5a2a1a 0%, transparent 70%); }
.scn-fettering-fortunato .granite { position:absolute; inset:0; background: linear-gradient(180deg, #3a2a22 0%, #241a14 50%, #18100a 100%); animation: ff-granite 10s ease-in-out infinite alternate; }
.scn-fettering-fortunato .staple { position:absolute; width:14px; height:24px; background: linear-gradient(90deg, #7a5a3a 0%, #4a3220 100%); border-radius: 2px; box-shadow: 0 0 10px rgba(0,0,0,0.9); }
.scn-fettering-fortunato .staple1 { left:40%; bottom:50%; transform: rotate(10deg); }
.scn-fettering-fortunato .staple2 { left:55%; bottom:50%; transform: rotate(-10deg); }
.scn-fettering-fortunato .chain { position:absolute; left:38%; bottom:48%; width:130px; height:10px; background: repeating-linear-gradient(90deg, #6a4a34 0px, #6a4a34 10px, transparent 10px, transparent 20px); border-radius: 5px; box-shadow: 0 0 8px rgba(0,0,0,0.7); animation: ff-chain 3s ease-in-out infinite; }
.scn-fettering-fortunato .padlock { position:absolute; left:50%; bottom:40%; width:16px; height:18px; background: linear-gradient(180deg, #8a6a4a 0%, #5a3a2a 100%); border-radius: 20% 20% 30% 30%; transform: translateX(-50%); box-shadow: 0 0 12px rgba(0,0,0,0.8); animation: ff-lock 4s ease-in-out infinite; }
.scn-fettering-fortunato .figure { position:absolute; left:45%; bottom:30%; width:36px; height:70px; background: linear-gradient(180deg, #1a0f0a 0%, #0a0604 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ff-figure 6s ease-in-out infinite; }
.scn-fettering-fortunato .shadow { position:absolute; bottom:0; left:0; right:0; height:50%; background: linear-gradient(180deg, transparent 0%, rgba(10,6,4,0.8) 100%); animation: ff-shadow 9s ease-in-out infinite alternate; }
@keyframes ff-granite { 0% { opacity:0.85 } 50% { opacity:0.75 } 100% { opacity:0.9 } }
@keyframes ff-chain { 0%,100% { transform: translateY(0) rotate(0deg) } 30% { transform: translateY(5px) rotate(3deg) } 60% { transform: translateY(-3px) rotate(-2deg) } }
@keyframes ff-lock { 0%,100% { transform: translateX(-50%) rotate(0deg) } 20% { transform: translateX(-50%) rotate(5deg) } 40% { transform: translateX(-50%) rotate(-5deg) } 60% { transform: translateX(-50%) rotate(3deg) } 80% { transform: translateX(-50%) rotate(-3deg) } }
@keyframes ff-figure { 0%,100% { transform: translateY(0) rotate(0deg) } 20% { transform: translateY(-3px) rotate(-2deg) } 40% { transform: translateY(2px) rotate(1deg) } 60% { transform: translateY(-5px) rotate(-3deg) } 80% { transform: translateY(1px) rotate(0deg) } }
@keyframes ff-shadow { 0% { opacity:0.7 } 50% { opacity:0.5 } 100% { opacity:0.8 } }

.scn-walling-begins { background: linear-gradient(180deg, #2e1a12 0%, #1f0e0a 40%, #100804 100%), radial-gradient(ellipse at 60% 50%, #5a2e18 0%, transparent 70%); }
.scn-walling-begins .backwall { position:absolute; inset:0; background: linear-gradient(90deg, #3a2418 0%, #2a1810 30%, #1a0e08 70%, #2a1810 100%); animation: wb-back 15s ease-in-out infinite alternate; }
.scn-walling-begins .brick { position:absolute; width:16%; height:12%; background: linear-gradient(180deg, #6a3a22 0%, #4a2814 100%); border-radius: 2px; box-shadow: 0 0 6px rgba(0,0,0,0.8); border: 1px solid #2a1810; }
.scn-walling-begins .brick1 { left:40%; bottom:40%; animation: wb-brick1 8s ease-in-out infinite; }
.scn-walling-begins .brick2 { left:55%; bottom:38%; animation: wb-brick2 9s ease-in-out infinite 1s; }
.scn-walling-begins .brick3 { left:42%; bottom:26%; animation: wb-brick3 7s ease-in-out infinite 2s; }
.scn-walling-begins .brick4 { left:58%; bottom:24%; animation: wb-brick4 10s ease-in-out infinite 3s; }
.scn-walling-begins .torch { position:absolute; left:70%; bottom:20%; width:8px; height:30px; background: linear-gradient(180deg, #8a5a30 0%, #4a2a18 100%); border-radius: 4px 4px 2px 2px; transform-origin: bottom center; animation: wb-torch 2s ease-in-out infinite; }
.scn-walling-begins .figure { position:absolute; right:25%; bottom:30%; width:30px; height:60px; background: linear-gradient(180deg, #1a0e08 0%, #0a0604 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: wb-figure 5s ease-in-out infinite; }
.scn-walling-begins .mortar { position:absolute; left:38%; bottom:36%; width:30%; height:4px; background: repeating-linear-gradient(90deg, #8a7a6a 0px, #8a7a6a 4px, transparent 4px, transparent 8px); border-radius: 2px; opacity:0.5; animation: wb-mortar 6s ease-in-out infinite; }
@keyframes wb-back { 0% { opacity:0.8 } 50% { opacity:0.9 } 100% { opacity:0.85 } }
@keyframes wb-brick1 { 0%,100% { transform: translateX(0) translateY(0) } 30% { transform: translateX(-3px) translateY(2px) } 60% { transform: translateX(2px) translateY(-1px) } }
@keyframes wb-brick2 { 0%,100% { transform: translateX(0) translateY(0) } 25% { transform: translateX(2px) translateY(3px) } 50% { transform: translateX(-2px) translateY(-2px) } 75% { transform: translateX(1px) translateY(1px) } }
@keyframes wb-brick3 { 0%,100% { transform: translateX(0) translateY(0) } 35% { transform: translateX(4px) translateY(-2px) } 70% { transform: translateX(-3px) translateY(1px) } }
@keyframes wb-brick4 { 0%,100% { transform: translateX(0) translateY(0) } 20% { transform: translateX(-2px) translateY(4px) } 40% { transform: translateX(3px) translateY(-3px) } 60% { transform: translateX(-1px) translateY(2px) } 80% { transform: translateX(2px) translateY(-1px) } }
@keyframes wb-torch { 0%,100% { transform: rotate(-3deg) scaleY(1) } 25% { transform: rotate(4deg) scaleY(1.08) } 50% { transform: rotate(-2deg) scaleY(0.92) } 75% { transform: rotate(3deg) scaleY(1.05) } }
@keyframes wb-figure { 0%,100% { transform: translateY(0) rotate(0deg) } 20% { transform: translateY(-2px) rotate(-2deg) } 40% { transform: translateY(1px) rotate(1deg) } 60% { transform: translateY(-3px) rotate(-3deg) } 80% { transform: translateY(0) rotate(0deg) } }
@keyframes wb-mortar { 0%,100% { transform: scaleX(1) } 50% { transform: scaleX(0.9) opacity(0.3) } }

.scn-laugh-from-niche {
  background:
    radial-gradient(ellipse at 40% 60%, #4a2a1a 0%, #1a0a00 50%, #0a0500 100%),
    linear-gradient(180deg, #0a0500 0%, #1a0a0a 30%, #2a1a0a 60%, #0a0500 100%);
}
.scn-laugh-from-niche .wall {
  position: absolute; bottom: 10%; left: 10%; right: 10%; top: 15%;
  background:
    repeating-linear-gradient(90deg, #3a2a1a 0px, #2a1a0a 2px, #3a2a1a 4px, #1a0a00 6px, #3a2a1a 8px),
    linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 50%, #1a0a00 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 60px #0a0500;
  animation: ln-wall 30s ease-in-out infinite alternate;
}
.scn-laugh-from-niche .niche {
  position: absolute; bottom: 30%; left: 42%; width: 18%; height: 35%;
  background: #0a0500;
  border-radius: 0 0 20% 20% / 0 0 40% 40%;
  box-shadow: inset 0 0 40px #0a0500, 0 0 30px #1a0a00;
  animation: ln-niche 15s ease-in-out infinite alternate;
}
.scn-laugh-from-niche .stone {
  position: absolute; bottom: 52%; left: 44%; width: 14%; height: 10%;
  background: linear-gradient(160deg, #5a4a3a 0%, #3a2a1a 50%, #2a1a0a 100%);
  border-radius: 2px;
  box-shadow: 0 6px 12px #0a0500;
  transform: rotate(-4deg);
  animation: ln-stone 8s ease-in-out infinite;
}
.scn-laugh-from-niche .torch {
  position: absolute; bottom: 22%; left: 28%; width: 2%; height: 18%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 60%, #1a0a00 100%);
  border-radius: 2px;
  transform: rotate(6deg);
  animation: ln-torch 4s ease-in-out infinite alternate;
}
.scn-laugh-from-niche .flame {
  position: absolute; bottom: 38%; left: 27.5%; width: 3%; height: 6%;
  background: radial-gradient(circle, #ffd080 0%, #c08040 40%, #8a4a2a 70%, transparent 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  box-shadow: 0 0 40px 10px #c08040, 0 0 80px 20px rgba(192,128,64,.3);
  animation: ln-flame 2s ease-in-out infinite alternate;
}
.scn-laugh-from-niche .figure {
  position: absolute; bottom: 32%; left: 46%; width: 8%; height: 22%;
  background: linear-gradient(180deg, #0a0500 0%, #1a0a00 50%, #0a0500 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ln-figure 6s ease-in-out infinite;
}
.scn-laugh-from-niche .dust-1 {
  position: absolute; bottom: 20%; left: 30%; width: 4%; height: 4%;
  background: radial-gradient(circle, rgba(200,180,160,.3) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(2px);
  animation: ln-dust-1 12s linear infinite;
}
.scn-laugh-from-niche .dust-2 {
  position: absolute; bottom: 25%; left: 60%; width: 3%; height: 3%;
  background: radial-gradient(circle, rgba(200,180,160,.2) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(2px);
  animation: ln-dust-2 16s linear infinite reverse;
}
@keyframes ln-wall {
  0% { opacity: .9; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.01); }
  100% { opacity: .92; transform: scale(1); }
}
@keyframes ln-niche {
  0% { opacity: .7; transform: scaleY(1); }
  50% { opacity: .85; transform: scaleY(1.05); }
  100% { opacity: .75; transform: scaleY(.98); }
}
@keyframes ln-stone {
  0% { transform: rotate(-4deg) translateY(0); }
  50% { transform: rotate(-3deg) translateY(-3px); }
  100% { transform: rotate(-4deg) translateY(0); }
}
@keyframes ln-torch {
  0% { transform: rotate(6deg) scaleY(1); }
  50% { transform: rotate(5deg) scaleY(1.02); }
  100% { transform: rotate(6deg) scaleY(1); }
}
@keyframes ln-flame {
  0% { transform: scaleY(1) scaleX(.9); opacity: .8; }
  50% { transform: scaleY(1.15) scaleX(1); opacity: 1; }
  100% { transform: scaleY(.95) scaleX(.85); opacity: .85; }
}
@keyframes ln-figure {
  0% { transform: translateY(0) rotate(-2deg); opacity: .6; }
  50% { transform: translateY(-4px) rotate(2deg); opacity: .75; }
  100% { transform: translateY(0) rotate(-1deg); opacity: .6; }
}
@keyframes ln-dust-1 {
  0% { transform: translate(0, 0) scale(1); opacity: .3; }
  50% { transform: translate(15px, -10px) scale(1.5); opacity: .1; }
  100% { transform: translate(30px, -20px) scale(2); opacity: 0; }
}
@keyframes ln-dust-2 {
  0% { transform: translate(0, 0) scale(1); opacity: .2; }
  50% { transform: translate(-12px, -8px) scale(1.3); opacity: .1; }
  100% { transform: translate(-24px, -16px) scale(1.8); opacity: 0; }
}

.scn-fortunato-laughing {
  background:
    radial-gradient(ellipse at 50% 70%, #3a1a0a 0%, #1a0a00 50%, #0a0500 100%),
    linear-gradient(180deg, #0a0500 0%, #1a0a0a 40%, #2a1a0a 70%, #0a0500 100%);
}
.scn-fortunato-laughing .wall {
  position: absolute; bottom: 8%; left: 8%; right: 8%; top: 12%;
  background:
    repeating-linear-gradient(90deg, #3a2a1a 0px, #2a1a0a 2px, #3a2a1a 4px, #1a0a00 6px, #3a2a1a 8px),
    linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 50%, #1a0a00 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 50px #0a0500;
  animation: fl-wall 25s ease-in-out infinite alternate;
}
.scn-fortunato-laughing .aperture {
  position: absolute; bottom: 40%; left: 46%; width: 8%; height: 12%;
  background: #0a0500;
  border-radius: 30% 30% 10% 10% / 40% 40% 10% 10%;
  box-shadow: inset 0 0 30px #0a0500, 0 0 20px #1a0a00;
  animation: fl-aperture 12s ease-in-out infinite alternate;
}
.scn-fortunato-laughing .torch {
  position: absolute; bottom: 20%; left: 25%; width: 2%; height: 16%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 60%, #1a0a00 100%);
  border-radius: 2px;
  transform: rotate(-8deg);
  animation: fl-torch 4s ease-in-out infinite alternate;
}
.scn-fortunato-laughing .flame {
  position: absolute; bottom: 35%; left: 24.5%; width: 3%; height: 7%;
  background: radial-gradient(circle, #ffd080 0%, #c08040 40%, #8a4a2a 70%, transparent 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  box-shadow: 0 0 50px 15px #c08040, 0 0 100px 25px rgba(192,128,64,.3);
  animation: fl-flame 2s ease-in-out infinite alternate;
}
.scn-fortunato-laughing .bells {
  position: absolute; bottom: 55%; left: 49%; width: 2%; height: 4%;
  background: radial-gradient(circle, #a08060 0%, #6a5a4a 100%);
  border-radius: 50%;
  box-shadow: 0 2px 6px #0a0500;
  animation: fl-bells 3s ease-in-out infinite;
}
.scn-fortunato-laughing .figure {
  position: absolute; bottom: 35%; left: 47%; width: 6%; height: 18%;
  background: linear-gradient(180deg, #0a0500 0%, #1a0a00 50%, #0a0500 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fl-figure 5s ease-in-out infinite;
}
.scn-fortunato-laughing .echo-1 {
  position: absolute; bottom: 50%; left: 60%; width: 6%; height: 6%;
  background: radial-gradient(circle, rgba(200,180,160,.15) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(3px);
  animation: fl-echo-1 8s ease-in-out infinite;
}
.scn-fortunato-laughing .echo-2 {
  position: absolute; bottom: 45%; left: 70%; width: 5%; height: 5%;
  background: radial-gradient(circle, rgba(200,180,160,.1) 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(3px);
  animation: fl-echo-2 10s ease-in-out infinite reverse;
}
@keyframes fl-wall {
  0% { opacity: .9; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.015); }
  100% { opacity: .92; transform: scale(1); }
}
@keyframes fl-aperture {
  0% { opacity: .7; transform: scaleY(1); }
  50% { opacity: .9; transform: scaleY(1.08); }
  100% { opacity: .75; transform: scaleY(.95); }
}
@keyframes fl-torch {
  0% { transform: rotate(-8deg) scaleY(1); }
  50% { transform: rotate(-7deg) scaleY(1.03); }
  100% { transform: rotate(-8deg) scaleY(1); }
}
@keyframes fl-flame {
  0% { transform: scaleY(1) scaleX(.9); opacity: .8; }
  50% { transform: scaleY(1.2) scaleX(1); opacity: 1; }
  100% { transform: scaleY(.9) scaleX(.85); opacity: .85; }
}
@keyframes fl-bells {
  0% { transform: translateY(0) rotate(0); }
  50% { transform: translateY(-4px) rotate(20deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes fl-figure {
  0% { transform: translateY(0) rotate(-2deg) scaleX(1); opacity: .5; }
  50% { transform: translateY(-3px) rotate(2deg) scaleX(1.05); opacity: .7; }
  100% { transform: translateY(0) rotate(-1deg) scaleX(1); opacity: .5; }
}
@keyframes fl-echo-1 {
  0% { transform: translateX(0) scale(1); opacity: .15; }
  50% { transform: translateX(20px) scale(1.8); opacity: .05; }
  100% { transform: translateX(40px) scale(2.5); opacity: 0; }
}
@keyframes fl-echo-2 {
  0% { transform: translateX(0) scale(1); opacity: .1; }
  50% { transform: translateX(-15px) scale(1.5); opacity: .05; }
  100% { transform: translateX(-30px) scale(2); opacity: 0; }
}

.scn-prayer-calls {
  background:
    radial-gradient(ellipse at 45% 60%, #4a2a1a 0%, #1a0a00 50%, #0a0500 100%),
    linear-gradient(180deg, #0a0500 0%, #1a0a0a 30%, #2a1a0a 60%, #0a0500 100%);
}
.scn-prayer-calls .wall {
  position: absolute; bottom: 10%; left: 12%; right: 12%; top: 18%;
  background:
    repeating-linear-gradient(90deg, #3a2a1a 0px, #2a1a0a 2px, #3a2a1a 4px, #1a0a00 6px, #3a2a1a 8px),
    linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 50%, #1a0a00 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 70px #0a0500;
  animation: pc-wall 35s ease-in-out infinite alternate;
}
.scn-prayer-calls .opening {
  position: absolute; bottom: 38%; left: 44%; width: 12%; height: 18%;
  background: #0a0500;
  border-radius: 0 0 30% 30% / 0 0 50% 50%;
  box-shadow: inset 0 0 40px #0a0500, 0 0 30px #1a0a00;
  animation: pc-opening 14s ease-in-out infinite alternate;
}
.scn-prayer-calls .hands {
  position: absolute; bottom: 42%; left: 47%; width: 6%; height: 12%;
  background: linear-gradient(180deg, #3a2a1a 0%, #2a1a0a 80%, transparent 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 20% 20%;
  transform-origin: bottom center;
  animation: pc-hands 4s ease-in-out infinite;
}
.scn-prayer-calls .torch {
  position: absolute; bottom: 22%; left: 30%; width: 2%; height: 18%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 60%, #1a0a00 100%);
  border-radius: 2px;
  transform: rotate(5deg);
  animation: pc-torch 4s ease-in-out infinite alternate;
}
.scn-prayer-calls .flame {
  position: absolute; bottom: 39%; left: 29.5%; width: 3%; height: 6%;
  background: radial-gradient(circle, #ffd080 0%, #c08040 40%, #8a4a2a 70%, transparent 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  box-shadow: 0 0 45px 12px #c08040, 0 0 90px 20px rgba(192,128,64,.3);
  animation: pc-flame 2s ease-in-out infinite alternate;
}
.scn-prayer-calls .cloak {
  position: absolute; bottom: 25%; left: 32%; width: 8%; height: 20%;
  background: linear-gradient(180deg, #1a0a00 0%, #0a0500 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 20% 20%;
  transform-origin: top center;
  animation: pc-cloak 7s ease-in-out infinite;
}
.scn-prayer-calls .stone {
  position: absolute; bottom: 50%; left: 42%; width: 12%; height: 8%;
  background: linear-gradient(160deg, #5a4a3a 0%, #3a2a1a 50%, #2a1a0a 100%);
  border-radius: 2px;
  box-shadow: 0 4px 8px #0a0500;
  transform: rotate(2deg);
  animation: pc-stone 9s ease-in-out infinite;
}
.scn-prayer-calls .shadow {
  position: absolute; bottom: 0; left: 20%; right: 20%; height: 30%;
  background: linear-gradient(180deg, transparent 0%, #0a0500 100%);
  opacity: .6;
  animation: pc-shadow 20s ease-in-out infinite alternate;
}
@keyframes pc-wall {
  0% { opacity: .9; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.01); }
  100% { opacity: .92; transform: scale(1); }
}
@keyframes pc-opening {
  0% { opacity: .7; transform: scaleY(1); }
  50% { opacity: .9; transform: scaleY(1.06); }
  100% { opacity: .75; transform: scaleY(.96); }
}
@keyframes pc-hands {
  0% { transform: translateY(0) rotate(-3deg); opacity: .6; }
  50% { transform: translateY(-6px) rotate(3deg); opacity: .8; }
  100% { transform: translateY(0) rotate(-2deg); opacity: .6; }
}
@keyframes pc-torch {
  0% { transform: rotate(5deg) scaleY(1); }
  50% { transform: rotate(4deg) scaleY(1.02); }
  100% { transform: rotate(5deg) scaleY(1); }
}
@keyframes pc-flame {
  0% { transform: scaleY(1) scaleX(.9); opacity: .8; }
  50% { transform: scaleY(1.15) scaleX(1); opacity: 1; }
  100% { transform: scaleY(.9) scaleX(.85); opacity: .85; }
}
@keyframes pc-cloak {
  0% { transform: rotate(0) scaleX(1); }
  50% { transform: rotate(2deg) scaleX(1.05); }
  100% { transform: rotate(0) scaleX(1); }
}
@keyframes pc-stone {
  0% { transform: rotate(2deg) translateY(0); }
  50% { transform: rotate(1deg) translateY(-2px); }
  100% { transform: rotate(2deg) translateY(0); }
}
@keyframes pc-shadow {
  0% { opacity: .5; }
  50% { opacity: .7; }
  100% { opacity: .55; }
}

.scn-final-sealing {
  background:
    radial-gradient(ellipse at 50% 50%, #3a1a0a 0%, #1a0a00 50%, #0a0500 100%),
    linear-gradient(180deg, #0a0500 0%, #1a0a0a 40%, #2a1a0a 70%, #0a0500 100%);
}
.scn-final-sealing .wall {
  position: absolute; bottom: 5%; left: 5%; right: 5%; top: 10%;
  background:
    repeating-linear-gradient(90deg, #3a2a1a 0px, #2a1a0a 2px, #3a2a1a 4px, #1a0a00 6px, #3a2a1a 8px),
    linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 50%, #1a0a00 100%);
  border-radius: 4px;
  box-shadow: inset 0 0 80px #0a0500;
  animation: fs-wall 40s ease-in-out infinite alternate;
}
.scn-final-sealing .last-stone {
  position: absolute; bottom: 45%; left: 46%; width: 10%; height: 8%;
  background: linear-gradient(160deg, #5a4a3a 0%, #3a2a1a 50%, #2a1a0a 100%);
  border-radius: 2px;
  box-shadow: 0 6px 12px #0a0500;
  transform: rotate(3deg);
  animation: fs-last-stone 6s ease-in-out infinite;
}
.scn-final-sealing .torch {
  position: absolute; bottom: 30%; left: 35%; width: 2%; height: 16%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 60%, #1a0a00 100%);
  border-radius: 2px;
  transform: rotate(-10deg);
  animation: fs-torch-fall 5s ease-in-out infinite;
}
.scn-final-sealing .flame {
  position: absolute; bottom: 45%; left: 34.5%; width: 3%; height: 5%;
  background: radial-gradient(circle, #ffd080 0%, #c08040 40%, #8a4a2a 70%, transparent 100%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  box-shadow: 0 0 40px 10px #c08040, 0 0 80px 20px rgba(192,128,64,.3);
  animation: fs-flame 2s ease-in-out infinite alternate;
}
.scn-final-sealing .bells {
  position: absolute; bottom: 58%; left: 48%; width: 2%; height: 3%;
  background: radial-gradient(circle, #a08060 0%, #6a5a4a 100%);
  border-radius: 50%;
  box-shadow: 0 2px 6px #0a0500;
  animation: fs-bells 2.5s ease-in-out infinite;
}
.scn-final-sealing .hands {
  position: absolute; bottom: 42%; left: 47%; width: 5%; height: 10%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a00 80%, transparent 100%);
  border-radius: 40% 40% 20% 20% / 50% 50% 20% 20%;
  transform-origin: bottom center;
  animation: fs-hands 3s ease-in-out infinite;
}
.scn-final-sealing .chain {
  position: absolute; bottom: 50%; left: 30%; width: 1.5%; height: 20%;
  background: repeating-linear-gradient(180deg, #5a4a3a 0px, #4a3a2a 4px, #3a2a1a 6px, #5a4a3a 8px);
  border-radius: 2px;
  opacity: .4;
  animation: fs-chain 8s ease-in-out infinite alternate;
}
.scn-final-sealing .shadow {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(180deg, transparent 0%, #0a0500 100%);
  opacity: .7;
  animation: fs-shadow 25s ease-in-out infinite alternate;
}
@keyframes fs-wall {
  0% { opacity: .9; transform: scale(1); }
  50% { opacity: 1; transform: scale(1.01); }
  100% { opacity: .92; transform: scale(1); }
}
@keyframes fs-last-stone {
  0% { transform: rotate(3deg) translateY(0); }
  50% { transform: rotate(2deg) translateY(-4px); }
  100% { transform: rotate(3deg) translateY(0); }
}
@keyframes fs-torch-fall {
  0% { transform: rotate(-10deg) translateY(0); }
  50% { transform: rotate(-15deg) translateY(8px); }
  100% { transform: rotate(-10deg) translateY(0); }
}
@keyframes fs-flame {
  0% { transform: scaleY(1) scaleX(.9); opacity: .7; }
  50% { transform: scaleY(1.1) scaleX(1); opacity: 1; }
  100% { transform: scaleY(.9) scaleX(.85); opacity: .75; }
}
@keyframes fs-bells {
  0% { transform: translateY(0) rotate(0); }
  50% { transform: translateY(-5px) rotate(25deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes fs-hands {
  0% { transform: translateY(0) rotate(-2deg); opacity: .5; }
  50% { transform: translateY(-4px) rotate(2deg); opacity: .7; }
  100% { transform: translateY(0) rotate(-1deg); opacity: .5; }
}
@keyframes fs-chain {
  0% { transform: translateY(0) scaleY(1); opacity: .3; }
  50% { transform: translateY(-3px) scaleY(1.05); opacity: .5; }
  100% { transform: translateY(0) scaleY(1); opacity: .3; }
}
@keyframes fs-shadow {
  0% { opacity: .6; }
  50% { opacity: .8; }
  100% { opacity: .65; }
}

/* scene item-trowel-reveal */
.scn-item-trowel-reveal {
  background: linear-gradient(180deg, #1a0c08 0%, #3a1a0e 30%, #5a2a14 60%, #2a0e06 100%),
              radial-gradient(ellipse at 50% 30%, #b85e2e 0%, transparent 70%);
  overflow: hidden;
}
.scn-item-trowel-reveal .bg-flame {
  position: absolute;
  inset: 0 0 40% 0;
  background: linear-gradient(180deg, #b85e2e 0%, #7a3a1a 50%, transparent 100%);
  animation: itr-flame 4s ease-in-out infinite alternate;
}
.scn-item-trowel-reveal .bg-shadow {
  position: absolute;
  inset: 35% 0 0 0;
  background: linear-gradient(180deg, transparent 0%, #0a0502 100%);
  animation: itr-shadow 6s ease-in-out infinite alternate;
}
.scn-item-trowel-reveal .figure-left {
  position: absolute;
  bottom: 20%;
  left: 15%;
  width: 28%;
  height: 55%;
  background: linear-gradient(180deg, #2a0e06 0%, #0a0502 100%);
  border-radius: 40% 30% 20% 20% / 70% 60% 20% 20%;
  box-shadow: inset -10px 0 20px rgba(0,0,0,0.6);
  animation: itr-fig-left 8s ease-in-out infinite;
}
.scn-item-trowel-reveal .figure-right {
  position: absolute;
  bottom: 22%;
  right: 10%;
  width: 25%;
  height: 50%;
  background: linear-gradient(180deg, #3a1a0e 0%, #1a0c08 100%);
  border-radius: 30% 40% 20% 20% / 60% 70% 20% 20%;
  box-shadow: inset 10px 0 20px rgba(0,0,0,0.5);
  animation: itr-fig-right 8s ease-in-out infinite;
}
.scn-item-trowel-reveal .arm-offering {
  position: absolute;
  bottom: 30%;
  left: 40%;
  width: 18%;
  height: 10%;
  background: linear-gradient(90deg, #2a0e06 0%, #4a1a0a 100%);
  border-radius: 40% 10% 10% 40%;
  transform: rotate(-20deg);
  transform-origin: right center;
  animation: itr-arm 5s ease-in-out infinite;
}
.scn-item-trowel-reveal .trowel {
  position: absolute;
  bottom: 35%;
  left: 56%;
  width: 4%;
  height: 12%;
  background: linear-gradient(180deg, #6a3a2a 0%, #3a1a0a 100%);
  border-radius: 10% 10% 20% 20% / 30% 30% 10% 10%;
  transform: rotate(15deg);
  box-shadow: 0 0 15px 3px #b85e2e, 0 0 30px 6px rgba(184,94,46,0.3);
  animation: itr-trowel 5s ease-in-out infinite;
}
.scn-item-trowel-reveal .bottle-falling {
  position: absolute;
  top: 15%;
  left: 65%;
  width: 2%;
  height: 8%;
  background: linear-gradient(180deg, #5a2a14 0%, #2a0e06 100%);
  border-radius: 30% 30% 10% 10%;
  box-shadow: 0 0 10px 2px rgba(90,42,20,0.5);
  animation: itr-bottle 3s ease-in-out infinite;
}
.scn-item-trowel-reveal .ember-1 {
  position: absolute;
  top: 20%;
  left: 30%;
  width: 1%;
  height: 1%;
  background: #d86e2e;
  border-radius: 50%;
  box-shadow: 0 0 6px 3px #d86e2e, 0 0 12px 6px rgba(216,110,46,0.3);
  animation: itr-ember 2.5s ease-in-out infinite;
}
.scn-item-trowel-reveal .ember-2 {
  position: absolute;
  top: 40%;
  left: 70%;
  width: 0.8%;
  height: 0.8%;
  background: #c85a1a;
  border-radius: 50%;
  box-shadow: 0 0 5px 2px #c85a1a, 0 0 10px 4px rgba(200,90,26,0.3);
  animation: itr-ember 3.5s ease-in-out infinite 1s;
}
@keyframes itr-flame {
  0% { opacity: 0.75; transform: scaleY(1); }
  50% { opacity: 1; transform: scaleY(1.1); }
  100% { opacity: 0.8; transform: scaleY(0.95); }
}
@keyframes itr-shadow {
  0% { opacity: 0.6; }
  50% { opacity: 0.9; }
  100% { opacity: 0.7; }
}
@keyframes itr-fig-left {
  0% { transform: translateX(0) translateY(0) rotate(-1deg); }
  25% { transform: translateX(-2%) translateY(-1%) rotate(0); }
  50% { transform: translateX(1%) translateY(0.5%) rotate(1deg); }
  75% { transform: translateX(-1%) translateY(-0.5%) rotate(-1deg); }
  100% { transform: translateX(0) translateY(0) rotate(0); }
}
@keyframes itr-fig-right {
  0% { transform: translateX(0) translateY(0) rotate(1deg); }
  25% { transform: translateX(2%) translateY(1%) rotate(0); }
  50% { transform: translateX(-1%) translateY(-0.5%) rotate(-1deg); }
  75% { transform: translateX(1%) translateY(0.5%) rotate(0); }
  100% { transform: translateX(0) translateY(0) rotate(1deg); }
}
@keyframes itr-arm {
  0% { transform: rotate(-20deg); }
  25% { transform: rotate(-15deg) scaleX(1.05); }
  50% { transform: rotate(-25deg); }
  75% { transform: rotate(-10deg) scaleX(0.95); }
  100% { transform: rotate(-20deg); }
}
@keyframes itr-trowel {
  0% { transform: rotate(15deg); }
  25% { transform: rotate(10deg) translateY(-2%); }
  50% { transform: rotate(20deg) translateY(2%); }
  75% { transform: rotate(5deg) translateY(-1%); }
  100% { transform: rotate(15deg); }
}
@keyframes itr-bottle {
  0% { transform: translateY(0) rotate(0); opacity: 1; }
  50% { transform: translateY(-30%) rotate(180deg); opacity: 0.7; }
  100% { transform: translateY(0) rotate(360deg); opacity: 0; }
}
@keyframes itr-ember {
  0% { transform: translateY(0) scale(1); opacity: 0.8; }
  50% { transform: translateY(-20%) scale(1.2); opacity: 1; }
  100% { transform: translateY(10%) scale(0.8); opacity: 0.5; }
}

/* scene masonic-ritual */
.scn-masonic-ritual {
  background: linear-gradient(180deg, #1a0c08 0%, #3a1a0e 40%, #2a0e06 70%, #0a0502 100%),
              radial-gradient(ellipse at 40% 50%, #b85e2e 0%, transparent 60%);
}
.scn-masonic-ritual .bg-wall {
  position: absolute;
  inset: 0 0 20% 0;
  background: linear-gradient(180deg, #3a1a0e 0%, #1a0c08 100%);
  border-radius: 0 0 30% 30% / 0 0 10% 10%;
  animation: mri-wall 10s ease-in-out infinite alternate;
}
.scn-masonic-ritual .bg-glint {
  position: absolute;
  inset: 30% 0 40% 0;
  background: radial-gradient(ellipse at 45% 50%, #d86e2e 0%, transparent 50%);
  animation: mri-glint 5s ease-in-out infinite alternate;
}
.scn-masonic-ritual .cloak-figure {
  position: absolute;
  bottom: 18%;
  left: 20%;
  width: 30%;
  height: 60%;
  background: linear-gradient(180deg, #2a0e06 0%, #0a0502 100%);
  border-radius: 30% 20% 10% 10% / 60% 50% 10% 10%;
  box-shadow: inset -8px 0 15px rgba(0,0,0,0.7);
  animation: mri-cloak 7s ease-in-out infinite;
}
.scn-masonic-ritual .cloak-arm {
  position: absolute;
  bottom: 25%;
  left: 48%;
  width: 12%;
  height: 6%;
  background: linear-gradient(90deg, #2a0e06 0%, #4a1a0a 100%);
  border-radius: 20% 40% 10% 10%;
  transform: rotate(-30deg);
  transform-origin: left center;
  animation: mri-arm 4s ease-in-out infinite;
}
.scn-masonic-ritual .trowel-mason {
  position: absolute;
  bottom: 30%;
  left: 58%;
  width: 3%;
  height: 10%;
  background: linear-gradient(180deg, #6a3a2a 0%, #3a1a0a 100%);
  border-radius: 10% 10% 15% 15% / 25% 25% 5% 5%;
  transform: rotate(10deg);
  box-shadow: 0 0 12px 2px #b85e2e, 0 0 25px 5px rgba(184,94,46,0.4);
  animation: mri-trowel 4s ease-in-out infinite;
}
.scn-masonic-ritual .other-figure {
  position: absolute;
  bottom: 20%;
  right: 15%;
  width: 25%;
  height: 55%;
  background: linear-gradient(180deg, #3a1a0e 0%, #1a0c08 100%);
  border-radius: 20% 30% 10% 10% / 50% 60% 10% 10%;
  box-shadow: inset 8px 0 15px rgba(0,0,0,0.5);
  animation: mri-other 7s ease-in-out infinite;
}
.scn-masonic-ritual .other-arm-recoil {
  position: absolute;
  bottom: 28%;
  right: 38%;
  width: 10%;
  height: 5%;
  background: linear-gradient(270deg, #3a1a0e 0%, #1a0c08 100%);
  border-radius: 40% 20% 10% 10%;
  transform: rotate(40deg);
  transform-origin: right center;
  animation: mri-recoil 4s ease-in-out infinite alternate;
}
.scn-masonic-ritual .torch-flare {
  position: absolute;
  top: 10%;
  right: 35%;
  width: 5%;
  height: 15%;
  background: radial-gradient(ellipse at 50% 100%, #d86e2e 0%, #b85e2e 40%, transparent 70%);
  border-radius: 50%;
  filter: blur(4px);
  animation: mri-flare 3s ease-in-out infinite alternate;
}
.scn-masonic-ritual .torch-smoke {
  position: absolute;
  top: 5%;
  right: 37%;
  width: 3%;
  height: 10%;
  background: radial-gradient(ellipse at 50% 0%, rgba(200,100,50,0.3) 0%, transparent 70%);
  filter: blur(6px);
  animation: mri-smoke 8s linear infinite;
}
@keyframes mri-wall {
  0% { opacity: 0.7; transform: translateY(0); }
  50% { opacity: 0.9; transform: translateY(-2%); }
  100% { opacity: 0.8; transform: translateY(1%); }
}
@keyframes mri-glint {
  0% { opacity: 0.3; }
  50% { opacity: 0.8; }
  100% { opacity: 0.4; }
}
@keyframes mri-cloak {
  0% { transform: translateY(0) rotate(-1deg); }
  25% { transform: translateY(-2%) rotate(0); }
  50% { transform: translateY(1%) rotate(1deg); }
  75% { transform: translateY(-1%) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes mri-arm {
  0% { transform: rotate(-30deg); }
  25% { transform: rotate(-20deg) scaleX(1.05); }
  50% { transform: rotate(-35deg); }
  75% { transform: rotate(-15deg) scaleX(0.95); }
  100% { transform: rotate(-30deg); }
}
@keyframes mri-trowel {
  0% { transform: rotate(10deg); }
  25% { transform: rotate(5deg) translateY(-2%); }
  50% { transform: rotate(15deg) translateY(2%); }
  75% { transform: rotate(0deg) translateY(-1%); }
  100% { transform: rotate(10deg); }
}
@keyframes mri-other {
  0% { transform: translateY(0) rotate(1deg); }
  25% { transform: translateY(2%) rotate(0); }
  50% { transform: translateY(-1%) rotate(-1deg); }
  75% { transform: translateY(1%) rotate(0); }
  100% { transform: translateY(0) rotate(1deg); }
}
@keyframes mri-recoil {
  0% { transform: rotate(40deg); }
  100% { transform: rotate(60deg) translateX(5%); }
}
@keyframes mri-flare {
  0% { transform: scaleY(0.8); opacity: 0.6; }
  50% { transform: scaleY(1.2); opacity: 1; }
  100% { transform: scaleY(0.9); opacity: 0.7; }
}
@keyframes mri-smoke {
  0% { transform: translateY(0) scaleX(1); opacity: 0.5; }
  50% { transform: translateY(-20%) scaleX(1.5); opacity: 0.2; }
  100% { transform: translateY(-40%) scaleX(2); opacity: 0; }
}

/* scene final-crypt */
.scn-final-crypt {
  background: linear-gradient(180deg, #0a0502 0%, #1a0c08 40%, #2a0e06 70%, #1a0c08 100%),
              radial-gradient(ellipse at 50% 60%, #7a3a1a 0%, transparent 70%);
}
.scn-final-crypt .bg-arch-dark {
  position: absolute;
  inset: 0 0 35% 0;
  background: linear-gradient(180deg, #1a0c08 0%, #0a0502 100%);
  border-radius: 0 0 50% 50% / 0 0 20% 20%;
  animation: ficr-bg 12s ease-in-out infinite alternate;
}
.scn-final-crypt .left-arch {
  position: absolute;
  bottom: 30%;
  left: 5%;
  width: 30%;
  height: 50%;
  background: linear-gradient(180deg, #3a1a0e 0%, #1a0c08 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.7);
  animation: ficr-arch 15s ease-in-out infinite alternate;
}
.scn-final-crypt .right-arch {
  position: absolute;
  bottom: 30%;
  right: 5%;
  width: 30%;
  height: 50%;
  background: linear-gradient(180deg, #3a1a0e 0%, #1a0c08 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.7);
  animation: ficr-arch 15s ease-in-out infinite alternate 1s;
}
.scn-final-crypt .floor-stones {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  height: 30%;
  background: linear-gradient(180deg, #2a0e06 0%, #1a0c08 30%, #0a0502 100%);
  border-radius: 30% 30% 0 0 / 10% 10% 0 0;
  box-shadow: inset 0 8px 15px rgba(0,0,0,0.8);
  animation: ficr-floor 8s ease-in-out infinite;
}
.scn-final-crypt .torch-left {
  position: absolute;
  bottom: 35%;
  left: 25%;
  width: 2%;
  height: 10%;
  background: radial-gradient(ellipse at 50% 100%, #d86e2e 0%, #b85e2e 40%, transparent 70%);
  border-radius: 50%;
  filter: blur(3px);
  animation: ficr-torch 3s ease-in-out infinite alternate;
}
.scn-final-crypt .torch-right {
  position: absolute;
  bottom: 35%;
  right: 25%;
  width: 2%;
  height: 10%;
  background: radial-gradient(ellipse at 50% 100%, #d86e2e 0%, #b85e2e 40%, transparent 70%);
  border-radius: 50%;
  filter: blur(3px);
  animation: ficr-torch 3.5s ease-in-out infinite alternate 0.5s;
}
.scn-final-crypt .left-figure {
  position: absolute;
  bottom: 25%;
  left: 38%;
  width: 10%;
  height: 20%;
  background: linear-gradient(180deg, #2a0e06 0%, #0a0502 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 10% 10%;
  animation: ficr-fig 9s ease-in-out infinite;
}
.scn-final-crypt .right-figure {
  position: absolute;
  bottom: 25%;
  right: 38%;
  width: 10%;
  height: 20%;
  background: linear-gradient(180deg, #3a1a0e 0%, #1a0c08 100%);
  border-radius: 30% 30% 10% 10% / 50% 50% 10% 10%;
  animation: ficr-fig 9s ease-in-out infinite 0.5s;
}
.scn-final-crypt .glow-mist {
  position: absolute;
  bottom: 10%;
  left: 20%;
  width: 60%;
  height: 30%;
  background: radial-gradient(ellipse at 30% 50%, rgba(200,100,50,0.15) 0%, transparent 70%);
  filter: blur(10px);
  animation: ficr-mist 20s linear infinite;
}
@keyframes ficr-bg {
  0% { opacity: 0.7; }
  50% { opacity: 0.9; transform: scaleY(1.02); }
  100% { opacity: 0.8; transform: scaleY(0.98); }
}
@keyframes ficr-arch {
  0% { transform: scaleY(1); }
  50% { transform: scaleY(1.03); }
  100% { transform: scaleY(0.97); }
}
@keyframes ficr-floor {
  0% { transform: translateY(0); }
  25% { transform: translateY(-1%); }
  50% { transform: translateY(1%); }
  75% { transform: translateY(-0.5%); }
  100% { transform: translateY(0); }
}
@keyframes ficr-torch {
  0% { transform: scaleY(0.8); opacity: 0.6; }
  50% { transform: scaleY(1.2); opacity: 1; }
  100% { transform: scaleY(0.9); opacity: 0.7; }
}
@keyframes ficr-fig {
  0% { transform: translateY(0) rotate(0); }
  25% { transform: translateY(-2%) rotate(-1deg); }
  50% { transform: translateY(1%) rotate(1deg); }
  75% { transform: translateY(-1%) rotate(0); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes ficr-mist {
  0% { transform: translateX(0); opacity: 0.3; }
  50% { transform: translateX(10%); opacity: 0.5; }
  100% { transform: translateX(-10%); opacity: 0.2; }
}

/* scene crypt-interior-discovery */
.scn-crypt-interior-discovery {
  background: linear-gradient(180deg, #0a0502 0%, #1a0c08 30%, #2a0e06 60%, #1a0c08 100%),
              radial-gradient(ellipse at 30% 60%, #4a1a0a 0%, transparent 70%);
}
.scn-crypt-interior-discovery .bg-vault {
  position: absolute;
  inset: 0 0 20% 0;
  background: linear-gradient(180deg, #1a0c08 0%, #0a0502 100%);
  border-radius: 0 0 30% 30% / 0 0 10% 10%;
  animation: cid-vault 15s ease-in-out infinite alternate;
}
.scn-crypt-interior-discovery .wall-skulls {
  position: absolute;
  inset: 15% 10% 20% 10%;
  background: 
    radial-gradient(circle at 20% 30%, #4a3a2a 5%, transparent 5%),
    radial-gradient(circle at 50% 20%, #4a3a2a 5%, transparent 5%),
    radial-gradient(circle at 80% 40%, #4a3a2a 5%, transparent 5%),
    radial-gradient(circle at 30% 60%, #3a2a1a 5%, transparent 5%),
    radial-gradient(circle at 60% 70%, #3a2a1a 5%, transparent 5%),
    radial-gradient(circle at 40% 80%, #2a1a0a 5%, transparent 5%),
    radial-gradient(circle at 70% 90%, #2a1a0a 5%, transparent 5%);
  background-size: 15% 15%;
  background-repeat: repeat;
  opacity: 0.4;
  animation: cid-skulls 20s linear infinite;
}
.scn-crypt-interior-discovery .skull-1 {
  position: absolute;
  top: 25%;
  left: 25%;
  width: 6%;
  height: 8%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 20% 20%;
  box-shadow: inset 0 -2px 4px rgba(0,0,0,0.5), 0 0 8px 2px rgba(90,74,58,0.3);
  animation: cid-skull-float 6s ease-in-out infinite;
}
.scn-crypt-interior-discovery .skull-2 {
  position: absolute;
  top: 40%;
  left: 50%;
  width: 5%;
  height: 7%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 20% 20%;
  box-shadow: inset 0 -2px 4px rgba(0,0,0,0.5), 0 0 6px 1px rgba(74,58,42,0.3);
  animation: cid-skull-float 8s ease-in-out infinite 1s;
}
.scn-crypt-interior-discovery .skull-3 {
  position: absolute;
  top: 60%;
  left: 15%;
  width: 4%;
  height: 6%;
  background: linear-gradient(180deg, #5a4a3a 0%, #3a2a1a 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 20% 20%;
  box-shadow: inset 0 -2px 4px rgba(0,0,0,0.5), 0 0 6px 1px rgba(90,74,58,0.3);
  animation: cid-skull-float 7s ease-in-out infinite 2s;
}
.scn-crypt-interior-discovery .shadow-border {
  position: absolute;
  inset: 0;
  background: radial-gradient(ellipse at 50% 60%, transparent 40%, #0a0502 80%);
  pointer-events: none;
  animation: cid-shadow 12s ease-in-out infinite alternate;
}
.scn-crypt-interior-discovery .distant-light {
  position: absolute;
  bottom: 25%;
  left: 45%;
  width: 10%;
  height: 15%;
  background: radial-gradient(ellipse at 50% 100%, rgba(200,100,50,0.2) 0%, transparent 80%);
  filter: blur(8px);
  animation: cid-light 5s ease-in-out infinite alternate;
}
@keyframes cid-vault {
  0% { opacity: 0.6; }
  50% { opacity: 0.9; }
  100% { opacity: 0.7; }
}
@keyframes cid-skulls {
  0% { background-position: 0 0; opacity: 0.3; }
  50% { background-position: 5% 5%; opacity: 0.5; }
  100% { background-position: 0 0; opacity: 0.3; }
}
@keyframes cid-skull-float {
  0% { transform: translateY(0) rotate(0); }
  25% { transform: translateY(-3%) rotate(-2deg); }
  50% { transform: translateY(2%) rotate(1deg); }
  75% { transform: translateY(-1%) rotate(-1deg); }
  100% { transform: translateY(0) rotate(0); }
}
@keyframes cid-shadow {
  0% { opacity: 0.7; }
  50% { opacity: 0.9; }
  100% { opacity: 0.8; }
}
@keyframes cid-light {
  0% { opacity: 0.3; transform: scaleY(0.9); }
  50% { opacity: 0.7; transform: scaleY(1.1); }
  100% { opacity: 0.4; transform: scaleY(0.95); }
}
/* end per-scene blocks */

/* ============ tier A ============ */
/* per-scene blocks (EXP step_scenes) */
.scn-final-plea {
  background:
    radial-gradient(ellipse 40% 30% at 70% 40%, rgba(255,120,40,0.4) 0%, transparent 60%),
    linear-gradient(180deg, #1a0f0a 0%, #2a1a12 50%, #1a0f0a 100%);
}
.scn-final-plea .wall-bg {
  position:absolute; inset:0; 
  background: linear-gradient(90deg, #2a1a12 0%, #1a0f0a 50%, #2a1a12 100%);
  box-shadow: inset 0 0 80px rgba(0,0,0,0.6);
}
.scn-final-plea .arch {
  position:absolute; top:5%; left:25%; right:25%; height:30%;
  background: #0a0500;
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  box-shadow: 0 8px 30px rgba(0,0,0,0.8);
}
.scn-final-plea .torch-flame {
  position:absolute; top:28%; left:70%; width:12px; height:24px;
  background: radial-gradient(ellipse at 50% 30%, #ffd080 0%, #ff7030 50%, #a03010 100%);
  border-radius: 50% 50% 40% 40%;
  box-shadow: 0 0 20px 6px #ff7020;
  animation: fp-flame 1.2s ease-in-out infinite alternate;
}
.scn-final-plea .torch-glow {
  position:absolute; top:24%; left:64%; width:60px; height:60px;
  background: radial-gradient(circle, rgba(255,120,40,0.4) 0%, transparent 70%);
  filter: blur(8px);
  animation: fp-glow 2s ease-in-out infinite alternate;
}
.scn-final-plea .figure-left {
  position:absolute; bottom:20%; left:28%; width:32px; height:60px;
  background: linear-gradient(180deg, #0a0500 0%, #1a0f0a 100%);
  border-radius: 45% 45% 35% 35% / 60% 60% 35% 35%;
  transform-origin: bottom center;
  animation: fp-figure 4s ease-in-out infinite;
}
.scn-final-plea .figure-right {
  position:absolute; bottom:18%; right:22%; width:36px; height:68px;
  background: linear-gradient(180deg, #1a0f0a 0%, #0a0500 100%);
  border-radius: 48% 45% 35% 35% / 55% 60% 40% 40%;
  transform-origin: bottom center;
  animation: fp-figure 4.5s ease-in-out infinite reverse;
}
.scn-final-plea .bottle {
  position:absolute; bottom:22%; left:38%; width:10px; height:30px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a12 100%);
  border-radius: 20% 20% 15% 15% / 30% 30% 10% 10%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.4);
  animation: fp-sway 5s ease-in-out infinite;
}
.scn-final-plea .floor {
  position:absolute; bottom:0; left:0; right:0; height:22%;
  background: linear-gradient(0deg, #0a0500 0%, #1a0f0a 30%, transparent 100%);
  border-radius: 0 0 20% 20% / 0 0 10% 10%;
}

@keyframes fp-flame {
  0%   { transform: scaleY(1) translateX(0); opacity:0.9; }
  50%  { transform: scaleY(1.2) translateX(1px); opacity:1; }
  100% { transform: scaleY(0.8) translateX(-1px); opacity:0.85; }
}
@keyframes fp-glow {
  0%   { transform: scale(1); opacity:0.5; }
  50%  { transform: scale(1.1); opacity:0.7; }
  100% { transform: scale(0.95); opacity:0.4; }
}
@keyframes fp-figure {
  0%   { transform: translateY(0) rotate(-1deg); }
  25%  { transform: translateY(-3px) rotate(1deg); }
  50%  { transform: translateY(0) rotate(0); }
  75%  { transform: translateY(-2px) rotate(-2deg); }
  100% { transform: translateY(0) rotate(1deg); }
}
@keyframes fp-sway {
  0%   { transform: rotate(-2deg); }
  50%  { transform: rotate(3deg); }
  100% { transform: rotate(-2deg); }
}

.scn-closure {
  background:
    radial-gradient(ellipse 30% 25% at 40% 50%, rgba(180,60,20,0.3) 0%, transparent 60%),
    linear-gradient(180deg, #0f0805 0%, #1a0f0a 40%, #0f0805 100%);
}
.scn-closure .wall-back {
  position:absolute; inset:0;
  background: linear-gradient(180deg, #1a0f0a 0%, #0a0500 100%);
}
.scn-closure .archway {
  position:absolute; top:3%; left:30%; right:30%; height:35%;
  background: #050200;
  border-radius: 50% 50% 0 0 / 70% 70% 0 0;
  box-shadow: 0 10px 40px rgba(0,0,0,0.9);
}
.scn-closure .chain {
  position:absolute; top:28%; left:55%; width:4px; height:50%;
  background: repeating-linear-gradient(180deg, #5a4a3a 0px, #5a4a3a 6px, #0a0500 6px, #0a0500 10px);
  transform-origin: top center;
  animation: cl-chain 3s ease-in-out infinite;
}
.scn-closure .bell.small {
  position:absolute; top:60%; left:53%; width:14px; height:14px;
  background: radial-gradient(circle at 40% 30%, #7a6a5a, #3a2a1a);
  border-radius: 50%;
  box-shadow: 0 2px 6px rgba(0,0,0,0.6);
  animation: cl-bell 1.8s ease-in-out infinite 0.2s;
}
.scn-closure .bell.large {
  position:absolute; top:64%; left:56%; width:20px; height:20px;
  background: radial-gradient(circle at 40% 30%, #8a7a6a, #4a3a2a);
  border-radius: 50%;
  box-shadow: 0 2px 8px rgba(0,0,0,0.6);
  animation: cl-bell 2.2s ease-in-out infinite 0.8s;
}
.scn-closure .torch-hand {
  position:absolute; bottom:30%; left:35%; width:6px; height:40px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a12 100%);
  border-radius: 3px 3px 40% 40%;
  transform-origin: bottom center;
  animation: cl-arm 2s ease-in-out infinite alternate;
}
.scn-closure .torch-flame {
  position:absolute; bottom:58%; left:35%; width:10px; height:20px;
  background: radial-gradient(ellipse at 50% 30%, #ffd080 0%, #ff6020 50%, #801010 100%);
  border-radius: 50% 50% 40% 40%;
  box-shadow: 0 0 18px 5px #ff5010;
  animation: cl-flame 1s ease-in-out infinite alternate;
}
.scn-closure .torch-glow {
  position:absolute; bottom:50%; left:30%; width:50px; height:50px;
  background: radial-gradient(circle, rgba(200,80,20,0.35) 0%, transparent 70%);
  filter: blur(8px);
  animation: cl-glow 2.5s ease-in-out infinite alternate;
}
.scn-closure .figure-silhouette {
  position:absolute; bottom:10%; left:25%; width:28px; height:70px;
  background: linear-gradient(180deg, #0a0500 40%, #1a0f0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  box-shadow: 0 0 20px 4px rgba(0,0,0,0.5);
  animation: cl-body 5s ease-in-out infinite;
}

@keyframes cl-chain {
  0%   { transform: rotate(0deg); }
  50%  { transform: rotate(2deg); }
  100% { transform: rotate(0deg); }
}
@keyframes cl-bell {
  0%   { transform: rotate(0deg) translateY(0); }
  25%  { transform: rotate(15deg) translateY(-1px); }
  50%  { transform: rotate(0deg) translateY(0); }
  75%  { transform: rotate(-15deg) translateY(-1px); }
  100% { transform: rotate(0deg) translateY(0); }
}
@keyframes cl-arm {
  0%   { transform: rotate(-5deg); }
  100% { transform: rotate(15deg); }
}
@keyframes cl-flame {
  0%   { transform: scaleY(0.9) translateX(-1px); opacity:0.85; }
  50%  { transform: scaleY(1.15) translateX(1px); opacity:1; }
  100% { transform: scaleY(0.95) translateX(0); opacity:0.9; }
}
@keyframes cl-glow {
  0%   { transform: scale(0.9); opacity:0.4; }
  50%  { transform: scale(1.1); opacity:0.6; }
  100% { transform: scale(0.95); opacity:0.45; }
}
@keyframes cl-body {
  0%   { transform: translateY(0) rotate(-1deg); }
  25%  { transform: translateY(-4px) rotate(1deg); }
  50%  { transform: translateY(0) rotate(0); }
  75%  { transform: translateY(-2px) rotate(-2deg); }
  100% { transform: translateY(0) rotate(1deg); }
}

.scn-item-trowel {
  background:
    radial-gradient(ellipse at 45% 50%, #3a1a0a 0%, #0a0605 60%, #0a0605 100%),
    linear-gradient(180deg, #0a0605 0%, #1a100c 50%, #0a0605 100%);
}
.scn-item-trowel .bg-fire   { position:absolute; inset:0; background: linear-gradient(135deg, #1a0e08 0%, #0a0605 60%, #000 100%); }
.scn-item-trowel .torch     { position:absolute; bottom:20%; left:15%; width:20px; height:30px; background: radial-gradient(circle, #ff8820 0%, #cc4400 40%, #330a00 100%); border-radius:50% 50% 30% 30%; box-shadow: 0 0 60px 20px rgba(255,136,32,.5); animation: it-torch 2s ease-in-out infinite alternate; }
.scn-item-trowel .hand      { position:absolute; bottom:15%; left:30%; width:30px; height:45px; background: linear-gradient(180deg, #2a1a10 0%, #1a0e08 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: it-hand 1.5s ease-in-out infinite; }
.scn-item-trowel .trowel    { position:absolute; bottom:20%; left:38%; width:40px; height:12px; background: linear-gradient(90deg, #884422 0%, #a05830 30%, #884422 100%); border-radius:2px 8px 8px 2px; box-shadow: 0 2px 6px rgba(0,0,0,.5); transform-origin: left center; animation: it-trowel 1.5s ease-in-out infinite; }
.scn-item-trowel .shadow    { position:absolute; bottom:12%; left:20%; width:60px; height:8px; background: rgba(0,0,0,.4); border-radius:50%; filter: blur(4px); animation: it-shadow 1.5s ease-in-out infinite; }
.scn-item-trowel .sparks    { position:absolute; top:10%; left:12%; width:4px; height:4px; background: #ffcc44; border-radius:50%; box-shadow: -6px -10px 0 #ffaa33, 8px -4px 0 #ff8844, -12px 6px 0 #ffaa33; filter: blur(1px); animation: it-sparks 3s ease-in-out infinite; }

@keyframes it-torch   { 0% { transform: scale(1) translateX(0); opacity:.9; } 50% { transform: scale(1.05) translateX(1px); opacity:1; } 100% { transform: scale(1) translateX(0); opacity:.85; } }
@keyframes it-hand    { 0% { transform: translate(0,0) rotate(2deg); } 50% { transform: translate(0,-1px) rotate(-1deg); } 100% { transform: translate(0,0) rotate(2deg); } }
@keyframes it-trowel  { 0% { transform: rotate(-5deg); } 50% { transform: rotate(0deg); } 100% { transform: rotate(-5deg); } }
@keyframes it-shadow  { 0% { transform: scale(1); opacity:.4; } 50% { transform: scale(1.1); opacity:.3; } 100% { transform: scale(1); opacity:.4; } }
@keyframes it-sparks  { 0% { transform: translate(0,0) scale(1); } 50% { transform: translate(2px,-3px) scale(1.2); } 100% { transform: translate(-3px,2px) scale(.8); } }

.scn-recess-description {
  background:
    radial-gradient(ellipse at 50% 60%, #1a0800 0%, #0a0400 50%, #000 100%),
    linear-gradient(135deg, #140a06 0%, #0a0502 50%, #000 100%);
}
.scn-recess-description .bg-crypt { position:absolute; inset:0; background: linear-gradient(180deg, #0f0704 0%, #080202 100%); }
.scn-recess-description .left-col { position:absolute; top:10%; left:5%; width:16%; height:80%; background: linear-gradient(270deg, #2a1a10 0%, #140a06 100%); border-radius:8px; box-shadow: 6px 0 12px rgba(0,0,0,.6); }
.scn-recess-description .right-col{ position:absolute; top:10%; right:5%; width:16%; height:80%; background: linear-gradient(90deg, #2a1a10 0%, #140a06 100%); border-radius:8px; box-shadow: -6px 0 12px rgba(0,0,0,.6); }
.scn-recess-description .recess   { position:absolute; top:15%; left:30%; width:40%; height:70%; background: #0a0301; border-radius:4px; box-shadow: inset 0 0 20px rgba(0,0,0,.8); }
.scn-recess-description .torch    { position:absolute; bottom:25%; left:38%; width:16px; height:24px; background: radial-gradient(circle, #ff7722 0%, #aa4400 50%, #220800 100%); border-radius:50% 50% 20% 20%; box-shadow: 0 0 40px 15px rgba(255,119,34,.4); animation: rd-torch 2.5s ease-in-out infinite alternate; }
.scn-recess-description .figure   { position:absolute; bottom:20%; left:44%; width:22px; height:40px; background: linear-gradient(180deg, #1a0e08 0%, #0a0502 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: rd-figure 4s ease-in-out infinite; }
.scn-recess-description .glow     { position:absolute; top:20%; left:33%; width:34%; height:60%; background: radial-gradient(ellipse at 50% 80%, rgba(255,119,34,.1) 0%, transparent 70%); animation: rd-glow 2s ease-in-out infinite alternate; }
.scn-recess-description .nitre    { position:absolute; top:30%; left:48%; width:4px; height:4px; background: rgba(220,220,200,.15); border-radius:50%; box-shadow: -8px -6px 0 rgba(200,200,180,.1), 6px 4px 0 rgba(210,210,190,.12); animation: rd-nitre 6s ease-in-out infinite; }

@keyframes rd-torch   { 0% { transform: scale(1) translateY(0); opacity:.8; } 50% { transform: scale(1.08) translateY(-1px); opacity:1; } 100% { transform: scale(1) translateY(0); opacity:.85; } }
@keyframes rd-figure  { 0% { transform: translate(0,0) rotate(00deg); } 50% { transform: translate(1px,0) rotate(1deg); } 100% { transform: translate(0,0) rotate(0deg); } }
@keyframes rd-glow    { 0% { opacity:.6; } 100% { opacity:1; } }
@keyframes rd-nitre   { 0% { opacity:.3; transform: translate(0,0); } 50% { opacity:.6; transform: translate(1px,-1px); } 100% { opacity:.3; transform: translate(0,0); } }

.scn-fettering {
  background:
    radial-gradient(ellipse at 40% 50%, #2a0e02 0%, #0a0400 60%, #000 100%),
    linear-gradient(180deg, #0a0502 0%, #080200 50%, #000 100%);
}
.scn-fettering .bg-wall { position:absolute; inset:0; background: linear-gradient(90deg, #0f0704 0%, #140a06 50%, #0f0704 100%); }
.scn-fettering .chain   { position:absolute; top:20%; left:45%; width:4px; height:70%; background: repeating-linear-gradient(0deg, #442200 0px, #442200 6px, transparent 6px, transparent 8px); transform-origin: top; animation: ft-chain 1.2s ease-in-out infinite; }
.scn-fettering .figure  { position:absolute; bottom:15%; left:42%; width:30px; height:50px; background: linear-gradient(180deg, #1a0e08 0%, #0a0400 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: ft-figure 2s ease-in-out infinite; }
.scn-fettering .staple-left { position:absolute; top:35%; left:38%; width:10px; height:20px; background: #2a1a0e; border-radius:30% 30% 0 0; box-shadow: inset 0 -4px 4px rgba(0,0,0,.5); }
.scn-fettering .staple-right{ position:absolute; top:35%; right:38%; width:10px; height:20px; background: #2a1a0e; border-radius:30% 30% 0 0; box-shadow: inset 0 -4px 4px rgba(0,0,0,.5); }
.scn-fettering .padlock { position:absolute; top:40%; left:47%; width:12px; height:10px; background: #4a2a14; border-radius:3px; box-shadow: 0 2px 4px rgba(0,0,0,.5); animation: ft-padlock 4s ease-in-out infinite; }
.scn-fettering .torch   { position:absolute; bottom:20%; left:10%; width:18px; height:28px; background: radial-gradient(circle, #ff7722 0%, #aa4400 40%, #220800 100%); border-radius:50% 50% 20% 20%; box-shadow: 0 0 50px 20px rgba(255,119,34,.4); animation: ft-torch 2s ease-in-out infinite alternate; }
.scn-fettering .shadow  { position:absolute; bottom:10%; left:38%; width:50px; height:12px; background: rgba(0,0,0,.5); border-radius:50%; filter: blur(6px); animation: ft-shadow 2s ease-in-out infinite; }

@keyframes ft-chain   { 0% { transform: rotate(0deg); } 50% { transform: rotate(2deg); } 100% { transform: rotate(0deg); } }
@keyframes ft-figure  { 0% { transform: translate(0,0) rotate(1deg); } 50% { transform: translate(1px,0) rotate(-1deg); } 100% { transform: translate(0,0) rotate(1deg); } }
@keyframes ft-padlock { 0% { transform: translateY(0); } 50% { transform: translateY(-3px); } 100% { transform: translateY(0); } }
@keyframes ft-torch   { 0% { transform: scale(1) translateX(0); opacity:.8; } 50% { transform: scale(1.08) translateX(1px); opacity:1; } 100% { transform: scale(1) translateX(0); opacity:.85; } }
@keyframes ft-shadow  { 0% { transform: scaleX(1); opacity:.5; } 50% { transform: scaleX(1.1); opacity:.4; } 100% { transform: scaleX(1); opacity:.5; } }

.scn-walling-up {
  background:
    radial-gradient(ellipse at 50% 40%, #2a0e02 0%, #0a0400 60%, #000 100%),
    linear-gradient(180deg, #0a0502 0%, #0f0603 50%, #000 100%);
}
.scn-walling-up .bg-wall   { position:absolute; inset:0; background: linear-gradient(135deg, #0a0502 0%, #140a06 50%, #0a0502 100%); }
.scn-walling-up .stonewall { position:absolute; bottom:20%; left:25%; width:50%; height:50%; background: repeating-linear-gradient(0deg, #2a1a10 0px, #2a1a10 15px, transparent 15px, transparent 16px), repeating-linear-gradient(90deg, #2a1a10 0px, #2a1a10 20px, transparent 20px, transparent 22px); border-radius:4px; box-shadow: inset 0 0 20px rgba(0,0,0,.6); }
.scn-walling-up .figure   { position:absolute; bottom:15%; left:25%; width:28px; height:50px; background: linear-gradient(180deg, #1a0e08 0%, #0a0400 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom; animation: wu-figure 3s ease-in-out infinite; }
.scn-walling-up .trowel   { position:absolute; bottom:30%; left:40%; width:35px; height:10px; background: linear-gradient(90deg, #884422 0%, #a05830 40%, #884422 100%); border-radius:2px 6px 6px 2px; transform-origin: left; animation: wu-trowel 2s ease-in-out infinite; }
.scn-walling-up .newstone { position:absolute; bottom:32%; left:42%; width:20px; height:14px; background: linear-gradient(135deg, #3a2a1a 0%, #2a1a10 100%); border-radius:2px; box-shadow: 0 2px 4px rgba(0,0,0,.5); animation: wu-newstone 5s ease-in-out infinite; }
.scn-walling-up .mortar   { position:absolute; bottom:31%; left:40%; width:4px; height:2px; background: #4a3a2a; border-radius:1px; box-shadow: 19px -1px 0 #4a3a2a; animation: wu-mortar 5s ease-in-out infinite; }
.scn-walling-up .torch    { position:absolute; bottom:25%; left:55%; width:18px; height:26px; background: radial-gradient(circle, #ff7722 0%, #aa4400 40%, #220800 100%); border-radius:50% 50% 20% 20%; box-shadow: 0 0 40px 15px rgba(255,119,34,.3); animation: wu-torch 2.5s ease-in-out infinite alternate; }
.scn-walling-up .bones    { position:absolute; bottom:15%; left:15%; width:16px; height:4px; background: #d0c0a8; border-radius:2px; transform: rotate(30deg); box-shadow: 12px 8px 0 #d0c0a8, -8px 6px 0 #c8b8a0; animation: wu-bones 6s ease-in-out infinite; }

@keyframes wu-figure   { 0% { transform: translate(0,0) rotate(0deg); } 50% { transform: translate(2px,0) rotate(1deg); } 100% { transform: translate(0,0) rotate(0deg); } }
@keyframes wu-trowel   { 0% { transform: rotate(-10deg) translate(0,0); } 50% { transform: rotate(0deg) translate(0,-2px); } 100% { transform: rotate(-10deg) translate(0,0); } }
@keyframes wu-newstone { 0% { transform: translateY(0); } 50% { transform: translateY(-4px); } 100% { transform: translateY(0); } }
@keyframes wu-mortar   { 0% { opacity:.3; } 50% { opacity:.8; } 100% { opacity:.3; } }
@keyframes wu-torch    { 0% { transform: scale(1) translateX(0); opacity:.85; } 50% { transform: scale(1.06) translateX(1px); opacity:1; } 100% { transform: scale(1) translateX(0); opacity:.85; } }
@keyframes wu-bones    { 0% { transform: rotate(28deg); } 50% { transform: rotate(32deg); } 100% { transform: rotate(28deg); } }

/* --- scene: item-medoc-bottle --- */
.scn-item-medoc-bottle {
  background:
    radial-gradient(ellipse at 60% 40%, #3a1a0a 0%, transparent 60%),
    linear-gradient(180deg, #1a0a05 0%, #2a1508 40%, #1a0a05 100%);
}
.scn-item-medoc-bottle .vault-wall {
  position: absolute; inset: 0;
  background: repeating-linear-gradient(90deg, #2a1508 0px, #1a0a05 4px, #2a1508 8px);
  opacity: 0.6;
  animation: mb-wall 20s linear infinite;
}
.scn-item-medoc-bottle .torch {
  position: absolute; bottom: 55%; left: 18%; width: 10px; height: 30px;
  background: linear-gradient(180deg, #c8553d 0%, #a0461a 60%, #3a1a0a 100%);
  border-radius: 40% 40% 10% 10%;
  box-shadow: 0 0 40px 20px rgba(200,80,50,0.6);
  animation: mb-torch-flicker 0.4s ease-in-out infinite alternate;
}
.scn-item-medoc-bottle .torch-glow {
  position: absolute; bottom: 50%; left: 18%; width: 120px; height: 120px;
  background: radial-gradient(circle, rgba(200,80,50,0.3) 0%, transparent 70%);
  border-radius: 50%;
  transform: translate(-55%, 0);
  animation: mb-glow-pulse 1.2s ease-in-out infinite alternate;
}
.scn-item-medoc-bottle .bottle {
  position: absolute; bottom: 10%; left: 55%; width: 50px; height: 120px;
  background: linear-gradient(180deg, rgba(80,60,40,0.6) 0%, rgba(40,30,20,0.8) 100%);
  border-radius: 20% 20% 30% 30% / 10% 10% 40% 40%;
  transform: rotate(15deg);
  box-shadow: inset 0 0 20px rgba(0,0,0,0.8);
  animation: mb-bottle-sparkle 3s ease-in-out infinite;
}
.scn-item-medoc-bottle .bottle-neck {
  position: absolute; bottom: 65%; left: 58%; width: 12px; height: 30px;
  background: linear-gradient(180deg, transparent 0%, rgba(40,30,20,0.9) 100%);
  border-radius: 20% 20% 0 0;
  transform: rotate(15deg);
  z-index: 2;
}
.scn-item-medoc-bottle .wine {
  position: absolute; bottom: 18%; left: 55%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #5e1a1d 0%, #3a0e0f 100%);
  border-radius: 0 0 40% 40%;
  transform: rotate(15deg);
  box-shadow: inset 0 0 10px rgba(0,0,0,0.6);
  animation: mb-wine-slosh 2s ease-in-out infinite alternate;
}
.scn-item-medoc-bottle .hand {
  position: absolute; bottom: 5%; left: 45%; width: 40px; height: 50px;
  background: radial-gradient(ellipse at 50% 60%, #d49a6a 0%, #a07040 60%, #5a3a20 100%);
  border-radius: 60% 60% 30% 30% / 70% 70% 20% 20%;
  transform: rotate(20deg);
  box-shadow: 0 4px 8px rgba(0,0,0,0.5);
  animation: mb-hand-raise 3s ease-in-out infinite;
}
.scn-item-medoc-bottle .mold {
  position: absolute; bottom: 40%; right: 10%; width: 30px; height: 20px;
  background: radial-gradient(circle, #5a7a4a 0%, #2a3a1a 60%, transparent 100%);
  border-radius: 50%;
  filter: blur(3px);
  animation: mb-mold-grow 8s ease-in-out infinite alternate;
}
@keyframes mb-wall {
  0% { opacity: 0.5; } 50% { opacity: 0.7; } 100% { opacity: 0.5; }
}
@keyframes mb-torch-flicker {
  0% { transform: scaleY(1) translateY(0); }
  50% { transform: scaleY(1.1) translateY(-2px); }
  100% { transform: scaleY(0.95) translateY(1px); }
}
@keyframes mb-glow-pulse {
  0% { opacity: 0.7; transform: translate(-55%, 0) scale(1); }
  50% { opacity: 1; transform: translate(-55%, -5%) scale(1.1); }
  100% { opacity: 0.8; transform: translate(-55%, 2%) scale(0.95); }
}
@keyframes mb-bottle-sparkle {
  0% { filter: brightness(1); }
  50% { filter: brightness(1.2); }
  100% { filter: brightness(0.9); }
}
@keyframes mb-wine-slosh {
  0% { transform: rotate(15deg) translateX(0); }
  50% { transform: rotate(17deg) translateX(2px); }
  100% { transform: rotate(13deg) translateX(-2px); }
}
@keyframes mb-hand-raise {
  0% { transform: rotate(20deg) translateY(0); }
  50% { transform: rotate(15deg) translateY(-5px); }
  100% { transform: rotate(22deg) translateY(2px); }
}
@keyframes mb-mold-grow {
  0% { transform: scale(0.8); opacity: 0.4; }
  50% { transform: scale(1.1); opacity: 0.8; }
  100% { transform: scale(0.9); opacity: 0.5; }
}

/* --- scene: heraldry-discussion --- */
.scn-heraldry-discussion {
  background:
    radial-gradient(ellipse at 30% 50%, #3a1a0a 0%, transparent 60%),
    linear-gradient(180deg, #1a0a05 0%, #2a1508 50%, #1a0a05 100%);
}
.scn-heraldry-discussion .vault-arch {
  position: absolute; top: 0; left: 10%; width: 80%; height: 60%;
  border: 8px solid #3a1a0a;
  border-radius: 50% 50% 0 0 / 100% 100% 0 0;
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.8);
  background: linear-gradient(180deg, transparent 0%, #1a0a05 100%);
}
.scn-heraldry-discussion .shield {
  position: absolute; top: 15%; left: 40%; width: 60px; height: 70px;
  background: linear-gradient(135deg, #2a4a8a 0%, #1a2a5a 100%);
  border: 3px solid #c8a050;
  border-radius: 10% 10% 30% 30%;
  box-shadow: 0 0 30px rgba(200,160,80,0.3);
  transform: rotate(-5deg);
}
.scn-heraldry-discussion .shield-foot {
  position: absolute; top: 25%; left: 48%; width: 20px; height: 30px;
  background: radial-gradient(ellipse at 50% 30%, #f0c060 0%, #c8a050 70%);
  border-radius: 20% 20% 40% 40%;
  transform: rotate(-10deg);
  animation: hd-foot-shine 2s ease-in-out infinite alternate;
}
.scn-heraldry-discussion .shield-serpent {
  position: absolute; top: 35%; left: 46%; width: 15px; height: 25px;
  background: linear-gradient(180deg, #3a7a3a 0%, #1a3a1a 100%);
  border-radius: 50% 50% 30% 30%;
  transform: rotate(15deg);
  animation: hd-serpent-writhe 3s ease-in-out infinite alternate;
}
.scn-heraldry-discussion .figure-left {
  position: absolute; bottom: 10%; left: 15%; width: 45px; height: 100px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a05 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 20px rgba(0,0,0,0.6);
  animation: hd-fig-left 4s ease-in-out infinite;
}
.scn-heraldry-discussion .figure-right {
  position: absolute; bottom: 10%; right: 20%; width: 50px; height: 110px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform: scaleX(-1);
  box-shadow: 0 0 20px rgba(0,0,0,0.6);
  animation: hd-fig-right 4.5s ease-in-out infinite;
}
.scn-heraldry-discussion .torch-left {
  position: absolute; bottom: 50%; left: 5%; width: 8px; height: 25px;
  background: linear-gradient(180deg, #c8553d 0%, #a0461a 70%);
  border-radius: 40% 40% 10% 10%;
  box-shadow: 0 0 30px 15px rgba(200,80,50,0.5);
  animation: hd-torch 0.3s ease-in-out infinite alternate;
}
.scn-heraldry-discussion .torch-right {
  position: absolute; bottom: 50%; right: 5%; width: 8px; height: 25px;
  background: linear-gradient(180deg, #b87878 0%, #8a5050 70%);
  border-radius: 40% 40% 10% 10%;
  box-shadow: 0 0 30px 15px rgba(184,120,120,0.5);
  animation: hd-torch 0.35s ease-in-out infinite alternate;
}
@keyframes hd-foot-shine {
  0% { opacity: 0.8; filter: brightness(1); }
  50% { opacity: 1; filter: brightness(1.3); }
  100% { opacity: 0.7; filter: brightness(0.9); }
}
@keyframes hd-serpent-writhe {
  0% { transform: rotate(15deg) translateX(0) scaleY(1); }
  50% { transform: rotate(20deg) translateX(2px) scaleY(1.1); }
  100% { transform: rotate(10deg) translateX(-2px) scaleY(0.95); }
}
@keyframes hd-fig-left {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-2px) rotate(3deg); }
  100% { transform: translateY(0) rotate(-2deg); }
}
@keyframes hd-fig-right {
  0% { transform: scaleX(-1) translateY(0) rotate(0deg); }
  50% { transform: scaleX(-1) translateY(-3px) rotate(-4deg); }
  100% { transform: scaleX(-1) translateY(1px) rotate(2deg); }
}
@keyframes hd-torch {
  0% { transform: scaleY(1) translateY(0); }
  50% { transform: scaleY(1.15) translateY(-3px); }
  100% { transform: scaleY(0.9) translateY(2px); }
}

/* --- scene: preoccupation-recess --- */
.scn-preoccupation-recess {
  background:
    radial-gradient(ellipse at 50% 60%, #2a1a0a 0%, transparent 70%),
    linear-gradient(180deg, #1a0a05 0%, #3a1a0a 50%, #1a0a05 100%);
}
.scn-preoccupation-recess .vault-column {
  position: absolute; bottom: 0; left: 30%; width: 20px; height: 100%;
  background: repeating-linear-gradient(180deg, #3a2a1a 0px, #2a1a0a 10px, #3a2a1a 20px);
  border-radius: 10% 10% 0 0;
  box-shadow: inset -8px 0 10px rgba(0,0,0,0.6);
}
.scn-preoccupation-recess .nitre-moss {
  position: absolute; top: 20%; left: 15%; width: 70%; height: 40%;
  background: radial-gradient(circle at 20% 30%, rgba(80,120,80,0.3) 0%, transparent 50%), radial-gradient(circle at 80% 60%, rgba(80,120,80,0.2) 0%, transparent 40%);
  filter: blur(4px);
  animation: pr-moss 10s ease-in-out infinite alternate;
}
.scn-preoccupation-recess .bones {
  position: absolute; bottom: 25%; left: 55%; width: 30px; height: 60px;
  background: radial-gradient(ellipse at 50% 30%, #d4c8a0 0%, #a09070 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 40% 40%;
  transform: rotate(30deg);
  box-shadow: 0 2px 6px rgba(0,0,0,0.4);
  animation: pr-bones-rat 5s ease-in-out infinite alternate;
}
.scn-preoccupation-recess .drip {
  position: absolute; top: 10%; left: 45%; width: 4px; height: 15px;
  background: linear-gradient(180deg, transparent 0%, rgba(100,130,150,0.6) 100%);
  border-radius: 50%;
  animation: pr-drip-fall 1.5s ease-in infinite;
}
.scn-preoccupation-recess .figure-grip {
  position: absolute; bottom: 5%; left: 20%; width: 60px; height: 120px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a05 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 30px rgba(0,0,0,0.7);
  animation: pr-fig-shift 4s ease-in-out infinite;
}
.scn-preoccupation-recess .grip-arm {
  position: absolute; bottom: 25%; left: 40%; width: 40px; height: 16px;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a05 100%);
  border-radius: 50% 20% 20% 50%;
  transform: rotate(-40deg);
  transform-origin: right center;
  animation: pr-arm-clutch 2s ease-in-out infinite alternate;
}
.scn-preoccupation-recess .torch-dim {
  position: absolute; bottom: 60%; right: 10%; width: 8px; height: 20px;
  background: linear-gradient(180deg, #a0461a 0%, #5a2a0a 100%);
  border-radius: 40% 40% 10% 10%;
  box-shadow: 0 0 20px 10px rgba(160,70,30,0.3);
  animation: pr-torch-dim 0.5s ease-in-out infinite alternate;
}
.scn-preoccupation-recess .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 5%;
  background: linear-gradient(180deg, #1a0a05 0%, #0a0502 100%);
  box-shadow: inset 0 4px 8px rgba(0,0,0,0.8);
}
@keyframes pr-moss {
  0% { opacity: 0.3; filter: blur(5px); }
  50% { opacity: 0.6; filter: blur(3px); }
  100% { opacity: 0.4; filter: blur(6px); }
}
@keyframes pr-bones-rat {
  0% { transform: rotate(30deg) translateY(0); }
  50% { transform: rotate(35deg) translateY(-2px); }
  100% { transform: rotate(25deg) translateY(2px); }
}
@keyframes pr-drip-fall {
  0% { transform: translateY(0); opacity: 1; }
  80% { transform: translateY(40px); opacity: 0.8; }
  100% { transform: translateY(50px); opacity: 0; }
}
@keyframes pr-fig-shift {
  0% { transform: translateX(0) rotate(0deg); }
  50% { transform: translateX(5px) rotate(-2deg); }
  100% { transform: translateX(-3px) rotate(1deg); }
}
@keyframes pr-arm-clutch {
  0% { transform: rotate(-40deg); }
  100% { transform: rotate(-35deg); }
}
@keyframes pr-torch-dim {
  0% { transform: scaleY(1) translateY(0); opacity: 0.6; }
  50% { transform: scaleY(1.1) translateY(-2px); opacity: 0.8; }
  100% { transform: scaleY(0.9) translateY(1px); opacity: 0.5; }
}

/* --- scene: masonic-exchange --- */
.scn-masonic-exchange {
  background:
    radial-gradient(ellipse at 40% 50%, #3a1a0a 0%, transparent 60%),
    linear-gradient(180deg, #1a0a05 0%, #2a1508 50%, #1a0a05 100%);
}
.scn-masonic-exchange .vault-bg {
  position: absolute; inset: 0;
  background: repeating-linear-gradient(45deg, transparent 0px, transparent 10px, rgba(0,0,0,0.2) 10px, rgba(0,0,0,0.2) 12px);
  animation: me-bg-pulse 6s ease-in-out infinite alternate;
}
.scn-masonic-exchange .torch-bright {
  position: absolute; bottom: 50%; left: 10%; width: 12px; height: 35px;
  background: linear-gradient(180deg, #c8553d 0%, #a0461a 60%, #3a1a0a 100%);
  border-radius: 40% 40% 10% 10%;
  box-shadow: 0 0 60px 30px rgba(200,80,50,0.7);
  animation: me-torch-bright 0.2s ease-in-out infinite alternate;
}
.scn-masonic-exchange .flagon {
  position: absolute; bottom: 20%; left: 30%; width: 40px; height: 50px;
  background: linear-gradient(180deg, #5a3a2a 0%, #3a1a0a 100%);
  border-radius: 20% 20% 40% 40%;
  box-shadow: inset 0 0 15px rgba(0,0,0,0.6);
  transform: rotate(10deg);
  animation: me-flagon-tilt 3s ease-in-out infinite alternate;
}
.scn-masonic-exchange .bottle-thrown {
  position: absolute; bottom: 60%; left: 55%; width: 30px; height: 70px;
  background: linear-gradient(180deg, rgba(80,60,40,0.7) 0%, rgba(40,30,20,0.9) 100%);
  border-radius: 20% 20% 30% 30% / 10% 10% 40% 40%;
  transform: rotate(45deg);
  box-shadow: 0 0 20px rgba(0,0,0,0.5);
  animation: me-bottle-throw 2s ease-in-out infinite;
}
.scn-masonic-exchange .figure-arm {
  position: absolute; bottom: 15%; left: 45%; width: 40px; height: 100px;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a0a05 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: 0 0 20px rgba(0,0,0,0.6);
  animation: me-fig-arm 1.5s ease-in-out infinite alternate;
}
.scn-masonic-exchange .eyes-flash {
  position: absolute; bottom: 40%; left: 52%; width: 8px; height: 6px;
  background: radial-gradient(circle, #f0c068 0%, #b08040 80%);
  border-radius: 50%;
  box-shadow: 0 0 20px 8px rgba(240,192,104,0.6);
  animation: me-eyes-flash 0.8s ease-in-out infinite alternate;
}
.scn-masonic-exchange .gesture-line {
  position: absolute; bottom: 35%; left: 42%; width: 30px; height: 4px;
  background: linear-gradient(90deg, transparent 0%, rgba(200,80,50,0.4) 50%, transparent 100%);
  transform: rotate(30deg);
  filter: blur(2px);
  animation: me-gesture 1.2s ease-in-out infinite alternate;
}
@keyframes me-bg-pulse {
  0% { opacity: 0.4; }
  50% { opacity: 0.6; }
  100% { opacity: 0.3; }
}
@keyframes me-torch-bright {
  0% { transform: scaleY(1) translateY(0); }
  50% { transform: scaleY(1.2) translateY(-4px); }
  100% { transform: scaleY(0.9) translateY(2px); }
}
@keyframes me-flagon-tilt {
  0% { transform: rotate(10deg) translateY(0); }
  50% { transform: rotate(15deg) translateY(-2px); }
  100% { transform: rotate(8deg) translateY(1px); }
}
@keyframes me-bottle-throw {
  0% { transform: rotate(45deg) translate(0, 0); opacity: 0.8; }
  50% { transform: rotate(30deg) translate(15px, -20px); opacity: 1; }
  100% { transform: rotate(60deg) translate(-5px, 5px); opacity: 0.7; }
}
@keyframes me-fig-arm {
  0% { transform: translateY(0) rotate(0deg); }
  50% { transform: translateY(-5px) rotate(5deg); }
  100% { transform: translateY(2px) rotate(-3deg); }
}
@keyframes me-eyes-flash {
  0% { opacity: 0.5; box-shadow: 0 0 10px 4px rgba(240,192,104,0.3); }
  50% { opacity: 1; box-shadow: 0 0 30px 12px rgba(240,192,104,0.8); }
  100% { opacity: 0.6; box-shadow: 0 0 15px 6px rgba(240,192,104,0.4); }
}
@keyframes me-gesture {
  0% { transform: rotate(30deg) scaleX(1); opacity: 0.3; }
  50% { transform: rotate(40deg) scaleX(1.5); opacity: 0.6; }
  100% { transform: rotate(25deg) scaleX(0.8); opacity: 0.2; }
}

/* revenge-vow – tense dim interior */
.scn-revenge-vow {
  background:
    radial-gradient(ellipse at 40% 50%, #2a2a3a 0%, #12121a 60%),
    linear-gradient(180deg, #1e1e2e 0%, #0e0e16 100%);
}
.scn-revenge-vow .wall-left {
  position: absolute; left:0; top:0; width:45%; height:100%;
  background: linear-gradient(90deg, #0c0c14 0%, #1a1a26 100%);
  box-shadow: inset -10px 0 20px rgba(0,0,0,0.5);
}
.scn-revenge-vow .wall-right {
  position: absolute; right:0; top:0; width:45%; height:100%;
  background: linear-gradient(270deg, #0c0c14 0%, #1a1a26 100%);
  box-shadow: inset 10px 0 20px rgba(0,0,0,0.5);
}
.scn-revenge-vow .floor {
  position: absolute; bottom:0; left:0; right:0; height:30%;
  background: linear-gradient(180deg, #1a1a22 0%, #0e0e14 100%);
  border-radius: 0 0 30% 30% / 0 0 20% 20%;
}
.scn-revenge-vow .window {
  position: absolute; top:20%; left:15%; width:80px; height:100px;
  background: radial-gradient(ellipse at 50% 50%, #3a3a5a 0%, #0e0e1a 70%);
  border: 4px solid #28283a;
  border-radius: 8% 8% 4% 4%;
  box-shadow: inset 0 0 20px #3a3a5a, 0 0 30px rgba(58,58,90,0.2);
  animation: sc1-windowglow 8s ease-in-out infinite alternate;
}
.scn-revenge-vow .table {
  position: absolute; bottom:20%; left:50%; width:120px; height:20px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #3a2a1a 0%, #1a120a 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 -4px 10px rgba(0,0,0,0.4);
}
.scn-revenge-vow .figure {
  position: absolute; bottom:22%; left:52%; width:30px; height:70px;
  background: linear-gradient(180deg, #080812 0%, #000005 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sc1-figure 6s ease-in-out infinite;
}
.scn-revenge-vow .candle {
  position: absolute; bottom:24%; left:44%; width:10px; height:24px;
  background: linear-gradient(180deg, #d4c0a0 0%, #e8dcc0 30%, #8a7a5a 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 0 6px rgba(0,0,0,0.3);
}
.scn-revenge-vow .flame {
  position: absolute; bottom:43%; left:44.8%; width:8px; height:16px;
  background: radial-gradient(ellipse at 50% 60%, #ffdd80 0%, #ffaa40 50%, transparent 70%);
  border-radius: 50% 50% 40% 40%;
  box-shadow: 0 0 20px 8px rgba(255,170,64,0.2), 0 0 40px 16px rgba(255,170,64,0.1);
  animation: sc1-flameflicker 0.8s ease-in-out infinite alternate;
}
.scn-revenge-vow .shadow {
  position: absolute; bottom:22%; left:40%; width:80px; height:40px;
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.6) 0%, transparent 100%);
  filter: blur(8px);
  animation: sc1-shadow 4s ease-in-out infinite alternate;
}

@keyframes sc1-windowglow {
  0%,100% { opacity:0.6; box-shadow: inset 0 0 10px #2a2a4a, 0 0 15px rgba(42,42,74,0.1); }
  50% { opacity:1; box-shadow: inset 0 0 30px #5a5a8a, 0 0 50px rgba(90,90,138,0.3); }
}
@keyframes sc1-figure {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(3px) rotate(-2deg); }
  50% { transform: translateX(6px) rotate(0deg); }
  75% { transform: translateX(3px) rotate(2deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes sc1-flameflicker {
  0% { transform: scaleY(1) translateY(0); opacity:0.9; }
  25% { transform: scaleY(1.1) translateY(-1px); opacity:1; }
  50% { transform: scaleY(0.9) translateY(0); opacity:0.8; }
  75% { transform: scaleY(1.05) translateY(-2px); opacity:1; }
  100% { transform: scaleY(1) translateY(0); opacity:0.9; }
}
@keyframes sc1-shadow {
  0%,100% { transform: scaleX(1) translateX(0); opacity:0.6; }
  50% { transform: scaleX(1.2) translateX(5px); opacity:0.9; }
}

/* revenge-smile – calm dim interior */
.scn-revenge-smile {
  background:
    linear-gradient(180deg, #1e2028 0%, #2a2c36 40%, #1a1c24 100%),
    radial-gradient(ellipse at 50% 70%, #383a4a 0%, transparent 80%);
}
.scn-revenge-smile .alcove-bg {
  position: absolute; left:20%; top:10%; width:60%; height:70%;
  background: radial-gradient(ellipse at 50% 50%, #3a3c48 0%, #1a1c26 80%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  box-shadow: inset -10px -10px 30px rgba(0,0,0,0.4);
  animation: sc2-alcove 12s ease-in-out infinite alternate;
}
.scn-revenge-smile .alcove-light {
  position: absolute; left:35%; top:35%; width:30%; height:20%;
  background: radial-gradient(ellipse at 50% 50%, rgba(230,200,150,0.15) 0%, transparent 100%);
  filter: blur(10px);
  animation: sc2-glow 5s ease-in-out infinite alternate;
}
.scn-revenge-smile .table {
  position: absolute; bottom:30%; left:25%; width:40%; height:12px;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a10 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: 0 6px 12px rgba(0,0,0,0.5);
}
.scn-revenge-smile .bottle {
  position: absolute; bottom:35%; left:42%; width:18px; height:48px;
  background: linear-gradient(180deg, #5a5a3a 0%, #3a3a1a 60%, #2a2a10 100%);
  border-radius: 30% 30% 20% 20% / 50% 50% 30% 30%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
  transform: rotate(-5deg);
}
.scn-revenge-smile .glass {
  position: absolute; bottom:32%; left:56%; width:16px; height:28px;
  background: linear-gradient(180deg, #6a7a7a 0%, #8a9a9a 40%, #4a5a5a 100%);
  border-radius: 20% 20% 30% 30% / 30% 30% 40% 40%;
  box-shadow: 0 0 8px rgba(138,154,154,0.3);
  animation: sc2-glass 4s ease-in-out infinite alternate;
}
.scn-revenge-smile .figure {
  position: absolute; bottom:28%; left:32%; width:34px; height:80px;
  background: linear-gradient(180deg, #12121a 0%, #0a0a12 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: sc2-figure 8s ease-in-out infinite;
}
.scn-revenge-smile .hand {
  position: absolute; bottom:42%; left:50%; width:12px; height:20px;
  background: linear-gradient(180deg, #1a1a22 0%, #0e0e16 100%);
  border-radius: 50% 50% 30% 30%;
  transform-origin: top center;
  animation: sc2-hand 6s ease-in-out infinite;
}
.scn-revenge-smile .lamp {
  position: absolute; top:18%; right:22%; width:30px; height:42px;
  background: linear-gradient(180deg, #6a5a3a 0%, #3a2a1a 100%);
  border-radius: 30% 30% 10% 10% / 40% 40% 20% 20%;
  box-shadow: 0 0 20px 6px rgba(200,170,100,0.2);
  animation: sc2-lamp 7s ease-in-out infinite alternate;
}

@keyframes sc2-alcove {
  0%,100% { transform: scale(1); }
  50% { transform: scale(0.98); }
}
@keyframes sc2-glow {
  0% { opacity:0.5; transform: scaleX(1); }
  50% { opacity:1; transform: scaleX(1.1); }
  100% { opacity:0.6; transform: scaleX(1); }
}
@keyframes sc2-glass {
  0%,100% { transform: rotate(-2deg); }
  50% { transform: rotate(2deg); }
}
@keyframes sc2-figure {
  0% { transform: translateX(0) rotate(0deg); }
  33% { transform: translateX(2px) rotate(1deg); }
  66% { transform: translateX(-2px) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes sc2-hand {
  0%,100% { transform: rotate(0deg) translateX(0); }
  25% { transform: rotate(10deg) translateX(2px); }
  75% { transform: rotate(-5deg) translateX(-1px); }
}
@keyframes sc2-lamp {
  0%,100% { box-shadow: 0 0 20px 6px rgba(200,170,100,0.2); }
  50% { box-shadow: 0 0 30px 10px rgba(200,170,100,0.4); }
}

/* carnival-encounter – warm dusk */
.scn-carnival-encounter {
  background:
    linear-gradient(180deg, #4a3a5a 0%, #8a7050 35%, #b09070 70%, #6a4a3a 100%),
    radial-gradient(ellipse at 20% 80%, #d0a070 0%, transparent 60%);
}
.scn-carnival-encounter .sky-dusk {
  position: absolute; inset:0 0 40% 0;
  background: linear-gradient(180deg, #3a2a4a 0%, #7a5a5a 50%, #c08060 100%);
  animation: sc3-sky 20s ease-in-out infinite alternate;
}
.scn-carnival-encounter .rooftops {
  position: absolute; bottom:40%; left:0; right:0; height:18%;
  background: linear-gradient(180deg, #2a2a2a 0%, #1a1a1a 100%);
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
  box-shadow: inset 0 8px 20px rgba(0,0,0,0.6);
}
.scn-carnival-encounter .archway {
  position: absolute; bottom:25%; left:40%; width:120px; height:180px;
  background: radial-gradient(ellipse at 50% 30%, #3a3a3a 0%, #1a1a1a 80%);
  border-radius: 50% 50% 20% 20% / 60% 60% 20% 20%;
  box-shadow: 0 0 30px rgba(0,0,0,0.5);
}
.scn-carnival-encounter .lantern-a {
  position: absolute; top:20%; left:30%; width:20px; height:24px;
  background: radial-gradient(circle, #ffdd80 0%, #cc8840 70%);
  border-radius: 30% 30% 10% 10% / 40% 40% 20% 20%;
  box-shadow: 0 0 30px 8px rgba(255,200,100,0.4);
  animation: sc3-lantern 2s ease-in-out infinite alternate;
}
.scn-carnival-encounter .lantern-b {
  position: absolute; top:22%; right:25%; width:16px; height:20px;
  background: radial-gradient(circle, #ffcc60 0%, #bb7730 70%);
  border-radius: 30% 30% 10% 10% / 40% 40% 20% 20%;
  box-shadow: 0 0 20px 6px rgba(255,180,80,0.3);
  animation: sc3-lantern 2.5s ease-in-out infinite alternate-reverse;
}
.scn-carnival-encounter .figure-motley {
  position: absolute; bottom:22%; left:42%; width:36px; height:90px;
  background: linear-gradient(180deg, #884422 0%, #cc6633 25%, #884422 50%, #cc6633 75%, #884422 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: 0 0 10px rgba(0,0,0,0.3);
  animation: sc3-motley 3s ease-in-out infinite;
}
.scn-carnival-encounter .figure-motley::before {
  content: ''; position: absolute; top:-12px; left:50%; transform:translateX(-50%);
  width:0; height:0; border-left:10px solid transparent; border-right:10px solid transparent;
  border-bottom:16px solid #664422;
  filter: drop-shadow(0 2px 4px rgba(0,0,0,0.3));
}
.scn-carnival-encounter .figure-narrator {
  position: absolute; bottom:20%; left:58%; width:32px; 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: sc3-narrator 4s ease-in-out infinite;
}
.scn-carnival-encounter .confetti {
  position: absolute; top:0; left:0; width:100%; height:100%;
  background: repeating-linear-gradient(
    45deg,
    #ee9944 0px, #ee9944 4px,
    transparent 4px, transparent 8px,
    #44bbdd 8px, #44bbdd 12px,
    transparent 12px, transparent 16px,
    #dd44aa 16px, #dd44aa 20px,
    transparent 20px, transparent 24px
  );
  mask-image: radial-gradient(ellipse at 50% 30%, black 0%, transparent 70%);
  -webkit-mask-image: radial-gradient(ellipse at 50% 30%, black 0%, transparent 70%);
  opacity: 0.2;
  animation: sc3-confetti 10s linear infinite;
}
.scn-carnival-encounter .cobbles {
  position: absolute; bottom:0; left:0; right:0; height:25%;
  background: repeating-linear-gradient(
    90deg,
    #4a4a4a 0px, #4a4a4a 20px,
    #5a5a5a 20px, #5a5a5a 40px,
    #3a3a3a 40px, #3a3a3a 60px
  );
  border-radius: 30% 30% 0 0 / 50% 50% 0 0;
  box-shadow: inset 0 10px 20px rgba(0,0,0,0.3);
}

@keyframes sc3-sky {
  0%,100% { opacity: 0.7; }
  50% { opacity: 1; }
}
@keyframes sc3-lantern {
  0%,100% { transform: rotate(-5deg) scaleY(1); }
  50% { transform: rotate(5deg) scaleY(0.95); }
}
@keyframes sc3-motley {
  0%,100% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(4px) rotate(2deg); }
  50% { transform: translateX(8px) rotate(0deg); }
  75% { transform: translateX(4px) rotate(-2deg); }
}
@keyframes sc3-narrator {
  0% { transform: translateX(0) rotate(0deg); }
  33% { transform: translateX(-3px) rotate(1deg); }
  66% { transform: translateX(0) rotate(-1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes sc3-confetti {
  0% { transform: translateY(0) rotate(0deg); }
  100% { transform: translateY(100%) rotate(360deg); }
}

/* amontillado-plot – tense dusk */
.scn-amontillado-plot {
  background:
    linear-gradient(180deg, #1a1a2a 0%, #2a2a3a 40%, #3a3a4a 70%, #1a1a2a 100%),
    radial-gradient(ellipse at 30% 80%, #4a4a5a 0%, transparent 70%);
}
.scn-amontillado-plot .sky-twilight {
  position: absolute; inset:0 0 50% 0;
  background: linear-gradient(180deg, #0e0e1a 0%, #2a2a4a 40%, #4a3a5a 80%, #8a6a4a 100%);
  animation: sc4-twilight 15s ease-in-out infinite alternate;
}
.scn-amontillado-plot .stone-wall {
  position: absolute; bottom:0; left:0; right:0; height:60%;
  background: repeating-linear-gradient(
    90deg,
    #3a3a3a 0px, #3a3a3a 30px,
    #2a2a2a 30px, #2a2a2a 32px,
    #4a4a4a 32px, #4a4a4a 62px
  );
  border-radius: 10% 10% 0 0 / 20% 20% 0 0;
  box-shadow: inset 0 20px 40px rgba(0,0,0,0.5);
}
.scn-amontillado-plot .door-frame {
  position: absolute; bottom:20%; left:40%; width:80px; height:160px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0e0e0e 100%);
  border: 6px solid #2a2a2a;
  border-radius: 40% 40% 10% 10% / 60% 60% 20% 20%;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.8), 0 0 20px rgba(0,0,0,0.4);
}
.scn-amontillado-plot .steps {
  position: absolute; bottom:8%; left:38%; width:120px; height:40px;
  background: repeating-linear-gradient(
    180deg,
    #3a3a3a 0px, #3a3a3a 10px,
    #2a2a2a 10px, #2a2a2a 12px,
    #4a4a4a 12px, #4a4a4a 22px
  );
  border-radius: 20% 20% 0 0 / 40% 40% 0 0;
  transform: perspective(200px) rotateX(10deg);
}
.scn-amontillado-plot .torch-mount {
  position: absolute; top:20%; right:22%; width:16px; height:40px;
  background: linear-gradient(180deg, #5a4a3a 0%, #2a1a0a 100%);
  border-radius: 20% 20% 10% 10% / 40% 40% 20% 20%;
  box-shadow: 0 4px 8px rgba(0,0,0,0.3);
}
.scn-amontillado-plot .torch-flame {
  position: absolute; top:16%; right:23.5%; width:12px; height:24px;
  background: radial-gradient(ellipse at 50% 60%, #ffcc60 0%, #ff8840 40%, transparent 70%);
  border-radius: 50% 50% 40% 40%;
  box-shadow: 0 0 30px 10px rgba(255,136,64,0.3), 0 0 60px 20px rgba(255,136,64,0.1);
  animation: sc4-torch 0.7s ease-in-out infinite alternate;
}
.scn-amontillado-plot .figure {
  position: absolute; bottom:22%; left:48%; width:34px; height:80px;
  background: linear-gradient(180deg, #0e0e1a 0%, #06060e 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  box-shadow: -5px 0 10px rgba(0,0,0,0.5);
  animation: sc4-figure 7s ease-in-out infinite;
}
.scn-amontillado-plot .bottle-shadow {
  position: absolute; bottom:14%; left:56%; width:50px; height:20px;
  background: radial-gradient(ellipse at 50% 50%, rgba(0,0,0,0.7) 0%, transparent 100%);
  filter: blur(6px);
  animation: sc4-bottleshadow 5s ease-in-out infinite alternate;
}

@keyframes sc4-twilight {
  0%,100% { opacity: 0.8; }
  50% { opacity: 1; }
}
@keyframes sc4-torch {
  0% { transform: scaleY(1) translateY(0); opacity:0.9; }
  25% { transform: scaleY(1.1) translateY(-1px); opacity:1; }
  50% { transform: scaleY(0.9) translateY(1px); opacity:0.7; }
  75% { transform: scaleY(1.05) translateY(-2px); opacity:1; }
  100% { transform: scaleY(1) translateY(0); opacity:0.9; }
}
@keyframes sc4-figure {
  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 sc4-bottleshadow {
  0%,100% { transform: scaleX(1) translateX(0); opacity:0.5; }
  50% { transform: scaleX(1.3) translateX(5px); opacity:0.8; }
}

.scn-journey-to-palazzo {
  background: linear-gradient(180deg, #0f0f1a 0%, #1a1a2e 30%, #2a2a3e 70%, #1a1a2e 100%), radial-gradient(ellipse at 30% 80%, #2a2a3e 0%, transparent 60%);
}
.scn-journey-to-palazzo .wall-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #1a1a2e 0%, #0f0f1a 100%); opacity: 0.6; animation: jp-wall 12s ease-in-out infinite alternate;
}
.scn-journey-to-palazzo .arch {
  position: absolute; bottom: 20%; left: 10%; right: 10%; height: 60%; background: radial-gradient(ellipse at 50% 0%, transparent 40%, #2a2a3e 41%, #1a1a2e 100%); border-radius: 50% 50% 0 0; filter: blur(2px);
}
.scn-journey-to-palazzo .figure-left {
  position: absolute; bottom: 18%; left: 28%; width: 24px; height: 56px; background: linear-gradient(180deg, #111122 0%, #0a0a15 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: jp-walk-left 4s ease-in-out infinite;
}
.scn-journey-to-palazzo .figure-right {
  position: absolute; bottom: 20%; left: 42%; width: 22px; height: 52px; background: linear-gradient(180deg, #1a1a2e 0%, #0f0f1a 100%); border-radius: 45% 40% 35% 30% / 55% 50% 45% 40%; transform-origin: bottom center; animation: jp-walk-right 4.2s ease-in-out infinite alternate;
}
.scn-journey-to-palazzo .lamp {
  position: absolute; bottom: 40%; left: 68%; width: 10px; height: 10px; background: radial-gradient(circle, #e0a040 0%, #c08030 50%, transparent 70%); border-radius: 50%; box-shadow: 0 0 20px 8px rgba(192, 128, 48, 0.5); animation: jp-lamp 2s ease-in-out infinite alternate;
}
.scn-journey-to-palazzo .web {
  position: absolute; top: 15%; left: 5%; right: 5%; height: 30%; background: repeating-linear-gradient(45deg, transparent 0 2px, rgba(255,255,255,0.08) 2px 4px), repeating-linear-gradient(-45deg, transparent 0 2px, rgba(255,255,255,0.08) 2px 4px); filter: blur(1px); animation: jp-web 8s ease-in-out infinite alternate;
}
.scn-journey-to-palazzo .mist {
  position: absolute; top: 0; left: 0; right: 0; height: 40%; background: linear-gradient(180deg, rgba(200,200,220,0.08) 0%, transparent 100%); animation: jp-mist 20s linear infinite;
}
@keyframes jp-wall { 0% { opacity: 0.5; } 50% { opacity: 0.7; } 100% { opacity: 0.5; } }
@keyframes jp-walk-left { 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(0deg); } }
@keyframes jp-walk-right { 0% { transform: translateX(0) translateY(0) rotate(1deg); } 33% { transform: translateX(10px) translateY(-3px) rotate(-1deg); } 66% { transform: translateX(20px) translateY(0) rotate(1deg); } 100% { transform: translateX(30px) translateY(-2px) rotate(0deg); } }
@keyframes jp-lamp { 0% { box-shadow: 0 0 12px 4px rgba(192, 128, 48, 0.4); opacity: 0.8; } 50% { box-shadow: 0 0 28px 10px rgba(224, 160, 64, 0.7); opacity: 1; } 100% { box-shadow: 0 0 16px 6px rgba(192, 128, 48, 0.5); opacity: 0.9; } }
@keyframes jp-web { 0% { opacity: 0.3; transform: scale(0.95); } 50% { opacity: 0.6; transform: scale(1.05); } 100% { opacity: 0.4; transform: scale(0.98); } }
@keyframes jp-mist { 0% { transform: translateX(0); } 50% { transform: translateX(30px); } 100% { transform: translateX(0); } }

.scn-item-flambeaux {
  background: linear-gradient(90deg, #1a0e08 0%, #2a1408 30%, #1a0e08 70%, #0d0805 100%), radial-gradient(ellipse at 50% 80%, #3a1a0a 0%, transparent 60%);
}
.scn-item-flambeaux .corridor-floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%; background: linear-gradient(180deg, #2a1408 0%, #0d0805 100%); border-radius: 20% 20% 0 0; box-shadow: inset 0 20px 30px rgba(0,0,0,0.7);
}
.scn-item-flambeaux .corridor-wall {
  position: absolute; inset: 0 0 30% 0; background: linear-gradient(180deg, #3a2010 0%, #2a1408 70%, #1a0e08 100%); box-shadow: inset 0 0 50px rgba(0,0,0,0.5);
}
.scn-item-flambeaux .torch-left {
  position: absolute; bottom: 45%; left: 12%; width: 12px; height: 30px; background: linear-gradient(180deg, #5a3010 0%, #3a1808 100%); border-radius: 4px 4px 0 0; transform: rotate(-5deg);
}
.scn-item-flambeaux .torch-right {
  position: absolute; bottom: 45%; right: 12%; width: 12px; height: 30px; background: linear-gradient(180deg, #5a3010 0%, #3a1808 100%); border-radius: 4px 4px 0 0; transform: rotate(5deg);
}
.scn-item-flambeaux .flame-left {
  position: absolute; bottom: 55%; left: 12%; width: 18px; height: 24px; background: radial-gradient(ellipse at 50% 80%, #e85d04 0%, #c2410c 40%, #b33c00 70%, transparent 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: translateX(-3px); animation: if-flame-left 0.4s ease-in-out infinite alternate;
}
.scn-item-flambeaux .flame-right {
  position: absolute; bottom: 55%; right: 12%; width: 18px; height: 24px; background: radial-gradient(ellipse at 50% 80%, #e85d04 0%, #c2410c 40%, #b33c00 70%, transparent 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform: translateX(3px); animation: if-flame-right 0.35s ease-in-out infinite alternate;
}
.scn-item-flambeaux .figure-front {
  position: absolute; bottom: 30%; left: 38%; width: 26px; height: 60px; background: linear-gradient(180deg, #1a0e08 0%, #0d0805 100%); border-radius: 45% 40% 30% 30% / 55% 50% 40% 40%; transform-origin: bottom center; animation: if-walk 3.5s ease-in-out infinite;
}
.scn-item-flambeaux .shadow {
  position: absolute; bottom: 28%; left: 35%; right: 35%; height: 50%; background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,0.8) 0%, transparent 70%); animation: if-shadow 3.5s ease-in-out infinite;
}
@keyframes if-flame-left { 0% { transform: translateX(-3px) scale(1) rotate(0deg); } 50% { transform: translateX(-5px) scale(1.1) rotate(-3deg); } 100% { transform: translateX(-3px) scale(0.95) rotate(2deg); } }
@keyframes if-flame-right { 0% { transform: translateX(3px) scale(1) rotate(0deg); } 50% { transform: translateX(5px) scale(1.08) rotate(3deg); } 100% { transform: translateX(3px) scale(0.92) rotate(-2deg); } }
@keyframes if-walk { 0% { transform: translateX(0) translateY(0) rotate(-1deg); } 30% { transform: translateX(15px) translateY(-2px) rotate(1deg); } 60% { transform: translateX(30px) translateY(0) rotate(-1deg); } 100% { transform: translateX(45px) translateY(-1px) rotate(0deg); } }
@keyframes if-shadow { 0% { opacity: 0.7; transform: scaleX(1); } 50% { opacity: 0.5; transform: scaleX(0.9); } 100% { opacity: 0.7; transform: scaleX(1); } }

.scn-catacomb-walk {
  background: linear-gradient(180deg, #1a1a2a 0%, #1f1f30 50%, #2a2a3a 100%), radial-gradient(ellipse at 50% 0%, #3a3a4a 0%, transparent 70%);
}
.scn-catacomb-walk .cavern-bg {
  position: absolute; inset: 0; background: linear-gradient(180deg, #202030 0%, #181825 70%); opacity: 0.8;
}
.scn-catacomb-walk .stalactite {
  position: absolute; top: 0; left: 20%; right: 60%; height: 35%; background: linear-gradient(180deg, #2a2a3a 0%, transparent 100%); clip-path: polygon(10% 0%, 90% 0%, 50% 100%); animation: cw-stal 12s ease-in-out infinite alternate;
}
.scn-catacomb-walk .web-glow {
  position: absolute; top: 20%; left: 5%; right: 5%; height: 25%; background: radial-gradient(ellipse at 30% 50%, rgba(200,200,220,0.2) 0%, transparent 60%), radial-gradient(ellipse at 70% 30%, rgba(200,200,220,0.15) 0%, transparent 50%); filter: blur(4px); animation: cw-web 6s ease-in-out infinite alternate;
}
.scn-catacomb-walk .figure-mover {
  position: absolute; bottom: 25%; left: 30%; width: 22px; height: 55px; background: linear-gradient(180deg, #0a0a15 0%, #111122 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cw-stumble 3s ease-in-out infinite;
}
.scn-catacomb-walk .figure-follower {
  position: absolute; bottom: 30%; left: 48%; width: 24px; height: 58px; background: linear-gradient(180deg, #151528 0%, #0a0a15 100%); border-radius: 45% 45% 35% 35% / 65% 60% 40% 40%; transform-origin: bottom center; animation: cw-follow 4.2s ease-in-out infinite alternate;
}
.scn-catacomb-walk .torch-light {
  position: absolute; bottom: 40%; left: 52%; width: 18px; height: 20px; background: radial-gradient(circle, #e85d04 0%, #b33c00 50%, transparent 80%); border-radius: 50%; box-shadow: 0 0 30px 12px rgba(184, 60, 0, 0.6); animation: cw-torch 1.8s ease-in-out infinite alternate;
}
.scn-catacomb-walk .nitre-crackle {
  position: absolute; bottom: 20%; left: 0; right: 0; height: 10%; background: repeating-linear-gradient(90deg, transparent 0 3px, rgba(200,220,200,0.05) 3px 6px); animation: cw-crackle 5s linear infinite;
}
@keyframes cw-stal { 0% { opacity: 0.5; transform: translateY(0); } 50% { opacity: 0.8; transform: translateY(-5px); } 100% { opacity: 0.5; transform: translateY(0); } }
@keyframes cw-web { 0% { opacity: 0.2; transform: scale(0.9); } 50% { opacity: 0.5; transform: scale(1.1); } 100% { opacity: 0.3; transform: scale(0.95); } }
@keyframes cw-stumble { 0% { transform: translateX(0) translateY(0) rotate(0deg); } 20% { transform: translateX(10px) translateY(-4px) rotate(4deg); } 40% { transform: translateX(20px) translateY(-2px) rotate(-3deg); } 60% { transform: translateX(30px) translateY(0) rotate(2deg); } 80% { transform: translateX(40px) translateY(-3px) rotate(-2deg); } 100% { transform: translateX(50px) translateY(0) rotate(0deg); } }
@keyframes cw-follow { 0% { transform: translateX(0) translateY(0) rotate(-1deg); } 50% { transform: translateX(20px) translateY(-2px) rotate(1deg); } 100% { transform: translateX(40px) translateY(0) rotate(-1deg); } }
@keyframes cw-torch { 0% { box-shadow: 0 0 20px 8px rgba(184,60,0,0.4); opacity: 0.8; } 50% { box-shadow: 0 0 40px 16px rgba(232,93,4,0.7); opacity: 1; } 100% { box-shadow: 0 0 25px 10px rgba(184,60,0,0.5); opacity: 0.9; } }
@keyframes cw-crackle { 0% { opacity: 0.1; } 50% { opacity: 0.3; } 100% { opacity: 0.1; } }

.scn-nitre-conversation {
  background: linear-gradient(180deg, #1a1a2e 0%, #2a2a3e 40%, #1f1f30 80%, #151528 100%), radial-gradient(ellipse at 60% 70%, #3a3a4a 0%, transparent 60%);
}
.scn-nitre-conversation .cave-depth {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 40% 60%, #202030 0%, #151528 70%); animation: nc-depth 15s ease-in-out infinite alternate;
}
.scn-nitre-conversation .cough-figure {
  position: absolute; bottom: 20%; left: 30%; width: 28px; height: 64px; background: linear-gradient(180deg, #0a0a15 0%, #111122 100%); border-radius: 45% 40% 35% 30% / 60% 50% 40% 40%; transform-origin: 50% 100%; animation: nc-cough 1.2s ease-in-out infinite;
}
.scn-nitre-conversation .cough-particles {
  position: absolute; bottom: 35%; left: 32%; width: 4px; height: 4px; background: radial-gradient(circle, rgba(200,220,200,0.6) 0%, transparent 100%); border-radius: 50%; box-shadow: 4px 8px 0 rgba(200,220,200,0.3), -2px 12px 0 rgba(200,220,200,0.2), 8px 4px 0 rgba(200,220,200,0.3), -6px 6px 0 rgba(200,220,200,0.15); animation: nc-particles 1.2s ease-out infinite;
}
.scn-nitre-conversation .torch-light-nc {
  position: absolute; bottom: 35%; right: 20%; width: 16px; height: 18px; background: radial-gradient(circle, #e85d04 0%, #c2410c 40%, transparent 70%); border-radius: 50%; box-shadow: 0 0 30px 10px rgba(194,65,12,0.5); animation: nc-torch 2s ease-in-out infinite alternate;
}
.scn-nitre-conversation .nitre-fog {
  position: absolute; top: 10%; left: 0; right: 0; height: 40%; background: radial-gradient(ellipse at 50% 50%, rgba(180,200,180,0.08) 0%, transparent 70%); filter: blur(6px); animation: nc-fog 25s linear infinite alternate;
}
.scn-nitre-conversation .ground {
  position: absolute; bottom: 0; left: 0; right: 0; height: 18%; background: linear-gradient(180deg, #1a1a2e 0%, #0f0f1a 100%); border-radius: 30% 30% 0 0;
}
@keyframes nc-depth { 0% { opacity: 0.7; } 50% { opacity: 0.9; } 100% { opacity: 0.7; } }
@keyframes nc-cough { 0% { transform: translateX(0) translateY(0) rotate(-2deg) scale(1); } 25% { transform: translateX(5px) translateY(-8px) rotate(4deg) scale(1.05); } 50% { transform: translateX(-5px) translateY(-12px) rotate(-5deg) scale(0.95); } 75% { transform: translateX(3px) translateY(-6px) rotate(3deg) scale(1.02); } 100% { transform: translateX(0) translateY(0) rotate(0deg) scale(1); } }
@keyframes nc-particles { 0% { opacity: 1; transform: translate(0,0) scale(1); } 100% { opacity: 0; transform: translate(-20px, -40px) scale(0.5); } }
@keyframes nc-torch { 0% { box-shadow: 0 0 20px 8px rgba(194,65,12,0.4); opacity: 0.8; } 50% { box-shadow: 0 0 40px 16px rgba(232,93,4,0.7); opacity: 1; } 100% { box-shadow: 0 0 25px 10px rgba(194,65,12,0.5); opacity: 0.9; } }
@keyframes nc-fog { 0% { transform: translateX(0) scale(0.95); } 50% { transform: translateX(20px) scale(1.05); } 100% { transform: translateX(-10px) scale(0.98); } }
/* end per-scene blocks */

/* ============ tier S ============ */
/* per-scene blocks (EXP step_scenes) */
.scn-item-trowel-sign {
  background: 
    radial-gradient(ellipse 80% 60% at 50% 60%, #3a2010 0%, transparent 70%),
    linear-gradient(180deg, #1a0a08 0%, #2a1410 50%, #3a2018 100%);
}
.scn-item-trowel-sign .bg-wall {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(90deg, #4a2a1a 0%, #2a1410 50%, #3a1a12 100%);
  border-radius: 0 0 40% 40% / 0 0 20% 20%;
  animation: it-wall 12s ease-in-out infinite alternate;
}
.scn-item-trowel-sign .torch-glow {
  position: absolute; bottom: 45%; left: 50%; width: 40px; height: 50px;
  transform: translate(-50%, 0);
  background: radial-gradient(circle, #ffa050 0%, #e07020 30%, transparent 70%);
  border-radius: 50%;
  filter: blur(10px);
  box-shadow: 0 0 60px 40px rgba(255,160,80,0.4);
  animation: it-glow 3s ease-in-out infinite alternate;
}
.scn-item-trowel-sign .hand {
  position: absolute; bottom: 22%; left: 42%; width: 28px; height: 40px;
  background: linear-gradient(180deg, #1a0a08 0%, #0d0504 100%);
  border-radius: 40% 50% 60% 50% / 50% 40% 60% 50%;
  transform: rotate(15deg);
  transform-origin: bottom left;
  animation: it-hand 5s ease-in-out infinite;
}
.scn-item-trowel-sign .trowel {
  position: absolute; bottom: 28%; left: 44%; width: 8px; height: 32px;
  background: linear-gradient(180deg, #7a5a3a 0%, #4a2a1a 100%);
  border-radius: 0 0 2px 2px;
  transform: rotate(20deg);
  transform-origin: top center;
  animation: it-trowel 5s ease-in-out infinite;
}
.scn-item-trowel-sign .spark-a,
.scn-item-trowel-sign .spark-b {
  position: absolute; width: 4px; height: 4px;
  background: #ffd080;
  border-radius: 50%;
  box-shadow: 0 0 8px 2px #ffa040;
  animation: it-spark 2s ease-out infinite;
}
.scn-item-trowel-sign .spark-a { bottom: 50%; left: 55%; animation-delay: -0.5s; }
.scn-item-trowel-sign .spark-b { bottom: 48%; left: 48%; animation-delay: -1.2s; }
@keyframes it-wall { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(0.98); } }
@keyframes it-glow { 0% { opacity: 0.7; transform: translate(-50%, 0) scale(1); } 50% { opacity: 1; transform: translate(-50%, -2px) scale(1.05); } 100% { opacity: 0.8; transform: translate(-50%, 1px) scale(0.98); } }
@keyframes it-hand { 0%,100% { transform: rotate(15deg) translateY(0); } 50% { transform: rotate(10deg) translateY(-2px); } }
@keyframes it-trowel { 0%,100% { transform: rotate(20deg) scale(1); } 50% { transform: rotate(25deg) scale(1.02); } }
@keyframes it-spark { 0% { opacity: 1; transform: translate(0,0) scale(1); } 50% { opacity: 0.8; transform: translate(10px,-15px) scale(0.5); } 100% { opacity: 0; transform: translate(20px,-30px) scale(0); } }

.scn-granite-recess-exposed {
  background:
    radial-gradient(ellipse 120% 80% at 30% 60%, #2a1410 0%, transparent 70%),
    linear-gradient(180deg, #0a0504 0%, #1a0a08 40%, #2a1410 100%);
}
.scn-granite-recess-exposed .recess-bg {
  position: absolute; inset: 10% 10% 20% 10%;
  background: linear-gradient(180deg, #0a0504 0%, #1a0a08 100%);
  border-radius: 10% 10% 50% 50% / 20% 20% 60% 60%;
  box-shadow: inset 0 0 40px rgba(0,0,0,0.8);
  animation: gr-recess 20s ease-in-out infinite alternate;
}
.scn-granite-recess-exposed .recess-side {
  position: absolute; left: 10%; top: 10%; bottom: 20%; width: 8%;
  background: linear-gradient(180deg, #3a2018 0%, #1a0a08 100%);
  border-radius: 10% 0 0 10%;
  animation: gr-side 15s ease-in-out infinite alternate;
}
.scn-granite-recess-exposed .bones-left,
.scn-granite-recess-exposed .bones-right {
  position: absolute; bottom: 30%; width: 12px; height: 4px;
  background: #4a3a2a;
  border-radius: 2px;
  box-shadow: 0 0 4px rgba(74,58,42,0.5);
  animation: gr-bones 8s ease-in-out infinite;
}
.scn-granite-recess-exposed .bones-left { left: 25%; transform: rotate(-20deg); }
.scn-granite-recess-exposed .bones-right { right: 25%; transform: rotate(20deg); animation-delay: -3s; }
.scn-granite-recess-exposed .torch-flame {
  position: absolute; bottom: 45%; left: 50%; width: 16px; height: 28px;
  transform: translateX(-50%);
  background: radial-gradient(ellipse 60% 80% at 50% 30%, #ffa050 0%, #d06020 40%, transparent 80%);
  border-radius: 50% 50% 30% 30% / 60% 60% 30% 30%;
  animation: gr-flame 2s ease-in-out infinite alternate;
}
.scn-granite-recess-exposed .torch-handle {
  position: absolute; bottom: 35%; left: 50%; width: 4px; height: 24px;
  transform: translateX(-50%);
  background: linear-gradient(180deg, #5a3a2a 0%, #2a1a10 100%);
  border-radius: 0 0 2px 2px;
}
@keyframes gr-recess { 0% { transform: scaleY(1); } 50% { transform: scaleY(1.02); } 100% { transform: scaleY(0.98); } }
@keyframes gr-side { 0% { transform: scaleX(1); } 50% { transform: scaleX(1.05); } 100% { transform: scaleX(0.95); } }
@keyframes gr-bones { 0%,100% { transform: rotate(-20deg) translateY(0); } 50% { transform: rotate(-15deg) translateY(-2px); } }
@keyframes gr-bones-right { 0%,100% { transform: rotate(20deg) translateY(0); } 50% { transform: rotate(25deg) translateY(-2px); } } /* not used, but kept for clarity */
@keyframes gr-flame { 0% { opacity: 0.8; transform: translateX(-50%) scale(1) rotate(-2deg); } 50% { opacity: 1; transform: translateX(-50%) scale(1.1) rotate(0); } 100% { opacity: 0.9; transform: translateX(-50%) scale(0.95) rotate(3deg); } }

.scn-padlocked-niche-mockery {
  background:
    radial-gradient(ellipse 100% 60% at 40% 50%, #2a1410 0%, transparent 80%),
    linear-gradient(180deg, #0a0504 0%, #1a0a08 50%, #2a1410 100%);
}
.scn-padlocked-niche-mockery .niche-wall {
  position: absolute; left: 20%; top: 5%; bottom: 25%; width: 60%;
  background: linear-gradient(90deg, #3a2018 0%, #2a1410 50%, #3a2018 100%);
  border-radius: 5% 5% 0 0;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.7);
}
.scn-padlocked-niche-mockery .niche-opening {
  position: absolute; left: 30%; top: 15%; bottom: 35%; width: 40%;
  background: #0a0504;
  border-radius: 10% 10% 20% 20%;
  box-shadow: inset 0 0 20px rgba(0,0,0,0.9);
}
.scn-padlocked-niche-mockery .figure-silhouette {
  position: absolute; left: 42%; bottom: 38%; width: 24px; height: 50px;
  background: linear-gradient(180deg, #0d0504 0%, #050202 100%);
  border-radius: 40% 40% 20% 20% / 60% 60% 30% 30%;
  animation: pn-figure 6s ease-in-out infinite;
}
.scn-padlocked-niche-mockery .chain {
  position: absolute; left: 38%; bottom: 60%; width: 30px; height: 6px;
  background: #5a4a3a;
  border-radius: 3px;
  box-shadow: 0 0 4px #3a2a1a;
  animation: pn-chain 4s ease-in-out infinite alternate;
}
.scn-padlocked-niche-mockery .trowel-hand {
  position: absolute; left: 25%; bottom: 30%; width: 18px; height: 26px;
  background: linear-gradient(180deg, #1a0a08 0%, #0a0504 100%);
  border-radius: 40% 40% 50% 50% / 50% 50% 40% 40%;
  transform: rotate(10deg);
  transform-origin: bottom left;
  animation: pn-hand 5s ease-in-out infinite;
}
.scn-padlocked-niche-mockery .mortar-line {
  position: absolute; left: 28%; bottom: 42%; width: 44%; height: 2px;
  background: #5a3a2a;
  border-radius: 1px;
  box-shadow: 0 0 4px #3a2a1a;
  animation: pn-mortar 8s ease-in-out infinite;
}
@keyframes pn-figure { 0%,100% { transform: scale(1) translateY(0); } 50% { transform: scale(1.02) translateY(-2px); } }
@keyframes pn-chain { 0% { transform: translateX(0) rotate(0); } 50% { transform: translateX(3px) rotate(5deg); } 100% { transform: translateX(0) rotate(-5deg); } }
@keyframes pn-hand { 0%,100% { transform: rotate(10deg) translateY(0); } 50% { transform: rotate(15deg) translateY(-2px); } }
@keyframes pn-mortar { 0%,100% { opacity: 0.7; } 50% { opacity: 1; } }

.scn-masonry-screams-midnight {
  background:
    radial-gradient(ellipse 80% 50% at 50% 70%, #2a1410 0%, transparent 80%),
    linear-gradient(180deg, #0a0504 0%, #1a0a08 40%, #2a1410 100%);
}
.scn-masonry-screams-midnight .masonry-bg {
  position: absolute; inset: 10% 15% 10% 10%;
  background: linear-gradient(180deg, #1a0a08 0%, #2a1410 100%);
  border-radius: 5% 5% 0 0;
  box-shadow: inset 0 0 40px rgba(0,0,0,0.8);
}
.scn-masonry-screams-midnight .masonry-tier {
  position: absolute; left: 15%; right: 10%; height: 12%;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1410 100%);
  border-radius: 2px;
  box-shadow: 0 2px 4px rgba(0,0,0,0.6);
}
.scn-masonry-screams-midnight .tier-1 { bottom: 55%; animation: ms-tier1 10s ease-in-out infinite; }
.scn-masonry-screams-midnight .tier-2 { bottom: 42%; animation: ms-tier2 12s ease-in-out infinite alternate; }
.scn-masonry-screams-midnight .tier-3 { bottom: 29%; animation: ms-tier3 8s ease-in-out infinite; }
.scn-masonry-screams-midnight .figure-chain {
  position: absolute; left: 42%; bottom: 38%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #0d0504 0%, #050202 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 20% 20%;
  animation: ms-figure 6s ease-in-out infinite;
}
.scn-masonry-screams-midnight .rapier {
  position: absolute; left: 35%; bottom: 25%; width: 4px; height: 30px;
  background: linear-gradient(180deg, #6a5a4a 0%, #4a3a2a 100%);
  border-radius: 1px 1px 2px 2px;
  transform: rotate(15deg);
  transform-origin: bottom;
  animation: ms-rapier 4s ease-in-out infinite alternate;
}
@keyframes ms-tier1 { 0%,100% { transform: scaleY(1) translateX(0); } 50% { transform: scaleY(0.98) translateX(2px); } }
@keyframes ms-tier2 { 0% { transform: scaleY(1) translateX(0); } 50% { transform: scaleY(1.02) translateX(-2px); } 100% { transform: scaleY(0.99) translateX(1px); } }
@keyframes ms-tier3 { 0%,100% { transform: scaleY(1) translateX(0); } 50% { transform: scaleY(1.01) translateX(-1px); } }
@keyframes ms-figure { 0%,100% { transform: scale(1) translateY(0); } 50% { transform: scale(1.03) translateY(-1px); } }
@keyframes ms-rapier { 0% { transform: rotate(15deg) scaleY(1); } 50% { transform: rotate(20deg) scaleY(1.02); } 100% { transform: rotate(10deg) scaleY(0.98); } }

.scn-montresor-arms-motto {
  background: linear-gradient(180deg, #1a1210 0%, #2d1f1a 40%, #3a2a1e 100%),
              radial-gradient(ellipse at 50% 80%, #c06030 0%, transparent 60%);
  position: relative;
  overflow: hidden;
}
.scn-montresor-arms-motto .vault-bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #2a1e18 0%, #1e1410 50%, #2a1e18 100%);
  opacity: 0.7;
}
.scn-montresor-arms-motto .blue-field {
  position: absolute; left: 30%; top: 25%; width: 40%; height: 50%;
  background: radial-gradient(ellipse, #1a3a5a 0%, #0d1f33 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: inset 0 0 30px rgba(0,0,0,0.5), 0 0 20px rgba(200,100,30,0.3);
  transform: rotate(-5deg);
}
.scn-montresor-arms-motto .foot-gold {
  position: absolute; left: 38%; top: 30%; width: 24%; height: 35%;
  background: linear-gradient(180deg, #f0c060 0%, #c89030 40%, #a06820 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 30% 30%;
  box-shadow: 0 0 20px rgba(240,192,96,0.4);
  transform-origin: bottom center;
  animation: ar-foot 5s ease-in-out infinite alternate;
}
.scn-montresor-arms-motto .serpent {
  position: absolute; left: 42%; bottom: 28%; width: 16%; height: 20%;
  background: linear-gradient(135deg, #2b5a2b 0%, #1a3a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 30% 30%;
  transform: rotate(15deg);
  animation: ar-serpent 4s ease-in-out infinite alternate;
}
.scn-montresor-arms-motto .torch-flame {
  position: absolute; left: 10%; top: 10%; width: 12px; height: 30px;
  background: radial-gradient(circle at 50% 100%, #ffa040 0%, #ff6020 60%, transparent 100%);
  border-radius: 50% 50% 30% 30%;
  filter: blur(2px);
  animation: ar-torch 2s ease-in-out infinite alternate;
}
.scn-montresor-arms-motto .torch-glow {
  position: absolute; left: 8%; top: 8%; width: 60px; height: 60px;
  background: radial-gradient(circle, rgba(255,160,64,0.3) 0%, transparent 70%);
  animation: ar-glow 3s ease-in-out infinite alternate;
}
.scn-montresor-arms-motto .wall-texture {
  position: absolute; inset: 0;
  background: repeating-linear-gradient(45deg, transparent 0%, transparent 2px, rgba(0,0,0,0.05) 2px, rgba(0,0,0,0.05) 4px);
  opacity: 0.3;
}
@keyframes ar-foot {
  0% { transform: rotate(-3deg) scale(1); }
  50% { transform: rotate(2deg) scale(1.02); }
  100% { transform: rotate(-3deg) scale(1); }
}
@keyframes ar-serpent {
  0% { transform: rotate(10deg) scaleY(1); }
  50% { transform: rotate(20deg) scaleY(0.95); }
  100% { transform: rotate(10deg) scaleY(1); }
}
@keyframes ar-torch {
  0% { transform: scaleY(1); opacity: 0.9; }
  50% { transform: scaleY(1.1); opacity: 1; }
  100% { transform: scaleY(0.9); opacity: 0.8; }
}
@keyframes ar-glow {
  0% { transform: scale(1); opacity: 0.6; }
  50% { transform: scale(1.2); opacity: 0.9; }
  100% { transform: scale(1); opacity: 0.6; }
}

.scn-bones-riverbed-warning {
  background: linear-gradient(180deg, #1a1410 0%, #2d1f18 40%, #3a2a1c 100%),
              radial-gradient(ellipse at 50% 80%, #603018 0%, transparent 60%);
  position: relative;
  overflow: hidden;
}
.scn-bones-riverbed-warning .cave-bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #2a1e18 0%, #1a100c 50%, #2a1e18 100%);
  opacity: 0.7;
}
.scn-bones-riverbed-warning .pile-bones {
  position: absolute; left: 10%; bottom: 20%; width: 30%; height: 40%;
  background: repeating-linear-gradient(0deg, #b09880 0px, #b09880 4px, #7a5a40 4px, #7a5a40 8px);
  border-radius: 20% 20% 10% 10% / 30% 30% 20% 20%;
  box-shadow: inset 0 -10px 20px rgba(0,0,0,0.4);
  animation: bo-bones 12s ease-in-out infinite alternate;
}
.scn-bones-riverbed-warning .cask-left {
  position: absolute; left: 45%; bottom: 15%; width: 20%; height: 30%;
  background: linear-gradient(180deg, #5a4028 0%, #3a2818 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 5px 10px rgba(0,0,0,0.5);
  transform: rotate(-5deg);
}
.scn-bones-riverbed-warning .cask-right {
  position: absolute; left: 70%; bottom: 10%; width: 18%; height: 35%;
  background: linear-gradient(180deg, #4a3820 0%, #2a1a10 100%);
  border-radius: 10% 10% 5% 5%;
  box-shadow: 0 5px 10px rgba(0,0,0,0.5);
  transform: rotate(3deg);
  animation: bo-cask 8s ease-in-out infinite alternate;
}
.scn-bones-riverbed-warning .nitre-moss {
  position: absolute; left: 20%; top: 10%; width: 60%; height: 70%;
  background: radial-gradient(ellipse at 30% 40%, rgba(200,220,180,0.15) 0%, transparent 60%),
              radial-gradient(ellipse at 70% 60%, rgba(180,200,160,0.1) 0%, transparent 50%);
  filter: blur(8px);
  animation: bo-nit 25s linear infinite;
}
.scn-bones-riverbed-warning .torch-light {
  position: absolute; left: 5%; top: 5%; width: 80px; height: 80px;
  background: radial-gradient(circle, rgba(255,160,64,0.25) 0%, transparent 70%);
  animation: bo-glow 3s ease-in-out infinite alternate;
}
.scn-bones-riverbed-warning .shadow-figure {
  position: absolute; left: 55%; bottom: 25%; width: 12%; height: 30%;
  background: linear-gradient(180deg, #1a1410 0%, #0a0806 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: bo-shadow 5s ease-in-out infinite alternate;
}
@keyframes bo-bones {
  0% { transform: translateY(0) scale(1); }
  50% { transform: translateY(-4px) scale(1.02); }
  100% { transform: translateY(0) scale(1); }
}
@keyframes bo-cask {
  0% { transform: rotate(3deg) scale(1); }
  50% { transform: rotate(-2deg) scale(0.98); }
  100% { transform: rotate(3deg) scale(1); }
}
@keyframes bo-nit {
  0% { background-position: 0% 0%; }
  100% { background-position: 100% 100%; }
}
@keyframes bo-glow {
  0% { transform: scale(1); opacity: 0.5; }
  50% { transform: scale(1.3); opacity: 0.8; }
  100% { transform: scale(1); opacity: 0.5; }
}
@keyframes bo-shadow {
  0% { transform: translateX(0) rotate(-2deg); }
  50% { transform: translateX(5px) rotate(2deg); }
  100% { transform: translateX(0) rotate(-2deg); }
}

.scn-de-grave-gesture {
  background: linear-gradient(180deg, #1a1610 0%, #2d2018 40%, #3a2a1c 100%),
              radial-gradient(ellipse at 50% 70%, #c06030 0%, transparent 50%);
  position: relative;
  overflow: hidden;
}
.scn-de-grave-gesture .cellar-bg {
  position: absolute; inset: 0;
  background: linear-gradient(135deg, #2a1e18, #1e140e 50%, #2a1e18);
  opacity: 0.6;
}
.scn-de-grave-gesture .flagon {
  position: absolute; left: 20%; bottom: 18%; width: 8%; height: 14%;
  background: linear-gradient(180deg, #4a3820 0%, #2a180a 100%);
  border-radius: 20% 20% 15% 15% / 30% 30% 20% 20%;
  box-shadow: 0 5px 10px rgba(0,0,0,0.4);
  transform: rotate(-10deg);
}
.scn-de-grave-gesture .fortunato-figure {
  position: absolute; left: 45%; bottom: 20%; width: 14%; height: 35%;
  background: linear-gradient(180deg, #1a1410 0%, #0a0806 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: gr-fig 6s ease-in-out infinite alternate;
}
.scn-de-grave-gesture .bottle-arc {
  position: absolute; left: 55%; top: 30%; width: 6%; height: 12%;
  background: radial-gradient(ellipse, #a08050 0%, #604020 100%);
  border-radius: 30% 30% 20% 20%;
  transform: rotate(45deg);
  animation: gr-bottle 4s ease-in-out infinite alternate;
}
.scn-de-grave-gesture .bottle-glimmer {
  position: absolute; left: 56%; top: 28%; width: 4%; height: 8%;
  background: radial-gradient(circle, rgba(255,200,100,0.6) 0%, transparent 100%);
  animation: gr-glimmer 2s ease-in-out infinite alternate;
}
.scn-de-grave-gesture .torch-flare {
  position: absolute; left: 8%; top: 8%; width: 70px; height: 70px;
  background: radial-gradient(circle, rgba(255,160,64,0.3) 0%, transparent 70%);
  animation: gr-flare 3s ease-in-out infinite alternate;
}
.scn-de-grave-gesture .wall-drip {
  position: absolute; left: 15%; top: 0%; width: 2%; height: 100%;
  background: linear-gradient(0deg, transparent 70%, rgba(100,60,30,0.3) 70%, rgba(100,60,30,0.3) 75%, transparent 75%);
  background-size: 100% 12px;
  animation: gr-drip 8s linear infinite;
}
@keyframes gr-fig {
  0% { transform: translateX(0) rotate(-1deg); }
  50% { transform: translateX(8px) rotate(3deg); }
  100% { transform: translateX(0) rotate(-1deg); }
}
@keyframes gr-bottle {
  0% { transform: rotate(30deg) scale(1); }
  50% { transform: rotate(60deg) scale(1.1); }
  100% { transform: rotate(30deg) scale(1); }
}
@keyframes gr-glimmer {
  0% { opacity: 0.3; }
  50% { opacity: 1; }
  100% { opacity: 0.3; }
}
@keyframes gr-flare {
  0% { transform: scale(1); opacity: 0.5; }
  50% { transform: scale(1.2); opacity: 0.8; }
  100% { transform: scale(1); opacity: 0.5; }
}
@keyframes gr-drip {
  0% { background-position: 0% 0%; }
  100% { background-position: 0% 100%; }
}

.scn-mason-brotherhood-confusion {
  background: linear-gradient(180deg, #1a1410 0%, #2d1f18 40%, #3a2a1c 100%),
              radial-gradient(ellipse at 50% 60%, #b05020 0%, transparent 50%);
  position: relative;
  overflow: hidden;
}
.scn-mason-brotherhood-confusion .alcove-bg {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 30% 50%, #2a1e18, #1a100c 80%);
  opacity: 0.8;
}
.scn-mason-brotherhood-confusion .fortunato-silhouette {
  position: absolute; left: 20%; bottom: 18%; width: 16%; height: 35%;
  background: linear-gradient(180deg, #1a1410 0%, #0a0806 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ma-fort 5s ease-in-out infinite alternate;
}
.scn-mason-brotherhood-confusion .montressor-silhouette {
  position: absolute; left: 55%; bottom: 20%; width: 14%; height: 33%;
  background: linear-gradient(180deg, #1a1410 0%, #0a0806 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ma-mont 5s ease-in-out infinite alternate;
}
.scn-mason-brotherhood-confusion .trowel {
  position: absolute; left: 60%; bottom: 38%; width: 4%; height: 6%;
  background: linear-gradient(135deg, #8a7020 0%, #5a4010 100%);
  border-radius: 20% 20% 30% 30% / 10% 10% 40% 40%;
  transform: rotate(30deg);
  box-shadow: 0 0 10px rgba(200,160,60,0.3);
  animation: ma-trowel 3s ease-in-out infinite alternate;
}
.scn-mason-brotherhood-confusion .trowel-glow {
  position: absolute; left: 59%; bottom: 36%; width: 10%; height: 10%;
  background: radial-gradient(circle, rgba(200,160,60,0.2) 0%, transparent 100%);
  animation: ma-tglow 3s ease-in-out infinite alternate;
}
.scn-mason-brotherhood-confusion .torch-flame {
  position: absolute; left: 5%; top: 10%; width: 10px; height: 25px;
  background: radial-gradient(circle at 50% 100%, #ffa040 0%, #ff6020 60%, transparent 100%);
  border-radius: 50% 50% 30% 30%;
  filter: blur(1px);
  animation: ma-torch 2s ease-in-out infinite alternate;
}
.scn-mason-brotherhood-confusion .mason-shadow {
  position: absolute; left: 40%; bottom: 10%; width: 20%; height: 10%;
  background: radial-gradient(ellipse, rgba(0,0,0,0.4) 0%, transparent 70%);
  filter: blur(6px);
  animation: ma-shadow 6s ease-in-out infinite alternate;
}
@keyframes ma-fort {
  0% { transform: translateX(0) rotate(1deg); }
  50% { transform: translateX(-5px) rotate(-2deg); }
  100% { transform: translateX(0) rotate(1deg); }
}
@keyframes ma-mont {
  0% { transform: translateX(0) rotate(-1deg); }
  50% { transform: translateX(4px) rotate(2deg); }
  100% { transform: translateX(0) rotate(-1deg); }
}
@keyframes ma-trowel {
  0% { transform: rotate(20deg) scale(1); }
  50% { transform: rotate(40deg) scale(1.1); }
  100% { transform: rotate(20deg) scale(1); }
}
@keyframes ma-tglow {
  0% { opacity: 0.4; }
  50% { opacity: 0.8; }
  100% { opacity: 0.4; }
}
@keyframes ma-torch {
  0% { transform: scaleY(1); opacity: 0.9; }
  50% { transform: scaleY(1.1); opacity: 1; }
  100% { transform: scaleY(0.9); opacity: 0.8; }
}
@keyframes ma-shadow {
  0% { transform: scaleX(1); opacity: 0.5; }
  50% { transform: scaleX(1.2); opacity: 0.8; }
  100% { transform: scaleX(1); opacity: 0.5; }
}

.scn-dampness-medoc-defense {
  background: 
    linear-gradient(180deg, #2b1a0e 0%, #1a0f06 30%, #0d0804 100%),
    radial-gradient(ellipse at 30% 60%, #6a3a1a 0%, transparent 60%),
    radial-gradient(ellipse at 70% 40%, #8a4a2a 0%, transparent 50%);
}
.scn-dampness-medoc-defense .wall-bg {
  position: absolute; inset: 0;
  background: repeating-linear-gradient(90deg, transparent 0px, #2a1a0a 2px, transparent 4px);
  opacity: 0.3;
  animation: dam-wall 12s ease-in-out infinite alternate;
}
.scn-dampness-medoc-defense .torch-left {
  position: absolute; bottom: 30%; left: 8%; width: 6px; height: 40px;
  background: linear-gradient(180deg, #c06020 0%, #8a3010 100%);
  border-radius: 2px 2px 0 0;
  box-shadow: 0 0 20px 10px #f08030, 0 0 40px 20px rgba(200,80,20,0.4);
  animation: dam-torch 2s ease-in-out infinite alternate;
}
.scn-dampness-medoc-defense .torch-right {
  position: absolute; bottom: 35%; right: 10%; width: 6px; height: 35px;
  background: linear-gradient(180deg, #d07030 0%, #9a4010 100%);
  border-radius: 2px 2px 0 0;
  box-shadow: 0 0 20px 10px #f09040, 0 0 40px 20px rgba(230,100,30,0.4);
  animation: dam-torch 2.5s ease-in-out infinite alternate-reverse;
}
.scn-dampness-medoc-defense .figure-left {
  position: absolute; bottom: 20%; left: 20%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #1a0e06 0%, #0d0500 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: dam-fig-left 4s ease-in-out infinite;
}
.scn-dampness-medoc-defense .figure-right {
  position: absolute; bottom: 18%; right: 22%; width: 22px; height: 55px;
  background: linear-gradient(180deg, #1a0e06 0%, #0d0500 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 45% 45%;
  transform-origin: bottom center;
  animation: dam-fig-right 4.5s ease-in-out infinite;
}
.scn-dampness-medoc-defense .bottle {
  position: absolute; bottom: 40%; left: 48%; width: 8px; height: 18px;
  background: linear-gradient(180deg, #6a4020 0%, #3a2010 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 2px 4px rgba(0,0,0,0.6);
  transform: rotate(-15deg);
  animation: dam-bottle 3s ease-in-out infinite alternate;
}
.scn-dampness-medoc-defense .drip {
  position: absolute; width: 3px; height: 8px;
  background: radial-gradient(circle, #c08040 0%, transparent 100%);
  border-radius: 50%;
  filter: blur(1px);
  animation: dam-drip 5s linear infinite;
}
.scn-dampness-medoc-defense .drip-a { top: 10%; left: 30%; animation-delay: 0s; }
.scn-dampness-medoc-defense .drip-b { top: 20%; left: 70%; animation-delay: 2.5s; }

@keyframes dam-wall { 0% { opacity: 0.2; } 50% { opacity: 0.35; } 100% { opacity: 0.2; } }
@keyframes dam-torch { 0% { box-shadow: 0 0 20px 8px #f08030, 0 0 40px 16px rgba(200,80,20,0.4); } 50% { box-shadow: 0 0 25px 12px #ff9040, 0 0 50px 24px rgba(230,100,30,0.6); } 100% { box-shadow: 0 0 18px 6px #e07020, 0 0 36px 12px rgba(200,80,20,0.3); } }
@keyframes dam-fig-left { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(-0.5deg); } }
@keyframes dam-fig-right { 0% { transform: translateY(0) rotate(1deg); } 50% { transform: translateY(-2px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0.5deg); } }
@keyframes dam-bottle { 0% { transform: rotate(-20deg) translateY(0); } 50% { transform: rotate(-10deg) translateY(-4px); } 100% { transform: rotate(-15deg) translateY(0); } }
@keyframes dam-drip { 0% { transform: translateY(0) scale(1); opacity: 0.8; } 50% { transform: translateY(20vh) scale(1.2); opacity: 0.4; } 100% { transform: translateY(40vh) scale(0.8); opacity: 0; } }

.scn-item-golden-foot-arms {
  background: 
    linear-gradient(180deg, #2b1a0e 0%, #1a0f06 30%, #0d0804 100%),
    radial-gradient(ellipse at 50% 50%, #5a2a1a 0%, transparent 70%);
}
.scn-item-golden-foot-arms .wall-bg { /* same as previous but with different animation? reuse or own keyframes */
  position: absolute; inset: 0;
  background: repeating-linear-gradient(90deg, transparent 0px, #2a1a0a 2px, transparent 4px);
  opacity: 0.3;
  animation: gol-wall 15s ease-in-out infinite alternate;
}
.scn-item-golden-foot-arms .torch-left {
  position: absolute; bottom: 30%; left: 5%; width: 6px; height: 40px;
  background: linear-gradient(180deg, #c06020 0%, #8a3010 100%);
  border-radius: 2px 2px 0 0;
  box-shadow: 0 0 20px 10px #f08030, 0 0 40px 20px rgba(200,80,20,0.4);
  animation: gol-torch 2.2s ease-in-out infinite alternate;
}
.scn-item-golden-foot-arms .torch-right {
  position: absolute; bottom: 35%; right: 5%; width: 6px; height: 35px;
  background: linear-gradient(180deg, #d07030 0%, #9a4010 100%);
  border-radius: 2px 2px 0 0;
  box-shadow: 0 0 20px 10px #f09040, 0 0 40px 20px rgba(230,100,30,0.4);
  animation: gol-torch 2.8s ease-in-out infinite alternate-reverse;
}
.scn-item-golden-foot-arms .figure-left {
  position: absolute; bottom: 20%; left: 15%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #1a0e06 0%, #0d0500 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: gol-fig-left 5s ease-in-out infinite;
}
.scn-item-golden-foot-arms .figure-right {
  position: absolute; bottom: 18%; right: 15%; width: 22px; height: 55px;
  background: linear-gradient(180deg, #1a0e06 0%, #0d0500 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 45% 45%;
  transform-origin: bottom center;
  animation: gol-fig-right 5.5s ease-in-out infinite;
}
.scn-item-golden-foot-arms .golden-foot {
  position: absolute; bottom: 40%; left: 50%; width: 30px; height: 40px;
  background: linear-gradient(135deg, #d0a050 0%, #a07030 50%, #805020 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%;
  transform: translateX(-50%) rotate(10deg);
  box-shadow: 0 0 15px 5px rgba(180,120,40,0.5), 0 0 30px 10px rgba(180,120,40,0.3);
  animation: gol-foot 6s ease-in-out infinite alternate;
}
.scn-item-golden-foot-arms .shield-bg {
  position: absolute; bottom: 38%; left: 50%; width: 40px; height: 50px;
  background: linear-gradient(135deg, #2a1a4a 0%, #1a0a2a 100%);
  border-radius: 30% 30% 20% 20%;
  transform: translateX(-50%);
  opacity: 0.6;
  animation: gol-shield 7s ease-in-out infinite alternate;
}

@keyframes gol-wall { 0% { opacity: 0.2; } 50% { opacity: 0.4; } 100% { opacity: 0.2; } }
@keyframes gol-torch { 0% { box-shadow: 0 0 20px 8px #f08030, 0 0 40px 16px rgba(200,80,20,0.4); } 50% { box-shadow: 0 0 28px 14px #ff9040, 0 0 55px 28px rgba(230,100,30,0.6); } 100% { box-shadow: 0 0 18px 6px #e07020, 0 0 36px 12px rgba(200,80,20,0.3); } }
@keyframes gol-fig-left { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-3px) rotate(1.5deg); } 100% { transform: translateY(0) rotate(-0.5deg); } }
@keyframes gol-fig-right { 0% { transform: translateY(0) rotate(1deg); } 50% { transform: translateY(-2px) rotate(-1.5deg); } 100% { transform: translateY(0) rotate(0.5deg); } }
@keyframes gol-foot { 0% { transform: translateX(-50%) rotate(5deg) scale(1); } 50% { transform: translateX(-50%) rotate(15deg) scale(1.05); } 100% { transform: translateX(-50%) rotate(10deg) scale(0.98); } }
@keyframes gol-shield { 0% { opacity: 0.4; transform: translateX(-50%) scale(1); } 50% { opacity: 0.7; transform: translateX(-50%) scale(1.02); } 100% { opacity: 0.5; transform: translateX(-50%) scale(0.98); } }

.scn-mossing-nitre-warning {
  background: 
    linear-gradient(180deg, #2a1a0e 0%, #1a0f06 30%, #0d0804 100%),
    radial-gradient(ellipse at 50% 50%, #4a2a1a 0%, transparent 70%);
}
.scn-mossing-nitre-warning .wall-bg {
  position: absolute; inset: 0;
  background: repeating-linear-gradient(90deg, transparent 0px, #2a1a0a 2px, transparent 4px), repeating-linear-gradient(0deg, transparent 0px, #3a2a1a 1px, transparent 3px);
  opacity: 0.25;
  animation: mos-wall 14s ease-in-out infinite alternate;
}
.scn-mossing-nitre-warning .torch-left {
  position: absolute; bottom: 25%; left: 6%; width: 6px; height: 40px;
  background: linear-gradient(180deg, #c06020 0%, #8a3010 100%);
  border-radius: 2px 2px 0 0;
  box-shadow: 0 0 20px 10px #f08030, 0 0 40px 20px rgba(200,80,20,0.4);
  animation: mos-torch 2.5s ease-in-out infinite alternate;
}
.scn-mossing-nitre-warning .torch-right {
  position: absolute; bottom: 30%; right: 6%; width: 6px; height: 35px;
  background: linear-gradient(180deg, #d07030 0%, #9a4010 100%);
  border-radius: 2px 2px 0 0;
  box-shadow: 0 0 20px 10px #f09040, 0 0 40px 20px rgba(230,100,30,0.4);
  animation: mos-torch 3s ease-in-out infinite alternate-reverse;
}
.scn-mossing-nitre-warning .figure-left {
  position: absolute; bottom: 20%; left: 18%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #1a0e06 0%, #0d0500 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: mos-fig-left 4.2s ease-in-out infinite;
}
.scn-mossing-nitre-warning .figure-right {
  position: absolute; bottom: 18%; right: 20%; width: 22px; height: 55px;
  background: linear-gradient(180deg, #1a0e06 0%, #0d0500 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 45% 45%;
  transform-origin: bottom center;
  animation: mos-fig-right 4.8s ease-in-out infinite;
}
.scn-mossing-nitre-warning .nitre-spark {
  position: absolute; top: 40%; left: 50%; width: 4px; height: 4px;
  background: #d08040;
  border-radius: 50%;
  box-shadow: 0 0 10px 3px #e09050, 0 0 20px 6px rgba(200,100,30,0.5);
  animation: mos-spark 1.5s ease-in-out infinite alternate;
}
.scn-mossing-nitre-warning .cask {
  position: absolute; bottom: 10%; width: 30px; height: 20px;
  background: linear-gradient(180deg, #4a3020 0%, #2a1a10 100%);
  border-radius: 20% 20% 10% 10%;
  box-shadow: inset 0 -4px 6px rgba(0,0,0,0.5);
}
.scn-mossing-nitre-warning .cask-left { left: 10%; animation: mos-cask 10s ease-in-out infinite alternate; }
.scn-mossing-nitre-warning .cask-right { right: 10%; animation: mos-cask 12s ease-in-out infinite alternate; }

@keyframes mos-wall { 0% { opacity: 0.15; background-position: 0 0; } 50% { opacity: 0.3; background-position: 5px 5px; } 100% { opacity: 0.2; background-position: 0 0; } }
@keyframes mos-torch { 0% { box-shadow: 0 0 20px 8px #f08030, 0 0 40px 16px rgba(200,80,20,0.4); } 50% { box-shadow: 0 0 30px 14px #ff9040, 0 0 60px 28px rgba(230,100,30,0.7); } 100% { box-shadow: 0 0 18px 6px #e07020, 0 0 36px 12px rgba(200,80,20,0.3); } }
@keyframes mos-fig-left { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(-0.5deg); } }
@keyframes mos-fig-right { 0% { transform: translateY(0) rotate(1deg); } 50% { transform: translateY(-3px) rotate(-1deg); } 100% { transform: translateY(0) rotate(0.5deg); } }
@keyframes mos-spark { 0% { transform: scale(1) translateY(0); opacity: 0.8; } 50% { transform: scale(1.5) translateY(-5px); opacity: 1; } 100% { transform: scale(1) translateY(0); opacity: 0.6; } }
@keyframes mos-cask { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-2px) rotate(1deg); } 100% { transform: translateY(0) rotate(0); } }

.scn-de-grave-upward-throw {
  background: 
    linear-gradient(180deg, #2b1a0e 0%, #1a0f06 30%, #0d0804 100%),
    radial-gradient(ellipse at 50% 40%, #6a3a1a 0%, transparent 60%);
}
.scn-de-grave-upward-throw .wall-bg {
  position: absolute; inset: 0;
  background: repeating-linear-gradient(90deg, transparent 0px, #2a1a0a 2px, transparent 4px);
  opacity: 0.3;
  animation: deg-wall 12s ease-in-out infinite alternate;
}
.scn-de-grave-upward-throw .torch-left {
  position: absolute; bottom: 30%; left: 5%; width: 6px; height: 40px;
  background: linear-gradient(180deg, #c06020 0%, #8a3010 100%);
  border-radius: 2px 2px 0 0;
  box-shadow: 0 0 20px 10px #f08030, 0 0 40px 20px rgba(200,80,20,0.4);
  animation: deg-torch 2s ease-in-out infinite alternate;
}
.scn-de-grave-upward-throw .torch-right {
  position: absolute; bottom: 35%; right: 5%; width: 6px; height: 35px;
  background: linear-gradient(180deg, #d07030 0%, #9a4010 100%);
  border-radius: 2px 2px 0 0;
  box-shadow: 0 0 20px 10px #f09040, 0 0 40px 20px rgba(230,100,30,0.4);
  animation: deg-torch 2.6s ease-in-out infinite alternate-reverse;
}
.scn-de-grave-upward-throw .figure-left {
  position: absolute; bottom: 20%; left: 18%; width: 20px; height: 50px;
  background: linear-gradient(180deg, #1a0e06 0%, #0d0500 100%);
  border-radius: 40% 40% 30% 30% / 50% 50% 40% 40%;
  transform-origin: bottom center;
  animation: deg-fig-left 4s ease-in-out infinite;
}
.scn-de-grave-upward-throw .figure-right {
  position: absolute; bottom: 18%; right: 20%; width: 22px; height: 55px;
  background: linear-gradient(180deg, #1a0e06 0%, #0d0500 100%);
  border-radius: 45% 45% 35% 35% / 55% 55% 45% 45%;
  transform-origin: bottom center;
  animation: deg-fig-right 4.6s ease-in-out infinite;
}
.scn-de-grave-upward-throw .bottle-flying {
  position: absolute; top: 30%; left: 50%; width: 8px; height: 18px;
  background: linear-gradient(180deg, #6a4020 0%, #3a2010 100%);
  border-radius: 30% 30% 20% 20%;
  transform: rotate(45deg);
  box-shadow: 0 2px 6px rgba(0,0,0,0.6);
  animation: deg-bottle 2.5s ease-in-out infinite;
}
.scn-de-grave-upward-throw .sparkle {
  position: absolute; width: 4px; height: 4px;
  background: #e0a060;
  border-radius: 50%;
  box-shadow: 0 0 8px 2px rgba(200,100,30,0.6);
  animation: deg-sparkle 1s ease-in-out infinite alternate;
}
.scn-de-grave-upward-throw .sparkle-a { top: 25%; left: 45%; animation-delay: 0s; }
.scn-de-grave-upward-throw .sparkle-b { top: 35%; left: 55%; animation-delay: 0.5s; }

@keyframes deg-wall { 0% { opacity: 0.2; } 50% { opacity: 0.35; } 100% { opacity: 0.2; } }
@keyframes deg-torch { 0% { box-shadow: 0 0 20px 8px #f08030, 0 0 40px 16px rgba(200,80,20,0.4); } 50% { box-shadow: 0 0 28px 14px #ff9040, 0 0 55px 28px rgba(230,100,30,0.6); } 100% { box-shadow: 0 0 18px 6px #e07020, 0 0 36px 12px rgba(200,80,20,0.3); } }
@keyframes deg-fig-left { 0% { transform: translateY(0) rotate(-1deg); } 50% { transform: translateY(-2px) rotate(1.5deg); } 100% { transform: translateY(0) rotate(-0.5deg); } }
@keyframes deg-fig-right { 0% { transform: translateY(0) rotate(1deg); } 50% { transform: translateY(-3px) rotate(-1.5deg); } 100% { transform: translateY(0) rotate(0.5deg); } }
@keyframes deg-bottle { 0% { transform: rotate(30deg) translateY(0) scale(1); } 25% { transform: rotate(60deg) translateY(-30px) scale(1.1); } 50% { transform: rotate(90deg) translateY(-60px) scale(1.2); } 75% { transform: rotate(120deg) translateY(-30px) scale(1.1); } 100% { transform: rotate(150deg) translateY(0) scale(1); } }
@keyframes deg-sparkle { 0% { transform: scale(1); opacity: 0.6; } 50% { transform: scale(1.8); opacity: 1; } 100% { transform: scale(1); opacity: 0.4; } }

/* vaults-cold-warning */
.scn-vaults-cold-warning {
  background: linear-gradient(180deg, #2a2a3e 0%, #1a1a2e 40%, #0e0e1a 80%, #08080f 100%),
              radial-gradient(ellipse at 50% 100%, #3a3a5e 0%, transparent 70%);
}
.scn-vaults-cold-warning .vcw-arch {
  position: absolute; top: 0; left: 10%; right: 10%; bottom: 30%;
  background: linear-gradient(180deg, #3a3a4e 0%, #1a1a2e 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  box-shadow: inset 0 0 30px rgba(0,0,0,.6);
}
.scn-vaults-cold-warning .vcw-wall {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%;
  background: linear-gradient(0deg, #0a0a12 0%, #202038 60%, #3a3a52 100%);
  border-radius: 0 0 40% 40% / 0 0 20% 20%;
}
.scn-vaults-cold-warning .vcw-nitre {
  position: absolute; top: 15%; left: 20%; right: 20%; bottom: 25%;
  background: radial-gradient(circle at 30% 40%, rgba(200,210,220,.3) 0%, transparent 70%),
              radial-gradient(circle at 70% 60%, rgba(200,210,220,.2) 0%, transparent 70%);
  filter: blur(4px);
  animation: vcw-nitre 8s ease-in-out infinite alternate;
}
.scn-vaults-cold-warning .vcw-figure {
  position: absolute; bottom: 18%; left: 40%; width: 20px; height: 40px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a12 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: vcw-shiver 2s ease-in-out infinite;
}
.scn-vaults-cold-warning .vcw-torch {
  position: absolute; bottom: 25%; right: 25%; width: 4px; height: 20px;
  background: #4a3a2a;
  border-radius: 2px;
  transform-origin: bottom center;
}
.scn-vaults-cold-warning .vcw-torch::after {
  content: ""; position: absolute; top: -10px; left: -6px; width: 14px; height: 14px;
  background: radial-gradient(circle, #e08030 0%, #c06020 50%, transparent 70%);
  border-radius: 50%;
  animation: vcw-flicker 0.8s ease-in-out infinite alternate;
}
.scn-vaults-cold-warning .vcw-drip {
  position: absolute; bottom: 30%; left: 45%; width: 2px; height: 8px;
  background: linear-gradient(180deg, transparent 0%, rgba(180,200,220,.4) 100%);
  border-radius: 2px;
  animation: vcw-drip 4s linear infinite;
}
@keyframes vcw-nitre {
  0% { opacity: .3; transform: scale(1); }
  50% { opacity: .5; transform: scale(1.05); }
  100% { opacity: .3; transform: scale(1); }
}
@keyframes vcw-shiver {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(4px) rotate(2deg); }
  50% { transform: translateX(-2px) rotate(-2deg); }
  75% { transform: translateX(3px) rotate(1deg); }
  100% { transform: translateX(0) rotate(0deg); }
}
@keyframes vcw-flicker {
  0% { transform: scale(1); opacity: .9; box-shadow: 0 0 8px 4px rgba(200,80,30,.5); }
  50% { transform: scale(1.2); opacity: 1; box-shadow: 0 0 14px 6px rgba(200,80,30,.7); }
  100% { transform: scale(0.9); opacity: .8; box-shadow: 0 0 6px 3px rgba(200,80,30,.4); }
}
@keyframes vcw-drip {
  0% { transform: translateY(-20px); opacity: 0; }
  20% { opacity: .6; }
  100% { transform: translateY(30px); opacity: 0; }
}

/* item-flambeaux-sconces */
.scn-item-flambeaux-sconces {
  background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1a 50%, #08080f 100%),
              radial-gradient(ellipse at 50% 0%, #3a2a1a 0%, transparent 60%);
}
.scn-item-flambeaux-sconces .ifs-wall {
  position: absolute; bottom: 10%; left: 0; right: 0; height: 10%;
  background: linear-gradient(0deg, #1a1a1a 0%, #2a2a2a 100%);
  border-radius: 20% 20% 0 0;
  box-shadow: inset 0 8px 12px rgba(0,0,0,.5);
}
.scn-item-flambeaux-sconces .ifs-sconce-l {
  position: absolute; bottom: 30%; left: 15%; width: 12px; height: 16px;
  background: #3a2a1a;
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
  box-shadow: 0 0 6px rgba(0,0,0,.6);
}
.scn-item-flambeaux-sconces .ifs-sconce-r {
  position: absolute; bottom: 30%; right: 15%; width: 12px; height: 16px;
  background: #3a2a1a;
  border-radius: 40% 40% 20% 20% / 50% 50% 30% 30%;
  box-shadow: 0 0 6px rgba(0,0,0,.6);
}
.scn-item-flambeaux-sconces .ifs-flame-l {
  position: absolute; bottom: 36%; left: calc(15% + 6px); width: 10px; height: 18px;
  background: radial-gradient(ellipse at 50% 80%, #ffa040 0%, #d06010 50%, transparent 100%);
  border-radius: 50% 50% 20% 20%;
  transform-origin: bottom center;
  animation: ifs-flame 0.6s ease-in-out infinite alternate;
}
.scn-item-flambeaux-sconces .ifs-flame-r {
  position: absolute; bottom: 36%; right: calc(15% + 6px); width: 10px; height: 18px;
  background: radial-gradient(ellipse at 50% 80%, #ffa040 0%, #d06010 50%, transparent 100%);
  border-radius: 50% 50% 20% 20%;
  transform-origin: bottom center;
  animation: ifs-flame 0.7s ease-in-out infinite alternate;
  animation-delay: 0.3s;
}
.scn-item-flambeaux-sconces .ifs-figure {
  position: absolute; bottom: 12%; left: 40%; width: 22px; height: 50px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a12 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ifs-walk 4s ease-in-out infinite;
}
.scn-item-flambeaux-sconces .ifs-shadow {
  position: absolute; bottom: 10%; left: 40%; width: 30px; height: 6px;
  background: radial-gradient(ellipse, rgba(0,0,0,.4) 0%, transparent 100%);
  transform: translateX(-5px);
  animation: ifs-shad 4s ease-in-out infinite;
}
@keyframes ifs-flame {
  0% { transform: scaleY(1) scaleX(1); opacity: .9; box-shadow: 0 0 10px 5px rgba(200,80,20,.6); }
  50% { transform: scaleY(1.15) scaleX(0.9); opacity: 1; box-shadow: 0 0 18px 8px rgba(200,80,20,.8); }
  100% { transform: scaleY(0.95) scaleX(1.05); opacity: .95; box-shadow: 0 0 8px 4px rgba(200,80,20,.5); }
}
@keyframes ifs-walk {
  0% { transform: translateX(0) rotate(0deg); }
  25% { transform: translateX(6px) rotate(2deg); }
  50% { transform: translateX(12px) rotate(0deg); }
  75% { transform: translateX(18px) rotate(-2deg); }
  100% { transform: translateX(24px) rotate(0deg); }
}
@keyframes ifs-shad {
  0%,100% { transform: translateX(-5px) scaleX(1); opacity: .4; }
  50% { transform: translateX(5px) scaleX(1.2); opacity: .2; }
}
/* nitre-cough-paroxysm */
.scn-nitre-cough-paroxysm {
  background: linear-gradient(180deg, #2a2a3a 0%, #1a1a2e 30%, #0e0e1a 70%, #08080f 100%),
              radial-gradient(ellipse at 50% 0%, #3a2a1a 0%, transparent 50%);
}
.scn-nitre-cough-paroxysm .ncp-cave {
  position: absolute; inset: 0;
  background: linear-gradient(0deg, #1a1a2a 0%, transparent 30%);
  border-radius: 0 0 60% 60% / 0 0 40% 40%;
}
.scn-nitre-cough-paroxysm .ncp-web {
  position: absolute; top: 10%; left: 5%; right: 5%; bottom: 10%;
  background: radial-gradient(circle at 30% 40%, rgba(200,210,220,.15) 0%, transparent 50%),
              radial-gradient(circle at 70% 60%, rgba(200,210,220,.1) 0%, transparent 50%);
  filter: blur(2px);
  animation: ncp-web 6s ease-in-out infinite alternate;
}
.scn-nitre-cough-paroxysm .ncp-figure {
  position: absolute; bottom: 20%; left: 35%; width: 30px; height: 50px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a12 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: ncp-cough 1.5s ease-in-out infinite;
}
.scn-nitre-cough-paroxysm .ncp-flame {
  position: absolute; bottom: 35%; right: 20%; width: 8px; height: 16px;
  background: radial-gradient(ellipse at 50% 80%, #ffa040 0%, #c06020 50%, transparent 100%);
  border-radius: 50% 50% 20% 20%;
  transform-origin: bottom center;
  animation: ncp-flicker 0.5s ease-in-out infinite alternate;
}
.scn-nitre-cough-paroxysm .ncp-shiver {
  position: absolute; bottom: 22%; left: 50%; width: 4px; height: 10px;
  background: linear-gradient(180deg, transparent 0%, rgba(255,255,255,.1) 100%);
  border-radius: 2px;
  animation: ncp-shiver-line 2s ease-in-out infinite;
}
@keyframes ncp-web {
  0% { opacity: .2; transform: scale(1); }
  50% { opacity: .4; transform: scale(1.02); }
  100% { opacity: .2; transform: scale(1); }
}
@keyframes ncp-cough {
  0% { transform: translateY(0) rotate(0deg) scaleX(1); }
  15% { transform: translateY(-8px) rotate(3deg) scaleX(1.15); }
  30% { transform: translateY(0) rotate(-2deg) scaleX(1); }
  50% { transform: translateY(-4px) rotate(2deg) scaleX(1.1); }
  70% { transform: translateY(0) rotate(-1deg) scaleX(1); }
  100% { transform: translateY(0) rotate(0deg) scaleX(1); }
}
@keyframes ncp-flicker {
  0% { transform: scaleY(1) scaleX(1); opacity: .9; box-shadow: 0 0 10px 5px rgba(200,80,20,.6); }
  50% { transform: scaleY(1.2) scaleX(0.9); opacity: 1; box-shadow: 0 0 16px 8px rgba(200,80,20,.8); }
  100% { transform: scaleY(0.9) scaleX(1.05); opacity: .85; box-shadow: 0 0 8px 4px rgba(200,80,20,.4); }
}
@keyframes ncp-shiver-line {
  0% { opacity: .2; transform: translateY(0) scaleY(1); }
  50% { opacity: .5; transform: translateY(-4px) scaleY(1.5); }
  100% { opacity: .2; transform: translateY(0) scaleY(1); }
}

/* item-medoc-bottle */
.scn-item-medoc-bottle {
  background: linear-gradient(180deg, #1a1a2e 0%, #0e0e1a 50%, #08080f 100%),
              radial-gradient(ellipse at 50% 0%, #3a2010 0%, transparent 70%);
}
.scn-item-medoc-bottle .imb-vault {
  position: absolute; inset: 0;
  background: radial-gradient(ellipse at 50% 100%, #2a2a3a 0%, transparent 60%);
  border-radius: 0 0 40% 40% / 0 0 20% 20%;
}
.scn-item-medoc-bottle .imb-table {
  position: absolute; bottom: 12%; left: 20%; right: 20%; height: 4%;
  background: linear-gradient(0deg, #3a2a1a 0%, #2a1a0a 100%);
  border-radius: 10% 10% 0 0;
  box-shadow: 0 4px 8px rgba(0,0,0,.5);
}
.scn-item-medoc-bottle .imb-bottle {
  position: absolute; bottom: 16%; left: 45%; width: 8px; height: 20px;
  background: linear-gradient(180deg, #6a4a2a 0%, #4a2a1a 100%);
  border-radius: 10% 10% 20% 20%;
  transform-origin: bottom center;
  animation: imb-toast 3s ease-in-out infinite;
}
.scn-item-medoc-bottle .imb-figure-l {
  position: absolute; bottom: 10%; left: 30%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a12 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: imb-nod 4s ease-in-out infinite;
}
.scn-item-medoc-bottle .imb-figure-r {
  position: absolute; bottom: 10%; right: 30%; width: 22px; height: 48px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a12 100%);
  border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%;
  transform-origin: bottom center;
  animation: imb-offer 3.5s ease-in-out infinite;
}
.scn-item-medoc-bottle .imb-hand {
  position: absolute; bottom: 20%; left: 42%; width: 4px; height: 8px;
  background: #0a0a12;
  border-radius: 30% 30% 10% 10% / 40% 40% 20% 20%;
  transform-origin: top center;
  animation: imb-reach 3s ease-in-out infinite;
}
.scn-item-medoc-bottle .imb-flame {
  position: absolute; bottom: 25%; left: 50%; width: 6px; height: 12px;
  background: radial-gradient(ellipse at 50% 80%, #ffa040 0%, #c06020 50%, transparent 100%);
  border-radius: 50% 50% 20% 20%;
  transform: translateX(-3px);
  animation: imb-flicker 0.6s ease-in-out infinite alternate;
}
@keyframes imb-toast {
  0% { transform: rotate(0deg); }
  25% { transform: rotate(10deg); }
  50% { transform: rotate(0deg); }
  75% { transform: rotate(-10deg); }
  100% { transform: rotate(0deg); }
}
@keyframes imb-nod {
  0%,100% { transform: translateY(0) rotate(0deg); }
  30% { transform: translateY(-2px) rotate(2deg); }
  60% { transform: translateY(0) rotate(-1deg); }
}
@keyframes imb-offer {
  0% { transform: translateY(0) rotate(0deg); }
  20% { transform: translateY(-4px) rotate(5deg); }
  40% { transform: translateY(0) rotate(0deg); }
  60% { transform: translateY(-2px) rotate(3deg); }
  100% { transform: translateY(0) rotate(0deg); }
}
@keyframes imb-reach {
  0% { transform: rotate(0deg) scaleY(1); }
  20% { transform: rotate(15deg) scaleY(1.2); }
  40% { transform: rotate(0deg) scaleY(1); }
  60% { transform: rotate(10deg) scaleY(1.1); }
  100% { transform: rotate(0deg) scaleY(1); }
}
@keyframes imb-flicker {
  0% { transform: scaleY(1) scaleX(1); opacity: .9; box-shadow: 0 0 8px 4px rgba(200,80,20,.6); }
  50% { transform: scaleY(1.15) scaleX(0.9); opacity: 1; box-shadow: 0 0 14px 6px rgba(200,80,20,.8); }
  100% { transform: scaleY(0.95) scaleX(1.05); opacity: .85; box-shadow: 0 0 6px 3px rgba(200,80,20,.4); }
}

/* Scene 1: renewed-luchresi-goad (dusk, tense) */
.scn-renewed-luchresi-goad {
  background: 
    linear-gradient(180deg, #2b224a 0%, #6a4e6e 30%, #c8856a 60%, #a65a4a 80%, #3a2a3e 100%),
    radial-gradient(ellipse at 40% 30%, #e8a878 0%, transparent 60%);
  animation: rl-sky-pulse 8s ease-in-out infinite alternate;
}
.scn-renewed-luchresi-goad .sky-dusk {
  position: absolute; inset: 0 0 55% 0;
  background: linear-gradient(180deg, #2a1a3a 0%, #8a5a5a 40%, #c87a5a 70%, #b05a3a 100%);
  animation: rl-dusk-fade 12s ease-in-out infinite alternate;
}
.scn-renewed-luchresi-goad .carnival-arch {
  position: absolute; bottom: 40%; left: 10%; width: 45%; height: 35%;
  background: linear-gradient(135deg, #4a3a2a 0%, #7a5a3a 50%, #4a3a2a 100%);
  border-radius: 40% 40% 0 0 / 80% 80% 0 0;
  box-shadow: inset -10px 0 20px rgba(0,0,0,0.5);
  transform: perspective(600px) rotateX(8deg);
}
.scn-renewed-luchresi-goad .figure-left {
  position: absolute; bottom: 30%; left: 28%; width: 20px; height: 60px;
  background: linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform-origin: bottom center;
  animation: rl-figure-walk-left 6s ease-in-out infinite;
}
.scn-renewed-luchresi-goad .figure-right {
  position: absolute; bottom: 30%; right: 18%; width: 22px; height: 64px;
  background: linear-gradient(180deg, #2a1a2a 0%, #0a0a1a 100%);
  border-radius: 45% 45% 35% 35% / 65% 65% 35% 35%;
  transform-origin: bottom center;
  animation: rl-figure-walk-right 6s ease-in-out infinite;
}
.scn-renewed-luchresi-goad .torch {
  position: absolute; bottom: 35%; left: 50%; width: 8px; height: 40px;
  background: linear-gradient(180deg, transparent 0%, #6a4a2a 70%, #3a2a1a 100%);
  border-radius: 2px;
}
.scn-renewed-luchresi-goad .flame {
  position: absolute; bottom: 68%; left: 49.5%; width: 14px; height: 20px;
  background: radial-gradient(ellipse at 50% 100%, #f0b060 0%, #c84830 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(240,176,96,0.4), 0 0 60px 20px rgba(192,72,48,0.2);
  animation: rl-torch-flicker 0.5s ease-in-out infinite alternate;
}
.scn-renewed-luchresi-goad .carnival-lights {
  position: absolute; width: 10px; height: 10px;
  background: radial-gradient(circle, #f0d080 0%, transparent 70%);
  box-shadow: 0 0 15px 5px rgba(240,208,128,0.5);
  border-radius: 50%;
}
.scn-renewed-luchresi-goad .light-a {
  top: 15%; left: 20%;
  animation: rl-glow-pulse 1.5s ease-in-out infinite alternate;
}
.scn-renewed-luchresi-goad .light-b {
  top: 22%; right: 30%;
  animation: rl-glow-pulse 2.1s ease-in-out infinite alternate;
  animation-delay: 0.7s;
}
.scn-renewed-luchresi-goad .ground-dusk {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #4a3a2a 0%, #2a1a1a 100%);
  border-radius: 30% 30% 0 0 / 60% 60% 0 0;
}
@keyframes rl-sky-pulse { 0% { opacity:1; transform:scale(1); } 50% { opacity:0.9; } 100% { opacity:1; transform:scale(1.01); } }
@keyframes rl-dusk-fade { 0% { opacity:0.8; } 50% { opacity:1; } 100% { opacity:0.85; } }
@keyframes rl-figure-walk-left { 0% { transform: translateX(0) rotate(-1deg); } 25% { transform: translateX(4px) translateY(-2px) rotate(1deg); } 50% { transform: translateX(8px) rotate(-2deg); } 75% { transform: translateX(12px) translateY(-1px) rotate(1deg); } 100% { transform: translateX(16px) rotate(0); } }
@keyframes rl-figure-walk-right { 0% { transform: translateX(0) rotate(1deg); } 25% { transform: translateX(-3px) translateY(-2px) rotate(-1deg); } 50% { transform: translateX(-6px) rotate(2deg); } 75% { transform: translateX(-9px) translateY(-1px) rotate(-1deg); } 100% { transform: translateX(-12px) rotate(0); } }
@keyframes rl-torch-flicker { 0% { opacity:0.7; transform:scale(1); } 50% { opacity:1; transform:scale(1.05) rotate(3deg); } 100% { opacity:0.8; transform:scale(0.95) rotate(-2deg); } }
@keyframes rl-glow-pulse { 0% { opacity:0.3; transform:scale(0.9); } 50% { opacity:1; transform:scale(1.1); } 100% { opacity:0.5; transform:scale(1); } }

/* Scene 2: masked-palazzo-return (dusk, tense) */
.scn-masked-palazzo-return {
  background: 
    linear-gradient(180deg, #1a1a3a 0%, #3a2a4a 40%, #6a4a5a 70%, #8a5a3a 100%),
    radial-gradient(ellipse at 50% 60%, #b07050 0%, transparent 60%);
}
.scn-masked-palazzo-return .wall-dark {
  position: absolute; inset: 0 0 30% 0;
  background: linear-gradient(90deg, #1a1a1a 0%, #2a2a2a 30%, #3a3a3a 50%, #2a2a2a 70%, #1a1a1a 100%);
  box-shadow: inset 0 0 40px rgba(0,0,0,0.8);
}
.scn-masked-palazzo-return .archway {
  position: absolute; bottom: 30%; left: 20%; width: 60%; height: 50%;
  background: linear-gradient(135deg, #2a1a1a 0%, #4a2a2a 50%, #2a1a1a 100%);
  border-radius: 50% 50% 0 0 / 80% 80% 0 0;
  box-shadow: inset 0 10px 30px rgba(0,0,0,0.7);
}
.scn-masked-palazzo-return .masked-figure {
  position: absolute; bottom: 25%; left: 42%; width: 28px; height: 70px;
  background: linear-gradient(180deg, #0a0a1a 0%, #1a1a2a 50%, #0a0a1a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
  transform: rotate(5deg);
  box-shadow: -5px 0 15px rgba(0,0,0,0.6);
  animation: mp-figure-sway 5s ease-in-out infinite;
}
.scn-masked-palazzo-return .flambeau {
  position: absolute; bottom: 40%; width: 6px; height: 50px;
  background: linear-gradient(180deg, #8a5a2a 0%, #4a2a1a 100%);
  border-radius: 2px;
}
.scn-masked-palazzo-return .flambeau.left { left: 25%; }
.scn-masked-palazzo-return .flambeau.right { right: 25%; }
.scn-masked-palazzo-return .flambeau::after {
  content: ''; position: absolute; top: -20px; left: 50%; transform: translateX(-50%);
  width: 16px; height: 22px;
  background: radial-gradient(ellipse at 50% 100%, #f0a040 0%, #c84020 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 25px 8px rgba(240,160,64,0.4);
  animation: mp-flame 1s ease-in-out infinite alternate;
}
.scn-masked-palazzo-return .floor-tiles {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: repeating-linear-gradient(90deg, #2a1a1a 0px, #2a1a1a 15px, #3a2a2a 15px, #3a2a2a 30px);
  border-radius: 30% 30% 0 0 / 40% 40% 0 0;
}
.scn-masked-palazzo-return .shadow-pool {
  position: absolute; bottom: 0; left: 30%; width: 40%; height: 20%;
  background: radial-gradient(ellipse at 50% 100%, #0a0a0a 0%, transparent 70%);
}
.scn-masked-palazzo-return .distant-window {
  position: absolute; top: 15%; left: 35%; width: 30px; height: 40px;
  background: radial-gradient(ellipse at 50% 50%, #f0c080 0%, #804020 70%);
  border-radius: 10%;
  box-shadow: 0 0 20px 5px rgba(240,192,128,0.3);
  animation: mp-window-glow 4s ease-in-out infinite alternate;
}
@keyframes mp-figure-sway { 0% { transform: rotate(4deg); } 50% { transform: rotate(-2deg); } 100% { transform: rotate(5deg); } }
@keyframes mp-flame { 0% { opacity:0.8; transform: scale(1) rotate(-2deg); } 50% { opacity:1; transform: scale(1.1) rotate(1deg); } 100% { opacity:0.9; transform: scale(0.95) rotate(3deg); } }
@keyframes mp-window-glow { 0% { opacity:0.5; box-shadow: 0 0 15px 3px rgba(240,192,128,0.2); } 50% { opacity:0.9; box-shadow: 0 0 30px 8px rgba(240,192,128,0.5); } 100% { opacity:0.6; box-shadow: 0 0 20px 4px rgba(240,192,128,0.3); } }

/* Scene 3: winding-stair-descent (firelit, dark) */
.scn-winding-stair-descent {
  background: 
    linear-gradient(180deg, #0a0a0a 0%, #1a0a0a 30%, #2a1a0a 60%, #3a1a0a 100%),
    radial-gradient(ellipse at 50% 70%, #6a3a1a 0%, transparent 50%);
}
.scn-winding-stair-descent .stone-wall-bg {
  position: absolute; inset: 0 0 20% 0;
  background: 
    repeating-linear-gradient(0deg, #2a1a0a 0px, #2a1a0a 8px, #3a2a1a 8px, #3a2a1a 16px);
  box-shadow: inset 0 0 40px #0a0a0a;
}
.scn-winding-stair-descent .stair-step {
  position: absolute; bottom: 0; left: 10%; width: 80%; height: 8px;
  background: linear-gradient(180deg, #4a2a1a 0%, #2a1a0a 100%);
  border-radius: 2px;
  box-shadow: 0 -2px 10px rgba(0,0,0,0.6);
}
.scn-winding-stair-descent .step-2 { bottom: 30px; left: 15%; width: 70%; }
.scn-winding-stair-descent .step-3 { bottom: 60px; left: 20%; width: 60%; }
.scn-winding-stair-descent .figure-descent {
  position: absolute; bottom: 70px; width: 20px; height: 60px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 40% 40% 30% 30% / 60% 60% 30% 30%;
}
.scn-winding-stair-descent .silhouette-hat {
  left: 25%; height: 70px;
  transform: rotate(5deg);
  animation: ws-descend 10s ease-in-out infinite;
}
.scn-winding-stair-descent .silhouette-cape {
  left: 35%; height: 65px;
  transform: rotate(-3deg);
  animation: ws-descend 12s ease-in-out infinite;
  animation-delay: 0.5s;
}
.scn-winding-stair-descent .fire-glow {
  position: absolute; width: 12px; height: 20px;
  background: radial-gradient(ellipse at 50% 100%, #f08040 0%, #c84820 40%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(240,128,64,0.4), 0 0 60px 20px rgba(200,72,32,0.2);
  animation: ws-fire 0.8s ease-in-out infinite alternate;
}
.scn-winding-stair-descent .flambeau-a { bottom: 80%; left: 15%; }
.scn-winding-stair-descent .flambeau-b { bottom: 90%; right: 10%; animation-delay: 0.4s; }
.scn-winding-stair-descent .chain-draped {
  position: absolute; top: 10%; left: 40%; width: 20%; height: 4px;
  background: linear-gradient(90deg, transparent, #6a4a2a, transparent);
  border-radius: 2px;
  box-shadow: 0 6px 10px rgba(0,0,0,0.4);
}
@keyframes ws-descend { 0% { transform: translateY(0) rotate(2deg); } 25% { transform: translateY(-3px) rotate(0deg); } 50% { transform: translateY(-5px) rotate(-1deg); } 75% { transform: translateY(-3px) rotate(1deg); } 100% { transform: translateY(0) rotate(2deg); } }
@keyframes ws-fire { 0% { opacity:0.7; transform: scale(1); } 50% { opacity:1; transform: scale(1.05) rotate(2deg); } 100% { opacity:0.8; transform: scale(0.9) rotate(-3deg); } }

/* Scene 4: repeated-cough-fit (firelit, dark) */
.scn-repeated-cough-fit {
  background: 
    linear-gradient(180deg, #0a0a0a 0%, #1a0a0a 40%, #3a1a0a 80%, #5a2a1a 100%),
    radial-gradient(ellipse at 50% 80%, #8a3a1a 0%, transparent 60%);
}
.scn-repeated-cough-fit .cavern-wall {
  position: absolute; inset: 0 0 25% 0;
  background: 
    linear-gradient(90deg, #1a0a0a 0%, #2a1a0a 30%, #3a2a1a 60%, #2a1a0a 80%, #1a0a0a 100%);
  box-shadow: inset 0 0 30px #0a0a0a;
}
.scn-repeated-cough-fit .figure-coughing {
  position: absolute; bottom: 30%; left: 40%; width: 30px; height: 70px;
  background: linear-gradient(180deg, #1a1a1a 0%, #0a0a0a 100%);
  border-radius: 45% 45% 35% 35% / 65% 65% 35% 35%;
  transform-origin: bottom center;
  animation: rc-cough-jerk 0.3s ease-in-out infinite;
}
.scn-repeated-cough-fit .cough-particles {
  position: absolute; width: 6px; height: 6px;
  background: radial-gradient(circle, #6a4a3a 0%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 6px 2px rgba(106,74,58,0.4);
}
.scn-repeated-cough-fit .p1 {
  bottom: 65%; left: 52%;
  animation: rc-particle-burst 0.6s ease-in-out infinite;
}
.scn-repeated-cough-fit .p2 {
  bottom: 60%; left: 55%;
  animation: rc-particle-burst 0.8s ease-in-out infinite;
  animation-delay: 0.1s;
}
.scn-repeated-cough-fit .p3 {
  bottom: 58%; right: 30%;
  animation: rc-particle-burst 0.7s ease-in-out infinite;
  animation-delay: 0.2s;
}
.scn-repeated-cough-fit .torch-flicker {
  position: absolute; bottom: 85%; left: 20%; width: 14px; height: 24px;
  background: radial-gradient(ellipse at 50% 100%, #f0a040 0%, #c84820 30%, transparent 70%);
  border-radius: 50%;
  box-shadow: 0 0 40px 15px rgba(240,160,64,0.5), 0 0 80px 30px rgba(200,72,32,0.3);
  animation: rc-fire 0.4s ease-in-out infinite alternate;
}
.scn-repeated-cough-fit .shadow-on-wall {
  position: absolute; bottom: 30%; left: 30%; width: 50%; height: 40%;
  background: radial-gradient(ellipse at 50% 100%, #0a0a0a 0%, transparent 80%);
  animation: rc-shadow-move 3s ease-in-out infinite;
}
.scn-repeated-cough-fit .ground-dirt {
  position: absolute; bottom: 0; left: 0; right: 0; height: 25%;
  background: linear-gradient(180deg, #2a1a0a 0%, #1a0a0a 100%);
  border-radius: 20% 20% 0 0 / 30% 30% 0 0;
}
@keyframes rc-cough-jerk { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(3px) rotate(2deg); } 50% { transform: translateX(-2px) rotate(-4deg); } 75% { transform: translateX(4px) rotate(3deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes rc-particle-burst { 0% { transform: translateY(0) scale(1); opacity:0.8; } 50% { transform: translateY(-12px) scale(1.5); opacity:0.3; } 100% { transform: translateY(0) scale(1); opacity:0.8; } }
@keyframes rc-fire { 0% { opacity:0.8; transform: scale(1); } 50% { opacity:1; transform: scale(1.1) rotate(2deg); } 100% { opacity:0.9; transform: scale(0.95) rotate(-3deg); } }
@keyframes rc-shadow-move { 0% { transform: translateX(0) scaleX(1); } 50% { transform: translateX(10px) scaleX(1.2); } 100% { transform: translateX(0) scaleX(1); } }

/* Scene: brotherhood-denied (tense, firelit) */
.scn-brotherhood-denied {
  background:
    linear-gradient(180deg, #1a0f0a 0%, #2d1a10 30%, #4a2818 60%, #3d1f12 100%),
    radial-gradient(ellipse at 50% 80%, #b85a2a 0%, transparent 60%);
}
.scn-brotherhood-denied .bg { position:absolute; inset:0; background: radial-gradient(ellipse at 60% 40%, #7a3a1a 0%, transparent 70%); animation: bd-bg 12s ease-in-out infinite alternate; }
.scn-brotherhood-denied .wall-left { position:absolute; left:0; top:0; bottom:0; width:35%; background: linear-gradient(90deg, #2a1810 0%, #1a0f0a 70%, transparent); }
.scn-brotherhood-denied .wall-right { position:absolute; right:0; top:0; bottom:0; width:35%; background: linear-gradient(270deg, #2a1810 0%, #1a0f0a 70%, transparent); }
.scn-brotherhood-denied .accuser { position:absolute; bottom:10%; left:30%; width:60px; height:100px; background: linear-gradient(180deg, #2a1a12 0%, #0e0805 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bd-accuser 4s ease-in-out infinite; }
.scn-brotherhood-denied .defendant { position:absolute; bottom:8%; right:28%; width:50px; height:85px; background: linear-gradient(180deg, #2a1a12 0%, #0e0805 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin: bottom center; animation: bd-defendant 5s ease-in-out infinite reverse; }
.scn-brotherhood-denied .torch { position:absolute; bottom:55%; left:45%; width:8px; height:40px; background: linear-gradient(180deg, #6a3a1a 0%, #3a1a0a 100%); border-radius: 4px; box-shadow: 0 0 6px #4a2810; }
.scn-brotherhood-denied .flame { position:absolute; bottom: calc(55% + 40px); left:45%; width:20px; height:30px; background: radial-gradient(ellipse, #f0c060 0%, #d08030 40%, #a04a1a 70%, transparent 100%); border-radius: 50%; box-shadow: 0 0 30px 10px rgba(208,128,48,.5); animation: bd-flame 0.8s ease-in-out infinite alternate; }
.scn-brotherhood-denied .ground-shadow { position:absolute; bottom:0; left:20%; right:20%; height:20%; background: radial-gradient(ellipse at 50% 0%, rgba(0,0,0,.5) 0%, transparent 100%); animation: bd-shadow 8s ease-in-out infinite; }
@keyframes bd-bg { 0% { opacity:.6 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes bd-accuser { 0% { transform: translateX(0) rotate(-2deg) } 50% { transform: translateX(3px) rotate(2deg) } 100% { transform: translateX(0) rotate(-1deg) } }
@keyframes bd-defendant { 0% { transform: translateX(0) rotate(2deg) scale(1) } 50% { transform: translateX(-2px) rotate(-1deg) scale(.98) } 100% { transform: translateX(0) rotate(1deg) scale(1) } }
@keyframes bd-flame { 0% { transform: scale(1) translateY(0); opacity:.8 } 50% { transform: scale(1.2) translateY(-3px); opacity:1 } 100% { transform: scale(.95) translateY(2px); opacity:.7 } }
@keyframes bd-shadow { 0% { opacity:.3 } 50% { opacity:.6 } 100% { opacity:.4 } }

/* Scene: paris-bones-mound (dark, firelit) */
.scn-paris-bones-mound {
  background:
    linear-gradient(180deg, #0d0806 0%, #1a100a 40%, #2a1a10 100%),
    radial-gradient(ellipse at 50% 60%, #7a3a1a 0%, transparent 70%);
}
.scn-paris-bones-mound .bg-crypt { position:absolute; inset:0; background: radial-gradient(ellipse at 50% 30%, #3d1f12 0%, transparent 80%); animation: pbm-bg 15s ease-in-out infinite alternate; }
.scn-paris-bones-mound .wall-bones-l { position:absolute; left:0; top:0; bottom:0; width:25%; background: repeating-linear-gradient(45deg, #b8a080 0px, #b8a080 4px, #806050 4px, #806050 8px); mask-image: linear-gradient(180deg, transparent 10%, #000 30%, #000 70%, transparent 90%); -webkit-mask-image: linear-gradient(180deg, transparent 10%, #000 30%, #000 70%, transparent 90%); opacity:.3; animation: pbm-bones-l 25s linear infinite; }
.scn-paris-bones-mound .wall-bones-r { position:absolute; right:0; top:0; bottom:0; width:25%; background: repeating-linear-gradient(-45deg, #b8a080 0px, #b8a080 4px, #806050 4px, #806050 8px); mask-image: linear-gradient(180deg, transparent 10%, #000 30%, #000 70%, transparent 90%); -webkit-mask-image: linear-gradient(180deg, transparent 10%, #000 30%, #000 70%, transparent 90%); opacity:.3; animation: pbm-bones-r 30s linear infinite reverse; }
.scn-paris-bones-mound .bone-mound { position:absolute; bottom:15%; left:30%; right:30%; height:30%; background: linear-gradient(180deg, #c8a880 0%, #a07850 80%), radial-gradient(ellipse at 40% 10%, #d8b890 0%, transparent 60%); border-radius: 30% 70% 0 0 / 80% 80% 0 0; box-shadow: 0 -4px 12px rgba(0,0,0,.6); animation: pbm-mound 10s ease-in-out infinite; }
.scn-paris-bones-mound .torch-l { position:absolute; bottom:60%; left:20%; width:6px; height:35px; background: linear-gradient(180deg, #7a3a1a 0%, #3a1a0a 100%); border-radius: 3px; transform: rotate(-15deg); }
.scn-paris-bones-mound .torch-r { position:absolute; bottom:60%; right:20%; width:6px; height:35px; background: linear-gradient(180deg, #7a3a1a 0%, #3a1a0a 100%); border-radius: 3px; transform: rotate(15deg); }
.scn-paris-bones-mound .flame-l { position:absolute; bottom: calc(60% + 35px); left:20%; width:16px; height:22px; background: radial-gradient(ellipse, #f0c060 0%, #d08030 40%, #a04a1a 70%, transparent 100%); border-radius: 50%; box-shadow: 0 0 20px 6px rgba(208,128,48,.5); animation: pbm-flame-l 0.7s ease-in-out infinite alternate; }
.scn-paris-bones-mound .flame-r { position:absolute; bottom: calc(60% + 35px); right:20%; width:16px; height:22px; background: radial-gradient(ellipse, #f0c060 0%, #d08030 40%, #a04a1a 70%, transparent 100%); border-radius: 50%; box-shadow: 0 0 20px 6px rgba(208,128,48,.5); animation: pbm-flame-r 0.9s ease-in-out infinite alternate; animation-delay: 0.4s; }
@keyframes pbm-bg { 0% { opacity:.7 } 50% { opacity:1 } 100% { opacity:.8 } }
@keyframes pbm-bones-l { 0% { background-position: 0 0 } 100% { background-position: 0 100px } }
@keyframes pbm-bones-r { 0% { background-position: 0 0 } 100% { background-position: 0 -100px } }
@keyframes pbm-mound { 0% { transform: scaleY(1) } 50% { transform: scaleY(1.02) } 100% { transform: scaleY(0.98) } }
@keyframes pbm-flame-l { 0% { transform: scale(.9) translateY(0); opacity:.8 } 50% { transform: scale(1.1) translateY(-2px); opacity:1 } 100% { transform: scale(1) translateY(1px); opacity:.7 } }
@keyframes pbm-flame-r { 0% { transform: scale(1) translateY(2px); opacity:.7 } 50% { transform: scale(.85) translateY(-3px); opacity:1 } 100% { transform: scale(1.05) translateY(0); opacity:.8 } }

/* Scene: niche-fettering (dark, firelit, vertical shaft) */
.scn-niche-fettering {
  background:
    linear-gradient(180deg, #0a0604 0%, #1a100a 30%, #2a1a10 60%, #1a0f0a 100%),
    radial-gradient(ellipse at 50% 70%, #6a3018 0%, transparent 60%);
}
.scn-niche-fettering .bg-niche { position:absolute; inset:0; background: radial-gradient(ellipse at 30% 50%, #3d1f12 0%, transparent 70%); animation: nf-bg 14s ease-in-out infinite alternate; }
.scn-niche-fettering .arch { position:absolute; top:5%; left:20%; right:20%; height:60%; background: linear-gradient(180deg, #2a1a12 0%, #1a0f0a 100%); border-radius: 50% 50% 0 0 / 80% 80% 0 0; box-shadow: inset 0 0 30px rgba(0,0,0,.8); }
.scn-niche-fettering .figure { position:absolute; bottom:25%; left:50%; width:35px; height:70px; transform: translateX(-50%); background: linear-gradient(180deg, #1e1410 0%, #0a0604 100%); border-radius: 50% 50% 40% 40% / 60% 60% 40% 40%; animation: nf-figure 3s ease-in-out infinite; }
.scn-niche-fettering .chain-l { position:absolute; bottom:30%; left:42%; width:12px; height:4px; background: #6a4a30; border-radius: 2px; box-shadow: 0 0 2px #4a3018; animation: nf-chain-l 2s ease-in-out infinite alternate; }
.scn-niche-fettering .chain-r { position:absolute; bottom:30%; right:42%; width:12px; height:4px; background: #6a4a30; border-radius: 2px; box-shadow: 0 0 2px #4a3018; animation: nf-chain-r 2.4s ease-in-out infinite alternate-reverse; }
.scn-niche-fettering .staple-l { position:absolute; bottom:28%; left:41%; width:6px; height:10px; background: linear-gradient(180deg, #8a6a4a 0%, #5a3a20 100%); border-radius: 2px; box-shadow: 0 0 6px rgba(138,106,74,.6); animation: nf-staple 6s ease-in-out infinite; }
.scn-niche-fettering .staple-r { position:absolute; bottom:28%; right:41%; width:6px; height:10px; background: linear-gradient(180deg, #8a6a4a 0%, #5a3a20 100%); border-radius: 2px; box-shadow: 0 0 6px rgba(138,106,74,.6); animation: nf-staple 6s ease-in-out infinite reverse; }
.scn-niche-fettering .torch { position:absolute; bottom:65%; left:10%; width:6px; height:30px; background: linear-gradient(180deg, #7a3a1a 0%, #3a1a0a 100%); border-radius: 3px; transform: rotate(-10deg); }
.scn-niche-fettering .flame { position:absolute; bottom: calc(65% + 30px); left:10%; width:14px; height:20px; background: radial-gradient(ellipse, #f0c060 0%, #d08030 40%, #a04a1a 70%, transparent 100%); border-radius: 50%; box-shadow: 0 0 18px 5px rgba(208,128,48,.5); animation: nf-flame 1s ease-in-out infinite alternate; }
@keyframes nf-bg { 0% { opacity:.6 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes nf-figure { 0% { transform: translateX(-50%) translateY(0) rotate(0deg) } 50% { transform: translateX(-50%) translateY(-2px) rotate(3deg) } 100% { transform: translateX(-50%) translateY(0) rotate(-2deg) } }
@keyframes nf-chain-l { 0% { transform: translateX(0) } 50% { transform: translateX(-4px) } 100% { transform: translateX(2px) } }
@keyframes nf-chain-r { 0% { transform: translateX(0) } 50% { transform: translateX(4px) } 100% { transform: translateX(-2px) } }
@keyframes nf-staple { 0% { box-shadow: 0 0 6px rgba(138,106,74,.6) } 50% { box-shadow: 0 0 12px rgba(138,106,74,.9) } 100% { box-shadow: 0 0 6px rgba(138,106,74,.6) } }
@keyframes nf-flame { 0% { transform: scale(.9) translateY(0); opacity:.8 } 50% { transform: scale(1.15) translateY(-2px); opacity:1 } 100% { transform: scale(1) translateY(1px); opacity:.7 } }

/* Scene: item-chain-padlock (dark, firelit, close-up) */
.scn-item-chain-padlock {
  background:
    linear-gradient(180deg, #0a0604 0%, #1a100a 30%, #2a1a10 60%, #1a0f0a 100%),
    radial-gradient(ellipse at 50% 60%, #6a3018 0%, transparent 60%);
}
.scn-item-chain-padlock .bg-stone { position:absolute; inset:0; background: radial-gradient(ellipse at 40% 70%, #3d1f12 0%, transparent 80%); animation: icp-bg 12s ease-in-out infinite alternate; }
.scn-item-chain-padlock .chain { position:absolute; top:30%; left:30%; right:30%; height:40%; background: repeating-linear-gradient(90deg, #6a4a30 0px, #6a4a30 6px, transparent 6px, transparent 8px); mask-image: linear-gradient(180deg, transparent 0%, #000 20%, #000 80%, transparent 100%); -webkit-mask-image: linear-gradient(180deg, transparent 0%, #000 20%, #000 80%, transparent 100%); animation: icp-chain 4s ease-in-out infinite; }
.scn-item-chain-padlock .padlock { position:absolute; top:45%; left:50%; width:30px; height:30px; transform: translateX(-50%); background: linear-gradient(135deg, #8a6a4a 0%, #5a3a20 100%); border-radius: 6px; box-shadow: inset 0 0 8px rgba(0,0,0,.6), 0 0 10px rgba(138,106,74,.5); animation: icp-padlock 6s ease-in-out infinite; }
.scn-item-chain-padlock .stone-1 { position:absolute; bottom:25%; left:15%; width:60px; height:30px; background: linear-gradient(135deg, #504030 0%, #301c0e 100%); border-radius: 8px; box-shadow: 0 4px 8px rgba(0,0,0,.7); animation: icp-stone1 8s ease-in-out infinite; }
.scn-item-chain-padlock .stone-2 { position:absolute; bottom:20%; right:10%; width:50px; height:25px; background: linear-gradient(135deg, #504030 0%, #301c0e 100%); border-radius: 6px; box-shadow: 0 4px 8px rgba(0,0,0,.7); animation: icp-stone2 9s ease-in-out infinite reverse; animation-delay: 1s; }
.scn-item-chain-padlock .mortar { position:absolute; bottom:15%; left:25%; right:25%; height:8px; background: linear-gradient(90deg, #4a3a20 0%, #6a4a30 50%, #4a3a20 100%); border-radius: 4px; opacity:.6; animation: icp-mortar 10s ease-in-out infinite; }
.scn-item-chain-padlock .torch { position:absolute; bottom:70%; left:10%; width:5px; height:25px; background: linear-gradient(180deg, #7a3a1a 0%, #3a1a0a 100%); border-radius: 3px; transform: rotate(-5deg); }
.scn-item-chain-padlock .flame { position:absolute; bottom: calc(70% + 25px); left:10%; width:12px; height:18px; background: radial-gradient(ellipse, #f0c060 0%, #d08030 40%, #a04a1a 70%, transparent 100%); border-radius: 50%; box-shadow: 0 0 16px 4px rgba(208,128,48,.5); animation: icp-flame 0.8s ease-in-out infinite alternate; }
.scn-item-chain-padlock .shadow { position:absolute; bottom:0; left:10%; right:10%; height:30%; background: radial-gradient(ellipse at 50% 100%, rgba(0,0,0,.6) 0%, transparent 100%); animation: icp-shadow 7s ease-in-out infinite; }
@keyframes icp-bg { 0% { opacity:.6 } 50% { opacity:1 } 100% { opacity:.7 } }
@keyframes icp-chain { 0% { background-position: 0 0 } 50% { background-position: 4px 0 } 100% { background-position: 0 0 } }
@keyframes icp-padlock { 0% { transform: translateX(-50%) rotate(0deg) scale(1) } 50% { transform: translateX(-50%) rotate(5deg) scale(1.02) } 100% { transform: translateX(-50%) rotate(-3deg) scale(.98) } }
@keyframes icp-stone1 { 0% { transform: translateY(0) } 50% { transform: translateY(-2px) } 100% { transform: translateY(0) } }
@keyframes icp-stone2 { 0% { transform: translateY(0) rotate(0deg) } 50% { transform: translateY(-3px) rotate(2deg) } 100% { transform: translateY(0) rotate(0deg) } }
@keyframes icp-mortar { 0% { opacity:.4 } 50% { opacity:.7 } 100% { opacity:.5 } }
@keyframes icp-flame { 0% { transform: scale(.85) translateY(0); opacity:.7 } 50% { transform: scale(1.1) translateY(-3px); opacity:1 } 100% { transform: scale(1) translateY(2px); opacity:.8 } }
@keyframes icp-shadow { 0% { opacity:.3 } 50% { opacity:.6 } 100% { opacity:.4 } }

.scn-thousand-injuries-vowed {
  background:
    linear-gradient(0deg, #2a2e3a 0%, #1c1f2b 40%, #12141a 100%),
    radial-gradient(ellipse at 50% 60%, #3a3f4e 0%, transparent 60%);
}
.scn-thousand-injuries-vowed .wall-bg {
  position: absolute; inset: 0;
  background: repeating-linear-gradient(90deg, #232734 0px, #2a2f3e 2px, #232734 4px);
  opacity: 0.6;
  animation: tiv-wall-pulse 12s ease-in-out infinite;
}
.scn-thousand-injuries-vowed .niche {
  position: absolute; bottom: 15%; left: 30%; width: 40%; height: 50%;
  background: radial-gradient(ellipse at 50% 40%, #1a1d26 0%, #0e101a 80%);
  border-radius: 30% 30% 0 0;
  box-shadow: inset 0 -20px 30px rgba(0,0,0,.6);
  animation: tiv-niche 20s ease-in-out infinite alternate;
}
.scn-thousand-injuries-vowed .figure-montresor {
  position: absolute; bottom: 12%; left: 38%; width: 16%; height: 45%;
  background:
    linear-gradient(180deg, #2c3040 0%, #0e101a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 50% 50%;
  transform-origin: bottom center;
  animation: tiv-figure 4s ease-in-out infinite;
}
.scn-thousand-injuries-vowed .trowel {
  position: absolute; bottom: 25%; left: 46%; width: 8px; height: 22px;
  background: linear-gradient(180deg, #6a6e7a 0%, #4a4e5a 100%);
  border-radius: 40% 40% 20% 20%;
  transform: rotate(-15deg);
  box-shadow: 0 2px 6px rgba(0,0,0,.5);
  animation: tiv-trowel 2.5s ease-in-out infinite alternate;
}
.scn-thousand-injuries-vowed .candle {
  position: absolute; bottom: 40%; left: 35%; width: 6px; height: 12px;
  background: linear-gradient(180deg, #f5d080 0%, #c89040 100%);
  border-radius: 50% 50% 20% 20%;
  filter: blur(1px);
  box-shadow: 0 0 20px 8px rgba(240,200,100,.3), 0 0 40px 12px rgba(240,200,100,.15);
  animation: tiv-candle 3s ease-in-out infinite alternate;
}
.scn-thousand-injuries-vowed .shadow-stripe {
  position: absolute; bottom: 0; left: 20%; width: 60%; height: 40%;
  background: linear-gradient(180deg, transparent 0%, rgba(0,0,0,.5) 100%);
  animation: tiv-shadow 8s ease-in-out infinite;
}
@keyframes tiv-wall-pulse { 0%,100% { opacity:0.5 } 50% { opacity:0.7 } }
@keyframes tiv-niche { 0% { box-shadow: inset 0 -20px 30px rgba(0,0,0,.6); } 50% { box-shadow: inset 0 -30px 40px rgba(0,0,0,.8); } 100% { box-shadow: inset 0 -20px 30px rgba(0,0,0,.6); } }
@keyframes tiv-figure { 0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(-3px) rotate(-1deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-1px) rotate(1deg); } 100% { transform: translateY(0) rotate(0deg); } }
@keyframes tiv-trowel { 0% { transform: rotate(-15deg) translateY(0); } 100% { transform: rotate(-12deg) translateY(-2px); } }
@keyframes tiv-candle { 0% { opacity:0.7; transform: scaleY(1); } 50% { opacity:1; transform: scaleY(1.1); } 100% { opacity:0.8; transform: scaleY(0.95); } }
@keyframes tiv-shadow { 0%,100% { opacity:0.6; } 50% { opacity:0.8; } }

.scn-carnival-dusk-meeting {
  background:
    linear-gradient(180deg, #1a1a3e 0%, #2c2250 40%, #4a3a6e 70%, #7a5a4a 100%),
    radial-gradient(ellipse at 50% 100%, #7a5a4a 0%, transparent 70%);
}
.scn-carnival-dusk-meeting .sky-dusk {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #1a1a3e 0%, #3a2a5a 50%, transparent 100%);
  animation: cdm-sky 15s ease-in-out infinite alternate;
}
.scn-carnival-dusk-meeting .ground-dusk {
  position: absolute; bottom: 0; left: 0; right: 0; height: 35%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1a0a 100%);
  border-radius: 20% 80% 0 0 / 30% 70% 0 0;
  animation: cdm-ground 8s ease-in-out infinite alternate;
}
.scn-carnival-dusk-meeting .figure-fortunato {
  position: absolute; bottom: 20%; left: 35%; width: 12%; height: 40%;
  background:
    linear-gradient(180deg, #a04a2a 0%, #702a1a 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 50% 50%;
  clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
  &:before {
    content: ''; position: absolute; top: -20%; left: 20%; width: 60%; height: 30%;
    background: linear-gradient(180deg, #d08040 0%, #a05020 100%);
    border-radius: 50% 50% 0 0;
  }
  animation: cdm-fortunato 3s ease-in-out infinite alternate;
}
.scn-carnival-dusk-meeting .figure-montresor-cloak {
  position: absolute; bottom: 20%; left: 48%; width: 14%; height: 42%;
  background:
    linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 50% 50%;
  transform-origin: bottom center;
  animation: cdm-montresor 4.5s ease-in-out infinite;
}
.scn-carnival-dusk-meeting .lantern-cdm {
  position: absolute; bottom: 35%; left: 42%; width: 10px; height: 14px;
  background: radial-gradient(circle, #ffc060 0%, #b07830 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 0 30px 10px #b07830, 0 0 60px 20px rgba(176,120,48,.4);
  animation: cdm-lantern 2s ease-in-out infinite alternate;
}
.scn-carnival-dusk-meeting .bunting {
  position: absolute; top: 15%; left: 0; right: 0; height: 6%;
  background: repeating-linear-gradient(90deg, #c8553d 0%, #c8553d 2%, transparent 2%, transparent 4%, #a0461a 4%, #a0461a 6%, transparent 6%, transparent 8%, #b87878 8%, #b87878 10%, transparent 10%, transparent 12%);
  animation: cdm-bunting 5s linear infinite;
}
.scn-carnival-dusk-meeting .light-sparkle {
  position: absolute; top: 10%; left: 10%; width: 4px; height: 4px;
  background: #ffd080; border-radius: 50%;
  box-shadow: 0 0 10px 2px #ffd080;
  animation: cdm-sparkle 3s ease-in-out infinite alternate;
}
@keyframes cdm-sky { 0% { opacity:0.7; } 50% { opacity:1; } 100% { opacity:0.8; } }
@keyframes cdm-ground { 0% { transform: translateY(0) scaleX(1); } 50% { transform: translateY(-2px) scaleX(1.02); } 100% { transform: translateY(0) scaleX(1); } }
@keyframes cdm-fortunato { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(3px) rotate(1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes cdm-montresor { 0%,100% { transform: scale(1); } 50% { transform: scale(0.97); } }
@keyframes cdm-lantern { 0% { opacity:0.8; } 100% { opacity:1; } }
@keyframes cdm-bunting { 0% { transform: translateX(0); } 100% { transform: translateX(-12%); } }
@keyframes cdm-sparkle { 0% { opacity:0.2; transform: scale(0.5); } 50% { opacity:1; transform: scale(1.5); } 100% { opacity:0.3; transform: scale(0.6); } }

.scn-amontillado-taunt-sprung {
  background:
    linear-gradient(180deg, #2a1a2a 0%, #4a2a3a 40%, #6a4a3a 70%, #8a6a4a 100%),
    radial-gradient(ellipse at 50% 80%, #8a6a4a 0%, transparent 60%);
}
.scn-amontillado-taunt-sprung .sky-ats {
  position: absolute; inset: 0 0 45% 0;
  background: linear-gradient(180deg, #2a1a2a 0%, #4a2a3a 60%, transparent 100%);
  animation: ats-sky 18s ease-in-out infinite alternate;
}
.scn-amontillado-taunt-sprung .building-silhouette {
  position: absolute; bottom: 20%; left: -10%; right: -10%; height: 40%;
  background: linear-gradient(180deg, #1a1a1a 0%, #0e0e0e 100%);
  border-radius: 30% 70% 0 0 / 50% 50% 0 0;
  clip-path: polygon(0 100%, 20% 10%, 40% 30%, 60% 5%, 80% 20%, 100% 100%);
  animation: ats-building 10s ease-in-out infinite;
}
.scn-amontillado-taunt-sprung .figure-fortunato-profile {
  position: absolute; bottom: 20%; left: 30%; width: 14%; height: 45%;
  background:
    linear-gradient(180deg, #c06030 0%, #903820 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 50% 50%;
  clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
  &:before {
    content: ''; position: absolute; top: -15%; left: 20%; width: 40%; height: 20%;
    background: linear-gradient(180deg, #d08040 0%, #a05020 100%);
    border-radius: 50% 50% 0 0;
  }
  animation: ats-fortunato 2s ease-in-out infinite alternate;
}
.scn-amontillado-taunt-sprung .figure-montresor-profile {
  position: absolute; bottom: 20%; left: 48%; width: 14%; height: 44%;
  background:
    linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 50% 50%;
  transform-origin: bottom center;
  animation: ats-montresor 3.5s ease-in-out infinite;
}
.scn-amontillado-taunt-sprung .bottle-amontillado {
  position: absolute; bottom: 35%; left: 40%; width: 8%; height: 18%;
  background: linear-gradient(180deg, #4a6a3a 0%, #2a4a1a 100%);
  border-radius: 30% 30% 20% 20%;
  transform: rotate(-10deg);
  box-shadow: 0 0 12px 2px rgba(0,0,0,.5);
  animation: ats-bottle 4s ease-in-out infinite;
}
.scn-amontillado-taunt-sprung .wine-glass {
  position: absolute; bottom: 30%; left: 52%; width: 6%; height: 16%;
  background: linear-gradient(180deg, rgba(200,200,220,0.3) 0%, rgba(180,180,200,0.6) 100%);
  border-radius: 0 0 20% 20% / 0 0 50% 50%;
  &:before {
    content: ''; position: absolute; top: -10%; left: 20%; width: 60%; height: 20%;
    background: rgba(200,200,220,0.5); border-radius: 50% 50% 0 0;
  }
  animation: ats-glass 2.5s ease-in-out infinite alternate;
}
.scn-amontillado-taunt-sprung .flare {
  position: absolute; bottom: 40%; left: 38%; width: 20px; height: 20px;
  background: radial-gradient(circle, #ffc040 0%, transparent 100%);
  border-radius: 50%;
  box-shadow: 0 0 30px 10px rgba(255,192,64,.3);
  animation: ats-flare 1.5s ease-in-out infinite alternate;
}
@keyframes ats-sky { 0% { opacity:0.6; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes ats-building { 0%,100% { transform: scaleY(1); } 50% { transform: scaleY(0.98); } }
@keyframes ats-fortunato { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(4px) rotate(2deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes ats-montresor { 0% { transform: scale(1); } 50% { transform: scale(0.96); } 100% { transform: scale(1); } }
@keyframes ats-bottle { 0% { transform: rotate(-10deg) translateY(0); } 50% { transform: rotate(-6deg) translateY(-2px); } 100% { transform: rotate(-10deg) translateY(0); } }
@keyframes ats-glass { 0% { opacity:0.6; } 100% { opacity:1; } }
@keyframes ats-flare { 0% { opacity:0.3; transform: scale(0.5); } 100% { opacity:1; transform: scale(1.2); } }

.scn-luchesi-rivalry-kindled {
  background:
    linear-gradient(180deg, #1e1e32 0%, #2e2240 40%, #4a3a5a 70%, #6a4a3a 100%),
    radial-gradient(ellipse at 50% 80%, #6a4a3a 0%, transparent 60%);
}
.scn-luchesi-rivalry-kindled .sky-lrk {
  position: absolute; inset: 0 0 40% 0;
  background: linear-gradient(180deg, #1e1e32 0%, #3a2a4a 50%, transparent 100%);
  animation: lrk-sky 20s ease-in-out infinite alternate;
}
.scn-luchesi-rivalry-kindled .street-lrk {
  position: absolute; bottom: 0; left: 0; right: 0; height: 30%;
  background: linear-gradient(180deg, #3a2a1a 0%, #1a1a0a 100%);
  border-radius: 40% 60% 0 0 / 30% 40% 0 0;
  animation: lrk-street 9s ease-in-out infinite;
}
.scn-luchesi-rivalry-kindled .figure-lrk-left {
  position: absolute; bottom: 18%; left: 28%; width: 14%; height: 44%;
  background:
    linear-gradient(180deg, #1a1a2a 0%, #0a0a1a 100%);
  border-radius: 50% 50% 40% 40% / 60% 60% 50% 50%;
  transform-origin: bottom center;
  animation: lrk-left 3s ease-in-out infinite alternate;
}
.scn-luchesi-rivalry-kindled .figure-lrk-right {
  position: absolute; bottom: 18%; left: 52%; width: 14%; height: 46%;
  background:
    linear-gradient(180deg, #c06030 0%, #903820 100%);
  border-radius: 50% 50% 40% 40% / 70% 70% 50% 50%;
  clip-path: polygon(0 0, 100% 0, 100% 100%, 0 100%);
  &:before {
    content: ''; position: absolute; top: -15%; left: 20%; width: 40%; height: 20%;
    background: linear-gradient(180deg, #d08040 0%, #a05020 100%);
    border-radius: 50% 50% 0 0;
  }
  animation: lrk-right 2.5s ease-in-out infinite;
}
.scn-luchesi-rivalry-kindled .lantern-lrk {
  position: absolute; bottom: 35%; left: 44%; width: 10px; height: 14px;
  background: radial-gradient(circle, #ffb040 0%, #b06820 100%);
  border-radius: 30% 30% 20% 20%;
  box-shadow: 0 0 25px 8px #b06820, 0 0 50px 15px rgba(176,104,32,.3);
  animation: lrk-lantern 1.8s ease-in-out infinite alternate;
}
.scn-luchesi-rivalry-kindled .gesture-hand {
  position: absolute; bottom: 30%; left: 44%; width: 8%; height: 12%;
  background: linear-gradient(180deg, #a05530 0%, #70381a 100%);
  border-radius: 30% 30% 50% 50% / 20% 20% 40% 40%;
  transform: rotate(20deg);
  transform-origin: bottom left;
  animation: lrk-hand 4s ease-in-out infinite;
}
.scn-luchesi-rivalry-kindled .motion-arc {
  position: absolute; bottom: 32%; left: 42%; width: 20px; height: 2px;
  background: linear-gradient(90deg, transparent, #ffb040, transparent);
  border-radius: 50%;
  transform: rotate(-30deg);
  filter: blur(1px);
  animation: lrk-arc 2s ease-in-out infinite alternate;
}
@keyframes lrk-sky { 0% { opacity:0.6; } 50% { opacity:1; } 100% { opacity:0.7; } }
@keyframes lrk-street { 0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); } }
@keyframes lrk-left { 0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes lrk-right { 0% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(-2px) rotate(2deg); } 75% { transform: translateX(2px) rotate(-1deg); } 100% { transform: translateX(0) rotate(0deg); } }
@keyframes lrk-lantern { 0% { opacity:0.7; } 100% { opacity:1; } }
@keyframes lrk-hand { 0% { transform: rotate(20deg) translateY(0); } 50% { transform: rotate(15deg) translateY(-1px); } 100% { transform: rotate(20deg) translateY(0); } }
@keyframes lrk-arc { 0% { opacity:0.2; transform: rotate(-30deg) scaleX(0.5); } 100% { opacity:0.8; transform: rotate(-20deg) scaleX(1.2); } }

.scn-tenth-tier-laughter { background: linear-gradient(180deg, #0a0604 0%, #2b1a10 30%, #4a2e1a 70%, #1a0e0a 100%), radial-gradient(ellipse at 50% 80%, #8a4a2a 0%, transparent 50%); }
.scn-tenth-tier-laughter .bg-wall { position:absolute; inset:0; background: linear-gradient(180deg, transparent 0%, #0d0705 100%); animation: ttl-bg 12s ease-in-out infinite alternate; }
.scn-tenth-tier-laughter .niche { position:absolute; bottom:40%; left:35%; width:30%; height:25%; background:#0a0503; border-radius:50% / 30% 30% 50% 50%; box-shadow:inset 0 0 30px #1a0e0a; animation: ttl-niche 8s ease-in-out infinite; }
.scn-tenth-tier-laughter .stone-ledge { position:absolute; bottom:42%; left:30%; right:30%; height:4%; background: linear-gradient(90deg, #3a2a1a, #5a3a2a, #3a2a1a); border-radius:20%; box-shadow:0 4px 8px rgba(0,0,0,0.8); animation: ttl-ledge 15s ease-in-out infinite; }
.scn-tenth-tier-laughter .figure { position:absolute; bottom:40%; left:45%; width:12%; height:20%; background: radial-gradient(ellipse 50% 30% at 50% 30%, #2b1a10 0%, #0a0604 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: ttl-figure 4s ease-in-out infinite; }
.scn-tenth-tier-laughter .fire-glow { position:absolute; bottom:35%; left:38%; width:24%; height:15%; background: radial-gradient(circle at 50% 50%, #d4823a 0%, #a84a1a 40%, transparent 70%); filter:blur(8px); animation: ttl-glow 3s ease-in-out infinite alternate; }
.scn-tenth-tier-laughter .spark-a, .scn-tenth-tier-laughter .spark-b { position:absolute; width:4px; height:4px; background:#e8a838; border-radius:50%; filter:blur(1px); animation: ttl-spark 6s linear infinite; }
.scn-tenth-tier-laughter .spark-a { bottom:50%; left:20%; animation-delay:0s; }
.scn-tenth-tier-laughter .spark-b { bottom:45%; left:70%; animation-delay:2s; }
@keyframes ttl-bg { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes ttl-niche { 0% { transform:scaleY(1) } 50% { transform:scaleY(1.02) } 100% { transform:scaleY(1) } }
@keyframes ttl-ledge { 0% { transform:translateY(0); opacity:0.6 } 50% { transform:translateY(-2px); opacity:1 } 100% { transform:translateY(0); opacity:0.8 } }
@keyframes ttl-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 ttl-glow { 0% { opacity:0.5; transform:scale(0.9) } 50% { opacity:1; transform:scale(1.1) } 100% { opacity:0.6; transform:scale(0.95) } }
@keyframes ttl-spark { 0% { opacity:1; transform:translateY(0) rotate(0deg) scale(1) } 50% { opacity:0.5; transform:translateY(-30px) rotate(180deg) scale(0.5) } 100% { opacity:0; transform:translateY(-60px) rotate(360deg) scale(0) } }

.scn-lady-fortunato-waiting { background: linear-gradient(180deg, #0a0604 0%, #1a0e0a 40%, #2b1a10 70%, #0d0705 100%), radial-gradient(ellipse at 30% 80%, #4a2e1a 0%, transparent 60%); }
.scn-lady-fortunato-waiting .bg-corridor { position:absolute; inset:0; background: linear-gradient(90deg, #0a0604 0%, #1a0e0a 50%, #0a0604 100%); animation: lfw-corridor 20s ease-in-out infinite alternate; }
.scn-lady-fortunato-waiting .arch { position:absolute; top:10%; left:20%; right:20%; height:60%; background: linear-gradient(180deg, #3a2a1a 0%, #1a0e0a 100%); clip-path:polygon(0 0, 100% 0, 100% 100%, 80% 100%, 80% 70%, 20% 70%, 20% 100%, 0 100%); border-radius:10px; box-shadow:inset 0 0 30px #0d0705; animation: lfw-arch 8s ease-in-out infinite; }
.scn-lady-fortunato-waiting .floor { position:absolute; bottom:0; left:0; right:0; height:20%; background: linear-gradient(180deg, #2b1a10 0%, #0d0705 100%); animation: lfw-floor 12s ease-in-out infinite; }
.scn-lady-fortunato-waiting .lady { position:absolute; bottom:15%; left:35%; width:12%; height:30%; background: radial-gradient(ellipse 50% 30% at 50% 30%, #3a2a1a 0%, #0a0604 100%); border-radius:50% 50% 40% 40% / 60% 60% 40% 40%; transform-origin:bottom center; animation: lfw-lady 6s ease-in-out infinite; }
.scn-lady-fortunato-waiting .lantern { position:absolute; bottom:20%; left:50%; width:5%; height:8%; background:#c8553d; border-radius:20% 20% 10% 10%; box-shadow:0 0 10px #c8553d; animation: lfw-lantern 2s ease-in-out infinite; }
.scn-lady-fortunato-waiting .lantern-glow { position:absolute; bottom:16%; left:47%; width:10%; height:10%; background: radial-gradient(circle, #d4823a 0%, transparent 70%); filter:blur(6px); animation: lfw-glow 2s ease-in-out infinite alternate; }
.scn-lady-fortunato-waiting .shadow { position:absolute; bottom:0; left:30%; width:40%; height:15%; background: linear-gradient(180deg, #0a0604 0%, transparent 100%); animation: lfw-shadow 10s ease-in-out infinite; }
@keyframes lfw-corridor { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes lfw-arch { 0% { transform:scaleX(1) } 50% { transform:scaleX(1.01) } 100% { transform:scaleX(1) } }
@keyframes lfw-floor { 0% { opacity:0.6 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes lfw-lady { 0% { transform:translateY(0) rotate(0deg) } 30% { transform:translateY(-3px) rotate(-2deg) } 60% { transform:translateY(0) rotate(0deg) } 100% { transform:translateY(-1px) rotate(2deg) } }
@keyframes lfw-lantern { 0% { box-shadow:0 0 5px #c8553d; transform:rotate(0deg) } 50% { box-shadow:0 0 12px #d4823a; transform:rotate(5deg) } 100% { box-shadow:0 0 5px #c8553d; transform:rotate(0deg) } }
@keyframes lfw-glow { 0% { opacity:0.5; transform:scale(0.9) } 50% { opacity:1; transform:scale(1.2) } 100% { opacity:0.6; transform:scale(1) } }
@keyframes lfw-shadow { 0% { opacity:0.3; transform:translateX(0) } 50% { opacity:0.5; transform:translateX(5px) } 100% { opacity:0.3; transform:translateX(0) } }

.scn-item-fallen-torch { background: linear-gradient(180deg, #0a0604 0%, #1a0e0a 40%, #0d0705 70%, #0a0402 100%), radial-gradient(ellipse at 50% 100%, #2b1a10 0%, transparent 60%); }
.scn-item-fallen-torch .bg-wall { position:absolute; inset:0; background: linear-gradient(90deg, #0a0604 0%, #1a0e0a 60%, #0a0604 100%); animation: ift-wall 15s ease-in-out infinite alternate; }
.scn-item-fallen-torch .aperture { position:absolute; top:10%; left:40%; width:20%; height:30%; background:#050201; border-radius:10% / 50% 50% 20% 20%; box-shadow:inset 0 0 20px #0a0604; animation: ift-aperture 8s ease-in-out infinite; }
.scn-item-fallen-torch .torch-falling { position:absolute; top:5%; left:45%; width:6%; height:15%; background: linear-gradient(180deg, #c8553d 0%, #8a4a2a 40%, #4a2e1a 100%); border-radius:20% 20% 10% 10%; transform-origin:top center; animation: ift-fall 4s ease-in-out infinite; }
.scn-item-fallen-torch .spark-trail { position:absolute; top:10%; left:48%; width:2%; height:20%; background: radial-gradient(circle, #e8a838 0%, transparent 70%); filter:blur(2px); animation: ift-spark 4s linear infinite; }
.scn-item-fallen-torch .bell { position:absolute; bottom:20%; left:48%; width:4%; height:6%; background:#a0461a; border-radius:50% 50% 20% 20%; box-shadow:0 0 6px #a0461a; animation: ift-bell 1s ease-in-out infinite; }
.scn-item-fallen-torch .bell-glow { position:absolute; bottom:18%; left:45%; width:10%; height:8%; background: radial-gradient(circle, #d4823a 0%, transparent 70%); filter:blur(5px); animation: ift-bell-glow 2s ease-in-out infinite alternate; }
.scn-item-fallen-torch .floor-shadow { position:absolute; bottom:0; left:30%; width:40%; height:10%; background: linear-gradient(180deg, #0a0604 0%, transparent 100%); animation: ift-shadow 10s ease-in-out infinite; }
@keyframes ift-wall { 0% { opacity:0.8 } 50% { opacity:1 } 100% { opacity:0.7 } }
@keyframes ift-aperture { 0% { transform:scaleY(1) } 50% { transform:scaleY(1.02) } 100% { transform:scaleY(1) } }
@keyframes ift-fall { 0% { transform:translateY(-60px) rotate(0deg) scale(1); opacity:1 } 30% { transform:translateY(20px) rotate(90deg) scale(0.9); opacity:1 } 60% { transform:translateY(10px) rotate(80deg) scale(0.8); opacity:0.8 } 100% { transform:translateY(0) rotate(85deg) scale(0.8); opacity:0.5 } }
@keyframes ift-spark { 0% { opacity:1; transform:translateY(0) scale(1) } 50% { opacity:0.5; transform:translateY(-30px) scale(0.5) } 100% { opacity:0; transform:translateY(-60px) scale(0) } }
@keyframes ift-bell { 0% { transform:rotate(0deg) scale(1) } 25% { transform:rotate(-10deg) scale(1.1) } 50% { transform:rotate(0deg) scale(1) } 75% { transform:rotate(10deg) scale(1.1) } 100% { transform:rotate(0deg) scale(1) } }
@keyframes ift-bell-glow { 0% { opacity:0.5; transform:scale(0.9) } 50% { opacity:1; transform:scale(1.1) } 100% { opacity:0.6; transform:scale(1) } }
@keyframes ift-shadow { 0% { opacity:0.3; transform:scaleX(1) } 50% { opacity:0.5; transform:scaleX(1.2) } 100% { opacity:0.3; transform:scaleX(1) } }

.scn-final-plea-silenced {
  background: linear-gradient(180deg, #1c1410 0%, #0d0806 100%), radial-gradient(ellipse at 25% 70%, #c85a2a 0%, transparent 60%);
}
.scn-final-plea-silenced .wall {
  position: absolute; inset: 0; background: linear-gradient(90deg, #2a1f1a 0%, #0d0806 100%); clip-path: polygon(0 0, 60% 0, 40% 100%, 0 100%);
}
.scn-final-plea-silenced .floor {
  position: absolute; bottom: 0; left: 0; right: 0; height: 20%; background: linear-gradient(0deg, #1c1410 0%, #2a1f1a 100%);
}
.scn-final-plea-silenced .torch {
  position: absolute; left: 15%; bottom: 50%; width: 12px; height: 40px; background: linear-gradient(0deg, #c85a2a 0%, #f5a623 50%, #ffd080 100%); border-radius: 4px; box-shadow: 0 0 40px 20px #c85a2a, 0 0 80px 40px rgba(200,90,42,0.4); animation: torch-fp 2s ease-in-out infinite alternate;
}
.scn-final-plea-silenced .figure-fortunato {
  position: absolute; left: 30%; bottom: 18%; width: 30px; height: 60px; background: radial-gradient(ellipse 50% 100% at 50% 100%, #2a1f1a 0%, #0d0806 100%); border-radius: 50% 50% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: kneel-fp 5s ease-in-out infinite, plead-fp 3s ease-in-out infinite alternate;
}
.scn-final-plea-silenced .figure-montresor {
  position: absolute; right: 25%; bottom: 20%; width: 40px; height: 80px; background: linear-gradient(180deg, #1a1210 0%, #0d0806 100%); border-radius: 40% 40% 30% 30% / 70% 70% 40% 40%; transform-origin: bottom center; animation: stand-fp 6s ease-in-out infinite;
}
.scn-final-plea-silenced .chains {
  position: absolute; left: 45%; top: 20%; width: 2px; height: 100px; background: #8a7a6a; border-radius: 50%; box-shadow: 0 4px 0 #6a5a4a, 0 8px 0 #8a7a6a, 0 12px 0 #6a5a4a, 0 16px 0 #8a7a6a, 0 20px 0 #6a5a4a; animation: chain-fp 4s ease-in-out infinite alternate;
}
.scn-final-plea-silenced .glow {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 15% 50%, rgba(200,90,42,0.15) 0%, transparent 60%); pointer-events: none; animation: flicker-fp 3s ease-in-out infinite alternate;
}
@keyframes torch-fp {
  0% { transform: scaleY(1); opacity: 0.8; } 50% { transform: scaleY(1.2) scaleX(0.9); opacity: 1; } 100% { transform: scaleY(0.95); opacity: 0.7; }
}
@keyframes kneel-fp {
  0%,100% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(-2px) rotate(2deg); }
}
@keyframes plead-fp {
  0% { transform: translateX(0) rotate(0deg); } 50% { transform: translateX(1.5px) rotate(1.5deg); } 100% { transform: translateX(3px) rotate(3deg); }
}
@keyframes stand-fp {
  0%,100% { transform: translateY(0); } 50% { transform: translateY(-3px); }
}
@keyframes chain-fp {
  0% { transform: translateY(0); } 50% { transform: translateY(2px); } 100% { transform: translateY(0); }
}
@keyframes flicker-fp {
  0% { opacity: 0.8; } 50% { opacity: 1; } 100% { opacity: 0.7; }
}

.scn-bones-cover-masonry {
  background: linear-gradient(180deg, #1a1410 0%, #0a0604 100%), radial-gradient(ellipse at 70% 30%, #c85a2a 0%, transparent 50%);
}
.scn-bones-cover-masonry .back-wall {
  position: absolute; inset: 0; background: linear-gradient(90deg, #2a1f1a 0%, #0d0806 100%); clip-path: polygon(20% 0, 100% 0, 100% 100%, 20% 100%);
}
.scn-bones-cover-masonry .skull {
  position: absolute; left: 40%; top: 25%; width: 24px; height: 24px; background: #e8d8c8; border-radius: 50%; box-shadow: 0 -2px 0 #c0a890, inset 0 -4px 4px #a08870; animation: skull-bc 8s ease-in-out infinite alternate;
}
.scn-bones-cover-masonry .bone-a {
  position: absolute; left: 30%; top: 40%; width: 6px; height: 30px; background: #e8d8c8; border-radius: 50%; transform: rotate(30deg); box-shadow: 0 0 4px #c8b8a0; animation: boneA-bc 10s ease-in-out infinite alternate;
}
.scn-bones-cover-masonry .bone-b {
  position: absolute; right: 25%; top: 35%; width: 6px; height: 25px; background: #e8d8c8; border-radius: 50%; transform: rotate(-20deg); box-shadow: 0 0 4px #c8b8a0; animation: boneB-bc 12s ease-in-out infinite alternate;
}
.scn-bones-cover-masonry .wall-stone {
  position: absolute; right: 15%; bottom: 30%; width: 40px; height: 40px; background: #4a3a2a; border: 2px solid #2a1a0a; border-radius: 4px; box-shadow: inset 0 4px 8px #2a1a0a; animation: stone-bc 6s ease-in-out infinite;
}
.scn-bones-cover-masonry .mortar {
  position: absolute; right: 12%; bottom: 32%; width: 10px; height: 6px; background: #a09080; border-radius: 2px; opacity: 0.7; animation: mortar-bc 5s ease-in-out infinite alternate;
}
.scn-bones-cover-masonry .hand-mason {
  position: absolute; right: 8%; bottom: 35%; width: 14px; height: 20px; background: radial-gradient(ellipse at 50% 30%, #d4b8a0 0%, #2a1f1a 100%); border-radius: 50% 50% 30% 30%; transform-origin: bottom center; animation: hand-bc 4s ease-in-out infinite;
}
.scn-bones-cover-masonry .glow {
  position: absolute; inset: 0; background: radial-gradient(ellipse at 70% 30%, rgba(200,90,42,0.2) 0%, transparent 40%); pointer-events: none; animation: glow-bc 3s ease-in-out infinite alternate;
}
@keyframes skull-bc {
  0% { transform: translateY(0) rotate(0deg); } 50% { transform: translateY(2px) rotate(5deg); } 100% { transform: translateY(0) rotate(-5deg); }
}
@keyframes boneA-bc {
  0% { transform: rotate(30deg) translateY(0); } 50% { transform: rotate(35deg) translateY(3px); } 100% { transform: rotate(25deg) translateY(0); }
}
@keyframes boneB-bc {
  0% { transform: rotate(-20deg) translateX(0); } 50% { transform: rotate(-15deg) translateX(2px); } 100% { transform: rotate(-25deg) translateX(0); }
}
@keyframes stone-bc {
  0%,100% { transform: translateY(0); } 50% { transform: translateY(-1px); }
}
@keyframes mortar-bc {
  0% { opacity: 0.5; transform: scaleY(1); } 50% { opacity: 0.65; transform: scaleY(1.25); } 100% { opacity: 0.8; transform: scaleY(1.5); }
}
@keyframes hand-bc {
  0% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(2px) rotate(5deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(1px) rotate(-5deg); } 100% { transform: translateY(0) rotate(0deg); }
}
@keyframes glow-bc {
  0% { opacity: 0.6; } 50% { opacity: 0.8; } 100% { opacity: 1; }
}

.scn-connoisseurship-recalled {
  background: linear-gradient(180deg, #2a221a 0%, #1a120a 100%), radial-gradient(ellipse at 50% 60%, #e8c060 0%, transparent 50%);
}
.scn-connoisseurship-recalled .back-wall {
  position: absolute; inset: 0; background: linear-gradient(180deg, #1a120a 0%, #2a221a 100%); clip-path: polygon(10% 0, 90% 0, 80% 100%, 20% 100%);
}
.scn-connoisseurship-recalled .shelf-top {
  position: absolute; top: 30%; left: 10%; right: 10%; height: 4px; background: #5a4a3a; box-shadow: 0 8px 0 #4a3a2a; animation: shelf-cr 10s ease-in-out infinite;
}
.scn-connoisseurship-recalled .shelf-bottom {
  position: absolute; top: 50%; left: 10%; right: 10%; height: 4px; background: #5a4a3a; box-shadow: 0 8px 0 #4a3a2a; animation: shelf-cr 12s ease-in-out infinite reverse;
}
.scn-connoisseurship-recalled .bottle-left {
  position: absolute; top: 32%; left: 20%; width: 8px; height: 24px; background: #3a5a3a; border-radius: 0 0 4px 4px; border-top: 4px solid #6a6a3a; animation: bottle-cr 6s ease-in-out infinite alternate;
}
.scn-connoisseurship-recalled .bottle-right {
  position: absolute; top: 35%; right: 25%; width: 8px; height: 26px; background: #4a4a2a; border-radius: 0 0 4px 4px; border-top: 4px solid #8a6a3a; animation: bottle-cr 7s ease-in-out infinite alternate-reverse;
}
.scn-connoisseurship-recalled .table {
  position: absolute; bottom: 25%; left: 50%; width: 60px; height: 4px; background: #6a5a4a; transform: translateX(-50%); box-shadow: 0 4px 0 #5a4a3a;
}
.scn-connoisseurship-recalled .figure-fortunato {
  position: absolute; left: 35%; bottom: 20%; width: 28px; height: 60px; background: linear-gradient(180deg, #4a3a2a 0%, #2a1a0a 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: sway-cr 8s ease-in-out infinite;
}
.scn-connoisseurship-recalled .figure-montresor {
  position: absolute; right: 30%; bottom: 20%; width: 36px; height: 70px; background: linear-gradient(180deg, #1a1210 0%, #0a0604 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: stand-cr 6s ease-in-out infinite;
}
.scn-connoisseurship-recalled .candle {
  position: absolute; bottom: 30%; left: 48%; width: 6px; height: 20px; background: linear-gradient(0deg, #c8a060 0%, #e8c080 50%, #ffd080 100%); border-radius: 2px; box-shadow: 0 0 30px 10px #e8c060, 0 0 60px 20px rgba(232,192,96,0.3); animation: candle-cr 4s ease-in-out infinite alternate;
}
@keyframes shelf-cr {
  0%,100% { transform: translateY(0); } 50% { transform: translateY(1px); }
}
@keyframes bottle-cr {
  0% { transform: rotate(0deg); } 50% { transform: rotate(1.5deg); } 100% { transform: rotate(3deg); }
}
@keyframes sway-cr {
  0%,100% { transform: translateX(0) rotate(0deg); } 25% { transform: translateX(2px) rotate(2deg); } 50% { transform: translateX(0) rotate(0deg); } 75% { transform: translateX(-2px) rotate(-2deg); }
}
@keyframes stand-cr {
  0%,100% { transform: translateY(0); } 50% { transform: translateY(-2px); }
}
@keyframes candle-cr {
  0% { transform: scaleY(1); opacity: 0.8; box-shadow: 0 0 20px 5px #e8c060; } 50% { transform: scaleY(1.1); opacity: 1; box-shadow: 0 0 40px 10px #e8c060, 0 0 60px 20px rgba(232,192,96,0.5); } 100% { transform: scaleY(0.95); opacity: 0.7; box-shadow: 0 0 20px 5px #e8c060; }
}

.scn-item-motley-bells {
  background: linear-gradient(180deg, #1a1a3a 0%, #4a3060 40%, #c06040 70%, #e8a060 100%), radial-gradient(ellipse at 50% 100%, #e8a060 0%, transparent 60%);
}
.scn-item-motley-bells .sky {
  position: absolute; inset: 0; background: linear-gradient(180deg, #1a1a3a 0%, #3a2a5a 50%, transparent 100%);
}
.scn-item-motley-bells .city-skyline {
  position: absolute; bottom: 0; left: 0; right: 0; height: 40%; background: #0a0a1a; clip-path: polygon(0% 100%, 0% 70%, 8% 70%, 8% 60%, 15% 60%, 15% 75%, 22% 75%, 22% 55%, 30% 55%, 30% 65%, 38% 65%, 38% 50%, 45% 50%, 45% 68%, 55% 68%, 55% 45%, 62% 45%, 62% 60%, 70% 60%, 70% 50%, 78% 50%, 78% 65%, 85% 65%, 85% 55%, 92% 55%, 92% 70%, 100% 70%, 100% 100%);
}
.scn-item-motley-bells .figure-motley {
  position: absolute; left: 35%; bottom: 35%; width: 32px; height: 80px; background: linear-gradient(180deg, #c04060 0%, #802040 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: motley-ib 4s ease-in-out infinite;
}
.scn-item-motley-bells .figure-montresor {
  position: absolute; right: 30%; bottom: 30%; width: 36px; height: 90px; background: linear-gradient(180deg, #2a1a1a 0%, #0a0604 100%); border-radius: 40% 40% 30% 30% / 60% 60% 40% 40%; transform-origin: bottom center; animation: cloak-ib 6s ease-in-out infinite;
}
.scn-item-motley-bells .lantern {
  position: absolute; left: 20%; bottom: 60%; width: 10px; height: 16px; background: #e8c060; border-radius: 4px 4px 8px 8px; box-shadow: 0 0 30px 15px #e8c060, 0 0 60px 30px rgba(232,192,96,0.3); animation: lantern-ib 3s ease-in-out infinite alternate;
}
.scn-item-motley-bells .pipe {
  position: absolute; left: 15%; bottom: 30%; width: 40px; height: 40px; background: #6a4a2a; border-radius: 40% 40% 20% 20%; border: 2px solid #4a2a1a; animation: pipe-ib 8s ease-in-out infinite;
}
.scn-item-motley-bells .crowd-1 {
  position: absolute; right: 5%; bottom: 25%; width: 20px; height: 50px; background: #1a1a2a; border-radius: 50% 50% 30% 30%; animation: crowd-ib 10s ease-in-out infinite alternate;
}
.scn-item-motley-bells .crowd-2 {
  position: absolute; left: 5%; bottom: 20%; width: 18px; height: 45px; background: #1a1a2a; border-radius: 50% 50% 30% 30%; animation: crowd-ib 12s ease-in-out infinite alternate-reverse;
}
.scn-item-motley-bells .bells {
  position: absolute; left: 38%; bottom: 90%; width: 6px; height: 6px; background: #e8c060; border-radius: 50%; box-shadow: 0 8px 0 #e8c060, 0 16px 0 #e8c060; animation: bell-ib 2s ease-in-out infinite alternate;
}
@keyframes motley-ib {
  0%,100% { transform: translateY(0) rotate(0deg); } 25% { transform: translateY(3px) rotate(5deg); } 50% { transform: translateY(0) rotate(0deg); } 75% { transform: translateY(-3px) rotate(-5deg); }
}
@keyframes cloak-ib {
  0%,100% { transform: translateY(0); } 50% { transform: translateY(2px); }
}
@keyframes lantern-ib {
  0% { opacity: 0.6; transform: scale(1); } 50% { opacity: 0.8; transform: scale(1.02); } 100% { opacity: 1; transform: scale(1.05); }
}
@keyframes pipe-ib {
  0%,100% { transform: translateY(0); } 50% { transform: translateY(2px); }
}
@keyframes crowd-ib {
  0% { transform: translateX(0); } 50% { transform: translateX(2.5px); } 100% { transform: translateX(5px); }
}
@keyframes bell-ib {
  0% { transform: rotate(-10deg); } 50% { transform: rotate(0deg); } 100% { transform: rotate(10deg); }
}
/* end per-scene blocks */
